CN108419084B - 改进熵编码和解码的方法、装置及存储介质 - Google Patents
改进熵编码和解码的方法、装置及存储介质 Download PDFInfo
- Publication number
- CN108419084B CN108419084B CN201810367091.0A CN201810367091A CN108419084B CN 108419084 B CN108419084 B CN 108419084B CN 201810367091 A CN201810367091 A CN 201810367091A CN 108419084 B CN108419084 B CN 108419084B
- Authority
- CN
- China
- Prior art keywords
- transform coefficients
- quantized transform
- value
- block
- flag
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 105
- 230000001131 transforming effect Effects 0.000 claims abstract description 10
- 230000004044 response Effects 0.000 claims description 3
- 230000006870 function Effects 0.000 description 115
- 238000004891 communication Methods 0.000 description 36
- 230000008569 process Effects 0.000 description 21
- 230000008901 benefit Effects 0.000 description 17
- 238000012545 processing Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 9
- 230000009897 systematic effect Effects 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 238000013139 quantization Methods 0.000 description 3
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 230000000153 supplemental effect Effects 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
- H03M7/4006—Conversion to or from arithmetic code
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
- H03M7/4006—Conversion to or from arithmetic code
- H03M7/4012—Binary arithmetic codes
- H03M7/4018—Context adapative binary arithmetic codes [CABAC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/124—Quantisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/176—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/46—Embedding additional information in the video signal during the compression process
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods 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
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
提供了一种改进熵编码和解码的方法及装置。一种装置包括:视频编码器(200),用于通过如下步骤编码画面中的至少一个块:变换该块的残差以获取变换系数;量化所述变换系数以获取量化变换系数;以及熵编码所述量化变换系数。该量化变换系数使用一个标志来编码,该标志指示正在处理的所述量化变换系数的当前一个是数值大于或等于指定值的该块的最后非零系数。
Description
本申请是申请日为2011年10月6日、申请号为201180060451.9、发明名称为“改进熵编码和解码的方法及装置”的发明专利申请的分案申请。
交叉引用相关申请
本申请要求2010年10月14日提交的美国临时申请第61/393,195号的利益,在此通过引用并入其全部内容。
技术领域
本原理一般涉及视频编码和解码,尤其涉及改进熵编码和解码的方法及装置。
背景技术
视频编码标准采用预测和基于块变换来平衡帧内/间关联中的冗余和实现高压缩效率。而且,熵编码使编码位流达到它的熵边界并进一步提高编码效率。
熵编码在视频编码系统中的重要使用是编码作为帧内/间预测、块变换和量化之后的残差数据块的块的量化变换系数。对于这样的数据,已经开发出了范围从像哈夫曼(Huffman)编码那样的可变长度编码到算术编码的熵编码工具。现有技术的CABAC(上下文自适应二进制算术编码)实现了高编码效率,但CABAC编码过程的非系统性实现导致进行两次扫描通过来编码数据块。
CABAC是国际标准化组织/国际电工委员会(ISO/IEC)运动图像专家组 -4(MPEG-4)第10部分高级视频编码(AVC)标准/国际电信联盟,电信部门(ITU-T)H.264建议书(下文称为“MPEG-4AVC标准”)中量化变换系数块的熵编码方法。CABAC在两次主要通过中编码一个块。在第一次通过中, CABAC按照正向之字形扫描次序编码该块的有效性图(significance map)。在第二次通过中,CABAC按反向之字形扫描次序编码非零值。
转到图1,CABAC编码的例子用标号100总体表示。在有效性图编码通过,即,第一次通过中,CABAC使用sig_flag和last_flag表示非零系数的位置。
在非零值的反向之字形编码中,使用两种子编码过程。在第一子编码过程中,称为Bin_1(即,第一bin)的语法用于指示非零系数是否具有1的绝对值。如果非零系数具有1的绝对值,则Bin_1=1,并发送非零系数的符号。否则,Bin_1=0,并且编码转移到第二子编码过程。在第二子编码过程中, CABAC编码与Bin_1=0相对应、绝对值大于1的系数,然后发送它们各自的符号。
CABAC的缺点是相应编码牵涉到两次扫描通过(即,编码有效性图的正向之字形扫描、和编码数值的反向之字形扫描)。另外,CABAC的设计主要针对较小块尺寸(例如,4×4和8×8)。CABAC被证明对较大块(例如,16×16, 32×32,和64×64)不怎么有效。
一种现有技术的做法提出了加入一个标志来指示大于1的离散余弦变换 (DCT)系数的最后位置。但是,该现有技术的做法受大于1的标志限制并仍然使用两次扫描通过。
发明内容
现有技术的这些和其他缺陷和缺点通过本原理来解决,本原理针对改进熵编码和解码的方法及装置。
按照本原理的一个方面,提供了一种装置。该装置包括通过如下步骤编码画面中的至少一个块的视频编码器:变换该块的残差以获取变换系数;量化所述变换系数以获取量化变换系数;以及熵编码所述量化变换系数。该量化变换系数使用一个标志来编码,该标志指示正在处理的所述量化变换系数的当前一个是数值大于或等于指定值的该块的最后非零系数。
按照本原理的另一个方面,提供了一种在视频编码器中的方法。该方法包括通过如下步骤编码画面中的至少一个块:变换该块的残差以获取变换系数;量化所述变换系数以获取量化变换系数;以及熵编码所述量化变换系数。该量化变换系数使用一个标志来编码,该标志指示正在处理的所述量化变换系数的当前一个是数值大于或等于指定值的该块的最后非零系数。
按照本原理的又一个方面,提供了一种装置。该装置包括通过如下步骤解码画面中的至少一个块的视频解码器:熵解码量化变换系数;逆量化所述量化变换系数以获取变换系数;以及逆变换该变换系数以获取该块的重构残差以便用在重构该块中。该量化变换系数使用一个标志来解码,该标志指示正在处理的所述量化变换系数的当前一个是数值大于或等于指定值的该块的最后非零系数。
按照本原理的再一个方面,提供了一种在视频解码器中的方法。该方法包括通过如下步骤解码画面中的至少一个块:熵解码量化变换系数;逆量化所述量化变换系数以获取变换系数;以及逆变换该变换系数以获取该块的重构残差以便用在重构该块中。该量化变换系数使用一个标志来解码,该标志指示正在处理的所述量化变换系数的当前一个是数值大于或等于指定值的该块的最后非零系数。
本原理的这些和其他方面、特征和优点将从要结合附图阅读的对示范性实施例的如下详细描述中变得显而易见。
附图说明
本原理可以依照如下示范性图形得到更好理解,在附图中:
图1是示出依照现有技术的CABAC编码的例子的图形;
图2是示出依照本原理的实施例、可以应用本原理的示范性视频编码器的方框图;
图3是示出依照本原理的实施例、可以应用本原理的示范性视频解码器的方框图;
图4是示出依照本原理的实施例、4×4尺寸的示范性被量化变换块的图形;
图5是示出依照本原理的实施例的编码过程的例子的图形;
图6是示出依照本原理的实施例、不保存Bin_1的示范性特殊情况的图形;
图7A是示出依照本原理的实施例、熵编码的示范性方法的流程图;
图7B是示出依照本原理的实施例、编码last_ge2_flag的示范性方法的流程图;
图7C是示出依照本原理的实施例、编码last_flag的示范性方法的流程图;
图7D是示出依照本原理的实施例、编码Bin_1的示范性方法的流程图;
图7E是示出依照本原理的实施例、编码level的示范性方法的流程图;
图8A是示出依照本原理的实施例、熵解码的示范性方法的流程图;
图8B是示出依照本原理的实施例、解码last_ge2_flag的示范性方法的流程图;
图8C是示出依照本原理的实施例、解码last_flag的示范性方法的流程图;
图8D是示出依照本原理的实施例、解码Bin_1的示范性方法的流程图;
图8E是示出依照本原理的实施例、解码level的示范性方法的流程图;
图9是示出依照本原理的实施例、选择和传信当前变换系数的一个数值的示范性方法的流程图;以及
图10是示出依照本原理的实施例、解码当前变换系数的一个数值的示范性方法的流程图。
具体实施方式
本原理针对改进熵编码和解码的方法及装置。
本描述例示了本原理。因此,应该懂得,本领域的普通技术人员能够设想出尽管未明确描述或显示在本文中,但体现本原理和包括在它的精神和范围之内的各种安排。
本文列举的所有例子和条件语言旨在教授的目的,以帮助读者理解本原理以及本发明人为促进技术进步而贡献的概念,并且应该理解为不局限于这样具体列举的例子和条件。
此外,本文阐述本原理的各个原理、方面和实施例及其特定例子的所有语句旨在包含其结构和功能等效物两者。另外,这样的等效物旨在包括当前已知的等效物以及未来开发的等效物,即与结构无关、开发出来执行相同功能的任何元件。
因此,例如,本领域的普通技术人员应该懂得,本文所表示的方框图代表体现本原理的例示性电路的概念图。类似地,应该懂得,任何流程图、流图、状态转变图、伪码等代表基本上可以表示在计算机可读媒体中、因此可以由计算机或处理器执行的各种进程,无论这样的计算机或处理器是否明确显示出来。
显示在图形中的各种元件的功能可以通过使用专用硬件以及能够与适当软件相联系执行软件的硬件来实现。当由处理器提供时,这些功能可以由单个专用处理器、由单个共享处理器、或由其中一些可以共享的多个单独处理器提供。此外,术语“处理器”或“控制器”的显性使用不应该理解为专门指能够执行软件的硬件,而是可以隐性地包括但不限于数字信号处理器 (“DSP”)硬件、存储软件的只读存储器(“ROM”)、随机存取存储器(“RAM”)和非易失性存储体。
也可以包括传统的和/或定制的其他硬件。类似地,显示在图形中的任何开关都只是概念性的。它们的功能可以通过程序逻辑的运算、通过专用逻辑、通过程序控制和专用逻辑的交互、或甚至人工地实现,正如从上下文中更具体了解到的那样,特定的技术可由实现者选择。
在其权利要求书中,表达成执行特定功能的部件的任何元件旨在包含执行那种功能的任何方式,例如,包括a)执行那种功能的电路元件的组合,或 b)任何形式的软件,因此包括与执行那种软件的适当电路结合执行该功能的固件、微码等。如这样的权利要求书定义的本原理在于以权利要求书要求的方式组合和汇集各种所列举部件提供的功能。因此,应该认为可以提供那些功能的任何部件都等效于本文所示的那些部件。
在说明书中提到本原理的“一个实施例”或“实施例”以及它的其他变体意味着结合该实施例所述的特征、结构、特性等包括在本原理的至少一个实施例中。因此,出现在整个说明书中的各个地方的措词“在一个实施例中”或“在实施例中”以及任何其他变体的出现未必都指同一实施例。
应该懂得,如下“/”、“和/或”、和“至少一个”的任何一种的使用,例如,在“A/B”、“A和/或B”、和“A和B的至少一个”的情况下,旨在包含只有第一所列选项(A)的选择,只有第二所列选项(B)的选择,或两个选项(A和B)的选择。作为进一步的例子,在“A、B、和/或C”和“A、B、和C的至少一个”的情况下,这样的措词旨在包含只有第一所列选项(A) 的选择,只有第二所列选项(B)的选择,只有第三所列选项(C)的选择,只有第一和第二所列选项(A和B)的选择,只有第一和第三所列选项(A 和C)的选择,只有第二和第三所列选项(B和C)的选择,或所有三个选项(A、B和C)的选择。本领域的普通技术人员容易明白,对于列出的许多项目,可以依此类推。
此外,如本文所使用,词汇“画面”和“图像”可交换使用,指的是静止图像或来自视频序列的画面。众所周知,画面可以是帧或半帧。
转到图2,可以应用本发明原理的示范性视频编码器用标号200总体表示。视频编码器200包括具有与组合器285的非反相输入端信号通信的输出端的帧排序缓冲器210。组合器285的输出端被连接成与变换器和量化器225 的第一输入端信号通信。变换器和量化器225的输出端被连接成与熵编码器 245的第一输入端和逆变换器和逆量化器250的第一输入端信号通信。熵编码器245的输出端被连接成与组合器290的第一非反相输入端信号通信。组合器290的输出端被连接成与输出缓冲器235的第一输入端信号通信。
编码器控制器205的第一输出端被连接成与帧排序缓冲器210的第二输入端、逆变换器和逆量化器250的第二输入端、画面类型判定模块215的输入端、宏块类型(MB类型)判定模块220的第一输入端、帧内预测模块260 的第二输入端、去块滤波器265的第二输入端、运动补偿器270的第一输入端、运动估计器275的第一输入端、和参考画面缓冲器280的第二输入端信号通信。
编码器控制器205的第二输出端被连接成与补充增强信息(SEI)插入器 230的第一输入端、变换器和量化器225的第二输入端、熵编码器245的第二输入端、输出缓冲器235的第二输入端、和序列参数集(SPS)和画面参数集(PPS)插入器240的输入端信号通信。
SEI插入器230的输出端被连接成与组合器290的第二非反相输入端信号通信。
画面类型判定模块215的第一输出端被连接成与帧排序缓冲器210的第三输入端信号通信。画面类型判定模块215的第二输出端被连接成与宏块类型判定模块220的第二输入端信号通信。
序列参数集(SPS)和画面参数集(PPS)插入器240的输出端被连接成与组合器290的第三非反相输入端信号通信。
逆变换器和逆量化器250的输出端被连接成与组合器219的第一非反相输入端信号通信。组合器219的输出端被连接成与帧内预测模块260的第一输入端和去块滤波器265的第一输入端信号通信。去块滤波器265的输出端被连接成与参考画面缓冲器280的第一输入端信号通信。参考画面缓冲器280 的输出端被连接成与运动估计器275的第二输入端和运动补偿器270的第三输入端信号通信。运动估计器275的第一输出端被连接成与运动补偿器270 的第二输入端信号通信。运动估计器275的第二输出端被连接成与熵编码器 245的第三输入端信号通信。
运动补偿器270的输出端被连接成与开关297的第一输入端信号通信。帧内预测模块260的输出端被连接成与开关297的第二输入端信号通信。宏块类型判定模块220的输出端被连接成与开关297的第三输入端信号通信。开关297的第三输入端确定开关的“数据”输入(如与控制输入,即,第三输入相比)由运动补偿器270提供还是由帧内预测模块260提供。开关297 的输出端被连接成与组合器219的第二非反相输入端和组合器285的反相输入端信号通信。
帧排序缓冲器210的第一输入端和编码器控制器205的输入端可作为编码器200的输入端用于接收输入画面。此外,补充增强信息(SEI)插入器 230的第二输入端可作为编码器200的输入端用于接收元数据。输出缓冲器 235的输出端可作为编码器200的输出端用于输出位流。
转到图3,可以应用本原理的示范性视频解码器用标号300总体表示。该视频解码器300包括具有连接成与熵解码器345的第一输入端信号通信的输出端的输入缓冲器310。熵解码器345的第一输出端被连接成与逆变换器和逆量化器350的第一输入端信号通信。逆变换器和逆量化器350的输出端被连接成与组合器325的第二非反相输入端信号通信。组合器325的输出端被连接成与去块滤波器365的第二输入端和帧内预测模块360的第一输入端信号通信。去块滤波器365的第二输出端被连接成与参考画面缓冲器380的第一输入端信号通信。参考画面缓冲器380的输出端被连接成与运动补偿器 370的第二输入端信号通信。
熵解码器345的第二输出端被连接成与运动补偿器370的第三输入端、去块滤波器365的第一输入端、和帧内预测器360的第三输入端信号通信。熵解码器345的第三输出端被连接成与解码器控制器305的输入端信号通信。解码器控制器305的第一输出端被连接成与熵解码器345的第二输入端信号通信。解码器控制器305的第二输出端被连接成与逆变换器和逆量化器350 的第二输入端信号通信。解码器控制器305的第三输出端被连接成与去块滤波器365的第三输入端信号通信。解码器控制器305的第四输出端被连接成与帧内预测模块360的第二输入端、运动补偿器370的第一输入端、和参考画面缓冲器380的第二输入端信号通信。
运动补偿器370的输出端被连接成与开关397的第一输入端信号通信。帧内预测模块360的输出端被连接成与开关397的第二输入端信号通信。开关397的输出端被连接成与组合器325的第一非反相输入端信号通信。
输入缓冲器310的输入端可作为解码器300的输入端用于接收输入位流。去块滤波器365的第一输出端可作为解码器300的输出端用于输出输出画面。
如上所述,本原理针对改进视频编码和解码的方法及装置。有利的是,本原理克服了CABAC的非系统性弱点。本原理还使用了二进制算术编码机,但利用了节省二进制bins的系统性编码过程,这减少了在编码器和解码器两者中对二进制算术编码机的使用。借助于这种系统性编码方法和减少的二进制bins,超过现有技术CABAC系统地实现了更简单编码系统和更高压缩效率。
因此,本原理针对利用较少语法bins的系数块的系统性熵编码。系统地,当按给定扫描次序寻找(或处理)系数值时,我们编码系数值。具体地说,我们使用“有效性标志(sig_flag)”来指示零和非零系数。对于非零,我们使用“大于或等于2的最后系数(last_ge2_flag)”和“最后标志(last_flag)”来分别指示左位置集合是否包括“大于或等于2(ge2)”的大量非零系数和有效系数。每当找到或通过sig_flag(sig_flag=1)指示有效系数时,就马上编码它的数值。这对于本原理的做法有三方面好处:
(1)在一次扫描中编码整个块,这使系统更简单。
(2)减少了二进制bins,因此在编码器和解码器上节省了一些二进制算术编码运算。
(3)相邻编码系数的电平(level)信息可用于为像sig_flag、last_flag、 last_ge2_flag那样的语法、和电平bins设计上下文模型。
因此,所公开和所述的熵编码系统是比现有技术的系统更简单和更有效的熵编码系统。
在视频编码系统中,利用帧内或帧间预测处理原始数据,以便消除帧内或帧间关联,然后利用像4×4、8×8、16×16、32×32、和64×64DCT那样的基于块变换(或一些其他变换)加以处理,以便进一步消除关联。然后,将量化应用于变换块中的系数。在一个实施例中,最后进行熵编码来编码每个变换块的量化系数,以便为输出流提供它们。
转到图4,4×4的示范性量化变换块用标号400总体表示。在预测、变换和量化之后,一个块中的大部分能量集中在低频位置(处在变换块的左上角) 中,而大多数高频系数(处在块的右下角)都是零。为了熵编码这样的数据块,我们需要用二进制bins有效地表达包括系数值和它们在块内的位置的块信息。然后,利用二进制算术编码机编码二进制bins。
为了用二进制bins表达块信息,我们使用如下语法。为了易于描述起见,一些语法元素从像CABAC那样的现有方法中借用过来。另外,按如下引入新的语法元素来实现本原理:
·Sig_flag:它被定义成与CABAC中相同。Sig_flag=1意味着相应系统是非零(有效)。Sig_flag=0意味着相应系统是零。
·Last_ge2_flag:它是依照本原理引入的新语法元素,用于指示当前非零系数是否是按给定扫描次序当前块中绝对值大于1的最后系数。表达“ge2”来自“大于或等于2”。Last_ge2_flag=1意味着当前非零系数是最后这样的系数。Last_ge2_flag=0意味着当前非零系数不是最后这样的系数。
·Last_flag:它被定义成与CABAC中相同。Last_flag意味着当前非零系数是否是按给定扫描次序当前块中的最后一个。Last_flag=1意味着当前非零系数是最后这样的一个。Last_flag=0意味着当前非零系数不是最后这样的一个。
·Bin_1:当已知系数非零,但不知道其绝对值是1还是大于1(ge2)时,发送Bin_1来澄清它。Bin_1=1意味着非零系数具有1的绝对值。Bin_1=0意味着非零系数具有大于1(ge2)的绝对值。注意,我们使用Bin_1来指示系数具有1或大于1的绝对值,而不是将这个信息编码成像2、3、或更大值那样的其他系数值。这是因为在典型的数据块中,大约一半非零具有1的绝对值,因此特别地处理它们更有效。
·Level:当已知系数具有大于1(ge2)的绝对值时,我们发送其等于绝对值的电平。这个电平原来不是二进制的,因此,我们使用像,例如,但不限于,用在CABAC中的UEG0方法那样的某种二进制化方法将它们二进制化,然后我们利用二进制算术编码来编码这些二进制bins。
·Sign:对于每个非零系数,对“+”和“-”分别发送像0或1那样的符号。
转到图5,编码过程的一个例子用标号500总体表示。编码过程500针对图4中的示范性块400的编码来描述。我们按给定扫描次序,例如,CABAC 中的正向之字形扫描来扫描数据。在图5的第一行中给出了重排系数。
○对于第一系数“10”,它是非零的(sig_flag=1),并且不是最后ge2 (last_ge2_flag=0)。为了编码它的值,首先发送Bin_l=0以指示它的绝对值大于1。然后编码它的绝对值以及level。这里只编码10-2=8,解码器知道绝对值应该是8+2=10。最后,利用0发送它的符号“+”。
○对于第二系数“0”,sig_flag=0。然后发送有关这个系数的所有信息,然后编码器转去处理下一个系数。
○对于下一个系数“-1”,它是非零的(sig_flag=1),并且不是最后ge2 (last_ge2_flag=0)。为了编码它的值,发送Bin_l=1以指示它的绝对值是1。然后无需处理level。最后,利用1发送它的符号“-”。
○对于下一个系数“2”,它是非零的(sig_flag=1),并且是最后ge2 (last_ge2_flag=1)。在last_ge2_flag=1之后,我们需要发送last_flag来指示当前系数是否是最后非零系数。这时,它不是最后非零系数,因此last_flag=0。注意,last_ge2_flag=1在这里隐性地指示这个系数必然具有大于1的绝对值 (即,它必然是ge2),因此节省了Bin_l=0。我们通过编码2-2=0发送它的绝对值以及level,然后解码器知道绝对值是0+2=2。最后,利用0发送它的符号“+”。
○对于下一个系数“0”,sig_flag=0。
○对于下一个系数“1”,它是非零的(sig_flag=1),并且不是最后非零系数(last_flag=0)。在last_ge2_flag=1之后,所有有效系数都必然具有1的绝对值,因此我们再不需要编码它的绝对值以及Bin_l或level。我们只利用0 发送它的符号“+”。
○对于下一个系数“0”,sig_flag=0。
○对于下一个系数“-1”,它是非零的(sig_flag=1),并且是最近非零(last_flag=1)。在我们利用1发送它的符号“-”之后,这个块的编码就完成了。
从上面的编码例子中我们可以看出,所述实施例的至少一个新方面是使用了last_ge2_flag。存在last_ge2_flag的几方面优点,至少包括如下:
1.last_ge2_flag节省了一些last_flag。如果last_ge2_flag=0,则在随后扫描位置中必然存在非零(尤其大于1)系数。然后,last_flag必然是0,因此我们节省这些last_flag直到last_ge2_flag=1。
将编码相同示范性块与CABAC和提出的方法相比较。在图1中,利用 CABAC编码块需要5个等于00001的last_flag,而在图5中,利用新方法编码相同块需要3个last_ge2_flag(001)和3个last_flag(001)。假设一个块中有N个非零系数,则CABAC需要N个last_flag,而新方法总共需要N+1 个last_ge2_flag和last_flag。与接下来通过last_ge2_flag节省两个相比,这里这一个额外标志是相当值得的。
2.在扫描路径的末端,非常有可能观察到相继的所谓拖尾1(trailing ones)、即绝对值等于1的变换系数电平的出现。对于图5中的例子,存在五个有效系数:10、-1、2、1、-1,以及末端上的“1”和“-1”是拖尾1。对于CABAC中的拖尾1,Last_ge2_flag节省了Bin_1。在Last_ge2_flag=1之后,如果一些系数被表示成非零,则它们必然具有1的绝对值。在CABAC编码中它们实际上是拖尾1。在CABAC中,每个这样的拖尾1都需要一个Bin_1 来指示它是1(而不是ge2)。由于我们用Last_ge2_flag=1隐性地指示它们,所以这里节省了用于拖尾1的Bin_1。在大变换块中,存在相当大量的拖尾1,这里的节省是有意义的。
3.对于非拖尾1,Last_ge2_flag节省了其他Bin_l。当Last_ge2_flag在某个系数上从0变换成1时,该系数必然是ge2(即,该系数具有大于1的绝对值),因此无需发送必然是0的Bin_l。一个例子是图1中的编码例子的系数 2。
这样节省Bin_1只存在于Last_ge2_flag从0变换成1的块中。也就是说,存在不止一个为该块发送的Last_ge2_flag。假设为该块只发送了一个 Last_ge2_flag,则它必然是1,以及相应系数可以具有1或ge2的绝对值。在图6中提供了一些示范性情况,其中系数按某种给定扫描次序排列。
转到图6,不保存Bin_1的示范性特殊情况用标号600总体表示。此外,我们注意到,存在四种特殊情况,每一种被分别表示成情况1、情况2、情况 3和情况4。在情况1和2中,所有有效系数的绝对值都小于2。在情况3和 4中,只有第一有效系数具有大于1的绝对值。在所有情况中,在第一有效系数上将Last_ge2_flag设置成1,因此对于last_ge2_flag,没有“从0变成1”,只有一个bin用于last_ge2_flag。因此,具有last_ge2_flag=1的系数可以是1 (像在情况1和2中那样)或大于1(像在情况3和4中那样),这可以通过 Bin_1来指示。在情况1和2中,第一有效系数“1”具有last_ge2_flag=1和 Bin_1=1。在情况3和4中,第一有效系数2(或更一般地说,大于或等于2) 具有last_ge2_flag=1和Bin_1=0。也就是说,当一个块的last_ge2_flag只包括必然是1的一个bin时,需要编码相应Bin_1。
转到图7A,熵编码的示范性方法用标号700总体表示,该方法包括将控制交给判定框701的开始框712。判定框701确定在一个块中是否存在有效系数。如果是,则将控制交给功能框702。否则,将控制交给结束框799。功能框702设置last_ge2_flag=0和last_flag=0,并将控制交给功能框703。如果 last_flag=0,则功能框703使用变量j开始循环,变量j具有从第1到第(#) 系数的范围,并将控制交给功能框704。功能框704编码sig_flag,并将控制交给功能框705。判定框705确定sig_flag=1是否成立。如果是,则将控制交给功能框706。否则,将控制交给循环限制框711。如果需要的话,功能框 706编码last_ge2_flag,并将控制交给功能框707。如果需要的话,功能框707 编码last_flag,并将控制交给功能框708。如果需要的话,功能框708编码 Bin_1,并将控制交给功能框709。如果需要的话,功能框709编码level,并将控制交给功能框710。功能框710编码sign,并将控制交给循环限制框711。循环限制框711结束该循环,并将控制交给结束框799。
关于功能框703,我们按某种扫描次序对块中的系数循环。在具有last_ flag=1的系数之后,无需对系数循环。关于判定框705,如果sig_flag=1(有效),则我们通过方框706-710进一步编码系数。否则,我们对下一个系数循环。关于功能框706,该功能框处理last_ge2_flag,注意,last_ge2_flag的处理将参照图7B作进一步描述。关于功能框707,该功能框处理last_flag,注意,last_flag的处理将参照图7C作进一步描述。关于功能框708,该功能框处理Bin_1,注意,Bin_1的处理将参照图7D作进一步描述。关于功能框709,该功能框处理level,注意,level的处理将参照图7E作进一步描述。
转到图7B,编码last_ge2_flag的示范性方法用标号720总体表示。该方法720包括将控制交给判定框721的开始框719。判定框721确定last_ge2_flag =0是否成立。如果是,则将控制交给判定框722。否则,将控制交给结束框 798。判定框722确定在当前系数之后是否存在大于1的系数。如果是,则将控制交给功能框723。否则,将控制交给功能框724。功能框723设置last_ge2 _flag=0,并将控制交给判定框725。功能框724设置last_ge2_flag=1,并将控制交给判定框725。判定框725确定当前扫描位置是否是最后扫描位置。如果是,则将控制交给结束框798。否则,将控制交给功能框726。功能框726 编码last_ge2_flag,并将控制交给结束框798。
转到图7C,编码last_flag的示范性方法用标号730总体表示。该方法730 包括将控制交给判定框731的开始框729。判定框731确定last_ge2_flag=1 是否成立。如果是,则将控制交给判定框732。否则,将控制交给结束框797。判定框732确定在当前系数之后是否存在有效系数。如果是,则将控制交给功能框733。否则,将控制交给功能框734。功能框733设置last_flag=0,并将控制交给判定框735。功能框734设置last_flag=1,并将控制交给判定框 735。判定框735确定当前扫描位置是否是最后扫描位置。如果是,则将控制交给结束框797。否则,将控制交给功能框736。功能框736编码last_flag,并将控制交给结束框797。
转到图7D,编码Bin_1的示范性方法用标号740总体表示。该方法740 包括将控制交给判定框741的开始框739。判定框741确定(last_ge2_flag=0) 是否成立或(对于作为块中的第一有效系数的当前系数,last_ge2_flag=1是否成立)。如果是,则将控制交给判定框742。否则,将控制交给结束框796。判定框742确定变换系数的绝对值是否是1(Abs(currCoeff)=1是否成立)。如果是,则将控制交给功能框743。否则,将控制交给功能框744。功能框743 设置Bin_1=1,并将控制交给功能框745。功能框744设置Bin_1=0,并将控制交给功能框745。功能框745编码Bin_1,并将控制交给结束框796。
转到图7E,编码level的示范性方法用标号750总体表示。该方法750 包括将控制交给判定框751的开始框749。判定框751确定变换系数的绝对值大于或等于2(Abs(currCoeff)>=2)是否成立。如果是,则将控制交给功能框752。否则,将控制交给结束框795。功能框752编码level,其中level= Abs(currCoeff)-2,并将控制交给结束框795。
方法700中的编码次序与图1中的例子的编码次序相同。但是,该编码次序对于方框706~710来说是灵活的,只要满足如下准则即可:
○Last_ge2_flag(由功能框706)在Bin_l(由功能框708)之前处理,以及Bin_l(由功能框708)在level(由功能框709)之前处理。也就是说。 706→708→709。
○Last_flag(由功能框707)的处理可以接在功能框706、708或709 之后。
○sign(由功能框710)的处理可以在四个功能框706、707、708、709 的任何一个之前或之后完成。
○解码器中的处理次序必须与编码器中的处理次序匹配。
注意,当编码块中的最后扫描位置中的系数时,要作特殊处理。
○在方法720中,如果last_ge2_flag在最后系数之前仍然是0,则对于最后系数,last_ge2_flag必然是1,因此无需编码last_ge2_flag。
○在方法730中,类似地,如果last_flag在最后系数之前仍然是0,则对于最后系数,last_flag必然是1,因此无需编码last_flag。
○Bin_l(740):关于功能框741,如果对于最后系数,通过功能框724 将last_ge2_flag设置成1(但无需通过功能框726编码和发送),并且是块中的第一有效系数,则应该按照方框742-745测试和编码Bin_l。
○如果需要的话,应该编码level信息(按照方框709)。
转到图8A,熵解码的示范性方法用标号800总体表示,该方法800包括将控制交给判定框801的开始框819。判定框801确定在一个块中是否存在有效系数。如果是,则将控制交给功能框802。否则,将控制交给结束框899。功能框802设置last_ge2_flag=0和last_flag=0,并将控制交给功能框803。如果last_flag=0,则功能框803使用变量j开始循环,变量j具有从第1到第(#) 系数的范围,并将控制交给功能框804。功能框804解码sig_flag,并将控制交给功能框805。判定框805确定sig_flag=1是否成立。如果是,则将控制交给功能框806。否则,将控制交给循环限制框811。如果需要的话,功能框 806解码last_ge2_flag,并将控制交给功能框807。如果需要的话,功能框807 解码last_flag,并将控制交给功能框808。如果需要的话,功能框808解码 Bin_1,并将控制交给功能框809。如果需要的话,功能框809解码level,并将控制交给功能框810。功能框810解码sign,并将控制交给循环限制框811。循环限制框811结束该循环,并将控制交给结束框899。
关于功能框803,我们按与编码器相同的扫描次序对块中的系数循环。在具有last_flag=1的系数之后,无需对系数循环。关于功能框806,该功能框处理last_ge2_flag,注意,last_ge2_flag的处理将参照图8B作进一步描述。关于功能框807,该功能框处理last_flag,注意,last_flag的处理将参照图8C 作进一步描述。关于功能框808,该功能框处理Bin_1,注意,Bin_1的处理将参照图8D作进一步描述。关于功能框809,该功能框处理level,注意,level 的处理将参照图8E作进一步描述。
要懂得的是,在一个实施例中,方法800的解码次序与方法700的编码次序匹配。但是,该解码次序对于功能框806-810来说是灵活的,只要与与其有关的编码次序匹配即可。
转到图8B,解码last_ge2_flag的示范性方法用标号820总体表示。该方法820包括将控制交给判定框821的开始框812。判定框812确定last_ge2_flag =0是否成立。如果是,则将控制交给判定框822。否则,将控制交给结束框 898。判定框822确定当前扫描位置是否是最后扫描位置。如果是,则将控制交给功能框823。否则,将控制交给功能框824。功能框823设置last_ge2_flag =1,并将控制交给结束框898。功能框724解码last_ge2_flag,并将控制交给结束框898。
转到图8C,解码last_flag的示范性方法用标号830总体表示。该方法830 包括将控制交给判定框831的开始框825。判定框831确定last_ge2_flag=1 是否成立。如果是,则将控制交给判定框832。否则,将控制交给结束框897。判定框832确定当前扫描位置是否是最后扫描位置。如果是,则将控制交给结束框897。否则,将控制交给功能框833。功能框833解码last_flag,并将控制交给结束框897。
转到图8D,解码Bin_1的示范性方法用标号840总体表示。该方法840 包括将控制交给功能框841的开始框834。功能框841设置Bin_1=1,并将控制交给判定框842。判定框842确定(last_ge2_flag=0)是否成立或(对于作为块中的第一有效系数的当前系数,last_ge2_flag=1是否成立)。如果是,则将控制交给功能框843。否则,将控制交给结束框896。功能框843解码Bin_1,并将控制交给结束框896。
转到图8E,解码level的示范性方法用标号850总体表示。该方法850 包括将控制交给判定框851的开始框844。判定框851确定(Bin_1=0)是否成立或(对于不是块中的第一有效系数的当前系数,last_ge2_flag=1是否成立)。如果是,则将控制交给功能框852。否则,将控制交给功能框853。功能框852解码level,将当前系数的绝对值设置成level+2(Abs(currCoeff)= level+2),并将控制交给结束框895。功能块853将当前系数的绝对值设置成 1(abs(currCoeff))=1。并将控制交给结束框895。
注意,当解码块中的最后扫描位置中的系数时,要作特殊处理。
○在方法820中,如果last_ge2_flag在最后系数之前仍然是0,则对于最后系数,last_ge2_flag必然是1,因此无需解码last_ge2_flag。而是,仅仅按照方框823设置成1。
○在方法830中,类似地,如果last_flag在最后系数之前仍然是0,则对于最后系数,last_flag必然是1,因此无需解码last_flag。
○Bin_l(按方法840):关于功能框842,如果对于最后系数,在823 中将last_ge2_flag设置成1(但无需通过功能框824解码),并且是块中的第一有效系数,则应该通过功能框843解码Bin_l。
○level(按方法850):在851中,如果Bin_1=0或如果对于最后系数,通过方框823将last_ge2_flag设置成1(但无需通过功能框824解码),以及最后系数不是第一有效系数,则应该通过功能框852解码level。否则,通过功能框853将这个最后系数的绝对值设置成1。
所提方法的另一个优点是在像sig_flag、last_flag等那样的其他语法的相同扫描通过中编码系数电平。在CABAC中,以可以看作编码一个块的第二次通过的反向之字形扫描次序编码系数电平信息。在这种反向之字形次序编码中,可以利用利用编码系数的反向之字形位置设计的上下文模型编码电平信息。具体地说,利用上下文模型0(以反向之字形次序)编码第一编码系数,利用上下文模型1编码第二编码系数,依此类推。这种上下文模型设计与利用等概率(0.5/0.5)模型(即,每个bin 1位地直接输出bins)编码电平 bins相比呈现一些好处。
在单次通过编码方法中利用适当设计的上下文模型可以容易地补偿这种小损失。给定编码系数的系数电平信息,可以根据来自它们的编码邻居的已知电平信息设计sig_flag、last_ge2_flag、last_flag、Bin_1和level的上下文模型,以便进一步提高上下文模型的性能和达到更高编码效率。
转到图9,选择和传信当前变换系数的一个数值的方法用标号900总体表示。方法900包括将控制交给功能框910的开始框905。功能框910输入画面和一组数值,并将控制交给功能框920。功能框920根据以前处理的块或画面的统计值自适应地选择一个数值,并将控制交给功能框930。功能框 930在序列级别、帧级别、切片级别、或块级别上显性地传信所选数值,并将控制交给结束框999。
转到图10,解码当前变换系数的一个数值的示范性方法用标号1000总体表示。方法1000包括将控制交给功能框1010的开始框1005。功能框1010 在序列级别、帧级别、切片级别、或块级别上解码所选数值,并将控制交给结束框1099。
因此,本原理有利地提供了系统性地编码量化变换块的改进熵编码和解码的方法及装置。至少存在两种与这种做法相联系的新颖性。首先,引入的 last_ge2_flag减少了要在编码器和解码器中二进制算术编解码的二进制bins,因此实现了更简单的系统。其次,利用其他语法以相同扫描次序编码系数值信息使块的熵编码在一次扫描通过中完成。该数值信息可以用于改进语法的上下文模型,以便进一步达到较高编码效率。
要懂得的是,last_ge2_flag仅仅是一个实施例。本领域的普通技术人员可明显看出,该标志可替代地可以称为last_geX_flag,其中X是任何数字。
现在对其中一些上面已经提及的本发明的许多附带优点/特征的一些加以描述。例如,一个优点/特征是一种含有视频编码器的装置,该视频编码器用于通过如下步骤编码画面中的至少一个块:变换该块的残差以获取变换系数;量化所述变换系数以获取量化变换系数;以及熵编码所述量化变换系数。该量化变换系数在单次通过中使用一个标志来编码,该标志指示正在处理的所述量化变换系数的当前一个是数值大于或等于指定值的该块的最后非零系数。
另一个优点/特征是如上所述的含有视频编码器的装置,其中该指定值是 2。
又一个优点/特征是如上所述的含有视频编码器的装置,其中量化变换系数当中数值小于指定值的随后非零系数通过只编码数值小于指定值的随后非零系数的各自符号来编码。
再一个优点/特征是如上所述的含有视频编码器的装置,其中该指定值选自多个数值。
此外,另一个优点/特征是如上所述的指定值选自多个数值的含有视频编码器的装置,其中该画面是包括在视频序列中的多个画面之一,以及响应从该画面中或视频序列中的多个画面当中的一个或多个其他画面中的以前处理过块中导出的统计值自适应地选择指定值。
进一步,另一个优点/特征是如上所述的含有视频编码器的装置,其中显性地传信该指定值。
此外,另一个优点/特征是如上所述的含有视频编码器的装置,其中在序列级别、帧级别、切片级别、和块级别的至少一个上显性地传信该指定值。
另外,另一个优点/特征是如上所述的含有视频编码器的装置,其中量化变换系数的当前一个的电平通过如下步骤来编码:从量化变换系数的当前一个的实际值中减去指定值以获取差值;以及编码该差值作为电平,以便在相应解码器上通过将差值与指定值相加再现该电平。
此外,另一个优点/特征是如上所述的含有视频编码器的装置,其中至少 sig_flag语法元素、标志、last_flag语法元素、Bin_l语法元素、level语法元素、和sign语法元素在相同扫描次序中编码,sig_flag语法元素用于指示量化变换系数的当前一个是否具有非零值,last_flag语法元素用于指示具有非零值的量化变换系数的当前一个是否是在给定扫描次序中该块中具有非零值的最后量化变换系数,Bin_l语法元素用于指示量化变换系数的当前一个的绝对值具有当前未知的非零值,level语法元素用于当量化变换系数的当前一个具有大于指定值的绝对值时指示量化变换系数的当前一个的绝对值,以及sign语法元素用于指示量化变换系数的当前一个的相应符号。
相关领域的普通技术人员可以根据本文的教导轻易地弄清本原理的这些和其他特征和优点。应该明白,本原理的教导可以以硬件、软件、固件、专用处理器、或它们的组合的各种形式实现。
最优选的是,将本原理的教导实现成硬件和软件的组合。此外,软件可以实现成有形地具体化在程序存储单元上的应用程序。应用程序可以上载到包含任何适用结构的机器上并由它执行。优选的是,在含有像一个或多个中央处理单元(“CPU”)、随机存取存储器(“RAM”)、和输入/输出(“I/O”) 接口那样的硬件的计算机平台上实现该机器。该计算机平台还可以包括操作系统和微指令代码。本文所述的各种过程和功能可以是可由CPU执行的部分微指令代码或部分应用程序,或它们的任何组合。另外,像附加数据存储单元和打印单元那样的各种其他外围单元可以与计算机平台连接。
还应该明白,因为描绘在附图中的一些分系统部件和方法最好用软件实现,所以系统部件或过程功能块之间的实际连接可能随编程本原理的方式而异。给定本文的教导,相关领域的普通技术人员能够设想出本原理的这些和类似实现或配置。
尽管本文参考附图描述了一些例示性实施例,但应该明白,本原理不局限于那些确切实施例,相关领域的普通技术人员可以不偏离本原理的精神或范围地实施各种改变和修改。所有这样的改变和修改都意欲包括在如所附权利要求书所述的本原理的范围之内。
Claims (31)
1.一种用于视频编码的装置,其包含:
视频编码器,用于通过如下方式编码画面中的至少一个块:变换该块的残差以获取变换系数;量化所述变换系数以获取量化变换系数;以及熵编码所述量化变换系数,其中使用一标志来编码该量化变换系数,该标志指示正在被处理的所述量化变换系数的当前一个是该块的值大于或等于指定值的最后的非零系数,其中,所述指定值从多个值中选择,所选择的值对于该块保持固定,并且所述标志是一语法元素。
2.如权利要求1所述的装置,其中该指定值是2。
3.如权利要求1所述的装置,其中量化变换系数当中的值小于指定值的随后的非零系数通过只编码值小于指定值的随后的非零系数的各自符号来编码。
4.如权利要求1所述的装置,其中该画面是包含在视频序列中的多个画面之一,以及响应从该画面中或视频序列中的多个画面当中的一个或多个其他画面中的以前处理过的块中导出的统计值自适应地选择指定值。
5.如权利要求1所述的装置,其中显性地传信该指定值。
6.如权利要求1所述的装置,其中在序列级别、帧级别、切片级别、和块级别的至少一个上显性地传信该指定值。
7.如权利要求1所述的装置,其中量化变换系数的当前一个的电平通过如下方式来编码:从量化变换系数的当前一个的实际值中减去指定值以获取差值;以及编码该差值作为电平,以便在相应解码器上通过将差值与指定值相加再现该电平。
8.如权利要求1所述的装置,其中至少sig_flag语法元素、所述标志、last_flag语法元素、Bin_l语法元素、level语法元素、和sign语法元素在相同扫描次序中编码,其中sig_flag语法元素用于指示量化变换系数的当前一个是否具有非零值,last_flag用于指示具有非零值的量化变换系数的当前一个是否是在给定扫描次序中该块中具有非零值的最后的量化变换系数,Bin_l语法元素用于指示量化变换系数的当前一个的绝对值具有当前未知的非零值,level语法元素用于当量化变换系数的当前一个具有大于指定值的绝对值时指示量化变换系数的当前一个的绝对值,以及sign语法元素用于指示量化变换系数的当前一个的相应符号。
9.一种在视频编码器中的方法,其包含:
通过如下方式编码画面中的至少一个块:变换该块的残差以获取变换系数;量化所述变换系数以获取量化变换系数;以及熵编码所述量化变换系数,使用一标志来编码该量化变换系数,该标志指示正在被处理的所述量化变换系数的当前一个是该块的值大于或等于指定值的最后的非零系数,其中,所述指定值从多个值中选择,所选择的值对于该块保持固定,并且所述标志是一语法元素。
10.如权利要求9所述的方法,其中该指定值是2。
11.如权利要求9所述的方法,其中量化变换系数当中的值小于指定值的随后的非零系数通过只编码值小于指定值的随后的非零系数的各自符号来编码。
12.如权利要求9所述的方法,其中该画面是包含在视频序列中的多个画面之一,以及响应从该画面中或视频序列中的多个画面当中的一个或多个其他画面中的以前处理过的块中导出的统计值自适应地选择指定值。
13.如权利要求9所述的方法,其中显性地传信该指定值。
14.如权利要求9所述的方法,其中在序列级别、帧级别、切片级别、和块级别的至少一个上显性地传信该指定值。
15.如权利要求9所述的方法,其中量化变换系数的当前一个的电平通过如下方式来编码:从量化变换系数的当前一个的实际值中减去指定值以获取差值;以及编码该差值作为电平,以便在相应解码器上通过将差值与指定值相加再现该电平。
16.如权利要求9所述的方法,其中至少sig_flag语法元素、该标志、last_flag语法元素、Bin_l语法元素、level语法元素、和sign语法元素在相同扫描次序中编码,其中sig_flag语法元素用于指示量化变换系数的当前一个是否具有非零值,last_flag用于指示具有非零值的量化变换系数的当前一个是否是在给定扫描次序中该块中具有非零值的最后的量化变换系数,Bin_l语法元素用于指示量化变换系数的当前一个的绝对值具有当前未知的非零值,level语法元素用于当量化变换系数的当前一个具有大于指定值的绝对值时指示量化变换系数的当前一个的绝对值,以及sign语法元素用于指示量化变换系数的当前一个的相应符号。
17.一种用于视频解码的装置,其包含:
视频解码器,用于通过如下方式解码画面中的至少一个块:熵解码量化变换系数;逆量化所述量化变换系数以获取变换系数;以及逆变换该变换系数以获取该块的重构残差以便用在重构该块中,解码该量化变换系数,其中一标志指示正在被处理的所述量化变换系数的当前一个是该块的值大于或等于指定值的最后的非零系数,其中,所述指定值从多个值中选择,所选择的值对于该块保持固定,并且所述标志是一语法元素。
18.如权利要求17所述的装置,其中该指定值是2。
19.如权利要求17所述的装置,其中量化变换系数当中值小于指定值的随后的非零系数通过只解码值小于指定值的随后的非零系数的各自符号来解码。
20.如权利要求17所述的装置,其中显性地确定该指定值。
21.如权利要求17所述的装置,其中从序列级别、帧级别、切片级别、和块级别的至少一个中显性地确定该指定值。
22.如权利要求17所述的装置,其中量化变换系数的当前一个的电平通过如下方式来解码:解码量化变换系数的当前一个的实际值与指定值之间先前确定的差值;以及将该差值与该指定值相加来获取该电平。
23.如权利要求17所述的装置,其中至少sig_flag语法元素、该标志、last_flag语法元素、Bin_l语法元素、level语法元素、和sign语法元素在相同扫描次序中编码,其中sig_flag语法元素用于指示量化变换系数的当前一个是否具有非零值,last_flag用于指示具有非零值的量化变换系数的当前一个是否是在给定扫描次序中该块中具有非零值的最后的量化变换系数,Bin_l语法元素用于指示量化变换系数的当前一个的绝对值具有当前未知的非零值,level语法元素用于当量化变换系数的当前一个具有大于指定值的绝对值时指示量化变换系数的当前一个的绝对值,以及sign语法元素用于指示量化变换系数的当前一个的相应符号。
24.一种在视频解码器中的方法,其包含:
通过如下方式解码画面中的至少一个块:熵解码量化变换系数;逆量化所述量化变换系数以获取变换系数;以及逆变换该变换系数以获取该块的重构残差以便用在重构该块中,解码该量化变换系数,其中一标志指示正在被处理的所述量化变换系数的当前一个是该块的值大于或等于指定值的最后的非零系数,其中,所述指定值从多个值中选择,所选择的值对于该块保持固定,并且所述标志是一语法元素。
25.如权利要求24所述的方法,其中该指定值是2。
26.如权利要求24所述的方法,其中量化变换系数当中值小于指定值的随后的非零系数通过只解码值小于指定值的随后的非零系数的各自符号来解码。
27.如权利要求24所述的方法,其中显性地确定该指定值。
28.如权利要求24所述的方法,其中从序列级别、帧级别、切片级别、和块级别的至少一个中显性地确定该指定值。
29.如权利要求24所述的方法,其中量化变换系数的当前一个的电平通过如下方式来解码:解码量化变换系数的当前一个的实际值与指定值之间先前确定的差值;以及将该差值与该指定值相加来获取该电平。
30.如权利要求24所述的方法,其中至少sig_flag语法元素、该标志、last_flag语法元素、Bin_l语法元素、level语法元素、和sign语法元素在相同扫描次序中编码,其中sig_flag语法元素用于指示量化变换系数的当前一个是否具有非零值,last_flag用于指示具有非零值的量化变换系数的当前一个是否是在给定扫描次序中该块中具有非零值的最后的量化变换系数,Bin_l语法元素用于指示量化变换系数的当前一个的绝对值具有当前未知的非零值,level语法元素用于当量化变换系数的当前一个具有大于指定值的绝对值时指示量化变换系数的当前一个的绝对值,以及sign语法元素用于指示量化变换系数的当前一个的相应符号。
31.一种存储指令的计算机可读存储介质,所述指令被处理器执行时实现权利要求9-16或者权利要求24-30中任一项所述的方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US39319510P | 2010-10-14 | 2010-10-14 | |
US61/393,195 | 2010-10-14 | ||
CN201180060451.9A CN103262534B (zh) | 2010-10-14 | 2011-10-06 | 改进熵编码和解码的方法及装置 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180060451.9A Division CN103262534B (zh) | 2010-10-14 | 2011-10-06 | 改进熵编码和解码的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108419084A CN108419084A (zh) | 2018-08-17 |
CN108419084B true CN108419084B (zh) | 2021-02-26 |
Family
ID=44802431
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180060451.9A Active CN103262534B (zh) | 2010-10-14 | 2011-10-06 | 改进熵编码和解码的方法及装置 |
CN201810367091.0A Active CN108419084B (zh) | 2010-10-14 | 2011-10-06 | 改进熵编码和解码的方法、装置及存储介质 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180060451.9A Active CN103262534B (zh) | 2010-10-14 | 2011-10-06 | 改进熵编码和解码的方法及装置 |
Country Status (10)
Country | Link |
---|---|
US (8) | US9693056B2 (zh) |
EP (3) | EP2628299B1 (zh) |
JP (5) | JP2014500643A (zh) |
KR (7) | KR20230144120A (zh) |
CN (2) | CN103262534B (zh) |
DK (1) | DK2628299T3 (zh) |
ES (1) | ES2747798T3 (zh) |
HU (1) | HUE045823T2 (zh) |
PL (2) | PL3667924T3 (zh) |
WO (1) | WO2012051033A1 (zh) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20230144120A (ko) * | 2010-10-14 | 2023-10-13 | 인터디지털 브이씨 홀딩스 인코포레이티드 | 향상된 엔트로피 인코딩 및 디코딩을 위한 방법 및 장치 |
US20120163456A1 (en) | 2010-12-22 | 2012-06-28 | Qualcomm Incorporated | Using a most probable scanning order to efficiently code scanning order information for a video block in video coding |
US9338449B2 (en) * | 2011-03-08 | 2016-05-10 | Qualcomm Incorporated | Harmonized scan order for coding transform coefficients in video coding |
US9167253B2 (en) | 2011-06-28 | 2015-10-20 | Qualcomm Incorporated | Derivation of the position in scan order of the last significant transform coefficient in video 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 |
CA2807382A1 (en) * | 2012-04-16 | 2013-10-16 | Research In Motion Limited | Modified contexts for level coding of video data |
EP3270595A1 (en) * | 2016-07-15 | 2018-01-17 | Thomson Licensing | Method and apparatus for last coefficient coding for adaptive transform based video compression |
JP6377785B2 (ja) * | 2017-01-26 | 2018-08-22 | ユニ・チャーム株式会社 | 使い捨て吸収性物品 |
US10244261B2 (en) * | 2017-01-26 | 2019-03-26 | Google Llc | Transform coefficient coding using level maps |
EP3837842A4 (en) * | 2018-08-22 | 2022-06-01 | HFI Innovation Inc. | METHOD AND DEVICE FOR TRANSFORMATION COEFFICIENT ENCODING |
WO2020060867A1 (en) * | 2018-09-21 | 2020-03-26 | Interdigital Vc Holdings, Inc. | Scalar quantizer decision scheme for dependent scalar quantization |
WO2020071832A1 (ko) * | 2018-10-05 | 2020-04-09 | 엘지전자 주식회사 | 변환 계수 코딩 방법 및 그 장치 |
KR102349456B1 (ko) | 2018-11-12 | 2022-01-12 | 삼성전자주식회사 | 계수 레벨의 엔트로피 부호화 방법 및 장치, 엔트로피 복호화 방법 및 장치 |
WO2020141856A1 (ko) * | 2019-01-02 | 2020-07-09 | 엘지전자 주식회사 | 영상 코딩 시스템에서 레지듀얼 정보를 사용하는 영상 디코딩 방법 및 그 장치 |
CN117915090A (zh) * | 2019-01-12 | 2024-04-19 | Oppo广东移动通信有限公司 | 在图像编译系统中使用残差信息的图像解码方法及其装置 |
CN112514384A (zh) | 2019-01-28 | 2021-03-16 | 株式会社 Xris | 视频信号编码/解码方法及其装置 |
ES2980868T3 (es) | 2019-03-11 | 2024-10-03 | Huawei Tech Co Ltd | Direcciones de segmento basadas en sub-imagen en codificación de vídeo |
US12041270B2 (en) | 2019-06-24 | 2024-07-16 | Alibaba Group Holding Limited | Transform-skip residual coding of video data |
CN111741302B (zh) * | 2020-08-07 | 2021-05-14 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、计算机可读介质及电子设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1527610A (zh) * | 2003-09-18 | 2004-09-08 | �й���ѧԺ�����о��� | 用于视频预测残差系数编码的熵编码方法 |
CN101212676A (zh) * | 2006-12-29 | 2008-07-02 | 北京展讯高科通信技术有限公司 | 高效并行cabac解码方法及其装置 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB0124882D0 (en) | 2001-10-17 | 2001-12-05 | Koninkl Philips Electronics Nv | Improved variable length decoder |
US8599925B2 (en) * | 2005-08-12 | 2013-12-03 | Microsoft Corporation | Efficient coding and decoding of transform blocks |
KR100873636B1 (ko) * | 2005-11-14 | 2008-12-12 | 삼성전자주식회사 | 단일 부호화 모드를 이용하는 영상 부호화/복호화 방법 및장치 |
US7656326B2 (en) * | 2006-06-08 | 2010-02-02 | Via Technologies, Inc. | Decoding of context adaptive binary arithmetic codes in computational core of programmable graphics processing unit |
KR101356733B1 (ko) | 2007-03-07 | 2014-02-05 | 삼성전자주식회사 | 컨텍스트 기반 적응적 이진 산술 부호화, 복호화 방법 및장치 |
KR101394153B1 (ko) * | 2007-12-11 | 2014-05-16 | 삼성전자주식회사 | 양자화 방법 및 장치, 역양자화 방법 및 장치 |
US8891615B2 (en) * | 2008-01-08 | 2014-11-18 | Qualcomm Incorporated | Quantization based on rate-distortion modeling for CABAC coders |
KR101375668B1 (ko) | 2008-03-17 | 2014-03-18 | 삼성전자주식회사 | 변환 계수의 부호화, 복호화 방법 및 장치 |
JP2009231914A (ja) * | 2008-03-19 | 2009-10-08 | Sony Corp | 復号装置、復号処理方法およびプログラム |
JP2012023611A (ja) * | 2010-07-15 | 2012-02-02 | Mitsubishi Electric Corp | 動画像符号化装置、動画像復号装置、動画像符号化方法及び動画像復号方法 |
US9154801B2 (en) | 2010-09-30 | 2015-10-06 | Texas Instruments Incorporated | Method and apparatus for diagonal scan and simplified coding of transform coefficients |
KR20230144120A (ko) * | 2010-10-14 | 2023-10-13 | 인터디지털 브이씨 홀딩스 인코포레이티드 | 향상된 엔트로피 인코딩 및 디코딩을 위한 방법 및 장치 |
CN104203766B (zh) | 2012-03-29 | 2016-11-16 | 万通集团公司 | 具有滑动密封部件的封盖 |
-
2011
- 2011-10-06 KR KR1020237033637A patent/KR20230144120A/ko active Application Filing
- 2011-10-06 CN CN201180060451.9A patent/CN103262534B/zh active Active
- 2011-10-06 EP EP11770644.0A patent/EP2628299B1/en active Active
- 2011-10-06 KR KR1020217011762A patent/KR102339720B1/ko active IP Right Grant
- 2011-10-06 HU HUE11770644A patent/HUE045823T2/hu unknown
- 2011-10-06 DK DK11770644.0T patent/DK2628299T3/da active
- 2011-10-06 KR KR1020207016506A patent/KR102244659B1/ko active IP Right Grant
- 2011-10-06 KR KR1020217040643A patent/KR102586032B1/ko active IP Right Grant
- 2011-10-06 KR KR1020137009475A patent/KR101874945B1/ko active IP Right Grant
- 2011-10-06 US US13/879,378 patent/US9693056B2/en active Active
- 2011-10-06 KR KR1020187018637A patent/KR101997765B1/ko active IP Right Grant
- 2011-10-06 WO PCT/US2011/055047 patent/WO2012051033A1/en active Application Filing
- 2011-10-06 PL PL19182786T patent/PL3667924T3/pl unknown
- 2011-10-06 EP EP21200647.2A patent/EP3961930B1/en active Active
- 2011-10-06 PL PL11770644T patent/PL2628299T3/pl unknown
- 2011-10-06 ES ES11770644T patent/ES2747798T3/es active Active
- 2011-10-06 EP EP19182786.4A patent/EP3667924B1/en active Active
- 2011-10-06 KR KR1020197019168A patent/KR102123605B1/ko active IP Right Grant
- 2011-10-06 CN CN201810367091.0A patent/CN108419084B/zh active Active
- 2011-10-06 JP JP2013533883A patent/JP2014500643A/ja active Pending
-
2017
- 2017-05-19 JP JP2017099464A patent/JP6491691B2/ja active Active
- 2017-05-23 US US15/602,482 patent/US9832486B2/en active Active
- 2017-10-24 US US15/791,470 patent/US10097859B2/en active Active
-
2018
- 2018-09-06 US US16/123,219 patent/US10694211B2/en active Active
-
2019
- 2019-03-01 JP JP2019037149A patent/JP7181126B2/ja active Active
-
2020
- 2020-05-20 US US16/878,689 patent/US11218732B2/en active Active
-
2021
- 2021-01-29 JP JP2021013541A patent/JP2021073805A/ja active Pending
- 2021-11-23 US US17/533,235 patent/US11677983B2/en active Active
-
2023
- 2023-03-14 JP JP2023039445A patent/JP2023073281A/ja active Pending
- 2023-05-03 US US18/142,635 patent/US12052439B2/en active Active
-
2024
- 2024-06-17 US US18/745,113 patent/US20240340453A1/en active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1527610A (zh) * | 2003-09-18 | 2004-09-08 | �й���ѧԺ�����о��� | 用于视频预测残差系数编码的熵编码方法 |
CN101212676A (zh) * | 2006-12-29 | 2008-07-02 | 北京展讯高科通信技术有限公司 | 高效并行cabac解码方法及其装置 |
Non-Patent Citations (2)
Title |
---|
Context-based adaptive binary arithmetic coding in the H.264/AVC video compression standard;D. Marpe,et al.;《IEEE Transactions on Circuits and Systems for Video Technology》;20030804;第13卷(第7期);全文 * |
Proposal on Improved Entropy Coding Method for DCT coefficients;Kazuo Sugimoto,et al.;《Joint Collaborative Team on Video Coding (JCT-VC)》;20100728;第7页,图6 * |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12052439B2 (en) | Methods and apparatus for improved entropy encoding and decoding | |
CN107710759B (zh) | 转换系数编解码的方法及装置 | |
KR20210063483A (ko) | 적응적 트리 선택을 사용한 이진 집합의 비디오 인코딩 및 디코딩을 위한 방법 및 장치 | |
EP2569944A1 (en) | Methods and apparatus for unified significance map coding | |
CN116982317A (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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20190919 Address after: Delaware, USA Applicant after: Interactive Digital VC Holding Company Address before: Icelemulino, France Applicant before: Thomson Licensing Company |
|
GR01 | Patent grant | ||
GR01 | Patent grant |