CN101199011A - 多路分离装置及多路分离方法 - Google Patents

多路分离装置及多路分离方法 Download PDF

Info

Publication number
CN101199011A
CN101199011A CNA2005800475298A CN200580047529A CN101199011A CN 101199011 A CN101199011 A CN 101199011A CN A2005800475298 A CNA2005800475298 A CN A2005800475298A CN 200580047529 A CN200580047529 A CN 200580047529A CN 101199011 A CN101199011 A CN 101199011A
Authority
CN
China
Prior art keywords
pointer
data
read
stream
reading
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
CNA2005800475298A
Other languages
English (en)
Other versions
CN101199011B (zh
Inventor
藤波靖
早川悟郎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Interactive Entertainment Inc
Sony Corp
Original Assignee
Sony Corp
Sony Computer Entertainment Inc
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 Sony Corp, Sony Computer Entertainment Inc filed Critical Sony Corp
Publication of CN101199011A publication Critical patent/CN101199011A/zh
Application granted granted Critical
Publication of CN101199011B publication Critical patent/CN101199011B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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

本发明涉及进行将基本流时分复用的复用流分离处理的多路分离装置,构成此装置的缓冲区控制部(2)从以无限环形方式存储数据的环形缓冲区(1)的数据前端指针指示的位置,写入被供给的复用流。ES1读出控制部(3)一旦收到ES1的读出请求,就从ES1读出指针存储部(13)提取成为用以检索环形缓冲区1中存储最老的ES1的区域的起点的ES1读出指针,以ES1读出指针指示的位置作为起点,检索并读出ES1,并转送至请求方。之后,将ES1读出指针和数据前端指针更新。

Description

多路分离装置及多路分离方法
技术领域
本发明涉及多路分离装置及多路分离方法,特别涉及进行将基本流时分复用的复用流的分离处理的多路分离装置及多路分离方法。
本发明申请以日本2004年12月2日申请的日本专利申请号2004-350362为基础主张优先权,本发明申请参照该申请而加以引用。
背景技术
传统技术中,用多路分离装置将基本流经时分复用的复用流多路分离,再传送到解码器中进行编码。
图1是表示传统的多路分离装置之一例的框图。图9所示的多路分离装置500,例如装入盘装置中,暂时存储从盘读出的复用流,再分解成视频、音频及字幕各基本流,供给解码部560。
复用流存储部510暂时存储从盘读出的数据等复用流。语法解析功能部520从存储在复用流存储部510的复用流分离出视频流、音频流及字幕流,供给视频流存储部530、音频流存储部540、字幕流存储部550。在各基本流存储部中存储被供给的基本流。在解码部560中设有视频解码器控制模块、音频解码器控制模块及字幕解码器控制模块,一旦在对应的视频流存储部530、音频流存储部540、字幕流存储部550中开始存储数据,就请求已存储的各基本流,进行被供给的数据的解码处理。
即在传统的多路分离装置500中发生以下3次数据移动:
〔1〕从外部输入的复用流向复用流存储部510上进行复制(数据移动);
〔2〕通过语法解析功能部520,从复用流存储部510向各基本流的存储部(视频流存储部530、音频流存储部540及字幕流存储部550)进行数据移动;以及
〔3〕从各基本流存储部向对应的各解码器进行数据供给(数据移动)。
这里,说明各个流存储部的结构。
图2是表示传统的复用流存储部的结构图。复用流存储部510包括:在存储器上形成的、暂时存储复用流的缓冲区510a;暂时存储数据前端指针的数据前端指针存储部511;以及暂时存储数据写入指针的数据写入指针存储部512。然后,通过缓冲区控制部件(未图示),基于储存在数据前端指针存储部511及数据写入指针存储部512的指针,控制复用流对缓冲区501a的写入。
缓冲区510a(例如是环形缓冲区)依次存储输入的数据,在存储到其存储容量额的数据后,以在最老的数据上重写的方式,以所谓的无限环形存储最新数据。数据前端指针存储部511将表示存储有缓冲区510a中存储的数据之中还未读出的最老数据的位置的数据前端指针进行存储。数据写入指针存储部512存储指示从盘读出的最新数据被写入的缓冲区510a位置的数据写入指针。因此,从数据前端指针指示的位置沿顺时针方向,至数据写入指针指示的位置的区域(图中斜线部)中存储的数据都是有效的数据。
图3是传统的视频流存储部的结构图。视频流存储部530包括:在存储器上形成的、暂时存储视频流的视频缓冲区530a;暂时存储视频流前端指针的视频流前端指针存储部531;暂时存储视频流写入指针的视频流写入指针存储部532;以及用于存储附属数据的附属信息FIFO(先进先出)部533。然后,通过视频缓冲区控制部件(未图示),基于储存在视频流前端指针存储部531及视频流写入指针存储部532的指针,控制由语法解析功能部520供给的视频流对视频缓冲区530a的写入。
与复用流存储部510的缓冲区510a一样,视频缓冲区530a是环形缓冲区,以无限环形方式存储从语法解析功能部520供给的视频流。视频流前端指针存储部531存储视频流前端指针,视频流写入指针存储部532存储视频流写入指针。任何指针指示的位置都沿顺时针方向更新,从视频流前端指针指示的位置沿顺时针方向,至视频流写入指针指示的位置的区域(图3中斜线部)中存储的数据都是有效的数据。另外,在附属信息FIFO部533中还存储由语法解析功能部520分离的时间戳等附属信息。
音频流存储部540及字幕流存储部550都具有与视频流存储部530相同的结构,都包括环形缓冲区、前端指针存储部、写入指针存储部及附属信息FIFO部。
首先,说明以上结构的多路分离装置500中流存储部之间的数据移动。另外,缓冲区控制部件及视频缓冲区控制部件等以及对多路分离装置500的各缓冲区进行写入控制的控制部件,可通过CPU(中央处理单元)(未图示)执行记述有各控制部件的处理内容的程序来实现。
首先,说明向第1复用流存储部的数据移动。缓冲区控制部件从登录在复用流存储部510的数据写入指针存储部512的数据写入指针指示的缓冲区510a的位置开始写入被供给的复用流,按写入的数据量递增数据写入指针。
接着,以视频流的情况为例,说明从第2复用流存储部向各基本流存储部的数据移动。语法解析功能部520从缓冲区510a读出复用流,使用作为识别(指定)再现对象的基本流的识别信息而取得的ID,进行多路分离。从登录在数据前端指针存储部511的数据前端指针指示的缓冲区510a的位置开始读出,按读出的数据量来递增数据前端指针。另外,将已分离的视频流及关联的附属信息送到视频流存储部530,视频流暂时存储在视频缓冲区530a。此时,从登录在视频流写入指针存储部532的视频流写入指针指示的视频缓冲区530a的位置写入,按写入的数据量来递增视频流写入指针。另外,附属信息暂时地存储在附属信息FIFO部533。同样地,已分离的音频流及附属信息被送到音频流存储部540,暂时地分别存储在音频缓冲区及附属信息FIFO部。另外,已分离的字幕流及附属信息被送到字幕流存储部550,暂时地分别存储在字幕缓冲区及附属信息FIFO部。
接着,以视频流的情况为例,说明从第3各基本流存储部向各解码器的数据移动。一旦开始在视频流存储部530的视频缓冲区530a中存储数据,解码部560的视频解码器控制部件就开始从视频缓冲区530a读出数据,取得1个视频存取单位、附加在该视频存取单位的时间戳以及附加信息等,进行解码处理。另外,对于音频流及字幕流,也进行相同的处理。
另外,已从复用流分离的各流直接转送到解码器的缓冲区中,而不转送到专用的存储器进行存储,这种流再现方法,例如在特开2003-61045号公报中已提出。
发明内容
在上述传统的多路分离装置及多路分离方法中存在CPU的处理能力由于数据移动而下降的问题。
在传统的多路分离装置及多路分离方法中,发生以下3次数据移动:对复用流存储部510写入;从复用流存储部510向各基本流存储部的数据移动;以及从各基本流存储部向解码部560的数据移动。多路分离装置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的读出控制部的ES1读出控制部3;ES2读出控制部4;以及各种管理信息存储部。管理信息存储部包括:缓冲区控制部2在环形缓冲区1上进行数据写入时参照的数据前端指针存储部11和数据写入指针存储部12;各ES的读出控制部参照的ES1读出指针存储部13和ES2读出指针存储部14。
环形缓冲区1以无限环形方式存储由缓冲区控制部2写入的复用流。即依次存储被输入的数据,在存储了该存储容量额的数据后,在最老的数据上以重写的方式存储数据。环形缓冲区1由储存在数据前端指针存储部11的数据前端指针以及储存在数据写入指针存储部12的数据写入指针进行管理,在图4所示的数据多路分离装置中,在环形缓冲区1中每次存储数据时,由缓冲区控制部2沿图4中箭头方向的顺时针方向更新数据写入指针指示的位置。另外,响应从环形缓冲区1的各ES数据的读出,由ES1读出控制部3和ES2读出控制部4沿图中箭头方向的顺时针方向更新数据前端指针指示的位置。
缓冲区控制2控制环形缓冲区1上的复用流写入。一旦被供给复用流,缓冲区控制部2就从数据前端指针存储部11和数据写入指针存储部12分别提取数据前端指针和数据写入指针,从数据写入指针指示的环形缓冲区1的位置,依次进行数据写入。然后,沿图4中顺时针方向按数据量增加而更新数据写入指针,并储存在数据写入指针存储部12。再有,如果数据写入已超越数据前端指针指示的位置,则延迟数据写入。
ES1读出控制部3及ES2读出控制部4具备分别从环形缓冲区1提取并读出各自的ES的多路分离功能。
一旦收到ES1的读出请求,ES1读出控制部3就从ES1读出指针存储部13提取ES1读出指针,以ES1读出指针指示的环形缓冲区1的位置作为起点检索ES1,将检出的ES1的数据读出,将读出的数据转送至请求方。更新ES1读出指针,以指示已存储有读出的数据的环形缓冲区1的下一位置。另外,也根据需要而更新数据前端指针。例如,如果ES1读出指针指示的位置指示了存有比其它ES的读出指针老的数据的位置,则结束比其老的数据读出,因此,数据前端指针更新为与ES1读出指针相同的位置。
一旦收到ES2的读出请求,ES2读出控制部4就从ES2读出指针存储部14提取ES2读出指针,以ES2读出指针指示的环形缓冲区1的位置作为起点来检索ES2,并将检出的ES2的数据读出,将读出的数据转送至请求方。ES2读出指针被更新,以指示读出的数据被存储位置的下一位置。另外,与ES1读出控制部3一样,前端指针也根据需要而更新。
数据前端指针存储部11储存数据前端指针,数据写入指针存储部12储存数据写入指针。ES1读出指针存储部13储存ES1读出指针,ES2读出指针存储部14储存ES2读出指针。
下面说明这种结构的多路分离装置的动作及多路分离方法。在本发明的多路分离装置中,将被输入的时分复用流写入环形缓冲区1,同时响应读出请求,进行从环形缓冲区1提取(分离)并输出被请求ES的控制。
详细地说,多路分离装置一旦被供给复用流,缓冲区控制部2就分别从数据前端指针存储部11和数据写入指针存储部12提取数据前端指针和数据写入指针,写入从数据写入指针指示的环形缓冲区1的位置输入的复用流数据。在图4所示的装置中沿顺时针方向依次写入数据。此时,控制数据的写入,使数据写入指针不超越数据前端指针。在写入结束后,更新数据写入指针,以指示环形缓冲区1的数据写入结束后的下一位置。
然后,一旦从解码器等收到构成复用流的各ES(在图4情况下是ES1和ES2)的读出请求,对应于被请求的ES的ES1读出控制部3或ES2读出控制部4就分别从储存各自的读出指针的ES1读出指针存储部13或者ES2读出指针存储部14,提取ES1读出指针或ES2读出指针。然后,以ES1读出指针或ES2读出指针指示的环形缓冲区1的位置作为起点,沿顺时针方向检索环形缓冲区1,一旦检出对象的ES1或ES2,就读出该数据,转送至请求方。已作了读出的ES1读出指针或ES2读出指针被按读出量更新。也就是说,更新为可指示读出已结束的环形缓冲区1的下一位置,即存有包含还未读出的最老ES的数据的区域。并且,数据前端指针被更新,以指示与ES1读出指针或ES2读出指针中指示最老数据的位置相同的位置。
根据这种多路分离装置,在有各ES的读出请求时,能够从复用流将对象的ES分离,并供给请求方。所以,预先将复用流分离,分别储存在各自的ES缓冲区中,与在有读出请求时供给储存在缓冲区的ES的情况相比,能够减少数据的转送次数。也就是说,对环形缓冲区的写入、对ES缓冲区的写入和向读出请求方的转送等3次数据移动,减少为对环形缓冲区的写入和转送至读出请求方的2次数据移动。其结果是:能够使CPU的负荷减轻,提高处理能力。还能够减少用于数据转送的指针,可以减小用于存储指针而缓冲区容量,同时由于指针数小,所以缓冲区的控制简单。
下面参照附图,详细地说明将本发明用于盘装置的实施方式。
另外,除盘装置之外,本发明也能够用于进行复用流分离处理的、例如数字广播数据的复用流分离装置。
图5是表示采用本发明的盘装置的1实施方式的框图。图5所示的盘装置能够用于,例如盘播放器、游戏装置及导航系统等。另外,对于多路分离的复用流,将视频流、音频流及字幕流时分复用。
盘101,例如是DVD(Digital Versatil Disc)等光盘或光磁盘、磁盘等,它们记录有视频数据、音频数据,字幕数据等内容数据,还记录有内容数据再现所需的数据。
盘驱动器102内设有接口(未图示),通过该接口,连接在驱动器接口114上。盘驱动器102驱动其上安装的盘101,响应来自驱动器接口114的读出等命令,进行从盘101读出数据并供给驱动器接口114等处理。
在总线111上连接有CPU112、存储器113、驱动器接口114、输入接口115、视频解码器116、音频解码器117、视频输出接口118和音频输出接口119。
CPU112及存储器113形成计算机系统。即CPU112执行存储于存储器113的程序,即后述的软件模块群,控制整个盘装置,同时进行后述的各种处理。存储器113存储有CPU112执行的软件模块群。另外,存储器113暂时存储CPU112动作时必要的数据。再有,存储器113可以仅由非易失性存储器构成或由易失性存储器与非易失性存储器组合而构成。另外,在图5所示的盘装置中设置硬盘,并在该硬盘中预先记录(安装)CPU112执行的软件模块群的场合,存储器113可以仅由易失性存储器构成。
这里,CPU112执行的程序(软件模块群)能够预先记录在作为盘装置内装的记录介质的存储器113中。另外,程序能够预先暂时地或者永久地储存在盘101以及盘101以外的软盘、CD-ROM(CompactDisc Read Only Memory)、MO(Magneto Optical)盘、磁盘、存储卡等可移动的记录介质中。这种可移动记录介质能够作为所谓的软件包提供。
再有,可使程序预先存储在存储器113中,或者从上述的可移动记录介质安装到盘装置中。另外,程序能够通过数字卫星广播用人造卫星,从下载侧以无线方式转送到盘装置中,或者通过LAN(LocalArea Network)、互联网等网络,以有线方式转送到盘装置中,采用盘装置,能够用输入接口115接收这样转送来的程序,并装入内置的存储器113中。
另外,程序既可以由1个CPU进行处理,也可以由多个CPU分散处理。
在CPU112控制下,驱动器接口114控制盘驱动器102,由此,盘驱动器102从盘101读出的数据通过总线111供给CPU112、存储器113、视频解码器116及音频解码器117等。
输入接口115接收由用户操作键、按键及遥控装置(未图示)供给的信号,通过总线111供给CPU112。除此之外,输入接口115也作为通信接口起作用。
视频解码器116将通过盘驱动器102从盘101读出,且将通过驱动器接口114及总线111提供的视频数据的编码数据解码,结果得到的视频数据经由总线111供给CPU112及视频输出接口118。
与视频解码器116一样,音频解码器117将从盘101读出并供给的音频数据的编码数据解码,结果得到的音频数据经由总线111供给CPU112及音频输出接口119。
视频输出接口118对经由总线111供给的视频数据进行必要的处理,并从视频输出端子120输出。音频输出接口119对经由总线111供给的音频数据进行必要的处理,并从音频输出端子121输出。
视频输出端子120连接在未图示的CRT(阴极射线管)及液晶屏等视频输出装置上,将视频数据供给视频输出装置。音频输出端子121连接在未图示的扬声器及放大器等音频输出装置中,将音频数据供给音频输出装置。再有,从盘装置到视频输出装置和音频输出装置的视频数据和音频数据的供给可采用有线或无线方式中的任一方式进行。
接着,说明软件模块群的结构。图6表示本实施例的软件模块群的结构例。
CPU112执行的软件模块群大致分为操作系统(OS)201和作为应用程序的视频内容再现程序210。
盘装置的电源一旦接入,首先CPU112就执行操作系统201,进行初始设定等必要的处理,并调用应用程序即视频内容再现程序210。
视频内容再现程序210由脚本控制模块211、播放器控制模块212、内容数据供给模块213、解码控制模块214、缓冲区控制模块215、视频解码器控制模块216、音频解码器控制模块217、字幕解码器控制模块218、图形处理模块219、视频输出模块220及音频输出模块221构成。
脚本控制模块211解释、执行记录在盘101中的脚本文件中已记述的脚本程序(脚本)。
播放器控制模块212参照记录在盘101的元数据(数据库信息)等,进行有关内容再现的控制。另外,播放器控制模块212按照来自脚本控制模块211及输入接口115的指示,转换再现对象的流。
内容数据供给模块213在播放器控制模块212的控制下,或者基于存储在缓冲区控制模块215的数据量,请求操作系统201中从盘101读出内容的数据及元数据等。
再有,操作系统201响应来自内容数据供给模块213的请求,将从盘101读出的元数据等供给需要的模块。另外,操作系统201响应来自内容数据供给模块213的请求,将从盘101读出的内容数据供给缓冲区控制模块215。
解码控制模块214按照来自播放器控制模块212的控制,控制视频解码器控制模块216、音频解码器控制模块217及字幕解码器控制模块218的动作。另外,解码控制模块214内装有进行计时的计时部214A,对通过视频解码器控制模块216的控制而输出的视频数据的输出以及为了与该视频数据同步而输出的数据(输出数据)的输出(这里,也就是与通过音频解码器控制模块217的控制而输出的音频数据的输出)进行同步管理。
缓冲区控制模块215内装有图5所示的存储器113的一部分存储区域即缓冲区215A,通过内容数据供给模块213对操作系统201请求,将由盘101读出的内容数据暂时存储到该缓冲区215A。另外,缓冲区控制模块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的一部分,作为FIFO220A(缓冲区),暂时存储来自图形处理模块219的视频数据,另外,适当地读出存储在IFO220A的视频数据,输出至视频输出端子120。
音频输出模块221独占地使用存储器113的一部分,作为FIFO221A(缓冲区),暂时存储来自音频解码器控制模块217(音频解码器117)的音频数据,另外,适当地读出存储在该FIFO221A的音频数据,输出至音频输出端子121。
下面说明缓冲区控制模块215。图7是本实施例的缓冲区控制模块的结构图。
缓冲区控制模块215将从盘101读出的数据暂时存储在缓冲区215A中,同时读出该数据,供给图6所示的视频解码器控制模块216、音频解码器控制模块217或字幕解码器控制模块218。
所以,缓冲区控制模块215作为内部模块,设有缓冲区写入功能部310、视频读出功能部320、音频读出功能部330及字幕读出功能部340。再有,为了方便起见,在图7中表示各功能部的框内示出了各功能部参照的存储部及寄存器,但这些存储部及寄存器在暂时储存用于各功能部执行处理所需信息的存储区域内,可确保在各功能部内或存储器113上。
缓冲区215A是环形缓冲区,以无限环形方式存储从盘101读出的数据。
缓冲区写入功能部310使用设在存储器113的一部分中的数据前端指针存储部311及数据写入指针存储部312,参照存储在两个存储部的指针指示的缓冲区215A的地址,控制被输入缓冲区控制模块215的数据向缓冲区215A的写入。数据前端指针存储部311存储数据前端指针,该指针指示在缓冲区215A存储的数据中还未被读出的最老数据所存储的地址;数据写入指针存储部312将指示写入从盘101读出的最新数据的缓冲区215A的地址的写入指针加以存储。然后,从数据写入指针指示的缓冲区215A的位置依次写入从盘101读出的数据,在写入结束时,更新写入指针。
视频读出功能部320响应来自视频解码器控制模块216的请求,以储存在视频读出指针存储部321的指针指示的缓冲区215A的地址为起点,检索视频流,即与视频数据有关的基本流,并将读出的视频流供给视频解码器控制模块216。音频读出功能部330响应来自音频解码器控制模块217的请求,以储存在音频读出指针存储部331的指针指示的缓冲区215A的地址为起点,检索音频流,即与音频数据有关的基本流,并将读出的音频流供给音频解码器控制模块217。字幕读出功能部340响应来自字幕解码器控制模块218的请求,以储存在字幕读出指针存储部342的指针指示的缓冲区215A的地址为起点,检索字幕流,即与字幕数据有关的基本流,并将读出的字幕流供给字幕解码器控制模块218。
这里,在盘101中,例如记录有依据MPEG2(Moving PictureExperts Group 2)的规格的程序流(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的音频读出指针指示的位置作为起点,检索并读出音频流。为了解析存储在缓冲区215A的程序流,并识别从该程序流中读出的音频流,stream_id寄存器332和private_stream_id寄存器333分别存储后述的stream_id和private_stream_id。
字幕读出功能部340在图2的存储器113的一部分中设有字幕读出功能标志存储部341、字幕读出指针存储部342、stream_id寄存器343和private_stream_id寄存器344。
字幕读出功能标志存储部341存储字幕读出功能标志。存储在字幕读出功能标志存储部341的字幕读出功能标志(例如)为0时,字幕读出功能部340不起作用,存储在字幕读出功能标志存储部341的字幕读出功能标志(例如)为1时,字幕读出功能部340起作用。这样,通过使复用流不包含的基本流的读出处理停止,使CPU不执行剩余的处理。字幕读出指针存储部342将缓冲区215A的指示字幕解码器控制模块218还未读出的区域的前端位置(地址)的字幕读出指针进行存储,字幕读出功能部340以缓冲区215A的字幕读出指针指示的位置作为起点,检索并读出字幕流。为了解析存储在缓冲区215A的程序流,并识别从该程序流中读出的字幕流,stream_id寄存器343和private_stream_id寄存器344分别存储后述的stream_id和private_stream_id。
这里,说明在盘101中记录的数据的数据格式。
图8示意表示盘的目录结构。
作为盘101的文件系统,例如使用的是ISO(国际标准化组织)-9660及UDF(Universal Disk Format:http://www.osta.org/specs/)等中规定的文件系统,记录在盘101的数据文件采用目录结构分层地进行管理。这里,文件系统不限定于上述的文件系统。
图8中表示文件系统的基点的根(root)目录下设置“VIDEO”目录,在“VIDEO”目录下设置“CILP”目录和“STREAM”目录共2个目录。
除“CILP”目录和“STREAM”目录这2个目录之外,在“VIDEO”目录下还设置“SCRIPT.DAT”文件和“PLAYLIST.DAT”文件共2个数据文件。
“SCRIPT.DAT”文件是记述脚本程序的脚本文件。即在“SCRIPT.DAT”文件中记述有将盘101的再现方式作为交互方式而使用的脚本程序。记述在该“SCRIPT.DAT”文件中的脚本程序由图6所示的脚本控制模块211解释并执行。
在“PLAYLIST.DAT”文件中存有1个以上记录在盘101的播放列表,它记述有视频数据等内容的再现步骤。
在“CILP”目录下设置1个以上的剪辑信息文件,在“STREAM”目录下设置1个以上的剪辑流文件。即在图8所示的例中在“CILP”目录下设置有3个剪辑信息文件“00001.CLP”、“00002.CLP”和“00003.CLP”,在“STREAM”目录下设置3个剪辑流文件“00001.PS”、“00002.PS”和“00003.PS”。
在剪辑流文件中存有将视频数据、音频数据、字幕数据等1个以上的数据(流)压缩、编码而得到的1个以上基本流时分复用的程序流。
在剪辑信息文件中记述了关于对应的剪辑流文件的性质等剪辑流的(文件)元数据。
剪辑流文件和剪辑信息文件1对1地对应,在图8所示的例中,在“CILP”目录下设置的3个剪辑信息文件“00001.CLP”、“00002.CLP”和“00003.CLP”储存有表示“STREAM”目录下设置的剪辑流文件“00001.PS”、“00002.PS”和“00003.PS”的性质等的元数据。在元数据中存在被复用的流的数量那么多个关于剪辑流的流信息(以下称StreamInfo())。在StreamInfo()的前端配置“长度(length)”(16位),“长度”表示含有该长度的StreamInfo()的量。接在“长度”之后,配置有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存储在stream_id寄存器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中。
作为缓冲区控制模块215的初始化,播放器控制模块212还在字幕读出功能标志存储部341中设置对应于再现对象的基本流被复用的剪辑流文件的数值的字幕读出功能标志。即在目前,由于在再现对象的基本流被复用的剪辑流文件“00001.PS”中含有字幕流,所以为了使字幕读出功能部340起作用,将数值为1的字幕读出功能标志设定在字幕读出功能标志存储部341。再有,如果在再现对象的基本流被复用的剪辑流文件中不含有字幕流,则在字幕读出功能标志存储部341中设定值为0的字幕读出功能标志。此时,字幕读出功能部340不起作用(不进行特别处理)。
「开始数据读入」
然后,播放器控制模块212控制内容数据供给模块213,由此,内容数据供给模块213使用操作系统201的功能,读出储存有使再现对象的基本流被复用的程序流的剪辑流文件。另外,内容数据供给模块213指定从盘101读出的数据,以供给缓冲区控制模块215。由此,开始读出储存在来自盘101的剪辑流文件″00001.PS″中存储的程序流,该程序流被供给缓冲区控制模块215。
缓冲区控制模块215将从盘101读出并供给的程序流,写入缓冲区215A的数据写入指针存储部312的数据写入指针指示的位置,按写入的数据量递增数据写入指针。
以下,只要不特别预先说明,若缓冲区控制模块215的缓冲区215A有空间,则内容数据供给模块213从盘101读出数据,供给缓冲区控制模块215的缓冲区215A,并加以存储。所以,在缓冲区215A中常时存储充分的数据。
「解码器控制开始」
如上所述,一旦开始从盘101读出数据,且该数据开始存储在缓冲区控制模块215的缓冲区215A中,解码控制模块214就控制视频解码器控制模块216、音频解码器控制模块217、字幕解码器控制模块218,作为解码动作的前阶段,开始从缓冲区215A读出数据。
「缓冲区控制模块的处理」
接着,参照图10及图11,说明缓冲区控制模块215的处理,即缓冲区215A上数据写入和从缓冲区215A读出数据。图10及图11是表示通过缓冲区控制模块的数据读出而进行指针更新之一例的图。图10表示更新前的音频读出指针指示的位置,图11表示更新后音频读出指针指示的位置。
参照图7进行说明,缓冲区控制模块215具有用于对缓冲区215A进行数据读写的5个指针。
即如图10及图11所示,缓冲区控制模块215具有存储在数据前端指针存储部311的数据前端指针、存储在数据写入指针存储部312的数据写入指针、存储在视频读出指针存储部321的视频读出指针、存储在音频读出指针存储部331的音频读出指针以及存储在字幕读出指针存储部342的字幕读出指针。
再有,在图10及图11中省略了图6中视频读出功能部320的stream_id寄存器322、音频读出功能部330的stream_id寄存器332、private_stream_id寄存器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读出视频流、音频流或字幕流,就分别按照对应于其读出量的份额按顺时针进行更新。这里,所谓对应于读出量的份额是指:使对应于实际已读出的视频、音频、字幕数据的部分与已读出的数据之间包含的、在读出时进行跳过的其它流的数据部分之和。
另外,一旦视频读出指针、音频读出指针或字幕读出指针被更新,数据前端指针就被更新,使它指示的位置与视频读出指针、音频读出指针或字幕读出指针中正指示最老数据的位置相同。
这里,对于向缓冲区215A的数据写入,为了使数据写入指针不超越数据前端指针,缓冲区控制模块215控制向缓冲区215A的数据写入。
也就是说,只要不发生数据写入指针超越数据前端指针,在缓冲区控制模块215中在数据写入指针指示的缓冲区215A的位置上写入由盘101读出的数据,并更新数据写入指针。但一旦要发生数据写入指针超越数据前端指针,就在缓冲区控制模块215中向内容数据供给模块213请求停止(中断)从盘101读出数据,另外,停止向缓冲区215A的数据写入。由此,能够防止缓冲区215A溢出。
如上所述,从盘101读出的数据向缓冲区215A写入,可以根据数据前端指针和数据写入指针这2个指针的位置关系进行控制。
另一方面,对于从缓冲区215A读出数据,缓冲区控制模块215使视频读出指针、音频读出指针及字幕读出指针以及数据前端指针不超越数据写入指针,控制从缓冲区215A读出数据。
即只要不发生数据写入指针超越视频读出指针、音频读出指针或字幕读出指针,缓冲区控制模块215就响应来自视频解码器控制模块216、音频解码器控制模块217或字幕解码器控制模块218的请求,从视频读出指针、音频读出指针或字幕读出指针指示的缓冲区215A的位置开始数据的读出处理,更新视频读出指针、音频读出指针或字幕读出指针,同时更新数据前端指针。而一旦要发生数据写入指针超越视频读出指针、音频读出指针或字幕读出指针,缓冲区控制模块215就例如冻结来自视频解码器控制模块216、音频解码器控制模块217或字幕解码器控制模块218的请求,一直等到准备充分的数据。由此,能够防止缓冲区215A下溢。
根据以上的说明,在缓冲区215A中数据前端指针指示的位置按顺时针至数据写入指针指示的位置的范围(图7及图8的斜线部)内,存有要供给视频解码器控制模块216、音频解码器控制模块217及字幕解码器控制模块218的数据,另外,在该范围内存在视频读出指针、音频读出指针及字幕读出指针。
另外,在上述情况下要更新数据前端指针,使它指示视频读出指针、音频读出指针或字幕读出指针正指示的位置中最老数据的位置,但除此之外,例如也可以从其最老数据的位置进行数据前端指针的更新,使它指示过了预定时间(例如1秒)量的数据位置。
即一般地说,可以预测:视频读出指针、音频读出指针或字幕读出指针中视频读出指针或音频读出指针通常往往指示最老数据的位置。
所以,如果已更新数据前端指针,使它指示从视频读出指针或音频读出指针指示的最老数据的位置过了例如1秒量的数据位置,则如图10所示,能够从视频读出指针或音频读出指针指示的最老数据的位置,在缓冲区215A中预先留出过了1秒量的数据。这里,在图10中音频读出指针指示的是最老数据的位置,数据前端指针指示的是从该位置过了1秒量的数据位置。
如上所述,通过将数据前端指针更新成指示过了1秒量的数据位置,可使盘装置的响应性提高。
也就是说,如图11所示,如果数据前端指针被更新成指示音频读出指针指示的最老数据的位置,则例如在指示反向上的特殊再现时,必须从盘101再次读出从缓冲区215A的读出已结束的数据,所以,从特殊再现被指示之后到该特殊再现成为可能,需要一定的时间。
相反地如图10所示,如果数据前端指针更新成指示从音频读出指针指示的最老数据的位置过了1秒量的数据的位置,则在指示反向上的特殊再现时,开始该特殊再现所需的数据只要是存储在缓冲区215A的相当于过了1秒量的数据,就可以马上开始特殊再现,而不进行上述从自盘101的数据再读出。
再有,即使数据前端指针更新成指示从音频读出指针指示的最老数据的位置过了1秒量的数据位置,也可以不在缓冲区215A中存储开始特殊再现所需的数据。此时,可从盘101再次读出开始特殊再现所需的数据。
接着,说明分别从缓冲区215A读出视频流、音频流、字幕流的的详细过程。
在开始再现剪辑流文件时,在缓冲区控制模块215中进行初始化,使数据前端指针、数据写入指针、视频读出指针、音频读出指针、字幕读出指针全部指示缓冲区215A上的同一位置。
然后,储存在剪辑流文件的程序流(MPEG2-System ProgramStream)一旦从盘101读出,并供给缓冲区控制模块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.一种进行将基本流时分复用的复用流分离处理的多路分离装置,其中设有:
环形缓冲区,以无限环形方式依次存储所述复用流的数据;
数据前端指针存储部件,用以存储指示所述环形缓冲区的最老的所述复用流数据的存储位置的数据前端指针;
数据写入指针存储部件,用以存储指示最新的所述复用流数据的写入位置的数据写入指针;
缓冲区控制部件,所述复用流一旦被供给,就从所述数据写入指针指示的所述环形缓冲区的位置写入,并按写入量而更新所述数据写入指针;
读出指针存储部件,用以按读出的每个所述基本流,存储指示成为从所述环形缓冲区读出各所述基本流的读出处理起点的位置的读出指针;以及
读出控制部件,从所述读出指针存储部件取出关于被读出请求的所述基本流的所述读出指针,以所述读出指针指示的所述环形缓冲区的位置作为起点,检索并读出对象的所述基本流,并按读出量来更新所述读出指针,同时更新所述数据前端指针。
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基本流。
CN2005800475298A 2004-12-02 2005-11-01 多路分离装置及多路分离方法 Expired - Fee Related CN101199011B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2004350362A JP4562505B2 (ja) 2004-12-02 2004-12-02 多重化分離装置および多重化分離方法
JP350362/2004 2004-12-02
PCT/JP2005/020090 WO2006059449A1 (ja) 2004-12-02 2005-11-01 多重化分離装置及び多重化分離方法

Publications (2)

Publication Number Publication Date
CN101199011A true CN101199011A (zh) 2008-06-11
CN101199011B CN101199011B (zh) 2011-04-13

Family

ID=36564886

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2005800475298A Expired - Fee Related CN101199011B (zh) 2004-12-02 2005-11-01 多路分离装置及多路分离方法

Country Status (7)

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

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102595192A (zh) * 2012-03-07 2012-07-18 深圳市信义科技有限公司 一种视频流媒体无互斥缓冲方法
CN112019450A (zh) * 2019-05-31 2020-12-01 微软技术许可有限责任公司 设备间流式通信
CN113342257A (zh) * 2020-03-02 2021-09-03 慧荣科技股份有限公司 伺服器及相关的控制方法

Families Citing this family (9)

* 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 データ読み出し装置、データ読み出し方法、並びにプログラム
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 北京经纬恒润科技有限公司 一种基于循环队列的数据传输方法及系统

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

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102595192A (zh) * 2012-03-07 2012-07-18 深圳市信义科技有限公司 一种视频流媒体无互斥缓冲方法
CN102595192B (zh) * 2012-03-07 2014-12-17 深圳市信义科技有限公司 一种视频流媒体无互斥缓冲方法
CN112019450A (zh) * 2019-05-31 2020-12-01 微软技术许可有限责任公司 设备间流式通信
CN113342257A (zh) * 2020-03-02 2021-09-03 慧荣科技股份有限公司 伺服器及相关的控制方法
CN113342257B (zh) * 2020-03-02 2024-01-23 慧荣科技股份有限公司 伺服器及相关的控制方法

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
KR20070095883A (ko) 2007-10-01
JP2006164333A (ja) 2006-06-22
EP1850339A1 (en) 2007-10-31
US8218560B2 (en) 2012-07-10
JP4562505B2 (ja) 2010-10-13

Similar Documents

Publication Publication Date Title
CN101199011B (zh) 多路分离装置及多路分离方法
US7849492B2 (en) Receiving accumulating apparatus, sending apparatus, broadcasting system, receive accumulating method, sending method, broadcasting method, program and medium
JP4902861B2 (ja) インタラクティブ方式のテレビアプリケーションを用いたデジタルコンテンツをエクスポートするための方法およびシステム
CN101059982B (zh) 包括元数据的存储介质及其再现设备和方法
CN1713709B (zh) 信息处理器
JP2002354423A (ja) コンテンツを格納するための方法
KR20010001197A (ko) 사용자 프로파일을 이용한 비디오 분할 시청 시스템
KR20060086487A (ko) 정보 수신 장치, 다운로드 방법, 다운로드 진행 상황 표시 방법, 및 기기 선택 방법
US20080033978A1 (en) Program, data processing method, and system of same
MX2007006314A (es) Dispositivo para registrar datos, metodo para registrar datos, dispositivo de procesamiento de datos, metodo de procesamiento de datos, programa, medio para grabar programas, medio para registrar datos y estructura de datos.
CN101067952B (zh) 用于提供可浏览的幻灯片显示的解码数据的方法
CN101552791B (zh) 播放多个媒体文件的方法和系统
CN101002465A (zh) 数据处理设备、数据处理方法、程序、程序记录介质、数据记录介质和数据结构
CN101111897B (zh) 数据处理装置和数据处理方法
CN101002467A (zh) 数据处理设备、数据处理方法、程序、程序记录介质、数据记录介质和数据结构
JPH114417A (ja) ビット・ストリーム情報表示方法、ビット・ストリーム情報作成方法及び記録媒体
KR100708159B1 (ko) 방송 파일 백업 장치 및 방법
KR20020064463A (ko) 서브 타이틀을 타이틀에 관련지어 재생가능한 데이터구조를 갖는 기록매체, 그 재생장치 및 재생방법
CN101002264A (zh) 数据处理装置和数据处理方法、程序和程序记录介质、数据记录介质和数据结构
US7664373B2 (en) Program, data processing method, and system of same
CN100563320C (zh) 数据处理设备和数据处理方法
JP2004171053A (ja) データ処理装置
WO2003036968A1 (en) Real-time bookmarking of streaming media assets
CN101389042B (zh) 在信息存储介质中记录视频数据的方法
JP2005309586A (ja) 情報処理装置および方法、並びにプログラム

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20110413

Termination date: 20131101