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

一種高速jpeg解碼的方法

文檔序號(hào):7685896閱讀:136來(lái)源:國(guó)知局
專利名稱:一種高速jpeg解碼的方法
技術(shù)領(lǐng)域
本發(fā)明涉及應(yīng)用于多媒體領(lǐng)域中對(duì)JPEG文件進(jìn)行快速、高效解碼的方法,尤 其涉及一種高速JPEG解碼的方法。
背景技術(shù)
為了滿足多媒體領(lǐng)域中對(duì)JPEG文件進(jìn)行快速、高效解碼的要求,同時(shí)滿足高 清視頻的解碼計(jì)算速度的要求,流暢的支持高清解碼,有效利用顯卡GPU的計(jì)算 資源,減少對(duì)CPU資源的耗費(fèi)。JPEG算法瓶頸在完全串行的哈夫曼解碼過(guò)程和 IDCT的計(jì)算復(fù)雜性高,現(xiàn)有的算法經(jīng)過(guò)長(zhǎng)時(shí)間的優(yōu)化已經(jīng)很難在得到性能上的突 破。

發(fā)明內(nèi)容
本發(fā)明的目的就是為了克服上述現(xiàn)有技術(shù)存在的缺陷,提供一種經(jīng)過(guò)簡(jiǎn)單的改 造,實(shí)現(xiàn)支持高清視頻的解碼高速JPEG解碼的方法。
本發(fā)明的目的可以通過(guò)以下技術(shù)方案來(lái)實(shí)現(xiàn) 一種高速JPEG解碼的方法,其 特征在于,該方法包括
(1) 并行哈夫曼解碼算法設(shè)計(jì)與實(shí)現(xiàn)
a. 從編碼塊中提取實(shí)際局部編碼的數(shù)據(jù);
b. 根據(jù)提取的局部編碼數(shù)據(jù)通過(guò)全局檢查恢復(fù)為原始的編碼數(shù)據(jù);
(2) 并行IDCT算法設(shè)計(jì)與實(shí)現(xiàn)
a. 將每個(gè)處理單元用到的操作數(shù)據(jù)復(fù)制到共享內(nèi)存中;
b. 每個(gè)處理單元計(jì)算IDCT兩個(gè)步驟,中間需要進(jìn)行一次同步操作,確定 所有處理單元完成上一步驟;
c. 每個(gè)處理單元將計(jì)算完成后的結(jié)果經(jīng)過(guò)量化恢復(fù)為實(shí)際的圖像數(shù)據(jù)。
所述的步驟(1)中的從編碼塊中提取實(shí)際局部編碼的數(shù)據(jù)包括-(1) 動(dòng)態(tài)檢測(cè),直接從JPEG編碼數(shù)據(jù)流中掃描編碼塊的結(jié)束編碼符;
(2) 靜態(tài)索引,在JPEG編碼的過(guò)程中,保存每個(gè)編碼塊的地址位置,建立 整個(gè)圖像編碼塊的索引結(jié)構(gòu)。
與現(xiàn)有技術(shù)相比,本發(fā)明在普通配置有當(dāng)前主流顯卡的PC機(jī)上,可以實(shí)現(xiàn)分 辨率為(1024*768) JPEG圖像的實(shí)時(shí)解碼每秒60FPS以上,CPU占有率小于10%, 可以經(jīng)過(guò)簡(jiǎn)單的改造,實(shí)現(xiàn)支持高清視頻的解碼。


圖1是本發(fā)明一種高速JPEG解碼的方法的效果圖; 圖2是原始JPEG解碼方法效果圖3是本發(fā)明一種高速JPEG解碼的方法的動(dòng)態(tài)檢測(cè)解碼方法示意圖; 圖4是本發(fā)明 一種高速JPEG解碼的方法的靜態(tài)索引解碼方法示意圖; 圖5是本發(fā)明一種高速JPEG解碼的方法的通用CPU解碼計(jì)算示意圖; 圖6是本發(fā)明一種高速JPEG解碼的方法的并行處理器解碼計(jì)算示意圖; 圖7是本發(fā)明一種高速JPEG解碼的方法的并行哈夫曼解碼過(guò)程示意圖; 圖8是本發(fā)明一種高速JPEG解碼的方法的并行IDCT計(jì)算過(guò)程示意圖。
具體實(shí)施例方式
為了滿足多媒體領(lǐng)域中對(duì)JPEG文件進(jìn)行快速、高效解碼的要求,同時(shí)滿足高 清視頻的解碼計(jì)算速度的要求,流暢的支持高清解碼,有效利用顯卡GPU的計(jì)算 資源,減少對(duì)CPU資源的耗費(fèi)。JPEG算法瓶頸在完全串行的哈夫曼解碼過(guò)程和 IDCT的計(jì)算復(fù)雜性高,本發(fā)明針對(duì)哈夫曼解碼過(guò)程的改進(jìn)提供兩種技術(shù)解決方案 一是在編碼過(guò)程中記錄編碼塊的地址,建立整個(gè)數(shù)據(jù)流的索引結(jié)構(gòu);二是動(dòng)態(tài) 進(jìn)行數(shù)據(jù)流掃描,檢測(cè)編碼塊的位置。通過(guò)以上兩種方案可以消除JPEG算法解碼 過(guò)程中串行化的問(wèn)題;本發(fā)明對(duì)IDCT算法進(jìn)行并行化改進(jìn),完全可以利用并行計(jì) 算處理器的計(jì)算能力,達(dá)到50到100倍加速比。
并行哈夫曼解碼算法。哈夫曼解碼算法由于其固有的性質(zhì),要求完全串行化地 從數(shù)據(jù)流中提出壓縮數(shù)據(jù)。不利于在并行計(jì)算機(jī)處理器上進(jìn)行并行解碼。因此本發(fā) 明需要對(duì)哈夫曼解碼算法進(jìn)行并行化改造。有兩種改造方法 一是在編碼過(guò)程中記 錄每個(gè)編碼塊的位置,建立整個(gè)壓縮結(jié)構(gòu)的索引,從而在解壓過(guò)程中消除每個(gè)塊之間的相關(guān)性,實(shí)現(xiàn)并行化解碼;二是并行動(dòng)態(tài)檢測(cè)編碼結(jié)尾標(biāo)志,并通過(guò)檢査全局 一致性,可以最終確定JPEG壓縮結(jié)構(gòu),實(shí)現(xiàn)正確的并行化解碼。
JPEG核心算法的GPU算法實(shí)現(xiàn)?,F(xiàn)在主流的顯卡上都有一個(gè)可編程圖像處理 器,其計(jì)算速度相當(dāng)于普通CPU的50到100倍。將JPEG解碼過(guò)程在GPU上實(shí) 現(xiàn)可以達(dá)到很高的加速比。但是GPU計(jì)算結(jié)構(gòu)不同普通CPU,算法實(shí)現(xiàn)受到一定 的限制,通過(guò)精簡(jiǎn)優(yōu)化,本發(fā)明最終實(shí)現(xiàn)了 JPEG核心算法從CPU到GPU的移植。
本發(fā)明為了滿足播放高清以及多媒體信息處理中對(duì)JPEG圖像解碼速度的要 求,通過(guò)提高本算法的并行性,將算法移植到并行計(jì)算機(jī)上進(jìn)行加速。實(shí)現(xiàn)了很高 的加速比,達(dá)到實(shí)際應(yīng)用的需求,本發(fā)明還可以為當(dāng)前多種多媒體應(yīng)用提供強(qiáng)大的 加速支持,比如圖形內(nèi)容的搜索、多媒體信息庫(kù)、圖像處理等應(yīng)用。
JPEG解碼算法是一個(gè)本質(zhì)上串行的算法,在CPU上實(shí)現(xiàn),整個(gè)算法的瓶頸主 要存在于以下兩個(gè)部分
一、 哈夫曼編碼的整體串行性,哈夫曼編碼整體上是一個(gè)嚴(yán)格串行的過(guò)程,由 于前后編碼塊存在相關(guān)性,即使在雙核的CPU上也難以實(shí)現(xiàn)加速。
二、 IDCT變換的計(jì)算復(fù)雜性,IDCT變換是一個(gè)二維矩陣乘法計(jì)算,具有很 高的計(jì)算復(fù)雜性,在CPU上的實(shí)現(xiàn)特別是X86結(jié)構(gòu)的CPU上,占用很大的CPU 計(jì)算時(shí)間,效率比較低下。
本發(fā)明針對(duì)JPEG以上兩個(gè)解碼瓶頸進(jìn)行優(yōu)化,實(shí)現(xiàn)JPEG解碼加速。主要進(jìn) 行哈夫曼解碼并行化改進(jìn)和IDCT并行化改進(jìn)。 哈夫曼解碼并行化改進(jìn)
哈夫曼編碼壓縮算法利用信息的統(tǒng)計(jì)規(guī)律降低信息的冗余度,由于統(tǒng)計(jì)過(guò)程利 用到全局的信息,因此哈夫曼編碼的信息是整體相關(guān)的,因此首先要消除整體編碼 信息的相關(guān)性。本發(fā)明利用兩種辦法來(lái)消除編碼信息之間的相關(guān)性
一種方法是動(dòng)態(tài)檢測(cè),就是直接從JPEG編碼數(shù)據(jù)流中掃描編碼塊的結(jié)束編碼 符,由于每個(gè)編碼塊包含圖像塊的直流和交流系數(shù),只要確定了圖像塊的直流與交 流系數(shù),就可以單獨(dú)計(jì)算恢復(fù)本塊原始圖像。動(dòng)態(tài)檢測(cè)方法優(yōu)點(diǎn)是不需要額外的數(shù) 據(jù)結(jié)構(gòu),也不需要對(duì)原始的JPEG文件進(jìn)行格式轉(zhuǎn)換;缺點(diǎn)是編碼塊結(jié)束符在哈夫 曼編碼中有二義性,就是有可能出現(xiàn)錯(cuò)誤,只有通過(guò)全局?jǐn)?shù)據(jù)流檢查來(lái)檢測(cè)錯(cuò)誤編 碼塊結(jié)束符。這樣出現(xiàn)浪費(fèi)計(jì)算。
另一種方式靜態(tài)索引,就是在JPEG編碼的過(guò)程中,保存每個(gè)編碼塊的地址位置,建立整個(gè)圖像編碼塊的索引結(jié)構(gòu)。在解碼是,利用索引數(shù)據(jù)結(jié)構(gòu)直接定位每塊 圖像的位置,然后同時(shí)進(jìn)行恢復(fù)計(jì)算。靜態(tài)索引方法優(yōu)點(diǎn)是計(jì)算效率高,解碼速度 更快,因?yàn)橹苯涌梢远ㄎ痪幋a塊結(jié)束符,不需要掃描,無(wú)浪費(fèi)計(jì)算。缺點(diǎn)是需要額 外的數(shù)據(jù)結(jié)構(gòu),增加壓縮數(shù)據(jù)的體積,降低了壓縮率。
IDCT算法并行化改進(jìn)
IDCT算法是一個(gè)矩陣乘法計(jì)算,本身具有很高的并行性,在并行計(jì)算機(jī)上實(shí) 現(xiàn)矩陣乘法計(jì)算需要計(jì)算機(jī)本身的數(shù)據(jù)一致性接口來(lái)支持。圖形處理器提供大量輕 量級(jí)的線程來(lái)處理相對(duì)簡(jiǎn)單的計(jì)算過(guò)程,并且提供線程之間的共享內(nèi)存以及同步工 具。這樣可以滿足IDCT并行計(jì)算,達(dá)到解碼的基本要求。
在通用CPU上的實(shí)現(xiàn),整個(gè)矩陣計(jì)算都是串行計(jì)算,對(duì)于X86架構(gòu)的計(jì)算機(jī) 來(lái)說(shuō),計(jì)算型指令并不能充分利用整個(gè)計(jì)算機(jī)的資源,但是占用所有的計(jì)算時(shí)間, 因此計(jì)算效率不是很高,不能充分發(fā)揮處理器的效能。
而在并行處理器上實(shí)現(xiàn),所有的計(jì)算單元很適合處理計(jì)算型的指令,雖然每個(gè) 計(jì)算單元的計(jì)算能力趕不上通用CPU的處理能力,但是大量計(jì)算單元產(chǎn)生的總體 性能遠(yuǎn)遠(yuǎn)大于通用CPU的處理能力,因此在具有并行處理器結(jié)構(gòu)的GPU上實(shí)現(xiàn) IDCT算法,可以達(dá)到很高計(jì)算性能。
JPEG算法GPU實(shí)現(xiàn)
解決了 JPEG算法主要的計(jì)算問(wèn)題,就可以有效的在并行計(jì)算機(jī)結(jié)構(gòu)的處理器 上實(shí)現(xiàn)JPEG算法。主要實(shí)現(xiàn)分為并行哈夫曼解碼算法和并行IDCT算法。
一、 并行哈夫曼解碼算法設(shè)計(jì)與實(shí)現(xiàn)
并行哈夫曼解碼算法實(shí)現(xiàn)可以分為兩個(gè)步驟首先從編碼塊中提取實(shí)際局部編 碼的數(shù)據(jù);然后根據(jù)提取的局部編碼數(shù)據(jù)通過(guò)全局檢査恢復(fù)為原始的編碼數(shù)據(jù)。(如 圖5)
二、 并行IDCT算法設(shè)計(jì)與實(shí)現(xiàn)
JPEG壓縮圖像具有分塊屬性,圖像分塊之間的無(wú)相關(guān)性,圖像分塊內(nèi)IDCT 計(jì)算有相關(guān)性。每個(gè)分塊的計(jì)算由并行處理器的處理器塊來(lái)進(jìn)行計(jì)算,處理器塊具 有共享內(nèi)存便于塊內(nèi)處理器進(jìn)行通信,塊內(nèi)處理器可以進(jìn)行計(jì)算同步操作。算法分 為三步首先將每個(gè)處理單元用到的操作數(shù)據(jù)復(fù)制到共享內(nèi)存中;接著每個(gè)處理單 元計(jì)算IDCT兩個(gè)步驟,中間需要進(jìn)行一次同步操作,確定所有處理單元完成上一 步驟;最后每個(gè)處理單元將計(jì)算完成后的結(jié)果經(jīng)過(guò)量化恢復(fù)為實(shí)際的圖像數(shù)據(jù)。如圖1與圖2所示,原始JPEG解碼方法在哈夫曼解碼、數(shù)據(jù)全局性恢復(fù)及量 化以及IDCT計(jì)算過(guò)程中是經(jīng)典的串行處理方法,計(jì)算資源利用率低,速度慢。高 速JPEG解碼的方法在哈夫曼解碼、數(shù)據(jù)全局性恢復(fù)及量化以及IDCT計(jì)算過(guò)程中 是并行處理方法,計(jì)算資源利用率高,速度快。
如圖3所示,動(dòng)態(tài)檢測(cè)解碼過(guò)程中,并行處理器從頭掃描編碼數(shù)據(jù),知道檢測(cè) 到對(duì)應(yīng)的編碼塊結(jié)束符,然后開(kāi)始哈夫曼解碼,編碼塊結(jié)束符在哈夫曼編碼中有二 義性,有可能出現(xiàn)定位錯(cuò)誤,最后通過(guò)全局?jǐn)?shù)據(jù)流檢査來(lái)檢測(cè)錯(cuò)誤編碼塊結(jié)束符。 將正確的解碼數(shù)據(jù)合并起來(lái)得到本圖像編碼塊的局部系數(shù)矩陣。
如圖4所示,靜態(tài)索引解碼過(guò)程中,并行處理器通過(guò)索引直接計(jì)算得到對(duì)應(yīng)的 編碼塊結(jié)束符,然后進(jìn)行哈夫曼解碼,得到本圖像編碼塊的局部系數(shù)矩陣。
如圖5所示,通用CPU解碼計(jì)算過(guò)程,為了計(jì)算結(jié)果矩陣,CPU需要依次計(jì) 算結(jié)果矩陣的每個(gè)元素,整個(gè)計(jì)算過(guò)程耗費(fèi)CPU時(shí)間多,計(jì)算效率低。
如圖6所示,并行處理器解碼計(jì)算過(guò)程,為了計(jì)算結(jié)果矩陣,每個(gè)處理單元同 時(shí)計(jì)算對(duì)應(yīng)結(jié)果矩陣的元素,計(jì)算效率高。
如圖7所示,并行哈夫曼解碼過(guò)程
(1) 每個(gè)處理單元定位對(duì)應(yīng)的編碼塊。
(2) 每個(gè)處理單元進(jìn)行哈夫曼解碼,計(jì)算對(duì)應(yīng)圖像編碼塊的DC和AC系數(shù)。
(3) 進(jìn)行整體一致性檢查,恢復(fù)所有圖像編碼塊實(shí)際的DC和AC系數(shù)。 如圖8所示,并行IDCT計(jì)算過(guò)程
(1) 每個(gè)處理器塊將對(duì)應(yīng)圖像編碼塊的系數(shù)復(fù)制到共享內(nèi)存中;
(2) 進(jìn)行IDCT列計(jì)算;
(3) 進(jìn)行處理器塊內(nèi)的同步操作,保證所有列計(jì)算結(jié)束;
(4) 進(jìn)行IDCT行計(jì)算;
(5) 計(jì)算對(duì)應(yīng)圖像的實(shí)際顏色值。
權(quán)利要求
1.一種高速JPEG解碼的方法,其特征在于,該方法包括(1)并行哈夫曼解碼算法設(shè)計(jì)與實(shí)現(xiàn)a.從編碼塊中提取實(shí)際局部編碼的數(shù)據(jù);b.根據(jù)提取的局部編碼數(shù)據(jù)通過(guò)全局檢查恢復(fù)為原始的編碼數(shù)據(jù);(2)并行IDCT算法設(shè)計(jì)與實(shí)現(xiàn)a.將每個(gè)處理單元用到的操作數(shù)據(jù)復(fù)制到共享內(nèi)存中;b.每個(gè)處理單元計(jì)算IDCT兩個(gè)步驟,中間需要進(jìn)行一次同步操作,確定所有處理單元完成上一步驟;c.每個(gè)處理單元將計(jì)算完成后的結(jié)果經(jīng)過(guò)量化恢復(fù)為實(shí)際的圖像數(shù)據(jù)。
2. 根據(jù)權(quán)利要求1所述的一種高速JPEG解碼的方法,其特征在于,所述的步 驟(1)中的從編碼塊中提取實(shí)際局部編碼的數(shù)據(jù)包括(1) 動(dòng)態(tài)檢測(cè),直接從JPEG編碼數(shù)據(jù)流中掃描編碼塊的結(jié)束編碼符;(2) 靜態(tài)索引,在JPEG編碼的過(guò)程中,保存每個(gè)編碼塊的地址位置,建立 整個(gè)圖像編碼塊的索引結(jié)構(gòu)。
全文摘要
本發(fā)明涉及一種高速JPEG解碼的方法,該方法包括并行哈夫曼解碼算法設(shè)計(jì)與實(shí)現(xiàn),從編碼塊中提取實(shí)際局部編碼的數(shù)據(jù);根據(jù)提取的局部編碼數(shù)據(jù)通過(guò)全局檢查恢復(fù)為原始的編碼數(shù)據(jù);并行IDCT算法設(shè)計(jì)與實(shí)現(xiàn),將每個(gè)處理單元用到的操作數(shù)據(jù)復(fù)制到共享內(nèi)存中;每個(gè)處理單元計(jì)算IDCT兩個(gè)步驟,中間需要進(jìn)行一次同步操作,確定所有處理單元完成上一步驟;每個(gè)處理單元將計(jì)算完成后的結(jié)果經(jīng)過(guò)量化恢復(fù)為實(shí)際的圖像數(shù)據(jù)。與現(xiàn)有技術(shù)相比,本發(fā)明在普通配置有當(dāng)前主流顯卡的PC機(jī)上,可以實(shí)現(xiàn)分辨率為(1024*768)JPEG圖像的實(shí)時(shí)解碼每秒60FPS以上,CPU占有率小于10%,可以經(jīng)過(guò)簡(jiǎn)單的改造,實(shí)現(xiàn)支持高清視頻的解碼。
文檔編號(hào)H04N7/26GK101626504SQ20081004040
公開(kāi)日2010年1月13日 申請(qǐng)日期2008年7月9日 優(yōu)先權(quán)日2008年7月9日
發(fā)明者秦永進(jìn), 飛蘋果 申請(qǐng)人:上海飛來(lái)飛去多媒體創(chuàng)意有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
河间市| 武威市| 鸡泽县| 江北区| 彰武县| 林周县| 陆河县| 东莞市| 宁城县| 桂林市| 阿图什市| 调兵山市| 澄城县| 江西省| 广南县| 香河县| 盐池县| 拉孜县| 汶川县| 永嘉县| 乌鲁木齐县| 泾阳县| 长丰县| 南皮县| 清徐县| 贵定县| 禹城市| 石棉县| 绍兴县| 阿尔山市| 泸州市| 育儿| 岚皋县| 青川县| 荆门市| 鄂托克前旗| 文山县| 贡嘎县| 石棉县| 潼南县| 屏东县|