CN107660339B - 译码视频数据的方法和装置及非暂时性计算机可读存储媒体 - Google Patents

译码视频数据的方法和装置及非暂时性计算机可读存储媒体 Download PDF

Info

Publication number
CN107660339B
CN107660339B CN201680030423.5A CN201680030423A CN107660339B CN 107660339 B CN107660339 B CN 107660339B CN 201680030423 A CN201680030423 A CN 201680030423A CN 107660339 B CN107660339 B CN 107660339B
Authority
CN
China
Prior art keywords
slice
current
previously
picture
context
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201680030423.5A
Other languages
English (en)
Other versions
CN107660339A (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 CN107660339A publication Critical patent/CN107660339A/zh
Application granted granted Critical
Publication of CN107660339B publication Critical patent/CN107660339B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/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/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/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • 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/124Quantisation
    • 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/124Quantisation
    • H04N19/126Details of normalisation or weighting functions, e.g. normalisation matrices or variable uniform quantisers
    • 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
    • H04N19/136Incoming video signal characteristics or properties
    • 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
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • 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
    • 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/174Methods 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 slice, e.g. a line of blocks or a group of blocks
    • 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/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
    • H04N19/436Methods 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 using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/625Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic 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/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
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • 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/172Methods 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 picture, frame or field
    • 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/184Methods 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 bits, e.g. of the compressed video stream

Abstract

本发明大体描述上下文自适应二进制算术译码CABAC技术。所述技术的方面大体上是针对基于继承的上下文初始化。实例视频译码装置包含经配置以存储视频数据的存储器,及一或多个处理器。所述处理器经配置以通过继承所述所存储视频数据的先前已译码图片的先前已译码块的上下文信息作为当前图片的当前切片的初始化上下文信息来初始化所述当前图片的所述当前切片的上下文信息。所述处理器经进一步配置以使用所述初始化上下文信息而对所述当前切片的数据进行译码。

Description

译码视频数据的方法和装置及非暂时性计算机可读存储媒体
本申请案主张2015年5月29日申请的第62/168,571号美国临时申请案的权益,所述申请案的全部内容特此以引用的方式并入本文中。
技术领域
本发明涉及视频译码。
背景技术
数字视频能力可并入到广泛范围的装置中,包括数字电视、数字直播系统、无线广播系统、个人数字助理(PDA)、膝上型或台式计算机、平板计算机、电子书阅读器、数字摄像机、数字记录装置、数字媒体播放器、视频游戏装置、视频游戏控制台、蜂窝式或卫星无线电电话、所谓的“智能型电话”、视频电话会议装置、视频流装置及其类似物。数字视频装置实施视频译码技术,例如在由MPEG-2、MPEG-4、ITU-T H.263、ITU-T H.264/MPEG-4第10部分“高级视频译码(AVC)”所定义的标准、目前正在开发的高效视频译码(HEVC)标准及这些标准的扩展中所描述的那些视频译码技术。视频装置可通过实施此类视频译码技术来更有效地发射、接收、编码、解码及/或存储数字视频信息。
视频译码技术包含空间(图片内)预测及/或时间(图片间)预测以减少或移除视频序列中固有的冗余。对于基于块的视频译码,可将视频切片(例如,视频帧或视频帧的一部分)分割成视频块(其也可被称作树型块)、译码单元(CU)及/或译码节点。图片的帧内译码(I)切片中的视频块使用关于同一图片中的相邻块中的参考样本的空间预测来编码。图片的帧间译码(P或B)切片中的视频块可使用关于同一图片中的相邻块中的参考样本的空间预测或关于其它参考图片中的参考样本的时间预测。图片可被称作帧,且参考图片可被称作参考帧。
空间或时间预测产生待译码的块的预测性块。残余数据表示待译码的原始块与预测性块之间的像素差。根据指向形成预测性块的参考样本的块的运动向量及指示经译码块与预测性块之间的差异的残余数据来编码经帧间译码块。经帧内译码块是根据帧内译码模式与残余数据来编码。为进行进一步压缩,可将残余数据从像素域变换到变换域,从而导致残余变换系数,可接着量化所述残余变换系数。可扫描最初配置成二维阵列的经量化变换系数以便产生变换系数的一维向量,且可应用熵译码以达成甚至较多压缩。
发明内容
本发明描述与基于块的混合式视频译码中的熵译码模块有关的实例技术。这些技术可应用于任何现有视频编解码器,例如HEVC(高效率视频译码),或这些技术可为任何未来视频译码标准或其它专用或非专用译码技术中的高效译码工具。各种方面是针对基于二进制算术译码(BAC)的译码装置的上下文建模及上下文初始化增强。本文中描述若干技术,且根据本发明,视频译码装置可分离或以各种组合实施技术。
在一个实例中,本发明是针对一种用于解码视频数据的方法,所述方法包含:针对当前变换系数的语法元素的值的多个二进位中的每一者,使用一或多个先前已解码变换系数的所述语法元素的值的相应对应二进位来确定上下文,其中确定所述上下文包括使用先前已解码变换系数的所述语法元素的值的对应第i二进位来确定所述当前变换系数的所述语法元素的所述值的第i二进位的上下文,其中i包括非负整数,且其中使用所述先前已解码变换系数的所述语法元素的所述值的所述对应第i二进位包括仅使用所述先前已解码变换系数的所述语法元素的所述值的所述第i二进位且不使用所述先前已解码变换系数的所述语法元素的所述值的其它二进位。所述方法可进一步包含使用所述所确定的上下文对所述当前变换系数的所述语法元素的所述值的所述第i二进位进行上下文自适应二进制算术译码(CABAC)解码。
在另一实例中,本发明是针对一种用于解码视频数据的方法,所述方法包含:针对当前变换系数的语法元素的值的多个二进位中的每一者,使用一或多个先前已编码变换系数的所述语法元素的值的相应对应二进位来确定上下文,其中确定所述上下文包括使用先前已编码变换系数的所述语法元素的值的对应第i二进位来确定所述当前变换系数的所述语法元素的所述值的第i二进位的上下文,其中i包括非负整数,且其中使用所述先前已编码变换系数的所述语法元素的所述值的所述对应第i二进位包括仅使用所述先前已编码变换系数的所述语法元素的所述值的所述第i二进位且不使用所述先前已编码变换系数的所述语法元素的所述值的其它二进位。所述方法可进一步包含使用所述所确定的上下文对所述当前变换系数的所述语法元素的所述值的所述第i二进位进行CABAC编码。
在另一实例中,本发明是针对一种用于对视频数据进行译码的装置,所述装置包含经配置以存储视频数据的存储器,及一或多个处理器。所述一或多个处理器可经配置以针对当前变换系数的语法元素的值的多个二进位中的每一个,使用一或多个先前已译码变换系数的所述语法元素的值的相应对应二进位来确定上下文,其中为了确定所述上下文,所述一或多个处理器经配置以使用先前已译码变换系数的所述语法元素的值的对应第i二进位来确定所述当前变换系数的所述语法元素的所述值的第i二进位的上下文,其中i包括非负整数,且其中为了使用所述先前已译码变换系数的所述语法元素的所述值的所述对应第i二进位,所述一或多个处理器经配置以仅使用所述先前已译码变换系数的所述语法元素的所述值的所述第i二进位且不使用所述先前已译码变换系数的所述语法元素的所述值的其它二进位。所述处理器可经进一步配置以使用所述所确定的上下文对所述当前变换系数的所述语法元素的所述值的所述第i二进位进行CABAC译码。
在另一实例中,本发明是针对一种视频译码设备。所述视频译码设备可包含用于针对当前变换系数的语法元素的值的多个二进位中的每一个,使用一或多个先前已译码变换系数的所述语法元素的值的相应对应二进位来确定上下文的装置,其中用于确定所述上下文的所述装置包括用于使用先前已译码变换系数的所述语法元素的值的对应第i二进位来确定所述当前变换系数的所述语法元素的所述值的第i二进位的上下文的装置,其中i包括非负整数,且其中用于使用所述先前已译码变换系数的所述语法元素的所述值的所述对应第i二进位的所述装置包括用于仅使用所述先前已译码变换系数的所述语法元素的所述值的所述第i二进位且不使用所述先前已译码变换系数的所述语法元素的所述值的其它二进位的装置。所述视频译码设备可进一步包含用于使用所述所确定的上下文对所述当前变换系数的所述语法元素的所述值的所述第i二进位进行CABAC译码的装置。
在另一实例中,本发明是针对一种编码有指令的非暂时性计算机可读存储媒体。所述指令在执行时可使得视频译码装置的一或多个处理器:针对当前变换系数的语法元素的值的多个二进位中的每一个,使用一或多个先前已译码变换系数的所述语法元素的值的相应对应二进位来确定上下文,其中为了确定所述上下文,所述一或多个处理器经配置以使用先前已译码变换系数的所述语法元素的值的对应第i二进位来确定所述当前变换系数的所述语法元素的所述值的第i二进位的上下文,其中i包括非负整数,且其中为了使用所述先前已译码变换系数的所述语法元素的所述值的所述对应第i二进位,所述一或多个处理器经配置以仅使用所述先前已译码变换系数的所述语法元素的所述值的所述第i二进位且不使用所述先前已译码变换系数的所述语法元素的所述值的其它二进位。所述指令在执行时可进一步使得所述视频译码装置的所述一或多个处理器使用所述所确定的上下文对所述当前变换系数的所述语法元素的所述值的所述第i二进位进行CABAC译码。
在另一实例中,本发明是针对一种解码视频数据的方法。所述方法可包含通过继承先前已解码切片的先前已解码块的上下文信息作为当前图片的当前切片的初始化上下文信息来初始化所述当前图片的所述当前切片的上下文信息,及使用所述初始化上下文信息来解码所述当前切片的数据。
在另一实例中,本发明是针对一种编码视频数据的方法。所述方法可包含通过继承先前已编码切片的先前已编码块的上下文信息作为当前图片的当前切片的初始化上下文信息来初始化所述当前图片的所述当前切片的上下文信息,及使用所述初始化上下文信息来编码所述当前切片的数据。
在另一实例中,本发明是针对一种用于对视频数据进行译码的装置,所述装置包含经配置以存储视频数据的存储器,及一或多个处理器。所述一或多个处理器可经配置以通过继承译码所述所存储视频数据的先前已译码切片的先前已译码块之后的上下文信息作为当前图片的当前切片的初始化上下文信息来初始化所述当前图片的所述当前切片的上下文信息,且使用所述初始化上下文信息对所述当前切片的数据进行译码。
在另一实例中,本发明是针对一种视频译码设备。所述视频译码设备可包含用于通过继承译码先前已译码切片的先前已译码块之后的上下文信息作为当前图片的当前切片的初始化上下文信息来初始化所述当前图片的所述当前切片的上下文信息的装置,及用于使用所述初始化上下文信息对所述当前切片的数据进行译码的装置。
在另一实例中,本发明是针对一种编码有指令的非暂时性计算机可读存储媒体。所述指令在执行时可使得视频译码装置的一或多个处理器通过继承译码先前已译码切片的先前已译码块之后的上下文信息作为当前图片的当前切片的初始化上下文信息来初始化所述当前图片的所述当前切片的上下文信息,及使用所述初始化上下文信息对所述当前切片的数据进行译码。
在另一实例中,本发明是针对一种处理视频数据的方法。所述方法可包含识别包含当前变换系数的系数群组(CG),所述CG表示变换单元内的变换系数的子集。所述方法可进一步包含基于与所述变换单元相关联的变换大小来确定所述CG的大小。
在另一实例中,本发明是针对一种用于对视频数据进行译码的装置,所述装置包含经配置以存储视频数据的存储器,及一或多个处理器。所述一或多个处理器可经配置以识别包含所述视频数据的当前变换系数的系数群组(CG),所述CG表示变换单元内的变换系数的子集。所述一或多个处理器可经进一步配置以基于与所述变换单元相关联的变换大小来确定所述CG的大小。
在另一实例中,本发明是针对一种编码有指令的非暂时性计算机可读存储媒体。所述指令在执行时可使得视频译码装置的一或多个处理器:识别包含所述视频数据的当前变换系数的系数群组(CG),所述CG表示变换单元内的变换系数的子集;且基于与所述变换单元相关联的变换大小来确定所述CG的大小。
在另一实例中,本发明是针对一种用于对视频数据进行译码的设备。所述设备可包含用于识别包含当前变换系数的系数群组(CG)的装置,所述CG表示变换单元内的变换系数的子集。所述设备可进一步包含用于基于与所述变换单元相关联的变换大小来确定所述CG的大小的装置。
在另一实例中,本发明是针对一种存储经编码视频位流的非暂时性计算机可读存储媒体。所述位流在由视频解码装置处理时可使得所述视频解码装置的一或多个处理器:识别包含所述视频数据的当前变换系数的系数群组(CG),所述CG表示变换单元内的变换系数的子集;且基于与所述变换单元相关联的变换大小来确定所述CG的大小。
在另一实例中,本发明是针对一种存储经编码视频位流的非暂时性计算机可读存储媒体。所述位流在由视频解码装置处理时可使得所述视频解码装置的一或多个处理器通过继承译码先前已译码切片的先前已译码块之后的上下文信息作为当前图片的当前切片的初始化上下文信息来初始化所述当前图片的所述当前切片的上下文信息,及使用所述初始化上下文信息对所述当前切片的数据进行译码。
在另一实例中,本发明是针对一种存储经编码视频位流的非暂时性计算机可读存储媒体。所述位流在由视频解码装置处理时可使得所述视频解码装置的一或多个处理器:针对当前变换系数的语法元素的值的多个二进位中的每一者,使用一或多个先前已译码变换系数的所述语法元素的值的相应对应二进位来确定上下文,其中为了确定所述上下文,所述一或多个处理器经配置以使用先前已译码变换系数的所述语法元素的值的对应第i二进位来确定所述当前变换系数的所述语法元素的所述值的第i二进位的上下文,其中i包括非负整数,且其中为了使用所述先前已译码变换系数的所述语法元素的所述值的所述对应第i二进位,所述一或多个处理器经配置以仅使用所述先前已译码变换系数的所述语法元素的所述值的所述第i二进位且不使用所述先前已译码变换系数的所述语法元素的所述值的其它二进位。所述位流在由视频解码装置处理时可使得所述视频解码装置的一或多个处理器使用所述所确定的上下文对所述当前变换系数的所述语法元素的所述值的所述第i二进位进行CABAC译码。
在随附图式及以下描述中阐述本发明的一或多个方面的细节。本发明中所描述的技术的其它特征、目标及优点将从描述及图式且从权利要求书显而易见。
附图说明
图1为说明实例视频编码及解码系统的框图,所述系统可利用用于根据增强型上下文自适应二进制算术译码(CABAC)设计而对数据进行译码的技术。
图2A及2B为说明根据二进制算术译码(BAC)的范围更新技术的概念图。
图3为展示取决于范围的BAC输出的实例的概念图。
图4为说明视频编码器的实例的框图,所述视频编码器可实施用于根据增强型CABAC设计对数据进行译码的技术。
图5为根据本发明的技术的可经配置以执行CABAC的实例熵编码单元的框图。
图6为说明视频解码器的实例的框图,所述视频解码器可实施用于根据增强型CABAC设计对数据进行译码的技术。
图7为根据本发明的技术的可经配置以执行CABAC的实例熵编码单元的框图。
图8为说明基于表的二进制算术译码的实例过程的流程图。
图9为说明基于残余四分树结构的变换方案的概念图。
图10描绘熵解码单元及/或熵编码单元可关于本文中所描述的上下文建模技术使用的模板的一个实例。
图11为说明基于系数群组的实例系数扫描的概念图。
图12为说明二进位导出的实例的概念图。
图13为说明针对不同亮度二进位的在TU内的不同位置的上下文索引的范围的概念图。
图14为说明视频译码装置或其各种组件可执行以实施本发明的上下文建模技术中的一或多个的实例过程的流程图。
图15为说明视频译码装置或其各种组件可执行以实施本发明的基于继承的上下文初始化技术中的一或多个的实例过程的流程图。
图16为说明作为视频解码过程的部分的视频译码装置或其各种组件可执行以实施本发明的一或多种技术的实例过程的流程图。
图17为说明视频译码装置或其各种组件可执行以实施本发明的一或多个系数群组(CG)大小确定技术的实例过程的流程图。
具体实施方式
本发明的技术大体上涉及基于块的混合视频译码中的熵译码。这些技术可应用于任何现有视频编解码器,例如HEVC(高效率视频译码),或这些技术可为任何未来视频译码标准或其它专用或非专用译码技术中的高效译码工具。出于实例及解释的目的,大体上关于HEVC(或ITU-T H.265)及/或ITU-T H.264描述本发明的技术。
视频译码标准包含ITU-T H.261、ISO/IEC MPEG-1Visual、ITU-T H.262或ISO/IECMPEG-2Visual、ITU-T H.263、ISO/IEC MPEG-4Visual及ITU-T H.264(也称为ISO/IECMPEG-4AVC),包含其可调式视频译码(SVC)及多视图视频译码(MVC)扩展。
另外,ITU-T视频译码专家组(VCEG)及ISO/IEC运动图片专家组(MPEG)的视频译码联合协作小组(JCT-VC)以及3D视频译码扩展开发联合协作小组(JCT-3V)最近已开发出了新视频译码标准,即高效率视频译码(HEVC)或ITU-T H.265,包含其范围扩展、多视图扩展(MV-HEVC)及可调式扩展(SHVC)。在下文中被称作HEVC WD的HEVC草案规范可从phenix.int-evry.fr/jct/doc_end_user/documents/14_Vienna/wg11/JCTVC-N1003-v1.zip获得。
本发明的技术可克服与CABAC译码相关联的各种问题。详细来说,这些技术包含可单独或一起使用的增强型CABAC设计及更高效的变换系数上下文建模技术。在熵译码中,语法元素的值以二进制形式表示,且每一位(或“二进位”)使用特定上下文译码。根据本发明的各种方面,语法元素的值的二进位集合的上下文信息可使用先前变换系数的语法元素的先前已译码值的相应二进位来确定。下文论述额外细节。
图1为说明实例视频编码及解码系统10的框图,所述实例视频编码及解码系统可利用用于根据增强型CABAC设计对数据进行译码的技术。如图1中所展示,系统10包含源装置12,其提供稍后时间将由目的地装置14解码的经编码视频数据。详细来说,源装置12经由计算机可读媒体16将视频数据提供到目的地装置14。源装置12及目的地装置14可包括广泛范围的装置中的任一个,包含台式计算机、笔记型(即,膝上型)计算机、平板计算机、机顶盒、电话手持机(例如所谓的“智能型”电话)、所谓“智能型”平板计算机、电视机、摄像机、显示装置、数字媒体播放器、视频游戏控制台、视频流装置或类似物。在一些状况下,源装置12及目的地装置14可能经装备以用于无线通信。
目的地装置14可经由计算机可读媒体16接收待解码的经编码视频数据。计算机可读媒体16可包括能够将经编码视频数据从源装置12移动到目的地装置14的任一类型的媒体或装置。在一个实例中,计算机可读媒体16可包括通信媒体以使源装置12能够实时地将经编码视频数据直接发射到目的地装置14。可根据通信标准(例如,无线通信协议)调制经编码视频数据,且将所述数据发射到目的地装置14。通信媒体可包括任何无线或有线通信媒体,例如,射频(RF)频谱或一或多个物理发射线。通信媒体可形成基于包的网络(例如局域网、广域网,或例如因特网的全球网络)的一部分。通信媒体可包含路由器、交换器、基站或可适用于有助于从源装置12到目的地装置14的通信的任何其它设备。
在一些实例中,经编码数据可从输出接口22输出到存储装置。类似地,可由输入接口从存储装置存取经编码数据。存储装置可包含多种分散式或本地存取的数据存储媒体中的任一个,例如,硬盘机、Blu-ray盘片、DVD、CD-ROM、快闪存储器、易失性或非易失性存储器或用于存储经编码视频数据的任何其它合适数字存储媒体。在再一实例中,存储装置可对应于文件服务器或可存储由源装置12产生的经编码视频的另一中间存储装置。目的地装置14可经由流或下载自存储装置存取所存储视频数据。文件服务器可为能够存储经编码视频数据且将那个经编码视频数据发射到目的地装置14的任何类型的服务器。实例文件服务器包含网页服务器(例如,用于网站)、FTP服务器、网络附加存储(NAS)装置或本地磁盘机。目的地装置14可经由任何标准数据连接(包含因特网连接)而存取经编码视频数据。此数据连接可包含适合于存取存储于文件服务器上的经编码视频数据的无线信道(例如,Wi-Fi连接)、有线连接(例如,DSL、缆线调制解调器,等等),或两个的结合。从存储装置的经编码视频数据的发射可为流发射、下载发射或其组合。
本发明的技术不必限于无线应用或设定。所述技术可应用于支持多种多媒体应用中的任一个的视频译码,例如,空中电视广播、有线电视发射、卫星电视发射、因特网流视频发射(例如,经由HTTP的动态自适应流(DASH))、经编码到数据存储媒体上的数字视频、存储在数据存储媒体上的数字视频的解码或其它应用。在一些实例中,系统10可经配置以支持单向或双向视频发射以支持例如视频流、视频播放、视频广播及/或视频电话的应用的应用。
在图1的实例中,源装置12包含视频源18、视频编码器20及输出接口22。目的地装置14包含输入接口28、视频解码器30及显示装置32。根据本发明,源装置12的视频编码器20可经配置以应用用于根据增强型CABAC设计对数据进行译码的技术。在其它实例中,源装置及目的地装置可包含其它组件或配置。举例来说,源装置12可从外部视频源18(例如外部摄像机)接收视频数据。同样地,目的地装置14可与外部显示装置介接,而非包含集成式显示装置。
图1的所说明系统10仅为一个实例。可由任何数字视频编码及/或解码装置执行用于根据增强型CABAC设计对数据进行译码的技术。尽管本发明的技术一般由视频编码装置执行,但所述技术也可由通常被称作“编码解码器”的视频编码器/解码器执行。此外,本发明的技术也可由视频预处理器执行。源装置12及目的地装置14仅为源装置12产生经译码视频数据用于发射到目的地装置14的这些译码装置的实例。在一些实例中,装置12、14可以大体上对称的方式操作,使得装置12、14中的每一个包含视频编码及解码组件。因此,系统10可支持视频装置12、14之间的单向或双向视频发射用于(例如)视频流、视频播放、视频广播或视频电话。
源装置12的视频源18可包含视频俘获装置,例如视频摄像机、含有先前俘获的视频的视频存档及/或用以从视频内容提供者接收视频的视频馈送接口。作为另一替代例,视频源18可产生基于计算机图形的数据作为源视频或实况视频、存档视频及计算机产生的视频的组合。在一些状况下,如果视频源18为视频摄像机,那么源装置12及目的地装置14可形成所谓的摄像机电话或视频电话。然而,如上文所提及,本发明中所描述的技术一般可适用于视频译码,且可应用于无线及/或有线应用。在每一状况下,所俘获、预先俘获或计算机产生的视频可由视频编码器20编码。经编码视频信息可接着由输出接口22输出到计算机可读媒体16上。
计算机可读媒体16可包含瞬时媒体,例如,无线广播或有线网络发射,或存储媒体(即,非暂时性存储媒体),例如,硬盘、随身盘、紧密光盘、数字影音光盘、Blu-ray光盘或其它计算机可读媒体。在一些实例中,网络服务器(未图示)可从源装置12接收经编码视频数据,且(例如)经由网络发射将经编码视频数据提供到目的地装置14。类似地,媒体产生设施(例如光盘冲压设施)的计算装置可从源装置12接收经编码视频数据且生产含有经编码视频数据的光盘。因此,在各种实例中,计算机可读媒体16可理解为包含各种形式的一或多个计算机可读媒体。
目的地装置14的输入接口28从计算机可读媒体16接收信息。计算机可读媒体16的信息可包含由视频编码器20定义的语法信息,所述语法信息还供视频解码器30使用,包含描述块及其它经译码单元(例如,GOP)的特性及/或处理的语法元素。显示装置32将经解码视频数据显示给用户,且可包括多种显示装置中的任一个,例如,阴极射线管(CRT)、液晶显示器(LCD)、等离子显示器、有机发光二极管(OLED)显示器或另一类型的显示装置。
视频编码器20及视频解码器30可根据例如还被称作ITU-T H.265的高效率视频译码(HEVC)标准的视频译码标准操作。替代地,视频编码器20及视频解码器30可根据其它专有或行业标准(例如,ITU-T H.264标准,替代地被称作MPEG-4,第10部分,高级视频译码(AVC))或此类标准的扩展标准而操作。然而,本发明的技术不限于任何特定译码标准。视频译码标准的其它实例包含MPEG-2及ITU-T H.263。尽管在图1中未展示,但一些方面中,视频编码器20及视频解码器30可各自与音频编码器及解码器集成,且可包含适当MUX-DEMUX单元或其它硬件及软件以处置共同数据流或单独数据流中的音频及视频两个的编码。如果适用,那么MUX-DEMUX单元可遵照ITU H.223多路复用器协议或例如用户数据报协议(UDP)的其它协议。
视频编码器20及视频解码器30各自可实施为多种合适的编码器电路中的任一个,例如,一或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、离散逻辑、软件、硬件、固件或其任何组合。当所述技术部分以软件实施时,装置可将用于软件的指令存储于合适的非暂时性计算机可读媒体中,且在硬件中使用一或多个处理器执行指令以执行本发明的技术。视频编码器20及视频解码器30中的每一个可包含于一或多个编码器或解码器中,编码器或解码器中的任一个可集成为相应装置中的组合式编码器/解码器(编码解码器)的部分。
一般来说,根据ITU-T H.265,视频帧或图片可被划分成包含亮度样本及色度样本两个的树形块或最大译码单元(LCU)的序列。位流内的语法数据可定义LCU的大小,LCU就像素的数目来说为最大译码单元。切片包含按译码次序的许多连续树型块。视频帧或图片可分割成一或多个切片。每一树型块可根据四分树而分裂成若干译码单元(CU)。一般来说,四分树数据结构每CU包含一个节点,其中根节点对应于树型块。如果CU分裂成四个子CU,那么对应于所述CU的节点包含四个叶节点,所述四个叶节点中的每一者对应于所述子CU中的一者。
所述四分树数据结构中的每一节点可提供针对对应CU的语法数据。举例来说,所述四分树中的节点可包含分裂旗标,从而指示对应于所述节点的CU是否分裂成子CU。针对CU的语法元素可经递回地定义,且可取决于所述CU是否分裂成子CU。如果CU未经进一步分裂,那么其被称作叶CU。在本发明中,即使不存在原始叶CU的明显分裂,叶CU的四个子CU也将被称作叶CU。举例来说,如果16×16大小的CU未进一步分裂,那么四个8×8子CU也将被称作叶CU,尽管所述16×16CU从未分裂。
除CU不具有大小区别外,CU具有与H.264标准的宏块类似的用途。举例来说,可将树型块分裂成四个子节点(也称作子CU),且每一子节点又可为父代节点且可被分裂成另外四个子节点。被称作四分树的叶节点的最终的未分裂子节点包括也被称作叶CU的译码节点。与经译码位流相关联的语法数据可界定可分裂树型块的最大次数(其被称作最大CU深度),且也可界定所述译码节点的最小大小。因此,位流也可界定最小译码单元(SCU)。本发明使用术语“块”以指HEVC的上下文中的CU、预测单元(PU)或变换单元(TU)中的任一个,或指在其它标准的上下文中的类似数据结构(例如,H.264/AVC中的宏块及其子块)。
CU包含译码节点以及与所述译码节点相关联的预测单元(PU)及变换单元(TU)。CU的大小对应于译码节点的大小,且形状通常为正方形。CU的大小范围可为8×8像素达至最大大小为例如64×64像素或大于64×64像素的树型块的大小。每一CU可含有一或多个PU及一或多个TU。与CU相关联的语法数据可描述(例如)CU到一或多个PU的分割。分割模式可在CU经跳过或经直接模式编码、经帧内预测模式编码抑或经帧间预测模式编码之间不同。PU可经分割成非正方形形状。与CU相关联的语法数据也可描述(例如)CU根据四分树到一或多个TU的分割。TU形状可为正方形或非正方形(例如,矩形)。
HEVC标准允许根据TU进行变换,所述变换对于不同CU可不同。通常基于针对经分割LCU所定义的给定CU内的PU的大小来对TU设定大小,但可并非总是此状况。TU的大小通常与PU相同或比PU小。在一些实例中,可使用被称为“残余四分树”(RQT)的四分树结构而将对应于CU的残余样本再分为较小单元。可将RQT的叶节点称作变换单元(TU)。与TU相关联的像素差值可经变换以产生可加以量化的变换系数。
叶CU可包含一或多个预测单元(PU)。大体来说,PU表示对应于所述对应的CU的全部或一部分的空间区域,且PU可包含用于对于PU检索及/或产生参考样本的数据。此外,PU包含与预测有关的数据。举例来说,当PU经帧内模式编码时,PU的数据可包含于残余四分树(RQT)中,所述RQT可包含描述用于对应于所述PU的TU的帧内预测模式的数据。RQT也可被称作变换树。在一些实例中,可在叶CU语法而非RQT中传信帧内预测模式。作为另一实例,当PU经帧间模式编码时,PU可包含界定PU的运动信息(例如一或多个运动向量)的数据。界定PU的运动向量的数据可描述(例如)运动向量的水平分量、运动向量的垂直分量、运动向量的分辨率(例如,四分之一像素精度或八分之一像素精度)、运动向量指向的参考图片,及/或运动向量的参考图片列表(例如,列表0、列表1或列表C)。
具有一或多个PU的叶CU也可包含一或多个变换单元(TU)。如上文所论述,可使用RQT(也称作TU四分树结构)来指定所述变换单元。举例来说,分裂旗标可指示叶CU是否分裂成四个变换单元。接着,可将每一变换单元进一步分裂为进一步的子TU。当TU未进一步分裂时,可将其称作叶TU。大体来说,对于帧内译码,属于叶CU的所有叶TU共享相同的帧内预测模式。即,通常应用相同帧内预测模式来计算叶CU的所有TU的预测值。对于帧内译码,视频编码器可使用帧内预测模式将每一叶TU的残余值计算为CU的对应于所述TU的部分与原始块之间的差。TU不必限于PU的大小。因此,TU可大于或小于PU。对于帧内译码,PU可与用于同一CU的对应叶TU共置。在一些实例中,叶TU的最大大小可对应于对应叶CU的大小。
此外,叶CU的TU也可与相应四分树数据结构(称作残余四分树(RQT))相关联。即,叶CU可包含指示所述叶CU如何被分割成TU的四分树。TU四分树的根节点大体对应于叶CU,而CU四分树的根节点大体对应于树型块(或LCU)。将RQT的未被分裂的TU称作叶TU。一般来说,除非另有指示,否则本发明分别使用术语CU及TU来指叶CU及叶TU。
视频序列通常包含视频帧或图片系列。图片群组(GOP)大体上包括一系列一或多个视频图片。GOP可包含描述包含于GOP中的图片的数目的语法数据于GOP的标头、图片中的一或多个的标头中或别处。图片的每一切片可包含描述所述相应切片的编码模式的切片语法数据。视频编码器20通常对个别视频切片内的视频块进行操作,以便编码视频数据。视频块可对应于CU内的译码节点。视频块可具有固定或变化的大小,且可根据指定译码标准而大小不同。
作为实例,可针对各种大小的PU执行预测。假定特定CU的大小为2N×2N,那么可在2N×2N或N×N的PU大小上执行帧内预测,且在2N×2N、2N×N、N×2N或N×N的对称PU大小上执行帧间预测。也可针对2N×nU、2N×nD、nL×2N及nR×2N的PU大小执行帧间预测的不对称分割。在不对称分割中,CU的一个方向未经分割,而另一方向分割成25%及75%。CU的对应于25%分割的部分由“n”继之以“上(Up)”、“下(Down)”、“左(Left)”或“右(Right)”的指示来指示。因此,举例来说,“2N×nU”指水平方向上以顶部的2N×0.5N PU及底部的2N×1.5NPU分割的2N×2N CU。
在本发明中,“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。
在使用CU的PU进行帧内预测性或帧间预测性译码之后,视频编码器20可计算CU的TU的残余数据。PU可包括描述在空间域(也被称作像素域)中产生预测性像素数据的方法或模式的语法数据,且TU可包括在对残余视频数据应用变换(例如离散余弦变换(DCT)、整数变换、小波变换或概念上类似的变换)之后变换域中的系数。所述残余数据可对应于未经编码的图片的像素与对应于PU的预测值之间的像素差。视频编码器20可形成TU以包含表示CU的残余数据的经量化变换系数。即,视频编码器20可计算残余数据(以残余块的形式)、变换残余块以产生变换系数的块,且接着量化变换系数以形成经量化变换系数。视频编码器20可形成包含经量化变换系数的TU,以及其它语法信息(例如,TU的分裂信息)。
如上文所提,在任何变换以产生变换系数后,视频编码器20可执行变换系数的量化。量化通常指变换系数经量化以可能减少用以表示变换系数的数据的量从而提供进一步压缩的过程。量化过程可减少与一些或所有系数相关联的位深度。举例来说,可在量化期间将n位值降值舍位到m位值,其中n大于m。
在量化之后,视频编码器可扫描所述变换系数,从而从包含所述量化变换系数的二维矩阵产生一维向量。所述扫描可经设计以将较高能量(且因此较低频率)系数置于阵列前部,且将较低能量(且因此较高频率)系数置于阵列后部。在一些实例中,视频编码器20可利用预定义扫描次序来扫描经量化的变换系数以产生可经熵编码的串行化向量。在其它实例中,视频编码器20可执行自适应扫描。在扫描经量化变换系数以形成一维向量之后,视频编码器20可(例如)根据描述于本发明中的增强型上下文自适应二进制算术译码(CABAC)设计来熵编码一维向量。视频编码器20也可熵编码与经编码视频数据相关联的语法元素以供视频解码器30用于解码视频数据中。
大体来说,视频解码器30执行尽管与由视频编码器20执行的过程互逆但与其大体上类似的过程,以解码经编码数据。举例来说,视频解码器30反量化且反变换所接收TU的系数以再生残余块。视频解码器30使用传信预测模式(帧内预测或帧间预测)以形成预测块。接着,视频解码器30(在逐像素基础上)使预测块与残余块组合以再生原始块。可执行额外处理,例如执行解块过程以减少沿块边界的视觉伪影。另外,视频解码器30可以尽管与视频编码器20的CABAC编码过程互逆但与其大体上类似的方式使用CABAC来解码语法元素。
根据本发明的技术,视频编码器20及视频解码器30可经配置以根据增强型CABAC设计来对数据进行译码。下文论述可单独或以任何组合应用的某些技术。本发明可大体上指视频编码器20将某些信息“传讯”到例如视频解码器30的另一装置。然而,应理解,视频编码器20可通过将某些语法元素与视频数据的各种经编码部分相关联来传讯信息。即,视频编码器20可通过将某些语法元素存储到视频数据的各种经编码部分的标头来“传讯”数据。在一些状况下,这些语法元素可在由视频解码器30接收及解码之前经编码及存储。因此,术语“传讯”可大体上指用于解码经压缩视频数据的语法或其它数据的传达,而不管此传达是实时抑或几乎实时发生抑或历时一时间跨度而发生,例如,可能在编码时在将语法元素存储到媒体时发生传讯,接着可由解码装置在将语法元素存储到此媒体之后的任何时间检索语法元素。
以下段落更详细地描述BAC及CABAC技术。大体来说,BAC为递归区间再分过程。BAC在H.264/AVC及H.265/HEVC视频译码标准中的CABAC过程中用于编码二进位。BAC译码器的输出为表示最终经译码概率区间内的概率的值或指标的二进制流。概率区间由范围及下端值指定。范围为概率区间的扩展。“低点”为译码区间的下界限。
将算术译码应用于视频译码系描述于D.马普(Marpe)、H.施瓦茨(Schwarz)及T.韦根(Wiegand)的“H.264/AVC视讯压缩标准中的基于上下文的自适应性二进制算术写码(Context-Based Adaptive Binary Arithmetic Coding in the H.264/AVC VideoCompression Standard)”(用于视频技术的电路及系统,IEEE会报,2003年7月,第7期,第13卷)中。CABAC涉及三个主要功能,即,二进制化、上下文建模及算术译码。二进制化指将语法元素映射到二进制符号(或“二进位”)的功能。二进制符号也可被称作“二进位串”。上下文建模指估计各种二进位的概率的功能。算术译码指基于所估计概率将二进位压缩到位之后续功能。各种装置及/或其模块(例如,二进制算术译码器)可执行算术译码功能。
在HEVC中使用若干不同二进制化过程,包含一元(U)、截断一元(TU)、k级(kth-order)指数哥伦布(Colomb)(EGk)及固定长度(FL)过程。各种二进制化过程的细节描述于V.施(Sze)及M.布达甘威(Budagavi)的“HEVC中的高吞吐量CABAC熵译码(High throughputCABAC entropy coding in HEVC)”(关于用于视频技术的电路及系统的IEEE会报(TCSVT),2012年12月,第12期,第22卷,第1778到1791页)中。
CABAC中的每一上下文(即,概率模型)由状态及最大可能符号(MPS)值来表示。每一状态(σ)隐含地表示特定符号(例如,二进位)为最不可能符号(LPS)的概率(pσ)。符号可为LPS或最可能符号(MPS)。符号为二进制符号,且因此,MPS及LPS可为0或1。概率针对对应上下文经估计且(隐含地)用以使用算术译码器来对符号熵译码。
BAC的过程由取决于待译码的上下文及正经译码的二进位的值改变其内部值“范围”及“低点”的状态机处理。取决于上下文的状态(即,其概率),将范围划分为rangeMPSσ(stateσ中最大可能符号的范围)及rangeLPSσ(stateσ中最不可能符号的范围)。理论上,概率stateσ的rangeLPSσ值由乘法导出:
rangeLPSσ=range×pσ
其中pσ为选择LPS的概率。当然,MPS的概率为1-pσ。等效地,rangeMPSσ等于范围减去rangeLPSσ。BAC取决于待译码的上下文二进位的状态、当前范围、正经译码的二进位(即,等于LPS或MPS的二进位)的值反复地更新范围。
视频编码器20可(例如)在帧标头、块标头、切片标头或GOP标头中进一步将语法数据(例如,基于块的语法数据、基于帧的语法数据,及基于GOP的语法数据)发送到视频解码器30。GOP语法数据可描述相应GOP中的帧数目,且帧语法数据可指示用以编码对应帧的编码/预测模式。
视频编码器20及视频解码器30在适用时各自可经实施为多种合适的编码器或解码器电路系统中的任一者,例如一或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、离散逻辑电路、软件、硬件、固件或其任何组合。视频编码器20及视频解码器30中的每一个可包含在一或多个编码器或解码器中,编码器或解码器中的任一个可经集成为组合式编码器/解码器(CODEC)的部分。包含视频编码器20及/或视频解码器30的装置可包括集成电路、微处理器及/或无线通信装置(例如蜂窝式电话)。
图2A及2B为说明根据BAC的范围更新技术的概念图。图2A及2B展示此过程在二进位n处的实例。在图2A的实例100中,在二进位n处,在给出某上下文状态(σ)情况下,二进位2处的范围包含由LPS的概率(pσ)给出的RangeMPS及RangeLPS。实例100展示当二进位n的值等于MPS时在二进位n+1处的范围的更新。在此实例中,低点保持相同,但二进位n+1处的范围的值减少到二进位n处的RangeMPS的值。图2B的实例102展示当二进位n的值不等于MPS(即,等于LPS)时二进位n+1处的范围的更新。在此实例中,低点移动到二进位n处的RangeLPS的较低范围值。另外,二进位n+1处的范围的值减少到二进位n处的RangeLPS的值。
在HEVC中,通过9个位表达范围且通过10个位表达低点。存在以足够精度维持范围及低点值的再正规化过程。每当范围小于256时,再正规化发生。因此,范围在再正规化之后始终等于或大于256。取决于范围及低点的值,BAC将“0”或“1”输出到位流,或更新内部变量(被称作BO:突出位)以保留用于未来输出。
图3为展示取决于范围的BAC输出的实例的概念图。举例来说,当范围及低点高于某阈值(例如,512)时,将“1”输出到位流。当范围及低点低于某阈值(例如,512)时,将“0”输出到位流。当范围及低点在某些阈值之间时,不输出任何值到位流。替代地,递增BO值且编码下一二进位。
在HEVC的CABAC上下文模型中,存在128种状态。存在可从0到63的64种可能的LPS概率(由状态σ表示)。每一MPS可为零或一。因此,128种状态为64个状态概率乘以MPS的2个可能值(0或1)。因此,可将概率模型存储为7位条目。在每一7位条目中,可分配6个位以用于表示概率状态,且可分配1个位以用于适用上下文存储器中的最大可能符号(MPS)。
为减少导出LPS范围(rangeLPSσ)的计算,针对所有状况的结果经预先计算且存储为HEVC中的查找表中的近似值。因此,可在无任何乘法的情况下通过使用简单表查找来获得LPS范围。对于一些装置或应用来说避免乘法可为至关重要的,此是由于此运算可引起许多硬件架构中的显著潜时。
可使用4列预先计算的LPS范围表而非乘法运算。将范围划分为四个片段。可由问题(range>>6)&3导出片段索引。实际上,片段索引是通过从实际范围移位及丢弃位来导出。以下表1展示可能范围及其对应索引。
表1-范围索引
范围 256到319 320到383 384到447 448到511
(范围>>6)与3 0 1 2 3
LPS范围表接着具有64个条目(一个条目用于每一概率状态)乘以4(一个用于每一范围索引)。每一条目为范围LPS,即,将范围乘以LPS概率的值。以下表2中展示此表的部分的实例。表2描绘概率状态9到12。在HEVC的一个提议中,概率状态范围可为0到63。
表2-范围LPS
Figure GDA0002261589730000161
在每一片段(即,范围值)中,每一概率状态σ的LPS范围为预定义的。换句话说,概率状态σ的LPS范围经量化为四个值(即,一个值用于每一范围索引)。在给定点处使用的特定LPS范围取决于范围属于哪一片段。表中所使用的可能的LPS范围的数目为表列数(即,可能的LPS范围值的数目)与LPS范围精度之间的折衷。大体来说,更多列产生LPS范围值的更少量化错误,且也增加对用以存储表的更多存储器的需求。更少列增加量化错误,且也减少存储表所需要的存储器。
如上文所述,每一LPS概率状态具有对应概率。在HEVC中,64个代表性概率值pσ∈[0.01875,0.5]根据以下方程式(1)针对LPS(最不可能符号)导出,方程式(1)为递归方程式。
Figure GDA0002261589730000171
在以上实例中,所选定的缩放因数α≈0.9492及概率集合的基数N=64两个表示概率表示的准确度与对快速自适应的需要之间的良好折衷。在一些实例中,更逼近1的α值可产生具有较高准确度(“稳态状态行为”)的缓慢自适应,而针对降低α值情况下的非固定状况以经减少的准确度为代价实现更快速自适应。缩放因数α可对应于指示先前经编码二进位的数目的窗口大小,所述先前经编码二进位对当前更新具有显著影响。MPS(最大可能符号)的概率等于1减去LPS(最不可能符号)的概率。换句话说,可由公式(1-LPS)表示MPS的概率,其中“LPS”表示LPS的概率。因此,可由HEVC中的CABAC表示的概率范围为[0.01875,0.98125(=1-0.01875)]。
由于用于对语法元素的值的位(或“二进位”)译码的上下文模型的概率状态经更新以便遵循信号统计(即,先前已译码二进位的值,例如,对于语法元素来说),所以CABAC为自适应的。更新过程如下。对于给定概率状态,更新取决于状态索引及经识别为LPS或MPS的经编码符号的值。作为更新过程的结果,新的概率状态经导出,其包含潜在经修改LPS概率估计及(必要时)经修改的MPS值。
上下文切换可出现在译码每一二进位之后。倘若二进位值等于MPS,那么给定状态索引仅递增1。此情形是针对除当MPS出现在状态索引62处时之外的所有状态,其中LPS概率已处于其最小值(或等效地,达至最大MPS概率)。在此状况下,状态索引保持固定,直到LPS可见或最末二进位值经编码(将特殊结束状态用于最末二进位值的特殊状况)。当LPS出现时,通过以某量递减状态索引来改变状态索引,如以下方程式中所展示。大体来说,此规则应用于具有以下例外的LPS的每一出现。假定已在具有索引σ=0的状态处编码LPS,所述索引对应于等概率状况,那么状态索引保持固定,但将切换MPS值使得LPS及MPS的值将被互换。在所有其它状况下,不管哪一符号已经编码,MPS值将不被变更。一般来说,视频译码器可根据以下方程式(2)导出新概率状态,所述方程式(2)展示给定LPS概率pold与其经更新对应概率pnew之间的关系。
Figure GDA0002261589730000172
为减少复杂度,视频译码器可实施CABAC,使得可通过各自具有多个条目的至多两个表实现所有转变规则。作为一个实例,可通过各自具有7位无正负号整数值的128个条目的至多两个表(例如,以下表3及表4)实现所有转变规则。作为另一实例,可通过各自具有6位无正负号整数值的63条目的至多两个表(例如,HEVC中的表9-41)实现所有转变规则。给定状态索引i,在更新之后,视频译码器可在MPS值经译码时定义为新的状态索引TransIdxMPS[i],或在LPS值经译码时定义为TransIdxLPS[i]。
表3TransIdxMPS[128]=
{
2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,
18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,
34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,
50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,
66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,
82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,
98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,
114,115,116,117,118,119,120,121,122,123,124,125,124,125,126,127
};
表4TransIdxLPS[128]=
{
1,0,0,1,2,3,4,5,4,5,8,9,8,9,10,11,
12,13,14,15,16,17,18,19,18,19,22,23,22,23,24,25,
26,27,26,27,30,31,30,31,32,33,32,33,36,37,36,37,
38,39,38,39,42,43,42,43,44,45,44,45,46,47,48,49,
48,49,50,51,52,53,52,53,54,55,54,55,56,57,58,59,
58,59,60,61,60,61,60,61,62,63,64,65,64,65,66,67,
66,67,66,67,68,69,68,69,70,71,70,71,70,71,72,73,
72,73,72,73,74,75,74,75,74,75,76,77,76,77,126,127
};
在一些实例中,视频译码器可通过单一表TransIdxLPS确定状态转变,所述表在已观测到LPS的状况下针对给定状态索引σ确定新的经更新状态索引TransIdxLPS[σ]。可通过使状态索引仅(饱和)递增固定值1获得MPS驱动转变,从而导致经更新状态索引min(σ+1,62)。
如上文所论述,上下文建模提供准确概率估计,所述估计为用于达成较高译码效率的促进因子。因此,上下文建模为自适应过程。不同上下文模型可用于不同二进位,且上下文模型的概率可基于先前已译码二进位的值来更新。具有类似分布的二进位常常共享同一上下文模型。可基于语法元素类型、语法元素中的二进位位置(binIdx)、亮度/色度信息,相邻信息等选择每一二进位的上下文模型。
在对给定切片译码之前,基于一或多个预定义值初始化概率模型。举例来说,给定由qp指明的输入量化参数及由initVal指明的预定义值,可根据以下方程式(3)导出概率模型(由状态及MPS表示)的7位条目。
Figure GDA0002261589730000191
经导出状态索引隐含地包含MPS信息。更具体来说,当状态索引为偶数(even)值时,MPS值等于0。相反地,当状态索引为奇数(odd)值时,MPS值等于1。“initVal”的值在8位精度情况下在范围[0,255]内。预定义值“initVal”为取决于切片的。换句话说,使用概率模型的三组上下文初始化参数,每一组分别在I切片、P切片及B切片中。以此方式,经配置以执行CABAC的视频编码装置经启用以在三个初始化表之间选择这些切片类型,使得可达成对不同译码情境及/或不同类型的视频内容的更佳拟合。
根据HEVC,另一工具可经应用以允许通过B(或P)切片初始化一个P(或B)切片。举例来说,工具可经应用以允许一个P切片通过针对B切片所存储的上下文初始化参数集合来初始化。相反,工具可经应用以允许一个B切片通过针对P切片存储的上下文初始化参数集合来初始化。相关语法元素描述于以下表5(其对应于HEVC的章节7.3.6.1)中,且相关语义及解码过程在表5之后的下文中描述。
表5
Figure GDA0002261589730000192
Figure GDA0002261589730000201
Figure GDA0002261589730000211
表5的语法元素的语义可定义如下:cabac_init_present_flag等于1指定cabac_init_flag存在于提及PPS的切片标头中。cabac_init_present_flag等于0指定cabac_init_flag不存在于提及PPS的切片标头中。
如下文描述的解码过程中所定义,cabac_init_flag指定用于确定上下文变量的初始化过程中所使用的初始化表的方法。当cabac_init_flag不存在时,推断其为等于0。
描述符:
ae(v):经上下文自适应算术熵译码的语法元素。
b(8):具有位串(8个位)的任何型样的位组。
f(n):使用n个位撰写(从左到右)的固定型样位串,其中首先为左方位。
se(v):带正负号整数0阶指数哥伦布译码语法元素,其中首先为左方位。
u(n):使用n个位的无正负号整数。当n为语法表中的“v”时,位数目以取决于其它语法元素的值的方式发生变化。
ue(v):无正负号整数0阶指数哥伦布译码语法元素,其中首先为左方位。
HEVC的表9-4列出针对三种初始化类型中的每一个需要初始化的上下文索引(ctxIdx)。每一ctxIdx由对应于initType变量的变量指定于HEVC表9-4中。HEVC表9-4还列出表号,所述表号包含初始化所需的initValue的值中的每一个。对于P及B切片类型,initType的导出取决于cabac_init_flag语法元素的值。视频译码器可使用由以下伪码描述的操作来导出变量initType:
Figure GDA0002261589730000212
例如HEVC相容视频解码器的视频译码装置可于各种阶段更新上下文模型的概率状态。对于给定概率状态,更新取决于状态索引及经识别为LPS或MPS的经编码符号的值。通过实施更新过程,视频译码装置导出对应上下文模型的新概率状态。新概率状态可由经潜在地修改的LPS概率估计以及经修改MPS值(如果适用)组成。LPS概率的转变规则的导出是基于给定LPS概率pold与LPS概率的经更新对应概率pnew之间的以下关系:
Figure GDA0002261589730000221
为了减小复杂度,视频译码装置可以一方式实施CABAC,使得所有转变规则可使用至多两个表来实现,其中每一表具有7位无正负号整数值的128个条目。在给定状态索引“i”情况下,视频译码装置可在更新之后在MPS值经译码时将新状态索引定义为TransIdxMPS[i],或在LPS值经译码时定义为TransIdxLPS[i]。TransIdxMPS表及TransIdxLPS表说明如下。
TransIdxMPS[128]=
{
2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,
18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,
34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,
50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,
66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,
82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,
98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,
114,115,116,117,118,119,120,121,122,123,124,125,124,125,126,127
};
TransIdxLPS[128]=
{
1,0,0,1,2,3,4,5,4,5,8,9,8,9,10,11,
12,13,14,15,16,17,18,19,18,19,22,23,22,23,24,25,
26,27,26,27,30,31,30,31,32,33,32,33,36,37,36,37,
38,39,38,39,42,43,42,43,44,45,44,45,46,47,48,49,
48,49,50,51,52,53,52,53,54,55,54,55,56,57,58,59,
58,59,60,61,60,61,60,61,62,63,64,65,64,65,66,67,
66,67,66,67,68,69,68,69,70,71,70,71,70,71,72,73,
72,73,72,73,74,75,74,75,74,75,76,77,76,77,126,127
};
算术译码是基于递归区间划分。在习知算术译码中,具有为0到1的初始值的范围基于二进位的概率被划分成两个子区间。经编码位提供偏移,所述偏移在经转换为二进制分率时提供对两个子区间中的一个的选择。所选定子区间指示经解码二进位的值。在每一经解码二进位之后,视频解码器可更新范围以等于所选定子区间。又,视频解码器可重复区间划分过程以实施区间划分为递归过程。范围及偏移具有有限的位精确度,且因此视频解码器可在范围降低到某值(例如,预定值)以下时实施再正规化以防止下溢。视频解码器可在每一二进位经解码之后执行再正规化。
视频译码装置可基于以各种方式获得的概率信息而执行算术译码。根据算术译码的“常规译码模式”,视频译码装置可使用所估计概率。在根据常规译码模式的算术译码状况下,二进位串据称为经上下文译码。根据算术译码的“旁路模式”,视频译码装置可使用0.5的假定相等概率。在根据旁路模式的算术译码状况下,二进位串据称为经旁路译码。对于经旁路译码二进位,视频译码装置可使用移位将范围划分成子区间。对比来说,在经上下文译码二进位状况下,视频译码装置可使用查找表来划分范围。根据HEVC的算术译码与根据H.264/AVC的算术译码相同。根据HEVC及H.264/AVC,视频译码装置可使用基于表的二进制算术译码,且针对算术译码的常规译码模式的流关于附图在以下段落中进一步详细地描述。
视频编码器20及视频解码器30(其任一个或两个在本发明的各种部分处通常被称作“视频译码器”)可通过本发明的用于变换系数数据的上下文建模的技术来配置。假定一个变换系数由其量值及正负号旗标表示,那么量值在二进制化之后由具有从0到M(M为正整数)的二进位索引的二进位串来指明。本发明的各种CABAC增强下文关于视频编码器20、视频解码器30及/或其一或多个组件来描述。应了解,本发明的各种技术可彼此单独或以任何组合及/或通过本文中所描述的任何其它技术来实施。
本发明认识到,如上文所论述的各种现有CABAC技术可遭遇某些问题。举例来说,HEVC中的上下文建模方法具体针对不大于64×64的CTU来设计。当使用较大CTU(例如,128×128、256×256或甚至更大)时,直接重新使用当前上下文建模方法可为较低效的,及/或导致剖析问题。作为另一实例,尽管改变所提议的JCTVC-H0228(其在下文关于图12进一步详细地论述)可潜在地提供更好的译码效能,但多遍次译码由单一遍次译码的替代对于并行化为有害的,且不同上下文建模集合的切换减低吞吐量。作为另一实例,自预定义初始化值导出的初始化概率为切片类型相依的。然而,一个切片类型的固定初始化概率可能并非基于经译码信息的统计为自适应的,其约束CABAC的译码效能。
图4为说明视频编码器20的实例的框图,所述视频编码器可实施用于根据增强型CABAC设计对数据进行译码的技术。视频编码器20可执行视频切片内的视频块的帧内译码及帧间译码。帧内译码依赖于空间预测以减少或移除给定视频帧或图片内的视频中的空间冗余。帧间译码依赖于时间预测以减少或移除视频序列的相邻帧或图片内的视频中的时间冗余。帧内模式(I模式)可指若干基于空间的译码模式中的任一个。例如单向预测(P模式)或双向预测(B模式)的帧间模式可指若干基于时间的译码模式中的任一个。
如图4中所示,视频编码器20接收待编码的视频帧内的当前视频块。在图4的实例中,视频编码器20包含模式选择单元40、参考图片存储器64(其也可被称作经解码图片缓冲器(DPB))、求和器50、变换处理单元52、量化单元54及熵编码单元56。模式选择单元40又包含运动补偿单元44、运动估计单元42、帧内预测单元46及分割单元48。为了视频块重建构,视频编码器20还包含反量化单元58、反变换单元60及求和器62。也可包含解块滤波器(图4中未展示)以对块边界滤波以从重建构的视频移除方块效应伪影。如果需要,那么解块滤波器将通常对求和器62的输出滤波。除了解块滤波器外,也可使用额外滤波器(回路中或回路后)。为简洁起见未展示这些滤波器,但如果需要,这些滤波器可对求和器50的输出滤波(作为回路内滤波器)。
在编码过程期间,视频编码器20接收待译码的视频帧或切片。可将所述帧或切片划分成多个视频块。运动估计单元42及运动补偿单元44执行所接收视频块相对于一或多个参考帧中的一或多个块的帧间预测性编码以提供时间预测。帧内预测单元46可替代地执行所接收视频块相对于与待译码块相同的帧或切片中的一或多个邻近块的帧内预测性编码以提供空间预测。视频编码器20可执行多个译码遍次,(例如)以选择用于视频数据的每一块的适当译码模式。
此外,分割单元48可基于对先前已译码遍次中的先前分割方案的评估而将视频数据的块分割为子块。举例来说,分割单元48可初始地将帧或切片分割成多个LCU,且基于位率-失真分析(例如,位率-失真最佳化)来将所述LCU中的每一个分割成子CU。模式选择单元40可进一步产生指示将LCU分割为子CU的四分树数据结构。四分树的叶节点CU可包含一或多个PU及一或多个TU。
模式选择单元40可(例如)基于错误结果选择预测模式(帧内或帧间)中的一个,且将所得预测块提供到求和器50以产生残余数据且提供到求和器62以重构经编码块以作为参考帧使用。模式选择单元40也将语法元素(例如,运动向量、帧内模式指示符、分割信息及其它此类语法信息)提供到熵编码单元56。
运动估计单元42及运动补偿单元44可高度集成,但为概念目的而分开来说明。由运动估计单元42执行的运动估计为产生运动向量的过程,所述运动向量估计视频块的运动。举例来说,运动向量可指示在当前视频帧或图片内的视频块的PU相对于参考图片(或其它经译码单元)内的预测性块的位移,所述预测性块是相对于所述当前图片(或其它经译码单元)内正经译码的当前块。预测性块为依据像素差被发现紧密地匹配于待译码块的块,所述像素差可通过绝对差和(SAD)、平方差和(SSD)或其它差量度予以确定。在一些实例中,视频编码器20可计算存储于参考图片存储器64中的参考图片的次整数像素位置的值。举例来说,视频编码器20可内插参考图片的四分之一像素位置、八分之一像素位置或其它分率像素位置的值。因此,运动估计单元42可执行关于全像素位置及分率像素位置的运动搜索且输出具有分率像素精确度的运动向量。
运动估计单元42通过比较PU的位置与参考图片的预测性块的位置而计算经帧间译码切片中的视频块的PU的运动向量。参考图片可选自第一参考图片列表(列表0)或第二参考图片列表(列表1),所述列表中的每一个识别存储于参考图片存储器64中的一或多个参考图片。运动估计单元42将所计算运动向量发送到熵编码单元56及运动补偿单元44。
由运动补偿单元44执行的运动补偿可涉及基于由运动估计单元42确定的运动向量提取或产生预测性块。再次,在一些实例中,运动估计单元42与运动补偿单元44可在功能上集成。在接收到当前视频块的PU的运动向量之后,运动补偿单元44便可在参考图片列表中的一个中定位运动向量指向的预测性块。求和器50通过从正经译码的当前视频块的像素值减去预测性块的像素值来形成残余视频块,从而形成像素差值,如下文所论述。一般来说,运动估计单元42相对于亮度分量而执行运动估计,且运动补偿单元44将基于所述亮度分量所计算的运动向量用于色度分量与亮度分量两个。模式选择单元40也可产生与视频块及视频切片相关联的语法元素以供视频解码器30在解码视频切片的视频块中使用。
作为由运动估计单元42及运动补偿单元44执行的帧间预测的替代方案,帧内预测单元46可对当前块进行帧内预测,如上文所描述。详细来说,帧内预测单元46可确定待用以编码当前块的帧内预测模式。在一些实例中,帧内预测单元46可(例如)在单独编码遍次期间使用各种帧内预测模式编码当前块,且帧内预测单元46(或在一些实例中为模式选择单元40)可从受测模式中选择适当帧内预测模式来使用。
举例来说,帧内预测单元46可使用对于各种受测帧内预测模式的速率-失真分析来计算速率-失真值,且在受测模式之中选择具有最佳速率-失真特性的帧内预测模式。速率-失真分析大体上确定经编码块与原始、未编码块(其经编码以产生经编码块)之间的失真(或误差)量,以及用以产生经编码块的位率(即,位的数目)。帧内预测单元46可从各种经编码块的失真及速率来计算比率以确定哪一帧内预测模式展现所述块的最佳速率-失真值。
在为块选择帧内预测模式之后,帧内预测单元46可将指示用于所述块的选定帧内预测模式的信息提供到熵编码单元56。熵编码单元56可编码指示选定帧内预测模式的信息。视频编码器20可在所发射的位流中包含以下各项:配置数据,其可包含多个帧内预测模式索引表及多个经修改的帧内预测模式索引表(也称作码字映射表);编码各种块的上下文的定义;及待用于所述上下文中的每一个的最大可能帧内预测模式、帧内预测模式索引表及经修改的帧内预测模式索引表的指示。
视频编码器20通过从正被译码的原始视频块减去来自模式选择单元40的预测数据而形成残余视频块。求和器50表示执行此减法运算的一或多个组件。变换处理单元52将变换(例如离散余弦变换(DCT)或概念上类似的变换)应用于残余块,从而产生包括变换系数值的视频块。可使用小波变换、整数变换、子频带变换、离散正弦变换(DST)或其它类型的变换而不是DCT。在任何状况下,变换处理单元52将变换应用于残余块,从而产生变换系数块。所述变换可将残余信息从像素值域转换到变换域,例如,频域。变换处理单元52可将所得变换系数发送到量化单元54。量化单元54量化变换系数以进一步减少位速率。量化过程可减少与一些或所有系数相关联的位深度。可通过调整量化参数来修改量化程度。
在量化之后,熵编码单元56对经量化的变换系数熵译码。举例来说,熵编码单元56可执行根据本发明的技术的CABAC及/或增强型CABAC。在基于上下文的熵译码的状况下,上下文可基于邻近块。在由熵编码单元56进行熵译码之后,可将经编码位流发射到另一装置(例如,视频解码器30)或加以存档以供稍后发射或检索。
反量化单元58和反变换单元60分别地应用反量化及反变换以重建构像素域中的残余块。特定言之,求和器62将重建构的残余块添加到由运动补偿单元44或帧内预测单元46产生的运动补偿预测块,以产生用于存储于参考图片存储器64中的重建构的视频块。所述重建构的视频块可由运动估计单元42及运动补偿单元44用作参考块以对后续视频帧中的块进行帧间译码。
视频编码器20的例如熵编码单元56的各种组件可实施本发明的增强型CABAC技术以执行上下文建模。根据本发明的各种方面,熵编码单元56可使用一或多个先前已编码变换系数的第i二进位的值执行针对变换系数的第i二进位的上下文建模。换句话说,当前变换系数的第i二进位的上下文建模取决于熵编码单元56已经编码的一或多个变换系数的对应第i二进位的值。第i二进位的上下文建模可排除使用先前编码变换系数的值的其它二进位,以便允许针对变换系数的值的多个二进位的上下文建模被并行地执行。
通过使用先前编码变换的第i二进位的值执行针对当前变换系数的二进位的上下文建模,熵编码单元56可实施本发明的技术以提供对现有CABAC译码器的一或多个潜在改善。作为此益处的实例,熵编码单元56可通过实施本发明的技术来改善上下文建模操作的并行化。更具体来说,熵编码单元56可并行地执行当前经编码的变换系数的多个二进位的上下文建模。举例来说,如果熵编码单元56确定对应于多个二进位的二进位值可从先前编码变换系数获得,那么熵编码单元56可至少部分并行化当前经编码变换系数的二进位的上下文建模操作。
熵编码单元56可根据多遍次译码方案执行本发明的并行化上下文建模。更具体来说,多遍次译码方案指如下译码技术:熵编码单元56通过所述译码技术将分离线程指派给每一特定二进位(例如,针对第一二进位指派线程1,针对第二二进位指派线程2等)。因此,根据多遍次译码,所有bin0例项可独立于按顺序译码的bin1例项按顺序进行编码,bin0例项及bin1例项均独立于按顺序编码的bin2例项进行译码,等等。在一些实例中,熵编码单元56可关于单一块的变换单元执行多遍次译码。此外,对于根据常规模式编码的二进位,熵编码单元56可执行若干编码遍次。每一遍次可是关于所有变换系数的单一对应二进位。换句话说,在每一遍次中,熵编码单元56并不利用关于其它遍次的信息。举例来说,熵编码单元56在第一遍次中可编码一个变换单元/CG内的所有变换系数的第一二进位(如果需要)。在此实例中,在第二遍次中,熵编码单元56可编码一个变换单元/CG内的所有变换系数的第二二进位(如果需要)等等。
在一个实例使用状况下,熵编码单元56可使用先前已译码相邻变换系数的bin0的值来执行针对当前译码变换系数的bin0的上下文建模,使用先前已译码相邻变换系数的bin1的值执行当前译码变换系数的bin1的上下文建模。为了允许如上文所论述的并行化,熵编码单元56可经配置以便避免在执行特定二进位的上下文建模时使用不同二进位。举例来说,熵编码单元56可在不使用先前已译码变换系数的任一bin0值的情况下确定用于熵编码当前变换系数的bin1的上下文。在一组二进位经并行地熵编码的状况下,当用于确定二进位上下文需要的个别二进位可用时,熵编码单元56可使用先前已译码变换系数的相应可用二进位值,熵编码单元56可并行地执行当前译码变换系数的多个二进位的上下文建模。在上文所描述的使用状况情境下,如果bin0及bin1都从先前已译码相邻变换系数可获得,那么熵编码单元56可使当前译码变换系数的bin0及bin1的上下文建模并行化。以此方式,熵编码单元56可实施本发明的技术以执行如HEVC中所描述多遍次译码的原则内的CABAC,同时通过启用且潜在地采用上下文建模操作的并行化而改善当前变换系数的二进位的上下文选择。
应了解,熵编码单元56可但可能不必并行地执行所有这些二进位的整个上下文建模。更具体来说,熵编码单元56可同时执行多个二进位的上下文建模的一些部分。以此方式,熵编码单元56可实施本发明的技术以利用多核心处理技术及/或多个处理器以改善当前译码变换系数的上下文建模操作。
通过用经启用的并行化来编码不同变换系数的对应二进位,熵编码单元56可提供优于现有多遍次CABAC技术的一或多个优点。举例来说,通过在单一遍次中译码多个变换系数的对应二进位(例如,相应bin0),熵编码单元56可避开于二进位转变处频繁地存储并检索新上下文模型的需要。确切来说,熵编码单元56可越过给定遍次使用单一上下文模型,此是因为遍次以越过多个变换系数的对应二进位(例如,相应bin0)为目标。以此方式,熵编码单元56可实施本发明的并行化上下文选择技术以减轻或潜在地消除起因于频繁上下文切换的时间延迟及资源搅拌。对比来说,现有多遍次译码因为编码第一变换系数的bin0、bin1、bin2等且接着编码第二变换系数的bin0、bin1、bin2等,云云将要求频繁上下文模型存储及检索操作。
举例来说,熵编码单元56可产生或以其它方式存取一或多个预定义模板以用于本文中所描述的第i二进位上下文建模功能性。熵编码单元56可用于当前译码变换系数的第i二进位的上下文建模的预定义模板的一个非限制性实例说明于图10中。例如图10的本地模板140的预定义模板定义8×8变换块的对角线扫描次序,其中“L”指明最后有效扫描位置,“x”指明当前扫描位置,且“xi”指明由本地模板140覆盖的相邻扫描位置。关于xi,“i”的值范围为零到4,且范围约束表达为i∈[0,4]。根据本发明的一或多个方面,熵编码单元56可使用位于本地模板140中的变换系数的第i二进位从而用于当前经编码的变换系数的对应第i二进位的上下文建模。根据一些实施方案,熵编码单元56可使用多个模板以执行本发明的并行化二进位上下文建模。在一个实例中,模板大小及/或形状取决于以下准则中的一或多个:(i)变换单元的大小;或(ii)模式;或(iii)当前变换系数在当前变换单元或系数群组(CG)内的位置;或(iv)色彩分量信息,例如亮度及/或色度分量信息。
通过使用一或多个预定义模板来遍历二进位值的先前已译码TU,熵编码单元56可实施本发明的技术以提供优于现有CABAC技术的一或多个增强。举例来说,通过使用例如图10的本地模板140的TU遍历模板,熵编码单元56可避开对关于不同译码遍次分离地确定遍历方案的需要。因此,通过实施本发明的基于模板的并行化上下文选择技术,熵编码单元56可关于二进位译码增加吞吐量,同时维持译码精确度。
根据另一实例实施方案,熵编码单元56可仅将本发明的并行化上下文建模技术应用于当前译码变换系数之前“K”个二进位,其中“K”小于M,且其中“M”指明可用二进位索引的上限,且其中M从0开始。熵编码单元56可使用另一上下文建模技术或根据旁路模式来编码经译码的剩余(M+1-K)个二进位。
根据另一实例实施方案,熵编码单元56可定义先前已译码变换系数的全域为当前变换单元或CG内在编码次序上在当前正编码的变换系数之前的“N”个连续变换系数。替代地,熵编码单元56可确定N为变量。在一个实例中,熵编码单元56可确定,N的值取决于当前编码变换系数在当前变换单元中的相对位置。在另一实例中,熵编码单元56可确定N值取决于变换单元大小。
在另一实施方案中,熵编码单元56可定义先前经编码变换系数的全域为定位于当前变换单元或CG内的当前位置的邻域处的那些变换系数。在一个实例中,当前位置的邻域受约束于直接邻近于当前位置的那些位置,或直接邻近于当前位置或与当前位置分离的位置。在另一实例中,邻域也可包含这些位置,但扩展以包含一或多个空间相邻变换单元中的位置。
根据本发明的各种方面,熵编码单元56可依据与一或多个先前已译码变换系数相关联的值而定义二进位的上下文索引。举例来说,熵编码单元56可使用产生先前已译码变换系数的所有第i二进位值的总和的函数。更具体来说,在此实例中,熵编码单元56可执行TU/CG的所有先前编码变换系数的可用第i二进位值的值的总和。又,熵编码单元56可使用所得总和作为在当前译码变换系数的第i二进位的上下文建模期间的上下文索引(CtIdx)。在另一实例中,熵编码单元56可定义截断值。在此实例中,当函数的输出超出预定义截断值时,熵编码单元56关于当前经译码的二进位可使用相同上下文。在一些实例中,熵编码单元56可确定,截断值是基于(或取决于)二进位索引/变换单元大小/译码模式/一个变换单元内的变换系数字置。
在一些实例中,熵编码单元56可编码在不同遍次中译码的对应二进位,使得这些二进位共享相同上下文模型。在一个实例中,熵编码单元56可确定,针对不同遍次中的二进位的上下文索引导出方法(例如,计算上下文索引的函数)为不同的。根据一个实例,熵编码单元56可确定,针对不同遍次中的二进位的上下文索引导出方法(例如,计算上下文索引的函数)可相同。
根据本发明的一些方面,熵编码单元56在不同大小的变换单元中对于相同遍次使上下文索引导出规则保持不改变。然而,熵编码单元56可将偏移应用到上下文索引以执行针对当前译码二进位的上下文建模。举例来说,熵编码单元56可确定,两个不同变换大小具有两个上下文模型集合。又,熵编码单元56可定义偏移作为一个此集合中的上下文模型的数目。举例来说,如果熵编码单元56确定TU大小小于具有预定义尺寸M×M的正方形,那么熵编码单元56可确定每一此TU(小于M×M)的TU大小具有其自己的相应上下文模型集合。相反,熵编码单元56可确定具有等于或大于M×M的大小的所有TU共享相同上下文模型集合。
在各种使用状况情境下,熵编码单元56可设定M的值为16。更具体来说,在这些实例中,如果熵编码单元56确定当前译码TU的大小小于16×16正方形,那么熵编码单元56可确定当前译码TU与对应于TU的特定大小的上下文模型集合相关联。相反,如果熵编码单元确定当前译码TU具有等于或大于16×16的大小,那么熵编码单元56已确定当前译码TU与具有等于或大于16×16的大小的所有其它TU共享相同上下文模型集合。在一些实例中,熵编码单元56可将仅基于TU大小的上下文选择应用到亮度块。
根据一些实例,用于对剩余二进位译码的莱斯(Rice)参数取决于变换大小。替代地或另外,莱斯参数可取决于译码模式。在一个实例中,替代将哥伦布-莱斯码用于coeff_abs_level_remaining,熵编码单元56可使用其它二进制化技术。替代地或另外,一个以上二进制方法可应用于对coeff_abs_level_remaining语法元素译码。在一个实例中,用于对coeff_abs_level_remaining译码的二进制方法(例如,莱斯参数)取决于译码模式。替代地,用于对coeff_abs_level_remaining译码的二进制化方法(例如,莱斯参数)可取决于一个TU内的相对位置。替代地,用于对coeff_abs_level_remaining译码的二进制化方法(例如,莱斯参数)可取决于在扫描次序上距第一经译码/解码变换系数的距离。在一些情况下,用于对coeff_abs_level_remaining译码的二进制化方法(例如,莱斯参数)取决于相对于变换单元的译码群组位置。
根据本发明的一些方面,熵编码单元56可基于变换大小而确定系数群组(CG)大小。换句话说,根据这些方面,CG大小取决于变换大小。替代地或另外,熵编码单元56可基于译码模式来确定CG大小。在这些实例中,熵编码单元56可确定CG大小为取决于变换大小及/或译码模式中的一个或两个。替代地或另外,熵编码单元56可基于变换矩阵而确定CG大小。
根据本发明的一些方面,熵编码单元56也可应用经并行化上下文建模技术,所述经并行化上下文建模技术也可应用到使用变换旁路模式(也被称作“变换跳过模式”)编码的块。变换旁路模式指译码模式,根据所述译码模式,视频编码器20可跳过编码的变换及量化操作以提供无失真译码输出。因此,根据本发明的某些方面,熵编码单元56可扩展并行化上下文选择技术以提供无失真译码的例项中的潜在所得优点。
本发明的各种变换系数上下文建模技术的实例细节下文进一步详细地论述。下文描述根据多遍次译码的上下文建模的一个实例。根据此实例,熵编码单元56可如HEVC中布局一般应用译码元件及译码次序(多遍次译码及基于CG的译码)。另外,熵编码单元56可应用二进制化技术同时保持变换系数的量值不改变。然而,熵编码单元56可修改用于译码变换系数的量值的上下文索引及莱斯参数计算方法。
bin0(有效旗标)的上下文索引计算可取决于以下信息:模板中非零系数(即,系数的量值大于0)的数目;当前系数在当前TU内的位置;亮度分量的TU大小;及色彩分量。关于色彩分量相依性,亮度及色度经分离地考虑。另外,在考虑针对亮度分量的TU大小中,上下文索引计算对于亮度来说独立于TU大小。亮度分量的TU大小可包含三个集合,即4×4TU、8×8TU、16×16及更大TU。
对于bin1及bin2(大于1的Grt、大于2的Grt),上下文索引计算取决于以下信息:模板中大于1(对于bin1)且大于2(对于bin2)的absLevel的数目;当前系数在当前TU内的位置;以及色彩分量。莱斯参数导出过程取决于旁路译码信息,且取决于sum_absolute_levelMinus1语法元素的值。
在一个实例中,熵编码单元56可定义函数sum_template(k)以传回模板中的系数的数目,使得系数的量值大于k。sum_template(k)的实例系如下:
sum_template(k)=∑δj(xi,k)
其中
Figure GDA0002261589730000311
另外,在此实例中,熵编码单元56可定义函数f(x,y,n,t)以处置位置信息且定义另一函数δk(u,v)以处置分量信息如下:
Figure GDA0002261589730000312
Figure GDA0002261589730000313
图10描绘熵解码单元70及/或熵编码单元56可关于如本文中所描述的上下文建模技术使用的模板(本地模板140)的一个实例。当前变换系数标记为“X”且五个空间相邻变换系数标记为“Xi”(其中“i”表示从0到4的整数)。如果满足以下条件中的一个,那么熵编码单元56可将Xi标识为不可用且不用于上下文索引导出过程中:
·Xi的位置及当前变换系数X不位于同一变换单元中;或
·Xi的位置位于图片的水平或垂直边界外部;或
·变换系数Xi尚未经译码。在多遍次译码的状况下,只要译码了同一译码遍次中的二进位,二进位便可用于上下文索引导出过程中。因此,从解码观点,不必要的是充分解码一个变换系数。
替代地,熵编码单元56可应用可包含来自相邻变换单元的信息的一或多个其它模板。在各种实例中,相邻TU可为空间相邻TU或时间相邻TU。根据本文中所描述的上下文建模技术中的一或多个,上下文索引计算可如以下段落中所描述而定义。
关于bin0,熵编码单元56可导出上下文索引如下:
c0=min(sum_template(0),5)+f(x,y,6,2)+δk(f(x,y,6,5),cIdx)+offset(cIdx,width)
c0=c0+offset(cIdx,width)
其中
Figure GDA0002261589730000321
在一个实例中,基于c0的范围,一个亮度上下文的集合可包含等于NumberLumaCtxOneset的值的数目个上下文模型。举例来说,亮度上下文的集合可包含18个上下文模型。关于用于对亮度bin0译码的不同变换大小(其中变换宽度由“w”指明),熵编码单元56可选择针对每一变换大小的不同集合。另外,色度及亮度上下文经分离以进一步改善译码效能。对于YCbCr输入,三个色彩分量(即,Y、Cb及Cr)分别由等于0、1及2的分量索引v表示。
在这些实例中,熵编码单元56可导出bin1的上下文索引如下:
c1=min(sum_template(1),4)+N
c1=c1k(f(x,y,5,3),cIdx)+δk(f(x,y,5,10),cIdx)
另外、在这些实例中,熵编码单元56可导出bin2的上下文索引如下:
c2=min(sum_template(2),4)+N
c2=c2k(f(x,y,5,3),cIdx)+δk(f(x,y,5,10),cIdx)
在一个实例中,N等于0。在另一实例中,N等于1。替代地或另外,当N等于1时,熵编码单元56可通过等于0的上下文索引c1或c2而对第一bin1或bin2译码。在此实例中,熵编码单元56可根据以上方程式对bin1及bin2的其它例项译码。
在一个实例中,熵编码单元56可通过同一上下文模型集合但通过不同索引而编码bin1及bin2。替代地,bin1及bin2通过两个上下文模型集合译码,且其之间不存在相依性。对于剩余位,熵编码单元56可应用在HEVC中布局的设计或在JCTVC-H0228中布局的设计。在各种实例中,熵编码单元56可在建置上文所描述的各种函数中使用不同恒定值。
本发明的额外方面是针对上下文初始化增强。本发明的上下文初始化增强可独立于上述并行化上下文选择技术而实施,或可与上述并行化上下文选择技术中的任何一或多个组合地实施。本发明的上下文初始化技术中的一或多个是针对重新使用来自先前编码信息的上下文信息。举例来说,熵编码单元56可通过复制来自先前已编码切片的状态而继承或另外导出切片的上下文信息,所述切片可属于当前图片或先前经编码图片。在根据本发明的基于继承的上下文初始化的各种实例中,术语“状态”指状态信息及最大可能符号(MPS)值的组合。在以下描述中,术语“切片”可与术语“贴块”互换地使用。
通过从先前已编码切片继承上下文初始化信息,熵编码单元56可实施本发明的技术以相比于现有CABAC上下文初始化技术提供增强型准确度。举例来说,现有CABAC上下文初始化技术依赖于从表获得的上下文状态信息。然而,表是使用静态信息形成。然而,根据本发明的基于继承的上下文初始化技术,熵编码单元可从先前已编码切片提取上下文初始化信息,所述先前已编码切片具有与当前编码的切片相同的切片类型及/或具有相同的量化参数(QP)。以此方式,熵编码单元56可实施本发明的技术以改善用于当前切片的上下文初始化信息的准确度。
根据一些实施方案,熵编码单元56可识别先前已编码切片的中心LCU为继承上下文初始化信息所自的切片。在各种实例中,熵编码单元56可从多个对应先前已编码切片继承当前图片的多个切片的上下文初始化。在一个实例中,熵编码单元56可使用先前已编码图片的同一块(即,中心LCU),从所述先前已编码图片继承根据本发明的上下文初始化技术编码的多个切片的全部的上下文初始化信息。在另一实例中,熵编码单元56可从来自先前已编码图片的对应切片中的每一个的相应中心LCU继承针对多个切片中的每一个的上下文初始化信息。
举例来说,在编码先前已编码图片的中心LCU之后,熵编码单元56可存储关于切片上下文初始化的全部状态信息。又,熵编码单元56可存取或读取经复制状态信息并将状态信息用于初始化当前经编码的图片的一或多个切片的上下文。通过使用来自先前经编码图片的状态信息来执行当前图片的切片的上下文初始化,熵编码单元56可出于上下文初始化的目的而减小对静态信息的固定表的依赖性。举例来说,在将固定表用于初始化第一图片以及任一经帧内译码图片的切片的上下文之后,熵编码单元56可执行随后经编码的经帧间译码图片的上下文初始化。熵编码单元56可关于P切片及/或B切片来实施本发明的基于继承的上下文初始化技术。
下文描述本发明的上下文初始化技术的额外实例细节。另外或可替代地,熵编码单元56可经配置以执行根据本发明的技术用于上下文初始化,如下文所论述。熵编码单元56可实施本发明的上下文初始化技术以在编码位于先前已编码图片的一个块之后继承上下文信息为用于对当前切片译码的初始化上下文信息。熵编码单元56可将基于继承的上下文初始化技术应用到P及/或B切片。另外,上文提及的“一个块”的位置经预定义,且对于一个整个序列固定。举例来说,最大译码单元大小(LCU)由“N×N”指明,图片宽度由“W”指明,且图片高度由“H”指明。在此实例中,通过“PicWidthInCtbsY”指明的一个LCU行内的LCU的数目等于顶值函数即Ceil(W÷N)的输出。另外,在此实例中,通过“PicHeightInCtbsY”指明的LCU行的数目等于Ceil(H÷N),其中顶值函数Ceil(x)表示大于或等于x的最小整数。
根据一些实例,位置经界定为先前已译码图片中的第一切片的中心LCU。假设numLCUinSlice表示第一切片中的LCU数目,位置经界定为:TargetCUAddr=numLCUinSlice/2。在一个实例中,位置经界定为:TargetCUAddr=(PicWidthInCtbsY*PicHeightInCtbsY)/2+PicWidthInCtbsY/2。此外,当TargetCUAddr等于或大于(PicWidthInCtbsY*PicHeightInCtbsY),(例如,PicHeightInCtbsY等于1)时,TargetCUAddr重设为(PicWidthInCtbsY*PicHeightInCtbsY-1),其对应于最后LCU。在一个实例中,位置定义为先前已译码图片的最后LCU,或一个帧内的中心LCU(即,PicWidthInCtbsY*PicHeightInCtbsY/2),或中心LCU行的最后LCU(即,PicWidthInCtbsY*(PicHeightInCtbsY/2)-1),或第k LCU行的最后LCU(例如,k等于1)。根据一个实例,位置定义为在先前已编码图片中的第一切片的最后LCU。根据本发明的上下文初始化技术的一些实施方案,不同解决方案可具有译码块的位置的不同定义。
在一些实例中,“一个块”的位置在例如序列参数集(SPS)或图片参数集(PPS)的参数集中予以传信。例如SPS及/或PPS的参数集可关于当前图片的切片在频带外传信。在一些实例中,“一个块”的位置可在切片标头中传信。切片标头可关于对应切片在频带内传信。在这些及其它实例中,例如参考图片索引、对应图片次序计数差异(或△POC)的先前经编码图片的指示可在参数集或切片标头中传信。
在一些实例中,“先前已译码图片”经定义为就(紧接)在当前图片之前经编码/解码的图片。在一些实例中,“先前已译码图片”定义为是在当前图片之前经编码或解码的最后图片的图片,使得先前图片中的第一切片具有与当前切片相同的切片类型。根据一些实例,“先前已译码图片”定义为当前图片之前经编码/经解码图片的图片,且先前图片中的第一切片具有与当前切片相同的初始化量化参数。根据一些实例,“先前已译码图片”定义为含有先前已译码切片的图片,所述先前已译码切片具有与当前切片相同的切片类型或相同的切片类型及量化参数两个,或相同的切片类型及时间层两个,及/或相同的初始化量化参数。在一些实例中,“先前已译码图片”定义为存在于缓冲器(例如,经译码图片缓冲器或经解码图片缓冲器)中的图片,且可作为参考图片用于当前图片。根据这些实例,如在基于HEVC的平台中,先前切片必须属于参考图片集(RPS)中的图片或以下RPS子集中的一个中的图片:RefPicSetStCurrBefore、RefPicSetStCurrAfter及RefPicSetLtCurr。
根据本发明的上下文初始化技术的一些实施方案,如果在显示次序上在一个经帧内译码图片之后译码的所有图片并不具有相同切片类型及相同初始化量化参数,那么上下文信息的继承可被禁用。在此状况下,应用习知初始化方法,例如,熵编码单元56可使用提取初始化状态信息所自的固定表。根据一些实施方案,熵编码单元56可将本发明的基于继承的上下文初始化技术应用到特定上下文模型,且不应用到其它上下文模型。另外或替代地,“一个块”的位置对于不同上下文模型可不同。应了解,根据本发明的上下文初始化技术,上文列出的各种实施选项可单独地或以各种组合实施。
在本发明的上下文初始化技术的一些实例中,如果熵编码单元56确定cabac_init_present_flag经启用,那么熵编码单元56可确定包含于“先前已编码图片”中的切片应具有与当前编码切片相同的类型。换句话说,在此实例中,如果cabac_init_present_flag经启用,那么先前已编码图片的定义取决于匹配切片类型。另外,从解码观点,传信的cabac_init_flag根据此实施并不予以考虑。在一些情况下,替代地,熵编码单元56可首先基于cabac_init_flag及“先前已编码图片”的选定而修改当前切片的切片类型。
下文描述本发明的上下文初始化技术的额外实例细节。根据一些实施方案,熵编码单元56关于帧内随机存取图片(IRAP)而不可应用本发明的基于继承的上下文初始化技术。举例来说,关于三种类型IRAP中的任一者,即瞬时解码再新(IDR)图片、清洁随机存取(CRA)图片及断链存取(BLA)图片,熵编码56可不实施基于继承的上下文初始化技术。
在基于先前已译码信息的基于继承的上下文初始化的一个实例中,熵编码单元56可通过一个切片编码一个图片。在此实例中,熵编码单元56可应用以下规则中的一或多个来导出上下文模型的初始化状态。第一规则为,先前已编码图片的切片具有与当前编码切片的切片类型相同的切片类型。替代地或另外,初始化切片量化参数与用于对当前编码切片译码的切片QP相同。
根据本发明的一些方面,当不同QP用于当前切片及预测器切片时,熵编码单元56可从先前已编码切片继承上下文初始化信息。在这些实例中,熵编码单元56可在将上下文初始化信息用于编码当前图片之前关于上下文状态应用映射过程。举例来说,熵编码单元56可利用一或多个初始化函数(例如,HEVC中指定的初始化函数)以及两个QP及上下文以将一个状态转化到另一状态。在一些情况下,熵编码单元56可在通过先前已译码图片中的预定义地址编码一个块之后记录状态信息(例如,状态),且使用所记录状态信息作为用于当前编码切片的初始化状态信息。
在一个实例中,“一个块”表示最大译码单元(LCU)。举例来说,LCU大小(尺寸)可由“N×N”指明,图片宽度由“W”指明,且图片高度由“H”指明。一个LCU行内LCU的数目可由PicWInCtbsY指明,且等于顶值函数Ceil(W÷N)的输出。通过PicHInCtbsY指明的图片中LCU行的数目等于顶值函数Ceil(H÷N)的输出。一般来说,函数Ceil(x)传回大于或等于x的最小整数。另外,以LCU为单位测量的图片的宽度及以LCU测量的图片的高度分别由使用上述顶值函数获得的PicWInCtbsY及PicHInCtbsY值表示。在一个实例中,LCU的地址根据以下方程式来界定:
TargetCUAddr=(PicWInCtbsY*PicHInCtbsY)/2+PicWInCtbsY/2
此外,当TargetCUAddr等于或大于(PicWInCtbsY*PicHInCtbsY)的值时,熵编码单元56可重设,将TargetCUAddr重设为(PicWInCtbsY*PicHInCtbsY-1)的值。举例来说,TargetCUAddr在PicHInCtbsY等于1的状况下等于或超出以上值。另外,(PicWInCtbsY*PicHInCtbsY-1)的值对应于一个图片中的最后LCU。
此外,在一些情况下,熵编码单元56可不将上文描述的基于规则的上下文初始化技术应用于在显示次序上在新的经帧内译码图片之后的前一或多个图片。熵编码单元56可不应用基于规则的上下文初始化的实例为熵编码单元56第一次遭遇新切片类型或新QP(例如,新切片类型或新QP已出现)的实例。举例来说,熵编码单元56可减轻或潜在地避免与随机存取有关的问题。此项技术的实例展示于图9中,其中对于具有从28到35的图片次序计数(POC)值的图片的译码(且藉此解码)次序是如下:32,28,…30,29,31,40,36,34,33,35。
依据显示次序,具有等于40的POC值的图片为在具有等于32的POC值的I图片之后解码的第一图片。尽管具有24的POC值的图片具有与具有等于40的图片相同的QP,且两个共享相同切片类型,但熵编码单元56可不使用具有等于24的POC的图片的经译码信息来预测具有等于40的POC值的图片。类似地,熵编码单元56可不使用具有等于31的POC的图片的经译码信息来预测具有等于33的POC的图片。然而,熵编码单元56可使用具有等于33的POC的图片的经译码信息来预测具有等于35的POC的图片,此是因为两个图片在I图片之后(按显示次序)。
在来自先前已译码图片的预测不被允许、禁用或以其它方式不可用于熵编码单元56的情况下,熵编码单元56可应用如HEVC中定义的上下文初始化技术。如上文所描述,图4的视频编码器20表示视频编码器的实例,所述视频编码器可经配置以单独或以任何组合执行本发明的各种技术中的任一项用于增强型CABAC。在一些实例中,视频编码器20经配置以选择用于编码变换单元的译码模式。在一些实例中,视频编码器20可包含装置、可为所述装置或可为所述装置的部分,所述装置包含经配置以捕获所述视频数据的至少一部分的摄像机。在一些实例中,视频编码器20可包含经配置以从所述摄像机接收所述所捕获视频数据的存储器装置。
图5为根据本发明的技术的可经配置以执行CABAC的实例熵编码单元56的框图。将语法元素118输入到熵编码单元56中。如果语法元素已为二进制值语法元素(例如,仅具有值0及1的旗标或其它语法元素),那么可跳过二进制化步骤。如果语法元素为非二进制值语法元素(例如,可具有除1或0以外的值的语法元素),那么通过二进制化器120对非二进制值语法元素进行二进制化。二进制化器120执行非二进制值语法元素到二进制决策序列的映射。这些二进制决策通常被称作“二进位”。举例来说,对于变换系数级别,可将级别的值分解为连续二进位,每一二进位指示系数级别的绝对值是否大于某一值。举例来说,二进位0(有时被称作有效旗标)指示变换系数级别的绝对值是否大于0。二进位1指示变换系数级别的绝对值是否大于1,等等。可针对每一非二进制值语法元素产生唯一映射。
由二进制化器120产生的每一二进位馈入到熵编码单元56的二进制算术译码侧。即,对于预定非二进制值语法元素集合,每一二进位类型(例如,二进位0)在下一二进位类型(例如,二进位1)之前经译码。可以常规模式或旁路模式执行译码。在旁路模式中,旁路译码引擎126使用固定概率模型(例如,使用哥伦布-莱斯或指数哥伦布译码)执行算术译码。旁路模式通常用于更可预测语法元素。
以常规模式进行译码涉及执行CABAC。在给定先前经编码二进位的值情况下,在二进位的值的概率为可预测之处,常规模式CABAC用于译码二进位值。由上下文建模器(modeler)122确定二进位的概率为LPS。上下文建模器122针对上下文模型输出二进位值及概率状态(例如,概率状态σ,包含LPS的值及LPS出现的概率)。上下文模型可为用于一连串二进制的初始上下文模型,或可基于先前已译码二进位的经译码值而确定。如上文所述,上下文建模器122可基于所接收二进位为MPS抑或LPS而更新状态。在通过上下文建模器122确定上下文模型及概率状态σ之后,常规译码引擎124对二进位值执行BAC。
上下文建模器122可实施本发明的技术而以并行化方式执行上下文建模。根据本发明的各种方面,上下文建模器122可使用一或多个先前编码变换系数的第i二进位的值来执行针对变换系数的第i二进位的上下文建模。以此方式,当前变换系数的第i二进位的上下文建模取决于上下文建模器122已经选择上下文针对的一或多个变换系数的对应第i二进位的值。
通过使用先前编码变换的第i二进位的值执行当前变换系数的二进位的上下文建模,上下文建模器122可实施本发明的技术以提供对现有CABAC译码装置的一或多个潜在改善。作为此益处的实例,上下文建模器122可通过实施本发明的技术来改善上下文建模操作的并行化。举例来说,上下文建模器122可并行地执行当前经编码变换系数的多个二进位的上下文建模。作为一个实例,如果上下文建模器122确定对应于多个二进位的二进位值可从先前编码变换系数获得,那么上下文建模器122可至少部分并行化当前经编码变换系数的二进位的上下文建模操作。
上下文建模器122可根据多遍次译码方案执行本发明的并行化上下文建模。更具体来说,多遍次译码方案指如下译码技术:熵编码单元56通过所述译码技术将分离线程指派给每一特定二进位(例如,针对第一二进位指派线程1,针对第二二进位指派线程2等)。因此,根据多遍次译码,所有bin0例项可独立于按顺序译码的bin1例项按顺序进行编码,bin0例项及bin1例项均独立于按顺序编码的bin2例项进行译码等。在一些实例中,上下文建模器122可关于单一块的变换单元执行多遍次译码。此外,对于根据常规模式编码的二进位,上下文建模器122可多遍次地执行上下文选择。每一遍次可是关于所有变换系数的单一对应二进位。换句话说,在每一遍次期间,上下文建模器122并不利用与其它遍次相关的信息。举例来说,上下文建模器122在第一遍次中可选择一个变换单元/CG内的所有变换系数的第一二进位的上下文。在此实例中,在第二遍次中,上下文建模器122可在需要时选择一个变换单元/CG内所有变换系数的第二二进位的上下文,等等。
在一个实例使用状况下,上下文建模器122可使用先前已译码相邻变换系数的bin0的值来执行当前译码变换系数的bin0的上下文建模,使用先前已译码相邻变换系数的bin1的值来执行当前译码变换系数的bin1的上下文建模,等等。使用对于先前已译码变换系数可用的任何二进位值,上下文建模器122可并行地执行当前译码变换系数的多个二进位的上下文建模。在上文所描述的使用状况情境下,如果bin0及bin1都从先前已译码相邻变换系数可获得,那么上下文建模器122可使当前经译码变换系数的bin0及bin1的上下文建模并行化。以此方式,上下文建模器122可实施本发明的技术以在如HEVC中所描述的多遍次译码的原则内执行CABAC,同时通过启用且潜在地采用上下文建模操作的并行化而改善当前变换系数的二进位的上下文选择。
应了解,上下文建模器122可但可能不必要并行地执行所有这些二进位的整个上下文建模。更具体来说,上下文建模器122可并行地执行多个二进位的上下文建模的一些部分。以此方式,上下文建模器122可实施本发明的技术以利用多核心处理技术及/或多个处理器以改善当前经译码变换系数的上下文建模操作。
通过在单一遍次中编码不同变换系数的对应二进位,上下文建模器122可提供优于现有多遍次CABAC技术的一或多个优点。举例来说,通过在单一遍次中译码多个变换系数的对应二进位(例如,相应bin0),上下文建模器122可避开对在二进位转变处频繁地存储并检索新的上下文模型的需要。确切来说,上下文建模器122可越过给定遍次使用单一上下文模型,此是因为遍次以越过多个变换系数的对应二进位(例如,相应bin0)为目标。以此方式,上下文建模器122可实施本发明的并行化上下文选择技术以减轻或潜在地消除起因于频繁上下文切换的时间延迟及资源搅拌。对比来说,现有多遍次译码因为编码第一变换系数的bin0、bin1、bin2等且接着编码第二变换系数的bin0、bin1、bin2等,将要求频繁上下文模型存储及检索操作。
举例来说,上下文建模器122可产生或以其它方式存取一或多个预定义模板以用于本文中所描述的第i二进位上下文建模功能性。上下文建模器122可用于当前译码变换系数的第i二进位的上下文建模的预定义模板的一个非限制性实例说明于图10中。例如图10的本地模板140的预定义模板定义8×8变换块的对角线扫描次序,其中“L”指明最后有效扫描位置,“x”指明当前扫描位置,且“xi”指明由本地模板140覆盖的相邻扫描位置。关于xi,“i”的值范围为零到4,且范围约束表达为i∈[0,4]。根据本发明的一或多个方面,上下文建模器122可将位于本地模板140中的变换系数的第i二进位用于当前经编码的变换系数的对应第i二进位的上下文建模。根据一些实施方案,上下文建模器122可使用多个模板来执行本发明的并行化二进位上下文建模。在一个实例中,模板大小及/或形状取决于以下准则中的一或多个:(i)变换单元的大小;(ii)模式;或(iii)当前变换系数在变换单元或系数群组(CG)内的位置。
通过使用一或多个预定义模板来遍历二进位值的先前已译码TU,上下文建模器122可实施本发明的技术以提供优于现有CABAC技术的一或多个增强。举例来说,通过使用例如图10的本地模板140的TU遍历模板,上下文建模器122可避开对关于不同译码遍次分离地确定遍历方案的需要。因此,通过实施本发明的基于模板的并行化上下文选择技术,上下文建模器122可关于二进位译码增加吞吐量,同时维持译码精度。
根据另一实例实施方案,上下文建模器122可仅将本发明的并行化上下文建模技术应用到当前译码变换系数的前“K”个二进位,其中“K”小于M,且其中“M”指明可用二进位索引的上限。上下文建模器122可使用另一上下文建模技术或根据旁路模式编码经译码的剩余(M+1-K)个二进位。
根据另一实例实施方案,上下文建模器122可定义先前已译码变换系数的全域为当前变换单元或CG内在编码次序上在当前编码的变换系数之前的“N”个连续变换系数。替代地,上下文建模器122可确定N为变量。在一个实例中,上下文建模器122可确定,N的值取决于当前变换单元中当前经编码变换系数的相对位置。在另一实例中,上下文建模器122可确定N的值取决于变换单元大小。
在另一实施方案中,上下文建模器122可定义先前经编码变换系数的全域为定位于当前变换单元或CG内的当前位置的邻域处的那些变换系数。在一个实例中,当前位置的邻域受约束于直接邻近于当前位置的那些位置,或直接邻近于当前位置或与当前位置分离的位置。在另一实例中,邻域也可包含这些位置,但扩展以包含一或多个空间相邻变换单元中的位置。
根据本发明的各种方面,上下文建模器122可依据与一或多个先前已译码变换系数相关联的值而定义二进位的上下文索引。举例来说,上下文建模器122可使用产生先前已译码变换系数的所有第i二进位值的总和的函数。更具体来说,在此实例中,上下文建模器122可执行TU/CG的所有先前经编码变换系数的可用第i二进位值的值的求和。又,上下文建模器122可使用所得总和在当前译码变换系数的第i二进位的上下文建模期间作为上下文索引(CtIdx)。
根据本发明的一些方面,上下文建模器122在不同大小的变换单元中对于相同遍次使上下文索引导出规则保持不改变。然而,上下文建模器122可将偏移应用到上下文索引以将上下文建模用于当前译码二进位。举例来说,上下文建模器122可确定两个不同变换大小具有两个上下文模型集合。又,上下文建模器122可定义偏移作为一个此集合中的上下文模型的数目。举例来说,如果上下文建模器122确定TU大小小于具有预定义尺寸M×M的正方形,则上下文建模器122可确定,每一此TU(小于M×M)的TU大小具有其自身的相应上下文模型集合。相反,熵编码单元56可确定具有等于或大于M×M的大小的所有TU共享相同上下文模型集合。
在各种使用状况情境下,上下文建模器122可设定M的值为16。更具体来说,在这些实例中,如果上下文建模器122确定当前译码TU的大小小于16×16正方形,那么上下文建模器122可确定当前译码TU与对应于TU的特定大小的一组上下文模型相关联。相反,如果熵编码单元确定当前经译码TU具有等于或大于16×16的大小,那么上下文建模器122可确定当前经译码TU与具有等于或大于16×16的大小的所有其它TU共享相同上下文模型集合。在一些实例中,上下文建模器122可将基于TU大小的上下文选择仅应用到亮度块。
根据本发明的一些方面,上下文建模器122可基于变换大小来确定系数群组(CG)大小。换句话说,根据这些方面,CG大小取决于变换大小。替代地或另外,上下文建模器122可基于译码模式来确定CG大小。在这些实例中,上下文建模器122可确定CG大小为取决于变换大小及/或译码模式中的一个或两个。替代地或另外,上下文建模器122可基于变换矩阵来确定CG大小。
根据本发明的一些方面,上下文建模器122也可应用经并行化上下文建模技术,也可应用到使用变换旁路模式(也被称作“变换跳过模式”)编码的块。变换旁路模式指译码模式,根据所述译码模式,视频编码器20可跳过编码的变换及量化操作以提供无失真译码输出。因此,根据本发明的某些方面,上下文建模器122可扩展并行化上下文选择技术以提供无失真译码的情况下的潜在所得优点。
返回到图4,在一些状况下,熵编码单元56或视频编码器20的另一单元可经配置以执行除熵译码之外的其它译码功能。举例来说,熵编码单元56可经配置以确定用于CU及PU的译码块型样(CBP)值。又,在一些状况下,熵编码单元56可执行系数的延行长度译码。另外,熵编码单元56或其它处理单元也可译码其它数据,例如量化矩阵的值。
如上文所论述,反量化单元58及反变换处理单元60分别应用反量化及反变换以重建构像素域中的残余块(例如,供稍后用作参考块)。运动补偿单元44可通过将残余块添加到参考图片存储器64的帧中的一个的预测性块来计算参考块。运动补偿单元44也可将一或多个内插滤波器应用到重建构的残余块以计算用于在运动估计中使用的次整数像素值。求和器62将重建构的残余块添加到由运动补偿单元44产生的经运动补偿的预测块,以产生重建构的视频块以用于存储于参考图片存储器64中。重建构的视频块可由运动估计单元42及运动补偿单元44用作参考块以对后续视频帧中的块帧间译码。
图6为说明视频解码器30的实例的框图,所述视频解码器可实施用于根据增强型CABAC设计对数据进行译码的技术。在图3的实例中,视频解码器30包含熵解码单元70、运动补偿单元72、帧内预测单元74、反量化单元76、反变换单元78、参考图片存储器82和求和器80。在一些实例中,视频解码器30可执行大体上与关于视频编码器20(图4)所描述的编码遍次互逆的解码遍次。运动补偿单元72可基于从熵解码单元70接收的运动向量产生预测数据,而帧内预测单元74可基于从熵解码单元70接收的帧内预测模式指示符产生预测数据。
在解码过程期间,视频解码器30从视频编码器20接收表示经编码视频切片的视频块及相关联的语法元素的经编码视频位流。视频解码器30的熵解码单元70熵解码位流以产生经量化系数、运动向量或帧内预测模式指示符及其它语法元素。在一些实例中,熵解码单元70可执行根据本发明的技术的CABAC及/或增强型CABAC。熵解码单元70将运动向量及其它语法元素转递到运动补偿单元72。视频解码器30可在视频切片层级及/或视频块层级接收语法元素。
当视频切片经译码为帧内译码(I)切片时,帧内预测单元74可基于所传信的帧内预测模式及来自当前帧或图片的先前经解码块的数据而产生当前视频切片的视频块的预测数据。当视频帧经译码为经帧间译码(即,B、P或GPB)切片时,运动补偿单元72基于运动向量及从熵解码单元70接收的其它语法元素产生用于当前视频切片的视频块的预测性块。预测性块可从参考图片列表中的一个内的参考图片中的一个产生。视频解码器30可基于存储于参考图片存储器82中的参考图片使用预设建构技术建构参考图片列表(列表0及列表1)。运动补偿单元72通过剖析运动向量及其它语法元素确定用于当前视频切片的视频块的预测信息,且使用预测信息产生用于正解码的当前视频块的预测性块。举例来说,运动补偿单元72使用所接收语法元素中的一些以确定用以对视频切片的视频块译码的预测模式(例如,帧内或帧间预测)、帧间预测切片类型(例如,B切片、P切片或GPB切片)、用于所述切片的参考图片列表中的一或多个的建构信息、用于所述切片的每一经帧间编码视频块的运动向量、用于所述切片的每一经帧间译码视频块的帧间预测状态及用以解码当前视频切片中的视频块的其它信息。
运动补偿单元72也可执行基于内插滤波器的内插。运动补偿单元72可使用如由视频编码器20在视频块的编码期间所使用的内插滤波器,以计算参考块的次整数像素的内插值。在此状况下,运动补偿单元72可从所接收的语法元素确定由视频编码器20使用的内插滤波器且使用所述内插滤波器来产生预测性块。
反量化单元76反量化(即,解量化)位流中所提供,并由熵解码单元70解码的经量化变换系数。反量化过程可包含使用由视频解码器30针对视频切片中的每一视频块计算的量化参数QPY以确定应进行应用的量化程度及(同样地)反量化程度。
反变换单元78将反变换(例如,反DCT、反整数变换或概念上类似的反变换处理)应用于变换系数,以便在像素域中产生残余块。
在运动补偿单元72基于运动向量及其它语法元素产生当前视频块的预测性块后,视频解码器30通过对来自反变换单元78的残余块与由运动补偿单元72产生的对应预测性块求和而形成经解码的视频块。求和器80表示执行此求和运算的所述组件。如果需要,也可应用解块滤波器来对经解码块滤波以便移除块效应伪影。也可使用其它回路滤波器(在译码回路中抑或在译码回路之后)以使像素转变平滑,或以其它方式改善视频质量。接着将给定帧或图片中的经解码的视频块存储于参考图片存储器82中,所述参考图片存储器存储用于后续运动补偿的参考图片。参考图片存储器82也存储经解码视频以用于稍后在显示装置(例如,图1的显示装置32)上呈现。
图6的视频解码器30表示视频解码器的实例,所述视频解码器可经配置以单独或以任何组合执行用于增强型CABAC的本发明的各种技术中的任一个。因此,上述技术可由视频编码器20(图1及4)及/或视频解码器30(图1及5)执行,其两个可通常被称作视频译码器。同样地,视频译码可指视频编码或视频解码(在适用时)。视频解码器30的例如熵解码单元70的各种组件可实施本发明的增强型CABAC技术以执行上下文建模。根据本发明的各种方面,熵解码单元70可使用一或多个先前已解码变换系数的第i二进位的值执行针对变换系数的第i二进位的上下文建模。换句话说,当前变换系数的第i二进位的上下文建模取决于熵解码单元70已解码的一或多个变换系数的对应第i二进位的值。
通过使用先前已解码变换的第i二进位的值执行针对当前变换系数的二进位的上下文建模,熵解码单元70可实施本发明的技术以提供对现有CABAC译码器的一或多个潜在改善。作为此益处的实例,熵解码单元70可通过实施本发明的技术来改善上下文建模操作的并行化。更具体来说,熵解码单元70可针对当前解码的变换系数的多个二进位并行地执行上下文建模。举例来说,如果熵解码单元70确定对应于多个二进位的二进位值可从先前已解码变换系数获得,那么熵解码单元70可至少部分并行化当前经解码变换系数的二进位的上下文建模操作。
熵解码单元70可根据多遍次译码方案执行本发明的并行化上下文建模。更具体来说,多遍次译码方案指如下译码技术:熵解码单元70通过所述译码技术将分离线程指派给每一特定二进位(例如,针对第一二进位指派线程1,针对第二二进位指派线程2等)。因此,根据多遍次译码,所有bin0例项可独立于按顺序解码的bin1例项按顺序进行解码,bin0例项及bin1例项均独立于按顺序解码的bin2例项进行解码,等等。在一些实例中,熵解码单元70可关于单一块的变换单元执行多遍次译码。此外,对于根据常规模式解码的二进位,熵解码单元70可执行若干解码遍次。每一遍次可是关于所有变换系数的单一对应二进位。换句话说,在每一遍次期间,熵解码单元70并不利用关于其它遍次的信息。举例来说,熵解码单元70在第一遍次中可解码一个变换单元/CG内的所有变换系数的第一二进位(如果需要)。在此实例中,在第二遍次中,熵解码单元70可解码一个变换单元/CG内的所有变换系数的第二二进位(如果需要)等等。
在一个实例使用状况下,熵解码单元70可使用先前已译码相邻变换系数的bin0的值来执行当前译码变换系数的bin0的上下文建模,使用先前已译码相邻变换系数的bin1的值执行当前译码变换系数的bin1的上下文建模,等等。使用对于先前已译码变换系数可获得的任何二进位值,熵解码单元70可并行地执行当前译码变换系数的多个二进位的上下文建模。在上文所描述的使用状况情境下,如果bin0及bin1都从先前已译码相邻变换系数可获得,那么熵解码单元70可使当前经译码变换系数的bin0及bin1的上下文建模并行化。以此方式,熵解码单元70可实施本发明的技术以在如HEVC中所描述的多遍次译码的原则内执行CABAC,同时通过启用且潜在地采用上下文建模操作的并行化而改善当前变换系数的二进位的上下文选择。
应了解,熵解码单元70可但可能不必并行地执行所有这些二进位的整个上下文建模。更具体来说,熵解码单元70可并行地执行多个二进位的上下文建模的一些部分。以此方式,熵解码单元70可实施本发明的技术以利用多核心处理技术及/或多个处理器以改善当前译码变换系数的上下文建模操作。
通过在单一遍次中解码不同变换系数的对应二进位,熵解码单元70可提供优于现有多遍次CABAC技术的一或多个优点。举例来说,通过在单一遍次中解码多个变换系数的对应二进位(例如,相应bin0),熵解码单元70可避开在二进位转变处频繁地存储并检索新的上下文模型的需要。确切来说,熵解码单元70可越过给定遍次使用单一上下文模型,此是因为遍次以越过多个变换系数的对应二进位(例如,相应bin0)为目标。以此方式,熵解码单元70可实施本发明的并行化上下文选择技术以减轻或潜在地消除起因于频繁上下文切换的时间延迟及资源搅拌。对比来说,现有多遍次译码因为解码第一变换系数的bin0、bin1、bin2等且接着解码第二变换系数的bin0、bin1、bin2等,云云而将要求频繁的上下文模型保存及检索操作。
举例来说,熵解码单元70可产生或以其它方式存取一或多个预定义模板以用于本文中所描述的第i二进位上下文建模功能性。熵解码单元70可用于当前译码变换系数的第i二进位的上下文建模的预定义模板的一个非限制性实例说明于图10中。例如图10的本地模板140的预定义模板定义8×8变换块的对角线扫描次序,其中“L”指明最后有效扫描位置,“x”指明当前扫描位置,且“xi”指明由本地模板140覆盖的相邻扫描位置。关于xi,“i”的值范围为零到4,且范围约束表达为i∈[0,4]。根据本发明的一或多个方面,熵解码单元70可使用位于本地模板140中的变换系数的第i二进位从而用于当前经解码的变换系数的对应第i二进位的上下文建模。根据一些实施方案,熵解码单元70可使用多个模板以执行本发明的并行化二进位上下文建模。在一个实例中,模板大小及/或形状取决于以下准则中的一或多项:(i)变换单元的大小;(ii)模式;或(iii)当前变换系数在变换单元或系数群组(CG)内的位置。
通过使用一或多个预定义模板来遍历二进位值的先前已译码TU,熵解码单元70可实施本发明的技术以提供优于现有CABAC技术的一或多个增强。举例来说,通过使用例如图10的本地模板140的TU遍历模板,熵解码单元70可避开对关于不同译码遍次分离地确定遍历方案的需要。因此,通过实施本发明的基于模板的并行化上下文选择技术,熵解码单元70可关于二进位译码增加吞吐量,同时维持译码精度。
根据另一实例实施方案,熵解码单元70可仅将本发明的并行化上下文建模技术应用到当前经译码变换系数之前“K”个二进位,其中“K”小于M,且其中“M”指明可用二进位索引的上限。熵解码单元70可使用另一上下文建模技术或根据绕过模式解码经译码的剩余(M+1-K)个二进位。
根据另一实例实施方案,熵解码单元70可定义先前已译码变换系数的全域为当前变换单元或CG内在解码次序上在当前经解码变换系数之前的“N”个连续变换系数。替代地,熵解码单元70可确定N为变量。在一个实例中,熵解码单元70可确定,N的值取决于当前解码变换系数在当前变换单元中的相对位置。在另一实例中,熵解码单元70可确定N的值,使得N取决于变换单元大小。
在另一实施方案中,熵解码单元70可定义先前已译码变换系数的全域为定位于当前变换单元或CG的当前位置的邻域处的那些变换系数。在一个实例中,当前位置的邻域受约束于直接邻近于当前位置的那些位置,或直接邻近于当前位置或与当前位置分离的位置。在另一实例中,邻域也可包含这些位置,但扩展以包含一或多个空间相邻变换单元中的位置。
根据本发明的各种方面,熵解码单元70可依据与一或多个先前已译码变换系数相关联的值而定义二进位的上下文索引。举例来说,熵解码单元70可使用产生先前已译码变换系数的所有第i二进位值的总和的函数。更具体来说,在此实例中,熵解码单元70可执行TU/CG的所有先前已解码变换系数的可用第i二进位值的值的求和。又,熵解码单元70可使用所得总和在当前译码变换系数的第i二进位的上下文建模期间作为上下文索引(CtIdx)。在另一实例中,熵解码单元70可定义截断值。在此实例中,当函数的输出超出预定义截断值时,熵解码单元70关于当前经译码的二进位可使用相同上下文。在一些实例中,熵解码单元70可确定,截断值是基于(或取决于)二进位索引/变换单元大小/译码模式/一个变换单元内的变换系数字置。
在一些实例中,熵解码单元70可在不同遍次中解码经译码的对应二进位,使得这些二进位共享相同上下文模型。在一个实例中,熵解码单元70可确定,不同遍次中针对二进位的上下文索引导出方法(例如,计算上下文索引的函数)不同。根据一个实例,熵解码单元70可确定,不同遍次中针对二进位的上下文索引导出方法(例如,计算上下文索引的函数)可相同。
根据本发明的一些方面,熵解码单元70在不同大小的变换单元中对于相同遍次使上下文索引导出规则保持不改变。然而,熵解码单元70可将偏移应用到上下文索引以执行针对当前经译码二进位的上下文建模。举例来说,熵解码单元70可确定两个不同变换大小具有两个上下文模型集合。又,熵解码单元70可定义偏移作为一个此集合中的上下文模型的数目。举例来说,如果熵解码单元70确定TU大小小于预定义尺寸M×M的正方形,那么熵解码单元70可确定每一此TU(小于M×M)的TU大小具有其自己的上下文模型的相应集合。相反,熵解码单元70可确定具有等于或大于M×M的大小的所有TU共享相同上下文模型集合。
在各种使用状况情境下,熵解码单元70可设定M值为16。更具体来说,在这些实例中,如果熵解码单元70确定当前译码TU的大小小于16×16正方形,那么熵解码单元70可确定当前译码TU与对应于TU的特定大小的上下文模型集合相关联。相反,如果熵解码单元70确定当前解码TU具有等于或大于16×16的大小,那么熵解码单元70可确定当前译码TU与具有等于或大于16×16的大小的所有其它TU共享相同上下文模型集合。在一些实例中,熵解码单元70可将仅基于TU大小的上下文选择应用到亮度块。
根据一些实例,用于对剩余二进位译码的莱斯参数取决于变换大小。替代地或另外,莱斯参数可取决于译码模式。在一个实例中,替代将哥伦布-莱斯码用于coeff_abs_level_remaining,熵解码单元70可使用其它二进制化技术。替代地或另外,一个以上二进制方法可应用于对coeff_abs_level_remaining语法元素译码。在一个实例中,用于对coeff_abs_level_remaining译码的二进制方法(例如,莱斯参数)取决于译码模式。替代地,用于对coeff_abs_level_remaining译码的二进制化方法(例如,莱斯参数)可取决于一个TU内的相对位置。替代地,用于对coeff_abs_level_remaining译码的二进制化方法(例如,莱斯参数)可取决于在扫描次序上距第一经译码/解码变换系数的距离。在一些情况下,用于对coeff_abs_level_remaining译码的二进制化方法(例如,莱斯参数)取决于相对于变换单元的译码群组位置。
根据本发明的一些方面,熵解码单元70可基于变换大小而确定系数群组(CG)大小。换句话说,根据这些方面,CG大小取决于变换大小。替代地或另外,熵解码单元70可基于译码模式来确定CG大小。在这些实例中,熵解码单元70可确定CG大小为取决于变换大小及/或译码模式中的一个或两个。替代地或另外,熵解码单元70可基于变换矩阵而确定CG大小。
根据本发明的一些方面,熵解码单元70还可应用经并行化上下文建模技术到使用变换旁路模式(也被称作“变换跳过模式”)编码的块。变换旁路模式指译码模式,视频解码器30可根据译码模式跳过解码的反变换及反量化操作以处理视频位流的无损编码部分。因此,根据本发明的某些方面,熵解码单元70可扩展并行化上下文选择技术以在所接收经编码视频位流经无损编码的例项中提供潜在所得优点。
本发明的各种变换系数上下文建模技术的实例细节下文进一步详细地论述。下文描述根据多遍次译码的上下文建模的一个实例。根据此实例,熵解码单元70可应用如HEVC中布局的译码元件及译码次序(多遍次译码及基于CG的译码)。另外,熵解码单元70可应用二进制化技术同时保持变换系数的量值不改变。然而,熵解码单元70可修改用于对变换系数的量值译码的上下文索引及莱斯参数计算方法。
针对bin0(有效旗标)的上下文索引计算取决于以下信息:模板中非零系数(即,系数的量值大于0)的数目;当前系数在当前TU内的位置;亮度分量的TU大小;及色彩分量。关于色彩分量相依性,亮度及色度经分离地考虑。另外,在考虑针对亮度分量的TU大小中,上下文索引计算对于亮度来说独立于TU大小。亮度分量的TU大小可包含三个集合,即4×4TU、8×8TU、16×16及更大TU。
对于bin1及bin2(大于1的Grt、大于2的Grt),上下文索引计算取决于以下信息:模板中大于1(对于bin1)且大于2(对于bin2)的absLevel的数目;当前系数在当前TU内的位置;以及色彩分量。莱斯参数导出过程取决于旁路译码信息,且取决于sum_absolute_levelMinus1语法元素的值。
在一个实例中,熵解码单元70可定义函数sum_template(k)以传回模板中的系数的数目,使得系数的量值大于k。sum_template(k)函数的实例是如下:
sum_template(k)=∑δj(xi,k)
其中
Figure GDA0002261589730000481
另外,在此实例中,熵解码单元70可定义函数f(x,y,n,t)以处置位置信息,且定义另一函数δk(u,v)以处置分量信息如下:
Figure GDA0002261589730000482
Figure GDA0002261589730000483
图10描绘熵解码单元70可关于本文中所描述的上下文建模技术使用的模板(本地模板140)的一个实例。当前变换系数标记为“X”且五个空间相邻变换系数标记为“Xi”(其中“i”表示从0到4的整数)。如果满足以下条件中的任一个,那么熵解码单元70可将Xi标记为不可用且不用于上下文索引导出过程中:
·Xi的位置及当前变换系数X不位于同一变换单元中;或
·Xi的位置位于图片的水平或垂直边界外部;或
·变换系数Xi尚未经译码。在多遍次译码的状况下,只要译码了同一译码遍次中的二进位,二进位便可用于上下文索引导出过程中。因此,从解码观点,不必要的是充分解码一个变换系数。
替代地,熵解码单元70可应用一或多个其它模板,其它模板可包含来自相邻变换单元的信息。在各种实例中,相邻TU可为空间相邻TU或时间相邻TU。根据本文中所描述的上下文建模技术中的一或多个,上下文索引计算可如以下段落中所描述而定义。
关于bin0,熵解码单元70可导出上下文索引如下:
c0=min(sum_template(0),5)+f(x,y,6,2)+δk(f(x,y,6,5),cIdx)+offset(cIdx,width)
c0=c0+offset(cIdx,width)
其中
Figure GDA0002261589730000491
在一个实例中,基于c0的范围,一个亮度上下文的集合可包含等于NumberLumaCtxOneset的值的数目个上下文模型。举例来说,亮度上下文的集合可包含18个上下文模型。关于用于对亮度bin0译码的不同变换大小(其中变换宽度由“w”标明),熵解码单元70可选择针对每一变换大小的不同集合。另外,色度及亮度上下文经分离以进一步改善译码效能。对于YCbCr输入,三个色彩分量(即,Y、Cb及Cr)分别由等于0、1及2的分量索引v表示。
在这些实例中,熵解码单元70可导出bin1的上下文索引如下:
c1=min(sum_template(1),4)+N
c1=c1k(f(x,y,5,3),cIdx)+δk(f(x,y,5,10),cIdx)
另外,在这些实例中,熵解码单元70可导出bin2的上下文索引如下:
c2=min(sum_template(2),4)+N
c2=c2k(f(x,y,5,3),cIdx)+δk(f(x,y,5,10),cIdx)
在一个实例中,N等于0。在另一实例中,N等于1。替代地或另外,当N等于1时,熵解码单元70可通过等于0的上下文索引c1或c2而对第一bin1或bin2译码。在此实例中,熵解码单元70可根据以上方程式对bin1及bin2的其它例项译码。
在一个实例中,熵解码单元70可通过同一上下文模型集合但通过不同索引而解码bin1及bin2。替代地,bin1及bin2通过两个上下文模型集合译码,且其之间不存在相依性。对于剩余位,熵解码单元70可应用在HEVC中布局的设计或在JCTVC-H0228中布局的设计。在各种实例中,熵解码单元70可在建置上文所描述的各种函数中使用不同恒定值。
本发明的额外方面是针对上下文初始化增强。本发明的上下文初始化增强可独立于上述并行化上下文选择技术而实施,或可与上述并行化上下文选择技术中的任何一或多个组合地实施。本发明的上下文初始化技术中的一或多个是针对重新使用来自先前经解码信息的上下文信息。举例来说,熵解码单元70可通过复制来自先前经解码切片的状态而继承或另外导出切片的上下文信息,所述切片可属于当前图片或先前经解码图片。
通过从先前已解码切片继承上下文初始化信息,熵解码单元70可实施本发明的技术以相比于现有CABAC上下文初始化技术来提供增强型准确度。举例来说,现有CABAC上下文初始化技术依赖于从表获得的上下文状态信息。然而,表使用静态信息形成。然而,根据本发明的基于继承的上下文初始化,熵解码单元70可从先前已解码切片提取上下文初始化信息,所述先前已解码切片具有与当前解码的切片相同的切片类型及/或具有相同的量化参数(QP)。以此方式,熵解码单元70可实施本发明的技术以改善用于当前切片的上下文初始化信息的准确度。
根据一些实施方案,熵解码单元70可识别先前已解码切片的中心LCU为继承上下文初始化信息所自的切片。在各种实例中,熵解码单元70可从多个对应先前已解码切片继承当前图片的多个切片的上下文初始化。在一个实例中,熵解码单元70可使用先前已解码图片的同一块(即,中心LCU),从所述先前已解码图片继承根据本发明的上下文初始化技术解码的多个切片的全部的上下文初始化信息。在另一实例中,熵解码单元70可从来自先前已解码图片的对应切片中的每一者的相应中心LCU继承针对多个切片中的每一个的上下文初始化信息。
举例来说,在解码先前已解码图片的中心LCU之后,熵解码单元70可存储关于切片上下文初始化的全部状态信息。又,熵解码单元70可存取或读取经复制状态信息并将状态信息用于初始化当前经解码的图片的一或多个切片的上下文。通过使用来自先前经解码图片的状态信息来执行当前图片的切片的上下文初始化,熵解码单元70可出于上下文初始化的目的而减小对静态信息的固定表的依赖性。举例来说,在将固定表用于初始化第一图片以及任一经帧内译码图片的切片的上下文之后,熵解码单元70可执行随后经解码的经帧间译码图片的上下文初始化。熵解码单元70可关于P切片及/或B切片来实施本发明的基于继承的上下文初始化技术。
下文描述本发明的上下文初始化技术的额外实例细节。另外或替代地,熵解码单元70可经配置以执行用于上下文初始化的根据本发明的技术,如下文所论述。熵解码单元70可实施本发明的上下文初始化技术以在编码位于先前已解码图片中的一个块为用于译码当前切片的初始化上下文信息之后继承上下文信息。熵解码单元70可将基于继承的上下文初始化技术应用到P及/或B切片。另外,上文提及的“一个块”的位置经预定义,且对于一个整个序列固定。举例来说,最大译码单元大小(LCU)由“N×N”指明,图片宽度由“W”指明,且图片高度由“H”指明。在此实例中,通过“PicWidthInCtbsY”指明的一个LCU行内的LCU的数目等于顶值函数即Ceil(W÷N)的输出。另外,在此实例中,通过“PicHeightInCtbsY”指明的LCU行的数目等于Ceil(H÷N),其中顶值函数Ceil(x)表示大于或等于x的最小整数。
根据一些实例,位置经界定为先前已解码图片中的第一切片的中心LCU。假设numLCUinSlice表示第一切片中的LCU数目,位置经界定为:TargetCUAddr=numLCUinSlice/2。在一个实例中,位置经界定为:TargetCUAddr=(PicWidthInCtbsY*PicHeightInCtbsY)/2+PicWidthInCtbsY/2。此外,当TargetCUAddr等于或大于(PicWidthInCtbsY*PicHeightInCtbsY),(例如,PicHeightInCtbsY等于1)时,TargetCUAddr重设为(PicWidthInCtbsY*PicHeightInCtbsY-1),其对应于最后LCU。在一个实例中,位置定义为先前已译码图片的最后LCU,或一个帧内的中心LCU(即,PicWidthInCtbsY*PicHeightInCtbsY/2),或中心LCU行的最后LCU(即,PicWidthInCtbsY*(PicHeightInCtbsY/2)-1),或第k LCU行的最后LCU(例如,k等于1)。根据一个实例,位置定义为先前已译码图片中的第一切片的最后LCU。根据本发明的上下文初始化技术的一些实施方案,不同解决方案可具有译码块的位置的不同定义。
在一些实例中,熵解码单元70可从例如序列参数集(SPS)或图片参数集(PPS)的参数集获得“一个块”的位置,所述参数集在经编码视频位流中传信。例如SPS及/或PPS的参数集可关于当前图片的切片在频带外传信。在一些实例中,“一个块”的位置可在切片标头中传信。切片标头可关于对应切片在频带内传信。在这些及其它实例中,例如参考图片索引、对应图片次序计数差异(或△POC)的先前经解码图片的指示可在参数集或切片标头中传信。
在一些实例中,“先前已译码图片”经定义为就(紧接)在当前图片之前经解码的图片。在一些实例中,“先前已译码图片”定义为是当前图片之前经解码的最后图片的图片,使得先前图片中的第一切片具有与当前切片相同的切片类型。根据一些实例,“先前已译码图片”定义为当前图片之前的经解码图片的图片,且先前图片中的第一切片具有与当前切片相同的初始化量化参数。根据一些实例,“先前已译码图片”定义为含有先前已译码切片的图片,所述先前已译码切片具有与当前切片相同的切片类型或相同的切片类型及量化参数两个,或相同的切片类型及时间层两个,及/或相同的初始化量化参数。在一些实例中,“先前已译码图片”经定义为存在于图片缓冲器(例如,经解码图片缓冲器)中的图片,且可用于当前图片作为参考图片。根据这些实例,如在基于HEVC的平台中,先前切片必须属于参考图片集(RPS)中的图片或以下RPS子集中的一个中的图片:RefPicSetStCurrBefore、RefPicSetStCurrAfter及RefPicSetLtCurr。
根据本发明的上下文初始化技术的一些实施方案,如果在显示次序上在一个经帧内译码图片之后译码的所有图片并不具有相同切片类型及相同初始化量化参数,那么上下文信息的继承可被禁用。在此状况下,应用习知初始化方法,例如,熵解码单元70可使用提取初始化状态信息所自的固定表。根据一些实施方案,熵解码单元70可将本发明的基于继承的上下文初始化技术应用到特定上下文模型,且不应用到其它上下文模型。另外或替代地,“一个块”的位置对于不同上下文模型可不同。应了解,根据本发明的上下文初始化技术,上文列出的各种实施选项可单独地或以各种组合实施。
在本发明的上下文初始化技术的一些实例中,如果熵解码单元70确定cabac_init_present_flag经启用,那么熵解码单元70可确定包含于“先前已解码图片”中的切片应具有与当前编码切片相同的类型。换句话说,在此实例中,如果cabac_init_present_flag经启用,那么先前已解码图片的定义取决于匹配切片类型。另外,从解码观点,传信的cabac_init_flag根据此实施并不予以考虑。在一些情况下,替代地,熵解码单元70可首先基于cabac_init_flag及“先前已解码图片”的选择而修改当前切片的切片类型。
下文描述本发明的上下文初始化技术的额外实例细节。根据一些实施方案,熵解码单元70关于帧内随机存取图片(IRAP)而可能不应用本发明的基于继承的上下文初始化技术。举例来说,关于三种类型IRAP即瞬时解码再新(IDR)图片、清洁随机存取(CRA)图片及断链存取(BLA)图片中的任一个,熵解码单元70可不实施基于继承的上下文初始化技术。
在基于先前已译码信息的基于继承的上下文初始化的一个实例中,熵解码单元70可通过一个切片解码一个图片。在此实例中,熵解码单元70可应用以下规则中的一或多个来导出上下文模型的初始化状态。第一规则为,先前已解码图片的切片具有与当前解码切片的切片类型相同的切片类型。替代地或另外,初始化切片量化参数(QP)与用于对当前解码切片译码的切片QP相同。在一些情况下,熵解码单元70可记录通过先前经解码图片中的预定义地址解码一个切片之后的状态信息(例如,状态),且使用所记录状态信息作为用于当前解码切片的初始化状态信息。
在一个实例中,“一个块”表示最大译码单元(LCU)。举例来说,LCU大小(尺寸)可由“N×N”指明,图片宽度由“W”指明,且图片高度由“H”指明。一个LCU行内LCU的数目可由PicWInCtbsY指明,且等于顶值函数Ceil(W÷N)的输出。通过PicHInCtbsY指明的图片中LCU行的数目等于顶值函数Ceil(H÷N)的输出。一般来说,函数Ceil(x)传回大于或等于x的最小整数。另外,以LCU为单位测量的图片的宽度及以LCU测量的图片的高度分别由使用上述顶值函数获得的PicWInCtbsY及PicHInCtbsY值表示。在一个实例中,LCU的地址根据以下方程式来界定:
TargetCUAddr=(PicWInCtbsY*PicHInCtbsY)/2+PicWInCtbsY/2
此外,当TargetCUAddr等于或大于(PicWInCtbsY*PicHInCtbsY)的值时,熵解码单元70可重设,将TargetCUAddr重设为(PicWInCtbsY*PicHInCtbsY-1)的值。举例来说,TargetCUAddr在PicHInCtbsY等于1的状况下等于或超出以上值。另外,(PicWInCtbsY*PicHInCtbsY-1)的值对应于一个图片中的最后LCU。
此外,在一些情况下,熵解码单元70可不将上文描述的基于规则的上下文初始化技术应用于在显示次序上在新的经帧内译码图片之后的前一或多个图片。熵解码单元70可不应用基于规则的上下文初始化的实例为熵解码单元70第一次遭遇新切片类型或新QP(例如,新切片类型或新QP已出现)的实例。举例来说,熵解码单元70可减轻或潜在地避免与随机存取有关的问题。此技术的实例展示于图9中,在所述实例中,具有从28到35的图片次序计数(POC)值的图片的解码次序如下:32,28,…30,29,31,40,36,34,33,35。
依据显示次序,具有等于40的POC值的图片为在具有等于32的POC值的I图片之后解码的第一图片。尽管具有24的POC值的图片具有与具有等于40的POC的图片相同的QP,且两个共享相同切片类型,但熵解码单元70可不使用具有等于24的POC的图片的经译码信息来预测具有等于40的POC值的图片。类似地,熵解码单元70可不使用关于等于31的POC的图片解码的信息而重建构具有等于33的POC的图片。然而,熵解码单元70可使用具有等于33的POC的图片的经译码信息而重建构具有等于35的POC的图片,此是因为两个图片在I图片之后(在显示次序上)。
在使用先前经解码图片的重建构不被允许、禁用或以其它方式不可用于熵解码单元70的情况下,熵解码单元70可应用如HEVC中定义的上下文初始化技术。如上文所描述,图6的视频解码器30表示视频解码装置的实例,所述视频解码装置经配置以单独或以任何组合执行增强型CABAC的本发明的各种技术中的任一项。
图7为实例熵解码单元70的框图,所述实例熵解码单元可经配置以执行根据本发明的技术的CABAC。图7的熵解码单元70为图6的熵解码单元70的一个实例实施。在各种实例中,熵解码单元70以与图5中所描述的熵解码单元70的方式互逆的方式执行CABAC。将来自位流218的经译码位输入到熵解码单元70中。基于经译码位是使用旁路模式抑或常规模式经熵译码而将其馈入到上下文建模器220或旁路译码引擎222。如果经译码位以旁路模式译码,那么旁路解码引擎将使用哥伦布-莱斯或指数哥伦布解码(例如)以检索非二进制语法元素的二进制值语法元素或二进位。
如果经译码位以常规模式译码,那么上下文建模器220可确定经译码位的概率模型及常规解码引擎224可解码所述经译码位以产生非二进制值语法元素的二进位(或在二进制值的情况下为语法元素)。在通过上下文建模器220确定上下文模型及概率状态σ之后,常规解码引擎224对二进位值执行BAC。
图5为实例熵解码单元70的框图,所述实例熵解码单元可经配置以根据本发明的技术执行CABAC。将语法元素118输入到熵解码单元70中。如果语法元素已为二进制值语法元素(例如,仅具有值0及1的旗标或其它语法元素),那么可跳过二进制化步骤。如果语法元素为非二进制值语法元素(例如,可具有除1或0以外的值的语法元素),那么通过二进制化器120对非二进制值语法元素进行二进制化。二进制化器120执行非二进制值语法元素到二进制决策序列的映射。这些二进制决策通常被称作“二进位”。举例来说,对于变换系数级别,可将级别的值分解为连续二进位,每一二进位指示系数级别的绝对值是否大于某一值。举例来说,二进位0(有时被称作有效旗标)指示变换系数级别的绝对值是否大于0。二进位1指示变换系数级别的绝对值是否大于1,等等。可针对每一非二进制值语法元素产生唯一映射。
由二进制化器120产生的每一二进位馈入到熵编码单元56的二进制算术译码侧。即,对于预定非二进制值语法元素集合,每一二进位类型(例如,二进位0)在下一二进位类型(例如,二进位1)之前经译码。可以常规模式或旁路模式执行译码。在旁路模式中,旁路译码引擎126使用固定概率模型(例如,使用哥伦布-莱斯或指数哥伦布译码)执行算术译码。旁路模式通常用于更可预测语法元素。
以常规模式进行译码涉及执行CABAC。在给定先前经解码二进位的值的情况下,在可重建构二进位的值的概率之处,常规模式CABAC用于对二进位值译码。由上下文建模器220确定为LPS的二进位的概率。上下文建模器220针对上下文模型输出二进位值及概率状态(例如,概率状态σ,包含LPS的值及LPS出现的概率)。上下文模型可为针对一连串二进位的初始上下文模型,或可基于先前重建构的二进位的值来确定。如上文所述,上下文建模器220可基于所接收二进位为MPS抑或LPS而更新状态。在通过上下文建模器220确定上下文模型及概率状态σ之后,常规解码引擎224对二进位值执行BAC。
上下文建模器220可实施本发明的技术而以并行化方式执行上下文建模。根据本发明的各种方面,上下文建模器220可使用一或多个先前已解码变换系数的第i二进位的值来执行针对变换系数的第i二进位的上下文建模。以此方式,当前变换系数的第i二进位的上下文建模取决于上下文建模器220已经选择上下文针对的一或多个变换系数的对应第i二进位的值。
通过使用先前已解码变换的第i二进位的值执行当前变换系数的二进位的上下文建模,上下文建模器220可实施本发明的技术以提供对现有CABAC译码装置的一或多个潜在改善。作为此益处的实例,上下文建模器220可通过实施本发明的技术来改善上下文建模操作的并行化。举例来说,上下文建模器220可并行地执行当前经解码变换系数的多个二进位的上下文建模。作为一个实例,如果上下文建模器220确定对应于多个二进位的二进位值可从先前已解码变换系数获得,那么上下文建模器220可至少部分并行化当前经解码变换系数的二进位的上下文建模操作。
上下文建模器220可根据多遍次解码方案执行本发明的并行化上下文建模。更具体来说,多遍次解码方案指如下解码技术:通过所述解码技术,熵解码单元70d将分离线程指派给每一特定二进位(例如,针对第一二进位线程1,针对第二二进位指派线程2等)。因此,根据多遍次译码,所有bin0例项可独立于按顺序解码的bin1例项按顺序进行解码,bin0例项及bin1例项均独立于按顺序解码的bin2例项进行解码,等等。在一些实例中,上下文建模器220可关于单一块的变换单元执行多遍次解码。此外,对于根据常规模式解码的二进位,上下文建模器220可以多遍次执行上下文选择。每一遍次可是关于所有变换系数的单一对应二进位。换句话说,在每一遍次期间,上下文建模器220并不利用与其它遍次相关的信息。举例来说,上下文建模器220在第一遍次中可选择一个变换单元/CG内的所有变换系数的第一二进位的上下文。在此实例中,在第二遍次中,上下文建模器220可在需要时选择一个变换单元/CG内所有变换系数的第二二进位的上下文,等等。
在一个实例使用状况下,上下文建模器220可使用先前已译码相邻变换系数的bin0的值来执行当前译码变换系数的bin0的上下文建模,使用先前已译码相邻变换系数的bin1的值来执行当前译码变换系数的bin1的上下文建模,等等。使用可用于先前已译码变换系数的任何二进位值,上下文建模器220可并行地执行当前译码变换系数的多个二进位的上下文建模。在上文所描述的使用状况情境下,如果bin0及bin1都从先前已译码相邻变换系数可获得,那么上下文建模器220可使当前经译码变换系数的bin0及bin1的上下文建模并行化。以此方式,上下文建模器220可实施本发明的技术以在如HEVC中所描述的多遍次解码的原则内执行CABAC,同时通过启用且潜在地采用上下文建模操作的并行化而改善当前变换系数的二进位的上下文选择。
应了解,上下文建模器220可但可能不必要并行地执行所有这些二进位的整个上下文建模。更具体来说,上下文建模器220可同时执行多个二进位的上下文建模的一些部分。以此方式,上下文建模器220可实施本发明的技术以利用多核心处理技术及/或多个处理器以改善当前经译码变换系数的上下文建模操作。
通过在单一遍次中解码不同变换系数的对应二进位,上下文建模器220可提供优于现有多遍次CABAC技术的一或多个优点。举例来说,通过在单一遍次中解码多个变换系数的对应二进位(例如,相应bin0),上下文建模器220可避开对在二进位转变处频繁地存储并检索新上下文模型的需要。确切来说,上下文建模器220可越过给定遍次使用单一上下文模型,此是因为遍次以越过多个变换系数的对应二进位(例如,相应bin0)为目标。以此方式,上下文建模器220可实施本发明的并行化上下文选择技术以减轻或潜在地消除起因于频繁上下文切换的时间延迟及资源搅拌。对比来说,现有多遍次译码因为解码第一变换系数的bin0、bin1、bin2等且接着解码第二变换系数的bin0、bin1、bin2等,云云而将要求频繁的上下文模型保存及检索操作。
举例来说,上下文建模器220可产生或以其它方式存取一或多个预定义模板以用于本文中所描述的第i二进位上下文建模功能性。上下文建模器220可用于当前译码变换系数的第i二进位的上下文建模的预定义模板的一个非限制性实例说明于图10中。例如图10的模板140的预定义模板定义8×8变换块的对角线扫描次序,其中“L”指明最后有效扫描位置,“x”指明当前扫描位置,且“xi”指明由本地模板140覆盖的相邻扫描位置。关于xi,“i”的值范围为零到4,且范围约束表达为i∈[0,4]。根据本发明的一或多个方面,上下文建模器220可将位于本地模板140中的变换系数的第i二进位用于当前经解码的变换系数的对应第i二进位的上下文建模。根据一些实施方案,上下文建模器220可使用多个模板以执行本发明的并行化二进位上下文建模。在一个实例中,模板大小及/或形状取决于以下准则中的一或多个:(i)变换单元的大小;(ii)模式;或(iii)当前变换系数在变换单元或系数群组(CG)内的位置。
通过使用一或多个预定义模板来遍历二进位值的先前已译码TU,上下文建模器220可实施本发明的技术以提供优于现有CABAC技术的一或多个增强。举例来说,通过使用例如图10的本地模板140的TU遍历模板,上下文建模器220可避开对关于不同解码遍次分离地确定遍历方案的需要。因此,通过实施本发明的基于模板的并行化上下文选择技术,上下文建模器220可关于二进位解码增加吞吐量,同时维持图片准确度。
根据另一实例实施方案,上下文建模器220可仅将本发明的并行化上下文建模技术应用到当前译码变换系数之前“K”个二进位,其中“K”小于M,且其中“M”指明可用二进位索引的上限。上下文建模器220可使用另一上下文建模技术或根据旁路模式来解码经译码的剩余(M+1-K)个二进位。
根据另一实例实施方案,上下文建模器220可定义先前已译码变换系数的全域为当前变换单元或CG内在解码次序上在当前解码的变换系数之前的“N”个连续变换系数。替代地,上下文建模器220可确定N为变量。在一个实例中,上下文建模器220可确定,N的值取决于当前变换单元中当前经解码变换系数的相对位置。在另一实例中,上下文建模器220可确定N值取决于变换单元大小。
在另一实施方案中,上下文建模器220可定义先前经解码变换系数的全域为定位于当前变换单元或CG的当前位置的邻域处的那些变换系数。在一个实例中,当前位置的邻域受约束于直接邻近于当前位置的那些位置,或直接邻近于当前位置或与当前位置分离的位置。在另一实例中,邻域也可包含这些位置,但扩展以包含一或多个空间相邻变换单元中的位置。
根据本发明的各种方面,上下文建模器220可依据与一或多个先前已译码变换系数相关联的值而定义二进位的上下文索引。举例来说,上下文建模器220可使用产生先前已译码变换系数的所有第i二进位值的总和的函数。更具体来说,在此实例中,上下文建模器220可执行TU/CG的所有先前经解码变换系数的可用第i二进位值的值的求和。又,上下文建模器220可使用所得总和在当前经译码变换系数的第i二进位的上下文建模期间作为上下文索引(CtIdx)。
根据本发明的一些方面,上下文建模器220在不同大小的变换单元中对于相同遍次可使上下文索引导出规则保持不改变。然而,上下文建模器220可将偏移应用到上下文索引以将上下文建模用于当前译码二进位。举例来说,上下文建模器220可确定两个不同变换大小具有两个上下文模型集合。又,上下文建模器220可定义偏移作为一个此集合中的上下文模型的数目。举例来说,如果上下文建模器220确定TU大小小于具有预定义尺寸M×M的正方形,那么上下文建模器220可确定,每一此TU(小于M×M)的TU大小具有其自身的相应上下文模型集合。相反,熵解码单元70可确定具有等于或大于M×M的大小的所有TU共享相同上下文模型集合。
在各种使用状况情境下,上下文建模器220可设定M的值为16。更具体来说,在这些实例中,如果上下文建模器220确定当前译码TU的大小小于16×16正方形,那么上下文建模器220可确定当前译码TU与对应于TU的特定大小的上下文模型集合相关联。相反,如果熵解码单元70确定当前经译码TU具有等于或大于16×16的大小,那么上下文建模器220可确定当前经译码TU与具有等于或大于16×16的大小的所有其它TU共享相同上下文模型集合。在一些实例中,上下文建模器220可将仅基于TU大小的上下文选择仅应用到亮度块。
根据本发明的一些方面,上下文建模器220可基于变换大小来确定系数群组(CG)大小。换句话说,根据这些方面,CG大小取决于变换大小。替代地或另外,上下文建模器220可基于译码模式来确定CG大小。在这些实例中,上下文建模器220可确定CG大小为取决于变换大小及/或译码模式中的一个或两个。替代地或另外,上下文建模器220可基于变换矩阵来确定CG大小。
根据本发明的一些方面,上下文建模器220也可应用经并行化上下文建模技术,所述并行化上下文建模技术也可应用到使用变换旁路模式(也被称作“变换跨越模式”)解码的块。变换旁路模式指如下译码模式:视频解码器30可根据所述译码模式跳过解码的反变换及反量化操作,例如在位流218经无损地编码的状况下。因此,根据本发明的某些方面,上下文建模器220可扩展并行化上下文选择技术以在位流218经无损地编码的例项中提供潜在所得优点。
图8为说明基于表的二进制算术译码的实例过程150的流程图。即,图8说明二进制算术编码过程,所述过程包含使用常规译码模式的单一二进位值(binVal)的概率估计的更新过程(在针对步骤158及160的灰色加阴影方框中)。详细来说,图8的过程150说明使用常规译码模式的用于给定二进位值binVal的二进制算术编码过程。算术编码引擎的内部状态由两个量来表征:当前译码区间的当前区间范围R及基点(较低端点)L。然而,存储这些暂存器于CABAC引擎中(以常规模式及旁路模式)需要的精度可被分别减小高达9个位及10个位。在概率状态索引δ及MPS的值(δ%2)情况下在上下文中观测到的给定二进制值binVal的编码以四个基本步骤的序列执行如下。
过程150可开始于步骤处152处,在所述步骤处,视频译码装置根据给定概率估计再分当前区间。此区间再分过程涉及如过程150的步骤152处所展示的三个基本操作。首先,当前区间范围R使用整个范围28≤R≤29到四个单元的相等分割由经量化值Q(R)来近似。但并非在CABAC引擎中明确地使用对应代表性经量化范围值Q0、Q1、Q2及Q3,而是仅由其量化器索引ρ来解决,其可通过移位及位遮蔽运算的组合来有效地计算,即:
ρ=(R>>6)&3 (4.5)接着,将此索引ρ及概率状态索引δ用作2-D表TabRangeLPS中的条目,以确定(近似)LPS相关子区间范围RLPS,如图8中所展示。此处,表TabRangeLPS在8位精度下对于0≤(δ>>1)≤63及0≤ρ≤3含有pσ·Qρ的所有64×4个预计算乘积值。在给定MPS的双子区间范围情况下,在过程150的决策块94中选择对应于给定二进位值binVal的子区间。如果binVal等于MPS值(决策块154的否分支),那么视频译码装置可选择下部子区间,使得L不改变。否则(决策块154的是分支),视频译码装置可选择具有等于RLPS的范围的上部子区间(156)。
在过程90的步骤158及160处,概率状态的更新如ITU-T H.264,§1.2.2.2中所描述执行(使用灰色加阴影块所说明)。步骤162由暂存器L及R的再正规化(图1中的“RenormE”方框)组成。步骤164表示过程150的结束。
如下定义2-D表TabRangeLPS:
TabRangeLPS[64][4]=
{
{128,176,208,240},
{128,167,197,227},
{128,158,187,216},
{123,150,178,205},
{116,142,169,195},
{111,135,160,185},
{105,128,152,175},
{100,122,144,166},
{95,116,137,158},
{90,110,130,150},
{85,104,123,142},
{81,99,117,135},
{77,94,111,128},
{73,89,105,122},
{69,85,100,116},
{66,80,95,110},
{62,76,90,104},
{59,72,86,99},
{56,69,81,94},
{53,65,77,89},
{51,62,73,85},
{48,59,69,80},
{46,56,66,76},
{43,53,63,72},
{41,50,59,69},
{39,48,56,65},
{37,45,54,62},
{35,43,51,59},
{33,41,48,56},
{32,39,46,53},
{30,37,43,50},
{29,35,41,48},
{27,33,39,45},
{26,31,37,43},
{24,30,35,41},
{23,28,33,39},
{22,27,32,37},
{21,26,30,35},
{20,24,29,33},
{19,23,27,31},
{18,22,26,30},
{17,21,25,28},
{16,20,23,27},
{15,19,22,25},
{14,18,21,24},
{14,17,20,23},
{13,16,19,22},
{12,15,18,21},
{12,14,17,20},
{11,14,16,19},
{11,13,15,18},
{10,12,15,17},
{10,12,14,16},
{9,11,13,15},
{9,11,12,14},
{8,10,12,14},
{8,9,11,13},
{7,9,11,12},
{7,9,10,12},
{7,8,10,11},
{6,8,9,11},
{6,7,9,10},
{6,7,8,9},
{2,2,2,2}
};
解码过程描述于HEVC规范的章节9.3.4.3.2.2中。
图9为说明基于残余四分树结构的变换方案的概念图。为了调适残余块的各种特性,使用残余四分树(RQT)的变换译码结构应用于HEVC中。残余四分树结构描述如下。额外细节在www.hhi.fraunhofer.de/fields-of-competence/image-processing/researchgroups/image-video-coding/hevc-high-efficiency-video-coding/transform-coding-using-the-residual-quadtree-rqt.html处描述并可获得。
根据说明于图9中的残余四分树结构,每一图片经划分成译码树单元(CTU)。图片的CTU对于特定贴块或切片以光栅扫描次序译码(例如,经编码及/或解码)。CTU为正方形块且表示四分树或译码树的根部。CTU大小范围可为8×8到64×64,其中宽度及长度以亮度样本为单位来表达。64×64尺寸通常由HEVC顺应性译码装置使用。每一CTU可进一步分裂成被称作译码单元(CU)的更小正方形块。在CTU经分裂成CU(有时递归地)之后,每一CU经进一步划分成预测单元(PU)及变换单元(TU)。PU及CU也具有方块外观形状。CU到TU的分割基于四分树方法经递归地进行。因此,每一CU的残余信号使用树状结构即残余四分树(RQT)来译码。RQT允许从4×4直到32×32的TU大小(以亮度样本为单位表达为正方形大小)。
图9展示CU包含10个TU的实例。TU通过字母a到j标识出,且每一TU标记在对应块分割内部说明。RQT的每一节点为变换单元(TU)。个别TU以深度优先树遍历次序进行处理。深度优先树遍历关于图9的结果根据字母次序说明于图9中。更具体来说,图9说明深度优先遍历情况下递归Z扫描的实例。说明于图9中的四分树方法启用变换的调适以使残余信号的空间频率特性发生变化。
在许多实例中,具有更大空间支持的更大变换块大小提供更佳频率分辨率。然而,具有更小空间支持的更小变换块大小提供更佳空间分辨率。两个分辨率(空间分辨率及频率分辨率)之间的折衷借助于编码器模式决策来选择。举例来说,编码器模式决策可基于速率-失真(RD)最佳化技术。速率-失真最佳化技术计算译码位与重建构失真的经加权总和。举例来说,模式选择单元40可使模式选择决策基于每一译码模式的速率-失真成本。在一些实例中,可使每一可用模式的速率-失真成本相关于与每一译码模式相关联的特定RQT分裂结构。在基于RD成本的决策方案中,模式选择单元可选择具有最低(或最小)速率-失真成本的译码模式作为最佳可用模式。
三个参数定义于RQT分割方案中。参数为:树的最大深度、最小所允许变换大小及最大所允许变换大小。根据HEVC的一些方面,最小及最大变换大小可在从4×4个样本到32×32个样本的范围内发生变化。从4×4个样本到32×32个样本的范围对应于上文所论述的所支持块变换。RQT的最大所允许深度限制或约束RQT分割方案可产生的TU的数目。最大深度等于零意谓:如果每一所包含TU达至最大允许变换大小(例如,32×32),那么不可更进一步分裂CTU。
上文所论述的所有参数互动(例如,经协同地使用),且影响RQT结构。下文所描述为如下使用状况情境:根CTU大小为64×64,最大深度等于零,且最大变换大小等于32×32。在此状况下,视频译码装置将需要分割CUT至少一次。如果CTU并未被分割,那么RQT按第三参数将产生64×64TU,其不被准许。视频编码器20可以序列参数集(SPS)级别包含RQT参数(包含但不限于最大深度以及最小变换大小及最大变换大小)于位流中。视频编码器20可关于帧内译码及帧间译码CU针对RQT深度指定并传信不同值。又,视频解码器30可从所接收位流恢复RQT参数,并使用在经传信参数中指定的约束而执行RQT分割。
视频编码器20及/或视频解码器30可将四分树变换应用于帧内残余块及帧间残余块。在许多实例中,视频编码器20及/或视频解码器30可应用具有与应用于残余块的当前残余四分树分区相同的大小的DCT-II变换。然而,如果当前残余四分树块为4×4且由帧内预测产生,那么视频编码器20及/或视频解码器30可应用上述4×4DST-VII变换。在HEVC中,更大的大小变换(例如,64×64变换)主要归因于其受限的益处及对于相对较小分辨率视频的相对高的复杂度不采用。
图10为描绘视频译码装置可关于本文中所描述的上下文建模技术使用的实例模板(本地模板140)的概念图。当前变换系数标记为“X”且五个空间相邻变换系数标记为“Xi”(其中“i”表示从0到4的整数)。如果一组条件中的任一条件被满足,那么视频译码装置可将Xi标记为不可用,且不用于上下文索引导出过程中。所述组条件中的第一条件为Xi的位置及当前变换系数X并不位于同一变换单元中。所述组条件中的第二条件为Xi的位置位于图片的水平边界或垂直边界外部。所述组条件中的第三条件为尚未对变换系数Xi译码。在多遍次译码的状况下,只要译码了同一译码遍次中的二进位,二进位便可用于上下文索引导出过程中。因此,从解码观点,不必要的是充分解码一个变换系数。
图11为说明基于系数群组的实例系数扫描的概念图。无论TU大小,通过非重叠系数群组(CG)来译码变换单元的残余部分,每一系数群组含有TU的4×4块的系数。举例来说,32×32TU总共具有64个CG,且16×16TU总共具有16个CG。根据某特定预定义扫描次序可对TU内部的CG译码。当对每一CG译码时,根据用于4×4块的某预定义扫描次序扫描且译码当前CG内部的系数。图11说明用于含有4个CG的8×8TU的系数扫描。
将语法元素表定义如下:
7.3.8.11残余译码语法
Figure GDA0002261589730000631
Figure GDA0002261589730000641
Figure GDA0002261589730000651
对于每一色彩分量,视频编码器20可首先传信一个旗标以指示当前TU是否具有至少一个非零系数。如果在当前TU中存在至少一个非零系数,那么视频编码器20可通过相对于变换单元的左上角的座标在TU中以系数扫描次序明确地编码最后有效系数的位置。座标的垂直或水平分量由其前缀及后缀表示,其中前缀通过经截断的莱斯(TR)二进制化,且后缀通过固定长度二进制化。
语义:
last_sig_coeff_x_prefix指定变换块内扫描次序中的最后有效系数的列位置的前缀。last_sig_coeff_x_prefix的值应在0到(log2TrafoSize<<1)-1(包含)的范围内。
last_sig_coeff_y_prefix指定变换块内扫描次序中的最后有效系数的行位置的前缀。last_sig_coeff_y_prefix的值应在0到(log2TrafoSize<<1)-1(包含)的范围内。
last_sig_coeff_x_suffix指定变换块内扫描次序中的最后有效系数的列位置之后缀。last_sig_coeff_x_suffix的值应在0到(1<<((last_sig_coeff_x_prefix>>1)-1))-1(包含)的范围内。
变换块内扫描次序中的最末有效系数的列位置LastSignificantCoeffX经导出如下:
-如果不存在last_sig_coeff_x_suffix,那么应用以下情形:
LastSignificantCoeffX=last_sig_coeff_x_prefix
-否则,(存在last_sig_coeff_x_suffix),应用以下情形:
LastSignificantCoeffX=(1<<((last_sig_coeff_x_prefix>>1)-1))*
(2+(last_sig_coeff_x_prefix&1))+last_sig_coeff_x_suffix
last_sig_coeff_y_suffix指定变换块内扫描次序中的最后有效系数的行位置的后缀。last_sig_coeff_y_suffix的值应在0到(1<<((last_sig_coeff_y_prefix>>1)-1))-1(包含)的范围内。
变换块内扫描次序中的最后有效系数的行位置LastSignificantCoeffY经导出如下:
-如果不存在last_sig_coeff_y_suffix,那么应用以下情形:
LastSignificantCoeffY=last_sig_coeff_y_prefix
-否则(存在last_sig_coeff_y_suffix),应用以下情形:
LastSignificantCoeffY=(1<<((last_sig_coeff_y_prefix>>1)-1))*
(2+(last_sig_coeff_y_prefix&1))+last_sig_coeff_y_suffix
当scanIdx等于2时,座标被调换如下:
(LastSignificantCoeffX,LastSignificantCoeffY)=Swap(LastSignificantCoeffX,LastSignificantCoeffY)
通过经译码的此位置且又CG的系数扫描次序,进一步传信一个旗标以用于除最后CG(以扫描次序)外的CG,所述CG指示其是否含有非零系数。
CG旗标的上下文建模。当译码一个CG是否具有非零系数(即,CG旗标(HEVC规范中的coded_sub_block_flag)时,利用相邻CG的信息以建置上下文。为了为更特定的,将用于对CG旗标译码的上下文选择定义如下:
(右侧CG可用&&右侧CG的旗标等于1)||(下方CG可用&&下方CG的旗标等于1)此处,右下CG为接近于当前CG的两个相邻CG。举例来说,在图11中,当编码左上4×4块时,视频编码器20可定义右侧CG为右上4×4块且下方CG经定义为左下4×4块。色度及亮度使用上下文模型的不同集合,但通过同一规则选择所述上下文模型的一个。上下文索引增量的导出的细节可发现于HEVC的9.3.4.2.4中。
一个CG内的变换系数译码:对于可含有非零系数的那些CG,视频编码器20可根据预定义4×4系数扫描次序进一步编码(且视频解码器30可进一步解码)针对每一系数的有效旗标(significant_flag)、系数的绝对值(包含coeff_abs_level_greater1_flag、coeff_abs_level_greater2_flag及coeff_abs_level_remaining)及正负号信息(coeff_sign_flag)。变换系数层级的译码(例如,编码及/或解码)经分离成多个扫描遍次。
第一二进位译码的第一遍次:在此遍次中,除可导出特定变换系数等于0以外,对一个CG内的每一位置处的变换系数的所有第一二进位(或二进位索引0,bin0)译码。变量sigCtx取决于相对于当前TU的左上位置的当前方位、色彩分量索引cIdx、变换块大小及语法元素coded_sub_block_flag的先前经解码二进位。取决于TU大小应用不同规则。上下文索引增量的选择的实例细节定义于HEVC的9.3.4.2.5中。
第二二进位译码的第二遍次:在此遍次中应用coeff_abs_level_greater1_flags的译码。上下文建模取决于当前子块内的色彩分量索引、当前子块扫描索引及当前系数扫描索引。上下文索引增量的选择的实例细节定义于HEVC的9.3.4.2.6中。
第三二进位译码的第三遍次:在此遍次中应用coeff_abs_level_greater2_flags的译码。上下文建模类似于coeff_abs_level_greater1_flags所使用的上下文建模。上下文索引增量的选择的实例细节定义于HEVC的9.3.4.2.7中。为改善吞吐量,第二及第三遍次可能不会处理CG中的所有系数。以常规模式对CG中的前八个coeff_abs_level_greater1_flag译码。此后,维持所述值,从而在第五遍次中通过语法coeff_abs_level_remaining以旁路模式对所述值译码。类似地,仅对CG中具有大于1的量值的第一系数的coeff_abs_level_greater2_flag译码。CG的具有大于1的量值的剩余系数使用coeff_abs_level_remaining对所述值译码。此方法将系数级别的常规二进位的数目限制为每CG最多9个:8个用于coeff_abs_level_greater1_flag且1个用于coeff_abs_level_greater2_flag。
正负号信息的第四遍次:在HEVC的一些实例中,在第四扫描遍次中以旁路模式对每一非零系数的正负号译码。对于每一CG,且取决于准则,当使用正负号数据隐藏(SDH)时,简单地省略最后非零系数(以反向扫描次序)的正负号的编码。确切来说,使用预定义定则将正负号值嵌入于CG的级别的总和的同位检查中:偶数对应于“+”且奇数对应于“-”。使用SDH的准则为CG的第一非零系数与最后非零系数之间的在扫描次序上的距离。如果此距离等于或大于四(4),那么使用SDH。由于值四(4)对HEVC测试序列提供最大增益,故选择所述值。
剩余二进位的最后遍次:在另一扫描遍次中译码剩余二进位。将系数的baseLevel定义为:
baseLevel=significant_flag+coeff_abs_level_greater1_flag+
coeff_abs_level_greater2_flag
其中旗标具有值0或1,且如果不存在,那么推断为0。接着,系数的绝对值定义如下:
absCoeffLevel=baseLevel+coeff_abs_level_remaining。
在每一CG的开始处将莱斯参数设定为0,且其取决于参数的先前值及当前绝对层级经条件性地更新如下:
如果absCoeffLevel>3×2m,那么m=min(4,m+1)。
可以旁路模式对语法元素coeff_abs_level_remaining译码。另外,HEVC的一些实例针对小值使用哥伦布-莱斯码且针对较大值切换到指数哥伦布码。码之间的转变点通常在一元码长度等于4时。参数更新过程在分布中观测到较大值时允许二进制化适应于系数统计。
inter_pred_idc的上下文建模。inter_pred_idc指定list0、list1或双向预测是否用于当前预测单元。语法元素具有高达两个二进位,所述二进位两个均经CABAC上下文译码。将二进制化二进位串定义如下:
Figure GDA0002261589730000671
Figure GDA0002261589730000681
其中nPbW及nPbH分别表示当前亮度预测块的宽度及高度。
对于每一经帧间译码切片(例如,P切片或B切片),上下文选择基于以下规则:
如果求和(nPbW+nPbH)不等12,那么使用四个上下文对第一二进位译码且通过一个上下文对第二二进位译码。第一二进位的上下文选择是根据当前CU深度。在HEVC中,CU深度范围为0到3(包含)。0到3的包含性范围可表达为[0,3]。
在JCTVC-H0228(T.阮栎(Nguyen)、D.马普、T.韦根的“非小区:针对变换系数译码的所提议清除(Non-CE11:Proposed Cleanup for Transform Coefficient Coding)”,JCTVC-H0228,第八次会议:美国圣何塞,2012年2月1日到10日)中,提议一个扫描遍次译码。根据所提议的一个扫描遍次,关于变换系数级别的所有信息在单一步骤而非如HEVC中的多遍次译码中经译码。对于每一扫描位置,由本地模板覆盖的相邻位置经评估,如同在HEVC的当前设计中针对bin0(也被称作significant_coeff_flag或coeff_abs_greater0_flag的二进位串的第一二进位)所进行。从此评估,上下文模型及控制剩余绝对值的自适应二进制化的莱斯参数被导出。为了为更特定的,用于bin0、bin1、bin2及莱斯参数的上下文模型皆基于位于本地模板中的变换系数量值而选择(bin1及bin2也被称作coeff_abs_greater1_flag及coeff_abs_greater2_flag)。
本地模板140的实例在对角线扫描情况下针对8×8变换块给出于图10中,其中L指明最后有效扫描位置,x指明当前扫描位置,且xi(其中i∈[0,4])指明由本地模板覆盖的相邻扫描位置。
指示相邻者的绝对总和的sum_absolute_level及指示每一级别的绝对总和减去1的sum_absolute_levelMinus1用以导出针对bin0、bin1、bin2的上下文索引并确定莱斯参数r。
sum_absolute_level=∑|xi|
sum_absolute_levelMinus1=∑δj(xi) (5)
其中
Figure GDA0002261589730000682
对于bin0,来自本地模板评估的所得sum_absolute_level直接映射到具有为5的截断值的上下文模型索引。相同规则通过使用sum_absolute_levelMinus1及为4的截断值而应用于计算bin1及bin2的上下文模型索引。此导出规则在以下内容中概述,其中c0表示bin0的上下文模型索引,c1表示bin1的上下文模型索引,且c2表示bin2的上下文模型索引。
Figure GDA0002261589730000691
图12为说明二进位导出的实例的概念图。bin1及bin2的导出规则为相同的。接着,对于亮度分量,计算针对亮度变换级别的bin0、bin1及bin2的额外偏移。额外上下文索引(即,偏移)取决于当前扫描位置的方位。图12说明此过程的实例。详细来说,图12展示在针对亮度bin0的一个TU(a)、针对亮度bin1及bin2(并非向前扫描次序上的最后系数)的TU(b)内的不同区的上下文索引范围。
简言之,整个概念以如下方程式概述,其中x指明当前扫描位置内的变换块内部的水平空间方位,y指明垂直空间方位,且cIdx指明具有0的当前平面类型代表亮度。另外,对于不同位置的上下文索引范围在图13中标记出。
c0=c0+f(x,y,6,2)+δk(f(x,y,6,5),cIdx)
c1=c1k(f(x,y,5,3),cIdx)+δk(f(x,y,5,10),cIdx)
c2=c2k(f(x,y,5,3),cIdx)+δk(f(x,y,5,10),cIdx) (7)
其中
Figure GDA0002261589730000692
Figure GDA0002261589730000693
如上文所展示,针对c1的公式与针对c2的公式相同。除针对bin1及bin2的相同上下文模型索引外,相同上下文模型用于bin1及bin2的译码。另外,对于译码次序上的第一扫描位置(即,最后有效扫描位置);分离上下文模型索引用于bin1及bin2。第一二进位索引(bin0)针对最后有效扫描位置而推断出。此分离上下文模型从不由上下文模型选择方案再次选择,且被指派为c1=0。上下文模型的总数在以下表中列表:
Figure GDA0002261589730000694
Figure GDA0002261589730000701
莱斯参数r导出如下。对于每一扫描位置,参数设定为0。接着,比较sum_absolute_levelMinus1与阈值集合tR={3,9,21}。换句话说,莱斯参数在sum_absolute_levelMinus1降低到第一区间中情况下为0,在sum_absolute_levelMinus1降低到第二区间中情况下为1,等等。莱斯参数r的导出概述如下:
Figure GDA0002261589730000702
其中x=sum_abslolute_levelMin1u。
图13为说明针对不同亮度二进位的在TU内的不同位置的上下文索引的范围的概念图。在图13的实例中,左侧的块说明针对亮度bin0的TU内不同区的上下文索引范围。右侧的块说明针对亮度bin1及bin2的TU内的不同区的上下文索引范围。特定位置使用图13的亮度二进位内的数字来调用,且不同区使用加阴影来区分。
在一或多个实例中,所描述的功能可以硬件、软件、固件或其任何组合来实施。如果以软件实施,那么所述功能可作为一或多个指令或代码而存储于计算机可读媒体上或经由计算机可读媒体进行发射,且通过基于硬件的处理单元执行。计算机可读媒体可包含计算机可读存储媒体,其对应于例如数据存储媒体的有形媒体或包含例如根据通信协议促进将计算机程序从一处传送到另一处的任何媒体的通信媒体。以此方式,计算机可读媒体大体可对应于(1)为非暂时性的有形计算机可读存储媒体,或(2)例如信号或载波的通信媒体。数据存储媒体可为可由一或多个计算机或一或多个处理器存取以检索用于实施本发明中所描述的技术的指令、代码及/或数据结构的任何可用媒体。计算机程序产品可包含计算机可读媒体。
图14说明视频译码装置或其各种组件可执行以实施本发明的上下文建模技术中的一或多个的实例过程300。虽然过程300可由多种装置执行,但过程300本文中关于视频解码器30描述。过程300可在视频解码器30对第一TU译码(例如,解码)时开始(302)。又,视频解码器30可开始对第二TU译码的第一遍次(304)。因此,第一TU表示关于第二TU的先前已译码块。
视频解码器30可使用第一TU的第i二进位以在译码的第一遍次内译码第二TU的所有第i二进位(306)。举例来说,视频解码器30可使用第一TU的bin0以在针对第二TU的多遍次解码过程的第一编次期间选择第二TU的所有变换系数的相应第i二进位的上下文索引。以此方式,视频解码器30可通过将先前已译码块的二进位用于完成当前译码的TU的所有变换系数的所有第i二进位的上下文选择来实施本发明的上下文建模技术从而改善并行化。
以此方式,视频解码器30表示视频译码装置的实例,所述视频译码装置包含经配置以存储视频数据的存储器,及一或多个处理器。所述处理器可经配置以针对当前变换系数的语法元素的值的多个二进位中的每一个,使用一或多个先前已译码变换系数的所述语法元素的值的相应对应二进位来确定上下文。为了确定所述上下文,所述一或多个处理器经配置以使用先前已译码变换系数的所述语法元素的值的对应第i二进位来确定所述当前变换系数的所述语法元素的所述值的第i二进位的上下文,其中“i”包括非负整数,且其中为了使用所述先前已译码变换系数的所述语法元素的所述值的所述对应第i二进位,所述一或多个处理器经配置以仅使用所述先前已译码变换系数的所述语法元素的所述值的所述第i二进位且不使用所述先前已译码变换系数的所述语法元素的所述值的其它二进位。所述处理器经进一步配置以使用所述所确定的上下文对所述当前变换系数的所述语法元素的所述值的所述第i二进位进行CABAC译码(例如,CABAC解码)。
在一些实例中,为了确定所述当前变换系数的所述语法元素的所述值的所述第i二进位的所述上下文,所述一或多个处理器经配置以使用模板来确定所述当前变换系数的所述语法元素的所述值的所述第i二进位的所述上下文,所述模板识别待用于对所述当前变换系数进行CABAC解码的一或多个相邻变换系数。在一些实例中,所述一或多个处理器经进一步配置以基于以下各项中的至少一项来确定所述模板的大小或形状中的至少一个:包含所述当前变换系数的变换单元的大小、与包含所述变换单元的译码单元相关联的译码模式、所述当前变换系数在包含所述当前变换系数的所述变换单元中的位置,或所述当前变换系数在包含所述当前变换系数的系数群组中的位置。在一些实例中,所述一或多个处理器经进一步配置以基于色彩分量信息来确定所述模板的大小或形状中的至少一个,所述色彩分量信息包含亮度分量信息或色度分量信息中的一个或两个。
在一些实例中,所述当前变换系数包含于变换单元中,其中所述变换单元的一些或所有二进位根据常规模式进行CABAC编码,且为了对所述当前变换系数的所述语法元素的所述值的所述第i二进位进行CABAC译码,所述一或多个处理器经配置以在第i译码遍次期间对所述当前变换系数的所述语法元素的所述值的所述第i二进位进行译码,在所述第i译码遍次期间,对所述变换单元的所有变换系数的所有对应第i二进位进行CABAC译码。在一些实例中,为了确定所述当前变换系数的所述语法元素的所述值的所述第i二进位的所述上下文,所述一或多个处理器经配置以使用所述先前已译码变换系数的函数来确定所述当前变换系数的所述语法元素的所述值的所述第i二进位的上下文索引。在一些实例中,所述先前已译码变换系数定位于模板中。在一些实例中,为了使用所述先前已译码变换系数的所述函数,所述一或多个处理器经配置以使用前“M”个先前已译码变换系数的所述函数,且其中“M”表示非负值。在一些实例中,所述函数包括求和函数,且先前已译码变换系数的所述语法元素的所述值的所述对应第i二进位包含于多个先前已译码变换系数的语法元素的值的多个对应第i二进位中。
在一些实例中,为了使用所述求和函数来确定所述当前变换系数的所述语法元素的所述值的所述第i二进位的所述上下文索引,所述一或多个处理器经配置以将所述当前变换系数的所述语法元素的所述值的所述第i二进位的所述上下文索引定义为所述多个所述先前已译码变换系数的所述语法元素的值的所述多个所述对应第i二进位的全部的总和。在一些实例中,所述一或多个处理器经进一步配置以截割所述求和函数的结果的结果以形成在预定义范围内的经截割总和。换句话说,所述一或多个处理器可执行方法,所述方法包含截割所述求和函数的所述结果以形成在预定义范围内的经截割总和。在一些实例中,为了确定所述当前变换系数的所述语法元素的所述值的所述第i二进位的所述上下文,所述一或多个处理器经配置以确定所述当前变换系数的所述语法元素的所述值的所述第i二进位的上下文索引且将偏移添加到所述所确定的上下文索引。在一些实例中,所述一或多个处理器经进一步配置以基于包含所述当前变换系数的变换单元的大小来确定所述偏移。
在一些实例中,所述一或多个处理器经进一步配置以确定所述变换单元是否在阈值大小内,且如果所述变换单元在所述阈值大小内,那么确定所述变换单元与上下文模型集合相关联,所述上下文模型集合由所述阈值大小内的所有变换单元共享。在一些实例中,所述阈值大小与16×16尺寸相关联。在一些实例中,所述所存储视频数据包括经编码视频数据,所述一或多个处理器经进一步配置以解码所述经编码视频数据的至少一部分以形成重建构的视频数据,且视频解码器30可包含装置、可为所述装置或可为所述装置的部分,所述装置包含经配置以显示所述重建构的视频数据的至少一部分的显示装置。在一些实例中,所述一或多个处理器经进一步配置以编码所述所存储的至少一部分,且所述先前已译码变换系数包括先前已编码变换系数。
图15为说明视频译码装置或其各种组件可执行以实施本发明的基于继承的上下文初始化技术中的一或多个的实例过程320的流程图。虽然过程320可由多种装置执行,但过程320在本文中是关于视频解码器30描述。过程320可在视频解码器30译码(例如,解码)第一图片(322)时开始。因此,第一图片表示关于视频解码器30可随后重建构的图片的先前已译码(例如,先前已解码)图片。又,视频解码器30可识别第一的块,从所述第一图片继承第二图片的当前切片的上下文信息(324)。因此,第二图片可表示“当前图片”,因为视频解码器30当前正解码第二图片,且当前切片可表示视频解码器30正解码的第二图片的特定切片。
视频解码器30可使用从第一图片继承的上下文信息来初始化当前切片的上下文信息(326)。举例来说,视频解码器30可存储所继承上下文信息的一或多个状态,且检索所存储状态以初始化当前切片的上下文。又,视频解码器30可使用初始化上下文信息对当前切片进行译码(328)。
以此方式,视频解码器30表示视频译码装置的实例,所述视频译码装置包含经配置以存储视频数据的存储器,及一或多个处理器。所述处理器经配置以通过继承译码所述所存储视频数据的先前已译码切片的先前已译码块之后的上下文信息作为当前图片的当前切片的初始化上下文信息来初始化所述当前图片的所述当前切片的上下文信息,且使用所述初始化上下文信息对所述当前切片的数据进行译码。在一些实例中,所述先前已译码块包含最大译码单元(LCU),其在所述先前已译码切片内的中心位置处或在与所述先前已译码切片相关联的先前已译码图片内的中心位置处。在一些实例中,所述当前切片包含单向预测切片(P切片),且所述先前已译码切片包含双向预测切片(B切片)。在一些实例中,所述当前切片包含双向预测切片(B切片),且所述先前已译码切片包含单向预测切片(P切片)。
在一些实例中,所述当前切片包含于所述当前图片的多个切片中,所述当前图片的上下文信息是继承自所述先前已译码图片,且所述处理器经进一步配置以通过继承译码所述LCU之后的所述上下文信息来初始化所述多个切片的全部的相应上下文信息,所述LCU在所述先前已译码切片内的所述中心位置处。在一些实例中,所述处理器经进一步配置以确定所述当前切片是否经帧间译码,且初始化所述当前图片的所述当前切片的所述上下文信息,所述处理器经配置以基于所述当前切片经帧间译码的确定而继承译码所述先前已译码块之后的所述上下文信息以作为所述当前图片的所述当前切片的所述初始化上下文信息。
在一些实例中,所述处理器经配置以确定所述先前已译码切片是否经帧间译码。在一些实例中,所述处理器经进一步配置以确定所述当前切片及所述先前已译码切片是否共享相同量化参数(QP),且初始化所述当前图片的所述当前切片的所述上下文信息,所述处理器经配置以基于所述当前切片及所述先前已译码切片共享相同QP的确定而继承译码所述先前已译码块之后的所述上下文信息以作为所述当前图片的所述当前切片的所述初始化上下文信息。在一些实例中,所述处理器经进一步配置以确定帧内随机存取图片(IRAP)按输出次序是否定位于所述当前图片与相关联于所述先前已译码切片的先前已译码图片之间。
在一些实例中,为了初始化所述当前图片的所述当前切片的所述上下文信息,所述处理器经配置以基于无IRAP按所述输出次序定位于所述当前图片与所述先前已译码图片之间的确定而继承所述先前已译码图片的所述先前已译码块的所述上下文信息以作为所述当前图片的所述当前切片的所述初始化上下文信息。在一些实例中,所述处理器经进一步配置以根据以下方程式界定所述先前已译码块的位置:TargetCUAddr=(PicWidthInCtbsY*PicHeightInCtbsY)/2+PicWidthInCtbsY/2,其中“PicWidthInCtbsY”指明包含于所述先前已译码块的单一行中的最大译码单元(LCU)的数目,且其中“PicHeightInCtbsY”指明包含于所述先前已译码块中的LCU行的总数。在一些实例中,所述上下文信息包含与所述当前切片相关联的一或多个上下文状态。
在一些实例中,所述上下文信息进一步包含与最可能状态(MPS)信息相关联的值。在一些实例中,为了通过继承译码所述先前已译码块之后的所述上下文信息来初始化所述当前切片的所述上下文信息,所述处理器经配置以通过继承译码所述先前已译码块之后的所述上下文信息来初始化所述当前切片的所述上下文信息的一些但非所有上下文。在一些实例中,所述先前已译码切片包含以下各项中的一项:(i)所述当前图片中的切片,其中所述先前已译码切片不同于所述当前切片,或(ii)先前已译码图片中的切片。在一些实例中,所述处理器经进一步配置以通过识别所述先前已译码图片而选择所述先前已译码图片作为按输出次序在所述当前图片之前的最后图片,所述最后图片与所述当前图片共享相同的量化参数(QP)及切片类型。在一些实例中,所述所存储视频数据包含经编码视频数据,所述处理器经进一步配置以解码所述经编码视频数据的至少一部分以形成重建构的视频数据,且所述视频译码装置进一步包含经配置以显示所述重建构的视频数据的至少一部分的显示装置。
图16为说明作为视频解码过程的部分的视频译码装置或其各种组件可执行以实施本发明的一或多种技术的实例过程330的流程图。虽然过程330可由多种装置执行,但过程330本文中关于视频解码器30予以描述。过程330可在视频解码器30接收当前块的熵编码数据(332)时开始。另外,视频解码器30可检索当前块的变换系数的熵编码数据(334)。
又,视频解码器30可熵解码当前块的变换系数的经编码数据(336)。举例来说,为了熵解码变换系数,视频解码器30可使用先前已解码变换系数的二进位以确定当前变换系数的对应当前二进位的上下文信息(336)。视频解码器30(例如,通过调用反变换单元78)可将反变换应用到变换系数以形成残余块(338)。又,视频解码器30可预测当前块以形成预测块(340)。视频解码器30可组合预测块与残余块以解码当前块(342)。
图17为说明视频译码装置或其各种组件可执行以实施本发明的一或多个系数群组(CG)大小确定技术的实例过程350的流程图。虽然过程320可由多种装置执行,但过程350在本文中是关于视频解码器30描述。过程350可在视频解码器30识别变换单元(TU)(352)时开始。举例来说,视频解码器30可识别当前TU,例如当前正在解码的TU。另外,视频解码器30可识别包含当前TU的系数群组,其中系数群组表示当前TU的变换系数的子集(354)。视频解码器30可基于与变换单元相关联的变换大小与以下各项中的一项或两项的组合来确定CG的大小:(i)与变换单元相关联的译码模式,或(ii)与变换单元相关联的变换矩阵(356)。
以此方式,视频解码器30表示视频译码装置的实例,所述视频译码装置包含经配置以存储视频数据的存储器装置,及一或多个处理器。所述处理器经配置以:识别包含所述视频数据的当前变换系数的系数群组(CG),所述CG表示变换单元内的变换系数的子集;且基于与所述变换单元相关联的变换大小来确定所述CG的大小。在一些实例中,所述处理器可基于与所述变换单元相关联的所述变换大小与以下各项中的一项或两项的组合来确定所述CG的所述大小:(i)与所述变换单元相关联的译码模式,或(ii)与所述变换单元相关联的变换矩阵。在一些实例中,所述所存储视频数据包括经编码视频数据,且所述一或多个处理器经配置以解码所述经编码视频数据的至少一部分以形成经解码视频数据。在一些实例中,所述所存储视频数据包括经编码视频数据,且所述一或多个处理器经配置以解码所述经编码视频数据的至少一部分以形成经解码视频数据。
在一些实例中,所述变换单元包括经编码变换单元,且其中与所述变换单元相关联的所述译码模式包括用于形成所述经编码变换单元的译码模式。在一些实例中,视频解码器30包含装置、为所述装置或为所述装置的部分,所述装置包括经配置以显示所述经解码视频数据的至少一部分的显示器。在一些实例中,一或多个处理器经进一步配置以针对当前变换系数的语法元素的值的多个二进位中的每一个,使用一或多个先前已解码变换系数的语法元素的值的相应对应二进位来确定上下文。在一些实例中,为了确定所述上下文,所述一或多个处理器经配置以使用先前已解码变换系数的所述语法元素的值的对应第i二进位来确定所述当前变换系数的所述语法元素的所述值的第i二进位的上下文,其中i包括非负整数。在一些实例中,为了使用所述先前已解码变换系数的所述语法元素的所述值的所述对应第i二进位,所述处理器仅使用所述先前已解码变换系数的所述语法元素的所述值的所述第i二进位且不使用所述先前已解码变换系数的所述语法元素的所述值的其它二进位。在一些这些实例中,所述处理器可使用所述所确定的上下文对所述当前变换系数的所述语法元素的所述值的所述第i二进位进行上下文自适应二进制算术译码(CABAC)解码。在一些实例中,所述CG包括块的正方形区,且所述CG的所述大小以块为单位表示为4×4。
在一些实例中,所述译码模式包括基于CG的译码模式。在一些实例中,视频解码器30包含装置、为所述装置或为所述装置的部分,所述装置包含以下各项中的一或多项:一或多个集成电路;一或多个数字信号处理器(DSP);一或多个现场可编程门阵列(FPGA);台式计算机;膝上型计算机;平板计算机;电话;电视;摄像机;显示装置;数字媒体播放器;视频游戏控制台;视频游戏装置;视频流装置;或无线通信装置。
通过实例但非限制,这些计算机可读存储媒体可包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储器、磁盘存储器或其它磁性存储装置、快闪存储器或可用于存储呈指令或数据结构形式的所要代码且可由计算机存取的任何其它媒体。另外,任何连接被恰当地称为计算机可读媒体。举例来说,如果使用同轴缆线、光缆、双绞线、数字订户线(DSL)或无线技术(例如红外线、无线电及微波)从网站、服务器或其它远端源发射指令,那么同轴缆线、光缆、双绞线、DSL或无线技术(例如红外线、无线电及微波)包含于媒体的定义中。然而,应理解,计算机可读存储媒体及数据存储媒体不包含连接、载波、信号或其它暂时性媒体,而是针对非暂时性有形存储媒体。如本文中所使用,磁盘及光盘包含紧密光盘(CD)、激光光盘、光学光盘、数字影音光盘(DVD)、软性磁盘及蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘使用激光以光学方式再现数据。以上的组合也应包含于计算机可读媒体的范围内。
指令可由一或多个处理器执行,例如由一或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它等效集成或离散逻辑电路执行。因此,如本文中所使用的术语“处理器”可指前述结构或适合于实施本文中所描述的技术的任何其它结构中的任一者。另外,在一些方面中,本文中所描述的功能性可提供于经配置用于编码及解码的专用硬件及/或软件模块内,或并入组合式编解码器中。此外,所述技术可完全实施于一或多个电路或逻辑元件中。
本发明的技术可在广泛的多种装置或设备中实施,所述装置或设备包含无线手机、集成电路(IC)或IC集合(例如,芯片组)。本发明中描述各种组件、模块或单元以强调经配置以执行所揭示技术的装置的功能方面,但未必要求由不同硬件单元来实现。确切来说,如上文所描述,可将各种单元组合于编解码器硬件单元中,或由互操作性硬件单元(包含如上文所描述的一或多个处理器)的集合结合合适的软件及/或固件来提供所述单元。
各种实例已予以了描述。这些及其它实例是在以下权利要求书的范围内。

Claims (44)

1.一种解码视频数据的方法,所述方法包括:
根据以下方程式确定先前已解码图片的先前已解码切片的先前已解码块的位置:
TargetCUAddr=(PicWidthInCtbsY*PicHeightInCtbsY)/2+PicWidthInCtbsY/2,
其中“PicWidthInCtbsY”指明包含于所述先前已解码块的单一行中的最大译码单元LCU的数目,且
其中“PicHeightInCtbsY”指明包含于所述先前已解码块中的LCU行的总数;
通过继承在所确定的位置处的所述先前已解码图片的所述先前已解码切片的所述先前已解码块的上下文信息作为当前图片的当前切片的初始化上下文信息来初始化所述当前图片的所述当前切片的上下文信息;及
使用所述初始化上下文信息来解码所述当前图片的所述当前切片的数据。
2.根据权利要求1所述的方法,其中所述先前已解码块包括LCU,且其中所确定的位置位于与所述先前已解码切片相关联的所述先前已解码图片内的中心位置处。
3.根据权利要求2所述的方法,其中所述当前切片包括单向预测切片(P切片),且其中所述先前已解码切片包括双向预测切片(B切片)。
4.根据权利要求2所述的方法,其中所述当前切片包括双向预测切片(B切片),且其中所述先前已解码切片包括单向预测切片(P切片)。
5.根据权利要求2所述的方法,其中所述当前切片包含于所述当前图片中的多个切片中,所述当前图片的上下文信息继承自所述先前已解码切片,所述方法进一步包括通过继承解码所述LCU之后的所述上下文信息来初始化所述多个切片的全部的相应上下文信息。
6.根据权利要求1所述的方法,
其进一步包括确定所述当前切片是否经帧间译码,
其中初始化所述当前图片的所述当前切片的所述上下文信息包括基于所述当前切片经帧间译码的确定而继承解码所述先前已解码块之后的所述上下文信息以作为所述当前图片的所述当前切片的所述初始化上下文信息。
7.根据权利要求6所述的方法,其进一步包括确定所述先前已解码切片是否经帧间译码。
8.根据权利要求1所述的方法,
其进一步包括确定所述当前切片及所述先前已解码切片是否共享相同量化参数QP,
其中初始化所述当前图片的所述当前切片的所述上下文信息包括基于所述当前切片及所述先前已解码切片的先前已解码切片共享相同QP的确定而继承解码所述先前已解码块之后的所述上下文信息以作为所述当前图片的所述当前切片的所述初始化上下文信息。
9.根据权利要求1所述的方法,
其进一步包括确定帧内随机存取图片IRAP按解码次序是否定位于所述当前图片与相关联于所述先前已解码切片的先前已解码图片之间;
其中初始化所述当前图片的所述当前切片的所述上下文信息包括基于无IRAP按所述解码次序定位于所述当前图片与所述先前已解码图片之间的确定而继承解码所述先前已解码图片的所述先前已解码块之后的所述上下文信息以作为所述当前图片的所述当前切片的所述初始化上下文信息。
10.根据权利要求1所述的方法,其中所述上下文信息包括与所述当前切片相关联的一或多个上下文状态。
11.根据权利要求1所述的方法,其中所述先前已解码块包括LCU,且其中所确定的位置位于所述先前已解码切片内的中心位置处。
12.根据权利要求1所述的方法,其中在通过继承解码所述先前已解码块之后的所述上下文信息来初始化所述当前切片的所述上下文信息中包括通过继承解码所述先前已解码块之后的所述上下文信息来初始化所述当前切片的所述上下文信息的一些但非所有上下文。
13.根据权利要求1所述的方法,其进一步包括通过识别所述先前已解码图片而选择所述先前已解码图片作为按解码次序在所述当前图片之前的最后图片,所述最后图片与所述当前图片共享相同的量化参数QP及切片类型。
14.一种编码视频数据的方法,所述方法包括:
根据以下方程式确定先前已编码图片的先前已编码切片的先前已编码块的位置:
TargetCUAddr=(PicWidthInCtbsY*PicHeightInCtbsY)/2+PicWidthInCtbsY/2,
其中“PicWidthInCtbsY”指明包含于所述先前已编码块的单一行中的最大译码单元LCU的数目,且
其中“PicHeightInCtbsY”指明包含于所述先前已编码块中的LCU行的总数;
通过继承在所确定的位置处的所述先前已编码图片的所述先前已编码切片的所述先前已编码块的上下文信息作为当前图片的当前切片的初始化上下文信息来初始化所述当前图片的所述当前切片的上下文信息;及
使用所述初始化上下文信息来编码所述当前图片的所述当前切片的数据。
15.根据权利要求14所述的方法,其中所述先前已编码块包括LCU,且其中所确定的位置位于与所述先前已编码切片相关联的所述先前已编码图片内的中心位置处。
16.根据权利要求15所述的方法,其中所述当前切片包括单向预测切片(P切片),且其中所述先前已编码切片包括双向预测切片(B切片)。
17.根据权利要求15所述的方法,其中所述当前切片包括双向预测切片(B切片),且其中所述先前已编码切片包括单向预测切片(P切片)。
18.根据权利要求15所述的方法,其中所述当前切片包含于所述当前图片中的多个切片中,所述当前图片的上下文信息继承自所述先前已编码图片,所述方法进一步包括通过继承编码所述LCU之后的所述上下文信息来初始化所述多个切片的全部的相应上下文信息。
19.根据权利要求14所述的方法,
其进一步包括确定所述当前切片是否经帧间译码,
其中初始化所述当前图片的所述当前切片的所述上下文信息包括基于所述当前切片经帧间译码的确定而继承编码所述先前已编码块之后的所述上下文信息以作为所述当前图片的所述当前切片的所述初始化上下文信息。
20.根据权利要求19所述的方法,其进一步包括确定所述先前已编码切片是否经帧间译码。
21.根据权利要求14所述的方法,
其进一步包括确定所述当前切片及所述先前已编码切片是否共享相同量化参数QP,
其中初始化所述当前图片的所述当前切片的所述上下文信息包括基于所述当前切片及所述先前已编码切片共享所述相同QP的确定而继承编码所述先前已编码块之后的所述上下文信息以作为所述当前图片的所述当前切片的所述初始化上下文信息。
22.根据权利要求14所述的方法,
其进一步包括确定帧内随机存取图片IRAP按输出次序是否定位于所述当前图片与相关联于所述先前已编码切片的先前已编码图片之间;
其中初始化所述当前图片的所述当前切片的所述上下文信息包括基于无IRAP按所述输出次序定位于所述当前图片与所述先前已编码图片之间的确定而继承所述先前已编码图片的所述先前已编码块的所述上下文信息以作为所述当前图片的所述当前切片的所述初始化上下文信息。
23.根据权利要求14所述的方法,其中所述上下文信息包括与所述当前切片相关联的一或多个上下文状态。
24.根据权利要求14所述的方法,其中所述先前已编码块包括是在所述先前已编码切片内的中心位置处的LCU。
25.根据权利要求14所述的方法,其中通过继承编码所述先前已编码块之后的所述上下文信息来初始化所述当前切片的所述上下文信息包括通过继承编码所述先前已编码块之后的所述上下文信息来初始化所述当前切片的所述上下文信息的一些但非所有上下文。
26.根据权利要求14所述的方法,其进一步包括通过识别所述先前已编码图片而选择所述先前已编码图片作为按输出次序在所述当前图片之前的最后图片,所述最后图片与所述当前图片共享相同的量化参数QP及切片类型。
27.一种视频译码装置,其包括:
存储器,其经配置以存储视频数据;及
与所述存储器通信的一或多个处理器,所述一或多个处理器经配置以:
根据以下方程式确定先前已解码图片的先前已解码切片的先前已解码块的位置:
TargetCUAddr=(PicWidthInCtbsY*PicHeightInCtbsY)/2+PicWidthInCtbsY/2,
其中“PicWidthInCtbsY”指明包含于所述先前已解码块的单一行中的最大译码单元LCU的数目,且
其中“PicHeightInCtbsY”指明包含于所述先前已解码块中的LCU行的总数;
通过继承译码存储在所述存储器中的视频数据的所述先前已译码图片中的所确定的位置处的所述先前已译码切片的所述先前已译码块之后的上下文信息作为当前图片的当前切片的初始化上下文信息来初始化所述当前图片的所述当前切片的上下文信息;及
使用所述初始化上下文信息对所述当前图片的所述当前切片的数据进行译码。
28.根据权利要求27所述的视频译码装置,其中所述先前已译码块包括LCU,且其中所确定的位置位于所述先前已译码图片内的中心位置处。
29.根据权利要求28所述的视频译码装置,其中所述当前切片包括单向预测切片(P切片),且其中所述先前已译码切片包括双向预测切片(B切片)。
30.根据权利要求28所述的视频译码装置,其中所述当前切片包括双向预测切片(B切片),且其中所述先前已译码切片包括单向预测切片(P切片)。
31.根据权利要求28所述的视频译码装置,其中所述当前切片包含于所述当前图片中的多个切片中,所述当前图片的上下文信息继承自所述先前已译码图片,且其中所述一或多个处理器经进一步配置以通过继承译码所述LCU之后的所述上下文信息来初始化所述多个切片的全部的相应上下文信息。
32.根据权利要求27所述的视频译码装置,
其中所述一或多个处理器经进一步配置以确定所述当前切片是否经帧间译码,且
其中为了初始化所述当前图片的所述当前切片的所述上下文信息,其中所述一或多个处理器经配置以基于所述当前切片经帧间译码的确定而继承译码所述先前已译码块之后的所述上下文信息以作为所述当前图片的所述当前切片的所述初始化上下文信息。
33.根据权利要求32所述的视频译码装置,其中所述一或多个处理器经配置以确定所述先前已译码切片是否经帧间译码。
34.根据权利要求27所述的视频译码装置,
其中所述一或多个处理器经进一步配置以确定所述当前切片及所述先前已译码块是否共享相同量化参数QP,且
其中为了初始化所述当前图片的所述当前切片的所述上下文信息,其中所述一或多个处理器经配置以基于所述当前图片及所述先前已译码切片共享所述相同QP的确定而继承译码所述先前已译码块之后的所述上下文信息以作为所述当前图片的所述当前切片的所述初始化上下文信息。
35.根据权利要求27所述的视频译码装置,
其中所述一或多个处理器经进一步配置以确定帧内随机存取图片IRAP按输出次序是否定位于所述当前图片与相关联于所述先前已译码切片的先前已译码图片之间,
其中为了初始化所述当前图片的所述当前切片的所述上下文信息,其中所述一或多个处理器经配置以基于无IRAP按所述输出次序定位于所述当前图片与所述先前已译码图片之间的确定而继承所述先前已译码图片的所述先前已译码块的所述上下文信息以作为所述当前图片的所述当前切片的所述初始化上下文信息。
36.根据权利要求27所述的视频译码装置,其中所述上下文信息包括与所述当前切片相关联的一或多个上下文状态。
37.根据权利要求27所述的视频译码装置,其中所述先前已译码块包括LCU,且其中所确定的位置位于所述先前已编码切片内的中心位置处。
38.根据权利要求27所述的视频译码装置,其中为了通过继承译码所述先前已译码块之后的所述上下文信息来初始化所述当前图片的所述上下文信息,所述一或多个处理器经配置以通过继承译码所述先前已译码块之后的所述上下文信息来初始化所述当前切片的所述上下文信息的一些但非全部上下文。
39.根据权利要求27所述的视频译码装置,其中所述一或多个处理器经进一步配置以通过识别所述先前已译码图片而选择所述先前已译码图片作为按输出次序在所述当前图片之前的最后图片,所述最后图片与所述当前图片共享相同的量化参数QP及切片类型。
40.根据权利要求27所述的视频译码装置,
其中所述所存储视频数据包括经编码视频数据,
其中所述一或多个处理器经进一步配置以解码所述经编码视频数据的至少一部分以形成重建构的视频数据,且
其中所述视频译码装置进一步包括经配置以显示所述重建构的视频数据的至少一部分的显示装置。
41.根据权利要求27所述的视频译码装置,
其中所述一或多个处理器经进一步配置以编码所述所存储视频数据的至少一部分,且
其中所述先前已译码块包括先前已编码块。
42.根据权利要求41所述的视频译码装置,其进一步包括经配置以捕获所述视频数据的至少一部分的摄像机。
43.一种视频译码设备,其包括:
用于根据以下方程式确定先前已解码图片的先前已解码切片的先前已解码块的位置的装置:
TargetCUAddr=(PicWidthInCtbsY*PicHeightInCtbsY)/2+PicWidthInCtbsY/2,
其中“PicWidthInCtbsY”指明包含于所述先前已解码块的单一行中的最大译码单元LCU的数目,且
其中“PicHeightInCtbsY”指明包含于所述先前已解码块中的LCU行的总数;
用于通过继承译码在所确定的位置处的所述先前已译码图片的所述先前已译码切片的所述先前已译码块之后的上下文信息作为当前图片的当前切片的初始化上下文信息来初始化所述当前图片的所述当前切片的上下文信息的装置;及
用于使用所述初始化上下文信息对所述当前图片的所述当前切片的数据进行译码的装置。
44.一种编码有指令的非暂时性计算机可读存储媒体,所述指令在执行时使得视频译码装置的一或多个处理器:
根据以下方程式确定先前已解码图片的先前已解码切片的先前已解码块的位置:
TargetCUAddr=(PicWidthInCtbsY*PicHeightInCtbsY)/2+PicWidthInCtbsY/2,
其中“PicWidthInCtbsY”指明包含于所述先前已解码块的单一行中的最大译码单元LCU的数目,且
其中“PicHeightInCtbsY”指明包含于所述先前已解码块中的LCU行的总数;
通过继承译码在所确定的位置处的所述先前已译码图片的所述先前已译码切片的所述先前已译码块之后的上下文信息作为当前图片的当前切片的初始化上下文信息来初始化所述当前图片的所述当前切片的上下文信息;及
使用所述初始化上下文信息对所述当前图片的所述当前切片的数据进行译码。
CN201680030423.5A 2015-05-29 2016-05-27 译码视频数据的方法和装置及非暂时性计算机可读存储媒体 Active CN107660339B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201562168571P 2015-05-29 2015-05-29
US62/168,571 2015-05-29
US15/166,132 2016-05-26
US15/166,132 US10334248B2 (en) 2015-05-29 2016-05-26 Coding data using an enhanced context-adaptive binary arithmetic coding (CABAC) design
PCT/US2016/034839 WO2016196376A1 (en) 2015-05-29 2016-05-27 Coding data using an enhanced context-adaptive binary arithmetic coding (cabac) design

Publications (2)

Publication Number Publication Date
CN107660339A CN107660339A (zh) 2018-02-02
CN107660339B true CN107660339B (zh) 2020-03-24

Family

ID=57397705

Family Applications (3)

Application Number Title Priority Date Filing Date
CN201680030423.5A Active CN107660339B (zh) 2015-05-29 2016-05-27 译码视频数据的方法和装置及非暂时性计算机可读存储媒体
CN201680030293.5A Active CN107690807B (zh) 2015-05-29 2016-05-27 使用增强型上下文自适应二进制算术译码设计来译码数据
CN201680030204.7A Expired - Fee Related CN107667531B (zh) 2015-05-29 2016-05-27 解码及编码视频数据的方法、视频译码装置及视频译码设备

Family Applications After (2)

Application Number Title Priority Date Filing Date
CN201680030293.5A Active CN107690807B (zh) 2015-05-29 2016-05-27 使用增强型上下文自适应二进制算术译码设计来译码数据
CN201680030204.7A Expired - Fee Related CN107667531B (zh) 2015-05-29 2016-05-27 解码及编码视频数据的方法、视频译码装置及视频译码设备

Country Status (10)

Country Link
US (3) US10574993B2 (zh)
EP (3) EP3304916B1 (zh)
JP (3) JP6619028B2 (zh)
KR (3) KR20180013910A (zh)
CN (3) CN107660339B (zh)
AU (3) AU2016271130B2 (zh)
BR (3) BR112017025521A2 (zh)
ES (1) ES2905415T3 (zh)
TW (3) TWI699110B (zh)
WO (3) WO2016196376A1 (zh)

Families Citing this family (68)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9369723B2 (en) * 2011-07-14 2016-06-14 Comcast Cable Communications, Llc Preserving image quality in temporally compressed video streams
US10574993B2 (en) 2015-05-29 2020-02-25 Qualcomm Incorporated Coding data using an enhanced context-adaptive binary arithmetic coding (CABAC) design
EP3484149B1 (en) * 2015-06-23 2020-11-11 MediaTek Singapore Pte Ltd. Method and apparatus for transform coefficient coding of non-square blocks
CN113411579B (zh) * 2016-05-13 2024-01-23 夏普株式会社 图像解码装置及其方法、图像编码装置及其方法
US10616582B2 (en) 2016-09-30 2020-04-07 Qualcomm Incorporated Memory and bandwidth reduction of stored data in image/video coding
KR20190086453A (ko) 2016-11-21 2019-07-22 파나소닉 인텔렉츄얼 프로퍼티 코포레이션 오브 아메리카 부호화 장치, 복호 장치, 부호화 방법 및 복호 방법
JPWO2018092868A1 (ja) * 2016-11-21 2019-10-17 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 符号化装置、復号装置、符号化方法及び復号方法
US10757412B2 (en) 2017-01-03 2020-08-25 Avago Technologies International Sales Pte. Limited Architecture flexible binary arithmetic coding system
US11265561B2 (en) * 2017-01-06 2022-03-01 Mediatek Inc. Method and apparatus for range derivation in context adaptive binary arithmetic coding
KR20240010541A (ko) * 2017-07-04 2024-01-23 삼성전자주식회사 다중 코어 변환에 의한 비디오 복호화 방법 및 장치, 다중 코어 변환에 의한 비디오 부호화 방법 및 장치
US10127913B1 (en) * 2017-07-07 2018-11-13 Sif Codec Llc Method of encoding of data stream, method of decoding of data stream, and devices for implementation of said methods
US10506258B2 (en) * 2017-07-13 2019-12-10 Google Llc Coding video syntax elements using a context tree
EP3652937A4 (en) 2017-07-14 2021-01-13 MediaTek Inc. METHOD AND DEVICE FOR AREA DERIVATION IN CONTEXT ADAPTIVE BINARY ARITHMETIC CODING
US11039143B2 (en) 2017-11-20 2021-06-15 Qualcomm Incorporated Memory reduction for context initialization with temporal prediction
EP3490253A1 (en) * 2017-11-23 2019-05-29 Thomson Licensing Encoding and decoding methods and corresponding devices
US10869062B2 (en) 2017-12-21 2020-12-15 Qualcomm Incorporated Probability initialization and signaling for adaptive arithmetic coding in video coding
EP3503557A1 (en) * 2017-12-22 2019-06-26 Thomson Licensing Method and apparatus for video encoding and decoding based on context switching
US10863199B2 (en) * 2018-03-26 2020-12-08 Qualcomm Incorporated Minimization of transform memory and latency via parallel factorizations
KR20240023238A (ko) * 2018-03-29 2024-02-20 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. 변환 계수 블록 코딩
CN117294838A (zh) * 2018-03-29 2023-12-26 弗劳恩霍夫应用研究促进协会 用于增强并行编码能力的构思
WO2019185769A1 (en) 2018-03-29 2019-10-03 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Dependent quantization
US20190313108A1 (en) 2018-04-05 2019-10-10 Qualcomm Incorporated Non-square blocks in video coding
EP3562156A1 (en) * 2018-04-27 2019-10-30 InterDigital VC Holdings, Inc. Method and apparatus for adaptive context modeling in video encoding and decoding
US10992937B2 (en) * 2018-06-18 2021-04-27 Qualcomm Incorporated Coefficient coding with grouped bypass bins
CN110650343A (zh) 2018-06-27 2020-01-03 中兴通讯股份有限公司 图像的编码、解码方法及装置、电子设备及系统
WO2020004277A1 (ja) * 2018-06-28 2020-01-02 シャープ株式会社 画像復号装置、および画像符号化装置
US10666981B2 (en) 2018-06-29 2020-05-26 Tencent America LLC Method, apparatus and medium for decoding or encoding
US10687081B2 (en) 2018-06-29 2020-06-16 Tencent America LLC Method, apparatus and medium for decoding or encoding
WO2020009758A1 (en) * 2018-07-02 2020-01-09 Interdigital Vc Holdings, Inc. Context-based binary arithmetic encoding and decoding
CN110839159A (zh) * 2018-08-16 2020-02-25 北京字节跳动网络技术有限公司 用于变换矩阵选择的隐式编码
US11483575B2 (en) * 2018-08-24 2022-10-25 Hfi Innovation Inc. Coding transform coefficients with throughput constraints
TWI734178B (zh) * 2018-08-24 2021-07-21 聯發科技股份有限公司 具有產出限制的編碼轉換係數
US11336918B2 (en) * 2018-09-05 2022-05-17 Qualcomm Incorporated Regular coded bin reduction for coefficient coding
CN117201785A (zh) 2018-09-11 2023-12-08 Lg电子株式会社 图像解码设备、图像编码设备和比特流发送设备
CN113170132A (zh) * 2018-09-24 2021-07-23 弗劳恩霍夫应用研究促进协会 使用或适用于与依赖标量量化的组合的变换系数的有效编码
WO2020067440A1 (ja) * 2018-09-27 2020-04-02 シャープ株式会社 動画像符号化装置および動画像復号装置
BR112021004822A2 (pt) * 2018-09-28 2021-06-01 Panasonic Intellectual Property Corporation Of America codificador, decodificador, método de codificação e método de decodificação
KR20240014631A (ko) * 2018-10-11 2024-02-01 엘지전자 주식회사 변환 계수 코딩 방법 및 장치
JP2022506628A (ja) * 2018-11-05 2022-01-17 インターデイジタル ヴィーシー ホールディングス インコーポレイテッド 隣接サンプル依存パラメトリックモデルに基づいたコーディングモードの簡易化
WO2020101313A1 (ko) * 2018-11-12 2020-05-22 삼성전자 주식회사 계수 레벨의 엔트로피 부호화 방법 및 장치, 엔트로피 복호화 방법 및 장치
EP3886438A4 (en) * 2018-12-24 2022-01-19 Huawei Technologies Co., Ltd. FLAG BIT CONTEXT MODELING METHOD AND APPARATUS
WO2020141856A1 (ko) * 2019-01-02 2020-07-09 엘지전자 주식회사 영상 코딩 시스템에서 레지듀얼 정보를 사용하는 영상 디코딩 방법 및 그 장치
US11523136B2 (en) * 2019-01-28 2022-12-06 Hfi Innovation Inc. Methods and apparatuses for coding transform blocks
US11134273B2 (en) * 2019-02-14 2021-09-28 Qualcomm Incorporated Regular coded bin reduction for coefficient coding
AU2019201653A1 (en) * 2019-03-11 2020-10-01 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding a tree of blocks of video samples
US11202100B2 (en) * 2019-03-11 2021-12-14 Qualcomm Incorporated Coefficient coding for transform skip mode
US11178399B2 (en) 2019-03-12 2021-11-16 Qualcomm Incorporated Probability initialization for video coding
TW202046730A (zh) * 2019-04-24 2020-12-16 美商松下電器(美國)知識產權公司 編碼裝置、解碼裝置、編碼方法、及解碼方法
US10818083B1 (en) * 2019-04-30 2020-10-27 International Business Machines Corporation Pyramid generation via depth-first walk
WO2020228762A1 (en) * 2019-05-14 2020-11-19 Beijing Bytedance Network Technology Co., Ltd. Context modeling for residual coding
EP3954125A4 (en) 2019-05-31 2022-06-22 ByteDance Inc. INTRA-BLOCK COPY PREDICTION PALETTE MODE
CN112118456B (zh) 2019-06-20 2022-03-25 腾讯美国有限责任公司 莱斯参数选择方法、装置、计算机设备及存储介质
US11368511B2 (en) * 2019-06-20 2022-06-21 Tencent America LLC Unification of rice parameter lookup table
CN113994679A (zh) * 2019-06-21 2022-01-28 北京字节跳动网络技术有限公司 关于上下文编解码二进制位的数量的限制
KR20220027851A (ko) 2019-06-28 2022-03-08 바이트댄스 아이엔씨 화면 콘텐츠 코딩에서의 크로마 인트라 모드 도출
JP7359878B2 (ja) * 2019-06-28 2023-10-11 バイトダンス インコーポレイテッド 変換スキップモードにおける量子化パタメータの修正技術
CN114402605A (zh) * 2019-07-10 2022-04-26 Lg电子株式会社 图像编码系统中使用残差编码方法的标志的图像解码方法以及用于其的装置
EP4024861A4 (en) * 2019-08-31 2023-06-28 LG Electronics Inc. Method for decoding video for residual coding and device therefor
KR20220062085A (ko) * 2019-09-20 2022-05-13 알리바바 그룹 홀딩 리미티드 비디오 처리에서 양자화 파라미터 시그널링
BR112022002916A2 (pt) * 2019-09-25 2022-05-10 Panasonic Ip Corp America Codificador, decodificador, método de codificação e método de decodificação
AU2019284053A1 (en) * 2019-12-23 2021-07-08 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding a block of video samples
US11863789B2 (en) * 2020-03-31 2024-01-02 Tencent America LLC Method for signaling rectangular slice partitioning in coded video stream
US11785219B2 (en) 2020-04-13 2023-10-10 Qualcomm Incorporated Coefficient coding for support of different color formats in video coding
US11765370B2 (en) * 2021-07-27 2023-09-19 Mediatek Inc. Video residual decoding apparatus using neighbor storage device with smaller storage size to store neighbor data for context selection and associated method
WO2023172704A1 (en) * 2022-03-09 2023-09-14 Innopeak Technology, Inc. Attribute level coding for geometry point cloud coding
WO2023182673A1 (ko) * 2022-03-21 2023-09-28 현대자동차주식회사 컨텍스트 모델 초기화를 사용하는 비디오 코딩을 위한 방법 및 장치
WO2023193724A1 (en) * 2022-04-05 2023-10-12 Beijing Bytedance Network Technology Co., Ltd. Method, apparatus, and medium for video processing
CN114928747B (zh) * 2022-07-20 2022-12-16 阿里巴巴(中国)有限公司 基于av1熵编码的上下文概率处理电路、方法及相关装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101189874A (zh) * 2005-04-19 2008-05-28 三星电子株式会社 改善编码效率的基于上下文自适应算术编码和解码方法和装置以及使用其的视频编码和解码方法和装置
WO2013067156A1 (en) * 2011-11-03 2013-05-10 Qualcomm Incorporated Adaptive initialization for context adaptive entropy coding
CN103327316A (zh) * 2012-03-22 2013-09-25 上海算芯微电子有限公司 视频宏块的上下文信息存取方法和系统
CN104054347A (zh) * 2012-01-18 2014-09-17 高通股份有限公司 在视频译码中波前平行处理的使用的指示
CN104067524A (zh) * 2012-01-19 2014-09-24 高通股份有限公司 具有精简的初始化值集合的上下文自适应熵译码

Family Cites Families (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040122693A1 (en) 2002-12-23 2004-06-24 Michael Hatscher Community builder
KR100703773B1 (ko) 2005-04-13 2007-04-06 삼성전자주식회사 향상된 코딩 효율을 갖는 엔트로피 코딩 및 디코딩 방법과이를 위한 장치, 이를 포함하는 비디오 코딩 및 디코딩방법과 이를 위한 장치
US7983343B2 (en) 2006-01-12 2011-07-19 Lsi Corporation Context adaptive binary arithmetic decoding for high definition video
JP4660433B2 (ja) 2006-06-29 2011-03-30 株式会社東芝 符号化回路、復号回路、エンコーダ回路、デコーダ回路、cabac処理方法
CA2629482A1 (en) 2007-04-21 2008-10-21 Avid Technology, Inc. Using user context information to select media files for a user in a distributed multi-user digital media system
US8516505B2 (en) 2008-03-14 2013-08-20 Microsoft Corporation Cross-platform compatibility framework for computer applications
CA2871268C (en) * 2008-07-11 2015-11-03 Nikolaus Rettelbach Audio encoder, audio decoder, methods for encoding and decoding an audio signal, audio stream and computer program
US8168200B2 (en) 2008-10-24 2012-05-01 Merial Limited Vaccine against african horse sickness virus
US8873626B2 (en) * 2009-07-02 2014-10-28 Qualcomm Incorporated Template matching for video coding
TWI403170B (zh) 2010-05-21 2013-07-21 Univ Nat Chiao Tung 背景調適性二進制算術解碼裝置及其解碼方法
US8344917B2 (en) 2010-09-30 2013-01-01 Sharp Laboratories Of America, Inc. Methods and systems for context initialization in video coding and decoding
US9497472B2 (en) 2010-11-16 2016-11-15 Qualcomm Incorporated Parallel context calculation in video coding
CN102231830B (zh) 2010-11-23 2013-04-17 浙江大学 用于上下文算术编解码的运算单元
US9215473B2 (en) 2011-01-26 2015-12-15 Qualcomm Incorporated Sub-slices in video coding
US20120230418A1 (en) 2011-03-08 2012-09-13 Qualcomm Incorporated Coding of transform coefficients for video coding
WO2012134246A2 (ko) 2011-04-01 2012-10-04 엘지전자 주식회사 엔트로피 디코딩 방법 및 이를 이용하는 디코딩 장치
FR2977111A1 (fr) 2011-06-24 2012-12-28 France Telecom Procede de codage et decodage d'images, dispositif de codage et decodage et programmes d'ordinateur correspondants
US20130083856A1 (en) * 2011-06-29 2013-04-04 Qualcomm Incorporated Contexts for coefficient level coding in video compression
WO2013003777A1 (en) 2011-06-29 2013-01-03 General Instrument Corporation Methods and system for using a scan coding pattern during intra coding
US9060173B2 (en) 2011-06-30 2015-06-16 Sharp Kabushiki Kaisha Context initialization based on decoder picture buffer
US8693401B2 (en) 2011-07-20 2014-04-08 Connectem Inc. Method and system for optimized handling of context using hierarchical grouping (for machine type communications)
RS57491B1 (sr) 2011-10-31 2018-10-31 Samsung Electronics Co Ltd Metod za određivanje kontekstnog modela za nivo koeficijenta transformacije entropijskog dekodiranja
US20130272373A1 (en) 2011-11-15 2013-10-17 Intel Corporation Video encoder with 2-bin per clock cabac encoding
US9743098B2 (en) 2011-11-19 2017-08-22 Blackberry Limited Multi-level significance map scanning
KR101802334B1 (ko) 2011-12-02 2017-12-29 삼성전자주식회사 적응적 탬플릿을 이용한 이진 영상의 부호화 방법 및 장치, 그 복호화 방법 및 장치
WO2013106987A1 (en) 2012-01-16 2013-07-25 Mediatek Singapore Pte. Ltd. Methods and apparatuses of bypass coding and reducing contexts for some syntax elements
CN103931188B (zh) 2012-01-16 2017-05-10 寰发股份有限公司 语法元素的基于上下文的自适应二进制算术编码装置及方法
US9191670B2 (en) 2012-01-17 2015-11-17 Qualcomm Incorporated Throughput improvement for CABAC coefficient level coding
AU2012200319B2 (en) 2012-01-19 2015-11-26 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding the significance map for residual coefficients of a transform unit
AU2012200345B2 (en) 2012-01-20 2014-05-01 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding the significance map residual coefficients of a transform unit
US9106918B2 (en) 2012-01-20 2015-08-11 Sony Corporation Coefficient coding harmonization in HEVC
US9866829B2 (en) * 2012-01-22 2018-01-09 Qualcomm Incorporated Coding of syntax elements that correspond to coefficients of a coefficient block in video coding
US9363510B2 (en) 2012-03-02 2016-06-07 Qualcomm Incorporated Scan-based sliding window in context derivation for transform coefficient coding
US9036710B2 (en) * 2012-03-08 2015-05-19 Blackberry Limited Unified transform coefficient encoding and decoding
US9237344B2 (en) 2012-03-22 2016-01-12 Qualcomm Incorporated Deriving context for last position coding for video coding
US9264706B2 (en) 2012-04-11 2016-02-16 Qualcomm Incorporated Bypass bins for reference index coding in video coding
PL2842313T3 (pl) 2012-04-13 2017-06-30 Ge Video Compression, Llc Skalowalny strumień danych i obiekt sieciowy
US9491463B2 (en) * 2012-04-14 2016-11-08 Qualcomm Incorporated Group flag in transform coefficient coding for video coding
US9621921B2 (en) * 2012-04-16 2017-04-11 Qualcomm Incorporated Coefficient groups and coefficient coding for coefficient scans
EP2654296A1 (en) * 2012-04-16 2013-10-23 BlackBerry Limited Modified HEVC level coding of video data
US9294779B2 (en) * 2012-06-15 2016-03-22 Blackberry Limited Multi-bit information hiding using overlapping subsets
US9088769B2 (en) 2012-06-28 2015-07-21 Blackberry Limited Reduced worst-case context-coded bins in video compression with parity hiding
CN108282655B (zh) 2012-09-26 2021-09-10 威勒斯媒体国际有限公司 图像编码和/或解码装置及方法
JP2014090326A (ja) 2012-10-30 2014-05-15 Mitsubishi Electric Corp 動画像符号化装置、動画像復号装置、動画像符号化方法及び動画像復号方法
BR122015024097B1 (pt) 2013-01-04 2021-01-05 Samsung Electronics Co., Ltd. aparelho de decodificação de vídeo
KR102218196B1 (ko) * 2013-10-28 2021-02-23 삼성전자주식회사 인코더, 이의 동작 방법과, 상기 인코더를 포함하는 장치들
US20150334425A1 (en) 2014-05-14 2015-11-19 Blackberry Limited Adaptive context initialization
US9425822B2 (en) 2014-08-05 2016-08-23 Broadcom Corporation Simplified range and context update for multimedia context-adaptive binary arithmetic coding design
KR102464337B1 (ko) 2014-09-25 2022-11-07 오라클 인터내셔날 코포레이션 멀티테넌트 어플리케이션 서버 환경에서 파티션 식별자들의 결정을 위한 시스템 및 방법
US10574993B2 (en) 2015-05-29 2020-02-25 Qualcomm Incorporated Coding data using an enhanced context-adaptive binary arithmetic coding (CABAC) design

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101189874A (zh) * 2005-04-19 2008-05-28 三星电子株式会社 改善编码效率的基于上下文自适应算术编码和解码方法和装置以及使用其的视频编码和解码方法和装置
WO2013067156A1 (en) * 2011-11-03 2013-05-10 Qualcomm Incorporated Adaptive initialization for context adaptive entropy coding
CN104054347A (zh) * 2012-01-18 2014-09-17 高通股份有限公司 在视频译码中波前平行处理的使用的指示
CN104067524A (zh) * 2012-01-19 2014-09-24 高通股份有限公司 具有精简的初始化值集合的上下文自适应熵译码
CN103327316A (zh) * 2012-03-22 2013-09-25 上海算芯微电子有限公司 视频宏块的上下文信息存取方法和系统

Also Published As

Publication number Publication date
KR102600724B1 (ko) 2023-11-09
JP2018521553A (ja) 2018-08-02
US10574993B2 (en) 2020-02-25
AU2016271130A1 (en) 2017-11-09
WO2016196376A1 (en) 2016-12-08
US11233998B2 (en) 2022-01-25
BR112017025521A2 (pt) 2018-08-07
EP3304901A1 (en) 2018-04-11
CN107667531B (zh) 2020-07-28
CN107660339A (zh) 2018-02-02
TWI699110B (zh) 2020-07-11
AU2016271137B2 (en) 2020-09-03
AU2016271140B2 (en) 2020-12-03
CN107690807A (zh) 2018-02-13
KR20180013911A (ko) 2018-02-07
WO2016196369A1 (en) 2016-12-08
CN107690807B (zh) 2020-09-15
BR112017025484A2 (pt) 2018-08-07
US10334248B2 (en) 2019-06-25
BR112017025484B1 (pt) 2023-10-31
EP3304916A1 (en) 2018-04-11
US20160353112A1 (en) 2016-12-01
ES2905415T3 (es) 2022-04-08
JP6873051B2 (ja) 2021-05-19
US20160353113A1 (en) 2016-12-01
US20160353111A1 (en) 2016-12-01
EP3304915A1 (en) 2018-04-11
WO2016196379A1 (en) 2016-12-08
TW201711464A (zh) 2017-03-16
AU2016271130B2 (en) 2020-11-26
JP6619028B2 (ja) 2019-12-11
AU2016271140A1 (en) 2017-11-16
JP2018521554A (ja) 2018-08-02
KR20180013909A (ko) 2018-02-07
EP3304916B1 (en) 2022-01-05
JP2018521552A (ja) 2018-08-02
AU2016271137A1 (en) 2017-11-16
TW201711467A (zh) 2017-03-16
BR112017025556A2 (pt) 2018-08-07
TW201711468A (zh) 2017-03-16
KR20180013910A (ko) 2018-02-07
CN107667531A (zh) 2018-02-06

Similar Documents

Publication Publication Date Title
CN107660339B (zh) 译码视频数据的方法和装置及非暂时性计算机可读存储媒体
CN107667530B (zh) 一种用于对视频数据进行熵译码的方法、设备和计算机可读存储媒体
CN111357287B (zh) 针对通过时间预测进行的上下文初始化的存储器减小

Legal Events

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