国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種視頻編解碼方法

      文檔序號:7847757閱讀:192來源:國知局
      專利名稱:一種視頻編解碼方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及一種信息編解碼方法。
      背景技術(shù)
      在計算機、通信領(lǐng)域中,信息是經(jīng)過編碼傳送的,一種編碼方式的抗干擾能力的高低直接影響信息傳送的質(zhì)量?,F(xiàn)有的視頻圖象編碼壓縮標準MPEG-1、MPEG-2、MPEG-4、H.261、H.263、H.264等都是基于離散數(shù)字余弦變換(DCT)的,其中H.264和MPEG-4 AVC標準采用的是性能逼近于DCT的整數(shù)變換方法,其一般處理過程為圖像傳送時,發(fā)送端首先輸入視頻圖像,將該圖像分為具體的點陣后進行運動估計和運動補償,然后進行DCT轉(zhuǎn)換和量化處理,將所述量化處理的圖像數(shù)據(jù)進行熵編碼,形成編碼后的數(shù)據(jù)碼流傳送到接收端,由接收端進行熵解碼、逆量化處理、DCT逆變換的運動補償?shù)炔僮鞯玫浇獯a后的視頻圖像。上述過程中,所述熵編碼方法主要包括變長編碼和算術(shù)編碼方法,例如,在H.264標準中,采用的熵編碼方法有三種通用變長編碼方法(UVLC)、基于前后關(guān)系的變長編碼方法(CAVLC)和基于前后關(guān)系的算術(shù)編碼方法(CABAC)。其中,H.264標準所采用的UVLC熵編碼方法的基本思想為對于要傳輸?shù)拇a字(Codeword),其結(jié)構(gòu)形式為[M zeros][1][INFO]或者[M ones]
      [INFO];其中中間的“1”或“0”為識別符,識別符前面的[M zeros]或[M ones]為前導(dǎo)符,識別符后面的[INFO]為信息符。
      在上述結(jié)構(gòu)中,假設(shè)用“1”作為識別符,“1”前面的“0”的個數(shù)和“1”后面的信息位數(shù)相同。在H.264標準中,碼字和碼字序號(code_num)具有一一對應(yīng)的關(guān)系,參考下表1表1 code_num與Codeword的對應(yīng)關(guān)系code_numCodeword0 11 0102 0113 00100
      4 001015 001106 001117 00010008 00010019 00010101000010111100011001200011011300011101400011111500001000016000010001… …… …… …… …… …在編碼端,對于給定的碼字序號code_num值,通過以下方法來計算識別符“1”前面的“0”的個數(shù)和識別符“1”后面的信息INFO值M=log2(code_num+1)INFO=code_num+1-2M;在解碼端,通過以下方法解碼出碼字序號code_num值(1)讀出識別符“1”及前面的“0”符號,設(shè)讀出的符號“0”的個數(shù)為M。
      (2)讀出識別符“1”后面的M位信息,令其值為INFO。
      (3)code_num=2M+INFO-1。
      不管是編碼端還是解碼端,如果碼字序號code_num為0,則INFO和M都為0,反之亦然。
      上述碼字具有位數(shù)對稱特點,即識別符“1”前面的“0”的個數(shù)與后面的信息位數(shù)一樣多,信息位占整個碼字的比重不足50%。由于對一個碼字來說,若識別符“1”前面的碼字出錯則不能正確解碼,故識別符“1”前面的“0”的個數(shù)過多導(dǎo)致了UVLC熵編碼抗誤碼性能和編碼效率的降低。

      發(fā)明內(nèi)容
      為了提高視頻編碼過程中基于UVLC熵編碼方法的編碼效率和提高抗誤碼性能,本發(fā)明提出了一種視頻編碼方法及其相對應(yīng)的視頻解碼方法,使用上述方法進行信息編碼,識別符前面的前導(dǎo)符和后面的信息符的位數(shù)不相同。
      為此,本發(fā)明提供的視頻編碼方法,包括確定需要編碼傳輸?shù)男畔?yīng)的碼字序號code_num;根據(jù)所述碼字序號計算識別符前面的前導(dǎo)符的位數(shù)M和識別符后面的信息符INFO,使M小于所述信息符INFO的位數(shù);根據(jù)所述位數(shù)M確定前導(dǎo)符,將前導(dǎo)符、識別符和信息符INFO組成編碼碼字。
      在具體計算時,根據(jù)所述碼字序號按照下述公式計算識別符前面的前導(dǎo)符的位數(shù)M和識別符后面的信息符INFOM=log2(code_num+2n)-n;INFO=code_num+2n-2M+n;其中,n為識別符前面的前導(dǎo)符的位數(shù)M與識別符后面的信息符INFO位數(shù)差的絕對值,n≥1。
      基于上述計算,所述方法還包括按照下式計算碼字長度Length,以利于進行編解碼Length=2M+n+1。
      與上述視頻編碼方法采用的計算M和INFO方式對應(yīng)的的視頻解碼方法,包括讀出識別符前面的前導(dǎo)符位數(shù)M;讀出識別符后面的M+n位信息,令其值為INFO;按照下述公式計算碼字序號code_numcode_num=2M+n+INFO-2n;根據(jù)所得碼字序號code_num確定要編碼傳輸?shù)男畔ⅰ?br> 在具體計算時,也可以根據(jù)所述碼字序號按照下述公式計算識別符前面的前導(dǎo)符的位數(shù)M和識別符后面的信息符INFO如果code_num小于2m-1,則,M=log2(code_num+1);INFO=code_num+1-2M;否則M=log2(code_num+2m+n-2m+1)-n;INFO=code_num+2m+n-2m+1-2M+n;其中,m≥0,n≥1;m為從識別符前面的具有位數(shù)非對稱特性的起始前導(dǎo)符中的位數(shù),n為識別符前面的前導(dǎo)符的位數(shù)M與識別符后面的信息符INFO位數(shù)差的絕對值。
      基于上述計算,所述方法還包括按照下式計算碼字長度Length,以利于進行編解碼如果code_num小于2m-1,則,Length=2M+1;否則,Length=2M+n+1。
      與上述視頻編碼方法采用的計算M和INFO方式對應(yīng)的的視頻解碼方法,包括(1)讀出識別符前面的前導(dǎo)符位數(shù)M;(2)如果M<m,則,讀出識別符后面的M位信息,令其值為INFO;否則,讀出識別符后面的M+n位信息,令其值為INFO;(3)如果M<m,則,code_num=2M+INFO-1;否則,code_num=INFO-2m+n+2m-1+2M+n。
      根據(jù)所得碼字序號code_num確定要編碼傳輸?shù)男畔ⅰ?br> 對于上述方法來說,所述識別符為二進制“1”或“0”,當所述識別符為“1”時,所述前導(dǎo)符為M位“0”,當所述識別符為“0”時,所述前導(dǎo)符為M位“1”。
      由于本發(fā)明所述的基于UVLC的熵編碼具有位數(shù)非對稱的特性,識別符前面的前導(dǎo)符符號的個數(shù)和識別符后面的信息位數(shù)可以不相同,前導(dǎo)符的符號位數(shù)比識別符后面的信息位數(shù)少,使得在整個的編碼數(shù)據(jù)中,信息位占有更大的比重,這不但使本發(fā)明具有較高的編碼效率,還能夠減少前導(dǎo)符出錯的概率,因此,與位數(shù)對稱UVLC熵編碼方法相比,本發(fā)明所述的熵編碼方法具有更好的抗誤碼性能。
      具體實施例方式
      本發(fā)明提出了一種新的視頻編碼過程中基于UVLC的熵編碼方法,如果識別符采用“1”,則識別符“1”前面的“0”的個數(shù)和“1”后面的信息位數(shù)可以不相同,例如,識別符“1”前面的“0”的個數(shù)比1后面的信息位數(shù)少1,以下討論主要是針對這種情形進行的?;舅枷霝橛谩?”作為識別符,所有碼字“codeword”中,“1”前面的“0”的個數(shù)比“1”后面的信息位數(shù)少n位,或者,部分碼字“codeword”中,“1”前面的“0”的個數(shù)比“1”后面的信息位數(shù)少n位。由于對一個碼字來說,若識別符“1”前面的碼字出錯則不能正確解碼,故減少識別符“1”前面的“0”的個數(shù)可以減少出錯的概率,從而具有更好的抗誤碼性能。若用“0”作為識別符,則識別符前面的符號為“1”,其它過程一樣,以下分析都是針對用“1”作為識別符來討論的。
      本發(fā)明對于所有具有位數(shù)非對稱特性的碼字情形,可假設(shè)識別符“1”前面的“0”的個數(shù)比“1”后面的信息位數(shù)少n,則具有如下一般描述方式碼字“Codeword”的結(jié)構(gòu)形式為[M zeros][1][INFO];基于上述結(jié)構(gòu)形式,本發(fā)明的第一種方案為,在編碼端,所有碼字都具有位數(shù)非對稱特性。首先確定需要編碼傳輸?shù)拇a字對應(yīng)的碼字序號code_num,對于給定的碼字序號code_num值,通過以下方法來計算識別符“1”前面的“0”的個數(shù)M和識別符“1”后面的信息INFO值M=log2(code_num+2n)-n;Length=2M+n+1;INFO=code_num+2n-2M+n;其中,n為識別符前面的前導(dǎo)符的位數(shù)M與識別符后面的信息符INFO位數(shù)差的絕對值,并且n≥1;最后,根據(jù)所述位數(shù)M確定前導(dǎo)符,即M位“0”,將前導(dǎo)符、識別符“1”和信息符INFO組成編碼。
      編碼長度Length,是為有利于進行編解碼。
      以上述熵編碼方法相對應(yīng)的熵解碼方法,包括下述步驟首先從接收到的碼流中讀出識別符前面的前導(dǎo)符位數(shù)M;讀出識別符后面的M+n位信息,令其值為INFO;
      按照下述公式計算碼字序號code_numcode_num=2M+n+INFO-2n;最后根據(jù)所述碼字序號code_num確定要編碼傳輸?shù)男畔ⅰ?br> 下面以結(jié)構(gòu)形式為[M zeros][1][INFO]的碼字“Codeword”說明上述方案的實施例例1n=1。在編碼端,對于給定的碼字序號code_num值,通過以下方法來計算識別符“1”前面的“0”的個數(shù)M和識別符“1”后面的信息INFO值M=log2(code_num+2)-1。
      Length=2(M+1)。
      INFO=code_num+2-2M+1在解碼端,通過以下方法解碼出碼字序號code_num值(1)讀出識別符“1”及前面的“0”符號,設(shè)讀出的符號“0”的個數(shù)為M。
      (2)讀出識別符“1”后面的M+1位信息,令其值為INFO。
      (3)code_num=2M+1+INFO-2由此得到的碼字序號code_num與碼字Codeword的對應(yīng)關(guān)系如表2所示。
      表2 碼字序號code_num與碼字Codeword對應(yīng)關(guān)系code_numCodeword(H.264標準)Codeword(本發(fā)明)0 1 101 010112 01101003 00100 01014 00101 01105 00110 01116 00111 0010007 00010000010018 00010010010109 000101000101110 0001011001100
      110001100 001101120001101 001110130001110 001111140001111 0001000015000010000 0001000116000010001 0001001017000010010 0001001118000010011 0001010019000010100 0001010120000010101 0001011021000010110 0001011122000010111 0001100023000011000 0001100124000011001 0001101025000011010 0001101126000011011 0001110027000011100 0001110128000011101 0001111029000011110 0001111130000011111 00001000003100000100000 00001000013200000100001 0000100010… …例2n=2。在編碼端,對于給定的碼字序號code_num值,通過以下方法來計算識別符“1”前面的“0”的個數(shù)M和識別符“1”后面的信息INFO值M=log2(code_num+4)-2。
      Length=2(M+1)+1。
      INFO=code_num+4-2M+2在解碼端,通過以下方法解碼出碼字序號code_num值
      (1)讀出識別符“1”及前面的“0”符號,設(shè)讀出的符號“0”的個數(shù)為M。
      (2)讀出識別符“1”后面的M+2位信息,令其值為INFO。
      (3)code_num=2M+2+INFO-4碼字序號code_num與碼字Codeword的對應(yīng)關(guān)系如表3所示。
      表3 碼字序號code_num與碼字Codeword對應(yīng)關(guān)系code_numCodeword(H.264標準)Codeword(本發(fā)明)0 1 1001 0101012 0111103 00100 1114 00101 010005 00110 010016 00111 010107 0001000010118 0001001011009 00010100110110 00010110111011 00011000111112 0001101001000013 0001110001000114 0001111001001015 000010000 001001116 000010001 001010017 000010010 001010118 000010011 001011019 000010100 001011120 000010101 001100021 000010110 0011001
      22000010111 001101023000011000 001101124000011001 001110025000011010 001110126000011011 001111027000011100 001111128000011101 00010000029000011110 00010000130000011111 0001000103100000100000 0001000113200000100001 000100100……本發(fā)明的第二種方案為,從某一碼字序號開始,后面的碼字都具有位數(shù)非對稱的特性,而前面的碼字都具有位數(shù)對稱的特性。在編碼端,首先確定需要編碼傳輸?shù)男畔?yīng)的碼字序號code_num;對于給定的碼字序號code_num值,通過以下方法來計算識別符“1”前面的“0”的個數(shù)M和識別符“1”后面的信息INFO值如果(code_num<2m-1),則,M=log2(code_num+1);Length=2M+1;INFO=code_num+1-2M;否則,M=log2(code-num+2m+n-2m+1)-n;Length=2M+n+1;INFO=code_num+2m+n-2m+1-2M+n。
      其中,m≥0,n≥1;m為從識別符前面的具有位數(shù)非對稱特性的起始前導(dǎo)符中的位數(shù),n為識別符前面的前導(dǎo)符的位數(shù)M與識別符后面的信息符INFO位數(shù)差的絕對值;也就是說,識別符“1”前面的“0”的個數(shù)為m的碼字開始都具有位數(shù)非對稱特性,并設(shè)識別符“1”前面的“0”的個數(shù)比“1”后面的信息位數(shù)少n。
      最后,確定所述識別符,并根據(jù)所述位數(shù)M確定前導(dǎo)符“0”的個數(shù),將前導(dǎo)符,即M個“0”、識別符“1”和信息符INFO組成編碼。
      計算上述編碼長度Length,目的在于有利于進行編解碼。
      以上述第二種方案所述的熵編碼方法相對應(yīng)的熵解碼方法,包括下述步驟在解碼端,(1)讀出識別符前面的前導(dǎo)符位數(shù)M;(2)如果M<m,則,讀出識別符后面的M位信息,令其值為INFO;否則,讀出識別符后面的M+n位信息,令其值為INFO;(3)如果M<m,則,code_num=2M+INFO-1;否則code_num=INFO-2m+n+2m-1+2M+n。
      下面以結(jié)構(gòu)形式為[M zeros][1][INFO]的碼字“Codeword”說明上述第二種方案的實施例(結(jié)合類PASCAL語言來描述)例3n=1,m=1。在編碼端,對于給定的碼字序號code_num值,通過以下方法來計算識別符“1”前面的“0”的個數(shù)M和識別符“1”后面的信息INFO值if(code_num==0){M=0,INFO=0,Length=1。}else{M=log2(code_num+3)-1。
      Length=2(M+1)。
      INFO=code_num+3-2M+1};在解碼端,通過以下方法解碼出碼字序號code_num值(1)讀出識別符“1”及前面的“0”符號,設(shè)讀出的符號“0”的個數(shù)為M。
      (2)if(M≠0)
      讀出識別符“1”后面的M+1位信息,令其值為INFO。
      (3)if(M==0)code_num=0elsecode_num=2M+1+INFO-3;碼字序號code_num與碼字Codeword的對應(yīng)關(guān)系如表4所示。
      表4 碼字序號code_num與碼字Codeword對應(yīng)關(guān)系code_num Codeword(H.264標準) Codeword(本發(fā)明)01 11010 01002011 0101300100 0110400101 0111500110 001000600111 00100170001000 00101080001001 00101190001010 00110010 0001011 00110111 0001100 00111012 0001101 00111113 0001110 0001000014 0001111 0001000115 000010000 0001001016 000010001 0001001117 000010010 0001010018 000010011 0001010119 000010100 0001011020 000010101 00010111
      21000010110 0001100022000010111 0001100123000011000 0001101024000011001 0001101125000011010 0001110026000011011 0001110127000011100 0001111028000011101 0001111129000011110 000010000030000011111 00001000013100000100000 00001000103200000100001 0000100011… … /例3n=1,m=2。在編碼端,對于給定的碼字序號code_num值,通過以下方法來計算識別符“1”前面的“0”的個數(shù)M和識別符“1”后面的信息INFO值if(code_num<=2){M=log2(code_num+1)Length=2M+1INFO=code_num+1-2M}else{M=log2(code_num+5)-1Length=2(M+1)INFO=code_num+5-2M+1}在解碼端,通過以下方法解碼出碼字序號code_num值(1)讀出識別符“1”及前面的“0”符號,設(shè)讀出的符號“0”的個數(shù)為M。
      (2)if(M<=1)讀出識別符“1”后面的M位信息,令其值為INFO。
      else讀出識別符“1”后面的M+1位信息,令其值為INFO。(3)if(M<=1)code_num=2M+INFO-1elsecode_num=2M+1+INFO-5碼字序號code_num與碼字Codeword的對應(yīng)關(guān)系如表5所示。
      表5碼字序號code_num與碼字Codeword對應(yīng)關(guān)系code_numCodeword(H.264標準)Codeword(本發(fā)明)0 1 11 0100102 0110113 00100 0010004 00101 0010015 00110 0010106 00111 0010117 00010000011008 00010010011019 000101000111010 000101100111111 00011000001000012 00011010001000113 00011100001001014 00011110001001115 000010000 0001010016 000010001 0001010117 000010010 0001011018 000010011 0001011119 000010100 0001100020 000010101 0001100121 000010110 00011010
      22 000010111 0001101123 000011000 0001110024 000011001 0001110125 000011010 0001111026 000011011 0001111127 000011100 000010000028 000011101 000010000129 000011110 000010001030 000011111 000010001131 00000100000 000010010032 00000100001 0000100101… … /以上所述僅是本發(fā)明的幾種具體的實施方式,應(yīng)當指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明所述方法的前提下,還可以作出其它多種適合自己需求的實施方式。
      權(quán)利要求
      1.一種視頻編碼方法,其特征在于包括確定需要編碼傳輸?shù)男畔?yīng)的碼字序號code_num;根據(jù)所述碼字序號計算識別符前面的前導(dǎo)符的位數(shù)M和識別符后面的信息符INFO,使M小于所述信息符INFO的位數(shù);根據(jù)所述位數(shù)M確定前導(dǎo)符,將前導(dǎo)符、識別符和信息符INFO組成編碼碼字。
      2.根據(jù)權(quán)利要求1所述的視頻編碼方法,其特征在于,根據(jù)所述碼字序號按照下述公式計算識別符前面的前導(dǎo)符的位數(shù)M和識別符后面的信息符INFOM=log2(code_num+2n)-n;INFO=code_num+2n-2M+n;其中,n為識別符前面的前導(dǎo)符的位數(shù)M與識別符后面的信息符INFO位數(shù)差的絕對值,n≥1。
      3.根據(jù)權(quán)利要求2所述的視頻編碼方法,其特征在于,所述方法還包括按照下式計算碼字長度Length,以利于進行編解碼Length=2M+n+1。
      4.一種基于權(quán)利要求2所述視頻編碼方法的視頻解碼方法,其特征在于包括讀出識別符前面的前導(dǎo)符位數(shù)M;讀出識別符后面的M+n位信息,令其值為INFO;按照下述公式計算碼字序號code_numcode_num=2M+n+INFO-2n;根據(jù)所得碼字序號code_num確定要編碼傳輸?shù)男畔ⅰ?br> 5.根據(jù)權(quán)利要求1所述的視頻編碼方法,其特征在于,根據(jù)所述碼字序號按照下述公式計算識別符前面的前導(dǎo)符的位數(shù)M和識別符后面的信息符INFO如果code_num小于2m-1,則,M=log2(code_num+1);INFO=code_num+1-2M;否則M=log2(code_num+2m+n-2m+1)-n;INFO=code_num+2m+n-2m+1-2M+n;其中,m≥0,n≥1;m為從識別符前面的具有位數(shù)非對稱特性的起始前導(dǎo)符中的位數(shù),n為識別符前面的前導(dǎo)符的位數(shù)M與識別符后面的信息符INFO位數(shù)差的絕對值。
      6.根據(jù)權(quán)利要求5所述的視頻編碼方法,其特征在于,所述方法還包括按照下式計算碼字長度Length,以利于進行編解碼如果code_num小于2m-1,則,Length=2M+1否則,Length=2M+n+1。
      7.一種基于權(quán)利要求5所述視頻編碼方法的視頻解碼方法,其特征在于包括(1)讀出識別符前面的前導(dǎo)符位數(shù)M;(2)如果M<m,則,讀出識別符后面的M位信息,令其值為INFO;否則,讀出識別符后面的M+n位信息,令其值為INFO;(3)如果M<m,則,code_num=2M+INFO-1;否則,code_num=INFO-2m+n+2m-1+2M+n。根據(jù)所得碼字序號code_num確定要編碼傳輸?shù)男畔ⅰ?br> 8.根據(jù)權(quán)利要求1、2、3、4、5、6、7或8所述的視頻編碼方法,其特征在于,所述識別符為二進制“1”或“0”,當所述識別符為“1”時,所述前導(dǎo)符為M位“0”,當所述識別符為“0”時,所述前導(dǎo)符為M位“1”。
      全文摘要
      本發(fā)明公開了一種視頻編碼方法,該方法包括首先確定需要編碼傳輸?shù)拇a字對應(yīng)的碼字序號code_num;然后根據(jù)所述碼字序號按照前導(dǎo)符的位數(shù)M小于識別符后面的信息符INFO位數(shù)n位的原則計算識別符前面的前導(dǎo)符的位數(shù)M和識別符后面的信息符INFO;最后根據(jù)所述位數(shù)M確定前導(dǎo)符,將前導(dǎo)符、識別符和信息符INFO組成編碼。本發(fā)明同時還公開了與上述視頻編碼方法相對應(yīng)的視頻解碼方法;采用本發(fā)明,在整個的編碼數(shù)據(jù)中,信息位占有更大的比重,這不但使本發(fā)明具有較高的編碼效率,還能夠減少前導(dǎo)符出錯的概率,因此,與位數(shù)對稱UVLC熵編碼方法相比,本發(fā)明所述的熵編碼方法具有更好的抗誤碼性能。
      文檔編號H04N7/50GK1595984SQ03159169
      公開日2005年3月16日 申請日期2003年9月9日 優(yōu)先權(quán)日2003年9月9日
      發(fā)明者熊聯(lián)歡 申請人:華為技術(shù)有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1