国产精品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>

      可變長度編碼方法

      文檔序號:7910057閱讀:690來源:國知局
      專利名稱:可變長度編碼方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及一種視頻編解碼器,具體而言,涉及視頻編解碼器中的一種可變長度編碼方法。
      背景技術(shù)
      一般而言,要發(fā)射或者儲存的信號都被描述成劃分成列的幾個碼元。將每個碼元表示為具有特定長度的代碼叫做編碼。在這里,將每個碼元表示為具有相同長度的代碼叫做固定長度編碼,以及將每個碼元表示為具有不同長度的代碼的叫做VLC(可變長度編碼)。
      在可變長度編碼方法中,當(dāng)將每個碼元描述成具有不同長度的代碼的時候,將長度較短的代碼分配給出現(xiàn)頻率相對高的碼元,將較長的代碼分配給出現(xiàn)頻率相對低的碼元。因此,與將相同長度代碼分配給所有碼元的固定長度編碼方法相比,可以用較少的比特數(shù)來表示信號。
      與固定長度編碼方法相比,可變長度編碼在壓縮信號信息量的時候非常有效,但是在信道差錯頻繁出現(xiàn)的無線電環(huán)境中則不是那么有效。也就是說,當(dāng)描述特定碼元的代碼受到信道差錯影響的時候,固定長度編碼中只有有關(guān)的碼元會丟失。而在可變長度編碼中,因為每個碼元的每個代碼都具有自己的長度,因此不僅會丟失有關(guān)的碼元,還會丟失后續(xù)碼元。因此,在3GPP(第三代伙伴合作項目)標準所定義的H.263視頻編解碼器的可變長度編碼過程中提出了檢測無線電環(huán)境信道差錯的各種方法。
      圖1是說明一般的視頻通信系統(tǒng)的框圖。如圖1所示,這種視頻通信系統(tǒng)被粗略地劃分成一個發(fā)射單元和一個接收單元。這個發(fā)射單元包括一個攝像機101和一個H.263編碼器102,該編碼器用來將攝像機101拍攝的圖像編碼成H.263格式,并且以無線方式將它們發(fā)射出去。因此,攝像機101拍攝的圖像被H.263編解碼器102編碼,并通過無線信道發(fā)射給接收單元。
      該接收單元包括視頻解碼器103、差錯檢測器104、糾錯器105和顯示器106。該H.263解碼器103將通過無線信道發(fā)射的H.263比特流解碼成MPEG或者H.263格式,以及差錯檢測器104檢測解碼信號中的信道差錯。因此,糾錯器105糾正或者隱藏檢測到的差錯,并且通過顯示器106顯示出來。在這里,利用已經(jīng)正確地解碼的前面的圖像部分或者當(dāng)前圖像部分來糾正這些差錯。
      總之,為了消除空間和時間冗余,該H.263編碼器分別采用了一種DCT(離散余弦變換)方法和一種MC(運動補償)方法。在通過二維空間變換消除數(shù)據(jù)的相關(guān)性的離散余弦變換方法中,對8像素乘以8像素的圖像塊單元進行空間轉(zhuǎn)換。在這里,因為經(jīng)過了空間轉(zhuǎn)換的數(shù)據(jù)傾向于集中在一邊,因此在量化以后才將它們發(fā)射出去。
      在連續(xù)時間圖像中,人或者物體的運動主要出現(xiàn)在屏幕的中心部分。通過利用這一特性,在運動補償方法中消除了時間冗余。具體地說,通過在不變的部分(或者具有最小變化的部分)中填充從前面的圖像取出來的相似部分,能夠使要發(fā)射的數(shù)據(jù)量最小。如上所述,發(fā)現(xiàn)圖像之間最相似的宏塊叫做ME(運動估計),作為位移的運動描述度稱做運動矢量。
      圖2是說明通用H.263編碼器結(jié)構(gòu)的一個框圖。如圖2所示,當(dāng)輸入圖像的當(dāng)前宏塊與前面圖像的任意宏塊都不相似時,編碼控制器202就控制視頻通信系統(tǒng),讓它處于一種幀內(nèi)模式(intra mode),當(dāng)有一個相似的宏塊時,編碼控制器202就控制視頻通信系統(tǒng),讓它處于一種幀間模式(inter mode)。在幀內(nèi)模式中,第一個開關(guān)201按照來自編碼控制器202的模式控制信號輸出一個輸入圖像給DCT單元204。在幀間模式中,第一個開關(guān)201輸出一個輸入圖像給補償器210。
      如果確定的模式是幀內(nèi)模式,就通過DCT單元204和量化器205將輸入圖像輸入到VLC 203,而不考慮以前的圖像,并且該VLC 203利用從編碼控制器202輸出的模式控制信號和量化參數(shù)對輸入圖像進行編碼。
      另一方面,當(dāng)確定的模式是幀間模式的時候,通過反量化器206和反DCT 207恢復(fù)出來的以前的圖像被儲存在幀緩沖器209中。利用儲存在幀緩沖器209中的以前的圖像和通過第一個開關(guān)201收到的當(dāng)前輸入圖像,運動估計器211搜索(以前的圖像中)與當(dāng)前宏塊最相似的宏塊。該運動補償器210按照從運動估計器211輸出的運動矢量來補償宏塊,并且第一個減法器200輸出當(dāng)前宏塊和運動補償后的宏塊之間的差。因此,通過DCT單元204和量化器205在VLC 203中將相減的圖像最終編碼,并發(fā)射出去。
      第二個開關(guān)212將運動補償以后的宏塊輸出給加法器208。加法器208將運動補償后的宏塊加到以前的圖像上去,將它輸出給幀緩沖器209。通過8乘8單元對輸入數(shù)據(jù)采樣以后,在DCT單元204中將輸入數(shù)據(jù)進行DCT變換,轉(zhuǎn)換系數(shù)按照壓縮比在量化器205中進行量化。在量化數(shù)據(jù)中,該VLC 203將出現(xiàn)頻率較高的數(shù)據(jù)編碼成較小的碼字,因而能夠獲得最終的數(shù)據(jù)壓縮效果。在這種編碼方法中,為了能夠獲得較高的壓縮比和最大的編碼效率,采用了由宏塊單元進行獨立編碼的一種方法。
      圖3給出了一種H.263比特流。從VLC 205輸出的H.263比特流被劃分成四層,即塊層、宏塊層、GOB(塊組)層和圖像層。該塊層由8乘8個像素組成,其是最低層。宏塊層由4個亮度塊和兩個色度塊組成。另外,GOB塊由多個宏塊層(對于QCIF(四分之一公共中間格式)尺寸有9個宏塊層)組成,以及圖像層由多個(對于QCIF尺寸有9個)GOB層組成。
      圖4是說明圖3所示宏塊層的一個框圖。宏塊層被大致地劃分成一個頭部部分和一個塊數(shù)據(jù)部分。該頭部部分包括一個COD(編碼宏塊指示)標志,用于說明宏塊是編碼的宏塊還是未編碼宏塊;一個MCBPC(色度信號的宏塊類型和編碼塊模式)標志,其中具有關(guān)于宏塊模式和色度塊的編碼模式信息;一個CBPY(亮度的編碼塊模式)標志,它具有關(guān)于亮度塊的編碼模式信息;一個DQUANT(量化參數(shù)差值)標志,它具有量化步長尺寸,也就是壓縮程度信息。
      MB頭部中還包括一個MVD(運動矢量數(shù)據(jù))標志;以及塊數(shù)據(jù),其中有每個塊經(jīng)過離散余弦變換處理得到的結(jié)果信息(紋理)。該MVD不是當(dāng)前宏塊的運動矢量值,而是當(dāng)前宏塊運動矢量和估計出來的運動矢量之間的差,以及它是通過減少比特數(shù)量來提高編碼效率。
      下面參考宏塊和附圖5來介紹相關(guān)技術(shù)中的編碼過程。首先,根據(jù)從編碼控制器202收到的模式控制信號,VLC 203確定包括當(dāng)前宏塊的幀的圖像類型是P圖像(也就是互圖像)還是I圖像(也就是內(nèi)圖像),如同步驟S501所示。如果它是P圖像,就將一個特定的值寫入COD標志,如同步驟S502所示。當(dāng)在當(dāng)前的宏塊沒有任何運動信息,并且六個塊都沒有紋理信息(都是“0”)的時候,該COD標志是“1”。否則,該COD標志就是“0”,如同步驟S503所示。
      因此,當(dāng)COD標志是“1”的時候,然后對下一個宏塊進行編碼。但是,當(dāng)COD標志是“0”的時候,就執(zhí)行以下步驟。另外,如果判斷結(jié)果表明它是I圖像,就寫入MCBCP標志和CBPY標志,而不寫入COD標志,如同步驟S504和S505所示。在這里,該MCBPC標志表明宏塊的格式,以及兩個顏色差分信號塊的模式,并且該CBPY標志說明四個亮度信號塊的模式。該模式分別地說明有關(guān)包括宏塊中的顏色差和亮度信息的6個塊的紋理信息的存在。
      然后寫DQUANT標志。該DQUANT標志用于表明在以前寫過的QP和當(dāng)前宏塊QP之間的差,并且用于在編碼控制單元202中調(diào)整壓縮程度。因此,當(dāng)宏塊模式是幀間模式或者幀內(nèi)模式的時候,因為DQUANT等于0,因此它被跳過去,而不用被寫入,就象步驟S506和S507所說明的一樣。
      然后,寫一個運動矢量差值。在這里,只在互宏塊中存在運動矢量,它說明最接近的前一幀與當(dāng)前宏塊在x和y方向上之間距離有多遠。在視頻編碼中,不是按照運動矢量的本來樣子編碼,而是對它與預(yù)測的運動矢量之間的差值進行編碼。這樣做叫做MVD。因此,除了幀內(nèi)模式宏塊以外,必須寫MVD標志。但是,在幀內(nèi)模式宏塊中,沒有任何必要寫,就象步驟S508和步驟S509所說明的一樣。
      如上所述,在編碼器中經(jīng)過了編碼處理以后,當(dāng)通過信道發(fā)射編碼的宏塊的時候,某個接收機(圖中沒有畫出)收到它,并對它進行解碼。
      一般而言,在H.263解碼器中,當(dāng)代碼本或者代碼表中沒有某個比特流的碼元的時候(無效代碼),就將它檢測為一個差錯。但是在差錯檢測方法中,當(dāng)代碼本中偶然存在一個發(fā)生了差錯的比特流的時候,就不可能找出準確的差錯發(fā)生位置。
      例如,當(dāng)一個比特流實際上出現(xiàn)差錯的時候,因為誤解概率遠遠大于“無效代碼”判斷概率,在利用代碼本的傳統(tǒng)差錯檢測方法中可能檢測不到差錯,雖然檢測到了差錯,它也可能總是在比實際差錯的發(fā)生晚一些的時候檢測到的。
      在信道差錯的發(fā)生中,H.263解碼器中“無效代碼”出現(xiàn)概率就是一個碼字在代碼本中沒有的概率。
      -P圖像的MCBPC代碼表0.110%-I圖像的MCBPC代碼表1.37%-CBPY代碼表3.125%-MVD代碼表0.061%-TCOEF(量化變換系數(shù))代碼表0.195%如上所述,在利用代碼本的檢測方法中,宏塊單元檢測差錯的發(fā)生原因是一個1比特COD標志作為宏塊初始信息。在這里,該COD標志表明宏塊是否是編碼的,當(dāng)某個宏塊幾乎與前面的圖像的宏塊相似的時候,就將COD標志設(shè)置為“1”,并且發(fā)射紋理信息的時候不對它進行編碼。它主要是應(yīng)用于在圖像中沒有任何運動的背景部分的宏塊。
      因此,當(dāng)接收機錯誤地理解了COD標志值的時候,就很可能發(fā)生檢測差錯。更加詳細地說,因為攝像機101的運動,當(dāng)當(dāng)前圖像與前面的圖像不相似的時候,就將當(dāng)前圖像所有宏塊的COD標志設(shè)置成“0”,并且編碼地發(fā)射紋理信息和運動信息。
      但是,當(dāng)編碼的圖像的某個宏塊發(fā)生差錯的時候,如果接收機的H.263解碼器103沒有檢測到發(fā)生了差錯的宏塊,它就從下一個宏塊開始失去同步,因此它讀出的COD是錯誤的。
      而且,當(dāng)失去同步的宏塊的COD標志值連續(xù)地是“1”的時候,就不可能檢測到作為數(shù)字“1”的宏塊的差錯,原因在于,宏塊解碼錯誤,因此檢測差錯隨著宏塊的數(shù)量增加而增加。

      發(fā)明內(nèi)容
      按照一個或者多個實施例,一種可變長度編碼方法包括將視頻編碼器收到的當(dāng)前圖像和以前的圖像的對應(yīng)部分進行比較;如果所述對應(yīng)部分是互相相似的,就通過將當(dāng)前圖像的COD(編碼宏塊顯示)標志設(shè)置為特定值進行編碼。該對應(yīng)部分每個至少包括一個宏塊。這個特定值近似等于“0”。
      在一些實施例中,將MCBPC(色度信號的宏塊類型和編碼塊模式)標志設(shè)置成等于第一個值,例如近似等于“1”。將CBPY(色度信號的編碼塊模式)標志設(shè)置成等于第二個值,例如近似等于“11”。將MVD(運動矢量數(shù)據(jù))標志設(shè)置成等于第三個值,例如近似等于“0”。
      在特定的實施例中,一種可變長度編碼方法包括確定宏塊的編碼模式;確定宏塊的編碼模式為幀間模式的時候,將宏塊頭部的COD(編碼宏塊指示)標志設(shè)置為第一個值;將MCBPC(色度信號的宏塊類型和編碼塊模式)標志設(shè)置為第二個值;將CBPY(亮度信號的編碼塊模式)標志設(shè)置為第三個值;以及將MVD(運動矢量數(shù)據(jù))標志設(shè)置為第四個值。
      下面通過參考附圖,對本發(fā)明進行更加詳細的介紹,本領(lǐng)域中的技術(shù)人員會更加了解本發(fā)明的這些實施例和其它實施例,本發(fā)明并不局限于這里公開的任何特定實施例。


      用于更好地理解本發(fā)明,同時構(gòu)成本說明書一部分的

      了本發(fā)明的實施例并結(jié)合說明用于解釋本發(fā)明的基本原理。
      圖1是說明一般視頻通信的一個框圖;圖2是說明一般H.263編碼器結(jié)構(gòu)的一個框圖;
      圖3是說明H.263比特的列的層結(jié)構(gòu)的一個示例性示意圖;圖4是說明圖3所示宏塊層語法的一個示例性示意圖;圖5是說明傳統(tǒng)技術(shù)中在可變長度編碼里宏塊層語法設(shè)置方法的一個流程圖;和圖6是說明本發(fā)明的可變長度編碼中宏塊層語法設(shè)置方法的一個流程圖。
      本發(fā)明中不同附圖里以相同數(shù)字標注的特征、單元和方面表示這個系統(tǒng)的一個或者多個實施例里相同、等價或者相似的特征、單元或者方面。
      具體實施例方式
      在本發(fā)明的一個或者多個實施例中,提供了由于圖形解碼器(例如H.263解碼器)中的COD值減少檢測差錯的方法。因此,這種可變長度編碼方法將宏塊的COD標志固定為第一個值(例如“0”),并通過檢查(例如)安排在第一個值的COD標志來檢測差錯,雖然在前面的宏塊中沒有檢測到差錯。
      參考圖6,在步驟S601中,VLC 203根據(jù)從編碼控制器202收到的模式控制信號,確定其中包括了當(dāng)前宏塊的幀的圖像類型是P圖像還是I圖像。如果是P圖像,將某個值寫入COD標志,如同步驟S602所示。例如,在當(dāng)前宏塊中沒有任何運動信息,并且這些塊沒有任何紋理信息(也就是“0”)的時候,將COD(編碼宏塊指示)標志設(shè)置成一個預(yù)先確定的值,比方說“1”。否則,將這個COD標志設(shè)置成一個默認值,比方說“0”。
      如果輸入的幀是一個P圖像,就寫這個COD標志。但是,當(dāng)輸入的這個幀不是一個P圖像的時候,在步驟S604中,就按照下面將詳細介紹的方式寫MCBPC標志。如果輸入的幀是一個P圖像,然后就確定COD標志是不是一個預(yù)先確定的值(例如1或者0),例如如步驟S603所說明的一樣。如果這個COD標志是例如“1”,就將這個COD標志寫成“0”,將MCBPC標志寫成“1”,以及將CBPY標志寫成“11”。
      在一些實施例中,將MVD標志寫成“0”。這就意味著當(dāng)前宏塊幾乎與前一幀中同一位置的一個宏塊完全相同,可以原封不動地使用這個宏塊。更加具體地說,為了方便無線電信道中的差錯檢測,在作為編碼的最后步驟的可變長度編碼過程中,將說明是編碼還是未編碼信息的COD標志固定為特定值(例如“0”),按照步驟S610~S613寫關(guān)于宏塊層的標志值。
      例如,如果COD標志是“0”,輸入的幀是一個I圖像。按照步驟S604和S605所示寫了MCBCP標志和CBPY標志以后,寫(例如)DQUANT標志。如果宏塊的模式是一個幀間模式或者一個幀內(nèi)模式,當(dāng)DQUANT是0的時候,就跳過去而不寫,如同步驟S606、S607所示。當(dāng)宏塊是在幀內(nèi)模式的時候,就寫MVD標志。但是,如果宏塊處于幀內(nèi)模式,就根本沒有必要如同步驟S608和S609所示那樣寫。
      在本發(fā)明的編碼方法中,因為COD標志不能是“1”,因此,解碼器可以通過檢查這個COD標志來檢測差錯。如果在前面的宏塊中出現(xiàn)了差錯,并且沒有被檢測到(也就是說,在一些實施例中假設(shè)一個比特列內(nèi)0和1的出現(xiàn)概率是50%),用當(dāng)前宏塊COD標志的1個比特就能夠以(例如)50%的概率檢測到差錯。隨著比特數(shù)量的增加,編碼效率可以略微降低(大約1%)。因此,可以進行更加精確的差錯檢測,提高無線電環(huán)境中的差錯恢復(fù)能力,從而獲得更好的圖像質(zhì)量。
      在采用例如H.263運動圖像編解碼器的視頻通信的本發(fā)明中的可變長度運動圖像編碼方法中,通過對某個標志進行固定編碼,比方說可變長度編碼過程中的COD標志,有可能檢測無線信道中出現(xiàn)的差錯,從而提高數(shù)據(jù)恢復(fù)能力。
      權(quán)利要求
      1.一種可變長度編碼方法,包括比較通過視頻編碼器接收的當(dāng)前圖像和前面的圖像的對應(yīng)部分;和根據(jù)所述對應(yīng)部分互相相似,通過固定當(dāng)前圖像的COD(編碼宏塊指示)標志為確定值來進行編碼。
      2.如權(quán)利要求1所述的方法,其中所述對應(yīng)部分的每一部分包括至少一個宏塊。
      3.如權(quán)利要求1所述的方法,其中所述特定值近似等于“0”。
      4.如權(quán)利要求1所述的方法,進一步包括將MCBPC(色度信號的宏塊類型和編碼塊模式)標志設(shè)置成等于第一個值,其中該第一個值近似等于“1”。
      5.如權(quán)利要求1所述的方法,進一步包括將CBPY(亮度信號的編碼塊模式)標志設(shè)置為等于第二個值,其中該第二個值近似等于“11”。
      6.如權(quán)利要求1所述的方法,進一步包括將MVD(運動矢量數(shù)據(jù))標志設(shè)置成等于第三個值,其中該第三個值近似等于“0”。
      7.一種可變長度編碼方法,包括下列步驟確定宏塊的編碼模式;當(dāng)宏塊的編碼模式被確定為處于幀間模式的時候,將宏塊頭部的一個COD(編碼宏塊指示)標志設(shè)置為第一個值;將MCBPC(色度信號的宏塊類型和編碼塊模式)標志設(shè)置成第二個值;將CBPY(亮度信號的編碼塊模式)標志設(shè)置為第三個值;和將MVD(運動矢量數(shù)據(jù))標志設(shè)置為第四個值。
      8.如權(quán)利要求7所述的方法,其中所述的第一個值近似為“0”,所述第二個值近似為“1”,所述第三個值近似為“11”,所述第四個值近似為“0”。
      9.一種可變長度編碼系統(tǒng),包括確定宏塊編碼模式的裝置;當(dāng)宏塊的編碼模式被確定為幀間模式的時候,將宏塊頭部的COD(編碼宏塊指示)標志設(shè)置為第一個值的裝置;將MCBPC(色度信號的宏塊類型和編碼塊模式)標志設(shè)置為第二個值的裝置;將CBPY(亮度信號的編碼塊模式)標志設(shè)置為第三個值的裝置;和將MVD(運動矢量數(shù)據(jù))標志設(shè)置為第四個值的裝置。
      10.如權(quán)利要求9所述的系統(tǒng),其中所述的第一個值近似為“0”,所述第二個值近似為“1”,所述第三個值近似為“11”,所述第四個值近似為“0”。
      11.一種視頻編解碼器中的可變長度編碼方法,該方法包括下列步驟確定宏塊是否是按照第一種模式編碼的;如果該宏塊不是按照第一種模式編碼的,就寫COD(編碼宏塊指示)標志;確定所述COD標志是否等于第一個值;響應(yīng)于所述COD標志等于第一個值,將所述COD標志改成第二個值、將MCBPC(色度信號的宏塊類型和編碼塊模式)標志寫成第三個值、將CBPY(亮度信號的編碼塊模式)標志寫成第四個值、將MVD(運動矢量數(shù)據(jù))標志寫成第五個值,否則寫MCBPC標志和CBPY標志;確定QP的差值是否等于第六個值;和響應(yīng)于QP的差值不等于第六個值,寫DQUANT標志。
      全文摘要
      本發(fā)明公開一種可變長度編碼方法。該方法包括比較視頻編碼器收到的當(dāng)前圖像和前面的圖像的對應(yīng)部分;以及如果所述對應(yīng)部分互相相似,就通過將當(dāng)前圖像的COD(編碼宏塊指示)標志固定為某個值來進行編碼。
      文檔編號H04N7/26GK1491040SQ03154668
      公開日2004年4月21日 申請日期2003年8月22日 優(yōu)先權(quán)日2002年8月24日
      發(fā)明者文基雄 申請人:Lg電子株式會社
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1