CN103563371A - 用于视频译码的基于运行模式的系数译码 - Google Patents

用于视频译码的基于运行模式的系数译码 Download PDF

Info

Publication number
CN103563371A
CN103563371A CN201280026338.3A CN201280026338A CN103563371A CN 103563371 A CN103563371 A CN 103563371A CN 201280026338 A CN201280026338 A CN 201280026338A CN 103563371 A CN103563371 A CN 103563371A
Authority
CN
China
Prior art keywords
coefficient
value
decoding
data
code word
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.)
Pending
Application number
CN201280026338.3A
Other languages
English (en)
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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN103563371A publication Critical patent/CN103563371A/zh
Pending legal-status Critical Current

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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/93Run-length coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/18Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

一种视频译码装置经配置以对视频数据的残余块的系数进行译码。当视频数据的变换单元的系数具有小于阈值的扫描次序值时且当所述系数为所述变换单元中的扫描次序中的末位有效系数时,所述视频译码装置可执行函数以确定所述系数的数据与码字索引值之间的映射,且使用与所述码字索引值相关联的码字来对所述系数的所述数据进行译码。在一些实例中,所述视频译码装置可包含视频编码器或视频解码器。

Description

用于视频译码的基于运行模式的系数译码
本申请案主张2011年6月3日申请的第61/493,337号美国临时申请案,2011年7月5日申请的第61/504,673号美国临时申请案及2011年9月23日申请的第61/538,658号美国临时申请案的权益,所述临时申请案中的每一者的全部内容特此以引用的方式并入。
技术领域
本发明涉及视频译码,且更特定来说涉及对视频数据的残余块的系数进行译码。
背景技术
数字视频能力可并入到广泛范围的装置中,所述装置包括数字电视、数字直播系统、无线广播系统、个人数字助理(PDA)、膝上型或桌上型计算机、数字相机、数字记录装置、数字媒体播放器、视频游戏装置、视频游戏控制台、蜂窝式或卫星无线电电话、视频电话会议装置及其类似者。数字视频装置实施视频压缩技术(例如,由MPEG-2、MPEG-4、ITU-T H.263或ITU-T H.264/MPEG-4第10部分高级视频译码(AVC)定义的标准及这些标准的扩展中所描述的视频压缩技术)以较有效地发射及接收数字视频信息。
视频压缩技术执行空间预测及/或时间预测以减少或移除视频序列中所固有的冗余。对于基于块的视频译码来说,可将视频帧或片段分割为宏块。可进一步分割每一宏块。使用关于相邻宏块的空间预测来对经帧内译码(I)的帧或片段中的宏块进行编码。经帧间译码(P或B)的帧或片段中的宏块可使用关于同一帧或片段中的相邻宏块的空间预测或关于其它参考帧的时间预测。
发明内容
大体来说,本发明描述用于对视频数据的块的系数进行译码的技术。视频数据的块(例如,变换单元(TU))可包括多个经量化的变换系数。视频译码装置可使用运行-等级(run-level)模式来对系数进行译码,其中通过“运行”值对非零系数的数据共同地进行译码,所述“运行”值描述当前非零系数与扫描次序中的后续非零系数之间的零值系数的数目。具体来说,非零系数的数据可包含指示所述非零系数是否具有等于“1”或大于一的绝对值的值,其中此数据可包含等级ID值。所述视频译码装置可使用码字来对{运行,等级ID}对进行译码,其中可使用码字映射表来选择所述码字,所述码字映射表提供对应于所述{运行,等级ID}对的码字的码字索引。所述码字可包含可变长度码字或经二进制化的值,所述经二进制化的值可使用二进制算术译码来进一步译码。通常,译码装置使用二维查找表以确定码字索引,其中维度包括当前非零系数的扫描次序中的位置及运行中的零值系数的数目以确定码字索引。本发明提议使用一维表或近似此一维表的函数,以确定所述扫描中的某些位置的码字索引。
在一个实例中,一种对视频数据进行译码的方法包括:当视频数据的变换单元的系数具有小于阈值的扫描次序值时且当所述系数为所述变换单元中的扫描次序中的末位有效系数时:执行函数以确定所述系数的数据与码字索引值之间的映射,且使用与所述码字索引值相关联的码字来对所述系数的所述数据进行译码。
在另一实例中,一种用于对视频数据进行译码的装置,所述装置包括视频译码器,所述视频译码器经配置以:当视频数据的变换单元的系数具有小于阈值的扫描次序值时且当所述系数为所述变换单元中的扫描次序中的末位有效系数时,执行函数以确定所述系数的数据与码字索引值之间的映射,且使用与所述码字索引值相关联的码字来对所述系数的所述数据进行译码。
在另一实例中,一种装置包括:用于当视频数据的变换单元的系数具有小于阈值的扫描次序值时且当所述系数为所述变换单元中的扫描次序中的末位有效系数时执行函数以确定所述系数的数据与码字索引值之间的映射的装置;及用于当所述系数具有所述扫描次序值时且当所述系数为所述变换单元中的所述扫描次序中的所述末位有效系数时使用与所述码字索引值相关联的码字来对所述系数的所述数据进行译码的装置。
在另一实例中,一种计算机程序产品包括计算机可读媒体,所述计算机可读媒体具有存储于其上的指令,所述指令在被执行时使用于对视频数据进行译码的装置的处理器在视频数据的变换单元的系数具有小于阈值的扫描次序值时且当所述系数为所述变换单元中的扫描次序中的末位有效系数时,执行函数以确定所述系数的数据与码字索引值之间的映射,且使用与所述码字索引值相关联的码字来对所述系数的所述数据进行译码。
在随附图式及以下描述中阐述一个或一个以上实例的细节。其它特征、目标及优点将通过所述描述及所述图式以及通过权利要求书显而易见。
附图说明
图1为说明可利用用于对视频数据的块的系数进行译码的技术的实例视频编码及解码系统的框图。
图2为说明可实施用于对视频数据的块的系数进行译码的技术的视频编码器的实例的框图。
图3为说明可实施用于对视频数据的块的系数进行译码的技术的视频解码器的实例的框图。
图4为说明视频数据的块的系数的实例锯齿形扫描的概念图。
图5为说明用于对当前块进行编码的实例方法的流程图。
图6为说明用于对当前块的系数的码字索引进行编码的实例方法的流程图。
图7为说明用于对视频数据的当前块进行解码的实例方法的流程图。
图8为说明用于对当前块的系数的码字索引进行解码的实例方法的流程图。
具体实施方式
大体来说,本发明描述用于对视频数据的块的系数进行译码的技术。视频数据包括迅速连续地播放以模拟运动的帧(或图片)的序列。可将所述帧中的每一者划分为块。
视频编码器试图通过利用空间及时间冗余来压缩视频数据。举例来说,视频编码器可通过相对于相邻的先前译码的块来对一块进行译码而利用空间冗余。同样,视频编码器可通过相对于先前译码的块的数据来对一块进行译码而利用时间冗余。特定来说,视频编码器可根据空间相邻者的数据或根据先前译码的帧的数据来预测当前块,接着可按照所述块的实际值与所述块的所预测值之间的差来计算所述块的残余值。一块的残余包括像素(或空间)域中的逐个像素差值。
视频编码器可接着将变换应用于所述残余(也称作变换单元(TU))的值以试图将所述值的能量压缩为变换域(例如,频域)中的相对较小数目个系数。视频编码器可接着将变换系数量化。视频编码器可进一步扫描经量化的变换系数以将经量化的变换系数的二维矩阵转换为包括经量化的变换系数的一维向量。扫描系数的过程有时称作将系数串行化。
视频编码器可接着应用熵译码过程以对经扫描系数进行熵编码。熵译码大体上包括上下文自适应性可变长度译码(CAVLC)及上下文自适应性二进制算术译码(CABAC)。CAVLC大体上包括可变长度码字(VLC)表的选择,其中码字表将待编码的值映射到可变长度码字。大体来说,VLC表经建构以使得较短长度的码字指派给具有较高概率的符号或值,而较长长度的码字指派给具有较低概率的符号或值。在CAVLC中,通常以从最高频率到最低频率的次序来扫描系数。在CABAC中,待译码的数据可首先经二进制化,从而形成经二进制化的值,且所述经二进制化的值可接着经二进制算术译码。二进制化表可提供经二进制化的值与待二进制化的数据(或者,对于解码器来说,经二进制化的值与对应数据)之间的映射。
替代直接对系数的值(也就是说,等级)进行译码,视频译码装置可对表示一对值的值进行译码,所述对值指示:在下一非零系数与当前非零系数之间的所述扫描中的零值系数的数目(称为术语“运行”或“零运行长度”);及当前系数是否具有等于一或大于一的绝对值的指示符(称为术语“等级ID”)。此对值可映射到码字索引(称作“cn”),且所述码字索引可对应于选定表中的码字的索引。也就是说,码字映射表可将{运行,等级ID}对映射到码字索引值cn,且所述值cn可对应于表中的码字。举例来说,值cn可对应于VLC表中的VLC码字或二进制化表中的经二进制化的值。
视频译码装置可基于所述扫描中的当前系数的位置来确定{运行,等级ID}对到cn的映射。使值k对应于当前系数与反向扫描次序的末位系数(也就是说,反向扫描中的最后系数)之间的系数的数目。另外,使E(运行,k)表示传回待在确定位置k处{运行,等级ID}对的cn值时使用的值的函数。是否使用E(运行,k)可基于k是否小于阈值。
本发明提供用于针对某些特殊情况使用函数而非二维表的技术。举例来说,函数可用于如下特殊情况:对于当前系数来说,k小于所述阈值,运行=k+1且等级ID=0。使E1(k)表示此函数。此为特殊情况,因为其对应于反向扫描中的末位有效(也就是说,为非零值)系数。以下伪码提供用于使用经修改的E1(k)函数的实例基于编码器的方法:
编码器:
Figure BDA0000425559050000041
以上伪码的实施及执行表示对数据进行译码(也就是说,编码)的方法的实例,所述方法包括:当视频数据的变换单元的系数具有小于阈值(T)的扫描次序值(k)时且当所述系数为变换单元中的扫描次序中的末位有效系数(也就是说,run==k+1)时,执行函数(E1(k))以确定所述系数的数据与码字索引值(cn=E1(k))之间的映射,且使用与所述码字索引值相关联的码字来对所述系数的所述数据进行译码。
以下伪码提供实例基于解码器的方法,其与以上所论述的方法互逆。
解码器:
Figure BDA0000425559050000052
以上伪码的实施及执行表示对视频数据进行译码(也就是说,解码)的方法的实例,所述方法包括:当视频数据的变换单元的系数具有小于阈值(T)的扫描次序值(k)时且当所述系数为变换单元中的扫描次序中的末位有效系数(cn==E1(k))时,执行函数(E1(k))以确定所述系数的数据与码字索引值(cn)之间的映射,且使用与所述码字索引值相关联的码字来对所述系数的所述数据进行译码。
以此方式,以上伪码的两个集合表示一种方法的实例,所述方法包括:当视频数据的变换单元的系数具有小于阈值的扫描次序值时且当所述系数为变换单元中的扫描次序中的末位有效系数时,执行函数以确定所述系数的数据与码字索引值之间的映射,且使用与所述码字索引值相关联的码字来对所述系数的所述数据进行译码。也就是说,根据本发明的技术,编码器及解码器两者可经配置以执行类似方法以对某些扫描次序位置的{运行,等级ID}对进行译码。
在以上所论述的实例中,E1(k)用于如下特殊情况:对于当前系数来说,运行=k+1且等级ID=0。可向其它特殊情况指派用于确定码字索引的函数。举例来说,使runLeft(k)定义为在扫描次序位置k及紧接扫描次序位置k左侧的位置处的系数之间的扫描次序中的系数的数目。换句话说,如果扫描次序位置k处的系数具有位置(x,y),则runLeft(k)传回到达位置(x-1,y)的扫描次序中的系数的数目。对于具有{运行,等级ID}的扫描位置k处的给定系数来说,当运行等于runLeft(k)时,函数E2(k)可用以确定{运行,等级ID}的码字索引。
类似地,当运行等于runTop(k)时,函数E3(k)可用以确定位置k处的{运行,等级ID}的码字索引,其中runTop(k)传回到达当前系数位置上方的位置的扫描次序中的系数的数目。也就是说,假设扫描次序位置k中的当前系数具有位置(x,y),则runTop(k)传回到达位置(x,y-1)的扫描次序中的系数的数目。
替代仅使用一个阈值,在一些实例中,可使用两个阈值来确定k是否在三个范围中的一者内:k<T0,T0<=k<T1或T1<=k。以此方式,以上所论述的实例可仅在T0<=k<T1时适用(例如,可使用E1(k));在其它情况下,可使用用于选择码字索引cn的常规方法。
在以上实例中,所述阈值可由用户(例如,设计者或管理者)或视频编码器选择。可用信号发送所述选定的阈值,例如,在图片参数集合(PPS)、片段参数集合(SPS)或自适应参数集合(APS)中用信号发送。或者,所述阈值的值可基于旁侧信息而自适应性地确定,所述旁侧信息例如为图片大小、图片类型、块大小、预测模式(例如,帧间、帧内)、QP(量化参数)、分割模式(例如,2N×2N、N×N)、运动向量值、运动向量预测子值中的一者或一者以上。所述旁侧信息可为当前块的可用旁侧信息,或可为来自己编码/解码的块的旁侧信息。
图1为说明可利用用于对视频数据的块的系数进行译码的技术的实例视频编码及解码系统10的框图。如图1所示,系统10包括源装置12,所述源装置12经由通信信道16将经编码的视频发射到目的地装置14。源装置12及目的地装置14可包含广泛范围的装置中的任一者。在一些情况下,源装置12及目的地装置14可包含无线通信装置,例如,无线手持机、所谓的蜂窝式或卫星无线电电话,或可经由通信信道16传达视频信息的任何无线装置,在此情况下,通信信道16为无线的。然而,涉及对视频数据的块的系数进行译码的本发明的技术未必限于无线应用或设定。举例来说,这些技术可适用于空中电视广播、有线电视发射、卫星电视发射、因特网视频发射、编码到存储媒体上的经编码的数字视频,或其它情形。相应地,通信信道16可包含适合于经编码的视频数据的发射或存储的无线、有线或存储媒体的任何组合。
在图1的实例中,源装置12包括视频源18、视频编码器20、调制器/解调器(调制解调器)22及发射器24。目的地装置14包括接收器26、调制解调器28、视频解码器30及显示装置32。根据本发明,源装置12的视频编码器20可经配置以应用用于对视频数据的块的系数进行译码的技术。在其它实例中,源装置及目的地装置可包括其它组件或布置。举例来说,源装置12可从外部视频源18(例如,外部相机)接收视频数据。同样,目的地装置14可与外部显示装置介接,而非包括集成显示装置。
图1所说明的系统10仅为一个实例。可通过任何数字视频编码及/或解码装置来执行用于对视频数据的块的系数进行译码的技术。尽管一般通过视频编码装置来执行本发明的技术,但也可通过视频编码器/解码器(通常被称为“编解码器”)来执行所述技术。此外,也可通过视频预处理器来执行本发明的技术。源装置12及目的地装置14仅为这些译码装置的实例,在所述译码装置中,源装置12产生用于发射到目的地装置14的经译码的视频数据。在一些实例中,装置12、14可按实质上对称的方式进行操作,使得装置12、14中的每一者包括视频编码及解码组件。因此,系统10可支持视频装置12、14之间的单向或双向视频发射,例如,用于视频流式传输、视频回放、视频广播或视频电话。
源装置12的视频源18可包括例如摄像机的视频俘获装置、含有先前俘获的视频的视频存档及/或来自视频内容提供者的视频馈入。作为另一替代,视频源18可产生作为源视频的基于计算机图形的数据,或直播视频、存档视频及计算机产生的视频的组合。在一些情况下,如果视频源18为摄像机,则源装置12及目的地装置14可形成所谓的相机电话或视频电话。然而,如上文所提及,本发明中所描述的技术一般可适用于视频译码,且可应用于无线及/或有线应用。在每一情况下,可通过视频编码器20对经俘获的视频、经预俘获的视频或计算机产生的视频进行编码。可接着通过调制解调器22根据通信标准调制经编码的视频信息,且经由发射器24将经编码的视频信息发射到目的地装置14。调制解调器22可包括各种混频器、滤波器、放大器或经设计以用于信号调制的其它组件。发射器24可包括经设计以用于发射数据的电路,包括放大器、滤波器及一个或一个以上天线。
目的地装置14的接收器26经由信道16接收信息,且调制解调器28解调所述信息。同样,视频编码过程可实施本文中所描述的技术中的一者或一者以上以对视频数据的块的系数进行译码。经由信道16传达的信息可包括由视频编码器20定义的语法信息,所述语法信息也可由视频解码器30使用,包括描述块及其它经译码的单元(例如,GOP)的特性及/或处理的语法元素。显示装置32向用户显示经解码的视频数据,且可包含多种显示装置中的任一者,例如,阴极射线管(CRT)、液晶显示器(LCD)、等离子显示器、有机发光二极管(OLED)显示器或另一类型的显示装置。
在图1的实例中,通信信道16可包含任何无线或有线通信媒体,例如,射频(RF)频谱或一个或一个以上物理传输线、或无线及有线媒体的任何组合。通信信道16可形成基于包的网络(例如,局域网络、广域网络或例如因特网的全球网络)的一部分。通信信道16大体上表示用于将视频数据从源装置12发射到目的地装置14的任何合适通信媒体或不同通信媒体的集合,包括有线或无线媒体的任何合适组合。通信信道16可包括路由器、交换器、基站,或可用于促进从源装置12到目的地装置14的通信的任何其它设备。在其它实例中,源装置12可将经编码的数据存储到存储媒体上,而非发射所述数据。同样,目的地装置14可经配置以从存储媒体检索经编码的数据。
视频编码器20及视频解码器30可根据例如ITU-T H.264标准(或者被称作MPEG-4第10部分(高级视频译码(AVC)))的视频压缩标准进行操作。然而,本发明的技术不限于任何特定译码标准。其它实例包括MPEG-2及ITU-T H.263。虽然未展示于图1中,但在一些方面中,视频编码器20及视频解码器30可各自与音频编码器及解码器集成,且可包括适当多路复用器-多路分用器单元或其它硬件及软件以处置共同数据流或分离数据流中的音频及视频两者的编码。如果适用,则多路复用器-多路分用器单元可符合ITUH.223多路复用器协议或例如用户数据报协议(UDP)的其它协议。
ITU-T H.264/MPEG-4(AVC)标准由ITU-T视频译码专家组(VCEG)连同ISO/IEC动画专家组(MPEG)一起制定以作为被称为联合视频小组(JVT)的集体合作的产物。在一些方面中,本发明中所描述的技术可应用于大体符合H.264标准的装置。H.264标准由ITU-T研究组2005年3月在ITU-T建议H.264(用于一般视听服务的高级视频译码)中描述,其在本文中可被称作H.264标准或H.264规范或H.264/AVC标准或规范。联合视频小组(JVT)继续致力于对H.264/MPEG-4AVC的扩展。
视频编码器20及视频解码器30可各自实施为多种合适编码器电路中的任一者,例如,一个或一个以上微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、离散逻辑、软件、硬件、固件或其任何组合。视频编码器20及视频解码器30中的每一者可包括于一个或一个以上编码器或解码器中,所述一个或一个以上编码器或解码器中的任一者可在相应相机、计算机、移动装置、订户装置、广播装置、机顶盒、服务器或其类似者中作为组合式编码器/解码器(编解码器)的一部分集成。
视频序列通常包括一系列视频帧。图片群组(GOP)大体上包含一系列一个或一个以上视频帧。GOP可在GOP的标头、GOP的一个或一个以上帧的标头中或在别处包括语法数据,所述语法数据描述包括于GOP中的帧的数目。每一帧可包括描述相应帧的编码模式的帧语法数据。视频编码器20通常对个别视频帧内的视频块进行操作,以便对视频数据进行编码。视频块可对应于块或块的分割区。视频块可具有固定或变化大小,且可根据指定译码标准而大小不同。每一视频帧可包括多个片段。每一片段可包括可布置为分割区(也称作子块)的多个块。
作为一实例,ITU-T H.264标准支持各种块大小(例如,针对明度分量的16×16、8×8或4×4及针对色度分量的8×8)的帧内预测,以及各种块大小(例如,针对明度分量的16×16、16×8、8×16、8×8、8×4、4×8及4×4以及针对色度分量的对应的按比例调整的大小)的帧间预测。在本发明中,可根据垂直及水平尺寸互换地使用“N×N”及“N乘N”来指代块的像素尺寸,例如,16×16像素或16乘16像素。大体来说,16×16块将在垂直方向上具有16个像素(y=16)且在水平方向上具有16个像素(x=16)。同样,N×N块大体上在垂直方向上具有N个像素且在水平方向上具有N个像素,其中N表示非负整数值。可将块中的像素布置成行及列。此外,块未必需要在水平方向上与在垂直方向上具有相同数目个像素。举例来说,块可包含N×M像素,其中M未必等于N。
小于16乘16的块大小可称作16乘16块的分割区。视频块可包含像素域中的像素数据的块,或变换域中的变换系数的块,例如,在利用例如以下变换的变换之后:离散余弦变换(DCT)、整数变换、小波变换或对表示经译码的视频块与预测性视频块之间的像素差的冗余视频块数据进行的概念上类似的变换。在一些情况下,视频块可包含变换域中的经量化的变换系数的块。
较小视频块可提供较佳分辨率,且可用于包括高级别细节的视频帧的位置。大体来说,可将块及各分割区(有时称作子块)视为视频块。另外,可将一片段视为多个视频块,例如,块及/或子块。每一片段可为视频帧的可独立解码单元。或者,帧自身可为可解码单元,或帧的其它部分可被定义为可解码单元。术语“译码单元”可指代视频帧的任何可独立解码单元,例如,整个帧、帧的片段、也称作序列的图片群组(GOP),或根据适用译码技术定义的另一可独立解码单元。
当前正努力开发新的视频译码标准,当前称作高效率视频译码(HEVC)。所述即将到来的标准也称作H.265。所述标准化努力是基于称作HEVC测试模型(HM)的视频译码装置的模型。所述HM假定视频译码装置相比根据(例如)ITU-T H.264/AVC的装置提供若干能力。举例来说,H.264提供九个帧内预测编码模式,而HM提供多达三十四个帧内预测编码模式。
HEVC将视频数据的块称作译码单元(CU),其可包括一个或一个以上预测单元(PU)及/或一个或一个以上变换单元(TU)。位流内的语法数据可定义最大译码单元(LCU),其为根据像素的数目来说的最大译码单元。大体来说,CU具有与H.264的宏块类似的用途,除了CU不具有大小区别以外。因此,CU可分裂为子CU。大体来说,本发明中对CU的引用可指代图片的最大译码单元或LCU的子CU。LCU可分裂为子CU,且每一子CU可进一步分裂为子CU。位流的语法数据可定义可分裂LCU的最大次数,称作CU深度。因此,位流还可定义最小译码单元(SCU)。本发明还使用术语“块”以指代CU、PU或TU中的任一者。
LCU可与四叉树数据结构相关联。大体来说,四叉树数据结构包括每一CU一个节点,其中根节点对应于LCU。如果一CU分裂为四个子CU,则对应于所述CU的节点包括四个叶节点,其中每一者对应于所述子CU中的一者。四叉树数据结构的每一节点可提供对应CU的语法数据。举例来说,四叉树中的一节点可包括一分裂旗标,其指示对应于所述节点的CU是否分裂为子CU。CU的语法元素可递归地进行定义,且可取决于CU是否分裂为子CU。如果CU未进一步分裂,则其称作叶CU。在本发明中,叶CU的4个子CU将也被称作叶CU,但是不存在原始叶CU的明确分裂。举例来说,如果16×16大小的CU不进一步分裂,则四个8×8子CU将也称作叶CU,但是所述16×16CU从未分裂过。
此外,叶CU的TU也可与相应四叉树数据结构相关联。也就是说,叶CU可包括四叉树,其指示所述叶CU如何分割为TU。本发明将指示LCU如何分割的四叉树称作CU四叉树,且将指示叶CU如何分割为TU的四叉树称作TU四叉树。TU四叉树的根节点大体上对应于叶CU,而CU四叉树的根节点大体上对应于LCU。未分裂的TU四叉树的TU称作叶TU。
叶CU可包括一个或一个以上预测单元(PU)。大体来说,PU表示对应CU的全部或其一部分,且可包括用于检索PU的参考样本(也就是说,参考像素值)的数据。举例来说,当PU得以帧间模式编码时,PU可包括定义PU的运动向量的数据。定义运动向量的数据可描述(例如)运动向量的水平分量、运动向量的垂直分量、运动向量的分辨率(例如,四分之一像素精度或八分之一像素精度)、运动向量所指向的参考帧及/或运动向量的参考列表(例如,列表0或列表1)。定义PU的叶CU的数据还可描述(例如)将CU分割为一个或一个以上PU。分割模式可取决于CU是未经译码、经帧内预测模式编码或是经帧间预测模式编码而不同。对于帧内译码来说,可将PU视为与以下所描述的叶变换单元相同。
叶CU可包括一个或一个以上变换单元(TU)。如以上所论述,可使用TU四叉树结构来指定变换单元。也就是说,分裂旗标可指示叶CU是否分裂为四个变换单元。接着,每一变换单元可进一步分裂为4个子TU。当TU不进一步分裂时,其可称作叶TU。大体来说,对于帧内译码来说,属于叶CU的所有叶TU共享相同帧内预测模式。也就是说,相同帧内预测模式大体上适用于计算叶CU的所有TU的所预测值。对于帧内译码来说,视频编码器可使用帧内预测模式来计算每一叶TU的残余值,作为对应于TU的预测性值的部分与原始块之间的差。所述残余值可得以变换、量化且扫描。对于帧间译码来说,视频编码器可在PU等级执行预测,且可计算每一PU的残余。对应于叶CU的残余值可得以变换、量化且扫描。对于帧间译码来说,叶TU可大于或小于PU。对于帧内译码来说,PU可与对应叶TU在同一位置。在一些实例中,叶TU的最大大小可为对应叶CU的大小。
大体来说,除非另外指出,否则本发明分别使用术语CU及TU来指代叶CU及叶TU。大体来说,本发明的技术涉及CU的数据的变换、量化、扫描及熵编码。作为一实例,本发明的技术包括基于用以预测经帧内预测的块的帧内预测模式来选择用以变换所述块的残余值的变换。本发明还使用术语“定向变换”或“经设计变换”来指代取决于帧内预测模式方向的此变换。也就是说,视频编码器可选择定向变换以应用于变换单元(TU)。如以上所注明,帧内预测包括根据图片的先前译码的CU及TU来预测同一图片的当前CU的TU。更具体来说,视频编码器可使用特定帧内预测模式来对图片的当前TU进行帧内预测。
在用以产生预测性数据及残余数据的帧内预测性或帧间预测性译码之后,且在用以产生变换系数的任何变换(例如,H.264/AVC中所使用的4×4或8×8整数变换或离散余弦变换(DCT)或其它概念上类似的变换)之后,可执行变换系数的量化。量化大体上指代将变换系数量化以可能地减少用以表示所述系数的数据的量的过程。所述量化过程可减小与所述系数中的一些或全部相关联的位深度。举例来说,可在量化期间将n位值降值舍位成m位值,其中n大于m。
在量化之后,可(例如)根据内容自适应性可变长度译码(CAVLC)、上下文自适应性二进制算术译码(CABAC)或另一熵译码方法来执行经量化的数据的熵译码。视频编码器20可使用VLC在运行模式下对经量化的变换系数进行译码。替代直接对系数的值进行译码,视频译码装置可对表示一对值的值进行译码,所述对值指示:在末位非零系数与当前系数之间的扫描中的零值系数的数目(称为术语“运行”或“零运行长度”);及当前系数是否具有等于一或大于一的绝对值的指示符(称为术语“等级ID”)。
在HEVC测试模型中,针对系数位置k的每一值来指定{等级ID,运行}与码字号cn之间的映射。在当前测试模型(HM3.0)中,存在两种不同方法,且这两种方法之间的选择取决于比较当前非零系数位置k与阈值T。详细过程如下:
编码器:
Figure BDA0000425559050000121
Figure BDA0000425559050000131
对于k<T,当前HEVC方案在编码器处存储二维表E(运行,k)且在解码器处存储二维表D(运行,k)。表的大小取决于阈值T的值。当T=28时,编码器及解码器两者存储434个元素。
根据本发明的技术,对于在特定扫描次序位置处的系数来说,视频编码器20可确定码字索引(称作“cn”),且所述码字索引可对应于选定表(例如,VLC表或二进制化表)中的码字的索引。也就是说,码字映射表可将{运行,等级ID}对映射到码字索引值cn,且所述值cn可对应于表中的一码字,其中所述码字可包含VLC码字或可随后经二进制算术译码的经二进制化的值。
视频编码器20可基于所述扫描中的当前系数的位置来确定{运行,等级ID}对到cn的映射。使值k对应于当前系数与反向扫描次序的末位系数(也就是说,反向扫描中的最后系数)之间的系数的数目。另外,使E(运行,k)表示传回待在确定位置k处{运行,等级ID}对的cn值时使用的值的函数。是否使用E(运行,k)可基于k是否小于阈值。
本发明提供用于针对某些特殊情况使用函数而非二维表的技术。举例来说,视频编码器20可执行可用于如下特殊情况的函数:对于当前系数来说,k小于所述阈值,运行=k+1且等级ID=0。使E1(k)表示此函数。这是一种特殊情况,因为其对应于反向扫描中的末位有效(也就是说,为非零值)系数。以下伪码提供用于使用经修改的E1(k)函数的实例基于编码器的方法。
编码器:
Figure BDA0000425559050000141
以此方式,视频编码器20表示译码装置的一实例,其经配置以:当视频数据的变换单元的系数具有小于阈值的扫描次序值时且当所述系数为变换单元中的扫描次序中的末位有效系数时,执行函数以确定所述系数的数据与码字索引值之间的映射,且使用与所述码字索引值相关联的码字来对所述系数的所述数据进行译码。
视频编码器20可(例如)在帧标头、块标头、片段标头或GOP标头中进一步将语法数据(例如,基于块的语法数据、基于帧的语法数据及基于GOP的语法数据)发送到视频解码器30。GOP语法数据可描述相应GOP中的众多帧,且帧语法数据可指示用以对对应帧进行编码的编码/预测模式。
视频解码器30可经配置以执行类似于以上所描述的用于对经量化的变换系数进行解码的方法的方法。举例来说,视频解码器30可根据以下伪码来执行一种方法:
解码器:
Figure BDA0000425559050000142
Figure BDA0000425559050000151
以此方式,视频解码器30还表示译码装置的一实例,其经配置以:当视频数据的变换单元的系数具有小于阈值的扫描次序值时且当所述系数为变换单元中的扫描次序中的末位有效系数时,执行函数以确定所述系数的数据与码字索引值之间的映射,且使用与所述码字索引值相关联的码字来对所述系数的所述数据进行译码。
在一些实例中,可基于以上所描述的技术(例如,针对特定位置使用函数或一维表)来确定针对k<T在cn与{运行,等级ID}之间的映射。在一些实例中,针对k>=T的映射可按与常规HEVC相同的方式进行确定。
根据一些实例,码字号是基于以下规则导出:
1.对于任何可能的i,j,cn(运行_i,等级ID=0)<cn(运行_j,等级ID=1)。
2.除了运行=k+1的情况以外,如果i>j,则cn(运行_i,等级ID)>cn(运行_j,等级ID)。
关于以上两个规则,规则1指示,向与等级ID0相关联的每个运行指派小于与等级ID1相关联的任何运行的码号的码号。
可执行运行2,以使得在给定等级ID值的情况下,向较短运行指派小于较长运行的码号的码号,除了具有值k+1的运行的情况以外。
可见,基于所述两个规则,取决于将何码号指派给具有值k+1的运行的情况,每一{运行,等级ID}的码号得以确定。归因于具有值k+1的运行的情况的高的出现可能性,发现基于运行值的码号指派对于此情况来说并非如此最佳。可基于值k(即,当前系数位置)针对此情况提供特殊码号。
根据一些实例,在将码号指派给每一{运行,等级ID}对时,仅具有值k+1的运行的情况需要特殊码号,而对于其它情况来说,码号的指派遵循以上两个规则1及2。
根据一些实例,针对具有值k+1的运行的情况的码号可保存于一维表E1(k)中。当T=28时,存储了28个元素。应注意,将这些特殊码号保存于一表中仅为一个实例。在一些实例中,E1(k)的值也可经由一公式获得,以使得不需要明确地存储E1(k)的元素。
可基于以上两个编码规则及映射表E1(k)简单地导出解码规则。表E1(k)的大小为T。当T=28时,仅存储了28个元素。同样,在一些实例中,E1(k)的值也可经由一公式获得,以使得不需要明确地存储E1(k)的元素。
可如下描述编码及解码过程的细节:
在编码器侧,在E1(k)函数及预定义的两个规则的帮助下,根据下文重写的以上编码器伪码,码号cn可由视频编码器20如下导出(基于E1(k)、运行、等级ID及位置索引值k)。
编码器:
Figure BDA0000425559050000161
Figure BDA0000425559050000171
在解码器侧,可执行如下互逆操作以通过视频解码器30根据下文重写的以上解码器伪码基于码号cn的值及当前系数的位置索引值k导出运行及等级ID值。
解码器:
作为另一实例,以上所描述的方法可应用于T1>k>=T0(实例1为当T0=T及T1=0时的特殊情况)。当k<T0或k>=T1时,使用不同方法。在此实例中,T1及T0表示不同阈值。视频编码器20可根据以下实例伪码来执行一方法:
编码器:
Figure BDA0000425559050000181
视频解码器30可经配置以执行类似但互逆的方法。
作为又一实例,由用户或编码器选择T0及/或T1及/或一维映射表E1(k)的值,且将选定值发射到解码器作为开销信息。举例来说,所述选定值可在PPS(图片参数集合)、SPS(片段参数集合)或APS(自适应参数集合)中发射。
在一些实例中,T0及/或T1及/或一维映射表E1(k)的值可基于旁侧信息而自适应性地确定,所述旁侧信息例如为图片大小、图片类型、块大小、预测模式(例如,帧间、帧内)、QP(量化参数)、分割模式(2N×2N、N×N)、运动向量值、运动向量预测子值。所述旁侧信息可为当前块的可用旁侧信息,或可为来自己编码/解码的块的旁侧信息。
在一些实例中,使用一维表E2(k)来指定cn与(运行,等级ID)=(运行0,等级0)之间的映射。运行0的一些实例值为运行_l、运行_t及k+1,其中运行_l对应于反向锯齿形扫描中的先前非零系数的左侧位置,且运行_t对应于先前系数的上侧位置。以下更详细描述的图4提供扫描的实例及这些位置。举例来说,在4×4块中,当k=7时,先前系数在位置8(图4中的102J)处。位置8的左侧位置为位置3(图4中的102I),其对应于运行=4,因此运行_l=4。位置8的上侧位置为位置4(图4中的102F),其对应于运行=3,因此运行_t=3。编码器使用映射表E2(k)以将(运行,等级ID)映射到码号cn,且解码器执行逆向映射。
在一些实例中,使用若干一维表Ei(k)来定义(运行,等级ID)与cn之间的映射。举例来说,E1(k)定义cn与(运行,等级ID)=(k+1,0)之间的映射;E2(k)定义cn与(运行,等级ID)=(运行_l,0)之间的映射;且E3(k)定义cn与(运行,等级ID)=(运行_t,0)之间的映射。对于其它(运行,等级ID)来说,可使用其它方法来定义其到cn的映射。
视频编码器20及视频解码器30可各自实施为多种合适编码器或解码器电路中的任一者(在适用时),例如,一个或一个以上微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、离散逻辑电路、软件、硬件、固件或其任何组合。视频编码器20及视频解码器30中的每一者可包括于一个或一个以上编码器或解码器中,所述一个或一个以上编码器或解码器中的任一者可作为组合式视频编码器/解码器(编解码器)的一部分集成。包括视频编码器20及/或视频解码器30的装置可包含集成电路、微处理器及/或无线通信装置(例如,蜂窝式电话)。
使用函数或一维表以(例如)基于扫描次序中的特定位置来确定特定{运行,等级ID}对的码字索引可提供各种益处。举例来说,用一维表或函数来替换二维表可减少视频译码装置的存储器存储要求。在一些实例中,相比于使用二维表,使用函数或一维表可较快地执行码字索引值的查找。
图2为说明可实施用于对视频数据的块的系数进行译码的技术的视频编码器20的实例的框图。视频编码器20可执行视频帧内的块(包括宏块,或宏块的分割区或子分割区)的帧内及帧间译码。帧内译码依赖于空间预测以减少或移除给定视频帧内的视频的空间冗余。帧间译码依赖于时间预测以减少或移除视频序列的邻近帧内的视频的时间冗余。帧内模式(I模式)可指代若干基于空间的压缩模式中的任一者,且例如单向预测(P模式)或双向预测(B模式)的帧间模式可指代若干基于时间的压缩模式中的任一者。
典型视频编码器将原始视频序列的每一帧分割为称为“块”的相连矩形区域。这些块以“帧内模式”(I模式)或以“帧间模式”(P模式或B模式)进行编码。
对于P模式来说,编码器(且更特定来说,运动估计单元42)可首先搜索类似于在先前译码的“参考帧”(表示为Fref)中编码的块的块。大体上将搜索限制为与待编码的块相距不超过特定空间移位。当已识别最佳匹配或“预测”时,其以二维(2D)运动向量(Δx,Δy)的形式表达,其中Δx为水平移位且Δy为垂直移位。所述运动向量连同参考帧可用以建构所预测块Fpred
Fpred(x,y)=Fref(x+Δx,y+Δy)
帧内的像素的位置是以(x,y)表示。
对于以I模式编码的块来说,所预测块是使用空间预测根据同一帧内的先前编码的相邻块形成。视频编码器20的帧内预测单元46可按I模式对块进行编码。
对于I模式及P模式两者来说,将预测误差(即,正编码块与所预测块之间的差)表示为某一离散变换的加权基函数的集合。变换通常(例如)通过变换处理单元52基于32×32、16×16、8×8或4×4块来执行。如32×16/16×32、32×8/8×32…的其它变换也是可能的。权重(变换系数)随后(例如)由量化单元54进行量化。量化引入了信息损耗,因此经量化的系数具有比原始系数低的精度。
经量化的变换系数及运动向量是“语法元素”的实例。这些经量化的变换系数及运动向量加上某些控制信息形成了视频序列的完整的经译码的表示。在从编码器发射到解码器之前,所有语法元素均得以熵译码(例如,通过熵译码单元56),借此进一步减少了其表示所需要的位的数目。熵译码为无损耗操作,其旨在通过利用需要用以表示所发射或所存储符号(语法元素)的位的分布的性质(一些符号比另一些更频繁地出现)而使得所述位的数目最小。
视频译码器所使用的熵译码的一种方法为可变长度码(VLC)。在VLC译码的情况下,可首先向经译码的符号中的每一者指派一码字号。当存在待译码的n个符号时,每一符号可被指派一码字号,码字号的范围为0至n-1。在这些码字号中的每一者之后,指派一码字(0及1的串)。可将较短码字指派给具有较高概率的符号。此外,所述码字必须可唯一地解码,即,如果解码器接收有限长度的位的有效序列,则必须存在当被编码时本应产生位的所接收的序列的输入符号的仅有的一个可能序列。
熵译码的另一方法为上下文自适应性二进制算术译码(CABAC)。在CABAC中,可向待编码的值(例如,变换系数或{运行,等级ID}对)指派经二进制化的值。所述经二进制化的值可接着经算术译码。根据本发明的技术,码字可对应于经二进制化的值。因此,视频编码器20可通过确定经二进制化的值的码字索引来确定系数的经二进制化的值。因此,在本发明中对确定码字的引用应被理解为包括VLC码字的确定及经二进制化的值的确定两者,VLC码字及经二进制化的值可使用(例如)例如CABAC的算术译码进一步译码。
为了正确地对位流进行解码,编码器及解码器两者使用码字的同一集合(例如,同一表)及符号到码字的相同指派。如之前所提及,为了将压缩最大化,应向最频繁出现的符号指派最短码字。然而,不同符号的频率(概率)可取决于经编码的图像的类型而改变。使用码字的单一集合及符号到那些码字的单一指派(符号到码字号的映射)将因此降低译码效率。
为了矫正此问题,使用不同自适应方法。对于符号的集合来说,码字的众多集合可为可用的。使用这些集合中的哪一者可取决于编码器及解码器两者已知的信息(例如,经译码的块的类型(I型块、P型块或B型块)、分量(明度或色度)或QP值)。性能取决于用以在码字之间切换的参数表征符号统计多么好。
可通过在量化变换系数时调整量化参数(QP)的值来控制压缩比(即,用以表示原始序列与经压缩的序列的位的数目的比率)。压缩比还取决于所使用的熵译码的方法。在一些实例中,模式选择单元40通过执行多个译码遍次(每一遍次使用不同QP)来确定待使用的QP,且选择最佳平衡用以对视频数据进行译码的位的数目与引入到视频数据中的失真量(例如,在称作速率失真优化(RDO)的过程中)的QP。
如图2中所示,视频编码器20接收待编码的视频帧内的当前视频块。在图2的实例中,视频编码器20包括运动补偿单元44、运动估计单元42、参考帧存储器64、求和器50、变换处理单元52、量化单元54及熵译码单元56。对于视频块重建来说,视频编码器20还包括逆量化单元58、逆变换单元60及求和器62。还可包括解块滤波器(图2中未图示)以对块边界进行滤波,从而从经重建的视频移除块效应假影。需要时,解块滤波器将通常对于求和器62的输出进行滤波。
在编码过程期间,视频编码器20接收待译码的视频帧或片段。可将所述帧或片段划分为多个视频块。运动估计单元42及运动补偿单元44相对于一个或一个以上参考帧中的一个或一个以上块执行所接收的视频块的帧间预测性译码,以提供时间压缩。帧内预测单元46还可相对于与待译码的块相同的帧或片段中的一个或一个以上相邻块来执行所接收的视频块的帧内预测性译码,以提供空间压缩。
模式选择单元40可(例如)基于误差结果而选择译码模式(帧内或帧间)中的一者,且将所得经帧内译码的块或经帧间译码的块提供到求和器50以产生残余块数据,且提供到求和器62以重建经编码的块以用作参考帧。如以上所解释,模式选择单元40可使用速率失真优化来选择适当译码模式连同其它译码特性(例如,QP)。
运动估计单元42及运动补偿单元44可极其集成,但出于概念性目的而独立地进行说明。运动估计为产生运动向量的过程,所述运动向量估计视频块的运动。举例来说,运动向量可指示预测性参考帧(或其它经译码的单元)内的预测性块相对于当前帧(或其它经译码的单元)内的正被译码的当前块的位移。预测性块为依据像素差被发现紧密地匹配待译码的块的块,所述像素差可通过绝对差和(SAD)、平方差和(SSD)或其它差量度予以确定。运动向量还可指示宏块的分割区的位移。运动补偿可涉及基于通过运动估计确定的运动向量来获取或产生预测性块。同样,在一些实例中,运动估计单元42及运动补偿单元44可在功能上集成。
运动估计单元42通过比较经帧间译码的帧的视频块与参考帧存储器64中的参考帧的视频块而计算所述经帧间译码的帧的视频块的运动向量。运动补偿单元44还可内插参考帧(例如,I帧或P帧)的子整数像素。作为实例,ITU H.264标准描述两个列表:列表0,其包括具有早于正编码的当前帧的显示次序的参考帧;及列表1,其包括具有晚于正编码的当前帧的显示次序的参考帧。因此,可根据这些列表来组织存储于参考帧存储器64中的数据。
运动估计单元42比较来自参考帧存储器64的一个或一个以上参考帧的块与当前帧(例如,P帧或B帧)的待编码的块。当参考帧存储器64中的参考帧包括子整数像素的值时,通过运动估计单元42计算的运动向量可指代参考帧的子整数像素位置。运动估计单元42及/或运动补偿单元44还可经配置以在无子整数像素位置的值存储于参考帧存储器64中的情况下计算存储于参考帧存储器64中的参考帧的子整数像素位置的值。运动估计单元42将所计算的运动向量发送到熵译码单元56及运动补偿单元44。通过运动向量识别的参考帧块可称作预测性块。
运动补偿单元44可基于预测性块而计算预测数据。视频编码器20通过从正译码的原始视频块减去来自运动补偿单元44的预测数据而形成残余视频块。求和器50表示执行此减法运算的组件。变换处理单元52将变换(例如,离散余弦变换(DCT)或概念上类似的变换)应用于残余块,从而产生包含残余变换系数值的视频块。变换处理单元52可执行概念上类似于DCT的其它变换,例如,由H.264标准定义的变换。
也可使用小波变换、整数变换、子带变换或其它类型的变换。在任一情况下,变换处理单元52均将所述变换应用于残余块,从而产生残余变换系数的块。所述变换可将来自像素域(也称作空间域)的残余信息转换成例如频域的变换域。量化单元54量化所述残余变换系数以进一步降低位率。所述量化过程可减小与所述系数中的一些或全部相关联的位深度。可通过调整量化参数来修改量化程度。
在量化之后,熵译码单元56对经量化的变换系数进行熵译码。举例来说,熵译码单元56可执行内容自适应性可变长度译码(CAVLC)、上下文自适应性二进制算术译码(CABAC)或另一熵译码技术。在通过熵译码单元56进行的熵译码之后,可将经编码的视频发射到另一装置或经存档以供稍后发射或检索。在上下文自适应性二进制算术译码的情况下,上下文可基于相邻宏块。
根据本发明的技术,熵译码单元56可经配置以执行函数以确定系数(也就是说,经量化的变换系数)的数据与码字索引值之间的映射。举例来说,对于VLC来说,熵译码单元56可确定一系数的VLC码字。作为另一实例,对于CABAC来说,熵译码单元56可确定一系数的经二进制化的值,且可进一步对所述经二进制化的值进行熵编码。以此方式,对于CABAC来说,经二进制化的值可对应于码字。确切地说,当使用CABAC译码时,熵译码单元56可按类似于在VLC中确定对应于码字索引值的码字的描述的方式确定对应于所述码字索引值的经二进制化的值。
熵译码单元56可使用本发明的技术来对{运行,等级ID}对进行译码。举例来说,熵译码单元56可经配置以根据以上所描述的编码器伪码来执行。也就是说,对于一些系数来说,熵译码单元56可经配置以执行函数以确定码字索引值与当前系数的数据之间的映射。举例来说,熵译码单元56可在所述系数具有小于阈值的扫描次序值时且在所述系数为变换单元中的扫描次序中的末位有效系数时执行所述函数。
作为另一实例,熵译码单元56可针对具有{运行,等级ID}对以使得运行值等于到达变换单元中的第一系数左侧的第二系数的扫描次序中的系数的数目的系数且在第二系数具有大于零的绝对值时执行不同函数。作为又一实例,熵译码单元56可针对具有{运行,等级ID}对以使得运行值等于到达变换单元中的第一系数上方的第二系数的扫描次序中的系数的数目的系数且在第二系数具有大于零的绝对值时执行又一不同函数。以下参看图4更详细描述在当前系数上方及左侧的系数的实例。
另外,在一些实例中,熵译码单元56可经配置以在系数的扫描次序值在两个阈值之间时执行函数以确定系数的数据与码字索引值之间的映射。也就是说,熵译码单元56可在扫描次序值小于第一阈值且大于第二阈值时执行所述函数以确定所述映射,其中所述第二阈值小于所述第一阈值。举例来说,假设T1表示第一阈值,T2表示第二阈值,且k表示系数的扫描次序值。熵译码单元56可经配置以在T2<k<T1时执行所述函数以确定所述映射。熵译码单元56或视频编码器20的另一单元可经配置以在参数集合中对表示第一及/或第二阈值的信令数据进行译码,所述参数集合例如为序列参数集合(SPS)、图片参数集合(PPS)、自适应参数集合(APS)、片段标头、帧标头、序列标头或其它数据结构。同样,视频编码器20可对表示阈值的值的信令数据进行译码,其中仅一个阈值用以确定是否确定系数的数据与码字索引值之间的映射。
在熵译码单元56经配置以使用CAVLC对数据进行译码的情况下,熵译码单元56可使用码字索引值从VLC表选择一VLC码字。举例来说,VLC表可包括根据特定次序(例如,最短到最长)布置的码字,且码字索引值可对应于VLC表中的一条目。举例来说,假设码字索引值为n,则熵译码单元56可从VLC表选择第n个VLC码字。
在熵译码单元56经配置以使用CABAC对数据进行译码的情况下,熵译码单元56可使用码字索引值来选择待使用CABAC译码的经二进制化的值。举例来说,熵译码单元56可按类似于以上所描述的VLC码字的选择的方式从二进制化表选择经二进制化的值。举例来说,假设码字索引值为n,则熵译码单元56可从二进制化表选择第n个经二进制化的值。此外,熵译码单元56可根据CABAC使用算术译码来对经二进制化的值进行编码。也就是说,熵译码单元56可初始化用于对当前语法元素进行译码的上下文以确定当前上下文状态,接着对经二进制化的值的每一位(其中在CABAC中将位称作“二进制数(bin)”)进行译码。在对经二进制化的值的每一二进制数进行译码之后,熵译码单元56可基于最近译码的二进制数的值来更新当前上下文状态。
在一些情况下,熵译码单元56或视频编码器20的另一单元可经配置以除了执行熵译码以外还执行其它译码功能。举例来说,熵译码单元56可经配置以确定宏块及分割区的CBP值。熵译码单元56还可通过适当语法元素来建构标头信息,以用于在经编码的视频位流中发射。
逆量化单元58及逆变换单元60分别应用逆量化及逆变换以在像素域中重建残余块(例如)以供稍后用作参考块。运动补偿单元44可通过将残余块与参考帧存储器64的帧中的一者的预测性块相加而计算参考块。运动补偿单元44还可将一个或一个以上内插滤波器应用于经重建的残余块,以计算子整数像素值以用于运动估计中。求和器62将经重建的残余块与通过运动补偿单元44产生的经运动补偿的预测块相加,以产生经重建的视频块以用于存储于参考帧存储器64中。经重建的视频块可由运动估计单元42及运动补偿单元44用作参考块,以对后续视频帧中的块进行帧间译码。
以此方式,视频编码器20表示视频译码器的一实例,其经配置以:当视频数据的变换单元的系数具有小于阈值的扫描次序值时且当所述系数为变换单元中的扫描次序中的末位有效系数时,执行函数以确定所述系数的数据与码字索引值之间的映射,且使用与所述码字索引值相关联的码字来对所述系数的所述数据进行译码。确切地说,在此实例中,视频译码器为视频编码器。为了对所述系数的数据进行译码,视频编码器20可经配置以在视频编码过程期间使用码字来对所述系数的{运行,等级ID}对进行编码。同样,所述码字可包含经二进制化的值,且为了对所述数据进行译码,视频编码器20可经配置以使用上下文自适应性二进制算术译码(CABAC)来对所述经二进制化的值进行译码。
图3为说明可实施用于对视频数据的块的系数进行译码的技术的视频解码器30的实例的框图。在图3的实例中,视频解码器30包括熵解码单元70、运动补偿单元72、帧内预测单元74、逆量化单元76、逆变换单元78、参考帧存储器82及求和器80。在一些实例中,视频解码器30可执行与关于视频编码器20(图2)所描述的编码遍次大体上互逆的解码遍次。运动补偿单元72可基于从熵解码单元70接收的运动向量产生预测数据。
根据本发明的技术,熵解码单元70可对对应于当前系数的数据(例如,当前系数的{运行,等级ID})的码字索引值进行解码。举例来说,在CAVLC中,熵解码单元70可接收VLC码字且根据VLC表确定码字索引值。作为另一实例,在CABAC中,熵解码单元70可对经CABAC编码的数据进行解码以再生经二进制化的值。也就是说,熵解码单元70可通过转变遍历上下文状态(类似于以上关于熵译码单元56所描述的转变)而逐个位地(或逐个二进制数地)再生经二进制化的值,且基于当前状态及正解码的当前值来确定当前位的值。以此方式,熵解码单元70可再生经二进制化的值。熵解码单元70可接着根据二进制化表确定经二进制化的值的码字索引值。
在任一情况下,在确定当前系数的数据的码字(例如,VLC码字或经二进制化的值)之后,在一些实例中,熵解码单元70可使用函数以确定码字索引值与所述数据(例如,{运行,等级ID}对)之间的映射。举例来说,熵解码单元70可执行函数以在视频数据的变换单元的系数具有小于阈值的扫描次序值时且当所述系数为所述变换单元中的扫描次序中的末位有效系数时确定所述映射。
作为另一实例,熵解码单元70可针对一系数执行不同函数以确定所述系数是否具有{运行,等级ID}对以使得运行值等于到达变换单元中的第一系数左侧的第二系数的扫描次序中的系数的数目及确定所述第二系数何时具有大于零的绝对值。作为又一实例,熵解码单元70可针对一系数执行又一不同函数以确定所述系数是否具有{运行,等级ID}对以使得运行值等于到达变换单元中的第一系数上方的第二系数的扫描次序中的系数的数目及确定所述第二系数何时具有大于零的绝对值。
另外,在一些实例中,熵解码单元70可经配置以在系数的扫描次序值在两个阈值之间时执行函数以确定所述系数的数据与码字索引值之间的映射。也就是说,熵解码单元70可在扫描次序值小于第一阈值且大于第二阈值时执行所述函数以确定所述映射,其中所述第二阈值小于所述第一阈值。举例来说,假设T1表示第一阈值,T2表示第二阈值,且k表示系数的扫描次序值。熵解码单元70可经配置以在T2<k<T1时执行所述函数以确定所述映射。熵解码单元70或视频解码器30的另一单元可经配置以在参数集合中对表示第一及/或第二阈值的信令数据进行译码(也就是说,解码),所述参数集合例如为序列参数集合(SPS)、图片参数集合(PPS)、自适应参数集合(APS)、片段标头、帧标头、序列标头或其它数据结构。同样,视频解码器30可对表示阈值的值的信令数据进行译码,其中仅一个阈值用以确定是否确定系数的数据与码字索引值之间的映射。也就是说,视频解码器30可接收此数据结构且对所述数据结构进行解码,以确定所述阈值的值。
以此方式,视频解码器30可确定变换单元的当前系数的{运行,等级ID}对的值。视频解码器30可进一步对系数的其它语法数据(例如,实际等级值)进行解码,且借此重建变换单元。举例来说,当等级ID值指示系数具有大于一的绝对值时,视频解码器30可对指示系数的实际值的额外语法数据进行解码。通过针对变换单元的每一系数执行此操作,根据扫描次序在零的运行之后按次序放置非零值的系数的等级值,视频解码器30可再生当前译码单元的变换单元。此外,逆量化单元76可对所述变换单元进行逆量化,且逆变换单元78可对所述变换单元进行逆变换,以在空间域中再生残余值。
在视频解码器30中,当前帧中的块是通过首先以与编码器中相同的方式建构其预测及通过将经压缩的预测误差与所述预测相加而获得。所述经压缩的预测误差是通过使用经量化的系数来加权变换基函数而找到。经重建的帧与原始帧之间的差称为重建误差。
运动补偿单元72可使用在位流中接收的运动向量以识别参考帧存储器82中的参考帧中的预测块。帧内预测单元74可使用在位流中接收的帧内预测模式以从空间上邻近的块形成预测块。逆量化单元76对提供于位流中且由熵解码单元70解码的经量化的块系数进行逆量化(即,解量化)。逆量化过程可包括(例如)如由H.264解码标准所定义的常规过程。逆量化过程还可包括针对每一宏块使用通过编码器50计算的量化参数QPY,以确定量化程度且同样地确定应被应用的逆量化程度。
逆变换单元58将逆变换(例如,逆DCT、逆整数变换或概念上类似的逆变换过程)应用于变换系数,以便在像素域中产生残余块。运动补偿单元72产生经运动补偿的块,从而有可能基于内插滤波器来执行内插。待以子像素精度用于运动估计的内插滤波器的识别符可包括于语法元素中。运动补偿单元72可在视频块的编码期间使用如由视频编码器20使用的内插滤波器,以计算参考块的子整数像素的经内插的值。运动补偿单元72可根据所接收的语法信息来确定由视频编码器20使用的内插滤波器,且使用所述内插滤波器来产生预测性块。
运动补偿单元72使用语法信息中的一些来确定用以对经编码的视频序列的帧进行编码的宏块的大小、描述如何分割经编码的视频序列的帧的每一宏块的分割区信息、指示如何对每一分割区进行编码的模式、用于每一经帧间编码的宏块或分割区的一个或一个以上参考帧(及参考帧列表),及用以对经编码的视频序列进行解码的其它信息。
求和器80对残余块与通过运动补偿单元72或帧内预测单元产生的对应预测块求和以形成经解码的块。需要时,也可应用解块滤波器来对经解码的块滤波以便移除块效应假影。接着将经解码的视频块存储于参考帧存储器82中,参考帧存储器82提供参考块以用于后续运动补偿,且还产生经解码的视频以用于呈现于显示装置(例如,图1的显示装置32)上。
视频解码器30可经配置以执行本发明的技术中的任一者或全部,例如,使用函数或一维表来对TU的所接收的系数进行解码。如以上所论述,视频解码器30可经配置以实施以上所论述的解码器伪码,或针对编码器伪码的互逆方法。
以此方式,视频解码器30表示视频译码器的一实例,其经配置以:当视频数据的变换单元的系数具有小于阈值的扫描次序值时且当所述系数为变换单元中的扫描次序中的末位有效系数时,执行函数以确定所述系数的数据与码字索引值之间的映射,且使用与所述码字索引值相关联的码字来对所述系数的所述数据进行译码。确切地说,在此实例中,视频译码器为视频解码器。为了对系数的数据进行译码,视频解码器30可经配置以使用码字来确定所述系数的{运行,等级ID}对。此外,视频解码器30可经配置以在对所述码字进行解码之后执行函数以根据码字索引值确定所述系数的数据。
图4为说明系数120A至120P(系数120)的实例锯齿形扫描的概念图。尽管图4说明了4×4块的实例,但其它块大小也是可能的。系数120大体上对应于由于TU的像素的变换及量化而产生的经量化的变换系数。在此实例中,锯齿形扫描在系数120A处开始,接着进行到系数120B,接着进行到系数120E,接着进行到系数120I,接着进行到系数120F,接着进行到系数120C,接着进行到系数120D,接着进行到系数120G,接着进行到系数120J,接着进行到系数120M,接着进行到系数120N,接着进行到系数120K,接着进行到系数120H,接着进行到系数120L,接着进行到系数120O,且最后进行到系数120P。
通过执行此扫描,可将像素的系数的二维布置转换为包括系数120中每一者的值的一维阵列。这些值可按扫描的次序布置于阵列中。举例来说,系数120A的值可在阵列中的首位,随后是系数120B、120E、120I、120F等的值。
给定块中的系数以特定次序(扫描)布置,从而产生一维有序系数向量。一种广泛使用的扫描为锯齿形扫描。4×4块的实例锯齿形扫描展现于图4中。还可存在一些其它扫描,如水平扫描、垂直扫描、波前扫描。在本发明中,使用锯齿形扫描来解释所提议的方案。应理解,本发明的所提议方案也可对其它扫描起作用。
锯齿形扫描假定在应用了2维(2D)变换之后,具有最多能量的变换系数(即,较高值的系数)对应于低频变换函数且如图4中所描绘朝向块的左上方定位。相反,较高频率的较低能量的变换系数朝向块的右下方驻存。因此,在经由锯齿形扫描而产生的系数向量中,较高量值的系数将最可能朝向着向量的开始出现。在量化之后,大多数低能量系数变得等于0。也有可能在系数译码期间使系数扫描自适应。举例来说,可将所述扫描中的较低编号指派给非零系数较时常出现的那些位置。
作为实例,使用VLC在HEVC测试模型中对单一4×4块进行熵编码涉及以下步骤:
1.结合指示所述扫描中的末位非零系数的绝对值|等级|是否为1或>1的等级ID来对此系数的位置进行编码。以逆扫描次序来对4×4块的剩余系数进行译码且以运行模式或等级模式来译码。基于已译码的系数的量值来决定用以从运行模式切换到等级模式的程序。
2.运行模式译码。在此模式下,从先前非零系数开始,用信号发送零系数的数目。语法元素isLevelOne_run共同地对运行及等级ID进行译码。运行的值等于当前非零系数与逆扫描次序中的下一非零系数之间的零系数的数目,而等级ID指示所述下一非零系数的|等级|是否为1或>1。如果当前非零系数在位置k中,则运行值可在从0至k的范围中。等于k的运行值意味着在此块中不再存在非零系数。{等级ID,运行}与码字号cn之间的映射取决于值k。
3.等级模式译码。使用VLCx来对|等级|的值进行解码,其中对于在等级模式下译码的第一系数来说,x为0。在每一系数的等级模式解码之后,如果|等级|>vlc_level_table[x],则VLC表索引x递增1。
当使用CABAC来对{运行,等级ID}对进行译码时,可执行类似过程。然而,如本发明中所注明,当使用CABAC对语法元素进行译码时,替代选择VLC码字,视频译码器可选择经二进制化的值,且接着进一步对所述经二进制化的值进行二进制算术译码。
如以上所注明,可针对扫描次序中的一个或一个以上特殊位置提供一维表及近似一维表的等式。对于VLC来说,可按反向扫描次序(例如,从系数120P至系数120A)来执行运行模式译码。因此,为了实现运行模式译码(也就是说,当对{运行,等级ID}对进行译码时),可将系数120A视为扫描次序中的“末位”系数。如以上所注明,扫描次序中的特殊位置的一个实例为值k小于阈值且运行等于k+1的位置。举例来说,如果系数120D为逆扫描次序中的末位系数,则系数120D可具有运行值6及k值7。因此,视频编码器20或视频解码器30可使用一维表或函数来确定码字索引与系数120D的{运行,等级ID}对之间的映射。
如以上所论述,可将可被提供一维表或函数的其它位置视为特殊位置。其它特殊位置的实例包括运行_l及运行_t。作为一实例,当系数120D及120C为零值且系数120F具有非零值时,可将系数120G视为在运行_l位置中。如以上所论述,运行_l位置(称作“向左运行”或“runLeft(k)”位置)为紧接当前位置的左侧的位置,使得在当前位置与运行_l位置之间的扫描次序中的所有系数均为零值。作为另一实例,当系数120D为零值且系数120C具有非零值时,可或者将系数120G视为在运行_t位置中。如以上所论述,运行_t位置(称作“向上运行”或“runTop(k)”位置)为紧接当前位置的上方的位置,使得在当前位置与运行_t位置之间的扫描次序中的所有系数均为零值。
图5为说明用于对当前块进行编码的实例方法的流程图。当前块可包含当前CU或所述当前CU的一部分。尽管参考视频编码器20(图1及图2)进行描述,但应理解,其它装置可经配置以执行类似方法。
在此实例中,视频编码器20最初预测当前块(150)。举例来说,视频编码器20可计算当前块的一个或一个以上预测单元(PU)的像素值。举例来说,运动估计单元42可计算PU的运动向量,其指向先前译码的图片中的参考块,且运动补偿单元44可从参考块提取像素值以用作预测单元的像素值。或者,帧内预测单元46可使用帧内预测来计算所预测的像素值。
视频编码器20可接着计算当前块的残余块以(例如)产生变换单元(TU)(152)。为了计算所述残余块,视频编码器20可计算当前块的原始的未经译码的块与所预测块之间的差。举例来说,求和器50可计算原始块的像素值与位于同一位置的所预测像素值之间的差。视频编码器20可接着变换及量化残余块的系数(154)。此可产生包括经量化的变换系数的变换单元。
接下来,视频编码器20可扫描变换单元的经量化的变换系数(156)。在扫描期间,或在扫描之后,视频编码器20可在运行模式下对所述系数进行编码(158)。举例来说,视频编码器20可确定表示所述系数的{运行,等级ID}对的码字(例如,VLC码字或经二进制化的值)。对于VLC译码来说,视频编码器20可使用对应于经确定以用于{运行,等级ID}对的码字号的VLC码字来对所述{运行,等级ID}对进行译码。对于CABAC译码来说,视频编码器20可对对应于针对{运行,等级ID}对确定的码字号的经二进制化的值进行CABAC译码。
确切地说,视频编码器20可按逆扫描次序来对系数的{运行,等级ID}对进行译码。对于每一{运行,等级ID}对来说,视频编码器20可确定一码字号(cn),其表示用于对{运行,等级ID}对进行编码的对于表中的码字(例如,VLC表中的VLC码字或二进制化表中的经二进制化的值)的索引。以下参看图6来论述关于执行步骤158的一些实例的额外细节。以此方式选择码字,视频编码器20可输出块的系数的经译码的数据(160)。举例来说,对于VLC来说,视频编码器20可输出VLC码字,而对于CABAC来说,视频编码器20可输出经二进制化的值的经CABAC译码的数据。
图6为说明用于对当前块的系数的码字索引进行编码的实例方法的流程图。确切地说,图6的方法更详细地说明用于执行图5的步骤158的方法的实例。图6的方法是关于单一系数进行描述,对于所述单一系数来说,对单一{运行,等级ID}对进行译码。
首先,视频编码器20扫描(使用逆扫描次序)位置k处的系数(180)。在此实例中,假设系数具有小于对应阈值的k值。视频编码器20接着确定系数的运行及等级ID的值(182)。确切地说,视频编码器20可确定运行等于当前系数与下一非零值系数或逆扫描中的末位系数(如果没有剩余的非零值系数)之间的零值系数的数目。同样,视频编码器20可在系数具有绝对值“1”时确定等级ID具有值“0”,或在系数具有大于1的绝对值时确定等级ID具有值“1”。换句话说,使位置k处的系数称为“A”,且扫描次序中的下一非零值系数称为“B”。等于0的等级ID可指示B的绝对值为1,且等于1的等级ID可指示B的绝对值大于1。
视频编码器20可接着确定等级ID是否具有值“0”(183)。如果等级ID不具有值“0”(183的“否”分支)(例如,具有值“1”),则视频编码器20可将cn的值设定为等于k+2+运行(184)。另一方面,如果等级ID等于“0”(183的“是”分支),则视频编码器20可进一步确定运行是否等于k+1(185)。确切地说,视频编码器20可确定当前系数是否为逆扫描次序中的末位非零值系数。
当视频编码器20确定运行等于k+1时(185的“是”分支),视频编码器20可使用一维表计算{运行,等级ID}对的cn的值(例如,索引到值k)(186)。或者,视频编码器20可执行近似所述一维表的函数,从而使值k通过所述函数。所述函数可基于值k传回cn的值。以此方式,视频编码器20可执行函数以确定系数的数据与码字索引值之间的映射,其中在此实例中cn为码字索引值。
另一方面,如果运行不等于k+1(185的“否”分支),则视频编码器20可确定运行是否小于E1(k)(也就是说,针对值k由一维表传回的值)(188)。如果运行小于E1(k)(188的“是”分支),则视频编码器20可确定cn具有等于运行的值(190)。另一方面,如果运行大于E1(k)(188的“否”分支),则视频编码器20可确定cn具有等于运行+1的值(192)。视频编码器20可接着选择映射到cn的所确定值的码字(194),例如,来自VLC表的VLC码字或来自用于CABAC的二进制化表的经二进制化的值。另外,对于CABAC来说,视频编码器20可对选定的经二进制化的值进行熵编码。
以此方式,图5及6表示对视频数据进行译码的方法的实例,其包括:当视频数据的变换单元的系数具有小于阈值的扫描次序值时且当所述系数为变换单元中的扫描次序中的末位有效系数时,执行函数以确定所述系数的数据与码字索引值之间的映射,且使用与所述码字索引值相关联的码字来对所述系数的所述数据进行译码。
图7为说明用于对视频数据的当前块进行解码的实例方法的流程图。当前块可包含当前CU或所述当前CU的一部分。尽管关于视频解码器30(图1及3)进行了描述,但应理解,其它装置可经配置以执行类似方法。
视频解码器30可预测当前块(200),例如,使用帧内或帧间预测模式以计算当前块的所预测块。视频解码器30还可接收对应于用于对应于当前块的残余块的系数的码字的经译码的数据(202)。举例来说,在VLC中,所述经译码的数据可为其自身的VLC码字,而对于CABAC来说,所述经译码的数据可包含对应于经二进制化的值的经CABAC译码的数据,视频解码器30可对所述经CABAC译码的数据进行CABAC解码以再生经二进制化的值(也就是说,码字)。
视频解码器30可确定码字所映射到的码字索引,且使用运行模式来对所述码字映射的码字索引进行解码以再生所述系数的数据(204)。当然,如以上所论述,所述系数的数据对应于{运行,等级ID}对。尽管图7中未图示,但当等级ID指示等级值大于一时,视频解码器30可进一步对指示所述系数的实际等级值的所述系数的等级数据进行解码。视频解码器30还可对所再生系数进行逆扫描(206),以产生经量化的变换系数的块。视频解码器30可接着对所述系数进行逆量化及逆扫描以产生残余块(208)。所述残余块可包括像素域中的残余系数。视频解码器30可最终通过组合所预测块与残余块来对当前块进行解码(210)。也就是说,视频解码器30可将残余值与所预测值相加以再生对应块的个别像素值。
图8为说明用于对码字索引进行解码的实例方法的流程图。确切地说,图8的方法为用于更详细执行图7的步骤204的方法的实例。图8的实例是关于单一系数的单一码字索引值cn进行描述,且假设此系数具有小于阈值的k值。
在一些实例中,视频解码器30可接收VLC码字,而在其它实例中,视频解码器30可对所接收的经CABAC译码的数据进行解码以再生经二进制化的值(也就是说,码字)。在任一情况下,视频解码器30均可根据位置k处的系数的码字来确定所述系数的码字索引值(220)。举例来说,视频解码器30可根据VLC表确定所接收的VLC码字所映射到的码字索引值。或者,视频解码器30可再生经二进制化的值且使用二进制化表确定码字索引。以此方式,视频解码器30可使用与码字索引值相关联的码字(例如,VLC码字或经二进制化的值)来对系数的数据进行译码。
视频解码器30可接着确定cn是否大于k+1(222)。如果cn大于k+1(222的“是”分支),则视频解码器30可确定所述系数的等级ID具有值“1”(224),且所述系数的运行值具有值cn-k-2(226)。以此方式,当cn大于k+1时,视频解码器30可重建所述系数的{运行,等级ID}对。
另一方面,当cn不大于k+1时(222的“否”分支),视频解码器30可确定等级ID具有值“0”(228)。此外,视频解码器30可确定cn是否等于由E1(k)传回的值(也就是说,由对值k执行的函数传回的值),其中所述函数近似一维表(230)。或者,视频解码器30可使用实际一维表来确定此值。如果由E1(k)传回的值等于cn(230的“是”分支),则视频解码器30可确定运行具有值k+1(232)。以此方式,当所述系数为扫描次序中的末位有效系数时,视频解码器30可执行函数以确定所述系数的数据(例如,运行值)与码字索引值cn之间的映射。
另一方面,如果由E1(k)传回的值不等于cn(230的“否”分支),则视频解码器30可确定cn是否小于由E1(k)传回的值(234)。如果cn小于由E1(k)传回的值(234的“是”分支),则视频解码器30可确定运行具有等于cn的值(236)。然而,如果cn大于由E1(k)传回的值(234的“否”分支),则视频解码器30可确定运行具有等于cn减1的值(238)。视频解码器30可接着使用所确定的{运行,等级ID}对来对所述系数进行解码(240)。
以此方式,图7及8的实例表示用于对数据进行译码的方法的实例,所述方法包括:当视频数据的变换单元的系数具有小于阈值的扫描次序值时且当所述系数为变换单元中的扫描次序中的末位有效系数时,执行函数以确定所述系数的数据与码字索引值之间的映射,且使用与所述码字索引值相关联的码字来对所述系数的所述数据进行译码。
尽管在图5至8的实例中未图示,但对于其它情况来说,视频编码器20及视频解码器30可经配置以使用其它函数来确定系数的数据与码字索引值之间的映射。举例来说,视频编码器20及视频解码器30可经配置以针对具有{运行,等级ID}对以使得运行值等于到达变换单元中的第一系数左侧的第二系数的扫描次序中的系数的数目的系数且在第二系数具有大于零的绝对值时执行不同函数以确定映射。作为另一实例,视频编码器20及视频解码器30可经配置以针对具有{运行,等级ID}对以使得运行值等于到达变换单元中的第一系数上方的第二系数的扫描次序中的系数的数目的系数且在第二系数具有大于零的绝对值时执行又一不同函数以确定映射。
此外,如以上所注明,假设在执行图5至8的方法时,k值小于对应阈值。然而,在其它实例中,视频编码器20及视频解码器30可在系数的k值在两个阈值之间时执行这些方法。举例来说,视频编码器20可在k小于第一阈值T1且大于第二阈值T2时执行图5及6的方法。同样,视频解码器30可在k小于第一阈值T1且大于第二阈值T2时执行图7及8的方法。然而,在这些实例中,当k大于T1或小于T2时,视频编码器20及视频解码器30可执行替代方法。另外,所述方法可另外包括对信令数据进行译码以确定所述阈值的值。
应认识到,取决于实例,可按不同顺序来执行或可添加、合并或一起省去本文中所描述的方法中的任一者的某些动作或事件(例如,并非所有所描述的动作或事件为所述方法的实践所需)。此外,在某些实例中,动作或事件可(例如)经由多线程处理、中断处理或多个处理器同时地而非顺序地执行。
在一个或一个以上实例中,所描述功能可按硬件、软件、固件或其任何组合予以实施。如果以软件实施,则所述功能可作为一个或一个以上指令或代码而存储于计算机可读媒体上或经由计算机可读媒体进行传输,且由基于硬件的处理单元执行。计算机可读媒体可包括计算机可读存储媒体(其对应于例如数据存储媒体的有形媒体)或通信媒体(其包括(例如)根据通信协议促进计算机程序从一处传送到另一处的任何媒体)。以此方式,计算机可读媒体大体上可对应于(1)非暂时的有形计算机可读存储媒体或(2)例如信号或载波的通信媒体。数据存储媒体可为可由一个或一个以上计算机或一个或一个以上处理器存取以检索指令、代码及/或数据结构来实施本发明中所描述的技术的任何可用媒体。计算机程序产品可包括计算机可读媒体。
举例来说而非限制,这些计算机可读存储媒体可包含RAM、ROM、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置、闪存,或可用以存储呈指令或数据结构的形式的所要程序代码且可由计算机存取的任何其它媒体。也将任何连接适当地称为计算机可读媒体。举例来说,如果使用同轴电缆、光纤缆线、双绞线、数字订户线(DSL),或例如红外线、无线电及微波的无线技术而从网站、服务器或其它远程源传输指令,则同轴电缆、光纤缆线、双绞线、DSL或例如红外线、无线电及微波的无线技术包括于媒体的定义中。然而,应理解,计算机可读存储媒体及数据存储媒体不包括连接、载波、信号或其它暂时性媒体,而是针对非暂时性有形存储媒体。如本文中所使用,磁盘及光盘包括压缩光盘(CD)、激光光盘、光学光盘、数字多功能光盘(DVD)、软磁盘及蓝光光盘,其中磁盘通常以磁性方式再生数据,而光盘通过激光以光学方式再生数据。以上各物的组合也应包括于计算机可读媒体的范畴内。
可由一个或一个以上处理器(例如,一个或一个以上数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其它等效的集成式或离散逻辑电路,或以上各者的组合)来执行指令。因此,如本文中所使用,术语“处理器”可指代上述结构或适合于实施本文中所描述的技术的任何其它结构中的任一者。另外,在一些方面中,本文中所描述的功能性可提供于经配置以编码及解码的专用硬件及/或软件模块内或并入于组合的编解码器中。所述技术也可完全实施于一个或一个以上电路或逻辑元件中。
本发明的技术可实施于多种装置或设备中,所述装置或设备包括无线手持机、集成电路(IC)或IC的组(例如,芯片组)。在本发明中描述了各种组件、模块或单元以强调经配置以执行所揭示的技术的装置的功能方面,但未必需要通过不同硬件单元来实现。实情为,如以上所描述,各种单元可组合于编解码器硬件单元中或由交互操作性硬件单元的集合结合合适的软件及/或固件来提供,所述交互操作性硬件单元包括如以上所描述的一个或一个以上处理器。
已描述各种实例。这些及其它实例属于随附权利要求书的范畴内。

Claims (44)

1.一种对视频数据进行译码的方法,所述方法包含:
当视频数据的变换单元的系数具有小于阈值的扫描次序值时且当所述系数为所述变换单元中的扫描次序中的末位有效系数时:
执行函数以确定所述系数的数据与码字索引值之间的映射;及
使用与所述码字索引值相关联的码字来对所述系数的所述数据进行译码。
2.根据权利要求1所述的方法,其中所述函数包含第一函数,其中所述映射包含第一映射,其中所述码字索引值包含第一码字索引值,且其中所述系数包含第一系数,所述方法进一步包含当所述第一系数的所述数据包含{运行,等级ID}对以使得运行值等于到达所述变换单元中的所述第一系数左侧的第二系数的所述扫描次序中的系数的数目时且当所述第二系数具有大于零的绝对值时:
执行第二函数以确定所述第一系数的所述数据与第二码字索引值之间的第二映射;及
使用与所述第二码字索引值相关联的码字来对所述第一系数的所述数据进行译码。
3.根据权利要求1所述的方法,其中所述函数包含第一函数,其中所述映射包含第一映射,其中所述码字索引值包含第一码字索引值,且其中所述系数包含第一系数,所述方法进一步包含当所述第一系数的所述数据包含{运行,等级ID}对以使得所述运行值等于到达所述变换单元中的所述第一系数上方的第二系数的所述扫描次序中的系数的数目时且当所述第二系数具有大于零的绝对值时:
执行第二函数以确定所述第一系数的所述数据与第二码字索引值之间的第二映射;及
使用与所述第二码字索引值相关联的码字来对所述第一系数的所述数据进行译码。
4.根据权利要求1所述的方法,其中所述阈值包含第一阈值,且其中执行所述函数及对所述数据进行译码包含当所述扫描次序值小于所述第一阈值且大于第二阈值时执行所述函数及对所述数据进行译码,其中所述第二阈值小于所述第一阈值。
5.根据权利要求1所述的方法,其进一步包含在用于包括所述变换单元的片段的片段参数集合SPS、用于包括所述变换单元的所述片段的自适应参数集合APS及用于包括所述变换单元的图片的图片参数集合PPS中的至少一者中对指示所述阈值的信令值进行译码。
6.根据权利要求1所述的方法,其中对所述系数的所述数据进行译码包含在视频编码过程期间使用所述码字来对所述系数的{运行,等级ID}对进行编码。
7.根据权利要求1所述的方法,其中对所述系数的所述数据进行译码包含在视频解码过程期间使用所述码字来确定所述系数的{运行,等级ID}对。
8.根据权利要求1所述的方法,其中所述码字包含经二进制化的值,且其中对所述数据进行译码进一步包含使用上下文自适应性二进制算术译码CABAC对所述经二进制化的值进行熵译码。
9.根据权利要求1所述的方法,其中对所述数据进行译码包含对所述码字进行解码以再生所述码字索引值,且其中执行所述函数包含在对所述码字进行解码之后执行所述函数以根据所述码字索引值确定所述系数的所述数据。
10.根据权利要求9所述的方法,其中对所述码字进行解码包含:对数据进行熵解码以再生经二进制化的值,其中所述经二进制化的值包含所述码字;及确定所述经二进制化的值所对应的所述码字索引值。
11.根据权利要求9所述的方法,其进一步包含:确定对应于所述变换单元的预测性数据;再生所述变换单元的残余数据;及组合所述预测性数据与所述残余数据。
12.根据权利要求1所述的方法,其中对所述系数的所述数据进行译码包含在执行所述函数之后使用所述码字对所述数据进行编码。
13.一种用于对视频数据进行译码的装置,所述装置包含视频译码器,所述视频译码器经配置以:当视频数据的变换单元的系数具有小于阈值的扫描次序值时且当所述系数为所述变换单元中的扫描次序中的末位有效系数时,执行函数以确定所述系数的数据与码字索引值之间的映射,且使用与所述码字索引值相关联的码字来对所述系数的所述数据进行译码。
14.根据权利要求13所述的装置,其中所述函数包含第一函数,其中所述映射包含第一映射,其中所述码字索引值包含第一码字索引值,其中所述系数包含第一系数,且其中所述视频译码器经进一步配置以当所述第一系数的所述数据包含{运行,等级ID}对以使得运行值等于到达所述变换单元中的所述第一系数左侧的第二系数的所述扫描次序中的系数的数目时且当所述第二系数具有大于零的绝对值时,执行第二函数以确定所述第一系数的所述数据与第二码字索引值之间的第二映射,且使用与所述第二码字索引值相关联的码字来对所述第一系数的所述数据进行译码。
15.根据权利要求13所述的装置,其中所述函数包含第一函数,其中所述映射包含第一映射,其中所述码字索引值包含第一码字索引值,其中所述系数包含第一系数,且其中所述视频译码器经进一步配置以当所述第一系数的所述数据包含{运行,等级ID}对以使得所述运行值等于到达所述变换单元中的所述第一系数上方的第二系数的所述扫描次序中的系数的数目时且当所述第二系数具有大于零的绝对值时,执行第二函数以确定所述第一系数的所述数据与第二码字索引值之间的第二映射,且使用与所述第二码字索引值相关联的码字来对所述第一系数的所述数据进行译码。
16.根据权利要求13所述的装置,其中所述阈值包含第一阈值,且其中所述视频译码器经配置以当所述扫描次序值小于所述第一阈值且大于第二阈值时执行所述函数且对所述数据进行译码,其中所述第二阈值小于所述第一阈值。
17.根据权利要求13所述的装置,其中所述视频译码器经进一步配置以在用于包括所述变换单元的片段的片段参数集合SPS、用于包括所述变换单元的所述片段的自适应参数集合APS及用于包括所述变换单元的图片的图片参数集合PPS中的至少一者中对指示所述阈值的信令值进行译码。
18.根据权利要求13所述的装置,其中所述视频译码器包含视频解码器。
19.根据权利要求18所述的装置,其中为了对所述系数的所述数据进行译码,所述视频解码器经配置以使用所述码字来确定所述系数的{运行,等级ID}对。
20.根据权利要求18所述的装置,其中所述视频解码器经配置以对所述码字进行解码以再生码字索引值,且其中为了执行所述函数,所述视频解码器经配置以在对所述码字进行解码之后执行所述函数以根据所述码字索引值确定所述系数的所述数据。
21.根据权利要求13所述的装置,其中所述视频译码器包含视频编码器。
22.根据权利要求21所述的装置,其中为了对所述系数的所述数据进行译码,所述视频编码器经配置以在视频编码过程期间使用所述码字来对所述系数的{运行,等级ID}对进行编码。
23.根据权利要求13所述的装置,其中所述码字包含经二进制化的值,且其中为了对所述数据进行译码,所述视频译码器经配置以使用上下文自适应性二进制算术译码CABAC对所述经二进制化的值进行译码。
24.一种用于对视频数据进行译码的装置,所述装置包含:
用于当视频数据的变换单元的系数具有小于阈值的扫描次序值时且当所述系数为所述变换单元中的扫描次序中的末位有效系数时执行函数以确定所述系数的数据与码字索引值之间的映射的装置;及
用于当所述系数具有所述扫描次序值时且当所述系数为所述变换单元中的所述扫描次序中的所述末位有效系数时使用与所述码字索引值相关联的码字来对所述系数的所述数据进行译码的装置。
25.根据权利要求24所述的装置,其中所述函数包含第一函数,其中所述映射包含第一映射,其中所述码字索引值包含第一码字索引值,且其中所述系数包含第一系数,所述装置进一步包含:
用于当所述第一系数的所述数据包含{运行,等级ID}对以使得运行值等于到达所述变换单元中的所述第一系数左侧的第二系数的所述扫描次序中的系数的数目时且当所述第二系数具有大于零的绝对值时执行第二函数以确定所述第一系数的所述数据与第二码字索引值之间的第二映射的装置;及
用于当所述第一系数的所述数据包含所述{运行,等级ID}对时且当所述第二系数具有大于零的所述值时使用与所述第二码字索引值相关联的码字来对所述第一系数的所述数据进行译码的装置。
26.根据权利要求24所述的装置,其中所述函数包含第一函数,其中所述映射包含第一映射,其中所述码字索引值包含第一码字索引值,且其中所述系数包含第一系数,所述装置进一步包含:
用于当所述第一系数的所述数据包含{运行,等级ID}对以使得所述运行值等于到达所述变换单元中的所述第一系数上方的第二系数的所述扫描次序中的系数的数目时且当所述第二系数具有大于零的绝对值时执行第二函数以确定所述第一系数的所述数据与第二码字索引值之间的第二映射的装置;及
用于当所述第一系数的所述数据包含所述{运行,等级ID}对时且当所述第二系数具有大于零的所述值时使用与所述第二码字索引值相关联的码字来对所述第一系数的所述数据进行译码的装置。
27.根据权利要求24所述的装置,其中所述阈值包含第一阈值,且其中用于执行所述函数的所述装置及用于对所述数据进行译码的所述装置包含在所述扫描次序值小于所述第一阈值且大于第二阈值时用于执行所述函数的装置及用于对所述数据进行译码的装置,其中所述第二阈值小于所述第一阈值。
28.根据权利要求24所述的装置,其进一步包含用于在用于包括所述变换单元的片段的片段参数集合SPS、用于包括所述变换单元的所述片段的自适应参数集合APS及用于包括所述变换单元的图片的图片参数集合PPS中的至少一者中对指示所述阈值的信令值进行译码的装置。
29.根据权利要求24所述的装置,其中用于对所述系数的所述数据进行译码的所述装置包含用于在视频解码过程期间使用所述码字来确定所述系数的{运行,等级ID}对的装置。
30.根据权利要求29所述的装置,其中用于对所述数据进行译码的所述装置包含用于对所述码字进行解码以再生所述码字索引值的装置,且其中用于执行所述函数的所述装置包含用于在对所述码字进行解码之后执行所述函数以根据所述码字索引值确定所述系数的所述数据的装置。
31.根据权利要求24所述的装置,其中用于对所述系数的所述数据进行译码的所述装置包含用于在视频编码过程期间使用所述码字来对所述系数的{运行,等级ID}对进行编码的装置。
32.根据权利要求24所述的装置,其中所述码字包含经二进制化的值,且其中用于对所述数据进行译码的所述装置进一步包含用于使用上下文自适应性二进制算术译码CABAC对所述经二进制化的值进行熵译码的装置。
33.一种计算机程序产品,其包含计算机可读媒体,所述计算机可读媒体具有存储于其上的指令,所述指令在被执行时,使用于对视频数据进行译码的装置的处理器当视频数据的变换单元的系数具有小于阈值的扫描次序值时且当所述系数为所述变换单元中的扫描次序中的末位有效系数时:
执行函数以确定所述系数的数据与码字索引值之间的映射;且
使用与所述码字索引值相关联的码字来对所述系数的所述数据进行译码。
34.根据权利要求33所述的计算机程序产品,其中所述函数包含第一函数,其中所述映射包含第一映射,其中所述码字索引值包含第一码字索引值,且其中所述系数包含第一系数,所述计算机程序产品进一步包含使所述处理器当所述第一系数的所述数据包含{运行,等级ID}对以使得运行值等于到达所述变换单元中的所述第一系数左侧的第二系数的所述扫描次序中的系数的数目时且当所述第二系数具有大于零的绝对值时进行如下操作的指令:
执行第二函数以确定所述第一系数的所述数据与第二码字索引值之间的第二映射;且
使用与所述第二码字索引值相关联的码字来对所述第一系数的所述数据进行译码。
35.根据权利要求33所述的计算机程序产品,其中所述函数包含第一函数,其中所述映射包含第一映射,其中所述码字索引值包含第一码字索引值,且其中所述系数包含第一系数,所述计算机程序产品进一步包含使所述处理器当所述第一系数的所述数据包含{运行,等级ID}对以使得所述运行值等于到达所述变换单元中的所述第一系数上方的第二系数的所述扫描次序中的系数的数目时且当所述第二系数具有大于零的绝对值时进行如下操作的指令:
执行第二函数以确定所述第一系数的所述数据与第二码字索引值之间的第二映射;且
使用与所述第二码字索引值相关联的码字来对所述第一系数的所述数据进行译码。
36.根据权利要求33所述的计算机程序产品,其中所述阈值包含第一阈值,且其中使所述处理器执行所述函数的所述指令及使所述处理器对所述数据进行译码的所述指令包含当所述扫描次序值小于所述第一阈值且大于第二阈值时使所述处理器执行所述函数的指令及使所述处理器对所述数据进行译码的指令,其中所述第二阈值小于所述第一阈值。
37.根据权利要求33所述的计算机程序产品,其进一步包含使所述处理器在用于包括所述变换单元的片段的片段参数集合SPS、用于包括所述变换单元的所述片段的自适应参数集合APS及用于包括所述变换单元的图片的图片参数集合PPS中的至少一者中对指示所述阈值的信令值进行译码的指令。
38.根据权利要求33所述的计算机程序产品,其中使所述处理器对所述系数的所述数据进行译码的所述指令包含使所述处理器对所述系数的所述数据进行解码的指令。
39.根据权利要求38所述的计算机程序产品,其中使所述处理器对所述系数的所述数据进行译码的所述指令包含使所述处理器使用所述码字确定所述系数的{运行,等级ID}对的指令。
40.根据权利要求38所述的计算机程序产品,其中使所述处理器对所述数据进行译码的所述指令包含使所述处理器对所述码字进行解码以再生所述码字索引值的指令,且其中使所述处理器执行所述函数的所述指令包含使所述处理器在对所述码字进行解码之后执行所述函数以根据所述码字索引值确定所述系数的所述数据的指令。
41.根据权利要求38所述的计算机程序产品,其中使所述处理器对所述码字进行解码的所述指令包含:使所述处理器对数据进行熵解码以再生经二进制化的值的指令,其中所述经二进制化的值包含所述码字;及使所述处理器确定所述经二进制化的值所对应的所述码字索引值的指令。
42.根据权利要求33所述的计算机程序产品,其中使所述处理器对所述系数的所述数据进行译码的所述指令包含使所述处理器对所述系数的所述数据进行解码的指令。
43.根据权利要求42所述的计算机程序产品,其中使所述处理器对所述系数的所述数据进行译码的所述指令包含使所述处理器使用所述码字对所述系数的{运行,等级ID}对进行编码的指令。
44.根据权利要求33所述的计算机程序产品,其中所述码字包含经二进制化的值,且其中使所述处理器对所述数据进行译码的所述指令进一步包含使所述处理器使用上下文自适应性二进制算术译码CABAC对所述经二进制化的值进行熵译码的指令。
CN201280026338.3A 2011-06-03 2012-05-31 用于视频译码的基于运行模式的系数译码 Pending CN103563371A (zh)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US201161493337P 2011-06-03 2011-06-03
US61/493,337 2011-06-03
US201161504673P 2011-07-05 2011-07-05
US61/504,673 2011-07-05
US201161538658P 2011-09-23 2011-09-23
US61/538,658 2011-09-23
US13/484,068 US9491491B2 (en) 2011-06-03 2012-05-30 Run-mode based coefficient coding for video coding
US13/484,068 2012-05-30
PCT/US2012/040272 WO2012166963A1 (en) 2011-06-03 2012-05-31 Run-mode based coefficient coding for video coding

Publications (1)

Publication Number Publication Date
CN103563371A true CN103563371A (zh) 2014-02-05

Family

ID=46319890

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280026338.3A Pending CN103563371A (zh) 2011-06-03 2012-05-31 用于视频译码的基于运行模式的系数译码

Country Status (7)

Country Link
US (1) US9491491B2 (zh)
EP (1) EP2754294A1 (zh)
JP (1) JP5937205B2 (zh)
KR (1) KR101539169B1 (zh)
CN (1) CN103563371A (zh)
TW (1) TW201315237A (zh)
WO (1) WO2012166963A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113170132A (zh) * 2018-09-24 2021-07-23 弗劳恩霍夫应用研究促进协会 使用或适用于与依赖标量量化的组合的变换系数的有效编码
CN114258680A (zh) * 2019-08-20 2022-03-29 北京字节跳动网络技术有限公司 经变换跳过的块的残差编解码

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8891888B2 (en) * 2012-09-05 2014-11-18 Google Inc. Entropy coding for recompression of images
CN107770546B (zh) * 2012-12-10 2020-04-10 Lg 电子株式会社 解码图像的方法和使用其的装置
CN104272735B (zh) * 2013-01-16 2018-04-13 黑莓有限公司 针对视频的上下文自适应二进制熵编码的变换系数编码
US10356426B2 (en) * 2013-06-27 2019-07-16 Google Llc Advanced motion estimation
US10291940B2 (en) 2014-05-23 2019-05-14 Qualcomm Incorporated Coding runs with escape in palette-based video coding
US11323733B2 (en) 2014-05-23 2022-05-03 Qualcomm Incorporated Predictor palette initialization in palette-based video coding
US10382749B2 (en) * 2014-05-23 2019-08-13 Qualcomm Incorporated Coding run values based on palette index in palette-based video coding
US11695965B1 (en) 2022-10-13 2023-07-04 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Video coding using a coded picture buffer

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1868388A2 (en) * 2006-06-13 2007-12-19 Broadcom Corporation Iterative video compression
CN101222637A (zh) * 2008-02-01 2008-07-16 清华大学 具有特征标志的编码方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7116829B1 (en) * 1996-11-06 2006-10-03 Matsushita Electric Industrial Co., Ltd. Image coding and decoding methods, image coding and decoding apparatuses, and recording media for image coding and decoding programs
US6414608B1 (en) * 1999-06-09 2002-07-02 Matsushita Electric Industrial Co., Ltd. Variable length code decoding device, digital broadcast receiving apparatus, and DVD reproducing apparatus
JP4527474B2 (ja) 2004-08-27 2010-08-18 パナソニック株式会社 可変長符号化装置、撮像装置
EP1755341A1 (en) 2005-08-19 2007-02-21 Texas Instruments Incorporated Method of quantization of transform coefficients
KR100772870B1 (ko) * 2005-12-12 2007-11-02 삼성전자주식회사 Fgs 계층의 블록에 포함되는 계수의 특성에 따라 비디오신호를 부호화하고 복호화하는 방법 및 장치
US8467449B2 (en) 2007-01-08 2013-06-18 Qualcomm Incorporated CAVLC enhancements for SVC CGS enhancement layer coding
EP2018070A1 (en) * 2007-07-17 2009-01-21 Thomson Licensing Method for processing images and the corresponding electronic device
US8036471B2 (en) 2007-10-02 2011-10-11 Cisco Technology, Inc. Joint amplitude and position coding of coefficients for video compression
KR101375668B1 (ko) * 2008-03-17 2014-03-18 삼성전자주식회사 변환 계수의 부호화, 복호화 방법 및 장치
US8737613B2 (en) * 2008-11-20 2014-05-27 Mediatek Inc. Scanning methods of transform-based digital data processing that conditionally adjust scan order according to characteristics information and related apparatus thereof
CN102273080A (zh) 2008-12-03 2011-12-07 诺基亚公司 在dct系数编码模式之间切换
US9094691B2 (en) * 2010-03-15 2015-07-28 Mediatek Singapore Pte. Ltd. Methods of utilizing tables adaptively updated for coding/decoding and related processing circuits thereof
US8410959B2 (en) 2010-04-09 2013-04-02 Qualcomm, Incorporated Variable length codes for coding of video data
US8942282B2 (en) 2010-04-12 2015-01-27 Qualcomm Incorporated Variable length coding of coded block pattern (CBP) in video compression
US20120027081A1 (en) * 2010-07-30 2012-02-02 Cisco Technology Inc. Method, system, and computer readable medium for implementing run-level coding
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
US9490839B2 (en) 2011-01-03 2016-11-08 Qualcomm Incorporated Variable length coding of video block coefficients

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1868388A2 (en) * 2006-06-13 2007-12-19 Broadcom Corporation Iterative video compression
CN101222637A (zh) * 2008-02-01 2008-07-16 清华大学 具有特征标志的编码方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
WANG: "Context Based 2D-VLC Entropy Coder in AVS Video Coding Standard", 《SCI&TECHNOLOGY》 *
WIEGAND: "Overview of the H.264/AVC Video Coding Standard", 《IEEE》 *
WIEGAND: "Test Model under Consideration", 《JCTVC-B205》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113170132A (zh) * 2018-09-24 2021-07-23 弗劳恩霍夫应用研究促进协会 使用或适用于与依赖标量量化的组合的变换系数的有效编码
CN114258680A (zh) * 2019-08-20 2022-03-29 北京字节跳动网络技术有限公司 经变换跳过的块的残差编解码

Also Published As

Publication number Publication date
KR20140016983A (ko) 2014-02-10
JP2014519762A (ja) 2014-08-14
TW201315237A (zh) 2013-04-01
US20120307888A1 (en) 2012-12-06
US9491491B2 (en) 2016-11-08
WO2012166963A1 (en) 2012-12-06
KR101539169B1 (ko) 2015-07-23
JP5937205B2 (ja) 2016-06-22
EP2754294A1 (en) 2014-07-16

Similar Documents

Publication Publication Date Title
CN103026709B (zh) 用于视频译码的帧间预测模式和参考图片列表索引的译码
CN103190147B (zh) 用于视频译码的语法元素的联合译码方法及设备
CN102986216B (zh) 基于大小及帧内模式或基于边缘检测的用于帧内块的自适应频率变换
CN103299620B (zh) 在视频译码中使用最可能扫描次序对用于视频块的扫描次序信息进行有效译码
CN103299621B (zh) 用于视频译码中的一般化p/b帧的参考图片列表构造
CN103563371A (zh) 用于视频译码的基于运行模式的系数译码
CN103891279A (zh) 用于帧内预测译码的最大概率变换
CN103238323A (zh) 在视频译码中基于视频块的扫描次序对块内的最后有效系数的位置进行译码
CN103181170A (zh) 用于视频译码的变换系数的自适应扫描
CN103959779A (zh) 在视频译码中用于自适应环路滤波和样本自适应偏移的基于最大译码单元(lcu)或分区的语法
CN103141100A (zh) 用于视频译码的帧内平滑滤波器
CN103140877A (zh) 使用帧内预测的视频译码
CN103299628A (zh) 指示使用cabac用于视频译码的帧内预测模式选择
CN103262533A (zh) 指示用于视频译码的帧内预测模式选择
CN104025603A (zh) 最后有效系数的位置的渐进式译码
CN103797801A (zh) 视频译码中的非正方形变换单元和预测单元
CN103703776A (zh) 在视频译码中的系数扫描
CN103688541A (zh) 在视频译码中缓冲预测数据
CN103250413A (zh) 视频译码中的并行上下文计算
CN103999460A (zh) 在变换跳过模式中译码有效系数信息
CN103597832A (zh) 用于使用相邻模式的视频译码的增强的帧内预测模式信令
CN103238322A (zh) 在视频译码中单独地译码视频块的最后有效系数的位置
CN103155555A (zh) 视频译码中的译码预测模式
CN103999465A (zh) 自适应性重叠块运动补偿
CN103477638A (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
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20140205