CN103563381B - 对视频数据进行上下文自适应译码 - Google Patents
对视频数据进行上下文自适应译码 Download PDFInfo
- Publication number
- CN103563381B CN103563381B CN201280026675.2A CN201280026675A CN103563381B CN 103563381 B CN103563381 B CN 103563381B CN 201280026675 A CN201280026675 A CN 201280026675A CN 103563381 B CN103563381 B CN 103563381B
- Authority
- CN
- China
- Prior art keywords
- decoding
- binary bit
- context
- bit sequence
- block
- 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.)
- Expired - Fee Related
Links
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/60—General implementation details not specific to a particular type of compression
- H03M7/6017—Methods or arrangements to increase the throughput
- H03M7/6023—Parallelization
-
- 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
- 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/60—General implementation details not specific to a particular type of compression
- H03M7/6011—Encoder aspects
-
- 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/189—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
- H04N19/196—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
-
- 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/42—Methods 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/436—Methods 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
-
- 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
- H04N19/463—Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
在一实例中,本发明的方面涉及一种对数据进行译码的方法,其包含根据上下文自适应熵译码过程对二进位序列进行译码。用于对所述二进位序列的至少一个二进位进行译码的当前译码循环包含:确定所述二进位的上下文;基于所述上下文选择概率模型,其中所述概率模型是基于以所述上下文进行译码且在所述当前译码循环之前至少两个译码循环进行译码的先前二进位的值而更新;应用所述概率模型对所述二进位进行译码;以及基于所述二进位的值更新所述概率模型。
Description
本申请案主张2011年6月3日申请的第61/493,371号美国临时专利申请案、2011年6月30日申请的第61/503,537号美国临时专利申请案、2011年10月28日申请的第61/552,921号美国临时专利申请案、2011年11月1日申请的第61/554,408号美国临时专利申请案,以及2011年11月20日申请的第61/561,921号美国临时专利申请案的优先权,所有临时专利申请案的全部内容全文以引用的方式并入本文中。
技术领域
本发明涉及视频译码,且更特定来说涉及对视频译码过程产生的残余变换系数的块进行译码。
背景技术
数字视频能力可并入到广泛装置中,包含数字电视、数字直播系统、无线广播系统、个人数字助理(PDA)、膝上型或台式计算机、平板计算机、电子书阅读器、数码相机、数字记录装置、数字媒体播放器、视频游戏装置、视频游戏控制台、蜂窝式或卫星无线电电话、所谓的“智能电话”、视频电信会议装置、视频串流装置等。数字视频装置实施视频压缩技术,例如MPEG-2、MPEG-4、ITU-T H.263、ITU-T H.264/MPEG-4第10部分高级视频译码(AVC)、当前开发中的高效视频译码(HEVC)标准所界定的标准以及此类标准的扩展中描述的技术。视频装置可通过实施此类视频压缩技术更有效地发射、接收、编码、解码和/或存储数字视频信息。
视频压缩技术执行空间(图片内)预测和/或时间(图片间)预测以减少或移除视频序列中固有的冗余。对于基于块的视频译码,视频切片(即,视频帧或视频帧的一部分)可分割为视频块,其也可称为树块、译码单元(CU)和/或译码节点。图片的经帧内译码(I)切片中的视频块是使用相对于同一图片中的相邻块中的参考样本的空间预测来编码。图片的经帧间译码(P或B)切片中的视频块可使用相对于同一图片中的相邻块中的参考样本的空间预测,或相对于其它参考图片中的参考样本的时间预测。图片可称为帧,且参考图片可称为参考帧。
空间或时间预测结果产生待译码的块的预测块。残余数据表示待译码的原始块与预测块之间的像素差。帧间译码块根据指向形成预测块的参考样本的块的运动向量以及指示经译码块与预测块之间的差的残余数据而编码。帧内译码块根据帧内译码模式和残余数据而编码。为了进一步压缩,残余数据可从像素域变换到变换域,从而产生残余变换系数,残余变换系数接着可量化。初始布置在二维阵列中的经量化变换系数可经扫描以便产生变换系数的一维向量,且可应用熵译码来实现更多压缩。
发明内容
本发明的技术大体涉及对视频数据进行熵译码。举例来说,在熵译码期间,视频译码器可将变换系数转换为二进制形式,借此产生一个或一个以上位或“二进位(bin)”。视频译码器可接着使用针对每一二进位的概率估计值对视频数据的块的每一二进位进行译码,所述概率估计值可指示二进位具有给定二进制值的可能性。概率估计值可包含在概率模型(也称为“上下文模型”)内。视频译码器可通过确定二进位的上下文而选择上下文模型。语法元素的二进位的上下文可包含先前经译码语法元素的相关二进位的值。在对二进位译码之后,视频译码器可基于二进位的值更新上下文模型以反映最当前概率估计值。
本发明的某些技术大体涉及熵译码期间的概率更新。即,在一些实例中,视频译码器可在对每一二进位译码之后更新概率模型。在此类实例中,概率可相对准确,然而,可存在与更新过程相关联的等待时间。在其它实例中,视频译码器可存储与二进位值相关联的统计,且在对完整视频数据块译码之后更新概率模型。此类技术可减少等待时间,然而,性能也可能归因于块的译码期间较不准确的概率而衰减。本发明的方面涉及增加概率更新过程的粒度使得概率模型可比完整视频数据块之后更频繁地更新,但在每一二进位之后不更新概率模型。举例来说,本发明的方面涉及在对与视频数据块相关联的预定变换系数子集译码之后更新概率。以此方式,本发明的技术可在译码性能与译码速度之间找到平衡,且可允许对子集的二进位的并行处理。
本发明的某些方面还涉及用于并行化熵译码的其它技术。举例来说,本发明的技术还包含使用在对一个或一个以上先前二进位译码之前更新的概率模型对数据的二进位译码。即,概率模型可在对当前二进位译码之前的至少两个译码迭代或循环中更新。因此,本发明的技术可避免当使用同一模型对多个连续二进位译码时由于在使用模型对二进位译码之后更新概率模型引起的延迟。在一些实例中,此类技术可应用于并行地对视频数据块的二进位进行译码。
在一实例中,本发明的方面涉及一种对数据译码的方法,其包含根据上下文自适应熵译码过程对二进位序列译码。用于对二进位序列的至少一个二进位译码的当前译码循环包含:确定二进位的上下文;基于所述上下文选择概率模型,其中所述概率模型基于以所述上下文译码且在所述当前译码循环之前至少两个译码循环译码的先前二进位的值而更新;应用所述概率模型对所述二进位进行译码;以及基于所述二进位的值更新所述概率模型。
在另一实例中,本发明的方面涉及一种用于对数据译码的设备,其包含经配置以根据上下文自适应熵译码过程对二进位序列译码的一个或一个以上处理器。用于对二进位序列的至少一个二进位译码的当前译码循环包含:确定二进位的上下文;基于所述上下文选择概率模型,其中所述概率模型基于以所述上下文译码且在所述当前译码循环之前至少两个译码循环译码的先前二进位的值而更新;应用所述概率模型对所述二进位进行译码;以及基于所述二进位的值更新所述概率模型。
在另一实例中,本发明的方面涉及一种用于对数据译码的设备,其包含用于根据上下文自适应熵译码过程对二进位序列译码的装置。用于对二进位序列的至少一个二进位译码的当前译码循环包含:确定二进位的上下文;基于所述上下文选择概率模型,其中所述概率模型基于以所述上下文译码且在所述当前译码循环之前至少两个译码循环译码的先前二进位的值而更新;应用所述概率模型对所述二进位进行译码;以及基于所述二进位的值更新所述概率模型。
在另一实例中,本发明的方面涉及一种上面存储有指令的计算机可读存储媒体,所述指令当执行时致使一个或一个以上处理器根据上下文自适应熵译码过程对二进位序列译码。用于对二进位序列的至少一个二进位译码的当前译码循环包含:确定二进位的上下文;基于所述上下文选择概率模型,其中所述概率模型基于以所述上下文译码且在所述当前译码循环之前至少两个译码循环译码的先前二进位的值而更新;应用所述概率模型对所述二进位进行译码;以及基于所述二进位的值更新所述概率模型。
在另一实例中,本发明的方面涉及一种在视频译码过程中对与残余视频数据相关联的变换系数译码的方法,其包含对变换系数的多个子集的第一子集译码,其中对第一子集译码包括:使用一个或一个以上概率模型对第一子集进行上下文自适应译码;在对变换系数的第一子集译码的同时存储与所述一个或一个以上概率模型相关联的概率模型统计;在对第一子集的最终系数译码之后基于所存储的概率模型统计更新概率模型;以及使用经更新的一个或一个以上概率模型对变换系数的第二子集译码。
在另一实例中,本发明的方面涉及一种用于对与残余视频数据相关联的变换系数译码的设备,其包含经配置以对变换系数的多个子集的第一子集译码的一个或一个以上处理器,其中对第一子集译码包括:使用一个或一个以上概率模型对第一子集进行上下文自适应译码;在对变换系数的第一子集译码的同时存储与所述一个或一个以上概率模型相关联的概率模型统计;在对第一子集的最终系数译码之后基于所存储的概率模型统计更新概率模型;以及使用经更新的一个或一个以上概率模型对变换系数的第二子集译码。
本发明的一个或一个以上方面的细节在附图及以下描述中陈述。从描述和图式并从权利要求书将明白本发明中所描述的技术的其它特征、目的和优点。
附图说明
图1是说明可利用本发明的技术的实例视频编码和解码系统的框图。
图2是说明可实施本发明的技术的任一者或全部的视频编码器的实例的框图。
图3是说明对经编码视频序列进行解码的视频解码器的实例的框图。
图4A和4B是说明实例四叉树和对应的最大译码单元(LCU)的概念图。
图5A是说明用于扫描视频数据块的变换系数的实例前向对角扫描模式的概念图。
图5B是说明用于扫描视频数据块的变换系数的实例逆向对角扫描模式的概念图。
图6A是说明将变换系数块划分为子集的实例概念图。
图6B是说明将变换系数块划分为子集的另一实例概念图。
图7A是说明将与视频数据块相关联的变换系数块以子块的形式划分为子集的实例概念图。
图7B是说明将与视频数据块相关联的变换系数块以子块的形式划分为子集的另一实例概念图。
图8是说明使用上下文自适应译码技术对有效性图译码的实例的流程图。
图9是说明其中可在对自子集译码之后更新上下文的经修改上下文自适应译码过程的实例的流程图。
图10是说明对视频数据块进行熵译码的实例技术的流程图。
图11是说明使用延迟状态更新上下文自适应熵译码对二进位序列译码的实例的概念图。
图12说明使用延迟状态更新上下文自适应熵译码对二进位序列译码的实例技术。
具体实施方式
视频译码装置可试图通过利用空间和时间冗余压缩视频数据。举例来说,视频编码器可通过相对于相邻的先前经译码块对块译码而利用空间冗余。同样,视频编码器可通过相对于先前经译码帧的数据对块译码而利用时间冗余。特定来说,视频编码器可从空间相邻者的数据或从先前经译码帧的数据预测当前块。视频编码器可接着将块的残余计算为块的实际像素值与块的所预测像素值之间的差。因此,块的残余可包含像素(或空间)域中的逐像素差值。
视频编码器可接着向残余的值应用变换以将像素值的能量压缩为频域中相对小数目的变换系数。视频编码器可接着量化所述变换系数。视频编码器可扫描经量化的变换系数以将经量化变换系数的二维矩阵转换为包含经量化变换系数的一维向量。扫描系数的过程有时称为使系数串行化。
视频编码器可接着应用熵译码过程对经扫描系数进行熵编码。实例熵译码过程可包含例如上下文自适应可变长度译码(CAVLC)、上下文自适应二进制算术译码(CABAC)、基于语法的上下文自适应二进制算术译码(SBAC)、概率间隔分割熵(PIPE)译码,或其它熵编码方法。视频编码器还可对与经编码视频数据相关联的语法元素进行熵编码以供由视频解码器用来解码视频数据。
视频解码器可执行与视频编码器执行的编码技术大体互逆的技术。尽管大体互逆,但视频解码器可在一些例子中执行与视频编码器执行的技术类似的技术。视频解码器还可依赖于包含相对于视频编码器描述的数据的所接收位流中含有的语法元素或其它数据。
相对于(CABAC)作为一实例,视频译码器(视频编码器和/或视频解码器)可选择概率模型或“上下文模型”,其对上下文操作以对与视频数据块相关联的符号译码。举例来说,在编码器处,可通过使用概率模型对目标符号译码。在解码器处,可通过使用概率模型剖析目标符号。上下文可关于例如对于与当前正译码符号相邻的符号,值为零还是非零。
根据一些实例,视频块中有效系数(即,非零变换系数)的位置可在变换系数的值之前编码,所述变换系数的值可称为变换系数的“层级”。对有效系数的位置译码的过程可称为有效性图译码。有效性图(SM)包含指示有效系数的位置的二进制值的二维阵列。
举例来说,视频数据块的SM可包含1和0的二维阵列,其中1指示块内有效变换系数的位置,且0指示块内非有效(零值)变换系数的位置。1和0称为“有效系数旗标”。另外,在一些实例中,SM可包含1和0的另一2-D阵列,其中1指示根据与块相关联的扫描次序块内的最后有效系数的位置,且0指示块内所有其它系数的位置。在此情况下,1和0称为“最后有效系数旗标”。在其它实例中,不使用此类最后有效系数旗标。事实上,块中的最后有效系数可首先译码,随后发送SM的剩余部分。在任一情况下,视频数据块的SM译码可消耗用于对块译码的视频位速率的显著百分比。
在对SM译码之后,视频译码器可对每一变换系数的层级进行熵译码。举例来说,视频译码器可将每一非零变换系数的绝对值转换为二进制形式。以此方式,每一非零变换系数可例如使用包括一个或一个以上位或“二进位”的一元代码来“二进制化”。另外,可包含若干其它二进制化语法元素以允许视频解码器解码视频数据。
视频译码器可使用针对每一二进位的概率估计值对视频数据块的每一二进位(不论对应于块的变换系数还是语法信息)译码。概率估计值可指示二进位具有给定二进制值(例如,“0”或“1”)的可能性。概率估计值可包含在概率模型(也称为“上下文模型”)内。视频译码器可通过确定二进位的上下文而选择概率模型。语法元素的二进位的上下文可包含先前经译码相邻语法元素的相关二进位的值。
作为一个实例,块的每一有效系数旗标的上下文包含块的类型(例如,块大小),以及根据与块相关联的扫描次序对应于块内的相应旗标的系数的位置。作为另一实例,块的二进制化残余变换系数绝对值的每一二进位的上下文包含表示绝对值的一元码字内的二进位的位置,以及块的先前经译码系数的值。在其它实例中,语法元素的二进位的上下文(例如,经译码块样式,或“CBP”)包含先前经译码相邻语法元素的相关二进位的值,例如在当前语法元素的顶部上和左侧。在任一情况下,针对每一上下文界定不同概率模型。在对二进位译码之后,基于二进位的值进一步更新概率模型以反映最当前概率估计值。
与视频数据块相关联的二进位可在一个或一个以上译码“遍次”中译码。举例来说,在第一遍次期间,视频译码器可对SM进行熵译码。在第二遍次期间,视频译码器可对变换系数层级的第一二进位进行熵译码。视频译码器可继续执行译码遍次直到与块的变换系数相关联的所有信息经译码为止。在一些实例中,视频译码器可使用上下文自适应和非上下文自适应译码的组合对视频数据块的二进位译码。举例来说,对于一个或一个以上遍次,视频译码器可使用绕过模式以绕过或省略常规算术译码过程。在此类例子中,固定相等概率模型可用于对经绕过译码二进位译码。经绕过译码二进位不包含上下文或概率更新。
当执行上下文自适应译码时,在一些例子中,可存在归因于多个反馈回路的相对高的串行相依性。举例来说,指示用于对二进位译码的特定概率模型的上下文可受先前经译码二进位(例如,先前经译码语法元素的相关二进位)的值影响。另外,用于对二进位译码的概率模型还可受先前经译码二进位的值影响。即,概率模型可维持为有限状态机中的状态。每一特定状态可对应于特定概率值。对应于概率模型的更新的下一状态可取决于当前二进位(例如,当前正译码的二进位)的值。
因此,概率模型内的概率估计值可受先前经译码二进位的值影响,因为所述值至少部分指示二进位具有给定值的概率。因此,以串行方式,例如以逐二进位为基础执行上下文自适应译码(例如,CABAC)。举例来说,在对确定特定上下文所针对的当前二进位译码之后,对应于所述上下文的概率模型必须在对确定同一上下文所针对的且因此对应于同一概率模型的下一二进位译码之前更新。
作为一个实例,可使用同一概率模型(例如,概率模型A)连续对视频数据块的二进位序列(例如,bin(0)、bin(1)、...bin(n))译码。换句话说,针对二进位导出的(例如,使用上下文索引ctx(0)、ctx(1)、...ctx(n)指示的)上下文可各自对应于用于对相应二进位译码的同一概率模型。在此实例中,在对二进位的给定一者译码之后,必须基于二进位的值更新概率模型,随后可使用所述概率模型对任何后续二进位译码。更新概率模型允许所述模型反映使用具有给定值的模型译码的二进位的最当前概率。如此,使用在完成如上所述的块的先前译码循环(即,先前二进位的译码)之后更新的概率模型对视频数据块的特定二进位译码可产生连续译码循环之间的延迟。特定来说,所述概率模型可能不能容易地用于在对先前二进位译码之后立即对特定二进位译码。因此,二进位序列的译码可不如使用其它方法对序列译码那样成流线型。在这些情况下,译码效率可受到损害。
另外,如上所述,特定概率模型可维持为有限状态机中的状态,其中每一特定状态对应于特定概率值。对应于概率模型的更新的下一状态可取决于当前二进位的值。此类反馈回路(其可称为状态更新)可引起计算瓶颈。举例来说,归因于反馈回路中的相依性,可能难以增加处理量。即,可直到来自先前二进位的概率模型已更新后才处理一个二进位。在一些实例中,可以高频率连续(逐二进位)调用同一上下文索引。在一实例中,可表示译码器编码的总二进位的25%到35%的有效性旗标译码的上下文可被连续调用。重复调用同一上下文且等待更新每一二进位之后的模型可引起整个译码器的处理量的瓶颈。
为避免上文描述的上下文更新瓶颈,在一些实例中,视频译码器可存储某些统计且在对整个视频数据块译码之后更新一个或一个以上上下文。举例来说,代替于更新用于对每一二进位译码的上下文,视频译码器可将与每一上下文相关联的概率的概率统计存储到视频数据块的存储器。因此,用于对块的每一二进位译码的概率不变,且不存在对块回路内的经更新概率的相依性。在块的译码之后,在块译码期间曾更新的所存储概率(例如,上下文的状态)经设定为下一块的当前概率。以此方式,代替于在每一二进制之后更新上下文概率,在当前块的结尾处将当前块的二进位的译码中曾使用的上下文的概率模型更新一次。然而,总体译码性能可衰减,因为概率不是逐二进位更新且因此可能不太准确。
本发明的方面涉及增加概率更新过程的粒度使得概率模型可比完整视频数据块之后更频繁地更新,但不更新每一二进位之后的概率模型。举例来说,本发明的方面涉及在对与视频数据块相关联的变换系数的预定子集译码之后更新概率。以此方式,本发明的技术可在译码性能与译码速度之间找到平衡,且可允许对子集的二进位的并行处理。
在一实例中,视频译码器可将与视频数据块相关联的变换系数划分为多个子集。在确定子集之后,视频译码器可执行每一子集的上下文自适应译码(例如,比如CABAC、PIPE,或另一译码方法)。即,举例来说,视频译码器可执行用于对第一子集的变换系数的有效性图、系数层级和系数正负号进行译码的译码遍次。视频译码器可接着移动到下一子集且重复译码过程。视频译码器可继续对块的每一子集译码直到整个块已译码为止。
根据本发明的方面,更新与上下文相关联的概率可与每一子集的译码联系。举例来说,视频译码器可收集并存储与在对变换系数的子集译码的同时应用的概率模型相关联的统计。在对子集译码之后,视频译码器可使用所存储的概率统计更新在子集的译码期间使用的每一上下文的概率模型。视频译码器可使用经更新的概率来对变换系数的下一子集译码。以此方式,视频译码器可在不在子集的译码期间更新概率的情况下对每一子集的变换系数译码。
视频译码器可以多种方式确定子集。在一个实例中,子集可包含呈扫描次序(例如,视频数据块的变换系数串行化的次序)的预定数目的二进位。在出于说明的目的的实例中,对于变换系数的8x8块(例如,总共64个系数),第一子集可包含呈扫描次序的第一16个系数,第二子集可包含呈扫描次序的第二16个系数,第三子集可包含呈扫描次序的第三16个系数,且第四子集可包含呈扫描次序的块的最终16个系数。视频译码器可以此方式确定子集而不管扫描方向/次序如何(例如,水平、垂直、对角、锯齿状、自适应等)。在此实例中,根据本发明的方面,视频译码器可在以扫描次序对每一子集的所有二进位译码之后更新概率。
在另一实例中,视频译码器可通过将变换系数块划分为多个子块而确定子集。在出于说明的目的的实例中,视频译码器可将变换系数的8x8块(例如,总共64个系数)划分为四个4x4子块。视频译码器可使用特定扫描次序(例如,水平、垂直、对角、锯齿状、自适应等)扫描子块的每一者。扫描次序可针对子块的每一者相同或不同。在此实例中,视频译码器可在对每一子块的所有二进位译码之后更新概率。
代替于等待更新概率直到特定子集的所有二进位已经译码为止,根据本发明的方面,在另一实例中,视频译码器可在每一子集的每一译码遍次之后更新概率。在此实例中,视频译码器可使子集内的一个遍次的概率模型的更新过程与所述子集的其它遍次并行化。举例来说,视频译码器可更新变换系数的子集的有效性信息的二进位的概率,同时在子集的另一译码遍次期间对系数层级的二进位1进行译码。在此实例中,一个遍次的上下文不能用于对子集内的其它遍次译码。
在其它实例中,视频译码器可在对子集的预定数目的二进位进行译码之后更新概率。举例来说,视频译码器可在对变换系数层级进行译码之前对有效性图进行译码。在此实例中,视频译码器可对有效性图进行译码且在对有效性图进行译码之后更新概率。视频译码器可接着对与变换系数相关联的剩余信息(例如,正负号、层级等)进行译码。在其中视频译码器对last_x和last_y语法元素两者进行译码的实例中,视频译码器可在对最后有效系数的last_x和last_y两者进行译码之后更新概率,或视频编码器可在对last_x和last_y的每一者进行译码之后更新概率。
可应用本发明的技术来增加并行(例如,相对于在每个二进位之后更新上下文)处理二进位同时还维持译码性能(例如,相对于仅在每个完整变换系数块之后更新上下文)的能力。举例来说,本发明的技术可增强译码并行化,因为可并行地对子集的一个以上二进位进行译码。本发明的技术还可促进译码效率,因为每一子集之后更新的概率对于对块的某些变换系数进行译码可比块的结尾处更新的概率更准确。
本发明的某些方面还涉及用于并行化熵译码的技术。举例来说,本发明的技术包含使用在对先前二进位进行译码之前更新的概率模型对数据的二进位进行译码。即,可在对当前二进位进行译码之前至少两个译码迭代或循环更新概率模型。因此,本发明的技术可避免当使用同一模型对多个连续二进位进行译码时由于在使用所述模型对二进位进行译码之后更新概率模型而引起的延迟。在一些实例中,可应用此类技术并行地对视频数据块的二进位进行译码。举例来说,本发明的技术可避免与例如在对完整变换系数块进行译码之后较不频繁地更新概率模型相关联的性能降级,同时仍维持概率更新以实现相对准确的概率。
在出于说明的目的的实例中,假定通过执行上下文自适应熵译码过程(例如,CABAC过程)连续地对视频数据块的二进位序列(例如,bin(0)、bin(1)、...、bin(n-1)和bin(n))进行译码。在此实例中,对应于针对二进位的任一者确定的上下文的概率模型包含在上下文缓冲器或“ctxBuffer”中。假设对应于针对bin(n)确定的上下文的概率模型包含在ctxBuffer(n)中。概率模型可由初始状态界定,且如先前描述,可受先前经译码二进位(即,bin(0)、bin(1)、...、bin(n-1))影响。
根据本发明的方面,视频译码器可使用包含在ctxBuffer(n-K)中的概率模型对bin(n)进行译码。索引“K”可等于任何正的非零整数值。举例来说,对于“K”值“1”,上下文缓冲器ctxBuffer(n-1)包含在当前译码循环之前两个译码循环更新的概率模型。特定来说,包含在ctxBuffer(n-1)中的概率模型是在对bin(n-2)进行译码之后更新的包含在ctxBuffer(n-2)中的概率模型。以此方式更新概率模型可称为延迟状态更新,因为在概率更新之间引入延迟的一个或一个以上循环。
在如上所述的实例中,虽然包含在ctxBuffer(n-1)中的概率模型由于更新的缘故不可容易地用于对bin(n-1)进行译码,但所述模型可用于晚一个译码循环对bin(n)进行译码(例如,在bin(n)经译码时已完成更新)。如此,译码器不必要等到基于在先前译码循环期间译码的bin(n-1)进一步更新包含在ctxBuffer(n-1)中的概率模型才对bin(n)进行译码。因此,本发明的方面可避免与概率更新相关联的延迟且可允许并行地对一个以上二进位进行译码。
在一些实例中,初始概率模型用以对序列的第一和第二二进位进行译码。举例来说,可使用ctxBuffer(0)对给定序列的bin(0)和bin(1)两者进行译码。可以此方式对Bin(0)进行译码,因为不存在先前更新的概率模型。可以此方式对Bin(1)进行译码以避免上文描述的概率更新延迟,这可由于基于bin(0)的值更新包含在ctxBuffer(0)中的概率模型而引起。
另外,在其中使用上下文分割的实例中,可针对每一上下文分区应用本发明的技术。举例来说,在语法分割中,二进位是基于语法元素分组且放置在不同分区中,所述不同分区接着经并行处理(例如,如V.Sze和A.P.Chandrakasan的“使用语法元素分割的高处理量CAB AC算法(A high throughput CAB AC algorithm u sing s yntax elementpartitioning)”中描述,IEEE国际图像处理会议,第773-776页,2009)。在此情况下,将延迟状态更新的概念应用于每一分区。举例来说,如果一个分区含有用于残余变换系数译码的所有上下文且另一分区含有剩余上下文,那么在此实例中经延迟上下文更新可单独应用于每一分区。
本发明的关于延迟状态更新(如上所述)的方面可应用于一种或一种以上类型的二进位。举例来说,延迟状态更新技术可仅针对用于对变换系数层级进行译码的上下文应用。在另一实例中,延迟状态更新技术可仅用于有效性图译码。
因此,本发明的技术可避免当使用概率模型对多个连续二进位进行译码时由于在使用所述模型对二进位进行译码之后更新所述模型而引起的延迟。另外,本发明的技术可避免与例如在对变换系数的完整块进行译码之后较不频繁地更新概率模型相关联的性能降级。在一些实例中,本发明中描述的技术可独立使用或可以任何组合一起使用。
虽然上文相对于二进制视频译码描述,但应理解,延迟状态更新技术可通常应用于其它数据的其它算术译码。
举例来说,在其中两个以上符号包含在概率模型中的例子中,执行简单状态更新可能不可行。因此,代替于执行延迟状态更新,本发明的方面包含执行延迟概率更新。
作为一实例,出于说明的目的,假定正在编码或解码符号序列(例如,symbol(0)、symbol(1)、...、symbol(n)等)。所述符号可由视频数据、音频数据或任何其它数据产生。此外,假定每一符号可采取A、B、C和D表示的四个值。另外,假定不同上下文模型可与每一符号相关联,但出于说明的目的,所有符号使用同一上下文。另外,假定针对每一上下文维持单独概率模型(例如,针对A、B、C和D的概率)。通常,在对symbol(0)进行译码之后,context(0)的概率模型将经更新以考虑到符号symbol(0)的实际值。然而,根据本发明的方面,可延迟概率模型更新过程,直到正对一个或一个以上未来符号进行译码为止。举例来说,对于延迟1,经更新模型(例如,对符号symbol(0)进行译码之后)可用于对symbol(2)进行译码。
因此,虽然可相对于二进制译码(且更特定来说,视频数据的CABAC译码)描述某些实例,但本发明的技术更通常适用于算术译码。即,上文描述的延迟状态和/或概率更新技术可通常应用于m元算术译码方案,其可或可不为上下文自适应的。
图1是可经配置以利用本发明中描述的用于上下文自适应译码的技术的实例视频编码和解码系统10的框图。如图1的实例中所示,系统10包含源装置12,其产生经编码视频以供目的地装置14解码。源装置12可经由通信信道16将经编码视频发射到目的地装置14,或可将经编码视频存储在存储媒体34或文件服务器36上,使得经编码视频可视需要由目的地装置14存取。源装置12和目的地装置14可包括广泛种类的装置的任一者,包含台式计算机、笔记本(即,膝上型)计算机、平板计算机、机顶盒、电话手持机(例如,所谓的智能电话)、电视机、相机、显示装置、数字媒体播放器、视频游戏控制台等。
在许多情况下,此类装置可经装备用于无线通信。因此,通信信道16可包括无线信道、有线信道,或适于经编码视频数据的发射的无线与有线信道的组合。举例来说,通信信道16可包括任何无线或有线通信媒体,例如射频(RF)频谱或一个或一个以上物理传输线路,或无线与有线媒体的任何组合。通信信道16可形成例如局域网、广域网或例如因特网的全球网络的基于包的网络的部分。通信信道16一股表示用于将视频数据从源装置12发射到目的地装置14的任何合适的通信媒体或不同通信媒体的集合,包含有线或无线媒体的任何合适组合。通信信道16可包含可用于促进从源装置12到目的装置14的通信的路由器、交换器、基站或任何其它设备。
本发明中描述的技术可应用于视频译码,支持多种多媒体应用的任一者,例如空中电视广播、电缆电视发射、卫星电视发射、串流视频发射(例如,经由因特网)、用于存储在数据存储媒体上的数字视频的编码、存储在数据存储媒体上的数字视频的解码,或其它应用。在一些实例中,系统10可经配置以支持单向或双向视频发射以支持例如视频串流、视频重放、视频广播和/或视频电话等应用。
如图1的实例中进一步展示,源装置12包含视频源18、视频编码器20、调制器/解调器(调制解调器)22和发射器24。在源装置12中,视频源18可包含例如视频俘获装置等源。借助实例,视频俘获装置可包含摄像机、含有先前俘获的视频的视频档案、用以接收来自视频内容提供者的视频的视频馈送接口,和/或用于产生计算机图形数据作为源视频的计算机图形系统中的一者或一者以上。作为一个实例,如果视频源18是摄像机,那么源装置12和目的地装置14可形成所谓的相机电话或视频电话。然而,本发明的技术不一定限于无线应用或设定,且可应用于包含视频编码和/或解码能力的非无线装置。源装置12和目的地装置16仅为可支持本文描述的技术的译码装置的实例。
所俘获、预先俘获或计算机产生的视频可由视频编码器20编码。经编码视频信息可由调制解调器22根据通信标准(例如,无线通信协议)调制且经由发射器24发射到目的地装置14。调制解调器22可包含各种混频器、滤波器、放大器或经设计以用于信号调制的其它组件。发射器24可包含经设计以用于发射数据的电路,包括放大器、滤波器及一个或一个以上天线。
由视频编码器20编码的所俘获、预先俘获或计算机产生的视频还可存储到存储媒体34或文件服务器36上以供稍后消耗。存储媒体34可包含蓝光光盘、DVD、CD-ROM、快闪存储器,或用于存储经编码视频的任何其它适宜的数字存储媒体。存储在存储媒体34上的经编码视频可接着由目的地装置14存取以用于解码和重放。
文件服务器36可为能够存储经编码视频且将所述经编码视频发射到目的地装置14的任何类型的服务器。实例文件服务器包含网络服务器(例如,针对网站)、FTP服务器、网络附接存储(NAS)装置、本地磁盘驱动器,或能够存储经编码视频数据且将其发射到目的地装置的任何其它类型的装置。文件服务器36可由目的地装置14经由任何标准数据连接(包含因特网连接)存取。此可包含无线信道(例如,Wi-Fi连接)、有线连接(例如,DSL、电缆调制解调器等)或适于存取存储在文件服务器上的经编码视频数据的两者的组合。来自文件服务器36的经编码视频数据的发射可为串流发射、下载发射或两者的组合。
本发明可通常提及视频编码器20向另一装置(例如,视频解码器30)“用信号发送”某些信息。然而,应理解,视频编码器20可通过使某些语法元素与视频数据的各个经编码部分相关联而用信号发送信息。即,视频编码器20可通过将某些语法元素存储到视频数据的各个经编码部分的标头而“用信号发送”数据。在一些情况下,此类语法元素可在由视频解码器30接收和解码之前进行编码和存储(例如,存储到存储媒体34或文件服务器36)。因此,术语“用信号发送”可通常指代用于解码经压缩视频数据的语法或其它数据的传送,不论此传送是实时还是在一时间跨度内近实时发生(例如,可能当在编码时将语法元素存储到媒体时发生,其可在存储到此媒体之后的任何时间由解码装置检索)。
图1的实例中的目的地装置14包含接收器26、调制解调器28、视频解码器30和显示装置32。目的地装置14的接收器26经由信道16接收信息,且调制解调器28解调所述信息以为视频解码器30产生经解调位流。经由信道16传送的信息可包含视频编码器20产生的供视频解码器30用于解码视频数据的多种语法信息。此语法还可与存储在存储媒体34或文件服务器36上的经编码视频数据一起包含。视频编码器20和视频解码器30的每一者可形成能够编码或解码视频数据的相应编码器一解码器(CODEC)的一部分。
显示装置32可与目的地装置14集成或在其外部。在一些实例中,目的地装置14可包含集成显示装置,且还经配置以与外部显示装置介接。在其它实例中,目的地装置14可为显示装置。一股来说,显示装置32向用户显示经解码视频数据,且可包括例如液晶显示器(LCD)、等离子体显示器、有机发光二极管(OLED)显示器,或另一类型的显示装置等多种显示装置的任一者。
视频编码器20和视频解码器30可根据视频压缩标准(例如,当前发展中的高效视频译码(HEVC)标准)操作,且可遵守HEVC测试模型(HM)。或者,视频编码器20和视频解码器30可根据其它专门或工业标准操作,例如ITU-T H.264标准,或称为MPEG-4,第10部分,高级视频译码(AVC),或此类标准的延伸。然而,本发明的技术不限于任何特定译码标准。其它实例包含MPEG-2和ITU-T H.263。
HEVC标准将视频数据块称为译码单元(CU)。一股来说,CU具有与根据H.264译码的宏块类似的用途,只是CU不具有大小区分。因此,CU可分裂为子CU。一股来说,本发明中对CU的提及可指代图片的最大译码单元(LCU)或LCU的子CU。举例来说,位流内的语法数据可界定LCU,其是依据像素数目的最大译码单元。LCU可分裂为子CU,且每一子CU可分裂为子CU。位流的语法数据可界定LCU可分裂的最大次数,称为最大CU深度。因此,位流还可界定最小译码单元(SCU)。
LCU可与层级四叉树数据结构相关联。一股来说,四叉树数据结构包含每CU一个节点,其中根节点对应于LCU。如果CU分裂为四个子CU,那么对应于CU的节点包含四个叶节点,其每一者对应于子CU的一者。四叉树数据结构的每一节点可提供对应CU的语法数据。举例来说,四叉树中的节点可包含分裂旗标,指示对应于节点的CU是否分裂为子CU。CU的语法元素可用递归法界定,且可取决于CU是否分裂为子CU。
未分裂的CU可包含一个或一个以上预测单元(PU)。一股来说,PU表示对应CU的全部或一部分,且包含用于检索PU的参考样本的数据。举例来说,当PU经帧内模式编码时,PU可包含描述PU的帧内预测模式的数据。作为另一实例,当PU经帧间模式编码时,PU可包含界定PU的运动向量的数据。界定运动向量的数据可描述例如运动向量的水平分量、运动向量的垂直分量、运动向量的分辨率(例如,四分之一像素精度或八分之一像素精度)、运动向量所指向的参考帧,和/或运动向量的参考列表(例如,列表0或列表1)。界定PU的CU的数据还可描述例如将CU分割为一个或一个以上PU。分割模式可依据CU未译码、经帧内预测模式编码还是经帧间预测模式编码而不同。
具有一个或一个以上PU的CU还可包含一个或一个以上变换单元(TU)。在使用PU的预测之后,视频编码器可计算CU的对应于PU的部分的残余值。残余值可经变换、量化和扫描。TU不一定限于PU的大小。因此,TU可比同一CU的对应PU大或小。在一些实例中,TU的最大大小可为对应CU的大小。本发明还使用术语“块”来指代CU、PU或TU的任一者。
如上所述,一股来说,经编码视频数据可包含预测数据和残余数据。视频编码器20可在帧内预测模式或帧间预测模式期间产生预测数据。帧内预测通常涉及相对于同一图片的相邻、先前经译码块中的参考样本预测图片的块中的像素值。帧间预测通常涉及相对于先前经译码图片的数据预测图片的块中的像素值。
在帧内或帧间预测之后,视频编码器20可计算块的残余像素值。残余值通常对应于块的预测像素值数据与块的真实像素值数据之间的差。举例来说,残余值可包含指示经译码像素与预测性像素之间的差的像素差值。在一些实例中,经译码像素可与待译码的像素块相关联,且预测性像素可与用于预测经译码块的像素的一个或一个以上块相关联。
为进一步压缩块的残余值,残余值可经变换为变换系数的集合,所述变换系数将尽可能多的数据(也称为“能量”)压紧为尽可能少的系数。变换技术可包括离散余弦变换(DCT)过程或概念上类似的过程、整数变换、小波变换,或其它类型的变换。所述变换将像素的残余值从空间域转换到变换域。变换系数对应于通常为与原始块相同大小的二维系数矩阵。换句话说,存在正好与残余数据的原始块中的像素一样多的变换系数。然而,归因于所述变换,许多变换系数可具有等于零的值。
视频编码器20可接着量化变换系数以进一步压缩视频数据。量化通常涉及将相对大范围内的值映射到相对小范围内的值,因此减少表示经量化变换系数所需的数据的量。更特定来说,可根据量化参数(QP)应用量化,量化参数可编索引到在量化期间应用于变换系数的量化器步长。
量化之后,视频编码器20可扫描变换系数,从而从包含经量化变换系数的二维矩阵产生一维向量。视频编码器20可接着对所得阵列进行熵编码以更进一步压缩数据。一股来说,熵译码包括共同压缩一连串经量化的变换系数及/或其它语法信息的一个或一个以上过程。举例来说,例如增量QP、预测向量、译码模式、滤波器、偏移或其它信息等语法元素也可包含在经熵译码位流中。经扫描系数接着连同任何语法信息一起例如经由CAVLC、CABAC、PIPE或另一熵译码过程进行熵译码。
为执行CAVLC,视频编码器20可选择待发射的符号的可变长度码。VLC中的码字可经构造使得相对较短码对应于可能性较大的符号,且较长码对应于可能性较小的符号。以此方式,VLC的使用与例如针对待发射的每一符号使用相等长度码字相比可实现位速率节省。
为执行CABAC,视频编码器20可选择上下文模型以应用于某一上下文来编码待发射的符号。所述上下文可涉及例如相邻值是否非零。视频编码器20还可对例如有效系数旗标和当执行自适应扫描时产生的最后系数旗标等语法元素进行熵编码。
一股来说,视频解码器30执行的视频解码过程可包含与视频编码器20执行的编码技术互逆的技术。尽管大体互逆,但视频解码器30可在一些例子中执行与视频编码器20执行的技术类似的技术。视频解码器30还可依赖于包含相对于视频编码器20描述的数据的所接收位流中含有的语法元素或其它数据。
根据本发明的方面,视频编码器20和/或视频解码器30可在对与视频数据块相关联的变换系数的预定子集进行译码之后更新在熵译码期间使用的概率模型。举例来说,视频编码器20和/或视频解码器30可将与视频数据块相关联的变换系数划分为多个子集。视频编码器20和/或视频解码器30可继续对块的每一子集进行译码直到整个块已经译码为止。根据本发明的方面,视频编码器20和/或视频解码器30可在对每一子集进行译码之后更新与上下文相关联的概率。举例来说,视频编码器20和/或视频解码器30可收集并存储与在对变换系数的子集进行译码的同时应用的概率模型相关联的统计。在对子集进行译码之后,视频编码器20和/或视频解码器30可使用所存储的概率统计更新在子集的译码期间使用的每一上下文的概率模型。视频编码器20和/或视频解码器30可使用经更新的概率对变换系数的下一子集进行译码。以此方式,视频编码器20和/或视频解码器30可在不在子集的译码期间更新概率的情况下对每一子集的变换系数进行译码。以此方式,本发明的技术可在译码性能与译码速度之间找到平衡,且可允许对子集的二进位的并行处理。
在其它实例中,根据本发明的方面,视频编码器20和/或视频解码器30可执行用于并行化熵译码的其它技术。举例来说,视频编码器20和/或视频解码器30可使用在对块的先前二进位进行译码之前更新的概率模型对视频数据块的二进位进行译码。即,视频编码器20和/或视频解码器30可在对当前二进位进行译码之前至少两个译码迭代或循环更新概率模型。因此,视频编码器20和/或视频解码器30可避免当使用概率模型对多个连续二进位进行译码时由于在使用所述模型对二进位进行译码之后更新所述模型而引起的延迟。
尽管图1中未展示,但在一些方面中,视频编码器20及视频解码器30可各自与音频编码器及解码器集成,且可包含适当的多路复用器一多路分用器(MUX-DEMUX)单元或其它硬件及软件,以处置对共同数据流或单独数据流中的音频与视频两者的编码。在适用的情况下,在一些实例中,MUX-DEMUX单元可遵守ITU H.223多路复用器协议,或例如用户数据报协议(UDP)等其它协议。
视频编码器20和视频解码器30各自可经实施为例如一个或一个以上微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、离散逻辑、软件、硬件、固件或其任何组合的多种合适编码器电路中的任一者。当在软件中部分实施所述技术时,装置可将软件的指令存储在适宜的非暂时性计算机可读媒体中,且使用一个或一个以上处理器执行硬件中的指令以执行本发明的技术。视频编码器20和视频解码器30的每一者可包含在一个或一个以上编码器或解码器中,其任一者可作为组合式编码器/解码器(CODEC)的一部分集成在相应装置中。
图2是说明可实施本发明的用于上下文自适应译码的技术的视频编码器20的实例的框图。应理解,图2的某些组件可出于概念的目的相对于单一组件展示和描述,但可包含一个或一个以上功能单元。另外,虽然图2的某些组件可相对于单一组件展示和描述,但此类组件可实体上包括一个或一个以上离散和/或集成单元。
如图2所示,视频编码器20接收待编码的视频图片内的当前视频块。在图2的实例中,视频编码器20包含运动补偿单元44、运动估计单元42、参考帧存储装置64、求和器50、变换单元52、量化单元54和熵编码单元56。对于视频块重构,视频编码器20还包括逆量化单元58、逆变换单元60,和求和器62。还可包含解块滤波器(图2中未展示)以将块边界滤波,以从经重构的视频移除成块性假象。在需要时,解块滤波器通常对求和器62的输出进行滤波。
在编码过程期间,视频编码器20接收待译码的视频图片或切片。图片或切片可划分为多个视频块。运动估计单元42和运动补偿单元44执行所接收视频块相对于一个或一个以上参考帧中的一个或一个以上块的帧间预测译码。即,运动估计单元42可执行所接收视频块相对于不同时间例项的一个或一个以上参考帧中的一个或一个以上块的帧间预测译码,例如使用同一视图的一个或一个以上参考帧的运动估计。另外,运动估计单元42可执行所接收视频块相对于同一时间例项的一个或一个以上参考帧中的一个或一个以上块的帧间预测译码,例如使用不同视图的一个或一个以上参考帧的运动视差。
帧内预测单元46可执行所接收视频块相对于与待译码的块相同的帧或切片中的一个或一个以上相邻块的帧内预测译码,以提供空间压缩。模式选择单元40可例如基于误差结果选择译码模式(帧内或帧间)的一者,且将所得经帧内或帧间译码块提供到求和器50以产生残余块数据,以及提供到求和器62以重构用于在参考帧中使用的经编码块。
运动估计单元42和运动补偿单元44可高度集成,但出于概念的目的单独说明。运动估计是产生估计视频块的运动的运动向量的过程。运动向量(例如)可指示预测参考帧(或其它经译码单元)内的预测块相对于当前帧(或其它经译码单元)内正被译码的当前块的位移。预测块是经发现在像素差异方面密切地匹配待译码的块的块,其可通过绝对差总和(SAD)、平方差总和(SSD)或其它差异量度来确定。运动向量还可指示宏块的分区的位移。运动补偿可涉及基于运动估计单元42确定的运动向量(或位移向量)取得或产生预测块。再次,在一些实例中,运动估计单元42和运动补偿单元44可功能上集成。
运动估计单元42可通过将视频块与参考帧存储装置64中的参考帧的视频块进行比较来计算经帧间译码图片的视频块的运动向量。运动补偿单元44还可内插参考帧(例如,I帧或P帧)的子整数像素。ITU-T H.264标准指代参考帧的“列表”,例如列表0和列表1。列表0包含具有早于当前图片的显示次序的参考帧,而列表1包含具有迟于当前图片的显示次序的参考帧。在其它译码方案中,可维持单一列表。
运动估计单元42将来自参考帧存储装置64的一个或一个以上参考帧的块与当前图片(例如,P图片或B图片)的待编码的块进行比较。当参考帧存储装置64中的参考帧包含子整数像素的值时,由运动估计单元42计算的运动向量可指代参考帧的子整数像素位置。运动估计单元42将所计算的运动向量发送到熵编码单元56和运动补偿单元44。由运动向量识别的参考帧块可称作预测块。运动补偿单元44计算参考帧的预测块的残余误差值。
变换单元52将例如离散余弦变换(DCT)、整数变换或概念上类似的变换等变换应用于残余块,从而产生包括残余变换系数值的视频块。变换单元52可执行概念上类似于DCT的其它变换,例如由H.264标准界定的变换。也可使用小波变换、整数变换、子带变换或其它类型的变换。在任何状况下,变换单元52均将变换应用于残余块,从而产生残余变换系数的块。变换单元52可将残余信息从像素值域转换到例如频域等变换域。
量化单元54量化残余变换系数以进一步减小位速率。量化过程可减少与系数中的一些或全部相关联的位深度。量化的程度可通过调整量化参数来修改。举例来说,量化通常涉及将相对大范围内的值映射到相对小范围内的值,因此减少表示经量化变换系数所需的数据的量。视频编码器可通过根据预定义算法应用量化参数(QP)而量化变换系数。视频编码器可通过调整QP修改应用于变换系数值的量化的程度。
量化之后,熵编码单元56对经量化变换系数进行扫描和熵译码。熵编码单元56可执行CAVLC、CABAC、PIPE或另一熵译码技术。熵编码单元56可在执行熵译码时执行本发明的技术的任一者。
举例来说,根据本发明的方面,在此实例中,熵编码单元56可在对与视频数据块相关联的变换系数的预定子集进行译码之后更新在熵译码期间使用的概率模型。举例来说,熵编码单元56可将与视频数据块相关联的变换系数划分为多个子集。熵编码单元56可继续对块的每一子集进行译码直到整个块已经译码为止。根据本发明的方面,熵编码单元56可在对每一子集进行译码之后更新与上下文相关联的概率。举例来说,熵编码单元56可收集并存储与在对变换系数的子集进行译码的同时应用的概率模型相关联的统计。在对子集进行译码之后,熵编码单元56可使用所存储的概率统计更新在子集的译码期间使用的每一上下文的概率模型。熵编码单元56可使用经更新的概率来对变换系数的下一子集进行译码。以此方式,熵编码单元56可在不在子集的译码期间更新概率的情况下对每一子集的变换系数进行译码。以此方式,本发明的技术可在译码性能与译码速度之间找到平衡,且可允许对子集的二进位的并行处理。
另外或作为替代,根据本发明的方面,熵编码单元56可执行用于并行化熵译码的其它技术。举例来说,熵编码单元56可使用在对块的先前二进位进行译码之前更新的概率模型对视频数据块的二进位进行译码。即,熵编码单元56可在对当前二进位进行译码之前至少两个译码迭代或循环更新概率模型。因此,熵编码单元56可避免当使用概率模型对多个连续二进位进行译码时由于在使用所述模型对二进位进行译码之后更新所述模型而引起的延迟。
在一些情况下,熵编码单元56或视频编码器20的另一单元还可经配置以除熵译码外还执行其它译码功能。举例来说,熵编码单元56可经配置以确定GU和/或PU的经译码块样式(CBP)值。并且,在一些情况下,熵编码单元56可执行宏块或其分区中的系数的延行长度译码。熵编码单元56还可以适当语法元素构建标头信息以在经编码视频位流中发射。
逆量化单元58和逆变换单元60分别应用逆量化和逆变换以在像素域中重构残余块,例如以供稍后用作参考块。运动补偿单元44可通过将残余块加到参考帧存储装置64的帧中的一者的预测块来计算参考块。运动补偿单元44还可将一个或一个以上内插滤波器应用于经重构残余块以计算子整数像素值用于在运动估计中使用。加法器62将经重构残余块添加到由运动补偿单元44所产生的经运动补偿预测块以产生经重构视频块以供存储于参考帧存储装置64中。经重构的视频块可由运动估计单元42和运动补偿单元44用作用于对后续视频帧中的块进行帧间译码的参考块。
图3是说明对经编码视频序列进行解码的视频解码器30的实例的框图。在图3的实例中,视频解码器30包含熵解码单元130、运动补偿单元132、帧内预测单元134、逆量化单元136、逆变换单元138、参考帧存储装置142和求和器140。
熵解码单元130可对所接收位流进行熵解码。举例来说,熵解码单元130可接收串行化变换系数且对变换系数进行逆扫描以产生变换系数的二维阵列。熵解码单元130可实施本发明的技术的任一者。
举例来说,根据本发明的方面,熵解码单元130可在对与视频数据块相关联的变换系数的预定子集进行解码之后更新在熵解码期间使用的概率模型。举例来说,熵解码单元130可将与视频数据块相关联的变换系数划分为多个子集。熵解码单元130可继续对块的每一子集进行解码直到整个块已经解码为止。根据本发明的方面,熵解码单元130可在对每一子集进行解码之后更新与上下文相关联的概率。举例来说,熵解码单元130可收集并存储与在对变换系数的子集进行解码的同时应用的概率模型相关联的统计。在对子集进行解码之后,熵解码单元130可使用所存储的概率统计更新在子集的解码期间使用的每一上下文的概率模型。熵解码单元130可使用经更新的概率来对变换系数的下一子集进行解码。以此方式,熵解码单元130可在不在子集的解码期间更新概率的情况下对每一子集的变换系数进行解码。以此方式,本发明的技术可在译码性能与解码速度之间找到平衡,且可允许对子集的二进位的并行处理。
另外或作为替代,根据本发明的方面,熵解码单元130可执行用于并行化熵译码的其它技术。举例来说,熵解码单元130可使用在对块的先前二进位进行译码之前更新的概率模型对视频数据块的二进位进行解码。即,熵解码单元130可在对当前二进位进行解码之前至少两个译码迭代或循环更新概率模型。因此,熵解码单元130可避免当使用所述模型对多个连续二进位进行解码时由于在使用概率模型对二进位进行解码之后更新所述模型而引起的延迟。
运动补偿单元132可基于从熵解码单元130接收的运动向量产生预测数据。运动补偿单元132可使用在位流中所接收的运动向量来识别参考帧存储装置142中的参考帧中的预测块。帧内预测单元134可使用在位流中所接收的帧内预测模式以从空间上邻近的块形成预测块。
逆量化单元136对位流中提供的且由熵解码单元130解码的经量化块系数进行逆量化(即,解量化)。根据本发明的一些方面,逆量化单元136可经配置以以与上文相对于图2的实例中展示的视频编码器20描述的量化单元54的方式大体互逆的方式操作。
逆变换单元158将例如逆DCT、逆整数变换或概念上类似的逆变换过程等逆变换应用于变换系数以在像素域中产生残余块。运动补偿单元132产生经运动补偿的块,可能执行基于内插滤波器的内插。待用于具有子像素精度的运动估计的内插滤波器的识别符可包含在语法元素中。运动补偿单元132可使用如由视频编码器20在视频块的编码期间所使用的内插滤波器来计算参考块的子整数像素的内插值。运动补偿单元132可根据所接收的语法信息来确定由视频编码器20使用的内插滤波器且使用所述内插滤波器来产生预测块。
运动补偿单元132使用一些语法信息来确定用于编码经编码视频序列的(多个)帧的宏块的大小、描述经编码视频序列的帧的每一宏块经分割的方式的分割信息、指示每一分区经编码的方式的模式、用于每一经帧间编码的宏块或分区的一个或一个以上参考帧(或列表),和用于解码经编码视频序列的其它信息。
求和器140将残余块与运动补偿单元132或帧内预测单元产生的对应的预测块求和以形成经解码块。如果需要的话,还可应用解块滤波器以对经解码块进行滤波,以便移除成块假象。接着将经解码的视频块存储于参考帧存储装置142中,参考帧存储装置142提供用于后续运动补偿的参考块且还产生用于在显示装置(例如,图1的显示装置32)上呈现的经解码视频。
图4A和4B是说明实例四叉树150和对应的最大译码单元172的概念图。图4A描绘实例四叉树150,其包含以层级方式布置的节点。四叉树150可根据所提议的HEVC标准与例如树块相关联。四叉树(例如,四叉树150)中的每一节点可为无子代的叶节点,或具有四个子节点。在图4A的实例中,四叉树150包含根节点152。根节点152具有四个子节点,包含叶节点156A-156C(叶节点156)和节点154。因为节点154不是叶节点,所以节点154包含四个子节点,其在此实例中为叶节点158A-158D(叶节点158)。
四叉树150可包含描述对应的最大译码单元(LCU)(例如,在此实例中为LCU172)的特性的数据。举例来说,四叉树150依据其结构可描述LCU分裂为子CU。假定LCU172具有大小2Nx2N。在此实例中,LCU172具有四个子CU176A-176C(子CU176)和174,每一者大小为NxN。子CU174进一步分裂为四个子CU178A-178D(子CU178),每一者大小为N/2xN/2。在此实例中,四叉树150的结构对应于LCU172的分裂。即,根节点152对应于LCU172,叶节点156对应于子CU176,节点154对应于子CU174,且叶节点158对应于子CU178。
四叉树150的节点的数据可描述对应于节点的CU是否经分裂。如果CU经分裂,那么四叉树150中可存在四个额外节点。在一些实例中,四叉树的节点可类似于以下伪码而实施:
split_flag值可为表示对应于当前节点的CU是否经分裂的1位值。如果CU未经分裂,那么split_flag值可为‘0’,而如果CU经分裂,那么split_flag值可为‘1’。相对于四叉树150的实例,分裂旗标值的阵列可为101000000。
在一些实例中,子CU176和子CU178的每一者可使用同一帧内预测模式进行帧内预测编码。因此,视频编码器20可在根节点152中提供帧内预测模式的指示。
虽然图4A说明CU四叉树的实例,但应理解,类似的四叉树可应用于叶节点CU的TU。即,叶节点CU可包含描述CU的TU的分割的TU四叉树。TU四叉树可通常类似于CU四叉树,只是TU四叉树可个别地用信号发送CU的TU的帧内预测模式。
图5A和5B大体说明用于扫描在熵译码期间与视频数据块相关联的变换系数的对角扫描模式。即,举例来说,扫描模式可由视频编码器(例如,视频编码器20)在使变换系数的二维阵列串行化时使用。在另一实例中,扫描模式可由视频解码器(例如,视频解码器30)在由经译码变换系数的所接收串行化阵列重构视频数据块时使用。
举例来说,图5A说明用于扫描视频数据块的变换系数(例如,与TU相关联的变换系数)的前向对角扫描模式180。一股来说,前向对角扫描模式180以从左向右以及从上向下45度角遍历块。即,在图5A所示的实例中,第一系数182是在块的左上角定位的DC分量,而待扫描的最后系数184在块的右下角定位。
图5B说明用于扫描视频数据块的变换系数(例如,与TU相关联的变换系数)的逆向对角扫描模式186。一股来说,逆向对角扫描模式186以从右向左以及从下向上45度角遍历块。即,在图5B所示的实例中,第一系数188是在块的右下角定位的DC分量,而待扫描的最后系数190在块的左上角定位。
应理解,图5A和5B所示的扫描模式仅出于说明的目的而提供。举例来说,虽然图5A和5B说明对角扫描模式,但可存在其它扫描模式可用,例如锯齿状模式、自适应扫描次序、水平模式和垂直模式等。另外,与变换系数相关联的不同分量(例如,有效性、正负号、层级等)可使用不同定向和/或方向的模式扫描。举例来说,在一些例子中,可在变换系数层级的相反方向上扫描有效性信息(例如,有效性图)。在其它例子中,可实施统一扫描模式,使得在相同方向上扫描有效性信息和变换系数层级。
图6A和6B大体说明根据本发明的方面将变换系数块划分为子集。虽然图6A和6B相对于视频解码器30(图1和3)描述,但应理解,本发明的技术可由多种其它视频译码器(包含视频编码器20(图1和2))、其它处理器、处理单元、基于硬件的译码单元(例如,编码器/解码器(CODEC))等实行。
参看图6A,根据本发明的方面,视频解码器30可在解码块200的同时以扫描次序将块200划分为子集202、204、206和208。在图6A所示的实例中,第一子集202包含呈扫描次序的第一16个变换系数,第二子集204包含呈扫描次序的接下来16个变换系数,第三子集206包含呈扫描次序的接下来16个变换系数,且第四子集208包含呈扫描次序的最终16个变换系数。
根据本发明的方面,视频解码器30可将与上下文自适应译码过程相关联的概率更新与子集202-208联系。举例来说,在块200的解码期间,视频解码器30可初始使用概率模型的第一集合解码子集202。概率模型的第一集合可不在对子集202进行译码期间更新,使得视频解码器30使用概率模型的第一集合解码整个子集202。另外,视频解码器30可收集并存储与在对子集202进行解码的同时应用的概率模型的第一集合相关联的统计。举例来说,如上所述,指示用于对二进位进行译码的特定概率模型的上下文可受先前经译码二进位(例如,先前经译码语法元素的相关二进位)的值影响。另外,用于对二进位进行译码的概率模型也可受先前经译码二进位的值影响。根据本发明的方面,代替于以串行方式更新概率模型(例如,以逐二进位为基础),视频解码器30可存储基于经译码二进位的上下文的经更新状态。
根据本发明的方面,在对子集202解码之后,视频解码器30可使用所存储的概率统计更新概率模型的第一集合。视频解码器30可接着使用此经更新的概率模型的第二集合来对变换系数的第二子集204解码。视频解码器30可以此方式继续解码块200直到块200已经解码为止。即,在对第二子集204解码之后,视频解码器30可使用在第二子集的解码期间存储的统计来更新概率模型,且使用经更新的概率模型来解码第三子集206。此外,视频解码器30可执行相同过程来解码第四子集208。
在一些实例中,代替于等待更新概率模型直到特定子集的所有二进位已经译码为止,视频解码器30可在每一子集的每一译码遍次之后更新概率。在此实例中,视频解码器30可使子集内的一个遍次的概率模型的更新过程与子集的其它遍次并行化。举例来说,视频译码器可在子集的另一译码遍次期间对系数层级的二进位1进行译码的同时更新变换系数的子集的有效性信息的二进位的概率。在此实例中,一个遍次的上下文不能用于对子集内的其它遍次进行译码。
在其它实例中,视频解码器30可在对子集的预定数目的二进位进行译码之后更新概率。举例来说,视频解码器30可在对变换系数层级进行译码之前对有效性图进行译码。在此实例中,视频解码器30可对有效性图解码且在对有效性图解码之后更新概率。视频解码器30可接着解码与变换系数相关联的剩余信息(例如,正负号、层级等)。在其中视频解码器30解码last x和last_y语法元素两者的实例中,视频解码器30可在对最后有效系数的last_x和last_y两者解码之后更新概率,或可在解码last_x和last_y的每一者之后更新概率。
以与参看图6A描述类似的方式,视频解码器30可以扫描次序将图6B的块210划分为子集212、214、216和218。即,在图6B所示的实例中,第一子集212包含呈扫描次序的第一16个变换系数,第二子集214包含呈扫描次序的接下来16个变换系数,第三子集216包含呈扫描次序的接下来16个变换系数,且第四子集218包含呈扫描次序的最终16个变换系数。视频解码器30可接着执行如参看图6A描述的类似概率模型更新过程。
虽然图6A和6B所示的实例大体说明对角扫描模式,如上文参看图5A和5B所述,但可使用多种其它扫描模式,例如锯齿状模式、自适应扫描次序、水平模式、垂直模式等。
另外,虽然图6A和6B所示的实例说明具有包含16个变换系数的子集的变换系数的8x8块,但应理解,本发明的技术可应用于其它大小的块以及具有任何数目的变换系数的子集。举例来说,子集可为变换单元(TU)的n个变换系数的任何集合,其中n为小于TU的变换系数的数目的某一数目。在出于说明的目的的其它实例中,变换系数的32x32块可划分为32个子集,每一子集具有32个变换系数,或变换系数的8x8块可划分为两个子集,每一子集具有32个变换系数。其它实例也是可能的。
举例来说,子集可包含呈任何连续扫描次序(例如,水平、垂直、对角、自适应,或某一其它扫描次序)的16个连续系数。
图7A和7B大体说明根据本发明的方面将与视频数据块相关联的变换系数块以子块的形式划分为子集。虽然图7A和7B是相对于视频解码器30(图1和3)描述,但应理解,本发明的技术可由多种其它视频译码器实行,包含视频编码器20(图1和2)、其它处理器、处理单元、基于硬件的译码单元(例如,编码器/解码器(CODEC))等。
参看图7A,根据本发明的方面,视频解码器30可在对块220进行解码的同时将块220划分为子块222A、222B、222C和222D(统称为子块222)。在图7A所示的实例中,第一子块222A包含定位在块220的左上角的变换系数的4x4块,第二子块222B包含定位在块220的左下角的变换系数的4x4块,第三子块222C包含定位在块220的右上角的变换系数的4x4块,且第四子块222D包含定位在块220的右下角的变换系数的4x4块。
在一些实例中,视频解码器30可使用统一扫描来扫描子块222的变换系数。举例来说,视频解码器30可使用图7A所示的对角扫描来扫描有效性信息(例如,有效性图)和系数层级。在其它实例中,视频解码器30可使用逆扫描或具有其它定向的扫描来扫描变换系数的分量(例如,有效性、正负号、层级等)。举例来说,视频解码器30可通过使用前向锯齿状扫描将每一正方形(或矩形)8x8块和更大块的变换系数层级图的绝对值映射到4x4子块的经排序集合(例如,向量)上。视频解码器30可接着以逆锯齿状扫描处理每一4x4子块内部的变换系数层级以产生变换系数层级的向量。
在一些实例中,为了对子块222进行译码,视频解码器30可执行第一遍次以对有效性信息进行译码。视频解码器30可接着执行用以对变换系数层级的二进位1解码的另一遍次、用以对变换系数层级的剩余二进位解码的另一遍次,以及用以对变换系数层级的正负号解码的另一遍次。在完成子块222中的一者后,视频解码器30可即刻执行下一子块的解码遍次直到块220已完全解码为止。在其它实例中,可实施替代数目的译码遍次。
根据本发明的方面,视频解码器30可将与上下文自适应译码过程相关联的概率更新与子块222联系。举例来说,在块220的解码期间,视频解码器30可初始使用概率模型的第一集合解码子块222A。概率模型的第一集合可不在对子块222A进行解码期间更新,使得视频解码器30使用概率模型的第一集合解码整个子块222A。另外,视频解码器30可收集并存储与在对子块222A进行解码的同时应用的概率模型的第一集合相关联的统计(例如,上下文的状态)。
根据本发明的方面,在对子块222A进行译码之后,视频解码器30可使用所存储的概率统计更新概率模型的第一集合。视频解码器30可接着使用此经更新的概率模型的第二集合来对变换系数的第二子块222B解码。视频解码器30可以此方式继续解码块220直到块220已经解码为止。即,在对第二子块222B解码之后,视频解码器30可使用在第二子块的解码期间存储的统计来更新概率模型,且使用经更新的概率模型来解码第三子块222C。此外,视频解码器30可执行相同过程来解码第四子块222D。
在一些实例中,代替于等待更新概率模型直到特定子集的所有二进位已经译码为止,视频解码器30可在每一子集的每一译码遍次之后更新概率。在此实例中,视频解码器30可使子集内的一个遍次的概率模型的更新过程与子集的其它遍次并行化。
在其它实例中,视频解码器30可在对子集的预定数目的二进位进行译码之后更新概率。举例来说,视频解码器30可在对变换系数层级进行译码之前对有效性图进行译码。在此实例中,视频解码器30可对有效性图解码且在对有效性图进行译码之后更新概率。视频解码器30可接着解码与变换系数相关联的剩余信息(例如,正负号、层级等)。在其中视频解码器30解码last_x和last_y语法元素两者的实例中,视频解码器30可在对最后有效系数的last_x和last_y两者解码之后更新概率,或可在解码last_x和last_y的每一者之后更新概率。
以与参看图7A描述类似的方式,视频解码器30可在对块220进行解码的同时将图7B的块224划分为子块226A、226B、226C和226D。在图7B所示的实例中,第一子块226A包含定位在块224的右下角的变换系数的4x4块,第二子块226B包含定位在块224的右上角的变换系数的4x4块,第三子块226C包含定位在块224的左下角的变换系数的4x4块,且第四子块226D包含定位在块224的左上角的变换系数的4x4块。
为促进图7B所示的逆扫描(相对于图7A),在一些实例中,视频解码器30可首先识别块224的最后有效系数。在识别最后有效系数之后,视频译码器30可应用图7B所示的扫描,且可接着执行如参看图7A描述的类似的概率模型更新过程。
虽然图7A和7B所示的实例大体说明对角扫描模式,如上文参看图5A和5B所述,但可使用多种其它扫描模式,例如锯齿状模式、自适应扫描次序、水平模式、垂直模式等。
另外,虽然图7A和7B所示的实例说明具有4x4子块的变换系数的8x8块,但应理解,本发明的技术可应用于其它大小的块以及其它大小的子块。举例来说,子块可包含变换单元(TU)的变换系数的任何n x n块,其中n x n小于TU的大小。另外,如图7A和7B所示的相等大小的子块可对实现硬件效率提供某一帮助(例如,硬件可经优化以与静态子块大小协作)。然而,在其它实例中,本发明的技术可应用于具有不同大小的子块。
此外,图7A和7B说明正以大体锯齿状模式扫描的子块222和子块226。即,在图7A所示的实例中,子块222A的扫描之后是子块222B的扫描,再之后是子块222C和222D的扫描。在图7B所示的实例中,子块226A的扫描之后是子块226B的扫描,再之后是子块226C和226D的扫描。然而,应理解,图7A和7B仅出于实例的目的而提供。即,在其它实例中,子块222和子块226可以不同次序扫描。在出于说明的目的的实例中,参看图7A,子块222A的扫描之后可为子块222C或子块222D。
另外,子块222或226中的一者以上可在子块222或226本身正扫描之前完全译码。即,在对子块222和226进行译码之后,子块本身可根据特定扫描次序扫描。在一些实例中,子块222或226可经对角扫描,但也可使用例如锯齿状、水平和垂直等其它扫描。用于在子块内扫描以及用于扫描子块本身的特定扫描可取决于用于产生变换系数的残余数据的帧内模式。
图8大体说明使用上下文自适应译码技术(例如,CABAC)对有效性图进行译码。虽然图8大体相对于视频解码器30(图1和3)描述,但应理解,本发明的技术可由多种其它视频译码器实行,包含视频编码器20(图1和2)、其它处理器、处理单元、基于硬件的译码单元(例如,编码器/解码器(CODEC))等。
根据图8所示的实例,视频解码器30初始选择用于解码二进制化变换系数的特定二进位的上下文(240)。如上所述,语法元素的二进位的上下文可包含先前经译码语法元素的相关二进位的值。上下文可涉及例如对于与当前正译码的符号相邻的符号来说值为零还是非零。
视频解码器30接着加载对应于选定上下文的概率(例如,上下文的状态)(“上下文加载”(242))。即,视频解码器30确定与概率模型相关联的上下文的状态。视频解码器30接着使用经加载概率解码当前二进位(“二进位译码”(244))。根据图8所示的实例,视频解码器30以串行方式(例如,逐二进位为基础)更新算术译码器的范围。因此,在对特定二进位进行译码之后,视频解码器30接着以特定二进位的值更新算术译码器的范围(“范围更新”(246))。
图8所示的范围更新(246)在解码过程中引入串行相依性。即,随后的二进位具有对操作“二进位解码”(244)的串行相依性。即,“二进位解码”需要在解码随后的二进位之前完成。另外,视频解码器30基于经解码二进位更新概率(“关于当前状态的上下文更新”(248))。在图8所示的实例中,视频解码器30使用经更新上下文解码下一二进位(“上下文更新”(250))。因此,随后的二进位也具有对于操作“关于当前状态的上下文更新”的串行相依性。即,“关于当前状态的上下文更新”(248)步骤需要在解码随后的二进位之前完成。视频解码器30以此方式继续直到特定块的所有二进位已经译码为止。视频解码器30接着移动到下一视频数据块(“块回路”(252))。
在出于说明的目的的实例中,视频解码器30可使用同一概率模型(例如,概率模型A)连续地解码视频数据块的二进位序列(例如,bin(0)、bin(1)、...bin(n))。换句话说,针对二进位导出的上下文(例如,使用上下文索引ctx(0)、ctx(1)、...ctx(n)指示的)可各自对应于用于对相应二进位译码的同一概率模型。在此实例中,在对二进位中的给定一者解码之后,视频解码器30必须在概率模型可用于解码任何后续二进位之前基于当前二进位的值更新概率模型(步骤248)。更新概率模型允许所述模型反映使用具有给定值的模型译码的二进位的最当前概率。如此,使用在先前解码循环(即,先前二进位的解码)完成之后更新的概率模型解码视频数据块的特定二进位可在连续译码循环之间产生延迟。特定来说,概率模型不能容易地用于在解码先前二进位之后立即对特定二进位进行译码。因此,二进位序列的译码可能不如使用其它方法解码序列那样成流线型。
因此,“范围更新”和“上下文更新”步骤包含编码器和解码器两者处的反馈回路。此类反馈回路可产生计算瓶颈,因为可能归因于反馈回路中的相依性而难以增加处理量。即,直到来自先前二进位的概率模型已经更新才可处理一个二进位。根据如当前提议的HEVC,可以高频率连续(逐二进位)调用同一上下文索引。在一实例中,可表示经译码的总二进位的25%到35%的有效性旗标译码的上下文可经连续调用。反复调用同一上下文且等待在每一二进位之后更新模型可产生视频解码器30的处理量的瓶颈。
在一些实例中,为避免此瓶颈,视频解码器30可存储某些统计(例如,上下文的状态)且在对整个视频数据块进行译码之后更新一个或一个以上上下文。以此方式,随后的块使用如当前块更新的概率,且与更新上下文相关联的延迟每个块仅发生一次。然而,总译码性能可衰减,因为概率并非逐二进位更新,且可能因此不太准确。
如上所述,虽然相对于以视频解码器30解码数据而描述,但与如图8中描述的技术类似或相同的技术可以另一视频译码器(例如,视频编码器20)执行。
图9大体说明根据本发明的方面其中可在对子集进行译码之后更新上下文的经修改上下文自适应译码过程。虽然图9大体相对于视频解码器30(图1和3)描述,但应理解,本发明的技术可由多种其它视频译码器(包含视频编码器20(图1和2))、其它处理器、处理单元、基于硬件的译码单元(例如,编码器/解码器(CODEC))等实行。
在图9所示的实例中,视频解码器30首先将所有相关上下文的当前状态存储到存储器(280)。作为一实例,对于变换系数译码,将仅存储变换系数译码中使用的上下文的状态。视频解码器30接着选择用于解码经二进制化变换系数的特定二进位的上下文(282)。视频解码器30接着加载对应于选定上下文的概率(例如,上下文的状态)(“上下文加载”(284))。视频解码器30接着使用经加载概率解码当前二进位(“二进位译码”(286))。视频解码器30还逐二进位更新算术译码器的范围(“范围更新”(288))。
根据本发明的方面,代替于更新用于对下一二进位进行译码的上下文(如例如图8所示),视频解码器30可存储与在二进位的译码期间使用的上下文相关联的概率的概率统计(290)。即,视频解码器30可存储基于经译码二进位的上下文的经更新状态。因此,用于对下一二进位进行译码的概率不变,且不存在对块回路内的经更新概率的相依性。实际上,视频解码器30继续对子集的所有二进位进行译码(“子集回路”(292))
在子集的解码之后,根据本发明的方面,视频解码器30可将所存储的上下文设定为用于对下一子集进行译码的当前上下文(294)。即,视频解码器30可基于在先前子集的解码期间收集的所存储的概率统计更新一个或一个以上概率模型。因此,视频解码器30可使用经更新的概率解码随后的子集。由于更新和存储操作是在子集回路以外执行,所以所述操作不会在每一二进位之后引起延迟。实际上,与更新上下文相关联的延迟每个子集仅发生一次。在图9所示的实例中,用于存储在块的解码期间的上下文状态更新所需的存储器可等于正解码的二进位的上下文大小。举例来说,如果视频解码器正解码与视频数据块相关联的变换系数,那么变换系数译码期间使用的上下文可需要存储。
如上所述,虽然相对于以视频解码器30解码数据而描述,但与如图9中描述的技术类似或相同的技术可以另一视频译码器(例如,视频编码器20)执行。
图10是说明根据本发明的方面对视频数据块进行熵译码的实例技术的流程图。图10所示的实例大体描述为由视频译码器执行。即,举例来说,在其中视频译码器为视频编码器的实例中,所述编码器可使用概率模型对目标符号进行译码。在其中视频译码器为视频解码器的实例中,所述解码器可使用概率模型对目标符号进行剖析。因此,应理解,相对于图10展示和描述的技术可由视频编码器20(图1和2)、视频解码器30(图1和3),或其它处理器、处理单元、基于硬件的译码单元(例如,编码器/解码器(CODEC))等多种其它处理器实行。
在图10所示的实例中,视频译码器以一个或一个以上概率模型使用上下文自适应译码对变换系数的第一子集进行译码(302)。举例来说,视频译码器可对变换系数的第一子集进行CABAC译码。如上所述,第一子集可包含呈扫描次序的预定数目的变换系数,或可包含变换系数的子块。因此,视频数据块可通常包含n/m个子集,其中n表示变换系数的数目,且m表示每一子集中变换系数的数目。
在对变换系数的第一子集进行译码的同时,视频译码器可存储与用于对第一子集进行译码的概率模型相关联的概率模型统计(302)。举例来说,视频译码器可存储在对第一子集的每一二进位进行译码之后上下文的状态。上下文的状态可指示基于正译码的二进位的值的特定概率。视频译码器还可存储用于产生概率的实际二进位值。
接着,在对第一子集的最终系数进行译码之后,视频译码器可基于所存储的概率模型统计更新概率模型(304)。视频译码器可接着使用经更新的概率模型对变换系数的第二子集进行译码(306)。应理解,相对于图10描述的技术可针对变换系数的二进位的子集执行。即,子集的一些二进位不能使用上下文自适应译码来译码,而是在不更新概率的情况下以绕过模式译码。
图10中描述的技术可在增加的处理量与准确的概率之间找到平衡。举例来说,图10中描述的技术可增强每一子集的并行化(例如,允许并行地对多个二进位进行译码),同时还使用针对后续经译码的子集的更准确的概率。
还应理解,相对于图10展示和描述的步骤仅作为一个实例提供。即,图10的方法的步骤不需要一定以图10所示的次序执行,且可执行较少、额外或替代步骤。
图11是说明根据本发明的方面使用延迟状态更新上下文自适应熵译码对二进位序列320进行译码的概念图。虽然图11大体相对于视频解码器30(图1和3)描述,但应理解,本发明的技术可由多种其它视频译码器(包含视频编码器20(图1和2))、其它处理器、处理单元、基于硬件的译码单元(例如,编码器/解码器(CODEC))等实行。
如图11所示,视频解码器30可对包含二进位BIN(0)-BIN(N)322-330的二进位序列320进行解码。二进位BIN(0)-BIN(N)322-330各自与对应于存储在上下文缓冲器CTXB(0)-CTXB(N)332-340中的概率模型的上下文索引相关联。此处,上下文缓冲器CTXB(K)存储对应于在BIN(K-1)已经解码且对应于BIN(K-1)的上下文状态已更新之后的所有上下文的状态。在图11的实例中,作为初始化解码循环的一部分,视频解码器30可使用存储在上下文缓冲器CTXB(0)332中的初始概率模型(其可称为初始“修订”)解码BIN(0)322。
根据本发明的方面,视频解码器30可使用对应于在其相应译码循环之前至少两个译码循环的概率模型修订来解码后续二进位BIN(1)-BIN(N)324-330,所述概率模型修订可存储在上下文缓冲器CTXB(0)-CTXB(N-1)中。举例来说,视频解码器30可使用在相对于其当前译码循环的先前译码循环之前发生的概率模型修订来解码BIN(1)-BIN(N)324-330的每一者。
在出于说明的目的的实例中,视频解码器30可使用存储在CTXB(0)332中的初始概率模型修订来解码BIN(1)324。此初始概率模型修订在解码BIN(0)322之前存在或“发生”。同样,视频解码器30可使用存储在CTXB(1)中的概率模型修订对BIN(2)326进行译码,所述概率模型修订在解码BIN(1)324之前存在。
虽然图11所示的实例大体说明两个循环状态延迟,但本发明的技术通常适用于具有额外延迟循环的延迟状态更新。举例来说,根据本发明的方面,视频解码器30可使用存储在CTXB(0)中的概率模型修订(例如,三个循环延迟)对BIN(2)326进行译码。还可实施额外延迟状态循环(例如,四个循环延迟、五个循环延迟等)。
在一些实例中,延迟循环的数目可对应于待并行译码的二进位的数目。举例来说,图11所示的实例可通常允许并行解码两个二进位而不会引起与更新二进位之间的概率相关联的延迟。即,视频解码器30可并行解码BIN(1)324和BIN(2)326,而不会引起与状态更新相关联的延迟,因为二进位使用已确定的概率模型修订。延迟的额外循环可允许并行解码更多二进位。
相对于图11展示和描述的技术可与任何上下文自适应熵译码方法一起使用,包含CAVLC、CABAC、PIPE或另一上下文自适应熵译码方法。此外,相对于图11展示和描述的技术可通常应用于其它数据的其它算术译码(例如,音频数据或多种其它数据)。举例来说,图11的技术可用于执行延迟的概率更新。
作为一实例,出于说明的目的,假定正在编码或解码符号序列,例如symbol(0)、symbol(1)、...、symbol(n)等。所述符号可由视频数据、音频数据或任何其它数据产生。此外,假定每一符号可采取A、B、C和D表示的四个值。另外,假定不同上下文模型可与每一符号相关联,但出于说明的目的,所有符号使用同一上下文。另外,假定针对每一上下文维持单独的概率模型(例如,针对A、B、C和D的概率)。通常,在对符号symbol(0)进行译码之后,针对context(0)的概率模型将经更新以考虑到symbol(0)的实际值。然而,如图11所示,本发明的技术可包含实施概率模型更新延迟,使得概率模型更新过程被延迟直到正对一个或一个以上将来符号进行译码为止。举例来说,对于延迟1,经更新模型(例如,在对符号symbol(0)进行译码之后)可用于对符号symbol(2)进行译码。在此实例中,缓冲器(类似于上文描述的上下文缓冲器CTXB)可用于存储概率模型。
图12说明根据本发明的方面使用延迟状态更新上下文自适应熵译码对二进位序列进行译码的实例技术。图12所示的实例通常描述为由视频译码器执行。即,举例来说,在其中视频译码器为视频编码器的实例中,所述编码器可使用概率模型对目标符号(例如,二进位)进行译码。在其中视频译码器为视频解码器的实例中,所述解码器可使用概率模型对目标符号(例如,二进位)进行解码。因此,应理解,相对于图10展示和描述的技术可由视频编码器20(图1和2)、视频解码器30(图1和3),或多种其它处理器、处理单元、基于硬件的译码单元(例如,编码器/解码器(CODEC))等实行。
在图12所示的实例中,视频译码器初始确定在熵译码循环期间二进位的上下文(360)。如上所述,熵译码循环通常包含确定对应于用于对二进位进行译码的概率模型的上下文,以及应用概率模型对二进位进行译码。
视频译码器可接着基于上下文选择概率模型,其中基于在当前译码循环之前至少两个循环译码的先前经译码二进位的值更新概率模型(362)。举例来说,通常,二进位(例如,bin(n))的上下文可使用对应于概率模型的上下文索引(例如,ctx(n))来指示。然而,根据本发明的技术,视频译码器可使用在对块的先前二进位进行译码之前(即,在对当前二进位进行译码之前至少两个译码迭代或循环)更新的概率模型对视频数据块的特定二进位进行译码。因此,如下文更详细描述,视频译码器可避免当使用概率模型对多个连续二进位进行译码时由于在使用所述模型对二进位进行译码之后更新所述模型引起的延迟。
在出于说明的目的的实例中,假定通过执行CABAC过程连续对视频数据块的二进位序列(例如,bin(0)、bin(1)、...、bin(n-1)和bin(n))进行译码。假定,在此实例中,用于对bin(0)、bin(1)、...、bin(n-1)和bin(n)进行译码的上下文由ctx(0)、ctx(1)、...、ctx(n-1)和ctx(n)表示。另外,假定对应于所有上下文的概率模型(或状态)存储在ctxBuffer(0)、ctxBuffer(1)、...、ctxBuffer(n-1)和ctxBuffer(n)中。此处,上下文缓冲器ctxBuffer(K)存储对应于bin(K-1)已经译码且对应于bin(K-1)的上下文状态已更新之后的所有上下文的状态。可需要使用此缓冲器来维持用于对二进位进行译码的概率模型的多个型式或“修订”。概率模型可由初始状态界定,且如先前描述可受先前经译码二进位(即,bin(0)、bin(1)、...、bin(n-1))影响。根据新兴的HEVC和H.264标准,执行以下步骤对bin(n)进行译码:
1.确定将用于对bin(n)进行译码的上下文ctx(n)。
2.从上下文缓冲器ctxBuffer(n)检索ctx(n)的概率模型。
3.使用概率模型编码bin(n)。
4.基于bin(n)更新概率模型。经更新的概率模型包含在ctxBuffer(n+1)中。
如上文展示的过程所说明,直到所有步骤完成,CABAC过程才可继续以对下一二进位(例如,bin(n+1))进行译码,这可产生译码过程中的延迟。根据本发明的方面,视频译码器可使用ctxBuffer(n-K)中包含的概率模型对bin(n)进行译码。即,举例来说,本发明的方面包含修改上文展示的过程的步骤2,使得视频译码器从上下文缓冲器ctxBuffer(n-K)检索ctx(n)的概率模型。在其中“n”小于或等于“K”的实例中,视频译码器可使用ctxBuffer(0)。
索引“K”可等于任何正非零整数值。举例来说,对于“K”值“1”,上下文缓冲器ctxBuffer(n-1)包含在当前译码循环之前两个译码循环更新的概率模型。特定来说,包含在ctxBuffer(n-1)中的概率模型可对应于包含在ctxBuffer(n-2)中的在对bin(n-2)进行译码之后更新的概率模型。
根据本发明的方面,视频译码器可使用初始概率模型对序列的第一和第二二进位进行译码。举例来说,视频译码器可使用ctxBuffer(0)对给定序列的bin(0)和bin(1)两者进行译码。Bin(0)可以此方式进行译码,因为不存在先前更新的概率模型。Bin(1)可以此方式进行译码以避免可由于基于待包含在ctxBuffer(1)中的bin(0)的值更新包含在ctxBuffer(0)中的概率模型而引起的状态更新延迟。因此,在一些实例中,可在对预定数目的二进位进行译码之后执行步骤362。
在选择概率模型(362)之后,视频译码器可应用概率模型对二进位进行译码(364)。视频译码器可接着基于二进位的值更新概率模型(366)。通过避免与上下文自适应译码中的状态更新相关联的延迟,相对于图12展示和描述的方面可实现当在视频译码中执行CABAC过程时视频数据块的残余变换系数的有效译码。另外,在其中使用上下文分割的实例中,可针对每一上下文分区应用本发明的技术。
如上文参看图11所述,虽然上文相对于二进制视频译码描述,但应理解,延迟状态更新技术可通常应用于其它数据的其它算术译码。另外,还应理解,相对于图12展示和描述的步骤仅提供作为一个实例。即,图12的方法的步骤不需要一定以图12所示的次序执行,且可执行更少、额外或替代步骤。
应理解,依据实例,本文描述的方法的任一者的某些动作或事件可以不同序列执行,可添加、合并或一起删除(例如,并非所有所描述的动作或事件对于方法的实践都是必需的)。此外,在某些实施例中,可同时(例如,通过多线程处理、中断处理或多个处理器)而非顺序地执行动作或事件。
在一个或一个以上实例中,所描述的功能可以硬件、软件、固件或其任何组合来实施。如果实施在软件中,那么所述功能可作为一个或一个以上指令或代码存储在计算机可读媒体上或经由计算机可读媒体发射,且由基于硬件的处理单元执行。计算机可读媒体可包含对应于例如数据存储媒体等有形媒体的计算机可读存储媒体,或包含促进将计算机程序从一处转移到另一处(例如,根据通信协议)的任何媒体的通信媒体。
以此方式,计算机可读媒体通常可对应于(1)非暂时性的有形计算机可读存储媒体,或(2)例如信号或载波等通信媒体。数据存储媒体可为可由一个或一个以上计算机或一个或一个以上处理器存取以检索指令、代码和/或数据结构以用于实施本发明中描述的技术的任何可用媒体。计算机程序产品可包含计算机可读媒体。
借助实例而非限制,此类计算机可读存储媒体可包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置,或其它磁性存储装置、快闪存储器,或可用于存储指令或数据结构的形式的所要程序代码且可由计算机存取的任何其它媒体。同样,恰当地将任何连接称作计算机可读媒体。举例来说,如果使用同轴电缆、光纤电缆、双绞线、数字订户线(DSL)或例如红外线、无线电及微波的无线技术从网站、服务器或其它远程源传输指令,则同轴电缆、光纤电缆、双绞线、DSL或例如红外线、无线电及微波的无线技术包含于媒体的定义中。
然而,应理解,计算机可读存储媒体和数据存储媒体不包含连接、载波、信号或其它瞬时媒体,而是针对非瞬时有形存储媒体。如本文中所使用,磁盘及光盘包含压缩光盘(CD)、激光光盘、光学光盘、数字多功能光盘(DVD)、软磁盘及蓝光光盘,其中磁盘通常磁性地复制数据,而光盘使用激光光学地复制数据。上文的组合也应包含在计算机可读媒体的范围内。
指令可由例如一个或一个以上数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA),或其它等效集成或离散逻辑电路等一个或一个以上处理器执行。因此,如本文中所使用的术语“处理器”可指上述结构或适合于实施本文中所描述的技术的任一其它结构中的任一者。另外,在一些方面中,本文描述的功能性可提供在经配置用于编码和解码的专门硬件和/或软件模块内,或并入在组合式编解码器中。并且,可将所述技术完全实施于一个或一个以上电路或逻辑元件中。
本发明的技术可实施在广泛多种装置或设备中,包含无线手持机、集成电路(IC)或IC组(例如,芯片组)。本发明中描述各个组件、模块或单元以强调经配置以执行所揭示的技术的装置的功能方面,且不一定要求由不同硬件单元实现。实际上,如上所述,各个单元可组合在编解码器硬件单元中或由互操作硬件单元(包含如上所述的一个或一个以上处理器)结合适宜的软件和/或固件的集合提供。
已描述本发明的各个方面。这些及其它方面均处于所附权利要求书的范围内。
Claims (32)
1.一种对视频数据进行译码的方法,所述方法包括:
根据具有多个译码循环的上下文自适应熵译码过程对所述视频数据的块的二进位序列进行译码,其中每一译码循环对所述二进位序列的一个二进位进行译码,其中当前译码循环包含:
确定所述二进位的上下文;
基于所述上下文选择第一概率模型,其中所述第一概率模型已基于以所述上下文进行译码且在所述当前译码循环之前至少两个译码循环进行译码的所述块的先前二进位的值而更新;
应用所述第一概率模型对所述二进位进行译码;以及
基于所述二进位的值更新第二概率模型。
2.根据权利要求1所述的方法,其中将所述第一概率模型存储到上下文缓冲器,其中所述至少两个译码循环包括K个循环的延迟,且其中选择所述第一概率模型包括在所述当前译码循环之前至少(K+1)个循环选择存储在所述上下文缓冲器中的所述第一概率模型。
3.根据权利要求1所述的方法,其中所述二进位序列的两个或更多个连续二进位是各自使用其相应译码循环进行译码,且其中针对所述两个或更多个二进位中的每一者确定的相应上下文包括同一上下文。
4.根据权利要求1所述的方法,其中所述二进位序列的所述二进位包括除所述序列的初始二进位以外的所述序列的任何二进位,以及在译码次序中在所述初始二进位之后的二进位,所述方法进一步包括使用于对所述初始二进位和所述初始二进位之后的所述二进位中的每一者进行译码的译码循环初始化,包含:
确定所述相应二进位的初始化上下文;
基于所述初始化上下文选择初始化概率模型;
应用基于所述初始化上下文的所述初始化概率模型对所述相应二进位进行译码;以及
基于所述相应二进位的值更新所述初始化概率模型。
5.根据权利要求1所述的方法,其中所述二进位序列包含有效性二进位和层级二进位,且其中根据所述上下文自适应熵译码过程对所述二进位序列进行译码包括对所述有效性二进位进行上下文自适应译码,且对所述层级二进位进行绕过译码。
6.根据权利要求1所述的方法,其中所述二进位序列包括第一分区的第一二进位序列和第二分区的第二二进位序列,且其中所述方法进一步包括使用所述上下文自适应熵译码过程与对所述第一分区的所述第一二进位序列进行译码并行地对所述第二分区的所述第二二进位序列进行译码。
7.根据权利要求1所述的方法,其进一步包括并行地对对应于所述当前译码循环之前所述至少两个译码循环的所述二进位序列的至少两个二进位进行译码。
8.根据权利要求1所述的方法,其中所述上下文自适应熵译码过程包括上下文自适应二进制算术译码CABAC过程。
9.根据权利要求1所述的方法,其中对所述二进位序列进行译码包括编码所述二进位序列。
10.根据权利要求9所述的方法,其进一步包括,在编码所述二进位序列之前:
向视频数据块的一个或多个残余值应用变换以产生变换系数;
量化所述变换系数以产生经量化变换系数;以及
将所述经量化变换系数二进制化以产生所述二进位序列。
11.根据权利要求1所述的方法,其中对所述二进位序列进行译码包括解码所述二进位序列。
12.根据权利要求11所述的方法,其进一步包括:
基于所述二进位序列确定经量化变换系数;
对所述经量化变换系数进行逆量化以产生变换系数;以及
向所述经逆量化二进位序列应用逆变换以产生视频数据块的残余值。
13.一种用于对视频数据进行译码的设备,所述设备包括:
存储器,其经配置以存储视频数据的二进位序列;及
一个或多个处理器,所述处理器经配置以:
根据具有多个译码循环的上下文自适应熵译码过程对所述视频数据的块的所述二进位序列译码,其中每一译码循环对所述二进位序列的一个二进位进行译码,其中针对当前译码循环,所述一个或多个处理器经配置以:
确定所述二进位的上下文;
基于所述上下文选择第一概率模型,其中所述第一概率模型已基于以所述上下文进行译码且在所述当前译码循环之前至少两个译码循环进行译码的所述块的先前二进位的值而更新;
应用所述第一概率模型对所述二进位进行译码;以及
基于所述二进位的值更新第二概率模型。
14.根据权利要求13所述的设备,其中所述存储器进一步包括存储所述第一概率模型的上下文缓冲器,其中所述至少两个译码循环包括K个循环的延迟,且其中为了选择所述第一概率模型,所述一个或多个处理器经配置以在所述当前译码循环之前至少(K+1)个循环选择存储在所述上下文缓冲器中的所述第一概率模型。
15.根据权利要求13所述的设备,其中所述二进位序列的两个或更多个连续二进位是各自使用其相应译码循环进行译码,且其中针对所述两个或更多个二进位中的每一者确定的相应上下文包括同一上下文。
16.根据权利要求13所述的设备,其中所述二进位序列的所述二进位包括除所述序列的初始二进位以外的所述序列的任何二进位以及在译码次序中在所述初始二进位之后的二进位,其中所述一个或多个处理器进一步经配置以利用初始化译码循环来对所述初始二进位和所述初始二进位之后的所述二进位中的每一者进行译码,包含:
确定所述相应二进位的初始化上下文;
基于所述初始化上下文选择初始化概率模型;
应用基于所述初始化上下文的所述初始化概率模型对所述相应二进位进行译码;以及
基于所述相应二进位的值更新所述初始化概率模型。
17.根据权利要求13所述的设备,其中所述二进位序列包含有效性二进位和层级二进位,且其中为了根据所述上下文自适应熵译码过程对所述二进位序列进行译码,所述一个或多个处理器经配置以对所述有效性二进位进行上下文自适应译码,且对所述层级二进位进行绕过译码。
18.根据权利要求13所述的设备,其中所述二进位序列包括第一分区的第一二进位序列和第二分区的第二二进位序列,且其中所述一个或多个处理器进一步经配置以使用所述上下文自适应熵译码过程与对所述第一分区的所述第一二进位序列进行译码并行地对所述第二分区的所述第二二进位序列进行译码。
19.根据权利要求13所述的设备,其中所述一个或多个处理器进一步经配置以并行地对对应于所述当前译码循环之前所述至少两个译码循环的所述二进位序列的至少两个二进位进行译码。
20.根据权利要求13所述的设备,其中所述上下文自适应熵译码过程包括上下文自适应二进制算术译码CABAC过程。
21.根据权利要求13所述的设备,其中为了对所述二进位序列进行译码,所述一个或多个处理器经配置以编码所述二进位序列。
22.根据权利要求21所述的设备,其中所述一个或多个处理器进一步经配置以,在编码所述二进位序列之前:
向视频数据块的一个或多个残余值应用变换以产生变换系数;
量化所述变换系数以产生经量化变换系数;以及
将所述经量化变换系数二进制化以产生所述二进位序列。
23.根据权利要求13所述的设备,其中为了对所述二进位序列进行译码,所述一个或多个处理器经配置以解码所述二进位序列。
24.根据权利要求23所述的设备,其中所述一个或多个处理器进一步经配置以:
基于所述二进位序列确定经量化变换系数;
对所述经量化变换系数进行逆量化以产生变换系数;以及
向所述经逆量化二进位序列应用逆变换以产生视频数据块的残余值。
25.一种用于对视频数据进行译码的设备,所述设备包括:
用于根据具有多个译码循环的上下文自适应熵译码过程对所述视频数据的块的二进位序列进行译码的装置,其中每一译码循环对所述二进位序列的一个二进位进行译码,其中所述用于对所述二进位序列进行译码的装置包含:
用于针对当前译码循环确定所述二进位的上下文的装置;
用于针对所述当前译码循环基于所述上下文选择第一概率模型的装置,其中所述第一概率模型已基于以所述上下文进行译码且在所述当前译码循环之前至少两个译码循环进行译码的所述块的先前二进位的值而更新;
用于针对所述当前译码循环应用所述第一概率模型对所述二进位进行译码的装置;以及
用于针对所述当前译码循环基于所述二进位的值更新第二概率模型的装置。
26.根据权利要求25所述的设备,其中所述设备进一步包括用于存储所述第一概率模型的装置,其中所述至少两个译码循环包括K个循环的延迟,且其中用于选择所述第一概率模型的装置包括用于在所述当前译码循环之前至少(K+1)个循环选择存储在所述用于存储所述概率模型的装置中的所述第一概率模型的装置。
27.根据权利要求25所述的设备,其中所述二进位序列的两个或更多个连续二进位是各自使用其相应译码循环进行译码,且其中针对所述两个或更多个二进位中的每一者确定的相应上下文包括同一上下文。
28.根据权利要求25所述的设备,其中所述二进位序列的所述二进位包括除所述序列的初始二进位以外的所述序列的任何二进位,以及在译码次序中在所述初始二进位之后的二进位,所述设备进一步包括用于使用于对所述初始二进位和所述初始二进位之后的所述二进位中的每一者进行译码的译码循环初始化的装置,包含:
用于确定所述相应二进位的初始化上下文的装置;
用于基于所述初始化上下文选择初始化概率模型的装置;
用于应用基于所述初始化上下文的所述初始化概率模型对所述相应二进位进行译码的装置;以及
用于基于所述相应二进位的值更新所述初始化概率模型的装置。
29.根据权利要求25所述的设备,其中所述二进位序列包括第一分区的第一二进位序列和第二分区的第二二进位序列,且其中所述用于译码的装置一步经配置以使用所述上下文自适应熵译码过程与对所述第一分区的所述第一二进位序列进行译码并行地对所述第二分区的所述第二二进位序列进行译码。
30.根据权利要求25所述的设备,其中所述用于译码的装置进一步经配置以并行地对对应于所述当前译码循环之前所述至少两个译码循环的所述二进位序列的至少两个二进位进行译码。
31.根据权利要求25所述的设备,其中所述上下文自适应熵译码过程包括上下文自适应二进制算术译码CABAC过程。
32.根据权利要求25所述的设备,其中所述二进位序列包含有效性二进位和层级二进位,且其中所述用于根据所述上下文自适应熵译码过程对所述二进位序列进行译码的装置包括用于对所述有效性二进位进行上下文自适应译码且对所述层级二进位进行绕过译码的装置。
Applications Claiming Priority (13)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201161493371P | 2011-06-03 | 2011-06-03 | |
US61/493,371 | 2011-06-03 | ||
US201161503537P | 2011-06-30 | 2011-06-30 | |
US61/503,537 | 2011-06-30 | ||
US201161552921P | 2011-10-28 | 2011-10-28 | |
US61/552,921 | 2011-10-28 | ||
US201161554408P | 2011-11-01 | 2011-11-01 | |
US61/554,408 | 2011-11-01 | ||
US201161561921P | 2011-11-20 | 2011-11-20 | |
US61/561,921 | 2011-11-20 | ||
US13/485,225 US9379736B2 (en) | 2011-06-03 | 2012-05-31 | Context-adaptive coding video data |
US13/485,225 | 2012-05-31 | ||
PCT/US2012/040491 WO2012167103A1 (en) | 2011-06-03 | 2012-06-01 | Context-adaptive coding video data |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103563381A CN103563381A (zh) | 2014-02-05 |
CN103563381B true CN103563381B (zh) | 2018-01-19 |
Family
ID=46229957
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280026675.2A Expired - Fee Related CN103563381B (zh) | 2011-06-03 | 2012-06-01 | 对视频数据进行上下文自适应译码 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9379736B2 (zh) |
EP (1) | EP2754293A1 (zh) |
JP (2) | JP5937206B2 (zh) |
KR (2) | KR101657853B1 (zh) |
CN (1) | CN103563381B (zh) |
WO (1) | WO2012167103A1 (zh) |
Families Citing this family (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8891616B1 (en) | 2011-07-27 | 2014-11-18 | Google Inc. | Method and apparatus for entropy encoding based on encoding cost |
KR20130050904A (ko) * | 2011-11-08 | 2013-05-16 | 삼성전자주식회사 | 비디오의 산술 부호화 방법 및 그 장치, 비디오의 산술 복호화 방법 및 그 장치 |
US9247257B1 (en) | 2011-11-30 | 2016-01-26 | Google Inc. | Segmentation based entropy encoding and decoding |
US9503717B2 (en) | 2012-01-09 | 2016-11-22 | Texas Instruments Incorporated | Context adaptive binary arithmetic coding (CABAC) with scalable throughput and coding efficiency |
US9363510B2 (en) * | 2012-03-02 | 2016-06-07 | Qualcomm Incorporated | Scan-based sliding window in context derivation for transform coefficient coding |
US9774856B1 (en) | 2012-07-02 | 2017-09-26 | Google Inc. | Adaptive stochastic entropy coding |
US20140064366A1 (en) * | 2012-09-03 | 2014-03-06 | Texas Instruments Incorporated | Intra-Prediction Estimation Using Approximate Reconstructed Samples |
WO2014110652A1 (en) * | 2013-01-16 | 2014-07-24 | Blackberry Limited | Context determination for entropy coding of run-length encoded transform coefficients |
CN108259900B (zh) * | 2013-01-16 | 2021-01-01 | 黑莓有限公司 | 针对视频的上下文自适应二进制熵编码的变换系数编码 |
US9509998B1 (en) | 2013-04-04 | 2016-11-29 | Google Inc. | Conditional predictive multi-symbol run-length coding |
US9445132B2 (en) * | 2013-09-09 | 2016-09-13 | Qualcomm Incorporated | Two level last significant coefficient (LSC) position coding |
US9392288B2 (en) | 2013-10-17 | 2016-07-12 | Google Inc. | Video coding using scatter-based scan tables |
US9179151B2 (en) | 2013-10-18 | 2015-11-03 | Google Inc. | Spatial proximity context entropy coding |
KR102250088B1 (ko) * | 2013-10-24 | 2021-05-10 | 삼성전자주식회사 | 비디오 스트림을 복호화하는 방법 및 장치 |
AU2015343932A1 (en) | 2014-11-04 | 2017-06-01 | Samsung Electronics Co., Ltd. | Probability updating method for binary arithmetic coding/decoding, and entropy coding/decoding apparatus using same |
US10250912B2 (en) * | 2015-02-17 | 2019-04-02 | Mediatek Inc. | Method and apparatus for entropy decoding with arithmetic decoding decoupled from variable-length decoding |
US10225555B2 (en) * | 2015-05-19 | 2019-03-05 | Mediatek Inc. | Method and apparatus for multi-table based context adaptive binary arithmetic coding |
CN112929661B (zh) * | 2015-10-13 | 2023-04-21 | 三星电子株式会社 | 解码方法和编码方法 |
US10880548B2 (en) * | 2016-06-01 | 2020-12-29 | Samsung Electronics Co., Ltd. | Methods and apparatuses for encoding and decoding video according to coding order |
KR102445668B1 (ko) * | 2016-06-01 | 2022-09-21 | 삼성전자주식회사 | 부호화 순서 부호화 방법 및 그 장치, 복호화 방법 및 그 장치 |
EP3264763A1 (en) * | 2016-06-29 | 2018-01-03 | Thomson Licensing | Method and apparatus for improved significance flag coding using simple local predictor |
US10264264B2 (en) * | 2016-09-24 | 2019-04-16 | Apple Inc. | Multi-bin decoding systems and methods |
US10554977B2 (en) * | 2017-02-10 | 2020-02-04 | Intel Corporation | Method and system of high throughput arithmetic entropy coding for video coding |
US10554988B2 (en) * | 2017-03-22 | 2020-02-04 | Qualcomm Incorporated | Binary arithmetic coding with parameterized probability estimation finite state machines |
KR102414164B1 (ko) * | 2017-03-31 | 2022-06-29 | 한국전자통신연구원 | 향상된 산술부호화를 제공하는 영상 처리 방법, 그를 이용한 영상 복호화, 부호화 방법 및 그 장치 |
WO2018194190A1 (ko) * | 2017-04-18 | 2018-10-25 | 엘지전자(주) | 비디오 신호를 엔트로피 인코딩, 디코딩하는 방법 및 장치 |
WO2019009450A1 (ko) * | 2017-07-06 | 2019-01-10 | 엘지전자(주) | 비디오 신호를 엔트로피 인코딩, 디코딩하는 방법 및 장치 |
US11057629B2 (en) | 2017-07-19 | 2021-07-06 | Samsung Electronics Co., Ltd. | Encoding method and apparatus therefor, decoding method and apparatus therefor |
US11457217B2 (en) | 2018-06-12 | 2022-09-27 | Electronics And Telecommunications Research Institute | Context adaptive binary arithmetic coding method and device |
US10887594B2 (en) | 2018-07-05 | 2021-01-05 | Mediatek Inc. | Entropy coding of coding units in image and video data |
US11006150B2 (en) * | 2018-09-24 | 2021-05-11 | Tencent America LLC | Method and apparatus for video coding |
US11172197B2 (en) | 2019-01-13 | 2021-11-09 | Tencent America LLC | Most probable mode list generation scheme |
FR3098070B1 (fr) * | 2019-06-27 | 2022-02-18 | S A Vitec | Procédé d’encodage et de décodage vidéo par signalisation d’un sous-ensemble de candidat |
US11418790B2 (en) | 2019-06-28 | 2022-08-16 | Qualcomm Incorporated | Arithmetic coding with selective adaptation for video coding |
US11765370B2 (en) * | 2021-07-27 | 2023-09-19 | Mediatek Inc. | Video residual decoding apparatus using neighbor storage device with smaller storage size to store neighbor data for context selection and associated method |
US20230254489A1 (en) * | 2022-02-07 | 2023-08-10 | Tencent America LLC | Adaptive context-based adaptive binary arithmetic coding (cabac) initial state selection from coded pictures |
WO2023194561A1 (en) * | 2022-04-08 | 2023-10-12 | Interdigital Ce Patent Holdings, Sas | Context-adaptive binary arithmetic coding update refinement |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2312854A1 (de) * | 2009-10-15 | 2011-04-20 | Siemens Aktiengesellschaft | Verfahren zur Codierung von Symbolen aus einer Folge digitalisierter Bilder |
Family Cites Families (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6900748B2 (en) | 2003-07-17 | 2005-05-31 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. | Method and apparatus for binarization and arithmetic coding of a data value |
US7599435B2 (en) * | 2004-01-30 | 2009-10-06 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. | Video frame encoding and decoding |
KR100664936B1 (ko) | 2005-04-13 | 2007-01-04 | 삼성전자주식회사 | 코딩 효율이 향상된 컨텍스트 기반 적응적 산술 코딩 및디코딩 방법과 이를 위한 장치, 이를 포함하는 비디오 코딩및 디코딩 방법과 이를 위한 장치 |
US7894523B2 (en) | 2005-09-05 | 2011-02-22 | Lg Electronics Inc. | Method for modeling coding information of a video signal for compressing/decompressing coding information |
KR20070077059A (ko) | 2006-01-19 | 2007-07-25 | 삼성전자주식회사 | 엔트로피 부호화/복호화 방법 및 장치 |
KR100809301B1 (ko) | 2006-07-20 | 2008-03-04 | 삼성전자주식회사 | 엔트로피 부호화/복호화 방법 및 장치 |
US7365659B1 (en) | 2006-12-06 | 2008-04-29 | Silicon Image Gmbh | Method of context adaptive binary arithmetic coding and coding apparatus using the same |
KR101356733B1 (ko) | 2007-03-07 | 2014-02-05 | 삼성전자주식회사 | 컨텍스트 기반 적응적 이진 산술 부호화, 복호화 방법 및장치 |
US8156364B2 (en) | 2007-06-12 | 2012-04-10 | International Business Machines Corporation | Synchronized parallel processing of rows of data with dependencies by determining start time for processors |
US9008171B2 (en) | 2008-01-08 | 2015-04-14 | Qualcomm Incorporated | Two pass quantization for CABAC coders |
US8891615B2 (en) * | 2008-01-08 | 2014-11-18 | Qualcomm Incorporated | Quantization based on rate-distortion modeling for CABAC coders |
US8542748B2 (en) | 2008-03-28 | 2013-09-24 | Sharp Laboratories Of America, Inc. | Methods and systems for parallel video encoding and decoding |
US7876257B2 (en) | 2008-04-28 | 2011-01-25 | Mitsubishi Electric Research Laboratories, Inc. | Method and apparatus for compressing SAR signals |
KR101549823B1 (ko) | 2008-09-02 | 2015-09-04 | 삼성전자주식회사 | 적응적 이진화를 이용한 영상 부호화, 복호화 방법 및 장치 |
WO2010063184A1 (en) | 2008-12-03 | 2010-06-10 | Mediatek Inc. | Method for performing parallel cabac processing with ordered entropy slices, and associated apparatus |
KR20100102386A (ko) | 2009-03-11 | 2010-09-24 | 삼성전자주식회사 | 레지듀얼 값 분포에 적응적인 부호표 선택에 기초한 영상 부호화, 복호화 방법 및 장치 |
CN102648583B (zh) | 2009-10-05 | 2015-05-20 | 法国电信 | 用于编码和解码图像的方法、对应的编码和解码装置 |
KR101457894B1 (ko) * | 2009-10-28 | 2014-11-05 | 삼성전자주식회사 | 영상 부호화 방법 및 장치, 복호화 방법 및 장치 |
JP2011109390A (ja) * | 2009-11-17 | 2011-06-02 | Jvc Kenwood Holdings Inc | 画像符号化装置、画像符号化方法、画像復号装置、及び、画像復号方法 |
US8077064B2 (en) | 2010-02-26 | 2011-12-13 | Research In Motion Limited | Method and device for buffer-based interleaved encoding of an input sequence |
CN103119849B (zh) * | 2010-04-13 | 2017-06-16 | 弗劳恩霍夫应用研究促进协会 | 概率区间分割编码器和译码器 |
ITVI20100175A1 (it) * | 2010-06-21 | 2011-12-22 | St Microelectronics Pvt Ltd | Sistema per la codifica entropica di video h.264 per applicazioni hdtv in tempo reale |
US8378862B2 (en) * | 2010-07-28 | 2013-02-19 | Reserch In Motion Limited | Method and device for compression of binary sequences by grouping multiple symbols |
US8976861B2 (en) | 2010-12-03 | 2015-03-10 | Qualcomm Incorporated | Separately coding the position of a last significant coefficient of a video block in video coding |
US8755620B2 (en) | 2011-01-12 | 2014-06-17 | Panasonic Corporation | Image coding method, image decoding method, image coding apparatus, image decoding apparatus, and image coding and decoding apparatus for performing arithmetic coding and/or arithmetic decoding |
US9338449B2 (en) | 2011-03-08 | 2016-05-10 | Qualcomm Incorporated | Harmonized scan order for coding transform coefficients in video coding |
TWI487295B (zh) * | 2011-05-17 | 2015-06-01 | Univ Nat Cheng Kung | 高產出平行化avc/h.264前後文適應性二位元算數解碼器之方法 |
US8995523B2 (en) * | 2011-06-03 | 2015-03-31 | Qualcomm Incorporated | Memory efficient context modeling |
US9264706B2 (en) * | 2012-04-11 | 2016-02-16 | Qualcomm Incorporated | Bypass bins for reference index coding in video coding |
-
2012
- 2012-05-31 US US13/485,225 patent/US9379736B2/en active Active
- 2012-06-01 EP EP12726560.1A patent/EP2754293A1/en not_active Withdrawn
- 2012-06-01 JP JP2014513751A patent/JP5937206B2/ja not_active Expired - Fee Related
- 2012-06-01 CN CN201280026675.2A patent/CN103563381B/zh not_active Expired - Fee Related
- 2012-06-01 KR KR1020147000083A patent/KR101657853B1/ko active IP Right Grant
- 2012-06-01 KR KR1020157028680A patent/KR101812395B1/ko active IP Right Grant
- 2012-06-01 WO PCT/US2012/040491 patent/WO2012167103A1/en active Search and Examination
-
2015
- 2015-04-27 JP JP2015090535A patent/JP6067776B2/ja not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2312854A1 (de) * | 2009-10-15 | 2011-04-20 | Siemens Aktiengesellschaft | Verfahren zur Codierung von Symbolen aus einer Folge digitalisierter Bilder |
Also Published As
Publication number | Publication date |
---|---|
CN103563381A (zh) | 2014-02-05 |
KR101657853B1 (ko) | 2016-09-30 |
US20120328026A1 (en) | 2012-12-27 |
KR20150121251A (ko) | 2015-10-28 |
EP2754293A1 (en) | 2014-07-16 |
JP2014518466A (ja) | 2014-07-28 |
JP6067776B2 (ja) | 2017-01-25 |
WO2012167103A1 (en) | 2012-12-06 |
KR20140017016A (ko) | 2014-02-10 |
JP2015167381A (ja) | 2015-09-24 |
US9379736B2 (en) | 2016-06-28 |
JP5937206B2 (ja) | 2016-06-22 |
KR101812395B1 (ko) | 2017-12-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103563381B (zh) | 对视频数据进行上下文自适应译码 | |
CN103703776B (zh) | 在视频译码中的系数扫描 | |
CN104221380B (zh) | 用于并行运动估计的共同空间候选块 | |
CN104221375B (zh) | 速率失真优化量化中的等级决定 | |
CN103238323B (zh) | 在视频译码中基于视频块的扫描次序对块内的最后有效系数的位置进行译码 | |
CN103999460B (zh) | 在变换跳过模式中译码有效系数信息的方法和装置 | |
CN103329525B (zh) | 用于视频译码的组合参考图片列表建构 | |
CN103190147B (zh) | 用于视频译码的语法元素的联合译码方法及设备 | |
CN103931182B (zh) | 帧内预测视频译码中的非正方形变换 | |
CN107211132B (zh) | 用于大的译码树型单元的上下文 | |
CN103238322B (zh) | 在视频译码中单独地译码视频块的最后有效系数的位置 | |
CN103636215B (zh) | 对视频数据应用非正方形变换 | |
CN104025457B (zh) | 用于最后有效系数位置译码的上下文最优化 | |
CN104067524B (zh) | 具有精简的初始化值集合的上下文自适应熵译码 | |
CN103797802B (zh) | 用于视频译码中的短距离帧内预测的线缓冲器减少 | |
CN103636225A (zh) | 用信号发送用于叶层级译码单元的子集的变换系数的语法元素 | |
CN103891281A (zh) | 检测用于视频译码的相邻视频单元的可用性 | |
CN103299620A (zh) | 在视频译码中使用最可能扫描次序对用于视频块的扫描次序信息进行有效译码 | |
CN104205835B (zh) | 导出最末位置译码的上下文以供视频译码 | |
CN103959775A (zh) | 帧内模式视频译码 | |
CN104025603A (zh) | 最后有效系数的位置的渐进式译码 | |
CN104054339A (zh) | 用信号通知视频译码中的解块滤波器参数 | |
CN103140877A (zh) | 使用帧内预测的视频译码 | |
CN102986216A (zh) | 基于大小及帧内模式或基于边缘检测的用于帧内块的自适应频率变换 | |
CN103141100A (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180119 Termination date: 20190601 |
|
CF01 | Termination of patent right due to non-payment of annual fee |