CN104185990B - 视频译码中的系数的译码 - Google Patents

视频译码中的系数的译码 Download PDF

Info

Publication number
CN104185990B
CN104185990B CN201380006166.8A CN201380006166A CN104185990B CN 104185990 B CN104185990 B CN 104185990B CN 201380006166 A CN201380006166 A CN 201380006166A CN 104185990 B CN104185990 B CN 104185990B
Authority
CN
China
Prior art keywords
coefficient
syntactic element
decoding
block
absolute value
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.)
Expired - Fee Related
Application number
CN201380006166.8A
Other languages
English (en)
Other versions
CN104185990A (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.)
Qualcomm Inc
Original Assignee
Qualcomm 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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN104185990A publication Critical patent/CN104185990A/zh
Application granted granted Critical
Publication of CN104185990B publication Critical patent/CN104185990B/zh
Expired - Fee Related 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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4006Conversion to or from arithmetic code
    • 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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • 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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/129Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
    • 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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • 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/18Methods 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 set of transform coefficients
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • 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
    • 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

视频译码中的系数的译码
本申请案主张以下申请案的权益:
2012年1月22日申请的第61/589,384号美国临时专利申请案;
2012年1月30日申请的第61/592,300号美国临时专利申请案;
2012年3月2日申请的第61/606,300号美国临时专利申请案;
2012年3月2日申请的第61,606,304号美国临时专利申请案;
2012年3月2日申请的第61/606,338号美国临时专利申请案;
2012年4月16日申请的第61/625,062号美国临时专利申请案;以及
2012年4月16日申请的第61/625,072号美国临时专利申请案,
以上申请案的每一者的整个内容以引用方式并入本文。
技术领域
本发明涉及视频译码和压缩,且特定来说涉及视频译码中的系数的译码。
背景技术
数字视频能力可并入到广泛多种装置中,包含数字电视机、数字直播系统、无线广播系统、个人数字助理(PDA)、膝上型或桌上型计算机、平板计算机、电子书阅读器、数码相机、数字记录装置、数字媒体播放器、视频游戏装置、视频游戏控制台、蜂窝式或卫星无线电电话、所谓的“智能电话”、视频电话会议装置、视频流式传输装置和类似装置。数字视频装置实施视频压缩技术,例如由MPEG-2、MPEG-4、ITU-T H.263、 ITU-T H.264/MPEG-4第10部分高级视频译码(AVC)界定的标准、当前在开发的高效视频译码(HEVC)标准以及此些标准的扩展中描述的那些技术。视频装置可通过实施此些视频压缩技术来较有效地发射、接收、编码、解码和/或存储数字视频信息。
视频压缩技术执行空间(图片内)预测和/或时间(图片间)预测以减少或移除视频序列中固有的冗余。对于基于块的视频译码,可将视频切片(即,视频帧或视频帧的一部分)分割为若干视频块,所述视频块也可称为树块、译码单元(CU)和/或译码节点。图片的经帧内译码(I)切片中的视频块是使用相对于同一图片中的相邻块中的参考样本的空间预测来编码。图片的经帧间译码(P或B)切片中的视频块可使用相对于同一图片中的相邻块中的参考样本的空间预测或相对于其它参考图片中的参考样本的时间预测。图片可称为帧,且参考图片可称为参考帧。
空间或时间预测得到待译码块的预测块。残余数据表示待译码的原始块与预测块之间的像素差。经帧间译码块是根据指向形成预测块的参考样本的块的运动向量以及指示经译码块与预测块之间的差的残余数据来编码。经帧内译码块是根据帧内译码模式和残余数据来编码。为了进一步压缩,可将残余数据从像素域变换到变换域,从而得到残余系数,所述系数随后可经量化。可扫描初始以二维阵列布置的经量化系数以便产生系数的一维向量,且可应用熵译码以实现甚至更多的压缩。
发明内容
大体上,本发明描述用于对视频译码中的系数块的系数进行译码的技术。所述系数可包括对应于与视频块相关联的残余像素值集合的经变换系数,其分别经译码且变换到频域中。或者,如果未将变换应用于残余样本块,那么系数可为样本域中的残余样本。特定来说,视频编码器产生系数块且对系数块中的系数执行多个译码遍次。在每一译码遍次期间,所述视频编码器对所述系数块中的系数的语法元素的不同集合进行编码。视频解码器可使用系数的所述语法元素来确定所述系数的值。当视频编码器执行除了初始译码遍次之外的译码遍次时,视频编码器可至少部分地基于在非因果系数的较早译码遍次中产生的语法元素的值且至少部分地基于在因果系数的当前译码遍次期间产生的语法元素的值来选择语法元素的译码上下文。根据当前译码遍次的译码次序,非因果系数在系数之后发生,且因果系数在系数之前发生。视频编码器可基于选定译码上下文对语法元素进行熵编码。视频解码器可执行相似系列的译码遍次,其中所述视频解码器选择译码上下文且对系数的语法元素进行熵解码。
在一个方面中,本发明描述用于对视频数据进行编码的方法。所述方法包括基于残余样本块产生系数块。另外,所述方法包括在所述系数块的系数的第一译码遍次期间对对应于所述系数块的系数的语法元素的第一集合进行编码。此外,所述方法包括在系数块的系数的第二译码遍次期间编码对应于系数块的系数的语法元素的第二集合。对语法元素的第二集合进行编码包括产生第一语法元素,所述第一语法元素在语法元素的所述第二集合中且对应于所述系数块的当前系数。对语法元素的第二集合进行编码还包括至少部分地基于第二语法元素和第三语法元素来选择第一语法元素的译码上下文。第二语法元素在语法元素的第一集合中且对应于非因果系数。所述第三语法元素在语法元素的所述第二集合中且对应于因果系数,所述非因果系数在所述第二译码遍次的译码次序中的所述当前系数之后发生,所述因果系数在所述第二译码遍次的所述译码次序中的所述当前系数之前发生。另外,对语法元素的第二集合进行编码包括至少部分地基于为第一语法元素选择的译码上下文来熵编码第一语法元素。
在另一方面中,本发明描述包括经配置以基于残余样本块产生系数块的一或多个处理器的视频编码装置。所述一或多个处理器还经配置以在所述系数块的系数的第一译码遍次期间对对应于所述系数块的系数的语法元素的第一集合进行编码。另外,所述一或多个处理器还经配置以在系数块的系数的第二译码遍次期间对对应于系数块的系数的语法元素的第二集合进行编码。所述一或多个处理器经配置以使得在所述第二译码遍次期间所述一或多个处理器产生第一语法元素,所述第一语法元素在语法元素的所述第二集合中且对应于所述系数块的当前系数。在所述第二译码遍次期间,所述一或多个处理器还至少部分地基于第二语法元素和第三语法元素来选择第一语法元素的译码上下文。第二语法元素在语法元素的第一集合中且对应于非因果系数。所述第三语法元素在语法元素的所述第二集合中且对应于因果系数,所述非因果系数在所述第二译码遍次的译码次序中的所述当前系数之后发生,所述因果系数在所述第二译码遍次的所述译码次序中的所述当前系数之前发生。另外,在第二译码遍次期间,所述一或多个处理器至少部分地基于为第一语法元素选择的译码上下文来对第一语法元素进行熵编码。
在另一方面中,本发明描述一种视频编码装置,其包括用于基于残余样本块产生系数块的装置。所述视频编码装置还包括用于在所述系数块的系数的第一译码遍次期间对对应于所述系数块的系数的语法元素的第一集合进行编码的装置。另外,视频编码装置包括用于在系数块的系数的第二译码遍次期间解码对应于系数块的系数的语法元素的第二集合进行编码的装置。用于对语法元素的第二集合进行编码的装置包括用于产生第一语法元素的装置,所述第一语法元素在语法元素的所述第二集合中且对应于所述系数块的当前系数。用于对语法元素的第二集合进行编码的装置还包括用于至少部分地基于第二语法元素和第三语法元素来选择第一语法元素的译码上下文的装置。第二语法元素在语法元素的第一集合中且对应于非因果系数。所述第三语法元素在语法元素的所述第二集合中且对应于因果系数,所述非因果系数在所述第二译码遍次的译码次序中的所述当前系数之后发生,所述因果系数在所述第二译码遍次的所述译码次序中的所述当前系数之前发生。用于对语法元素的第二集合进行编码的装置还包括用于至少部分地基于为第一语法元素选择的译码上下文来对第一语法元素进行熵编码的装置。
在另一方面中,本发明描述一种存储指令的计算机可读存储媒体,所述指令在由视频编码装置的一或多个处理器执行时配置所述视频编码装置以基于残余样本块产生系数块。所述指令还配置所述视频编码装置以在所述系数块的系数的第一译码遍次期间对对应于所述系数块的系数的语法元素的第一集合进行编码。所述指令还配置所述视频编码装置以在所述系数块的系数的第二译码遍次期间对对应于所述系数块的系数的语法元素的第二集合进行编码。所述指令配置所述视频编码装置以使得在第二译码遍次期间,所述视频编码装置产生第一语法元素,所述第一语法元素在语法元素的第二集合中且对应于系数块的当前系数。所述指令还配置所述视频编码装置以使得在所述第二译码遍次期间,所述视频编码装置至少部分地基于第二语法元素和第三语法元素来选择第一语法元素的译码上下文。第二语法元素在语法元素的第一集合中且对应于非因果系数。所述第三语法元素在语法元素的所述第二集合中且对应于因果系数,所述非因果系数在所述第二译码遍次的译码次序中的所述当前系数之后发生,所述因果系数在所述第二译码遍次的所述译码次序中的所述当前系数之前发生。另外,所述指令配置所述视频编码装置以使得在第二译码遍次期间,所述视频编码装置至少部分地基于为第一语法元素选择的译码上下文来对第一语法元素进行熵编码。
在另一方面中,本发明描述用于对视频数据进行解码的方法。所述方法包括在系数块的系数的第一译码遍次期间对对应于所述系数块的系数的语法元素的第一集合进行解码。所述方法还包括在系数块的系数的第二译码遍次期间对对应于系数块的系数的语法元素的第二集合进行解码。执行第二译码遍次包括至少部分地基于第二语法元素和第三语法元素来选择第一语法元素的译码上下文,所述第一语法元素在语法元素的第二集合中且对应于系数块的当前系数。第二语法元素在语法元素的第一集合中且对应于非因果系数。所述第三语法元素在语法元素的所述第二集合中且对应于因果系数,所述非因果系数在所述第二译码遍次的译码次序中的所述当前系数之后发生,所述因果系数在所述第二译码遍次的所述译码次序中的所述当前系数之前发生。执行第二译码遍次还包括至少部分地基于为第一语法元素选择的译码上下文来对第一语法元素进行熵解码。另外,执行第二译码遍次包括基于所述系数块的所述系数产生残余样本块。
在另一方面中,本发明描述一种视频解码装置,其包括一或多个处理器,所述一或多个处理器经配置以在系数块的系数的第一译码遍次期间对对应于系数块的系数的语法元素的第一集合进行解码。所述一或多个处理器还经配置以在所述系数块的系数的第二译码遍次期间对对应于所述系数块的系数的语法元素的第二集合进行解码。所述一或多个处理器经配置以使得在第二译码遍次期间,所述一或多个处理器至少部分地基于第二语法元素和第三语法元素来选择第一语法元素的译码上下文,所述第一语法元素在语法元素的第二集合中且对应于系数块的当前系数。第二语法元素在语法元素的第一集合中且对应于非因果系数。所述第三语法元素在语法元素的所述第二集合中且对应于因果系数,所述非因果系数在所述第二译码遍次的译码次序中的所述当前系数之后发生,所述因果系数在所述第二译码遍次的所述译码次序中的所述当前系数之前发生。所述一或多个处理器还经配置以使得在第二译码遍次期间,所述一或多个处理器至少部分地基于为第一语法元素选择的译码上下文来对第一语法元素进行熵解码。此外,所述一或多个处理器经配置以基于所述系数块的所述系数产生残余样本块。
在另一方面中,本发明描述一种视频解码装置,其包括用于在系数块的系数的第一译码遍次期间对对应于系数块的系数的语法元素的第一集合进行解码的装置。所述视频解码装置还包括用于在所述系数块的系数的第二译码遍次期间对对应于所述系数块的系数的语法元素的第二集合进行解码的装置。用于执行第二译码遍次的装置包括用于至少部分地基于第二语法元素和第三语法元素来选择第一语法元素的译码上下文的装置,所述第一语法元素在语法元素的第二集合中且对应于系数块的当前系数。第二语法元素在语法元素的第一集合中且对应于非因果系数。所述第三语法元素在语法元素的所述第二集合中且对应于因果系数,所述非因果系数在所述第二译码遍次的译码次序中的所述当前系数之后发生,所述因果系数在所述第二译码遍次的所述译码次序中的所述当前系数之前发生。用于执行第二译码遍次的装置还包括用于至少部分地基于为第一语法元素选择的译码上下文来对第一语法元素进行熵解码的装置。此外,所述视频解码装置包括用于基于所述系数块的所述系数产生残余样本块的装置。
在另一方面中,本发明描述一种存储指令的计算机可读存储媒体,所述指令在由视频解码装置的一或多个处理器执行时配置所述视频解码装置以在系数块的系数的第一译码遍次期间对对应于系数块的系数的语法元素的第一集合进行解码。所述指令还配置所述视频解码装置以在所述系数块的系数的第二译码遍次期间对对应于所述系数块的系数的语法元素的第二集合进行解码。所述指令配置所述视频编码装置以使得在第二译码遍次期间,所述视频解码装置至少部分地基于第二语法元素和第三语法元素来选择第一语法元素的译码上下文,所述第一语法元素在语法元素的第二集合中且对应于系数块的当前系数。第二语法元素在语法元素的第一集合中且对应于非因果系数。所述第三语法元素在语法元素的所述第二集合中且对应于因果系数,所述非因果系数在所述第二译码遍次的译码次序中的所述当前系数之后发生,所述因果系数在所述第二译码遍次的所述译码次序中的所述当前系数之前发生。所述指令还配置所述视频解码装置以使得在第二译码遍次期间,所述视频解码装置至少部分地基于为第一语法元素选择的译码上下文来对第一语法元素进行熵编码。此外,所述指令配置所述视频解码装置以基于所述系数块的所述系数产生残余样本块。
在附图和以下描述中陈述本发明的一个或一个以上实例的细节。从描述、图式以及权利要求书将明了其它特征、目的和优点。
附图说明
图1是图解说明可利用本发明中描述的技术的实例性视频译码系统的框图。
图2是图解说明经划分为若干子块的实例系数块的概念图。
图3是图解说明未经划分为若干子块的实例系数块的概念图。
图4是图解说明经划分为若干子块的实例系数块的概念图且展示包含非因果系数的上下文邻域。
图5是图解说明可实施本发明中描述的技术的实例性视频编码器的框图。
图6是图解说明可实施本发明中描述的技术的实例性视频解码器的框图。
图7是图解说明根据本发明的一或多种技术的用于对视频数据进行编码的视频编码器的实例操作的流程图。
图8是图解说明根据本发明的一或多种技术的用于对视频数据进行解码的视频解码器的实例操作的流程图。
图9A是图解说明实例4x4子块的概念图。
图9B到9G是图解说明图9A的子块中的系数的上下文邻域中的实例孔的概念图。
图10A到10F是图解说明系数块的4x4子块中的系数的实例群组的概念图。
图11是图解说明系数块的4x4子块内的系数的另一实例分组的概念图。
图12是图解说明根据本发明的一或多种技术的视频解码器在三个译码遍次中对子块的系数语法元素进行译码的实例操作的流程图。
图13A和13B是图解说明当根据对角线译码次序执行译码遍次时用于选择sigMapFlag的译码上下文的上下文邻域的实例模板的概念图。
图14A和14B是图解说明当根据水平译码次序执行译码遍次时用于选择sigMapFlag 的译码上下文的上下文邻域的实例模板的概念图。
图15A和15B是图解说明当根据垂直译码次序执行译码遍次时用于选择sigMapFlag 的译码上下文的上下文邻域的实例模板的概念图。
具体实施方式
在视频编码期间,视频编码器可通过从原始样本块的样本减去预测样本块的对应样本来产生残余样本块。在一些情况下,视频编码器可随后将一或多个变换应用于残余样本块以便产生系数块。在其它情况下,视频编码器不将变换应用于残余样本块。如果视频编码器不将变换应用于残余样本块,那么视频译码器可以与系数块相同或相似的方式处置残余样本块。因此,为便于阐释,本发明可将残余样本块称为系数块且将残余样本块中的样本称为系数。然而应注意,如果视频编码器不将变换应用于残余样本块,那么系数块和系数的论述可应用于残余样本块和残余样本。
视频编码器可根据特定译码次序处理系数块中的每一系数。当视频编码器处理系数块中的系数时,视频编码器可产生且熵编码系数的语法元素集合。视频解码器可能够基于系数的语法元素集合来确定系数的值。为了熵编码系数的语法元素,视频编码器可选择语法元素的译码上下文,且随后使用语法元素的选定译码上下文来对语法元素进行熵编码。视频编码器可基于系数的上下文邻域中的先前处理系数的语法元素的值来选择语法元素的译码上下文。
上文描述的用于处理系数的方法可能具有若干缺点。举例来说,上述方法可使得难以使系数块的多个系数的处理并行化。在另一实例中,上述方法可需要视频编码器(和视频解码器)存储系数的绝对值以用于选择译码上下文。存储此些绝对值可增加视频译码装置中所需的存储量。
本发明的技术可解决这些问题和其它问题。根据本发明的技术,视频编码器可执行多个译码遍次以产生和编码系数块的系数的语法元素。视频编码器可根据相同译码次序或根据两个或两个以上不同译码次序执行译码遍次中的每一者。当视频编码器执行除了初始译码遍次之外的译码遍次时,视频编码器可至少部分地基于在非因果系数的较早译码遍次中产生的语法元素的值且至少部分地基于在因果系数的当前译码遍次期间产生的语法元素的值来选择当前语法元素的译码上下文。根据当前译码遍次的译码次序,非因果系数在当前系数(即,正译码的系数)之后发生,且因果系数在当前系数之前发生。视频编码器可基于选定译码上下文对当前语法元素进行熵编码。通过至少部分地基于一或多个非因果系数的语法元素来选择当前系数的当前语法元素的译码上下文,视频编码器可改善视频编码器选择译码上下文的准确性。同时,通过至少部分地基于一或多个非因果系数的语法元素来选择译码上下文,视频编码器可能够选择译码上下文而不如此重地依赖于视频编码器可与当前系数并行处理的因果语法元素。
举例来说,视频编码器可在系数块的系数的第一译码遍次期间编码对应于系数块的系数的语法元素的第一集合。此外,视频编码器可在系数块的系数的第二译码遍次期间编码对应于系数块的系数的语法元素的第二集合。当视频编码器执行第二译码遍次时,视频译码器可产生第一语法元素。第一语法元素在语法元素的第二集合中且对应于系数块的当前系数。视频编码器可至少部分地基于第二语法元素和第三语法元素来选择第一语法元素的译码上下文。第二语法元素在语法元素的第一集合中且对应于非因果系数。第三语法元素在语法元素的第二集合中且对应于因果系数。非因果系数在第二译码遍次的译码次序中在当前系数之后发生。因果系数在译码次序中在当前系数之前发生。视频编码器可至少部分地基于针对第一语法元素选择的译码上下文来熵编码第一语法元素。
附图图解说明实例。在附图中由参考标号指示的元件对应于在以下描述中由相同参考标号指示的元件。在本发明中,具有以序数词(例如,“第一”、“第二”、“第三”等等)开始的名称的元件不一定暗示所述元件具有特定次序。而是,此些序数词仅可用以指代相同或相似类型的不同元件。
图1是图解说明可利用本发明的技术的实例性视频译码系统10的框图。如本文描述,术语“视频译码器”一般指代视频编码器和视频解码器两者。在本发明中,术语“视频译码”或“译码”可一般指代视频编码或视频解码。
如图1所示,视频译码系统10包含源装置12和目的地装置14。源装置12产生经编码视频数据。因此,源装置12可称为视频编码装置或视频编码设备。目的地装置14 可对由源装置12产生的经编码视频数据进行解码。因此,目的地装置14可称为视频解码装置或视频解码设备。源装置12和目的地装置14可为视频译码装置或视频译码设备的实例。源装置12和目的地装置14可包括广泛多种装置,包含桌上型计算机、移动计算装置、笔记型(例如,膝上型)计算机、平板计算机、机顶盒、例如所谓的“智能”电话等电话手持机、电视机、相机、显示装置、数字媒体播放器、视频游戏控制台、车载计算机或类似装置。
目的地装置14可经由信道16从源装置12接收经编码视频数据。信道16可包括能够将经编码视频数据从源装置12移动到目的地装置14的一或多个媒体和/或装置。在一个实例中,信道16可包括一或多个通信媒体,其使得源装置12能够实时地将经编码视频数据直接发射到目的地装置14。在此实例中,源装置12可根据例如无线通信协议等通信标准而调制经编码视频数据,且可将经调制视频数据发射到目的地装置14。所述一或多个通信媒体可包含无线和/或有线通信媒体,例如射频(RF)频谱或者一或多种物理传输线。所述一或多个通信媒体可形成基于包的网络的部分,所述网络例如为局域网、广域网或全球网(例如,因特网)。所述一或多个通信媒体可包含路由器、交换机、基站或促进从源装置12到目的地装置14的通信的其它设备。
在另一实例中,信道16可包含存储由源装置12产生的经编码视频数据的存储媒体。在此实例中,目的地装置14可经由磁盘存取或卡存取而存取存储媒体。存储媒体可包含多种本地存取的数据存储媒体,例如蓝光光盘、DVD、CD-ROM、快闪存储器或其它合适的用于存储经编码视频数据的数字存储媒体。
在又一实例中,信道16可包含文件服务器或另一中间存储装置,其存储由源装置12产生的经编码视频数据。在此实例中,目的地装置14可经由流式传输或下载而存取存储在文件服务器或其它中间存储装置处的经编码视频数据。文件服务器可为能够存储经编码视频数据且将所述经编码视频数据发射到目的地装置14的类型的服务器。实例文件服务器包含网络服务器(例如,用于网站)、文件传送协议(FTP)服务器、网络附接存储(NAS)装置和本地磁盘驱动器。
目的地装置14可通过标准数据连接(例如因特网连接)存取经编码视频数据。数据连接的实例类型包含适于存取存储在文件服务器上的经编码视频数据的无线信道(例如,Wi-Fi连接)、有线连接(例如,DSL、电缆调制解调器等等)或两者的组合。经编码视频数据从文件服务器的发射可为流式发射、下载发射或两者的组合。
本发明的技术不限于无线应用或设定。所述技术可应用于视频译码以支持多种多媒体应用,例如空中电视广播、闭路电视发射、卫星电视发射、流式传输视频发射(例如,经由因特网)、为存储在数据存储媒体上对视频数据的编码、对存储在数据存储媒体上的视频数据的解码,或其它应用。在一些实例中,视频译码系统10可经配置以支持单向或双向视频发射以支持例如视频流式传输、视频重放、视频广播和/或视频电话等应用。
在图1的实例中,源装置12包含视频源18、视频编码器20和输出接口22。在一些实例中,输出接口22可包含调制器/解调器(调制解调器)和/或发射器。视频源18可包含视频俘获装置(例如摄像机)、含有先前俘获视频数据的视频档案、用以从视频内容提供者接收视频数据的视频馈送接口,和/或用于产生视频数据的计算机图形系统,或此些视频数据源的组合。
视频编码器20可对来自视频源18的视频数据进行编码。在一些实例中,源装置12经由输出接口22将经编码视频数据直接发射到目的地装置14。经编码视频数据也可存储到存储媒体或文件服务器上供目的地装置14稍后存取,用于解码和/或重放。
在图1的实例中,目的地装置14包含输入接口28、视频解码器30和显示装置32。在一些实例中,输入接口28包含接收器和/或调制解调器。输入接口28可经由信道16 接收经编码视频数据。显示装置32可与目的地装置14集成或可在目的地装置14的外部。大体上,显示装置32显示经解码视频数据。显示装置32可包括多种显示装置,例如液晶显示器(LCD)、等离子显示器、有机发光二极管(OLED)显示器,或另一类型的显示装置。
视频编码器20和视频解码器30可根据例如当前在开发的高效视频译码(HEVC)标准等视频压缩标准来操作,且可符合HEVC测试模型(HM)。称为“HEVC工作草案5”或“WD5”的即将到来的HEVC标准的草案在布洛斯(Bross)等人的文献JCTVC-G1103 “WD5:高效视频译码工作草案5(WD5:Working Draft 5of High-Efficiency Video Coding)”(ITU-T SG16WP3和ISO/IEC JTC1/SC29/WG11的视频译码联合合作组 (JCT-VC),第7次会议:瑞士日内瓦,2011年11月)中描述,其从2012年11月26日起可从http://phenix.it-sudparis.eu/jct/doc_end_user/documents/7_Geneva/wg11/JCTVC- G1103-v12.zip下载,其整个内容以引用方式并入本文。称为“HEVC工作草案9”的即将到来的HEVC标准的另一草案在布洛斯(Bross)等人的“高效视频译码(HEVC)文本规范草案9(High Efficiency Video Coding(HEVC)text specification draft 9)”(ITU-T SG16 WP3和ISO/IEC JTC1/SC29/WG11的视频译码联合合作组(JCT-VC),第11次会议:中国上海,2012年10月)中描述,其从2012年11月26日起可从http://phenix.int-evry.fr/jct/ doc_end_user/documents/11_Shanghai/wg11/JCTVC-K1003-v8.zip下载,其整个内容以引用方式并入本文。
或者,视频编码器20和视频解码器30可根据其它专门或行业标准操作,包含ITU-TH.261、ISO/IEC MPEG-1Visual、ITU-T H.262或、ISO/IEC MPEG-2Visual、ITU-T H.263、ISO/IEC MPEG-4Visual和ITU-T H.264(也称为ISO/IEC MPEG-4AVC),包含其可缩放视频译码(SVC)和多视图视频译码(MVC)扩展。然而本发明的技术不限于任何特定译码标准或技术。
再次,图1仅是实例,且本发明的技术可应用于不一定包含编码与解码装置之间的任何数据通信的视频译码设定(例如,视频编码或视频解码)。在其它实例中,数据是从本地存储器检索、经由网络串流传输等。编码装置可对数据进行编码且将数据存储到存储器,和/或解码装置可从存储器检索数据且对数据进行解码。在许多实例中,编码和解码由不彼此通信但是简单地将数据编码到存储器和/或从存储器检索和解码数据的装置执行。
视频编码器20和视频解码器30各自可实施为多种合适电路中的任一者,例如一或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、离散逻辑、硬件或其任一组合。如果所述技术部分地以软件实施,装置可将用于所述软件的指令存储在合适的非暂时性计算机可读存储媒体中,且可使用一或多个处理器执行硬件中的指令以执行本发明的技术。上述任一者(包含硬件、软件、硬件与软件的组合等等)可视为一或多个处理器。视频编码器20和视频解码器30中的每一者可包含于一或多个编码器或解码器中,其中任一者可集成为相应装置中的组合式编码器/解码器(CODEC) 的部分。
本发明可大体上涉及视频编码器20将某些信息“用信号发送”到另一装置,例如视频解码器30。术语“用信号发送”可大体上指代表示经编码视频数据的语法元素和/ 或其它数据的通信。此通信可实时或近实时地发生。或者,此通信可在一时间跨度中发生,例如可能当在编码时在经编码位流中将语法元素存储到计算机可读存储媒体时发生,所述语法元素可随后在存储到此媒体之后的任何时间由解码装置检索。
如上文简要提到,视频编码器20对视频数据进行编码。视频数据可包括一或多个图片。图片中的每一者可为静止图像。视频编码器20可产生位流,位流包含形成视频数据的经译码表示的位序列。视频数据的经译码表示可包含经译码图片和相关联数据。经译码图片是图片的经译码表示。相关联数据可包含序列参数集(SPS)、图片参数集(PPS) 和其它语法结构。SPS可含有适用于零个或零个以上图片序列的参数。PPS可含有适用于零个或零个以上图片的参数。语法结构可为在位流中以指定次序一起存在的零或多个语法元素的集合。
图片包含一亮度(即,亮度或Y)样本块和两个色度(即,色度)样本块。为便于阐释,本发明可将样本的二维阵列称为样本块。为了产生图片的经编码表示,视频编码器20 可产生图片的多个译码树块(CTB)。在一些实例中,树块也可称为最大译码单元(LCU) 或树块。图片的每一CTB可与一亮度块和两个色度块相关联。CTB亮度块是图片的亮度块的子块且CTB色度块是图片的色度块的子块。CTB色度块对应于图片内与CTB亮度块相同的区域。HEVC的CTB可广义地类似于例如H.264/AVC等先前视频译码标准的宏块。然而,CTB不一定限于特定大小,且可包含一或多个译码单元(CU)。视频编码器20可使用四叉树分割来将与CTB相关联的样本块分割为与CU相关联的样本块,因此名称为“译码树块”。
图片的CTB可经分组为一或多个切片。在一些实例中,切片中的每一者包含整数个CTB。作为对图片进行编码的部分,视频编码器20可产生图片的每一切片的经编码表示(即,经译码切片)。为了产生经译码切片,视频编码器20可对切片的每一CTB进行编码以产生切片的CTB中的每一者的经编码表示(即,经译码CTB)。
为了产生经译码CTB,视频编码器20可对与CTB相关联的样本块递归地执行四叉树分割以将样本块划分为逐渐变小的样本块。CTB的CU可与一亮度样本块和两个色度样本块相关联。CU的亮度样本块可为CTB的亮度样本块的子块且CU的色度样本块可为CTB的色度样本块的子块。CU的亮度样本块和色度样本块可对应于图片内的相同区域。经分割CU可为样本块经分割为与其它CU相关联的样本块的CU。未经分割CU可为样本块未经分割为与其它CU相关联的样本块的CU。
视频编码器20可针对每一未经分割CU产生一或多个预测单元(PU)。CU的PU中的每一者可与图片的区域内对应于CU的图片区域对应。视频编码器20可产生CU的每一PU的预测样本块。PU的预测样本块可为样本块。
视频编码器20可使用帧内预测或帧间预测来产生PU的预测样本块。如果视频编码器20使用帧内预测来产生PU的预测样本块,那么视频编码器20可基于与PU相关联的图片的经解码样本来产生PU的预测样本块。如果视频编码器20使用帧间预测来产生 PU的预测样本块时,视频编码器20可基于除了与PU相关联的图片之外的一或多个图片的经解码像素来产生PU的预测样本块。
视频编码器20可基于CU的PU的预测样本块产生CU的残余块。CU的残余样本块可指示CU的PU的预测样本块中的样本与CU的原始样本块中的对应样本之间的差。
此外,作为对未经分割CU进行编码的部分,视频编码器20可对CU的残余样本块执行递归四叉树分割以将CU的残余样本块分割为与CU的变换单元(TU)相关联的一或多个较小残余样本块。TU中的每一者可与亮度样本的一残余样本块和色度样本的两个残余样本块相关联。
视频编码器20可将一或多个变换应用于与TU相关联的残余样本块以产生系数块(即,系数的块)。视频编码器20可对系数块中的每一者执行量化过程。量化大体上指代其中系数经量化以可能地减少用以表示所述系数的数据量从而提供进一步压缩的过程。在量化之后,视频编码器20可对表示系数的值的语法元素进行熵编码。举例来说,视频编码器20可对表示系数的值的语法元素中的至少一些执行上下文自适应二进制算术译码(CABAC)编码。对语法元素进行熵编码可提供进一步压缩。视频编码器20可输出包含经熵编码语法元素的位流。
视频解码器30可接收位流。位流可包含由视频编码器20编码的视频数据的经译码表示。视频解码器30可剖析位流以从位流提取语法元素。作为从位流提取至少一些语法元素的部分,视频解码器30可对位流中的数据执行熵解码(例如,CABAC解码、指数哥伦布解码等等)。
视频解码器30可基于从位流提取的语法元素来重构视频数据的图片。用以基于语法元素重构视频数据的过程可与由视频编码器20执行以产生语法元素的过程大体上互逆。举例来说,视频解码器30可基于与CU相关联的语法元素产生CU的PU的预测样本块。另外,视频解码器30可对与CU的TU相关联的系数块进行逆量化。视频解码器 30可对系数块执行逆变换以重构与CU的TU相关联的残余样本块。视频解码器30可基于预测样本块和残余样本块重构CU的样本块。
如上文简单提到,视频编码器20可通过将一或多个变换应用于残余样本块来产生系数块。(在一些实例中,视频编码器20可跳过将一或多个变换应用于残余样本块。) 此外,在一些实例中,视频编码器20可将系数块划分为子块。举例来说,视频编码器 20可将系数块划分为四个正方形子块。子块在本文也可称为“组块”。在一些实例中,子块的大小为十六。因此,子块中的每一者在逆扫描次序中含有十六个系数。因此,每一4x4子块对应于子集或组块。此外,在一些实例中,除了使用水平或垂直扫描的某些 8x8TU之外,所有TU使用4x4子块扫描。
视频编码器20可对子块中的每一者执行五个译码遍次。视频编码器20可在对子块中的下一者执行五个译码遍次之前对子块执行全部五个译码遍次。视频编码器20可以各种次序处理子块。举例来说,视频编码器20可以反向z扫描处理子块,其首先处理右下方子块,之后是左下方子块,右上方子块,且最终是左上方子块。例如对角线左下等其它扫描也是可能的。
当视频编码器20对子块执行译码遍次时,视频编码器20根据与特定译码遍次相关联的译码次序处理子块中的系数中的每一者。不同译码遍次可使用相同译码次序或者一或多个不同译码次序。在一些实例中,译码次序可为对角线左下次序,其在右下系数处开始,且随后从右下系数逐渐远离地处理系数的对角线。在此实例中,视频编码器20 可沿着系数的每一对角线从右上到左下处理系数。在其它实例中,译码次序可为垂直或水平次序。视频编码器20可使用反向扫描次序(即,在右下系数处开始的译码次序)用于显著水平译码(即,针对sigMapFlags、gr1Flags、gr2Flags、signFlags和levelRems)。然而,本发明的技术甚至在使用前向扫描次序时也可为有效的。本发明的技术也可无论使用对角线、z字形、水平、垂直、4x4子块扫描或任何其它扫描均为有效的。
当视频编码器20对子块执行第一译码遍次时,视频编码器20可针对子块中的每一系数产生significant_coeff_flag(简写为sigMapFlag)。在一些实例中,视频编码器20可仅针对在第一译码遍次的译码次序中的第一非零系数之后发生的那些系数产生sigMapFlag。系数的sigMapFlag指示所述系数的绝对值是否大于零。在本发明中,如果系数的绝对值大于零,那么所述系数称为“显著的”。视频编码器20和视频解码器30 可使用规则CABAC译码来对sigMapFlag进行熵译码。规则CABAC译码可使用多个上下文。
当视频编码器20对子块执行第二译码遍次时,视频编码器20针对子块中具有大于零的绝对值的每一系数产生coeff_abs_level_greater1_flag(简写为gr1Flag)。系数的gr1Flag指示所述系数的绝对值是否大于1。在一些实例中,可使用每子块最多八个gr1Flags来指示对应系数大于1。视频编码器20和视频解码器30可使用规则CABAC 译码来对gr1Flag进行熵译码。
当视频编码器20对子块执行第三译码遍次时,视频编码器20可针对子块中具有大于1的绝对值的每一系数产生coeff_abs_level_greater2_flag(简写为gr2Flag)。系数的gr2Flag指示所述系数的绝对值是否大于2。在一些实例中,可使用每子块最多一个gr2Flag来指示对应系数大于2。因此,针对每一子块可发送最多八个gr1Flag和一个gr2Flag。因此,levelRem的解译可取决于gr1Flag和/或gr2Flag是否已经译码而改变。视频编码器20和视频解码器30可使用规则CABAC译码来对gr2Flag进行熵译码。
当视频编码器20对子块执行第四译码遍次时,视频编码器20可针对子块中具有大于0的绝对值的每一系数产生coeff_sign_flag(简写为signFlag)。系数的signFlag指示系数的正/负符号。视频编码器20和视频解码器30可使用旁路熵译码来对signFlag进行熵译码。
当视频编码器20对子块执行第五译码遍次时,视频编码器20可针对子块中具有大于0的绝对值的每一系数产生coeff_abs_level_remain value(简写为levelRem)。在一些实例中,视频编码器20可用信号发送具有大于2的振幅的每一系数的levelRem(即,其中gr2Flag=1)。系数的levelRem指示系数的剩余绝对值。视频编码器20可针对子块中gr2Flag为1或当gr2Flag未经译码且gr1Flag为1时或当gr1Flag和gr2Flag未经译码且sigMapFlag为1时的每一系数产生levelRem。如果系数的gr2Flag指示系数大于2,那么系数的levelRem指示系数的绝对值减3。如果系数的gr2Flag未经译码但系数的gr1Flag 指示系数大于1,那么系数的levelRem指示系数的绝对值减2。类似地,如果系数的 gr1Flag或gr2Flag未产生但sigMapFlag为1,那么系数的levelRem指示系数的绝对值减 1。视频编码器20和视频解码器30可使用旁路熵译码来对levelRem进行熵译码。为便于阐释,本发明可将sigMapFlag、gr1Flag、gr2Flag、signFlag和levelRem称为“系数语法元素”或“等级信息”。在一些实例中,可使用另一旗标来指示整个子块是否为非显著的。
在本发明中,在较早译码遍次期间产生的语法元素称为具有比在较晚译码遍次期间产生的语法元素高的优先级。换句话说,首先译码的系数语法元素可称为具有较高优先级。举例来说,sigMapFlag具有比gr1Flag、gr2Flag、signFlag和levelRem高的优先级。gr1Flag具有比gr2Flag、signFlag和levelRem高的优先级,但具有比sigMapFlag低的优先级。针对gr2Flag、signFlag和levelRem可提供相似实例。
在视频编码器20执行第一、第二和第三译码遍次时,视频编码器20可分别对sigMapFlag、gr1Flag和gr2Flag执行规则CABAC编码。也就是说,在五个系数语法元素中,仅三个是使用CABAC进行上下文译码,即sigMapFlag、gr1Flag和gr2Flag。举例来说,在视频编码器20在第三译码遍次中产生gr2Flag时,视频编码器20可在产生下一系数gr2Flag的之前对gr2Flag执行规则CABAC编码。在视频编码器20执行第四和第五译码遍次时,视频编码器20可对signFlag和levelRem执行旁路编码。
当视频编码器20对例如sigMapFlag、gr1Flag、gr2Flag或levelRem等语法元素执行 CABAC编码时,视频编码器20可二进制化语法元素以形成包括一系列一或多个位的二进制串,称为“二进位”。视频编码器20可使用规则CABAC编码来对二进位中的一些进行编码,且可使用旁路编码来对二进位中的其它者进行编码。
当视频编码器20使用规则CABAC编码来对二进位序列进行编码时,视频编码器 20可首先识别译码上下文。译码上下文可识别译码二进位具有特定值的概率。举例来说,译码上下文可指示译码0值二进位的0.7概率和译码1值二进位的0.3概率。在识别译码上下文之后,视频编码器20可将区间划分为下部子区间和上部子区间。子区间中的一者可与值0相关联,且另一子区间可与值1相关联。子区间的宽度可与所识别译码上下文针对相关联值指示的概率成比率。如果语法元素的二进位具有与下部子区间相关联的值,那么经编码值可等于下部子区间的下部边界。如果语法元素的同一二进位具有与上部子区间相关联的值,那么经编码值可等于上部子区间的下部边界。为了对语法元素的下一二进位进行编码,视频编码器20可重复这些步骤,其中区间是与经编码位的值相关联的子区间。当视频编码器20针对下一区间重复这些步骤时,视频编码器20可基于由所识别译码上下文指示的概率和经编码二进位的实际值来使用经修改概率。
当视频解码器30执行CABAC解码时,视频解码器30可对一些二进位执行规则CABAC解码且可对其它二进位执行旁路解码。当视频解码器30对语法元素使用规则 CABAC解码时,视频解码器30可识别译码上下文。视频解码器30可随后将区间划分为下部子区间和上部子区间。子区间中的一者可与值0相关联,且另一子区间可与值1 相关联。子区间的宽度可与所识别译码上下文针对相关联值指示的概率成比率。如果经编码值在下部子区间内,那么视频解码器30可对具有与下部子区间相关联的值的二进位进行解码。如果经编码值在上部子区间内,那么视频解码器30可对具有与上部子区间相关联的值的二进位进行解码。为了对语法元素的下一二进位进行解码,视频解码器 30可重复这些步骤,其中区间是含有经编码值的子区间。当视频解码器30针对下一区间重复这些步骤时,视频解码器30可基于由所识别译码上下文指示的概率和经解码二进位来使用经修改概率。视频解码器30可随后对二进位进行去二进制化以恢复语法元素。去二进制化可称为根据二进制串与语法元素值之间的映射选择语法元素值。
替代于对所有语法元素或对所有二进位执行规则CABAC,例如视频编码器20或视频解码器30等视频译码器可使用旁路译码对一些二进位进行译码。旁路译码大体上指代对二进位进行算术编码而不使用自适应译码上下文的过程。举例来说,在旁路算术译码中,视频译码器不选择上下文且可假定两个符号(0和1)的0.5的概率。虽然旁路译码可能不如CABAC译码那样带宽高效,但旁路译码可比CABAC译码计算上成本较低。此外,执行旁路译码可允许较高程度的并行化和处理量。
选择并不准确反映二进位具有0或1的概率的译码上下文可不利地影响译码性能。因为在相邻系数的值之间存在已知的统计关系,所以视频编码器20可基于先前产生的关于相邻系数的信息来选择译码上下文。虽然基于关于相邻系数的信息选择译码上下文可增加视频编码器20选择译码上下文的准确性,但视频编码器20必须在选择译码上下文之前产生此关于相邻系数的信息。这可能阻止视频编码器20与选择语法元素的译码上下文并行地产生关于相邻系数的信息。
本发明的技术可针对等级信息和重要性信息形成经上下文译码的语法元素(例如, sigMapFlag、gr1Flag和gr2Flag)的上下文。根据本发明的一或多个技术,视频编码器20 可在系数的每一相应译码遍次期间并行地选择子块中的系数的所有相应译码遍次的语法元素的译码上下文。在一些实例中,本发明的技术可实现并行地推导对应于子块中的特定语法元素的所有旗标的上下文。举例来说,视频编码器20可并行地选择(即,推导) 子块中的系数的所有gr2Flag的译码上下文。
为此,视频编码器20在一些实例中可至少部分地基于系数块的先前经译码子块中的系数的所有系数语法元素来选择特定子块中的特定系数的语法元素的译码上下文。换句话说,上下文可取决于先前子块中的所有重要性和等级信息。另外,视频编码器20 可至少部分地基于特定子块的系数的较高优先级系数语法元素来选择语法元素的译码上下文。也就是说,上下文可取决于来自当前子块的较高优先级语法元素。
图2是图解说明划分为若干子块的实例系数块48的概念图。图2的实例展示8x8TU的4x4子块扫描的实例。每一4x4子块是“组块”。HEVC工作草案5不将4x4子块扫描用于8x8TU,然而此处将其说明为实例。
在图2中,圆对应于系数。系数块48包含子块50A、50B、50C和50D。在图2的实例中,以反向对角线左下次序扫描4x4子块。因此,4x4子块的处理次序是右下、右上、左下和左上。在每一4x4子块内,根据反向对角线左下扫描处理系数。图2中的箭头指示系数的译码次序。在其它实例中,可使用不同扫描次序,例如右上对角线、z字形、水平或垂直。如果使用正向扫描代替反向扫描,那么本发明的技术可适用。换句话说,本发明的技术可适用于正向扫描以及后向扫描。
每一子块的重要性和等级信息(例如,系数语法元素)可在继续到下一子块之前完全译码。在子块内,可以如下次序对重要性和等级信息进行译码:sigMapFlag、gr1Flag、gr2Flag、signFlag和levelRem。在图2的实例中,视频编码器20可能已经对子块50A、 50B和50C中的系数的系数语法元素进行编码。也就是说,视频编码器20可能已经对子块50A、50B和50C中的系数执行所有五个译码遍次。在此实例中,视频编码器20 可至少部分地基于子块50A、50B和50C中的系数的sigMapFlag、gr1Flag、gr2Flag、 signFlag和levelRem来选择系数52的系数语法元素的译码上下文。此外,视频编码器 20可基于子块50D中的系数的较高优先级系数语法元素来选择系数52的系数语法元素的译码上下文。举例来说,视频编码器20可基于子块50D中的系数的sigMapFlag和 gr1Flag中的任一者来选择系数52的gr2Flag的译码上下文。因此,当系数52的gr2Flag 经译码时,已经处理的三个子块(即,右上、左下和右下子组块)的所有重要性和等级信息(sigMapFlag、gr1Flag、gr2Flag、signFlag和levelRem)可用于上下文形成。另外,可使用左上4x4子块的sigMapFlag和gr1Flag。
在其它实例中,视频编码器20可仅基于先前经译码子块的较高优先级系数语法元素和当前子块的较高优先级系数语法元素来选择当前子块中的系数的系数语法元素的译码上下文。举例来说,在图2的实例中,视频编码器20可基于子块50A、50B、50C 和50D中的系数的sigMapFlag和gr1Flag中的任一者而不是子块50A、50B、50C或50D 中的系数的gr2Flag、signFlag或levelRem来选择系数52的gr2Flag的译码上下文。
此外,在一些实例中,视频编码器20基于特定系数的上下文邻域中的系数的系数语法元素来选择特定系数的系数语法元素的译码上下文。如上文指示,当形成系数语法元素的上下文时,可取决于来自当前子块的系数语法元素的已经译码的信息来得到上下文。在此些实例中,单独的上下文导出邻域可用于来自当前语法元素和较高优先级语法元素的已经译码的信息。在图2的实例中,四边形54指示系数52的上下文邻域。如图 2的实例中所示,系数52的上下文邻域包含子块50B中的系数55、子块50C中的系数 56以及子块50D中的三个系数58、60和62。在一些实例中,视频编码器20可基于系数54和56的任何系数语法元素以及系数58、60和62的较高优先级系数语法元素来选择系数52的系数语法元素的译码上下文。在其它实例中,视频编码器20可基于系数54、 56、58、60和62的较高优先级系数语法元素来选择系数52的系数语法元素的译码上下文。举例来说,系数52是含有十六个系数的子块中的第8系数。因此,当对系数52的 gr2Flag进行译码时,系数52的gr2Flag的上下文可取决于目前为止针对子块50D译码的gr2Flag(直到第7系数)以及子块50D的所有sigMapFlag和gr1Flag。另外,系数52 的gr2Flag的上下文可取决于来自先前子块(即,子块50A、50B和50C)的重要性和等级信息。因此,为了对系数52的gr2Flag进行译码,除了所有4x4子块50A、50B、50C 和50D的sigMapFlag和gr1Flag信息之外,可使用系数58、60和62的gr2Flag信息。在一些实例中当系数语法元素的上下文取决于来自先前子块的重要性和等级信息时,可能较难以并行化上下文推导过程。
在一些实例中,视频编码器20并不如图2的实例中所示将系数块划分为子块。在此些实例中,视频编码器20可以上述方式对整个系数块执行相同的五个编码遍次。图3 是图解说明未经划分为若干子块的实例系数块70的概念图。在图3中,圆对应于系数。在图3的实例中,四边形72指示系数74的上下文邻域。视频编码器20可基于系数74 的上下文邻域中的系数的较高优先级语法元素来选择系数72的系数语法元素的译码上下文。换句话说,当组块的大小与TU的大小相同时,整个TU的较高优先级语法元素的经译码信息可用于形成当前语法元素的上下文。在一些实例中,当系数74的gr2Flag 正译码时,在上下文形成中可使用整个TU的sigMapFlag和gr1Flag。另外,可使用来自先前TU的所有重要性和等级信息用于上下文形成。在一些实例中,仅当前和先前TU 的较高优先级语法元素(例如,sigMapFlag和gr1Flag)可用于系数74的gr2Flag的译码上下文的上下文形成。
在另一实例中,不必使用整个信息来形成上下文。通常,在上下文的形成中可使用来自当前系数周围的邻域的较高优先级语法元素信息。举例来说,当子块(即,组块)的大小等于TU的大小时,在邻域中可包含TU系数中的任一者而不考虑因果关系或扫描。在图3的实例中,四边形72展示系数74的实例上下文邻域。为了对系数74的gr2Flag 进行译码,视频编码器20可基于系数74的上下文邻域中的系数的sigMapFlag和gr1Flag 来选择系数74的gr2Flag的译码上下文。
在图3的实例中,可使用反向左下扫描处理整个TU来代替使用子块(即,组块)。在此实例中,子块的大小可选择为与TU的大小相同的大小。此外,在图3的实例中,首先对整个TU的sigMapFlag信息进行译码。这之后是整个TU的gr1Flag信息,以此类推。对应于每一语法元素的信息本文可称为“遍次”,因为子块或TU中的系数对于每一语法元素可能必须被访问(但不一定译码)一次。
此外,在一些实例中,视频编码器20可至少部分地基于当前子块的因果系数的相同优先级系数语法元素来选择当前子块的系数的系数语法元素的译码上下文。在此些实例中,视频编码器20还可基于当前译码遍次的译码次序中的当前子块以及先前子块中的系数的较高优先级系数语法元素(且在一些实例中在当前译码遍次的译码次序中的当前子块之前发生的子块中的系数的任何系数语法元素)来选择系数语法元素的译码上下文。举例来说,视频编码器20可至少部分地基于当前子块的因果系数的gr2Flag来确定当前子块的系数的gr2Flag的译码上下文。
为了在当前系数语法元素的译码上下文是至少部分地基于先前经译码子块的系数语法元素形成的实例中实现并行上下文推导,可基于当前系数语法元素的已经译码的信息对上下文推导邻域强加一或多个限制。也就是说,上下文邻域不含有需要并行上下文推导的任何位置。这在原理上类似于以全文引用方式并入本文的2011年11月11日申请的第13/294,869号美国申请案和以全文引用方式并入本文的2012年1月13日申请的第61/586,609号美国申请案中描述的想法。
为了并行地对子块的多个系数语法元素进行编码,视频编码器20可仅基于子块中未与系数并行地编码的相同优先级系数语法元素来选择译码上下文。举例来说,系数的上下文邻域可经成形以使得上下文邻域不包含可与系数并行地译码的任何系数。在此实例中,上下文邻域的形状可从一个位置到另一位置改变,如第61/586,609号美国申请案中描述。在图2的实例中,使用基于反向4x4子块的扫描。4x4子块的右下方的系数(例如,系数64、66和68)可能必须基于当前语法元素的已经译码的信息使用经修改上下文推导相邻者。举例来说,如果对系数64、66和68中的一者的gr2Flag进行译码需要上下文推导中的并行性,那么不使用4x4子块的右下方像素的经译码gr2Flag信息。
在一个实例中,视频编码器20可并行地产生第一语法元素和第二语法元素,且可并行地选择第一语法元素的译码上下文和第二语法元素的译码上下文。在此实例中,第一语法元素的译码上下文不是基于第二语法元素来选择,且第二语法元素的译码上下文不是基于第一语法元素来选择。在此实例中,视频编码器20可基于第一和第二语法元素的译码上下文并行地对第一和第二语法元素进行熵编码。类似地,视频解码器30可并行地产生第一语法元素和第二语法元素,且并行地选择第一语法元素的译码上下文和第二语法元素的译码上下文。在此实例中,第一语法元素的译码上下文不是基于第二语法元素来选择,且第二语法元素的译码上下文不是基于第一语法元素来选择。在此实例中,视频解码器30可基于第一和第二语法元素的译码上下文并行地对第一和第二语法元素进行熵解码。
在另一实例中,组块大小可等于TU大小,且视频编码器20正对系数的gr2Flag进行译码。在此实例中,可使用正向或反向次序上的z字形或对角线扫描。此外,在此实例中,如果对应于对角线的gr2Flag的所有上下文将并行地推导,那么没有来自所述对角线的gr2Flag信息可包含于上下文推导邻域中。在此实例中,在取决于sigMap和gr1Flag 的gr2Flag的上下文推导邻域中可包含TU位置中的任一者。图2中的实例上下文邻域遵守此限制。
在另一实例中,视频编码器20可并行地选择当前子块的第一和第二系数的gr2Flag 的译码上下文。在此实例中,第一系数的上下文邻域不包含第二系数,且第二系数的上下文邻域不包含第一系数。因此,在此实例中,视频编码器20不基于第二系数的gr2Flag 来选择第一系数的gr2Flag的译码上下文,且反之亦然。
在一些此类实例中,特定系数的上下文邻域可包含与所述特定系数不同的子块中的系数。此外,在一些实例中,特定系数块的上下文邻域可包含特定系数的与特定系数在同一子块中的因果和非因果相邻者。如果根据译码遍次的译码次序第一系数在第二系数之前发生,那么第一系数是第二系数的因果相邻者。如果根据译码遍次的译码次序第一系数在第二系数之后发生,那么第一系数是第二系数的非因果相邻者。
图4是图解说明包含因果和非因果系数的实例上下文邻域的概念图。图4中的圆对应于系数块80中的系数。在图4的实例中,系数块80划分为子块82A、82B、82C和 82D。形状84指示系数86的上下文邻域。在图4的实例中,系数86的上下文邻域包含系数88、90、92、94、96和98。系数88、90和92在译码次序上在系数86之前发生且因此是因果系数。系数94、96和98在译码次序上在系数86之后发生且因此是非因果系数。
根据本发明的技术,视频编码器20可在系数块的系数的第一译码遍次期间编码对应于系数块的系数的语法元素的第一集合。此外,视频编码器20可在系数块的系数的第二译码遍次期间编码对应于系数块的系数的语法元素的第二集合。当视频编码器20 执行第二译码遍次时,视频编码器20可产生第一语法元素。第一语法元素可在语法元素的第二集合中且可对应于系数块的当前系数。此外,视频编码器20可至少部分地基于第二语法元素和第三语法元素来选择第一语法元素的译码上下文。第二语法元素在语法元素的第一集合中且对应于非因果系数。第三语法元素在语法元素的第二集合中且对应于因果系数。非因果系数在当前(第二)译码遍次的译码次序中在当前系数之后发生。因果系数在第二译码遍次的译码次序中在当前系数之前发生。视频编码器20可至少部分地基于针对第一语法元素选择的译码上下文来熵编码第一语法元素。
类似地,视频解码器30可在系数块的系数的第一译码遍次期间解码对应于系数块的系数的语法元素的第一集合。另外,视频解码器30可在系数块的系数的第二译码遍次期间解码对应于系数块的系数的语法元素的第二集合。当视频解码器30执行第二译码遍次时,视频解码器30可至少部分地基于第二语法元素和第三语法元素来选择第一语法元素的译码上下文。第二语法元素在语法元素的第一集合中且对应于非因果系数。第三语法元素在语法元素的第二集合中且对应于因果系数。视频解码器30可至少部分地基于针对第一语法元素选择的译码上下文来熵解码第一语法元素。
应注意,上下文推导不需要使用所有以上信息。举例来说,上下文推导可仅基于邻域,如图3和图4所示。在另一实例中,上下文推导可仅基于具有较高优先级的语法元素。作为实例,为了对给定系数的gr2Flag进行译码,为了上下文推导目的,可仅使用与语法元素sigMapFlag和gr1Flag相关的信息。可以除了上文指定的方式之外的其它方式限制用于上下文形成的信息。
图5是图解说明经配置以实施本发明的技术的实例性视频编码器20的框图。图5是为了阐释目的而提供,且不应视为限制如本发明中广义地例示和描述的技术。为了阐释的目的,本发明在HEVC译码的上下文中描述视频编码器20。然而,本发明的技术可适用于其它译码标准或方法。
在图5的实例中,视频编码器20包含预测处理单元100、残余产生单元102、变换处理单元104、量化单元106、逆量化单元108、逆变换处理单元110、重构单元112、滤波器单元113、经解码图片缓冲器114,以及熵编码单元116。预测处理单元100包含帧间预测处理单元121和帧内预测处理单元126。帧间预测处理单元121包含运动估计单元122和运动补偿单元124。在其它实例中,视频编码器20可包含较多、较少或不同功能组件。
视频编码器20可接收视频数据。为了对视频数据进行编码,视频编码器20可对视频数据的每一图片的每一切片进行编码。作为对切片进行编码的部分,视频编码器20 可对切片中的每一CTB进行编码。作为对CTB进行编码的部分,预测处理单元100可对与CTB相关联的样本块执行四叉树分割以将样本块划分为逐渐变小的样本块。较小的样本块可与CU相关联。举例来说,预测处理单元100可将CTB的样本块中的每一者分割为四个相等大小的子块,将子块中的一或多者分割为四个相等大小的子子块,等等。
视频编码器20可对图片中的CTB的CU进行编码以产生CU的经编码表示(即,经译码CU)。视频编码器20可根据z扫描次序对CTB的CU进行编码。换句话说,视频编码器20可对左上方CU、右上方CU、左下方CU和随后右下方CU以此次序进行编码。当视频编码器20对经分割CU进行编码时,视频编码器20可根据z扫描次序对与经分割CU的样本块的子块相关联的CU进行编码。
此外,作为对CU进行编码的部分,预测处理单元100可在CU的一或多个PU之间分割CU的样本块。视频编码器20和视频解码器30可支持各种PU大小。假定特定 CU的大小为2Nx2N,则视频编码器20和视频解码器30可支持用于帧内预测的2Nx2N 或NxN的PU大小以及用于帧间预测的2Nx2N、2NxN、Nx2N、NxN或类似的对称PU 大小。视频编码器20和视频解码器30还可支持用于帧间预测的2NxnU、2NxnD、nLx2N 和nRx2N的PU大小的不对称分割。
帧间预测处理单元121可通过对CU的每一PU执行帧间预测来产生PU的预测数据。PU的预测数据可包含对应于PU的预测样本块和PU的运动信息。切片可为I切片、 P切片或B切片。帧间预测处理单元121可取决于PU是否在I切片、P切片或B切片中而执行针对CU的PU的不同操作。在I切片中,所有PU经帧内预测。因此,如果PU在I切片中,那么帧间预测处理单元121不对PU执行帧间预测。
如果PU在P切片中,那么运动估计单元122可搜索参考图片列表(例如,“列表0”)中的参考图片是否有PU的参考块。PU的参考块可为对应于参考图片的同一区域且最接近地对应于PU的样本块的样本块集合。运动估计单元122可产生指示列表0中含有PU 的参考块的参考图片的参考图片索引,以及指示PU的亮度样本块与亮度参考样本块之间的空间位移的运动向量。运动估计单元122可输出参考图片索引和运动向量作为PU 的运动信息。运动补偿单元124可基于由PU的运动信息指示的参考块来产生PU的预测样本块。
如果PU在B切片中,那么运动估计单元122可执行针对PU的单向帧间预测或双向帧间预测。为了执行PU的单向帧间预测,运动估计单元122可搜索第一参考图片列表(“列表0”)或第二参考图片列表(“列表1”)的参考图片是否有PU的参考块。运动估计单元122可输出指示参考图片的列表0或列表1中含有参考块的位置的参考图片索引、指示PU的样本块与参考块之间的空间位移的运动向量以及指示参考图片是在列表 0还是列表1中的预测方向指示符,作为PU的运动信息。
为了执行PU的双向帧间预测,运动估计单元122可搜索列表0中的参考图片是否有PU的参考块,且还可搜索列表1中的参考图片是否有PU的另一参考块。运动估计单元122可产生指示参考图片的列表0和列表1中含有参考块的位置的参考图片索引。另外,运动估计单元122可产生指示参考块与PU的样本块之间的空间位移的运动向量。 PU的运动信息可包含PU的参考图片索引和运动向量。运动补偿单元124可基于由PU 的运动信息指示的参考块来产生PU的预测样本块。
帧内预测处理单元126可通过对PU执行帧内预测来产生PU的预测数据。PU的预测数据可包含PU的预测样本块和各种语法元素。帧内预测处理单元126可对I切片、P 切片和B切片中的PU执行帧内预测。
为了对PU执行帧内预测,帧内预测处理单元126可使用多个帧内预测模式来产生PU的多个预测数据集合。为了使用帧内预测模式来产生PU的预测数据集合,帧内预测处理单元126可在与帧内预测模式相关联的方向上从相邻PU的样本块延伸样本越过PU 的样本块。相邻PU可位于PU的上方、右上方、左上方或左边,假定PU、CU和CTB 的从左到右、从上到下编码次序。帧内预测处理单元126可使用各种数目的帧内预测模式,例如33个方向性帧内预测模式。在一些实例中,帧内预测模式的数目可取决于PU 的样本块的大小。
预测处理单元100可从由帧间预测处理单元121针对PU产生的预测数据或由帧内预测处理单元126针对PU产生的预测数据当中选择CU的PU的预测数据。在一些实例中,预测处理单元100基于预测数据集合的速率/失真度量来选择CU的PU的预测数据。选定预测数据的预测样本块本文可称为选定预测样本块。
残余产生单元102可基于CU的样本块和CU的PU的选定预测样本块而产生CU 的残余样本块。举例来说,残余产生单元102可产生CU的残余样本块以使得残余样本块中的每一样本具有等于CU的原始样本块中的样本与CU的PU的选定预测样本块中的对应样本之间的差的值。
变换处理单元104可产生CU的一或多个TU的集合。CU的TU中的每一者可与一亮度残余样本块和两个色度样本块相关联。TU的亮度残余样本块可为CU的亮度残余样本块的子块,且TU的色度残余样本块可为CU的色度残余样本块的子块。TU的色度残余样本块对应于图片的与TU亮度残余样本块相同的区域。变换处理单元104可执行四叉树分割以将CU的残余样本块分割为与CU的TU相关联的残余样本块。与CU的 TU相关联的残余样本块的大小和位置可基于或可不基于CU的PU的样本块的大小和位置。
变换处理单元104可通过将一或多个变换应用于与TU相关联的残余样本块来产生CU的每一TU的系数块。变换处理单元104可将各种变换应用于与TU相关联的残余样本块。举例来说,变换处理单元104可将离散余弦变换(DCT)、方向性变换或概念上类似的变换应用于残余样本块。变换可将残余样本块从像素域转换到频域。因此,系数块中的系数可称为处于特定频率。
量化单元106可量化系数块中的系数。量化过程可产生与系数中的一些或全部相关联的位深度。举例来说,在量化期间可将n位系数下舍入到m位系数,其中n大于m。量化单元106可基于与CU相关联的量化参数(QP)值来量化与CU的TU相关联的系数块。视频编码器20可通过调整与CU相关联的QP值来调整应用于与CU相关联的系数块的量化程度。
逆量化单元108和逆变换处理单元110可分别将逆量化和逆变换应用于系数块以从系数块重构残余样本块。重构单元112可将经重构残余样本块的样本添加到来自由预测处理单元100产生的一或多个预测样本块的对应样本以产生与TU相关联的经重构样本块。通过以此方式针对CU的每一TU重构样本块,视频编码器20可重构CU的样本块。
滤波器单元113可执行解块操作以减少CU的样本块中的成块假像。经解码图片缓冲器114可存储经重构样本块。帧间预测处理单元121可使用含有经重构样本块的参考图片来对其它图片的PU执行帧间预测。另外,帧内预测处理单元126可使用经解码图片缓冲器114中的经重构样本块来对在与CU相同的图片中的其它PU执行帧内预测。
熵编码单元116可从视频编码器20的其它功能组件接收数据。举例来说,熵编码单元116可从量化单元106接收系数块,且可从预测处理单元100接收语法元素。熵编码单元116可对数据执行一或多个熵编码操作以产生经熵编码数据。举例来说,熵编码单元116可对数据执行上下文自适应可变长度译码(CAVLC)操作、CABAC操作、可变到可变(V2V)长度译码操作、基于语法的上下文自适应二进制算术译码(SBAC)操作、概率区间分割熵(PIPE)译码操作、指数哥伦布编码操作或另一类型的熵编码操作。视频编码器20可输出包含由熵编码单元116产生的熵编码数据的位流。
熵编码单元116可将与RQT的叶节点相关联的系数块(即,与TU相关联的系数块)划分为多个子块。熵编码单元116可循序地处理子块,使得熵编码单元116在处理子块中的下一者之前完全处理子块中的一者。熵编码单元116可以反向次序在右下方子块开始处理子块。熵编码单元116可以此方式处理亮度系数块(即,从亮度残余样本块推导的块)和色度系数块(即,从色度残余样本块推导的系数块)。
整个内容以引用方式并入本文的阮(Nguyen)等人“Non-CE11:用于变换系数译码的建议清除”(文献号,JCTVC-H0228,2011年1月20日)提出用于变换系数译码的不同方法。在JCTVC-H0228的提议中,使用上述相同五个语法元素。然而,当前系数的上下文邻域用以推导sigMapFlag、gr1Flag和gr2Flag的上下文以及levelRem的哥伦布-莱斯参数。图3中用四边形72展示用于系数74的上下文推导的实例上下文邻域(在对角线左下扫描的情况下)。上下文邻域与用于sigMapFlag的译码的HEVC委员会草案使用的上下文邻域相同。也可使用其它上下文邻域。在JCTVC-H0228的提议中,用于不同语法元素的上下文推导是基于上下文邻域中的系数的绝对等级而变。此外,在 JCTVC-H0228中,替代于在五个遍次(上文提到的每一系数语法元素一个遍次)中对每一组块进行译码,在继续到下一系数之前对一个系数的所有必要系数语法元素进行译码。此外,JCTVC-H0228的提议提供了在一些扫描(例如4x4子块扫描)中,两个连续系数可属于不同对角线。在此情况下,一个系数的上下文可取决于前一系数的实际经解码(绝对) 值。
在JCTVC-H0228的提议中,使用上下文邻域界定以下量。求和是对上下文邻域中的所有系数。
num_significant_coeff=∑δi(xi),其中
sum_absolute_level=∑|xi|
sum_absolute_levelMinus1=∑δj(xi),其中
在JCTVC-H0228的提议中,sum_absolute_level值用以推导sigMapFlag的上下文索引,且sum_absolute_levelMinus1值用以推导gr1Flag和gr2Flag的上下文索引。上下文索引可识别译码上下文。
在JCTVC-H0228的提议中,在计算num_significant_coeff、sum_absolute_level和sum_absolute_levelMinus1之后,sigMapFlag、gr1Flag和gr2Flag的上下文模型索引(即,分别为c0、c1和c2)推导为:
c0=min(sum_absolute_level,5)
c1=min(sum_absolute_levelMinus1,4)+1
c2=min(sum_absolute_levelMinus1,4)+1
JCTVC-H0228的提议可具有若干缺点。举例来说,每一系数的需要译码的语法元素的数目可从一变到五。这可在译码过程中产生瓶颈,且可使得难以使用先行策略以便在一个循环中并行化或译码多个二进位。此外,在例如4x4子块译码次序等一些译码次序中,两个连续系数可属于不同对角线。在此情况下,一个系数的译码上下文可取决于前一系数的实际经解码值。另一缺点是对于上下文推导,邻域中的系数的重要性以及等级信息是需要的。存储上下文邻域中的系数的重要性和等级信息可增加所需的存储量。在另一实例中,经上下文译码的语法元素和经旁路译码的语法元素是交错的,其可能不利于经旁路译码语法元素的并行化剖析能力。
本发明的一或多种技术可解决JCTVC-H0228的提议的缺点。如上所述,视频译码器(例如,视频编码器20或视频解码器30)通过划分包含一或多个子集(例如,子块或组块)的TU来促进一个循环中(或并行地)多个二进位的处理。视频译码器可随后使用 HEVC工作草案5中描述的五个译码遍次。然而,根据本发明的一或多种技术,sigMapFlag、 gr1Flag和gr2Flag的上下文推导以及语法元素levelRem的哥伦布-莱斯参数选择是如 JCTVC-H0228中描述使用上下文邻域来执行。然而,不同于JCTVC-H0228的提议,上下文邻域可包含非因果系数。
根据本发明的一或多种技术,当熵编码单元116处理子块时,熵编码单元116可执行上述五个译码遍次。也就是说,熵编码单元116可执行第一译码遍次以编码子块的系数的sigMapFlag,执行第二译码遍次以编码子块的系数的gr1Flag,执行第三译码遍次以编码子块的系数的gr2Flag,执行第四译码遍次以编码子块的系数的signFlag,以及执行第五译码遍次以编码子块的系数的levelRem。
当熵编码单元116执行译码遍次中的任一者时,熵编码单元116根据译码次序处理子块中的系数中的每一者。译码次序可为反向左下对角线译码次序、水平译码次序、垂直译码次序或另一译码次序。在译码次序中在连续位置处发生的系数可称为连续系数。
在每一相应译码遍次期间,熵编码单元116对在相应译码遍次期间产生的语法元素进行熵编码。举例来说,熵编码单元116可在第一译码遍次期间CABAC编码sigMapFlag,在第二译码遍次期间CABAC编码gr1Flag,且在第三译码遍次期间CABAC编码gr2Flag。为了使用规则CABAC译码对系数语法元素进行编码,熵编码单元116可选择系数语法元素的译码上下文。熵编码单元116可通过确定上下文索引且随后使用上下文索引查找译码上下文来选择特定系数的系数语法元素的译码上下文。
在一些实例中,熵编码单元116基于当前系数的上下文邻域中的系数的实际或估计绝对值来确定上下文索引。如果熵编码单元116已经编码系数的每一系数语法元素,那么熵编码单元116可确定系数的实际绝对值。举例来说,熵编码单元116不需要确定在当前子块之外的因果相邻系数的估计绝对值,因为熵编码单元116能够使用这些系数的sigMapFlag、gr1Flag、gr2Flag和levelRem来确定这些系数的实际绝对值。举例来说,系数块可包括多个子块,且当前译码遍次的译码次序可基于子块。在此实例中,因果系数可在子块中与当前系数不同的一者中。
然而,如果熵编码单元116尚未编码系数的每一系数语法元素,那么熵编码单元116 可不能基于系数的系数语法元素来确定系数的实际绝对值。因此,如果熵编码单元116尚未编码系数的每一系数语法元素,那么熵编码单元116可确定系数的估计或实际绝对值。举例来说,熵编码单元116可使用特定系数的因果相邻系数的当前优先级系数语法元素和较低优先级系数语法元素来确定因果相邻系数的估计或实际绝对值。作为实例,在第3译码遍次中(即,当系数的gr2Flag正译码时),从sigMapFlag和gr1Flag可推断的最小绝对等级值用于当前系数的上下文邻域中的系数。如果系数的sigMapFlag为0,那么系数的估计绝对值为0。如果系数的sigMapFlag为0且系数的gr1Flag为0,那么估计绝对水平推断为1。如果系数的sigMapFlag为1且系数的gr1Flag为1,那么绝对水平推断为2。因此,推断值是基于将值0指派于至此尚未经译码的语法元素。对于邻域中的因果系数,gr2Flag具有值1,因果系数的实际绝对值未知,但可估计为3。
举例来说,图2的实例展示因果邻域。因此,上下文邻域仅包含当前语法元素(即,与当前译码遍次相关联的系数语法元素)已经编码(或解码)的系数。然而,根据本发明的技术,视频译码器(例如,视频编码器20或视频解码器30)可使用非因果邻域(以扫描次序),如图4的实例中所示。特定来说,对于非因果的上下文邻域系数(即,图4中的系数94、96和98),在上下文推导中可仅使用直到前一语法元素(即,译码遍次)的信息。对于因果的且属于与当前系数的相同子块的上下文邻域系数,此些系数的绝对等级可从此些系数的所有系数语法元素直到当前译码遍次的语法元素来推断。对于因果的且在当前系数的子块之外的上下文邻域系数,可使用上下文邻域系数的实际绝对等级值。
大体上,熵编码单元116可针对含有系数X的子块中的所有因果系数基于因果系数的估计(或实际)绝对值基于具有大于或等于系数语法元素Y的优先级的优先级的语法元素来确定系数X的系数语法元素Y的译码上下文。举例来说,为了在熵编码单元116 正编码当前系数的sigMapFlag时确定与当前系数在同一子块中的因果相邻系数的估计 (或实际)绝对值,熵编码单元116可确定因果相邻系数的sigMapFlag是否等于0或1。如果因果相邻系数的sigMapFlag等于0,那么熵编码单元116可确定因果相邻系数的绝对值等于0。如果因果相邻系数的sigMapFlag等于1,那么熵编码单元116可确定因果相邻系数的估计绝对值等于1。
为了在熵编码单元116正编码当前系数的gr1Flag时确定与当前系数在同一子块中的因果相邻系数的估计(或实际)绝对值,熵编码单元116可确定因果相邻系数的sigMapFlag是否等于0或1。如果因果相邻系数的sigMapFlag等于0,那么熵编码单元 116可确定因果相邻系数的绝对值等于0。如果因果相邻系数的sigMapFlag等于1,那么熵编码单元116可确定因果相邻系数的gr1Flag是否等于0或1。如果因果相邻系数的 gr1Flag等于0,那么熵编码单元116可确定因果相邻系数的绝对值等于1。如果因果相邻系数的gr1Flag等于1,那么熵编码单元116可确定因果相邻系数的估计绝对值等于2。
为了在熵编码单元116正编码当前系数的gr2Flag时确定与当前系数在同一子块中的因果相邻系数的估计(或实际)绝对值,熵编码单元116可确定因果相邻系数的sigMapFlag是否等于0或1。如果因果相邻系数的sigMapFlag等于0,那么熵编码单元 116可确定因果相邻系数的绝对值等于0。如果因果相邻系数的sigMapFlag等于1,那么熵编码单元116可确定因果相邻系数的gr1Flag是否等于0或1。如果因果相邻系数的gr1Flag等于0,那么熵编码单元116可确定因果相邻系数的绝对值等于1。如果因果相邻系数的gr1Flag等于1,那么熵编码单元116可确定因果相邻系数的gr2Flag是否等于 0或1。如果因果相邻系数的gr2Flag等于0,那么熵编码单元116可确定因果相邻系数的绝对值等于2。如果因果相邻系数的gr2Flag等于1,那么熵编码单元116可确定因果相邻系数的估计绝对值等于3。
另外,熵编码单元116可使用非因果相邻系数的较低优先级语法元素来确定非因果系数的估计(或实际)绝对值。也就是说,系数X的系数语法元素Y的译码上下文确定可针对子块中的所有非因果系数基于估计(或实际)绝对值,其基于具有比系数语法元素Y 的优先级高的优先级。举例来说,熵编码单元116可至少部分地基于在前一遍次中编码的语法元素来确定非因果系数的估计(或实际)绝对值,至少部分地基于在当前译码遍次中编码的语法元素来确定因果系数的估计(或实际)绝对值,且至少部分地基于非因果系数的估计(或实际)绝对值和因果系数的估计(或实际)绝对值来选择语法元素的译码上下文。
举例来说,如果熵编码单元116当前在译码sigMapFlag,那么熵编码单元116可确定非因果相邻系数的估计绝对值等于0。如果熵编码单元116当前在译码gr1Flag且非因果相邻系数的sigMapFlag等于0,那么熵编码单元116可确定非因果相邻系数的绝对值等于0。如果熵编码单元116当前在译码gr1Flag且非因果相邻系数的sigMapFlag等于1,那么熵编码单元116可确定非因果相邻系数的估计绝对值等于1。
如果熵编码单元116在编码gr2Flag且非因果相邻系数的sigMapFlag等于0,那么熵编码单元116可确定非因果相邻系数的绝对值等于0。如果熵编码单元116在编码gr2Flag且非因果相邻系数的sigMapFlag等于1,且非因果相邻系数的gr1Flag等于0,那么熵编码单元116可确定非因果相邻系数的绝对值等于1。如果熵编码单元116在编码gr2Flag、非因果相邻系数的sigMapFlag等于1,且非因果相邻系数的gr1Flag等于1,那么熵编码单元116可确定非因果相邻系数的估计绝对值等于2。
在熵编码单元116执行第四和/或第五译码遍次时,熵编码单元116可识别与系数的 levelRem相关联的哥伦布-莱斯码。为了识别系数的系数语法元素的哥伦布-莱斯码,熵编码单元116可基于系数的上下文邻域中的系数的估计或实际绝对值来选择系数语法元素的译码上下文。熵编码单元116可随后使用选定上下文来识别系数语法元素的哥伦布 -莱斯参数和哥伦布-莱斯码。熵编码单元116可输出哥伦布-莱斯码。
如果熵编码单元116正在对levelRem执行哥伦布-莱斯译码操作,那么熵编码单元116不需要确定在当前子块内的因果相邻系数的估计绝对值,因为熵编码单元116能够使用这些系数的sigMapFlag、gr1Flag、gr2Flag和levelRem来确定这些系数的实际绝对值。
在一些实例中,视频译码器(例如,视频编码器20或视频解码器30)基于上下文索引确定译码上下文。视频译码器可通过计算上下文索引c0来计算系数的sigMapFlag的上下文索引,其中c0=min(sum_absolute_level,5),其中sum_absolute_level是系数的上下文邻域中的系数的实际或估计绝对值的总和。换句话说,
sum_absolute_level=∑δi(xi)
在JCTVC-H0228的提议中,系数的上下文邻域限于因果相邻者,如图2和3的实例中所示。此外,在JCTVC-H0228的提议中,视频译码器执行通过每一子块的单个遍次。在单个遍次期间,视频译码器产生且编码子块的系数的sigMapFlag、gr1Flag、gr2Flag、 signFlag和LevelRem,之后处理子块的下一系数。
此外,在JCTVC-H0228的提议中,视频译码器可计算gr1Flag的上下文索引c1,其中c1=min(sum_absolute_levelMinus1,4)+1。为了计算gr2Flag的上下文索引,视频译码器可计算上下文索引c2,其中c2=min(sum_absolute_levelMinus1,4)+1。通过从 sum_absolute_level减去值num_significant_coeff可确定值sum_absolute_levelMinus1,其中num_significant_coeff等于上下文邻域中的非零系数的数目。
在以上等式中,求和是对上下文邻域中的所有系数。在以上等式中,在|xi|>0 的情况下等于|xi|-1且在xi等于0的情况下等于0,其中xi是系数i的实际或估计绝对值。视频译码器可通过从sum_absolute_level减去值num_significant_coeff来确定 sum_absolute_levelMinus1。值num_significant_coeff等于:
其中
此外,如果JCTVC-H0228的提议延伸到译码遍次和非因果相邻系数,那么可能对非因果相邻系数的估计(或实际)绝对值赋予过多重要性,这可能使译码效率降级。举例来说,系数的绝对值通常平均针对系数以较高频率减小。因此,如果因果系数是重要的且具有高绝对量值,那么可能当前系数是重要的且具有高绝对量值。高绝对量值的一个实例可为3或更高。然而,此关系不适用于非因果系数。举例来说,当前系数通常处于比非因果系数高的频率。因此,如果非因果系数是重要的,那么当前系数重要的推断比对于因果系数的情况弱。为此原因,熵编码单元116可根据本发明的技术在确定译码上下文时不同地处理因果和非因果系数。
举例来说,熵编码单元116可根据本发明的技术将不同权重应用于非因果系数的估计或实际绝对值,与在确定译码上下文时因果系数的实际或估计绝对值相反。换句话说,可对因果和非因果系数给出不同权重。在此实例中,应用于非因果系数(或因果系数)的权重可取决于非因果系数与当前系数之间的以在译码次序上的系数数目计的距离。而且,大体上,在给定系数的译码上下文内可对非因果系数指派比因果系数低的权重。
根据本发明的一或多种技术,熵编码单元116可将非因果相邻系数的总重要性减小 1。举例来说,熵编码单元116可维持因果和非因果系数的单独总和。在此实例中,熵编码单元116可通过将总数减少一来减小上下文邻域中的总重要非因果系数的重要性。因此,如果重要的非因果系数的数目为四,那么为了计算num_significant_coeff,将重要的非因果系数的数目处理为三。也就是说,熵编码单元116可将num_significant_coeff 计算为:
熵编码单元116可通过如下计算来确定sum_absolute_levelMinus1:
sum_absolute_level-num_significant_coeff
熵编码单元116可将gr1Flag或gr2Flag的上下文索引确定为sum_absolute_levelMinus1和4中的较小者。对例如sum_absolute_level和sum_absolute_levelMinus1等其它值的计算可做出相似修改。替代于减小一,熵编码单元116可将其它调整应用于上下文邻域中的非因果系数的上下文推导计算。举例来说,在其它实例中,熵编码单元 116可将重要的非因果相邻系数的数目减少除了1之外的值,例如2、3、4等等。应用于重要的非因果上下文邻域系数的数目的调整越高,非因果系数的有效权重越低。以此方式,熵编码单元116可应用公式以基于一或多个非因果系数的估计或实际绝对值以及一或多个因果系数的估计绝对值来确定索引,其中所述公式将加权值应用于所述一或多个非因果系数的估计或实际绝对值或所述一或多个因果系数的估计或实际绝对值。熵编码单元116可至少部分地基于所述索引来选择语法元素的译码上下文。
在其它实例中,熵编码单元116可以除了上述方式之外的方式确定sigMapFlag、gr1Flag和gr2Flag的上下文索引。举例来说,熵编码单元116可基于具有大于1的绝对值的上下文邻域系数的数目来确定gr1Flag的上下文索引。在另一实例中,熵编码单元 116可使用gr1Flag的译码上下文的两个集合。在此实例中,熵编码单元116可在不存在具有大于1的绝对值的上下文邻域系数的情况下使用gr1Flag的上下文索引的第一集合。此外,在此实例中,熵编码单元116可在存在具有大于1的绝对值的一或多个上下文邻域系数的情况下使用gr1Flag的上下文索引的第二集合。在此实例中,熵编码单元116 可将进入译码上下文的第一或第二集合的上下文索引确定为等于sum_absolute_ levelMinus1或4中的较小者。以此方式,熵编码单元116可基于当前系数的上下文邻域中有多少系数具有大于1的绝对值来选择gr1Flag的上下文索引。在其它实例中,熵编码单元116可使用gr1Flag的译码上下文的两个以上集合。相似地,熵编码单元116可使用sigMapFlag和gr2Flag的译码上下文的多个集合。在另一实例中,熵编码单元116 可基于具有大于1和大于2的绝对值的相邻系数的数目来确定sigMapFlag的上下文索引。
熵编码单元116可存储系数的绝对值以便计算如上文界定的上下文索引c0、c1和c2。根据c0、c1和c2的定义,如果sum_absolute_level大于4,那么c0的值封顶于5。相似地,如果sum_absolute_levelMinus1大于3,那么c1和c2的值封顶于4。因此,替代于存储每一系数的绝对等级值,将绝对等级值截断为三个位同时针对c0、c1和c2产生相同值是足够的。因此,根据本发明的技术,替代于存储每一系数的绝对值,熵编码单元116 可将系数的绝对值修剪(例如,截断)到7(3个位)同时针对c0、c1和c2产生相同值。此外,在一些实例中,熵编码单元116可将系数的绝对值修剪到3(2个位)。以此方式,熵编码单元116可将非因果系数的估计(或实际)绝对值修剪到3(两个位)或7(三个位),将因果系数的估计绝对值截断到3(两个位)或7(三个位),且至少部分地基于非因果和因果系数的经修剪估计(或实际)绝对值来选择语法元素的译码上下文。然而,在熵编码单元116 将系数的绝对值修剪到3(2个位)的实例中,c0、c1和c2的值可能受影响。
在一些实例中,熵编码单元116可在单个译码遍次期间对子块的多个系数的系数语法元素进行编码。熵编码单元116可以各种方式实现此情形。根据第一实例方法,熵编码单元116可在每一译码遍次内并行地处理多达n个连续系数,其中n是大于零的数。举例来说,熵编码单元116可并行地处理多达四个连续系数。如果熵编码单元116当前正在处理当前系数,那么熵编码单元116不可存取与另一系数相关联的语法元素(如果所述语法元素与当前译码遍次相关联,另一系数是n个连续系数的群组的成员,且另一系数和当前系数在同一子块内)。换句话说,强加的约束是当前系数的上下文推导不可取决于来自需要并行上下文推导的其它系数的信息。在此些条件下阻止熵编码单元116存取语法元素可促进并行性。根据本发明的一或多种技术,使用“孔”和“部分孔”的概念来实现多个二进位的并行上下文推导。
当熵编码单元116不能使用系数的当前优先级语法元素来选择用于对当前系数的当前优先级语法元素进行译码的上下文时,因果系数可称为“孔”。当前优先级语法元素是在熵编码单元116当前正在执行的译码遍次期间处理的语法元素。在一些实例中,孔的位置从不会在含有当前系数的4x4子块之外。
因为熵编码单元116不存取孔的当前优先级语法元素,所以熵编码单元116可能不能使用孔的当前优先级语法元素来确定孔的实际或估计绝对值。因为熵编码单元116可能不能确定孔的实际绝对值,所以熵编码单元116可能不能使用孔的实际绝对值来选择用于对当前系数的语法元素进行CABAC或哥伦布-莱斯译码的上下文。下文详细论述的图10A到10F图解说明当例如熵编码单元116等熵译码单元在译码遍次期间并行地处理四个系数时4x4子块中的系数的上下文邻域中的孔的实例位置。
因此,熵编码单元116可确定孔的估计(或实际)绝对值。在一些实例中,熵编码单元116可总是确定孔的绝对值等于零或另一预定义值。换句话说,熵编码单元116可将因果系数的绝对值确定为等于预定义值。举例来说,熵编码单元116可对于孔位置使用固定绝对等级值。此外,在此实例中,如果熵编码单元116将四个二进位并行性用于4x4 子块扫描,那么引入孔以使得如果来自同一子块的扫描次序中的先前三个系数中的任一者属于当前系数的上下文邻域,那么将先前三个系数假定为具有绝对值0以用于上下文推导目的。
在另一实例中,替代于假定孔处的系数不重要(即,等于0),熵编码单元116可使用用于另一系数的绝对等级值。也就是说,当熵编码单元116正在选择特定系数的系数语法元素的译码上下文时,熵编码单元116可使用另一系数的实际或估计绝对值作为特定系数的上下文邻域中的孔的绝对值。此另一系数可在特定系数的上下文邻域内。在其它实例中,熵编码单元116可修改特定系数的上下文邻域以排除孔且包含处于原始上下文邻域之外的另一系数。在一些实例中,所述另一系数可为孔的右边的系数。因此,对于上下文推导,右边的系数被计数两次。
在其它实例中,熵编码单元116可至少部分地基于孔的较高优先级语法元素来确定孔的绝对值。在此些实例中,孔可称为“部分孔”。此外,在此些实例中,熵编码单元 116可确定孔的绝对值,如同所述孔的当前和较低优先级系数语法元素等于0。举例来说,如果熵编码单元116正在选择特定系数的gr2Flag的译码上下文,那么熵编码单元 116可基于孔的sigMapFlag和(如果存在)gr1Flag来确定特定系数的上下文邻域中的孔的绝对值。此外,在此实例中,如果熵编码单元116正在编码特定系数的gr2Flag,那么熵编码单元116可确定孔的绝对值,如同所述孔的gr2Flag和levelRem等于0。
在熵编码单元116基于孔的较高优先级系数语法元素确定孔的绝对值的另一实例中,熵编码单元116可部分地基于邻近于孔(例如,在右边)的系数的当前优先级系数语法元素来确定孔的绝对值。换句话说,熵编码单元116可将因果系数的绝对值确定为等于邻近于因果系数的系数的绝对值。举例来说,如果熵编码单元116正在编码特定系数的 gr2Flag,那么熵编码单元116可基于孔的sigMapFlag、孔的gr1Flag和邻近于孔的系数的gr2Flag来确定特定系数的上下文邻域中的孔的绝对值。邻近于孔的系数可在特定系数的上下文邻域之外。在一些实例中,邻近于孔的系数可在含有特定系数的子块之外。
熵编码单元116可使用当前系数的上下文邻域中的系数的绝对值来选择当前系数的语法元素的CABAC或哥伦布-莱斯译码的上下文。因此,熵编码单元116可响应于确定相邻系数根据译码次序属于n个连续位置的群组而确定相邻系数的绝对值。
在熵编码单元116在译码遍次期间并行地确定n个系数语法元素的译码上下文的其它实例中,熵编码单元116可将子块的系数划分为n个系数的群组。举例来说,如果熵编码单元116并行地确定四个系数语法元素的译码上下文,那么熵编码单元116可将子块划分为四个系数的群组。在一些实例中,群组可包含少于n个系数。通常,包含少于 n个系数的群组是子块中的系数的最后群组。系数的上下文邻域经界定以使得对于子块中的每一系数,系数的上下文邻域不包含与所述系数在同一群组中的系数。下文详细描述的图10A 到10F 是图解说明系数块的4x4子块中的系数的实例群组的概念图。
在如先前段落中编码单元116将子块的系数划分为n个系数的群组的实例中,系数的上下文邻域可包含孔。熵编码单元116可根据上述技术中的任一者确定孔的绝对值。举例来说,当熵编码单元116正在选择特定系数的系数语法元素的译码上下文时,熵编码单元116可基于可在或可不在所述特定系数的上下文邻域中的另一系数的实际或估计绝对值来确定孔的绝对值。也就是说,可修改上下文邻域以包含原始曾处于特定系数的上下文邻域中的系数。在另一实例中,当熵编码单元116正在选择特定系数的系数语法元素的译码上下文时,熵编码单元116可基于孔的较高优先级系数语法元素和假定为等于0的孔的当前和较低优先级系数语法元素来确定孔的绝对值。
此外,在熵编码单元116将子块的系数划分为n个系数的群组的一些实例中,系数的上下文邻域可包含少于五个系数。在此些实例中,熵编码单元116可使用 sum_absolute_level、sum_absolute_level_Minus1和num_significant_coeff的经调整值来确定上下文索引。举例来说,熵编码单元116可将sum_absolute_level、 sum_absolute_level_Minus1和num_significant_coeff按比例缩放特定缩放因数。在此实例中,如果特定系数的上下文邻域具有一个孔,那么熵编码单元116可将 sum_absolute_level、sum_absolute_level_Minus1和num_significant_coeff按比例缩放因数5/4。在一些实例中,熵编码单元116可使用查找表来实施sum_absolute_level、 sum_absolute_level_Minus1和num_significant_coeff的按比例缩放。
在其它实例中,熵编码单元116将系数块的每一子块划分为系数群组。在一些实例中,系数群组中的每一者可包含n个系数,可能除了系数的最后群组。下文详细描述的图12是图解说明系数块的4x4子块内的系数的另一实例分组的概念图。在此些实例中,熵编码单元116处理群组内的系数的所有系数语法元素,之后处理下一群组中的系数的任一系数语法元素。也就是说,替代于执行整个子块的一个译码遍次之后执行整个子块的下一译码遍次,熵编码单元116可执行子块中的系数群组的全部五个译码遍次,之后执行子块中的下一系数群组的五个译码遍次。因此,在群组内,熵编码单元116执行全部五个译码遍次。
在先前段落的实例中,熵编码单元116可以与上文实例中描述的方式相同的方式确定系数的上下文邻域中的孔的绝对值。然而,在先前段落的实例中,熵编码单元116可能够确定较多系数的实际绝对值,与系数的估计绝对值相反。
在一些实例中,可用于对系数语法元素进行熵译码的译码上下文可划分为上下文集合。上下文集合中的每一者可包含多个译码上下文。为了选择特定语法元素的译码上下文,熵编码单元116可确定特定系数语法元素的上下文集合索引且确定特定系数语法元素的上下文索引。所确定上下文索引指示由所确定上下文集合索引指示的上下文集合中的译码上下文。
在一个实例中,熵编码单元116使用基于位置的上下文建模用于4x4和8x8TU中的系数的sigMapFlag。在基于位置的上下文建模中,熵编码单元116至少部分地基于系数块内特定系数的位置来选择特定系数的译码上下文。在此实例中,在表集合中界定 sigMapFlag的上下文索引。表可对应于不同的上下文集合。可存在三个表,一个用于4x4 亮度系数块,一个用于4x4色度系数块,且一个用于8x8亮度或色度系数块。亮度系数块是从亮度样本块推导的系数块。色度系数块是从色度样本块推导的系数块。此外,熵编码单元116可使用基于位置的上下文建模和基于模板的上下文建模的混合用于较大系数块,例如16x16和32x32系数块。对于此些较大系数块中的系数,熵编码单元116可使用单个译码上下文用于处于较高频率的系数(即,较靠近系数块的右下角的系数)的 sigMapFlag。对于此些较大系数块中的其它系数,熵编码单元116可基于系数的上下文邻域中的系数是否等于0来选择译码上下文。换句话说,熵编码单元116可使用特定低频系数的上下文邻域中的系数的重要性来确定特定系数的sigMapFlag的译码上下文。
在一个实例中,熵编码单元116使用四个上下文集合用于对亮度系数块中的系数的 gr1Flag进行熵编码,且使用两个上下文集合用于对色度系数块中的系数的gr1Flag进行熵编码。在此实例中,熵编码单元116可基于系数块内特定系数的位置且还基于系数的先前经译码群组中等于1的gr1Flag的数目(numGreater1)来确定特定系数的gr1Flag的上下文集合索引。在此实例中,熵编码单元116可基于特定系数的上下文邻域中的拖尾一 (即,gr1Flag等于0)的数目(最大值为三)来确定上下文集合内的上下文索引 (ctxIdx_level_greater1)。举例来说,熵编码单元116可将上下文索引确定为:
ctxIdx_level_greater1=(ctxSet*4)+min(3,拖尾一的数目)
在一些实例中,熵编码单元116使用四个上下文集合用于对亮度系数块中的系数的 gr2Flag进行熵编码,且使用两个上下文集合用于对色度系数块中的系数的gr1Flag进行熵编码。熵编码单元116可基于系数块内特定系数的位置以及系数的先前经译码群组中等于1的gr1Flag的数目(numGreater1)来确定特定系数的gr2Flag的上下文集合索引。gr2Flag的上下文索引可等于gr2Flag的上下文集合索引。
在另一实例中,存在用于对亮度系数块的系数语法元素进行熵译码的三个上下文集合以及用于对色度系数块的系数语法元素进行熵译码的两个上下文集合。在此实例中,在用于对sigMapFlag进行熵编码的上下文集合中的每一者中存在六个译码上下文。换句话说,对于亮度系数块的系数的sigMapFlag,可存在三个上下文集合,各自包含六个译码上下文。对于色度系数块的系数的sigMapFlag,可存在两个上下文集合,各自包含六个译码上下文。此外,在此实例中,在用于对gr1Flag和gr2Flag进行熵编码的上下文集合中的每一者中存在五个译码上下文。
在先前段落的实例中,熵编码单元116可基于特定系数的系数块内的位置确定上下文集合索引(ctx_set_idx),其指示包含用于对特定系数的系数语法元素进行熵编码的选定译码上下文的上下文集合。在此实例中,熵编码单元116可将上下文集合索引确定为:
ctx_set_idx=(posX<2&&posY<2)?0:(LUMA?((posX<4&&posY<4)?1:2):1
在以上等式中,posX和posY分别指示特定系数的系数块内的列和行。在以上等式中,如果posX小于2且posY小于2,那么ctx_set_idx等于0。此外,在以上等式中,如果posX不小于2或posY不小于2,且系数块不是亮度系数块,那么ctx_set_idx等于 1。在以上等式中,如果posX或posY任一者不小于2,系数块是亮度系数块,且posX 和posY均小于4,那么ctx_set_idx等于1。在以上等式中,如果系数块是亮度系数块,且posX或posY任一者不小于4,那么ctx_set_idx等于2。在此实例中,熵编码单元116 可根据本发明中别处描述的实例中的一或多者来确定上下文索引。
在熵编码单元116可使用上下文集合的另一实例中,可存在对亮度系数块的系数语法元素进行熵译码的三个上下文集合。此外,在此实例中,可存在用于对色度系数块中的系数的sigMapFlag进行编码的两个上下文集合,且可存在用于对色度系数块中的系数的gr1Flag和gr2Flag进行编码的一个上下文集合。用于对亮度和色度系数块中的系数的sigMapFlag进行编码的上下文集合中的每一者可包含六个译码上下文。用于对亮度和色度系数块中的系数的gr1Flag和gr2Flag进行编码的上下文集合中的每一者可包含五个译码上下文。在此实例中,熵编码单元116可使用以下等式确定亮度系数块的系数语法元素的上下文集合索引(ctx_set_idx):
ctx_set_idx=(posX<4&&posY<4)?((posX<2&&posY<2)?2:1):0
在以上等式中,posX和posY分别指示特定系数的系数块内的列和行。此外,在以上等式中,如果posX或posY任一者不小于4,那么ctx_set_idx等于0。在以上等式中,如果posX和posY均小于4且posX或posX任一者不小于2,那么ctx_set_idx等于1。在以上等式中,如果posX和posY均小于2,那么ctx_set_idx等于2。
在先前段落的实例中,熵编码单元116可使用以下等式确定色度系数块的系数的sigMapFlag的上下文集合索引(ctx_set_idx):
ctx_set_idx=(posX<2&&posY<2)?1:0
在以上等式中,posX和posY分别指示特定系数的系数块内的列和行。此外,在以上等式中,如果posX和posY均小于2,那么ctx_set_idx等于1。如果posX或posY任一者大于或等于2,那么ctx_set_idx等于0。在此实例中,熵编码单元116可根据本发明中别处描述的实例中的一或多者来确定上下文索引。
图6是图解说明经配置以实施本发明的技术的实例性视频解码器30的框图。图6是为了阐释目的而提供,且不限制如本发明中广义地例示和描述的技术。为了阐释的目的,本发明在HEVC译码的上下文中描述视频解码器30。然而,本发明的技术可适用于其它译码标准或方法。
在图6的实例中,视频解码器30包含熵解码单元150、预测处理单元152、逆量化单元154、逆变换处理单元156、重构单元158、滤波器单元159,以及经解码图片缓冲器160。预测处理单元152包含运动补偿单元162和帧内预测处理单元164。在其它实例中,视频解码器30可包含较多、较少或不同功能组件。
视频解码器30接收位流。熵解码单元150可剖析位流以从位流提取语法元素。预测处理单元152、逆量化单元154、逆变换处理单元156、重构单元158以及滤波器单元 159可基于从位流提取的语法元素来产生经解码视频数据。
作为剖析位流的部分,熵解码单元150可对位流中的经熵编码语法元素进行熵解码。举例来说,熵解码单元150可对例如系数块中的系数的sigMapFlag、gr1Flag和gr2Flag等一些语法元素执行规则CABAC解码。而且,熵解码单元150可对例如系数块中的系数的signFlag和levelRem等其它语法元素执行旁路熵解码。
当熵解码单元150对例如sigMapFlag、gr1Flag或gr2Flag等系数语法元素执行规则 CABAC解码时,熵解码单元150可选择系数语法元素的译码上下文。熵解码单元150 可根据上文关于熵编码单元116选择系数语法元素描述的实例中的任一者和其它实例来选择系数语法元素的译码上下文。
另外,视频解码器30可对未经分割CU执行重构操作。为了对未经分割CU执行重构操作,视频解码器30可对CU的每一TU执行重构操作。通过对CU的每一TU执行重构操作,视频解码器30可重构与CU相关联的残余样本块。
作为对CU的TU执行重构操作的部分,逆量化单元154可对与TU相关联的系数块进行逆量化,即解量化。逆量化单元154可使用与TU的CU相关联的QP值来确定量化程度,且同样确定逆量化单元154将应用的逆量化程度。
在逆量化单元154逆量化系数块之后,逆变换处理单元156可将一或多个逆变换应用于系数块以便产生与TU相关联的残余样本块。举例来说,逆变换处理单元156可将逆DCT、逆整数变换、逆卡忽南-拉维(Karhunen-Loeve)变换(KLT)、逆旋转变换、逆方向性变换或另一逆变换应用于系数块。
如果PU是使用帧内预测编码的,那么帧内预测处理单元164可执行帧内预测以产生PU的预测样本块。帧内预测处理单元164可使用帧内预测模式来基于空间相邻PU 的样本块而产生PU的预测样本块。帧内预测处理单元164可基于从位流剖析的一或多个语法元素来确定PU的帧内预测模式。
运动补偿单元162可基于从位流提取的语法元素构造第一参考图片列表(列表0)和第二参考图片列表(列表1)。此外,如果使用帧间预测对PU进行编码,那么熵解码单元150可提取PU的运动信息。运动补偿单元162可基于PU的运动信息来确定PU的一或多个参考块。运动补偿单元162可基于PU的一或多个参考块来产生PU的预测样本块。
重构单元158可在适用时使用与CU的TU相关联的残余样本块和CU的PU的预测样本块(即,帧内预测数据或帧间预测数据)来重构CU的样本块。特定来说,重构单元 158可将残余样本块的样本添加到预测样本块的对应样本以重构CU的样本块。
滤波器单元159可执行解块操作以减少与CTB的CU的样本块相关联的成块假像。视频解码器30可将CU的样本块存储在经解码图片缓冲器160中。经解码图片缓冲器 160可提供参考图片以用于后续运动补偿、帧内预测以及在例如图1的显示装置32等显示装置上的呈现。举例来说,视频解码器30可基于经解码图片缓冲器160中的样本块来对其它CU的PU执行帧内预测或帧间预测操作。
图7是图解说明根据本发明的一或多种技术的用于对视频数据进行编码的视频编码器20的实例操作200的流程图。提供图7作为实例。在其它实例中,可使用比图7的实例中所示的步骤多、少或不同的步骤来实施本发明的技术。
在图7的实例中,变换处理单元104可基于残余样本块产生系数块(202)。如上所述,变换处理单元104可通过将例如离散余弦变换等一或多个变换应用于残余样本块来产生系数块。在某些情况下,变换处理单元104不将变换应用于残余样本块,而是可跳过变换的应用。虽然图7的实例中未图示,但量化单元106可量化系数块中的系数。
熵编码单元116可在系数块的系数的第一译码遍次期间编码对应于系数块的系数的语法元素的第一集合(204)。举例来说,熵编码单元116可执行系数块的子块中的系数的译码遍次以编码子块中的系数的sigMapFlag、gr1Flag、gr2Flag、signFlag和levelRem。当熵编码单元116对语法元素的第一集合进行编码时,熵编码单元116可对于子块中的每一系数产生系数语法元素。如果系数语法元素经上下文译码,那么熵编码单元116可选择系数语法元素的译码上下文,且使用选定熵译码上下文来对系数语法元素进行熵编码。否则,熵编码单元116可对系数语法元素进行旁路编码。
此外,熵编码单元116可在系数块的系数的第二译码遍次期间编码对应于系数块的系数的语法元素的第二集合(206)。举例来说,熵编码单元116可在第一译码遍次期间编码sigMapFlag,在第二译码遍次期间编码gr1Flag。
当熵编码单元116在第二译码遍次期间编码语法元素时,熵编码单元116可产生语法元素(208)。所述语法元素可在语法元素的第二集合中且可对应于系数块的当前系数。此外,熵编码单元116选择语法元素的译码上下文(210)。根据本发明的技术,熵编码单元116可至少部分地基于第二语法元素和第三语法元素来选择语法元素的译码上下文。第二语法元素可在语法元素的第一集合中且可对应于非因果系数。举例来说,第二语法元素可为非因果系数的较高优先级语法元素。第三语法元素在语法元素的第二集合中且对应于因果系数。举例来说,如果第一语法元素是gr2Flag,那么第二语法元素可为 gr1Flag或sigMapFlag,且第三语法元素可为gr2Flag。非因果系数在当前(例如,第二) 译码遍次的译码次序中在当前系数之后发生。因果系数在译码次序中在当前系数之前发生。
在选择语法元素的译码上下文之后,熵编码单元116可至少部分地基于为第一语法元素选择的译码上下文来对语法元素进行熵编码(212)。举例来说,熵编码单元116可使用规则CABAC编码来对语法元素进行编码。
图8是图解说明根据本发明的一或多种技术的用于对视频数据进行解码的视频解码器30的实例操作250的流程图。如图8的实例中说明,熵解码单元150在系数块的系数的第一译码遍次期间解码对应于系数块的系数的语法元素的第一集合(252)。另外,熵解码单元150在系数块的系数的第二译码遍次期间解码对应于系数块的系数的语法元素的第二集合(254)。
当熵解码单元150在第二译码遍次期间解码当前语法元素时,熵解码单元150可至少部分地基于第二语法元素和第三语法元素来选择第一语法元素的译码上下文(256)。第二语法元素在语法元素的第一集合中且对应于非因果系数。第三语法元素在语法元素的第二集合中且对应于因果系数。非因果系数在当前(第二)译码遍次的译码次序中在当前系数之后发生。因果系数在译码次序中在当前系数之前发生。在选择当前语法元素的译码上下文之后,熵解码单元150可至少部分地基于为当前语法元素选择的译码上下文来对当前语法元素进行熵解码(258)。举例来说,熵解码单元150可使用规则CABAC解码来对当前语法元素进行解码。
熵解码单元150可至少部分地基于系数的语法元素的第一和第二集合来确定系数块中的系数的值(260)。逆量化单元154和逆变换处理单元156可基于系数块的系数来产生残余样本块(262)。随后,重构单元158可将残余样本块中的样本添加到预测样本块中的对应样本以重构PU的样本块。
图9A是图解说明实例4x4子块300的概念图。图9B到9G是图解说明图9A的子块300中的系数的上下文邻域中的实例孔的概念图。图9A到9G中的圆对应于子块中的系数。图9A中的圆具有各种类型的交叉影线。图9A中的圆的交叉影线的类型指示图9B到9G中的哪一上下文邻域适用于对应于圆的系数。举例来说,图9A中具有水平交叉影线的圆具有图9B中所示类型的上下文邻域。图9A中具有垂直交叉影线的圆具有图9C中所示类型的上下文邻域。图9A中具有右下对角线交叉影线的圆具有图9D中所示类型的上下文邻域。图9A中具有右上对角线交叉影线的圆具有图9E中所示类型的上下文邻域。图9A中具有栅格交叉影线的圆具有图9F中所示类型的上下文邻域。图9A 中具有对角线交叉交叉影线的圆具有图9G中所示类型的上下文邻域。
在图9B到9G中,白色填充的圆对应于孔,且黑色填充的圆对应于并非孔的系数。在一些实例中,熵译码单元(例如熵编码单元116或熵解码单元150)可不能存取“孔”的当前优先级系数语法元素,因为熵译码单元可与当前系数并行地处理孔。如图9G中所示,对于图9A中具有对角线交叉交叉影线的圆,不使用孔。孔的位置可不在当前4x4 子块之外,因为在当前4x4子块之外的系数可属于先前组块且所述组块的所有系数语法元素可用。在图9A到9G的实例中,假定熵译码单元在译码遍次期间并行地编码四个系数。虽然图9A到9G的实例假定4二进位并行性,但可使用相似技术来实现n二进位并行性,其中n>1。
虽然图9A到9E已描述了相对于4x4子块译码次序使用孔,但熵译码单元可将孔应用于其它译码次序,例如水平、垂直等等。因此,大体上,为了实现针对n个二进位的并行上下文推导,如果系数的上下文邻域含有译码次序中属于与当前系数相同的子块的先前(n-1)个系数中的任一者,那么用孔或如上所述的其它系数代替先前(n-1)个系数。使用孔的一个优点是如果熵译码单元是针对n二进位并行性设计,那么只要m≤n,熵译码单元便可用于m二进位并行性。为了考虑并行性的设计程度与所实施程度之间的差异,上下文邻域的再设计可能不是必要的。
下文详细描述的图10A到10F是图解说明系数块的4x4子块350中的系数的实例群组的概念图。图10A到10F中的圆对应于子块中的系数。在图10A中,系数周围的形状352A到352D指示系数的实例群组。在图10A到10F的实例中,假定熵译码单元(例如,熵编码单元116或熵解码单元150)并行地处理子块350的四个系数。虽然图10A到 10F的实例假定4二进位并行性,但可修改图10A到10F的实例以用于并行地处理其它数目的系数,即n二进位并行性,其中n大于1。此外,在图10A到10F的实例中,假定熵译码单元根据4x4子块左下译码次序处理系数。图10A到10F的实例可针对其它译码次序修改,例如水平译码次序、垂直译码次序等等。
图10B到10F图解说明系数的示范性上下文邻域。图10A中的圆具有各种类型的交叉影线。图10A中的圆的交叉影线的类型指示图10B到10F中的哪一类型的上下文邻域适用于对应于圆的系数。举例来说,图10A中具有垂直交叉影线的圆具有图10B 中所示类型的上下文邻域。图10A中具有水平交叉影线的圆具有图10C中所示类型的上下文邻域。图10A中具有对角线交叉影线的圆具有图10D中所示类型的上下文邻域。图10A中具有栅格交叉影线的圆具有图10E中所示类型的上下文邻域。图10A中具有对角线交叉交叉影线的圆具有图10F中所示类型的上下文邻域。
在图10B到10F中,白色填充的圆对应于孔,且黑色填充的圆对应于并非孔的系数。然而,如果图10B到10F指示上下文邻域中的系数是孔且系数在子块350之外,那么系数的每一系数语法元素可用,且熵译码单元可基于系数的系数语法元素确定系数的实际绝对值。
在一些实例中,熵译码单元可针对四个系数的群组完成所有译码遍次,之后继续到下一系数群组。因此,当熵译码单元对下一系数群组进行译码时,初始系数群组中的系数的实际绝对值可用。举例来说,熵译码单元可在对群组352C中的任何系数语法元素进行译码之前对群组352D中的每一系数的sigMapFlag、gr1Flag、gr2Flag、signFlag和 levelRem进行译码。因此,当对群组352C中的系数的系数语法元素进行译码时,群组 352D中的系数的实际绝对值可用。
比较图9A到9G与图10A到10F,显然在图10A到10F中存在较多系数具有不带孔的上下文邻域。然而,在图10A到10F的实例中,如果群组包含n个系数,那么仅在 m小于或等于n且m可被n整除的情况下m二进位并行性(即,并行地处理m个系数语法元素的能力)是可能的。举例来说,如果群组各自包含四个系数,那么熵译码单元可仅并行地处理四个或两个系数语法元素。
图11是图解说明系数块的4x4子块400内的系数的另一实例分组的概念图。在图11的实例中,每一圆对应于子块400中的系数。椭圆形402A到402G指示子块400内的系数的群组。不同于上文描述的图10A到10F的实例,在图11的实例中,例如熵编码单元116或熵解码单元150等熵译码单元可对系数群组执行全部五个译码遍次,之后对下一系数群组的系数执行任何译码遍次。为此原因,当熵译码单元选择群组中的系数语法元素的译码上下文时,熵译码单元可确定先前经处理群组中的系数的实际绝对值。
除了上述JCTVC-H0228的提议的缺点之外,JCTVC-H0228的提议可能需要视频译码器交错CABAC译码语法元素和旁路译码语法元素的译码。这是因为JCTVC-H0228 的提议要求对系数的sigMapFlag、gr1Flag、gr2Flag、signFlag和levelRem进行译码,之后对下一系数进行译码。通常,sigMapFlag、gr1Flag和gr2Flag经CABAC译码,而signFlag 和levelRem经旁路译码。交错CABAC译码语法元素和旁路译码语法元素的译码可降低译码效率。另外,JCTVC-H0228的提议可需要视频译码器存储特定系数的系数邻域中的系数的整个绝对值以便选择特定系数的译码上下文。存储系数的整个绝对值可显著增加视频译码器所需的存储。
根据本发明的一或多种技术,为了促进旁路译码语法元素的并行化剖析能力,可将每一TU划分为一或多个子集。在一些实例中,每一子集主要使用两个遍次来译码:一个遍次用于上下文译码语法元素,且另一遍次用于旁路译码语法元素。上下文译码语法元素可为sigMapFlag、gr1Flag和gr2Flag,且旁路译码语法元素可为signFlag和levelRem。在上下文译码语法元素遍次中,对一个系数的gr1Flag和gr2Flag(如果可用)进行编码/解码,之后继续到接下来的系数。也可以分离的遍次来处理SignFlag和levelRem。在此实例中,在每一组块中应用三个译码遍次。上述两个或三个译码遍次实例也可应用于整个 TU中的系数译码。
如先前提到,通过使用JCTVC-H0228的提议对sigMapFlag、gr1Flag和gr2Flag语法元素的上下文模型选择可能需要绝对等级值的存储。在本发明的单独译码遍次技术中,已经编码(或解码)的语法元素可用于上下文模型选择。通过此逻辑,当推导系数语法元素的上下文模型时,属于同一组块的相邻系数可具有最大等级3(用已经译码上下文二进位重构)且属于先前组块的相邻系数可具有整个等级信息。为了两个部分之间的平衡以及减少存储每一系数的整个等级值的缓冲器大小,可在使用所存储系数上下文模型推导之前将所存储系数截断到某一阈值。在一个实例中,视频译码器可将所存储系数截断(例如,修剪)到3,这可导致用于上下文推导的所有所存储系数以两个位表示且具有一致的数据范围。
图12是图解说明根据本发明的一或多种技术的视频解码器在三个译码遍次中对子块的系数语法元素进行译码的实例操作450的流程图。操作450可解决上述 JCTVC-H0228的提议的缺点。
在图12的实例中,熵译码单元(例如,熵编码单元116或熵解码单元150)可执行第一译码遍次以对系数块的子块中的系数的sigMapFlag、gr1Flag和gr2Flag进行译码(452)。当熵译码单元执行第一译码遍次时,熵译码单元可产生且CABAC译码系数的 sigMapFlag、gr1Flag和gr2Flag,之后产生且CABAC译码下一系数的sigMapFlag、gr1Flag 和gr2Flag。
在完成第一译码遍次之后,熵译码单元可执行第二译码遍次以对子块中的系数的signFlag进行译码(454)。当熵译码单元执行第二译码遍次时,熵译码单元可产生且旁路译码系数的signFlag,之后译码下一系数的signFlag。此外,在完成第二译码遍次之后,熵译码单元可执行第三译码遍次以对子块中的系数的levelRem进行译码(456)。当熵译码单元执行第三译码遍次时,熵译码单元可产生且旁路译码系数的levelRem,之后译码下一系数的levelRem。
在替代实例中,熵译码单元可在单个遍次中对子块中的系数的signFlag和levelRem 两者进行译码。也就是说,熵译码单元可对系数的signFlag和levelRem进行旁路译码,之后对子块中的下一系数的signFlag和levelRem进行旁路译码。以此方式,熵译码单元可执行两个遍次:一个译码遍次用于CABAC译码语法元素,且一个译码遍次用于旁路译码语法元素。此外,在其它实例中,熵译码单元可对TU的整个系数块执行上述三个或两个译码遍次,与系数块的子块相反。两个或三个译码遍次的使用可比五个译码遍次的使用有利,因为在译码次序上较早的系数的较多等级信息(即,sigMapFlag、gr1Flag 和gr2Flag)可用于译码上下文的选择。也就是说,与五个单独译码遍次相比,两个或三个译码遍次的优点是上下文邻域中的较多等级信息(直到3的等级)可用于上下文推导。
图13A和13B是图解说明当根据对角线译码次序执行译码遍次时用于选择sigMapFlag的译码上下文的上下文邻域的实例模板的概念图。图14A和14B是图解说明当根据水平译码次序执行译码遍次时用于选择sigMapFlag的译码上下文的上下文邻域的实例模板的概念图。图15A和15B是图解说明当根据垂直译码次序执行译码遍次时用于选择sigMapFlag的译码上下文的上下文邻域的实例模板的概念图。图13A、13B、 14A、14B、15A和15B的模板可应用于任意大小的TU。在图13A、13B、14A、14B、 15A和15B的实例中,每一块对应于系数块中的系数。图13A和13B中的箭头500指示对角线译码次序的方向。图14A和14B中的箭头510指示水平译码次序的方向。图 15A和15B中的箭头520指示垂直译码次序的方向。
分别在图13A、13B、14A、14B、15A和15B中具有点划交叉影线的块502、504、 512、514、522和524指示系数块中的当前系数。在图13A、13B、14A、14B、15A和 15B的实例中,熵译码单元(例如,熵编码单元116或熵解码单元150)可并行地处理两个语法元素(例如,二进位)。因此,系数的上下文邻域的模板避免使用译码次序中的前一系数的当前优先级语法元素。实际上,一些系数的上下文邻域的模板可包含除了译码次序中的前一系数之外的额外系数。在图13B中,块506和508对应于额外系数。在另一实例中,块506上方的块可对应于额外系数。在图14A中,块516对应于额外系数。在图14B中,块518和519对应于额外系数。在图15A中,块526对应于额外系数。在图 15B中,块528和530对应于额外系数。
如果熵译码单元使用4x4子块对系数块进行译码且如果系数块内的当前系数的(列,行)坐标(相对于系数块的左上角)不是(0,0)或(3,2),那么熵译码单元可取决于译码次序,基于与图13A、14A或15A中所示当前系数具有空间关系的系数的sigMapFlag来选择当前系数的sigMapFlag的译码上下文。如果系数块内的当前系数的(列,行)坐标是(0,0) 或(3,2),那么熵译码单元可取决于译码次序,基于与图13B、14B或15B中所示当前系数具有空间关系的系数的sigMapFlag来选择当前系数的sigMapFlag的译码上下文。此实例可延伸到具有不同大小的子块,且可用右下方系数正上方的系数的坐标代替(3,2)。
在熵译码单元使用图13A、13B、14A、14B、15A或15B的上下文邻域的一些实例中,熵译码单元可至少部分地基于当前系数的上下文邻域中非零系数的总数目来确定当前系数的sigMapFlag的上下文索引。当前系数的上下文邻域中的非零系数的总数目可表示为sumOnes。在此些实例中,熵译码单元可使用以下等式确定用于选择当前系数的sigMapFlag的译码上下文的上下文索引(ctx_idx):
ctx_idx=ctx_set_idx×6+min(sumOnes,5)
在以上等式中,ctx_set_idx表示上下文集合索引。熵译码单元可以各种方式确定上下文集合索引,包含本发明中在别处描述的方式。
在一些实例中,熵译码单元可能够通过基于所有可用信息选择译码上下文来更准确地选择译码上下文。举例来说,如果熵译码单元正在选择gr1Flag的译码上下文,那么熵译码单元可基于模板中的sigMapFlag和gr1Flag来选择译码上下文。在此实例中,熵译码单元还可基于系数的实际绝对值(如果可用)来选择gr1Flag的译码上下文。然而在一些实例中,以此方式选择译码上下文可大体上增加熵译码单元的计算复杂性。这是因为熵译码单元可能需要更新sigMapFlag、gr1Flag和gr2Flag的系数的(实际或估计)绝对值。为了减少熵译码单元的计算复杂性,熵译码单元可再使用从经译码语法元素的模板获得的信息用于后续语法元素。
举例来说,熵译码单元可为系数的gr1Flag和gr2Flag选择相同的译码上下文。换句话说,coeff_abs_level_greater1_flag和coeff_abs_level_greater2_flag可使用系数的相同上下文。此外,熵译码单元可再使用系数的sumOnes的值来确定gr1Flag和gr2Flag的译码上下文的上下文索引。在一些此类实例中,熵译码单元可使用以下公式来确定上下文索引:
ctx_idx=ctx_set_idx×5+min(sumOnes,4)
在另一实例中,熵译码单元可在不修改的情况下使用曾用以选择sigMapFlag的译码上下文的相同上下文索引来选择gr1Flag和gr2Flag的译码上下文。因此,在这些实例中,gr1Flag的上下文建模可再使用sigMapFlag的计算的结果,因此不需要额外邻域存取。gr2Flag的上下文建模可再使用用于对应gr1Flag的上下文而无任何额外计算。
以下表展示使用涉及图13A、13B、14A、14B、15A和15B的与本发明的技术一致的技术的测试结果。提出的方法是在HM 6.0上实施且在共同测试条件下模拟。在Delta(BD)位速率方面将性能与HM6.0锚点进行比较。表3.1和3.2分别概括了针对QP={22,27,32,37}和QP={12,17,22,27}的实验结果。
表3.1针对QP={22,27,32,37}的模拟结果
表3.1针对QP={12,17,22,27}的模拟结果
虽然本发明是相对于上述变换系数中使用的语法元素来写出,但本发明的技术可在使用其它语法元素的情况下适用,只要译码是在至少两个遍次中完成以使得可应用优先级遍次的概念即可。
在一或多个实例中,所描述的功能可以硬件、软件、固件或其任一组合来实施。如果以软件实施,那么功能可作为一个或多个指令或代码存储在计算机可读媒体上或经由计算机可读媒体传输,且由基于硬件的处理单元执行。计算机可读媒体可包含对应于例如数据存储媒体等有形媒体的计算机可读存储媒体,或包含促进计算机程序例如根据通信协议从一处传送到另一处的任何媒体的通信媒体。以此方式,计算机可读媒体通常可对应于(1)非暂时性的有形计算机可读存储媒体,或(2)例如信号或载波等通信媒体。数据存储媒体可为可由一或多个计算机或者一或多个处理器存取以检索用于实施本发明中描述的技术的指令、代码和/或数据结构的任何可用媒体。计算机程序产品可包含计算机可读媒体。
举例来说且并非限制,此类计算机可读存储媒体可包括RAM、ROM、EEPROM、 CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置、快闪存储器或可用来以指令或数据结构的形式存储所要程序代码且可由计算机存取的任何其它媒体。而且,恰当地将任何连接称作计算机可读媒体。举例来说,如果使用同轴电缆、光纤电缆、双绞线、数字订户线(DSL)或例如红外线、无线电及微波等无线技术从网站、服务器或其它远程源传输指令,则同轴电缆、光纤电缆、双绞线、DSL或例如红外线、无线电及微波等无线技术包含于媒体的定义中。然而应了解,计算机可读存储媒体和数据存储媒体不包含连接、载波、信号或其它瞬时媒体,而是针对非瞬时有形存储媒体。如本文中所使用,磁盘及光盘包含压缩光盘(CD)、激光光盘、光学光盘、数字多功能光盘(DVD)、软磁盘及蓝光光盘,其中磁盘通常以磁性方式再生数据,而光盘使用激光以光学方式再生数据。上文的组合也应包含在计算机可读媒体的范围内。
可由例如一或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其它等效集成或离散逻辑电路等一或多个处理器来执行指令。因此,如本文中所使用的术语“处理器”可指上述结构或适合于实施本文中所描述的技术的任一其它结构中的任一者。另外,在一些方面中,本文描述的功能性可提供于经配置以用于编码和解码的专用硬件和/或软件模块内,或并入在组合式编解码器中。并且,可将所述技术完全实施于一个或多个电路或逻辑元件中。
本发明的技术可在广泛多种装置或设备中实施,包含无线手持机、集成电路(IC)或一组IC(例如,芯片组)。本发明中描述各种组件、模块或单元以强调经配置以执行所揭示技术的装置的功能方面,但不一定需要通过不同硬件单元来实现。而是,如上所述,各种单元可在编解码器硬件单元中组合或由互操作硬件单元(包含如上所述的一个或多个处理器)的集合结合合适软件和/或固件来提供。
已描述了各种实例。这些和其它实例属于所附权利要求书的范围内。

Claims (44)

1.一种用于对视频数据进行编码的方法,所述方法包括:
基于残余样本块产生系数块;
在所述系数块的系数的第一译码遍次期间对对应于所述系数块的系数的语法元素的第一集合进行编码;以及
在所述系数块的所述系数的第二译码遍次期间对对应于所述系数块的系数的语法元素的第二集合进行编码,其中对语法元素的所述第二集合进行编码包括:
产生第一语法元素,所述第一语法元素在语法元素的所述第二集合中且对应于所述系数块的当前系数;
至少部分地基于第二语法元素和第三语法元素来选择所述第一语法元素的译码上下文,其中所述第二语法元素在语法元素的所述第一集合中且对应于非因果系数,其中所述第三语法元素在语法元素的所述第二集合中且对应于因果系数,所述非因果系数在所述第二译码遍次的译码次序中的所述当前系数之后发生,所述因果系数在所述第二译码遍次的所述译码次序中的所述当前系数之前发生;以及
至少部分地基于为所述第一语法元素选择的所述译码上下文来对所述第一语法元素进行熵编码。
2.根据权利要求1所述的方法,其中对语法元素的所述第二集合进行编码包括:
并行地产生所述第一语法元素和第四语法元素,所述第四语法元素在语法元素的所述第二集合中且对应于所述系数块的另一当前系数;
并行地选择所述第一语法元素的所述译码上下文和所述第四语法元素的译码上下文,其中所述第一语法元素的所述译码上下文不是基于所述第四语法元素来选择且所述第四语法元素的所述译码上下文不是基于所述第一语法元素来选择;以及
基于所述第一和第四语法元素的所述译码上下文并行地对所述第一和第四语法元素进行熵编码。
3.根据权利要求1所述的方法,其中所述系数块包括多个子块,所述第二译码遍次的所述译码次序是基于所述子块,且所述因果系数是在所述子块中与所述当前系数不同的一个子块中。
4.根据权利要求1所述的方法,其中语法元素的所述第二集合中的每一语法元素指示以下各项中的一者:与所述语法元素相关联的系数是否大于一,或与所述语法元素相关联的所述系数是否大于二。
5.根据权利要求1所述的方法,其中选择所述第一语法元素的所述译码上下文包括:
至少部分地基于所述第二语法元素确定所述非因果系数的估计绝对值;
至少部分地基于所述第三语法元素确定所述因果系数的实际绝对值;以及
至少部分地基于所述非因果系数的所述估计绝对值和所述因果系数的所述实际绝对值来选择所述第一语法元素的所述译码上下文。
6.根据权利要求1所述的方法,其中选择所述第一语法元素的所述译码上下文包括:
至少部分地基于所述第二语法元素确定所述非因果系数的估计绝对值;
至少部分地基于所述第三语法元素确定所述因果系数的估计绝对值;以及
至少部分地基于所述非因果系数的所述估计绝对值和所述因果系数的所述估计绝对值来选择所述第一语法元素的所述译码上下文。
7.根据权利要求6所述的方法,其中所述因果系数根据所述第二译码遍次的所述译码次序在所述当前系数的特定数目的系数内,且确定所述因果系数的所述估计绝对值包括将所述因果系数的所述估计绝对值确定为等于邻近于所述因果系数的系数的估计绝对值。
8.根据权利要求6所述的方法,其中所述因果系数根据所述第二译码遍次的所述译码次序在所述当前系数的特定数目的系数内,且确定所述因果系数的所述估计绝对值包括将所述因果系数的所述估计绝对值确定为等于预定义值。
9.根据权利要求6所述的方法,其中选择所述第一语法元素的所述译码上下文包括:
应用公式以基于所述非因果系数的所述估计绝对值和所述因果系数的所述估计绝对值来确定索引,其中所述公式将加权值应用于所述非因果系数的所述估计绝对值或所述因果系数的所述估计绝对值;以及
至少部分地基于所述索引来选择所述第一语法元素的所述译码上下文。
10.根据权利要求6所述的方法,其中选择所述第一语法元素的所述译码上下文包括:
将所述非因果系数的所述估计绝对值修剪为两个或三个位;
将所述因果系数的所述估计绝对值修剪为两个或三个位;以及
至少部分地基于所述非因果系数和因果系数的所述经修剪估计绝对值来选择所述第一语法元素的所述译码上下文。
11.一种视频编码装置,其包括一或多个处理器,所述一或多个处理器经配置以:
基于残余样本块产生系数块;
在所述系数块的系数的第一译码遍次期间对对应于所述系数块的系数的语法元素的第一集合进行编码;以及
在所述系数块的所述系数的第二译码遍次期间对对应于所述系数块的系数的语法元素的第二集合进行编码,其中所述一或多个处理器经配置以使得在所述第二译码遍次期间所述一或多个处理器:
产生第一语法元素,所述第一语法元素在语法元素的所述第二集合中且对应于所述系数块的当前系数;
至少部分地基于第二语法元素和第三语法元素来选择所述第一语法元素的译码上下文,其中所述第二语法元素在语法元素的所述第一集合中且对应于非因果系数,其中所述第三语法元素在语法元素的所述第二集合中且对应于因果系数,所述非因果系数在所述第二译码遍次的译码次序中的所述当前系数之后发生,所述因果系数在所述第二译码遍次的所述译码次序中的所述当前系数之前发生;以及
至少部分地基于为所述第一语法元素选择的所述译码上下文来对所述第一语法元素进行熵编码。
12.根据权利要求11所述的视频编码装置,其中所述一或多个处理器经配置以:
并行地产生所述第一语法元素和第四语法元素,所述第四语法元素在语法元素的所述第二集合中且对应于所述系数块的另一当前系数;
并行地选择所述第一语法元素的所述译码上下文和所述第四语法元素的译码上下文,其中所述第一语法元素的所述译码上下文不是基于所述第四语法元素来选择且所述第四语法元素的所述译码上下文不是基于所述第一语法元素来选择;以及
基于所述第一和第四语法元素的所述译码上下文并行地对所述第一和第四语法元素进行熵编码。
13.根据权利要求11所述的视频编码装置,其中所述系数块包括多个子块,所述第二译码遍次的所述译码次序是基于所述子块,且所述因果系数是在所述子块中与所述当前系数不同的一个子块中。
14.根据权利要求11所述的视频编码装置,其中语法元素的所述第二集合中的每一语法元素指示以下各项中的一者:与所述语法元素相关联的系数是否大于一,或与所述语法元素相关联的所述系数是否大于二。
15.根据权利要求11所述的视频编码装置,其中所述一或多个处理器经配置以:
至少部分地基于所述第二语法元素确定所述非因果系数的估计绝对值;
至少部分地基于所述第三语法元素确定所述因果系数的实际绝对值;以及
至少部分地基于所述非因果系数的所述估计绝对值和所述因果系数的所述实际绝对值来选择所述第一语法元素的所述译码上下文。
16.根据权利要求11所述的视频编码装置,其中所述一或多个处理器经配置以:
至少部分地基于所述第二语法元素确定所述非因果系数的估计绝对值;
至少部分地基于所述第三语法元素确定所述因果系数的估计绝对值;以及
至少部分地基于所述非因果系数的所述估计绝对值和所述因果系数的所述估计绝对值来选择所述第一语法元素的所述译码上下文。
17.根据权利要求16所述的视频编码装置,其中所述因果系数根据所述第二译码遍次的所述译码次序在所述当前系数的特定数目的系数内,且所述一或多个处理器经配置以将所述因果系数的所述估计绝对值确定为等于邻近于所述因果系数的系数的估计绝对值。
18.根据权利要求16所述的视频编码装置,其中所述因果系数根据所述第二译码遍次的所述译码次序在所述当前系数的特定数目的系数内,且所述一或多个处理器经配置以将所述因果系数的所述估计绝对值确定为等于预定义值。
19.根据权利要求16所述的视频编码装置,其中所述一或多个处理器经配置以:
应用公式以基于所述非因果系数的所述估计绝对值和所述因果系数的所述估计绝对值来确定索引,其中所述公式将加权值应用于所述非因果系数的所述估计绝对值或所述因果系数的所述估计绝对值;以及
至少部分地基于所述索引来选择所述第一语法元素的所述译码上下文。
20.根据权利要求16所述的视频编码装置,其中所述一或多个处理器经配置以:
将所述非因果系数的所述估计绝对值修剪为两个或三个位;
将所述因果系数的所述估计绝对值修剪为两个或三个位;以及
至少部分地基于所述非因果系数和因果系数的所述经修剪估计绝对值来选择所述第一语法元素的所述译码上下文。
21.一种视频编码装置,其包括:
用于基于残余样本块产生系数块的装置;
用于在所述系数块的系数的第一译码遍次期间对对应于所述系数块的系数的语法元素的第一集合进行编码的装置;以及
用于在所述系数块的所述系数的第二译码遍次期间对对应于所述系数块的系数的语法元素的第二集合进行编码的装置,其中所述用于对语法元素的所述第二集合进行编码的装置包括:
用于产生第一语法元素的装置,所述第一语法元素在语法元素的所述第二集合中且对应于所述系数块的当前系数;
用于至少部分地基于第二语法元素和第三语法元素来选择所述第一语法元素的译码上下文的装置,其中所述第二语法元素在语法元素的所述第一集合中且对应于非因果系数,其中所述第三语法元素在语法元素的所述第二集合中且对应于因果系数,所述非因果系数在所述第二译码遍次的译码次序中的所述当前系数之后发生,所述因果系数在所述第二译码遍次的所述译码次序中的所述当前系数之前发生;以及
用于至少部分地基于为所述第一语法元素选择的所述译码上下文来对所述第一语法元素进行熵编码的装置。
22.一种存储指令的计算机可读存储媒体,所述指令在由视频编码装置的一或多个处理器执行时配置所述视频编码装置以:
基于残余样本块产生系数块;
在所述系数块的系数的第一译码遍次期间对对应于所述系数块的系数的语法元素的第一集合进行编码;以及
在所述系数块的所述系数的第二译码遍次期间对对应于所述系数块的系数的语法元素的第二集合进行编码,其中所述指令配置所述视频编码装置以使得在所述第二译码遍次期间所述视频编码装置:
产生第一语法元素,所述第一语法元素在语法元素的所述第二集合中且对应于所述系数块的当前系数;
至少部分地基于第二语法元素和第三语法元素来选择所述第一语法元素的译码上下文,其中所述第二语法元素在语法元素的所述第一集合中且对应于非因果系数,其中所述第三语法元素在语法元素的所述第二集合中且对应于因果系数,所述非因果系数在所述第二译码遍次的译码次序中的所述当前系数之后发生,所述因果系数在所述第二译码遍次的所述译码次序中的所述当前系数之前发生;以及
至少部分地基于为所述第一语法元素选择的所述译码上下文来对所述第一语法元素进行熵编码。
23.一种用于对视频数据进行解码的方法,所述方法包括:
在系数块的系数的第一译码遍次期间对对应于所述系数块的系数的语法元素的第一集合进行解码;
在所述系数块的所述系数的第二译码遍次期间对对应于所述系数块的系数的语法元素的第二集合进行解码,其中执行所述第二译码遍次包括:
至少部分地基于第二语法元素和第三语法元素来选择第一语法元素的译码上下文,所述第一语法元素在语法元素的所述第二集合中且对应于所述系数块的当前系数,其中所述第二语法元素在语法元素的所述第一集合中且对应于非因果系数,其中所述第三语法元素在语法元素的所述第二集合中且对应于因果系数,所述非因果系数在所述第二译码遍次的译码次序中的所述当前系数之后发生,所述因果系数在所述第二译码遍次的所述译码次序中的所述当前系数之前发生;以及
至少部分地基于为所述第一语法元素选择的所述译码上下文来对所述第一语法元素进行熵解码;以及
基于所述系数块的所述系数产生残余样本块。
24.根据权利要求23所述的方法,其中对语法元素的所述第二集合进行解码包括:
并行地选择所述第一语法元素的所述译码上下文和第四语法元素的译码上下文,所述第四语法元素在语法元素的所述第二集合中且对应于所述系数块的另一当前系数,其中所述第一语法元素的所述译码上下文不是基于所述第四语法元素来选择且所述第四语法元素的所述译码上下文不是基于所述第一语法元素来选择;以及
基于所述第一和第四语法元素的所述译码上下文并行地对所述第一和第四语法元素进行熵解码。
25.根据权利要求23所述的方法,其中所述系数块包括多个子块,所述第二译码遍次的所述译码次序是基于所述子块,且所述因果系数是在所述子块中与所述当前系数不同的一个子块中。
26.根据权利要求23所述的方法,其中语法元素的所述第二集合中的每一语法元素指示以下各项中的一者:与所述语法元素相关联的系数是否大于一,或与所述语法元素相关联的所述系数是否大于二。
27.根据权利要求26所述的方法,其中选择所述第一语法元素的所述译码上下文包括:
至少部分地基于所述第二语法元素确定所述非因果系数的估计绝对值;
至少部分地基于所述第三语法元素确定所述因果系数的实际绝对值;以及
至少部分地基于所述非因果系数的所述估计绝对值和所述因果系数的所述实际绝对值来选择所述第一语法元素的所述译码上下文。
28.根据权利要求26所述的方法,其中选择所述第一语法元素的所述译码上下文包括:
至少部分地基于所述第二语法元素确定所述非因果系数的估计绝对值;
至少部分地基于所述第三语法元素确定所述因果系数的估计绝对值;以及
至少部分地基于所述非因果系数的所述估计绝对值和所述因果系数的所述估计绝对值来选择所述第一语法元素的所述译码上下文。
29.根据权利要求28所述的方法,其中所述因果系数根据所述第二译码遍次的所述译码次序在所述当前系数的特定数目的系数内,且确定所述因果系数的所述估计绝对值包括将所述因果系数的所述估计绝对值确定为等于邻近于所述因果系数的系数的估计绝对值。
30.根据权利要求28所述的方法,其中所述因果系数根据所述第二译码遍次的所述译码次序在所述当前系数的特定数目的系数内,且确定所述因果系数的所述估计绝对值包括将所述因果系数的所述估计绝对值确定为等于预定义值。
31.根据权利要求28所述的方法,其中选择所述第一语法元素的所述译码上下文包括:
应用公式以基于所述非因果系数的所述估计绝对值和所述因果系数的所述估计绝对值来确定索引,其中所述公式将加权值应用于所述非因果系数的所述估计绝对值或所述因果系数的所述估计绝对值;以及
至少部分地基于所述索引来选择所述第一语法元素的所述译码上下文。
32.根据权利要求28所述的方法,其中选择所述第一语法元素的所述译码上下文包括:
将所述非因果系数的所述估计绝对值修剪为两个或三个位;
将所述因果系数的所述估计绝对值修剪为两个或三个位;以及
至少部分地基于所述非因果系数和因果系数的所述经修剪估计绝对值来选择所述第一语法元素的所述译码上下文。
33.一种视频解码装置,其包括一或多个处理器,所述一或多个处理器经配置以:
在系数块的系数的第一译码遍次期间对对应于所述系数块的系数的语法元素的第一集合进行解码;
在所述系数块的所述系数的第二译码遍次期间对对应于所述系数块的系数的语法元素的第二集合进行解码,其中所述一或多个处理器经配置以使得在所述第二译码遍次期间所述一或多个处理器:
至少部分地基于第二语法元素和第三语法元素来选择第一语法元素的译码上下文,所述第一语法元素在语法元素的所述第二集合中且对应于所述系数块的当前系数,其中所述第二语法元素在语法元素的所述第一集合中且对应于非因果系数,其中所述第三语法元素在语法元素的所述第二集合中且对应于因果系数,所述非因果系数在所述第二译码遍次的译码次序中的所述当前系数之后发生,所述因果系数在所述第二译码遍次的所述译码次序中的所述当前系数之前发生;以及
至少部分地基于为所述第一语法元素选择的所述译码上下文来对所述第一语法元素进行熵解码;以及
基于所述系数块的所述系数产生残余样本块。
34.根据权利要求33所述的视频解码装置,其中所述一或多个处理器经配置以:
并行地选择所述第一语法元素的所述译码上下文和第四语法元素的译码上下文,所述第四语法元素在语法元素的所述第二集合中且对应于所述系数块的另一当前系数,其中所述第一语法元素的所述译码上下文不是基于所述第四语法元素来选择且所述第四语法元素的所述译码上下文不是基于所述第一语法元素来选择;以及
基于所述第一和第四语法元素的所述译码上下文并行地对所述第一和第四语法元素进行熵解码。
35.根据权利要求33所述的视频解码装置,其中所述系数块包括多个子块,所述第二译码遍次的所述译码次序是基于所述子块,所述因果系数是在所述子块中与所述当前系数不同的一个子块中。
36.根据权利要求33所述的视频解码装置,其中语法元素的所述第二集合中的每一语法元素指示以下各项中的一者:与所述语法元素相关联的系数是否大于一,或与所述语法元素相关联的所述系数是否大于二。
37.根据权利要求33所述的视频解码装置,其中所述一或多个处理器经配置以:
至少部分地基于所述第二语法元素确定所述非因果系数的估计绝对值;
至少部分地基于所述第三语法元素确定所述因果系数的实际绝对值;以及
至少部分地基于所述非因果系数的所述估计绝对值和所述因果系数的所述实际绝对值来选择所述第一语法元素的所述译码上下文。
38.根据权利要求33所述的视频解码装置,其中所述一或多个处理器经配置以:
至少部分地基于所述第二语法元素确定所述非因果系数的估计绝对值;
至少部分地基于所述第三语法元素确定所述因果系数的估计绝对值;以及
至少部分地基于所述非因果系数的所述估计绝对值和所述因果系数的所述估计绝对值来选择所述第一语法元素的所述译码上下文。
39.根据权利要求38所述的视频解码装置,其中所述因果系数根据所述第二译码遍次的所述译码次序在所述当前系数的特定数目的系数内,且所述一或多个处理器经配置以将所述因果系数的所述估计绝对值确定为等于邻近于所述因果系数的系数的估计绝对值。
40.根据权利要求38所述的视频解码装置,其中所述因果系数根据所述第二译码遍次的所述译码次序在所述当前系数的特定数目的系数内,且所述一或多个处理器经配置以将所述因果系数的所述估计绝对值确定为等于预定义值。
41.根据权利要求38所述的视频解码装置,其中所述一或多个处理器经配置以:
应用公式以基于所述非因果系数的所述估计绝对值和所述因果系数的所述估计绝对值来确定索引,其中所述公式将加权值应用于所述非因果系数的所述估计绝对值或所述因果系数的所述估计绝对值;以及
至少部分地基于所述索引来选择所述第一语法元素的所述译码上下文。
42.根据权利要求38所述的视频解码装置,其中所述一或多个处理器经配置以:
将所述非因果系数的所述估计绝对值修剪为两个或三个位;
将所述因果系数的所述估计绝对值修剪为两个或三个位;以及
至少部分地基于所述非因果系数和因果系数的所述经修剪估计绝对值来选择所述第一语法元素的所述译码上下文。
43.一种视频解码装置,其包括:
用于在系数块的系数的第一译码遍次期间对对应于所述系数块的系数的语法元素的第一集合进行解码的装置;
用于在所述系数块的所述系数的第二译码遍次期间对对应于所述系数块的系数的语法元素的第二集合进行解码的装置,其中用于执行所述第二译码遍次的装置包括:
用于至少部分地基于第二语法元素和第三语法元素来选择第一语法元素的译码上下文的装置,所述第一语法元素在语法元素的所述第二集合中且对应于所述系数块的当前系数,其中所述第二语法元素在语法元素的所述第一集合中且对应于非因果系数,其中所述第三语法元素在语法元素的所述第二集合中且对应于因果系数,所述非因果系数在所述第二译码遍次的译码次序中的所述当前系数之后发生,所述因果系数在所述第二译码遍次的所述译码次序中的所述当前系数之前发生;以及
用于至少部分地基于为所述第一语法元素选择的所述译码上下文来对所述第一语法元素进行熵解码的装置;以及
用于基于所述系数块的所述系数产生残余样本块的装置。
44.一种存储指令的计算机可读存储媒体,所述指令在由视频解码装置的一或多个处理器执行时配置所述视频解码装置以:
在系数块的系数的第一译码遍次期间对对应于所述系数块的系数的语法元素的第一集合进行解码;
在所述系数块的所述系数的第二译码遍次期间对对应于所述系数块的系数的语法元素的第二集合进行解码,其中所述指令配置所述视频解码装置以使得在所述第二译码遍次期间所述视频解码装置:
至少部分地基于第二语法元素和第三语法元素来选择第一语法元素的译码上下文,所述第一语法元素在语法元素的所述第二集合中且对应于所述系数块的当前系数,其中所述第二语法元素在语法元素的所述第一集合中且对应于非因果系数,其中所述第三语法元素在语法元素的所述第二集合中且对应于因果系数,所述非因果系数在所述第二译码遍次的译码次序中的所述当前系数之后发生,所述因果系数在所述第二译码遍次的所述译码次序中的所述当前系数之前发生;以及
至少部分地基于为所述第一语法元素选择的所述译码上下文来对所述第一语法元素进行熵解码;以及
基于所述系数块的所述系数产生残余样本块。
CN201380006166.8A 2012-01-22 2013-01-18 视频译码中的系数的译码 Expired - Fee Related CN104185990B (zh)

Applications Claiming Priority (17)

Application Number Priority Date Filing Date Title
US201261589384P 2012-01-22 2012-01-22
US61/589,384 2012-01-22
US201261592300P 2012-01-30 2012-01-30
US61/592,300 2012-01-30
US201261606300P 2012-03-02 2012-03-02
US201261606338P 2012-03-02 2012-03-02
US201261606304P 2012-03-02 2012-03-02
US61/606,300 2012-03-02
US61/606,338 2012-03-02
US61/606,304 2012-03-02
US201261625062P 2012-04-16 2012-04-16
US201261625072P 2012-04-16 2012-04-16
US61/625,072 2012-04-16
US61/625,062 2012-04-16
US13/744,086 US9866829B2 (en) 2012-01-22 2013-01-17 Coding of syntax elements that correspond to coefficients of a coefficient block in video coding
US13/744,086 2013-01-17
PCT/US2013/022178 WO2013109914A1 (en) 2012-01-22 2013-01-18 Coding of coefficients in video coding

Publications (2)

Publication Number Publication Date
CN104185990A CN104185990A (zh) 2014-12-03
CN104185990B true CN104185990B (zh) 2018-06-05

Family

ID=48797182

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380006166.8A Expired - Fee Related CN104185990B (zh) 2012-01-22 2013-01-18 视频译码中的系数的译码

Country Status (7)

Country Link
US (1) US9866829B2 (zh)
EP (1) EP2805513A1 (zh)
JP (1) JP6199311B2 (zh)
KR (1) KR20140120341A (zh)
CN (1) CN104185990B (zh)
IN (1) IN2014MN01397A (zh)
WO (1) WO2013109914A1 (zh)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
BRPI0818444A2 (pt) * 2007-10-12 2016-10-11 Qualcomm Inc codificação adaptativa de informação de cabeçalho de bloco de vídeo
US8938009B2 (en) * 2007-10-12 2015-01-20 Qualcomm Incorporated Layered encoded bitstream structure
US9497472B2 (en) 2010-11-16 2016-11-15 Qualcomm Incorporated Parallel context calculation in video coding
US20120163456A1 (en) 2010-12-22 2012-06-28 Qualcomm Incorporated Using a most probable scanning order to efficiently code scanning order information for a video block in video coding
US9049444B2 (en) 2010-12-22 2015-06-02 Qualcomm Incorporated Mode dependent scanning of coefficients of a block of video data
US10158855B2 (en) * 2012-03-08 2018-12-18 Sun Patent Trust Image decoding method, and image decoding apparatus using a selected context related to neighboring coefficients
US9936200B2 (en) 2013-04-12 2018-04-03 Qualcomm Incorporated Rice parameter update for coefficient level coding in video coding process
US10021419B2 (en) 2013-07-12 2018-07-10 Qualcomm Incorported Rice parameter initialization for coefficient level coding in video coding process
US9224187B2 (en) 2013-09-27 2015-12-29 Apple Inc. Wavefront order to scan order synchronization
US9336558B2 (en) 2013-09-27 2016-05-10 Apple Inc. Wavefront encoding with parallel bit stream encoding
EP2958328A1 (en) * 2014-06-20 2015-12-23 Thomson Licensing Method and device for signaling in a bitstream a picture/video format of an LDR picture and a picture/video format of a decoded HDR picture obtained from said LDR picture and an illumination picture
KR101627069B1 (ko) * 2015-04-01 2016-06-02 이화여자대학교 산학협력단 동영상 인코딩에서 잔차 신호에 대한 희소 변환 방법, 희소 변환을 이용한 동영상 인코딩 방법 및 희소 변환을 이용하여 부호화된 신호에 대한 디코딩 방법
US11233998B2 (en) * 2015-05-29 2022-01-25 Qualcomm Incorporated Coding data using an enhanced context-adaptive binary arithmetic coding (CABAC) design
US10616604B2 (en) * 2015-09-01 2020-04-07 Qualcomm Incorporated Coefficient level coding in video coding
US10630974B2 (en) * 2017-05-30 2020-04-21 Google Llc Coding of intra-prediction modes
US10506258B2 (en) * 2017-07-13 2019-12-10 Google Llc Coding video syntax elements using a context tree
CN116132673A (zh) * 2017-12-13 2023-05-16 三星电子株式会社 视频解码方法及其装置以及视频编码方法及其装置
WO2019135448A1 (ko) * 2018-01-02 2019-07-11 삼성전자 주식회사 비디오 복호화 방법 및 그 장치 및 비디오 부호화 방법 및 그 장치
US10506242B2 (en) 2018-01-30 2019-12-10 Google Llc Efficient context model computation design in transform coefficient coding
US10869060B2 (en) * 2018-01-30 2020-12-15 Google Llc Efficient context model computation design in transform coefficient coding
US10491914B2 (en) * 2018-03-29 2019-11-26 Tencent America LLC Transform information prediction
KR102030384B1 (ko) 2018-06-19 2019-11-08 광운대학교 산학협력단 잔차 계수 부호화/복호화 방법 및 장치
US11350093B2 (en) * 2018-06-11 2022-05-31 Hanwha Techwin Co., Ltd. Residual coefficient encoding/decoding method and device
US11451840B2 (en) * 2018-06-18 2022-09-20 Qualcomm Incorporated Trellis coded quantization coefficient coding
US11113846B2 (en) * 2018-08-31 2021-09-07 Hulu, LLC Coefficient context modeling in video coding
US11336918B2 (en) 2018-09-05 2022-05-17 Qualcomm Incorporated Regular coded bin reduction for coefficient coding
US10904548B2 (en) * 2018-12-06 2021-01-26 Qualcomm Incorporated Coefficient processing for video encoding and decoding
JP7257523B2 (ja) 2018-12-28 2023-04-13 テレフオンアクチーボラゲット エルエム エリクソン(パブル) エンコーダおよびデコーダにおける変換選択を選択するための方法および装置
US11134273B2 (en) 2019-02-14 2021-09-28 Qualcomm Incorporated Regular coded bin reduction for coefficient coding
US11451826B2 (en) 2019-04-15 2022-09-20 Tencent America LLC Lossless coding mode and switchable residual coding
US10733158B1 (en) * 2019-05-03 2020-08-04 EMC IP Holding Company LLC System and method for hash-based entropy calculation
US11197009B2 (en) 2019-05-30 2021-12-07 Hulu, LLC Processing sub-partitions in parallel using reference pixels
US11202070B2 (en) * 2019-05-30 2021-12-14 Hulu, LLC Parallel bi-directional intra-coding of sub-partitions
JP7444970B2 (ja) 2019-08-20 2024-03-06 北京字節跳動網絡技術有限公司 デフォルトおよびユーザ定義のスケーリング行列の使用法
CN113038140A (zh) * 2019-12-24 2021-06-25 扬智电子科技(中国)有限公司 视频解码方法与视频解码装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102186075A (zh) * 2011-04-28 2011-09-14 北京大学 一种熵编码器及其实现方法
CN102238387A (zh) * 2011-05-25 2011-11-09 深圳市融创天下科技股份有限公司 一种视频熵编码、熵解码方法、装置及介质

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100612015B1 (ko) * 2004-07-22 2006-08-11 삼성전자주식회사 컨텍스트 적응형 이진 산술 부호화 방법 및 그 장치
WO2006075901A1 (en) 2005-01-14 2006-07-20 Sungkyunkwan University Methods of and apparatuses for adaptive entropy encoding and adaptive entropy decoding for scalable video encoding
KR101356733B1 (ko) 2007-03-07 2014-02-05 삼성전자주식회사 컨텍스트 기반 적응적 이진 산술 부호화, 복호화 방법 및장치
US8135072B2 (en) * 2007-08-01 2012-03-13 Lsi Corporation CAVLC run before encode with zero cycle costs
KR101375668B1 (ko) 2008-03-17 2014-03-18 삼성전자주식회사 변환 계수의 부호화, 복호화 방법 및 장치
KR101511082B1 (ko) 2008-05-09 2015-04-13 삼성전자주식회사 최하위 비트를 이용한 엔트로피 부호화 방법과 그 장치 및엔트로피 복호화 방법과 그 장치
EP2182732A1 (en) 2008-10-28 2010-05-05 Panasonic Corporation Switching between scans in image coding
CN101836454B (zh) 2008-12-03 2012-08-22 联发科技股份有限公司 对有序熵切片执行平行cabac码处理的方法及装置
DK2559246T3 (en) 2010-04-13 2016-09-19 Ge Video Compression Llc Fusion of sample areas
NO2559244T3 (zh) 2010-04-13 2017-12-30
US9215470B2 (en) 2010-07-09 2015-12-15 Qualcomm Incorporated Signaling selected directional transform for video coding
US20120014433A1 (en) 2010-07-15 2012-01-19 Qualcomm Incorporated Entropy coding of bins across bin groups using variable length codewords
US9154801B2 (en) * 2010-09-30 2015-10-06 Texas Instruments Incorporated Method and apparatus for diagonal scan and simplified coding of transform coefficients
US9313514B2 (en) 2010-10-01 2016-04-12 Sharp Kabushiki Kaisha Methods and systems for entropy coder initialization
WO2012051033A1 (en) 2010-10-14 2012-04-19 Thomson Licensing Method and apparatus for improved entropy encoding and decoding
US9497472B2 (en) 2010-11-16 2016-11-15 Qualcomm Incorporated Parallel context calculation in video coding
US9338449B2 (en) 2011-03-08 2016-05-10 Qualcomm Incorporated Harmonized scan order for coding transform coefficients in video coding
RS64604B1 (sr) * 2011-06-16 2023-10-31 Ge Video Compression Llc Entropijsko kodiranje razlika vektora kretanja
JP5733590B2 (ja) 2011-07-15 2015-06-10 モトローラ モビリティ エルエルシーMotorola Mobility Llc 変換係数レベルを符号化するコンテキストモデリング技法
US8891630B2 (en) * 2011-10-24 2014-11-18 Blackberry Limited Significance map encoding and decoding using partition set based context assignment
EP3139609B1 (en) * 2012-01-03 2021-01-06 HFI Innovation Inc. Method and apparatus for block-based significance map and significance group flag context selection
US9253481B2 (en) 2012-01-13 2016-02-02 Qualcomm Incorporated Determining contexts for coding transform coefficient data in video coding
US9743116B2 (en) 2012-01-19 2017-08-22 Huawei Technologies Co., Ltd. High throughput coding for CABAC in HEVC

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102186075A (zh) * 2011-04-28 2011-09-14 北京大学 一种熵编码器及其实现方法
CN102238387A (zh) * 2011-05-25 2011-11-09 深圳市融创天下科技股份有限公司 一种视频熵编码、熵解码方法、装置及介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
IMPROVED CONTEXT MODELING FOR CODING QUANTIZED TRANSFORM COEFFICIENTS IN VIDEO COMPRESSION;Tung Nguyen等;《28th Picture Coding Symposium》;20101210;全文 *
WD5: Working Draft 5 of High-Efficiency Video Coding;Benjamin Bross等;《Joint Collaborative Team on Video Coding (JCT-VC)》;20111130;全文 *

Also Published As

Publication number Publication date
US20130188699A1 (en) 2013-07-25
JP6199311B2 (ja) 2017-09-20
EP2805513A1 (en) 2014-11-26
CN104185990A (zh) 2014-12-03
KR20140120341A (ko) 2014-10-13
JP2015508617A (ja) 2015-03-19
WO2013109914A1 (en) 2013-07-25
US9866829B2 (en) 2018-01-09
IN2014MN01397A (zh) 2015-07-03

Similar Documents

Publication Publication Date Title
CN104185990B (zh) 视频译码中的系数的译码
KR102592909B1 (ko) 변환 계수의 엔트로피 부호화/복호화 방법 및 장치
CA2992850C (en) Coefficient level coding in video coding
CN104205837B (zh) 视频译码中的经译码块旗标推断
CN104685875B (zh) 用于视频译码的方法、设备、计算机可读存储媒体
CN104081777B (zh) 对视频数据进行编码或解码的方法、装置、设备及非暂时计算机可读媒体
CN104054347B (zh) 在视频译码中波前平行处理的使用的指示
CN105393536B (zh) 使用位移向量从预测性块的帧内预测
CN104247421B (zh) 用于系数扫描的系数群及系数译码
CN103703776B (zh) 在视频译码中的系数扫描
CN104040900B (zh) 用于对视频数据进行编码和解码的方法和设备
CN110073661A (zh) 用于视频译码的多种类型树架构
CN108781289A (zh) 针对视频译码工具的受约束块层级优化和用信号发送
CN105379270A (zh) 颜色分量间残余预测
CN105556974A (zh) 基于调色板的视频译码中的调色板预测
CN106797484A (zh) 用于基于调色板的视频译码的调色板索引二进制化
CN104471942A (zh) 重新使用参数集用于视频译码
CN103190147A (zh) 用于视频译码的语法元素的联合译码
CN104685890B (zh) 用于处理和编码多层视频数据的方法、装置和设备
CN104081778B (zh) 并行运动估计范围大小的隐含推导
CN103931193A (zh) 编码/解码图像的方法和装置
CN104854871A (zh) 具有减少的线缓冲器的解块滤波器
CN107124915A (zh) 用于调色板模式译码的对角线副本

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20180605

Termination date: 20190118

CF01 Termination of patent right due to non-payment of annual fee