CN103826129A - 图像解码方法以及图像解码装置 - Google Patents
图像解码方法以及图像解码装置 Download PDFInfo
- Publication number
- CN103826129A CN103826129A CN201410050977.4A CN201410050977A CN103826129A CN 103826129 A CN103826129 A CN 103826129A CN 201410050977 A CN201410050977 A CN 201410050977A CN 103826129 A CN103826129 A CN 103826129A
- Authority
- CN
- China
- Prior art keywords
- piece
- block
- movable information
- information
- utilize
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
一种图像解码方法,其特征在于,具备:从具有运动信息的解码完毕的像素块中选择至少一个运动参照块的步骤;从所述运动参照块中选择至少一个可利用块的步骤,所述可利用块是具有应用于解码对象块的运动信息的候选的像素块,且具有相互不同的运动信息;参照根据所述可利用块的数量而预先设定的代码表,对所输入的编码数据进行解码,从而求出用于确定选择块的选择信息的步骤;按照所述选择信息,从所述可利用块中选择一个选择块的步骤;使用所述选择块的运动信息生成所述解码对象块的预测图像的步骤;根据所述编码数据对所述解码对象块的预测误差进行解码的步骤;以及根据所述预测图像和所述预测误差求出解码图像的步骤。
Description
本发明是2013年4月23日递交的申请号为“201310142052.8”、发明名称为“图像解码方法以及图像解码装置”的申请的分案申请,其原始母案为2012年10月08日进入中国国家阶段的、国家申请号为“201080066017.7”、发明名称为“图像编码方法以及图像解码方法”的申请。
技术领域
本发明涉及用于运动图像以及静止图像的编码以及解码方法。
背景技术
近年来,在ITU-T和ISO/IEC中,都作为ITU-T Rec.H.264以及ISO/IEC14496-10(以下,称为H.264)而建议了大幅度提高编码效率的运动图像编码方法。在H.264中,预测处理、变换处理以及熵编码处理以矩形块单位(例如,16×16像素块单位、8×8像素块单位等)进行。在预测处理中,针对编码对象的矩形块(编码对象块),进行参照已经编码完毕的帧(参照帧)而进行时间方向的预测的运动补偿。在这样的运动补偿中,需要对包括运动矢量的运动信息进行编码并发送到解码侧,该运动矢量是作为编码对象块与在参照帧内所参照的块之间的空间上的位移信息的矢量。另外,在使用多个参照帧进行运动补偿的情况下,需要对运动信息和参照帧号码一起进行编码。因此,与运动信息以及参照帧号码有关的编码量有时增大。
在运动补偿预测中作为求出运动矢量的方法的一例,有根据分配给已经编码完毕的块的运动矢量导出应该分配给编码对象块的运动矢量,并根据所导出的运动矢量生成预测图像的直接模式(参照专利文献1以及专利文献2)。在直接模式中,因为不对运动矢量进行编码,所以能够减少运动信息的编码量。直接模式例如被H.264/AVC采用。
专利文献
专利文献1:日本专利第4020789号
专利文献2:米国专利第7233621号
发明内容
在直接模式中,利用根据与编码对象块邻接的编码完毕的块的运动矢量的中央值计算运动矢量的固定的方法来预测生成编码对象块的运动矢量。因此,运动矢量计算的自由度低。
为了提高计算运动矢量的自由度,提出有从多个编码完毕块中选择一个并对编码对象块分配运动矢量的方法。在该方法中,必须总是发送确定所选择的块的选择信息,以使解码侧能够确定所选择的编码完毕的块。因此,当从多个编码完毕块中选择一个并决定应该分配给编码对象块的运动矢量时,存在增加了与选择信息有关的编码量的问题。
本发明是为了解决上述问题而作出的,目的在于提供编码效率高的图像编码方法以及图像解码方法。
本发明的一实施方式的图像编码方法具备以下步骤:从具有运动信息的编码完毕的像素块中选择至少一个运动参照块的第1步骤;从上述运动参照块中选择至少一个可利用块的第2步骤,该可利用块是具有适用于编码对象块的运动信息的候选的像素块,且具有相互不同的运动信息;从上述可利用块中选择一个选择块的第3步骤;使用上述选择块的运动信息生成上述编码对象块的预测图像的第4步骤;对上述预测图像与原图像之间的预测误差进行编码的第5步骤;以及参照根据上述可利用块的数量而预先设定的代码表,对确定上述选择块的选择信息进行编码的第6步骤。
本发明的另一实施方式的图像解码方法具备以下步骤:从具有运动信息的解码完毕的像素块中选择至少一个运动参照块的第1步骤;从上述运动参照块中选择至少一个可利用块的第2步骤,该可利用块是具有适用于解码对象块的运动信息的候选的像素块,且具有相互不同的运动信息;参照根据上述可利用块的数量而预先设定的代码表,对所输入的编码数据进行解码,从而求出用于确定选择块的选择信息的第3步骤;按照上述选择信息,从上述可利用块中选择一个选择块的第4步骤;使用上述选择块的运动信息生成上述解码对象块的预测图像的第5步骤;根据上述编码数据解码上述解码对象块的预测误差的第6步骤;以及根据上述预测图像和上述预测误差求出解码图像的第7步骤。
根据本发明,能够提高编码效率。
附图说明
图1是概略地示出第1实施方式的图像编码装置的结构的框图。
图2A是示出图1所示的图像解码部的编码的处理单位即微块的大小的一例的图。
图2B是图1所示的图像解码部的编码的处理单位即微块的大小的另一例的图。
图3是示出图1所示的图像编码部对编码对象帧内的像素块进行编码的顺序的图。
图4是示出图1所示的运动信息存储器所保持的运动信息帧的一例的图。
图5是示出处理图1的输入图像信号的顺序的一例的流程图。
图6A是示出图1的运动补偿部所执行的交互预测处理的一例的图。
图6B是示出图1的运动补偿部所执行的交互预测处理的另一例的图。
图7A是示出交互预测处理所使用的运动补偿块的大小的一例的图。
图7B是示出交互预测处理所使用的运动补偿块的大小的另一例的图。
图7C是示出交互预测处理所使用的运动补偿块的大小的另一其它例的图。
图7D是示出交互预测处理所使用的运动补偿块的大小的另一例的图。
图8A是示出空间方向以及时间方向运动参照块的配置的一例的图。
图8B是示出空间方向运动参照块的配置的另一例的图。
图8C是示出空间方向运动参照块相对于图8B所示的编码对象块的相对位置的图。
图8D是示出时间方向运动参照块的配置的另一例的图。
图8E是示出时间方向运动参照块的配置的另一其它例的图。
图8F是示出时间方向运动参照块的配置的另一其它例的图。
图9是示出图1的可利用块取得部从运动参照块中选择可利用块的方法的一例的流程图。
图10是示出按照图9的方法从图8所示的运动参照块中选择的可利用块的一例的图。
图11是示出图1的可利用块取得部输出的可利用块信息的一例的图。
图12A是示出由图1的可利用块取得部进行的块间的运动信息的同一性判定的一例的图。
图12B是示出由图1的可利用块取得部进行的块间的运动信息的同一性判定的另一例的图。
图12C是示出由图1的可利用块取得部进行的块间的运动信息的同一性判定的另一其它例的图。
图12D是示出由图1的可利用块取得部进行的块间的运动信息的同一性判定的另一例的图。
图12E是示出由图1的可利用块取得部进行的块间的运动信息的同一性判定的另一其它例的图。
图12F是示出由图1的可利用块取得部进行的块间的运动信息的同一性判定的另一例的图。
图13是概略地示出图1的预测部的结构的框图。
图14是示出图13的时间方向运动信息取得部所输出的运动信息的组的图。
图15是说明可利用在基于图13的运动补偿部的运动补偿处理中的少数像素精度的插补处理的说明图。
图16是示出图13的预测部的动作的一例的流程图。
图17是示出图13的运动补偿部将时间方向运动参照块的运动信息拷贝到编码对象块的情况的图。
图18是概略地示出图1的可变长度编码部的结构的框图。
图19是根据可利用块信息生成语法(syntax)的例子的图。
图20是示出与可利用块信息对应的选择块信息语法的2值化的例的图。
图21是说明运动信息的比例缩放(scaling)的说明图。
图22是按照实施方式的语法构造的图。
图23A是按照第1实施方式的微块层语法的一例的图。
图23B是按照第1实施方式的微块层语法的另一例的图。
图24A是示出与H.264中的B切片时的mb_type以及mb_type对应的代码表的图。
图24B是示出实施方式的代码表的一例的图。
图24C是示出与H.264中的P切片时的mb_type以及mb_type对应的代码表的图。
图24D是示出实施方式的代码表的另一例的图。
图25A是示出按照实施方式、与B切片中的mb_type以及mb_type对应的代码表的一例的图。
图25B是示出按照实施方式、与P切片中的mb_type以及mb_type对应的代码表的另一例的图。
图26是概略地示出第2实施方式的图像编码装置的结构的框图。
图27是概略地示出图26的预测部的结构的框图。
图28是概略地示出图27的第2预测部的结构的框图。
图29是概略地示出图26的可变长度编码部的结构的框图。
图30A是示出按照第2实施方式的微块层语法的一例的图。
图30B是示出按照第2实施方式的微块层语法的另一例的图。
图31是概略地示出第3实施方式的图像解码装置的框图。
图32是更详细地示出图31所示的编码列解码部的框图。
图33是更详细地示出图31所示的预测部的框图。
图34是概略地示出第4实施方式的图像解码装置的框图。
图35是更详细地示出图33所示的编码列解码部的框图。
图36是更详细地示出图33所示的预测部的框图。
附图标记的说明
10:输入图像信号;11:预测图像信号;12:预测误差图像信号;13:量子化变换系数;14:编码数据;15:解码预测误差信号;16:局部解码图像信号;17:参照图像信号;18:运动信息;20:比特流;21:运动信息;25,26:信息帧;30:可利用块信息;31:选择块信息;32:预测切换信息;33:变换系数信息;34:预测误差信号;35:预测图像信号;36:解码图像信号;37:参照图像信号;38:运动信息;39:参照运动信息;40:运动信息;50:编码控制信息;51:反馈信息;60:可利用块信息;61:选择块信息;62:预测切换信息;70:解码控制信息;71:控制信息;80:编码数据;100:图像编码部;101:预测部;102:减法器;103:变换·量子化部;104:可变长度编码部;105:逆量子化·逆变换部;106:加法器;107:帧存储器;108:信息存储器;109:可利用块取得部;110:空间方向运动信息取得部;111:时间方向运动信息取得部;112:信息切换开关;113:运动补偿部;114:参数编码部;115:变换系数编码部;116:选择块编码部;117:多路复用部;118:运动信息选择部;120:输出缓存器;150:编码控制部;200:图像编码部;201:预测部;202:第2预测部;203:预测方法切换开关;204:可变长度编码部;205:运动信息取得部;216:选择块编码部;217:运动信息编码部;300:图像解码部;301:编码列解码部;301:编码列解码部;302:逆量子化·逆变换部;303:加法器;304:帧存储器;305:预测部;306:信息存储器;307:可利用块取得部;308:输出缓存器;310:空间方向运动信息取得部;311:时间方向运动信息取得部;312:运动信息切换开关;313:运动补偿部;314:信息选择部;320:分离部;321:参数解码部;322:变换系数解码部;323:选择块解码部;350:解码控制部;400:图像解码部;401:编码列解码部;405:预测部;410:第2预测部;411:预测方法切换开关;423:选择块解码部;424:信息解码部;901:高级语法;902:序列参数组语法;903:图形参数组语法;904:切片级语法;905:切片头语法;906:切片数据语法;907:微块级语法;908:微块层语法;909:微块预测语法
具体实施方式
以下,根据需要,参照附图对本发明的实施方式的图像编码以及图像解码的方法以及装置进行说明。另外,在以下的实施方式中,关于赋予同一编号的部分设为进行同样的动作的部分,省略了重复的说明。
(第1实施方式)
图1概略地示出本发明的第1实施方式的图像编码装置的结构。如图1所示,该图像编码装置具备有图像编码部100、编码控制部150以及输出缓存器120。该图像编码装置既可以通过LSI芯片等硬件来实现,或者也可以设为通过使计算机执行图像编码程序来实现。
在图像编码部100中,例如以分割了原图像的像素块单位输入作为运动图像或静止图像的原图像(输入图像信号)10。如之后所详述的那样,图像编码部100对输入图像信号10进行压缩编码而生成编码数据14。所生成的编码数据14暂时保存到输出缓存器120,在编码控制部150管理的输出定时,向未图示的存储系统(存储介质)或传输系统(通信线路)送出。
编码控制部150控制产生编码量的反馈控制、量子化控制、预测模式控制以及熵编码控制这样的图像编码部100的全部的编码处理。具体而言,编码控制部150将编码控制信息50提供给图像编码部100,从图像编码部100适当地接收反馈信息51。编码控制信息50包括预测信息、运动信息18以及量子化参数信息等。预测信息包括预测模式信息以及块大小信息。运动信息18包括运动矢量、参照帧号码以及预测方向(单方向预测、双方向预测)。量子化参数信息包括量子化宽度(量子化步进大小)等量子化参数以及量子化矩阵。反馈信息51包括基于图像编码部100的产生编码量,例如,在决定量子化参数时使用。
图像编码部100以分割原图像得到的的像素块(例如,微块、子块、1像素等)为单位,对输入图像信号10进行编码。因此,输入图像信号10以分割了原图像的像素块单位被依次输入到图像编码部100。在本实施方式中,将编码的处理单位设为微块,将与输入图像信号10对应的、作为编码对象的像素块(微块)仅称作编码对象块。另外,将包括编码对象块的图像帧、即编码对象的图像帧称作编码对象帧。
这样的编码对象块,例如,既可以是图2A所示那样的16×16像素块,也可以图2B所示那样的64×64像素块。另外,编码对象块也可以是32×32像素块、8×8像素块等。另外,微块的形状不限于图2A以及图2B所示那样的正方形状的例子,也可以设为矩形形状等任意形状。另外,上述处理单位不限于微块那样的像素块,也可以是帧或字段。
另外,针对编码对象帧内的各像素块的编码处理可以以任意的顺序执行。在本实施方式中,为了简化说明,如图3所示,设为从编码对象帧的左上的像素块向右下的像素块逐行、即按照光栅扫描顺序,对像素块执行编码处理。
图1所示的图像编码部100具备:预测部101、减法器102、变换·量子化部103、可变长度编码部104、逆量子化·逆变换部105、加法器106、帧存储器107、运动信息存储器108以及可利用块取得部109。
在图像编码部100中,输入图像信号10被输入到预测部101以及减法器102。减法器102接收输入图像信号10,并且从后述的预测部101接收预测图像信号11。减法器102计算输入图像信号10与预测图像信号11的差分,生成预测误差图像信号12。
变换·量子化部103从减法器102接收预测误差图像信号12,对接收的预测误差图像信号12实施变换处理,生成变换系数。变换处理,例如,是离散余弦变换(DCT:Discrete Cosine Transform)等正交变换。在另一实施方式中,变换·量子化部103也可以替代离散余弦变换而利用小波变换以及独立分量解析等方法来生成变换系数。另外,变换·量子化部103根据由编码控制部150提供的量子化参数对所生成的变换系数进行量子化。被量子化后的变换系数(变换系数信息)13输出给可变长度编码部104以及逆量子化·逆变换部105。
逆量子化·逆变换部105按照由编码控制部150提供的量子化参数、即与变换·量子化部103相同的量子化参数,对量子化后的变换系数13进行逆量子化。接着,逆量子化·逆变换部105对逆量子化后的变换系数实施逆变换,生成解码预测误差信号15。基于逆量子化·逆变换部105的逆变换处理与基于变换·量子化部103的变换处理的逆变换处理一致。例如,逆变换处理是逆离散余弦变换(IDCT:Inverse Discrete CosineTransform)或逆小波变换等。
加法器106从逆量子化·逆变换部105接收解码预测误差信号15,另外,从预测部101接收预测图像信号11。加法器106将解码预测误差信号15和预测图像信号11相加而生成局部解码图像信号16。所生成的局部解码图像信号16在帧存储器107中被保存为参照图像信号17。帧存储器107所保存的参照图像信号17,在对其后的编码对象块进行编码时,由预测部101读出并参照。
预测部101从帧存储器107接收参照图像信号17,并且从后述的可利用块取得部109接收可利用块信息30。另外,预测部101从后述的运动信息存储器108接收参照运动信息19。预测部101根据参照图像信号17、参照运动信息19以及可利用块信息30生成编码对象块的预测图像信号11、运动信息18以及选择块信息31。具体而言,预测部101具备:根据可利用块信息30以及参照运动信息19生成运动信息18以及选择块信息31的运动信息选择部118;以及根据运动信息18生成预测图像信号11的运动补偿部113。预测图像信号11被送给减法器102以及加法器106。运动信息18被保存于运动信息存储器108,以用于针对其后的编码对象块的预测处理。另外,选择块信息31被送给可变长度编码部104。关于预测部101在后详细说明。
运动信息存储器108中临时保存运动信息18而作为参照运动信息19。图4示出运动信息存储器108的结构的一例。如图4所示,运动信息存储器108以帧单位保持有参照运动信息19,参照运动信息19形成有运动信息帧25。与编码完毕的块有关的运动信息18被依次输入运动信息存储器108,其结果是,运动信息存储器108保持编码时间不同的多个运动信息帧25。
参照运动信息19以所定的块单位(例如,4×4像素块单位)保持在运动信息帧25内。图4所示的运动矢量块28表示与编码对象块、可利用块以及选择块等相同大小的像素块,例如,是16×16像素块。运动矢量块28中,例如针对每4×4像素块分配有运动矢量。将利用了运动矢量块的交互预测处理称作运动矢量块预测处理。在生成运动信息18时,运动信息存储器108所保持的参照运动信息19由预测部101读出。后述那样的可利用块具有的运动信息18是指在运动信息存储器108中的可利用块所位于的区域保持的参照运动信息19。
另外,运动信息存储器108不限于以4×4像素块单位保持参照运动信息19的例子,也可以以其它像素块单位保持参照运动信息19。例如,与参照运动信息19有关的像素块单位既可以是1像素,也可以是2×2像素块。另外,与参照运动信息19有关的像素块的形状不限于正方形状的例子,能够设为任意形状。
图1的可利用块取得部109从运动信息存储器108取得参照运动信息19,根据取得的参照运动信息19,从已经编码完成的多个块中选择能够在预测部101的预测处理中利用的可利用块。所选择的可利用块被作为可利用块信息30而送给预测部101以及可变长度编码部104。将成为用于选择可利用块的候选的编码完毕的块称作运动参照块。关于运动参照块以及可利用块的选择方法,在后详细地进行说明。
可变长度编码部104除了变换系数信息13以外,还从预测部101接收选择块信息31,从编码控制部150接收预测信息以及量子化参数等的编码参数,从可利用块取得部109接收可利用块信息30。可变长度编码部104对量子化后的变换系数13、选择块信息31、可利用块信息30以及编码参数进行熵编码(例如,等长编码、哈夫曼编码或算术编码等),生成编码数据14。编码参数包括选择块信息31以及预测信息,并且包括与变换系数有关的信息、与量子化有关的信息等在解码所需要的所有的参数。所生成的编码数据14被临时保存在输出缓存器120,并被送给未图示的存储系统或传输系统。
图5示出输入图像信号10的处理程序。如图5所示,首先,通过预测部101生成预测图像信号11(步骤S501)。在步骤S501的预测图像信号11的生成中,将后述的可利用块中的一个可利用块选择为选择块,并使用选择块信息31、选择块所具有的运动信息以及参照图像信号17制作预测图像信号11。通过减法器102计算预测图像信号11和输入图像信号10的差分,生成预测误差图像信号12(步骤S502)。
接着,通过变换·量子化部103对预测误差图像信号12实施正交变换以及量子化,生成变换系数信息13(步骤S503)。变换系数信息13以及选择块信息31被送给可变长度编码部104,被实施可变长度编码,并生成编码数据14(步骤S504)。另外,在步骤S504中,根据选择块信息31来切换代码表,以使在代码表中具有与可利用块的数量相等数量的条目,并对选择块信息31进行可变长度编码。编码数据的比特流20被送给未图示的存储系统统或者传输路径。
在步骤S503中所生成的变换系数信息13由逆量子化·逆变换部105进行逆量子化,并被实施逆变换处理,成为解码预测误差信号15(步骤S505)。将解码预测误差信号15加到在步骤S501中使用的参照图像信号17上,成为局部解码图像信号16(步骤S506),并作为参照图像信号而被存储到帧存储器107(步骤S507)。
接着,对上述的图像编码部100的各结构进行更详细的说明。
图1的图像编码部100预先准备有多个预测模式,各预测模式的预测图像信号11的生成方法以及运动补偿块大小相互不同的。作为预测部101生成预测图像信号11的方法,具体而言,大致划分的话,有使用与编码对象帧(或者字段)有关的参照图像信号17生成预测图像的内预测(帧内预测)、和使用与一个以上的编码完毕的参照帧(参照字段)有关的参照图像信号17生成预测图像的交互预测(帧间预测)。预测部101选择性地切换内预测以及交互预测,生成编码对象块的预测图像信号11。
图6A示出由运动补偿部113进行的交互预测的一例。在交互预测中,如图6A所示,根据作为已经编码完成的1帧前的参照帧内的块且与编码对象块相同位置的块(也称预测块)23,使用与根据运动信息18所包括的运动矢量18a而空间地位移了的位置的块24有关的参照图像信号17,生成预测图像信号11。即,在预测图像信号11的生成中,使用编码对象块的位置(坐标)、以及与通过运动信息18所包括的运动矢量18a确定的参照帧内的块24有关的参照图像信号17。在交互预测中,能够进行少数像素精度(例如,1/2像素精度或1/4像素精度)的运动补偿,通过对参照图像信号17进行滤波处理,生成插补像素的值。例如,在H.264中,能够对亮度信号进行到1/4像素精度为止的插补处理。在进行1/4像素精度的运动补偿的情况下,运动信息18的信息量成为整数像素精度的4倍。
另外,在交互预测中,不限于使用图6A所示那样的1帧前的参照帧的例子,如图6B所示,可以使用任意的编码完毕的参照帧。在保持有与时间位置不同的多个参照帧有关的参照图像信号17的情况下,表示根据哪个时间位置的参照图像信号17生成了预测图像信号11的信息通过参照帧号码来示出。参照帧号码包含于运动信息18。参照帧号码能够以区域单位(图形、块单位等)进行变更。即,能够针对每个像素块使用不同的参照帧。作为一例,当预测中使用了编码完毕的1帧前的参照帧的情况下,该区域的参照帧号码被设定为0,当预测中使用了编码完毕的2帧前的参照帧的情况下,该区域的参照帧号码被设定为1。作为其它例,当帧存储器107中保持有1帧量的参照图像信号17(参照帧的数量为1)情况下,参照帧号码总是被设定为0。
另外,在交互预测中,能够从多个运动补偿块之中选择适于编码对象块的块大小。即,也可以将编码对象块分割为多个小像素块,并针对每个小像素块进行运动补偿。图7A至图7C示出微块单位的运动补偿块的大小,图7D示出子块(8×8像素以下的像素块)单位的运动补偿块的大小。如图7A所示,当编码对象块为64×64像素的情况下,作为运动补偿块,能够选择64×64像素块、64×32像素块、32×64像素块或32×32像素块等。另外,如图7B所示,当编码对象块为32×32像素的情况下,作为运动补偿块能够选择32×32像素块、32×16像素块、16×32像素块或16×16像素块等。另外,如图7C所示,当编码对象块为16×16像素的情况下,能够将运动补偿块设定为16×16像素块、16×8像素块、8×16像素块或8×8像素块等。另外,如图7D所示,当编码对象块为8×8像素的情况下,运动补偿块能够选择8×8像素块、8×4像素块、4×8像素块或4×4像素块等。
如上所述,在交互预测中使用的参照帧内的小像素块(例如,4×4像素块)具有运动信息18,所以能够按照输入图像信号10的局部的性质来利用最佳的运动补偿块的形状以及运动矢量。另外,图7A至图7D的微块以及子微块能够任意地组合。当编码对象块为图7A所示那样的64×64像素块的情况下,针对分割64×64像素块得到的4个32×32像素块的每一个来选择图7B所示的各块大小,从而能够阶段性地利用64×64~16×16像素的块。同样地,在能够选择到图7D所示的块大小的情况下,能够阶段性地利用64×64~4×4的块大小。
接着,参照图8A至图8F来说明运动参照块。
运动参照块是按照图1的图像编码装置以及后述的图像解码装置的双方协定的方法从编码对象帧以及参照帧内的编码完毕的区域(块)中选择的。图8A示出根据编码对象块的位置而选择的运动参照块的配置的一例。在图8A的例子中,从编码对象帧以及参照帧内的编码完毕的区域选择9个运动参照块A~D以及TA~TE。具体而言,从编码对象帧中,选择与编码对象块的左、上、右上、左上邻接的4个块A,B,C,D作为运动参照块,从参照帧中选择与编码对象块同一位置的块TA、以及与该块TA的右、下、左以及上邻接的4个像素块TB,TC,TD,TE作为运动参照块。在本实施方式中,将从编码对象帧中选择的运动参照块称作空间方向运动参照块,将从参照帧中选择的运动参照块称作时间方向运动参照块。赋予图8A的各运动参照块的编码p表示运动参照块的索引。该索引被按照时间方向、空间方向的运动参照块的顺序而编号,但不限与此,只要索引不重复,不需要必须按照该顺序。例如,时间方向以及空间方向的运动参照块也可以顺序凌乱地编号。
另外,空间方向运动参照块不限于图8A所示的例子,也可以如图8B所示的那样地是与编码对象块邻接的像素a,b,c,d所属的块(例如,微块或子微块等)。在这种情况下,从编码对象块内的左上像素e到各像素a,b,c,d的相对位置(dx,dy)被设定为图8C所示。在此,在图8A以及图8B所示的例子中,微块示出为N×N像素块。
另外,如图8D所示,也可以将与编码对象块邻接的全部的块A1~A4,B1,B2,C,D选择为空间方向运动参照块。在图8D的例子中,空间方向运动参照块的数量为8。
另外,时间方向运动参照块既可以图8E所示地各块TA~TE的一部分重叠,也可以如图8F所示地各块TA~TE分离配置。在图8E中,以斜线示出时间方向运动参照块TA以及TB重叠的部分。另外,时间方向运动参照块不限于必须是与编码对象块对应的位置(Collocate位置)的块以及位于其周围的块的例子,也可以配置在参照帧内的任意位置的块。例如,可以将通过参照块的位置以及与编码对象块邻接的任意的编码完毕的块所具有的运动信息18确定的、参照帧内的块选择为中心块(例如,块TA),并将该中心块以及其周围的块选择为时间方向运动参照块。另外,时间方向参照块也可以从中心块不等间隔地配置。
在上述任意的情况下,如果编码装置以及解码装置中预先协定了空间方向以及时间方向运动参照块的数量以及位置,则运动参照块的数量以及位置可以任意地设置。另外,运动参照块的大小不需要必须与编码对象块相同大小。例如,如图8D所示,运动参照块的大小既可以比编码对象块大,也可以比编码对象块小。另外,运动参照块不限于正方形状,也可以设定为长方形形状等任意形状。另外,运动参照块也可以设定为任何大小。
另外,运动参照块以及可利用块也可以仅配置在时间方向以及空间方向的某一方。另外,也可以按照P切片、B切片这些切片的种类来配置时间方向的运动参照块以及可利用块,并且也可以配置空间方向的运动参照块以及可利用块。
图9示出可利用块取得部109从运动参照块中选择可利用块的方法。可利用块是能够对编码对象块应用运动信息的块,且具有相互不同的运动信息。可利用块取得部109参照参照运动信息19,按照图9所示的方法,判定运动参照块各自是否是可利用块,并输出可利用块信息30。
如图9所示,首先,选择索引p为0的运动参照块(S800)。在图9的说明中,假想按照索引p从0到M-1(M表示运动参照块的数量。)的顺序处理运动参照块的情况。另外,设针对索引p从0到p-1的运动参照块的可利用判定处理结束、并且成为判定是否可利用的对象的运动参照块的索引为p进行说明。
可利用块取得部109判定运动参照块p是否具有运动信息18,即是否被分配有至少一个运动矢量(S801)。当运动参照块p不具有运动矢量的情况下,即时间方向运动参照块p是不具有运动信息的I切片内的块、或者时间方向运动参照块p内的全部的小像素块被内预测编码了的情况下,进入步骤S805。在步骤S805中,运动参照块p被判定为不可利用块。
在步骤S801中判定为运动参照块p具有运动信息的情况下,进入步骤S802。可利用块取得部109选定已经被选择为可利用块的运动参照块q(可利用块q)。在此,q是比p小的值。接着,可利用块取得部109对运动参照块p的运动信息18和可利用块q的运动信息18进行比较,判定是否具有同一运动信息(S803)。当判定为运动参照块p的运动信息18和被选择为可利用块的运动参照块q的运动信息18相同的情况下,进入步骤S805,判定为运动参照块p为不可利用块。
当针对满足q<p的全部的可利用块q,在步骤S803中判定为运动参照块p的运动信息18和可利用块q的运动信息18不相同的情况下,进入步骤S804。在步骤S804中,可利用块取得部109将运动参照块p判定为可利用块。
如果运动参照块p被判定为可利用块或不可利用块,则可利用块取得部109判定是否针对全部的运动参照块执行了可利用判定(S806)。在存在未被执行可利用判定的运动参照块的情况下,例如,在p<M-1的情况下,进入步骤S807。接着,可利用块取得部109将索引p加1(步骤S807),并再次执行步骤S801至步骤S806。当在步骤S806中判定为针对全部的运动参照块执行了可利用判定时,结束可利用判定处理。
通过执行上述的可利用判定处理,判定各运动参照块是可利用块还是不可利用块。可利用块取得部109生成包括与可利用块有关的信息的可利用块信息30。由此,通过从运动参照块中选择可利用块,与可利用块信息30有关的信息量降低,作为结果,能够降低编码数据14的量。
图10示出针对图8A所示的运动参照块执行了可利用判定处理的结果的一例。在图10中,判定为2个空间方向运动参照块(p=0,1)以及2个时间方向运动参照块(p=5,8)为可利用块。图11示出与图10的例子有关的可利用块信息30的一例。如图11所示,可利用块信息30包括运动参照块的索引、可利用性以及运动参照块名称。在图11的例子中,索引p=0,1,5,8为可利用块,可利用块数为4。预测部101从这些可利用块中选择最佳的一个可利用块作为选择块,并输出与选择块有关的信息(选择块信息)31。选择块信息31包括可利用块的数量以及所选择的可利用块的索引值。例如,当可利用块的数量为4的情况下,使用最大的条目为4的代码表,通过可变长度编码部104对相应的选择块信息31进行编码。
另外,在图9的步骤S801中,当时间方向运动参照块p内的块中的至少一个是被内预测编码了的块的情况下,可利用块取得部109也可以将运动参照块p判定为不可利用块。即,也可以设为仅在时间方向运动参照块p内的全部的块被以交互预测进行编码的情况下,进入步骤S802。
图12A至图12E示出在步骤S803的运动信息18的比较中,判定为运动参照块p的运动信息18和可利用块q的运动信息18相同的例子。图12A至图12E中示出有分别带斜线的多个块和2个涂白的块。图12A至图12E中,为了简化说明,假设不考虑带斜线的块而比较这2个涂白的块的运动信息18。2个涂白的块的一个是运动参照块p,另一个是已经判定为可利用的运动参照块q(可利用块q)。特别地,只要没有特别说明,2个白色块的任意一个都可以是运动参照块p。
图12A示出运动参照块p以及可利用块q的双方为空间方向的块的例子。在图12A的例子中,如果块A以及B的运动信息18相同,则判定为运动信息18相同。此时,不需要块A以及B的大小相同。
图12B示出运动参照块p以及可利用块q的一个是空间方向的块A,另一个是时间方向的块TB的例子。在图12B中,在时间方向的块TB内有一个具有运动信息的块。如果时间方向的块TB的运动信息18和空间方向的块A的运动信息18相同,则判定为运动信息18相同。此时,不需要块A以及TB的大小相同。
图12C示出运动参照块p以及可利用块q的一个是空间方向的块A,另一个是时间方向的块TB的另一例子。图12C示出将时间方向的块TB分割为多个小块,且存在多个具有运动信息18的小块情况。在图12C的例子中,具有运动信息18的全部的块具有相同的运动信息18,如果该运动信息18与空间方向的块A的运动信息18相同,则判定为运动信息18相同。此时,不需要块A以及TB的大小相同。
图12D示出运动参照块p以及可利用块q都是时间方向的块的例子。在这种情况下,如果块TB以及TE的运动信息18,则判定为运动信息18相同。
图12E示出运动参照块p以及可利用块q都为时间方向的块的另一例子。图12E示出将时间方向的块TB以及TE分别分割为多个小块,而各自存在多个具有运动信息18的小块的情况。在这种情况下,针对块内的每个小块比较运动信息18,如果针对全部的小块运动信息18相同,则判定为块TB的运动信息18与块TE的运动信息18相同。
图12F示出运动参照块p以及可利用块q都为时间方向的块的另一例子。图12F示出时间方向的块TE被分割为多个小块、且块TE中存在多个具有运动信息18的小块的情况。在块TE的全部的运动信息18是相同的运动信息18、并且与块TD的运动信息18相同的情况下,判定为块TD与TE的运动信息18相同。
由此,在步骤S803中,判定运动参照块p的运动信息18和可利用块q的运动信息18是否相同。在图12A至图12F的例子中,设为与运动参照块p进行比较的可利用块q的数量为1进行了说明,但在可利用块q的数量为2以上的情况下,也可以将运动参照块p的运动信息18与各个可利用块q的运动信息18进行比较。另外,在应用后述的比例缩放的情况下,比例缩放后的运动信息18成为上述说明的运动信息18。
另外,运动参照块p的运动信息和可利用块q的运动信息相同的判定不限于运动信息所包含的各运动矢量完全一致的情况。例如,只要2个运动矢量的差的范数(norm)在规定的范围内,都可以看作运动参照块p的运动信息与可利用块q的运动信息实质上相同。
图13示出预测部101的更详细的结构。如上所述,该预测部101输入可利用块信息30、参照运动信息19以及参照图像信号17,输出预测图像信号11、运动信息18以及选择块信息31。如图13所示,运动信息选择部118具备空间方向运动信息取得部110、时间方向运动信息取得部111以及运动信息切换开关112。
空间方向运动信息取得部110中输入可利用块信息30、以及与空间方向运动参照块有关的参照运动信息19。空间方向运动信息取得部110输出包括位于空间方向的各可利用块所具有的运动信息以及可利用块的索引值的运动信息18A。当作为可利用块信息30而输入图11所示的信息的情况下,空间方向运动信息取得部110生成2个运动信息输出18A,各运动信息输出18A包括可利用块以及该可利用块所具有的运动信息19。
时间方向运动信息取得部111中输入可利用块信息30以及与时间方向运动参照块有关的参照运动信息19。时间方向运动信息取得部111,输出利用可利用块信息30确定的可利用的时间方向运动参照块所具有的运动信息19以及可利用块的索引值而作为运动信息18B。时间方向运动参照块被分割为多个小像素块,各小像素块具有运动信息19。如图14所示,时间方向运动信息取得部111所输出的运动信息18B包括可利用块内的各小像素块所具有的运动信息19的组。当运动信息18B包括运动信息19的组的情况下,能够以分割编码对象块得到的小像素块单位对编码对象块执行运动补偿预测。当作为可利用块信息30而输入图11所示的信息的情况下,时间方向运动信息取得部111生成2个运动信息输出18B,各运动信息输出包括可利用块以及该可利用块所具有的运动信息19的组。
另外,时间方向运动信息取得部111也可以求出各像素小块所具有的运动信息19所包含的运动矢量的平均值或代表值,并将运动矢量的平均值或代表值作为运动信息18B而输出。
图13的运动信息切换开关112根据从空间方向运动信息取得部110以及时间方向运动信息取得部111输出的运动信息18A以及18B,选择一个合适的可利用块作为选择块,并将与选择块对应的运动信息18(或运动信息18的组)输出到运动补偿部113。另外,运动信息切换开关112输出与选择块有关的选择块信息31。选择块信息31包括索引p或运动参照块的名称等,也被简单地称作选择信息。选择块信息31不限定为索引p以及运动参照块的名称,只要能够确定选择块的位置,也可以是任意的信息。
运动信息切换开关112,例如将通过下述式1所示的成本式导出的编码成本为最小的可利用块选择为选择块。
[数1]
J=D+λ×R (1)
在此,J表示编码成本,D示出表示输入图像信号10与参照图像信号17之间的平方误差和的编码失真。另外,R表示通过虚拟编码而估算的编码量,λ表示通过量子化宽度等规定的拉格朗日(Lagrange)未定系数。既可以替代式1,而仅使用编码量R或编码失真D来计算编码成本J,也可以使用对编码量R或编码失真D进行近似得到的值来制作式1的成本函数。另外,编码失真D不限于平方误差和,也可以是预测误差的绝对值和(SAD:sums of absolute difference:差分绝对值和)。编码量R,也可以仅使用与运动信息18有关的编码量。另外,不限于将编码成本为最小的可利用块选择为选择块的例子,也可以将编码成本具有最小的值以上的某个范围内的值的一个可利用块选择为选择块。
运动补偿部113根据运动信息选择部118所选择的选择块所具有的运动信息(或运动信息的组),导出作为预测图像信号11而取出参照图像信号17的像素块的位置。当对运动补偿部113输入了运动信息的组的情况下,运动补偿部113将作为预测图像信号11而取出参照图像信号17的像素块分割为小像素块(例如,4×4像素块),并且,对这些小像素块的各个应用对应的运动信息18,从而根据参照图像信号17取得预测图像信号11。取得预测图像信号11的块的位置,例如如图4A所示,成为对应于运动信息18所包含的运动矢量18a而从小像素块在空间方向位移了的位置。
针对编码对象块的运动补偿处理能够使用和H.264的运动补偿处理同样的处理。在此,作为一例,具体说明1/4像素精度的插补方法。在1/4像素精度的插补中,当运动矢量的各分量为4的倍数时,运动矢量指示整数像素位置。除此以外的情况下,运动矢量指示与分数精度的插补位置对应的预测位置。
[数2]
x_pos=x+(mv_x/4) (2)
y_pos=y+(mv_y/4)
在此,x以及y示出表示预测对象块的开头位置(例如,左上顶点)的垂直以及水平方向的索引,x_pos以及y_pos表示参照图像信号17的对应的预测位置。(mv_x,mv_y)表示具有1/4像素精度的运动矢量。接着,针对分割得到的像素位置,通过参照图像信号17的对应像素位置的填补或插补处理生成预测像素。图15示出H.264的预测像素生成的一例。在图15中以大文字的拉丁字母示出的正方形(带斜线的正方形)表示整数位置的像素,以网格线表示的正方形示出1/2像素位置的插补像素。另外,以涂白表示的正方形示出与1/4像素位置对应的插补像素。例如,在图15中,通过下述式3计算与拉丁字母b、h的位置对应的1/2像素的插补处理。
[数3]
b=(E-5×F+20×G+20×H-5×I+J+16)>>5
h=(A-5×C+20×G+20×M-5×R+T+16)>>5
在此,式3以及下述式4所示的拉丁字母(例如,b,h,C1等)在图16中表示赋予了相同的拉丁字母的像素的像素值。另外,“>>”表示右位移运算,“>>5”相当于除以32。即,1/2像素位置的插补像素使用6抽头FIR(Finite Impulse Response:有限冲击响应)滤波器(抽头系数:(1,-5,20,20,-5,1)/32)来计算。
另外,图15中与拉丁字母a、d的位置对应的1/4像素的插补处理通过下述式4计算。
[数4]
a=(G+b+1)>>1 (4)
d=(G+h+1)>>1
由此,1/4像素位置的插补像素使用2抽头的平均值滤波器(抽头系数:(1/2,1/2))计算。与存在于4个整数像素位置的中间的拉丁字母j对应的1/2像素的插补处理使用垂直方向6抽头以及水平方向6抽头的两方向生成。对所说明的以外的像素位置也利用同样的方法生成插补像素值。
另外,插补处理不限于式3以及式4的例子,也可以使用其它的插补系数生成。另外,插补系数既可以使用从编码控制部150提供的固定的值,或者,也可以根据上述的编码成本而针对每个帧优化插补系数,并使用优化后的插补系数来生成。
另外,在本实施方式中,对与运动参照块为微块(例如,16×16像素块)单位的运动矢量块预测处理有关的处理进行了叙述,但不限于微块,也可以以16×8像素块单位、8×16像素块单位、8×8像素块单位、8×4像素块单位、4×8像素块单位或4×4像素块单位来执行预测处理。在这种情况下,以像素块单位导出与运动矢量块有关的信息。另外,也可以以32×32像素块单位、32×16像素块单位、64×64像素块单位等大于16×16像素块的单位进行上述的预测处理。
在将运动矢量块内的参照运动矢量作为编码对象块内的小像素块的运动矢量而代入时,既可以代入(A)参照运动矢量的负值(反转矢量),或者,(B)也可以代入使用了与小块对应的参照运动矢量和与该参照运动矢量邻接的参照运动矢量的加权平均值或者中央值、最大值、最小值。
图16概略地示出预测部101的动作。如图16所示,首先,取得包括时间方向参照运动块的参照帧(运动参照帧)(步骤S1501)。关于运动参照帧,典型地为与编码对象帧时间距离最小的参照帧,在时间上是过去的参照帧。例如,运动参照帧是在编码对象帧的紧前面被编码了的帧。在其它例中,作为运动参照帧也可以取得运动信息存储器108中保存有运动信息18的某一个参照帧。接着,空间方向运动信息取得部110以及时间方向运动信息取得部111分别取得从可利用块取得部109输出的可利用块信息30(步骤S1502)。然后,运动信息切换开关112,例如按照式1从可利用块中选择一个作为选择块(步骤S1503)。接着,运动补偿部113将所选择的选择块所具有的运动信息拷贝到编码对象块(步骤S1504)。此时,当选择块是空间方向参照块的情况下,如图17所示,该选择块所具有的运动信息18被拷贝到编码参照块。另外,当选择块是时间方向参照块的情况下,该选择块所具有的运动信息18的组与位置信息一起被拷贝到编码对象块。接着,使用由运动补偿部113拷贝的运动信息18或运动信息18的组执行运动补偿,并输出预测图像信号11以及在运动补偿预测中使用的运动信息18。
图18示出可变长度编码部104的更详细的结构。如图18所示,可变长度编码部104具备参数编码部114、变换系数编码部115、选择块编码部116以及多路复用部117。参数编码部114除了对变换系数信息13以及选择块信息31进行编码以外,还对预测模式信息、块大小信息、量子化参数信息等的解码所需的参数进行编码,并生成编码数据14A。变换系数编码部115对变换系数信息13进行编码,生成编码数据14B。另外,选择块编码部116参照可利用块信息30,对选择块信息31进行编码,生成编码数据14C。
如图19所示,当可利用块信息30包括索引以及与索引对应的运动参照块的可利用性的情况下,从预先设定的多个运动参照块中排除不可利用的运动参照块,仅将可利用的运动参照块变换为语法(stds_idx)。在图19中,9个运动参照块中的5个运动参照块不可利用,所以针对排除了这5个运动参照块后的4个运动参照块,从0开始依次分配语法stds_idx。在该例子中,要编码的选择块信息不是从9个中选择的,而是从4个可利用块中选择的,所以分配的编码量(bin数)平均地减少了。
图20是表示语法stds_idx以及语法stds_idx的2值信息(bin)的代码表的一例。如图18所示,可利用的运动参照块的数量越少,语法stds_idx的编码所需的平均的bin数越减少。例如,当可利用块的数量为4的情况下,语法stds_idx能够以小于等于3比特表示。语法stds_idx的2值信息(bin)既可以以针对每个可利用块数全部的stds_idx成为相同的bin数的方式2值化,也可以按照通过事先学习而确定的2值化方法进行2值化。另外,也可以准备多个2值化方法,并针对每个编码对象块适用性地进行切换。
这些编码部114、115、116中能够应用熵编码(例如等长编码、哈夫曼编码或者算术编码等),所生成的编码数据14A、14B、14C由多路复用部117进行多路复用并输出。
在本实施方式中,假想将比编码对象帧前1帧被编码了的帧作为参照帧而参照的例子进行了说明,但也可以使用选择块所具有的参照运动信息19中的运动矢量以及参照帧号码,对运动矢量进行比例缩放(scaling)(或标准化),并对编码对象块应用参照运动信息19。
关于该比例缩放处理,参照图21具体地进行说明。图21所示的tc表示编码对象帧与运动参照帧之间的时间距离(POC(表示显示顺序的号码)距离),通过下述式5来计算。图21所示的tr[i]表示运动参照帧与选择块所参照的帧i之间的时间距离,通过下述式6来计算。
[数5]
tc=Clop(-128,127,DiffPicOrderCnt(curPOC,colPOC)) (5)
tr[i]=Clip(-128,127,DiffPicOrderCnt(colPOC,refPOC)) (6)
在此,curPOC表示编码对象帧的POC(Picture Order Count:顺序计数),colPOC表示运动参照帧的POC,refPOC表示选择块所参照的帧i的POC。另外,Clip(min,max,target)是如下CLIP函数:target为小于min的值时输出min,target是大于max的值时输出max,除此以外的情况下输出target。另外,DiffPicOrderCnt(x,y)是计算2个POC的差分的函数。
如果设选择块的运动矢量为MVr=(MVr_x,MVr_y)、对编码对象块应用的运动矢量为MV=(MV_x,MV_y),则通过下述式7计算运动矢量MV。
[数6]
MV_x=(MVr_x×tc+Abs(tr[i]/2))/tr[i] (7)
MV_y=(MVr_y×tc+Abs(tr[i]/2))/tr[i]
在此,Abs(x)表示取出x的绝对值的函数。由此,在运动矢量的比例缩放中,分配给选择块的运动矢量MVr被变换为编码对象帧与运动第1参照帧之间的运动矢量MV。
另外,以下说明与运动矢量的比例缩放有关的另一例。
首先,针对每个切片或每个帧,按照下述式8,关于能够取得运动参照帧的全部的时间距离tr求出比例缩放系数(DistScaleFactor[i])。比例缩放系数的数量与选择块所参照的帧的数量、即、参照帧的数量相等。
[数7]
tx=(16384+Abs(tr[i]/2))/tr[i] (8)
DistScalcFactor[i]=Clip(-1024,1023,(tc×tx+32))>>6
关于式8所示的tx的计算,也可以预先表格化。
在针对每个编码对象块的比例缩放时,通过使用下述式9,仅通过乘法、加法、位移运算就能够计算出运动矢量MV。
[数8]
MV_x=(DistScaleFactor[i]×MVr_x+128)>>8 (9)
MV_j=(DistScaleFactor[i]×MVr_y+128)>>8
在实施了这样的比例缩放处理的情况下,预测部101和可利用块取得部109的处理都应用比例缩放后的运动信息18。在实施了比例缩放处理的情况下,编码对象块所参照的参照帧成为运动参照帧。
图22示出图像编码部100中的语法结构。如图22所示,语法主要包括3个部分,即、高级语法901、切片级语法904以及微块级语法907。高级语法901保持有切片以上的上位层的语法信息。切片级语法904针对每个切片保持所需要的信息,微块级语法907针对图7A至图7D所示的每个微块保持有所需要的数据。
各部分包括更详细的语法。高级语法901包括序列参数组语法902以及图形参数组语法903等序列以及图形级的语法。切片级语法904包括切片头语法905以及切片数据语法906等。另外,微块级语法907包括微块层语法908以及微块预测语法909等。
图23A以及图23B示出微块层语法的例子。图23A以及图23B所示的available_block_num表示可利用块的数量,当该值为大于1的值的情况下,需要选择块信息的编码。另外,stds_idx示出选择块信息,使用前述的与可利用块数的数量对应的代码表对stds_idx进行编码。
图23A示出在mb_type之后对选择块信息进行编码时的语法。在mb_type所表示的模式为确定了的大小或确定了的模式(TARGET_MODE)的情况下,并且在available_block_num为大于1的值的情况下,对stds_idx进行编码。例如,当选择块的运动信息成为可利用的块大小为64×64像素、32×32像素、16×16像素的情况下,或者直接模式的情况下,对stds_idx进行编码。
图23B示出在mb_type之前对选择块信息进行编码时的语法。当available_block_num为大于1的值的情况下,对stds_idx进行编码。另外,如果available_block_num为0,则进行H.264所代表的以往的运动补偿,所以对mb_type进行编码。
另外,图23A以及图23B所示的表的行间还能够插入在本发明中未规定的语法要素,也可以包括与除此以外的条件分岐有关的的记述。或者,也能够将语法表分割、合并为多个表。另外,不必须使用同一用语,也能够根据利用的方式任意地变更。进而,在该微块层语法中记述的各个语法片断也可以变更,以明确记载到后述的微块数据语法。
另外,通过利用stds_idx的信息能够削減mb_type的信息。图24A是与H.264中的B切片时的mb_type以及mb_type对应的代码表。图24A所示的N是表示16,32,64等编码对象块的大小的值,M是N的一半的值。因此,当mb_type为4~21的情况下,编码对象块示出为长方形块。另外,图24A的L0,L1,Bi分别表示单方向预测(仅List0方向)、单方向预测(仅List1方向)、双方向预测。编码对象块为长方形块的情况下,mb_type针对编码对象块内的2个长方形块的各个,包括表示进行了L0,L1,Bi中的某一个的预测的信息。另外,B_Sub表示针对4分割了微块的像素块的各个执行上述处理。例如,当编码对象块为64×64像素微块的情况下,编码对象块,针对4分割该微块得到的4个32×32像素块的每一个,进一步分配mb_type并进行编码。
在此,当stds_idx表示的选择块为Spatial Left(与编码对象块的左侧邻接的像素块)的情况下,将与编码对象块的左侧邻接的像素块的运动信息设为编码对象块的运动信息,所以stds_idx具有与使用图24A的mb_type=4,6,8,10,12,14,16,18,20所示的横长的长方形块对编码对象块执行预测相同的含义。另外,stds_idx所示的选择块为SpatialUp的情况下,将与编码对象块的上侧邻接的运动信息设为编码对象块的运动信息,所以stds_idx具有与利用图24A的mb_type=5,7,9,11,13,15,17,19,21所示的纵长的长方形块执行预测相同的含义。因此,通过利用stds_idx,能够制作图24B所示那样的削减了图24A的mb_type=4~21的栏的代码表。同样地,关于与图24C所示的H.264中的P切片时的mb_type以及mb_type对应的代码表,也能够制作图24D所示那样的削减了mb_type的数量的代码表。
另外,也可以将stds_idx的信息包含在mb_type的信息中进行编码。图25A示出将stds_idx的信息包含在mb_type的信息时的代码表,示出与B切片的mb_type以及mb_type对应的代码表的一例。图25A的B_STDS_X(X=0,1,2)示出与stds_idx相当的模式,追加可利用块数的量的B_STDS_X(在图25A中,可利用块数为3)。同样地,图25B示出与P切片有关的mb_type的另一例子。图25B的说明与B切片相同,所以省略。
mb_type的顺序以及2值化方法(bin化)不限于图25A以及图25B所示的例子,也可以按照其它顺序以及2值化方法对mb_type进行编码。B_STDS_X以及P_STDS_X不需要连续,也可以配置在各mb_type之间。另外,2值化方法(bin化)也可以基于预先学习的选择频度来设计。
在本实施方式中,即使在汇总多个微块并进行运动补偿预测的扩展微块中也能应用本发明。另外,在本实施方式中,关于编码的扫描顺序可以是任意的顺序。例如,对行扫描或Z扫描等也能够应用本发明。
如以上那样,本实施方式的图像编码装置从多个运动参照块中选择可利用块,根据所选择的可利用块的数量生成用于确定对编码对象块应用的运动参照块的信息,并对该信息进行编码。因此,根据本实施方式的图像编码装置,即使削减与运动矢量信息有关的编码量,也能以比编码对象块更细的小像素块单位进行运动补偿,所以能够实现高的编码效率。
(第2实施方式)
图26示出本发明的第2实施方式所涉及的图像编码装置。在第2实施方式中,主要对与第1实施方式不同的部分以及动作进行说明。如图26所示,在本实施方式的图像编码部200中,预测部201以及可变长度编码部204的结构与第1实施方式不同。如图27所示,预测部201具备第1预测部101以及第2预测部202,选择性地切换这第1以及第2预测部101、202而生成预测图像信号11。第1预测部101具有与第1实施方式的预测部101(图1)相同的结构,按照使用选择块所具有的运动信息18进行运动补偿的预测方式(第1预测方式)生成预测图像信号11。第2预测部202按照对编码对象块使用一个运动矢量进行运动补偿的、如H.264那样的预测方式(第2预测方式)生成预测图像信号11。第2预测部202使用来自输入图像信号10以及帧存储器的参照图像信号17生成预测图像信号11B。
图28概略地示出第2预测部202的结构。如图28所示,第2预测部202具有:运动信息取得部205,使用输入图像信号10以及参照图像信号17生成运动信息21;以及运动补偿部113(图1),使用参照图像信号17以及运动信息21生成预测图像信号11A。该运动信息取得部205根据输入图像信号10以及参照图像信号17,例如通过块匹配求出应该分配给编码对象块的运动矢量。作为匹配的评价基准,使用针对每个像素累积输入图像信号10与匹配后的插补图像的差分而得到的值。
另外,运动信息取得部205也可以使用对预测图像信号11与输入图像信号10的差分进行变换得到的值,来决定最佳的运动矢量。另外,也可以考虑运动矢量的大小、以及运动矢量和参照帧号码的编码量,或者,使用式1来决定最佳的运动矢量。匹配方法既可以根据从图像编码装置的外部提供的搜索范围信息来执行,也可以针对每个像素精度阶段性地执行。另外,也可以不进行搜索处理,而将由编码控制部150提供的运动信息作为运动信息取得部205的输出21。
图27的预测部101进一步具备预测方法切换开关203,选择并输出来自第1预测部101的预测图像信号11A以及来自第2预测部202的预测图像信号11B的某一方。例如,预测方法切换开关203针对每个预测图像信号11A以及11B,使用输入图像信号10,例如按照式1求出编码成本,以编码成本更小的方式选择预测图像信号11A以及11B中的某一方,并作为预测图像信号11而输出。另外,预测方法切换开关203还与运动信息18以及选择块信息31一起,输出表示所输出的预测图像信号11是从第1预测部101以及第2预测部202的哪一个输出的预测图像信号的预测切换信息32。所输出的运动信息18由可变长度编码部204编码,之后被多路复用为编码数据14。
图29概略地示出可变长度编码部204的结构。图29所示的可变长度编码部204除了图18所示的可变长度编码部104的结构之外,还具备运动信息编码部217。另外,图29的选择块编码部216与图18的选择块编码部116不同,对预测切换信息32进行编码并生成编码数据14D。当第1预测部101执行了预测处理的情况下,选择块编码部216进一步对可利用块信息30以及选择块信息31进行编码。所编码后的可利用块信息30以及选择块信息31包含于编码数据14D。当第2预测部202执行了预测处理的情况下,运动信息编码部217对运动信息18进行编码,并生成编码数据14E。选择块编码部216以及运动信息编码部217分别根据预测切换信息32来判定第1预测部101以及第2预测部202中的哪一方执行了预测处理,该预测切换信息32表示预测图像是否是通过使用了选择块的运动信息的运动补偿预测所生成的。
多路复用部117从参数编码部114、变换系数编码部115、选择块编码部216以及运动信息编码部接收编码数据14A,14B,14D,14E,对所接收的编码数据14A,14B,14D,14E进行多路复用。
图30A以及图30B各自示出本实施方式的微块层语法的例子。图30A所示的available_block_num表示可利用块的数量,当其为大于1的值的情况下,选择块编码部216对选择块信息31进行编码。另外,stds_flag是表示在运动补偿预测中是否将选择块的运动信息作为编码对象块的运动信息而使用了的标记,即,是表示预测方法切换开关203选择了第1预测部101以及第2预测部202中的哪一个的标记。当可利用块的数量大于1、且stds_flag为1的情况下,表示在运动补偿预测中使用了选择块所具有的运动信息。另外,当stds_flag为0的情况下,不利用选择块所具有的运动信息,而与H.264同样地直接对运动信息18的信息进行编码,或者对所预测的差分值进行编码。另外,stds_idx表示选择块信息,与可利用块数对应的代码表如上所述。
图30A示出在mb_type之后对选择块信息进行编码时的语法。仅在确定了mb_type表示的模式的大小或确定了的模式的情况下,对stds_flag以及stds_idx进行编码。例如,在选择块的运动信息为可利用的块大小为64×64、32×32、16×16的情况下、或者直接模式的情况下,对stds_flag以及stds_idx进行编码。
图30B示出在mb_type之前对选择块信息进行编码时的语法。例如当stds_flag为1的情况下,不需要对mb_type进行编码。当stds_flag为0的情况下,对mb_type进行编码。
如以上所述,第2实施方式的图像编码装置选择性地切换第1实施方式的第1预测部101和利用H.264等的预测方式的第2预测部202,并对输入图像信号进行压缩编码,以使编码成本减小。因此,在第2实施方式的图像编码装置中比第1实施方式的图像编码装置进一步提高了编码效率。
(第3实施方式)
图31概略地示出第3实施方式的图像解码装置。如图31所示,该图像解码装置具备图像解码部300、解码控制部350以及输出缓存器308。图像解码部300由解码控制部350控制。第3实施方式的图像解码装置与第1实施方式的图像编码装置对应。即,基于图31的图像解码装置的解码处理与基于图1的图像编码处理的编码处理具有互补的关系。图31的图像解码装置既可以通过LSI芯片等硬件来实现,或者也可以通过使计算机执行图像解码程序来实现。
图31的图像解码装置具备编码列解码部301、逆量子化·逆变换部302、加法器303、帧存储器304、预测部305、运动信息存储器306以及可利用块取得部307。在图像解码部300中,来自未图示的存储系统统或传输系统的编码数据80输入到编码列解码部301。该编码数据80,例如,与以被多路复用的状态从图1的图像编码装置送出的编码数据14对应。
在本实施方式中,将作为解码对象的像素块(例如,微块)仅称作解码对象块。另外,将包括解码对象块的图像帧称作解码对象帧。
在编码列解码部301中,针对每1帧或每1字段,根据语法进行基于语法分析的解读。具体而言,编码列解码部301依次对各语法的编码列进行可变长度解码,并对包括变换系数信息33、选择块信息61、块大小信息以及预测模式信息等预测信息的、与解码对象块有关的编码参数等进行解码。
在本实施方式中,解码参数包括变换系数33、选择块信息61以及预测信息,并且包括与变换系数有关的信息、与量子化有关的信息等解码时所需的所有的参数。与预测信息、变换系数有关的信息以及与量子化有关的信息作为控制信息71而被输入解码控制部350。解码控制部350将包括预测信息以及量子化参数等解码所需要的参数的解码控制信息70提供给图像解码部300的各部分。
另外,如之后所说明的那样,编码列解码部301同时对编码数据80进行解码,得到预测信息以及选择块信息61。也可以不对包括运动矢量以及参照帧号码的运动信息38解码。
由编码列解码部301解读的变换系数33被送往逆量子化·逆变换部302。由编码列解码部301解读的与量子化有关的各种信息、即量子化参数以及量子化矩阵被提供给解码控制部350,在逆量子化时被下载到逆量子化·逆变换部302。逆量子化·逆变换部302按照所下载的与量子化有关的信息,对变换系数33进行逆量子化,接着实施逆变换处理(例如,逆离散余弦变换等),得到预测误差信号34。基于图31的逆量子化·逆变换部302的逆变换处理是基于图1的变换·量子化部的变换处理的逆变换。例如,在通过图像编码装置(图1)实施小波变换的情况下,逆量子化·逆变换部302执行对应的逆量子化以及逆小波变换。
通过逆量子化·逆变换部302复原了的预测误差信号34输入到加法器303。加法器303将预测误差信号34和在后述的预测部305中生成的预测图像信号35相加,生成解码图像信号36。所生成的解码图像信号36被从图像解码部300输出,并临时存储到输出缓存器308,之后,按照解码控制部350管理的输出定时进行输出。另外,该解码图像信号36在帧存储器304中被保存为参照图像信号37。按照每个帧或每个字段依次从帧存储器304读出参照图像信号37,并输入给预测部305。
可利用块取得部307从后述的运动信息存储器306接收参照运动信息39,并输出可利用块信息60。可利用块取得部307的动作与在第1实施方式中说明的可利用块取得部109(图1)相同。
运动信息存储器306从预测部305接收运动信息38,并临时保存为参照运动信息39。运动信息存储器306将从预测部305输出的运动信息38临时保存为参照运动信息39。图4示出运动信息存储器306的一例。运动信息存储器306保持有编码时间不同的多个运动信息帧26。解码结束了的运动信息38或运动信息38的组,作为参照运动信息39而保存于与解码时间对应的运动信息帧26。在运动信息帧26中,例如以4×4像素块单位保存参照运动信息39。运动信息存储器306所保持的参照运动信息39,由预测部305在生成解码对象块的运动信息38时读出并参照。
接着,说明本实施方式的运动参照块以及可利用块。运动参照块是按照由前述的图像编码装置以及图像解码装置预先设定的方法从已经解码完毕的区域中选择的候选块。图8A示出与可利用块有关的一例。在图8A中,配置有解码对象帧内的4个运动参照块以及参照帧内的5个运动参照块这合计9个运动参照块。图8A的解码对象帧内的运动参照块A,B,C,D是相对于解码对象块在左、上、右上、左上邻接的块。在本实施方式中,将从包括解码对象块的解码对象帧中选择的运动参照块称作空间方向运动参照块。另外,参照帧内的运动参照块TA是参照帧内的、与解码对象块相同位置的像素块,将与该运动参照块TA相接的像素块TB,TC,TD,TE选择为运动参照块。将从参照帧内的像素块中选择的运动参照块称作时间方向运动参照块。另外,将时间方向运动参照块所位于的帧称作运动参照帧。
空间方向运动参照块不限于图8A所示的例子,如图8B所示,也可以将与解码对象块邻接的像素a,b,c,d所属的像素块选择为空间方向运动参照块。在这种情况下,像素a,b,c,d相对于解码对象块内的左上像素的相对位置(dx,dy)如图8C所示。
另外,如图8D所示,也可以将与解码对象块邻接的全部的像素块A1~A4,B1,B2,C,D选择为空间方向运动参照块。在图8D中,空间方向运动参照块的数量为8。
另外,如图8E所示,时间方向运动参照块TA~TE既可以相互部分地重叠,也可以如图8F所示地相互分离。另外,时间方向运动参照块不需要必须是Collocate位置的块以及位于其周围的块,只要是运动参照帧内则可以是任意位置的像素块。例如,也可以利用与解码对象块邻接的已经解码完毕的块的运动信息,将运动信息包含的运动矢量所指示的参照块选择为运动参照块的中心(例如,块TA)。另外,时间方向的参照块也可以不是等间隔地配置。
在上述那样的选择运动参照块的方法中,如果图像解码装置以及图像解码装置的双方共有与空间方向以及时间方向运动参照块的数量以及位置有关的信息,则运动参照块可以从任意的数量以及位置中选择。另外,运动参照块的大小不需要必须是与解码对象块相同的大小。例如如图8D所示,运动参照块的大小既可以比解码对象块的大小大,也可以比解码对象块的大小小,可以是任意的大小。另外,运动参照块的形状不限于正方形形状,也可以是长方形形状。
接着,对可利用块进行说明。可利用块是从运动参照块中选择的像素块,是能够对解码对象块应用运动信息的像素块。可利用块具有相互不同的运动信息。针对例如图8A所示那样的解码对象帧以及参照帧内的合计9个运动参照块,通过执行图9所示的可利用块判定处理来选择可利用块。图10示出执行图9所示的可利用块判定处理得到的结果。在图10中,带斜线的像素块表示不可利用块,涂白的块表示可利用块。即、判定为从空间方向运动参照块中选择2个、从时间方向运动参照块中选择2个合计选择4个作为可利用块。预测部305内的运动信息选择部314按照从选择块解码部323接收的选择块信息61,从配置在时间以及空间方向的这些可利用块中选择最佳的一个可利用块作为选择块。
接着,对可利用块取得部307进行说明。可利用块取得部307具有与第1实施方式的可利用块取得部109相同的功能,从运动信息存储器306取得参照运动信息39,针对每个运动参照块输出表示可利用块或不可利用块的信息即可利用块信息60。
参照图9的流程图说明可利用块取得部307的动作。首先,可利用块取得部307判定运动参照块(索引p)是否具有运动信息(步骤S801)。即,在步骤S801中判定是否运动参照块p内的至少一个小像素块具有运动信息。当判定为运动参照块p不具有运动信息的情况下,即时间方向运动参照块是没有运动信息的I切片内的块,或者,时间方向运动参照块内的全部的小像素块被内预测解码的情况下,进入步骤S805。在步骤S805中,将该运动参照块p判定为不可利用块。
当在步骤S801中判定为运动参照块p具有运动信息的情况下,可利用块取得部307选定已经判定为可利用块的运动参照块q(称作可利用块q)(步骤S802)。在此,q是小于p的值。接着,可利用块取得部307针对全部的q比较该运动参照块p的运动信息和可利用块q的运动信息,判定运动参照块p是否具有与可利用块q相同的运动信息(S803)。当运动参照块p具有与可利用块q相同的运动矢量的情况下,进入步骤S805,在步骤S805中,通过利用块取得部307将该运动参照块p判定为不可利用块。运动参照块p具有与全部的可利用块q不同的运动信息的情况下,在步骤S804中,通过可利用块取得部307将该运动参照块p判定为可利用块。
通过对全部的运动参照块执行上述的可利用块判定处理,针对每个运动参照块判定是可利用块还是不可利用块,并生成可利用块信息60。图11示出可利用块信息60的一例。如图11所示,可利用块信息60包括运动参照块的索引p以及可利用性。在图11中,可利用块信息60示出将索引p为0,1,5以及8的运动参照块选择为可利用块,可利用块的数量为4。
另外,在图9的步骤S801中,也可以在时间方向运动参照块p内的块中的至少一个是被内预测编码了的块的情况下,可利用块取得部307将运动参照块p判定为不可利用块。即也可以设为仅在时间方向运动参照块p内的全部的块被以交互预测而编码的情况下,进入步骤S802。
图12A至图12E示出在步骤S803的运动信息38的比较中,将运动参照块p的运动信息38和可利用块q的运动信息38判定为相同的例子。图12A至图12E各自示出有带斜线的多个块和2个涂白的块。图12A至图12E中,为了简化说明,假设不考虑带斜线的块,而比较这2个涂白的块的运动信息38的情况。2个涂白的块的一方是运动参照块p,另一方是已经判定为可利用的运动参照块q(可利用块q)。只要没有特别说明,2个白色块中的任意一个都可以是运动参照块p。
图12A示出运动参照块p以及可利用块q的双方为空间方向的块的例子。在图12A的例子中,如果块A以及B的运动信息38相同,则判定为运动信息38相同。此时,块A以及B的大小不需要相同。
图12B示出运动参照块p以及可利用块q的一方是空间方向的块A,另一方是时间方向的块TB的例子。在图12B中,在时间方向的块TB内有一个具有运动信息的块。如果时间方向的块TB的运动信息38和空间方向的块A的运动信息38相同,则判定为运动信息38相同。此时,块A以及TB的大小不需要相同。
图12C示出运动参照块p以及可利用块q的一方是空间方向的块A,另一方为时间方向的块TB的另一例。图12C示出时间方向的块TB被分割为多个小块,且存在多个具有运动信息38的小块的情况。在图12C的例子中,具有运动信息38的全部的块具有相同的运动信息38,如果该运动信息38与空间方向的块A的运动信息38相同,则判定为运动信息38相同。此时,块A以及TB的大小不需要相同。
图12D示出运动参照块p以及可利用块q都是时间方向的块的例子。在这种情况下,如果块TB以及TE的运动信息38相同,则判定为运动信息38相同。
图12E示出运动参照块p以及可利用块q都是时间方向的块的另一例子。图12E示出将时间方向的块TB以及TE分别分割为多个小块,并且各自存在多个具有运动信息38的小块的情况。在这种情况下,针对块内的每个小块比较运动信息38,如果针对全部的小块运动信息38相同,则判定为块TB的运动信息38和块TE的运动信息38相同。
图12F示出运动参照块p以及可利用块q都是时间方向的块的另一例子。图12F示出将时间方向的块TE分割为多个小块,块TE中存在多个具有运动信息38的小块的情况。在块TE的全部的运动信息38是相同的运动信息38、且与块TD所具有的运动信息38相同的情况下,判定为块TD与TE的运动信息38相同。
由此,在步骤S803中,判定运动参照块p的运动信息38和可利用块q的运动信息38是否相同。在图12A至图12F的例子中,设与运动参照块p进行比较的可利用块q的数量为1进行了说明,但在可利用块q的数量为2以上的情况下,也可以将运动参照块p的运动信息38与各个可利用块q的运动信息38进行比较。另外,在应用后述的比例缩放的情况下,比例缩放后的运动信息38成为上述说明的运动信息38。
另外,运动参照块p的运动信息和可利用块q的运动信息相同的判定不限于运动信息所包含的各运动矢量完全一致的情况。例如,也可以只要2个运动矢量的差的范数在规定的范围内就认为运动参照块p的运动信息和可利用块q的运动信息实质上相同。
图32是更详细地示出编码列解码部301的框图。如图32所示,编码列解码部301具有:将编码数据80分离为语法单位的分离部320、对变换系数进行解码的变换系数解码部322、对选择块信息进行解码的选择块解码部323、以及对与预测块大小以及量子化有关的参数等进行解码的参数解码部321。
参数解码部321从分离部接收包括与预测块大小以及量子化有关的参数的编码数据80A,对编码数据80A进行解码并生成控制信息71。变换系数解码部322从分离部320接收所编码的变换系数80B,对该编码的变换系数80B进行解码,得到变换系数信息33。选择块解码部323输入与选择块有关的编码数据80C以及可利用块信息60,输出选择块信息61。如图11所示,所输入的可利用块信息60针对每个运动参照块示出可利用性。
接着,参照图33,详细说明预测部305。
如图33所示,预测部305具有运动信息选择部314以及运动补偿部313,运动信息选择部314具有空间方向运动信息取得部310、时间方向运动信息取得部311以及运动信息切换开关312。预测部305基本上具有与在第1实施方式中说明的预测部101相同的结构以及功能。
预测部305输入可利用块信息60、选择块信息61、参照运动信息39以及参照图像信号37,输出预测图像信号35以及运动信息38。空间方向运动信息取得部310以及时间方向运动信息取得部311分别具有与在第1实施方式中说明的空间方向运动信息取得部110以及时间方向运动信息取得部111相同的功能。空间方向运动信息取得部310使用可利用块信息60以及参照运动信息39,生成包括位于空间方向的各可利用块的运动信息以及索引的运动信息38A。时间方向运动信息取得部311使用可利用块信息60以及参照运动信息39,生成包括位于时间方向的各可利用块的运动信息以及索引的运动信息(或运动信息的组)38B。
在运动信息切换开关312中,按照选择块信息61,从来自空间方向运动信息取得部310的运动信息38A以及来自时间方向运动信息取得部311的运动信息(或运动信息的组)38B中选择一个,得到运动信息38。所选择的运动信息38被送往运动补偿部313以及运动信息存储器306。运动补偿部313按照所选择的运动信息38与在第1实施方式中说明的运动补偿部113同样地进行运动补偿预测,生成预测图像信号35。
在运动补偿部313的运动矢量的比例缩放功能中,与在第1实施方式中说明的相同,因此省略说明。
图22示出图像解码部300中的语法结构。如图22所示,语法主要包括3个部分,即高级语法901、切片级语法904以及微块级语法907。高级语法901保持切片以上的上位层的语法信息。切片级语法904针对每个切片保持所需要的信息,微块级语法907针对图7A至图7D所示的每个微块保持所需要的数据。
各部分包括更详细的语法。高级语法901包括序列参数组语法902以及图形参数组语法903等序列以及图形级的语法。切片级语法904包括切片头语法905以及切片数据语法906等。另外,微块级语法907包括微块层语法908以及微块预测语法909等。
图23A以及图23B示出微块层语法的例子。图23A以及图23B所示的available_block_num表示可利用块的数量,当其为大于1的值的情况下,需要选择块信息的解码。另外,stds_idx示出选择块信息,使用与前述的可利用块数对应的代码表对stds_idx进行编码。
图23A示出在mb_type之后对选择块信息进行解码时的语法。当mb_type所示的预测模式为确定了的大小或确定了的模式(TARGET_MODE)的情况下,并且在available_block_num为大于1的值的情况下,对stds_idx进行解码。例如,选择块的运动信息成为可利用的是块大小为64×64像素、32×32像素、16×16像素的情况下对stds_idx进行编码,或者在直接模式的情况下对stds_idx进行编码。
图23B示出在mb_type之前对选择块信息进行解码时的语法。当available_block_num为大于1的值的情况下,对stds_idx进行解码。另外,如果available_block_num为0,则进行H.264所代表的以往的运动补偿,所以对mb_type进行编码。
图23A以及图23B所示的表的行间也可能示出在本发明中未规定的语法要素,也可以包括与除此以外的条件分岐有关的记述。或者,也能够将语法表分割、合并为多个表。另外,不需要必须使用相同的用语,也可以根据利用的方式而任意地变更。另外,在该微块层语法中记述的各个语法片断也可以变更为明确记载在后述的微块数据语法中。
如上所述,本实施方式的图像解码装置对通过前述的第1实施方式的图像编码装置编码了的图像进行解码。因此,本实施方式的图像解码能够根据比较小的编码数据再现高像质的解码图像。
(第4实施方式)
图34概略地示出第4实施方式的图像解码装置。如图34所示,图像解码装置具备图像解码部400、解码控制部350以及输出缓存器308。第4实施方式的图像解码装置与第2实施方式的图像编码装置对应。在第4实施方式中,主要对与第3实施方式不同的部分以及动作进行说明。如图34所示,在本实施方式的图像解码部400中,编码列解码部401以及预测部405与第3实施方式不同。
本实施方式的预测部405选择性地切换以下两种预测方式,并生成预测图像信号35,该两种预测方式包括:使用选择块所具有的运动信息进行运动补偿的预测方式(第1预测方式);如H.264那样的、针对解码对象块使用一个运动矢量进行运动补偿的预测方式(第2预测方式)。
图35是更详细地示出编码列解码部401的框图。图35所示的编码列解码部401在图32所示的编码列解码部301的结构上进一步具备运动信息解码部424。另外,图35所示的选择块解码部423与图32所示的选择块解码部323不同,对与选择块有关的编码数据80C进行解码,得到预测切换信息62。预测切换信息62表示图1的图像编码装置内的预测部101使用了第1以及第2预测方式中的哪一个。当预测切换信息62表示预测部101使用了第1预测方式的情况下,即利用第1预测方式对解码对象块编码的情况下,选择块解码部423对编码数据80C中的选择块信息进行解码,得到选择块信息61。当预测切换信息62表示预测部101使用了第2预测方式的情况下,即利用第2预测方式对解码对象块编码的情况下,选择块解码部423不对选择块信息解码,运动信息解码部424对所编码的运动信息80D解码,得到运动信息40。
图36是更详细地示出预测部405的框图。图34所示的预测部405具备第1预测部305、第2预测部410以及预测方法切换开关411。第2预测部410使用由编码列解码部401解码了的运动信息40以及参照图像信号37,进行与图33的运动补偿部313同样的运动补偿预测,生成预测图像信号35B。第1预测部305与在第3实施方式中说明的预测部305相同,生成预测图像信号35B。另外,预测方法切换开关411根据预测切换信息62,从来自第2预测部410的预测图像信号35B以及来自第1预测部305的预测图像信号35A中选择某一方,并作为预测部405的预测图像信号35而输出。同时,预测方法切换开关411将所选择的在第1预测部305或者第2预测部410中使用过的运动信息作为运动信息38而发送给运动信息存储器306。
接着,关于与本实施方式有关的语法结构,主要对与第3实施方式不同的点进行说明。
图30A以及图30B分别示出本实施方式的微块层语法的例子。图30A所示的available_block_num表示可利用块的数量,当其为大于1的值的情况下,选择块解码部423对编码数据80C中的选择块信息进行解码。另外,stds_flag是表示在运动补偿预测中是否将选择块的运动信息作为解码对象块的运动信息而使用了的标记、即表示预测方法切换开关411选择了第1预测部305以及第2预测部410中的哪一方的标记。当可利用块的数量大于1、且stds_flag为1的情况下,表示在运动补偿预测中使用了选择块所具有的运动信息。另外,当stds_flag为0的情况下,不利用选择块所具有的运动信息,而与H.264同样地直接对运动信息的信息进行编码或者对所预测的差分值进行编码。另外,stds_idx表示选择块信息,与可利用块数对应的代码表如前所述。
图30A示出在mb_type之后对选择块信息进行解码时的语法。仅在mb_type所示的预测模式为确定了的块大小或确定了的模式的情况下,对stds_flag以及stds_idx进行解码。例如,当块大小为64×64、32×32、16×16的情况下,或者是直接模式的情况下,对stds_flag以及stds_idx进行解码。
图30B示出在mb_type之前对选择块信息进行解码时的语法。例如当stds_flag为1的情况下,不需要对mb_type解码。当stds_flag为0的情况下,对mb_type进行解码。
如以上所述,本实施方式的图像解码装置对通过前述的第2实施方式的图像编码装置编码了的图像进行解码。因此,本实施方式的图像解码能够根据比较小的编码数据再现高像质的解码图像。
另外,本发明不限于上述实施方式本身,在实施阶段,在不脱离其要旨的范围内能够对结构要素进行变形而具体化。另外,通过上述实施方式公开的多个结构要素的适当组合,能够形成各种发明。例如,也可以从实施方式所示的全部结构要素中删除几个结构要素。另外,也可以适当地组合不同的实施方式中的结构要素。
作为该一例,即使如下所述地对上述的第1至第4实施方式进行变形也能获得同样的效果。
(1)在第1至第4实施方式中,对将处理对象帧分割为16×16像素块等矩形块、并按照图4所示那样的从画面左上的像素块向右下的像素块的顺序进行编码或解码时的例子进行了说明,但编码或解码顺序不限于该例子。例如,编码或解码顺序既可以是从画面右下向左上的顺序,也可以是从右上向左下的顺序。另外,编码或解码顺序既可以是从画面的中央部螺旋状地向周边部的顺序,也可以是从画面的周边部向中心部的顺序。
(2)在第1至第4实施方式中,以不分亮度信号和色差信号、而限定为一个的色信号分量的情况为例子进行了说明。但是,针对亮度信号以及色差信号既可以使用不同的预测处理,或者也可以使用相同的预测处理。在使用不同的预测处理的情况下,将针对色差信号选择的预测方法,利用与亮度信号同样的方法进行编码/解码。
另外,显然,在不脱离本发明的要旨的范围实施各种变形也同样能够实施。
产业上的可利用性
本发明的图像编码/解码方法能够提高编码效率,所以具有产业上的可利用性。
Claims (14)
1.一种图像解码方法,其特征在于,具有:
第1步骤,从具有运动信息的解码完毕的像素块中选择多个运动参照块;
第2步骤,从所述多个运动参照块中选择至少一个可利用块,所述至少一个可利用块是具有应用于解码对象块的运动信息的候选的像素块,且具有相互不同的运动信息;
第3步骤,基于根据所述可利用块的数量而预先设定的代码规则,对所输入的编码数据进行解码,从而求出用于确定选择块的选择信息;
第4步骤,按照所述选择信息,从所述可利用块中选择一个选择块;
第5步骤,使用所述选择块的运动信息生成所述解码对象块的预测图像;
第6步骤,根据所述编码数据对所述解码对象块的预测误差进行解码;
第7步骤,根据所述预测图像和所述预测误差求出解码图像;以及
第8步骤,将所述解码图像保存到输出缓存器。
2.根据权利要求1所述的图像解码方法,其特征在于,
在所述第2步骤中,在所述运动参照块具有运动信息、并且该运动信息与对应于已经被判定为可利用的运动参照块的运动信息不一致的情况下,判定为可利用块。
3.根据权利要求2所述的图像解码方法,其特征在于,
还具有第9步骤,接收与解码对象块的预测模式相关的模式信息的输入,
在所述第2步骤中,与所述模式信息示出规定的信息相应地,从具有运动信息的解码完毕的像素块中选择多个运动参照块。
4.根据权利要求3所述的图像解码方法,其特征在于,
所述多个运动参照块包括与所述解码对象块相同的帧的多个块、以及与所述解码对象块不同的帧的多个块。
5.根据权利要求4所述的图像解码方法,其特征在于,
与所述解码对象块相同的帧的所述多个块至少包括所述解码对象块的左邻接块、所述解码对象块的左上邻接块、所述解码对象块的上邻接块以及所述解码对象块的右上邻接块,
在所述第2步骤中,按照所述左邻接块、所述上邻接块、所述右上邻接块的顺序判定这些邻接块的可利用性,进而之后判定所述左上邻接块的可利用性。
6.根据权利要求5所述的图像解码方法,其特征在于,
在所述第2步骤中,在判定了与所述解码对象块相同的帧的所述多个块的可利用性之后,判定与所述解码对象块不同的帧的所述多个块的可利用性。
7.根据权利要求6所述的图像解码方法,其特征在于,
还具有第10步骤,输入与可利用块的数量有关的信息。
8.一种图像解码装置,其特征在于,具备:
可利用块取得部,从具有运动信息的解码完毕的像素块中选择多个运动参照块,从所述多个运动参照块中选择至少一个可利用块,所述至少一个可利用块是具有应用于解码对象块的运动信息的候选的像素块,且具有相互不同的运动信息;
第1解码部,基于根据所述可利用块的数量而预先设定的代码规则,对所输入的编码数据进行解码,从而求出用于确定选择块的选择信息;
选择部,按照所述选择信息,从所述可利用块中选择一个选择块;
预测部,使用所述选择块的运动信息生成所述解码对象块的预测图像;
第2解码部,根据所述编码数据对所述解码对象块的预测误差进行解码;
加法器,根据所述预测图像和所述预测误差求出解码图像;以及
输出缓存器,保存所述解码图像。
9.根据权利要求8所述的图像解码装置,其特征在于,
在所述可利用块取得部中,在所述运动参照块具有运动信息、并且该运动信息与对应于已经被判定为可利用的运动参照块的运动信息不一致的情况下,判定为可利用块。
10.根据权利要求9所述的图像解码装置,其特征在于,
还具有第1输入部,接收与解码对象块的预测模式相关的模式信息的输入,
在所述可利用块取得部中,与所述模式信息示出规定的信息相应地,从具有运动信息的解码完毕的像素块中选择多个运动参照块。
11.根据权利要求10所述的图像解码装置,其特征在于,
所述多个运动参照块包括与所述解码对象块相同的帧的多个块、以及与所述解码对象块不同的帧的多个块。
12.根据权利要求11所述的图像解码装置,其特征在于,
与所述解码对象块相同的帧的所述多个块至少包括所述解码对象块的左邻接块、所述解码对象块的左上邻接块、所述解码对象块的上邻接块以及所述解码对象块的右上邻接块,
在所述可利用块取得部中,按照所述左邻接块、所述上邻接块、所述右上邻接块的顺序判定这些邻接块的可利用性,进而之后判定所述左上邻接块的可利用性。
13.根据权利要求12所述的图像解码装置,其特征在于,
在所述可利用块取得部中,在判定了与所述解码对象块相同的帧的所述多个块的可利用性之后,判定与所述解码对象块不同的帧的所述多个块的可利用性。
14.根据权利要求13所述的图像解码装置,其特征在于,
还具有第2输入部,输入与可利用块的数量有关的信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410050977.4A CN103826129A (zh) | 2010-04-08 | 2010-04-08 | 图像解码方法以及图像解码装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410050977.4A CN103826129A (zh) | 2010-04-08 | 2010-04-08 | 图像解码方法以及图像解码装置 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201080066017.7A Division CN102823248B (zh) | 2010-04-08 | 2010-04-08 | 图像编码方法以及图像编码装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103826129A true CN103826129A (zh) | 2014-05-28 |
Family
ID=50760922
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410050977.4A Withdrawn CN103826129A (zh) | 2010-04-08 | 2010-04-08 | 图像解码方法以及图像解码装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103826129A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10283091B2 (en) | 2014-10-13 | 2019-05-07 | Microsoft Technology Licensing, Llc | Buffer optimization |
-
2010
- 2010-04-08 CN CN201410050977.4A patent/CN103826129A/zh not_active Withdrawn
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10283091B2 (en) | 2014-10-13 | 2019-05-07 | Microsoft Technology Licensing, Llc | Buffer optimization |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102823248B (zh) | 图像编码方法以及图像编码装置 | |
CN103826129A (zh) | 图像解码方法以及图像解码装置 | |
JP5479648B1 (ja) | 画像符号化方法及び画像復号化方法 | |
JP5444497B2 (ja) | 画像符号化方法及び画像復号化方法 | |
CN103227922B (zh) | 图像解码方法以及图像解码装置 | |
CN103826131A (zh) | 图像解码方法以及图像解码装置 | |
CN103826130A (zh) | 图像解码方法以及图像解码装置 | |
CN103813165A (zh) | 图像解码方法以及图像解码装置 | |
CN103813163A (zh) | 图像解码方法以及图像解码装置 | |
CN103813164A (zh) | 图像解码方法以及图像解码装置 | |
CN103813168A (zh) | 图像编码方法以及图像编码装置 | |
CN103747252A (zh) | 图像解码方法以及图像解码装置 | |
JP2004072732A (ja) | 符号化装置、コンピュータ読取可能なプログラム、符号化方法。 | |
JP6961781B2 (ja) | 画像符号化方法及び画像復号化方法 | |
JP6795666B2 (ja) | 画像符号化方法及び画像復号化方法 | |
JP6980889B2 (ja) | 画像符号化方法及び画像復号化方法 | |
JP5571262B2 (ja) | 画像符号化方法及び画像復号化方法 | |
JP7547598B2 (ja) | 画像符号化方法及び画像復号化方法 | |
JP6609004B2 (ja) | 画像符号化方法及び画像復号化方法 | |
JP6370977B2 (ja) | 画像符号化方法及び画像復号化方法 | |
JP6367452B2 (ja) | 画像符号化方法及び画像復号化方法 | |
JP5659314B1 (ja) | 画像符号化方法及び画像復号化方法 | |
JP5509398B1 (ja) | 画像符号化方法及び画像復号化方法 | |
JP5571229B2 (ja) | 画像符号化方法及び画像復号化方法 | |
JP2024157009A (ja) | 画像符号化方法及び画像復号化方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C04 | Withdrawal of patent application after publication (patent law 2001) | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20140528 |