用于视频编码的运动估计技术的制作方法

文档序号:7950005阅读:179来源:国知局
专利名称:用于视频编码的运动估计技术的制作方法
技术领域
本发明涉及数字视频处理,且更明确地说,涉及视频序列编码。
背景技术
可将数字视频能力并入到各种各样的装置中,包含数字电视、数字直接广播系统、无线通信装置、个人数字助理(PDA)、膝上型计算机、桌上型计算机、数码相机、数字记录装置、蜂窝式或卫星无线电电话等。数字视频装置可在创建、修改、传输、存储、记录和播放全运动视频序列中提供优于常规模拟视频系统的显著改进。
当前已建立了许多不同视频编码标准以用于编码数字视频序列。举例来说,运动图像专家组(MPEG)已开发了许多标准,包含MPEG-1、MPEG-2和MPEG-4。其它标准包含国际电信联盟(ITU)H.263标准、Apple Computer of Cupertino California开发的QuickTimeTM技术、Microsoft Corporation of Redmond,Washington开发的用于WindowsTM的视频、Intel Corporation开发的IndeoTM、来自RealNetworks,Inc.of Seattle,Washington的RealVideoTM和SuperMac,Inc开发的CinepakTM。仍在不断出现和进化新的标准,包含ITU H.264标准和许多专有标准。
多种视频编码标准通过以压缩形式编码数据而实现改进的视频序列传输速率。压缩可降低视频帧有效传输所需传输的整体数据量。举例来说,大多数视频编码标准利用经设计以便于经由较窄带宽的视频和图像传输的图形和视频压缩技术,所述带宽比在没有压缩的情况下可实现的带宽窄。
举例来说,MPEG标准和ITU H.263及ITU H.264标准支持利用连续视频帧之间的相似性(被称为时间或帧间相关)来提供帧间压缩的视频编码技术。帧间压缩技术通过将视频帧的基于像素的表示转换为运动表示来利用越过帧的数据冗余性。另外,某些视频编码技术可利用帧内的相似性(被称为空间或帧内相关)来进一步压缩视频帧。
为了支持压缩,数字视频装置包含用于压缩数字视频序列的编码器和用于解压所述数字视频序列的解码器。在许多情况下,所述编码器和解码器形成集成编码器/解码器(CODEC),其对界定视频图像序列的多个帧内的像素块进行操作。举例来说,在MPEG-4标准中,编码器通常将待传输的视频帧划分为被称为“宏区块”的视频块,所述宏区块可包括16×16像素阵列。ITU H.264标准支持16×16视频块、16×8视频块、8×16视频块、8×8视频块、8×4视频块、4×8视频块和4×4视频块。
对于视频帧中的每个视频块,编码器搜索一个或一个以上紧接在前的视频帧(或后续帧)的类似大小的视频块以识别最相似的视频块(被称为“最佳预测”)。将当前视频块与其它帧的视频块进行比较的过程通常被称为运动估计。一旦针对视频块识别出“最佳预测”,编码器就可编码当前视频块与最佳预测之间差异。此编码当前视频块与最佳预测之间差异的过程包含被称为运动补偿的过程。运动补偿包括创建差异块的过程,所述差异块指示待编码的当前视频块与最佳预测之间差异。运动补偿通常指的是使用运动向量取得最佳预测块且接着从输入块减去最佳预测以产生差异块的行为。
在运动补偿已创建了差异块之后,通常执行一系列额外编码步骤来编码所述差异块。这些额外编码步骤可取决于正被使用的编码标准。举例来说,在适应MPEG4的编码器中,额外编码步骤可包含8×8离散余弦变换,接着标量量化,接着光栅到曲折线重排序,接着游程长度编码,接着霍夫曼(Huffman)编码。经编码的差异块可连同运动向量一起传输,所述运动向量指示使用前一帧中的哪个视频块来进编码。解码器接收所述运动向量和经编码的差异块,且解码所接收到的信息以重建视频序列。
非常需要简化并改进所述编码过程。为此目的,已开发了各种各样的编码技术。因为运动估计是视频编码中计算最密集的过程之一,所以对运动估计的改进可在视频编码过程中提供显著改进。

发明内容
本发明描述许多可改进视频编码的运动估计技术。具体地说,本发明提议运动向量预测值(MVP)的各种非常规使用,所述运动向量预测值(MVP)是所需运动向量的早期估计,且通常是基于先前针对相邻视频块而计算得的运动向量来计算的。在某些技术中,本发明提议使用运动向量预测值来计算失真测量值,这量化了所述运动向量相对于其它运动向量的成本。在其它技术中,运动向量预测值可用于界定针对用于编码当前视频块的预测视频块的搜索。还描述了各种其它技术,例如以不同的空间分辨率分阶段使用搜索的技术,这可加速编码过程而不显著降级性能。
在一个实施例中,本发明描述一种方法,其包括基于先前针对接近待编码的当前视频块的视频块而计算得的运动向量来计算运动向量预测值,和使用所述运动向量预测值来搜索用于编码当前视频块的预测视频块。
在另一实施例中,本发明描述一种方法,其包括识别用于编码当前视频块的预测视频块的运动向量,所述识别包含计算失真测量值,所述失真测量值至少部分取决于与不同运动向量相关联的数据量,且所述方法还包括产生指示所述待编码的当前视频块与所述预测视频块之间差异的差异块。
本文描述的这些和其它技术可在数字视频装置中以硬件、软件、固件或其任何组合来实施。如果以软件实施,那么所述技术可针对包括在被执行时执行本文所述编码技术中的一者或一者以上的程序代码的计算机可读媒体。在附图和以下描述中陈述各种实施例的额外细节。从描述和附图以及权利要求书中可容易了解到其它特征、目的和优势。


图1是说明实例性系统的方框图,其中源数字视频装置向接收数字视频装置传输经编码的视频数据序列。
图2是根据本发明实施例的数字视频装置的示范性方框图。
图3和4是可用于图2所说明的数字视频装置的示范性运动估计器的方框图。
图5是说明符合本发明的技术的图,其中根据本发明的实施例,以不同的空间分辨率分阶段执行搜索。
具体实施例方式
本发明描述可用于改进视频编码的运动估计技术。虽然一般在整个运动估计过程的情况下描述所述技术,但了解到可在各种情形下单独使用所述技术中的一者或一者以上。在各个方面中,本发明提议运动向量预测值(MVP)的许多非常规使用,所述运动向量预测值是所需运动向量的早期估计。通常基于先前针对相邻视频块而计算得的运动向量来计算所述MVP,例如所述MVP被计算为已被记录的邻近视频块的运动向量的中值。然而,可替代性地使用其它数学函数来计算MVP,例如相邻视频块的运动向量的平均值或可能更为复杂的数学函数。
在一个实施例中,本发明提议使用MVP来计算失真测量值。所述失真测量值量化所述运动向量相对于其它运动向量的成本。因此,尽管常规技术仅基于当前视频块与预测视频块之间差异来识别预测视频块(例如,针对待编码的当前视频块的最佳预测),但本发明认识到运动向量本身可能具有可变位长度。因此,根据本发明,所描述的运动估计技术除了当前视频块与预测视频块之间差异以外还可经由失真测量值来解决运动向量本身的成本。可针对失真测量来定义一种数学函数,其中MVP包括针对失真测量定义的数学函数的变量。
本发明还提议使用MVP来界定对预测视频块的搜索。举例来说,即使初步搜索没有将对应于MVP的位置识别作为最佳预测视频块的可能候选者,也仍然可在对应于MVP的位置中执行稍后搜索,因为此类位置经常产生最佳预测。明确地说,可以不同的空间分辨率分阶段执行搜索,且在此情况下,可以最佳空间分辨率来执行在MVP处或MVP周围的搜索,而不管先前搜索是否已识别此类与MVP相关联的位置。如下文更详细描述,这些和其它技术可在视频编码中实现显著改进,尤其是在处理功率有限且功率消耗至关重要的小型手持式装置中。
图1是说明实例性系统10的方框图,其中源装置12经由通信链路15向接收装置14传输经编码的视频数据序列。源装置12和接收装置14两者均为数字视频装置。明确地说,源装置12编码符合以下视频标准的视频数据,例如MPEG-4标准、ITU H.263标准、ITU H.264标准或在视频编码中利用运动估计的各种各样其它标准中的任一者。系统10的装置12、14中的一者或两者实施运动估计技术(如下文更详细描述),以便改进视频编码处理。
通信链路15可包括无线链路、物理传输线、光纤、基于包的网络(例如局域网、广域网或全球网(例如因特网))、公用交换电话网(PSTN)或任何其它能传送数据的通信链路。因此,通信链路15代表任何合适的通信媒体或可能代表不同网络和链路的集合,以从源装置12向接收装置14传输视频数据。
源装置12可为任何能够编码和传输视频数据的数字视频装置。源装置12可包含用以存储数字视频序列的视频存储器16、用以编码所述序列的视频编码器18和用以经由通信链路15将经编码的序列传输到源装置14的发射器20。视频编码器18可包含(例如)各种硬件、软件或固件、或一个或一个以上数字信号处理器(DSP),所述DSP执行可编程的软件模块来控制视频编码技术,如本文描述。可提供相关联的存储器和逻辑电路来支持DSP控制视频编码技术。如将描述,视频编码器18可经配置以计算运动向量预测值(MVP)且以非常规方式使用所述MVP。
常规上,多种编码标准规定了运动向量传输来降低发送视频序列所需的带宽。然而,根据某些标准,并非发送运动向量,而是传输运动向量与运动向量预测值(MVP)之间差异来获得甚至更好的压缩。因此,常规上,计算MVP,以使得可传输运动向量与MVP之间差异来相对于运动向量传输降低带宽。此外,这可改进压缩,因为运动向量与MVP之间差异通常可用比运动向量本身更少数目的位来进行编码。
本发明认识到MVP的各种额外使用。作为一个实例,MVP可用于计算失真测量,所述失真测量量化运动向量本身的成本。下文提供一种量化运动向量本身的成本的失真测量的特定数学函数,其中使用MVP作为所述数学函数的变量。
作为另一实例,MVP可用于界定多个搜索,所述搜索可改进识别预测视频块(例如,正被编码的给定视频块的最佳预测)的过程。具体地说,可在MVP位置处或周围界定多个搜索,这在以不同空间分辨率执行搜索时特别有用。举例来说,即使先前搜索没有将MVP的位置识别作为用于运动估计的良好候选视频块的可能位置,也可在搜索阶段中执行MVP位置处或周围的搜索。
源装置12还可包含视频俘获装置23(例如摄影机)来俘获视频序列且将所俘获的序列存储在存储器16中。明确地说,视频俘获装置23可包含电荷耦合装置(CCD)、电荷注射装置、光电二极管阵列、互补金属氧化物半导体(CMOS)装置或任何其它能够俘获视频图像或数字视频序列的光敏装置。
作为其它实例,视频俘获装置23可为视频转换器,其(例如)从电视、盒式磁带录像机、可携式摄像机或另一视频装置将模拟视频数据转换为数字视频数据。在某些实施例中,源装置12可经配置以经由通信链路15传输实时视频序列。在此情况下,接收装置14可接收所述实时视频序列,且向用户显示所述视频序列。或者,源装置12可俘获并编码视频序列,所述视频序列作为视频数据文件(即,并非实时)发送到接收装置14。因此,源装置12和接收装置14可支持(例如)移动无线网络中例如视频削波重放、视频邮件或视频会议的应用。装置12和14可包含未在图1中详细说明的多种其它元件。
接收装置14可采用能够接收和解码视频数据的任何数字视频装置的形式。举例来说,接收装置14可包含接收器22,以(例如)经由中间链路、路由器、其它网络设备等从发射器20接收经编码的数字视频序列。接收装置14还可包含用于解码所述序列的视频解码器24和用以向用户显示所述序列的显示装置26。然而,在某些实施例中,接收装置14可以不包含集成显示装置14。在此类情况下,接收装置14可充当接收器,所述接收器解码所接收到的视频数据以驱动离散显示装置(例如电视或监视器)。
源装置12和接收装置14的实例性装置包含位于计算机网络上的服务器、工作站或其它桌上型计算装置,和例如膝上型计算机或个人数字助理(PDA)的移动计算装置。其它实例包含数字电视广播卫星和接收装置,例如数字电视、数码相机、数码摄影机或其它数字记录装置、数字视频电话(例如具有视频能力的移动电话)、具有视频能力的直接双向通信装置、其它无线视频装置等。
在某些情况下,源装置12和接收装置14每一者包含编码器/解码器(CODEC)(未图示),以用于编码和解码数字视频数据。明确地说,源装置12和接收装置14两者均可包含发射器和接收器以及存储器和显示器。下文所概述的编码技术中的多种技术是在包含编码器的数字视频装置的情况下描述的。然而,了解到编码器可形成CODEC的一部分。在此情况下,CODEC可在硬件、软件、固件、DSP、微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、离散硬件组件或其各种组合内实施。
源装置12内的视频编码器18对视频帧序列内的像素块进行操作,以便编码视频数据。举例来说,视频编码器18可实行运动估计和运动补偿技术,其中待传输的视频帧被划分为多个像素块(被称为视频块)。出于说明目的,所述视频块可包括任何大小的块,且可在给定视频序列内变化。举例而言,ITU H.264标准支持16×16视频块、16×8视频块、8×16视频块、8×8视频块、8×4视频块、4×8视频块和4×4视频块。在视频编码中使用较小视频块可在编码中产生较佳分辨率,且可特别用于包含较高细节水平的视频帧位置。此外,视频编码器18可经设计以对4×4视频块进行操作,且由4×4视频块重建较大视频块(若需要)。
视频块中的每个像素可由n位值(例如,8位)表示,所述n位值界定像素的视觉特征,例如以色度和亮度值表示的颜色和强度。然而,运动估计通常仅对亮度分量执行,因为人类视觉对于亮度变化比色度变化更为敏感。因此,出于运动估计的目的,整个n位值可量化给定像素的亮度。然而,本发明的原理不限于像素的格式,且可经延伸以与较简单的较少位像素格式或较复杂的较大位像素格式一起使用。
对于视频帧中的每个视频块来说,源装置12的视频编码器18通过针对一个或一个以上已经传输的在前视频帧(或后续视频帧)搜索存储在存储器16中的视频块以识别相似视频块(被称为预测视频块)来执行运动估计。在某些情况下,预测视频块可包括来自在前或后续视频帧的“最佳预测”,但本发明不限于所述方面。视频编码器18执行运动补偿,以创建指示待编码的当前视频块与最佳预测之间差异的差异块。运动补偿通常指的是使用运动向量获取最佳预测块且接着从输入块减去最佳预测以产生差异块的行为。
在运动补偿过程已创建了差异块之后,通常执行一系列额外编码步骤来编码所述差异块。这些额外编码步骤可取决于正被使用的编码标准。举例来说,在适应MPEG-4的编码器中,额外编码步骤可包含8×8离散余弦变换,接着标量量化,接着光栅到曲折线重排序,接着游程长度编码,接着霍夫曼(Huffman)编码。
一旦编码,经编码的差异块就可与运动向量一起传输,所述运动向量识别来自用于编码的前一帧(或后续帧)的视频块。以此方式,代替将每个帧编码为独立图像,视频编码器18编码邻近帧之间差异。此类技术可显著减少准确表示视频序列的每个帧所需的数据量。
运动向量可相对于正被编码的视频块的左上角来界定像素位置,但可使用运动向量的其它格式。在任何情况下,通过使用运动向量编码视频块,可显著降低传输视频数据流所需的带宽。
在某些情况下,除帧内编码之外,视频编码器18还可支持帧间编码。帧内编码利用帧内的相似性(被称为空间或帧内相关),以进一步压缩视频帧。帧内压缩通常基于用于压缩静止图像的纹理编码,例如离散余弦变换(DCT)编码。帧内压缩通常结合帧间压缩来使用,但也可在某些实施方案中用作替代方案。
接收装置14的接收器22可接收具有运动向量形式的经编码的视频数据和经编码的差异块,所述差异块指示正被编码的视频块与运动估计中使用的最佳预测之间的经编码的差异。然而,在某些情况下,并非发送运动向量,而是传输运动向量与MVP之间差异。在任何情况下,解码器24可执行视频解码,以便产生视频序列以供经由显示装置26向用户显示。接收装置14的解码器24还可实施为编码器/解码器(CODEC)。在此情况下,源装置12和接收装置14两者可能够编码、传输、接收和解码数字视频序列。
根据本发明,视频编码器18为待编码的当前视频块计算MVP,但以一种或一种以上非常规方式使用所述MVP。举例来说,MVP可用于经由计算量化成本的失真测量值来帮助解决运动向量本身的成本。此外,MVP可用于界定或调节针对最佳预测视频块的搜索。
图2是装置30的示范性方框图,所述装置30可对应于源装置12。一般来说,装置30包括能够执行运动估计和运动补偿技术以进行帧间视频编码的数字视频装置。
如图2所示,装置30包含用以编码视频序列的视频编码器32和用以在编码之前和之后存储视频序列的视频存储器34。装置30还可包含用以将所编码的序列传输到另一装置的发射器36,且可能包含视频俘获装置38(例如摄影机),以俘获视频序列且将所俘获的序列存储在存储器34中。装置30的各种元件可经由通信总线35而以通信方式耦合。各种其它元件(例如帧内编码器元件、各种滤波器或其它元件)也可包含在装置30中,但出于简化目的不对其进行详细描述。
视频存储器34通常包括相对较大的存储空间。举例来说,视频存储器34可包括动态随机存取存储器(DRAM)或FLASH存储器。在其它实例中,视频存储器34可包括非易失性存储器或任何其它数据存储装置。
视频编码器32可形成能够执行视频编码的设备的一部分。作为一个特定实例,视频编码器32可包括用于无线电电话的芯片组,包含硬件、软件、固件和/或处理器或数字信号处理器(DSP)的某种组合。视频编码器32包含局部存储器37,所述局部存储器37可包括相对于视频存储器34来说较小且较快的存储空间。举例来说,局部存储器37可包括同步随机存取存储器(SRAM)。局部存储器37可包括“芯片上”存储器,其与视频编码器32的其它组件集成,以在处理器密集型编码过程中提供非常快的数据存取。在编码给定视频帧期间,待编码的当前视频块可从视频存储器34加载到局部存储器37。用于定位最佳预测的搜索空间也可从视频存储器34加载到局部存储器37。
所述搜索空间可包括在前视频帧(或后续帧)中的一者或一者以上的像素子组。所选择的子组可被预先识别为用于识别最佳预测的可能位置,所述最佳预测与待编码的当前视频块紧密匹配。此外,如果使用不同搜索阶段,那么搜索空间可在运动估计过程中变化。在此情况下,搜索空间可在搜索空间大小方面逐渐变小,其中以大于先前搜索的分辨率执行这些稍后搜索。
局部存储器37加载有待编码的当前视频块和搜索空间,所述搜索空间包括用于帧间编码的一个或一个以上不同视频帧中的某些或所有视频帧。运动估计器40将当前视频块与搜索空间中的各种视频块进行比较,以便识别最佳预测。然而,在某些情况下,可更快速地识别针对所述编码的充分匹配,而不特别核查每个可能候选者,且在此情况下,充分匹配实际上可能不是“最佳”预测,尽管足以用于有效视频编码。一般来说,短语“预测视频块”指的是充分匹配,其可为最佳预测。
运动估计器40执行待编码的当前视频块与存储器37的搜索空间中的候选视频块之间的比较。在某些情况下,候选视频块可包含针对分数内插产生的非整数像素值。举例来说,运动估计器40可执行绝对差和(SAD)技术、平方差和(SSD)技术或其它比较技术(如需要)。SAD技术涉及在待编码的当前视频块的像素值与候选视频块(其正与当前视频块进行比较)的像素值之间执行绝对差计算的任务。对这些绝对差计算的结果进行求和(即,累积),以便界定指示当前视频块与候选视频块之间差异的差值。对于8×8像素图像块,可计算并求和64个差,且对于16×16像素宏区块,可计算并求和256个差。所有计算的整个求和可界定候选视频块的差值。
较低差值一般指示候选视频块为较好匹配,且因此是比其它产生较高差值(即,增加的失真)的候选视频块更好的用于运动估计编码的候选者。在某些情况下,可在累积差值超过所界定的阈值时或较早识别出充分匹配时终止计算,即使尚未考虑其它候选视频块。
SSD技术还涉及在待编码的当前视频块的像素值与候选视频块的像素值之间执行差值计算的任务。然而,在SSD技术中,对差值计算结果求平方,且接着对所述平方值进行求和(即,累积),以便界定指示当前视频块与候选视频块(其正与当前宏区块进行比较)之间差异的差值。或者,运动估计器40可使用其它比较技术,例如均方误差(MSE)、标准化互相关函数(NCCF)或另一适合的比较算法。
最终,运动估计器可识别“最佳预测”,所述最佳预测是与待编码的视频块最紧密匹配的候选视频块。然而,了解到在多种情况下,可在最佳预测之前定位充分匹配,且在那些情况下,可使用充分匹配来进行编码。此外,预测视频块指的是充分匹配,其可为最佳预测。
除识别预测视频块之外,运动估计器40产生运动向量预测值(MVP)。某些视频编码标准利用MVP来进一步压缩运动向量传输。在那些情况下,代替传输运动向量,所述标准可要求传输运动向量与MVP之间差异来进一步改进压缩。然而,根据本发明,识别使用MVP的额外技术,这可甚至进一步改进视频编码。
明确地说,本发明提议MVP的许多非常规使用。MVP通常是基于先前针对相邻视频块计算得的运动向量来计算的,例如计算为已被记录的邻近视频块的运动向量的中值、邻近视频块的运动向量的平均值或基于紧密接近待编码的当前视频块的视频块的运动向量的另一数学计算。
在一个实例中,使用MVP来计算失真测量值。明确地说,MVP可为量化失真测量值的数学函数的变量。失真测量值量化运动向量相对于其它运动向量的成本。因此,尽管常规技术仅基于当前视频块与预测视频块之间差异来识别预测视频块(例如,针对待编码的当前视频块的最佳预测),但本发明认识到运动向量本身可具有可变位长度。因此,根据本发明,所描述的运动估计技术除了当前视频块与预测视频块之间差异外还可经由失真测量值来解决运动向量本身的成本。失真测量至少部分取决于与运动向量相关联的数据量,且因此失真测量可用于依据与它们相关联的数据量来区分运动向量。
本发明还提议使用MVP来界定预测视频块的搜索。举例来说,即使初级搜索没有将对应于MVP的位置识别为最佳预测视频块的可能候选者,也可仍然在对应于MVP(或MVP附近)的位置中执行稍后搜索,因为此类位置通常产生最佳预测。明确地说,可以不同的空间分辨率分阶段执行搜索,且在所述情况下,可以最佳空间分辨率来执行MVP周围的搜索,而不管先前搜索是否已识别了此类与MVP相关联的位置。
一旦运动估计器40针对视频块识别出最佳预测,运动补偿器42就创建指示当前视频块与最佳预测之间差异的差异块。视频块编码器44可进一步编码所述差异块以压缩所述差异块,且经编码的差异块可经转发以连同运动向量(或运动向量与MVP之间差异)传输到另一装置,所述运动向量用以识别己使用搜索空间中的哪个候选视频块来进行编码。出于简化起见,用于在运动补偿之后执行编码的额外组件被概括为差异块编码器44,因为所述特定组件将依据所支持的特定标准而变化。换句话说,差异块编码器44可对差异块执行一种或一种以上常规编码技术,所述差异块的产生如本文描述。
运动估计有时被称为视频编码的最关键部分。举例来说,与视频编码的任何其它过程相比,运动估计通常需要较大量的计算资源。由于此原因,非常需要以可降低计算复杂性且还帮助改进压缩比的方式来执行运动估计。本文描述的运动估计技术可通过使用以多个空间分辨率执行搜索的搜索方案来实现这些目标,从而在不损失任何准确性的情况下降低计算复杂性。另外,提议一种成本函数(失真测量),其包含编码运动向量的成本。运动估计器40还可使用搜索空间的多个候选位置来改进视频编码的准确性,且所述多个候选者周围的搜索区域可以是可编程的,从而使得所述过程可根据帧速率和图片大小来进行缩放。最后,运动估计器40还可组合多个较小正方形块(例如4×4块)的成本函数,以获得各种较大块形状(例如4×8块、8×4块、8×8块、8×16块、16×8块、16×16块等)的成本。
对于多种操作和计算来说,运动向量预测值(MVP)用于为偏离运动向量预测值的运动向量添加成本因数。MVP还可提供额外的初始运动向量,其可用于界定搜索(特别是在多阶段搜索的高分辨率阶段)。
图3是示范性运动估计器40A的方框图,所述运动估计器40A可对应于图2的运动估计器40。一般来说,运动估计器40可被实施为硬件、软件、固件、一个或一个以上处理器或数字信号处理器(DSP)或其任何组合。在图3的实例中,运动估计器40A包括在DSP上实行的软件模块51、52、53。如图所示,运动估计器40A包含MVP计算模块51,其计算MVP。举例来说,MVP计算模块51可将MVP计算为先前针对接近待编码的当前视频块的视频块而计算得的两个或两个以上运动向量的中值。作为更详细的实例,MVP计算模块51可将MVP计算为如果没有运动向量可供接近当前视频块的视频块使用,那么计算为零值;当仅有一个先前计算得的视频块可使用时,计算为接近当前视频块的一个先前计算得的视频块的运动向量的值;当仅有两个先前计算得的视频块可使用时,计算为基于接近当前视频块的两个先前计算得的视频块的中值的值;或当三个先前计算得的视频块可使用时,计算为基于接近当前视频块的三个先前计算得的视频块的中值的值。
运动估计器40A还包含搜索模块52。搜索模块52一般执行搜索以将待编码的当前视频块与搜索空间中的各个候选视频块(例如,存储在局部存储器37(图2)中)进行比较。在某些情况下,可以渐增的分辨率水平来执行多个搜索。
运动估计器40A还包含失真测量计算模块53以产生失真测量,如本文概述。举例来说,失真测量计算模块53可使用MVP来产生量化与不同运动向量相关联的成本的失真测量值。失真测量计算模块53还可经编程以向失真测量值分配加权因数,所述加权因数界定编码不同运动向量所需的位数目的相对重要性。这可允许基于待编码的序列的帧速率或帧大小来进行缩放。失真测量值量化编码不同运动向量所需的位数目,以便促进此类可缩放性。
图4是示范性运动估计器40B的另一方框图,所述运动估计器40B可对应于图2的运动估计器40。图4的运动估计器40可与图3的运动估计器40A非常相似。举例来说,运动估计器40B可包含用以计算MVP(如本文描述)的MVP计算模块61和用以产生失真测量(如本文概述)的失真测量计算模块63。然而,图4的运动估计器40B以不同空间分辨率分阶段执行搜索,以识别用于编码当前视频块的预测视频块的运动向量。在此实例中,运动估计器40B包含搜索阶段1(65)、搜索阶段2(66)和搜索阶段3(67),其分别在具有不同空间分辨率的三个阶段中执行搜索。搜索阶段1(65)可以低分辨率在相对较大的搜索空间上实行搜索,例如,每隔四个像素进行搜索。搜索阶段2(66)可使用第一搜索的结果来在第一搜索空间中产生良好结果的区域周围界定较小搜索空间,且以中间分辨率来执行额外搜索,例如,每隔一个像素进行搜索。搜索阶段3(67)可使用第二搜索的结果来在第二搜索空间中产生良好结果的区域周围界定甚至更小的搜索空间,且以高分辨率来执行额外搜索,例如,以每个像素或可能以分数像素分辨率进行搜索。此外,在某些情况下,MVP可用于界定搜索阶段3(67)中的搜索,而不管阶段2或1是否已将MVP周围的区域识别为可能候选者以进行良好编码。
再次更一般地参看图2,运动估计器40可提供两个上部邻近宏区块的运动向量,且还可指示运动向量的数目(即,0、1或2)。一般地说,运动估计器40可存取直接左邻近宏区块以及当前块上方宏区块的运动向量的值,因为这些运动向量可能先前已计算得到。相反地,直接右邻近宏区块的运动向量和当前块下方的宏区块的运动向量通常是不能使用的。然而,如果在不同方向上执行计算,那么可使用的运动向量可以是不同的。
在整数运动估计的情况下,运动估计器40对于左宏区块的运动向量具有整数值,且其使用具有16×16块形状的运动向量。在分数运动估计的情况下,运动估计器40对于右16×8块或上8×16块或右上8×8块的运动向量或者16×16块的运动向量使用分数值(这取决于正在搜索针对分数运动估计的哪种块形状)。
以下程序可用于计算MVP(运动向量预测值)。在此实例中,从三个相邻宏区块的运动向量计算MVP。
如果没有相邻运动向量是可用的,那么MVP=0如果一个相邻运动向量是可用的,那么MVP=一个可用MV如果两个相邻运动向量是可用的,那么MVP=中值(2 MV,0)如果所有所述三个相邻运动向量均是可用的,那么MVP=中值(3 MV)图5是说明运动估计的三阶段方法的图。区域71A和71B对应于理论最大搜索区域。区域73A、73B、73C和73D可包括实际所需的搜索区域,且区域75A、75B、75C和75D可包括搜索点栅格。阶段1、2和3在图5中被标记为MVP计算79,所述MVP计算79可对应于上述MVP计算模块中的一者。以下参看图5的描述内容描述了实施方案特定的实施例,且不希望限制本发明的范围。
举例来说,在图5的阶段1中,可在1/4领域(每个方向以4进行欠取样)中执行最大块形状16×16的最佳运动向量的完全或彻底搜索。这暗示着实际欠取样块大小为4×4。由于所述搜索是彻底的,因而此阶段不需要任何开始点或起始候选者。
搜索范围确定搜索区域,即所选择的参考帧中的光度(1uma)样本区域。可能需要在任何方向上在全部样本中使用±32的搜索范围。这使得对于最大块大小16×16来说搜索区域为尺寸64+16=80个样本的正方形。欠取样领域中的搜索范围因此为17×17(在每个方向上±8)。
在第一阶段(阶段1)中,搜索区域可对应于尺寸20个样本的正方形,这归于欠取样的缘故。界定搜索区域的样本可通过对所存储的尺寸80的正方形进行子取样(即通过读出每第四行线的每第四个样本)来获得。
以下等式可用于计算阶段1的失真测量D。针对每个运动向量候选者MV来计算此失真测量,且针对在阶段1中的所有候选者将所述失真测量进行最小化。
DMV=Σj=03Σi=03sij-pi-MVx,j-MVy+2λ(|4MVx-MVPx|+|4MVy-MVPy|)]]>其中,sij、pij分别为当前输入块和从1/4欠取样领域中的搜索区域获得的预测块的样本。MV={MVx,MVy},且界定1/4欠取样领域中的当前运动向量候选者。λ是运动向量成本因数,其可经调谐或编程以获得所需速率-失真性能。因此,通过编程λ,可在考虑到性能目标的情况下以特定速率或帧大小来界定运动估计器。MVP={MVPx,MVPy}是运动向量预测值。
在进入阶段2之前,在最小化以上度量之后获得最佳运动向量MV*={MVx*,MVy*},且如下对其进行转换MVI={2MVx*-UI,2MVy*-UI}]]>其中,MVI是对阶段2的输入,UI是等于0或1的偏移量(从运动估计器传递)。
在阶段2中,在1/2(每个方向以2欠取样)领域中再次对最大块形状16×16执行范围8×8(在每个方向上-3到+4)的搜索。这暗示着实际欠取样块大小为8×8。此外,在阶段一的最佳运动向量周围(即,在MVI上)执行阶段2的搜索。(例如)如果在阶段1中识别出两个或两个以上充分运动向量,那么还可在阶段2中执行多个搜索。在阶段2中,搜索区域可为尺寸15的正方形(8×8块的8×8搜索范围)。界定搜索区域的样本可通过对所存储的尺寸80的正方形进行子取样(即通过读出每第二条线的每第二个样本)来获得。
接着可使用以下等式来计算阶段2的失真测量D。再次针对每个运动向量候选者MV来计算失真测量,且针对阶段2将所述失真测量在所有候选者上最小化。
DMV=Σj=07Σi=07sij-pi-MVx,j-MVy+2λ+1(|2MVx-MVPx|+|2MVy-MVPy|)]]>其中,sij、pij分别为当前输入块和从1/2欠取样领域中的搜索区域获得的预测块的样本,MV={MVx,MVy}是1/2欠取样领域中的当前运动向量候选者。
在阶段3中,对在最小化以上度量之后获得的来自阶段二的最佳运动向量MV**={MVx**,MVy**}进行如下转换MVII={2MVx**-UII,2MVy**-UII}]]>其中,MVII是下一阶段的输入,UII是等于0或1的偏移量。然而,再次,(例如)如果在阶段2中识别出两个或两个以上充分运动向量,那么还可在阶段3中执行多个搜索。
在阶段3中,可在两个起始运动向量周围执行搜索,其中一个起始运动向量是阶段二的最佳运动向量(即,在MVII上)(其搜索和计算如上描述),且另一个起始运动向量是MVP-{UIII,UIII}(其中,UIII是从运动估计器传递的等于0或1的偏移量)。换句话说,MVP用于在阶段3中界定搜索,而不管是否在阶段1或2期间已识别出搜索空间的区域。具体地说,可在阶段3中在MVP处或MVP周围界定搜索,而不管是否在阶段1或2期间已识别出搜索空间的区域。
在阶段3中,可在正常取样的整数分辨率领域中执行搜索。因此,最大块大小为16×16,这对应于块形状16×16。在阶段3期间,运动估计器40(图2)还可计算并追踪不同形状的块(例如,16×8块、8×16块、8×8块等)的失真度量和最佳运动向量。在一个实例中,运动估计器40在阶段3期间追踪9个运动向量和9个失真度量。
搜索范围可为在起始运动向量的任一者周围的4×4(-2到+1)或8×8(-3到+4),这是可编程的。整个搜索区域(即,尺寸80的正方形)可在局部存储器中为可用的,如果不存在任何子取样,那么可直接对这些局部存储的样本进行搜索。
可接着使用以下等式来计算针对每个块形状的所有块的失真测量D,且这些是针对每个运动向量候选者MV计算且针对所有候选者进行最小化的量。
SAD8x8,0=Σj=07Σi=07sij-pi-MVx,j-MVy]]>SAD8x8,1=Σj=07Σi=815sij-pi-MVx,j-MVy]]>SAD8x8,2=Σj=815Σi=07sij-pi-MVx,j-MVy]]>SAD8x8,3=Σj=815Σi=815sij-pi-MVx,j-MVy]]>DMV8x8,0=SAD8x8,0+2λ+2λ+2(|MVx-MVPx|+|MVy-MVPy|)DMV8x8,1=SAD8x8,1+2λ+2(|MVx-MVPx|+|MVy-MVPy|)DMV8x8,2=SAD8x8,2+2λ+2(|MVx-MVPx|+|MVy-MVPy|)DMV8x8,3=SAD8x8,3+2λ+2(|MVx-MVPx|+|MVy-MVPy|)DMV8x16,0=SAD8x8,0+SAD8x8,1+2λ+2(|MVx-MVPx|+|MVy-MVPy|)DMV8x16,1=SAD8x8,2+SAD8x8,3+2λ+2(|MVx-MVPx|+|MVy-MVPy|)DMV16x8,0=SAD8x8,0+SAD8x8,2+2λ+2(|MVx-MVPx|+|MVy-MVPy|)
DMV16x8,1=SAD8x8,1+SAD8x8,3+2λ+2(|MVx-MVPx|+|MVy-MVPy|)DMV16x16=SAD8x8,0+SAD8x8,1+SAD8x8,2+SAD8x8,3+2λ+2(|MVx-MVPx|+|MVy-MVPy|)其中,sij、pij分别为当前输入块和从搜索区域获得的预测块的样本,MV={MVx,MVy}是1/2欠取样领域中的当前运动向量候选者。
已描述了许多不同实施例。所述技术可能够通过改进运动估计来改进视频编码。所述技术可以硬件、软件、固件或其任何组合来实施。如果以软件实施,那么所述技术可针对包括程序代码的计算机可读媒体,所述程序代码在编码视频序列的装置中执行时,执行上文提及的方法中的一种或一种以上方法。在此情况下,计算机可读媒体可包括随机存取存储器(RAM)(例如同步动态随机存取存储器(SDRAM))、只读存储器(ROM)、非易失性随机存取存储器(NVRAM)、电可擦除可编程只读存储器(EEPROM)、FLASH存储器等。
程序代码可以计算机可读指令的形式存储在存储器上。在此情况下,处理器(例如DSP)可执行存储在存储器中的指令,以便进行本文描述的技术中的一者或一者以上。在某些情况下,所述技术可由DSP执行,所述DSP调用各种硬件组件(例如运动估计器)来加速编码过程。在其它情况下,视频编码器可建构为微处理器、一个或一个以上专用集成电路(ASIC)、一个或一个以上现场可编程门阵列(FPGA)或某种其它硬件-软件组合。这些和其它实施例属于所附权利要求书的范围内。
权利要求
1.一种视频编码装置,其包括运动估计器,其基于先前针对接近于待编码的当前视频块的视频块而计算的运动向量来计算运动向量预测值,且使用所述运动向量预测值来搜索用于编码所述当前视频块的预测视频块;和运动补偿器,其产生指示所述待编码的当前视频块与所述预测视频块之间差异的差异块。
2.根据权利要求1所述的视频编码装置,其中所述运动估计器使用所述运动向量预测值来产生失真测量值,所述失真测量值量化与不同运动向量相关联的成本。
3.根据权利要求2所述的视频编码装置,其中所述运动估计器可经编程以向所述失真测量值分配加权因数,所述加权因数界定编码不同运动向量所需的位数目的相对重要性。
4.根据权利要求1所述的视频编码装置,其中所述运动估计器将所述运动向量预测值计算为先前针对接近于所述当前视频块的所述视频块而计算的两个或两个以上运动向量的中值。
5.根据权利要求1所述的视频编码装置,其中所述运动估计器将所述运动向量预测值计算为如果没有运动向量可供接近于所述当前视频块的所述视频块使用,那么为零值;当仅有一个先前计算得的视频块可供使用时,为接近于所述当前视频块的一个先前计算的视频块的运动向量的值;当仅有两个先前计算得的视频块可供使用时,为基于接近于所述当前视频块的两个先前计算的视频块的中值的值;和当三个先前计算得的视频块可使用时,为基于接近于所述当前视频块的三个先前计算的视频块的中值的值。
6.根据权利要求1所述的视频编码装置,其中所述运动估计器以不同的空间分辨率分阶段执行搜索,以向用于编码所述当前视频块的所述预测视频块识别所述运动向量。
7.根据权利要求6所述的视频编码装置,其中所述运动估计器在至少三个具有不同空间分辨率的阶段中执行搜索。
8.根据权利要求6所述的视频编码装置,其中所述运动向量预测值在所述阶段中的至少一者中界定搜索。
9.根据权利要求1所述的视频编码装置,其中所述预测视频块包括最佳预测。
10.一种视频编码装置,其包括运动估计器,其向用于编码当前视频块的预测视频块识别运动向量,所述识别包含计算失真测量值,所述失真测量值至少部分取决于与不同运动向量相关联的数据量;和运动补偿器,其产生指示所述待编码的当前视频块与所述预测视频块之间差异的差异块。
11.根据权利要求10所述的视频编码装置,其中所述运动估计器可经编程以向所述失真测量值分配加权因数,所述加权因数界定与所述不同运动向量相关联的数据量在向用于编码所述当前视频块的所述预测视频块识别所述运动向量中的重要性。
12.根据权利要求10所述的视频编码装置,其中所述运动估计器以不同的空间分辨率分阶段执行搜索,以向用于编码所述当前视频块的所述预测视频块识别所述运动向量。
13.根据权利要求10所述的视频编码装置,其中所述视频编码装置基于先前针对接近于待编码的当前视频块的视频块而计算的运动向量来计算运动向量预测值,其中所述运动向量预测值在所述阶段中的至少一者中界定搜索,且还用于计算所述失真测量值。
14.一种方法,其包括基于先前针对接近于待编码的当前视频块的视频块而计算的运动向量来计算运动向量预测值;和使用所述运动向量预测值来搜索用于编码所述当前视频块的预测视频块。
15.根据权利要求14所述的方法,其进一步包括产生指示所述待编码的当前视频块与所述预测视频块之间差异的差异块。
16.根据权利要求14所述的方法,其进一步包括向用于编码所述当前视频块的所述预测视频块识别运动向量,所述识别包含计算失真测量值,所述失真测量值至少部分取决于所述运动向量预测值。
17.根据权利要求16所述的方法,其中所述失真测量值量化编码不同运动向量所需的位数目。
18.根据权利要求14所述的方法,其进一步包括将所述运动向量预测值计算为先前针对接近于所述当前视频块的所述视频块而计算的两个或两个以上运动向量的中值。
19.根据权利要求14所述的方法,其进一步包括将所述运动向量预测值计算为如果没有运动向量可供接近于所述当前视频块的视频块使用,那么为零值;当仅有一个先前计算得的视频块可供使用时,为接近于所述当前视频块的一个先前计算的视频块的运动向量的值;当仅有两个先前计算得的视频块可供使用时,为基于接近所述当前视频块的两个先前计算的视频块的中值的值;和当三个先前计算的视频块可供使用时,为基于接近于所述当前视频块的三个先前计算的视频块的中值的值。
20.根据权利要求14所述的方法,其进一步包括以不同的空间分辨率分阶段执行搜索,以向用于编码所述当前视频块的所述预测视频块识别所述运动向量。
21.根据权利要求20所述的方法,其进一步包括在具有不同空间分辨率的至少三个阶段中执行搜索。
22.根据权利要求20所述的方法,其中所述运动向量预测值在所述阶段中的至少一者中界定搜索。
23.根据权利要求22所述的方法,其进一步包括接收用以对所述失真测量值编程加权因数的输入,所述加权因数界定与所述不同运动向量相关联的数据量在向用于编码所述当前视频块的所述预测视频块识别所述运动向量中的重要性。
24.一种方法,其包括向用于编码当前视频块的预测视频块识别运动向量,所述识别包含计算失真测量值,所述失真测量值至少部分取决于与不同运动向量相关联的数据量;和产生指示所述待编码的当前视频块与所述预测视频块之间差异的差异块。
25.根据权利要求24所述的方法,其进一步包括接收用以对所述失真测量值编程加权因数的输入,所述加权因数界定与所述不同运动向量相关联的数据量在向用于编码所述当前视频块的所述预测视频块识别所述运动向量中的重要性。
26.根据权利要求24所述的方法,其进一步包括以不同的空间分辨率分阶段执行搜索,以向用于编码所述当前视频块的所述预测视频块识别所述运动向量。
27.根据权利要求26所述的方法,其中基于先前针对接近于待编码的当前视频块的视频块而计算的运动向量来计算所述运动向量预测值,且其中所述运动向量预测值在所述阶段中的至少一者中界定搜索且还用于计算所述失真测量值。
28.一种计算机可读媒体,其包括在被执行时进行以下操作的计算机可读指令基于先前针对接近于待编码的当前视频块的视频块而计算的运动向量来计算运动向量预测值;和使用所述运动向量预测值来搜索用于编码所述当前视频块的预测视频块。
29.根据权利要求28所述的计算机可读媒体,其中所述指令将所述运动向量预测值计算为先前针对接近于所述当前视频块的所述视频块而计算的两个或两个以上运动向量的中值。
30.根据权利要求28所述的计算机可读媒体,其中所述指令以不同的空间分辨率分阶段执行搜索,以向用于编码所述当前视频块的所述预测视频块识别所述运动向量,其中所述运动向量预测值在所述阶段中的至少一者中界定搜索。
31.根据权利要求28所述的计算机可读媒体,其中所述指令通过计算失真测量值来向用于编码所述当前视频块的所述预测视频块识别运动向量,所述失真测量值至少部分取决于所述运动向量预测值。
32.一种计算机可读媒体,其包括在被执行时进行以下操作的计算机可读指令向用于编码当前视频块的预测视频块识别运动向量,所述识别包含计算失真测量值,所述失真测量值至少部分取决于与不同运动向量相关联的数据量;和产生指示所述待编码的当前视频块与所述预测视频块之间差异的差异块。
33.根据权利要求32所述的计算机可读媒体,其中所述指令接收用以对所述失真测量值编程加权因数的输入,所述加权因数界定与所述不同运动向量相关联的数据量在向用于编码所述当前视频块的所述预测视频块识别所述运动向量中的重要性。
34.根据权利要求32所述的计算机可读媒体,其中所述指令以不同的空间分辨率分阶段执行搜索,以向用于编码所述当前视频块的所述预测视频块识别所述运动向量,其中基于先前针对接近于待编码的当前视频块的视频块而计算的运动向量来计算所述运动向量预测值,且其中所述运动向量预测值在所述阶段中的至少一者中界定搜索。
35.一种设备,其包括用于基于先前针对接近于待编码的当前视频块的视频块而计算的运动向量来计算运动向量预测值的装置;和用于使用所述运动向量预测值来搜索用于编码所述当前视频块的预测视频块的装置。
36.根据权利要求35所述的设备,其中所述设备包括数字信号处理器,且所述用于计算的装置和所述用于识别的装置包括在所述数字信号处理器上执行的软件。
37.一种设备,其包括用于向用于编码当前视频块的预测视频块识别运动向量的装置,其包含用于计算失真测量值的装置,所述失真测量值至少部分取决于与不同运动向量相关联的数据量;和用于产生指示所述待编码的当前视频块与所述预测视频块之间差异的差异块的装置。
38.根据权利要求37所述的设备,其中所述设备包括数字信号处理器,且所述用于识别的装置和所述用于产生的装置包括在所述数字信号处理器上执行的软件。
全文摘要
本发明描述视频编码技术和实施此类技术的视频编码装置。在一个实施例中,本发明描述一种视频编码装置,其包括运动估计器,其基于先前针对接近于待编码的当前视频块的视频块而计算的运动向量来计算运动向量预测值,且使用所述运动向量预测值来搜索用于编码所述当前视频块的预测视频块;和运动补偿器,其产生指示所述待编码的当前视频块与所述预测视频块之间差异的差异块。
文档编号H04N7/36GK101073269SQ200580042004
公开日2007年11月14日 申请日期2005年12月7日 优先权日2004年12月8日
发明者沙拉特·曼朱纳特, 李向川, 纳伦德拉纳特·马拉亚特 申请人:高通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1