计算受限的视频编码的制作方法

文档序号:7859658阅读:201来源:国知局
专利名称:计算受限的视频编码的制作方法
技术领域
本发明涉及数字视频处理,尤其涉及视频序列的编码。
背景技术
数字视频能力可加入到多种设备中,包括数字电视、数字直播系统、无线通信设备、个人数字助理(PDA)、膝上电脑、台式电脑、数码相机、数字录像设备、蜂窝或卫星无线电话及类似设备。相比常规的模拟视频系统,这些设备和其它数字视频设备在制作、修改、传输、储存、记录和播放全运动视频序列方面都有显著的进步。
对于数字视频序列通信,现已建立起大量不同的视频编码标准。例如,运动图像专家组(MPEG)开发了许多标准,包括MPEG-1、MPEG-2和MPEG-4。其它标准包括ITU H.263、加利福尼亚卡帕地诺的苹果公司开发的QuickTimeTM、华盛顿雷德蒙德的微软公司开发的Video for Windows、英特尔公司开发的IndeoTM、西雅图RealNetworks公司开发的RealVideoTM和SuperMac公司开发的CinepakTM。这些和其它的标准,包括尚未开发的标准,将不断地进化。
许多视频编码标准通过以压缩方式编码数据来获得更高的传输速率。压缩可以降低为图像帧的有效传输而需要传输的总数据量。举例说明,MPEG标准使用图形和视频压缩技术,这些技术被设计成方便在比没有压缩时更窄的带宽上的视频和图像传输。具体而言,MPEG标准支持利用连续图像帧之间的相似性(也称为时间相关性或帧间相关性)的编码技术,来进行帧间压缩。帧间压缩技术通过将图像帧的基于像素的表示转化为运动表示,来充分利用跨帧的数据冗余。另外,视频编码技术还可以利用图像帧内的相似性,称为空间相关性或帧内相关性,来实现在其中进一步压缩图像帧中的运动表示的帧内压缩。帧内压缩通常基于压缩静止图像的纹理编码过程,如离散余弦变换(DCT)编码。
为支持压缩技术,许多数字视频设备都包括一个压缩数字视频序列的编码器和一个解压数字视频序列的解码器。在许多情况下,编码器和解码器组成一个集成的编码器/解码器(编解码器(CODEC)),它对在限定视频图像序列的各帧中的像素块进行操作。举例说明,在MPEG-4标准中,发送设备的编码器通常将要发送的视频图像帧划分成16×16像素阵列的宏块。对图像帧中的每一宏块,编码器搜索直接前导帧的宏块以标识中最相似的宏块,并对宏块的差值进行编码,用于与指示前一帧中哪一宏块用于编码的运动矢量一起发送。接收设备的解码器接收运动矢量和已编码差值,并执行运动补偿,以生成视频序列。
视频编码过程是计算密集型的,尤其当使用运动估计技术时。举例说明,比较视频块与先前发送的帧的视频块的过程要求大量的计算。迫切需要改进的编码技术,尤其是用于计算资源更有限并更关心能量消耗的无线设备或其它便携式视频设备。另外,也需要方便这类无线设备中的实时编码的技术。
概述本揭示描述了视频编码技术。视频编码技术可涉及确定在对视频帧编码的过程中使用的处理循环的数量,并基于所确定的处理循环数量,使用不同的编码模式选择性地编码视频帧。如果确定的处理循环数量未超出阈值,则视频帧的编码可以使用运动估计技术的第一编码模式进行。然而,,如果确定的处理循环数量超出阈值,则可使用不使用运动估计技术的视频帧第二编码模式。
阈值可以限定可用于给定视频帧的编码的处理循环数量,而确定的处理循环数量可以是在对给定视频帧编码的过程中所用循环的计数值。如果确定的处理循环数量超出阈值,则中止运动估计技术,对该帧的后继视频块,或一个或多个后继视频帧改用更小计算强度的编码技术,如纹理编码。因此,可以在选择基础上使用不同的编码模式来提高计算性能。以这一方式,可加速视频编码,允许在具有相对有限的处理能力的设备中实现实时编码。
本技术可以硬件、软件、固件或其任一组合实现。如果以软件来实现,本技术可针对一种包括程序代码的计算机可读媒质。当执行时,运行本发明描述的一种或多种编码技术。各种实施例的其它细节在附图中和以下描述中提出。阅读描述和附图以及权利要求书,可以清楚其它特征、目的和优点。
附图简述

图1所示是一示例系统的框图,其中源设备向接收设备发送视频数据的已编码序列。
图2所示是一示例数字视频设备,它结合了一压缩数字视频序列的视频编码器。
图3是视频数据的示例宏块的概念图示。
图4是示例搜索空间的概念图示。
图5-7是可在数字视频设备中实现的视频编码技术流程图。
详细描述一般而言,本揭示针对可用于以压缩比作为交换令视频编码模式适合资源有限平台的编码方案。该技术可由数字视频设备的编码器执行,以在某些场合减少计算量、加速处理时间、并可降低视频编码期间的功率消耗。以这一方式,编码技术能改进依照诸如MPEG-4等标准的视频编码,并更有助于在计算资源更有限和更关注功率消耗的无线设备中实现视频编码。此外,该技术还可被配置成保留与诸如MPEG-4解码标准等解码标准的互操作性。
本发明描述的视频编码技术采用选择性编码技术,它响应于给定视频帧的编码过程中的计算度量。该技术使用第一编码模式,直到计算度量超出阈值,此后转向第二编码模式。以这一方式,视频编码技术能限制专用于编码特定帧的计算资源。
更具体地,该视频编码技术对视频帧的编码建立一计算预算。只要计算预算不被耗尽,就能够使用高计算强度运动估计技术(或视频编码中任一其它高计算代价的模块)。然而,如果在编码给定视频帧期间计算预算被耗尽,高计算强度技术可被终止,转向低计算强度的编码技术,如帧内纹理编码或在更小的搜索范围内进行的运动估计编码。纹理编码或减小搜索范围的运动估计可更快速地执行,但压缩率较小。以这一方式,可以确保对任一给定视频帧的编码过程不会花费过多的时间,否则它会损害视频序列的实时传输。此外,通过动态地限定给定视频帧的编码方式,可更有效地使用计算资源,从而在计算资源充足时可以充分利用与运动估计相关的数据压缩。
根据诸如MPEG-4标准等标准编码数字视频数据的数字视频设备可实现一处理器,如数字信号处理器(DSP),来执行编码算法。该编码算法可实现运动估计技术来编码组成视频帧的各个视频块。如上所述,运动估计技术的计算强度非常大。具体地,运动估计技术通常涉及要被编码的视频块与先前发送的帧(或后续帧)的部分或所有视频块之间的比较,来标识可用于限定运动矢量的可接受的匹配。此外,一个块与另一块的每一个别比较要求大量的计算来进行像素范围的比较。然而,DSP执行算法的处理速度通常是固定的。换言之,DSP通常工作在按照每秒的循环数(Hz)来计算的确定频率。举例说明,以在50兆赫兹时钟速度操作的DSP通常每秒执行约5千万条指令。
可接受运动估计编码所需的计算量对给定的视频帧是未知的。如,使用运动估计技术来编码任一给定视频帧所需的计算量可随视频帧的内容和所涉及的搜索算法而变化。然而,为了促进视频帧以期望的分辨率实时传输,可能需要在给定时间量内编码图像帧。具体地,通常需要大约每秒15帧或更多来确保视频序列的期望的分辨率。
由于使用运动估计技术时某些帧比其它帧要花费更长的时间来编码,因此确保DSP能支持可接受编码的一种方法是提高DSP的时钟速度,并由此确保DSP总数能够对“最坏情况”进行编码。亦即,如果DSP足够快,以在确保每秒编码15帧所需的时间内对要求最大计算量的视频帧进行编码,则可支持实时视频序列。然而,无论从实现角度,还是从操作角度,提高DSP时钟速度的代价都很昂贵。尤其是,时钟速度增加可能要求DSP消耗更多的功率,以及额外的设计复杂度。因此,迫切需要允许实时视频编码由在不够快以在由视频序列的实时传输所施加的时间约束中对“最坏情况”进行编码的时钟速度上操作的DSP支持。
通过对给定视频帧的编码限定一计算预算,对给定的编码场合,可降低DSP所需的速度。在某些情况下,计算预算可以至少部分地根据编码先前的视频帧所使用的平均循环数来限定。换言之,如果非常快地编码了前一视频帧,则计算节余可被加入到后一帧的计算预算中,这可允许执行增加数量的计算来编码后续的视频帧。在后文更详细地描述的一个例子中,可以部分地使用限定与若干前导视频帧相关联的处理循环的移动均值,来限定用于编码后续视频帧的计算预算。因此,如有需要,可重复利用在编码先前发送的视频帧过程中的计算节余,使得编码后一视频帧可使用先前的计算节余。换言之,如果较早的帧的编码产生了计算节余,即,较早的帧的编码以比现有阈值更少的处理循环来执行,则可提高较后帧的阈值。另一方面,也可标识前导帧中的计算预算的透支,并在此情况下,可相应地降低较后帧的阈值。在其它情况下,计算预算可由应用到每一帧并且不随时间变化的固定阈值来限定。
本发明描述的技术能提供某些优点。例如,本技术可有助于降低视频编码过程中的功率消耗、可有助于使用以不必足够快以在实时编码所需的时间约束内对“最坏情况”进行编码的时钟速度操作的DSP的高效实时视频编码。本技术尤其适用于计算资源更有限且关注功率消耗的无线数字视频设备或其它便携视频设备随着未来DSP技术的进步,DSP时钟速度必将增加,并且对给定的时钟速度,功率消耗将降低。然而,尽管有更快和更省电的DSP,然而本发明所述的技术仍然是非常有用的。例如,更快的时钟速度可通过支持每秒编码更多帧,或者通过支持诸如三维影像等更复杂的影像,来允许改进的实时分辨率。同样,更快的时钟速度可以允许实时编码更大的视频帧。简言之,本发明所述的技术不限于用于使用以任一给定时钟速度操作的DSP,随着信号处理技术的持续进步,也可同等地用于更快速的DSP。同理,如以硬件实现,则硬件速度也可相应降低。
图1所示是示例系统2的框图,其中,源设备4通过通信链路6向接收设备8发送视频数据的已编码序列。源设备4和接收设备8都是数字视频设备。具体地,源设备4使用诸如由运动图像专家组开发的MPEG-4等各种视频压缩标准中的任一种来编码和发送视频数据。其它标准可包括运动图像专家组开发的MPEG-1、MPEG-2或者其它MPEG标准、ITU H.263、Motion JPEG2000、加利福尼亚卡帕地诺的苹果公司开发的QuickTimeTM、华盛顿雷德蒙德的微软公司开发的Video forWindowsTM、英特尔公司开发的IndeoTM和SuperMac公司开发展的CinepakTM。
通信链路6可包括无线通信链路、物理传输线、基于分组的网络,如局域网、广域网、或诸如因特网等全球网络、公共交换电话网(PSTN)或各种链路和网络的组合。换言之,通信链路6代表了任意适当的通信媒质,或可能是不同网络和链路的集合,用于从源设备4向接收设备8发送视频数据。
源设备4可以是能够编码和发送视频数据的任何数字视频设备。举例说明,源设备4可包含用于储存数字视频序列的存储器22、用于编码序列的视频编码器20、以及用于在通信链路6上发送已编码的序列的发送器14。举例而言,视频编码器20可包含执行限定编码技术的可编程软件模块的DSP和/或微处理器。
源设备4也可包含图像传感器23,如用于捕捉视频序列并将捕捉的序列储存到存储器22的摄像机。在某些情况下,源设备4可在通信链路6上发送实时视频序列。在这些情况下,接收设备8可以接收实时视频序列并向用户显示视频序列。
接收设备8可以是能够接收和解码视频数据的的任何数字视频设备。举例而言,接收设备8可包括用于接收已编码的数字视频序列的接收器15、用于解码序列的解码器16、以及用于向用户显示序列的显示器18。
源设备4和接收设备8的示例设备包括位于计算机网络上的服务器、工作站或其它台式计算设备、以及诸如膝上计算机等移动计算设备。其它示例包括数字电视广播卫星和接收设备,如数字电视机、数码相机、数码摄像机或其它数字式录制设备、诸如具备视频功能的蜂窝无线电话和卫星无线电话等数字视频电话、其它无线视频设备及类似设备。
在某些情况下,源设备4和接收设备8的每一个包含编码器\解码器(编解码器)(未示出),用于编码和解码数字视频数据。在该情况下,源设备4和接收设备8都可以包含发送器和接收器,及存储器和显示器。以下概述的许多编码技术都是在含有编码器的数字视频设备的上下文中描述的。然而,可以理解,编码器可以形成编解码器的一部分。在该情况下,编解码器可以DSP、微处理器、专用集成电路(ASIC)、离散硬件组件或其各种组合来实现。
举例说明,源设备4对视频图像的序列中的像素块进行操作,以编码视频数据。例如,源设备4的编码器20可执行运动估计编码技术,其中,将要发送的视频图像帧划分成由大量较小图像块构成的宏块。对图像帧中的每一宏块,源设备4的视频编码器20搜索储存在存储器22中已发送的前导视频帧(或后继视频帧)的宏块,来标识类似的宏块,并对宏块间的差值,以及标识前一帧中用于编码的宏块的运动矢量进行编码。在某些情况下,为了降低计算量和并保存能量,源设备4可支持可编程阈值,它能够在编码过程中促使各种任务或迭代的终止。
在运动估计中,术语“任务”指比较当前视频块和搜索空间中一个不同视频块的公用计算集。换言之,任务指当前视频块和搜索空间中一个不同的视频块的单个比较。举例而言,任务可以涉及执行大量的计算来比较当前视频块的像素量和不同视频块的像素量。例如,64次计算(在图像块的情况下)或256次计算(在宏块的情况下)可以构成一个任务。每一任务期间,可累积计算,来限定任务的进行中差值(有时称为差度量)。可每次计算后,,或者可选地,在计算的子集之后,即,限定任务子集的整数计算量,作出是否终止任一给定任务的判断。在后一情况下,整数计算量可以是可编程的,以向编码例程提供额外的灵活性。
在运动估计中,术语“迭代”指视频编码期间所执行的任务的公同集。与当前视频块相关联的完整任务序列是一个迭代。换言之,迭代是比较的集合,其中,将当前视频块与搜索空间中的一组前导视频块(或后续视频块)进行比较。每一单独的比较是涉及若干计算的一个任务。由此,搜索空间限定了在一次迭代期间与当前视频块进行比较的视频块集。迭代的每一比较被称为一个任务,每一任务,即每一比较,可涉及若干计算。迭代可被永久终止,例如,如果在迭代过程中标识了一可接受的匹配。
在执行运动估计来编码图像帧时,对每一视频块都能执行一次迭代,例如对帧的宏块或图像块。对每一迭代执行若干任务,每一任务由若干计算组成。因此,采用运动估计技术编码图像帧需要非常大量的计算。如下文将更详述的,为编码图像帧所建立的计算预算能确保运动估计不会导致计算预算在妨碍高效实时视频传输的意义上被耗尽。
接收设备8的接收器15可接收诸如运动矢量和已编码差值形式的已编码视频数据。在该情况下,解码器16执行纹理解码和运动补偿技术,来生成通过显示器16向用户显示的视频序列。接收设备8的解码器16也可被实现为编码器\解码器(编解码器)。在该情况下,源设备和接收设备都能够编码、发送、接收和解码数字视频序列。
在编码任一给定视频帧期间,可确定是否应当中止运动估计技术而采用更小计算强度的编码技术。换言之,使用运动估计进行编码的第一编码模式首先被使用,但是如果使用的处理循环数超出阈值时可以被动态地终止。在该情况下,将使用不使用运动估计的第二编码模式来代替第一编码模式,以减少完成编码该帧所需的计算量。如前文所提及的,可建立一计算预算,并监控它来确定在任一给定的实例中是否应该终止运动估计。如需如此,则可使用通常用于压缩静止图像的帧内压缩技术来取代运动估计。
较小计算强度的编码技术的一个示例是使用本领域内已知的离散余弦变换(DCT)的纹理编码。纹理编码的执行远较运动估计编码为快,并且其计算量更小。然而,纹理编码在数据压缩方面不提供同等优点。当使用运动估计时,除运动估计技术之外还可使用纹理编码。然而,当不使用运动估计时,可使用纹理编码或另一较小计算强度的编码技术来取代运动估计,以收计算节余之效。
图2所示是示例数字视频设备10的框图,如结合了根据本发明所述的技术来压缩数字视频序列的视频编码器20的源设备4。示例性数字视频设备10被示出为无线设备,如移动计算设备、个人数字助理(PDA)、无线通信设备、无线电话和类似设备。然而,本揭示中的技术不限于无线设备,并可以方便地应用于其它数字视频设备,包括非无线设备。
在图2的示例中,数字视频设备10通过发送器14和天线12发送压缩的数字视频序列。视频编码器20在发送之前编码视频序列并将已编码的数字视频序列缓存在视频存储器22中。举例而言,视频编码器20可包括可编程数字信号处理器(DSP)、微处理器、一个或多个专用集成电路(ASIC)、特定硬件组件或这些设备和组件的各种组合。存储器22可储存视频编码器20在编码过程使用的计算机可读指令和数据。举例而言,存储器22可包括是同步动态随机存取存储器(SDRAM)、闪存、电可擦除可编程只读存储器(EEROM)或类似存储器。
在某些情况下,数字视频设备10包括了用于捕捉视频序列的图像传感器23。举例而言,图像传感器23可捕捉视频序列并将它们储村在存储器22中用于编码。图像传感器23也可以直接耦合到视频编码器20,来改进实时视频编码。对每一帧使用计算预算的编码技术可以确保编码在允许实现视频序列的实时传输的时间段内完成,即使视频编码器20以相对较慢的时钟速度操作。
作为示例,图像传感器23可包括照相机。具体地,图像传感器23可包括电荷耦合器件(CCD)、电荷注入器件、光电二极管阵列、互补金属氧化物半导体(CMOS)器件、或任一其它能捕捉视频图像或数字视频序列的光敏器件。
作为示例,视频编码器20可包括DSP。视频编码器20可包括编码控制器24来选择性地控制运动编码器26和纹理编码器28。换言之,这些组件的每一个都可由在DSP上执行的软件模块构成。可选地,视频编码器20的一个或多个组件可包括执行本发明描述的技术的一个或多个方面的专门设计的硬件组件,或一个或多个ASIC。在任何情况下,编码控制器24通过选择性地调用运动编码器26和纹理编码器28来控制视频帧的编码。在许多情况下,在与视频帧相关联的编码过程中,都使用了运动编码器26和纹理编码器28。
运动编码器26执行计算强度大运动估计编码技术,如以下将详尽描述的。另一方面,纹理编码器28执行计算强度小的纹理编码技术,如通常用于压缩静止图像的帧内压缩。举例而言,纹理编码器28可执行本领域内已知的离散余弦变换(DCT)编码。在第一编码模式中,当使用运动估计技术时,除运动编码器26之外可调用纹理编码器28,或者在第二编码模式中,当不使用运动估计技术时,可以调用纹理编码器28来取代运动估计器26。
编码控制器24可建立阈值来限定用于编码给定视频帧的计算预算。编码控制器24可将该阈值存入存储器22,并在编码例程中访问该阈值以评估计算预算是否已经被耗尽。只要计算预算尚未被耗尽,编码控制器24可使运动编码器26能够执行运动估计技术。然而,如果计算预算已经被耗尽,则编码控制器24可禁用运动编码器26。在该情况下,视频帧的任何剩余的编码能简单地用纹理编码器28来完成,这需要少得多的计算量,从而需要更少的处理循环。以此方式,编码控制器24能确保视频帧的编码可以在分配的时间量内完成,确保实时视频序列能被发送。
编码控制器24可部份地基于与视频编码器20相关联的已知频率来建立阈值。如上文所提及的,视频编码器20可包括数字信号处理器(DSP),它执行与编码控制器24,纹理编码器28和运动控制器26相对应的各种软件模块。视频编码器20的速度一般是固定的。换言之,视频编码器20通常以按照每秒的循环数(Hz)来计算的固定频率操作。在一个示例中,视频编码器20可以50兆赫兹的时钟速度操作,如此它每秒能执行约5千万条指令。也可使用更快或更慢的时钟速度。在任一情况下,阈值可部分地基于视频编码器20的已知时钟速度。在某些情况下,阈值可以是编程在视频控制器24内部的固定值,在其它情况下,阈值可以是基于用于对一个或多个前导视频帧进行编码的处理循环数进行调整的动态值。
举例说明,编码控制器24可基于用于对一个或多个前导视频进行编码的处理循环数,在逐帧的基础上建立阈值。使用运动估计技术时,某些帧的编码的花时比其它帧更长。因此,计算预算可以至少部份地由用于对前导帧进行编码的平均处理循环数来限定。换言之,如前导视频帧被快速地编码,则计算量的节余能被加入到后继帧的计算预算中,这可允许执行增加的计算量来编码后继视频帧。在一个示例中,可使用限定与若干先前已编码的视频帧相关联的处理循环数的移动均值来限定用于编码后继视频帧的计算预算。以此方式,如需要,在编码先前发送的视频帧的过程中的计算节余可被重复利用,使得编码后继视频帧可以使用先前的计算节余。
编码控制器24可通过专门对所用的时钟循环进行计数,或通过跟踪与编码视频帧向关联的定时,来确定在对给定视频帧进行编码期间所使用的处理循环数,。在任何情况下,编码控制器24监控在编码给定视频帧期间使用的处理循环数,并将所使用的循环数与阈值比较,以确定计算预算是否被耗尽。如已耗尽,则编码控制器24可禁用运动编码器26,并只用纹理编码器28来执行该帧的剩余的编码。然而,只要计算预算未被耗尽,就可使用运动编码器26,因为运动估计技术一般允许提高的压缩率,从而降低视频帧传输期间的带宽消耗。
在运动估计编码期间,运动编码器26将与要编码的当前视频帧相关联的当前视频块与前导图像帧或其子集(或后继图像帧或其子集)的各种视频块相比较。在标识了类似的视频块之后,运动编码器26确定当前视频块和类似视频块之间的差值。编码控制器24可从运动编码器26处接收此信息,并可将该信息转发到发送器14。发送器然后能发送指示类似视频块的运动矢量以及由运动编码器26标识的差值。发送器14可发送每一图像块的已编码的信息,或者也可以在一旦帧编码完成时发送完整图像帧的信息。通过使用运动矢量编码图像块,能显著减小发送视频数据流所需的带宽。但是,通过在某些情况下避免使用运动估计,可确保实时发送。
图3示出了能储存在存储器22内的宏块31。MPEG标准和其它视频编码模式在运动估计视频编码期间都使用宏块。在MPEG标准中,术语“宏块”指形成视频图像帧的一个子集的16×16的像素集合。每一像素值可用一个字节的数据表示,尽管为得到期望的成像质量,也可使用更多或更少的比特数来限定每一像素。宏块也可由若干较小的8×8像素图像块32组成。然而,一般而言,如有需要,本发明描述的编码技术可使用任何确定大小的块来操作,诸如16比特×16比特的宏块、8比特×8比特的图像块、或不同大小的视频块。
图4示出了可储存在存储器内的示例搜索空间41。搜索空间41是对应于先前发送的图像帧(或帧序列中的后继图像帧)的视频块缓冲集。如有需要,搜索空间可由完整的前导或后继图像帧构成,或图像帧的子集。一般而言,由于较大的搜索空间限定可以与要编码的当前帧比较的更多的块,即,每次迭代有更多的任务,因此更大的搜索空间将导致运动估计期间更多的计算。再一次,将当前图像帧与搜索空间41中的块相比较,以标识一个适当的匹配,使得当前块与前导帧中的类似图像块之间的差值可以连同指示前导帧的类似图像块的运动矢量一起发送。
更具体地,在运动估计视频帧编码期间,运动编码器26可使用诸如视频编码领域中众所周知的绝对差和(SAD)技术和方差和(SSD)技术等比较技术,将要编码的当前视频块与前导视频块进行比较。也可使用其它的比较技术。
SAD技术涉及在要编码的当前块的像素值与要与当前块比较的前导块的像素值之间执行绝对差计算的任务。将这些绝对差计算的结果相加,即累加,来限定一指示当前视频块和与当前视频块比较的前导视频块之差的差值。对8×8像素图像块,要计算并相加64个差值,而对16×16像素宏块,要计算并相加256个差值。在某些情况下,当累加的差值超出任务阈值时,任务计算可被终止。这该情况下,额外的计算是不必要的。
SSD技术也涉及在要编码的当前块的像素值与要与当前块比较的前导块的像素值之间执行差计算的任务。在SSD技术中,对绝对差计算的结果进行平方运算,然后将平方的值相加,即累加,来限定一指示当前视频块和与当前视频块比较的前视频导块之差的差值。
可选地,可以执行其它比较技术,诸如均方误差(MSE)、归一化互相关函数(NCCF),或另一适当的比较算法。但是在任何情况下,运动估计技术需要大量的计算,来标识使用运动矢量的视频编码可接受的匹配。因此,在确定计算预算不足以允许在分配的时间内执行运动估计技术的某些情况下,可避免使用运动估计技术。
图5所示是依照本揭示的原理的视频编码技术的流程图。如图所示,在编码视频帧期间,编码控制器24监控计算量(51),如通过在处理循环出现时对其数量进行计数或相加,或通过对编码过程进行计时。如果超出计算预算(52的“是”分支),例如,当处理循环数超过建立的阈值时,编码过程不采用运动估计技术进行(53)。举例而言,当超出计算预算时(52的“是”分支),则可使用纹理编码,或其它更小计算强度的编码技术。然而,只要未超出计算预算(52的“否”分支),就使用运动估计技术进行编码(54)。因为运动估计编码可以获得提高的数据压缩率,从而降低视频序列发送期间的带宽消耗,因此,如果计算资源可用,则优先使用运动估计。
可选地,运动估计技术可以基于剩余计算资源的程度来加以修改。换言之,当使用的处理循环数接近阈值时,编码控制器可动态地改变运动编码器26执行的运动估计技术,如通过对任一给定的迭代减小搜索空间的大小。以此方法,运动估计可以在计算约束条件下被更容易地充分利用。
图6所示是依照本揭示的原理的视频编码技术的更详细的流程图。如图6所示,数字视频设备10的编码控制器20通过计算每帧的循环的移动均值(61),开始对视频帧进行编码。换言之,编码控制器24确定用于对若干前导视频帧进行编码所用的每帧的循环数的均值。然后,编码控制器24为编码当前视频帧建立一计算预算。具体地,编码控制器24可限定一阈值来限定可用于运动估计的处理循环数。该阈值可由视频编码器20的时钟速度来限定,也可部份地由所计算的移动均值来进一步限定。举例而言,如果编码若干前导视频帧所需的每帧的平均循环数显著小于期望值时,则可将计算量节余加入该阈值中,以允许执行额外的计算。类似地,如果编码若干前导视频帧所需的每帧的平均循环数显著大于期望值时,则可将计算量透支加入该阈值中,使对后继帧只能执行更少的计算。编码控制器24可在存储器22中储存该阈值,以使在编码例程期间可以访问该阈值。
编码控制器24使运动编码器26能够采用诸如上文所列出的那些运动估计技术对图像块进行编码(63)。在编码期间,编码控制器24监控并确定所用的处理循环数,如通过对视频编码器20所用的处理循环数进行计数,或通过跟踪在编码当前视频块期间所流逝的时间量。也可使用其它估计技术来确定所用的循环数。编码控制器24随后确定是否超出计算预算(64),如通过将在编码当前视频帧期间所用的处理循环数与储存在存储器22中的阈值进行比较。如果未超出计算预算(64的“否”分支),则使用运动估计来编码视频块(65)。在某些情况下,如果使用运动估计,除运动估计编码技术之外也可使用纹理编码。只要该帧仍有另外的视频块需要编码(66的“是”分支),就重复监控计算阈值的过程。
如果编码控制器24确定超出了计算预算(64的“是”分支),如通过确定在编码当前视频帧期间使用的处理循环数超出储存于存储器22中的阈值,则编码控制器禁用运动编码器26(67)。在该情况下,视频编码器20不使用运动估计技术来编码任何剩余视频块。举例说明,编码控制器24可禁用运动编码器26,并仅启用纹理编码器28,使得剩余的视频块可使用纹理编码技术来编码。除纹理编码器28之外或作为其替代,也可添加实现其它编码技术的额外的编码器。在某些情况下,当运动估计被禁用,整个视频帧可以仅使用纹理编码技术来编码,丢弃所计算的运送矢量。但是在大多数情况下,在运动编码器26启用期间所计算的运动矢量是可以使用的。在后一种情况下,只有未使用运动估计技术来编码的那些剩余视频块需要仅使用纹理编码技术来编码。
图7所示是图6的视频编码技术的一个变异的流程图。在此情况下,编码控制器24为编码当前视频帧设定一计算预算(71)。举例说明,编码控制器可计算每帧循环数的移动均值,并限定一阈值来限定能用于编码的处理循环数。该阈值可由视频编码器20的时钟速度来限定,也可部份地由所计算的移动均值来进一步限定。
编码控制器24然后确定是否超出计算预算(72),如通过将编码当前帧所用的处理循环数与储存在存储器22中的阈值进行比较。如果未超出计算预算(72的“否”分支),则增加该阈值,以表示前导帧的未充分使用,并且可以使用运动估计来编码视频块(75)。另一方面,如果超出了计算预算(72的“是”分支),则可减小用于后继视频块的运动估计的搜索大小,并仍能使用运动估计(75)。换言之,在确定超出了计算预算,并不完全终止运动估计(如图6所示),在图7中,该技术在动态的基础上修改所执行的运动估计的范围。以此方法,本技术可动态地调整要执行的计算数量。可循环性地在恒定的基础上检查所测定的或估算的与所建立的计算预算有关的计算使用,以动态地调整编码算法。这类技术对压缩比进行权衡,能改善实时编码,尤其是在资源有限的平台上。
一旦完成对帧的编码,编码控制器24将已编码帧从存储器22转发到发送器14。发送器14然后可发送已编码的帧(77)。图7所示技术然后可重复,来编码另外的视频帧(70)。在其它示例中,图7所示的技术可跨对两个或多个视频帧进行编码来扩展。换言之,与一个帧相关联的计算节余或透支可在建立和\或修改后继帧的预算阈值中,或在限定对任一给定帧或帧的任一个别视频块的搜索大小中得以体现。
在某些情况下,依照按照本发明所述的技术编码的帧,可以有符合诸如MPEG-4标准等一个或多个MPEG标准的唯一格式。举例而言,如果视频帧限定了(N)个视频块,则限定块序列(1到M)的第一视频块集可基本上使用运动矢量来编码。在某些情况下,第一序列中的几个视频块可以不用运动矢量来编码,例如,当对一个或多个块未标识可接受的运动矢量时,而在其它情况下,第一序列中的所有视频块可使用运动矢量来编码。限定块序列(M+1到N)的第二视频块集可不使用运动矢量来编码。例如,当运动估计器26如上文所述的被禁用时,剩余的视频块可以只使用纹理编码器28来编码。按此格式限定的帧可储存在计算机可读媒质上,诸如设备10的存储器22。另外,按此格式限定的帧可储存在用已编码数据调制的载波形式的计算机可读媒质上。举例而言,已调制载波可以是用来通过发送器14和天线12从设备10发送帧的媒质。在任一情况下,计算机可读媒质可以包括存储在其上的图像帧。
已经描述了许多不同的实施例。例如,描述了为编码视频帧建立计算预算的视频编码技术。所描述的技术能通过在某些场合避免计算来改善视频编码、加速编码过程、并可能减少视频编码期间的功率消耗。以此方式,本技术能改善符合诸如MPEG-4等标准的视频编码,并更有利于在计算资源更有限,并且关注功率消耗的无线设备中实现视频编码。另外,本技术不会影响与诸如MPEG-4解码标准等解码标准的互操作性。
然而,在不背离权利要求书的精神和范围的前提下,可以作各种修改。例如,在某些情况下,运动估计技术可基于当前可用的计算资源来修改。例如,在编码任意给定视频帧期间,搜索技术可基于可用计算资源来修改。换言之,在某些情况下,可更紧密地监控计算预算,来动态限定所使用的运动估计技术的范围。具体地,运动估计期间使用的比较和搜索次数可基于由已使用的计算量所确定的与阈值相关的可用计算量来动态地调整或限定。举例说明,如果有更多的计算资源可用,则可在运动估计期间使用更穷尽的搜索。相反,当在编码任一给定视频帧的过程中计算资源变得更有限时,可使用较不穷尽的搜索。在某一点上,可如上所述完全不用运动估计。可建立大量不同的阈值来限定应当何时对运动估计技术进行修改、调整或终止。这些或其它的对上述技术的修改和扩展可被实现以改进编码过程。
本技术可用硬件、软件、固件或其任一组合来实现。如以软件实现,则本技术可以针对一种包括程序代码的计算机可读媒质,当在编码符合MPEG-4标准的视频流的设备中执行该程序代码时,可执行上述一种或多种方法。在此情况下,该计算机可读媒质可包括随机存取存储器(RAM),如同步动态随机存取存储器(SDRAM)、只读存储器(ROM)、非易失性随机存取存储器(NVRAM)、电可擦除可编程只读存储器(EEPROM)、闪存及类似器件。
程序代码可以计算机可读指令的形式储存在存储器中。在此情况下,诸如DSP等处理器可执行储存在存储器中的指令来实现本发明描述的一项或多项技术。在某些情况下,这些技术可由调用各种硬件组件来加速编码过程的DSP执行。在其它情况下,视频编码器可被实现为微处理器、一个或多个专用集成电路(ASIC)、一个或多个现场可编程门阵列(FPGA)、或某些其它的硬件-软件的组合。这些和其它实施例都包括在所附权利要求书的范围之内。
权利要求
1.一种设备,其特征在于,它包括一编码器,它通过确定在编码一给定视频帧时所使用的处理循环数、及基于所确定的处理循环数来选择一编码模式,以对视频帧进行编码;以及一发送器,它发送已编码视频帧。
2.如权利要求1所述的设备,其特征在于,当编码期间所使用的处理循环数超过一阈值时,所述编码器选择一不使用运动估计技术来编码所述给定视频帧的编码模式。
3.如权利要求2所述的设备,其特征在于,当编码期间所使用的处理循环数小于所述阈值时,所述编码器选择一使用运动估计技术来编码所述给定视频帧的编码模式。
4.如权利要求2所述的设备,其特征在于,所述编码器建立所述阈值,以限定一用于对所述给定视频帧进行编码的计算预算。
5.如权利要求2所述的设备,其特征在于,所述编码器通过计算与若干先前所编码的帧相关联的平均处理循环数,并至少部分地基于所计算的平均处理循环数限定所述阈值,来建立所述阈值。
6.如权利要求1所述的设备,其特征在于,确定所述处理循环数包括对在编码所述给定视频帧期间所使用的处理循环数进行计数。
7.如权利要求1所述的设备,其特征在于,它还包括一实时捕捉视频帧的图像传感器,其中,所述编码器实时编码所述视频帧,并且其中,所述发送器实时发送已编码的视频帧。
8.如权利要求1所述的设备,其特征在于所述视频帧按照MPEG-4标准来编码。
9.如权利要求1所述的设备,其特征在于,所述设备是无线设备。
10.如权利要求1所述的设备,其特征在于,所述设备是由电池供电的设备。
11.如权利要求1所述的设备,其特征在于,所述编码器包括一执行机器可读指令的数字信号处理器。
12.一种方法,其特征在于,它包括确定在编码视频帧期间所使用的处理循环数;以及基于所确定的处理循环数,选择性地编码所述视频帧。
13.如权利要求12所述的方法,其特征在于,它还包括当编码期间所使用的处理循环数超过一阈值时,为所述视频帧选择一不使用运动估计技术的编码模式。
14.如权利要求13所述的方法,其特征在于,它还包括当编码期间所使用的处理循环数小于所述阈值时,为所述视频帧选择一使用运动估计技术的编码模式。
15.如权利要求13所述的方法,其特征在于,它还包括建立所述阈值以限定一用于编码所述视频帧的计算预算。
16.如权利要求15所述的方法,其特征在于,建立所述阈值包括计算一与若干先前编码的视频帧相关联的平均处理循环数、及至少部份地基于所计算的平均处理循环数来限定所述阈值。
17.如权利要求12所述的方法,其特征在于,确定所述处理循环数包括对编码所述视频帧的过程中所使用的处理循环数进行计数。
18.如权利要求12所述的方法,其特征在于,选择性地编码所述视频帧包括动态地调整要执行的计算次数。
19.一种方法,其特征在于,它包括建立一阈值以限定用于编码一视频帧的可用处理循环数;确定在编码所述视频帧的过程中所使用的处理循环数;当编码期间所使用的处理循环数小于所述阈值时,采用运动估计技术来编码所述视频帧;当编码期间所使用的处理循环数大于所述阈值时,不采用运动估计技术来编码所述视频帧;
20.如权利要求19所述的方法,其特征在于,确定所述处理循环数包括对在编码所述视频帧的过程中所使用的处理循环数进行计数。
21.如权利要求19所述的方法,其特征在于,建立所述阈值包括计算一与若干先前编码的视频帧相关联的平均处理循环数、及至少部份地基于所计算的平均处理循环数来限定所述阈值。
22.一种设备,其特征在于,它包括一编码器,它通过建立一阈值来限定用于编码一给定视频帧的计算预算、确定在编码所述给定视频帧期间所使用的处理循环数、当在编码期间所使用的处理循环数小于所述阈值时采用运动估计技术来编码所述视频帧、以及当编码期间所使用的处理循环数大于所述阈值时不采用运动估计技术来编码所述视频帧,来编码视频帧;以及一发送器,它发送已编码视频帧。
23.如权利要求22所述的设备,其特征在于,所述选自以下组数字电视、无线通信设备、个人数字助理、膝上型计算机、台式机、数码相机、数字录制设备、具备视频功能的蜂窝无线电话、以及具备视频功能的卫星无线电话。
24.一种装置,其特征在于,它包括一存储器,它储存计算机可执行指令;以及一处理器,它执行所述指令来确定在编码一给定视频帧期间所使用的处理循环数,并基于所确定的处理循环数来选择一编码模式以对所述给定视频帧进行编码。
25.如权利要求24所述的装置,其特征在于,所述存储器储存一限定一用于视频编码例程的计算预算的阈值,并且其中,所述处理器执行所述指令,以当编码期间所使用的处理循环数超出所述阈值时,选择一不采用运动估计技术来编码所述给定视频帧的编码模式。
26.如权利要求25所述的装置,其特征在于,所述处理器还执行所述指令,以当编码期间所使用的处理循环数小于所述阈值时,选择一采用运动估计技术来编码所述给定视频帧的编码模式。
27.如权利要求25所述的装置,其特征在于,所述处理器还执行所述指令来建立所述阈值,以限定一用于编码所述给定视频帧的计算预算。
28.如权利要求27所述的装置,其特征在于,所述处理器执行所述指令,以通过计算一与若干先前所编码的视频帧相关联的平均处理循环数、及至少部份地基于所计算的平均处理循环数限定所述阈值,来建立所述阈值。
29.如权利要求24所述的装置,其特征在于,所述处理器执行指令,以通过执行指令来对在编码所述给定视频帧的过程中所使用的处理循环数进行计数,来确定所述处理循环数。
30.一种装置,其特征在于,它包括一存储器,它储存计算机可执行指令和一限定一用于视频编码例程的计算预算的阈值;以及一处理器,它执行所述指令来建立储存在所述存储器中的所述阈值、确定在编码一给定视频帧期间所使用的处理循环数、当编码期间所使用的处理循环数小于所述阈值时采用运动估计技术来编码所述给定视频帧、而当编码期间所使用的处理循环数大于所述阈值时不采用运动估计技术来编码所述给定视频帧。
31.如权利要求30所述的装置,其特征在于,所述处理器执行所述指令,以通过执行指令来对在编码所述给定视频帧的过程中所使用的处理循环数进行计算,来确定所述处理循环数。
32.如权利要求30所述的装置,其特征在于,所述处理器执行指令,以通过执行指令来计算一与若干先前所编码的视频帧相关联的平均处理循环数、及至少部份地基于所计算的平均处理循环数来限定所述阈值,来建立所述阈值。
33.一种依照MPEG-4标准编码视频块的装置,其特征在于,它通过以下步骤来编码确定在编码一视频帧期间所使用的处理循环数;以及基于所确定的处理循环数,使用不同的编码模式选择性地编码所述视频帧。
34.如权利要求33所述的装置,其特征在于,当编码期间所使用的处理循环数超过一阈值时,不使用运动估计技术来编码所述视频帧。
35.如权利要求33所述的装置,其特征在于,确定所述处理循环数包括对在编码所述视频帧的过程中所使用的处理循环数进行计数。
36.一种依照MPEG-4标准编码视频块的装置,其特征在于,它通过以下步骤来编码建立一处理循环数阈值;确定在编码所述视频帧的过程中所使用的处理循环数;当编码期间所使用的处理循环数小于所述阈值时,采用运动估计技术来编码所述视频帧;当编码期间所使用的处理循环数大于所述阈值时,不采用运动估计技术来编码所述视频帧。
37.如权利要求36所述的装置,其特征在于,确定所述处理循环数包括对在编码所述视频帧的过程中所使用的处理循环数进行计数。
38.如权利要求36所述的装置,其特征在于,建立所述阈值包括计算一与若干先前所编码的视频帧相关联的平均处理循环数、及至少部分地基于所计算的平均处理循环数来限定所述阈值。
39.一种包含指令的计算机可读媒质,其特征在于,当所述指令在编码符合MPEG-4标准的视频流的设备中执行时确定在编码一视频帧期间所使用的处理循环数;以及基于所确定的处理循环数,使用不同的编码模式选择性地编码所述视频帧。
40.如权利要求39所述的计算机可读媒质,其特征在于,当被执行时,所述指令在编码期间所使用的处理循环数超过一阈值时不使用运动估计技术来编码所述视频帧。
41.如权利要求40所述的计算机可读媒质,其特征在于,当被执行时,所述指令在编码期间所使用的处理循环数小于所述阈值时使用运动估计技术来编码所述视频帧。
42.如权利要求40所述的计算机可读媒质,其特征在于,当被执行时,所述指令建立所述阈值,以限定一用于编码所述视频帧的计算预算。
43.如权利要求42所述的计算机可读媒质,其特征在于,当被执行时,所述指令通过计算一与若干先前所编码的视频帧相关联的平均处理循环数、及至少部份地基于所计算的平均处理循环数限定阈值,来建立所述阈值。
44.如权利要求39所述的计算机可读媒质,其特征在于,当被执行时,所述指令通过对在编码所述视频帧的过程中所使用的处理循环数进行计数,来确定所述处理循环数。
45.一种包含指令的计算机可读媒质,其特征在于,当在编码符合MPEG-4标准的视频流的设备中执行所述指令时建立一阈值,以限定一用于编码视频帧的计算预算;确定在编码所述视频帧过程中所使用的处理循环数;当编码期间所使用的处理循环数小于所述阈值时,采用运动估计技术来编码所述视频帧;以及当编码期间所使用的处理循环数大于所述阈值时,不采用运动估计技术来编码所述视频帧。
46.如权利要求45所述的计算机可读媒质,其特征在于,当被执行时,所述指令通过对在编码所述视频帧的过程中所使用的处理循环数进行计数,来确定所述处理循环数。
47.如权利要求45所述的计算机可读媒质,其特征在于,当被执行时,所述指令通过计算一与若干先前所编码的视频帧相关联的平均处理循环数、及至少部份地基于所计算的平均处理循环数来限定所述阈值,而建立所述阈值。
48.一种装置,其特征在于,它包括用于确定在编码一视频帧的过程中所使用的处理循环数的装置;用于当编码期间所使用的处理循环数超出一阈值时,不采用运动估计技术来编码所述视频帧的装置。
49.一种装置,其特征在于,它包括用于建立一阈值以限定一用于编码视频帧的计算预算的装置;用于确定在编码所述视频帧的过程中所使用的处理循环数的装置;用于当编码期间所使用的处理循环数小于所述阈值时,采用运动估计技术来编码所述视频帧的装置;以及用于当编码期间所使用的处理循环数大于所述阈值时,不采用运动估计技术来编码所述视频帧的装置。
50.一种方法,其特征在于,它包括建立一阈值,以限定一用于编码视频帧的计算预算;确定当编码所述视频帧时所使用的处理循环数;以及基于所确定的与所述阈值相关的处理循环数调整一编码例程。
51.一种包含指令的计算机可读媒质,其特征在于,当所述指令在编码符合MPEG-4标准的视频流的设备中执行时建立一阈值,以限定一用于编码视频帧的计算预算;确定当编码所述视频帧时所使用的处理循环数;以及基于所确定的与所述阈值相关的处理循环数来调整一编码例程。
52.一种装置,其特征在于,它包括一存储器,它储存计算机可执行指令以及一限定一用于视频编码例程的计算预算的阈值;以及一处理器,它执行所述指令来建立所述阈值、确定当编码所述视频帧时所使用的处理循环数、以及基于所确定的与所述阈值相关的处理循环数来调整所述编码例程。
53.一种方法,其特征在于,它包括使用第一编码技术来编码一视频帧的第一部分;以及使用第二编码技术来编码所述视频帧的第二部分。
54.如权利要求53所述的方法,其特征在于,所述第一编码技术包括基于运动和纹理的编码技术,并且所述第二编码技术包括基于非运动的编码技术。
55.一种方法,其特征在于,它包括当在编码一视频帧期间所使用的处理循环数小于一阈值时,依照第一编码模式来编码所述视频帧的第一视频块集合;以及当所述处理循环数超出所述阈值时,依照第二编码模式来编码所述视频帧的第二视频块集合。
56.如权利要求55所述的方法,其特征在于,所述第一编码模式包括基于运动的编码,并且所述第二编码模式排除基于运动的编码。
57.一种包含依照MPEG-4标准来编码的视频帧的计算机可读媒质,其特征在于,所述视频帧包括(N)视频块,其中,第一视频块序列(1到M)基本上使用运动矢量来编码,并且其中,第二视频块序列(M+1到N)不使用运动矢量来编码。
全文摘要
描述了涉及确定在编码视频帧期间所使用的处理循环数、及当编码期间所使用的处理循环数超出一阈值时不使用运动估计技术来来编码视频帧的视频编码计数。例如,该阈值可以限定可用于编码给定的视频帧的处理循环数,并且所确定的处理循环数可以是在编码给定视频帧的过程中所使用的已计数的循环数。如果在编码期间所使用的处理循环数超出阈值,则中止运动估计技术而采用更小计算强度的编码技术,如纹理编码。
文档编号H04N7/32GK1666529SQ03815068
公开日2005年9月7日 申请日期2003年6月18日 优先权日2002年6月28日
发明者C·常 申请人:高通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1