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

文档序号:7654354阅读:144来源:国知局
专利名称:信息处理设备和信息处理方法
技术领域
本发明涉及信息处理设备和信息处理方法,并且尤其涉及适合于在解码编码数据的过程中使用的信息处理设备和方法。
背景技术
例如,已知有这样的系统(例如,日本未经审查的专利申请公开2001-78145),其中,通过在计算机的插槽中安装其上装载了重放设备(诸如MPEG(活动图像专家组)解码器)的板,由该重放设备解码和重放计算机的HDD(硬盘驱动器)中存储的图像数据。
通常这样形成这个系统,以便使用户可以在计算机屏幕上指定了HDD中存储的、要被重放作为内容数据的图像数据的重放点(画面数据)之后,输入重放开始指令。
在相关技术的这个系统中,例如,在从用户接收了重放开始指令之后,从HDD读取用于重放所指定的重放点所必需的画面数据,并且将其提供给重放设备。

发明内容
在相关技术的系统中,从用户输入重放开始指令起直到开始重放为止需要一些时间,这是因为,在用户输入了重放开始指令直到输出重放点处的图像为止,必须执行画面数据从HDD到解码器的输出、画面数据的解码、以及解码数据的重放。换句话说,当执行诸如刮擦(scrub)重放之类的随机重放时,相关技术领域中的系统具有差的响应。因此,必须改善该响应。
已经鉴于上述情况而做出了本发明,而且所期望的是改善解码响应。
根据本发明的实施例,提供了一种用于解码编码流的信息处理设备,其包括存储器装置,用于存储编码流;解码装置,用于通过解码存储器装置中存储的编码流来生成图像数据;存储器传输控制装置,用于控制传输,以便在用于输出图像数据的定时之前将编码流传输到存储器装置;以及解码控制装置,用于控制解码装置进行的解码,以便在存储器装置中存储的编码流中,优先解码在画面解码过程中参考的参考画面。
该信息处理设备还可以包括命令装置,用于命令输出图像数据的定时。
该信息处理设备还可以包括确定装置,用于为其传输由存储器传输控制装置控制的编码流确定传输到存储器装置的传输单位。
在该信息处理设备中,编码流可以包括包含B画面的画面组,并且当基于其输出定时由命令装置命令的图像数据的画面被包括在B画面(其中通过参考包括在与包括该基于图像数据的画面的第一画面组不同的第二画面组中的画面,来解码B画面)中时,确定装置可以将通过参考第二画面组来解码的B画面、当解码B画面时所参考的参考画面、以及第二画面组确定为传输到存储器装置的传输单位。
在该信息处理设备中,编码流可以包括包含B画面的画面组,并且当第一画面组(它包括基于其输出定时由命令装置命令的图像数据的画面)和不同于第一画面组的第二画面组中的每一个均未被传输到存储器装置时,确定装置可以将通过参考包括在第二画面组中的画面而被解码的B画面、当解码B画面时参考的参考画面、以及第二画面组确定为传输到存储器装置的传输单位。
在该信息处理设备中,编码流可以包括包含X帧的画面组,并且当命令装置提供的命令表示编码流中的排列的前向输出,而且基于其输出定时由命令装置命令的图像数据的画面位于距离一个画面组结尾的Y帧之内(其中0<Y<X)时,存储器传输控制装置可以控制下述这样的画面组到存储器装置的传输,其中该画面组被预测为包括基于其输出定时由命令装置接下来命令的图像数据的画面。
在该信息处理设备中,编码流可以包括包含X帧的画面组,并且当命令装置提供的输出图像数据的命令表示编码流中的排列的反向输出,而且基于其输出定时由命令装置命令的图像数据的画面位于距离所述一个画面组开头的Z帧之内(其中0<Z<X)时,存储器传输控制装置可以控制下述这样的画面组到存储器装置的传输,其中该画面组被预测为包括基于其输出定时由命令装置接下来命令的图像数据的画面。
存储器传输控制装置可以控制到存储器装置的传输,以便使得Z>Y。
存储器传输控制装置可以控制到存储器装置的传输,以便利用早于第一定时的第二定时、以预定传输单位传输编码流,并且当未控制到存储器装置的传输时,它可以控制到存储器装置的传输以便以预定传输单位传输该编码流。
在该信息处理设备中,存储器传输控制装置可以将受到控制以便用第一定时启动传输的编码流传输的优先级设置得高于受到控制以便用第二定时启动传输的编码流传输的优先级。
在该信息处理设备中,编码流可以包括包含X帧的画面组,并且在第一定时中,由命令装置提供的输出图像数据的命令可以表示编码流中的排列的前向方向,而且基于其输出定时由命令装置命令的图像数据的画面可以位于距离一个画面组结尾的Y帧之内,其中0<Y<X。
在该信息处理设备中,编码流可以包括包含X帧的画面组,并且在第一定时中,由命令装置提供的输出图像数据的命令可以表示编码流中的排列的反向方向,而且基于其输出定时由命令装置命令的图像数据的画面可以位于距离所述一个画面组开头的Z帧之内,其中0<Z<X。
该信息处理设备还可以包括缓冲装置,用于在解码其传输由存储器传输控制装置控制的编码流之前,缓冲该编码流;缓冲传输控制装置,用于控制编码流从存储器装置到缓冲装置的传输;以及控制信号输出装置,用于向缓冲传输控制装置输出控制信号,该控制信号允许编码流从存储器装置到缓冲装置的传输。
在该信息处理设备中,存储器传输控制装置可以控制传输,以便利用早于预定的第一定时的第二定时、以预定传输单位传输编码流,而且控制信号输出装置可以执行控制,以便利用第一定时将控制信号输出到缓冲传输控制装置。
在该信息处理设备中,利用第一定时将控制信号输出到缓冲传输控制装置的优先级高于利用第二定时将编码流传输到存储器装置的优先级。
在该信息处理设备中,编码流可以包括包含X帧的画面组,而且在第二定时中,基于其输出定时由命令装置命令的图像数据的画面可以被包括在不同于下述这样的画面组的画面组中,其中所述画面组包括基于其输出定时由命令装置先前命令的图像数据的画面。
在该信息处理设备中,编码流可以是根据活动图像专家组标准编码的流。
根据本发明的另一个实施例,提供了一种用于解码编码流的信息处理方法,其包括如下步骤在存储器装置中存储所述编码流;通过解码存储器装置中存储的编码流来生成图像数据;控制传输,以便在用于输出图像数据的定时之前将编码流传输到存储器装置;以及控制解码,以便在存储器装置中存储的编码流中优先解码在画面解码过程中被参考的参考画面。
根据本发明的实施例,对在解码了编码流中的预定帧之后获得的输出定时命令进行预测。在输出定时命令之前,为了将编码流提供给预定存储单元用于解码,确定该编码流的传输定时。在存储单元中存储的编码流中,优先解码当解码不同帧时被参考的至少一些帧,并且命令通过解码生成的数据的输出定时。
网络表示这样的机制,其中利用至少两个连接的设备,信息可以从一个设备传送到另一个设备。通过网络执行通信的设备可以是分离的,并且可以是在单个设备中包括的内部块。
此外,通信类型不仅可以包括无线通信和有线通信,而且还可以包括其中使用了无线通信和有线通信这二者的通信,即,其中在一个间隔内执行无线通信而在另一个间隔内执行有线通信的通信。通信类型还可以包括其中有线通信被用作从一个设备到一个不同设备的通信而无线通信被用作从所述一个不同设备到所述一个设备的通信的通信。
重放设备可以是独立的设备,并且可以是用于在记录/重放设备和编辑设备的每一个中执行重放的块。
如上所述,根据本发明的实施例,可以输出解码数据。特别是,在输出定时命令之前提供编码流用于解码,而且在该编码流中,优先解码当解码不同帧时被参考的至少一些帧。因此,可以改善重放响应。


图1是示出重放设备的配置的框图;图2是在命令重放过程中使用的显示屏幕的图示;图3是说明了CPU功能的功能框图;图4是参考图像的图示;图5是GOP传输单位的图示;图6是说明图1所示的CPU 11进行的第一处理的流程图;图7是说明图1所示的CPU 23进行的处理的流程图;图8是说明传输单位确定处理的流程图;图9是说明第一传输定时确定处理的流程图;图10是说明第二传输定时确定处理的流程图;图11是说明图1所示的CPU 11进行的第二处理的流程图;
图12是说明第三传输定时确定处理的流程图;图13是说明传输完成发送确定处理的流程图;图14是说明传输完成发送确定处理的流程图;图15是说明了CPU功能的功能框图;以及图16是显示了个人计算机的配置的框图。
具体实施例方式
下面参考附图对本发明的实施例进行描述。
图1是示出重放设备1的硬件配置的框图。
CPU(中央处理单元)11连接到北桥12。例如,CPU 11控制诸如读取HDD 16中存储的数据之类的处理,调度由CPU 23执行的解码,并且生成和输出用于命令开始、改变、或者结束诸如解码和控制显示器输出之类的处理的命令。北桥12连接到PCI(外设部件互连/接口)总线14。例如,在CPU 11的控制下,向北桥12提供HDD 16中存储的数据,而且北桥12通过PCI总线14和PCI桥接器17将数据提供给存储器18。北桥12还连接到存储器13,并且与存储器13交换由CPU 11进行处理所必需的数据。
南桥15控制数据写入和读取。南桥15还接收从操作输入单元21提供的用户操作输入,并且通过北桥12将该输入提供给CPU 11。HDD16存储压缩编码的流数据。
此外,北桥12还连接到AGP(加速图形端口)总线19。通过使用北桥12和AGP总线19来控制图形控制器20,CPU 11可以控制GUI(图形用户界面)的显示,以便在输入操作的过程中协助用户。图形控制器20连接到外部显示单元或者外部显示设备(未示出),并且在CPU 11的控制下控制外部显示单元或者外部显示设备的显示处理。
PCI桥接器17在其中包括命令缓冲器31和结果缓冲器32,并且它连接到存储器18,其中存储器18在CPU 11的控制下缓存从HDD 16读取的流数据。在CPU 11的控制下,PCI桥接器17可以提供从HDD16读取的流数据,并且将它们存储在存储器18中。此外,在CPU 23的控制下,PCI桥接器17可以读取存储器18中存储的流数据,并且可以将所读取的流数据提供给连接到解码器26的存储器25。PCI桥接器17还控制与命令或者结果相对应的控制信号通过PCI总线14或者控制总线22的交换。
命令可以由CPU 11通过北桥12和PCI总线14写入到命令缓冲器31中,而且可以由CPU 23通过控制总线22从命令缓冲器31中读取所写入的命令。此外,可以由CPU 23通过控制总线22将命令的结果写入到结果缓冲器32中,而且可以通过北桥12和PCI总线14从结果缓冲器32中读取所写入的结果。
在PCI桥接器17的控制下,存储器18可以存储从HDD 16读取的压缩编码流数据。存储器18由例如SDRAM(同步动态随机存取存储器)形成。
CPU 20通过控制总线22读取写入到PCI桥接器17的命令缓冲器31中的命令,并且基于该命令控制由PCI桥接器17、存储器18、存储器25、和解码器26执行的处理。存储器24存储CPU 23的处理所必需的数据。
在CPU 23的控制下,解码器26通过解码所提供的压缩编码流数据来输出未经压缩的视频信号。解码器26可以在充分短于用于显示一帧的显示时间的时间内解码一帧。解码器26连接到存储器22。存储在存储器18中的压缩编码流数据在从PCI桥接器17提供之后可以被暂时存储在存储器25中,并且可以被提供给解码器26。此外,通过解码器26的解码获得的未经压缩的视频信号可以被存储在解码器26中。解码器26可以作为未被包括在重放设备1中的独立设备提供。
图1所示的重放设备1可以被形成为单个设备,或者可以由多个设备形成。例如,通过在图1所示的重放设备1中这样配置CPU 11、北桥12、存储器13、南桥15、HDD 16、AGP总线19、图形控制器20、和操作输入单元21以便使它们全部或者部分地包括在个人计算机的配置中,并且向诸如PCI卡或者PCI-Express卡之类的扩展卡或者扩展板提供PCI总线14、PCI桥接器17、存储器18、存储器22、CPU23、存储器24、存储器25、和解码器26的功能,个人计算机可以通过将该扩展卡或者板安装到个人计算机上而起到重放设备1的作用。作为选择,可以通过将上述功能块进一步划分为多个设备来配置重放设备1。
接下来,在下面描述重放设备1的操作。
HDD 16存储依照MPEG的长GOP格式获得的压缩视频数据。
基于来自操作输入单元21的用户操作输入,CPU 11控制用于解码压缩编码流以便重放的处理。例如,用户通过查看由图形控制器20的处理而作为GUI被显示在显示单元或者设备(未示出)上的、如图2所示的屏幕,来命令流的重放。
在图2所示的屏幕上,以列表形式显示可以被重放的流,即,HDD 16中存储的流(它们由例如标记、图标等表示),而且显示了时间线41-1到41-5以及用于命令流中的重放位置的显示帧位置指定线42。当用户例如通过使用诸如鼠标之类的输入设备在时间线41-1到41-5当中的一个位置处粘贴要重放的流的标记来命令期望流的刮擦(scrub)重放时,可以指定要执行刮擦重放的流,并且可以改变要显示的帧的位置。当缓慢移动显示帧位置指定线42时,帧被连续地重放。当快速移动显示帧位置指定线42时,以几个帧的间隔执行重复,并且基于显示帧位置指定线42的移动速度来确定用于重放的帧的间隔大小。当命令改变重放开始位置时,用户可以比预定速度更快地移动显示帧位置指定线42。当命令反向重放时,用户可以以期望的速度沿反向方向(图2中的向左方向)移动显示帧位置指定线42。
虽然图2示出了五条时间线,即,时间线41-1到41-5,但是显然时间线的数目可以是除五之外的任何值。
基于从操作输入单元21提供的用户操作输入,CPU 11使用北桥12来控制南桥15以便从HDD 16中读取由用户指定的压缩编码流数据,并且通过使用北桥12、PCI总线14、和PCI桥接器17提供通过在用户指定的重放位置处解码帧来执行重放所需要的一部分数据,并将其存储在存储器18中。在这时候,基本上以GOP为单位将流数据传输到存储器18。稍后描述用于确定流传输单位的方法的细节。
此外,CPU 11使用北桥12和PCI总线14在PCI桥接器17的命令缓冲器31中写入表示完成了GOP中的数据到存储器18的传输的GOP传输完成命令,表示重放速度的信息(包括重放方向信息)。
CPU 23基于写入到PCI桥接器17的命令缓冲器31中的命令来确定压缩编码流数据的解码和输出(显示)调度。具体而言,CPU 23确定用于将压缩编码流数据从存储器18传输到存储器25的定时,用于将压缩编码流数据从存储器25输入到解码器26的定时,用于为每一帧执行解码的定时,以及已解码画面的输出,即显示定时。
换句话说,CPU 23控制PCI桥接器17,以便基于所确定的调度、将存储器18中存储的压缩编码流数据提供给存储器25和解码器26。
CPU 23控制解码器26,以便解码通过存储器25提供的压缩编码流数据。解码器26通过解码所提供的压缩编码流数据来生成和输出未经压缩的基带图像数据。
具体而言,在CPU 23的控制下,解码器26优先解码提供给存储器22的GOP中的I和P画面,并且将所获得的未经压缩的基带图像数据存储在存储器25中。具体而言,当CPU 11向CPU 23提供帧显示命令时,如果存储器25存储了要被用于显示的未经压缩的基带图像数据,则CPU 23控制存储器25以便输出所存储的数据。如果存储器25没有存储要被用于显示的未经压缩的基带图像数据,则CPU 23控制解码器26,以便通过使用存储在存储器25中的未经压缩的基带图像数据作为参考图像,解码要显示的帧,并且生成和输出未经压缩的基带图像数据。
因为解码器26可以在充分地短于用于显示一帧的显示时间的时间内解码一帧,所以当不执行用于解码要显示的帧的处理时,解码器26优先解码存储器25中存储的GOP的I和P画面,并且将所获得的未经压缩的基带图像数据存储在存储器25中。当从CPU 11发送了显示命令时,如果要显示的帧本身或者要显示的帧的参考图像早已被存储在存储器25中了,则可以输出存储在存储器25中的基带图像信号,并且将该基带图像信号使用作为参考图像。因此,与其中没有取决于每个画面而给予解码优先级的情况相比,可以执行高速解码,并且在显示开始帧中尤其如此。
也就是说,在重放设备1中,可以在显示命令之前传输一个GOP的数据。因此,可以优先地解码包括在所传输的GOP中的至少一些I和P画面。当需要显示一个预定帧时,生成用于显示该帧的命令,并且使用事先解码的I和P画面来显示该预定帧。因此,可以减少从生成用于显示该帧的命令到解码结束为止的时间,因此改善了响应。
因此,当命令以高速移动显示帧位置指定线42,而且以每个GOP一帧来执行帧显示时,与传输GOP中的全部帧的情况相比,仅仅传输用于解码要重放的帧的最小数目的帧是更有效率的。然而,可能有这样的情况,其中,在那之后,命令连续重放并且需要相应的GOP及其它数据。在这种情况下,如果仅仅传输了最小量的数据(即,要显示的帧和解码该帧所需要的数据),则必须为了该不充足而传输另外的数据。如上所述,在其中在高速显示中仅仅传输最少的帧并且必要时传输另外的数据的控制情况下,数据管理是复杂的。因此,CPU 11控制基本上以GOP为单位执行帧传输。
换句话说,在CPU 11控制包括要显示的帧的GOP的传输之后,CPU 11发送显示命令以指定要显示的帧。
接下来,下面参考图3所示的功能框图描述CPU 11的功能。
CPU 11具有包括操作输入获取单元61、传输GOP确定单元62、传输单位确定单元63、GOP传输定时控制单元64、传输完成命令发送单元65、结果获取单元66、和显示命令发送单元67在内的功能。
操作输入获取单元61通过南桥15和北桥12获取从操作输入单元(未示出)提供的用户操作输入。如有必要,操作输入获取单元61将对应的操作输入信息提供给传输GOP确定单元62或者传输单位确定单元63。
基于从操作输入获取单元61提供的操作输入,传输GOP确定单元63调度帧显示次序并且查找要输出用于重放的帧,确定要传输到存储器18的GOP,并且将该GOP报告给传输单位确定单元62和GOP传输定时控制单元64。
基于从操作输入获取单元61提供的操作输入、以及表示要传输的GOP并且从传输GOP确定单元62报告的信息,传输单位确定单元63确定要传输的GOP的数据传输单位。
如上所述,基本上以GOP为单位执行帧数据传输。然而,当要显示的帧是如图4所示在GOP的开始处的B0和B1时,需要例外处理以便参考在先前GOP中的帧。
特别地,当例如在其中显示帧位置指定线42从图5中的α所示的位置到图5中的β所示的位置快速移动的情况下重放帧不连续时,如果执行以GOP为单位的完全传输,则需要执行用于两个GOP、即GOP(n)和GOP(n+1)的传输。然而,在通过使用参考图2所述的GUI屏幕进行的刮擦重放中,频繁地执行重放位置的快速移动。因此,在显示帧位置指定线42在参考图2所述的GUI屏幕上快速移动的状态下,存在紧挨着由图5中的β所示的帧之后显示的帧可能是在不同于GOP(n+1)的GOP中包括的帧的高度可能性,并且在这种情况下,传输GOP(n+1)中的全部数据是不经济的。
因此,当要显示的帧是在GOP的开始处的B0和B1时,在例外处理中,CPU 11控制数据传输,以便以下述这样的形式执行数据传输,其中将包括要显示的帧的GOP中的I2、B0、和B1添加到相对于包括要显示的帧的GOP的先前GOP中。此外,在将I2、B0、和B1添加到先前GOP中的情况下执行数据传输、并且显示了由β所示的帧之后,命令正常重放。当显示帧位置指定线42的移动较少,并且命令显示GOP(n+1)中包括的帧、例如由图5中的γ所示的帧时,如果象往常一样传输GOP(n+1),则数据传输仅仅产生冗余部分I2、B0、和B1,因此控制没有变得复杂。这减少了数据传输的冗余度,因此改善了数据传输效率。
GOP传输定时控制单元64通过在必要时使用FIFO队列来管理存储器18中存储的GOP,来控制到存储器18的GOP传输的定时。稍后描述传输定时控制的细节。
传输完成命令发送单元65通过北桥12和PCI总线14将传输完成命令发送到PCI桥接器17中的命令缓冲器31。稍后描述对用于发送传输完成命令的定时的控制的细节。
结果获取单元66通过北桥12和PCI总线14从PCI桥接器17中的结果缓冲器32获取响应于某一命令的结果。
显示命令发送单元67通过北桥12和PCI总线14将显示命令发送到PCI桥接器17中的命令缓冲器31。稍后描述控制用于发送显示命令的定时的细节。
CPU 23具有包括命令获取单元101、存储器间传输控制单元102、解码调度单元103、解码控制单元104、和结果发送单元105在内的功能。
命令获取单元101通过控制总线22获取在从传输完成命令发送单元65或者显示命令发送单元57发送之后存储在PCI桥接器17的命令缓冲器31中的命令。
存储器间传输控制单元102基于由命令获取单元101获取的传输完成命令和显示命令,控制已传输到存储器18的GOP到存储器25的传输。
解码调度单元103基于由命令获取单元101获取的传输完成命令和显示命令,确定用于解码在下述每个GOP中包括的帧的解码调度,其中每个GOP到存储器22的传输由存储器间控制单元72所控制。通过使用其中不执行显示所需要的解码的时间,解码调度单元103对解码进行调度,以便在存储器25中存储的帧当中、优先解码I和P画面。此外,通过使用在事先解码之后存储在存储器25中的I和P画面,解码调度单元103对解码进行调度,以便可以快速地输出命令了其显示的帧的基带图像数据。
解码控制单元104基于由解码调度单元103获得的解码调度来控制解码器26的解码。
结果发送单元105通过控制总线22将响应于由命令获取单元101获取的传输完成命令和显示命令的结果发送到PCI桥接器17中的结果缓冲器32。
接下来,下面充分描述由图3中的GOP传输定时控制单元64执行的GOP传输定时控制,由图3中的传输完成命令发送单元65执行的传输完成命令发送定时控制,以及由图3中的显示命令发送单元67执行的显示命令发送定时控制。
在重放设备1中,HDD 16中存储的帧数据在CPU 11的控制下被传输到存储器18之后,可以在CPU 23的控制下进行传输和解码。以这样的方式,并不是直接将HDD 16中存储的帧数据传输到存储器25,而是通过暂时地将帧数据传输到存储器18,即使能够被存储在存储器25中的数据量小,也可以尽可能地防止解码被延迟。
在其中能够被存储在存储器25中的数据量是例如五个GOP的情况下,当考虑在诸如瞬变重放(其中在短的间隔内连续地命令前向重放和后向重放)之类的重放中的重放方向的反向时,优选为尽可能地不提供未使用的数据。然而,从HDD 16读取数据比从每个存储器读取数据更不稳定,而且此外,PCI总线14不仅仅由GOP数据传输所占用,从而使得可能出现来自不同设备的中断等。由于上述事实,在诸如当改变重放种子(seed)时、当使重放方向反向时、以及当改变重放开始位置时之类的情况下,HDD 16中存储的帧数据可能不能以高速直接且稳定地传输到存储器25。
因此,通过使用存储器18作为中间缓冲器,因为存储器18不受外部中断影响并且预计可稳定地将数据传输到存储器25,所以,即使能够被存储在存储器25中的数据量小,也可以执行稳定的解码。
当还没有传输包括被命令当前显示的帧的GOP时,以及当不仅对应GOP的传输被控制而且还基于过去的情况确定该重放是连续的时,GOP传输定时控制单元64可以控制数据传输,以便可以取决于重放方向而事先传输可能接下来要传输的GOP。
具体而言,当GOP传输定时控制单元64确定沿前向方向执行连续重放时,GOP传输定时控制单元64在早于命令显示时间上包括在下一个GOP中的帧的预定时段(例如,五个帧)内启动下一个GOP的传输。此外,类似地,当确定连续执行反向重放时,GOP传输定时控制单元64在早于命令显示包括在时间上在前的GOP中的帧的预定时段(例如,八个帧)内启动前向GOP的传输。
这里,在前向重放和反向重放中,就事先传输被预测为接下来要显示的GOP的定时而言,可以仅仅在同一预定时段中事先传输该GOP。在其中具有更多参考图像的帧被较早地显示的反向重放很可能被重放的情况下,与前向重放的情况相比,更优选的是在更早的时间传输被预测为接下来显示的GOP。
因此,通过优先地解码在被预测为要被命令显示的下一个GOP的I和P画面当中的至少一些画面,解码器26可以在命令显示这些图像以及通过解码这些图像所获得的图像之前,在存储器25中存储所获得的基带图像信号。因此,与其中顺序地解码用于被命令显示的图像的参考图像帧的情况相比,可以更快地执行被命令显示的图像的解码。
当命令了不连续的重放时,诸如,在其中不执行连续重放的情况下,即,在其中非常高速重放以致没有为一个GOP显示一帧的情况下,如果事先沿重放方向传输了下一个GOP,则该传输可能是不必要的。因此,在这种情况下,不执行较早的传输。
如上所述,为了让GOP传输定时控制单元64控制GOP传输,必须识别当前存储在存储器18中的GOP。因此,GOP传输定时控制单元64通过例如使用FIFO队列来管理存储器18中存储的GOP。
此外,如上所述,在重放设备1中,在CPU 11中的GOP传输定时控制单元64的控制下,在传输到存储器18之后,将HDD 16中存储的帧数据传输到存储器25,并且对其进行解码。因为如上所述传输执行两次,所以数据传输可能被延迟了。
因此,通过将存储器18设置为其数据大小充分地大于存储器25的数据大小,GOP传输定时控制单元64使用包括正被重放的帧的GOP中的GOP改变点作为不同于第一定时的第二定时,并且事先传输可能接下来要传输到存储器18的GOP,其中第一定时是在包括正被重放的帧的GOP中的中间点(在前向重放的情况下,在距离GOP的末尾的5帧之内,而在反向重放的情况下,在距离GOP的开头的8帧之内)。当还没有利用第一定时(其为包括正被重放的帧的GOP的中间点)传输可能接下来要传输的GOP时,GOP传输定时控制单元64类似于上述情况那样启动GOP的传输。
此外,在这时候,即使利用第二定时启动可能接下来要重放的GOP的传输,或者即使利用第一定时启动可能接下来要重放的GOP的传输,优选的也是利用第一定时发送传输完成命令,这是因为要防止数据被超出必要地事先发送到存储器25。
这稳定了数据传输,并且改善了对显示命令的响应。例如,即使事先传输到存储器18的GOP由于诸如传输方向改变或者传输速度改变之类的原因而没有被重放,当没有发送传输完成命令时,也可以高效地使用存储器25,这是因为没有将GOP传输到存储器25。
此外,和用于发送命令的处理以及用于传输可能紧接着包括当前重放的帧的GOP之后重放的GOP的处理相比,更进一步优选的是,在GOP改变点处,降低了用于发送可能随后传输的GOP的处理的优先级。
换句话说,与用于发送诸如显示命令之类的命令的处理、以及用于传输可能紧接着包括当前重放的帧的GOP之后被重放的GOP的处理相比,用于在GOP改变点处事先传输数据的处理是不紧迫的,这是因为在该处理中事先传输了可能要使用的数据。
因此,通过给予优先级,可以改善诸如命令发送之类的数据传输的效率,而没有恶化为显示视频所需要的处理。此外,等同于命令传输的情况,通过向显示所必需的数据传输处理和用于传输可能紧接着包括当前重放的帧的GOP之后重放的GOP的处理中的每一个给予高优先级,如果在GOP改变点处仅仅传输数据的过程中必须传输另一个具有较高紧迫性的GOP,则通过提高传输的优先级,可以防止延迟对必需的GOP的传输的响应。
接下来,下面参考图6所示的流程图描述CPU 11的第一处理。
在步骤S1,CPU 11中的操作输入获取单元61通过南桥15和北桥12接收从操作输入单元21提供的用户操作输入,并且将该操作输入提供给传输GOP确定单元62和传输单位确定单元63。
在步骤S2,传输GOP确定单元62对帧显示次序进行调度。在步骤S3,传输GOP确定单元62指定要显示的帧,借此确定要传输到存储器18的GOP。传输GOP确定单元62将所指定的帧报告给传输单位确定单元63和GOP传输定时控制单元64。
在步骤S4,执行参考图8描述的传输单位确定处理。
在步骤S5,执行参考图9或者10描述的传输定时确定处理。
在步骤S6,GOP传输定时控制单元64确定是否早已完成了一个GOP的传输。
如果在步骤S6确定早已完成了一个GOP的传输,则在步骤S7,GOP传输定时控制单元64命令传输完成命令发送单元65发送GOP传输完成命令。传输完成命令发送单元56通过北桥12和PCI总线14将传输完成命令发送到PCI桥接器17中的命令缓冲器31。
如果在步骤S6确定还没有完成一个GOP的传输,或者在步骤S7完成之后,在步骤S8,基于从结果获取单元66提供的信号,GOP传输定时控制单元64确定是否通过北桥12和PCI总线14从结果缓冲器32中获取了或者早已获取了包括接下来要显示的帧的GOP的传输结束的结果。如果在步骤S8确定未获取或者还没有获取包括接下来要显示的帧的GOP的传输结束的结果,则重复执行步骤S8,直到确定获取或者早已获取了包括接下来要显示的帧的GOP的传输结束的结果为止。
如果在步骤S8确定获取或者早已获取了包括接下来要显示的帧的GOP的传输结束的结果,则在步骤S9,GOP传输定时控制单元64命令显示命令发送单元67发送用于显示接下来要显示的帧的显示命令。显示命令发送单元67通过北桥12和PCI总线14将显示命令发送到PCI桥接器17中的命令缓冲器31。
在步骤S10,基于从操作输入获取单元61提供的、表示操作输入的信号,传输单位确定单元63确定是否已经从用户输入了包括帧显示次序更改、诸如参考图2所述的显示帧位置指定线42的位置改变、或者在要显示的流的改变等的操作。如果在步骤S10确定已经输入了包括帧显示次序更改在内的操作,则处理返回到步骤S2,并且重复执行后续的步骤。
如果在步骤S10确定没有输入包括帧显示次序更改之内的操作,则在步骤S11,基于从操作输入获取单元61提供的、表示操作输入的信号,传输单位确定单元63确定是否要完成显示。如果在步骤S11确定不要完成显示,则处理返回到步骤S3,并且重复执行后续步骤。如果在步骤S11确定要完成显示,则该处理完成。
如上所述,在CPU 11中,基于用户的操作输入,确定帧显示次序。确定GOP传输单位和传输定时,以便可以在发送显示命令之前解码相应GOP中的I和P画面,并且在完成传输时发送传输完成命令。在那之后,发送显示命令。因此,当发送显示命令时,存在该GOP中的I和P画面早已被解码的高度可能性,以便可以改善对显示命令的显示响应。
接下来,下面参考图7所示的流程图描述与参考图6所述的CPU11的第一处理并行执行的、CPU 23的处理。
在步骤S41,通过经由存储器22参考PCI桥接器17的命令缓冲器31,CPU 23中的存储器间传输控制单元102确定是否已经接收了传输完成命令。如果在步骤S41确定还没有接收到传输完成命令,则处理继续到稍后描述的步骤S45。
如果在步骤S41确定已经接收了传输完成命令,则在步骤S42,命令获取单元101将传输完成命令的接收报告给存储器间传输控制单元102和结果发送单元105。存储器间传输控制单元102确认完成了从HDD 16到存储器18的GOP传输。结果发送单元105通过控制总线22将对传输完成命令的结果送回到PCI桥接器17中的结果缓冲器32。
在步骤S43,存储器间传输控制单元102控制从存储器18到存储器25的GOP传输。也就是说,存储器间传输控制单元102基于从CPU 11接收传输完成命令的定时而不是完成到存储器18的GOP传输的定时,控制从存储器18到存储器25的GOP传输。
在步骤S44,解码调度单元103对解码进行调度,以便优先解码传输到存储器25的GOP中的锚帧(anchor frame),并且向解码控制单元104报告解码调度。解码控制单元104基于由解码调度单元103获得的解码调度来控制解码器26进行的解码。
如果确定还没有接收到传输完成命令,或者在步骤S44完成之后,在步骤S45,通过经由控制总线22参考PCI桥接器17中的命令缓冲器31,命令获取单元101确定是否已经接收了显示命令。如果在步骤S45确定还没有接收到显示命令,则处理继续到步骤S48。
如果在步骤S45确定已经接收了显示命令,则在步骤S46,解码控制单元104控制解码器26和存储器25以便输出画面。
具体而言,当被命令显示的帧是例如I画面或者P画面时,检测通过解码获得的基带图像数据是否被存储在存储器25中。如果基带图像数据存储在存储器25中,则输出所存储的基带图像数据。此外,当被命令显示的帧是例如B画面时,检测为解码B画面所必需的参考图像数据是否被存储在存储器25中。如果参考图像数据存储在存储器25中,则使用所存储的参考图像数据来解码要输出的B画面。
在步骤S47,解码控制单元104确定是否已经完成了相应帧的显示。如果在步骤S47确定还没有完成帧的显示,则处理返回到步骤S46,并且重复执行后续步骤。
如果在步骤S45确定还没有接收到显示命令,或者如果在步骤S47确定已经完成了帧的显示,则在步骤S48,通过经由控制总线22参考PCI桥接器17中的命令缓冲器31,命令获取单元101确定是否要完成显示。如果在步骤S48确定不要完成显示,则处理返回到步骤S41,并且重复执行后续步骤。如果在步骤S48确定要完成显示,则该处理完成。
在上述处理中,CPU 23控制从存储器18到存储器25的GOP传输以及由解码器26进行的解码。在这种情况下,优先解码被传输到存储器25的GOP中的锚帧。因此,可以改善从收到显示命令直到输出通过解码获得的基带图像数据为止的响应。
接下来,下面将参考图8所示的流程图描述在图6的步骤S4中执行的传输单位确定处理。
在步骤S71,CPU 11中的传输单位确定单元62确定要显示的帧是否为在GOP的开始处的两个B画面之一。如果在步骤S71确定要显示的帧不是在GOP的开始处的两个B画面之一,则处理继续到稍后描述的步骤S72。
如果在步骤S71确定要显示的帧是在GOP的开始处的两个B画面之一,则在步骤S72,传输单位确定单元62确定包括该B画面的GOP是否处于流的开始处,即,包括该B画面的GOP是否没有前向参考图像。如果在步骤S72确定包括该B画面的GOP处于流的开始处,则处理继续到步骤S74(稍后描述)。
如果在步骤S72确定包括该B画面的GOP不在流的开始处,则在步骤S73,传输单位确定单元62确定是否早已传输了前向GOP,即,包括用于这个B画面的前向参考图像的GOP。如果在步骤S73确定还没有传输前向GOP,则处理继续到稍后描述的步骤S76。
如果在步骤S71确定要显示的帧不是在GOP的开始处的两个B画面之一,如果在步骤S72确定包括该B画面的GOP在流的开始处,或者如果在步骤S73确定早已传输了前向GOP,则在步骤S74,传输单位确定单元62确定是否早已传输了包括要显示的帧的GOP。如果在步骤S74确定早已传输了包括要显示的帧的GOP,则处理返回到图4中的步骤S4并且继续到步骤S5。
如果在步骤S74确定还没有传输包括要显示的帧的GOP,则在步骤S75,传输单位确定单元62控制启动包括要显示的帧的GOP从HDD 16通过南桥15、北桥12、PCI总线14、和PCI桥接器17到存储器18的传输。该处理返回到图6中的步骤S4,并且继续到步骤S5。
如果在步骤S73确定还没有传输前向GOP,则在步骤S76,传输单位确定单元62确定是否早已传输了包括B画面的GOP,即,包括要显示的帧的GOP。
如果在步骤S73确定早已传输了包括B画面的GOP,则在步骤S77,传输单位确定单元62控制启动第一前向GOP从HDD 16通过南桥15、北桥12、PCI总线14、和PCI桥接器17到存储器18的传输。该处理返回到图6中的步骤S4,并且继续到步骤S5。
如果在步骤S73确定还没有传输包括B画面的GOP,则在步骤S78,传输单位确定单元62控制启动除了第一前向GOP之外、在要显示的GOP中的I2、B0、和B1通过南桥15、北桥12、PCI总线14、和PCI桥接器17的传输。该处理返回到图6中的步骤S4,并且继续到步骤S5。
在上述处理中,当要显示的画面是在GOP的开始处的两个B画面之一,而且还没有传输包括B画面的GOP以及第一前向GOP(即,包括为解码要显示的B画面所需要的参考图像帧的GOP)中的任何一个时,传输第一前向GOP、以及I2、B0、和B1。因此,即使当前执行的重放处理是高速重放处理,而且未显示在包括B画面的GOP中的不同帧,也可防止传输不必要的数据。此外,在其中为了显示包括这个B画面的GOP中的不同帧而不是高速重放处理的情况下,必须传输包括该B画面的GOP,并且所传输的数据的冗余度减少了。
接下来,下面参考图9所示的流程图描述作为图6中的步骤S5中执行的传输定时确定处理流程的第一示例的第一传输定时确定处理。
在步骤S101,GOP传输定时控制单元64确定要显示的帧是否被包括在包括先前显示的帧的同一个GOP中。如果在步骤S101确定要显示的帧未被包括在包括先前显示的帧的同一个GOP中,则处理返回到图6中的步骤S5,并且继续到步骤S6。
如果在步骤S101确定要显示的帧被包括在包括先前显示的帧的同一个GOP中,则在步骤S102,GOP传输定时控制单元64确定要显示的帧相对于先前显示的帧是否时间上在后,即,确定是否执行前向重放。如果在步骤S102确定要显示的帧相对于先前显示的帧是时间上在后的,则处理继续到稍后描述的步骤S106。
如果在步骤S102确定要显示的帧相对于先前显示的帧不是时间上在后的,即,确定执行反向重放的话,则在步骤S103,GOP传输定时控制单元64确定要显示的帧是否位于距离GOP开头的八个帧之内。如果在步骤S103确定要显示的帧不在距离GOP开头的八个帧以内,则处理返回到图6中的步骤S5并且继续到步骤S6。
如果在步骤S103确定要显示的帧位于距离GOP开头的八个帧之内,则在步骤S104,GOP传输定时控制单元64确定是否正在传输或者早已传输了第一前向GOP中的数据。如果在步骤S104确定正在传输或者早已传输了第一前向GOP的数据,则处理返回到图6中的步骤S5并且继续到步骤S6。
如果在步骤S104确定不是正在传输或者还没有传输第一前向GOP的数据,则在步骤S105,GOP传输定时控制单元64控制启动第一前向GOP从HDD 16经由南桥15、北桥12、PCI总线14、和PCI桥接器17到存储器18的传输。该处理返回到图6中的步骤S5,并且继续到步骤S6。
如果在步骤S102确定要显示的帧相对于先前显示的帧是时间上在后的,则在步骤S106,GOP传输定时控制单元64确定要显示的帧是否位于距离GOP末尾的五个帧之内。如果在步骤S106确定要显示的帧不在距离GOP末尾的五个帧以内,则处理返回到图6中的步骤S5并且继续到步骤S6。
如果在步骤S106确定要显示的帧位于距离GOP末尾的五个帧之内,则在步骤S107,GOP传输定时控制单元64确定是否正在传输或者早已传输了第一后向GOP中的数据。如果在步骤S107确定正在传输或者早已传输了第一后向GOP的数据,则处理返回到图6中的步骤S5并且继续到步骤S6。
如果在步骤S107确定不是正在传输或者还没有传输第一后向GOP的数据,则在步骤S108,GOP传输定时控制单元64控制启动第一后向GOP从HDD 16经由南桥15、北桥12、PCI总线14、和PCI桥接器17到存储器18的传输。该处理返回到图6中的步骤S5,并且继续到步骤S6。
在其中在上述处理中在前向重放时接下来要重放的帧在距离GOP末尾的五个帧之内、以及在反向重放时接下来要重放的帧在距离GOP开头的八个帧之内的情况下,传输被预测为接下来要显示的GOP。因此,可以解码该GOP中所包括的I和P画面。因此,对于实际的显示命令而言,可以减少到解码结束所需要的时间。
如上所述,GOP传输定时控制单元64可以使用包括正被重放的帧的GOP中的GOP改变点作为不同于第一定时的第二定时,并且可以事先传输可能接下来要传输到存储器18的GOP,其中第一定时是在包括正被重放的帧的GOP中的中间点(在前向重放的情况下,在距离GOP末尾的5帧之内,而在反向重放的情况下,在距离GOP开头的8帧之内)。当还没有利用第一定时(其为包括正被重放的帧的GOP的中间点)传输可能接下来要传输的GOP时,类似于上述情况那样,GOP传输定时控制单元64启动GOP的传输。
接下来,下面参考图10所示的流程图描述作为在图6中的步骤S5中执行的传输定时确定处理的第二示例的第二传输定时确定处理。
在步骤S131,GOP传输定时控制单元64确定要显示的帧是否被包括在包括先前显示的帧的同一个GOP中。如果在步骤S131确定要显示的帧被包括在包含先前显示的帧的同一个GOP中,则处理继续到步骤S132。如果在步骤S131确定要显示的帧未被包括在包含先前显示的帧的同一个GOP中,则处理继续到稍后描述的步骤S139。
在步骤S132到S138中,执行基本上类似于图9中的步骤S102到S108的处理。
具体而言,如果确定要显示的帧相对于先前显示的帧不是时间上在后的,而是在距离GOP开头的八个帧之内,而且不是正在传输或者还没有传输第一前向GOP中的数据,则控制启动第一前向GOP从HDD 16到存储器18的传输。该处理返回到图6中的步骤S5,并且继续到步骤S6。
此外,如果确定要显示的帧相对于先前显示的帧是时间上在后的、在距离GOP结尾的五个帧之内,而且不是正在传输或者还没有传输第一后向GOP的数据,则启动第一后向GOP的数据传输,并且该处理返回到图6中的步骤S5并且继续到步骤S6。
如果确定要显示的帧不在距离GOP开头的八个帧之内,如果确定正在传输或者早已传输了第一前向GOP的数据,如果确定要显示的帧不在距离GOP结尾的五个帧之内,或者如果确定正在传输或者早已传输了第一后向GOP中的数据,则该处理返回到图6中的步骤S5并且继续到步骤S6。
如果在步骤S131确定要显示的帧未被包括在包含先前显示的帧的同一个GOP中,则在步骤S139,GOP传输定时控制单元64确定要显示的帧是否被包括在相对于包含先前显示的帧的第一后向GOP中,即,确定要显示的帧是否为前向重放中的GOP改变点。如果在步骤S139确定要显示的帧不被包括在相对于包含先前显示的帧的GOP的第一后向GOP中,则处理继续到稍后描述的步骤S141。
如果在步骤S139确定要显示的帧被包括在相对于包含先前显示的帧的GOP的第一后向GOP中,则在步骤S140,GOP传输定时控制单元64启动第二后向GOP的传输。该处理返回到图6中的步骤S5,并且继续到步骤S6。
如果在步骤S139确定要显示的帧不被包括在相对于包含先前显示的帧的GOP的第一后向GOP中,则在步骤S141,GOP传输定时控制单元64确定要显示的帧是否被包括在相对于包含先前显示的帧的GOP的第一前向GOP中,即,确定要显示的帧是否为反向重放中的GOP改变点。如果在步骤S141确定要显示的帧未被包括在相对于包含先前显示的帧的GOP的第一前向GOP中,则处理返回到图6中的步骤S5并且继续到步骤S6。
如果在步骤S141确定要显示的帧被包括在相对于包含先前显示的帧的GOP的第一前向GOP中,则在步骤S142,GOP传输定时控制单元64启动第二前向GOP的传输。该处理返回到图6中的步骤S5,并且继续到步骤S6。
在上述处理中,可以在被用作不同于第一定时(在前向重放的情况下在距离GOP结尾的5帧之内,而在反向重放的情况下在距离GOP开头的8帧之内)的第二定时的GOP改变点处启动被预测为接下来要显示的GOP的传输。因此,可以防止显示响应由于帧数据传输中的延迟而恶化。
此外,当利用第二定时启动可能接下来要重放的GOP的传输时,可以将该数据传输的优先级降低到低于显示命令等的优先级。在这时候,即使利用第二定时启动可能接下来要重放的GOP的传输,或者即使利用第一定时启动可能接下来要重放的GOP的传输,也优选为利用第一定时发送传输完成命令,这是因为要防止数据被超出需要地事先发送到存储器25。
换句话说,与用于发送诸如显示命令之类的命令的处理以及用于传输可能紧接着包括当前重放的帧的GOP之后被重放的GOP的处理相比,用于在GOP改变点处事先传输数据的处理上不紧迫的,这是因为在该处理中事先传输了可能要使用的数据。因此,通过给予优先级,可以改善诸如命令发送之类的数据传输的效率,而不会恶化为显示视频所需要的处理。
接下来,下面参考图11所示的流程图描述CPU 11的第二处理。CPU 11的第二处理在其中利用用作第二定时的GOP改变点、事先将可能接下来要传输的GOP传输到存储器18并且降低传输优先级的情况下、以及在其中传输完成命令被设置为利用第一定时发送的情况下执行,其中第一定时在前向重放的情况下重放距离GOP结尾的5帧之内的帧,而在反向重放的情况下重放距离GOP开头的8帧之内的帧。
在步骤S171到S174中,执行基本上与步骤S1到S4中的处理相类似的处理。
换句话说,接收从操作输入单元21通过南桥15和北桥12提供的用户操作输入,并且对帧显示次序进行调度。指定要显示的帧,并且确定要传输到存储器18的GOP。在那之后,执行参考图8所述的传输单位确定处理。
在步骤S175,执行参考图12所示的流程图描述的第三传输定时确定处理。
在步骤S176,执行参考图13所示的流程图描述的传输完成发送确定处理。
在步骤S177到S179中,执行基本上与参考图6描述的步骤S9到S11中的处理相类似的处理,然后处理完成。
换句话说,发送用于显示接下来要显示的帧的显示命令,并且基于用户操作输入,确定是否已经从用户输入了包含帧显示次序更改、诸如参考图2描述的显示帧位置指定线42的位置改变、或者要显示的流的改变的操作。如果确定已经输入了包括帧显示次序更改的操作,则处理返回到步骤S172,并且重复执行后续步骤。
如果确定还没有输入包含帧显示次序更改的操作,则基于表示操作输入的信号,确定是否要完成显示。如果确定不要完成显示,则处理返回到步骤S173,并且重复执行后续步骤。如果确定要完成显示,则处理完成。
在上述处理中,在GOP改变点处,事先将可能接下来要传输的GOP传输到存储器18,并且降低传输的优先级。利用这样的定时来发送传输完成命令,其中在该定时处,在前向重放的情况下重放距离GOP结尾的5帧之内的帧,而在反向重放的情况下重放距离GOP开头的8帧之内的帧。这可以防止显示响应由于帧数据传输中的延迟而恶化。此外,在诸如当改变重放方向时之类的情况下,因为事先将许多数据传输到存储器25,所以可以防止存储器25溢出,并且可以防止解码被推迟。
由CPU 23与参考图11所示的流程图描述的处理并行地执行的处理类似于参考图7所述的处理。因此,不再描述CPU 23进行的处理。
接下来,下面将参考图12所示的流程图描述在图11的步骤S175中执行的第三传输定时确定处理。
在步骤S201,GOP传输定时控制单元64确定要显示的帧是否被包括在包含先前显示的帧的同一个GOP中。如果在步骤S201确定要显示的帧被包括在包含先前显示的帧的同一个GOP中,则处理返回到步骤S175并且继续到步骤S176。
如果在步骤S201确定要显示的帧不被包括在包含先前显示的帧的同一个GOP中,则在步骤S202,GOP传输定时控制单元64确定要显示的帧是否被包括在相对于包含先前显示的帧的第一后向GOP中,即,确定要显示的帧是否为前向重放中的GOP改变点。如果在步骤S202确定要显示的帧被包括在相对于包含先前显示的帧的GOP的第一后向GOP中,则处理继续到稍后描述的步骤S206。
如果在步骤S102确定要显示的帧不被包括在相对于包括先前显示的帧的GOP的第一后向GOP中,则在步骤S203,GOP传输定时控制单元64确定要显示的帧是否被包括在相对于包括先前显示的帧的GOP的第一前向GOP中,即,确定要显示的帧是否为反向重放中的GOP改变点。
如果在步骤S203确定要显示的帧被包括在第一前向GOP中,则在步骤S204,GOP传输定时控制单元64降低传输优先级,并且启动第二前向GOP从HDD 16经由南桥15、北桥12、PCI总线14、和PCI桥接器17到存储器18的传输。该处理返回到图11中的步骤S175,并且继续到步骤S176。
如果在步骤S203确定要显示的帧未被包括在第一前向GOP中,即,确定要显示的帧不被包括在先前显示的帧的前后,则在步骤S205,GOP传输定时控制单元64提高正被传输并且包括要显示的帧的GOP的传输优先级。该处理返回到图11中的步骤S175,并且继续到步骤S176。
如果在步骤S202确定要显示的帧被包括在第一后向GOP中,则在步骤S206,利用提高了的传输优先级,GOP传输定时控制单元64启动第二后向GOP从HDD 16经由南桥15、北桥12、PCI总线14、和PCI桥接器17到存储器18的传输。该处理返回到图11中的步骤S175,并且继续到步骤S176。
在这个处理中,利用用作第二定时的GOP改变点,进一步事先传输可能接下来要传输的GOP,并且可以降低传输的优先级。
接下来,下面参考图13和14所示的流程图描述在图11的步骤S176中执行的传输完成发送确定处理。
在步骤S231,GOP传输定时控制单元64确定要显示的帧是否被包括在包含先前显示的帧的同一个GOP中。如果在步骤S231确定要显示的帧未被包括在包含先前显示的帧的同一个GOP中,则处理继续到稍后描述的步骤S245。
如果在步骤S231确定要显示的帧被包括在包含先前显示的帧的同一个GOP中,则在步骤S232,GOP传输定时控制单元64确定要显示的帧相对于先前显示的帧是否时间上在后。如果在步骤S232确定要显示的帧相对于先前显示的帧是时间上在后的,则处理继续到稍后描述的步骤S239。
如果在步骤S232确定要显示的帧相对于先前显示的帧不是时间上在后的,则在步骤S233,GOP传输定时控制单元64确定要显示的帧是否位于距离GOP开头的八个帧之内。如果在步骤S233确定要显示的帧不在距离GOP开头的八个帧以内,则处理返回到图11中的步骤S176并且继续到步骤S177。
如果在步骤S233确定要显示的帧在距离GOP开头的八个帧之内,则在步骤S234,GOP传输定时控制单元64确定是否正在传输第一前向GOP。
如果在步骤S234确定正在传输第一前向GOP,则在步骤S235,GOP传输定时控制单元64提高第一前向GOP的数据传输的优先级。该处理返回到图11中的步骤S176,并且继续到步骤S177。
如果在步骤S234确定不是正在传输第一前向GOP,则在步骤S236,GOP传输定时控制单元64确定是否早已传输了第一前向GOP。
如果在步骤S236确定早已传输了第一前向GOP,则在步骤S237,GOP传输定时控制单元64命令传输完成命令发送单元65发送有关第一前向GOP的传输完成命令。传输完成命令发送单元56通过北桥12和PCI总线14将有关第一前向GOP的传输完成命令发送到PCI桥接器17中的命令缓冲器31。该处理返回到图11中的步骤S176,并且继续到步骤S177。
如果在步骤S236确定还没有传输第一前向GOP的数据,则在步骤S238,GOP传输定时控制单元64控制启动第一前向GOP从HDD16经由南桥15、北桥12、PCI总线14、和PCI桥接器17到存储器18的传输。该处理返回到图11中的步骤S176,并且继续到步骤S177。在这时候,将第一前向GOP的传输优先级设置为和传输完成命令的优先级同样高。
如果在步骤S232确定要显示的帧相对于先前显示的帧是时间上在后的,则在步骤S239,GOP传输定时控制单元64确定要显示的帧是否在距离GOP结尾的五个帧之内。如果在步骤S239确定要显示的帧不在距离GOP结尾的五个帧以内,则处理返回到图11中的步骤S176并且继续到步骤S177。
如果在步骤S239确定要显示的帧在距离GOP结尾的五个帧之内,则在步骤S240,GOP传输定时控制单元64确定是否正在传输第一后向GOP中的数据。
如果在步骤S240确定正在传输第一后向GOP中的数据,则在步骤S241,GOP传输定时控制单元53提高正在传输的第一后向GOP的传输优先级。该处理返回到图11中的步骤S176,并且继续到步骤S177。
如果在步骤S240确定不是正在传输第一后向GOP中的数据,则在步骤S242,GOP传输定时控制单元64确定是否早已传输了第一后向GOP中的数据。
如果在步骤S242确定早已传输了第一后向GOP中的数据,则在步骤S243,GOP传输定时控制单元64命令传输完成命令发送单元65发送有关第一后向GOP的传输完成命令。传输完成命令发送单元56通过北桥12和PCI总线14将有关第一后向GOP的传输完成命令发送到PCI桥接器17中的命令缓冲器31。该处理返回到图11中的步骤S176,并且继续到步骤S177。
如果在步骤S242确定还没有传输第一后向GOP中的数据,则在步骤S244,GOP传输定时控制单元64控制启动第一后向GOP从HDD16经由南桥15、北桥12、PCI总线14、和PCI桥接器17到存储器18的传输。该处理返回到图11中的步骤S176,并且继续到步骤S177。在这时候,将第一后向GOP的传输优先级设置为和传输完成命令等的优先级同样高。
如果在步骤S231确定要显示的帧未被包括在包含先前显示的帧的同一个GOP中,则在步骤S245,确定GOP传输定时控制单元64是否早已命令了传输完成命令发送单元65发送有关包含要显示的帧的GOP的传输完成命令,即,确定传输完成命令发送单元65是否已经发送了有关包含要显示的帧的GOP的传输完成命令。如果在步骤S245确定早已发送了有关包含要显示的帧的GOP的传输完成命令,则处理返回到图11中的步骤S176并且继续到步骤S177。
如果在步骤S245确定还没有发送有关包含要显示的帧的GOP的传输完成命令,则在步骤S246,GOP传输定时控制单元64确定是否早已传输了包含要显示的帧的GOP的数据。
如果在步骤S246,确定还没有传输包含要显示的帧的GOP中的数据,则在步骤S247,GOP传输定时控制单元提高包含要显示的帧的GOP的传输优先级,并且等待GOP传输完成。
如果在步骤S246确定早已传输了包含要显示的帧的GOP中的数据,或者在步骤S247完成之后,在步骤S248,GOP传输定时控制单元64命令传输完成命令发送单元65发送有关包含要显示的帧的GOP的传输完成命令。传输完成命令发送单元56通过北桥12和PCI总线14将有关包含要显示的帧的GOP的传输完成命令发送到PCI桥接器17中的命令缓冲器31。该处理返回到图11中的步骤S176,并且继续到步骤S177。
在这个处理中,与实际的GOP传输定时无关,利用第一定时发送有关数据的传输完成命令,其中第一定时在前向重放的情况下重放在距离GOP结尾的5帧之内的帧,而在反向重放的情况下重放在距离GOP开头的8帧之内的帧。
通过执行上述处理,可以改善解码长GOP压缩视频数据的响应,而不用提供大存储容量的帧存储器、并且可以容易地以高速控制刮擦重放和前向/反向逐帧(frame-advance)重放。
已经举例说明了其中将MPEG用作CODEC处理的情况。然而,显然本发明可适用于其中执行使用帧相关性的CODEC处理的情况。例如,本发明可适用于AVC/H.264(高级视频编码/H.264)等。
AVC/H.264中的B画面可能不使用双向(正向和反向)参考图像。可以通过使用在过去的两个参考图像来执行预测,而且可以通过使用在将来的两个参考图像来执行预测。考虑到这种情况,可以应用本发明的实施例。通过应用本发明的实施例,可以减少使用假量化矩阵来执行解码的间隔,因此抑制了图像的品质降低。
AVC/H.264中的B画面可能不使用双向(正向和反向)参考图像。可以通过使用在过去的两个参考图像来执行预测,而且可以通过使用在将来的两个参考图像来执行预测。考虑到这种情况,可以应用本发明的实施例。
在上述描述中,CPU 11和23通过PCI桥接器17中的命令缓冲器31和结果缓冲器32交互控制信息并且共享控制。然而,例如,这样的处理可以由单个CPU执行。
在这种情况下,如图15中的功能框图所示,CPU的功能基本上类似于参考图3所述的操作输入获取单元61、传输单位确定单元62、传输单位确定单元63、GOP传输定时控制单元64、传输完成命令发送单元65、显示命令发送单元67、存储器间传输控制单元102、解码调度单元103、和解码控制单元104。
上述连续处理可以由软件执行。软件从记录介质安装到计算机(其中构成所述软件的程序被嵌入到专用硬件中)中或者例如多用途个人计算机系统(其可以通过将各种程序安装到系统中而执行各种功能)中。
参见图16,CPU 201根据ROM(只读存储器)212中存储的程序、或者从存储单元218载入到RAM(随机存取存储器)213中的程序,执行各种处理。如有必要,RAM 213还存储使CPU 211执行各种处理所需要的数据等。
CPU 211、ROM 212、和RAM 213通过内部总线214彼此相连。内部总线214连接到输入/输出接口215。
输入/输出接口215连接到包括键盘和鼠标在内的输入单元216,包括由阴极射线管或者液晶显示器形成的显示器、以及扬声器在内的输出单元217,包括硬盘在内的存储单元218,以及包括调制解调器和终端适配器在内的通信单元219。通信单元219使用包括电话线和CATV(有线电视)在内的各种网络执行通信处理。
如有必要,输入/输出接口215还连接到驱动器220。如有必要,将磁盘231(包括软盘)、光盘232(包括CD-ROM(紧致盘-只读存储器)和DVD(数字多用途盘))、磁光盘233(包括迷你盘)、或者半导体存储器234载入到驱动器220中。如有必要,从介质中读取计算机程序并且将其安装到存储单元218中。
当软件用于执行上述连续处理时,从网络和/或记录介质中安装包括在该软件中的程序。
如图16所示,这个记录介质包括记录了程序的封装介质,其被分发以便与计算机分离地向用户提供程序,并且其包括磁盘231、光盘232、磁光盘233、或者半导体存储器234。
此外,在这个说明书中,构成记录在记录介质上的程序的步骤不仅包括以给定的次序按时间顺序方式执行的步骤,而且还包括如果可以不以时间顺序方式执行的话可并行或者分别执行的步骤。
上述实施例描述了其中压缩流数据被存储在HDD 16中的情况。然而,本发明的实施例不局限于这样的情况,而且可应用于甚至是解码记录在诸如光盘、磁光盘、半导体存储器、或者磁盘之类的每种记录介质中的流数据的情况。
在这个说明书中,系统表示包括多个装置的设备整体。
本领域技术人员应当理解在权利要求及其等效内容的范围之内,取决于设计要求及其它因素,可以出现各种修改、组合、子组合以及改变。
权利要求
1.一种用于解码编码流的信息处理设备,包含存储器装置,用于存储所述编码流;解码装置,用于通过解码所述存储器装置中存储的编码流来生成图像数据;存储器传输控制装置,用于控制传输,以便在用于输出所述图像数据的定时之前将所述编码流传输到所述存储器装置;以及解码控制装置,用于控制由所述解码装置进行的解码,以便在所述存储器装置中存储的编码流中,优先解码在画面解码过程中被参考的参考画面。
2.如权利要求1所述的信息处理装置,还包括命令装置,用于命令所述用于输出所述图像数据的定时。
3.如权利要求2所述的信息处理设备,还包含确定装置,用于为其传输由所述存储器传输控制装置控制的编码流确定传输到所述存储器装置的传输单位。
4.如权利要求3所述的信息处理设备,其中所述编码流包括包含B画面的画面组;以及当基于其输出定时由所述命令装置命令的图像数据的画面被包括在B画面中,而且所述B画面通过参考包括在与包括所述基于图像数据的画面的第一画面组不同的第二画面组中的画面来解码时,所述确定装置将通过参考第二画面组而解码的B画面、当解码B画面时所参考的参考画面、以及第二画面组确定为传输到所述存储器装置的传输单位。
5.如权利要求3所述的信息处理设备,其中所述编码流包括包含B画面的画面组;以及当包括基于其输出定时由所述命令装置命令的图像数据的画面的第一画面组和不同于第一画面组的第二画面组中的每一个均未被传输到存储器装置时,确定装置将通过参考包括在第二画面组中的画面而解码的B画面、当解码B画面时所参考的参考画面、以及第二画面组确定为传输到所述存储器装置的传输单位。
6.如权利要求1所述的信息处理设备,其中所述编码流包括包含X帧的画面组;以及当由所述命令装置提供的命令表示所述编码流中的排列的前向输出,而且基于其输出定时由所述命令装置命令的图像数据的画面位于距离一个画面组结尾的Y帧之内且0<Y<X时,所述存储器传输控制装置控制下述这样的画面组到存储器装置的传输,其中所述画面组被预测为包括基于其输出定时由所述命令装置接下来命令的图像数据的画面。
7.如权利要求2所述的信息处理设备,其中所述编码流包括包含X帧的画面组;以及当由所述命令装置提供的用于输出所述图像数据的命令表示所述编码流中的排列的反向输出,而且基于其输出定时由所述命令装置命令的图像数据的画面位于距离一个画面组开头的Z帧之内且0<Z<X时,所述存储器传输控制装置控制下述这样的画面组到所述存储器装置的传输,其中所述画面组被预测为包括基于其输出定时由所述命令装置接下来命令的图像数据的画面。
8.如权利要求7所述的信息处理设备,其中,所述存储器传输控制装置控制到所述存储器装置的传输,以便使得Z>Y。
9.如权利要求2所述的信息处理设备,其中,所述存储器传输控制装置控制到所述存储器装置的传输,以便利用早于第一定时的第二定时、以预定传输单位传输所述编码流,并且当未控制到所述存储器装置的传输时,控制到所述存储器装置的传输,以便以预定传输单位传输所述编码流。
10.如权利要求9所述的信息处理设备,其中,所述存储器传输控制装置将受到控制以便用第一定时启动传输的编码流传输的优先级设置得高于受到控制以便用第二定时启动传输的编码流传输的优先级。
11.如权利要求9所述的信息处理设备,其中所述编码流包括包含X帧的画面组;以及在第一定时中,由所述命令装置提供的用于输出所述图像数据的命令表示所述编码流中的排列的前向输出,而且基于其输出定时由所述命令装置命令的图像数据的画面位于距离一个画面组结尾的Y帧之内,其中0<Y<X。
12.如权利要求11所述的信息处理设备,其中所述编码流包括包含X帧的画面组;以及在第一定时中,由所述命令装置提供的用于输出所述图像数据的命令表示所述编码流中的排列的反向输出,而且基于其输出定时由所述命令装置命令的图像数据的画面位于距离所述一个画面组开头的Z帧之内,其中0<Z<X。
13.如权利要求2所述的信息处理设备,还包含缓冲装置,用于在解码其传输由所述存储器传输控制装置控制的编码流之前,缓冲所述编码流;缓冲传输控制装置,用于控制所述编码流从所述存储器装置到所述缓冲装置的传输;以及控制信号输出装置,用于向所述缓冲传输控制装置输出控制信号,所述控制信号允许编码流从所述存储器装置到所述缓冲装置的传输。
14.如权利要求13所述的信息处理设备,其中所述存储器传输控制装置执行控制,以便用早于预定的第一定时的第二定时、以预定传输单位传输所述编码流;以及所述控制信号输出装置执行控制,以便利用第一定时将所述控制信号输出到所述缓冲传输控制装置。
15.如权利要求14所述的信息处理设备,其中,利用第一定时将所述控制信号输出到所述缓冲传输控制装置的优先级高于利用第二定时将所述编码流传输到所述存储器装置的优先级。
16.如权利要求14所述的信息处理设备,其中所述编码流包括包含X帧的画面组;以及在第一定时中,由所述命令装置提供的用于输出所述图像数据的命令表示所述编码流中的排列的前向输出,而且基于其输出定时由所述命令装置命令的图像数据的画面位于距离一个画面组结尾的Y帧之内,其中0<Y<X。
17.如权利要求16所述的信息处理设备,其中所述编码流包括包含X帧的画面组;以及在第一定时中,由所述命令装置提供的用于输出所述图像数据的命令表示所述编码流中的排列的反向输出,而且基于其输出定时由所述命令装置命令的图像数据的画面位于距离所述一个画面组开头的Z帧之内,其中0<Z<X。
18.如权利要求16所述的信息处理设备,其中所述编码流包括包含X帧的画面组;以及在第二定时中,基于其输出定时由所述命令装置命令的图像数据的画面被包括在与包括基于其输出定时由所述命令装置先前命令的图像数据的画面的画面组不同的画面组中。
19.如权利要求1所述的信息处理设备,其中,所述编码流是根据活动图像专家组标准编码的流。
20.一种用于解码编码流的信息处理方法,所述信息处理方法包含如下步骤在存储器装置中存储所述编码流;通过解码所述存储器装置中存储的编码流来生成图像数据;控制传输,以便在用于输出所述图像数据的定时之前将所述编码流传输到所述存储器装置;以及控制解码,以便在所述存储器装置中存储的所述编码流中优先解码在画面解码过程中被参考的参考画面。
21.一种用于解码编码流的信息处理设备,包含存储器,用于存储所述编码流;解码器,用于通过解码所述存储器中存储的所述编码流来生成图像数据;存储器传输控制器,用于控制传输,以便在用于输出所述图像数据的定时之前将所述编码流传输到所述存储器;以及解码控制器,用于控制由所述解码器进行的解码,以便在所述存储器中存储的编码流中优先解码在画面解码过程中被参考的参考画面。
全文摘要
一种解码编码流的信息处理设备,包含存储器,用于存储所述编码流;解码器,用于通过解码存储器中存储的编码流来生成图像数据;存储器传输控制器,用于控制传输,以便在用于输出图像数据的定时之前将编码流传输到存储器;以及解码控制器,用于控制由所述解码器进行的解码,以便在所述存储器中存储的编码流中优先解码在画面解码过程中被参考的参考画面。
文档编号H04N7/26GK101090470SQ20071011039
公开日2007年12月19日 申请日期2007年6月13日 优先权日2006年6月13日
发明者小薮恭平, 柴田正二郎, 纲岛修二, 白根庆太, 田中一好, 高桥贵笵 申请人:索尼株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1