CN103597838A - 对末位有效系数的位置进行编码和解码的方法和设备 - Google Patents

对末位有效系数的位置进行编码和解码的方法和设备 Download PDF

Info

Publication number
CN103597838A
CN103597838A CN201180071591.6A CN201180071591A CN103597838A CN 103597838 A CN103597838 A CN 103597838A CN 201180071591 A CN201180071591 A CN 201180071591A CN 103597838 A CN103597838 A CN 103597838A
Authority
CN
China
Prior art keywords
coefficient
context
binary number
binarizations
positions
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
CN201180071591.6A
Other languages
English (en)
Other versions
CN103597838B (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.)
BlackBerry 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 CN103597838A publication Critical patent/CN103597838A/zh
Application granted granted Critical
Publication of CN103597838B publication Critical patent/CN103597838B/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/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/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/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)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本发明公开了使用熵编码器编码量化后的变换域系数数据来对数据进行熵编码的方法和设备。使用末位有效系数的二维坐标,在比特流中发信号通知末位有效系数信息。坐标之一的二进制数的上下文部分基于另一坐标的值。在一种情形下,对非零系数的数目进行二进制化和熵编码,以替代发信号通知末位有效系数信息。

Description

对末位有效系数的位置进行编码和解码的方法和设备
技术领域
本申请总体涉及数据压缩,具体地涉及对末位有效变换系数进行编码和解码的编码器、解码器和方法。
背景技术
无论是有损的还是无损的数据压缩都常常使用熵编码来将去相关的信号编码为比特序列,即比特流。有效的数据压缩具有广泛的应用,诸如图像、音频以及视频编码。视频编码的当前最新技术是ITU-TH.264/MPEG AVC视频编码标准。该标准定义了针对不同应用的多个不同简档,包括主简档、基线简档等等。通过MPEG-ITU的联合发起,当前正在开发的下一代视频编码标准是高效视频编码(HEVC)。
存在用于编码/解码图像和视频的多个标准,包括H.264,其使用有损压缩过程来产生二进制数据。例如,H.264包括用于获取残差数据的预测操作,其后跟着DCT变换和对DCT系数的量化。然后,对包括量化后的系数、运动矢量、编码模式和其他相关数据在内的产生的数据进行熵编码以生成数据比特流,以供传输或存储在计算机可读介质上。可以预期HEVC也将具有这些特征。
已经开发了多种编码方案来编码二进制数据。例如,使用Huffman编码来编码JPEG图像。H.264标准允许两种可能的熵编码过程:上下文自适应可变长度编码(CAVLC)或者上下文自适应二进制算术编码(CABAC)。CABAC得到比CAVLC更大的压缩,但是CABAC具有更高的计算需求。在这些情形中的任一情形中,编码方案对二进制数据进行操作,以产生编码数据的顺序比特流。在解码器处,解码方案接收该比特流,并且对该顺序比特流进行熵解码以重构该二进制数据。
提供改进的编码器、解码器以及熵编码方法和熵解码方法将是有利的。
附图说明
现在参照附图作为示例,附图示出了本申请的示例实施例,在附图中:
图1以框图形式示出了用于对视频进行编码的编码器;
图2以框图形式示出了用于对视频进行解码的解码器;
图3示出了编码过程的框图;
图4示出了编码器的示例实施例的简化框图;
图5示出了解码器的示例实施例的简化框图;
图6说明了针对4×4的系数块的zig-zag编码顺序;
图7图解示出了比特流的一部分;
图8以流程图的形式示出了对末位有效系数信息进行熵编码的示例方法;
图9以流程图的形式示出了对编码数据的比特流进行熵解码以重构量化后的变换域系数数据的示例方法;
图10以流程图的形式示出了对有效图进行编码的示例方法;以及
图11示出了对4×4的块中的系数的反对角线分组。
已经在不同的图中使用相同的参考标号以表示类似的组件。
具体实施方式
本发明描述了用于对二进制数据进行编码和解码的设备、方法和过程。具体地,本申请描述了按照基于块的编码方案对末位有效系数位置进行编码和解码的方法以及设备。
在一个方面,本申请描述了一种用于对包括末位有效系数信息的量化后的变换域系数数据进行编码的方法。所述方法包括:对所述末位有效系数的二维坐标的两个位置中的每个位置进行二进制化;确定所述两个位置中的一个位置的每个二进制数的上下文;确定所述两个位置中的另一个位置的每个二进制数的上下文,其中所述两个位置中的所述另一个位置的每个二进制数的上下文部分地基于所述两个位置中的所述一个位置;以及基于针对二进制化的位置的每个二进制数确定的上下文,对所述二进制化的位置进行熵编码,以产生编码数据。
在另一方面,本申请描述了一种用于对编码数据的比特流进行解码以重构量化后的变换域系数数据的方法。所述方法包括:对编码数据的一部分进行熵解码,以产生定义末位有效系数的二维坐标的两个二进制化的位置,其中对所述数据的所述部分进行熵解码包括确定所述两个二进制化的位置中的一个位置的每个二进制数的上下文以及确定所述两个二进制化的位置中的另一个位置的每个二进制数的上下文,其中所述两个二进制化的位置中的所述另一个位置的每个二进制数的上下文部分地基于所述两个二进制化的位置中的所述一个位置;基于所述末位有效系数的二维坐标对有效系数序列进行熵解码;基于所述有效系数序列对级别信息进行熵解码;以及使用所述级别信息和所述有效系数序列来重构所述量化后的变换域系数数据。
在又一方面,本申请描述了存储计算机可执行程序指令的计算机可读介质,所述程序在被执行时,配置处理器以执行所描述的编码方法和/或解码方法。
通过结合附图仔细阅读下面对示例的描述,本领域技术人员将理解本申请的其他方面和特征。
下面的描述总体涉及数据压缩,具体地涉及对有限字母表源(诸如二进制源)的有效的编码和解码。在下面给出的多个示例中,给出了这种编码和解码机制的具体应用。例如,下面的示例说明中的多个参考了视频编码。应该理解,本申请不一定限于视频编码或图像编码。其可以适用于服从基于上下文的数据编码方案的任何类型的数据,该数据编码方案是基于块的并且涉及发信号通知块中的末位有效比特或符号的位置。
本文描述的示例实施例涉及对有限字母表源的数据压缩。相应地,描述经常提及“符号(symbol)”,该符号是字母表的元素。在某些情形中,本文的描述提到二进制源,并且将符号称为比特。有时,针对给定示例,术语“符号”和“比特”可以互换地使用。应该理解,二进制源仅是有限字母表源的一个示例。本申请不限于二进制源。
在以下描述中,参考H.264标准描述了示例实施例。本领域技术人员应该理解,本申请不限于H.264,而是可适用于其他视频编码/解码标准,包括可能的将来的标准,如HEVC。还应该理解,本申请不必然局限于视频编码/解码,并且可以适用于编码/解码任何有限字母表源。
现在参照图1,图1以框图形式示出了用于对视频进行编码的编码器10。还参照图2,图2示出了用于对视频进行解码的解码器50的框图。可以认识到,这里描述的编码器10和解码器50均可以在专用或通用计算设备(包含一个或多个处理单元和存储器)上实现。编码器10或解码器50执行的操作可以通过例如专用集成电路或通过通用处理器可执行的存储的程序指令来实现,这视情况而定。设备可以包括附加软件,包括例如用于控制基本设备功能的操作系统。关于以下描述,本领域技术人员可以认识到在其中可以实现编码器10或解码器50的设备和平台的范围。
编码器10接收视频源12并产生编码比特流14。解码器50接收编码比特流14并输出解码视频帧16。编码器10和解码器50可以被配置为符合多个视频压缩标准来操作。例如,编码器10和解码器50可以符合H.264/AVC。在其他实施例中,编码器10和解码器50可以符合其他视频压缩标准,包括诸如HEVC之类的H.264/AVC标准的演进。
编码器10包括空间预测器21、编码模式选择器20、变换处理器22、量化器24和熵编码器26。本领域技术人员可以认识到,编码模式选择器20确定视频源的适合编码模式,例如对象帧/片是I、P还是B类型,帧/片内的特定宏块(或者编码单元)是帧间还是帧内编码。变换处理器22对空间域数据执行变换。具体地,变换处理器22采用基于块的变换来将空间域数据转换为频谱分量。例如,在许多实施例中,使用离散余弦变换(DCT)。在一些实例中,可以使用其他变换,如离散正弦变换等等。将基于块的变换应用于像素数据块得到变换域系数的集合。量化器24对变换域系数的集合进行量化。然后,熵编码器26对量化后的系数和关联信息(诸如运动矢量、量化参数等等)进行编码。
帧内编码的帧/片(即,类型I)不参照其他帧/片进行编码。换言之,它们不采用时间预测。然而,帧内编码的帧依赖于帧/片内的空间预测,如图1中通过空间预测器21进行说明。即,在对特定块进行编码时,可以将块中的数据与针对该帧/片已经编码的块内的邻近像素的数据进行比较。使用预测算法,可以将块的源数据转换为残差数据。然后,变换处理器22对残差数据进行编码。例如,H.264规定了4×4变换块的9种空间预测模式。在一些实施例中,这9种模式中的每一种可以用于独立处理块,然后使用速率失真优化来选择最佳模式。
H.264标准还规定了使用运动预测/补偿来利用时间预测。相应地,编码器10具有反馈环路,反馈环路包括:解量化器28、反变换处理器30和解块处理器32。这些单元反映了解码器50实现以再现帧/片的解码过程。帧存储器34用于存储再现帧。按照这种方式,运动预测基于在解码器50处重构帧是什么,而不基于原始帧,由于编码/解码中涉及的有损压缩,原始帧可能不同于重构帧。运动预测器36使用帧存储器34中存储的帧/片作为源帧/片,来与当前帧进行比较,以识别相似块。相应地,对于应用运动预测的宏块,变换处理器22编码的“源数据”是出自运动预测过程的残差数据。残差数据是表示参考块与当前块之间的差异(如果存在)的像素数据。关于参考帧和/或运动矢量的信息可以不由变换处理器22和/或量化器24处理,而是可以提供给熵编码器26,以作为比特流的一部分与量化后的系数一起编码。
本领域技术人员将认识到用于实现H.264编码器的细节和可能变型。
解码器50包括:熵解码器52、解量化器54、反变换处理器56、空间补偿器57和解块处理器60。帧缓冲器58提供重构帧以便运动补偿器62在应用运动补偿中使用。空间补偿器57表示根据先前解码块来恢复特定帧内编码块的视频数据的操作。
熵解码器52接收并解码比特流14,以恢复量化后的系数。在熵解码过程中,还可以恢复辅助信息,如果适用,一些辅助信息可以提供给运动补偿环路,以用于运动补偿。例如,熵解码器52可以恢复运动矢量和/或针对帧间编码宏块的参考帧信息。
然后,解量化器54对量化后的系数进行解量化,以产生变换域系数,然后,反变换处理器56对变换域系数进行反变换,以重建“视频数据”。可以认识到,在一些情况下,如对于帧内编码宏块,重建的“视频数据”是相对于帧内的先前解码块的、用于空间补偿的残差数据。空间补偿器57根据残差数据和来自先前解码块的像素数据来产生视频数据。在其他情况下,如对于帧间编码宏块,来自反变换处理器56的重建“视频数据”是相对于来自不同帧的参考块的、用于运动补偿的残差数据。这里,空间和运动补偿均可以称为“预测操作”。
运动补偿器62在帧缓冲器58内定位专用于特定帧间编码宏块的参考块。运动补偿器62基于专用于帧间编码宏块的参考帧信息和运动矢量来进行该操作。然后,运动补偿器62提供参考块像素数据,以与残差数据组合,得到针对该宏块的重建视频数据。
然后,可以对重构帧/片应用解块过程,如解块处理器60所示。在解块之后,输出帧/片作为解码视频帧16,例如以在显示设备上显示。可以理解,视频回放机(如计算机、机顶盒、DVD或蓝光播放器和/或移动手持设备)可以在输出设备上显示之前将解码帧缓冲在存储器中。
熵编码是包括上文描述的视频压缩在内的所有无损和有损压缩方案的基础部分。熵编码的目的是将推测的去相关的信号表示为比特序列,其常常通过独立的但非恒等分布的过程来建模。用于实现此的技术必须不依赖于去相关的信号的生成方式,而可以依赖于针对每个即将到来的符号的有关概率估计。
实践中存在两种常用的熵编码方案:第一种是可变长度编码,其按码字来识别输入符号或者输入序列;第二种是范围(或算术)编码,其封装[0,1)间隔的子间隔的序列以达到单个间隔,根据其可以使用定义那些间隔的概率分布来重构原始序列。典型地,范围编码方法倾向于提供较好的压缩,而VLC方法有可能更快速。在任一情形下,输入序列的符号都来自有限字母表。
熵编码的一种特殊情形是当输入字母表被限制为二进制符号时。此处,HLC方案必须将输入符号归在一起以具有任何压缩可能,但是因为概率分布可能在每个比特之后发生改变,所以有效的码构造是困难的。因此,范围编码由于其较大的灵活性而被认为具有较大的压缩,但是其实际应用因算术编码的较高的计算要求而受到妨碍。
这两种编码方案的共同挑战在于:它们天性上是顺序的。在一些重要的实践应用中,如在高质量视频解码中,熵解码必须达到非常高的输出速度,这会对具有有限处理功率或速度的设备造成问题。
与一些熵编码方案(如CAVLC和CABAC,两者都是H.264/AVC中使用)一起使用的技术之一是上下文建模。利用上下文建模,输入序列的每个比特具有上下文,其中该上下文可以由其他比特(诸如在它之前的比特,或边信息,或二者)的某个子集来给出。在一阶上下文模型中,上下文可以完全取决于先前的比特(符号)。在许多情形下,上下文模型可以是自适应的,使得针对给定上下文的与符号关联的概率在该序列的其他比特被处理时可以发生改变。在又一些情形中,给定比特的上下文可以取决于其在序列中的位置,例如,系数在系数矩阵或块中的位置或序号。
现在参考图3,其示出了示例编码过程100的框图。编码过程100包括上下文建模组件104和熵编码器106。上下文建模组件104接收输入序列x102,在该示例中其是比特序列(b0,b1,...,bn)。在该示例说明中,上下文建模组件104:确定每个比特bi的上下文,该确定有可能基于序列中的先前的一个或多个比特或者基于边信息;以及基于该上下文确定与比特bi关联的概率pi,其中,该概率是该比特将是最小可能符号(LPS)的概率。在二进制实施例中,取决于公约或应用,LPS可以是“0”或“1”。该概率的确定本身可以取决于针对该相同上下文的先前的比特/符号。
上下文建模组件输出输入序列,即比特(b0,b1,...,bn)及其对应的概率(P0,p1,...,Pn)。该概率是通过该上下文模型确定的估计概率。然后,将该数据输入到熵编码器106,其使用该概率信息对该输入序列进行编码。例如,熵编码器106可以是二进制算术编码器。熵编码器106输出编码数据的比特流108。
应该理解,该输入序列的每个比特被顺序处理以更新上下文模型,以及该连续的比特和概率信息被提供给熵编码器106,熵编码器106于是顺序地对这些比特进行熵编码以创建比特流108。本领域技术人员将明白,在一些实施例中,可能不从上下文建模组件104向熵编码器106传递显式的概率信息;相反,在一些示例中,对于每个比特,上下文建模组件104可以向熵编码器106发送反映由上下文建模组件104基于上下文模型和输入序列102的当前上下文做出的概率估计的索引或其他指示符。该索引或其他指示符指示与其对应比特关联的概率估计。
在一些实施例中,熵编码器106可以具有用于对输入序列102进行编码的并行处理架构。在这种实施例中,熵编码器106可以包括多个熵编码器,每个熵编码器处理输入序列102的一部分。在一些情形下,输入序列可被解复用,并且基于与相应比特关联的估计概率在这些并行熵编码器之间进行分配。换言之,来自输入序列102的比特可以基于其估计概率而被分配给并行编码器之一。
在解码器处,使用逆过程对编码比特流进行解码。具体地,解码器执行相同的上下文建模和概率估计过程,以确定重构序列的下一个重构符号的上下文。基于针对下一个重构符号确定的上下文,确定估计概率。对编码比特流(其可以由熵编码器输出的码字组成)进行解码,以获得解码符号。上下文/概率的确定与对码字的解码交织在一起,以获得与那些估计概率对应的解码符号。
在并行编码的实施例中,解码器可以配置为将编码比特流解复用成多个解码子序列,每个解码子序列与一个估计概率相关联。上下文建模和概率估计于是得到对来自关联的解码子序列的重构符号的选择。应该理解,在这种实现中,对编码比特流的解码可被认为是根据上下文建模和概率估计进行解交织。
根据下面的详细描述,应该理解本申请适用于串行或并行的熵编码和解码。
本申请提出一种编码和解码过程,其中末位有效系数位置被编码,并且其中位置的轴之一的上下文取决于另一轴。
下面的示例可能特别参考了视频编码,并且具体地参考了对如在ITU-T H.264/AVC标准中规定的CABAC中定义的序列sig[i,j]和last[i,j]的编码。应该明白,本申请不限于对CABAC中的这两个特定序列的编码和解码;也不限于视频编码和解码或者H.264/AVC标准。本申请描述了可被应用到其他数据序列(包括视频、图像,以及在一些实例中,包括音频)的编码和解码方法和过程。本文的方法和过程可以适用于涉及上下文模型的编码和解码过程,所述上下文模型对末位有效系数位置进行编码,以及在所述过程中位置被建模为二维的或者可被建模为二维的。下面的示例可以参考作为示例的二进制源,尽管更一般性地讲,本申请可适用于任何有限字母表源。
如上文描述的,示例视频和图像编码和解码过程利用基于块的变换将残差数据从像素域转换到变换域。示例的基于块的变换是4x4DCT或8x8DCT。在一些应用中,可以使用其他大小或类型的变换(DST或DFT等)。然后,由量化器对变换数据的矩阵或集合进行量化,以产生量化后的变换域系数的矩阵或集合。本申请可以将量化后的变换域系数的矩阵称为矩阵、集合或块,其表示数据的有序集合,其中任何一个系数的位置可以由二维坐标[x,y]来指定。
对量化后的变换域系数的块的熵编码基于上下文模型。例如,在H.264/AVC中,通过对有效图的第一编码来对块进行熵编码。有效图包括两个序列:last[i,j]和sig[i,j]。序列sig[i,j]是指示DCT块中的每个位置上是否存在非零系数的二进制序列。另一序列last[i,j]是被映射到DCT块的非零系数的并且指示该非零系数是否是DCT块的末位非零系数的二进制序列(在H.264和其他变换域图像或视频编码方案中的zig-zag扫描顺序中)。应该注意,索引[i,j]不是块中的二维坐标位置;索引i是对块的索引,索引j是对下面描述的zig-zag扫描顺序中的一维系数位置的索引。
H.264标准规定了zig-zag扫描顺序,用于对DCT块的系数进行编码。例如参考4×4DCT块,H.264标准以图6所示的zig-zag顺序对16个系数进行编码。如图6中所示,该扫描顺序开始于块的左上角,服从zig-zag图案直到右下角。一旦以该编码顺序安排,针对第i个块所得的系数序列是X(i,0),...,X(i,15)。
H.264/AVC标准使用其中顺序地对块进行编码的方案。换言之,依次对每个序列X(i,0),...,X(i,15)进行编码。H.264/AVC中使用的上下文模型包括:针对每个矢量X[i,j],确定两个二进制序列sig[i,j]和last[i,j]。然后还对系数的实际值(称为级别)进行编码。
为了通过示例进行说明,考虑下面的示例系数序列X:
3,5,2,0,1,1,0,1,0,0,0,0,0,0,0,0  i0
6,4,0,3,3,0,1,0,0,0,0,0,0,0,0,0  i1
4,2,0,0,1,0,0,0,0,0,0,0,0,0,0,0  i=2
针对这些系数序列的序列sig[i,j]和last[i,j]如下:
sig[0,j]=1,1,1,0,1,1,0,1
last[0,j]=0,0,0,    0,0,    1
sig[1,j]=1,1,0,1,1,0,1
last[1,j]=0,0,     0,0,    1
sig[2,j]=1,1,0,0,1
last[2,j]=0,0,           1
应该理解,last[i,j]序列仅包括sig[i,j]为非零时的值,并且两个序列都在末位非零系数之后终止。相应地,last[i,j]将不一定包括针对sig[i,j]中的每个比特j的比特。应该理解,这些序列的长度可以根据系数值而变化。最后,应该理解,如果知道sig[i,j]序列是否包含非零比特,则将知道在last[i,j]序列中是否存在对应的比特,这意味着对这些序列的编码和解码是通过比特位置来交织的。
在H.264/AVC示例中,基于比特的上下文来确定比特的概率(有时称为“状态”)。特别地,相同上下文的比特历史确定被选择或分配给该比特的概率。例如,对于给定序列i中的第j个位置上的比特,其概率是基于先前的序列(i-1,等等)中的第j个位置上的比特历史,从64个可能概率中选择的。
如上文所述,基于比特的概率对比特进行编码。在一些示例实施例中可以使用并行编码,以及在一些实例中,并行编码可以包括特定于每个概率的熵编码器。在其他示例实施例中,可以使用串行熵编码。在任一情形下,熵编码器基于符号关联的概率对符号进行编码。
在解码器处,在重构序列时,发生相同的上下文建模和概率估计。概率估计被用于对编码比特流进行解码,以获得重构的符号。符号是从编码比特流的解码出的部分中选择的,并且基于其关联的概率和上下文模型进行交织以形成重构的符号序列。
在下表中阐述了使用CABAC的H.264/AVC中的残差块的语法:
表1
residual_block_cabac(coeffLevel,startIdx,endIdx,maxNumCoeff){ 描述符
if(maxNumCoeff!=64||ChromaArrayType==3) ae(v)
coded_block_flag ae(v)
for(i=0;i<maxNumCoeff;i++)
coeffLevel[i]=0
if(coded_block_flag){
numCoeff=endIdx+1
i=startIdx
while(i<numCoeff-1){
significant_coeff_flag[i] ae(v)
if(significant_coeff_flag[i]){
last_significant_coeff_flag[i] ae(v)
if(last_significant_coeff_flag[i])
numCoeff=i+1
}
i++
}
coeff_abs_level_minusl[numCoeff-1] ae(v)
coeff_sign_flag[mumCoeff-1] ae(v)
coeffLevel[numCoeff-1]=
(coeff_abs_level_minusl[numCoeff-1]+1)*
(1-2*coeffsign_flag[numCoeff-1])
for(i=numCoeff-2;i>=startIdx;i--)
if(significant_coeff_flag[i]){
coeff_abs_level_minusl[i] ae(v)
coeff_sign_flag[i] ae(v)
coeffLevel[i]=(coeffabs_level_minusl[i]+1)*
(1-2*coeff_sign_flag[i])
}
}
}
上表提供了用于对包含sig[i,j]、last[i,j]和级别信息的比特流进行熵解码的伪码。标识符“ae(v)”指示对来自比特流的比特进行熵解码以获得在表中的该行中指示的值。
应该注意,在该语法中sig[i,j]和last[i,j]的比特被交织。例如,“if(coded_block_flag)”循环包含对来自sig[i,j]序列的比特的解码(称为significant_coeff_flag[i]),其后跟着在significant_coeff_flag[i]比特为非零时对来自last[i,j]序列的比特的解码(称为last_significant_coeff_flag[i])。
还应该理解,该语法依赖于用以发信号通知在针对该块的zig-zag扫描顺序中的末位有效系数的一维位置的序列。
根据本申请的一个方面,该语法被修改为发信号通知该块内的末位有效系数的二维坐标。例如,在4×4块中,末位有效系数的位置具有x坐标和y坐标,其中x和y的范围是在0和3之间。在该语法中可以传送该坐标对,以替代last[i,j]序列。
产生的问题在于:如何有效且高效地编码末位有效系数的二维坐标。另一问题在于:是否应该为了对该参数进行编码而对上下文模型进行改动。
根据本申请的一个方面,依次对二维坐标进行编码,其中第一坐标的值被部分用于确定对第二坐标进行编码的上下文。该概念是基于:如已经根据经验观察到的,在坐标对的两个坐标的值之间存在某种程度的相关性。X坐标的值趋向于对对应的y坐标的值的概率具有重要影响。可以利用该关系来提高编码效率。
在根据本申请的一个方面的一个实施例中,使用固定长度编码来对x坐标和y坐标进行二进制化。在其他实施例中,可以使用其他二进制化方案。
根据本申请的另一方面,用于编码残差块的语法被进一步修改以包括用于发信号通知末位有效系数是[0,0]处的DC系数的标记。这在实际实现中并不是罕见事件,以及当在比特中发信号通知了该情况时,比特流可以在那些情况下放弃包括末位有效系数的x坐标和y坐标,由此提高压缩效率。
在此处的描述中,术语“位置”有时可被用于指代x坐标或y坐标,根据具体情况而定。
尽管下文描述的示例实施例规定了用于对y位置的比特进行编码的上下文是部分基于x位置的值的,但是该顺序是任意的。在另一实施例中,用于对x位置进行编码的上下文可以部分基于y位置的值。
在下表中阐述了根据本申请的一个方面的用于对残差块进行编码的语法的一个示例实施例:
表2
Figure BDA0000436103800000131
Figure BDA0000436103800000141
根据上述伪码,应该注意,解码器初始化x位置(last_pos_x=0)和y位置(last_pos_y=0)的值,然后读取发信号通知末位有效系数是DC系数的标记(last_0_flag)。如果该last_0_flag没有指示末位有效系数是在[0,0]处,则仅执行紧跟其后的循环。在该情形下,解码器然后从该比特流中读取last_pos_x和last_pos_y的值。
还应该注意,在该实施例中,如果last_pos_x值为0,则y位置被编码为其值减1,因为由于该标记设置,已知该情况下二维位置不可能是[0,0],所以y位置必须是1或者更大。由于该编码语法,如果last_pos_x被设为0,则last_pos_y的值加1,以将其恢复到其实际值。在该特定情形下出于编码目的而使last_pos_y减1是为了提高熵编码的效率的目的。
在已经读取二维坐标之后,解码器继续从比特流中读取significant_coeff_flag[i]序列。使用用于将索引映射到坐标位置的zigzag表,索引[i]设置当前的pos_x和pos_y值。当pos_x和pos_y的值分别与last_pos_x和last_pos_y的值匹配时,last_significent_coeff_flag被设置为使得停止对sig[i,j]序列的读取,该sig[i,j]序列被逐比特读取为significant_coeff_flag[i]。
现在参考图7,其通过图解说明了根据本申请的一个方面创建的比特流200的结构。图7说明的比特流200的部分示出了与残差块有关的数据。所示的比特流200的部分是在熵编码之前或者在熵解码之后的比特流。该熵编码可以包括CABAC、CAVLC或者其他基于上下文的熵编码方案。
首位标记是coded_block_flag。该标记后跟着用于发信号通知末位有效系数坐标[0,0]的last_0_flag。然后,假定没有设置last_0_flag,则比特流200包括last_pos_x和last_pos_y的值。在那之后是sig[i,j]序列,即有效系数序列。最后,比特流200的该部分包括级别信息。应该理解,在设置了last_0_flag的情况下,last_pos_x、last_pos_y和有效系数序列被省略。
在一个实施例中,使用固定长度二进制化对last_pos_x和last_pos_y的值进行二进制化。这些二进制值的长度取决于变换矩阵的大小,即量化后的变换域系数的块的大小。
现在参考图8,其示出了用于在编码残差块时对末位有效系数进行编码的示例方法300。该示例方法300包括操作302,确定末位有效系数坐标。对于NxN的变换块大小,这些坐标可以是范围从0到N-1的x坐标和y坐标。这些坐标可被称为x位置和y位置。
在操作304中,对这两个位置进行二进制化。如上文提到的,可以使用固定长度二进制化来对所述位置进行二进制化。二进制化后的位置的长度可以是Log2(N)。在其他实施例中可以使用其他二进制化方案。
对二进制化的位置的熵编码包括:确定二进制化的位置的每个二进制数的上下文。相应地,在操作306中,确定所述位置中的一个位置的每个二进制数的上下文。出于示例实施例的目的,可以将x位置视为要编码的第一位置。二进制化的x位置的每个二进制数的上下文可以基于众多因素。例如,在一个实施例中,x位置的每个二进制数的上下文可以基于变换矩阵的大小。该x位置的先前的二进制数(如果存在的话)也会影响该x位置的后续的二进制数的上下文。
在操作308中,然后确定所述位置中的另一个位置(本示例中是y位置)的每个二进制数的上下文。在确定y位置的二进制数的上下文时,该上下文部分基于x位置的值。y位置的二进制数的上下文也可以部分取决于变换矩阵的大小和该y位置的先前的二进制数(如果存在的话)。
在操作310中,然后根据在步骤306和308中确定的位置所关联的上下文来对二进制化的位置进行熵编码。该熵编码可以包括CABAC、CAVLC或者任何其他合适的基于上下文的熵编码方案。
现在将参考图9,其示出了描述用于对编码数据的比特流进行解码以重构量化后的变换域系数数据的方法400的流程图。图9中说明的示例方法400包括使用与此处描述的语法类似的语法来处理编码数据的比特流。在操作402中,对比特流的一部分进行熵解码,以恢复定义末位有效系数的二维坐标的两个二进制化的位置。该操作包括:确定位置中的第一位置(例如,在一个实施例中是x位置)的每个二进制数的上下文。该上下文例如可以取决于变换矩阵的大小和先前解码出的该x位置的二进制数(如果存在的话)。基于每个二进制数的上下文,以及因此基于关联的估计概率,对比特流的熵解码确定能导致重构二进制化的x位置的二进制数。
操作402还包括:确定另一个位置(在本示例中是y位置)的每个二进制数的上下文。y位置的每个二进制数的上下文可以基于变换矩阵的大小和该y位置的先前的二进制数(如果存在的话),但是其还基于该x位置的值。根据所确定的每个二进制数的上下文及其因此估计的概率对比特流进行熵编码导致对二进制化的y位置的重构。
在操作404中,使用x位置和y位置对来自比特流的有效系数序列进行熵解码。在操作406中,使用熵解码,从比特流中恢复出级别信息。在操作408中,将有效系数序列和级别信息一起用于重构量化后的变换域系数数据。
在一个示例实现中,通过下式给出x位置(如果其是二维坐标中的要首先编码的那个)的二进制数的上下文:
ctxIdxInc=binCtxOffset+binCtxInc
在该表达式中,ctxIdxInc是last_pos_x的给定二进制数的上下文索引。变量binCtxOffset是基于变换大小的上下文偏移。在一个实施例中,该偏移是根据下表确定的:
log2TrafoSize binCtxOffset
2 0
3 3
4 10
5 17
在该示例中,,log2TrafoSize是变换矩阵大小的以2为底的对数,即log2(N)。
上述针对上下文索引的表达式中的另一变量是binCtxInc,其代表基于last_pos_x中的之前的二进制数的值(如果存在的话)所施加的上下文索引增量。例如,可以根据下表确定binCtxInc变量:
Figure BDA0000436103800000171
在该示例中,binIdx是last_pos_x中的二进制数的索引,以及b0和b1分别是索引0和1处的last_pos_x二进制序列中的二进制数。
在一个示例实施例中,last_pos_y的二进制数的上下文可以根据下面的表达式来确定:
ctxIdxInc=binCtxOffset0+3*binCtxOffset1+binCtxInc
在该情形下,last_pos_y的二进制数的上下文取决于变换矩阵的大小、last_pos_y的先前的二进制数(如果存在的话),并且取决于last_pos_x的值。特别地,变换矩阵通过变量binCtxOffset0影响上下文,在一些实施例中变量binCtxOffset0可以根据下表来确定:
log2TrafoSize binCtxOffset0
2 0
3 9
4 21
5 35
解码出的last_pos_y的二进制数可以通过变量binCtxInc影响上下文,在一些实施例中变量binCtxInc可以根据下表来确定:
Figure BDA0000436103800000181
在该示例中,应该注意,仅索引0处的第一个二进制数会影响last_pos_y的任意其他二进制数的上下文。
最后,last_pos_x的值可以通过变量binCtxOffset1影响last_pos_y的二进制数的上下文,该变量binCtxOffset1可以通过下述方式来确定:
If last_pos_x==0
binCtxOffset1=0
Otherwise
binCtxOffset1=Floor(Log2(last_pos_x))+1
应该明白,前述示例仅是一个示例实现,其中last_pos_y的二进制数的上下文取决于last_pos_x的值。应该理解,可以利用根据经验设计的适合特定应用的特定的表和上下文偏移来实现各种其他实现。
上下文索引的含义可以取决于量化参数(QP)的值。也即,利用不同QP,可以使用不同上下文对相同语法进行编码。而且,这些上下文可以共享相同的上下文索引。在一个示例实施例中,last_pos_x可以通过Huffman编码来进行编码。对应的Huffman树可以取决于QP的值。用于对last_pos_x的二进制数进行编码的上下文可以取决于Huffman树,并且由此因不同的QP而不同。例如,如果针对每个QP使用一个上下文,则这些上下文可以共享相同的索引0但具有不同的含义。
在备选实现中,不是对二维笛卡尔坐标x和y进行编码,而是由系数所在的逆对角线和系数在该线上的相对位置来表示末位有效系数位置。参考图11,图11通过图解说明了4×4的系数块600。在块600中示出了逆对角线602。应该注意,存在7个逆对角线,其索引为0到6。线0和6仅具有单个位置,其分别对应于x,y坐标[0,0]和[3,3]。其他逆对角线602均具有2到4个位置。可以根据扫描顺序的约定来对位置编制索引。也即,对逆对角线上的位置的编制索引可以交替地逐条线地按照线的方向进行。因此,4×4的块中的每个坐标的表示可被表达为如下所示的基于逆对角线的二维坐标[a,b]:
[0,0] [1,0] [2,2] [3,0]
[1,1] [2,1] [3,1] [4,2]
[2,0] [3,2] [4,1] [5,0]
[3,3] [4,0] [5,1] [6,0]
应该注意,末位位置[0,0]和[6,0]可以单独由其逆对角线号码来编码,因为不需要指定用于该线上的位置的第二坐标。
[a,b]的值可以以与上文针对二维坐标x和y描述的方式类似的方式来编码。针对逆对角线索引a的编码二进制数的总数是log2(2N-1)。针对系数在线上的位置b的编码二进制数的数目取决于值a,并且对于a<N,a是1+log2(a),以及对于a≥N,是1+log2(2(N-1)-a)。用于对每个二进制数进行编码/解码的上下文基于先前编码/解码出的二进制数的值。
在另一备选实现中,编码器对末位有效位置的关于系数扫描顺序的一维坐标进行编码,而不是对末位有效系数位置的二维坐标进行编码。系数扫描顺序可以是按照H.264中使用的zig-zag顺序,或者是按照在其他变换域图像或视频编码方案中使用的任何自适应的或非自适应的扫描顺序。在该实现中,替代last_pos_x和last_pos_y,编码器仅对last_pos进行编码,last_pos的范围是从0到(N*N-1),其中N是变换域系数的块的大小。如果在语法中使用了last_0_flag,则last_pos的范围不需要包括0。在一些情形下,last_pos可以自动递减,使得解码器知道其必须给last_pos的值加1以得到末位有效系数位置的实际的一维坐标。
last_pos的值可以以与上述针对二维坐标之一x所描述的方式类似的方式进行编码。针对一维坐标last_pos的编码二进制数的总数是2log2(N)。用于对每个二进制数进行编码/解码的上下文基于先前编码/解码的二进制数的值。
应该注意,在示例实现中,针对二维(或一维)末位有效系数位置的编码二进制数的数目在最差情况下的值是在log2(N)的量级,其远小于N*N(即针对传统的last[i,j]序列的编码二进制数的数目在最差情况下的值),由此降低了熵编码引擎实现的复杂度。
在本申请的又一方面,仅对于特定的块,使用上文描述的末位位置编码过程可能是有利的。具体地,对于具有比预设的数目更多的系数的块,该过程可能是有利的。具有较少的系数的块可能使用早先描述的传统的交织型sig[i,j]和last[i,j]语法进行编码更加高效。相应地,在一个实施例中,编码器确定块中的非零(NNZ)系数的数目,并且,如果NNZ小于阈值,则使用传统语法对sig[i,j]和last[i,j]序列进行编码。该阈值可以预设为2或3,或者任何其他合适的值。如果NNZ等于或大于该阈值,则编码器使用上文描述的二维(或一维)末位有效系数位置编码过程。
该语法可被适配为包括用于向解码器发信号通知块的NNZ系数是否小于阈值的标记。这也发信号通知编码器使用哪个有效图编码过程。在一些实例中,可以消除last_0_flag,因为在传统的有效图编码过程中对仅有DC的块的发信号通知是相当有效的。
现在参考图10,图10以简化流程图的形式示出了对有效图进行编码的方法500。方法500是针对量化后的变换域系数的每个块执行的。其包括:在操作502中确定块中的NNZ系数。在操作504中,将NNZ系数与预设阈值进行比较。如果NNZ系数小于阈值,则如操作506中所示,编码器使用传统的交织型有效图编码。如果NNZ系数等于或大于阈值,则在操作508中编码器如上所述对末位位置坐标进行编码。
应该明白,前述示例方法是对诸如H.264中描述的那些之类的用于编码和解码有效图的特定示例应用的说明。本申请不限于那些特定示例应用。
现在参考图4,图4示出了编码器900的示例实施例的简化框图。编码器900包括:处理器902、存储器904和编码应用906。编码应用906可以包括存储在存储器904中并包含指令的计算机程序或应用,所述指令用于将处理器902配置为执行诸如这里描述的之类的步骤或操作。例如,编码应用906可以编码并输出根据这里描述的末位有效系数位置编码过程所编码的比特流。编码应用906可以包括:熵编码器26,被配置使用此处描述的一个或多个过程对输入序列进行熵编码并且输出比特流。可以理解,编码应用906可以存储在计算机可读介质上,如致密光盘、闪存设备、随机存取存储器、硬盘等等。
在一些实施例中,编码器900中的处理器902可以是单个处理单元,配置为实现编码应用906的指令。还应该明白,在一些实例中,编码应用906和一个或多个处理单元的一些或全部操作可以通过专用集成电路(ASIC)等来实现。
现在还参照图5,图5示出了解码器1000的示例实施例的简化框图。解码器1000包括:处理器1002、存储器1004和解码应用1006。解码应用1006可以包括存储在存储器1004中并包含指令的计算机程序或应用,所述指令用于将处理器1002配置为执行诸如这里描述的之类的步骤或操作。解码应用1006可以包括:熵解码器1008,配置为接收根据此处描述的末位有效系数位置编码过程编码的比特流,以及使用用于解码比特流的末位有效系数位置上下文建模过程来重构量化后的变换域系数数据。可以理解,解码应用1006可以存储在计算机可读介质上,如致密光盘、闪存设备、随机存取存储器、硬盘等等。
在一些实施例中,解码器1000中的处理器1002可以是单个处理单元,配置为实现解码应用1006的指令。在一些实施例中,处理器1002可以包括能够并行地执行指令的不止一个处理单元。多个处理单元可以是逻辑上或物理上分离的处理单元。还应该明白,在一些实例中,解码应用1006和一个或多个处理单元的一些或全部操作可以通过专用集成电路(ASIC)等来实现。
可以认识到,根据本申请的解码器和/或编码器可以在多个计算设备中实现,包括但不限于服务器、合适编程的通用计算机、电视机顶盒、电视广播设备和移动设备。可以通过包含指令的软件来实现解码器或编码器,所述指令用于将处理器配置为执行这里描述的功能。软件指令可以存储在任何合适的计算机可读存储器上,包括CD、RAM、ROM、闪存等等。
可以理解,这里描述的编码器和解码器以及实现所描述的用于配置编码器的方法/过程的模块、例程、进程、线程或其他软件组件可以使用标准计算机编程技术和语言来实现。本申请不限于特定处理器、计算机语言、计算机编程惯例、数据结构、其他这种实现细节。本领域技术人员将认识到,可以将所描述的过程实现为存储在易失性或非易失性存储器中的计算机可执行代码的一部分、专用集成芯片(ASIC)的一部分等。
可以对所描述的实施例进行特定适配和修改。因此,上述实施例被认为是示意性而非限制性。

Claims (18)

1.一种用于对包括末位有效系数信息的量化后的变换域系数数据进行编码的方法,所述方法包括:
对所述末位有效系数的二维坐标的两个位置中的每个位置进行二进制化;
确定所述两个位置中的一个位置的每个二进制数的上下文;
确定所述两个位置中的另一个位置的每个二进制数的上下文,其中所述两个位置中的所述另一个位置的每个二进制数的上下文部分地基于所述两个位置中的所述一个位置;以及
基于针对二进制化的位置的每个二进制数确定的上下文,对所述二进制化的位置进行熵编码,以产生编码数据。
2.根据权利要求1所述的方法,其中二进制化包括将所述两个位置中的每一个编码为固定长度的二进制码。
3.根据权利要求1或2所述的方法,其中确定所述两个位置中的所述另一个位置的每个二进制数的上下文包括:计算指定所确定的上下文的上下文索引,其中所述上下文索引是基于所述两个位置中的所述一个位置、变换块大小以及如果存在的所述位置中的所述另一个位置上的先前二进制数而计算的。
4.根据权利要求1到3中任一项所述的方法,其中所述两个位置包括在块内的x位置和y位置。
5.根据权利要求1所述的方法,其中确定所述两个位置中的所述另一个位置的每个二进制数的上下文包括:计算指定所确定的上下文的上下文索引,其中所述上下文索引基于所述两个位置中的所述一个位置的二进制对数。
6.根据权利要求1到5中任一项所述的方法,还包括:
在执行所述二进制化、确定每个位置的每个二进制数的上下文、以及熵编码之前,确定所述二维坐标不是[0,0]。
7.根据权利要求1到6中任一项所述的方法,还包括:在所述二进制化、所述确定所述两个位置中的一个位置的每个二进制数的上下文、以及所述确定所述两个位置中的另一个位置的每个二进制数的上下文之前,对所述量化后的变换域系数数据中的非零系数的数目进行计数,以及确定所述数目满足或超过阈值。
8.一种用于对量化后的变换域系数数据进行编码的编码器,所述编码器包括:
处理器;
存储器;以及
编码应用,存储在存储器中,并且包含用于配置所述处理器以通过执行根据权利要求1到7中任一项所述的方法来对所述量化后的变换域系数数据进行编码的指令。
9.一种用于对编码数据的比特流进行解码以重构量化后的变换域系数数据的方法,所述方法包括:
对编码数据的一部分进行熵解码,以产生定义末位有效系数的二维坐标的两个二进制化的位置,其中对所述数据的所述部分进行熵解码包括:
确定所述两个二进制化的位置中的一个位置的每个二进制数的上下文,以及
确定所述两个二进制化的位置中的另一个位置的每个二进制数的上下文,其中所述两个二进制化的位置中的所述另一个位置的每个二进制数的上下文部分地基于所述两个二进制化的位置中的所述一个位置;
基于所述末位有效系数的二维坐标对有效系数序列进行熵解码;
基于所述有效系数序列对级别信息进行熵解码;以及
使用所述级别信息和所述有效系数序列来重构所述量化后的变换域系数数据。
10.根据权利要求9所述的方法,其中所述两个二进制化的位置均包括固定长度的二进制码。
11.根据权利要求9或10所述的方法,其中对所述有效系数序列进行熵解码包括:将所述末位有效系数的二维坐标转换为指示所述有效系数序列的结尾的一维索引。
12.根据权利要求9到11中任一项所述的方法,其中确定所述两个二进制化的位置中的另一个位置的每个二进制数的上下文包括:计算指定所确定的上下文的上下文索引,其中所述上下文索引是基于所述两个二进制化的位置中的所述一个位置、变换块大小以及如果存在的所述两个二进制化的位置中的所述另一个位置上的先前二进制数而计算的。
13.根据权利要求9到12中任一项所述的方法,其中所述两个二进制化的位置包括块内的x位置和y位置。
14.根据权利要求9所述的方法,其中确定所述两个二进制化的位置中的另一个位置的每个二进制数的上下文包括:计算指定所确定的上下文的上下文索引,其中所述上下文索引基于所述两个二进制化的位置中的所述一个位置的二进制对数。
15.根据权利要求9到14中任一项所述的方法,还包括:
在对所述部分进行解码之前,对零标记进行熵解码,以及根据所述零标记确定所述二维坐标位置不是[0,0]。
16.根据权利要求9到15中任一项所述的方法,还包括:对非零系数标记进行熵解码,以及基于所述非零系数标记的值执行来对编码数据的一部分进行熵解码。
17.一种用于对编码数据的比特流进行解码以重构符号序列的解码器,所述符号属于有限字母表,所述解码器包括:
处理器;
存储器;以及
解码应用,存储在存储器中,并且包含用于配置所述处理器以通过执行根据权利要求9到16中任一项所述的方法来对所述比特流进行解码的指令。
18.一种计算机可读介质,在其上存储有计算机可执行指令,所述指令在由处理器执行时,配置所述处理器以执行根据权利要求1到7或者权利要求9到16中任一项所述的方法。
CN201180071591.6A 2011-04-15 2011-04-15 对末位有效系数的位置进行编码和解码的方法和设备 Active CN103597838B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CA2011/050200 WO2012139192A2 (en) 2011-04-15 2011-04-15 Methods and devices for coding and decoding the position of the last significant coefficient

Publications (2)

Publication Number Publication Date
CN103597838A true CN103597838A (zh) 2014-02-19
CN103597838B CN103597838B (zh) 2017-03-29

Family

ID=47009749

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180071591.6A Active CN103597838B (zh) 2011-04-15 2011-04-15 对末位有效系数的位置进行编码和解码的方法和设备

Country Status (5)

Country Link
EP (2) EP3229473B1 (zh)
KR (1) KR101571618B1 (zh)
CN (1) CN103597838B (zh)
CA (1) CA2832086C (zh)
WO (1) WO2012139192A2 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107018430A (zh) * 2016-01-28 2017-08-04 影图辟开思公司 用于二进制数据的压缩和解压缩的方法和设备
CN111225207A (zh) * 2018-11-27 2020-06-02 半导体元件工业有限责任公司 用于对变换系数进行编码的方法和装置
CN112911288A (zh) * 2019-12-03 2021-06-04 杭州海康威视数字技术股份有限公司 解码方法、编码方法、装置及设备
CN114143559A (zh) * 2018-01-30 2022-03-04 谷歌有限责任公司 变换系数代码化中的高效上下文模型计算设计
CN114930826A (zh) * 2020-01-07 2022-08-19 高通股份有限公司 用于视频编解码中最后位置编解码的坐标的上下文推导和熵编解码初始化参数

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10091529B2 (en) 2010-07-09 2018-10-02 Samsung Electronics Co., Ltd. Method and apparatus for entropy encoding/decoding a transform coefficient
MX2013000344A (es) 2010-07-09 2013-03-20 Samsung Electronics Co Ltd Metodo y aparato para codificar/decodificar por entropia un coeficiente de transformacion.
US9215464B2 (en) * 2013-09-19 2015-12-15 Blackberry Limited Coding position data for the last non-zero transform coefficient in a coefficient group
KR102332999B1 (ko) * 2015-01-15 2021-12-01 한국전자통신연구원 고속 율-왜곡 최적화 기반 양자화 방법 및 장치
EP3270595A1 (en) * 2016-07-15 2018-01-17 Thomson Licensing Method and apparatus for last coefficient coding for adaptive transform based video compression
EP3270594A1 (en) * 2016-07-15 2018-01-17 Thomson Licensing Method and apparatus for advanced cabac context adaptation for last coefficient coding
KR20190099930A (ko) 2018-02-20 2019-08-28 삼성전자주식회사 완전 연결 네트워크의 데이터 입력 및 출력을 제어하는 방법 및 장치
KR102456938B1 (ko) * 2019-03-12 2022-10-20 엘지전자 주식회사 변환에 기반한 영상 코딩 방법 및 그 장치
US11172211B2 (en) * 2019-04-04 2021-11-09 Tencent America LLC Method and apparatus for video coding
GB2582929A (en) * 2019-04-08 2020-10-14 Canon Kk Residual signalling
WO2024107210A1 (en) * 2022-11-15 2024-05-23 Google Llc Dc only transform coefficient mode for image and video coding

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1585958A (zh) * 2001-09-14 2005-02-23 诺基亚有限公司 基于上下文的自适应二进制算术编码的方法和系统
JP2005237004A (ja) * 2002-05-02 2005-09-02 Fraunhofer-Ges Zur Foerderung Der Angewandten Forschung Ev 変換係数を算術符号化、復号化するための方法と装置および対応するコンピュータプログラムと対応するコンピュータによる読み出し可能な記憶媒体
CN1913638A (zh) * 2005-08-09 2007-02-14 C&S技术有限公司 用于快速上下文自适应可变长编码的h.264解码方法
CN101478672A (zh) * 2008-01-04 2009-07-08 华为技术有限公司 视频编码、解码方法及装置和视频处理系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI341657B (en) 2007-04-03 2011-05-01 Nat Univ Tsing Hua Cabac decoding method
US9042440B2 (en) * 2010-12-03 2015-05-26 Qualcomm Incorporated Coding the position of a last significant coefficient within a video block based on a scanning order for the block in video coding

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1585958A (zh) * 2001-09-14 2005-02-23 诺基亚有限公司 基于上下文的自适应二进制算术编码的方法和系统
JP2005237004A (ja) * 2002-05-02 2005-09-02 Fraunhofer-Ges Zur Foerderung Der Angewandten Forschung Ev 変換係数を算術符号化、復号化するための方法と装置および対応するコンピュータプログラムと対応するコンピュータによる読み出し可能な記憶媒体
US7702013B2 (en) * 2002-05-02 2010-04-20 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Method and arrangement for coding transform coefficients in picture and/or video coders and decoders and a corresponding computer program and a corresponding computer-readable storage medium
CN1913638A (zh) * 2005-08-09 2007-02-14 C&S技术有限公司 用于快速上下文自适应可变长编码的h.264解码方法
CN101478672A (zh) * 2008-01-04 2009-07-08 华为技术有限公司 视频编码、解码方法及装置和视频处理系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
SOLE J: "Parallel Context Processing for the significance map in high coding efficiency", 《JOINT COLLABORATIVE TEAM ON VIDEO CODING(JCT-VC) OF ITU-T SG16 WP3 AND ISO/IEC JTC1/SC29/WG11》 *

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107018430A (zh) * 2016-01-28 2017-08-04 影图辟开思公司 用于二进制数据的压缩和解压缩的方法和设备
CN107018430B (zh) * 2016-01-28 2019-05-31 影图辟开思公司 用于二进制数据的压缩和解压缩的方法和设备
CN114143559A (zh) * 2018-01-30 2022-03-04 谷歌有限责任公司 变换系数代码化中的高效上下文模型计算设计
CN114143559B (zh) * 2018-01-30 2024-01-05 谷歌有限责任公司 变换系数代码化中的高效上下文模型计算设计
CN111225207A (zh) * 2018-11-27 2020-06-02 半导体元件工业有限责任公司 用于对变换系数进行编码的方法和装置
CN111225207B (zh) * 2018-11-27 2024-02-06 半导体元件工业有限责任公司 用于对变换系数进行编码的方法和装置
CN112911288A (zh) * 2019-12-03 2021-06-04 杭州海康威视数字技术股份有限公司 解码方法、编码方法、装置及设备
CN114071140A (zh) * 2019-12-03 2022-02-18 杭州海康威视数字技术股份有限公司 解码方法、编码方法、装置、设备及机器可读存储介质
CN112911288B (zh) * 2019-12-03 2022-05-27 杭州海康威视数字技术股份有限公司 解码方法、编码方法、装置及设备
CN114930826A (zh) * 2020-01-07 2022-08-19 高通股份有限公司 用于视频编解码中最后位置编解码的坐标的上下文推导和熵编解码初始化参数

Also Published As

Publication number Publication date
KR20130140190A (ko) 2013-12-23
WO2012139192A3 (en) 2012-12-13
EP3229473B1 (en) 2020-11-25
KR101571618B1 (ko) 2015-11-24
CN103597838B (zh) 2017-03-29
EP3229473A1 (en) 2017-10-11
EP2697974B1 (en) 2017-04-12
CA2832086C (en) 2018-10-23
EP2697974A2 (en) 2014-02-19
CA2832086A1 (en) 2012-10-18
EP2697974A4 (en) 2014-12-24
WO2012139192A2 (en) 2012-10-18

Similar Documents

Publication Publication Date Title
CN103597838B (zh) 对末位有效系数的位置进行编码和解码的方法和设备
JP7181126B2 (ja) 改善されたエントロピー符号化および復号を行う方法および装置
US10103746B2 (en) Methods and devices for coding and decoding the position of the last significant coefficient
KR101523452B1 (ko) 비디오 코딩에서 블록에 대한 스캐닝 순서에 기초하여 비디오 블록 내의 마지막 유효 계수의 포지션을 코딩
JP5733590B2 (ja) 変換係数レベルを符号化するコンテキストモデリング技法
CN102783035B (zh) 并行熵编码方法和设备
US9270988B2 (en) Method of determining binary codewords for transform coefficients
US10284851B2 (en) Method of determining binary codewords for transform coefficients
WO2011121715A1 (ja) 画像復号化方法
JP2013524679A (ja) 適応的係数スキャン順序を利用した映像の符号化方法、復号化方法及びその装置
US20120014457A1 (en) Methods and devices for data compression using context-based coding order
US20130188727A1 (en) Method of determining binary codewords for transform coefficients
US20130188729A1 (en) Method of determining binary codewords for transform coefficients
CA2780711A1 (en) Method and system to reduce modelling overhead for data compression
KR20110019140A (ko) 유연한 직교 변환에 기초한 영상 부호화, 복호화 방법 및 장치
CN104081773A (zh) 实现模块化处理的上下文建模方法和装置
JP2021513257A (ja) データ符号化及び復号化
KR20100089546A (ko) 단계적인 영상 부호화, 복호화 방법 및 장치
CN113141505A (zh) 一种视频数据编码方法以及装置

Legal Events

Date Code Title Description
C06 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