CN107018426A - 用于图像和视频编码的二进制化器选择 - Google Patents

用于图像和视频编码的二进制化器选择 Download PDF

Info

Publication number
CN107018426A
CN107018426A CN201611158343.6A CN201611158343A CN107018426A CN 107018426 A CN107018426 A CN 107018426A CN 201611158343 A CN201611158343 A CN 201611158343A CN 107018426 A CN107018426 A CN 107018426A
Authority
CN
China
Prior art keywords
binarizer
code tree
code
default
changed
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.)
Granted
Application number
CN201611158343.6A
Other languages
English (en)
Other versions
CN107018426B (zh
Inventor
何大可
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Maliki Innovation Co ltd
Original Assignee
BlackBerry Ltd
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 BlackBerry Ltd filed Critical BlackBerry Ltd
Publication of CN107018426A publication Critical patent/CN107018426A/zh
Application granted granted Critical
Publication of CN107018426B publication Critical patent/CN107018426B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4006Conversion to or from arithmetic code
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4006Conversion to or from arithmetic code
    • H03M7/4012Binary arithmetic codes
    • H03M7/4018Context adapative binary arithmetic codes [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/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/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/96Tree coding, e.g. quad-tree coding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/42Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本申请公开了用于使用算术编码进行图像和视频编码的方法和设备。可使用已修改二进制化器来执行通常使用缺省二进制化器执行的对符号的二进制化。可在编码器和/或解码器处选择或构建二进制化器,以提高二进制化的效率,并最小化二进制化器针对输入符号序列所输出的二进制码序列的长度。已修改二进制化器可从预定义的二进制化器中选择。已修改二进制化器可通过对向缺省二进制化器所使用的缺省编码树的叶子节点的符号指派进行修改来构建。已修改二进制化器可通过修改缺省二进制化器所使用的缺省编码树的结构来构建。可在首部信息中向解码器信号通知对缺省编码树的改变。备选地,解码器可基于编码器在首部中发送的概率信息来构建已修改二进制化器。

Description

用于图像和视频编码的二进制化器选择
技术领域
本申请总体涉及数据压缩,且具体地涉及用于图像和视频编码中的二进制化器选择的方法和设备。
背景技术
在通信和计算机联网中使用数据压缩来高效地存储、发送和复制信息。数据压缩在图像、音频和视频的编码中得到了具体应用。常见的图像压缩格式包括JPEG、TIFF和PNG。新开发的视频编码标准是ITU-T H.265/HEVC标准。其他视频编码格式包括由Google公司开发的VP8和VP9格式。对所有这些标准和格式的演进正在积极开发中。
所有这些图像和视频编码标准和格式基于预测编码,预测编码创建对要编码的数据的预测,然后对预测中的误差(通常称为残差)进行编码以作为比特流发送给解码器。然后,解码器进行相同的预测,并通过从比特流中解码出的重构误差来对其进行调整。编码器处对误差的无损数据压缩经常包括误差的频谱变换以创建变换域系数的块。这通常伴随着有损量化。在解码器处执行相反操作以重构误差/残差。在许多编码方案,通常使用二进制算术编码(BAC)对该数据加上用于做出预测的边信息(例如,帧内编码模式或帧间编码运动矢量)进行编码。这意味着可能需要对数据(这里称为“符号”)的非二进制部分进行二进制化,以创建用于BAC引擎进行编码的二进制数据流。在一些编码器/解码器中,可以使用多级算术编码器而不是二进制算术编码器,在这种情况下,二进制化器被嵌入在多级算术编码器内。
在现有的编码方案中,二进制化器由标准规定。例如,在H.265/HEVC中,二进制化方案(CABAC)与上下文建模非常紧密地结合在一起。在VP8/VP9中,使用预定义的编码树来执行对“令牌”(对已量化系数的幅度进行信号通知的符号)的二进制化。
附图说明
作为示例,参考示出了本发明的示例实施例的附图,在附图中:
图1A以简化框图的形式示出了使用二进制化器和二进制算术编码器对视频进行编码的编码器;
图1B以简化框图的形式示出了具有二进制化器选择器和二进制算术编码器的示例编码器;
图2A以简化框图的形式示出了使用逆二进制化器和二进制算术解码器对视频进行解码的解码器;
图2B以简化框图的形式示出了具有二进制化器选择器和二进制算术解码器的示例解码器;
图3A以简化框图的形式示出了使用二进制化器和多级算术编码器对视频进行编码的编码器;
图3B以简化框图的形式示出了具有二进制化器选择器和多级算术编码器的示例编码器;
图4A以简化框图的形式示出了使用逆二进制化器和多级算术解码器对视频进行解码的解码器;
图4B以简化框图的形式示出了具有二进制化器选择器和多级算术解码器的示例解码器;
图5以图表方式示出了用于VP8和VP9中的令牌的示例编码树;
图6以图表方式示出了用于令牌的已修改编码树的示例;
图7以流程图形式示出了使用二进制化器选择对图像进行编码的示例过程;
图8以流程图形式示出了使用二进制化器选择对比特流进行解码以重构图像的示例过程;
图9示出了编码器的示例实施例的简化框图;以及
图10示出了解码器的示例实施例的简化框图。
在不同的附图中已使用类似的附图标记来表示类似的组件。
具体实施方式
本申请描述了用于对图像和/或视频进行编码和解码的方法和编码器/解码器。
在第一方案中,本申请描述了一种在视频或图像解码器中从比特流中解码出图像的方法,所述比特流具有针对块组的首部信息,所述解码器具有用于将比特流转换为二进制码(bin)序列的算术解码器,所述解码器具有将二进制码转换为符号的缺省二进制化器。该方法包括:从比特流中获得首部信息;根据所述首部信息确定关于针对所述块组的二进制码序列要使用已修改二进制化器而不是所述缺省二进制化器;以及使用所述已修改二进制化器对所述二进制码序列进行逆二进制化,以从所述二进制码序列中重构符号序列。
在另一方案中,本申请描述一种在图像或视频编码器内对图像进行编码以生成编码数据的比特流的方法,所述图像具有块组,所述编码器具有将二进制码转换为编码数据的比特流的算术编码器,所述编码器具有将符号变换为二进制码的缺省二进制化器。该方法包括:针对所述块组,确定要使用已修改二进制化器而不是所述缺省二进制化器来对所述块组内的符号序列进行二进制化;使用所述已修改二进制化器来对所述符号序列进行二进制化以生成二进制码序列;使用所述算术编码器对所述二进制码序列进行算术编码以生成编码数据的比特流;以及在所述比特流中插入对要关于所述二进制码序列使用所述已修改二进制化器而不是所述缺省二进制化器进行指示的首部信息。
在又一方案中,本申请描述了配置为实现这种编码和解码的方法的编码器和解码器。
在又一方案中,本申请描述了存储计算机可执行程序指令的非瞬时计算机可读介质,所述计算机可执行程序指令在被执行时将处理器配置为执行所描述的编码和/或解码的方法。
本领域普通技术人员将通过结合附图阅读以下示例的描述,来理解本申请的其他方面和特征。
将会理解,本申请的一些方案不限于图像或视频编码,并且在一些实施例中可以应用于一般的数据压缩。
在下面的描述中,参考用于视频编码的H.264/AVC标准、H.265/HEVC标准、VP8格式、VP9格式等描述一些示例实施例。本领域的普通技术人员将理解,本申请不限于那些视频编码标准和格式,而是可以应用于其它视频编码/解码标准和格式,包括可能的未来标准、多视点编码标准、可分级视频编码标准、3D视频编码标准和可重配置视频编码标准。类似地,就参考具体图像编码标准和格式而言,将理解,所描述的过程和设备可结合其他标准(包括未来的标准)来实现。
在随后的描述中,当提到视频或图像时,术语帧、图片、切片(slice)、分片(tile)、量化组和矩形切片组可以在某种程度上互换使用。本领域技术人员将理解,图片或帧可以包含一个或多个切片或片段。在一些情形中,一系列帧/图片可称为“序列”。其他术语可在其他视频或图像编码标准中使用。还将认识到,取决于可应用的图像或视频编码标准的具体要求或术语,某些编码/解码操作可以逐帧执行,而一些操作逐切片执行,一些操作逐图片执行,一些操作逐分片执行,还有一些操作逐矩形切片组执行等。在任何特定实施例中,适用的图像或视频编码标准可以确定是否关于帧和/或切片和/或图片和/或分片和/或矩形切片组等来执行以下描述的操作,视情况而定。相应地,根据本公开,本领域普通技术人员将理解,本文描述的特定操作或过程以及对帧、切片、图片、分片、矩形切片组的特定引用对于给定实施例是否适用于帧、切片、图片、分片、矩形切片组、或者其中的一些或全部。其还适用于编码树单元、编码单元、预测单元、变换单元、量化组等,这些将通过以下描述而变得清楚。
在下面的描述中,描述了涉及来自VP8和VP9的示例二进制化器(特别是用于令牌的编码树)的示例实施例。将会理解,VP8和VP9中的令牌是“符号”的一个示例,并且本申请不限于“令牌”。还将理解,尽管本申请的示例实现可以涉及VP8、VP9或该格式的演进,但是其不限于这样的编码方案。还将会理解,本申请可以应用于除了编码树之外且除了本文所描述的特定编码树之外的二进制化器。
在本申请中,术语“和/或”旨在覆盖列出元素的所有可能组合和子组合,包括列出元素的单独的任意一个、任意子组合或所有元素,而不是必须排除附加元素。
在本申请中,短语“...或...中的至少一个”旨在覆盖列出元素的任意一个或多个,包括列出元素的单独的任意一个、任意子组合或所有元素,而不是必须排除任何附加元素,且不是必须要求所有元素。
现在参考图1A,图1A以简化框图的形式示出了用于对视频进行编码的编码器10。该示例编码器涉及上下文建模之前的二进制化。换言之,针对被二进制化的二进制码而不是针对输入数据序列的预二进制化符号来确定上下文。
编码器10包括二进制化器12,二进制化器12将输入数据符号序列(其可包括已经通过其它编码处理(包括频谱变换、量化、预测操作等)生成的数据)转换成二进制码序列b1,b2,…bj-1,bj…。
编码器10还包括上下文生成器14。为了编码二进制码bj,上下文生成器14根据编码历史(例如,bj-1bj-2…和可用的边信息,如,bj在变换块的位置)确定上下文Cj。概率生成器16然后根据Cj和编码历史bj-1bj-2…确定pj,例如,出现在相同上下文下Cj下的已编码二进制符号。
给定针对bj的上下文Cj,二进制算术编码(BAC)编码器18基于所确定的概率pj对bj进行编码。BAC编码器18输出算术编码数据的比特流。换言之,BAC编码器18依赖特定于所确定的针对正被编码的二进制码的上下文的概率。在一些实施例中,例如H.265/HEVC,二进制化与上下文模型密切相关。例如,H.265/HEVC规定将量化的变换系数二进制化为符号比特、重要性系数标记、大于1标记等。这些二进制语法元素中的每一个可具有其自己的定义上下文模型,用于确定上下文,且因此用于确定与由BAC用于编码的语法元素相关联的概率(在H.265/HEVC的情况下,其是上下文自适应的)。
图2A以简化框图的形式示出了对应于图1A的示例编码器10的示例解码器50。示例解码器50包括BAC解码器52。BAC解码器52接收用于解码比特流的概率pj。概率pj由概率生成器56提供,并且特定于由上下文生成器54指定的上下文Cj。将会理解,上下文建模、上下文的确定以及概率确定与在对应的编码器10中执行的相同,以使得解码器50能够精确地解码比特流。逆二进制化器58基于由BAC解码器52输出的已解码的二进制码序列来重构符号序列。
本申请还可以适用于多级算术编码(MAC)的情况。这种类型的编码处理由来自字母表的符号形成的序列,该字母表的基数(cardinality)大于2。在MAC中,使用二叉搜索树来表示A,其中,A中的每个符号对应于二叉搜索树中独一的叶子。由此,为了编码和解码A中的符号a,对由从根到与a相对应的叶子的分支组成的路径进行编码和解码。要注意,可以采用约定来标记左分支“0”和右分支“1”,或采用任何其他约定来用{0,1}中的元素标记分支。观察到字母表A的二叉搜索树表示是MAC的一部分。因此,可将MAC与针对原始序列所设计的上下文模型一起使用。
现在参考图3A,图3A以简化框图的形式示出了用于对视频进行编码的编码器30。编码器30包括用于根据上下文模型确定上下文的上下文生成器32和用于确定与给定上下文相关联的概率的概率生成器34。该示例编码器30涉及上下文建模之后的二进制化。换言之,针对输入数据序列的预二进制化符号确定上下文,且然后在MAC编码器36内对该序列进行二进制化,MAC编码器36包括二进制化器38作为其一部分。在一些实施例中,二进制化器38可以采用二叉搜索树的形式,该二叉搜索树用于在给定针对符号确定的上下文的情况下将该符号转换为二进制串。
在图4A中示出了解码器70的对应简化框图。解码器70包括具有集成的逆二进制化器74的MAC解码器72,并且从上下文生成器76和概率生成器78接收用于对输入的编码数据比特流进行解码的概率信息。
现在将参考图5,图5示出了示例系数编码树500。该示例中的树500是用于编码“令牌”的编码树,该“令牌”表示VP8和VP9中的已量化变换域系数。VP8和VP9中的令牌是指示已量化变换域系数的幅度的二进制串。如下对其进行定义:
上面的dct_cat1、...、dct_cat6各自对应于有限的值集合。为了确定集合中的精确的值,要对附加比特进行编码和解码。例如,在对dct_cat1进行解码之后,要对附加比特进行解码以确定该值是5还是6。类似地,在对dct_cat2进行解码之后,要对两个附加比特进行解码以确定{7,8,9,10}中的值。对于dct_cat3到dct_cat5,分别需要3、4和5个附加比特。对于dct_cat6,需要11个附加比特。此外,对于除DCT_0和dct_eob之外的任何令牌,要编码和解码符号比特。
为了使用树500来解码令牌,解码器从根节点(0)开始并且遵循到与令牌相对应的叶子节点的路径。每个内部节点具有相关联的二元概率分布,该相关联的二元概率分布与是采用左路径还是采用右路径相关联。假设存在11个内部节点,这意味着存在11个二元分布。
基于平面类型、扫描位置和附近系数来针对令牌确定上下文。在VP8和VP9中有96个上下文,这意味着有1056个二元概率分布(11x96),因为每个上下文都有其自己的概率分布集合。这些概率分布可以存储在数组中,该数组被定义为:
Prob coeff_probs[4][8][3][num_dct_tokens-1];
coeff_probs通常对于帧/图片或片段而言是固定的。可以由编码器将其信号通知给解码器。
图5的示例编码树500可以表达如下:
编码器和解码器中的二进制算术编码引擎将内部概率分布用于对令牌(即,二进制化串)的比特进行算术编码。将会理解,二进制化器的结构被树500所固定,并且如果需要的话,随着时间仅调整针对给定上下文的内部概率。
对熵编码方法的压缩性能的理论极限的分析揭示了:在BAC的实际实现中,非归一化压缩率(其被定义为以比特为单位的压缩数据序列的长度)关于二进制序列长度n线性增长。要注意,(归一化)压缩率被定义为非归一化压缩率与输入序列长度的比率,即针对每输入符号的平均比特数。相应地,提高压缩效率的可能方法之一是改善二进制化的质量或功效,以减小二进制序列长度n。如上所述,在现有的编码标准(如H.265/HEVC和VP8/VP9中的上下文自适应BAC(CABAC))中,二进制化器被合并(bake)到上下文建模中。具体地,针对给定的上下文,二进制化器是固定的。二进制化基于规定如何将非二进制数据(例如,已量化系数)划分为二进制串的固定的树或固定的语法定义。所发生的任何二进制化与上下文和变换系数数据本身密切相关,而不与任何可用概率信息密切相关。
本申请提议向解码器发信号通知要使用已修改二进制化器而不是缺省二进制化器。编码器可以在以下情况下确定使用已修改二进制化器:其预期与使用缺省二进制化器的情况相比,已修改二进制化器将导致更短的二进制序列。二进制化器中的这种改变不是必然是上下文的确定函数,这意味着在相同的上下文中(在不同的块或图片中),编码器/解码器可以根据编码器做出的选择使用不同的二进制化器。
在一些示例实施例中,二进制化器是预先设计的,并且编码器从两个或更多个预定义二进制化器之间选择已修改二进制化器,该两个或更多个预定义二进制化器之一是缺省二进制化器。在一些其他示例实施例中,已修改二进制化器可以在编码器上即时地构建。解码器可以在比特流中接收新构建的二进制化器的细节,或者可以使用与编码器相同的处理来自己构建已修改二进制化器。在一些情况下,作为构建已修改二进制化器的机制,编码器信号通知对缺省二进制化器的改变。
二进制化器中的改变可以基于块、块系列、切片、图片或图像/视频数据的任何其它分组(grouping)来做出,并且可以在与分组相关联的首部中作为首部信息来信号通知。
对使用已修改二进制化器的确定可以基于多个因素。例如,其可以基于数据序列的编码历史。在一些情况下,其可以基于与上下文相关联的历史概率或估计概率。在一些情况下,其可涉及确定或估计已量化变换域系数的编码分布以及构建更好地匹配所确定的编码分布的新编码树。根据对示例实施例的以下描述,本领域普通技术人员将理解其它机制。
现在将参考图1B和2B,其分别示出了使用自适应二进制化器选择的编码器110和解码器150的简化框图。
编码器110包括上下文生成器114、概率生成器116和用于从二进制化序列中生成编码比特流的BAC编码器118。在编码器110中,二进制化器选择器120构建或选择用于二进制化输入数据序列的二进制化器112(例如,可能从预定义候选二进制化器的有限集合构建或选择)。关于选择的信息(标记为选择信息)可以与用于存储或发送的编码比特流(标记为比特流)组合(例如,复用)。在一些实施例中,选择信息被编码在首部信息字段内。
二进制化器选择器120的构建/选择可以基于数据序列的编码历史。其可以取决于具体代码或序列的概率分布,无论是根据经验确定还是基于先前编码的数据估计。在一些实施例中,上下文信息可以由二进制化器选择器120接收。
解码器150包括BAC解码器152、上下文生成器154和概率生成器156。BAC解码器对编码数据的输入(解复用)比特流进行解码,以重构二进制序列。逆二进制化器158对二进制序列进行逆二进制化,以重构符号序列。逆二进制化器158由二进制化器选择器160至少部分地基于选择信息流中的信息来选择/构建。如上所述,在一些情况下,可以从编码数据的比特流的首部字段中提取选择信息。在一些实施例中,该信息可以包括标识多个预定义二进制化器中的一个预定义二进制化器的信息、指定逆二进制化器158的结构的信息、指定解码器150根据其来构建对应的逆二进制化器158的概率分布的信息、或使解码器150能够选择或构建逆二进制化器158的其他这样的信息。
现在还参考图3B和4B,其分别示出了使用自适应二进制化器选择的编码器130和解码器170的附加示例的简化框图。这些示例还包括二进制化器选择器以及将关于二进制化器的选择/构建的信息从编码器130传递给解码器170。
在下面的示例实施例中,图5中所示的缺省编码树是示例缺省二进制化器。各个实施例详细说明可如何选择或构建已修改二进制化器,以及解码器如何确定使用或构造哪个二进制化器。
VP8和VP9中缺省编码树的结构基于令牌(即,符号)的预期分布。针对给定块组的令牌的实际分布可能偏离所假定的分布。要注意,令牌的分布(有时被称为“令牌的边缘分布”)不同于在coeff_probs数组中指定的内部节点概率,其以二元分布的汇集的形式为BAC所使用。令牌的边缘分布可以由长度为12的向量指定,其中每个元素对应于不同令牌的概率,且所有令牌概率之和等于1。对应地,块组(例如,切片/图片/帧)中令牌的经验分布是如下边缘分布:其可被定义为长度为12的向量,使得每个元素对应于在该块组中出现令牌的归一化频率。具体而言,设n表示图片/帧中令牌的总数,并且设fi表示令牌i,0≤i<12出现在图片/帧中的次数。则向量中的第i个元素等于且向量是:
为了方便起见,下面我们还可以使用非归一化频率向量
(f0,f1,…,f11)
其有时被称为非归一化经验分布。
设l* i表示用于对在VP8和VP9中定义的缺省系数编码树中的令牌i进行表示的二进制码的数量:
因此,如果使用缺省系数树,则要编码和解码的切片/图片/帧中的二进制码的总数是
设li表示通过使用所选择的不同于缺省系数编码树的二进制化器来表示令牌i所使用的二进制码的数量。整体而言,(l0,l1,…,l11)被称为二进制化器的长度函数。很容易看到,只要
则所选择的二进制化器减少了二进制码的总数,且节省通过来给出。为了找到满足上述不等式的二进制化器,可以在具有12个叶子节点的候选树的集合中执行搜索,该具有12个叶子节点的候选树是编码器和解码器都已知的,例如,定义在如Golomb码、Gallager-Voorhis码等的规范中。通过构建来确定二进制化器的备选方法是构造针对给定概率分布具有长度函数(l0,l1,…,l11)的霍夫曼编码树,并使用该霍夫曼编码树作为二进制化器。
要注意,不是必须显式地构建霍夫曼编码树。事实上,二叉码编码树满足以下条件可能就足够了:
对于任何i≠j,如果fi>fj,则,li≤lj
要注意,霍夫曼编码树满足上述条件,并因此可以作为候选包括。还要注意,一旦信号通知了新的二进制化器,要使用新的二进制化器来解译概率分布,即,coeff_probs。也就是说,coeff_prob[a][b][c][i]表示新的二进制化器中内部节点i处的二元分布,其中,a、b、c是根据平面类型、coeff位置和附近系数导出的上下文。
从预定义的二进制化器选择
在一个实施例中,编码器和解码器二者都具有在存储器中定义的两个或更多个预定义二进制化器,其中之一是缺省二进制化器。例如,在使用编码树的二进制化的情况下,可存在缺省编码树和一个或多个备选编码树。在一些示例中,可以基于符号(例如,令牌)的不同边缘分布来开发备选编码树。
编码器(具体地,二进制化器选择器)可针对块组(例如,切片、帧、图片、图片组等)确定是使用缺省二进制化器还是使用备选二进制化器中的一个。例如,编码器可以确定或估计针对该块组的令牌的分布。为了实际确定分布,编码器可能需要使用二次(two-pass)编码。备选地,编码器可以估计分布,可能是基于来自一个或多个先前块组的统计来估计分布。编码器处的二进制化器选择器确定使用哪个二进制化器来对块进行编码,且然后在与该块组有关的首部信息中信号通知该选择。
在一些情况下,向解码器信号通知二进制化器可包括使用首部信息内的标记或码。在单个备选二进制化器的情况下,编码器可使用二元标记来指示是否正在使用缺省二进制化器。在多个备选二进制化器的情况下,编码器可包括用来对要使用哪个二进制化器解码块组进行指示的码。
叶子节点的重新分布
在一个实施例中,缺省二进制化器的结构保持不变,但编码器可以信号通知令牌的重新分布,即,针对将哪些符号/令牌指派给哪些叶子节点的改变。例如,参考VP8和VP9编码树,编码器可以确定指派给具体叶子节点的令牌应该被重新布置以提高具体块组的二进制化的效率。在这种情况下,可以通过在首部字段中指定令牌的顺序来向解码器信号通知该重新布置。内部系数概率的分布(coeff_prob数组)保持不变。
例如,在图5中,存储dct_eob的叶子节点和存储DCT_1的叶子节点可能被交换,即,在交换后,具有到根节点的短路径的前者存储DCT_1,且具有较长路径的后者存储dct_eob。使用现有树的优点之一是对熵编码的简单设计,其也与VP8和VP9中的现有设计后向兼容。观察到在这些情况下,BAC解码逻辑不需要改变,因为:
1.其可以使用现有设计来确定是否到达叶子节点,以及
2.存储在coeff_probs中的概率对应于系数编码树中的相同内部节点。
对树的唯一改变是改变了存储在叶子节点中的相应令牌。由此,当use_new_coeff_coding_tree_flag等于1时,我们可以通过使用数组T[num_dct_tokens]来指定新的二进制化,其中,T[i](i=0,...,num_dct_tokens-1)指定存储在第(i+1)个(在图5中从左数到右)叶子节点处的令牌。示例数组如下:
新的树结构
代替保持编码树的缺省形状,编码器可以确定更好地拟合实际或估计的边缘令牌分布的新的树结构。然后,编码器可以在块组的首部信息中向解码器信号通知该新结构。作为示例,新的系数编码树可被解析为数组T[2*(num_dct_tokens-1)],其中应用以下约定:
1.如果T[i]在{0,-1,-2,...,-num_dct_token中,则T[i]是叶子节点,且-T[i]是令牌,即0指示dct_eob,1指示DCT_0等。
2.如果T[i]是偶数整数,则T[i]是内部节点,其左子节点在位置T[i]处,且其右子节点在位置T[i]+1处。注意,如果T[i]是偶数,则通过约定,T[i]不小于i+1,即,子节点总是出现在它们的父节点之后。
3.T[0]是根节点的左子节点,T[1]是根节点的右子节点。
参考图6,其示出了用于VP8和VP9令牌的备选编码树600的一个示例。下面是用于定义和信号通知图6所示的备选编码树600的数组T的示例:
T的长度函数可以被验证为是(2,2,3,3,4,4,5,5,6,6,6,6)。
上述数组T被构建为便于解析和树表示。为了进行编码和发送,T可以被变换到另一个数组T′以便于熵编码,其中从T到T′的变换是可逆的,即T可以从T′完全重构。例如,如果T[i]是正的,则T[i]≥2且始终是偶数。因此,代替直接对T[i]进行编码,编码器可对T′[i]=(T[i]-2)>>1进行编码。在解码器侧,在解码T′[i]之后,可以将T[i]重构为T[i]=T′[i]*2+2。
该编码器可通过首先确定或估计针对块组的边缘令牌分布(即,在对块组编码时每个令牌出现的归一化频率)确定新的树结构。根据该信息,编码器可在然后确定更好地拟合边缘分布的编码树(例如,霍夫曼编码树)。在一些实现中,编码器可以通过使用由令牌的频率计数组成的非归一化经验分布而不是归一化边缘分布来确定编码树。
在一些实施例中,编码器可以在确定拟合边缘分布的编码树之前过滤边缘令牌分布或等效地非归一化经验分布。例如,小于阈值的频率计数可被非归一化经验分布中的缺省值(例如,0、1或已知正整数)替换。不失一般性,假设非归一化经验分布由(f0,f1,…,f11)给出,其中fi表示令牌i(0≤i≤11)的频率计数。然后,对于每个i,如果fi<Th(其中Th表示阈值),则否则,然后将所得到的向量用于确定编码树。在过滤之后,我们看到频率计数小于阈值的令牌被等同地对待,并且将在确定编码树的过程中具有确定且有限的影响。因此,通过使用过滤,编码器避免了在没有足够的经验数据时在确定编码树中的过度拟合。要注意,该阈值可以是先验确定的常数或可作为令牌总数(即,所有频率计数的总和)的函数。
将会理解,在仅实现树的部分更新的情况下,在一些实施例中可以不信号通知整个树。这可被用于平衡信号通知新的二进制化器的成本和二进制码节省的益处。例如,可能希望基于5中的缺省树来信号通知新的树,其中
1.改变限于对应于{dct_eob,DCT_0,DCT_1,DCT_2,DCT_3,DCT_4}的子树;以及
2.以内部节点(12)为根节点的子树保持不变。
更新概率
如上所述,VP8和VP9缺省树的内部节点处的二元概率分布存储在coeff_probs数组中。如果使用新的树,则解码器可能需要将与现有缺省树相关联的概率分布(在coeff_probs中)映射到新的树。
设T1和T2指示表示具有N个符号的相同字母表A={a0,…aN-1}的两个二叉树。假定T1和T2都是满的,并且因此它们正好具有N-1个内部节点。设(p1,0,…p1,N-2)表示T1的N-1个内部节点处的二元概率分布:例如,p1,0表示第一内部节点(根)处的概率1(或等效地,采用右侧分支),p1,1表示第二内部节点处的概率1(或等效地,采用右侧分支),等等。要注意,对内部节点进行标记的顺序无关紧要,换言之,任何已知的顺序都将适用于本解决方案。类似地,设(p2,0,…p2,N-2)表示T2的N-1个内部节点处的二元概率分布。假设(p1,0,…p1,N-2)和(p2,0,…p2,N-2)是从A上的同一边缘分布学习得到的。因而挑战是将(p1,0,…p1,N-2)映射到(p2,0,…p2,N-2),且反之亦然。
设(q0,…qN-1)表示A上的该公共边缘分布,其中qi(0≤i<N),表示ai的概率。从而通过使用以下两阶段过程解决了该挑战:
1.在T1中,根据(p1,0,…p1,N-2)确定(q0,…qN-1)。
2.在T2中,根据(q0,…qN-1)确定(p2,0,…p2,N-2)。
上述第一级可通过使用树遍历的方法来实现(例如,深度优先或广度优先),以从上到下地填入概率(自上而下)。下面是一个深度优先迭代法的示意性示例,其中,不失去一般性,假定根节点被标记为“0”且对应于p1,0
作为另一示例,可将第一阶段的广度优先方案描述为:
通过类似的方式,第二阶段可以通过遍历树来实现,以从下到上地填入概率(自下而上)。在以下伪代码中使用后序深度优先横向法示出了示例方法:
因此,在一些实施例中,可以对更新概率的过程进行以下改变,以减少信令开销。代替信号通知针对coeff_probs中的条目(例如,1056个)中的每个的更新标记,本解决方案可以如下推断(未在比特流中存在的)标记。假设给出二进制化器(或等效地,系数编码树)。要注意,coeff_probs中的每个条目对应于系数编码树中的内部节点。如果与在coeff_probs中的条目相关联的更新标记被信号通知为1,且该条目对应于节点a,则关联于与从根节点到节点a的路径中的节点相对应的条目的所有更新标记都被推断为1,且不需要在比特流中信号通知。例如,如果与图5中的节点(8)相关联的更新标记被信号通知为1,则与节点(6)、(4)、(2)、(0)相关联的更新标记被推断为1,且不需要在比特流中信号通知。
在另一实施例中,更新标记可以与系数编码树中的级别相关联,其中,根节点处于级别0,其子节点处于级别1,等等。如果与级别L>=0相关联的更新标记被信号通知为1,则与所有1<L的级别相关联(即更接近根级别)的更新标记被推断为1。
将会理解,上述树遍历方法是示例。可以使用其他遍历方法(例如,迭代深化深度优先搜索)(例如,以满足如存储器复杂度、调用堆栈限制等的应用需求)。还将理解,在一些实施例中,可在上述针对概率的两阶段映射过程中填入概率时使用定点运算。要注意到,可以在中间步骤中使用不同的(更高的)精度或甚至浮点运算,以在最终结果中获得更好的精度。
基于概率的解码器构造的二进制化器
在上述实施例中,编码器确定/选择二进制化器,然后将选择信号通知给解码器。在一个情况下,编码器传送其从多个预定义的二进制化器中的选择。在另一情况下,编码器指定二进制化器。例如,其可以发送对用于构建已修改二进制化器的令牌的结构和指派进行指定的数据。在另一示例中,其可以信号通知对解码器可用来创建已修改二进制化器的令牌的缺省结构或指派的改变。
在又一实施例中,编码器不指定新确定的编码树或其他二进制化器的结构或令牌,而是代之以发送已更新概率信息和对解码器应基于该已更新概率信息来构建新二进制化器的指示。
再次使用VP8和VP9编码树作为示例,编码器可传送内部节点概率分布,例如coeff_probs数组,或对该数组的改变。编码器还信号通知解码器是否应构造新的树。编码器可以基于coeff_probs概率分布与最初设计缺省编码树所针对的概率之间的差异程度来确定新的树是否有正当理由。在一个或多个内部节点概率之间超出阈值偏差可信号通知应该使用新的编码树。在另一实施例中,编码器获得令牌的边缘分布,并根据那些概率值确定是否应该构建新的树。编码器可以使用上述树遍历技术之一来根据内部节点概率获得令牌的边缘分布。在令牌的边缘分布中超出阈值改变可以确定应该构建新的树。例如,编码器可以指示解码器使用首部中的标记来构造新的树。
解码器然后可以使用上述树遍历技术来根据已更新coeff_probs概率分布确定令牌的对应边缘分布。然后,可以使用令牌的边缘分布来确定合适的编码树,该合适的编码树导致使用较少二进制码来编码数据。
在又一实施例中,编码器不指示解码器是否应该创建新的二进制化器。相反,解码器自己确定是否应该构建和使用新的树。该确定可以基于在已更新coeff_probs数组中指定的概率分布是否已经超出阈值改变。在另一实施例中,每当更新coeff_probs数组时,解码器计算令牌的边缘分布,并且根据令牌的边缘分布确定是否应该构建新的树,例如基于令牌的边缘分布是否偏离缺省树(或者,如果使用了已修改编码树,则为当前树)所基于的概率超过阈值量。
上下文自适应的二进制化器选择
在一些上述实施例中,选择单个二进制化器来对块组(例如帧/图片)的令牌进行编码。在另一实施例中,可以在块组(例如图片/帧)内使用多个可用的二进制化器,并且针对当前的非二进制符号,根据上下文信息(例如,针对该符号导出的上下文)选择该多个可用的二进制化器中的一个二进制化器。
使用VP8和VP9的元素作为示例来说明该解决方案,其中:
1.针对12个令牌定义了96个上下文。
2.在对令牌进行编码之前,从已知信息中导出上下文:平面类型、coeff位置和附近系数。
3.在解码令牌之前,从已知信息中导出上下文:平面类型、coeff位置和附近系数。
4.对于每个上下文,可以估计在图片/帧中的令牌上的经验分布。
在对令牌进行编码和解码之前,上下文对于VP8和VP9中的编码器和解码器分别是已知的。
在本实施例中,上下文被用作从候选二进制化器的有限集合中选择二进制化器的基础。在一个示例中,在图片/帧首部中,可在比特流中信号通知将96个上下文映射到二进制化器的表;以及当这样的表在比特流中不存在时,可以使用缺省表。设(N>1)表示二进制化器的有限集合。该表可被定义为数组M[4][8][3],其中每个条目是中的索引,即,针对由(a,b,c)给出的上下文(其中0≤a≤4,0≤b<8,且0≤c<3),中的TM[a][b][c]是所选择的二进制化器。
一旦表M被解析,解码器可在然后根据导出的上下文来针对要解码的每个令牌选择二进制化器。此外,我们注意到,现在应该根据针对由(a,b,c)给出的上下文选择的二进制化器TM[a][b][c]来解译coeff_probs[a][b][c][]中的概率分布。
总而言之,示例解码器可以使用以下过程来解码令牌v:
D1.确定针对在VP#中定义的令牌的上下文(a,b,c)。
D2.将二进制化器T选择为TM[a][b][c]°
D3.使用coeff_probs[a][b][c]和T来解码v。
对应地,示例编码器可以使用以下处理来对令牌v进行编码:
E1.确定针对在VP#中定义的令牌的上下文(a,b,c)。
E2.将二进制化器T选择为TM[a][b][c]
E3.使用T将v二进制化为二进制串T(v)=b0b1…bl(v),其中l(v)是二进制码的数目,并且T(v)是T中从根到对应于v的叶子的路径。
E4.使用coeff_probs[a][b][c]来编码T(v)。
现在参考图7,其示出了用于对图像或视频编码器中的图像进行编码的示例编码过程700的流程图。使用包括算术编码器的编码架构来实现过程700,该算术编码器使用算术编码(无论是二进制算术编码还是多级算术编码)将二进制码转换为编码数据的比特流。过程700假定图像已经历图像或视频编码过程以创建符号序列。示例符号可以包括已量化变换域系数的幅度,或表示已量化变换域系数的“令牌”。
编码架构还包括缺省二进制化器。缺省二进制化器的一个示例是针对VP8/VP9中的令牌的缺省编码树。
过程700包括操作702,确定要使用已修改二进制化器而不是针对符号序列规定的缺省二进制化器。对使用已修改二进制化器的确定可以基于:例如,对符号在图像中的归一化出现频率的评估(测量出或估计出),以及对这些频率与缺省二进制化器所基于的这些符号的边缘概率之间的差的评估。
在一些实施例中,操作702可以包括基于测量或估计出的符号的归一化出现频率来构建已修改二进制化器。在一些实施例中,操作702可以包括从多个预构建/预建立的二进制化器中选择已修改二进制化器。
在操作704中,使用已修改二进制化器来对符号序列进行二进制化,以生成二进制码序列。然后,在操作706中,使用算术编码器对二进制码序列进行算术编码,以产生编码数据的比特流。
为了确保解码器可以正确地重构图像,过程700还包括将首部信息插入到比特流中的操作708。首部信息指示要使用已修改二进制化器对与符号序列相对应的二进制码序列进行逆二进制化。将会理解,首部信息可以放置在与一系列块(例如,切片、帧、图片、图片组或块的其他汇集)相对应的首部中。首部信息指示:针对该一系列的块中至少具体符号序列(例如,令牌),解码器要使用已修改二进制化器而不是缺省二进制化器。
在最简单的情况下,首部信息包括对要使用已修改二进制化器进行指示的标记。然后,解码器可以使用边信息(例如,概率信息)来选择或构建二进制化器。在一些其他情况下,首部信息指定符号到缺省结构的叶子节点的分配。在又一些其他情况下,首部信息指定编码树的新结构或修改结构。在又一些情况下,可以在首部信息中指定二进制化器构建的其它细节。
现在参考图8,其示出了示例解码过程800的流程图。过程800由用于图像或视频的示例解码器实现,示例解码器包括算术解码器,且包括缺省二进制化器(用于将二进制码逆二进制化为重构符号)。示例过程800包括从比特流中提取首部信息,如操作802所示。
首部信息指示是使用已修改二进制化器还是使用缺省二进制化器。相应地,在操作804中,解码器根据首部信息确定要使用已修改二进制化器而不是缺省二进制化器。要注意,在一些情况下,这可以是首部信息中的显式指令,例如对要使用已修改二进制化器进行指定的标记,或者对多个预定二进制化器选项中的具体已修改二进制化器进行指定的索引。在一些其他情况下,首部信息指定已修改二进制化器。例如,其可以指定对缺省二进制化器的改变,例如在编码树的叶子节点之间重新分配符号,或者其可以指定对编码树的结构的改变。在又一些其他示例中,首部信息可以指定二进制化器的全部或部分结构,例如霍夫曼树的结构以及符号在其叶子节点之间的分配。在又一些其它实施例中的任一者中,首部信息可以提供数据,如概率信息(例如,coeff_probs数组),解码器可根据其来确定要使用已修改二进制化器而不是缺省二进制化器。
在操作806中,已修改二进制化器被用于对二进制码序列(其已被从比特流中算术解码出)进行逆二进制化,以重构符号序列。
现在参考图9,其中示出了编码器900的示例性实施例的简化框图。编码器900包括处理器902、存储器904、和编码应用906。编码应用906可以包括存储在存储器904中并包含指令的计算机程序或应用,所述指令在执行时使处理器902执行诸如本文描述的操作等的操作。例如,编码应用906可以编码并输出根据本文描述的过程所编码的比特流。可以理解,编码应用906可以存储在非瞬时计算机可读介质上,如致密光盘、闪存设备、随机存取存储器、硬盘等等。当执行指令时,结果是将902处理器配置为使得可创建实现所描述的过程的专用处理器。在一些示例中,这样的处理器可以被称为“处理器线路”或“处理器电路”。
现在还参考图10,其示出了解码器1000的示例实施例的简化框图。解码器1000包括处理器1002、存储器1004、以及解码应用1006。解码应用1006可以包括存储在存储器1004中并包含指令的计算机程序或应用,所述指令在执行时使处理器1002执行诸如本文描述的操作等的操作。可以理解,解码应用1006可以存储在计算机可读介质上,如致密光盘、闪存设备、随机存取存储器、硬盘等等。当执行指令时,结果是将处理器1002配置为使得可创建实现所描述的过程的专用处理器。在一些示例中,这样的处理器可以被称为“处理器线路”或“处理器电路”。
可以认识到,根据本申请的解码器和/或编码器可以在多个计算设备中实现,包括但不限于服务器、合适编程的通用计算机、音频/视频编码和回放设备、电视机顶盒、电视广播设备和移动发备。解码器或编码器可以通过软件来实现,该软件包含用于将处理器配置为执行本文所述功能的指令。软件指令可以存储在任何合适的非瞬时计算机可读存储器上,包括CD、RAM、ROM、闪存等。
将理解的是,可以使用标准计算机编程技术和语言来实现本文描述的解码器和/或编码器以及实现所描述的用于配置编码器的方法/过程的模块、例程、进程、线程或其他软件组件。本申请不限于特定处理器、计算机语言、计算机编程惯例、数据结构、其他这种实现细节。本领域技术人员将认识到,可以将所描述的处理实现为存储在易失性或非易失性存储器中的计算机可执行代码的一部分、专用集成芯片(ASIC)的一部分等。
可以对所述实施例进行某种调整和修改。因此,上文讨论的实施例应被认识是说明性而非限制性的。

Claims (20)

1.一种在视频或图像解码器中从比特流中解码出图像的方法,所述比特流具有针对块组的首部信息,所述解码器具有用于将所述比特流转换为二进制码的算术解码器,所述解码器具有将二进制码转换为符号的缺省二进制化器,所述方法包括:
从所述比特流中获得所述首部信息;
根据所述首部信息确定关于针对所述块组的二进制码序列要使用已修改二进制化器而不是所述缺省二进制化器;以及
使用所述已修改二进制化器对所述二进制码序列进行逆二进制化,以从所述二进制码序列中重构符号序列。
2.根据权利要求1所述的方法,其中,确定要使用所述已修改二进制化器与针对所述符号序列所确定的上下文无关。
3.根据权利要求1所述的方法,其中,所述首部信息包括:从包括所述已修改二进制化器和所述缺省二进制化器在内的多个预定义二进制化器中指定所述已修改二进制化器的索引。
4.根据权利要求1所述的方法,其中,所述缺省二进制化器包括第一编码树,所述已修改二进制化器包括与所述第一编码树具有相同结构的第二编码树,且所述首部信息包括:向指派给所述结构的至少一些叶子节点的符号指定所述第一编码树和第二编码树之间的改变的信息。
5.根据权利要求1所述的方法,其中,所述缺省二进制化器包括第一编码树,所述已修改二进制化器包括与所述第一编码树具有不同结构的第二编码树,且所述首部信息包括对所述第二编码树的结构以及对所述第二编码树的叶子节点的符号分配进行指定的信息,所述方法还包括:
基于所述首部信息生成所述第二编码树。
6.根据权利要求1所述的方法,其中,所述缺省二进制化器包括第一编码树,所述已修改二进制化器包括与所述第一编码树具有不同结构的第二编码树,且所述首部信息包括与所述符号中的至少一些在所述块组内的出现相关联的相应概率,以及所述方法还包括:
基于所述相应概率构造所述第二编码树;以及
确定针对所述第二编码树的内部节点概率。
7.根据权利要求1所述的方法,其中,所述缺省二进制化器包括第一编码树,所述已修改二进制化器包括与所述第一编码树具有不同结构的第二编码树,且所述首部信息包括与所述第一编码树的内部节点相关联的内部节点概率以及对使用所述已修改二进制化器的指示,以及所述方法还包括:
根据所述内部节点概率确定与每个符号相关联的概率;
基于所述与每个符号相关联的概率构造所述第二编码树;以及
确定针对所述第二编码树的内部节点概率。
8.根据权利要求1所述的方法,其中,所述缺省二进制化器包括第一编码树,所述已修改二进制化器包括与所述第一编码树具有不同结构的第二编码树,且所述首部信息包括与所述第一编码树的内部节点相关联的内部节点概率,以及所述方法还包括:
基于所述内部节点概率,针对多个可能符号值中的每一个确定相应概率;
基于所述相应概率确定要使用所述已修改二进制化器而不是所述缺省二进制化器;
基于所述相应概率构造所述第二编码树;以及
确定针对所述第二编码树的内部节点概率。
9.根据权利要求1所述的方法,还包括基于上下文模型确定上下文,其中,根据所述首部信息确定要使用所述已修改二进制化器还基于但不仅基于所确定的上下文。
10.一种用于从比特流中解码出图像的解码器,所述比特流具有针对块组的首部信息,所述解码器包括:
处理器;
存储器;
算术解码器,用于将所述比特流转换为二进制码;
缺省二进制化器,用于将二进制码转换为符号;
二进制化器选择器,用于根据所述首部信息确定关于二进制码序列要使用已修改二进制化器而不是所述缺省二进制化器;以及
所述已修改二进制化器,用于根据所述二进制码序列重构符号序列,以对所述二进制码序列进行逆二进制化。
11.根据权利要求10所述的解码器,其中,所述解码器包括上下文确定器,且所述二进制化器选择器确定要使用所述已修改二进制化器,而与所述上下文确定器针对所述符号序列所确定的上下文无关。
12.根据权利要求10所述的解码器,其中,所述首部信息包括:从所述存储器中存储的包括所述已修改二进制化器和所述缺省二进制化器在内的多个预定义二进制化器中指定所述已修改二进制化器的索引。
13.根据权利要求10所述的解码器,其中,所述缺省二进制化器包括第一编码树,所述已修改二进制化器包括与所述第一编码树具有相同结构的第二编码树,且所述首部信息包括:向指派给所述结构的至少一些叶子节点的符号指定所述第一编码树和第二编码树之间的改变的信息。
14.根据权利要求10所述的解码器,其中,所述缺省二进制化器包括第一编码树,所述已修改二进制化器包括与所述第一编码树具有不同结构的第二编码树,且所述首部信息包括对所述第二编码树的结构以及对所述第二编码树的叶子节点的符号分配进行指定的信息,以及所述二进制化器选择器用于基于所述首部信息生成所述第二编码树。
15.根据权利要求10所述的解码器,其中,所述缺省二进制化器包括第一编码树,所述已修改二进制化器包括与所述第一编码树具有不同结构的第二编码树,且所述首部信息包括与所述符号中的至少一些在所述块组内的出现相关联的相应概率,以及所述二进制化器选择器用于:
基于所述相应概率构造所述第二编码树;以及
确定针对所述第二编码树的内部节点概率。
16.根据权利要求10所述的解码器,其中,所述缺省二进制化器包括第一编码树,所述已修改二进制化器包括与所述第一编码树具有不同结构的第二编码树,且所述首部信息包括与所述第一编码树的内部节点相关联的内部节点概率以及对使用所述已修改二进制化器的指示,以及所述二进制化器选择器用于:
基于所述内部节点概率,针对多个可能符号值中的每一个确定相应概率;
基于所述相应概率构造所述第二编码树;以及
确定针对所述第二编码树的内部节点概率。
17.根据权利要求10所述的解码器,其中,所述缺省二进制化器包括第一编码树,所述已修改二进制化器包括与所述第一编码树具有不同结构的第二编码树,且所述首部信息包括与所述第一编码树的内部节点相关联的内部节点概率,以及所述二进制化器选择器用于:
基于所述内部节点概率,针对多个可能符号值中的每一个确定相应概率;
基于所述相应概率确定要使用所述已修改二进制化器而不是所述缺省二进制化器;
基于所述相应概率构造所述第二编码树;以及
确定针对所述第二编码树的内部节点概率。
18.根据权利要求10所述的解码器,还包括用于基于上下文模型来确定上下文的上下文确定器,其中所述二进制化器选择器对要使用所述已修改二进制化器的确定还基于但不仅基于所确定的上下文。
19.一种在图像或视频编码器内对图像进行编码以生成编码数据的比特流的方法,所述图像具有块组,所述编码器具将二进制码转换为编码数据的比特流的算术编码器,所述编码器具有将符号变换为二进制码的缺省二进制化器,所述方法包括:
针对所述块组,确定要使用已修改二进制化器而不是所述缺省二进制化器来对所述块组内的符号序列进行二进制化;
使用所述已修改二进制化器来对所述符号序列进行二进制化以生成二进制码序列;
使用所述算术编码器对所述二进制码序列进行算术编码以生成编码数据的比特流;以及
在所述比特流中插入首部信息,所述首部信息指示要关于所述二进制码序列使用所述已修改二进制化器而不是所述缺省二进制化器。
20.一种存储处理器可执行指令的非瞬时处理器可读介质,所述处理器可执行指令用于在视频或图像解码器中从比特流中解码出图像,所述比特流具有针对块组的首部信息,所述解码器具有用于将所述比特流转换为二进制码的算术解码器,所述解码器具有将二进制码转换为符号的缺省二进制化器,其中,所述处理器可执行指令包括用于以下操作的指令:
从所述比特流中获得所述首部信息;
根据所述首部信息确定关于针对所述块组的二进制码序列要使用已修改二进制化器而不是所述缺省二进制化器;以及
使用所述已修改二进制化器对所述二进制码序列进行逆二进制化,以从所述二进制码序列中重构符号序列。
CN201611158343.6A 2015-12-18 2016-12-14 用于图像和视频编码的二进制化器选择 Active CN107018426B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/974,651 US20170180757A1 (en) 2015-12-18 2015-12-18 Binarizer selection for image and video coding
US14/974,651 2015-12-18

Publications (2)

Publication Number Publication Date
CN107018426A true CN107018426A (zh) 2017-08-04
CN107018426B CN107018426B (zh) 2021-06-18

Family

ID=57539089

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611158343.6A Active CN107018426B (zh) 2015-12-18 2016-12-14 用于图像和视频编码的二进制化器选择

Country Status (3)

Country Link
US (1) US20170180757A1 (zh)
EP (1) EP3182705B1 (zh)
CN (1) CN107018426B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10225562B1 (en) * 2017-08-21 2019-03-05 Google Llc Embedding information about EOB positions
US10735736B2 (en) 2017-08-29 2020-08-04 Google Llc Selective mixing for entropy coding in video compression
US10523968B2 (en) * 2017-09-18 2019-12-31 Google Llc Coding of last significant coefficient flags
CN110739974B (zh) * 2018-07-19 2023-11-10 嘉楠明芯(北京)科技有限公司 数据压缩方法及装置和计算机可读存储介质

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1522543A (zh) * 2002-04-26 2004-08-18 ���µ�����ҵ��ʽ���� 可变长编码方法和可变长译码方法
CN1825963A (zh) * 2006-02-13 2006-08-30 清华大学 一种基于上下文自适应变长解码的方法
CN101189874A (zh) * 2005-04-19 2008-05-28 三星电子株式会社 改善编码效率的基于上下文自适应算术编码和解码方法和装置以及使用其的视频编码和解码方法和装置
WO2011125314A1 (ja) * 2010-04-09 2011-10-13 三菱電機株式会社 動画像符号化装置および動画像復号装置
CN102238387A (zh) * 2011-05-25 2011-11-09 深圳市融创天下科技股份有限公司 一种视频熵编码、熵解码方法、装置及介质
CN102783154A (zh) * 2010-02-26 2012-11-14 捷讯研究有限公司 采用双码集的编码和解码方法和设备
CN102939719A (zh) * 2010-05-21 2013-02-20 捷讯研究有限公司 用于在二进制熵编码和解码中减少源的方法和设备
EP2557792A4 (en) * 2010-04-09 2014-08-13 Mitsubishi Electric Corp VIDEO CODING DEVICE AND VIDEO CODING DEVICE
WO2015131388A1 (en) * 2014-03-07 2015-09-11 Qualcomm Incorporated Simplification of depth intra mode coding in 3d video coding
US20150334387A1 (en) * 2014-05-19 2015-11-19 Mediatek Inc. Count table maintenance apparatus for maintaining count table during processing of frame and related count table maintenance method

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ES2599637T3 (es) * 2002-03-27 2017-02-02 Panasonic Intellectual Property Corporation Of America Sistema de codificación y decodificación de longitud variable y procedimiento de codificación y decodificación de longitud variable
EP2559166B1 (en) * 2010-04-13 2017-11-01 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Probability interval partioning encoder and decoder

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1522543A (zh) * 2002-04-26 2004-08-18 ���µ�����ҵ��ʽ���� 可变长编码方法和可变长译码方法
CN101189874A (zh) * 2005-04-19 2008-05-28 三星电子株式会社 改善编码效率的基于上下文自适应算术编码和解码方法和装置以及使用其的视频编码和解码方法和装置
CN1825963A (zh) * 2006-02-13 2006-08-30 清华大学 一种基于上下文自适应变长解码的方法
CN102783154A (zh) * 2010-02-26 2012-11-14 捷讯研究有限公司 采用双码集的编码和解码方法和设备
CN102783154B (zh) * 2010-02-26 2015-07-15 黑莓有限公司 采用双码集的编码和解码方法和设备
WO2011125314A1 (ja) * 2010-04-09 2011-10-13 三菱電機株式会社 動画像符号化装置および動画像復号装置
EP2557792A4 (en) * 2010-04-09 2014-08-13 Mitsubishi Electric Corp VIDEO CODING DEVICE AND VIDEO CODING DEVICE
CN102939719A (zh) * 2010-05-21 2013-02-20 捷讯研究有限公司 用于在二进制熵编码和解码中减少源的方法和设备
CN102238387A (zh) * 2011-05-25 2011-11-09 深圳市融创天下科技股份有限公司 一种视频熵编码、熵解码方法、装置及介质
WO2015131388A1 (en) * 2014-03-07 2015-09-11 Qualcomm Incorporated Simplification of depth intra mode coding in 3d video coding
US20150334387A1 (en) * 2014-05-19 2015-11-19 Mediatek Inc. Count table maintenance apparatus for maintaining count table during processing of frame and related count table maintenance method

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
刘剑武,宋娜: "基于H.264的CABAC解码算法改进研究", 《莆田学院学报》 *

Also Published As

Publication number Publication date
EP3182705A3 (en) 2017-06-28
EP3182705B1 (en) 2021-11-17
US20170180757A1 (en) 2017-06-22
CN107018426B (zh) 2021-06-18
EP3182705A2 (en) 2017-06-21

Similar Documents

Publication Publication Date Title
JP4801160B2 (ja) 逐次改善可能な格子ベクトル量子化
TW202005376A (zh) 相依量化技術
KR100750165B1 (ko) 압축률 향상을 위해 개선된 컨텍스트 모델 선택을 사용하는cabac 부호화 방법 및 장치, 그리고 cabac복호화 방법 및 장치
JP7459319B2 (ja) 統合変換タイプ通知および変換タイプ依存変換係数レベルコーディング
CN100403801C (zh) 一种基于上下文的自适应熵编/解码方法
US8942502B2 (en) Parallelization of variable length decoding
US8547255B2 (en) Method for encoding a symbol, method for decoding a symbol, method for transmitting a symbol from a transmitter to a receiver, encoder, decoder and system for transmitting a symbol from a transmitter to a receiver
KR101566104B1 (ko) Cabac에서 savs를 사용한 dqp의 이진화
RU2711055C2 (ru) Устройство и способ для кодирования или декодирования многоканального сигнала
EP3550726B1 (en) Methods and devices for reducing sources in binary entropy coding and decoding
CN106899848A (zh) 用于图像和视频编码的自适应二进制化器选择
CN107018426A (zh) 用于图像和视频编码的二进制化器选择
PT2282310E (pt) Codificação entrópica por adaptação de modos de codificação entre codificação por nível e codificação por comprimento/nível de sequência
TWI582757B (zh) 編碼器、解碼器、編碼及解碼的系統及方法
Fuchs et al. Efficient context adaptive entropy coding for real-time applications
KR20190040063A (ko) 인덱스 코딩 및 비트 스케줄링을 갖는 양자화기
KR101751671B1 (ko) 영상 양자화 파라미터 복호 방법
CN111656784A (zh) 解码方法、解码器和解码系统
US20110260896A1 (en) Apparatus for parallel entropy encoding and decoding
Gray et al. Bits in asymptotically optimal lossy source codes are asymptotically Bernoulli
Mansour et al. A new compression framework ‘A-M’adaptive code
KR20210074228A (ko) 심층 신경망 모델의 부호화/복호화 방법 및 장치
Jegou et al. Error-resilient binary multiplexed source codes
CN117501631A (zh) 用于解码神经网络参数的装置、方法及计算机程序与使用更新模型编码神经网络参数的装置、方法及计算机程序
CN111699687A (zh) 编码方法、编码器和编码系统

Legal Events

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

Effective date of registration: 20240523

Address after: Ai Erlandubailin

Patentee after: Maliki Innovation Co.,Ltd.

Country or region after: Ireland

Address before: Ontario, Canada

Patentee before: BlackBerry Ltd.

Country or region before: Canada