新四季網

用於信道組的最優速率分配的製作方法

2023-06-17 12:27:36 1

專利名稱:用於信道組的最優速率分配的製作方法
技術領域:
本發明涉及在要由多個編碼器編碼的多個數據信道中最優分配位。本發明利用閉環控制器,通過解析每個編碼器生成的複雜度數據流,並使用該複雜度數據來確定分配給每個信道的位的最佳數目而在多個信道中最優分配位。本發明的複雜度數據包括關於每幀的定時、幀類型以及位要求的信息。

背景技術:
過去的十年已看到通過網絡傳送多媒體數據的快速上升,尤其是數字視頻的傳輸,以提供諸如視頻點播、數位電視廣播以及視頻內容分發等服務。然而,數字視頻在其原始或未壓縮狀態包括龐大數量的數據,這使視頻壓縮成為必要以及使能夠傳遞視頻內容。此外,內容提供商、出版商或廣播商常常需要實時或接近實時將多個信道的已壓縮視頻數據結合併發送或多路復用到具有固定位速率的單一輸出流中。因此,在本領域中需要在多媒體數據的多個信道中最優分配固定數目位的系統、方法以及電腦程式產品。
多媒體數據採用本領域中已知的許多形式,包括音頻、圖片和視頻數據。例如,圖片數據被存儲為使用包括GIF、JPEG、TIFF、BMP以及PDF的各種原始或壓縮格式的二進位數據文件。音頻數據包括音頻波形(WAV)、MP3、音頻交換文件格式(AIFF)、音樂設備數字接口(MIDI)以及聲音文件(SND)。視頻數據包括QuickTime以及運動圖像專家組(MPEG)格式。在Video Communication(1)Image and VideoCompressionS tandards,V.Bhaskaran and K.Konstantinides,Kluwer Academic,1995的書中提供了該主題的進一步論述,其內容在此完整納入本說明書。
圖1是圖解用於使用網絡化計算機系統傳遞多媒體數據的示例系統的圖。計算機系統101、102、103和網絡105可以是圖3的實施方案中描述的類型,下面將更詳細地討論該實施方案。在網絡105上,在稱為客戶端設備的一個計算機上運行的稱為客戶端處理(此後,簡稱為「客戶端」)的處理向稱為伺服器處理(此後,稱為「伺服器」)的另一處理髮出請求,該伺服器處理是在連接到網絡105的稱為伺服器設備103的計算機上執行的。伺服器103執行該服務,通常將信息發送回該客戶端。
伺服器設備103包括多媒體數據和媒體傳輸處理104,媒體傳輸處理104通過網絡105向媒體伺服器設備102傳送數據。媒體伺服器設備102包括媒體伺服器處理107,媒體伺服器處理107制約通過網絡105向媒體客戶端設備101上的媒體顯示處理112傳送的數據。媒體顯示處理112向用戶顯示該多媒體數據。
在一些實施方案中,區域網105可以包括媒體客戶端設備101和媒體伺服器設備103之間的直接連接。在其它實施方案中,網絡105包括一個或多個將信號從一種類型轉換到另一種類型的轉碼機、用於壓縮數據的編碼器或將多個數據信道結合到一個輸出信道的多路復用器。在各種實施方案中,網絡105包括一個或多個有線、無線或光鏈路。
在多種實施方案中,網絡105可以是使用網際網路協議(IP)的網絡。在其它實施方案中,網絡105也是非IP網絡,諸如衛星通信鏈路網絡或有線電視鏈路網絡。在有線電視鏈路上,媒體伺服器設備102是在電纜頭端,而媒體客戶端設備101可以是電視機頂盒或個人計算機。
可以根據諸如實時或接近實時編碼和傳遞的計算資源需要、存儲限制、帶寬限制或媒體設備101顯示限制等因素,將視頻數據編碼或轉碼成各種格式。
在一些實施方案中,視頻數據被編碼成兼容MPEG的數據流。MPEG是定義MPEG視頻解碼器的操作和MPEG流的合成的視頻壓縮標準。MPEG流內的視頻數據表示視頻圖片或幀的序列。MPEG中用於表示視頻幀的信息量根據下面因素變化很大,諸如包括色彩空間等的可視內容、時間可變性、空間可變性、人類視覺系統以及壓縮視頻數據的技術等。
可以使用三類圖片或幀數據編碼MPEG數據幀內(「I幀」)數據、前向預測幀(「P幀」)數據以及雙向預測幀(「B幀」)數據。I幀數據包括完全重建幀所需要的全部信息。P幀數據包含表示幀和相應於在前I幀或P幀數據的幀之間的差別的信息。B幀數據包含表示在前I幀數據或P幀數據以及隨後I幀數據或P幀數據之間的相對移動的信息。MPEG包括各種編碼標準,所述編碼標準包括MPEG1、MPEG2以及MPEG4。在國際標準ISO/IEC 138181,2和3中定義了MPEG2,並且這些標準的內容在此通過引證的方式納入本說明書。。
MPEG通過除去視頻幀(幀內編碼)內的空間冗餘以及除去連續視頻幀(幀內編碼)之間的時間冗餘而降低了表示視頻數據所需要的位的數目。每個幀是由兩個隔行掃描場組成的,所述的隔行掃描場是像素行的交替組。每個場是由多個宏塊(MB)組成的。每個MB是二維像素陣列,典型地是16行,每行16個像素。每個MB包括四個亮度塊,典型地是每塊8行,每行8個像素;以及兩個色度塊,也是每塊8行,每行8個像素。運動補償是用於降低時間冗餘,典型地以宏塊為基礎降低。使用離散餘弦變換(DCT)降低空間冗餘,典型地以塊為基礎降低。在運動補償期間,計算表示在參考幀上的像素位置的運動向量,所述參考幀是不同的、當前幀上的具體宏塊的基礎。然後使用DCT計算參考宏塊和具體宏塊之間的差別。
每個MPEG視頻序列是由一系列圖片組(GOP)組成的。每個GOP是由一系列I、P和B幀組成的,並且每個GOP以I幀開始。如本領域內所公知的,「片」是一系列宏塊,並可以組成場或場的一部分。
為了解碼和顯示,MPEG流中的數據被發送到諸如圖3的實施方案中的計算機系統的客戶端計算機系統。例如,MPEG流是通過網絡105被發送到媒體設備110。
MPEG流必須符合MPEG標準中闡述的特定規範。例如,MPEG流可以每秒提供30幀,但是每秒不應提供使客戶端計算機的緩衝器溢出的那麼多位。通過要求所接收的MPEG流是恆定或固定的位速率可以減輕緩衝器的溢出。MPEG數據信道也可以包括可變的位速率流,其中使用可變的總位數編碼諸如GOP等幀集。
通常,諸如內容提供商、分發商以及出版商等實體需要結合多個MPEG兼容流,並通過固定帶寬信道發送該輸出。這種情況下,信道的各自位速率是自由改變的,只要總位速率是固定的。圖2提供了將輸入流編碼以產生多個可變位速率(VBR)輸出流的編碼器201、202、203組的邏輯概述,然後所述多個可變位速率(VBR)輸出流的每一個被輸入到多路復用器204(「mux」)。多路復用器204接受輸入流,對數據進行緩衝,並發送出期望的恆定位速率(CBR)數據流。因此,現有技術存在下面的挑戰向每個編碼器最優分配位速率,使得多路復用器可以以恆定位速率傳遞輸出流而不發生緩衝器溢出,而同時向每個信道最優分配位,以提供最佳可能的輸出質量。


發明內容
本發明提供了在包含要通過多個編碼器編碼的數據的多個信道中最優分配位的總數的方法、系統以及電腦程式產品。本發明利用閉環控制器,通過解析每個編碼器生成的複雜度數據流,並且使用該複雜度數據來最優確定分配給每個編碼信道的位的數目而在多個信道中最優分配位。本發明的複雜度數據包括關於每幀的定時、幀類型以及位要求的信息。
本發明的附加優點將部分地在下面的說明書中進行闡述,或可以從本發明的實踐中了解到。本發明的優點將通過所附權利要求中具體指出的元件以及結合來實現和獲得。應理解上述概要描述以及下面的詳細說明都只是示意性和解釋性的,而不是限制所要求保護的本發明。



納入本說明書中並組成本說明書的一部分的附解了本發明的實施方案,並且與說明書一起來解釋本發明的原理。本附圖和說明書中描述的實施方案決不限制和限定本發明的範圍。
圖1是圖解用於通過網絡使用計算機硬體傳遞多媒體數據的系統的框圖。
圖2是圖解向多路復用器發送數據的多個編碼器的框圖。
圖3是圖解本發明的一個實施方案的計算機系統的框圖。
圖4圖解向輸出單一恆定位速率流的多路復用器發送數據的多個可變位速率編碼器。
圖5圖解根據本發明的一個實施方案中的更新間隔分割的多個MPEG信道GOP。
圖6是圖解用於使用固定數目的位來編碼多個數據信道的本發明的一個實施方案的流程圖。
圖7是圖解用於確定分配給多個視頻信道中的一個視頻信道的位的數目的本發明的一個實施方案的流程圖。

具體實施例方式 在公開和描述本發明方法、系統以及電腦程式產品之前,應該理解本發明不限於具體的方法、具體的組件或特定的組合,因為這些當然是可變的。也應該理解這裡所使用的技術術語只是為了描述特定的實施方案,而不是用於限制。
如說明書和所附權利要求中使用的,單數形式「一」、「一個」以及「該」包括複數對象,除非上下文中另有明確指出。因而,例如,提到「一編碼器」包括編碼器的混合物,提到「一編碼器」包括兩個或更多個這樣的編碼器的混合物等。
範圍在這裡可以表達為從「約」一個具體值,和/或到「約」另一具體值。當表達這樣的範圍時,另一實施方案包括從該一個具體值,和/或到該另一個具體值。類似地,當使用先行詞「約」將值表達為近似值時,應該理解,該具體值構成另一實施方案。還應理解,每一個範圍的端值,不管是與另一端值相聯繫,還是與另一端值不相聯繫,都是有意義的。
「任選的」或「任選地」意思是指接下來描述的事件或情況可能發生也可能不發生,而且該描述包括了所述事件或情況發生的情形及沒有發生的情形。
除非另有明確表示,不應將這裡所闡述的任何方法或實施方案解釋為需要以具體順序執行其步驟。因此,當方法權利要求在權利要求書或說明書中沒有明確聲明這些步驟限於具體的次序時,絕不意旨在任何方面推斷次序。這適用於任何可能的用於解釋的非表述基礎,包括關於步驟或操作流程的安排的邏輯主題,從語法組織或標點符號推出的明顯意義,或說明書中描述的實施方案的數目或類型。此外,儘管當前申請中提供的各種實施方案涉及方法、系統或電腦程式產品的法定類別,但是應注意到可以以任何法定類別執行、具體化或要求保護本發明。
本發明的系統、方法和電腦程式產品涉及通過使用信道複雜度數據來確定分配給每個信道的位數而在多個信道中分配固定數目的位的新穎方法,並且在這裡被稱為本發明的「方法」或「多種方法」。因而,可以使用被編程為執行本發明的各個實施方案的處理器執行本發明的方法。圖3是圖解用於執行所公開的方法的示例操作環境的框圖。本示例操作環境只是操作環境的實例,而不意旨暗示對操作環境體系結構的使用範圍或功能性的任何限制。也不應將操作環境解釋為對示例操作環境中圖解的組件中的任何一個或組合有任何依賴性或要求。
可以利用許多其它通用或專用計算系統環境或配置運行該方法。適合該方法使用的已知計算系統、環境和/或配置的實例包括但不限於個人計算機、伺服器計算機、便攜計算機設備以及微處理器系統。另外的實例包括機頂盒、可編程消費者電子產品、網絡PC、微型計算機、主機計算機、包括任何上述系統或設備的分布式計算環境等。
本方法可以描述在由計算機執行的諸如程序模塊等的計算機指令的一般上下文中。通常,程序模塊包括執行具體任務或實現具體抽象數據類型的例程、程序、對象、組件、數據結構等。本方法也可以實踐在由通過通信網絡連接的遠程處理設備執行任務的分布式計算環境中。在分布式計算環境中,程序模塊可以位於包括存儲器存儲設備的本地和遠程計算機存儲媒介中。
這裡所公開的方法可以通過計算機301形式的通用計算設備實現。計算機301的組件可以包括但不限於一個或多個處理器或處理單元303、系統存儲器312以及系統總線313,該系統總線313將包括處理器303的各種系統組件連接到系統存儲器312上。
圖3中的處理器303可以是x-86兼容處理器,包括因特爾公司製造的奔騰IV或超微半導體設備(Advanced Micro Device)公司製造的速龍(ATHLON)64處理器。也可以使用利用其它指令集的處理器,包括蘋果、IBM或NEC製造的處理器。
系統總線313表示總線結構的幾種可能類型中的一種或多種,包括存儲器總線或存儲控制器、外圍總線、圖形加速埠以及使用各種總線體系結構中任何一種的處理器或局部總線。作為實例,這樣的體系結構可以包括工業標準體系結構(ISA)總線、微通道體系結構(MCA)總線、增強型ISA(EISA)總線、視頻電子標準協會(VESA)局部總線以及也被稱為Mezzanine總線的外圍部件互聯(PCI)總線。該總線以及本說明書中規定的所有總線也可以是通過有線或無線網絡連接實現的。總線313以及本說明書中規定的所有總線也可以是通過有線或無線網絡連接實現的,並且每個子系統可以包括在處於物理上分離位置的一個或多個遠程計算設備314a、b、c內,所述子系統包括處理器303、大容量存儲設備304、作業系統305、應用軟體306、數據307、網絡適配器308、系統存儲器312、輸入/輸出接口310、顯示適配器309、顯示設備311以及人機接口302,所述一個或多個遠程計算設備314a、b、c是通過有效實現完全分布系統的所述形式的總線連接。
圖3中的作業系統305包括諸如MICROSOFT WINDOWS XP、WINDOWS2000、WINDOWS NT或WINDOWS 98,以及REDHAT LINUX、FREE BSD或SUN MICROSYSTEMS SOLARIS等作業系統。此外,應用軟體306可以包括諸如MICROSOFT INTERNET EXPLORER或MOZILLA FIREFOX等網頁瀏覽軟體,以使用戶能夠在顯示設備311上查看HTML、SGML、XML或任何其它適當構建的文檔語言。
計算機301典型地包括各種計算機可讀媒介。這樣的媒介可以是計算機301可訪問的任何可獲得的媒介,並且包括易失性和非易失性媒介、可移動和不可移動媒介。系統存儲器312包括諸如隨機訪問存儲器(RAM)的易失性存儲器形式的計算機可讀媒介,和/或諸如只讀存儲器(ROM)的非易失性存儲器形式的計算機可讀媒介。系統存儲器312典型地包括諸如數據307之類的數據,和/或諸如由處理單元303可立即訪問的和/或當前操作的作業系統305以及應用軟體306之類的程序模塊。
計算機301也可以包括其它可移動/不可移動、易失性/非易失性計算機存儲媒介。作為實例,圖3圖解了大容量存儲設備304,其可以為計算機301提供計算機代碼、計算機可讀指令、數據結構、程序模塊以及其它數據的非易失性存儲。例如,大容量存儲設備304可以是硬碟、可移動磁碟、可移動光碟、磁盒或其它磁存儲設備、快閃記憶體卡、CD-ROM、數字多用途光碟(DVD)或其它光存儲、隨機訪問存儲器(RAM)、只讀存儲器(ROM)、電可擦除可編程只讀存儲器(EEPROM)等。
可以將任何數目的程序模塊存儲在大容量存儲設備304上,作為實例包括作業系統305和應用軟體306。作業系統305和應用軟體306的每一個(或它們的結合)可以包括編程元件和應用軟體306。數據307也可以存儲在大容量存儲設備304上。數據304可以存儲在本領域公知的任何一個或多個資料庫中。這樣資料庫的實例包括


Access、

SQL Server、

mySQL、PostgreSQL等。該資料庫可以是集中式的或分布在多個系統中。
用戶可以通過輸入設備(未示出)將命令和信息輸入到計算機301中。這樣的輸入設備的實例包括但不限於鍵盤、指示設備(例如,「滑鼠」)、麥克風、控制手柄、串行埠、掃描儀、觸控螢幕裝置等。這些和其它輸入裝置可以通過連接到系統總線313的人機接口302連接到處理單元303,但是也可以通過諸如並行埠、串行埠、遊戲埠或通用串行總線(USB)等其它接口和總線體系結構連接。
顯示設備311也可以通過諸如顯示適配器309等接口連接到系統總線313。例如,顯示設備可以是陰極射線管(CRT)監控器或液晶顯示器(LCD)。除了顯示設備311外,其它外圍輸出設備可以包括諸如揚聲器(未示出)以及印表機(未示出)等組件,這些組件可以通過輸入/輸出接口310連接到計算機301。
計算機301可以使用到一個或多個遠程計算設備314a、b、c的邏輯連接而在網絡環境中運行。作為實例,遠程計算設備可以是個人計算機、便攜計算機、伺服器、路由器、網絡計算機、對等設備或其它公共網絡節點等。計算機301和遠程計算設備314a、b、c之間的邏輯連接可以是通過諸如區域網(LAN)、普通的廣域網(WAN)或網際網路等網絡而進行連接的。這樣的網絡連接可以是通過網絡適配器308。
儘管公認的是應用程式和其它可執行程序組件,諸如作業系統305,在不同的時間可以位於計算設備301的不同存儲組件中,並且可以由計算機的數據處理器執行,但是為了圖解的目的,這樣的程序和組件在這裡圖解為分離的塊。應用軟體306的實現可以存儲在某種形式的計算機可讀媒介上,或在某種形式的計算機可讀媒介之間傳送。所公開的方法的實現也可以存儲在某種形式的計算機可讀媒介上,或在某種形式的計算機可讀媒介之間傳送。計算機可讀媒介可以是計算機可訪問的任何可獲得的媒介。作為實例,而不是為了限制,計算機可讀媒介可以包括「計算存儲媒介」和「通信媒介」。「計算機存儲媒介」包括以任何方法或技術實現的易失性和非易失性、可移動和不可移動的媒介,用於存儲諸如計算機可讀指令、數據結構、程序模塊或其它數據等信息。計算機存儲媒介包括但不限於RAM、ROM、EEPROM、快閃記憶體或其它存儲技術、CD-ROM、數字多用途光碟(DVD)或其它光存儲、磁盒、磁帶、磁碟存儲或其它磁存儲設備、或可以用於存儲期望的信息並可以被計算機訪問的任何其它介質。
閉環控制器描述 在本發明的一個實施方案中,圖4的閉環控制器401(CLx)用於在多個信道中最優分配位速率。可以在圖3的實施方案中描述的計算機系統上執行CLx 401。CLx 401是中央帶寬監控和分配方法,與適當配置的編碼器402、403、404聯合工作,以管理單個的帶寬分配並將從多路復用器405輸出的視頻質量最優化。也可以在圖3的計算機系統上以各種實施方案執行編碼器402、403、404。
閉環控制器(CLx)401通過解析複雜度數據(C0-Cn-1)的流而分配位速率,該複雜度數據可以由各個實施方案中的每個編碼器402、403、404生成。
複雜度數據可以作為編碼之前每個編碼器中的預處理和運動估計的副產品產生。複雜度數據包括關於每幀的定時、幀類型以及位要求的信息。
在一個實施方案中的CLx401通過向前查找如圖5中所示的兩個等距的時間間隔而執行位速率分配。圖5圖解了多個MPEG信道,每個信道包括GOP 501的流,並且GOP 501是關於更新間隔Tu分割的。在圖5中,每條線上的橢圓表示GOP 501的邊界。這些邊界可以落在彼此相關的任何點和更新間隔Tu上。
在周期性間隔Tu,CLx401檢查所有複雜度數據,並且服從下列約束向編碼器402、403、404分配速率 1.速率僅在GOP邊界改變; 2.最大的GOP大小是TN s; 3.CLx401必須至少考慮來自每個編碼器的複雜度數據的TR≥TN s性能; 4.CLx401利用Tu的時間段更新速率。
給定這些約束,本領域內的普通技術人員將看到TL≥TN+TR是每個編碼器402、403、404複雜度估計處理必須在編碼處理前的最小時間量。
在時間t0+2TU,當前實施方案中的每個編碼器402、403、404編碼時間t0-(或更早)時的幀,並且估計時間t0+2Tu+(或更遲)的複雜度。閉環控制器401必須在時間t0+2Tu計算時間間隔(t0,t0+Tu)內開始的所有GOP 501的速率。同時,CLx 401將為間隔(t0+Tu,t0+2Tu)中所有幀分配目標數目的位。
最優位分配 本發明使用模型分配位。一個模型通過下面等式給出 等式1位產生模型 其中S是複雜度測量,D是重構幀的失真,B是幀所需要的位數,K1和K2是常數。當在多個幀中分配位時,本模型提供了適合的準確性。
在當前的實施方案中,通過在間隔(t0,t0+Tu)和(t0+Tu,t0+Tu)期間分割這些幀,並且對每個間隔內的單個表示為Ci的幀複雜度求和來計算S。可以以各種方法計算幀複雜度Ci。一種方法是使用直接從預處理產生的複雜度測量。預處理包括諸如圖像縮放、場景變化檢測、底片檢測、噪音過濾、轉換幀編碼次序以及粗糙的運動估計等任務。這些操作一起提供了複雜度測量的充足資源。在本發明的一個實施方案中,計算下面類型的度量 1.通過下面等式給出宏塊內的複雜度 其中p[b][x][y]是在係數b表示的8×8塊中的位置(x,y)的像素值。對於4:2:0視頻,每個宏塊包括六個8×8塊。而且μ[b]是具有係數b的8×8塊中的p[b][x][y]的平均值。
2.通過下面等式給出宏塊間的複雜度(用於P和B幀) 其中r[b][x][y]是在係數b表示的8×8塊中的位置(x,y)最佳預測的宏塊的像素值。
注意,對於B幀,每個宏塊存在向前和向後預測的兩個間測量。
3.通過利用MPEG2 VLC表編碼當前塊和之前塊之間的最優預測向量中的差別而計算估計的運動向量位(用於P和B幀)。
然後,通過對該幀中每個宏塊的Cinter和Cintra的最小值進行求和而計算Ci。實驗結果表明對於多幀,該複雜度足夠準確地符合等式1。在本發明的一個實施方案中,通過使用反饋可以獲得更好的準確度,也可以用於計算每個信道的k1和k2的精確值。這種情況下,我們假定k1和k2對於所有信道是相同的,以簡化最優化過程。
上述的最終宏塊度量是估計的運動向量位。如同複雜度一樣,這些宏塊值可以被求和,以獲得每幀所需要的運動向量位的總數的估計。這些位可以以點對點(ad-hoc)的方式被因子化包括到複雜度估計中,或它們可以直接用於下述的分配策略中。具體而言,所估計的位可以簡單地在分配前從所分配的總位中減去,然後在分配完所有的位後添加回總位中。
然後將間隔(t0+Tu,t0+2Tu)中的幀分成M組,兩種可能的分組是 (1)M=N並且Si=間隔(t0+Tu,t0+2Tu)中信道i的所有複雜度的和。
(2)M=在間隔期間所有或部分GOP的數目
不管間隔(t0+Tu,t0+2Tu)中的幀的分割,我們具有用於速率的M模型。在所有情況下,我們需要 其中RT是總目標速率,Tu是更新時間,Bi是分配給分割i的位數。
至少存在兩個對當前實施方案的模型有用的解決方案。在第一解決方案中,我們最小化

換句話說,我們設法最小化時間間隔(t0+Tu,t0+2Tu)內所有信道上的總失真。使用拉格朗日乘子的方案給出 等式2最小化總誤差的最優位分配 如果我們希望最小化最大失真,那麼會獲得第二解決方案。這種情況下,所有失真必須相等,使得Di=D。用約束條件一起解出該等式給出 等式3最小化最大誤差的最優位分配 本領域內的普通技術人員可以用其它位產生模型來替代,以使用上面公開的CLx 401最優分配位,而不背離本發明的精神和範圍。
考慮到上文所述,已公開了在多個數據信道中最優分配位的許多方法。在圖6的實施方案中圖解了在多個多媒體信道中分配位數的一種方法。首先,在編碼之前處理或預處理每個信道601,以通過分析每個信道而產生複雜度數據。第二,將所生成的複雜度數據聚集在閉環控制器602,所述閉環控制器用於確定分配給每個信道的位數。第三,閉環控制器基於複雜度數據計算分配給每個信道的位速率603。第四,將所計算的每個信道的位速率從閉環控制器傳送到編碼器604。最後,使用所傳送的位速率編碼每個信道605。
本發明的另一實施方案可以在圖7中看到,其圖解了用於確定分配給視頻信道中的幀組的位數的方法。首先,在圖7的實施方案中,在對信道編碼前將視頻信道分割成兩個時間間隔701,其中時間間隔包括第一間隔和第二間隔。第二,對第一間隔計算第一幀複雜度,以及對第二間隔計算第二幀複雜度702。然後,對第一幀複雜度求和703,以及對第二幀複雜度求和704。
然後,在圖7的實施方案中,將第二間隔分割成若干幀組705。第六,模型化第二間隔中的幀組的位速率706。最後,使用模型確定分配給信道中的每個幀組的位數707。
閉環控制器實現 在本發明的另一實施方案中,閉環控制器,諸如圖4的控制器,被實現為在使用Linux作業系統的計算機系統上執行的CLx主機控制器處理,不需要CLx主機和編碼器一起位於相同的系統上。編碼器運行為網絡伺服器,在已知埠上監聽來自CLx主機的連接。CLx主機是網絡客戶端,創建到編碼器的UDP/IP(數據報)連接,以傳送控制信息和複雜度估計。適當的操作需要整個系統的各個時間組件同步。操作信息是分布式的,具有CLx主機管理的信息和單個編碼器管理的其它信息。閉環控制器和編碼器都可以在圖3中描述的示例計算機系統上運行。該方法按下面部分中描述的階段運行。
啟動階段 在一個實施方案中,在正常系統啟動期間,開始CLx多線程處理。在啟動時獲得的基本配置信息包括 激活主機(確定CLx過程當前是否正控制編碼器)。
所管理的編碼器共享的聚集帶寬。
所管理的編碼器的IP位址的列表。
由於其它配置信息也是分布式的,所以CLx主機在啟動階段獲得基線(baseline)信息。此外,創建用於分配算法的適當操作的時基關聯。除非可以從當時配置的所有編碼器獲得所需要的信息,否則CLx主機將不完成初始啟動階段。如果所有編碼器都不響應,則主機發出警報,並連續地嘗試獲得啟動所需要的信息。需要時間關聯,以將編碼器加到管理的組中。在啟動階段獲得初始的關聯。
對於每個管理的編碼器,成功的啟動包括下面這些步驟 1.創建CLx主機和編碼器之間的UDP連接。
2.創建系統時鐘和PCR時間關聯。
3.獲得每個編碼器閉環配置信息。
4.向編碼器發送開始命令。
5.從編碼器請求複雜度估計。
穩定狀態 在正常的穩定狀態操作期間,CLx控制器 處理來自管理的編碼器的複雜度估計。
向管理的編碼器發出速率目標。
維護時間關聯。
在一個實施方案中,以幀速率從編碼器發送複雜度估計,並積聚在CLx控制器。以大致的GOP速率,CLx控制器處理產生每個編碼器的目標編碼速率的複雜度估計。傳遞到編碼器的每個目標速率包括發送複雜度估計的新份額的授權。
誤差檢測和恢復階段 在一個實施方案中,檢測到的和自動恢復的主要非運營商引起的誤差是缺少及時的複雜度估計,這導致不能計算出錯編碼器的目標速率,或不能計算是否發生分配算法的未檢測到的失敗。
時間相互關係階段 控制器使用加到系統之間傳送的消息中的時間戳而將本地系統時鐘與遠程編碼器系統時鐘同步。下面所指的所有時域信息是在多路復用器的時域內。
速率分配算法 在本發明的一個實施方案中,速率分配算法以規則的間隔執行,所述規則的間隔是通過所有編碼器的最大GOP大小設置的。當分配算法執行時,其分析最後兩個時間間隔接收的所有複雜度,並且分配在最早的時間間隔中開始的每個編碼器上的每個GOP的目標位數。在一個實施方案中,計算分配給每個GOP的目標位,以最優化質量度量,而同時滿足在該間隔中分配的總位數的約束條件。可以根據系統的應用設置所用的質量度量和約束條件。速率分配算法的輸出是每個編碼器中的每個GOP的目標位速率。該輸出被發送回該組中的每個編碼器,以完成環路。
通過以規則的間隔分配位而滿足整個信道約束條件。選擇在每個間隔中分配的位的和,使得準確滿足總目標速率。然而,在任何具體短的時間段內,編碼器的組的總平均速率可以相對目標明顯變化。可以應用約束條件來降低該可變性,但是預設的操作模式選擇速率分配,以最小化失真並滿足簡單的最小化/最大化位速率約束條件。
可以通過使用幾個邏輯函數執行一個實施方案的位分配方法,將更詳細地描述該邏輯函數。首先,分配速率(AssignRate)函數是向用於在時間段[Tcur-2Tu,Tcur-Tu)內開始的GOP的所有CLx參與方分配和返回最終速率(RATE)的頂級例程。該例程也向用於時間段[Tcur-Tu,Tcur)的所有組分配初始位(BIT)。該初始位可以在下一調用分配速率(函數)中改變。下面,在本發明的一個實施方案中,詳細描述分配速率調用的函數。分配速率函數調用各種其它函數,以最優地確定每個信道的位速率,包括收集概要(CollectSummaries)、界線位(BoundBits)、計算位(ComputeBits)、設置位(SetBits)、片段位(ClipBits)、重複(Repeat)以及計算速率(CalculateRates)。
對於某些步驟,本說明書也包括偽碼,本領域內的普通技術人員可以使用該偽碼來更容易地實現本發明的速率分配算法。所提供的偽碼的變量、方法、函數、邏輯和流程絕不意味著限制或限定該算法如何在各個實施方案中執行。
將使用下面的偽碼變量,並且只用於說明目的 N=信道數; S[1][x]=在時間段[Tcur-Tu,Tcur)中的複雜度概要數x。x的最大值依賴數據和N; S[1][x]=Si如果目標是最小化總失真; S[1][x]=sqrt(Si)如果目標是最小化最大失真; S
[x]=時間段[Tcur-2*Tu,Tcur-Tu)中的複雜度概要數x; T[y][x]=很短時間內組S[y][x]的長度; B[y][x]=分配給組S[y][x]的位; C0=S
[x]中x的最大數; C1=S[1][x]中x的最大數; Tcur=當前時間; Ba=調整位; K=迭代數; Bt=目標位; M1[i]=編碼器i在時間段[Tcur-Tu,Tcur)中全部或部分GOP的數目;以及 M0[i]=編碼器i在時間段[Tcur-2Tu,Tcur-Tu)中全部或部分GOP的數目。
CollectSummaries函數聚集輸入的幀複雜度,以形成時間段[Tcur-T,Tcur)中所有幀的組複雜度。組開始於I幀或該時間段中任何類型的第一幀。類似地,組結束於I幀或任何時間段中的最後幀。在一個實施方案中,利用點對點因素修改下面的複雜度S[y][x],以給出特殊環境中的較好結果。例如,當發現衰減、亮度閃爍或非常短的GOP時增加S[y][x]。所有這些條件將降低位產生模型的準確度,所以改變S[y][x]的值有時是有根據的。然而,這些調整隻是短暫的現象。
CollectSummaries偽碼 C0=C1;//時隙時移一位 S
[*]=S[1][*]; M0[*]=M1[*]; C1=0; ResetS[1][*]; 解析幀類型並定時來計算M1[*] for(i=0;i<N;i++){ for(j=0;j<M1[i];j++){ S[1][C1]=來自編碼器i的組j的複雜度概要;C1++;} } BoundBits函數計算在[Tcur-2Tu,Tcur)中每個組的最小/最大位分配約束條件。在一些實施方案中,可以限制可分配給每個GOP的位的數目。至少,每個編碼器具有最小和最大的位速率。這是可以應用下行流設備或編碼器的約束條件的算法部分。可以包括任何導致限制分配給GOP的位的數目的約束。也可以在本步驟應用信道約束條件。
BoundBits偽碼 Bmin[1][x]=可以分配給S[1][x]的位的最小數目 Bmin
[x]=可以分配給S
[x]的位的最小數目 Bmax[1][x]=可以分配給S[1][x]的位的最大數目 Bmax
[x]=可以分配給S
[x]的位的最大數目 for(i=0;i<2;i++){ for(j=0;j<Ci;j++){ 基於當前分配的位計算Bmin[i][j] 基於當前分配的位計算Bmax[i][j] } 在上述的循環中,本領域內的普通技術人員將意識到可以發生Bmin[i][j]=Bmax[i][j]的情況,這對屬於跨Tcur-2 Tu的GOP、在[Tcur-2Tu,Tcur-Tu)中的所有組為真。
ComputeBits函數計算要分配的目標位數並設置位分配方案。在第一次通過該循環時,目標簡單地是Rt*Tu(即,在時間間隙[Tcur-Tu,Tcur)中可獲得的位的總數)。通過我們已處理多少迭代(即,K)確定分配方案。最初,分配方案是最優的,並且重新分配所有位;然而,該方案可能不收斂。最後,分配方案轉換到添加模式(additive mode),以強制收斂。ComputeBits偽碼if(Ba==0){Bt=Rt*Tu;//第一次通過該循環 }else{Bt=Ba;if(K>Kopt){break;//跳出循環以強制收斂}for(i=0;i<2;i++){for(j=0;j<Ci;j++){ if(Bmin[i][j]==Bmax[i][j]){ 繼續; }if(B[i][j]==Bmin[i][j]&&Ba>0){Bt+=B[i][j]; 繼續; } if(B[i][j]==Bmax[i][j]&&Ba<0){ Bt+=B[i][j]; 繼續; } if(B[i][j]!=Bmax[i][j]&&B[i][j]!=Bmin[i][j]){ Bt+=B[i][j]; 繼續; }} } SetBits函數使用ComputeBits提供的目標在時間段[Tcur-2Tu,Tcur)中分配位。這是有效應用等式2和等式3的步驟。
SetBits偽碼 St=0; for(i=0;i<2;i++){ for(j=0;j<Ci;j++){ if(Bmin[i][j]==Bmax[i][j]){繼續; } if(B[i][j]==Bmin[i][j]&&Ba>0){St+=S[i][j];繼續;}if(B[i][j]==Bmax[i][j]&&Ba<0){ St+=S[i][j]; 繼續;} if(B[i][j]!=Bmax[i][j]&&B[i][j]!=Bmin[i][j]){ St+=S[i][j]; 繼續; } } if(St==0){ 達到收斂,不能滿足約束條件。跳到CalculateRates } for(i=0;i<2;i++){ for(j=0;j<Ci;j++){ if(Bmin[i][j]==Bmx[i][j]){ 繼續; } if(B[i][j]==Bmin[i][j]&&Ba>0){if(K<Kopt){ B[i][j]=(S[i][j]/St)*Rt;}else{ B[i][j]+=(S[i][j]/St)*Rt;}繼續; } if(B[i][j]==Bmax[i][j]&&Ba<0){ if(K<Kopt){ B[i][j]==(S[i][j]/St)*Rt; }else{ B[i][j]+=(S[i][j]/St)*Rt; } 繼續;}if(B[i][j]!=Bmax[i][j]&&B[i][j]!=Bmin[i][j]) {if(K<Kopt){ B[i][j]=(S[i][j]/St)*Rt; }else{ B[i][j]+=(S[i][j]/St)*Rt;} 繼續;} } ClipBits函數強制最小/最大位分配滿足約束條件。
ClipBits偽碼 Ba=0; for(i=0;i<2;i++){ for(j=0;jBmax[i][j]){ Ba+=B[i][j]-Bmax[i][j]; B[i][j]=Bmax[i][j]; } if(B[i][j]<Bmin[i][j]){ Ba-=Bmin[i][j]-B[i][j]; B[i][j]=Bmin[i][j]; } } } Repeat函數重複CollectSummaries、BoundBits、ComputeBits、SetBits以及ClipBits函數,直到達到收斂或直到該方法已運行完迭代。
Repeat偽碼 K++; if(K>Kmax||Ba==0){ 跳到CalculateRates; } 跳到BoundBits; CalculateRates函數計算和返回在時間段[Tcur-2Tu,Tcur-Tu)中開始的所有GOP的速率。GOP可以跨越多於上述計算定義的1組,這當GOP在Tcur-Tu越過分配界限時發生。在這種情況下,GOP的總位進而速率來自兩個分離的B[x][y]。CalculateRates偽碼for(i=0;i<2;i++){ for(j=0;j<Ci;j++){ if(S[i][j]與在[Tcur-2Tu,Tcur-Tu)開始的GOP相一致){ 使[i′][j′]表示包含S[i][j]的GOP的開始的組 if(i==I′&&j=j′){ R[i][j]==(B[i][j])/(T[i][j]; }else{ R[i][j]==(B[i][j]+B[I』][j』])/(T[i][j]+T[i′][j′]; } }} } 如上所示,本發明的算法現在已確定分配給多媒體數據的每個信道的位的最優數目,假定總位數和多個數據信道的數目固定。已相對於實施方案闡明了本發明的位分配算法,這些實施方案在任何方面都是說明性的,而不是限制性的。本領域內的普通技術人員將意識到,本發明可以有許多修改和變化,而不背離本發明的範圍。
權利要求
1.一種使用固定數目的總位實時編碼多個數據信道的方法,包括步驟
a.通過在編碼前分析每個信道而預處理每個信道,以產生複雜度數據;
b.將所產生的複雜度數據聚集在閉環控制器;
c.通過閉環控制器基於所產生的複雜度數據而計算分配給每個信道的位速率;
d.將為每個信道計算的位速率從閉環控制器傳送到編碼器;以及
e.使用所傳送的位速率編碼每個信道。
2.根據權利要求1的方法,其中,每個信道包含多媒體數據。
3.根據權利要求2的方法,其中,所述多媒體數據是視頻數據。
4.根據權利要求3的方法,其中,複雜度數據包括關於每個視頻幀的定時、幀類型以及位要求的信息。
5.根據權利要求4的方法,其中,視頻數據具有可變的位速率。
6.根據權利要求5的方法,其中預處理步驟包括預處理每個信道以通過在編碼處理之前對第一時間段和第二時間段的每個信道進行分析而產生複雜度數據的步驟。
7.根據權利要求6的方法,其中該第一時間段跨過時間零前進到更新時間,第二時間段緊接該第一時間段,並且從該更新時間跨過前進到兩倍該更新時間,並且其中噹噹前時間是兩倍該更新時間時從時間零或更早的視頻幀被編碼。
8.根據權利要求7的方法,其中,分配給每個信道的位速率是通過最優化信道失真模型確定的。
9.根據權利要求8的方法,其中,該信道失真模型是通過將信道複雜度求和計算的複雜度測量Si的函數,是該第一時間段的時間段界限的函數,以及該第二時間段的時間段界限的函數。
10.根據權利要求9的方法,其中Bi是位的數目,K1和K2是常數,並且該失真模型通過下面關係定義
11.根據權利要求10的方法,其中Si是通過在該第一時間段和該第二時間段分割幀並將每個分割中的幀複雜度Ci求和而計算的。
12.根據權利要求11的方法,其中該幀複雜度Ci是使用幀間和幀內統計計算的。
13.根據權利要求12的方法,其中該第二時間段中的幀被分成M個組。
14.根據權利要求13的方法,其中組的數目M等於信道的數目,並且信道複雜度Si是該第二時間段中用於該信道的所有複雜度的和。
15.根據權利要求13的方法,其中組的數目M等於該第二時間段中用於該信道的全部或部分圖片組(GOP)的數目。
16.根據權利要求13的方法,其中對於速率、總目標速率RT、更新時間Tu有M個模型,分配給組Mi的位的數目Bi通過下面關係表示
17.根據權利要求16的方法,其中該失真模型是用於最小化在該第二時間段中所有信道上的最大失真。
18.根據權利要求16的方法,其中該失真模型是用於通過使用下列關係解出失真模型而最小化在該第二時間段中所有信道上的最大失真
19.根據權利要求16的方法,其中該失真模式是用於最小化在該第二時間段中所有信道上的最大誤差。
20.根據權利要求16的方法,其中該失真模型是用於通過使用下列關係解出失真模型而最小化在該第二時間段中所有信道上的最大誤差
21.一種用於確定在多個視頻信道中的視頻信道中分配給幀組的位的數目的方法,包括步驟
a.在編碼之前將該視頻信道分割成兩個時間間隔,所述時間間隔包括第一間隔和第二間隔;
b.計算該第一間隔內第一幀複雜度,以及該第二間隔內第二幀複雜度;
c.求和該第一幀複雜度;
d.求和該第二幀複雜度;
e.將該第二間隔分割成若干幀組;
f.將該第二間隔中的幀組的位速率模型化;
g.基於該模型確定分配給每個幀組的位的數目。
22.根據權利要求21的方法,其中分割步驟包括在編碼前將該視頻信道分割成兩個時間間隔的步驟,其中該第一間隔跨過時間零前進到更新時間,該第二間隔跨過該更新時間前進到兩倍該更新時間,並且其中噹噹前時間是兩倍該更新時間時,從時間零或更早的視頻幀被編碼。
23.根據權利要求21的方法,其中計算步驟包括通過預處理該第一間隔中的幀以計算第一幀複雜度,以及通過預處理該第二間隔中的幀以計算第二幀複雜度的步驟。
24.根據權利要求23的方法,其中複雜度數據包括幀間統計和幀內統計。
25.根據權利要求24的方法,其中該幀間統計和幀內統計包括宏塊幀內複雜度、宏塊幀間複雜度以及估計的運動向量信息。
26.根據權利要求21的方法,其中分割步驟包括將該第二間隔分割成等於多個視頻信道中的視頻信道的數目的幀組數的步驟。
27.根據權利要求21的方法,其中分割步驟包括將該第二間隔分割成等於該第二間隔中的全部或部分圖片組的數目的幀組數的步驟。
28.根據權利要求21的方法,其中模型化步驟包括模型化幀組的位速率從而最小化多個信道上的總失真的步驟。
29.根據權利要求21的方法,其中模型化步驟包括模型化幀組的位速率從而最小化多個信道上的最大失真的步驟。
30.根據權利要求21的方法,還包括步驟
a.向編碼器發送所確定的位的數目;以及
b.使用所確定的位的數目對該第二間隔中的幀組編碼。
31.一種使用固定數目的總位實時編碼多個數據信道的系統,該系統包括
a.用於通過在編碼前分析每個信道而預處理每個信道以產生複雜度數據的裝置;
b.用於聚集所產生的複雜度數據的裝置;
c.用於基於所產生的複雜度數據而計算分配給每個信道的位速率的裝置;
d.用於將所計算的每個信道的位速率傳送到編碼器的裝置;以及
e.用於使用所傳送的位速率編碼每個信道的裝置。
32.一種用於確定在多個視頻信道中的視頻信道中分配給幀組的位的數目的系統,該系統包括
a.用於在編碼之前將視頻信道分割成兩個時間間隔的裝置,所述時間間隔包括第一間隔和第二間隔;
b.用於計算該第一間隔內第一幀複雜度以及該第二間隔內第二幀複雜度的裝置;
c.用於求和該第一幀複雜度的裝置;
d.用於求和該第二幀複雜度的裝置;
e.用於將該第二間隔分割成若干幀組的裝置;
f.用於將該第二間隔中的幀組的位速率模型化的裝置;以及
g.用於基於該模型確定分配給每個幀組的位的數目的裝置。
全文摘要
本發明總體涉及在多個多媒體數據信道中最優分配固定數目的位的系統、方法和電腦程式產品。該位的最優數目是通過預處理每個信道以計算複雜度數據而確定的,然後使用該複雜度數據來確定分配給每個信道的位的最優數目。該位的最優數目可以通過與一個或多個信道編碼器(402-404)通信的閉環控制器(401)確定,並且多媒體信道可以包含符合MPEG-2視頻格式的視頻數據。
文檔編號H04N11/02GK101432981SQ200580036831
公開日2009年5月13日 申請日期2005年10月27日 優先權日2004年10月27日
發明者J·W·莫納克 申請人:Eg技術有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀