帶有量化的視頻流裝備及其方法
2023-06-03 19:16:56
專利名稱:帶有量化的視頻流裝備及其方法
帶有量化的視頻流裝備及其方法布萊奈德 薩斯那塔恩優先權要求/相關申請根據美國法典第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日
發明者布萊奈德·薩斯那塔恩 申請人:史密斯微軟體公司