KR20070095883A - 다중화 분리장치 및 다중화 분리방법 - Google Patents

다중화 분리장치 및 다중화 분리방법 Download PDF

Info

Publication number
KR20070095883A
KR20070095883A KR20077012348A KR20077012348A KR20070095883A KR 20070095883 A KR20070095883 A KR 20070095883A KR 20077012348 A KR20077012348 A KR 20077012348A KR 20077012348 A KR20077012348 A KR 20077012348A KR 20070095883 A KR20070095883 A KR 20070095883A
Authority
KR
South Korea
Prior art keywords
read
stream
data
pointer
elementary stream
Prior art date
Application number
KR20077012348A
Other languages
English (en)
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 KR20070095883A publication Critical patent/KR20070095883A/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/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • H04N21/4341Demultiplexing of audio and video streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • H04N21/2368Multiplexing of audio and video streams
    • 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/41Structure of client; Structure of client peripherals
    • H04N21/426Internal components of the client ; Characteristics thereof
    • H04N21/42607Internal components of the client ; Characteristics thereof for processing the incoming bitstream
    • H04N21/42615Internal components of the client ; Characteristics thereof for processing the incoming bitstream involving specific demultiplexing arrangements
    • 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/41Structure of client; Structure of client peripherals
    • H04N21/426Internal components of the client ; Characteristics thereof
    • H04N21/42646Internal components of the client ; Characteristics thereof for reading from or writing on a non-volatile solid state storage medium, e.g. DVD, CD-ROM
    • 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/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • 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/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
    • H04N21/44004Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving video buffer management, e.g. video decoder buffer or video display buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/08Systems for the simultaneous or sequential transmission of more than one television signal, e.g. additional information signals, the signals occupying wholly or partially the same frequency band, e.g. by time division

Abstract

본 발명은, 엘리멘터리 스트림(elementary stream)이 시분할다중된 다중화 스트림의 분할처리를 행하는 다중화 분리장치이며, 이 장치를 구성하는 버퍼제어부(2)는, 공급되는 다중화 스트림을 무한 루프형에 데이터를 기억하는 링버퍼(1)의 데이터 기입포인터를 가리키는 위치에서 기입한다.
ESl독출제어부(3)는, ESl독출요구를 받으면, 링 버퍼(1)에서 가장 오래된 ESl가 기억되어 있는 영역을 검색하기 위한 기점으로 되는 독출 포인터를 ESl 독출 포인터 축적부(13)로부터 꺼내어, ESl 독출 포인터가 가리키는 위치를 기점으로서 ESl를 검색해 읽어내고, 요구 원래로 전송한다. 그 후, ESl 독출 포인터와 데이터 선두 포인터를 갱신한다.

Description

다중화 분리장치 및 다중화 분리방법{Apparatus and method for demultiplication}
본 발명은, 다중화 분리장치 및 다중화 분리방법에 관한 것이며, 특히 엘리멘터리 스트림이 시분할다중된 다중화 스트림의 분리 처리를 행하는 다중화 분리장치 및 다중화 분리방법에 관한 것이다.
본 출원은, 일본에서 2004년 12월 2일에 출원된 일본 특허 출원 번호 2004-350362를 기초로 하여 우선권을 주장하는 것이며, 이 출원은 참조함으로써, 본 출원에 원용된다.
종래, 엘리멘터리 스트림(elementary stream)이 시분할다중화 된 다중화 스트림은, 다중화 분리장치에 의하여 다중 분리된 후, 디코더에 보내져 복호 된다.
도 1은, 종래의 다중화 분리장치의 일례를 나타내는 블럭도이다. 도 9에 나타내는 다중화 분리장치(500)는, 예를 들면 디스크 장치에 첨가되어, 디스크로부터 읽어내진 다중화 스트림을 일시 기억하여, 비디오, 오디오 및 자막의 각 엘리멘터리 스트림에 분해하여 디코더부(560)에 공급한다.
다중화 스트림 축적부(510)는, 디스크로부터 읽어내진 데이터 등의 다중화 스트림을 일시 축적한다. 구문해석 기능부(520)는, 다중화 스트림 축적부(510)에 축적된 다중화 스트림으로부터 비디오 스트림, 오디오 스트림, 자막 스트림을 분리하고, 비디오 스트림 축적부(530), 오디오 스트림 축적부(540), 자막 스트림 축적부(550)에 공급한다. 각 엘리멘터리 스트림 축적부에는, 공급된 엘리멘터리 스트림이 축적된다. 디코더부(560)에는, 비디오 디코더 제어 모듈, 오디오 디코더 제어 모듈 및 자막 디코더 제어 모듈이 구비되며, 대응하는 비디오 스트림 축적부(530), 오디오 스트림 축적부(540), 자막 스트림 축적부(550)에 데이터가 축적되기 시작하면, 축적된 각 엘리멘터리 스트림을 요구하고, 공급된 데이터의 디코드 처리를 행한다.
즉, 종래의 다중화 분리장치(500)에서는,
〔1〕외부에서 입력한 다중화 스트림의 다중화 스트림 축적부(510)로의 카피(데이터 이동),
〔2〕구문해석 기능부(520)를 통하여 다중화 스트림 축적부(510)로부터 각 엘리멘터리 스트림 축적부(비디오 스트림 축적부(530), 오디오 스트림 축적부(540) 및 자막 스트림 축적부(550))로의 데이터 이동,
〔3〕각 엘리멘터리 스트림 축적부로부터 대응하는 각 디코더로의 데이터 공급(데이터 이동)의 3회의 데이터 이동이 발생한다.
여기서, 각 스트림 축적부의 구성에 대하여 설명한다.
도 2는, 종래의 다중화 스트림 축적부를 나타내는 구성도이다. 다중화 스트림 축적부(510)는 메모리상에 구축되며, 다중화 스트림을 일시 기억시키는 버퍼(510a), 데이터 선두 포인터를 일시 기억시키는 데이터 선두 포인터 축적부(511) 및 데이터 기입 포인터를 일시 기억하는 데이터 기입 포인터 축적부(512)를 구비한다. 그리고, 도시하지 않은 버퍼 제어수단에 의하여, 데이터 선두 포인터 축적부(511) 및 데이터 기입 포인터 축적부(512)에 격납되는 포인터에 근거하여, 다중화 스트림 버퍼(501a)로의 기입이 제어된다.
버퍼(510a)는, 예를 들면, 링 버퍼이며, 입력된 데이터를 차례차례 기억하고, 그 기억용량만큼의 데이터를 기억한 후에는, 가장 오래된 데이터에 덮어쓰기 하는 형태로 최신 데이터를 말하자면 무한 루프형으로 기억해 간다. 데이터 선두 포인터 축적부(511)는, 버퍼(510a)에 기억된 데이터 중, 아직 읽어 내지 않은 가장 오래된 데이터가 기억되어 있는 위치를 나타내는 데이터 선두 포인터를 기억한다. 데이터 기입 포인터 축적부(512)는, 디스크로부터 읽어내진 최신의 데이터가 기입되는 버퍼(510a)의 위치를 가리키는 데이터 기입 포인터를 기억한다. 따라서, 데이터 선두 포인터가 가리키는 위치로부터 시계 도는 방향으로, 데이터 기입 포인터가 가리키는 위치까지의 영역(도 2중 사선부)에 기억되어 있는 데이터가 유효한 데이터이다.
도 3은, 종래의 비디오 스트림 축적부의 구성도이다. 비디오 스트림 축적부(530)는, 메모리상에 구축되며, 비디오 스트림을 일시 기억시키는 비디오 버퍼(530a), 비디오 스트림 선두 포인터를 일시 기억시키는 비디오 스트림 선두 포인터 축적부(531), 비디오 스트림 기입 포인터를 일시 기억시키는 비디오 스트림 기입 포인터 축적부(532) 및 부속 데이터를 기억하기 위한 부속정보 FIFO(First In First Out)부(533)를 구비한다. 그리고, 도시하지 않은 비디오 버퍼 제어수단에 의하여, 비디오 스트림 선두 포인터 축적부(531) 및 비디오 스트림 기입 포인터 축적부(532)에 격납되는 포인터에 근거하여, 구문해석 기능부(520)로부터 공급되는 비디오 스트림의 비디오 버퍼(530a)로의 기입이 제어된다.
다중화 스트림 축적부(510)의 버퍼(510a)와 같이, 비디오 버퍼(530a)는, 링 버퍼이며, 구문해석 기능부(520)로부터 공급되는 비디오 스트림을 무한 루프형으로 기억해 간다. 비디오 스트림 선두 포인터 축적부(531)는, 비디오 스트림 선두 포인터를 기억하고, 비디오 스트림 기입 포인터 축적부(532)는, 비디오 스트림 기입 포인터를 기억한다. 어느 포인터가 가리키는 위치도 시계도는 방향으로 갱신되며, 비디오 스트림 선두 포인터가 가리키는 위치로부터 시계도는 방향으로, 비디오 스트림 기입 포인터가 가리키는 위치까지의 영역(도 3중 사선부)에 기억되어 있는 데이터가 유효한 데이터이다. 또, 부속 정보 FIFO부(533)에는, 구문해석 기능부(520)로 분리된 타임 스탬프 등의 부속정보가 기억된다.
오디오 스트림 축적부(540) 및 자막 스트림 축적부(550)는, 비디오 스트림 축적부(530)와 동일 구성이며, 링 버퍼, 선두 포인터와 기입 포인터의 축적부 및 부속 정보 FIFO부를 갖춘다.
이상의 구성의 다중화 분리장치(500)에 있어서의 스트림 축적부간의 데이터의 이동에 대하여 설명한다. 또한, 버퍼 제어수단이나 비디오 버퍼 제어수단 등, 다중화 분리장치(500)의 각 버퍼로의 기입 제어를 행하는 제어수단은, 도시하지 않은 CPU(Central Processing Unit)가, 각 제어수단의 처리 내용을 기술한 프로그램을 실행함으로써 실현된다.
우선, 제 1의 다중화 스트림 축적부로의 데이터 이동에 대하여 설명한다. 버퍼 제어수단은, 공급된 다중화 스트림을 다중화 스트림 축적부(510)의 데이터 기입 포인터 축적부(512)에 등록된 데이터 기입 포인터가 가리키는 버퍼(510a)의 위치에서 기입하고, 기입한 데이터의 사이즈만 데이터 기입 포인터를 인크리먼트(increment) 한다.
다음에, 제 2의 다중화 스트림 축적부로부터 각 엘리멘터리 스트림 축적부로의 데이터 이동에 대하여, 비디오 스트림의 경우에서 설명한다. 구문해석 기능부(520)는, 버퍼(510a)로부터 다중화 스트림을 읽어내고, 재생 대상의 엘리멘터리 스트림을 식별(특정)하기 위한 식별 정보로서 취득하고 있는 ID를 사용하여 다중 분리를 행한다. 데이터 선두 포인터 축적부(511)에 등록된 데이터 선두 포인터가 가리키는 버퍼(510a)의 위치로부터 읽어내기를 개시하고, 읽어낸 데이터의 사이즈만 데이터 선두 포인터를 인크리먼트 한다. 또, 분리된 비디오 스트림과 관련하는 부속 정보는 비디오 스트림 축적부(530)에 건네져, 비디오 스트림은 비디오 버퍼(530a)에 일시적으로 축적된다. 이 때, 비디오 스트림 기입 포인터 축적부(532)에 등록된 비디오 스트림 기입 포인터가 가리키는 비디오 버퍼(530a)의 위치에서 기입하고, 기입한 데이터의 사이즈만 비디오 스트림 기입 포인터를 인크리먼트 한다. 또, 부속 정보는, 부속 정보 FIFO부(533)에 일시적으로 축적된다. 동일하게, 분리된 오디오 스트림 및 부속 정보는, 오디오 스트림 축적부(540)에 건네져 각각 오디오 버퍼와 부속 정보 FIFO부에 일시적으로 축적된다. 또, 분리된 자막 스트림 및 부속 정보는, 자막 스트림 축적부(550)에 건네져 각각 자막 버퍼와 부속 정보 FIFO부에 일시적으로 축적된다.
다음으로, 제 3의 각 엘리멘터리 스트림 축적부에서 각 디코더로의 데이터 이동에 대하여, 비디오 스트림의 경우로 설명한다. 비디오 스트림 축적부(530)의 비디오 버퍼(530a)에 데이터가 축적되기 시작하면, 디코더부(560)의 비디오 디코더 제어수단이 비디오 버퍼(530a)로부터의 데이터 독출을 개시하고, 하나의 비디오 액세스 유니트, 그 비디오 액세스 유니트에 부가되어 있는 타임 스탬프, 부가 정보 등을 취득하여, 디코드 처리를 행한다. 또한, 오디오 스트림 및 자막 스트림의 경우도 동일한 처리가 행해진다.
또, 다중화 스트림으로부터 분리한 각 스트림을 전용 메모리에 전송하여 기억시키지 않고, 직접 디코더의 버퍼에 전송하는 스트림 재생방법이, 예를 들면 특개 2003 -61045호 공보에서 제안되어 있다.
상술한 종래의 다중화 분리장치 및 다중화 분리방법에서는, 데이터 이동에 의해 CPU의 처리 능력이 저하된다고 하는 문제점이 있었다.
종래의 다중화 분리장치 및 다중화 분리방법에서는, 다중화 스트림 축적부(510)로의 기입, 다중화 스트림 축적부(510)에서 각 엘리멘터리 스트림 축적부로의 데이터 이동, 각 엘리멘터리 스트림 축적부에서 디코더부(560)로의 데이터 이동의 3회의 데이터 이동이 발생한다. 다중화 분리장치(500)의 각 처리수단은 소프트웨어로 구성되지만, CPU와 메모리 등으로 구성된 컴퓨터 시스템에서는 데이터 이동시에 CPU의 처리 능력이 큰폭으로 저하하고, 전체 처리 능력을 저하시켜 버린다.
또, 3회의 데이터 전송을 행하기 위해서, 각각의 데이터 전송용의 독출 포인터 및 기입 포인터를 준비하지 않으면 안되며, 다수의 포인터를 기억하기 위한 버퍼가 필요하다고 하는 문제점도 있다. 게다가 포인터의 수가 많은 것에 의해 버퍼의 제어가 복잡하게 되어, CPU에 부하가 걸린다.
본 발명은, 상술한 바와 같은 점에 감안하여 이루어진 것이며, CPU에 걸리는 부하를 경감함으로써, 처리 능력의 향상을 도모하는 다중화 분리장치 및 다중화 분리방법을 제공하는 것을 목적으로 한다.
본 발명은, 엘리멘터리 스트림이 시분할다중된 다중화 스트림의 분리 처리를 행하는 다중화 분리장치에 있어서, 링 버퍼, 데이터 선두 포인터 축적 수단, 데이터 기입 포인터 축적 수단, 버퍼 제어수단, 독출 포인터 축적 수단 및 독출제어수단을 갖춘다.
이 다중화 분리장치를 구성하는 링 버퍼는, 다중화 스트림의 데이터를 차례차례 기억하고, 기억용량분을 넘으면 가장 오래된 다중화 스트림의 데이터에 덮어쓰기 하여 무한 루프형으로 기억한다. 데이터 선두 포인터 축적 수단은, 링 버퍼의 가장 오래된 데이터가 기억된 위치를 가리키는 데이터 선두 포인터를 격납하고, 데이터 기입 포인터는, 최신의 다중화 스트림의 데이터를 기입하는 위치를 가리키는 데이터 기입 포인터를 격납한다. 버퍼 제어수단은, 다중화 스트림이 공급되면, 데이터 기입 포인터가 가리키는 링 버퍼의 위치로부터 입력된 다중화 스트림을 기입하는 동시에, 기입 사이즈에 따라 데이터 기입 포인터를 갱신하여 데이터 기입 포인터 축적 수단에 격납한다. 독출 포인터 축적 수단은, 독출을 행하는 엘리멘터리 스트림 마다, 아직 링 버퍼로부터 읽어내지 않은 대상의 엘리멘터리 스트림 데이터에 대해서의 독출처리의 기점을 가리키는 독출 포인터를 격납한다. 독출제어수단은, 독출요구된 엘리멘터리 스트림의 독출 포인터를 독출 포인터 축적 수단으로부터 꺼내고, 독출 포인터가 가리키는 링 버퍼의 위치로부터 대상의 엘리멘터리 스트림을 검색하여 읽어내고, 독출 사이즈에 따라 대상의 엘리멘터리 스트림의 독출 포인터와 데이터 선두 포인터를 갱신한다.
본 발명이 적용된 다중화 분리장치에 의하면, 버퍼 제어수단은, 다중화 스트림이 공급되면, 데이터 기입 포인터 축적 수단으로부터 데이터 기입 포인터를 꺼내, 데이터 기입 포인터가 가리키는 위치로부터 차례차례 다중화 스트림의 데이터를 격납하여, 데이터 기입 포인터를 갱신한다. 이 때, 데이터 선두 포인터를 참조하고, 데이터 선두 포인터가 가리키는 위치를 넘어 기입을 행하지 않도록 한다. 독출제어수단은, 소정의 엘리멘터리 스트림의 독출요구를 받으면, 그 엘리멘터리 스트림에 관한 독출 포인터를 독출 포인터 축적 수단으로부터 꺼내고, 그 독출 포인터가 가리키는 위치를 기점으로서 대상의 엘리멘터리 스트림을 검색하고, 검색된 엘리멘터리 스트림의 데이터를 읽어내어 요구처로 전송한다. 그리고, 독출 사이즈에 따라 독출 포인터와 데이터 선두 포인터를 갱신한다.
또, 본 발명은, 엘리멘터리 스트림이 시분할다중된 다중화 스트림의 분리 처리를 행하는 다중화 분리방법에 있어서, 버퍼 제어수단이, 다중화 스트림이 공급되면, 다중화 스트림의 데이터를 차례차례 무한 루프형으로 기억해 가는 링 버퍼의 최신의 데이터 기입 위치를 가리키는 데이터 기입 포인터에 근거하여, 데이터 기입 포인터가 가리키는 링 버퍼의 위치에 공급된 다중화 스트림을 차례차례 기입하는 동시에, 기입 사이즈에 따라 상기 데이터 기입 포인터를 갱신하고, 독출제어수단이, 소정의 상기 엘리멘터리 스트림의 독출요구를 받으면, 엘리멘터리 스트림마다의 독출처리의 기점으로 되는 독출 포인터가 격납되는 독출 포인터 축적 수단으로부터 요구된 엘리멘터리 스트림에 관한 독출 포인터를 꺼내고, 독출 포인터에 의하여 지시된 링 버퍼의 위치를 기점으로서 대상의 엘리멘터리 스트림을 검색하여 읽어내고, 독출 사이즈에 따라 독출 포인터를 갱신하는 동시에 링 버퍼의 가장 오래된 다중화 스트림의 데이터가 기억된 위치를 가리키는 데이터 선두 포인터를 갱신한다.
본 발명이 적용된 다중화 분리방법에서는, 다중화 스트림이 공급되면, 링 버퍼의 최신의 데이터 기입 위치를 나타내는 데이터 기입 포인터가 가리키는 위치로부터 다중화 스트림이 차례차례 기입된다. 기입은, 데이터 선두 포인터가 가리키는 위치를 넘지 않도록 행해진다. 한편, 다중화 스트림을 구성하는 각 엘리멘터리 스트림의 독출요구가 있으면, 엘리멘터리 스트림 마다 격납된 독출처리의 기점으로 되는 링 버퍼의 위치를 가리키는 독출 포인터가 꺼내져, 독출 포인터가 가리키는 위치로부터 요구된 대상의 엘리멘터리 스트림이 검색된다. 대상의 엘리멘터리 스트림의 데이터가 검색되면, 그 데이터가 읽어 내져 요구처로 전송된다. 그리고, 전송 후에 독출 사이즈에 따라 독출 포인터와 데이터 선두 포인터가 갱신된다.
본 발명이 적용된 다중화 분리장치 및 다중화 분리방법은, 다중화 스트림의 분리 처리를 행하면서 요구처에 데이터 전송할 수 있기 때문에, 데이터의 전송 회수를 삭감하는 것이 가능하게 되며, CPU의 처리 부하를 경감시킬 수 있다고 하는 이점이 있다.
또, 데이터 전송 회수를 삭감함으로써, 데이터 전송에 이용하는 포인터가 적게 되어, 버퍼의 용량을 삭감하는 동시에, 버퍼 제어가 용이하게 된다.
본 발명의 또 다른 목적, 본 발명에 의하여 얻어지는 이점은, 이하에서 설명되는 실시의 형태에서 한층 밝혀질 것이다.
도 1은, 종래의 다중화 분리장치의 일례를 나타내는 블럭도이다.
도 2는, 종래의 다중화 스트림 축적부를 나타내는 도면이다.
도 3은, 종래의 비디오 스트림 축적부를 나타내는 도면이다.
도 4는, 본 발명이 적용된 다중화 스트림 축적부의 일실시의 형태를 나타내는 도면이다.
도 5는, 본 발명을 적용한 디스크 장치의 하드웨어의 일실시의 형태를 나타내는 블럭도이다.
도 6은, 본 실시의 형태의 소프트웨어 모듈군을 나타내는 블럭도이다.
도 7은, 본 실시의 형태의 버퍼 제어 모듈을 나타내는 블럭도이다.
도 8은, 디스크의 디렉토리 구조를 모식적으로 나타내는 도면이다.
도 9는, 엘리멘터리 스트림을 식별하는 stream_id 및 private_stream_id와, 엘리멘터리 스트림과의 관계를 나타내는 도면이다.
도 10은, 버퍼 제어 모듈의 데이터 독출에 의한 포인터 갱신전의 일례를 나 타내는 도면이다.
도 11은, 버퍼 제어 모듈의 데이터 독출에 의한 포인터 갱신 후의 일례를 나타내는 도면이다.
이하, 본 발명의 실시의 형태를 도면을 참조하여 설명한다.
우선, 본 발명이 적용되는 데이터 다중화 분리장치를 설명하면, 이 데이터 다중화 분리장치는, 도 4에 나타내는 바와 같이, 엘리멘터리 스트림(1)(이하, 엘리멘터리 스트림을 ES로 표기한다.)과, ES2가 시분할다중된 다중화 스트림을 무한 루프형으로 기억해 가는 링 버퍼(1), 다중화 스트림의 링 버퍼(1)로의 기입을 제어하는 버퍼 제어부(2), 링 버퍼(1)로부터 각 ES를 읽어내는 독출제어수단을 구성하는 ESl독출제어부(3)와 ES2독출제어부(4) 및 각종 관리 정보 축적부를 구비한다. 관리 정보 축적부는, 버퍼 제어부(2)가 링 버퍼(1)로의 데이터 기입시에 참조하는 데이터 선두 포인터 축적부(11)와 데이터 기입 포인터 축적부(12) 및 각 ES의 독출제어부가 참조하는 ESl 독출 포인터 축적부(13)와 ES2 독출 포인터 축적부(14)를 갖춘다.
링 버퍼(1)는, 버퍼 제어부(2)에 의하여 기입되는 다중화 스트림을 무한 루프형으로 기억한다. 즉, 입력된 데이터를 차례차례 기억하고, 그 기억용량만큼의 데이터를 기억한 후에는, 가장 오래된 데이터에 덮어쓰기 하는 형태로 데이터를 기억해 간다. 링 버퍼(1)는, 데이터 선두 포인터 축적부(11)에 격납된 데이터 선두 포인터와 데이터 기입 포인터 축적부(12)에 격납된 데이터 기입 포인터에 의하여 관리되어 있다. 도 4에 나타내는 데이터 다중화 분리장치에 있어서는, 데이터 기입 포인터가 가리키는 위치는, 링 버퍼(1)에 데이터가 기억될 때마다, 버퍼 제어부(2)에 의하여 도 4 중 화살표방향의 시계도는 방향으로 갱신된다. 또, 데이터 선두 포인터가 가리키는 위치는, 링 버퍼(1)로부터의 각 ES데이터의 독출에 따라서 ESl독출제어부(3) 및 ES2독출제어부(4)에 의하여 도 4중 화살표방향의 시계도는 방향으로 갱신되어 간다.
버퍼 제어부(2)는, 링 버퍼(1)로의 다중화 스트림 기입 제어를 행한다. 다중화 스트림이 공급되면, 버퍼 제어부(2)에서는, 데이터 선두 포인터 축적부(11)와 데이터 기입 포인터 축적부(12)로부터 각각 데이터 선두 포인터와 데이터 기입 포인터를 꺼내고, 데이터 기입 포인터가 가리키는 링 버퍼(1)의 위치에서 차례차례 데이터의 기입을 행한다. 그리고, 데이터 기입 포인터를, 도 4중 시계도는 방향으로 데이터 사이즈만큼 인크리먼트하여 갱신하고, 데이터 기입 포인터 축적부(12)에 격납한다. 또한 데이터의 기입이 데이터 선두 포인터가 가리키는 위치를 넘어 버리는 경우에는, 데이터 기입을 지연한다.
ESl독출제어부(3) 및 ES2독출제어부(4)는, 각각의 ES를 링 버퍼(1)로부터 추출하여 읽어내는 다중화 분리 기능을 갖춘다.
ESl독출제어부(3)는, ESl의 독출요구를 받으면, ESl 독출 포인터 축적부(13)로부터 ESl 독출 포인터를 꺼내고, ESl 독출 포인터가 가리키는 링 버퍼(1)의 위치를 기점으로서 ESl를 검색하고, 검색된 ESl의 데이터의 독출을 행하고, 읽어낸 데이터를 요구처에 전송한다. ESl 독출 포인터는, 읽어내진 데이터가 기억된 링 버 퍼(1)의 다음의 위치를 가리키도록 갱신된다. 또, 필요에 따라서, 데이터 선두 포인터도 갱신한다. 예를 들면, ESl 독출 포인터가 가리키는 위치가 다른 ES의 독출 포인터보다 오래된 데이터가 기억되어 있는 위치를 가리키고 있는 경우, 이것보다 오래된 데이터의 독출을 종료하고 있으므로, 데이터 선두 포인터를 ESl 독출 포인터와 같은 위치에 갱신한다.
ES2독출제어부(4)는, ES2의 독출요구를 받으면, ES2 독출 포인터 축적부(14)로부터 ES2 독출 포인터를 꺼내고, ES2 독출 포인터가 가리키는 링 버퍼(1)의 위치를 기점으로서 ES2를 검색하고, 검색된 ES2의 데이터의 독출을 행하고, 읽어낸 데이터를 요구처에 전송한다. ES2 독출 포인터는, 읽어내진 데이터가 기억된 다음의 위치를 가리키도록 갱신된다. 또, ESl독출제어부(3)와 동일하게, 필요에 따라서 데이터 선두 포인터도 갱신한다.
데이터 선두 포인터 축적부(11)는, 데이터 선두 포인터를 격납하고, 데이터 기입 포인터 축적부(12)는 데이터 기입 포인터를 격납한다. ESl 독출 포인터 축적부(13)는, ESl 독출 포인터를 격납하고, ES2 독출 포인터 축적부(14)는, ES2 독출 포인터를 격납한다.
이와 같은 구성의 다중화 분리장치의 동작 및 다중화 분리방법에 대하여 설명한다. 본 발명에 관계되는 다중화 분리장치에서는, 입력된 시분할다중화 스트림을 링 버퍼(1)에 기입하는 동시에, 독출요구에 따라, 요구된 ES를 링 버퍼(1)로부터 추출(분리)하여 출력하는 제어를 행하고 있다.
상세한 것은, 다중화 분리장치에 다중화 스트림이 공급되면, 버퍼 제어부(2) 는, 데이터 선두 포인터 축적부(11)와 데이터 기입 포인터 축적부(12)로부터 각각 데이터 선두 포인터와 데이터 기입 포인터를 꺼내고, 데이터 기입 포인터가 가리키는 링 버퍼(1)의 위치로부터 입력된 다중화 스트림의 데이터를 기입한다. 도 4에 나타내는 장치에서는, 시계도는 방향으로 데이터가 차례차례 기입되어 간다. 이 때, 데이터 기입 포인터가 데이터 선두 포인터를 추월하지 않도록, 데이터의 기입을 제어한다. 기입 종료후, 데이터 기입 포인터는, 링 버퍼(1)의 데이터의 기입이 종료한 다음의 위치를 가리키도록 갱신된다.
그리고, 디코더 등으로부터 다중화 스트림을 구성하는 각 ES(도 4의 경우에서는, ESl와 ES2)의 독출요구를 받으면, 요구된 ES에 대응하는 ESl독출제어부(3) 혹은 ES2독출제어부(4)가, 각각의 독출 포인터를 격납하는 ESl 독출 포인터 축적부(13) 혹은 ES2 독출 포인터 축적부(14)로부터 ESl 독출 포인터 혹은 ES2 독출 포인터를 꺼낸다. 그리고, ESl 독출 포인터 혹은 ES2 독출 포인터가 가리키는 링 버퍼(1)의 위치를 기점으로서 링 버퍼(1)을 시계도는 방향으로 검색하고, 대상의 ESl 혹은 ES2가 검출되는 곳의 데이터를 읽어내어, 요구처에 전송한다. 독출이 행해진 ESl 독출 포인터 혹은 ES2 독출 포인터는, 읽어낸 사이즈에 따라 갱신된다. 즉, 독출이 종료한 링 버퍼(1) 다음의 위치, 즉, 아직 읽어내지 않은 가장 오래된 ES를 포함하는 데이터가 격납되어 있는 영역을 가리키도록 갱신된다. 게다가 데이터 선두 포인터는, ESl 독출 포인터 혹은 ES2 독출 포인터중, 가장 오래된 데이터의 위치를 가리키고 있는 것과 동일한 위치를 가리키도록 갱신된다.
이와 같은 다중화 분리장치에 의하면, 각 ES의 독출요구가 있었을 경우에 다 중화 스트림으로부터 대상의 ES를 분리하여 요구처에 공급할 수 있다. 이 때문에, 미리 다중화 스트림을 분리하여 각각의 ES버퍼에 격납하고, 독출요구시에는 버퍼에 격납된 ES를 공급하는 경우에 비해, 데이터의 전송 회수를 줄일 수 있다. 즉, 링 버퍼로의 기입, ES버퍼로의 기입 및 독출요구처로의 전송의 3회의 데이터 이동을, 링 버퍼의 기입과 독출요구처로의 전송의 2회로 삭감한다. 이 결과, CPU의 부하를 경감시켜, 처리 능력의 향상을 도모할 수 있다. 또, 데이터 전송에 이용하는 포인터를 삭감할 수 있고, 포인터를 기억하기 위한 버퍼 용량이 적어도 되는 동시에, 포인터의 수가 적기 때문에, 버퍼의 제어가 간단하게 된다.
이하, 본 발명을 디스크 장치에 적용한 실시의 형태를 도면을 참조하여 상세하게 설명한다.
또한 본 발명은, 디스크 장치의 외, 다중화 스트림의 분리 처리를 행하는, 예를 들면 디지털 방송 데이터의 다중화 스트림 분리장치에도 적용할 수 있다.
도 5는, 본 발명을 적용한 디스크 장치의 일실시의 형태를 나타내는 블럭도이다. 도 5에 나타내는 디스크 장치는, 예를 들면, 디스크 플레이어나, 게임 장치, 카 내비게이션 시스템 그 외에 적용할 수 있다. 또, 다중화 분리되는 다중화 스트림은, 비디오 스트림, 오디오 스트림 및 자막 스트림이 시분할다중 되어 있다.
디스크(101)는, 예를 들면, DVD(Digital Versatil Disc) 등의 광디스크, 혹은 광자기디스크, 자기 디스크 등이며, 비디오 데이터나, 오디오 데이터, 자막 데이터 등의 콘텐츠 데이터, 또, 콘텐츠 데이터를 재생하는데 필요한 데이터가 기입되어 있다.
디스크 드라이버(102)는, 도시하지 않은 인터페이스를 내장하고, 그 인터페이스를 통하여, 드라이브 인터페이스(114)에 접속되어 있다. 디스크 드라이버(102)는, 거기에 장착된 디스크(101)를 구동하고, 드라이브 인터페이스(114)로부터의 독출 등의 명령에 따라서, 디스크(101)로부터 데이터를 읽어내고, 드라이브 인터페이스(114)에 공급하는 등의 처리를 행한다.
버스(111)에는, CPU(l12), 메모리(113), 드라이브 인터페이스(114), 입력 인터페이스(115), 비디오 디코더(116), 오디오 디코더(117), 비디오 출력 인터페이스(118), 오디오 출력 인터페이스(119)가 접속되어 있다.
CPU(l12) 및 메모리(113)는, 컴퓨터 시스템을 형성하고 있다. 즉, CPU(l12)는, 메모리(113)에 기억된 프로그램인, 후술하는 소프트웨어 모듈군을 실행하고, 디스크 장치 전체를 제어하는 동시에, 후술하는 각종 처리를 행한다. 메모리(113)는, CPU(12)가 실행하는 소프트웨어 모듈군을 기억하고 있다. 또, 메모리(113)는, 불휘발성 메모리만, 또는 휘발성 메모리와 불휘발성 메모리와의 조합으로 구성하는 것이 가능하다. 또, 도 5에 나타내는 디스크 장치에, 하드 디스크를 설치하고, 그 하드 디스크에, CPU(l12)가 실행하는 소프트웨어 모듈군을 기입(인스톨)해 두는 경우에는, 메모리(113)는, 휘발성 메모리만으로 구성하는 것이 가능하다.
여기서, CPU(l12)가 실행하는 프로그램(소프트웨어 모듈군)은, 디스크 장치에 내장되어 있는 기입 매체로서의 메모리(113)에 미리 기입해 둘 수 있다. 또, 프로그램은, 디스크(101), 또한, 디스크(101) 이외의 플렉시블 디스크(flexible disk), CD-ROM(Compact Disc Read Only Memory), MO(Magneto Optical)디스크, 자 기 디스크, 메모리 카드 등의 리무버블 기입 매체에, 일시적 혹은 영속적으로 격납해 둘 수 있다. 이와 같은 리무버블 기입 매체는, 이른바 패키지 소프트웨어로서 제공할 수 있다.
또한 프로그램은, 메모리(113)에 미리 기억해 두는 것, 혹은, 상술한 바와 같은 리무버블 기입 매체로부터 디스크 장치에 인스톨 할 수 있다. 또, 프로그램은, 다운로드 사이트로부터, 디지털 위성방송용의 인공위성을 통하여, 디스크 장치에 무선으로 전송하거나, LAN(Local Area Network), 인터넷이라고 하는 네트워크를 통하여, 디스크 장치에 유선으로 전송하고, 디스크 장치에서는, 그처럼 하여 전송 되어 오는 프로그램을, 입력 인터페이스(115)에서 수신하고, 내장하는 메모리(113)에 인스톨 할 수 있다.
게다가, 프로그램은, 1의 CPU에 의해 처리되는 것이어도 좋고, 복수의 CPU에 의하여 분산처리되는 것이어도 좋다.
드라이브 인터페이스(114)는, CPU(l12)의 제어 아래, 디스크 드라이버(102)를 제어하고, 이것에 의해, 디스크 드라이버(102)가 디스크(101)로부터 읽어낸 데이터를, 버스(111)를 통하여, CPU(l12)나, 메모리(113), 비디오 디코더(116), 오디오 디코더(117) 등에 공급한다.
입력 인터페이스(115)는, 도시하지 않은 키, 버튼이나, 리모트 콘트롤러가 사용자에게 조작되는 것에 의하여 공급되는 신호를 수신하고, 버스(111)를 통하여, CPU(l12)에 공급한다. 또한 입력 인터페이스(115)는, 그 외, 통신 인터페이스로서도 기능 한다.
비디오 디코더(116)는, 디스크 드라이버(102)에 의하여 디스크(101)로부터 읽어내져 드라이브 인터페이스(114) 및 버스(111)를 통하여 공급되는, 비디오 데이터의 부호화 데이터를 디코드하고, 그 결과 얻어지는 비디오 데이터를, 버스(111)를 통하여, CPU(l12)나 비디오 출력 인터페이스(118)에 공급한다.
오디오 디코더(117)는, 비디오 디코더(116)와 동일하게, 디스크(101)로부터 읽어내져 공급되는, 오디오 데이터의 부호화 데이터를 디코드하고, 그 결과 얻어지는 오디오 데이터를, 버스(111)를 통하여, CPU(l12)나 오디오 출력 인터페이스(119)에 공급한다.
비디오 출력 인터페이스(118)는, 버스(111)를 통하여 공급되는 비디오 데이터에 필요한 처리를 실시하고, 비디오 출력단자(120)로부터 출력한다. 오디오 출력 인터페이스(119)는, 버스(111)를 통하여 공급되는 오디오 데이터에 필요한 처리를 실시하고, 오디오 출력단자(121)로부터 출력한다.
비디오 출력단자(120)는, 도시하지 않은 CRT(Cathode Ray Tube)나, 액정 패널 등의 비디오 출력장치에 접속되어 있고, 비디오 출력장치에 비디오 데이터를 공급한다. 오디오 출력단자(121)는, 도시하지 않은 스피커나 앰프 등의 오디오 출력장치에 접속되어 있고, 오디오 출력장치에 오디오 데이터를 공급한다. 또한 디스크 장치로부터, 비디오 출력장치와 오디오 출력장치로의 비디오 데이터와 오디오 데이터의 공급은, 유선 또는 무선의 어느 것에 의해 행하는 것도 가능하다.
다음으로, 소프트웨어 모듈군의 구성에 대하여 설명한다. 도 6은, 본 실시의 형태의 소프트웨어 모듈군의 구성예를 나타내고 있다.
CPU(l12)가 실행하는 소프트웨어 모듈군은, 오퍼레이팅 시스템(OS)(201)과, 어플리케이션 프로그램으로서의 비디오 콘텐츠 재생 프로그램(210)에 대별된다.
오퍼레이팅 시스템(201)은, 디스크 장치의 전원이 투입되면, 최초로 CPU(l12)가 오퍼레이팅 시스템(201)을 실행하고, 초기설정 등의 필요한 처리를 행하고, 어플리케이션 프로그램인 비디오 콘텐츠 재생 프로그램(210)을 불러낸다.
비디오 콘텐츠 재생 프로그램(210)은, 스크립트(script) 제어모듈(211), 플레이어 제어모듈(212), 콘텐츠 데이터 공급모듈(213), 디코드 제어모듈(214), 버퍼 제어모듈(215), 비디오 디코더 제어모듈(216), 오디오 디코더 제어모듈(217), 자막 디코더 제어모듈(218), 그래픽스 처리모듈(219), 비디오 출력모듈(220) 및 오디오 출력모듈(221)로 구성되어 있다.
스크립트 제어모듈(211)은, 디스크(101)에 기입된 스크립트 파일에 기술되어 있는 스크립트 프로그램(스크립트)을 해석하여 실행한다.
플레이어 제어모듈(212)은, 디스크(101)에 기입되어 있는 메타데이터(데이터베이스 정보) 등을 참조하여, 콘텐츠의 재생에 관한 제어를 행한다. 또, 플레이어 제어모듈(212)은, 스크립트 제어모듈(211)이나 입력 인터페이스(115)로부터의 지시에 따라, 재생 대상의 스트림을 전환한다.
콘텐츠 데이터 공급모듈(213)은, 플레이어 제어모듈(212)의 제어에 따라, 혹은, 버퍼 제어모듈(215)에 축적된 데이터의 량에 근거하여, 디스크(101)로부터의 콘텐츠의 데이터나 메타데이터 등의 독출을, 오퍼레이팅 시스템(201)에 요구한다.
또한 오퍼레이팅 시스템(201)이, 콘텐츠 데이터 공급모듈(213)로부터의 요구 에 따라 디스크(101)로부터 읽어낸 메타데이터 등은, 필요한 모듈에 공급된다. 또, 오퍼레이팅 시스템(201)이, 콘텐츠 데이터 공급모듈(213)로부터의 요구에 따라 디스크(101)로부터 읽어낸 콘텐츠의 데이터는, 버퍼 제어모듈(215)에 공급된다.
디코드 제어모듈(214)은, 플레이어 제어모듈(212)로부터의 제어에 따라, 비디오 디코더 제어모듈(216), 오디오 디코더 제어모듈(217) 및 자막 디코더 제어모듈(218)의 동작을 제어한다. 또, 디코드 제어모듈(214)은, 시각을 재는 계시부(214A)를 내장하고, 비디오 디코더 제어모듈(216)의 제어에 의하여 출력되는 비디오 데이터의 출력과, 그 비디오 데이터와 동기하여 출력되어야 할 데이터(출력 데이터)의 출력, 즉, 여기에서는, 오디오 디코더 제어모듈(217)의 제어에 의하여 출력되는 오디오 데이터의 출력과의 동기를 관리한다.
버퍼 제어모듈(215)은, 도 5에 나타내는 메모리(113)의 기억 영역의 일부인 버퍼(215A)를 내장하고 있고, 그 버퍼(215A)에, 콘텐츠 데이터 공급모듈(213)이 오퍼레이팅 시스템(201)에 요구를 행함으로써 디스크(101)로부터 읽어내진 콘텐츠의 데이터를 일시 기억한다. 또, 버퍼 제어모듈(215)은, 비디오 디코더 제어모듈(216), 오디오 디코더 제어모듈(217), 또는 자막 디코더 제어모듈(218)의 요구에 따라서, 버퍼(215A)에 기억된 데이터를, 비디오 디코더 제어모듈(216), 오디오 디코더 제어모듈(217), 또는 자막 디코더 제어모듈(218)에 공급한다. 버퍼 제어모듈(215)의 상세에 대해서는 후술한다.
비디오 디코더 제어모듈(216)은, 비디오 액세스 유니트 단위로, 버퍼 제어모듈(215)의 버퍼(215A)로부터 비디오 데이터를 부호화한 비디오 부호화 데이터를 읽 어내고, 비디오 디코더(116)에 공급하여, 디코드 처리를 실행시킨다. 그리고, 디코드의 결과 얻어지는 비디오 데이터를, 그래픽스 처리모듈(219)에 공급한다. 여기서, 비디오 액세스 유니트란, 예를 들면, 비디오 데이터의 1픽쳐문, 예를 들면 1 프레임 또는 1 필드분이다.
오디오 디코더 제어모듈(217)은, 오디오 액세스 유니트 단위로, 버퍼 제어모듈(215)의 버퍼(215A)로부터 오디오 데이터를 부호화한 오디오 부호화 데이터를 읽어내고, 오디오 디코더(117)에 공급하여, 디코드 처리를 실행시킨다. 그리고, 디코드의 결과 얻어지는 오디오 데이터를, 오디오 출력모듈(221)에 공급한다. 여기서, 오디오 액세스 유니트란, 오디오 데이터의 소정의 데이터량 만큼(예를 들면, 1 픽쳐에 동기하여 출력되는 만큼)이다.
자막 디코더 제어모듈(218)은, 내부에, 도시하지 않은 자막 디코드 소프트웨어를 갖추고 있고 버퍼(215A)로부터 읽어낸 데이터를 디코드하고, 그 디코드의 결과 얻어지는 자막 데이터(자막의 화상 데이터)를, 그래픽스 처리모듈(219)에 공급한다. 여기서, 자막 액세스 유니트란, 자막 데이터의 소정의 데이터량 만큼, 예를 들면, 1 픽쳐에 동기하여 출력되는 만큼이다. 본 실시의 형태에서는, 자막 액세스 유니트의 사이즈는, 예를 들면, 그 자막 액세스 유니트의 선두에 기술되어 있다.
그래픽스 처리모듈(219)은, 플레이어 제어모듈(212)의 제어(지시)에 따라, 자막 디코더 제어모듈(218)로부터의 자막 데이터의 확대나 축소를 행하고, 비디오 디코더 제어모듈(216)로부터의 비디오 데이터와 가산한다. 게다가 그래픽스 처리모듈(219)은, 자막 데이터와의 가산 후의 비디오 데이터의 사이즈(화상 틀)를, 비 디오 출력단자(120)에 접속된 비디오 출력장치의 표시 화면에 맞추기 위한 확대 또는 축소 등을 행하고, 그 결과 얻어지는 비디오 데이터를, 비디오 출력모듈(220)에 출력한다.
비디오 출력모듈(220)은, 메모리(113)의 일부를 배타적으로 점유하여 FIFO(220A)(버퍼)로서 사용하고, 그래픽스 처리모듈(219)로부터의 비디오 데이터를 일시적으로 기억하고, 또, 그 FIFO(220A)에 기억된 비디오 데이터를 적당히히 읽어내고, 비디오 출력단자(120)에 출력한다.
오디오 출력모듈(221)은, 메모리(113)의 일부를 배타적으로 점유하여 FIFO(221A)(버퍼)로서 사용하고, 오디오 디코더 제어모듈(217)(오디오 디코더(117))로부터의 오디오 데이터를 일시적으로 기억하고, 또, 그 FIFO(221A)에 기억된 오디오 데이터를 적당히 읽어내고, 오디오 출력단자(121)에 출력한다.
이하, 버퍼 제어모듈(215)에 대하여 설명한다. 도 7은, 본 실시의 형태의 버퍼 제어 모듈의 구성도이다.
버퍼 제어모듈(215)은, 버퍼(215A)에 디스크(101)로부터 읽어내진 데이터를 일시 기억시키는 동시에, 이 데이터를 읽어내고, 도 6에 나타내는 비디오 디코더 제어모듈(216), 오디오 디코더 제어모듈(217), 또는 자막 디코더 제어모듈(218)에 공급한다.
이 때문에, 버퍼 제어모듈(215)은, 내부 모듈로서 버퍼 기입 기능부(310), 비디오 독출기능부(320), 오디오 독출기능부(330) 및 자막 출기능부(340)를 가진다. 또한 도 7에서는, 편의상, 각 기능부의 참조하는 기억부 및 레지스터를 각 기 능부를 나타내는 블록내에 나타냈지만, 이들 기억부 및 레지스터는 각 기능부가 처리를 실행하기 위해 필요한 정보를 일시 격납하는 기억 영역에서, 각 기능부내 혹은 메모리(113)상에 확보된다.
버퍼(215A)는, 링 버퍼이며, 디스크(101)로부터 읽어내진 데이터를 무한 루프형으로 기억해 간다.
버퍼 기입 기능부(310)는, 메모리(113)의 일부에 준비되는 데이터 선두 포인터 기억부(311)와 데이터 기입 포인터 기억부(312)를 이용하여, 쌍방의 기억부에 기억된 포인터가 가리키는 버퍼(215A)의 어드레스를 참조하고, 버퍼 제어모듈(215)에 입력되는 데이터의 버퍼(215A)로의 기입을 제어한다. 데이터 선두 포인터 기억부(311)는, 버퍼(215A)에 기억된 데이터 가운데, 아직, 버퍼(215A)로부터 읽어내지 않은 가장 오래된 데이터가 기억되어 있는 어드레스를 가리키는 데이터 선두 포인터를 기억하고, 데이터 기입 포인터 기억부(312)는, 디스크(101)로부터 읽어내진 최신의 데이터가 기입되는 버퍼(215A)의 어드레스를 가리키는 기입 포인터를 기억한다. 그리고, 디스크(101)로부터 읽어내진 데이터를 데이터 기입 포인터가 가리키는 버퍼(215A)의 위치로부터 차례차례 기입하고, 기입 종료에서 기입 포인터를 갱신한다.
비디오 독출기능부(320)는, 비디오 디코더 제어모듈(216)로부터의 요구에 따라, 비디오 독출 포인터 기억부(321)에 격납된 포인터가 가리키는 버퍼(215A)의 어드레스를 기점으로서 비디오 스트림, 즉, 비디오 데이터에 관한 엘리멘터리 스트림을 검색하고, 읽어낸 비디오 스트림을 비디오 디코더 제어모듈(216)에 공급한다. 오디오 독출기능부(330)는, 오디오 디코더 제어모듈(217)로부터의 요구에 따라, 오디오 독출 포인터 기억부(331)에 격납된 포인터가 가리키는 버퍼(215A)의 어드레스를 기점으로서 오디오 스트림, 즉, 오디오 데이터에 관한 엘리멘터리 스트림을 검색하여, 읽어낸 오디오 스트림을 오디오 디코더 제어모듈(217)에 공급한다. 자막독출기능부(340)는, 자막 디코더 제어모듈(218)로부터의 요구에 따라, 자막 독출 포인터 기억부(342)에 격납된 포인터가 가리키는 버퍼(215A)의 어드레스를 기점으로서 자막 스트림, 즉, 자막 데이터에 관한 엘리멘터리 스트림을 검색하여, 읽어낸 자막 스트림을 자막 디코더 제어모듈(218)에 공급한다.
여기서, 디스크(101)에는, 예를 들면, MPEG2(Moving Picture Experts Group2)의 규격에 준거한 프로그램 스트림(MPEG2-System Program Stream)이 기록되어 있고, 버퍼(215A)에는, 디스크(101)로부터 읽어내진 프로그램 스트림이 기억된다. 이 프로그램 스트림은, 비디오 스트림이나, 오디오 스트림, 자막 스트림 등의 1이상의 엘리멘터리 스트림이 시분할다중 되어 있다.
비디오독출기능부(320)는, 프로그램 스트림의 디멀티플렉스의 기능을 가지고, 버퍼(215A)에 기억된 프로그램 스트림으로부터, 비디오 스트림을 분리하여 읽어낸다. 동일하게, 오디오독출기능부(330)도, 프로그램 스트림의 디멀티플렉스의 기능을 가지고, 버퍼(215A)에 기억된 프로그램 스트림으로부터, 오디오 스트림을 분리하여 읽어낸다. 자막독출기능부(340)도, 프로그램 스트림의 디멀티플렉스의 기능을 가지고, 버퍼(215A)에 기억된 프로그램 스트림으로부터, 자막 스트림을 분리하여 읽어낸다.
여기서, 비디오독출기능부(320)는, 도 5에 나타내는 메모리(113)의 일부에 비디오 독출 포인터 기억부(321) 및 stream_id 레지스터(322)를 가지고 있다.
비디오 독출 포인터 기억부(321)는, 버퍼(215A)의, 비디오 디코더 제어모듈(216)이 아직 읽어내지 않은 영역의 선두 위치를 가리키는 비디오 독출 포인터를 기억하고, 비디오독출기능부(320)는, 버퍼(215A)의, 비디오 독출 포인터가 가리키는 위치를 기점으로서 비디오 스트림을 검색하여 읽어낸다. stream_id 레지스터(322)는, 버퍼(215A)에 기억된 프로그램 스트림을 해석하고, 그 프로그램 스트림중에서 읽어내는 비디오 스트림을 식별하기 위하여 후술하는 stream_id를 기억한다.
오디오독출기능부(330)는, 도 2의 메모리(113)의 일부에 오디오 독출 포인터 기억부(331), stream_id 레지스터(332) 및 private_stream_id 레지스터(333)를 가지고 있다.
오디오 독출 포인터 기억부(331)는, 버퍼(215A)의, 오디오 디코더 제어모듈(217)이 아직 읽어내지 않은 영역의 선두 위치(어드레스)를 가리키는 오디오 독출 포인터를 기억하고, 오디오독출기능부(330)는, 버퍼(215A)의, 오디오 독출 포인터가 가리키는 위치를 기점으로서 오디오 스트림을 검색하여 읽어낸다. stream_id 레지스터(332)와 private_stream_id 레지스터(333)는, 버퍼(215A)에 기억된 프로그램 스트림을 해석하여, 그 프로그램 스트림중에서 읽어내는 오디오 스트림을 식별하기 위하여 후술하는 stream_id와 private_stream_id를 각각 기억한다.
자막독출기능부(340)는, 도 2의 메모리(113)의 일부에 자막독출기능플래그 기억부(341), 자막 독출 포인터 기억부(342), stream_id 레지스터(343) 및 private_streamid 레지스터(344)를 가지고 있다.
자막독출기능플래그 기억부(341)는, 자막독출기능플래그를 기억한다. 자막독출기능플래그 기억부(341)에 기억된 자막독출기능플래그가, 예를 들면 0인 경우, 자막독출기능부(340)는 기능 동작하지 않고, 자막독출기능플래그 기억부(341)에 기억된 자막독출기능플래그가, 예를 들면 1인 경우, 자막독출기능부(340)는 기능한다. 이와 같이, 다중화 스트림에 포함되지 않은 엘리멘터리 스트림의 독출처리를 정지시킴으로써, CPU에 여분의 처리를 실행시키지 않는다. 자막 독출 포인터 기억부(342)는, 버퍼(215A)의, 자막 디코더 제어모듈(218)이 아직 읽어내지 않은 영역의 선두 위치(어드레스)를 가리키는 자막 독출 포인터를 기억하고, 자막독출기능부(340)는, 버퍼(215A)의, 자막 독출 포인터가 가리키는 위치를 기점으로서 자막 스트림을 검색하여 읽어낸다. stream_id 레지스터(343)와 private_stream_id 레지스터(344)는, 버퍼(215A)에 기억된 프로그램 스트림을 해석하고, 그 프로그램 스트림중에서 읽어내는 자막 스트림을 식별하기 위하여 후술하는 stream_id와 private_stream_id 를 각각 기억한다.
여기서, 디스크(101)에 기입된 데이터의 데이터 포맷에 대하여 설명한다.
도 8은, 디스크의 디렉토리 구조를 모식적으로 나타내고 있다.
디스크(101)의 파일 시스템으로서는, 예를 들면, ISO(International Organization for standardization)-9660이나, UDF(Universal Disk Format:http://www.osta.org/specs/) 등으로 규정된 파일 시스템이 이용되고 있고, 디스 크(101)에 기입된 데이터의 파일은 디렉토리 구조에 의해 계층적으로 관리되고 있다. 여기서, 파일 시스템은, 상술한 파일 시스템으로 한정되는 것은 아니다.
도 8에서는, 파일 시스템의 기점을 나타내는 루트(root) 디렉토리에, "VIDEO"디렉토리가 놓여지고, "VIDEO"디렉토리에는, "CLIP"디렉토리와 "stream"디렉토리의 2개의 디렉토리가 놓여져 있다
"VIDEO"디렉토리에는, "CLIP"디렉토리와 "stream"디렉토리의 2개의 디렉토리 외에, "SCRIPT.DAT"파일과 "PLAYLIST.DAT"파일의 2개의 데이터 파일이 놓여져 있다.
"SCRIPT.DAT"파일은, 스크립트 프로그램이 기술된 스크립트 파일이다. 즉, "SCRIPT.DAT"파일에는, 디스크(101)의 재생 형태를 인터랙티브인 것으로 하기 위해 사용하는 스크립트 프로그램이 기술되어 있다. 이 "SCRIPT.DAT"파일에 기술된 스크립트 프로그램은, 도 6에 나타내는 스크립트 제어모듈(211)에 의하여 해석, 실행된다.
"PLAYLIST.DAT"파일에는, 디스크(101)에 기입된 비디오 데이터 등의 콘텐츠의 재생순서가 기술된 플레이 리스트가 1 이상 격납되어 있다.
"CLIP"디렉토리에는, 1이상의 클립 정보 파일이 놓여지며, "stream"디렉토리에는, 1이상의 클립 스트림 파일이 놓여진다. 즉, 도 8에 나타내는 예에서는, "CLIP"디렉토리에는, 3개의 클립 정보 파일"00001.CLP", "00002.CLP", "0003.CLP"가 놓여져 있고, "stream"디렉토리에는, 3개의 클립 스트림 파일"00001.PS", "00002.PS", "00003.PS"가 놓여져 있다.
클립 스트림 파일에는, 비디오 데이터, 오디오 데이터, 자막 데이터 등의 1이상의 데이터(스트림)를 압축, 부호화하여 얻어지는 1이상의 엘리멘터리 스트림을 시분할다중화한 프로그램 스트림이 격납되어 있다.
클립 정보 파일에는, 대응하는 클립 스트림 파일의 성질 등의, 클립 스트림에 관한(파일) 메타데이터가 기술되어 있다.
클립 스트림 파일과 클립 정보 파일이란, 1대1로 대응하고 있고, 도 8에 나타내는 예의 경우에서는, "CLIP"디렉토리에 놓여진 3개의 클립 정보 파일"00001.CLP", "00002.CLP", "00003.CLP"는, "stream"디렉토리에 놓여진 클립 스트림 파일"00001.PS", "00002.PS", "00003.PS"의 성질 등을 나타내는 메타데이터가 격납되어 있다. 메타데이터 중에는, 클립 스트림에 관한 스트림 정보(이하, streamInfo()로 한다)가 다중화되어 있는 스트림의 갯수 만큼 존재한다. streamInfo()의 선두에는, length(16비트)가 배치되며, 이 length는, 그것을 포함하는 streamInfo()의 사이즈를 나타낸다. length에 계속하여, stream_id(8비트)와 private_stream_id(8비트)가 배치되어 있고, 이 stream_id와 private_stream_id에 의하여, streamInfo()에 관련짓는 엘리멘터리 스트림이 특정(식별)된다.
여기서, 도 9는, 엘리멘터리 스트림을 식별하는 stream_id 및 private_stream_id와 엘리멘터리 스트림과의 관계를 나타내고 있다. stream_id는, MPEG2-System 규격에 있어서 규정되어 있는 것과 동일한 것이며, 그 값은, MPEG2-System 규격에 있어서, 엘리멘터리 스트림(데이터)의 속성(종류)마다, 미리 결정되 어 있다. 따라서, MPEG2-System 규격으로 정의되어 있는 속성의 엘리멘터리 스트림은, stream_id만으로 특정할 수 있다.
본 실시의 형태에서는, MPEG2-System 규격에 있어서 규정되어 있지 않은 속성의 엘리멘터리 스트림도 취급하는 것이 가능하게 되어 있고, private_stream_id는, MPEG2-System 규격에 있어서 규정되어 있지 않은 속성의 엘리멘터리 스트림을 식별하기 위한 정보이다. 도 6에서는, MPEG로 규정되어 있는 부호화(복호)방식으로 인코드 된 비디오의 엘리멘터리 스트림, ATRAC(Adaptive TRansform Acoustic Coding) 방식으로 인코더 된 오디오의 엘리멘터리 스트림(이하, 적당히, ATRAC 오디오 스트림이라고 한다), LPCM(Linear Pulse Code Modulation)방식으로 인코드 된 오디오의 엘리멘터리 스트림(이하, 적당히히, LPCM 오디오 스트림이라고 한다), 자막의 엘리멘터리 스트림(이하, 적당히히, 자막 스트림이라고 한다)의 4개의 속성의 엘리멘터리 스트림에 대해서, stream_id 및 private_stream_id과의 관계를 나타내고 있다.
MPEG2-System 규격에서는, MPEG로 규정되어 있는 부호화 방식으로 인코드 된 비디오의 엘리멘터리 스트림은, 0xE0 내지 0xEF의 범위의 값을(0x는, 그 후에 계속 되는 문자열이 16 진수인 것을 나타낸다), 엘리멘터리 스트림을 식별하는 stream_id로서 이용하여 다중화하는 것이 규정되어 있다. 따라서, MPEG로 규정되어 있는 부호화 방식으로 인코드 된 비디오의 엘리멘터리 스트림에 대해서는, 0xE0 내지 0xEF의 범위의 값의 stream_id로 식별할 수 있는 16개의 비디오의 엘리멘터리 스트림을, 프로그램 스트림에 다중화할 수 있다.
또한, MPEG로 규정되어 있는 부호화 방식으로 인코드 된 비디오의 엘리멘터리 스트림의 식별은, 0xE0 내지 0xEF의 범위의 값의 stream_id로 행할 수 있으므로, private_stream_id는 불필요하다(무시할 수 있다). 한편, MPEG2-System에서는, ATRAC 오디오 스트림, LPCM 오디오 스트림, 자막 스트림에 대해서는, stream_id는 정의되어 있지 않다. 그래서, 본 실시의 형태에서는, MPEG2-System로 stream_id가 정의되어 있지 않은 엘리멘터리 스트림에 대해서는, 그 stream_id에, MPEG2-System에 있어서 private_stream_1이라고 하는 속성을 나타내는 값인 0xBD를 채용하고, 또한, 도 6에 나타내는 바와 같이, private_stream_id를 이용하여 식별(특정)을 행하는 것으로 하고 있다.
다음으로, 상술한 프로그램 스트림의 재생 처리를 행하는 디스크 장치의 동작에 대하여, 버퍼 제어모듈(215)의 처리를 중심으로 설명한다. 이하의 설명에서는, 대상의 클립 스트림 파일"00001.PS"에, 1개의 비디오 스트림, 1개의 ATRAC 오디오 스트림 및 2개의 자막 스트림이 다중화되어 있다고 한다.
디스크(101)가 디스크 드라이버(102)에 삽입되며, 오퍼레이팅 시스템(201)을 경유하여 통지되면, 비디오 콘텐츠 재생 프로그램(210)에 의한 재생 처리가 개시된다.
재생 처리에서는, 우선, 재생전처리가 행해지며, 플레이어 제어모듈(212)은, 재생 대상의 엘리멘터리 스트림이 다중화되어 있는 클립 스트림 파일"00001.PS"에 격납된 프로그램 스트림의, 버퍼 제어모듈(215)로의 공급이 개시되기 전에, 버퍼 제어모듈(215)을 초기화한다.
「재생전처리」
구체적으로는, 버퍼 제어모듈(215)에서는, 데이터 선두 포인터 기억부(311)에 기억되는 데이터 선두 포인터, 데이터 기입 포인터 기억부(312)에 기억되는 데이터 기입 포인터, 비디오 독출 포인터 기억부(321)에 기억되는 비디오 독출 포인터, 오디오 독출 포인터 기억부(331)에 기억되는 오디오 독출 포인터, 자막 독출 포인터 기억부(342)에 기억되는 자막 독출 포인터에 같은 값이 대입된다. 이것에 의해, 데이터 선두 포인터 기억부(311)에 기억된 데이터 선두 포인터와 데이터 기입 포인터 기억부(312)에 기억된 데이터 기입 포인터는, 버퍼 제어모듈(215)의 버퍼(215A)의 동일한 위치를 가리킨다. 이것은, 버퍼(215A)에, 유효한 데이터가 축적되어 있지 않은 상태를 나타낸다.
또한, 플레이어 제어모듈(212)은, 재생 대상의 엘리멘터리 스트림을 식별(특정)하기 위해, 식별 정보로서 대상의 클립 스트림 파일"00001.PS"에 대응하는 클립 정보 파일"0001.CLP"로부터 stream_id, 또한, 필요에 따라서, private_stream_id를 읽어내고, 버퍼 제어모듈(215)에 공급한다. 즉, 상술한 바와 같이, 재생 대상의 엘리멘터리 스트림 중, 「비디오 스트림」의 속성의 비디오 스트림은, 0xE0로 되어 있는 stream_id에 의하여 특정되며, 「오디오 스트림」의 속성의 ATRAC 오디오 스트림은, 0xBD로 되어 있는 stream_id 및 0x00로 되어 있는 private_stream_id에 의하여 특정되며, 「자막 스트림」의 속성의 자막 스트림은, 0xBD로 되어 있는 stream_id 및 0x80으로 되어 있는 private_stream_id에 의하여 특정된다. 플레이어 제어모듈(212)은, 이들의 stream_id와 private_stream_id를, 버퍼 제 어모듈(215)에 공급한다.
버퍼 제어모듈(215)에서는, 비디오독출기능부(320)가, 플레이어 제어모듈(212)로부터의, 비디오 스트림에 대한 0xE0로 되어 있는 stream_id를, streamid 레지스터(322)에 기억시킨다. 또, 오디오독출기능부(330)가, 플레이어 제어모듈(212)로부터의, 0xBD로 되어 있는 stream_id와, 0x00로 되어 있는 private_stream_id를, stream_id 레지스터(332)와 private_stream_id 레지스터(333)에, 각각 기억시킨다. 또한, 자막독출기능부(340)가, 플레이어 제어모듈(212)로부터의, 0xBD로 되어 있는 stream_id와, 0x80로 되어 있는 private_stream_id를, stream_id 레지스터(343)와 private_stream_id 레지스터(344)에, 각각 기억시킨다.
플레이어 제어모듈(212)은, 버퍼 제어모듈(215)의 초기화로 하고, 또한, 재생 대상의 엘리멘터리 스트림이 다중화되어 있는 클립 스트림 파일에 따른 값의 자막 독출 기능 플래그를, 자막독출기능플래그 기억부(341)에 세트 한다. 즉, 지금의 경우, 재생 대상의 엘리멘터리 스트림이 다중화되어 있는 클립 스트림 파일"00001.PS"에는, 자막 스트림이 포함되기 때문에, 자막독출기능부(340)를 기능시키기 위해, 값이 1의 자막독출기능플래그가, 자막독출기능플래그 기억부(341)에 세트 된다. 또한 재생 대상의 엘리멘터리 스트림이 다중화되어 있다. 클립 스트림 파일에 자막 스트림이 포함되지 않은 경우, 자막독출기능플래그 기억부(341)에는, 값이 0의 자막독출기능플래그가 세트 된다. 이 경우, 자막독출기능부(340)는 기능하지 않는다(특히 처리를 행하지 않는다).
「데이터 읽기개시」
그 후, 플레이어 제어모듈(212)은, 콘텐츠 데이터 공급모듈(213)을 제어하고, 이것에 의해, 콘텐츠 데이터 공급모듈(213)은, 오퍼레이팅 시스템(201)의 기능을 사용하고, 재생 대상의 엘리멘터리 스트림이 다중화된 프로그램 스트림이 격납된 클립 스트림 파일을 읽어낸다. 또, 콘텐츠 데이터 공급모듈(213)은, 디스크(101)로부터 읽어낸 데이터를, 버퍼 제어모듈(215)에 공급하도록 지정한다. 이것에 의해, 디스크(101)로부터의, 클립 스트림 파일"00001.PS"에 격납된 프로그램 스트림의 독출이 개시되며, 그 프로그램 스트림은, 버퍼 제어모듈(215)에 공급된다.
버퍼 제어모듈(215)은, 디스크(101)로부터 읽어 내져 공급된 프로그램 스트림을, 버퍼(215A)의 데이터 기입 포인터 기억부(312)의 데이터 기입 포인터가 가리키는 위치에 기입하고, 기입한 데이터의 사이즈만 데이터 기입 포인터를 인크리먼트 한다.
이하, 특히 거절하지 않는 이상, 콘텐츠 데이터 공급모듈(213)은, 버퍼 제어모듈(215)의 버퍼(215A)에 빈 곳이 있으면, 디스크(101)로부터 데이터를 읽어내고, 버퍼 제어모듈(215)의 버퍼(215A)에 공급하여 기억시키는 것으로 한다. 따라서, 버퍼(215A)에는, 상시, 충분한 데이터가 축적된다.
「디코더 제어개시」
이상과 같이 하여, 디스크(101)로부터의 데이터의 독출이 개시되며, 그 데이터가 버퍼 제어모듈(215)의 버퍼(215A)에 축적되기 시작하면, 디코드 제어모 듈(214)은, 비디오 디코더 제어모듈(216), 오디오 디코더 제어모듈(217), 자막 디코더 제어모듈(218)을 제어하고, 디코드 동작의 전단층으로서, 버퍼(215A)로부터의 데이터의 독출을 개시시킨다.
「버퍼 제어 모듈의 처리」
다음으로, 도 10 및 도 11을 참조하고, 버퍼 제어모듈(215)의 처리, 즉, 버퍼(215A)로의 데이터 기입과, 버퍼(215A)로부터의 데이터 독출에 대하여 설명한다. 도 10 및 도 11은, 버퍼 제어 모듈의 데이터 독출에 의한 포인터 갱신의 일례를 나타낸 도면이다. 도 10은, 갱신 전의 오디오 독출 포인터가 가리키는 위치를 나타내고, 도 11은, 갱신 후의 오디오 독출 포인터가 가리키는 위치를 나타내고 있다.
버퍼 제어모듈(215)은, 도 7을 참조하여 설명한 바와 같이, 버퍼(215A)에 대한 데이터의 읽고 쓰기를 행하기 때문에 5개의 포인터를 가지고 있다.
즉, 도 10 및 도 11에 나타내는 바와 같이, 버퍼 제어모듈(215)은, 데이터 선두 포인터 기억부(311)에 기억되는 데이터 선두 포인터, 데이터 기입 포인터 기억부(312)에 기억되는 데이터 기입 포인터, 비디오 독출 포인터 기억부(321)에 기억되는 비디오 독출 포인터, 오디오 독출 포인터 기억부(331)에 기억되는 오디오 독출 포인터 및 자막 독출 포인터 기억부(342)에 기억되는 자막 독출 포인터를 가지고 있다.
또한 도 10 및 도 11에서는, 도 6에 있어서의 비디오독출기능부(320)의 stream_id 레지스터(322), 오디오독출기능부(330)의 stream_id 레지스터(332) 및 private_streamid 레지스터(333) 및 자막독출기능부(340)의 자막독출기능플래그 기억부(341), stream_id 레지스터(343) 및 private_stream_id 레지스터(344)의 도시는, 생략하고 있다.
데이터 선두 포인터 기억부(311)에 기억된 데이터 선두 포인터는, 버퍼(215A)에 남는 가장 오래된 데이터의 위치를 나타낸다. 여기서, 가장 오래된 데이터란, 읽어낼 필요가 있는 데이터이며, 아직 읽어내지 않은 데이터 중 가장 오래된 데이터를 말한다. 데이터 기입 포인터 기억부(312)에 기억된 데이터 기입 포인터는, 버퍼(215A)로의 데이터 기입 위치를 나타내고, 이 위치는, 버퍼(215A)에서 가장 새로운 데이터가 기입되는 위치이다.
비디오 독출 포인터 기억부(321)에 기억된 비디오 독출 포인터는, 버퍼(215A)로부터 읽어내는 비디오 스트림의 위치를 나타낸다. 또, 오디오 독출 포인터 기억부(331)에 기억된 오디오 독출 포인터는, 버퍼(215A)로부터 읽어내는 오디오 스트림의 위치를 나타내고, 자막 독출 포인터 기억부(342)에 기억된 자막 독출 포인터는, 버퍼(215A)로부터 읽어내는 자막 스트림의 위치를 나타낸다.
게다가 본 실시의 형태에서는, 데이터 선두 포인터는, 도 11에 나타내는 바와 같이, 비디오 독출 포인터, 오디오 독출 포인터, 또는 자막 독출 포인터 중, 가장 오래된 데이터의 위치를 가리키고 있는 것과 동일한 위치를 가리키도록, 상시 갱신되는 것으로 한다. 여기서, 도 11에서는, 비디오 독출 포인터, 오디오 독출 포인터, 또는 자막 독출 포인터 중, 오디오 독출 포인터가, 가장 오래된 데이터의 위치를 가리키고 있고, 데이터 선두 포인터는, 그 오디오 독출 포인터와 일치하고 있다.
이상과 같은 데이터 선두 포인터, 데이터 기입 포인터, 비디오 독출 포인터, 오디오 독출 포인터 및 자막 독출 포인터를 가지는 버퍼 제어모듈(215)에서는, 데이터 기입 포인터는, 디스크(101)에서 새로운 데이터가 읽어 내져 버퍼(215A)에 기입되면, 그 기입된 새로운 데이터 직후의 위치를 가리키도록, 우회전으로 갱신된다.
게다가, 비디오 독출 포인터, 오디오 독출 포인터, 또는 자막 독출 포인터는, 버퍼(215A)로부터, 비디오 스트림, 오디오 스트림, 또는 자막 스트림이 읽어내지면, 그 독출량에 따른 만큼만, 각각, 우회전으로 갱신된다. 여기서 독출량에 따른 만큼이란, 실제로 읽어낸 비디오, 오디오, 자막의 데이터에 대응하는 부분과, 읽어낸 데이터의 사이에 포함되어 있고, 독출 시에는 건너 띄어 읽기를 행한, 다른 스트림 데이터의 부분을 합한 것으로 된다.
또, 데이터 선두 포인터는, 비디오 독출 포인터, 오디오 독출 포인터, 또는 자막 독출 포인터가 갱신되면, 그 비디오 독출 포인터, 오디오 독출 포인터, 또는 자막 독출 포인터 중, 가장 오래된 데이터의 위치를 가리키고 있는 것과 동일한 위치를 가리키도록 갱신된다.
여기서, 버퍼 제어모듈(215)은, 버퍼(215A)로의 데이터의 기입에 대해서는, 데이터 기입 포인터가 데이터 선두 포인터를 추월하지 않도록, 버퍼(215A)로의 데이터의 기입을 제어한다.
즉, 데이터 기입 포인터에 의한 데이터 선두 포인터의 추월이 발생하지 않는 한, 버퍼 제어모듈(215)에서는, 디스크(101)로부터 읽어내진 데이터가, 데이터 기 입 포인터가 가리키는 버퍼(215A)의 위치에 기입되며, 데이터 기입 포인터가 갱신되어 간다. 한편, 데이터 기입 포인터에 의한 데이터 선두 포인터의 추월이 발생할 것 같게 되면, 버퍼 제어모듈(215)에서는, 콘텐츠 데이터 공급모듈(213)에 대하여, 디스크(101)로부터의 데이터의 독출의 정지(중단)가 요구되며, 게다가 버퍼(215A)로의 데이터의 기입이 정지된다. 이것에 의해, 버퍼(215A)의 오버플로우를 방지할 수 있다.
이상과 같이, 디스크(101)로부터 읽어내진 데이터의, 버퍼(215A)로의 기입은, 데이터 선두 포인터와 데이터 기입 포인터와의 2개의 포인터의 위치 관계만으로 제어된다.
한편, 버퍼 제어모듈(215)은, 버퍼(215A)로부터의 데이터의 독출에 대해서는, 비디오 독출 포인터, 오디오 독출 포인터 및 자막 독출 포인터, 나아가서는, 데이터 선두 포인터가, 데이터 기입 포인터를 추월하지 않도록, 버퍼(215A)로부터의 데이터의 독출을 제어한다.
즉, 비디오 독출 포인터, 오디오 독출 포인터, 또는 자막 독출 포인터에 의한 데이터 기입 포인터의 추월이 발생하지 않는 한, 버퍼 제어모듈(215)에서는, 비디오 디코더 제어모듈(216), 오디오 디코더 제어모듈(217), 또는 자막 디코더 제어모듈(218)로부터의 요구에 따라, 비디오 독출 포인터, 오디오 독출 포인터, 또는 자막 독출 포인터가 가리키는 버퍼(215A)의 위치로부터 데이터의 독출처리가 개시되며, 비디오 독출 포인터, 오디오 독출 포인터, 또는 자막 독출 포인터가 갱신되는 동시에, 데이터 선두 포인터가 갱신된다. 한편, 비디오 독출 포인터, 오디오 독출 포인터, 또는 자막 독출 포인터에 의한 데이터 기입 포인터의 추월이 발생할 것 같게 되면, 버퍼 제어모듈(215)에서는, 비디오 디코더 제어모듈(216), 오디오 디코더 제어모듈(217), 또는 자막 디코더 제어모듈(218)로부터의 요구가, 예를 들면 동결되어 충분한 데이터가 준비될 때까지 기다리게 된다. 이것에 의해, 버퍼(215A)의 언더플로우를 방지할 수 있다.
이상에서, 버퍼(215A)에는, 데이터 선두 포인터가 가리키는 위치로부터, 우회전으로, 데이터 기입 포인터가 가리키는 위치까지의 범위(도 7 및 도 8의 사선부)에, 비디오 디코더 제어모듈(216), 오디오 디코더 제어모듈(217) 및 자막 디코더 제어모듈(218)에 공급해야 할 데이터가 기억되어 있고, 게다가, 그 범위내에, 비디오 독출 포인터, 오디오 독출 포인터 및 자막 독출 포인터는 존재한다.
또한 상술의 경우에는, 데이터 선두 포인터는, 비디오 독출 포인터, 오디오 독출 포인터, 또는 자막 독출 포인터가 가리키고 있는 위치 중, 가장 오래된 데이터의 위치를 가리키도록 갱신하는 것으로 했지만, 그 외, 데이터 선두 포인터의 갱신은, 예를 들면, 그 가장 오래된 데이터의 위치로부터, 소정의 시간(예를 들면, 1초)만큼만 과거 데이터의 위치를 가리키도록 행하는 것이 가능하다.
즉, 일반적으로는, 비디오 독출 포인터, 오디오 독출 포인터, 또는 자막 독출 포인터 중, 비디오 독출 포인터나 오디오 독출 포인터가, 가장 오래된 데이터의 위치를 가리키는 것이 많다고 예상된다.
따라서, 데이터 선두 포인터를, 비디오 독출 포인터 또는 오디오 독출 포인터가 가리키는 가장 오래된 데이터의 위치로부터, 예를 들면, 1초만큼만 과거 데이 터의 위치를 가리키도록 갱신했을 경우, 도 10에 나타내는 바와 같이, 비디오 독출 포인터 또는 오디오 독출 포인터가 가리키는 가장 오래된 데이터의 위치로부터 과거 1초만큼의 데이터를, 버퍼(215A)에 남겨 둘 수 있다. 여기서, 도 10에서는, 오디오 독출 포인터가, 가장 오래된 데이터의 위치를 가리키고 있고, 데이터 선두 포인터는, 그 위치로부터 1초만큼만 과거 데이터의 위치를 가리키고 있다.
이상과 같이, 1초만큼만 과거 데이터의 위치를 가리키도록, 데이터 선두 포인터를 갱신함으로써, 디스크 장치의 응답성을 향상시킬 수 있다.
즉, 도 11에 나타내는 바와 같이, 오디오 독출 포인터가 가리키고 있는 가장 오래된 데이터의 위치를 가리키도록, 데이터 선두 포인터를 갱신하는 경우에는, 예를 들면, 리버스 방향으로의 특수 재생이 지시되었을 때에, 버퍼(215A)로부터의 독출이 종료한 데이터를, 디스크(101)로부터 재차 읽어낼 필요가 있기 때문에, 특수 재생이 지시되고 나서, 그 특수 재생이 가능해지기까지, 어느 정도의 시간이 걸린다.
이것에 대하여, 도 10에 나타내는 바와 같이, 오디오 독출 포인터가 가리키고 있는 가장 오래된 데이터의 위치로부터 1초만큼만 과거 데이터의 위치를 가리키도록, 데이터 선두 포인터를 갱신하는 경우에는, 리버스 방향으로의 특수 재생이 지시되었을 때에, 그 특수재생을 개시하는데 필요한 데이터가, 버퍼(215A)에 기억되어 있는 1초만큼만 과거의 데이터이면, 상술한 바와 같은 디스크(101)로부터의 데이터의 재독출을 행하지 않고, 즉석에서, 특수 재생을 개시하는 것이 가능하게 된다.
또한 오디오 독출 포인터가 가리키고 있는 가장 오래된 데이터의 위치로부터 1초만큼만 과거 데이터의 위치를 가리키도록, 데이터 선두 포인터를 갱신하는 경우여도, 특수 재생을 개시하는데 필요한 데이터가, 버퍼(215A)에 기억되어 있지 않은 것이 있을 수 있다. 이 경우에는, 특수 재생을 개시하는데 필요한 데이터가, 디스크(101)로부터 재차 읽어 내진다.
다음으로, 버퍼(215A)로부터의 비디오 스트림, 오디오 스트림, 자막 스트림 각각의 독출의 상세에 대하여 설명한다.
클립 스트림 파일의 재생이 개시될 때, 버퍼 제어모듈(215)에 있어서는, 데이터 선두 포인터, 데이터 기입 포인터, 비디오 독출 포인터, 오디오 독출 포인터, 자막 독출 포인터가, 모두, 버퍼(215A)상의 같은 위치를 가리키도록 초기화된다.
그리고, 디스크(101)로부터 클립 스트림 파일에 격납된 프로그램 스트림(MPEG2-System Program stream)이 읽어 내지며, 버퍼 제어모듈(215)에 공급되면, 버퍼 제어모듈(215)에서는, 그 프로그램 스트림이, 버퍼(215A)의 데이터 기입 포인터가 가리키는 위치에 기억되는 동시에, 데이터 기입 포인터가, 우회전으로 갱신되어 간다.
버퍼 제어모듈(215)에서는, 비디오독출기능부(320)가, stream_id 레지스터(322)에 기입된 정보를 이용하여, 버퍼(215A)에 기억된 프로그램 스트림의 구문해석을 행하고, 비디오 디코더 제어모듈(216)로부터의 요구에 따라, 버퍼(215A)에 기억된 프로그램 스트림으로부터, 비디오 스트림(비디오 액세스 유니트)을 추출(분리)하여 읽어내고, 비디오 디코더 제어모듈(216)에 공급한다.
동일하게, 오디오독출기능부(330)도, stream id 레지스터(332) 및 private_stream_id 레지스터(333)에 기입된 정보를 이용하여, 버퍼(215A)에 기억된 프로그램 스트림의 구문해석을 행하고, 오디오 디코더 제어모듈(217)로부터의 요구에 따라, 버퍼(215A)에 기억된 프로그램 스트림으로부터, 오디오 스트림(오디오 액세스 유니트)을 추출하여 읽어내고, 오디오 디코더 제어모듈(217)에 공급한다. 자막독출기능부(340)도, stream_id 레지스터(343) 및 private stream_id 레지스터(344)에 기입된 정보를 이용하여, 버퍼(215A)에 기억된 프로그램 스트림의 구문해석을 행하고, 자막 디코더 제어모듈(218)로부터의 요구에 따라, 버퍼(215A)에 기억된 프로그램 스트림으로부터, 자막 스트림(자막 액세스 유니트)을 추출하여 읽어내고, 자막 디코더 제어모듈(218)에 공급한다.
이와 같이, 비디오독출기능부(320), 오디오독출기능부(330) 및 자막독출기능부(340)에 의하여, 디멀티플렉스를 실시하면서 각 ES를 디코더에 공급할 수 있다. 이것에 의해, 데이터의 이동을 삭감할 수 있고, CPU의 처리 능력을 향상시킬 수 있다.
또, 종래 예에서는, 각 엘리멘터리 스트림 축적부가 담당하고 있던 버퍼 기능이, 버퍼 제어모듈(215)로 이동하므로, 버퍼 제어모듈(215)의 버퍼(215A)에는 그 만큼의 용량 추가가 필요하다. 예를 들면, MPEG2-System 각 엘리멘터리 스트림 축적부에서의 지연은 1초 이내 등이라고 규정되어 있기 때문에, 1초만큼의 다중화 스트림이 축적되는 만큼의 용량이 필요하게 된다. 즉, MPEG2-System의 프로그램 스트림에 있어서는, STD로의 지연의 값(STD_Delay)에, 다중화 레이트(program_mux_rate)를 곱한 곱만큼의 용량을 추가로 가지면 좋다.
또한 본 발명은, 도면을 참조하여 설명한 상술의 실시예로 한정되지 않고, 첨부의 청구의 범위 및 그 주지를 일탈하지 않고, 여러 가지 변경, 치환 또는 그 동등의 것을 행할 수 있는 것은 당업자에게 있어서 분명하다.

Claims (13)

  1. 엘리멘터리 스트림(elementary stream)이 시분할다중된 다중화 스트림의 분리 처리를 행하는 다중화 분리장치에 있어서,
    상기 다중화 스트림의 데이터를 차례차례 무한 루프형으로 기억해 가는 링 버퍼와,
    상기 링 버퍼의 가장 오래된 상기 다중화 스트림의 데이터가 기억된 위치를 가리키는 데이터 선두 포인터를 격납하는 데이터 선두 포인터 축적 수단과,
    최신의 상기 다중화 스트림의 데이터를 기입하는 위치를 가리키는 데이터 기입 포인터를 격납하는 데이터 기입 포인터 축적수단과,
    상기 다중화 스트림이 공급되면, 상기 데이터 기입 포인터가 가리키는 상기 링 버퍼의 위치에서 기입하고, 기입 사이즈에 따라 상기 데이터 기입 포인터를 갱신하는 버퍼 제어수단과,
    독출을 행하는 상기 엘리멘터리 스트림 마다, 상기 링 버퍼로부터 각각의 상기 엘리멘터리 스트림의 독출처리의 기점으로 되는 위치를 가리키는 독출 포인터를 격납하는 독출 포인터 축적 수단과,
    독출 요구된 상기 엘리멘터리 스트림에 관한 상기 독출 포인터를 상기 독출 포인터 축적 수단으로부터 꺼내고, 상기 독출 포인터에 의하여 지시된 상기 링 버퍼의 위치를 기점으로서 대상의 상기 엘리멘터리 스트림을 검색하여 읽어내고, 독출 사이즈에 따라 상기 독출 포인터를 갱신하는 동시에 상기 데이터 선두 포인터를 갱신하는 독출제어수단을 구비하는 것을 특징으로 하는 다중화 분리장치.
  2. 제 1항에 있어서,
    상기 독출제어수단은, 복수의 상기 독출 포인터중 가장 오래된 데이터가 격납되어 있는 위치를 가리키고 있는 상기 독출 포인터를, 상기 데이터 선두 포인터에 대입하는 것을 특징으로 하는 다중화 분리장치.
  3. 제 2항에 있어서,
    상기 독출제어수단은, 읽어 내진 상기 엘리멘터리 스트림의 독출 포인터와, 상기 다중화 스트림을 재생하는 다른 상기 엘리멘터리 스트림의 독출 포인터를 비교하고, 읽어 내진 상기 엘리멘터리 스트림의 독출 포인터가 가장 오래된 데이터가 격납되어 있는 위치를 가리키고 있는 경우에, 상기 데이터 선두 포인터에, 읽어 내진 상기 엘리멘터리 스트림의 독출 포인터를 대입하는 것을 특징으로 하는 다중화 분리장치.
  4. 제 1항에 있어서,
    상기 독출제어수단은, 소정의 엘리멘터리 스트림이 읽어 내진 후에, 상기 소정의 엘리멘터리 스트림의 독출 포인터를 읽어내는 것이 종료한 상기 링 버퍼의 위치에서 앞에 소정의 기간 분의 상기 엘리멘터리 스트림의 데이터가 격납되는 영역만큼 옮긴 위치에 상기 링 버퍼의 상기 데이터 선두 포인터를 설정하는 것을 특징 으로 하는 다중화 분리장치.
  5. 제 1항에 있어서,
    상기 독출제어수단은, 상기 독출 포인터가 가리키는 독출기점으로부터 순서로 상기 링 버퍼에 격납되어 있는 엘리멘터리 스트림 패킷을 해석하고, 독출요구된 상기 엘리멘터리 스트림을 검색하고, 검색된 상기 엘리멘터리 스트림의 독출을 행하는 것을 특징으로 하는 다중화 분리장치.
  6. 제 5항에 있어서,
    상기 독출제어수단은, 상기 엘리멘터리 스트림 패킷에 포함되는 상기 엘리멘터리 스트림의 종별을 식별하는 식별 정보에 근거하여 부호화 비디오 데이터를 검색하는 것을 특징으로 하는 다중화 분리장치.
  7. 제 1항에 있어서,
    소정의 엘리멘터리 스트림이 상기 다중화 스트림에 포함되어 있는지 아닌지를 판단하는 판단수단을 더 갖추고, 상기 판단수단에 의해, 상기 소정의 엘리멘터리 스트림이 상기 다중화 스트림에 포함되어 있지 않다고 판단되었을 경우에, 상기 소정의 엘리멘터리 스트림에 대응하는 상기 독출제어수단의 동작을 멈추는 것을 특징으로 하는 다중화 분리장치.
  8. 엘리멘터리 스트림이 시분할다중된 다중화 스트림의 분리 처리를 행하는 다중화 분리장치에 있어서,
    상기 다중화 스트림의 데이터를 차례차례 무한 루프형으로 기억해 가는 링 버퍼와,
    상기 링 버퍼의 가장 오래된 상기 다중화 스트림의 데이터가 기억된 위치를 가리키는 데이터 선두 포인터를 격납하는 데이터 선두 포인터 축적부와,
    최신의 상기 다중화 스트림의 데이터를 기입하는 위치를 가리키는 데이터 기입 포인터를 격납하는 데이터 기입 포인터 축적부와,
    상기 다중화 스트림이 공급되면, 상기 데이터 기입 포인터가 가리키는 상기 링 버퍼의 위치에서 기입하고, 기입 사이즈에 따라 상기 데이터 기입 포인터를 갱신하는 버퍼 제어부와,
    독출을 행하는 상기 엘리멘터리 스트림 마다, 상기 링 버퍼로부터 각각의 상기 엘리멘터리 스트림의 독출처리의 기점으로 되는 위치를 가리키는 독출 포인터를 격납하는 독출 포인터 축적부와,
    독출요구된 상기 엘리멘터리 스트림에 관한 상기 독출 포인터를 상기 독출 포인터 축적부로부터 꺼내고, 상기 독출 포인터에 의하여 지시된 상기 링 버퍼의 위치를 기점으로서 대상의 상기 엘리멘터리 스트림을 검색하여 읽어내고, 독출 사이즈에 따라 상기 독출 포인터를 갱신하는 동시에 상기 데이터 선두 포인터를 갱신하는 독출제어부로 구성되어 있는 것을 특징으로 하는 다중화 분리장치.
  9. 엘리멘터리 스트림이 시분할다중된 다중화 스트림의 분리 처리를 행하는 다중화 분리방법에 있어서,
    버퍼 제어수단이, 상기 다중화 스트림이 공급되면, 상기 다중화 스트림의 데이터를 차례차례 무한 루프형으로 기억해 가는 링 버퍼의 최신의 데이터 기입 위치를 가리키는 데이터 기입 포인터에 근거하여, 상기 데이터 기입 포인터가 가리키는 상기 링 버퍼의 위치에 공급된 상기 다중화 스트림을 차례차례 기입하는 동시에, 기입 사이즈에 따라 상기 데이터 기입 포인터를 갱신하고,
    독출제어수단이, 소정의 상기 엘리멘터리 스트림의 독출요구를 받으면, 상기 엘리멘터리 스트림마다의 독출처리의 기점으로 되는 독출 포인터가 격납되는 독출 포인터 축적 수단으로부터 요구된 상기 엘리멘터리 스트림에 관한 상기 독출 포인터를 꺼내고, 상기 독출 포인터에 의하여 지시된 상기 링 버퍼의 위치를 기점으로서 대상의 상기 엘리멘터리 스트림을 검색하여 읽어내어, 독출 사이즈에 따라 상기 독출 포인터를 갱신하는 동시에 상기 링 버퍼의 가장 오래된 상기 다중화 스트림의 데이터가 기억된 위치를 가리키는 데이터 선두 포인터를 갱신하는 다중화 분리방법.
  10. 엘리멘터리 스트림이 시분할다중된 다중화 스트림의 분리 처리를 행하는 다중화 분리장치에 있어서,
    적어도 제 1 및 제 2의 엘리멘터리 스트림을 기억하는 링 버퍼와, 상기 링 버퍼로부터, 상기 제 1의 엘리멘터리 스트림을 독출 제어하는 제 1의 독출제어수단 과, 상기 링 버퍼로부터, 상기 제 2의 엘리멘터리 스트림을 독출 제어하는 제 2의 독출제어수단을 구비하고,
    상기 다중화 스트림 중 1의 엘리멘터리 스트림의 독출요구에 따라, 이 엘리멘터리 스트림에 대응하는 상기 제 1의 독출제어수단 또는 상기 제 2의 독출제어수단에 의해, 상기 제 1의 엘리멘터리 스트림 또는 상기 제 2의 엘리멘터리 스트림을 읽어 내는 다중화 분리장치.
  11. 제 10항에 있어서,
    상기 링 버퍼의 가장 오래된 상기 다중화 스트림의 데이터가 기억된 위치를 가리키는 데이터 선두 포인터를 격납하는 데이터 선두 포인터 축적 수단과,
    독출을 행하는 상기 엘리멘터리 스트림 마다, 상기 링 버퍼로부터 각각의 상기 엘리멘터리 스트림의 독출처리의 기점으로 되는 위치를 가리키는 독출 포인터를 격납하는 독출 포인터 축적 수단을 갖추고,
    상기 제 1의 독출제어수단 또는 상기 제 2의 독출제어수단은, 독출요구에 따라, 상기 독출 포인터가 가리키는 독출기점으로부터 순서로 상기 링 버퍼에 격납되어 있는 엘리멘터리 스트림 패킷을 해석하고, 독출요구된 상기 엘리멘터리 스트림을 검색하고, 검색된 상기 엘리멘터리 스트림의 독출을 행하는 것을 특징으로 하는 다중화 분리장치.
  12. 제 11항에 있어서,
    상기 제 1의 독출제어수단 및 상기 제 2의 독출제어수단은, 상기 엘리멘터리 스트림 패킷에 포함되는 상기 엘리멘터리 스트림의 종별을 식별하는 식별정보에 근거하여 부호화 비디오 데이터를 검색하는 것을 특징으로 하는 다중화 분리장치.
  13. 엘리멘터리 스트림이 시분할다중된 다중화 스트림의 분리 처리를 행하는 다중화 분리장치에 있어서,
    적어도 제 1 및 제 2의 엘리멘터리 스트림을 기억하는 링 버퍼와, 상기 링 버퍼로부터, 상기 제 1의 엘리멘터리 스트림을 독출 제어하는 제 1의 독출제어부와, 상기 링 버퍼로부터, 상기 제 2의 엘리멘터리 스트림을 독출 제어하는 제 2의 독출제어부로 구성되며,
    상기 다중화 스트림 중 1의 엘리멘터리 스트림의 독출요구에 따라, 이 엘리멘터리 스트림에 대응하는 상기 제 1의 독출제어부 또는 상기 제 2의 독출제어부에 의해, 상기 제 1의 엘리멘터리 스트림 또는 상기 제 2의 엘리멘터리 스트림을 읽어내는 다중화 분리장치.
KR20077012348A 2004-12-02 2005-11-01 다중화 분리장치 및 다중화 분리방법 KR20070095883A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2004350362A JP4562505B2 (ja) 2004-12-02 2004-12-02 多重化分離装置および多重化分離方法
JPJP-P-2004-00350362 2004-12-02

Publications (1)

Publication Number Publication Date
KR20070095883A true KR20070095883A (ko) 2007-10-01

Family

ID=36564886

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20077012348A KR20070095883A (ko) 2004-12-02 2005-11-01 다중화 분리장치 및 다중화 분리방법

Country Status (7)

Country Link
US (1) US8218560B2 (ko)
EP (1) EP1850339A4 (ko)
JP (1) JP4562505B2 (ko)
KR (1) KR20070095883A (ko)
CN (1) CN101199011B (ko)
TW (1) TWI270856B (ko)
WO (1) WO2006059449A1 (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8948309B2 (en) * 2005-07-26 2015-02-03 Broadcom Corporation Method and system for redundancy-based decoding of video content in a wireless system
CN101563915B (zh) * 2006-12-20 2012-09-19 Gvbb控股股份有限公司 嵌入音频路由切换器
US8612643B2 (en) 2007-06-30 2013-12-17 Microsoft Corporation Interfaces for digital media processing
JP5564853B2 (ja) 2009-08-14 2014-08-06 ソニー株式会社 受信装置および方法、プログラム、並びに受信システム
US9154797B2 (en) 2010-09-20 2015-10-06 Onecodec, Limited Systems and methods for encoding and decoding
JP2012222604A (ja) * 2011-04-08 2012-11-12 Sony Corp データ読み出し装置、データ読み出し方法、並びにプログラム
CN102595192B (zh) * 2012-03-07 2014-12-17 深圳市信义科技有限公司 一种视频流媒体无互斥缓冲方法
US9276989B2 (en) * 2012-03-30 2016-03-01 Adobe Systems Incorporated Buffering in HTTP streaming client
US9363575B2 (en) * 2013-02-26 2016-06-07 Roku, Inc. Method and apparatus for viewing instant replay
CN105893279B (zh) * 2016-03-30 2019-04-26 北京经纬恒润科技有限公司 一种基于循环队列的数据传输方法及系统
CN112019450A (zh) * 2019-05-31 2020-12-01 微软技术许可有限责任公司 设备间流式通信
US11487654B2 (en) * 2020-03-02 2022-11-01 Silicon Motion, Inc. Method for controlling write buffer based on states of sectors of write buffer and associated all flash array server

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06124168A (ja) * 1992-10-13 1994-05-06 Sony Corp データ復号化装置
ES2196668T3 (es) 1993-12-18 2003-12-16 Sony Corp Aparato de reproduccion de datos y medio de almacenamiento de datos.
JP3319209B2 (ja) * 1995-02-17 2002-08-26 ソニー株式会社 データ復号化装置
US6131113A (en) * 1998-02-24 2000-10-10 International Business Machines Corporation Managing a shared resource in a multi-processor system
US6314478B1 (en) * 1998-12-29 2001-11-06 Nec America, Inc. System for accessing a space appended to a circular queue after traversing an end of the queue and upon completion copying data back to the queue
US6463486B1 (en) 1999-04-06 2002-10-08 Microsoft Corporation System for handling streaming information using a plurality of reader modules by enumerating output pins and associated streams of information
US7113516B1 (en) * 2000-11-28 2006-09-26 Texas Instruments Incorporated Transmit buffer with dynamic size queues
US7230917B1 (en) * 2001-02-22 2007-06-12 Cisco Technology, Inc. Apparatus and technique for conveying per-channel flow control information to a forwarding engine of an intermediate network node
JP2003059189A (ja) * 2001-08-10 2003-02-28 Matsushita Electric Ind Co Ltd バッファ管理方法
US7269179B2 (en) * 2001-12-18 2007-09-11 Intel Corporation Control mechanisms for enqueue and dequeue operations in a pipelined network processor
JP4154213B2 (ja) * 2002-11-01 2008-09-24 富士通株式会社 パケット処理装置
CA2457971A1 (en) * 2003-02-20 2004-08-20 Nortel Networks Limited Circulating switch
JP4256714B2 (ja) 2003-04-25 2009-04-22 パイオニア株式会社 録画装置及びその制御方法
US7499399B2 (en) * 2003-12-12 2009-03-03 Intel Corporation Method and system to determine whether a circular queue is empty or full

Also Published As

Publication number Publication date
EP1850339A4 (en) 2009-03-11
CN101199011B (zh) 2011-04-13
TW200634736A (en) 2006-10-01
TWI270856B (en) 2007-01-11
WO2006059449A1 (ja) 2006-06-08
US20080013562A1 (en) 2008-01-17
JP2006164333A (ja) 2006-06-22
CN101199011A (zh) 2008-06-11
EP1850339A1 (en) 2007-10-31
US8218560B2 (en) 2012-07-10
JP4562505B2 (ja) 2010-10-13

Similar Documents

Publication Publication Date Title
KR20070095883A (ko) 다중화 분리장치 및 다중화 분리방법
US8326117B2 (en) Data recording device, data recording method, data processing device, data processing method, program, program recording medium, data recording medium, and data structure
EP1222822B1 (en) Trick play signal generation for a digital video recorder
KR20010095018A (ko) 더미 헤더 삽입을 사용하여 디지털 비디오 시스템에서디지털 비디오 스트림을 디코딩하기 위한 방법 및 장치
JP4256714B2 (ja) 録画装置及びその制御方法
JP2008243367A (ja) 同報通信データを記録するための方法、および、装置
US20090169183A1 (en) Data recording device, data recording method, data processing device, data processing method, program, program recording medium, data recording medium, and data structure
WO2006115151A1 (ja) 記録装置、再生装置、記録再生装置、記録プログラムとその記録媒体、再生プログラムとその記録媒体
US7584511B2 (en) Data processing apparatus, data processing method, program, program recording medium, data recording medium, and data structure
US8346059B2 (en) Data processing device, data processing method, program, program recording medium, data recording medium, and data structure
US7298966B2 (en) Recording device, recording method, and computer-readable program
US7024100B1 (en) Video storage and retrieval apparatus
KR100770908B1 (ko) 디지털 방송 스트림의 변속 재생 장치 및 방법
US8107796B2 (en) Data processing device, data processing method, program, program recording medium, data recording medium, and data structure
US20030091331A1 (en) Method for implementing low-speed playback of a digital broadcast program
EP1148728A1 (en) Trick play signal generation for a digital video recorder
JP4425287B2 (ja) ディジタルコンテンツ再生記録装置、ディジタルコンテンツ再生記録方法、ディジタルコンテンツ記録装置、およびディジタルコンテンツ再生記録プログラムを記録した媒体
JP3780142B2 (ja) 映像記録再生装置
JP2003317386A (ja) デジタル放送受信蓄積再生装置
JP2006050078A (ja) データ転送制御装置及び電子機器
JP4833325B2 (ja) ディジタルコンテンツ再生記録装置、ディジタルコンテンツ再生記録方法、ディジタルコンテンツ記録装置、およびディジタルコンテンツ再生記録プログラムを記録した媒体
JP4250170B2 (ja) エンコード中に抽出画像を外部に送信するビデオエンコーダ
JP4861221B2 (ja) 記録装置、記録方法、映像記録再生装置、および、その録画ファイル加工方法
JP2006050077A (ja) データ転送制御装置及び電子機器
KR20070057458A (ko) 디지털 방송 시스템에서의 애플리케이션 데이터 관리 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
NORF Unpaid initial registration fee