几乎视觉无损的视频再压缩的制作方法

文档序号:11291355阅读:731来源:国知局
几乎视觉无损的视频再压缩的制造方法与工艺

本申请案主张2015年2月9日提交的第62/113,971号美国临时申请案的权益,所述申请案的整个内容以引用的方式并入本文中。

本发明涉及用于视频压缩的技术。



背景技术:

数字视频能力可并入到多种多样的装置中,包含数字电视、数字直播系统、无线广播系统、个人数字助理(pda)、膝上型或桌上型计算机、平板计算机、电子图书阅读器、数字相机、数字记录装置、数字媒体播放器、视频游戏装置、视频游戏控制台、蜂窝式或卫星无线电电话(所谓的“智能电话”)、视频电话会议装置、视频串流装置及其类似者。数字视频装置实施视频译码技术,例如描述于以下各项中的那些技术:由mpeg-2、mpeg-4、itu-th.263、itu-th.264/mpeg-4第10部分高级视频译码(avc)、itu-th.265、高效率视频译码(hevc)定义的标准以及此类标准的扩展。视频装置可通过实施这些视频译码技术来更高效地发射、接收、编码、解码和/或存储数字视频信息。

视频译码技术包含空间(图片内)预测和/或时间(图片间)预测来减少或去除视频序列中固有的冗余。对于基于块的视频译码,可将视频切片(例如,视频帧或视频帧的一部分)分割成视频块(其也可被称作树块)、译码单元(cu)和/或译码节点。使用关于同一图片中的相邻块中的参考样本的空间预测来对图片的经帧内译码(i)切片中的视频块进行编码。图片的经帧间编码(p或b)切片中的视频块可使用相对于同一图片中的相邻块中的参考样本的空间预测或相对于其它参考图片中的参考样本的时间预测。图片可被称作帧,且参考图片可被称作参考帧。

空间或时间预测产生待译码块的预测性块。残余数据表示待译码原始块与预测性块之间的像素差。经帧间译码块是根据指向形成预测性块的参考样本块的运动向量和指示经译码块与预测性块之间的差的残余数据来编码的。根据帧内译码模式和残余数据来编码经帧内译码块。为了进一步压缩,可将残余数据从像素域变换到变换域,从而产生残余变换系数,可接着量化所述残余变换系数。可扫描一开始按二维阵列排列的经量化变换系数,以便产生变换系数的一维向量,且可应用熵译码来实现更多压缩。



技术实现要素:

一般来说,本发明描述用于执行几乎视觉无损视频再压缩的技术。所揭示的技术产生具有相对较小位速率和相对较小文件大小的视频帧,同时大致保持与最初记录的视频帧相同水平的视觉上可察觉视频质量。一般来说,视频帧的再压缩取输入视频帧,且产生所述视频帧的具有相同或较低位速率的第二副本。所提出的技术,在本文中被称作“vzip”,解决了与视频帧的原始记录相比,在视觉质量上不具有可察觉损失的情况下再压缩视频帧(即,视觉无损再压缩)的问题。另外,所揭示的技术提供视频帧的单步再压缩,其包含每一视频帧的单次解码和编码。

在一个实例中,本发明是针对一种处理视频数据的方法。所述方法包括存储多个预先计算的量化参数(qp)值,其中基于视频剪辑的数据库以及质量量度来预先计算所述多个预先计算的qp值,以确定用以再压缩所述视频剪辑中的每一者的最大qp值,其不导致视频质量的视觉上可察觉的损失;在第一位速率下获得视频帧;基于与所述视频帧相关联的空间、时间和译码统计来确定视频帧的复杂性值;基于视频帧的复杂性值,从所述多个预先计算的qp值选择一qp值;以及根据所述选定qp值来将所述视频帧从第一位速率再压缩到第二位速率,而不具有视频质量的视觉上可察觉损失,所述第二位速率低于所述第一位速率。

在另一实例中,本发明是针对一种视频处理装置,所述装置包括存储器以及与所述存储器通信的一或多个处理器。所述存储器经配置以存储多个预先计算的qp值,其中基于视频剪辑的数据库以及质量量度来预先计算所述多个预先计算的qp值,以确定用以再压缩视频剪辑中的每一者的最大qp值,其不导致视频质量的视觉上可察觉的损失。所述一或多个处理器经配置以:在第一位速率下获得视频帧;基于与所述视频帧相关联的空间、时间和译码统计,来确定视频帧的复杂性值;基于所述视频帧的复杂性值,从所述多个预先计算的qp值选择一qp值;以及根据所述选定qp值来将所述视频帧从第一位速率再压缩到第二位速率,而不具有视频质量的视觉上可察觉损失,所述第二位速率低于所述第一位速率。

在另一实例中,本发明是针对一种视频处理装置,所述装置包括:用于存储多个预先计算的qp值的装置,其中基于视频剪辑的数据库以及质量量度来预先计算所述多个预先计算的qp值,以确定用以再压缩视频剪辑中的每一者的最大qp值,其不导致视频质量的视觉上可察觉的损失;用于在第一位速率下获得视频帧的装置;用于基于与所述视频帧相关联的空间、时间和译码统计来确定所述视频帧的复杂性值的装置;用于基于所述视频帧的复杂性值来从所述多个预先计算的qp值选择一qp值的装置;以及用于根据所述选定qp值将所述视频帧从第一位速率再压缩到第二位速率而不具有视频质量的视觉上可察觉损失的装置,所述第二位速率低于所述第一位速率。

在另一实例中,本发明是针对一种存储指令的非暂时性计算机可读媒体,所述指令在被执行时,致使一或多个处理器:存储多个预先计算的qp值,其中基于视频剪辑的数据库以及质量量度来预先计算所述多个预先计算的qp值,以确定用以再压缩视频剪辑中的每一者的最大qp值,其不导致视频质量的视觉上可察觉的损失;在第一位速率下获得视频帧;基于与所述视频帧相关联的空间、时间和译码统计来确定所述视频帧的复杂性值;基于所述视频帧的复杂性值来从所述多个预先计算的qp值选择一qp值;以及根据所述选定qp值将所述视频帧从第一位速率再压缩到第二位速率而不具有视频质量的视觉上可察觉损失,所述第二位速率低于所述第一位速率。

在附图和下文描述中陈述本发明的一或多个实例的细节。本发明的其它特征、目标和优点将从所述描述和图式,且从所附权利要求书显而易见。

附图说明

图1是说明可用于实施本发明的用于再压缩、编码和/或转码视频数据的技术的实例计算装置的框图。

图2是说明可实施本发明中描述的技术的实例视频再压缩单元的框图。

图3是说明根据本发明中描述的技术的可用于产生再编码复杂性(rec)模型的实例查找表(lut)产生系统的框图。

图4是说明视频再压缩针对存储压紧的实例使用情况的框图。

图5是说明视频再压缩针对视频共享的实例使用情况的框图。

图6是说明视频再压缩针对实况视频记录的实例使用情况的框图。

图7是说明在给定位速率下具有不同质量水平的不同视频剪辑的实例速率失真曲线的曲线图。

图8是说明本发明中描述的视频再压缩技术的实例性能水平的曲线图。

图9是说明本发明中描述的视频再压缩技术的实例操作的流程图。

具体实施方式

本发明描述用于执行几乎视觉无损视频再压缩的技术。所揭示的技术产生具有相对较小位速率和相对较小文件大小的视频帧,同时大致保持与最初记录的视频帧相同水平的视频质量。一般来说,视频帧的再压缩取输入视频帧,且产生所述视频帧的具有相同或较低位速率的第二副本。所提出的技术,也被称作“vzip”,解决了与视频帧的原始记录相比,在视觉质量上不具有可察觉损失的情况下再压缩视频帧(即,视觉无损再压缩)的问题。

较高分辨率、帧速率和位速率下的视频记录产生较大的视频剪辑。举例来说,在50mbps下记录的每分钟4k30(4k,30帧每秒)视频增加了375mb的数据,这可快速填满装置上的存储器。另外,大视频剪辑难以上载到网站和服务器。这在存储器和无线信道带宽非常珍贵的移动装置上尤其如此。

可使用简单转码来降低视频帧的位速率,但所揭示的技术所解决的额外约束条件是维持视频内容的视觉保真度。此外,所揭示的技术提供视频帧的单步再压缩,其包含每一视频帧的单次解码和编码。以此方式,视频帧的解码或编码中的多次重复是不必要的。在其它实例中,代替于改变视频位速率,可改变分辨率、帧速率、译码标准或其它视频编解码器特征,同时维持视觉保真度。

图1是说明可用于实施本发明的用于再压缩、编码和/或转码视频数据的技术的实例计算装置2的框图。计算装置2可包括例如个人计算机、桌上型计算机、膝上型计算机、平板计算机、计算机工作站、视频游戏平台或控制台、无线通信装置、移动电话(例如,蜂窝式电话或卫星电话)、陆线电话、因特网电话、数字相机、因特网连接的相机、手持式装置(例如,便携式视频游戏装置或个人数字助理(pda))、个人音乐播放器、视频播放器、显示装置、电视、电视机顶盒、服务器、中间网络装置、主机计算机,或处理和/或显示视频和/或图形数据的任何其它类型的装置。

如图1的实例中所说明,计算装置2可包含用户输入接口4、中央处理单元(cpu)6、存储器控制器8、系统存储器10、视频再压缩单元12、显示器18、总线20和22、相机21以及视频处理器23。在一些情况下,图1中所示的cpu6、存储器控制器8、视频再压缩单元12和视频处理器23可在芯片上,例如在芯片上系统(soc)设计中。用户输入接口4、cpu6、存储器控制器8和视频再压缩单元12可使用总线20彼此通信。存储器控制器8和系统存储器10也可使用总线22彼此通信。在其中计算装置2包括无线通信装置的实例中,计算装置2还可包含无线通信接口(未图示)。

总线20、22可为多种总线结构中的任一者,例如第三代总线(例如,超传输(hypertransport)总线或无限带宽(infiniband)总线)、第二代总线(例如,高级图形端口总线、周边组件互连(pci)高速总线,或高级exentisible接口(axi)总线)或另一类型的总线或装置互连件。应注意,图1中所示的不同组件之间的总线和通信接口的特定配置仅是示范性的,且具有相同或不同组件的计算装置和/或其它图形处理系统的其它配置可用于实施本发明的技术。

cpu6可包括控制计算装置2的操作的通用或专用处理器。用户可将输入提供到计算装置2以致使cpu6执行一或多个软件应用程序。在cpu6上执行的软件应用程序可包含(例如)操作系统、字处理器应用程序、电子邮件应用程序、电子数据表应用程序、媒体播放器应用程序、视频游戏应用程序、图形用户接口应用程序或另一程序。用户可经由一或多个输入装置(未图示)(例如,键盘、鼠标、麦克风、触摸垫或经由用户输入接口4耦合到计算装置2的另一输入装置)将输入提供到计算装置2。

存储器控制器8促进数据进出系统存储器10的传送。举例来说,存储器控制器8可接收存储器读取和写入命令,且服务关于存储器系统10的此类命令,以便为计算装置2中的组件提供存储器服务。存储器控制器8经由存储器总线22以通信方式耦合到系统存储器10。尽管在图1中将存储器控制器8说明为与cpu6和系统存储器10两者分开的处理模块,但在其它实例中,存储器控制器8的一些或全部功能性可实施在cpu6和系统存储器10中的一或两者上。

系统存储器10可存储可由cpu6存取以供执行的程序模块和/或指令和/或供在cpu6上执行的程序使用的数据。另外,系统存储器10可存储由视频处理器23编码的视频数据。此外,根据本发明的技术,系统存储器10可经配置以存储已由视频再压缩单元12再压缩的视频数据。系统存储器10可存储窗口管理器应用程序,其由cpu6用来在显示器18上呈现图形用户接口(gui)。另外,系统存储器10可存储用户应用程序以及与所述应用程序相关联的应用程序表面数据。系统存储器10可另外存储由计算装置2的其它组件使用和/或产生的信息。系统存储器10可包含一或多个易失性或非易失性存储器或存储装置,例如随机存取存储器(ram)、静态ram(sram)、动态ram(dram)、只读存储器(rom)、可擦除可编程rom(eprom)、电可擦除可编程rom(eeprom)、快闪存储器、磁性数据媒体或光学存储媒体。

一般来说,视频处理器23可经配置以编码和解码视频数据。举例来说,视频处理器23可经配置以编码存储在系统存储器10中的视频。另外,视频处理器23可经配置以编码来自由相机21、cpu6和/或视频数据的另一来源(例如图形处理单元(gpu))产生的像素值的视频数据。如将在下文更详细地阐释,视频处理器23可经配置以根据本发明的技术来编码和/或转码视频数据。

视频处理器23可经配置以根据视频压缩标准,例如itu-th.265、高效视频译码(hevc)标准,来编码和解码视频数据。hevc标准文献作为itu-th.265系列h公布:视听和多媒体系统,视听服务的基础架构-移动视频的译码,高效视频译码,国际电信联盟(itu)的电信标准化部门,2015年4月。本发明中描述的技术也可根据hevc标准的扩展来操作。或者或另外,视频处理器23可根据其它专有或业界标准来操作,所述标准例如itu-th.264标准(或者被称作mpeg-4第10部分,高级视频译码(avc)),或此类标准的扩展。然而,本发明的技术不限于任何特定译码标准。视频压缩标准的其它实例包含itu-th.261、iso/iecmpeg-1视觉、itu-th.262或iso/iecmpeg-2视觉、itu-th.263、iso/iecmpeg-4视觉和itu-th.264(也称为iso/iecmpeg-4avc),包含其可缩放视频译码(svc)和多视图视频译码(mvc)扩展。

一般来说,hevc标准描述视频帧或图片可划分成树块序列或包含亮度和色度样本两者的最大译码单元(lcu)。位流内的语法数据可定义lcu的大小,lcu是就像素数目来说的最大译码单位。切片包含按译码次序的若干连续树块。视频帧或图片可被分割成一或多个切片。每一树块可根据四叉树分裂成若干译码单元(cu)。一般来说,四叉树数据结构每cu包含一个节点,其中根节点对应于所述树块。如果cu分裂成四个子cu,那么对应于cu的节点包含四个叶节点,其中的每一者对应于所述子cu中的一者。

四分树数据结构的每一节点可提供用于对应cu的语法数据。举例来说,四叉树中的节点可包含分裂旗标,其指示对应于所述节点的所述cu是否分裂成子cu。用于cu的语法元素可递归地定义,且可取决于cu是否分裂成子cu。如果cu未进一步分裂,那么将其称作叶cu。在本发明中,叶cu的四个子cu也将被称作叶cu,即使不存在原始叶cu的明确分裂时也是如此。举例来说,如果16×16大小的cu不进一步分裂,那么四个8×8子cu也将被称作叶cu,尽管16×16cu从未分裂。

cu具有与h.264标准的宏块类似的目的,除了cu不具有大小区别。举例来说,树块可分裂成四个子节点(也称为子cu),且每一子节点又可为父节点,且可分裂成另外四个子节点。最后未分裂的子节点(被称作四叉树的叶节点)包括译码节点,也被称作叶cu。与经译码位流相关联的语法数据可定义树块可分裂的最大次数,被称作最大cu深度,且还可定义译码节点的最小大小。因此,位流还可定义最小译码单元(scu)。本发明使用术语“块”来指hevc的上下文中的cu、pu或tu中的任一者,或者其它标准的上下文中的类似数据结构(例如,其在h.264/avc中的宏块和子块)。

cu包含译码节点和与所述译码节点相关联的预测单元(pu)和变换单元(tu)。cu的大小对应于译码节点的大小,并且形状必须是正方形。cu的大小范围可从8×8像素至多达具有64×64像素或更大像素的最大值的树块的大小。每一cu可含有一或多个pu以及一或多个tu。举例来说,与cu相关联的语法数据可描述cu分割成一或多个pu。分割模式可在cu被跳过还是经直接模式编码、帧内预测模式编码或帧间预测模式编码之间不同。pu可分割成非正方形形状。举例来说,与cu相关联的语法数据还可描述cu根据四叉树到一或多个tu的分割。tu的形状可为正方形或非正方形(例如,矩形)。

hevc标准允许根据tu变换,tu可针对不同cu而有所不同。tu的大小通常是基于针对经分割lcu定义的给定cu内的pu的大小而确定,但是情况可能并不总是如此。tu通常与pu大小相同或小于pu。在一些实例中,对应于cu的残余样本可使用一种被称为“残余四叉树”(rqt)的四叉树结构来细分成较小单元。rqt的叶节点可被称为变换单元(tu)。可变换与tu相关联的像素差值以产生变换系数,所述变换系数可经量化。

叶cu可包含一或多个预测单元(pu)。一般来说,pu表示对应于相对应的cu的全部或一部分的空间区域,并且可包含用于检索pu的参考样本的数据。此外,pu包含与预测有关的数据。举例来说,当pu经帧内模式编码时,用于pu的数据可包含在残余四分树(rqt)中,残余四分树可包含描述用于对应于pu的tu的帧内预测模式的数据。作为另一实例,当pu经帧间模式编码时,pu可包含定义pu的一或多个运动向量的数据。举例来说,定义pu的运动向量的数据可描述运动向量的水平分量、运动向量的垂直分量、运动向量的分辨率(例如,四分之一像素精度或八分之一像素精度)、运动向量指向的参考图片和/或运动向量的参考图片列表。

具有一或多个pu的叶cu还可包含一或多个变换单元(tu)。变换单元可使用rqt(也称为tu四叉树结构)来指定,如上文所论述。举例来说,分裂旗标可指示叶cu是否分裂成四个变换单元。接着,每一变换单元可进一步分裂成更多个子tu。当tu未进一步分裂时,其可被称作叶tu。通常,对于帧内译码,属于一叶cu的所有叶tu共享相同的帧内预测模式。也就是说,通常应用相同的帧内预测模式来计算叶cu的所有tu的预测值。对于帧内译码,视频编码器可使用帧内预测模式将每一叶tu的残余值计算为cu的对应于tu的部分与原始块之间的差。tu不一定限于pu的大小。因此,tu可大于或小于pu。对于帧内译码,pu可与同一cu的对应叶tu处于相同位置。在一些实例中,叶tu的最大大小可对应于对应叶cu的大小。

此外,叶cu的tu还可与相应的四分树数据结构(被称作残余四分树(rqt))相关联。就是说,叶cu可包含指示叶cu如何分割成tu的四分树。tu四叉树的根节点一般对应于叶cu,而cu四叉树的根节点一般对应于树块(或lcu)。未经分裂的rqt的tu被称作叶tu。一般来说,本发明分别使用术语cu和tu来指代叶cu和叶tu,除非另有指出。

视频序列通常包含一系列视频帧或图片。图片群组(gop)一般包括一系列一或多个视频图片。gop可包含gop的标头、图片中的一或多者的标头或其它地方中的语法数据,其描述gop中包含的图片数目。图片的每一切片可包含描述用于相应切片的编码模式的切片语法数据。视频处理器23通常对个别视频切片内的视频块进行操作以便对视频数据进行编码。视频块可对应于cu内的译码节点。视频块可具有固定或变化的大小,并且根据指定译码标准可在大小上有所不同。

作为一实例,hevc标准支持各种pu大小的预测。在使用cu的pu进行帧内预测性或帧间预测性译码之后,视频处理器23可计算cu的tu的残余数据。pu可包括描述在空间域(也称为像素域)中产生预测性像素数据的方法或模式的语法数据,且tu可包括在对残余视频数据应用变换(例如,离散余弦变换(dct)、整数变换、小波变换或概念上类似变换)之后变换域中的系数。所述残余数据可对应于未经编码图片的像素与对应于pu的预测值之间的像素差。视频处理器23可形成包含用于cu的残余数据的tu,且接着变换tu以产生用于cu的变换系数。

在任何用以产生变换系数的变换之后,视频处理器23可执行变换系数的量化。量化大体上指代对变换系数进行量化以可能减少用以表示变换系数的数据的量从而提供进一步压缩的过程。量化过程可减少与系数中的一些或全部相关联的位深度。举例来说,n位值可在量化期间被下舍入到m位值,其中n大于m。

在量化之后,视频处理器23可扫描变换系数,从包含经量化变换系数的二维矩阵产生一维向量。扫描可设计成将较高能量(且因此较低频率)的系数放置在阵列的前面,并且将较低能量(且因此较高频率)的系数放置在阵列的后面。在一些实例中,视频处理器23可利用预定义扫描次序来扫描经量化变换系数以产生可被熵编码的串行化向量。在其它实例中,视频处理器23可执行自适应扫描。

在扫描经量化变换系数以形成一维向量之后,视频处理器23可对所述一维向量进行熵编码,例如,根据上下文自适应可变长度译码(cavlc)、上下文自适应二进制算术译码(cabac)、基于语法的上下文自适应二进制算术译码(sbac)、概率区间分割熵(pipe)译码或另一熵编码方法。视频处理器23还可对与经编码的视频数据相关联的语法元素进行熵编码以供视频解码器在对视频数据进行解码时使用。

相机21可包含镜头和相机传感器,其经配置以检测光,并产生彩色像素值(例如rgb值)。相机21可进一步包含图像信号处理器。在一些实例中,所述图像信号处理器将一起包含在与所述镜头和相机传感器相同的封装中。在其它实例中,所述图像信号处理器可与镜头和相机传感器分开封装。所述图像信号处理器可经配置以接收原始传感器数据,将所述原始传感器数据转换为经压缩数据格式(例如jpeg文件),并将所得经压缩数据存储在图片文件中。在其它实例中,所述图像信号处理器可经配置以保持原始传感器数据,并将所述原始传感器数据保存在单独的文件。

在其它实例中,相机21可经配置以捕获视频。在此实例中,相机21可将图像传感器所捕获的视频数据提供到视频处理器23。视频处理器23可经配置以根据视频压缩标准,例如上述视频压缩标准,来压缩/编码所捕获的视频数据。

在本发明的另一实例中,相机21可结合计算装置2的一或多个其它组件形成已连接相机(或因特网已连接相机)的一部分。当配置为已连接相机时,计算装置2(包含相机21)可经配置以捕获视频数据,以及(使用有线或无线连接)将所捕获的视频数据流式传输到一或多个其它连接网络的裝置。

cpu6、相机21和/或视频处理器23可将视频数据存储在帧缓冲器15中。帧缓冲器15可为独立存储器或可分配在系统存储器10内。显示接口可从帧缓冲器15检索数据,并配置显示器18以显示由视频数据表示的图像。在一些实例中,显示接口可包含经配置以将从帧缓冲器检索的数字值转换为可由显示器18消耗的模拟信号的数/模转换器(dac)。在其它实例中,显示接口可将数字值直接传递到显示器18以供处理。显示器18可包含监视器、电视机、投影装置、液晶显示器(lcd)、等离子显示面板、发光二极管(led)阵列(例如有机led(oled)显示器)、阴极射线管(crt)显示器、电子纸、表面传导电子发射显示器(sed)、激光电视显示器、纳米晶体显示器或另一类型的显示单元。显示器18可集成在计算装置2内。举例来说,显示器18可为移动电话的屏幕。或者,显示器18可为经由有线或无线通信链路耦合到计算装置2的独立装置。举例来说,显示器18可为经由电缆或无线链路而连接到个人计算机的计算机监视器或平板显示器。

视频再压缩单元12经配置以指导和致使视频数据的再压缩、编码和/或转码。根据本发明的技术,视频再压缩单元12可经配置以确定再压缩、编码和/或转码视频数据的位速率,使得经再压缩、经编码、和/或经转码的视频数据的最终位速率处于比原始视频数据低的位速率。在本发明的一个实例中,视频再压缩单元12可经配置以确定再压缩/编码/转码视频数据的最终位速率,使得与原始视频数据相比,所得视频看起来是或非常接近看起来是无损的。视频再压缩单元12可经配置以确定位速率和其它编码参数,并指令视频处理器23根据所述所确定的参数来转码和/或编码视频数据。视频再压缩单元12可配置为在处理器(例如cpu6、图形处理单元、数字信号处理器等)上执行的软件,配置为在处理器上执行的固件,配置为专用硬件,或配置为上述各项的任何组合。

如下文将更详细地论述,本发明的转码和编码技术可导致经转码的视频数据,其大小(即,依据位数)比原始视频数据小,同时仍维持高视觉质量。因此,较长长度的高分辨率视频(例如hd视频、1080p、1080i、4k等)可存储在存储受限的移动装置(例如智能电话、平板计算机、膝上型计算机、已连接相机等)上。另外,在带宽受限的移动装置(例如智能电话、平板计算机、膝上型计算机、已连接相机等)上上载和/或发射高分辨率视频所花费的时间可减少。

现将描述与使用移动装置来记录、存储和发射视频文件有关的若干问题。高清视频数据,包含所谓的4k视频数据,常常导致非常大的文件大小。视频越长,存储所述视频所需的存储量越大。类似地,产生4k60(4k,60帧每秒)数据的已连接相机可产生非常大的大小的视频文件。举例来说,根据h.264视频压缩标准产生的4k视频通常使用48mbps(兆位每秒)的位速率。48mbps下,一秒的h.2644k视频使用6mb的存储空间。48mbps下,一分钟的h.2644k视频使用360mb的存储空间。48mpbs下,一小时的h.2644k视频使用21.6gb的存储空间。许多移动装置仅具有16gb的存储或更少。由此,较长长度的4k视频的存储在许多裝置上可能较难或甚至不可能。

类似地,将此类大视频文件传送离开移动装置也可能较困难。当使用常规无线服务(例如4g或lte)时,此类大文件大小导致非常长的上载时间。此外,针对移动装置的无线服务在可供用户每月使用的带宽量方面常常受限。因此,大视频文件的上载变得较不可行。

鉴于这些缺点,本发明提出视频再压缩、编码和转码技术,其允许以最小的视觉质量损失来创建较小的视频文件,以便缓解存储和上载使用情况。

下文的表1概述本发明的技术的各种使用情况。分别相对于图4到6更详细地描述表1中所包含的使用情况。

表1

作为一个实例,移动装置上可用的受限存储器可导致存储压紧问题。也就是说,当尝试存储4k或其它hd视频时,移动装置快速用完存储器。当前,移动装置的用户限于记录较少、较短视频。这限制了移动装置的优质特征的使用(即,编码和解码hd和4k视频的能力)。本发明的再压缩技术(还被称作“vzip”)可用于编码、再压缩和/或转码视频数据以产生较小的文件大小。

作为另一使用情况,本发明的技术可用于视频数据的共享和上载。当前,大视频文件花费较长的时间来上载。另外,常常存在与上载大文件相关联的高数据使用成本。当前,将视频转码成较低分辨率、帧速率(即,每秒帧数(fps))和位速率来减轻与视频上载有关的问题。然而,当前解决方案导致差质量视频。本发明的技术允许以视频质量的最小损失,在较低位速率下编码/转码/再压缩视频文件。

作为另一使用情况,本发明的技术可用于视频流式传输(例如使用已连接相机)。当以hd和/或4k记录时,当前视频流式传输装置快速填满存储。另外,流式传输的视频的质量较差,因为除低位速率之外,经流式传输的视频通常以低视觉质量编码。并且,本发明的技术允许以视频质量的最小损失,在较低位速率下转码/再压缩视频文件。

一般来说,本发明的技术涉及以下各项中的一或多者:视频的再压缩;视频的再压缩以用于进一步转码;视频的1遍压缩(编码)以用于实况流式传输;和/或视频的1遍压缩(编码)以用于记录(例如存储)和流式传输。

视频再压缩单元12可经配置以控制视频处理器23以较低位速率再压缩、编码和/或转码视频数据。在此上下文中,较低位速率是比原始视频数据低的位速率或比通常将用于hd和/或4k视频的位速率(例如由视频压缩标准的技术指定的位速率)低的位速率。明确地说,视频再压缩单元12可经配置以便以仅产生最小视觉质量损失的方式,在较低位速率下再压缩/编码/转码视频数据。下文描述用于视频译码的实例速率控制过程的论述。

在一个实例中,将原始视频序列的帧分割成矩形区或块,其可在帧内模式(i模式)或帧间模式(p模式或b模式)下编码。使用例如dct译码等某一种类的变换译码对块进行译码。然而,基于纯变换的译码仅减少特定块内的像素间相关,而不考虑像素的块间相关。基于变换的译码还产生用于发射的高位速率。当前数字图像译码标准(例如hevc)还利用减少块之间的像素值相关的某些方法。

一般来说,从先前译码和发射的帧中的一者中预测在p模式下编码的块。块的预测信息由二维(2d)运动向量表示。对于在i模式下编码的块,使用从同一帧内的已经编码的相邻块的空间预测形成经预测的块。预测误差e(x,y),即,正被编码的块i(x,y)与经预测块p(x,y)之间的差异,表示为变换基础函数fij(i,j)的加权和:

通常在8×8(n=8)或4×4(n=4)块基础上执行变换。随后量化权重cij,被称作预测误差系数:

lij=q(cij,qp),(2)

其中lij被称为经量化系数或层级。量化操作引入信息的损耗。另一方面,经量化系数可用较小数目的位来表示。通过调整量化参数(qp)的值来控制压缩层级(信息的损耗)。较低qp值通常产生较少失真,但可需要较多的位,且因此需要较高位速率。较高qp值通常产生较多失真,但可需要较少位,且因此需要较低位速率。因而,qp的选择为可借以获得失真与位速率之间的平衡点的一种技术。

经量化变换系数与运动向量和某一控制信息一起形成完整经译码序列表示,并且被称作语法元素。在从视频编码器发射到视频解码器之前,可对语法元素进行熵译码,以便进一步减少其表示所需要的位数目。

在视频解码器处,通过首先以与由视频编码器执行的相同方式构造其预测,并通过将经压缩预测误差添加到所述预测来获得当前帧中的经重构块。通过使用去量化系数,通过如下执行逆变换来找到经压缩预测误差:

如下通过逆量化来计算经去量化(也被称为经重构)的系数rij:

rij=q-1(lij,qp)(4)

经重构帧r(x,y)与原始帧i(x,y)之间的差被称为重构误差。

hevc标准为视频编码器的实施者保留关于量化的决策、运动向量的选择以及哪一帧应用于预测。速率失真理论将有损压缩目标形式化为最小化译码失真的目标,其为根据所选量度的经受用于译码数据的速率的约束的初始数据与经压缩数据之间的距离度量。因此,在一些实例中,视频编码器的目标是为每一帧寻找语法元素的值,使得预测误差e(x,y)与预测误差e~(x,y)的经重构版本之间的均方误差(mse)失真d经受用于译码语法元素的速率r的约束条件而最小化:

受制于r<r预算.(5)

其它附加失真量度可用于代替mse,例如,经活动加权的mse。等式(5)中的速率受约束问题可通过借拉格朗日乘数(lagrangemultiplier)λ“合并”速率和失真而转化成等效无约束问题来解决。在本发明中,拉格朗日乘数λ将被称作速率控制参数。所述无约束问题变成语法元素的值的确定(针对固定λ),其产生定义如下的最小总拉格朗日成本

速率控制参数λ可被看作用于确定速率与失真之间的平衡点的参数。λ的低值有利于最小化失真胜过速率,且λ的高值有利于最小化速率胜过失真。在极限处,λ=0,失真得以最小化;λ→∞,速率得以最小化。

如从以上论述可看出,用于降低视频序列的位速率同时还引入一些损失的一种技术是增加qp的值。根据本发明的技术,视频再压缩单元12可经配置以指令视频处理器23使用比将已经使用或曾经使用过的qp值高的qp值来编码/转码视频数据,以最初编码hd和/或4k视频。在本发明的一个实例中,视频再压缩单元12可经配置以确定用于使用预存储在计算装置2上的查找表来编码/转码视频数据的qp值。所述查找表可指示用于多个不同qp值的视频数据的视觉质量的损失量。查找表中的视觉质量量度的损失可基于视频数据的其它特性,包含视频数据的帧速率、分辨率和复杂性。

视频再压缩单元12可经配置以确定将用于编码/转码的qp值,使得视频质量的所得损失低于某一阈值。在一个实例中,阈值可被称作感知视觉无损阈值,且可基于感知视觉质量量度。感知视觉无损阈值和感知视觉质量量度可为预定的,使得它们表示人类眼睛不可检测的和/或很少可检测的视觉质量的损失量。在其它实例中,感知视觉无损阈值和感知视觉质量量度可为预定的,使得它们表示在给定hd和/或4k视频的期望的情况下,平均用户可接受的视觉质量的损失量。视频再压缩单元12可经配置以选择qp值,且因此量化程度,使得视觉质量的所得损失仍低于感知视觉无损阈值。

图2是说明可实施本发明中描述的技术的来自图1的视频再压缩单元12的实例的框图。一般来说,视频再压缩单元12经配置以在单个步骤中再压缩视频剪辑,而无视觉质量的可察觉损失。此外,视频再压缩单元12经配置以提供视频剪辑的单步再压缩,其包含视频剪辑的每一帧的单次解码和编码,使得帧的解码或编码中不存在重复。可将几乎视觉无损的再压缩定义为产生在常规重放速度下在人类眼睛看起来相同的视频剪辑的再压缩。更具体地说,可基于为对应视频质量量度定义的视觉无损阈值来测量几乎视觉无损的再压缩。

所揭示的再压缩技术导致具有相同或较低位速率的视频帧。在一些实例中,可改变其它视频剪辑参数,例如分辨率、帧速率、译码标准和其它视频编解码器特征,来实现几乎视觉无损的压缩。可在使用量化参数/步骤/索引/值的任何视频标准(包含但不限于hevc、h.264、mpeg-4、mpeg-2、h.263、vc-1)或专有编解码器(包含但不限于vp9、vp8)来编码视频剪辑。

在图2的所说明实例中,视频再压缩单元12包含解码器30、qp选择单元32、编码器34,以及再编码复杂性(rec)模型36。一般来说,所揭示的再压缩技术包含在线步骤和离线步骤。举例来说,视频再压缩单元12可基于离线产生的rec模型36来执行视频帧的在线再压缩。下文相对于图3更详细地描述rec模型36的离线产生。

根据本发明中描述的再压缩技术,解码器30从系统存储器10检索以第一位速率(例如针对4k视频的48mbps)编码的视频帧,并解码所述视频帧。解码器30可记录经解码视频帧的qp值,并将经解码的视频帧传递到yuv统计计算库,其提取表征场景的场景统计。解码器30接着将与经解码视频帧相关联的场景统计(例如yuv统计)以及经解码视频帧的qp值发送到qp选择单元32。qp选择单元32选择用以以较低第二位速率再压缩视频帧的新qp值,而不具有视频质量视觉上可察觉的损失。视频编码器34接着可以第二位速率,根据选定qp值来编码视频帧。

基于两组统计来实现本文所述的视觉无损压缩:(1)来自yuv缓冲器中的经解码视频帧的yuv或场景统计,以及(2)来自编码器宏块信息(mbi)的位流统计(有时被称作维纳斯(venus)统计)。位流统计是编码统计,且可包含例如帧速率(例如fps)、复杂性、qp、位速率、译码模式等视频特性。qp选择单元32将位流统计与场景统计组合,以基于经解码视频帧的qp值来选择视觉无损qp值。接着用此所估计的qp来再压缩视频帧。可剖析再编码的视频帧来获得其mbi,且计算经编码位流统计,并将其反馈回到qp选择单元32。视频再压缩单元12在速率控制关闭的情况下操作,因为所揭示的技术选择在逐帧基础上新的qp值。

qp选择单元32可从存储为rec模型36的预先计算的qp值选择用于视频帧的再压缩的新的qp值。举例来说,视频再压缩单元12的qp选择单元32可基于与来自视频解码器30的视频帧相关联的场景统计(例如yuv统计)以及与来自视频编码器34的先前编码的视频帧相关联位流统计,来确定视频帧的rec值或再压缩统计。

以此方式,可使用从原始图片信息(例如yuv或场景统计)以及在视频剪辑的先前帧的编码期间搜集的信息(例如位流统计)产生的空间、时间和译码统计,来产生rec值。在一个实例中,原始图片信息可包含纹理量度、亮度量度和时间量度,其对应于三个感知特征,即纹理掩蔽、亮度掩蔽和时间掩蔽。在此实例中,译码复杂性统计可包含从在编码过程期间搜集的信息导出的空间和运动复杂性量度。接着可通过使用包含但不限于借助于获得个别量度的乘积、汇集或标量向量机(svm)的组成部分的方法,将再压缩统计导出为个别空间、时间和译码统计的组合。

qp选择单元32基于为视频帧确定的rec值来从rec模型36选择qp值。rec模型36可将rec值或再压缩统计映射到几乎视觉无损再压缩的最大qp值。可以若干方式来实施rec模型36,包含使用查找表(lut)或函数。在一个实例中,rec模型36可包括给定qp值下由视频帧的rec值作索引的增量qplut。在另一实例中,rec模型36可包括在给定qp值下,基于视频帧的rec值返回增量qp值的函数。qp选择单元32接着基于所述增量qp值以及视频帧的先前qp值来计算以此再压缩视频帧的新qp值。

在图2中示出的实例中,本发明的几乎视觉无损视频再压缩技术执行以下各项:解码视频剪辑;产生再压缩统计(例如rec值);使用从再压缩统计到qp值的映射(例如rec模型36),以寻找产生视觉上无损的再压缩视频剪辑的最高qp值;以及再编码所述视频剪辑。在其它实例中,本发明的几乎视觉无损视频再压缩技术可执行以下各者中的一或多者:去除解码视频剪辑的需要,而是直接将视频再压缩技术应用于原始视频;以不同分辨率、帧速率和位速率产生多个再压缩的视频剪辑;或逐帧而不是对整个剪辑执行压缩。

图3是说明根据本发明中描述的技术的可用于产生rec模型36的实例lut产生系统40的框图。一般来说,可产生rec模型36,以将视频剪辑的rec值映射到可用以再编码视频剪辑而无视频质量的视觉上可察觉的损失的最高增量qp值。lut产生系统40可在视频再压缩单元12和计算装置2外部并与之分开。rec模型36可由lut产生系统40离线产生。在图3的实例中,将rec模型36描述为实施为lut。在其它实例中,rec模型36可实施为数学函数。

在图3中示出的实例中,lut产生系统40包含视频数据库42、编码器44、质量量度单元46和rec计算单元48。可根据基于包含多个视频剪辑的视频数据库42的训练方法来产生rec模型36。在一个实例中,视频数据库42中的每一视频剪辑可由编码器44在某一原始qp值(例如针对h.264的0到51)下编码。质量量度单元46接着以某一范围的qp值来再压缩视频剪辑,并以qp值中的每一者来测量再压缩的视频剪辑的质量量度。通常,在训练方法中仅使用大于视频剪辑的原始qp值(即,非零增量qp值)的qp值。以此方式,质量量度单元46可确定可再编码视频剪辑而无给定内容的视频质量和视频剪辑的原始qp值的视觉上可察觉损失的最高qp值。

质量量度单元46可使用许多不同视频质量度量,测量在每一qp值下再压缩的视频剪辑的视觉质量,包含但不限于目标视频质量量度,如视频质量量度(vqm)、视觉信息保真度(vif)、结构类似性(ssim)及其变化形式、量化参数步长(qstep),以及峰值信噪比(psnr)/均方误差(mse)。质量量度单元46接着可将质量量度与为所述质量量度定义的视觉无损阈值(vlt)进行比较。假定视频质量量度随着视频质量增加而增加,如果再压缩的视频剪辑的质量量度大于或等于vlt,那么可确定再压缩的视频剪辑是视觉无损的。在一个实例中,可使用利用双刺激连续质量标度(dscqs)方法的主观测试来确定vlt。

rec计算单元48可使用为视频剪辑导出的空间、时间和译码统计来产生所确定的最高qp值下视频剪辑的rec值。从这些步骤所产生的所有数据,为每个qp值产生包含针对所述范围的qp值的rec值或再压缩统计的均值和方差的rec模型36。以此方式,rec模型36包含多个预先计算的qp值,其可由视频再压缩单元12用来确定以此再压缩视频帧而无视频质量的视觉上可察觉损失的最大qp值。

图4是说明来自图1的计算装置2的视频再压缩单元12所执行的针对存储压紧的视频再压缩的实例使用情况的框图。在图4中说明的存储压紧使用情况中,计算装置2的视频再压缩单元12可经配置最初以将以较高第一位速率编码且以第一文件大小存储的视频帧再压缩到较低的第二位速率(即,低于第一位速率),以供以小于第一文件大小的第二文件大小存储。在一些实例中,第二位速率可比第一位速率低30-70%,且第二文件大小可比第一文件大小小30-70%。

在图4中示出的实例中,视频编码器52从视频源50接收原始视频帧,以较高的第一位速率(例如48mbps)编码视频帧,并将所述视频帧存储在系统存储器10中。视频编码器52也可将与经编码的视频帧相关联的位流统计存储在系统存储器10中。在一些实例中,视频编码器52可包括计算装置2的视频处理器23的编码器部分。视频源50可包括计算装置2的相机21或外部相机。

根据所揭示的技术,视频再压缩单元12所识别的触发条件可触发视频帧的再压缩。举例来说,所述触发条件可包括计算装置2的特性,例如预设或周期性定时器的到期、低使用时间(例如整夜)的检测,或计算装置2插上电源的检测。所述触发条件还可包括计算装置2的用户输入,例如用户明确选择何时执行再压缩,或用户使用在计算装置2上执行的某一应用程序或“app”来请求共享、上载或流式传输视频帧。在一些实例中,可针对后台中的所有视频文件自动执行所存储的视频帧的再压缩,以便使得对用户体验强加的影响最小。举例来说,可在计算装置2插上电源并充电的每个夜晚再压缩所有新记录的视频文件。

在识别触发条件后,视频再压缩单元12即刻获得将再压缩的视频帧。如上文所描述,视频再压缩单元12可经配置以:解码以第一位速率编码的视频帧;选择以此再压缩视频帧的新qp值,使得再压缩的视频帧与原始视频帧相比,几乎是视觉无损的;以及以较低的第二位速率,根据选定qp值来再编码视频帧。视频再压缩单元12接着将以第二位速率再压缩的视频帧存储在系统存储器10中。

图5是说明来自图1的计算装置2的视频再压缩单元12所执行的针对视频共享的视频再压缩的实例使用情况的框图。在图5中说明的视频共享使用情况中,本发明的视频再压缩技术结合基于在计算装置2上执行的视频共享应用程序的转码设置的视频转码来起作用。计算装置2的视频再压缩单元12可经配置以将最初以较高第一位速率编码的视频帧转码和再压缩到较低的第二位速率,以供存储和后续共享、上载,或经由视频共享应用程序流式传输。

在图5中示出的实例中,视频编码器52从视频源50接收原始视频帧,以较高的第一位速率编码视频帧,并将所述视频帧存储在系统存储器10中。视频编码器52也可将与经编码的视频帧相关联的位流统计存储在系统存储器10中。在一些实例中,视频编码器52可包括计算装置2的视频处理器23的编码器部分。视频源50可包括计算装置2的相机21或外部相机。

根据所揭示的技术,视频帧的转码和再压缩可由用户使用在计算装置2上执行的视频共享应用程序(“视频应用程序”)54来请求共享、上载或流式传输所存储的视频文件而触发。视频应用程序54可将向视频再压缩单元12提供转码设置,其指示将经由视频应用程序54共享、上载或流式传输的视频剪辑的分辨率、帧速率(例如fps)或目标位速率中的一或多者。在识别触发条件并接收转码设置后,视频再压缩单元12即刻获得将转码和再压缩的视频帧。

视频再压缩单元12可经配置以:解码以第一位速率编码的视频帧;根据从视频应用程序54接收到的转码设置来修改视频帧的设置;选择以此再压缩视频帧的新qp值,使得再压缩的视频帧与视频帧的经转码内容相比几乎是视觉无损的;以及以较低的第二位速率,根据选定qp值,以经修改的设置来再编码视频帧。视频再压缩单元12接着将以第二位速率再压缩的经转码的视频帧存储在系统存储器10中。

在一些实例中,第二位速率可低于第一位速率且小于或等于视频共享应用程序的转码设置所指定的目标位速率。另外,取决于目标位速率,与视频帧的经转码内容相比,经转码且再压缩的视频帧可几乎为视觉无损的。在此情况下,经转码的内容是在将视频帧解码并转码到视频共享应用程序的转码设置所指定的分辨率和帧速率之后所产生的原始内容。

图6是说明来自图1的计算装置2的视频再压缩单元12所执行的针对实况视频记录的视频再压缩的实例使用情况的框图。在图6中说明的实况记录使用情况中,计算装置2的视频再压缩单元12可经配置以将第一位速率下的实况记录的视频帧压缩到较低的第二位速率,以供存储和/或发射。在一些情况下,视频再压缩单元12可产生视频帧的两个经压缩版本,一个处于较低第二位速率以供存储,且另一者处于更加低的第三位速率以供发射。

在图6中示出的实例中,视频再压缩单元12以较高的第一位速率直接从视频源50接收原始视频帧。根据所揭示的技术,视频再压缩单元12可在存储在系统存储器10中或由计算装置2的发射器(“tx”)56发射之前,执行原始视频帧的压缩。视频再压缩单元12也可将与经编码的视频帧相关联的位流统计存储在系统存储器10中。视频源50可包括计算装置2的相机21或外部相机。

如上文所描述,视频再压缩单元12可经配置以选择以此压缩实况记录的视频帧的qp值,使得经压缩视频帧与原始视频帧相比几乎是视觉无损的,且以较低的第二位速率根据选定qp值来编码所述视频帧。在一个实例中,视频再压缩单元12接着将以第二位速率压缩的视频帧存储在系统存储器10中。第二位速率可比第一位速率低30-70%。在另一实例中,视频再压缩单元12将以第二位速率压缩的视频帧发送到tx56以供发射,例如,视频共享、上载或流式传输。

在另一实例中,可应用本发明的再压缩技术来以较低的第二位速率压缩实况记录的视频帧以供存储,且以更加低的第三位速率压缩相同视频帧以供发射。为了产生视频帧以供发射,视频再压缩单元12可根据视频共享、上载或流式传输的转码设置来修改原始视频帧的设置。举例来说,视频再压缩单元12可修改视频帧的分辨率、帧速率(例如fps)或目标位速率中的一或多者。视频再压缩单元12可经配置以选择以此压缩视频帧的qp值,使得经压缩视频帧与视频帧的经修改内容相比几乎是视觉无损的,且以较低的第三位速率根据选定qp值,以经修改的设置来编码所述视频帧。视频再压缩单元12接着将以第三位速率压缩的视频帧发送到tx56以供发射,例如,视频共享、上载或流式传输。在一些实例中,第三位速率可低于第一位速率和第二位速率,且小于或等于转码设置所指定的目标位速率。

图7是说明在给定位速率下具有不同质量水平的不同视频剪辑的实例速率失真曲线的曲线图。在图7中,说明以1080p记录的视频剪辑60、62、64和66的rd曲线。如可看出,视频剪辑66在较低位速率下具有比其它视频剪辑高的质量(即,峰值信噪比(psnr))。举例来说,如由椭圆68指示,在20mbps的位速率下,视频剪辑60、62、64和66具有从38db到43db的相应质量水平范围。

通常,设定编码器位速率来确保最复杂的视频剪辑实现良好的视频质量。在图7所说明的实例中,如果假定良好视频质量为38db,那么可将编码器位速率设定成20mbps,以确保所有的视频剪辑60、62、64和66实现良好的视频质量水平。如可看出,然而,视频剪辑60、62、64和66可以较低位速率编码,同时仍实现38db的良好视频质量水平。

本发明的技术使用视觉无损阈值来确定对于每一视频剪辑来说可能的位速率降低的量。位速率降低的量取决于给定视频剪辑的内容。举例来说,为了实现38db的视频质量,视频剪辑60可以18mbps的位速率再压缩以实现10%的位速率降低,视频剪辑62可以10mbps的位速率再压缩以实现50%的位速率降低,视频剪辑64可以7mbps的位速率再压缩以实现65%的位速率降低,且视频剪辑66可以3mbps的位速率再压缩以实现85%的位速率降低。

图8是说明本发明中描述的视频再压缩技术的实例性能水平的曲线图。在图8中,将原始视频剪辑1到5的经压缩位速率说明为对角线剥除框,且根据所揭示的技术再压缩的视频剪辑1到5的再压缩的位速率说明为白色框。另外,所揭示的技术所实现的文件大小减小百分比70是针对视频剪辑1到5中的每一者标绘。如可看出,所揭示的技术的文件大小减小百分比70的范围是30%到大于70%,取决于视频剪辑1到5的内容。视频剪辑1到5可以半速度以4k30记录,或实时以1080p30记录。

图9是说明本发明中描述的视频再压缩技术的实例实例操作的流程图。相对于来自图2的视频再压缩单元12来描述图9的实例操作。

一般来说,视频再压缩单元12可再压缩视频帧以进行以下各项中的一或多者:存储在计算装置2的系统存储器10中或由计算装置2发射(例如视频共享、上载或流式传输)。在一个实例中,视频再压缩单元12可再压缩视频帧以供存储,来减少存储器消耗。举例来说,以第一位速率编码的具有第一文件大小的视频帧可存储在系统存储器10中,且以第二位速率再压缩的具有小于第一文件大小的第二文件大小的视频帧可存储在系统存储器10中。在另一实例中,视频再压缩单元12可再压缩所述视频帧以供发射,来减少视频共享、上载或流式传输期间的电力消耗。

根据本发明的技术,视频再压缩单元12最初存储多个预先计算的qp值(80)。预先计算的qp值可作为rec模型36存储。在一些实例中,rec模型36可包括增量qp查找表(lut),其以给定qp值下的视频帧的复杂性值作索引。在其它实例中,rec模型36可包括基于给定qp值下视频帧的复杂性值(例如,rec值)返回增量qp值的函数。在任一格式中,预先计算的qp值可存储在计算装置2的系统存储器10中。如上文相对于图3所描述,可基于视频剪辑的数据库以及质量量度来预先计算多个预先计算的qp值,以确定用以再压缩视频剪辑中的每一者的最大qp值,其不导致视频质量的视觉上可察觉损失。

在操作中,视频再压缩单元12获得处于第一位速率的视频帧(82)。在一个实例中,视频再压缩单元12可从系统存储器10检索以第一位速率编码的视频帧。举例来说,计算装置2可将以第一位速率编码的视频帧存储到系统存储器10。视频再压缩单元12可识别视频帧的再压缩的触发条件,且响应于识别所述触发条件,从系统存储器10检索以第一位速率编码的视频帧,以用于视频帧的再压缩。

所述触发条件可包括计算装置2的特性,例如预设或周期性定时器的到期、低使用时间(例如整夜)的检测后,或计算装置2被插入的检测后。所述触发条件还可包括装置的用户输入,例如用户明确选择何时执行再压缩,或用户使用在计算装置2上执行的某一应用程序或“app”来请求共享、上载或流式传输视频帧。

在另一实例中,视频再压缩单元12可直接从实况视频记录获得视频帧。举例来说,计算装置2可从计算装置2的相机21或从外部相机接收一序列原始视频帧。计算装置2的视频处理器23接着可以第一位速率将所述序列的原始视频帧直接发送视频再压缩单元12,以用于所述视频帧的压缩。

在以第一位速率获得视频帧后,视频再压缩单元12基于与视频帧相关联的空间、时间和译码统计来确定视频帧的复杂性值,例如rec值(84)。举例来说,视频再压缩单元12的qp选择单元32可基于与视频帧相关联的场景统计(例如yuv统计)以及与先前编码的视频帧相关联的位流统计,来确定视频帧的rec值。

视频再压缩单元12接着基于视频帧的复杂性值(例如rec值),从多个预先计算的qp值选择qp值(86)。举例来说,qp选择单元32可从格式化为在视频帧的先前qp值下以视频帧的复杂性值作索引的查找表的rec模型36选择增量qp值。qp选择单元32接着基于增量qp值和先前qp值来计算视频帧的新qp值。

所述多个预先计算的qp值使qp选择单元32能够在一个步骤中为视频帧选择qp值。以此方式,qp选择单元32避免执行为视频帧选择新qp值的多次重复。通过在一个步骤中执行qp选择,且因此视频帧再压缩,本发明的技术可减少计算装置2中的视频再压缩单元12的计算负担和/或电力消耗量。

视频再压缩单元12接着根据选定qp值,将视频帧从第一位速率再压缩到第二位速率,而不具有视频质量的视觉上可察觉损失,所述第二位速率低于所述第一位速率(88)。在一个实例中,视频再压缩单元12的解码器30首先对以第一位速率编码的视频帧进行解码,且视频再压缩单元12的编码器34以第二位速率根据所述选定qp值来再编码所述视频帧。在此实例中,qp选择单元32可基于从解码器30接收到的经解码视频帧的场景统计以及从编码器34接收到的先前编码的视频帧的位流统计,来确定复杂性值(例如rec值)。qp选择单元32接着基于所确定的复杂性值来为视频帧选择qp值。

在另一实例中,视频再压缩单元12的解码器30首先对以第一位速率编码的视频帧进行解码,qp选择单元32修改视频帧的设置,且视频再压缩单元12的编码器34以第二位速率根据所述选定qp值,以经修改的设置来再编码所述视频帧。

在此实例中,qp选择单元32可再次基于从解码器30接收到的经解码视频帧的场景统计以及从编码器34接收到的先前编码的视频帧的位流统计,来确定复杂性值(例如rec值),且接着基于所述所确定的复杂性值来为视频帧选择qp值。另外,qp选择单元32可修改视频帧的分辨率、帧速率或目标位速率中的一或多者,以便转码所述经解码视频帧。结合转码所述视频帧来执行再压缩在使视频帧准备好使用在计算装置2上执行的某一应用程序或“app”进行共享、上载或流式传输时尤其有用。

在另一实例中,视频再压缩单元12执行视频帧从第一位速率到第二位速率的第一压缩,以将所述视频帧存储在系统存储器10中,并且还执行视频帧从第一位速率到第三位速率的第二压缩,以用于传输所述视频帧,所述第三位速率低于所述第一位速率。在一些情况下,第三位速率也可低于第二位速率。在此情况下,视频帧可以第二位速率存储,而与处于第一位速率的原始视频帧相比,不具有视频质量的视觉上可察觉损失。另外,视频帧可以第三位速率传输,而与经修改或经转码的视频帧相比,不具有视频质量的视觉上可察觉损失,以进行共享、上载或流式传输。

将认识到,取决于实例,本文中所描述的技术中的任一者的某些动作或事件可用不同序列来执行,可添加、合并或全部省略所述动作或事件(例如,实践所述技术未必需要所有所描述动作或事件)。此外,在某些实例中,可(例如)通过多线程处理、中断处理或多个处理器同时而非依序地执行动作或事件。

在一或多个实例中,所描述功能可用硬件、软件、固件或其任何组合来实施。如果以软件实施,那么所述功能可作为一或多个指令或代码在计算机可读媒体上存储或传输,并且由基于硬件的处理单元来执行。计算机可读媒体可包含计算机可读存储媒体,其对应于例如数据存储媒体或通信媒体等有形媒体,通信媒体包含促进将计算机程序从一处传送到另一处的任何媒体(例如,根据通信协议)。

以此方式,计算机可读媒体大体上可对应于(1)有形计算机可读存储媒体,其为非暂时性的,或(2)通信媒体,例如信号或载波。数据存储媒体可为可由一或多个计算机或一个或多个处理器存取以检索用于实施本发明中描述的技术的指令、代码和/或数据结构的任何可用媒体。计算机程序产品可包含计算机可读媒体。

作为实例而非限制,此类计算机可读存储媒体可包括ram、rom、eeprom、cd-rom或其它光盘存储装置、磁盘存储装置或其它磁性存储装置、快闪存储器或可用来存储指令或数据结构的形式的期望程序代码并且可由计算机存取的任何其它媒体。并且,任何连接被恰当地称作计算机可读媒体。举例来说,如果使用同轴缆线、光纤缆线、双绞线、数字订户线(dsl)或例如红外线、无线电和微波等无线技术从网站、服务器或其它远程源传输指令,那么同轴缆线、光纤缆线、双绞线、dsl或例如红外线、无线电和微波等无线技术包含在媒体的定义中。然而,应理解,所述计算机可读存储媒体和数据存储媒体并不包含连接、载波、信号或其它暂时性媒体,而是实际上针对非暂时性的有形存储媒体。如本文中所使用,磁盘和光盘包含压缩光盘(cd)、激光光盘、光学光盘、数字多功能光盘(dvd)、软性磁盘和蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘利用激光以光学方式再现数据。以上各项的组合也应包含在计算机可读媒体的范围内。

指令可由一或多个处理器执行,所述一或多个处理器例如一或多个数字信号处理器(dsp)、通用微处理器、专用集成电路(asic)、现场可编程门阵列(fpga)、或其它等效的集成或离散逻辑电路。因此,如本文中所使用的术语“处理器”可指前述结构或适合于实施本文中所描述的技术的任一其它结构中的任一者。另外,在一些方面中,本文中所描述的功能性可在经配置用于编码和解码的专用硬件和/或软件模块内提供,或者并入在组合编解码器中。而且,所述技术可完全实施于一或多个电路或逻辑元件中。

本发明的技术可在多种多样的裝置或设备中实施,包含无线通信装置、无线手持机、集成电路(ic)或一组ic(例如芯片组)。本发明中描述各种组件、模块或单元是为了强调经配置以执行所公开的技术的装置的功能方面,但未必需要由不同硬件单元实现。实际上,如上文所描述,各种单元可以结合合适的软件及/或固件组合在编码解码器硬件单元中,或者通过互操作硬件单元的集合来提供,所述硬件单元包含如上文所描述的一或多个处理器。

已描述了本发明的各种实例。涵盖所描述的系统、操作或功能的任何组合。这些和其它实例属于所附权利要求书的范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1