專利名稱:采用多映射表的可變長度編碼和解碼方法及設備的制作方法
技術領域:
本發明涉及一種可變長度編碼方法、可變長度解碼方法及其設備,尤其涉及這樣一種可變長度編碼方法和可變長度解碼方法及其設備,其中,使用多個映射表,從而能夠保持通用可變長度碼表,并且防止壓縮編碼效率下降。
目前,國際電信聯盟電信標準化部門(ITU-T)已致力于與下一代視頻電話有關的H.26L國際標準。盡管已確定了諸如H.261、H.263、H.263+、及后面的H.263++和MPEG-4等一系列運動圖像編碼方法作為ITU-T國際標準,但這些國際標準不能滿足新近出現的需求。因此,為了應付新的需求,提出了H.26L。新的需求如下。
第一個需求是對超低速實時應用的更加改善的編碼效率和更短的端到端延遲。亦即,需要以相同的比特率來實現比H.263+基本編碼方法更強化的幀速率,并且需要以比H.263+基本編碼方法的比特率的一半低的比特率實現采用該基本編碼方法得到的圖像品質。在編碼延遲方面也有需求。例如,延遲應當足夠短,以滿足實時交互通信,并且延遲應當足夠靈活,以便容易地將延遲時間縮短到小于目標延遲時間,必要時以降低圖像質量為代價。對于未來的一般使用而言,第二個需求是復雜性小到足以僅采用軟件來進行編碼/解碼。第三個需求是能夠應付約10-4的散現誤差和約10-3的集中誤差的容錯性和一致性。其他新的需求包括對諸如視頻流的能夠容易地應付網絡環境的結構需求、對在8~12Kbps比特率的主應用時提供更高的圖像品質或娛樂品質的需求、對空間、時間和SNR的可量測性(scalability)功能的需求、對用于隨機訪問基于存儲介質的應用的內編碼功能的需求、對反向預測的能力的需求等。尤其是,在未來的低傳輸編碼的熵編碼中,當采用帶有傳統Huffman(霍夫曼)編碼表的Huffman可變長度編碼方法時,為了使設計更簡化和明晰,越來越明顯的趨勢是廣泛使用通用可變長度編碼表而不管編碼數據類型如何。這是為了降低如現有技術中那樣因具有多個可變長度編碼表所引起的處理方法和設備的復雜性。但是,盡管通用可變長度編碼表能夠降低處理方法和設備的復雜性,其使編碼效率降低。
圖1表示采用現有技術的解碼設備的結構。
圖1的解碼單元10接收編碼過的比特流(編碼數據),該比特流是在編碼設備(未示出)中編碼的,并且以“0”和“1”形成。解碼單元10從接收到的比特流中分出每個代碼字,然后輸出代碼號,其每個對應于不同的代碼字。后面將解釋從接收到的比特流中分出每個代碼字的方法。碼元提取單元11接收對應于每個代碼字的代碼號和用于確定碼元種類的元素類型信號,并以解碼數據的形式輸出對應的碼元。
下面將解釋解碼單元10的解碼步驟。解碼單元10采用通用可變長度編碼表(UVLC),該UVLC是采用圖2所示的的規則形成的。這里,Xn的值為“0”或“1”。如果待編碼信息是INFO,則它可被表示為INFO=Xn..X1X0。該INFO數據被形成為圖2所示的比特流,其中,除最后的比特為1外,每個奇數編號的比特為“0”。此時,從如圖2所示插入的INFO形成的最后代碼字的長度是通過將“1”與兩倍的INFO的比特數相加而得到的,除了代碼號為“0”的情況外。這樣形成的代碼字可以以長度增大的順序編號,并且此時,所編的號稱作代碼號。圖3中示出了一示例。此時,可用下面的公式1來表示代碼號與待插入的INFO之間的關系code number=2L/2+INFO......(1)這里,L是代碼字的長度,并且如上所述,通過將“1”與兩倍的INFO長度相加而獲得,除了代碼號為“0”的情況下以外。在上述規則的示例中,如果提供二進制數“10”作為INFO,則L為“5”,代碼號為“5”。
反過來也可容易地采用該規則執行解碼。亦即,上述形成的UVLC表所具有的預定特性為,除了每個代碼字的最后一比特為二進制數“1”之外,每個代碼字的奇數編號的比特始終為二進制數“0”。因此,圖1的解碼設備10參照輸入比特流的奇數編號比特,如果找到二進制數“1”,則能夠確定直至二進制數“1”的各比特對應于一個代碼字。在以這種方式找到一個代碼字之后,僅讀取所找到的代碼字中偶數編號的比特,并且這些比特構成代碼號。該步驟由圖1的解碼設備10執行。
如果圖1的解碼設備10輸出代碼號,需要對與該代碼號相對應的實際碼元,即對應于所找到的INFO的碼元進行解碼。解碼是由圖1的碼元提取單元11參照表簡單地執行的。亦即,碼元提取單元11例如存儲圖4所示的數據。也就是說,如果接收到代碼號和表示碼元種類的元素類型(element type),則碼元提取單元11輸出對應于該代碼號和元素類型的碼元,從而執行解碼。這里,element type的示例為MB-TYPE信息,表示當前正被解碼的宏塊的類型。如圖4所示,MB-TYPE信息可以是表示運動向量的參考視頻的對應位置的視頻數據的替換的跳躍(skip)型,或者能夠規定諸如16×16、16×8、8×16、8×4等的宏塊的尺寸和格式。
上述傳統的方法具有下列缺點。對多個碼元(如 MT TYPE、CBP(編碼塊模式))使用一種UVLC表。可變長度編碼方法的壓縮效率與根據實際使用的碼元概率分布來設計的代碼字表的好壞密切相關。但是,在上述傳統方法中,盡管通過傳統通用利用代碼字表降低了實施時的復雜性,但采用UVLC表將代碼號與碼元彼此均勻地映射,如圖4所示,而不管設計碼元的概率分布如何,因此,傳統方法在實現最大壓縮的基本目標方面存在嚴重問題。亦即,上述UVLC表可以適合于某些類型的碼元,但是可引起其他類型碼元編碼類型的降低。為了解決該問題,可以準備對每種碼元優化的表,以便改善效率,但是在這種情況下,犧牲了上述UVLC的有益效果。
為了解決上述問題,本發明的第一目的在于提供一種可保持通用可變長度碼(UVLC)表的優點,并且防止壓縮效率的下降的有效編碼方法及其編碼設備。
本發明的第二目的是提供一種可保持通用可變長度碼(UVLC)表的優點,并且防止壓縮效率的下降的有效解碼方法及其解碼設備。
為了實現本發明的第一目的,提供了一種用于對數據進行編碼的可變長度編碼方法,該方法包括輸入步驟,用于接收待編碼的碼元數據,并接收有關碼元數據種類的元素類型信息;編碼步驟,用于產生對應于所接收碼元數據的第一代碼號;映射步驟,用于從由多個第二代碼號構成的映射表中選擇相對于所輸入元素類型信息映射的第二代碼號,其每個第二代碼號根據第一代碼號和元素類型信息適當地映射;代碼字提取步驟,用于產生對應于所選第二代碼號的代碼字;和輸出步驟,用于輸出所產生的代碼字。
最好,在映射步驟中,選擇其每個對應于量化步長(Qp)信息的一個或多個映射表中的一個,并且從所選表中產生第二代碼號,該量化步長信息對應于碼元數據。
最好,在映射步驟中,從對應于碼元數據的元素類型信息的多個單元中,根據至少包含量化步長(Qp)信息的信息,選擇一個或多個映射表中的一個,并且從所選表中產生第二代碼號。
最好,在映射步驟中,采用一個或多個映射表中使產生的比特數最小的映射表來選擇第二代碼號。
最好,事先采用大量的訓練數據對映射步驟中的多個映射表進行優化。
為了實現本發明第一目的的另一方面,還提供了一種用于對數據進行解碼的可變長度解碼方法,該方法包括輸入步驟,用于接收編碼數據和包含有關編碼數據種類的信息的元素類型信息;解碼步驟,用于產生對應于編碼數據的第一代碼號;映射步驟,用于接收元素類型信息,根據元素類型信息從各自對應于第一代碼號的一個或多個映射表中選擇一個,并采用所選映射表產生對應于第一代碼號的第二代碼號。
最好,在映射步驟中,根據對應于碼元數據的元素類型信息中至少包含量化步長(Qp)信息的信息,選擇一個或多個映射表中的一個,并且產生第二代碼號。
最好,事先采用大量的訓練數據對映射步驟中的一個或多個映射表進行優化。
為了實現本發明第二目的的一方面,提供了一種用于對數據進行編碼的可變長度編碼設備,該設備包括編碼單元,用于接收待編碼的碼元數據,接收有關碼元數據種類的元素類型信息,并產生第一代碼號;映射單元,用于接收元素類型信息,從對應于元素類型信息的一個或多個映射表中的一個映射表中,產生對應于第一代碼號的第二代碼號;及代碼字產生單元,用于產生對應于所選第二代碼號的代碼字,并以編碼數據的格式輸出代碼字。
為了實現本發明第二目的的另一方面,還提供了一種用于對數據進行解碼的可變長度解碼設備,該設備包括解碼單元,用于接收編碼數據,接收有關編碼數據種類的信息的元素類型信息,并輸出第一代碼號;映射單元,用于接收元素類型信息,選擇其每個對應于一種元素類型的一個或多個映射表中的一個,并采用所選表將第一代碼號轉換成第二代碼號;和碼元提取單元,用于輸出對應于第二代碼號的碼元。
通過下面結合示例對本發明優選實施例的詳細描述,本發明的上述目的和優點將會變得更加清楚,其中圖1表示傳統可變長度解碼設備的結構;圖2是形成通用可變長度編碼(UVLC)表的原理的示例;圖3表示UVLC表的代碼號與代碼字之間的關系;
圖4是表示碼元與代碼號之間的映射關系示例的表;圖5表示本發明基于映射器的可變長度編碼設備的結構;圖6A是圖5的宏塊(MB)類型映射器的映射結構的示例;圖6B是宏塊類型碼元與實際代碼號之間的映射的示例;圖7是圖5的映射器詳細框圖的優選實施例;圖8是圖7的選擇確定單元操作的實施例;圖9是圖7的選擇確定單元操作的另一實施例;圖10表示本發明基于映射器的可變長度解碼設備的結構;圖11表示本發明基于映射器的可變長度編碼方法的流程圖;圖12表示本發明基于映射器的可變長度解碼方法的流程圖。
以下,參照附圖來詳細說明本發明的實施例。本發明不限于下述實施例,在不脫離本發明宗旨和范圍的情況下,可以進行各種變形。提供本發明的實施例是為了向本領域內的普通技術人員更完整地解釋本發明。
圖5表示本發明編碼設備的結構方框圖。該編碼設備是采用編碼單元50、映射器單元60、和代碼字產生單元70構成的。下面將解釋本發明編碼設備的操作。
首先,將描述圖5的基于映射器的可變長度編碼設備的操作。待編碼的碼元數據和作為有關碼元的類型信息的元素類型信息被輸入到本發明的編碼單元50。此時,通常,元素類型信息表示的是當前編碼的碼元語法元素(即,表示碼元種類)。更一般情況下,元素類型信息表示當前編碼的數據單元的各種相關語法元素信息。例如,元素類型信息可以是有關當前編碼的碼元數據的信息,包括有關宏塊類型的信息(如尺寸和形狀)、有關是否執行運動補償的信息、有關數據是亮度信息還是色彩信息的信息、或者數據是DCT系數的DC分量還是AC分量的信息。編碼單元50采用對應于待編碼碼元的INFO比特來產生和輸出代碼號,并且該代碼號將被稱作代碼號A。輸出的代碼號由本發明的映射器單元60轉換成代碼號B。為了解釋該處理過程,將參照圖6A,該圖表示的是宏塊(MB)類型映射器60的結構示例。
下面將解釋對“MB”型碼元進行解碼的示例。但是,該方法不局限于某種元素類型,而是可應用于待由編碼設備進行編碼的任意的元素類型。這里,為了方便起見,僅解釋“MB”型的示例。由編碼單元50輸出的代碼號A是對應于待編碼碼元的代碼號。但是,根據編碼條件,碼元的相對出現概率變化極大。亦即,當設計了圖6A所示的UVLC表時,可從中看出對應于代碼號2的碼元將比對應于代碼號5的碼元更頻繁出現。實際上,對應于代碼號5的碼元可能更頻繁出現。這可由試驗證實。實際的觀察結果如圖6B所示。在圖6B中,括號中的每個數值表示的是對應于碼元的代碼字長度。列UVLC表示對應于第一列代碼號的碼元。亦即,在UVLC表中,代碼號1的代碼字被指定給MB類型的16×16碼元,此時代碼字的長度為3比特。Qp表示的是量化間隔。在標記為Qp=1、Qp=15和Qp=28的每列中,存在的碼元是采用給定的Qp值產生的,并且它們是以頻率降低的順序排列的。例如,在Qp=1中,MB類型碼元“skip”出現的頻繁程度處于第三位。但是,如果使用標記為UVLC的列中的傳統方法映射關系,則使用長度為3比特的代碼號3的代碼字,因此壓縮效率降低。
如圖6B所示,碼元的出現概率分布可與UVLC表中的有極大不同。此時,確定差別的一個因素是量化間隔Qp。因此,本發明準備了相對于量化間隔Qp值的變化而設計的一個或多個映射表,如圖6A和6B所示,并且使用這些映射表,從而由編碼單元50產生的代碼號A被映射為對應于更有效代碼字的代碼號B。由此,能夠實現保持UVLC的優點并且改善壓縮效率的目標。由于這些映射表僅需要存儲代碼號而不管編碼如何,因此,這些映射表不對實施產生額外的復雜性。
圖7中示出了映射器60的實施例。固定的再關聯表(FRAT)81相對于各條件,例如相對于通過如圖6B所示進行的分析所提供的Qp值觀察并預測最佳編碼映射,并且以表形式顯示對所提供條件優化的映射關系。圖6B中示出了FRAT 81的特定示例。選擇單元90從對應于代碼號A的各條件的FRAT 81中接收代碼號B,然后根據選擇確定單元80的輸出信號來選擇從適當的FRAT 81輸出的代碼號B,并且輸出所選代碼號B作為最終的輸出代碼號B。選擇確定單元80接收關于與希望編碼的數據相關的元素類型(元素類型1~元素類型N)的信息,并且根據所接收到的有關元素類型的信息輸出用于選擇最佳FRAT 81的信號。
下面將描述選擇確定單元80的操作。假設當前正被編碼的MB type數據為16×16,采用運動補償,Qp為5,并且是作為亮度信號的信號。那么,選擇確定單元80接收關于與當前正被編碼有關的多個元素類型的信息,并且根據所接收到的幾個元素類型信息來產生和輸出用于選擇最佳FRAT的信號。例如,如果當前正被解碼的數據是MB類型的碼元,則選擇確定單元80從所提供的幾個元素類型信息中選擇對MB類型的統計特性影響最大的元素類型信息。一個示例是Qp。亦即,可以實現多個映射表FRAT 81,其每一個均對應于一個Qp。否則,如圖8所示,例如,Qp值的范圍被分成多個范圍,從而如果Qp在a和b之間,則選擇FRAT 1,而如果Qp在c和d之間,則選擇FRAT 2。此時,采用Qp值來選擇FRAT 81僅是一個示例,根據需要,選擇確定單元80可以以各種方式進行實現,即,采用其他元素類型信息或采用一個多個元素類型的所有信息來實現。因此,上述示例將不對本發明的實施作任何限制。圖9中示出了另一實施方案。
圖10是表示本發明基于映射器的可變長度解碼設備結構的框圖。下面將解釋解碼設備的操作。解碼單元101接收代碼數據,該代碼數據是由“0”和“1”構成的編碼的比特流,并且是采用圖5的基于映射器的可變長度編碼設備進行編碼的。如上所述,解碼單元101從所接收到的比特流中分出每個代碼字,并且輸出對應于每個代碼字的代碼號。該代碼號被稱作代碼號A。該代碼號由映射器單元110轉換成代碼號B,它是在編碼設備中所使用的實際代碼號。此時,映射器單元110接收元素類型信息的信號,表示正被映射的是什么碼元。由映射器單元110輸出的代碼號B被輸入到碼元提取單元120,碼元提取單元120找出并輸出對應于代碼號B的預定碼元。由此,執行預定的解碼。映射器單元110的操作與圖5所示編碼設備中映射器60的操作相同。
圖11表示本發明基于映射器的可變長度編碼方法的流程圖。根據該基于映射器的可變長度編碼方法,首先,在步驟1100接收待編碼碼元和表示碼元種類的元素類型信息。采用對應于待編碼碼元的INFO比特,在步驟1110執行用于產生對應于INFO比特的代碼號的編碼。在步驟1120,所產生的代碼號根據預定的編碼條件被映射為在觀測方面和理論方面均適當的另一代碼號。在步驟1130產生對應于所映射的代碼號的代碼字和提取該代碼字。在步驟1140輸出所提取的代碼字。映射步驟1120使用在編碼步驟1110中產生的代碼號和與當前數據有關的元素類型信息。本發明編碼方法的特定操作的解釋參見對本發明編碼設備操作的解釋。
圖12表示本發明基于映射器的可變長度解碼方法的流程圖。根據該解碼方法,首先,在步驟1200接收由“0”和“1”構成并由編碼設備編碼的編碼數據及表示數據種類的元素類型信息。在步驟1210,采用輸入數據,執行用于尋找對應于輸入數據的代碼號的解碼。在步驟1220,采用用于映射為對元素類型信息適合的其他代碼號的映射表,執行用于將由此找出的代碼號變換成對應于被實際編碼的碼元的另一代碼號的映射。在步驟1230,執行用于采用在映射步驟中確定的代碼號來尋找原始碼元的碼元提取。在步驟1240輸出所提取的碼元。這里,映射步驟1220使用在解碼步驟1210中產生的代碼號和與當前數據有關的元素類型信息。本發明解碼方法的特定操作的解釋參見對本發明解碼碼設備操作的解釋。
本發明將來預期應用的主要領域包括視頻電話的實時交互、移動網絡上的音頻/視頻通信、因特網(Internet)上的視頻應用服務、實時信號語言和唇讀(lip-reading)通信視頻傳輸、視頻點播(VOD)服務的視頻存儲和檢索、視頻郵件應用的視頻存儲和轉發應用、和異構網絡上的多點通信。
根據本發明,可在防止壓縮效率下降的同時,保持通用可變長度碼表的優點。
權利要求
1.一種用于對數據編碼的可變長度編碼方法,該方法包括輸入步驟,用于接收待編碼的碼元數據,并接收有關碼元數據種類的元素類型信息;編碼步驟,用于產生對應于所接收碼元數據的第一代碼號;映射步驟,用于從由多個第二代碼號構成的映射表中選擇相對于所輸入元素類型信息映射的第二代碼號,其每個第二代碼號根據第一代碼號和元素類型信息適當地映射;代碼字提取步驟,用于產生對應于所選第二代碼號的代碼字;和輸出步驟,用于輸出所產生的代碼字。
2.如權利要求1所述的可變長度編碼方法,其中,在映射步驟中,選擇其每個對應于量化步長(Qp)信息的一個或多個映射表中的一個,所述量化步長信息對應于碼元數據,并且從所選表中產生第二代碼號。
3.如權利要求1所述的可變長度編碼方法,其中,在映射步驟中,從對應于碼元數據的元素類型信息的多個單元中,根據至少包含量化步長(Qp)信息的信息,選擇一個或多個映射表中的一個,并且從所選表中產生第二代碼號。
4.如權利要求1所述的可變長度編碼方法,其中,在映射步驟中,采用一個或多個映射表中使產生的比特數最小的映射表來選擇第二代碼號。
5.如權利要求1所述的可變長度編碼方法,其中,事先采用大量的訓練數據對映射步驟中的多個映射表進行優化。
6.一種用于對數據進行解碼的可變長度解碼方法,該方法包括輸入步驟,用于接收編碼數據和包含有關編碼數據種類的信息的元素類型信息解碼步驟,用于產生對應于編碼數據的第一代碼號;映射步驟,用于接收元素類型信息,根據元素類型信息從各自對應于第一代碼號的一個或多個映射表中選擇一個,并采用所選映射表產生對應于第一代碼號的第二代碼號。
7.如權利要求6所述的可變長度解碼方法,其中,在映射步驟中,根據對應于碼元數據的元素類型信息中至少包含量化步長(Qp)信息的信息,選擇一個或多個映射表中的一個,并且產生第二代碼號。
8.如權利要求6所述的可變長度解碼方法,其中,事先采用大量的訓練數據對映射步驟中的一個或多個映射表進行優化。
9.一種用于對數據進行編碼的可變長度編碼設備,該設備包括編碼單元,用于接收待編碼的碼元數據,接收有關碼元數據種類的元素類型信息,并產生第一代碼號;映射單元,用于接收元素類型信息,從對應于元素類型信息的一個或多個映射表中的一個映射表中,產生對應于第一代碼號的第二代碼號;以及代碼字產生單元,用于產生對應于所選第二代碼號的代碼字,并以編碼數據的格式輸出代碼字。
10.如權利要求9所述的可變長度編碼設備,其中,在映射單元中,從對應于碼元數據的元素類型信息的多個單元中,根據至少包含量化步長(Qp)信息的信息,選擇一個或多個映射表中的一個,并且產生第二代碼號。
11.如權利要求9所述的可變長度編碼設備,其中,在映射單元中,根據對應于碼元數據的量化步長(Qp)信息,選擇一個或多個映射表中的一個,并且產生第二代碼號。
12.如權利要求9所述的可變長度編碼設備,其中,在映射單元中,采用一個或多個映射表中需要最小數個產生比特的一映射表,來選擇第二代碼號。
13.如權利要求9所述的可變長度編碼設備,其中,事先采用大量的訓練數據對映射單元中的一個或多個映射表進行優化。
14.一種用于對數據進行解碼的可變長度解碼設備,該設備包括解碼單元,用于接收編碼數據,接收有關編碼數據種類的信息的元素類型信息,并輸出第一代碼號;映射單元,用于接收元素類型信息,選擇其每個對應于一種元素類型的一個或多個映射表中的一個,并采用所選表將第一代碼號轉換成第二代碼號;和碼元提取單元,用于輸出對應于第二代碼號的碼元。
15.如權利要求14所述的可變長度解碼設備,其中,在映射單元中,根據對應于碼元數據的量化步長(Qp)信息,選擇一個或多個映射表中的一個,并且產生第二代碼號。
16.如權利要求14所述的可變長度解碼設備,其中,在映射單元中,根據對應于碼元數據的元素類型信息中至少包含量化步長(Qp)信息的信息,選擇一個或多個映射表中的一個,并且產生第二代碼號。
17.如權利要求14所述的可變長度解碼設備,其中,其中,事先采用大量的訓練數據對映射單元中的一個或多個映射表進行優化。
全文摘要
一種基于映射器的可變長度編碼方法、解碼方法及設備。該編碼方法包括:輸入步驟,接收待編碼碼元數據并接收有關碼元數據種類的元素類型信息;編碼步驟,產生對應于碼元數據的第一代碼號;映射步驟,從多個第二代碼號構成的映射表中選擇相對所輸入元素類型信息映射的第二代碼號,其中每個根據第一代碼號和元素類型信息適當地映射;代碼字提取步驟,產生對應所選第二代碼號的代碼字;和輸出步驟,輸出所產生代碼字。本發明可防止壓縮效率下降同時保持通用可變長度碼表的優點。
文檔編號H04N7/26GK1332522SQ0111779
公開日2002年1月23日 申請日期2001年5月17日 優先權日2000年5月17日
發明者全炳宇, 劉國烈 申請人:三星電子株式會社