信息处理设备和信息处理方法

文档序号:7654353阅读:102来源:国知局
专利名称:信息处理设备和信息处理方法
技术领域
本发明涉及信息处理设备和方法,并且尤其涉及适合于在编辑编码流的过程中使用的信息处理设备和方法。
背景技术
已知有这样的技术(例如,日本未经审查的专利申请公开10-98713),其中,当连接和编辑通过使用帧间相关进行编码而获得的不同MPEG(活动图像专家组)流时,可以通过使用多个解码器来仅仅解码流中的连接部分、即包括编辑点的GOP(画面组),连接通过解码器解码而获得的基带图像数据输出和在期望位置处切换的基带图像数据输出,以及重新编码所连接的基带图像数据输出,来执行用于连接不同流的编辑。
如图1所示,在连接用作编辑图像材料的第一个流中包括的剪辑2和用作该编辑图像材料的第二个流中包括的剪辑4的情况下,当未显示的第一个流中的部分1包括为解密剪辑2中的帧所必需的帧时,在解码器A中输入并且解码剪辑2以及包括在部分1中而且为参考所必需的帧组1’。将所解码的数据输入到选择器中。当第二个流中的部分3包括为解码剪辑4中的帧所必需的帧时,在解码器B中输入并且解码剪辑4以及包括在部分3中而且为参考所必需的帧组3’。将所解码的数据输入到选择器中。选择器切换其输出,以便连接与剪辑2(包括在用作编辑图像材料的第一个流中)相对应的基带图像数据和与剪辑4(包括在用作编辑图像材料的第二个流中)相对应的基带图像数据,并且将所连接的数据提供给编码器。可以由编码器重新编码和输出所提供的已连接数据。

发明内容
在相关领域的上述技术中,在暂时解码了包括连接部分的GOP之后,需要一段时间来重新编码所述连接部分。因此,不可以说相关领域的上述技术适合于诸如当连接点的位置经常改变以便进行编辑等并且确认连接点的位置时的情况。
此外,在相关领域的上述技术中,提供了多个解码器,并且将它们分配给用作视频材料的多个流,并且由外部选择器等控制切换来自这些解码器的输出。也就是说,相关领域的上述技术因为需要多个解码器而执行复杂的控制,并且必须控制到解码器的流输入以及通过解码获得的基带图像数据的输出定时。特别是在其中执行诸如刮擦(scrub)重放之类的随机重放的情况下,除非为每个解码器的输出控制选择器,否则就存在显示了不应该被显示的视频的可能性。因此,上述情况需要复杂的处理,其中取决于每个解码器输出要被用于显示的基带图像数据的定时来控制选择器。因此,该复杂的处理减缓了从用户输入用于指定连接点的操作起到输出所连接的流用于重放时的响应。
已经鉴于上述情况而提出了本发明,而且所期望的是输出当在期望的编辑点上连接编码流时获得的重放图像而不用执行复杂的控制。
根据本发明的实施例,提供了一种用于控制第一和第二编码流以便使之以其中第一和第二编码流彼此连接的形式输出的信息处理设备。该信息处理设备包括操作输入获取装置,用于获取表示要重放的第一和第二编码流中的重放部分的操作输入;存储装置,用于存储包括第一和第二编码流在内的编码流;传输控制装置,用于控制用于由操作输入获取装置所获取的操作输入的第一和第二编码流中的部分、和解码用于所获取的操作输入的第一和第二编码流中的部分所必需的编码流到存储装置的传输;解码装置,用于解码存储在存储装置中的第一和第二编码流,以便生成图像数据;以及命令装置,用于命令输出由解码装置所生成的图像数据的图像数据输出时间。
该信息处理设备还可以包括控制信息生成装置,用于基于由操作输入获取装置获取的操作输入,生成表示第一和第二编码流中的重放部分的控制信息。
在信息处理设备中,第一和第二编码流中的每一个可以包括画面组,而且传输控制装置可以以画面组为单位控制第一和第二编码流的传输。
信息处理设备还可以包括传输定时控制装置,用于通过预测由命令装置命令的图像数据输出时间来控制传输定时,以便在命令图像数据输出时间之前传输第一和第二编码流;以及解码控制装置,用于控制解码装置,以便在存储装置中存储的第一和第二编码流中优先解码当对要被解码的画面进行解码时被参考的参考画面。
传输控制装置可以控制第一和第二编码流的传输,以便以预定传输单位将第一和第二编码流作为传输数据传输到存储装置,以及当其到存储装置的传输受到控制的传输数据中要显示的画面数目不大于预定画面数目时,传输定时控制装置可以控制传输定时,以便将下一个传输数据传输到存储装置。
传输定时控制装置可以确定将第一和第二编码流传输到存储装置的传输单位。
在信息处理设备中,第一和第二编码流中的每一个可以包括包含B画面的画面组,并且当在B画面中包含基于其输出时间由命令装置命令的图像数据的画面(其中通过参考包括在不同于第一画面组的第二画面组中的画面来解码B画面,而第一画面组包括所述基于该图像数据的画面)时,传输控制装置可以将通过参考包括在第二画面组中的画面来解码的B画面、为解码B画面所必需的参考画面、以及第二画面组确定为传输到存储装置的传输单位,而且该B画面和参考画面包含在第一画面组中。
当在B画面中包括基于其输出时间由命令装置命令的图像数据的画面(其中通过参考包括在不同于第一画面组的第二画面组中的画面来解码B画面,而第一画面组包括所述基于该图像数据的画面),而且未将第一画面组和第二画面组中的每一个提供给存储装置时,传输控制装置可以将通过参考包括在第二画面组中的画面而解码的B画面、为解码B画面所必需的参考画面、以及第二画面组确定为传输到存储装置的传输单位,其中该B画面和参考画面包括在第一画面组中。
第一和第二编码流可以是基于活动图像专家组标准编码的流。
根据本发明的另一个实施例,提供了一种用于控制第一和第二编码流以便使之以其中第一和第二编码流彼此连接的形式输出的信息处理方法。该信息处理方法包括如下步骤获取表示要重放的第一和第二编码流中的重放部分的操作输入;存储第一和第二编码流;控制用于所获取的操作输入的第一和第二编码流中的部分、和为解码用于所获取的操作输入的第一和第二编码流中的部分所必需的编码流到存储装置的传输;通过解码所存储的第一和第二编码流生成图像数据;以及命令输出所生成的图像数据的图像数据输出时间。
根据本发明的实施例,获取表示要输出用于重放的第一和第二编码流中的重放部分的用户操作输入,并且基于所获取的操作输入,存储至少包括第一和第二编码流中的重放部分以及为解码该重放部分所必需的编码流的数据。解码所存储的数据,并且命令输出该解码数据的时间。
网络表示这样的机制,其中利用至少两个连接的设备,可以将信息从一个设备传送到另一个设备。通过网络执行通信的设备可以是分离的,并且可以是在单个设备中包括的内部块。
此外,通信类型不仅可以包括无线通信和有线通信,而且还可以包括其中使用了无线通信和有线通信这二者的通信,即,其中在一个间隔内执行无线通信而在另一个间隔内执行有线通信的通信。通信类型还可以包括其中有线通信被用作从一个设备到一个不同设备的通信而无线通信被用作从所述一个不同设备到所述一个设备的通信的通信。
重放设备可以是独立的设备,并且可以是用于在记录/重放设备和编辑设备的每一个中执行重放的块。
如上所述,根据本发明的实施例,可以输出解码数据。特别是,可以由单个解码器执行编辑,这是因为,基于用户的操作输入,将至少包括要输出的第一和第二编码流中的重放部分和为解码该重放部分所必需的编码流的数据提供给解码器。


图1是对相关技术领域的编辑过程的图示说明;图2是示出重放设备的配置的框图;图3是剪辑重放的图示说明;图4是参考图像的图示说明;图5是示出CPU功能的功能框图;图6是示出解码器的配置的框图;图7是GOP中的头部信息的图示说明;图8是流缓冲器GOP队列的图示说明;图9是已存储锚帧(stored anchor frame)和未存储锚帧(unstoredanchor frame)的图示说明;图10是流缓冲器GOP队列的图示说明;图11是存储体(bank)配置的图示说明;图12是GOP已存储锚队列的图示说明;图13A和13B是对管理已存储锚存储体的图示说明;图14A和14B是对管理已存储锚存储体的图示说明;图15是对GOP传输范围和解码的图示说明;图16是对GOP传输范围和解码的图示说明;图17是对GOP传输范围和解码的图示说明;图18是对GOP传输范围和解码的图示说明;
图19是说明由图2所示的CPU11进行的处理的流程图;图20是说明由图2所示的CPU20进行的处理的流程图;图21是说明显示传输单位确定处理的流程图;图22是说明前进传输单位(advancing-transfer-unit)确定处理的流程图;图23是说明传输完成发送处理的流程图;图24是说明传输完成发送处理的流程图;图25是说明传输完成发送处理的流程图;图26是说明传输完成发送处理的流程图;图27是对处理特定示例的图示说明;图28是说明输出范围指定命令设置处理的流程图;图29是示出CPU功能的功能框图;以及图30是显示了个人计算机的配置的框图。
具体实施例方式
下面参考附图对本发明的实施例进行描述。
图2是示出重放设备1的硬件配置的框图。
CPU(中央处理单元)11连接到北桥12。例如,CPU11控制诸如读取HDD16中存储的数据之类的处理,调度由CPU20执行的解码,并且生成和输出用于命令开始、改变、或者结束诸如解码和控制显示器输出之类的处理的命令。北桥12连接到PCI(外设部件互连/接口)总线14。例如,在CPU11的控制下,向北桥12提供HDD16中存储的数据,而且北桥12通过PCI总线14和PCI桥接器17将数据提供给存储器18。北桥12还连接到存储器13,并且与存储器13交换由CPU11进行处理所必需的数据。
存储器13是例如诸如DDR(双倍数据速率)存储器之类的高速可存取存储器,用于存储要由CPU11执行的处理所必需的数据。南桥15控制数据写入和读取。HDD16存储压缩编码的流数据。
PCI桥接器17在其中包括命令缓冲器31和结果缓冲器32,并且它连接到存储器18,其中存储器18在CPU11的控制下缓存从HDD16读取的流数据。在CPU11的控制下,PCI桥接器17可以提供从HDD16读取的流数据,并且将它们存储在存储器18中。此外,在CPU20的控制下,PCI桥接器17可以读取存储器18中存储的流数据,并且可以将所读取的流数据提供给连接到解码器23的存储器22。PCI桥接器17还控制与命令或者结果相对应的控制信号通过PCI总线14或者控制总线19的交换。
命令可以由CPU11通过北桥12和PCI总线14写入到命令缓冲器31中,而且可以由CPU20通过控制总线19从命令缓冲器31中读取所写入的命令。此外,可以由CPU20通过控制总线19将命令的结果写入到结果缓冲器32中,而且可以通过北桥12和PCI总线14从结果缓冲器32中读取所写入的结果。
在PCI桥接器17的控制下,存储器18可以存储从HDD16读取的压缩编码流数据。存储器18由例如SDRAM(同步动态随机存取存储器)形成。
CPU20通过控制总线19读取写入到PCI桥接器17的命令缓冲器31中的命令,并且基于该命令控制由PCI桥接器17、存储器22、和解码器23执行的处理。存储器21存储由CPU20的处理所必需的数据。
在CPU20的控制下,解码器23通过解码所提供的压缩编码流数据来输出未经压缩的视频信号。解码器23可以在充分地短于用于显示一帧的显示时间的时间内解码一帧,其中该时间是例如显示时间的大约1/4或者1/3。解码器23连接到存储器22。存储器22可以存储从PCI桥接器17提供的压缩编码的流数据,或者通过解码器23的解码而获得的未经压缩的视频信号。此外,解码器23可以作为未被包括在重放设备1中的分离设备提供。
图2所示的重放设备1可以被形成为单个设备或者可以由多个设备形成。例如,通过在图2所示的重放设备1中这样配置CPU11、北桥12、存储器13、南桥15、和HDD16以便将它们包括在个人计算机的配置中,以及向诸如PCI卡或者PCI-Express卡之类的扩展卡或者扩展板提供PCI总线14、PCI桥接器17、存储器18、控制总线19、CPU20、存储器21、存储器22、和解码器23的功能,个人计算机可以通过将该扩展卡或者板安装到个人计算机上而起到重放设备1的作用。作为选择,重放设备1可以通过将上述功能块进一步划分为多个设备来进行配置。
接下来,下面描述重放设备1的操作。
HDD16存储依照MPEG中的长GOP格式获得的压缩视频数据。
仅仅将部分的连续视频剪裁为“剪辑”。收集多个这样的剪辑并且重放所收集的剪辑以便观看单个场景的连续视频,被称为“剪辑重放”。
具体而言,如图3所示,在连接用作编辑图像材料的第一个流中所包括的剪辑2和用作该编辑图像材料的第二个流中所包括的剪辑4的情况下,当第一个流中未被显示的部分1(未被包括在剪辑2中)包括解码剪辑2中的帧所必需的帧时,在解码器23中输入并且解码剪辑2和参考所必需的帧组1’。此外,当第二个流中未被显示的部分3(未被包括在剪辑4中)包括解码剪辑4中的帧所必需的帧时,在解码器23中输入并且解码剪辑4和参考所必需的帧组3′。解码器23可以输出通过将与第一流(用作编辑图像材料)中的剪辑2相对应的基带图像数据和与第二流(用作编辑图像材料)中的剪辑4相对应的基带图像数据进行连接而获得的连接数据。
在这时候,取决于每个剪辑的不连续性而没有生成显示输出。然而,存在需要解码的帧,即,图3所示的帧组1’和3’。
如图4所示,当流A中的GOP在画面B9和B10之间具有不连续性,而且直至画面B9为止的多个画面形成剪辑A时,为了解码在剪辑A中的GOP的结尾处的画面B9,需要未被包括在剪辑A中的画面P11。当流B在GOP和下一个GOP之间具有剪辑间隙,而且在下一个GOP开头处的画面B0和后续的画面形成剪辑B时,为了解码在剪辑B中的GOP开头处的画面B0和B1,需要未被包括在剪辑B中的先前GOP中的全部I和P画面。换句话说,需要被解码以便创建用于要显示的帧的参考图像并且未被显示的帧的最大数目是六。
CPU11使用北桥12来控制南桥15,以便基于用于在剪辑重放中使用的流和从操作输入单元(未示出)提供的表示剪辑重放中的重放范围的操作输入,从HDD16中读取多个压缩编码流数据项的预定部分。CPU11使用PCI总线14和PCI桥接器17来提供所读取的预定部分,并且将它们存储在存储器18中。此外,CPU11使用北桥12和PCI总线14在PCI桥接器17的命令缓冲器31中写入表示GOP中的数据到存储器18的传输完成的GOP传输完成命令,表示所传输的GOP的显示范围、即在剪辑重放中要显示的帧范围的输出范围指定命令,表示重放速度的信息(包括重放方向信息),用于启动解码的命令,和用于启动显示的命令。
CPU20基于写入到PCI桥接器17的命令缓冲器31中的命令来确定压缩编码流数据的解码和输出(显示)调度。具体而言,CPU20确定用于将压缩编码流数据从存储器18传输到存储器22的定时,用于将压缩编码流数据从存储器22输入到解码器23的定时,用于为每一帧执行解码的定时,参考图像的存储体位置的设置,解码模式中对存储体存储器的分配,以及解码画面的输出、即显示定时。
CPU20基于所确定的调度,控制PCI桥接器17以便将存储器18中存储的压缩编码流数据提供给存储器22和解码器23。
CPU20控制解码器23,以便解码通过存储器22提供的压缩编码流数据。解码器23通过解码所提供的压缩编码流数据来生成和输出未经压缩的基带图像数据。
具体而言,在CPU20的控制下,解码器23优先解码提供给存储器22的GOP中的I和P画面,并且将所获得的未经压缩的基带图像数据存储在存储器22中。因为解码器23可以在充分地短于用于显示一帧的显示时间的时间内解码一帧,所以,当不执行用于解码要显示的帧的处理时,解码器23优先解码存储器22中存储的GOP的I和P画面,并且将所获得的未经压缩的基带图像数据存储在存储器22中。因此,当从CPU11发送了显示命令时,可以输出与所存储的I和P画面相对应的基带图像数据,或者可以通过使用这些画面作为参考图像来执行高速解码。具体而言,当解码器23从CPU11接收了用于显示帧的显示命令时,如果存储器22存储了用于显示的未经压缩的基带图像数据,则解码器23输出所存储的未经压缩的基带图像数据,而如果存储器22存储了未经压缩的基带图像数据,则在必要时,通过使用所存储的未经压缩的基带图像数据作为参考图像来解码要显示的帧,解码器23生成和输出了未经压缩的基带图像数据。虽然可以优先解码GOP中包括的全部I和P画面,但是可以优先解码GOP中包括的仅仅某些I和P画面。
在CPU20的控制下,解码器23可以优先解码I和P画面,并且可以通过控制解码器23中的选择器,来实现其中收集和重放多个剪辑作为连续视频的剪辑重放。参考图6到14描述解码器23的详细配置和操作。
接下来,在下面参考图5中的功能框图来描述CPU11和20的功能。
CPU11具有包括操作输入获取单元51、传输GOP确定单元52、GOP传输定时控制单元53、输出范围信息设置单元54、寄存器55、传输完成命令发送单元56、显示命令发送单元57、和结果获取单元58在内的功能。
操作输入获取单元51通过南桥15和北桥12获取从操作输入单元(未示出)提供的用户操作输入。必要时,操作输入获取单元51将相应的操作输入信息提供给传输GOP确定单元52、GOP传输定时控制单元53、或者输出范围信息设置单元54。
基于从操作输入获取单元51提供的操作输入信息,传输GOP确定单元52在包括多个流的剪辑中查找要重放以便输出的帧,查找用于解码上述帧所必需的帧,并且通过预测显示帧的次序来执行调度。此外,传输GOP确定单元52确定要传输到存储器18的GOP,将确定结果报告给GOP传输定时控制单元53和输出范围信息设置单元54,并且控制要从HDD16中存储的流传输的GOP的读取和传输。
如上所述,基本上以GOP为单位执行帧数据传输。然而,在包括通过在任意位置上分段多个流而获得的多个剪辑的剪辑流中,在每个剪辑的开头和结尾处的每个GOP可能不包括在用作编辑材料的流中的一个GOP的全部内容。此外,如参考图4所述,为了解码在每个剪辑的开头和结尾处的GOP中包括的帧,需要将未被显示的帧提供给解码器23。例如,当在每个剪辑的开头或者结尾处的GOP不包括用作编辑材料的流中的一个GOP的全部内容时,可以传输在该用作编辑材料的流中的一个GOP的全部内容,并且可以仅仅传输所需要的部分。此外,例如,当在剪辑的开始处的GOP包括在用于编辑材料的流中的MPEG长GOP的开始处的两个B画面时,为了解码这些B画面,需要将邻近该GOP并且未被包括在该剪辑中的先前GOP提供给解码器23。在这种情况下,传输GOP确定单元52确定要传输到存储器18的GOP,以便可以将甚至未被包括在剪辑中的GOP也提供给解码器23。
此外,如上所述,基本上以GOP为单位执行帧数据传输。当如参考图4所述那样在刮擦重放中最初要显示的帧或者在剪辑开始处的帧是在GOP开始处的B0和B1时,需要例外处理,以便参考先前GOP中的帧。
特别是,当由于高速重放等导致重放帧不连续时,对于在刮擦重放中最初被显示的帧、或者包括在剪辑开头处的帧的GOP(n),必须为通过添加先前的GOP(n-1)而获得的两个GOP执行传输。然而,在刮擦重放中,因为频繁出现重放位置的高速移动,所以,高度可能的是,要显示的下一个帧被包括在不同于GOP(n)的GOP中。在这种情况下,传输GOP(n)中的全部数据增加了不必要的传输数据。
因此,当要显示的帧是在GOP开始处的B0和B1时,传输GOP确定单元52作为例外处理来控制数据传输,以便以其中GOP(n)中的I2、B0、和B1被添加到数据中的形式、将数据传输到邻近GOP(n)(其包括要显示的帧)的GOP(n-1)中。在那之后,当响应于诸如命令正常重放之类的命令而命令GOP(n)中包括的帧的显示时,如果照常传输GOP(n),则所传输的数据仅仅包括I2、B0、和B1的冗余,并且控制不会变得复杂。这样减少了数据传输方面的损失,因此增加了数据传输效率。
必要时,通过使用寄存器55中提供的各个控制队列管理存储器18中存储的GOP,GOP传输定时控制单元53控制用于将GOP传输到存储器18的定时。
换句话说,如上所述,虽然基本上以GOP为单位执行帧数据传输,但是当命令帧的显示时,包括该帧的GOP的传输极大地恶化了从命令帧的显示起直至该帧的显示为止的响应。因此,GOP传输定时控制单元53通过预测要显示的帧,在命令显示之前传输GOP数据。这允许事先在解码器23中解码所传输的GOP的I和P画面,并且将其存储在存储器22中。
此外,在每个剪辑的开始和结尾处的GOP可能不包括在用作编辑材料的流中的一个GOP的全部内容。因此,当传输具有少量帧的GOP,或者传输具有大量帧并且具有少量要显示的帧的GOP时,存在除非加快了下一个GOP的传输否则不能执行显示的可能性。因此,GOP传输定时控制单元53通过考虑包括在所传输的GOP中的要显示的帧的数目,来控制GOP传输定时。稍后描述传输定时控制的细节。
输出范围信息设置单元54确定由传输GOP确定单元52确定为要传输的GOP的显示输出范围,并且生成输出范围信息。在完成了GOP的传输之后,在提供传输完成命令之前,输出范围信息设置单元54控制将输出范围指定命令提供给命令缓冲器31。
换句话说,如上所述,虽然基本上以GOP为单位执行帧数据传输,但是在每个剪辑的开始和结尾处的GOP可能不包括在用作编辑材料的流中的一个GOP的全部内容。此外,当传输包括要被参考以便对剪辑中所包括的帧进行解码的帧的GOP时,存在不能显示GOP中的全部帧以便输出的可能性。输出范围信息设置单元54确定由传输GOP确定单元52确定为要传输的GOP的显示输出范围,生成输出范围指定命令作为输出范围信息,并且将输出范围指定命令连同传输完成命令一起发送到命令缓冲器31。
寄存器55存储由GOP传输定时控制单元53使用来控制GOP传输定时的各个队列,处理所必需的各个参数等。
传输完成命令发送单元56通过北桥12和PCI总线14将传输完成命令发送到PCI桥接器17中的命令缓冲器31。稍后描述对用于发送传输完成命令的定时的控制的细节。
显示命令发送单元57通过北桥12和PCI总线14将显示命令发送到PCI桥接器17中的命令缓冲器31。稍后描述有关控制用于发送显示命令的定时的细节。
结果获取单元58通过北桥12和PCI总线14从PCI桥接器17的结果缓冲器32中获取响应于命令的结果。
CPU20具有包括命令获取单元71、存储器间传输控制单元72、解码调度单元73、解码控制单元74、寄存器75、和结果发送单元76在内的功能。
命令获取单元71通过控制总线19获取在从输出范围信息设置单元54、传输完成命令发送单元56、或者显示命令发送单元57发送之后存储在PCI桥接器17的命令缓冲器31中的命令。
传输GOP确定单元52基于由命令获取单元71获取的传输完成命令和显示命令,控制被传输到存储器18的GOP到存储器22的传输。
解码调度单元73基于由命令获取单元71获取的输出范围指定命令、传输完成命令、和显示命令,确定用于解码在下述每个GOP中包括的帧的解码调度,其中每个GOP到存储器22的传输由存储器间控制单元72所控制。通过使用其中不执行显示所必需的解码的时间,解码调度单元73对解码进行调度,以便在存储器22中存储的帧当中、优先解码I和P画面。可以优先解码全部的I和P画面或者它们中的至少某一些。此外,通过使用在事先解码之后存储在存储器22中的I和P画面,解码调度单元73对解码进行调度,以便可以快速地输出命令了其显示的帧的基带图像数据。
解码控制单元74基于由解码调度单元73获得的解码调度来控制解码器23的解码。
寄存器75存储由存储器间传输控制单元72使用来管理提供给每个存储器和每个解码器的GOP的各个控制队列,以及处理所必需的各个参数。
结果发送单元76通过控制总线19将响应于由命令获取单元71所获取的传输完成命令和显示命令的结果发送到PCI桥接器17中的结果缓冲器32。
在重放设备1中,并不是将多个剪辑分配给多个解码器,而是通过将包括在剪辑中的帧和解码所包括的剪辑所必需的帧提供给解码器23,并且事先解码I和P画面,单个解码器可以实现剪辑重放。此外,重放设备1可以执行剪辑流可变速度重放、刮擦重放、以及在短的间隔内连续命令前向重放和后向重放的瞬变重放。
与相关领域中的其中使用了多个解码器的情况相比,重放设备1的上述配置使得有可能消除对在解码器的输入和输出级中提供选择器的需要,并且还简化了控制。
如上所述,在重放设备1中,在事先传输的GOP数据的I和P画面当中,至少一些画面在其中不执行用于显示的解码的时间内被解码和存储,借此,响应于显示命令,如果早已存储了通过解码而获得的基带图像数据,则可以输出基带图像数据,并且如果未存储要显示的帧,则在必要时可以解码和输出要通过使用基带图像数据作为参考图像来显示的帧。
图6是示出解码器23的进一步详细配置的框图。
输入处理器151将从PCI桥接器17提供的压缩编码流数据存储在流缓冲器22-1中。输入处理器151还从所提供的流数据中获取开头地址、数据大小、画面头部信息、Q矩阵等,并且将它们提供给流信息缓冲器22-2。
流缓冲器22-1是图2所示的由例如SDRAM形成的存储器22中包括的预定存储区域。流缓冲器22-1缓冲从输入处理器151提供的流数据,并且将所缓冲的数据提供给选择器152。流缓冲器22-1至少可以存储下述GOP中的流数据项,其中该GOP的数目等于能够在稍后描述的帧存储器22-3中存储的I和P画面(也称为“锚帧”)的GOP数目。此外,优选为,使流缓冲器22-1存储其数目不小于能够在帧存储器22-3中存储的锚帧的GOP数目的GOP,这是因为,在诸如当重放方向被反向并且改变重放开始位置时的情况下,重放设备1很可能处理这些情况而不将新的GOP提供给流缓冲器22-1。
流缓冲器22-1是图2所示的存储器22中所包括的预定存储区域,并且按照画面存储以画面为单位从输入处理器151提供的、诸如开头地址、数据大小、画面头部信息、和Q矩阵之类的信息。
解码控制器153基于从CPU20提供的控制信号,通过从流信息缓冲器22-2中读取存储在流缓冲器22-1中的每个画面的地址和流信息,来控制解码器23中的功能块。
具体而言,由CPU20在基于输出范围指定命令而设置的解码调度的基础上控制解码控制器153。通过控制选择器152,解码控制器153控制用于解码提供给解码处理器154的每个画面的定时。此外,解码控制器153控制选择器155,以便控制通过在解码处理器154中的解码而获得的基带图像信号在帧存储器22-3中的存储位置。通过控制选择器156,解码控制器153控制作为参考图像从帧存储器22-3提供的基带图像信号到解码处理器154的提供。也就是说,解码控制器153控制在解码处理器154中执行的P或者B画面解码过程中使用的参考图像的提供。根据基于来自CPU20的输出范围指定命令而设置的解码图像数据输出调度,来控制解码控制器153,借此,通过控制在由选择器157从帧存储器22-3中读取之后输出的基带图像信号,解码控制器153控制被输出用于显示等的基带图像信号(通过解码获得)的输出,即,解码控制器153控制重放图像显示定时。
在解码控制器153的控制下,选择器152以画面为单位将流缓冲器22-1中存储的流数据提供给解码处理器154。
解码处理器154通过参考从选择器152提供的参考图像(在必要时)来解码从选择器152提供的MPEG视频流,并且向选择器155提供通过解码获得的基带(未经压缩的)图像信号。
在解码控制器153的控制下,选择器155确定在通过解码处理器154中的解码获得之后提供的基带图像信号在帧存储器22-3中的记录位置。也就是说,选择器155确定存储基带图像信号的存储体位置,并且在帧存储器22-3中的所确定的存储体位置处存储所提供的基带图像信号。换句话说,解码控制器153确定通过解码处理器154中的解码获得的基带图像信号在帧存储器22-3中的存储体位置,并且控制选择器155,以便在所确定的存储体位置处记录该基带图像信号。
帧存储器22-3是图2所示的存储器22中所包括的预定存储区域。帧存储器22-3包括用于存储用作其它画面的参考图像的I和P画面的参考存储体,以及为了显示B画面而提供的显示专用存储体等。参考存储体包括用于在事先解码之后存储的锚帧的参考存储体,和用于取决于重放输出定时而解码的锚帧的不同参考存储体。稍后参考图11描述帧存储器22-3中的存储体配置示例。
在解码控制器153的控制下,选择器156从存储器22-3中读取在被指定为前向P画面的参考图像存储体的一个存储体中存储的帧图像数据,以及在被指定为前向和后向B画面的参考图像存储体的一个存储体处存储的帧图像数据。选择器156将所读取的帧图像数据提供给解码处理器154。
在解码控制器153的控制下,选择器157指定并且读取帧存储器22-3中存储的帧图像数据中的输出图像。也就是说,通过为要显示的帧指定存储体,选择器157读取和输出该帧。
接下来,描述解码器23的操作。作为一个操作示例,下面描述解码其中帧的数目为15而锚帧的数目为3的MPEG长GOP的情况。
如图7所示,提供给输入处理器151的每个GOP包括不同于包括I、P、和B画面的画面数据的GOP头部信息。可以将GOP头部信息给予在HDD16中存储的流数据中所包括的每个GOP。作为选择,在由CPU20生成GOP头部信息之后,可以将GOP头部信息给予在从HDD16读取之后提供给解码器23的流数据中所包括的每个GOP。
GOP的头部信息包括例如GOP ID、GOP中包括的帧的数目、以及在GOP中包括的锚帧的数目。
输入处理器151向流缓冲器22-1提供画面数据,并且向流信息缓冲器22-2提供诸如GOP头部信息、画面单元中的开头地址、数据大小、画面头部信息、和Q矩阵之类的信息。
流信息缓冲器22-2存储诸如GOP头部信息、画面单元中的开头地址、数据大小、画面头部信息、和Q矩阵之类的信息。
基于流信息缓冲器22-2中存储的信息(诸如GOP头部信息、画面单元中的开头地址、数据大小、画面头部信息、和Q矩阵),解码控制器153生成要解码的GOP中的每个画面的解码相关信息,并且管理图8所示的流缓冲器GOP队列,其中该队列包括按照通过重新排序而获得的显示次序的、GOP头部信息和多条解码相关信息。
解码相关信息是当请求输出画面时进行解码所必需的。解码相关信息包括例如类型信息、解码图像存储体、前向参考图像索引号、和后向参考图像索引号当中的必需项,其中,类型信息指示画面具有已存储锚帧、未存储锚帧、在GOP开始处的B画面、和在不同于GOP开头的位置处的B画面当中的哪种画面类型;解码图像存储体是表示通过解码获得的基带图像的存储单元的信息;前向参考图像索引号表示解码画面所必需的参考图像当中的前向参考图像;而后向参考图像索引号表示解码画面所必需的参考图像当中的后向参考图像。
在流缓冲器GOP队列中,可以将用于一个GOP的解码相关信息作为一个数据单元来管理。流缓冲器GOP队列具有FIFO(先进先出)排列,或者其被这样配置,以便可以弹出最远离当前正在重放的GOP的一个GOP的信息。
虽然解码器23可以在B画面解码之前事先解码全部锚帧,但是以下的描述基于下述假定解码器23事先解码以几个帧的间隔选择的锚帧。
具体而言,如图9所示,例如,解码器23还可以以距离I画面两个帧的间隔事先解码GOP中的锚帧。在下文中将事先被解码并存储在存储体中的锚帧称为“已存储锚帧”。在下文中将未被事先解码的锚帧、即未被存储在存储体中的锚帧称为“未存储锚帧”。
具体而言,在其中例如如图10所示输入了一个GOP(在该GOP中帧数目为15,锚帧数目为3,而且GOP ID为1),而且GOP ID1的GOP已存储锚信息指示由该GOP的已存储锚帧使用的开头存储体是“1 ”的情况下,将信息存储在流缓冲器GOP队列中。
在图10中,“LB”表示开头B画面,“S”表示已存储的帧,“NB”表示非开头(non-leading)B画面,且“U”表示未存储的帧。
换句话说,GOP的GOP头部信息包含作为GOP ID的“1 ”,作为帧数目的“15”,以及作为锚帧数目的“5”。解码相关信息包含基于画面显示次序而重新排序的画面的画面类型、已解码图像存储体、前向参考图像索引号、和后向参考图像索引号。在这种情况下,并不是使用被分类为I、B和P画面的分类,而是每个画面类型通过下述分类来表示基于画面是已存储锚帧和未存储锚帧中的哪一个帧而进行的分类,基于画面是在GOP开始处的两个B画面中的哪一个而进行的(开头B画面)分类,或者基于画面是除了在GOP开始处的B画面之外的B画面当中的哪一个而进行的(非开头B画面)分类。索引为2的I画面、索引为8的P画面、和索引为14的P画面被分类为已存储锚帧。索引为5的P画面和索引为11的P画面被分类为未存储锚帧。
仅仅为已存储锚帧事先保留解码图像存储体,并且用存储体编号来对其进行编号。对于未存储锚帧和B画面而言,在生成解码相关信息时还没有保留解码图像存储体。因此,解码图像存储体的存储体编号未被定义。此外,因为存在在初始设置时间上流不包括先前GOP的可能性,所以未设置其索引号为0和1的开头B画面(使用前向GOP中的I或者P画面作为其参考图像的B画面)。当在解码过程中进行搜索之后获得了前向GOP中的最后一个I或者P画面时,设置开头B画面。在那之后,设置用于其它B画面的前向参考图像索引号和后向参考图像索引号,以及用于其它P画面的前向参考图像索引号。
基于在流缓冲器GOP队列中管理的解码相关信息,解码控制器153为所提供的流数据中的每一个帧控制解码定时。
换句话说,如在参考图9描述的情况下那样,并不是将全部锚帧设置为已存储锚帧,而是解码控制器153仅仅将以距离I画面两个帧的间隔而选择的锚帧、或者以几个帧的间隔选择的锚帧设置为已存储锚帧。解码控制器153控制选择器152,以便使解码处理器154在执行B画面解码之前在其中不执行解码的时间中事先解码所设置的锚帧。
如上所述,解码处理器154可以在充分地短于用于显示一帧的时间的一个时间(例如,为用于显示一帧的时间的大约1/3到1/4)内解码一帧。因此,解码控制器153控制选择器152、155、和156,以便在以GOP为单位事先解码了能够被存储在帧存储器22-3中的已存储锚帧之后,提供所解码的帧,并且将其存储在帧存储器22-3的预定存储体中。
图11示出了在下述这样的情况下的存储体配置,其中在所述情况下可以将用于存储X帧的基带图像数据的临时存储区和用于存储两帧的显示图像数据的临时存储区保留作为帧存储器22-3,并且将每隔一个帧选择的锚帧设置为已存储锚帧,而且该情况即为其中可以保留用于(X+2)个存储体的存储体存储器的情况。
在帧存储器22-3中的用于(X+2)个帧的存储体当中,将两个存储体用作用于B画面或者未存储锚帧的显示专用存储体。其它存储体、即用于X帧的存储体被用作参考图像。在用于X帧的参考图像存储体当中,一个被用作未存储锚存储体,其用于存储当事先解码已存储锚帧时用作参考图像的未存储锚帧的基带图像。另一个被用作B画面未存储锚存储体,其用于存储当解码要显示的B画面时用作参考图像的未存储锚帧的基带图像。用于(X-2)个帧的其它存储体被用作用于存储经解码后的已存储锚帧的已存储锚存储体。
具体而言,当解码作为已存储锚帧的I画面时,单独解码该I画面,并将其存储在已存储锚存储体中。此外,当解码作为已存储锚帧的P画面时,解码先前邻近于该已存储锚帧的未存储锚帧(这通过参考存储在已存储锚存储体中并且进一步地先前邻近于那里的已存储锚帧的基带图像来进行),并且在未存储锚存储体中存储经解码后的未存储锚帧。因此,通过参考所存储的未存储锚帧来解码作为已存储锚帧的P画面,并且将解码后的P画面存储在已存储锚存储体中。
当命令显示GOP(其中事先将锚帧存储在已存储锚存储体中)的帧当中的一帧时,如果被命令显示的帧是已存储锚帧,则读取并显示存储在已存储锚存储体中的已存储锚帧的基带图像。如果被命令显示的帧是还未被存储的已存储锚帧,则将存储在已存储锚存储体中的已存储锚帧的基带图像用作参考图像,解码该未存储锚帧,并且将其存储在显示专用存储体中以便用于显示。如果被命令显示的帧是B画面,则通过参考存储在已存储锚存储体中且其先前锚帧邻近于未存储锚帧的已存储锚帧的基带图像,来解码未存储锚帧,并且将解码后的帧存储在B画面显示未存储锚存储体中。通过参考所存储的解码后的帧和存储在已存储锚存储体中的已存储锚帧的基带图像,解码要显示的B画面,并且将其存储在显示专用存储体中以便用于显示。
换句话说,事先解码GOP中包括的已存储锚帧和作为用于解码该已存储锚帧的参考图像所必需的未存储锚帧,并且将它们存储在帧存储器22-3中。在未存储锚帧当中,可以不解码不是作为用于解码已存储锚帧的参考图像所必需的未存储锚帧(例如,当GOP中的时间上最后的锚帧是未存储锚帧时),直到命令显示该未存储锚帧为止。
下面参考图12描述解码控制器153对帧存储器22-3的管理。
如图12所示,解码控制器153通过使用已存储锚信息和用于存储在GOP已存储锚队列中的多个帧的多条GOP已存储锚信息,来控制已存储锚帧解码定时。已存储锚信息是为创建GOP已存储锚队列所必需的,并且包括使用中的开头和结尾存储体的信息以及使用中的存储体的数目。GOP已存储锚队列是双向队列,其中可以在队列的开始和结尾中的每一个处压入数据。GOP已存储锚队列为每个GOP存储GOP已存储锚信息,该信息与在使用中的开头和结尾存储体之间存储的已存储锚帧相关。在GOP已存储锚队列中,为每个GOP存储GOP已存储锚信息(在已存储锚信息中描述了),该信息是在使用中的开头和结尾存储体之间存储的已存储锚帧的信息。GOP已存储锚信息是为确定每个GOP中的已存储锚帧的基带图像的存储体目的地所必需的。GOP已存储锚信息包括对应GOP的GOP ID、在该GOP的已存储锚帧中使用的开头存储体、以及由该GOP中的已存储锚帧使用的存储体数目。
解码控制器153通过执行解码次序调度来控制选择器156,以便通过使用其中不执行对要显示的未存储锚帧或者B画面的解码的时间,来优先解码已存储锚帧,借此,在解码处理器154中提供和解码已存储锚帧,解码控制器153在参考已存储锚信息和用于存储在GOP已存储锚队列中的多个帧的多条GOP已存储锚信息的同时,确定所解码的已存储锚帧的基带图像数据要被存储在(帧存储器22-3中的)哪个参考存储体中。解码控制器153还控制选择器155,以便在帧存储器22-3中的参考存储体的预定位置处存储所解码的已存储锚帧的基带图像数据。
当要事先解码的已存储锚帧是I画面时,控制选择器152以便将I画面提供给解码处理器154,并且解码该I画面。在那之后,控制选择器155以便将所解码的画面提供给帧存储器22-3的参考存储体当中的已存储锚存储体之一。
此外,当要事先解码的已存储锚帧是P画面时,首先,在解码处理器154中提供并且解码邻近于该P画面的最后一个未存储锚帧,随后控制选择器155,以便将所解码的画面存储在帧存储器22-3的参考存储体当中的未存储锚存储体中。控制选择器152,以便将作为已存储锚帧的P画面提供给解码处理器154,并且控制选择器156,以便通过参考未存储锚存储体中存储的基带图像数据来执行P画面解码。此外,控制选择器155,以便将所解码的画面存储到帧存储器22-3的参考存储体当中的已存储锚存储体之一中。
解码控制器153使用锚帧解码队列来管理用于对GOP中所包括的锚帧当中的未存储锚帧(其是作为用于解码要事先解码的已存储锚帧的参考图像所必需的)和已存储锚帧进行解码的调度,以及在执行解码之后的参考存储体的存储体位置。具体而言,解码控制器153确定从GOP的开头起GOP中的每个画面是作为用于解码已存储锚帧的参考图像所必需的未存储锚帧还是一般的未存储锚帧。解码控制器153在每个要解码的画面中设置存储通过解码而获得的基带图像数据的存储体位置,并且将该存储体位置压入锚帧解码队列中。
下面参考图13A和13B、以及图14A和14B来描述已存储锚存储体管理的特定处理示例。下面描述了其中十个存储体可以被用作已存储锚存储体、即14帧的基带图像数据可以被存储在帧存储器22-3中的情况。
在图13A所示的状态中,具有GOP ID1、GOP ID2、和GOP ID3的早已解码了的已存储锚帧的基带图像被存储在帧存储器22-3的十个已存储锚存储体当中的存储体0到3、存储体4到6、和存储体7到9中。在这时候,由解码控制器153管理的已存储锚信息和GOP已存储锚队列进入图13B所示的状态。具体而言,基于已存储锚信息的管理指示使用中的开头存储体是存储体1,使用中的结尾存储体是存储体9,而且使用中的存储体数目是9。基于GOP已存储锚队列的管理指示具有GOP ID1的已存储锚存储体使用三个存储体、即存储体1到3,具有GOP ID2的已存储锚存储体使用三个存储体、即存储体4到6,以及具有GOP ID3的已存储锚存储体使用三个存储体、即存储体7到9。
接下来,当提供其中锚帧数目为5的、具有GOP ID4的流数据时,难以存储全部具有GOP ID4的已存储锚帧,这是因为,具有GOPID4的GOP的已存储锚帧的数目是3,而只有存储体10是空的。因此,必须删除一个当前存储的GOP中的一些已存储锚帧。
解码控制器153从GOP已存储锚队列中弹出在GOP已存储锚队列中所包括的信息中、离具有GOP ID4的GOP信息最远的具有GOP ID的GOP的已存储锚信息,并且在GOP已存储锚队列的结尾处压入具有GOP ID4的GOP的已存储锚信息。
图14A示出了帧存储器22-3中的十个已存储锚存储体的状态,而图14B示出了已存储锚信息和GOP已存储锚队列的状态。具体而言,类似于图13A和13B中所描述的情况,在帧存储器22-3的十个已存储锚存储体当中,在存储体4到6中存储了具有GOP ID2的已存储锚帧,并且在存储体7到9中存储了具有GOP ID3的已存储锚帧。另外提供的、具有GOP ID4的已存储锚帧被存储在存储体10、1、和2中。基于已存储锚信息的管理指示使用中的开头存储体是存储体4,使用中的结尾存储体是存储体2,以及使用中的存储体数目是9。基于GOP已存储锚队列的管理指示具有GOP ID2的已存储锚存储体使用三个存储体、即存储体4到6,具有GOP ID3的已存储锚存储体使用三个存储体、即存储体7到9,而具有GOP ID4的已存储锚存储体使用三个存储体、即存储体10和两个随后的存储体。
以上述方式,控制由解码器23进行的解码。当如上所述在剪辑的开始或者结尾处的GOP不包括用作编辑材料的流中的一个GOP的全部内容时,可以将用作编辑材料的流中的一个GOP的全部内容传输到存储器22,并且可以仅仅传输所需要的GOP。此外,例如,当在剪辑开始处的GOP包括MPEG长GOP中的两个B画面时,必须向解码器23提供未被包括在该剪辑中的相对于该GOP的第一前向GOP。
下面参考图15到18描述GOP传输范围、用于指定要被输出以便用于显示的范围的方法、以及解码的特定示例。
图15说明了在其中以±2x速度瞬变地重放(在短的间隔内连续命令前向重放和反向重放)通过连接作为流A的一部分的剪辑A和作为流B的一部分的剪辑B而形成的剪辑流的情况下GOP传输和解码器23的操作的第一示例。
剪辑A包括两个GOP中的部分。因此,为了解码剪辑A中包括的帧,需要未被包括在剪辑A中但是被包括在这两个GOP中的多个帧。剪辑B包括一个GOP中的一部分。为了解码剪辑B中包括的帧,需要未被包括在剪辑B中但是被包括在相对于包含所述剪辑B中包括的帧的GOP的第一前向GOP中的多个帧。换句话说,为了解码通过连接剪辑A和剪辑B形成的剪辑流,需要四个GOP的数据。
在第一示例中,假定传输了用于解码剪辑流所需要的全部GOP。优先解码所传输的GOP中包括的I画面和P画面的一半。
在从剪辑A到剪辑B的前向重放的情况下的GOP传输次序基于剪辑重放次序和GOP在用作材料的流中的排列位置而确定。因此,基于GOP传输次序,传输GOP确定单元52将四个GOP设置为具有GOP ID1到GOP ID4,并且将这四个GOP作为要传输到存储器18的GOP来对待。
控制GOP传输定时,以便使GOP传输定时控制单元53执行处理。具体而言,在显示命令之前以预定的定时传输具有GOP ID1到GOP ID4的GOP数据项,以便事先解码所传输GOP中的I和P画面,并且将它们存储在存储器22中。
在具有GOP ID1到GOP ID4的GOP的数据项的传输完成了之后,以预定的定时将传输完成命令发送到PCI桥接器17中的命令缓冲器31。
显示命令发送单元57基于来自用户的操作输入,将用于每一帧的显示命令发送到PCI桥接器17中的命令缓冲器31。
例如,像在如图15所示的画面输出请求的示例中那样,在命令了从剪辑A的开始到GOP ID4中的B1的前向GOP重放之后,当命令反向GOP重放时(在图15中,当在GOP ID4中的画面B1之后命令了GOP ID2中的画面B3的重放时),在这时候,直至GOP ID1中的画面P14为止的(要显示的)帧数目(被预测为要在GOP ID2中所包括的帧之后命令其显示)仅仅为5。因此,如果从已存储锚存储体中清除了GOP ID1的锚帧信息,则存在显示屏幕可能停滞的可能性,这是因为,在显示GOP ID1中的画面P4之前、显示所必需的解码变得不够。因此当执行剪辑流的瞬变重放时,优选为不清除通过在与GOP ID1相对应的已存储锚帧中进行解码而获得的基带图像数据。考虑到这个情况,优选为与12帧相对应地提供解码器23中的已存储锚存储体。
在图15所示的剪辑流中,可能不传输GOP中的画面B4到B13的信息,这是因为,该信息根本不是用于解码剪辑中的帧所必需的。图16说明了作为GOP传输和解码器23的操作的第二示例的、其中仅仅传输GOP ID中的必需帧的情况。
换句话说,传输GOP确定单元52仅仅选择在一个剪辑结尾处的GOP中的范围,其包括该剪辑所包括的帧和用于解码该所包括的帧所必需的帧,并且传输GOP确定单元52将该范围设置为要传输的范围。基于剪辑重放次序和用作材料的流中的四个GOP的排列位置,传输GOP确定单元52将这四个GOP设置为具有GOP ID1到GOP ID4,并且将这四个GOP作为要传输到存储器18的GOP来对待。换句话说,在图16所示的情况下,基本上控制GOP传输,以便除了要作为GOP ID传输的帧数目之外,GOP传输定时控制单元53执行类似于参考图15所述的情况的处理。具体而言,在显示命令之前以预定的定时传输GOP ID1到GOP ID4的GOP数据项,以便事先解码所传输GOP中的I和P画面,并且将它们存储在存储器22中。
在GOP ID1到GOP ID4的GOP数据项的传输完成了之后,以预定的定时将传输完成命令发送到PCI桥接器17中的命令缓冲器31。
在图16所示的情况下,即使生成了与参考图15所述的情况下类似的预定命令,与图15所示的情况相比,也不传输GOP ID2中的画面P8和I14,从而使得即使已存储锚存储体的数目较少,以可以执行瞬变重放,由此防止显示屏幕停滞。这里,优选为与十个帧相对应地提供解码器23中的已存储锚存储体。
此外,可以以GOP为单位执行传输,并且可以基于输出范围指定命令仅仅解码显示所必需的帧。图17说明了作为GOP传输和解码器23的操作的第三示例的、其中以GOP为单位执行传输并且通过使用输出范围指定命令来仅仅解码显示所必需的帧的情况。
类似于参考图15所述的情况,基于剪辑重放次序和四个GOP在流中的排列位置,传输GOP确定单元52将四个GOP设置为具有GOPID1到GOP ID4,并且将这四个GOP中包括的全部帧作为要传输到存储器18的GOP来对待。
输出范围信息设置单元54设置要传输的GOP ID1到GOP ID4的输出范围。这里,输出范围信息设置单元54将GOP ID1的显示输出范围设置为7-15,将GOP ID2的显示输出范围设置为1-4,将GOP ID3的显示输出范围设置为0-0,并且将GOP ID4的显示输出范围设置为2-15。
类似地,控制GOP传输定时,以便使GOP传输定时控制单元53执行处理。具体而言,在显示命令之前以预定的定时传输GOP ID1到GOP ID4的GOP数据项,以便事先解码所传输GOP中的I和P画面,并且将它们存储在存储器22中。
在GOP ID1到GOP ID4的GOP数据项的传输完成了之后,以预定的定时将输出范围指定命令和传输完成命令发送到PCI桥接器17中的命令缓冲器31。
CPU20基于输出范围指定命令来控制解码器23。因此,解码器23仅仅解码GOP ID2中的画面I2,并且将所解码的画面存储在已存储锚存储体中。此外,GOP ID3的显示输出范围0-0指示仅仅需要GOP ID3来显示GOP ID4中的开头画面B1。因此,最终,只有画面P14可以被存储在已存储锚存储体中。因此,在这种情况下,优选为与八个帧相对应地提供解码器23中的已存储锚存储体。
此外,如参考图16和17所述的情况下那样,基于输出范围指定命令,可以仅仅传输所需要的范围,并且可以仅仅解码显示所必需的帧。图18说明了作为GOP传输和解码器23的操作的第四示例的、其中仅仅将需要部分设置为GOP传输单元并且通过使用输出范围指定命令来仅仅解码显示所必需的帧的情况。
换句话说,传输GOP确定单元52在剪辑结尾处的GOP中仅仅选择用于解码该剪辑中所包括的帧所必需的帧,并且将这些帧设置为要传输的帧。此外,基于剪辑重放次序和四个GOP在用作材料的流中的排列位置,传输GOP确定单元52将四个GOP设置为具有GOPID1到GOP ID4,并且将这四个GOP作为要传输到存储器18的GOP来对待。
输出范围信息设置单元54设置要传输的GOP ID1到GOP ID4的输出范围。同样地,在这种情况下,输出范围信息设置单元54将GOP ID1的显示输出范围设置为7-15,将GOP ID2的显示输出范围设置为1-4,将GOP ID3的显示输出范围设置为0-0,并且将GOPID4的显示输出范围设置为2-15。
控制GOP传输定时,以便使GOP传输定时控制单元53执行处理。具体而言,在显示命令之前以预定的定时传输GOP ID1到GOPID4的GOP数据项,以便事先解码所传输GOP中的I和P画面,并且将它们存储在存储器22中。
在GOP ID1到GOP ID4的GOP数据项的传输完成了之后,以预定的定时将输出范围指定命令和传输完成命令发送到PCI桥接器17中的命令缓冲器31。CPU20基于输出范围指定命令来控制解码器23。因此,解码器23仅仅解码GOP ID2中的画面I2,并且将所解码的画面存储在已存储锚存储体中。此外,GOP ID3的显示输出范围0-0指示仅仅需要GOP ID3来显示GOP ID4中的开头画面B1。因此,最终,只有画面P14可以被存储在已存储锚存储体中。因此,同样地,在第四示例中,优选为与帧的数目相对应地提供解码器23中的已存储锚存储体。。
与第一和第三示例相比,在参考图18描述的第四示例中,所传输的帧数目的减少可以改善显示响应。此外,通过减少需要存储的锚帧,如果已存储锚存储体在存储体数目上是相同的,则可以获得的优点在于,可以获得更宽的刮擦重放响应。
上述方法可以在诸如当对刮擦重放进行重放、以及当以指定速度(诸如1x或者1.5x速度)执行重放时的情况下实现剪辑重放。
接下来,下面参考图19所示的流程图描述由CPU11执行的处理。
在步骤S1,CPU11中的操作输入获取单元51通过南桥15和北桥12从操作输入单元(未示出)接收剪辑设置输入。也就是说,操作输入获取单元51接收指示哪个编码流中的哪些部分被分段为剪辑以及怎样连接这些剪辑以生成剪辑流的输入设置,并且将所接收的剪辑设置提供给传输GOP确定单元52、GOP传输定时控制单元53、和输出范围信息设置单元54。
在步骤S2,基于在剪辑流的前向重放中的GOP传输次序,传输GOP确定单元52在包括在所设置的剪辑中的GOP和用于解码该所包括的GOP所必需的GOP中设置GOP ID。
在步骤S3,操作输入获取单元51通过南桥15和北桥12从操作输入单元接收操作输入。该操作输入表示由用户执行的显示的开始。操作输入获取单元51将该操作输入提供给传输GOP确定单元52和GOP传输定时控制单元53。
在步骤S4,传输GOP确定单元52对帧显示次序进行调度。在步骤S5,传输GOP确定单元52指定要显示的帧,并且将所指定的帧报告给GOP传输定时控制单元53和输出范围信息设置单元54。
在步骤S6,执行稍后参考图21描述的显示传输单位确定处理。
在步骤S7,GOP传输定时控制单元53确定是否检测当前传输的GOP。
如果在步骤S7确定未检测到当前传输的GOP,则在步骤S8,执行稍后参考图22描述的前进传输单元确定处理。
如果在步骤S7确定检测到了当前传输的GOP,或者在步骤S8完成了之后,在步骤S9,执行稍后参考图23到26描述的传输完成发送确定处理。
在步骤S10,GOP传输定时控制单元53命令显示命令发送单元57发送用于显示在步骤S5指定的(要显示)帧的显示命令。显示命令发送单元57通过北桥12和PCI总线14将显示命令发送到PCI桥接器17中的命令缓冲器31。
在步骤S11,基于从操作输入获取单元51提供的信号(该信号表示来自用户的操作输入),传输GOP确定单元52确定是否已经接收了操作输入,其中该操作输入表示包括诸如改变显示方向或者速度、或者改变要显示的流之类的更改帧显示次序的操作。如果在步骤S11确定已经接收了包括更改帧显示次序在内的操作输入,则处理返回到步骤S4并且重复后续步骤。
如果在步骤S11确定还没有收到包括更改帧显示次序在内的操作输入,则在步骤S12,基于从操作输入获取单元51提供的操作输入信号,传输GOP确定单元52确定是否要完成显示。如果在步骤S12中传输GOP确定单元52已经确定不要完成显示,则该处理返回到步骤S5并且重复后续步骤。如果在步骤S12中传输GOP确定单元52已经确定要完成显示,则该处理完成。
如上所述,CPU11基于来自用户的操作输入确定帧显示次序。这样确定GOP传输单位和传输定时,以便在发送显示命令之前,可以解码对应GOP的I和P画面。当完成了传输时,(在步骤S9的传输完成发送确定处理中)发送传输完成命令和输出范围指定命令,并且随后发送显示命令。因此,当发送显示命令时,存在GOP中的I和P画面早已被解码的高度可能性,因此,增强了对显示命令的显示响应。
CPU20基于从CPU11提供的命令来控制由解码器23进行的解码。具体而言,CPU20确定用于将压缩编码流数据输入到存储器22的定时、用于在存储器22和解码器23之间交换数据的定时、用于每个画面的解码定时、以及解码画面的输出、即显示定时。基于上述类型的定时,CPU20控制PCI桥接器17、存储器22、和解码器23。
接下来,下面参考图20所示的流程图描述与参考图19所述的CPU11的处理并行执行的、CPU20的处理。
在步骤S41,通过经由控制总线19参考PCI桥接器17中的命令缓冲器31,CPU20中的命令获取单元71确定是否已经接收了GOP传输完成命令。如果在步骤S41中命令获取单元71确定还没有接收到GOP传输完成命令,则处理继续到稍后描述的步骤S45。
如果在步骤S41中命令获取单元71确定已经接收了GOP传输完成命令,则在步骤S42,命令获取单元71将对GOP传输完成命令的接收报告给存储器间传输控制单元72和结果发送单元76。存储器间传输控制单元72确认从HDD16到存储器18的GOP传输的完成。结果发送单元76通过控制总线19将响应于GOP传输完成命令的结果送回到PCI桥接器17中的结果缓冲器32。
在步骤S43,存储器间传输控制单元72控制从存储器18到存储器22的GOP传输。具体而言,并不是基于存储器间传输控制单元72完成到存储器18的GOP传输的定时,而是基于从CPU11收到GOP传输完成命令的定时,控制从存储器18到存储器22的GOP传输。
在步骤S44,解码调度单元73对解码进行调度,以便优先解码传输到存储器22的GOP中的锚帧,并且向解码控制单元74报告该解码调度。解码控制单元74基于由解码调度单元73获得的解码调度来控制解码器23的解码。
如果在步骤S41中命令获取单元71确定还没有接收到GOP传输完成命令,或者在步骤S44完成了之后,在步骤S45,通过经由控制总线19参考PCI桥接器17中的命令缓冲器31,命令获取单元71确定是否已经接收了显示命令。如果在步骤S45中命令获取单元71确定还没有接收到显示命令,则处理继续到步骤S48(稍后描述)。
如果在步骤S45中命令获取单元71确定已经接收了显示命令,则在步骤S46,解码控制单元74控制解码器23和存储器22,以便输出要显示的画面。
具体而言,当被命令显示的帧是例如作为已存储锚帧的P画面或I画面时,检测通过解码获得的基带图像数据是否早已被存储在存储器22中。如果基带图像数据被存储在存储器22中,则输出该基带图像数据。此外,当被命令显示的帧是例如B画面时,检测用于解码B画面所需要的参考图像数据是否被存储在存储器22中。如果参考图像数据被存储在存储器22中,则使用所存储的参考图像数据来解码要输出的B画面。
在步骤S47,解码控制单元74确定是否完成了要显示的帧的显示。如果在步骤S47中解码控制单元74确定还没有完成帧的显示,则处理返回到步骤S46并且重复后续步骤。
如果在步骤S45中命令获取单元71确定还没有接收到显示命令,或者如果在步骤S47中解码控制单元74确定已经完成了帧的显示,则在步骤S48,通过经由控制总线19参考PCI桥接器17中的命令缓冲器31,命令获取单元71确定是否要完成显示。如果在步骤S48中命令获取单元71确定不是要完成显示,则处理返回到步骤S41并且重复后续步骤。如果在步骤S48中命令获取单元71确定要完成显示,则该处理完成。
在上述处理中,CPU20基于CPU11的控制,控制从存储器18到存储器22的GOP传输和解码器23的解码。在这种情况下,优先解码传输到存储器22的GOP中的至少部分锚帧,由此改善了从接收到显示命令到输出通过解码而获得的基带图像数据时的响应。
此外,在CPU20获取了用于GOP的传输完成命令之后,CPU20控制GOP中的数据从存储器18到存储器22的传输。换句话说,在由CPU11进行的处理中,用于生成传输完成命令的定时迟于实际的GOP传输定时。因此,在随机重放中,在诸如当极大地改变显示开始位置时的情况下,不执行从存储器18到存储器22的不必要的数据传输。因此,即使存储器22的数据存储大小小于存储器18的数据存储大小,也可以防止存储器22溢出,并且可以防止存储器22中的必要数据被改写。
接下来,下面将参考图21所示的流程图描述在图19的步骤S6中执行的显示传输单位确定处理。
在步骤S71,CPU11中的传输GOP确定单元52确定要显示的帧是否为在GOP开始处的两个B画面之一。如果在步骤S71中传输GOP确定单元52确定要显示的帧不是这两个B画面之一,则该处理继续到步骤S74(稍后描述)。
如果在步骤S71确定要显示的帧是在GOP开始处的两个B画面之一的话,则在步骤S72,传输GOP确定单元52确定这个B画面是否参考前向GOP。如果在步骤S72中因为诸如流中的封闭GOP和开头GOP之类的原因而确定B画面不参考前向GOP的话,则处理继续到步骤S74(稍后描述)。
如果在步骤S72确定参考了前向GOP,则在步骤S73,传输GOP确定单元52确定是否早已传输了前向GOP,即,包括前向参考图像的用于该B画面的GOP。如果在步骤S73确定还没有传输前向GOP,则处理继续到步骤S76(稍后描述)。
如果在步骤S71确定要显示的帧不是在GOP开始处的两个B画面之一,如果在步骤S72确定不参考前向GOP,或者如果在步骤S73确定早已传输了前向GOP,则在步骤S74,传输GOP确定单元52确定是否早已传输了包括要显示的帧的GOP。如果在步骤S74确定早已传输了包括要显示的帧的GOP,则处理返回到图19中的步骤S6并且继续到步骤S7。
如果在步骤S74确定还没有传输包括要显示的帧的GOP,则在步骤S75,传输GOP确定单元52控制启动从HDD16通过南桥15、北桥12、PCI总线14、和PCI桥接器17到存储器18的GOP(包括要显示的帧)传输。该处理返回到图19中的步骤S6,并且继续到步骤S7。
如果在步骤S73确定还没有传输前向GOP,则在步骤S76,传输GOP确定单元52确定是否早已传输了包括B画面的GOP、即包括要显示的帧的GOP。
如果在步骤S73确定早已传输了包括B画面的GOP,则在步骤S77,传输GOP确定单元52控制启动相对于所传输GOP的第一前向GOP的从HDD16通过南桥15、北桥12、PCI总线14、和PCI桥接器17到存储器18的传输。该处理返回到图19中的步骤S6,并且继续到步骤S7。
如果在步骤S73确定还没有传输包括要显示的帧的GOP,则在步骤S78,传输GOP确定单元52控制启动相对于所传输GOP的第一前向GOP中的画面I2、B0、和B1的从HDD16通过南桥15、北桥12、PCI总线14、和PCI桥接器17到存储器18的传输。该处理返回到图19中的步骤S6,并且继续到步骤S7。
在其中在上述处理中要显示的画面是在GOP开始处的两个B画面之一,而且还没有传输包括B画面的GOP和相对于该GOP的前向GOP(即,包括用于解码要显示的B画面所必需的参考图像帧的GOP)中的任何一个的情况下,传输相对于所传输GOP的第一前向GOP和要显示的GOP中的画面I2、B0、和B1。因此,即使当前执行的重放是高速重放处理而且不显示包括该B画面的GOP中的其它帧,也不传输不必要的数据,而且此外,即使不是高速重放处理,并且必须传输包括B画面的GOP以便显示包括该B画面的GOP中的其它帧,所传输的数据也具有较少的冗余度。
接下来,下面将参考图22所示的流程图描述在图19的步骤S8中执行的前进传输单位确定处理。
在步骤S101,GOP传输定时控制单元53确定要显示的帧是否被包括在包括先前显示的帧的同一个GOP中。如果在步骤S101确定要显示的帧被包括在所述同一个GOP中,则该处理返回到图19中的步骤S8,并且继续到步骤S9。
如果在步骤S101确定要显示的帧不被包括在所述同一个GOP中,即,如果确定检测到在要显示的帧中的GOP改变点,则在步骤S102,GOP传输定时控制单元53确定要显示的帧是否被包括在相对于包括先前显示的帧的GOP的第一后向GOP中,即,确定要显示的帧是否为前向重放中的GOP改变点。如果在步骤S102确定要显示的帧未被包括在相对于包括先前显示的帧的GOP的第一后向GOP中,则处理继续到步骤S106。
如果在步骤S102确定要显示的帧被包括在相对于包括先前显示的帧的GOP的第一后向GOP中,则在步骤S103中,GOP传输定时控制单元53确定包括在相对于包括要显示的帧的GOP(早已启动了该GOP的传输)的第一后向GOP中的帧(在显示范围中)数目是否至少为六。
虽然这里使用了作为帧数目的六作为执行确定的阈值,但是取决于这个设备需要具有的重放性能和存储器18的存储大小,这个帧数目可以是不同的。例如,当存储器18具有小的存储大小时,如果太早启动了传输,则存在存储器18可能溢出的可能性。然而,当存储器18具有充分大的存储器大小时,基于这个设备具有的前向和后向重放功能的重放速度,来设置该阈值。例如,当需要大约双倍速度的前向和后向重放功能时,通过使用六个帧作为阈值,事先传输其数目足以防止重放停滞的帧。
如果在步骤S103确定包括在第一后向GOP中的帧数目至少为六,则在步骤S104,在启动第一后向GOP的传输之前,GOP传输定时控制单元53将优先级降低到低于包括要显示的帧的GOP或者命令的优先级。该处理返回到图19中的步骤S8,并且继续到步骤S9。
换句话说,与用于发送诸如显示命令之类的命令的处理、以及用于传输非常可能要紧接在包括正被重放的帧的GOP之后重放的GOP的处理相比,用于在GOP改变点处事先传输数据的处理是不紧迫的,这是因为,在这个处理中,事先传输了可能接下来要使用的数据。因此,通过设置优先级,可以增加数据传输的效率,而没有降低对用于显示视频所必需的处理(诸如发送命令)的响应。
如果在步骤S103确定包括在第一后向GOP中的帧(在显示范围内)数目不是至少为六,则在步骤S105,GOP传输定时控制单元53在启动两个GOP、即第一后向GOP和第二后向GOP的传输之前,将优先级降低到低于例如包括要显示的帧的GOP或者命令的优先级。该处理返回到图19中的步骤S8,并且继续到步骤S9。
如果在步骤S102确定要显示的帧不被包括在相对于包括先前显示的帧的GOP的第一后向GOP中,则在步骤S106,GOP传输定时控制单元53确定要显示的帧是否被包括在相对于包括先前显示的帧的GOP的第一前向GOP中,即,确定要显示的帧是否为反向重放中的GOP改变点。如果在步骤S106确定要显示的帧未被包括在相对于包括先前显示的帧的GOP的第一前向GOP中,则检测到其中跳过两个或更多GOP以便使之不被显示的高速重放,或者它是其中通过刮擦重放来改变重放开始位置的情况。该处理返回到图19中的步骤S8,并且继续到步骤S9。
如果在步骤S106确定要显示的帧被包括在相对于包括先前显示的帧的GOP的第一前向GOP中,则在步骤S107,GOP传输定时控制单元53确定在相对于包括要显示的帧的GOP(早已启动了该GOP的传输)的第一前向GOP中包括的帧(在显示范围中)数目是否至少为六。
如果在步骤S107确定包括在第一前向GOP中的帧(在显示范围内)数目至少为六,则在步骤S108,在启动第一前向GOP的传输之前,GOP传输定时控制单元53将优先级降低到低于例如包括要显示的帧的GOP或者命令的优先级。该处理返回到图19中的步骤S8,并且继续到步骤S9。
如果在步骤S107确定包括在第一前向GOP中的帧(在显示范围内)数目不是至少为六,则在步骤S109,GOP传输定时控制单元53将优先级降低到低于包括要显示的帧的GOP或者命令的优先级,并且启动两个GOP、即第一前向GOP和第二前向GOP的传输。该处理返回到图19中的步骤S8,并且继续到步骤S9。
在这个处理中,利用显示作为GOP改变点的帧的定时,可以启动被预测为接下来要显示的GOP的传输,并且当包括在该GOP中的帧的数目较小时,可以启动另一个GOP的传输。因此,可以防止显示响应由于不充分的帧数据传输而恶化。
接下来,下面参考图23到26所示的流程图描述在图19的步骤S9中执行的传输完成发送处理。
在步骤S131,GOP传输定时控制单元53确定是否检测到还没有发送其传输完成的GOP。如果在步骤S131确定检测到还没有发送其传输完成的GOP,则处理返回到图19中的步骤S9并且继续到步骤S10。
如果在步骤S131确定检测到还没有发送传输完成的GOP,则在步骤S132,基于由传输GOP确定单元52确定为要传输的GOP的信息、和由输出范围信息设置单元54设置的输出范围,GOP传输定时控制单元53确定所检测到的GOP是否紧挨着当前显示的帧并且具有小于六帧的显示范围。
如果在步骤S132确定所检测到的GOP不是紧挨着当前显示的帧或者不具有小于六帧的显示范围,则该处理继续到稍后描述的步骤S136。
如果在步骤S132确定所检测到的GOP紧挨着当前显示的帧并且具有小于六帧的显示范围,则在步骤S133,传输完成命令发送单元56确定是否早已发送了用于所检测到的GOP的传输完成命令。如果在步骤S133确定早已发送了用于所检测到的GOP的传输完成命令,则处理返回到图19中的步骤S9并且继续到步骤S10。
如果在步骤S133确定还没有发送用于所检测到的GOP的传输完成命令,则在步骤S134,执行稍后参考图28描述的输出范围指定命令设置处理。
在步骤S135,输出范围信息设置单元54将GOP的输出范围指定命令发送到PCI桥接器17中的命令缓冲器31,而且传输完成命令发送单元56将GOP的传输完成发送到PCI桥接器17中的命令缓冲器31。该处理返回到图19中的步骤S9,并且继续到步骤S10。
如果在步骤S132确定所检测到的GOP不是紧挨着当前显示的帧或者不具有小于六帧的显示范围,则在步骤S136,GOP传输定时控制单元53确定要显示的显示是否被包含在包括先前显示的帧的同一个GOP中。如果在步骤S136确定要显示的帧未被包括在包括先前显示的帧的同一个GOP中,则处理继续到稍后描述的步骤S151。
如果在步骤S136确定要显示的帧被包括在包括先前显示的帧的同一个GOP中,则在步骤S137,GOP传输定时控制单元53确定要显示的帧相对于先前显示的帧是否时间上在后。如果在步骤S137确定要显示的帧相对于先前显示的帧是时间上在后的,即,确定重放方向是前向的,则该处理继续到稍后描述的步骤S156。
如果在步骤S137确定要显示的帧相对于先前显示的帧不是时间上在后的,即,确定重放方向是反向的,则在步骤S138,GOP传输定时控制单元53确定要显示的帧是否位于距离GOP开头的五帧之内。如果在步骤S138确定要显示的帧不在距离GOP开头的五帧以内,则处理返回到图19中的步骤S9并且继续到步骤S10。
如果在步骤S138确定要显示的帧位于距离GOP开头的五帧之内,则在步骤S139,GOP传输定时控制单元53确定是否正在传输相对于包括当前显示的帧的GOP的第一前向GOP中的数据。
如果在步骤S139确定正在传输第一前向GOP中的数据,则在步骤S140,GOP传输定时控制单元53提高数据传输的优先级,这是因为,在发布用于显示包括在正在传输的第一前向GOP中的帧的命令之前有少量剩余时间。该处理返回到图19中的步骤S9,并且继续到步骤S10。
如果在步骤S139确定不是正在传输第一前向GOP中的数据,则在步骤S141,GOP传输定时控制单元53确定是否早已传输了该前向GOP中的数据。
如果在步骤S141确定还没有传输该前向GOP中的数据,则在步骤S142,GOP传输定时控制单元53利用提高了的优先级传输该前向GOP中的数据。处理继续到稍后描述的步骤S146。
如果在步骤S141确定早已传输了该前向GOP中的数据,则在步骤S143,传输完成命令发送单元56确定是否早已发送了用于第一前向GOP的传输完成命令。
如果在步骤S143确定还没有发送用于第一前向GOP的传输完成命令,则在步骤S144,执行稍后参考图28描述的输出范围指定命令设置处理。
在步骤S145,输出范围信息设置单元54将用于第一前向GOP的输出范围指定命令发送到PCI桥接器17中的命令缓冲器31,而且传输完成命令发送单元56将第一前向GOP的传输完成发送到PCI桥接器17中的命令缓冲器31。
在其中在步骤S142完成之后在步骤S143中确定早已发送了用于第一前向GOP的传输完成命令,或者在步骤S145完成了之后的情况下,在步骤S146中,基于由输出范围信息设置单元54设置的输出范围,GOP传输定时控制单元53确定第一前向GOP的显示范围是否小于六个帧。
如果在步骤S146确定第一前向GOP的显示范围不小于六个帧,则处理返回到图19中的步骤S9并且继续到步骤S10。
如果在步骤S146确定第一前向GOP的显示范围小于六个帧,则在步骤S147,GOP传输定时控制单元53确定是否早已发送了第二前向GOP中的数据。如果在步骤S147确定还没有发送第二前向GOP的数据,则处理返回到图19中的步骤S9并且继续到步骤S10。
如果在步骤S147确定早已发送了第二前向GOP中的数据,则在步骤S148,传输完成命令发送单元56确定是否早已发送了用于第二前向GOP的传输完成命令。如果在步骤S148确定早已发送了用于第二前向GOP的传输完成命令,则处理返回到图19中的步骤S9并且继续到步骤S10。
如果在步骤S148确定还没有发送用于第二前向GOP的传输完成命令,则在步骤S149,执行稍后参考图28描述的输出范围指定命令设置处理。
在步骤S150,输出范围信息设置单元54将用于第二前向GOP的输出范围指定命令发送到PCI桥接器17中的命令缓冲器31,而且传输完成命令发送单元56将第二前向GOP的传输完成发送到PCI桥接器17中的命令缓冲器31。该处理返回到图19中的步骤S9,并且继续到步骤S10。
如果在步骤S136确定要显示的帧未被包括在包括先前显示的帧的同一个GOP中,则在步骤S151,传输完成命令发送单元56确定是否早已发送了包括要显示的帧的GOP的传输完成。如果在步骤S151确定早已发送了包括要显示的帧的GOP的传输完成,则处理返回到图19中的步骤S9并且继续到步骤S10。
如果在步骤S151确定还没有发送包括要显示的帧的GOP的传输完成,则在步骤S152,GOP传输定时控制单元53确定是否早已传输了包括要显示的帧的GOP。
如果在步骤S152确定还没有传输包括要显示的帧的GOP,则在步骤S153,GOP传输定时控制单元53提高优先级,之后等待包括要显示的帧的GOP的传输完成。
如果在步骤S152确定早已传输了包括要显示的帧的GOP,或者在步骤S153完成之后,即,当要显示的帧的传输完成了并且还没有发送传输完成命令时,在步骤S154,执行稍后参考图28描述的输出范围指定命令设置处理。
在步骤S155,传输完成命令发送单元56发送输出范围指定命令以及包括要显示的帧的GOP的传输完成。该处理返回到图19中的步骤S9,并且继续到步骤S10。
如果在步骤S137确定要显示的帧相对于先前显示的帧是时间上在后的,即,确定重放方向是前向的,则在步骤S156,GOP传输定时控制单元53确定要显示的帧是否位于距离GOP末尾的五个帧之内。如果在步骤S156确定要显示的帧不在距离GOP末尾的五个帧以内,则处理返回到图19中的步骤S9并且继续到步骤S10。
如果在步骤S156确定要显示的帧在距离GOP末尾的五个帧之内,则在步骤S157,GOP传输定时控制单元53确定是否正在传输第一后向GOP中的数据。
如果在步骤S157确定正在传输第一后向GOP中的数据,则在步骤S158,GOP传输定时控制单元53提高数据传输的优先级,这是因为,在发布用于显示包括在正在传输的第一后向GOP中的帧的命令之前有少量剩余时间。该处理返回到图19中的步骤S9,并且继续到步骤S10。
如果在步骤S157确定不是正在传输第一后向GOP中的数据,则在步骤S159,GOP传输定时控制单元53确定是否早已传输了第一后向GOP中的数据。
如果在步骤S159确定还没有传输第一后向GOP中的数据,则在步骤S160,GOP传输定时控制单元53利用提高了的传输优先级传输第一后向GO。处理继续到稍后描述的步骤S164。
如果在步骤S159确定早已传输了第一后向GOP中的数据,则在步骤S161,传输完成命令发送单元56确定是否早已发送了用于第一后向GOP的传输完成命令。
如果在步骤S161确定还没有发送用于第一后向GOP的传输完成命令,则在步骤S162,执行稍后参考图28描述的输出范围指定命令设置处理。
在步骤S163,输出范围信息设置单元54将用于第一后向GOP的输出范围指定命令发送到PCI桥接器17中的命令缓冲器31,而且传输完成命令发送单元56将第一后向GOP的传输完成发送到PCI桥接器17中的命令缓冲器31。
在其中在步骤S160完成之后在步骤S161中确定早已发送了用于第一后向GOP的传输完成命令,或者在步骤S163完成之后的情况下,在步骤S164中,基于由输出范围信息设置单元54设置的输出范围,GOP传输定时控制单元53确定第一后向GOP的显示范围是否在六个帧之内。
如果在步骤S164确定第一后向GOP的显示范围不在六个帧之内,则处理返回到图19中的步骤S9并且继续到步骤S10。
如果在步骤S164确定第一后向GOP的显示范围在六个帧之内,则在步骤S165,GOP传输定时控制单元53确定是否早已传输了第二后向GOP中的数据。如果在步骤S165确定还没有传输第二后向GOP的数据,则处理返回到图19中的步骤S9并且继续到步骤S10。
如果在步骤S165确定早已传输了第二后向GOP中的数据,则在步骤S166,传输完成命令发送单元56确定是否早已发送了用于第二后向GOP的传输完成命令。如果在步骤S166确定早已发送了用于第二后向GOP的传输完成命令,则处理返回到图19中的步骤S9并且继续到步骤S10。
如果在步骤S166确定还没有发送用于第二后向GOP的传输完成命令,则在步骤S167,执行稍后参考图28描述的输出范围指定命令设置处理。
在步骤S168,输出范围信息设置单元54将第二后向GOP的传输完成和输出范围指定命令发送到PCI桥接器17中的命令缓冲器31,而且传输完成命令发送单元56将第二后向GOP的传输完成发送到PCI桥接器17中的命令缓冲器31。该处理返回到图19中的步骤S9,并且继续到步骤S10。
在上述处理中,在其中在前向显示中要显示的帧在距离GOP末尾的五个帧之内的情况下,以及在其中在反向显示中要显示的帧在距离GOP开头的五个帧之内的情况下,在要显示的帧的GOP改变点处,确定是否早已完成了事先启动了其传输并且被预测为接下来要显示的GOP的传输。如果还没有完成该传输,则提高传输优先级,并且当传输已经完成时,发送传输完成命令和输出范围指定命令。
例如,在其中在随机重放中显示开始位置被极大地改变了的情况下,这可以防止从存储器18到存储器22的不必要的数据传输。因此,即使存储器22的数据存储大小小于存储器18的数据存储大小,也可以防止存储器22溢出,并且可以防止必要数据被改写。
此外,当还没有完成包括要显示的帧的GOP的传输时,提高GOP传输的优先级。
图27说明了在其中在连续重放剪辑文件A和剪辑文件B的剪辑重放中执行瞬变重放的情况下,对指令发送等的定时控制的示例。通过选择包括第一个流的GOP中的画面P8到下一个GOP中的画面P8来形成剪辑文件A。通过选择包括第二个流的GOP中的画面P14到下一个GOP中的画面P14来形成剪辑文件B。
如例如图27中的部分A所示,要显示的帧沿前向方向流动,并且当要显示的帧在剪辑文件A中从第一GOP改变到第二GOP时,确定是否正在传输第三GOP或者是否早已传输了第三GOP。如果不是正在传输第三GOP或者还没有传输第三GOP,则命令传输第三GOP。
如图27中的部分B所示,传输下一个GOP,即,剪辑文件B中的第一个GOP。这个GOP的显示范围仅仅是画面P14,而且显示范围在六个帧之内。因此,在第一个GOP之后,还传输进一步的下一个GOP,即,剪辑文件B中的第二个GOP。
如图27中的部分C所示,当正在显示剪辑文件A中的第二个GOP中所包括的帧的同时完成剪辑文件B中的第一个GOP的传输时,完成了其传输的GOP邻近于包括当前显示的帧的GOP,而且显示范围小于六个帧。因此,发送传输完成命令。在那之后,从图27中的部分C所示的状态开始,使显示重放方向反向以便进行反向重放。
在其中在已经完成了剪辑文件B中的第二个GOP的传输时,如图27中的部分D所示进行反向重放,并且正在显示剪辑文件A中的第二个GOP中所包括的帧的情况下,完成了其传输的GOP不邻近于包括当前显示的帧的GOP。因此,还没有发送传输完成命令。在那之后,从图27中的部分D所示的状态开始,使显示重放方向反向以便再次进行前向重放。
如图27中的部分E所示,在其中满足下述条件的情况下,发送用于剪辑文件B中的第二个GOP的传输完成命令,其中所述条件包括在前向重放中,当前显示的帧在距离包括当前显示的帧的GOP结尾的五个帧之内;下一个GOP的显示范围在六个帧之内;而且完成了第二后向GOP的传输。
接下来,下面参考图28所示的流程图描述在图23中的步骤S134、图24中的步骤S144和S149、图25中的步骤S154、以及图26中的步骤S162和S167中的每一个中执行的输出范围指定命令设置处理。
在步骤S181,输出范围信息设置单元54确定为其设置了输出范围指定命令的GOP是否包括虽然未被包括在剪辑中但是被用作用于剪辑解码的参考图像的帧。
如果在步骤S181确定为其设置了输出范围指定命令的GOP包括虽然未被包括在剪辑中但是被用作用于剪辑解码的参考图像的帧,则在步骤S182,输出范围信息设置单元54将输出范围指定命令设置为0-0。该处理返回到参考图23到26描述的传输完成发送确定处理。具体而言,处理返回到图23中的步骤S134,并且继续到步骤S135。该处理返回到图24中的步骤S144并且继续到步骤S145,或者返回到步骤S149并且继续到步骤S150。该处理返回到图25中的步骤S154,并且继续到步骤S155。该处理返回到图26中的步骤S162,并且继续到步骤S163。处理返回到步骤S167并且继续到步骤S168(下列描述可以应用于图28所示的输出范围指定命令设置处理)。
如果在步骤S181中确定为其设置了输出范围指定命令的GOP包括所述帧的话,则在步骤S183,输出范围信息设置单元54确定为其设置了输出范围指定命令的GOP是否位于剪辑的开始处。
如果在步骤S183确定为其设置了输出范围指定命令的GOP在剪辑的开始处,则在步骤S184,基于剪辑设置,输出范围信息设置单元54将输出范围指定命令设置为诸如7-15或者9-15之类的范围。该处理返回到参考图23到26描述的传输完成发送确定处理。
如果在步骤S183确定为其设置了输出范围指定命令的GOP不在剪辑的开始处,则在步骤S185,输出范围信息设置单元54确定为其设置了输出范围指定命令的GOP是否位于剪辑的结尾处。
如果在步骤S185确定为其设置了输出范围指定命令的GOP在剪辑的结尾处,则在步骤S186,基于剪辑设置,输出范围信息设置单元54将输出范围指定命令设置为诸如0-4或者0-11之类的范围。该处理返回到参考图23到26描述的传输完成发送确定处理。
如果在步骤S185中确定为其设置了输出范围指定命令的GOP不是在剪辑的结尾处,则在步骤S187,输出范围信息设置单元54设置其输出能力被认为是所有范围的输出范围指定命令。该处理返回到参考图23到26描述的传输完成发送确定处理。
因为上述处理设置和发送了输出范围指定命令,所以,即使GOP中的被传输用作参考图像但是并未被包括在剪辑中的锚帧是已存储锚帧,也可能在已存储锚帧中出现改写,而且可以增加能够处理并且具有相等数目的已存储锚存储体的GOP数目。
通过执行上述处理,可以容易地以高速控制在重放剪辑过程中的刮擦重放和前向/反向逐帧重放(frame-advance playback)。
换句话说,因为对用于GOP传输的传输单位的确定和对传输定时的控制没有被复杂化,所以控制被简化了,而且防止了数据传输由于诸如相同数据的双重发送之类的原因而具有冗余性。
已经举例说明了其中将MPEG用作CODEC处理的情况。然而,显然本发明可适用于其中执行使用帧相关性的CODEC处理的情况。例如,本发明可适用于AVC/H.264(高级视频编码/H.264)等。
AVC/H.264中的B画面可能不使用双向(正向和反向)参考图像。可以通过使用在过去的两个参考图像来执行预测,而且可以通过使用在将来的两个参考图像来执行预测。考虑到这种情况,可以应用本发明的实施例。
在上述描述中,CPU11和20通过PCI桥接器17中的命令缓冲器31和结果缓冲器32交互控制信息,并且共享控制。然而,例如,这样的处理可以由单个CPU执行。
在这种情况下,如图29中的功能框图所示,CPU的功能基本上类似于参考图5所述的操作输入获取单元51、传输GOP确定单元52、GOP传输定时控制单元53、输出范围信息设置单元54、寄存器55、显示命令发送单元57、存储器间传输控制单元72、解码调度单元73、解码控制单元74、和寄存器75。
上述连续处理可以由软件执行。软件从记录介质中安装到计算机中,其中构成软件的程序被嵌入到专用硬件中,或者软件被安装到例如多用途个人计算机系统(其可以通过将各种程序安装到系统中而执行各种功能)中。在这种情况下,上述处理由图30所示的个人计算机执行。
参见图30,CPU201根据ROM(只读存储器)212中存储的程序或者从存储单元218载入到RAM(随机存取存储器)213中的程序,执行各种处理。如有必要,RAM213还存储CPU211执行各种处理所必需的数据等。
CPU211、ROM212、和RAM213通过内部总线214彼此相连。内部总线214连接到输入/输出接口215。
输入/输出接口215连接到包括键盘和鼠标在内的输入单元216,包括由阴极射线管或者液晶显示器形成的显示器以及扬声器在内的输出单元217,包括硬盘在内的存储单元218,以及包括调制解调器和终端适配器在内的通信单元219。通信单元219使用包括电话线和CATV(有线电视)在内的各种网络执行通信处理。
如有必要,输入/输出接口215还连接到驱动器220。如有必要,将磁盘231(包括软盘)、光盘232(包括CD-ROM(紧致盘-只读存储器)和DVD(数字多用途盘))、磁光盘233(包括迷你盘)、或者半导体存储器234载入到驱动器220中。如有必要,从介质中读取计算机程序并且将其安装到存储单元218中。
当软件用于执行上述连续处理时,从网络和/或记录介质中安装包括在该软件中的程序。
如图30所示,这个记录介质包括记录了程序的封装介质,其被分发用于与计算机分离地向用户提供程序,并且其包括磁盘231、光盘232、磁光盘233、或者半导体存储器234。
此外,在这个说明书中,构成记录在记录介质上的程序的步骤不仅包括以给定次序依照时间顺序方式执行的步骤,而且还包括如果可以不以时间顺序方式执行的话可并行或者分别执行的步骤。
上述实施例描述了其中压缩流数据被存储在HDD16中的情况。然而,本发明的实施例不局限于这样的情况,而且它可应用于甚至是解码记录在诸如光盘、磁光盘、半导体存储器、或者磁盘之类的每种记录介质中的流数据的情况。
在这个说明书中,系统表示包括多个装置的设备整体。
本领域技术人员应当理解在权利要求及其等效内容的范围之内,取决于设计要求及其它因素,可以出现各种修改、组合、子组合以及改变。
权利要求
1.一种用于控制第一和第二编码流以便使之以其中第一和第二编码流彼此连接的方式输出的信息处理设备,所述信息处理设备包含操作输入获取装置,用于获取表示要重放的第一和第二编码流中的重放部分的操作输入;存储装置,用于存储包括第一和第二编码流在内的编码流;传输控制装置,用于控制用于由操作输入获取装置所获取的操作输入的第一和第二编码流中的部分、以及用于解码所述用于所获取的操作输入的第一和第二编码流中的部分所必需的编码流到所述存储装置的传输;解码装置,用于解码存储在存储装置中的第一和第二编码流以便生成图像数据;以及命令装置,用于命令输出由解码装置所生成的图像数据的图像数据输出时间。
2.如权利要求1所述的信息处理设备,还包含控制信息生成装置,用于基于由操作输入获取装置所获取的操作输入,生成表示第一和第二编码流中的重放部分的控制信息。
3.如权利要求2所述的信息处理设备,其中第一和第二编码流中的每一个都包括画面组;以及所述传输控制装置以画面组为单位控制第一和第二编码流的传输。
4.如权利要求1所述的信息处理设备,还包括传输定时控制装置,用于通过预测由命令装置命令的图像数据输出时间来控制传输定时,以便在命令图像数据输出时间之前传输第一和第二编码流;以及解码控制装置,用于控制解码装置,以便在存储装置中存储的第一和第二编码流中优先解码当对要解码的画面进行解码时被参考的参考画面。
5.如权利要求4所述的信息处理设备,其中,所述传输控制装置控制第一和第二编码流的传输,以便以预定传送单位将第一和第二编码流作为传输数据传输到所述存储装置;以及当其到所述存储装置的传输受到控制的传输数据中要显示的画面的数目不大于预定画面数目时,所述传输定时控制装置控制传输定时,以便将下一个传输数据传输到存储装置。
6.如权利要求1所述的信息处理设备,其中,所述传输定时控制装置确定将第一和第二编码流传输到存储装置的传输单位。
7.如权利要求6所述的信息处理设备,其中第一和第二编码流中的每一个都包括包含B画面的画面组;以及当基于其输出时间由命令装置命令的图像数据的画面被包括在B画面中,并且其中B画面通过参考包括在与包括所述基于图像数据的画面的第一画面组不同的第二画面组中的画面来解码时,所述传输控制装置将通过参考包括在第二画面组中的画面而解码的B画面、为解码所述B画面所必需的参考画面、以及第二画面组确定为传输到存储装置的传输单位,其中所述B画面和参考画面被包含在第一画面组中。
8.如权利要求7所述的信息处理设备,其中,当基于其输出时间由命令装置命令的图像数据的画面被包括在B画面中,并且其中B画面通过参考包括在与包括所述基于图像数据的画面的第一画面组不同的第二画面组中的画面来解码,而且未将第一画面组和第二画面组中的每一个提供给所述存储装置时,所述传输控制装置将通过参考包括在第二画面组中的画面而解码的B画面、为解码所述B画面所必需的参考画面、以及第二画面组确定为传输到所述存储装置的传输单位,其中所述B画面和参考画面包括在第一画面组中。
9.如权利要求1所述的信息处理设备,其中,第一和第二编码流是基于活动图像专家组标准编码的流。
10.一种用于控制第一和第二编码流以便使之以其中第一和第二编码流彼此连接的方式输出的信息处理方法,所述信息处理方法包含如下步骤获取表示要重放的第一和第二编码流中的重放部分的操作输入;存储包括第一和第二编码流在内的编码流;控制用于所获取的操作输入的第一和第二编码流中的部分、和用于解码所述用于所获取的操作输入的第一和第二编码流中的部分所必需的编码流到所述存储装置的传输;通过解码所存储的第一和第二编码流生成图像数据;以及命令输出所生成的图像数据的图像数据输出时间。
11.一种用于控制第一和第二编码流以便使之以其中第一和第二编码流彼此连接的方式输出的信息处理设备,所述信息处理设备包含操作输入获取单元,用于获取表示要重放的第一和第二编码流中的重放部分的操作输入;存储单元,用于存储包括第一和第二编码流在内的编码流;传输控制单元,用于控制用于由操作输入获取单元所获取的操作输入的第一和第二编码流中的部分、以及用于解码所述用于所获取的操作输入的第一和第二编码流中的部分所必需的编码流到所述存储单元的传输;解码单元,用于解码存储在存储单元中的第一和第二编码流以便生成图像数据;以及命令单元,用于命令输出由解码单元所生成的图像数据的图像数据输出时间。
全文摘要
一种信息处理设备控制第一和第二编码流以便使之以其中第一和第二编码流彼此相连的形式输出。该设备包括操作输入获取单元,用于获取表示要重放的两个编码流中的重放部分的操作输入;存储单元,用于存储包括两个编码流在内的编码流;传输控制单元,用于控制用于由操作输入获取单元所获取的操作输入的两个编码流中的部分、以及用于解码所述用于所获取的操作输入的两个编码流中的部分所必需的编码流到所述存储单元的传输;解码单元,用于解码存储在存储单元中的两个编码流以便生成图像数据;以及命令单元,用于命令输出由解码单元所生成的图像数据的图像数据输出时间。
文档编号H04N7/26GK101090489SQ20071011039
公开日2007年12月19日 申请日期2007年6月13日 优先权日2006年6月13日
发明者小薮恭平, 柴田正二郎, 纲岛修二, 白根庆太, 田中一好 申请人:索尼株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1