编码装置和方法以及解码装置和方法

文档序号:7960106阅读:168来源:国知局
专利名称:编码装置和方法以及解码装置和方法
技术领域
本发明涉及编码装置和方法以及解码装置和方法,并且尤其地,涉及用于实现增加视频流解码速度的编码装置和方法以及解码装置和方法。
背景技术
已经提出(例如,参见日本待审专利申请公开号11-341437)为了快速地开始视频流解码,当对视频流编码时,记录由用户指定的帧记录位置作为索引数据,并且当对视频流解码时,使用该索引数据以检测开始视频流解码的位置。
此外,为了增加视频流解码的速度,可以执行将解码划分为多个线程,并且使用多个处理器并行地执行这些线程。例如,对于以MPEG-2(运动图像专家组-2)标准(此后称为“MPEG-2”)编码的视频流,以图像中被用作单元的各个片对视频流的解码进行划分。具体地,如图1的左部所示,在由4个处理器以划分形式执行解码的情况下,当图像包括16个片时,这些处理器以从图像中顶部的片起的顺序一个接一个执行片的并行解码。换言之,处理器对图1的右部示出的4组片1-1到1-4、片2-1到2-4、片3-1到3-4和片4-1到4-4中的任意一个解码。

发明内容
然而,当如图1所示划分解码时,当每个处理器解码一个片,处理器必须检测将被解码的下一个片的位置,从而增加了处理器执行解码位置检测所需的时间。此外,即使应用日本待审申请公开号11-341437中公开的发明,检测片位置所需的时间也不会减少,因此处理器执行解码位置检测所需的时间几乎不会减少。
出于上述情况作出本发明,并且希望能够实现高速的视频流解码。
根据本发明的实施例,提供了一种编码方法,包括如下步骤控制表示帧在视频流内的位置的帧位置信息的记录,以及控制单元区域位置信息的记录,单元区域位置信息表示用作在对视频流解码时使用的处理单元的单元区域的位置。
在帧位置记录控制步骤,可以控制帧位置信息的记录,从而当视频流处于编码形式时,将帧位置信息记录在视频流内,并且在单元区域位置记录控制步骤,可以控制单元区域位置信息的记录,从而当视频流处于编码形式时,将单元区域位置信息记录在视频流内。
在帧位置记录控制步骤,可以控制帧位置信息的记录,从而帧位置信息被记录在不同于所述视频流文件的文件内,并且在单元区域位置记录控制步骤,可以控制单元区域位置信息的记录,从而单元区域位置信息被记录在所述不同文件内。
可以通过使用MPEG标准对视频流进行编码,并且所述单元区域是片。
在帧位置记录控制步骤,可以控制帧位置信息的记录,从而将帧位置信息记录在包括在以MPEG标准编码的视频流内的序列层和GOP(图像组)层之一的用户数据字段内,并且在单元区域位置记录控制步骤,可以控制单元区域位置信息的记录,从而将单元区域位置信息记录在以MPEG标准编码的视频流的图像层的用户数据字段内。
帧位置信息可以包括表示帧相对于视频流起始处的相对位置的信息,并且单元区域位置信息可以包括表示单元区域相对于视频流起始处的相对位置的信息。
帧位置信息可以包括表示分配给帧的号码和帧的数据长度的信息,并且单元区域位置信息可以包括表示分配给帧内的单元区域的号码和单元区域的数据长度的信息。
帧位置信息可以包括表示帧被记录在数据记录介质上的位置的信息,并且单元区域位置信息可以包括表示单元区域被记录在数据记录介质上的位置的信息。
帧位置信息可以包括表示分配给帧的号码以及帧的数据长度的信息,并且单元区域位置信息可以包括表示分配给帧内单元区域的号码以及单元区域的数据长度的信息。
根据本发明的另一个实施例,提供了一种编码装置,包括对视频流进行编码的编码装置,以及控制帧位置信息和单元区域位置信息的记录的记录控制装置,帧位置信息表示帧在视频流内的位置,单元区域位置信息表示作为在对视频流解码时使用的处理单元的单元区域的位置。
根据本发明的另一个实施例,提供了一种解码方法,包括如下步骤基于表示帧在视频流内的位置的帧位置信息,以及表示用作在对视频流解码时使用的处理单元的至少一个单元区域的位置的单元区域位置信息,检测至少一个解码开始位置,在该位置处开始视频流的解码,并且控制视频流的解码以便在该解码开始位置开始。
该解码方法还可以包括从视频流中提取帧位置信息,以及从视频流中提取单元区域位置的步骤。
该解码方法还可以包括控制从不同于视频流文件的文件中获取帧位置信息和单元区域位置信息的步骤。
可以用MPEG标准对视频流编码,并且所述单元区域可以是片。
在检测步骤,基于帧位置信息和单元区域位置信息,可以检测相应于执行视频流并行解码的多个解码装置的解码开始位置,并且在解码控制步骤,可以控制视频流的解码,从而所述多个解码装置在所述解码开始位置开始并行解码。
该解码方法还可以包括设置划分区域的步骤,通过以所述多个解码装置的数目划分相应于视频流一帧内的图像的区域获得所述划分区域,并且每个划分区域包括所述单元区域。在解码控制步骤,可以控制视频流的解码,从而由多个解码装置并行地对帧内的划分区域解码。
帧位置信息可以包括表示帧相对于视频流起始处的相对位置的信息,并且单元区域位置信息可以包括表示单元区域相对于视频流起始处的相对位置的信息。
帧位置信息可以包括表示分配给帧的号码以及帧的数据长度的信息,并且单元区域位置信息可以包括表示分配给帧内的单元区域的号码以及单元区域的数据长度的信息。
帧位置信息可以包括表示帧被记录在数据记录介质上的位置的信息,并且单元区域位置信息可以包括表示单元区域被记录在数据记录介质上的位置的信息。
帧位置信息可以包括表示分配给帧的号码以及帧的数据长度的信息,并且单元区域位置信息可以包括表示分配给帧内的单元区域的号码以及单元区域的数据长度的信息。
根据本发明的另一个实施例,提供了一种用于解码视频流的解码装置,该解码装置包括检测装置,它基于表示帧在视频流内的位置的帧位置信息以及表示用作在对视频流解码时使用的处理单元的单元区域的位置的单元区域位置信息,检测开始对视频流解码的解码开始位置;以及解码控制装置,它控制视频流的解码,从而在所述解码开始位置开始。
根据本发明的另一个实施例,提供了一种解码控制方法,该方法包括如下步骤设置划分区域,通过以第一解码装置的数目划分相应于视频流的图像的区域获得所述划分区域,并且每个划分区域包括当第一解码装置和第二解码装置对视频流解码时被用作第一解码装置和第二解码装置的处理单元的多个单元区域;执行前半部分控制,其中控制第一解码装置,从而与所述解码装置中的另一解码装置的解码并行地执行各个划分区域内的单元区域的直到预定中间阶段的解码,所述解码被分配给各个解码装置;并且执行后半部分控制,其中控制第二解码装置,从而与第一解码装置的解码并行地执行解码到该预定中间阶段的单元区域的剩余阶段的解码。
可以用MPEG标准对视频流编码。
在执行前半部分控制的步骤中,可以控制第一解码装置以执行包括片的变长解码和反向量化的解码,并且在执行后半部分控制的步骤中,可以控制第二解码装置,以便执行包括对片的反向离散余弦变换处理的解码。
在该解码控制方法中,所述单元区域可以是片。
可以用不同于所述第一解码装置和第二解码装置的硬件实现该解码控制方法。
可由图像处理单元实现所述第二解码装置。
在执行后半部分控制的步骤中,可以给各个第二解码装置提供指示所述单元区域的解码完成到哪个阶段的信息。
根据本发明的另一个实施例,提供了一种解码控制装置,包括设置装置,它设置划分区域,通过以第一解码装置的数目划分相应于视频流的图像的区域获得所述划分区域,并且每个划分区域包括当第一解码装置和第二解码装置对视频流解码时被用作第一解码装置和第二解码装置的处理单元的多个单元区域;以及解码控制装置,它控制第一解码装置,从而与所述解码装置中的另一个解码装置的解码并行地执行各个划分区域内的单元区域的直到预定中间阶段的解码,所述解码被分配给各个解码装置,并且控制第二解码装置,从而与所述第一解码装置的解码并行地执行被解码到该预定中间阶段的所述单元区域的剩余阶段的解码。
在本发明的实施例中,控制表示帧在视频流内的位置的帧位置信息的记录,以及表示对视频流解码时被用作处理单元的单元区域的单元区域位置信息的记录。
在本发明的实施例中,基于表示帧在视频流内的位置的帧位置信息,以及表示用作在对视频流解码时使用的处理单元的单元区域的位置的单元区域位置信息,检测开始视频流解码的解码开始位置,控制视频流的解码以便在该解码开始位置开始。
根据本发明的实施例,可以缩短检测开始视频流解码的位置所需的时间。此外,可以增加解码视频流的速度。


图1是当多个处理器执行视频流的并行解码时,相关的处理划分技术的例子的图示;图2是示出了应用本发明的实施例的AV处理系统的例子的方框图;图3是示出了由图2示出的CPU实现的解码单元的功能配置的例子的方框图;图4是示出了由图3示出的解码单元执行的解码处理的流程图;图5是示出了由图3示出的解码单元执行的解码处理的流程图;图6是由图3示出的解码单元执行视频流的并行解码时的处理划分的例子的图示;图7是示出了由图2示出的CPU实现的编码单元的配置的例子的方框图;图8是示出了由图2示出的CPU实现的解码单元的配置的另一个例子的方框图;图9是图像位置信息的数据布置的例子的图示;图10是片位置信息的数据布置的例子的图示;图11是示出了由图7示出的编码单元执行的编码处理的流程图;图12是示出了图11中的步骤S105内的图像层和更低层的编码处理的细节的流程图;图13是示出了由图8示出的解码单元执行的解码处理的流程图;图14是示出了由图8示出的解码单元执行的解码处理的流程图;图15是示出了由图8示出的解码单元执行的解码开始位置检测处理的流程图;图16是示出了由图2示出的CPU实现的编码单元的功能配置的另一个例子的方框图;图17是示出了由图2示出的CPU实现的解码单元的功能配置的另一个例子的方框图;图18是剪辑位置信息的数据布置的例子的图示;图19是包括在图18所示的剪辑位置信息内的图像位置信息的数据布置的例子的图示;图20是包括在图18所示的剪辑位置信息内的片位置信息的数据布置的例子的图示;图21是示出了由图16所示的编码单元执行的编码处理的流程图;图22是示出了由图17所示的解码单元执行的解码处理的流程图;图23是示出了由图17所示的解码单元执行的解码处理的流程图;图24是示出了由图2所示的CPU实现的解码单元的功能配置的另一个例子的方框图;图25是示出了由图24所示的解码单元执行的解码处理的流程图;图26是示出了由图24所示的解码单元执行的解码处理的流程图;图27是示出了应用本发明的实施例的AV处理系统的例子的方框图;图28是示出了由图27所示的CPU实现的解码单元的功能配置的例子的方框图;图29是示出了由图27所示的GPU实现的解码单元的功能配置的例子的方框图;图30是示出了由图28所示的解码单元执行的解码处理的流程图;图31是示出了由图28所示的解码单元执行的解码处理的流程图;图32是示出了图31中的步骤S464内的前半部分解码处理的细节的流程图;图33是示出了由图28所示的解码单元和图29所示的解码单元执行的后半部分解码处理的流程图;图34是示出了图33中的步骤S423内的IDCT处理的细节的流程图;图35是由IDCT处理产生的数据的变换的图示;图36是形构成宏块的信息项的重新布置的图示;以及图37是信息项在片内的布置的图示。
具体实施例方式
下面将参考附图描述本发明的实施例。
图2示出了应用本发明的实施例的AV处理系统101的例子。AV处理系统101包括AV处理装置111、驱动器112、外部视频记录/重放装置113-1到113-n、鼠标114和键盘115。
AV处理装置111对诸如视频流、音频流、复用有视频流和音频流的AV流以及静止图像数据的AV数据执行诸如重放、记录、显示、输出、解码和编码的处理。
驱动器112连接到AV处理装置111的接口(I/F)129-3。如果必要,诸如磁盘、磁光盘或半导体存储器的可移动介质116连接到驱动器112。驱动器112向AV处理装置111输入从可移动介质116读取的各种类型的数据,并且在可移动介质116内存储来自AV处理装置111的各种类型的输出数据。如果必要,诸如磁盘、磁光盘或半导体存储器的可移动介质117连接到驱动器112。将从可移动介质117读取的程序安装在硬盘驱动器(HDD)124内。
外部视频记录/重放装置113-1到113-n连接到AV处理装置111的接口(I/F)129-2。各个外部视频记录/重放装置113-1到113-n重放诸如AV流、视频流、音频流以及静止图像数据的AV数据,并且将重放数据输入到AV处理装置111。另外,在每个外部视频记录/重放装置113-1到113-n中,记录诸如AV流、视频流、音频流以及静止图像数据的AV数据。
外部视频记录/重放装置113-1到113-n还连接到AV处理装置111的视频特效音频混合处理单元126。每个外部视频记录/重放装置113-1到113-n将诸如AV流、视频流、音频流以及静止图像数据的AV数据输入到视频特效音频混合处理单元126,并且还从视频特效音频混合处理单元126获取被处理以具有各种特效的AV数据或经过混合处理的AV数据。
在下面的描述中,当不必区分各个外部视频记录/重放装置113-1到113-n时,它们在下文中被简单地称为“外部视频记录/重放装置113”。
鼠标114和键盘115连接到接口(I/F)129-1。
AV处理装置111包括中央处理单元(CPU)121、只读存储器(ROM)122、随机访问存储器(RAM)123、HDD124、信号处理单元125、视频特效音频混合处理单元126、显示器127、扬声器128和接口129-1到129-3。CPU121、ROM122、RAM123、HDD124、信号处理单元125、视频特效音频混合处理单元126和接口129-1到129-3通过总线130彼此连接。
在使用接口129-1和总线130接收由用户使用鼠标114或键盘115输入的处理指令和输入数据之后,基于接收的指令或数据,CPU121根据存储在ROM122内的程序或从HDD124装入RAM123的程序执行各种类型的处理。
CPU121对诸如AV流、视频流、音频流以及静止图像数据的AV数据执行各种类型的处理(例如,复用、分离、编码、解码等)。由例如多内核处理器构成CPU121。如后面参考图4等所述,通过执行预先确定的程序,CPU121将以预先确定的标准(例如,MPEG-2)编码的视频流的解码划分为多个线程,并且使用多个处理器内核并行地解码视频流的所述线程。另外,如后面参考图11等描述的,CPU121使用预先确定的标准(例如,MPEG-2)对作为编码之前的基带信号的视频流编码。
ROM122存储着由CPU12使用的程序,以及算术运算参数中基本固定的数据。
RAM123存储着由CPU121执行的程序,以及在所述程序的执行中(如果必要)发生改变的参数和数据。
HDD124记录或重放,例如,由CPU121执行的程序和信息。
信号处理单元125使用硬件对诸如AV流、视频流、音频流以及静止图像数据的AV数据执行各种类型的处理(例如,复用、分离、编码、解码等)。信号处理单元125还从输入视频流中产生适合于显示器127的规范的视频信号,并且将产生的视频信号提供给显示器127。信号处理单元125还从输入音频流中产生适合于扬声器128的规范的音频信号,并且将产生的音频信号提供给扬声器128。
视频特效音频混合处理单元126对从信号处理单元125或外部视频记录/重放装置113提供的AV数据诸如视频流、音频流以及静止图像数据执行各种特效处理(例如,图像合成、分割、转换等)或混合(例如,音频合成)。视频特效音频混合处理单元126将处理后的AV数据提供给CPU121、信号处理单元125或外部视频记录/重放装置113。
由例如阴极射线管(CRT)、液晶显示器(LCD)等构成显示器127,并且基于从信号处理单元125提供的视频信号显示视频。
扬声器128基于从信号处理单元125提供的音频信号输出音频。
下面将描述AV处理装置111使用MPEG-2编码或解码视频流时执行的处理的例子。
图3示出了由执行预定程序的CPU121实现的解码单元151的功能配置的例子。解码单元151包括流读取控制部分161、流分析部分162、解码区域设置部分163、解码控制部分164、解码器165-1到165-4以及基带输出控制部分166。
流读取控制部分161控制驱动器112读取记录在可移动介质116内的视频流。流读取控制部分161使用接口129-3和总线130获取由驱动器112读取的视频流。流读取控制部分161还通过总线130读取记录在HDD124内的视频流。如果必要,流读取控制部分161在由例如CPU121内的高速缓存存储器构成的流存储器152内临时存储所获取的视频流。如果必要,流读取控制部分161向流分析部分162或解码器165-1到165-4提供所获得的视频流。
流分析部分162对直到视频流的图像层的层解码,并且将通过解码所述层获得的信息提供给解码控制部分164。流分析部分162还将通过解码所述层获得的表示视频流的图像大小(图像的水平和垂直像素数)的信息提供给解码区域设置部分163。
如后面参考图4和5所述,基于视频流的视频大小和解码单元151的解码器数目,对于视频流的每个帧,解码区域设置部分163设置由解码器165-1到165-4分开解码的区域(此后被称为“分解码区域”)。解码区域设置部分163将设置分解码区域的信息提供给解码控制部分164。
基于由用户以鼠标114或键盘115输入的解码指令以及从AV处理装置111的各个部分或从不同于由CPU121实现的解码单元151的功能块输入的解码指令中的一个,解码控制部分164控制解码单元151的处理。解码控制部分164将指示将视频流提供给流分析部分162或解码器165-1到165-4的信息提供给流读取控制部分161。解码控制部分164还将指示开始解码的信息提供给解码器165-1到165-4。
解码控制部分164从解码器165-1到165-4获取报告解码结束或出现解码错误的信息。当获取报告出现解码错误的信息时,解码控制部分164确定重新开始解码的位置,并且将指示在所确定的位置重新开始解码的信息提供给出现错误的解码器。解码控制部分164还将通过解码视频流(该视频流为基带信号)所获得并且指示输出该视频流的信息提供给基带输出控制部分166。
解码器165-1到165-4并行地对分配给解码器165-1到165-4的该视频流中每个帧内的分解码区域解码。换言之,解码器165-1到165-4对视频流的片层和更低层解码。解码器165-1到165-4将解码的数据提供给基带输出控制部分166。在下面的描述中,在不必区分每个解码器165-1到165-4时,各个解码器在下文中被简单地称为“解码器165”。
基带输出控制部分166组合从解码器165-1到165-4提供的数据以产生视频流,该视频流是解码之后获得的基带信号。基带输出控制部分166在,例如,由CPU121内的高速缓存存储器(未示出)形成的基带存储器153内临时存储所产生的视频流。基带输出控制部分166基于解码控制部分164的指令向外部(例如,通过总线130向信号处理单元125)输出视频流。
接着,将参考图4和5示出的流程图描述由解码单元151执行的解码处理。当解码控制部分164通过接口129-1和总线130获得用户以鼠标114或键盘115输入的解码指令时,开始解码处理。此外,下面将描述对记录在可移动介质116内的视频流解码的例子。
在步骤S1,解码控制部分164确定视频流是否已被完全解码。如果用户已指示解码的视频流的部分仍未被完全解码,解码控制部分164确定视频流未被完全解码,并且处理进入步骤S2。
在步骤S2,流分析部分162对序列层解码。具体地,解码控制部分164将指示读取将被解码的视频流的片层的信息提供给流读取控制部分161。在流读取控制部分161的控制下,驱动器112从可移动介质116中读取将被解码的视频流的该片层,并且通过接口129-3和总线130将读取的数据提供给流读取控制部分161。流读取控制部分161将视频流的该片层提供给流分析部分162。流分析部分162对该片层解码,并且将通过解码获得的信息提供给解码控制部分164。
在步骤S3,流分析部分162检测视频流的图像大小。具体地,流分析部分162基于视频流的片层的信息检测该视频流的图像大小。流分析部分162将检测到的图像大小信息提供给解码区域设置部分163。
在步骤S4,解码区域设置部分163设置将由解码器165解码的区域。具体地,首先解码区域设置部分163计算将由解码器165解码的每个帧的片数(也被称为“划分的片数”)。在下面的描述中,每个片的水平宽度等于该帧(图像)的宽度,并且片不被定位在行之间。
解码区域设置部分163基于视频流的图像大小检测包括在视频流的各个帧(图像)内的片数。例如,当以Spv表示视频流的垂直图像大小,并且以Ssv表示片的垂直大小时,使用下面的表达式检测每帧的片数Nsf=Spv÷Ssv(1)解码区域设置部分163通过以解码器165的数目除检测到的每帧的片数计算划分的片数。例如,当以Nd表示解码器165的数目时,以下式计算以X表示的划分的片数X=Nsf÷Nd(2)因此,将由解码器165解码的片的数目是相等的,并且每帧将被解码的数据量近似相等。
例如,当视频流的垂直图像大小是1088像素,片的垂直大小是16像素,并且解码器165的数目是4时,如下式所示,划分的片数X是17Nsf=1088÷16=68X=68÷4=17接着,解码区域设置部分163通过以划分的片数划分帧内的片设置分解码区域。例如,如图6的左部所示,当帧内包括16个片并且以4个解码器并行解码时,划分的片数是4。因此,将通过对帧内的片按顺序从顶部划分为4份所获得的4个区域设置为分解码区域。该4个区域包括包括片181-1到181-4的区域,包括片182-1到182-4的区域,包括片183-1到183-4的区域和包括片184-1到184-4的区域。
在以MPEG-2编码的视频流中,片(片层)是最低层,其中在其起始处增加开始代码,以便使得能够检测开始位置而不需分析视频流,并且作为对视频流解码时的最小处理单元。因此,分解码区域包括被用作解码器165的处理单元的多个片,并且通过以解码器165的数目划分视频流的图像的区域获得分解码区域。此外,在帧(图像)中按顺序从顶部起布置视频流上的连续的片。因此,分解码区域内的片被按从分解码区域的顶部向下的顺序连续定位。
解码区域设置部分163将设置分解码区域的信息提供给解码控制部分164。
在步骤S5,解码控制部分164确定是否已对所有GOP解码。具体地,解码控制部分164确定包括在步骤S2中被解码的序列层之下的所有GOP是否已被解码。如果它确定还未对所有GOP解码,处理进入步骤S6。
在步骤S6,流分析部分162对GOP层解码。具体地,解码控制部分164将指示读取将被解码的下一个GOP的信息提供给流读取控制部分161。在流读取控制部分161的控制下,驱动器112从可移动介质116读取将被解码的下一个GOP,并且通过接口129-3和总线30将读取的GOP提供给流读取控制部分161。流读取控制部分161将获得的GOP临时存储在流存储器152内。流读取控制部分161将获得的GOP提供给流分析部分162。在对GOP层解码之后,流分析部分162将通过执行解码获得的信息提供给解码控制部分164。
在步骤S6,在从可移动介质116一次读取多个GOP之后,可以将所述GOP存储在流存储器152内。
在步骤S7,解码控制部分164确定该GOP内的所有图像是否已被解码。如果它确定仍未对该GOP内的所有图像解码,处理进入步骤S8。
在步骤S8,流读取控制部分161读取将被解码的下一个图像的图像层。具体地,解码控制部分164将指示读取将被解码的下一个图像的图像层的信息提供给流读取控制部分161。流读取控制部分161从存储在流存储器152内的GOP的起始处搜索将被解码的下一个图像的开始位置(图像开始代码),并且从检测到的开始位置读取将被解码的下一个图像的图像层。流读取控制部分161将读取的图像层提供给流分析部分162。
在步骤S9,流分析部分162对该图像层解码。流分析部分162将通过解码该图像层获得的信息提供给解码控制部分164。
在步骤S10,解码控制部分164指示开始解码。具体地,解码控制部分164将指示将包括在分配给解码器165的分解码区域内的片提供给解码器165的信息提供给流读取控制部分161。解码控制部分164还将指示开始解码的信息提供给各个解码器165。
在步骤S11,流读取控制部分161检测各个分解码区域的开始位置。具体地,通过连续地从存储在流存储器152内的GOP中搜索将被解码的下一个图像的片层的开始位置(片开始代码),流读取控制部分161检测分配给各个解码器165的分解码区域的第一个片的开始位置,即,各个解码器165开始解码的位置。
在步骤S12,解码器165开始解码。具体地,由流读取控制部分161连续地从流存储器152读取开始于各个分解码区域的开始位置开始的片,即,包括在各个分解码区域内的片,所述片的数目等于分解码区域的数据。流读取控制部分161将为各个分解码区域读取的片提供给分配有该分解码区域的解码器165。解码器165从该分解码区域的第一个片开始解码。解码器165连续地将解码的数据提供给基带输出控制部分166。基带输出控制部分166将所提供的数据存储在基带存储器153内。
在步骤S13,解码控制部分164确定是否出现了错误。具体地,如果解码控制部分164从解码器165收到报告出现了错误的信息,解码控制部分164确定出现了错误,并且处理进入步骤S14。
在步骤S14,解码控制部分164确定重新开始解码的位置。解码控制部分164将,例如,跟随在解码失败的片之后的片确定为重新开始解码的位置。
在步骤S15,解码器165重新开始解码。具体地,解码控制部分164向出现错误的解码器165提供指示从跟随在出现错误的片之后的片重新开始解码的信息。
在步骤S13,当解码控制部分164未从解码器165收到报告出现了错误的信息时,则确定未出现错误。然后跳过步骤S14和S15,并且处理进入步骤S16。
在步骤S16,解码控制部分164确定所有解码器165的处理是否已结束。具体地,解码控制部分164确定是否从所有解码器165收到报告分配给该解码器165的分解码区域内的所有片的解码的结束的信息。如果解码控制部分164未从所有解码器165收到报告分配给该解码器165的分解码区域内的所有片的解码的结束的信息,则确定仍未结束所有解码器165的处理,并且处理返回步骤S13。重复执行步骤S13到S16内的处理直到在步骤S16确定所有解码器165的处理已结束。
如果在步骤S16确定解码器165的处理已结束,即,如果报告分配给解码器165的分解码区域内的所有片的解码的结束的信息被从所有解码器165提供给解码控制部分164,处理进入步骤S17。
在步骤S17,基带输出控制部分166输出用于一帧的数据。具体地,解码控制部分164将指示输出用于一帧的数据的信息提供给基带输出控制部分166。基带输出控制部分166向外部(例如,通过总线130向信号处理单元125)输出存储在基带存储器153内的用于一帧的数据。此后,处理返回步骤S7。
如果在步骤S7确定仍未对该GOP内的所有图像解码,处理进入步骤S8,并且执行步骤S8以及后续步骤内的处理。换言之,对下一个图像解码。
如果在步骤S7,确定仍未对该GOP内的所有图像解码,处理返回步骤S5。
如果在步骤S5确定仍未对所有GOP解码,处理进入步骤S6,并且执行步骤S6和后续步骤内的处理。换言之,对下一个GOP解码。
如果在步骤S5确定所有GOP已被解码,处理返回步骤S1。
如果在步骤S1确定视频流仍未被全部解码,处理进入步骤S2,并且执行步骤S2和后续步骤。换言之,对视频流的下一个序列层解码。
如果在步骤S1确定该视频流已被全部解码,则解码处理结束。
如上所述,对于每个帧(图像),仅需要检测各个分解码区域的开始位置作为各个解码器开始解码的位置。因此,减少了解码器165检测解码位置所需的时间,从而增加了视频流解码的速度。
接着下面将参考图7到15描述增加视频流解码的速度的另一个实施例。
图7是示出了由执行预定程序的CPU121实现的编码单元201的功能配置的例子的方框图。编码单元201包括编码器211、图像计数部分212、片计数部分213、开始位置存储器214、开始位置记录控制部分215和流输出控制部分216。
基于用户以鼠标114或键盘115输入的编码指令,或从AV处理装置111的各个部分或不同于由CPU121实现的编码单元201的功能模块输入的编码指令,编码器211使用MPEG-2对在编码前作为基带信号从外部输入的视频流进行编码,并且将编码的数据提供给流输出控制部分216。
此外,当解码器211开始对图像(图像层)编码时,编码器211将报告开始对图像编码的信息提供给图像计数部分212和开始位置记录控制部分215。编码器211在开始位置存储器214内记录表示编码的视频流的每帧(图像)的开始位置的信息(此后称为“图像开始位置信息”)。当每个图像的编码结束时,编码器211将表示图像编码的结束的信息提供给片计数部分213和开始位置记录控制部分215。编码器211还在开始位置存储器214内记录表示编码的图像的数据长度的信息(此后称为“图像数据长度信息”)。
当编码器211开始对片(片层)编码时,编码器211将报告开始对片编码的信息提供给片计数部分213和开始位置记录控制部分215。编码器211在开始位置存储器214内记录表示编码的视频流的开始位置的信息(此后称为“片开始位置信息”)。当结束各个片的编码时,编码器211将报告片编码结束的信息提供给开始位置记录控制部分215。编码器211将表示编码的片的数据长度的信息(此后称为“片数据长度信息”)记录在开始位置记录控制部分215中。
图像计数部分212对各个剪辑中的图像数目计数,所述剪辑是记录介质上的视频流管理单元。具体地,图像计数部分212管理图像计数器,并且当编码器211将报告开始对图像编码的信息提供给图像计数部分212时增加该图像计数器的值。图像计数部分212将图像计数器的值的信息提供给开始位置记录控制部分215。
片计数部分213对各个图像中的片的数目计数。具体地,片计数部分213管理片计数器,并且当编码器211将表示开始片编码的信息提供给片计数部分213时增加片计数器的值。此外,当编码器211将报告图像编码结束的信息提供给片计数部分213时,片计数部分213重置片计数器的值。
开始位置记录控制部分215读取记录在开始位置存储器214内的图像开始位置信息、片开始位置信息、图像数据长度信息和片数据长度信息之一。开始位置记录控制部分215还从图像计数部分212获取图像计数器值的信息。开始位置记录控制部分215还从片计数部分213获取片计数器值的信息。
通过给流输出控制部分216提供基于图像计数器的值、图像开始位置信息和图像数据长度信息,并且指示在视频流中记录表示各个图像的位置的信息(此后称为“图像位置信息”),开始位置记录控制部分215控制图像位置信息的记录。同样,通过给流输出控制部分216提供基于片计数器的值、片开始位置信息和片数据长度信息,并且表示各个片的位置的信息(此后称为“片位置信息”),开始位置记录控制部分215控制片位置信息的记录。
流输出控制部分216在由例如CPU121内的高速缓存存储器或类似物构成的流存储器202内临时存储由编码器211编码的视频流。响应开始位置记录控制部分215的指令,流输出控制部分216在例如相应于编码的视频流的各个GOP的GOP层的用户数据字段内记录图像位置信息。可以在视频流的序列层内的扩展和用户字段的用户数据字段中记录相应于包括在该序列层内的所有GOP的图像位置信息。另外,响应开始位置记录控制部分215的指令,流输出控制部分216在例如相应于编码的视频流的各个图像的图像层内的扩展和用户字段的用户数据字段中记录片位置信息。
流输出控制部分216读取记录在流存储器202内的视频流,并且将读出的视频流输出到外部(例如,通过总线130输出到驱动器112或HDD124)。
图8是示出了由执行预定程序的CPU121实现的解码单元251的功能配置的例子的方框图。解码单元251不同于图3所示的解码单元151的地方是提供了开始位置解码部分271而不是图3中的解码区域设置部分163。在图8中,以最后两位数字与图3中的参考号的最后两位数字相同的各个参考号表示相应于图3中所示部分的部分。因此,忽略了对各个相同功能的描述,因为它是重复的。
解码单元251包括流读取控制部分261、流分析部分262、解码控制部分264、解码器265-1到265-4、基带输出控制部分266和开始位置解码部分271。
除了图3中的流分析部分162的处理之外,流分析部分262提取记录在视频流内的图像位置信息和片位置信息,并且将提取出的信息提供给开始位置解码部分271。
除了图3中的解码控制部分164的处理之外,解码控制部分264将指示检测由图像号(图9)指定的图像开始位置的信息(此后称为“开始位置检测指示信息”)或指示检测由片号(图10)指定的片开始位置的开始位置检测指示信息提供给开始位置解码部分271。
基于图像位置信息或片位置信息,开始位置解码部分271检测由开始位置检测指示信息指定的图像或片的开始位置。开始位置解码部分271将表示检测的图像或片的开始位置的信息提供给解码控制部分264。
在下面的描述中,当不必区分每个解码器265-1到265-4时,将它们简单地称为“解码器265”。
图9是图像位置信息的数据布置的例子的图示。图像位置信息被记录在视频流的各个GOP内,并且包括图像开始地址和相应于包括在该GOP内的各个图像的单独信息。
所述图像开始地址表示图像开始位置即该GOP内的第一个图像内的相对于的剪辑起始处的相对位置(相对地址)。当视频流被记录在记录介质上(例如,可移动介质116或HDD124)时,可将图像开始地址用作该GOP内的第一个图像被记录在记录介质内的位置的开始地址。
所述单独信息包括图像号、数据长度和偏移量。
图像号是将剪辑内的第一个图像作为起点时获得的序列号。图像号表示该图像在相对于第一个剪辑的图像顺序中位于何处,以便不用为该图像在剪辑中进行重置。
数据长度表示图像的数据长度。
偏移量表示相对于图像开始位置的偏移量(相对地址)。因此,基于图像开始地址和偏移量,可以找到相对于每个图像的开始位置中的剪辑的起始处的相对地址。当将视频流记录在记录介质上(例如,可移动介质116或HDD124)时,对于每个图像,可以记录该图像被记录在记录介质内的位置的起始处的地址,而不是该偏移量。
图10是片位置信息的数据布置的例子的图示。片位置信息被记录在视频流内的各个图像内,并且包括片开始地址和相应于图像内的各个片的单独信息。
片开始地址表示图像内的第一个片的开始位置内的相对于剪辑的起始处的相对地址。片开始地址可被作为图像中的第一个片被记录在记录介质(例如,可移动介质116或HDD124)内的位置的起始处的地址。
所述单独信息包括片号、数据长度和偏移量。
片号是将该图像内的第一个片作为起点时获得的序列号。因为每次图像被改变时将重置片号,片号表示该片在相对于第一个片的图像内的片的顺序中处于何处。
数据长度表示该片的数据长度。
偏移量表示相对于片开始位置的偏移量(相对地址)。因此,基于片开始地址和偏移量,可以找到相对于每个片的开始位置中的剪辑起始处的相对地址。当将视频流记录在记录介质上(例如,可移动介质116或HDD124)时,对于每个片,可以记录该片被记录在记录介质(例如,可移动介质116或HDD124)内的位置的地址,而不是该偏移量。
接着下面参考图11中示出的流程图描述由编码单元201执行的编码处理。当编码器211通过接口129和总线130获得用户以鼠标114或键盘115输入的编码指令时开始该处理。下面描述这样的情况,其中在通过接口129-2和总线130将作为编码前的基带信号的视频流从外部视频记录/重放装置113-1输入到编码器211之后,将编码的视频流记录在可移动介质116内。
在步骤S101,编码器211确定视频流是否已被全部编码。如果确定该视频流仍未被全部编码,例如,当从外部视频记录/重放装置113-1连续地输入该视频流时,处理进入步骤S102。
在步骤S102,编码器211确定是否将改变序列层。如果确定将改变序列层,例如,当视频流的图像大小被改变,或指示改变序列层的信息被从外部输入到编码器211时,处理进入步骤S103。
在步骤S103,编码器211对视频流的序列层编码。编码器211将编码的数据提供到流输出控制部分216。流输出控制部分216将所提供的数据存储在流存储器202内。
如果在步骤S102,确定不改变序列层,处理跳过步骤S103进入步骤S104。
在步骤S104,解码器211对GOP层编码。此时,编码器211在GOP层的用户数据字段内保留一个用于以后记录图像位置信息的字段。编码器211将编码的数据提供给流输出控制部分216。流输出控制部分216将所提供的数据存储在流存储器202内。
在步骤S105,编码单元201执行图像层和更低层编码处理。后面将参考图12描述图像层和更低层编码处理的细节。在图像层和更低层编码处理中,对图像层和更低层编码。此后,处理返回步骤S101。重复执行步骤S101到S105内的处理以便执行视频流编码,直到在步骤S101确定视频流已被全部编码。
如果在步骤S101确定视频流已被全部编码,例如,当从外部视频记录/重放装置113-1输入的视频流已结束,并且输入视频流的编码全部结束后,编码处理结束。
接着下面将描述在步骤S105中的图像层和更低层编码处理的细节。
在步骤S121,确定GOP内的所有图像是否已被编码。编码器211确认将被包括在当前被编码的GOP内的图像是否已被编码。如果包括在当前被编码的GOP内的图像仍未被编码,则确定未对该GOP内的所有图像编码,并且处理进入S122。具体地,编码器211将报告开始对下一个图像编码的信息提供给图像计数部分212。图像计数部分212增加图像计数器。
在步骤S123,编码器211确定该图像的开始位置。具体地,编码器211确定开始记录将被编码的下一个图像的位置。当将被编码的下一个图像是该GOP的第一个图像时,编码器211在开始位置存储器214内在所确定的开始位置处存储表示相对于剪辑的起始处的相对地址的图像位置信息。另外,当将被编码的下一个图像不是该GOP的第一个图像时,编码器211在开始位置存储器214内在所确定的开始位置处存储表示相对于GOP的第一个图像的偏移量的图像位置信息。
在步骤S124,在流输出控制部分216中,记录所述图像开始位置。具体地,解码器211将报告开始对将被编码的下一个图像编码的信息提供给开始位置记录控制部分215。开始位置记录控制部分215从图像计数部分212获得表示图像计数器的值的信息,并且从开始位置存储器214获得图像开始位置信息。
当将被编码的下一个图像是GOP的第一个图像时,在开始位置记录控制部分215的控制下,对于存储在流存储器202内的相应于将被编码的GOP的图像开始位置信息,在流输出控制部分216中记录图像开始位置信息的值作为图像开始地址。在开始位置记录控制部分215的控制下,在流输出控制部分216中,在相应于将被编码的GOP的图像开始位置信息的第一个单独信息内,记录图像计数器的值作为图像号以及零作为偏移量。
另外,当将被编码的下一个图像不是GOP的第一个图像时,在开始位置记录控制部分215的控制下,在相应于将被编码的图像的单独信息内并且在所述图像位置信息之后,记录图像计数器的值作为图像号并且记录图像开始位置信息的值作为偏移量。
在步骤S125,编码器211对图像层编码。此时,编码器211在图像层的用户数据字段中保留一个以后用于记录片位置信息的字段。解码器211将编码的数据提供给流输出控制部分216。流输出控制部分216在流存储器202内存储所提供的数据。
在步骤S126,编码器211确定该图像内的所有片是否已被编码。编码器211确认是否已对包括在该图像内的预定数目的片编码。如果仍未对所述预定数目的片编码,编码器211确定仍未对该图像内的所有片编码,并且处理进入步骤S127。
在步骤S127,片计数部分213增加片计数器。具体地,编码器211将报告开始对下一个片编码的信息提供给片计数部分213。片计数部分213增加片计数器。
在步骤S128,编码器211确定片开始位置。具体地,编码器211确定开始记录将被编码的下一个片的位置。当将被编码的下一个片是图像中的第一个片时,编码器211在开始位置存储器214内在所确定的开始位置处存储表示相对于剪辑的起始处的相对地址的片开始位置信息。另外,当将被编码的下一个片不是图像中的第一个片时,编码器211在开始位置存储器214内在所确定位置处存储表示相对于图像的第一个片的偏移量的片开始位置信息。
在步骤S129,在流输出控制部分216内记录片开始位置。具体地,编码器211将报告开始对下一个片编码的信息提供给开始位置记录控制部分215。开始位置记录控制部分215从片计数部分213获得表示片计数器的值的信息,并且从开始位置存储器214获得片开始位置信息。
当将被编码的下一个片是图像内的第一个片时,在开始位置记录控制部分215的控制下,在相应于被编码并且存储在流存储器202内的图像的片位置信息内,记录片开始位置信息的值作为片开始地址。在开始位置记录控制部分215的控制下,在流输出控制部分216内,在相应于被编码的图像的片开始位置信息内的第一单独信息内,记录片计数器的值作为片号并且记录零作为偏移量。
另外,当将被编码的下一个片不是图像中的第一个片时,在开始位置记录控制部分215的控制下,在流输出控制部分216内,在相应于被编码的图像的片开始位置信息之后的相应于将被编码的片的单独信息内,记录片计数器的值作为片号,并且记录片开始位置信息的值作为偏移量。
在步骤S130,编码器211对片层和更低层编码。编码器211将编码的数据提供给流输出控制部分216。开始位置记录控制部分215将所提供的数据存储在流存储器202内。
在步骤S131,在开始位置记录控制部分215内记录片的数据长度。具体地,编码器211在开始位置存储器214内存储表示编码片的数据长度的片数据长度信息。编码器211还将表示片编码结束的信息提供给开始位置记录控制部分215。开始位置记录控制部分215从开始位置存储器214获得片数据长度信息。在开始位置记录控制部分215的控制下,在流输出控制部分216内,在相应于存储在流存储器202内的将被编码的图像的片位置信息内的相应于的编码的片的单独信息内,记录片数据长度信息的值作为数据长度。
此后,处理返回步骤S126,并且重复执行步骤S126到S131内的处理以便执行片编码,直到在步骤S126确定已对图像内的所有片编码为止。
如果在步骤S126,已完成了包括在该图像内的预定数目的片的编码,则确定已对该图像内的所有片编码,并且处理进入步骤S132。
在步骤S132,在流输出控制部分216内记录图像的数据长度。具体地,编码器211在开始位置存储器214内存储表示被编码图像的数据长度的图像数据长度信息。另外,编码器211将指示图像编码结束的信息提供给开始位置记录控制部分215。开始位置记录控制部分215从开始位置存储器214获得图像数据长度信息。在开始位置记录控制部分215的控制下,在流输出控制部分216内,在相应于将被编码并且存储在流存储器202内的GOP的图像位置信息内在相应于将被编码的图像的单独信息内,记录图像数据长度信息的值作为数据长度。
在步骤S133,片计数部分213重置片计数器。具体地,编码器211将指示图像编码结束的信息提供给片计数部分213。片计数部分213重置片计数器。
此后,处理返回步骤S121,并且重复执行步骤S121到S133内的处理以便对该GOP内的所有图像编码,直到在步骤S121确定已对该GOP内的所有图像编码为止。
如果在步骤S121,已完成对要包括在该编码的GOP内的图像的编码,则确定该GOP内的所有图像已被编码,并且处理进入步骤S134。
在步骤S134,流输出控制部分216输出得到的视频流,并且图像层和更低层编码处理结束。具体地,例如,当流存储器202内的数据量超过预定阈值时,开始位置记录控制部分215通过总线130和接口129-3将存储在流存储器202内的编码的视频流提供给驱动器112。驱动器112将该视频流记录在可移动介质116内。
接着下面将参考图13和14中示出的流程图描述解码单元251解码由编码单元201编码的视频流时执行的解码处理。当解码控制部分264通过接口129-1和总线130获得由用户以鼠标114或键盘115输入的解码指令时,开始该处理。另外,下面描述了对记录在可移动介质116内的视频流解码的情况。在下面的描述中,如图1右部中所示,对于每个图像,以从顶部片起的顺序由解码器265并行地一个接一个对片解码。
在步骤S151,类似于图4中的步骤S4,确定该视频流是否已被完全解码。如果确定该视频流仍未被完全解码,处理进入S152。
类似于图4中的步骤S2,在步骤S152,从可移动介质116读取将被解码的视频流的序列层,并且对该序列层解码。
在步骤S153,类似于图4中的步骤S5,确定所有GOP是否已被解码。如果确定仍未对所有GOP解码,处理进入步骤S154。
类似于图4中的步骤S6,从可移动介质116读取将被解码的下一个GOP,并且对读出的GOP的GOP层解码。
在步骤S155,流分析部分262提取图像位置信息。具体地,流分析部分262提取记录在步骤S154中解码的GOP的用户数据字段内的图像位置信息。流分析部分262将提取的图像位置信息提供给开始位置解码部分271。
类似于图4中的步骤S7,在步骤S156,确定是否已对该GOP内的所有图像解码。如果确定仍未对该GOP内的所有图像解码,处理进入步骤S157。
在步骤S174,流读取控制部分261读取将被解码的下一个图像的图像层。具体地,通过指定图像号,解码控制部分264将指示检测将被解码的下一个图像的开始位置的信息提供给开始位置解码部分271。基于该图像位置信息,开始位置解码部分271检测相应于指定的图像号的图像的开始位置。开始位置解码部分271将表示检测到的图像的开始位置的信息提供给解码控制部分264。解码控制部分264将指示从开始位置解码部分271检测到的图像的开始位置读取图像层的信息提供给流读取控制部分261。流读取控制部分261从存储在流存储器152内的GOP中读取将被解码的下一个图像的图像层,该下一个图像开始于所述指定的开始位置。流读取控制部分261将读取的图像层提供给流分析部分262。
类似于图4中的步骤S9,在步骤S158,对该图像层解码。
在步骤S159,流分析部分262提取片位置信息。具体地,流分析部分262提取记录在步骤S158中被解码的图像层的用户数据字段内的片位置信息。流分析部分262将提取的片位置信息提供给开始位置解码部分271。
在步骤S160,开始位置解码部分271检测开始执行解码的位置。具体地,解码控制部分264将开始位置检测指示信息(其通过指定片号,指示检测将由各个解码器265解码的下一个片的开始位置)提供给开始位置解码部分271。基于该片位置信息,根据指定的片号,开始位置解码部分271检测片的开始位置。解码控制部分264将表示检测到的各个片的开始位置的信息提供给解码控制部分264。
在步骤S161,解码控制部分264指示开始解码。具体地,解码控制部分264将指示将开始于在步骤S160中检测到的开始位置的各个片提供给各个解码器265的信息提供给流读取控制部分261。解码控制部分264将指示开始对下一个片解码的信息提供给解码器265。
在步骤S162,解码器265开始解码。具体地,流读取控制部分261从流存储器152读取开始于由解码控制部分264指定的开始位置的片,并且将所述片提供给各个解码器265。解码器265开始解码所提供的片。当步骤S162中开始的片解码结束时,解码器265将指示解码结束的信息提供给解码控制部分264,并且将解码的数据提供给基带输出控制部分266。基带输出控制部分266将所提供的数据存储在基带存储器153内。
在步骤S164,类似于图5中的步骤S13,在步骤S163,确定是否出现了错误。如果确定没有出现错误,处理进入步骤S164。
在步骤S164,解码控制部分264确定是否有一个解码器265已完成解码。当未从任意一个解码器165获得指示解码已结束的信息时,解码控制部分264确定没有任意一个解码器265完成了解码,并且处理进入步骤S163。在步骤S163,确定发生了错误。可替换地,重复步骤S163和S164内的确定,直到在步骤S164中确定有已完成解码的解码器。
在步骤S164,当解码控制部分264从至少一个解码器265获得指示解码已完成的信息时,则确定有已完成解码的解码器265,并且处理进入步骤S165。
在步骤S165,解码控制部分264确定已完成解码的解码器265是否已对分配到正被解码的图像内的所有片进行了解码。如果确定仍未对分配到正被解码的图像内的所有片解码,处理进入步骤S160,并且执行步骤S160和后续步骤。换言之,已完成解码的解码器265对分配到正被解码的图像内的下一个片解码。
如果在步骤S163,确定出现了错误,处理进入步骤S166。
在步骤S166,解码控制部分264确定重新开始解码的位置。解码控制部分264确定,例如,解码失败的片之后的片作为解码重新开始位置。此后,处理返回步骤S160,并且执行步骤S160和后续步骤中的处理。换言之,出现错误的解码器265对出现错误的片之后的片解码。
如果在步骤S165,确定已完成解码的解码器265已对分配到正被解码的图像内的所有片解码,处理进入步骤S167。
在步骤S164,解码器265确定是否所有解码器265的处理已完成。具体地,解码控制部分264确定是否有仍未完成分配给被解码的图像的片的解码的解码器265。如果有仍未完成被分配的片的解码的解码器265,解码控制部分264确定仍未完成所有解码器265的处理,并且处理返回步骤S163。执行步骤S163和后续步骤中的处理。换言之,继续执行未完成所分配的片的解码的各个解码器265的处理,而已完成分配到被解码的图像内的片的解码的各个解码器265保持为备用。
如果在步骤S167,确定已完成了所有解码器265的处理,处理进入步骤S168。
在步骤S168,类似于图5中的步骤S17,输出用于一帧的数据,并且处理返回步骤S156。
如果在步骤S156,确定仍未对该GOP内的所有图像解码,处理进入步骤S157,并且执行步骤S157和后续步骤中的处理。换言之,对下一个图像解码。
如果在步骤S156,确定该GOP内的所有图像已被解码,处理返回步骤S153。
如果在步骤S153,确定仍未对所有GOP解码,处理进入步骤S154,并且执行步骤S154和后续步骤中的处理。换言之,对下一个GOP解码。
如果在步骤S153,确定已对所有GOP解码,处理返回步骤S151。
如果在步骤S151,确定该视频流未被全部解码,处理进入步骤S152,并且执行步骤S152和后续步骤中的处理。换言之,对该视频流的下一个序列层解码。
如果在步骤S151确定该视频流已被全部解码,则解码处理结束。
接着下面将参考图15中示出的流程图,描述当从基于用户指令指定的图像开始解码而不从其起始处对视频流解码时,由解码单元251执行的解码开始位置检测处理。
在步骤S181,解码控制部分164检测开始解码的位置。具体地,解码控制部分164检测由用户指定的开始位置处的图像的图像号。
在步骤S182,类似于图4中的步骤S2,对序列层解码。
在步骤S183,类似于图4中的步骤S6,对包括自其开始解码的图像的GOP的GOP层解码。
在步骤S184,类似于图13中的步骤S155,提取包括自其开始解码的图像的GOP的图像位置信息。
在步骤S185,类似于图13中的步骤S157,基于图像位置信息,读取自其开始解码的图像的图像层。
在步骤S186,类似于图13中的步骤S158,对自其开始解码的图像的图像层解码。
在步骤S187,类似于图13中的步骤S159,提取自其开始解码的图像的片信息。
在步骤S188,类似于图13中的步骤S160,基于片位置信息,检测各个解码器265自其开始解码的片的位置。
在步骤S189,类似于图13中的步骤S161,将指示将开始于在步骤S188中检测到的开始位置的各个片提供给各个解码器265的信息提供给流读取控制部分261,并且指示各个解码器265开始对开始于在步骤S188检测到的开始位置的片解码。此后,解码开始位置检测处理结束。
如上所述,当流分析部分262对图像层解码时,基于图像位置信息快速地检测解码开始位置而不用搜索视频流上的图像层的开始位置(开始代码)。另外,当解码器165对片解码时,基于图像位置信息快速地检测解码开始位置而不用搜索视频流上的片层的开始位置(开始代码)。因此,减少了检测解码开始位置所需的时间,从而增加了解码视频流的速度。类似地,在使用一个解码器执行解码而不进行分解码时,减少了检测解码开始位置所需的时间,因此增加了解码视频流的速度。
可以将图像位置信息和片位置信息记录在不同于视频流文件的文件内而不用记录在视频流内。下面参考图16到23描述当将图像位置信息和片位置信息记录在不同于视频流文件的文件内时本发明的实施例。
图16是示出了由执行预定程序的CPU121实现的编码单元301的功能配置的例子的方框图。编码单元301不同于图7中的编码单元201的地方在于包括GOP计数部分321。在图16中,以最后两位数字与图7中的各个参考号的最后两位数字相同的各个参考号表示相应于图7中所示部分的部分。因此,省略了对各个相同功能的描述,因为它是重复的。
编码单元301包括编码器311、图像计数部分312、片计数部分313、开始位置存储器314、开始位置记录控制部分315、流输出控制部分316和GOP计数部分321。
除了图7中的编码器211的处理之外,在开始对视频流编码之前,编码器311在开始位置存储器314中存储表示开始在记录介质(例如,可移动介质116或HDD124)内记录通过执行编码产生的视频流的剪辑的位置的信息(剪辑开始位置信息)。另外,当开始对视频流编码时,编码器311将报告开始对视频流编码的信息提供给开始位置记录控制部分315。当编码器311开始对GOP(GOP层)编码时,编码器311将报告开始对GOP编码的信息提供给GOP计数部分321和开始位置记录控制部分315。
GOP计数部分321对该剪辑中的GOP数计数。具体地,GOP计数部分321管理GOP计数器。每当编码器311将报告开始对GOP编码的信息提供给GOP计数部分321时,GOP计数部分321增加该GOP计数器的值。
开始位置记录控制部分315读取记录在开始位置存储器314内的图像开始位置信息、片开始位置信息、图像数据长度信息、片时间长度信息和剪辑开始位置信息中的一个。开始位置记录控制部分315还获取表示图像计数器的值的信息。开始位置记录控制部分315从片计数部分313获得表示片计数器的值的信息。开始位置记录控制部分315从GOP计数部分321获得表示GOP计数器的值的信息。
开始位置记录控制部分315产生表示剪辑中各个图像和各个片的位置的信息(此后称为“剪辑位置信息”)。开始位置记录控制部分315将片位置信息临时存储在流存储器202内,并且如果必要更新该片位置信息。
流输出控制部分316在流存储器202内临时存储由编码器311编码的视频流。流输出控制部分316读取存储在流存储器202内的视频流或剪辑位置信息,并且将读取的视频流和剪辑位置信息输出到外部(例如,通过总线130输出到驱动器112或HDD124)。
图17是示出了由执行预定程序的CPU121实现的解码单元351的功能配置的例子的方框图。在图17中,以最后两位数字与图8中的各个参考号的最后两位数字相同的各个参考号表示相应于图8中所示部分的部分。因此,省略了对各个相同功能的描述,因为它是重复的。
解码单元351包括流读取控制部分361、流分析部分362、解码控制部分364、解码器365-1到365-4、基带输出控制部分366和开始位置检测部分371。
除了图8中的解码控制部分264的处理之外,解码控制部分364将指示获取相应于将被解码的视频流的剪辑的剪辑位置信息的信息提供给开始位置检测部分371。
开始位置检测部分371从记录有该剪辑的记录介质内读取相应于将被解码的视频流的剪辑的剪辑位置信息。基于该剪辑位置信息,开始位置检测部分371检测由来自解码控制部分364的开始位置检测指示信息指定的图像或片的开始位置。开始位置检测部分371将表示检测到的图像或片的开始位置的信息提供给解码控制部分364。
当不必区分各个解码器365-1到365-4时,将它们简单地称为解码器365。
图18是剪辑位置信息的数据布置的例子的图示。为视频流的每个剪辑记录剪辑位置信息,并且包括剪辑号、剪辑开始地址、图像位置信息和片位置信息。
剪辑号用于标识相应于剪辑位置信息的剪辑,并且被分配以便唯一地标识记录在记录介质内的视频流的剪辑。
剪辑开始地址表示剪辑记录在记录介质(例如,可移动介质116或HDD124)内的位置的起始处的地址。
如后面参考图19所述,对于包括在剪辑内的每个GOP,图像位置信息包括表示该GOP内的图像的位置的信息。
如后面参考图20所述,对于包括在剪辑内的每个图像,片位置信息包括表示图像内的各个片的位置的信息。
图19是包括在图18中所示的剪辑位置信息内的图像位置信息的数据布置的例子的图示。剪辑位置信息的图像位置信息不同于图10中示出的图像位置信息的地方是增加了GOP号。分配GOP号以便唯一地标识剪辑内的GOP,并且表示相应于该图像位置信息的GOP的GOP号。
图20是包括在图18中所示的剪辑位置信息内的片位置信息的数据布置的例子的图示。剪辑位置信息的片位置信息不同于图11中示出的片位置信息的地方是增加了图像号。图像号表示相应于该片位置信息的图像的图像号。
接着下面参考图21示出的流程图描述由编码单元301执行的编码处理。当编码器311通过接口129-1和总线130获得,例如,用户以鼠标114或键盘115输入的编码指令时,开始该处理。下面描述这样的情况,在作为编码前的基带信号的视频流被通过接口129-2和总线130从外部视频记录/重放装置113-1输入到编码器311之后,将编码的视频流记录在可移动介质116内。
在步骤S201,编码器311确定剪辑开始位置。具体地,编码器311确定在可移动介质116内开始记录将被编码的视频流的剪辑的位置。编码器311在开始位置存储器314内存储表示所确定的开始位置的剪辑开始位置信息。
在步骤S202,开始位置记录控制部分315记录该剪辑开始位置。具体地,编码器311将报告开始对视频流编码的信息提供给开始位置记录控制部分315。开始位置记录控制部分315从开始位置存储器314获取剪辑开始位置信息。开始位置记录控制部分315产生剪辑位置信息。开始位置记录控制部分315在剪辑位置信息中记录将被开始编码的视频流的剪辑的剪辑号。开始位置记录控制部分315还记录剪辑开始位置信息的值作为剪辑位置信息的剪辑开始地址。开始位置记录控制部分315将剪辑位置信息存储在流存储器152内。
在步骤S203,类似于图11中的步骤S101,确定视频流是否已被全部编码。如果确定视频流未被全部编码,处理进入步骤S204。
在步骤S204,类似于图11中的步骤S102,确定是否将改变序列层。如果确定将改变序列层,处理进入步骤S205。
在步骤S205,类似于图11中的步骤S103,对序列层解码。
如果在步骤S204,确定不改变序列层,处理跳过步骤S205进入步骤S206。
在步骤S206,GOP计数部分321增加GOP计数器。具体地,编码器311将报告开始对下一个GOP编码的信息提供给GOP计数部分321。GOP计数部分321增加GOP计数器。
在步骤S207,开始位置记录控制部分315记录GOP号。具体地,编码器311将报告开始对下一个GOP编码的信息提供给开始位置记录控制部分315。开始位置记录控制部分315从GOP计数部分321获得表示GOP计数器的值的信息。开始位置记录控制部分315记录GOP计数器的值作为相应于将被编码的GOP的图像位置信息的GOP号,它跟在被存储在流存储器202内的剪辑位置信息之后。
在步骤S208,类似于图11中的步骤S104,对GOP层编码。
在步骤S209,执行参考图12描述的图像层和更低层的编码。与图7中的编码器211执行的图像层和更低层的编码不同,将图像位置信息和片位置信息记录在存储在流存储器202内的剪辑位置信息内。
在处理返回步骤S203之后,重复执行步骤S203到S209内的处理,直到在步骤S203确定该视频流已被全部编码。
如果在步骤S203确定该视频流已被全部编码,处理进入步骤S210。
在步骤S210,流输出控制部分316输出剪辑位置信息,并且编码处理结束。具体地,流输出控制部分316读取存储在流存储器202内的剪辑位置信息,并且将读取的剪辑位置信息通过总线130和接口129-3提供给驱动器112。驱动器112以与可移动介质116内的相应剪辑不同的文件记录剪辑位置信息。
接着下面参考图22和23中示出的流程图描述由解码单元351执行的解码处理。图22和23中示出的流程图不同于图13和14中示出的流程图的地方在于增加了步骤S251。
换言之,在步骤S251,开始位置检测部分371获取剪辑位置信息。具体地,解码控制部分364将指示获取相应于将被解码的视频流剪辑的剪辑位置信息的信息提供给开始位置检测部分371。在开始位置检测部分371的控制下,驱动器112从可移动介质116读取剪辑位置信息,并且通过接口129-3和总线130将读取的剪辑位置信息提供给开始位置检测部分371。
在图22和23中示出的流程图中,删除了相应于步骤S155和159的步骤,因为与图13和14中示出的流程图相比,不必提取记录在视频流内的图像位置信息和片位置信息。因此,减少了提取图像位置信息和片位置信息所需的时间。
其它步骤与参考图13和14描述的那些步骤类似。因此,略去对它们的描述,因为这是重复的。基于剪辑位置信息检测对图像层解码的开始位置和解码器365的解码开始位置。
通过组合参考图3到图6描述的处理以及参考图7到15和图16到21描述的处理,即,通过设置分解码区域从而包括视频流上连续的片,并且记录图像位置信息和片位置信息,可以进一步增加视频流解码的速度。下面描述组合了参考图3到图6描述的处理以及参考图7到15描述的处理的实施例。视频流编码类似于参考图7、11和12描述的处理。因此,忽略对其的描述,因为这是重复的。
图24是示出了由执行预定程序的CPU121实现的解码单元451的功能配置的例子的方框图。解码单元451不同于图8中示出的解码单元251的地方在于包括解码区域设置部分463。在图24中,以最后两位数字与图8中的各个参考号的最后两位数字相同的各个参考号表示相应于图8中所示部分的部分。因此,忽略对各个相同功能的描述,因为这是重复的。
解码单元451包括流读取控制部分461、流分析部分462、解码区域设置部分463、解码控制部分464、解码器465-1到465-4、基带输出控制部分466和开始位置检测部分471。
流分析部分462对视频流直到图像层的各层解码,并且将通过执行解码获得的信息提供给解码控制部分464。流分析部分462还将通过解码视频流的序列层获得的表示视频流的图像大小的信息提供给解码区域设置部分463。流分析部分462提取记录在视频流内的图像位置信息和片位置信息,并且将提取出的图像位置信息和片位置信息提供给开始位置检测部分471。
类似于图3中的解码区域设置部分163,解码区域设置部分463设置分解码区域。解码区域设置部分463将表示设置分解码区域的信息提供给解码控制部分464。
除了图8中的解码控制部分264的处理,基于所述分解码区域,解码控制部分464确定将由解码器465-1到465-4解码的片。
当不必区分各个解码器465-1到465-4时,将它们简单地称为解码器465。
接着下面参考图25和26中示出的流程图描述由解码单元451执行的解码处理。
类似于图4中的步骤S1,在步骤S351确定视频流是否已被全部解码。如果确定视频流未被全部解码,处理进入步骤S352。
类似于图4中的步骤S2,在步骤S352,从可移动介质116读取将被解码的视频流的序列层,并且对该序列层解码。
类似于图4中的步骤S3,在步骤S353,检测视频流的图像大小。
类似于图4中的步骤S4,在步骤S354,设置将由解码器465解码的分解码区域,并且将表示分解码区域的信息提供给解码控制部分464。
类似于图4中的步骤S5,在步骤S355,确定是否已对所有GOP解码。如果确定仍未对所有GOP解码,处理进入步骤S356。
类似于图4中的步骤S6,在步骤S356,从可移动介质116读取将被解码的下一个GOP,并且对读取的GOP的GOP层解码。
类似于图13中的步骤S155,在步骤S357,提取图像位置信息,并且将图像位置信息提供给开始位置检测部分471。
类似于图4中的步骤S7,在步骤S358,确定该GOP内的所有图像是否已被解码。如果确定未对该GOP内的所有图像解码,处理进入步骤S359。
类似于图13中的步骤S157,在步骤S359,读取将被解码的下一个图像的图像层并且将其提供给流分析部分462。
类似于图中的步骤S9,在步骤S360,对该图像层解码。
类似于图13中的步骤S159,在步骤S361,获取片位置信息,并且将其提供给开始位置检测部分471。
在步骤S362,开始位置检测部分471检测各个分解码区域的开始位置。具体地,通过指定将被解码的下一个图像内的将由解码器465解码的各个分解码区域内的第一个片的片号,解码控制部分464将指示检测分解码区域的开始位置的开始位置检测指示信息提供给开始位置检测部分471。基于片位置信息,开始位置检测部分471检测相应于指定的片号的片的开始位置。换言之,开始位置检测部分471检测分解码区域的开始位置。开始位置检测部分471将表示检测到的开始位置的信息提供给解码控制部分464。
在步骤S363,解码控制部分464指示开始解码。具体地,解码控制部分464将指示将包括在开始于步骤S363中检测到的开始位置的各个分解码区域内的片提供给各个解码器465的信息提供给流读取控制部分461。另外,解码控制部分464将指示开始对下一个图像解码的信息提供给解码器465。
在步骤S364,解码器465开始解码。具体地,流读取控制部分461从流存储器152读取包括在开始于由解码控制部分464检测到的开始位置的各个分解码区域内的片。对于各个分解码区域,流读取控制部分461将读取的片提供给被分配了该分解码区域的解码的一个解码器465。该解码器465开始对该分解码区域内的第一个片解码。该解码器465随后将解码的数据提供给基带输出控制部分466。基带输出控制部分466将所提供的数据存储在基带存储器153内。
类似于图5中的步骤S13,在步骤S365,确定是否出现了错误。如果确定出现了错误,处理进入步骤S366。
在步骤S366,解码控制部分464确定重新开始执行解码的位置。解码控制部分464确定,例如,解码失败的片之后的片作为重新执行解码的位置。
在步骤S365,解码器465重新开始解码。具体地,解码控制部分464将指示重新开始解码出现错误的片之后的片的信息提供给出现错误的一个解码器465。该解码器465从指定的片重新开始解码。
如果在步骤S365确定未出现错误,处理跳过步骤S366和S367进入步骤S368。
类似于图5中的步骤S16,在步骤S368确定所有解码器465的处理是否已结束。如果确定仍未结束所有解码器465的处理,处理返回步骤S365。重复执行步骤S365到S368内的处理,直到在步骤S368确定所有解码器465的处理已结束为止。
如果在步骤S368确定所有解码器465的处理已结束,处理进入步骤S369。
类似于图5中的步骤S17,在步骤S369输出用于一帧的数据。此后,处理返回步骤S358。
如果在步骤S358确定仍未对该GOP内的所有图像解码,处理进入步骤S359,并且执行步骤S359和后续步骤内的处理。换言之,对下一个图像解码。
如果在步骤S358确定已对该GOP内的所有图像解码,处理返回步骤S355。
如果在步骤S355确定未对该GOP内的所有图像解码,处理进入步骤S356,并且执行步骤S356和后续步骤内的处理。换言之,对下一个GOP解码。
如果在步骤S355确定已对所有GOP解码,处理进入步骤S351。
如果在步骤S351确定视频流未被全部解码,处理进入步骤S352,并且执行步骤S352和后续步骤内的处理。换言之,对视频流的下一个序列层解码。
如果在步骤S351确定视频流已被全部解码,解码处理结束。
如上所述,当流分析部分462对图像层解码时,基于图像位置信息快速地检测解码开始位置而不用搜索视频流上的图像层的开始位置(开始代码)。当各个解码器465执行解码时,对于每个帧(图像),仅需要检测各个分解码区域的开始位置作为解码器465开始解码的位置,并且基于片位置信息快速地检测分解码区域的开始位置而不用搜索视频流上片层的开始位置(开始代码)。因此,减少了检测解码开始位置所需的时间,从而增加了对视频流解码的速度。同样,在使用一个解码器执行解码而不划分解码处理的情况下,可以减少检测解码开始位置所需的时间,从而增加了对视频流解码的速度。
同样不描述对参考图3到6描述的处理和参考图16到23描述的处理的组合,因为除了一点,即,图像位置信息和片位置信息被记录在剪辑位置信息内之外,其与参考图24到26描述的处理大致相同。
另外,通过进一步将视频流解码处理划分为多个阶段,并且使用多个硬件并行执行划分到所述阶段中的解码处理,可以进一步增加解码处理的速度。将参考图27到37描述本发明在将解码处理划分为多个阶段,并且由多个硬件并行执行所述阶段的解码处理的情况下的实施例。
图27是示出了AV处理系统501的实施例的方框图,其中将解码处理划分为多个阶段,并且由多个硬件并行执行所述阶段的解码处理。在图27中,由相同的参考号表示相应于图2中示出的部分的部分,并且不对其处理相同的各个部分进行描述,因为其描述是重复的。
与图2中所示的AV处理系统101相比,AV处理系统501有相同之处,即它包括外部视频记录/重放装置113-1到113-n、鼠标114和键盘115,并且有不同之处,即它包括AV处理装置511而不是AV处理系统101。
与图2中所示的AV处理系统111相比,AV处理系统511有相同之处,即它包括CPU121、ROM122、RAM123、HDD124、信号处理单元125、视频特效音频混合单元126、显示器127、扬声器128和接口129-1到129-3,并且有不同之处,即它包括图像处理单元(GPU)521 CPU121、ROM122、RAM123、HDD124、信号处理单元125、视频特效音频混合单元126、接口129-1到129-3和GPU 521由总线130彼此连接。
GPU521是主要执行图像处理的处理器。在AV处理系统511中,如后面所述,两个硬件(处理器),即CPU121和GPU521将视频流解码划分为两个阶段,并且并行执行解码的阶段。
图28是示出了由执行预定程序的CPU121实现的解码单元551的功能配置的例子的方框图。在图28中,以最后两位数字与图24中的各个参考号的最后两位数字相同的各个参考号表示相应于图24中所示部分的部分。因此,省略了对各个相同功能的描述,因为它是重复的。
解码单元551包括流读取控制部分561、流分析部分562、解码区域设置部分563、解码控制部分564、解码器565-1到565-4、开始位置检测部分571、片数据存储存储器572、传输存储器573和存储器传输控制部分574。
流读取控制部分561控制驱动器112以读取记录在可移动介质116内的视频流。流读取控制部分561通过接口129-3和总线130获取由驱动器112读取的视频流。流读取控制部分561通过总线130读取记录在HDD124内的视频流。如果必要,流读取控制部分561将读取的视频流临时存储在流存储器152内,由CPU121内的高速缓存存储器(未示出)形成流存储器152。如果必要,流读取控制部分561将读取的视频流提供给流分析部分562或解码器565-1到565-4。
除了图24中示出的解码控制部分464的处理之外,解码控制部分564控制解码器565-1到565-4以便产生用于执行各个分解码区域内的片的直到预定中间阶段的解码(后面参考图32描述的前半部分解码处理)的线程,并且与另一个解码器并行地在被分配到各个解码器的分解码区域上执行前半部分解码处理。解码控制部分564还控制存储器传输控制部分574和GPU521以便产生在被解码器565-1到565-4解码到所述中间阶段的的片上执行剩余阶段的解码(后面参考图33和34描述的后半部分解码处理)的线程,并且与解码器565-1到565-4的前半部分解码处理并行地执行后半部分解码处理。
解码控制部分564通过总线130从GPU521获取指示GPU521的处理已结束的信息。解码控制部分564还将指示是否正在执行GPU521的处理的信息提供给解码器565-1到565-4。解码控制部分564将指示开始前半部分解码处理的信息提供给解码器565-1到565-4(解码控制部分564调用用于执行前半部分解码处理的线程,并且将前半部分解码处理所需的信息提供给调用的线程)。
解码控制部分564将指示开始后半部分解码处理的信息提供给存储器传输控制部分574和GPU521(解码控制部分564调用用于执行后半部分解码处理的线程,并且将后半部分解码处理所需的信息提供给该线程)。指示开始后半部分解码处理的信息包括指示将被解码的片已被解码到哪个阶段的历史信息。
解码器565-1到565-4在分配给解码器565-1到565-4的视频流的各个帧中的分解码区域上执行并行解码(变长解码和反向量化)。解码器565-1到565-4包括变长解码器(VLD)581-1到581-4和反向量化器(IQ)582-1到582-4组。在下面的描述中,当不必区分各个解码器565-1到565-4时,在下文中将它们简单地称为“解码器565”。当不必区分各个VLD581-1到581-4时,在下文中将它们简单地称为“VDL581”。当不必区分各个IQ 582-1到582-4时,在下文中将它们简单地称为“IQ582”。
VLD581在从流读取控制部分561提供的数据(视频流)上执行变长解码,并且将变长解码的数据提供给IQ582。VLD581使用总线130将包括在解码的数据内的表示预测模式、运动向量和帧/域预测标记的信息提供给GPU521。VLD581将包括在解码的数据内的量化度量信息提供给IQ582。
根据从VLD581提供的量化度量,IQ582对从VDL581提供的数据进行反向量化,并且将反向量化数据存储在片数据存储存储器572内。另外,当为一个片在片数据存储存储器572内存储由IQ582量化的数据时,IQ582将用于一个片的数据从片数据存储存储器572传输到传输存储器573。
存储器传输控制部分574通过总线130将存储在传输存储器573内的数据传输到GPU521。
图29是示出了由执行预定程序的GPU521实现的解码单元601的功能配置的例子的方框图。解码单元601包括片数据存储器611、反向离散余弦变换(IDCT)部分612、运动补偿部分613、帧数据产生部分614和帧存储器615。
片数据存储器611存储从存储器传输控制部分574提供的一个片的反向量化数据。
在解码控制部分564的控制下,IDCT部分612对存储在片数据存储器611内的片执行IDCT处理(后面将参考图34对其进行描述)。IDCT部分612将通过执行IDCT处理获得的图像数据提供给帧数据产生部分614。IDCT部分612基于,例如,快速IDCT算法对视频流上的宏块执行IDCT处理。例如,在Yuihiro Arai和其他两人的“FastDCT-SQ Scheme for Images,”The Transactions of the IEICE,Vol.E71,No.11,November 1988,pp.1095-1097中公开了快速IDCT算法的细节。
运动补偿部分613通过总线130从VLD581获取表示预测模式、运动向量和帧/域预测标记的信息。当帧数据产生部分614产生的下一个图像数据是前向预测模式中的P图像时,运动补偿部分613通过对存储在帧存储器615的过去参考图像部分615a内的一帧的图像数据执行相应于从VLD581提供的运动向量的运动补偿产生预测图像数据。运动补偿部分613将产生的预测图像数据提供给帧数据产生部分614。
当帧数据产生部分614产生的下一个图像数据是B图像时,运动补偿部分613通过响应从VLD581提供的预测模式、存储在帧存储器615的过去参考图像部分615a内的图像数据(在前向预测模式的情况下)、存储在帧存储器615的将来参考图像部分615b内的图像数据(在反向预测模式的情况下)、或存储在过去参考图像部分615a内的图像数据和存储在将来参考图像部分615b内的图像数据两者(在双向预测模式的情况下)执行运动补偿(相应于从VLD581提供的运动向量)产生预测图像数据。运动补偿部分613将产生的预测图像数据提供给帧数据产生部分614。
当存储在将来参考图像部分615b内的图像数据是P图像,并且位于该P图像之前B图像的解码全部结束时,运动补偿部分613读取存储在将来参考图像部分615b内的P图像,并且将读取的P图像提供给帧数据产生部分614而不执行运动补偿。
在解码控制部分564的控制下,帧数据产生部分614存储从IDCT部分612提供的图像数据,产生用于一帧的图像数据,并且输出产生的图像数据。具体地,当从IDCT部分612提供的图像数据表示I图像,或表示帧内预测模式的P图像和B图像之一时,帧数据产生部分614基于从IDCT部分612提供的图像数据产生用于一帧的图像数据。另外,当从IDCT部分612提供的图像数据是不具有帧内预测模式的P图像或B图像时,帧数据产生部分614通过将从运动补偿部分613提供的预测图像数据增加到基于从IDCT部分612提供的图像数据产生的图像数据产生用于一帧的图像数据。
当产生的图像数据表示I图像时,帧数据产生部分614将产生的图像数据输出到解码单元601的外部(例如,通过总线130输出到信号处理单元125),并且在帧存储器615的过去参考图像部分615a或将来参考图像部分615b内存储产生的图像数据。当产生的图像数据是P图像时,帧数据产生部分614将产生的图像数据存储在帧存储器615的将来参考图像部分615b内而不向解码单元601的外部输出产生的图像数据。当产生的数据是B图像时,帧数据产生部分614将产生的图像数据输出到解码单元601的外部。
另外,当运动补偿部分613将存储在将来参考图像部分615b内的图像数据(P图像)提供给帧数据产生部分614,帧数据产生部分614将所提供的图像数据输出到解码单元601的外部。
帧数据产生部分614将报告后半部分解码处理已结束的信息提供给解码控制部分564。
如上所述,在帧存储器615内,用于产生预测图像的图像数据(I图像或P图像)存储在过去参考图像部分615a或将来参考图像部分615b内。另外,如果必要,图像数据被在过去参考图像部分615a和将来参考图像部分615b之间传输(执行存储交换)。
接着下面参考图30和31示出的流程图描述由解码单元551执行的解码处理。为了描述简便,假设各个宏块的块类型是内部类型(帧内编码类型)。另外,为了描述简便,在流程图30和31中忽略了响应出现错误的上述处理(例如,图26中的步骤S365到S367)的有关步骤。
不对步骤S451和S462进行描述,因为它们类似于图25和26中的步骤S351和S362,并且对它们的描述是重复的。
在步骤S463,解码控制部分564指示开始前半部分解码处理。具体地,解码控制部分564将指示将包括在开始于在步骤S462检测到的开始位置的各个分解码区域内片提供给各个解码器465的信息提供给流读取控制部分461。另外,解码控制部分564将指示开始对下一个图像进行前半部分解码处理的信息提供给各个解码器565。
在步骤S464,解码器565执行前半部分解码处理。后面参考图32描述前半部分解码处理的细节。
在步骤S456,解码控制部分564确定所有解码器565的处理是否已结束。具体地,解码控制部分564确定是否被提供了报告分配给解码器565的分解码区域内的所有片的解码已结束的信息。解码控制部分564重复执行步骤S465中的确定直到所有解码器565向解码控制部分564提供报告终止解码的信息为止。当提供了报告终止解码的信息时,解码控制部分564确定所有解码器565的处理已结束,并且处理进入步骤S458。此后,执行步骤S458和后续步骤内的处理。
接着下面参考图32中示出的流程图描述前半部分解码处理。
在步骤S501,VLD581执行变长解码。具体地说,VDL581对从流读取控制部分561提供的片内的第一个宏块执行变长解码。VDL581将变长解码宏块提供给IQ582。VDL581将宏块的反向量化中使用的量化度量的信息提供给IQ582。
在步骤S502,IQ582执行反向量化。具体地,根据从VDL581提供的量化度量,IQ582对从VDL581提供的宏块进行反向量化。
在步骤S503,IQ582将在步骤S502反向量化的数据存储在片数据存储存储器572内。
在步骤S504,IQ582确定用于一个片的数据是否被存储在片数据存储存储器572内。具体地,当存储在片数据存储存储器572内的由IQ582反向量化的数据未达到一个片的数据量时,IQ582确定仍未存储用于一个片的数据。处理返回步骤S501。在步骤S504,重复执行步骤S501到S504内的处理直到确定存储用于一个片的数据为止。换言之,顺序对第一宏块后的第二和后续宏块进行变长解码和反向量化。
如果在步骤S504,存储在片数据存储存储器572内的由IQ582反向量化的数据达到了一个片的数据量,IQ582确定已在片数据存储存储器572内存储了用于一个片的数据,并且处理进入步骤S502。
在步骤S505,IQ582确定GPU521的处理是否已结束。具体地,IQ582从解码控制部分564获取指示是否正在执行GPU521的处理的信息。当正在执行GPU521的处理,IQ582确定GPU521的处理仍未结束,并且处理进入步骤S506。
在步骤S506,IQ582确定分解码区域内的所有宏块是否已被处理。如果仍未对分解码区域内的所有宏块进行处理,即,当分配给IQ582的分解码区域内存在未被变长解码和反向量化的宏块时,处理返回步骤S501。连续执行对分解码区域内宏块的变长解码和反向量化。
如果在步骤S506确定分解码区域内的所有宏块已被处理,即,当分配给IQ582的分解码区域内的所有宏块已被变长解码和反向量化时,处理进入步骤S507。
类似于步骤S505,在步骤S507确定GPU521的处理是否已结束。重复执行步骤S507直到确定GPU521的处理已结束。如果GPU521的处理已结束,即,当GPU处于空闲状态,处理进入步骤S508。
在步骤S508,IQ582传输反向量化数据。具体地,在存储在片数据存储存储器572内的由IQ582反向量化的数据中,由IQ582将用于一个片的第一数据传输到传输存储器573。
在步骤S509,解码控制部分564指示开始后半部分解码处理。解码控制部分564将指示开始存储在传输存储器573内的片的后半部分解码处理的信息提供给存储器传输控制部分574和解码单元601。这开始后半部分解码处理,下面参考图33对后半部分解码处理进行描述。此后,处理进入步骤S513。
如果在步骤S505确定GPU521的处理已结束,处理进入步骤S510。
类似于步骤S507,在步骤S510,用于一个片的反向量化数据被传输到传输存储器573。
类似于步骤S509,在步骤S511,指示开始后半部分解码处理。
类似于步骤S506,在步骤S512,确定是否已处理了分解码区域内的所有宏块。如果确定仍未对分解码区域内的所有宏块进行处理,处理返回步骤S501,并且继续执行宏块的变长解码和反向量化。
如果在步骤S512确定已对分解码区域内的所有宏块进行了处理,处理进入步骤S513。
在步骤S513,IQ582确定是否传输了所有反向量化的数据。在由IQ582反向量化的数据中,当片数据存储存储器572中仍存在未被传输到传输存储器573的数据时,IQ582确定仍未传输所述反向量化的数据,并且处理返回步骤S507。此后,重复执行步骤S507、S508和S513内的处理,直到在步骤S513确定已传输了所有反向量化数据。
如果在步骤S513确定已传输了所有反向量化数据,处理进入步骤S514。
在步骤S514,解码器565报告前半部分解码处理的终止,并且前半部分解码处理结束。具体地,解码器565将报告前半部分解码处理的终止的信息提供给解码控制部分564。
已经以给出的一个解码器描述了前半部分解码处理。实际上,由解码器565-1到565-4并行执行前半部分解码处理。
接着下面参考图33中示出的流程图描述相应于图32中示出的前半部分解码处理的由解码单元551和解码单元601执行的后半部分解码处理。与参考图32在上面描述的由解码器565执行的前半部分解码处理并行地执行后半部分解码处理。
在步骤S521,存储器传输控制部分574确定是否已指示开始后半部分解码处理。重复执行步骤S521中的确定,直到确定已经指示开始后半部分解码处理为止。在图32中的步骤S509或S511中,当指示开始后半部分解码处理的信息被从解码控制部分564提供给存储器传输控制部分574时,确定已指示开始后半部分解码处理,并且处理进入步骤S522。
在步骤S522,存储器传输控制部分574传输数据。具体地,存储器传输控制部分574通过总线130传输并且在解码单元601内的片数据存储器611内存储用于存储在解码单元601内的一个片的反向量化数据。
在步骤S523,IDCT部分612执行IDCT处理。后面参考图34描述IDCT处理的细节。
在步骤S524,帧数据产生部分614确定用于一帧的图像数据是否已被解码。如果确定用于一帧的图像数据仍未被解码,处理进入步骤S525。
在步骤S525,帧数据产生部分614输出用于一帧的图像数据。具体地,帧数据产生部分614向外部(例如,通过总线130向信号处理单元125)输出已被完成解码的用于一帧的图像数据。
如果在步骤S524确定用于一帧的图像数据仍未被解码,处理跳过步骤S525进入步骤S526。
在步骤S526,帧数据产生部分614报告后半部分解码处理的终止。具体地,帧数据产生部分614使用总线130将报告后半部分解码处理已结束的信息提供给解码控制部分564。此后,处理返回步骤S521,并且执行步骤S521和后续步骤内的上述处理。
接着下面参考图34中示出的流程图描述在图33中的步骤S523内的IDCT处理的细节。
在步骤S541,IDCT部分612产生纹理(texture)。具体地,IDCT部分612读取存储在片数据存储器611内的一个片的数据。
假设用于一个片的数据具有图35中的片651的格式,如下描述IDCT处理。格式651包括n个宏块(MB)。一个宏块包括16×16项亮度信息Y、16×8项色差信息Cb和16×8项色差信息Cr。换言之,三个成分即亮度信息Y和色差信息Cb和Cr的比例为4∶2∶2。信息项被从起始处以亮度信息Y的16个垂直项×16个水平项,色差信息Cb的16个垂直项×8个水平项、色差信息Cr的16个垂直项×8个水平项、色差信息Cb的16个垂直项×8个水平项、色差信息Cr的16个垂直项×8个水平项的顺序布置。
IDCT部分612为包括在片651内的各个宏块产生通过布置16项亮度信息Y、16项色差信息Cb、16项色差信息Cr、16项色差信息Cb、16项色差信息Cr获得的4列信息。IDCT部分612产生4个纹理661-664,其中从各个宏块产生的4列信息被按顺序布置。从而,一个纹理包括n个垂直信息项×128个水平信息项。
在步骤S542,IDCT部分612执行行变换。具体地,从布置在纹理661到664的第一(水平)行内的信息内,即,包括在片651的第一宏块内的信息,IDCT部分612产生三维块671-1,其包括8个垂直信息项×8个水平信息项×8个时间信息项。
产生构成三维块671-1的信息项,从而根据预定的规则,以预定系数乘以纹理661到664的第一(水平)行内的信息项,并且对被乘以预定系数的信息项进行累加。三维块671-1具有布置在从顶部起的第一到第四行内的亮度信息Y的项、布置在从顶部起的第五到第六行内的色差信息Cb的项和布置在从顶部起的第七到第八行内的色差信息Cr的项。
在步骤S543,IDCT部分612确定行转换是否全部结束。如果确定行转换仍未全部结束,处理进入步骤S542,并且在步骤S543,重复执行步骤S542和S543内的处理,直到确定行转换全部结束为止。换言之,对于纹理661到664的行,顺序执行上述行转换。结果,产生三维块671-1到671-n。
此后构成三维块671-m(m=1,2,3...,n)并且每个包括8个垂直信息项×8个水平信息项的8个二维块被称为“二维块671-m1到671-m8”,其中m=1,2,3...,n。
如果在步骤S543,确定行转换已全部结束,处理进入步骤S544。
在步骤S544,IDCT部分612执行列转换。具体地,IDCT部分612根据预定的规则从产生自片651的第一宏块的三维块671-1产生包括8个垂直信息项×8个水平信息项×8个时间信息项的三维块681-1。
产生三维块681-1的列中的时间项,从而三维块671-1的行中的水平项(它们根据预定的规则与所述列相关联)被乘以预定的系数,并且对乘以预定系数的项进行累加。例如,产生在最外面平面上的左端处的三维块681-1的列中的时间项,从而构成三维块671-1的二维块671-11的第一行内的水平信息项被乘以预定系数,并且对乘以预定系数的项进行累加。另外,块681-1具有布置在从顶部起第一到第四行内的亮度信息Y的项、布置在从顶部起第五到第六行内的色差信息Cb的项和布置在从顶部起第七到第八行内的色差信息Cr的项。
在步骤S545,IDCT部分612确定列转换是否全部结束。如果确定列转换仍未全部结束,处理返回步骤S544,并且重复执行步骤S544和步骤S545内的处理,直到确定列转换全部结束为止。换言之,对于三维块671-1到671-n,顺序地执行上述的列转换。结果,产生三维块681-1到681-n。
构成三维块681-m(m=1,2,3...,n)并且每个包括8个垂直信息项×8个水平信息项的8个二维块被称为“二维块681-m1到671-m8”,其中m=1,2,3...,n。
如果在步骤S545确定列转换已全部结束,处理进入步骤S546。
在步骤S546,IDCT部分612重新布置信息项。具体地,如图36中所示,IDCT部分612从包括在三维块681-1的最外面的平面(二维块681-m1到671-m8顶部的行)内的亮度信息Y的项产生具有8×8个信息项的宏块711-1。类似地,1DCT部分612从包括在从块681-1的顶部起的第二个平面内的亮度信息Y的项产生宏块711-2。片数据存储器611从包括在从顶部起的第三个平面内的亮度信息Y的项产生宏块711-3,并且片数据存储器611从自顶部起的亮度信息Y的项产生宏块711-4。
当被解码的包括片的图像具有域结构时,IDCT部分612产生宏块712-1和712-2,其中宏块711-1和711-3的行被交替布置,并且产生宏块712-3和712-4,其中宏块711-2和711-4的行被交替布置。如图36的右上部所示,IDCT部分612产生16×16的宏块713,宏块713具有顶部左侧处的宏块712-1,底部左侧处的宏块712-2,顶部右侧处的宏块712-3和底部右侧处的宏块712-4。
当被解码的包括片的图像具有帧结构时,如图36的右下部所示,IDCT部分612产生16×16的宏块714,宏块714具有顶部左侧处的宏块711-1,底部左侧处的宏块711-2,顶部右侧处的宏块711-3和底部右侧处的宏块711-4。
类似地IDCT部分612也对包括在三维块681-2到681-n内的亮度信息Y的项重新布置。另外,还类似地对包括在三维块681-2到681-n内的色差信息Cr和Cb的项重新布置。IDCT部分612还产生片691,其中按从顶部起的顺序布置信息项被重新布置的宏块。例如,当包括片的图像具有域结构时,如图37中所示,从三维块681-1产生的宏块712-1到712-4被布置在片691的起始处(在图37的左端)。顺序地,类似地,按顺序布置从三维块681-2到688-n产生的宏块。
在步骤S547,IDCT部分612执行RGB转换,并且IDCT处理结束。具体地,通过将构成片691的亮度信息Y和色差信息Cb和Cr转换为RGB系统内的红(R)、绿(G)和蓝(B)信号,产生图像数据701。IDCT部分612将产生的图像数据701提供给714。IDCT部分612使用总线130将指示IDCT处理已结束的信息提供给解码控制部分564。
如上所述,通过使用CPU121和GPU521划分并且并行执行片层和更低层的解码处理,可以缩短解码处理所需时间,并且可以减小CPU121上的负荷。另外,通过使用比高性能处理器诸如CPU便宜的GPU521,可以减少必需的成本。
如上所述,在控制表示视频流的帧的位置的帧位置信息的情况下,基于表示帧在视频流内的位置的帧位置信息以及表示用作在对视频流解码时使用的处理单元的单元区域的位置的单元区域位置信息,控制对单元区域位置信息的记录,所述单元区域位置信息表示对视频流解码时作为处理单元的单元区域的位置,检测开始对视频流解码的解码开始位置,并且控制视频流的解码,从而在所述解码开始位置处开始,可以缩短检测对视频流解码的开始位置所需的时间,从而可以用增加的速度对视频流解码。
上述的描述例举了由CPU121实现的解码器的数目为4的情况。然而,解码器的数目可以是不为4的值。
上述的描述例举了由GPU521实现的解码器的数目为1的情况。然而,可以由单个GPU实现多个解码器,并且通过提供多个解码器,可由所述解码器并行执行后半部分解码处理部分。
虽然在上述描述中,由多内核处理器构成CPU121,通过提供多个处理器诸如CPU,可以由所述处理器并行执行由CPU121实现的解码器的处理。
上述的描述例举了被编码或解码的视频流为MPEG-2的情况。然而,本发明的实施例适用于视频流被在这样的系统中编码或解码的情况,其中不记录表示视频流的帧位置(例如,从视频流的起始处的相对位置,视频流被记录在记录介质上的位置等),或在对视频流解码中使用的处理单元的位置(例如,从视频流的起始处的相对位置,视频流被记录在记录介质上的位置等)的信息。另外,本发明的实施例适用于这样的情况,其中多个解码器并行对视频流解码,以具有被包括在相应于视频流的一帧图像的视频流的区域内的多个处理单元的方法对该视频流编码。
另外,在图30中的步骤S509或S511,解码控制部分564可以在传输存储器573内存储指示存储在传输存储器573内的片已被解码到哪个阶段的历史信息。这清楚地指出存储在传输存储器573内的片已被解码到哪个阶段。因此,例如,当以划分为3个或更多阶段的形式执行解码处理时,可以使用存储在传输存储器573内的片作为用于确定哪个解码器执行解码的信息。
可以用硬件(例如,图2或图27中的信号处理单元125)或由软件执行上述的连续处理。当使用软件执行上述的连续处理时,从网络或记录介质将构成该软件的程序安装到,例如,AV处理装置111或类似物。
该记录介质不仅由包含程序并且与计算机分开发放以便给用户提供该程序的可移动介质117构成,而且还由包含程序并且以内置于计算机的状态提供给用户的ROM122、HDD124或类似物构成。
在本说明书中,构成包含在所述记录介质内的程序的步骤不仅包括以给定的顺序以时序的方式被执行的步骤,而且包括被并行执行或如果不必以时序的方式执行则被单独执行的步骤。
在本说明书中,术语“系统”意指装置(apparatus)、多个装置(means)等的整体。
本领域的技术人员应当理解,根据设计要求和其他因素可以出现各种修改、组合、子组合或替换,只要它们在所附权利要求或其等同物的范围内。
权利要求
1.一种编码方法,包括如下步骤控制表示帧在视频流中的位置的帧位置信息的记录;并且控制表示用作在解码所述视频流时使用的处理单元的单元区域的位置的单元区域位置信息的记录。
2.如权利要求1的编码方法,其中在所述帧位置记录控制步骤,控制所述帧位置信息的记录,从而当所述视频流处于编码形式时将所述帧位置信息记录在所述视频流内;以及在所述单元区域位置记录控制步骤,控制所述单元区域位置信息的记录,从而当所述视频流处于编码形式时将所述单元区域位置信息记录在所述视频流内。
3.如权利要求1的编码方法,其中在所述帧位置记录控制步骤,控制所述帧位置信息的记录,从而将所述帧位置信息记录在不同于所述视频流文件的文件内;以及在所述单元区域位置记录控制步骤,控制所述单元区域位置信息的记录,从而将所述单元区域位置信息记录在所述不同的文件内。
4.如权利要求1的编码方法,其中通过使用MPEG标准对所述视频流编码,并且所述单元区域是片。
5.如权利要求4的编码方法,其中在所述帧位置记录控制步骤,控制所述帧位置信息的记录,从而将所述帧位置信息记录在包括在所述以MPEG标准编码的视频流中的序列层和GOP层之一的用户数据字段内;以及在所述单元区域位置记录控制步骤,控制所述单元区域位置信息的记录,从而将所述单元区域位置信息记录在所述以MPEG标准编码的视频流的图像层的用户数据字段内。
6.如权利要求1的编码方法,其中所述帧位置信息包括表示所述帧相对于所述视频流的起始处的相对位置的信息;以及所述单元区域位置信息包括表示所述单元区域相对于所述视频流的起始处的相对位置的信息。
7.如权利要求6的编码方法,其中所述帧位置信息包括表示分配给所述帧的号码以及所述帧的数据长度的信息;以及所述单元区域位置信息包括表示分配给所述帧内的所述单元区域的号码以及所述单元区域的数据长度的信息。
8.如权利要求1的编码方法,其中所述帧位置信息包括表示所述帧被记录在数据记录介质上的位置的信息;以及所述单元区域位置信息包括表示所述单元区域被记录在所述数据记录介质上的位置的信息。
9.如权利要求8的编码方法,其中所述帧位置信息包括表示分配给所述帧的号码以及所述帧的数据长度的信息;以及所述单元区域位置信息包括表示分配给所述帧内的所述单元区域的号码以及所述单元区域的数据长度的信息。
10.一种编码装置,包括对视频流编码的编码装置;以及控制帧位置信息和单元区域位置信息的记录的记录控制装置,所述帧位置信息表示帧在所述视频流中的位置,所述单元区域位置信息表示用作在解码所述视频流时使用的处理单元的单元区域的位置。
11.一种解码方法,包括如下步骤基于表示帧在视频流中的位置的帧位置信息和表示用作在解码所述视频流时使用的处理单元的至少一个单元区域的位置的单元区域位置信息,检测开始对所述视频流解码的至少一个解码开始位置;以及控制所述视频流的解码,从而从所述解码开始位置开始。
12.如权利要求11的解码方法,还包括如下步骤从所述视频流中提取所述帧位置信息;以及从所述视频流中提取所述单元区域位置信息。
13.如权利要求11的解码方法,还包括控制从不同于所述视频流文件的文件中获取所述帧位置信息和所述单元区域位置信息的步骤。
14.如权利要求11的解码方法,其中以MPEG标准对所述视频流编码;以及所述至少一个单元区域是片。
15.如权利要求11的解码方法,其中在所述检测步骤,基于所述帧位置信息和所述单元区域位置信息,检测相应于执行所述视频流的并行解码的多个解码装置的解码开始位置;以及在所述解码控制步骤,控制所述视频流的解码,从而所述多个解码装置开始在所述解码开始位置处并行解码。
16.如权利要求15的解码方法,还包括设置划分区域的步骤,通过以所述多个解码装置的数目划分相应于所述视频流的一帧内的图像的区域获得所述划分区域,并且每个划分区域包括所述单元区域,其中,在所述解码控制步骤,控制所述视频流的解码,从而由所述多个解码装置并行地解码所述帧内的所述划分区域。
17.如权利要求11的解码方法,其中所述帧位置信息包括表示所述帧相对于所述视频流的起始处的相对位置的信息;以及所述单元区域位置信息包括表示所述至少一个单元区域相对于所述视频流的起始处的相对位置的信息。
18.如权利要求17的解码方法,其中所述帧位置信息包括表示分配给所述帧的号码以及所述帧的数据长度的信息;以及所述单元区域位置信息包括表示分配给所述帧内的所述至少一个单元区域的号码以及所述至少一个单元区域的数据长度的信息。
19.如权利要求11的解码方法,其中所述帧位置信息包括表示所述帧被记录在数据记录介质上的位置的信息;以及所述单元区域位置信息包括表示所述至少一个单元区域被记录在所述数据记录介质上的位置的信息。
20.如权利要求19的解码方法,其中所述帧位置信息包括表示分配给所述帧的号码以及所述帧的数据长度的信息;以及所述单元区域位置信息包括表示分配给所述帧内的所述至少一个单元区域的号码以及所述至少一个单元区域的数据长度的信息。
21.一种用于解码视频流的解码装置,包括检测装置,它基于表示帧在所述视频流中的位置的帧位置信息和表示用作在解码所述视频流时使用的处理单元的单元区域的位置的单元区域位置信息,检测开始对所述视频流解码的解码开始位置;以及解码控制装置,它控制所述视频流的解码,从而在所述解码开始位置开始。
22.一种解码控制方法,包括如下步骤设置划分区域,通过以第一解码装置的数目划分相应于视频流图像的区域获得所述划分区域,并且每个划分区域包括在第一解码装置和第二解码装置对所述视频流解码时被用作第一解码装置和第二解码装置的处理单元的多个单元区域;执行前半部分控制,其中控制第一解码装置,从而与所述解码装置中的另一个解码装置的解码并行地执行对各个划分区域内的单元区域的直到预定中间阶段的解码,所述解码被分配给各个解码装置;以及执行后半部分控制,其中控制第二解码装置,从而与第一解码装置的解码并行地执行被解码到所述预定中间阶段的所述单元区域的剩余阶段的解码。
23.如权利要求22的解码控制方法,其中以MPEG标准对所述视频流编码。
24.如权利要求22的解码控制方法,其中在执行前半部分控制的步骤中,控制第一解码装置以便执行包括片的变长解码和反向量化的解码;以及在执行后半部分控制的步骤中,控制第二解码装置以便对所述片执行包括反向离散余弦变换处理的解码。
25.如权利要求23的解码控制方法,其中所述单元区域是片。
26.如权利要求22的解码控制方法,其中由不同于第一解码装置和第二解码装置的硬件实现所述解码控制方法。
27.如权利要求25的解码控制方法,其中由图像处理单元实现第二解码装置。
28.如权利要求22的解码控制方法,其中在执行后半部分控制的步骤中,给每个第二解码装置提供指示所述单元区域的解码完成到哪个阶段的信息。
29.一种解码控制装置,包括设置划分区域的设置装置,通过以第一解码装置的数目划分相应于视频流图像的区域获得所述划分区域,每个划分区域包括在第一解码装置和第二解码装置对所述视频流解码时被用作第一解码装置和第二解码装置的处理单元的多个单元区域;以及解码控制装置,它控制第一解码装置,从而与所述解码装置中的另一个解码装置的解码并行地执行对各个划分区域内的单元区域的直到预定中间阶段的解码,所述解码被分配给各个解码装置,并且控制第二解码装置,从而与第一解码装置的解码并行地执行被解码到所述预定中间阶段的所述单元区域的剩余阶段的解码。
30.一种编码装置,包括对视频流编码的编码器;以及记录控制器,它控制帧位置信息和单元区域位置信息的记录,所述帧位置信息表示帧在所述视频流中的位置,所述单元区域位置信息表示用作在解码所述视频流时使用的处理单元的单元区域的位置。
31.一种用于解码视频流的解码装置,包括检测器,它基于表示帧在所述视频流中的位置的帧位置信息和表示用作在解码所述视频流时使用的处理单元的单元区域的位置的单元区域位置信息,检测开始对所述视频流解码的解码开始位置;以及解码控制器,它控制所述视频流的解码,从而在所述解码开始位置开始。
32.一种解码控制装置,包括设置划分区域的设置部分,通过以第一解码器的数目划分相应于视频流的图像的区域获得所述划分区域,每个划分区域包括在第一解码装置和第二解码装置对所述视频流解码时被用作第一解码器和第二解码器的处理单元的多个单元区域;以及解码控制部分,它控制第一解码器,从而与所述解码器中的另一个解码器的解码并行地执行对各个划分区域内的单元区域的直到预定中间阶段的解码,所述解码被分配给各个解码器,并且控制第二解码器,从而与第一解码器的解码并行地执行被解码到所述预定中间阶段的所述单元区域的剩余阶段的解码。
全文摘要
一种编码方法,包括控制表示帧在视频流中的位置的帧位置信息的记录,和控制表示用作在解码所述视频流时使用的处理单元的单元区域的位置的单元区域位置信息的记录。
文档编号H04N7/24GK1848942SQ20061007540
公开日2006年10月18日 申请日期2006年4月14日 优先权日2005年4月15日
发明者柴田三代子, 曾志芳, 荻窪纯一, 志潟太郎 申请人:索尼株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1