[發明專利]一種快速防止出現偽起始碼的方法及裝置有效
| 申請號: | 201210312587.0 | 申請日: | 2012-08-29 |
| 公開(公告)號: | CN102802023A | 公開(公告)日: | 2012-11-28 |
| 發明(設計)人: | 趙海武 | 申請(專利權)人: | 上海國茂數字技術有限公司 |
| 主分類號: | H04N21/234 | 分類號: | H04N21/234;H04N21/2343;H04N21/44;H04N21/845;H04N7/26 |
| 代理公司: | 上海思微知識產權代理事務所(普通合伙) 31237 | 代理人: | 鄭瑋 |
| 地址: | 201204 上海市浦東新區張江*** | 國省代碼: | 上海;31 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 快速 防止 出現 起始 方法 裝置 | ||
技術領域
本發明涉及一種防止出現偽起始碼的方法及裝置,特別是涉及一種將音視頻編碼數據組織成可隨機訪問數據流時的快速防止出現偽起始碼的方法。
背景技術
傳統的視頻編碼標準如ITU(International?Telecommunication?Union,國際電信聯盟)制定的H.261,H.263,H.263+,H.264標準以及ISO(International?Organization?for?Standardization,國際標準化組織)的MPEG(Moving?Pictures?Experts?Group,動態圖像專家組)組織制定的MPEG-1,MPEG-2,MPEG-4等都需把音視頻編碼數據組織成可隨機訪問數據流,以便解碼器可以從設置的隨機訪問點處開始解碼。在以上標準中都是通過起始碼來實現編碼數據的隨機訪問的,例如視頻序列起始碼、圖像組起始碼、圖像起始碼等等。這些起始碼都是由起始碼前綴和起始碼值兩部分組成。起始碼前綴是一個固定的二進制位串,標志一個起始碼的存在;起始碼值是一個數值,指出起始碼的含義。
如果在其他編碼數據中出現了與起始碼前綴一樣的二進制位串,則解碼器就有可能把該位串錯誤地當成起始碼前綴,從而引起解碼錯誤。這樣的二進制位串與緊隨其后的若干二進制位構成了偽起始碼。為了保證音視頻碼流的正確解碼,必須防止在碼流中出現偽起始碼。
防止出現偽起始碼的通常方法是在設計碼流的語法結構時設置一些禁止值和掩碼位。所謂禁止值是指禁止語法元素取某些值,因為如果該語法元素取了那些值,就有可能出現偽起始碼。所謂掩碼位,是指在可能出現偽起始碼的語法元素之間插入一個固定的二進制位。
上述的設置禁止值和掩碼位的方法有以下缺點:a.增加了語法設計的復雜性。設計語法結構時,要時時刻刻考慮到是否會出現偽起始碼,是否需要禁止一些值,是否需要插入掩碼位。b.降低了語法結構的易讀性。這些與壓縮編碼無關的語法元素混在語法結構中,使人不容易抓住要點。c.效率不高。在有可能產生偽起始碼的地方都必須采取措施,而不論語法元素的具體取值是否會真的產生偽起始碼。自從H.264采用了算術編碼,上述的方法就不再具有可行性。
專利號為US7839895的美國專利提出了一種能夠適應算術編碼的防偽起始碼方法。該方法對兩個起始碼之間的數據塊進行檢查,如果在某個字節對齊位置出現了連續的22個0,則在第22個0之后插入如下的8個比特11000000,從而避免了偽起始碼的出現。在解碼時進行相反的操作,檢查兩個起始碼之間的數據塊中是否出現了0x000003,如果出現了,則刪除0x03.該方法在字節層面操作,實現起來比較方便。
申請號為200310107985.X的中國專利申請提出了一種防偽起始碼方案。與美國專利US7839895的區別是該專利申請是在位層面進行操作,當在某個字節對齊位置出現了連續的22個0時,在第22個0之后插入1個或2個位來防止偽起始碼出現。
美國專利US7839895和中國專利200310107985.X發明的兩類方法各有所長,但是它們有一個共同的缺點,就是在解碼端,不論有沒有出現偽起始碼,都要首先逐個字節檢查是否存在插入的位,如果存在,則刪除這些插入的位。這一過程需要一定的計算量,對于計算能力有限的解碼器來講,將是一種負擔。
發明內容
為克服上述現有技術存在的不足,本發明之目的在于提供一種快速防止偽起始碼的方法及系統,其可以使解碼端在進行解碼時以極小的計算量完成防偽起始碼的操作。
為達上述及其它目的,本發明提供一種快速防止偽起始碼的方法,包括編碼端處理方法及解碼端處理方法,其中,該編碼端處理方法包括如下步驟:
步驟一,在數據塊中的字節對齊位置尋找偽起始碼前綴,并記錄偽起始碼前綴出現的次數和位置;
步驟二,判斷偽起始碼前綴出現的次數;
步驟三,若該偽起始碼前綴出現的次數為0,則于該數據塊的第一個字節前插入一最高位為1且包含該數據塊長度信息的字節;若該偽起始碼前綴出現的次數大于0,則于該數據塊的第一個字節前插入1-4個非0字節,且該1-4個非0字節記錄第一個偽起始碼前綴的位置信息;以及
步驟四,根據一預定的修改規則修改每個偽起始碼前綴所包含的三個字節的值,將它們修改為包含下一個偽起始碼前綴或真起始碼前綴位置信息的值,且修改后的三個字節不會與前面或后面的字節構成新的偽起始碼前綴;
該解碼端處理方法包括如下步驟:
步驟五,在接收到的數據流中尋找起始碼前綴,起始碼前綴后面的一個字節為起始碼值;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于上海國茂數字技術有限公司,未經上海國茂數字技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210312587.0/2.html,轉載請聲明來源鉆瓜專利網。





