[發明專利]一種四路并行編碼的CAVLC編碼器有效
| 申請號: | 201110232250.4 | 申請日: | 2011-08-15 |
| 公開(公告)號: | CN102325253A | 公開(公告)日: | 2012-01-18 |
| 發明(設計)人: | 范益波;鐘慧波;沈沙;任懷魯;姜英;曾曉洋 | 申請(專利權)人: | 復旦大學 |
| 主分類號: | H04N7/26 | 分類號: | H04N7/26 |
| 代理公司: | 上海正旦專利代理有限公司 31200 | 代理人: | 陸飛;盛志范 |
| 地址: | 200433 *** | 國省代碼: | 上海;31 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 四路 并行 編碼 cavlc 編碼器 | ||
1.一種四路并行編碼的CAVLC編碼器,?其特征在于采用掃描級和編碼級組成的二級流水結的架構,分為掃描級、編碼級和CAVLC控制器三部分;其中,掃描級由掃描級控制器,TrailingOnes計數器、TotalCoeff計數器、Total_Zeros計數器、Run_before計數器和Level檢測器組成,掃描級用于統計CAVLC元素值;編碼級由編碼級控制器、TotalCoeff編碼器、Total_Zeros編碼器、Level編碼器、Run_before編碼器和比特流拼接器組成,編碼級用于編碼掃描級統計得到的CAVLC元素值;CAVLC控制器通過控制掃描級控制器和編碼級控制器來控制整個CAVLC編碼器的時序和功能;并且,掃描級與編碼級兩級中采用一塊寄存器來存儲掃描級統計得到的結果,使得掃描級和編碼級能夠流水線并行處理;掃描級完成一個4x4塊的掃描后,將得到的統計信息直接存儲在寄存器中,然后編碼級開始編碼,而掃描級則繼續掃描下一個4x4塊。
2.根據權利要求1所述的四路并行編碼的CAVLC編碼器,?其特征在于所述的掃描級控制器通過一個狀態機來控制掃描級在每個時鐘從殘差系數緩存中取4個殘差系數來統計CAVLC編碼的一些元素:TotalCoeff,Total_Zeros,TrailingOnes,Level,Run_before,具體為:
1)?從系數緩存中取的四個殘差系數為coeff0~coeff3,根據下面代碼(1)式和(2)式所示得到8個狀態指示位:s0~s3和c0~c3,其中s0~s3代表各殘差系數是否等于0,c0~c3代表各殘差系數是否等于±1:
???????????????????????(1)
??????????????????????(2)
2)?根據上面的8個狀態指示位:s0~s3和c0~c3,得到CAVLC需要編碼的元素值;其中根據s0~s3,得到TotalCoeff,Total_Zeros和Run_before;并把不為零的系數存儲到Level緩存中,根據s0~s3和c0~c3,確定TrailingOnes的值,具體過程如下:?
1>??TotalCoeff的確定:將s0~s3中1的個數累加起來即為TotalCoeff的值;
2>??Total_Zeros的確定:在每個4x4塊的掃描開始時,將一個內部變量TZ_EN設置為0,TZ_EN的表示當前4x4?的Total_Zeros計算的使能位,TZ_EN在s0~s3中有某個狀態位值為1時設為1;在每個4x4塊的掃描開始,在TZ_EN第一次設置為1時,開始計算s0~s3中第一個1以后的0個數,然后對當前4x4塊后面的掃描時的s0~s3狀態位的0的個數累加;
3>??Run_before確定:在s0~s3中,計算每個1前面有多少個0,即為對應的非零殘差系數的Run_before值;
4>??Level的確定:在s0~s3中,相應的等于1的數存儲在Level寄存器中,編碼時根據TrailingOnes的大小,將前面TrailingOnes個從Level寄存器中讀出的值不作為Level編碼;
5>??TrailingOnes確定:把coeff0~coeff3分成兩組,其中coeff0,coeff1為低位組,coeff2和coeff3為高位組;對于這兩組殘差系數,分別有一個對應的有效標志位Valid_L/Valid_H表示當前數殘差系數組中是否有大于1或小于負1的情況出現,即代表當前組的計算的TrailingOnes是否有效;?用TrailingOnes_L和TrailingOnes_H來分別代表兩組殘差系數的TrailingOnes的計算結果,用Valid_A表示當前4x4塊中是否有殘差系數大于1或小于負1的情況,若Valid_A為1,則表示之前的殘差系數中有大于1或小于負1的情況,于是有下面的TrailingOnes的計算方法:
如果??Valid_A=1,?那么:TrailingOnes?=?TrailingOnes_tmp;
如果?Valid_A=0,?那么TrailingOnes的計算方法如下:
a)?如果Valid_L?=?0,Valid_H=?0,則TrailingOnes=TrailingOnes_L+TrailingOnes_H+?TrailingOnes_tmp;
b)?如果Valid_L?=?0,Valid_H?=?1,則?TrailingOnes?=?TrailingOnes_L+TrailingOnes_H??+TrailingOnes_tmp;
c)?如果Valid_L=1,Valid_H=0,則?TrailingOnes=TrailingOnes_tmp+?TrailingOnes_L;
d)??????如果Valid_L=1,Valid_H=1,則?TrailingOnes=TrailingOnes_tmp+?TrailingOnes_L;
其中TrailingOnes_tmp表示為暫時存儲在內部的TrailingOnes計算結果,在每個4x4塊的掃描開始時TrailingOnes_tmp設置為0,在每一組的4個系數統計過程完成后TrailingOnes_tmp的值設為TrailingOnes;?最后得到的TrailingOnes限定在小于等于3的范圍。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于復旦大學,未經復旦大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201110232250.4/1.html,轉載請聲明來源鉆瓜專利網。





