使用非标准化矢量量化编码器的符合视频标准的残差编码的制作方法

文档序号:7952936阅读:293来源:国知局
专利名称:使用非标准化矢量量化编码器的符合视频标准的残差编码的制作方法
技术领域
本公开涉及数字视频处理,并且,更特别地,涉及创建符合标准的压缩残差模块的编码技术。
背景技术
很多设备可以提供数字视频性能,包括数字电视、数字直播系统、无线通信设备、个人数字助理(PDA)、便携式电脑、桌面型电脑、数码相机、数字记录设备、蜂窝或卫星通信电话等。数字视频设备比起传统的模拟视频系统,在创建、调整、传送、存储、记录和播放全部运动视频序列方面可以提供显著地改进。
已经建立了很多用于编码数字视频序列的不同视频编码标准。例如,运动图像专家组(MPEG)已发展了众多标准,包括MPEG-1、MPEG-2和MPEG-4。其他标准包括国际电信同盟无线电通信(ITU-T)H.263标准、由CupertinoCalifornia苹果电脑开发的QuickTimeTM、雷蒙德华盛顿微软公司开发的用于WindowsTM的视频、英特尔公司开发的IndeTM、西雅图RealNetworks公司的RealVideoTM以及SuperMac公司开发的CinepakTM。此外,新的标准不断涌现和发展,包括ITU-T H.264标准和大量专利标准。
很多视频编码标准涉及通过以压缩方式编码数据而提高视频序列的传输速率。为了视频帧的有效传输,压缩降低了需要传输的数据的整体数量。大多数视频编码标准,例如,使用图形和视频压缩技术,这些技术设计为便于视频和图像通过比未进行压缩所能够实现的带宽更加窄的带宽进行传输。典型的,这些标准提出用于生成符合标准被压缩的残差块的编码技术,但是还允许使用其他技术,只要输出的比特流符合标准。
很多标准,诸如MPEG标准和ITU-T H.263和ITU-T H.264标准,支持利用称之为时间相关或者帧间相关的连续视频帧之间的相似性的视频编码技术,从而提供帧间压缩。帧间压缩技术通过将视频帧的基于像素的表示变换为运动表示,利用了帧之间的数据冗余。此外,一些视频编码技术可以利用称为空间相关或者帧内相关的帧内的相似性,从而进一步压缩视频帧。
为了实现视频帧的压缩,数字视频设备典型地包括用于压缩数字视频序列的编码器,和用于解压缩数字视频序列的解码器。在很多情况中,编码器和解码器形成集成的“CODEC”,作用于定义视频序列的帧中的像素块。如在此公开文本中所使用的,术语“CODEC”指编码器,解码器或者集成的编码器/解码器。
在MPEG-4标准中,CODEC将要进行传输的视频帧分为视频块,称为“宏块”。ITU-TH.264标准支持16乘16的视频块,16乘8的视频块,8乘16的视频块,8乘8的视频块,8乘4的视频块,4乘8的视频块和4乘4的视频块。其他标准可以支持不同大小的视频块。对于视频帧中的每个视频块,CODEC在一个或者多个之前所编码的视频帧中搜索类似大小的视频块,以确定相似视频块,称为“预测块”。将当前视频块与其他帧的视频块进行比较的处理通常称为运动估计。一旦在运动估计处理中为当前视频块确定了“预测块”,CODEC能够对当前视频块和预测块之间的差异进行编码。
对当前视频块和预测块之间的差异进行编码的处理包括称为运动补偿的处理。运动补偿包括生成“残差”(residual),它是指示要被编码的当前视频块和预测块之间的差异的数据块。特别是,运动补偿通常指使用运动矢量获得预测块,然后从输入块中减去预测块以产生残差块的动作。典型地,残差包括与由差异块所表示的原始视频块相比更少的数据。“内部”编码还也生成“残差”,但是是基于要进行编码的视频块和相同帧的不同视频块之间的差异进行的。在内部编码中生成残差的处理经常称为“内部预测”。
在两个例子中任意一个中,在残差生成之后,还能进行一系列附加步骤,以进一步对残差进行编码和进一步压缩数据。这些附加步骤可以是基于所使用的编码标准,但是通常称为“残差编码”。在符合MPEG-4的CODEC中,例如,残差编码可以包括8×8离散余弦变换,然后进行分级量化,然后进行光栅-Z字形(raster-to-zigzag)重新排序,然后进行游程长度程编码(run-length),然后进行霍夫曼编码。经过编码的残差可以采用指示先前帧(或者后续帧)中哪个视频块用于编码的运动矢量进行传输。接收设备的CODEC接收运动矢量和经过编码的残差,并对所接收的信息进行解码,来重建视频序列。
残差编码步骤经常变成视频编码中的瓶颈。对于实时视频,诸如在视频电话(VT)应用中所使用的实时视频来说这会是一个问题。此外,受限的计算机资源和受限的电池电量能够与VT应用的这些问题相混合。不幸地是,对于大多数标准来说,残差编码步骤是顺序处理,在后续的处理能够执行之前,需要执行先前的处理。

发明内容
本公开文本描述了的一种使用矢量量化编码的残差编码技术,所述矢量量化编码基于模板匹配。这里所描述的技术将残差模板与预先计算的符合视频标准被压缩的残差块进行映射。例如,残差模板可以直接映射到符合标准被压缩的残差块,或者可以替换的,代表残差模块的矢量量化码薄索引可以映射到符合标准被压缩的残差块。在两种情况中任意一个中,符合标准被压缩的残差块然后能够被传输到另外一个符合标准的设备。该技术能够利用与矢量量化编码相关的优点,诸如执行更多的并行处理,同时仍然保持符合视频编码标准。
这里所描述的技术可以包括对一组残差模板预先计算一组符合标准被压缩的残差块。编码设备存储在残差模板和该组符合标准被压缩的残差块之间的映射。残差模块可以是经过变换的或者未经过变换的模板。所存储的映射可以在“编码薄”中体现,它还可以通过消除任何冗余的或者类似的残差模块进行有效的定义。为了执行残差编码,编码设备能够利用基于模板匹配的矢量量化编码,并能够访问编码薄以确定与在矢量量化编码中确定的最佳匹配的残差模板相关的符合标准被压缩的残差块。然后,能够传输符合标准被压缩的残差块,而不是像传统量化编码技术所做的那样,传输确定残差模板的矢量量化码薄索引。
在一个实施例中,公开文本提供了视频编码设备,包括存储器,其存储将残差模板与符合标准被压缩的残差块进行映射的信息;和残差编码器,其将残差与残差模板进行比较,确定与残差最佳匹配的残差模板,并选择对应的一个符合标准被压缩的残差块。
在另外一个实施例中,公开文本提供了视频编码方法,包括存储将残差模板与符合标准被压缩的残差块进行映射的信息,将残差与残差模板进行比较,确定与残差最佳匹配的一个残差模板,并选择对应的一个符合标准被压缩的残差块。
在另外一个实施例中,公开文本提供了计算机可读介质,包括指令,这些指令在处理器上执行,使处理器访问所存储的将残差模板与符合标准被压缩的残差块进行映射的信息,将残差与残差模板进行比较,确定与残差最佳匹配的一个残差模板,并选择对应的一个符合标准被压缩的残差块。
在另外一个实施例中,公开文本提供了计算机可读介质,包括存储在其中的数据结构,用于控制在视频编码设备中的矢量量化编码处理,其中数据结构将矢量量化编码处理的残差模板与符合视频编码标准被压缩的残差块进行映射。
在另外一个实施例中,公开文本提供了方法,包括确定一组残差模板,执行对该组残差模板的符合标准的编码处理,生成一组符合标准被压缩的残差块,并存储将该组残差模板与该组符合标准被压缩的残差块进行映射的信息。
这里所描述的这些和其他技术可以在视频编码设备中用硬件,软件,固件或者其任意组合执行。如果用软件执行,则软件可以在处理器,诸如支持指令的可编程处理器中执行。作为一个例子,指令可以是单指令多数据(SIMD)指令。在该情况下,该技术可以使用SIMD结构,便于在残差编码中进行并行处理。执行该数据的软件可以初始地存储在计算机可读介质中,并装载到处理器中并在处理器中执行,以执行这种残差编码。
各种实施例的附加的细节在以下的附图和说明中阐述。从说明和附图,和从权利要求中,其他特点,目的和优点会变的明显。


图1是视频编码设备的实例方框图,视频编码设备能够执行一个或者多个这里所述的残差编码技术;图2是阐述了根据本公开文本的残差编码技术的一个实施例的流程图;图3是阐述了根据本公开文本用于预先计算编码薄的实例结构的框图;图4是阐述了一种用于预先计算能够在残差编码中使用编码薄的实例技术的流程图;图5是阐述了用于预先计算残差模板和相应的符合标准被压缩的残差块的实例结构的框图;
图6是阐述了根据本公开文本的残差编码器的一个实施例的方框图。
具体实施例方式
本公开文本描述了使用矢量量化编码的残差编码技术,其取决于残差编码处理中的模板匹配。残差编码是指对由运动估计和运动补偿产生,或者由空间估计和内部预测所产生的“残差”的编码。运动估计和运动补偿是众所周知的技术,用在很多视频编码标准中,将时间或者帧间数据相关性用于帧间压缩。将要进行编码的当前视频块与另外一帧的各种其他视频块进行比较的处理通常称为运动估计。对当前视频块和预测块之间的差异进行编码的处理包括称为运动补偿的处理。运动补偿通常是指使用运动矢量获得预测块,然后从输入块中减去预测块的动作。运动补偿的输出称为“残差”,通常包括指示要进行编码的当前视频块和由运动估计所确定的预测块之间的差异的数据块。空间估计和内部预测技术也产生“残差”,通常指用于利用帧内数据相关性的众所周知的技术。
在运动补偿(或者内部预测)生成残差之后,还能进行一系列附加步骤,以进一步对残差进行编码和进一步压缩数据。所执行的附加步骤可以是基于所使用的编码标准,但是通常称为“残差编码”。本公开文本根据矢量量化编码技术设计了残差编码技术,它可以增强和加速编码处理并可以允许在残差编码处理中使用并行处理技术。
在残差矢量量化编码中,将残差与残差模板进行比较。通常,一旦确定了最佳匹配残差模板,则传输确定最佳匹配残差模板的矢量量化码薄索引。矢量量化码薄索引有时是指码字。然而,对应于本公开文本,不是传输对于符合标准的CODEC毫无意义的矢量量化码薄索引,而是将残差模板与预先计算的符合标准被压缩的残差块进行映射。然后,能够传输符合标准被压缩的残差块。在该方式下,这里所描述的技术能够利用与矢量量化编码相关的优点,诸如能执行并行的处理,同时仍然保持符合视频编码标准。这里所描述的技术可以用于经过变换或者未经过变换的残差模板。换句话说,在模板匹配技术之前可以进行一个或者多个残差编码步骤,但是在两种情况中任意一个中,本公开文本允许输出符合标准。
本公开文本的技术可以包括为一组残差模板预先计算一组符合标准被压缩的残差块。编码设备存储残差模板和该组符合标准被压缩的残差块之间的映射。映射可以包括编码薄,并且可以使用矢量量化码薄索引表示残差模板。为了执行残差编码,编码设备能够利用取决于模板匹配的矢量量化编码,并能够访问编码薄,以确定与在矢量量化编码中确定的最佳匹配的残差模板相关的符合标准被压缩的残差块。
图1是实例视频编码设备10的示例方框图。视频编码设备10能够形成数字视频设备的部分,数字视频设备能够编码并传输视频数据。视频数据可以从摄像机中捕获,或者从视频文件中获得。可以结合编码设备10的数字视频设备的例子包括数字电视,数字直接广播系统,无线通讯设备,个人数字代理(PDA),便携式计算机,台式计算机,数字照相机,数字录音设备,蜂窝式或者卫星通信电话,或者任何带有视频电话(VT)功能的通讯设备。设备10可以符合视频编码标准,诸如MPEG-4,ITU-TH.263和ITU-TH.264或者其他支持用于帧间视频编码的运动估计和运动补偿技术的视频编码标准。
如图1所示,设备10包括对视频序列进行编码的视频编码装置12,和在编码之前和之后存储视频序列的视频存储器4。设备10还可以包括发送器6,用于将经过编码的序列发送到另外一个设备,还可能包括视频捕获设备8,诸如摄像机,用于捕获视频序列并将所捕获的视频序列存储在存储器4中。设备10的各种元件可以通过通信总线15进行通信连接。在设备10中还可以包括各种其他元件,诸如帧内编码元件,各种滤波器或者其他元件,但是为了简单起见不进行具体阐述。
典型地,视频存储器4包括相对较大的存储器空间。例如,视频存储器4可以包括动态随机存储器(DRAM),或者FLASH存储器。在其他例子中,视频存储器4可以包括非易失性存储器或者任何其他数据存储设备。
视频编码装置12可以包括用于移动无线电话的所谓的“芯片组”,包括硬件,软件,固件,和/或者处理器或者数字信号处理器(DSP)的组合。视频编码装置12通常包括与局部存储器14相连的视频编码器16。与视频存储器4相比,局部存储器14可以包括更小和更加快速的存储空间。作为例子,局部存储器14可以包括同步动态随机存储器(SDRAM)。局部存储器14可以包括与视频编码装置12的其他元件集成的“芯片上”的存储器,以在处理器集中进行编码处理中提供很快的数据访问。然而,存储器4和14可以合并为同一存储器部分。视频编码器16可以支持并行处理技术,该技术可以在这里所描述的残差编码处理中使用。
在对给定视频帧进行编码的处理中,要进行编码的当前视频块可以从视频存储器4装载到局部存储器14。在定位预测视频块中使用的搜索空间也可以从视频存储器4装载到局部存储器14。搜索空间可以包括一个或者多个先前视频帧(或者随后视频帧)的像素的子集。所选择的子集可以作为合适位置而被预先确定,用于与要进行编码的当前视频块最佳匹配的预测视频块的确定。
局部存储器14装载要进行编码的当前视频块和搜索空间,搜索空间包括在帧间编码中使用的一个或者多个视频帧的部分或者全部。运动估算器/空间估算器13将当前视频块与搜索空间中的各种视频块进行比较,以确定预测视频块。运动估算器/空间估算器13通常表示为帧间编码执行运动估计的运动估算器,为帧内编码执行空间估计的空间估算器,或者既能执行运动估计又能执行空间估计的组合单元。通常,预测视频块是为了帧间相关(或者帧内相关)的目的,所找到的提供与当前视频块的适当匹配的候选视频块,它可以是最佳匹配的候选视频块。预测视频块是在运动估计处理中所评估的很多候选视频块之一,以确定相对与当前视频块有着最小差异值的视频块。
为了在存储器14的搜索空间中要进行编码的当前视频块与候选视频块之间的比较,运动估算器/空间估算器13可以执行绝对误差和(SAD)技术,平方误差和(SSD)技术,或者其他技术。在该方式下,运动估算器/空间估算器13能够确定对于不同候选视频块的差异值。较低的差异值通常表示候选视频块更好的匹配,因此运动估计中所使用的候选视频块比产生较高差异值的其他候选视频块更好。一旦找到合适的匹配,则可以确定预测视频块。
一旦通过运动估算器/空间估算器13为要进行编码的视频块确定了预测视频块,运动补偿器/内部预测单元17生成残差。运动补偿器/内部预测单元17通常表示为帧间编码执行运动补偿的运动补偿器,为帧内编码执行空间补偿的内部预测单元,或者取决于使用哪种模式既能执行运动补偿又能执行内部预测的组合单元。此外,残差包括表示要进行编码的当前视频块和用于编码的预测视频块之间的差异的数据块。特别是,运动补偿器/内部预测单元17可以使用运动矢量获得预测块,然后从输入块中减去预测块,从而生成残差。典型地,与用差异块表示的原始视频块相比,残差包括很少的数据。
在运动补偿器/内部预测单元17生成残差之后,残差编码器19对残差执行矢量量化编码,如本文所述。残差编码器19通常是非标准化矢量量化编码器,它执行查询,以确定符合标准被压缩的残差块。以这种方式,残差编码器19能够确定符合标准的比特流,作为残差的非标准化矢量量化编码的部分。例如,残差编码器19可以调用模板匹配技术,在该技术中,将一组残差模板与由运动补偿器/内部预测单元17所生成的残差进行比较。然后,可以将与残差最佳匹配的残差模板用于编码处理中。在模板匹配处理之后,残差编码器19访问编码薄18,以为所选择的模板确定符合标准被压缩的残差块。在一些应用中,在模板匹配之前可以执行一个或者多个变换,在该情况下,用于模板匹配的模板可以包括经过变换的模板。在任何情况下,使用编码薄18,残差模板(经过变换或者未经过变换)能够映射到符合标准被压缩的残差块。
根据本公开文本,视频编码设备10预先装载编码薄18,例如,它可以装载到局部存储器14(如图所示)或者视频存储器4中。例如,在很多情况下,完整的编码薄可能非常大并存储在视频存储器4中。在该情况下,编码薄18可以是高速缓存,用于存储在视频存储器18中的全部编码薄的一部分的存储。为了简便起见,在以下的表述中,假定将全编码薄作为编码薄18存储在局部存储器14中。在任何情况下,编码薄18将一组残差模板(或者确定模板的值)映射到一组相应的符合标准被压缩的残差块。可以使用视频训练序列为该组模板对符合标准被压缩的残差块预先进行计算。因此,一旦残差编码器19确认了残差模板之一,就能够访问编码薄18,以将所确认的残差模板映射到符合标准被压缩的残差块。
为了生成编码薄18,可以为一组残差模板预先计算符合标准被压缩的残差块。编码薄18或者通过直接将残差本身映射到被压缩的残差块,或者通过使用矢量量化码薄索引表示残差模板,来存储该映射。编码薄18的预先计算可以包括对应于符合所支持的标准的残差模板中的每一个而执行的所有的残差编码步骤。例如,编码薄18的预先计算可以包括诸如变换(例如DCT变换),Z字形扫描(zig-zag scanning),游程长度编码(run length coding),可变长(霍夫曼)编码的处理,或者在给定的编码标准中所使用的任何其他处理。由于在对残差进行编码之前对残差模板执行了上述一个或者多个处理,能够加速对残差的运行时间的编码。此外,使用模板匹配的矢量量化技术可以采用并行处理技术,如果在运行时间上对残差进行标准残差编码处理,则就不能使用该技术。
图2是实例流程图,阐述了根据本公开文本的一个实施例的残差编码技术。如图2所示,存储器14存储映射一组残差模板到符合标准被压缩的残差块的信息(21)。例如,该信息可以包括编码薄18,还可以包括残差模板和相应的被压缩残差块之间的直接一对一映射,或者可以包括映射到相应的被压缩残差块的矢量量化码薄索引,其中矢量量化码薄索引是确定残差模板的码字。被压缩的残差块可以按照视频编码标准被预先计算,这些视频编码标准诸如MPEG-2,MPEG-4,ITU-TH.263和ITU-TH.264,或者进行运动估计,运动补偿和残差编码的另外一个视频编码标准。
对于运动补偿器/内部预测单元17的每一个残差输出,残差编码器19将残差与存储在存储器14中的一组残差模板进行比较,确定残差模板中与残差最佳匹配的一个(22)。例如,模板匹配可以使用SSD或SAD技术,或其他便于将残差模板与要编码的残差进行比较的比较技术。此外,在一些情况下,残差模板可以是经过变换的残差模板,例如,用于在模板匹配之间就已经执行了变换的情况下。在任何情况下,一旦确定了最佳匹配残差模板,残差编码器19访问编码薄18,以选择为所确定的残差模板预先计算的相应的被压缩残差块(23)。在该方式下,即使是残差编码器19执行矢量量化编码,发送器6也能够发送符合标准被压缩的残差块。
此外,使用模板匹配的矢量量化技术可以采用并行处理技术,如果在运行时间上对残差进行标准残差编码处理,则不能使用并行处理技术。例如,残差编码器19可以包括在支持并行处理的处理器上执行的单指令多数据(SIMD)软件指令。在该情况下,能够以并行的方式执行模板匹配。残差编码器19可以使用并行处理技术,将给定残差与该组残差模板进行比较,或者可以使用并行处理技术,将与多个经过编码的视频块相关的多个残差与该组残差模板进行比较。在两种情况中的任意一种中,矢量量化编码允许使用能够加速编码的并行处理技术,并还能够产生这里所述的符合标准被压缩的残差块。
图3是阐述了根据本公开文本用于预先计算编码薄的实例结构框图。如图3所示,脱机(off-line)编码薄生成单元30预先计算编码薄38,该编码薄38被装载在视频编码设备存储器35中。存储器35可以对应设备10的局部存储器14或者视频存储器4,或者可以是在不同视频编码设备中使用的不同类型的存储器。编码薄38包括数据结构,诸如将一组残差模板映射到一组符合标准被压缩的残差块的查询表(LUT)。编码薄38可以存储残差模板,或者可以存储表示残差模板的矢量量化码薄索引。在后面的情况下,残差模板可以存储在不同的位置,以在模板匹配处理中使用。
编码薄生成单元30包括编码薄生成器33,模板生成器31和预先压缩残差生成器32,尽管这些元件可以进行集成。通常,脱机编码薄生成单元30使用一个或者多个视频训练序列生成编码薄38的条目。特别是,编码薄生成器33可以执行传统的编码薄生成算法,或者用于编码薄生成的任何技术。模板生成器31能够生成一组残差模板。在一个例子中,模板生成器31通过对来自训练序列的输入残差执行离散余弦变换(DCT)和前向量化,然后执行反量化和DCT逆变换,来生成残差模板。更普通地,模板生成器31基于所支持的编码标准,对残差执行量化和/或者变换,然后执行反量化和/或者逆变换,来为残差生成残差模板。
预先压缩残差生成器32对经过量化和变换的残差执行残差编码步骤。由预先压缩残差生成器32所执行的实际残差编码步骤由所支持的标准决定。在一个例子中,例如根据MPEG-4,预先压缩残差生成器32执行光栅-Z字形(raster-to-zigzag)记录,然后进行游程长度编码,然后进行霍夫曼编码。预先压缩残差生成器32的输出是对残差的符合标准被压缩的残差块。因此,对于训练序列的给定残差,模板生成器31生成残差模板,预先压缩残差生成器32生成相应的符合所支持的视频编码标准被压缩的残差块。然后将这些输出映射到编码薄38中的另外一个上。
编码薄生成器33还可以设计为防止重复模板的生成,或者从存储在视频存储器35中的最终编码薄38中消除任何重复模板。此外,根据任何已知编码薄生成标准,编码薄生成器33可以定义条目,可以消除条目。在一些情况下,编码薄生成器33可以使用误差标准和/或者编码质量因数,以定义编码薄38的条目。在该方式下,可以很大程度上减小编码薄38的大小,从而减小存储编码薄38所必须的存储器。此外,编码薄38还可以定义为从经过变换的残差模板映射到符合标准的输出,在该情况下,编码处理在模板匹配之前会执行变换。不管编码薄如何生成,可以将编码薄发送到视频编码设备存储器35,在运行时能够访问视频编码设备存储器35以使符合标准被压缩的残差块输出和矢量量化残差编码技术变的容易,如这里所述。
图4是流程图,阐述了一种用于预先计算能够在残差编码中使用的编码薄的实例技术。如图4所示,模板生成器31确定一组残差模板(41)。预先压缩残差生成器32对模板执行符合标准的编码处理,以生成一组符合标准被压缩的残差块(42)。然后,脱机编码薄生成单元30存储该组残差模板和该组符合标准被压缩的残差块之间的映射,例如,在视频编码设备存储器35中存储为编码薄38(43)。在该方式下,编码薄38能够预先计算,从而运行时间的编码能够访问编码薄38以确定与所选择的模板相关联的符合标准被压缩的残差块。
图5是更加详细的框图,阐述了用于预先计算残差模板和相应的符合标准被压缩的残差块的实例结构50。结构50可以对应于模板生成器31和预先压缩残差生成器32,和编码薄生成器33的集成实施例。如图5所示,相减单元52接收从训练集输入的图像。对图像的每个视频块(例如,每个“宏块”),相减单元52从视频块中减去空间或者时间预测。就这方面来说,相减单元52表示运动补偿器的简化描述或者内部预测单元的简化描述。相减单元52的输出包括残差。前向变换单元54对残差执行前向变换,诸如前向DCT变换。然后,前向量化单元56通过使用所选择的量化参数(QP)对经过变换的残差进行量化,量化参数可以基于一个或者多个编码比率标准进行选择。
反量化单元58对单元56的输出执行反量化,反变换单元60执行反变换,例如,DCT逆变换。反变换单元60的输出包括残差模板形式的编码薄条目。在该意义下,残差模板应该与残差非常类似,但是基于前向量化和反量化的步骤中所采用的量化级别,可以有细微的差异。
为了映射由反变换单元60输出的“编码薄条目”中所表示的残差模板,还可以通过Z字形扫描单元62,游程/长度编码单元64和可变长度编码(VLC)单元66发送残差(前向量化单元56的输出)的前向变换和前向量化形式。单元62,64和66通常表示由编码标准定义的连续无损残差编码单元。因此,VLC单元66的输出是符合标准被压缩的残差块,例如它可以按照诸如MPEG-2,MPEG-4,ITU-TH.263,ITU-TH.264或者其他的标准。标记“预先压缩残差”表示符合标准被压缩的残差块。由反变换单元58输出的“编码薄条目”能够被映射到VLC单元66输出的“预先压缩残差”。然后对于训练集的很多图像重复该处理,生成将一组残差模板映射到一组符合标准被压缩的残差块的数据结构(即,编码薄)。此外,可以对数据结构执行很多编码薄生成技术,以删除重复或者类似模板,从而降低存储编码薄所需的内存,并降低矢量量化编码处理所需的模板匹配计算的次数。
图6的实例框图,阐述了根据本公开文本的残差编码器的一个实施例。具体地,图6的结构可以充分对应图1的部分,包括图1的残差编码器19,编码薄18和存储器14中所存储的残差模板数据库(未示出)。图6的方框图阐述了能够在运行时执行,以方便矢量量化模板匹配技术的部分,该矢量量化模板匹配技术输出符合标准被压缩的残差块。
如图6所示,通过相减单元82从预测块中减去要进行编码的输入视频块,生成残差块。差距计算单元84执行模板匹配,确定与残差最佳匹配的残差模板。例如,差距计算单元84可以访问例如存储在存储器中的残差模板数据库86。残差模板数据库86是在编码薄中所引用的所有残差模板的完整的数据库。差距计算单元84可以执行比较,诸如SSD或者SAD技术,来将残差与残差模板进行比较,从而确定最佳匹配。差距计算单元84的输出,“最佳匹配索引”,确定了最佳匹配。在该意义下,“最佳匹配索引”包括矢量量化码薄索引或者码字,与那些在传统的矢量量化编码中所传输的相类似。然而,与这些传统技术不同的是,图6的结构不传输“最佳匹配索引”。取而代之的是,“最佳匹配索引”由编码薄查询(LUT)单元88所应用。
编码薄LUT单元88访问编码薄90,编码薄90存储了从矢量量化码薄索引(即,残差模板的码字)到预先计算的符合标准被压缩的残差块的映射。因此,编码薄LUT单元88确定符合标准被压缩的残差块中映射到“最佳匹配索引”的对应的那一个。在图6中,所选择的符合标准被压缩的残差块标示为“预先压缩的残差块”,并前进到乘法器92。乘法器92将“预先压缩的残差块”与非残差比特流部分,诸如与残差相关的运动矢量和可以由所支持的标准定义的各种头值进行组合。例如,按照所支持的标准,比特流连接单元94还可以用于将预先压缩的视频块与非残差比特流部分进行连接。然后,符合标准的“输出比特流”能够传输到包括同样符合标准的CODEC的不同的设备。
由差距计算单元84所确定的最佳匹配模板还能够被传送到加法器96,加法器96重新加上预测视频块,重构图像,例如在对下一个图像的运动估计中使用。还可以使用后置滤波器98,执行一个或者多个后置滤波技术,诸如对重构图像的块分离滤波(de-block filtering)。重构图像是压缩之后的输入图像的经过解码的形式。输入图像和重构图像可以包括视频帧的子部分,例如称为“宏块”的视频帧。
已经描述了很多实施例。例如,描述了残差编码技术,它使用矢量量化模板匹配但是生成符合标准被压缩的残差块。尽管已经讨论了几个实例标准,该技术可以用于任何包括残差编码处理的视频编码标准。在未变换残差的模板匹配的上下文中已经主要描述了该技术。然而,所描述的技术等同地适用于经过变换的残差,在该情况下,会在这里所描述的模板匹配技术之前的编码处理中执行变换。“残差”通常指经过变换或者未经过变换的残差块。
这里所描述的技术可以用硬件,软件,固件或者它们的任何组合执行。如果用软件执行,则该技术可以直接指包含程序代码的计算机可读介质,该程序代码在对视频序列进行编码的设备中执行,进行这里所述地一个或者多个残差编码技术。在该情况下,计算机可读介质可以包括随机存储器(RAM),诸如同步动态随机存储器(SDRAM),只读存储器(ROM),非易失性随机存储器(NVRAM),电可擦除只读存储器(EEPROM),FLASH存储器等。
程序编码可以以计算机可读指令的形式存储在存储器中。在该情况下,一个或者多个处理器诸如DSP可以执行存储在存储器中的指令,从而执行一个或者多个残差编码技术。在一些情况下,该技术可以用DSP执行,DSP使用各种硬件元件来加速编码处理。在其他情况下,这里所描述的CODEC可以作为一个或者多个微处理器,一个或者多个专用集成电路(ASIC),一个或者多个现场可编程门阵列(FPGA)或者一些其他等效集成或者分立逻辑电路或者硬件-软件的组合来执行。这些和其他实施例包含在以下的权利要求的范围内。
权利要求
1.一种视频编码设备,包括存储器,存储将残差模板与符合标准被压缩的残差块进行映射的信息;和残差编码器,将残差与残差模板进行比较,确定与所述残差最佳匹配的一个残差模板,并选择对应的一个符合标准被压缩的残差块。
2.如权利要求1的视频编码设备,其中,将残差模板与符合标准被压缩的残差块进行映射的所述信息包括映射到符合标准的比特流的一组矢量量化码薄索引,其中所述矢量量化码薄索引包括表示残差的码字。
3.如权利要求1的视频编码设备,还包括执行运动估计的运动估算器,和执行运动补偿的运动补偿器,以生成残差。
4.如权利要求1的视频编码设备,其中,符合标准被压缩的残差块可以符合以下标准之一MPEG-2,MPEG-4,ITU-TH.263和ITU-TH.264。
5.如权利要求1的视频编码设备,其中,所述信息包括编码薄,所述编码薄是通过对残差模板执行符合标准的编码处理而预先计算的。
6.如权利要求1的视频编码设备,其中,所述残差编码器利用并行处理技术将残差和残差模板进行比较。
7.如权利要求1的视频编码设备,其中,所述残差编码器将与多个经过编码的视频块相关的多个残差与所述残差模板进行比较,并选择对应的多个符合标准的比特流。
8.如权利要求7的视频编码设备,其中,所述残差编码器利用并行处理技术将所述多个残差与所述残差模板进行比较。
9.如权利要求1的视频编码设备,其中,所述残差编码器包括支持单指令多数据(SIMD)指令的处理器,其中,所述存储器存储SIMD指令以使所述处理器将所述残差与所述残差模板进行比较,确定与所述残差最佳匹配的一个残差模板,并选择对应的一个符合标准的比特流。
10.一种视频编码方法,包括存储将残差模板与符合标准被压缩的残差块进行映射的信息;将残差和所述残差模板进行比较,确定与所述残差最佳匹配的一个残差模板;和选择对应的一个符合标准被压缩的残差块。
11.如权利要求10的视频编码方法,其中,将残差模板与符合标准被压缩的残差块进行映射的所述信息包括映射到符合标准的比特流的矢量量化码薄索引,其中所述矢量量化码薄索引包括表示残差的码字。
12.如权利要求10的视频编码方法,还包括通过运动估计和运动补偿生成残差。
13.如权利要求10的视频编码方法,其中,所述符合标准被压缩的残差块可以符合以下标准之一MPEG-2,MPEG-4,ITU-TH.263和ITU-TH.264。
14.如权利要求10的视频编码方法,其中,所述信息包括编码薄,所述方法进一步包括通过对所述残差模板执行符合标准的编码处理来预先计算编码薄。
15.如权利要求10的视频编码方法,还包括利用并行处理技术将所述残差与所述残差模板进行比较。
16.如权利要求10的视频编码方法,还包括将与多个经过编码的视频块相关的多个残差与所述残差模板进行比较,并选择对应的多个符合标准的比特流。
17.如权利要求16的视频编码方法,还包括利用并行处理技术将所述多个残差与所述残差模板进行比较。
18一种计算机可读介质,包括在处理器中执行的指令,使处理器访问所存储的将残差模板与符合标准被压缩的残差块进行映射的信息;将残差与所述残差模板进行比较,确定与所述残差最佳匹配的一个残差模板;和选择对应的一个符合标准的比特流。
19.如权利要求18的计算机可读介质,其中,将残差模板与符合标准被压缩的残差块进行映射的所述信息包括映射到所述符合标准的比特流的矢量量化码薄索引,其中所述矢量量化码薄索引包括表示残差的码字。
20.如权利要求18的计算机可读介质,其中,所述符合标准被压缩的残差块可以符合以下标准之一MPEG-2,MPEG-4,ITU-TH.263和ITU-TH.264。
21.如权利要求18的计算机可读介质,其中,所述信息包括编码薄,所述编码薄是通过对所述残差模板执行符合标准的编码处理而预先计算的。
22.如权利要求18的计算机可读介质,其中,所述指令使处理器利用并行处理技术将所述残差与所述残差模板进行比较。
23.如权利要求18的计算机可读介质,其中,所述指令使所述处理器将与多个经过编码的视频块相关的多个残差与所述残差模板进行比较,并选择对应的多个符合标准的比特流。
24.如权利要求23的计算机可读介质,其中,所述指令使所述处理器利用并行处理技术将所述多个残差与所述残差模板进行比较。
25.如权利要求18的计算机可读介质,其中,所述指令包括单指令多数据(SIMD)指令。
26.一种计算机可读介质,包括存储在其中的数据结构,用于控制视频编码设备中的矢量量化编码处理,其中所述数据结构将所述矢量量化编码处理的残差模板与符合标准被压缩的残差块进行映射。
27.如权利要求26的计算机可读介质,其中,所述数据结构包括映射到符合标准被压缩的比特流的矢量量化码薄索引,其中所述矢量量化码薄索引包括表示残差的码字。
28.如权利要求26的计算机可读介质,其中,所述符合标准被压缩的残差块可以符合以下标准之一MPEG-2,MPEG-4,ITU-TH.263和ITU-TH.264。
29.如权利要求26的计算机可读介质,其中,所述信息包括编码薄,所述编码薄是通过对多个残差模板执行符合标准的编码处理而预先计算的。
30.一种方法,包括确认一组残差模板;对该组残差模板执行符合标准的编码处理,以生成一组符合标准被压缩的残差块;和存储将该组残差模板与该组符合标准被压缩的残差块进行映射的信息。
31.如权利要求30的方法,其中所述信息包括映射到该组符合标准的比特流的一组矢量量化码薄索引,其中该组矢量量化码薄索引包括表示该组残差的码字。
32.如权利要求30的方法,其中所述符合标准被压缩的残差块可以符合以下标准之一MPEG-2,MPEG-4,ITU-TH.263和ITU-TH.264。
33.如权利要求30的方法,其中将该组残差模板与该组符合标准被压缩的残差块进行映射的所述信息包括编码薄。
34.如权利要求30的方法,还包括在视频编码设备中执行残差编码处理,该处理是通过以下执行的将残差与该组残差模板的至少一些进行比较,以确定与残差最佳匹配的一个残差模板;和从编码薄中选择对应的一个符合标准的比特流。
全文摘要
本公开文本描述了使用矢量量化编码的残差编码技术,它基于模板匹配。然而,不是传输对于符合标准的CODEC毫无意义的矢量量化码簿索引(或者码字),这里所描述的技术将残差模板与预先计算的符合标准被压缩的残差块进行映射。然后能够将符合标准被压缩的残差块传输到另外一个符合标准的设备。该技术可以利用与矢量量化编码有关的优点,诸如能够执行更多个并行处理,同时仍然保持符合视频编码标准。
文档编号H04N7/32GK1848960SQ200610008958
公开日2006年10月18日 申请日期2006年1月6日 优先权日2005年1月6日
发明者S·莫洛伊 申请人:高通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1