解码设备和解码方法 本发明涉及用于解码包括多个数据分组(packet)的位流的解码设备和解码方法。
用于解码包括多个数据分组的位流的解码设备已经为人所知。多个数据分组的每一个数据分组包括分组头部分和数据部分。指示一存取单元的前导位置(leading position)的图形起始码位于数据部分中的任意位置。
跳跃再现操作(skip reproduction operation)和凝固再现操作(freeze reproduction operation)被认为是视频数据和音频数据的特殊的再现操作。通过跳过多个存取单元的至少一个来实现跳跃再现操作。通过重复地再现多个存取单元的至少一个来实现凝固再现操作。
必须确定用于实现跳跃再现操作的存取单元的前导位置。为此目的,要求传统的解码设备通过搜寻数据分组的数据部分来检测包含于数据分组地数据部分的图形起始码。然而,检索数据分组的数据部分是耗费时间的。因此,很难顺利地完成跳跃再现操作。
传统的解码设备通过首先将位流累积到一缓冲存储器、然后重复地读取包括在累积到该缓冲存储器的位流中的特定数据来完成凝固再现操作。由此,传统的解码设备需要一个用于显示的大容量的缓冲存储器。
本发明的目的为:(1)提供实现快速跳跃再现操作的解码设备和解码方法;(2)提供无须使用用于显示的缓冲存储器的解码设备和解码方法。
根据本发明的解码设备为一用于解码包括多个数据分组的位流的解码设备,其中对应于一存取单元的数据包括第一数据部分和第二数据部分,该解码设备包括:用于接收第一数据分组和继第一数据分组之后的第二数据分组的数据分组再生部分,并用于当第一数据分组包括第一数据部分且第二数据分组包括第二数据部分时,通过合并第一数据部分与第二数据部分产生包括对应于该存取单元的数据的新的数据分组;和用于解码对应于该存取单元的数据的解码部分,其中所述新的数据分组包括指示对应于该存取单元的数据的长度的信息。于是,便达到了上述的目的。
该新的数据分组还包括指示展示时间标记的信息。
数据分组再生部分可以产生多个新的数据分组,该解码设备还包括用于存储多个由数据分组再生部分产生的新的数据分组存储部分;和用于通过使用指示对应于所述存取单元的数据的长度的信息控制从该存储部分多个新的数据分组的读取操作,以便跳过多个新的数据分组的至少一个的读取控制部分。
数据分组再生部分可以产生多个新的数据分组,该解码设备还包括用于存储多个由数据分组再生部分产生的新的数据分组的存储部分;和用于通过使用指示对应于所述存取单元的数据的长度的信息控制从该存储部分对多个新的数据分组的读取操作,以便重复读取多个新的数据分组的至少一个的读取控制部分。
根据本发明的解码方法为一用于解码包括多个数据分组的位流的解码方法,其中对应于一存取单元的数据包括第一数据部分和第二数据部分,该解码方法包括以下步骤:接收第一数据分组和继第一数据分组之后的第二数据分组,当第一数据分组包括第一数据部分且第二数据分组包括第二数据部分时,通过合并第一数据部分与第二数据部分产生包括对应于该存取单元的数据的新的数据分组;和解码对应于该存取单元的数据,其中所述新的数据分组包括指示对应于该存取单元的数据的长度的信息。于是,便达到了上述的目的。
图1说明包括根据本发明的解码设备1的DVD再现装置300的典型结构;
图2A示意性地说明位流100的结构;
图2B为表示如何产生PES数据分组164的示意图;
图3说明根据本发明一实施例的解码设备1的结构;
图4说明数据分组再生部分10的结构;
图5说明读取控制部分30的结构;
图6A说明包头(pack header)120的语法和位阵列的实例;
图6B说明PES头140的语法和位阵列的实例;
图7说明包括由PES数据分组产生部分54产生的PES数据分组164a-164d的位流160的实例。
以下将参照所述各图描述本发明的实施例。
图1示出包括根据本发明的解码设备1的DVD再现装置300的典型结构。
该DVD再现装置300包括拾取单元320,物理块330,解码设备1,输出设备350,CPU360,输入设备370。
DVD310具有记录在其上的视频数据和音频数据。记录在DVD310上的数据由DVD再现装置300读取并再现。该说明书中,盘片310被描述为DVD,但它可以是任何其它的信息记录媒体。
拾取单元320读取记录在DVD310上的数据。通过用来自激光单元321的具有预定波长的激光光线照射DVD310和检测由DVD310反射的该激光光线来读取数据。拾取单元320将读取的数据输出给物理块330。
物理块330包括误码校正单元331和伺服控制单元332。物理块330接收从拾取单元320输出的数据。对该接收的数据进行信号处理,象例如由误码校正单元331进行的误码校正。物理块330将处理后的数据作为位流100输出给解码设备1。
解码设备1接收从物理块330输出的位流100。解码设备1接收指示来自中央处理单元(CPU)360的指示再现操作模式的控制信号361。解码设备1根据控制信号361指示的再现操作模式进行位流100解码处理。解码设备1将视频信号200a和/或音频信号200b作为位流100的解码结果输出给输出设备350。
解码设备1的结构和操作将在以后详细描述。
输出设备350在象例如电视这样的显示器上显示从解码设备1输出的视频信号200a,并将从解码设备1输出的音频信号200b输出给扬声器。该数据于是就以一种能够被输出到显示器或扬声器的格式从解码设备1中输出。
中央处理单元(CPU)360控制拾取单元320、物理块330、解码设备1及输出设备350。当从输入设备370输入指示再现操作模式(如正常再现模式、倍速再现模式、凝固再现模式)的命令时,CPU360产生相应于该命令的控制信号361且将该控制信号361输出给解码设备1。
输入设备370用于允许用户输入指示再现操作模式的命令。这一命令通过使用例如DVD再现装置300中提供的遥控器(未显示)或操作面板(未显示)来输入。
在以上所述实施例中,假定被输入到解码设备1的位流100是从DVD300读取并经处理的数据。然而,位流数据100可以是从积累媒体或广播媒体得来的数据。这里,积累媒体可以是例如CD-ROM、LD或录象磁带,而广播媒体可以是例如电视广播、卫星广播或数据通信。
以下将描述输入到解码设备1的位流100的结构。
图2A示意性地说明了位流100的结构。
图2A所示的位流100符合MPEG2标准。然而,输入到解码设备1的位流100并不限于与MPEG2标准相符的数据流。以下描述的任何包括对应于一存取单元的位流均可输入解码设备1。
位流100包括至少一个数据包(pack)110。该数据包110包括包头120和至少一个数据分组130。该数据分组包括PES头140和数据部分150。
在数据部分150中存储有视频数据150a或音频数据150b。在DVD中,数据部分150的数据长度是固定的。然而,在MPEG数据流中。数据部分150的数据长度不需要为固定值。
视频数据150a不仅包括主视频数据,而且还包括副视频数据。这里,主视频指包括在电影或电视广播中的主要的视频,而副视频则指表示主视频数据的附加信息的视频,如语言字幕或标题。
音频数据150b对应于由视频数据150a表示的视频,或独立于由视频数据150a表示的视频。
如图2A所示,图形起始码162a定义一存取单元与下一存取单元的边界(存取单元边界163a)。这里,名词“存取单元”定义为可以被单独解码的最小数据单元。在所述视频数据150a的情形中,存取单元可以是一个字段或一帧。
对应于一个存取单元的数据不是必须被包含于一个数据分组130的数据部分150中。例如,如图2A所示,有一种情况是对应于一存取单元的视频数据150a的一部分(第一数据部分150a-1)包括在一数据分组130的数据部分150,而对应于该同一存取单元的视频数据150a的另一部分(第二数据部分150a-2)包括在另一数据分组130的数据部分150。在这种情况下,根据本发明的解码设备1通过合并该第一数据部分150a-1和该第二数据部分150a-2产生视频数据150A,并通过组合该视频数据150A与一PES头141产生新的数据分组164(见图2B)。这样就产生了包括对应于一存取单元的数据的新的数据分组164。
在对应于一存取单元的数据被分成三个或三个以上的数据分组的情况下,通过将这些数据分组中的数据合并产生包括对应于一存取单元的数据的新的数据分组164。
或者,可能有一种情况是对应于多个存取单元的数据包括在一个数据分组130的数据部分150。在这种情况下,根据本发明的解码设备1分解该数据部分150的数据以与该多个存取单元相对应。由此,产生多个新的数据分组164以便每个数据分组包括相应于一存取单元的数据。
图6A说明了包头120的语法和位阵列的实例。
包头120由pack_start_code(包起始码)的值来标识。当pack_start_code的值为000001BA(十六进制)时,检测到包头120在位流100中。包头120中提供的信息的典型实例为system_clock_reference(系统时钟基准SCR)。SCR为表示视频数据150a或音频数据150b的展示计时的基准时间的信息。
图6B说明了PES头140的语法和位阵列的实例。
PES头140由packet_start_code_prefix(分组起始码前缀)的值和stream_id(流标识)的值来标识。
在PES头140中提供指示packet_length(分组长度)的字段和指示packet_data_byte(分组数据字节)的字段。
packet_length字段定义在该字段和随后字段的PES头140中的字节数。
在packet_length字段和packet_data_byte字段之间可以附带地提供指示展示时间标记(PTS)的信息或这一类的信息。PTS为指示相对于SCR指示的基准时间的相对显示时间。
packet_data_byte字段代表视频数据150a或音频数据150b。当stream_id的值为EX(十六进制;X为任意值)时,packet_data_byte字段代表视频数据150a。
这里,在packet_length字段中与在packet_length字段和packet_data_byte字段之间的字节的数目由所述语法预定为一固定的字节数。于是,通过从该固定的字节数目中减去由packet_length指示的字节数得到的数值等于packet_data_byte的字节数。视频数据150a或音频数据150b的长度可由基于packet_length的计算来算出。这使得能够从位流100中提取视频数据150a或音频数据150b。
图3说明了根据本发明一实施例的解码设备1的结构。
解码设备1包括数据分组再生部分10、数据存储部分20、读取控制部分30、解码部分40及输入部分50。
数据分组再生部分10接收位流100并产生按存取单元打包的位流160。该产生的位流160被输出到数据存储部分20。数据分组再生部分10的详细的结构和操作将在以后参照图4进行描述。
数据存储部分20接收来自数据分组再生部分10的按存取单元打包的位流160并暂时存储该接收的位流160。数据存储部分20也从读取控制部分30接收读取地址信号550,该地址信号指示所述存储的按存取单元打包的位流160的位置。数据存储部分20从对应于由接收的读取地址信号550表示的地址的存储区的位置处读取位流160,并将该读取的位流160作为数据信号560输出给读取控制部分30。
读取存储部分20可以为例如DRAM。
读取控制部分30接收从输入部分50输出的控制信号362。控制信号362为指示位流100的再现操作模式的信号。读取控制部分30根据由控制信号362指示的再现操作模式产生地址信号550,并将该产生的地址信号550输出给读取存储部分20。读取控制部分30接收从读取存储部分20输出的数据信号560,并将该接收到的数据信号560作为数据信号561输出给解码部分40。读取控制部分30的详细的结构和操作将在以后参照图5进行描述。
解码部分40接收来自读取控制部分30的数据信号561,并解码该接收的数据信号561。解码部分40将从数据信号561解码的视频信号200a和/或音频信号200b输出给在解码设备1之外的输出设备350。
以下将描述包括在解码设备1中的数据分组再生部分10的结构和操作。
图4说明了数据分组再生部分10的结构。
数据分组再生部分10包括起始码检测器51、分解器52、PES头存储部分53及PES数据分组产生部分54。
起始码检测器51接收位流100并检测起始码。起始码为插入包括在位流100中的包头120的前导位置、PES头140的前导位置及存取单元151a的前导位置中的码字。例如,起始码为象“0000 00000000 0000 0000 0001”这样的24位位串。起始码检测器51将接收的位流100输出到分解器52。当起始码出现在输入的位流100时,起始码检测器51就将一起始码检测信号输出给分解器52。
分解器52从起始码检测器51接收位流100和起始码检测信号。
当分解器52接收到起始码检测信号时,分解器52读取继该起始码之后的预定位数(例如,8位)的数据,并检查该数据是否与预定位串匹配。结果,分解器52就确定了对应于该起始码的数据的种类。
例如,当继起始码之后的8位与“1110 XXXX”相匹配时,分解器52就确定该数据为对应于视频数据150a的PES头140。当继起始码之后的8位与“1100 XXXX”相匹配时,分解器52就确定该数据为对应于音频数据150b的PES头140。被称作同步字节的同步字被用于确定音频数据150b中各存取单元的界限。这种情况下,该设备可以设置为使得同步字在起始码检测器51中被检测。
当分解器52检测到位流100中的PES头140时,分解器52将一PES头检测信号输出给PES头存储部分53。这样,从位流100中提取出的PES头140就被存储在PES头存储部分53中。
包头120和PES头140的语法分别如图6A和6B所示。根据各自的语法从位流100中提取出包头120和PES头140。
以下将描述一其中视频数据150a存储在数据分组130的数据部分150中的实例。然而,这只是一个例子,本发明可以应用到的数据并不限于视频数据150a。本发明可以应用到任何能够做为一特殊再现的目标的数据。例如,视频数据150a、音频数据150b以及其它各种能够作为所述特殊再现目标的数据。
当继PES头140之后的视频数据150a被输入到起始码检测器51中时,起始码检测器51检测起始码。例如,在继起始码之后的8位为“0000 0000”的情况下,分解器52确定该数据为图形起始码162a,并向PES数据分组产生部分54输出图形起始码检测信号。
PES头存储部分53存储由分解器52从位流100提取的PES头140。来自分解器52的PES头检测信号被用作允许将PES头140存储在PES头存储部分53的使能信号。
PES头存储部分53或者可以只存储PES头140的数据的一部分(例如,packet_length或packet_length和PTS)而不是存储PES头的全部数据。
PES数据分组产生部分54接收来自分解器52的图形起始码检测信号。计数器54a响应图形起始码检测信号初始化一计数值。该计数值代表从接收到一特定图形起始码检测信号的时刻到接收到下一个图形起始码检测信号的时刻输入到计数器54a的视频数据150a的字节的个数。于是,计数器54a被用于计算从一存取单元的前导位置到下一存取单元的前导位置的字节数(即该存取单元的长度)。
此外,PES数据分组产生部分54还接收存储在PES头存储部分53中的PES头140。PES头140存储在数据分组长度更新部分54b。在数据分组长度更新部分54b中,PES头140的packet_length值被更新以便与由计数器54a计算的存取单元的长度相匹配。数据分组长度更新部分54b将具有更新了的packet_length的PES头140作为PES头141输出给组合部分54d。
PES数据分组产生部分54还接收从图形起始码162a起始的视频数据150a。视频数据150a存储在缓冲器54c中。这里,如图2B所示,当视频数据150a的一部分(第一数据部分150a-1)包括在一第一数据分组130的数据部分150而该视频数据150a的另一部分(第二数据部分150a-2)包括在继第一数据分组之后的第二数据分组130的数据部分150时,该第一数据部分150a-1和该第二数据部分150a-2均被存储于缓冲器54c中,且在缓冲器54c中,第一数据部分150a-1和第二数据部分150a-2被合并在一起。结果是,对应于一存取单元151a的视频数据150A从缓冲器54c输出给组合部分54d。
组合部分54d从数据分组长度更新部分54b接收PES头141,从接收缓冲器54c接收对应于所述存取单元151a的视频数据150A,且将该PES头141与该视频数据150A组合并。于是,就产生了包括对应于该存取单元151a的视频数据150A的新的PES数据分组164。该PES数据分组164被输出到数据存储部分20。
这里,通过更新出现在包括图形起始码162a的第一数据部分150a-1之前的多个PES头140中的最后一个的packet_length,获得与对应于存取单元151a的视频数据150A相组合的PES头140。
包括在PES头141中的信息可以与包括在PES头140中的信息相同。但是,PES头141包括包含在PES头140中的信息的一部分就足够了,因为PES头140包括了不必用于PES头141的信息。
例如,从实施一个特殊再现操作的角度来看,对PES头141来说,包括packet_length就足够了。这是因为,参考PES头141的packet_length值,就可以获得包括图形起始码162a的存取单元151a的数据长度,且该特殊再现操作可以通过使用这一数据长度来实现。这一处理由以后描述的读取控制部分30来执行。而且,PES头141最好是还包括pack_tart_code_prefix、stream_id和PTS。或者,可以将PTS插入视频数据150A的预定位置。
可以构成数据分组长度更新部分54b以从包括在PES头140中的信息选择需要用于PES头141的信息及输出包括该选择的信息的PES头141。数据分组长度更新部分54b选择的信息可以是包括在PES头140中的预定信息,或者可以是根据继包括在PES头140的信息中的PES头140之后的数据选择的信息。
通过重复上述的操作,PES数据分组产生部分54产生多个新的PES数据分组164。该多个PES数据分组164的每一个都包括对应于一存取单元的视频数据。
图7说明了包括由PES数据分组产生部分54产生的PES数据分组164a-164d的位流160的实例。
PES数据分组产生部分54能产生包括对应于一存取单元的音频数据的PES数据分组164,与以上所述视频数据的情况类似。
如果有关于处理在解码部分40和PES头140之间的其它信息的适当的指南,则向PES头140附加其它的信息将不是问题,即使它超出了MPEG2系统的流标准。
以下将描述包括在解码设备1中的读取控制部分30的结构和操作。
图5说明了读取控制部分30的结构。
读取控制部分30包括控制器500、地址发生器501a和501b、地址选择电路502和FIFO(先入先出)存储器503a和503b。
指示再现操作模式的控制信号362被输入给控制器500。控制器500根据控制信号362控制位流100的再现。当再现操作模式为正常再现模式时的读取控制部分30的操作及当再现操作模式为倍速再现模式或凝固再现模式时的读取控制部分30的操作将在以后描述。
当再现操作模式为正常再现模式时,控制器500在地址发生器501a中设定读取地址506a并将读取起始信号507a输出给地址发生器501a。
地址发生器501a命令数据存储部分20读取起始于上述设定的读取地址506a的位流160。该位流160的读取地址和读取指令作为地址550通过地址选择电路502被输出给数据存储部分20。
基于位流160的读取地址和读取指令从数据存储部分20发送数据信号560。该数据信号560存储在FIFO存储器503a中。当将由读取地址506a指示的数据存储部分20的地址作为初始值时,数据信号560为代表存储在对应于初始值和随后值的地址的数据的信号。当在FIFO存储器503a中存储了预定量的数据信号560时,该存储的数据信号560就会作为数据信号561被输出给解码部分40。数据信号561基本上与数据信号560相同。于是,就执行了正常的再现操作。
在操作模式为倍速再现模式或凝固再现模式时,读取控制部分30的操作直到从数据存储部分20发送数据信号560之前与正常操作模式下的读取控制部分30的操作相似。即,不象正常再现模式,倍速再现模式与凝固再现模式使用地址发生器501b,而不是地址发生器501a,且分别使用读取地址506b和读取起始信号507b,而不是读取地址506a和读取起始信号507a。
从数据存储部分20发送的数据信号560存储在FIFO存储器503b中。当将由读取地址506b指示的数据存储部分20的地址作为初始值时,数据信号560为代表存储在对应于初始值和随后值的地址的数据的信号。
存储在FIFO存储器503b中的数据信号560由控制器500读取。数据信号560为位流160且包括至少一个PES数据分组164。(在图7中,使用参数164a-164d指示PES该数据分组。)控制器500通过分析PES数据分组164和参照包括在PES数据分组164的PES头141中的packet_length值来读取存取单元151a的数据长度。控制器基于读取存取单元151a的数据长度,输出用于倍速再现模式的每隔一个PES的数据分组164(例如,图7中的164a和164c)的地址,或者重复地输出用于凝固再现模式中的一PES数据分组164(例如,图7中的164a)的地址作为读取地址506b给地址发生器501b。换句话说,对于倍速再现模式,跳过每下一个PES数据分组164来完成操作,而对于凝固再现模式,则重复读取相同的PES数据分组164来完成操作。然后,从数据存储部分20读取对应于读取地址506b及随后地址的地址的数据信号560并存储在FIFO存储器503a中。当存储在FIFO存储器503a中的数据信号560达到预定位数时,该信号就被输出给解码部分40。
根据以上所述的读取控制部分30的倍速再现操作,通过仅参考packet_length值,便可实现PES数据分组164的跳跃操作(例如,图7中的164b和164d)。由此可以实现顺利、高速的再现。
根据以上所述的读取控制部分30的凝固再现操作,产生的包括对应于存取单元的数据的多个PES数据分组164的至少一个被重复解码。不象传统设备的情况,根据本发明,并不重复地显示该被解码的数据,于是不需要用于存储已解码的数据的缓冲存储器。
假定控制器500基于读取存取单元151a的数据长度再次向地址生成器501b输出读取地址。然而,控制器500可以基于读取存取单元151a的数据长度直接读取存储在FIFO存储器503b中的相应的PES数据分组164。这种情况下,控制器500输出指示在FIFO存储器503b中的哪个地址的PES数据分组164要被读取的信号给FIFO存储器503b。接收到指示地址的信号的FIFO存储器503b向解码部分40输出包括该地址和随后地址的相应的PES数据分组164的数据信号561。该结构对于重复再现一PES数据分组164的凝固再现操作尤其有用。
在控制信号362指示为“三倍速再现模式”的情况下,可以通过跳过对应于相连的两存取单元的PES数据分组且然后通过类似于上述的操作再现对应于一存取单元的PES数据分组来实现三倍速再现。
而且,可能有控制读取部分30因为一编码方案不能执行跳跃操作的情况,该编码方案基于MPEG标准特定的前向运动预测和后向运动预测。例如,在包括“I/P/B/B/P/B/B/P------”的图象中,仅有B可以被跳过。通过查看继图形起始码162a之后的图形编码类型可容易地实现该操作。
对跳过用于音频数据的PES数据分组的操作没有特别的限制。
为有效利用读取控制部分30和解码部分40之间的信号线,在该实施例中使用了FIFO存储器503a与503b。这是因为信号在读取控制部分30和解码部分40之间传送时相对比较慢,而在读取控制部分30和数据存储部分20间则可以快速传送。通过提供FIFO存储器503a和503b及在存储的数据达到一预定量时开始传送,可以有效地使用具有相对较低的传送速度的信号线。
根据本发明,由数据分组再生部分产生包括对应于一存取单元的数据的新的数据分组。该新的数据分组包括指示对应于该存取单元的数据长度的信息。通过参照指示对应于该存取单元的数据长度的信息,可以容易地确定该存取单元的前导部分。不象传统设备的情况,根据本发明,为确定一存取单元,不必搜寻数据分组的数据部分。于是,可以实现快速跳跃再现操作。
根据本发明,通过重复解码已产生的包括对应于存取单元的数据的多个新的数据分组的至少一个,来实现凝固再现操作。于是,存储已被解码的数据的缓冲存储器就不是必需的了。结果使得系统费用降低。