CN100499784C - 信息处理装置和方法 - Google Patents
信息处理装置和方法 Download PDFInfo
- Publication number
- CN100499784C CN100499784C CNB2005100483830A CN200510048383A CN100499784C CN 100499784 C CN100499784 C CN 100499784C CN B2005100483830 A CNB2005100483830 A CN B2005100483830A CN 200510048383 A CN200510048383 A CN 200510048383A CN 100499784 C CN100499784 C CN 100499784C
- Authority
- CN
- China
- Prior art keywords
- picture
- decoding
- memory
- gop
- processing unit
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
一种信息处理装置解码包括I-图片,P-图片,和B-图片的压缩编码视频数据。该信息处理装置包括至少一个解码压缩编码视频数据的解码器,控制将压缩编码视频数据提供到解码器的提供控制器,以及控制由提供控制器和解码器执行的处理的控制器。该解码器包括用于存储解码的图片数据的存储体存储器,及控制器通过改变表示当解码器解码P-图片或B-图片时参考存储体存储器中存储的图片的次数的第一计数器的值而控制释放存储体存储器中存储的图片的定时。
Description
相关申请的交叉引用
本发明包含与2004年10月26日在日本专利局申请的日本专利申请JP2004-311559以及2005年8月24日在日本专利局申请的日本专利申请JP2005-242160相关的主题,其全部内容在这里被结合作为参考。
技术领域
本发明涉及信息处理装置和方法,记录介质,以及程序。更具体地说,本发明涉及这样的信息处理装置和方法,记录介质,以及程序,其中即使存储体(bank)存储器的容量很小也能够通过解码压缩编码的视频数据来执行快速重放操作,反向重放操作,或反向快速重放操作。
背景技术
作为视频压缩技术,运动图像编码组/运动图像专家组(MPEG)被广泛地使用。通过解码由MPEG方法编码的流数据来执行的重放操作不但包括普通的重放操作,而且包括快速重放操作或反向重放操作。
例如,在MPEG的长图片组(GOP)中,每个GOP包括15个图片,可以通过在输入到解码器之前省略双向预测编码(B)-图片以x-3到x3的速度(速度中的符号“-”表示重放操作反向执行,这一点适用于以下的说明)来执行快速重放操作(例如,参见日本未审查的公开号为8-98142的专利申请)。另外,为每个重放速度提供表示要显示的图片信息的表以便可以以与表的数目相同数目的不同速度来执行重放操作。
日本未审查的公开号为8-56334的专利申请中公开了另一种重放技术。该技术中,断续地每隔5帧获得10帧压缩编码信号。在解调了所有10帧压缩编码信号后,它们被选择地提供到两个解码器,每个解码器五帧,它们被解码并然后写入到存储器中。存储器每隔一个帧读取一次,以便可以输出x2重放信号。
MPEG流最适合正向的重放操作。例如,在MPEG的长GOPs中,15个图片的编码顺序为I(2),B(0),B(1),P(5),B(3),B(4),P(8),B(6),B(7),P(11),B(9),B(10),P(14),B(12),以及B(13)(括号中的数字表示当根据编码顺序重新排列GOP图片的显示顺序时的顺序),该15个图片即形成一个GOP的内部编码(I)-图片,预测编码(P)-图片,以及B-图片。根据一个在先的I-图片或P-图片预测P-图片,根据一个在先的I-图片或P-图片以及按编码顺序的两个在先的I-图片或P-图片预测B-图片。因此,通过保留参考图像存储器的两个存储体,可以解码P-图片和B-图片,从而增强存储器的有效使用。
为了在反方向中重放最适合正向重放操作的MPEG流,下面的技术已经在日本未审查的公开号为10-150635的专利申请中提出。多个解码器用于执行解码处理,刚好在要被解码的GOP之前的GOP被增加并且所述两个GOP提供给解码器。这使得即使在反向重放操作中也能够正确地使用将要重放的图片的参考图像。
发明内容
在日本未审查的公开号为8-98142的专利申请所公开的技术中,虽然可以通过在输入到解码器之前省略B图片以x-3到x3的速度执行快速重放操作,但是图片的显示间隔变得不规则,从而使所显示的图像不自然。
多个解码器芯片用于执行解码处理的技术可以与用于省略在输入阶段将不被显示的B-图片的处理相组合。采用这种组合,可以每隔一定间隔执行快速重放操作(例如,对于两个解码器芯片来说速度为x2,对于三个解码器芯片来说速度为x4,对于四个解码器芯片来说速度为x5,以及对于五个解码器芯片来说速度为x7)。然而,在这种情况下,输出处理期间I-图片或P-图片的省略是必需的,这增加了基带存储器控制操作或从解码数据中选择要被显示的数据的处理的复杂性。因此,很难使用公知技术通过动态改变重放速度来执行显示操作。
如上所述,通过为每个重放速度提供表示要显示的图片信息的表,可以以与表的数目相同数目的不同速度执行重放操作。然而,在这个过程中,以表为单位转换重放速度,并且当转换速度时为了流畅地显示图像需要复杂的控制。
如上所述,MPEG流最适合正向重放操作。在MPEG流的输入顺序的反向重放操作中,当解码一个GOP后执行反向重放操作时,需要存储至少一个GOP(例如,15帧)的帧存储器,并且应当保留许多参考图像数据存储体,因此要求大的存储器容量。
由于这样的背景,希望即使存储钵存储器的容量小也能够通过解码压缩编码的视频数据而获得快速重放操作,反向重放操作,以及反向快速重放操作。
根据本发明的实施例,提供的信息处理装置包括:至少一个用于解码压缩编码视频数据的解码装置;用于控制将压缩编码视频数据提供到解码装置的提供控制装置;以及用于控制由提供控制装置和解码装置执行的处理的控制装置。解码装置包括用于存储解码后的图片数据的存储体存储器,以及控制装置通过改变第一计数器的值来控制存储在存储体存储器中的图片被释放的定时,所述第一计数器表示当P-图片或B-图片被解码装置解码时参考存储体存储器中存储的图片的次数。
控制装置可以通过参考表示存储在存储体存储器中的图片是否已经被显示的第二计数器的值来释放存储在存储体存储器中的图片。
控制装置可以为包含在解码处理单元中的多个图片确定解码处理的顺序,从而在B-图片之前解码I-图片和P-图片,所述解码处理单元用于由解码装置执行的解码处理。
存储体存储器可具有基于包括在解码处理单元中的图片数目的存储体数目,所述解码处理单元用于解码装置执行的解码处理。
解码装置可以包括存储的图片数量比解码处理单元中包含的I-图片和P-图片的数量大2的存储钵存储器。
解码装置的数量可以是三个,而每个解码装置可以包括存储8个图片的存储钵存储器。
控制装置可以根据重放速度指令装置提供的重放速度指令,从解码处理单元包含的图片中选择要从解码装置输出的图片,所述解码处理单元用于解码装置执行的解码处理。解码装置可以包括用于执行解码处理的解码处理执行装置,以及用于控制将图片提供到解码处理执行装置的图片提供控制装置。图片提供控制装置可以在控制装置的控制下,将解码处理单元包含的图片中要被选择为从解码装置输出的图片的I-图片和P-图片,以及B-图片提供到解码处理执行装置。解码处理执行装置可以在控制装置的控制下解码从图片提供控制装置提供的每个图片并且地可以输出被选择为要从解码装置输出的图片的图片。
当解码处理单元最前面的图片是从解码装置输出的解码图片中的I-图片或P-图片时,控制装置可以控制解码装置以便解码装置开始解码的解码开始定时以及解码装置开始输出解码图片的显示输出定时彼此之间位移第一预定数量的图片。
该第一预定数量可以比I-图片和P-图片的总数大1。
当解码处理单元最前面的图片是从解码装置输出的解码图片中的B-图片时,控制装置可以控制解码装置以便解码装置开始解码的解码开始定时以及解码装置开始输出解码图片的显示输出定时彼此之间位移第二预定数量的图片。
该第二预定数量可以比I-图片和P-图片的总数大2。
可以提供多个解码装置。信息处理装置可以进一步包括用于接收从多个解码装置输出的非压缩数据以及用于选择地输出所接收的非压缩数据的输出转换装置。控制装置可以进一步控制由输出转换装置执行的处理。
解码装置可以包括具有的存储体数量比解码处理单元中包含的图片数量小的存储钵存储器,所述解码处理单元用于通过解码装置执行的解码处理。
压缩编码视频数据可以包括GOP。当接收包括数量比从存储钵存储器的存储体数量减三获得的值大的I-图片或P-图片的GOP时,控制装置可以将GOP分成解码处理单元,每个解码处理单元包括数量比从存储体存储器的存储体数量减二获得的值小的I-图片或P-图片,并且控制装置可以控制提供控制装置将解码处理单元的压缩编码视频数据提供到解码装置。
控制装置可以形成解码处理单元以便被分成的解码处理单元中包含的I-图片或P-图片的总数不比时间上在前的GOP中包含的或时间上在前的解码单元中包含的I-图片或P-图片的总数大预定数量或更多。
压缩编码视频数据可以包括GOP。当接收包括数量比从存储体存储器的存储体数量减三获得的值小的L图片或P-图片的第一GOP时,控制装置可以检测从第一GOP在时间上连续的第二GOP的结构,并且,如果第一GOP和第二GOP中包含的I-图片或P-图片的总数比从存储钵存储器的存储钵数量减三获得的值小,则控制装置可以组合第一GOP和第二GOP以便形成解码处理单元,并且可以控制提供控制装置将解码处理单元的压缩编码视频数据提供到解码装置。
控制装置可以形成解码处理单元以便组合的解码处理单元包含的I-图片或P-图片的总数不比时间上在前的GOP中包含的I-图片和P-图片的总数大预定的数量或更多。
压缩编码视频数据可以包括GOP。控制装置可以检测第一GOP的结构以及从第一GOP时间上连续的第二GOP的结构,并且如果第一GOP和第二GOP中包含的I-图片或P-图片的总数比从存储钵存储器的存储体数量减三获得的值的两倍小,则控制装置可以组合第一GOP和第二GOP,然后分割组合的GOP形成第一解码处理单元和第二解码处理单元,这两个单元的每个包括比从存储体存储器的存储体数量减二获得的值小的I-图片或P-图片。控制装置可以控制提供控制装置以便将第一解码处理单元的压缩编码视频数据以及第二解码处理单元的压缩编码视频数据分别提供到解码装置。
控制装置可以形成第一解码处理单元和第二解码处理单元以便第一解码处理单元和第二解码处理单元中包含的I-图片或P-图片的总数不比时间上在前的解码处理单元或时间上在前的GOP的I-图片或P-图片的总数大预定的数量或更多。
根据本发明的另一个实施例,提供了一种信息处理方法,在其上记录程序的记录介质,以及程序。信息处理方法和程序包括步骤:设置表示参考包括包含在用于执行解码处理的解码处理单元中的L图片,P-图片和B-图片的多个图片的每一个的次数的计数器;确定解码处理单元中包含的图片的解码处理顺序以便L图片和P-图片在B-图片之前被解码;根据所确定的解码处理顺序,通过使用具有根据解码处理单元中包含的图片的数量而确定的存储体数量的存储体存储器来控制解码处理的执行;以及当在所控制的解码处理中解码P-图片或B-图片时,通过改变计数器的值控制释放存储钵存储器中存储的图片的定时。
根据上述信息处理装置,信息处理方法,记录介质,以及程序,使用存储体存储器执行解码。提供了表示参考存储在存储体存储器中的图片的次数的计数器,并且当解码P-图片或B-图片时改变计数器的值。因此,存储在存储体存储器中的图片被释放的定时被控制。结果,即使存储体存储器的容量小,也可以通过解码压缩编码视频数据来执行快速重放操作,反向重放操作,或快速反向重放操作。
根据本发明的另一个实施例,提供了一种信息处理装置,包括:用于存储压缩编码视频数据的存储装置;用于从存储装置读出压缩编码视频数据的读出装置;用于解码压缩编码视频数据的解码装置;用于控制将压缩编码视频数据提供到解码装置的提供控制装置;用于控制由提供控制装置和解码装置执行的处理的控制装置;以及用于将重放速度指令提供到控制装置的重放速度指令装置。该解码装置包括用于存储解码图片数据的存储钵存储器,以及控制装置通过改变计数器的值来控制存储在存储钵存储器中的图片被释放的定时,所述计数器表示当P-图片或B-图片被解码装置解码时参考存储体存储器中存储的图片的次数。
根据本发明的另一个实施例,提供了一种信息处理方法,在其上记录程序的记录介质,以及程序。该信息处理方法和程序包括步骤:读出存储单元中存储的压缩编码视频数据;设置表示参考包括包含在用于执行解码处理的解码处理单元中的I-图片,P-图片和B-图片的多个图片的每一-个的次数的计数器;确定解码处理单元中包含的图片的解码处理顺序以便I-图片和P-图片在B-图片之前被解码;根据所确定的解码处理顺序通过使用具有基于解码处理单元中包含的图片的数量的存储钵数量的存储体存储器来控制解码处理的执行;以及当在所控制的解码处理中解码所读取的压缩编码视频数据的解码处理单元中包含的图片中的P-图片或B-图片时,通过改变计数器的值而控制释放存储体存储器中存储的图片的定时。
根据上述的信息处理装置,信息处理方法,记录介质,以及程序,读取存储在存储单元中的压缩编码视频数据,并且响应重放速度指令,通过使用存储钵存储器控制解码处理的执行。提供了表示存储在存储体存储器中的图片被参考的次数的计数器,当解码P-图片或B-图片时改变该计数器的值。因此,释放存储在存储体存储器中的图片的定时被控制。结果,即使存储体存储器的容量小,也可以通过解码压缩编码视频数据而执行快速重放操作,反向重放操作,或快速反向重放操作。
附图说明
图1是说明根据本发明的实施例的重放装置的配置的方框图;
图2是说明图1中所示的解码器的详细配置的方框图;
图3是说明控制处理的流程图;
图4是说明对每个帧执行的帧处理的流程图;
图5是说明输入流状态改变处理的流程图;
图6是说明解码调度处理的流程图;
图7说明了MPEG长GOP;
图8A和8B说明了用于由一个解码器执行的解码处理的解码处理单元;
图9A和9B说明了存储在输入图片队列中的信息;
图10A和10B说明了存储在显示顺序信息队列中的信息;
图11是说明输入处理的流程图;
图12和13是说明解码放置处理的流程图;
图14A和14B说明了存储在显示顺序设置队列中的信息;
图15A和15B说明了存储在I/P-图片解码队列中的信息;
图16A和16B说明了存储在B-图片解码队列中的信息;
图17是说明显示相位确定处理的流程图;
图18是说明时间信息调度确定处理的流程图:
图19是说明帧控制处理的流程图;
图20是说明解码处理的流程图;
图21是说明显示处理的流程图;
图22A和22B说明了在x2重放操作中执行省略图片之前和之后的解码和显示调度;
图23A和23B说明了在x-2重放操作中执行省略图片之前和之后的解码和显示调度;
图24A和24B说明了在x4重放操作中执行省略图片之前和之后的解码和显示调度;
图25A和25B说明了在x-4重放操作中执行省略图片之前和之后的解码和显示调度;
图26A和26B说明了在x5重放操作中执行省略图片之前和之后的解码和显示调度;
图27A和27B说明了在x-5重放操作中执行省略图片之前和之后的解码和显示调度;
图28说明了x1重放操作中的存储钵控制;
图29说明了x2重放操作中的存储钵控制;
图30说明了x-1重放操作中的存储钵控制;
图31说明了x-2重放操作中的存储体控制;
图32是说明下溢处理的流程图;
图33说明了当下溢不发生时的时间计数器;
图34说明了当下溢发生时时间计数器的调整;
图35至37B说明了通过分割GOP形成的解码单元;
图38至40B说明了通过组合GOP形成的解码单元;
图41至46B说明了通过组合和分割GOP形成的解码单元;
图47是说明GOP分割/组合处理的流程图;
图48说明了图35中所示的在x1重放操作中存储在视频存储钵存储器的8个存储体中的解码单元GOP(0-1);
图49说明了图41中所示的在x-1重放操作中存储在视频存储体存储器的8个存储体中的解码单元GOP(0-1);
图50说明了图44中所示的在x2重放操作中存储在视频存储体存储器的8个存储体中的解码单元GOP(0-1);及
图51是说明个人计算机的配置的方框图。
具体实施方式
在描述本发明的实施例之前,下面讨论权利要求的特征和本发明的实施例中公开的具体元件之间的对应性。本说明书用于确保支持要求保护的本发明的实施例在本说明书中得到了说明。因此,即使没有将下面实施例中的元件描述为与本发明的某些特征相关,也不一定意味着该元件与权利要求的特征不相关。相反,即使这里将元件描述为与权利要求的某一特征相关,也不一定意味着该元件与权利要求的其他特征不相关。
根据本发明的实施例的信息处理装置(例如,图1中所示的重放装置1)包括:至少一个用于解码压缩编码视频数据的解码装置(例如,图1中所示的解码器22,23,或24);用于控制将压缩编码视频数据提供到解码装置的提供控制装置(例如,图1中所示的PCI桥17);以及用于控制由提供控制装置和解码装置执行的处理的控制装置(例如,图1中所示的CPU20)。该解码装置包括用于存储解码图片数据的存储体存储器,以及控制装置通过改变第一计数器的值来控制存储在存储体存储器中的图片被释放的定时,所述第一计数器表示当P-图片或B-图片被解码装置解码时参考存储体存储器中存储图片的次数。
控制装置可以通过参考第二计数器(例如,自参考计数器)的值而释放存储在存储体存储器中的图片,该第二计数器表示存储在存储体存储器中的图片是否已经被显示。
解码装置可包括存储体存储器(例如,如图2所示的视频存储体存储器82),该存储体存储器具有基于包含在用于由解码装置执行的解码处理的解码处理单元中的图片数量(例如,正向重放操作中,总共16个图片,包括第一个GOP中的头两个B-图片的13个图片以及按编码顺序在第一个GOP之后的第二个GOP的头三个I-,B-,和B-图片,而在反向重放操作中,总共16个图片,包括第二个GOP中的除了头两个B-图片的13个图片以及第二个个GOP之前的头GOP的头三个I-,B-,和B-图片)的存储体的数量。
控制装置可以根据重放速度指令装置(例如,图1中所示的CPU11)指示的重放速度从解码处理单元中包含的图片中选择要从解码装置输出的图片,该解码处理单元用于由解码装置执行的解码处理,该重放速度指令装置用于将重放速度指令提供到控制装置。解码装置可以包括用于执行解码处理的解码处理执行装置(例如,图2中所示的解码处理器77),以及用于控制将图片提供到解码处理执行装置的图片提供控制装置(例如,图2中所示的基本-流地址确定单元73)。图片提供控制装置可以在控制装置的控制下将解码处理单元中包含的图片中的要被选择为从解码装置输出的图片的I-图片和P-图片,以及B-图片提供到解码处理执行装置。解码处理执行装置可以在控制装置的控制下解码从图片提供控制装置提供的每个图片并且也可以输出被选择为要从解码装置输出的图片的图片。
可以提供多个解码装置。信息处理装置可以进一步包括用于接收从多个解码装置输出的非压缩数据以及用于选择地输出所接收的非压缩数据的输出转换装置(例如,图1中所示的选择器25)。控制装置可以进一步控制由输出转换装置执行的处理。
第一预定的数量(例如,6)可能比I-图片和P-图片的总数(例如,5)大1。
第二预定的数量(例如,7)可能比I-图片和P-图片的总数(例如,5)大2。
根据本发明的实施例的信息处理方法,记录在记录介质中的程序,以及程序包括步骤:设置表示参考包括用于执行解码处理的解码处理单元中包含的I-图片,P-图片和B-图片的多个图片(例如,正向重放操作中,总共16个图片,包括第一个GOP中的除了头两个B-图片的13个图片以及按编码顺序第二个GOP中的头三个I-,B-,和B-图片,而在反向重放操作中,总共16个图片,包括第二个GOP中的除了头两个B-图片的13个图片以及在第二个GOP之前显示的第三个GOP的头三个I-,B-,和B-图片)的每一个的次数的计数器(例如,前面的参考计数器或后面的参考计数器)(例如,图12中所示的步骤S111);确定解码处理单元中包含的图片的解码处理顺序以便在B-图片之前解码I-图片和P-图片(例如,图13中所示的步骤S127);根据确定步骤中所确定的解码处理的顺序通过使用具有基于解码处理单元中包含的图片数量确定的存储钵数量的存储体存储器(例如,图2中所示的视频存储体存储器82)控制解码处理的执行(例如,图20中的步骤S223);当在解码处理执行控制步骤中所控制的解码处理中解码P-图片或B-图片时,通过改变计数器的值控制释放存储体存储器中存储的图片的定时(例如,图20中的步骤S228和S229或者图21中的步骤S254和S255)。
根据本发明的另一个实施例的信息处理装置(例如,图1中所示的重放装置1)包括:用于存储压缩编码的视频数据的存储装置(例如,图1中所示的HDD16);用于从存储装置读出压缩编码的视频数据的读出装置(例如,图1中所示的南桥15);用于解码压缩编码的视频数据的解码装置(例如,图1中所示的解码器22,23,或24);用于控制将压缩编码的视频数据提供到解码装置的提供控制装置(例如,图1中所示的PCI桥17);用于控制由提供控制装置和解码装置执行的处理的控制装置(例如,图1中所示的CPU20);以及用于将重放速度指令提供到控制装置的重放速度指令装置(例如,图1中所示的CPU11)。解码装置包括用于存储解码图片数据的存储钵存储器,以及控制装置通过改变表示当解码装置解码P-图片或B-图片时参考存储在存储体存储器中的图片的次数的计数器(例如,前面的参考计数器或后面的参考计数器)的值来控制释放存储在存储体存储器中的图片的定时。
根据本发明的另一个实施例的信息处理方法,记录在记录介质中的程序,以及程序包括步骤:读出在存储单元中存储的压缩编码视频数据(例如,图3中的步骤S1);设置表示参考包括用于执行解码处理的解码处理单元中包含的I-图片,P-图片和B-图片的多个图片(例如,正向重放操作中,总共16个图片,包括第一个GOP中的除了头两个B-图片的13个图片以及按编码顺序第二个GOP中的头三个I-,B-,和B-图片,而在反向重放操作中,总共16个图片,包括第二个GOP中的除了头两个B-图片的13个图片以及在第二个GOP之前显示的第三个GOP的头三个I-,B-,和B-图片)的每一个的次数的计数器(例如,前面的参考计数器或后面的参考计数器)(例如,图12中的步骤S111);确定解码处理单元中包含的图片的解码处理顺序以便在B-图片之前解码I-图片和P-图片(例如,图13中所示的步骤S127);根据确定步骤中所确定的解码处理的顺序通过使用基于解码处理单元中包含的图片数量的存储钵数量的存储体存储器(例如,图2中所示的视频存储体存储器82)控制解码处理的执行(例如,图20中的步骤S223);当在所控制的解码处理中解码所读取的压缩编码视频数据的解码处理单元中包含的图片中的P-图片或B-图片时,通过改变计数器的值控制释放存储体存储器中存储的图片的定时(例如,图20中的步骤S228和S229或者图21中的步骤S254和S255)。
通过优选实施例的说明,参照附图在下面详细地描述本发明。
图1是根据本发明的实施例说明重放装置1的硬件配置的方框图。
在重放装置1中,连接到北桥12的中央处理单元(CPU)11控制硬盘驱动器(HDD)16中存储的数据的读取或生成并且输出用于提供开始、改变、和结束处理的指令的命令,所述处理例如由CPU20执行的控制解码调度、解码和显示。连接到外围部件互连/接口(PCI)总线14的北桥12在CPU11的控制下通过南桥15接收存储在HDD16中的数据并且通过PCI总线14和PCI总线17将所接收的数据提供到存储器18。北桥12也连接到存储器13并且发进和接收CPU11的处理所要来的数据。
存储器13是快速存取存储器,诸如双数据速率(DDR),其中可以存储CPU11执行的处理所要求的数据。南桥15控制从HDD16读取数据和向HDD16写入数据,该HDD16中存储压缩编码流数据。
PCI桥17具有内置的命令缓冲器31和结果缓冲器32,并且连接到存储器18,在CPU11的控制下从HDD16读出的流数据在该存储器18中被缓冲。PCI桥17可以在CPU11的控制下将从HDD16读出的流数据提供到存储器18并且在其中存储流数据。PCI桥17也可以在CPU20的控制下读取存储器18中存储的流数据并且将该流数据提供到解码器22,23,和24。PCI桥17也控制相应于命令或结果的控制信号通过PCI总线14或控制总线19的发送和接收。
命令缓冲器31通过北桥12和PCI总线14从CPU11接收命令,并且也通过控制总线19将命令从命令缓冲器31读出到CPU20。结果缓冲器32响应命令通过控制总线19从CPU20接收结果并且也通过PCI总线14和北桥12将结果缓冲器32中存储的结果读出到CPU11。
存储器18是例如同步动态随机存取存储器(SDRAM),在PCI桥17的控制下存储从HDD16中读出的压缩编码流数据。
CPU20通过控制总线19读取由CPU11写入到PCI桥17的命令缓冲器31中的命令,并且根据读取的命令控制由PCI桥17,解码器22到24,以及选择器25执行的处理。存储器21存储CPU20执行的处理所需的数据。
解码器22,23,和24在CPU20的控制下解码所接收的压缩编码流数据,并且输出非压缩视频信号。解码器22,23,和24分别具有内置的存储器41,42,和43,以便如果需要的话,存储所接收的压缩编码流数据和解码的视频信号。解码器22,23,和24不必须包含在重放装置1中。也就是说,可与重放装置1分开提供解码器22,23,和24。
选择器25可以转换从解码器22,23,或24提供的非压缩串行数字接口(SDI)数据的每个帧(图片)的输出。
图1中所示的重放装置1可以组成为一个设备或多个设备。例如,CPU11,北桥12,存储器13,南桥15,以及HDD16可以作为个人计算机的部件被提供,而PCI总线14,PCI桥17,存储器18,控制总线19,CPU20,存储器21,解码器22,23,和24,以及选择器25的功能可以在扩展卡中提供,该扩展卡诸如PCI卡或PCI-express卡,或扩展板。然后,将扩展卡插入到个人计算机中,从而执行重放装置1的功能。上述的元件可以包含在更多的设备中以形成重放装置1。
下面描述上面配置的重放装置1的操作。
HDD16中存储了用MPEG长GOP方法压缩的视频数据。
CPU11响应用户从输入操作单元(未示出)的输入控制南桥15通过北桥12从HDD16中读出压缩编码流数据,并且通过北桥12,PCI总线14,以及PCI桥17将读取的流数据提供到存储器18并且将读取的数据存储到存储器18中。CPU11也通过北桥12和PCI总线14将表示重放速度和重放方向的信息以及解码开始命令或显示开始命令写到PCI桥17的命令缓冲器31中。
CPU20根据从CPU11提供的并且存储在命令缓冲器31中的命令为压缩编码流数据确定解码和显示调度。更准确地说,CPU20选择用于解码的解码器22,23,或24,并且确定压缩编码流数据输入到所选择的解码器22,23,或24的定时,每个帧的解码定时,解码处理中存储体存储器的分配,以及解码图片的输出,即,显示定时。
然后CPU20基于所确定的调度控制PCI桥17以便将存储器18中存储的压缩编码流数据提供到所选择的解码器22,23,或24。
CPU20控制解码器22,23,或24解码所提供的压缩编码流数据。然后解码器22,23,或24解码该流数据以生成非压缩的SDI数据并且将它输出到选择器25。
然后CPU20控制选择器25转换从解码器22,23,或24输出的非压缩的SDI数据的输出。
图2是说明解码器22,23,或24的详细配置的方框图。
输入处理器71将压缩编码的流数据从PCI桥17提供到存储器控制器74并且将该流数据存储到输入缓冲器75中。输入处理器71也从所提供的流数据获得每个图片的头地址,数据大小,图片头部信息,图片大小信息,以及Q矩阵,并且将所获得的信息提供到地址管理表72。
地址管理表72为每个图片存储由输入处理器71提供的上述信息,作为可以用表ID识别的表信息。
基本流地址确定单元73从地址管理表72中存储的预定表ID表示的表信息中读取相应图片的头地址和图片大小信息并且基于从CPU20通过控制总线19提供的控制信号将读取的头地址和图片大小信息提供到存储器控制器74以便输入缓冲器75中存储的流数据可以被提供到图片单元中的解码处理器77。
存储器控制器74控制从以及向输入缓冲器75读出和写入流数据。也就是说,存储器控制器74将从输入处理器71提供的流数据写入到输入缓冲器75并且也基于从基本流地址确定单元73提供的相应图片的头地址和图片大小信息将预定的图片读出到解码处理器77。
与图1中所示的存储器41,42,和43的记录区域的一部分相应的输入缓冲器75是SDRAM,并且在存储器控制器74的控制下存储流数据。
控制总线76将通过控制总线19从CPU20接收的控制信号提供到基本流地址确定单元73,解码处理器77,写图像地址确定单元78,参考图像地址确定单元79,以及输出地址确定单元80,且也通过控制总线19将与解码器22,23,或24中执行的处理相关的信息提供到CPU20。
如果需要,解码处理器77在存储器控制器74的控制下通过参考从参考图像地址确定单元79提供的相应的参考图像解码从输入缓冲器75读取的MPEG视频流,并且将解码的基带(非压缩的)视频信号提供到写图像地址确定单元78。
写图像地址确定单元78通过控制总线76获得通过控制总线19从CPU20提供的控制信号,并且基于该控制信号确定从解码处理器77解码和提供的基带视频信号在视频存储体存储器82上的记录位置,即,存储器存储体位置。然后写图像地址确定单元78通过存储器控制器81在视频存储体存储器82的所确定的存储体位置存储该基带视频信号。
参考地址确定单元79通过控制总线76获得通过控制总线19从CPU20提供的控制信号,并且基于该控制信号控制存储器控制器81从视频存储体存储器82中读出存储为P-图片的前面的参考图像的帧图像数据或者存储为B-图片的前面的和后面的参考图像的帧图像数据,并且将读出的帧图像数据提供到解码处理器77。
输出地址确定单元80通过控制总线76获得通过控制总线19从CPU20提供的控制信号,并且基于该控制信号根据视频存储体存储器82中存储的帧图像数据指定输出图像的存储体,即,要被显示的帧的存储体,并且控制存储器控制器81读出输出图像。
存储器控制器81控制从视频存储体存储器82读出以及向视频存储体存储器82写入帧图像。与图1中所示的作为SDRAM的存储器41,42,和43的记录区域的部分相应的视频存储体存储器82是在存储器控制器81的控制下用于存储指定存储体中图像数据的每个帧的8-存储体帧图像存储体存储器。
下面参照图3的流程图描述由CPU11执行的控制处理。
步骤S1中,CPU11控制北桥12和南桥15从HDD16读出压缩编码流数据中的、由用户指定的、要被解码和输出的多个GOP。
步骤S2中,CPU11通过PCI总线14将读出的流数据提供到PCI桥17并且将该流数据传送到存储器18。
步骤S3中,CPU11通过经由北桥12和PCI总线14将数据传送完成消息和图片信息提供到PCI桥17的命令缓冲器31而将数据传送完成消息和与传送到存储器18的GOP中包含的图片相关的图片信息发送到CPU20。所述图片信息包括例如图片类型,与每个图片的头部相关的头部信息,以及图片大小。
步骤S4中,CPU11从CPU20和存储器18接收准备好消息。更具钵地说,CPU11通过PCI总线14和北桥12响应由CPU20通过控制总线19提供到结果缓冲器32的数据传送完成消息和图片信息读出结果到结果缓冲器32,并且也通过PCI桥17,PCI总线14,以及北桥12从存储器18接收表示已经存储了GOP流数据的消息。
步骤S5中,CPU11通过操作输入单元(未示出),从用户接收开始重放输出处理的指令,并且通过北桥12和PCI总线14将解码开始命令发送到命令缓冲器31并且使解码器22,23,或24开始解码处理。解码开始命令包括显示速度信息。
步骤S6中,CPU11通过北桥12和PCI总线14将显示开始命令发送到命令缓冲器31。步骤S7中,CPU11开始显示SDI信号的一个GOP,SDI信号即由相应的解码器解码的基带图像信号。
步骤S8中,CPU11检测出已经显示了一个GOP。更具体地说,CPU11通过经由PCI总线14和北桥12响应通过控制总线19从CPU20提供到结果缓冲器32的显示开始命令响应读取结果而检查哪个图片已经被显示,该显示开始命令即如下所述的、指示已经显示了每一帧的图19的步骤S194中由CPU20写入到结果缓冲器32中的显示完成消息。
步骤S9中,CPU11确定所显示的GOP是否为流数据的最后的GOP。如果提现所显示的GOP是最后的GOP,处理结束。
如果步骤S9确定所显示的GOP不是最后的GOP,过程转到步骤S10以基于从操作输入单元(未示出)提供的信号确定是否已经从用户输入了用于改变输入流状态(例如完成重放流数据),改变正在重放的流数据,或者改变重放速度或方向的指令。
如果步骤S10发现了用于改变输入流状态的指令,过程转到步骤S11,在步骤S11,CPU11通过北桥12和PCI总线14将与用户操作相应的命令发送到命令缓冲器31。
如果步骤S10确定还没有输入用于改变输入流状态的指令,或者步骤S11之后,过程转到步骤S12以确定HDD16中是否有要被显示的任何流数据。如果步骤S12确定没有要被显示的流数据,过程返回步骤S7以处理传送到存储器18的流数据。
如果步骤S12确定有要被显示的流数据,程序转到步骤S13,在步骤S13,CPU11控制北桥12和南桥15从HDD16中读出流数据的下一个GOP。
步骤S14中,CPU11通过PCI总线14将读出的GOP提供到PCI桥17并且将该GOP传送到存储器18。也就是说,除了当要重放的流数据的末尾部分被存储时,预定数量的GOP基本上存储到存储器18中。
步骤S15中,通过将数据传送完成消息和图片信息经由北桥21和PCI总线14提供到命令缓冲器31中,CPU11将数据传送完成消息以及与传送到存储器18的GOP中包含的图片相关的图片信息传送到CPU20。图片信息包括,例如,每个图片的类型和大小。
步骤S16中,CPU11从CPU20和存储器18中接收准备好消息。更具体地说,CPU11通过PCI总线14和北桥12响应通过控制总线19从CPU20提供到结果缓冲器32中的数据传送完成消息和图片信息而读取结果,并且也通过PCI桥17,PCI总线14,以及北桥12从存储器18接收表示已经存储了GOP流数据的消息。
步骤S16之后,过程转到步骤S7,并且执行后面的处理。
根据上述的处理,通过将命令提供到CPU20并且响应所提供的命令接收结果,CPU11可以控制流数据的解码以及被解码数据的显示。
该处理中,在GOP的单元中显示解码数据。当将由相应的解码器解码的SDI信号输出到外部源时,CPU11可以执行与上述的处理相同的处理。因此,通过将命令提供到CPU20并且响应所提供的命令接收结果,CPU11可以控制流数据的解码并且将所解码的数据输出到外部源。
然后CPU20根据从CPU11提供的命令控制由多个解码器(图1中的解码器22,23,和24)执行的解码处理。更具钵地说,CPU20选择用于解码的解码器22,23,或24,例如,压缩编码视频数据被提供到的解码器22,23,或24。CPU20也根据输入流数据到所选解码器的定时,每个图片的解码定时,解码处理中存储钵存储器的分配,以及解码图片的输出定时即显示定时,来控制PCI桥17,解码器22,23,和24,以及选择器25。下面参照图4到34讨论CPU20执行的解码和显示输出控制操作。
存储器21具有多个用于存储不同类型信息的寄存器和信息队列,以便允许CPU20控制解码器22,23,和24的解码处理以及从选择器25输出的SDI信号的选择处理。信息队列是先入先出(FIFO)队列,其中从CPU11提供的命令,与图片类型信息相关的图片ID,以及伴随着图片ID的信息可以根据解码定时调度或解码/显示控制目的以预定的深度被存储。伴随着图片ID的信息包括,例如,时间信息,其他帧的解码,以及由相应的图片参考的用于计数图片数量的计数器。
CPU20通过使用存储在相应信息队列中的信息来控制解码和显示定时。也就是说,代替存储器21中的排队图片,在CPU20的控制下,图片ID被存储到相应的信息队列中,从而允许CPU20执行用于控制解码和显示定时的计算。
存储不同类型信息并且用于CPU20的不同控制操作的信息队列包括:存储通过控制总线19从命令缓冲器31获得的命令的命令队列;输入图片队列,其中与队列相应的输入图片的图片ID按照编码顺序被存储;显示顺序信息队列,其中按照显示顺序重新排序的输入图片队列中存储的图片ID被存储;I/P-图片解码队列,其中从显示顺序信息队列中存储的图片ID提取并且以解码顺序重新排列的I-图片和P-图片被存储;时间-信息I/P图片解码队列,其中,除了I/P-图片解码队列中设置的图片ID,与图片ID相应的时间信息被存储;B-图片解码队列,其中从显示顺序信息队列中存储的图片ID提取并且按照解码顺序重新排列的B-图片被存储;时间-信息B-图片解码队列,其中,除了B-图片解码队列中设置的图片ID,与图片ID相应的时间信息被存储;按照显示顺序设置图片ID的显示顺序设置队列;以及时间-信息显示顺序设置队列,其中,除了显示顺序设置队列中设置的图片ID,与图片ID相关的时间信息被存储。下面讨论各个队列中存储的信息详情,队列的深度,以及通过使用信息执行的处理。
下面参照图4的流程图描述对每个帧执行的处理。对于每个帧该处理例程被重复,直到已经处理了将要显示的流数据或者直到提供了完成显示操作指令。
步骤S31中,执行输入流状态改变处理,下面参照图5详细地描述它。在输入流状态改变处理中,CPU20检查从CPU11发出的新命令。
步骤S32中,执行解码调度处理,下面参照图6详细地描述它。在解码调度处理中,调度解码定时。
步骤S33中,执行帧控制处理,下面参照图19详细地描述它。在帧控制处理中,解码目标帧。
步骤S34中,CPU20确定是否已经处理了所有的帧。如果步骤S34中确定还没处理完所有的帧,过程转到步骤S35,在步骤S35中CPU20以帧为单位增加时间计数器。然后,过程返回步骤S31,并且重复后面的处理。
如果步骤S34中确定已经处理了所有的帧,处理完成。
根据图4中所示的处理,CPU20增加每个帧的时间计数器,并且根据用户指示的重放速度调度解码处理以及允许相应的解码器解码每个帧。
下面参照图5的流程图讨论图4的步骤S31中输入流状态改变处理的细节。
步骤S51中,CPU20检查存储来自命令缓冲器31的命令的命令队列。
步骤S52中,CPU20确定用于改变输入流状态诸如用于改变重放速度和重放方向或者用于结束重放操作的新命令,是否存储在命令队列中。
如果步骤S52中确定存储了新命令,过程转到步骤S53,在该步骤中CPU20根据最早存储在命令队列中的命令改变输入流的状态,例如,重放速度和重放方向。如果步骤S52中确定命令队列中没有存储新命令,或者步骤S53之后,过程返回图4中的步骤S31。
根据该处理,最早存储在命令队列中的命令被检查,该命令队列存储从命令缓冲器31获得的命令,并且根据该命令,改变输入流的状态。
下面参照图6的流程图描述在图5的步骤S32中执行的解码调度处理的细节。
步骤S71中,CPU20参考输入图片队列来确定输入图片队列是否为空。输入图片队列是一个信息队列,它在步骤S72中执行的输入处理中被设置,该队列存储进行解码调度的输入图片的图片ID以及调度所需的图片。
现在假设重放装置1中处理的流数据是MPEG长GOP流数据,每个GOP包括15个图片,诸如图7中所示的。执行每组15个图片的解码处理的每个解码器22,23,和24接收总共16个图片,即,一个GOP的除了按显示顺序的头两个B-图片的13个图片以及后面的GOP的头三个IBB-图片(在正向重放操作的情况下)或者后面的GOP的头三个IBB-图片(在反向重放操作的情况下)。
下面参照图8A和8B讨论分配到解码器22,23和24的解码单元。图8A和8B中,提供到解码器22,23,和24的图片的排列以显示顺序被示出。重放装置1中,具有15个图片的每个GOP在解码器22,23,和24之一中被解码。如上所述,每个解码器22,23,和24接收总共16个图片,即,一个GOP的除了按显示顺序的头两个B-图片的13个图片和前面或后面的GOP的头三个图片。也就是说,如果重放方向是正向,如图8A中所示,从解码器22,23,和24中选择的第一个解码器接收第一个GOP中除了头两个B-图片的13个图片以及第二个GOP的头三个图片,而第二个解码器接收第二个GOP的除了按显示顺序的头两个B-图片的13个图片以及第三个GOP的头三个图片。同样,第三个解码器接收第三个GOP中除了头两个图片的13个图片和第四个GOP的头三个图片。如果重放方向是反向,如图8B中所示,从解码器22,23,和24中选择的第一个解码器接收第二个GOP的除了头两个B-图片的13个图片和第三个GOP的头三个图片,而第二个解码器接收第一个GOP的除了头两个B-图片的13个图片和第二个GOP的头三个图片。
输入图片队列中,设置要进行解码调度的输入图片的图片ID以及调度所需的图片。也就是说,输入图片队列中,总共18个图片的图片ID,即,存储一个GOP的15个图片的图片ID和MPEG长GOP流数据的前面或后面的GOP的头三个IBB-图片。
图9A说明了存储在输入图片队列中用于执行正向重放操作的MPEG长GOP流数据的第一个GOP的15个图片以及第二个GOP的头三个IBB-图片的图片ID,该第二个GOP在第一个GOP之后。图9B说明了存储在输入图片队列中用于执行反向重放操作的MPEG长GOP流数据的第二个GOP的15个图片以及第三个GOP的头三个IBB-图片的图片ID,该第三个GOP在第二个GOP之前。
如果步骤S71中确定输入图片队列不为空,则过程返回图4的步骤S32。也就是说,在解码调度处理中,总共16个图片作为处理单元被处理,即,从GOP的第三个图片到第15个图片的13个图片以及后面的GOP的头三个图片。
如果步骤S71中确定输入图片队列为空,执行步骤S72中的输入处理,下面参照图11的流程图讨论该输入处理。
步骤S73中,CPU20根据表示接收后面数据的解码器的寄存器的值来确定时间-信息显示顺序设置队列是否为空,该队列根据接收后面数据的解码器被设置。时间-信息显示顺序设置队列是步骤S77中用于多个解码器(图1中的解码器22,23,和24)的每一个的时间-信息调度确定处理中设置的队列。下面参照图18的流程图给出时间-信息调度确定处理的细节。
如果步骤S73中确定与接收后面数据的解码器相应的时间-信息显示顺序设置队列不为空,也就是说,如果解码处理或显示处理正对调度GOP的图片的每个帧执行,则过程返回图4的步骤S32。
如果步骤S73中确定时间信息显示顺序设置队列为空,则过程转到CPU20执行重新排序处理的步骤S74。在重新排序处理中,输入图片队列中设置的以编码顺序排列的18个图片的图片ID以显示顺序被重新排列并且在显示顺序信息队列中被设置。
因此,如果重放方向是正向,以图10A中所示的显示顺序被重新排列的如参照图9A所讨论的输入图片队列中设置的图片ID,在显示顺序信息队列中被设置。如果重放方向是反向,以图10B中所示的显示顺序被重新排列的如参照图9B所讨论的输入图片队列中设置的图片ID,在显示顺序信息队列中被设置。
当步骤S74中执行重新排序处理以设置显示顺序信息队列中的图片IDs时,输入图片队列中被排序的所有图片ID被输出并且输入图片队列变为空。也就是说,如果步骤S71中确定输入图片队列为空,则意味着在输入图片队列中排列的图片ID被重新排序。如果步骤S71中确定输入图片队列不为空,则意味着由于前面的解码调度处理中执行步骤S72的输入处理之后与接收后面数据的解码器相应的时间-信息显示顺序设置队列不为空,步骤S74中的重新排序处理不被执行。
步骤S75中,执行解码设置处理,下面参照图12和13讨论该处理。在解码设置处理中,设置用于每个图片的参考计数器,根据显示速度设置以及I-图片和P-图片的解码顺序选择将要显示的图片,并且设置将要显示的B-图片。
步骤S76中,执行显示阶段确定处理,下面参照图17讨论该处理。在显示阶段确定处理中,确定处理单元中解码开始定时和显示开始定时之间的位移,该处理单元等于包括15个帧的一个GOP和一个帧。
步骤S77中,执行时间-信息调度确定处理,下面参照图18的流程图讨论该处理。在时间-信息调度确定处理中,为了控制每个帧的解码定时,进行解码的调度,并且与图片ID相关联地在预定信息队列中设置时间信息。
步骤S76和S77中,调度解码定时和显示定时。更具体地说,在解码I-图片和P-图片之后解码B-图片。当显示图像的头是I-图片或P-图片时,诸如当重放操作类型和重放速度是普通和正向时,设置解码定时和显示定时以便显示开始定时从解码开始定时位移6个图片。当显示图像的头是B-图片时,诸如当重放方向是反向时,换句话说,当速度设置表示负值时,设置解码定时和显示定时以便显示开始定时从解码开始定时位移7个图片。也就是说,B-图片的解码定时从B-图片的显示定时位移一帧。
步骤S78中,CPU20切换接收后面数据的解码器。更具体地说,当表示接收后面数据的解码器的寄存器的值等于比解码器(图1中所示的重放装置1中的3)的数量小1的值(例如,图1中所示的重放装置1中的2)时,CPU20将寄存器的值设置为0。当寄存器的值比解码器的数量小2或更多时,CPU20将寄存器的值加1。步骤S78之后,过程返回图4中的步骤S32。
根据上述的处理,调度解码定时和显示定时。
现在参照图11的流程图给出图6中的步骤S72中执行的输入处理的说明。
步骤S101中,CPU20获得图3的步骤S5中由CPU11传送到命令缓冲器31的解码开始命令中包含的显示速度信息或者从响应图3的步骤S11中用户的输入由CPU11发送到命令缓冲器31的命令中获得速度设置值,并且将所获得的信息存储到存储器21中。如果速度设置值是正的,则重放方向是正向,而如果速度设置值是负的,则重放方向是反向。
速度设置值如下被确定。如果速度设置值是1,则执行普通的重放操作。如果速度设置值大于1,则执行快速重放操作。如果速度设置值是比1小的正值,则执行低速重放操作。如果速度设置值是-1,则执行正常速度的反向重放操作。如果速度设置值小于-1,则执行快速反向重放操作。如果速度设置值是绝对值小于1的负值,则执行低速反向重放操作。
然后CPU11在步骤102中根据步骤S101中获得的速度设置值是正还是负来确定要执行的处理是正向重放操作还是反向重放操作。
如果步骤S102中发现重放方向为正向,则过程转到步骤S103。步骤S103中,CPU20设置在参考图9A讨论的输入图片队列中要被解码的GOP的头开始的13个帧以及后面GOP的I-,B-,和B-图片的图片ID。
如果步骤S102中确定重放方向不是正向,也就是说,重放方向是反向,则过程转到步骤S104。步骤S104中,CPU20设置在参考图9B讨论的输入图片队列中从将要解码的GOP的末尾开始的13个帧以及前面GOP的I-,B-,和B-图片的图片ID。
步骤S103或S104之后,步骤S105中,CPU20根据输入图片队列和表示接收后面数据的解码器的寄存器的值的设置来控制PCI桥17将存储在存储器18中的流数据中的参照图8A和8B讨论的16帧压缩图像数据传送到从解码器22,23,和24选择的预定解码器。在这种情况下,对于流数据的第一个GOP,寄存器的值是初始化设置中所确定的值,而对于第二个或后面的GOP,寄存器的值是图6的步骤S78中所确定的值。
解码器22,23,或24中,输入处理器71将16帧数据提供到存储器控制器74并且将该数据存储到输入缓冲器75中。输入处理器71也将与每个图片的例如头地址、数据大小、图片大小信息以及Q矩阵相关的信息提供到地址管理表72并且将每个图片的信息存储为可以由表ID识别的表信息。
步骤S106中,CPU20通过将表示已经将一个GOP流传送到预定的解码器的结果通过控制总线19提供到PCI桥17的结果缓冲器32而将流传送完成消息发送到CPU11。然后程序返回图6的步骤S72。
根据输入处理,16帧数据被提供到解码器22,23,或24,该数据作为参照图8A和8B讨论的解码处理单元。
现在参照图12和13的流程图给出图6的步骤S75中执行的解码设置处理的说明。
步骤S111中,CPU20根据显示顺序信息队列中设置的图片ID设置参考计数器的指针。参考计数器包括自参考计数器,前面的参考计数器,以及后面的参考计数器,根据显示顺序的每个图片来设置每个计数器。参考计数器的指针如下设置。例如,如果图片ID被存储在显示顺序信息队列中,诸如在B(0),B(1),I(2),B(3),B(4),P(5),B(6),B(7),P(8),B(9),B(10),P(11),B(12),B(13),P(14),B(15),B(16),和I(17)中,从B图片(3)的角度来看,表示B图片的显示顺序的指针3被设置为自参考指针,表示I(2)的显示顺序的指针2被设置为前面的参考指针,其中I(2)是前面的参考图像,而表示P(5)的显示顺序的指针5被设置为后面的参考指针,其中P(5)是后面的参考图像。
步骤S112中,CPU20确定目标帧是否为速度设置被改变之后第一个GOP的第一个帧。
如果步骤S112中发现目标帧是第一个GOP的第一个帧,过程转到步骤S113,在该步骤中CPU20根据速度设置值确定省略周期,并且在寄存器中存储所确定的省略周期。
更具体地说,当重放速度为x2或x-2时,CPU20将省略周期设置为1/2并且将它存储到寄存器中。当重放速度为x3或x-3时,CPU20将省略周期设置为1/3并且将它存储到寄存器中。
步骤S114中,CPU20重新设置用于计数帧的数量而不管解码处理单元的帧计数器。
如果步骤S112中确定速度设置被改变之后目标帧不是第一个GOP的第一个帧,或者步骤S114之后,过程转到步骤S115以确定显示顺序信息队列中是否有信息。
如果步骤S115中确定显示顺序信息队列中没有信息,则过程返回到图6的步骤S75。如果步骤S115中显示顺序信息队列中有信息,过程转到步骤S116以确定将在下面被描述的信息顺序设置队列中将要设置的预定15帧中是否包含显示顺序信息队列的头处的信息,更具钵地说,如果图片ID,诸如,B(0),B(1),I(2),B(3),B(4),P(5),B(6),B(7),P(8),B(9),B(10),P(11),B(12),B(13),P(14),B(15),B(16),和I(17)被存储在显示顺序信息队列中,确定信息是否包含在I(2),B(3),B(4),P(5),B(6),B(7),P(8),B(9),B(10),P(11),B(12),B(13),P(14),B(15),和B(16)中。
如果步骤S116中确定显示顺序信息队列的头处的信息包含在预定的15帧中,则过程转到步骤S117,在该步骤中CPU20将帧计数器加1。
如果步骤S116中确定该信息没有包含在预定的15帧中,则过程转到步骤S118。步骤S118中,如果显示顺序信息队列的头处的图片ID的图片是不将被解码的图片,更具钵地说,如果图片ID存储在显示顺序信息队列中,诸如B(0),B(1),I(2),B(3),B(4),P(5),B(6),B(7),P(8),B(9),B(10),P(11),B(12),B(13),P(14),B(15),B(16),和I(17)中,并且如果图片是头两个图片B(0)和B(1)之一,则从信息顺序信息队列中删除图片ID。
步骤S117或S118之后,图13的步骤S119中,CPU20根据步骤S113中存储在寄存器中的省略周期和帧计数器的值来确定是否要显示目标帧。更具体地说,如果当省略周期为1/2时帧计数器指示2n(n是正整数),则CPU20确定将显示目标帧,而在其他情况下,CPU20确定不显示目标帧。如果当省略周期为1/3时帧计数器指示3n(n是正整数),则CPU20确定将显示目标帧,而在其他情况下,CPU20确定不显示目标帧。如果步骤S119中确定不显示目标帧,即,目标帧将被省略,则过程转到步骤S124。
如果步骤S119中确定将要显示目标帧,即,基本帧不被省略,则过程转到步骤S120,在该步骤中CPU20将自参考计数器加1。也就是说,CPU20将表示目标帧的显示顺序的自参考计数器加1,该目标帧由自参考计数器的指针表示。
步骤S121中,CPU20设置显示顺序设置队列中将被显示的图片的图片ID。
步骤S122中,CPU20确定在步骤S121的显示顺序设置队列中设置的图片ID是否为B-图片。
如果步骤S122中发现图片ID是B-图片,则过程转到步骤S123,在该步骤中CPU20根据参考计数器的指针将前面的参考计数器和后面的参考计数器加1。更具体地说,步骤S123中,如果目标帧为B(3),指针2被设置为前面的参考指针而指针5被设置为后面的参考指针,如上所述,因此CPU20将前面的参考计数器I(2)和后面的参考计数器P(5)加1。
如果步骤S119中确定不显示所讨论的帧,即,所讨论的帧要被省略,或者如果步骤S122中确定图片ID不是B-图片,则过程转到步骤S124以确定目标帧的图片ID是否为P-图片。
如果步骤S124中发现图片ID是P-图片,过程转到步骤S125,在该步骤中CPU20根据参考计数器的指针将前面的参考计数器加1。更具钵地说,步骤S125中,如果目标帧是P(5),则指针2被设置为前面的参考指针。因此CPU20将前面的参考计数器I(2)加1。
如果步骤S124中确定图片ID不是P-图片,过程转到步骤S126以确定图片ID是否为I-图片。
步骤S123或S125之后,或者如果步骤S126中发现图片ID为I-图片时,过程转到步骤S127,在该步骤中CPU20在相应的解码队列中设置图片ID并且从显示顺序信息队列中删除它。更具体地说,步骤S127中,CPU20设置在B-图片解码队列中将要显示的B-图片的图片ID,或者设置I/P-图片解码队列中的I-图片或P-图片的图片ID而不管它是否被显示。然后过程返回步骤S115,并且重复相应的处理。
I/P-图片解码队列是这样的队列,该队列中以解码顺序设置在B-图片之前被解码的I-图片和P-图片的图片ID。B-图片解码队列是这样的队列,该队列中以解码顺序设置将要显示的B-图片即不被省略的B-图片的图片ID。
如果步骤S126中确定图片ID不是I-图片,过程转到步骤S128,在该步骤中从显示顺序信息队列中删除不被显示的相应B-图片的图片ID。然后过程返回步骤S115,而重复相应的处理。
根据解码设置处理,参考计数器被设置,根据重放速度省略相应的图片,并且显示顺序设置队列,I/P-图片解码队列,和B-图片解码队列被设置。
图14A和14B分别说明了当不省略图片而执行正常速度正向重放操作和正常速度反向重放操作时的显示顺序设置队列。在执行正向重放操作时的重放顺序设置队列中,如图14A中所示,以显示顺序设置图10A中所示的显示顺序信息队列中排序的18个图片ID,除去头两个B-图片和最后的I图片,即,15个图片ID,即,被提供到解码器22,23,和24之一的图8A中所示的16个图片ID除去最后的I-图片。
在执行反向重放操作时的显示顺序设置队列中,如图14B所示,以显示顺序设置如图10B中所示的显示顺序信息队列中排序的18个图片ID,除去头两个B-图片和最后的I图片,即15个图片ID,即提供给解码器22,23,24之一的如图8B所示的16个图片ID,除去最后的I-图片。
当执行快速正向或反向重放操作时,不在图14A和14B中所示的显示顺序设置队列中设置被确定为不基于省略周期显示的图片的图片ID和帧计数器。也就是说,当执行快速正向或反向重放操作时,在显示顺序设置队列中设置15个或更少的图片ID。
图15A和15B分别说明了当执行快速正向重放操作和反向重放操作时的I/P-图片解码队列。在执行正向重放操作时的I/P-图片解码队列中,如图15A中所示,设置与图10A中所示的显示顺序信息队列中设置的图片ID的I-图片和P-图片相应的6个图片的图片ID。在执行反向重放操作时的I/P-图片解码队列中,如图15B中所示,设置与图10B中所示的显示顺序信息队列中设置的图片ID的I-图片和P-图片相应的6个图片的图片ID。
图16A和16B分别说明了当不省略图片而执行正常速度正向重放操作和正常速度反向重放操作时的B-图片解码队列。在执行正向重放操作时的B-图片解码队列中,如图16A中所示,设置图10A中所示的显示顺序信息队列中设置的图片ID中的与要被显示的B-图片相应的10个图片的图片ID。在执行反向重放操作时的B-图片解码队列中,如图16B中所示,设置图10B中所示的显示顺序信息队列中设置的图片ID中的与要被显示的B-图片相应的10个图片的图片ID。
当执行快速正向或反向重放操作时,不在图16A或16B中所示的B-图片解码队列中设置被确定为基于省略周期显示的图片的图片ID和帧计数器。也就是说,当执行快速正向或反向重放操作时,在B-图片解码队列中设置10个或更少的图片IDs。
通过执行解码设置处理,只有将要显示的B-图片被解码,而将要省略的B-图片不提供到解码处理器77。将要省略的L图片或P-图片不被显示,虽然它们被解码。
独立于GOP地,连续增加帧计数器而不复位,直到速度设置被改变,即,直到输入流状态被改变。有时根据GOP改变不被显示的图片的位置,因为例如当一个GOP包括15个帧并且当重放速度为x2,x4,x-2或x-4时省略周期的分母是不能整除组成一个GOP的帧数的值。即使在这种情况下,可以根据省略周期容易地确定是否通过使用表示帧顺序的帧计数器的值在输入流中显示目标图片。
用这样的方式,B-图片在被输入到解码器之前被省略,而I-图片和P-图片以规则间隔被省略而不用在解码之后显示,从而通过遵循速度中的动态改变执行快速重放操作。由于I-图片和P-图片可以在解码期间被其他图片被用作参考图片,该方法在通过用存储器中的最小数量的存储体以规则间隔省略图片而执行快速重放操作时有效。
下面参照图17的流程图描述显示相位确定处理,该处理用于设置相对于图6的步骤S76中执行的解码开始定时而延迟显示开始定时的相位。
步骤S131中,CPU20将与图14A和14B中所示的显示顺序设置队列中设置的要被显示的图片的数量相关的信息存储到显示图片数量寄存器中。由于在图14A和14B中的显示顺序设置队列中设置了15个图片的图片ID,15被设置到显示图片数量寄存器中。
步骤S132中,CPU20将要被解码的I-图片和P-图片的总数存储到I/P-图片数量寄存器中,要被解码的I-图片和P-图片存储在图15A和15B中所示的I/P-图片解码队列中。由于在图15A和15B中所示的I/P-图片解码队列中设置了6个图片的图片ID,6被存储到I/P-图片数量寄存器中。
步骤S133中,CPU20确定在显示顺序设置队列的头处设置的图片ID的图片类型是否为B-图片。换句话说,当在正常速度正向或反向重放操作中计算相移时,步骤S133中确定重放方向是正向还是反向。执行快速重放操作中的图片省略之后,即使显示顺序设置队列的头处的图片ID的图片类型是B-图片,重放方向根据重放速度可能是正向或反向。
如果步骤S133中发现显示顺序设置队列的头处的图片ID的图片类型为B-图片,过程转到步骤S134。步骤S134中,CPU20把通过将要被解码的I-图片和P-图片的总数加一而获得的数量设置为在显示顺序设置队列中设置的图片ID的图片的显示开始定时距离在I/P-图片解码队列中设置的图片ID的I-图片和P-图片的解码开始定时的时间上的相移disp_phase。
例如,当重放速度为x-1时,显示顺序设置队列的头处的图片ID的图片类型为B-图片。解码I-图片和P-图片之后,解码B-图片以便B-图片的显示定时从I-图片和P-图片的解码定时位移7个图片,结果B-图片的显示定时从B-图片的解码定时位移一帧。
如果步骤S133中确定显示顺序设置队列的头处的图片ID的图片类型不是B-图片,过程转到步骤S135。步骤S135中,CPU20把将要被解码的I-图片和P-图片的总数设置为在显示顺序设置队列中设置的图片ID的图片的显示开始定时距离在I/P-图片解码队列中设置的图片ID的I-图片和P-图片的解码开始定时的时间上的相移disp_phase。
例如,当重放速度为x1时,显示顺序设置队列的头处的图片ID的图片类型不是B-图片而是I-图片。解码I-图片和P-图片之后,解码B-图片以便I-图片的显示定时从I-图片和P-图片的解码定时位移6个图片,结果B-图片的显示定时从B-图片的解码定时位移一帧。
步骤S134或S135之后,步骤S136中,CPU20将在步骤S134或S135中确定的显示相移disp_phase存储到内置寄存器中。
步骤S137中,CPU20确定目标GOP是否为显示开始GOP(包括目标GOP位于重放速度被改变之后重新开始重放操作的位置的情况)。
如果步骤S137中确定目标GOP不是显示开始GOP,过程转到步骤S138。步骤S138中,CPU20从步骤S134或S135中确定的显示相移disp_phase中提取在前面的处理中的前面的GOP中的相移prev_disp_phase,并且作为位移校正值disp_zero将该结果值存储到内置寄存器中。CPU20也将步骤S134或S135中确定的显示相移disp_phase代入前面GOP的显示相移prev_disp_phase中。然后过程返回到图6的步骤S76中。
如果步骤S137中确定目标GOP是显示开始GOP,过程转到步骤S139,在该步骤中CPU20将内置寄存器中的初始值0设置为位移校正值disp_zero。然后过程返回到图6的步骤S76中。
根据显示相位确定处理,可以确定相对于解码开始定时延迟显示开始定时的相位。
下面参照图18的流程图描述图6的步骤S77中执行的时间-信息调度确定处理。
步骤S161中,CPU20根据等式(1)使用前面解码处理单元的解码开始时间信息prev_time_base和相移校正值disp_zero来计算表示将在解码器22,23,和24之一中解码作为解码处理单元的16个图片的第一个帧的定时的解码开始时间信息time_base。
解码开始时间信息time_base=前面GOP的解码开始时间信息prev_time_base-相移校正值disp_zero
...等式(1)
为了使用等式(1)计算用于显示开始GOP的解码开始时间信息,前面GOP的解码开始时间信息prev_time_base被设置为零。
步骤S162中,CPU20为接收后面数据的解码器设置时间-信息I/P-图片解码队列。
时间-信息I/P-图片解码队列中,要解码的第一个图片的解码开始时间信息time_base以及用于计数每个帧的时间计数器的计数值与参照图15A和15B讨论的I/P-图片解码队列中设置的图片ID相关联地设置。为重放装置1的每个解码器22,23,和24提供时间-信息I/P-图片解码队列。
更具体地说,CPU20通过参考表示接收后面数据的解码器的寄存器的值为接收后面数据的解码器设置时间-信息I/P-图片解码队列。CPU20使用解码开始时间信息time_base作为表示与I/P-图片解码队列中排序的图片ID的第一个图片ID相应的帧被解码的定时的信息,并且使用时间计数器的计数值作为表示与其他图片ID相应的帧被解码的定时的信息。
当在步骤S162中设置时间-信息I/P-图片解码队列时,由于在I/P-图片解码队列中排序的所有图片ID被输出,I/P-图片解码队列变为空。
步骤S163中,CPU20为接收后面数据的解码器设置时间-信息B-图片解码队列。
在时间-信息B-图片解码队列中,与要被解码的第一个图片的解码开始时间time_base相关的信息,I-图片和P-图片的数量,以及从用于计数每个帧的时间计数器的计数值中计算的时间信息被与参照图16A和16B所讨论的B图片解码队列中设置的图片ID相关联地设置。为重放装置1的每个解码器22,23,和24提供时间-信息B-图片解码队列。
更具体地说,CPU20通过参考表示接收后面数据的解码器的寄存器的值为接收后面数据的解码器设置时间-信息B-图片解码队列。CPU20使用通过将I-帧和P-帧的数量加到解码开始时间信息time_base所获得的值作为表示与B-图片解码队列中排序的图片ID的第一个图片ID相应的帧被解码的定时的信息,也使用时间计数器的计数值作为表示与其他图片ID相应的帧被解码的定时的信息。
当在步骤S163中设置时间-信息B-图片解码队列时,由于在B-图片解码队列中排序的所有图片ID被输出,B-图片解码队列变为空。
步骤S164中,CPU20为接收后面数据的解码器设置时间-信息显示顺序设置队列。
在时间-信息显示顺序设置队列中,通过从显示定时相对于将要显示的第一个图片的解码开始定时的相移减1而获得的值以及时间计数器的计数值被与参照图14A和14B所讨论的显示顺序设置队列中设置的图片ID相关联地设置。为重放装置1的每个解码器22,23,和24提供时间-信息显示顺序设置队列。
更具体地说,CPU20通过参考表示接收后面数据的解码器的寄存器的值为接收后面数据的解码器设置时间-信息显示顺序设置队列。CPU20使用通过从表示按显示相位确定处理中所确定的显示顺序的第一个帧的显示定时的相移disp_phase减一而获得的值,作为参考时间信息,并且使用时间计数器的计数值作为表示与其他图片ID相应的帧被解码的定时的信息。
当在步骤S164中设置时间-信息显示顺序设置队列时,由于在显示顺序设置队列中排序的所有图片ID被输出,显示顺序设置队列变为空。
步骤S165中,CPU20将通过把将要显示的图片的数量加到解码开始时间信息time_base中而获得的值存储到寄存器中作为前面的GOP的解码开始时间信息prev_time_base,该将要显示的图片数量在图17的步骤S131中被存储到显示图片数量寄存器中。过程随后返回到图6的步骤S77。
根据时间-信息调度确定处理,作为解码处理单元的16个帧的解码处理定时被设置。
根据分别参照图17和18所讨论的显示相位确定处理和时间-信息调度确定处理,基于I-图片和P-图片的数量,将要显示的图片的数量,以及将要显示的第一个图片是否为B-图片将解码相位和显示相位设置为时间信息。因此,通过根据每个解码器中将要解码和显示的图片的数量的改变动态地改变速度而可以连续地显示解码图像,这是在通过使用多个解码器执行快速正向和反向重放操作时发生的。即使响应从特定图片开始改变重放速度的指令改变了省略周期,也可以通过增加或减少将要显示的图片的数量而在相应速度范围内对于每个帧连续地改变重放速度。
根据参照图6到18所讨论的处理,可以执行图4的步骤S32中的解码调度处理。
下面参照图19的流程图讨论图4的步骤S33中执行的帧控制处理。
步骤S191中,CPU20通过参考时间-信息I/P-图片解码队列和用于管理重放装置1中执行的每个处理的定时的时间管理计数器来确定是否存在任何显示时间已过的流数据。如果步骤S191中确定存在显示时间已过的流数据,则过程转到步骤S196。
如果步骤S191中确定不存在显示时间已过的流数据,过程转到执行解码处理的步骤S192,下面参照图20讨论该解码处理。
步骤S193中,执行显示处理,下面参照图21讨论该显示处理。
步骤S194中,CPU20通过响应图3的步骤S6中从CPU11发送的显示开始命令将显示图片信息通过控制总线19写入到PCI桥17的结果缓冲器32中而将显示图片信息发送到CPU11。这使得CPU11能够通过参考结果缓冲器32中存储的显示图片信息而知道哪个GOP的哪个图片将要被显示。
步骤S195中,CPU20增加时间管理计数器,而过程返回图4的步骤S33。
如果步骤S191中确定存在显示时间已过的流数据,过程转到执行下溢处理的步骤S196,下面参照图32描述下益处理。然后过程返回图4的步骤S33。
根据帧控制处理,如果不存在显示时间已过的流数据,根据解码调度解码一个帧,并且显示图片信息被发送到CPU11,并且某些图片被省略。如果存在显示时间已过的流数据,执行下面描述的下溢处理。
现在参照图20的流程图给出图19的步骤S192中执行的解码处理的说明。
步骤S221中,CPU20确定时间管理计数器的值是否与时间信息相匹配,该图片信息与后面将要解码的图片的图片ID相关联并且设置在时间-信息I/P-图片解码队列或时间-信息B-图片解码队列中。如果步骤S221中确定时间管理计数器的值与时间信息不匹配,过程返回图19的步骤S192。
如果步骤S221中确定时间管理计数器的值与时间信息相匹配,过程转到步骤S222。步骤S222中,CPU20通过控制总线19从相应的解码器22,23,或24中获得与解码器22,23,或24的视频存储体存储器82中的空存储钵相关的信息。
步骤S223中,CPU20通过控制总线19控制相应的解码器22,23,或24解码其时间信息与时间管理计数器的值相匹配的I-图片,P-图片,或B-图片,并且从时间-信息I/P-图片解码队列或时间-信息B-图片解码队列中删除解码图片的图片ID。
更具体地说,CPU20参考表示接收后面数据的解码器的寄存器的值,并且控制相应解码器的基本-流地址确定单元73以便允许存储器控制器74从输入缓冲器75中读取与在时间-信息I/P-图片解码队列或时间-信息B-图片解码队列中设置的图片ID中的其时间信息匹配于时间管理计数器的值的图片ID相应的图片数据并且将所读取的数据提供到解码处理器77。
如果将要解码的图片是I-图片,CPU20控制解码处理器77解码从存储器控制器74提供的I-图片,也控制写-图像地址确定单元78将解码的帧数据提供到存储器控制器81并且将所解码的I-图片存储到存储体中,该存储体根据步骤S222中获得的空存储体信息在视频存储体存储器82的空存储体中最早变空。如果将要解码的图片是P-图片,CPU20在存储器控制器81的控制下控制参考-图像地址确定单元79读取存储在视频存储体存储器82中的前面的参考图像并且将所读取的参考图像提供到解码处理器77,并且控制解码处理器77解码从存储器控制器74提供的P-图片。CPU20也控制写-图像地址确定单元78将解码的帧数据提供到存储器控制器81并且将解码的P-图片存储到存储体中,该存储体根据步骤S222中获得的空存储体信息在视频存储体存储器82的空存储体中最早变空。
CPU20通过控制总线76和控制总线19从写-图像地址确定单元78接收与存储被解码的I-图片或P-图片的存储体位置相关的信息。当解码P-图片时,通过指定前面的参考图像的存储体位置,CPU20可以控制参考-图像地址确定单元79以便允许存储器控制器81读取存储在视频存储体存储器82中的前面的参考图像并且将所读取的参考图像提供到解码处理器77。
如果将要解码的图片是B-图片,CPU20控制参考-图像地址确定单元79以便允许存储器控制器81读取存储在视频存储体存储器82中的前面的和后面的参考图像并且将所读取的参考图像提供到解码处理器77,并且控制解码处理器77解码从存储器控制器74提供的B-图片。CPU20也控制写-图像地址确定单元78将解码的帧数据提供到存储器控制器81并且将解码的B-图片存储到存储钵中,该存储体根据步骤S222中获得的空存储钵信息在视频存储体存储器82的空存储体中最早变空。
CPU20通过控制总线76和控制总线19从写-图像地址确定单元78接收与存储解码的I-图片或P-图片的存储体位置相关的信息。当解码B-图片时,通过指定前面和后面的参考图像的存储体位置,CPU20可以控制参考-图像地址确定单元79在存储器控制器81的控制下读取存储在视频存储体82中的前面和后面的参考图像并且将所读取的参考图像提供到解码处理器77。
步骤S224中,CPU20确定由步骤S223中执行的解码开始命令解码的图片是否为B-图片。
如果步骤S224中发现解码的图片是B-图片,过程转到步骤S225,在该步骤中CPU20根据参考计数器的指针将前面和后面的参考计数器减一。
例如,如果解码的图片是B(3),指针2被设置为前面的参考指针而指针5被设置为后面的参考指针。因此,CPU20将I(2)的前面的参考计数器和P(5)的后面的参考计数器减一。
如果步骤S224中确定解码的图片不是B-图片,过程转到步骤S226以便确定解码的图片是否为P-图片。
如果步骤S226中发现解码的图片是P-图片,过程转到步骤S227,在该步骤中CPU20根据参考计数器的指针将相应的前面的参考计数器减一。
例如,如果解码的图片是P(5),指针2被设置为前面参考的指针。因此,CPU20将I(2)的前面的参考计数器减一。
步骤S225或S227之后,过程转到步骤S228,在该步骤中CPU20确定是否与图片ID之一相应的所有参考计数器的值都变为0。
如果步骤S228中确定有一个图片ID的参考计数器的值变为0,过程转到步骤S229,在该步骤中释放相应图片ID的存储体。
如果步骤S226中确定解码的图片不是P-图片,即,解码的图片是I-图片,或者如果步骤S228中确定没有发现图片ID,或者步骤S229之后,过程返回到图19的步骤S192。
根据解码处理,如果自从根据所确定的调度解码I-图片,P-图片,或B-图片之后相应的前面或后面的参考计数器的值被减一之后所有参考计数器的值变为0,也就是说,如果存在已经显示并且已经被其他图片通过参考使用的图片,则释放存储该图片的存储体。
下面参照图21的流程图描述图19的步骤S193中执行的显示处理。
步骤S251中,CPU20确定时间管理计数器的值是否与时间信息相匹配,该时间信息与时间-信息显示顺序设置队列中设置的当前的第一个图片ID相关联。时间-信息显示顺序设置队列中设置的时间信息是通过从显示相位确定处理中所确定的相移disp_phase中减一所获得的值,该值表示按显示顺序的15个帧之中的第一个帧的显示定时,或者是与按显示顺序不是第一个帧的帧的图片ID相关的时间计数器的计数值。
如果步骤S251中确定时间管理计数器的值与时间-信息显示顺序设置队列中设置的时间信息相匹配,过程转到步骤S252。步骤S252中,CPU20通过控制总线19将用于显示与图片ID相应的图片的显示指令发送到相应的解码器22,23,或24,该图片ID的时间信息与时间管理计数器的值相匹配。在这种情况下,解码器的输出地址确定单元80通过控制总线76从CPU20接收控制信号并且控制存储器控制器81从视频存储体存储器82中读取相应的图片并且将所读取的图片提供到选择器25。
然后CPU20根据寄存器的值控制选择器25输出解码的帧,该寄存器的值表示接收后面数据的解码器并且在图6的步骤S78中被设置。
步骤S253中,CPU20将与所显示的图片的图片ID相应的自-参考计数器减一。
作为将显示指令发送到解码器并且将自-参考计数器减一的结果,时间-信息显示顺序设置队列中设置的当前的第一个图片的图片ID从时间-信息显示顺序设置队列中被输出,而后面图片的图片ID变为时间-信息显示顺序设置队列中的第一个图片ID或者时间-信息显示顺序设置队列变为空。
步骤S254中,CPU20确定与图片ID之一相应的所有参考计数器的值是否都变为0。
如果步骤S254中发现其参考计数器的值变为0的图片ID,过程转到步骤S255,在该步骤中CPU20释放相应图片ID的存储体。
如果步骤S251中确定时间管理计数器的值与时间-信息显示顺序设置队列中设置的时间信息不匹配,或者步骤S254中确定没有发现相应的图片ID,或者步骤S255之后,过程返回图19的步骤S193。
根据显示处理,如果自从根据时间-信息显示顺序设置队列中设置的时间信息,显示了解码的数据并减小了自-参考计数器的值之后所有参考计数器的值都变为0,也就是说,如果存在已经显示并且已经被其他图片通过参考使用的图片,则释放存储该图片的存储体。
在快速正向或反向量放处理中,下面参照图22A到27B描述当图片被省略时时间-信息显示顺序设置队列的设置。图22A,23A,24A,25A,26A,和27A说明了执行帧的省略之前的调度状况,将被省略的帧由虚线表示。图22B,23B,24B,25B,26B,和27B说明了在执行帧的省略之后的调度状况。图22A到27B中,括号中的数字0,1,或2表示信息队列中存储的信息与哪个解码器22,23,或24相应,或者由哪个解码器22,23,或24执行信息队列中存储的信息。
例如,在x2快速重放操作中,如图22A和22B中所示,第一个GOP的B-图片的解码开始定时比I-图片的解码开始定时晚6个帧。由于第一个图片是I-图片,B-图片的显示开始定时比I-图片的解码开始定时晚6个帧。由于前面GOP的显示图片的数量是8而相移校正值disp_zero是1,根据等式(1),后面GOP的I-图片的解码开始定时被计算为7个帧。B-图片的解码开始定时比I-图片的解码开始定时晚6个帧,并且由于第一个图片是B-图片,B-图片的显示开始定时比I-图片的解码开始定时晚7个帧。
例如,在x-2快速重放操作中,如图23A和23B中所示,第一个GOP的B-图片的解码开始定时比I-图片的解码开始定时晚6个帧。由于第一个图片是B-图片,B-图片的显示开始定时比I-图片的解码开始定时晚7个帧。由于前面GOP的显示图片的数量是8而相移校正值disp_zero是0,根据等式(1),后面GOP的I-图片的解码开始定时被计算为8个帧。B-图片的解码开始定时比I-图片的解码开始定时晚6个帧,并且由于第一个图片是B-图片,B-图片的显示开始定时比I-图片的解码开始定时晚7个帧。
例如,在x4快速重放操作中,如图24A和24B中所示,第一个GOP的B-图片的解码开始定时比L图片的解码开始定时晚6个帧。由于第一个图片是I-图片,B-图片的显示开始定时比I-图片的解码开始定时晚6个帧。由于前面GOP的显示图片的数量是4而相移校正值disp_zero是1,根据等式(1),后面GOP的I-图片的解码开始定时被计算为3个帧。B-图片的解码开始定时比I-图片的解码开始定时晚6个帧,并且由于第一个图片是B-图片,B-图片的显示开始定时比I-图片的解码开始定时晚7个帧。
例如,在x-4快速重放操作中,如图25A和25B中所示,第一个GOP的B-图片的解码开始定时比I-图片的解码开始定时晚6个帧。由于第一个图片是B-图片,B-图片的显示开始定时比I-图片的解码开始定时晚6个帧。由于前面GOP的显示图片的数量是4而相移校正值disp_zero是0,根据等式(1),后面GOP的I-图片的解码开始定时被计算为4个帧。B-图片的解码开始定时比I-图片的解码开始定时晚6个帧,并且由于第一个图片是B-图片,B-图片的显示开始定时比I-图片的解码开始定时晚7个帧。
例如,在x5快速重放操作中,如图26A和26B中所示,第一个GOP的B-图片的解码开始定时比I-图片的解码开始定时晚6个帧。由于第一个图片是I-图片,B-图片的显示开始定时比L图片的解码开始定时晚6个帧。由于前面GOP的显示图片的数量是3而相移校正值disp_zero是0,根据等式(1),后面GOP的I-图片的解码开始定时被计算为3个帧。B-图片的解码开始定时比L图片的解码开始定时晚6个帧,并且由于第一个图片是I-图片,B-图片的显示开始定时比I-图片的解码开始定时晚6个帧。
例如,在x-5快速重放操作中,如图27A和27B中所示,第一个GOP的B-图片的解码开始定时比I-图片的解码开始定时晚6个帧。由于第一个图片是B-图片,B-图片的显示开始定时比I-图片的解码开始定时晚7个帧。由于前面GOP的显示图片的数量是3而相移校正值disp_zero是0,根据等式(1),后面GOP的I-图片的解码开始定时被计算为3个帧。B-图片的解码开始定时比I-图片的解码开始定时晚6个帧,并且由于第一个图片是B-图片,B-图片的显示开始定时比I-图片的解码开始定时晚7个帧。
下面参照图28到31描述视频存储体存储器82的设置。
图28说明了当执行x1重放操作时,图2中所示的视频存储体存储器82的8个存储体中所存储的图片。
解码的I-图片和P-图片按照解码顺序进续存储在0号到5号存储体中。当显示了第一个I2图片时,B3图片同时被存储到6号存储体中,而当显示B3图片时,B4图片同时被存储到7号存储体中。当显示B4图片时,释放存储已经显示的B3图片的6号存储体和存储已经用作参考图像的I2图片的0号存储体,而B6图片被存储到0号存储体中。此后,在I-图片和P-图片已经被显示之后以及在I-图片和P-图片已经被用作参考图像之后释放存储它们的存储体。B-图片按照存储体被释放的时间顺序被连续存储到存储体中。在B-图片被显示之后,释放存储它们的存储体。也就是说,存储其自-参考计数器,前面的参考计数器,和后面的参考计数器变为0的图片的存储体顺序被释放。从最早被释放的存储体顺序地存储B-图片并且在它们被显示之后释放它们。
图29说明了当执行x2重放操作时,图2中所示的视频存储体存储器82的8个存储体中所存储的图片。
解码的I-图片和P-图片按照解码顺序连续存储在0号到5号存储体中。当显示第一个I2图片时,B4图片同时被存储到6号存储体中,而当显示B4图片时,B6图片同时被存储到7号存储体中。然后,释放存储已经显示的和已经用作参考图像的I2图片的0号存储体。当显示B6图片时,释放存储已经显示的B4图片的6号存储体和存储已经用作参考图像的P5图片的1号存储体。此后,在L图片和P-图片已经被显示之后以及在I-图片和P-图片已经被用作参考图像之后释放存储它们的存储体。不被省略的B-图片连续被存储到最早被释放的存储体中,并且在它们被显示之后释放它们。也就是说,存储其自-参考计数器,前面的参考计数器,和后面的参考计数器变为0的图片的存储钵顺序被释放。从最早被释放的存储钵顺序地存储B-图片,并且在它们被显示之后释放它们。
图30说明了当执行x-1重放操作时,图2中所示的视频存储体存储器82的8个存储体中所存储的图片。
解码的I-图片和P-图片按照解码顺序连续存储在0号到5号存储体中。I2图片被存储到5号存储体之后,B1图片被存储到6号存储体中,而当显示B1图片时,B0图片同时被存储到7号存储体中。当显示B0图片时,释放存储已经显示的B1图片的6号存储体。此后,在I-图片和P-图片已经被显示之后以及在I-图片和P-图片已经被用作参考图像之后释放存储它们的存储体。B-图片按照存储体被释放的时间顺序被顺序地存储到存储体中。在B-图片被显示之后,释放存储它们的存储体。也就是说,存储其自-参考计数器,前面的参考计数器,和后面的参考计数器变为0的图片的存储体顺序被释放。图30所示的例子中,由于执行反顺序重放操作,首先存储在0号存储体中的I2图片最后被显示。因此,存储I2图片的0号存储体不被释放,直到显示了该GOP为止。
图31说明了当执行x-2重放操作时,图2中所示的视频存储体存储器82的8个存储体中所存储的图片。
解码的L图片和P-图片按照解码顺序连续存储在0号到5号存储体中。I2图片被存储到5号存储体之后,B1图片被存储到6号存储体中,而当显示B1图片时,B12图片同时被存储到7号存储体中。然后,释放存储已经用作参考图像的I2图片的5号存储体。当显示了P14图片时,B10图片被存储到所释放的5号存储体中,并且释放存储已经显示的B1图片的6号存储体。在I-图片和P-图片已经被显示之后以及在I-图片和P-图片已经被用作参考图像之后释放存储它们的存储体。没有被省略的B-图片顺序地被存储到最早被释放的存储体中,并且在B-图片被显示之后,释放相应的存储体。也就是说,存储其自-参考计数器,前面的参考计数器,和后面的参考计数器变为0的图片的存储体顺序被释放。图31所示的例子中,由于执行反顺序重放操作,首先存储在0号存储体中的I2图片最后被显示。因此,存储I2图片的0号存储体不被释放,直到显示了该GOP为止。
如上所述,当对通过使用图像压缩方法中通用的诸如MPEG的双向内部-帧预测压缩的图像数据执行反向重放操作或快速重放操作时,首先解码I-图片和P-图片,而当解码B-图片时,参考指针用于存储体控制操作。因此,可以用最小数量的存储体来执行有效的反向重放操作和快速反向重放操作而不需要复杂的存储体控制操作。
更具体地说,存储帧的存储体的数量是解码处理单元中包含的I-图片和P-图片的数量以及存储B-图片的两个存储体的总和,这就足够了。在这种情况下,首先,通过解码作为锚帧的I-图片和P-图片,并且通过在解码B-图片时使用参考指针用于存储体控制操作,可以执行快速重放操作或反向重放操作而不需要复杂的存储体控制操作。
例如,在N为15(N是一个GOP中帧的数量),而M为3(M是I-图片,P-图片,或I-图片和P-图片之间的间隔)时的MPEG长GOP流中,如在本实施例中那样,准备了具有总共8个存储体的视频存储体存储器,8个存储体,5个存储体用于I,P,P,P,和P图片,一个存储体用于后面的I图片,而两个存储体用于B-图片。采用这种方案,通过首先解码I-图片和P-图片并且通过在解码B-图片时使用参考指针用于存储体控制操作,可以执行快速重放操作,反向重放操作,或快速反向重放操作而不需要复杂的存储体控制操作。
为了改善对用户改变速度的指令的响应,有时为了以帧为单位改变速度而暂停B-图片的解码或显示。在这种情况下,虽然分别管理B-图片的解码定时和显示定时,可以简单地执行存储体控制。例如,当输入流被移位时,即使在通过参考其他图片预测图片时发生错误,它恢复正确的帧(下面描述的下溢处理)。因此,速度可以以帧为单位被改变。
下面参照图32的流程图描述图19的步骤S196中执行的下溢处理。
步骤S331中,CPU20通过参考时间管理计数器和时间计数器来确定相对于显示处理流数据的提供是否被延迟,例如,是否发生了下溢。如果步骤S331中确定没有发生下溢,过程返回到图19的步骤S196,并且转到图4的步骤S34。
如果步骤S331中确定发生了下溢,过程转到步骤S332,在该步骤中CPU20将时间计数器的值调整到时间-信息I/P-图片队列的头处的时间。然后过程返回到图19的步骤S196,并且转到图4的步骤S34。
下面参照图33和34描述当发生下溢时时间计数器的调整。图33和34中,括号中的数字0,1,或2表示信息队列中存储的信息与哪个解码器22,23,或24相应或者由哪个解码器22,23,或24执行信息队列中存储的信息。
图33说明了当如图27A和27B中执行的x-5重放操作中没有发生下溢时信息队列中存储的信息以及相对于时间计数器的解码定时和显示定时。图33中,例如,GOP的I-图片的解码开始定时的时间计数器指示7。
例如,如果发生了两个帧的量的下溢,时间计数器被延迟两个帧,如图34中所示,而通过参考被调整的时间计数器重新开始处理,从而允许后面的调度,解码,和显示控制而没有任何延迟。
根据该处理,当执行快速重放操作时,即使由于例如HDD16的吞吐量的降低而延迟了流的提供,也可以检测到通过流提供的延迟产生的下溢并且时间信息的计数被延迟发生下溢的时间,从而可以没有中断地重新开始重放处理。
如果图4的步骤S34中确定不是所有的帧已经被处理,过程转到增加时间计数器的步骤S35。然后过程返回步骤S31,而重复相应的处理。
根据解码处理单元中包含的I-图片和P-图片的数量确定解码定时和显示定时之间的相移。或者,可根据解码处理单元中包含的帧中将要显示的帧的数量确定解码定时和显示定时之间的相移。
当执行快速正向或反向重放操作时,在第二个和后面的解码处理单元中的解码调度中,在确定将要显示的帧以及不将被显示的帧之前,即,在执行帧的省略之前,可以提前检测编码参数,诸如解码处理单元的头处将要显示的图片类型。
例如,在确定将要显示的帧以及不将被显示的帧之前,例如,根据前面解码处理单元的调度中计数的帧计数器以及所计算的省略周期提前检测解码处理单元的头处将要显示的图片类型。
采用这种方案,可以更加准确和更加快速地执行解码调度处理。
上面已经描述了当一个GOP包括15个图片时的解码处理。当一个GOP中包含的锚帧(I-图片和P-图片)的数量大于等于6或小于等于4时,如果采用与图1中所示的重放装置1对包括15个图片的每个GOP执行的解码处理相同的方式对每个GOP执行解码,不被解码的一些图片或一些图片的解码被延迟。
为了处理图1中所示的重放装置1中GOP中图片的数量不是15的情况,可以采用下面的措施。检测了每个GOP的结构之后,可以通过分割或组合GOP来重建解码单元,该解码单元充当解码处理单元,包括与解码器22,23,或24的视频存储钵存储器82的存储体数量相应的锚帧。更具体地说,如果视频存储体存储器82有8个存储体,可以通过分割一个GOP或者组合多个GOP来重建解码处理单元以便一个GOP中包含的锚帧为5个或更少。然后,对包括锚帧的解码处理单元执行解码,该锚帧是解码解码处理单元中包含的所有P-图片和B-图片所需要的。
下面参照图35到37B讨论包含30个帧的GOP的分割以及被分成的GOP的解码。
GOP(0)由30个帧组成,即,B0到P29,如图35中所示,后面跟着GOP(1)。在每个解码处理单元中,头两个B-图片与前面的GOP一起被解码。
由于GOP(0)中有10个锚帧,如果采用与一个GOP包括15个图片时相同的方式对GOP(0)执行解码,则发生错误。因此,GOP(0)被分割成两个解码处理单元,如图35的底部所表示的,以使锚帧的数量变为6或更少。
GOP(0)被分割为两个解码处理单元,即包括I2到P17的GOP(0-0)以及包括B18到P29以及B0和B1的GOP(0-1),如图36A和36B中所示,而GOP(0-0)和GOP(0-1)由不同的解码器解码。GOP(0-0)的最后一个锚帧P17是解码GOP(0-1)头处的两个B图片B18和B19必需的。也就是说,P17也充当GOP(0-1)的锚帧。GOP(0-0)的锚帧是解码GOP(0-1)的锚帧所需的。因此,解码GOP(0-0)的锚帧之后,GOP(0-1)的锚帧以及后面GOP的第一个I-图片被解码。
因此,在解码GOP(0-0)或GOP(0-1)的解码器中,锚帧的解码顺序不变,不管重放方向为正向还是反向或者重放速度为正常还是快速。相反,在GOP(0-0)和GOP(0-1)中,根据重放方向或重放速度B-图片的解码顺序是不同的。图36A和36B中,示出了在x1和x-1正向和反向重放速度时的解码顺序。
在x1重放操作中,如图37A中所示,在一个解码器中,解码GOP(0-0)的锚帧I2到P17之后,解码GOP(0-0)的B-图片B3到B16。同时,在其他解码器中,解码锚帧I2到P14之后,通过使用锚帧I2到P14作为参考图像来解码GOP(0-1)的锚帧P17到P29以及GOP(1)的第一个I2图片,然后,解码GOP(0-1)的B图片B18到B28以及GOP(1)的B0和B1。
在x-1重放操作中,如图37B中所示,在一个解码器中,解码锚帧I2到P14之后,通过使用锚帧I2到P14作为参考图像来解码GOP(0-1)的锚帧P17到P29以及GOP(1)的第一个I2帧,然后,解码GOP(1)的B1和B0以及GOP(0-1)的B-图片B28到B18。在其他解码器中,解码GOP(0-0)的锚帧I2到P17之后,解码GOP(0-0)的B-图片B16到B3。
接下来,下面参照图38到40B描述当分别包括4个或更少的锚帧的GOP是连续的时解码处理单元的设置和解码处理。
如图38中所示,GOP(0)由6个帧B0到P5组成,而GOP(1)由9个帧B0到P8组成,后面跟着GOP(2)。在每个解码处理单元中,头两个B-图片与前面的GOP一起被解码。
GOP(0)中有两个锚帧而GOP(1)中有三个锚帧。因此,GOP(0)和GOP(1)被组合,如图38的底部所表示的,以便锚帧的数量变为4个。
在这种情况下,GOP(0)的头两个B-帧B0和B1与前面的GOP一起被解码,而GOP(0)的I2到P5,GOP(1),以及GOP(2)的头两个B-图片B0和B1被解码为同一个解码处理单元GOP(0-0)。锚帧的解码顺序不变,如图39中所示,无论重放方向为正向还是反向或者重放速度为正常还是快速。相反,根据重放方向或重放速度,B-图片的解码顺序是不同的。图39中,示出了在x1或x-1正向和反向重放速度时的解码顺序。
在x1正向重放操作中,如图40A中所示,在任何一个解码器中,GOP(0-0)的锚帧和GOP(2)的第一个I2帧被解码,然后,GOP(0-0)的B-图片B3到B7被解码。然后,在x-1反向重放操作中,如图40B中所示,在任何一个解码器中,为了执行反向重放操作,GOP(0-0)的锚帧和GOP(2)的第一个I2帧被解码,然后,GOP(0-0)的B-图片B7到B3被解码。
可能存在这种情况,包括6个或更多锚帧的GOP和具有4个或更少锚帧的GOP是连续的。在这种情况下,下面参照图41到43B描述,通过组合该GOP然后重新分割它们以便将负荷平均分配到解码器的解码处理单元的设置。
如图41中所示,GOP(0)包括21个帧B0到P20,而GOP(1)包括9个帧B0到P8,后面跟着GOP(2)。在每个解码处理单元中,头两个B-图片与前面的GOP一起被解码。
由于GOP(0)中有7个锚帧,如果用与一个GOP包括15个图片时相同的方式对GOP(0)执行解码,则发生错误。在这种情况下,GOP(0)可以被分成两个解码处理单元以便锚帧的数量变为6个或更少。然而,由于后面GOP的帧的数量小,GOP(0)和GOP(1)被组合并且被重新分割,如图41的底部所表示的,以便由GOP(0)和GOP(1)生成两个解码处理单元GOP(0-0)和GOP(0-1),然后根据那些解码处理单元执行解码。
组合GOP(0)和GOP(1)之后,如图42A中所示,GOP(0)的I2到P17被设置为第一个解码处理单元GOP(0-0),如图42B中所示,GOP(0)的B18到P20,整个GOP(1),以及GOP(2)的B1和B2被设置为第二个解码处理单元,而第一个和第二个解码处理单元在不同的解码器中被解码。GOP(0-0)的最后一个锚帧P17是解码GOP(0-1)的头两个B-图片B18和B19所需的。也就是说,P17也充当GOP(0-1)的锚帧。GOP(0-0)的锚帧是解码GOP(0-1)的锚帧需要的。因此,解码GOP(0-0)的锚帧之后,GOP(0-1)的锚帧和后面GOP的第一个I-图片被解码。
因此,在解码GOP(0-0)或GOP(0-1)的解码器中,锚帧的解码顺序不变,不管重放方向是否为正向或反向或者重放速度为正常还是快速。相反,在GOP(0-0)和GOP(0-1)中,根据重放方向或重放速度B-图片的解码顺序是不同的。图42A和42B中,示出了在x1或x-1正向和反向重放速度时的解码顺序。
更具体地说,在x1正向重放操作中,如图43A中所示,在一个解码器中,解码作为GOP(0-0)的锚帧的GOP(0)的I2到P17之后,解码作为GOP(0-0)的B-图片的GOP(0)的B3到B16。在其他解码器中,解码GOP(0-0)的锚帧I2到P14之后,通过使用I2到P14作为参考图像来解码作为GOP(0-1)的锚帧的GOP(0)的P17和P20以及GOP(0-0)的I2,P5,以及P8,以及GOP(2)的第一个I2,然后,解码作为GOP(0-1)的B-图片的GOP(0)的B18和B19以及GOP(1)的B0到B7,以及GOP(2)的B0和B1。
在x-1反向重放操作中,如图43B中所示,在一个解码器中,解码GOP(0-0)的锚帧I2到P14之后,通过使用I2到P14作为参考图像来解码作为GOP(0-1)的锚帧的GOP(0)的P17和P20以及GOP(1)的I2,P5,以及P8,以及GOP(2)的第一个I2。然后,解码作为GOP(0-1)的B-图片的GOP(2)的B1和B0以及GOP(1)的B7到B0以及GOP(0)的B19和B18。在其他的解码器中,解码作为GOP(0-0)的锚帧I2到P17之后,解码作为GOP(0-0)的B-图片的GOP(0)的B16到B3。
可能存在这种情况,其继续包括4个或更少锚帧的GOP和具有6个或更多锚帧的GOP。在这种情况下,下面将参照图44到46B描述通过组合该GOP然后重新分割它们以便将负荷平均分配到解码器的解码处理单元的设置。
如图44中所示,GOP(0)包括9个帧B0到P8,而GOP(1)包括15个帧B0到P14,后面跟着GOP(2)。在每个解码处理单元中,头两个B-图片与前面的GOP一起被解码。
虽然GOP(0)中只有三个锚帧,但是GOP(1)中有5个锚帧,因此,GOP(0)和GOP(1)被组合并且被重新分割,如图44的底部所表示的,以至于由GOP(0)和GOP(1)生成两个解码处理单元GOP(0-0)和GOP(0-1),然后根据那些解码处理单元执行解码。
组合GOP(0)和GOP(1)之后,如图45A中所示,GOP(0)的I2到GOP(1)的P8被设置为第一个解码处理单元GOP(0-0),如图45B中所示,GOP(1)的B9到P14以及GOP(2)的B1和B2被设置为第二个解码处理单元,而第一个和第二个解码处理单元在不同的解码器中被解码。GOP(0-0)的最后一个锚帧P8是解码GOP(0-1)的头两个B-图片B9和B10所需要的。也就是说,P8也充当GOP(0-1)的锚帧。GOP(0-0)的锚帧中,GOP(1)的锚帧I2和P5是解码GOP(0-1)的锚帧所需要的。因此,解码GOP(1)的I2和P5之后,GOP(0-1)的锚帧和后面GOP的第一个I-图片被解码。
因此,在解码GOP(0-0)或GOP(0-1)的解码器中,锚帧的解码顺序不变,不管重放方向为正向还是反向或者重放速度为正常还是快速。相反,在GOP(0-0)和GOP(0-1)中,根据重放方向或重放速度B-图片的解码顺序是不同的。图45A和45B中,示出了在x1或x-1正向和反向重放速度时的解码顺序。
更具体地说,在x1正向重放操作中,如图46A中所示,在一个解码器中,解码作为GOP(0-0)的锚帧的GOP(0)的I2到P8以及GOP(1)的I2到P8之后,解码作为GOP(0-0)的B-图片的GOP(0)的B3到B7以及GOP(1)的B0到B7。在其他解码器中,解码作为GOP(0-0)的锚帧的GOP(1)的锚帧I2到P5之后,通过使用I2到P5作为参考图像来解码作为GOP(0-1)的锚帧的GOP(1)的P8到P14,以及GOP(2)的第一个I2,然后,解码作为GOP(0-1)的B-图片以及GOP(2)的B0和B1的GOP(1)的B9到B13。
在x-1反向重放操作中,如图46B中所示,在一个解码器中,解码作为GOP(0-0)的锚帧的GOP(1)的锚帧I2和P5之后,通过使用I2和P5作为参考图像来解码作为GOP(0-1)的锚帧的GOP(1)的P8到P14,以及GOP(2)的第一个I2。然后,解码作为GOP(0-1)的B-图片的GOP(2)的B1和B0以及GOP(1)的B13到B9。在其他的解码器中,解码作为GOP(0-0)的锚帧的GOP(0)的I2到P8以及GOP(1)的I2到P8之后,解码作为GOP(0-0)的B-图片的GOP(1)的B7到B0以及GOP(0)的B7到B3。
如参照图35到46B所描述的,充当解码处理单元的解码单元被构建。然后,为每个解码单元进行解码调度,并且如所要求的那样执行帧的省略以便可以用指定的重放方向以指定的重放速度执行重放操作。然后,执行解码并且重放和输出流。
更具体地说,在传送和存储到存储器18的多个GOP中,CPU20读取将要解码的GOP以及后面GOP的结构,然后根据锚帧的数量,通过分割和组合GOP来构建充当解码处理单元的解码单元。CPU20然后将控制命令传送到PCI桥17以便控制PCI桥17从存储器18中读取用于每个解码单元的流数据并且将所读取的流数据提供到解码器22,23,和24之一。
然后,CPU20如上所述设置调度。在这种情况下,如参照图35,41,或44所讨论的GOP(0-1)中,为了解码相应解码单元的锚帧,如果需要解码另一个解码单元的至少部分锚帧,也在输入图片队列中设置该解码单元的锚帧。也就是说,也在显示顺序信息队列中设置解码相应的解码单元所需要的另一个解码单元的锚帧。
然后,在参照图12和13的流程图所描述的解码设置处理中,CPU20根据显示顺序设置队列中设置的图片ID来设置参考计数器的指针。
现在假设,例如,以与参照图35描述的GOP(0-1)相应的显示顺序设置队列设置图片ID,例如以I(2),P(5),P(8),P(11),P(14),P(17),B(18),B(19),P(20),B(21),B(22),P(23),B(24),B(25),P(26),B(27),B(28),P(29),B(0),B(1)和I(2)的队列。当表示例如B(21)的显示顺序的指针被设置为自-参考计数器时,表示作为在先参考图像的P(20)的显示顺序的指针被设置为在先参考指针,而表示作为后面的参考指针的P(23)的显示顺序的指针被设置为后面的参考指针。当表示例如P(20)的显示顺序的指针被设置为自-参考计数器时,表示作为在先参考图像的P(17)的显示顺序的指针被设置为在先参考指针。当表示例如P(17)的显示顺序的指针被设置为自-参考计数器时,表示作为在先参考图像的P(14)的显示顺序的指针被设置为在先参考指针。同样,相应自-参考计数器中设置指针,以及,表示P(11)的显示顺序的指针也被设置为P(14)的在先参考计数器,表示P(8)的显示顺序的指针被设置为P(11)的在先参考计数器,表示P(5)的显示顺序的指针被设置为P(8)的在先参考计数器,而表示I(2)的显示顺序的指针被设置为P(5)的在先参考计数器。
图12的步骤S116中确定预定的15个帧中不包含I(2),P(5),P(8),P(11),P(14),和P(17)。然而,由于它们是将要解码的图片ID,它们在步骤S118中不被删除。
然后,步骤S119中确定不显示I(2),P(5),P(8),P(11),P(14),和P(17)。
步骤S124中确定P(5),P(8),P(11),P(14),和P(17)是P-图片,然后,步骤S125中,CPU20将相应的在先参考计数器加1。更具体地说,对于P(17),P(14)的在先参考计数器被加1,同样,对于P(14)、P(11)、P(8)、和P(5),P(11)、P(8)、P(5)、和I(2)的参考计数器分别被加1。
步骤S125之后,或者如果步骤S119中确定不显示相应的帧以及如果步骤S126中确定相应的帧是I-图片,则步骤S127中,CPU20在相应的解码队列中设置相应的图片ID并且从显示顺序设置队列中删除该图片ID。也就是说,在I/P-图片解码队列中设置I(2),P(5),P(8),P(11),P(14),和P(17)。
用这样的方式,也在I/P-图片解码队列中设置I-图片和P-图片而不是解码单元中包含的那些图片,即,将要为解码锚帧而解码的I-图片和P-图片,并且进行解码调度以便在解码单元中的锚帧之前解码那些图片。
然后,CPU20控制解码器22,23,或24通过参考表示接收后面数据的解码器的寄存器的值来执行解码。解码器22,23,或24的基本流地址确定单元73在控制器20的控制下允许存储器控制器74从输入缓冲器75中读取与时间-信息I/P-图片解码队列中设置的图片ID相应的图片数据并且将所读取的数据提供到解码处理器77。
如果将要解码的图片是I-图片,CPU20控制解码处理器77解码从存储器控制器74提供的I-图片并且也控制写-图像地址确定单元78将解码的帧数据提供到存储器控制器81并且将它存储到视频存储体存储器82中。如果将要解码的图片是P-图片,CPU20控制参考-图像地址确定单元79允许存储器控制器81根据P-图片的参考存储体的位置读取视频存储体存储器82中存储的参考图像并且将所读取的参考图像提供到解码处理器77以及控制解码处理器77解码从存储器控制器74提供的P-图片。CPU20也控制写-图像地址确定单元78将解码帧数据提供到存储器控制器81并且将它存储到视频存储钵存储器82中,以及将相应的在先参考计数器减1。如果将要解码的图片是B-图片,CPU20控制参考-图像地址确定单元79允许存储器控制器81根据B-图片的参考存储体的位置读取视频存储钵存储器82中存储的参考图像并且将所读取的参考图像提供到解码处理器77,以及控制解码处理器77解码从存储器控制器74提供的B-图片并且将相应的在先和下面的参考计数器减1。
也就是说,由于除了解码单元中的那些I-图片和P-图片的I-图片和P-图片的参考计数器连续变为0,存储那些图片ID的存储钵可以被释放并且用于解码锚帧或B-图片。
下面参照图47的流程图描述当形成GOP的图片的数量不是15时GOP的分割/组合处理。
步骤S601中,CPU20确定在分割GOP之后是否存在还没有被调度的任何解码单元。
如果步骤S601中发现未被调度的解码单元,过程转到步骤S602,在该步骤中CPU20设置图4所示的帧处理中未被调度的解码单元的调度并且解码该解码单元。
如果步骤S601中确定不存在未被调度的解码单元,过程转到步骤S603,在该步骤中CPU20检测还没有被调度的后面的GOP和下一个之后的GOP的结构。
步骤S604中,CPU20确定后面的GOP是否比可以由一个解码器解码的最大大小大。更具体地说,CPU20检查后面GOP的锚帧的数量并且将所检查到的锚帧的数量与由一个解码器解码的锚帧的合适的数量相比较,以便确定后面的GOP是否比最大大小大,该合适的数量由一个解码器中存储体的数量所确定。
如果步骤S604中确定后面的GOP比可以由一个解码器解码的最大大小大,程序转到步骤S605以便确定后面的GOP和下一个之后的GOP的组合大小是否为可以由两个解码器解码的大小、。更具体地说,如果视频存储体存储器82有8个存储体,CPU20确定所组合的GOP的锚帧的数量是否为10个或更少,即,是从视频存储体存储器82中存储体的数量减三所获得的数量的两倍或更小。
如果步骤S605中确定所组合的大小是可以由两个解码器解码的合适的大小(例如,当继续具有6个或更多锚帧的长GOP与具有4个或更少锚帧的短GOP时,如参照图41到43B所描述的),过程转到步骤S610。
如果步骤S605中确定所组合的GOP不是可以由两个解码器解码的大小、,过程转到步骤S606。步骤S606中,CPU20将后面的GOP分割为可以由一个解码器解码的多个解码单元,如参照图35到37B所讨论的具有30个图片的长GOP。然后过程转到步骤S612。
如果步骤S604中确定后面的GOP不比可以由一个解码器解码的最大大小大,过程转到步骤S607以便确定后面的GOP和下一个之后的GOP的组合大小是否为可以由一个解码器解码的合适大小。
如果步骤S607中确定所组合的大小是可以由一个解码器解码的大小,过程转到步骤S608。步骤S608中,后面的GOP和下一个之后的GOP被组合成一个解码单元,如参照图38到40B所描述的在继续每个都具有4个或更少的锚帧的GOP连续的GOP的情况下。所述过程随后转向步骤S612。
如果步骤S607中确定所组合的大小没有变为可以由一个解码器解码的大小,过程转到步骤S609以便确定所组合的大小是否为可以由两个解码器解码的大小。更具钵地说,如果继续具有4个或更少锚帧的短GOP与具有6个或更多锚帧的长GOP,如参照图44到46B所讨论的,并且如果视频存储体存储器有8个存储体,CPU20确定所组合的GOP的锚帧的数量是否为10个帧或更少,即,是从视频存储钵存储器82中存储体的数量减3获得的数量的两倍或更少。
如果步骤S605或S609中确定所组合的大小变为可以由两个解码器解码的大小,过程转到步骤S610。步骤S610中,CPU20组合两个GOP,然后将它们重新分割为两个解码单元,如参照图41到43B或图44到46B所讨论的。然后过程转到步骤S612。
如果步骤S609中确定所组合的大小没有变为可以由两个解码器解码的大小,过程转到步骤S611,在该步骤中CPU20将后面的GOP设置为一个解码单元。
步骤S606,S608,S610,或S611之后,过程转到步骤S612,在该步骤中CPU20通过执行图4中所示的帧处理来调度后面解码单元的解码,并且解码该解码单元。
然后,步骤S613中,如果存在任何未被调度的被分割的解码单元,CPU20将它存储到等待列表中。然后处理完成。
根据上述的GOP分割/组合处理,即使形成GOP的图片的数量不是15或者即使图片的数量根据GOP是不同的,GOP的分割或组合也可以被执行以便获得快速解码处理。
上述的例子中,已描述了当解码器22,23,或24的视频存储体存储器82有8个存储体时分割或组合GOP以便获得有效的调度。即使将要存储到视频存储体存储器82中的存储体(帧)的数量不是8,也可以根据存储体的数量适当地执行GOP的分割或组合。
分割GOP之后,在第二个解码单元中,即,在具有在解码前面的解码单元的锚帧之后应当被解码的锚帧的解码单元中,如果第二个解码单元的锚帧的数量是6,在解码单元的头部是I-图片或P-图片的情况下,显示开始定时从用于解码第二个解码单元的锚帧的解码开始定时的位移是6个图片,而如果头部是B-图片则是7个图片。如果第二个解码单元中锚帧的数量是n个帧(n是5或更小),根据锚帧的数量,显示开始定时从解码开始定时的位移被改变,即,如果头部是I-图片或P-图片,它是n个帧,而如果头部是B-图片,它是n+1个帧。
图48说明了在x1重放操作中参照图35所描述的存储在视频存储体存储器82的8个存储体中的解码单元GOP(0-1)。
在0号到5号存储体中,将要为解码GOP(0-1)的锚帧而解码的GOP(0-0)的I2,P5,P8,P11,P14,和P17按照解码顺序分别被存储。当P5被解码时,I2的参考计数器都变为0,因此,0号存储体可以被释放并且被其他数据所覆写。当P8被解码时,P5的参考计数器都变为0,因此,1号存储体可以被释放并且其他数据所覆写。当P11被解码时,P8的参考计数器都变为0,因此,2号存储体可以被释放并且被其他数据所覆写。当P14被解码时,P11的参考计数器都变为0,因此,3号存储体可以被释放并且被其他数据覆写。当P17被解码时,P14的参考计数器都变为0,因此,4号存储钵可以被释放并且被其他数据覆写。存储P17的5号存储体不被释放,直到解码单元GOP(0-1)的B18和B19被解码为止。
此后,解码单元GOP(0-1)的帧的解码被启动。解码单元GOP(0-1)的被解码的I-图片和P-图片被顺序存储到空存储体中。因此,P20被存储到6号存储体中而P23被存储到7号存储体中。然后,P26被存储到所释放的0号存储体中,P29被存储到所释放的1号存储体中,而后面解码单元的I2被存储到所释放的2号存储体中。之后,当B18被存储到3号存储体中并且被显示时,B19同时被存储到4号存储体中。当B19被显示时,存储已经被显示的B18的3号存储体以及存储已经用作参考图像的P17的5号存储体被释放。然后B21被存储到5号存储体中。然后,当该图片已经被显示并且已经用作参考图像时,存储L图片或P-图片的存储体被释放。被解码的B-图片顺序被存储到较早释放的存储体中,而在B-图片已经被显示之后,释放存储B-图片的存储体。也就是说,存储其自-参考计数器,向前-参考计数器,以及向后参考计数器都变为0的图片的存储体被顺序释放。B-图片被顺序存储到较早释放的存储体中,而在B-图片已经被显示之后,释放存储B-图片的存储体。
图49说明了在x-1重放操作中参照图41所讨论的存储在视频存储体存储器82的8个存储体中的解码单元GOP(0-1)。
在0号到5号存储体中,将要为解码GOP(0-1)的锚帧而解码的GOP(0-0)的I2,P5,P8,P11,P14,和P17按照解码顺序分别被存储。当P5被解码时,I2的参考计数器都变为0,因此,0号存储钵可以被释放并且被其他数据覆写。当P8被解码时,P5的参考计数器都变为0,因此,1号存储体可以被释放并且被其他数据覆写。当P11被解码时,P8的参考计数器都变为0,因此,2号存储体可以被释放并且被其他数据覆写。当P14被解码时,P11的参考计数器都变为0,因此,3号存储体可以被释放并且被其他数据覆写。当P17被解码时,P14的参考计数器都变为0,因此,4号存储体可以被释放并且被其他数据覆写。存储P17的5号存储体不被释放,直到解码单元GOP(0-1)的B18和B19被解码为止。
此后,解码单元GOP(0-1)的帧的解码被启动。解码单元GOP(0-1)的被解码的I-图片和P-图片被顺序存储到空存储体中。因此,P20被存储到6号存储体中而I2被存储到7号存储体中。然后,P5被存储到所释放的0号存储体中,P8被存储到所释放的1号存储体中,而后面解码单元的I2被存储到所释放的2号存储体中。之后,当B1被存储到3考存储体中并且被显示时,B0同时被存储到4号存储体中。当B0被显示时,存储已经被显示的B1的3号存储体以及存储已经用作参考图像的I2的2号存储体被释放。然后B7被存储到2号存储体中。然后,当该图片已经被显示并且已经用作参考图像时,存储I-图片或P-图片的存储体被释放。被解码的B-图片顺序被存储到较早释放的存储体中,而在B-图片已经被显示之后,释放存储B-图片的存储体。也就是说,存储了其自-参考计数器,向前-参考计数器,以及向后-参考计数器都变为0的图片的存储体被顺序释放。在如图49所示的例子中的反向重放操作中,由于最后被显示的B18参考首先存储到5号存储体中的P17,5号存储体不被释放,直到该GOP的显示结束为止。
图50说明了在x2重放操作中参照图44所讨论的存储在视频存储体存储器82的8个存储体中的解码单元GOP(0-1)。
在0号到2号存储体中,将要为解码GOP(0-1)的锚帧而解码的GOP(0-0)的I2,P5,和P8按照解码顺序分别被存储。当P5被解码时,I2的参考计数器都变为0,因此,0号存储体可以被释放并且被其他数据覆写。当P8被解码时,P5的参考计数器都变为0,因此,1号存储体可以被释放并且被其他数据覆写。存储P8的2号存储体不被释放,直到解码单元GOP(0-1)的B9被解码为止。
此后,解码单元GOP(0-1)的帧的解码被启动。解码后的L图片和P-图片按照解码顺序顺序地被存储。因此,P11,P14,和I2分别被存储到3,4,和5号存储体中。之后,将要首先显示的B9被存储到6号存储体中,并且当B9被显示时,B13同时被存储到7号存储体中。当P11被显示时,B0被存储到所释放的0号存储体中。也就是说,存储其自-参考计数器,向前-参考计数器,以及向后-参考计数器都变为0的图片的存储体被顺序释放。解码后的B-图片被顺序存储到较早时释放的存储体中,而在已经显示了B-图片之后释放存储B-图片的存储体。
如上所述,如在解码充当通过分割或组合GOP形成的解码处理单元的解码单元的过程中,即使存储体存储器的容量小,也可以通过参照参考计数器来解码压缩编码的视频数据而不需要复杂的控制操作,从而执行快速重放操作,反向重放操作,或快速反向重放操作。
在上面的说明中,一个解码单元中包含的锚帧的数量被设置得与为解码锚帧而固定的存储体的数量相同或者比它小。更优选地,通过将目标解码单元的锚帧的数量与前面解码单元的固定帧的数量相比,锚帧的数量被设置以使它不会变得比前面解码单元的大m个帧(m是比1大的整数,它可以被实验地或按经验,以及更优选地设置为2到4)。
例如,如果继续具有一个锚帧的GOP和具有10个锚帧的GOP,两个GOP的锚帧的总数为11,并且很难由该两个GOP形成两个解码单元。因此,进行解码以使“一个锚帧+1”,“5个锚帧+1”,并且“5个锚帧+1”,从而在解码处理中产生延迟。
因此,通过将解码单元的锚帧的数量与前面解码单元的固定帧数量相比,而设置锚帧的数量以使它不会变得比前面解码单元的固定帧数量大2或更多。在这种情况下,当两个GOP的锚帧的总数为11时,进行解码以使“1个锚帧+1”,“3个锚帧+1”,“3个锚帧+1”,并且“4个锚帧+1”。因此,解码处理中不会发生延迟。
此外,可以提供下面标志设置作为用于HDD16中存储的压缩编码视频数据的元数据。读取标志设置表示HDD16中存储的压缩编码视频数据是否用作将要从HDD16中读取的数据,解码标志设置表示解码后的数据是否用作将要根据解码调度解码的数据,显示标志设置表示解码后的数据是否用作根据显示调度显示的数据。然后,根据重放速度或重放方向标志设置被自动地更新,从而增强调度的管理。
在这种情况下,可以将用于前面的可变速度重放操作的一系列调度和标志设置分别作为调度元数据(日志信息)管理。如果需要,元数据可以作为语法嵌入到压缩编码视频数据中或者记录到记录介质中,诸如HDD16。
解码器的数量,存储体的数量,解码器ID,等等可以被管理为元数据(结构日志信息)。此外,重放速度和重放方向可以被管理为元数据(重放日志信息)。在这种情况下,元数据可以作为语法嵌入到压缩-编码视频数据中,或者可以被记录到记录介质中,诸如HDD16。
通过参考元数据(日志信息),过去的调度处理可以被重新使用,从而使调度处理更快和更精确。
上述的元数据可以在诸如数据库的外部设备中被管理。
上述的实施例中,不需要解码器22,23,或24完全解码HDD16中存储的压缩编码视频数据。
更具钵地说,在本发明的实施例中,解码器22,23,或24可以不用执行反离散余弦变换(IDCT)仅仅解码和解量化可变长度代码或者解码器22,23,或24可以不解码它们而解量化可变长度代码。在这种情况下,解码器22,23,或24可以生成表示编码或解码处理已经被执行到的程度(例如,解量化)的日志信息,并且与不完全地解码的数据相关联地输出该日志信息。
此外,在前面的实施例中,不完全地编码的数据(例如,经过DCT和量化而不经过可变长度编码的数据)和如果需要的话与编码和解码处理相关的日志信息可以被存储到HDD16中。在这种情况下,解码器22,23,或24可以在CPU20的控制下解码不完全地编码的数据并且将它转换成基带信号。
更具体地说,解码器22,23,或24可以对不完全地编码的数据执行IDCT和解量化而不用解码可变长度代码,该不完全地编码的数据经受DCT变换和量化而不经受可变-长度编码。
在这种情况下,CPU20可以与该不完全地编码的数据相关联地获得与HDD16中存储的编码和解码处理相关的日志信息,并且根据所获得的日志信息进行解码调度。
在前面的实施例中,不完全地编码的数据和如果需要的话与编码和解码处理相关的日志信息可以被存储到HDD16中,并且解码器22,23,或24不需要在CPU20的控制下完全地解码该不完全地编码的数据。
并且,在这种情况下,例如,CPU20可以与不完全地编码的数据相关联地获得与HDD16中存储的编码和解码处理相关的日志信息,并且根据所获得的日志信息进行解码调度。解码器22,23,或24也可以生成与编码和解码处理相关的日志信息并且与不完全地解码的数据相关联地将其输出。
换句话说,解码器22,23,或24可以在CPU20的控制下部分地进行解码(执行解码处理步骤的一部分)。CPU20可以与不完全地编码的数据相关联地获得与HDD16中存储的编码和解码处理相关的日志信息并且根据所获得的日志信息执行由解码器22,23,或24执行的解码的调度。如果需要,解码器22,23,或24可以生成与编码和解码处理相关的日志信息并且与不完全地解码的数据相关联地输出日志信息。
HDD16中,与编码和解码处理相关的日志信息也可以被与压缩-编码流数据相关联地存储,并且CPU20可以根据该日志信息执行解码调度。即使当解码器22,23,或24可以在CPU20的控制下解码压缩编码的流数据并且将它转换成基带信号时,如果需要,也可以生成与编码和解码处理相关的日志信息并且将它与基带信号相关联地输出。
虽然在上述的实施例中重放装置1中包含多个解码器,解码器可以与重放装置1分离地提供。
在这种情况下,每个单独的解码器可以接收并解码压缩-编码的视频数据,并且显示和输出结果数据。此外,如上所述,每个解码器可以接收和部分地解码压缩-编码的视频数据,并且将所解码的数据同与编码和解码处理相关的日志信息一起输出到外部源。或者,每个解码器可以接收和部分解码编码数据并且将它转换为基带信号,并且将它输出到外部源。或者,每个解码器可以接收和部分地解码部分压缩-编码的视频数据并且将所解码的数据同与编码和解码处理相关的日志信息一起输出到外部源。
在上面的实施例中,CPU11和CPU20被单独地提供。然而,CPU11和CPU20可以被集成到一个用于控制整个重放装置1的CPU中,或者即使CPU11和CPU20被单独地配置,它们可以被集合到一个芯片中。
如果CPU11和CPU20被单独地提供,前面实施例中由CPU11执行的处理的至少一部分可以由CPU20采用时间-共享的方式执行。或者,由CPU20执行的处理的一部分可由CPU11以时间-共享的方式执行。也就是说,可以执行分发处理的处理器可以用作CPU11和CPU20。
或者,重放装置1可以被配置成连接到网络,并且在上述实施例中由CPU11或CPU20执行的处理的至少一部分可以由与网络连接的另一个装置的CPU执行。
同样,虽然前面实施例中存储器13和存储器21被单独地提供,它们可以被集成到重放装置1中的一个存储器中。
在前面的实施例中,HDD16,解码器22,23,和24,以及选择器25通过桥和总线相互连接以使它们被集成到重放装置1中。然而,那些元件中的一些可以通过有线或无线装置被外部地连接,或者那些元件可以用另一种连接模式相互连接。
虽然前面的实施例中压缩流数据被存储到HDD16中,它也可以被存储到另一种记录介质中,诸如光盘,磁光盘,半导体存储器,或磁盘。
CPU20,存储器21,存储器18,解码器22,23,和24,以及选择器25被安装在同一个扩展卡上,例如,PCI卡或PCI-express卡。然而,如果卡之间的传输速率高,可以使用例如,PCI-express技术,将那些元件分别安装在不同的扩展卡上。
可以使用除了MPEG之外的编码方法,例如,H264/AVC。
上述一系列的处理任务可以由硬件或软件来执行。如果使用软件,从记录介质将相应的软件程序安装到计算机内置专用硬件或计算机中,诸如个人计算机,它可以通过在其中安装各种程序来执行各种功能。在这种情况下,可以通过例如图51中所示的个人计算机201来形成图1中所示的重放装置1。
在图51中所示的个人计算机201中,中央处理单元(CPU)211根据只读存储器(ROM)212中存储的程序或从存储单元218加载到随机存取存储器(RAM)213中的程序来执行各种处理任务。RAM213中,CPU211执行处理所需的数据也被存储。
CPU211,ROM212,以及RAM213通过总线214相互连接。输入输出接口215也连接到总线214。
诸如键盘和鼠标的输入单元216,诸如显示器或扬声器的输出单元217,诸如硬盘的存储单元218,以及诸如调制解调器或终端适配器的通信单元219,连接到输入/输出接口215。通信单元219通过网络,诸如因特网,执行通信。
如果需要,驱动器220也连接到输入/输出接口215,如果需要,磁盘231,光盘232,磁光盘233,或半导体存储器234被安装到驱动器220,并且从该记录介质读出的计算机程序被安装到存储单元218中。
如上所述,如果软件用于执行一系列的处理任务,相应的软件程序可以从记录介质或通过网络安装到计算机中。
该记录介质可以是其中存储程序的封装介质,这些介质被分发以便将程序从装置分别提供到用户,该装置诸如磁盘231(包括软盘)、光盘232(包括压缩盘只读存储器(CD-ROM)或数字通用盘(DVD))、磁光盘233(包括小型盘(MD)(注册商标))、或半导体存储器234。或者,记录介质可以是存储单元218中包含的在其中存储程序的ROM212或硬盘,其当内置到装置中时被提供到用户。
在本说明书中,形成记录介质中记录的程序的步骤包括如本说明书中所述的以时间顺序执行的处理,且它们也包括并行或单独执行的处理。
本领域的技术人员应当理解,在所附权利要求或它的等同物的范围中根据设计要求和其他的因素可以作出不同的修改,组合,子组合和变更。
Claims (24)
1、一种用于解码压缩编码视频数据的信息处理装置,包括:
至少一个用于解码压缩编码视频数据的解码装置;
用于控制将压缩编码视频数据提供到解码装置的提供控制装置;以及
用于控制由提供控制装置和解码装置执行的处理的控制装置,
其中解码装置包括用于存储解码后的图片数据的存储体存储器,以及
当解码装置解码P-图片或B-图片时,控制装置通过改变第一计数器的值来控制释放存储体存储器中存储的图片的定时,其中第一计数器表示存储体存储器中存储的图片被参考的次数。
2、根据权利要求1的信息处理装置,其中控制装置通过参考第二计数器的值而释放存储体存储器中存储的图片,该第二计数器的值表示存储体存储器中存储的图片是否已经被显示。
3、根据权利要求1的信息处理装置,其中控制装置确定解码处理单元中包含的多个图片的解码处理顺序,以使I-图片和P-图片在B-图片之前被解码,其中解码处理单元用于由解码装置执行的解码处理。
4、根据权利要求1的信息处理装置,其中存储体存储器具有的存储体数量基于用于由解码装置执行的解码处理的解码处理单元中包含的图片的数量。
5、根据权利要求4的信息处理装置,其中存储体存储器存储的图片的数量比解码处理单元中包含的I-图片和P-图片的总数多2个。
6、根据权利要求4的信息处理装置,其中解码装置的数量是3,而每个解码装置包括存储8个图片的存储体存储器。
7、根据权利要求1的信息处理装置,其中控制装置根据重放速度指令装置提供的重放速度指令从用于解码装置执行的解码处理的解码处理单元中包含的图片中选择将要从解码装置输出的图片,
解码装置包括:
用于执行解码处理的解码处理执行装置,以及
用于控制将图片提供到解码处理执行装置的图片提供控制装置,
图片提供控制装置在控制装置的控制下提供将要从解码处理单元中包含的图片中选择出作为从解码装置输出到解码处理执行装置的图片的I-图片和P-图片以及B-图片,及
解码处理执行装置在控制装置的控制下解码从图片提供控制装置提供的每个图片并且还输出被选择为要从解码装置输出的图片的图片。
8、根据权利要求1的信息处理装置,其中当解码处理单元头部的图片是从解码装置输出的解码图片中的I-图片或P-图片时,控制装置控制解码装置以便解码装置开始解码的解码开始定时和解码装置开始输出解码后的图片的显示输出定时彼此移位第一预定的图片数量。
9、根据权利要求8的信息处理装置,其中第一预定的数量比L图片和P-图片的总数多1个。
10、根据权利要求1的信息处理装置,其中,当解码处理单元的头部的图片是从解码装置输出的解码后图片中的B-图片时,控制装置控制解码装置以便解码装置开始解码的解码开始定时和解码装置开始输出解码后的图片的显示输出定时彼此移位第二预定的图片数量。
11、根据权利要求10的信息处理装置,其中第二预定的数量比I-图片和P-图片的总数多2个。
12、根据权利要求1的信息处理装置,其中多个解码装置被提供,信息处理装置进一步包括:
输出切换装置,用于接收从多个解码装置输出的未压缩数据并且用于选择地输出所接收的未压缩数据,
其中控制装置进一步控制由输出切换装置执行的处理。
13、根据权利要求1的信息处理装置,其中存储体存储器具有小于用于由解码装置执行的解码处理的解码处理单元中包含的图片的数量的存储体数量。
14、根据权利要求1的信息处理装置,其中压缩编码视频数据包括图片组,并且
当接收到包括具有比从存储体存储器的存储体数量减三所获得的值大的数量的I-图片和P-图片的图片组时,控制装置将该图片组分割为解码处理单元,并且控制提供控制装置将解码处理单元的压缩编码视频数据提供到解码装置,每个解码处理单元包括具有比从存储体存储器的存储体数量减二所获得的值小的数量的L图片和P-图片。
15、根据权利要求14的信息处理装置,其中控制装置形成解码处理单元,以使被分成的解码处理单元中包含的I-图片和P-图片的总数不比前面解码处理单元中包含的固定帧的总数大预定数量或更多。
16、根据权利要求1的信息处理装置,其中压缩编码视频数据包括图片组,并且
当接收到包括具有比从存储体存储器的存储体数量减三所获得的值小的数量的I-图片和P-图片的第一图片组时,控制装置检测在时间上与第一图片组连续的第二图片组的结构,并且,如果第一图片组和第二图片组中包含的I-图片和P-图片的总数比从存储体存储器的存储体数量减二所获得的值小,则控制装置组合第一图片组和第二图片组以形成解码处理单元,并且控制提供控制装置将解码处理单元的压缩编码视频数据提供到解码装置。
17、根据权利要求16的信息处理装置,其中控制装置形成解码处理单元以使组合成的解码处理单元中包含的I-图片和P-图片的总数不比前面解码处理单元中包含的固定帧的总数大预定的数量或更多。
18、根据权利要求1的信息处理装置,其中压缩编码视频数据包括图片组,并且
控制装置检测第一图片组的结构以及在时间上与第一图片组连续的第二图片组的结构,并且如果第一图片组和第二图片组中包含的I-图片和P-图片的总数比从存储体存储器的存储体数量减三所获得的值的两倍小,控制装置组合第一图片组和第二图片组,然后分割所组合的图片组以形成第一解码处理单元和第二解码处理单元,并且控制装置控制提供控制装置分别将第一解码处理单元的压缩编码视频数据和第二解码处理单元的压缩编码视频数据提供到解码装置,每个解码处理单元包括比从存储体存储器的存储体数量减二所获得的值少的I-图片和P-图片。
19、根据权利要求18的信息处理装置,其中控制装置形成第一解码处理单元和第二解码处理单元以使第一解码处理单元或第二解码处理单元中包含的I-图片和P-图片的总数不比前面解码处理单元的固定帧的总数大预定的数量或更多。
20、一种用于信息处理装置的信息处理方法,该信息处理装置解码压缩编码的视频数据,该方法包括步骤:
设置表示用于执行解码处理的解码处理单元中包含的多个图片的每一个被参考的次数的计数器;
确定解码处理单元中包含的图片的解码处理顺序以便I-图片和P-图片在B-图片之前被解码;
根据所确定的解码处理顺序通过使用具有根据解码处理单元中包含的图片的数量而确定的存储体数量的存储体存储器来控制解码处理的执行;以及
当在所控制的解码处理中解码P-图片或B-图片时,通过改变计数器的值而控制释放存储体存储器中存储的图片的定时。
21、一种用于解码压缩编码视频数据的信息处理装置,包括:
用于存储压缩编码视频数据的存储装置;
用于将压缩编码视频数据从存储装置中读出的读出装置;
用于解码压缩编码视频数据的解码装置;
用于控制将压缩编码视频数据提供到解码装置的提供控制装置;
用于控制由提供控制装置和解码装置执行的处理的控制装置;以及
用于将重放速度指令提供到控制装置的重放速度指令装置,
其中解码装置包括用于存储解码后的图片数据的存储体存储器,并且
当解码装置解码P-图片或B-图片时,控制装置通过改变计数器的值而控制释放存储体存储器中存储的图片的定时,所述计数器表示存储体存储器中存储的图片被参考的次数。
22、一种用于信息处理装置的信息处理方法,该信息处理装置解码压缩编码的视频数据,该方法包括步骤:
读出存储单元中存储的压缩编码的视频数据;
设置表示用于执行解码处理的解码处理单元中包含的包括I-图片,P-图片和B-图片的多个图片的每一个被参考的次数的计数器;
确定解码处理单元中包含的图片的解码处理顺序以便I-图片和P-图片在B-图片之前被解码;
根据所确定的解码处理顺序通过使用具有根据解码处理单元中包含的图片的数量而确定的存储体数量的存储体存储器来控制解码处理的执行;以及
当在所控制的解码处理中解码P-图片或B-图片时,通过改变计数器的值而控制释放存储体存储器中存储的图片的定时,其中所述P-图片或B-图片位于所读取的压缩编码视频数据的解码处理单元所包含的图片中。
23、一种用于解码包括I-图片、P-图片和B-图片的压缩编码视频数据的信息处理装置,包括:
至少一个解码压缩编码的视频数据的解码器;
控制将压缩编码的视频数据提供到解码器的提供控制器;以及
控制由提供控制器和解码器执行的处理的控制器,
其中解码器包括用于存储解码后的图片数据的存储体存储器,并且
当解码器解码P-图片或B-图片时,控制器通过改变第一计数器的值而控制释放存储体存储器中存储的图片的定时,所述第一计数器表示存储体存储器中存储的图片被参考的次数。
24、一种用于解码压缩编码的视频数据的信息处理装置,包括:
存储压缩编码的视频数据的存储单元;
从存储单元读出压缩编码的视频数据的读出单元;
解码压缩编码的视频数据的解码器;
控制将压缩编码的视频数据提供到解码器的提供控制器;
控制由提供控制器和解码器执行的处理的控制器;以及
将重放速度指令提供到控制器的重放速度指令单元,
其中解码器包括用于存储解码后的图片数据的存储体存储器,及
当解码器解码P-图片或B-图片时,控制器通过改变计数器的值而控制释放存储体存储器中存储的图片的定时,所述计数器表示存储体存储器中存储的图片被参考的次数。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004311559 | 2004-10-26 | ||
JP2004311559 | 2004-10-26 | ||
JP2005242160 | 2005-08-24 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1801920A CN1801920A (zh) | 2006-07-12 |
CN100499784C true CN100499784C (zh) | 2009-06-10 |
Family
ID=36811637
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005100483830A Expired - Fee Related CN100499784C (zh) | 2004-10-26 | 2005-10-26 | 信息处理装置和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100499784C (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0720372A1 (en) * | 1994-12-30 | 1996-07-03 | Daewoo Electronics Co., Ltd | Apparatus for parallel encoding/decoding of digital video signals |
CN1224299A (zh) * | 1998-12-15 | 1999-07-28 | 国家科学技术委员会高技术研究发展中心 | 并行解码的数字信源解码器 |
JP2000341638A (ja) * | 1999-05-28 | 2000-12-08 | Victor Co Of Japan Ltd | 記録装置及び再生装置 |
-
2005
- 2005-10-26 CN CNB2005100483830A patent/CN100499784C/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0720372A1 (en) * | 1994-12-30 | 1996-07-03 | Daewoo Electronics Co., Ltd | Apparatus for parallel encoding/decoding of digital video signals |
CN1224299A (zh) * | 1998-12-15 | 1999-07-28 | 国家科学技术委员会高技术研究发展中心 | 并行解码的数字信源解码器 |
JP2000341638A (ja) * | 1999-05-28 | 2000-12-08 | Victor Co Of Japan Ltd | 記録装置及び再生装置 |
Also Published As
Publication number | Publication date |
---|---|
CN1801920A (zh) | 2006-07-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101135506B1 (ko) | 정보 처리 장치, 정보 처리 방법, 기록 매체, 및 프로그램 | |
CN101771843B (zh) | 信息处理设备和方法 | |
CN100541634C (zh) | 再现装置及方法 | |
TW392391B (en) | Variable length code detection in a signal processing system | |
CN100469123C (zh) | 带有音频的幻灯片 | |
CN100508585C (zh) | 用于控制数字视频比特流逆向播放的装置和方法 | |
US7447367B2 (en) | Method and device for condensed image recording and reproduction | |
CN101843099A (zh) | 存储视频数据的装置和方法 | |
TW201406161A (zh) | 由量化控制改良解碼器效能的方法與系統 | |
US20100098161A1 (en) | Video encoding apparatus and video encoding method | |
RU2265879C2 (ru) | Устройство и способ для извлечения данных из буфера и загрузки их в буфер | |
CN1929609B (zh) | 运动图像信号编码装置以及运动图像信号编码方法 | |
CN100499784C (zh) | 信息处理装置和方法 | |
US20040223739A1 (en) | Disc apparatus, disc recording method, disc playback method, recording medium, and program | |
CN102160390A (zh) | 信息处理设备、方法及程序 | |
CN100592777C (zh) | 信息处理装置和方法 | |
JPH11112972A (ja) | 複合化処理量情報の抽出装置および方法 | |
CN101090489B (zh) | 信息处理设备和信息处理方法 | |
US6278835B1 (en) | Method of controlling repetitive reading of group of pictures (GOP) data from a storage medium, and an apparatus therefor | |
CN100474914C (zh) | 控制数字视频数据的比特率的方法和装置 | |
CN102132568A (zh) | 运动检测装置 | |
TW200511231A (en) | Data recording device, data recording method, and recording control program | |
EP1233375A2 (en) | Image data encoding apparatus and method | |
KR101488506B1 (ko) | 카드 제어리스트의 생성 및 압축방법 | |
KR101280227B1 (ko) | 멀티미디어 데이터 디코딩 장치 및 방법 |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090610 Termination date: 20151026 |
|
EXPY | Termination of patent right or utility model |