用于经译码块模式的可变长度译码技术的制作方法

文档序号:7936219阅读:214来源:国知局
专利名称:用于经译码块模式的可变长度译码技术的制作方法
技术领域
本发明涉及数字视频译码,且更明确地说,涉及用以对视频信息进行译码的对经译码块模式(CBP)的可变长度译码(VLC)。

背景技术
可将数字视频能力并入各种各样的装置中,其中包括数字电视、数字直接广播系统、无线通信装置、无线广播系统、个人数字助理(PDA)、膝上型或桌上型计算机、数码相机、数字记录装置、视频游戏装置、视频游戏控制台、蜂窝式或卫星无线电电话等。数字视频装置实施视频压缩技术(例如MPEG-2、MPEG-4或H.264/MPEG-4,高级视频译码(AVC),第10部分),以更有效地传输及接收数字视频。视频压缩技术执行空间及时间预测以减少或移除视频信号中所固有的冗余。
在视频译码中,视频压缩通常包括空间预测、运动估计及运动补偿。帧内译码(intra-coding)依赖于空间预测以减少或移除给定视频帧内的视频块之间的空间冗余。帧间译码(inter-coding)依赖于时间预测以减少或移除视频序列的连续视频帧的视频块之间的时间冗余。对于帧间译码,视频编码器执行运动估计以跟踪匹配视频块在两个或两个以上相邻帧之间的移动。运动估计产生运动向量,其指示视频块相对于一个或一个以上参考帧中的对应预测视频块的位移。运动补偿使用所述运动向量以从参考帧产生预测视频块。在运动补偿之后,通过从原始视频块中减去预测视频块来形成残余视频块。
视频编码器通常应用变换、量化及可变长度译码(VLC)过程以进一步减少与残余块的通信相关联的位率。VLC涉及算术代码或可变长度代码的应用以进一步压缩由变换及量化操作产生的残余系数。VLC的一个实例为上下文适应性可变长度译码(CAVLC)。一旦信息被译码,便可将其发送到另一装置。在接收装置处,视频解码器使用每一块的运动信息及残余信息来执行逆操作以重构经编码视频。
某种视频译码利用可缩放技术。举例来说,可缩放视频译码(SVC)指代使用基础层及一个或一个以上可缩放增强层的视频译码。对于SVC,基础层通常携载具有基础质量等级的视频数据。一个或一个以上增强层携载额外视频数据以支持较高的空间、时间及/或SNR等级。可以比增强层的传输更可靠的方式来传输基础层。举例来说,可使用经调制信号的最可靠部分来传输基础层,而可使用经调制信号的较不可靠部分来传输增强层。


发明内容
一般来说,本发明描述用于对视频块的经译码块模式(CBP)进行译码的技术。CBP指代视频块内的系数模式,其经由映射到所述模式的信息来译码。为了对不同CBP进行译码,可使用可变长度译码(VLC)技术,其中用较短代码对较有可能出现的系数模式进行译码,而用较长代码对较不可能出现的系数模式进行译码。经译码的视频块可在其标头内包括旗标或其它信息以指示正在使用CBP。
根据本发明的技术,在译码装置中存储若干不同VLC表。在编码及解码过程期间,选择并使用所述VLC表中的一者以对给定视频块执行对CBP的译码。可以提升译码效率的方式来选择所述表。为了这样做,所述技术可利用视频帧内的空间冗余现象。具体地说,本发明的技术可基于与当前视频块相邻的包括非零变换系数的视频块的数目而执行用于当前视频块的CBP VLC的表选择。所述技术可尤其对在可缩放视频译码(SVC)中对增强层的视频块的译码为有用的。
在一个实例中,本发明提供一种方法,其包含基于与当前视频块相邻的包括非零变换系数的视频块的数目而从多个表中选择用于当前视频块的VLC表;以及使用所述选定的VLC表来对当前视频块的一个或一个以上CBP进行译码。
在另一实例中,本发明提供一种装置,其包含VLC单元,其经配置以基于与当前视频块相邻的包括非零变换系数的视频块的数目而从多个表中选择用于当前视频块的VLC表,且使用所述选定的VLC表来对当前视频块的一个或一个以上CBP进行译码。
在另一实例中,本发明提供一种装置,其包含用于选择的装置,其基于与当前视频块相邻的包括非零变换系数的视频块的数目而从多个表中选择用于当前视频块的VLC表;以及用于译码的装置,其使用所述选定的VLC表来对当前视频块的一个或一个以上CBP进行译码。
本发明中所描述的技术可以硬件、软件、固件或其任何组合来实施。如果以软件来实施,则所述软件可在一个或一个以上处理器中执行,所述处理器例如为微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或数字信号处理器(DSP)。执行所述技术的软件可最初存储于计算机可读媒体中且加载于处理器中并在处理器中执行。
因此,本发明还预期一种包含指令的计算机可读媒体,所述指令在视频译码装置中执行时致使所述装置基于与当前视频块相邻的包括非零变换系数的视频块的数目而从多个表中选择用于当前视频块的VLC表;以及使用所述选定的VLC表来对当前视频块的一个或一个以上CBP进行译码。在一些情况下,所述计算机可读媒体可形成可出售给制造者及/或在视频译码装置中使用的计算机程序产品的一部分。计算机程序产品可包括计算机可读媒体,且在一些情况下,还可包括封装材料。
在其它情况下,本发明可针对于一种电路,例如集成电路、芯片组、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、逻辑或其各种组合,其经配置以执行本文中所描述的技术中的一者或一者以上。
在附图及以下描述中阐述本发明的一个或一个以上方面的细节。将从所述描述及图式中且从权利要求书中容易了解到本发明中所描述的技术的其它特征、目的及优点。



图1为说明视频编码及解码系统的示范性框图。
图2为说明可缩放视频位流的基础层及增强层的视频帧的概念图。
图3为说明符合本发明的视频编码器的实例的框图。
图4为说明符合本发明的视频解码器的实例的框图。
图5为可变长度译码(VLC)编码单元的示范性框图。
图6为VLC解码单元的示范性框图。
图7为说明符合本发明的用于对经译码块模式(CBP)进行译码的VLC技术的流程图。

具体实施例方式 图1为说明视频编码及解码系统10的框图。如图1所示,系统10包括源装置12,其经由通信信道15将经编码视频传输到接收装置16。源装置12可包括视频源20、视频编码器22及调制器/发射器24。接收装置16可包括接收器/解调器26、视频解码器28及显示装置30。系统10可经配置以应用用于视频信息的经译码块模式(CBP)的可变长度译码(VLC)的技术。
CBP指代视频块内的系数模式,其经由映射到所述模式的信息来译码。在一些格式中,CBP包含四位系数集合,且针对每一视频块来对若干CBP进行译码。然而,可界定较长或较短的CBP。为了对不同CBP进行译码,可使用VLC技术,其中用较短代码来对较有可能出现的系数模式进行译码,且用较长代码来对较不可能出现的系数模式进行译码。经译码的视频块可在其标头内包括旗标或其它信息以指示在译码方案中正在使用CBP。
根据本发明的技术,在译码装置12、16的相应视频编码器22及视频解码器28中存储若干不同VLC表。在编码及解码过程期间,选择并使用所述VLC表中的一者以对给定视频块执行对CBP的译码或解码。编码及解码在本文中可统称为译码。可以提升译码效率的方式来选择所述表。举例来说,视频编码器22及视频解码器28可利用视频帧内的空间冗余现象。具体地说,视频编码器22及视频解码器28可基于与当前视频块相邻的包括非零变换系数的视频块的数目而执行用于当前视频块的CBP VLC的表选择。这些技术可尤其对在可缩放视频译码(SVC)中对增强层的视频块的译码为有用的。
在图1的实例中,通信信道15可包含任何无线或有线通信媒体(例如射频(RF)频谱或一个或一个以上物理传输线)或无线及有线媒体的任何组合。通信信道15可形成基于包的网络(例如,局域网、广域网或例如因特网等全球网络)的一部分。通信信道15大体上表示任何适合的通信媒体或不同通信媒体的集合,用于将视频数据从源装置12传输到接收装置16。
源装置12产生经译码的视频数据以供传输到接收装置16。然而,在一些情况下,装置12、16可以大致对称的方式来操作。举例来说,装置12、16中的每一者可包括视频编码及解码组件。因此,系统10可支持视频装置12、16之间的单向或双向视频传输,例如用于视频串流、视频广播或视频电话。
源装置12的视频源20可包括视频俘获装置,例如摄影机、含有先前所俘获视频的视频保存器或来自视频内容提供者的视频馈入。作为另一替代方案,视频源20可产生基于计算机图形的数据作为源视频,或者实况视频及计算机所产生视频的组合。在一些情况下,如果视频源20为摄影机,则源装置12及接收装置16可形成所谓的相机电话或视频电话。在每一情况下,所俘获、所预俘获或计算机所产生的视频可由视频编码器22编码以供经由调制器/发射器22、通信信道15及接收器/解调器26从视频源装置12传输到视频接收装置16的视频解码器28。视频编码及解码过程可实施用于CBP的VLC技术(如本文所描述),以改进所述过程。显示装置30向用户显示经解码的视频数据,且可包含多种显示装置中的任一者,例如阴极射线管、液晶显示器(LCD)、等离子体显示器、有机发光二极管(OLED)显示器或另一类型的显示装置。
视频编码器22及视频解码器28可经配置以支持可缩放视频译码(SVC)以实现空间、时间及/或信噪比(SNR)可缩放性。在一些方面中,视频编码器22及视频解码器28可经配置以支持用于SVC的精细粒度SNR可缩放性(FGS)译码。编码器22及解码器28可通过支持基础层及一个或一个以上可缩放增强层的编码、传输及解码来支持各种程度的可缩放性。对于可缩放视频译码,基础层携载具有基线质量等级的视频数据。一个或一个以上增强层携载额外数据以支持较高的空间、时间及/或SNR等级。可以比增强层的传输更可靠的方式来传输基础层。举例来说,可使用经调制信号的最可靠部分来传输基础层,而可使用经调制信号的较不可靠部分来传输增强层。
为了支持SVC,视频编码器22可包括基础层编码器32及一个或一个以上增强层编码器34,以分别执行对基础层及一个或一个以上增强层的编码。本发明的技术涉及基于与当前视频块相邻的包括非零变换系数的视频块的数目而进行的用于当前视频块的CBP VLC的表选择,且其可尤其对在SVC中对增强层的视频块的译码为有用的。
视频解码器28可包含组合式基础/增强解码器,其对与基础层及增强层两者相关联的视频块进行解码,且将经解码的视频进行组合以重构视频序列的帧。显示装置30接收经解码的视频序列,且向用户呈现所述视频序列。
视频编码器22及视频解码器28可根据视频压缩标准(例如MPEG-2、MPEG-4、ITU-TH.263或ITU-T H.264/MPEG-4,高级视频译码(AVC),第10部分)来操作。尽管图1中未展示,但在一些方面中,视频编码器22及视频解码器28可各自与音频编码器及解码器集成,且可包括适当的多路复用器-多路分用器(MUX-DEMUX)单元或其它硬件及软件,以处理对共同数据流或单独数据流中的音频与视频两者的编码。如果可应用,则多路复用器-多路分用器单元可遵照ITU H.223多路复用器协议或例如用户数据报协议(UDP)等其它协议。
H.264/MPEG-4(AVC)标准由ITU-T视频译码专家组(VCEG)连同ISO/IEC运动图像专家组(MPEG)一起制订,作为称为联合视频工作组(JVT)的集体合作伙伴的产品。在一些方面中,本发明中所描述的技术可应用于通常遵照H.264标准的装置。在由ITU-T研究组所作且注明日期为2005年3月的ITU-T建议H.264(用于通用视听服务的高级视频译码)中描述H.264标准,其在本文中可被称为H.264标准或H.264规范或者H.264/AVC标准或规范。
联合视频工作组(JVT)继续致力于对H.264/MPEG-4AVC的可缩放视频译码(SVC)扩展。演进SVC扩展的规范呈联合草案(JD)的形式。由JVT所建立的联合可缩放视频模型(JSVM)实施用于在可缩放视频中使用的工具,其可在系统10内使用以用于本发明中所描述的各种译码任务。关于精细粒度SNR可缩放性(FGS)译码的详细信息可参见联合草案文献,且尤其是参见联合草案6(SVC JD6)(托马斯·韦根(ThomasWiegand)、加里·苏利万(Gary Sullivan)、朱利安·赖歇尔(Julien Reichel)、海寇·许瓦尔兹(Heiko Schwarz)及马蒂亚斯·维恩(Mathias Wien),“联合草案6可缩放视频译码(Joint Draft 6Scalable Video Coding)”,JVT-S 201,2006年4月,日内瓦)以及联合草案9(SVC JD9)(托马斯·韦根(Thomas Wiegand)、加里·苏利万(Gary Sullivan)、朱利安·赖歇尔(Julien Reichel)、海寇·许瓦尔兹(Heiko Schwarz)及马蒂亚斯·维恩(MathiasWien),“SVC修正的联合草案9(Joint Draft 9 of SVC Amendment)”,JVT-V 201,2007年1月,马拉喀什,摩洛哥)。而且,本文中所描述的技术的一个实施方案的额外细节可参见由马尔塔·卡兹维茨(Marta Karczewicz)、赫金·钟(Hyukjune Chung)及敷姆·塞格通(Phoom Sagetong)于2007年1月13日到19日在摩洛哥马拉喀什的第22届会议上提交给ISO/IEC MPEG及IUT-T VCEG JVT的提议文献JVT-V092。
在一些方面中,对于视频广播,本发明中所描述的技术可应用于增强型H.264视频译码以用于在使用仅前向链路(FLO)空中接口规范“用于陆地移动多媒体多播的仅前向链路空中接口规范(Forward Link Only Air Interface Specification for Terrestrial MobileMultimedia Multicast)”(其将被公布为技术标准TIA-1099(“FLO规范”))的陆地移动多媒体多播(TM3)系统中传递实时视频服务。也就是说,通信信道15可包含用于根据FLO规范等来广播无线视频信息的无线信息信道。FLO规范包括界定适合于FLO空中接口的位流语法与语义及解码过程的实例。或者,可根据例如DVB-H(数字视频广播-手持式)、ISDB-T(集成服务数字广播-陆地)或DMB(数字媒体广播)等其它标准来广播视频。因此,源装置12可为移动无线终端、视频串流服务器或视频广播服务器。然而,本发明中所描述的技术不限于任何特定类型的广播、多播或点到点系统。在广播的情况下,源装置12可将若干信道的视频数据广播到多个接收装置,所述接收装置中的每一者可类似于图1的接收装置16。作为实例,接收装置16可包含无线通信装置,例如通常称为蜂窝式无线电电话的移动手持机。
视频编码器22及视频解码器28各自可经实施为一个或一个以上微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、离散逻辑、软件、硬件、固件或其任何组合。视频编码器22及视频解码器28中的每一者可包括于一个或一个以上编码器或解码器中,所述编码器或解码器中的任一者可经集成为相应移动装置、订户装置、广播装置、服务器等中的组合式编码器/解码器(编解码器)的一部分。另外,源装置12及接收装置16各自可包括用于经编码视频的传输及接收的适当调制、解调、频率转换、滤波及放大器组件(如果适用的话),其中包括足以支持无线通信的射频(RF)无线组件及天线。然而,为易于说明,图1中将此些组件概括为源装置12的调制器/发射器24及接收装置16的接收器/解调器26。
视频序列包括一系列视频帧。视频编码器22对个别视频帧内的像素块进行操作,以便对视频数据进行编码。视频块可具有固定或变化的大小,且可根据所指定的译码标准而在大小方面有所不同。每一视频帧包括一系列切片。每一切片可包括一系列宏块,其可经布置成若干子块。作为实例,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,及对于色度分量的对应缩放大小)的帧间预测。
较小视频块可提供较佳分辨率,且可用于包括较高细节等级的对视频帧的定位。一般来说,宏块(MB)及各种子块可被视为视频块。另外,切片可被视为一系列视频块,例如MB及/或子块。每一切片可为可独立解码的单元。在预测之后,可对8×8的残余块或4×4的残余块执行变换,且如果使用帧内_16×16预测模式,则可向用于色度分量或亮度分量的4×4块的DC系数应用额外变换。
在基于帧内或帧间的预测性译码之后,可将额外译码技术应用于所传输位流。这些额外译码技术可包括变换技术(例如H.264/AVC中所使用的4×4或8×8整数变换,或离散余弦变换DCT)及可变长度译码。明确地说,本发明提供用于对视频块的CBP进行译码的技术,其可在编码器22处执行以对数据进行编码,且在解码器26处执行以对数据进行解码。此外,CBP指代视频块内的系数模式,例如离散余弦变换系数或整数变换系数模式。为了对不同CBP进行译码,可使用VLC技术,其中用较短代码来对较有可能出现的系数模式进行译码,且用较长代码来对较不可能出现的系数模式进行译码。经译码的视频块可在其标头内包括旗标或其它信息以指示在译码方案中正在使用CBP。
根据本发明的技术,在源装置12及接收装置16中存储若干不同VLC表。在编码及解码过程期间,选择VLC表以对给定视频块执行对CBP的译码。可以通过利用视频帧内的空间冗余现象而提升译码效率的方式来选择所述表。具体地说,根据本发明的技术,视频编码器22及视频解码器28可基于与当前视频块相邻的包括非零变换系数(例如,非零DCT系数)的视频块的数目而执行用于当前视频块的CBP VLC的表选择。所述相邻块可包含先前经译码的块,且由于在当前视频块与其相邻者之间的空间相似性的可能性,包括非零变换系数的相邻块的数目可为当前视频块的CBP译码提供良好的表选择量度。
在一个实例中,编码器22及解码器28可执行互逆的方法,其各自基于与当前视频块相邻的包括非零变换系数的视频块的数目而计算用于当前视频块的表索引值,且基于所述表索引而从多个表中选择VLC表。视频编码器22使用所述选定的VLC表来对当前视频块的CBP进行编码,而视频解码器28使用所述选定的VLC表来对当前视频块的CBP进行解码。由于编码器22及解码器28使表选择基于相同准则,所以应在解码过程中识别并选择在编码过程中针对给定视频块而选择的相同表,从而确保编码器及解码器所应用的译码过程保持同步。
图2为说明可缩放视频位流的基础层17及增强层18内的视频帧的图。如上文所提及,本发明的技术可尤其对增强层的视频块的译码为有用的。基础层17可包含含有表示第一等级的空间、时间或SNR可缩放性的经编码视频数据的位流。增强层18可包含含有表示第二等级的空间-时间-SNR可缩放性的经编码视频数据的位流。在一些情况下,增强层位流仅可结合基础层来解码,且其不可被独立解码。增强层18含有对基础层17中的经解码视频数据的参考。此些参考可在变换域或像素域中使用以产生最终经解码视频数据。
基础层17及增强层18可含有帧内(I)、帧间(P)及双向(B)帧。增强层18中的P帧依赖于对基础层17中的P帧的参考。通过对增强层18及基础层17中的帧进行解码,视频解码器能够提高经解码视频的视频质量。举例来说,基础层17可包括以每秒15个帧的最小帧速率进行编码的视频,而增强层18可包括以每秒30个帧的较高帧速率进行编码的视频。为了支持在不同质量等级下进行编码,可分别以较高量化参数(QP)及较低QP来对基础层17及增强层18进行编码。此外,可以比增强层18的传输更可靠的方式来传输基础层17。作为实例,可使用经调制信号的最可靠部分来传输基础层17,而可使用经调制信号的较不可靠部分来传输增强层18。图2的说明仅仅是示范性的,因为基础层及增强层可以许多不同方式来界定。
图3为说明符合本发明的包括VLC单元46以对数据进行编码的视频编码器50的实例的框图。图3的视频编码器50可对应于图1中的源装置12的增强层编码器34。也就是说,为简单起见,图3中未说明基础层编码组件。因此,视频编码器50可被视为增强层编码器。在一些情况下,视频编码器50的所说明组件还可(例如)在支持基础层及增强层的可缩放视频译码的金字塔式编码器设计中结合基础层编码模块或单元来实施。
视频编码器50可执行对视频帧内的块的帧内及帧间译码。帧内译码依赖于空间预测以减少或移除给定视频帧内的视频中的空间冗余。帧间译码依赖于时间预测以减少或移除视频序列的相邻帧内的视频中的时间冗余。对于帧间译码,视频编码器50执行运动估计以跟踪匹配视频块在两个或两个以上相邻帧之间的移动。对于帧内译码,使用空间预测来识别帧内与正被译码的块紧密匹配的其它块。图3中未说明帧内译码空间预测组件。
如图3中所示,视频编码器50接收待编码的视频帧内的当前视频块31(例如,增强层视频块)。在图3的实例中,视频编码器50包括运动估计单元33、参考帧存储装置35、运动补偿单元37、块变换单元39、量化单元41、逆量化单元42、逆变换单元44及VLC单元46。还可包括去块滤波器(未图示)以对块边界进行滤波以移除成块假象。视频编码器50还包括加法器48及加法器51。图3说明视频编码器50的用于对视频块进行帧间译码的时间预测组件。尽管为易于说明而未在图3中展示,但视频编码器50还可包括用于对一些视频块进行帧内译码的空间预测组件。然而,空间预测组件通常仅用于基础层译码。
运动估计单元33将视频块31与一个或一个以上相邻视频帧中的块进行比较,以产生一个或一个以上运动向量。相邻帧可从参考帧存储装置35中检索,参考帧存储装置35可包含任何类型的存储器或数据存储装置以存储从先前经编码块重构的视频块。可针对可变大小(例如,16×16、16×8、8×16、8×8或更小块大小)的块执行运动估计。运动估计单元33(例如)基于速率失真模型来识别相邻帧中与当前视频块31最紧密匹配的块,且确定所述块之间的位移。在此基础上,运动估计单元33产生运动向量(MV)(或在双向预测的情况下产生多个MV),其指示当前视频块31与用于对当前视频块31进行译码的预测性块之间的位移的量值及轨迹。
运动向量可具有二分之一或四分之一像素精度,或甚至更精细的精度,从而允许视频编码器50以比整数像素定位高的精度来跟踪运动且获得较佳预测块。当使用具有分数像素值的运动向量时,在运动补偿单元37中实行内插操作。运动估计单元33可使用速率失真模型来识别视频块的最佳运动向量。使用所得运动向量,运动补偿单元37通过运动补偿来形成预测视频块。
视频编码器50通过在加法器48处从原始当前视频块31中减去由运动补偿单元37所产生的预测视频块来形成残余视频块。块变换单元39将变换(例如离散余弦变换(DCT))应用于残余块,从而产生残余变换块系数。量化单元41对残余变换块系数进行量化以进一步减小位速率。加法器49A(例如)从基础层编码器(未图示)接收基础层系数信息,且定位于块变换单元39与量化单元41之间,以将此基础层系数信息供应到增强层译码中。明确地说,加法器49A从块变换单元39的输出中减去基础层系数信息。以类似方式,定位于逆变换单元44与逆量化单元42之间的加法器49B也从基础层编码器(未图示)接收基础层系数信息。加法器49B将基础层系数信息添加回到逆量化单元42的输出。
空间预测译码非常类似于时间预测译码来操作。然而,时间预测译码依赖于相邻帧(或其它经译码单元)的块来执行译码,而空间预测依赖于共同帧(其它经译码单元)内的块来执行译码。空间预测译码对帧内块进行译码,而时间预测译码对帧间块进行译码。此外,为简单起见,图3中未展示空间预测组件。
VLC译码单元46根据可变长度译码方法来对经量化变换系数进行译码,以更进一步减小所传输信息的位速率。明确地说,VLC译码单元46应用本发明的技术以对CBP进行译码。为了这样做,VLC译码单元46基于与当前视频块相邻的包括非零变换系数的视频块的数目而计算用于当前视频块的表索引值,且基于所述表索引而从多个表中选择VLC表。VLC译码单元46接着使用所述选定的VLC表来对当前视频块的CBP进行编码。所述选定的VLC表可提升对当前视频块的CBP的译码效率。由于相邻者之间的空间类似性的高概率,使用相邻视频块(具体地说,那些包括非零变换系数的视频块)来促进表选择为进行表选择提供了便利机制。举例来说,相邻视频块可为在当前视频块的译码之前经预先译码的块。
在可变长度译码之后,可将经编码视频传输到另一装置。另外,逆量化单元42及逆变换单元44分别应用逆量化及逆变换以重构残余块。加法器51将经重构残余块添加到由运动补偿单元37产生的运动补偿预测块以产生经重构视频块供存储于参考帧存储装置35中。经重构视频块由运动估计单元33及运动补偿单元37使用以对后续视频帧中的块进行编码。
图4为说明视频解码器60的实例的框图,所述视频解码器60可对应于图1的视频解码器28或另一装置的解码器。视频解码器60包括VLC解码单元52A,其对增强层视频块执行图3的VLC编码单元46的可逆功能。也就是说,类似于VLC编码单元46,VLC解码单元52A基于与当前视频块相邻的包括非零变换系数的视频块的数目而计算用于当前视频块的表索引值,且基于所述表索引而从多个表中选择VLC表。VLC解码单元52A接着使用所述选定的VLC表来对当前视频块的CBP进行解码,所述VLC表应与由VLC编码单元46在编码过程期间选择的表相同。
视频解码器60还可包括用于基础层信息的另一VLC单元52B。帧内预测单元55可任选地执行对基础层视频块的任何空间解码,且帧内预测单元55的输出可被提供到加法器53。增强层路径可包括逆量化单元58A,且基础层路径可包括逆量化单元56B。基础层与增强层路径中的信息可通过加法器57来组合。
视频解码器60可执行对视频帧内的块的帧内及帧间解码。在图4的实例中,视频解码器60包括VLC单元52A及52B(上文所提及)、运动补偿单元54、逆量化单元56A及56B、逆变换单元58以及参考帧存储装置62。视频解码器60还包括加法器64。任选地,视频解码器60还可包括对加法器64的输出进行滤波的去块滤波器(未图示)。此外,加法器57将基础层与增强层路径中的信息进行组合,且帧内预测单元55及加法器53促进对基础层视频块的任何空间解码。
此外,对于增强层视频块,VLC解码单元52A接收经编码的视频位流且对CBP应用VLC技术,如本发明中所描述。这可产生经量化的残余系数、宏块及子块译码模式以及运动信息,所述运动信息可包括运动向量及块分割。明确地说,VLC解码单元52A使用自适应VLC表选择技术,其基于具有非零变换系数的相邻视频块的数目。以此方式,可使用空间冗余现象来选择用于CBP的VLC的表。
在由VLC单元52A执行解码之后,运动补偿单元54接收运动向量及来自参考帧存储装置62的一个或一个以上经重构参考帧。逆量化单元56A对经量化块系数进行逆量化(即,解量化)。在加法器57将增强与基础层信息进行组合之后,逆变换单元58对系数应用逆变换(例如,逆DCT)以产生残余块。运动补偿单元54产生运动补偿块,通过加法器64将其与残余块求和以形成经解码块。如果需要的话,还可应用去块滤波器以对经解码块进行滤波,以便移除成块假象。接着将经滤波块放置于参考帧存储装置62中,所述参考帧存储装置62提供来自运动补偿的参考块且还向驱动显示装置(例如,图1的装置30)产生经解码视频。
图5为说明示范性VLC编码单元70的框图,所述VLC编码单元70可对应于图3的VLC编码单元46。VLC编码单元70包括CBP VLC编码模块72及表索引计算单元74。CBP表76大体上指代可存储于任何位置中(例如,本地或在芯片外存储于单独存储器位置中)的表。可根据需要定期地对CBP表76进行更新。
CBP指代视频块内根据一方案而译码的系数模式。一些模式可比其它模式更有可能在视频块中出现。基于此因素,可使用VLC来通过辨识系数模式且对例如CBP等模式进行译码来压缩数据。块标头中的信息可识别在译码方案中使用CBP的事实。
空间冗余现象大体上预测具紧密空间接近性的视频块将具有较高等级的相关性。基于此现象,本发明建议使用相邻视频块来促进用于CBP的有效VLC的表选择。这可相对于针对所有CBP使用固定映射或基于块类型(例如,帧内块与帧间块)使用表的常规技术来改进CBP的VLC的效率。
在VLC编码单元70中,存储多个CBP表76。然而,这些表可替代性地存储于单独(例如,芯片外)位置中。表计算单元74基于与当前视频块相邻的包括非零变换系数的视频块的数目而计算用于当前视频块的表索引值。CBP VCL编码模块72接着基于所述表索引而从多个表76中选择VLC表。在选择适当表后,CBP VLC编码模块72使用所述选定的VLC表来对当前视频块的CBP进行编码。
作为实例,当前视频块可包含16乘16宏块,且相邻视频块包含若干8乘8亮度块,其与当前视频块左边的第一相邻宏块及当前视频块上方的第二相邻宏块相关联。在本文中所描述的计算中还可使用色度块(例如,与16乘16宏块相关联的子取样8乘8色度块)作为相邻块,但出于表选择的目的而仅使用相邻亮度块可能是足够的。本文中所描述的相邻块的块大小及位置仅为示范性的,因为本发明的技术可配合各种各样的视频块大小及译码格式中的任一者来实施。
作为另一实例,表索引计算单元74可将表索引计算为 当针对第一相邻宏块及第二相邻宏块两者存在非零变换系数的信息时,N=(N(l)+N(u))/2+1; 当针对第一相邻宏块存在非零变换系数的信息但针对第二相邻宏块不存在非零变换系数的信息时,N=N(l)+1;以及 当针对第二相邻宏块存在非零变换系数的信息但针对第一相邻宏块不存在非零变换系数的信息时,N=N(u)+1。在此实例中,N表示表索引,N(l)表示在当前视频块左边的包括非零变换系数的相邻亮度块的数目,且N(u)表示在当前视频块上方的包括非零变换系数的相邻亮度块的数目。
所述多个CBP表可为从以下表形成的表 表1 所述多个CBP表76中的每一者可包含与表1的表索引列中的一者组合的表1的代码编号列。所述多个表可以类似于表1的方式或以另一方式独立地存储。在任何情况下,CBP VLC编码模块72可通过为在表1的对应于所计算表索引的列中所列出的CBP值从代码编号列中选择代码编号来对CBP进行编码。如果必要或需要的话,可进行对CBP表76的更新,且所述表内的值可经受各种各样的变化。上文的表1仅仅示范说明可使用的多个表。
此外,本发明的技术可尤其对在可缩放视频译码(SVC)的上下文中对一个或一个以上增强层进行译码为有用的。在此情况下,使用CBP来对增强层进行译码,且根据本文中所描述的技术来执行用于对增强层中的此些CBP的VLC的表选择。在编码器及解码器处执行译码技术。常规地,使用CBP与代码编号之间的固定映射,其可能无法适应于变化的场景特性,进而导致效率低下。所描述的技术还可比针对经帧内及帧间译码的块使用不同表的技术更有效。在大多数情况下,存储两个以上表,且在三个或三个以上表中进行表选择。在表1的实例中,由代码编号列及五个不同表索引列界定五个不同VLC表。
图6为说明示范性VLC解码单元80的框图,所述VLC解码单元80可对应于图4的VLC编码单元52。VLC解码单元80大致类似于VLC编码单元70,但执行相对于由VLC编码单元70执行的编码互逆的解码功能。因此,VLC编码单元70接收经量化残余系数且产生位流,而VLC解码单元80接收位流且产生经量化残余系数。VLC解码单元包括CBP VLC解码模块82及表索引计算单元84。CBP表86包含可存储于任何位置中(例如,本地或在芯片外存储于单独存储器位置中)的表。可根据需要定期地对CBP表104进行更新。
如同在VLC编码单元70中,VLC解码单元80可存取多个CBP表86。此外,这些表可存储于本地,或可替代地存储于单独(例如,芯片外)位置。表计算单元84基于与当前视频块相邻的包括非零变换系数的视频块的数目而计算用于当前视频块的表索引值。由于基于块的视频译码通常从左到右且从上到下依序发生,所以相邻视频块可包含定位于当前视频块的左边及上方的块。CBP VCL解码模块82基于表索引而从多个表86中选择VLC表。在选择适当表后,CBP VLC解码模块82使用所述选定的VLC表来对当前视频块的CBP进行解码以产生适当系数。
如同在编码过程中,在解码过程中当前视频块可包含16乘16宏块,且相邻视频块包含与当前视频块左边的第一相邻宏块及当前视频块上方的第二相邻宏块相关联的若干8乘8亮度块。此外,还可使用色度块(例如,与16乘16宏块相关联的经子取样8乘8色度块),但出于表选择的目的而仅使用相邻亮度块可能是足够的。此外,本文中所列出的块大小仅为示范性的,因为本发明的技术可配合各种各样的视频块大小或格式中的任一者来实施。
表索引计算单元84可将表索引计算为 当针对第一相邻宏块及第二相邻宏块两者存在非零变换系数的信息时,N=(N(l)+N(u))/2+1; 当针对第一相邻宏块存在非零变换系数的信息但针对第二相邻宏块不存在非零变换系数的信息时,N=N(l)+1; 当针对第二相邻宏块存在非零变换系数的信息但针对第一相邻宏块不存在非零变换系数的信息时,N=N(u)+1。在此实例中,N表示表索引,N(l)表示在当前视频块左边的包括非零变换系数的相邻亮度块的数目,且N(u)表示在当前视频块上方的包括非零变换系数的相邻亮度块的数目。
如同编码实例,用于解码的多个CBP表86中的每一者可包含与表1的表索引列中的一者组合的表1的代码编号列。所述多个表可以类似于表1的方式或以另一方式独立地存储。在任何情况下,CBP VLC解码模块82可通过从代码编号列中为在表1的对应于所计算表索引的列中所列出的CBP值选择代码编号来对CBP进行解码。对CBP表86的更新可根据需要进行,且表内的值可经受各种各样的变化。当然,将需要把更新传达到编码装置及解码装置两者。此外,表1仅示范说明可使用的多个表。
图7为说明符合本发明的用于对CBP进行译码的VLC技术的流程图。图7中所说明的技术可由VLC编码单元70或VLC解码单元80执行。如图7中所示,表索引计算单元74、84基于与当前视频块相邻的具有非零变换系数的块的数目而计算用于当前视频块的表索引值(91)。CBP VCL译码模块72、84基于所计算的表索引值而从多个VLC表76、86中选择VLC表。CBP VLC译码模块72、84接着基于所述选定的VLC表而对当前视频块的CBP进行译码。模块72执行编码,且模块82执行互逆的解码。
本文中所描述的技术可以硬件、软件、固件或其任何组合来实施。经描述为模块或组件的任何特征可一起在集成逻辑装置中实施或单独地实施为离散但可互操作的逻辑装置。如果以软件来实施,则所述技术可至少部分地通过包含指令的计算机可读媒体来实现,所述指令在被执行时执行上文所描述的方法中的一者或一者以上。计算机可读数据存储媒体可形成计算机程序产品的一部分,所述计算机程序产品可包括封装材料。计算机可读媒体可包含随机存取存储器(RAM),例如同步动态随机存取存储器(SDRAM)、只读存储器(ROM)、非易失性随机存取存储器(NVRAM)、电可擦除可编程只读存储器(EEPROM)、快闪存储器、磁或光学数据存储媒体等。另外或替代地,所述技术可至少部分地通过计算机可读通信媒体来实现,所述计算机可读通信媒体以指令或数据结构的形式携载或传送代码且可由计算机存取、读取及/或执行。
所述程序代码可由一个或一个以上处理器执行,所述处理器例如为一个或一个以上数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或者其它等效集成或离散逻辑电路。因此,如本文中所使用的术语“处理器”可指代前述结构中的任一者或适合于实施本文中所描述的技术的任何其它结构。另外,在一些方面中,本文中所描述的功能性可提供于经配置以用于编码及解码的专用软件模块或硬件模块内,或并入在组合式视频编码器-解码器(编解码器)中。
如果以硬件来实施,则本发明可针对于一种电路,例如集成电路、芯片组、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、逻辑或其各种组合,其经配置以执行本文中所描述的技术中的一者或一者以上。
已描述了本发明的各种实施例。这些及其它实施例属于所附权利要求书的范围内。
权利要求
1.一种方法,其包含
基于与当前视频块相邻的包括非零变换系数的视频块的数目而从多个表中选择用于所述当前视频块的可变长度译码(VLC)表;及
使用所述选定的VLC表来对所述当前视频块的一个或一个以上经译码块模式(CBP)进行译码。
2.根据权利要求1所述的方法,其中对一个或一个以上CBP进行译码包含对所述CBP进行编码。
3.根据权利要求1所述的方法,其中对一个或一个以上CBP进行译码包含对所述CBP进行解码。
4.根据权利要求1所述的方法,其进一步包含
基于与所述当前视频块相邻的包括非零变换系数的视频块的数目而计算用于所述当前视频块的表索引值;及
基于所述表索引而选择所述VLC表。
5.根据权利要求4所述的方法,其中所述当前视频块包含16乘16宏块,且所述相邻视频块包含若干8乘8亮度块,所述8乘8亮度块与所述当前视频块左边的第一相邻宏块及所述当前视频块上方的第二相邻宏块相关联。
6.根据权利要求5所述的方法,其中将所述表索引值计算为
当针对所述第一相邻宏块及所述第二相邻宏块两者存在非零变换系数的信息时,
N=(N(1)+N(u))/2+1;
当针对所述第一相邻宏块存在非零变换系数的信息但针对所述第二相邻宏块不存在非零变换系数的信息时,N=N(1)+1;及
当针对所述第二相邻宏块存在非零变换系数的信息但针对所述第一相邻宏块不存在非零变换系数的信息时,N=N(u)+1,
其中N表示所述表索引值,N(1)表示所述当前视频块左边的包括非零变换系数的相邻亮度块的数目,且N(u)表示所述当前视频块上方的包括非零变换系数的相邻亮度块的数目。
7.根据权利要求6所述的方法,其中所述多个表包含由下面的表1形成的表
表1
其中所述多个表中的每一者包含与表1的表索引列中的一者组合的表1的代码编号列,且对所述经译码块模式进行译码包含针对表1的对应于所述所计算表索引的列中所列出的CBP值而从所述代码编号列中选择代码编号。
8.根据权利要求1所述的方法,其中所述当前视频块包含16乘16宏块,且所述相邻视频块包含若干8乘8亮度块及一个或一个以上8乘8色度块,所述8乘8亮度块及所述8乘8色度块均与所述当前视频块左边的第一相邻宏块及所述当前视频块上方的第二相邻宏块相关联。
9.根据权利要求1所述的方法,其中在无线通信装置(WCD)中执行所述方法。
10.根据权利要求1所述的方法,其中相对于可缩放视频译码(SVC)中的增强层的视频块来执行所述方法。
11.一种包含可变长度译码(VLC)单元的装置,所述VLC单元经配置以
基于与当前视频块相邻的包括非零变换系数的视频块的数目而从多个表中选择用于所述当前视频块的VLC表;且
使用所述选定的VLC表来对所述当前视频块的一个或一个以上经译码块模式(CBP)进行译码。
12.根据权利要求11所述的装置,其中所述VLC单元对所述一个或一个以上CBP进行编码。
13.根据权利要求11所述的装置,其中所述VLC单元对所述一个或一个以上CBP进行解码。
14.根据权利要求11所述的装置,其中所述VLC单元经配置以
基于与所述当前视频块相邻的包括非零变换系数的视频块的数目而计算用于所述当前视频块的表索引值;且
基于所述表索引而选择所述VLC表。
15.根据权利要求14所述的装置,其中所述当前视频块包含16乘16宏块,且所述相邻视频块包含若干8乘8亮度块,所述8乘8亮度块与所述当前视频块左边的第一相邻宏块及所述当前视频块上方的第二相邻宏块相关联。
16.根据权利要求15所述的装置,其中所述VLC单元将所述表索引计算为
当针对所述第一相邻宏块及所述第二相邻宏块两者存在非零变换系数的信息时,N=(N(1)+N(u))/2+1;
当针对所述第一相邻宏块存在非零变换系数的信息但针对所述第二相邻宏块不存在非零变换系数的信息时,N=N(1)+1;及
当针对所述第二相邻宏块存在非零变换系数的信息但针对所述第一相邻宏块不存在非零变换系数的信息时,N=N(u)+1,
其中N表示所述表索引,N(1)表示所述当前视频块左边的包括非零变换系数的相邻亮度块的数目,且N(u)表示所述当前视频块上方的包括非零变换系数的相邻亮度块的数目。
17.根据权利要求16所述的装置,其中所述多个表包含由下面的表1形成的表
表1
其中所述多个表中的每一者包含与表1的表索引列中的一者组合的表1的代码编号列,且对所述经译码块模式进行译码包含针对表1的对应于所述所计算表索引的列中所列出的CBP值而从所述代码编号列选择代码编号。
18.根据权利要求14所述的装置,其中所述装置包含存储所述多个表的存储器,且其中所述VLC单元包含
表索引计算单元,其计算所述表索引值;及
选择及译码模块,其基于所述表索引而从所述多个表中选择所述VLC表,且使用所述选定的VLC表来对所述当前视频块的所述CBP进行译码。
19.根据权利要求18所述的装置,其中所述存储器驻留于所述装置的所述VLC单元内。
20.根据权利要求11所述的装置,其中所述当前视频块包含16乘16宏块,且所述相邻视频块包含若干8乘8亮度块及一个或一个以上8乘8色度块,所述8乘8亮度块及所述8乘8色度块均与所述当前视频块左边的第一相邻宏块及所述当前视频块上方的第二相邻宏块相关联。
21.根据权利要求11所述的装置,其中所述装置包含以下各项中的至少一者
电路;及
无线通信装置。
22.根据权利要求11所述的装置,其中所述当前视频块包含可缩放视频译码(SVC)中的增强层的视频块。
23.一种装置,其包含
选择装置,其基于与当前视频块相邻的包括非零变换系数的视频块的数目而从多个表中选择用于所述当前视频块的可变长度译码(VLC)表;及
译码装置,其使用所述选定的VLC表来对所述当前视频块的一个或一个以上经译码块模式(CBP)进行译码。
24.一种包含指令的计算机可读媒体,所述指令在视频译码装置中执行时致使所述装置
基于与当前视频块相邻的包括非零变换系数的视频块的数目而从多个表中选择用于所述当前视频块的可变长度译码(VLC)表;且
使用所述选定的VLC表来对所述当前视频块的一个或一个以上经译码块模式(CBP)进行译码。
25.根据权利要求24所述的计算机可读媒体,其中指令致使所述装置
基于与所述当前视频块相邻的包括非零变换系数的视频块的数目而计算用于所述当前视频块的表索引值;且
基于所述表索引而选择所述VLC表。
全文摘要
本发明描述用于在基于块的视频译码中所使用的经译码块模式(CBP)的可变长度译码(VLC)技术。在CBP的VLC中,用较短代码对较有可能出现的变换系数模式进行译码,而用较长代码对较不可能出现的系数模式进行译码。根据本发明的技术,在译码装置中存储若干不同VLC表。在编码及解码过程期间,选择并使用所述VLC表中的一者以针对给定视频块执行对CBP的译码。基于与当前视频块相邻的包括非零变换系数的视频块的数目来选择所述表。所述技术在对可缩放视频译码(SVC)中的增强层的视频块的译码中可尤其有用。
文档编号H04N7/26GK101637024SQ200880001654
公开日2010年1月27日 申请日期2008年1月7日 优先权日2007年1月8日
发明者玛尔塔·卡切维奇, 郑赫俊, 普奥姆·萨热通 申请人:高通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1