KR101132043B1 - 디코더 장치 및 디코드 방법 - Google Patents

디코더 장치 및 디코드 방법 Download PDF

Info

Publication number
KR101132043B1
KR101132043B1 KR1020107002258A KR20107002258A KR101132043B1 KR 101132043 B1 KR101132043 B1 KR 101132043B1 KR 1020107002258 A KR1020107002258 A KR 1020107002258A KR 20107002258 A KR20107002258 A KR 20107002258A KR 101132043 B1 KR101132043 B1 KR 101132043B1
Authority
KR
South Korea
Prior art keywords
audio
video
output
time information
time
Prior art date
Application number
KR1020107002258A
Other languages
English (en)
Other versions
KR20100030663A (ko
Inventor
신 후지타
Original Assignee
후지쯔 가부시끼가이샤
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 후지쯔 가부시끼가이샤 filed Critical 후지쯔 가부시끼가이샤
Publication of KR20100030663A publication Critical patent/KR20100030663A/ko
Application granted granted Critical
Publication of KR101132043B1 publication Critical patent/KR101132043B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/4302Content synchronisation processes, e.g. decoder synchronisation
    • H04N21/4307Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen
    • H04N21/43072Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen of multiple content streams on the same device

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Television Systems (AREA)

Abstract

비디오 스트림과 오디오 스트림을 정확하게 동기하여 출력한다. 비디오 스트림(6a)이 입력되면, 비디오 프레임에 부여된 비디오 출력 시각 정보가 추출된다. 그 후, 차분치 계산 수단(4a)에 의해, 동기 신호(8)의 발생 시각과 비디오 출력 시각 정보와의 차분치가 계산된다. 또한, 오디오 출력 시각 보정 수단(4b)에 의해, 차분치를 이용하여 오디오 프레임 각각에 부여된 오디오 출력 시각 정보가 보정된다. 그리고, 화상 출력 수단(2b)에 의해, 동기 신호(8)에 동기하여 비디오 프레임에 의해 나타내어지는 화상이 출력된다. 또한, 음성 출력 수단(3b)에 의해, 기준 시각 정보의 값과 보정 후의 비디오 출력 시각 정보의 값이 일치했을 때에, 일치한 오디오 출력 시각 정보가 부여된 오디오 프레임에 의해 나타내어지는 음성이 출력된다.

Description

디코더 장치 및 디코드 방법{DECODER AND DECODING METHOD}
본 발명은 스트림 데이터의 디코더 장치 및 디코드 방법에 관한 것으로, 특히 비디오 스트림과 오디오 스트림의 동기 출력을 행하는 디코더 장치 및 디코드 방법에 관한 것이다.
최근, 비디오?오디오의 디지털 신호 처리 기술이 놀랍게 진보하고 있다. 그리고, 기술의 진보에 따라, 디지털 방송, 방송과 통신의 융합 실현을 위한 시스템 개발이 세계 각국에서 진행되고 있다.
방송과 통신의 융합이 진행되고 있는 기술 분야로서, 데이터 스트리밍에 의한 정보 배신 서비스가 있다. 이러한 스트림 배신 방식에 의한 서비스는 특히 증가되는 경향에 있다. 스트림 배신 방식에 있어서는, 실시간으로 수신 데이터의 재생 처리를 하는 것이 일반적이다. 이러한 방식을 이용한 시스템으로서, VOD(비디오 온 디맨드)나 라이브 영상의 스트리밍 배신 혹은 화상 회의 시스템 등을 들 수 있다.
또한, 인터넷으로 대표되는 광역이며 또한 다종 다양한 네트워크에 있어서의 화상 배신 서비스도 급속히 발전하고 있다. 이들 화상 배신은 많은 경우, MPEG(Moving Picture Experts Group)나 H.264와 같은 압축 기술을 이용한 스트림 배신이다.
실시간 시스템에 있어서의 비디오?오디오 출력은, 디코더 장치 측에서 시스템 스트림으로부터 시스템 기준 시각(PCR : Program Clock Reference나 SCR : System Clock Reference)을 추출하여, 그 추출한 값으로 STC(System Time Clock) 재생을 하고, 비디오?오디오 스트림이 갖는 PTS(Presentation Time Stamp)와 비교하여 재생한다. 이로써, 비디오와 오디오의 동기가 잡힌 실시간 출력을 하는 것이 가능하다.
또한, 오디오 데이터와 동화상 데이터에 타임 코드를 부가하여, 수신 장치에 있어서, 타임 코드를 이용하여 음성 출력을 화상 출력에 동기시키는 기술이 있다(예컨대, 특허문헌 1 참조).
또, 비디오 출력은 수직 동기 신호(VSYNC)에 맞출 필요가 있다. 한편, 오디오 출력은 STC에 맞춰 즉시 재생할 수 있다. 그렇게 하면, 비디오 출력은, PTS에 의해 나타내어지는 시각으로 된 후, 다음 VSYNC가 출력될 때까지 기다리는 시간이 발생한다. 그 결과, 비디오 출력이 오디오 출력보다도 지연된다. 이 때, 비디오?오디오 출력을 동시에 출력 시작하게 하려면, 비디오 출력 타이밍(VSYNC의 발신 시각)과 오디오 출력 타이밍의 차이를 흡수하기 위한 어떠한 기능의 추가가 필요하게 된다. 예컨대, 비디오 스트림으로부터 추출한 PTS를 홀드하여, VSYNC로, 홀드한 신호를 수신측 시스템 락의 카운터에 로드시킨다. 이로써, 비디오 스트림으로부터 추출한 PTS를 홀드하고 있는 동안, 오디오 출력도 기다리게 된다. 그 결과, 비디오 출력과 오디오 출력을 정확히 동기시킬 수 있다(예컨대, 특허문헌 2 참조).
특허문헌1:일본특허공개평9-65303호공보 특허문헌2:일본특허공개2002-176643호공보
그러나, 실시간 전송에서는, PCR 또는 SCR을 바탕으로 STC의 값을 결정하여 이용하는 것이 전제이다. 그 때문에, 디코더 장치에 있어서의 STC에 임의의 값을 설정할 수는 없다. 즉, 실시간 전송에서는, 특허문헌 2에 나타내어져 있는 것과 같은, 영상?음성 동기 출력의 목적으로, 홀드해 둔 PTS의 값을 임의의 타이밍에 STC에 로드할 수는 없다. 따라서, 종래의 기술에서는, 실시간 전송에 있어서, VSYNC가 출력될 때까지 기다리는 시간에 의한 출력 오차를 흡수할 수 없었다.
또한, 종래의 비디오와 오디오의 동기 수법은, 출력 선두 프레임의 비디오와 오디오의 PTS가 일치하는 경우밖에 상정되어 있지 않아, PTS가 불일치하는 경우에는 적용할 수 없었다. 즉, 비디오 데이터와 오디오 데이터의 인코더에의 입력 타이밍이 일치하지 않는(입력 시작시의 비디오와 오디오에 부가되는 PTS 값이 다른) 경우도 있다. 그 경우, 종래 기술에서는, 각각의 타이밍에 데이터 스트림이 디코더에 입력된다. 화상 출력부 및 음성 출력부에서는, 비디오 스트림과 오디오 스트림 각각의 선두의 PTS와 STC를 비교하여, 화상/음성 출력 시작 타이밍을 판단한다. 그 때문에, 비디오 스트림과 오디오 스트림의 선두의 PTS 값이 다른 경우, 수신 측에 있어서, 비디오?오디오의 출력 시작 타이밍을 일치시킬 수 없다.
더욱이, 디코더 측에서 수신하는 스트림에 관해서는, 비디오 스트림만 혹은 오디오 스트림만인 경우도 생각할 수 있다. 이 경우에는 그와 같은 케이스를 판별하는 수단이 필요하게 된다.
본 발명은 이러한 점에 감안하여 이루어진 것으로, 비디오 스트림과 오디오 스트림을 정확하게 동기하여 출력할 수 있는 디코더 장치 및 디코드 방법을 제공하는 것을 목적으로 한다.
본 발명에서는 상기 과제를 해결하기 위해서, 도 1에 도시하는 바와 같은 디코더 장치가 제공된다. 시각 정보 발생 수단(1)은, 시간과 함께 값이 증가하는 기준 시각 정보를 생성한다. 비디오 복호 수단(2a)은, 비디오 프레임마다의 화상의 출력 시각을 나타내는 비디오 출력 시각 정보가 부여된 비디오 데이터를 부호화한 비디오 스트림(6a)이 입력되면, 입력된 비디오 스트림(6a)을 복호하여 비디오 데이터(6b)를 생성하고, 비디오 프레임에 부여된 비디오 출력 시각 정보를 추출한다. 오디오 복호 수단(3a)은, 오디오 프레임마다의 음성의 출력 시각을 나타내는 오디오 출력 시각 정보가 부여된 오디오 데이터를 부호화한 오디오 스트림(7a)이 입력되면, 입력된 오디오 스트림(7a)을 복호하여 오디오 데이터(7b)를 생성한다. 차분치 계산 수단(4a)은, 화상의 출력 타이밍을 나타내는 동기 신호(8)의 발생 시각과 비디오 출력 시각 정보와의 차분치를 계산한다. 오디오 출력 시각 보정 수단(4b)은, 차분치 계산 수단(4a)에서 계산된 차분치를 이용하여, 오디오 프레임 각각에 부여된 오디오 출력 시각 정보를 보정한다. 화상 출력 수단(2b)은, 동기 신호(8)의 발생시에 있어서의 기준 시각 정보의 값과 동기 신호(8)의 발생시에 표시 할 수 있는 비디오 출력 시각 정보의 범위와의 관계가 미리 정의되어 있어, 동기 신호(8)가 발생할 때마다, 그 때의 기준 시각 정보의 값에 따라서 표시할 수 있는 비디오 출력 시각 정보가 부여된 비디오 프레임에 의해 나타내어지는 화상을 출력한다. 음성 출력 수단(3b)은, 기준 시각 정보의 값과 보정 후의 오디오 출력 시각 정보의 값이 일치했을 때에, 일치한 오디오 출력 시각 정보가 부여된 오디오 프레임에 의해 나타내어지는 음성을 출력한다.
이러한 디코더 장치에 따르면, 비디오 스트림(6a)이 입력되면, 비디오 복호 수단(2a)에 의해, 입력된 비디오 스트림(6a)이 복호되어 비디오 데이터(6b)를 생성하고, 비디오 프레임에 부여된 비디오 출력 시각 정보가 추출된다. 또한, 오디오 스트림(7a)이 입력되면, 오디오 복호 수단(3a)에 의해, 입력된 오디오 스트림(7a)이 복호되어, 오디오 데이터(7b)가 생성된다. 그 후, 차분치 계산 수단(4a)에 의해, 동기 신호(8)의 발생 시각과 비디오 출력 시각 정보와의 차분치가 계산된다. 또한, 오디오 출력 시각 보정 수단(4b)에 의해, 차분치를 이용하여 오디오 프레임 각각에 부여된 오디오 출력 시각 정보가 보정된다. 그리고, 화상 출력 수단(2b)에 의해, 동기 신호(8)가 발생할 때마다, 그 때의 기준 시각 정보의 값에 따라서 표시할 수 있는 비디오 출력 시각 정보가 부여된 비디오 프레임에 의해 나타내어지는 화상이 출력된다. 또한, 음성 출력 수단(3b)에 의해, 기준 시각 정보의 값과 보정 후의 비디오 출력 시각 정보의 값이 일치했을 때에, 일치한 오디오 출력 시각 정보가 부여된 오디오 프레임에 의해 나타내어지는 음성이 출력된다.
본 발명에서는, 동기 신호의 발생 시각과 비디오 출력 시각 정보와의 차분치에 의해서 오디오 출력 시각 정보를 보정하도록 했기 때문에, 화상 출력과 음성 출력을 정확하게 동기시킬 수 있다.
본 발명의 상기한 목적 및 다른 목적, 특징 및 이점은 본 발명의 예로서 바람직한 실시형태를 나타내는 첨부된 도면과 관련된 이하의 설명에 의해 분명하게 될 것이다.
도 1은 발명의 개요를 도시하는 도면이다.
도 2는 본 실시형태의 시스템 구성 예를 도시하는 도면이다.
도 3은 인코더 장치의 내부 구조를 도시하는 블럭도이다.
도 4는 디코더 장치의 내부 구조를 도시하는 블럭도이다.
도 5는 비디오 출력에 있어서의 표시 프레임의 유효 범위를 도시하는 도면이다.
도 6은 PTS 제어 장치의 처리 순서를 도시하는 플로우차트이다.
도 7은 인코더 장치에 의한 인코드 처리를 도시하는 타이밍차트이다.
도 8은 디코더 장치에 의한 디코드 처리를 도시하는 타이밍차트이다.
도 9는 오디오 캡쳐가 비디오 캡쳐보다 먼저 시작된 경우의 출력 시기를 도시하는 타이밍차트이다.
도 10은 비디오 스트림만이 입력되었을 때의 출력 예를 도시하는 도면이다.
도 11은 오디오 스트림만이 입력되었을 때의 출력 예를 도시하는 도면이다.
도 12는 PTS 제어부의 내부 구조를 도시하는 블럭도이다.
도 13은 마이크로 컴퓨터로 실현한 PTS 제어부의 예를 도시하는 도면이다.
이하, 본 발명의 실시형태를 도면을 참조하여 설명한다.
도 1은 발명의 개요를 도시하는 도면이다. 본 발명에 따른 디코더 장치는, 시각 정보 발생 수단(1), 비디오 복호 수단(2a), 오디오 복호 수단(3a), 차분치 계산 수단(4a), 오디오 출력 시각 보정 수단(4b), 타임아웃 판정 수단(5a), 출력 시작 시각 결정 수단(5b), 화상 출력 수단(2b) 및 음성 출력 수단(3b)을 갖고 있다.
시각 정보 발생 수단(1)은, 시간과 함께 값이 증가하는 기준 시각 정보를 생성한다. 예컨대, 시각 정보 발생 수단(1)은, 비디오 스트림(6a)이나 오디오 스트림(7a)을 부호화한 인코드 장치가, 비디오 스트림(6a)이나 오디오 스트림(7a)과 함께 송출한 시각 기준 참조치에 기초하여 기준 시각 정보(예컨대, STC)를 생성한다.
비디오 복호 수단(2a)에는 비디오 스트림(6a)이 입력된다. 비디오 스트림(6a)은 비디오 데이터를 부호화한 것이다. 비디오 스트림(6a)에는, 비디오 프레임마다의 화상의 출력 시각을 나타내는 비디오 출력 시각 정보(예컨대, 비디오 PTS)가 부여되고 있다. 비디오 복호 수단(2a)은, 비디오 스트림(6a)이 입력되면, 입력된 비디오 스트림(6a)을 복호하여 비디오 데이터(6b)를 생성한다. 또한, 비디오 복호 수단(2a)은 비디오 프레임에 부여된 비디오 출력 시각 정보를 추출한다. 예컨대, 비디오 스트림(6a)의 선두의 비디오 프레임에 부여된 비디오 출력 시각 정보를 비디오 선두 시각 정보(6c)로서 추출한다.
오디오 복호 수단(3a)에는 오디오 스트림(7a)이 입력된다. 오디오 스트림(7a)은 오디오 데이터를 부호화한 것이다. 오디오 스트림(7a)에는, 오디오 프레임마다의 화상의 출력 시각을 나타내는 오디오 출력 시각 정보(예컨대, 오디오 PTS)가 부여되고 있다. 오디오 복호 수단(3a)은, 오디오 스트림(7a)이 입력되면, 입력된 오디오 스트림(7a)을 복호하여 오디오 데이터(7b)를 생성한다. 또한, 오디오 복호 수단(3a)은 선두의 오디오 프레임에 부여된 오디오 출력 시각 정보를 오디오 선두 시각 정보(7c)로서 추출한다.
차분치 계산 수단(4a)은, 화상의 출력 타이밍을 나타내는 동기 신호(8)(예컨대, 화상 출력시의 수직 동기 신호)의 발생 시각과 비디오 출력 시각 정보와의 차분치를 계산한다.
오디오 출력 시각 보정 수단(4b)은, 차분치 계산 수단(4a)에서 계산된 차분치를 이용하여, 오디오 프레임 각각에 부여된 오디오 출력 시각 정보를 보정한다.
타임아웃 판정 수단(5a)은 비디오 선두 시각 정보(6c)와 오디오 선두 시각 정보(7c)의 어느 한 쪽의 정보가 추출되고 나서부터의 경과 시간을 계측한다. 그리고, 타임아웃 판정 수단(5a)은, 다른 쪽의 정보(비디오 선두 시각 정보(6c)와 오디오 선두 시각 정보(7c) 중의 미추출 정보)가 추출되기 전에 경과 시간이 소정의 임계치를 넘은 경우에는 타임아웃이라고 판정한다. 그리고, 타임아웃 판정 수단(5a)은, 타임아웃이라고 판정한 경우, 비디오 선두 시각 정보(6c)만이 추출되고 있으면 비디오 단독 출력이라고 결정하고, 오디오 선두 시각 정보(7c)만이 추출되고 있으면 오디오 단독 출력이라고 결정한다.
출력 시작 시각 결정 수단(5b)은, 비디오 선두 시각 정보(6c)와 오디오 선두 시각 정보(7c)의 값을 비교한다. 비교 결과, 비디오 선두 시각 정보(6c)의 값 쪽이 크면, 출력 시작 시각 결정 수단(5b)은 비디오 선두 시각 정보(6c)에 의해 나타내어지는 시각을 오디오 출력 시작 시각으로 결정한다. 또, 비교 결과, 오디오 선두 시각 정보(7c)의 값 쪽이 크면, 출력 시작 시각 결정 수단(5b)은 오디오 선두 시각 정보(7c)보다 큰 값으로 최소의 비디오 출력 시각 정보가 부여된 시각을 비디오 출력 시작 시각 및 오디오 출력 시작 시각으로 결정한다.
화상 출력 수단(2b)은 동기 신호(8)를 발생시키고 있다. 화상 출력 수단(2b)은 동기 신호(8)의 발생시에 있어서의 기준 시각 정보의 값과 동기 신호(8)의 발생시에 표시할 수 있는 비디오 출력 시각 정보의 범위와의 관계가 미리 정의되어 있어, 동기 신호(8)가 발생할 때마다, 그 때의 기준 시각 정보의 값에 따라서 표시할 수 있는 비디오 출력 시각 정보가 부여된 비디오 프레임에 의해 나타내어지는 화상(예컨대, NTSC(National Television Standards Committee) 등의 화상 신호)을 출력한다. 또, 화상 출력 수단(2b)은, 출력 시작 시각 결정 수단(5b)에서 결정된 비디오 출력 시작 시각보다 작은 값의 비디오 출력 시각 정보가 부여된 비디오 프레임으로부터 생성된 화상에 대해서는 무효의 데이터로 치환한다. 또한, 화상 출력 수단(2b)은, 타임아웃 판정 수단(5a)에 있어서 비디오 단독 출력으로 결정되면, 출력 시작 시각 결정 수단(5b)에 의한 비디오 출력 시작 시각의 결정을 기다리지 않고서, 비디오 프레임에 기초한 화상 출력을 시작한다.
음성 출력 수단(3b)은, 기준 시각 정보의 값과 보정 후의 오디오 출력 시각 정보의 값이 일치했을 때에, 일치한 오디오 출력 시각 정보가 부여된 오디오 프레임에 의해 나타내어지는 음성(예컨대, 아날로그의 음성 신호)을 출력한다. 또한, 음성 출력 수단(3b)은, 기준 시각 정보에 의해 나타내어지는 시각이 오디오 출력 시작 시각에 달하기 이전은, 생성된 음성을 무효의 데이터로 치환한다. 또한, 화상 출력 수단(2b)은, 타임아웃 판정 수단(5a)에 있어서 오디오 단독 출력으로 결정되면, 출력 시작 시각 결정 수단(5b)에 의한 오디오 출력 시작 시각의 결정을 기다리지 않고서, 오디오 프레임에 기초한 음성 출력을 시작한다.
이러한 디코더 장치에 따르면, 비디오 스트림(6a)이 입력되면, 비디오 복호 수단(2a)에 의해, 입력된 비디오 스트림(6a)이 복호되어 비디오 데이터(6b)를 생성하고, 비디오 프레임에 부여된 비디오 출력 시각 정보가 추출된다(도 1의 예에서는, 대표로 비디오 선두 시각 정보(6c)가 추출되고 있음). 또한, 오디오 스트림(7a)이 입력되면, 오디오 복호 수단(3a)에 의해, 입력된 오디오 스트림(7a)이 복호되어, 오디오 데이터(7b)가 생성되고, 비디오 프레임에 부여된 비디오 출력 시각 정보가 추출된다(도 1의 예에서는, 대표로 오디오 선두 시각 정보(7c)가 추출되고 있다).
그 후, 차분치 계산 수단(4a)에 의해, 동기 신호(8)의 발생 시각과 비디오 출력 시각 정보와의 차분치가 계산된다. 또한, 오디오 출력 시각 보정 수단(4b)에 의해, 차분치를 이용하여 오디오 프레임 각각에 부여된 오디오 출력 시각 정보가 보정된다.
여기서, 비디오 선두 시각 정보(6c)와 오디오 선두 시각 정보(7c)의 어느 한 쪽의 정보가 추출되고 나서부터의 경과 시간이 소정의 임계치를 넘을 때까지 다른 쪽의 정보가 추출되지 않은 경우, 타임아웃 판정 수단(5a)에서 타임아웃이라고 판정된다. 이 때, 비디오 선두 시각 정보(6c)만이 추출되고 있으면 비디오 단독 출력으로 결정되고, 오디오 선두 시각 정보(7c)만이 추출되고 있으면 오디오 단독 출력으로 결정된다. 비디오 단독 출력으로 결정된 경우, 출력 시작 시각 결정 수단(5b)에 의한 비디오 출력 시작 시각의 결정을 기다리지 않고서, 화상 출력 수단(2b)에 의해서 비디오 프레임에 기초한 화상 출력이 시작된다. 오디오 단독 출력으로 결정된 경우, 출력 시작 시각 결정 수단(5b)에 의한 오디오 출력 시작 시각의 결정을 기다리지 않고서, 음성 출력 수단(3b)에 의해서 오디오 프레임에 기초한 음성 출력이 시작된다. 또, 오디오 단독 출력으로 결정된 경우, 비디오 출력 시각 정보를 추출할 수 없어, 차분치 계산 수단(4a)에 의한 차분치는 계산할 수 없다. 그 때문에, 음성 출력 수단(3b)에서는, 오디오 스트림(7a)에 부여되어 있던 오디오 출력 시각 정보(보정되어 있지 않은 값)에 기초하여 오디오 프레임의 출력 시각이 판단된다.
타임아웃이 되기 전에 비디오 선두 시각 정보(6c)와 오디오 선두 시각 정보(7c)가 함께 추출되면, 출력 시작 시각 결정 수단(5b)에 의해, 비디오 선두 시각 정보(6c)와 오디오 선두 시각 정보(7c)의 값이 비교된다. 비교 결과, 비디오 선두 시각 정보(6c)의 값 쪽이 크면, 비디오 선두 시각 정보(6c)에 의해 나타내어지는 시각이 비디오 출력 시작 시각 및 오디오 출력 시작 시각으로 결정된다. 또한, 비교 결과, 오디오 선두 시각 정보(7c)의 값 쪽이 크면, 출력 시작 시각 결정 수단(5b)은, 오디오 선두 시각 정보(7c)보다 큰 값으로 최소의 비디오 출력 시각 정보가 부여된 시각을 비디오 출력 시작 시각 및 오디오 출력 시작 시각으로 결정한다.
그리고, 화상 출력 수단(2b)에 의해, 동기 신호(8)가 발생할 때마다, 그 때의 기준 시각 정보의 값에 따라서 표시할 수 있는 비디오 출력 시각 정보가 부여된 비디오 프레임에 의해 나타내어지는 화상이 출력된다. 그 때, 출력 시작 시각 결정 수단(5b)에서 결정된 비디오 출력 시작 시각보다 작은 값의 비디오 출력 시각 정보가 부여된 비디오 프레임으로부터 생성된 화상에 대해서는 무효의 데이터로 치환된다.
또한, 음성 출력 수단(3b)에서는, 기준 시각 정보의 값과 보정 후의 비디오 출력 시각 정보의 값이 일치했을 때에, 일치한 오디오 출력 시각 정보가 부여된 오디오 프레임에 의해 나타내어지는 음성이 출력된다. 그 때, 기준 시각 정보에 의해 나타내어지는 시각이 오디오 출력 시작 시각에 달하기 이전은, 생성된 음성이 무효의 데이터로 치환된다.
이와 같이, 동기 신호의 발생 시각과 비디오 출력 시각 정보와의 차분치에 의해서 오디오 출력 시각 정보를 보정하도록 했기 때문에, 화상 출력과 음성 출력을 정확하게 동기시킬 수 있다. 즉, 비디오 프레임의 비디오 출력 시각 정보에 의해 나타내어지는 시각과 동기 신호의 발신 시각이 어긋나는 분만큼, 오디오 프레임의 오디오 출력 시각 정보를 보정함으로써, 화상과 음성을 정확하게 동기시킬 수 있다. 더구나, 전술한 특허문헌 2의 기술과 같이, 기준 시각 정보(예컨대 STC)를 임의의 값으로 변경하는 것과 같은 일은 하지 않기 때문에, 본원 발명은 실시간 전송에 있어서도 적용 가능한 범용성이 높은 기술이다.
또한, 비디오 선두 시각 정보(6c)와 오디오 선두 시각 정보(7c)를 비교하여, 늦게 수신한 스트림(비디오 선두 시각 정보(6c)와 오디오 선두 시각 정보(7c) 중 값이 큰 쪽의 정보가 부여된 스트림)에, 비디오 출력 시작 시각과 오디오 출력 시작 시각을 맞추도록 했다. 그리고, 비디오 출력 시작 시각(오디오 출력 시작 시각도 동일)보다 앞의 화상이나 음성은 무효 데이터로 치환했다. 이로써, 비디오 스트림과 오디오 스트림과의 캡쳐 시작 시각에 차가 있더라도, 재생 출력시에는 동시에 출력 시작할 수 있다.
또한, 한 쪽의 비디오 선두 시각 정보와 오디오 선두 시각 정보의 한 쪽만이 추출되고, 소정 시간 경과할 때까지 다른 쪽의 정보가 추출되지 않는 경우, 타임아웃을 발생시키도록 했다. 그리고, 타임아웃이 발생한 경우, 이미 입력되어 있는 스트림만의 단독의 출력을 하도록 했다. 이로써, 비디오 스트림과 오디오 스트림 양방의 스트림이 입력되는 것인지, 혹은 한 쪽의 스트림만이 입력되는 것인지가 불분명한 경우라도, 디코더 장치 측에서 적절하게 판단하여 출력할 수 있다.
이어서, 본 발명을 MPEG의 규격에 맞춰 실현한 경우의 예를 실시형태로 하여 상세하게 설명한다.
도 2는 본 실시형태의 시스템 구성 예를 도시하는 도면이다. 인코더 장치(100)와 디코더 장치(200)는 네트워크(10)를 통해 접속되어 있다.
인코더 장치(100)에는 카메라(11)와 마이크(12)가 접속되어 있다. 인코더 장치(100)는, 카메라(11)로부터 입력된 영상과 마이크(12)로부터 입력된 소리를 디지털 데이터로 부호화한다. 인코더 장치(100)는 부호화한 비디오 데이터와 오디오 데이터를 스트리밍에 의해서 네트워크(10) 경유로 디코더 장치(200)에 송신한다.
디코더 장치(200)에는 텔레비젼(13)이 접속되어 있다. 디코더 장치(200)는, 인코더 장치(100)로부터 스트리밍으로 보내어진 비디오 데이터와 오디오 데이터를 재생한다. 그리고, 디코더 장치(200)는 재생된 영상을 텔레비젼(13)에 표시하게 한다. 또한, 디코더 장치(200)는 재생된 음성을 텔레비젼(13)의 스피커로부터 출력시킨다.
도 3은 인코더 장치의 내부 구조를 도시하는 블럭도이다. 인코더 장치(100)는, 캡쳐부(110), 비디오 부호화부(120), 오디오 부호화부(130), 다중화부(140) 및 네트워크 인터페이스(150)를 갖고 있다.
캡쳐부(110)에는 카메라(11)로부터 비디오 신호가 입력되는 동시에, 마이크(12)로부터 오디오 신호가 입력된다. 캡쳐부(110)는, 입력된 비디오 신호와 오디오 신호를 디지털 데이터로 변환(캡쳐)한다. 그리고, 캡쳐부(110)는 비디오 신호로부터 생성된 비디오 데이터를 비디오 부호화부(120)에 대하여 출력한다. 또한, 캡쳐부(110)는, 오디오 신호로부터 생성된 오디오 데이터를 1 오디오 프레임(오디오 신호의 소정의 샘플링수마다 블록화한 재생 단위) 분만큼 내장 메모리에 저장한다. 그리고, 캡쳐부(110)는, 1 오디오 프레임의 데이터로 구획된 오디오 데이터를 오디오 부호화부(130)에 대하여 출력한다.
비디오 부호화부(120)는 캡쳐부(110)로부터 비디오 데이터를 수취한다. 또한, 비디오 부호화부(120)는 다중화부(140) 내의 STC 래치 회로(142)에 접속되어 있어, STC 래치 회로(142)로부터 STC의 값을 취득한다. STC는 영상과 음성을 동기 재생하기 위한 기준 시간이다.
비디오 부호화부(120)는 PTS 생성 회로(121)를 갖고 있다. PTS 생성 회로(121)에는 STC가 입력된다. PTS 생성 회로(121)는 취득한 STC로부터 출력 시각 정보(PTS)를 생성한다. 구체적으로는, PTS는 캡쳐시의 STC 카운터치에 오프셋α를 가산한 값이다. 여기서, 오프셋α는 비디오 데이터의 부호화에 의해서 생기는 지연 시간의 최대치이다. 오프셋α의 값은 미리 비디오 부호화부(120)의 내부 메모리에 설정되어 있다.
그리고, 비디오 부호화부(120)는 MPEG이나 H.264 부호화 방식 등으로, 비디오 데이터의 압축 부호화를 행한다. 또한, 비디오 부호화부(120)는, 부호화된 비디오 스트림(ES : Elementary Stream)과 PTS를 다중화부(140)에 출력한다.
오디오 부호화부(130)는 캡쳐부(110)로부터 오디오 데이터를 수취한다. 또한, 오디오 부호화부(130)는 다중화부(140) 내의 STC 래치 회로(142)에 접속되어 있어, STC 래치 회로(142)로부터 STC의 값을 취득한다.
오디오 부호화부(130)는 PTS 생성 회로(131)를 갖고 있다. PTS 생성 회로(131)에는 STC가 입력된다. PTS 생성 회로(131)는 취득한 STC로부터 캡쳐 시각(PTS)을 생성한다. 구체적으로는, PTS는 캡쳐시의 STC 카운터치에 오프셋β를 가산한 값이다. 여기서, 오프셋β는 오디오 데이터의 부호화에 의해서 생기는 지연 시간의 최대치이다. 오프셋β의 값은 미리 오디오 부호화부(130)의 내부 메모리에 설정되어 있다.
그리고, 오디오 부호화부(130)는 MPEG-1LayerII나 AAC(Advanced Audio Coding) 등으로, 오디오 데이터의 압축 부호화를 행한다. 또한, 오디오 부호화부(130)는, 음성의 부호화된 오디오 스트림(AES : Audio Elementary Stream)과 PTS를 다중화부(140)에 출력한다.
다중화부(140)는 비디오 스트림 및 오디오 스트림의 다중화를 행한다. 구체적으로는, 다중화부(140)는 비디오 스트림 및 오디오 스트림의 각 스트림에서 PES(Packetized Elementary Stream)로의 변환을 행한다. 또한, 다중화부(140)는 다중화 시작 시각을 산출한다. 그리고, 다중화부(140)는 다중화 시작 시각과 STC 카운터(141)의 값을 비교한다. 다중화부(140)는, STC가 다중화 시작 시각에 도달하기 직전에 PES를 시스템 스트림으로 변환하여, 시스템 스트림을 출력한다.
또한, 다중화부(140)는 STC 카운터(141)와 STC 래치 회로(142)를 갖고 있다. STC 카운터(141)는 기준 시간을 발생시킨다. STC 래치 회로(142)는 카메라(11)로부터 출력되는 수직 동기 신호(VSYNC)가 입력되고 있다. VSYNC는 화면을 전환하는 타이밍을 제어하는 신호이다. STC 래치 회로(142)는 VSYNC의 타이밍에 STC 카운터(141)의 값을 래치(유지)한다. STC 래치 회로(142)가 래치한 STC의 값은 비디오 부호화부(120)와 오디오 부호화부(130)로 보내어진다.
네트워크 인터페이스(150)는 다중화부(140)로부터 출력된 시스템 스트림을 네트워크(10) 경유로 디코더 장치(200)에 송신한다.
이러한 인코더 장치(100)에 따르면, 카메라(11)로부터 입력된 비디오 신호는 캡쳐부(110)에서 캡쳐된다. 캡쳐부(110)에서는, 1 화면 단위로 비디오 데이터를 내부 메모리에 저장한다. 그리고, 캡쳐부(110)는 그 화면 데이터를 비디오 부호화부(120)에 출력한다.
또한, 마이크(12)로부터 입력된 오디오 신호는 캡쳐부(110)에서 캡쳐된다. 캡쳐부(110)는 1 오디오 프레임마다의 오디오 데이터를 메모리에 저장한다. 그리고, 캡쳐부(110)는 오디오 데이터를 오디오 부호화부(130)에 출력한다.
비디오 부호화부(120)에서는, 1 비디오 프레임분의 화면 데이터를 수취했을 때의 STC 래치 회로(142)의 값(STC)을 취득한다. 그렇게 하면, PTS 생성 회로(121)에 의해서, STC에 오프셋α가 가산되어, 비디오 PTS가 생성된다. 이어서, 비디오 부호화부(120)는 1 비디오 프레임분의 화면 데이터 및 비디오 PTS를 입력으로 하여, MPEG나 H.264 부호화 방식 등으로 압축 부호화를 행한다. 생성되는 화상 부호화 데이터(비디오 스트림)는 복수의 패킷으로 구성되는 스트리밍 데이터이다. 비디오 PTS는 비디오 패킷의 헤더부에 설정된다. 그리고, 비디오 부호화부(120)는 화상 부호화 데이터(비디오 스트림)를 다중화부(140)에 출력한다.
오디오 부호화부(130)에서는, 1 오디오 프레임분의 오디오 데이터를 수취했을 때의 STC 래치 회로(142)의 값(STC)을 취득한다. 그렇게 하면, PTS 생성 회로(131)에 의해서, STC에 오프셋β가 가산되어, 오디오 PTS가 생성된다. 이어서, 오디오 부호화부(130)는, 1 오디오 프레임분의 오디오 데이터 및 오디오 PTS를 입력으로 하여, MPEG-1LayerII나 AAC 등으로 압축 부호화를 행한다. 생성되는 음성 부호화 데이터(오디오 스트림)는 복수의 패킷으로 구성되는 스트리밍 데이터이다. 오디오 PTS는 오디오 패킷의 헤더부에 설정된다. 그리고, 오디오 부호화부(130)는 음성 부호화 데이터(오디오 스트림)를 다중화부(140)에 출력한다.
다중화부(140)에서는, 비디오 스트림 및 오디오 스트림의 각 스트림이 다중화되어, PES 스트림으로 변환된다. 또한, 다중화부(140)에서는, 다중화 시작 시각이 산출된다(예컨대, 현재의 STC 카운터(141)의 값에 시스템 스트림으로의 변환에 드는 시간만큼의 수치를 가산한 값을 다중화 시작 시각으로 함). 다중화부(140)는, 다중화 시작 시각과 STC 카운터(141)의 값을 비교하여, STC 카운터(141)의 값이 다중화 시작 시각에 도달하기 직전에 PES 스트림을 시스템 스트림으로 변환하여, 시스템 스트림 출력을 한다.
시스템 스트림의 헤더에는 STC 카운터(141)의 값이 시각 기준 참조치로서 포함되게 된다. 여기서, 시스템 스트림이 MPEG-PS(Program Stream)라면, 시스템 시각 기준 참조치(SCR)가 시각 기준 참조치이다. 또한, 시스템 스트림이 MPEG-TS(Transport Stream)라면, 프로그램 시각 기준 참조치(PCR)가 시각 기준 참조치이다. 시각 기준 참조치는, 디코더 장치(200)에 있어서의 기준 시각이 되는 STC의 값을 셋트하기 위한 정보이다.
다중화부(140)로부터 출력된 시스템 스트림은 네트워크 인터페이스(150)를 통해 디코더 장치(200)에 송신된다.
도 4는 디코더 장치의 내부 구조를 도시하는 블럭도이다. 디코더 장치(200)는 네트워크 인터페이스(210), 분리부(220), 비디오 복호부(230), 오디오 복호부(240), PTS 제어부(250), 화상 출력부(260) 및 음성 출력부(270)를 갖고 있다.
네트워크 인터페이스(210)는 인코더 장치(100)로부터 송신된 시스템 스트림을 네트워크(10) 경유로 수신한다. 그리고, 네트워크 인터페이스(210)는 수신한 시스템 스트림을 분리부(220)에 건넨다.
분리부(220)는 시스템 스트림을 비디오 스트림 및 오디오 스트림으로 분리한다. 구체적으로는, 스트림 분리부(221)가 설치되어 있다. 스트림 분리부(221)는, 시스템 스트림의 헤더로부터 시각 기준 참조치를 추출하여, STC 카운터(222)에 건넨다. 또한, 스트림 분리부(221)는, 시스템 스트림을 PES로 변환한 후, PES에 포함되는 패킷을 비디오 패킷과 오디오 패킷으로 분류한다. 또한, 스트림 분리부(221)는, 비디오 패킷으로부터 비디오 스트림을 생성하고, 오디오 패킷으로부터 오디오 스트림을 생성한다. 그리고, 스트림 분리부(221)는, 비디오 스트림을 비디오 복호부(230)에 송신하고, 오디오 스트림을 오디오 복호부(240)에 송신한다.
또한, 분리부(220) 내의 STC 카운터(222)는, 스트림 분리부(221)로부터 건네받은 시각 기준 참조치를 참조하여, STC를 재현한다. 한편, 시각 기준 참조치를 이용한 STC의 재현 기술에는, MPEG 등의 각 규격에서 정해진 기술이 이용된다.
더욱이, 분리부(220)에는 STC 래치 회로(223)가 설치되어 있다. STC 래치 회로(223)에는 화상 출력부(260)로부터 VSYNC가 입력되고 있다. 그리고, STC 래치 회로(223)는 VSYNC의 타이밍에 STC 카운터(222)의 값을 래치(유지)한다. STC 래치 회로(223)가 래치한 STC의 값은, PTS 제어부(250), 화상 출력부(260) 및 음성 출력부(270)에 보내어진다.
비디오 복호부(230)는, 화상의 부호화 데이터(비디오 스트림)를 수취하면, 비디오 스트림을 복호하여, 비디오 데이터를 재생한다. 비디오 복호부(230)는 재생한 비디오 데이터를 화상 출력부(260)에 송신한다. 송신하는 1 비디오 스트림마다의 비디오 데이터에는 그 화상의 출력할 때를 나타내는 비디오 PTS가 부여된다. 또한, 비디오 복호부(230)는 PTS 추출부(231)를 갖고 있다. PTS 추출부(231)는 비디오 스트림의 헤더로부터 최초의 비디오 PTS(비디오 선두 PTS)를 추출하여, PTS 제어부(250)에 건넨다. 또, 비디오 복호부(230)는, 비디오 선두 PTS에 한하지 않고, 비디오 스트림으로부터 순차 추출되는 비디오 PTS를 전부 PTS 제어부(250)에 건네도록 하더라도 좋다.
오디오 복호부(240)는, 음성의 부호화 데이터(오디오 스트림)를 수취하면, 오디오 스트림을 복호하여, 오디오 데이터를 재생한다. 또한, 오디오 복호부(240)는 PTS 추출부(241)를 갖고 있다. PTS 추출부(241)는 오디오 스트림의 헤더로부터 최초의 오디오 PTS(오디오 선두 PTS)를 추출하여, PTS 제어부(250)에 건넨다. 또, 오디오 복호부(240)는, 오디오 선두 PTS에 한하지 않고, 오디오 스트림으로부터 순차 추출되는 오디오 PTS를 전부 PTS 제어부(250)에 건네도록 하더라도 좋다. 오디오 복호부(240)에는, PTS 제어부(250)로부터, 비디오 데이터의 각 비디오 PTS와 VSYNC가 출력되는 STC와의 차분치가 입력된다.
오디오 복호부(240)는, 오디오 스트림 헤더로부터 추출한 오디오 PTS에, PTS 제어부(250)로부터 수취한 차분치를 가감산하여, 1 오디오 프레임마다의 오디오 데이터의 오디오 PTS로 한다. 그리고, 오디오 복호부(240)는, 차분치에 의해서 보정된 오디오 PTS를 1 오디오 프레임마다의 오디오 데이터에 부여하여, 그 오디오 데이터를 음성 출력부(270)에 송신한다.
PTS 제어부(250)는, 비디오 복호부(230)와 오디오 복호부(240)의 각각으로부터 비디오 선두 PTS와 오디오 선두 PTS를 수취하고, 취득한 PTS에 기초하여 화상과 음성의 출력 타이밍을 제어한다. 구체적으로는, PTS 제어부(250)에는 STC 래치 회로(223)에 래치된 STC가 입력되고 있다. PTS 제어부(250)는, 비디오 데이터의 최초의 비디오 프레임의 비디오 선두 PTS와 VSYNC가 출력될 때의 STC와의 차분치를 계산한다. 그리고, PTS 제어부(250)는 계산한 차분치를 오디오 복호부(240)에 건넨다.
또한, PTS 제어부(250)는, 비디오 복호부(230)로부터 입력된 비디오 선두 PTS와 오디오 복호부(240)로부터 입력된 오디오 선두 PTS를 비교하여, 비디오 데이터와 오디오 데이터의 출력 시작할 때를 판단한다. 그리고, PTS 제어부(250)는, 화상 출력 시작할 때를 나타내는 PTS(화상 출력 시작 PTS)를 화상 출력부(260)에 송신하는 동시에, 음성 출력 시작할 때를 나타내는 PTS(음성 출력 시작 PTS)를 음성 출력부(270)에 송신한다.
더욱이, PTS 제어부(250)는, 비디오 복호부(230)와 오디오 복호부(240)의 어느 한 쪽으로부터 PTS(비디오 선두 PTS 또는 오디오 선두 PTS)가 입력되면, 타이머에 의한 시간 계측을 시작한다. 다른 쪽의 PTS가 소정의 시간 내에 입력되지 않은 경우(타임아웃 발생), PTS 제어부(250)는 비디오 데이터 또는 오디오 데이터만의 스트리밍이라고 판단한다. 비디오 복호부(230)로부터 비디오 선두 PTS가 입력된 후, 소정 기간 내에 오디오 복호부(240)로부터 오디오 선두 PTS가 입력되지 않은 경우, 화상 출력부(260)에 대해서만 화상 출력 시작 PTS를 송신한다. 또한, 오디오 복호부(240)로부터 오디오 선두 PTS가 입력된 후, 소정 기간 내에 비디오 복호부(230)로부터 비디오 선두 PTS가 입력되지 않은 경우, 음성 출력부(270)에 대하여만 음성 출력 시작 PTS를 송신한다.
화상 출력부(260)는, 비디오 복호부(230)로부터 입력된 비디오 데이터를 텔레비젼(13)의 모니터(13a)에 표시한다. 또, 1 비디오 프레임마다의 화면의 전환은 VSYNC의 타이밍에 이루어진다. VSYNC는, 화상 출력부(260) 내의 회로로부터 소정 주기로 발신되고 있다. 또한, VSYNC는 분리부(220) 내의 STC 래치 회로(223)에 대하여 출력되고 있다.
또, 화상 출력부(260)는 1 비디오 프레임마다의 비디오 데이터를 축적하는 화상 버퍼(261)를 갖고 있다. 화상 출력부(260)는 비디오 복호부(230)로부터 수취한 비디오 데이터를 일시적으로 화상 버퍼(261)에 축적한다. 그리고, 화상 출력부(260)는, PTS 제어부(250)로부터 화상 출력 시작 PTS를 수취하면, 화상 출력 시작 PTS보다 작은 값의 PTS가 부여된 비디오 데이터를 무효 데이터로 한다.
더욱이, 화상 출력부(260)에는 STC 래치 회로(223)로부터 STC가 입력되고 있다. 그리고, 화상 출력부(260)는, 화상 출력 시작 PTS 이후의 PTS가 부여된 비디오 데이터를, 부여된 PTS의 값과 STC의 값이 일치하는 타이밍에 모니터(13a)에 표시한다. 또, 무효로 된 비디오 데이터와 표시가 종료된 비디오 데이터는 화상 버퍼(261)로부터 삭제된다.
음성 출력부(270)는, 오디오 복호부(240)로부터 입력된 오디오 데이터에 의해 나타내어지는 소리를 텔레비젼(13)의 스피커(13b)로부터 출력한다. 한편, 음성 출력부(270)는 1 오디오 프레임마다의 오디오 데이터를 축적하는 음성 버퍼(271)를 갖고 있다. 음성 출력부(270)는, 오디오 복호부(240)로부터 수취한 오디오 데이터를 일시적으로 음성 버퍼(271)에 축적한다. 그리고, 음성 출력부(270)는, PTS 제어부(250)로부터 음성 출력 시작 PTS를 수취하면, 음성 출력 시작 PTS보다 작은 값의 PTS가 부여된 오디오 데이터를 무효 데이터로 한다.
또한, 음성 출력부(270)에는 STC 래치 회로(223)로부터 STC가 입력되고 있다. 그리고, 음성 출력부(270)는, 음성 출력 시작 PTS 이후의 PTS가 부여된 오디오 데이터를, 부여된 PTS의 값과 STC의 값이 일치하는 타이밍에 음성 신호로 변환하여, 스피커(13b)에 출력한다. 또, 무효로 된 오디오 데이터와 출력이 종료된 오디오 데이터는 음성 버퍼(271)로부터 삭제된다.
이러한 디코더 장치(200)에 따르면, 네트워크 인터페이스(210)에 의해서, 인코더 장치(100)가 송신한 시스템 스트림이 수신된다. 수신한 시스템 스트림은 분리부(220)에 보내어진다. 입력된 시스템 스트림은, 분리부(220)에서 PES 스트림으로 변환된 후, 비디오 스트림 및 오디오 스트림으로 변환된다. 비디오 스트림은 비디오 복호부(230)에 출력되고, 오디오 스트림은 오디오 복호부(240)에 출력된다.
또한, 분리부(220)에 있어서 시스템 스트림으로부터 시각 기준 참조치(PCR 또는 SCR)가 추출되어, STC 재생이 이루어진다. 재생된 STC는 STC 카운터(222)에 셋트된다. STC 카운터(222)의 값은, VSYNC 신호 입력의 타이밍에, STC 래치 회로(223)에 래치된다. 래치된 STC의 값은 PTS 제어부(250), 화상 출력부(260) 및 음성 출력부(270)에 출력된다.
비디오 스트림은 비디오 복호부(230)에서 복호된다. 복호된 비디오 데이터는 1 비디오 프레임마다 PTS가 부여되어, 화상 출력부(260)에 보내어진다. 또한, 비디오 복호부(230)의 PTS 추출부(231)에서는 비디오 스트림의 패킷 헤더로부터 비디오 선두 PTS가 추출된다. 추출된 비디오 선두 PTS는 PTS 제어부(250)에 보내어진다.
PTS 제어부(250)에서는, 비디오 선두 PTS와 VSYNC 출력시의 STC와의 차분치가 계산된다. 계산된 차분치는 오디오 복호부(240)에 보내어진다.
오디오 스트림은 오디오 복호부(240)에서 복호된다. 복호된 오디오 데이터는 1 오디오 프레임마다 오디오 PTS가 부여된다. 그 때, 각 오디오 프레임의 오디오 PTS는 PTS 제어부(250)로부터 입력된 차분치만큼 가감산된다. 그리고, 차분치에 의한 보정 후의 PTS가 부여된 오디오 프레임마다의 오디오 데이터가 음성 출력부(270)에 보내어진다. 또한, 오디오 복호부(240)의 PTS 추출부(241)에서는, 오디오 스트림의 패킷 헤더로부터 오디오 선두 PTS가 추출된다. 추출된 오디오 선두 PTS는 PTS 제어부(250)에 보내어진다.
PTS 제어부(250)에서는, 비디오 선두 PTS와 오디오 선두 PTS의 어느 한 쪽이 입력되면, 카운터에 의한 시간 계측을 시작한다. 그리고, 미리 지정된 시간 내에 다른 쪽의 PTS가 입력되면, PTS 제어부(250)에 있어서, 화상과 음성의 동시 출력 제어가 이루어진다. 또한, 한 쪽의 PTS 입력 후의 소정 시간 내에 다른 쪽의 PTS가 입력되지 않으면, PTS 제어부(250)에 있어서, 화상 또는 음성 중 어느 한 쪽만의 출력 제어가 이루어진다.
동시 출력 제어에서는, PTS 제어부(250)는, 비디오 선두 PTS와 오디오 선두 PTS 중 큰 쪽의 값에 출력 시작 시각을 맞춘다. 이 때, 비디오 선두 PTS의 값 쪽이 크면, 비디오 선두 PTS의 값이 비디오 출력 시작 PTS 및 오디오 출력 시작 PTS로 된다. 또한, 오디오 선두 PTS의 값 쪽이 크면, 오디오 선두 PTS보다 큰 비디오 PTS 중의 최소치가 비디오 출력 시작 PTS 및 오디오 출력 시작 PTS로 된다. 그리고, PTS 제어부(250)로부터 화상 출력부(260)에 비디오 출력 시작 PTS가 송신되고, 음성 출력부(270)에 오디오 출력 시작 PTS가 송신된다.
또, PTS 제어부(250)에서는, 비디오 복호부(230)로부터 순차 비디오 PTS가 입력되고 있으면, 그 비디오 PTS의 값에 기초하여 오디오 선두 PTS보다 큰 비디오 PTS 중의 최소치를 판단할 수 있다. 비디오 복호부(230)로부터 비디오 선두 PTS밖에 입력되고 있지 않은 경우, PTS 제어부(250)는, 비디오 선두 PTS의 값에 대하여 1 프레임분의 PTS 수를 순차 가산한 값을 계산함으로써, 후속의 비디오 PTS의 값을 구한다. 그리고, PTS 제어부(250)는, 산출한 비디오 PTS에 기초하여, 오디오 선두 PTS보다 큰 비디오 PTS 중의 최소치를 판단할 수 있다.
화상 출력부(260)에서는, 비디오 복호부(230)로부터 수취한 비디오 데이터가 화상 버퍼(261)에 저장된다. 화상 출력부(260)에서는, PTS 제어부(250)로부터 입력된 비디오 출력 시작 PTS보다 나중의 PTS가 부여된 비디오 데이터로부터 모니터(13a)에의 출력을 시작한다. 그 이전의 PTS가 부여된 비디오 데이터는 화상 버퍼(261)로부터 삭제된다. 비디오 데이터를 출력할 때는, STC 래치 회로(223)로부터 입력되는 STC에 기초하여, 다음 VSYNC의 타이밍에 출력하는 PTS의 값의 범위가 판단된다. 그리고, 출력하는 타이밍이 된 PTS가 부여된 비디오 데이터가 VSYNC와 동기하여 모니터(13a)에 출력된다.
음성 출력부(270)에서는, 오디오 복호부(240)로부터 수취한 오디오 데이터가 음성 버퍼(271)에 저장된다. 음성 출력부(270)에서는, PTS 제어부(250)로부터 입력된 오디오 출력 시작 PTS보다 앞의 오디오 데이터가 무효의 데이터(예컨대, 무음이 되는 것과 같은 데이터)로 변환된다. 그리고, STC 래치 회로(223)로부터 입력되는 STC의 값에 따른 PTS의 출력 범위에 해당하는 PTS가 부여된 오디오 데이터가 음성 신호로 변환되어, 스피커(13b)에 출력된다.
이와 같이 하여, 화상 출력과 음성 출력을 매우 정확하게 동기시킬 수 있다. 즉, 화상은 VSYNC에 동기하여 표시시킬 필요가 있기 때문에, VSYNC의 출력 시각과 PTS와 STC가 일치하는 시각과의 차분에 따른 오차가 생긴다. 그래서, 비디오 데이터에 부여하는 PTS에, 비디오 데이터의 PTS와 VSYNC가 출력되는 시각의 STC와의 차분치를 가감산함으로써, 오디오 데이터에 대해서도 VSYNC에 동기시킬 수 있다. 그 결과, 화상과 음성을 정확하게 동기시켜 출력할 수 있다.
한편, 도 4의 예에서는, STC 래치 회로(223)가 분리부(220) 내에 설치되어 있지만, STC 래치 회로(223)는 PTS 제어부(250) 내에 설치할 수도 있다. STC 래치 회로(223)가 PTS 제어부(250) 내에 설치된 경우, STC 카운터(222)의 값을 PTS 제어부(250)에 입력하는 동시에, 화상 출력부(260)로부터 PTS 제어부(250)에 VSYNC를 입력할 필요가 있다. 또한, 화상 출력부(260)와 음성 출력부(270)에의 STC의 공급은 PTS 제어부(250)에 설치된 STC 래치 회로에서 이루어진다.
여기서, VSYNC가 출력된 타이밍에 표시할 수 있는 PTS의 범위에 관해서 설명한다.
도 5는 비디오 출력에 있어서의 표시 프레임의 유효 범위를 도시하는 도면이다. 도 5에는, 위에서부터 차례로, 비디오 프레임의 PTS치, 비디오 표시 타이밍, VSYNC 출력시의 STC치 및 VSYNC 출력 타이밍이 시계열로 나타내어져 있다.
비디오 측에서 이용되는 VSYNC에 동기한 비디오 프레임의 표시에 있어서, 어느 VSYNC의 STC치에 대하여 표시할 수 있는 비디오 프레임은 어느 STC를 기준으로 하여, 그 STC의 시각을 포함하는 1 프레임 시간의 시간대에 존재하는 비디오 프레임이다(한편, 이것은 일례이며, 1 프레임 시간이 중복되지 않도록 범위가 정해져 있으면 된다).
예컨대, 도 5의 예에 나타내는 바와 같이, 1 비디오 프레임 진행할 때마다의 PTS의 값의 증가가 3003인 경우, STC : 9003일 때의 표시 가능한 비디오 프레임은 비디오 PTS의 값이 7502~10504인 비디오 프레임이다.
한편, 1 비디오 프레임 진행할 때마다의 PTS의 값의 증가는 프레임 레이트에 의해서 결정된다. 프레임 레이트는 화상의 방송 방식에 의해서 정해지고 있다. 비디오의 프레임 레이트가 59.94 Hz(NTSC) 및 50 Hz(PAL : Phase Alternation by Line)일 때의 1 비디오 프레임분의 PTS 값은 각각 다음과 같다.
?프레임 레이트가 59.94 Hz(NTSC)일 때, 1 비디오 프레임분의 PTS 값(90 KHz 환산)은 3003이다.
?프레임 레이트가 50 Hz(PAL)일 때, 1 비디오 프레임분의 PTS 값(90 KHz 환산)은 3600이다.
따라서, 어느 STC치(T)에 있어서의 표시 가능한 PTS의 범위는 다음과 같이 된다.
?프레임 레이트가 59.94 Hz인 경우
T-1501≤PTS<T+1502
?프레임 레이트가 50 Hz인 경우
T-1800≤PTS<T+1800
예컨대, 도 5에서는 PTS가 7502~10504의 범위 내에 있는 비디오 프레임은, STC치가 9003일 때에 표시할 수 있다. 또한, PTS가 10505~13507의 범위 내에 있는 비디오 프레임은 STC치가 12006일 때에 표시할 수 있다.
이어서, PTS 제어부(250)가 실행하는 처리의 순서를 설명한다.
도 6은 PTS 제어 장치의 처리 순서를 도시하는 플로우차트이다. 이하, 도 6에 도시하는 처리를 단계 번호를 따라서 설명한다.
[단계 S11] PTS 제어부(250)는, 비디오 복호부(230) 또는 오디오 복호부(240) 중 어느 것으로부터 PTS가 입력되었는지 여부를 판단한다. PTS가 입력되었으면 처리가 단계 S12로 진행되게 된다. PTS가 입력되고 있지 않은 경우, 단계 S11의 처리가 반복된다.
[단계 S12] PTS 제어부(250)는, 입력된 PTS가 비디오 복호부(230)로부터의 비디오 선두 PTS인 것인지 혹은 오디오 복호부(240)로부터의 오디오 선두 PTS인 것인지를 판단한다. 비디오 선두 PTS가 입력된 경우, 처리가 단계 S13으로 진행되게 된다. 오디오 선두 PTS가 입력된 경우, 처리가 단계 S18로 진행되게 된다.
[단계 S13] 비디오 선두 PTS가 입력되면, PTS 제어부(250)는 타이머에 의한 시간 계측을 스타트한다.
[단계 S14] PTS 제어부(250)는, 오디오 복호부(240)로부터 오디오 선두 PTS가 입력되었는지 여부를 판단한다. 오디오 선두 PTS가 입력된 경우, 처리가 단계 S23으로 진행되게 된다. 오디오 선두 PTS가 입력되고 있지 않은 경우, 처리가 단계 S15로 진행되게 된다.
[단계 S15] PTS 제어부(250)는, 오디오 선두 PTS 대기 시간이 타임아웃으로 되었는지 여부를 판단한다. 구체적으로는, PTS 제어부(250) 내의 메모리에는 오디오 선두 PTS 대기 시간이 미리 설정되어 있다. 그리고, PTS 제어부(250)는, 타이머에 의해 계측된 시간이 오디오 선두 PTS 대기 시간을 넘은 경우, 타임아웃이라고 판단한다. 타임아웃으로 된 경우, 처리가 단계 S16으로 진행되게 된다. 타임아웃으로 되고 있지 않은 경우, 처리가 단계 S14로 진행되어 오디오 선두 PTS가 입력되는 것을 기다린다.
[단계 S16] 타임아웃으로 되면, PTS 제어부(250)는 STC 래치 회로(223)에 래치된 STC를 수신한다.
[단계 S17] PTS 제어부(250)는, 화상 출력부(260)에 대하여, 비디오 스트림(ES)의 STC 동기 출력의 시작을 지시한다. 구체적으로는, PTS 제어부(250)는, 단계 S16에서 수신한 STC를 비디오 출력 시작 PTS로서, 화상 출력부(260)에 대하여 출력한다. 그렇게 하면, 화상 출력부(260)에서는, 비디오 출력 시작 PTS 이후의 PTS가 부여된 화상 데이터가 STC에 동기하여 순차 출력된다. 그 후, PTS 제어부(250)의 처리가 종료된다.
[단계 S18] 오디오 선두 PTS가 입력되면, PTS 제어부(250)는 타이머에 의한 시간 계측을 스타트한다.
[단계 S19] PTS 제어부(250)는, 비디오 복호부(230)로부터 비디오 선두 PTS가 입력되었는지 여부를 판단한다. 비디오 선두 PTS가 입력된 경우, 처리가 단계 S23으로 진행되게 된다. 비디오 선두 PTS가 입력되고 있지 않은 경우, 처리가 단계 S20으로 진행되게 된다.
[단계 S20] PTS 제어부(250)는, 비디오 선두 PTS 대기 시간이 타임아웃으로 되었는지 여부를 판단한다. 구체적으로는, PTS 제어부(250) 내의 메모리에는 비디오 선두 PTS 대기 시간이 미리 설정되어 있다. 그리고, PTS 제어부(250)는, 타이머에 의해 계측된 시간이 비디오 선두 PTS 대기 시간을 넘은 경우, 타임아웃이라고 판단한다. 타임아웃으로 된 경우, 처리가 단계 S21로 진행되게 된다. 타임아웃으로 되고 있지 않은 경우, 처리가 단계 S19로 진행되어 비디오 선두 PTS가 입력되는 것을 기다린다.
[단계 S21] 타임아웃으로 되면, PTS 제어부(250)는 STC 래치 회로(223)에 래치된 STC를 수신한다.
[단계 S22] PTS 제어부(250)는, 음성 출력부(270)에 대하여, 오디오 스트림(AES)의 STC 동기 출력의 시작을 지시한다. 구체적으로는, PTS 제어부(250)는, 단계 S21에서 수신한 STC를 오디오 출력 시작 PTS로서, 음성 출력부(270)에 대하여 출력한다. 그렇게 하면, 음성 출력부(270)에서는, 오디오 출력 시작 PTS 이후의 PTS가 부여된 음성 데이터가 STC에 동기하여 순차 출력된다. 그 후, PTS 제어부(250)의 처리가 종료된다.
[단계 S23] PTS 제어부(250)는 STC 래치 회로(223)에 래치된 STC를 수신한다.
[단계 S24] PTS 제어부(250)는 출력 시작시의 PTS를 취득한다. 구체적으로는, PTS 제어부(250)는, 비디오 복호부(230)로부터 입력된 비디오 선두 PTS와 단계 S23에서 취득한 STC를 비교한다. 이어서, PTS 제어부(250)는, 취득한 STC에 따른 표시 가능한 PTS 범위를 판단한다(도 5 참조). 여기서, 1 비디오 프레임 진행할 때마다의 PTS의 값의 증가수는 프레임 레이트에 따라서 결정되고 있다. 그 때문에, PTS 제어부(250)는, 비디오 선두 PTS에 기초하여, 비디오 선두 PTS 이후의 각 비디오 프레임의 비디오 PTS의 값을 산출할 수 있다. 그래서, PTS 제어부(250)는, 비디오 복호부(230)로부터 출력되는 1 비디오 프레임마다의 화상 데이터의 PTS 중에서, 단계 S23에서 취득한 STC에서 표시 가능한 PTS 범위에 포함되는 PTS를 판단한다. 그리고, PTS 제어부(250)는, 표시 가능한 PTS를 출력 시작시의 비디오 PTS(비디오 출력 시작 PTS)로 한다.
[단계 S25] PTS 제어부(250)는, 단계 S23에서 취득한 STC와 비디오 출력 시작 PTS와의 차분치를 계산한다. 예컨대, 취득한 STC의 값으로부터, 출력 시작시의 PTS의 값이 감산된다. 도 5에 도시한 바와 같이, STC에 따라서 표시할 수 있는 PTS는 해당하는 STC보다도 값이 큰 경우와 작은 경우가 있다. STC보다도 PTS 쪽이 크면, 감산 결과(차분치)는 마이너스의 수가 된다. STC보다도 PTS 쪽이 작으면, 감산 결과(차분치)는 플러스의 수가 된다. 산출된 차분치가 오디오 복호부(240)에 건네진다. 이로써, 오디오 복호부(240)에서는, 오디오 프레임의 각 PTS에 차분치를 가산(실질적으로는 차분치의 플러스?마이너스에 따른 가감산)함으로써, 비디오와의 프레임 표시 오차를 보정할 수 있다.
[단계 S26] PTS 제어부(250)는 비디오 선두 PTS와 오디오 선두 PTS를 비교한다. 비디오 선두 PTS 쪽이 크면, 처리가 단계 S27로 진행되게 된다. 비디오 선두 PTS와 오디오 선두 PTS의 값이 동일하면, 처리가 단계 S28로 진행되게 된다. 오디오 선두 PTS 쪽이 크면, 처리가 단계 S29로 진행되게 된다.
[단계 S27] 비디오 선두 PTS 쪽이 큰 경우, PTS 제어부(250)는, 비디오 PTS에 맞춘 영상?음성의 동시 출력의 시작을 지시한다. 구체적으로는, PTS 제어부(250)는, 비디오 출력 시작 PTS를 화상 출력부(260)에 대하여 송신하는 동시에, 비디오 출력 시작 PTS와 동일한 값의 오디오 출력 시작 PTS를 음성 출력부(270)에 대하여 출력한다. 그렇게 하면, 음성 출력부(270)에서는, 오디오 스트림(AES)의 선두의 오디오 프레임으로부터 오디오 출력 시작 PTS에 의해 나타내어지는 시각 이전의 음성 데이터는 무효 데이터로 재기록된다. 그 결과, 영상과 음성이 동시에 출력 시작된다. 그 후, PTS 제어부(250)의 처리가 종료된다.
[단계 S28] 비디오 선두 PTS와 오디오 선두 PTS의 값이 동일한 경우, PTS 제어부(250)는 영상?음성의 동시 출력의 시작을 지시한다. 구체적으로는, PTS 제어부(250)는, 비디오 출력 시작 PTS를 화상 출력부(260)에 대하여 송신하는 동시에, 비디오 출력 시작 PTS와 동일한 값의 오디오 출력 시작 PTS를 음성 출력부(270)에 대하여 출력한다. 그렇게 하면, 화상 출력부(260)와 음성 출력부(270)는 함께 스트림의 선두의 프레임으로부터 출력을 시작한다. 그 후, PTS 제어부(250)의 처리가 종료된다.
[단계 S29] 오디오 선두 PTS 쪽이 큰 경우, PTS 제어부(250)는, 오디오 PTS에 맞춘 영상?음성의 동시 출력의 시작을 지시한다. 구체적으로는, PTS 제어부(250)는, 오디오 선두 PTS보다 큰 비디오 PTS 중의 최소의 값을 판단하여, 그 비디오 PTS의 값을 비디오 출력 시작 PTS로서 화상 출력부(260)에 대하여 송신하는 동시에, 그 비디오 PTS의 값을 오디오 출력 시작 PTS로서 음성 출력부(270)에 대하여 출력한다. 그렇게 하면, 화상 출력부(260)에서는, 비디오 스트림(ES)의 선두의 비디오 프레임으로부터 비디오 출력 시작 PTS보다 앞의 PTS가 부여된 비디오 프레임까지는 무효 데이터로 재기록된다. 그리고, 화상 출력부(260)에 의해서 비디오 출력 시작 PTS 이후의 비디오 프레임에 의한 영상이 출력된다.
또한, 음성 출력부(270)에서는, 오디오 선두 PTS가 첨부된 오디오 프레임(오디오 스트림의 선두의 오디오 프레임)으로부터 음성 출력을 시작한다. 단, 음성 출력부(270)는, 오디오 출력 시작 PTS에 의해 나타내어진 시각 이전의 음성 데이터를 무효 데이터로 재기록한다. 즉, 비디오의 1 비디오 프레임분의 시간과, 오디오 프레임의 1 오디오 프레임분의 시간은 일치하지 않기 때문에, 비디오와 오디오가 동시에 샘플링 시작되고 있지 않는(비디오 선두 PTS와 오디오 선두 PTS가 불일치) 경우, 오디오 선두 PTS는 비디오 PTS와 틀어져 버린다. 그래서, 음성 출력부(270)에서는, 오디오 선두 PTS로부터 오디오 출력 시작 PTS(오디오 선두 PTS 이후의 최초의 비디오 PTS와 동일한)까지의 시간은 무효 데이터(무음의 데이터)로 치환함으로써 음성 출력의 시작을 늦춘다. 그 결과, 영상과 음성의 동시 출력이 시작된다. 그 후, PTS 제어부(250)의 처리가 종료된다.
또, 오디오 선두 PTS 쪽이 큰 경우, 비디오 선출(先出) 출력 제어를 행할 수도 있다. 그 경우, PTS 제어부(250)는, 비디오 선두 PTS의 값을 비디오 출력 시작 PTS로서 화상 출력부(260)에 대하여 송신한다. 또한, PTS 제어부(250)는, 오디오 선두 PTS의 값을 오디오 출력 시작 PTS로서 음성 출력부(270)에 대하여 송신한다. 그렇게 하면, 화상 출력부(260)에 의한 영상 출력 쪽이 음성 출력부(270)에 의한 음성출력보다도 먼저 시작된다.
이어서, 비디오 선두 PTS와 오디오 선두 PTS가 동일한 경우에, 화상과 음성을 정확하게 동기시킨 출력 예를 타이밍차트를 이용하여 설명한다.
도 7은 인코더 장치에 의한 인코드 처리를 나타내는 타이밍차트이다. 도 7에는, 위에서부터 차례로, 비디오 데이터, 오디오 데이터, STC, 비디오 스트림(ES) 및 오디오 스트림(AES)의 시간 천이가 나타내어져 있다.
비디오 데이터의 시간 천이로서는, 비디오 부호화부(120)에 입력되는 1 비디오 프레임마다의 비디오 데이터가 나타내어져 있다. 오디오 데이터의 시간 천이로서는, 오디오 부호화부(130)에 입력되는 1 오디오 프레임마다의 오디오 데이터가 나타내어져 있다. STC의 시간 천이로서는, 비디오 부호화부(120) 또는 오디오 부호화부(130)가 STC 래치 회로(142)로부터 취득한 STC의 값이 나타내어져 있다.
비디오 스트림의 시간 천이로서는, 비디오 부호화부(120)로부터 출력되는 비디오 패킷의 천이가 나타내어져 있다. 또한, 비디오 패킷의 출력 시작 시각의 위치에, 그 비디오 패킷의 패킷 헤더에 부여되는 비디오 PTS의 값이 나타내어져 있다.
오디오 스트림의 시간 천이로서는, 오디오 부호화부(130)로부터 출력되는 오디오 패킷의 천이가 나타내어져 있다. 또한, 오디오 패킷의 출력 시작 시각의 위치에, 그 오디오 패킷의 패킷 헤더에 부여되는 오디오 PTS의 값이 나타내어져 있다.
도 7의 예에서는, 비디오 데이터와 오디오 데이터가 동시에 인코더 장치(100)에 입력 시작되고 있다. 비디오 데이터의 1 비디오 프레임분의 시간은 「T_Video」로 나타내어져 있다. 「T_Video」의 시간 주기로 1 비디오 프레임분의 비디오 데이터(Video1, Video2, …)가 순차 비디오 부호화부(120)에 입력되고 있다.
오디오 데이터의 1 오디오 프레임분의 시간은 「T_Audio」로 나타내어져 있다. 「T_Audio」의 시간 주기로 1 오디오 프레임분의 오디오 데이터(Audio1, Audio2, …)가 순차 오디오 부호화부(130)에 입력되고 있다.
비디오 부호화부(120)에서 부호화 데이터가 생성되면, 비디오 스트림이 출력된다. 비디오 스트림은 1 비디오 프레임분의 비디오 패킷군(VideoAU1, VideoAU2, …)으로 분리할 수 있다. 도 7의 예에서는, 최초의 비디오 프레임의 비디오 패킷군「VideoAU1」의 출력 시작시의 STC의 값은 「STC_Video1」이다. 2번째의 비디오 프레임의 비디오 패킷군「VideoAU2」의 출력 시작시의 STC의 값은 「STC_Video2」이다.
각 비디오 프레임을 구성하는 비디오 패킷군(VideoAU1, VideoAU2, …)의 선두의 비디오 패킷의 패킷 헤더에는 비디오 PTS가 설정된다. 최초의 비디오 프레임의 비디오 패킷군(VideoAU1)의 선두의 비디오 패킷에는 그 비디오 프레임의 비디오 PTS(PTS_V1)가 설정된다. PTS_V1의 값은 비디오 패킷 출력시의 STC의 값(STC_Video1)에 소정의 부호화 지연 시간의 최대치α를 가산한 값이다. 2번째 비디오 프레임의 비디오 패킷군(VideoAU2)의 선두의 비디오 패킷에는 그 비디오 프레임의 비디오 PTS(PTS_V2)가 설정된다. 「PTS_V2」의 값은 직전의 비디오 프레임의 비디오 PTS의 값「PTS_V1」에, 1 비디오 프레임분의 시간「T_Video」를 가산한 값이다.
오디오 부호화부(130)에서 부호화 데이터가 생성되면, 오디오 스트림이 출력된다. 오디오 스트림은 1 오디오 프레임분의 오디오 패킷군(AudioAU1, AudioAU2, …)으로 분리할 수 있다. 도 7의 예에서는, 최초의 오디오 프레임의 오디오 패킷군「AudioAU1」의 출력 시작시의 STC의 값은 「STC_Audio1」이다. 2번째 오디오 프레임의 오디오 패킷군「AudioAU2」의 출력 시작시의 STC의 값은 「STC_Audio2」이다.
각 오디오 프레임을 구성하는 오디오 패킷군(AudioAU1, AudioAU2, …)의 선두의 오디오 패킷의 패킷 헤더에는 오디오 PTS가 설정된다. 최초의 오디오 프레임의 오디오 패킷군(AudioAU1)의 선두의 오디오 패킷에는 그 오디오 프레임의 오디오 PTS(PTS_A1)가 설정된다. PTS_A1의 값은 오디오 패킷 출력시의 STC의 값(STC_Audio1)에 소정의 부호화 지연 시간의 최대치β를 가산한 값이다. 2번째 오디오 프레임의 오디오 패킷군(AudioAU2)의 선두의 오디오 패킷에는 그 오디오 프레임의 오디오 PTS(PTS_A2)가 설정된다. 「PTS_A2」의 값은 직전의 오디오 프레임의 오디오 PTS의 값「PTS_A1」에, 1 오디오 프레임분의 시간「T_Audio」를 가산한 값이다.
이어서, 디코드 처리의 순서를 설명한다.
도 8은 디코더 장치에 의한 디코드 처리를 도시하는 타이밍차트이다. 도 8에는, 위에서부터 차례로, 비디오 스트림, 오디오 스트림, STC, VSYNC(수직 동기 신호), 비디오 데이터 및 오디오 데이터의 시간 천이가 나타내어져 있다.
비디오 스트림의 시간 천이로서는, 비디오 복호부(230)에 입력되는 비디오 스트림의 비디오 패킷의 천이가 나타내어져 있다. 비디오 패킷은 1 비디오 프레임마다의 집합(비디오 패킷군)으로 나눠 나타내어져 있다. 또한, 괄호쓰기로, 그 비디오 패킷군의 선두의 비디오 패킷에 부여된 비디오 PTS가 나타내어져 있다.
오디오 스트림의 시간 천이로서는, 오디오 복호부(240)에 입력되는 오디오 스트림의 오디오 패킷의 천이가 나타내어져 있다. 오디오 패킷은 1 오디오 프레임마다의 집합(오디오 패킷군)으로 나눠 나타내어져 있다. 또한, 괄호쓰기로, 그 오디오 패킷군의 선두의 오디오 패킷에 부여된 오디오 PTS가 나타내어져 있다.
STC의 시간 천이로서는, 비디오 복호부(230) 또는 오디오 복호부(240)가 STC 래치 회로(223)로부터 취득한 STC의 값이 나타내어져 있다. VSYNC의 시간 천이에서는, 화상 출력부(260)에서 발생하는 VSYNC의 출력 시각이 화살표로 나타내어져 있다. 비디오 데이터의 시간 천이로서는, 화상 출력부(260)에 입력되는 1 비디오 프레임마다의 비디오 데이터가 나타내어져 있다. 오디오 데이터의 시간 천이로서는, 음성 출력부(270)에 입력되는 1 오디오 프레임마다의 오디오 데이터가 나타내어져 있다.
이 예에서는, 비디오 스트림이 오디오 스트림보다 먼저 입력되고 있다. 비디오 스트림에서는, 우선 비디오 선두 PTS(PTS_V1)가 부여된 비디오 패킷(VideoAU1)이 입력되고 있다. 그 후, 후속의 비디오 패킷(VideoAU2)이 입력되고 있다. 비디오 선두 PTS(PTS_V1)에는 미리 부호화 지연 시간의 최대치α가 가산되고 있다. 그 때문에, 비디오 패킷에 의해 나타내어지는 비디오 프레임의 화상이 표시되는 것은 그 비디오 패킷의 입력에서부터 비디오 PTS의 카운트수「α」에 따른 시간 경과 후이다.
오디오 스트림에서는, 우선 오디오 선두 PTS(PTS_A1)가 부여된 오디오 패킷(AudioAU1)이 입력되고 있다. 그 후, 후속의 오디오 패킷(AudioAU2)이 입력되고 있다. 오디오 선두 PTS(PTS_A1)에는 미리 부호화 지연 시간의 최대치β가 가산되고 있다. 그 때문에, 오디오 패킷에 의해 나타내어지는 오디오 프레임의 음성이 출력되는 것은, 그 오디오 패킷의 입력에서부터 오디오 PTS의 카운트수「β」에 따른 시간 경과 후이다. 그리고, 「α」와 「β」의 값의 조정에 의해, 비디오와 오디오의 캡쳐 시작이 동시라면, 비디오 선두 PTS(PTS_V1)와 오디오 선두 PTS(PTS_A1)의 값은 동일하게 된다.
이 경우, 비디오 선두 PTS(PTS_V1)의 값이 비디오 출력 시작 PTS 및 오디오 출력 시작 PTS가 된다. 그렇게 하면, 비디오 선두 PTS(PTS_V1)를 표시할 수 있는 STC에 대응하는 VSYNC의 타이밍에 맞춰 화상 출력이 시작된다. 또한, 오디오 데이터에 대해서는, 비디오 선두 PTS와 VSYNC의 타이밍에 래치된 STC와의 차분치(ΔT)분만큼, 각 오디오 프레임의 오디오 PTS의 값이 가감산된다. 도 8의 예에서는, 차분치(ΔT)만큼 가산되고 있다. 예컨대, 비디오 데이터의 출력 타이밍에 있어서의 STC치를 「9003」, 출력 시작시의 비디오의 비디오 PTS치를 「8000」로 한 경우, 차분치는 9003-8000=1003이 된다. 이 값을 오디오 데이터의 오디오 PTS에 가산하여 STC 동기로 오디오 데이터를 출력시킨다.
이와 같이 하여, 비디오 선두 PTS(PTS_V1)를 표시할 수 있는 STC에 대응하는 VSYNC의 타이밍에 맞춰 음성 출력이 시작된다. 그 결과, 비디오 데이터의 출력 시작 시각과 오디오 데이터의 출력 시작 시각을 정확하게 일치시킬 수 있다.
이어서, 오디오 캡쳐가 비디오 캡쳐보다 먼저 시작된 경우에 관해서 설명한다.
도 9는 오디오 캡쳐가 비디오 캡쳐보다 먼저 시작된 경우의 출력 시기를 나타내는 타이밍차트이다. 이 예에서는, 비디오 선두 PTS와 오디오 선두 PTS의 비교 결과, 비디오 선두 PTS>오디오 선두 PTS가 된다.
여기서, 비디오 프레임의 비디오 선두 PTS를 8000, 비디오 PTS가 8000일 때의 출력 VSYNC 타이밍의 STC를 9003, 선두 오디오 프레임의 오디오 PTS를 7000으로 한다(비디오의 프레임 레이트는 59.94 Hz로 하고, 1 비디오 프레임분의 비디오 PTS는 90 KHz 환산으로 3003로 한다. 비디오 및 오디오 모두 스트림에 부가되고 있는 PTS는 90 KHz 단위로 한다). 또한, 도 9에서는, 오디오 프레임 21, 22, 23, 24, … 중, 무효 데이터를 그물을 쳐서 나타내고 있다.
오디오 프레임에 대해서는, 예컨대 부호화 모드는 MPEG-1LayerII, 샘플링 주파수를 48 Kz로 한 경우, 1 오디오 프레임분의 샘플수는 부호화 모드마다 규격 상에서 정해지고 있으며, MPEG-1LayerII에서는 1152가 된다. 또한, 비디오 프레임의 출력 시작시의 비디오 PTS와 출력 VSYNC 타이밍시의 STC와의 차분치는 9003-8000=1003이다.
비디오 프레임과의 출력 시작 타이밍을 맞추기 위해서, 오디오 프레임 21 중의 오디오 선두 PTS : 7000에서부터 8000까지의 음성 데이터는 무효 데이터(21a)로 재기록된다. 오디오 프레임 21의 PTS : 8000 이후의 데이터는 유효 데이터(21b) 이다.
더욱이, 오디오 프레임마다의 오디오 PTS의 값에는, 비디오 출력 시작 PTS와 출력 VSYNC 타이밍시의 STC와의 차분치「1003」이 가산된다.
또, 오디오의 선두의 프레임 데이터에서부터 8000-7000=1000(단위는 90 KHz)분의 데이터에 관해서는, 하기의 계산으로, 몇 샘플분의 데이터가 되는지를 산출함으로써 무효 데이터(21a)로 재기록하는 것이 가능하다(무효 데이터란, 음성의 출력에 영향을 주지 않는, 예컨대 NULL 데이터 등을 가리킨다).
비디오 선두 PTS에서 오디오 선두 PTS를 감산하고, 감산 결과에 「오디오 샘플링 주파수/1초 동안의 PTS 증가수」를 곱함으로써, 무효 데이터로 해야 할 오디오 데이터의 샘플링수를 계산할 수 있다. 도 9의 예에서는, 다음과 같은 값이 된다.
무효 데이터 샘플수=(8000-7000)×48000/90000=533
이와 같이, 오디오의 캡쳐가 먼저 이루어진 경우, 비디오 데이터의 비디오 출력 시작 PTS를 표시하는 STC 이후에 음성 출력이 시작된다. 그 결과, 영상과 음성은 정확하게 동시에 출력이 시작된다. 더구나, 비디오 프레임의 출력 시작시의 PTS와 출력 VSYNC 타이밍의 STC와의 차분치에 의해서 오디오 PTS를 보정함으로써, 비디오?오디오의 동기가 잡힌 출력이 이루어진다.
이어서, 비디오 스트림만 혹은 오디오 스트림만인 경우의 출력 예를 설명한다.
PTS 제어부(250)는, 타이머에 의해서 디코더 장치(200)에의 스트림 입력이 비디오 스트림만인지 오디오 스트림만인지를 판정할 수 있다. 타이머는 장치 내부에서 카운트업을 가능하게 하며, 카운트업 주기 및 판정에 필요한 임계치는 임의로 설정할 수 있다.
PTS 제어부(250)에서, 비디오 스트림 및 오디오 스트림의 어느 한 쪽의 PTS 수신 후, 타이머가 판정에 필요한 임계치를 넘은(타임아웃한) 경우는, 수신이 끝난 출력부에서, 타임아웃일 때의 STC의 값을 취득한다. 그리고, 단독의 스트림으로서 STC에 동기한 출력을 적용시킨다.
도 10은 비디오 스트림만이 입력되었을 때의 출력 예를 도시하는 도면이다. 비디오 스트림이 입력되고, 소정 시간 경과하더라도 오디오 스트림이 입력되지 않으면, 비디오 데이터만의 출력이 이루어진다. 비디오 데이터는 VSYNC에 동기하여 출력된다.
도 11은 오디오 스트림만이 입력되었을 때의 출력 예를 도시하는 도면이다. 오디오 스트림이 입력되고, 소정 시간 경과하더라도 비디오 스트림이 입력되지 않으면, 오디오 데이터만의 출력이 이루어진다. 오디오 데이터는, VSYNC에 관계없이, 오디오 PTS에 의해 나타내어지는 값에 STC가 달했을 때에 출력된다.
또, 비디오 스트림 입력에 의해서만, 비디오 프레임 출력을 시작하고 있는 상태에서, 일정 시간 경과 후(판정에 필요한 임계치 이내), 오디오 스트림이 입력된 경우는, 비디오 프레임의 출력 시작 PTS와 VSYNC의 타이밍시의 STC와의 차분치을 오디오 프레임의 PTS에 가산한다. 이로써, 비디오 출력 도중에서부터의 비디오?오디오의 동기 출력이 가능하게 된다.
반대의 입력 케이스로서, 예컨대 오디오 스트림 입력에 의해서만, 오디오 프레임 출력을 시작하고 있는 상태에서, 일정 시간 경과 후(판정에 필요한 임계치 이내), 비디오 스트림이 입력된 경우는, 각각의 출력 타이밍에 STC 동기하여 출력하거나, 오디오 출력을 한번 바꿔 구획하여 비디오?오디오의 동기 출력을 행한다. 어느 방식으로 하는지는 전송 시스템의 운용 형태에 따라서 용이하게 대응할 수 있게 한다.
이어서, 상기 처리를 실현하는 PTS 제어부(250)의 내부 구조에 관해서 설명한다.
도 12는 PTS 제어부의 내부 구조를 도시하는 블럭도이다. PTS 제어부(250)는, 타이머(251), PTS 판정부(252), 동기 방식 판정부(253) 및 PTS 차분 정보 추출부(254)를 갖고 있다.
타이머(251)는 PTS 판정부(252)로부터의 지시에 따라서 시간 계측을 시작한다. 타이머(251)가 계측한 시간은 PTS 판정부(252)로부터 참조하는 것이 가능하다.
PTS 판정부(252)는 비디오 선두 PTS와 오디오 선두 PTS의 입력을 접수한다. PTS 판정부(252)는, 비디오 선두 PTS와 오디오 선두 PTS의 어느 한 쪽이 입력되면, 타이머(251)에 의한 시간 계측을 시작한다. 또한, PTS 판정부(252)는 입력된 PTS를 동기 방식 판정부(253)에 통지한다. 그 후, PTS 판정부(252)는 타이머를 감시한다. 타이머(251)에 의한 시간 계측 시작에서부터 소정의 임계치 이상 기다리더라도, 다른 쪽의 PTS가 입력되지 않은 경우, PTS 판정부(252)는 타임아웃 정보를 동기 방식 판정부(253)에 통지한다. 시간 계측 시작에서부터 소정 시간이 경과하기 전에, 다른 쪽의 PTS가 입력된 경우, PTS 판정부(252)는 지연되어 수신한 PTS를 동기 방식 판정부(253)에 통지한다.
동기 방식 판정부(253)는 STC 래치 회로(223) 경유로 현재의 STC를 취득한다. 또한, 동기 방식 판정부(253)는, 타임아웃 정보가 입력되면, 취득한 STC 값과 통지된 PTS로부터 비디오 출력 시작 PTS, 또는 오디오 출력 시작 PTS를 결정한다. 동기 방식 판정부(253)는, PTS 판정부(252)로부터 비디오 선두 PTS와 오디오 선두 PTS 중 어느 한 쪽을 수취하고, 타임아웃 전에 다른 쪽의 PTS를 수취하면, 현재의 STC, 오디오 선두 PTS 및 비디오 선두 PTS로부터 출력 시작 PTS를 결정한다. 출력 시작 PTS가 결정되면, 동기 방식 판정부(253)는, 비디오 출력 시작 PTS를 화상 출력부(260)에 대하여 출력하고, 오디오 출력 시작 PTS를 음성 출력부(270)에 대하여 출력한다.
또한, 동기 방식 판정부(253)는, 비디오 출력 시작 PTS와 출력시의 STC(비디오 출력 시작 PTS가 부여된 비디오 프레임의 VSYNC에 동기시킨 출력시의 STC)를 PTS 차분 정보 추출부(254)에 통지한다.
PTS 차분 정보 추출부(254)에서는, 비디오 출력 시작 PTS와, 그 비디오 출력 시작 PTS의 비디오 프레임을 표시할 수 있는 STC와의 차분치를 산출하여, 오디오 복호부(240)에 통지한다. 그렇게 하면, 오디오 복호부(240)에서 통지된 값이 오디오 프레임의 PTS에 가산되어, 오디오 프레임이 음성 출력부(270)에 송신된다.
이와 같이 하여, PTS 제어가 가능하게 된다.
또, PTS 제어부(250)는 마이크로 컴퓨터에 의해서 실현할 수도 있다. 이하, 마이크로 컴퓨터로 실현한 PTS 제어부의 예를 설명한다.
도 13은 마이크로 컴퓨터로 실현한 PTS 제어부의 예를 도시하는 도면이다. PTS 제어부(250a)는 CPU(256), ROM(257), RAM(258) 및 입출력 인터페이스(259)를 갖고 있다.
CPU(256)는 PTS 제어부(250a) 전체를 제어한다. 또한, CPU(256)는 ROM(257)에 미리 저장된 프로그램에 따라서, 도 6에 도시된 처리를 실행한다. 또, CPU(256)는 처리의 중간 데이터 등은 일시적으로 RAM(258)에 저장한다. 또한, CPU(256)는 처리에 필요한 입력치를 입출력 인터페이스(259) 경유로 수취하여, 처리 결과의 출력치를 입출력 인터페이스(259) 경유로 출력한다.
ROM(257)은 도 6에 도시한 처리를 CPU(256)에 실행시키기 위한 프로그램이 저장되어 있다. 타이머에 의한 시간 계측의 임계치도 ROM(257)에 미리 저장되어 있다.
RAM(258)은 CPU(256)의 연산을 위한 워크 메모리로서 사용된다. 예컨대, CPU(256)가 타이머 기능에 의해서 시간 계측을 하는 경우, 시간을 나타내는 값이 적절하게 RAM(258)에 저장된다. 시간을 나타내는 값은 CPU(256)에 의해서 수시로 갱신된다.
입출력 인터페이스(259)는 외부 회로와의 데이터 입출력을 행하는 회로이다. 입출력 인터페이스(259)에는, 비디오 복호부(230)로부터 비디오 선두 PTS가 입력되고, 오디오 복호부(240)로부터 오디오 선두 PTS가 입력된다. 또한, PTS 제어부(250)에는 STC 래치 회로(223)로부터 STC가 입력된다. 입출력 인터페이스(259)에서 오디오 복호부(240)로는 차분치가 출력된다. 또한, 입출력 인터페이스(259)로부터 화상 출력부(260)에 비디오 출력 시작 PTS가 출력되고, 음성 출력부(270)에 오디오 출력 시작 PTS가 출력된다.
또, PTS 제어부(250a)가 지녀야 할 기능의 처리 내용을 기술한 프로그램은 컴퓨터로 판독 가능한 기록 매체에 기록해 둘 수 있다. 컴퓨터로 판독 가능한 기록매체로서는 자기 기록 장치, 광 디스크, 광자기 기록 매체, 반도체 메모리 등이 있다. 자기 기록 장치에는 하드디스크 장치(HDD), 플렉시블 디스크(FD), 자기 테이프 등이 있다. 광 디스크에는 DVD(Digital Versatile Disc), DVD-RAM, CD-ROM(Compact Disc Read Only Memory), CD-R(Recordable)/RW(ReWritable) 등이 있다. 광자기 기록 매체에는 MO(Magneto-Optical disk) 등이 있다.
프로그램을 유통시키는 경우에는, 예컨대 그 프로그램이 기록된 DVD, CD-ROM 등의 휴대형 기록 매체가 판매된다. 또한, 프로그램을 서버 컴퓨터의 기억 장치에 저장해 두고서, 네트워크를 통해 서버 컴퓨터로부터 다른 컴퓨터에 그 프로그램을 전송할 수도 있다.
프로그램을 실행하는 디코더 장치는, 예컨대 휴대형 기록 매체에 기록된 프로그램 혹은 서버 컴퓨터로부터 전송된 프로그램을 자신의 기억 장치에 저장한다. 그리고, 디코더 장치는 자신의 기억 장치로부터 프로그램을 읽어내어, 프로그램에 따른 처리를 실행한다. 한편, 디코더 장치는 휴대형 기록 매체로부터 직접 프로그램을 읽어내어, 그 프로그램에 따른 처리를 실행할 수도 있다. 또한, 디코더 장치는 서버 컴퓨터로부터 프로그램이 전송될 때마다 축차로 수취한 프로그램에 따른 처리를 실행할 수도 있다.
한편, 본 발명은 전술한 실시형태에만 한정되는 것이 아니라, 본 발명의 요지를 일탈하지 않는 범위 내에서 여러 가지 변경을 가할 수 있다.
상기한 내용은 단순히 본 발명의 원리를 나타내는 것이다. 또한, 다수의 변형, 변경이 당업자에 있어서 가능하고, 본 발명은 상기에 나타내고, 설명한 정확한 구성 및 응용예에 한정되는 것은 아니며, 대응하는 모든 변형예 및 균등물은 첨부된 청구항 및 그 균등물에 의한 본 발명의 범위로 간주된다.
1 : 시각 정보 발생 수단 2a : 비디오 복호 수단
2b : 화상 출력 수단 3a : 오디오 복호 수단
3b : 음성 출력 수단 4a : 차분치 계산 수단
4b : 오디오 출력 시각 보정 수단 5a : 타임아웃 판정 수단
5b : 출력 시작 시각 결정 수단 6a : 비디오 스트림
6b : 비디오 데이터 7a : 오디오 스트림
7b : 오디오 데이터 8 : 동기 신호

Claims (7)

  1. 스트림 데이터에 기초하여 영상과 음성을 출력하기 위한 디코더 장치에 있어서,
    시간과 함께 값이 증가하는 기준 시각 정보를 생성하는 시각 정보 발생 수단과,
    비디오 프레임마다의 화상의 출력 시각을 나타내는 비디오 출력 시각 정보가 부여된 비디오 데이터를 부호화한 비디오 스트림이 입력되면, 입력된 상기 비디오 스트림을 복호하여 비디오 데이터를 생성하고, 비디오 프레임에 부여된 상기 비디오 출력 시각 정보를 추출하는 비디오 복호 수단과,
    오디오 프레임마다의 음성의 출력 시각을 나타내는 오디오 출력 시각 정보가 부여된 오디오 데이터를 부호화한 오디오 스트림이 입력되면, 입력된 상기 오디오 스트림을 복호하여 오디오 데이터를 생성하고, 오디오 프레임에 부여된 상기 오디오 출력 시각 정보를 추출하는 오디오 복호 수단과,
    화상의 출력 타이밍을 나타내는 동기 신호의 발생 시각과 상기 비디오 출력 시각 정보의 차분치를 계산하는 차분치 계산 수단과,
    선두의 비디오 프레임에 부여된 비디오 출력 시각 정보인 비디오 선두 시각 정보와, 선두의 오디오 프레임에 부여된 오디오 출력 시각 정보인 오디오 선두 시각 정보의 값을 비교하고, 상기 비디오 선두 시각 정보의 값 쪽이 크면, 상기 비디오 선두 시각 정보에 의해 나타내어지는 시각을 오디오 출력 시작 시각으로 결정하는 출력 시작 시각 결정 수단과,
    상기 차분치 계산 수단에서 계산된 상기 차분치를 이용하여, 오디오 프레임 각각에 부여된 상기 오디오 출력 시각 정보를 보정하는 오디오 출력 시각 보정 수단과,
    상기 동기 신호의 발생시에 있어서의 상기 기준 시각 정보의 값과, 상기 동기 신호의 발생시에 표시할 수 있는 비디오 출력 시각 정보의 범위의 관계가 미리 정의되어 있어, 상기 동기 신호가 발생할 때 마다, 그 때의 상기 기준 시각 정보의 값에 따라서 표시할 수 있는 상기 비디오 출력 시각 정보가 부여된 비디오 프레임에 의해 나타내어지는 화상을 출력하는 화상 출력 수단과,
    상기 기준 시각 정보의 값과 보정 후의 상기 오디오 출력 시각 정보의 값이 일치했을 때에, 일치한 상기 오디오 출력 시각 정보가 부여된 오디오 프레임에 의해 나타내어지는 음성을 출력하고, 상기 기준 시각 정보의 값이 상기 오디오 출력 시작 시각에 달하기 이전에는 생성한 음성을 무효의 데이터로 치환하는 음성 출력 수단
    을 포함하는 것을 특징으로 하는 디코더 장치.
  2. 제1항에 있어서, 상기 출력 시작 시각 결정 수단은, 상기 오디오 선두 시각 정보의 값 쪽이 크면, 상기 오디오 선두 시각 정보보다 큰 값으로 최소의 상기 비디오 출력 시각 정보가 부여된 시각을 비디오 출력 시작 시각으로 결정하고,
    상기 화상 출력 수단은, 비디오 출력 시작 시각보다 작은 값의 상기 비디오 출력 시각 정보가 부여된 비디오 프레임으로부터 생성된 화상을 무효의 데이터로 치환하는 것을 특징으로 하는 디코더 장치.
  3. 제2항에 있어서, 상기 출력 시작 시각 결정 수단은, 상기 오디오 선두 시각 정보의 값 쪽이 크면, 상기 비디오 출력 시작 시각과 동일한 시각을 오디오 출력 시작 시각으로 결정하고,
    상기 음성 출력 수단은, 상기 기준 시각 정보에 의해 나타내어지는 시각이 상기 오디오 출력 시작 시각에 달하기 이전은, 생성된 음성을 무효의 데이터로 치환하는 것을 특징으로 하는 디코더 장치.
  4. 스트림 데이터에 기초하여 영상과 음성을 출력하기 위한 디코더 장치에 있어서,
    시간과 함께 값이 증가하는 기준 시각 정보를 생성하는 시각 정보 발생 수단과,
    비디오 프레임마다의 화상의 출력 시각을 나타내는 비디오 출력 시각 정보가 부여된 비디오 데이터를 부호화한 비디오 스트림이 입력되면, 입력된 상기 비디오 스트림을 복호하여 비디오 데이터를 생성하고, 비디오 프레임에 부여된 상기 비디오 출력 시각 정보를 추출하는 비디오 복호 수단과,
    오디오 프레임마다의 음성의 출력 시각을 나타내는 오디오 출력 시각 정보가 부여된 오디오 데이터를 부호화한 오디오 스트림이 입력되면, 입력된 상기 오디오 스트림을 복호하여 오디오 데이터를 생성하고, 오디오 프레임에 부여된 상기 오디오 출력 시각 정보를 추출하는 오디오 복호 수단과,
    화상의 출력 타이밍을 나타내는 동기 신호의 발생 시각과 상기 비디오 출력 시각 정보의 차분치를 계산하는 차분치 계산 수단과,
    상기 차분치 계산 수단에서 계산된 상기 차분치를 이용하여, 오디오 프레임 각각에 부여된 상기 오디오 출력 시각 정보를 보정하는 오디오 출력 시각 보정 수단과,
    선두의 비디오 프레임에 부여된 비디오 출력 시각 정보인 비디오 선두 시각 정보와, 선두의 오디오 프레임에 부여된 오디오 출력 시각 정보인 오디오 선두 시각 정보의 어느 한 쪽의 정보가 추출되고 나서부터의 경과 시간을 계측하여, 다른 쪽의 정보가 추출되기 전에 상기 경과 시간이 미리 결정된 임계치를 넘은 경우에는 타임아웃이라고 판정하고, 타임아웃이라고 판정된 경우, 상기 비디오 선두 시각 정보만이 추출되고 있으면 비디오 단독 출력이라고 결정하고, 상기 오디오 선두 시각 정보만이 추출되고 있으면 오디오 단독 출력이라고 결정하는 타임아웃 판정 수단과,
    상기 동기 신호의 발생시에서의 상기 기준 시각 정보의 값과, 상기 동기 신호의 발생시에 표시 가능한 상기 비디오 출력 시각 정보의 범위의 관계가 미리 정의되어 있어, 비디오 단독 출력이라고 결정된 경우, 또는 상기 비디오 선두 시각 정보와 상기 오디오 선두 시각 정보 양쪽이 추출된 경우, 상기 동기 신호가 발생할 때 마다, 그 때의 상기 기준 시각 정보의 값에 따라 표시 가능한 상기 비디오 출력 시각 정보가 부여된 비디오 프레임에 의해 나타내어지는 화상을 출력하는 화상 출력 수단과,
    오디오 단독 출력이라고 결정된 경우, 또는 상기 비디오 선두 시각 정보와 상기 오디오 선두 시각 정보 양쪽이 추출된 경우, 상기 기준 시각 정보의 값과 보정후의 상기 오디오 출력 시각 정보의 값이 일치한 때에, 일치한 상기 오디오 출력 시각 정보가 부여된 오디오 프레임에 의해 나타내어지는 음성을 출력하는 음성 출력 수단
    을 포함하는 것을 특징으로 하는 디코더 장치.
  5. 스트림 데이터에 기초하여 디코더 장치에 의해 영상과 음성을 출력하기 위한 디코드 방법에 있어서,
    상기 디코더 장치가,
    시간과 함께 값이 증가하는 기준 시각 정보를 생성하고,
    비디오 프레임마다의 화상의 출력 시각을 나타내는 비디오 출력 시각 정보가 부여된 비디오 데이터를 부호화한 비디오 스트림이 입력되면, 입력된 상기 비디오 스트림을 복호하여 비디오 데이터를 생성하고, 비디오 프레임에 부여된 상기 비디오 출력 시각 정보를 추출하며,
    오디오 프레임마다의 음성의 출력 시각을 나타내는 오디오 출력 시각 정보가 부여된 오디오 데이터를 부호화한 오디오 스트림이 입력되면, 입력된 상기 오디오 스트림을 복호하여 오디오 데이터를 생성하고, 오디오 프레임에 부여된 상기 출력 시각 정보를 추출하고,
    화상의 출력 타이밍을 나타내는 동기 신호의 발생 시각과 상기 비디오 출력 시각 정보의 차분치를 계산하며,
    선두의 비디오 프레임에 부여된 비디오 출력 시각 정보인 비디오 선두 시각 정보와, 선두의 오디오 프레임에 부여된 오디오 출력 시각 정보인 오디오 선두 시각 정보의 값을 비교하고, 상기 비디오 선두 시각 정보의 값 쪽이 크면, 상기 비디오 선두 시각 정보에 의해 나타내어지는 시각을 오디오 출력 시작 시각으로 결정하며,
    계산된 상기 차분치를 이용하여, 오디오 프레임 각각에 부여된 상기 오디오 출력 시각 정보를 보정하고,
    상기 동기 신호의 발생시에 있어서의 상기 기준 시각 정보의 값과 상기 동기 신호의 발생시에 표시할 수 있는 비디오 출력 시각 정보의 범위의 관계가 미리 정의되어 있어, 상기 동기 신호가 발생할 때마다, 그 때의 상기 기준 시각 정보의 값에 따라서 표시할 수 있는 비디오 출력 시각 정보가 부여된 비디오 프레임에 의해 나타내어지는 화상을 출력하고,
    상기 기준 시각 정보의 값과 보정 후의 상기 오디오 출력 시각 정보의 값이 일치했을 때에, 일치한 상기 오디오 출력 시각 정보가 부여된 오디오 프레임에 의해 나타내어지는 음성을 출력하고, 상기 기준 시각 정보의 값이 상기 오디오 출력 시작 시각에 달하기 이전에는 생성한 음성을 무효의 데이터로 치환하는 것을 특징으로 하는 디코드 방법.
  6. 스트림 데이터에 기초하여 영상과 음성을 출력하기 위한 디코드 방법에 있어서,
    시간과 함께 값이 증가하는 기준 시각 정보를 생성하고,
    비디오 프레임마다의 화상의 출력 시각을 나타내는 비디오 출력 시각 정보가 부여된 비디오 데이터를 부호화한 비디오 스트림이 입력되면, 입력된 상기 비디오 스트림을 복호하여 비디오 데이터를 생성하고, 비디오 프레임에 부여된 상기 비디오 출력 시각 정보를 추출하며,
    오디오 프레임마다의 음성의 출력 시각을 나타내는 오디오 출력 시각 정보가 부여된 오디오 데이터를 부호화한 오디오 스트림이 입력되면, 입력된 상기 오디오 스트림을 복호하여 오디오 데이터를 생성하고, 오디오 프레임에 부여된 상기 오디오 출력 시각 정보를 추출하며,
    화상의 출력 타이밍을 나타내는 동기 신호의 발생 시각과 상기 비디오 출력 시각 정보의 차분치를 계산하고,
    계산된 상기 차분치를 이용하여, 오디오 프레임 각각에 부여된 상기 오디오 출력 시각 정보를 보정하며,
    선두의 비디오 프레임에 부여된 비디오 출력 시각 정보인 비디오 선두 시각 정보와, 선두의 오디오 프레임에 부여된 오디오 출력 시각 정보인 오디오 선두 시각 정보의 어느 한 쪽의 정보가 추출되고 나서부터의 경과 시간을 계측하여, 다른 쪽의 정보가 추출되기 전에 상기 경과 시간이 미리 결정된 임계치를 넘은 경우에는 타임아웃이라고 판정하고, 타임아웃이라고 판정된 경우, 상기 비디오 선두 시각 정보만이 추출되고 있으면 비디오 단독 출력으로 결정하고, 상기 오디오 선두 시각 정보만이 추출되고 있으면 오디오 단독 출력이라고 결정하며,
    상기 동기 신호의 발생시에서의 상기 기준 시각 정보의 값과, 상기 동기 신호의 발생시에 표시 가능한 상기 비디오 출력 시각 정보의 범위의 관계가 정의되어 있어, 비디오 단독 출력이라고 결정된 경우, 또는 상기 비디오 선두 시각 정보와 상기 오디오 선두 시각 정보 양쪽이 추출된 경우, 상기 동기 신호가 발생할 때 마다, 그 때의 상기 기준 시각 정보의 값에 따라 표시 가능한 상기 비디오 출력 시각 정보가 부여된 비디오 프레임에 의해 나타내어지는 화상을 출력하고,
    오디오 단독 출력이라고 결정된 경우, 또는 상기 비디오 선두 시각 정보와 상기 오디오 선두 시각 정보 양쪽이 추출된 경우, 상기 기준 시각 정보의 값과 보정후의 상기 오디오 출력 시각 정보의 값이 일치한 때에, 일치한 상기 오디오 출력 시각 정보가 부여된 오디오 프레임에 의해 나타내어지는 음성을 출력하는 것을 특징으로 하는 디코드 방법.
  7. 삭제
KR1020107002258A 2007-08-27 2007-08-27 디코더 장치 및 디코드 방법 KR101132043B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2007/066557 WO2009028038A1 (ja) 2007-08-27 2007-08-27 デコーダ装置、およびデコード方法

Publications (2)

Publication Number Publication Date
KR20100030663A KR20100030663A (ko) 2010-03-18
KR101132043B1 true KR101132043B1 (ko) 2012-04-02

Family

ID=40386782

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107002258A KR101132043B1 (ko) 2007-08-27 2007-08-27 디코더 장치 및 디코드 방법

Country Status (4)

Country Link
US (1) US8526501B2 (ko)
JP (1) JP4983923B2 (ko)
KR (1) KR101132043B1 (ko)
WO (1) WO2009028038A1 (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101138396B1 (ko) * 2007-09-11 2012-04-26 삼성전자주식회사 Iptv 단말기에서 컨텐츠 재생 방법 및 장치
US20120281704A1 (en) * 2011-05-02 2012-11-08 Butterworth Ashley I Methods and apparatus for isochronous data delivery within a network
US9762774B2 (en) 2011-08-12 2017-09-12 Samsung Electronics Co., Ltd. Receiving apparatus and receiving method thereof
KR101917174B1 (ko) 2012-02-24 2018-11-09 삼성전자주식회사 전자 장치 사이의 스트림 전송 방법 및 그 방법을 처리하는 전자 장치
JP5867590B2 (ja) * 2012-03-29 2016-02-24 富士通株式会社 エレメンタリストリームをエンコードし、多重し、またはデコードするための方法、装置、およびプログラム
WO2014115147A1 (en) * 2013-01-24 2014-07-31 Telesofia Medical Ltd. System and method for flexible video construction
US9674539B2 (en) * 2013-03-14 2017-06-06 Infocus Corporation Concurrent decompression of multiple video streams with constrained decompression resources
US9591358B2 (en) * 2013-03-15 2017-03-07 Intel Corporation Media playback workload scheduler
CN104811782B (zh) * 2014-01-29 2018-03-02 晨星半导体股份有限公司 同步影音码流的解码器与解码方法
CN106658065B (zh) * 2015-10-30 2021-10-22 中兴通讯股份有限公司 音视频同步方法、装置及***
CN106385628A (zh) * 2016-09-23 2017-02-08 努比亚技术有限公司 一种分析音视频不同步的装置及方法
CN115883748A (zh) * 2022-11-28 2023-03-31 中汽创智科技有限公司 一种数据回放的同步方法、装置、电子设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07170490A (ja) * 1993-10-14 1995-07-04 Victor Co Of Japan Ltd 画像の表示時刻情報をもデータとして含む圧縮画像データと、それに付随する圧縮音響データとの同期再生方法
JP2002176643A (ja) 2000-12-06 2002-06-21 Hitachi Kokusai Electric Inc 映像・音声復号処理における映像・音声の同期再生方式
JP2004357267A (ja) 2002-07-31 2004-12-16 Fujitsu Ltd 動画再生装置及び動画再生方法
KR20060055369A (ko) * 2004-11-17 2006-05-23 소니 가부시끼 가이샤 데이터 처리 장치 및 방법

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0965303A (ja) 1995-08-28 1997-03-07 Canon Inc 映像音声同期方法及び装置
US6148135A (en) * 1996-01-29 2000-11-14 Mitsubishi Denki Kabushiki Kaisha Video and audio reproducing device and video decoding device
JP3698376B2 (ja) * 1996-08-19 2005-09-21 松下電器産業株式会社 同期再生装置
US6016166A (en) * 1998-08-31 2000-01-18 Lucent Technologies Inc. Method and apparatus for adaptive synchronization of digital video and audio playback in a multimedia playback system
US7103668B1 (en) * 2000-08-29 2006-09-05 Inetcam, Inc. Method and apparatus for distributing multimedia to remote clients
US6912010B2 (en) * 2002-04-15 2005-06-28 Tektronix, Inc. Automated lip sync error correction

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07170490A (ja) * 1993-10-14 1995-07-04 Victor Co Of Japan Ltd 画像の表示時刻情報をもデータとして含む圧縮画像データと、それに付随する圧縮音響データとの同期再生方法
JP2002176643A (ja) 2000-12-06 2002-06-21 Hitachi Kokusai Electric Inc 映像・音声復号処理における映像・音声の同期再生方式
JP2004357267A (ja) 2002-07-31 2004-12-16 Fujitsu Ltd 動画再生装置及び動画再生方法
KR20060055369A (ko) * 2004-11-17 2006-05-23 소니 가부시끼 가이샤 데이터 처리 장치 및 방법

Also Published As

Publication number Publication date
US8526501B2 (en) 2013-09-03
WO2009028038A1 (ja) 2009-03-05
KR20100030663A (ko) 2010-03-18
JPWO2009028038A1 (ja) 2010-11-25
JP4983923B2 (ja) 2012-07-25
US20100142624A1 (en) 2010-06-10

Similar Documents

Publication Publication Date Title
KR101132043B1 (ko) 디코더 장치 및 디코드 방법
JP4311570B2 (ja) 再生装置、ビデオ復号装置および同期再生方法
US6163647A (en) Apparatus for synchronized playback of audio-video signals
US8195024B2 (en) Stream generating apparatus, imaging apparatus, data processing apparatus and stream generating method
JP4536653B2 (ja) データ処理装置および方法
JP2001513606A (ja) 符号化ビデオの処理
US10224055B2 (en) Image processing apparatus, image pickup device, image processing method, and program
KR20060099687A (ko) 타임스탬프를 이용한 비디오 동기화 장치 및 방법
JP4096915B2 (ja) デジタル情報再生装置及び方法
JP5642319B2 (ja) デジタルデータ配信装置及び方法、及びデジタルデータ再生装置及び方法、同期再生システム、プログラム、並びに記録媒体
JP2002354419A (ja) 記録再生装置および方法、記録媒体、並びにプログラム
JP2007195208A (ja) 情報処理装置および方法、記録媒体、並びにプログラム
JP2004040579A (ja) デジタル放送受信装置、およびデジタル放送同期再生方法
KR100523761B1 (ko) 다중 입출력 지원 실시간 콘텐츠 제작 및 인터넷 방송 데이터 편집장치 및 방법
KR100240331B1 (ko) 디코더 시스템의 비디오/오디오 동기화 장치
JP3944845B2 (ja) 情報処理装置および方法、記録媒体、並びにプログラム
US10262690B2 (en) Signal processing device, signal processing system, signal processing method, and program
JP2002033712A (ja) パケット処理装置及びそのパケット出力方法
KR0154005B1 (ko) 시스템 부호화기를 위한 재생시간정보 발생장치
JPH099215A (ja) データ多重方法、データ伝送方法、及び多重データ復号方法、多重データ復号装置
JP4390666B2 (ja) 圧縮映像データ及び圧縮音声データの復号再生方法及び復号再生装置
JP3807053B2 (ja) 映像音声同期化方法及び映像音声信号記録再生装置
JP3671969B2 (ja) データ多重方法及び多重データ復号方法
JP2004248104A (ja) 情報処理装置及び情報処理方法
JP5201251B2 (ja) 情報再生装置及び情報再生方法

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20150224

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160218

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170220

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180219

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20200218

Year of fee payment: 9