首页> 中国专利> 对MPEG-4AVC高层编码中CAVLC4:4:4帧内、高4:4:4帧内和高4:4:4预测简档使用针对CODED BLOCK FLAG语法元素和CODED_BLOCK_PATTERN语法元素的语法的方法和装置

对MPEG-4AVC高层编码中CAVLC4:4:4帧内、高4:4:4帧内和高4:4:4预测简档使用针对CODED BLOCK FLAG语法元素和CODED_BLOCK_PATTERN语法元素的语法的方法和装置

摘要

本发明提供了对MPEG-4 AVC高层编码中的CAVLC4:4:4帧内、高4:4:4帧内和高4:4:4预测简档使用针对coded_block_flag语法元素的语法的方法和装置。一种装置包括编码器(100),用于根据编码简档将图像数据编码成结果比特流,所述编码简档对图像数据的采样进行编码,使所述采样包括两个色度阵列和亮度阵列。两个色度阵列分别具有与亮度阵列相同的高度和相同的宽度。所述编码器(100)使用语法元素指示至少一个8×8块在结果比特流中的存在。

著录项

  • 公开/公告号CN101578877A

    专利类型发明专利

  • 公开/公告日2009-11-11

    原文格式PDF

  • 申请/专利权人 汤姆森许可贸易公司;

    申请/专利号CN200880002111.9

  • 发明设计人 余浩平;

    申请日2008-01-11

  • 分类号H04N7/26(20060101);

  • 代理机构11021 中科专利商标代理有限责任公司;

  • 代理人王波波

  • 地址 法国布洛涅-比郎库尔

  • 入库时间 2023-12-17 22:57:19

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-06-18

    专利权的转移 IPC(主分类):H04N19/70 登记生效日:20190530 变更前: 变更后: 申请日:20080111

    专利申请权、专利权的转移

  • 2019-06-18

    专利权人的姓名或者名称、地址的变更 IPC(主分类):H04N19/70 变更前: 变更后: 申请日:20080111

    专利权人的姓名或者名称、地址的变更

  • 2016-05-04

    授权

    授权

  • 2010-03-10

    实质审查的生效

    实质审查的生效

  • 2009-11-11

    公开

    公开

说明书

相关申请的交叉引用

本申请要求于2007年1月11日提交的、序号为60/884,576的美国临时申请的权益,并将其全部内容合并于此以作参考。

技术领域

本发明原理总体涉及视频编码和解码,更具体地,涉及针对国际标准化组织/国际电工委员会(ISO/IEC)运动画面专家组-4(MPEG-4)第10部分高级视频编码(AVC)标准/国际电信联盟电信标准化部门(ITU-T)H.264建议(以下称为“MPEG-4AVC标准”)中的高4:4:4帧内和高4:4:4预测简档使用coded_block_flag语法元素的先前未使用过的语法元素的方法和装置。此外,本发明原理涉及针对任何块尺寸提高MPEG-4AVC标准中CAVLC 4:4:4帧内简档的CAVLC处理效率的方法和装置。

背景技术

下面将描述使用8×8变换的图像块的coded_block_flag语法元素。

在CAVLC 4:4:4帧内、高4:4:4帧内和高4:4:4预测简档的当前设计中,针对每一宏块对单个coded_block_pattern进行编码,并且当separate_color_plane_flag语法元素等于零时所有三种颜色分量共享4-比特变量CodedBlockPatternLuma。除了对于使用8×8变换的、以上下文自适应二进制算术编码进行编码(CABAC编码)的块之外,上述设计适用状况良好,所谓8×8变换即使用如下设置的参数:transform_size_8x8_flag语法元素等于1;entropy_coding_mode_flag语法元素等于1。根据针对高4:4:4帧内、CAVLC 4:4:4帧内和高4:4:4预测简档提出的当前宏块层语法、残差数据语法和残差块CABAC语法,当在宏块中同时对颜色分量进行编码时,如果transform_size_8x8_flag语法元素等于1,则还使用coded_block_flag语法元素。

关于4:4:4简档中coded_block_pattern语法元素的编码分配,具体地,根据4:4:4简档中coded_block_pattern语法元素的当前语义,仅使用coded_block_pattern语法元素的4个较低比特。因此,对于4:4:4简档,应当使用表9-4的部分(b)(chrom_format_idc等于0),针对宏块预测模式,向coded_block_pattern语法元素的值分配codeNum语法元素。

因此,由于在这样情况下coded_block_flag语法元素的不足,当将上下文自适应二进制算术编码(CABAC)应用于高4:4:4帧内和高4:4:4预定简档中的8×8的块尺寸时,不利地该上下文自适应二进制算术编码(CABAC)无法使用。此外,关于在CAVLC 4:4:4帧内简档中使用coded_block_pattern语法元素,上下文自适应二进制算术编码(CABAC)处理对于任何块尺寸效率都不高。

发明内容

本发明原理解决了现有技术的上述和其他缺陷和缺点,本发明原理涉及针对国际标准化组织/国际电工委员会(ISO/IEC)运动画面专家组-4(MPEG-4)第10部分高级视频编码(AVC)标准/国际电信联盟电信标准化部门(ITU-T)H.264建议(以下称为“MPEG-4AVC标准”)中的高4:4:4帧内和高4:4:4预测简档使用coded_block_flag语法元素的先前未使用过的语法元素的方法和装置。

此外,本发明原理涉及通过对用于coded_block_pattern语法元素的映射处理使用单色色度阵列类型,针对任何块尺寸提高MPEG-4AVC标准中CAVLC 4:4:4帧内简档的CAVLC处理效率的方法和装置。

根据本发明原理的一方面,提供了一种装置。所述装置包括编码器,用于根据编码简档将图像数据编码成结果比特流,所述编码简档对图像数据的采样进行编码,使采样包括两个色度阵列和一个亮度阵列。两个色度阵列分别具有与亮度阵列相同的高度和相同的宽度。编码器使用语法元素指示至少一个8×8块在结果比特流中的存在。

根据本发明原理的另一方面,提供了一种方法。所述方法包括以下步骤:根据编码简档将图像数据编码成结果比特流,所述编码简档对图像数据的采样进行编码,使采样包括两个色度阵列和一个亮度阵列。两个色度阵列分别具有与亮度阵列相同的高度和相同的宽度。所述编码步骤包括使用语法元素指示至少一个8×8块在结果比特流中的存在。

根据本发明原理的又一方面,提供了一种装置。所述装置包括解码器,用于对来自先前根据编码简档进行编码的比特流的图像数据进行解码,所述编码简档对图像数据的采样进行编码,使采样包括两个色度阵列和一个亮度阵列。两个色度阵列分别具有与亮度阵列相同的高度和相同的宽度。所述解码器使用语法元素来确定至少一个8×8块在结果比特流中的存在。

根据本发明原理的又一方面,提供了一种方法。所述方法包括以下步骤:对来自先前根据编码简档进行编码的比特流的图像数据进行解码,所述编码简档对图像数据的采样进行编码,使采样包括两个色度阵列和一个亮度阵列。两个色度阵列分别具有与亮度阵列相同的高度和相同的宽度。所述解码步骤包括使用语法元素来确定至少一个8×8块在结果比特流中的存在。

根据本发明原理的另一方面,提供了一种装置。所述装置包括编码器,用于根据编码简档将图像数据编码成结果比特流,所述编码简档对图像数据的采样进行编码,使采样包括两个色度阵列和一个亮度阵列。两个色度阵列分别具有与亮度阵列相同的高度和相同的宽度。所述编码器使用上下文自适应可变长度编码(CAVLC)对图像数据进行编码,并使用单色色度阵列类型对coded_block_pattern语法元素执行映射处理。

根据本发明原理的又一方面,提供了一种方法。所述方法包括:根据编码简档将图像数据编码成结果比特流,所述编码简档对图像数据的采样进行编码,使采样包括两个色度阵列和一个亮度阵列。两个色度阵列分别具有与亮度阵列相同的高度和相同的宽度。所述编码步骤使用上下文自适应可变长度编码(CAVLC)对图像数据进行编码,并使用单色色度阵列类型对编码块模式语法元素执行映射处理。

根据本发明原理的又一方面,提供了一种装置。所述装置包括解码器,用于对来自先前根据编码简档进行编码的比特流的图像数据进行解码,所述编码简档对图像数据的采样进行编码,使采样包括两个色度阵列和一个亮度阵列。两个色度阵列分别具有与亮度阵列相同的高度和相同的宽度。所述解码器使用上下文自适应可变长度编码(CAVLC)对图像数据进行解码,并使用单色色度阵列类型对编码块模式语法元素执行映射处理。

根据本发明原理的又一方面,提供了一种方法。所述方法包括:对来自先前根据编码简档进行编码的比特流的图像数据进行解码,所述编码简档对图像数据的采样进行编码,使采样包括两个色度阵列和一个亮度阵列。两个色度阵列分别具有与亮度阵列相同的高度和相同的宽度。所述解码步骤使用上下文自适应可变长度编码(CAVLC)对图像数据进行解码,并使用单色色度阵列类型对编码块模式语法元素执行映射处理。

通过需要结合附图阅读的以下示例实施例的详细描述,本发明原理的上述及其他方面、特征和优点将变得显而易见。

附图说明

根据以下示例附图可以更好地理解本发明,在附图中:

图1是示出了根据本发明原理的实施例的可以应用本发明原理的示例视频编码器的框图;

图2是示出了根据本发明原理的实施例的可以应用本发明原理的示例视频解码器的框图;

图3是示出了根据本发明原理的实施例的示例视频编码处理的流程图;

图4是示出了根据本发明原理的实施例的示例视频解码处理的流程图;

图5是示出了根据本发明原理的实施例的另一示例视频编码处理的流程图;

图6是示出了根据本发明原理的实施例的另一示例视频解码处理的流程图。

具体实施方式

本发明涉及针对国际标准化组织/国际电工委员会(ISO/IEC)运动画面专家组-4(MPEG-4)标准第10部分高级视频编码(AVC)标准/国际电信联盟电信标准化部门(ITU-T)H.264建议(以下称为“MPEG-4AVC标准”)中的高4:4:4帧内和高4:4:4预测简档使用coded_block_flag语法元素的先前未使用过的语法元素的方法和装置。

此外,本发明原理涉及通过对用于coded_block_pattern语法元素的映射处理使用单色色度阵列类型,针对任何块尺寸提高MPEG-4AVC标准中CAVLC 4:4:4帧内简档的CAVLC处理效率的方法和装置。

本说明阐释了本发明的原理。因而,应意识到,所属领域技术人员将能够设计出此处虽未明确说明或示出,但体现了本发明原理,并处于其精神和范围内的各种配置。

此处叙述的所有示例以及条件式语言均为达到教学目的,旨在帮助读者理解由发明者提出的改进了现有技术的发明原理以及发明构思,因而应将其看成不限于那些具体叙述的示例以及条件。

此外,此处叙述了发明原理、方案和实施例的所有说明及其具体示例均意在涵盖其结构以及功能等价物。此外,这些等价物意在包括现存等价物以及将于未来开发出来的等价物,即,不管结构如何,开发出来用于执行同一功能的任意元件。

因而,举例而言,所属领域技术人员应意识到此处所示的方框图呈现了体现本发明原理的示意电路的概念视图。同样,应意识到流程图、状态转移图、伪码等表示各种可以计算机可读介质充分表现的,因而无论是否明确说明了计算机或处理器,均能够用计算机或处理器予以执行的过程。

可以通过采用专用硬件以及能够执行同适当软件有关的软件的硬件实现附图所示的各种实施例的功能。如果用处理器来提供功能,则可以用单独的专用处理器、单独的共享处理器或者多个其中若干可以是共享处理器的独立处理器来提供功能。此外,不应将术语“处理器”或“控制器”的明确使用看成专指能够执行软件的硬件,而可以无限制地隐含包括,数字处理器(“DSP”)硬件、用于存储软件的只读存储器(“ROM”)、随机存取存储器(“RAM”)以及非易失性存储器。

还可以包括常规的和/或定制的其他硬件。类似地,附图中的所有开关也只是概念上的。可以通过程序逻辑操作、专用逻辑、程序控制以及专用逻辑的相互作用,或者甚至手动实现它们的功能,其中具体技术可以根据环境进行了更加具体的理解后,由实施者加以选择。

在其权利要求中,任意被表示为用于执行指定功能的装置都意在包含执行该功能的任意方式,后者包括:比如,a)执行该功能的电路元件的组合或b)任意形式的软件,因而包括:同用于执行该软件以实现所述功能的适当电路相结合的固件、微码或类似软件。由这种权利要求所限定的发明在于以权项要求的方式结合在一起的各种所述装置所提供的功能。因而,应将能够提供这种功能的任意装置看做此处说明的装置的等价物。

说明书中对本发明原理“一实施例”的引用意味着,至少在依照本发明原理的一实施例中包含了结合实施例进行说明的特定的特征、结构、特点等等。因而,在整篇说明书中各处出现的短语“在一实施例中”未必指同一实施例。

如这里所使用的,短语“图像数据”意在指代:与静止图像和运动图像(即,包括运动的图像序列)中任一项相对应的数据。

此外,如这里所使用的,“高层语法”指:在分层结构中位于宏块层之上的比特流中所存在的语法。例如,如这里所使用的高层语法可以指但不限于:在像条头层、补充增强信息(SEI)层、画面参数集层、序列参数集层和NAL单元头层处的语法。

此外,如这里针对用于指示比特流中存在一个或多个8×8块的语法元素所使用的,短语“先前未使用过的”指:未在任何当前或先前视频编码标准和/或建议中使用的语法元素。

应当理解的是,例如在“A和/或B”中使用的术语“和/或”意在包括所列第一项(A)的选择、所列第二项(B)的选择、或两项(A和B)的选择。作为另一示例,在“A、B和/或C”的情况下,这样的措辞意在包括所列第一项(A)的选择、所列第二项(B)的选择、所列第三项(C)的选择、所列第一和第二项(A和B)的选择、所列第一和三项(A和C)的选择、所列第二和第三项(B和C)的选择、或所有三项(A和B和C)的选择。对于本领域和相关领域中普通技术人员显而易见的是,可以针对所列多个项目对此进行扩展。

此外,应当理解的是,这里所引用的表、部分、条款、子条款等涉及MPEG-4AVC标准。

此外,应当理解的是,尽管这里关于MPEG-4AVC标准描述了本发明原理的一个或多个实施例,但是本发明不仅限于该标准,因此对于其他视频编码标准、建议及其扩展(包括MPEG-4AVC标准的扩展)也可以利用本发明,而同时保持本发明原理的精神。

转向图1,总体上由附图标记100来指示可以应用本发明原理的视频编码器。视频编码器100的输入以信号通信的方式与求和点110的同相输入连接。求和点110的输出以信号通信的方式与变换器/量化器120连接。变换器/量化器120的输出以信号通信的方式与熵编码器140连接。熵编码器140的输出可用作编码器100的输出。

变换器/量化器120的输出还以信号通信的方式与逆变换器/量化器150连接。逆变换器/量化器150的输出以信号通信的方式与参考画面存储器170连接。参考画面存储器170的第一输出以信号通信的方式与运动估计器180的第一输入连接。编码器100的输入还以信号通信的方式与运动估计器180的第二输入连接。运动估计器180的输出以信号通信的方式与运动补偿器190的第一输入连接。参考画面存储器170的第二输出以信号通信的方式与运动补偿器190的第二输入连接。运动补偿器190的输出以信号通信的方式与求和点110的反相输入连接。

转向图2,总体上由附图标记200来指示可以应用本发明原理的视频解码器。视频解码器200包括用于接收视频序列的熵解码器210。熵解码器210的第一输出以信号通信的方式与逆量化器/变换器220的输入连接。逆量化器/变换器220的输出以信号通信的方式与求和点240的第一输入连接。

求和点240的输出以信号通信的方式与去块滤波器290连接。去块滤波器290的输出以信号通信的方式与参考画面存储器250连接。参考画面存储器250以信号通信的方式与运动补偿器260的第一输入连接。运动补偿器260的输出以信号通信的方式与求和点240的第二输入连接。熵解码器210的第二输出以信号通信的方式与运动补偿器260的第二输入连接。去块滤波器290的输出可用作视频解码器200的输出。

如上所述,本发明原理涉及针对国际标准化组织/国际电工委员会(ISO/IEC)运动画面专家组-4(MPEG-4)第10部分高级视频编码(AVC)标准/国际电信联盟电信标准化部门(ITU-T)H.264建议(以下称为“MPEG-4AVC标准”)中的高4:4:4帧内和高4:4:4预测简档的coded_block_flag语法元素使用先前未使用过的语法元素的方法和装置。有利地,本发明原理至少克服了当前实现MPEG-4AVC标准及其修改中描述的高4:4:4帧内和高4:4:4预测简档的上述问题。

关于4:4:4简档中coded_block_pattern语法元素的编码分配,具体地,根据4:4:4简档中coded_block_pattern语法元素的当前语义,仅使用coded_block_pattern语法元素的4个较低比特。因此,对于4:4:4简档,应当使用表9-4的部分(b)(chrom_format_idc等于0),针对宏块预测模式,向coded_block_pattern语法元素的值分配codeNum语法元素。

因此,在实施例中,如下针对coded_block_pattern语法元素提供了新的映射处理。

按以下方式修改现有的表9-4a和9-4b。应当理解的是,尽管所提出的改变涉及CAVLC熵编码,但是为了完整起见,如下提供了CAVLC模式下coded_block_pattern语法元素的完整部分的绝大部分。

关于coded_block_pattern语法元素的映射处理,如子条款9.1所指定的,映射处理的输入是codeNum。映射处理的输出是被编码为me(v)的coded_block_pattern语法元素的值。表9-4a和9-4b示出了,根据宏块预测模式是等于帧内_4×4、帧内_8×8还是等于帧间,向codeNum分配coded_block_pattern。具体地,表9-4a涉及ChromaArrayType等于1或2,表9-4b涉及ChromaArrayType等于0或3。

表9-4a

表9-4b

对于单色视频信号ChromaArrayType等于0。对于4:2:0视频ChromaArrayType等于1。对于4:2:2视频ChromaArrayType等于2。对于4:4:4视频ChromaArrayType等于3。

关于宏块层语义,使用以下定义:

transform_size_8x8_flag等于1指定:对于当前宏块,当chroma_format_idc==3并且separate_colour_plane_flag==0时,在对残差8×8块进行去块滤波器处理之前,应当针对亮度采样、Cb和Cr采样调用变换系数解码处理和画面构建处理。transform_size_8x8_flag等于0指定:对于当前宏块,当chroma_format_idc==3并且separate_colour_plane_flag==0时,在对残差4×4块进行去块滤波器处理之前,应当针对亮度采样、Cb和Cr采样调用变换系数解码处理和画面构建处理。当transform_size_8x8_flag不存在于比特流中时,则推断其等于0。

关于宏块预测语义,应当使用以下定义:

intra_chroma_pred_mode指定了针对使用帧内_4×4或帧内_16×16预测的宏块中的色度所使用的空间预测类型(如表7-16所示)。intra_chroma_pred_mode的值应当在0至3范围内(包括0和3)。当chroma_format_idc==3时,intra_chroma_pred_mode将不存在于比特流中。

关于已编码块模式的二值化处理,适用以下内容:

coded_block_pattern的二值化包括前缀部分(如果存在的话)和后缀部分。CodedBlockPatternLuma的FL二值化(其中cMax=5)给出了二值化的前缀部分。当chroma_format_idc不等于0(单色)或不等于3(4:4:4)时,后缀部分存在并包括CodedBlockPatternChroma的TU二值化(其中cMax=2)。如子条款7.4.5所指定的,给出了coded_block_pattern语法元素的值和CodedBlockPatternLuma和CodedBlockPatternChroma的值之间的关系。

表1示出了残差块CABAC语法,具体如下所示:

表1

residual_block_cabac(coeffLevel,maxNumCoeff){  C  描述符  if(maxNumCoeff==64&&(ChromaArrayType==3)  )    coded_block_flag=1  Else    cod ed_block_flag  3|4  Ae(v)  if(coded_block_flag){    numCoeff=maxNumCoeff    i=0    do{      significant_coeff_flag[i]  3|4  Ae(v)      if(significant_coeff_flag[i]){        last_significant_coeff_flag[i ]  3|4  Ae(v)        if(last_significant_coeff_flag[i]){          numCoeff=i+1          for(j=numCoeff;j<maxNumCoeff;j++)             coeffLevel[j]=0        }      }      i++    }while(i<numCoeff-1)    coeff_abs_level_minus1[numCoeff-1]  3|4  Ae(v)    coeff_sign_flag[numCoeff-1]  3|4  Ae(v)    coeffLevel[numCoeff-1]=      (coeff_abs_level_minus1[numCoeff-1]+1)*      (1-2*coeff_sign_flag[numCoeff-1])    for(i=numCoeff-2;i>=0;i--)      if(significant_coeff_flag[i]){        coeff_abs_level_minus1[i]  3|4  Ae(v)        coeff_sign_flag[i]  3|4  Ae(v)

        coeffLevel[i]=(coeff_abs_level_minus1[i]+1)*                        (1-2*coeff_sign_flag[i])       }else         coeffLevel[i]=0  }else    for(i=0;i<maxNumCoeff;i++)       coeffLevel[i]=0}

现在将描述内容变量的初始化处理。

表2示出了针对初始化处理中针对每一像条类型的ctxIdx和语法元素的关联,表2如下:

表2

表3示出了对于ctsIdx从1012到1023变量m和n的值,表3如下:

表3

关于二值化处理,适用以下内容:内容索引ctxIdx的可能值在0至1023范围中(包括0和1023)。分配给ctxOdxOffset的值指定了分配给语法元素的相应二值化或二值化部分的ctxIdx范围中的较低值。

表4示出了语法元素和二值化的关联类型、maxBinIdxCtx和ctxIdxOffset,表4如下:

表4

  语法元素  二值化的类型  maxBinIdx  Ctx  ctxIdxOffset  mb_type  (仅SI像条)  如在子条款9.3.2.5中指定的  前缀和后缀  前缀:0  后缀:6  前缀:0  后缀:3  mb_type(仅I像条)  如在子条款93.25中指定的  6  3  mb_skip_flag  (仅P,SP像条)  FL,cMax=1  0  11  mb_type(仅P,SP像条)  如在子条款9.3.2.5中指定的前  缀和后缀  前缀:2  后缀:5  前缀:14  后缀:17  sub_mb_type  (仅P,SP像条)  如在子条款9.3.2.5中指定  2  21  mb_skip_flag  (仅B像条)  FL,cMax=1  0  24  mb_type(仅B像条)  如在子条款9.3.2.5中指定的前  缀和后缀  前缀:3  后缀:5  前缀:27  后缀:32  sub_mb_type(仅B像条)  如在子条款9.32.5中指定  3  36  mvd_l0[][][0],mvd_l1[][][0]  如UEG3给出的前缀和后缀  其中signedValFlag=1,uCoff=9  前缀:4  后缀:不可用  前缀:40  后缀:不可用(使用  旁路解码)  mvd_l0[][][1],mvd_l1[][][1]  前缀:4  后缀:不可用  前缀:47  后缀:不可用(使用  旁路解码)  ref_idx_l0,ref_idx_l1  U  2  54  mb_qp_delta  如在子条款9.3.2.7中指定的  2  60  intra_chroma_pred_mode  TU,cMax=3  1  64  prev_intra4x4_pred_mode_flag,  prev_intra8x8_pred_mode_flag  FL,cMax=1  0  68  rem_intra4x4_pred_mode,  rem_intra8x8_pred_mode  FL,cMax=7  0  69  mb_field_decoding_flag  FL,cMax=1  0  70  coded_block_pattern  如在子条款93.26中指定的前  缀和后缀  前缀:3  后缀:1  前缀:73  后缀:77  coded_block_flag  (ctxBlockCat<5)  FL,cMax=1  0  85  significant_coeff_flag  (ctxBlockCat<5的帧编码块)  FL,cMax=1  0  105  last_significant_coeff_flag  (ctxBlockCat<5的帧编码块)  FL,cMax=1  0  166  coeff_abs_level_minus1  (ctxBlockCat<5的块)  如UEG0给定的前缀和后缀  其中signedValFlag=0,  uCoff=14  前缀:1  后缀:不可用  前缀:227  后缀:不可用,(使用  旁路解码)  coeff_sign_flag  FL,cMax=1  0  不可用,(使用旁路解码)  end_of_slice_flag  FL,cMax=1  0  276

  significant_coeff_flag  (ctxBlockCat<5的场编码块)  FL,cMax=1  0  277  last_significant_coeff_flag  (ctxBlockCat<5的场编码块)  FL,cMax=1  0  338  transform_size_8x8_flag  FL,cMax=1  0  399  significant_coeff_flag  (ctxBlockCat==5的帧编码块)  FL,cMax=1  0  402  last_significant_coeff_flag  (ctxBlockCat==5的帧编码块)  FL,cMax=1  0  417  coeff_abs_level_minus1  (ctxBlockCat==5的块)  如UEG0给出的前缀和后缀  其中signedValFlag=0,  uCoff=14  前缀:1  后缀:不可用  前缀:426  后缀:不可用,(使用  旁路解码)  significant_coeff_flag  (ctxBlockCat==5的场编码块)  FL,cMax=1  0  436  last_significant_coeff_flag  (ctxBlockCat==5的场编码块)  FL,cMax=1  0  451  coded_block_flag  (5<ctxBlockCat<9)  FL,cMax=1  0  460  coded_block_flag  (9<ctxBlockCat<13)  FL,cMax=1  0  472  coded_block_flag  (ctxBlockCat==5,9,或13)  FL,cMax=1  0  1012  significant_coeff_flag  (5<ctxBlockCat<9的帧编码块)  FL,cMax=1  0  484  significant_coeff_flag  (9<ctxBlockCat<13的帧编码块)  FL,cMax=1  0  528  last_significant_coeff_flag  (5<ctxBlockCat<9的帧编码块)  FL,cMax=1  0  572  last_significant_coeff_flag  (9<ctxBlockCat<13的帧编码块)  FL,cMax=1  0  616  coeff_abs_level_minus1  (5<ctxBlockCat<9的块)  如UEG0给定的前缀和后缀  其中signedValFlag=0,  uCoff=14  前缀:1  后缀:不可用  前缀:952  后缀:不可用,(使用  旁路解码)  coeff_abs_level_minus1  (9<ctxBlockCat<13的块)  如UEG0给定的前缀和后缀  其中signedValFlag=0,  uCoff=14  前缀:1  后缀:不可用  前缀:982  后缀:不可用,(使用  旁路解码)  significant_coeff_flag  (5<ctxBlockCat<9的场编码块)  FL,cMax=1  0  776  significant_coeff_flag  (9<ctxBlockCat<13的场编码块)  FL,cMax=1  0  820  last_significant_coeff_flag  (5<ctxBlockCat<9的场编码块)  FL,cMax=1  0  864  last_significant_coeff_flag  (9<ctxBlockCat<13的场编码块)  FL,cMax=1  0  908  significant_coeff_flag  (ctxBlockCat==9的帧编码块)  FL,cMax=1  0  660

  significant_coeff_flag  (ctxBlockCat==13的帧编码块)  FL,cMax=1  0  718  last_significant_coeff_flag  (ctxBlockCat==9的帧编码块)  FL,cMax=1  0  690  last_significant_coeff_flag  (ctxBlockCat==13的帧编码块)  FL,cMax=1  0  748  coeff_abs_level_minus1  (ctxBlockCat==9的块)  如UEG0给出的前缀和后缀  其中signedValFlag=0,  uCoff=14  前缀:1  后缀:不可用  前缀:708  后缀:不可用,(使用  旁路解码)  coeff_abs_level_minus1  (ctxBlockCat==13的块)  如UEG0给出的前缀和后缀  其中signedValFlag=0,  uCoff=14  前缀:1  后缀:不可用  前缀:766  后缀:不可用,(使用旁路解  码)  significant_coeff_flag  (ctxBlockCat==9的场编码块)  FL,cMax=1  0  675  significant_coeff_flag  (ctxBlockCat==13的场编码块)  FL,cMax=1  0  733  last_significant_coeff_flag  (ctxBlockCat==9场编码块)  FL,cMax=1  0  699  last_significant_coeff_flag  (ctxBlockCat==13场编码块)  FL,cMax=1  0  757

下面将描述ctxIdx的推导处理。

表5示出了针对语法元素coded_block_flag、significant_coeff_flag、last_significant_coeff_flag和coeff_abs_level_minus1,向ctxBlockCat分配ctxIdxBlockCatOffset,表5如下:。

表5

下面将针对语法元素coded_block_flag描述关于ctxIdxInc的推导处理。该处理的输入是ctxBlockCat,并且按如下方式指附加输入:

-如果ctxBlockCat等于0、6或10,则没有附加输入;

-否则,如果ctxBlockCat等于1或2,则输入luma4x4BlkIdx;

-否则,如果ctxBlockCat等于3,则输入色度分量索引iCbCr;

-否则,如果ctxBlockCat等于4,则输入chroma4x4BlkIdx和色度分量索引iCbCr;

-否则,如果ctxBlockCat等于5,则输入luma8x8BlkIdx;

-否则,如果ctxBlockCat等于7或8,则输入cb4x4BlkIdx;

-否则,如果ctxBlockCat等于9,则输入cb8x8BlkIdx;

-否则,如果ctxBlockCat等于11或12,则输入cr4x4BlkIdx;

-否则(ctxBlockCat等于13)则输入cr8x8BlkIdx;

该处理的输出是ctxIdxInc(ctxBlockCat)。

按如下方式推导变量transBlockN(其中,N为A或B)。

-如果ctxBlockCat等于0、6或10,适用以下内容。

-调用在子条款6.4.10.1中指定的针对邻近宏块的推导处理,并且将输出分配至mbAddrN(其中N为A或B)。

-按如下方式推导变量transBlockN。

-如果mbAddrN是可用的,并在帧内16×16预测模式下对宏块mbAddrN进行编码,则适用如下内容。

-如果ctxBlockCat等于0,则将宏块mbAddrN的亮度DC块分配至transBlockN

-否则,如果ctxBlockCat等于6,则将宏块mbAddrN的Cb DC块分配至transBlockN

-否则(ctxBlockCat等于10),将宏块mbAddrN的Cr DC块分配至transBlockN

-否则,将transBlockN标记为不可用。

-否则,如果ctxBlockCat等于1或2,则适用如下内容。

-以luma4x4BlkIdx作为输入,调用在子条款6.4.10.4中指定的针对邻近4×4亮度块的推导处理,并且将输出分配至mbAddrN,luma4x4BlkIdx(其中,N为A或B)。

-按如下方式推导变量transBlockN。

-如果mbAddrN可用,宏块mbAddrN不具有等于P_Skip、B_Skip或I_PCM的mb_type,对于宏块mbAddrN而言((CodedB lockPatternLuma>>(luma4x4BlkIdxN>>2))&1) 不等于0,并且对于宏块mbAddrN而言transform_size_8x8_flag等于0,将具有宏块mbAddrN的索引luma4x4BlkIdx的4×4亮度块分配至transBlockN。

-否则,如果mbAddrN是可用的,宏块mbAddrN不具有等于P_Skip或B_Skip的mb_type,对于宏块mbAddrN而言((CodedBlockPatternLuma>>(luma4x4BlkIdxN>>2))&1)不等于0,并且对于宏块mbAddrN  而言transform_size_8x8_flag等于1,将具有宏块mbAddrN的索引(luma4x4BlkIdx>>2)的8×8亮度块分配至transBlockN。

-否则,将transBlockN标记为不可用。

-否则,如果ctxBlockCat等于3,则适用以下内容。

-调用在子条款6.4.10.1中指定的针对邻近宏块的推导处理,并且将输出分配至mbAddrN(其中,N为A或B)。

-按如下方式推导变量transBlockN。

-如果mbAddrN可用,宏块mbAddrN不具有等于P_Skip、B_Skip或I_PCM的mb_type,并且对于宏块mbAddrN而言CodedBlockPatternChroma不等于0,将宏块mbAddrN的色度分量iCbCr的色度DC块分配至transBlockN。

-否则,将transBlockN标记为不可用。

-否则,如果ctxBlockCat等于4,则适用以下内容。

-以luma4x4BlkIdx作为输入,调用在子条款6.4.10.5中指定的针对邻近4×4色度块的推导处理,并且将输出分配至mbAddrN,chroma4x4BlkIdx(其中,N为A或B)。

-按如下方式推导变量transBlockN。

-如果mbAddrN可用,宏块mbAddrN不具有等于P_Skip、B_Skip或I_PCM的mb_type,并且对于宏块mbAddrN而言CodedBlockPatternChroma等于2,将具有宏块mbAddrN的色度分量iCbCr的具有chroma4x4BlkIdxN的4×4色度块分配至transBlockN。

-否则,将transBlockN标记为不可用。

-否则,如果ctxBlockCat等于5,则适用以下内容。

-以luma8x8BlkIdx作为输入,调用在子条款6.4.8.2中指定的针对邻近8×8luma块的推导处理,并且将输出分配至mbAddrN,luma8x8BlkIdx(其中,N为A或B)。

-按如下方式推导变量transBlockN。

-如果mbAddrN是可用的,宏块mbAddrN不具有等于P_Skip、B_Skip或I_PCM的mb_type,对于宏块mbAddrN而言((CodedBlockPatternLuma>>luma8x8BlkIdxN>>2)&1)等于0,并且对于宏块mbAddrN而言transform_size_8x8_flag等于1,将宏块mbAddrN的具有索引luma8x8BlkIdx的8×8亮度块分配至transBlockN。

-否则,将transBlockN标记为不可用。

-否则,如果ctxBlockCat等于7或8,则适用以下内容。

-以cb4x4BlkIdx作为输入,调用在子条款6.4.8.4.1中指定的针对邻近4×4Cb块的推导处理,并且将输出分配至mbAddrN,cb4x4BlkIdx(其中,N为A或B)。

-按如下方式推导变量transBlockN。

-如果mbAddrN可用,宏块mbAddrN不具有等于P_Skip、B_Skip或I_PCM的mb_type,对于宏块mbAddrN而言((CodedBlockPatternLuma>>(cb4x4BlkIdxN>>2))&1)不等于0,并且对于宏块mbAddrN而言transform_size_8x8_flag等于0,将宏块mbAddrN的具有索引cb4x4BlkIdx的4×4Cb块分配至transBlockN。

-否则,如果mbAddrN是可用的,宏块mbAddrN不具有等于P_Skip或B_Skip的mb_type,对于宏块mbAddrN而言((CodedBlockPatternLuma>>(cb4x4BlkIdxN>>2))&1)不等于0,并且对于宏块mbAddrN而言transform_size_8x8_flag等于1,将宏块mbAddrN的具有索引(cb4x4BlkIdx>>2)的8×8Cb块分配至transBlockN。

-否则,将transBlockN标记为不可用。

-否则,如果ctxBlockCat等于9,则适用以下内容。

-以cb8x8BlkIdx作为输入,调用在子条款6.4.8.2.1中指定的针对邻近8×8Cb块的推导处理,并且将输出分配至mbAddrN,cb8x8BlkIdx(其中,N为A或B)。

-按如下方式推导变量transBlockN。

-如果mbAddrN是可用的,宏块mbAddrN不具有等于P_Skip、B_Skip或I_PCM的mb_type,对于宏块mbAddrN而言((CodedBlockPatternLuma>>cb8x8BlkIdxN>>2)&1)不等于0,并且对于宏块mbAddrN而言transform_size_8x8_flag等于1,将宏块mbAddrN的具有索引cb8x8BlkIdx的8×8Cb块分配至transBlockN。

-否则,将transBlockN标记为不可用。

-否则,如果ctxBlockCat等于11或12,则适用以下内容。

-以cr4x4BlkIdx作为输入,调用在子条款6.4.8.4.1中指定的针对邻近4×4Cr块的推导处理,并且将输出分配至mbAddrN,cr4x4BlkIdx(其中,N为A或B)。

-按如下方式推导变量transBlockN。

-如果mbAddrN可用,宏块mbAddrN不具有等于P Skip、B_Skip或I_PCM的mb_type,对于宏块mbAddrN而言((CodedBlockPatternLuma>>(cr4x4BlkIdxN>>2))&1)不等于0,并且对于宏块mbAddrN而言transform_size_8x8_flag等于1,将宏块mbAddrN的具有索引cr4x4BlkIdx的4×4Cr块分配至transBlockN。

-否则,如果mbAddrN是可用的,宏块mbAddrN不具有等于P_Skip或B_Skip的mb_type,对于宏块mbAddrN而言((CodedBlockPatternLuma>>(cr4x4BlkIdxN>>2))&1)不等于0,并且对于宏块mbAddrN而言transform_size_8x8_flag等于1,将宏块mbAddrN的具有索引(cr4x4BlkIdx>>2)的8×8Cr块分配至transBlockN。

-否则,将transBlockN标记为不可用。

-否则(ctxBlockCat等于13),适用以下内容。

-以cr8x8BlkIdx作为输入,调用在子条款6.4.8.2.1中指定的针对邻近8×8Cr块的推导处理,并且将输出分配至mbAddrN,cr8x8BlkIdx(其中,N为A或B)。

-按如下方式推导变量transBlockN。

-如果mbAddrN是可用的,宏块mbAddrN不具有等于P_Skip、B_Skip或I_PCM的mb_type,对于宏块mbAddrN而言((CodedBlockPatternLuma>>cr8x8BlkIdxN>>2)&1)不等于0,并且对于宏块mbAddrN而言transform_size_8x8_flag等于1,将宏块mbAddrN的具有索引cr8x8BlkIdx的8×8Cr块分配至transBlockN。

-否则,将transBlockN标记为不可用。

按如下方式推导变量condTermFlagN(其中,N为A或B):

-如果以下条件中任一项为真,则将condTermFlagN设置为0

-mbAddrN不可用,并且以帧间预测模式对当前宏块进行编码

-mbAddrN可用而transBlockN不可用,并且宏块mbAddrN的mb_type不等于I_PCM

-以帧内模式对当前宏块进行编码,constrained_intra_pred_flag等于1,宏块mbAddrN可用并以帧间预测模式进行编码,并且使用像条数据分割(nal_unit_type在2至4的范围内(包括2和4))。

-否则,如果以下条件中任一项为真,则将condTermFlagN设置为1

-mbAddrN不可用,并以帧内预测编码对当前宏块进行编码-宏块mbAddrN的mb_type等于I_PCM

-否则,将condTermFlagN设置为针对宏块mbAddrN进行解码的变换块transBlockN的coded_block_flag的值。

根据以下公式推导变量ctxIdxInc(ctxBlockCat):

ctxIdxInc(ctxBlockCat)=condTermFlagA+2*condTermFlagB(9-13)

转向图3,总体上由附图标记300来指示示例视频编码处理。

编码处理300包括将控制权交予循环边界框312的开始框305。循环边界框312针对图像中的每一块开始进行循环,并将控制权交予功能框315。功能框315形成当前图像块的运动补偿或空间预测,并将控制权交予功能框320。功能框320将运动补偿或空间预测从当前图像块中减去以形成预测残差,并将控制权交予功能框330。功能框330对预测残差进行变换和量化,并将控制权交予功能框335。功能框335对预测残差进行逆变换和量化,以形成经编码的预测残差,并将控制权交予功能框345。功能框345将经编码的残差与预测相加,以形成经编码的画面块,并将控制权交予循环结束框350。循环结束框350结束循环并将控制权交予功能框355。功能框355以针对于对至少该图像进行编码得到的结果比特流而言带内或带外的方式,发送语法元素,以在8×8块可应用时(即,当这样的块确实存在于比特流中时)指示8×8块的存在,并将控制权交予结束框399。例如,可以发送该语法元素以允许解码器选择性地禁止对所指示的块应用CABAC和/或CAVLC。

转向图4,总体上由附图标记400来指示示例视频解码处理。

解码处理400包括将控制权交予功能框407的开始框405。功能框407以针对比特流而言带内或带外的方式接收语法元素,所述语法元素在8×8块可应用时(即当这样的块确实存在于比特流中时)指示8×8块的存在,并将控制权交予循环边界框410。例如,可以接收语法元素,以允许选择性地禁止对在解码期间所指示的块应用CABAC和/或CAVLC。循环边界框410针对来自比特流的图像中的当前块开始进行循环,并将控制权交予功能框415。功能框415对经编码的残差进行熵解码,并将控制权交予功能框420。功能框420对经解码的残差进行反变换和量化以形成编码后的残差,并将控制权交予功能框430。功能框430将编码后的残差与预测相加以形成经编码的画面块,并将控制权交予循环边界框435。循环边界框435结束循环并将控制权交予结束框499。

转向图5,总体上由附图标记500来指示示例视频编码处理。

编码处理500包括将控制权交予功能框510的开始框505。功能框510执行初始化,所述初始化包括选择用于coded_block_pattern语法元素的映射处理中的针对单色色度阵列类型的表格,并将控制权交予循环边界框512。循环边界框512针对图像中的每一块开始进行循环,并将控制权交予功能框515。功能框515形成当前图像块的运动补偿或空间预测,并将控制权交予功能框520。功能框520从当前图像块中减去运动补偿或空间预测,以形成预测残差,并将控制权交予功能框530。功能框530对预测残差进行变换和量化,并将控制权交予功能框535。功能框535对预测残差进行逆变换和量化以形成经编码的预测残差,并将控制权交予功能框545。功能框545将经编码的残差与预测相加以形成经编码的画面块,并将控制权交予循环结束框550。循环结束框550结束循环并将控制权交予功能框555。功能框555以针对于对至少该图像进行编码得到的结果比特流而言带内或带外的方式,发送coded_block_pattern语法元素,并将控制权交予结束框599。

转向图6,总体上由附图标记600来指示示例视频解码处理。

解码处理600包括将控制权交予功能框607的开始框605。功能框607以针对比特流而言带内或带外的方式接收coded_block_pattern语法元素(先前使用单色色度阵列类型进行了映射),并将控制权交予循环边界框610。循环边界框610针对来自比特流的图像中的当前块开始进行循环,并将控制权交予功能框615。功能框615对经编码的残差进行熵解码,并将控制权交予功能框620。功能框620对经解码的残差进行逆变换和量化以形成经编码的残差,并将控制权交予功能框630。功能框630将经编码的残差与预测相加以形成经编码的图像块,并将控制权交予循环边界框635。循环边界框635结束循环并将控制权交予结束框699。

为了简要和清楚起见,应当理解的是,图3-6可能未示出在分别对图像块进行编码和解码时涉及的所有步骤。

下面将对本发明的某些附属优势/特征予以描述,其中某些优势/特征已在上文有所提及。例如,一个优点/特征是一种包括编码器的装置,所述编码器用于根据编码简档将图像数据编码成结果比特流,所述编码简档对图像数据的采样进行编码,使所述采样包括两个色度阵列和亮度阵列。两个色度阵列分别具有与亮度阵列相同的高度和相同的宽度。所述编码器使用语法元素指示至少一个8×8块在结果比特流中的存在。

另一优点/特征是如上所述的具有编码器的装置,其中,语法元素关于上下文自适应二进制算术编码(CABAC)指示至少一个8×8块的存在。

又一优点/特征是如上所述的具有编码器的装置,其中,语法元素指示至少一个8×8块的存在,以允许通过解码器选择性地禁止对至少一个8×8块应用上下文自适应二进制算术编码(CABAC)。

又一优点/特征是如上所述的具有编码器的装置,其中,所述编码简档是国际标准化组织/国际电工委员会(ISO/IEC)运动画面专家组-4(MPEG-4)第10部分高级视频编码(AVC)标准/国际电信联盟电信标准化部门(ITU-T)H.264建议的高4:4:4简档。

此外,另一优点/特征是如上所述的具有编码器的装置,其中,所述编码简档是高4:4:4帧内简档、CAVLC 4:4:4帧内简档和高4:4:4预测简档中的任一项。

此外,另一优点/特征是如上所述的具有编码器的装置,其中,语法元素是先前未使用过的。

同样,另一优点/特征是如上所述的具有编码器的装置,其中,语法元素是高层语法元素。

此外,另一优点/特征是如上所述的具有编码器的装置,其中,将高层语法元素置于像条头层、补充增强信息(SEI)层、画面参数集层、序列参数集层和网络抽象层单元头层中的至少一层处。

此外,另一优点/特征是如上所述的具有编码器的装置,其中,以针对于结果比特流而言带内或带外的方式,来发送语法元素。

此外,另一优点/特征是如上所述的具有编码器的装置,所述编码器用于根据编码简档将图像数据编码成结果比特流,所述编码简档对图像数据的采样进行编码,使所述采样包括两个色度阵列和亮度阵列。两个色度阵列分别具有与亮度阵列相同的高度和相同的宽度。所述编码器使用上下文自适应可变长度编码(CAVLC)对图像数据进行编码,并使用单色色度阵列类型对编码块模式语法元素执行映射处理。

根据此处的说明,所属领域技术人员易于弄清本发明原理的上述和其他特征以及优势。应当理解的是,可以硬件、软件、固件、专用处理器或其组合的各种形式实现本发明原理的教义。

优选情况下,用硬件和软件的组合实现本发明原理的教义。此外,可以用确实包含于程序存储单元中的应用程序实现软件。应用程序可装载于具有任意适当架构的机器,并由后者予以执行。优选情况下,在具有诸如一个以上的中央处理单元(“CPU”)、随机存取存储器(“RAM”)以及输入/输入(“I/O”)接口等硬件的计算机平台上实现所述机器。计算机平台还可以包含操作系统以及微指令代码。此处说明的各种处理以及函数可以是用CPU执行的、微指令代码的一部分或者应用程序的一部分或者其任意组合的一部分。此外,可以将诸如附加数据存储单元和打印单元等各种其他外围设备连接至计算机平台。

还应当理解的是,由于附图中所描绘的某些构成系统组件以及方法在优选情况下是用软件来实现的,因而系统组件或处理函数方框间的实际连接根据本发明原理的编程方式可能会有所不同。给定此处的说明,所属领域技术人员将能够构想出本发明原理的上述以及类似的实现或者配置。

虽然参考附图对说明性实施例进行了描述,然而应当理解的是,本发明原理不局限于这些具体的实施例,所属领域技术人员可以在不背离本发明原理范围或精神的前提下进行各种改进以及修改。正如附属权利要求所阐释的那样,意图将所有此类修改以及改进包含于本发明原理的范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号