欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種自動比特率控制方法及圖像壓縮裝置的制作方法

文檔序號:7953123閱讀:254來源:國知局

專利名稱::一種自動比特率控制方法及圖像壓縮裝置的制作方法
技術領域
:本發(fā)明涉及一種自動比特率控制方法及圖像壓縮裝置,特別涉及一種對JPEG編碼自動比特率的控制方法及圖像壓縮裝置。
背景技術
:在視頻芯片硬件電路設計時,考慮到圖像JPEG壓縮后存儲空間大小是固定的,圖像壓縮率越小,圖像失真越小,因此,選定一個固定的圖像壓縮率,保持存儲空間的最大利用率是非常必要的。在JPEG編碼器中,圖像壓縮率是通過Q值來調整的,自動比特率控制是通過自適應Q值調整器來完成的。Q值調整的目的是用來預測下一幀圖像的Q值,以使下一幀圖像的壓縮率能夠達到預期。JPEG壓縮原理是通過對一種分塊8×8數(shù)據(jù)結構進行前向離散余弦變換(FDCT)得到1個直流系數(shù)(DCcoefficient)和63個交流系數(shù)(ACcoefficient),再經過量化(Quantization)、折線掃描(Zig-ZagScan)、霍夫曼編碼(HuffmanEncoding)得到壓縮后的數(shù)據(jù)。如圖1所示,為常見的JPEG壓縮原理示意圖,包括離散余弦變換模塊101、量化模塊102、折線掃描模塊103、霍夫曼編碼模塊104、自動比特率控制模塊105、量化表產生模塊106組成。在JPEG壓縮編碼器中,可以通過改變量化表(Q-table)來控制壓縮率(CR)和壓縮質量,最常用的方法就是將量化表同時乘以一個系數(shù),稱為Q值(Qfactor),范圍一般在0~2。Q值小于1,則減小壓縮率,提高壓縮后的圖像質量,反之加大壓縮率,降低圖像質量。不同的圖像曲線差別會很大。自動比特速率控制(autobitratecontrol,ABRC)用于連續(xù)圖像壓縮的碼率控制,它用一條通過固定點(坐標Q在[-1,0]內,可調,CR=0)的直線來近似CR-Q曲線,進而根據(jù)前一幀圖像所用的Q值和實際壓縮率(CR)確定直線方程(兩點確定直線),再求出目標壓縮率對應的Q值作為下一幀的Q值預測。我們定義CRtarget為目標壓縮率,Qtarget為相應的目標Q值。當前Q值調整的實現(xiàn)方法如下CR-Q關系曲線近似一條經過一個固定點(Q=-b,CR=0)的直線,其中b是一個負參數(shù),一旦定下來通常就不會再改變。我們有一個初始外部可配置的Qinitial和CRinitial,通過初始值和固定點(-b,0)我們就能夠得到曲線方程CR=CRinitialQinitial+b(Q+b);]]>Qtarget能夠通過公式Qtarger=CRtargetCRcur(Qcur+b)-b]]>計算,圖2是壓縮率與Q值的關系示意圖,曲線方程圖如圖2所示。但實際上CR-Q曲線并不會是通過固定點的一條完美直線,因此用這種方法計算出的Qtarget并不能得到比較精確Q值。因此現(xiàn)在多是通過多次迭代的辦法來求得想要的Q值。圖3是多次迭代下的壓縮率與Q值的關系示意圖,如圖所示,第一次壓縮得到Q0和CR0,然后通過0號線性關系與CRtarget(目標壓縮率)計算出Q1,用Q1壓縮下一幀圖像,以此類推直到CRn接近CRtarget。對于大多數(shù)圖像通過2到3幀迭代能夠很快的逼進實際曲線,當然收斂的速度與迭代的起始點有關,起始點越靠近目標值,收斂速度越快。由于在JPEG壓縮中,很多硬件系統(tǒng)要求每幀圖像壓縮后都不得大于某個門限,否則會發(fā)生溢出而丟棄。但現(xiàn)在的JPEG壓縮只能在整幅圖像壓縮后才能得知是否溢出,同時JPEG標準也不允許在壓縮過程中修改量化表,也就是說所有8×8的塊都必須用一樣的量化表,即一樣的Q值。因此無法通過調整Q值來提前調整壓縮率。ABRC是通過用直線近似(CR-Q)來預測Q值,由于曲線近似度不夠,因此預測過程是一個收斂過程,曲線相似度越低,收斂過程越長,收斂過程中的各幀會由于Q值不合適而過分壓縮或欠壓縮(即溢出)。ABRC同時還要求前后兩幀內容變化不大,因為這樣CR-Q曲線的變化才能不大,這對于高幀率或靜止場景容易滿足,但對于低幀率,劇烈運動場景或場景切換等情況則不易滿足,進而造成錯誤預測,容易發(fā)生Q值過度調節(jié)或調節(jié)不足而導致嚴重的溢出丟幀現(xiàn)象。圖4是大Q值與小Q值情況下的壓縮率與Q值的關系示意圖;如圖所示,造成該缺陷的可以歸納為以下兩種情況一、一幀復雜圖像之后是一幀簡單圖像在這種情況下,簡單圖像將會被上一幀復雜圖像壓縮計算出來的大Q值(Qtarget_cmplx)壓縮,該簡單圖像的目標壓縮率(CRtarget)比實際壓縮率(CRover)小很多,可能導致結果是該簡單圖像被過渡壓縮,圖像嚴重失真,這種情況可能會持續(xù)好幾幀直到CR降到一個合理范圍。二、一幀簡單圖像之后是一幀復雜圖像在這種情況下,復雜圖像將會被上一幀簡單圖像壓縮計算出來的小Q值(Qtarget_smpl)壓縮,該復雜圖像的目標壓縮率(CRtarget)比實際壓縮率(CRlack)大很多,可能導致結果是該復雜圖像壓縮不夠,以至于硬件圖像存儲空間溢出,這種情況可能會持續(xù)幾幀直到CR升到一個合理范圍。因此,在原始自動比特率控制JPEG圖像壓縮方法上存在著以下不足由于兩幀圖像之間大Q值變化引起圖像壓縮的不理想,無法正確的預測下一幀圖像的Q值,會因減少圖像過渡壓縮或者壓縮不夠引起丟幀,無法提供高質量的圖像壓縮。
發(fā)明內容本發(fā)明所解決的技術問題在于提供了一種自動比特率控制方法及圖像壓縮裝置,以達到當檢測到兩幀圖像之間Q值變化較大時,在圖像壓縮過程中,正確預測下一幀圖像的Q值,消除減少圖像過渡壓縮或者壓縮不夠引起丟幀的情況,從而保障提供高質量的圖像壓縮。為解決上述技術問題,本發(fā)明提供了一種自動比特率控制方法,根據(jù)當前壓縮使用的Q值,預測出下一次壓縮應使用的Q值,并據(jù)此進行連續(xù)圖像壓縮的碼率控制,包括如下步驟(1)設定當前Q值Q_curr與下一次Q值Q_next之間的差值門限Q_Threshold;(2)判斷當前Q值與預測出來的下一次的Q值之間的差值Q_diff是否超過差值門限;(3)如果當前Q值與預測的下一次的Q值的差值超過所述設定的差值門限,則調整所述計算出來的下一次的Q值,使差值增大,并使用調整后的下一次Q值壓縮下一幀圖像。其中,所述步驟(1)可以包括設定多個差值門限;所述步驟(2)可以包括根據(jù)所述多個差值門限所界定的不同區(qū)間,對應不同權值,判斷所述差值處于哪一個區(qū)間,對所述下一次的Q值配以對應權值進行調整,使差值以不同幅度增大。其中,所述對下一次的Q值配以對應權值進行調整的步驟,調整后的新的下一次Q值等于當前差值乘以與該差值對應的權值,再加上調整前的下一次Q值。本發(fā)明所述自動比特率控制方法還可以進一步包括設定壓縮率檢測條件,該條件為在一幀圖像壓縮過程中的已壓縮大小占整幅圖像的比例;在當前幀圖像壓縮到所述比例時,根據(jù)當前使用的Q值預測整幀圖像壓縮完成后是否會引起存儲空間溢出;如果預測到該幀圖像會溢出,則丟棄經過離散余弦變換得到的交流系數(shù),并對當前Q值進行補償。本發(fā)明進而還提供一種圖像壓縮裝置,包括前向離散余弦變換模塊、量化模塊、折線掃描模塊、霍夫曼編碼模塊、自動比特率控制模塊、量化表生成模塊,其中,自動比特率控制模塊根據(jù)當前壓縮使用的Q值Qc,預測出下一幀壓縮應使用的Q值Qn,量化表生成模塊根據(jù)Qn生成新的量化表,供量化模塊使用,所述壓縮裝置還包括Q值校正模塊,用于根據(jù)自動比特率控制模塊預測的Qn,判斷Qc與Qn之間的差值是否超過預設門限,如果超出預設門限則對Qn進行調整,使Qc與Qn之間的差值進一步增大,并將調整后的Qn輸入量化表生成模塊。其中,所述Q值校正模塊,進一步根據(jù)Qc與Qn之間的差值超過預設門限的程度,對Qn配以不同權值進行調整。本發(fā)明所述圖像壓縮裝置,還可以進一步包括強行比特率控制模塊,用于定期監(jiān)測壓縮率,如果檢測到使用當前Q值對整幀圖像壓縮完成后會引起存儲空間溢出,則丟棄預設數(shù)量的經過離散余弦變換得到的交流系數(shù);Q值補償模塊,用于根據(jù)強行比特率控制模塊的啟動情況,為自動比特率控制模塊當前使用的Q值進行補償。使用本發(fā)明后,解決了在JPEG圖像編碼中壓縮率控制不是很理想的問題。能夠很好的控制JPEG編碼中圖像壓縮失真和壓縮不夠引起圖像丟幀的現(xiàn)象,最終達到輸出視頻圖像的高質量與高流暢。圖1是現(xiàn)有JPEG圖像壓縮裝置的原理示意圖;圖2是壓縮率與Q值的關系示意圖;圖3是多次迭代下的壓縮率與Q值的關系示意圖;圖4是大Q值與小Q值情況下的壓縮率與Q值的關系示意圖;圖5是本發(fā)明實施例中所述圖像壓縮裝置的原理示意圖;圖6為本發(fā)明實施例中所述對JPEG編碼自動比特率的控制方法實施流程示意圖。具體實施例方式如圖5所示,為根據(jù)本發(fā)明實施例所述的圖像壓縮裝置的原理示意圖,與現(xiàn)有壓縮裝置相比,本實施例中增加了強行比特率控制(RBRC)模塊501、Q值補償(Q-complement)模塊502,與Q值校正(Q-correction)模塊503。所述各模塊中都配置有若干寄存器,存儲有各自需要的參數(shù)。其中,Q值校正模塊503,用于存儲預先設置的當前Q值與下一次Q值之間的差值門限,在圖像壓縮過程中,判斷當前Q值與預測的下一次Q值之間的差值是否超過預設門限,如果超出預設門限則對下一次Q值進行調整,使當前Q值與下一次Q值之間的差值進一步增大,并將調整后的下一次Q值輸入量化表生成模塊。進一步的,所述的差值門限可以設定多個,并為每個差值門限所界定出的區(qū)間對應配置一個權值,Q值校正模塊503可以判斷所述差值處于哪一個區(qū)間,對所述下一次的Q值配以對應權值進行調整,使差值以不同幅度增大。調整的具體方式可以是使調整后的新的下一次Q值等于當前差值乘以與該差值對應的權值,再加上調整前的下一次Q值。其中所述的差值門限,以及權值等參數(shù),都可以通過Q值校正模塊503內的寄存器配置來修改。強行比特率控制模塊501,用于在一幀圖像壓縮過程中定期監(jiān)測壓縮率,如果檢測到使用當前Q值對整幀圖像壓縮完成后會引起存儲空間溢出,則丟棄預設數(shù)量的經過離散余弦變換得到的交流系數(shù);所述定期監(jiān)測,可以設置在1/4、1/2、或3/4的8×8塊完成壓縮時檢測,具體的預測模式參數(shù)可以通過強行比特率控制模塊501中的寄存器配置來修改。Q值補償模塊502,用于根據(jù)強行比特率控制模塊的啟動情況,為自動比特率控制模塊當前使用的Q值進行補償。補償可以是加一個正數(shù),具體補償值可通過仿真確定,并通過Q值補償模塊502中的寄存器參數(shù)來修改與存儲。根據(jù)圖像輸入情況復雜度級別,本發(fā)明的實施例分為兩個階段一、大Q變值化時的Q值校正這一階段不需要使用RBRC和Q值補償。這種方式實現(xiàn)的主要原理是,當檢測到預測下一幀圖像壓縮所需Q值(Q_next)與當前圖像所使用Q值(Q_curr)變化很大,即下一幀的Q值與當前Q值的差值(Q_diff)較大時,需在當前Q_next的基礎上輕微增加或者減少得到一個新的Q值(New_Q_next)。增加或者減少數(shù)值由Q_diff=Q_next-Q_curr所在范圍決定。在具體實現(xiàn)上可以采用多種方式,例如,可以選擇4個門限值Q_Threshold3<Q_Threshold4<0<Q_Threshold2<Q_Threshold1,和四個權重因子weight1,weight2,weight3,weight4。這些參數(shù)都可以通過寄存器配置修改。那么,當檢測到Q_diff>Q_Threshold1時,則New_Q_next=(Q_diff*Q_weight1)+Q_next;當檢測到Q_Threshold1>=Q_diff>Q_Threshold2時,則New_Q_next=(Q_diff*Q_weight2)+Q_next;當檢測到Q_Threshold2>=Q_diff>0,則New_Q_next=Q_next;當檢測到Q_Threshold4<=Q_diff<0,則New_Q_next=Q_next;當檢測到Q_Threshold3<=Q_diff<=Q_Threshold4,則New_Q_next==(Q_diff*Q_weight4)+Q_next;當檢測到Q_diff<Q_Threshold3,則New_Q_next=(Q_diff*Q_weight3)+Q_next。由于Q值越大,圖像壓縮率越大,相反Q值越小,圖像壓縮率越小,所以,在Q_diff為正值時,可以預測下一幀圖像為復雜圖像,我們需要在Q_next基礎上增加一個數(shù)值,這樣能夠快速加大壓縮復雜圖像的Q值,使得不至于該復雜圖像壓縮率不夠;在Q_diff為負值時,可以預測下一幀圖像為簡單圖像,我們需要在Q_next基礎上減少一個數(shù)值,這樣能夠快速減少壓縮簡單圖像的Q值,使得不至于該簡單圖像過壓。這種方式能夠加速Q值調整的收斂過程。具體Q值變化門限及調節(jié)值可通過仿真方法獲得的值設定。該方法達到的效果是加快收斂,能有效的減少丟幀和圖像過度壓縮現(xiàn)象。二、強行BRC(RudeBRC,RBRC)和Q值補償(Q-complement)如果在啟動上述Q值校正后,仍經常出現(xiàn)丟幀情況(是否丟幀的依據(jù)是壓縮后圖像字節(jié)數(shù),若該數(shù)值大于某一個特定值,則該圖像將被丟棄),那么說明Q值校正的效果不是很理想,這時可以進一步啟動強行比特率控制與Q值補償這兩個部分。利用本實施例,可以在一幅圖像壓縮的過程中定期監(jiān)控壓縮率,比如可設為1/4,1/2或3/4的8×8塊完成壓縮時,就進行檢測的三個預測模式。如果當前壓縮后的圖像大小超過目標大小的1/4,1/2或3/4時則開啟AC系數(shù)丟棄策略,丟棄按掃描順序倒數(shù)N個AC系數(shù)。N值預先設定,不同預測模式N可不同。推薦值在32~56,具體值可仿真方法確定。丟棄AC系數(shù)可以提高壓縮率,以有效預防可能發(fā)生的溢出,同時符合JPEG壓縮標準的要求。由于丟棄AC系數(shù)改變了壓縮率,破壞了CR-Q曲線,將會影響到后面的ABRC,因此在進行ABRC之前需要對當前Q值進行補償,就是加上一個正數(shù)。補償值的大小和預測模式,當前Q值以及AC丟棄個數(shù)N有關,目前沒有明確公式,實際值由仿真方法獲得,為三維表格,值的分布范圍在0~64。這樣可以有效的防止丟幀。如圖6所示,為根據(jù)本發(fā)明實施例所述的對JPEG編碼自動比特率的控制方法流程示意圖,包括如下步驟步驟601、設定當前壓縮使用的Q值與預測出的下一幀使用的Q值之間的差值的變化門限。步驟602、當檢測到Q值的差值大小超過Q值變化門限后,在檢測出來的下一幀Q值的基礎上按設定調節(jié)值增加或減少預測下一幀的Q值,使得所述差值進一步增大。步驟603、設定壓縮率檢測條件,該條件為在一幀圖像壓縮過程中的已壓縮大小占整幅圖像的比例??梢栽O為在壓縮比例為1/4、1/2、3/4等的時候。步驟604、檢測條件滿足時,比較圖像根據(jù)所述壓縮比率得到的大小與存儲目標塊根據(jù)所述壓縮比率得到的大小。如我們將檢測條件設置在壓縮比例為1/2時,若圖像總大小為A,可以儲存的目標塊大小為B時,則是將1/2×A與1/2×B比較。步驟605、當圖像根據(jù)所述壓縮比率得到的大小大于存儲目標塊根據(jù)所述壓縮比率得到的大小時,丟棄交流系數(shù)。也就是當1/2×A大于1/2×B時,就丟棄交流系數(shù)。步驟606、根據(jù)設定對Q值增加補償值。綜上所述,本發(fā)明針對現(xiàn)有的視頻芯片設計中,對JPEG圖像編碼的壓縮率控制不是很理想的問題,具有針對性的提出了兩種具體的控制手段,一種是通過Q值校正方法,調整兩幀圖像大Q值變化。它的基本思想是當檢測到大Q值變化時,輕微改變原始ABRC計算出Q值。這種方法在Q值增加非常大時時,能夠加速預期Q值調整的收斂過程,在Q值減小非常大情況下,能夠阻止Q值調整過快引起圖像失真嚴重的現(xiàn)象。另一種是強行BRC和Q值補償方法。該方法主要是針對壓縮率不夠,引起存儲空間溢出的情況。它的基本思想是在圖像壓縮過程中,預測該幀圖像是否會溢出,如果判斷該幀圖像有溢出可能,則通過丟棄AC系數(shù)的方法得到更大的壓縮率,使得最后圖像大小能滿足存儲空間要求。由于該方法會破壞原有的Q值計算方法,因此需要對Q值計算進行補償。通過該方法能夠大大減少因存儲空間限制而引起圖像丟幀現(xiàn)象。權利要求1.一種自動比特率控制方法,根據(jù)當前壓縮使用的Q值,預測出下一次壓縮應使用的Q值,并據(jù)此進行連續(xù)圖像壓縮的碼率控制,其特征在于,包括如下步驟(1)設定當前Q值與下一次Q值之間的差值門限;(2)判斷當前Q值與預測出來的下一次的Q值之間的差值是否超過差值門限;(3)如果當前Q值與預測的下一次的Q值的差值超過所述設定的差值門限,則調整所述計算出來的下一次的Q值,使差值增大,并使用調整后的下一次Q值壓縮下一幀圖像。2.如權利要求1所述的方法,其特征在于所述步驟(1)包括設定多個差值門限;所述步驟(2)包括根據(jù)所述多個差值門限所界定的不同區(qū)間,對應不同權值,判斷所述差值處于哪一個區(qū)間,對所述下一次的Q值配以對應權值進行調整,使差值以不同幅度增大。3.如權利要求2所述的方法,其特征在于,所述對下一次的Q值配以對應權值進行調整的步驟,調整后的新的下一次Q值等于當前差值乘以與該差值對應的權值,再加上調整前的下一次Q值。4.如權利要求1所述的方法,其特征在于,進一步包括設定壓縮率檢測條件,該條件為在一幀圖像壓縮過程中的已壓縮大小占整幅圖像的比例;在當前幀圖像壓縮到所述比例時,根據(jù)當前使用的Q值預測整幀圖像壓縮完成后是否會引起存儲空間溢出;如果預測到該幀圖像會溢出,則丟棄經過離散余弦變換得到的交流系數(shù),并對當前Q值進行補償。5.如權利要求4所述的方法,其特征在于,所述對當前Q值進行補償?shù)牟襟E,是對當前Q值加上一個正數(shù)。6.如權利要求4所述的方法,其特征在于,所述丟棄經過離散余弦變換得到的交流系數(shù)的步驟,是丟棄按照掃描順序倒數(shù)N個交流系數(shù),其中N值預先設定。7.如權利要求6所述的方法,其特征在于,所述N值為32~56。8.一種圖像壓縮裝置,包括前向離散余弦變換模塊、量化模塊、折線掃描模塊、霍夫曼編碼模塊、自動比特率控制模塊、量化表生成模塊,其中,自動比特率控制模塊根據(jù)當前壓縮使用的Q值Qc,預測出下一幀壓縮應使用的Q值Qn,量化表生成模塊根據(jù)Qn生成新的量化表,供量化模塊使用,其特征在于,所述壓縮裝置還包括Q值校正模塊,用于判斷Qc與Qn之間的差值是否超過預設門限,如果超出預設門限則對Qn進行調整,使Qc與Qn之間的差值進一步增大,并將調整后的Qn輸入量化表生成模塊。9.如權利要求8所述的裝置,其特征在于,所述Q值校正模塊,進一步根據(jù)Qc與Qn之間的差值超過預設門限的程度,對Qn配以不同權值進行調整。10.如權利要求8所述的裝置,其特征在于,進一步包括強行比特率控制模塊,用于定期監(jiān)測壓縮率,如果檢測到使用當前Q值對整幀圖像壓縮完成后會引起存儲空間溢出,則丟棄預設數(shù)量的經過離散余弦變換得到的交流系數(shù);Q值補償模塊,用于根據(jù)強行比特率控制模塊的啟動情況,為自動比特率控制模塊當前使用的Q值進行補償。11.如權利要求10所述的裝置,其特征在于,所述Q值補償模塊,通過對當前使用的Q值加上一個正數(shù)來進行補償。12.如權利要求10所述的裝置,其特征在于,所述強行比特率控制模塊在檢測到使用當前Q值對整幀圖像壓縮完成后會引起存儲空間溢出時,丟棄按掃描順序倒數(shù)N個交流系數(shù),其中N值預先設定。13.如權利要求12所述的裝置,其特征在于,所述N值為32~56。全文摘要本發(fā)明公開了一種自動比特率控制方法及圖像壓縮裝置,首先設定當前Q值與下一次Q值之間的差值門限,在圖像壓縮過程中,實時檢測當前壓縮使用的Q值與計算出來的下一次的Q值之間的差值,當超過設定的差值門限時,調整該下一次的Q值,使差值增大,并使用調整后Q值壓縮下一幀圖像;進而再設定壓縮率檢測條件,在當前幀圖像壓縮到與檢測條件相符的比例時,根據(jù)當前使用的Q值預測整幀圖像壓縮完成后是否會引起存儲空間溢出;如果預測到該幀圖像會溢出,則丟棄經過離散余弦變換得到的交流系數(shù),并對當前Q值進行補償。使用本發(fā)明后,能夠很好的控制JPEG編碼中圖像壓縮失真和壓縮不夠而引起圖像丟幀的現(xiàn)象。文檔編號H04N7/30GK1852438SQ20061001169公開日2006年10月25日申請日期2006年4月14日優(yōu)先權日2006年4月14日發(fā)明者酈文其,汪源,居曉波申請人:北京中星微電子有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
千阳县| 竹溪县| 象山县| 繁峙县| 嘉祥县| 兴海县| 台东县| 阳泉市| 霞浦县| 宕昌县| 根河市| 云梦县| 儋州市| 揭阳市| 新昌县| 杨浦区| 乌拉特前旗| 家居| 花莲县| 铜梁县| 泗洪县| 潼关县| 手游| 玉龙| 综艺| 西乡县| 曲阳县| 砚山县| 通江县| 郯城县| 徐汇区| 石嘴山市| 个旧市| 长葛市| 崇信县| 雷波县| 正宁县| 甘孜县| 精河县| 霍州市| 璧山县|