204 ;確定當前終端設備在JPEG圖像的IDCT環節對應的第一負載闊值。
[0078] 其中,可W預先在本地保存有多種編碼類型的圖像與其僅利用單指令多數據流方 式進行解碼時的負載闊值的對應關系,如果解碼過程包括多個處理環節,還可W保存有解 碼時各個處理環節的負載闊值。
[0079] S205;確定待解碼的JPEG圖像的數據量,將該JPEG圖像的數據量與第一負載闊值 相比較,如果該JPEG圖像的數據量大于第一負載闊值,則在IDCT處理環節,使用多核多線 程的并行化處理進行加速,否則僅用單指令多數據流的并行化方式進行處理。
[0080] 比如,假設該待解碼的JPEG圖像的寬度為1024像素,高度為2048像素,即該待解 碼的JPEG圖像的數據量為1024X2048,另假設第一負載闊值為1024X1024,則通過比較可 得出,該待解碼的JPEG圖像的數據量大于第一負載闊值,因此,在IDCT階段可W采用多核 多線程的并行化處理進行加速。
[0081] S206 ;在上采樣W及顏色空間轉換環節,W組成待解碼數據的像素行為單位劃分 數據單元。
[0082] S207 ;將每個像素行內部的數據進行并行處理,W便在數據單元內部進行單指令 多數據流的并行處理。
[0083] S208 ;確定當前終端設備在JPEG圖像的上采樣W及顏色空間轉換環節對應的第 二負載闊值。
[0084] S209;確定待解碼的JPEG圖像的數據量,將該JPEG圖像的數據量與第二負載闊值 相比較,如果該JPEG圖像的數據量大于第二負載闊值,則在上采樣W及顏色空間轉換處理 環節,使用多核多線程的并行化處理進行加速,否則僅用單指令多數據流的并行化方式進 行處理。
[00財比如,同樣假設該待解碼的JPEG圖像的寬度為1024像素,高度為2048像素,即該 待解碼的JPEG圖像的數據量為1024X2048,另假設第二負載闊值為2048X2048,則通過比 較可得出,該待解碼的JPEG圖像的數據量小于第二負載闊值,因此,在上采樣W及顏色空 間轉換階段無需采用多核多線程的并行化處理進行加速,僅用單指令多數據流的并行方式 進行處理即可。
[0086] 總之,在本申請實施例中,對于JPEG圖像的解碼過程中,可充分利用移動終端設 備上的多核處理器的并行處理能力,將單指令多數據流并行處理方式與多核多線程并行處 理方式相結合對數據進行處理,從而提高移動終端設備的圖像解碼效率;而且,可通過將 待解碼數據的數據量與預先確定的當前終端設備在僅利用單指令多數據流方式進行解碼 時的負載闊值相比較的結果,來決定是否觸發執行創建多個子線程,W此,來避免在解碼負 載較小的情況下創建多個子線程所帶來的解碼時間的延長,在可實現更合理的利用多核處 理器的同時,還可進一步優化移動終端設備的圖像解碼效率。
[0087] 與本申請實施例提供的對圖像進行解碼的方法相對應,本申請實施例還提供了一 種對圖像進行解碼的裝置,參見圖3,該裝置可包括:
[0088] 解碼請求接收單元301,用于接收對指定圖像進行解碼的請求;
[0089] 解碼數據劃分單元302,用于按照所述指定圖像的待解碼數據的數據組成結構,將 所述待解碼數據劃分為多個數據單元;
[0090] 第一并行處理單元303,用于將每個數據單元內部的數據進行并行處理,W便在數 據單元內部進行單指令多數據流的并行處理;
[0091] 第二并行處理單元304,用于創建多個子線程,并將各個數據單元分發到各個子線 程中,W便利用當前終端設備內部署的多核處理器在不同的數據單元之間進行多核多線程 的并行處理。
[0092] 進一步的,該裝置還可包括:
[0093] 闊值確定單元,用于確定當前終端設備在僅利用單指令多數據流方式進行解碼時 的負載闊值;
[0094] 數據量確定單元,用于確定所述待解碼數據的數據量;
[0095] 觸發單元,用于當所述待解碼數據的數據量大于所述負載闊值時,則觸發執行所 述創建多個子線程及后續步驟。
[0096] 進一步的,該裝置還可包括;圖像編碼類型確定單元,用于確定所述指定圖像的編 碼類型。
[0097] 基于此,所述闊值確定單元,可具體用于:
[0098] 確定當前終端設備在僅利用單指令多數據流方式對該圖像編碼類型的圖像進行 解碼時的負載闊值。
[0099] 其中,所述闊值確定單元,可具體包括:
[0100] 解碼子單元,用于在當前終端設備中僅利用單指令多數據流方式對測試圖像進行 解碼;
[0101] 時間及數據量確定子單元,用于確定解碼過程所耗費的時間W及所述測試圖像的 數據量;
[0102] 計算子單元,用于計算預置的時間闊值與所述解碼過程所耗費的時間之間的比 值;
[0103] 闊值獲取子單元,用于將所述測試圖像的數據量乘W所述比值,獲得所述負載闊 值。
[0104] 其中,當所述測試圖像的格式為JPEG格式時:
[0105] 所述時間及數據量確定子單元,具體可用于:
[0106] 確定在解碼過程中的反向離散余弦變換IDCT處理環節所耗費的第一時間,W及 在上采樣及顏色空間轉換處理環節所耗費的第二時間;
[0107] 所述計算子單元,具體可用于:
[010引計算預置的時間闊值與第一時間之間的第一比值,W及預置的時間闊值與第二時 間之間的第二比值;
[0109] 所述闊值獲取子單元,具體可用于:
[0110] 將所述測試圖像的數據量乘W所述第一比值,獲得第一負載闊值,將所述測試圖 像的數據量乘W所述第二比值,獲得第二負載闊值;
[0111] 所述觸發單元,具體可用于:
[0112] 如果所述待解碼數據的數據量大于所述第一負載闊值,則在解碼過程中的IDCT 處理環節,觸發執行所述創建多個子線程及后續步驟;
[0113] 如果所述待解碼數據的數據量大于所述第二負載闊值,則在解碼過程中的上采樣 及顏色空間轉換處理環節,觸發執行所述創建多個子線程及后續步驟。
[0114] 進一步的,測試圖像W及所述指定圖像的數據量可通過對應圖像的寬度與高度的 乘積確定。
[0115] 其中,當所述指定圖像的格式為JPEG格式時,
[0116] 所述解碼數據劃分單元,具體可用于:
[0117] 在解碼過程中的反向離散余弦變換IDCT處理環節,W組成所述待解碼數據的最 小編碼單元MCU塊為單位劃分數據單元;在上采樣及顏色空間轉換處理環節,W組成所述 待解碼數據的像素行為單位劃分數據單元。
[0118] 在實際應用中,還可包括:
[0119] 瀏覽請求發送單元,用于在接收對指定圖像進行解碼的請求之前,向服務器發送 商品對象的瀏覽請求;
[0120] 頁面信息接收單元,用于接收所述服務器返回的包含有商品對象圖片信息的頁面 信息,在顯示該頁面信息的過程中,接收所述對指定圖像進行解碼的請求。
[0121] 通過W上的實施方式的描述可知,本領域的技術人員可W清楚地了解到本申請可 借助軟件加必需的通用硬件平臺的方式來實現。基于送樣的理解,本申請的技術方案本質 上或者說對現有技術做出貢獻的部分可W W軟件產品的形式體現出來,該計算機軟件產品 可W存儲在存儲介質中,如R0M/RAM、磁碟、光盤等,包括若干指令用W使得一臺計算機設備 (可W是個人計算機,服務器,或者網絡設備等)執行本申請各個實施例或者實施例的某些 部分所述的方法。
[0122] 本說明書中的各個實施例均采用遞進的方式描述,各個實施例之間相同相似的部 分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對于系統或 系統實施例而言,由于其基本相似于方法實施例,所W描述得比較簡單,相關之處參見方法 實施例的部分說明即可。W上所描述的系統及系統實施例僅僅是示意性的,其中所述作為 分離部件說明的單元可W是或者也可W不是物理上分開的,作為單元顯示的部件可W是或 者也可W不是物理單元,即可W位于一個地方,或者也可W分布到多個網絡單元上。可W根 據實際的需要選擇其中的部分或者全部模塊來實現本實施例方案的目的。本領域普通技術 人員在不付出創造性勞動的情況下,即可W理解并實施。
[012