CN106489267B - 图像编码和解码设备、图像编码和解码方法 - Google Patents

图像编码和解码设备、图像编码和解码方法 Download PDF

Info

Publication number
CN106489267B
CN106489267B CN201580031519.9A CN201580031519A CN106489267B CN 106489267 B CN106489267 B CN 106489267B CN 201580031519 A CN201580031519 A CN 201580031519A CN 106489267 B CN106489267 B CN 106489267B
Authority
CN
China
Prior art keywords
vector
block
unit
code
coding
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.)
Active
Application number
CN201580031519.9A
Other languages
English (en)
Other versions
CN106489267A (zh
Inventor
前田充
志摩真悟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to CN201910916233.9A priority Critical patent/CN110620931B/zh
Publication of CN106489267A publication Critical patent/CN106489267A/zh
Application granted granted Critical
Publication of CN106489267B publication Critical patent/CN106489267B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/182Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/557Motion estimation characterised by stopping computation or iteration based on certain criteria, e.g. error magnitude being too large or early exit
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Abstract

在用以对编码对象块进行编码的编码模式是第一编码模式的情况下,对表示示出编码对象块和在空间上位于编码对象块的周边的至少一个块之间的空间关系的矢量的索引进行编码,并且在用以对编码对象块进行编码的编码模式是第二编码模式的情况下,对表示示出编码对象块和在空间上位于编码对象块的周边的至少一个块之间的空间关系的矢量以及与不同于编码对象图像的图像内的块相关联的矢量的索引进行编码。

Description

图像编码和解码设备、图像编码和解码方法
技术领域
本发明涉及针对视频的编码技术和解码技术。更特别地,本发明涉及如下技术,其中该技术用于将图像分割成多个块,并且以通过分割所获得的多个块为单位来对包括通过分割所获得的这些块的条带进行编码和解码。
背景技术
近年来,针对用作H.264/MPEG-4AVC(以下称为“H.264”)的后继者的高效率编码方法的国际标准化的活动已开始。为此,在ISO/IEC和ITU-T之间已建立了JCT-VC(JointCollaborative Team on Video Coding,视频编码联合协作小组)。JCT-VC正继续进行高效率视频编码(以下称为“HEVC”)的标准化。 ITU-T于2013年4月被批准为H.265编码格式。针对HEVC的标准化,继续研究诸如可分级编码、范围扩展和画面内容编码等的功能的添加。
针对HEVC的标准化,已经研发了各种编码工具,从而实现高编码效率。 HEVC还采用帧内编码模式和帧间编码模式作为诸如已采用的直到H.264为止的编码格式等的块编码模式。帧间编码模式参考在时间上先前进行了编码 /解码的图像数据,并且通过针对相似块进行计算来进行编码。帧内编码模式在无需参考在时间上先前进行了编码/解码的图像数据的情况下,根据位于编码/解码对象块的附近的已解码像素来预测块。
HEVC在帧间编码模式中还新采用了合并模式来进行运动矢量预测。合并模式是如下的技术:选择可以原样使用运动信息的在空间/时间上位于附近的块,并且对表示该块的位置的索引进行编码。已进行了该操作以提高编码效率。此外,可以原样使用块的图像数据。也就是说,在图像数据中的预测误差为0的情况下,可以使用跳过编码。在这种情况下,可以仅仅通过发送表示是否进行了跳过编码的标志和合并模式代码来进行编码,因而能够进一步提高编码效率。
针对帧内编码模式,也正提出如下的格式作为新功能:在编码/解码对象图像数据中,使用已编码/解码数据中的相似块来进行预测。该功能被称为帧内块复制(Intra BlockCopying)编码。其特殊目的是在照相机所拍摄到的并非自然图像的图像(例如计算机画面那样的人工图像等)中,通过在编码/解码对象图像数据中根据已编码图像进行预测来提高编码效率。该操作利用了在这种人工图像中在编码/解码对象图像数据内存在诸如字符和纹理等的重复图像数据这一事实。为了在图片内进行预测,搜索已编码图像数据的再生图像,将相似块视为预测块,利用矢量表示该位置,根据预测块的图像数据和编码对象块的图像数据来计算预测误差块,并且对该预测误差块进行编码。特别地,该矢量被称为复制矢量,以与帧间编码模式中的运动矢量区分开。
在复制矢量编码中,如非专利文献1所述,通过mvd_coding()进行编码。如非专利文献2所述,mvd_coding()的句法对与根据相邻的复制矢量所预测的复制矢量的差进行编码。因此,如合并模式那样,通过选择在时间/空间上位于编码对象块附近的可以原样使用其运动信息的块、并且对表示该块的位置的索引进行编码,无法期望编码效率方面的改善。
引文列表
非专利文献
非专利文献1:Recommendation ITU-T H.265的第7.3.8.5章Coding Unit Syntax
非专利文献2:Recommendation ITU-T H.265的第7.3.8.9章Motion VectorDifference Syntax
发明内容
本发明是有鉴于上述问题而作出的,并且在帧内块复制编码中也使用合并模式来实现跳过编码。
发明要解决的问题
一种图像编码设备,用于将视频中的图像分割成包括多个像素的块并对所述块进行编码。所述图像编码设备包括:第一编码单元,用于对表示编码模式的数据进行编码,其中所述编码模式用以对编码对象图像中的编码对象块进行编码;第二编码单元,用于在用以对所述编码对象块进行编码的编码模式是第一编码模式的情况下,对表示如下矢量的索引进行编码,其中该矢量是表示所述编码对象块和在空间上位于所述编码对象块周边的至少一个块之间的空间关系的矢量;以及第三编码单元,用于在用以对所述编码对象块进行编码的编码模式是第二编码模式的情况下,对表示如下矢量的索引进行编码,其中该矢量是表示所述编码对象块和在空间上位于所述编码对象块周边的至少一个块之间的空间关系的矢量和与不同于所述编码对象图像的图像内的块相关联的矢量。
通过以下参考附图对典型实施例的说明,本发明的其它特征将变得明显。
附图说明
图1是示出根据第一实施例、第三实施例、第五实施例和第七实施例的图像编码设备的结构的框图。
图2是示出根据第一实施例和第二实施例的位流的部分句法示例的图。
图3是示出根据第一实施例和第二实施例的位流的部分句法示例的图。
图4是示出根据第一实施例和第二实施例的位流的部分句法示例的图。
图5是示出根据第一实施例、第三实施例、第五实施例和第七实施例的视频整体的图像编码处理的流程图。
图6A是示出根据第一实施例、第五实施例和第七实施例的块的图像编码处理的流程图。
图6B是图6A的流程图的继续。
图7是示出根据第一实施例的块的帧间预测编码处理的流程图。
图8是示出根据第一实施例的块的帧内预测编码处理的流程图。
图9是示出根据第一实施例的块的帧内块复制编码处理的流程图。
图10是示出根据第一实施例的位流的部分句法示例的图。
图11是示出根据第二实施例、第四实施例、第六实施例和第八实施例的图像解码设备的结构的框图。
图12是示出根据第二实施例、第四实施例、第六实施例和第八实施例的视频整体的图像解码处理的流程图。
图13A是示出根据第二实施例的块的图像解码处理的流程图。
图13B是图13A的流程图的继续。
图14是示出根据第三实施例和第四实施例的位流的部分句法示例的图。
图15是示出根据第三实施例的块的图像编码处理的流程图。
图16是示出根据第三实施例的块的帧内块复制编码处理的流程图。
图17是示出根据第三实施例的位流的部分句法示例的图。
图18A是示出根据第四实施例的块的图像解码处理的流程图。
图18B是图18A的流程图的继续。
图19是示出根据第五实施例和第六实施例的位流的部分句法示例的图。
图20是示出根据第五实施例的块的帧间预测编码处理的流程图。
图21是示出根据第五实施例的块的帧内预测编码处理的流程图。
图22是示出根据第五实施例的块的帧内块复制编码处理的流程图。
图23A是示出根据第六实施例的块的图像解码处理的流程图。
图23B是图23A的流程图的继续。
图24A是示出块编码模式的选择的图。
图24B是示出块编码模式的选择的图。
图25是示出根据第七实施例和第八实施例的位流的部分句法示例的图。
图26是示出根据第七实施例和第八实施例的位流的部分句法示例的图。
图27是示出根据第七实施例的块的帧间预测编码处理的流程图。
图28是示出根据第七实施例的块的帧内预测编码处理的流程图。
图29是示出根据第七实施例的块的帧内块复制编码处理的流程图。
图30是示出根据第八实施例的块的图像解码处理的流程图。
图31是示出可应用于根据本发明的图像编码设备和解码设备的计算机的硬件的结构示例的框图。
图32是块参考的图。
图33A是示出帧内预测编码模式中的像素参考的示例的图。
图33B是示出帧内预测编码模式中的像素参考的示例的图。
图33C是示出帧内预测编码模式中的像素参考的示例的图。
图33D是示出帧内预测编码模式中的像素参考的示例的图。
图33E是示出帧内预测编码模式中的像素参考的示例的图。
图34是示出帧内块复制编码模式中的复制矢量的示例的图。
具体实施方式
第一实施例
将参考图1~10来说明第一实施例。图1是示出图像编码设备的结构的框图。后面所述的第二实施例及其之后的实施例中的图像编码设备的结构也与图1的结构相同。在图1中,附图标记101表示用于输入图像数据的输入单元 (以下简称为“输入单元101”)。附图标记102表示条带设置单元,其中该条带设置单元102用于根据输入图像的特性和预先确定的定时来确定该输入图像内的条带的大小和位置等,并且设置各条带的条带类型。
附图标记103表示帧内块复制允许/不允许设置单元,其中该帧内块复制允许/不允许设置单元103用于设置与是否允许进行帧内块复制有关的帧内块复制允许/不允许信息。没有特别限制与是否进行帧内块复制有关的决定。帧内块复制允许/不允许设置单元103可以是基于用于生成位流的图像编码设备或用于对位流进行解码的图像解码设备的功能所设置的,或者可以是由用户设置的。
附图标记104表示图片缓冲器,其中该图片缓冲器104用作用以以图片为单位存储输入视频的缓冲器。附图标记105表示块分割单元,其中该块分割单元105用于以块为单位从图片缓冲器104输入图像,根据需要将这些图像分割成子块,并且将各子块输出至下游的处理。下游的块和子块将被称为“块”,这意味着这些块是处理的单位。
附图标记106表示帧内块复制预测单元,其中该帧内块复制预测单元106 用于参考编码对象图片中的已编码块的再生图像并计算复制矢量,并且计算用作编码对象块的预测图像的帧内块复制预测块数据。在图34中示出该情况。附图标记3401例如表示包括8个像素×8个像素的块(这里将被称为块X)。参考在从块X起的预定搜索范围内的已进行了编码的图像数据,并且确定最相似的块的位置。这里将该相似块称为预测块。注意,在图34的示例中,编码后的图像数据的包括当前块X的上方和左方的范围是搜索范围。在利用虚线表示的块3402和3403其中之一是最相似的预测块的情况下,箭头3404和 3405其中之一是所计算出的复制矢量。也就是说,复制矢量表示图片内编码对象块(解码设备中的解码对象块)和预测块之间的空间关系。没有特别限制该预定搜索范围。例如,可以参考已编码的所有图像数据,或者可以仅参考相同块行中的已编码的图像数据。在前者的情况下,计算复制矢量3104和 3105其中之一,并且在后者的情况下,计算复制矢量3405。在HEVC中,可以将搜索范围限制为紧前编码的最大编码单位(LCU)的图像数据和当前编码中的LCU内的编码图像数据。帧内块复制预测单元106根据所生成的帧内块复制预测块数据和编码对象块的图像数据来生成并输出帧内块复制预测误差块数据。
附图标记107表示帧间预测单元,其中该帧间预测单元107用于参考在编码对象图片之前进行了编码的图片中的再生图像并计算运动矢量,并且计算用作编码对象块的预测数据的帧间预测块数据。帧间预测单元107还根据所生成的帧间预测块数据和编码对象块的图像数据来生成并输出帧间预测误差块数据。
附图标记108表示帧内预测单元,其中该帧内预测单元108用于基于帧内预测模式来参考编码对象图片中的编码对象块的周边的已编码再生图像的像素值,并且确定最佳的帧内预测模式。图33A示出帧内预测模式的示例。附图标记1001表示块。这里将参考作为8个像素×8个像素的块来进行说明,但块大小不限于此。在图33A中,z0,a01,a02,…,a15和b01,b02,…,b15表示已编码像素。图33B示出在水平方向上根据相邻编码像素进行预测的方式。图33C示出在垂直方向上根据相邻编码像素进行预测的方式。图33D示出向着右下方向根据相邻编码像素进行预测的方式。图33E示出向着左下方向根据相邻编码像素进行预测的方式。帧内预测单元108还根据最佳的帧内预测模式来计算用作编码对象块的预测图像的帧内预测块数据。然后,帧内预测单元108根据所生成的帧内预测块数据和编码对象块的图像数据来生成并输出帧内预测误差块数据。
附图标记113表示预测模式确定单元,其中该预测模式确定单元113用于确定并输出条带类型可以使用的预测编码模式中的最佳编码模式。在本实施例中,从进行帧内块复制编码的帧内块复制编码模式、进行运动补偿的帧间预测编码模式和进行帧内预测的帧内预测编码模式中进行选择。尽管没有特别限制判断方法,但可考虑用于选择编码时代码量等最小的模式的方法等。
附图标记109表示复制矢量编码单元,其中该复制矢量编码单元109用于在选择了帧内块复制编码模式的情况下参考复制矢量存储器110中所存储的复制矢量,并且对该复制矢量进行编码。复制矢量存储器110是用于存储进行复制矢量预测时所使用的编码矢量的存储器。
附图标记111表示运动矢量编码单元,其中该运动矢量编码单元111用于在预测编码模式中选择了帧间编码模式的情况下参考运动矢量存储器112中所存储的运动矢量,并且对该运动矢量进行编码。运动矢量存储器112是用于存储在编码中进行运动矢量预测时要参考的已编码运动矢量的存储器。
附图标记114表示头部编码单元,其中该头部编码单元114用于生成并输出序列头部、条带头部和块头部的代码数据。特别地,在对序列头部进行编码时,以视频序列为单位对作为帧内块复制允许/不允许信息的 intra_block_copy_enabled_flag进行编码。在条带头部编码中,对表示条带类型的slice_type进行编码。在块头部编码中,对表示块编码模式的 pred_mode_flag进行编码。在块编码模式是帧内编码模式的情况下,还对表示示出选择了帧内块复制编码模式的帧内块复制标志的intra_bc_flag代码以及表示帧内预测模式的代码进行编码。
附图标记115表示变换/量化单元,其中该变换/量化单元115用于根据在预测模式确定单元113中所确定的预测编码模式来接受从帧内块复制预测单元106、帧间预测单元107和帧内预测单元108输出的预测误差块数据的输入。变换/量化单元115对所输入的预测误差块数据进行正交变换,计算正交变换系数,利用使用量化参数的预定方法进一步对正交变换系数进行量化,如此计算并输出量化系数。变换/量化单元115还将量化所使用的量化参数输出至逆量化/逆变换单元116。逆量化/逆变换单元116使用量化参数对所输入的量化系数进行逆量化以再生正交变换系数,并且进一步对这些正交变换系数进行逆正交变换以再生预测误差块数据。
附图标记117表示重配置单元,其中该重配置单元117用于接受解码后的预测误差的输入,并且根据预测模式确定单元113所确定的预测编码模式来接受复制矢量、运动矢量和帧内预测模式的输入,基于这些输入生成预测块数据,并且生成解码后的再生图像。附图标记118表示当前图片存储器,其中该当前图片存储器118用于存储所再生的编码对象图片的再生图像的图像数据。附图标记119表示图片存储器,其中该图片存储器119用于存储编码对象图片之前进行了编码的图片的再生图像的图像数据。
附图标记120表示编码单元,其中该编码单元120用于对量化系数进行编码,并且生成并输出预测误差代码数据。附图标记121表示整合单元,其中该整合单元121用于针对从头部编码单元114、复制矢量编码单元109、运动矢量编码单元111和编码单元120输出的代码数据配置并输出位流。附图标记 122表示输出单元,其中该输出单元122用于向外部输出位流。
图1的各处理单元可被配置为单个物理集成电路,或者各自可以是个体电路。附图标记123表示控制单元,其中该控制单元123用于控制图像编码设备的上述各处理单元,并且被配置成包括中央处理单元(CPU)等。
以下将说明图像编码设备中的图像编码操作。将参考图5~9所示的流程图来说明编码操作。
图5是示出编码操作整体的流程图。在步骤S501中,在编码之前,帧内块复制允许/不允许设置单元103设置表示在序列整体中是否允许进行帧内块复制编码的帧内块复制允许/不允许信息。在要针对编码对象序列进行帧内块复制编码的情况下,将值1设置到帧内块复制允许/不允许信息,否则设置值0。没有特别限制设置的方法,并且该方法可以由未图示的用户进行设置、或者可以利用编码设备的结构进行设置。
接着,在步骤S502中,头部编码单元114将步骤S501中所确定的帧内块复制允许/不允许信息编码为intra_block_copy_enabled_flag代码,并且将该 intra_block_copy_enabled_flag代码插入序列头部的代码数据中。所生成的序列的代码数据被输入至整合单元121,形成为位流,并且从输出单元122被输出到外部。在步骤S503及其之后的步骤中进行各图片的编码处理。
在步骤S503中,输入单元101输入编码对象图片的图像数据,并且存储在图片缓冲器104中。在步骤S504中,条带设置单元102确定所输入的图像数据的条带分割的配置,并且针对各条带设置条带类型。没有特别用于设置条带分割的配置的方法。可以对图片进行等分割,或者可以根据图像特性来对图片进行分割。也没有特别限制用于设置条带类型的方法。例如,可以以图片为单位确定条带类型,或者可以根据条带内的图像数据的特性来确定条带类型。
在步骤S505及其之后的步骤中进行条带的编码处理。在步骤S505中,头部编码单元114执行条带头部的编码。头部编码单元114在条带头部编码中对表示条带类型的slice_type代码进行编码。slice_type代码包括I_slice,其中该 I_slice表示仅可以通过帧内预测编码进行编码的条带(以下称为“帧内条带”)。 slice_type代码还包括P_slice和B_slice,其中P_slice和B_slice表示可以通过帧间编码模式进行编码的条带(以下统称为“非帧内条带”)。
在步骤S506中,块分割单元105将条带分割成块。例如,在HEVC中,首先将条带分割成LCU,并且根据需要将这些LCU的一部分进一步分割成编码单位(CU)。在本实施例中,为了便于说明,将这两者都称为块。在步骤S507 和S508中,以块为单位进行编码。
在步骤S507中,对各个块进行编码。图6A和6B示出例示块的编码的编码操作的流程图。
在步骤S601中,条带设置单元102基于自身所设置的条带类型来进行判断。在设置了I_slice的情况下,流程进入步骤S603,否则流程进入步骤S602。
首先,在步骤S601中判断为条带设置单元102设置了I_slice作为条带类型的情况下,流程进入步骤S603。在步骤S603中,帧内块复制预测单元106和帧内预测单元108判断步骤S501中所设置的帧内块复制允许/不允许信息。在帧内块复制允许/不允许信息为1的情况下,流程进入步骤S606,否则流程进入步骤S604。
在步骤S603中帧内块复制允许/不允许信息为1的情况下,流程进入步骤 S606。在步骤S606中,帧内预测单元108参考当前图片存储器118内所存储的编码对象图片中的编码对象块周边的再生图像的图像数据,并且确定帧内预测模式。帧内预测单元108还基于所确定的帧内预测模式来生成作为编码对象块的预测图像的帧内预测块数据。帧内预测单元108进一步根据所生成的帧内预测块数据和编码对象块的图像数据来生成帧内预测误差块数据。将所计算出的帧内预测模式输出至头部编码单元114和重配置单元117,并且将帧内预测误差块数据输出至预测模式确定单元113和变换/量化单元115。
在步骤S607中,帧内块复制预测单元106参考当前图片存储器118内所存储的编码对象图片中的已编码块的再生图像来计算复制矢量。帧内块复制预测单元106进一步基于所计算出的复制矢量来生成作为编码对象块的预测图像的帧内块复制预测块数据。之后,帧内块复制预测单元106根据所生成的帧内块复制预测块数据和编码对象块的图像数据来生成帧内块复制预测误差块数据。将所计算出的复制矢量输出至复制矢量编码单元109和重配置单元117,并且将帧内块复制预测误差块数据输出至预测模式确定单元113和变换/量化单元115。
在步骤S608中,预测模式确定单元113确定编码所要使用的预测编码模式。然而,注意,没有特别限制确定的方法。例如,预测模式确定单元113 可以根据各预测误差块数据来估计编码成本,并且通过比较各编码成本的量来将编码成本较小的模式确定为编码所要使用的预测编码模式。这里可以选择的预测编码模式是帧内预测编码模式和帧内块复制编码模式。在确定了帧内预测编码模式的情况下,流程进入步骤S605,并且在确定了帧内块复制编码模式的情况下,流程进入步骤S609。
在步骤S608中选择了帧内块复制编码模式的情况下,流程进入步骤 S609。在步骤S609中,头部编码单元114将帧内块复制标志设置为1,之后流程进入步骤S623。
在步骤S623中,对块进行帧内块复制编码处理。图9是示出块的帧内块复制编码处理的流程图。在步骤S901中,头部编码单元114将块编码模式设置为帧内编码模式(MODE_INTRA)。在步骤S902中,复制矢量编码单元109 根据复制矢量存储器110中所存储的复制矢量来创建合并模式所用的复制矢量的候选列表。复制矢量候选列表是以与帧间预测编码模式中的合并模式相同的方式参考在空间上位于附近的复制矢量所生成的。图32更详细地示出参考相邻块。在图32中,复制矢量编码单元109参考在空间上位于作为编码对象块的X附近并且已进行了编码的块A0、A1、B0、B1和B2。复制矢量编码单元109判断各个块是否存在,并且判断是否利用帧内块复制编码模式对各块进行了编码。如果判断为利用帧内块复制编码模式对这些块进行了编码,则复制矢量编码单元109将与利用帧内块复制模式进行了编码的块相关联的复制矢量登记在复制矢量候选列表中。之后,复制矢量编码单元109将矢量值相同的复制矢量分成一组。在所登记的复制矢量的数量小于预先确定的复制矢量候选列表的最大复制矢量登记数量的情况下,复制矢量编码单元109 适当地添加复制矢量。例如,按矢量值(-w,0)、(0,-h)、(-w,-h)、(w,-h)、(-2w, 0)等的顺序添加复制矢量,其中h表示块的高度并且w表示宽度。然而,注意,添加的复制矢量不限于此。
在步骤S903中,头部编码单元114判断条带类型。在已将I_slice设置为条带类型的情况下,流程进入步骤S905,否则流程进入步骤S904。在步骤S904 中,头部编码单元114将表示是否进行跳过编码的跳过标志的值设置为0,并且对表示该跳过标志的cu_skip_flag代码进行编码。在要对编码对象块进行跳过编码的情况下,跳过标志的值为1,否则跳过标志的值为0。由于在图2所示的句法中、在条带类型不是I_slice的情况下对cu_skip_flag代码进行编码,因此步骤S904的操作是有必要的。
在步骤S905中,头部编码单元114将步骤S609或步骤S616中所设置的帧内块复制标志的值1编码为intra_bc_flag代码。intra_bc_flag代码的代码数据被输入至整合单元121,形成为位流,并且从输出单元122被输出到外部。以与步骤S903相同的方式,头部编码单元114在步骤S906中判断条带类型,并且在设置了I_slice的情况下进入步骤S908,否则进入步骤S907。在步骤S907中,头部编码单元114将步骤S901中所设置的帧内编码模式(MODE_INTRA)编码为pred_mode_flag代码。
在步骤S908中,复制矢量编码单元109判断是否可以以合并模式对步骤 S607或步骤S612中所计算出的复制矢量进行编码。尽管这里没有特别限制判断的方法,但例如可以通过判断复制矢量候选列表中所登记的复制矢量的矢量值和所计算出的复制矢量的矢量值是否一致来进行判断。在以合并模式进行编码的情况下,流程进入步骤S909,否则流程进入步骤S910。在步骤S909 中,复制矢量编码单元109将表示是否允许进行合并模式的合并模式标志设置为1,并且该合并模式标志被编码为merge_flag代码。此外,复制矢量编码单元109将复制矢量候选列表中的具有与编码对象复制矢量一致的矢量值的复制矢量的矢量候选索引编码为merge_idx代码。
在步骤S910中,头部编码单元114将合并模式标志设置为0,并且将该合并模式标志编码为merge_flag代码。接着,复制矢量编码单元109根据复制矢量存储器110中所存储的周边的复制矢量来对所计算出的复制矢量进行预测,并且确定该复制矢量的预测的方向。复制矢量编码单元109获得作为与所预测的复制矢量的差的差矢量,并且将表示该差矢量的矢量值及其预测方向的复制矢量参考标志编码为mvp_ibc_flag代码。例如,在图32的A0、A1、 B0、B1和B2中使用从块A0和A1中所选择的复制矢量的情况下,将复制矢量参考标志的值设置为0。在使用从块B0、B1和B2中所选择的复制矢量的情况下,将复制矢量参考标志的值设置为1。将该值编码为mvp_ibc_flag代码。
在步骤S911中,变换/量化单元115对步骤S605或步骤S612中所生成的帧内块复制预测误差块数据进行正交变换和量化以计算量化系数。将所计算出的量化系数输入至编码单元120、逆量化/逆变换单元116和头部编码单元114。输入至逆量化/逆变换单元116的量化系数经过逆量化和逆变换,并且被再生为帧内块复制预测误差块数据。重配置单元117还基于复制矢量,从当前图片存储器118计算帧内块复制预测块数据。重配置单元117进一步使用该帧内块复制预测块数据和帧内块复制预测误差块数据,来计算编码对象块的解码图像的再生图像的图像数据。将所计算出的再生图像的图像数据存储在当前图片存储器118中。编码单元120还对帧内块复制预测误差块数据的量化系数进行编码并且生成其代码数据。所生成的代码数据被输入至整合单元121,形成为位流,并且从输出单元122被输出到外部。如此编码对象块的编码处理结束。
返回图6B,在步骤S608中选择了帧内预测编码模式的情况下,流程进入步骤S605。在步骤S605中,头部编码单元114将帧内块复制标志设置为0。之后,流程进入步骤S622。
在步骤S622中,进行块的帧内预测编码处理。图8是示出块的帧内预测编码所用的编码操作的流程图。在步骤S801中,头部编码单元114针对块编码模式设置帧内编码模式(MODE_INTRA)。在步骤S802中,头部编码单元114 判断条带类型是否是I_slice。如果条带类型是I_slice,则流程进入步骤S804,否则流程进入步骤S803。在步骤S803中,头部编码单元114将表示是否进行跳过编码的跳过标志的值设置为0,并且对表示该跳过标志的cu_skip_flag进行编码。在步骤S804中,头部编码单元114判断步骤S501中所设置的帧内块复制允许/不允许信息,并且如果帧内块复制允许/不允许信息为1,则进入步骤S805,否则进入步骤S806。
在步骤S805中,头部编码单元114将作为步骤S609、步骤S615或步骤S617 中所设置的帧内块复制标志的值的0编码为intra_bc_flag。在步骤S806中,头部编码单元114判断条带类型是否是I_slice。如果条带类型是I_slice,则流程进入步骤S808,否则流程进入步骤S807。在步骤S807中,头部编码单元114 将步骤S801中所设置的帧内编码模式(MODE_INTRA)编码为pred_mode_flag 代码。在步骤S808中,头部编码单元114对步骤S604、步骤S606、步骤S611 或步骤S619中所计算出的帧内预测模式进行编码。
在步骤S809中,变换/量化单元115对步骤S604、步骤S606、步骤S611或步骤S619中所生成的帧内预测误差块数据进行正交变换和量化以计算量化系数。将所计算出的量化系数输入至编码单元120、逆量化/逆变换单元116 和头部编码单元114。输入至逆量化/逆变换单元116的量化系数经过逆量化和逆变换,并且被再生为帧内预测误差块数据。重配置单元117还基于帧内预测模式,从当前图片存储器118计算帧内预测块数据。重配置单元117进一步使用帧内预测误差块数据来计算编码对象块的解码图像的再生图像的图像数据。将所计算出的再生图像的图像数据存储在当前图片存储器118中。编码单元120还对帧内预测误差块数据的量化系数进行编码并且生成预测误差的代码数据。所生成的代码数据被输入至整合单元121,形成为位流,并且从输出单元122被输出到外部。如此编码对象块的编码处理结束。
返回图6B,在步骤S603中帧内块复制允许/不允许信息不为1的情况下,流程进入步骤S604。在步骤S604中,以与步骤S606相同的方式,帧内预测单元108确定帧内预测模式,生成帧内预测块数据,并且使用编码对象块的图像数据来生成帧内预测误差块数据。将所计算出的帧内预测模式输出至头部编码单元114和重配置单元117,并且将帧内预测误差块数据输出至预测模式确定单元113和变换/量化单元115。之后,在步骤S608中进行与选择了帧内预测编码模式的情况相同的编码处理。
接着,将说明在步骤S601中判断为条带设置单元102将条带类型设置为 I_slice以外的条带类型的情况。在步骤S602中,帧内块复制预测单元106、帧内预测单元108和帧间预测单元107判断步骤S501中所设置的帧内块复制允许/不允许信息。在帧内块复制允许/不允许信息为1的情况下,流程进入步骤 S610,否则流程进入步骤S617。
在步骤S602中帧内块复制允许/不允许信息为1的情况下,流程进入步骤 S610。在步骤S610中,帧间预测单元107参考图片存储器119内所存储的在编码对象图片之前进行了编码的解码图片中的再生图像的图像数据,并且计算运动矢量。帧间预测单元107还基于所计算出的运动矢量来生成作为编码对象块的预测图像的帧间预测块数据。帧间预测单元107进一步根据所生成的帧间预测块数据和编码对象块的图像数据来生成帧间预测误差块数据。将所计算出的运动矢量输出至运动矢量编码单元111和重配置单元117,并且将帧间预测误差块数据输出至预测模式确定单元113和变换/量化单元115。
在步骤S611中,以与步骤S606相同的方式,帧内预测单元108确定帧内预测模式,生成帧内预测块数据,并且使用编码对象块的图像数据来生成帧内预测误差块数据。在步骤S612中,以与步骤S607相同的方式,帧内块复制预测单元106确定复制矢量。帧内块复制预测单元106基于所确定的复制矢量来生成帧内块复制预测块数据,并且使用编码对象块的图像数据来生成帧内块复制预测误差块数据。
在步骤S613中,预测模式确定单元113确定将使用帧内预测编码模式、帧内块复制编码模式和帧间预测编码模式中的哪个模式。然而,注意,没有特别限制确定的方法。例如,预测模式确定单元113可以根据各预测误差来估计编码成本,并且基于各编码成本的量来确定模式。在选择帧间预测编码模式的情况下,流程进入步骤S614,在选择帧内预测编码模式的情况下,流程进入步骤S615,并且在选择帧内预测块复制编码模式的情况下,流程进入步骤S616。
在步骤S613中,在预测编码模式是帧间预测编码模式的情况下,流程进入步骤S614。在步骤S614中,头部编码单元114将帧内块复制标志设置为0,并且流程进入步骤S621。在步骤S621中进行块的帧间预测编码处理。
图7是示出块的帧间预测编码中的编码操作的流程图。在步骤S701中,头部编码单元114将块编码模式设置为帧间编码模式(MODE_INTER)。
在步骤S702中,运动矢量编码单元111生成合并模式所用的运动矢量的候选列表。运动矢量候选列表是通过从运动矢量存储器112内所存储的运动矢量中参考在空间和时间上位于附近的运动矢量所生成的。具体地,运动矢量编码单元111向图32中的在空间上位于作为编码对象块的X附近的块A0、 A1、B0、B1和B2添加位于相同位置并且在时间上位于附近的块的运动矢量,并且参考这些运动矢量。为了便于说明,这里将针对并非双向的运动补偿的情况进行说明。如果各个块均存在、并且利用帧间预测编码模式对各块进行了编码,则运动矢量编码单元111将运动矢量登记在运动矢量候选列表中。之后,运动矢量编码单元111将相同值的运动矢量分成一组。如果条带类型是B_slice,则生成将运动矢量候选列表中所登记的运动矢量候选进行组合的双向合并候选。在所登记的运动矢量的数量小于预先确定的运动矢量候选列表的最大登记数量的情况下,运动矢量编码单元111适当地添加矢量值为(0,0) 的零矢量作为运动矢量。
在步骤S703中,运动矢量编码单元111判断是否可以以合并模式对步骤 S610或步骤S618中所计算出的运动矢量进行编码。例如,可以通过判断运动矢量候选列表中所登记的运动矢量的矢量值和所计算出的运动矢量的矢量值是否一致来进行判断。在以合并模式进行编码的情况下,流程进入步骤 S704,否则流程进入步骤S715。
在步骤S703中运动矢量编码单元111判断为将以合并模式进行编码的情况下,流程进入步骤S704。在步骤S704中,变换/量化单元115对步骤S610或步骤S618中所生成的帧内预测误差块数据进行正交变换和量化以计算量化系数。
在步骤S705中,头部编码单元114进行与是否进行跳过编码有关的判断。这里用于进行跳过编码的条件如下:可以以合并模式进行运动矢量的编码,并且步骤S704中所计算出的帧间预测误差块数据的量化系数的值全部为0。在步骤S703中判断是否可以以合并模式进行编码,并且将步骤S704中所计算出的量化系数用于这些量化系数。在可以进行跳过编码的情况下,流程进入步骤S706,否则流程进入步骤S709。
在步骤S705中判断为进行跳过编码的情况下,流程进入步骤S706。在步骤S706中,头部编码单元114将跳过标志的值设置为1,并且将该跳过标志编码为cu_skip_flag代码。在步骤S707中,运动矢量编码单元111将步骤S702所生成的运动矢量候选列表内的相关运动矢量候选的矢量候选索引编码为 merge_idx代码。cu_skip_flag代码和merge_idx代码被输入至整合单元121,形成为位流,并且从输出单元122被输出到外部。将所计算出的运动矢量存储在运动矢量存储器112中。在步骤S708中,重配置单元117基于运动矢量,从图片存储器119计算帧间预测块数据,并且将该帧间预测块数据视为编码对象块中的解码图像的再生图像的图像数据。将再生图像的图像数据存储在当前图片存储器118中。因而,编码对象块的编码处理结束。
在步骤S705中判断为将不进行跳过编码的情况下,流程进入步骤S709。在步骤S709中,头部编码单元114将跳过标志的值设置为0,并且将该跳过标志编码为cu_skip_flag代码。在步骤S710中,帧内块复制预测单元106判断步骤S501中所设置的帧内块复制允许/不允许信息。如果帧内块复制允许/不允许信息为1,则判断为允许进行帧内块复制,并且进入步骤S711,否则进入步骤S712。在步骤S711中,头部编码单元114将作为步骤S614或步骤S617中所设置的帧内块复制标志的值的0编码为intra_bc_flag代码。intra_bc_flag代码的代码数据被输入至整合单元121,形成为位流,并且从输出单元122被输出到外部。在步骤S712中,头部编码单元114将步骤S701中所设置的帧间编码模式(MODE_INTER)编码为pred_mode_flag代码。pred_mode_flag代码的代码数据被输入至整合单元121,形成为位流,并且从输出单元122被输出到外部。
在步骤S713中,以与步骤S707相同的方式,运动矢量编码单元111对 merge_idx代码进行编码,并且将编码后的运动矢量存储在运动矢量存储器 112中。在步骤S714中,帧间预测单元107将步骤S704中所计算出的量化系数输入至编码单元120和逆量化/逆变换单元116。逆量化/逆变换单元116对所输入的量化系数进行逆量化和逆变换,由此再生帧间预测误差块数据。重配置单元117基于运动矢量,从图片存储器119计算帧间预测块数据。重配置单元 117进一步使用帧间预测块数据和所再生的帧间预测误差块数据来计算编码对象块中的解码图像的再生图像的图像数据。将再生图像的图像数据存储在当前图片存储器118中。编码单元120对帧间预测误差块数据的量化系数进行编码,并且生成预测误差的代码数据。所生成的编码数据被输入至整合单元 121,形成为位流,并且从输出单元122被输出到外部。因而,编码对象块的编码处理结束。
在步骤S703中判断为运动矢量编码单元111将不进行采用合并模式的编码的情况下,流程进入步骤S715。在步骤S715中,以与步骤S709相同的方式,头部编码单元114将跳过标志的值设置为0,并且将该跳过标志编码为 cu_skip_flag代码。cu_skip_flag代码的代码数据被输入至整合单元121,形成为位流,并且从输出单元122被输出到外部。
在步骤S716中,以与步骤S710相同的方式,头部编码单元114判断帧内块复制允许/不允许信息。如果帧内块复制允许/不允许信息为1,则判断为允许进行帧内块复制编码,并且进入步骤S717,否则进入步骤S718。在步骤S717 中,以与步骤S711相同的方式,头部编码单元114将帧内块复制标志编码为 intra_bc_flag代码。intra_bc_flag代码的代码数据被输入至整合单元121,形成为位流,并且从输出单元122被输出到外部。在步骤S718中,以与步骤S712 相同的方式,头部编码单元114对pred_mode_flag进行编码并且输出。在步骤 S719中,运动矢量编码单元111根据运动矢量存储器112中所存储的相邻运动矢量来对所计算出的运动矢量进行预测,获得预测方向和与相邻运动矢量的差矢量,并且对这两者进行编码。将预测方向编码为mvp_l0_flag代码或 mvp_l1_flag代码。
在步骤S720中,变换/量化单元115对步骤S610或步骤S618中所生成的帧间预测误差块数据进行正交变换和量化以计算量化系数。将所计算出的量化系数输入至编码单元120和逆量化/逆变换单元116。输入至逆量化/逆变换单元116的量化系数经过逆量化和逆变换,并且被再生为帧间预测误差块数据。重配置单元117基于运动矢量,从当前图片存储器118计算帧间预测块数据,并且使用该帧间预测误差块数据来计算编码对象块的解码图像的再生图像的图像数据。将所计算出的再生图像的图像数据存储在当前图片存储器118中。编码单元120还对帧间预测误差块数据的量化系数进行编码,并且生成其代码数据。所生成的代码数据被输入至整合单元121,形成为位流,并且从输出单元122被输出到外部。如此编码对象块的编码处理结束。
返回图6A,将说明在步骤S613中编码模式是帧内预测编码模式的情况。在步骤S615中将帧内块复制标志设置为0,并且流程进入步骤S622。如前面所述,在步骤S622中进行块的帧内预测编码处理。
将针对在步骤S613中编码模式是帧内块复制编码模式的情况进行说明。在步骤S616中,头部编码单元114将帧内块复制标志设置为1,并且流程进入步骤S623。如前面所述,在步骤S623中对块进行帧内块复制编码处理。
将针对在步骤S602中帧内块复制允许/不允许信息不为1的情况进行说明。在步骤S617中,以与步骤S614相同的方式,头部编码单元114将帧内块复制标志设置为0。在步骤S618中,以与步骤S610相同的方式,帧间预测单元107计算运动矢量。帧间预测单元107还基于所计算出的运动矢量来生成帧间预测块数据。帧间预测单元107进一步根据所生成的帧间预测块数据和编码对象块的图像数据来生成帧间预测误差块数据。将所计算出的运动矢量输出至运动矢量编码单元111和重配置单元117,并且将帧间预测误差块数据输出至预测模式确定单元113和变换/量化单元115。在步骤S619中,以与步骤 S606相同的方式,帧内预测单元108确定帧内预测模式,生成帧内预测块数据,并且使用编码对象块的图像数据来生成帧内预测误差块数据。在步骤 S620中,预测模式确定单元113确定要将帧内预测编码模式和帧间预测编码模式中的哪个模式用于编码模式。然而,注意,没有特别限制确定的方法。例如,预测模式确定单元113可以根据各自的预测误差来估计编码成本,并且将编码成本较小的模式判断为预测模式。在帧间预测编码模式的情况下,流程进入步骤S621。在步骤S621中,如上所述,进行块的帧间预测编码处理。在帧内预测编码模式的情况下,流程进入步骤S622。在步骤S622中,如上所述,进行块的帧内预测编码处理。
返回图5,在步骤S508中,用于控制图像编码设备整体的控制单元123 判断条带内的所有块的编码是否结束。在条带内的所有块的编码结束的情况下,流程进入步骤S509,否则在步骤S507中按块的扫描顺序对下一块进行编码。在步骤S509中,控制单元123判断图片内的所有条带的编码是否结束。在图片内的所有条带的编码结束的情况下,流程进入步骤S510,否则流程返回至步骤S505并且进行下一条带的编码处理。在步骤S510中,将作为编码对象图像的图片的再生图像的图像数据从当前图片存储器118移动至图片存储器119。根据需要将无需参考的图像数据从图片存储器119中删除。在步骤 S511中,控制单元123判断序列中的所有图片的编码是否结束。在序列中的所有图片的编码没有结束的情况下,流程进入步骤S503,并且针对下一图片进行编码处理。在序列中的所有图片的编码结束的情况下,所有的编码操作结束。
图2和3示出利用上述的结构和操作所生成的位流中的与块编码有关的句法的示例。图2示出块编码句法。本实施例的句法是非专利文献2中的句法的改进。行19~31相对于传统句法已改变。传统句法如表1所示。
表1
如表2所示,进行了该改变,使得作为运动矢量的差矢量编码的函数的 mvd_coding()是进行合并模式中可使用的矢量编码的prediction_unit()。
表2
图3表示针对进行预测的块的句法。在图3中添加了行13~16和行33。行4 中的merge_idx代码被限制为仅P_slice和B_slice的非帧内条带类型。观看行9,针对merge_idx代码表示的矢量候选索引的矢量候选列表根据是帧间预测编码模式还是帧内块复制编码模式而不同。在预测编码模式是帧间预测编码模式的情况下,如图7的步骤S702所述,参考在空间上位于附近的块和在时间上位于附近的块来创建运动矢量候选列表。在预测编码模式是帧内块复制编码模式的情况下,如图9的步骤S902所述,参考在空间上位于附近的块来创建复制矢量候选列表。在图3的行14中,针对不是合并模式的帧内块复制编码的情况来对运动矢量编码数据进行配置。通过对复制矢量参考标志进行编码来获得行15中的mvp_ibc_flag代码,其中该复制矢量参考标志表示在对差矢量进行编码时参考了哪个块的复制矢量。
将参考图4来说明通过改变prediction_unit()的不同结构。在行14和15中添加了根据帧内块复制标志的条件。还添加了行18、20和21。因而,可以以不同的方式使用mvp_l0_flag代码和mvp_ibc_flag代码。
因此,根据上述的装置结构和方法,可以如此将合并模式连同帧内块复制编码中的复制矢量一起使用,从而使得能够提高使用复制矢量的编码效率。
现在,可以在步骤S601之前进行帧内预测中的帧内预测模式的确定和帧内预测误差块数据的计算,并且可以省略步骤S604、S606、S612和S619。
参考针对用作预先确定的复制矢量参考列表中的复制矢量的候选的矢量的块不限于上述说明。此外,在数量小于最大登记数量的情况下要添加的复制数量不限于此。可以添加矢量值为(0,0)的零矢量作为复制矢量,直到达到最大登记数量为止。然而,注意,由于矢量值(0,0)表示编码对象块自身,因此在复制矢量中没有参考零矢量。
尽管在本实施例中复制矢量和运动矢量已被描述为单独存储在复制矢量存储器110和运动矢量存储器112中,但这并非限制性的,并且这两者可以存储在同一存储器中。可以通过参考正被参考的块的intra_bc_flag代码来区分这两者。此外,非专利文献1将合并模式中的运动矢量的最大登记数量作为five_minus_max_num_merge_cand代码插入条带头部。通过参考在空间上位于附近的块中的复制矢量来获得复制矢量的候选矢量,因而该数量小于合并模式中的运动矢量的最大登记数量。因此,可以通过如图10所示单独设置表示合并模式中的合并矢量的最大登记数量的 five_minus_max_num_merge_bc代码并且发送该数量,来抑制不必要的矢量的添加。
可以进行如下配置:不对合并模式中的复制矢量的最大登记数量进行编码,并且例如使用通过从合并模式中的运动矢量的最大登记数量中减去预定数量(例如,1)所获得的数量。
在本实施例中,用于判断是否允许进行跳过编码的条件不限于上述。例如,可以根据图像特征或所生成的数据量等来作出决定。
第二实施例
将参考图11~13B来说明本发明的第二实施例。在本实施例中,将说明对第一实施例中所生成的位流进行解码的情况的示例。
图11是示出根据本发明的实施例的图像解码设备的结构的框图。图11中的附图标记1101表示输入单元,其中该输入单元1101用于输入作为编码数据的位流。所输入的位流的句法是参考图2和3所述的句法,但不限于此。注意,利用图1中的图像编码设备的图片内的块的编码顺序和利用图11中的图像解码设备的图片内的块的解码顺序相同。附图标记1102表示代码缓冲器,其中该代码缓冲器1102用于存储所输入的位流。附图标记1103表示分割单元,其中该分割单元1103用于从所输入的位流中提取各种代码数据,并且将这些代码数据输出至用于处理这些代码数据的下游的解码单元等。
附图标记1104表示头部解码单元,其中该头部解码单元1104用于对序列头部、条带头部和块头部的代码数据进行解码,并且将所需信息输出至这些单元。特别地,在序列头部的解码中,对表示是否作为序列进行帧内块复制的intra_block_copy_enabled_flag代码进行解码,并且获得帧内块复制允许/ 不允许信息。在条带头部的解码中,对表示条带类型的slice_type代码进行解码。在块头部解码中,对cu_skip_flag代码、pred_mode_flag代码、intra_bc_flag 代码和表示帧内预测模式的代码进行解码。
附图标记1105表示复制矢量解码单元,其中该复制矢量解码单元1105用于通过对与复制矢量有关的代码数据进行解码来再生复制矢量。附图标记 1106表示复制矢量存储器,其中该复制矢量存储器1106用于存储解码时进行复制矢量预测的情况下进行参考所用的已解码复制矢量。附图标记1107表示运动矢量解码单元,其中该运动矢量解码单元1107用于通过与运动矢量有关的代码数据进行解码来再生运动矢量。附图标记1108表示运动矢量存储器,其中该运动矢量存储器1108用于存储解码时进行运动矢量预测的情况下进行参考所用的已解码运动矢量。
附图标记1109表示帧内块复制预测单元,其中该帧内块复制预测单元 1109用于使用解码后的复制矢量来参考编码对象图片的已解码再生图像的图像数据,并且计算用作解码对象块的预测图像的帧内块复制预测块数据。将所计算出的帧内块复制预测块数据输出至下游的重配置单元1114。
附图标记1110表示帧间预测单元,其中该帧间预测单元1110用于使用所再生的运动矢量来参考在解码对象图片之前进行了解码的再生图像的图像数据,计算用作解码对象块的预测图像的帧间预测块数据,并且输出至下游的重配置单元1114。附图标记1111表示帧内预测单元,其中该帧内预测单元 1111用于对经由分割单元1103所输入的帧内预测模式的代码数据进行解码,并且再生帧内预测模式。帧内预测单元1111根据帧内预测模式,进一步基于解码对象图片的已解码再生图像的图像数据中的解码对象块的相邻像素值来计算帧内预测块数据。将所计算出的帧内预测块数据输出至下游的重配置单元1114。
附图标记1112表示解码单元,其中该解码单元1112用于对与所输入的量化系数有关的代码数据进行解码,并且再生量化系数。附图标记1113表示逆量化/逆变换单元,其中该逆量化/逆变换单元1113用于对所输入的量化系数进行逆量化以再生正交变换系数,并且进一步对这些正交变换系数进行逆正交变换以生成解码对象块的预测误差块数据。
重配置单元1114根据解码后的预测误差块数据以及在头部解码单元 1104中进行解码后的块编码模式或帧内块复制预测编码模式来选择并获取预测块数据。也就是说,重配置单元1114选择并输入从帧内块复制预测单元 1109、帧间预测单元1110和帧内预测单元1111输出的预测块数据。根据解码后的预测误差和预测块数据来生成解码后的再生图像。
附图标记1115表示当前图片存储器,其中该当前图片存储器1115用于存储所再生的解码对象图片的再生图像的图像数据。附图标记1116表示图片存储器,其中该图片存储器1116用于存储在解码对象图片之前进行了解码的图片的再生图像的图像数据。附图标记1117表示输出单元,其中该输出单元 1117用于将再生图像的图像数据输出到外部。
图11的各处理单元可被配置为单个物理集成电路,或者各自可以是个体电路。附图标记1118表示控制单元,其中该控制单元1118用于控制图像解码设备的上述各处理单元,并且被配置成包括CPU等。
将参考图12~13B的流程图来说明图像解码设备中的图像解码操作。图12 是示出解码操作整体的流程图。尽管在图12的流程图中没有特别提及,但将位流经由输入单元1101顺次输入至图像解码设备,并且存储在代码缓冲器 1102中。在步骤S1201中,头部解码单元1104对经由分割单元1103所输入的序列头部的代码数据进行解码。在该处理中,头部解码单元1104对 intra_block_copy_enabled_flag代码进行解码,并且对帧内块复制允许/不允许信息进行解码。在对解码对象序列进行了采用帧内块复制预测编码模式的编码的情况下,再生1作为帧内块复制允许/不允许信息的值,否则再生0。在步骤S1202及其之后的步骤中进行各图片的解码处理。
在步骤S1202及其之后的步骤中进行各条带的解码处理。在步骤S1202 中,头部解码单元1104对条带头部进行解码。在条带头部解码处理中对表示条带类型的slice_type代码进行解码。在five_minus_max_num_merge_cand代码和图10中的句法的代码数据的情况下,对 five_minus_max_num_merge_cand_bc代码进行解码。
接着,在步骤S1203中对各块进行解码。图13A和13B是表示块解码操作的流程图。后面将说明分割单元1103中的块代码数据的输入/输出。在步骤 S1301中,头部解码单元1104参考在步骤S1202中进行解码后的slice_type代码。如果条带类型是I_slice,则流程进入步骤S1303,否则流程进入步骤S1302。
在步骤S1302中,头部解码单元1104对经由分割单元1103所输入的 cu_skip_flag代码进行解码,并且将其值设置到跳过标志。在步骤S1303中,头部解码单元1104将跳过标志设置为0。这表示仅利用条带类型的P_slice或 B_slice的非帧内条带来进行跳过编码的解码处理。在步骤S1304中,头部解码单元1104判断跳过标志的值。如果该值为1,则流程进入步骤S1326,否则流程进入步骤S1305。
在步骤S1304中,在跳过标志的值为1的情况下,判断为进行了跳过编码,并且流程进入步骤S1326。在步骤S1326中,运动矢量解码单元1107进行运动矢量解码。进行了跳过编码,因而利用合并模式对运动矢量的代码数据进行了编码。因此,在步骤S1326中,运动矢量解码单元1107对经由分割单元1103 所输入的merge_idx代码进行解码。在本实施例中,跳过模式仅用于非帧内条带,因而merge_idx代码表示的矢量候选索引是运动矢量候选列表的矢量候选索引。运动矢量解码单元1107参考运动矢量存储器1108,并且使用在空间/ 时间上位于解码对象块附近的块的运动矢量来生成运动矢量候选列表。运动矢量解码单元1107对merge_idx代码进行解码并再生矢量候选索引,并且根据该矢量候选索引,进一步从运动矢量候选列表来再生运动矢量。将所再生的运动矢量输入至帧间预测单元1110。还将所再生的运动矢量存储在运动矢量存储器1108中。
在步骤S1327中,帧间预测单元1110基于所输入的运动矢量,通过参考图片存储器1116内所存储的在解码对象图片之前进行了解码的图片的再生图像来生成帧间预测块数据。将所生成的帧间预测块数据输入至重配置单元 1114。重配置单元1114将所输入的帧间预测块数据视为解码对象块的解码图像的再生图像的图像数据。将解码对象块的图像数据输出至当前图片存储器 1115。之后,解码对象块的解码处理结束。
在步骤S1304中跳过标志的值不为1的情况下,判断为没有进行跳过编码,并且流程进入步骤S1305。在步骤S1305中,头部解码单元1104判断在步骤S1201中通过解码所获得的帧内块复制允许/不允许信息。在帧内块复制允许/不允许信息的值为1的情况下,判断为可以进行与帧内块复制预测相对应的解码,并且流程进入步骤S1306,否则流程进入步骤S1307。在步骤S1307 中,头部解码单元1104对从代码缓冲器1102经由分割单元1103所输入的 intra_bc_flag代码进行解码,并且再生帧内块复制标志。在步骤S1306中,头部解码单元1104将帧内块复制标志的值设置为0。
在步骤S1308中,以与步骤S1301相同的方式,头部解码单元1104判断条带类型,并且如果条带类型是I_slice,则流程进入步骤S1310,否则流程进入步骤S1309。在步骤S1310中,头部解码单元1104将块编码模式设置为帧内编码模式(MODE_INTRA)。在步骤S1309中,头部解码单元1104对表示块编码模式的pred_mode_flag代码进行解码,并且将其值设置为块编码模式的值。
在步骤S1311中,头部解码单元1104判断步骤S1309或步骤S1310中所设置的块编码模式的值。在块编码模式的值是表示帧内编码模式的 MODE_INTRA的情况下,流程进入步骤S1312,否则流程进入步骤S1320。
将说明在步骤S1311中进行帧内编码模式的判断的情况。在步骤S1312 中,头部解码单元1104判断步骤S1306或步骤S1307中所设置的帧内块复制标志。在帧内块复制标志的值为0的情况下,流程进入步骤S1318,否则流程进入步骤S1313。
将说明在步骤S1312中帧内块复制标志的值为0的情况。该情况是以帧内预测编码模式进行解码的情况。在步骤S1318中,帧内预测单元1111从代码缓冲器1102经由分割单元1103输入帧内预测的代码数据,进行解码,并且再生帧内预测模式。接着,在步骤S1319中,帧内预测单元1111基于所再生的帧内预测模式来参考当前图片存储器1115,根据解码对象块的周边的像素值来计算帧内预测块数据,并且将所计算出的帧内预测块数据输出至重配置单元1114。
在步骤S1325中,解码单元1112对经由分割单元1103所输入的预测误差的量化系数的代码数据进行解码,并且再生量化系数。将所再生的量化系数输入至逆量化/逆变换单元1113。逆量化/逆变换单元1113对所输入的量化系数进行逆量化以再生正交变换系数,并且进一步进行逆正交变换,以再生编码对象块的解码后的帧内预测误差块数据,其中该解码后的帧内预测误差块数据被输出至重配置单元1114。重配置单元1114使用帧内预测误差块数据和步骤S1319中所生成的帧内预测块数据,并且再生解码对象块的解码图像的图像数据。将所再生的图像数据输出至当前图片存储器1115。因而,解码对象块的解码处理结束。
将说明在步骤S1312中帧内块复制标志的值不为0、即该值为1的情况。该情况是用以以帧内块复制编码模式进行解码的决定。在步骤S1313中,复制矢量解码单元1105从代码缓冲器1102经由分割单元1103输入merge_flag代码,进行解码,并且再生合并模式标志的值。在步骤S1314中,复制矢量解码单元1105判断所再生的合并模式的值,并且如果其值为1,则进入步骤 S1315,否则进入步骤S1316。在步骤S1315中,复制矢量解码单元1105对经由分割单元1103所输入的merge_idx代码进行解码,并且再生矢量候选索引。复制矢量解码单元1105参考复制矢量存储器1106并且使用在空间上位于解码对象块附近的块的复制矢量,以生成复制矢量候选列表。复制矢量解码单元1105根据所再生的矢量候选索引,从复制矢量候选列表来再生复制矢量。将所再生的复制矢量输入至帧内块复制预测单元1109。在步骤S1316中,复制矢量解码单元1105对从代码缓冲器1102经由分割单元1103输入的差矢量的代码数据进行解码,并且生成差矢量。复制矢量解码单元1105还对 mvp_ibc_flag代码进行解码,并且再生预测的方向。复制矢量解码单元1105 基于根据复制矢量存储器1106内所存储的相邻的复制矢量所再生的预测的方向来进行复制矢量预测。复制矢量解码单元1105进一步根据该差矢量和所预测的复制矢量来再生解码对象块的复制矢量。
在步骤S1317中,帧内块复制预测单元1109基于所再生的复制矢量来参考当前图片存储器1115内所存储的解码对象图片的再生图像。帧内块复制预测单元1109基于所参考的解码对象图片的再生图像来生成帧内块复制预测块数据。将所生成的帧内块复制预测块数据输入至重配置单元1114。
在步骤S1325中,解码单元1112对经由分割单元1103所输入的帧内块复制预测误差块数据的量化系数的代码数据进行解码,并且再生量化系数。将所再生的量化系数输入至逆量化/逆变换单元1113。逆量化/逆变换单元1113 对所输入的量化系数进行逆量化和逆正交变换,生成帧内块复制预测误差块数据,并且输出至重配置单元1114。重配置单元1114使用帧内块复制预测误差块数据和步骤S1317中所生成的帧内块复制预测块数据来生成解码对象块中的解码图像的再生图像的图像数据。将解码对象块的图像数据输出至当前图片存储器1115。因而,解码对象块的解码处理结束。
将说明在步骤S1311中判断为模式不是帧内预测编码模式、即模式是帧间预测编码模式的情况。在步骤S1320中,运动矢量解码单元1107从代码缓冲器1102经由分割单元1103输入merge_flag代码,进行解码,并且再生合并模式标志的值。在步骤S1321中,运动矢量解码单元1107判断所再生的合并模式的值,并且如果该值为1,则判断为合并模式,并且流程进入步骤S1322,否则流程进入步骤S1323。在步骤S1322中,运动矢量解码单元1107对经由分割单元1103所输入的merge_idx代码进行解码,并且再生运动矢量的矢量候选索引。运动矢量解码单元1107参考运动矢量存储器1108,并且使用在空间/ 时间上位于解码对象块附近的块中的运动矢量来生成运动矢量候选列表。然后,运动矢量解码单元1107根据该矢量候选索引来从运动矢量候选列表中选择运动矢量。将所选择的运动矢量输入至帧间预测单元1110。在步骤S1323 中,运动矢量解码单元1107对从代码缓冲器1102经由分割单元1103所输入的差矢量的代码数据进行解码,并且生成差矢量。运动矢量解码单元1107还对mvp_l0_flag代码等进行解码,并且再生预测的方向。运动矢量解码单元1107 进一步根据运动矢量存储器1108内所存储的周边的运动矢量,基于预测的方向来进行运动矢量预测。此外,运动矢量解码单元1107根据该差矢量和所预测的运动矢量来再生解码对象块的运动矢量。将所再生的运动矢量输入至帧间预测单元1110。
在步骤S1324中,帧间预测单元1110基于所输入的运动矢量,通过参考图片存储器1116内所存储的在解码对象图片之前进行了解码的图片的再生图像的图像数据来生成帧间预测块数据。将所生成的帧间预测块数据输入至重配置单元1114。解码单元1112对经由分割单元1103所输入的帧间预测误差块数据的量化系数的代码数据进行解码,由此再生量化系数。将所再生的量化系数输入至逆量化/逆变换单元1113。逆量化/逆变换单元1113对所输入的量化系数进行逆量化以再生正交变换系数,并且进一步进行逆正交变换以生成编码对象块的解码后的帧间预测误差块数据,其中该解码后的帧间预测误差块数据被输出至重配置单元1114。重配置单元1114使用帧间预测误差块数据和步骤S1324中所生成的帧间预测块数据来再生解码对象块中的解码图像的再生图像的图像数据。将再生图像的图像数据输出至当前图片存储器 1115。因而,解码对象块的解码处理结束。
返回图12,在步骤S1204中,控制单元1118判断条带内的所有块的解码是否结束。在所有块的解码都结束的情况下,流程进入步骤S1205,否则在步骤S1203中,按块的扫描顺序对下一块进行解码。在步骤S1205中,控制单元1118判断图片内的所有条带的解码是否结束。在图片内的所有条带的解码都结束的情况下,流程进入步骤S1206,否则流程返回至步骤S1202,并且进行下一条带的解码处理。在步骤S1206中,利用控制单元1118将当前图片存储器1115中所存储的再生图像的图像数据经由输出单元1117输出到外部。还根据需要使用再生图像的图像数据来更新图片存储器1116的图像数据。在步骤S1207中,控制单元1118判断序列中的所有图片的解码是否结束。在序列中的所有图片的解码没有结束的情况下,流程进入步骤S1202,并且针对下一图片进行解码处理。如果序列中的所有图片的解码都结束,则所有的解码操作结束。
将使用图2和3的句法来说明分割单元1103中的块代码数据的输入/输出。图2中的coding_unit()表示块句法。在条带类型不是I_slice的情况下,分割单元1103输入cu_skip_flag代码,并且输出至头部解码单元1104。在帧内块复制允许/不允许信息为1的情况下,分割单元1103输入intra_bc_flag代码,并且输出至头部解码单元1104。也就是说,在执行帧内块复制预测编码模式的情况下,与条带类型无关地输入intra_bc_flag代码。此外,即使针对作为非帧内条带的帧内编码模式块(诸如条带类型是P_slice或B_slice的帧内编码模式块),帧内块复制编码也是可以的。接着,在条带是非帧内条带(P_slice或 B_slice)、此外帧内块复制标志为0的情况下,分割单元1103输入 pred_mode_flag代码,并且输出至头部解码单元1104。
在图3中,prediction_unit()表示进行预测所针对的块的句法。在图2中的 cu_skip_flag代码为1的情况下,输入merge_idx代码,并且根据条带类型将该 merge_idx代码输入至复制矢量解码单元1105或运动矢量解码单元1107。在条带类型是I_slice的情况下,向复制矢量解码单元1105进行输出。否则,向运动矢量解码单元1107进行输出。此外,在cu_skip_flag代码的值为0的情况下,输入merge_flag代码,并且根据条带类型将该merge_flag代码输入至复制矢量解码单元1105或运动矢量解码单元1107。根据条带类型的输出目的地与 merge_idx代码的情况相同。接着,如果merge_flag代码的值为1,则输入 merge_idx代码,并且根据条带类型将该merge_idx代码输入至复制矢量解码单元1105或运动矢量解码单元1107。根据条带类型的输出目的地也与上述相同。之后,对于不是处于合并模式的代码,如果intra_bc_flag代码的值为1,则使用mvd_coding()函数将差矢量的代码数据和mvp_ibc_flag代码输出至复制矢量解码单元1105。如果intra_bc_flag代码的值不为1,则将这些代码数据输出至运动矢量解码单元1107。
根据以上所述的设备结构和方法,可以在帧内块复制中对具有以合并模式进行了编码的复制矢量的位流进行解码。因此,可以对被压缩成较小数据量的图像进行解码。
此外,没有特别限制用于生成各代码数据的编码格式。例如,可以使用算术编码格式或霍夫曼编码格式来进行解码。
此外,在本实施例中,说明了利用硬件来实现各功能的示例,但这并非限制性的,并且可以使用诸如CPU等的处理器利用软件来实现这些功能的操作的一部分或全部。
在本实施例中,尽管再生图像的图像数据的向外部输出已被描述为以图片为单位进行,但这并非限制性的,并且向外部输出当然可以以条带为单位或以块为单位进行。
尽管已经参考图3说明了使用prediction_unit()函数的分割单元1103的操作,但这并非限制性的,并且还可以使用图4中的prediction_unit()函数来以相同方式进行输入和输出。
在本实施例中,尽管复制矢量和运动矢量已被描述为单独存储在复制矢量存储器1106和运动矢量存储器1108中,但这并非限制性的,并且这两者可以存储在同一存储器中。可以通过参考正参考的块的intra_bc_flag代码来区分这两者。如图4所示,在单独设置表示复制矢量的最大登记数量的 five_minus_max_num_merge_bc代码的情况下,在复制矢量候选列表中可以增加或减少复制矢量的候选矢量的数量。因此,可以将帧内块复制预测编码模式中的候选矢量的数量设置得少,并且可以对代码数据较短的位流进行解码。
第三实施例
将参考图14~17来说明本发明的第三实施例。本实施例中的图像编码设备的结构与图1的结构相同,因而将省略说明。然而,帧内块复制预测单元 106、复制矢量编码单元109、头部编码单元114和整合单元121的操作不同于第一实施例。以下将说明本实施例的图像编码操作。将基于图15和16的流程图来说明这些编码操作。示出编码操作整体的流程图与图5相同,其中步骤 S507的块编码操作有所不同。
图15是示出块编码操作的流程图。利用相同的步骤编号来表示图15中的具有与图6的流程图相同的功能的步骤,并且将省略针对这些步骤的说明。在步骤S1501中,帧内块复制预测单元106、帧间预测单元107和帧内预测单元108判断步骤S501中所设置的帧内块复制允许/不允许信息。如果帧内块复制允许/不允许信息为1,则判断为允许进行帧内块复制编码,并且流程进入步骤S610,否则流程进入步骤S617。
在步骤S1501中帧内块复制允许/不允许信息不为1、即为0的情况下,流程进入步骤S617。步骤S617~步骤S620的编码处理与第一实施例相同,因而将省略说明。在步骤S621中进行第一实施例中的图7所示的帧间预测编码处理。步骤S622与图8所示的帧内预测编码处理的不同之处在于以下点:不进行步骤S802的处理,并且针对所有的条带类型进行步骤S803。
将说明在步骤S1501中得出帧内块复制允许/不允许信息为1的情况。在步骤S610~步骤S612中,以与第一实施例相同的方式,分别计算各预测编码模式中所使用的各个预测误差块数据和运动矢量、复制矢量以及帧内预测模式。在步骤S613中,以与第一实施例相同的方式,预测模式确定单元113确定将使用帧内预测编码模式、帧内块复制编码模式和帧间预测编码模式中的哪个模式作为预测编码模式。如果选择帧间预测编码模式,则流程进入步骤 S614,如果选择帧内预测复制编码模式,则流程进入步骤S615,并且以与第一实施例相同的方式在步骤S621和S622中进行编码处理,因而将省略说明。如果选择帧内块复制编码模式,则流程进入步骤S616。
将说明在步骤S613中将预测编码模式确定为帧内块复制编码模式的情况。在步骤S616中,以与第一实施例相同的方式,头部编码单元114将1设置到帧内块复制标志。在步骤S1523中,执行块的帧内块复制编码。
图16是示出块的帧内块复制编码的流程图。利用相同的步骤编号来表示图16中的具有与图9的流程图相同的功能的步骤,并且将省略针对这些步骤的说明。在步骤S901和S902中,以与第一实施例相同的方式,头部编码单元 114将块编码模式设置为帧内编码模式,并且复制矢量编码单元109创建复制矢量候选列表。在步骤S1601中,以与步骤S908相同的方式,复制矢量编码单元109判断是否可以利用合并模式对步骤S612中所计算出的复制矢量进行编码。具体地,复制矢量编码单元109判断复制矢量候选列表中所登记的复制矢量的矢量值与所计算出的复制矢量的矢量值是否一致。在以合并模式进行编码的情况下,流程进入步骤S1602,否则流程进入步骤S904。
在步骤S1601中判断为以合并模式进行编码的情况下,流程进入步骤 S1602。在步骤S1602中,头部编码单元114判断条带类型。如果已将I_slice 设置为条带类型,则流程进入步骤S1603,否则流程进入步骤S1608。
将说明在步骤S1602中判断为条带类型是I_slice的情况。在步骤S1603 中,变换/量化单元115对在图15的步骤S612中所计算出的帧内块复制预测误差块数据进行正交变换和量化,由此计算量化系数。在步骤S1604中,头部编码单元114判断是否进行跳过编码。用于进行跳过编码的条件如下:可以以合并模式进行复制矢量编码,并且图15的步骤S612中所计算出的帧间预测误差块数据的量化系数的值全部为0。然而,注意,这并非限制性的。在步骤S1601中可以判断是否可以以合并模式进行复制矢量编码,并且可以基于步骤S1603中所计算出的量化系数的值来进行判断。在进行跳过编码的情况下,头部编码单元114进入步骤S1605,否则进入步骤S1608。
将说明在步骤S1604中确定为进行跳过编码的情况。在步骤S1605中,头部编码单元114将1设置为跳过标志的值,并且将该跳过标志编码为 cu_skip_flag代码。在步骤S1606中,复制矢量编码单元109根据步骤S902中所生成的复制矢量候选列表来将相关复制矢量候选的矢量候选索引编码为 merge_idx代码。将编码后的复制矢量存储在复制矢量存储器110中。将 cu_skip_flag代码和merge_idx代码输入至整合单元121,并且将整合后的代码数据作为位流从输出单元122输出到外部。还将所计算出的复制矢量存储在复制矢量存储器110中。在步骤S1607中,在重配置单元117中,基于复制矢量,通过参考当前图片存储器118来计算帧内块复制预测块数据。将帧内块复制预测块数据视为编码对象块中的解码图像的再生图像的图像数据。将再生图像的图像数据存储在当前图片存储器118中。因而,编码对象块的编码处理结束。
将说明在步骤S1604中确定为不进行跳过编码的情况。以下说明针对在步骤S1602中得出条带类型不是I_slice的情况也成立。在步骤S1608中,头部编码单元114将跳过标志的值设置为0,并且将该跳过标志编码为cu_skip_flag 代码。此外,在步骤S1609中,头部编码单元114将步骤S616中所设置的帧内块复制标志编码为intra_bc_flag代码。intra_bc_flag代码的代码数据被输入至整合单元121,形成为位流,并且从输出单元122被输出到外部。
在步骤S1610中,头部编码单元114判断条带类型。在已将I_slice设置为条带类型的情况下,流程进入步骤S1612,否则流程进入步骤S1611。在步骤 S1611中,头部编码单元114将步骤S901中所设置的帧内编码模式 (MODE_INTRA)编码为pred_mode_flag代码。该pred_mode_flag代码被输入至整合单元121,形成为位流,并且从输出单元122被输出到外部。在步骤S1612 中,以与步骤S1606相同的方式,复制矢量编码单元109将相关复制矢量候选的矢量候选索引编码为merge_idx代码。将所选择的复制矢量存储在复制矢量存储器110中。在步骤S911中,以与第一实施例相同的方式,变换/量化单元 115计算帧内块复制预测误差块数据的量化系数,并且逆量化/逆变换单元116 计算当前图片存储器118内所存储的解码对象块中的解码图像的再生图像。编码单元120还对帧内块复制预测误差块数据进行编码并且生成帧内块复制预测误差块数据的代码数据,其中该代码数据被输入至整合单元121,形成为位流,并且从输出单元122被输出到外部。如此编码对象块的编码处理结束。
将说明在步骤S1602中判断为条带类型是P_slice或B_slice的情况。在步骤S1608及其之后的步骤中进行上述编码处理。也就是说,进行cu_skip_flag、 intra_bc_flag和pred_mode_flag的编码。此外,通过差矢量的编码来对编码对象块的复制矢量进行编码,并且对帧内块复制预测误差块数据的量化系数进行编码。将复制矢量以及再生图像的图像数据存储在复制矢量存储器110和当前图片存储器118中,并且编码对象块的编码处理结束。
将说明在步骤S1601中判断为不进行采用合并模式的编码的情况。在步骤S904中,头部编码单元114将表示是否进行跳过编码的跳过标志的值设置为0,并且对表示该跳过标志的cu_skip_flag代码进行编码。在步骤S905中,将帧内块复制标志的值1编码为intra_bc_flag代码。头部编码单元114在步骤 S906中判断条带类型,并且如果设置了I_slice,则进入步骤S910,否则进入步骤S907。在步骤S907中,头部编码单元114将步骤S901中所设置的帧内编码模式(MODE_INTRA)编码为pred_mode_flag。在步骤S910中,复制矢量编码单元109获得差矢量的预测的方向,并且对该预测的方向进行编码。在步骤S911中,变换/量化单元115计算帧内块复制预测误差块数据的量化系数。以与第一实施例相同的方式,输入至逆量化/逆变换单元116的所计算出的量化系数经过逆量化和逆变换,并且被再生为帧内块复制预测误差块数据。重配置单元117还计算帧内块复制预测块数据,并且使用该帧内块复制预测误差块数据来再生编码对象块中的解码图像的再生图像的图像数据。将再生图像的图像数据存储在当前图片存储器118中。编码单元120还对帧内块复制预测误差块数据的量化系数进行编码,并且生成预测误差的代码数据。这些代码数据被输入至整合单元121,形成为位流,并且从输出单元122被输出到外部。如此编码对象块的编码处理结束。流程返回至图5,以与第一实施例相同的方式对视频序列中的所有图片进行编码,并且编码处理整体结束。
图14示出利用上述的结构和操作所生成的位流中的与块编码有关的句法的示例。在图14中,cu_skip_flag代码的前方的条件if(slice_type!=I)已从图2 的句法中移除。因此,能够进行所有条带类型的条带中的块的跳过编码。然而,注意,如果条带类型是I_slice,则仅针对采用帧内块复制编码模式的块进行跳过编码。此外,如果条带类型是P_slice或B_slice,则仅针对采用帧间预测编码模式的块进行跳过编码。这通过以下来实现:利用条带类型来判断作为进行图3的跳过编码时的merge_idx的值的矢量候选索引是复制矢量候选索引还是运动矢量候选索引。
因而,根据上述的设备结构和方法,还可以将合并模式用于采用帧内块复制编码的复制矢量。此外,在针对条带类型是I_slice的条带的帧内块复制编码中,能够进行跳过编码,从而使得能够提高编码效率。
注意,在本实施例中,代替图14的句法,可以使用图17所示的句法。在图17中,利用if(slice_type!=I||intra_block_copy_enabled_flag)替换图2中的条件 if(slice_type!=I)。这样得到以下优点:即使条带类型是I_slice,在不能进行帧内块复制编码的情况下,也可以省略cu_skip_flag代码。
在图16的步骤S1604中判断为将不进行跳过编码的情况下,在步骤S911 中可以使用步骤S1603中所计算出的帧内块复制预测误差块数据。
此外,在本实施例中,在以帧内块复制编码进行跳过编码的情况下,可以使用预先确定的复制矢量候选的矢量候选索引。例如,如果可以参考块的左侧的块,则将左侧的块的复制矢量视为编码对象块的复制矢量。此外,如果不能参考块的左侧的块,则将上方的块的复制矢量视为编码对象块的复制矢量。在要进行预测所针对的块的句法中,对图4的行3进行以下改变,由此使得能够进一步减少数据量。
表3
第四实施例
将参考图18A和18B来说明本发明的第四实施例。在本实施例中,将说明要对第三实施例中所生成的位流进行解码的情况的示例。
根据本实施例的图像解码设备的结构与图11的结构相同,因而将省略针对该结构的说明。然而,注意,分割单元1103、头部解码单元1104、复制矢量解码单元1105、帧内块复制预测单元1109和重配置单元1114的操作不同于第二实施例中的操作。以下将说明根据本实施例的图像解码操作。示出解码操作整体的流程图与图12相同,其中步骤1203的块解码操作有所不同。
图18A和18B示出例示本实施例的步骤S1203中的块解码操作的流程图。利用相同的步骤编号来表示图18A和18B中的具有与图13A和13B的流程图相同的功能的步骤,并且将省略针对这些步骤的说明。在步骤S1302中,以与第二实施例相同的方式,头部解码单元1104再生跳过标志的值。在步骤S1304 中,头部解码单元1104判断跳过标志的值,并且在跳过标志的值为1的情况下,判断为进行了跳过编码,并且流程进入步骤S1801,否则流程进入步骤 S1305。
在步骤S1304中,将说明跳过标志的值为1的情况。在步骤S1801中,复制矢量解码单元1105、运动矢量解码单元1107、帧内块复制预测单元1109和帧间预测单元1110判断条带类型。在条带类型是I_slice的情况下,流程进入步骤S1802,否则流程进入步骤S1326。
将说明在步骤S1801中判断为条带类型是I_slice的情况。在步骤S1802 中,复制矢量解码单元1105经由分割单元1103输入merge_idx代码并进行解码。由于这是帧内条带的情况,因此merge_idx代码表示的矢量候选索引是复制矢量候选列表的矢量候选索引。复制矢量解码单元1105使用在空间上位于解码对象块附近的块的复制矢量,参考复制矢量存储器1106来生成复制矢量候选列表。复制矢量解码单元1105对merge_idx代码进行解码并生成矢量候选索引,并且根据该矢量候选索引,从复制矢量候选列表来再生复制矢量。将所再生的复制矢量输入至复制矢量存储器1106。在步骤S1803中,帧内块复制预测单元1109基于该复制矢量,参考当前图片存储器1115内所存储的解码对象图片中的再生图像的图像数据,并且生成帧内块复制预测块数据。帧内块复制预测单元1109将该帧内块复制预测块数据视为解码对象块的再生图像的图像数据。将解码对象块的再生图像的图像数据输出至当前图片存储器 1115。因而,解码对象块的解码处理结束。
将说明在步骤S1801中判断为条带类型为I_slice以外的情况。在步骤 S1326中,以与第二实施例相同的方式,运动矢量解码单元1107对merge_idx 代码进行解码,再生运动矢量候选索引,并且从所生成的运动矢量候选列表来再生运动矢量。将所生成的运动矢量存储在运动矢量存储器1108中。在步骤S1327中,帧间预测单元1110基于所输入的运动矢量,通过参考图片存储器1116中所存储的在解码对象图片之前进行了解码的图片的再生数据来生成帧间预测块数据。重配置单元1114使用帧间预测块数据作为解码对象块的解码图像的再生图像的图像数据。将解码对象块的图像数据输出至当前图片存储器1115。因而,解码对象块的解码处理结束。在步骤S1304中跳过标志值不为1的情况下的操作与第二实施例相同,因而将省略说明。
将参考图14的句法来说明向分割单元1103的块编码数据的输入。在图14 中,coding_unit()表示块的句法。分割单元1103在不依赖于条带类型的情况下,输入cu_skip_flag代码并且输出至头部解码单元1104。之后,采用传统方式,在帧内块复制允许/不允许信息为1的情况下,分割单元1103输入 intra_bc_flag代码并且输出至头部解码单元1104。在条带是非帧内条带 (P_slice或B_slice)、并且帧内块复制标志也为0的情况下,分割单元1103输入 pred_mode_flag并且输出至头部解码单元1104。
图17的句法如下所述。在条带类型不是I_slice,或者是I_slice但 intra_block_copy_enabled_flag为1的情况下,分割单元1103输入cu_skip_flag 代码并且输出至头部解码单元1104。也就是说,在条带类型是I_slice并且 intra_block_copy_enabled_flag为0的情况下,没有输入cu_skip_flag代码。之后,以传统方式进行输入和输出。
根据以上所述的设备结构和方法,在帧内块复制中并且进一步在条带的条带类型是I_slice的帧内块复制编码中能够进行跳过编码,由此使得能够提高编码效率。因此,可以对被压缩成较小数据量的图像进行解码。
此外,在本实施例中,已经说明了利用硬件来实现各功能的示例,但这并非限制性的,并且可以使用诸如CPU等的处理器利用软件来实现这些功能的操作的一部分或全部。
此外,没有特别限制用于生成各代码数据的编码格式。例如,可以使用算术编码格式或霍夫曼编码格式来进行解码。
在本实施例中,尽管再生图像的图像数据的向外部输出已被描述为以图片为单位进行,但这并非限制性的,并且当然可以以条带为单位或以块为单位进行向外部输出。
此外,在本实施例中,在帧内块复制编码模式中进行跳过编码时,可以使用预先确定的复制矢量候选的矢量候选索引。例如,如果可以参考块的左侧的块,则将左侧的块的复制矢量视为解码对象块的复制矢量。此外,如果不能参考块的左侧的块,则将上方的块的复制矢量视为解码对象块的复制矢量。此外,可以具体地将左侧的块的复制矢量或者紧挨在解码对象块之前进行了解码的块的复制矢量视为解码对象块的复制矢量。限制复制矢量候选的矢量使得能够对数据量较少的位流进行解码。
第五实施例
将参考图19~22来说明本发明的第五实施例。本实施例中的图像编码设备的结构与图1相同,因而将省略说明。然而,帧内块复制预测单元106、复制矢量编码单元109、头部编码单元114和整合单元121的操作不同于第三实施例。以下将说明本实施例的图像编码操作。将基于图20和21的流程图来说明编码操作。示出编码操作整体的流程图与图5相同,其中步骤S507的块编码操作有所不同。示出块编码操作的流程图与图6相同,其中步骤S621、S622 和S623的块编码操作有所不同。
图20是示出图6的步骤S621中的根据本实施例的帧间预测编码处理的流程图。利用相同的步骤编号来表示图20中的具有与图7的流程图相同的功能的步骤,并且将省略针对这些步骤的说明。在步骤S701中,以与第一实施例相同的方式,头部编码单元114将块编码模式设置为帧间编码模式 (MODE_INTER)。
在步骤S2001中,头部编码单元114判断帧内块复制允许/不允许信息。如果帧内块复制允许/不允许信息为1,则流程进入步骤S2002,否则流程进入步骤S702。在步骤S2002中,以与图7的步骤S717相同的方式,头部编码单元114将帧内块复制标志编码为intra_bc_flag代码。intra_bc_flag代码的代码数据被输入至整合单元121,形成为位流,并且从输出单元122被输出到外部。在步骤S703中,以与第一实施例相同的方式,运动矢量编码单元111判断是否可以使用合并模式。在步骤S705中,以与第一实施例相同的方式,头部编码单元114进行与是否可以进行跳过编码有关的判断。之后,在步骤S706、步骤S709或步骤S715中进行跳过标志编码。因而,进行运动矢量编码、帧间预测误差块数据编码、再生图像计算和运动矢量存储,并且编码对象块的编码处理结束。
图21是示出图6的步骤S622中的根据本实施例的帧内预测编码处理的流程图。利用相同的步骤编号来表示图21中的具有与图8的流程图相同的功能的步骤,并且将省略针对这些步骤的说明。在步骤S801中,以与第一实施例相同的方式,头部编码单元114针对块编码模式设置帧内编码模式 (MODE_INTRA)。在步骤S2101中,头部编码单元114判断帧内块复制允许/ 不允许信息。如果帧内块复制允许/不允许信息为1,则流程进入步骤S2102,否则流程进入步骤S803。在步骤S2102中,以与图8的步骤S805相同的方式,头部编码单元114将帧内块复制标志编码为intra_bc_flag代码。intra_bc_flag 代码的代码数据被输入至整合单元121,形成为位流,并且从输出单元122被输出到外部。以与第一实施例相同的方式,在步骤S803中进行跳过标志编码。然后,以与第一实施例相同的方式,进行帧内预测模式、帧内预测误差块数据编码和再生图像计算,并且编码对象块的编码处理结束。
图22是示出图6的步骤S623中的根据本实施例的帧内块复制编码处理的流程图。利用相同的步骤编号来表示图22中的具有与图16的流程图相同的功能的步骤,并且将省略针对这些步骤的说明。在步骤S901中,以与第一实施例相同的方式,头部编码单元114将块编码模式设置为帧内编码模式 (MODE_INTRA)。在步骤S2201中,以与图9中的步骤S904相同的方式,头部编码单元114将帧内块复制标志编码为intra_bc_flag代码。这里,帧内块复制标志的值为1。intra_bc_flag代码的代码数据被输入至整合单元121,形成为位流,并且从输出单元122被输出到外部。接着,在步骤S902中,复制矢量编码单元109以相同方式创建复制矢量候选列表。在步骤S1601中,以与第二实施例相同的方式,判断是否可以以合并模式对复制矢量进行编码。
将说明在步骤S1601中判断为进行采用合并模式的编码的情况。在步骤 S1604中,以与第二实施例相同的方式,头部编码单元114判断是否进行跳过编码。
将说明在步骤S1604中判断为可以进行跳过编码的情况。在步骤S1605 中,以与第一实施例相同的方式,头部编码单元114将1设置为跳过标志的值,并且将该跳过标志编码为cu_skip_flag代码。在步骤S1606中,复制矢量编码单元109将相关复制矢量候选的矢量候选索引编码为merge_idx代码。在步骤 S1607中,将帧内块复制预测块数据视为编码对象块中的解码图像的再生图像的图像数据。将再生图像的图像数据存储在当前图片存储器118中。如此编码对象块的编码处理结束。
将说明在步骤S1604中判断为不进行跳过编码的情况。在步骤S1608中,头部编码单元114将跳过标志的值设置为0,并且将该跳过标志编码为 cu_skip_flag代码。在步骤S1612中,复制矢量编码单元109将相关复制矢量候选的矢量候选索引编码为merge_idx代码。在步骤S911中,以与第一实施例相同的方式,变换/量化单元115计算帧内块复制预测误差块数据的量化系数,逆量化/逆变换单元116再生当前图片存储器118内所存储的解码对象块中的再生图像的图像数据。编码单元120对帧内块复制预测误差块数据的量化系数进行编码,并且生成预测误差的代码数据。该代码数据被输入至整合单元 121,形成为位流,并且从输出单元122被输出到外部。如此编码对象块的编码处理结束。
将说明在步骤S1604中判断为不进行跳过编码的情况。在步骤S1608中,以与第二实施例相同的方式,头部编码单元114将跳过标志的值设置为0,并且将该跳过标志编码为cu_skip_flag代码。在步骤S1612中,以与步骤S1606 相同的方式,复制矢量编码单元109将相关复制矢量候选的矢量候选索引编码为merge_idx代码。接着,在步骤S911中,如上所述,再生编码对象块中的再生图像的图像数据,对帧内块复制预测误差块数据的量化系数进行编码,并且生成预测误差代码数据。
将说明在步骤S1601中判断为不进行采用合并模式的编码的情况。在步骤S904中,头部编码单元114将跳过标志的值设置为0,并且将该跳过标志编码为cu_skip_flag代码。在步骤S910中,复制矢量编码单元109获得差矢量,并且对该差矢量进行编码。在步骤S911中,如上所述,再生编码对象块中的再生图像的图像数据,对帧内块复制预测误差块数据的量化系数进行编码,并且生成预测误差代码数据。如此以与第二实施例相同的方式对视频序列中的所有图片进行编码,并且编码处理整体结束。
图19示出利用上述的结构和操作所生成的位流中的与块编码有关的句法的示例。在图19中,已在图2的句法中的cu_skip_flag代码的前方添加了如下内容:
if(intra_block_copy_enabled_flag)
intra_bc_flag[x0][y0]
因而,基于作为帧内块复制允许/不允许信息的intra_block_copy_enabled_flag代码来对intra_bc_flag代码进行编码。
此外,作为cu_skip_flag代码的条件的if(slice_type!=I)已改变为 if(slice_type!=I||intra_bc_flag)。这样使得能够在条带类型是非帧内条带的所有编码模式中以及在条带类型是I_slice的帧内块复制编码模式中将跳过编码用于cu_skip_flag代码。
根据上述的设备结构和方法,不仅在条带类型是I_slice的条带中,而且还在P_slice和B_slice的帧内块复制编码中,都可以使用跳过编码,由此使得能够提高编码效率。
此外,在本实施例中,已经说明了利用硬件来实现各功能的示例,但这并非限制性的,并且可以使用诸如CPU等的处理器利用软件来实现这些功能的操作的一部分或全部。
此外,没有特别限制用于生成各代码数据的编码格式。例如,可以使用算术编码格式或霍夫曼编码格式来进行解码。
此外,在本实施例中,在帧内块复制编码模式中进行跳过编码时,可以使用预先确定的复制矢量候选的矢量候选索引。例如,如果可以参考块的左侧的块,则将左侧的块的复制矢量视为解码对象块的复制矢量。此外,如果不能参考块的左侧的块,则将上方的块的复制矢量视为解码对象块的复制矢量。在这种情况下,要进行预测所针对的块的句法以与第三实施例相同的方式改变。因而,可以实现数据量的进一步缩减。
第六实施例
将参考图23A和23B来说明本发明的第六实施例。在本实施例中,将说明要对第五实施例中所生成的位流进行解码的情况的示例。
根据本实施例的图像解码设备的结构与图11的结构相同,因而将省略针对该结构的说明。然而,注意,分割单元1103、头部解码单元1104、复制矢量解码单元1105、帧内块复制预测单元1109和重配置单元1114的操作不同于第四实施例的操作。以下将说明根据本实施例的图像解码操作。将参考图23A 和23B的流程图来说明解码操作。利用相同的步骤编号来表示图23A和23B中具有与图18A和18B的流程图相同的功能的步骤,并且将省略针对这些步骤的说明。
在步骤S2301中,头部解码单元1104判断在步骤S1201中通过解码所获得的帧内块复制允许/不允许信息。在帧内块复制允许/不允许信息的值为1(允许进行帧内块复制)的情况下,流程进入步骤S2302,否则流程进入步骤 S2303。在步骤S2302中,头部解码单元1104对经由分割单元1103所输入的 intra_bc_flag代码进行解码,并且将其值设置到帧内块复制标志。在步骤 S2303中,头部解码单元1104将帧内块复制标志设置为0。
在步骤S1301中,头部解码单元1104判断在图12的步骤S1202中所再生的条带类型。如果条带类型是I_slice,则流程进入步骤S2305,否则流程进入步骤S1302。在步骤S2305中,头部解码单元1104判断步骤S2302或步骤S2303 中所设置的帧内块复制标志的值。如果其值为1,则流程进入步骤S1302,否则流程进入步骤S1303。以与第二实施例相同的方式,在步骤S1302和步骤 S1303中设置跳过标志的值。
在步骤S1304中,头部解码单元1104判断跳过标志的值。如果该值为1,则流程进入步骤S2309,否则流程进入步骤S1308。
将说明在步骤S1304中跳过标志的值为1的情况。在步骤S2309中,头部解码单元1104判断步骤S2302或步骤S2303中所设置的帧内块复制标志的值。如果该值为1,则流程进入步骤S2329,否则流程进入步骤S2327。
将说明在步骤S2309中帧内块复制标志的值为1的情况。在步骤S2329中,复制矢量解码单元1105经由分割单元1103输入merge_idx代码并进行解码。这里,帧内块复制标志的值为1,因而块编码模式是帧内编码模式。此外,预测编码模式是帧内块复制预测编码模式。因此,merge_idx代码所表示的矢量候选索引是复制矢量候选列表的矢量候选索引。复制矢量解码单元1105参考复制矢量存储器1106,使用在空间上位于解码对象块附近的块的复制矢量来生成复制矢量候选列表。复制矢量解码单元1105对merge_idx代码进行解码并且再生矢量候选索引。根据该矢量候选索引,从复制矢量候选列表再生复制矢量。将所再生的复制矢量输入至帧内块复制预测单元1109。还将所再生的复制矢量存储在复制矢量存储器1106中。在步骤S1803中,以与第四实施例相同的方式生成帧内块复制预测块数据,其中该帧内块复制预测块数据被视为再生图像的图像数据。将解码对象块中的再生图像的图像数据输出至当前图片存储器1115。因而,解码对象块的解码处理结束。
将说明在步骤S2309中帧内块复制标志的值不为1的情况。在步骤S2327 中,运动矢量解码单元1107经由分割单元1103输入merge_idx代码并进行解码。这里,帧内块复制标志的值为0,因而块编码模式是帧间编码模式。此外,预测编码模式是帧间预测编码模式。运动矢量解码单元1107对经由分割单元1103所输入的merge_idx代码进行解码。运动矢量解码单元1107参考运动矢量存储器1108,使用在空间/时间上位于解码对象块附近的块的运动矢量来生成运动矢量候选列表。运动矢量解码单元1107对merge_idx代码进行解码并再生矢量候选索引,并且根据该矢量候选索引来从运动矢量候选列表再生解码对象块的运动矢量。将所再生的运动矢量输入至帧间预测单元1110。还将所再生的运动矢量存储在运动矢量存储器1108中。在步骤S1327中,以与第四实施例相同的方式生成帧间预测块数据,并且该将所生成的数据视为解码对象块的再生图像的图像数据。将再生图像的图像数据输出至当前图片存储器1115。因而,解码对象块的解码处理结束。
将说明在步骤S1304中跳过标志的值不为1的情况。在步骤S1308中,头部解码单元1104判断条带类型,并且如果条带类型是I_slice,则流程进入步骤S1310,否则流程进入步骤S2310。在步骤S1308中条带类型不是I_slice的情况下,在步骤S2310中,头部解码单元1104判断帧内块复制标志的值。在帧内块复制标志的值为1(允许进行帧内块复制)的情况下,流程进入步骤 S1310,否则流程进入步骤S1309。在步骤S1309中,以与第二实施例相同的方式,头部解码单元1104对表示块编码模式的pred_mode_flag代码进行解码,并且将其值设置为块编码模式的值。在步骤S1310中,头部解码单元1104将块编码模式设置为帧内编码模式(MODE_INTRA)。之后的处理与第四实施例相同,因而将省略说明。
将参考图19的句法来说明向分割单元1103的块编码数据的输入。在图19 中,coding_unit()表示块的句法。在帧内块复制允许/不允许信息为1的情况下,分割单元1103在不依赖于条带类型的情况下,输入intra_bc_flag代码并输出至头部解码单元1104。之后,在条带类型不是I_slice、或者intra_bc_flag代码的值为1的情况下,输入cu_skip_flag代码并将该cu_skip_flag代码输出至头部解码单元1104。因而,与条带类型无关地,在帧内块复制标志的值为1的情况下(即,在帧内块复制编码模式中),可以使用cu_skip_flag代码。
根据上述的设备结构和方法,与条带类型无关地,可以在帧内块复制编码中对跳过编码的位流进行进一步解码,从而提高编码效率。因此,可以对被压缩成较小数据量的图像进行解码。
此外,在本实施例中,已经说明了利用硬件来实现功能的情况,但这并非限制性的,可以使用诸如CPU等的处理器利用软件来实现这些功能的操作的一部分或全部。
此外,没有特别限制用于生成各代码数据的编码格式。例如,可以使用算术编码格式或霍夫曼编码格式来进行解码。
此外,在本实施例中,在帧内块复制编码模式中进行跳过编码时,可以使用预先确定的复制矢量候选的矢量候选索引。例如,如果可以参考块的左侧的块,则将左侧的块的复制矢量视为解码对象块的复制矢量。此外,如果不能参考块的左侧的块,则将上方的块的复制矢量视为解码对象块的复制矢量。因而,可以对数据量较小的位流进行解码。
第七实施例
将参考图24A~29来说明本发明的第七实施例。在说明本实施例之前,将参考图24A和24B来说明本实施例中所使用的预测编码模式。本实施例中所使用的预测编码模式是帧内预测编码模式、帧内块复制编码模式和帧间预测编码模式。
在图24A中示出这些模式,其中图24A是描述传统的编码模式作为用作 pred_mode_flag代码的值的MODE_INTRA和MODE_INTER以及用作 intra_bc_flag代码的值的1和0的组合的图。在本实施例中,新设置块编码索引作为表示预测编码模式的代码,并且将该块编码索引编码为 pred_mode_idx。将参考图24B来说明该情况。对于块编码索引,将 MODE_INTRA分配至帧内预测编码模式,将MODE_INTRA_BC分配至帧内块复制编码模式,并且将MODE_INTER分配至帧间预测编码模式。例如, MODE_INTRA可以为0,MODE_INTRA_BC可以为1,并且MODE_INTER 可以为2,但这并非限制性的。
本实施例中的图像编码设备的结构与图1相同,因而将省略说明。然而,头部编码单元114和整合单元121的操作不同于第一实施例。将基于图27~29 的流程图来说明本实施例的图像编码操作。示出编码操作整体的流程图与图 5相同,其中步骤S507的块编码操作有所不同。此外,示出块编码处理的流程图与图6相同,其中步骤S621、S622和S623的块操作有所不同。
图27是示出图6的步骤S621中的根据本实施例的帧间预测编码处理的流程图。利用相同的步骤编号来表示图27中的具有与图7的流程图相同的功能的步骤,并且将省略针对这些步骤的说明。在步骤S2701中,头部编码单元 114将MODE_INTER设置为编码索引的值。之后,以与第一实施例相同的方式,运动矢量编码单元111在步骤S702中生成运动矢量候选列表,并且在步骤S703中判断是否可以以合并模式进行编码。在以合并模式进行编码的情况下,流程进入步骤S704,否则流程进入步骤S715。
将说明在步骤S703中判断为以合并模式进行编码的情况。在步骤S704 中,变换/量化单元115计算帧间预测误差块数据的量化系数。在步骤S705中,头部编码单元114进行与是否进行跳过编码有关的判断。在判断为进行跳过编码的情况下,流程进入步骤S706,否则流程进入步骤S709。在步骤S705 中判断为进行跳过编码的情况下,在步骤S706~步骤S708中,进行与第一实施例相同的操作,因而将省略针对这些操作的说明。在步骤S705中判断为不进行跳过编码的情况下,在步骤S709中,头部编码单元114将跳过标志的值设置为0,并且将该跳过标志编码为cu_skip_flag代码。在步骤S2702中,头部编码单元114将步骤S2701中所设置的块编码索引的值编码为pred_mode_idx 代码。没有特别限制编码格式,并且以与其它代码相同的方式,通过霍夫曼编码或算术编码来进行编码。之后,在步骤S712和步骤S713中进行与第一实施例相同的操作,因而将省略针对这些操作的说明。
将说明在步骤S703中判断为不以合并模式对运动矢量进行编码的情况。以与第一实施例相同的方式,在步骤S715中,头部编码单元114将跳过标志的值设置为0,并且将该跳过标志编码为cu_skip_flag代码。在步骤S2703中,头部编码单元114将步骤S2701中所设置的块编码索引的值编码为 pred_mode_idx代码。之后,在步骤S719和步骤S720中进行与第一实施例相同的操作,因而将省略针对这些操作的说明。
图28是示出图6的步骤S622中的根据本实施例的帧内预测编码处理的流程图。利用相同的步骤编号来表示图28中的具有与图8的流程图相同的功能的步骤,并且将省略针对这些步骤的说明。在步骤S2801中,头部编码单元 114将MODE_INTRA设置为块编码索引的值。在步骤S2802中,头部编码单元114将步骤S2801中所设置的块编码索引的值编码为pred_mode_idx代码。没有特别限制编码格式,并且以与其它代码相同的方式,通过霍夫曼编码或算术编码来进行编码。之后,在步骤S808和步骤S809中进行与第一实施例相同的操作,因而将省略针对这些操作的说明。
图29是示出图6的步骤S623中的根据本实施例的帧内块复制编码处理的流程图。利用相同的步骤编号来表示图29中的具有与图9的流程图相同的功能的步骤,并且将省略针对这些步骤的说明。在步骤S2901中,头部编码单元114将MODE_INTRA_BC设置为块编码索引的值。之后,在步骤S2902中,以与第一实施例中的步骤S902相同的方式,复制矢量编码单元109生成复制矢量候选列表。在步骤S903中,头部编码单元114判断条带类型。在步骤S904中,头部编码单元114将表示是否进行跳过编码的跳过标志的值设置为0,并且将该跳过标志编码为cu_skip_flag代码。在步骤S2903中,将步骤S2901中所设置的块编码索引的值设置为pred_mode_idx代码。之后,在步骤S908~步骤 S911中进行与第一实施例相同的操作,因而将省略针对这些操作的说明。
图25和26示出利用上述的结构和操作所生成的位流中的与块编码有关的句法的示例。图25表示块编码的句法。在图25中,代替图2的块编码的句法中所使用的intra_bc_flag代码和pred_mode_flag代码,对pred_mode_idx代码进行编码。在下文,代替参考intra_bc_flag代码和pred_mode_flag代码的值,在CuPredMode[x0][y0]中设置pred_mode_idx代码的值。根据MODE_INTRA、 MODE_INTRA_BC和MODE_INTER的设置值来进行以下判断。图26表示进行预测所针对的块的句法。图2的行12中的如下句法
if(CuPredMode[x0][y0]!=MODE_INTRA||intra_bc_flag[x0][y0]
||log2CbSize==MinCbLog2SizeY)
不是通过参考图2中的intra_bc_flag代码、而是以与图25相同的方式利用设置了MODE_INTRA、MODE_INTRA_BC或MODE_INTER的 CuPredMode[x0][y0]来进行判断的。因此,如下句法成立:
if(CuPredMode[x0][y0]==MODE_INTER||
CuPredMode[x0][y0]==MODE_INTRA_BC||
log2CbSize==MinCbLog2SizeY)
根据上述的设备结构和方法,代替intra_bc_flag代码和pred_mode_flag,可以通过使用pred_mode_idx代码来简化各块中的处理。例如,通过将第一实施例的图7和本实施例的图27进行比较,步骤S701、步骤S712和步骤S718被步骤S2701、步骤S2702和步骤S2703替换。此外,省略了步骤S710、步骤S711、步骤S716和步骤S717。
在pred_mode_idx代码的编码中,可以通过根据周边的块的块编码索引的值进行预测来进行编码。例如,MODE_INTRA可以为1, MODE_INTRA_BC可以为2,并且MODE_INTER可以为3,并且例如如果与紧前进行了编码的块的块编码索引相同,则值为0。可以通过分配最短代码来提高编码效率。
此外,如第五实施例和第六实施例中的块编码句法的情况那样, pred_mode_idx代码可以位于句法的开头。也就是说,可以进行如下配置:利用表5的内容来替换图19中的行3和4的表4的内容,并且省略了图19中的行11 和12的表6的内容。
表4
if(intra_block_copy_enabled_flag)
intra_bc_flag[x0][y0]
表5
pred_mode_flag_idx
表6
If(slice_type !=I && !intra_bc_flag[x0][y0])
pred_mode_flag
第八实施例
将参考图30来说明本发明的第八实施例。在本实施例中,将说明要对第七实施例中所生成的位流进行解码的情况的示例。
根据本实施例的图像解码设备的结构与图11的结构相同,因而将省略针对该结构的说明。然而,注意,分割单元1103和头部解码单元1104的操作不同于第二实施例的操作。以下将说明根据本实施例的图像解码操作。由于示出解码操作整体的流程图除图12的步骤S1203的块解码操作不同外与第二实施例相同,因此将省略针对该流程图的说明。
图30是示出根据第八实施例的块解码操作的流程图。利用相同的步骤编号来表示图30中的具有与图13A和13B的流程图相同的功能的步骤,并且将省略针对这些步骤的说明。在步骤S1301~S1303中,以与第二实施例相同的方式,头部解码单元1104根据条带类型来确定跳过标志的值。在步骤S1304 中,头部解码单元1104判断跳过标志的值,并且在跳过标志的值为1的情况下,判断为进行了跳过编码,并且流程进入步骤S1326,否则流程进入步骤 S3001。在步骤S1304中跳过标志为1的情况下,以与第二实施例相同的方式,头部解码单元1104、运动矢量解码单元1107和帧间预测单元1110进行步骤 S1326和S1327的处理。因而,解码对象块的解码处理结束。在步骤S1304中跳过标志不为1的情况下,在步骤S3001中,头部解码单元1104对 pred_mode_idx代码进行解码,并且再生块编码索引的值。在步骤S3002中,头部解码单元1104判断块编码索引的值。
在步骤S3002中块编码索引的值为MODE_INTRA_BC的情况下,流程进入步骤S1313。之后,在步骤S1313~S1316中,以与第二实施例相同的方式,复制矢量解码单元1105对复制矢量进行解码。在步骤S1317中再生帧内块复制预测块数据,在步骤S1325中生成再生图像的图像数据,并且解码对象块的解码处理结束。
在步骤S3002中块编码索引的值是MODE_INTRA的情况下,流程进入步骤S1318。之后,以与第二实施例相同的方式,帧内预测单元1111在步骤S1318 中对帧内预测模式进行解码,在步骤S1319中再生帧内预测块数据,在步骤 S1325中生成再生图像,并且结束解码对象块的解码处理。
在步骤S3002中块编码索引的值是MODE_INTER的情况下,流程进入步骤S1320。之后,在步骤S1321~S1323中,以与第二实施例相同的方式,运动矢量解码单元1107对运动矢量进行解码。在步骤S1324中再生帧间预测块数据,在步骤S1325中生成再生图像,并且解码对象块的解码处理结束。
将参考图25和26的句法来说明向分割单元1103的块代码数据的输入。在图25中,coding_unit()表示块的句法。在条带类型不是I_slice的情况下,分割单元1103输入cu_skip_flag代码,并且输出至头部解码单元1104。在不是跳过编码的情况下,分割单元1103输入pred_mode_idx代码,并且输出至头部解码单元1104。之后,根据块编码索引的值顺次输入代码,并且分别输出至头部解码单元1104、复制矢量解码单元1105和运动矢量解码单元1107。
此外,在图26中,prediction_unit()表示进行预测所针对的块的句法。在图2中的cu_skip_flag代码的值为1的情况下,输入merge_idx代码,并且根据条带类型而输出至复制矢量解码单元1105或运动矢量解码单元1107。此外,如果cu_skip_flag代码的值不为1,则输入merge_flag代码,并且根据块编码索引的值而输出至复制矢量解码单元1105或运动矢量解码单元1107。如果存在 merge_idx代码,则还根据块编码索引的值来将该merge_idx代码输出至复制矢量解码单元1105或运动矢量解码单元1107。如果merge_flag代码的值为0,则针对B_slice输入inter_pred_idc代码,并且输出至运动矢量解码单元1107。在块编码索引的值为MODE_INTRA_BC的情况下,将与复制数据有关的代码矢量输入至复制矢量解码单元1105。之后,根据需要将与运动矢量有关的代码数据输入至运动矢量解码单元1107。
此外,如第五实施例和第六实施例中的块编码句法的情况那样, pred_mode_idx代码可以位于块代码数据的开头。原因在于:第六实施例中首先对pred_mode_idx代码进行解码与首先对intra_bc_flag代码和 pred_mode_flag代码进行解码相同。
根据上述的设备结构和方法,代替intra_bc_flag代码和pred_mode_flag代码,可以通过使用pred_mode_idx代码来简化各块中的处理。例如,通过比较第二实施例的图13A和13B与本实施例的图30,利用步骤S3001和步骤S3002 来替换步骤S1309和步骤S1311。此外,省略了步骤S1305~步骤S1308、步骤 S1310和步骤S1312。
此外,在本实施例中,说明了利用硬件来实现各功能的示例,但这并非限制性的,并且可以使用诸如CPU等的处理器利用软件来实现这些功能的操作的一部分或全部。
此外,没有特别限制用于生成各代码数据的编码格式。例如,可以使用算术编码格式或霍夫曼编码格式来进行解码。
第九实施例
在上述实施例中,说明了图1和11所示的各处理单元是使用硬件配置成的。然而,可以使用计算机程序来配置图1和11所示的各处理单元所进行的处理。
图31是示出可应用于根据上述实施例的图像显示装置的计算机硬件的结构示例的框图。CPU 3101使用随机存取存储器(RAM)3102和只读存储器 (ROM)3103中所存储的计算机程序和数据来控制计算机整体,并且还执行根据上述实施例的图像编码设备或图像解码设备所进行的上述处理。也就是说,CPU 3101用作图1和11所示的各处理单元。
RAM 3102具有用于暂时存储从外部存储单元3106载入的计算机程序和数据以及经由接口3107从外部获取到的数据等的区域。此外,RAM 3102具有在CPU 3101执行各种处理时所使用的工作区域。也就是说,RAM 3102可被分配作为图片存储器,并且适当地提供其它各种类型的区域。
ROM 3103存储来自计算机的设置数据和引导程序等。操作单元3104被配置成包括键盘或鼠标等,并且计算机的用户可以使用该操作单元3104来将各种指示输入至CPU3101。显示单元3105显示利用CPU 3101的解码的结果。显示单元3105例如可被配置为液晶显示器等。
外部存储装置3106是诸如硬盘驱动器等的大容量存储装置。外部存储装置3106保存用于使CPU 3101实现图1和11所示的各单元的功能的操作系统 (OS)和计算机程序。还可以将要处理的图像数据保存在外部存储装置3106 中。
外部存储装置3106中所保存的计算机程序和数据可以适当地在CPU 3101的控制下被载入RAM 3102,并且由CPU 3101进行处理。接口3107可以连接至诸如局域网(LAN)或因特网等的网络、以及诸如投影仪设备和显示设备等的其它设备。计算机可以经由接口3107来获取并发送各种信息。附图标记3108表示使上述各部件相连接的总线。如上所述配置成的设备在CPU 3101 的主要控制下进行上述流程图所述的操作。
其它实施例
还可以通过以下来实现本发明:将存储有实现上述功能的计算机程序的代码的存储介质供给至系统,并且该系统读出并执行该计算机程序的代码。在这种情况下,从存储介质读出的计算机程序自身的代码实现上述实施例的功能,并且存储有计算机程序的代码的存储介质构成本发明。还包括以下情况:在计算机上运行的OS等基于程序代码的指令来进行实际处理的一部分或全部,由此实现上述功能。
还可以利用以下形式实现本发明。将从存储介质读出的计算机程序代码以插入计算机的功能扩展卡或连接至计算机的功能扩展单元的形式写入存储器。该功能扩展卡或功能扩展单元所设置的CPU等基于计算机程序的代码的指令来进行实际处理的一部分或全部,由此实现上述功能。该形式也被本发明的范围涵盖。
注意,在将本发明应用于存储介质的情况下,该存储介质存储与上述流程图相对应的计算机程序的代码。
还可以通过读出并执行记录在存储介质(还可被更完整地称为“非瞬态计算机可读存储介质”)上的计算机可执行指令(例如,一个或多个程序)以进行上述实施例中的一个或多个的功能以及/或者包括用于进行上述实施例中的一个或多个的功能的一个或多个电路(例如,专用集成电路(ASIC))的系统或设备的计算机和通过下面的方法来实现本发明的实施例,其中,该系统或设备的计算机通过例如从存储介质读出并执行计算机可执行指令以进行上述实施例中的一个或多个的功能以及/或者控制该一个或多个电路以进行上述实施例中的一个或多个的功能来进行上述方法。该计算机可以包括一个或多个处理器(例如,中央处理单元(CPU)、微处理单元(MPU)),并且可以包括单独计算机或单独计算机处理器的网络,以读出并执行计算机可执行指令。例如可以从网络或存储介质将这些计算机可执行指令提供至计算机。该存储介质可以包括例如硬盘、随机存取存储器(RAM)、只读存储器(ROM)、分布式计算机系统的存储器、光盘(诸如致密盘(CD)、数字多功能盘(DVD)或蓝光盘(BD)TM等)、闪速存储装置和存储卡等中的一个或多个。
尽管已经参考典型实施例说明了本发明,但是应该理解,本发明不限于所公开的典型实施例。所附权利要求书的范围符合最宽的解释,以包含所有这类修改、等同结构和功能。
本申请要求2014年6月12日提交的日本专利申请2014-121903的优先权,在此通过引用包含其全部内容。
产业上的可利用性
本发明可以应用于例如对并非自然图像的图像(如所生成的画面内容那样的人工图像等)进行编码的设备、以及对编码后的视频进行解码的设备。
在帧内块复制编码中,可以在无需对差矢量进行编码的情况下对复制矢量进行编码,因而可以提高复制矢量编码的效率。此外,在帧内块复制编码中,可以使用跳过编码,因而可以提高编码效率。此外,将帧内块复制编码作为新的编码模式添加至传统的帧间编码模式和帧内编码模式。将帧内块复制编码确立为统一编码模式(还称为“预测编码模式”以与传统的块编码模式区分开),这样能够简化编码/解码处理。

Claims (15)

1.一种图像编码设备,用于将视频中的图像分割成包括多个像素的块并对所述块进行编码,所述图像编码设备包括:
确定单元,用于在编码对象图像中根据所述编码对象图像中的进行了编码处理的图像部分来确定与编码对象块相似的第一预测块,并且确定表示所述编码对象块和所述第一预测块之间的空间关系的第一矢量;以及
第一矢量编码单元,用于生成矢量候选列表,并且在所述矢量候选列表中的矢量的数量低于预定数量的情况下,将具有零矢量值的至少一个矢量添加至所述矢量候选列表,使得所述矢量候选列表中的矢量的数量变为所述预定数量,其中所述矢量候选列表具有表示与同所述编码对象块的各个相邻块相关联的预测块的空间关系的矢量,
其中,所述第一矢量编码单元还用于从所述矢量候选列表中选择具有与所述第一矢量一致的矢量值的矢量,并且对表示所选择的矢量的索引进行编码。
2.根据权利要求1所述的图像编码设备,其中,在所述矢量候选列表不具有与所述第一矢量一致的矢量值的矢量的情况下,所述第一矢量编码单元对相邻块的矢量其中之一和所述编码对象块的所述第一矢量之间的差进行编码。
3.根据权利要求1所述的图像编码设备,其中,
所述第一矢量编码单元包括第一头部编码单元,所述第一头部编码单元用于针对各个块来对头部进行编码,以及
在所述矢量候选列表具有与所述第一矢量一致的矢量值的矢量、并且第一预测误差的值为0的情况下,对表示跳过模式的代码进行编码。
4.根据权利要求1所述的图像编码设备,其中,所述第一矢量编码单元对所述矢量候选列表中的具有相同矢量值的候选矢量进行整合。
5.一种图像解码设备,用于基于所输入的代码数据来对视频的图像中的已编码的块进行解码,所述图像解码设备包括:
第一获取单元,用于获取对象图像的已解码部分;
第一矢量获取单元,用于生成矢量候选列表,在所述矢量候选列表中的矢量的数量低于预定数量的情况下,将具有零矢量值的至少一个矢量添加至所述矢量候选列表,使得所述矢量候选列表中的矢量的数量变为所述预定数量,并且用于从所述矢量候选列表中获得解码对象块所用的第一矢量,其中所述矢量候选列表具有表示与同所述对象图像中的解码对象块的各个相邻块相关联的预测块的空间关系的矢量,所述第一矢量与来自所述代码数据的表示所述第一矢量的索引相对应;以及
第一预测单元,用于基于所述第一矢量,根据所述对象图像的已解码部分来确定所述解码对象块的预测块。
6.根据权利要求5所述的图像解码设备,其中,在作为解码对象的第一矢量没有包括在所述矢量候选列表中的情况下,所述第一矢量获取单元对相邻块的已解码的第一矢量和所述解码对象块的第一矢量之间的差进行解码。
7.根据权利要求5所述的图像解码设备,其中,所述第一矢量获取单元包括:第一头部解码单元,用于以块为单位对头部进行解码;以及预测误差块数据获取单元,用于获取与在第一块中所预测的块数据有关的第一预测误差,以及
所述第一头部解码单元对表示跳过模式的代码进行解码,并且在所述跳过模式的情况下,将所述第一预测误差的值设置为0。
8.根据权利要求7所述的图像解码设备,其中,所述第一头部解码单元对表示将以第一解码模式对所述解码对象块进行解码的预测编码模式进行解码,之后对表示所述跳过模式的代码进行解码。
9.根据权利要求5所述的图像解码设备,其中,所述第一矢量获取单元对所述矢量候选列表中的具有相同矢量值的候选矢量进行整合,并且在作为整合的结果、候选矢量的数量小于预定数量的情况下,添加矢量值不为(0,0)的预定矢量、直到达到所述预定数量为止。
10.一种图像编码方法,用于对视频中的图像进行编码,所述图像编码方法包括以下步骤:
在编码对象图像中根据进行了编码处理的图像部分来确定与编码对象块相似的第一预测块;
确定表示所述编码对象块和所述第一预测块之间的空间关系的第一矢量;
生成矢量候选列表,其中所述矢量候选列表具有表示与同所述编码对象块的各个相邻块相关联的预测块的空间关系的矢量;
在所述矢量候选列表中的矢量的数量低于预定数量的情况下,将具有零矢量值的至少一个矢量添加至所述矢量候选列表,使得所述矢量候选列表中的矢量的数量变为所述预定数量;
从所述矢量候选列表中选择具有与所述第一矢量一致的矢量值的矢量;以及
对表示所选择的矢量的索引进行编码。
11.一种图像解码方法,用于对代码数据进行解码,其中在所述代码数据中,对视频中的第一图像的块进行了编码,所述图像解码方法包括以下步骤:
获取对象图像的已解码部分;
生成矢量候选列表,其中所述矢量候选列表具有表示与同所述对象图像中的解码对象块的各个相邻块相关联的预测块的空间关系的矢量;
在所述矢量候选列表中的矢量的数量低于预定数量的情况下,将具有零矢量值的至少一个矢量添加至所述矢量候选列表,使得所述矢量候选列表中的矢量的数量变为所述预定数量;
第一矢量获取步骤,用于从所述矢量候选列表中获得解码对象块所用的第一矢量,其中所述第一矢量与来自所述代码数据的表示所述第一矢量的索引相对应;以及
基于所述第一矢量,根据所述对象图像的已解码部分来确定所述解码对象块的预测块。
12.根据权利要求11所述的图像解码方法,其中,在作为解码对象的第一矢量没有包括在所述矢量候选列表中的情况下,在所述第一矢量获取步骤中,对相邻块的已解码的第一矢量和所述解码对象块的第一矢量之间的差进行解码。
13.根据权利要求11所述的图像解码方法,其中,所述第一矢量获取步骤包括:第一头部解码步骤,用于针对各块来对头部进行解码;以及预测误差块数据获取步骤,用于获取与在第一块中所预测的块数据有关的第一预测误差,以及
在所述第一头部解码步骤中,对表示跳过模式的代码进行解码,并且在所述跳过模式的情况下,将所述第一预测误差的值设置为0。
14.根据权利要求13所述的图像解码方法,其中,在所述第一头部解码步骤中,对表示将以第一解码模式对所述解码对象块进行解码的预测编码模式进行解码,之后对表示所述跳过模式的代码进行解码。
15.根据权利要求11所述的图像解码方法,其中,对所述矢量候选列表中的具有相同矢量值的候选矢量进行整合。
CN201580031519.9A 2014-06-12 2015-06-10 图像编码和解码设备、图像编码和解码方法 Active CN106489267B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910916233.9A CN110620931B (zh) 2014-06-12 2015-06-10 图像解码方法

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2014121903A JP6482191B2 (ja) 2014-06-12 2014-06-12 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム
JP2014-121903 2014-06-12
PCT/JP2015/002906 WO2015190095A1 (en) 2014-06-12 2015-06-10 Image encoding apparatus, image encoding method and program, image decoding apparatus, and image decoding method and program

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201910916233.9A Division CN110620931B (zh) 2014-06-12 2015-06-10 图像解码方法

Publications (2)

Publication Number Publication Date
CN106489267A CN106489267A (zh) 2017-03-08
CN106489267B true CN106489267B (zh) 2019-09-24

Family

ID=54833206

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201910916233.9A Active CN110620931B (zh) 2014-06-12 2015-06-10 图像解码方法
CN201580031519.9A Active CN106489267B (zh) 2014-06-12 2015-06-10 图像编码和解码设备、图像编码和解码方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201910916233.9A Active CN110620931B (zh) 2014-06-12 2015-06-10 图像解码方法

Country Status (4)

Country Link
US (3) US10652568B2 (zh)
JP (1) JP6482191B2 (zh)
CN (2) CN110620931B (zh)
WO (1) WO2015190095A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11570447B2 (en) 2018-12-28 2023-01-31 Hangzhou Hikvision Digital Technology Co., Ltd. Video coding and video decoding

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012117744A1 (en) * 2011-03-03 2012-09-07 Panasonic Corporation Method of encoding an image into a coded image, method of decoding a coded image, and apparatuses thereof
JP6482191B2 (ja) * 2014-06-12 2019-03-13 キヤノン株式会社 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム
CN105392008B (zh) * 2014-08-22 2018-09-25 中兴通讯股份有限公司 一种预测编、解码方法和相应的编、解码器和电子设备
CN108141619B (zh) * 2015-10-19 2020-11-20 联发科技股份有限公司 管理已解码图像缓存器的方法及装置
KR20170096088A (ko) * 2016-02-15 2017-08-23 삼성전자주식회사 영상처리장치, 영상처리방법 및 이를 기록한 기록매체
JP2019129371A (ja) 2018-01-23 2019-08-01 富士通株式会社 動画像符号化装置、動画像符号化方法、動画像復号装置、動画像復号方法、及び動画像符号化用コンピュータプログラムならびに動画像復号用コンピュータプログラム
US10904559B2 (en) * 2018-07-13 2021-01-26 Tencent America LLC Block vector prediction in intra block copy mode
US20220150511A1 (en) * 2018-12-21 2022-05-12 Electronics And Telecommunications Research Institute Image encoding/decoding method and device, and recording medium having bitstream stored therein
US10958904B2 (en) * 2019-02-01 2021-03-23 Tencent America LLC Method and apparatus for video coding
WO2020164630A1 (en) * 2019-02-17 2020-08-20 Beijing Bytedance Network Technology Co., Ltd. Signaling of intra block copy merge candidates
AU2020232109C1 (en) * 2019-03-04 2023-10-19 Lg Electronics Inc. Intra block coding-based video or image coding
WO2020180097A1 (ko) * 2019-03-04 2020-09-10 엘지전자 주식회사 인트라 블록 코딩 기반 비디오 또는 영상 코딩
US11012686B2 (en) * 2019-03-08 2021-05-18 Tencent America LLC Unified block vector prediction for intra picture block compensation
CN111726630B (zh) * 2019-03-18 2024-03-15 华为技术有限公司 基于三角预测单元模式的处理方法及装置
US11394990B2 (en) * 2019-05-09 2022-07-19 Tencent America LLC Method and apparatus for signaling predictor candidate list size
CN113853783B (zh) * 2019-05-25 2023-12-15 北京字节跳动网络技术有限公司 对帧内块复制编解码的块的块矢量的编解码
CN110798683B (zh) * 2019-08-26 2022-05-27 腾讯科技(深圳)有限公司 数据解码方法、装置和数据编码方法、装置
KR102492522B1 (ko) * 2019-09-10 2023-01-27 삼성전자주식회사 툴 세트를 이용하는 영상 복호화 장치 및 이에 의한 영상 복호화 방법, 및 영상 부호화 장치 및 이에 의한 영상 부호화 방법
US20220107738A1 (en) * 2020-10-06 2022-04-07 Kioxia Corporation Read controller and input/output controller
US11496729B2 (en) 2020-10-19 2022-11-08 Tencent America LLC Method and apparatus for video coding

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102223542A (zh) * 2010-04-14 2011-10-19 联发科技股份有限公司 译码单元的局部运动向量推导的方法与相应装置
CN103548356A (zh) * 2011-04-12 2014-01-29 韩国电子通信研究院 使用跳跃模式的图像编码方法及使用该方法的装置
CN103828373A (zh) * 2011-10-05 2014-05-28 松下电器产业株式会社 图像编码方法、图像编码装置、图像解码方法、图像解码装置及图像编解码装置

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5368631B2 (ja) * 2010-04-08 2013-12-18 株式会社東芝 画像符号化方法、装置、及びプログラム
KR101677480B1 (ko) * 2010-09-07 2016-11-21 에스케이 텔레콤주식회사 효과적인 화면내 예측모드 집합 선택을 이용한 영상 부호화/복호화 방법 및 장치
US9143795B2 (en) * 2011-04-11 2015-09-22 Texas Instruments Incorporated Parallel motion estimation in video coding
EP3879832A1 (en) * 2011-05-31 2021-09-15 JVCKENWOOD Corporation Moving image encoding device, moving image encoding method and moving image encoding program, as well as moving image decoding device, moving image decoding method and moving image decoding program
US9699456B2 (en) * 2011-07-20 2017-07-04 Qualcomm Incorporated Buffering prediction data in video coding
US10904551B2 (en) * 2013-04-05 2021-01-26 Texas Instruments Incorporated Video coding using intra block copy
RU2669005C2 (ru) * 2014-01-03 2018-10-05 МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи Предсказание вектора блока в кодировании/декодировании видео и изображений
US9948950B2 (en) * 2014-01-03 2018-04-17 Qualcomm Incorporated Disparity vector and/or advanced residual prediction for video coding
US20150271515A1 (en) * 2014-01-10 2015-09-24 Qualcomm Incorporated Block vector coding for intra block copy in video coding
KR101908205B1 (ko) * 2014-02-21 2018-10-15 미디어텍 싱가폴 피티이. 엘티디. 인트라 화상 블록 카피에 기초한 예측을 이용하는 비디오 코딩 방법
AU2014201583A1 (en) * 2014-03-14 2015-10-01 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding video data using a block dictionary
US9756354B2 (en) * 2014-03-17 2017-09-05 Qualcomm Incorporated Block vector predictor for intra block copying
CN110099281B (zh) * 2014-05-06 2021-06-25 寰发股份有限公司 用于块内复制模式编码的块向量预测方法
JP6482191B2 (ja) * 2014-06-12 2019-03-13 キヤノン株式会社 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102223542A (zh) * 2010-04-14 2011-10-19 联发科技股份有限公司 译码单元的局部运动向量推导的方法与相应装置
CN103548356A (zh) * 2011-04-12 2014-01-29 韩国电子通信研究院 使用跳跃模式的图像编码方法及使用该方法的装置
CN103828373A (zh) * 2011-10-05 2014-05-28 松下电器产业株式会社 图像编码方法、图像编码装置、图像解码方法、图像解码装置及图像编解码装置

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
AhG5: On the displacement vector prediction scheme for Intra Block Copy;Patrice Onn;《JCT-VC of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11》;20140325;全文 *
Description of screen content coding technology proposal by Microsoft;Bin Li;《JCT-VC of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11》;20140327;全文 *
HEVC Screen Content Coding Core Experiment 1 (SCCE1): Intra Block Copying Extensions;Joel Sole, Shan Liu;《JCT-VC of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11》;20140405;1-6页 *
Initialization of block vector predictor for intra block copy;Lihua Zhu;《JCT-VC of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11》;20140104;1-6页 *
On unification of intra block copy and inter-picture motion compensation;Xiaozhong Xu , Shan Liu, Shawmin Lei;《JCT-VC of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11》;20140318;全文 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11570447B2 (en) 2018-12-28 2023-01-31 Hangzhou Hikvision Digital Technology Co., Ltd. Video coding and video decoding

Also Published As

Publication number Publication date
CN106489267A (zh) 2017-03-08
US10652568B2 (en) 2020-05-12
CN110620931B (zh) 2023-04-11
US20170118484A1 (en) 2017-04-27
US11102505B2 (en) 2021-08-24
US11711539B2 (en) 2023-07-25
US20200236392A1 (en) 2020-07-23
US20210352317A1 (en) 2021-11-11
JP6482191B2 (ja) 2019-03-13
CN110620931A (zh) 2019-12-27
WO2015190095A1 (en) 2015-12-17
JP2016001858A (ja) 2016-01-07

Similar Documents

Publication Publication Date Title
CN106489267B (zh) 图像编码和解码设备、图像编码和解码方法
CN104811732B (zh) 处理视频信号的方法和设备
KR102030951B1 (ko) 샘플 영역 병합
US20200351492A1 (en) Encoding method, decoding method, encoding apparatus, decoding apparatus, and encoding and decoding apparatus
CN103314586B (zh) 错误恢复改进的视频编码和解码
CN103380620B (zh) 图像编码装置和图像编码方法
KR101893923B1 (ko) 블록 분할 및 블록 병합을 지원하는 픽처 코딩
KR102159896B1 (ko) 샘플 배열 멀티트리 세부분할에서 계승
CN103155563B (zh) 通过使用块合并对视频进行编码的方法和设备以及通过使用块合并对视频进行解码的方法和设备
CN104025592B (zh) 确定视频序列的图像的编码或解码所用的参数的方法和装置
KR20210065922A (ko) 참조 유닛 결정 방법 및 장치
BR112012026383B1 (pt) Decodificador, método de descodificação, codificador, método de codificação e meio de armazenamento digital
CN105393541A (zh) 使用基于深度的块分割编解码纹理块的方法和装置
KR20200031714A (ko) 화상 부호화 장치, 화상 부호화 방법, 화상 복호화 장치, 화상 복호화 방법, 및 컴퓨터 판독가능 저장 매체
CN109922338A (zh) 图像编码设备和方法、图像解码设备和方法以及存储介质
JP6962193B2 (ja) 動画像符号化装置、動画像符号化方法および動画像符号化プログラムを記憶する記録媒体
CN103703780B (zh) 运动图像解码方法及图像编码方法
JP5950726B2 (ja) 動画像予測符号化方法、動画像予測符号化装置、動画像予測符号化プログラム、動画像予測復号方法、動画像予測復号装置及び動画像予測復号プログラム

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant