CN112534815B - 用于对视频数据进行编解码的方法和设备 - Google Patents

用于对视频数据进行编解码的方法和设备 Download PDF

Info

Publication number
CN112534815B
CN112534815B CN201980052504.9A CN201980052504A CN112534815B CN 112534815 B CN112534815 B CN 112534815B CN 201980052504 A CN201980052504 A CN 201980052504A CN 112534815 B CN112534815 B CN 112534815B
Authority
CN
China
Prior art keywords
transform unit
video
syntax element
coefficient
coefficients
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
CN201980052504.9A
Other languages
English (en)
Other versions
CN112534815A (zh
Inventor
M.卡尔切维茨
M.Z.科班
J.董
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 CN112534815A publication Critical patent/CN112534815A/zh
Application granted granted Critical
Publication of CN112534815B publication Critical patent/CN112534815B/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/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/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/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/18Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

一种视频解码器能够配置为:确定变换单元的尺寸,其中,变换单元包括N个系数组并且每个系数组包括M个系数,其中,M和N是整数值;基于变换单元的尺寸确定变换单元的常规二进制数计数阈值;对变换单元的语法元素进行上下文解码,直到达到第一数量的常规译码二进制数;响应于达到第一数量的常规译码二进制数,对变换单元的附加语法元素进行旁路解码;基于上下文解码的语法元素确定变换单元的第一系数集的值;以及基于附加语法元素确定变换单元的第二系数集的值。

Description

用于对视频数据进行编解码的方法和设备
本申请要求以下专利申请的优先权:
2019年9月4日提交的美国专利申请16/560,918,该专利申请要求以下权益:
2019年2月14日提交的美国临时专利申请62/805,625;
2019年3月25日提交的美国临时专利申请62/823,537;
每个申请的全部内容通过引用合并于此。
技术领域
本公开涉及视频编码和视频解码。
背景技术
数字视频功能能够集成到广泛的设备中,包括数字电视、数字直接广播系统、无线广播系统、个人数字助理(PDA)、便携式或台式计算机、平板电脑、电子书阅读器、数码相机、数字记录设备、数字媒体播放器、视频游戏设备、视频游戏机、蜂窝式或卫星无线电电话、所谓的“智能电话”、视频电话会议设备、视频流设备等。数字视频设备实施视频译码技术,比如那些在由MPEG-2、MPEG-4、ITU-T H.263、ITU-T H.264/MPEG-4第10部分、高级视频译码(AVC)、ITU-T H.265/高效视频译码(HEVC)所定义的标准以及此类标准的扩展中所描述的技术。通过实施此类视频译码技术,视频设备可以更高效地发送、接收、编码、解码和/或存储数字视频信息。
视频译码技术包括空域(图片内)预测和/或时域(图片间)预测来减少或消除视频序列中固有的冗余。对于基于块的视频译码,可以将视频条带(例如,视频图片或视频图片的一部分)分割为视频块,其也可以称为编码树单元(CTU)、编码单元(CU)和/或编码节点。对于图片的帧内译码的(I)条带中的视频块,可以使用相对于同一图片中邻近块中的参考样点的空域预测进行编码。对于图片的帧间译码的(P或B)条带中的视频块,可以使用相对于同一图片中邻近块中的参考样点的空域预测或者相对于其他参考图片中的参考样点的时域预测。图片可以称为帧,并且参考图片可以称为参考帧。
发明内容
视频译码(例如视频编码和/或视频解码)典型地涉及从同一图片中已经译码的视频数据块来预测视频数据块(例如帧内预测)或者从不同图片中已经译码的视频数据块来预测视频数据块(例如帧间预测)。在一些情况下,视频编码器还通过将预测性的块与原始块进行比较来计算残差数据。因此,残余数据代表视频数据的预测性的块和原始块之间的差异。为了减少信令通知残差数据所需的比特数,视频编码器将残差数据变换为变换系数,对变换系数进行量化,并且在编码比特流中信令通知变换和量化的系数。通过变换和量化过程实现的压缩可能是有损的,意味着变换和量化过程可能将失真引入解码视频数据中。本公开描述与变换系数译码相关的技术。
在一个示例中,一种用于解码视频数据的方法包括确定变换单元的尺寸,其中,变换单元包括N个系数组并且每个系数组包括M个系数,其中,M和N是整数值;基于变换单元的尺寸确定变换单元的常规二进制数计数阈值;对变换单元的语法元素进行上下文解码,直到达到第一数量的常规译码二进制数,其中,上下文解码的语法元素包括一个或多个有效标志、一个或多个奇偶校验级标志以及一个或多个第一标志,一个或多个有效标志中的每一个指示对应系数的绝对级是否等于零,一个或多个奇偶校验级标志中的每一个指示对应系数的绝对级是偶数还是奇数,一个或多个第一标志中的每一个指示对应系数的绝对级是否大于2;响应于达到第一数量的常规译码二进制数,对变换单元的附加语法元素进行旁路解码;基于上下文解码的语法元素确定变换单元的第一系数集的值;以及基于附加语法元素确定变换单元的第二系数集的值。
在另一示例中,一种用于解码视频数据的设备包括存储器,配置为存储视频数据;以及在电路中实现的一个或多个处理器,配置为确定视频数据的变换单元的尺寸,其中,变换单元包括N个系数组并且每个系数组包括M个系数,其中,M和N为整数值;基于变换单元的尺寸确定变换单元的常规二进制数计数阈值;对变换单元的语法元素进行上下文解码,直到达到第一数量的常规译码二进制数,其中,上下文解码的语法元素包括一个或多个有效标志、一个或多个奇偶校验级标志以及一个或多个第一标志,一个或多个有效标志中的每一个指示对应系数的绝对级是否等于零,一个或多个奇偶校验级标志中的每一个指示对应系数的绝对级是偶数还是奇数,以及一个或多个第一标志中的每一个指示对应系数的绝对级是否大于2;响应于达到第一数量的常规译码二进制数,对附加语法元素进行旁路解码;基于上下文解码的语法元素确定变换单元的第一系数集的值;以及基于附加语法元素确定变换单元的第二系数集的值。
在另一示例中,一种计算机可读介质,其存储指令,当被一个或多个处理器执行时,该指令促使一个或多个处理器:确定视频数据的变换单元的尺寸,其中,变换单元包括N个系数组并且每个系数组包括M个系数,其中,M和N为整数值;基于变换单元的尺寸确定变换单元的常规二进制数计数阈值;对变换单元的语法元素进行上下文解码,直到达到第一数量的常规译码二进制数,其中,上下文解码的语法元素包括一个或多个有效标志、一个或多个奇偶校验级标志以及一个或多个第一标志,一个或多个有效标志中的每一个指示对应系数的绝对级是否等于零,一个或多个奇偶校验级标志中的每一个指示对应系数的绝对级是偶数还是奇数,以及一个或多个第一标志中的每一个指示对应系数的绝对级是否大于2;响应于达到第一数量的常规译码二进制数,对附加语法元素进行旁路解码;基于上下文解码的语法元素确定变换单元的第一系数集的值;以及基于附加语法元素确定变换单元的第二系数集的值。
在另一示例中,一种装置包括:用于确定变换单元的尺寸的部件,其中,变换单元包括N个系数组并且每个系数组包括M个系数,其中,M和N是整数值;用于基于变换单元的尺寸确定变换单元的常规二进制数计数阈值的部件;用于对变换单元的语法元素进行上下文解码直到达到第一数量的常规译码二进制数的部件,其中,上下文解码的语法元素包括一个或多个有效标志、一个或多个奇偶校验级标志以及一个或多个第一标志,一个或多个有效标志中的每一个指示对应系数的绝对级是否等于零,一个或多个奇偶校验级标志中的每一个指示对应系数的绝对级是偶数还是奇数,一个或多个第一标志中的每一个指示对应系数的绝对级是否大于2;用于响应于达到第一数量的常规译码二进制数而对变换单元的附加语法元素进行旁路解码的部件;用于基于上下文解码的语法元素确定变换单元的第一系数集的部件;以及用于基于附加语法元素确定变换单元的第二系数集的值的部件。
在另一示例中,一种用于编码视频数据的方法,包括:确定变换单元的尺寸,其中,变换单元包括N个系数组并且每个系数组包括M个系数,其中,M和N是整数值;以及基于变换单元的尺寸确定变换单元的常规二进制数计数阈值;对变换单元的语法元素进行上下文编码,直到达到第一数量的常规译码二进制数,其中,上下文编码的语法元素包括一个或多个有效标志、一个或多个奇偶校验级标志以及一个或多个第一标志,一个或多个有效标志中的每一个指示对应系数的绝对级是否等于零,一个或多个奇偶校验级标志中的每一个指示对应系数的绝对级是偶数还是奇数,一个或多个第一标志中的每一个指示对应系数的绝对级是否大于2,以及上下文编码的语法元素代表变换单元的第一系数集的值;以及响应于达到第一数量的常规译码二进制数,对附加语法元素进行旁路编码,其中,附加语法元素代表变换单元的第二系数集的值。
在另一示例中,一种用于编码视频数据的设备,包括:存储器,配置为存储视频数据;以及在电路中实现的一个或多个处理器,并配置为:确定视频数据的变换单元的尺寸,其中,变换单元包括N个系数组并且每个系数组包括M个系数,其中,M和N为整数值;基于变换单元的尺寸确定变换单元的常规二进制数计数阈值;对变换单元的语法元素进行上下文编码,直到达到第一数量的常规译码二进制数,其中,上下文编码的语法元素包括一个或多个有效标志、一个或多个奇偶校验级标志以及一个或多个第一标志,一个或多个有效标志中的每一个指示对应系数的绝对级是否等于零,一个或多个奇偶校验级标志中的每一个指示对应系数的绝对级是偶数还是奇数,一个或多个第一标志中的每一个指示对应系数的绝对级是否大于2,以及上下文编码的语法元素代表变换单元的第一系数集的值;以及响应于达到第一数量的常规译码二进制数,对编码单元的附加语法元素进行旁路编码,其中,附加语法元素代表变换单元的第二系数集的值。
在另一示例中,一种计算机可读介质,其存储指令,当被一个或多个处理器执行时,该指令促使一个或多个处理器:确定视频数据的变换单元的尺寸,其中,变换单元包括N个系数组并且每个系数组包括M个系数,其中,M和N为整数值;基于变换单元的尺寸确定变换单元的常规二进制数计数阈值;对变换单元的语法元素进行上下文解码,直到达到第一数量的常规译码二进制数,其中,上下文解码的语法元素包括一个或多个有效标志、一个或多个奇偶校验级标志以及一个或多个第一标志,一个或多个有效标志中的每一个指示对应系数的绝对级是否等于零,一个或多个奇偶校验级标志中的每一个指示对应系数的绝对级是偶数还是奇数,以及一个或多个第一标志中的每一个指示对应系数的绝对级是否大于2;响应于达到第一数量的常规译码二进制数,对附加语法元素进行旁路解码;基于上下文解码的语法元素确定变换单元的第一系数集的值;以及基于附加语法元素确定变换单元的第二系数集的值。
在另一示例中,一种装置,包括:用于确定变换单元的尺寸的部件,其中,变换单元包括N个系数组并且每个系数组包括M个系数,其中,M和N是整数值;用于基于变换单元的尺寸确定变换单元的常规二进制数计数阈值的部件;用于对变换单元的语法元素进行上下文编码直到达到第一数量的常规译码二进制数的部件,其中,上下文编码的语法元素包括一个或多个有效标志、一个或多个奇偶校验级标志以及一个或多个第一标志,一个或多个有效标志中的每一个指示对应系数的绝对级是否等于零,一个或多个奇偶校验级标志中的每一个指示对应系数的绝对级是偶数还是奇数,一个或多个第一标志中的每一个指示对应系数的绝对级是否大于2,以及上下文编码的语法元素代表变换单元的第一系数集的值;用于响应于达到第一数量的常规译码二进制数而对附加语法元素进行旁路编码的部件,其中,附加语法元素代表变换单元的第二系数集的值。
在附图和以下描述中阐述了一个或多个示例的细节。根据说明书、附图和权利要求书,其他特征、目的和优点将是显而易见的。
附图说明
图1是图示可执行本公开的技术的示例视频编码和解码系统的框图。
图2A和2B是图示示例四叉树二叉树(QTBT)结构以及对应编码树单元(CTU)的概念图。
图3示出了语法元素的示例扫描顺序。
图4示出了用于选择概率模型的示例模板的图示。
图5示出了语法元素的示例扫描顺序。
图6示出了如何使用莱斯参数来推导用于在旁路译码的格伦布-莱斯译码和指数-格伦布译码之间切换的阈值的示例。
图7是图示可执行本公开的技术的示例视频编码器的框图。
图8是图示可执行本公开的技术的示例视频解码器的框图。
图9A和9B是图示二进制算术译码中的范围更新过程的概念图。
图10是图示二进制算术译码中的输出过程的概念图。
图11是图示视频编码器中的上下文自适应二进制算术译码(CABAC)译码器的框图。
图12是图示视频解码器中的CABAC译码器的框图。
图13是图示视频编码器的示例操作的流程图。
图14是图示视频解码器的示例操作的流程图。
图15是图示视频编码器的示例操作的流程图。
图16是图示视频解码器的示例操作的流程图。
具体实施方式
视频译码(例如视频编码和/或视频解码)典型地涉及根据同一图片中已经译码的视频数据块来预测视频数据块(例如帧内预测)或根据不同图片中已经译码的视频数据块来预测视频数据块(例如帧间预测)。在某些情况下,视频编码器还通过将预测性的块与原始块进行比较来计算残差数据。因此,残余数据代表视频数据的预测块和原始块之间的差异。为了减少信令通知残差数据所需的比特数,视频编码器对残差数据进行变换和量化,并且在编码的比特流中信令通知变换和量化的系数。通过变换和量化过程实现的压缩可能是有损的,这意味着变换和量化过程可能将失真引入解码的视频数据中。
视频解码器对残余数据进行解码并将其添加到预测块,以产生比单独的预测块更紧密地匹配原始视频块的重构视频块。由于残余数据的变换和量化带来的损失,重构块可能具有失真或伪影。伪影或失真一种常见类型称为块效应,其中用于译码视频数据的块的边界是可见的。
为了进一步提高解码视频的质量,视频解码器能够对重构视频块执行一个或多个滤波操作。这些滤波操作的示例包括去方块滤波、样点自适应偏移(SAO)滤波和自适应环路滤波(ALF)。用于这些滤波操作的参数可以由视频编码器确定并且在编码视频比特流中显式地信令通知,也可以由视频解码器隐式地确定而无需在编码视频比特流中显式地信令通知。
如上所介绍的,视频编码器对残差数据进行变换以产生变换系数。那些变换系数可以附加地被量化。在本公开中,术语变换系数或系数可以指量化变换系数或未量化变换系数。本公开描述了一种用于从视频编码器到视频解码器信令通知变换系数(例如量化变换系数)的技术。更具体地,本公开描述一种与熵解码过程相关的技术,该熵解码过程将比特的二进制表示转换为一系列非二进制值的量化变换系数。在本公开中还描述了对应的熵编码过程,其总体上是熵解码的逆过程。
本公开描述了一种与变换系数译码相关的技术。变换系数译码的各方面在JVET-K0072,H.Schwarz,T.Nguyen,D.Marpe,T.Wiegand,“Non-CE7:Alternative entropycoding for dependent quantization”,JVET文件JVET-K0072,亚卢布尔雅那,斯洛文尼,2018年7月,中做了描述。当与JVET-K0072的技术相比时,本文描述的技术可以提高编码和解码量化系数的效率。
本公开描述了一种用于在视频译码过程中对与残差数据相关联的系数进行译码的技术。在一个示例中,本公开描述了一种用于确定哪些语法元素被上下文译码以及哪些语法元素被旁路译码的技术。在另一示例中,本公开描述了一种用于确定用来定义代码(例如格伦布-莱斯代码或指数-格伦布代码)的莱斯参数的技术,该代码用于对系数块的系数级的剩余绝对值进行译码,其中上下文自适应二进制算术译码(CABAC)用于对有效系数的其他指示(比如系数级大于1和系数级大于2)进行译码。在有损译码的情况下,系数级可以是变换系数的级别,或者在无损译码或在变换跳过模式下的有损译码的情况下,系数级可以是不应用变换(即残差像素值)的系数的级别。
莱斯参数是一个可调值,用于从格伦布代码族(例如格伦布-莱斯代码或指数-格伦布代码)中选择码字集。由莱斯参数定义的代码可用于对变换单元(TU)或系数组(CG)(即系数块)中的至少一个系数的系数级的剩余绝对值进行译码。每一个CG可以是4×4变换块或视频数据的变换块的4×4子块。在有损译码的情况下,CG可以包括变换系数,或者在无损译码或在变换跳过模式下的有损译码的情况下,CG可以包括不应用变换的系数。
本公开的技术可以应用于任何现有的视频编解码器,比如高效视频译码(HEVC)、或者可以提议为用于新的视频译码标准(诸如当前正在开发的通用视频译码(VVC))或用于其他将来的视频译码标准的有前途的译码工具。
图1是图示可执行本公开的技术的示例视频编码和解码系统100的框图。本公开的技术通常指向对视频数据进行译码(编码和/或解码)。总的来说,视频数据包括用于处理视频的任何数据。从而,视频数据可以包括原始的未编码视频、编码视频、解码(例如重构)视频以及视频元数据(诸如,信令通知的数据)。
如图1所示,在此示例中,系统100包括提供将由目标设备116进行解码和显示的编码视频数据的源设备102。特别地,源设备102经由计算机可读介质110将视频数据提供给目标设备116。源设备102和目标设备116可以包括多种设备中的任何一种,包括台式计算机、笔记本(即膝上型计算机)、平板电脑、机顶盒、手持电话(如智能手机)、电视、照相机、显示设备、数字媒体播放器、视频游戏机、视频流设备等。在一些情况下,源设备102和目标设备116可以被配备用于无线通信,并且因此可以称为无线通信设备。
在图1的示例中,源设备102包括视频源104、存储器106、视频编码器200和输出接口108。目标设备116包括输入接口122、视频解码器300、存储器120和显示设备118。根据本公开,源设备102的视频编码器200和目标设备116的视频解码器300可以配置为应用本文描述的用于系数译码的技术。因而,源设备102代表视频编码设备的示例,而目标设备116代表视频解码设备的示例。在其他示例中,源设备和目标设备可以包括其他组件或布置。例如,源设备102可以从比如外部摄像机的外部视频源接收视频数据。同样,目标设备116可以与外部显示设备通过接口相连接,而不包括集成的显示设备。
如图1所示的系统100仅是一个示例。总的来说,任何数字视频编码和/或解码设备都可以执行本文所述的用于系数译码的技术。源设备102和目标设备116仅仅是此类译码设备的示例,其中,源设备102生成用于传输到目标设备116的译码视频数据。本公开将“译码”设备表示为执行数据译码(编码和/或解码)的设备。从而,视频编码器200和视频解码器300代表译码设备的示例,具体地,分别是视频编码器和视频解码器。在一些示例中,源设备102和目标设备116可以用基本上对称的方式操作,使得源设备102和目标设备116中的每一个均包括视频编码和解码组件。于是,系统100可以支持源设备102和目标设备116之间的单向或双向视频传输,例如用于视频流、视频回放、视频广播或者视频电话。
总的来说,视频源104代表视频数据源(即原始的未编码视频数据),并将视频数据的连续的图片(也称为“帧”)序列提供给视频编码器200,其对图片的数据进行编码。源设备102的视频源104可以包括视频捕获设备,比如摄像机、包括先前捕获的原始视频的视频档案和/或从视频内容提供商接收视频的视频馈送接口。作为进一步的替代方案,视频源104可以生成基于计算机图形的数据作为源视频,或者实况视频、存档视频和计算机生成视频的组合。在每种情况下,视频编码器200对捕获的、预捕获的或计算机生成的视频数据进行编码。视频编码器200可以将图片从接收顺序(有时称为“显示顺序”)重新排列为用于译码的译码顺序。视频编码器200可以生成包括编码视频数据的比特流。然后,源设备102可以经由输出接口108将编码视频数据输出到计算机可读介质110上,通过例如目标设备116的输入接口122进行接收和/或取回。
源设备102的存储器106和目标设备116的存储器120代表通用存储器。在一些示例中,存储器106、120可以存储原始视频数据,例如来自视频源104的原始视频和来自视频解码器300的原始的解码视频数据。附加地或可替代地,存储器106、120可以分别存储可由例如视频编码器200和视频解码器300执行的软件指令。尽管在此示例中存储器106和存储器120与视频编码器200和视频解码器300分开示出,但是应当理解的是,视频编码器200和视频解码器300还可以包括实现功能上相似或等效目的的内部存储器。进一步来说,存储器106、120可以存储例如从视频编码器200输出并输入到视频解码器300的编码视频数据。在一些示例中,部分的存储器106、120可以分配为一个或多个视频缓冲区,例如用来存储原始的解码和/或编码视频数据。
计算机可读介质110可以代表能够将编码视频数据从源设备102传输到目标设备116的任何类型的介质或设备。在一个示例中,计算机可读介质110代表通信介质以使源设备102能够例如经由射频网络或基于计算机的网络将编码视频数据实时地直接发送到目标设备116。根据比如无线通信协议的通信标准,输出接口108可以对包括编码视频数据的传输信号进行调制,并且输入接口122可以对接收到的传输信号进行解调。通信介质可以包括任何无线或有线通信介质,比如射频(RF)频谱或一条或多条物理传输线。通信介质可以形成比如局域网、广域网或比如因特网的全球网络的基于分组的网络的一部分。通信介质可以包括路由器、交换机、基站或有助于从源设备102到目标设备116的通信的任何其他装备。
在一些示例中,源设备102可以将编码数据从输出接口108输出到存储设备112。类似地,目标设备116可以经由输入接口122访问来自存储设备112的编码数据。存储设备112可以包括各种分布式或本地访问的数据存储介质中的任何一种,比如硬盘、蓝光光盘、DVD、CD-ROM、闪存、易失性或非易失性存储器,或者用于存储编码视频数据的任何其他合适的数字存储介质。
在一些示例中,源设备102可将编码视频数据输出到文件服务器114或可存储由源设备102生成的编码视频数据的另一中间存储设备。目标设备116可以经由流传输或下载来访问来自文件服务器114的存储的视频数据。文件服务器114可以是能够存储编码视频数据并将编码视频数据发送到目标设备116的任何类型的服务器设备。文件服务器114可以代表(例如用于网站的)网络服务器、文件传输协议(FTP)服务器、内容传递网络设备或网络附加存储(NAS)设备。目标设备116可以通过包括因特网连接的任何标准数据连接来访问来自文件服务器114的编码视频数据。这可以包括无线信道(例如Wi-Fi连接)、有线连接(例如数字订户线路(DSL)、电缆调制解调器等)或者适合访问存储在文件服务器114上的编码视频数据的二者的组合。文件服务器114和输入接口122可以配置为根据流传输协议、下载传输协议或其组合来操作。
输出接口108和输入接口122可以代表无线发射机/接收机、调制解调器、有线联网组件(例如以太网卡)、根据各种IEEE 802.11标准中的任何一种进行操作的无线通信组件,或者其他物理组件。在输出接口108和输入接口122包括无线组件的示例中,输出接口108和输入接口122可以配置为根据比如4G、4G-LTE(长期演进)、LTE高级、5G或类似标准的蜂窝通信标准来传输比如编码视频数据的数据。在输出接口108包括无线发射机的某些示例中,输出接口108和输入接口122可以配置为根据其他无线标准,比如IEEE 802.11规范、IEEE802.15规范(例如ZigBeeTM)、BluetoothTM标准等来传输比如编码视频数据的数据。在一些示例中,源设备102和/或目标设备116可以包括各自的片上系统(system-on-a-chip,SoC)设备。例如,源设备102可以包括SoC设备来执行归于视频编码器200和/或输出接口108的功能,并且目标设备116可以包括SoC设备来执行归于视频解码器300和/或输入接口122的功能。
本公开的技术可以应用于支持各种多媒体应用中的任何一种的视频译码,比如空中电视广播、有线电视传输、卫星电视传输、比如基于HTTP的动态自适应流(DASH)的互联网流视频传输、编码到数据存储介质上的数字视频、对存储在数据存储介质上的数字视频进行解码或者其他应用。
目标设备116的输入接口122从计算机可读介质110(例如通信介质、存储设备112、文件服务器114等)接收编码视频比特流。编码视频比特流可以包括由视频编码器200定义的、也由视频解码器300使用的信令信息,比如语法元素,该语法元素具有描述视频块或其他译码单元(例如条带、图片、图片组、序列等)的特点和/或处理的值。显示设备118向用户显示解码视频数据的解码图片。显示设备118可以代表比如阴极射线管(CRT)、液晶显示器(LCD)、等离子显示器、有机发光二极管(OLED)显示器或另一类显示设备的各种显示设备中的任何一种。
尽管未在图1中示出,但在一些示例中,视频编码器200和视频解码器300中的每一个可以与音频编码器和/或音频解码器集成在一起,并且可以包括适当的MUX-DEMUX单元或其他硬件和/或软件,来处理公共数据流中包括音频和视频的多路复用流。如果适用,MUX-DEMUX单元可以符合ITU H.223多路复用器协议或比如用户数据报协议(UDP)的其他协议。
视频编码器200和视频解码器300中的每一个可以实现为各种合适的编码器和/或解码器电路中的任何一种,比如一个或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、离散逻辑、软件,硬件、固件或其任何组合。当该技术部分地以软件实施时,设备可以将用于软件的指令存储在合适的非暂时计算机可读介质中,并使用一个或多个处理器在硬件中执行该指令来执行本公开的技术。视频编码器200和视频解码器300中的每一个可以被包括在一个或多个编码器或解码器中,这两者都可以集成为各自设备中组合编码器/解码器(CODEC)的一部分。包括视频编码器200和/或视频解码器300的设备可以包括集成电路、微处理器和/或比如蜂窝电话的无线通信设备。
视频编码器200和视频解码器300可以根据视频译码标准进行操作,比如ITU-TH.265,也表示为高效视频译码(HEVC)或其扩展,比如多视图和/或可缩放的视频译码扩展。可替代地,视频编码器200和视频解码器300可以根据其他专有标准或工业标准来操作,比如联合探索测试模型(JEM)或ITU-T H.266,也称为通用视频译码(VVC)。于2019年7月3-12日在瑞典哥德堡举办的第15次会议中,ISO/IEC JTC 1/SC 29/WG 11和ITU-T SG 16 WP 3的联合视频专家组(JVET)的Bross等在“Versatile Video Coding(Draft 6)”,,JVET-S2001-vA(以下简称“VVC草案6”)中描述了VVC标准的近期草案。然而,本公开的技术不限于任何特定的译码标准。
总的来说,视频编码器200和视频解码器300可以执行图片的基于块的译码。术语“块”总体上是指包括待处理的(例如编码、解码或以其他方式在编码和/或解码过程中使用的)数据的结构。例如,块可以包括亮度和/或色度数据的样点的二维矩阵。总的来说,视频编码器200和视频解码器300可以对以YUV(例如Y、Cb、Cr)格式代表的视频数据进行译码。也就是说,视频编码器200和视频解码器300可以对亮度和色度分量进行译码,其中色度分量可以包括红色和蓝色色度分量,而不是对图片的样点的红色、绿色和蓝色(RGB)数据进行译码。在一些示例中,视频编码器200在编码之前将接收到的RGB格式的数据转换成YUV表示,并且视频解码器300将YUV表示转换成RGB格式。可替代地,预处理和后处理单元(未示出)可以执行这些转换。
本公开通常表示图片的译码(例如编码和解码),包括对图片数据进行编码或解码的过程。类似地,本公开可以表示对图片的块进行译码以包括对块的数据进行编码或解码的过程,例如预测和/或残差译码。编码视频比特流总体上包括用于代表译码决策(例如译码模式)的语法元素和将图片分割为块的一系列值。从而,对图片或块进行译码的引用总体上应理解为对形成图片或块的语法元素的值进行译码。
HEVC定义各种的块,包括编码单元(CU)、预测单元(PU)和变换单元(TU)。根据HEVC,视频译码器(比如视频编码器200)根据四叉树结构将编码树单元(CTU)分割为CU。也就是说,视频译码器将CTU和CU分割为四个相等的非重叠正方形,并且四叉树的每一个节点具有零个或四个子代节点。没有子代节点的节点可以称为“叶节点”,并且这种叶节点的CU可以包括一个或多个PU和/或一个或多个TU。视频译码器可以进一步分割PU和TU。例如,在HEVC中,残差四叉树(RQT)代表TU的分割。在HEVC中,PU代表帧间预测数据,而TU代表残差数据。帧内预测的CU包括帧内预测信息,比如帧内模式指示。
作为另一示例,视频编码器200和视频解码器300可以配置为根据JEM或VVC进行操作。根据JEM或VVC,视频译码器(比如视频编码器200)将图片分割为多个编码树单元(CTU)。视频编码器200可以根据比如四叉树-二叉树(QTBT)结构或多类型树(MTT)结构的树结构来对CTU进行分割。QTBT结构消除了多个分割类型的概念,比如HEVC的CU、PU和TU之间的区分。QTBT结构包括两个级别:根据四叉树分割而分割出来的第一级,以及根据二叉树分割而分割出来的第二级。QTBT结构的根节点对应于CTU。二叉树的叶节点对应于编码单元(CU)。
在MTT分割结构中,可以使用四叉树(QT)分割、二叉树(BT)分割以及一种或多种类型的三叉树(triple tree,TT)(也称为三进制树(ternary tree,TT))分割来对块进行分割。三叉(triple)或三进制(ternary)树分割是将一个块划分为三个子块的分割。在一些示例中,三叉(triple)或三进制(ternary)树分割在不经过中心分隔原始块的情况下将块分隔为三个子块。MTT中的分割类型(例如QT、BT和TT)可以是对称或不对称的。
在一些示例中,视频编码器200和视频解码器300可以使用单个QTBT或MTT结构来代表亮度分量和色度分量中的每一个,而在其他示例中,视频编码器200和视频解码器300可以使用两个或更多个QTBT或MTT结构,比如用于亮度分量的一个QTBT/MTT结构和用于两个色度分量的另一QTBT/MTT结构(或用于各自色度分量的两个QTBT/MTT结构)。
视频编码器200和视频解码器300可以配置为使用根据HEVC的四叉树分割、QTBT分割、MTT分割或其他分割结构。出于说明的目的,针对QTBT分割给出了本公开的技术的描述。然而,应该理解的是,本公开的技术还可以应用于配置使用四叉树分割或其它类型的分割的视频译码器。
在图片中,可以以各种方式对块(例如CTU或CU)进行分组。作为一个示例,砖块(brick)可以表示图片中特定片(tile)内的CTU行的矩形区。片可以是图片中在特定片列和特定片行内的CTU的矩形区。片列表示CTU的矩形区,其高度等于图片的高度并且其宽度由(例如在图片参数集中的)语法元素规定。片行表示CTU的矩形区,其具有由(例如在图片参数集中的)语法元素规定的高度,并且其宽度等于图片的宽度。
在一些示例中,可以将片分割成多个砖块,每一个砖块可以包括片内一个或多个CTU行。没有分割为多个砖块的片也可以称为砖块。但是,作为片的真子集的砖块不能称为片。
图片中的砖块也可以按条带排列。条带可以是图片的砖块的整数倍,这些砖块可以排他地包含在单个网络抽象层(NAL)单元中。在一些示例中,条带包括多个完整片或仅仅一个片的完整砖块的连续序列。
本公开可以互换地使用“N×N”和“N乘N”来表示块(比如CU或其他视频块)在垂直和水平维度方面的样点维度,例如16×16样点或16乘16样点。总的来说,16×16CU在垂直方向上将有16个样点(y=16),在水平方向上将有16个样点(x=16)。同样地,N×N的CU一般地在垂直方向上具有N个样点,在水平方向上具有N个样点,其中N代表非负整数值。CU中的样点可以按行和列来排列。此外,CU在水平方向上不必具有与垂直方向上相同数量的样点。举例来说,CU可以包含N×M个样点,其中M不一定等于N。
视频编码器200对代表预测和/或残差信息以及其他信息的CU的视频数据进行编码。预测信息指示将如何预测CU以便形成用于CU的预测块。残差信息总体上代表编码前CU的样点与预测块之间的逐样点差异。
为了预测CU,视频编码器200总体上可以通过帧间预测或帧内预测来形成用于CU的预测块。帧间预测总体上是指从先前译码的图片的数据中预测CU,而帧内预测总体上是指从同一图片的先前译码数据中预测CU。为了执行帧间预测,视频编码器200可以使用一个或多个运动矢量来生成预测块。视频编码器200总体上可以执行运动搜索以识别例如在CU和参考块之间的差异的方面与CU紧密地匹配的参考块。视频编码器200可以使用绝对差之和(SAD)、平方差之和(SSD)、平均绝对差(MAD)、均方差(MSD)或其他此类差值计算来计算差值度量以确定参考块是否与当前CU紧密地匹配。在某些示例中,视频编码器200可以使用单向预测或双向预测来预测当前CU。
JEM和VVC的一些示例还提供了仿射运动补偿模式,其可以视为帧间预测模式。在仿射运动补偿模式中,视频编码器200可以确定代表非平移运动的两个或更多个运动矢量,比如放大或缩小、旋转、透视运动或其他不规则运动类型。
为了执行帧内预测,视频编码器200可以选择帧内预测模式来生成预测块。JEM和VVC的一些示例提供了六十七种帧内预测模式,包括各种方向的模式以及平面模式和DC模式。总的来说,视频编码器200选择帧内预测模式,其描述当前块(例如CU的块)的邻近样点,以从其预测当前块的预测样点。假设视频编码器200以光栅扫描顺序(从左到右、从上到下)对CTU和CU进行译码,则此类样点总体上可以在与当前块相同的图片中在当前块的上方、上左侧或左侧。
视频编码器200对代表当前块的预测模式的数据进行编码。举例来说,对于帧间预测模式,视频编码器200可以对数据进行编码,该数据代表使用了各种可用帧间预测模式中的哪一种以及对应模式的运动信息。对于单向或双向帧间预测,例如视频编码器200可以使用高级运动矢量预测(AMVP)或合并模式来对运动矢量进行编码。视频编码器200可以使用类似模式来对仿射运动补偿模式的运动矢量进行编码。
在预测(比如块的帧内预测或帧间预测)之后,视频编码器200可以计算块的残差数据。残差数据(比如残差块)代表块与该块的预测块之间的逐样点差异,预测块是使用对应预测模式形成。视频编码器200可以将一个或多个变换应用于残差块以在变换域而非样点域中产生变换数据。举例来说,视频编码器200可以将离散余弦变换(DCT)、整数变换、小波变换或概念上类似的变换应用于残差视频数据。另外,视频编码器200可以在一次变换之后应用二次变换,比如取决于模式的不可分二次变换(MDNSST)、取决于信号的变换、Karhunen-Loeve变换(KLT)等。视频编码器200在应用一个或多个变换之后产生变换系数。
如上所述,在进行任何变换以产生变换系数之后,视频编码器200可以对变换系数执行量化。量化总体上是指对变换系数进行量化来可能地减少用于代表变换系数的数据量,从而提供进一步的压缩的过程。通过执行量化过程,视频编码器200可以减小与变换系数中的一些或所有相关联的比特深度。例如,视频编码器200可以在量化期间将n比特值四舍五入为m比特值,其中n大于m。在一些示例中,为了执行量化,视频编码器200可以对待量化的值执行按位右移。
量化之后,视频编码器200可以扫描变换系数,从而从包括量化变换系数的二维矩阵中产生一维矢量。可以将扫描设计为将较高能量(因此频率较低)的变换系数放在矢量的前面,并将较低能量(因此频率较高)的变换系数放在矢量的后面。在一些示例中,视频编码器200可以利用预定义的扫描顺序来对量化变换系数进行扫描以产生序列化的矢量,然后对矢量的量化变换系数进行熵编码。在其他示例中,视频编码器200可以执行自适应扫描。在对量化变换系数进行扫描以形成一维矢量之后,视频编码器200可以例如根据上下文自适应二进制算术译码(CABAC)来对一维矢量进行熵编码。视频编码器200还可以熵编码用于语法元素的值,语法元素描述与视频解码器300在解码视频数据中使用的编码视频数据相关联的元数据。
为了执行CABAC,视频编码器200可以将上下文模型内的上下文分配给待发送的符号。例如,上下文可以涉及符号的邻近值是否是零值。概率确定可以是基于分配给符号的上下文。
视频编码器200可以进一步地生成例如在图片标头、块标头、条带标头中到视频解码器300的语法数据,比如基于块的语法数据、基于图片的语法数据以及基于序列的语法数据,或者生成其他语法数据,比如序列参数集(SPS)、图片参数集(PPS)或视频参数集(VPS)。视频解码器300可以类似地对此类语法数据进行解码以确定如何解码对应视频数据。
以此方式,视频编码器200可以生成包括编码视频数据的比特流,例如描述将图片分割成块(例如CU)的语法元素以及块的预测和/或残差信息。最终,视频解码器300可以接收比特流并且解码编码视频数据。
总的来说,视频解码器300执行由视频编码器200执行的相反过程以对比特流的编码视频数据进行解码。例如,视频解码器300可以使用CABAC,以与视频编码器200的CABAC编码过程基本相似(尽管与之相反)的方式,对比特流的语法元素的值进行解码。语法元素可以定义分割信息,该分割信息关于将图片分割为CTU和根据比如QTBT结构的对应分割结构对每一个CTU进行分割以定义CTU的CU。语法元素可以进一步定义视频数据的块(例如CU)的预测和残差信息。
例如,可以由量化变换系数代表残差信息。视频解码器300可以逆量化和逆变换块的量化变换系数以重现该块的残差块。视频解码器300使用信令通知的预测模式(帧内或帧间预测)和相关的预测信息(例如用于帧间预测的运动信息)来形成块的预测块。然后,视频解码器300可以(在逐样点的基础上)组合预测块和残差块以再现原始块。视频解码器300可以执行附加过程(诸如执行去方块过程)来减少沿块边界的视觉伪像。
本公开总体上可以表示“信令通知”某些信息,比如语法元素。术语“信令通知”总体上可以指对于语法元素和/或用于对编码视频数据进行解码的其他数据的值的通信。也就是说,视频编码器200可以信号通知比特流中的语法元素的值。总的来说,信令通知是指在比特流中生成值。如上所述,源设备102可以基本上实时地(或非实时地,比如可能在将语法元素存储到存储设备112以供稍后由目标设备116取回时发生)将比特流传送到目标设备116。
图2A和2B是图示示例四叉树二叉树(QTBT)结构130和对应编码树单元(CTU)132的概念图。实线代表四叉树划分,虚线指示二叉树划分。在二叉树的每一个划分(即非叶)节点中,信令通知一个标志以指示使用了哪种划分类型(即水平或垂直),其中在此示例中,0指示水平划分,1指示垂直划分。对于四叉树划分,由于四叉树节点将块水平地和垂直地分割为具有相等尺寸的4个子块,因此无需指示划分类型。相应地,视频编码器200可以编码QTBT结构130的区域树级(即实线)的语法元素(例如划分信息)和QTBT结构130的预测树级(即虚线)的语法元素(例如划分信息),并且视频解码器300可以对以上进行解码。对于QTBT结构130的终端叶节点代表的CU,视频编码器200可以编码视频数据(比如预测和变换数据),并且视频解码器300可以对以上进行解码。
总的来说,图2B的CTU 132可以与参数相关联,这些参数定义与第一和第二级的QTBT结构130的节点相对应的块的尺寸。这些参数可以包括CTU尺寸(代表样点中CTU 132的尺寸)、最小四叉树尺寸(MinQTSize,代表最小允许的四叉树叶节点尺寸)、最大二叉树尺寸(MaxBTSize,代表最大允许的二叉树根节点尺寸)、最大二叉树深度(MaxBTDepth,代表最大允许的二叉树深度)和最小二叉树尺寸(MinBTSize,代表最小允许的二叉树叶节点尺寸)。
与CTU相对应的QTBT结构的根节点在QTBT结构的第一级可以具有四个子代节点,每个子代节点可以根据四叉树分割来进行分割。即,第一级的节点是叶节点(没有子代节点)或具有四个子代节点。QTBT结构130的示例代表这样的节点,其包括具有实线分支的子代节点和父节点。如果第一级的节点不大于最大允许的二叉树根节点尺寸(MaxBTSize),则能够通过各自的二叉树进一步对节点进行分割。能够迭代一个节点的二叉树划分,直到划分生成的节点达到最小允许的二叉树叶节点尺寸(MinBTSize)或最大允许的二叉树深度(MaxBTDepth)。QTBT结构130的示例将这样的节点代表为具有虚线分支。二叉树叶节点表示为编码单元(CU),其用于预测(例如图片内或图片间预测)和变换,而无需任何进一步分割。如上所述,CU也可以表示为“视频块”或“块”。
在QTBT分割结构的一个示例中,CTU尺寸设置为128×128(亮度样点和两个对应的64×64色度样点),MinQTSize设置为16×16,MaxBTSize设置为64×64,MinBTSize(用于宽度和高度)设置为4,MaxBTDepth设置为4。首先,将四叉树分割应用于CTU来生成四叉树叶节点。四叉树叶节点可以具有从16×16(即MinQTSize)到128×128(即CTU尺寸)的尺寸。如果叶四叉树节点为128×128,则由于其尺寸超过MaxBTSize(在此示例中为64×64),因此不会进一步被二叉树划分。否则,叶四叉树节点将进一步进行二叉树分割。因此,四叉树叶节点也是二叉树的根节点,且具有为0的二叉树深度。当二叉树深度达到MaxBTDepth(在此示例中为4)时,不允许进一步划分。当二叉树节点具有等于MinBTSize(在此示例中为4)的宽度时,这意味着不允许进一步的水平划分。类似地,具有等于MinBTSize的高度的二叉树节点表明不允许对该二叉树节点进行进一步的垂直划分。如上所述,二叉树的叶节点称为CU并且根据预测和变换对其进行进一步处理而无需进一步分割。
JVET-K0072描述了用于网格译码量化(TCQ)的技术。在实施JVET-K0072的TCQ提议时,视频译码器切换地使用两个标量量化器用于量化/去量化。视频编码器基于在扫描顺序中当前变换/量化系数之前的量化系数的奇偶校验(即最低有效位),确定要对当前变换/量化系数使用的标量量化器。
JVET-K0072还描述了与TCQ耦合的系数译码方案。在JVET-K0072提议中,视频编码器基于所使用的量化器执行用于解码量化系数的上下文的选择。具体地,指示系数为零或非零的系数有效标志(SIG)具有三个上下文模型集,并且为特定SIG选择的上下文模型集取决于用于关联系数所使用的量化器。因此,当开始对当前系数的SIG值进行编码/解码时,视频编码器基于前一扫描位置中的系数的奇偶性(是一个已知值)来确定当前系数的量化器,并由此确定用于该系数的SIG的上下文集。
例如通过完全重构先前的绝对级(absLevel),视频译码器可以确定先前扫描位置中的奇偶校验。但是,此技术潜在地限制吞吐量。在JVET-K0071中,提出了一种替代方案,即在比特流中显式传输每个非零系数的奇偶校验并在移至下一个扫描位置之前对其进行解码,此替代方案在VVC的早期草案中被采用。以下提供JVET-K0071的更多细节。
将TU分隔为不重叠的子块,称为译码组(CG),其尺寸通常为4×4。此处描述的解码过程适用于4×4CG,但可以轻松扩展到其他CG尺寸。
视频编码器200和视频解码器300可以配置为用于处理比特流中的语法元素。在一个示例译码方案中,五个语法元素被用于代表absLevel的值。在此方案中,如果absLevel为0,则语法元素“sig_coeff_flag”等于0;否则,该标志等于1。如果sig_coeff_flag等于1,则在比特流中存在语法元素“par_level_flag”。如果absLevel是奇数,则语法元素“par_level_flag”等于0;如果absLevel是偶数,则语法元素“par_level_flag”等于1。如果sig_coeff_flag等于1,则在比特流中存在语法元素“rem_abs_gt1_flag”。如果absLevel大于2,则语法元素“rem_abs_gt1_flag”等于1;否则,此标志等于0。如果rem_abs_gt1_flag等于1,则在比特流中存在语法元素“rem_abs_gt2_flag”。如果absLevel大于4,则语法元素“rem_abs_gt2_flag”等于1;否则,该标志等于0。如果rem_abs_gt2_flag等于1,则在比特流中存在语法元素“abs_remainder”。
在下面和在图3和5中,为了简化描述,将sig_coeff_flag、par_level_flag、rem_abs_gt1_flag、rem_abs_gt2_flag以及abs_remainder分别表示为SIG、Par、Gt1、Gt2以及rem。当不从比特流解析时,视频解码器300可以配置为将以上语法元素中的任何一个设置为默认值0。给定这五个语法元素的值,视频解码器300可如公式(1)所示计算absLevel的值。
absLevel=SIG+Par+(Gt1<<1)+(Gt2<<1)+(rem<<1)     (1)
在absLevel大于6的译码场景中,所有五个语法元素都是从比特流中解析的。
图3示出了CG中所有absLevels值的五个语法元素的示例顺序。图3中的顺序示出了按照JVET-K0072的CG中的代表absLevel的语法元素的顺序。
CG中的位置最多以三个通路(pass)进行扫描。在第一通路中(图3中标记为Pass#1),对于系数0到15中的每一个,对标志SIG、Par和Gt1进行解析。如果特定系数的SIG标志为零,则该系数没有关联Par或Gt1标志。因此,在第一通路中,仅非零的SIG标志之后跟随有对应的Par和Gt1标志。第一通路之后,可以确定每个位置的部分absLevel,表示为absLevel1,如(2)所示。
absLevel1=SIG+Par+(Gt1<<1)           (2)
如果在第一通路中存在至少一个非零的Gt1,则扫描第二通路(图3中的Pass#2)。在第二通路中,对具有非零Gt1的系数的Gt2标志进行解析。在第一通路和第二通路的二进制数全部是常规译码的,这意味着二进制数的概率分布由适当选择的上下文模型进行建模,如下面更详细地描述的建模。如果在第二通路中至少存在一个非零的Gt2,则扫描第三通路(图3中的Pass#3),并且对具有非零的Gt2的系数的rem值进行解析。由于rem值不是二进制的,因此rem值的二进制版本的二进制数可能全部被旁路译码,这意味着这些二进制数被假定为均匀分布并且不需要上下文选择。
视频译码设备(比如源设备102和视频编码器200或者目标设备116和视频解码器300)典型地可以比常规译码二进制数快得多地处理旁路译码二进制数,因为旁路译码的二进制数能更容易地被并行处理,这是由于旁路译码二进制数不具有与上下文选择相关的数据依赖性,并且因为旁路二进制数的算术译码总体上更简单,其只需要右移而不是常规译码二进制数所需的表查找。因此,可以通过减少常规译码二进制数的数量并改用旁路译码二进制数来提高视频译码器的整体吞吐量。
JVET-K0072中提出的系数译码方案至少存在两个潜在问题。第一个潜在的问题是常规译码二进制数的数量增加。由于上下文选择和区间细分计算,常规译码二进制数的处理比旁路译码二进制数的处理要慢得多。在JVET-K0072中,CG中的常规译码二进制数的数量多达80个,而JEM或HEVC中相比较地为25个(SIG为16个、gt1为8个、gt2为1个)。在一般情况下,与JEM相比,JVET-K0072中使用的代表absLevel的二进制数总量要高出40%至90%,这取决于不同的位速率。另一个潜在的问题是,具有不同上下文集的常规译码二进制数是交织的。当将使用相同逻辑进行上下文选择的二进制数组合在一起时,每个周期处理多个二进制数所需的推测性计算就更少了。在JVET-K0072中,对于每个系数,SIG、Par和Gt1(其使用不同上下文集)是交织的(如图3所示)。
视频编码器200和视频解码器300可以配置为执行上下文建模。JVET-K0072中使用的上下文建模在此也进行了简要介绍,因为本公开对其进行了改进。术语上下文建模总体上是指为待解码的二进制数选择概率模型(又称为上下文)。在JVET-K0072中,SIG、Par、Gt1以及Gt2标志需要上下文建模,并且这些选择取决于局部邻域中的absLevel1的值,表示为N。在一些实施方案中,可将模板内但当前TU外的位置从N中排除。
图4示出了可用于选择概率模型的模板的图示。框150代表变换单元。框150中的位置X代表当前扫描位置,而框150中的位置Y代表用于确定当前扫描位置的概率模型的局部邻域。
对于当前扫描位置(参见图4中具有有X的黑色正方形),视频编码器200和视频解码器300可以基于Y位置确定用于SIG、Par、Gt1以及Gt2标志的上下文索引,分别表示为ctxIdxSig、ctxIdxPar、ctxIdxGt1以及ctxIdxGt2。为了确定ctxIdxSig、ctxIdxPar、ctxIdxGt1以及ctxIdxGt2,视频编码器200和视频解码器300首先确定三个变量numSig、sumAbs1和d。术语numSig代表N中非零SIG的数量,由下面的(3)表示。
sumSig=∑i∈NSIG(i)              (3)
术语sumAbs1代表N中的absLevel1之和,由下面的(4)表示。
sumAbs1=∑i∈NabsLevel1(i)              (4)
术语d代表TU内部当前位置的对角线度量,如下面的(5)所表示,
d=x+y              (5)
其中x和y代表TU内部当前位置的坐标。
给定sumAbs1和d,视频编码器200和视频解码器300可以按照如下确定用于解码SIG的上下文索引:
·对于亮度,视频编码器200和视频解码器300确定ctxIdxSig如下:
ctxIdxSig=18*max(0,state-1)+min(sumAbs1,5)+(d<2?12:(d<5?6:0))   (6)
·对于色度,视频编码器200和视频解码器300确定ctxIdxSig如下:
ctxIdxSig=12*max(0,state-1)+min(sumAbs1,5)+(d<2?6:0))         (7)
如JVET-K0072中所定义的,在上面的等式(6)和(7)中,变量“state”表示状态机的当前状态。
给定sumSig、sumAbs1和d,视频编码器200和视频解码器300可以如下确定用于解码Par的上下文索引:
·如果当前扫描位置等于最后一个非零系数的位置,则ctxIdxPar为0。
·否则,
○对于亮度,ctxIdxPar由以下确定:
ctxIdxPar=1+min(sumAbs1-numSig,4)+(d==0?15:(d<3?10:(d<10?5:0)))(8)
○对于色度,ctxIdxPar由(9)确定
ctxIdxPar=1+min(sumAbs1-numSig,4)+(d==0?5:0)       (9)
ctxIdxGt1和ctxIdxGt2设置为ctxIdxPar的值。
视频编码器200和视频解码器300可以执行absLevel重构,方法与JVET-K0072中描述的相同。
根据本公开的技术,为了减少常规译码二进制数的数量,视频编码器200和视频解码器300可以在系数组中使用预定数量(C1)的常规译码二进制数来对系数组中的系数的sig-par-gt1通路(即第一通路)进行译码,直到达到常规译码二进制数阈值C1。将针对4×4CG来描述本公开的技术,但是本公开的技术总体上可应用于任何尺寸的CG。
在一个示例实施方式中,视频编码器200和视频解码器300配置为将最后系数的所有二进制数(其中达到常规二进制数计数阈值C1)译码为常规二进制数。在可能仅包括常规译码二进制数的第一通路之后,视频编码器200和视频解码器300可以使用常规二进制数对预定数量(C2)的gt2标志(如果可用)进行译码。值等于2的C2是一种可以很好地权衡性能复杂性的特定选择;然而,也可以使用C2的其他值。在第二通路之后,可以使用旁路二进制数对在第一通路和第二通路之后的所有剩余级系数进行译码。具体地,如图1所示,视频编码器200和视频解码器300可以使用下面描述的莱斯/格伦布译码组合,按照如图5所示的从具有剩余级信息的第一系数开始的译码扫描顺序,对剩余级进行译码。对于Gt2标志的译码,最后常规译码的Gt2标志不能超过第一通路中最后常规译码的Gt1标志的位置,即在图5中,j<=K,如果未达到C2阈值,甚至不能超过C2。
图5示出了语法元素的示例扫描顺序。在图5的示例中,在第一通路中,视频编码器200和视频解码器300对SIG、Par和Gt1标志进行译码,直到达到常规译码二进制数的阈值数。在图5的示例中,C1代表常规译码二进制数的阈值数并且出现在系数K处。一旦达到常规译码二进制数的阈值数,则视频编码器200和视频解码器300可以使用常规译码二进制数对系数K的剩余标志(比如Par和Gt1(如果对于系数K存在))进行译码,然后第一通完成。在第二通路中,视频编码器200和视频解码器300对Gt2标志进行译码,直到达到常规译码二进制数的第二阈值数。在图5的示例中,C2代表常规二进制数的第二阈值数并且出现在系数j处。取决于特定的译码场景,系数j可以是系数1到N中的任何一个。在对系数j的Gt2标志进行译码之后,第二通路完成。
对于第三通路,视频编码器200和视频解码器300可以对具有要译码的剩余级的那些系数执行剩余级译码。对于系数K+1到N,剩余级代表系数的绝对级。对于系数0到K,剩余级代表中间值和绝对级之间的差。系数的中间级是基于SIG、Par和Gt1标志而确定的级别,并且对于某些系数,也基于Gt2标志来确定。视频编码器200和视频解码器300可以使用JVET-K0072中描述的方案对系数的remLevel部分进行译码,remLevel部分的前缀二进制数在第一通路和第二通路中被译码为常规二进制数,其中莱斯参数(ricePar)是根据以下规则确定:
·如果sumAbs–numSig小于12,则将ricePar设置为等于0;
·否则,如果sumAbs–numSig小于25,则将ricePar设置为等于1;
·否则,将ricePar设置为等于2。
如图6所示,对于JVET-K0072,ricePar用于推导阈值以在旁路译码的格伦布-莱斯码和指数-格伦布码之间切换。
本公开描述了用于对在第一通路中不是常规二进制数译码的系数(即在达到C1常规译码二进制数阈值之后CG的剩余系数)的remLevel值进行译码的技术。本公开描述了用于修改的ricePar推导的技术,该推导取决于邻近系数的绝对值的总和。邻近系数可以例如是与图4中标识为相同的邻近系数,或者可以是不同的系数。
在一些示例中,视频编码器200和视频解码器300可以根据TCQ状态(对于非TCQ情况假设为0)和邻域模板中的绝对值之和来执行从系数级到要译码的码字的映射。除了绝对值与TCQ状态相关性之和之外,对系数位置(比如TU中对角线位置)的依赖也可以用作参数以定义用于将系数值重新映射到码字的阈值(pos0)。
视频编码器200和视频解码器300可以配置为用于得出ricePar如下。视频编码器200和视频解码器300计算上下文模板中的系数的绝对值(即绝对系数值)之和。
Figure GDA0003908352570000231
视频编码器200和视频解码器300将sumAbsLevel的最大值限制为31,以便从下表中查找riceParameter。视频编码器200和视频解码器300基于sumAbsLevel或31中的较小者确定r的值。下表显示了位置0到31处的32个值的数组。如果sumAbsLevel大于31,则r的值等于位置sumAbsLevel或位置31的值。
r=g_auGoRiceParsCoeff[min(sumAbsLevel,31)],其中
const uint32_t g_auiGoRiceParsCoeff[32]={0,0,0,0,0,0,0,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3};
视频编码器200和视频解码器300按照如下得出pos0值以用于剩余级的译码:
pos0=g_auigoRicePosCoeff0[max(0,state-1)][sumAbsLevel],其中
const uint32_t g_auiGoRicePosCoeff0[3][32]={{0,0,0,0,0,1,2,2,2,2,3,3,4,4,4,4,4,4,5,5,6,7,7,8,8,8,8,8,8,9,9,9},{1,1,1,1,2,3,4,4,5,6,6,7,8,8,8,9,10,11,12,12,12,12,14,15,15,15,16,16,16,16,17,17},
{1,1,2,2,2,3,4,4,5,6,6,7,8,8,9,9,10,11,12,12,12,12,14,15,15,16,16,16,16,17,17,17}
};
对于具有absLevel值的系数,视频编码器200和视频解码器300使用莱斯/指数-格伦布译码(如上所述计算出莱斯参数值r)计算要译码的absLevel0值,如下:
Figure GDA0003908352570000241
           
Figure GDA0003908352570000251
使用此技术,视频编码器200和视频解码器300可以将常规译码二进制数和旁路译码二进制数分为一个系数组,这增加了用于CABAC解析的吞吐量。
根据本公开的另一技术,在将一定数量的系数译码到系数组中之后,驱动状态机的奇偶校验位可以不改变状态。在这种情况下,因为不需要为了译码效率而改变状态,所以不需要将有效性和奇偶校验二进制数进行交织。因此,在系数组中解码了一定数量的系数之后,系数译码方案可以采用sig-gt1-gt2-remLevel有序译码的形式,sig-gt1-gt2-remLevel有序译码消除了对TCQ状态的依赖,可以以更细的粒度移至旁路译码二进制数(减少常规译码二进制数),其中sig、大于1(gt1)、大于2(gt2)常规译码二进制数可以转换为旁路译码二进制数。
视频编码器200和视频解码器300可以配置为实现TU级常规二进制数计数。在VVC和HEVC中,当前,在系数组(CG)级上施加常规二进制数总量约束。系数组以16个系数为单位,分别是(4×4)、2×8、8×2、1×16、16×1或有时在2×2级(对于色度)。当前在VVC中,对于16个系数CG允许使用32个常规译码二进制数。对于2×2色度CG,允许使用8个常规译码二进制数。基本上,在CG级,每个系数限制为2个常规二进制数。通过在CG级施加限制,此限制考虑了常规二进制数总量对系数总量的最坏情况的限制。可以通过在TU级施加一个限制(TU由一组用于系数译码的CG组成)来放松约束,该限制典型地与TU尺寸成正比。例如,8×8TU将具有四个4×4CG。TU的常规译码二进制数总量可以对于亮度分量设置为总计4×32=128。将CG级限制放宽到TU级将增加常规译码二进制数的平均数量。
从最后位置开始,视频编码器200和视频解码器300可以配置为对sig、gt1、par、gt3(abs_level大于3标志)标志(即4个标志)的预定数目的常规译码二进制数进行译码。视频编码器200和视频解码器300可以配置为以4为一组(如果存在)对这些标志进行译码,直到达到常规译码二进制数总量。因此,在此提出的方案中,将有可能对每个CG的16*4=64个常规译码二进制数(而不是VVC中当前情况的32个)进行译码,直到达到常规译码二进制数总量的目标限制。在达到常规译码二进制数总量之后,视频编码器200和视频解码器300可以通过旁路译码将其余的系数完全代表为VVC草案4中描述的dec_abs_level,并且也如上文针对剩余级译码所描述的。
可以通过在CG级扩充当前限制来设置常规二进制数总量的限制。因此,具有N个16系数CG的TU可以具有常规二进制数总的比特限制为N×32,每个系数为基本上2个常规二进制数。这可以扩展到其他限制,即每个系数目标有一些常规的二进制数计数。另外,取决于最后过去的系数位置,可以根据系数组的数量或在译码系数的扫描期间覆盖的系数的数量来设置目标。可以通过对于覆盖译码系数的扫描中的系数数量的每个系数的常规二进制数计数来设置目标。
此限制还可以对未译码的系数组不计数,以设置目标限制或者不考虑某些类型TU的归零区域。因此,如果事先已知在CG中不存在系数,则视频编码器200和视频解码器300可以设置较低的总TU级以减少常规译码二进制数的平均数。
使用此新的设计,只有达到常规二进制数总量的最后译码系数组译码才类似于当前的CG级系数译码,其中将具有混合常规译码二进制数(sig、gt1、par、gt2)和CG中的完全译码系数级。对于所有系数,总是有abs_remainder[3]个代码,这些代码具有常规译码二进制数部分,用于代表剩余级的一半。
可以使每个系数的目标常规二进制数取决于TU尺寸以及要在TU中译码的CG的数量。因此,具有许多系数的较大TU,可以对于每个系数分配较低的常规二进制数以减小平均常规二进制数计数。
视频编码器200和视频解码器300可以将TU中用于sig_flag、gt1_flag、parity_flag、gt3_flag(旧的gt2_flag)的TU级常规二进制数计数的设置限制到对于16个系数CG为CG计数的28倍(对于四个系数CG中的每一个为7倍),或者对于用于亮度的16个系数(对于4个系数CG中的每一个为7倍)CG为28倍,对于16个系数色度为24倍,以及对于4个色度CG为6倍。
在另一示例中,可以将TU级限制设置为由变换单元的非归零区域(当前维度大于32的大型变换归零到32×N、N×32区域,N<=32)定义的总数(例如常规地译码二进制数的总数),而不是依赖于TU尺寸或译码CG的数量。一些利用多个变换集(MTS)的变换在变换级利用归零(维度大于16归零到16×N、N×16区域,N<=16)。而且,二次变换(NSST)可以在较小的限制处利用类似的归零方案。因此,在一些示例中,可以由非归零区域中的样点的数量乘以因子(例如2、1.75二进制数/每个样点)来定义限制(例如常规地译码二进制数的限制)。因子2对应于16个系数CG的32个常规二进制数。因子1.75对应于每16个系数CG的28个二进制数。可以为色度TU设置不同的限制。可以将此技术与对给未译码的CG分配的二进制数进行不计数来组合使用,因此将总起始限制设置为TU级,并且在解码系数时,如果遇到跳过的或未译码的CG,则将限制降低为给CG分配的常规二进制数。在一些示例中,这可能仅应用于跳过的CG(因一些变换的归零属性而为零的CG)。
图7是图示可以执行本公开的技术的示例视频编码器200的框图。提供图7是为了解释的目的并且不应认为是对本公开中广泛示例和描述的技术的约束。出于说明的目的,本公开在比如开发中的HEVC视频译码标准和H.266视频译码标准的视频译码标准的上下文中描述了视频编码器200。然而,本公开的技术不限于这些视频译码标准并且总体上可应用于视频编码和解码。
在图7的示例中,视频编码器200包括视频数据存储器230、模式选择单元202、残差生成单元204、变换处理单元206、量化单元208、逆量化单元210、逆变换处理单元212、重构单元214、滤波器单元216、解码图片缓冲器(DPB)218以及熵编码单元220。
视频数据存储器230可以存储将由视频编码器200的组件进行编码的视频数据。视频编码器200可以从例如视频源104(图1)接收存储在视频数据存储器230中的视频数据。DPB 218可以用作参考图片存储器,参考图片存储器存储参考视频数据,供视频编码器200用于预测后续视频数据时使用。视频数据存储器230和DPB 218可以由多种存储设备中的任何一种形成,比如动态随机存取存储器(DRAM),包括同步DRAM(SDRAM)、磁阻RAM(MRAM)、阻变RAM(RRAM)或其他类型的存储设备。视频数据存储器230和DPB 218可以由相同的存储设备或单独的存储设备提供。在各种示例中,视频数据存储器230可以与视频编码器200的其他组件一起置于片上,如图所示,或者相对于那些组件置于片外。
在本公开中,对视频数据存储器230的引用不应解释为限于视频编码器200内部的存储器(除非特别说明如此)或者视频编码器200外部的存储器(除非特别说明如此)。当然,对视频数据存储器230的引用应理解为存储视频编码器200接收的用于编码的视频数据(例如当前块的待编码视频数据)的参考存储器。图1的存储器106还可以对视频编码器200各个单元输出提供临时存储。
图示的图7的各个单元用来帮助理解由视频编码器200执行的操作。这些单元可以实现为固定功能电路、可编程电路或其组合。固定功能电路是指提供特定功能并预设了能够执行的操作的电路。可编程电路是指可以被编程来执行各种任务并且在能够执行的操作中提供灵活功能的电路。例如,可编程电路可以执行软件或固件,软件或固件使可编程电路以软件或固件的指令所定义的方式操作。固定功能电路可以执行软件指令(例如来接收参数或输出参数),但是固定功能电路执行的操作类型总体上是不可变的。在一些示例中,一个或多个单元可以是不同的电路块(固定功能或可编程),并且在一些示例中,一个或多个单元可以是集成电路。
视频编码器200可以包括由可编程电路形成的算术逻辑单元(ALU)、基本功能单元(EFU)、数字电路、模拟电路和/或可编程内核。在使用由可编程电路执行的软件来执行视频编码器200的操作的示例中,存储器106(图1)可以存储视频编码器200接收和执行的软件的指令(例如目标代码),或视频编码器200(未示出)内另一存储器可以存储这样的指令。
视频数据存储器230配置为存储接收的视频数据。视频编码器200可以从视频数据存储器230中取回视频数据的图片,并将视频数据提供给残差生成单元204和模式选择单元202。视频数据存储器230中的视频数据可以是待编码的原始视频数据。
模式选择单元202包括运动估计单元222、运动补偿单元224和帧内预测单元226。模式选择单元202可以包括附加功能单元,用于根据其他预测模式来执行视频预测。作为示例,模式选择单元202可以包括调色板单元、帧内块复制单元(其可以是运动估计单元222和/或运动补偿单元224的一部分)、仿射单元、线性模型(LM)单元等。
模式选择单元202总体上协调多个编码次数来测试编码参数的组合以及得出用于这种组合的速率失真值。编码参数可以包括CTU到CU的分割、CU的预测模式、CU的残差数据的变换类型、CU的残差数据的量化参数等。模式选择单元202可以最终选择编码参数的组合,该组合具有比其他测试的组合更佳的速率失真值。
视频编码器200可以将从视频数据存储器230中取回的图片分割为一系列CTU,并将一个或多个CTU封装在条带内。模式选择单元202可以根据树结构(比如上述HEVC的QTBT结构或四叉树结构)来对图片的CTU进行分割。如上所述,视频编码器200可以根据树结构通过对CTU进行分割来形成一个或多个CU。这样的CU总体上也可以称为“视频块”或“块”。
总的来说,模式选择单元202还控制其组件(例如运动估计单元222、运动补偿单元224和帧内预测单元226)以生成当前块(例如当前CU或HEVC中PU和TU的重叠部分)的预测块。为了对当前块进行帧间预测,运动估计单元222可以执行运动搜索来识别在一个或多个参考图片(例如存储在DPB218中的一个或多个先前译码的图片)中的一个或多个紧密匹配的参考块。特别地,运动估计单元222可以根据例如绝对差之和(SAD)、差值平方和(SSD)、平均绝对差(MAD)、均方差(MSD)等来计算代表潜在参考块与当前块有多相似的值。运动估计单元222总体上可以使用当前块与考虑中的参考块之间的逐样点差异来执行这些计算。运动估计单元222可以识别具有这些计算生成的最低值的参考块,指示与当前块最紧密匹配的参考块。
运动估计单元222可以形成一个或多个运动矢量(MV),运动矢量定义参考图片中参考块相对于当前图片中当前块的位置。然后,运动估计单元222可以将运动矢量提供给运动补偿单元224。例如,对于单向帧间预测,运动估计单元222可以提供单个运动矢量,而对于双向帧间预测,运动估计单元222可以提供两个运动矢量。然后,运动补偿单元224可以使用运动矢量来生成预测块。例如,运动补偿单元224可以使用运动矢量来检索参考块的数据。作为另一示例,如果运动矢量具有分数样点精度,则运动补偿单元224可以根据一个或多个插值滤波器来对预测块进行插值。此外,对于双向帧间预测,运动补偿单元224可以检索由各自运动矢量标识的两个参考块的数据并且(例如通过逐样点平均或加权平均)组合检索的数据。
作为另一示例,对于帧内预测或帧内预测译码,帧内预测单元226可以根据与当前块邻近的样点来生成预测块。例如,对于定向模式,帧内预测单元226总体上可以数学地组合邻近样点值,并且在当前块上沿定义的方向填充这些计算值来产生预测块。作为另一示例,对于DC模式,帧内预测单元226可以计算当前块的邻近样点的平均值,并且生成预测块以包括对于预测块的每一个样点所得到的平均值。
模式选择单元202将预测块提供给残差生成单元204。残差生成单元204从视频数据存储器230接收当前块的原始未编码版本,并从模式选择单元202接收预测块。残差生成单元204计算当前块和预测块之间的逐样点差。得到的逐样点差定义当前块的残差块。在一些示例中,残差生成单元204还可以使用残差差分脉冲编码调制(RDPCM)来确定残差块中样点值之间的差以生成残差块。在某些示例中,可以使用执行二进制减法的一个或多个减法器电路来形成残差生成单元204。
在模式选择单元202将CU分割为PU的示例中,每个PU可以与亮度预测单元和对应的色度预测单元相关联。视频编码器200和视频解码器300可以支持具有各种尺寸的PU。如上所述,CU的尺寸可以指CU的亮度译码块的尺寸,而PU的尺寸可以指PU的亮度预测单元的尺寸。假设特定CU的尺寸为2N×2N,则视频编码器200可以支持2N×2N或N×N的PU尺寸用于帧内预测,以及2N×2N、2N×N、N×2N、N×N或类似的对称PU尺寸用于帧间预测。视频编码器20和视频解码器30还可以支持2N×nU、2N×nD、nL×2N和nR×2N的PU尺寸的非对称分割用于帧间预测。
在模式选择单元不将CU进一步分割为PU的示例中,每一个CU可以与亮度译码块和对应的色度译码块相关联。如上所述,CU的尺寸可以指CU的亮度译码块的尺寸。视频编码器200和视频解码器300可以支持2N×2N、2N×N或N×2N的CU尺寸。
对于其他视频译码技术,诸如作为一些示例的帧内块复制模式译码、仿射模式译码和线性模型(LM)模式译码,模式选择单元202经由与译码技术相关联的各自单元来生成正在被编码的当前块的预测块。在一些示例中,比如调色板模式译码,模式选择单元202可以不生成预测块,而是生成语法元素,语法元素指示基于所选调色板重构块的方式。在这样的模式中,模式选择单元202可以将这些语法元素提供给熵编码单元220,以对其进行编码。
如上所述,残差生成单元204接收当前块和对应预测块的视频数据。然后,残差生成单元204生成用于当前块的残差块。为了生成残差块,残差生成单元204计算预测块和当前块之间的逐样点差。从而,
变换处理单元206将一个或多个变换应用于残差块以生成变换系数的块(在本文中称为“变换系数块”)。变换处理单元206可以将各种变换应用于残差块以形成变换系数块。例如,变换处理单元206可以将离散余弦变换(DCT)、方向变换、Karhunen-Loeve变换(KLT)或概念上类似的变换应用于残差块。在一些示例中,变换处理单元206可以对残差块执行多次变换,例如,初次变换和比如旋转变换的二次变换。在一些示例中,变换处理单元206不将变换应用于残差块。
量化单元208可以对变换系数块中的变换系数进行量化以产生量化变换系数块。量化单元208可以根据与当前块相关联的量化参数(QP)值来对变换系数块的变换系数进行量化。视频编码器200(例如经由模式选择单元202)可以通过调整与CU相关联的QP值来调整应用于与当前块相关联的系数块的量化程度。量化可能会引入信息损失,从而,量化变换系数可能比变换处理单元206产生的原始变换系数具有更低的精度。
逆量化单元210和逆变换处理单元212可以分别对量化变换系数块应用逆量化和逆变换,以从变换系数块重构残差块。重构单元214可以基于重构残差块和由模式选择单元202生成的预测块来产生对应于当前块的重构块(尽管潜在地具有一些程度的失真)。例如,重构单元214可以将重构残差块的样点添加到模式选择单元202生成的预测块的对应样点以产生重构块。
滤波器单元216可以对重构块执行一个或多个滤波器操作。例如,滤波器单元216可以执行去方块操作来减少沿着CU的边缘的块状伪影。在一些示例中,可以跳过滤波器单元216的操作。
视频编码器200将重构块存储在DPB 218中。例如,在不需要滤波器单元216的操作的示例中,重构单元214可以将重构块存储到DPB 218。在需要滤波器单元216的操作的示例中,滤波器单元216可以将滤波后的重构块存储到DPB 218。运动估计单元222和运动补偿单元224可以从DPB 218中取回参考图片,该参考图片是由重构(并且潜在地滤波的)块形成的,来对随后编码图片的块进行帧间预测。另外,帧内预测单元226可以使用当前图片的DPB218中的重构块来对当前图片中的其他块进行帧内预测。
总的来说,熵编码单元220可以对从视频编码器200的其他功能组件接收的语法元素进行熵编码,语法元素包括上述用于系数译码的语法元素。例如,熵编码单元220可以对来自量化单元208的量化变换系数块进行熵编码。作为另一示例,熵编码单元220可以对来自模式选择单元202的预测语法元素(例如用于帧间预测的运动信息或用于帧内预测的帧内模式信息)进行熵编码。熵编码单元220可以对视频数据的另一示例的语法元素执行一个或多个熵编码操作来生成熵编码数据。例如,熵编码单元220可以对数据执行上下文自适应可变长度译码(CAVLC)操作、CABAC操作、可变到可变(V2V)长度译码操作、基于语法的上下文自适应二进制算术译码(SBAC)操作、概率区间分割熵(PIPE)译码操作、指数-格伦布译码操作或另一类型的熵编码操作。在一些示例中,熵编码单元220可以在语法元素未被熵编码的情况下以旁路模式操作。
视频编码器200可以输出比特流,其包括对条带或图片的块进行重构所需的熵编码语法元素。特别地,熵编码单元220可以输出比特流。
上述操作是针对块来描述的。这样的描述应该理解为是用于亮度译码块和/或色度译码块的操作。如上所述,在一些示例中,亮度译码块和色度译码块是CU的亮度和色度分量。在一些示例中,亮度译码块和色度译码块是PU的亮度和色度分量。
在一些示例中,不必针对色度译码块重复对于亮度译码块执行的操作。作为一个示例,不需要重复用于识别亮度译码块的运动矢量(MV)和参考图片的操作来识别用于色度块的MV和参考图片。相反,可以缩放亮度译码块的MV来确定色度块的MV,并且参考图片可以是相同的。作为另一示例,对于亮度译码块和色度译码块,帧内预测处理可以是相同的。
视频编码器200代表配置为编码视频数据的设备的示例,该设备包括配置为存储视频数据的存储器,以及在电路中实现并配置为确定变换单元的尺寸的一个或多个处理单元,其中,变换单元包括N个系数组并且每个系数组包括M个系数,其中,M和N为整数值;基于变换单元的尺寸确定变换单元的常规二进制数计数阈值;对用于变换单元的语法元素进行上下文编码,直到达到第一数量的常规译码二进制数;以及响应于达到第一数量的常规译码二进制数,对编码单元的附加语法元素进行旁路编码,其中,附加语法元素代表变换单元的第二系数集的值。
图8是图示可执行本公开的技术的示例视频解码器300的框图。提供图8是出于解释的目的,而非限制本公开中广泛示例和描述的技术。为了说明的目的,本公开描述了根据JEM和HEVC的技术描述的视频解码器300。然而,本公开的技术可以由配置为其他视频译码标准的视频译码设备来执行。
在图8的示例中,视频解码器300包括译码图片缓冲器(CPB)存储器320、熵解码单元302、预测处理单元304、逆量化单元306、逆变换处理单元308、重构单元310、滤波器单元312和解码图片缓冲器(DPB)314。预测处理单元304包括运动补偿单元316和帧内预测单元318。预测处理单元304可以包括附加单元以按照其他预测模式来执行预测。作为示例,预测处理单元304可以包括调色板单元、帧内块复制单元(其可以形成运动补偿单元316的一部分)、仿射单元、线性模型(LM)单元等。在其他示例中,视频解码器300可以包括更多、更少或不同的功能组件。
CPB存储器320可以存储将由视频解码器300的组件进行解码的视频数据,比如编码视频比特流。例如,可以从计算机可读介质110(图1)获得存储在CPB存储器320中的视频数据。CPB存储器320可以包括存储来自编码视频比特流的编码视频数据(例如语法元素)的CPB。而且,CPB存储器320可以存储除了译码图片的语法元素之外的视频数据,比如代表来自视频解码器300各个单元的输出的临时数据。DPB 314总体上存储解码图片,当对编码视频比特流的后续数据或图片进行解码时,视频解码器300可以输出解码图片和/或将其用作参考视频数据。CPB存储器320和DPB 314可以由多种存储设备中的任何一种形成,比如动态随机存取存储器(DRAM),包括同步DRAM(SDRAM)、磁阻RAM(MRAM)、阻变RAM(RRAM)或者其他类型的存储设备。CPB存储器320和DPB 314可以由相同的存储设备或独立的存储设备提供。在各种示例中,CPB存储器320可以与视频解码器300的其他组件置于片上,或者相对于那些组件置于片外。
另外地或可替代地,在一些示例中,视频解码器300可以从存储器120(图1)中取回译码视频数据。即存储器120可以如上述讨论与CPB存储器320一起存储数据。同样,当视频解码器300的某些或全部功能在将由视频解码器300的处理电路执行的软件实现时,存储器120可以存储将由视频解码器300执行的指令。
图示图8所示的各种单元以帮助理解由视频解码器300执行的操作。这些单元可以实现为固定功能电路、可编程电路或其组合。类似于图7,固定功能电路是指提供特定功能并且在可以执行的操作上预设的电路。可编程电路是指可以被编程来执行各种任务并且在能够执行的操作中提供灵活功能的电路。例如,可编程电路可以执行软件或固件,软件或固件使可编程电路以软件或固件的指令所定义的方式操作。固定功能电路可以执行软件指令(例如用来接收参数或输出参数),但是固定功能电路执行的操作类型总体上是不可变的。在一些示例中,单元中的一个或多个可以是不同的电路块(固定功能或可编程),并且在一些示例中,一个或多个单元可以是集成电路。
视频解码器300可包括ALU、EFU、数字电路、模拟电路和/或由可编程电路形成的可编程核心。在视频解码器300的操作由在可编程电路上执行的软件执行的示例中,片上或片外存储器可以存储视频解码器300接收并执行的软件的指令(例如目标代码)。
熵解码单元302可从CPB接收编码视频数据,并且对视频数据进行熵解码以再现语法元素,包括用于系数译码的上述语法元素。预测处理单元304、逆量化单元306、逆变换处理单元308、重构单元310和滤波器单元312可以基于从比特流中提取的语法元素来生成解码视频数据。
总的来说,视频解码器300在逐块的基础上重构图片。视频解码器300可单独地对每一个块执行重构操作(其中当前正在进行重构(即解码)的块可称为“当前块”)。
熵解码单元302可以对定义量化变换系数块的量化变换系数的语法元素以及比如量化参数(QP)和/或变换模式指示的变换信息进行熵解码。逆量化单元306可以使用与量化变换系数块相关联的QP来确定量化程度,并且同样地,确定逆量化程度以供逆量化单元306应用。逆量化单元306可以(例如执行按位左移操作来)对量化变换系数进行逆量化。逆量化单元306从而可以形成包括变换系数的变换系数块。
在逆量化单元306形成变换系数块之后,逆变换处理单元308可以将一个或多个逆变换应用于变换系数块来生成与当前块相关联的残差块。例如,逆变换处理单元308可以将逆DCT、逆整数变换、逆Karhunen-Loeve变换(KLT)、逆旋转变换、逆方向变换或另一逆变换应用于变换系数块。
进一步来说,预测处理单元304根据由熵解码单元302熵解码的预测信息语法元素来生成预测块。例如,如果预测信息语法元素指示当前块是帧间预测的,则运动补偿单元316可以生成预测块。在这种情况下,预测信息语法元素可以指示DPB 314中的参考图片,以从中取回参考块,以及指示识别参考图片中参考块相对于当前图片中的当前块的位置的运动矢量。运动补偿单元316总体上可以以与针对运动补偿单元224(图7)所描述的方式基本上相似的方式来执行帧间预测过程。
作为另一示例,如果预测信息语法元素指示当前块是帧内预测的,则帧内预测单元318可以根据由预测信息语法元素指示的帧内预测模式来生成预测块。再次,帧内预测单元318总体上可以以与针对帧内预测单元226(图7)所描述的方式基本上相似的方式来执行帧内预测过程。帧内预测单元318可以从DPB 314中取回当前块的邻近样点的数据。
重构单元310可以使用预测块和残差块来重构当前块。例如,重构单元310可以将残差块的样点添加到预测块的对应样点来重构当前块。
滤波器单元312可以对重构块执行一个或多个滤波器操作。例如,滤波器单元312可以执行去方块操作来减少沿着重构块的边缘的块状伪影。不一定在所有示例中都执行滤波器单元312的操作。
视频解码器300可以将重构块存储在DPB 314中。如上所述,DPB 314可以向预测处理单元304提供参考信息,比如用于帧内预测的当前图片的样点以及用于随后的运动补偿的先前解码图片。此外,视频解码器300可以从DPB输出解码图片,用于随后呈现在比如图1的显示设备118的显示设备上。
以这种方式,视频解码器300代表视频解码设备的示例,该视频解码设备包括配置为存储视频数据的存储器以及在电路中实现并配置为确定视频数据的变换单元的尺寸的一个或多个处理单元,其中,变换单元包括N个系数组并且每个系数组包括M个系数,其中,M和N为整数值;基于变换单元的尺寸确定变换单元的常规二进制数计数阈值;对变换单元的语法元素进行上下文解码,直到达到第一数量的常规译码二进制数;响应于达到第一数量的常规译码二进制数,对附加语法元素进行旁路解码;基于上下文解码的语法元素确定变换单元的第一系数集的值;以及基于附加语法元素确定变换单元的第二系数集的值。
图9A和9B示出了在二进制数n处的CABAC过程的实例。在图9A的示例400中,在二进制数n,在二进制数2的范围包括在给定某个上下文状态(σ)的情况下由最小概率符号(LPS)(Pσ)的概率给出的RangeMPS和RangeLPS。示例400示出了当二进制数的值n等于最大概率符号(MPS)时,在二进制数n+1处范围的更新。在此示例中,低点保持不变,但在二进制数n+1处的范围值减小为在二进制数n处的RangeMPS值。图9B的示例402示出了当在二进制数n处的值不等于MPS(即等于LPS)时,在二进制数n+1处的范围的更新。在此示例中,低点移至在二进制数n处的RangeLPS的更低范围值。此外,在二进制数n+1处的范围值减小为在二进制数n处的RangeLPS的值。
在HEVC视频译码过程的一个示例中,用9个比特表示范围而用10比特表示低点。有一个重新归一化的过程来以足够的精度保持范围和低点值。只要范围小于256,就会发生重新归一化。因此,重新归一化后,范围始终等于或大于256。取决于范围和低点的值,二进制算术译码器(BAC)将“0”或“1”输出到比特流,或者更新内部变量(称为BO:未完成比特)以保留将来的输出。图10示出了取决于范围的BAC输出的示例。例如,当范围和低点高于某个阈值(例如512)时,将“1”输出到比特流。当范围和低点低于某个阈值(例如512)时,将“0”输出到比特流。当范围和低点在某些阈值之间时,则不输出到比特流。取而代之的是,BO值增加并且对下一个二进制数进行编码。
在H.264/AVC的CABAC上下文模型中并且在HEVC的某些示例中,有128个状态。有64种可能的LPS概率(表示为状态σ),可以是0到63。每个MPS可以为零或一。这样,128个状态是64个状态概率乘以MPS的2个可能值(0或1)。因此,状态可以用7个比特索引。
为了减少推导LPS范围(rangeLPSσ)的计算,可以预先计算对于所有的情况的结果并且作为近似值将其存储在查找表中。因此,通过使用简单的表查找,无需任何乘法即可获得LPS范围。对于一些设备或应用,避免乘法运算可能很重要,因为此操作可能会在许多硬件体系结构中引起严重的延迟。
可以使用4栏预先计算的LPS范围表而不是乘法。范围分割为四个段。段索引可以由问题(range>>6)&3得出。实际上,段索引是通过从实际范围位移和删除位得出的。下表1示出了可能的范围及其对应索引。
表1–范围索引
范围 256-319 320-383 384-447 448-511
(range>>6)&3 0 1 2 3
然后,LPS范围表具有64个条目(每个概率状态一个)乘以4(每个范围索引一个)。每个条目是范围LPS,即范围乘以LPS概率的值。下表2中示出了此表的一部分的示例。表2描绘了概率状态9-12。在HEVC的一项提议中,概率状态的范围可能为0-63。
表2–RangeLPS
Figure GDA0003908352570000371
在每个段(即范围值)中,每个概率状态σ的LPS范围是预定义的。换句话说,概率状态σ的LPS范围量化为四个值(即每个范围索引一个值)。在给定点使用的特定LPS范围取决于该范围属于哪个段。表中使用的可能LPS范围的数量是表列数(即可能的LPS范围值的数量)和LPS范围精度之间的权衡。一般来说,列越多,LPS范围值的量化误差越小,但是也增加了对存储表的内存的需求。较少的列会增加量化误差,但也会减少存储表所需的内存。
如上所述,每个LPS概率状态具有对应概率。按照如下推导每个状态的概率p:
pσ=αpσ-1
其中状态σ为0到63。常数α代表每个上下文状态之间的概率变化量。在一个例子中,α=0.9493,或更准确地说,α=(0.01875/0.5)1/63。在状态σ=0处的概率等于0.5(即p0=1/2)。也就是说,在上下文状态0下,LPS和MPS是同等可能的。在每个先前状态的概率是通过将先前状态乘以α得出。这样,LPS在上下文状态α=1下发生的概率是p0*0.9493(0.5*0.9493=.47465)。这样,随着状态索引α增加,发生LPS的概率下降。
CABAC是自适应的,因为更新了概率状态以便遵循信号统计(即先前译码的二进制数的值)。更新过程如下。对于给定的概率状态,更新取决于状态索引和识别为LPS或MPS的译码符号的值。作为更新过程的结果,得出了新的概率状态,该概率状态由潜在地修改的LPS概率估计以及(如有必要)修改的MPS值组成。
在二进制数值等于MPS的事件中,给定的状态索引可以增加1。这适用于所有状态,除了当状态索引62处发生MPS时,其中LPS概率已经处于最小值(或等效地,达到了最大MPS概率)。在这种情况下,状态索引62保持固定,直到看到LPS或对最后二进制数值进行编码(状态63用于最后二进制数值的特殊情况)。当发生LPS时,通过将状态索引递减一定量来更改状态索引,如下式所示。此规则总的来说适用于每次出现LPS,但以下情况除外。假设LPS已经在索引σ=0的状态下编码,这对应于等概率情况,状态索引保持固定,但是切换MPS值使得LPS和MPS的值互换。在所有其他情况下,无论已经编码哪个符号,MPS值都不会更改。得出用于LPS概率的转换规则是基于给定的LPS概率p与更新后的对等概率p之间的以下关系:
p=最大值(αp,p62)       如果发生MPS
p=(1-α)+αp            如果发生LPS
关于在CABAC中概率估计过程的实际实施方式,重要的是要注意所有转换规则可以通过至多两个表来实现,每个表具有6比特无符号整数值的63个条目。在一些示例中,可以使用单个表TransIdxLPS来确定状态转换,在已经观察到LPS的情况下,其对于给定的状态索引σ确定新的更新状态索引TransIdxLPS[σ]。MPS驱动的转换可以通过将状态索引简单(饱和的)增加固定值1来获得,从而得到更新的状态索引最小值(σ+1,62)。下面的表3是部分TransIdxLPS表的示例。
表3-TransIdxLPS
概率状态(σ) 新状态TransIdxLPS[σ]
9 6
10 8
11 8
12 8
上述针对图9A、9B和10描述的技术仅代表CABAC的一个示例实施方式。应当理解的是,本公开的技术不仅限于所描述的CABAC的实施方式。例如,在较旧的BAC解决方案(例如,H.264/AVC中使用的BAC解决方案)中,对于低分辨率视频对表RangeLPS和TransIdxLPS进行调整(即通用中间格式(CIF)和四分之一CIF(QCIF))视频)。使用HEVC和未来的编解码器(例如VVC),大量视频内容是高清(HD)的,在某些情况下还高于HD。高清或高于高清分辨率的视频内容与用于已有10年历史的用于开发H.264/AVC的QCIF序列的统计数据往往不同。这样,来自H.264/AVC的表RangeLPS和TransIdxLPS可能会以太快的方式导致状态之间的自适应。也就是说,概率状态之间的转换(尤其是发生LPS时)对于HD视频的平滑、高分辨率内容而言可能太大。因此,根据常规技术使用的概率模型对于HD和超HD内容可能不那么准确。另外,由于HD视频内容包括更大范围的像素值,因此H.264/AVC表没有包括足够的条目来表示HD内容中可能存在的更极端的值。
这样,对于HEVC和比如VVC的未来译码标准,可以修改RangeLPS和TransIdxLPS表以说明此新内容的特点。特别地,用于HEVC和未来的译码标准的BAC过程可以使用允许更慢的自适应过程的表并且可以考虑更多极端情况(即偏斜概率)。因此,作为一个示例,通过包含比在利用H.264/AVC或HEVC的BAC中使用的概率状态和范围更多的概率状态和范围,可以修改RangeLPS和TransIdxLPS表以实现这些目标。
图11是可配置为根据本公开的技术执行CABAC的示例熵编码单元220的框图。将语法元素418输入到熵编码单元220中。如果语法元素已经是二进制值语法元素(即仅具有值0和1的语法元素),则可以跳过二值化步骤。如果语法元素是非二进制值语法元素(例如,由多个比特代表的语法元素,比如变换系数级),则二值化器420对非二进制值语法元素进行二值化。二值化器420执行非二进制值语法元素到二元决策序列的映射。这些二元决策也称为“二进制数”。例如,对于变换系数级,该级别的值可以分解成连续的二进制数,每个二进制数指示系数级的绝对值是否大于某个值。例如,二进制数0(有时称为有效标志)指示变换系数级的绝对值是否大于0。二进制数1指示变换系数级的绝对值是否大于1,诸如此类。可以为每个非二进制值语法元素开发唯一的映射。
由二值化器420产生的每个二进制数被馈送到熵编码单元220的二进制算术译码侧。也就是说,对于预定的非二进制值语法元素集,每个二进制数类型(例如二进制数0)在下一个二进制数类型(例如二进制数1)之前被译码。可以在常规模式或旁路模式下执行译码。在旁路模式下,旁路译码引擎426使用固定概率模型,例如,使用格伦布-莱斯或指数-格伦布译码来执行算术编码。旁路模式总体上用于更可预测的语法元素。
常规模式下的译码涉及执行CABAC。常规模式CABAC用于对二进制数值进行译码,其中在给定先前译码的二进制数值的情况下,二进制数值的概率是可预测的。二进制数是LPS的概率由上下文建模器422确定。上下文建模器422输出二进制数值和上下文模型(例如概率状态σ)。上下文模型可以是用于一系列二进制数的初始上下文模型,或者可以基于先前译码的二进制数的译码值确定。如上所述,上下文建模器可以基于先前译码的二进制数是MPS还是LPS来更新状态。
在上下文建模器422确定了上下文模型和概率状态σ之后,常规译码引擎424对二进制数值执行BAC。根据本公开的技术,常规译码引擎424使用包括超过64个概率状态σ的TransIdxLPS表430来执行BAC。在一个示例中,概率状态的数量是128。TransIdxLPS用于确定在前一个二进制数(二进制数n)是LPS时,哪个概率状态用于下一个二进制数(二进制数n+1)。常规译码引擎424还可以在给定某个概率状态σ的情况下使用RangeLPS表128来确定LPS的范围值。然而,根据本公开的技术,不是使用TransIdxLPS表430的所有可能的概率状态σ,而是将概率状态索引σ映射到分组索引以供在RangeLPS表中使用。也就是说,RangeLPS表428中的每个索引可以代表概率状态总数中的两个或更多个。概率状态索引σ到分组索引的映射可以是线性的(例如除以二),也可以是非线性的(例如对数函数或映射表)。
在本公开的其他示例中,可以通过设置参数α大于0.9493来减小连续概率状态之间的差异。在一个示例中,α=0.9689。在本公开的另一示例中,LPS发生的最高概率(p0)可以设置为小于0.5。在一个示例中,p0可以等于0.493。
根据本公开的一种或多种技术,与在二进制算术译码过程中使用用于更新概率状态的变量的相同值相反(例如窗口尺寸、缩放因子(α)以及概率更新速度中的一个或多个),熵编码单元220可以对于不同的上下文模型和/或不同的语法元素使用变量的不同值。例如,对于多个上下文模型中的上下文模型,熵编码单元220可以确定用于更新二进制算术译码处理中的概率状态的变量的值并且基于所确定的值来更新概率状态。
图12是根据本公开的技术的可配置为执行CABAC的示例熵解码单元302的框图。图12的熵解码单元302以与图11中描述的熵编码单元220相反的方式执行CABAC。将来自比特流448的译码比特输入到熵解码单元302。基于译码比特是使用旁路模式还是常规模式进行的熵译码的,将译码比特馈送到上下文建模器450或旁路解码引擎452。如果译码比特是以旁路模式进行的译码,则旁路解码引擎452可以例如使用格伦布-莱斯或指数-格伦布译码来取回二进制值语法元素或非二进制语法元素的二进制数。
如果以常规模式对译码比特进行的译码,则上下文建模器450可以确定用于译码比特的概率模型,并且常规解码引擎454可以对译码比特进行解码来产生非二进制值语法元素(或者如果是二进制值的,则是语法元素本身)的二进制数。在上下文建模器450确定了上下文模型和概率状态σ之后,常规解码引擎454对二进制数值执行BAC。根据本公开的技术,常规解码引擎454使用包括多于64个概率状态σ的TransIdxLPS表458执行BAC。在一个示例中,概率状态的数量是128,尽管可以定义其他数量的概率状态,与本公开的技术一致。TransIdxLPS表458用于确定在前一个二进制数(二进制数n)是LPS时哪个概率状态用于下一个二进制数(二进制数n+1)。常规解码引擎454还可以使用RangeLPS表456来确定给定某个概率状态σ的LPS的范围值。然而,根据本公开的技术,不是使用TransIdxLPS表458的所有可能的概率状态σ,而是将概率状态索引σ映射到分组索引以在RangeLPS表456中使用。也就是说,RangeLPS表456中的每个索引可以代表概率状态总数中的两个或更多个。概率状态索引σ到分组索引的映射可以是线性的(例如除以二),也可以是非线性的(例如对数函数或映射表)。
在本公开的其他示例中,可以通过设置参数α大于0.9493来减小连续概率状态之间的差异。在一个示例中,α=0.9689。在本公开的另一示例中,LPS发生的最高概率(p0)可以设置为小于0.5。在一个示例中,p0可以等于0.493。
在常规解码引擎454解码了二进制数之后,逆二值化器460可以执行逆映射以将二进制数转换回为非二进制值语法元素的值。
图13是图示用于对视频数据的当前块进行编码的视频编码器的示例操作的流程图。当前块可以包括当前CU。尽管针对视频编码器200(图1和7)进行了描述,但是应当理解的是,可以将其他设备配置为执行与图13类似的操作。
在此示例中,视频编码器200首先预测当前块(550)。例如,视频编码器200可以形成当前块的预测块。然后,视频编码器200可以计算用于当前块的残差块(552)。为了计算残差块,视频编码器200可以计算原始未译码块与当前块的预测块之间的差。然后,视频编码器200可以对残差块的系数进行变换和量化(554)。接下来,视频编码器200可以对残差块的量化变换系数进行扫描(556)。在扫描期间或扫描之后,视频编码器200可以对系数进行熵编码(558)。例如,视频编码器200可以使用CAVLC或CABAC对系数进行编码。然后,视频编码器200可以输出块的熵编码数据(560)。
图14是图示用于解码视频数据的当前块的视频解码器的示例操作的流程图。当前块可以包括当前CU。尽管针对视频编解码器300(图1和8)进行了描述,但是应当理解的是,可以将其他设备配置为执行与图14类似的操作。
视频解码器300可以接收当前块的熵译码数据,比如熵译码预测信息和对应于当前块的残差块的系数的熵译码数据(570)。视频解码器300可以对熵译码数据进行熵解码来确定当前块的预测信息并且再现残差块的系数(572)。视频解码器300可以例如使用当前块的预测信息所指示的帧内或帧间预测模式来预测当前块(574),以计算当前块的预测块。然后,视频解码器300可以对再现系数进行逆扫描(576)来创建量化变换系数的块。然后,视频解码器300可以对系数进行逆量化和逆变换来产生残差块(578)。视频解码器300可以通过组合预测块和残差块来最终解码当前块(580)。
图15是图示用于对视频数据的当前块进行编码的视频编码器的示例操作的流程图。当前块可以包括当前CU。尽管针对视频编码器200(图1和7)进行了描述,但是应当理解的是,可以将其他设备配置为执行与图15类似的操作。
在图15的示例中,视频编码器200确定变换单元的尺寸(600)。变换单元包括N个系数组并且每个系数组包括M个系数。M和N是整数值。在一个示例中,变换单元可以是亮度变换单元,并且M可以等于16。在另一个示例中,变换单元可以是色度变换单元,并且M可以等于4。
视频编码器200基于变换单元的尺寸确定变换单元的常规二进制数计数阈值(602)。为了基于变换单元的尺寸确定变换单元的常规二进制数计数阈值,视频编码器200可以例如将变换单元的常规二进制数计数阈值设置为等于N*28。为了基于变换单元的尺寸确定变换单元的常规二进制数计数阈值,视频编码器200可以例如将变换单元的常规二进制数计数阈值设置为等于1.75乘以转换单元中的系数的总数。
在一个示例中,为了确定变换单元的尺寸,视频编码器200可确定变换单元的非归零区域的尺寸,并且基于变换单元的尺寸确定变换单元的常规二进制数计数阈值,视频编码器200可以将变换单元的常规二进制数计数阈值设置为等于28乘以变换单元的非归零区域中的系数组的数量。在另一个示例中,为了确定变换单元的尺寸,视频编码器200可以确定变换单元的非归零区域的尺寸,并且为了基于变换单元的尺寸确定变换单元的常规二进制数计数阈值,视频编码器200可以将变换单元的常规二进制数计数阈值设置为等于1.75乘以变换单元的非归零区域中的系数的总数。在变换单元是色度变换单元的示例中,为了基于变换单元的尺寸确定变换单元的常规二进制数计数阈值,视频编码器200可以将变换单元的常规二进制数计数阈值设置为等于N*7。
视频编码器200对变换单元的语法元素进行上下文编码,直到达到第一数量的常规编码的二进制数(604)。上下文编码的语法元素可以例如包括一个或多个有效标志(例如,如上所述的SIG),一个或多个奇偶校验级标志(例如,如上所述的Par)以及一个或多个第一标志(例如,如上所述的Gt1和/或Gt2)。
响应于达到第一数量的常规译码二进制数,视频编码器200对变换单元的附加语法元素进行旁路编码(606)。附加语法元素代表变换单元的第二系数集的值。为了对附加语法元素进行旁路编码,视频编码器200可以使用格伦布-莱斯译码或指数-格伦布译码之一或两者对附加语法元素进行编码。
视频编码器200可以输出例如包括上下文编码的语法元素和旁路编码的附加语法元素的编码视频数据的比特流,来进行传输或向存储介质输出。
图16是图示用于解码视频数据的当前块的视频解码器的示例操作的流程图。当前块可以包括当前CU。尽管针对视频编解码器300(图1和8)进行了描述,但是应当理解的是,可以将其他设备配置为执行与图16类似的操作。
视频解码器300确定变换单元的尺寸(610)。变换单元可以包括N个系数组,每个系数组可以包括M个系数。M和N是整数值。在一个示例中,变换单元可以是亮度变换单元,并且M可以等于16。在另一个示例中,变换单元可以是色度变换单元,并且M可以等于4。
视频解码器300基于变换单元的尺寸确定变换单元的常规二进制数计数阈值(612)。为了基于变换单元的尺寸确定变换单元的常规二进制数计数阈值,视频解码器300可以例如将变换单元的常规二进制数计数阈值设置为等于N*28。为了基于变换单元的尺寸确定变换单元的常规二进制数计数阈值,视频解码器300可以例如将变换单元的常规二进制数计数阈值设置为等于1.75乘以变换单元中的系数的总数。
在一个示例中,为了确定变换单元的尺寸,视频解码器300可确定变换单元的非归零区域的尺寸,并且为了基于变换单元的尺寸确定变换单元的常规二进制数计数阈值,视频解码器300可以将变换单元的常规二进制数计数阈值设置为等于28乘以变换单元的非归零区域中的系数组的数量。在另一个示例中,为了确定变换单元的尺寸,视频解码器300可以确定变换单元的非归零区域的尺寸,并且为了基于变换单元的尺寸确定变换单元的常规二进制数计数阈值,视频解码器300可以将变换单元的常规二进制数计数阈值设置为等于1.75乘以变换单元的非归零区域中的系数的总数。在变换单元是色度变换单元的示例中,为了基于变换单元的尺寸确定变换单元的常规二进制数计数阈值,视频解码器300可以将变换单元的常规二进制数计数阈值设置为等于N*7。
视频解码器300对变换单元的语法元素进行上下文解码,直到达到第一数量的常规编码的二进制数(614)。上下文解码的语法元素可以例如包括一个或多个有效标志(例如,如上所述的SIG),一个或多个奇偶校验级标志(例如,如上所述的Par)以及一个或多个第一标志(例如,如上所述的Gt1和/或Gt2)。
响应于达到第一数量的常规译码二进制数,视频解码器300对变换单元的附加语法元素进行旁路解码(616)。为了对附加语法元素进行旁路解码,视频解码器300可以使用格伦布-莱斯译码或指数-格伦布译码之一或两者对附加语法元素进行解码。
视频解码器300基于上下文解码的语法元素确定变换单元的第一系数集的值(618)。视频解码器300可以例如使用SIG、Par、Gt1和Gt2值以及如上所述的remLevel值来确定第一系数集。返回参考图5,第一系数集可以例如包括系数0至K。
视频解码器300基于附加语法元素确定变换单元的第二系数集的值(620)。视频解码器300可以例如仅使用以上述方式确定的remLevel值来确定第二系数集。返回参考图5,第二系数集可以例如包括系数K+1至N。
视频解码器300还可以基于第一系数集的值和第二系数集的值来确定解码变换块;将解码变换块添加到预测块来确定重构块;对重构块执行一个或多个滤波操作来确定视频数据的解码块;以及输出包括视频数据的解码块的视频数据的解码图片。
应当认识到的是,取决于该示例,本文描述的任何技术的某些动作或事件可以以不同的顺序执行,可以被添加,合并或完全省略(例如,并非所有描述的动作或事件都是技术实践所必需的)。此外,在一些示例中,动作或事件可以例如通过多线程处理、中断处理或多个处理器并发地而不是顺序地执行。
在一个或多个示例中,可以以硬件、软件、固件或其任何组合来实现所描述的功能。如果以软件实现,则功能可以作为一个或多个指令或代码存储在计算机可读介质上或在计算机可读介质上传输,并由基于硬件的处理单元执行。计算机可读介质可以包括计算机可读存储介质,其对应于比如数据存储介质的有形介质,或者通信介质,包括例如根据通信协议来促进将计算机程序从一个地方传输到另一个地方的任何介质。以这种方式,计算机可读介质总体上可以对应于(1)非暂时性的有形计算机可读存储介质,或者(2)例如信号或载波的通信介质。数据存储介质可以是可以由一台或多台计算机或一个或多个处理器访问以检索指令、代码和/或数据结构以实现本公开中描述的技术的任何可用介质。计算机程序产品可以包括计算机可读介质。
作为示例而非限制,这种计算机可读存储介质可以包括以下中的一个或多个:RAM、ROM、EEPROM、CD-ROM或其他光盘存储、磁盘存储或其他磁性存储设备、闪存或可以用来以指令或数据结构的形式存储所需的程序代码并且可以由计算机访问的任何其他介质。而且,任何连接都适当地称为计算机可读介质。例如,如果使用同轴电缆、光纤电缆、双绞线、数字用户线(DSL)或无线技术(比如红外、无线电和微波)从网站、服务器或其他远程源传输指令,则介质的定义包括同轴电缆、光纤电缆、双绞线、DSL或比如红外、无线电和微波之类的无线技术。然而,应当理解的是,计算机可读存储介质和数据存储介质不包括连接、载波、信号或其他瞬时介质,但是反而指向非瞬时的有形存储介质。本文使用的磁盘和光盘包括光盘(CD)、激光光盘、光盘、数字多功能光盘(DVD)、软盘和蓝光光盘,其中磁盘通常以磁性方式复制数据,而光盘则通过激光光学方式复制数据。上述内容的组合也应包括在计算机可读介质的范围内。
指令可以由一个或多个处理器执行,比如一个或多个DSP、通用微处理器、ASIC、FPGA或其他等效的集成或离散逻辑电路。因此,如本文所使用的术语“处理器”可以指任何前述结构或适合于实现本文描述的技术的任何其他结构。另外,在一些方面,本文描述的功能可以在配置用于编码和解码的专用硬件和/或软件模块内提供,或结合在组合式编解码器中。同样,这些技术可以在一个或多个电路或逻辑元件中完全实现。
本公开的技术可以在包括无线手持机、集成电路(IC)或一组IC(例如芯片组)的多种设备或装置中实现。在本发明中将各种组件、模块或单元描述为强调配置设备的功能方面为执行所揭示的技术,但不一定需要由不同硬件单元来实现。而是,如上所述,各种单元可以组合在编解码器硬件单元中,或者由一批互操作的硬件单元来提供,包括与合适的软件和/或固件结合的如上所述的一个或多个处理器。
已经描述了各种示例。这些和其他示例在如下权利要求的范围内。

Claims (18)

1.一种用于解码视频数据的方法,所述方法包括:
确定变换单元的非归零区域的尺寸;
将用于所述变换单元的常规二进制数计数阈值定义为等于1.75乘以所述变换单元的非归零区域中的系数的总数的二进制数的数量;
对用于所述变换单元的以4个为一组的语法元素进行上下文解码,直到达到所述常规二进制数计数阈值,其中:
经上下文解码的语法元素包括一个或多个有效标志以及一个或多个奇偶校验级标志,
所述一个或多个有效标志中的每一个指示针对对应系数的绝对级是否等于零,
所述一个或多个奇偶校验级标志中的每一个指示对应系数是否具有是偶数或奇数的绝对级;以及
响应于所述经上下文解码的语法元素达到所述常规二进制数计数阈值,对所述变换单元的额外语法元素进行旁路解码;
基于所述经上下文解码的语法元素确定用于所述变换单元的第一系数集的值;以及
基于所述额外语法元素确定用于所述变换单元的第二系数集的值。
2.根据权利要求1所述的方法,其中,所述变换单元包括N个系数组,每个系数组包括M个系数,其中M和N是整数值,且其中,所述变换单元包括亮度变换单元且M等于16。
3.根据权利要求1所述的方法,其中,所述经上下文解码的语法元素还包括第一标志和第二标志,所述第一标志指示对应系数是否具有大于1的绝对级,所述第二标志指示对应系数是否具有大于3的绝对级。
4.根据权利要求1所述的方法,其中,对所述额外语法元素进行旁路解码包括使用格伦布-莱斯Golomb-Rice译码或指数-格伦布Exponential-Colomb译码之一或两者对所述额外语法元素进行解码。
5.根据权利要求1所述的方法,进一步包括:
基于用于所述第一系数集的值和用于所述第二系数集的值确定解码变换块;
将所述解码变换块添加到预测块来确定重构块;
对所述重构块执行一个或多个滤波操作来确定视频数据的解码块;以及
输出视频数据的解码图片,所述视频数据的解码图片包括视频数据的所述解码块。
6.一种用于编码视频数据的方法,所述方法包括:
确定变换单元的非归零区域的尺寸;
将用于所述变换单元的常规二进制数计数阈值定义为等于1.75乘以所述变换单元的非归零区域中的系数的总数的二进制数的数量;
对用于所述变换单元的以4个为一组的语法元素进行上下文编码,直到达到所述常规二进制数计数阈值,其中:
经上下文编码的语法元素包括一个或多个有效标志以及一个或多个奇偶校验级标志,
所述一个或多个有效标志中的每一个指示针对对应系数的绝对级是否等于零,
所述一个或多个奇偶校验级标志中的每一个指示对应系数是否具有是偶数或奇数的绝对级,
所述经上下文编码的语法元素代表用于所述变换单元的第一系数集的值;以及
响应于所述经上下文编码的语法元素达到所述常规二进制数计数阈值,对用于所述变换单元的额外语法元素进行旁路编码,其中,所述额外语法元素代表用于所述变换单元的第二系数集的值。
7.根据权利要求6所述的方法,其中,所述变换单元包括N个系数组,每个系数组包括M个系数,其中M和N是整数值,且其中,所述变换单元包括亮度变换单元并且M等于16。
8.根据权利要求6所述的方法,所述经上下文编码的语法元素还包括第一标志和第二标志,所述第一标志指示对应系数是否具有大于1的绝对级,所述第二标志指示对应系数是否具有大于3的绝对级。
9.根据权利要求6所述的方法,其中,对所述额外语法元素进行旁路编码包括使用格伦布-莱斯Golomb-Rice译码或指数-格伦布Exponential-Golomb译码之一或两者对所述额外语法元素进行编码。
10.一种用于解码视频数据的设备,所述设备包括:
存储器,配置为存储视频数据;以及
在电路中实现的一个或多个处理器,其配置为:
确定变换单元的非归零区域的尺寸;
将用于所述变换单元的常规二进制数计数阈值定义为等于1.75乘以所述变换单元的非归零区域中的系数的总数的二进制数的数量;
对用于所述变换单元的以4个为一组的语法元素进行上下文解码,直到达到所述常规二进制数计数阈值,其中:
所述经上下文解码的语法元素包括一个或多个有效标志以及一个或多个奇偶校验级标志,
所述一个或多个有效标志中的每一个指示针对对应系数的绝对级是否等于零,
所述一个或多个奇偶校验级标志中的每一个指示对应系数是否具有是偶数或奇数的绝对级;以及
响应于所述经上下文解码的语法元素达到所述常规二进制数计数阈值,对额外语法元素进行旁路解码;
基于所述经上下文解码的语法元素确定用于所述变换单元的第一系数集的值;以及
基于所述额外语法元素确定用于所述变换单元的第二系数集的值。
11.根据权利要求10所述的设备,其中,所述变换单元包括N个系数组,每个系数组包括M个系数,其中M和N是整数值,且其中,所述变换单元包括亮度变换单元并且M等于16。
12.根据权利要求10所述的设备,所述经上下文解码的语法元素还包括第一标志和第二标志,所述第一标志指示对应系数是否具有大于1的绝对级,所述第二标志指示对应系数是否具有大于3的绝对级。
13.根据权利要求10所述的设备,其中,为了对所述额外语法元素进行旁路解码,所述一个或多个处理器配置为使用格伦布-莱斯Golomb-Rice译码或指数-格伦布Exponential-Golomb译码之一或两者对所述额外语法元素进行解码。
14.根据权利要求10所述的设备,其中,所述一个或多个处理器进一步配置为:
基于用于所述第一系数集的值和用于所述第二系数集的值确定解码变换块;
将所述解码变换块添加到预测块来确定重构块;
对所述重构块执行一个或多个滤波操作以确定视频数据的解码块;以及
输出视频数据的解码图片,所述视频数据的解码图片包括所述视频数据的解码块。
15.一种用于编码视频数据的设备,所述设备包括:
存储器,配置为存储视频数据;以及
在电路中实现的一个或多个处理器,并配置为:
确定变换单元的非归零区域的尺寸;
将用于所述变换单元的常规二进制数计数阈值定义为等于1.75乘以所述变换单元的非归零区域中的系数的总数的二进制数的数量;
对用于所述变换单元的以4为一组的语法元素进行上下文编码,直到达到所述常规二进制数计数阈值,其中:
经上下文编码的语法元素包括一个或多个有效标志以及一个或多个奇偶校验级标志,
所述一个或多个有效标志中的每一个指示针对对应系数的绝对级是否等于零,
所述一个或多个奇偶校验级标志中的每一个指示对应系数否具有是偶数或奇数的绝对级,
所述经上下文编码的语法元素代表所述变换单元的第一系数集的值;以及
响应于所述经上下文编码的语法元素达到所述常规二进制数计数阈值,对用于所述变换单元的额外语法元素进行旁路编码,其中,所述额外语法元素代表用于所述变换单元的第二系数集的值。
16.根据权利要求15所述的设备,其中,所述变换单元包括N个系数组,每个系数组包括M个系数,其中M和N是整数值,且其中,所述变换单元包括亮度变换单元并且M等于16。
17.根据权利要求15所述的设备,所述经上下文编码的语法元素还包括第一标志和第二标志,所述第一标志指示对应系数是否具有大于1的绝对级,所述第二标志指示对应系数是否具有大于3的绝对级。
18.根据权利要求15所述的设备,其中,为了对所述额外语法元素进行旁路编码,所述一个或多个处理器配置为使用格伦布-莱斯Golomb-Rice译码或指数-格伦布Exponential-Golomb译码之一或两者对所述额外语法元素进行编码。
CN201980052504.9A 2019-02-14 2019-09-05 用于对视频数据进行编解码的方法和设备 Active CN112534815B (zh)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201962805625P 2019-02-14 2019-02-14
US62/805,625 2019-02-14
US201962823537P 2019-03-25 2019-03-25
US62/823,537 2019-03-25
US16/560,918 US11134273B2 (en) 2019-02-14 2019-09-04 Regular coded bin reduction for coefficient coding
US16/560,918 2019-09-04
PCT/US2019/049740 WO2020167340A1 (en) 2019-02-14 2019-09-05 Regular coded bin reduction for coefficient coding using threshold

Publications (2)

Publication Number Publication Date
CN112534815A CN112534815A (zh) 2021-03-19
CN112534815B true CN112534815B (zh) 2023-05-02

Family

ID=72040899

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980052504.9A Active CN112534815B (zh) 2019-02-14 2019-09-05 用于对视频数据进行编解码的方法和设备

Country Status (7)

Country Link
US (1) US11134273B2 (zh)
EP (1) EP3925218A1 (zh)
CN (1) CN112534815B (zh)
BR (1) BR112021015212A2 (zh)
SG (1) SG11202100547XA (zh)
TW (1) TWI827662B (zh)
WO (1) WO2020167340A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10609423B2 (en) 2016-09-07 2020-03-31 Qualcomm Incorporated Tree-type coding for video coding
US11336918B2 (en) 2018-09-05 2022-05-17 Qualcomm Incorporated Regular coded bin reduction for coefficient coding
US10904548B2 (en) 2018-12-06 2021-01-26 Qualcomm Incorporated Coefficient processing for video encoding and decoding
JPWO2021054439A1 (zh) * 2019-09-20 2021-03-25
US11265536B2 (en) 2019-09-23 2022-03-01 Tencent America LLC Method to extend the range of rice parameter for residual coding in transform skip mode

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RS62714B1 (sr) 2011-06-16 2022-01-31 Ge Video Compression Llc Entropijsko kodiranje razlika vektora kretanja
US9357185B2 (en) 2011-11-08 2016-05-31 Qualcomm Incorporated Context optimization for last significant coefficient position coding
US9503717B2 (en) 2012-01-09 2016-11-22 Texas Instruments Incorporated Context adaptive binary arithmetic coding (CABAC) with scalable throughput and coding efficiency
US10616581B2 (en) 2012-01-19 2020-04-07 Huawei Technologies Co., Ltd. Modified coding for a transform skipped block for CABAC in HEVC
PH12018500138A1 (en) 2012-01-20 2018-07-09 Ge Video Compression Llc Transform coefficient coding
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
US10158855B2 (en) 2012-03-08 2018-12-18 Sun Patent Trust Image decoding method, and image decoding apparatus using a selected context related to neighboring coefficients
CN108347619B (zh) 2012-04-11 2020-09-15 杜比国际公司 用于对与变换系数相关联的比特流进行编码和解码方法
ES2746961T3 (es) * 2012-04-13 2020-03-09 Canon Kk Procedimiento, aparato y sistema para codificar y descodificar un subconjunto de unidades de transformación de datos de vídeo codificados
US9088769B2 (en) * 2012-06-28 2015-07-21 Blackberry Limited Reduced worst-case context-coded bins in video compression with parity hiding
US9936200B2 (en) 2013-04-12 2018-04-03 Qualcomm Incorporated Rice parameter update for coefficient level coding in video coding process
US10021419B2 (en) 2013-07-12 2018-07-10 Qualcomm Incorported Rice parameter initialization for coefficient level coding in video coding process
US11233998B2 (en) * 2015-05-29 2022-01-25 Qualcomm Incorporated Coding data using an enhanced context-adaptive binary arithmetic coding (CABAC) design
US10616604B2 (en) 2015-09-01 2020-04-07 Qualcomm Incorporated Coefficient level coding in video coding
US11336918B2 (en) 2018-09-05 2022-05-17 Qualcomm Incorporated Regular coded bin reduction for coefficient coding
US10904548B2 (en) 2018-12-06 2021-01-26 Qualcomm Incorporated Coefficient processing for video encoding and decoding
CN113316934B (zh) 2019-01-25 2024-03-08 寰发股份有限公司 带有变换块级别约束的变换系数编码的方法和设备

Also Published As

Publication number Publication date
SG11202100547XA (en) 2021-08-30
US20200267412A1 (en) 2020-08-20
TW202031049A (zh) 2020-08-16
US11134273B2 (en) 2021-09-28
TWI827662B (zh) 2024-01-01
CN112534815A (zh) 2021-03-19
EP3925218A1 (en) 2021-12-22
BR112021015212A2 (pt) 2021-09-28
WO2020167340A1 (en) 2020-08-20

Similar Documents

Publication Publication Date Title
CN112640457B (zh) 使用阈值和莱斯参数的用于系数编译码的常规编译码二进制数缩减
CN112534815B (zh) 用于对视频数据进行编解码的方法和设备
US11202100B2 (en) Coefficient coding for transform skip mode
JP7369191B2 (ja) しきい値とライスパラメータとを使用した係数復号のための正規コード化ビン低減
US11128876B2 (en) Joint coefficient coding of transform skip and BDPCM mode for 4:4:4 color formats
US11785259B2 (en) Escape coding for coefficient levels
CN114402603A (zh) 视频编解码中无损/有损编解码模式的rice参数推导
US11924471B2 (en) Context-based transform index signaling in video coding
CN116584094A (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40045696

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant