带有量化的视频流装备及其方法

文档序号:7736507阅读:212来源:国知局
专利名称:带有量化的视频流装备及其方法
带有量化的视频流装备及其方法布莱奈德 萨斯那塔恩优先权要求/相关申请根据美国法典第35卷第120条和第119条(e)款的规定,本申请要求于2008年 9 月 22 日提交并且题为"Video Streaming Apparatus with Quantization and Method Thereof"的第12/235,107号美国专利申请的优先权、于2008年9月22日提交并且题为 "Transcoder Unit and Method”的第12/2;35,118号美国专利申请的优先权、以及于2008年 9 月 22 日提交并且题为"Video Quantizer Unit and Method Thereof ” 的第 12/235,129 号美国专利申请的优先权,所有这些申请由此通过引用被并入。领域本装置和方法一般涉及视频流、改变视频的格式以及用于数字数据的量化的单元和方法。背景将视频编码的系统和方法是众所周知的。编码可涉及将压缩的视频从一个格式转换成另一压缩格式的转码。传统的办法是在像素域中转码,称为级联像素域的办法。级联像素域的办法涉及解码原视频信号(对其解压)、执行中间处理并然后将处理过的信号完全重新编码。问题是,这种类型的转码计算上价格昂贵并且执行速度很慢,这意味着不可能执行实时转码。现在对转码研究的主要领域集中于提高效率,即减少计算时间。然而,效率方面的任何收益必须对转码视频的质量的影响最小化,使得转码视频的观众没有察觉视频质量下降。目前,当视频被以流的形式传输到媒体播放器时,使用恒定比特率的视频流完成以流的形式传输。在恒定比特率的视频流中,比特率、量化、像素群和所关注的区域是恒定的。问题是,恒定比特率的视频需要大量的带宽来以流的形式传输视频。期望提供可变比特率的视频流技术,使得可以根据流视频的始发器和流视频的接收器之间的链路的可用带宽来调整流的比特率。提供可变比特率的流视频的一个当前技术是存储同一视频的每段的多个版本,其中视频的每段的每个版本具有不同的特征如比特率、量化、像素群或所关注的区域。然后, 当视频将要被以流的形式传输时,检出器选择视频的具有合适特征的合适段以流的形式传输给用户。这种办法的问题是存储每个视频的所有版本所需要的大量的存储空间。例如, 5MB大小的视频可能需要200+MB的存储空间,因为必须保存视频的不同段的所有不同版本。这大量的存储空间使当前技术不能为具有大量视频要以流的形式传输给用户的网站/ 公司工作。因此,期望提供克服当前技术的问题的装备和方法,并且为此目的指导该装备和方法。另外,转码的过程是将压缩的视频从一个格式转换成具有不同格式的另一压缩的视频。传统的办法是在像素域中执行转码,称为级联像素域的办法。这种传统的办法涉及解码原信号、执行中间处理、以及使受限于任何新的限制的处理过的信号完全重新编码。完
5成这种传统的转码(从计算资源的立场和时间长度的立场)是非常昂贵的。因此,现在对转码研究的主要领域集中于提高效率,即减少计算时间。然而,效率方面的任何收益应当对转码视频的质量的影响最小化。因此,期望使用低复杂性、更快的转码方法来实现比特率降低,并且为此目的指导该单元和方法。此外,量化诸如视频数据的数字数据的系统和方法是众所周知的。例如,大多数视频、静止图像和音频压缩方案使用某种形式的量化来减少压缩数据的带宽。这些已知的量化系统的大多数对于一些应用来说太慢和/或在计算上过于昂贵。因此,期望提供克服当前技术的问题的量化器和方法,并且为此目的指导该装备和方法。附图简述

图1示出带有量化的视频流装备的实施方式;图2示出带有量化的视频流装备的实施方式的更多细节;图3示出用于带有量化的视频流的方法;图4示出用于计算量化调整的方法的实例;图5示出转码过程;图6示出开环转码过程;图7示出闭环转码过程;以及图8示出没有运动估计的闭环转码过程。一个或多个实施方式的详述该装备和方法特别适用于视频信号在web上从一个服务器到一个或多个移动设备的以流的形式传输,并且在本上下文中,将描述该装备和方法。然而,应当理解,该装备和方法具有更大的实用性,因为它可被用来将视频数据从任何起始源以流的形式传输到任何接收器,并且视频数据可在具有足够带宽以传递视频数据的任何类型的链路上以流的形式传输。图1示出带有量化的视频流装备10的实施方式,可使用视频流装备10以在一个实现中使视频数据从始发器如服务器计算机经过链接11如因特网以流的形式传输到一个或多个目标设备13,每个目标设备13具有媒体播放器来播放流视频。每个目标设备可以是手机、带无线电话功能的移动设备、智能手机(如BlackBerry产品或Apple iPhone)以及具有无线功能与显示/播放流视频的功能的此类的设备。在一个实现中,装备10是一个或多个服务器计算机,其执行多行计算机代码以实现下面关于装备10所描述的操作。也可在可包括一个或多个可编程逻辑设备、运行程序的处理单元等等的硬件中实现装备10。在一个实现中,装备10可以是两个英特尔EM20四核处理器、42GB DDR2 DIMM、具有32MB缓存的两个1TBRAID驱动器、Ubuntu6. 1操作系统和双千兆字节以太网NIC。装备10转码并使视频文件在带宽和质量变化的移动链路上以流的形式传输,往往使用可调视频量化以提供可变比特率的流装备和方法,而没有通常系统的巨大的存储需求。如图1所示,装备10可接收视频链路(例如,统一资源定位器),视频链路链接到具有将被转码并使用该装备以流的形式传输的源视频数据的网站。源视频数据可以是需要被转码以便可以由该装备以流的形式传输的不同格式,如MPEG格式、动画视频格式(.flv)、 3gp格式、mp4格式、h. 263格式或h. 264格式等等。在装备10中,网络爬虫(crawler) 12 可解析视频链接,并且然后下载源视频数据到装备10。源视频数据然后被传递到转码器(transcoder) 14,转码器14执行源视频数据的转码以生成转码视频,其中所有转码视频具有相同的形式。在转码期间,不同格式的源视频数据也可要求形式转换、分辨率转换、比特率调整和/或帧速率调整。一旦视频被转码成转码视频,它就被传递到量化器16上,量化器16在转码视频上执行量化以生成量化视频(具有特定的比特率和适于视频将在其上以流的形式传输的链路的量化),量化视频然后可以在移动链路上以流的形式传输到达一个或多个移动设备。图2示出带有量化的视频流装备10的实施方式的更多细节,以及图3示出用于带有量化的视频流的方法40。在一个实施方式中,图2所示的单元和元件可被实现为多行计算机代码,其由具有一个或多个处理单元和存储器的装置运行,其中多行计算机代码存储在存储器中并由一个或多个处理单元运行。可选地,图2所示的单元和元件可以使用ASIC 或用软件实现。如图2所示,源视频数据的段由转码器14接收(如图3所示的过程42)。 源视频数据可包括动画视频(.flv)或直播视频点播,其中源视频包括在容器结构(如flv 格式)中折行的(例如,h. 263格式)数据的一个或多个基本视频段和(例如,mp3格式) 数据的一个或多个基本音频段。因此,作为转码过程的一部分,从容器中提取基本视频和音频元素(如图3所示的过程44)。预期从流传送器(streamer)有三个主要输出,这些输出基于目前所支持的移动电话标准。在下面,它们被示出为视频和音频对。1. H263/AMR2. H264/AAC3. MPEG4/AAC基于此输出预期,流传送器将期待来自转码器的上述基本的流格式。然而,此架构不限于上述格式,并可以很容易地扩展到同样支持具有转码器和量化器的最小变化的未来格式。然后,可将基本视频和音频元素送入包括量化器16的流传送器单元20中,量化器 16执行基本视频和音频数据的量化(图3中的过程46)。量化器可以使用典型的、已知的编解码器的量化功能。用于基本视频和音频数据的每段的量化水平取决于反馈单元26,反馈单元沈接收来自流单元22、24的反馈数据(图3中的过程48),并然后将反馈数据送到控制器观,控制器观基于反馈数据调整量化器的量化(图3中的过程50),如下面更详细描述的。一旦基本视频和音频已被量化,量化的视频和音频数据就被结合并输出,用于以流的形式传输。如图2所示,流传送器单元20还可包括实时流协议(RTSP)的流单元22和HTTP 的流单元对,其分别以流的形式传输RTSP数据和HTTP数据。如图2所示的这两个流单元允许流传送器20(和因此装置10)根据两个众所周知的流输出协议以流的形式传输数据。图4示出用于在使用RTSP协议时计算量化调整的方法60的实例。特别地,RTSP 协议标准定义发送端报告(SR)和接收端报告(RR),它们在诸如流服务器的流单元61和诸如在链路上的移动电话的目标设备62之间交换。如所示,将流数据64的视频和音频元素与众所周知的发送端报告一起从流单元61发送至目标设备62。作为回应,根据RTSP协议, 目标设备返回接收端报告。HTTP流将在TCP的顶上面的发生。由于TCP的连接模式,我们可以简单计数传出的数据包和来自网络界面的网络错误率。此数据将被用来计算平均吞吐量(AVTH)。接收端报告确定并提供有关当前链路状况的数据。例如,RR可包括有关发送端报告被发出直到接收端报告被接收的往返时间(RT)、抖动、部分数据包丢失和完全数据包丢失的数据,所有这些数据都可以用来评估流单元61和目标设备之间的链路状况。如图2 所示,反馈单元26收集来自每个流传送器单元22、24的此信息,而控制器执行反馈数据的分析,以基于装置10和如图1所示的每个目标设备13之间的链路状况调整量化器16的量化。在一个实现中,控制器观可在软件中实现,所述软件在处理单元上运行,且控制器观可如在以下伪代码中所陈述地来操作
double getAVTH(double RTT, double PL, double FPL , double Jitter) double rtt_multi= 0.0; double pl_multi = 0.0; double jitter—multi = 0.0; double φ —multi = 0.0; rtt—multi = (RTT==O) ? 0: RTT; pi—multi = (PL<=1) ? PL: (PL/10000); jitter multi = (Jitter<l) Jitter : (Jitter/100000); ¢1 multi = (FPL<=1) ? FPL: (FPL/1000); return (rtt—multi + pl_multi + jitter_multi +fj)l_multi);其中输入是从RR得到的往返延迟(RTT)、数据包丢失(PL)、部分数据包丢失 (FPL)和抖动(Jitter)。该方法计算称为链路吞吐量的值,其称为AVTH。每两秒从目标设备得到发送端报告(RR)并每一秒计算AVTH。根据配置,确定AVTH的两个或三个连续值的平均并且计算平均lambda。存在关于lambda的校准值的16个状态
double shape [16] [16] ={ {2.18, -1, -1,-1, -1, -1, -1, -1, -1,-1, -1, -1,-1, -1, -1, -1}, P.18, 2.19, -1,-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
权利要求
1.一种流装置,该流装置接收视频输入并输出流内容,所述流装置包括流传送器单元,其接收视频输入;量化器,其在一量化水平来量化所述视频输入,并生成量化视频;以及一个或多个流单元,其将所述量化视频以流的形式传输到一个或多个目标设备。
2.如权利要求1所述的流装置,还包括转码器,所述转码器把所述视频输入分成一个或多个音频元素和一个或多个视频元素,其中,所述一个或多个音频元素和一个或多个视频元素被馈送到所述量化器中以被量化。
3.如权利要求1所述的流装置,其中,所述一个或多个流单元还包括实时流协议的流单元和超文本传输协议的流单元。
4.如权利要求1所述的流装置,还包括反馈单元和控制器,所述反馈单元从所述一个或多个流单元接收反馈数据,所述控制器使用所述反馈数据确定是否改变所述量化器的所述量化水平。
5.如权利要求4所述的流装置,其中,所述反馈数据还包括接收端报告。
6.如权利要求5所述的流装置,其中,控制器接收包含往返时间、部分数据包丢失值、 数据包丢失值和抖动值的所述接收端报告,并且基于所述往返时间、所述部分数据包丢失值、所述数据包丢失值和所述抖动值计算关于所述量化器的新的量化水平,以调整所述流内容到每个目标设备的比特率。
7.如权利要求2所述的流装置,还包括网络爬虫,所述网络爬虫解析视频输入的链接并下载所述视频输入到所述转码器。
8.一种用于使用流装置以流的形式传输视频的方法,所述方法包括在流传送器单元接收视频输入;使用所述流传送器单元中的量化器在一量化水平来量化所述视频输入,以生成量化视频;在所述量化水平将所述量化视频以流的形式传输到一个或多个目标设备;以及基于所述流传送器单元和所述一个或多个目标设备之间的链路的状况,调整所述量化视频的所述量化水平。
9.如权利要求8所述的方法,还包括使用转码器把所述视频输入分成一个或多个音频元素和一个或多个视频元素,其中,所述一个或多个音频元素和一个或多个视频元素被馈送到所述量化器中以被量化。
10.如权利要求8所述的方法,还包括从一个或多个流单元接收反馈数据,并且其中, 调整所述量化视频的所述量化水平还包括基于所述反馈数据调整所述量化视频的所述量化水平。
11.如权利要求10所述的方法,其中,所述反馈数据还包括接收端报告。
12.如权利要求11所述的方法,其中,控制器接收包含往返时间、部分数据包丢失值、 数据包丢失值和抖动值的所述接收端报告,并且其中,调整所述量化视频的所述量化水平还包括基于所述往返时间、所述部分数据包丢失值、所述数据包丢失值和所述抖动值来调整所述量化视频的所述量化水平。
13.一种开环转码器,该开环转码器将具有第一比特率的第一压缩比特流转码成具有第二比特率的第二压缩比特流,所述转码器包括输入元件,其接收具有第一比特率的第一压缩比特流;逆量化器单元,其接收所述第一压缩比特流并基于对应于第一量化水平的所述第一比特率来生成系数流;量化器,其在第二量化水平量化所述系数流以在所述第二量化水平生成系数流;以及输出元件,其基于在所述第二量化水平的所述系数流生成具有第二比特率的第二比特流。
14.如权利要求13所述的转码器,其中,所述输入元件还包括可变长度解码器,该可变长度解码器生成被馈送到所述逆量化器单元的第一可变长度解码的比特流。
15.如权利要求14所述的转码器,其中,所述输出元件还包括可变长度编码器,该可变长度编码器基于在所述第二量化水平的所述系数流生成具有第二比特率的第二比特流。
16.一种闭环转码器,包括第一转码器环,其将关于第一压缩比特流中的帧的运动矢量从所述转码器的输入元件传递到所述转码器的输出元件,以将所述运动矢量插入到输出压缩比特流中; 逆量化器单元,其基于第一量化水平从所述第一压缩比特流生成系数流; 第二转码器环,其基于来自所述第一压缩比特流的所述系数流和来自所述第一压缩比特流的先前帧的系数流,执行帧间运动补偿;以及量化器,其基于所述帧间运动补偿而在第二量化水平输出系数流。
17.如权利要求16所述的闭环转码器,其中,每个系数还包括离散变换系数。
18.一种量化器,包括输入,其接收具有第一量化水平的第一压缩比特流;逆量化器单元,其在所述第一量化水平执行对所述第一压缩比特流的逆量化,以生成系数集;逆变换单元,其执行逆变换以从所述系数集生成像素数据的帧; 运动补偿单元,其执行像素数据的所述帧和像素数据的先前的帧之间的运动补偿,以生成运动补偿像素数据;变换单元,其基于所述运动补偿像素数据生成系数集;以及量化器,其基于来自所述运动补偿像素数据的所述系数集在第二量化水平执行量化, 以生成具有所述第二量化水平的第二压缩比特流。
19.如权利要求18所述的量化器,还包括量化器环,所述量化器环从所述第一压缩比特流提取运动矢量,并向所述运动补偿单元提供所提取的运动矢量。
20.如权利要求19所述的量化器,还包括可变长度解码器,所述可变长度解码器解码可变长度代码第一压缩比特流,以生成输入到所述逆量化器单元的量化系数集。
21.如权利要求20所述的量化器,还包括对所述第二压缩比特流执行可变长度编码的可变长度编码器。
22.如权利要求21所述的量化器,其中,所述系数还包括离散余弦系数。
23.一种用于量化的方法,包括接收具有第一量化水平的第一压缩比特流;使用在所述第一量化水平操作的逆量化器,基于所述第一压缩比特流生成系数集; 从所述系数集生成像素数据的帧;执行像素数据的所述帧和像素数据的先前的帧之间的运动补偿,以生成运动补偿像素数据;基于所述运动补偿像素数据在第二量化水平生成系数集;以及生成具有所述第二量化水平的第二压缩比特流。
24.如权利要求23所述的方法,还包括从所述第一压缩比特流提取运动矢量并使用所提取的运动矢量执行所述运动补偿。
25.如权利要求M所述的方法,还包括解码可变长度代码以生成输入到所述逆量化器的量化系数集。
26.如权利要求25所述的方法,还包括在所述第二量化水平执行对所述系数集的可变长度编码,以生成所述第二压缩比特流。
27.如权利要求沈所述的方法,其中,所述系数还包括离散余弦系数。
全文摘要
公开了具有内部量化器的流装置,使得可以基于流装置和一个或多个目标设备之间的链路的当前状况来调整流视频的比特率。另外,提供了转码器,其获得较低的复杂性而没有图像质量损失,其中转码器可以是开环转码器或闭环转码器。此外,公开了量化器和方法。
文档编号H04N7/24GK102160377SQ200980137200
公开日2011年8月17日 申请日期2009年9月22日 优先权日2008年9月22日
发明者布莱奈德·萨斯那塔恩 申请人:史密斯微软件公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1