具体实施方式
语法元素的群组内的预测性语法元素(例如,可指示一或多个预测单元的帧内预测模式的语法元素)可经规则上下文自适应性二进制算术译码(CABAC)译码或经旁路译码。这些预测性语法元素由CABAC译码器接收的次序可影响熵译码语法元素的群组所需的处理循环的总数。此可归因于在译码旁路译码与CABAC译码之间的转变时重新启动CABAC译码引擎所需的设置额外耗用。在本发明中所描述的技术中,这些语法元素可以使得熵译码语法元素的群组所需的处理循环的总数得以减少的方式来布置。
例如,在一些其它技术中,对于帧内预测来说,视频编码器用信号发送指定亮度样本的帧内预测模式的语法元素且用信号发送色度样本的语法元素。亮度样本的语法元素中的一些和色度样本的语法元素中的一些经CABAC译码,且亮度样本和色度样本的其它语法元素经旁路译码。在一些状况下,经CABAC译码和经旁路译码的语法元素交错,从而因为管线额外耗用而导致次最佳熵译码输送量。
例如,旁路模式通常具有远高于CABAC模式的输送量。作为一个实例,旁路模式可在一个循环中处理6个二进制位,相比每循环处理1个二进制位的旁路模式,不会添加显著复杂性,而CABAC模式每循环可仅处理2个二进制位,其设计比每循环处理1个二进制位的CABAC模式复杂得多。这是归因于CABAC模式中上下文切换的性质。
为了增加熵译码输送量,将经CABAC译码的语法元素分群在一起且将经旁路译码的语法元素分群在一起可为有益的。作为一个实例,经CABAC译码的语法元素与经旁路译码的语法元素不交错在一起。如更详细描述,本发明中所描述的技术提供将经CABAC译码的语法元素分群在一起且将经旁路译码的语法元素分群在一起的各种实例技术,此分群具有增加熵译码输送量的可能性。
作为一个实例,视频编码器在经译码位流中将亮度帧内模式和色度帧内模式的所有经CABAC译码的二进制位一起以及将亮度帧内模式和色度帧内模式的所有经旁路译码的二进制位一起编码和用信号发送,且视频解码器从所述经译码位流将亮度帧内模式和色度帧内模式的所有经CABAC译码的二进制位一起以及将亮度帧内模式和色度帧内模式的所有经旁路译码的二进制位一起接收和解码。作为另一实例,视频编码器在经译码位流中将译码单元中的所有块的帧内模式的所有经CABAC译码的二进制位以及帧内模式的所有经旁路译码的二进制位一起编码和用信号发送,且视频解码器从所述经译码位流将译码单元中的所有块的帧内模式的所有经CABAC译码的二进制位以及帧内模式的所有经旁路译码的二进制位一起接收和解码。作为另一实例,视频编码器在经译码位流中将译码单元中的所有块的亮度帧内模式和色度帧内模式两者的所有经CABAC译码的二进制位以及亮度帧内模式和色度帧内模式的所有经旁路译码的二进制位一起编码和用信号发送,且视频解码器从所述经译码位流将译码单元中的所有块的亮度帧内模式和色度帧内模式两者的所有经CABAC译码的二进制位以及亮度帧内模式和色度帧内模式的所有经旁路译码的二进制位一起接收和解码。在一些状况下,将需要一些额外存储器来为视频解码器存储部分经解码语法。
数字视频装置实施视频压缩技术以更有效率地编码和解码数字视频信息。可根据视频译码标准来定义视频压缩技术。HEVC标准化努力是基于被称作HEVC测试模型(HM)的视频译码装置的模型。HM假设当前视频译码装置相对于在其它先前视频译码标准(例如,ITU-T H.264/AVC)的开发期间可用的视频译码装置具有能力改进。例如,H.264提供九个帧内预测编码模式,而HEVC提供多达三十五个帧内预测编码模式。HEVC的被称作“HEVC工作草案6”或“WD6”的新近工作草案(WD)描述于文件布罗斯(Bross)等人的JCTVC-H1003(“WD6:高效率视频译码(HEVC)的工作草案6(WD6:Working Draft 6 of High-Efficiency Video Coding(HEVC))”,ITU-T SG16 WP3和ISO/IEC JTC1/SC29/WG11的视频译码联合合作小组(JCT-VC),第八次会议:圣何塞(美国加利福尼亚),2011年2月)中。
另外,HEVC的另一新近工作草案(工作草案8)描述于文件布罗斯等人的HCTVC-J1003_d7(“高效率视频译码(HEVC)文本规范草案8(High Efficiency Video Coding(HEVC)Text Specification Draft 8)”,ITU-T SG16 WP3和ISO/IEC JTC1/SC29/WG11的视频译码联合合作小组(JCT-VC),第10次会议:瑞典斯德哥尔摩,2012年7月)中。HEVC的更新近工作草案(工作草案9)从2013年3月6日起可从http://phenix.int-evry.fr/jct/doc_end_user/documents/11_Shanghai/wg11/JCTVC-K1003-v10.zip.获得。所述HEVC标准也可被称作ISO/IEC 23008-HEVC,其希望为HEVC的交付版本的标准编号。尽管本发明的技术涉及ITU-T H.264标准和HEVC标准进行描述,但本发明的技术大体上适用于任何视频译码标准。
视频序列通常包含一系列视频帧(也称作图片)。图片群组(GOP)大体上包括一系列一或多个视频帧。GOP可在GOP的标头、GOP的一或多个帧的标头中或在别处包含语法数据,所述语法数据描述包含于GOP中的数个帧。每一帧可包含描述相应帧的编码模式的帧语法数据。每一视频帧可包含多个切片。每一切片可包含多个视频块。视频编码器通常对个别视频帧内的视频块操作,以便编码视频数据。视频块可具有固定或变化的大小,且可根据指定译码标准而在大小方面不同。
作为实例,ITU-T H.264标准支持各种块大小(例如,针对亮度分量的16×16、8×8或4×4,和针对色度分量的8×8)的帧内预测,以及各种块大小(例如,针对亮度分量的16×16、16×8、8×16、8×8、8×4、4×8和4×4,和针对色度分量的对应按比例调整大小)的帧间预测。在本发明中,“N×N”与“N乘N”可互换地用以指依据垂直维度和水平维度的块的像素尺寸,例如,16×16个像素或16乘16个像素。一般来说,16×16块将在垂直方向上具有16个像素(y=16),且在水平方向上具有16个像素(x=16)。像素也可被称作样本。同样地,N×N块一般在垂直方向上具有N个像素,且在水平方向上具有N个像素,其中N表示非负整数值。可按行和列来布置块中的像素。此外,块无需在水平方向上与垂直方向上具有相同数目个像素。例如,块可包括N×M个像素,其中M未必等于N。
视频块可包括在像素域中的像素数据的块,或在变换域中的变换系数的块。变换系数可在将变换应用于表示经译码视频块与预测性视频块之间的像素差的残余视频块数据之后产生,所述变换例如离散余弦变换(DCT)、整数变换、小波变换或概念上类似的变换。在一些状况下,视频块可包括在变换域中的经量化变换系数的块。
较小视频块可提供较好分辨率,且可用于包含高精细等级的视频帧的位置。一般来说,可将块和各种分割区(有时被称作子块)视为视频块。另外,可将切片视为多个视频块,例如块和/或子块。每一切片可为视频帧的可独立解码单元。替代地,帧自身可为可解码单元,或帧的其它部分可定义为可解码单元。术语“经译码单元”可指视频帧的任何独立可解码单元,例如,整个帧、帧的切片、也被称作序列的图片群组(GOP),或根据适用译码技术而定义的另一独立可解码单元。
在进行帧内预测性或帧间预测性译码以产生预测性数据和残余数据之后,且在进行任何变换(例如,在H.264/AVC中使用的4×4或8×8整数变换,或离散余弦变换DCT)以产生变换系数之后,可执行变换系数的量化。量化一般指将变换系数量化以可能地减少用以表示所述系数的数据量的过程。量化过程可减小与所述系数中的一些或全部相关联的位深度。例如,可在量化期间将n位值降值舍位到m位值,其中n大于m。
在量化之后,可(例如)根据内容自适应性可变长度译码(CAVLC)、上下文自适应性二进制算术译码(CABAC)、概率区间分割熵译码(PIPE)或另一熵译码方法来执行经量化数据的熵译码。也可执行语法元素(例如,定义预测模式的语法元素)的熵译码。经配置以用于熵译码的处理单元或另一处理单元可执行其它处理功能,例如经量化系数的零延行长度译码,和/或语法信息(例如,经译码块型样(CBP)值、宏块类型、译码模式、经译码单元(例如,帧、切片、宏块或序列)的最大宏块大小或类似者)的产生。
HEVC将视频数据的块称作译码单元(CU)。一般来说,本发明的技术与变换、量化、扫描和熵编码CU的数据有关。CU可包含一或多个预测单元(PU)和/或一或多个变换单元(TU)。PU也可被称作“预测分割区”。位流内的语法数据可定义最大译码单元(LCU),其为根据像素的数目来说的最大译码单元。一般来说,LCU具有类似于H.264的宏块的目的。然而,LCU未必限于特定大小且可包含一或多个CU。LCU通常包含64×64个像素。LCU内的CU通常包含32×32、16×16或8×8个像素。因此,LCU可分裂为子CU,且每一子CU可进一步分裂为子CU。CU中的每一像素可包含亮度(Y)分量、色度U(U)分量和色度V(V)分量。在一些实例中,色度分量可被称作Cr和Cb分量。一般来说,本发明中对CU的参考可指图片的最大译码单元(LCU)或LCU的子CU。用于位流的语法数据可定义可分裂LCU的最大次数,所述最大次数被称作CU深度。因此,语法数据也可定义最小译码单元(SCU)。本发明也使用术语“块”来指CU、PU或TU中的任一者。
LCU可与四分树数据结构相关联。一般来说,四分树数据结构针对每一CU包含一个节点,其中根节点对应于LCU。如果将CU分裂成四个子CU,那么对应于所述CU的节点包含四个叶节点,所述四个叶节点中的每一者对应于所述子CU中的一者。所述四分树数据结构的每一节点可提供用于对应CU的语法数据。例如,四分树中的节点可包含分裂旗标,从而指示是否将对应于所述节点的CU分裂成子CU。可递回地定义CU的语法元素,且CU的语法元素可取决于CU是否分裂成子CU。如果CU未进一步分裂,那么其被称作叶CU。在本发明中,尽管不存在原始叶CU的显式分裂,但叶CU的四个子CU也将被称作叶CU。例如,如果16×16大小的CU不进一步分裂,那么尽管所述16×16 CU从未分裂,但四个8×8子CU也将被称作叶CU。
此外,叶CU的TU也可与相应四分树数据结构相关联。即,叶CU可包含指示如何将叶CU分割成TU的四分树。本发明将指示LCU如何分割的四分树称作CU四分树,且将指示叶CU如何分割成TU的四分树称作TU四分树。TU四分树的根节点大体上对应于叶CU,而CU四分树的根节点大体上对应于LCU。未分裂的TU四分树的TU被称作叶TU。
叶CU可包含一或多个预测单元(PU)。一般来说,PU表示对应CU的全部或一部分,且可包含用于检索PU的参考样本的数据。例如,当PU经帧间模式编码时,PU可包含定义PU的运动向量的数据。定义运动向量的数据可描述(例如)运动向量的水平分量、运动向量的垂直分量、运动向量的分辨率(例如,四分之一像素精度或八分之一像素精度)、针对运动向量识别参考图片列表(例如,列表0或列表1)的预测方向,和/或指示运动向量所指向的参考图片列表内的参考帧的参考图片索引值。以类似方式,当CU是以帧内预测模式译码时,PU可包含定义帧内预测模式(例如,角预测、DC预测或平面预测......等)的数据。
用于定义PU的叶CU的数据也可描述(例如)CU到一或多个PU的分割。CU到一或多个PU的分割可被称作分割模式。可用于CU的分割模式可取决于CU未译码、经帧内预测模式编码或经帧间预测模式编码而不同。对于帧内译码,可与下文所描述的叶变换单元相同地对待PU。
叶CU可包含一或多个变换单元(TU)。一般来说,除非另外指出,否则本发明分别使用术语CU和TU来指叶CU和叶TU。如以上所论述,可使用TU四分树结构来指定变换单元。即,分裂旗标可指示叶CU是否分裂为四个变换单元。接着,可将每一变换单元进一步分裂成四个子TU。当TU不进一步分裂时,其可被称作叶TU。一般来说,分裂旗标可指示叶TU分裂成正方形TU。为了指示TU分裂成非正方形TU,可包含其它语法数据,例如,指示TU待根据NSQT进行分割的语法数据。
一般来说,对于帧内译码,属于叶CU的所有叶TU可共享相同帧内预测模式。即,可应用相同帧内预测模式以计算叶CU的所有TU的预测值。对于帧内译码,视频编码器可使用帧内预测模式将每一叶TU的残余值计算为对应于TU的预测值的部分与原始块之间的差。如以上所描述,可变换、量化和扫描所述残余值。对于帧间译码,视频编码器可在PU层级执行预测,且可计算每一PU的残余。可变换、量化和扫描对应于叶CU的残余值。对于帧间译码,叶TU可大于或小于PU。对于帧内译码,PU可与对应叶TU共置。在一些实例中,叶TU的最大大小可为对应叶CU的大小。
在HEVC中,由PU结构确定用以产生CU的预测性块的帧内预测模式的数目。INTRA_2N×2N的PU结构指示CU仅包含一个PU。INTRA_N×N的PU结构指示CU包含四个PU。另外,CU内的每一PU可具有一个亮度帧内预测模式,且CU内的PU可共享一个色度预测模式。例如,具有INTRA_2N×2N PU结构的CU可具有一个亮度帧内预测模式和一个色度帧内预测模式。另外,具有INTRA_N×N PU结构的CU可具有四个亮度帧内预测模式(即,每一PU一个亮度帧内预测模式)和针对整个CU的一个色度帧内预测模式(即,四个PU共享一色度预测模式)。可产生语法元素来用信号发送帧内预测模式。
图1为说明预测单元结构和相关联的帧内预测译码模式的实例的概念图。如图1中所说明,INTRA_2N×2N预测单元(PU)结构仅包含一个PU,且INTRA_N×N PU结构包含四个PU。如图1中所说明,INTRA_N×N PU结构为对称的且包含具有相等大小的四个正方形PU。如以上所描述,图1中所说明的四个PU中的每一者可具有亮度帧内预测且共享色度帧内预测。应注意,HEVC定义供帧间模式预测使用的其它PU结构。这些PU中的一些为不对称的和/或包含矩形PU。尽管关于INTRA_2N×2N PU和INTRA_N×N PU结构来描述本发明的技术,但所述技术大体上适用于可供帧内预测模式使用的额外PU结构。例如,本发明的技术可适用于具有四个矩形PU的PU结构与帧内预测译码模式相关联的状况。
如以上所描述,当使用帧内预测模式来译码CU时,可使用语法元素来用信号发送帧内预测模式。在一些实例中,使用三个语法元素来用信号发送PU的亮度帧内预测模式,且使用一个语法元素来用信号发送色度帧内预测模式。所述语法元素以粗体展示于表1中。
prev_intra_luma_pred_flag[x0][y0] |
if(prev_intra_luma_pred_flag[x0][y0]) |
mpm_idx[x0][y0] |
Else |
rem_intra_luma_pred_mode[x0][y0] |
intra_chroma_pred_mode[x0][y0] |
表1
语法元素prev_intra_luma_pred_flag[x0][y0]、mpm_idx[x0][y0]和rem_intra_luma_pred_mode[x0][y0]指定亮度样本的帧内预测模式。阵列索引x0、y0指定预测块的左上方亮度样本相对于图片的左上方亮度样本的位置。语法元素prev_intra_luma_pred_flag[x0][y0]指示真或假条件且可具有值1或0。在一个实例中,当prev_intra_luma_pred_flag[x0][y0]等于1时,从相邻经帧内预测PU推断当前PU的帧内预测模式。
例如,如表1中所指示,如果prev_intra_luma_pred_flag[x0][y0]等于1,那么视频编码器在经编码位流中用信号发送mpm_idx[x0][y0]语法元素,且视频解码器从所述经编码位流接收mpm_idx[x0][y0]语法元素。mpm_idx[x0][y0]为到最可能模式(mpm)的列表的索引。例如,视频编码器和视频解码器可各自经配置以构建最可能模式的列表。最可能模式的列表识别帧内预测模式。
视频解码器可隐含地构建最可能模式的列表(即,不从视频编码器接收指示哪些帧内预测模式将包含于最可能模式的列表中的发信号),或可基于来自视频编码器的所接收发信号来构建最可能模式的列表。在任一实例中,在视频编码器侧的最可能模式的列表和在视频解码器侧的最可能模式的列表可识别相同帧内预测模式,且呈相同次序。在一些实例中,视频编码器和视频解码器可针对CU的每一经帧内预测PU构建最可能模式的列表,且CU的两个或两个以上PU的最可能模式的列表可不同(即,可存在CU的PU的最可能模式的相应列表)。然而,本发明中所描述的技术并不限于此。
可存在视频编码器和视频解码器可构建最可能模式的列表的各种方式。作为一个实例,视频编码器和视频解码器经配置以识别最可能模式的列表中的固定数目个帧内预测模式(即,识别三个帧内预测模式)。视频编码器和视频解码器评估与当前PU(例如,正经帧内预测的PU)相邻的第一相邻PU和与所述当前PU相邻的第二相邻PU的帧内预测模式。第一相邻PU和第二相邻PU的实例包含左方、左上方、右方、底部和大体上任何相邻的PU。
视频编码器和视频解码器将第一相邻PU和第二相邻PU的帧内预测模式包含于最可能模式的列表中。如果第一相邻PU和第二相邻PU中的一者或两者未经帧内预测,那么作为一个实例,视频编码器和视频解码器可识别最可能模式的列表中的处于最可能模式的列表内第一相邻PU和第二相邻PU的对应位置中的DC帧内预测模式。
为了确定帧内预测模式的列表中的第三帧内预测模式,视频编码器和视频解码器可确定第一相邻PU和第二相邻PU的帧内预测模式是否相同(包含在未经帧内预测时是否选择DC帧内预测模式)。如果第一相邻PU和第二相邻PU的帧内预测模式相同,那么视频编码器和视频解码器可实施第一技术以识别帧内预测模式的列表中的第三帧内预测模式。在一些实例中,如果第一相邻PU和第二相邻PU的帧内预测模式相同,那么视频编码器和视频解码器可识别最可能模式的列表中的帧内预测模式中的一者,且使用第一技术(或替代第一技术,使用另一技术)来识别最可能模式的列表中的第二帧内预测模式和第三帧内预测模式。如果第一相邻PU和第二相邻PU的帧内预测模式不同,那么视频编码器和视频解码器可实施第二技术以识别第三帧内预测模式。
可存在用于识别第三帧内预测模式的第一技术和第二技术的各种实例,且本发明中所描述的技术并不限于任何一种特定技术。在一些实例中,基于第一技术或第二技术的第三帧内预测模式未必需要为相邻PU的帧内预测模式。在一些实例中,基于第一技术或第二技术的第三帧内预测模式可基于相邻PU的帧内预测模式。
mpm_idx[x0][y0]为到视频编码器用信号发送且视频解码器接收的最可能模式的列表的索引。在此实例中,从mpm_idx[x0][y0]值,视频解码器可经配置以确定当前PU的帧内预测模式。在一些实例中,因为最可能模式的列表是基于相邻PU(例如,第一相邻PU和第二相邻PU)的帧内预测模式,所以在一些状况下,mpm_idx[x0][y0]语法元素可用以识别待用于推断当前PU的帧内预测模式的特定相邻PU。例如,作为一个实例,如果mpm_idx[x0][y0]为识别与第一相邻PU相关联的帧内预测模式的到最可能模式的列表的索引,那么视频解码器可被视为将第一相邻PU识别为供推断当前PU的帧内预测模式的PU。
例如,参看图1,对于INTRA_N×N实例,PU1的帧内预测模式可等于PU0的帧内预测模式。语法元素mpm_idx[x0][y0]可指示相邻经帧内预测PU的集合内的哪一相邻PU可供当前PU推断帧内预测模式。在此实例中,如果prev_intra_luma_pred_flag[x0][y0]等于0,那么帧内预测模式不从相邻PU推断,而由语法元素rem_intra_luma_pred_mode[x0][y0]指示。
rem_intra_luma_pred_mode[x0][y0]语法元素可指定当前PU的特定帧内预测模式。在一些实例中,rem_intra_luma_pred_mode[x0][y0]语法元素可指定当前PU的帧内预测模式不包含在由最可能模式的列表所识别的帧内预测模式中。例如,当在最可能模式的列表中所识别的帧内预测模式被排除时,rem_intra_luma_pred_mode[x0][y0]语法元素从所有可能的帧内预测模式识别剩余帧内预测模式。然而,本发明中的技术并不限于此。
语法元素intra_chroma_pred_mode[x0][y0]指定CU的色度样本的帧内预测模式。色度帧内预测可基于亮度帧内预测模式。语法元素chroma_pred_from_luma_enabled_flag可指示色度的帧内预测模式是否基于亮度的帧内预测模式。
在HEVC WD6中,可能的帧内预测模式包含平面预测模式(predMode=0)、DC预测(predMode=1)、33个角预测模式(predMode=2、......、34),和从亮度预测模式推断帧内预测模式的色度分量的预测模式(predMode=35)。因此,对于亮度分量,取决于prev_intra_luma_pred_flag的值,mpm_idx语法元素可指示到最可能模式的列表的索引,其中最可能模式的列表中的每一条目识别35个可能的帧内预测模式中的一者,或rem_intra_luma_pred_mode可指示35个可能的帧内预测模式中的一者(在一些实例中,排除在最可能模式的列表中所识别的彼等帧内预测模式)。在一个实例中,语法元素rem_intra_luma_pred_mode可具有整数值0到31并可使用固定长度二进制位译码方法来译码,且语法元素mpm_idx可具有整数值0到2(例如,用以识别最可能模式的列表中的三个条目中的一者)并可使用截断一元译码方法来译码。另外,对于色度分量,intra_chroma_pred_mode和一或多个其它语法元素可指示36个可能的帧内预测模式中的一者。在一个实例中,语法元素intra_chroma_pred_mode可具有为整数值0到5。在HEVC WD6中提供语法元素mpm_idx、rem_intra_luma_pred_mode和intra_chroma_pred_mode中的每一者如何识别特定帧内预测模式的更详细描述,且为简明起见,在本文中重复。然而,应注意,本文中所描述的技术可大体上应用于语法元素mpm_idx、rem_intra_luma_pred_mode和intra_ehroma_pred_mode的预期变化。
如以上所描述,视频译码标准可根据CABAC技术来熵译码语法元素。为了将CABAC译码应用于语法元素,视频译码器可对语法元素执行二进制化。二进制化指将语法值转换为一系列一或多个位的过程。这些位可被称作“二进制位”。二进制化为无损过程且可包含以下译码技术中的一者或组合:固定长度译码、一元译码、截断一元译码、截断莱斯(Rice)译码、哥伦布(Golomb)译码、指数哥伦布译码和哥伦布-莱斯译码。例如,二进制化可包含使用8位固定长度技术将整数值5表示为00000101或使用一元译码技术表示为11110。
在二进制化之后,视频译码器可识别译码上下文。译码上下文可识别译码具有特定值的二进制位的概率。例如,译码上下文可指示译码0值二进制位的概率为0.7和译码值1二进制位的概率为0.3。在识别译码上下文之后,视频译码器可基于所述上下文以算术方式译码彼二进制位。使用规则CABAC译码来译码的二进制位可被称作“CABAC二进制位”。
另外,并不对所有语法元素二进制位执行规则CABAC编码,视频译码器可使用旁路CABAC译码来译码一些语法元素。旁路译码指在不使用自适应性上下文的情况下以算术方式编码二进制位的过程。即,旁路译码引擎不选择上下文且可假设两个符号(0和1)的概率为0.5。尽管旁路译码可不如CABAC译码般有频宽效率,但相比对二进制位执行规则CABAC译码,对二进制位执行旁路译码在计算上可为成本较低的。另外,执行旁路译码可实现较高程度的平行化和输送量。使用旁路译码来译码的二进制位可被称作“旁路二进制位”。
当实施CABAC译码器时,所述译码器可包含执行规则CABAC译码的规则译码引擎和执行旁路译码的旁路译码引擎。如果二进制位经CABAC译码,那么使用规则CABAC编码引擎来译码此二进制位。规则CABAC编码引擎可需要两个以上处理循环来译码单一二进制位。然而,通过适当管线设计,规则CABAC编码引擎可仅需要n+M个循环来编码n个二进制位,其中M为用以启动管线的额外耗用。M通常大于0。
在CABAC译码过程开始时(即,从旁路模式到规则模式的每一切换),引入管线额外耗用。如果二进制位经旁路译码,那么使用规则旁路编码引擎来译码此二进制位。可预期旁路译码引擎仅需要一个循环来译码n位语法元素,其中n可大于一。因此,如果一起译码旁路二进制位和CABAC二进制位的集合内的所有旁路二进制位且一起译码所述集合内的所有CABAC二进制位,那么可减少用以译码所述集合的循环的总数。特定来说,在转变到CABAC译码之前或之后一起译码旁路二进制位可节省重新启动CABAC译码引擎所需的额外耗用。
如以上所描述,具有INTRA_N×N PU结构的CU可具有四个亮度帧内预测模式且因此具有语法元素prev_intra_luma_pred_flag、mpm_idx和rem_intra_luma_pred_mode的四个集合。在一个实例中,在这些三个语法元素当中,仅prev_intra_luma_pred_flag经CABAC译码且mpm_idx和rem_intra_luma_pred_mode两者经旁路译码。此外,旁路译码可指通过非CABAC过程(即,在CABAC引擎外)对二进制位的译码。可用于旁路译码中的非CABAC译码的实例包含哥伦布译码、指数哥伦布译码和哥伦布-莱斯译码。
如以上所描述,具有INTRA_N×N PU结构的CU可具有用于所有四个PU的一个色度帧内预测模式。色度帧内预测模式可基于亮度帧内预测模式。作为一个实例,表2展示语法元素intra_chroma_pred_mode的二进制化。二进制化导致一或多个二进制位表示intra_chroma_pred_mode的对应值。在此实例中,加底线的二进制位经CABAC译码且剩余二进制位经旁路译码。如表2中所说明,intra_chroma_pred_mode的二进制化和特定二进制位经CABAC译码或经旁路译码是基于chroma_pred_from_luma_enable_flag的值。因此,语法元素的二进制化和特定二进制位经CABAC译码或经旁路译码可基于另一语法元素(例如,chroma_pred_from_luma_enable_flag)的值。
表2:取决于chroma_pred_from_luma_enabled_flag的intra_chroma_pred_mode的二进制化
以下表3和表4表示在一些实例中用于识别CU的亮度预测模式和色度预测模式的语法元素的译码结构。表3说明INTRA_2N×2N PU结构的语法元素的译码且表4说明INTRA_N×N PU结构的译码。在表3和表4中,将语法元素intra_chroma_pred_mode表示为语法元素chroma_mode_cabac_bins和chroma_mode_bypass_bins,其中如表2中所提供,chroma_mode_cabac_bins表示经CABAC译码的二进制位且chroma_mode_bypass_bins表示经旁路译码的二进制位。表3和表4识别正使用CABAC模式或旁路模式来译码语法元素。语法元素被输出到CABAC译码引擎,且通常以其在表3和表4中所呈现的次序来熵译码。另外,如表4中所说明,存在prev_intra_luma_pred_flag、mpm_idx和rem_intra_luma_pred_mode的四个集合(每一者对应于四个PU中的一者)和由所有四个PU共享的一个色度模式指示。
表3:intra_2N×2N的帧内模式译码结构
表4:intra_N×N的帧内模式译码结构
如表3和表4中所说明,经CABAC译码的语法元素与经旁路译码的语法元素交错(如以上所描述)可(例如)归因于重新启动CABAC译码引擎的设置额外耗用而增加熵编码表3和表4中的所有语法元素所需的循环的总数。如表4中所说明,如果CU含有多个PU,那么所述问题为复合的。为了减少总管线额外耗用和编码识别帧内预测模式的语法元素所需的循环的总数,可根据本发明进行对译码次序的某些调整。
图2为说明可利用根据本发明的技术的实例视频编码和解码系统10的框图。如图2中所展示,系统10包含用信号发送经编码视频数据的源装置12。在一些实例中,源装置12可经由通信信道16将经编码视频数据用信号发送到目的地装置14。源装置12和目的地装置14可包括广泛范围的装置中的任一者。在一些状况下,源装置12和目的地装置14可包括无线通信装置,例如无线手机、所谓的蜂窝式或卫星无线电电话,或可通过通信信道16传达视频信息的任何无线装置,在此状况下,通信信道16为无线的。然而,本发明的技术未必限于无线应用或设定。例如,这些技术可应用于空中电视广播、有线电视传输、卫星电视传输、因特网视频传输、经编码到存储媒体上的经编码数字视频,或其它情境。因此,通信信道16可包括适合于传输或存储经编码视频数据以供目的地装置14稍后检索的无线、有线或存储媒体的任何组合。
在图2的实例中,源装置12包含视频源18、视频编码器20、调制器/解调制器(调制解调器)22和发射器24。目的地装置14包含接收器26、调制解调器28、视频解码器30和显示装置32。根据本发明,源装置12的视频编码器20可经配置以应用用于以减少管线额外耗用的方式来熵编码的技术。在其它实例中,源装置和目的地装置可包含其它组件或布置。例如,源装置12可从外部视频源18(例如,外部摄影机)接收视频数据。同样地,目的地装置14可与外部显示装置介接,而非包含集成式显示装置。
图2的所说明系统10仅为一个实例。可由任何数字视频编码和/或解码装置执行用于以减少管线额外耗用的方式熵编码旗标的集合和每一旗标的相应语法元素的技术。虽然大体上由视频译码装置来执行本发明的技术,但也可由视频编码器/解码器(通常称作“CODEC”)执行所述技术。此外,也可通过视频预处理器来执行本发明的技术。源装置12和目的地装置14仅为这些译码装置的实例,在所述译码装置中,源装置12产生用于发射到目的地装置14的经译码视频数据。在一些实例中,装置12、14可以实质上对称的方式进行操作,使得装置12、14中的每一者包含视频编码和解码组件。因此,系统10可支持视频装置12、14之间的单向或双向视频传输,例如,用于视频流式传输、视频播放、视频广播或视频电话。
源装置12的视频源18可包含视频俘获装置(例如,视频摄影机)、含有先前所俘获的视频的视频封存档,和/或来自视频内容提供者的视频馈入。作为另一替代例,视频源18可产生基于计算机图形的数据以作为源视频,或直播视频、经封存视频和计算机产生的视频的组合。在一些状况下,如果视频源18为视频摄影机,那么源装置12和目的装置14可形成所谓的摄影机电话或视频电话。然而,如以上所提及,本发明中所描述的技术可大体上适用于视频译码,且可应用于无线和/或有线应用。在每一状况下,可由视频编码器20来编码所俘获、预俘获或计算机产生的视频。可接着由调制解调器22根据通信标准来调制经编码视频信息,且经由发射器24将经编码视频信息传输到目的地装置14。调制解调器22可包含各种混频器、滤波器、放大器或经设计以用于信号调制的其它组件。发射器24可包含经设计以用于传输数据的电路,包含放大器、滤波器和一或多个天线。
目的地装置14的接收器26通过信道16接收信息,且调制解调器28解调制所述信息。再次,视频编码过程可实施本文中所描述的技术中的一或多者以熵编码语法元素,从而减少管线额外耗用。通过信道16传达的信息可包含由视频编码器20定义的语法信息(也由视频解码器30使用),所述语法信息包含描述宏块和其它经译码单元(例如,图片群组(GOP))的特性和/或处理的语法元素。显示装置32向用户显示经解码视频数据,且可包括多种显示装置中的任一者,例如,阴极射线管(CRT)、液晶显示器(LCD)、等离子显示器、有机发光二极管(OLED)显示器或另一类型的显示装置。
在图2的实例中,通信信道16可包括任何无线或有线通信媒体,例如,射频(RF)频谱或一或多个物理传输线、或无线和有线媒体的任何组合。通信信道16可形成基于封包的网络(例如,局域网、广域网或例如因特网的全球网络)的部分。通信信道16大体上表示用于将视频数据从源装置12发射到目的地装置14的任何合适通信媒体或不同通信媒体的集合,包含有线或无线媒体的任何合适组合。通信信道16可包含路由器、交换器、基站或可有用于促进从源装置12到目的地装置14的通信的任何其它装备。在其它实例中,源装置12可将经编码数据存储到存储媒体上,而非传输所述数据。同样地,目的地装置14可经配置以从存储媒体检索经编码数据。以此方式,源装置12可经配置以产生计算机程序产品,其中所述计算机程序产品包含根据本文中所描述的技术编码的视频文件。
视频编码器20和视频解码器30可根据例如本文中所描述的彼等视频压缩标准的视频压缩标准进行操作。然而,本发明的技术不限于任何特定译码标准。虽然未展示于图2中,但在一些方面中,视频编码器20和视频解码器30可各自与音频编码器和解码器集成,且可包含适当MUX-DEMUX单元或其它硬件和软件,以处置共同数据串流或单独数据串流中的音频和视频两者的编码。在适用时,MUX-DEMUX单元可遵照ITU H.223多路复用器协议或例如用户数据报协议(UDP)的其它协议。
视频编码器20和视频解码器30各自可实施为多种合适编码器或解码器电路中的任一者,所述电路例如一或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、包含视频译码装置(例如,编码器或解码器)的无线通信装置、离散逻辑、软件、硬件、固件或其任何组合。视频编码器20和视频解码器30中的每一者可包含于一或多个编码器或解码器中,所述一或多个编码器或解码器中的任一者可集成以作为相应摄影机、计算机、行动装置、用户装置、广播装置、机顶盒、服务器或类似者中的组合式编码器/解码器(CODEC)的部分。包含视频编码器20和/或视频解码器30的设备可包括集成电路、微处理器和/或无线通信装置(例如,蜂窝式电话)。
视频编码器20和视频解码器30可经配置以实施根据本发明的技术。这些技术可减少管线额外耗用,藉此潜在地增加输送量。例如,管线额外耗用的一个原因为与开始上下文自适应性二进制算术译码(CABAC)所需的循环相关联的额外耗用。在本发明中所描述的技术中,视频编码器20使用CABAC编码(例如,通过规则CABAC引擎)熵编码语法元素的第一群组,且使用旁路编码(例如,通过旁路引擎)熵编码语法元素的第二群组。类似地,视频解码器30使用CABAC解码(例如,通过规则CABAC引擎)熵解码语法元素的第一群组,且使用旁路解码(例如,通过旁路解码引擎)熵解码语法元素的第二群组。
以此方式,在位流中,经CABAC编码的第一群组的语法元素不与经旁路编码的第二群组的语法元素交错。如果经CABAC编码的语法元素与经旁路编码的语法元素交错,那么视频编码器20和视频解码器30将必须重复地重新启动CABAC引擎。
例如,假设第一语法元素待经CABAC编码且在待经旁路编码的第二语法元素之前,且待经CABAC编码的第三语法元素在待经旁路编码的第二语法元素之后。在待经CABAC编码的语法元素与待经旁路编码的语法元素交错的此实例中,视频编码器20将需要针对第一语法元素来启动CABAC引擎,且接着在通过旁路引擎编码第二语法元素之后针对第三语法元素重新启动CABAC引擎,此浪费了循环。
在本发明中所描述的技术中,通过CABAC编码语法元素的第一群组和旁路编码语法元素的第二群组,视频编码器20可减少待启动CABAC引擎的次数,藉此减少浪费的循环的数目。类似地,通过CABAC解码语法元素的第一群组和旁路解码语法元素的第二群组,视频解码器30可减少待启动CABAC引擎的次数,藉此减少浪费的循环的数目。
如更详细地描述,语法元素的第一群组的每一语法元素与CU的一个PU相关联,且语法元素的第二群组的每一语法元素对应于语法元素的第一群组的语法元素。语法元素的第一群组和语法元素的第二群组中的每一者包含多个语法元素。语法元素的第一群组中的每一者指示相应PU(例如,对应于语法元素的第一群组的语法元素的PU)的帧内预测模式是否是从相邻PU推断。换句话说,语法元素的第一群组中的每一者指示相应PU的帧内预测模式是否基于到最可能模式的列表的索引。
例如,视频编码器20和视频解码器30可经配置以按以上所描述的实例方式构建最可能模式的列表。语法元素的第一群组中的每一语法元素可对应于CU中的PU中的一者。在此实例中,语法元素的第一群组中的语法元素(即,第一群组的多个语法元素中的语法元素中的一者)指示所述语法元素所对应的CU中的PU的帧内预测模式是否基于到最可能模式的列表的索引。
如果语法元素的第一群组的语法元素指示其所相关联的PU的帧内预测模式是基于到最可能模式的列表的索引,那么与语法元素的第一群组的所述语法元素相关联的语法元素的第二群组的语法元素识别到最可能模式的列表的所述索引。如果语法元素的第一群组的语法元素指示其所相关联的PU的帧内预测模式不基于到最可能模式的列表的索引,那么与语法元素的第一群组的所述语法元素相关联的语法元素的第二群组的语法元素指示帧内预测模式。
图3为说明可实施本发明中所描述的用于编码视频数据的技术的视频编码器20的实例的框图。在一个实例中,视频编码器20可经配置以产生语法元素的第一群组和语法元素的第二群组,其中语法元素的第二群组的语法元素对应于语法元素的第一群组的相应语法元素,且其中语法元素的第一群组的语法元素中的每一者指示CU中的相应PU的帧内预测模式是否基于到最可能模式的列表的索引。视频编码器20可上下文自适应性二进制算术译码(CABAC)编码语法元素的第一群组(例如,使用规则CABAC引擎),在熵编码语法元素的第一群组之后旁路编码语法元素的第二群组(例如,使用旁路编码引擎),且输出包含语法元素的经编码的第一群组和语法元素的经编码的第二群组的视频数据。语法元素的第一群组和第二群组中的每一者包含多个语法元素。
视频编码器20可执行视频切片内的视频块的帧内译码(即,帧内预测编码)和帧间译码(即,帧间预测编码)。如图3中所展示,视频编码器20接收可为待编码的视频帧内的当前视频块的视频数据,且输出经编码的视频位流。视频编码器20可(例如)在帧标头、块标头、切片标头或GOP标头中进一步发送语法数据,例如,基于块的语法数据、基于帧的语法数据和基于GOP的语法数据。GOP语法数据可描述相应GOP中的数个帧,且帧语法数据可指示用以编码对应帧的编码/预测模式。
在图3的实例中,视频编码器20包含模式选择单元40、参考帧存储器64、求和器50、变换处理单元52、量化处理单元54和熵编码单元56。模式选择单元40又包含运动估计单元42、运动补偿单元44、帧内预测单元46和分割单元48。为了视频块重构建,视频编码器20也包含反量化处理单元58、反变换处理单元60和求和器62。
在所述编码过程期间,视频编码器20接收待译码的视频帧或切片。可将所述帧或切片划分成多个视频块。运动估计单元42和运动补偿单元44相对于一或多个参考帧中的一或多个块来执行所接收视频块的帧间预测性译码(帧间预测编码),以提供时间预测。帧内预测单元46可替代地相对于与待译码的块相同的帧或切片中的一或多个相邻块来执行所接收视频块的帧内预测性译码(帧内预测编码),以提供空间预测。视频编码器20可执行多个译码遍次(例如)以针对视频数据的每一块选择适当译码模式。
此外,分割单元48可基于先前译码遍次中的先前分割方案的评估将视频数据的块分割成多个子块。例如,分割单元48可最初将一帧或切片分割成多个LCU,且基于速率-失真分析(例如,速率-失真优化)将所述LCU中的每一者分割成多个子CU。模式选择单元40可进一步产生指示LCU到子CU的分割的四分树数据结构。四分树的叶节点CU可包含一或多个PU和一或多个TU。
模式选择单元40可(例如)基于误差结果来选择译码模式中的一者(帧内或帧间),且将所得经帧内译码或帧间译码块提供到求和器50以产生残余块数据,且提供到求和器62以重构建经编码块以供用作参考帧。模式选择单元40也将例如运动向量、帧内模式指示符、分割信息和其它此语法信息的语法元素提供到熵编码单元56。例如,模式选择单元40可将如以上所描述的语法元素prev_intra_luma_pred_flag、mpm_idx、rem_intra_luma_pred_mode、intra_chroma_pred_mode和chroma_pred_from_luma_enable_flag提供到熵编码单元56。另外,模式选择单元40可经配置以将语法元素布置成prev_intra_luma_pred_flag、mpa_idx、rem_intra_luma_pred_mode和intra_chroma_pred_mode,使得以熵编码所述语法元素所需的循环的数目得以减少的方式将所述语法元素提供到熵编码单元56。
例如,视频编码器20经由熵编码单元56使用CABAC编码来针对CU内的每一PU熵编码prev_intra_luma_pred_flag。在此实例中,语法元素的第一群组包含多个prev_intra_luma_pred_flag(即,CU中的每一PU一个prev_intra_luma_pred_flag)。视频编码器20经由熵编码单元56在对应prev_intra_luma_pred_flag指示PU的帧内预测模式是基于到最可能模式的列表的索引的情况下使用旁路编码来熵编码mpm_idx语法元素,或在对应prev_intra_luma_pred_flag指示PU的帧内预测模式不基于到最可能模式的列表的索引的情况下编码rem_intra_luma_pred_mode语法元素。在此实例中,语法元素的第二群组包含一或多个mpm_idx语法元素和一或多个rem_intra_luma_pred_mode语法元素中的至少一者。
换句话说,语法元素的第一群组中的语法元素的一个实例为prev_intra_luma_pred_flag,语法元素的第二群组中的语法元素的一个实例为mpm_idx语法元素,且语法元素的第二群组中的语法元素的另一实例为rem_intra_luma_pred_mode语法元素。
再次,prev_intra_luma_pred_flag指示CU的PU的亮度样本的帧内预测模式是否基于到最可能模式的列表的索引。如果prev_intra_luma_pred_flag指示CU的PU的亮度样本的帧内预测模式是基于到最可能模式的列表的索引,那么mpm_idx语法元素指示到最可能模式的列表的索引。如果prev_intra_luma_pred_flag指示CU的PU的帧内预测模式不基于到最可能模式的列表的索引,那么rem_intra_luma_pred_mode语法元素指示所述PU的亮度样本的帧内预测模式。rem_intra_luma_pred_mode语法元素可指示未在最可能模式的列表中识别的帧内预测模式。
运动估计单元42与运动补偿单元44可高度集成,但出于概念性目的而单独进行说明。由运动估计单元42执行的运动估计为产生运动向量的过程,运动向量估计视频块的运动。例如,运动向量可指示当前视频帧或图片内的视频块的PU相对于参考帧(或其它经译码单元)内的预测性块(其相对于所述当前帧(或其它经译码单元)内正经译码的当前块)的位移。预测性块为被发现就像素差来说紧密地匹配待译码块的块,所述像素差可通过绝对差总和(SAD)、平方差总和(SSD)或其它差度量来确定。在一些实例中,视频编码器20可计算存储于参考帧存储器64中的参考图片的子整数像素位置的值。例如,视频编码器20可内插参考图片的四分之一像素位置、八分之一像素位置或其它分数像素位置的值。因此,运动估计单元42可执行相对于全像素位置和分数像素位置的运动搜索,且以分数像素精度输出运动向量。
运动估计单元42通过比较经帧间译码切片中的视频块的PU的位置与参考图片的预测性块的位置而计算所述PU的运动向量。所述参考图片可选自第一参考图片列表(列表0)或第二参考图片列表(列表1),列表0或列表1中的每一者识别存储于参考帧存储器64中的一或多个参考图片。运动估计单元42将计算出的运动向量发送到熵编码单元56和运动补偿单元44。
由运动补偿单元44执行的运动补偿可涉及基于由运动估计单元42所确定的运动向量来获取或产生预测性块。再次,在一些实例中,运动估计单元42与运动补偿单元44可在功能上进行集成。在接收到当前视频块的PU的运动向量之后,运动补偿单元44可将运动向量所指向的预测性块定位于参考图片列表中的一者中。如以下所论述,求和器50通过从正经译码的当前视频块的像素值减去预测性块的像素值来形成残余视频块,从而形成像素差值。一般来说,运动估计单元42相对于亮度分量而执行运动估计,且运动补偿单元44将基于所述亮度分量所计算的运动向量用于色度分量与亮度分量两者。模式选择单元40也可产生与视频块和视频切片相关联的语法元素以供视频解码器30用于解码视频切片的视频块。
作为对由运动估计单元42和运动补偿单元44执行的帧间预测(如上文所描述)的替代,帧内预测单元46可帧内预测当前块。明确地说,帧内预测单元46可确定用以编码当前块的帧内预测模式。在一些实例中,帧内预测单元46可(例如)在单独编码遍次期间使用各种帧内预测模式来编码当前块,且帧内预测单元46(或在一些实例中,模式选择单元40)可(例如)基于速率-失真分析从经测试模式选择将使用的适当帧内预测模式。如以上所描述,可能的帧内预测模式可包含平面预测模式、DC预测、角预测模式和从亮度预测模式推断帧内预测模式的色度分量的预测模式。
另外,在一个实例中,帧内预测单元46可使用对各种经测试帧内预测模式的速率-失真分析而计算速率-失真值,且在经测试模式当中选择具有最好速率-失真特性的帧内预测模式。速率-失真分析大体上确定经编码块与原始未经编码块之间的失真(或误差)的量以及用以产生经编码块的位率(即,位数目),所述原始未经编码块经编码以产生所述经编码块。帧内预测单元46可从失真和速率计算各种经编码块的比率以确定哪一帧内预测模式展现块的最好速率-失真值。
在选择块的帧内预测模式之后,帧内预测单元46可将指示块的所选择帧内预测模式的信息(例如,语法元素)提供到熵编码单元56。熵编码单元56可编码指示所选择帧内预测模式的信息。视频编码器20可在所传输的位流配置数据中包含各种块的编码上下文的定义和将用于所述上下文中的每一者的最可能帧内预测模式、帧内预测模式索引表和经修改的帧内预测模式索引表的指示,所述位流配置数据可包含多个帧内预测模式索引表和多个经修改的帧内预测模式索引表(也称作码字映射表)。
如以上所描述,帧内预测语法元素prev_intra_luma_pred_flag、mpm_idx、rem_intra_luma_pred_mode、intra_chroma_pred_mode和chroma_pred_from_luma_enable_flag可指示PU结构的一或多个亮度帧内预测模式和PU结构的一个色度帧内预测模式。另外,如以上关于表3和表4所描述,帧内预测语法元素prev_intra_luma_pred_flag、mpm_idx、rem_intra_luma_pred_mode、intra_chroma_pred_mode和chroma_pred_from_luma_enable_flag在译码结构内的布置可确定熵编码PU结构的所有语法元素所需的循环的总数。因此,除如以上关于表3和表4所描述将帧内预测语法元素输出到熵编码单元56以外,帧内预测单元46可经配置以布置帧内预测语法,以使得以熵编码语法元素所需的循环的总数得以减少的方式将所述语法元素输出到熵编码单元56。同样地,通过此布置,在解码器处熵解码语法元素所需的循环的总数得以减少。
在一个实例中,帧内预测单元46可经配置以布置色度帧内模式语法元素的经CABAC译码的二进制位与亮度帧内模式语法元素的经CABAC译码的二进制位,使得所述二进制位一起经译码。另外,帧内预测单元46可布置亮度帧内模式语法元素的经旁路译码的二进制位与色度帧内模式语法元素的经旁路译码的二进制位,使得所述二进制位可一起经译码。表5提供INTRA_2N×2N PU结构的此布置的实例译码结构。表6提供INTRA_N×N PU结构的此布置的实例译码结构。在表5和表6中,可如以上关于表3和表4所描述来定义语法元素。然而,应注意,表5和表6中的语法元素未必需要具有与以上所描述的值范围相同的值范围。例如,如果视频编码器20包含33个以下或以上帧内预测模式,那么可相应地调整语法元素的值。如表5和表6中所说明,语法元素chroma_mode_cabac_bins经布置以使得其在mpm_idx和rem_intra_luma_pred_mode之前译码。
表5:intra_2N×2N的帧内模式译码结构
表6:intra_N×N的帧内模式译码结构
在另一实例中,帧内预测单元46可经配置以针对CU内的所有PU布置帧内模式亮度语法元素的经CABAC译码的二进制位,使得其可一起经译码。另外,帧内预测单元46可布置亮度帧内模式语法元素的经旁路译码的二进制位,以使得其可一起经译码。表7提供INTRA_2N×2N PU结构的此布置的实例译码结构。表8提供INTRA_N×N PU结构的此布置的实例译码结构。在表7和表8中,可如以上关于表5和表6所描述来定义语法元素。
如表8中所说明,对于INTRA_N×N PU结构,针对四个PU中的每一者译码prev_intra_luma_pred_flag语法元素,接着针对PU中的每一者译码相应mpm_idx和rem_intra_luma_pred_mode语法元素。四个prev_intra_luma_pred_flag语法元素可被称作PU的语法元素的第一群组。因此,帧内预测单元46可经配置以在熵编码单元56之前,在与旗标中的每一者相关联的相应语法元素mpm_idx和rem_intra_luma_pred_mode之前输出语法元素的第一群组。
表7:intra_2N×2N的帧内模式译码结构
表8:intra_N×N的帧内模式译码结构
在又一实例中,帧内预测单元46可经配置以针对译码单元中的所有PU布置亮度帧内模式语法元素和色度帧内模式语法元素两者的所有经CABAC译码的二进制位,使得其可一起经译码。另外,帧内预测单元46可经配置以布置亮度帧内模式和色度帧内模式两者的所有经旁路译码的二进制位,以使得其可一起经译码。表9提供INTRA_2N×2N PU结构的此布置的实例译码结构。表10提供INTRA_N×N PU结构的此布置的实例译码结构。在表9和表10中,可如以上关于表5和表6所描述来定义语法元素。
表9:intra_2N×2N的帧内模式译码结构
表10:intra_N×N的帧内模式译码结构
应注意,在表6到表10中,在表中呈现语法元素的行可对应于语法元素由熵编码器进行熵编码的次序。在一些状况下,无中间熵编码可能发生在表6到表10中的相邻行之间。本文中的术语“群组”和“分群”可大体上指将元素紧密地放置在一起,例如,在例如图片、切片、CU或类似者的视频译码单元内的语法表内。在对包含于群组中的语法元素执行操作的状况下,可在一些状况下将所述元素紧密地放置在一起以使得不对所述群组之外的元素执行操作,直到对群组内的所有元素完成所述操作为止(即,在不同群组之间无交错)。在一些状况下,群组中的二进制位可连续地呈现且按次序或序列(即,一个接一个地)进行译码。
再次参看图3,视频编码器20通过从正经译码的原始视频块减去来自模式选择单元40的预测数据而形成残余视频块。求和器50表示执行此减法运算的一或多个组件。变换处理单元52将例如离散余弦变换(DCT)或概念上类似的变换的变换应用于残余块,从而产生包括残余变换系数值的视频块。变换处理单元52可执行概念上类似于DCT的其它变换。也可使用小波变换、整数变换、次频带变换或其它类型的变换。在任何状况下,变换处理单元52将变换应用于残余块,从而产生残余变换系数的块。所述变换可将残余信息从像素值域转换到变换域(例如,频域)。变换处理单元52可将所得变换系数发送到量化单元54。量化处理单元54量化所述变换系数以进一步减小位率。所述量化过程可减小与所述系数中的一些或全部相关联的位深度。可通过调整量化参数而修改量化程度。在一些实例中,量化处理单元54可接着执行对包含经量化变换系数的矩阵的扫描。替代地,熵编码单元56可执行所述扫描。
视频编码器20可经配置以执行反量化和反变换以存储经解码块,以用作用于预测(例如)同一帧或待在时间上预测的多个帧中的后续块的参考。反量化处理单元58和反变换处理单元60分别应用反量化和反变换,以在像素域中重构建残余块(例如)以供稍后用作参考块。运动补偿单元44可通过将所述残余块加到参考帧存储器64的帧中的一者的预测性块来计算参考块。运动补偿单元44也可将一或多个内插滤波器应用于所述经重构建残余块以计算用于在运动估计中使用的子整数像素值。求和器62将经重构建残余块加到由运动补偿单元44产生的经运动补偿的预测块以产生经重构建视频块,以供存储于参考帧存储器64中。
在量化之后,熵编码单元56熵编码经量化变换系数。另外,熵编码单元56熵编码语法元素,例如以上所描述的预测性语法元素。例如,熵编码单元56可执行上下文自适应性可变长度译码(CAVLC)、上下文自适应性二进制算术译码(CABAC)、基于语法的上下文自适应性二进制算术译码(SBAC)、概率区间分割熵(PIPE)译码或另一熵译码技术。在基于上下文的熵编码的状况下,上下文可基于相邻块。在由熵编码单元56进行熵编码之后,可将经编码位流传输到另一装置(例如,视频解码器30)或经封存以供稍后传输或检索。
图4为说明可实施本发明中所描述的技术的实例熵编码单元56的框图。在一个实例中,图4中所说明的熵编码单元56可为CABAC编码器。实例熵编码单元56可包含二进制化单元502、包含旁路编码引擎504和规则编码引擎508的算术编码单元510和上下文模型化单元506。
熵编码单元56可接收一或多个语法元素,例如以上所描述的帧内预测语法元素prev_intra_luma_pred_flag、mpm_idx、rem_intra_luma_pred_mode、intra_chroma_pred_mode和chroma_pred_from_luma_enable_flag。语法元素由熵编码单元56接收的次序可根据译码结构(例如,以上关于表3到表10所描述的实例译码结构)来定义。
二进制化单元502接收语法元素且产生二进制位(bin)串(即,二进制位(binary)串)。例如,二进制化单元502可使用以下技术中的任一者或组合来产生二进制位串:固定长度译码、一元译码、截断一元译码、截断莱斯译码、哥伦布译码、指数哥伦布译码和哥伦布-莱斯译码。另外,在一些状况下,二进制化单元502可接收语法元素作为二进制位串且简单地传递二进制位值。在一个实例中,二进制化单元502接收语法元素intra_chroma_pred_mode且根据以上关于表2所描述的实例基于chroma_pred_from_luma_enable_flag的值产生二进制位串。
算术编码单元510经配置以从二进制化单元502接收二进制位串,且对二进制位串执行算术编码。如图4中所展示,算术编码单元510可从旁路路径或规则译码路径接收二进制位值。遵循旁路路径的二进制位值可为识别为经旁路译码的二进制位值,且遵循规则编码路径的二进制位值可识别为经CABAC译码。与以上所描述的CABAC过程一致,在算术编码单元510从旁路路径接收二进制位值的状况下,旁路编码引擎504可在不利用指派给二进制位值的自适应性上下文的情况下对二进制位值执行算术编码。在一个实例中,旁路编码引擎504可假设二进制位具有可能值的概率相等。
在算术编码单元510通过规则路径接收二进制位值的状况下,上下文模型化单元506可提供上下文变量(例如,上下文状态),以使得规则编码引擎508可基于由上下文模型化单元506提供的上下文指派来执行算术编码。可根据例如HEVC的视频译码标准来定义上下文指派。上下文模型可存储于存储器中。上下文模型化单元506可包含一系列经编索引的表和/或利用映射函数来确定特定二进制位的上下文和上下文变量。在编码二进制位值之后,规则编码引擎508可基于实际二进制位值来更新上下文。
另外,在一个实例中,熵编码单元56可经配置以基于其从模式选择单元40接收语法元素的次序来编码二进制位。如以上所描述,所述次序可根据译码结构(例如,以上关于表3到表10所描述的实例译码结构)来定义。熵编码单元56接收语法元素的集合内的语法元素的次序可确定熵编码单元56编码语法元素的所述集合所需的循环的总数。
在一个实例中,规则编码引擎508可需要两个以上循环来译码单一二进制位。另外,在一个实例中,规则编码引擎508可需要n+M个循环来编码n个二进制位,其中M为用以启动管线的额外耗用。M通常大于0。在CABAC编码过程开始时(例如,从旁路模式到规则模式的切换),引入管线额外耗用M。在一个实例中,旁路编码引擎504可需要一个循环来译码n位语法元素,其中n大于零。
因此,算术编码单元510编码旁路二进制位和CABAC二进制位的集合需要的循环的总数可基于引入管线额外耗用M的次数。例如,如果算术编码单元510如表4中所布置而编码预测性语法元素,那么管线额外耗用可引入五次且算术编码单元510可需要最少5*M个循环来编码语法元素的二进制位。然而,如果算术编码单元510如表8中所布置而编码预测性语法元素,那么管线额外耗用可仅引入两次且算术编码单元510管线额外耗用可减少到2*M个循环。
应注意,根据HEVC译码的视频帧可包含大约数万个PU。因此,帧内预测语法元素在译码结构中的布置次序可显著影响视频译码器译码视频数据所需的循环的数目。另外,应注意,尽管将图4中所说明的实例熵编码单元56描述为从旁路编码操作切换到规则编码操作,但在一些状况下,这些操作可并列地执行。然而,在此状况下,熵编码单元56接收经旁路译码和经CABAC译码的语法元素的次序仍可确定熵编码语法元素所需的循环的总数。额外耗用来自上下文切换。因为以旁路模式译码的二进制位可针对下一经CABAC译码的二进制位产生若干不同语法元素,所以难以预先提取必要上下文(载入上下文缓冲器)来减少管线额外耗用。
图5为说明根据本发明的技术编码视频数据的实例的流程图。尽管以下将图5中的过程描述为大体上由视频编码器20执行,但所述过程可由视频编码器20、模式选择单元40和/或熵编码单元56的任何组合执行。
如图5中所说明,视频编码器20产生语法元素的第一群组(602)。在一个实例中,第一群组内的语法元素指示相应预测单元(PU)的预测模式是否基于到最可能模式的列表的索引。在一个实例中,语法元素的第一群组包含对应于INTRA_N×N PU结构中的PU的四个语法元素prev_intra_luma_pred_flag。视频编码器20产生语法元素的第二群组(604)。在一个实例中,如以上所描述,相应语法元素可为语法元素mpm_idx或rem_intra_luma_pred_mode中的任一者。第二群组的语法元素对应于第一群组的相应语法元素。
视频编码器20 CABAC编码语法元素的第一群组(例如,使用规则CABAC引擎)(606)。在CABAC编码语法元素的第一群组之后,视频编码器20旁路编码语法元素的第二群组(例如,使用旁路编码引擎)(608)。视频编码器20可基于语法元素的第一群组和第二群组来帧内编码CU的PU(610)。视频编码器20可在位流中输出视频数据,所述视频数据包含语法元素的经编码的第一群组和语法元素的经编码的第二群组(612)。视频编码器20也在位流中输出经帧内编码PU的残余信息。
如以上所描述,语法元素的第一群组的实例包含多个旗标(例如,prev_intra_luma_pred_flag语法元素)。所述多个旗标中的旗标可为语法元素的第一群组的指示以下情形的语法元素:相应PU的亮度样本的帧内预测模式是否基于到最可能模式的列表的索引。
在一些实例中,语法元素的第二群组包含第一语法元素,所述第一语法元素在语法元素的第一群组中的对应语法元素指示相应PU的亮度样本的帧内预测模式是基于到最可能模式的列表的索引的情况下指示到最可能模式的列表的索引。例如,如果相应PU的prev_intra_luma_pred_flag语法元素指示所述相应PU的帧内预测模式是基于到最可能模式的列表的索引,那么相应PU的对应mpm_idx语法元素指示到最可能模式的列表的索引。在此实例中,将mpm_idx语法元素视为语法元素的第二群组中的第一语法元素。
在一些实例中,语法元素的第二群组包含第二语法元素,所述第二语法元素在语法元素的第一群组中的对应语法元素指示相应PU的亮度样本的帧内预测模式不基于到最可能模式的列表的索引的情况下指示所述相应PU的帧内预测模式。例如,如果相应PU的prev_intra_luma_pred_flag语法元素指示所述相应PU的帧内预测模式不基于到最可能模式的列表的索引,那么相应PU的对应rem_intra_luma_pred_mode语法元素指示所述帧内预测模式。在此实例中,将rem_intra_luma_pred_mode语法元素视为语法元素的第二群组中的第二语法元素。
如以上所描述,视频编码器20构建的最可能模式的列表识别一或多个相邻PU的一或多个帧内预测模式。在一些实例中,视频编码器20可在输出CU的PU的语法元素的第二群组的任何语法元素之前输出CU的PU的语法元素的第一群组的所有语法元素。在一些实例中,视频编码器20可在旁路编码语法元素的第二群组的任何语法元素之前CABAC编码语法元素的第一群组的所有语法元素。
应注意,在一些实例中,熵编码器可为包含于视频编码器20内的熵编码器,例如熵编码单元56。在此状况下,术语“输出”可指视频编码器20内的一个组件将数据输出到视频编码器20内的另一组件。另外,在其它实例中,熵编码器可在视频编码器20外部。在一个实例中,视频编码器20输出旗标的集合和相应语法元素,以使得语法元素的群组在序列中布置于相应语法元素之前。在一个实例中,视频编码器20可根据表8中所说明的译码结构来布置语法元素。视频解码器可接收经熵编码位流且使用所述经熵编码位流来重构建视频数据。
图6为说明解码经编码视频序列的视频解码器30的实例的框图。在一个实例中,视频解码器30可经配置以执行以下操作:接收经熵编码位流,所述经熵编码位流包含旗标的集合和对应于每一旗标的相应语法元素,其中每一旗标指示相应预测单元(PU)的预测模式是否基于到最可能模式的列表的索引;CABAC解码旗标的集合;旁路解码所述相应语法元素;和基于每一旗标和所述相应语法元素的值来重构建视频数据。
在图6的实例中,视频解码器30包含熵解码单元70、运动补偿单元72、帧内预测单元74、反量化处理单元76、反变换处理单元78、参考帧存储器82和求和器80。在一些实例中,视频解码器30可执行与关于视频编码器20(图4)所描述的编码遍次大体上互逆的解码遍次。
熵解码单元70接收经熵编码位流,且根据与用以编码语法元素的熵编码过程互逆的过程来解码来自所述位流的语法元素。在一个实例中,用以编码语法元素的熵编码过程可为以上所描述的熵编码过程中的任一者。
图7为说明可实施本发明中所描述的技术的实例熵解码单元70的框图。熵解码单元70接收经熵编码位流且解码来自所述位流的语法元素。语法元素可包含以上所描述的帧内预测语法元素prev_intra_luma_pred_flag、mpm_idx、rem_intra_luma_pred_mode、intra_chroma_pred_mode和chroma_pred_from_luma_enable_flag。语法元素由熵解码单元70解码的次序可根据译码结构(例如,以上关于表3到表10所描述的实例译码结构)来定义。图7中的实例熵解码单元70包含算术解码单元702,算术解码单元702可包含旁路解码引擎704和规则解码引擎706。实例熵解码单元70也包含上下文模型化单元708和反二进制化单元710。实例熵解码单元70可执行关于图4所描述的实例熵编码单元56的互逆功能。以此方式,熵解码单元70可基于本文中所描述的技术来执行熵解码。
算术解码单元702接收经编码位流。如图7中所展示,算术解码单元702可根据旁路路径或规则译码路径来处理经编码二进制位值。可用较高层级语法在位流中用信号发送经编码二进制位值应根据旁路路径或规则路径进行处理的指示。与以上所描述的CABAC过程一致,在算术解码单元702从旁路路径接收二进制位值的状况下,旁路解码引擎704可在不利用指派给二进制位值的上下文的情况下对二进制位值执行算术编码。在一个实例中,旁路解码引擎704可假设二进制位具有可能值的概率相等。
在算术解码单元702通过规则路径接收二进制位值的状况下,上下文模型化单元708可提供上下文变量,以使得规则解码引擎706可基于由上下文模型化单元708提供的上下文指派来执行算术编码。可根据例如HEVC的视频译码标准来定义上下文指派。上下文模型可存储于存储器中。上下文模型化单元708可包含一系列经编索引的表和/或利用映射函数来确定经编码位流的上下文和上下文变量部分。在解码二进制位值之后,规则译码引擎706可基于经解码二进制位值来更新上下文。另外,反二进制化单元710可对二进制位值执行反二进制化且使用二进制位匹配函数来确定二进制位值是否有效。反二进制化单元710也可基于匹配确定来更新上下文模型化单元。因此,反二进制化单元710根据上下文自适应性解码技术来输出语法元素。
熵解码单元70接收语法元素的集合内的语法元素的次序可确定熵解码单元70解码语法元素的集合所需的循环的总数。在一个实例中,规则解码引擎706可需要两个以上循环来解码单一二进制位。另外,在一个实例中,规则CABAC解码引擎706可需要n+M个循环来解码n个二进制位,其中M为用以启动管线的额外耗用。M通常大于0。在CABAC解码过程开始时(例如,从旁路模式到规则模式的切换),引入管线额外耗用M。在一个实例中,旁路解码引擎704可需要一个循环来译码n位语法元素。因此,算术解码单元510解码旁路二进制位和CABAC二进制位的集合所需的循环的总数可基于引入管线额外耗用M的次数。因而,帧内预测语法元素在译码结构中的布置次序可确定视频解码器30解码视频数据所需的循环的数目。另外,应注意,尽管将图7中所说明的实例熵解码单元70描述为从旁路解码操作切换到规则解码操作,但在一些状况下,这些操作可并列地执行。然而,在此状况下,熵解码单元70接收经旁路译码和经CABAC译码的语法元素的次序仍可确定熵解码语法元素所需的循环的总数。
再次参看图6,运动补偿单元72可基于从熵解码单元70所接收的运动向量来产生预测数据。运动补偿单元72可使用在位流中接收的运动向量识别参考帧存储器82中的参考帧中的预测块。运动补偿单元72产生经运动补偿块,从而有可能基于内插滤波器来执行内插。待用于具有子像素精度的运动估计的内插滤波器的识别符可包含于语法元素中。运动补偿单元72可使用如在视频块的编码期间由视频编码器20使用的内插滤波器来计算参考块的子整数像素的内插值。运动补偿单元72可根据所接收语法信息来确定由视频编码器20使用的内插滤波器,且使用所述内插滤波器产生预测性块。
运动补偿单元72使用语法信息中的一些来确定用以编码经编码视频序列的帧的宏块的大小、描述如何分割经编码视频序列的帧的每一宏块的分割信息、指示如何编码每一分割区的模式、用于每一经帧间编码宏块或分割区的一或多个参考帧(和参考帧列表)和解码经编码视频序列的其它信息。
帧内预测单元74可使用在位流中接收的帧内预测模式从空间上邻近的块形成预测块。帧内预测模式可包含以上所描述的帧内预测模式。帧内预测单元74可根据如以上所描述的语法元素prev_intra_luma_pred_flag、mpm_idx、rem_intra_luma_pred_mode、intra_chroma_pred_mode和chroma_pred_from_luma_enable_flag来确定待使用的帧内预测模式。
反量化单元76反量化(即,解量化)在位流中所提供且由熵解码单元70解码的经量化块系数。反量化过程可包含(例如)如由H.264解码标准所定义的常规过程。反量化过程也可包含针对每一宏块使用由视频编码器计算的量化参数QPY,以确定量化程度且同样地确定应应用的反量化程度。
反变换单元78将反变换(例如,反DCT、反整数变换或概念上类似的反变换过程)应用于变换系数,以便在像素域中产生残余块。求和器80对残余块与由运动补偿单元72或帧内预测单元74产生的对应预测块进行求和,以形成经解码块。以此方式,视频解码器30从经编码位流重构建视频块。
图8为说明根据本发明的技术解码视频数据的实例的流程图。尽管以下将图8中的过程描述为大体上由视频解码器30执行,但所述过程可由视频解码器30、帧内预测单元74和/或熵解码单元70的任何组合执行。
如图8中所说明,视频解码器30接收语法元素的第一群组(802)。视频解码器30接收语法元素的第二群组(804),其中语法元素的第二群组的语法元素对应于语法元素的第一群组的相应语法元素。换句话说,视频解码器30接收经熵编码位流,所述经熵编码位流包含译码单元(CU)的预测单元(PU)的语法元素的第一群组和语法元素的第二群组。
在一个实例中,第一群组内的语法元素指示相应预测单元(PU)的预测模式是否基于到最可能模式的列表的索引。在一个实例中,第一群组包含对应于INTRA_N×N PU结构中的四个相应PU的四个语法元素prev_intra_luma_pred_flag。在一个实例中,语法元素的第二群组中的语法元素可为语法元素mpm_idx或rem_intra_luma_pred_mode中的任一者,如以上所描述。在一个实例中,语法元素的第一群组和语法元素的第二群组可根据关于表8所描述的译码结构来布置。以此方式,可根据译码结构来定义视频解码器30接收旗标的集合和相应语法元素且对旗标的集合和相应语法元素执行操作的次序。
视频解码器30 CABAC解码语法元素的第一群组(806)。在一个实例中,视频解码器30使用规则上下文自适应性二进制算术译码(CABAC)引擎(例如,关于图7所描述的规则解码引擎706)解码语法元素的第一群组。视频解码器30旁路解码语法元素的第二群组(808)。在一个实例中,视频解码器30可在熵解码语法元素的第一群组之后熵解码语法元素的第二群组。另外,在一个实例中,视频解码器30可使用旁路解码引擎(例如,关于图7所描述的旁路解码引擎704)熵解码语法元素的第二群组。视频解码器30基于语法元素的经解码的第一群组和语法元素的经解码的第二群组来解码和重构建视频数据(810)。在一个实例中,视频解码器30通过对视频数据的残余块与相关联于相应语法元素的视频数据的对应预测块进行求和来重构建视频数据。例如,视频解码器30基于语法元素的第一群组和语法元素的经解码的第二群组来帧内预测解码CU的PU。
重申,类似于以上关于视频编码器20和图5进行的描述,语法元素的第一群组的实例包含多个旗标(例如,prev_intra_luma_pred_flag语法元素)。所述多个旗标中的旗标可为语法元素的第一群组的指示以下情形的语法元素:相应PU的亮度样本的帧内预测模式是否基于到最可能模式的列表的索引。
在一些实例中,语法元素的第二群组包含第一语法元素,所述第一语法元素在语法元素的第一群组中的对应语法元素指示相应PU的亮度样本的帧内预测模式是基于到最可能模式的列表的索引的情况下指示到最可能模式的列表的索引。例如,如果相应PU的prev_intra_luma_pred_flag语法元素指示所述相应PU的帧内预测模式是基于到最可能模式的列表的索引,那么相应PU的对应mpm_idx语法元素指示到最可能模式的列表的索引。在此实例中,将mpm_idx语法元素视为语法元素的第二群组中的第一语法元素。
在一些实例中,语法元素的第二群组包含第二语法元素,所述第二语法元素在语法元素的第一群组中的对应语法元素指示相应PU的亮度样本的帧内预测模式不基于到最可能模式的列表的索引的情况下指示所述相应PU的帧内预测模式。例如,如果相应PU的prev_intra_luma_pred_flag语法元素指示所述相应PU的帧内预测模式不基于到最可能模式的列表的索引,那么相应PU的对应rem_intra_luma_pred_mode语法元素指示帧内预测模式。在此实例中,将rem_intra_luma_pred_mode语法元素视为语法元素的第二群组中的第二语法元素。
如以上所描述,视频解码器30构建的最可能模式的列表识别一或多个相邻PU的一或多个帧内预测模式。在一些实例中,视频解码器30可在接收CU的PU的语法元素的第二群组的任何语法元素之前接收CU的PU的语法元素的第一群组的所有语法元素。在一些实例中,视频解码器30可在旁路解码语法元素的第二群组的任何语法元素之前CABAC解码语法元素的第一群组的所有语法元素。
在以上实例中,当CU的预测模式为INTRA_N×N时,CU包含四个PU,且每一PU具有一个亮度帧内预测模式,且整个CU仅具有一个色度帧内预测模式,然而,此设计可存在一些潜在缺陷。作为一个实例,可存在低效预测性能,这是因为具有不同纹理型样的四个PU被迫使用一个相同的色度预测模式。作为另一实例,亮度分量与色度分量之间可存在不一致模式发信号。
以下描述用以解决与针对整个CU仅存在一个色度帧内预测模式的要求相关联的缺陷的一些实例。可在针对整个CU仅存在一个色度帧内预测模式时结合以上所描述的技术,或在仅存在整个CU的一个色度帧内预测模式时与以上所描述的技术分离地应用以下技术。
为了解决以上所引入的低效预测性能的潜在问题,本发明的技术包含针对每一PU用信号发送一个色度帧内预测模式(如针对亮度帧内预测模式所进行),即,在当前HEVC标准的上下文中,针对具有如INTRA_N×N的预测模式的CU用信号发送四个chroma_intra_prediction_mode。通过此设计,因此用信号发送一个“luma_intra_prediction_mode”语法元素和一个“chroma_intra_prediction_mode”语法元素以表示PU的帧内预测模式。
在一些实例中,除非当前CU大小等于8×8且最小变换单元大小为4×4,否则可应用此帧内模式发信号方案。更一般来说,在当前CU大小在每一维度上为最小变换单元大小的两倍时,此例外状况存在,此情形意谓当前CU的色度分量等于最小变换单元大小且无法进一步分裂成四个PU(假设原始格式为YUV420)。在此状况下,仅针对当前CU用信号发送一个chroma_intra_prediction_mode。
根据这些实例,可如表11和表12的实例中所展示来实施帧内模式的译码结构。
prev_intra_luma_pred_flag[x0][y0] |
CABAC |
if(prev_intra_luma_pred_flag[x0][y0]) |
|
mpm_idx[x0][y0] |
旁路 |
Else |
|
rem_intra_luma_pred_mode[x0][y0] |
旁路 |
chroma_mode_cabac_bins[x0][y0] |
CABAC |
chroma_mode_bypass_bins[x0][y0] |
旁路 |
表11:intra_2N×2N的帧内模式译码结构
表12:intra_N×N的帧内模式译码结构
以下描述定义CU的每一PU的亮度样本和每一PU的色度样本的帧内预测模式而非针对整个CU的色度样本仅定义一个帧内预测模式的实例。表13和表14分别定义用于针对intra_2N×2N和intra_N×N的帧内模式译码结构布置帧内预测语法的方式,其中将亮度帧内预测模式和色度帧内预测模式的所有经CABAC译码的二进制位一起译码,且接着将亮度帧内预测模式和色度帧内预测模式的所有经旁路译码的二进制位一起译码。表15和表16分别定义用于针对intra_2N×2N和intra_N×N的帧内模式译码结构布置帧内预测语法的方式,其中将CU中的所有PU的帧内预测模式的所有经CABAC译码的二进制位一起译码,且接着将帧内预测模式的所有经旁路译码的二进制位一起译码。表17和表18分别定义用于针对intra_2N×2N和intra_N×N的帧内模式译码结构布置帧内预测语法的方式,其中将CU中的所有PU的亮度帧内预测模式和色度帧内预测模式两者的所有经CABAC译码的二进制位译码,且接着将亮度帧内预测模式和色度帧内预测模式的所有经旁路译码的二进制位一起译码。
表13:intra_2N×2N的帧内模式译码结构
表14:intra_2N×2N的帧内模式译码结构
表15:intra_N×N的帧内模式译码结构
表16:intra_2N×2N的帧内模式译码结构
表17:intra_N×N的帧内模式译码结构
表18:intra_2N×2N的帧内模式译码结构
在一或多个实例中,所描述的功能可以硬件、软件、固件或其任何组合来实施。如果以软件实施,那么所述功能可作为一或多个指令或代码存储于计算机可读媒体上或通过计算机可读媒体传输,且由基于硬件的处理单元执行。计算机可读媒体可包含计算机可读存储媒体(其对应于例如数据存储媒体的有形媒体)或通信媒体,通信媒体包含(例如)根据通信协议促进计算机程序从一处传送到另一处的任何媒体。以此方式,计算机可读媒体一般可对应于(1)非暂时性的有形计算机可读存储媒体,或(2)例如信号或载波的通信媒体。数据存储媒体可为可由一或多个计算机或一或多个处理器存取以检索指令、代码和/或数据结构以用于实施本发明中所描述的技术的任何可用媒体。计算机程序产品可包含计算机可读媒体。
作为实例而非限制,这些计算机可读存储媒体可包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置、快闪存储器或可用以存储呈指令或数据结构的形式的所要程序代码且可由计算机存取的任何其它媒体。又,将任何连接恰当地称为计算机可读媒体。例如,如果使用同轴缆线、光缆、双绞线、数字用户线(DSL)或无线技术(例如,红外线、无线电和微波)从网站、服务器或其它远端源传输指令,那么同轴缆线、光缆、双绞线、DSL或无线技术(例如,红外线、无线电和微波)包含于媒体的定义中。然而,应理解,计算机可读存储媒体和数据存储媒体不包含连接、载波、信号或其它暂时性媒体,而替代地针对非暂时性有形存储媒体。如本文中所使用,磁盘和光盘包含紧密光盘(CD)、激光光盘、光盘、数字影音光盘(DVD)、软性磁盘和蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘用激光以光学方式再生数据。以上各物的组合也应包含于计算机可读媒体的范围内。
可由例如一或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、场可编程门逻辑阵列(FPGA)或其它等效集成或离散逻辑电路的一或多个处理器来执行指令。因此,如本文中所使用的术语“处理器”可指前述结构或适合于实施本文中所描述的技术的任何其它结构中的任一者。另外,在一些方面中,可将本文中所描述的功能性提供于经配置以用于编码和解码的专用硬件和/或软件模块内,或并入于组合式编解码器中。又,可将所述技术完全实施于一或多个电路或逻辑元件中。
本发明的技术可以广泛多种装置或设备实施,所述装置或设备包含无线手机、集成电路(IC)或一组IC(例如,芯片组)。各种组件、模块或单元描述于本发明中以强调经配置以执行所揭示的技术的装置的功能方面,但未必需要由不同硬件单元来实现。更确切来说,如以上所描述,可将各种单元组合于编解码器硬件单元中,或由互操作性硬件单元(包含如以上所描述的一或多个处理器)的集合结合合适软件和/或固件来提供。已描述各种实例。这些和其它实例在以下权利要求书的范围内。