首页> 中国专利> 使用用于自适应视频流传输的可变比特率和动态分辨率的多比特率视频编码

使用用于自适应视频流传输的可变比特率和动态分辨率的多比特率视频编码

摘要

视频编码系统使用一种方法来对用于多比特率视频流传输的视频流进行编码,该方法允许已编码比特率服从用于较高质量的流的峰值比特率和平均比特率约束而变化,但对底部比特率流进行编码以实现恒定块速率。视频编码系统还动态地决定随视频复杂度变化的多比特率视频流的段的编码分辨率,从而实现用于多比特率流传输的更好的视觉体验。

著录项

  • 公开/公告号CN102301710A

    专利类型发明专利

  • 公开/公告日2011-12-28

    原文格式PDF

  • 申请/专利权人 微软公司;

    申请/专利号CN201080006304.9

  • 申请日2010-01-12

  • 分类号H04N7/24(20060101);H04N7/26(20060101);

  • 代理机构31100 上海专利商标事务所有限公司;

  • 代理人杨洁

  • 地址 美国华盛顿州

  • 入库时间 2023-12-18 04:08:41

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2015-05-20

    专利权的转移 IPC(主分类):H04N7/26 变更前: 变更后: 登记生效日:20150430 申请日:20100112

    专利申请权、专利权的转移

  • 2013-03-13

    授权

    授权

  • 2012-02-15

    实质审查的生效 IPC(主分类):H04N7/24 申请日:20100112

    实质审查的生效

  • 2011-12-28

    公开

    公开

说明书

背景技术

随着在诸如因特网的网络上播放流音频和视频的日益普及,需要对从服务 器发送到客户机的数据进行优化,从而即使在播放期间的网络条件不一致也能 将客户的体验最大化。对客户的体验进行优化包括选择用于对所回放的视频的 音频和视频部分进行编码的质量级别,从而在保持视频内容的质量的同时不间 断地发送和重构该视频。

质量级别通常由为输入流的已编码音频或视频部分所指定的比特率来规 定。较高的比特率通常指示关于原始音频或视频的较大量信息被编码和保留, 并且因此在视频回放期间将呈现原始输入音频或视频的更准确的再现。相反, 较低的比特率指示关于原始输入音频或视频的较少信息被编码和保留,并且因 此在视频回放期间将呈现原始音频或视频的不太准确的再现。

一般而言,基于若干因素指定用于对音频和视频中的每一个进行编码 的比特率。第一个因素是服务器和客户机之间的网络条件。可发送大量数据的 网络连接指示可为随后通过网络连接发送的输入视频指定较高的比特率。第二 个因素是所需的启动等待时间。启动等待时间是指由于所要接收、处理和缓存 的大量数据,视频回放工具在第一次启动时所经历的延迟。第三个因素是对假 信号的容忍度。假信号是指由于丢失数据视频回放必须停止时。在多数情况下, 任何量的启动等待时间或假信号都是无法忍受的,并且因此期望的是对所指定 的比特率进行优化从而将启动等待时间和假信号最小化或者消除。

当前可用的商业流传输媒体系统依靠多比特率(MBR)译码来执行译码 速率控制。在MBR译码中,以不同的译码速率将源视频内容编码为替换比特 流,并且通常将其存储在服务器的相同的媒体文件中。通常使用在各段之间切 换的比特流,根据变化的网络条件,位于对应于不同的译码速率的质量级别, 允许将内容按段或块进行流传输。

当前可用的多比特率视频流传输系统使用恒定比特率方法来对每个替换 的视频流进行编码。但是,典型的视频将通常包括具有各种视觉复杂度的场景。 但是,恒定比特率方法无法对不同质量的视频段进行有效地编码。恒定比特率 方法不必要地花费很多比特来对低复杂度视频段进行编码,相反,为高复杂度 场景分配过少的比特。因此,对替换流进行编码的恒定比特率方法导致不期望 和不一致的用于因特网流传输的视频质量。

当前可用的多比特率视频流传输系统还有固定最终显示分辨率的另一个 要求。通过保持固定的显示分辨率,可将处于多个比特率的视频流全部解码并 缩放到该相同的最终显示分辨率以便获得无假信号的视频呈现。伴随该固定的 显示分辨率,各种替换视频流可具有从每秒若干兆比特到每秒若干千比特的各 种比特率。一个问题是将合适的视频分辨率与每个视频流比特率相匹配。当前 可用的多比特率视频流传输系统使用可能也不太适合视频场景的可变复杂度 的预定义的编码分辨率。对于低复杂度视频,预定义分辨率可能过小。对于复 杂的视频,预定义分辨率可能过大。

发明内容

以下的详细描述涉及用于多比特率视频编码的技术(经由方法、设备和系 统来实现),所述多比特率视频编码旨在更好地利用每个比特率的可用的比特 从而获得通常更高质量的视频。

根据此处描述的一种技术,多比特率视频编码器对用于多比特率视频流传 输的多个视频流进行编码,以到达提供更加一致的视频质量的目标。对于对最 高比特率视频流进行编码,允许对流进行编码的比特率服从某些约束地变化: 峰值比特率约束和平均比特率约束。对于最低的比特率流,多比特率视频编码 器使用恒定块(给定大小组图片)速率方法对流进行编码。以逐渐降低的可变 比特率对处于中间比特率的视频流进行编码(服从降低峰值和平均比特率的约 束)。

根据此处描述的又一技术,多比特率视频编码器还可动态地改变流的视频 分辨率。对于每个比特率,视频编码器基于场景的视频内容(可包括一组或多 组图片)动态地决定分辨率从而获得更好的视觉质量。多比特率视频编码器为 具有不太复杂的视频内容的图片组选择较高的视频分辨率,而为具有较高复杂 度的图片组分配较低的分辨率。这个动态分辨率方法允许多比特率视频编码器 对于给定的比特率获得通常更好的视频质量。

提供本发明内容是为了以简化的形式介绍将在以下详细描述中进一步描 述的一些概念。本发明内容并不旨在标识出所要求保护的主题的关键特征或必 要特征,也不旨在用于帮助确定所要求保护的主题的范围。本发明的其它特征 和优点在参考附图继续阅读以下对实施例的详细描述后将变得显而易见。

附图简述

图1是以可变比特率提供视频的分段流传输的视频流传输系统的框 图。

图2是为图1的视频流传输系统以可变比特率对流进行编码的视频编 码器的通用实现的框图。

图3是多比特率视频编码系统的过程流程图,其为图1的系统的流传 输使用图2的视频编码器的应用可变比特率方法和动态分辨率方法来对视 频进行编码。

图4是用于在动态分辨率选择的三点采样方法中使用的示例流的分辨 率、量化步长和译码大小之间的关系图。

图5是由多比特率视频编码系统作出动态分辨率决策的过程流程图。

图6是可结合来实现所描述的各实施例的通用操作环境的框图。

具体实施方式

以下详细描述涉及用于使用可变比特率和动态分辨率来对视频进行编码 来以各种比特率生成用于流传输的视频流的各种技术和系统。尽管在应用于多 比特率流传输应用程序的上下文中描述技术,但技术可被更广地应用于其他视 频编码应用程序。

此处描述的各种技术和工具可以独立使用。技术和工具中的某些可组合使 用。如下参考处理动作的流程图来描述各种技术。在流程图中示出的各种处理 动作可以合并为更少的动作或者分割成更多的动作。为了简明,在特定流程图 中示出的各动作与在其它地方描述的各动作之间的关系通常没有示出。在许多 情况下,可以重排流程图中的动作。

I.多比特率视频流传输

图1描绘了用于包含在已索引视频流文件中的多媒体内容的分段流传输 的系统100的通用框图。已索引文件通常将多媒体程序的视频划分为多个流传 输段,并且包含代表各种比特率的视频段的多个压缩比特流。尽管MBR视频 流被描述为单独的译码流,但替换的实现可将MBR视频流中的某些或全部编 码为具有多个编码层的一个已译码已压缩视频流。在系统100中,服务器100 经由网络130(例如,因特网)向客户机120(例如客户机计算机系统,诸如 膝上型或台式计算机、或诸如PDA或移动电话的另一类型的计算设备)提 供多媒体内容。在系统100中,服务器110将程序存储在已索引文件中。客户 机120包含客户机侧速率控制软件和/或硬件。

在一个具体的示例实现中,服务器110是除提供文件的能力以外没有任何 专用的流传输能力的标准HTTP服务器。由于服务器110不支持任何专用的比 特率选择的能力,因此客户机120必须执行全部的比特率选择活动。在该实现 中,客户机120执行全部的比特率选择活动。例如,客户机120可使用从服务 器110获得的索引信息(例如单独或与诸如客户机缓存信息、网络带宽等的其 他信息组合)来执行速率控制。但是,在其他实现中,速率控制功能的某些或 全部可发生在服务器上。

一般而言,标准HTTP服务器可使用用于多比特率流传输的已索引文 件以多种比特率提供多媒体内容,客户机侧(例如,客户机侧独占)执行 比特率选择(速率控制)。客户机可通过首先从服务器获得描述可用于程序 的流传输段的各种比特率的索引信息来执行速率控制。基于该索引信息以及可 能的其他信息(例如,网络带宽、缓存信息等),客户机可决定从服务器下载 哪些比特率流传输段以提供期望的用户体验(例如,基于可用的比特率和当前 的网络条件的可能最好的用户体验)。

(例如,除了传统的HTTP服务器以外的)其它类型的计算设备可使用已 索引文件来提供文件。例如,计算设备(例如,个人计算机、服务器计算机、 或专用流传输媒体服务器)可通过使用各种文件提供协议(例如,文件传输协 议(FTP)、超文本传输协议(HTTP)、实时流传输协议(RTSP)、MMS(微 软媒体服务)等)来使用已索引文件布局以提供多媒体内容。

为了支持比特率切换,将程序划分为被称为流传输段(自包含单元)的时 间块。服务器以一个或多个比特率存储每个流传输段(例如,每个流传输段— 比特率组合是单独的流传输段编码)。每个流传输段包括用于程序的特定轨道 (例如,诸如英语音轨的特定的音轨,或特定的视频轨)的一个或多个可用的 的比特率编码。客户机随后从可用的比特率中(例如,从可用的流传输段编码 中)确定为每个流传输段下载哪个比特率。例如,客户机可(从用于第一流传 输段的一个或多个可用的流传输段编码中)获得以250Kb/秒(每秒千比特)编 码的视频轨的第一流传输段,(从用于第二流传输段的一个或多个可用的流传 输段编码中)获得以500Kb/秒编码的视频轨的第二流传输段,(从用于第三流 传输段的一个或多个可用的流传输段编码中)获得以1Mb/秒编码的视频轨的 第三流传输段。在所示流传输系统100中,如下所述,视频编码器以可变比特 率(VBR)和可变分辨率对包含在已索引文件中的每个流传输段进行编码。

II.视频编码器概述

图2描述了可用于为了多比特率视频流传输的对视频进行编码的视频编 码器200的一个示例。视频编码器200具有用于接收视频内容的“原始”(未 压缩的)帧的输入210、220以及视频内容的预先计算的运动信息。视频编码 器随后执行视频内容的参考帧的帧内译码,并且利用运动信息来执行视频内容 的预测帧的帧间译码。可根据诸如Windows Media Video格式、SMPTE 421-M 格式、MPEG-x格式(例如,MPEG-1、MPEG-2或MPEG-4)、H.26x格式(例 如,H.261、H.262、H.263或H.264)的已知的视频编码标准或其他格式来执 行编码。但是,在帧间译码的情况下,视频编码器可选择使用预先计算的运动 信息用于预测帧的帧间译码,而不是对该帧执行其自身的运动估计。视频编 码器将视频内容编码为作为输出230提供的已压缩比特流。视频编码器还可将 其用于输入视频内容的帧间压缩的运动信息作为运动信息输出240来输出(诸 如用于为多比特率视频流传输的对较低比特率视频流进行编码)。

图2是示出使用用于多比特率视频流传输系统100的可变比特率和可变分 辨率编码来生成多比特率视频流的视频编码器200的一个示例适合的实现的通 用框图。视频编码器200接收视频图像(帧)序列作为其原始视频内容输入210, 并且生成已压缩比特流230作为输出。

视频编码器200处理视频图像。术语“图像”一般是指源、已译码的或已 重构的图像数据。对于逐行扫描视频,图像是逐行扫描视频帧。对于隔行扫描 视频,取决于上下文,图像可以是指隔行扫描视频帧,上半帧,或下半帧。

视频编码器200压缩输入视频的帧间编码的预测的图像和输入视频的帧 内编码的图像。为了演示,图2示出了用于通过编码器200的帧内编码的路径 和用于帧间编码的预测帧的路径。视频编码器200的组件中的许多用于压缩帧 内编码的内容和帧间编码的预测的内容。由那些组件执行的确切操作可以依据 正在被压缩的信息的类型而变化。

一般而言,在视频编码器200内,帧间编码的预测帧(作为图像)根据先 前重构的内容的预测(作为一个或多个其他图像,这些图像通常被称为参考图 像或锚)来表示。例如,在给定时间的内容被作为逐行扫描的P帧或B帧、隔 行扫描的P半帧或B半帧、或隔行扫描的P帧或B帧编码。在视频编码器200 内,预测残余是预测的信息和对应的帧内编码之间的差异。

基于运动信息,路径间的输入视频110内容被编码为预测的图像。如果满 足某些条件,视频编码器100使用来自输入120的预先计算的运动信息(如由 选择切换256所示),输入可以是一组用于宏块的运动矢量、或用于宏块的运 动矢量的序列、或者关于一个或多个参考图像的路径间视频图像的示例的其他 集合的形式。一般而言,使用预先计算的运动信息的选择可以基于:第一,预 先计算的运动信息的可用性;第二,与运动信息的先前计算和用于视频内容的 当前编码的参数相比,哪些编码参数发生变化以及编码参数是否有所变化。在 一个示例中,如果使用与视频编码器当前编码使用的视频分辨率不同的视频分 辨率来计算用于对视频内容进行编码的运动信息,则视频编码器将选择不使用 来自输入130的先前计算的运动信息。

但是,视频编码器100可替代地选择使用(再次由选择切换256所示)运 动估计器258来执行用于路径间视频内容110的新的运动估计。运动估计器258 相对于一个或多个参考图像对宏块的运动或视频图像的样本的其他集合进行 估计,参考图像代表先前编码的视频内容帧的重构。图像存储264将该重构的 视频内容266缓存为参考图像或图像。当使用多个参考图像时,该多个参考图 像可以来自不同的时间方向或相同的时间方向。运动估计器258输出诸如运动 矢量信息的运动信息260。

当形成运动补偿的当前图像268时,运动补偿器262将运动矢量应用到某 些重构的视频内容266中(存为参考图像)。运动补偿的图像268的块和原始 的路径间视频图像的对应块之差(如果有)是该块的预测残余270。在路径间 的视频帧的日后重构过程中(例如,在视频解码器),重构的预测残余被添加 到运动补偿的残余视频268,以获得更接近于原始路径间视频256的重构的内 容。但是,在有损压缩中,某些信息仍会从原始路径间视频中丢失。或者,运 动估计器和运动补偿器应用另一种类型的运动估计/补偿。

频率变换器280将空间域视频信息转换为频率域(即频谱变换)数据。对 于基于块的视频内容,频率变换器280对采样块或预测残余数据应用DCT、 DCT的变体、或其他前向块变换,产生频率变换系数块。频率变换器280可应 用8×8、8×4、4×8、4×4或其它大小的频率变换。

量化器282随后量化变换系数块。量化器282以逐图像地、逐宏块地或其 他方式空间变化的步长对频谱数据应用非均匀的标量量化。此外,在某些情况 下,量化器在层间残余视频图像的颜色通道之间改变量化。量化器282还可以 应用另一种类型的量化,例如,对于至少某些频谱数据系数应用均匀或自适应 量化,或在不使用频率变换的编码器系统中直接量化空间域数据。

当需要重构的视频内容用于路径间视频图像的后续的运动估计/补偿时, 反量化器290对量化的频谱数据系数执行反量化。逆频率变换器292执行逆频 率转换,生成重构的预测残余的块(对于预测的路径间残余视频内容)或样本 (对于路径内残余视频内容)。如果残余视频内容256是运动补偿预测的,则 将重构的预测残余添加到运动补偿的预测器268以形成重构的残余视频。图像 存储264缓存重构的残余视频,用于随后的运动补偿的预测。

熵译码器284压缩量化器282的输出以及某些辅助信息(例如,量化参数 值)。典型的熵译码技术包括算术译码、差分译码、霍夫曼译码、行程长度译 码、LZ译码、词典译码、和以上的组合。熵译码器284通常针对不同种类的 信息使用不同的译码技术,并可以从特定的译码技术内的多个代码表中选择。

当视频编码器240对路径内视频内容执行帧内压缩时,编码器把它帧内压 缩为帧内编码的图像,没有运动补偿。视频256被直接提供给频率变换器280、 量化器282以及熵译码器284,并作为编码视频输出。帧内编码的视频的重构 版本可以被缓存,以用于随后的对其他路径间视频的运动补偿。

控制器294接收来自诸如运动估计器258、频率变换器280、量化器282、 逆量化器290和熵译码器284的各种模块的输入。控制器294对编码期间的中 间结果进行评估,例如设置量化步长并执行速率-失真分析。控制器294与其 他模块协作以设置和改变编码期间的译码参数。当控制器294对不同的译码参 数选择进行评估时,控制器294可以反复执行某些阶段以对不同的参数设置进 行评估,或者控制器294可以联合地对不同的译码参数进行评估。要评估的编 码参数决策树以及对应的译码的定时取决于实现。在某些实施例中,控制器294 还从编码会话向导界面、其他编码器应用程序界面、或其他源接收输入,以使 用特定的规则来指定要编码的视频。

III.MBR流的可变比特率编码

对于多比特率视频流传输系统100(图1),多比特率视频编码系统使用 连续降低的总体比特流单独地将输入视频编码为一组压缩视频流。尽管此处作 为编码单独的各MBR视频流来描述,MBR视频流传输系统和编码系统的替换 实现可将MBR视频流中的一个或多个编码为具有多个单独的译码层的压缩 比特流。多比特率视频编码系统包括根据多比特率编码过程使用可变的编码参 数来驱动视频编码器200(图2)对输入视频进行编码的MBR编码引擎(未示 出),多比特率编码方法(图3中所示)实现了此处及以下部分描述的可变比 特率和动态分辨率方法。MBR编码引擎可提供用于接收为MBR视频流编码配 置诸如流的数目以及以下提及的其他参数的参数的用户输入的用户界面或控 制台(或者替换地从呼叫方应用程序接收这样的输入的应用程序编程界面)。

与其他当前可用的多比特率视频流传输系统(使用恒定比特率方法来编码 多个视频流)相反,多比特率视频流系统100的MBR编码系统的目标在于为 每个视频流提供恒定或一致的质量。对于顶部MBR视频流(通常具有最高的 总体比特率),视频编码器200使用可变比特率对视频流进行编码,可变比特 率被约束为落入指定的峰值比特率以内且满足指定的平均比特率。对于底部 MBR流(通常具有集合的最低的比特率),视频编码器使用恒定块速率方法。 在多比特率视频流传输系统的上下文中,术语“块”是指视频流被分割成的图 像组(GOP),并且定义视频流传输系统可在视频流之间播放各个段的粒度级 别。恒定块速率方法使得视频流传输系统保证流传输的可预测性,因为当对最 低比特率或质量的视频流进行流传输时,客户机将以恒定的速率接收图像的块 量从而保持视频的最低质量连续播放。

在最低的和最高的总体比特率流之间,视频编码器还使用在峰值比特率和 旨在保持恒定视频质量的平均比特率的约束内的可变比特率的译码来对一个 或多个中间视频流进行编码。中间视频流的峰值和平均比特率约束可被指定为 按照比例的、对数的或其他降低的方式逐渐地降低。例如,中间流的平均比特 率可成比例地降低为最高比特率视频流的平均比特率约束的3/4、1/2和1/4。 以此方式,视频流传输系统100能够提供从保证的低恒定块速率切换到最高质 量可变速率比特流的即时启动和快速视频。峰值和平均比特率、以及恒定块速 率是可由用户配置的编码参数。这些参数可由用户明确地配置、或者由MBR 编码系统基于由用户输入的更通用的参数来计算。例如,MBR编码引擎具有 用户(或呼叫方应用程序)仅指定最小和最大的目标比特率以及多个视频流或 层的自动模式。在该自动模式中的引擎随后在一致、对数或其他分布空间中计 算全部的中间比特率约束(峰值和平均)。

现在参考图3,MBR编码系统使用过程300对MBR视频流的集合进行编 码,过程300使用两遍编码方法。该过程包括分析遍和编码遍。分析遍的目标 在于基于编码配置以及输入视频源材料本身来查找视频内容的场景复杂度。一 旦在分析遍中提取出该信息,则随后的编码遍接着生成MBR视频流的集合。

MBR编码过程300起始于初始化步骤310。在该步骤中,MBR编码过程 从用户输入中确定用于编码的参数,包括MBR视频流的数目、流的峰值和平 均比特率约束以及最低质量MBR视频流的恒定块速率,和段参数等。

MBR编码过程300的分析遍包括动作311-314。在分析遍中,MBR编码 引擎逐帧地对输入源视频进行分析。分析包括多个不同的任务,包括场景变化 检测、将场景变化边界之间的视频序列分割为图像段的组,以及视频帧复杂度 测量。基于场景变化检测,MBR编码引擎在视频中发生场景变化的边界处进 行标记。在视频序列的已标记边界之间(序列标记内和序列标记外位置), MBR编码过程300还确定在用户指定的约束内在其中划分视频序列的图像段 的组的总数(诸如指定的平均GOP长度和场景中最大允许的GOP长度),并 且为每个图像组设置边界。一旦定义了GOP边界,每个GOP中的帧的总数由 MBR编码引擎来计算。MBR编码引擎还计算每个图像组的每帧的一组三个纹 理测量结果,用于下一部分中描述的可变分辨率编码。三个纹理测量结果包括 帧全局纹理、帧水平纹理和帧垂直纹理测量结果。MBR引擎将这些分析遍的 结果(场景和GOP边界、以及纹理测量结果)写入日志文件,如动作314所 指示的。

对于编码遍(动作315-324),MBR引擎应用分析遍的结果以使用视频编 码器200(图2)来对MBR视频流进行编码。MBR引擎使得视频编码器200 对全部MBR流(动作318)中的每个段进行编码(动作317)。对于MBR视 频流中的每个段,MBR编码引擎控制视频编码器200的编码参数,试图实现 用户指定的平均比特率的目标。如果源视频内容过于复杂而无法以目标比特率 被编码,则MBR编码引擎开始增加量化步长从而获得更好的视觉质量。服从 达到用户所指定的MBR编码参数的最大峰值比特率约束地对顶部或最好质量 的视频流进行编码。对于底部或最低质量的视频流,MBR引擎控制视频编码 器以生成满足恒定块速率约束的视频流的编码,恒定块速率约束有助于保证播 放流视频的客户机侧的可预测性。在中间视频流中,MBR引擎使视频编码器 使用编码参数对源视频进行编码,以生成落入各中间流的最大峰值和平均比特 率约束内的视频流可变比特率。

作为编码遍的结果,MBR引擎随后输出用于使用视频编码器生成的MBR 流的集合的压缩视频比特流以及日志文件。使用该MBR编码过程300的可变 比特率方法,MBR引擎生成对于每个GOP从顶部到底部质量流均匀地降低的 一组MBR视频流。有了这组MBR视频流,MBR系统100(图1)根据可用 的连接带宽可为视频序列提供期望的恒定或一致的视觉质量。

IV.MBR流的可变分辨率编码

MBR编码引擎还应用动态地改变MBR视频流中的每一个的编码的分辨 率的技术。对于MBR视频流的从顶部至底部的每个视频流,MBR编码引擎动 态地决定用于对每个视频GOP进行编码的分辨率以生成更好的视觉质量。对 于每个视频流,MBR编码引擎将较高的分辨率分配给低复杂度GOP(或段), 而将编码的较低的分辨率分配给更复杂的GOP。

在示例实现中,MBR编码引擎在视频的场景边界处应用动态地调整每个 GOP的大小的决策。这避免引入在视频场景中间调整视频分辨率大小可能生成 的不期望的视觉效果。例如,在以“讲话头部”为特征的场景中,在场景中间 改变视频分辨率可引入明显的凸出或脉冲,因为场景中的细节边缘和特征随着 分辨率变化而锐化或软化。因此,MBR编码引擎为场景的GOP执行以下描述 的过程(例如,在上述分析阶段中标识的场景变化边界之后的第一个GOP)。

在动态分辨率编码的一个示例实现中,MBR编码引擎使用三点采样方法 来制定动态分辨率决策。每个采样点代表来自使用三对不同的视频分辨率和量 化步长对GOP进行编码的结果(在实际的编码比特率或大小方面)。有了这 三个采样点结果,MBR引擎在分辨率、量化步长和已译码大小之间建立关系 模型,图4中图形地示出其关系。从这个用于视频序列的动态提取模型中, MBR编码引擎可随后决定MBR视频流的每个目标比特率的分辨率。在替换实 现中,MBR编码引擎可使用更多的采样点来建立模型。但是,三个采样点方 法被发现是足以建立模型且出于编码速度的目的保持最为实际的。

图5示出由MBR视频编码引擎执行的用于为每个视频流的GOP制定动 态分辨率决策的过程500。过程500始于获得编码结果的三个采样点(动作 510)。MBR编码引擎控制视频编码器200使用分辨率和量化步长的三个参数 的组合来对段或GOP进行编码。可基于视频的期望的显示分辨率来选择初始 的样本分辨率。可依赖于视频编码器所使用的特定的编解码器标准来选择 初始的样本量化步长。例如,在SMPTE 421-M视频编解码器的情况下,初始 样本量化步长可被选为4。在视频编码器使用H.264标准的情况下,合适的初 始的样本量化步长可以是28。但是,可相反选择其他初始的样本量化步长和分 辨率。

在所示模型中,MBR视频编码引擎为初始的样本分辨率和量化步长参数 对(R,Qp),以及初始样本分辨率的四分之一(即,(R/4,Qp))和初始样本 量化步长的两倍(即,(R,Qp*2))来执行编码。或者,可使用样本点的其他 参数对,诸如分辨率的一半、四倍的量化步长等。MBR视频编码引擎观察由 使用三个分辨率和量化步长参数对对视频流的GOP进行编码产生的编码比特 大小(S1、S2和S3)。

在下一动作511中,MBR引擎建立两个线性模型:一个用于量化步长和 编码大小之间的关系(图4的图表中被标为GraphQpS),一个用于分辨率和 编码大小之间的关系(GraphRS)。量化步长和编码大小之间的关系由编码大 小来确定,编码大小由量化步长被改变而分辨率保持恒定的两个样本点产生, 相反,分辨率和编码大小之间的关系由改变分辨率而量化步长保持恒定的两个 样本点来确定。

在动作512,MBR引擎使用编码大小和量化步长的关系来查找产生对应 于期望的比特率的编码大小的量化步长。这是应该产生用于视频流的GOP的 目标比特率的全采样分辨率R的模型结果量化步长(标记为Qp’)。

MBR引擎随后对模型结果量化步长和根据经验确定的阈值(从对各种视 频内容的视频纹理的实验测量来确定)进行比较。如果模型结果量化步长小于 阈值,则MBR引擎决定使用全样本分辨率和模型结果量化步长,即动作514 的(R,Qp’)。

更具体地,基于在对输入视频内容的分析阶段(以上讨论的)期间进行的 每帧纹理测量结果,MBR引擎确定合适的量化步长阈值。MBR引擎通过平均 GOP中全部帧的帧纹理测量结果来为GOP计算纹理测量结果。这产生了GOP 全局纹理、GOP水平纹理和GOP垂直纹理测量结果。这其中,GOP全局纹理 测量结果确定控制何时调整视频分辨率大小的量化步长阈值。从对于各种视频 内容(包括体育、电视机、电影等)的实验性结果中,已经确定的是量化步长 阈值Qp等于12(对于使用SMPTE 421M标准编码的视频)对于带有典型的 GOP全局纹理测量结果的视频来说是适合的。换句话说,如果模型结果量化步 长Qp’超过12,则MBR编码器应该调整大小至较低的视频分辨率从而以更低 的Qp来编码。但是,在示例实现中,依赖于视频的总体全局纹理测量结果, MBR编码器还可改变用于调整大小的量化步长阈值。MBR编码器在全局纹理 和用于调整大小的量化步长阈值之间已经建立了线性关系。对于具有低总体全 局纹理的视频,预期较低的量化步长阈值。这允许MBR编码器在调低具有多 个平滑区域(调整大小至较低的分辨率不会产生伪像)的视频内容的视频分辨 率方面更为积极。但是,对于具有高全局纹理的视频,MBR编码器预期用于 调整大小的较高的量化步长阈值。这样的较高的阈值使MBR编码器在调低具 有许多细节的帧的视频分辨率方面更为谨慎,从而避免对那些帧的详细区域的 进行平滑。在替换的实现中,量化步长阈值可被建立为其他的量化步长,诸如 与其他视频编码标准一同使用、或者在调整视频分辨率大小中获得期望的积极 /谨慎程度。

另一方面在动作515,如果模型结果大于由视频纹理定义的阈值,则 MBR引擎相反使用编码大小和分辨率(GraphRS)之间的关系来查找产生 对应于视频流的目标比特率的编码大小的模型结果分辨率(R’)。

MBR引擎还使用GOP平均水平和垂直纹理测量结果来控制在每个方向上 对视频分辨率进行多少大小调整。MBR引擎计算GOP水平和垂直纹理测量结 果的比率。一旦确定要调整分辨率大小(动作514),MBR引擎根据GraphRS 关系计算特定的调整量。例如,MBR引擎可确定为使用一半的初始分辨率调 整大小。基于GOP水平和垂直的纹理测量结果的比率,MBR引擎随后确定在 垂直和水平方向上如何分布调整大小的量。具体而言,如果水平和垂直的纹 理测量结果之间存在大的差异或增量(即,比率不统一),则MBR引擎分 配该大小调整以在较低细节方向上比在较高细节方向上应用更多的大小调 整。例如,当比率为2时,则MBR引擎在垂直方向上的大小调整是水平方向 上的两倍。相反,如果GOP的水平和垂直的纹理测量结果之间的增量低(比 率接近统一),则MBR引擎在各方向之间相等地调整分辨率大小。

动作516的MBR引擎随后使用量化步长与编码大小(GraphQpS)之间的 关系、和分辨率与编码大小(GraphQpS)之间的关系、以及各视频流的目标比 特率来建立特定的目标比特率的分辨率与量化步长之间的关系(图4左上示出 的GraphQpR)。

在动作517,MBR引擎随后使用在动作516中建立的关系(GraphQpR) 来为在动作515中决定的模型结果分辨率R’查找量化步长(Qp’)的模型结果。 MBR引擎随后决定以模型结果量化步长和分辨率(R’,Qp’)来对该视频流的 该GOP进行编码。

通过使用该动态分辨率方法,MBR编码系统能够将较大的编码分辨率分 配给保留更多视觉细节的不太复杂的视频段(或GOP)。另一方面,更为复 杂的视频段(或GOP)被分配减少视觉伪像的较小的分辨率。已经发现该 方法能提供用于多比特率流传输的更好的视觉体验。

V.代表性计算环境

图6示出了其中可实现所描述的实施例、技术、和技艺的合适的计算环境 600的通用示例。计算环境600不旨在对本技术的使用范围或功能提出任何限 制,本技术可以在完全不同的通用或专用计算环境中实现。例如,所公开的技 术可用其他计算机系统配置实现,包括手持式设备、多处理器系统、基于微处 理器的或可编程的消费者电子设备、网络PC、小型计算机、大型计算机等。 所公开的技术也可以在任务由通过通信网络链接的远程处理设备执行的分布 式计算环境中实现。在分布式计算环境中,程序模块可位于本地和远程存储器 存储设备两者中。

参考图6,计算环境600包括至少一个中央处理单元610和存储器620。 对于以上讨论的多核运动信息预先计算,计算机包括具有多个CPU核的多核 CPU。在图6中,这一最基本配置630包括在虚线内。中央处理单元610执行 计算机可执行指令,且可以是真实或虚拟处理器。在多处理系统中,多个处理 单元执行计算机可执行指令以提高处理能力,且由此,多个处理器可同时运行。 存储器620可以是易失性存储器(例如,寄存器、高速缓存、RAM)、非易失 性存储器(例如,ROM、EEPROM、闪存等)或两者的某一组合。存储器620 存储可例如实现此处描述的技术的软件680。计算环境可以具有附加特征。例 如,计算环境600包括存储640、一个或更多个输入设备650、一个或更多个 输出设备660以及一个或更多个通信连接670。诸如总线、控制器或网络等互 连机制(未示出)将计算环境600的组件互连。通常,操作系统软件(未示出) 为在计算环境600中执行的其它软件提供了操作环境,并协调计算环境600的 组件的活动。

存储640可以是可移动或不可移动的,并包括磁盘、磁带或磁带盒、 CD-ROM、CD-RW、DVD或可用于储存信息并可在计算环境600内被访问的 任何其它介质。存储640存储用于可实现此处描述的技术的软件680的指令。

输入设备650可以是诸如键盘、键区、鼠标、笔或跟踪球等触摸输入设备, 语音输入设备,扫描设备或可向计算环境600提供输入的另一设备。对于音频, 输入设备650可以是声卡或接受模拟或数字形式的音频输入的类似设备,或向 计算环境600提供音频样本的CD-ROM读取器。输出设备660可以是显示器、 打印机、扬声器、CD刻录机、或从计算环境600提供输出的另一设备。

通信连接670允许通过通信介质(例如,连接网络)到另一计算实体的通 信。通信介质在已调制数据信号中传达诸如计算机可执行指令、压缩图形信息、 或其它数据等信息。

计算机可读介质可以是可在计算环境600内访问的任何可用介质。作为示 例而非局限,对于计算环境600,计算机可读介质包括存储器620、存储640、 通信介质以及上述任一个的组合。应当容易理解,术语计算机可读存储介质包 括诸如存储器620和存储640等用于数据存储的介质,且不包括诸如已调制数 据信号等传输介质。

此处所描述的方法中的任一个可以经由包括(例如,具有或存储)用于执 行(例如,使计算设备、音频和/或视频处理设备、或计算机来执行)这些方法 的计算机可执行指令的一个或多个计算机可读介质(例如,存储或其他有形介 质)来执行。操作可以是全自动的,半自动的或者涉及人工介入。

在详细描述和附图中描述并例示本发明的原理之后,可以认识到,各实施 方式可以在排列和细节上进行修改而不脱离这些原理。应该理解,此处所描述 的程序、进程或方法未涉及或仅限于任何特定类型的计算环境,除非另外特别 声明。根据此处所描述的原理,可以使用各种类型的的通用或专门的计算环境, 或执行操作。可以以硬件实现以软件示出的实施例的元件,反之亦然。

鉴于可以应用本发明的原理的许多可能的实施例,作为本发明我们声明所 有这样的实施例都在下面的权利要求书以及又等效内容的范围和精神内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号