TWI428022B - Video control method for instant video encoding chips - Google Patents
Video control method for instant video encoding chips Download PDFInfo
- Publication number
- TWI428022B TWI428022B TW097140973A TW97140973A TWI428022B TW I428022 B TWI428022 B TW I428022B TW 097140973 A TW097140973 A TW 097140973A TW 97140973 A TW97140973 A TW 97140973A TW I428022 B TWI428022 B TW I428022B
- Authority
- TW
- Taiwan
- Prior art keywords
- mad
- video encoding
- picture
- encoding chip
- bit
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 32
- 238000013139 quantization Methods 0.000 claims description 29
- 238000004364 calculation method Methods 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- NAWXUBYGYWOOIX-SFHVURJKSA-N (2s)-2-[[4-[2-(2,4-diaminoquinazolin-6-yl)ethyl]benzoyl]amino]-4-methylidenepentanedioic acid Chemical compound C1=CC2=NC(N)=NC(N)=C2C=C1CCC1=CC=C(C(=O)N[C@@H](CC(=C)C(O)=O)C(O)=O)C=C1 NAWXUBYGYWOOIX-SFHVURJKSA-N 0.000 description 1
- 239000000872 buffer Substances 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 235000015096 spirit Nutrition 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/189—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
- H04N19/196—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
- H04N19/198—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters including smoothing of a sequence of encoding parameters, e.g. by averaging, by choice of the maximum, minimum or median value
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/115—Selection of the code volume for a coding unit prior to coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/124—Quantisation
- H04N19/126—Details of normalisation or weighting functions, e.g. normalisation matrices or variable uniform quantisers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/136—Incoming video signal characteristics or properties
- H04N19/14—Coding unit complexity, e.g. amount of activity or edge presence estimation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/146—Data rate or code amount at the encoder output
- H04N19/149—Data rate or code amount at the encoder output by estimating the code amount by means of a model, e.g. mathematical model or statistical model
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/146—Data rate or code amount at the encoder output
- H04N19/152—Data rate or code amount at the encoder output by measuring the fullness of the transmission buffer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/172—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/189—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
- H04N19/196—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/189—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
- H04N19/196—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
- H04N19/197—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters including determination of the initial value of an encoding parameter
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/423—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/43—Hardware specially adapted for motion estimation or compensation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Algebra (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Description
本發明係有關一種視訊編碼中控制流量之技術,特別是指一種即時視訊編碼晶片之流量控制方法。
按,在數位化的時代裡,越來越多的數位照相機、數位攝影機、網路監控系統、網路攝影機(webcam)等商品出現在人們的生活裡,許多人都想要與他人即時分享自己的生活,因此數位視訊通訊協定(IP)的需求正大大的提高。
H.264為一個由視訊編碼專家群組(Video Coding Experts Group,ITU-T VCEG)和國際標準組織ISO/IEC 14496-10之AVC標準動態圖像專家群組(Moving Picture Experts Group,MPEG)所共同制訂之用於高度壓縮數字視頻解碼器之標準,提供高壓縮率、高抗誤性、頻寬適應性等特性,正適合於視訊流之應用。而視訊流不管是在有線或無線的網路裡,在既有的寬頻以及緩衝器的限制下,一個良好的速率控制(Rate Control,RC)的機制去控制編碼位元流(encoded bit-stream)的資料量是重要且必要的。
速率控制演算法是根據前後張畫面之資訊、複雜度去預測下一張所需要之資料量,進而透過量化參數(quantization parameter,QP)的改變來控制每一張畫面的位元量。可是根據以往的速率控制技術與演算法,都只在軟體上面提出相關的想法以及進行驗證。因此,若想要以硬體晶片實作而進一步達到生活商品上的需求,之前的演算法會因需要儲存的資料量太大,計算複雜度太高,而難真正以硬體加速。因此本發明不同於以往的速率控制技術,提出創新的技術去減少資料量的儲存,並大大減低了速率控制的
計算複雜度,更直接提出了設計的硬體架構,因此對通訊協定的實作真正的跨出了一大步。
H.264/AVC標準的速率控制演算法分為兩大類,第一大類為以畫面(frame)為基礎之速率控制演算法,第二大類為以基本單元(Basic Unit)為基礎之速率控制演算法。畫面基礎之速率控制演算法可以在巨區塊(Macro black,MB)管線化的架構之下實現,但是由於每個巨區塊之間所需的資訊量彼此差異很大,因此相對來講畫面基礎之速率控制的演算法對於預測巨區塊的資訊量,反而沒有基本單元基礎之速率控制演算法來的準確。但是基本單元基礎之速率控制演算法確有一大缺點,其在管線化的架構之下難以實現,很多的資訊都在幾個狀態之後才能產生,因此想要實現在巨區塊管線化的架構之下,實有一大難處。
基本單元基礎之速率控制演算法無法實現於管線化架構之下的關鍵點在於必須等該基本單元完全壓縮完畢才能開始計算下一個基本單元的量化參數。如此使得編碼系統決定每一個基本單元的量化參數時,可以考慮整體序列的資訊量配置與視訊影像品質最佳化的效果,此特性將可以使得整體序列有較好的視訊影像壓縮品質,但也因此有一個致命的缺點,即是如果上一個基本單元尚未產生出最後壓縮的位元大小時就無法計算下一個基本單元的量化參數,這個現象我們稱之為資料相依。傳統基本單元基礎之速率控制演算法由於資料相依性的問題導致無法在管線化的硬體架構下實現,而目前關於H.264速率控制演算法的相關文獻裡皆無對此問題提出解決相對應的方法。
第一圖所示為一個四階管線化編碼器之硬體排序。在第二週期的時間點上,當第二個巨區塊的整數型移動估測(Integer Motion Estimation,IME)將要開始動作時,原先應透過第一個巨區塊的資訊經過速率控制演算法所計算出來的量化參數此時尚在
分數型移動估測(Fractional Motion Estimation,FME)而已;而第三個巨區塊所需要由第二個巨區塊產生的量化參數也尚未產生出來。因此若想要提出一個四階管線化的硬體架構,首先要解決的就是如何透過現有的資訊來正確的預測相對的巨區塊資訊量,以便產生量化參數讓編碼器之資訊量符合使用者所需。
因此,本發明即針對上述問題,提出一種即時視訊編碼晶片之流量控制方法,以有效克服上述之該等問題。
本發明之主要目的在提供一種即時視訊編碼晶片之流量控制方法,其係利用計算剩餘位元數預測後續巨區塊所需之位元數。
本發明之另一目的在提供一種即時視訊編碼晶片之流量控制方法,其係將前一張畫面同位置之巨區塊的平均絕對誤差以平均絕對誤差的平均值替代,可更準確預測位元量,得到剩餘位元量。
本發明之再一目的在提供一種即時視訊編碼晶片之流量控制方法,其係可從畫面中選擇一區域調整其清晰度,利用該區域佔畫面之巨區塊比例自動調整。
為達上述之目的,本發明提供一種即時視訊編碼晶片之流量控制方法,其係應用於巨區塊層級之視訊流量控制,包括下列步驟:一畫面進入,其包含複數巨區塊;給予巨區塊中之前數個巨區塊一預設量化參數;預測前數個巨區塊之至少一位元量,並計算巨區塊之一平均絕對誤差(MAD)以做為一第一係數來修正位元量;預測目前之巨區塊所需之一目前位元量;以及將目前位元量減去之前每一巨區塊之位元量,求得一剩餘位元數,並依此判斷畫面之複雜度及應分配到之一目前畫面位元量,以預測下一張畫面之資料量。
底下藉由具體實施例詳加說明,當更容易瞭解本發明之目的、技術內容、特點及其所達成之功效。
本發明提供一種即時視訊編碼晶片之流量控制方法,其係應用於四階或以上之管線化架構,以四階為例,每一畫面包含複數巨區塊(Macro black,MB),如第二圖所示,每一巨區塊皆包括整數型移動估測(Integer Motion Estimation,IME)10、分數型移動估測(Fractional Motion Estimation,FME)12、框內預測(Intra)14及權編碼(Entropy)16等層級。
在本發明中,將先前技術中之速率控制演算法分為兩部分,分別為更新量化參數(UpdateQP)20及更新模組(UpdateModel)18,並將更新量化參數20部分放入整數型移動估測10之前,以及將更新模組18部份放在權編碼16之後。在更新量化參數20中,要計算量化參數須取決於尚可存放之位元量(remaining bits),但是第一個巨區塊0所真正使用多少的位元量得在四個階段後才能在巨區塊4中得到,因此,本發明將前四個巨區塊所需要的量化參數都預設為使用者所給的量化參數。亦即如公式(1)。
if
(MB
_Number
<4)Qp
=Initial
_QP
(1)
而第五個巨區塊MB4,在有了第一個巨區塊MB0所產生出來資訊,如curbuMAD、curbuHeaderBits、curbuTextureBits等資訊後,即可取之當作預測第五個巨區塊MB4所需要之資訊。假若取第一個巨區塊MB0之資訊來預測第五個巨區塊MB4,由於中間已經過了三個巨區塊,因此剩餘位元數之資訊其實是錯誤的,因此我們必須去預測這中間三個巨區塊之位元量來調整剩餘位元數,使得用來評估可分配的位元量可更為正確。如下述公式(2)。
Tr,l
=Tr,l-4
-[(mhdr,l-4
+mtex,l-4
)×3×MADratio1
] (2)
在公式(2)中,T即代表為位元數,其中r代表剩餘位元量,
l則代表為第幾個巨區塊。m則代表為真正產生的bits,hdr代表標頭檔位元,tex為一貼圖位元(texture bits),MADratio1
為第一係數。亦即,公式(2)可預測剩餘位元量的值,將前面第四個巨區塊編碼完後的剩餘位元量減去前面第四個巨區塊所真正使用的位元量的三倍,再乘上一個修正的第一係數,可使預測更為正確。而第一係數之計算方式下述如公式(3)。
MADratio1
=MADPBUact
/MADPd
(3)
在公式(3)中,MADPBUact
為前一巨區塊真正之一平均絕對誤差值(Mean Absolute Difference,MAD),亦即前面第四個巨區塊之絕對平均誤差,而MADPd
為目前預測之巨區塊之平均絕對誤差,其中,平均絕對誤差是一種在影像編碼中常用來當作判斷預測的值是否正確的指標,當平均絕對誤差愈大時,代表預測的值愈不準確,也就是指出目前的視訊影像位移較為迅速。因此,平均絕對誤差可作為本發明中修正預測剩餘位元量之指標,若平均絕對誤差越大則代表其中的三個巨區塊所需的位元量越大;反之,平均絕對誤差越小,則中間三個巨區塊所需之位元量越小。而MADPd
的算法則如公式(4)。
MADPd
=C1
×MADPFAVG
×MADratio2
+C2
(4)
其中C1
、C2
為參數,跟H.264/AVC標準的流量控制演算法內部定義的一樣,可透過更新模組18的部分得到,MADPFAVG
為前一張畫面中所有平均絕對誤差之一平均值,MADratio2
為一第二係數,用以修正前後之該巨區塊的平均絕對誤差。此處所預測之MADPFAVG
在H.264/AVC標準的速率控制演算法中,是透過前一張的同一個位址的平均絕對誤差來作為預測的基準,根據線性的關係來預測這一張平均絕對誤差。然而,依照此作法在硬體實作時,需要儲存每一個巨區塊之平均絕對誤差資訊,亦即QCIF大小的影像即需要存取99個平均絕對誤差資訊,D1大小的影像則
就要存取1350個平均絕對誤差資訊。因此,本發明又使用公式(5)的MADPFAVG
,來取代大量的記憶體使用,進而減少資料存取時的動作,達到更省電的效果。
此外,在公式(4)中,若我們使用MADPFAVG
來取代前一張的同一個位址的巨區塊之平均絕對誤差,則無法達到H.264/AVC標準的速率控制演算法中所提到的線性關係,更會造成平均絕對誤差預測的不準確,而錯估了所該使用分配的位元量,進而使量化參數之判斷錯誤,造成最後所需要位元量不能透過網路傳輸,使得視訊影像的殘缺而影響到人們的視覺效果。因此,本發明另使用了一第二係數來修正前後之巨區塊的平均絕對誤差之預測,前後之巨區塊亦即前數個巨區塊與將進入管線之巨區塊。如下述公式(6)。
MADratio2
=MADPFAVG
/MADPBUact
(6)
依據上述之公式,已可得到預估之剩餘位元量。此時即可透過H.264/AVC標準的速率控制演算法內部的公式來預測現在這個巨區塊所需要的位元量。標準公式如下述公式(7)。
在公式(7)中,也就是指平均絕對誤差。也就是指第i張的第1個MB。因為平均絕對誤差是速率控制演算法中用來預測複雜度的指標,若欲算此巨區塊之位元量,我們可根據現在預測的平均絕對誤差,去除以剩餘巨區塊全部加總後的平均絕對誤差,再乘以剩餘位元量。此含意即代表此張的複雜度佔剩餘的複雜度的比例,那就應當被分配到多少的位元量。
然而,每當速率控制演算法預測現在這個巨區塊所需之位元量時,都需重新計算共Nunit
-l次;也就是說,一張畫面需要計算次。對四階管線化之硬體架構而言,此計算所需花費的週期數遠遠超過其餘階段所需的週期數,如此一來將導致其餘的硬體結構全部處於停滯狀態,而造成硬體的產能無法最佳化。
因此,本發明中提出一種估計巨區塊所需位元量之公式,使得新的演算法可以滿足四階管線化的硬體架構。如下述公式(8)。
在公式(8),NumofBU指剩下尚未編碼的巨區塊個數,本發明中以MADPFAVG 2
×NumofBU取代重複計算平均絕對誤差之方式來預估目前巨區塊之複雜度佔全部複雜度之比例。同樣的,我們乘上一個修正的第一係數使預估更為準確。
以上所描述的新技術與H.264/AVC標準的部分速率控制演算法結合,可形成一個同時降低了運算複雜度、減少記憶體使用量並且滿足四階管線化的硬體架構的演算法。
根據上述公式可知,如要完成速率控制演算法需要經過複雜的計算過程,但是在硬體的實現裡,由於需將速率控制放入一套四階管線化的編碼器中,其計算一個巨區塊的必要途徑為1000個週期。在前述中已提到,本發明將更新量化參數部份放在整數型移動估測之前以及將更新模組放在權編碼之後,為了不影響其餘階段的工作效率,因此更新量化參數需在120週期內做完,而更新模組則需在300個週期內完成。在此週期條件限制之下,若直接將之硬體化,會需要大量的運算符號,將硬體的成本全部消耗在相同的運算單元中。因此本發明依據上述公式間之關係整理,在達到節省運算單元使用之目的下,將之整合共用同一套硬體,
如第三圖,為本發明中速率控制演算法所應用之硬體架構圖。
第三圖之架構中包含一暫存檔案30、一暫存檔案到算數邏輯單元32、算數邏輯單元34、控制器36、記憶體控制器38、更新模組係數控制器(Update Model Controller)40、更新量化參數控制器(Update Quantization Parameter Controller)42、更新參數控制器(Update Parameter Controller)44、暫存檔案到記憶體46及記憶體48。本發明中更新量化參數及更新模組中之公式皆一一透過此架構去運算,因此,本發明最主要應用就在算術邏輯單元34。
算數邏輯單元34中包含七個加法器、二個乘法器、一個16週期之序列除法器、一個4階之管線除法器、一個16週期之開根號器以及一個量化參數產生器,如此一來,更新量化參數只需100週期即可做完所有動作,而更新模組亦只需260週期,換句話說,一個巨區塊只需360週期可完成,一張QCIF大小的畫面也只需35640週期即可完成。
相對而言,在傳統架構下以H.264/AVC標準的速率控制演算法的內部運算來作排程,一個QCIF大小的影像在公式(7)的運算上,一張畫面就需多花4185週期。因此假設其他的條件都不變的情況下,本發明架構即可減少硬體的週期數達到28%。同理,在相同的情況下,CIF大小的影像,本發明即可省下66%週期,D1大小的影像亦可省下87%的週期。
另一方面,我們假定每一個巨區塊的平均絕對誤差都需要儲存下來,而每一筆平均絕對誤差值都需要14b位元的空間,此時一張畫面所需的外部記憶體將需要Nunit
×14位元的空間,而本發明採取的是只紀錄一張畫面平均的平均絕對誤差值,因此可以大幅減少儲存容量。對一個QCIF大小的影像來說可節省23.3%的外部記憶體;同理,CIF大小的影像可省下55%,而D1大小的
影像所省下的外部記憶體高達80.6%。
而為了符合多種應用,本發明並提出讓畫面更清晰之計算方法,可從畫面中擷取感興趣之一區域,根據該區域大小自動調整所分配的位元比率,讓區域分配到較多的位元。分配方式如下述公式(9)。
if(roi_factor
<=0.3)roi_total_bits
=T
*0.5*α else if(roi_factor
<=0.5)roi_total_bits
=T *
0.6*α else if(roi_factor
<=0.7)roi_total_bits
=T
*0.7*β else if(roi_factor
<=0.8)roi_total_bits
=T
*0.8*β else if(roi_factor
<=0.9)roi_total__bits
=T
*0.9*γ else roi_total_bits
=T
(9)
其中T為一張畫面所分配到的位元組,roi_total_bits為區域所欲分配的位元組,而α、β、γ為三個常數參數。roi_total_bits所佔的比例是由roi_factor所得知的。而roi_factor可由下述公式(10)求得:roi_factor:TotalMBsofROI/TotalNumberofBasic Unit
(10)
其中TotalMBsofROI為一張畫面中所有位於區域裡的巨區塊總和,TotalNumbarofBasicUnit為一張畫面裡巨區塊之總數。
而為了讓區域提高清晰度的效果更加明顯,本發明又將所得到的量化參數作微調的動作,使區域畫面得到更好的品質,如下述公式(11):if
(MBatROI
Region
==true
)finalQP
=QP
-QP
minus else finalQP
=QP
+QPplus
(11)
公式(11)中QPminus及QPPlus分別為兩個調整的參數。若正在壓縮的巨區塊位於區域裡,則將原本計算出來的量化參數減去QPminus的值,讓量化參數變小以期得到更好的畫面品質。反之則再加上QPPlus的值,讓量化參數變大。而QPminus及QPPlus的計算公式如下述公式(12):
其中ω、X1、X2為三個不一樣的常數。
綜上所述,本發明所提供之即時視訊編碼晶片之流量控制方法係改良傳統之速率控制演算法,將前一張畫面同位置之巨區塊的平均絕對誤差以平均絕對誤差的平均值替代,可更準確預測位元量,得到剩餘位元量,並可減少計算所需之週期數及減少記憶體使用;若想調整畫面中某區域之清晰度,更可依據該區域佔畫面之巨區塊比例自動調整位元數之分配,並對量化參數進行微調,改善區域品質。本發明具有低運算複雜度、良好視訊品質等優點。
惟以上所述者,僅為本發明之較佳實施例而已,並非用來限定本發明實施之範圍。故即凡依本發明申請範圍所述之特徵及精神所為之均等變化或修飾,均應包括於本發明之申請專利範圍內。
10‧‧‧整數型移動估測(Integer Motion Estimation,IME)
12‧‧‧分數型移動估測(Fractional Motion Estimation,FME)
14‧‧‧框內預測(Intra)
16‧‧‧權編碼
18‧‧‧更新模組
20‧‧‧更新量化參數
30‧‧‧暫存檔案
32‧‧‧暫存檔案到算數邏輯單元
34‧‧‧算數邏輯單元
36‧‧‧控制器
38‧‧‧記憶體控制器
40‧‧‧更新模組係數控制器(Update Model Controller)
42‧‧‧更新量化參數控制器(Update Quantization Parameter Controller)
44‧‧‧更新參數控制器(Update Parameter Controller)
46‧‧‧暫存檔案到記憶體
48‧‧‧記憶體
第一圖為先前技術中四階管線化編碼器之硬體排序示意圖。
第二圖為本發明中以四階管線化編碼器為例之硬體排序示意圖。
第三圖為本發明即時視訊編碼晶片之流量控制方法所應用之硬體架構之方塊圖。
10‧‧‧整數型移動估測(Integer Motion Estimation,IME)
12‧‧‧分數型移動估測(Fractional Motion Estimation,FME)
14‧‧‧框內預測(Intra)
16‧‧‧權編碼
18‧‧‧更新模組
20‧‧‧更新量化參數
Claims (16)
- 一種即時視訊編碼晶片之流量控制方法,其係應用於巨區塊層級並實現於一管線(pipeline)架構之視訊流量控制,包括下列步驟:一畫面進入,該畫面包含複數巨區塊;給予該巨區塊中之前數個該巨區塊預設之一量化參數;預測前數個該巨區塊之至少一位元量,並計算該巨區塊之一平均絕對誤差(MAD)以做為一第一係數來修正該位元量,其中該第一係數又利用一第二係數以修正該等前數個巨區塊與將進入該管線之該巨區塊的平均絕對誤差,該第一係數之計算公式為MADratio1 =MADPBUact /MADPd ,該第二係數之計算公式為MADratio2 =MADPFAVG /MADPBUact, 其中MADPBUact 為前一該巨區塊真正之一平均絕對誤差值,MADPd 為目前預測之該巨區塊之該平均絕對誤差,MADPFAVG 為前一張畫面中所有平均絕對誤差之一平均值;預測目前之該巨區塊所需之一目前位元量;以及將該目前位元量減去之前每一該巨區塊之該位元量,求得一剩餘位元數,並依此判斷該畫面之複雜度及應分配到之一目前畫面位元量,以預測下一張畫面之資料量。
- 如申請專利範圍第1項所述之即時視訊編碼晶片之流量控制方法,其中該巨區塊之數量為n時,第m個之該巨區塊係以第(m+n)個之該巨區塊為更新該參數及該量化參數之依據。
- 如申請專利範圍第1項所述之即時視訊編碼晶片之流量控制方法,其中該巨區塊層級為四階層時,該前數個巨區塊之數量為四,並預測第二個至第四個該巨區塊之該位元量。
- 如申請專利範圍第3項所述之即時視訊編碼晶片之流量控制方法,其中該位元量之計算公式為Tr,l =Tr,l-4 -[(mhdr,l-4 +mtex,l-4 )× 3×MADratio1 ],其中Tr 為位元量,l為第幾個該巨區塊,m為真正產生之一位元數,hdr為一標頭檔位元,tex為一貼圖位元(texture bits),MADratio1 為該第一係數。
- 如申請專利範圍第1項所述之即時視訊編碼晶片之流量控制方法,其中目前預測之該巨區塊之該平均絕對誤差之計算公式為MADPd =C1 ×MADPFAVG ×MADratio2 +C2 ,其中C1 、C2 為參數,MADPFAVG 為前一張畫面中所有平均絕對誤差之一平均值,MADratio2 為該第二係數,用以修正該等前數個巨區塊與將進入管線之該巨區塊的平均絕對誤差。
- 如申請專利範圍第1項所述之即時視訊編碼晶片之流量控制方法,其中預測該目前位元量之計算公式為,其中為第l 個該巨區塊之該目前位元量,NumofBU為剩下尚未編碼之該巨區塊之個數,MADPd 為目前預測之該巨區塊之該平均絕對誤差,MADPFAVG 為前一張畫面中所有平均絕對誤差之一平均值,MADratio1 為該第一係數。
- 如申請專利範圍第1項所述之即時視訊編碼晶片之流量控制方法,其中該巨區塊係以複數個為一群組,且該群組中之每一該巨區塊係使用不同之一參數及該量化參數。
- 如申請專利範圍第1項所述之即時視訊編碼晶片之流量控制方法,其中該視訊編碼晶片係包括一算數邏輯單元、一暫存檔案、一記憶裝置、至少一控制元件以及一處理器。
- 如申請專利範圍第8項所述之即時視訊編碼晶片之流量控制方 法,其中該算數邏輯單元中包含複數加法器、複數乘法器、至少一除法器、至少一開根號器及一量化參數產生器。
- 如申請專利範圍第9項所述之即時視訊編碼晶片之流量控制方法,其中該加法器數量為七個。
- 如申請專利範圍第9項所述之即時視訊編碼晶片之流量控制方法,其中該乘法器數量為二個。
- 如申請專利範圍第9項所述之即時視訊編碼晶片之流量控制方法,其中該除法器包括一十六週期之序列除法器及一四階之管線除法器。
- 如申請專利範圍第8項所述之即時視訊編碼晶片之流量控制方法,其中該記憶裝置係包含一暫存記憶體及一記憶體。
- 如申請專利範圍第1項所述之即時視訊編碼晶片之流量控制方法,更包括調整該畫面之清晰度,包含下列步驟:從該畫面中選取欲調整清晰度之一區域;根據該區域之大小自動調整其所分配之位元比率,使該區域分配到較多之位元。
- 如申請專利範圍第14項所述之即時視訊編碼晶片之流量控制方法,其中該區域所分配到之位元係依據該畫面所有該巨區塊所分配到該位元量之總和作為參考。
- 如申請專利範圍第14項所述之即時視訊編碼晶片之流量控制方法,其中該位元比率之計算方法為該區域中該巨區塊之數目除以該畫面中該巨區塊之總數。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW097140973A TWI428022B (zh) | 2008-10-24 | 2008-10-24 | Video control method for instant video encoding chips |
US12/494,113 US20100104010A1 (en) | 2008-10-24 | 2009-06-29 | Real-time rate-control method for video encoder chip |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW097140973A TWI428022B (zh) | 2008-10-24 | 2008-10-24 | Video control method for instant video encoding chips |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201018244A TW201018244A (en) | 2010-05-01 |
TWI428022B true TWI428022B (zh) | 2014-02-21 |
Family
ID=42117472
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW097140973A TWI428022B (zh) | 2008-10-24 | 2008-10-24 | Video control method for instant video encoding chips |
Country Status (2)
Country | Link |
---|---|
US (1) | US20100104010A1 (zh) |
TW (1) | TWI428022B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9942560B2 (en) * | 2014-01-08 | 2018-04-10 | Microsoft Technology Licensing, Llc | Encoding screen capture data |
US9774881B2 (en) * | 2014-01-08 | 2017-09-26 | Microsoft Technology Licensing, Llc | Representing motion vectors in an encoded bitstream |
US9749642B2 (en) | 2014-01-08 | 2017-08-29 | Microsoft Technology Licensing, Llc | Selection of motion vector precision |
US20160127731A1 (en) * | 2014-11-03 | 2016-05-05 | National Chung Cheng University | Macroblock skip mode judgement method for encoder |
CN109660812A (zh) * | 2018-11-12 | 2019-04-19 | 北京达佳互联信息技术有限公司 | 复杂度和码率的确定方法、装置及计算机可读存储介质 |
CN113365061B (zh) * | 2020-03-03 | 2024-02-09 | 炬芯科技股份有限公司 | H264宏块级码率控制方法、装置及可读存储介质 |
CN113473136B (zh) * | 2020-03-30 | 2024-02-09 | 炬芯科技股份有限公司 | 视频编码器及其码率控制装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6690833B1 (en) * | 1997-07-14 | 2004-02-10 | Sarnoff Corporation | Apparatus and method for macroblock based rate control in a coding system |
US20050276329A1 (en) * | 1996-06-21 | 2005-12-15 | Adiletta Matthew J | Method and apparatus for performing motion compensation on video data |
US20080165852A1 (en) * | 2007-01-05 | 2008-07-10 | Sony Corporation | Video coding system |
US20080225945A1 (en) * | 2007-03-13 | 2008-09-18 | Ping-Hao Wu | Constant-quality rate control system and algorithm for regions of interest |
-
2008
- 2008-10-24 TW TW097140973A patent/TWI428022B/zh not_active IP Right Cessation
-
2009
- 2009-06-29 US US12/494,113 patent/US20100104010A1/en not_active Abandoned
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050276329A1 (en) * | 1996-06-21 | 2005-12-15 | Adiletta Matthew J | Method and apparatus for performing motion compensation on video data |
US6690833B1 (en) * | 1997-07-14 | 2004-02-10 | Sarnoff Corporation | Apparatus and method for macroblock based rate control in a coding system |
US20080165852A1 (en) * | 2007-01-05 | 2008-07-10 | Sony Corporation | Video coding system |
US20080225945A1 (en) * | 2007-03-13 | 2008-09-18 | Ping-Hao Wu | Constant-quality rate control system and algorithm for regions of interest |
Also Published As
Publication number | Publication date |
---|---|
US20100104010A1 (en) | 2010-04-29 |
TW201018244A (en) | 2010-05-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI428022B (zh) | Video control method for instant video encoding chips | |
CN111866504B (zh) | 一种编码方法、编码器及计算机可读存储介质 | |
Guo et al. | Optimal bit allocation at frame level for rate control in HEVC | |
CN1910934B (zh) | 自适应速率控制编码器 | |
JP5180294B2 (ja) | ビデオ符号化において、フレームの複雑さ、バッファレベル、およびイントラフレームの位置を利用するバッファベースのレート制御 | |
US8406297B2 (en) | System and method for bit-allocation in video coding | |
CN103179394B (zh) | 一种基于区域视频质量平稳的i帧码率控制方法 | |
KR101017770B1 (ko) | 슬라이딩 윈도 채널 제약에 부합하는 멀티패스 비디오레이트 제어 | |
JPH0898179A (ja) | 画像符号化装置 | |
JP2009513073A5 (zh) | ||
CN109413427A (zh) | 一种视频帧编码方法及终端 | |
WO2004010702A1 (en) | A bit-rate control method and device combined with rate-distortion optimization | |
JP2002335527A (ja) | 動画フレーム符号化方法、適応的量子化方法、データ圧縮レート決定方法、及びエンコーダ | |
WO2004021704A1 (en) | Bit rate control for motion compensated video compression system | |
JPH0974565A (ja) | 映像信号符号化システム用コントローラ | |
Zhou et al. | Improvement on rate-distortion performance of H. 264 rate control in low bit rate | |
CN104994387B (zh) | 一种融合图像特征的码率控制方法 | |
CN108989818B (zh) | 一种图像编码参数调整方法及装置 | |
CN101331773A (zh) | 使用速率失真特性进行视频编码的两遍速率控制技术 | |
WO2022228375A1 (zh) | 视频编码方法、装置和电子设备 | |
CN101420601B (zh) | 视频编码中码率控制的方法及装置 | |
JP4362794B2 (ja) | 動画像符号化装置及びその方法 | |
JP3480067B2 (ja) | 画像符号化装置及び方法 | |
Zhang et al. | A two-pass rate control algorithm for H. 264/AVC high definition video coding | |
JP4362793B2 (ja) | 動画像符号化装置及びその方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |