图像解码装置、图像解码方法、图像编码装置以及图像编码方法

文档序号:7847420阅读:203来源:国知局
专利名称:图像解码装置、图像解码方法、图像编码装置以及图像编码方法
技术领域
本发明,涉及对图像数据被编码后的编码流进行解码的图像解码装置以及图像解码方法,并且涉及将图像数据编码为编码流的图像编码装置以及图像编码方法,尤其涉及并行执行解码以及编码的图像解码装置、图像解码方法、图像编码装置以及图像编码方法。
背景技术
对运动图像进行编码的图像编码装置,将构成运动图像的各个图片划分为宏块, 按每个宏块进行编码。而且,图像编码装置,生成示出编码后的运动图像的编码流。图44是示出被编码的图片的结构的图。图片被划分为由16X16像素构成的宏块,并被编码。在此,由该图片中包含的多个宏块构成片(slice),由多个片构成图片。并且,将具有由从图片的左端到右端为止的水平方向上排列的多个宏块构成的一个列的构成单位,称为宏块行(MB行)。图45是示出编码流的结构的图。如图45的(a)示出,编码流被构成为阶层化,包含头部和按编码顺序排列的多个图片。而且,例如,所述的头部中包含为了对由多个图片构成的序列进行解码而被参考的序列参数集(SPS)。并且,如图45的(b)示出,该编码后的图片被构成为,包含头部和多个片, 如图45的(c)示出,片被构成为,包含头部和多个宏块(MB)。而且,例如,位于图45的(b) 示出的图片的开头的头部中包含为了对该图片进行解码而被参考的图像参数集(PPS)。图46是示出以往的图像解码装置的结构的图。图像解码装置1300具备存储器1310以及解码引擎1320。存储器1310具备流缓冲器1311,具有用于存储编码流的区域;以及帧存储器1312,具有用于存储从解码引擎 1320输出的解码图像数据的区域。图像解码装置1300,若从开头侧依次获得编码流中包含的宏块以及图片等的编码图像数据,则将该编码图像数据保存到流缓冲器1311。解码引擎1320,按照解码顺序从该流缓冲器1311依次读出编码图像数据来进行解码,将通过该解码而生成的解码图像数据保存到帧存储器1312。并且,解码引擎1320,在进行解码时,参考已保存在帧存储器1312的解码图像数据,对编码图像数据进行解码。而且,保存在帧存储器1312的解码图像数据,按显示顺序输出到显示装置,并被显不。图47是示出解码引擎1320的结构的图。解码引擎1320具备熵解码部1321、逆变换部1322、加法器1323、解块滤波器 1324、运动补偿部1325、加权预测部1326、画面内预测部1327、以及开关13观。熵解码部1321,对编码图像数据进行熵解码来生成示出量化值的量化数据,并输出到逆变换部1322。逆变换部1322,对该量化数据进行反量化以及逆正交变换等,从而将量化数据变换为差分图像数据。
加法器1323,对从逆变换部1322输出的差分图像数据、与经由开关13 从加权预测部13 或画面内预测部1327输出的预测图像数据进行加法运算,从而生成解码图像数据。解块滤波器1324,除去由加法器1323生成的解码图像数据中包含的编码失真,将除去了编码失真的解码图像数据保存到帧存储器1312。运动补偿部1325,读出保存在帧存储器1312的解码图像数据来进行运动补偿,从而生成预测图像数据,并将该预测图像数据输出到加权预测部13沈。加权预测部13 ,对从运动补偿部1325输出的预测图像数据进行加权,并输出到开关13沘。画面内预测部1327,进行画面内预测。也就是说,画面内预测部1327,利用由加法器1323生成的解码图像数据进行画面内预测,从而生成预测图像数据,并输出到开关 1328 ο开关13 ,在从逆变换部1322输出的差分图像数据由画面内预测生成的情况下, 将从画面内预测部1327输出的预测图像数据输出到加法器1323。并且,开关13 ,在从逆变换部1322输出的差分图像数据由画面间预测生成的情况下,将从加权预测部13 输出的预测图像数据输出到加法器1323。另外,近些年,图像的高精细化以及高帧率化进展了。也就是说,目前为止,进行了 HD(High Definition:高清晰度)的图像的编码以及解码,但是,将要进行比该图像更高的精细化以及帧率化。具体而言,正在研究以所谓41^业分辨率的运动图像的实用化。图48是用于说明HD以及4k2k的说明图。对于HD的编码流,以地面数字广播或BS数字广播等分发,以30帧/秒的帧率来, 解码并显示分辨率为“ 1920 X 1080像素”的图片。对于的编码流,预定从2011年起以高度BS数字广播来试验性地分发,以60帧/秒的帧率来,解码并显示分辨率为“3840X2160 像素”的图片。也就是说,对于,在纵方向以及横方向分别具有HD的二倍的分辨率,并且具有二倍的帧率。进而,将要研究在纵方向以及横方向分别被高分辨率化为的二倍的的图像(7680 X 4320像素)的编码以及解码。若这些图像的高精细化以及高帧率化进展了,则导致图像解码装置的解码引擎的处理负荷的增大。例如,图46示出的图像解码装置1300的解码引擎1320,在对的编码流进行解码的情况下,需要实际上困难的IGHz以上的工作频率。于是,正在研究解码的并行处理。图49是示出执行解码的并行处理的图像解码装置的结构的一个例子的方框图。图像解码装置1400具备存储器1310以及解码器1420。解码器1420具备具有与图46以及图47示出的解码引擎1320同样的功能的N个解码引擎1421(例如N = 4)。N 个解码引擎1421(第一解码引擎1421至第N解码引擎1421)的每一个,从保存在流缓冲器 1311的编码流中提取自己将要处理的部分,对该提取的部分进行解码,并输出到帧存储器 1312。图50A以及图50B是用于说明解码的并行处理的一个例子的说明图。
例如,图像解码装置1400,获得由四个区域编码流构成的编码流,并保存到流缓冲器1311。这些四个区域编码流的每一个是独立的流,如图50A示出,也是示出一个画面被四等分后的一个区域的运动图像的流。图像解码装置1400的四个解码引擎1421 (例如N = 4)的每一个,从流缓冲器1311中提取自己将要处理的区域编码流来进行解码,在与该区域编码流相对应的区域显示运动图像。或者,图像解码装置1400,获得包含由四个片构成的图片的编码流,并保存到流缓冲器1311。如图50B示出,在纵方向将图片四等分,从而生成四个片。图像解码装置1400 的四个解码引擎1421(例如N = 4)的每一个,从流缓冲器1311中提取自己将要处理的片来进行解码,在与该片相对应的区域显示运动图像。然而,如图50A示出,在将一个编码流作为四个区域编码流来生成,并对它们进行解码的情况下,需要限制运动图像的编码方法。也就是说,需要变更系统整体,其负担是很大的。并且,如图50B示出,在将一个图片四等分,且将划分后的各个部分作为片来编码并解码的情况下,也需要限制运动图像的编码方法。具体而言,在作为运动图像的编码以及解码的标准的MPEG-2(M0ving Picture Experts Group phase 2)中,在MB行的边界,片一定被分离。并且,在H. ^4/AVC中,设定在图片的片的大小或位置是任意的,也有在一个图片仅设定一个片的情况。因此,如图50B 示出,若唯一地设定片的位置以及大小,则需要变更数字广播系统的运用标准等系统整体, 其负担是很大的。于是,正在研究不限制或变更这样的运用标准,而对示出根据该标准编码后的运动图像的编码流并行进行解码的图像解码装置。例如,该图像解码装置,按每个片,分离基于MPEG-2生成的编码流的图片,并行执行各个片的解码处理。但是,在该图像解码装置中,不能适当地执行的解码的并行处理。也就是说,在该图像解码装置中,按每个片,划分图片,并行执行多个片的解码,因此,针对像H. 264/AVC的编码流那样任意设定了片的大小或位置的编码流,不能适当地执行解码的并行处理。换而言之,在图像解码装置具备的多个解码引擎的每一个发生负荷的偏差等,不能执行有效地利用了并行处理的解码。例如,在由一个片构成一个图片的情况下,不能划分该图片,而需要由一个解码弓I擎执行该图片整体的解码。于是,提出了一种图像解码装置,对基于H. ^4/AVC生成的编码流进行可变长解码处理,按每个MB行分离由可变长解码处理获得的图片,并行执行各个MB行的解码处理 (例如,参照专利文献1)。图51是用于说明专利文献1的图像解码装置的解码处理的说明图。图像解码装置的第一解码引擎,对图片中的第零行的MB行进行解码;第二个解码引擎,对图片中的第一行的MB行进行解码;第三个解码引擎,对图片中的第二行的MB行进行解码。并且,各个解码引擎,从MB行的左端向右端,对宏块依次进行解码。在此,在宏块的解码中,在解码对象的宏块与从该解码对象的宏块看左、左上、上、以及右上的宏块之间存在依赖关系。也就是说,各个解码引擎,在对宏块进行解码时,需要通过从该解码对象的宏块看左、左上、上、以及右上的宏块的解码而得到的信息。因此,各个解码引擎,这些宏块
9的解码结束后,开始该解码对象的宏块的解码。而且,各个解码引擎,在左、左上、上、以及右上的宏块中的某个不存在的情况下,在该宏块以外的宏块的解码结束后,开始该解码对象宏块的解码。也就是说,图像解码装置并行执行位于日本的象棋的桂马走的位置的宏块的解码。但是,在所述专利文献1的图像解码装置中,会有划分H. ^4/AVC的图片中包含的片的情况。在此情况下,需要使解码引擎的每一个包含用于将划分后的片的一部分适当地识别为片的功能,因此,图像解码装置的结构变得复杂。于是,提出了以简单的结构来适当地执行并行处理的图像解码装置(例如,参照专利文献2)。图52是示出所述专利文献2的图像解码装置的结构的方框图。所述专利文献2的图像解码装置1100具备存储器1150,具有流缓冲器1151、划分流缓冲器1152以及帧存储器1153 ;解码器1110,具有流划分部1130以及N个解码引擎 1120。流划分部1130,按流缓冲器1151中积蓄的编码流中包含的每个编码图片,将该编码图片划分为多个宏块行,将多个宏块行的每一个分配到作为生成对象的N个(N为2以上的整数)划分流之中的某个划分流的一部分,从而生成N个划分流。N个解码引擎1120,从流划分部1130通过划分流缓冲器1152提取N个划分流,对N个划分流的每一个并行进行解码。并且,流划分部1130,在生成N个划分流时,在编码图片中包含的片被划分为多个片部分而被分配到多个划分流时,按每个划分流,将由被分配到划分流的至少一个片部分构成的片部分群重新构成为新的片。据此,编码图片被划分为多个宏块行,多个宏块行的每一个,被分配到N个解码引擎1120并被解码,以作为划分流的一部分,因此,能够使由N个解码引擎1120的解码处理的负担均等,能够适当地执行解码的并行处理。例如,即使在H. 264/AVC的编码图片由一个片构成的情况下,由于该编码图片被划分为多个宏块行,因此,能够将该一个片的解码,不由一个解码引擎1120负担,而由N个解码引擎1120均等负担。在此,存在以下的情况,S卩,若编码图片被划分为多个宏块行,则跨越多个宏块行的片被划分为多个片部分,这样的片部分被分配到不同的划分流。也就是说,一个划分流中,不包含编码图片的片整体,而包含作为该片的断片的片部分的一个以上集合而构成的片部分群。并且,在这样的片部分群中,会有不包含表示其开头的头部、以及表示其末端的末端信息的情况。于是,在所述专利文献2的图像解码装置1100中,由于将该片部分群重新构成为新的片,对包含该片部分群的划分流进行解码的解码引擎1120,不需要用于识别该片部分群来适当地进行解码的特别的处理,而能够将片部分群简单地识别为新的片来适当地进行解码。也就是说,在所述专利文献2的图像解码装置1100中,不需要在N个解码引擎1120 的每一个设置进行特别的处理的功能以及结构,因此,能够将以往方式的解码电路挪用于对划分流进行解码的解码引擎1120,能够使图像解码装置的结构整体变得简单。另外,在所述专利文献1的图像解码装置中存在的问题是,虽然在宏块的解码中进行并行化,但是在可变长代码的解码处理中不进行并行化,因此,在性能的提高的方面有限制。于是,也提出了进行变长代码的解码处理的并行化的图像解码装置(例如,参照专利文献3)。专利文献3的图像解码装置,并行进行对编码流中包含的多个图片或片的可变长解码处理,将通过可变长解码处理得到的中间数据保存到中间数据缓冲器。而且,从中间数据缓冲器所保存的中间数据中提取图片,利用多个图像解码处理部,以MB行为单位对图片并行进行解码处理。(现有技术文献)(专利文献)专利文献1 (日本)特开2006-U9284号公报专利文献2 国际公开第2010/041472号专利文献3 (日本)特开2008-670 号公报
发明概要发明要解决的问题然而,在所述专利文献2的图像解码装置1100中,存在不能充分提高解码的处理速度的问题。也就是说,在编码流的数据量大的情况下,通过增加解码引擎1120的数量,增加并行处理的数量,从而能够提高处理速度,但是,对于流划分部1130,不能增加其数量,因此不能提高处理速度。于是,在所述专利文献2的图像解码装置1100中,也能够考虑,像所述专利文献3 的图像解码装置那样,针对编码流中包含的多个图片或片,并行进行N个划分流的生成。但是,并行进行生成N个划分流的处理的情况下,流划分部1130需要,用于使N个解码引擎1120识别将要并行解码的划分流的处理以及结构。进而,N个解码引擎1120需要,用于找出将要并行解码的划分流的处理以及结构。因此,针对所述专利文献2的图像解码装置1100的各个构成要素,需要变更处理以及结构,因此,图像解码装置的结构整体变得复杂。

发明内容
于是,鉴于所述的问题,本发明的目的在于提供,以简单的结构来适当地执行解码的并行处理的图像解码装置以及图像解码方法。并且,还目的在于提供,与这样的装置以及方法相对应的图像编码装置以及图像编码方法。用于解决问题的手段为了实现所述的目的,本发明的实施方案之一涉及的图像解码装置,对图像数据被编码后的编码流进行解码,所述图像解码装置包括第一划分控制部,指定所述编码流中包含的处理对象区域;M个流划分部,每当由所述第一划分控制部指定所述处理对象区域时,针对由所述第一划分控制部指定的M个处理对象区域并行执行流划分处理,从而生成 MXN个划分流,所述流划分处理是指从所述处理对象区域生成N个划分流的至少一部分的处理,其中,N为2以上的整数,M为2以上的整数;第二划分控制部,按由所述第一划分控制部指定的每个处理对象区域,根据该处理对象区域的所述编码流内的配置,从由所述M个流划分部生成的MXN个划分流中选择至少一个划分流的一部分;以及N个解码部,每当由所述第二划分控制部选择至少一个划分流的一部分时,对包含该至少一个划分流的一部分的、N个划分流的每一个的一部分并行进行解码,所述M个流划分部的每一个,通过将所述处理对象区域划分为多个构成单位,将多个所述构成单位的每一个,分配到作为生成对象的N个划分流中的某个的一部分,从而执行所述流划分处理,在通过将所述处理对象区域划分为多个构成单位,从而该处理对象区域中包含的片被划分为多个片部分后被分配到多个划分流时,按每个划分流,将由被分配到该划分流的至少一个片部分构成的片部分群重新构成为新的片。据此,对M个处理对象区域(例如,片或图片等)并行执行流划分处理。因此,在编码流的数据量大的情况下,增加解码部的数量,增加并行处理的数量,从而能够提高处理速度,并且,对于流划分部,也能够增加其数量,能够提高处理速度。并且,在本发明的实施方案之一涉及的图像解码装置中,针对M个流划分部,指定 M个处理对象区域。也就是说,将处理对象区域划分为多个构成单位(例如,宏块行)的流划分处理,被分配到M个流划分部的每一个。其结果为,不能将编码流中包含的多个处理对象区域的顺序关系,在M个流划分部所生成的MXN个划分流中维持,不能将MXN个划分流照原样解码。因此,在本发明的实施方案之一涉及的图像解码装置中,按每个指定的处理对象区域,根据该处理对象区域的配置、即编码流中的处理对象区域的解码的顺序,从M个流划分部所生成的MXN个划分流中至少选择一个划分流的一部分。例如,若与处理对象区域相对应的N个划分流的每一个的一部分被保存在同一缓冲器(划分流缓冲器),则选择该缓冲器。而且,包含该选择的一部分的N个划分流的每一个的一部分被并行解码。因此,能够以正确的顺序关系将MXN个划分流解码。进而,在本发明的实施方案之一涉及的图像解码装置中,处理对象区域的指定、和划分流的一部分的选择,由与M个流划分部以及N个解码部不同的构成要素构成要素一元性地执行。因此,如上所述以正确的顺序关系将MXN个划分流解码,因此,不需要对M个流划分部以及N个解码部等的各个构成要素设置特别的处理以及结构,而以简单的结构能够适当地执行解码的并行处理。并且,所述M个流划分部的每一个,与被指定的处理对象区域无关,分析所述编码流中包含的各个第一头信息,根据该分析结果生成所述N个划分流。据此,在流划分部的每一个,编码流中包含的例如SPS、PPS以及片头等的各个第一头信息被分析,因此,能够根据编码流中包含的各个处理对象区域以及各个第一头信息的参考关系,适当地生成N个划分流。并且,所述M个流划分部中的某一个流划分部,生成包含有被包含在所述编码流中的第二头信息的N个划分流,所述M个流划分部中的其他的所有的流划分部,生成不包含所述第二头信息的N个划分流。据此,仅一个划分流中包含例如SPS或PPS等的第二头信息,其他的N-I个划分流中不包含该第二头信息,因此,能够防止多个第二头信息由N个解码部重复处理,能够避免因第二头信息的重复解码而引起的解码部的处理性能降低。并且,所述第二划分控制部,进一步,生成表示选择出的划分流的一部分的选择信息,并输出到所述N个解码部的每一个,所述N个解码部,对从所述第二划分控制部输出的所述选择信息所示的N个划分流的每一个的一部分并行进行解码。据此,N个解码部,能够利用选择信息,以正确的顺序关系,对N个划分流的每一个的一部分并行进行解码。并且,所述第二划分控制部,将包含选择出的划分流的一部分的数据的大小的所述选择信息,输出到所述N个解码部的每一个,所述N个解码部,根据从所述第二划分控制部输出的所述选择信息中包含的数据的大小,确定N个划分流的每一个的一部分,对这样的一部分并行进行解码。例如,所述第二划分控制部,输出将构成所述N个划分流的每一个的数据构成单位的数量、或比特量作为所述大小来包含的所述选择信息。据此,N个解码部,能够从N个划分流的每一个中,适当地识别将要并行解码的部分,来进行解码。并且,在选择信息表示数据构成单位(例如,H. 264/AVC的NAL单元)的数量的情况下,能够将该选择信息所示的内容变得简单。并且,所述第一划分控制部,进一步,按每个所述流划分部,判断由该流划分部执行的对一个处理对象区域的流划分处理是否已结束,在判断为已结束时,针对所述流划分处理已结束的流划分部优先指定新的处理对象区域。据此,在流划分部对一个处理对象区域的流划分处理结束的情况下,对新的处理对象区域的流划分处理被分配到该流划分部,因此,能够使M个流划分部的处理量均等。并且,所述N个解码部包括,第一解码部以及第二解码部,在所述第一解码部对所述N个划分流中的被分配到该第一解码部的划分流中包含的第一片部分进行解码,所述第二解码部对所述N个划分流中的被分配到该第二解码部的划分流中包含的第二片部分进行解码的情况下,并且,在所述第一片部分和所述第二片部分在空间上相邻了的情况下,在开始由所述第二解码部的所述第二片部分的解码之前,所述第一解码部开始所述第一片部分的解码,所述第二解码部,从所述第一解码部获得通过由所述第一解码部的所述第一片部分的解码而生成的相邻信息,利用所述相邻信息对所述第二片部分进行解码,或者,不利用所述相邻信息而对所述第二片部分进行解码据此,即使在划分流中包含的第一片部分与其他的划分流中包含的第二片部分相邻,却由第一解码部和第二解码部分别解码的情况下,由于从第一解码部向第二解码部传递相邻信息,因此,通过根据需要利用该相邻信息,从而也能够适当地解码其他的划分流中包含的第二片部分。并且,所述第一划分控制部,将所述编码流中包含的片、图片、或由多个图片构成的图片群指定为所述处理对象区域。据此,在片被指定为处理对象区域的情况下,处理对象区域、即流划分处理以最小粒度被分配到M个流划分部,因此,易于使M个流划分部的处理量均等。并且,在图片或图片群被指定为处理对象区域的情况下,处理对象区域、即流划分处理以比较大的粒度被分配到M个流划分部,因此,能够使由第一以及第二划分控制部的处理对象区域的指定、以及 N个划分流的选择的每一个所需要的处理负荷减轻。并且,所述N个解码部之中的第η个(η为1以上且N以下的整数)解码部,优选的是,对所述流划分部生成的所述N个划分流之中的第η个划分流进行解码。换而言之,解码部,优选的是,分别对从NXM个划分流之中的预定的M个划分流中依次被选择的划分流的一部分进行解码。其结果为,N个解码部的每一个,通过分别对由所述第二划分控制部依次被选择的划分流的一部分进行解码,从而对所述MXN个划分流之中的M个划分流进行解码。据此,N个解码部,能够仅对被分配到每一个的划分流进行解码。并且,所述流划分部也可以,通过跳读由所述第一划分控制部没有指定的处理对象区域,从而仅对被指定的处理对象区域进行流划分处理。据此,流划分部,不进行复杂的处理,也能够仅对被指定的处理对象区域进行处理。并且,所述头信息也可以是,图片层以上的头信息。据此,即使在处理对象区域比图片小的情况下,即,在流划分处理以比图片小的单位被分配的情况下,由所有的流划分部进行图片层以上的头信息的分析处理,因此,流划分部也能够适当地生成划分流。并且,本发明的实施方案之一涉及的图像编码装置,通过对图像数据进行编码,从而生成编码流,所述图像编码装置具备N个编码部,按所述图像数据中包含的每个图片, 对该图片中包含的多个构成单位并行进行编码,从而生成N个划分流,其中,N为2以上的整数;第一结合控制部,指定构成所述编码流的处理对象区域;M个流结合部,针对由所述第一结合控制部指定的M个所述处理对象区域并行执行结合处理,该结合处理是指,通过将N个划分流的每一个中包含的、与处理对象区域相对应的部分区域结合,从而生成作为所述处理对象区域的结合编码区域的处理,其中,M为2以上的整数;第二结合控制部,根据由所述第一结合控制部指定的M个处理对象区域的所述编码流内的配置,从由所述M个流结合部生成的M个结合编码区域中依次选择将要多路复用的结合编码区域;以及多路复用部,按照由所述第二结合控制部选择的顺序,将所述M个结合编码区域多路复用,从而生成所述编码流,所述M个流结合部的每一个,在进行所述结合处理时,在由编码后的多个所述构成单位构成所述部分区域的情况下,通过将所述部分区域划分为编码后的多个所述构成单位后重新组合,从而生成所述结合编码区域,在进行所述重新组合时,在所述图像数据中包含的片被划分并编码为多个片部分后被分配到所述N个划分流的情况下,在所述结合编码区域内,将由编码后的多个片部分构成的片部分群重新构成为新的片。据此,图片被划分为多个宏块行等的构成单位,多个宏块行的每一个被分配到N 个编码部被编码,因此,能够使由N个编码部的编码处理的负担均等,从而能够适当地执行编码的并行处理。例如,即使在以H. ^4/AVC形式由一个片构成编码图片的情况下,图片也被划分为多个宏块行,因此,能够将该一个片的编码,不由一个编码部负担,而由N个编码部均等负担。进而,结合处理(流结合处理),通过由第一结合控制部的处理对象区域的指定, 针对M个流结合部,以处理对象区域为单位被分配,因此,由M个流结合部能够并行进行该
结合处理。在此,有时,若图片被划分为多个宏块行并被编码,则跨越多个宏块行的片被划分为多个片部分,这些片部分依次被分配到划分流。也就是说,在各个划分流中,作为片的断片的片部分被分散。因此,如此分散的多个片部分,不具有图像数据内的前后关系。因此, 连续的多个宏块行具有由规定的代码字的依赖关系的情况下,分散的多个片部分不能保持其依赖关系,在此状况下,不能生成依据编码方式的编码流。因此,在本发明的实施方案之一涉及的图像编码装置中,在结合处理中,由于将作为该分散的多个片部分的集合的多个片部分群重新构成为新的片,因此能够使包含多个片部分群的结合编码区域(例如,片或图片等)成为依据编码方式的形式。并且,结合处理,若针对M个流结合部,以处理对象区域为单位被分配,由M个流结合部并行进行,则在通过并行化的结合处理而生成的M个结合编码区域(部分流),不能维持编码流中包含的多个处理对象区域的顺序关系,不能以正确的顺序将M个结合编码区域多路复用。
因此,在本发明的实施方案之一涉及的图像编码装置中,按指定的每个处理对象区域,根据该处理对象区域的配置、即编码流中的处理对象区域的编码的顺序,从由M个流结合部生成的M个结合编码区域中,依次选择将要多路复用的结合编码区域。而且,按照该选择的顺序,M个结合编码区域被多路复用。因此,能够以正确的顺序关系,将M个结合编码区域多路复用。进而,在本发明的实施方案之一涉及的图像编码装置中,处理对象区域的指定、和将要多路复用的结合编码区域的选择,由与M个流结合部以及N个编码部不同的构成要素一元性地执行。因此,如上所述以正确的顺序关系将M个结合编码区域多路复用,因此,针对M个流结合部以及N个编码部等的各个构成要素,不需要特别的处理以及结构,而以简单的结构能够适当地执行编码的并行处理。并且,所述第二结合控制部,进一步,每当选择将要多路复用的结合编码区域时, 生成表示该结合编码区域的选择信息,并输出到所述多路复用部,所述多路复用部,每当从所述第二结合控制部获得所述选择信息时,将该选择信息所示的结合编码区域多路复用为所述编码流。据此,多路复用部,能够利用选择信息,以正确的顺序关系,将M个结合编码区域多路复用。并且,所述第二结合控制部,将包含选择出的结合编码区域的数据的大小的所述选择信息输出到所述多路复用部,所述多路复用部,将所述选择信息中包含的大小的结合编码区域多路复用为所述编码流。据此,在通过反复进行由第一结合控制部的处理对象区域的指定,从而由流结合部依次生成结合编码区域的情况下,多路复用部,能够从这样的生成的多个结合编码区域中,适当地识别将要多路复用的结合编码区域,来进行多路复用。例如,所述第二结合控制部,输出将构成结合编码区域的数据构成单位的数量、或比特量作为所述大小来包含的所述选择信息。据此,在选择信息表示数据构成单位(例如, H. 264/AVC的NAL单元)的数量的情况下,能够将该选择信息所示的内容变得简单。并且,所述第一结合控制部,进一步,按每个所述流结合部,判断由该流结合部执行的结合处理是否已结束,在判断为已结束时,针对所述结合处理已结束的流结合部优选指定新的处理对象区域。据此,针对没有进行结合处理的流结合部,分配新的结合处理,因此,能够使M个流结合部的处理量均等。并且,所述N个编码部包括,第一编码部以及第二编码部,在所述第一编码部对所述N个构成单位中的被分配到该第一编码部的第一构成单位进行编码,所述第二编码部对所述N个构成单位中的被分配到该第二编码部的第二构成单位进行编码的情况下,并且, 在所述第一构成单位和所述第二构成单位在所述图片内相邻了的情况下,所述第一编码部,在由所述第二编码部的所述第二构成单位的编码开始之前,开始所述第一构成单位的编码,所述第二编码部,从所述第一编码部获得通过由所述第一编码部的所述第一构成单位的编码而生成的相邻信息,利用所述相邻信息对所述第二构成单位进行编码,或者,不利用所述相邻信息而对所述第二构成单位进行编码。据此,即使在处理对象区域被划分为多个宏块行等的构成单位,并第一以及第二构成单位的每一个由第一以及第二编码部并行编码的情况下,由于从第一编码部向第二编码部传递相邻信息,因此,通过根据需要利用该相邻信息,从而也能够适当地进行第二构成单位的编码。并且,所述流结合部也可以,通过跳读N个划分流的每一个中包含的、与由所述第一结合控制部没有指定的处理对象区域相对应的部分区域,从而仅对被指定的处理对象区域相对应的部分区域进行结合处理。据此,流结合部,不进行复杂的处理,也能够仅对与被指定的处理对象区域相对应的部分区域进行处理。并且,所述处理对象区域也可以是片。据此,处理对象区域、即结合处理以最小粒度被分配到M个流结合部,因此,易于使M个流结合部的处理量均等。并且,所述处理对象区域也可以是图片或由多个图片构成的图片群。据此,处理对象区域、即结合处理以比较大的粒度被分配到M个流结合部,因此,能够使由第一以及第二结合控制部的处理对象区域的指定、以及结合编码区域的选择的每一个所需要的处理负荷减轻。而且,本发明,除了可以以这些图像解码装置以及图像编码装置来实现以外,也可以以其方法以及程序、保存其程序的存储介质、集成电路来实现。发明效果本发明的图像解码装置以及图像编码装置具有,能够以简单的结构来适当地执行解码以及编码的并行处理的作用效果。


图1是示出本发明的实施例1的图像解码装置的结构的方框图。图2A是示出本发明的实施例1的图片不由MBAFF构成的情况下的解码的顺序的图。图2B是示出本发明的实施例1的图片由MBAFF构成的情况下的解码的顺序的图。图3是用于说明本发明的实施例1的片头的插入处理的说明图。图4是用于说明本发明的实施例1的MB地址信息的更新处理的说明图。图5是用于说明本发明的实施例1的片末端处理的说明图。图6A是示出本发明的实施例1的编码流的图。图6B是示出本发明的实施例1的由流划分控制部的片的分配处理的具体例子的说明图。图7是示出本发明的实施例1的进行由流划分控制部的片的分配以及流划分处理时的划分流缓冲器的状态的图。图8是示出本发明的实施例1的进行由流划分控制部的片的分配以及流划分处理时的选择信息的形式的一个例子的图。图9是示出本发明的实施例1的图像解码装置的工作整体的流程图。图10是示出本发明的实施例1的流划分部的结构的方框图。图11是用于说明本发明的实施例1的片头插入部以及片数据处理部的工作的说明图。图12是示出本发明的实施例1的片头插入部的结构的方框图。图13是示出本发明的实施例1的分配到划分流缓冲器的第一区域至第四区域分
16配的MB行以及片头的图。图14A是示出本发明的实施例1的设定片末端信息的位置的图。图14B是示出本发明的实施例1的设定片末端信息的位置的图。图15是示出本发明的实施例1的划分点检测部的工作的流程图。图16A是用于说明本发明的实施例1的MB跳过运行信息的修正处理的说明图。图16B是用于说明本发明的实施例1的MB跳过运行信息的修正处理的说明图。图17是示出本发明的实施例1的跳过运行修正部的结构的方框图。图18是示出本发明的实施例1的由跳过运行修正部的MB跳过运行信息的修正工作的流程图。图19A是用于说明本发明的实施例1的QP变化量的修正处理的说明图。图19B是用于说明本发明的实施例1的QP变化量的修正处理的说明图。图20是用于说明本发明的实施例1的QP变化量的累积的说明图。图21是示出本发明的实施例1的由QP德尔塔修正部的QP变化量的修正处理的流程图。图22A是用于说明本发明的实施例1的高分辨率解码的说明图。图22B是用于说明本发明的实施例1的高速解码的说明图。图22C是用于说明本发明的实施例1的多通道解码的说明图。图23是示出本发明的实施例2的图像解码装置的结构的方框图。图M是示出本发明的实施例2的流划分部的结构的方框图。图25是用于说明本发明的实施例2的MB跳过运行信息的修正处理以及QP变化量的插入处理的说明图。图沈是示出本发明的实施例2的跳过运行修正部的结构的方框图。图27是示出本发明的实施例2的由跳过运行修正部的MB跳过运行信息的修正工作的流程图。图28是示出本发明的实施例2的QP德尔塔插入部的累积QP变化量的插入处理的流程图。图四是示出本发明的实施例3的图像编码装置的结构的方框图。图30A是示出本发明的实施例3的图片不由MBAFF构成的情况下的编码的顺序的图。图30B是示出本发明的实施例3的图片由MBAFF构成的情况下的编码的顺序的图。图31是用于说明本发明的实施例3的片头的插入处理以及片末端处理的说明图。图32A是示出本发明的实施例3的划分流的图。图32B是示出本发明的实施例3的由流结合控制部的片的分配处理的具体例子的说明图。图33是示出本发明的实施例3的进行由流结合控制部的片的分配以及流划分处理时的部分流缓冲器的状态的图。图34是示出本发明的实施例3的进行由流结合控制部的片的分配以及流划分处理时的选择信息的形式的一个例子的图。
图35是示出本发明的实施例3的流结合部的方框图。图36是用于说明本发明的实施例3的MB跳过运行信息的修正处理的说明图。图37A是用于说明本发明的实施例3的QP变化量的修正处理的说明图。图37B是用于说明本发明的实施例3的QP变化量的修正处理的说明图。图38A是示出本发明的实施例3的仅具备一个流结合部的图像编码装置的结构的方框图。图38B是示出本发明的实施例3的仅具备一个流结合部的图像编码装置的工作的流程图。图39是示出本发明涉及的图像解码装置以及图像编码装置的适用例子的图。图40是示出本发明涉及的图像解码装置的最小结构的方框图。图41是示出本发明涉及的图像解码装置的图像解码方法的流程图。图42是示出本发明涉及的图像编码装置的最小结构的方框图。图43是示出本发明涉及的图像编码装置的图像编码方法的流程图。图44是示出被编码的图片的结构的图。图45是示出编码流的结构的图。图46是示出以往的图像解码装置的结构的图。图47是示出以往的解码引擎的结构的图。图48是用于说明HD以及4k2k的说明图。图49是示出执行以往的解码并行处理的图像解码装置的结构的方框图。图50A是用于说明以往的解码并行处理的一个例子的说明图。图50B是用于说明以往的解码并行处理的一个例子的说明图。图51是用于说明以往的图像解码装置的解码处理的说明图。图52是示出具备以往的流划分部的图像解码装置的结构的方框图。
具体实施例方式以下,参照

本发明的实施例中的图像解码装置以及图像编码装置。(实施例1)图1是示出本发明的实施例1的图像解码装置的结构的方框图。本实施例的图像解码装置100是以简单的结构来适当地执行解码的并行处理的装置,其中,具备解码器110以及存储器150。存储器150具有用于存储输入到解码器110的数据、由解码器110生成的中间数据、以及由解码器110最终生成并输出的数据的区域。具体而言,存储器150具备流缓冲器151、M个划分流缓冲器(第一划分流缓冲器至第M划分流缓冲器)152、以及帧存储器153。流缓冲器151,保存由图像编码装置生成并发送了的编码流。M个划分流缓冲器 152,保存由解码器110生成的MXN个划分流,以作为所述的生成的中间数据。而且,各个划分流缓冲器152具有针对N个解码引擎120的每一个分配的区域。帧存储器153,保存由 N个解码引擎(解码部)120生成的N个划分解码图像数据,以作为所述的最终生成并输出的数据。而且,解码图像数据,被保存到帧存储器153,被读入到显示装置,并被显示为运动图像。解码器110,通过将保存在存储器150的流缓冲器151的编码流读出并解码,从而生成解码图像数据,将该解码图像数据保存到存储器150的帧存储器153。并且,该解码器 110具备M个流划分部(第一流划分部至第M流划分部)130、流划分控制部140、以及N个解码引擎(第一解码引擎至第N解码引擎)120。而且,在本实施例的解码引擎120,具有能够对两个通道的HD的图像(1920X1088 像素,60i)进行解码的处理能力。流划分控制部140,获得后述的模式信息,按照该模式信息,为了使M个流划分部 130的流划分处理的处理量均等,针对各个流划分部130的每一个,通知用于将流划分处理以规定的单位来分配的分配控制信息。而且,在后面说明流划分处理。本实施例中说明,流划分控制部140,将M个流划分部130的流划分处理,以片为单位来分配。也就是说,流划分控制部140,通过分配控制信息的通知,按编码流中包含的每个处理应对区域(片),使M个流划分部130中的某一个执行针对该处理对象区域的流划分处理。例如,分配控制信息表示,用于识别成为流划分处理的对象的片的片号码。换而言之,流划分控制部140,通过针对 M个流划分部130中的某一个,发送分配控制信息,从而针对该流划分部130,指定成为流划分处理的对象的处理对象区域。进而,流划分控制部140,根据将流划分处理以片为单位来分配到M个流划分部130的结果,针对N个解码引擎120通知选择信息,该选择信息表示从 M个划分流缓冲器152之中的哪个划分流缓冲器152要获得划分流。M个流划分部130的每一个,获得模式信息以及分配控制信息,按照该模式信息以及分配控制信息,从编码流提取将要处理的片(处理对象区域),将该片并行划分为N个划分流(第一划分流至第N划分流)。也就是说,本实施例的流划分部130,按编码流中包含的、流划分控制部140所分配的每个片,将该片划分为一个或多个MB行。而且,流划分部 130,将这些多个MB行的每一个,分配到作为生成对象的N个划分流之中的某个划分流的一部分,从而生成N个划分流。所述的流划分处理是指,如此,将片(处理对象区域)划分为多个MB行,并分配到N个划分流中的某个划分流的一部分的处理。并且,M个流划分部130, 通过并行执行该流划分处理,从而生成NXM个划分流。而且,MB行是具有由从图片的左端到右端的水平方向上排列的多个宏块构成的一个列的构成单位。并且,流划分部130,在图片不由MBAFF(Macroblock Adaptive Frame-Field)构成的情况下,将处理对象区域(片)划分为多个MB行,但是,在图片由 MBAFF构成的情况下,将两个MB行作为一个构成单位(以下,称为MB行组)来处理,将处理对象区域(片)划分为多个MB行组。换而言之,流划分部130,在图片由MBAFF构成的情况下,将处理对象区域(片)划分为多个MB行,将属于MB行组的两个MB行分别分配到相同的划分流的一部分。以下,以图片不由MBAFF构成的情况为前提来说明本发明,但是,在本发明中,在图片不由MBAFF构成时与图片由MBAFF构成时需要的处理不同的情况下,每次, 说明对MBAFF特有的处理。并且,在对MBAFF不需要其特有的处理的情况下,在以下的说明中,将MB行置换为MB行组,从而能够将其说明置换为在图片由MBAFF构成的情况下的本发明的说明。M个流划分部130的每一个,将如此划分的N个划分流,保存到M个划分流缓冲器 152之中的、与该流划分部130相对应的一个划分流缓冲器152。也就是说,第一流划分部130,将划分的N个划分流保存到第一划分流缓冲器152,第二流划分部130,将划分的N个划分流保存到第二划分流缓冲器152,第M流划分部130,将划分的N个划分流保存到第M 划分流缓冲器152。并且,M个流划分部130的每一个,将片作为规定的单位来处理,在将片划分为多个MB行时,若在编码流中的MB行紧前、或属于该MB行的两个宏块之间存在头部,则将该头部附随于该MB行,并分配到划分流的一部分。通过这些由流划分部130的按每个MB行的划分,图片中包含的跨越多个MB行而配置的片被划分。并且,流划分部130,在划分为N个划分流时,预先除去跨越N个划分流的每一个的宏块之间的可变长解码处理中的依赖关系。N个解码引擎120,获得模式信息以及选择信息,按照该模式信息以及选择信息, 分别将自己将要处理的划分流从M个划分流缓冲器152的某个读出,对读出的划分流并行执行解码,从而生成N个划分解码图像数据。例如,在根据N个流划分控制部140的选择信息,被通知为从第一划分流缓冲器 152获得划分流的情况下,第一解码引擎120,从第一划分流缓冲器152的分配到第一解码引擎120的区域读出第一划分流。同样,第二解码引擎120,从第一划分流缓冲器152的分配到第二解码引擎120的区域读出第二划分流,第三解码引擎120,从第一划分流缓冲器152 的分配到第三解码引擎120的区域读出第三划分流,第四解码引擎120,从第一划分流缓冲器152的分配到第四解码引擎120的区域读出第四划分流。而且,第一解码引擎120至第四解码引擎120,分别并行解码第一划分流至第四划分流。并且,例如,在根据流划分控制部140的选择信息,被通知为从第M划分流缓冲器 152获得划分流的情况下,第一解码引擎120,从第M划分流缓冲器152的分配到第一解码引擎120的区域读出第一划分流。同样,第二解码引擎120,将第二划分流从第M划分流缓冲器152的分配到第二解码引擎120的区域读出第二划分流,第三解码引擎120,从第M划分流缓冲器152的分配到第三解码引擎120的区域读出第三划分流,第四解码引擎120,从第M划分流缓冲器152的分配到第四解码引擎120的区域读出第四划分流。而且,第一解码引擎120至第四解码引擎120,分别并行解码第一划分流至第四划分流。并且,N个解码引擎120,在对划分流进行解码时,参考已保存在帧存储器153的解码图像数据,根据需要进行运动补偿,从而对划分流进行解码。进而,N个解码引擎120的每一个,在对划分流中包含的由画面内预测编码后的宏块进行解码时,从对位于该解码对象宏块的左上、上以及右上的宏块进行了解码的解码引擎120获得这些解码后的宏块的信息,以作为相邻MB信息。获得了该相邻MB信息的解码引擎120,利用该相邻MB信息,对解码对象宏块进行解码。并且,解码引擎120,例如,在进行解块滤波处理以及运动矢量预测处理的情况下,也与所述相同,获得位于处理对象的左上、 上以及右上的解码后的宏块的信息,以作为相邻MB信息,从而进行所述的处理。而且,本实施例中,为了使说明简化,以下,将N设为N = 4进行说明。并且,本实施例中,N(N = 4)个解码引擎120的每一个,若从解码对象的宏块看左、左上、上、以及右上的宏块的解码结束,则利用这些相邻MB信息,开始该解码对象的宏块的解码。其结果为,第一解码引擎120至第四解码引擎120的每一个,对位于各个MB行中的水平方向上的相互不同的位置的宏块并行进行解码。
图2A是示出在图片不由MBAFF构成的情况下的解码的顺序的图。在图片不由MBAFF构成的情况下,第一解码引擎120对第零MB行进行解码,第二解码引擎120对第一 MB行进行解码,第三解码引擎120对第二 MB行进行解码,第四解码引擎120对第三MB行进行解码。而且,第k(k为0以上的整数)MB行示出从图片的上端第k 的MB行,例如,第零MB行为从图片的上端第零的MB行。在此,在开始图片的解码时,首先,第一解码引擎120开始第零MB行的解码。其次, 若位于第零MB行的左端的两个宏块的解码完成,则第二解码引擎120开始第一 MB行的左端的宏块的解码。而且,若位于第一 MB行的左端的两个宏块的解码完成,则第三解码引擎 120开始第二 MB行的左端的宏块的解码。同样,若位于第二 MB行的左端的两个宏块的解码完成,则第四解码引擎120开始第三MB行的左端的宏块的解码。因此,第(k+1)MB行,与第kMB行相比,延迟两个宏块,从左端的宏块到右端的宏块为止被解码。图2B是示出在图片由MBAFF构成的情况下的解码的顺序的图。在图片由MBAFF构成的情况下,如上所述,MB行组是具有由从图片的左端到右端的水平方向上排列的多个宏块构成的两个列(MB行)的构成单位。MB行组,按上下的每两个宏块(宏块组),自适应地被帧/场编码。而且,对于宏块组,首先,上面的宏块被解码, 其次,下面的宏块被解码。在此情况下,也与图片不由MBAFF构成的情况相同,第一解码引擎120对第零MB行组进行解码,第二解码引擎120对第一 MB行组进行解码,第三解码引擎 120对第二 MB行组进行解码,第四解码引擎120对第三MB行组进行解码。而且,第k(k为 0以上的整数)MB行组示出由从图片的上端第k的两个MB行而成的构成单位,例如,第零 MB行组为由从图片的上端第零的两个MB行而成的构成单位。在此,在开始图片的解码时,首先,第一解码引擎120开始第零MB行组的解码。其次,若位于第零MB行组的左端的两个宏块组的解码完成,则第二解码引擎120开始第一 MB 行组的左上端的宏块的解码。而且,若位于第一 MB行组的左端的两个宏块组的解码完成, 则第三解码引擎120开始第二 MB行组的左上端的宏块的解码。同样,若位于第二 MB行组的左端的两个宏块组的解码完成,则第四解码引擎120开始第三MB行组的左上端的宏块的解码。因此,第(k+1) MB行组,与第kMB行组相比,延迟两个宏块组,从左端的宏块组到右端的宏块组为止被解码。而且,在图片不由MBAFF构成的情况、以及图片由MBAFF构成的情况的每一个情况下,第(k+l)MB行或第(k+1)MB行组,与第kMB行或第kMB行组相比,至少延迟两个宏块或两个宏块组而被解码即可。也就是说,也可以延迟三个宏块或三个宏块组以上而被解码。例如,在第(k+l)MB行或第(k+1)MB行组,与第kMB行或第kMB行组相比,延迟两个宏块或两个宏块组而被解码的情况下,能够使图片的解码所需要的时间最短,在延迟三个宏块或三个宏块组以上而被解码的情况下,按照该延迟的分量,图片的解码所需要的时间变长。所述的本实施例的图像解码装置100的特征是,重新构成由流划分部130的划分所生成的、由片的一个或多个部分(片部分)构成的片部分群,以作为新的一个片。片的重新构成包括片头的插入处理、片末端处理、MB地址信息的更新处理、跳过运行修正处理、以及QP德尔塔设定处理。并且,QP德尔塔设定处理包括QP德尔塔修正处理以及QP德尔塔插入处理。而且,本实施例中,说明QP德尔塔设定处理为QP德尔塔修正处理的情况。图3是用于说明片头的插入处理的说明图。例如,M个流划分部130,对图3的(a)示出的图片pi进行划分。而且,以下的说明中,将M个流划分部130的整体,称为流划分部群130a。如上所述,本实施例中,将作为由流划分控制部140的分配的单位的处理对象区域作为片来说明。因此,在图片pi由多个片构成的情况下,各个流划分部130对图片pi中包含的片进行划分。其结果为,作为M个流划分部130的整体的流划分部群130a,如下说明,对图片pi进行划分。而且,在作为由流划分控制部140的分配的单位的处理对象区域为图片的情况下,一个流划分部130,如下说明,对图片Pl进行划分。图片pl,由片A、片B以及片C构成,并且,由MB行Ll至L12构成。片A跨越MB行Ll至L7而被配置,片A具有片头ha、和从该片头ha连续被配置的多个宏块mba。片B跨越MB行L7至L8而被配置,片B具有片头lib、和从该片头连续被配置的多个宏块mbb。片C跨越MB行L9至L12而被配置,片C具有片头he、和从该片头he 连续被配置的多个宏块mbc。而且,片头中包含具有该片头的片的解码所需要的辅助信息。流划分部群130a,如图3的(b)示出,按每个MB行,对所述的图片ρ 1进行划分。 而且,流划分部群130a,从开头依次,将MB行Ll至L12的每一个分配到第一划分流至第四划分流的某个划分流的一部分。例如,流划分部群130a,将MB行Ll分配到第一划分流的一部分,将MB行L2分配到第二划分流的一部分,将MB行L3分配到第三划分流的一部分, 将MB行L4分配到第四划分流的一部分。而且,流划分部群130a,若向第四划分流的MB行的分配结束,则反复进行向第一划分流的MB行的分配。也就是说,流划分部群130a,将MB 行L5分配到第一划分流的一部分,将MB行L6分配到第二划分流的一部分,将MB行L7分配到第三划分流的一部分,将MB行L8分配到第四划分流的一部分。其结果为,第一划分流包含连续的MB行Li、L5、L9,第二划分流包含连续的MB行 L2、L6、L10,第三划分流包含连续的MB行L3、L7、L11,第四划分流包含连续的MB行L4、L8、 L12。而且,由MB行Ll至L6、和MB行L7的开头侧的六个宏块而成的集合、由MB行L7 的末端侧的十个宏块而成的集合、以及MB行L8至L12分别是构成片A至C的一部分的片部分。而且,在第一划分流中,由作为片A的片部分的MB行Li、L5构成片部分群(第一划分流中的片A)。并且,在第二划分流中,由作为片B的片部分的MB行L2、L6构成片部分群 (第二划分流中的片B)。在此,若仅将MB行单纯地分配到划分流,则会有不能使解码引擎120适当地识别划分流中包含的片的情况。例如,第一划分流中包含如上连续的MB行Li、L5、L9。在此情况下,MB行Li、L5 要被识别为片A,MB行L9要被识别为片C。为此,在第一划分流中要成为片A的开头的MB 行Ll的开头需要配置有片A的片头ha,在第一划分流中要成为片C的开头的MB行L9的开头需要配置有片C的片头he。在图3示出的例子中,片头ha、he分别预先被配置在MB行 LU L9的开头,因此,流划分部群130a,将MB行L1、L5、L9与片头ha、he —起分配到第一划分流即可。另一方面,第二划分流中包含如上连续的MB行L2、L6、L10。在此情况下,MB行L2、
22L6要被识别为片A,MB行LlO要被识别为片C。为此,在第二划分流中要成为片A的开头的 MB行L2的开头需要配置有片A的片头ha,在第二划分流中要成为片C的开头的MB行LlO 的开头需要配置有片C的片头he。于是,本实施例中的流划分部群130a,在将MB行分配到划分流的一部分时,根据需要将片头ha、hb、he复制,从而生成复制片头ha'、hb'、hc',并将它们插入到划分流。例如,流划分部群130a,将片头ha复制,从而生成三个复制片头ha',将该复制片头ha'插入到MB行L2、L3、L4紧前。进而,流划分部群130a,将片头Wd复制,从而生成一个复制片头hb',将该复制片头lib'插入到MB行L8紧前。进而,流划分部群130a,将片头 he复制,从而生成三个复制片头he‘,将该复制片头he'插入到MB行L10、L11、L12紧前。其结果为,在第二划分流中,在成为片A的开头的MB行L2紧前配置有将片A的片头ha复制而得到的复制片头ha',在成为片C的开头的MB行LlO紧前配置有将片C的片头he复制而得到的复制片头he'。据此,第二解码引擎120,根据复制片头ha'、hc',能够得到第二划分流的片A以及片C的每一个的解码所需要的参数。其次,说明MB地址信息的更新处理。流划分部群130a,在像所述那样将复制片头插入到划分流时,按照被插入的位置, 更新复制片头中包含的MB地址信息。也就是说,在构成编码流中包含的图片的各个片的片头中,包含用于确定该片的开头宏块的所述图片内的地址的MB地址信息“first_mb_in_slice”。因此,在将这些片头复制而生成的复制片头中,当初包含与复制源的片头的MB地址信息相同的MB地址信息。其结果为,若这些复制片头被插入到图片内的与复制源的片头不同的位置,则由该复制片头的MB地址信息确定的地址所指示的地址错误。也就是说,由复制片头的MB地址信息确定的地址,在划分流中,不指示具有该复制片头的片的开头宏块的所述图片内的地址,而指示具有复制源的片头的片的开头宏块的地址。例如,在图片pi的片A的片头ha中,包含示出该片A的开头宏块(MB行Ll的开头宏块)的图片Pl内的地址的MB地址信息。在将这些片头ha复制而生成的复制片头ha' 中,当初包含用于确定MB行Ll的开头宏块的图片pi内的地址的MB地址信息。其结果为, 若这些复制片头ha'被插入到MB行L2紧前,则该复制片头ha'的MB地址信息所确定的地址,不指示第二划分流中的具有该复制片头ha'的片A的开头宏块(MB行L2的开头宏块)的图片Pl内的地址,而指示MB行Ll的开头宏块的地址。于是,如上所述,本实施例的流划分部群130a,更新复制片头中包含的MB地址信
肩、ο图4是用于说明MB地址信息的更新处理的说明图。流划分部130,首先,根据编码流中包含的SPS(序列参数集),获得作为与图片的水平方向的宏块的数量有关的信息的“pic_Width_in_mbS_minuSl”。进而,流划分部130,利用复制源的片头中包含的MB地址信息“ f irst_mb_in_ slice”,计算具有该复制源的片头的片的开头宏块的地址。其次,流划分部130,根据计算出的开头宏块的地址,计算示出该开头宏块位于图片内的第几行的MB行的值“mbposv”。而且,值“mbposv”是0以上的整数。而且,流划分部130,在紧前被插入复制片头的MB行,从配置有复制源的片头的MB行看远离 η 行时,通过“first_mb_in_slice[n] ” = ( “mbposv”+n) X ( "pic_width_in_ mbS_minuSl”+l)计算复制片头的MB地址信息。而且,在图片由MBAFF构成的情况下,流划分部130,通过‘‘f irst_mb_in_ slice [η] “ = ( ‘‘mbposv”/2+η) X ( ‘‘pic_width_in_mbs_minusl ”+1)计算复制片头的 MB
地址信息。流划分部130,将当初包含在复制片头中的MB地址信息,更新为如上计算出的MB 地址信息。据此,复制片头的MB地址信息所确定的地址,准确地指示划分流中具有该复制片头的片的开头宏块的图片内的地址。其次,说明片末端处理。在构成编码流中包含的图片的各个片的末端,设定有示出为该片的末端的片末端信息。因此,如图3示出,在图片单纯地被划分为多个MB行,多个MB行的每一个被分配到第一划分流至第四划分流的某个划分流的一部分的情况下,会有不能使解码引擎120适当地识别划分流中包含的片的末端的情况。于是,本实施例的流划分部130,与片头的插入处理相同,也执行片末端处理。图5是用于说明片末端处理的说明图。例如,如图5的(a)示出,编码流的图片pi中包含的片C包含片头hc、MB行L9至 L12、以及片末端信息ec。流划分部群130a,按每个MB行,对图片pi进行划分。其结果为,如图5的(b)至 (e)示出,由一个流划分部130,MB行L9与片头he —起被分配到第一划分流,MB行LlO被分配到第二划分流,MB行Lll被分配到第三划分流,MB行L12被分配到第四划分流。进而,流划分部130,通过所述的片头的插入处理,将片头he复制,生成三个复制片头he',将这些三个复制片头he ’分别插入到第二划分流至第四划分流的MB行L10、 LlU L12紧前。并且,流划分部130,通过所述的MB地址信息的更新处理,按照被插入的复制片头he'的位置更新该复制片头he'中包含的MB地址信息。在此,流划分部130,生成片末端信息ec ‘,以作为片末端处理,该片末端信息ec ’示出第一划分流中的片C(MB行L9)的末端、第二划分流中的片C(MBRLlO)的末端、第三划分流中的片C(MB行Lll)的末端、以及第四划分流中的片C(MB行L12)的末端。而且, 流划分部130,将该生成的片末端信息ec ‘设定到第一划分流至第四划分流的MB行L9、 L10、L11、L12紧后。而且,流划分部130,在按每个MB行来对编码流进行划分时,丢弃原来在该编码流中包含的片末端信息ec。并且,在片末端信息ec和片末端信息ec是相同的信息的情况下,最终,MB行L12与片末端信息ec ‘ (ec) —起被分配到第四划分流。据此,各个解码引擎120,能够适当地识别划分流中包含的片的末端。接着,说明由流划分控制部140进行的编码流中包含的片的分配处理。如上所述,本实施例的图像解码装置100具备M个流划分部130和N个解码引擎 120,并行进行编码流的解码处理。如此,由于能够进行系统整体的并行处理,因此实现提高解码处理整体的性能。在此,M个流划分部130的每一个,将编码流中包含的编码图片的片划分为作为规定的单位(处理对象区域)的一个或多个MB行,但是,由于片的大小不一定,因此其处理量按每个片变动。
并且,即使在所有的片的大小一定的系统中,由于处理的对象为编码后的流,因此其处理量也依赖于每个片的代码量。在一般的运动图像编码方式中,编码流被可变长编码, 按照数据的内容,代码量变动。并且,H. ^4/AVC方式的片,有所谓I片、P片、B片等的种类。 存在以下的倾向,即,进行画面内编码处理的I片的代码量多,进行画面内编码处理以外还进行画面间编码处理的P片、和B片的代码量少。如此,编码流中包含的编码片的代码量不一定,会大大变动。因此,仅将输入的编码后的片依次分配到M个流划分部130的每一个, 不能使各个流划分部130的处理量均等,不能充分得到由并行化的处理性能提高的效果。于是,流划分控制部140,将各个片分配到流划分部130的每一个,以使各个流划分部130的处理量均等。图6A以及图6B是示出由流划分控制部140的片的分配处理的具体例子的说明图。而且,在本实施例中,为了简化说明,以下,将M设为M = 2来进行说明。图6A是示出H. 264/AVC方式的编码流的一个例子的图。在该例子中,编码流包括 SPS (序列参数集)、PPS(图像参数集)、以及构成图片的片数据(片)。图片0仅由片0构成。图片1由片1以及片2构成。图片2由片3片以及片4构成。图6A中的箭头线表示,片数据与PPS的参考关系、以及PPS与SPS的参考关系,例如,利用PPSO中包含的头信息,将片0解码,利用PPSl中包含的头信息,将片1和片2解码。 并且,包含流的序列信息的SPS,由PPSO至2参考。也就是说,图6A所示的SPS,利用于片 0至片4的所有的片的解码。如此,在H. ^4/AVC方式中,会有多个片参考相同的头信息(SPS、PPS)的情况。因此,在向M个流划分部130的每一个分配流划分处理的情况下,SPS以及PPS等的头信息需要,由所有的流划分部130均等解码并进行分析处理。图6B是示出由流划分控制部140的一连串的片的分配处理的图。在开始处理时, 各个流划分部130,保持将要处理的片的号码。例如,第一流划分部130保持Sm = 0,以作为将要处理的片的号码的初始值,第二流划分部130保持SN2 = 0,以作为将要处理的片的号码的初始值。在定时t0,第一流划分部130以及第二流划分部130,都没有进行流划分处理,因此,流划分控制部140,通过发送分配控制信息,从而向第一流划分部130通知片0的解码, 向第二流划分部130通知片1的解码。第一流划分部130,在由流划分控制部140通知片0的解码的情况下,对被通知解码的片的片号码、与保持为将要处理的片的号码的sm的值进行比较。在此定时,两者一致为0,因此,第一流划分部130,对最初输入的片进行流划分处理。具体而言,第一流划分部130,首先,解码并分析SPS,提取流划分处理所需要的各种参数,并且,由于由分配控制信息通知的片的片号码与sm的值一致,因此将输入的sps 照原样输出到第一划分流缓冲器152。接着,第一流划分部130,解码并分析PPS0,提取流划分处理所需要的各种参数,并且,同样,将输入的PPSO照原样输出到第一划分流缓冲器 152。接着,第一流划分部130,对片0进行流划分处理,并且,将生成的N个划分流输出到第一划分流缓冲器152。另一方面,第二流划分部130,在通过分配控制信息,由流划分控制部140通知片 1的解码的情况下,对被通知解码的片的片号码、与保持为将要处理的片的号码的SN2的值进行比较。在此定时,被通知解码的片的片号码表示1,SN2表示0,其差分为1。于是,第二流划分部130,跳过输入的一个片的处理,对第二输入的片进行流划分处理。也就是说,第二流划分部130,跳过对差分的数量的片的流划分处理。具体而言,第二流划分部130,首先,解码并分析SPS,提取流划分处理所需要的各种参数。在此,第二流划分部130,由于被通知解码的片的片号码与SN2的值不一致,因此不进行向第二划分流缓冲器152的SPS的输出。接着,第二流划分部130,解码并分析PPS0,提取流划分处理所需要的各种参数,但是,同样,不进行向第二划分流缓冲器152的PPSO的输出。接着,第二流划分部130,跳过对输入的片0的流划分处理。因此,第二流划分部130, 针对第二划分流缓冲器152,不输出片0的流划分处理的结果。而且,通过探索附随于编码数据的开始代码,从而跳过流划分处理。在此,第二流划分部130,由于跳过片0的处理,因此将SN2增大为SN2 = 1。在此,第二流划分部130,不将SPS以及PPSO输出到第二划分流缓冲器152,这是因为,不使N个解码引擎120重复接收相同头信息的缘故。也就是说,SPS以及PPS0,由第一流划分部130输出到第一划分流缓冲器152,因此,SPS以及PPSO的由第二流划分部130 的输出被抑制。接着,第二流划分部130,解码并分析PPS1,提取流划分处理所需要的各种参数, 并且,由于被通知解码的片的片号码与SN2的值一致,因此将输入的PPSl照原样输出到第二划分流缓冲器152。接着,第二流划分部130,对片1进行流划分处理,并且,将生成的N 个划分流输出到第二划分流缓冲器152。在定时tl,由第二流划分部130的对片1的流划分处理结束,因此,第二流划分部 130,向流划分控制部140通知处理完成,并且,通知向第二划分流缓冲器152输出的划分流的信息。具体而言,第二流划分部130,通知向划分流缓冲器152实际输出的构成PPSl以及片1的每一个的NAL单元的个数。NAL单元为构成H. 264/AVC方式的流的构成单位,SPS、 PPS、以及片等分别包含在该NAL单元中。而且,由于片的大小可变,因此会有片中包含的MB行数不足作为划分流数的N的情况。因此,对于与由流划分部130处理的片相对应的NAL单元的个数,按照生成的N个划分流不同,其值为0或1。因此,流划分部130,针对流划分控制部140,通知按照N个划分流输出的NAL单元的个数。而且,在图6B示出的工作例中,为了简化说明,各个片包含的MB行数比N充分大, 并且,与一个片相对应的NAL单元的个数,与划分流无关而为1,以进行说明。在此,第二流划分部130,将对PPSl和片1的总计两个NAL单元进行了处理的情况通知给流划分控制部 140。同时,第二流划分部130,由于对片1的流划分处理已结束,因此将SN2增大为SN2 = 2。从第二流划分部130接受处理完成的通知后,流划分控制部140,向第二流划分部130通知片2的解码。第二流划分部130,在由流划分控制部140通知片2的解码的情况下,对被通知解码的片的片号码、与保持为将要处理的片的号码的SN2的值进行比较。在此定时,两者一致为2,因此,第二流划分部130,对最初输入的片进行流划分处理。具体而言,第二流划分部130,对片2进行流划分处理,并且,由于被通知解码的片的片号码与SN2的值一致,因此将生成的N个划分流输出到第二划分流缓冲器152。
在定时t2,由第一流划分部130的对片0的流划分处理结束,因此,第一流划分部 130,向流划分控制部140通知处理完成,并且,通知构成SPS、PPS0以及片0的每一个的NAL 单元的个数“3”,以作为向第一划分流缓冲器152输出的划分流的信息。同时,第一流划分部130,由于对片ο的流划分处理已结束,因此将sm增大为sm = 1。从第一流划分部130 接受处理完成的通知后,流划分控制部140,通过分配控制信息,向第一流划分部130通知片3的解码。第一流划分部130,在由流划分控制部140通知片3的解码的情况下,对被通知解码的片的片号码、与保持为将要处理的片的号码的sm的值进行比较。在此定时,被通知解码的片的片号码表示3,SN2表示1,其差分为2。于是,第一流划分部130工作,以跳过第三输入的两个片的处理,对输入的片进行流划分处理。具体而言,第一流划分部130,首先,解码并分析PPS1,提取流划分处理所需要的各种参数,但是,由于被通知解码的片的片号码与Sm的值不一致,因此不进行向第一划分流缓冲器152的PPSl的输出。接着,第一流划分部130,跳过输入的片1的处理。因此,第一流划分部130,针对第一划分流缓冲器152,不输出片1的流划分处理的结果。在此,第一流划分部130,由于跳过片ι的处理,因此将sm增大为sm = 2。接着,片2输入到第一流划分部130,但是,由于被通知解码的片的片号码与sm的值还不一致,因此也跳过输入的片2的处理。因此,第一流划分部130,针对第一划分流缓冲器152,不输出片2的流划分处理的结果。在此,第一流划分部130,由于跳过片2的处理,因此将Sm增大为SNl = 3。接着,第一流划分部130,解码并分析PPS2,提取流划分处理所需要的各种参数, 并且,由于被通知解码的片的片号码与sm的值一致,因此将输入的PPS2照原样输出到第一划分流缓冲器152。接着,第一流划分部130,对片3进行流划分处理,并且,将生成的N 个划分流输出到第一划分流缓冲器152。在定时t3,由第二流划分部130的对片2的流划分处理结束,因此,第二流划分部 130,向流划分控制部140通知处理完成,并且,通知构成片2的NAL单元的个数“1”,以作为向第二划分流缓冲器152输出的划分流的信息。同时,第二流划分部130,由于对片2的流划分处理已结束,因此将SN2增大为SN2 = 3。从第二流划分部130接受处理完成的通知后,流划分控制部140,通过分配控制信息,向第二流划分部130通知片4的解码。第二流划分部130,在由流划分控制部140通知片4的解码的情况下,对被通知解码的片的片号码、与保持为将要处理的片的号码的SN2的值进行比较。在此定时,被通知解码的片的片号码表示4,SN2表示3,其差分为1。于是,第二流划分部130,跳过输入的一个片的处理,对第二输入的片进行流划分处理。具体而言,第二流划分部130,首先,解码并分析PPS2,提取流划分处理所需要的各种参数,但是,由于被通知解码的片的片号码与SN2的值不一致,因此不进行向第二划分流缓冲器152的PPS2的输出。接着,第二流划分部130,跳过输入的片3的处理。因此,第二流划分部130,针对第二划分流缓冲器152,不输出片3的流划分处理的结果。在此,第二流划分部130,由于跳过片3的处理,因此将SN2增大为SN2 = 4。接着,第二流划分部130,由于被通知解码的片的片号码与SN2的值一致,因此,对片4进行流划分处理,并且,将生成的N个划分流输出到第二划分流缓冲器152。在定时t4,由第一流划分部130的对片3的流划分处理结束,因此,第一流划分部CN 102550029 A说明书22/70 页 130,向流划分控制部140通知处理完成,并且,通知构成PPS2以及片3的每一个的NAL单元的个数“2”,以作为向第一划分流缓冲器152输出的划分流的信息。同时,第一流划分部 130,由于对片3的流划分处理已结束,因此将Sm增大为SNl = 4。同样,在定时t5,由第二流划分部130的对片4的流划分处理结束,因此,第二流划分部130,向流划分控制部140通知处理完成,并且,通知构成片4的NAL单元的个数“1”, 以作为向第二划分流缓冲器152输出的划分流的信息。同时,第二流划分部130,由于对片 4的流划分处理已结束,因此将SN2增大为SN2 = 5。如上所述,流划分控制部140,针对处理完成的流划分部130,依次分配片的解码处理(流划分处理)。据此,各个流划分部130的处理量均等。图7是示出进行图6B示出的片的分配以及流划分处理时的划分流缓冲器152的状态的图。而且,图7示出的片0至4分别表示片的一部分的数据。在第一划分流缓冲器152,保存与片0以及片3相对应的N(N = 4)个划分流。并且,在第二划分流缓冲器152,保存与片1、片2以及片4相对应的N(N = 4)个划分流。如此,在两个划分流缓冲器152,按照各个流划分部130的处理量,分散保存片,因此各个片的保存顺序不一定。因此,流划分控制部140,为了使N个解码引擎120的每一个能够按照与划分前的编码流相同的顺序获得划分流,而将表示从M个划分流缓冲器152之中哪个划分流缓冲器要获得划分流的选择信息,通知给N个解码引擎120。图8是示出进行图6B示出的片的分配以及流划分处理时的选择信息的形式的一个例子的图。如图8示出,选择信息,按每一个片,包含划分流缓冲器信息和NAL单元数信息,每当进行由流划分控制部140的片的分配处理时被生成。划分流缓冲器信息表示,流划分控制部140将片分配到第一流划分部130和第二流划分部130的哪一方。也就是说,划分流缓冲器信息表示,根据流划分部130对片进行流划分处理的结果,针对该片从流划分部130 输出的划分流被保存的划分流缓冲器。并且,NAL单元数信息,表示在流划分部130进行成为对象的片的处理时输出的NAL单元的个数,在流划分部130的处理完成时从流划分部130 向流划分控制部140被通知。而且,如上所述,存在NAL单元数信息按照N个划分流不同的可能性。因此,针对N 个解码引擎120的每一个,通知与N个划分流相对应的不同内容的选择信息。也就是说,向第一解码引擎通知与第一划分流相对应的选择信息,向第二解码引擎通知与第二划分流相对应的选择信息,向第三解码引擎通知与第三划分流相对应的选择信息,向第四解码引擎通知与第四划分流相对应的选择信息。在此,如上所述,各个片包含的MB行数比N充分大, 并且,与一个片相对应的NAL单元的个数,与划分流无关而为1,因此,向N个解码引擎120 通知的选择信息相同,以进行说明。由流划分控制部140生成的选择信息,被通知到N个解码引擎120,例如被保存到解码引擎120内的FIFO(先入先出)存储器。保存到FIFO的选择信息,按照通知的顺序由解码引擎120读出,在从划分流缓冲器152的流获得处理上利用。具体而言,首先,解码引擎120,读出划分流缓冲器信息=1以及NAL单元数信息= 3,以作为片0的选择信息。解码引擎120,根据片0的选择信息,从第一划分流缓冲器152
28获得三个NAL单元6 5、? 50、片0)。接着,解码引擎120,读出划分流缓冲器信息=2以及NAL单元数信息=2,以作为片1的选择信息。解码引擎120,根据片1的选择信息,从第二划分流缓冲器152获得两个NAL单元(PPS1、片1)。接着,解码引擎120,读出划分流缓冲器信息=2以及NAL单元数信息=1,以作为片2的选择信息。解码引擎120,根据片2的选择信息,从第二划分流缓冲器152获得一个NAL单元(片2)。接着,解码引擎120,读出划分流缓冲器信息=1以及NAL单元数信息=2,以作为片3的选择信息。解码引擎120, 根据片3的选择信息,从第一划分流缓冲器152获得两个NAL单元(PPS2、片幻。接着,解码引擎120,读出划分流缓冲器信息=2以及NAL单元数信息=1,以作为片4的选择信息。 解码引擎120,根据片4的选择信息,从第二划分流缓冲器152获得一个NAL单元(片4)。如此,解码引擎120,通过利用由流划分控制部140通知的选择信息,从而能够以与输入到解码器Iio的编码流相同的片顺序,从M个划分流缓冲器152获得划分流(划分流的片)。而且,利用图6A至图8说明的片的分配处理是本发明的图像解码装置100的处理工作的一个例子,本发明不仅限于在此说明的处理工作。例如,在图6B中,在流划分控制部140向流划分部130通知片的解码时指定片号码,但也可以,不指定片号码,而指定跳过处理的片数。在此情况下,流划分控制部140,预先存储向M个流划分部130的每一个分配了的片数,根据此计算跳过处理的片数。并且,在图 6B中,在由流划分部130的片的流划分处理结束时,流划分部130,向流划分控制部140通知处理完成以及向划分流缓冲器152输出的NAL单元的个数,但也可以,代替向划分流缓冲器152输出的NAL单元的个数,而通知向划分流缓冲器152输出的划分流的比特数。也就是说,能够通知使解码引擎120能够判断从划分流缓冲器152要获得的划分流的大小的信息即可。并且,例如,在图8中,划分流缓冲器信息,直接指定划分流缓冲器152的号码,但也可以是与其号码不同的信息。也就是说,在M = 2的情况下,划分流缓冲器信息,也可以是表示与处理对象的片相对应的划分流被保存的划分流缓冲器152是否与紧前的片所对应的划分流被保存的划分流缓冲器152相同的信息。也就是说,划分流缓冲器信息是,从多个划分流缓冲器152能够适当地获得划分流的信息即可。并且,例如,在图8中,选择信息包含NAL单元数信息,但也可以,如上所述,代替NAL单元数信息,而包含表示划分流的比特数的信息。图9是示出本实施例中的图像解码装置100的工作整体的流程图。首先,图像解码装置100,获得编码流(步骤S10),根据该编码流确定成为处理对象的编码后的图片,并且,为了进行流划分的并行处理,以使处理量均等的方式分配片(步骤SU)。进而,图像解码装置100,通过对处理对象的图片进行划分,从而提取一个MB行 (步骤S14)。而且,在MB行紧前或属于该MB行的两个宏块之间存在片头的情况下,该MB 行与该片头一起被提取。其次,图像解码装置100,在将由步骤S14的划分提取的一个MB行分配到成为生成对象的第一至第N划分流的某个之前,判别是否需要进行片重构处理(是否需要在该MB行紧前插入片头、是否需要在已分配的MB行紧后设定片末端信息、是否需要修正MB跳过运行信息、以及是否需要设定QP变化量)(步骤S16)。
图像解码装置100,在步骤S16中,在判别为需要进行进行片重构处理时(步骤 S16的“是”),执行片重构处理(步骤S18)。也就是说,图像解码装置100,执行所述的片头的插入处理、片末端处理、跳过运行修正处理以及QP德尔塔设定处理的至少一个。并且, 图像解码装置100,在执行片头的插入处理时,也执行MB地址信息的更新处理。而且,步骤 S14至步骤S20的流划分处理是,以片为单位并行进行的。而且,图像解码装置100,将该MB行分配到成为生成对象的第一至第N划分流的某个(步骤S20)。反复进行该步骤S20,MB行依次被分配到第一至第N划分流的每一个,从而生成第一至第N划分流。图像解码装置100,对被分配到第一至第N划分流的每一个的MB行并行进行解码 (步骤S2》。而且,在MB行未被分配到第一至第N划分流中的某个划分流的情况下,图像解码装置100,对除了该MB行未被分配的划分流以外的剩余的划分流进行解码。其次,图像解码装置100,判别是否分配了图片中包含的所有的MB行(步骤S24), 在判别为没有分配的情况下(步骤S24的“否”),反复执行从步骤S14开始的处理。另一方面,图像解码装置100,在判别为分配了所有的MB行的情况下(步骤S24的“是”),进一步,判别是否划分了编码流中包含的所有的图片(步骤S26)。在此,图像解码装置100,在判别为没有划分所有的图片的情况下(步骤S26的“否”),反复执行从步骤S12开始的处理,在判别为划分了所有的图片的情况下(步骤S26的“是”),结束解码处理。而且,图9的流程图所示的处理工作是本发明的图像解码装置100的处理工作的一个例子,本发明不仅限于该流程图所示的处理工作。例如,在图9的流程图中,图像解码装置100的流划分部130,在步骤S18的片重构处理中进行片头的插入处理,但也可以,不进行片头的插入处理,而直接将复制片头传递到需要片头的解码引擎120。并且,在图9的流程图中,流划分部130,在步骤S18的片重构处理中进行MB地址信息的更新处理,但也可以,不进行该更新处理。在此情况下,例如,解码引擎120,更新划分流中包含的复制片头的MB地址信息。并且,在图9的流程图中,流划分部130,在步骤S18的片重构处理中进行片末端处理,但也可以,不在该片重构处理中进行。 在此情况下,例如,也可以是,在步骤S20中MB行被分配到第一至第N划分流的某个后、且下一个新的MB行由流划分部130分配到它们的某个划分流紧前,对已被分配的MB行进行片末端处理。在此,详细说明流划分部130的结构以及工作。图10是示出流划分部130的结构的方框图。流划分部130具备处理管理部130m、选择器kt、开始代码检测部131、EPB除去部 13h、EPB插入部132b、片头插入部133、以及片数据处理部13^、134b。处理管理部130m,获得模式信息以及分配控制信息,根据这样的信息,控制流划分部130具备的其他的构成要素。也就是说,为了进行图6A至图8所示的流划分处理,处理管理部130m,例如,保持将要处理的片的号码(Sm或SN2等),根据该号码,控制选择器Mt。 其结果为,处理管理部130m,使由SPS、PPS、或处理对象的片生成的划分流被输出,或使该输出被停止。开始代码检测部131,从流缓冲器151中读出编码流,按每个NAL单元,检测开始代码。
EPB除去部13 将EPB (模仿防止字节)从编码流中除去,将除去了 EPB的编码流输出给片数据处理部13^、134b。进而,EPB除去部132a,获得编码流中包含的SPS (序列参数集)以及PPS(图像参数集)等的片的上层的信息,将该信息输出到EPB插入部132b, 以使得该信息被插入到四个划分流的每一个。EPB插入部13 ,将由EPB除去部13 除去的EPB,插入到因编码流被划分而生成的划分流中。片头插入部133,执行所述的片头的插入处理以及MB地址信息的更新处理。另外, 片头插入部133以规定的定时,将表示是否进行片头的插入处理的片头处理内容通知Ml发送给片数据处理部13^、134b,当从片数据处理部134a、134b接受到末端处理完成通知M2 时,执行片头的插入处理。而且,片头插入部133,通过片头的插入处理,将位于MB行紧前的片头、和MB地址信息被更新的复制片头输出到EPB插入部132b。片数据处理部134a、134b通过将除去了 EPB之后的编码流划分而生成四个划分流,将该四个划分流输出。另外,在从片数据处理部134a、134b输出的划分流中,不包含位于上述MB行紧前或其中的片头以及复制片头。在此,片数据处理部13 执行对应于 CAVLD ( =Context-Adaptive Variable Length Decoding)白勺^h , 将通过CAVLC (内容适应可变长度编码Context-Adaptive Variable Length Coding)生成的编码流划分为四个划分流。并且,片数据处理部134b执行对应于CABAD(内容适应二进制运算解码Context-Adaptive Binary Arithmetic Decoding)的处理,将通过 CABAC (内容适应二进制运算编码Context-Adaptive Binary Arithmetic Coding)生成的编码流划分为四个划分流。片数据处理部13 具备片数据层解码部135a、宏块层解码部136a、跳过运行修正部137a、QP德尔塔修正部138a以及划分点检测部139a。片数据层解码部13 ,对编码流中包含的片数据层的编码数据进行可变长解码。 宏块层解码部136a,对编码流中包含的宏块层的编码数据进行可变长解码。通过这些由片数据层解码部13 以及宏块层解码部136a的可变长解码,相邻的宏块之间的依赖关系被除去。另外,片数据层解码部13 以及宏块层解码部136a也可以仅将依赖于与处理对象的宏块相邻的宏块的信息(具体而言是CAVLC的nC (非零系数mon-zero coefficient) 等)解码。跳过运行修正部137a,将由片数据层解码部13 解码后的MB跳过运行信息“mb_ skip_rUn”修正,将修正后的MB跳过运行信息再次编码,将编码后的MB跳过运行信息输出。 也就是说,跳过运行修正部137a,当MB跳过运行信息表示在编码流中跨越连续的至少两个片部分而连续的块的个数时,将该连续的块的个数划分,将修正为表示每个片部分的块的个数的MB跳过运行信息设定在分别被分配了至少两个连续的片部分的划分流中。进而,跳过运行修正部137a,在各划分流中对应于设定的多个MB跳过运行信息的多个块在该划分流内连续时,将多个MB跳过运行信息变换为表示该多个MB跳过运行信息分别表示的个数的总和的一个MB跳过运行信息。这里,MB跳过运行信息是表示在包含于编码图片中的片内指定种类的块连续的情况下连续的该块的个数的第一代码字的一例。具体而言,MB跳过运行信息表示连续被跳过的宏块的数量。
例如,在编码流的片中存在跨越多个MB行的连续被跳过的宏块的集合的情况下, 由片数据层解码部13 解码的MB跳运行信息示出该集合中包含的连续被跳过的宏块的数量。在此情况下,若按每个MB行,划分图片,这些MB行被分配到各个划分流,则各个划分流的连续被跳过的宏块的数量不同。也就是说,MB跳过运行信息带来的MB行间的依赖关系混乱了。所以,跳过运行修正部137a,按包括上述集合的一部分的每个MB行,确定构成包含在该MB行中的上述一部分的、被连续跳过的宏块的数量。而且,跳过运行修正部137a,按每个MB行,修正MB跳过运行信息,以使由MB跳过运行信息表示的数量成为相对于该MB行而确定的数量。QP德尔塔修正部138a,按每个宏块,将由宏块层解码部136a解码的、该宏块的QP 变化量“mb_qp_delta”修正,将修正后的QP变化量再次编码,将编码后的QP变化量输出。 也就是说,QP德尔塔修正部138a,在QP变化量表示跨越两个MB行的块间的变化量的情况下,计算基于各划分流中的块的新的前后关系的编码系数的变化量。而且,QP德尔塔修正部138a,将QP变化量修正为计算出的变化量。另外,QP变化量是表示在编码图片中包含的片内连续的块间的编码系数的变化量的第二代码字的一例。具体而言,QP变化量,包含在宏块(对象宏块)中,表示该对象宏块的QP值与位于该对象宏块紧前的宏块的QP值的差分值。也就是说,若将图片按每个MB行划分,并将MB行分别分配到多个划分流的某个, 则夹着MB行的边界相互连续了的宏块分别被分配到不同的划分流。结果,将包括该相互连续了的一方的宏块(对象宏块)的划分流作为解码的对象的解码引擎120,不能根据对象宏块的QP变化量导出该对象宏块的QP值。也就是说,QP变化量带来的MB行间的依赖关系混乱了。所以,QP德尔塔修正部138a,按每个宏块,基于划分流中的新的宏块的前后关系重新计算该宏块(对象宏块)的QP变化量。划分点检测部139a,将编码流划分为四个划分流。也就是说,划分点检测部139a, 将图片或片划分为多个MB行,将MB行的每一个分配到四个划分流的某个。而且,划分点检测部139a,在MB行紧前或属于该MB行的两个宏块之间存在片头的情况下,不进行该片头的分配,而仅将MB行分配到划分流。并且,划分点检测部139a在划分流的每一个中包含从跳过运行修正部137a获得的MB跳过运行信息、以及从QP德尔塔修正部138a获得的QP变化量。进而,划分点检测部139a,检测划分流的片的末端,若从片头插入部133接受片头处理内容通知M1,则按照该片头处理内容通知Ml示出的内容,执行所述的片末端处理。并且,划分点检测部139a,若片末端处理完成,则将末端处理完成通知M2传递给片头插入部 133。片数据处理部134b具备片数据层解码部135b、宏块层解码部136b、QP德尔塔修正部138b以及划分点检测部139b。片数据层解码部135b,对编码流中包含的片数据层的编码数据进行可变长解码 (算术解码)。宏块层解码部136b,对编码流中包含的宏块层的编码数据进行可变长解码 (算术解码)。通过这些片数据层解码部13 以及宏块层解码部136b的可变长解码,相邻的宏块之间的依赖关系被除去。QP德尔塔修正部138b,与所述的QP德尔塔修正部138a同样,按每个宏块,将由宏块层解码部136b解码的、该宏块的QP变化量“mb_qp_delta”修正,将修正后的QP变化量再次编码,将编码后的QP变化量输出。划分点检测部139b,与划分点检测部139a相同,将编码流划分为四个划分流。此时,划分点检测部139b,在划分流的每一个中包含从QP德尔塔修正部138b获得的QP变化量。进而,划分点检测部139b,检测划分流的片的末端,若从片头插入部133接受片头处理内容通知M1,则按照该片头处理内容通知Ml示出的内容,执行所述的片末端处理。并且,划分点检测部139b,若片末端处理完成,则将末端处理完成通知M2传递给片头插入部133。这里,对片头插入部133以及片数据处理部134a、134b详细地说明。另外,当说明对片数据处理部134a、134b共通的功能及处理工作时,不将它们区别而总称作片数据处理部 134。首先,说明片头插入部133插入片头的定时,以及片数据处理部134插入片末端信息的定时。图11是用于说明片头插入部133以及片数据处理部134的工作的说明图。而且, 在此,图片中包含的片A以及片B由流划分部130分配,以作为流划分处理对象的片。片数据处理部134,按每个MB行,划分包含片A以及片B的图片,经由EPB插入部 132b,从开头侧的MB行开始,依次将各个MB行保存到划分流缓冲器152中包含的四个区域 (第一区域df 1至第四区域df4)。此时,片数据处理部134,按一个MB行的保存,按照第一区域dfl、第二区域df2、第三区域df3、第四区域df4、第一区域dfl的顺序,依次反复地变更MB行的保存目的地。例如,片数据处理部134,如图11的(a)示出,将片A的MB行Lal保存到划分流缓冲器152的第一区域df 1,将片A的下一个MB行La2保存到划分流缓冲器152的第二区域 df2,将片A的下一个MB行La3保存到划分流缓冲器152的第三区域df3。进而,片数据处理部134,将片A的下一个片B的MB行Lbl保存到划分流缓冲器152的第四区域df4。其结果为,MB行被保存到划分流缓冲器152的四个第一区域dfl至第四区域df4 的每一个,划分流缓冲器152,成为片B的下一个MB行再次被保存到第一区域dfl紧前的状态。而且,片数据处理部134,在将MB行La3保存到第三区域df3时,即使编码流中的 MB行La3紧后存在片末端信息ea,也不保存该片末端信息ea,而仅将MB行La3保存到第三区域df3。而且,片数据处理部134,然后,到了将属于新的片的MB行保存到第三区域df3之时,将与该片末端信息ea相对应的片末端信息ea'保存到第三区域df3。并且,在片数据处理部134将MB行Lb 1保存到第四区域df4时,预先,片头插入部133将片B的片头保存到第四区域df4。并且,在图片中,在片A的MB行Lal之前,存在该片A的其它的MB行。 因此,在第一区域dfl、第二区域df2以及第三区域df3的MB行Lal、La2、La3紧前,片A的复制片头未被插入。并且,片数据处理部134的划分点检测部139a、139b,每当输出宏块时,判别是否已输出一个MB行的所有的宏块。其结果为,划分点检测部139a、139b,若判别为已输出所有的宏块,则检测MB行的边界(MB行的末端)。而且,划分点检测部139a、139b,每当检测MB行的边界时,中断宏块的输出处理,将检测出MB行的边界的情况通知给片头插入部133。因此,在MB行的最后的宏块被保存到划分流缓冲器152,从而划分流缓冲器152成为如上所述的图11的(a)示出的状态时,片头插入部133,也从片数据处理部134的划分点检测部139a、139b接受检测出MB行的边界的情况的通知。接受了 MB行的边界检测的通知的片头插入部133,如图11的(b)示出,将片头处理内容通知Ml传递给片数据处理部134。该片头处理内容通知Ml是,将在将下一个MB行从片数据处理部134保存到划分流缓冲器152紧前,是否预定将片头输出并保存到划分流缓冲器152的情况通知给片数据处理部134的信息,示出“输出”或“非输出”。也就是说, 示出“输出”的片头处理内容通知Ml是,促使片数据处理部134进行片末端处理的通知。例如,片头插入部133判断为,在将下一个MB行Lb2从片数据处理部134保存到划分流缓冲器152紧前,应该将复制片头1Λ'输出并保存到划分流缓冲器152。此时,片头插入部133,将示出“输出”的片头处理内容通知Ml输出到片数据处理部134。片数据处理部134,若获得片头处理内容通知M1,在该片头处理内容通知Ml示出 “输出”的情况下,生成片末端信息来保存到划分流缓冲器152后,将末端处理完成通知M2 输出到片头插入部133。另一方面,片数据处理部134,若片头处理内容通知Ml示出“非输出”,则不将片末端信息保存到划分流缓冲器152,而将末端处理完成通知M2输出到片头插入部133。例如,片数据处理部134,若获得示出“输出”的片头处理内容通知M1,如图11的 (c)示出,生成片末端信息ea',并保存到划分流缓冲器152的第一区域dfl。若该保存完成,片数据处理部134,将末端处理完成通知M2输出到片头插入部133。片头插入部133,若从片数据处理部134获得末端处理完成通知M2,在紧前已输出的片头处理内容通知Ml示出“输出”的情况下,经由EPB插入部132b,将片头输出并保存到划分流缓冲器152,然后,将片头处理完成通知M3输出到片数据处理部134。另一方面,在紧前已输出的片头处理内容通知Ml示出“非输出”的情况下,片头插入部133,不将片头保存到划分流缓冲器152,而将片头处理完成通知M3输出到片数据处理部134。例如,片头插入部133,在紧前已输出的片头处理内容通知Ml示出“输出”的情况下,若从片数据处理部134获得末端处理完成通知M2,如图11的(d)示出,生成复制片头 hb',并保存到划分流缓冲器152的第一区域dfl。然后,片头插入部133,将片头处理完成通知M3输出到片数据处理部134。片数据处理部134的划分点检测部139a、139b,若从片头插入部133获得片头处理完成通知M3,则再次开始中断了的宏块的输出处理,将下一个MB行输出并保存到划分流缓冲器152。例如,片数据处理部134,如图11的(d)示出,将下一个MB行让2输出并保存到划分流缓冲器152的第一区域dfl。通过这些片头插入部133以及片数据处理部134的处理,在划分流缓冲器152的各个区域,能够按照片末端信息、片头、下一个MB行的顺序,将这些数据写入到适当的MB行的边界。图12是示出片头插入部133的结构的方框图。而且,在利用图12说明划分点检测部139a、139b共同的功能以及处理工作时,将它们不区别,而总称为划分点检测部139。片头插入部133具备NAL类型判断部133a、头部插入计数器133b、头部地址更新部133c以及头部缓冲器133d。NAL类型判断部133a,每当获得编码流的NAL单元时,判别该NAL单元的类型是否为片。而且,NAL类型判断部133a,在判别为片时,将该NAL单元的类型为片的情况通知给头部缓冲器133d以及头部插入计数器13北。头部缓冲器133d,在接受来自NAL类型判断部133a的通知的情况下,若与该通知相对应的NAL单元中包含片头,则将片头从该NAL单元中提取来存储。进而,头部缓冲器 133d,若以后的NAL单元中包含新的片头,则将已存储的片头置换为该新的片头。也就是说,头部缓冲器133d,总是保持最新的片头。头部插入计数器13北,为了确定生成并插入复制片头的定时,对划分点检测部 139检测出编码流中的MB行的边界(末端)的次数进行计数。具体而言,头部插入计数器 133b,计数0至4(解码引擎120的总数)的值。头部插入计数器13北,在接受来自NAL类型判断部133a的通知的情况下,若与该通知相对应的NAL单元中包含片头,则将计数值复位为0。进而,头部插入计数器13北,在检测出MB行的边界(MB行的末端)时,对计数值仅加计数1。而且,头部插入计数器13北,在计数值达到4后,还检测出MB行的边界时,不进行加计数,而使计数值保持为4。如上所述,头部插入计数器13北,在检测出MB行的边界时,更新或保持计数值,若 NAL单元中包含片头,则将计数值复位为0。并且,头部插入计数器133b,在检测出MB行的边界时,按照因该检测而更新后的计数值(包含因MB行边界紧后的片头而复位后的计数值=0),将示出“输出”或“非输出” 的片头处理内容通知Ml输出到划分点检测部139。具体而言,头部插入计数器13北,在紧接检测出MB行的边界之后的计数值为0至3时,输出示出“输出”的片头处理内容通知M1,在该计数值为4时,输出示出“非输出”的片头处理内容通知Ml。并且,头部插入计数器13北, 除了检测出MB行的边界时以外,还在计数值成为0时,输出示出“输出”的片头处理内容通知Ml。进而,头部插入计数器133b,在将片头处理内容通知Ml输出到划分点检测部139 后,从该划分点检测部139接受末端处理完成通知M2的情况下,若该输出的片头处理内容通知Ml示出“输出”,则将保存在头部缓冲器133d的片头从该头部缓冲器133d输出。然后,头部插入计数器13北,将片头处理完成通知M3输出到划分点检测部139。而且,在从头部缓冲器133d输出片头时,片头插入部133,按照该片头中包含的MB地址信息所示的值,选择成为划分流缓冲器152的保存目的地的区域。而且,片头插入部133,将片头保存在该选择到的成为保存目的地的区域。另一方面,头部插入计数器13北,在该输出的片头处理内容通知Ml示出“非输出”的情况下,不将保存在头部缓冲器133d的片头从头部缓冲器133d 输出,而保持保存状态。然后,与所述相同,头部插入计数器13北,将片头处理完成通知M3 输出到划分点检测部139。头部地址更新部133c,按照紧接检测出MB行的边界之后的计数值(包含因MB行边界紧后的片头而复位后的计数值=0),更新保存在头部缓冲器133d的片头的MB地址信息 “ f irst_mb_in_slice,,。
例如,头部地址更新部133c,在计数值η = 0时,不更新MB地址信息,在计数值η乒0时,将MB地址信息更新为(“mbposv”+n) X ( "pic_width_in_mbs_ minusl"+l)。而且,在图片由MBAFF构成的情况下,头部地址更新部133c,将MB地址信息 d3 ( "mbposv'V2+n) X ( "pic_width_in_mbs_minusl“+1) Mf 。图13是示出分配到划分流缓冲器152的第一区域dfl至第四区域df4的MB行以及片头的图。例如,流划分部130,按照片A、片B、片C的顺序读出保存在流缓冲器151的编码流的片A至C。在此情况下,首先,片头插入部133的头部缓冲器133d,将片头ha从片A的开头提取来存储。此时,头部插入计数器13北,将计数值复位为0。据此,头部缓冲器133d,由于计数值为0,因此,通过输出存储了的片头ha,从而将该片头ha保存到划分流缓冲器152的第一区域dfl。若从头部缓冲器133d输出片头ha,片数据处理部134,则输出在编码流中后续于片A的片头ha的第一 MB行,从而将该第一 MB行保存到划分流缓冲器152的第一区域dfl。 其结果为,在第一区域dfl中,按照片头ha、属于片A的第一 MB行的顺序,保存这些数据。若从片数据处理部134输出第一 MB行,所述的头部插入计数器13北,将计数值加计数为1。据此,头部缓冲器133d,在第一 MB行的末端,计数值为1,因此,通过将存储了的片头ha作为复制片头ha'来输出,从而将该复制片头ha'保存到划分流缓冲器152的第二区域df2。而且,复制片头ha'的MB地址信息,已经由头部地址更新部133c更新。若从头部缓冲器133d输出复制片头ha',片数据处理部134,则输出在编码流中后续于第一 MB行的第二 MB行,从而将该第二 MB行保存到划分流缓冲器152的第二区域 df2。在此,第二 MB行包含属于片A的多个宏块、片B的片头hb、属于片B的多个宏块。 于是,片数据处理部134的划分点检测部139,首先,将第二 MB行中包含的属于片A的所有的宏块保存到第二区域df2。若该保存结束,划分点检测部139,暂时中断宏块的输出处理, 等待到从片头插入部133接受片头处理内容通知Ml为止。此时,片头插入部133,由于检测片B的片头hb,因此,将计数值复位为0,将示出“输出“的片头处理内容通知Ml传递给划分点检测部139。接受了该片头处理内容通知Ml的划分点检测部139,对第二区域df2 的片A的末端进行片末端处理,将末端处理完成通知M2传递给片头插入部133。接受了该末端处理完成通知M2的片头插入部133,将片B的片头t!b保存到第二区域df2,将片头处理完成通知M3传递给划分点检测部139。接受了该片头处理完成通知M3的划分点检测部 139,再次开始中断了的输出处理,将第二 MB行中包含的属于下一个片B的多个宏块保存到第二区域df2。其结果为,在第二区域df2中,复制片头ha‘之后,按照构成属于片A的第二 MB行的一部分的多个宏块、片头Wk构成属于片B的第二MB行的一部分的多个宏块的顺序,保存它们的数据。若从片数据处理部134输出第二 MB行,片头插入部133的头部缓冲器133d,从编码流中后续于该第二 MB行的片C的开头中提取片头he来存储。此时,头部插入计数器 133b,将计数值复位为0。据此,头部缓冲器133d,在第二 MB行的末端,计数值为0,因此,输出存储了的片头hc,从而将该片头he保存到划分流缓冲器152的第三区域df3。若从头部缓冲器133d输出片头hc,片数据处理部134,输出编码流中后续于片C 的片头he的第三MB行,从而将该第三MB行保存到划分流缓冲器152的第三区域df3。其结果为,在第三区域df3中,按照片头he、属于片C的第三MB行的顺序,保存它们的数据。若从片数据处理部134输出第三MB行,所述的头部插入计数器133b,则将计数值加计数为1。据此,在第三MB行的末端,计数值为1,因此,头部缓冲器133d,将存储了的片头he作为复制片头he'来输出,从而将该复制片头he‘保存到划分流缓冲器152的第四区域df4。而且,复制片头he'的MB地址信息,已经由头部地址更新部133c更新。通过反复进行所述处理,从而数据依次被保存到划分流缓冲器152的第一区域 dfl至第四区域df4。其结果为,第一划分流至第四划分流被保存到第一区域dfl至第四区域df4的每一个。图14A以及图14B是示出设定片末端信息的位置的图。例如,如图14A示出,图片包含片A和片B,后续于片A的片B的开头的宏块位于 MB行的左端。在此情况下,片数据处理部134的划分点检测部139,在从片头插入部133输出片B的片头t!b紧前,在位于从该片B的开头MB行前第四个MB行的片A的MB行的末端, 设定片A的片末端信息ea'。进而,片数据处理部134的划分点检测部139,在从片头插入部133输出片B的复制片头lib ‘紧前,在位于从该片B的开头MB行前第三个MB行的片A 的MB行的末端,设定片A的片末端信息ea'。如此,在片的开头的宏块位于MB行的左端的情况下,在位于从该MB行前第一至四个MB行的各个MB行的末端,设定片末端信息ea'。并且,如图14B示出,图片包含片A和片B,后续于片A的片B的开头的宏块位于MB 行的左端以外。在此情况下,片数据处理部134的划分点检测部139,在从片头插入部133 输出片B的复制片头lib ‘紧前,在位于从包含该片B的片头t!b的MB行前第三个MB行的片 A的MB行的末端,设定片A的片末端信息ea'。如此,在片的开头的宏块位于MB行的左端以外的情况下,在该MB行中的片的边界,和位于从该MB行前第一至三个MB行的各个MB行的末端,设定片末端信息ea'。在此,详细说明划分点检测部139的工作。图15是示出划分点检测部139的工作的流程图。首先,划分点检测部139,将要作为处理对象的数据(例如,宏块),从编码流的开头侧开始确定并输出,来保存到划分流缓冲器152(步骤S100)。在此,划分点检测部139,管理将要输出的宏块的地址(MB地址值)。也就是说,若将要输出的宏块为编码流中包含的片的开头宏块,划分点检测部139,更新将要输出的宏块的MB地址值,以成为该片的片头中包含的MB地址信息所示的值。而且,划分点检测部139, 每当输出后续于该开头宏块的宏块时,使该MB地址值增大。而且,MB地址值为0以上的整数。而且,划分点检测部139,在由步骤SlOO输出宏块时,按照该宏块的MB地址值,选择划分流缓冲器152内成为保存目的地的区域,将宏块保存到该成为保存目的地的区域。 具体而言,在划分流缓冲器152中包含的四个区域分配了第一至第四的号码的情况下,划分点检测部139,选择第m = ((MB地址值/W) % N+1)个区域,将宏块保存到该第m个区域。
而且,以W = “pic_width_in mbs_minusl”+1来示出W,并且,W示出图片的水平方向的宏块数。并且,N是解码引擎120的总数(N = 4),%示出在(MB地址值/W)除以N 时的余数。其次,划分点检测部139,判别由步骤SlOO输出的宏块是否为MB行的末端(边界),即判别宏块的输出处理是否达到MB行的末端(步骤S102)。具体而言,划分点检测部 139,判别由步骤SlOO输出的宏块的MB地址值是否成为(W的倍数-1)。在MB地址值=(W 的倍数-1)时,输出处理达到MB行的末端在MB地址值兴(W的倍数-1)时,输出处理未达到MB行的末端。划分点检测部139,若判别为未达到末端(步骤S102的“否”),则判别在编码流中是否存在要作为下一个处理对象的数据,即判别是否要结束输出处理(步骤S114)。另一方面,划分点检测部139,若判别为达到末端(MB行的边界),即若检测出MB行的边界(步骤S102的“是”),则将检测出MB行的边界的情况通知给片头插入部133,并且,中断输出处理,然后,判别是否从片头插入部133接受了片头处理内容通知Ml (步骤S104)。划分点检测部139,若判别为未接受片头处理内容通知Ml (步骤S104的“否”),则等待到接受片头处理内容通知Ml为止。另一方面,划分点检测部139,若判别为接受了片头处理内容通知Ml (步骤S104的“是”),则判别该片头处理内容通知Ml是否示出“输出”(步骤 S106)。在此,划分点检测部139,若判别为示出“输出”(步骤S106的“是”),则执行片末端处理(步骤S108)。也就是说,划分点检测部139,在以CABAD来对编码流进行解码的情况下,在“end_0f_Slice_flag”设定“1”,以作为片末端信息。并且,划分点检测部139,在以CAVLD来对编码流进行解码的情况下,赋予“rbSp_Slice_trailing_bitS”,以作为片末
端信息。划分点检测部139,在由步骤S106判别为不示出“输出”后(步骤S106的“否”),或者,在由步骤S108执行片末端处理后,将末端处理完成通知M2传递给片头插入部133(步骤S110)。然后,划分点检测部139,判别是否从片头插入部133接受了片头处理完成通知 M3 (步骤SlU)。在此,划分点检测部139,若判别为未接受片头处理完成通知M3 (步骤Sl 12 的“否”),则等待到接受片头处理完成通知M3为止。另一方面,划分点检测部139,在由步骤S112判别为接受了片头处理完成通知M3时(步骤S112的“是”),判别在编码流中是否存在要作为下一个处理对象的数据,即判别是否要结束输出处理(步骤S114)。在此,划分点检测部139,在判别为要结束时(步骤Sl 14的“是”),结束处理,在判别为不要结束时(步骤S114的“否”),再次,将要作为下一个处理对象的数据输出并保存到划分流缓冲器152(步骤Sl 10)。接着,对跳过运行修正部137a的工作详细地说明。跳过运行修正部137a,如上所述对作为MB跳过运行信息的“mb_skip_rim”进行修正。MB跳过运行信息是,对编码方法利用CAVLC时编码流中包含的代码字,且表示连续的跳过宏块的个数(以下,也称为“长度”)。并且,以下的说明中,MB跳过运行信息的长度意味着,MB跳过运行信息表示的连续的跳过宏块的个数。图16A及图16B是用于说明MB跳过运行信息的修正处理的说明图。在图16A所示的图片中,在MB行L2的末尾存在五个、在MB行L3的开头存在三个、在MB行L5的末尾存在两个、在MB行L6的开头存在四个连续的跳过宏块。因而,在包含这样的图片的编码流中,表示跨越MB行L2至L3连续的跳过宏块的个数的长度8(5+3 = 8) 的MB跳过运行信息被编码,表示跨越MB行L5至L6连续的跳过宏块的个数的长度6 (2+4 =6)的MB跳过运行信息被编码。但是,在这样的情况下,若将图片按每个MB行划分,将这些MB行分配到不同的划分流,则在各个划分流中,连续被跳过的宏块的数量不同。也就是说,表示跨越多个MB行连续的跳过宏块的个数的MB跳过运行信息带来的、该多个MB行间的依赖关系混乱了。也就是说,包含在第一划分流中的MB行是Ll及L5,在MB行L5的末尾存在连续的两个跳过宏块。并且,包含在第二划分流中的MB行是L2及L6,MB行存在跨越L2到L6连续的九个跳过宏块。并且,包含在第三划分流中的MB行是L3及L7,MB行在L3的开头存在连续的三个跳过宏块。并且,包含在第四划分流中的MB行是L4及L8,不存在跳过宏块。以上,相对于原来包含在编码流中的MB跳过运行信息是长度8和6,需要对第一划分流输出长度2的MB跳过运行信息、对第二划分流输出长度9的MB跳过运行信息、对第三划分流输出长度3的MB跳过运行信息。也就是说,根据表示跨越多个MB行连续的跳过宏块的个数的MB跳过运行信息,在该多个MB行相互具有依赖关系的情况下,需要修正MB跳过运行信息,以使该依赖关系成为对应于各划分流中的MB行的前后关系的新的依赖关系。所以,跳过运行修正部137a,首先,在与由片数据层解码部13 解码的MB跳过运行信息对应的跳过宏块的集合跨越多个MB行存在的情况下,在MB行边界将MB跳过运行信息划分。在此,所谓在MB行边界将MB跳过运行信息划分,这意味着,将跨越多个MB行连续的多个跳过宏块的个数划分、生成分别表示每个MB行的跳过宏块的个数的多个MB跳过运行信息。也就是说,在图16A所示的图片的情况下,跳过运行修正部137a,将对应于跨越MB 行L2至L3存在的八个跳过宏块的集合的MB跳过运行信息划分为对应于包含在MB行L2 中的五个跳过宏块的集合的MB跳过运行信息、和对应于包含在MB行L3中的三个跳过宏块的集合的MB跳过运行信息。同样,跳过运行修正部137a,将对应于跨越MB行L5至L6存在的六个跳过宏块的集合的MB跳过运行信息划分为对应于包含在MB行L5中的两个跳过宏块的集合的MB跳过运行信息、和对应于包含在MB行L6中的四个跳过宏块的集合的MB跳过运行信息。接着,跳过运行修正部137a,将划分后的MB跳过运行信息中的、对应于在各划分流中连续的跳过宏块的集合的多个MB跳过运行信息重新结合。这里,所谓多个MB跳过运行信息的重新结合意味着,将多个MB跳过运行信息变换为表示该多个MB跳过运行信息分别表示的个数的总和的一个MB跳过运行信息。在图16A所示的图片的情况下,与划分后的MB跳过运行信息对应的跳过宏块的集合中的、包含在MB行L2中的长度5的跳过宏块的集合以及包含在MB行L6中的长度4的跳过宏块的集合在第二划分流内连续。因此,跳过运行修正部137a将分别对应于这些两个跳过宏块的集合的两个MB跳过运行信息结合,变换为长度9的MB跳过运行信息。最后,跳过运行修正部137a将这样得到的MB跳过运行信息再次编码,将编码后的 MB跳过运行信息输出。如以上说明,跳过运行修正部137a在将输入的MB跳过运行信息在MB行边界划分后,通过根据需要重新结合,能够对各划分流输出适当长度的MB跳过运行信息。另外,这里跳过运行修正部137a不使在各划分流中连续的MB跳过运行信息为划分的原状、而根据需要重新结合,是因为在H. 264/AVC标准中不允许连续存在多个MB跳过运行信息。也就是说,在H. ^4/AVC标准中,由于不允许使用多个MB跳过运行信息表现连续的跳过宏块的个数,所以跳过运行修正部137a将该多个MB跳过运行信息结合。这样, 通过跳过运行修正部137a以依据H. 264/AVC标准的形式将MB跳过运行信息修正,以依据 H. ^4/AVC标准的形式生成各划分流。结果,后级的解码引擎120能够不需要特别的处理而将划分流解码。并且,在图16B所示的图片中,在MB行L2的末尾存在五个连续的跳过宏块,在MB 行L6的开头存在三个连续的跳过宏块。因而,在包含这样的图片的编码流中,在MB行L2 中编码有长度5的MB跳过运行信息,在MB行L6中编码有长度3的MB跳过运行信息。在该图片的情况下,由于不存在表示跨越多个MB行连续的跳过宏块的个数的MB 跳过运行信息,所以跳过运行修正部137a不需要在MB行边界将MB跳过运行信息划分。但是,在将该图片按每个MB行划分、将这些MB行分配到不同的划分流的情况下,在第二划分流中连续存在长度5的MB跳过运行信息和长度3的MB跳过运行信息。因而,如该例那样,在不存在表示跨越多个MB行连续的跳过宏块的个数的MB跳过运行信息的情况下,跳过运行修正部137a也进行将在各划分流中表示一个连续的跳过宏块的个数的多个MB跳过运行信息重新结合的处理。也就是说,跳过运行修正部137a,在第二划分流中,将长度5的MB跳过运行信息与长度3的MB跳过运行信息结合,变换为长度8 的MB跳过运行信息。跳过运行修正部137a将这样得到的MB跳过运行信息再次编码,将编码后的MB跳过运行信息输出。图17是表示跳过运行修正部137a的结构的方框图。跳过运行修正部137a具备跳过运行提取部160、跳过运行划分部161、跳过运行累积和保持部162、加法部163、以及跳过运行编码部164。跳过运行提取部160,从由片数据层解码部输出的流中,检测并提取MB跳过运行信息。将提取出的MB跳过运行信息对跳过运行划分部161输出,将除此以外的信息原样对划分点检测部139a输出。 跳过运行划分部161,根据MB跳过运行信息的长度和MB跳过运行信息所存在的宏块的位置信息,判断被输入的MB跳过运行信息是否表示跨越多个MB行连续的跳过宏块的个数。这里,在判断为表示跨越多个MB行连续的跳过宏块的个数的情况下,跳过运行划分部161,将MB行边界作为划分点,将MB跳过运行信息划分。将划分后的MB跳过运行信息中的、表示跨越MB行边界后的跳过运行宏块的个数的MB跳过运行信息输出给加法部163,将表示没有越过MB行边界的跳过宏块的个数的MB跳过运行信息输出给跳过运行累积和保持部 162。 另外,也有MB跳过运行信息表示跨越三个以上的MB行连续的跳过宏块的个数的情况。在此情况下,由于在连续的跳过宏块之间存在两个以上的MB行边界,所以跳过运行划分部161将各个MB行边界作为划分点而进行反复划分。此时,将划分后的MB跳过运行信息中的、表示越过了最后的MB行边界后的跳过宏块的个数的MB跳过运行信息输出给加法部163,将除此以外的MB跳过宏块信息输出给跳过运行累积和保持部162。跳过运行累积和保持部162,接受从跳过运行划分部161输出的被划分的MB跳过运行信息,按每个划分流保持其值作为先行MB跳过运行信息。也就是说,跳过运行累积和保持部162,在接受到包含于第一划分流中的MB跳过运行信息的情况下,作为第一划分流的先行MB跳过运行信息保持。并且,跳过运行累积和保持部162,在接受到包含于第二划分流中的MB跳过运行信息的情况下,作为第二划分流的先行MB跳过运行信息保持。并且,跳过运行累积和保持部162,在接受到包含于第三划分流中的MB跳过运行信息的情况下,作为第三划分流的先行MB跳过运行信息保持。并且,跳过运行累积和保持部162,在接受到包含于第四划分流中的MB跳过运行信息的情况下,作为第四划分流的先行MB跳过运行信息保持。此时,在已经在跳过运行累积和保持部162中保持有先行MB跳过运行信息的情况下,跳过运行累积和保持部162,将从跳过运行划分部161接受到的MB跳过运行信息累积, 按照划分流保持该值作为新的MB跳过运行信息。也就是说,跳过运行累积和保持部162,按每个划分流,将从跳过运行划分部161接受到的MB跳过运行信息加到保持的先行MB跳过运行信息上。加法部163,从跳过运行划分部161接受MB跳过运行信息,而且将对应于包含有该 MB跳过运行信息的划分流的、保持在跳过运行累积和保持部162中的先行MB跳过运行信息读出。而且,加法部163,将从跳过运行划分部161接受到的MB跳过运行信息的值、与从跳过运行累积和保持部162读出的先行MB跳过运行信息的值相加,将其结果作为修正后的 MB跳过运行信息,输出给跳过运行编码部164。通过该处理进行MB跳过运行信息的重新结
I=I ο跳过运行编码部164,通过将从加法部163输出的修正后的MB跳过运行信息重新编码而输出给划分点检测部139a,将修正后的MB跳过运行信息再次埋入到流中。图18是表示跳过运行修正部137a的MB跳过运行信息的修正工作的流程图。首先,跳过运行修正部137a判断处理中的流是否到达了片末端(步骤S200)。这是因为,由于MB跳过运行信息不表示跨越片边界连续的跳过宏块的个数,所以当到达了片末端时,需要将保持在跳过运行修正部137a的内部中的先行MB跳过运行信息全部输出。这里,若判断为到达了片末端(步骤S200的“是”),则前进到步骤S2M的处理。处理的详细情况在后面叙述。另一方面,若判断为没有到达片末端(步骤S200的“否”),则跳过运行修正部137a 检查是否已获得了 MB跳过运行信息“mb_skip_rUn”(步骤S202)。这里,在还没有获得MB 跳过运行信息的情况下(步骤S202的“否”),跳过运行修正部137a回到处理的最初,再次
继续读取流。另一方面,在获得了 MB跳过运行信息的情况下(步骤S202的“是”),跳过运行修正部137a根据包含有该MB跳过运行信息的宏块的地址信息计算图片内的宏块的位置(步骤S204)。这里,跳过运行修正部137a,确定由所获得的MB跳过运行信息表示的连续的跳过宏块中的、开头的跳过宏块的位置。跳过运行修正部137a,若在步骤S204中计算出宏块的位置,则通过根据该宏块的位置信息和MB跳过运行信息的长度,检查连续的跳过宏块是否到达MB行边界,判断是否需要将所获得的MB跳过运行信息划分(步骤S206)。更具体地讲,在将开头的跳过宏块的水平位置及垂直位置分别表现为“mbposh”、 “mbposv”、将图片的水平方向的总宏块数表现为“PicWidthlnMbs”的情况下,当“mb_skip_ run彡PicWidthlnMbs-mbposh”成立时,跳过运行修正部137a判断连续的跳过宏块到达MB 行边界。另外,这里表示了以MB行为单位将流划分的结构,但在以其他划分单位将流划分的情况下也同样,只要跳过运行修正部137a根据宏块的位置信息和MB跳过运行信息的长度判断连续的跳过宏块是否到达划分边界即可。在判断为连续的跳过宏块到达MB行边界的情况下(步骤S206的“是”),跳过运行修正部137a为了将MB跳过运行信息划分而前进到步骤S216。后面进行详细说明。在判断为连续的跳过宏块没有到达MB行边界的情况下(步骤S206的“否”),跳过运行修正部137a判断该MB跳过运行信息是否位于MB行的开头(步骤S208)。也就是说, 跳过运行修正部137a对于该MB跳过运行信息,判断是否需要与先行MB跳过运行信息的结
I=I ο在判断为该MB跳过运行信息位于MB行的开头的情况下(步骤S208的“是”), 跳过运行修正部137a通过对MB跳过运行信息“mb_skip_rUn”加上先行MB跳过运行信息 "prev_mb_skip_run",进行MB跳过运行信息的重新结合(步骤S210)。另外,该MB跳过运行信息的重新结合处理需要对每个划分流独立地进行。也就是说,先行MB跳过运行信息按照每个划分流保持在跳过运行修正部137a中,加上与包含有该MB跳过运行信息的MB行对应的、先行MB跳过运行信息。在步骤S208中判断为该MB跳过运行信息不位于MB行的开头的情况下(步骤S208 的“否”),或者在步骤S210中执行了 MB跳过运行信息的结合之后,跳过运行修正部137a进行MB跳过运行信息的重新编码处理(步骤S212)。这是为了使划分流成为依据HJ64/AVC 标准的形式。然后,跳过运行修正部137a,将重新编码后的MB跳过运行信息输出给划分点检测部139a,结束处理(步骤S214)。并且,在步骤S206中判断为连续的跳过宏块到达了 MB行边界的情况下(步骤 S206的“是”),跳过运行修正部137a,将MB行边界作为划分点,将对应的MB跳过运行信息划分为前半部和后半部(步骤S216)。另外,在连续的跳过宏块到达了 MB行边界但没有跨越MB行边界的情况下,后半部也可以是0。进而,跳过运行修正部137a,将划分后的MB跳过运行信息中的前半部作为先行MB 跳过运行信息“prev_mb_skip_run”保持在内部。此时,在保持于跳过运行修正部137a中的先行MB跳过运行信息已经存在的情况下,跳过运行修正部137a,将新产生的MB跳过运行信息的前半部的长度加上已保持的先行MB跳过运行信息的长度并保持(步骤S218)。另夕卜,如上所述,将先行MB跳过运行信息作为与包含其自身的MB行对应的划分流的先行跳过运行信息,按每个划分流独立地保持。接着,跳过运行修正部137a,在将划分后的MB跳过运行信息中的后半部设定为新的MB跳过运行信息之后(步骤S220),判断该长度是否是0 (步骤S222)。在步骤S222中判断新的MB跳过运行信息的长度是0的情况下(步骤S222的“是”),跳过运行修正部137a认为不再有要处理的MB跳过运行信息,结束处理。在步骤S222中判断为新的MB跳过运行信息的长度不是0的情况下(步骤S222 的“是”),跳过运行修正部137a认为还存在要处理的MB跳过运行信息,回到步骤S204,再次进行MB跳过运行信息的划分和重新结合及输出处理。通过这样跳过运行修正部137a反复进行MB跳过运行信息的划分和重新结合,对于跨越3MB行以上的MB跳过运行信息也正确地进行划分和重新结合处理。另一方面,在步骤S200中判断为是片末端的情况下(步骤S200的“是”),为了将保持在跳过运行修正部137a中的先行MB跳过运行信息输出,而将先行MB跳过运行信息 "prev_mb_skip_run"原样替换为MB跳过运行信息“mb_Skip_run” (步骤S2M)。然后,前进到步骤S212的处理,跳过运行修正部137a将替换后的MB跳过运行信息重新编码后,输出给划分点检测部139a并结束处理(步骤S212至S214)。另外,对所有的划分流进行该先行MB跳过运行信息的输出。以上说明的处理由跳过运行修正部137a反复进行,直到流的结束。这样,在跳过运行修正部137a中,适当地进行MB跳过运行信息的划分和重新结合。接着,对QP德尔塔修正部138a、138b的工作详细地说明。另外,在以后的说明中, 在说明对QP德尔塔修正部138a、138b共通的功能及处理工作时,不将它们区别而总称作QP 德尔塔修正部138。QP德尔塔修正部138,按每个宏块来修正作为原则存在的QP变化量“mb_qp_ delta”。所谓QP变化量,是为了将作为宏块的量化参数的QP值解码而包含在编码流中的代码字,表示对象宏块与在其紧前处理的宏块的QP值的差分值。QP值的解码通过下式(1)进行。QPY = ((QPY, P RE V+ mb _ q ρ _ d e 11 a + 5 2 + 2 女 QpBdOffsetY) % (52+QpBd0ff setY)) -QpBdOffsetY......(1)这里,QPY表示处理对象宏块的亮度的QP值,QPY, PREV表示紧前的宏块的亮度的 QP值。另外,QpBdOffsetY是由构成图片的像素的比特深度决定的值,在一般使用的8比特深度的情况下,是QpBdOffsetY = 0。在此情况下,上述式(1)可以如下式( 这样改写。QPY = (QPY,PREV+mb_qp_delta+52) % 52......(2)由式⑵可知,在像素的比特深度是8的情况下,QP值使用QP变化量“mb_qp_ delta”解码,以成为0至51的范围。另外,“mb_qp_delta”是能够取至+25的范围的值。作为量化参数的QP值的解码在处理顺序上连续的宏块间有依赖关系,但在中途有片的边界的情况下,在那里依赖关系被消除。也就是说,作为量化参数的QP值在片的开头通过片QP值初始化。在片的开头的宏块中,编码有该宏块的QP值与片QP值的差分值作为QP变化量。图19A及图19B是用于说明QP变化量的修正处理的说明图。若着眼于图19A所示的图片中的宏块C,则本来在其紧前进行处理的宏块是宏块 B。因而,在宏块C中,编码有宏块B的QP值与宏块C的QP值的差分值作为QP变化量。但是,若将这样的图片按每个MB行划分,而这些MB行被分配到不同的划分流,则在各个划分流中,MB行边界处的宏块的前后关系变化。
也就是说,在流划分后,在包含有宏块C的第二划分流中,位于宏块C紧前的宏块为宏块A。因而,在此状态下解码引擎120将第二划分流解码的情况下,对于宏块A的QP 值,反映了作为宏块B的QP值与宏块C的QP值的差分值的QP变化量,不能将宏块C的QP 值正确地解码。也就是说,表示跨越两个MB行的宏块间的变化量的QP变化量带来的该MB 行间的依赖关系混乱了。所以,QP德尔塔修正部138,进行QP变化量的修正,以校正因将流划分而产生的宏块的前后关系的变化。也就是说,在由于表示跨越两个MB行的宏块间的变化量的QP变化量而这两个MB行具有依赖关系的情况下,修正QP变化量,以使该依赖关系成为对应于各划分流中的MB行的前后关系的新的依赖关系。作为QP变化量的修正方法,可以考虑在对所有的宏块进行QP值的解码(QP值的复原)后、基于流划分后的新的宏块的前后关系重新计算QP变化量的方法。但是,在该方法中,需要QP值解码和QP变化量计算的两个处理,QP德尔塔修正部138中的处理量变大。所以,在本实施例中,QP德尔塔修正部138,通过按照每个划分流来累积没有对对象划分流分配的宏块的QP变化量,由此不将QP值解码而直接导出修正后的QP变化量。这里,利用附图对通过QP变化量累积进行的修正QP变化量的导出进行说明。图20是用于说明QP变化量的累积的说明图。在图中,横轴表示QP值,QP 1至QP4表示连续的宏块中的QP值。并且,在图中示出了表示各个QP值的差分值的“mb_qp_delta”。添加在“mb_qp_delta”的末尾的两位的数字的高位侧表示对应于先行的宏块的QP值的号码,低位侧表示对应于后续的宏块的QP 值的号码。例如,“mb_qp_delta 12”表示QPl与QP2的差分值。并且,如图所示,“mb_qp_ delta”表示作为QP值的最小值的0和作为最大值的51连续相连的轴上的QP值的差分值。在通常的QP值的解码处理中,可以根据QPl和“mb_qp_delta12”,使用式⑵求出 QP2。并且,同样可以根据QP2和“mb_qp_delta23”求出QP3。并且,可以根据QP3和“mb_ qp_delta34” 求出 QP4。这里,如图所示,“mb_qp_deltal2”、“mb_qp_delta23”、“mb_qp_delta34”所表示的 QP变化量的合计等于表示QPl与QP4的差分值的“mb_qp_delta14”。也就是说,可知为了求出不相邻的宏块间的QP变化量,只要将其之间的所有的QP变化量“mb_qp_delta”累积即可。而且,根据下式(3)进行累积。acc_mb_qp_delta = (acc_mb_qp_deIta +mb_qp_delta +52) % 52......(3)这里,“acc_mb_qp_delta”表示累积的“mb_qp_delta”。这样,通过以符合式O) 的形式累积“mb_qp_delta”,在图20所示的作为QP值的最小值的0和作为最大值的51连续相连的轴上,能够求出QP变化量的合计。作为具体的例子,对图19A所示的图片中的宏块C的QP变化量的修正处理进行说明。如上所述,在流划分后的第二划分流中,由于位于宏块C紧前的宏块是宏块A,所以在宏块C中,需要包括宏块A的QP值与宏块C的QP值的差分值作为QP变化量。所以,QP德尔塔修正部138将包含在MB行L3至L5中的所有的宏块的QP变化量和宏块C的QP变化量累积。通过这样将处于宏块A与宏块C之间的所有的宏块的QP变化量累积,能够求出作为宏块A的QP值与宏块C的QP值的差分值的修正QP变化量。
另外,这里求出的QP变化量因为通过式(3)导出,所以为表示0至51的范围的值。 由于本来的QP变化量“mb_qp_delta”是取至+25的范围的值,所以QP德尔塔修正部 138通过下式(4)修正,以使QP变化量“mb_qp_delta”成为至+25的范围。在 acc_mb_qp_delta > 25 时mb_qp_delta = acc_mb_qp_delta_52在acc—mb—qp—delta < 25 时mb—qp—delta = acc—mb—qp—delta......(4)另外,由式⑷表示的处理既可以在如这里所示那样在对QP变化量“mb_qp_ delta”的累积对象的所有的宏块累积后、最后仅通过1次进行,也可以对累积对象的所有的宏块按每一个宏块进行。并且,这里着眼于宏块C进行了说明,但对所有的MB行的开头的宏块也进行同样的处理。例如,对于宏块C的下方向上相邻的宏块,通过累积MB行L4至L6的所有的宏块的QP变化量,对该宏块进行反映,由此导出修正后的QP变化量。这些处理按照每个划分流独立地进行。最后,QP德尔塔修正部138,将这样得到的修正QP变化量再次编码,将编码后的修正QP变化量对划分点检测部139输出。另外,QP德尔塔修正部138a以CAVLC方式进行编码,QP德尔塔修正部138b以CABAC方式进行编码。如以上说明,QP德尔塔修正部138,通过将输入的QP变化量修正以使其符合划分流中的宏块的前后关系,能够对各划分流设定适当的QP变化量。结果,后级的解码引擎120 能够不需要特别的处理而将划分流解码。并且,在图19B中,表示在MB行L4和L5的边界将片划分的情况的例子。在该例中,MB行Ll至L4包含在片A中,MB行L5至L8包含在片B中。此时,在第二划分流中,与图19A同样,宏块A和宏块C连续,但包含各个宏块的片不同,在宏块A与宏块C之间不再有依赖关系。在第二划分流中,由于宏块C为片B的开头的宏块,所以宏块C的QP变化量需要表示宏块C的QP值与片B的片QP值的差分值。也就是说,QP德尔塔修正部138,通过对包含在宏块A到宏块C之间的宏块中的、 包含在片B中的宏块进行QP变化量的累积,能够求出与片B的片QP值的差分值。但是,实际上片是否被划分,在片B的开头到达之前不能判断。所以,QP德尔塔修正部138,对包含在宏块A到宏块C之间的所有宏块进行QP变化量的累积,而且在片B的开头的宏块的处理开始时,将累积QP变化量“acc_mb_qp_delta” 复位为0。通过这样,能够仅对包含在片B中的宏块进行QP变化量的累积,能够正确地求出宏块C的修正QP变化量。将这样得到的修正QP变化量再次编码,将编码后的修正QP变化量对划分点检测部139输出。图21是示出QP德尔塔修正部138的QP变化量的修正处理的流程图。若开始宏块的处理,则首先,QP德尔塔修正部138,根据处理对象宏块的地址信息,计算图片内的宏块的位置(步骤S300)。接着,QP德尔塔修正部138,判断处理对象宏块是否是片的开头(步骤S302)。在判断处理对象宏块是片的开头的情况下(步骤S302的“是”),将对应于所有的划分流的累积QP变化量“aCC_mb_qp_delta”复位为0 (步骤S304)。通过该处理,在中途片被划分的情况下,能够正确地导出与片QP值的QP变化量。另外,这里根据是否是片的开头的宏块来决定是否将累积QP变化量复位,但只要能够在片的开头将累积QP变化量复位就可以,所以也可以是在片头到来的时刻将累积QP变化量复位的结构。在步骤S302中判断为处理对象宏块不是片的开头的情况下(步骤S302的“否”), 或者在步骤S304中进行了累积QP变化量的复位后,QP德尔塔修正部138,根据在步骤S300 中求出的宏块的位置信息,判断处理对象宏块的划分流的输出目的地(步骤S306)。在步骤S306中判断处理对象宏块的输出目的地是第一划分流的情况下,QP德尔塔修正部138,对对应于第二、第三、第四划分流的累积QP变化量,将处理对象宏块的QP变化量按照式(3)累积(步骤S308)。并且,在步骤S306中判断处理对象宏块的输出目的地是第二划分流的情况下,QP 德尔塔修正部138,对对应于第一、第三、第四划分流的累积QP变化量,将处理对象宏块的 QP变化量按照式⑶累积(步骤S310)。并且,在步骤S306中判断处理对象宏块的输出目的地是第三划分流的情况下,QP 德尔塔修正部138,对对应于第一、第二、第四划分流的累积QP变化量,将处理对象宏块的 QP变化量按照式(3)累积(步骤S312)。并且,在步骤S306中判断处理对象宏块的输出目的地是第四划分流的情况下,QP 德尔塔修正部138,对对应于第一、第二、第三划分流的累积QP变化量,将处理对象宏块的 QP变化量按照式⑶累积(步骤S314)。这样,在步骤S308至步骤S314中,进行对应于作为处理对象宏块的输出目的地的划分流以外的划分流的QP变化量的累积。这意味着在各划分流中,进行包含在没有分配到对象的划分流的3MB行中的宏块的QP变化量的累积。通过这样的处理,QP德尔塔修正部 138,能够将相对于没有分配到对象的划分流的3MB行在前后的宏块的QP值的差分值正确地校正。在步骤S308、步骤S310、步骤S312、步骤S314中进行QP变化量的累积之后,QP德尔塔修正部138,根据在步骤S300中求出的宏块的位置信息,确定处理对象宏块是否位于 MB行的开头(步骤S316)。另外,这里表示了以MB行为单位划分流的结构,但在以其他划分单位划分流的情况下也同样,QP德尔塔修正部138,只要根据宏块的位置信息判断处理对象宏块是否位于划分单位的开头即可。在判断为处理对象宏块位于MB行的开头的情况下(步骤S316的“是”),QP德尔塔修正部138,对于与包含有处理对象宏块的划分流对应的累积QP变化量,将处理对象宏块的QP变化量按照式(3)累积。接着,QP德尔塔修正部138,将得到的累积QP变化量按照式(4)修正以使其成为46至+25的范围后,替换为处理对象宏块的QP变化量。进而,QP 德尔塔修正部138,将对应于包含有处理对象宏块的划分流的累积QP变化量复位为0 (步骤 S318)。这样,在步骤S318中,通过将累积的QP变化量反映到MB行开头的宏块的QP变化量中,进行QP变化量的修正。在判断为处理对象宏块没有位于MB行的开头的情况下(步骤S316的“否”),或者在步骤S318中进行了处理对象宏块的QP变化量的修正之后,QP德尔塔修正部138进行处理对象宏块的QP变化量的重新编码处理(步骤S320)。这是为了使划分流成为依据H. 264/ AVC标准的形式。然后,QP德尔塔修正部138将重新编码后的QP变化量输出给划分点检测部139,结束处理(步骤S322)。
以上,QP德尔塔修正部138,在对MB行的开头宏块进行QP变化量的修正之后,对于MB行的开头以外的宏块原样进行QP变化量的重新编码和输出处理。
如上所述,在本实施例的图像解码装置100中,编码后的图片被划分为多个MB行 (构成单位),多个MB行的每一个被分配到N个解码引擎120而被解码,以作为划分流的一部分,因此,能够使由N个解码引擎120的解码处理的负担均等化,从而能够适当地执行解码的并行处理。例如,在H. 264/AVC的编码图片由一个片构成的情况下,该编码图片也被划分为多个MB行,因此,能够将该一个片的解码,不由一个解码引擎120负担,而由N个解码引擎120均等负担。
在此,有时,若编码图片被划分为多个MB行,则跨越多个MB行的片被划分为多个片部分(例如,图3示出的各个MB行Ll至L6,或MB行L7中的开头六个宏块的集合等), 这些片部分被分配到相互不同的划分流。也就是说,在一个划分流中没有包含编码图片的片的整体,而包含由作为该片的片断的片部分集合一个以上而构成的片部分群(例如包含在图3所示的第二划分流中的MB行L2、L6)。并且,也存在这些片部分群(MB行L2,L6)中不包含示出其开头的片头、或示出其末端的片末端信息的情况。
进而,有由于包含在编码流中的规定的代码字而多个MB行具有依赖关系的情况。例如,在H. 264/AVC中,有通过MB跳过运行信息“mb_skip_run”、或QP变化量“mb_qp_ delta”而多个MB行相互具有依赖关系的情况。若将这样的编码流划分为多个MB行而分配到相互不同的划分流,则不能正确地保持MB行间的依赖关系。
所以,在本实施例中,流划分部130将该片部分群重新构成为新的片。结果,将包括该片部分群的划分流解码的解码引擎120不需要用来识别该片部分群而适当地解码的特别的处理,能够将片部分群作为新的片简单地识别并适当地解码。也就是说,在本实施例中,由于不需要设置对N个解码引擎120分别进行特别的处理的功能及结构,所以能够使图像解码装置100的整体结构变得简单。
并且,在本实施例的图像解码装置100中,与所述专利文献1的图像解码装置相比能够实现解码处理的高速化。具体而言,在所述专利文献1的图像解码装置中,不进行编码流的可变长解码以及解块滤波处理的并行化。也就是说,在所述专利文献1的图像解码装置中,不适当地划分编码流。另一方面,在本实施例的图像解码装置100中,由于将编码流适当地划分为多个划分流,所以解码引擎120分别如图49所示的解码引擎1421那样,能够并行地执行可变长度解码及解块过滤处理。结果,在本实施例的图像解码装置中,能够实现解码处理的高速化。
并且,在本实施例的图像解码装置中,与所述专利文献3的图像解码装置相比,能够减少中间数据缓冲器所需要的容量。具体而言,在所述专利文献3的图像解码装置中,将编码流中包含的可变长代码,利用多个可变长解码处理部以图片为单位并行解码,将其解码数据保存到中间数据缓冲器,后级的图像解码处理部,根据该解码数据以MB行为单位并行进行解码处理。也就是说,在所述专利文献3的图像解码装置中,将可变长代码以解码的状态来保存到中间数据缓冲器,因此,中间数据缓冲器所需要的容量变大。特别是,为了多个可变长解码处理部以图片为单位高效率地进行并行工作,而中间数据缓冲器需要能够保存多个图片的容量,其大小非常大。另一方面,在本实施例的图像解码装置100中,以不将可变长代码解码的状态来生成划分流,因此,能够减少划分流缓冲器152的容量。
并且,这样的本实施例的图像解码装置100,按照输入到M个流划分部130的所述的模式信息,执行高分辨率解码、高速解码、以及多通道解码之中的某个。
图22A是用于说明本发明的高分辨率解码的说明图。图22B是用于说明本发明的高速解码的说明图。图22C是用于说明本发明的多通道解码的说明图。
图像解码装置100的M个流划分部130以及流划分控制部140,如图22A示出,若获得指示高分辨率解码的执行的模式信息,则将的编码流划分为如上所述的四个划分流,使各个解码引擎120对四个划分流的每一个进行解码。
例如,四个解码引擎120的每一个,具有能够对两个通道的HD的图像(1920X1088 像素,60i)进行解码的处理能力,因此,图像解码装置100,能够实时地处理的图像 (3840X2160 像素,60p)。
并且,图像解码装置100的M个流划分部130以及流划分控制部140,如图22B示出,若获得指示高速解码的执行的模式信息,则将HD的编码流划分为如上所述的四个划分流,使各个解码引擎120对四个划分流的每一个进行解码。
例如,四个解码引擎120的每一个,具有能够对两个通道的HD的图像(1920X1088 像素,60i)进行解码的处理能力,因此,图像解码装置100,能够以8倍速GXW来处理HD 的图像。
图像解码装置100的M个流划分部130以及流划分控制部140,如图22C示出,若获得指示多通道解码的执行的模式信息,则不将多个HD的编码流划分,而使各个解码引擎 120对多个编码流的每一个进行解码。而且,在该多通道解码的情况下,M个流划分部130 不进行SPS、PPS以及片等的各种NAL单元的复制以及插入,而仅进行向划分流缓冲器152 的各个区域的编码流(通道)的分配。
例如,四个解码引擎120的每一个,具有能够对两个通道的HD的图像(1920X1088 像素,60i)进行解码的处理能力,因此,图像解码装置100,能够同时对最大八个通道进行解码,即能够同时对八个HD的编码流进行解码。并且,在对最大通道数以下的通道(编码流)进行解码的情况下,能够试图降低解码引擎120的时钟频率来减少耗电量。例如,在对四个通道进行解码的情况下,使第一解码引擎120和第二解码引擎120的每一个执行两个通道的解码,使剩余的第三解码引擎120和第四解码引擎120停止。或者,使用第一解码引擎120至第四解码引擎120,并将它们的时钟频率成为1/2。
由此,本实施例的图像解码装置100能够根据模式信息将解码处理切换为高分辨率解码、高速解码和多通道解码的某个,所以能够提高用户的使用方便性。而且,图像解码装置100中的高分辨率解码和高速解码的每一个是相同的处理,即将编码流划分为四个划分流,并对它们并行进行解码的处理。也就是说,高分辨率解码与高速解码,只有解码对象的编码流的分辨率/帧率(41^业或皿)不同。因此,图像解码装置100,按照模式信息,将解码处理在高分辨率解码或高速解码与多通道解码之间进行切换,进一步,按照编码流的分辨率/帧率,将解码处理在高分辨率解码与高速解码之间进行切换。
(实施例2)
接着,详细说明本发明的实施例2。
实施例1的图像解码装置100,通过将MB跳过运行信息及QP变化量修正,将在划CN 102550029 A分前的编码流中连续的MB行间的依赖关系修正为对应于各划分流中的MB行的前后关系的依赖关系。
这里,有时在编码流中包括不包含QP变化量的宏块。不包含QP变化量的宏块相当于没有量化的宏块。具体而言,H. 264/AVC标准中的、不包含QP变化量的宏块例如是(1) 跳过宏块、( 非压缩的宏块(I_PCM)、或者(3)内部预测的预测模式不是“Intra16X16”、 而且“COded_blOCk_pattern”是0 (非0系数一个都不包含)的宏块。
在这样的不包含QP变化量的宏块存在于MB行的开头的情况下,实施例1的图像解码装置100由于不存在作为修正对象的QP变化量,所以不能修正QP变化量。
所以,实施例2的图像解码装置200的一个特征是,在从MB行的开头包含有不包含QP变化量的宏块的编码流生成多个划分流时,将QP变化量插入到包含该宏块的划分流中。由此,图像解码装置200能够适当地设定基于各划分流中的新的前后关系的QP变化量。
这里,在划分流中插入了 QP变化量的情况下,由于在MB行间存在QP变化量,所以不能使用一个MB跳过运行信息表示跨越MB行连续的跳过宏块的个数。所以,实施例2的图像解码装置200的另一个特征是,不进行MB跳过运行信息的重新结合处理。
以下,利用附图对本实施例的图像解码装置200进行说明。
图23是表示本发明的实施例2的图像解码装置的结构的方框图。另外,在图23 中,对于与图1同样的结构要素赋予相同的标号而省略说明。
如图23所示,图像解码装置200具备解码器210和存储器150。
解码器210,与解码器110同样,通过将保存在存储器150的流缓冲器151中的编码流读出并解码而生成解码图像数据,将该解码图像数据保存到存储器150的帧存储器 153中。并且,该解码器210具备流划分控制部140、M个流划分部(第一流划分部至第M流划分部)230、以及N个解码引擎(第一解码引擎至第N解码引擎)220。
M个流划分部230除了 MB跳过运行信息的修正处理及QP变化量的修正处理以外, 执行与M个流划分部130同样的处理。流划分部230的详细情况使用图M在后面叙述。
N个解码引擎220相当于将N个划分流分别并行解码的N个解码部。N个解码引擎220除了使用由流划分部230插入到划分流中的累积QP变化量计算QP值这一点以外, 执行与N个解码引擎120同样的处理。
接着,对流划分部230的结构及工作详细地说明。
图M是表示流划分部230的结构的方框图。
流划分部230,代替处理管理部130m、选择器kt、跳过运行修正部137a及QP德尔塔修正部138a、138b而具备跳过运行修正部237a及QP德尔塔插入部238a、238b,这一点与图10所示的流划分部130不同。
处理管理部130m,与实施例1同样,获得模式信息以及分配控制信息,根据这样的信息,控制流划分部230具备的其他的构成要素。也就是说,为了进行图6A至图8所示的流划分处理,处理管理部130,例如,控制选择器kt,将由SPS、PPS、或处理应对的片生成的划分流输出,将该输出停止。
跳过运行修正部237a,与跳过运行修正部137a同样,在MB跳过运行信息表示跨越对相互不同的划分流分配的至少两个MB行而连续的宏块的个数的情况下,将MB跳过运行信息划分,以使其表示每个MB行的块的个数。
但是,跳过运行修正部237a,与跳过运行修正部137a不同,在各划分流中,不将多个MB跳过运行信息结合为一个MB跳过运行信息。
QP德尔塔插入部238a、238b,与QP德尔塔修正部138a、138b同样,在QP变化量表示跨越两个MB行的宏块间的变化量的情况下,计算基于各划分流中的宏块的新的前后关系的QP变化量。
但是,QP德尔塔插入部238a、238b将计算出的QP变化量作为新的QP变化量输出给划分点检测部139。由此,在各划分流中,插入(设定)新的QP变化量。也就是说,QP德尔塔插入部238a、238b不修正包含在各宏块中的QP变化量。
划分点检测部139a,在划分流的每一个中包含从跳过运行修正部237a获得的MB 跳过运行信息、以及从QP德尔塔插入部238a获得的累积QP变化量。
划分点检测部139b在划分流的每一个中包含从QP德尔塔插入部238b获得的累积QP变化量。
接着,以与跳过运行修正部137a及QP德尔塔修正部138a、138b的工作不同的点为中心,对跳过运行修正部237a及QP德尔塔插入部238a、238b的工作详细地说明。
另外,在以后的说明中,当说明关于QP德尔塔插入部238a、238b共通的功能及处理工作时,不将它们区别而总称作QP德尔塔插入部238。
图25是用于说明MB跳过运行信息的修正处理及QP变化量的插入处理的说明图。
在图25所示的图片中,在MB行L2的末尾存在五个、在MB行L3的开头存在三个、 在MB行L5的末尾存在两个、在MB行L6的开头存在四个连续的跳过宏块。
并且,如上所述,在跳过宏块中不包含QP变化量。因而,在宏块C中,编码有宏块 B的QP值与宏块C的QP值的差分值作为QP变化量。
但是,若将这样的图片按每个MB行划分,而这些MB行被分配到不同的划分流,则在各个划分流中,MB行边界处的宏块的前后关系变化。
也就是说,在流划分后,在包含宏块C的第二划分流中,位于宏块C紧前的、包含QP 变化量的宏块为宏块A。因而,在此状态下解码引擎220将第二划分流解码的情况下,对于宏块A的QP值,反映了作为宏块B的QP值与宏块C的QP值的差分值的QP变化量,不能将宏块C的QP值正确地解码。
所以,QP德尔塔插入部238,将用于向MB行插入的新的QP变化量输出给划分点检测部139,以校正通过将流划分而发生的宏块的前后关系的变化。也就是说,QP德尔塔插入部238,通过QP变化量表示跨越两个MB行的块间的QP值的差分值,由此在这两个MB行具有依赖关系的情况下,将用于插入到MB行的开头中的新的QP变化量输出给划分点检测部 139,以使其将该依赖关系割断。
另外,在本实施例中,在MB行的开头插入了 QP变化量,但并不一定需要在MB行的开头插入QP变化量。例如,也可以在MB行的开头的宏块内等的其他地方中插入QP变化量。
作为用于插入到MB行的开头中的QP变化量的计算方法,与实施例1同样,可以考虑通过对所有的宏块复原QP值而计算QP变化量的方法、以及通过将没有分配到对象划分流的宏块的QP变化量累积而计算QP变化量的方法。在本实施例中,对后者的计算方法进行说明。
QP德尔塔插入部238,计算将包含在MB行L3至L5中的、包括QP变化量的所有的宏块的QP变化量累积的累积QP变化量。而且,QP德尔塔插入部238,将计算出的累积QP 变化量再次编码,将编码后的累积QP变化量作为新的QP变化量输出给划分点检测部139。 结果,如图25所示,累积QP变化量被插入到MB行L6的开头。也就是说,在第二划分流中, 设定累积QP变化量、以及原来包含在宏块C中的QP变化量。另外,累积QP变化量的详细的计算方法与实施例1是同样的,所以省略说明。
另外,这里着眼于MB行L6而进行了说明,但QP德尔塔插入部238对于其他行,也为了将累积QP变化量插入到MB行的开头而将编码后的累积QP变化量输出给划分点检测部139。例如,QP德尔塔插入部238,作为用于插入到MB行L7的开头中的累积QP变化量, 计算将包含在MB行L4至L6中的、包括QP变化量的所有的宏块的QP变化量累积后的累积 QP变化量。而且,QP德尔塔插入部238,将计算出的累积QP变化量编码,将编码后的累积 QP变化量输出给划分点检测部139。这些处理按照每个划分流独立地进行。
这样,在本实施例中,由于累积QP变化量被插入在MB行的开头,所以跳过宏块没有跨越MB行连续。也就是说,跳过运行修正部237a,与实施例1的跳过运行修正部137a不同,不进行MB跳过运行信息的结合处理。
例如,在图25所示的图片的情况下,跳过运行修正部237a,与跳过运行修正部 137a同样,将对应于跨越MB行L2至L3存在的八个跳过宏块的MB跳过运行信息划分为对应于包含在MB行L2中的五个跳过宏块的MB跳过运行信息、和对应于包含在MB行L3中的三个跳过宏块的MB跳过运行信息。同样,跳过运行修正部237a,将对应于跨越MB行L5至 L6存在的六个跳过宏块的MB跳过运行信息划分为对应于包含在MB行L5中的两个跳过宏块的MB跳过运行信息、和对应于包含在MB行L6中的四个跳过宏块的MB跳过运行信息。
这里,在包含于MB行L2中的五个连续的跳过宏块、与包含在MB行L6中的四个连续的跳过宏块之间,如上述那样插入累积QP变化量作为新的QP变化量。所以,跳过运行修正部237a,不将对应于包含在MB行L2中的五个连续的跳过宏块的MB跳过运行信息、与对应于包含在MB行L6中的四个连续的跳过宏块的MB跳过运行信息重新结合。
另外,跳过运行修正部237a,与跳过运行修正部137a同样,将这样得到的MB跳过运行信息再次编码,将编码后的MB跳过运行信息输出。
图沈是表示跳过运行修正部237a的结构的方框图。另外,在图沈中,对于与图 17同样的结构要素赋予相同的标号而省略详细的说明。
跳过运行修正部237a具备跳过运行提取部160、跳过运行划分部161、以及跳过运行编码部164。也就是说,跳过运行修正部237a与从实施例1的跳过运行修正部137a除去了跳过运行累积和保持部162和加法部163的结构是同样的。另外,跳过运行划分部161 将划分后的MB跳过运行信息输出给跳过运行编码部164。
图27是表示跳过运行修正部237a的MB跳过运行信息的修正工作的流程图。另外,在图27中,对于进行与图18同样的处理的步骤赋予相同的标号而省略说明。
首先,跳过运行修正部237a检查是否已获得了 MB跳过运行信息“mb_skip_ run"(步骤S2(^)。也就是说,跳过运行修正部237a不判别处理的流是否到达了片末端。 这是因为,如后所述,跳过运行修正部237a在内部中没有保持先行MB跳过运行信息,所以不需要到达了片末端时的先行MB跳过运行信息的输出处理。
这里,在还没有获得MB跳过运行信息的情况下(步骤S202的“否”),跳过运行修正部237a回到处理的最初而再次继续读取流。
另一方面,在获得了 MB跳过运行信息的情况下(步骤S202的“是”),跳过运行修正部237a与实施例1同样,根据包含有该MB跳过运行信息的宏块的地址信息,计算图片内的宏块的位置(步骤S204)。
接着,跳过运行修正部237a与实施例1同样,判断是否需要将所获得的MB跳过运行信息划分(步骤S206)。
这里,在判断为连续的跳过宏块到达MB行边界的情况下(步骤S206的“是”),跳过运行修正部237a为了将MB跳过运行信息划分而前进到步骤S216。后面进行详细说明。
另一方面,在判断为连续的跳过宏块没有到达MB行边界的情况下(步骤S206的 “否”),跳过运行修正部237a进行MB跳过运行信息的重新编码处理(步骤S212)。这里, 不执行图18所示的步骤S208及步骤S210的处理是因为,本实施例的跳过运行修正部237a 不将MB跳过运行信息重新结合。
然后,跳过运行修正部237a将重新编码后的MB跳过运行信息输出给划分点检测部139a,结束处理(步骤S214)。
并且,在步骤S206中判断为连续的跳过宏块到达MB行边界的情况下(步骤S206 的“是”),跳过运行修正部237a与实施例1同样,将MB行边界作为划分点,将该MB跳过运行信息划分为前半部和后半部(步骤S216)。
进而,跳过运行修正部237a将划分后的MB跳过运行信息中的前半部作为MB跳过运行信息重新编码(步骤S250)。然后,跳过运行修正部237a将重新编码后的MB跳过运行信息输出给划分点检测部139a(步骤S252)。也就是说,在本实施例中,由于不需要将MB 跳过运行信息重新结合,所以不像实施例1那样将先行MB跳过运行信息保持在内部中。
接着,跳过运行修正部237a与实施例1同样,将划分后的MB跳过运行信息中的后半部设定为新的MB跳过运行信息之后(步骤S220),判断其长度是否是0 (步骤S222)。
在步骤S222中判断为新的MB跳过运行信息的长度是0的情况下(步骤S222的 “是”),跳过运行修正部237a认为不再有要处理的MB跳过运行信息,结束处理。
在步骤S222中判断为新的MB跳过运行信息的长度不是0的情况下(步骤S222 的“是”),跳过运行修正部137a认为还存在要处理的MB跳过运行信息,回到步骤S204,再次进行MB跳过运行信息的划分及输出处理。
将以上说明的处理在跳过运行修正部237a中反复进行直到流的结束。这样,在跳过运行修正部237a中,适当地进行MB跳过运行信息的划分。
图28是表示QP德尔塔插入部238的累积QP变化量的插入处理的流程图。另外, 在图观中,对于进行与图21同样的处理的步骤赋予相同的标号而省略详细的说明。
若开始宏块的处理,则QP德尔塔插入部238与实施例1同样,执行步骤S300至步骤S316的处理。
而且,在判断为处理对象宏块位于MB行的开头的情况下(步骤S316的“是”),QP 德尔塔插入部238将与被分配了处理对象宏块的划分流对应的累积QP变化量编码,输出给划分点检测部139 (步骤S35》。也就是说,QP德尔塔插入部238在输出MB信息之前输出累积QP变化量。
接着,QP德尔塔插入部238将对应于包含有处理对象宏块的划分流的累积QP变化量复位为0 (步骤S3M)。而且,QP德尔塔插入部238将MB信息输出给划分点检测部139, 结束处理(步骤S356)。也就是说,QP德尔塔插入部238,在MB信息中包含有QP变化量的情况下,将QP变化量不修正而原样输出。
另一方面,在判断为处理对象宏块没有位于MB行的开头的情况下(步骤S316的 “否” ),QP德尔塔插入部238将MB信息输出给划分点检测部139,结束处理(步骤S350)。 也就是说,QP德尔塔插入部238,在MB信息中包含有QP变化量的情况下,不修正该QP变化量而输出MB信息。
以上,QP德尔塔插入部238为了插入到MB行的开头而将累积的新的QP变化量 (累积QP变化量)、以及包含在编码流中的QP变化量输出给划分点检测部139。
这样,在本实施例的图像解码装置200中,与实施例1的图像解码装置100同样, 能够使N个解码引擎220的解码处理的负担变得均等,能够适当地执行解码的并行处理。
特别是,若是位于MB行的开头的宏块不包含QP变化量的情况,本实施例的图像解码装置200也通过将新的QP变化量插入到MB行中,在并行进行解码处理时能够得到正确的QP值。
并且,这样的本实施例的图像解码装置200,与实施例1的图像解码装置100同样, 根据输入到M个流划分部230中的模式信息,执行图22A至图22C所示的高分辨率解码、高速解码、以及多通道解码中的某个。
由此,本实施例的图像解码装置200能够根据模式信息将解码处理切换为高分辨率解码、高速解码和多通道解码的某个,所以能够提高用户的使用方便性。
(实施例3)
接着,详细说明本发明的实施例3。
图四是表示本发明的实施例3的图像编码装置的结构的方框图。
本实施例的图像编码装置300是以简单的结构来适当地执行编码的并行处理的装置,图像编码装置300具备编码器310以及存储器360。
存储器360具有用于存储输入到编码器310的原图像数据、由编码器310生成的中间数据的区域。
具体而言,存储器360具备帧存储器361、划分流缓冲器362、M个部分流缓冲器 (第一部分流缓冲器至第M部分流缓冲器)363。
帧存储器361,保存成为编码对象的图片的原图像数据,并且,保存由N个编码引擎(编码部)320生成的N个划分局部解码图像数据。划分流缓冲器362,保存由编码器310 生成的N个划分流,以作为所述的生成的中间数据。而且,划分流缓冲器362具有针对N个编码引擎320的每一个分配的区域。M个部分流缓冲器363的每一个,保存由编码器310生成的部分流(结合编码区域)。
编码器310,通过将保存在存储器360的帧存储器361的原图像数据读出并编码, 从而生成并输出编码流。并且,该编码器310具备N个编码引擎(第一编码引擎至第N编码引擎)320、M个流结合部(第一流结合部至第M流结合部)330、流结合控制部340、多路复用部350。
而且,本实施例的编码引擎320,具有能够对两个通道的HD的图像(1920X1088像素,60i)进行编码的处理能力。
N个编码引擎320,获得模式信息,按照该模式信息,将成为编码对象的图片的原图像数据按每个MB行或MB行组读出,并行执行编码。也就是说,本实施例的图像编码装置 300,与实施例1的图像解码装置100同样,将图片划分为多个MB行或MB行组,将各个编码处理分配到N个编码引擎320,从而实现编码处理的并行化。
进而,N个编码引擎320的每一个,在由画面内预测对宏块进行编码时,从对位于该编码对象宏块的左上、上以及右上的宏块进行了编码以及局部解码的编码引擎320获得这些局部解码后的宏块的信息,以作为相邻MB信息。获得了该相邻MB信息的编码引擎320, 利用该相邻MB信息,对编码对象宏块进行编码。并且,编码引擎320,例如,在进行解块滤波处理、运动矢量预测处理、可变长编码处理的情况下,也与所述相同,获得位于处理对象的宏块的左上、上以及右上的编码以及局部解码后的宏块的信息,以作为相邻MB信息,从而进行所述的处理。
而且,本实施例中,为了使说明简化,以下,将N设为N = 4进行说明。并且,本实施例中,N(N = 4)个编码引擎320的每一个,若从编码对象的宏块看左、左上、上、以及右上的宏块的编码结束,则利用这些相邻MB信息,开始该编码对象的宏块的编码。其结果为,第一编码引擎320至第四编码引擎320的每一个,对位于各个MB行中的水平方向上的相互不同的位置的宏块并行进行编码。
图30A是示出不利用MBAFF而对图片进行编码的情况下的编码的顺序的图。
在不利用MBAFF而对图片进行编的情况下,第一编码引擎320对第零MB行进行编码,第二编码引擎320对第一 MB行进行编码,第三编码引擎320对第二 MB行进行编码,第四编码引擎320对第三MB行进行编码。而且,第k(k为0以上的整数)MB行示出从图片的上端第k的MB行,例如,第零MB行为从图片的上端第零的MB行。
在此,在开始图片的编码时,首先,第一编码引擎320开始第零MB行的编码。其次, 若位于第零MB行的左端的两个宏块的编码完成,则第二编码引擎320开始第一 MB行的左端的宏块的编码。而且,若位于第一 MB行的左端的两个宏块的编码完成,则第三编码引擎 320开始第二MB行的左端的宏块的编码。同样,若位于第二MB行的左端的两个宏块的编码完成,则第四编码引擎320开始第三MB行的左端的宏块的编码。
因此,第(k+1)MB行,与第kMB行相比,延迟两个宏块,从左端的宏块到右端的宏块为止被编码。
图30B是示出利用MBAFF对图片进行编码的情况下的编码的顺序的图。
在利用MBAFF对图片进行编码的情况下,与不利用MBAFF而对图片进行编码的的情况相同,第一编码引擎320对第零MB行组进行编码,第二编码引擎320对第一 MB行组进行编码,第三编码引擎320对第二 MB行组进行编码,第四编码引擎320对第三MB行组进行编码。而且,第k (k为0以上的整数)MB行组示出由从图片的上端第k的两个MB行而成的构成单位,例如,第零MB行组为由从图片的上端第零的两个MB行而成的构成单位。
在此,在开始图片的编码时,首先,第一编码引擎320开始第零MB行组的编码。其次,若位于第零MB行组的左端的两个宏块组的编码完成,则第二编码引擎320开始第一 MB 行组的左上端的宏块的编码。而且,若位于第一 MB行组的左端的两个宏块组的编码完成, 则第三编码引擎320开始第二 MB行组的左上端的宏块的编码。同样,若位于第二 MB行组的左端的两个宏块组的编码完成,则第四编码引擎320开始第三MB行组的左上端的宏块的编码。
因此,第(k+1) MB行组,与第kMB行组相比,延迟两个宏块组,从左端的宏块组到右端的宏块组为止被编码。
而且,在利用不MBAFF而对图片进行编码的情况、以及利用MBAFF对图片进行编码的情况的每一个情况下,第(k+l)MB行或第(k+l)MB行组,与第kMB行或第kMB行组相比, 至少延迟两个宏块或两个宏块组而被编码即可。也就是说,也可以延迟三个宏块或三个宏块组以上而被编码。例如,在第(k+1) MB行或第(k+1) MB行组,与第kMB行或第kMB行组相比,延迟两个宏块或两个宏块组而被编码的情况下,能够使图片的编码所需要的时间最短, 在延迟三个宏块或三个宏块组以上而被编码的情况下,按照该延迟的分量,图片的编码所需要的时间变长。
而且,N个编码引擎320,在利用作为编码方法的CAVLC进行编码的情况下,进行包含可变长编码处理的编码处理,但是,在利用作为编码方法的CABAC进行编码的情况下,仅进行可变长编码处理中的代码字的二值化,而不进行算术编码。这是因为,在由CABAC方式的算术编码处理中,由于N个编码引擎320跨越多个MB行具有依赖关系,因此不能进行并行处理。在此,由N个编码引擎320不执行的算术编码处理,由后述的M个流结合部330执行。但是,即使在利用作为编码方法的CABAC进行编码的情况下,也按每个片暂时赋予开始代码,并且插入EPB (模仿防止字节)。
如此由N个编码引擎320分别编码后的数据,被保存到划分流缓冲器362,以作为 N个划分流。
流结合控制部340,获得后述的模式信息,按照该模式信息,为了使M个流结合部 330的流结合处理的处理量均等,针对各个流结合部330的每一个,通知用于将流结合处理以规定的单位来分配的分配控制信息。本实施例中说明,流结合控制部340将M个流结合部 330的流结合处理,以片为单位来分配。也就是说,流结合控制部340,通过分配控制信息的通知,按编码流中将要包含的生成对象的每个片,使M个流结合部330中的某一个执行,针对该片的流结合处理。例如,分配控制信息表示,用于识别成为流结合处理的对象的片的片号码。进而,流结合控制部340,根据将流结合处理以片为单位来分配到M个流结合部330 的结果,针对多路复用部350通知选择信息,该选择信息表示从M个部分流缓冲器363之中的哪个部分流缓冲器363要获得部分流。
M个流结合部330,分别获得模式信息以及分配控制信息,按照该模式信息以及分配控制信息,从划分流缓冲器362提取将要处理的片中包含的N个划分流(第一划分流至第N划分流),结合提取的N个划分流,从而将该片重新构成为规定的单位。也就是说,本实施例的流结合部330,按由流结合控制部340分配的每个片,将构成该片的N个划分流,分别划分为多个MB行。而且,流结合部330,将这样的多个MB行的每一个,依次分配到作为生成对象的片,从而将划分流结合为一个,重新构成片。所述的流结合处理是指,如此,将由N个编码引擎320生成的N个划分流的每一个中包含的、与原图像数据的原来的片相对应的片 (部分区域),重新构成为一个片(结合编码区域)的处理。而且,在该流结合处理中,在由编码后的多个MB行(构成单位)构成片(部分区域)的情况下,将该片划分为编码后的多个MB行并重新组合,S卩,如上所述,将该多个MB行依次分配到作为生成对象的片,从而生成所述的一个片(结合编码区域)。并且,M个流结合部330,并行执行该流结合处理。据此,M个流结合部330分别将重新构成后的片作为部分流来生成。
而且,M个流结合部330分别从划分流缓冲器362所保存的N个划分流的每一个中探索开始代码,从而提取由分配控制信息通知的片。
并且,在利用作为编码方法的CABAC进行编码的情况下,M个流结合部330,一边对 N个划分流进行算术编码一边重新构成片。
M个流结合部330,将如此重新构成的片,作为M个部分流(第一部分流至第M部分流),保存到M个对应的部分流缓冲器363。也就是说,第一流结合部330,将第一部分流保存到第一部分流缓冲器363,第二流结合部330,将第二部分流保存到第二部分流缓冲器 363,第M流结合部330,将第M部分流保存到第M部分流缓冲器363。
并且,M个流结合部330的每一个,在将片作为规定的单位处理来生成部分流时, 将SPS、PPS、片头等的头信息附随于片来输出。
多路复用部350,获得模式信息以及选择信息,按照该模式信息以及选择信息,从 M个部分流缓冲器363的某个中读出将要处理的部分流,依次输出读出的部分流,从而将M 个部分流多路复用,其结果为,生成并输出一个编码流。
例如,在根据由流结合控制部340的选择信息,被通知为从第一部分流缓冲器363 获得部分流的情况下,多路复用部350,从第一部分流缓冲器363中读出第一部分流。并且, 在根据由流结合控制部340的选择信息,被通知为从第M部分流缓冲器363获得部分流的情况下,多路复用部350,从第M部分流缓冲器363中读出第M部分流。而且,多路复用部 350,将从M个部分流缓冲器363中读出的部分流多路复用,作为编码流来输出。
这样的本实施例的图像编码装置300的特征是,由流结合部330,将N个划分流中包含的片分别划分为多个MB行,将它们结合,从而重新构成新的一个片。片的重构包含,片头的插入处理、片末端处理、跳过运行修正处理、以及QP德尔塔修正处理。
图31是用于说明片头的插入处理以及片末端处理的说明图。
该图中,示出由图片的MB行0至MB行5构成一个片并编码的情况的例子。
N个编码引擎320,对该片中包含的相互不同的MB行并行进行编码。其结果为,N 个编码引擎320,分别将由一个或多个MB行构成的数据作为单独的片来进行编码。也就是说,第一编码引擎320,将由MB行0以及MB行4构成的数据作为单独的片来进行编码,第二编码引擎320,将由MB行1以及MB行5构成的数据作为单独的片来进行编码,第三编码引擎320,将由MB行2构成的数据作为单独的片来进行编码,第四编码引擎320,将由MB行3 构成的数据作为单独的片来进行编码。
其结果为,如图31的(a)至(d)示出,由N个编码引擎320生成的各个划分流中包含的片包含,一个或多个MB行的数据和片末端信息。也就是说,第一划分流包含MB行0 以及MB行4的数据和片末端信息eel,第二划分流包含MB行1以及MB行5的数据和片末端信息ec2,第三划分流包含MB行2的数据和片末端信息ec3,第四划分流包含MB行3的数据和片末端信息ec4。
流结合部330,将这样的第一划分流至第四划分流的每一个的片结合,重新构成新的片,从而生成部分流(结合编码区域)。
具体而言,流结合部330,针对新的片赋予适当的片头,并分配到部分流。接着,流结合部330,从第一划分流提取MB行0的数据,并分配到部分流。同样,流结合部330,从第二划分流提取MB行1的数据,并分配到部分流。
接着,流结合部330,从第三划分流提取MB行2的数据。MB行2的数据中附随片末端信息ec3,但是,由于将要重新构成的新的片继续到MB行5,因此除去片末端信息ec3, 设为MB行2以后也继续片,来将MB行2分配到部分流。同样,流结合部330,从第四划分流提取MB行3的数据以及片末端信息ec4,但是,除去片末端信息ec4,设为MB行3以后也继续片,来将MB行3分配到部分流。同样,流结合部330,从第一划分流提取MB行4的数据以及片末端信息ecl,但是,除去片末端信息ecl,设为MB行4以后也继续片,来将MB行4分配到部分流。
最后,流结合部330,从第二划分流提取MB行5的数据以及片末端信息ec2。流结合部330,将MB行5分配到部分流,并且,除去片末端信息ec2,针对重新构成的新的片生成适当的片末端信息ecc,并分配到部分流。
在此,针对重新构成的新的片重新赋予适当的片末端信息ecc,这是因为,存在由 MB行的结合重新构成的新的片末尾的比特位置,与原来的划分流的片末尾的比特位置不同的可能性。流结合部330,通过针对重新构成的新的片赋予适当的片末端信息,从而将片的末尾与字节边界一致。
如此,流结合部330,对片进行适当的片头的插入以及片末端处理,并且,将从各个划分流提取的MB行的数据结合,从而能够重新构成依据图像编码装置300输出的编码流的方式的片。
接着,说明由流结合控制部340进行的片的分配处理。
如上所述,本实施例的图像编码装置300具备,N个编码引擎320和M个流结合部 330,实现运动图像数据(原图像数据)的编码处理的并行化。如此,由于能够进行系统整体的并行处理,因此实现提高编码处理整体的性能。
在此,M个流结合部330,将由N个编码引擎320生成的各个划分流的片作为规定的单位来结合,从而重新构成新的片,但是,由于片的大小不一定,因此其处理量按每个片变动。
并且,即使在所有的片的大小一定的系统中,由于处理的对象为编码后的流,因此其处理量也依赖于每个片的代码量。在一般的运动图像编码方式中,编码流被可变长编码, 按照数据的内容,代码量变动。并且,H.264/AVC方式的片,有所谓I片、P片、B片等的种类。存在以下的倾向,即,进行画面内编码处理的I片的代码量多,进行画面内编码处理以外还进行画面间编码处理的P片、和B片的代码量少。如此,编码流中包含的编码片的代码量不一定,会大大变动。因此,仅将由N个编码引擎320生成的各个划分流依次分配到M个流结合部330,不能使各个流结合部330的处理量均等,不能充分得到由并行化的处理性能提高的效果。
因此,流结合控制部340,将各个片分配到流结合部330的每一个,以使各个流结合部330的处理量均等。
图32A以及图32B是示出由流结合控制部340的片的分配处理的具体例子的说明图。而且,在本实施例中,为了简化说明,以下,将M设为M = 2来进行说明。
图32A示出由N个编码引擎320生成的N个划分流的例子。在该例子中,N个划分流(第一划分流至第四划分流)由构成图片的片数据(片)构成。图片0仅由片0构成。图片1由片1以及片2构成。图片2由片3片以及片4构成。
图32B是示出由流结合控制部340的一连串的片的分配处理的图。在开始处理时, 各个流结合部330,保持将要处理的片的号码。例如,第一流结合部330保持Sm = 0,以作为将要处理的片的号码的初始值,第二流结合部330保持SN2 = 0,以作为将要处理的片的号码的初始值。
流结合控制部340,按照各个流结合部330的处理状况,通过发送分配控制信息, 向各个流结合部330通知片的重新构成,并且,指示各个流结合部330根据需要赋予SPS、 PPS等的头信息。
被通知片的重新构成的流结合部330,将包含对象的片的多个划分流从划分流缓冲器362中读出,将读出多个划分流分别划分为MB行,重新结合划分后的MB行,并且,进行片头的赋予等,从而重新构成新的片。以下,将流结合部330的这样的一连串的处理记载为流结合处理。
在定时t0,第一流结合部330以及第二流结合部330都没有进行流结合处理。因此,流结合控制部340,通过发送分配控制信息,向第一流结合部330通知片0的流结合,并且,指示在流的开头要存在的SPS的赋予,并且,指示在图片0的开头要存在的PPSO的赋予。并且,流结合控制部340,通过发送分配控制信息,向第二流结合部330通知片1的流结合处理,并且,指示在图片1的开头要存在的PPSl的赋予。而且,本实施例中,例如,分配控制信息表示,用于识别成为流结合处理的对象的片的片号码、以及用于指示是否要赋予SPS 或PPS的信息。
第一流结合部330,在通过分配控制信息由流结合控制部340通知片0的流结合的情况下,对被通知流结合的片的片号码、与保持为将要处理的片的号码的sm的值进行比较。在此定时,两者一致为0,因此,第一流结合部330,对最初输入的片进行流结合处理。
具体而言,第一流结合部330,首先,生成并赋予SPS以及PPS0。接着,第一流结合部330,对片0进行流结合处理,并且,将生成的部分流的新的片0输出到第一部分流缓冲器 363。
另一方面,第二流结合部330,在通过分配控制信息由流结合控制部340通知片1 的流结合的情况下,对被通知流结合的片的片号码、与保持为将要处理的片的号码的SN2 的值进行比较。在此定时,被通知流结合的片的片号码表示1,SN2表示0,其差分为1。于是,第二流结合部330,跳过输入的一个片的处理,对第二输入的片进行流结合处理。也就是说,第二流结合部330,跳过对差分的数量的片的流结合处理。
具体而言,第二流结合部330,首先,跳过输入的片0的流结合处理。而且,通过探索附随于划分流的开始代码,从而跳过流结合处理。在此,第二流结合部330,由于跳过片0 的流结合处理,因此将SN2增大为SN2 = 1。
接着,第二流结合部330,由于被通知流结合的片的片号码与SN2的值一致,因此, 生成并赋予PPS1,并且,对片1进行流结合处理,将生成的部分流的新的片1输出到第二部分流缓冲器363。
在定时tl,由第二流结合部330的对片1的流结合处理结束,因此,第二流结合部 330,向流结合控制部340通知处理完成,并且,通知向第二部分流缓冲器363输出的部分流的信息。具体而言,通知向部分流缓冲器363实际输出的构成PPS 1以及片1的NAL单元的个数。
在此,第二流结合部330,将对PPSl和片1的总计两个NAL单元进行了处理的情况通知给流结合控制部;340。同时,第二流结合部330,由于对片1的流结合处理已结束,因此将SN2增大为SN2 = 2。从第二流结合部330接受处理完成的通知后,流结合控制部340, 向第二流结合部330通知片2的流结合。
第二流结合部330,在由流结合控制部340通知片2的流结合的情况下,对被通知流结合的片的片号码、与保持为将要处理的片的号码的SN2的值进行比较。在此定时,两者一致为2,因此,第二流结合部330,对最初输入的片进行流结合处理。具体而言,第二流结合部330,对片2进行流结合处理。
在定时t2,由第一流结合部330的对片0的流结合处理结束,因此,第一流结合部 330,向流结合控制部340通知处理完成,并且,通知构成SPS、PPSO以及片0的NAL单元的个数“3”,以作为向第一部分流缓冲器363输出的部分流的信息。同时,第一流结合部330, 由于对片0的流结合处理已结束,因此将sm增大为sm = 1。从第一流结合部330接受处理完成的通知后,流结合控制部340,通过分配控制信息,向第一流结合部330通知片3的流结合,并且,指示在图片2的开头要存在的PPS2的赋予。
第一流结合部330,在由流结合控制部340通知片3的流结合的情况下,对被通知流结合的片的片号码、与保持为将要处理的片的号码的sm的值进行比较。在此定时,被通知流结合的片的片号码表示3,SN2表示1,其差分为2。于是,第一流结合部330,跳过输入的两个片的处理,对第三输入的片进行流结合处理。
具体而言,第一流结合部330,首先,跳过输入的片1的流结合处理。在此,第一流结合部330,由于跳过片1的流结合处理,因此将Sm增大为Sm = 2。接着,片2输入到第一流结合部330,但是,由于被通知流结合的片的片号码与sm的值还不一致,因此跳过输入的片2的处理。在此,第一流结合部330,由于跳过片2的处理,因此将sm增大为sm = 3。
接着,第一流结合部330,由于被通知流结合的片的片号码与Sm的值一致,因此, 生成并赋予PPS2,并且,对片3进行流结合处理,将生成的部分流的新的片3输出到第一部分流缓冲器363。
在定时t3,由第二流结合部330的对片2的流结合处理结束,因此,第二流结合部 330,向流结合控制部340通知处理完成,并且,通知构成片2的NAL单元的个数“ 1 ”,以作为向第二部分流缓冲器363输出的部分流的信息。同时,第二流结合部330,由于对片2的流结合处理已结束,因此将SN2增大为SN2 = 3。从第二流结合部330接受处理完成的通知后,流结合控制部340,向第二流结合部330通知片4的流结合。
第二流结合部330,在由流结合控制部340通知片4的流结合的情况下,对被通知流结合的片的片号码、与保持为将要处理的片的号码的SN2的值进行比较。在此定时,被通知流结合的片的片号码表示4,SN2表示3,其差分为1。于是,第二流结合部330,跳过输入的一个片的处理,对第二输入的片进行流结合处理。
具体而言,第二流结合部330,首先,跳过输入的片3的流结合处理。在此,第二流结合部330,由于跳过片3的流结合处理,因此将SN2增大为SN2 = 4。
接着,第二流结合部330,由于被通知流结合的片的片号码与SN2的值一致,因此,对片4进行流结合处理,并且,将生成的部分流的新的片4输出到第二部分流缓冲器363。
在定时t4,由第一流结合部330的对片3的流结合处理结束,因此,第一流结合部 330,向流结合控制部340通知处理完成,并且,通知构成PPS2以及片3的NAL单元的个数 “2”,以作为向第一部分流缓冲器363输出的部分流的信息。同时,第一流结合部330,由于对片3的流结合处理已结束,因此将Sm增大为SNl = 4。
同样,在定时t5,由第二流结合部330的对片4的流结合处理结束,因此,第二流结合部330,向流结合控制部340通知处理完成,并且,通知构成片4的NAL单元的个数“1”, 以作为向第二部分流缓冲器363输出的部分流的信息。同时,第二流结合部330,由于对片 4的流结合处理已结束,因此将SN2增大为SN2 = 5。
如上所述,流结合控制部340,针对处理完成的流结合部330,依次分配片的流结合处理。据此,各个流结合部330的处理量均等。
图33是示出进行图32B示出的片的分配以及流结合处理时的部分流缓冲器363 的状态的图。
在第一部分流缓冲器363,保存与片0以及片3相对应的部分流。并且,在第二部分流缓冲器363,保存与片1、片2以及片4相对应的部分流。如此,在两个部分流缓冲器 363,按照各个流结合部330的处理量,分散保存片,因此各个片的保存顺序不一定。
因此,流结合控制部340,为了使多路复用部350能够按照与流结合处理前的划分流相同的顺序获得部分流,而将表示从M个部分流缓冲器363之中哪个部分流缓冲器要获得部分流的选择信息,通知给该多路复用部350。
图34是示出进行图32B示出的片的分配以及流结合处理时的选择信息的形式的一个例子的图。
如图34示出,选择信息,按每一个片,包含部分流缓冲器信息和NAL单元数信息, 每当进行由流结合控制部340的片的分配处理时被生成。部分流缓冲器信息表示,流结合控制部340将片分配到第一流结合部330和第二流结合部330的哪一方。也就是说,部分流缓冲器信息表示,通过流结合部330的流结合处理而生成的新的片(包含新的片的部分流)被保存的部分流缓冲器。并且,NAL单元数信息,表示在流结合部330进行成为对象的片的处理时输出的NAL单元的个数,在流结合部330的处理完成时从流结合部330向流结合控制部340被通知。
由流结合控制部340生成的选择信息,被通知到多路复用部350,例如被保存到多路复用部350内的FIFO(先入先出)存储器。保存到FIFO的选择信息,按照通知的顺序由多路复用部350读出,在从部分流缓冲器363的流获得处理上利用。
具体而言,首先,多路复用部350,读出部分流缓冲器信息=1以及NAL单元数信息=3,以作为片0的选择信息。多路复用部350,根据片0的选择信息,从第一部分流缓冲器363获得三个NAL单元(3 3、? 30、片0)。接着,多路复用部350,读出部分流缓冲器信息=2以及NAL单元数信息=2,以作为片1的选择信息。多路复用部350,根据片1的选择信息,从第二部分流缓冲器363获得两个NAL单元(PPS1、片1)。接着,多路复用部350, 读出部分流缓冲器信息=2以及NAL单元数信息=1,以作为片2的选择信息。多路复用部350,根据片2的选择信息,从第二部分流缓冲器363获得一个NAL单元(片幻。接着, 多路复用部350,读出部分流缓冲器信息=1以及NAL单元数信息=2,以作为片3的选择信息。多路复用部350,根据片3的选择信息,从第一部分流缓冲器363获得两个NAL单元 (PPS2、片3)。接着,多路复用部350,读出部分流缓冲器信息=2以及NAL单元数信息=1, 以作为片4的选择信息。多路复用部350,根据片4的选择信息,从第二部分流缓冲器363 获得一个NAL单元(片4)。
如此,多路复用部350,通过利用由流结合控制部340通知的选择信息,从而能够以与N个编码引擎320生成的划分流相同的片顺序,从M个部分流缓冲器363获得部分流 (部分流的片)。
而且,利用图32A至图34说明的片的分配处理是本发明的图像编码装置300的处理工作的一个例子,本发明不仅限于在此说明的处理工作。
例如,在图32B中,在流结合控制部340向流结合部330通知片的流结合时指定片号码,但也可以,不指定片号码,而指定跳过处理的片数。在此情况下,流结合控制部340,预先存储向M个流结合部330的每一个分配了的片数,根据此计算跳过处理的片数。并且,在图32B中,在由流结合部330的片的流结合处理已结束时,流结合部330,向流结合控制部 340通知处理完成以及向部分流缓冲器363输出的NAL单元的个数,但也可以,代替向部分流缓冲器363输出的NAL单元的个数,而通知向部分流缓冲器363输出的部分流的比特数。 也就是说,能够通知使多路复用部350能够判断从部分流缓冲器363要获得的部分流的大小的信息即可。
并且,例如,在图34中,部分流缓冲器信息,直接指定部分流缓冲器363的号码,但也可以是与其号码不同的信息。也就是说,在M = 2的情况下,部分流缓冲器信息,也可以是表示与处理对象的片相对应的部分流被保存的部分流缓冲器363、是否同与紧前的片相对应的部分流被保存的部分流缓冲器363相同的信息。也就是说,部分流缓冲器信息是,从多个部分流缓冲器363能够适当地获得部分流的信息即可。并且,例如,在图34中,选择信息包含NAL单元数信息,但也可以,如上所述,代替NAL单元数信息,而包含表示部分流的比特数的信息。
在此,详细说明流结合部330的结构以及工作。
图35是示出流结合部330的结构的方框图。
流结合部330具备处理管理部330m、选择器ktl、开始代码检测部331、EPB除去部33加、EPB插入部332b、头部插入部333、以及片数据处理部33^、334b。
处理管理部330m,获得模式信息以及分配控制信息,根据这样的信息,控制流结合部330具备的其他的构成要素。也就是说,为了进行图32A至图34所示的流结合处理,处理管理部330m,例如,保持将要处理的片的代码(Sm或SN2等),根据该代码,控制选择器 ktl。其结果为,处理管理部330m,使由SPS、PPS、或处理对象的片重新构成的新的片(包含新的片的部分流)被输出,或使该输出被停止。
开始代码检测部331,从划分流缓冲器352读出N个划分流之中的某个,检测开始代码,从而识别片。
EPB除去部33 ,将EPB(模仿防止字节)从划分流中除去,将除去了 EPB的划分流输出给片数据处理部33^、334b。
EPB插入部33 ,将由EPB除去部33 除去的EPB,插入到因划分流被结合而生成的部分流中。
头部插入部333,生成SPS,、PPS、片头等的头信息,输出给EPB插入部332b。
片数据处理部33^、334b,将EPB被除去的N个划分流结合,从而重新构成片数据,输出该重新构成的片数据。这里,片数据处理部33 执行对应于CAVLD(内容适应可变长度解码Context-Adaptive Variable Length Decoding)的处理,将通过 CAVLC (内容适应可变长度编码Context-Adaptive Variable Length Coding)生成的N个划分流结合,生成部分流。并且,片数据处理部334b执行对应于CABAD (内容适应二进制运算解码 Context-Adaptive Binary Arithmetic Decoding)的处理,将通过CABAC (内容适应二进制运算编码Context-Adaptive Binary Arithmetic Coding)生成的N个划分流结合,生成部分流。
片数据处理部33 具备片数据层分析部33 、宏块层分析部336a、跳过运行修正部337a、QP德尔塔修正部338a以及划分点检测部339a。
片数据层分析部33 ,分析划分流中包含的片数据层的编码数据,提取流结合处理所需要的信息。宏块层分析部336a,分析划分流中包含的宏块层的编码数据,提取流结合处理所需要的信息。
跳过运行修正部337a,将由片数据层分析部33 提取的MB跳过运行信息“mb_ skip_rUn”修正,将修正后的MB跳过运行信息再次编码,将编码后的MB跳过运行信息输出。 也就是说,跳过运行修正部337a,当MB跳过运行信息表示在划分流中跨越连续的至少两个片部分而连续的块的个数时,将该连续的块的个数划分,将修正为表示每个片部分的块的个数的MB跳过运行信息设定在分别被分配了至少两个连续的片部分的划分流中。进而,跳过运行修正部337a,在结合划分流而生成的部分流中对应于设定的多个MB跳过运行信息的多个块在该划分流内连续时,将多个MB跳过运行信息变换为表示该多个MB跳过运行信息分别表示的个数的总和的一个MB跳过运行信息。
这里,MB跳过运行信息是表示在包含于编码图片中的片内指定种类的块连续的情况下连续的该块的个数的第一代码字的一例。具体而言,MB跳过运行信息表示连续被跳过的宏块的数量。
例如,在划分流的片中存在跨越多个MB行的连续被跳过的宏块的集合的情况下, 由片数据层分析部33 提取的MB跳运行信息示出该集合中包含的连续被跳过的宏块的数量。在此情况下,若将N个划分流按每个MB行划分,这些N个划分流中包含的MB行依次被分配到一个部分流,则在部分流内连续被跳过的宏块的数量不同。也就是说,MB跳过运行信息带来的MB行间的依赖关系混乱了。
因此,跳过运行修正部337a,按包括上述集合的一部分的每个MB行,确定构成包含在该MB行中的上述一部分的、被连续跳过的宏块的数量。而且,跳过运行修正部337a,按每个MB行,修正MB跳过运行信息,以使由MB跳过运行信息表示的数量成为相对于该MB行而确定的数量。
QP德尔塔修正部338a,按每个宏块,将由宏块层分析部336a提取的、该宏块的QP 变化量“mb_qp_delta”修正,将修正后的QP变化量再次编码,将编码后的QP变化量输出。 也就是说,QP德尔塔修正部338a,在QP变化量表示跨越两个MB行的块间的变化量的情况下,计算基于部分流中的块的新的前后关系的编码系数的变化量。而且,QP德尔塔修正部 338a,将QP变化量修正为计算出的变化量。
另外,QP变化量是表示在编码图片中包含的片内连续的块间的编码系数的变化量的第二代码字的一例。具体而言,QP变化量包含在宏块(对象宏块)中,表示该对象宏块的QP值与位于该对象宏块紧前的宏块的QP值的差分值。
也就是说,若将N个划分流按每个MB行划分,这些N个划分流中包含的MB行依次被分配到一个部分流,则夹着MB行的边界相互连续了的宏块分别被分配到部分流内的远离的位置。其结果为,将包含生成的部分流的编码流解码的解码器,根据对象宏块的QP变化量,不能导出该对象宏块的QP值。也就是说,QP变化量带来的MB行间的依赖关系混乱了。
所以,QP德尔塔修正部338a,按每个宏块,基于部分流中的新的宏块的前后关系重新计算该宏块(对象宏块)的QP变化量。
划分点检测部339a,将划分流划分为MB行,将这些MB行结合,从而生成部分流。 具体而言,划分点检测部339a,根据由片数据层分析部33 以及宏块层分析部336a提取的信息,检测划分流内的MB行的边界,按每个MB行的边界,切换流结合部330从划分流缓冲器352读出的划分流,从而以MB行为单位将N个划分流结合。并且,划分点检测部339a,针对部分流,包含从跳过运行修正部337a获得的MB跳过运行信息、以及从QP德尔塔修正部 338a获得的QP变化量。
进而,划分点检测部339a,检测并除去输入的划分流中包含的片末端信息,并且, 针对将划分流结合来重新构成的片,赋予适当的片末端信息,并分配给部分流。
片数据处理部334b具备片数据层分析部33 、宏块层分析部336b、QP德尔塔修正部338b以及划分点检测部339b。
片数据层分析部33 ,分析划分流中包含的片数据层的编码数据,提取流结合处理所需要的信息。宏块层分析部336b,分析划分流中包含的宏块层的编码数据(二值数据),提取流结合处理所需要的信息。
QP德尔塔修正部338b,与上述QP德尔塔修正部338a同样,按每个宏块,将由宏块层分析部336b提取的、该宏块的QP变化量“mb_qp_delta”修正,将修正后的QP变化量再次编码,将编码后的QP变化量输出。
划分点检测部339b,与划分点检测部339a同样,将划分流划分为MB行,将这些MB 行结合,从而生成部分流。此时,划分点检测部339b在划分流的每一个中包含从QP德尔塔修正部138b获得的QP变化量。进而,划分点检测部139b,检测并除去输入的划分流中包含的片末端信息,并且,针对将划分流结合来重新构成的片,赋予适当的片末端信息,并分配给部分流。进而,划分点检测部139b,对划分流中包含的二值数据进行算术编码。
在此,详细说明跳过运行修正部337a的工作。
跳过运行修正部337a,如上所述,对作为MB跳过运行信息的“mb_skip_rim”进行修正。MB跳过运行信息是,对编码方法利用了 CAVLC时编码流中包含的代码字,且表示连续的跳过宏块的个数(以下,也称为“长度”)。并且,以下的说明中,MB跳过运行信息的长度意味着,MB跳过运行信息表示的连续的跳过宏块的个数。
图36是用于说明MB跳过运行信息的修正处理的说明图。
图36示出,图片由N个编码引擎320编码为,在MB行L2的末尾存在五个、在MB 行L3的开头存在三个、在MB行L5的末尾存在两个、在MB行L6的开头存在四个连续的跳过宏块。因而,在包含这样编码后的图片的划分流中,表示在第一划分流的MB行L5的末尾连续的跳过宏块的个数的长度2的MB跳过运行信息被编码,表示跨越第二划分流的MB行 L2至L3连续的跳过宏块的个数的长度9 (5+4 = 9)的MB跳过运行信息被编码,表示在第三划分流的MB行L3的开头连续的跳过宏块的个数的长度3的MB跳过运行信息被编码。在第四划分流,MB跳过运行信息没有被编码。
但是,在这样的情况下,若将N个划分流按每个MB行划分,将这样的MB行结合为一个流,则在结合的流中,连续被跳过的宏块的数量不同。也就是说,表示跨越多个MB行连续的跳过宏块的个数的MB跳过运行信息带来的、该多个MB行间的依赖关系混乱了。
也就是说,在结合的流中,存在跨越MB行L2至L3连续的八个跳过宏块,存在跨越 MB行L5至L6连续的六个跳过宏块,但是,不存在除此以外的跳过宏块。
以上,对于原来包含在划分流中的MB跳过运行信息,在第一划分流存在长度2的 MB跳过运行信息,在第二划分流存在长度9的MB跳过运行信息,在第三划分流存在长度3 的MB跳过运行信息,对此,对于结合的流,需要输出长度8和6的MB跳过运行信息。也就是说,根据表示各个划分流内跨越多个MB行连续的跳过宏块的个数的MB跳过运行信息,在该多个MB行相互具有依赖关系的情况下,需要修正MB跳过运行信息,以使该依赖关系成为对应于结合的流中的MB行的前后关系的新的依赖关系。
因此,跳过运行修正部337a,首先,在与由片数据层分析部33 提取的MB跳过运行信息对应的跳过宏块的集合在一个划分流内跨越多个MB行存在的情况下,在MB行边界将MB跳过运行信息划分。在此,所谓在MB行边界将MB跳过运行信息划分意味着,将在一个划分流内跨越多个MB行连续的多个跳过宏块的个数划分、生成分别表示每个MB行的跳过宏块的个数的多个MB跳过运行信息。
也就是说,在图36所示的图片的情况下,跳过运行修正部337a,将对应于在第二划分流内跨越MB行L2至L6存在的九个跳过宏块的集合的MB跳过运行信息划分为对应于包含在MB行L2中的五个跳过宏块的集合的MB跳过运行信息、和对应于包含在MB行L6中的四个跳过宏块的集合的MB跳过运行信息。
接着,跳过运行修正部337a,将划分后的MB跳过运行信息中的、对应于在结合的流内连续的跳过宏块的集合的多个MB跳过运行信息重新结合。在此,所谓多个MB跳过运行信息的重新结合意味着,将多个MB跳过运行信息变换为表示该多个MB跳过运行信息分别表示的个数的总和的一个MB跳过运行信息。
在图36所示的图片的情况下,与划分后的MB跳过运行信息对应的跳过宏块的集合中的、包含在MB行L2中的长度5的跳过宏块的集合以及包含在MB行L3中的长度3的跳过宏块的集合在结合的流内连续。因此,跳过运行修正部337a,将分别对应于这些两个跳过宏块的集合的两个MB跳过运行信息结合,变换为长度8的MB跳过运行信息。并且,包含在MB行L5中的长度2的跳过宏块的集合以及包含在MB行L6中的长度4的跳过宏块的集合在结合的流内连续。因此,跳过运行修正部337a,将分别对应于这些两个跳过宏块的集合的两个MB跳过运行信息结合,变换为长度6的MB跳过运行信息。
最后,跳过运行修正部337a,将这样得到的MB跳过运行信息再次编码,将编码后的MB跳过运行信息输出。
如以上说明,跳过运行修正部337a,在将输入的MB跳过运行信息在MB行边界划分后,通过根据需要重新结合,能够对结合的流输出适当长度的MB跳过运行信息。
而且,在此,跳过运行修正部337a,不使在结合的流中连续的MB跳过运行信息为划分的原状、而根据需要重新结合,是因为在H. 264/AVC标准中不允许连续存在多个MB跳过运行信息。也就是说,在H. 264/AVC标准中,由于不允许使用多个MB跳过运行信息表现连续的跳过宏块的个数,所以跳过运行修正部337a将该多个MB跳过运行信息结合。这样, 通过跳过运行修正部337a以依据H. 264/AVC标准的形式将MB跳过运行信息修正,以依据 H. 264/AVC标准的形式生成结合的流。
而且,在此示出,在各个划分流内跨越多个MB行存在MB跳过运行信息的情况下, 跳过运行修正部337a进行MB跳过运行信息的划分和重新结合的例子,但是,即使在各个划分流内跨越多个MB行不存在MB跳过运行信息的情况下,也在结合的流内跨越多个MB行存在MB跳过运行信息的情况下,跳过运行修正部337a,不进行MB跳过运行信息的划分,而仅进行MB跳过运行信息的重新结合。
接着,对QP德尔塔修正部338a、338b的工作详细地说明。另外,在以后的说明中, 在说明对QP德尔塔修正部338a、338b共通的功能及处理工作时,不将它们区别而总称作QP 德尔塔修正部338。
QP德尔塔修正部338,按每个宏块来修正作为原则存在的QP变化量“mb_qp_ delta,,。
图37A及图37B是用于说明QP变化量的修正处理的说明图。
若着眼于图37A所示的图片中的宏块C,则本来在第二划分流内在其紧前进行处理的宏块是宏块A。因而,在宏块C中,编码有宏块A的QP值与宏块C的QP值的差分值作为QP变化量。
但是,若将这样的划分流按每个MB行划分,而这些MB行被结合并被分配到一个流,则在结合的流中,MB行边界处的宏块的前后关系变化。
也就是说,在流结合后,位于宏块C紧前的宏块是宏块B。因而,在解码器将如此编码后的编码流解码的情况下,对于宏块B的QP值,反映了作为宏块A的QP值与宏块C的 QP值的差分值的QP变化量,不能将宏块C的QP值正确地解码。也就是说,表示跨越两个 MB行的宏块间的变化量的QP变化量带来的该MB行间的依赖关系混乱了。
所以,QP德尔塔修正部338进行QP变化量的修正,以校正因将流结合而产生的宏块的前后关系的变化。也就是说,在由于表示一个划分流内跨越两个MB行的宏块间的变化量的QP变化量而这两个MB行具有依赖关系的情况下,修正QP变化量,以使该依赖关系成为对应于结合的流中的MB行的前后关系的新的依赖关系。
作为QP变化量的修正方法,可以考虑在对所有的宏块进行QP值的解码(QP值的复原)后、基于流结合后的新的宏块的前后关系重新计算QP变化量的方法。但是,在该方法中,需要QP值解码和QP变化量计算的两个处理,QP德尔塔修正部338中的处理量变大。
所以,在本实施例中,QP德尔塔修正部338,通过按每个划分流来累积没有对对象划分流分配的宏块的QP变化量,减去累积的QP变化量,由此不将QP值解码而直接导出修正后的QP变化量。根据式C3)进行QP变化量的累积。
作为具体例子,对图37A所示的图片中的宏块C的QP变化量的修正处理进行说明。如上所述,在结合的流中,由于位于宏块C紧前的宏块是宏块B,所以在宏块C中,需要包括宏块B的QP值与宏块C的QP值的差分值作为QP变化量。
所以,QP德尔塔修正部338将包含在MB行L3至L5中的所有的宏块的QP变化量累积。通过这样将处于宏块A与宏块C之间的所有的宏块的QP变化量累积,能够求出用于导出作为宏块B的QP值与宏块C的QP值的差分值的QP变化量的校正值。
接着,QP德尔塔修正部338,根据下式( ,从宏块C的QP变化量中减去求出的QP 变化量的累积值,导出作为宏块B的QP值与宏块C的QP值的差分值的QP变化量。
mb_qp_delta = (mb_qp_de 1 ta-acc_mb_qp_de 1 ta+52) % 52......(5)
在此,“mb_qp_delta”表示宏块C 的 QP 变化量,“acc_mb_qp_delta”表示 MB 行 L3 至L5中包含的所有的宏块的QP变化量的累积值。
另外,这里求出的QP变化量,因为通过式(5)导出,所以为表示0至51的范围的值。由于本来的QP变化量“mb_qp_delta”是取至+25的范围的值,所以QP德尔塔修正部338,通过下式(6)修正,以使QP变化量“mb_qp_delta”成为至+25的范围。
在 mb_qp_delta > 25 时mb_qp_delta = mb_qp_delta_52
在 mb_qp_delta 彡 25 时mb_qp_delta = mb_qp_delta......(6)
如上所述,进行宏块C的QP变化量的修正。
并且,这里着眼于宏块C进行了说明,但对所有的MB行的开头的宏块也进行同样的处理。例如,对于宏块C的下方向上相邻的宏块,通过累积MB行L4至L6的所有的宏块的QP变化量,将该累积值从该宏块的QP变化量中减去,由此导出修正后的QP变化量。这些处理按照每个MB行独立地进行。
并且,N个编码引擎320的每一个,在将处于各个MB行的开头的宏块编码时,进行编码,以使处于该开头的宏块成为包含QP变化量的宏块。而且,H. 264/AVC标准中的、不包含QP变化量的宏块例如是⑴跳过宏块、⑵非压缩的宏块(I_PCM)、或者(3)内部预测的预测模式不是“Intral6X16”、而且“coded_block_pattern”是0(非0系数一个都不包含)的宏块。据此,针对各个MB行的开头的宏块,能够正确地执行QP变化量的修正。
在该MB行中包含的所有的宏块不包含QP变化量的情况下,继续进行QP变化量的累积,直到成为QP变化量的修正对象的宏块出现为止。
最后,QP德尔塔修正部338将这样得到的修正QP变化量再次编码,将编码后的修正QP变化量对划分点检测部339a、339b输出。另外,QP德尔塔修正部338a以CAVLC方式进行编码,QP德尔塔修正部338b以CABAC方式进行编码。
如以上说明,QP德尔塔修正部338通过将输入的QP变化量修正以使其符合划分流中的宏块的前后关系,能够对结合的流设定适当的QP变化量。
并且,在图37B中,表示在MB行L4和L5的边界将片划分的情况的例子。在该例中,MB行Ll至L4包含在片A中,MB行L5至L8包含在片B中。
此时,在第二划分流中,与图37A同样,宏块A和宏块C连续,但包含各个宏块的片不同,在宏块A与宏块C之间不再有依赖关系。在第二划分流中,由于宏块C为片B的开头的宏块,所以宏块C的QP变化量表示宏块C的QP值与片B的片QP值的差分值。
也就是说,QP德尔塔修正部338,通过对包含在宏块A到宏块C之间的宏块中的、 包含在片B中的宏块进行QP变化量的累积,减去累积的QP变化量,能够求出宏块B与宏块 C的QP差分值。
具体而言,QP德尔塔修正部338,对包含在宏块A到宏块C之间的所有的宏块进行 QP变化量的累积,而且在片B的开头的宏块的处理开始时,将累积QP变化量“aCC_mb_qp_ delta”复位为0。通过这样,能够仅对包含在片B中的宏块进行QP变化量的累积,能够正确地求出宏块C的修正QP变化量。
将这样得到的修正QP变化量再次编码,将编码后的修正QP变化量对划分点检测部 339a,339b 输出。
如上所述,在本实施例中的图像编码装置300中,图片被划分为多个MB行(构成单位),多个MB行的每一个被分配到N个编码引擎320而被编码,因此,能够使由N个编码引擎320的编码处理的负担均等,从而能够适当地执行编码的并行处理。例如,即使在以 H. ^4/AVC形式由一个片构成一张图片的情况下,该图片也被划分为多个MB行,因此,能够将该一个片的编码,不由一个编码引擎320负担,而由N个编码引擎320均等负担。
在此,有时,若图片由N个编码引擎320独立编码,则本来在一个图片内跨越多个 MB行的片被划分为多个片部分,这样的片部分被分配到相互不同的划分流。也就是说,在一个划分流中,不包含编码图片的片整体,而包含集合作为该片的断片的片部分的一个以上而构成的片部分群。
进而,有由于包含在编码流中的规定的代码字而多个MB行具有依赖关系的情况。例如,在H. 264/AVC中,有通过MB跳过运行信息“mb_skip_run”、或QP变化量“mb_qp_ delta”而多个MB行相互具有依赖关系的情况。若将这样的编码流划分为多个MB行而分配到相互不同的划分流,则不能正确地保持MB行间的依赖关系。
于是,在本实施例中,流结合部330,通过结合N个划分流,从而重新构成新的片。 其结果为,图像编码装置300,能够生成依据H. 264/AVC形式的编码流。并且,如此,在本实施例中,由于不需要设置对N个编码引擎320分别进行特别的处理的功能及结构,所以能够使图像编码装置300的整体结构变得简单。
并且,在本实施例的图像编码装置300中,由M个流结合部330对所述的流结合处理进行处理,并且,流结合控制部340,针对M个流结合部330以片为单位分配流结合处理, 以使M个流结合部330的处理量均等。根据这样的结构,能够使M个流结合部330均等负担流结合处理,实现系统整体的编码的并行处理。
而且,在本实施例中,编码器310具备M个流结合部330,但也可以,仅具备一个流结合部330。
图38A是示出仅具备一个流结合部的图像编码装置的结构的方框图。
该图像解码装置330a具备编码器310a和存储器360a。存储器360a,与所述的存储器360同样,具备帧存储器361以及划分流缓冲器362,但是不具备部分流缓冲器363。并且,编码器310a,与所述的编码器310同样,具备N个编码引擎320,但是,代替M个流结合部330,而具备一个流结合部330b。
也就是说,流结合部330b,串行进行由M个流结合部330并行进行的多个流结合处理。也就是说,流结合部330b,若从N个编码引擎320输出的N个划分流的每一个中包含多个片,则根据这样的片的排列,依次进行流结合处理。例如,若N个划分流的每一个中包含片0、片1、片2、……片n,流结合部330b,则进行将N个划分流中包含的多个片0结合的流结合处理,接着,进行将多个片1结合的流结合处理,接着,进行将多个片2结合的流结合处理。而且,最后,流结合部330b,进行将多个片η结合的流结合处理。而且,由流结合部 330b进行的流结合处理,与由所述的流结合部330的处理同样。
而且,流结合部330b,将通过如上依次进行的流结合处理而生成的新的片(重新构成的片)依次输出。其结果为,从流结合部330b输出编码流。
也就是说,图像编码装置300a是,通过对图像数据进行编码,从而生成编码流的图像编码装置,具备N个编码部(编码引擎320),按所述图像数据中包含的每个图片,对该图片中包含的多个构成单位并行进行编码,从而生成N个(N为2以上的整数)划分流;以及流结合部(330b),按构成所述编码流的每个处理对象区域,执行通过将N个划分流的每一个中包含的、与该处理对象区域相对应的部分区域结合,从而生成作为所述处理对象区域的结合编码区域的结合处理,所述流结合部,在进行所述结合处理时,在由编码后的多个所述构成单位构成所述部分区域的情况下,通过将所述部分区域划分为编码后的多个所述构成单位后重新组合,从而生成所述结合编码区域,在进行所述重新组合时,在所述图像数据中包含的片被划分并编码为多个片部分后被分配到所述N个划分流的情况下,在所述结合编码区域内,将由编码后的多个片部分构成的片部分群重新构成为新的片。
而且,构成单位为宏块行,处理对象区域为编码流的片等,部分区域为划分流的片寸。
图38B是示图像编码装置300a的工作的流程图。
首先,图像编码装置300a的N个编码引擎320,通过按图像数据中包含的每个图片,对该图片中包含的多个构成单位并行进行编码,从而生成N(N为2以上的整数)个划分流(步骤S30)。其次,流结合部330b,通过按构成编码流的每个处理对象区域,将N个划分流的每一个中包含的、对应于该处理对象区域的部分区域结合,从而执行生成作为该处理对象区域的结合编码区域的结合处理(步骤S31)。在此,在步骤S31中,流结合部330b,在进行所述的结合处理时,在由编码后的多个构成单位构成部分区域的情况下,将该部分区域划分为编码后的多个所述构成单位并重新组合,从而生成结合编码区域。并且,流结合部 330b,在进行该重新组合时,在图像数据中包含的片被划分为多个片部分并被编码后分配到N个划分流的情况下,在结合编码区域内,将由编码后的多个片部分构成的片部分群重新构成为新的片。
如此,即使在只有一个流结合部的情况下,也在由该流结合部的流结合处理的速度,与由N个编码引擎320的并行编码处理的速度相同、或其以上时,能够充分发挥由并行编码处理的高的编码处理性能,并且,能够使图像编码装置的结构变得简单。进而,由于不需要具备流结合控制部340、多路复用部350以及M个部分流缓冲器363等,因此能够使图像编码装置整体的结构以及处理变得简单。
接着,对所述实施例1及2涉及的图像解码装置的应用例进行说明。
图39是表示所述实施例1以及2涉及的图像解码装置、以及所述实施例3涉及的图像编码装置的应用例的图。
例如,所述的图像解码装置以及图像编码装置,如图39所示,装备在接收广播波而将包含在该广播波中的编码流再生和录像的再生和录像装置101中。再生和录像装置 101具备天线101a,接收BS数字广播的广播波;以及装置本机101b,装置本机IOlb具备所述的图像解码装置以及图像编码装置。
装置本机IOlb具备的图像解码装置,例如,从由天线IOla接收的广播波中提取的编码流。而且,该图像解码装置,如上所述,划分提取的编码流来生成N个划分流,对N个划分流并行进行解码。
并且,装置本机IOlb具备的图像编码装置,将图像解码装置所解码的的图片并行地重新编码,记录到装置本机IOIb具备的记录介质。
以上,对于本发明涉及的图像解码装置以及图像解码方法,利用实施例进行了说明,但是,本发明不仅限于它们。只要不脱离本发明的宗旨,对所述实施例施行本领域的技术人员想到的各种变形的形态、或组合不同的实施例中的构成要素而构成的形态,也包含在本发明的范围内。
例如,在所述实施例中,图像解码装置100、200具备划分流缓冲器152等,但也可以,不具备它们。
图40是示出本发明涉及的图像解码装置的最小结构的方框图。
图像解码装置10是将图像数据被编码后的编码流解码的装置,具有用于实现本发明的最小结构,且具备第一划分控制部11、M个流划分部12、第二划分控制部13、以及N 个解码部14。在此,包含第一划分控制部11以及第二划分控制部13的构成要素,相当于实施例1以及2的流划分控制部140。并且,M个流划分部12,相当于实施例1的M个流划分部130或实施例2的M个流划分部230。并且,N个解码部14,相当于实施例1的N个解码引擎部120或实施例2的N个解码引擎220。
第一划分控制部11,指定编码流中包含的处理对象区域(例如,片或图片等)。也就是说,第一划分控制部11,将表示该处理对象区域的分配控制信息发送。M个流划分部12 的每一个,每当由第一划分控制部11指定处理对象区域时,执行从该处理对象区域生成N 个(N为2以上的整数)划分流的至少一部分的流划分处理。在此,M个流划分部12,针对由第一划分控制部11指定的M个(M为2以上的整数)处理对象区域并行执行所述的流划分处理,从而生成MXN个划分流。
第二划分控制部13,按由第一划分控制部11指定的每个处理对象区域,根据该处理对象区域的编码流内的配置,从由M个流划分部12生成的MXN个划分流中选择至少一个划分流的一部分。而且,所述的配置为,在编码流内配置的处理对象区域的顺序等。并且,如此,从MXN个划分流中选择至少一个划分流的一部分,相当于从实施例1以及2的M 个划分流缓冲器152中选择一个划分流缓冲器152。而且,N个解码部14,对包含由第二划分控制部13选择的至少一个划分流的一部分的、N个划分流的每一个的一部分并行进行解码。
在此,M个流划分部12的每一个,将处理对象区域划分为多个构成单位(例如,宏块行),将多个所述构成单位的每一个分配到作为生成对象的N个划分流之中的某个的一部分,从而执行所述的流划分处理。并且,M个流划分部12的每一个,在将处理对象区域划分为多个构成单位,从而该处理对象区域中包含的片被划分为多个片部分而分配到多个划分流时,按每个划分流,将由被分配到该划分流的至少一个片部分构成的片部分群重新构成为新的片。
图41是表示图像解码装置10的图像解码方法的流程图。
该图像解码方法是图像解码装置10对编码流进行解码的方法,包括第一划分控制步骤S50,指定编码流中包含的处理对象区域;流划分步骤S51,每当由第一划分控制步骤S50指定处理对象区域时,针对由第一划分控制步骤S50指定的M个(M为2以上的整数) 处理对象区域并行执行流划分处理,从而生成MXN个划分流,所述流划分处理是指从该处理对象区域生成N个(N为2以上的整数)划分流的至少一部分的处理;第二划分控制步骤 S52,按由第一划分控制步骤S51指定的每个处理对象区域,根据该处理对象区域的编码流内的配置,从由流划分步骤S51生成的MXN个划分流中选择至少一个划分流的一部分;以及解码步骤S53,每当由第二划分控制步骤S52选择至少一个划分流的一部分时,对包含该至少一个划分流的一部分的、N个划分流的每一个的一部分并行进行解码。在流划分步骤 S51中,通过将处理对象区域划分为多个构成单位,将多个所述构成单位的每一个,分配到作为生成对象的N个划分流中的某个的一部分,从而执行所述的流划分处理。并且,在流划分步骤S51中,在将处理对象区域划分为多个构成单位,从而该处理对象区域中包含的片被划分为多个片部分而分配到多个划分流时,按每个划分流,将由被分配到该划分流的至少一个片部分构成的片部分群重新构成为新的片。
在这样的图像解码装置10以及其图像解码方法中,编码后的图片或片等的处理对象区域,例如,被划分为多个宏块行等的构成单位,多个宏块行的每一个,作为划分流的一部分,被分配到N个解码部,并被解码。因此,能够使N个解码部的解码处理的负担均等, 能够适当地执行解码的并行处理。例如,即使在H. 264/AVC的编码图片由一个片构成的情况下,也该编码图片被划分为多个宏块行,因此,能够将该一个片的解码,不由一个解码部负担,而由N个解码部均等负担。
在此,有时,若编码图片被划分为多个宏块行,则跨越多个宏块行的片被划分为多个片部分,这些片部分被分配到相互不同的划分流。也就是说,在一个划分流中,不包含编码图片的片整体,而包含集合作为该片的断片的片部分的一个以上而构成的片部分群。并且,有时,在这些片部分群中不包含示出其开头的头部、或示出其末端的末端信息。并且,有时,多个片部分中的、编码流中连续的至少两个片部分,因编码流中包含的规定的代码字而具有依赖关系。
于是,在图像解码装置10以及其图像解码方法中,将该片部分群重新构成为新的片,因此,对包含该片部分群的划分流进行解码的解码部13,不需要识别并适当地解码该片部分群的特别的处理,而能够将片部分群简单地识别为新的片,并适当地进行解码。也就是说,在图像解码装置10的图像解码方法中,在N个解码部14的每一个,不需要设置进行特别的处理的功能或结构,因此,能够将以往的方式的解码电路挪用于对划分流进行解码的解码部14,能够使图像解码装置整体的结构变得简单。
并且,在此所示的流划分处理,由M个流划分部12,例如以片为单位并行执行,因此,能够减轻流划分部12的每一个的流划分处理的负担。进而,由第一划分控制部11进行控制,以使M个流划分部12的处理量均等,因此,即使在流划分处理的处理量按每个片变动的情况下,也能够由M个流划分部12均等负担流划分处理。
并且,针对M个处理对象区域,并行执行流划分处理,因此,在编码流的数据量大的情况下,增加解码部的数量,增加并行处理的数量,从而能够提高处理速度,并且,对于流划分部,也能够增加其数量,能够提高处理速度。
并且,在图像解码装置10以及其图像解码方法中,针对M个流划分部12,指定M个处理对象区域。也就是说,将处理对象区域划分为多个构成单位(例如,宏块行)的流划分处理,被分配到M个流划分部的每一个。其结果为,不能将编码流中包含的多个处理对象区域的顺序关系,在M个流划分部12所生成的MXN个划分流中维持,不能将MXN个划分流照原样解码。于是,在图像解码装置10以及其图像解码方法中,按每个指定的处理对象区域,根据该处理对象区域的配置、即编码流中的处理对象区域的解码的顺序等,从M个流划分部12所生成的MXN个划分流中至少选择一个划分流的一部分。而且,包含该选择的一部分的N个划分流的每一个的一部分被并行解码。因此,能够以正确的顺序关系将MXN个划分流解码。进而,在图像解码装置10以及其图像解码方法中,处理对象区域的指定、和划分流的一部分的选择,由与M个流划分部12以及N个解码部14不同的构成要素一元性地执行。因此,如上所述以正确的顺序关系将MXN个划分流解码,因此,针对M个流划分部12 以及N个解码部14等的各个构成要素,不需要特别的处理以及结构,而以简单的结构能够适当地执行解码的并行处理。
因此,在图像解码装置10以及其图像解码方法中,不需要所述实施例的划分流缓冲器152等,即使没有它们,也能够得到所述的本发明所特有的作用效果,能够实现所述目的。
图42是示出本发明涉及的图像编码装置的最小结构的方框图。
图像编码装置20是对图像数据进行编码来生成编码流的装置,具有用于实现本发明的最小结构,且具备N个编码部21、第一结合控制部22、M个流结合部23、第二结合控制部M、以及多路复用部25。在此,包含第一结合控制部22以及第二结合控制部M的构成要素,相当于实施例3的流结合控制部340。并且,N个编码部21,相当于实施例3的N 个编码引擎320,M个流结合部23,相当于实施例3的M个流结合部330。并且,多路复用部 25,相当于实施例3的多路复用部350。
N个编码部21,通过按图像数据中包含的每个图片,对该图片中包含的N个构成单位(例如,宏块行等)并行进行编码,从而生成N个(N为2以上的整数)划分流。
第一结合控制部22,指定构成编码流的处理对象区域(例如,片或图片等)。也就是说,第一结合控制部22,将表示该处理对象区域的分配控制信息发送。
M个流结合部23,将通过将N个划分流的每一个中包含的、与处理对象区域相对应的部分区域结合,从而生成作为处理对象区域的结合编码区域的结合处理,对由第一结合控制部22指定的M个处理对象区域并行执行。也就是说,M个流结合部23的每一个,并行执行所述的结合处理(流结合处理)。在此,部分区域为从处理对象区域划分的区域。与该处理对象区域相对应的各个部分区域,通过由N个编码部21的处理,被包含在N个划分流的每一个中。这样的部分区域,通过所述的结合处理成为一个结合编码区域。例如,若处理对象区域是片,则由N个编码部21,该片划分为片部分,通过所述的结合处理,重新构成新的片,以作为结合编码区域。而且,流结合部23,通过依次生成该该结合编码区域(片),从而生成并输出包含这样的结合编码区域的部分流。
第二结合控制部M,根据由第一结合控制部22指定的M个处理对象区域的编码流内的配置,从由M个流结合部23生成的M个结合编码区域中,依次选择将要多路复用的结合编码区域。例如,如实施例3,该选择结果被通知到多路复用部350,以作为选择信息。
多路复用部25,按照由第二结合控制部M选择的顺序,将M个结合编码区域多路复用,从而生成编码流。
在此,M个流结合部330的每一个,在进行结合处理时,在由编码后的多个构成单位(例如,宏块行等)构成部分区域的情况下,将该部分区域划分为编码后的多个所述构成单位并重新组合,从而生成所述的结合编码区域。在此,M个流结合部330的每一个,在进行该重新组合时,在图像数据中包含的片被划分为多个片部分并被编码后分配到N个划分流的情况下,在结合编码区域内,将由编码后的多个片部分构成的片部分群重新构成为新的片。
图43是表示图像编码装置20的图像编码方法的流程图。
该图像编码方法是,图像编码装置20对图像数据进行编码,从而生成编码流的方法,包括N个编码步骤S60,按图像数据中包含的每个图片,对该图片中包含的多个构成单位并行进行编码,从而生成N个(N为2以上的整数)划分流;第一结合控制步骤S61,指定构成编码流的处理对象区域;流结合步骤S62,针对由第一结合控制步骤S61指定的M个处理对象区域并行执行结合处理,该结合处理是指,通过将N个划分流的每一个中包含的、 与处理对象区域相对应的部分区域结合,从而生成作为处理对象区域的结合编码区域的处理;第二结合控制步骤S63,根据由第一结合控制步骤S61指定的M个处理对象区域的编码流内的配置,从由流结合步骤S62生成的M个结合编码区域中依次选择将要多路复用的结合编码区域;以及多路复用步骤S64,按照由第二结合控制步骤S63选择的顺序,将M个结合编码区域多路复用,从而生成编码流。
在此,在流结合步骤S62中,在进行结合处理时,在由编码后的多个构成单位构成部分区域的情况下,通过将该部分区域划分为编码后的多个所述构成单位后重新组合,从而生成所述的结合编码区域。在此,在流结合步骤S62中,在进行重新组合时,在图像数据中包含的片被划分并编码为多个片部分后被分配到N个划分流的情况下,在结合编码区域内,将由编码后的多个片部分构成的片部分群重新构成为新的片。
而且,在图像编码装置20以及其图像编码方法中,并行进行结合处理,但也可以串行进行结合处理。在此情况下,图像编码装置20仅具备一个流结合部23。
在这样的图像编码装置20以及其图像编码方法中,图片被划分为例如多个宏块行等的构成单位,多个宏块行的每一个被分配到N个编码部并被编码。因此,能够使由N个编码部21的编码处理的负担均等,能够适当地执行编码的并行处理。例如,在HJ64/AVC 的编码图片由一个片构成的情况下,也图片被划分为多个宏块行,因此,能够将该一个片的编码,不由一个编码部21负担,而由N个编码部21均等负担。
进而,结合处理,通过由第一结合控制部22的处理对象区域的指定,针对M个流结合部23,以处理对象区域为单位被分配,因此,由M个流结合部23能够并行进行该结合处理。
在此,有时,若图片被划分为多个宏块行并被编码,则跨越多个宏块行的片被划分为多个片部分,这些片部分依次被分配到划分流。也就是说,在各个划分流中,作为片的断片的片部分被分散。因此,如此分散的多个片部分,不具有图像数据内的前后关系。因此, 连续的多个宏块行具有由规定的代码字的依赖关系的情况下,分散的多个片部分不能保持其依赖关系,在此状况下,不能生成依据编码方式的编码流。因此,在图像编码装置20以及其图像编码方法中,在结合处理中,由于将作为该分散的多个片部分的集合的多个片部分群重新构成为新的片,因此能够使包含多个片部分群的结合编码区域成为依据编码方式的形式。
并且,结合处理,若针对M个流结合部23,以处理对象区域为单位被分配,由M个流结合部23并行进行,则在通过并行化的结合处理而生成的M个结合编码区域(部分流),不能维持编码流中包含的多个处理对象区域的顺序关系,不能以正确的顺序将M个结合编码区域多路复用。
因此,在图像编码装置20以及其图像编码方法中,按指定的每个处理对象区域, 根据该处理对象区域的配置、即编码流中的处理对象区域的编码的顺序,从由M个流结合部23生成的M个结合编码区域中,依次选择将要多路复用的结合编码区域。而且,按照该选择的顺序,M个结合编码区域被多路复用。因此,能够以正确的顺序关系,将M个结合编码区域多路复用。进而,在图像编码装置20以及其图像编码方法中,处理对象区域的指定、 和将要多路复用的结合编码区域的选择,由与M个流结合部23以及N个编码部21不同的构成要素一元性地执行。因此,如上所述以正确的顺序关系将M个结合编码区域多路复用, 因此,针对M个流结合部23以及N个编码部21等的各个构成要素,不需要特别的处理以及结构,而以简单的结构能够适当地执行编码的并行处理。
因此,在图像编码装置10以及其图像编码方法中,不需要所述实施例的部分流缓冲器363等,即使没有它们,也能够得到所述的本发明所特有的作用效果,能够实现所述目的。
例如,在所述实施例1至3中,将一个MB行作为一个构成单位处理,将图片划分为多个构成单位,但该构成单位并不限于一个MB行,也可以是两个MB行、三个MB行,也可以是沿图片的垂直方向排列为一列的多个宏块。例如,也可以是,在图片由MBAFF构成的情况下,将两个MB行作为构成单位来处理,在图片不由MBAFF构成的情况下,将一个MB行作为构成单位来处理。
并且,在所述实施例1以及2中,流划分控制部,针对M个流划分部,以片为单位分配处理,但也可以,以更大的单位、例如以图片为单位、或以由多个图片构成的图片群为单位分配处理。
同样,在所述实施例3中,流结合控制部,针对M个流结合部,以片为单位分配处理,但也可以,以更大的单位、例如以图片为单位、或以由多个图片构成的图片群为单位分配处理。
此外,在所述实施例1以及2中,流划分部将复制片头插入到划分流中,解码引擎将插入了该复制片头的划分流读出并解码。但也可以,流划分部,不将复制片头插入到划分流,而将复制片头直接输出到解码引擎。例如,流划分部,判别在被读入到解码引擎的划分流中的MB行紧前是否要存在复制片头,在判别为要存在的情况下,在该MB行被读入到解码引擎紧前,将该复制片头输出到解码引擎。在此,流划分部也可以,不将复制片头本身输出到解码引擎,而仅将复制片头中包含的一部分的信息输出到解码引擎。
并且,在所述实施例3中,流结合部,生成并赋予SPS、PPS、以及片头等的头信息, 但也可以,由其他的处理部生成并赋予头信息。具体而言,也可以是,在N个编码引擎的每一个生成划分流时,在赋予片头的状态下,生成划分流。在此情况下,在流结合部结合划分流时,会有针对同一片的片头重复的情况,但是,在此情况下流结合部除去不用的片头。并且,也可以是,SPS、PPS、以及片头的生成和赋予,由多路复用部进行。
此外,在所述实施例1以及2中,流划分部执行QP变化量的修正及QP变化量的插入的某一个操作,但也可以执行两者。在此情况下,流划分部,例如判断MB行的开头宏块是否包含有QP变化量就可以。这里,在MB行的开头宏块包含有QP变化量的情况下,流划分部,进行该宏块的QP变化量的替换等就可以(图21的步骤S318至S322)。另一方面,在 MB行的开头的宏块不包含QP变化量的情况下,流划分部,进行累积QP变化量的输出等就可以(图观的步骤S352至S356)。
进而,在流划分部执行QP变化量的修正及QP变化量的插入两者的情况下,优选的是,跳过运行修正部例如在MB跳过运行信息位于MB行的开头时,判断在该MB行的开头是否插入QP变化量。这里,在MB行的开头没有插入QP变化量的情况下,跳过运行修正部,对 MB跳过运行信息加上先行MB跳过运行信息就可以(图18的S210)。另一方面,在MB行的开头插入QP变化量的情况下,将先行MB跳过运行信息和MB跳过运行信息分别作为MB跳过运行信息输出就可以。
此外,在所述实施例1至3中,对第一代码字是MB跳过运行信息的情况进行了说明,但第一代码字并不一定需要是MB跳过运行信息。例如,第一代码字也可以是表示与跳过宏块不同种类的宏块连续的代码字。
此外,在所述实施例1至3中,对第二代码字是QP变化量的情况进行了说明,但第二代码字并不一定需要是QP变化量。例如,第二代码字也可以是与QP变化量不同的、表示宏块间的编码系数的变化量的代码字。
另夕卜,方框图(图1、图10、图12、图17、图23、图24、图26、图29、图35以及图38A等)的各功能模块典型地作为是集成电路的LSI (大规模集成电路Large Scale Integration)实现。它们既可以单独地单芯片化,也可以包含一部分或全部而单芯片化。 例如,也可以将图1的用解码器110表示的部分(包括M个流划分部130、第一解码引擎至第N解码引擎120的部分)包含在一个芯片中。
在此,称为LSI,但是根据集成度的不同,有时被称为IC(Integrated Circuit 集成电路)、系统LSI、超LSI、特大LSI。
并且,对于集成电路化的方法,不仅限于LSI,也可以以专用电路或通用处理器来实现。也可以利用在制造LSI后能够编程的FPGA (Field Programmable Gate ArrayJSg 可编程门阵列)、或可重构LSI内部的电路单元的连接或设定的可重构处理器。
而且,当然,若因半导体技术的进步或导出的其它的技术而出现代替LSI的集成电路化的技术,则可以利用其技术对功能框进行集成化。存在生物技术的应用等的可能性。
产业上的可利用性
本发明的图像解码装置以及图像编码装置,具有能够以简单的结构来适当地执行解码以及编码的并行处理的效果,例如,有用于对的编码流进行解码的再生装置,对 4k2k的运动图像进行编码的记录装置等。
符号说明
10、100、200图像解码装置
11第一划分控制部
12、130、230第一至第M流划分部(流划分部)
13第二划分控制部
14解码部
20、300、300a图像编码装置
21编码部
22第一结合控制部
23,330,330b第一至第M流结合部(流结合部)
24第二结合控制部
25,350多路复用部
10、210 解码器
120、220第一至第N解码引擎(解码引擎)
130m、330m处理管理部
131开始代码检测部
132a EPB 除去部
132b EPB 插入部
133片头插入部
133a NAL类型判断部
133b头部插入计数器
133c头部地址更新部
133d头部缓冲器
i;M、i;34a、134b 片数据处理部
135a、135b片数据层解码部
136a、136b宏块层解码部
137a、237a跳过运行修正部
138、138a、138b QP 德尔塔修正部
139、139a、139b 划分点检测部
140流划分控制部
150存储器
151流缓冲器
152第一至第M划分流缓冲器(划分流缓冲器)
153帧存储器
160跳过运行提取部
161跳过运行划分部
162跳过运行累积和保持部
163加法部
164跳过运行编码部
238,238a,238b QP 德尔塔插入部
310编码器
320第一至第N编码引擎(编码引擎)
331开始代码检测部
132a EPB 除去部
132b EPB 插入部
333头部插入部
3!Ma、334b片数据处理部
335a、33^片数据层分析部
336a、33mD宏块层分析部
337a跳过运行修正部
338、138a、138b QP 德尔塔修正部
339a、339b划分点检测部
340流结合控制部
360存储器
361帧存储器
362划分流缓冲器
363第一至第M部分流缓冲器(部分流缓冲器)
权利要求
1.一种图像解码装置,对图像数据被编码后的编码流进行解码,所述图像解码装置具备第一划分控制部,指定所述编码流中包含的处理对象区域;M个流划分部,每当由所述第一划分控制部指定所述处理对象区域时,针对由所述第一划分控制部指定的M个处理对象区域并行执行流划分处理,从而生成MXN个划分流,所述流划分处理是指从所述处理对象区域生成N个划分流的至少一部分的处理,其中,N为2以上的整数,M为2以上的整数;第二划分控制部,按由所述第一划分控制部指定的每个处理对象区域,根据该处理对象区域的所述编码流内的配置,从由所述M个流划分部生成的MXN个划分流中选择至少一个划分流的一部分;以及N个解码部,每当由所述第二划分控制部选择至少一个划分流的一部分时,对包含该至少一个划分流的一部分的、N个划分流的每一个的一部分并行进行解码, 所述M个流划分部的每一个,通过将所述处理对象区域划分为多个构成单位,将多个所述构成单位的每一个,分配到作为生成对象的N个划分流中的某个的一部分,从而执行所述流划分处理,在通过将所述处理对象区域划分为多个构成单位,从而该处理对象区域中包含的片被划分为多个片部分后被分配到多个划分流时,按每个划分流,将由被分配到该划分流的至少一个片部分构成的片部分群重新构成为新的片。
2.如权利要求1所述的图像解码装置, 所述M个流划分部的每一个,与被指定的处理对象区域无关,分析所述编码流中包含的各个第一头信息,根据该分析结果生成所述N个划分流。
3.如权利要求1或2所述的图像解码装置,所述M个流划分部中的某一个流划分部,生成包含有被包含在所述编码流中的第二头信息的N个划分流,所述M个流划分部中的其他的所有的流划分部,生成不包含所述第二头信息的N个划分流。
4.如权利要求1至3的任一项所述的图像解码装置, 所述第二划分控制部,进一步,生成表示选择出的划分流的一部分的选择信息,并输出到所述N个解码部的每一个, 所述N个解码部,对从所述第二划分控制部输出的所述选择信息所示的N个划分流的每一个的一部分并行进行解码。
5.如权利要求4所述的图像解码装置, 所述第二划分控制部,将包含选择出的划分流的一部分的数据的大小的所述选择信息,输出到所述N个解码部的每一个,所述N个解码部,根据从所述第二划分控制部输出的所述选择信息中包含的数据的大小,确定N个划分流的每一个的一部分,对这样的一部分并行进行解码。
6.如权利要求5所述的图像解码装置,所述第二划分控制部,输出将构成所述N个划分流的每一个的数据构成单位的数量、或比特量作为所述大小来包含的所述选择信息。
7.如权利要求1至6的任一项所述的图像解码装置, 所述第一划分控制部,进一步,按每个所述流划分部,判断由该流划分部执行的对一个处理对象区域的流划分处理是否已结束,在判断为已结束时,针对所述流划分处理已结束的流划分部优先指定新的处理对象区域。
8.如权利要求1至7的任一项所述的图像解码装置, 所述N个解码部包括,第一解码部以及第二解码部,在所述第一解码部对所述N个划分流中的被分配到该第一解码部的划分流中包含的第一片部分进行解码,所述第二解码部对所述N个划分流中的被分配到该第二解码部的划分流中包含的第二片部分进行解码的情况下,并且,在所述第一片部分和所述第二片部分在空间上相邻了的情况下,所述第一解码部,在由所述第二解码部的所述第二片部分的解码开始之前,开始所述第一片部分的解码,所述第二解码部,从所述第一解码部获得通过由所述第一解码部的所述第一片部分的解码而生成的相邻信息,利用所述相邻信息对所述第二片部分进行解码,或者,不利用所述相邻信息而对所述第二片部分进行解码。
9.如权利要求1至8的任一项所述的图像解码装置, 所述第一划分控制部,将所述编码流中包含的片、图片、或由多个图片构成的图片群指定为所述处理对象区域。
10.一种图像解码方法,对图像数据被编码后的编码流进行解码,该图像解码方法包括第一划分控制步骤,指定所述编码流中包含的处理对象区域; 流划分步骤,每当由所述第一划分控制步骤指定所述处理对象区域时,针对由所述第一划分控制步骤指定的M个处理对象区域并行执行流划分处理,从而生成MXN个划分流, 所述流划分处理是指从所述处理对象区域生成N个划分流的至少一部分的处理,其中,N为 2以上的整数,M为2以上的整数;第二划分控制步骤,按由所述第一划分控制步骤指定的每个处理对象区域,根据该处理对象区域的所述编码流内的配置,从由所述流划分步骤生成的MXN个划分流中选择至少一个划分流的一部分;以及解码步骤,每当由所述第二划分控制步骤选择至少一个划分流的一部分时,对包含该至少一个划分流的一部分的、N个划分流的每一个的一部分并行进行解码, 在所述流划分步骤中,通过将所述处理对象区域划分为多个构成单位,将多个所述构成单位的每一个,分配到作为生成对象的N个划分流中的某个的一部分,从而执行所述流划分处理,在通过将所述处理对象区域划分为多个构成单位,从而该处理对象区域中包含的片被划分为多个片部分后被分配到多个划分流时,按每个划分流,将由被分配到该划分流的至少一个片部分构成的片部分群重新构成为新的片。
11.一种程序,用于使计算机作为权利要求1至9的任一项所述的图像解码装置具备的各个部来发挥功能。
12.如权利要求1至9的任一项所述的图像解码装置, 所述图像解码装置被构成为集成电路。
13.一种图像编码装置,通过对图像数据进行编码,从而生成编码流,所述图像编码装置具备N个编码部,按所述图像数据中包含的每个图片,对该图片中包含的多个构成单位并行进行编码,从而生成N个划分流,其中,N为2以上的整数; 第一结合控制部,指定构成所述编码流的处理对象区域;M个流结合部,针对由所述第一结合控制部指定的M个所述处理对象区域并行执行结合处理,该结合处理是指,通过将N个划分流的每一个中包含的、与处理对象区域相对应的部分区域结合,从而生成作为所述处理对象区域的结合编码区域的处理,其中,M为2以上的整数;第二结合控制部,根据由所述第一结合控制部指定的M个处理对象区域的所述编码流内的配置,从由所述M个流结合部生成的M个结合编码区域中依次选择将要多路复用的结合编码区域;以及多路复用部,按照由所述第二结合控制部选择的顺序,将所述M个结合编码区域多路复用,从而生成所述编码流,所述M个流结合部的每一个,在进行所述结合处理时,在由编码后的多个所述构成单位构成所述部分区域的情况下,通过将所述部分区域划分为编码后的多个所述构成单位后重新组合,从而生成所述结合编码区域,在进行所述重新组合时,在所述图像数据中包含的片被划分并编码为多个片部分后被分配到所述N个划分流的情况下,在所述结合编码区域内,将由编码后的多个片部分构成的片部分群重新构成为新的片。
14.如权利要求13所述的图像编码装置, 所述第二结合控制部,进一步,每当选择将要多路复用的结合编码区域时,生成表示该结合编码区域的选择信息,并输出到所述多路复用部,所述多路复用部,每当从所述第二结合控制部获得所述选择信息时,将该选择信息所示的结合编码区域多路复用为所述编码流。
15.如权利要求14所述的图像编码装置, 所述第二结合控制部,将包含选择出的结合编码区域的数据的大小的所述选择信息输出到所述多路复用部, 所述多路复用部,将所述选择信息中包含的大小的结合编码区域多路复用为所述编码流。
16.如权利要求13至15的任一项所述的图像编码装置,所述第一结合控制部,进一步,按每个所述流结合部,判断由该流结合部执行的结合处理是否已结束,在判断为已结束时,针对所述结合处理已结束的流结合部优选指定新的处理对象区域。
17.如权利要求13至16的任一项所述的图像编码装置,所述N个编码部包括,第一编码部以及第二编码部,在所述第一编码部对所述N个构成单位中的被分配到该第一编码部的第一构成单位进行编码,所述第二编码部对所述N个构成单位中的被分配到该第二编码部的第二构成单位进行编码的情况下,并且,在所述第一构成单位和所述第二构成单位在所述图片内相邻了的情况下,所述第一编码部,在由所述第二编码部的所述第二构成单位的编码开始之前,开始所述第一构成单位的编码,所述第二编码部,从所述第一编码部获得通过由所述第一编码部的所述第一构成单位的编码而生成的相邻信息,利用所述相邻信息对所述第二构成单位进行编码,或者,不利用所述相邻信息而对所述第二构成单位进行编码。
18.一种图像编码方法,通过对图像数据进行编码,从而生成编码流,所述图像编码方法包括编码步骤,按所述图像数据中包含的每个图片,对该图片中包含的多个构成单位并行进行编码,从而生成N个划分流,其中,N为2以上的整数;第一结合控制步骤,指定构成所述编码流的处理对象区域;流结合步骤,针对由所述第一结合控制步骤指定的M个所述处理对象区域并行执行结合处理,该结合处理是指,通过将N个划分流的每一个中包含的、与处理对象区域相对应的部分区域结合,从而生成作为所述处理对象区域的结合编码区域的处理,其中,M为2以上的整数;第二结合控制步骤,根据由所述第一结合控制步骤指定的M个处理对象区域的所述编码流内的配置,从由所述流结合步骤生成的M个结合编码区域中依次选择将要多路复用的结合编码区域;以及多路复用步骤,按照由所述第二结合控制步骤选择的顺序,将所述M个结合编码区域多路复用,从而生成所述编码流,在所述流结合步骤中,在进行所述结合处理时,在由编码后的多个所述构成单位构成所述部分区域的情况下,通过将所述部分区域划分为编码后的多个所述构成单位后重新组合,从而生成所述结合编码区域,在进行所述重新组合时,在所述图像数据中包含的片被划分并编码为多个片部分后被分配到所述N个划分流的情况下,在所述结合编码区域内,将由编码后的多个片部分构成的片部分群重新构成为新的片。
19.一种程序,用于使计算机作为权利要求13至17的任一项所述的图像编码装置具备的各个部来发挥功能。
20.如权利要求13至17的任一项所述的图像编码装置, 所述图像编码装置被构成为集成电路。
全文摘要
以简单的结构适当地执行解码的并行处理的图像解码装置(100),包括流划分控制部(140),指定处理对象区域,根据该处理对象区域的配置选择划分流的一部分;M个流划分部(130),通过对指定的M个处理对象区域并行执行流划分处理,从而生成M×N个划分流;以及N个解码引擎(120),对包含选择出的一部分的N个划分流的每一个的一部分并行进行解码;M个流划分部(130),在该处理对象区域中包含的片被划分为多个片部分,并被分配到多个划分流的情况下,按每个划分流,将由被分配到该划分流的至少一个片部分构成的片部分群从新构成为新的片。
文档编号H04N7/26GK102550029SQ201180003988
公开日2012年7月4日 申请日期2011年7月27日 优先权日2010年7月30日
发明者吉松直树, 田中健, 黑川圭一 申请人:松下电器产业株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1