基于cpu和gpu的圖像協(xié)同解碼方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及圖像處理技術(shù)領(lǐng)域,特別是涉及一種基于CPU和GPU的圖像協(xié)同解碼 方法及裝置。
【背景技術(shù)】
[0002] 目前,針對遠程圖像采集設(shè)備采集到的圖像,該圖像從被采集到在遠端設(shè)備上輸 出展示通常經(jīng)歷以下過程:圖像的采集、圖像的壓縮、圖像壓縮碼流的傳輸、圖像壓縮碼流 的解碼(解壓縮)、解碼結(jié)果的輸出顯示,其中,圖像的壓縮過程中采用何種壓縮算法直接 影響著最終的圖像畫面的輸出顯示質(zhì)量,圖像壓縮碼流的解碼過程是圖像的壓縮過程的逆 過程。
[0003] 隨著圖像采集技術(shù)的迅速發(fā)展,人們對采集到的圖像的質(zhì)量要求也越來越高,傳 統(tǒng)的JPEG壓縮標(biāo)準(zhǔn)已經(jīng)逐漸無法滿足上述需求,主要表現(xiàn)在:傳統(tǒng)的JPEG壓縮標(biāo)準(zhǔn)中的壓 縮算法采用了有損壓縮,當(dāng)圖像中存在大面積的近似顏色區(qū)域時,采用上述壓縮算法就會 出現(xiàn)"馬賽克"現(xiàn)象,影響圖片觀感。為了解決上述問題,圖像畫面質(zhì)量較高、壓縮比較高的 靜態(tài)圖像壓縮標(biāo)準(zhǔn)JPEG2000應(yīng)運而生。
[0004] 相比于傳統(tǒng)的JPEG壓縮標(biāo)準(zhǔn),JPEG2000可以支持有損壓縮和無損壓縮,在無損壓 縮的情況下,JPEG2000的壓縮比高于傳統(tǒng)的JPEG ;在有損壓縮,特別是壓縮比較高的情況 下,使用JPEG2000壓縮算法不會出現(xiàn)傳統(tǒng)JPEG中的"馬賽克"現(xiàn)象,此外,對圖像壓縮碼流 進行解碼后得到的圖像的畫面質(zhì)量相對清晰?;谏鲜鲂阅芴匦?,JPEG2000在圖像畫面質(zhì) 量、壓縮比要求較高的領(lǐng)域如遙感、醫(yī)學(xué)影像分析等領(lǐng)域,有著廣泛的應(yīng)用。
[0005] 在對經(jīng)過JPEG2000壓縮編碼的圖像編碼碼流進行解碼時,通常碼流需要經(jīng)歷以 下操作處理:JPEG2000標(biāo)準(zhǔn)中定義的頭信息解析、tier-2算法處理、tier-Ι算法處理、反量 化、小波逆變化及DC電平變換?,F(xiàn)有技術(shù)中也存在基于CPU和GPU的圖像解碼方法,在該 方法中CPU負(fù)責(zé)對碼流進行頭信息解析、tier-2算法及tier-Ι算法處理,GPU負(fù)責(zé)對CPU 的處理結(jié)果進行反量化、小波逆變化及DC電平變換處理。
[0006] 然而,由于一方面tier-Ι算法的計算量較大,會占用較多的CPU資源,影響其他類 型操作的執(zhí)行速度;另一方面反量化、小波逆變化及DC電平變換占用的GPU資源較少,造成 了 GPU空閑的狀況,因此,導(dǎo)致CPU和GPU的資源利用不合理。
【發(fā)明內(nèi)容】
[0007] 有鑒于上述現(xiàn)有技術(shù)所存在的缺陷,本發(fā)明的目的在于,提供一種基于CPU和GPU 的圖像協(xié)同解碼方法及裝置,使得CPU和GPU的負(fù)載均衡,優(yōu)化JPEG2000的解碼速度。
[0008] 為了實現(xiàn)上述目的,依據(jù)本發(fā)明提出的一種基于CPU和GPU的圖像協(xié)同解碼方法, 應(yīng)用于配置有中央處理器CPU和圖形處理器GPU的電子設(shè)備,所述方法包括:
[0009] 接收圖像編碼碼流,其中所述圖像編碼碼流為經(jīng)過JPEG2000編碼后的圖像碼流;
[0010] 調(diào)用所述電子設(shè)備的CPU對所述圖像編碼碼流順序進行頭信息解析及JPEG2000 標(biāo)準(zhǔn)中定義的tier-2算法處理,得到第一處理結(jié)果;
[0011] 提取所述圖像編碼碼流的圖像分辨率值,判斷所述分辨率值是否高于預(yù)設(shè)的分辨 率閾值,如果是,調(diào)用所述電子設(shè)備的GPU對所述第一處理結(jié)果進行JPEG2000標(biāo)準(zhǔn)中定義 的tier-Ι算法處理,得到第二處理結(jié)果;
[0012] 否則,繼續(xù)控制所述電子設(shè)備的CPU對所述第一處理結(jié)果進行JPEG2000標(biāo)準(zhǔn)中定 義的tier-Ι算法處理,得到第二處理結(jié)果;
[0013] 調(diào)用所述電子設(shè)備的GPU對所述第二處理結(jié)果順序進行反量化處理、小波逆變換 及DC電平變換,得到解碼后的圖像數(shù)據(jù)。
[0014] 本發(fā)明還可采用以下技術(shù)措施進一步實現(xiàn)。
[0015] 前述的基于CPU和GPU的圖像協(xié)同解碼方法,其中所述電子設(shè)備的CPU與GPU之 間的數(shù)據(jù)傳遞方式為:CPU將數(shù)據(jù)發(fā)送至預(yù)先建立的緩沖隊列,GPU從所述預(yù)先建立的緩沖 隊列異步獲取數(shù)據(jù)。
[0016] 前述的基于CPU和GPU的圖像協(xié)同解碼方法,其中所述調(diào)用所述電子設(shè)備的GPU 對所述第一處理結(jié)果進行JPEG2000標(biāo)準(zhǔn)中定義的tier-Ι算法處理,得到第二處理結(jié)果,包 括:
[0017] 調(diào)用所述電子設(shè)備的GPU為所述第一處理結(jié)果中的每個圖像編碼碼塊分配一個 線程束Warp,其中不同圖像編碼碼塊對應(yīng)不同的線程束Warp ;
[0018] 以Warp為處理單位對所述第一處理結(jié)果中的每個圖像編碼碼塊進行JPEG2000標(biāo) 準(zhǔn)中定義的tier-Ι算法處理,得到第二處理結(jié)果。
[0019] 前述的基于CPU和GPU的圖像協(xié)同解碼方法,其中在所述電子設(shè)備的GPU對所述 第二處理結(jié)果順序進行反量化處理之后,還包括:
[0020] 利用GPU的并行能力將反量化處理結(jié)果直接排列成小波逆變換所需的線性格式, 以提高所述電子設(shè)備的GPU執(zhí)行小波逆變換的效率。
[0021] 前述的基于CPU和GPU的圖像協(xié)同解碼方法,其中在所述電子設(shè)備的GPU對所述 第二處理結(jié)果順序進行反量化處理之后,還包括:
[0022] 識別圖像編碼空碼塊,以減少所述電子設(shè)備的GPU執(zhí)行小波逆變換階段的計算 量。
[0023] 前述的基于CPU和GPU的圖像協(xié)同解碼方法,其中所述電子設(shè)備的GPU執(zhí)行小波 逆變換的方式,包括:
[0024] 利用GPU的高速顯存緩存一次小波逆變換需要的數(shù)據(jù),以減少從低速顯存中的讀 寫次數(shù),優(yōu)化小波逆變換的數(shù)據(jù)讀取速度。
[0025] 依據(jù)本發(fā)明提出的一種基于CPU和GPU的圖像協(xié)同解碼裝置,應(yīng)用于配置有中央 處理器CPU和圖形處理器GPU的電子設(shè)備,所述裝置包括:
[0026] 碼流接收模塊,用于接收圖像編碼碼流,其中所述圖像編碼碼流為經(jīng)過JPEG2000 編碼后的圖像碼流;
[0027] 第一控制模塊,用于調(diào)用所述電子設(shè)備的CPU對所述碼流接收模塊接收到的圖像 編碼碼流順序進行頭信息解析及JPEG2000標(biāo)準(zhǔn)中定義的tier-2算法處理,得到第一處理 結(jié)果;
[0028] 判斷模塊,用于提取所述圖像編碼碼流的圖像分辨率值,判斷所述分辨率值是否 高于預(yù)設(shè)的分辨率閾值;
[0029] 第二控制模塊,用于在所述判斷模塊的判斷結(jié)果為是的情況下,調(diào)用所述電子設(shè) 備的GPU對所述第一處理結(jié)果進行JPEG2000標(biāo)準(zhǔn)中定義的tier-Ι算法處理,得到第二處 理結(jié)果;
[0030] 第三控制模塊,用于在所述判斷模塊的判斷結(jié)果為否的情況下,繼續(xù)控制所述電 子設(shè)備的CPU對所述第一處理結(jié)果進行JPEG2000標(biāo)準(zhǔn)中定義的tier-Ι算法處理,得到第 二處理結(jié)果;
[0031] 第四控制模塊,用于調(diào)用所述電子設(shè)備的GPU對所述第二處理結(jié)果順序進行反量 化處理、小波逆變換及DC電平變換,得到解碼后的圖像數(shù)據(jù)。
[0032] 前述的基于CPU和GPU的圖像協(xié)同解碼方法,其中所述電子設(shè)備的CPU與GPU之 間的數(shù)據(jù)傳遞方式為:CPU將數(shù)據(jù)發(fā)送至預(yù)先建立的緩沖隊列,GPU從所述預(yù)先建立的緩沖 隊列異步獲取數(shù)據(jù)。
[0033] 前述的基于CPU和GPU的圖像協(xié)同解碼方法,其中所述第二控制模塊具體用于:
[0034] 在所述判斷模塊的判斷結(jié)果為是的情況下,調(diào)用所述電子設(shè)備的GPU為所述第一 處理結(jié)果中的每個圖像編碼碼塊分配一個線程束Warp,其中不同圖像編碼碼塊對應(yīng)不同的 線程束Warp ;
[0035] 以Warp為處理單位對所述第一處理結(jié)果中的每個圖像編碼碼塊進行JPEG2000標(biāo) 準(zhǔn)中定義的tier-Ι算法處理,得到第二處理結(jié)果。
[0036] 前述的基于CPU和GPU的圖像協(xié)同解碼方法,其中所述裝置還包括:
[0037] 數(shù)據(jù)格式轉(zhuǎn)換模塊,用于利用GPU的并行能力將反量化處理結(jié)果直接排列成小波 逆變換所需的線性格式,以提高所述電子設(shè)備的GPU執(zhí)行小波逆變換的效率。
[0038] 前述的基于CPU和GPU的圖像協(xié)同解碼方法,其中所述裝置還包括:
[0039] 識別模塊,用于識別圖像編碼空碼塊,以減少所述電子設(shè)備的GPU執(zhí)行小波逆變 換階段的計算量。
[0040] 前述的基于CPU和GPU的圖像協(xié)同解碼方法,其中所述第三控制模塊調(diào)用所述電 子設(shè)備的GPU執(zhí)行小波逆變換,包括:
[0041] 第三控制模塊利用GPU的高速顯存緩存一次小波逆變換需要的數(shù)據(jù),以減少從低 速顯存中的讀寫次數(shù),優(yōu)化小波逆變換的數(shù)據(jù)讀取速度。
[0042] 應(yīng)用上述技術(shù)方案,與現(xiàn)有技術(shù)相比,本發(fā)明的基于CPU和GPU的圖像協(xié)同解碼 方法及裝置,在高分辨率圖像的解碼中調(diào)用GPU執(zhí)行tier-Ι算法的速度與CPU接近,將 tier-Ι算法的執(zhí)行操作分配到GPU,一方面在不影響解碼速度的前提下減輕了 CPU的負(fù)荷, 另一方面充分利用的空閑的GPU資源,從而實現(xiàn)了 CPU、GPU的負(fù)載均衡,增加系統(tǒng)的總體吞 吐率,將最主要的計算放到GPU上實現(xiàn),能通過GPU擴展插槽,更加容易地提高性能。
【附圖說明】
[0043] 圖1是本發(fā)明提供的一種基于CPU和GPU的圖像協(xié)同解碼方法的流程示意圖。