亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

用于可變長度碼的高效解碼的方法

文檔序號:7867125閱讀:229來源:國知局
專利名稱:用于可變長度碼的高效解碼的方法
技術(shù)領(lǐng)域
本公開的方面總體上涉及解碼。特別地,本公開的一個方面涉及解碼可變長度碼。
背景技術(shù)
新的多媒體應(yīng)用的不斷增加的計算復(fù)雜性和數(shù)據(jù)速率要求需要信號處理系統(tǒng)提供高效且靈活的壓縮和解壓縮例程。編碼是用來壓縮諸如圖像和視頻文件之類的媒體文件的技術(shù)??梢杂迷诟鞣N用戶設(shè)備中的圖像編碼和解碼標準的例子是聯(lián)合圖像專家組(JPEG)0JPEG標準利用了用于基于分別用于編碼和解碼操作的離散余弦變換(DCT)和離散余弦逆變換(IDCT)來壓縮靜止圖像的有損壓縮技術(shù)。在JPEG標準中,可以使用8x8的樣本數(shù)據(jù)陣列(稱作數(shù)據(jù)塊)以用于處理,其中樣本數(shù)據(jù)可以對應(yīng)于靜止圖像信號的亮度(Y)或色度(Cr和Cb)信息。在JPEG術(shù)語中,將四個8x8亮度塊、一個8x8 Cr塊和一個8x8 Cb數(shù)據(jù)塊稱作最小編碼單元(MCU)。這種類型的JPEG編碼被稱作YUV420。存在其他類型的JPEG編碼,舉例來說,例如YUV444。另外,例如由JPEG標準規(guī)定的解碼操作可以利用計算密集型算法,例如霍夫曼解碼算法,其是可變長度編碼(VLC)技術(shù)。在這方面,霍夫曼解碼可能利用片上計算和/或存儲器資源的大部分,這會增加處理時間并且降低總體系統(tǒng)效率。因此,具有解決上面討論的問題中的一個或多個的方法、系統(tǒng)和計算機程序產(chǎn)品將是有利的。

發(fā)明內(nèi)容
本發(fā)明的一個方面涉及一種用于解碼可變長度碼的方法。所述方法包括接收可變長度碼。所述可變長度碼是多個比特。隨后,所述方法識別出在所述多個比特的開頭處前導(dǎo)比特被連續(xù)地重復(fù)的次數(shù)。所述前導(dǎo)比特被預(yù)定為I或O之一。接下來,所述方法通過使用前導(dǎo)比特被重復(fù)的次數(shù)來在碼字表中識別出碼字。本發(fā)明的另一方面涉及一種用于解碼可變長度碼的系統(tǒng)。所述系統(tǒng)包括存儲器單元、連接到存儲器單元的處理單元、以及解碼模塊。所述解碼模塊被配置成接收可變長度碼。所述可變長度碼是多個比特。所述解碼模塊還被配置成識別出在所述多個比特的開頭處前導(dǎo)比特被連續(xù)地重復(fù)的次數(shù)。所述前導(dǎo)比特被預(yù)定為I或O之一。所述解碼模塊還被配置成通過使用前導(dǎo)比特被重復(fù)的次數(shù)來在碼字表中識別出碼字。本發(fā)明的又一方面涉及一種包括邏輯的計算機程序產(chǎn)品,所述邏輯被編碼在有形介質(zhì)上以用于解碼可變長度碼。所述邏輯包括用于接收可變長度碼的指令。所述可變長度碼是多個比特。所述邏輯還包括用于識別出在所述多個比特的開頭處前導(dǎo)比特被連續(xù)地重復(fù)的次數(shù)的指令。所述前導(dǎo)比特被預(yù)定為I或O之一。所述邏輯還包括用于通過使用前導(dǎo)比特被重復(fù)的次數(shù)來在碼字表中識別出碼字的指令。


在附圖中,相同的附圖標記通常指代貫穿不同視圖的相同部分。附圖不一定是按比例的。在下列描述中,參照下列附圖來描述本公開的方面,其中:
圖1是根據(jù)本公開的一個方面的媒體檢索系統(tǒng)的框 圖2是根據(jù)本公開的一個方面的媒體解碼系統(tǒng)的框 圖3是根據(jù)本公開的一個方面的碼字表;
圖4是根據(jù)本公開的一個方面的碼字表;
圖5是根據(jù)本公開的一個方面的用于解碼可變長度碼的流程 圖6是根據(jù)本公開的一個方面的用于在表中找到碼字的流程 圖7是根據(jù)本公開的一個方面的用于在表中找到碼字的流程 圖8是根據(jù)本公開的一個方面的用于解碼可變長度碼的流程圖;以及 圖9是根據(jù)本公開的一個方面的用于解碼可變長度碼的流程圖。
具體實施例方式下列的詳細描述參照了附圖,所述附圖通過說明的方式示出本公開的特定細節(jié)和方面。在這里使用詞“示例性”是指“用作例子、實例、或說明”。在這里被描述為“示例性”的本公開或設(shè)計的任何方面不必被解釋為相對于本公開或設(shè)計的其他方面是優(yōu)選的或有利的。圖1是根據(jù)本公開的一個方面的媒體檢索系統(tǒng)的框圖。媒體檢索系統(tǒng)2包括源4和用戶設(shè)備12。在本公開的一個方面中,源4包括媒體6,并且可以通過有線連接和/或無線地被連接到用戶設(shè)備。在本公開的另一方面中,源4也可以是用戶設(shè)備12的一部分。用戶設(shè)備12包括用于顯示媒體6的顯示器16。在本公開的一個方面中,源4包括具有分辨率8的媒體6。源4可以是因特網(wǎng)上的網(wǎng)站、存儲器源(例如存儲器卡或硬盤驅(qū)動器)、用戶設(shè)備(例如移動設(shè)備或膝上型計算機)、或者另一類型的源。在本公開的另一方面中,源4可以是用戶設(shè)備12中的存儲器。舉例來說,源4可以是利用用戶設(shè)備12上的照相機捕獲的圖像。媒體6可以是視頻或圖像。媒體6可以利用任何編碼類型來編碼。舉例來說,媒體6可以利用JPEG、MPEG、H.264、或者某一其他類型的媒體編碼類型來編碼。媒體6具有分辨率8。分辨率8可以是媒體6的原生分辨率。舉例來說,在本公開的一個方面中,分辨率8可以是具有800x600的分辨率的SVGA (超級視頻圖形陣列)。分辨率8可以是任何分辨率,包括但不限于QVGA、VGA、SVGA、XGA, WXGA、以及其他類型的分辨率。在本公開的一個方面中,用戶設(shè)備12包括用于解碼媒體6的解碼單元14。用戶設(shè)備12還包括具有分辨率18的顯示器16。在本公開的一個方面中,用戶設(shè)備12可以是包括解碼單元的設(shè)備。舉例來說,用戶設(shè)備12可以是但不限于膝上型計算機、平板計算機、移動電話、照相機、或者包含解碼單元的任何其他類型的設(shè)備。在本公開的一個方面中,只要用戶設(shè)備12能夠訪問解碼單元,用戶設(shè)備12也可以是不具有解碼單元的設(shè)備。另外,用戶設(shè)備12可以能夠訪問媒體文件。舉例來說,用戶設(shè)備12可以被配置成通過因特網(wǎng)、連接到用戶設(shè)備12的存儲設(shè)備、無線地訪問的設(shè)備、通過使用用戶設(shè)備12上的照相機、和/或媒體6的某一其他合適源4來訪問媒體文件。在本公開的一個方面中,解碼單元14是進行編碼器的反向操作的設(shè)備,其解除編碼從而可以檢索原始信息。解碼單元14可以被配置成解碼已被編碼的數(shù)據(jù)的比特流。在本公開的一個方面中,已經(jīng)使用霍夫曼編碼技術(shù)對數(shù)據(jù)進行了編碼。所述數(shù)據(jù)可以是媒體,例如圖像文件。在本公開的一個方面中,用戶設(shè)備12可以通過使用顯示器16來顯示媒體6。顯示器16可以是監(jiān)視器和/或任何其他類型的顯示設(shè)備。顯示器16具有分辨率18。在本公開的一個方面中,分辨率18可以是具有320x240的分辨率的QVGA (四分之一視頻圖形陣列)。然而,分辨率18可以是任何分辨率,包括但不限于QVGA、VGA、SVGA、XGA, WXGA、以及其他類型的分辨率。另外,用戶設(shè)備12可以包括一個或多個存儲器元件(例如存儲器元件20)以用于存儲將被用在實現(xiàn)如在這里所概述的與應(yīng)用管理相關(guān)聯(lián)的操作中的信息。在適當?shù)那闆r下并且基于特定需要,這些設(shè)備還可以在任何合適的存儲器元件(例如隨機存取存儲器(RAM)、只讀存儲器(ROM)、現(xiàn)場可編程門陣列(FPGA)、可擦可編程只讀存儲器(EPR0M)、電可擦可編程ROM (EEPROM)等等)、軟件、硬件中或者在任何其他合適的部件、設(shè)備、元件或物體中保存信息。在這里所討論的任何存儲器或存儲物品應(yīng)當被解釋為被包含在如在這里所使用的寬泛術(shù)語“存儲器元件”之內(nèi)。此外,在這里的用于解碼可變長度碼的操作可以由編碼在一個或多個有形介質(zhì)中的邏輯來實施,其可以包括非瞬時性介質(zhì)(例如提供在專用集成電路(ASIC)中的嵌入式邏輯、數(shù)字信號處理器(DSP )指令、潛在地包括將由處理器或其他類似機器執(zhí)行的目標碼和源碼的軟件等等)。在這些實例的一些中,一個或多個存儲器元件(例如存儲器元件20)可以存儲用于在這里所描述的操作的數(shù)據(jù)。這包括存儲器元件能夠存儲被執(zhí)行來實施在這里所描述的活動的軟件、邏輯、代碼、或處理器指令。另外,用戶設(shè)備12可以包括處理單元22。處理單元22可以是處理器、多核處理器、單核處理器、微控制器、控制器電路、或者任何其他類型的處理設(shè)備。處理單元可以執(zhí)行與所述數(shù)據(jù)相關(guān)聯(lián)的任何類型的指令以實現(xiàn)在這里所詳述的操作。在本公開的一個方面中,處理器可以把元件或物品(例如數(shù)據(jù))從一個狀態(tài)或事物變換成另一狀態(tài)或事物。在另一例子中,可以利用固定邏輯或可編程邏輯(例如由處理器執(zhí)行的軟件/計算機指令)來實施在這里所概述的活動,并且在這里所標識出的元件可以是某種類型的可編程處理器、可編程數(shù)字邏輯(例如FPGA、EPROM、EEPR0M)、或者ASIC,其包括數(shù)字邏輯、軟件、代碼、電子指令、閃速存儲器、光盤、CD-ROM、DVD ROM、磁卡或光卡、適合用于存儲電子指令的其他類型的機器可讀介質(zhì)、或其任何合適的組合。圖1中的媒體檢索系統(tǒng)2的說明不意圖暗示對于可以實施本公開的一個方面的方式的物理或體系結(jié)構(gòu)限制??梢允褂闷渌考宰鳛樗境龅牟考难a充和/或替換。在本公開的一個方面中,一些部件可能是不必要的。此外,給出各個框以說明一些功能部件。當在本公開的一個方面中實施時,這些框中的一個或多個可以被組合和/或被劃分成不同的框。舉例來說,在本公開的一個方面中,源4可以位于用戶設(shè)備12內(nèi)。圖2是根據(jù)本公開的一個方面的媒體解碼系統(tǒng)的框圖。媒體解碼系統(tǒng)24包括源4和用戶設(shè)備12。媒體解碼系統(tǒng)24是可以解碼媒體文件并且顯示經(jīng)解碼的媒體文件的系統(tǒng)。在本公開的一個方面中,用戶設(shè)備12包括解碼單元14、顯示器16、第一表38和第二表42。解碼單元14可以包括解碼模塊26、逆量化單元44、離散余弦逆變換單元46、以及重組單元48。在本公開的一個方面中,解碼單元14可以是熵解碼器。熵解碼器可以包括數(shù)據(jù)擴展方法,通過所述數(shù)據(jù)擴展方法來對先前編碼的符號進行解碼。在本公開的一個方面中,解碼單元14可以解碼使用霍夫曼編碼器已被編碼的數(shù)據(jù)。然而,可以對其他類型的編碼器進行解碼,例如算術(shù)編碼器、Fibonacci編碼器、以及其他編碼器。在本公開的一個方面中,逆量化單元44可以被配置成基于二進制值來識別出數(shù)值。所述數(shù)值可以包括二進制值的基數(shù)10表示。在另一方面中,逆量化單元44可以把數(shù)值轉(zhuǎn)換成其他數(shù)值,而不管所述數(shù)值的表示如何。舉例來說,如果量化單元將一個數(shù)乘以3,則逆量化單元44可以將該數(shù)除以3。在本公開的一個方面中,離散余弦逆變換單元46可以對來自逆量化單元44的接收到的數(shù)值塊執(zhí)行離散余弦逆變換。接收到的數(shù)值塊可以包括與8x8塊相關(guān)聯(lián)的YUV顏色空間信息的頻率表示。離散余弦逆變換單元46可以是后處理的一部分。所述8x8塊可以包括布置成行和列的像素,其中每行可以包括8個像素。每個像素可以包括YUV信息。所述YUV信息可以從存儲器中被檢索,并且在后處理期間被轉(zhuǎn)換成RGB表示。在另一方面中,JPEG可以不限于YUV。舉例來說,JPEG可以被編碼在RGB顏色模型中。在本公開的一個方面中,當媒體6是圖像時,所述圖像被劃分成8x8像素塊。在接收到來自離散余弦逆變換單元46的信息之后,利用在其間執(zhí)行的可能的其他步驟,重組框整理8x8塊以形成圖像。所述圖像最終被轉(zhuǎn)發(fā)到顯示器16,以用于例如在監(jiān)視器上顯示該圖像。對于解碼模塊26、逆量化單元44、離散余弦逆變換單元46、以及重組單元48的說明不意圖暗示對于可以實施本公開的一個方面的方式的物理或體系結(jié)構(gòu)限制??梢允褂闷渌考宰鳛樗境龅牟考难a充和/或替換。舉例來說,可能有在解碼的過程中使用的、未示出的部件。舉例來說,顏色變換單元、上采樣單元、后處理單元、比特解包器、逆Z字形單元、以及其他單元沒有被示出,但是可以結(jié)合本公開的一個方面來使用。在本公開的一個方面中,解碼模塊26可以接收已經(jīng)利用一種類型的編碼器(例如霍夫曼編碼器)進行了編碼的比特流。解碼模塊26可以包括可變長度碼28和閾值36??勺冮L度碼28可以是來自源4的比特流的一部分。在可變長度碼28之前和之后可以有其他比特。在本公開的一個方面中,可變長度碼28包括多個比特30。多個比特30還可以包括比特串34和前導(dǎo)比特32。前導(dǎo)比特32可以是被預(yù)定為處于可變長度碼28的開頭的該類型的比特。舉例來說,前導(dǎo)比特32可以是“I”。解碼模塊26可以被配置成對在可變長度碼28的開頭處的前導(dǎo)比特的數(shù)目進行計數(shù)。解碼模塊26還可以被配置成把前導(dǎo)比特的數(shù)目與閾值36進行比較?;谒霰容^,解碼模塊26可以訪問第一表38或第二表42。在本公開的一個方面中,第一表38和第二表42包括碼字,例如碼字40。碼字40可以與可變長度碼28相關(guān)聯(lián)。
解碼模塊26可以被實施為軟件或硬件。當實施為軟件時,解碼模塊26可以使用計算機代碼來識別碼字以及訪問第一表38和第二表42。具有偽碼形式的代碼的例子可以如下顯現(xiàn):
權(quán)利要求
1.一種用于解碼可變長度碼的方法,所述方法包括: 接收可變長度碼,其中所述可變長度碼是多個比特; 識別出在所述多個比特的開頭處前導(dǎo)比特被連續(xù)地重復(fù)的次數(shù),其中所述前導(dǎo)比特被預(yù)定為I或O之一;以及 通過使用所述前導(dǎo)比特被重復(fù)的所述次數(shù)來在碼字表中識別出碼字。
2.根據(jù)權(quán)利要求1所述的方法,其中,識別出碼字的步驟包括: 確定所述數(shù)目是否小于閾值;以及 響應(yīng)于確定所述數(shù)目小于閾值,在第一碼字表中識別出碼字。
3.根據(jù)權(quán)利要求2所述的方法,還包括: 響應(yīng)于確定所述數(shù)目等于或大于閾值,在第二碼字表中識別出碼字。
4.根據(jù)權(quán)利要求2所述的方法,其中,在所述第一表中識別出碼字的步驟包括: 使用所述數(shù)目來識別出所述第一表的第一軸上的位置; 使用所述多個比特中的比特串來識別出所述第一表的第二軸上的位置;以及 使用第一軸上的所述位置和第二軸上的所述位置來識別出碼字。
5.根據(jù)權(quán)利要求2所述的方法,其中,所述閾值是9,并且其中所述前導(dǎo)比特是I。
6.根據(jù)權(quán)利要求4所述的方法,其中,任何前導(dǎo)比特之后都跟隨有O比特,并且其中所述比特串是跟隨在所述O比特之后的3個比特。
7.根據(jù)權(quán)利要求3所述的方法,其中,在所述第二表中識別出碼字的步驟包括: 識別出所述多個比特中的比特串; 將所述比特串匹配到所述第二表中的條目;以及 識別出與所述條目相關(guān)聯(lián)的碼字。
8.根據(jù)權(quán)利要求7所述的方法,其中,所述比特串是在所述多個比特的開頭處的9個比特之后的7個比特。
9.根據(jù)權(quán)利要求1所述的方法,其中,所述可變長度碼來自圖像文件。
10.根據(jù)權(quán)利要求1所述的方法,其中,在所述表中識別出碼字的步驟包括: 使用所述數(shù)目來識別出所述表的第一軸上的位置; 使用所述多個比特中的比特串來識別出所述表的第二軸上的位置;以及 使用第一軸上的所述位置和第二軸上的所述位置來識別出碼字。
11.根據(jù)權(quán)利要求10所述的方法,其中,任何前導(dǎo)比特之后都跟隨有O比特,并且其中所述比特串是跟隨在所述O比特之后的任何比特。
12.一種用于解碼可變長度碼的系統(tǒng),所述系統(tǒng)包括: 存儲器單元; 連接到所述存儲器單元的處理單元; 解碼模塊,其被配置成:接收可變長度碼,其中所述可變長度碼是多個比特;識別出在所述多個比特的開頭處前導(dǎo)比特被連續(xù)地重復(fù)的次數(shù),其中所述前導(dǎo)比特被預(yù)定為I或O之一;以及通過使用所述前導(dǎo)比特被重復(fù)的所述次數(shù)來在碼字表中識別出碼字。
13.根據(jù)權(quán)利要求12所述的系統(tǒng),其中,所述解碼模塊被配置成識別出碼字包括所述解碼模塊被配置成: 確定所述數(shù)目是否小于閾值;以及響應(yīng)于確定所述數(shù)目小于閾值,在第一碼字表中識別出碼字。
14.根據(jù)權(quán)利要求13所述的系統(tǒng),其中,所述解碼模塊還被配置成: 響應(yīng)于確定所述數(shù)目等于或大于閾值,在第二碼字表中識別出碼字。
15.根據(jù)權(quán)利要求13所述的系統(tǒng),其中,在第一表中識別出碼字的過程中,所述解碼模塊還被配置成: 使用所述數(shù)目來識別出所述第一表的第一軸上的位置; 使用所述多個比特中的比特串來識別出所述第一表的第二軸上的位置;以及 使用第一軸上的所述位置和第二軸上的所述位置來識別出碼字。
16.根據(jù)權(quán)利要求13所述的系統(tǒng),其中,所述閾值是9,并且其中所述前導(dǎo)比特是I。
17.根據(jù)權(quán)利要求14所述的系統(tǒng),其中,在所述第二表中識別出碼字的過程中,所述解碼模塊還被配置成: 識別出所述多個比特中的比特串; 將所述比特串匹配到所述第二表中的條目;以及 識別出與所述條目相關(guān)聯(lián)的碼字。
18.—種包括邏輯的計算機程序產(chǎn)品,所述邏輯被編碼在有形介質(zhì)上以用于解碼可變長度碼,所述邏輯包括用于下述的指令: 接收可變長度碼,其中所述可變長度碼是多個比特; 識別出在所述多個比特的開頭處前導(dǎo)比特被連續(xù)地重復(fù)的次數(shù),其中所述前導(dǎo)比特被預(yù)定為I或O之一;以及 通過使用所述前導(dǎo)比特被重復(fù)的所述次數(shù)來在碼字表中識別出碼字。
19.根據(jù)權(quán)利要求18所述的計算機程序產(chǎn)品,還包括用于下述的指令: 確定所述數(shù)目是否小于閾值;以及 響應(yīng)于確定所述數(shù)目小于閾值,在第一碼字表中識別出碼字。
20.根據(jù)權(quán)利要求19所述的計算機程序產(chǎn)品,還包括用于下述的指令: 響應(yīng)于確定所述數(shù)目等于或大于閾值,在第二碼字表中識別出碼字。
全文摘要
本發(fā)明公開了用于可變長度碼的高效解碼的方法。一種用于解碼可變長度碼的方法、系統(tǒng)和計算機程序產(chǎn)品被公開。解碼模塊被配置成接收可變長度碼。所述可變長度碼是多個比特。解碼模塊還被配置成識別出在所述多個比特的開頭處前導(dǎo)比特被連續(xù)地重復(fù)的次數(shù)。前導(dǎo)比特被預(yù)定為1或0之一。解碼模塊還被配置成通過使用前導(dǎo)比特被重復(fù)的次數(shù)來在碼字表中識別出碼字。
文檔編號H04N7/30GK103139566SQ20121050252
公開日2013年6月5日 申請日期2012年11月30日 優(yōu)先權(quán)日2011年11月30日
發(fā)明者M.澤格特羅普 申請人:英特爾移動通信有限責任公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1