欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

解碼方法及解碼裝置與流程

文檔序號:12697328閱讀:490來源:國知局
解碼方法及解碼裝置與流程

本發(fā)明涉及解碼領域,特別是涉及一種解碼方法及解碼裝置。



背景技術:

熵編碼是JPEG圖像壓縮的基本技術之一。在對編碼后的JPEG圖像進行解碼操作時,首先要對圖像進行熵解碼,然后對熵解碼后的數(shù)據(jù)經(jīng)過反ZIGZAG掃描、反量化后得到YUV數(shù)據(jù),再經(jīng)過色彩空間將YUV數(shù)據(jù)轉換得到RGB數(shù)據(jù)。

其中進行熵解碼的編碼包括直流系數(shù)編碼以及交流系數(shù)編碼,直流系數(shù)編碼包括直流系數(shù)值編碼以及直流系數(shù)長度編碼。對直流系數(shù)編碼解碼時,使用直流系數(shù)長度編碼在直流亮度哈夫曼表中進行查表操作可獲取相應的直流系數(shù)長度;然后使用直流系數(shù)長度獲取相應長度的直流系數(shù)值編碼;最后使用直流系數(shù)值編碼在變長編碼表中進行查表操作獲取相應的直流系數(shù)值。該直流系數(shù)值表示當前直流系數(shù)與前一直流系數(shù)之間的差值。

交流系數(shù)編碼包括交流系數(shù)值編碼以及交流系數(shù)長度編碼。對交流系數(shù)編碼解碼時,使用交流系數(shù)長度編碼在交流亮度哈夫曼表中進行查表操作可獲取相應的交流系數(shù)長度以及交流系數(shù)間隔,該交流系數(shù)間隔表示當前交流系數(shù)與前一交流系數(shù)之間的間隔,即0的數(shù)量;然后通過交流系數(shù)長度獲取相應長度的交流系數(shù)值編碼;最后使用交流系數(shù)值編碼在變長編碼表中進行查表操作獲取相應的交流系數(shù)值。

這樣即完成了熵解碼的過程,通過直流系數(shù)值、交流系數(shù)值以及交流系數(shù)間隔可組成數(shù)組代碼,通過該數(shù)組代碼可以構建相應的解碼數(shù)組。

熵解碼一般采用六個步驟完成一次解碼。請參閱圖1,圖1為現(xiàn)有的解碼 裝置的結構示意圖。

如圖1所示,該熵解碼裝置10包括碼流輸入緩沖模塊11、組碼模塊12、比較模塊13、查表模塊14以及變長碼解析模塊15。

具體解碼操作如下,首先向碼流輸入緩沖模塊11逐位輸入編碼,并通過比較模塊13將接收到的編碼與預設哈夫曼常數(shù)碼進行比較,如接收到的編碼與不符合預設哈夫曼常數(shù)碼的編碼規(guī)則,則說明當前接收到的編碼不夠完整,則碼流輸入緩沖模塊11繼續(xù)接收編碼,并通過組碼模塊12對當前接收到的所有編碼進行組碼操作,以構成新的編碼。如接收到的編碼符合預設哈夫曼常數(shù)碼的編碼規(guī)則,則查表模塊14通過在直流亮度哈夫曼表以及交流亮度哈夫曼表進行查表操作獲取相應的交流系數(shù)長度、交流系數(shù)間隔以及直流系數(shù)長度。然后變長碼解析模塊15通過交流系數(shù)長度從碼流輸入緩沖模塊11獲取相應的交流系數(shù)值編碼,通過直流系數(shù)長度從碼流輸入緩沖模塊11獲取直流系數(shù)值編碼。最后變長碼解析模塊15使用交流系數(shù)值編碼和直流系數(shù)值編碼在變長編碼表進行查表操作獲取相應交流系數(shù)值以及直流系數(shù)值。

這里由于碼流輸入緩沖模塊是逐位輸入編碼,并且每次輸入編碼均需要進行組碼操作以及對比操作,得到符合要求的編碼之后,還需要使用交流系數(shù)長度以及直流系數(shù)長度從碼流輸入緩沖模塊獲取交流系數(shù)值編碼和直流系數(shù)值編碼。因此整體解碼效率較為低下。



技術實現(xiàn)要素:

本發(fā)明實施例提供一種解碼效率較高的解碼方法及解碼裝置;以解決現(xiàn)有的解碼方法及解碼裝置的整體解碼效率較為低下的技術問題。

本發(fā)明實施例提供一種解碼方法,其包括:

以第一設定值為長度單元接收編碼數(shù)據(jù),并對接收到的所述編碼數(shù)據(jù)進行合成;

當合成后的編碼數(shù)據(jù)的長度大于等于第二設定值時,使用預設哈夫曼表對 所述合成后的編碼數(shù)據(jù)進行查表解碼操作,以獲取所述合成后的編碼數(shù)據(jù)中的解碼部分的系數(shù)長度值以及系數(shù)間隔值;

根據(jù)所述解碼部分的系數(shù)長度值,從所述合成后的編碼數(shù)據(jù)中獲取所述解碼部分的變長編碼;

使用預設變長編碼表,對所述解碼部分的變長編碼進行查表解碼操作,以獲取所述合成后的編碼數(shù)據(jù)中的解碼部分的系數(shù)值;以及

根據(jù)所述解碼部分的系數(shù)間隔值以及系數(shù)值,獲取所述解碼部分的熵解碼。

本發(fā)明實施例還提供一種解碼裝置,其包括:

合成模塊,用于以第一設定值為長度單元接收編碼數(shù)據(jù),并對接收到的所述編碼數(shù)據(jù)進行合成;

第一查表模塊,用于當合成后的編碼數(shù)據(jù)的長度大于等于第二設定值時,使用預設哈夫曼表對所述合成后的編碼數(shù)據(jù)進行查表解碼操作,以獲取所述合成后的編碼數(shù)據(jù)中的解碼部分的系數(shù)長度值以及系數(shù)間隔值;

變長編碼獲取模塊,用于根據(jù)所述解碼部分的系數(shù)長度值,從所述合成后的編碼數(shù)據(jù)中獲取所述解碼部分的變長編碼;

第二查表模塊,用于使用預設變長編碼表,對所述解碼部分的變長編碼進行查表解碼操作,以獲取所述合成后的編碼數(shù)據(jù)中的解碼部分的系數(shù)值;以及

解碼模塊,用于根據(jù)所述解碼部分的系數(shù)間隔值以及系數(shù)值,獲取所述解碼部分的熵解碼。

相較于現(xiàn)有技術的解碼方法及解碼裝置,本發(fā)明的解碼方法及解碼裝置使用預設哈夫曼表以及預設變長編碼表對設定長度的編碼數(shù)據(jù)進行解碼操作,可以有效的提高解碼操作的解碼效率;解決了現(xiàn)有的解碼方法及解碼裝置的整體解碼效率較為低下的技術問題。

附圖說明

圖1為現(xiàn)有的解碼裝置的結構示意圖;

圖2為本發(fā)明的解碼方法的第一優(yōu)選實施例的流程圖;

圖3為本發(fā)明的解碼方法的第二優(yōu)選實施例的流程圖;

圖4為本發(fā)明的解碼方法的第二優(yōu)選實施例的步驟309的流程圖;

圖5為本發(fā)明的解碼裝置的第一優(yōu)選實施例的結構示意圖;

圖6為本發(fā)明的解碼裝置的第二優(yōu)選實施例的結構示意圖;

圖7為本發(fā)明的解碼裝置的第二優(yōu)選實施例的編碼數(shù)據(jù)更新模塊的結構示意圖;

圖8A-圖8D為本發(fā)明的解碼裝置以及解碼方法的具體實施例的示意圖;

圖9為本發(fā)明的解碼裝置所在的電子設備的工作環(huán)境結構示意圖。

具體實施方式

請參照圖式,其中相同的組件符號代表相同的組件,本發(fā)明的原理是以實施在一適當?shù)倪\算環(huán)境中來舉例說明。以下的說明是基于所例示的本發(fā)明具體實施例,其不應被視為限制本發(fā)明未在此詳述的其它具體實施例。

在以下的說明中,本發(fā)明的具體實施例將參考由一部或多部計算機所執(zhí)行之作業(yè)的步驟及符號來說明,除非另有述明。因此,其將可了解到這些步驟及操作,其中有數(shù)次提到為由計算機執(zhí)行,包括了由代表了以一結構化型式中的數(shù)據(jù)之電子信號的計算機處理單元所操縱。此操縱轉換該數(shù)據(jù)或?qū)⑵渚S持在該計算機之內(nèi)存系統(tǒng)中的位置處,其可重新配置或另外以本領域技術人員所熟知的方式來改變該計算機之運作。該數(shù)據(jù)所維持的數(shù)據(jù)結構為該內(nèi)存之實體位置,其具有由該數(shù)據(jù)格式所定義的特定特性。但是,本發(fā)明原理以上述文字來說明,其并不代表為一種限制,本領域技術人員將可了解到以下所述的多種步驟及操作亦可實施在硬件當中。

本發(fā)明的解碼裝置可使用各種電子設備進行實施,該電子設備包括但不限于個人計算機、服務器計算機、手持式或膝上型設備、移動設備(比如移動電話、個人數(shù)字助理(PDA)、媒體播放器等等)、多處理器系統(tǒng)、消費型電子設備、小 型計算機、大型計算機、包括上述任意系統(tǒng)或設備的分布式計算環(huán)境,等等。但該電子設備優(yōu)選為解碼服務器,以有效的提高對編碼數(shù)據(jù)的解碼效率。

請參照圖2,圖2為本發(fā)明的解碼方法的第一優(yōu)選實施例的流程圖。本優(yōu)選實施例的解碼方法可使用上述的電子設備進行實施。該解碼方法包括:

步驟S201,以第一設定值為長度單元接收編碼數(shù)據(jù),并對接收到的編碼數(shù)據(jù)進行合成;

步驟S202,當合成后的編碼數(shù)據(jù)的長度大于等于第二設定值時,使用預設哈夫曼表對合成后的編碼數(shù)據(jù)進行查表解碼操作,以獲取合成后的編碼數(shù)據(jù)中的解碼部分的系數(shù)長度值以及系數(shù)間隔值;

步驟S203,根據(jù)解碼部分的系數(shù)長度值,從合成后的編碼數(shù)據(jù)中獲取解碼部分的變長編碼;

步驟S204,使用預設變長編碼表,對解碼部分的變長編碼進行查表解碼操作,以獲取合成后的編碼數(shù)據(jù)中的解碼部分的系數(shù)值;

步驟S205,根據(jù)解碼部分的系數(shù)間隔值以及系數(shù)值,獲取解碼部分的熵解碼。

下面詳細說明本優(yōu)選實施例的解碼方法的各步驟的具體流程。

在步驟S201中,解碼裝置以第一設定值為長度單元接收外部的編碼數(shù)據(jù),如第一設定值為8比特,則以8比特為長度單元,接收外部的編碼數(shù)據(jù)。由于后續(xù)將對一個長度較大的編碼數(shù)據(jù)同時進行解碼操作,因此這里的第一設定值可設置較大,如4比特至16比特。隨后解碼裝置對接收到第一設定值長度的編碼數(shù)據(jù)進行合成操作,得到合成后的編碼數(shù)據(jù)。隨后轉到步驟S202。

在步驟S202中,解碼裝置判斷合成后的編碼數(shù)據(jù)的長度是否大于等于第二設定值,該第二設定值為一大于第一設定值的預設值,其包括至少一組系數(shù)長度編碼、系數(shù)間隔編碼以及變長編碼。其中系數(shù)長度編碼用來生成系數(shù)長度值,系數(shù)間隔編碼用來生成系數(shù)間隔值,變長編碼用來生成當前系數(shù)值。當然該編碼數(shù)據(jù)也可包括多組系數(shù)長度編碼、系數(shù)間隔編碼以及變長編碼。

優(yōu)選的,當編碼數(shù)據(jù)的長度大于第二設定值,小于第四設定值如40比特時,解碼裝置可以在對合成后的編碼數(shù)據(jù)進行解碼處理的同時,繼續(xù)同步接收外部的編碼數(shù)據(jù),以便提高解碼操作的效率。

隨后解碼裝置使用預設的哈夫曼表對合成后的編碼數(shù)據(jù)進行查表解碼操作,以獲取合成后的編碼數(shù)據(jù)中的解碼部分的系數(shù)長度值以及系數(shù)間隔值。這里的解碼部分為位于編碼數(shù)據(jù)頭部的一組系數(shù)長度編碼、系數(shù)間隔編碼以及變長編碼。這樣通過對系數(shù)長度編碼進行解碼操作,以獲取解碼部分對應的系數(shù)長度值;并通過對系數(shù)間隔編碼進行解碼操作,以獲取解碼部分對應的系數(shù)間隔值。這里的系數(shù)長度值包括表示直流系數(shù)長度的直流系數(shù)長度值以及表示交流系數(shù)長度的交流系數(shù)長度值。系數(shù)間隔值是指當前系數(shù)與前一系數(shù)之間的間隔,即0的數(shù)量。隨后轉到步驟S203。

在步驟S203中,解碼裝置根據(jù)步驟S202獲取的解碼部分的系數(shù)長度值,從合成后的編碼數(shù)據(jù)中獲取解碼部分對應的相應長度的變長編碼。隨后轉到步驟S204。

在步驟S204中,解碼裝置使用預設變長編碼表,對根據(jù)步驟S203中獲取的變長編碼進行查表解碼操作,以獲取合成后的解碼數(shù)據(jù)中的解碼部分的當前系數(shù)值。隨后轉到步驟S205。

在步驟S205中,解碼裝置根據(jù)步驟S202獲取的系數(shù)間隔值以及步驟S204獲取的系數(shù)值,獲取解碼部分的熵解碼。

這樣即完成了本優(yōu)選實施例的解碼方法的解碼過程。

本優(yōu)選實施例的解碼方法使用預設哈夫曼表以及預設變長編碼表對設定長度的編碼數(shù)據(jù)進行解碼操作,可以有效的提高解碼操作的解碼效率。

請參照圖3,圖3為本發(fā)明的解碼方法的第二優(yōu)選實施例的流程圖。本優(yōu)選實施例的解碼方法可使用上述的電子設備進行實施。該解碼方法包括:

步驟S301,使用存儲器預先加載預設哈夫曼表以及預設變長編碼表;

步驟S302,以第一設定值為長度單元接收編碼數(shù)據(jù),并對接收到的編碼數(shù)據(jù)進行合成;

步驟S303,當合成后的編碼數(shù)據(jù)的長度大于等于第二設定值時,使用預設哈夫曼表對合成后的編碼數(shù)據(jù)進行查表解碼操作,以獲取合成后的編碼數(shù)據(jù)中的解碼部分的系數(shù)長度值以及系數(shù)間隔值;

步驟S304,根據(jù)解碼部分的系數(shù)長度值,從合成后的編碼數(shù)據(jù)中獲取解碼部分的變長編碼;

步驟S305,使用預設變長編碼表,對解碼部分的變長編碼進行查表解碼操作,以獲取合成后的編碼數(shù)據(jù)中的解碼部分的系數(shù)值;

步驟S306,根據(jù)解碼部分的系數(shù)間隔值以及系數(shù)值,獲取解碼部分的熵解碼;

步驟S307,對解碼部分的熵解碼進行合成,并以第三設定值為長度單元,對合成后的熵解碼進行輸出操作;

步驟S308,使用預設哈夫曼表對合成后的編碼數(shù)據(jù)進行查表解碼操作,以獲取合成后的編碼數(shù)據(jù)中的解碼部分的編碼長度值;

步驟S309,使用編碼長度值以及系數(shù)長度值,對編碼數(shù)據(jù)進行更新操作。

下面詳細說明本優(yōu)選實施例的解碼方法的各步驟的具體流程。

在步驟S301中,解碼裝置使用存儲器預先加載預設哈夫曼表以及預設變長編碼表。用戶可根據(jù)需要以及具體數(shù)據(jù)編碼情況對預設哈夫曼表以及預設變長編碼表進行設置,以便后續(xù)步驟對預設哈夫曼表以及預設變長編碼表進行調(diào)用。

在步驟S302中,解碼裝置以第一設定值為長度單元接收外部的編碼數(shù)據(jù),如第一設定值為8比特,則以8比特為長度單元,接收外部的編碼數(shù)據(jù)。由于后續(xù)將對一個長度較大的編碼數(shù)據(jù)同時進行解碼操作,因此這里的第一設定值可設置較大,如4比特至16比特。隨后解碼裝置對接收到第一設定值長度的編碼數(shù)據(jù)進行合成操作,得到合成后的編碼數(shù)據(jù)。隨后轉到步驟S303。

在步驟S303中,解碼裝置判斷合成后的編碼數(shù)據(jù)的長度是否大于等于第二 設定值,該第二設定值為一大于第一設定值的預設值,第二設定值優(yōu)選為31比特,以保證編碼數(shù)據(jù)包括至少一組系數(shù)長度編碼、系數(shù)間隔編碼以及變長編碼。其中系數(shù)長度編碼用來生成系數(shù)長度值,系數(shù)間隔編碼用來生成系數(shù)間隔值,變長編碼用來生成當前系數(shù)值。當然該編碼數(shù)據(jù)也可包括多組系數(shù)長度編碼、系數(shù)間隔編碼以及變長編碼。

優(yōu)選的,當編碼數(shù)據(jù)的長度大于第二設定值,小于第四設定值如40比特時,解碼裝置可以在對合成后的編碼數(shù)據(jù)進行解碼處理的同時,繼續(xù)同步接收外部的編碼數(shù)據(jù),以便提高解碼操作的效率。

隨后解碼裝置使用預設的哈夫曼表對合成后的編碼數(shù)據(jù)進行查表解碼操作,以獲取合成后的編碼數(shù)據(jù)中的解碼部分的系數(shù)長度值以及系數(shù)間隔值。這里的解碼部分為位于編碼數(shù)據(jù)頭部的一組系數(shù)長度編碼、系數(shù)間隔編碼以及變長編碼。這樣通過對系數(shù)長度編碼進行解碼操作,以獲取解碼部分對應的系數(shù)長度值;并通過對系數(shù)間隔編碼進行解碼操作,以獲取解碼部分對應的系數(shù)間隔值。這里的系數(shù)長度值包括表示直流系數(shù)長度的直流系數(shù)長度值以及表示交流系數(shù)長度的交流系數(shù)長度值。系數(shù)間隔值是指當前系數(shù)與前一系數(shù)之間的間隔,即0的數(shù)量。隨后轉到步驟S304以及步驟S308。

在步驟S304中,解碼裝置根據(jù)步驟S303獲取的解碼部分的系數(shù)長度值,從合成后的編碼數(shù)據(jù)中獲取解碼部分對應的相應長度的變長編碼。隨后轉到步驟S305。

在步驟S305中,解碼裝置使用預設變長編碼表,對根據(jù)步驟S304中獲取的變長編碼進行查表解碼操作,以獲取合成后的解碼數(shù)據(jù)中的解碼部分的當前系數(shù)值。隨后轉到步驟S306。

在步驟S306中,解碼裝置根據(jù)步驟S303獲取的系數(shù)間隔值以及步驟S305獲取的系數(shù)值,獲取解碼部分的熵解碼。

在步驟S307中,解碼裝置對步驟S306獲取的熵解碼進行合成,并以第三設定值為長度單元,對合成后的熵解碼進行輸出操作。這里的第三設定值優(yōu)選 為128比特,這樣可以有效的提高輸出通道利用率以及輸出效率。

在步驟S308中,解碼裝置使用預設哈夫曼表對合成后的編碼數(shù)據(jù)進行查表解碼操作,以獲取合成后的編碼數(shù)據(jù)中的解碼部分的編碼長度值。這里的編碼長度值為系數(shù)長度編碼和系數(shù)間隔編碼的長度值。隨后轉到步驟S309。

在步驟S309中,解碼裝置使用步驟S308獲取的編碼長度值,以及通過系數(shù)長度編碼獲取的系數(shù)長度值,確定編碼數(shù)據(jù)中完整的解碼部分,從而使用解碼部分對編碼數(shù)據(jù)進行更新操作,即將步驟S302中獲取的合成后的編碼數(shù)據(jù)中的解碼部分刪除,以便接收新的編碼數(shù)據(jù)進行合成。

具體請參照圖4,圖4為本發(fā)明的解碼方法的第二優(yōu)選實施例的步驟309的流程圖。該步驟S309包括:

步驟S401,解碼裝置從合成后的編碼數(shù)據(jù)中刪除編碼長度值以及系數(shù)長度值對應的編碼數(shù)據(jù);以騰出更多的編碼數(shù)據(jù)存儲空間;

步驟S402,解碼裝置以第一設定值為長度單元繼續(xù)接收編碼數(shù)據(jù),并對接收到的編碼數(shù)據(jù)進行合成,以使得合成后的編碼數(shù)據(jù)的長度大于等于第二設定值。這樣即實現(xiàn)了編碼數(shù)據(jù)的及時更新。

這樣即完成了本優(yōu)選實施例的解碼方法的解碼過程。

在第一優(yōu)選實施例的基礎上,本優(yōu)選實施例的解碼方法實時對輸入的編碼數(shù)據(jù)進行更新、以及對熵解碼的輸出進行整合操作;進一步提高了解碼操作的解碼效率。

本發(fā)明還提供一種解碼裝置,請參照圖5,圖5為本發(fā)明的解碼裝置的第一優(yōu)選實施例的結構示意圖。本優(yōu)選實施例的解碼裝置可使用上述的解碼方法的第一優(yōu)選實施例進行實施。該解碼裝置50包括合成模塊51、第一查表模塊52、變長編碼獲取模塊53、第二查表模塊54以及解碼模塊55。

合成模塊51用于以第一設定值為長度單元接收編碼數(shù)據(jù),并對接收到的編碼數(shù)據(jù)進行合成;第一查表模塊52用于當合成后的編碼數(shù)據(jù)的長度大于等于第 二設定值時,使用預設哈夫曼表對所述合成后的編碼數(shù)據(jù)進行查表解碼操作,以獲取合成后的編碼數(shù)據(jù)中的解碼部分的系數(shù)長度值以及系數(shù)間隔值;變長編碼獲取模塊53用于根據(jù)解碼部分的系數(shù)長度值,從合成后的編碼數(shù)據(jù)中獲取解碼部分的變長編碼;第二查表模塊54用于使用預設變長編碼表,對解碼部分的變長編碼進行查表解碼操作,以獲取合成后的編碼數(shù)據(jù)中的解碼部分的系數(shù)值;解碼模塊55用于根據(jù)解碼部分的系數(shù)間隔值以及系數(shù)值,獲取解碼部分的熵解碼。

本優(yōu)選實施例的解碼裝置50使用時,首先合成模塊51以第一設定值為長度單元接收外部的編碼數(shù)據(jù),如第一設定值為8比特,則以8比特為長度單元,接收外部的編碼數(shù)據(jù)。由于后續(xù)將對一個長度較大的編碼數(shù)據(jù)同時進行解碼操作,因此這里的第一設定值可設置較大,如4比特至16比特。隨后合成模塊51對接收到第一設定值長度的編碼數(shù)據(jù)進行合成操作,得到合成后的編碼數(shù)據(jù)。

隨后第一查表模塊52判斷合成后的編碼數(shù)據(jù)的長度是否大于等于第二設定值,該第二設定值為一大于第一設定值的預設值,其包括至少一組系數(shù)長度編碼、系數(shù)間隔編碼以及變長編碼。其中系數(shù)長度編碼用來生成系數(shù)長度值,系數(shù)間隔編碼用來生成系數(shù)間隔值,變長編碼用來生成當前系數(shù)值。當然該編碼數(shù)據(jù)也可包括多組系數(shù)長度編碼、系數(shù)間隔編碼以及變長編碼。

優(yōu)選的,當編碼數(shù)據(jù)的長度大于第二設定值,小于第四設定值如40比特時,解碼裝置可以在對合成后的編碼數(shù)據(jù)進行解碼處理的同時,繼續(xù)同步接收外部的編碼數(shù)據(jù),以便提高解碼操作的效率。

隨后第一查表模塊52使用預設的哈夫曼表對合成后的編碼數(shù)據(jù)進行查表解碼操作,以獲取合成后的編碼數(shù)據(jù)中的解碼部分的系數(shù)長度值以及系數(shù)間隔值。這里的解碼部分為位于編碼數(shù)據(jù)頭部的一組系數(shù)長度編碼、系數(shù)間隔編碼以及變長編碼。這樣通過對系數(shù)長度編碼進行解碼操作,以獲取解碼部分對應的系數(shù)長度值;并通過對系數(shù)間隔編碼進行解碼操作,以獲取解碼部分對應的 系數(shù)間隔值。這里的系數(shù)長度值包括表示直流系數(shù)長度的直流系數(shù)長度值以及表示交流系數(shù)長度的交流系數(shù)長度值。系數(shù)間隔值是指當前系數(shù)與前一系數(shù)之間的間隔,即0的數(shù)量。

然后變長編碼獲取模塊53根據(jù)第一查表模塊52獲取的解碼部分的系數(shù)長度值,從合成后的編碼數(shù)據(jù)中獲取解碼部分對應的相應長度的變長編碼。

隨后第二查表模塊54使用預設變長編碼表,對根據(jù)變長編碼獲取模塊獲取的變長編碼進行查表解碼操作,以獲取合成后的解碼數(shù)據(jù)中的解碼部分的當前系數(shù)值。

最后解碼模塊55根據(jù)第一查表模塊52獲取的系數(shù)間隔值以及第二查表模塊54獲取的系數(shù)值,獲取解碼部分的熵解碼。

這樣即完成了本優(yōu)選實施例的解碼裝置50的解碼過程。

本優(yōu)選實施例的解碼裝置使用預設哈夫曼表以及預設變長編碼表對設定長度的編碼數(shù)據(jù)進行解碼操作,可以有效的提高解碼操作的解碼效率。

請參照圖6,圖6為本發(fā)明的解碼裝置的第二優(yōu)選實施例的結構示意圖。本優(yōu)選實施例的解碼裝置可使用上述的解碼方法的第二優(yōu)選實施例進行實施。該解碼裝置60包括加載模塊61、合成模塊62、第一查表模塊63、變長編碼獲取模塊64、第二查表模塊65、解碼模塊66、編碼長度值獲取模塊67、編碼數(shù)據(jù)更新模塊68以及輸出模塊69。

加載模塊61用于使用存儲器預先加載預設哈夫曼表以及預設變長編碼表。合成模塊62用于以第一設定值為長度單元接收編碼數(shù)據(jù),并對接收到的編碼數(shù)據(jù)進行合成。第一查表模塊63用于當合成后的編碼數(shù)據(jù)的長度大于等于第二設定值時,使用預設哈夫曼表對合成后的編碼數(shù)據(jù)進行查表解碼操作,以獲取合成后的編碼數(shù)據(jù)中的解碼部分的系數(shù)長度值以及系數(shù)間隔值。變長編碼獲取模塊64用于根據(jù)解碼部分的系數(shù)長度值,從合成后的編碼數(shù)據(jù)中獲取解碼部分的變長編碼。第二查表模塊65用于使用預設變長編碼表,對解碼部分的變長編碼 進行查表解碼操作,以獲取合成后的編碼數(shù)據(jù)中的解碼部分的系數(shù)值。解碼模塊66用于根據(jù)解碼部分的系數(shù)間隔值以及系數(shù)值,獲取解碼部分的熵解碼。編碼長度值獲取模塊67用于使用預設哈夫曼表對合成后的編碼數(shù)據(jù)進行查表解碼操作,以獲取合成后的編碼數(shù)據(jù)中的解碼部分的編碼長度值。編碼數(shù)據(jù)更新模塊68用于使用編碼長度值以及系數(shù)長度值,對編碼數(shù)據(jù)進行更新操作。輸出模塊69用于對解碼部分的熵解碼進行合成,并以第三設定值為長度單元,對合成后的熵解碼進行輸出操作。

請參照圖7,圖7為本發(fā)明的解碼裝置的第二優(yōu)選實施例的編碼數(shù)據(jù)更新模塊的結構示意圖。該編碼數(shù)據(jù)更新模塊68包括刪除單元681以及合成單元682。刪除單元681用于從合成后的編碼數(shù)據(jù)中刪除編碼長度值以及系數(shù)長度值對應的編碼數(shù)據(jù);合成單元682用于以第一設定值為長度單元繼續(xù)接收編碼數(shù)據(jù),并對接收到的編碼數(shù)據(jù)進行合成,以使得合成后的編碼數(shù)據(jù)的長度大于等于第二設定值。

本優(yōu)選實施例的解碼裝置60使用時,首先加載模塊61使用存儲器預先加載預設哈夫曼表以及預設變長編碼表。用戶可根據(jù)需要以及具體數(shù)據(jù)編碼情況對預設哈夫曼表以及預設變長編碼表進行設置,以便后續(xù)步驟對預設哈夫曼表以及預設變長編碼表進行調(diào)用。

隨后合成模塊62以第一設定值為長度單元接收外部的編碼數(shù)據(jù),如第一設定值為8比特,則以8比特為長度單元,接收外部的編碼數(shù)據(jù)。由于后續(xù)將對一個長度較大的編碼數(shù)據(jù)同時進行解碼操作,因此這里的第一設定值可設置較大,如4比特至16比特。隨后合成模塊對接收到第一設定值長度的編碼數(shù)據(jù)進行合成操作,得到合成后的編碼數(shù)據(jù)。

隨后第一查表模塊63判斷合成后的編碼數(shù)據(jù)的長度是否大于等于第二設定值,該第二設定值為一大于第一設定值的預設值,第二設定值優(yōu)選為31比特,以保證編碼數(shù)據(jù)包括至少一組系數(shù)長度編碼、系數(shù)間隔編碼以及變長編碼。其中系數(shù)長度編碼用來生成系數(shù)長度值,系數(shù)間隔編碼用來生成系數(shù)間隔值,變 長編碼用來生成當前系數(shù)值。當然該編碼數(shù)據(jù)也可包括多組系數(shù)長度編碼、系數(shù)間隔編碼以及變長編碼。

優(yōu)選的,當編碼數(shù)據(jù)的長度大于第二設定值,小于第四設定值如40比特時,解碼裝置可以在對合成后的編碼數(shù)據(jù)進行解碼處理的同時,繼續(xù)同步接收外部的編碼數(shù)據(jù),以便提高解碼操作的效率。

隨后第一查表模塊63使用預設的哈夫曼表對合成后的編碼數(shù)據(jù)進行查表解碼操作,以獲取合成后的編碼數(shù)據(jù)中的解碼部分的系數(shù)長度值以及系數(shù)間隔值。這里的解碼部分為位于編碼數(shù)據(jù)頭部的一組系數(shù)長度編碼、系數(shù)間隔編碼以及變長編碼。這樣通過對系數(shù)長度編碼進行解碼操作,以獲取解碼部分對應的系數(shù)長度值;并通過對系數(shù)間隔編碼進行解碼操作,以獲取解碼部分對應的系數(shù)間隔值。這里的系數(shù)長度值包括表示直流系數(shù)長度的直流系數(shù)長度值以及表示交流系數(shù)長度的交流系數(shù)長度值。系數(shù)間隔值是指當前系數(shù)與前一系數(shù)之間的間隔,即0的數(shù)量。

然后變長編碼獲取模塊64根據(jù)第一查表模塊獲取的解碼部分的系數(shù)長度值,從合成后的編碼數(shù)據(jù)中獲取解碼部分對應的相應長度的變長編碼。

隨后第二查表模塊65使用預設變長編碼表,對根據(jù)變長編碼獲取模塊64獲取的變長編碼進行查表解碼操作,以獲取合成后的解碼數(shù)據(jù)中的解碼部分的當前系數(shù)值。

然后解碼模塊66根據(jù)第一查表模塊63獲取的系數(shù)間隔值以及第二查表模塊65獲取的系數(shù)值,獲取解碼部分的熵解碼。

最后輸出模塊69對解碼模塊66獲取的熵解碼進行合成,并以第三設定值為長度單元,對合成后的熵解碼進行輸出操作。這里的第三設定值優(yōu)選為128比特,這樣可以有效的提高輸出如通道利用率以及輸出效率。

優(yōu)選的,在第一查表模塊63獲取合成后的編碼數(shù)據(jù)中的解碼部分的系數(shù)長度值以及系數(shù)間隔值后,編碼長度值獲取模塊67使用預設哈夫曼表對合成后的編碼數(shù)據(jù)進行查表解碼操作,以獲取合成后的編碼數(shù)據(jù)中的解碼部分的編碼長 度值。這里的編碼長度值為系數(shù)長度編碼和系數(shù)間隔編碼的長度值。

隨后編碼數(shù)據(jù)更新模塊68使用編碼長度值獲取模塊67獲取的編碼長度值,以及通過系數(shù)長度編碼獲取的系數(shù)長度值,確定編碼數(shù)據(jù)中完整的解碼部分,從而使用解碼部分對編碼數(shù)據(jù)進行更新操作,即將合成模塊62獲取的合成后的編碼數(shù)據(jù)中的解碼部分刪除,以便接收新的編碼數(shù)據(jù)進行合成。具體為:

編碼數(shù)據(jù)更新模塊68的刪除單元681從合成后的編碼數(shù)據(jù)中刪除編碼長度值以及系數(shù)長度值對應的編碼數(shù)據(jù);以騰出更多的編碼數(shù)據(jù)存儲空間。

隨后編碼數(shù)據(jù)更新模塊68的合成單元682以第一設定值為長度單元繼續(xù)接收編碼數(shù)據(jù),并對接收到的編碼數(shù)據(jù)進行合成,以使得合成后的編碼數(shù)據(jù)的長度大于等于第二設定值。這樣即實現(xiàn)了編碼數(shù)據(jù)的及時更新。

這樣即完成了本優(yōu)選實施例的解碼裝置30的解碼過程。

在第一優(yōu)選實施例的基礎上,本優(yōu)選實施例的解碼裝置實時對輸入的編碼數(shù)據(jù)進行更新、以及對熵解碼的輸出進行整合操作;進一步提高了解碼操作的解碼效率。

下面通過一具體實施例說明本發(fā)明的解碼裝置以及解碼方法的具體工作原理,請參照圖8A-圖8D,8A-圖8D為本發(fā)明的解碼裝置以及解碼方法的具體實施例的示意圖。

本具體實施例中的編碼數(shù)組如圖8A所示,按ZIGZAG掃描后得到1*64數(shù)組(15、0、-2、-1、-1、-1、0、0、-1、55個0)。這樣編碼數(shù)據(jù)的系數(shù)值為15、-2、-1、-1、-1、-1。其中15根據(jù)前一編碼數(shù)組的第一系數(shù)進行交流系數(shù)表示,如前一編碼數(shù)組的第一系數(shù)為12,則15對應的交流系數(shù)為15-12=3,其他編碼數(shù)據(jù)的系數(shù)值均以直流系數(shù)表示,即對應的直流系數(shù)均為該系數(shù)值本身。

使用如圖8B所示預設變長編碼表對編碼數(shù)據(jù)的系數(shù)值進行編碼,這樣3對應的變長編碼為11,-1對應的變長編碼為0,-2對應的變長編碼為01。

隨后獲取變長編碼的長度,并使用變長編碼的長度生成系數(shù)長度值,如11 的系數(shù)長度值為2,0的系數(shù)長度值為1。使用相鄰變長編碼的間隔生成系數(shù)間隔值,如3和-2之間的間隔為1;-2和-1之間的間隔為0。

這樣使用系數(shù)長度值、系數(shù)間隔值以及系數(shù)值生成系數(shù)序列。如(15、0、-2、-1、-1、-1、0、0、-1、55個0)轉換為(2)(3),(1,2)(-2),(0,1)(-1),(0,1)(-1),(0,1)(-1),(2,1)(-1),(0,0)。

其中(2)(3)表示15;(1,2)(-2)表示-2,其中的1表示-2和15之間間隔了一個0;(0,0)為結束標志。

然后使用圖8C和圖8D所示的預設哈夫曼表對上述系數(shù)序列進行編碼,其中圖8C為預設直流哈夫曼表,圖8D為預設交流哈夫曼表。通過查表可將上述(2)(3),(1,2)(-2),(0,1)(-1),(0,1)(-1),(0,1)(-1),(2,1)(-1),(0,0)轉換為:011(預設直流哈夫曼表)11(預設變長編碼表),11011(預設交流哈夫曼表)01(預設變長編碼表),00(預設交流哈夫曼表)0(預設變長編碼表),000,000,11100(預設交流哈夫曼表)0(預設變長編碼表),1010(預設交流哈夫曼表)。這樣即獲取了相應的編碼數(shù)據(jù)。

使用本發(fā)明的解碼裝置以及解碼方法對01111,1101101,000,000,000,111000,1010進行解碼的過程包括:

一、解碼裝置以8比特為長度單元接收編碼數(shù)據(jù),即按01111110,11010000,00000111,0001010接收編碼數(shù)據(jù),并對其進行合成。

二、當合成后的編碼數(shù)據(jù)的長度大于等于31比特時,使用預設直流哈夫曼表對合成后的編碼數(shù)據(jù)進行查表解碼操作,其中011對應的系數(shù)長度值為2;然后讀取后兩位11,使用預設變長編碼表對11進行查表解碼操作,獲取對應的系數(shù)值為3。由于這里以依次增加編碼數(shù)據(jù)位數(shù)的方式進行查表解碼操作,因此任一系數(shù)長度值的編碼數(shù)據(jù)均不是其他系數(shù)長度值的編碼數(shù)據(jù)的前綴。

三、使用預設交流哈夫曼表對合成后的編碼數(shù)據(jù)進行查表操作,其中11011對應的系數(shù)長度值以及系數(shù)間隔值為(1,2),其中1為系數(shù)間隔值,2為系數(shù)長度值;然后讀取后兩位01,使用預設變長編碼表對01進行查表解碼操作,獲 取對應的系數(shù)值為-2。

四、這樣依次對31比特的編碼數(shù)據(jù)進行解析,直至解析到結束標志。

五、對31比特的編碼數(shù)據(jù)解析完畢后,解碼裝置將解碼成功的編碼數(shù)據(jù)刪除,以便繼續(xù)接收外部的編碼數(shù)據(jù)進行合成操作。

因此本發(fā)明的解碼方法及解碼裝置的每次解碼過程不需要多次讀取外部編碼數(shù)據(jù),而是使用預設哈夫曼表以及預設變長編碼表對一較長的編碼數(shù)據(jù)直接進行解碼操作,使得熵解碼操作數(shù)與具體編碼數(shù)據(jù)的長度無關,有效的提高了解碼操作的解碼效率。

本發(fā)明的解碼方法及解碼裝置使用預設哈夫曼表以及預設變長編碼表對設定長度的編碼數(shù)據(jù)進行解碼操作,可以有效的提高解碼操作的解碼效率;解決了現(xiàn)有的解碼方法及解碼裝置的整體解碼效率較為低下的技術問題。

如本申請所使用的術語“組件”、“模塊”、“系統(tǒng)”、“接口”、“進程”等等一般地旨在指計算機相關實體:硬件、硬件和軟件的組合、軟件或執(zhí)行中的軟件。例如,組件可以是但不限于是運行在處理器上的進程、處理器、對象、可執(zhí)行應用、執(zhí)行的線程、程序和/或計算機。通過圖示,運行在控制器上的應用和該控制器二者都可以是組件。一個或多個組件可以有在于執(zhí)行的進程和/或線程內(nèi),并且組件可以位于一個計算機上和/或分布在兩個或更多計算機之間。

而且,要求保護的主題可以被實現(xiàn)為使用標準編程和/或工程技術產(chǎn)生軟件、固件、硬件或其任意組合以控制計算機實現(xiàn)所公開的主題的方法、裝置或制造品。本文所使用的術語“制造品”旨在包含可從任意計算機可讀設備、載體或介質(zhì)訪問的計算機程序。當然,本領域技術人員將認識到可以對該配置進行許多修改,而不脫離要求保護的主題的范圍或精神。

圖9和隨后的討論提供了對實現(xiàn)本發(fā)明所述的信息展示裝置所在的電子設備的工作環(huán)境的簡短、概括的描述。圖9的工作環(huán)境僅僅是適當?shù)墓ぷ鳝h(huán)境的一個實例并且不旨在建議關于工作環(huán)境的用途或功能的范圍的任何限制。實例電子設備912包括但不限于個人計算機、服務器計算機、手持式或膝上型設備、 移動設備(比如移動電話、個人數(shù)字助理(PDA)、媒體播放器等等)、多處理器系統(tǒng)、消費型電子設備、小型計算機、大型計算機、包括上述任意系統(tǒng)或設備的分布式計算環(huán)境,等等。

盡管沒有要求,但是在“計算機可讀指令”被一個或多個電子設備執(zhí)行的通用背景下描述實施例。計算機可讀指令可以經(jīng)由計算機可讀介質(zhì)來分布(下文討論)。計算機可讀指令可以實現(xiàn)為程序模塊,比如執(zhí)行特定任務或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的功能、對象、應用編程接口(API)、數(shù)據(jù)結構等等。典型地,該計算機可讀指令的功能可以在各種環(huán)境中隨意組合或分布。

圖9圖示了包括本發(fā)明的信息展示裝置的一個或多個實施例的電子設備912的實例。在一種配置中,電子設備912包括至少一個處理單元916和存儲器918。根據(jù)電子設備的確切配置和類型,存儲器918可以是易失性的(比如RAM)、非易失性的(比如ROM、閃存等)或二者的某種組合。該配置在圖9中由虛線914圖示。

在其他實施例中,電子設備912可以包括附加特征和/或功能。例如,設備912還可以包括附加的存儲裝置(例如可移除和/或不可移除的),其包括但不限于磁存儲裝置、光存儲裝置等等。這種附加存儲裝置在圖9中由存儲裝置920圖示。在一個實施例中,用于實現(xiàn)本文所提供的一個或多個實施例的計算機可讀指令可以在存儲裝置920中。存儲裝置920還可以存儲用于實現(xiàn)操作系統(tǒng)、應用程序等的其他計算機可讀指令。計算機可讀指令可以載入存儲器918中由例如處理單元916執(zhí)行。

本文所使用的術語“計算機可讀介質(zhì)”包括計算機存儲介質(zhì)。計算機存儲介質(zhì)包括以用于存儲諸如計算機可讀指令或其他數(shù)據(jù)之類的信息的任何方法或技術實現(xiàn)的易失性和非易失性、可移除和不可移除介質(zhì)。存儲器918和存儲裝置920是計算機存儲介質(zhì)的實例。計算機存儲介質(zhì)包括但不限于RAM、ROM、EEPROM、閃存或其他存儲器技術、CD-ROM、數(shù)字通用盤(DVD)或其他光存儲裝置、盒式磁帶、磁帶、磁盤存儲裝置或其他磁存儲設備、或可以用于存儲 期望信息并可以被電子設備912訪問的任何其他介質(zhì)。任意這樣的計算機存儲介質(zhì)可以是電子設備912的一部分。

電子設備912還可以包括允許電子設備912與其他設備通信的通信連接926。通信連接926可以包括但不限于調(diào)制解調(diào)器、網(wǎng)絡接口卡(NIC)、集成網(wǎng)絡接口、射頻發(fā)射器/接收器、紅外端口、USB連接或用于將電子設備912連接到其他電子設備的其他接口。通信連接926可以包括有線連接或無線連接。通信連接926可以發(fā)射和/或接收通信媒體。

術語“計算機可讀介質(zhì)”可以包括通信介質(zhì)。通信介質(zhì)典型地包含計算機可讀指令或諸如載波或其他傳輸機構之類的“己調(diào)制數(shù)據(jù)信號”中的其他數(shù)據(jù),并且包括任何信息遞送介質(zhì)。術語“己調(diào)制數(shù)據(jù)信號”可以包括這樣的信號:該信號特性中的一個或多個按照將信息編碼到信號中的方式來設置或改變。

電子設備912可以包括輸入設備924,比如鍵盤、鼠標、筆、語音輸入設備、觸摸輸入設備、紅外相機、視頻輸入設備和/或任何其他輸入設備。設備912中也可以包括輸出設備922,比如一個或多個顯示器、揚聲器、打印機和/或任意其他輸出設備。輸入設備924和輸出設備922可以經(jīng)由有線連接、無線連接或其任意組合連接到電子設備912。在一個實施例中,來自另一個電子設備的輸入設備或輸出設備可以被用作電子設備912的輸入設備924或輸出設備922。

電子設備912的組件可以通過各種互連(比如總線)連接。這樣的互連可以包括外圍組件互連(PCI)(比如快速PCI)、通用串行總線(USB)、火線(IEEE1394)、光學總線結構等等。在另一個實施例中,電子設備912的組件可以通過網(wǎng)絡互連。例如,存儲器918可以由位于不同物理位置中的、通過網(wǎng)絡互連的多個物理存儲器單元構成。

本領域技術人員將認識到,用于存儲計算機可讀指令的存儲設備可以跨越網(wǎng)絡分布。例如,可經(jīng)由網(wǎng)絡928訪問的電子設備930可以存儲用于實現(xiàn)本發(fā)明所提供的一個或多個實施例的計算機可讀指令。電子設備912可以訪問電子 設備930并且下載計算機可讀指令的一部分或所有以供執(zhí)行??商娲?,電子設備912可以按需要下載多條計算機可讀指令,或者一些指令可以在電子設備912處執(zhí)行并且一些指令可以在電子設備930處執(zhí)行。

本文提供了實施例的各種操作。在一個實施例中,所述的一個或多個操作可以構成一個或多個計算機可讀介質(zhì)上存儲的計算機可讀指令,其在被電子設備執(zhí)行時將使得計算設備執(zhí)行所述操作。描述一些或所有操作的順序不應當被解釋為暗示這些操作必需是順序相關的。本領域技術人員將理解具有本說明書的益處的可替代的排序。而且,應當理解,不是所有操作必需在本文所提供的每個實施例中存在。

而且,本文所使用的詞語“優(yōu)選的”意指用作實例、示例或例證。奉文描述為“優(yōu)選的”任意方面或設計不必被解釋為比其他方面或設計更有利。相反,詞語“優(yōu)選的”的使用旨在以具體方式提出概念。如本申請中所使用的術語“或”旨在意指包含的“或”而非排除的“或”。即,除非另外指定或從上下文中清楚,“X使用A或B”意指自然包括排列的任意一個。即,如果X使用A;X使用B;或X使用A和B二者,則“X使用A或B”在前述任一示例中得到滿足。

而且,盡管已經(jīng)相對于一個或多個實現(xiàn)方式示出并描述了本公開,但是本領域技術人員基于對本說明書和附圖的閱讀和理解將會想到等價變型和修改。本公開包括所有這樣的修改和變型,并且僅由所附權利要求的范圍限制。特別地關于由上述組件(例如元件、資源等)執(zhí)行的各種功能,用于描述這樣的組件的術語旨在對應于執(zhí)行所述組件的指定功能(例如其在功能上是等價的)的任意組件(除非另外指示),即使在結構上與執(zhí)行本文所示的本公開的示范性實現(xiàn)方式中的功能的公開結構不等同。此外,盡管本公開的特定特征已經(jīng)相對于若干實現(xiàn)方式中的僅一個被公開,但是這種特征可以與如可以對給定或特定應用而言是期望和有利的其他實現(xiàn)方式的一個或多個其他特征組合。而且,就術語“包括”、“具有”、“含有”或其變形被用在具體實施方式或權利要求中而言,這樣的術語旨在以與術語“包含”相似的方式包括。

本發(fā)明實施例中的各功能單元可以集成在一個處理模塊中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個模塊中。上述集成的模塊既可以采用硬件的形式實現(xiàn),也可以采用軟件功能模塊的形式實現(xiàn)。所述集成的模塊如果以軟件功能模塊的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,也可以存儲在一個計算機可讀取存儲介質(zhì)中。上述提到的存儲介質(zhì)可以是只讀存儲器,磁盤或光盤等。上述的各裝置或系統(tǒng),可以執(zhí)行相應方法實施例中的方法。

綜上所述,雖然本發(fā)明已以優(yōu)選實施例揭露如上,但上述優(yōu)選實施例并非用以限制本發(fā)明,本領域的普通技術人員,在不脫離本發(fā)明的精神和范圍內(nèi),均可作各種更動與潤飾,因此本發(fā)明的保護范圍以權利要求界定的范圍為準。

當前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
沐川县| 嘉义县| 遵义县| 陇南市| 哈尔滨市| 鹰潭市| 临颍县| 大名县| 柳江县| 芜湖县| 青神县| 西乡县| 沁阳市| 滦南县| 镇康县| 穆棱市| 墨脱县| 普宁市| 辽源市| 曲靖市| 东乡| 汕头市| 米林县| 通江县| 三原县| 渭南市| 重庆市| 正定县| 敖汉旗| 皋兰县| 同德县| 彰化县| 柯坪县| 高唐县| 田东县| 栾川县| 广宗县| 文成县| 平罗县| 拉孜县| 分宜县|