對圖像進行解碼的方法及裝置的制造方法
【技術領域】
[0001] 本申請涉及圖像解碼技術領域,特別是涉及對圖像進行解碼的方法及裝置。
【背景技術】
[0002] 目前,在很多的移動終端應用程序中,對圖像進行解碼道染是經常用到的處理技 術,尤其對于淘寶、天貓等用于展示商品的移動應用來說,與文字相比,圖片可承載更多的 商品信息,因為圖片不但可W給用戶提供非常直觀、快捷的信息,還可W從不同角度來展示 商品的概貌或者細節信息,因此,在移動終端設備上,對圖片進行解碼道染的速率是移動應 用程序性能的一個重要指標。
[0003] 在現有的移動終端設備中,為了提高對圖片進行解碼的速率,通常可W使用 SIMD (Single Instruction Multiple Data,單指令多數據流指令集)機制對解碼過程進行 加速。其中,所謂SIMD是指一個處理器處理多個平行的處理微元,對一組數據(又稱"數據 矢量")中的每一個分別執行相同的操作的一組指令集,該指令集可實現空間上的并行性。
[0004] SIMD通過上述并行性的特點能夠提高圖片的解碼速率,但是,送種并行處理僅限 于在單個處理器內部進行。然而,由于移動終端設備對于功耗的限制,移動終端設備的單核 處理器的主頻不能無節制的提高,為了加快處理器的處理能力,越來越多的移動終端設備 中部署了多核處理器(比如,4核CPU、8核CPU等)。顯然,即使移動終端設備中部署了多 核處理器,在使用SIMD技術對圖像進行解碼時,也只能使用同一個處理器對同一張圖片進 行解碼,無法充分利用到多核處理器的并行處理能力。
[0005] 另一方面,化enMP的pen Multi-Processing,多線程)是一套支持跨平臺共享內存 方式的多線程并發的編程接口,該技術的宗旨是,通過多線程并發的方式實現多核處理器 之間的并行處理。隨著移動設備上多核處理器的普及,利用多線程調度多核處理器針對多 媒體數據進行并行化處理成為了研究熱點。但是,關于如何在移動終端設備上運用該技術 實現對圖像解碼過程的加速,現有技術中尚未有明確的技術方案。
[0006] 總之,如何充分利用移動終端設備上多核處理器的并行處理能力,W進一步提高 圖像的解碼速率,成為迫切需要本領域技術人員解決的技術問題。
【發明內容】
[0007] 本申請實施例提供了對圖像進行解碼的方法及裝置,可在對圖像進行解碼的過程 中充分利用移動終端設備上的多核處理器的并行處理能力,能夠提高圖像的解碼效率。
[000引本申請提供了如下方案:
[0009] 一種對圖像進行解碼的方法,包括:
[0010] 接收對指定圖像進行解碼的請求;
[0011] 按照所述指定圖像的待解碼數據的數據組成結構,將所述待解碼數據劃分為多個 數據單元;
[0012] 將每個數據單元內部的數據進行并行處理,W便在數據單元內部進行單指令多數 據流的并行處理;
[0013] 創建多個子線程,并將各個數據單元分發到各個子線程中,W便利用當前終端設 備內部署的多核處理器在不同的數據單元之間進行多核多線程的并行處理。
[0014] 一種對圖像進行解碼的裝置,包括:
[0015] 解碼請求接收單元,用于接收對指定圖像進行解碼的請求;
[0016] 解碼數據劃分單元,用于按照所述指定圖像的待解碼數據的數據組成結構,將所 述待解碼數據劃分為多個數據單元;
[0017] 第一并行化處理單元,用于將每個數據單元內部的數據進行并行處理,W便在數 據單元內部進行單指令多數據流的并行處理;
[0018] 第二并行化處理單元,用于創建多個子線程,并將各個數據單元分發到各個子線 程中,W便利用當前終端設備內部署的多核處理器在不同的數據單元之間進行多核多線程 的并行處理。
[0019] 根據本申請提供的具體實施例,本申請公開了 W下技術效果:
[0020] 通過本申請實施例,可將請求解碼的圖像的待解碼數據劃分為多個數據單元,對 數據單元內部進行單指令多數據流的并行處理且對在不同數據單元之間進行多核多線程 的并行處理,W實現在對圖像解碼的過程中充分利用移動終端設備上的多核處理器的并行 處理能力,將單指令多數據流并行處理方式與多核多線程并行處理方式相結合,W有效提 高圖像的解碼效率。
[0021] 當然,實施本申請的任一產品并不一定需要同時達到W上所述的所有優點。
【附圖說明】
[0022] 為了更清楚地說明本申請實施例或現有技術中的技術方案,下面將對實施例中所 需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請的一些實施 例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可W根據送些附圖獲 得其他的附圖。
[0023] 圖1是本申請實施例提供的方法的流程圖;
[0024] 圖2時本申請實施例提供的另一方法流程圖;
[00巧]圖3是本申請實施例提供的裝置的示意圖。
【具體實施方式】
[0026] 下面將結合本申請實施例中的附圖,對本申請實施例中的技術方案進行清楚、完 整地描述,顯然,所描述的實施例僅僅是本申請一部分實施例,而不是全部的實施例。基于 本申請中的實施例,本領域普通技術人員所獲得的所有其他實施例,都屬于本申請保護的 范圍。
[0027] 在本申請實施例中,為了提高圖像解碼的效率,可充分利用移動終端設備上的多 核處理器的并行處理能力,在解碼過程中將單指令多數據流并行處理方式與多核多線程并 行處理方式相結合對數據進行處理。具體實現時,可將單幅圖像劃分為多個數據單元,對數 據單元內部進行單指令多數據流的并行處理,在不同數據單元之間進行多核多線程的并行 處理,W充分利用移動設備上的多核處理器的并行處理能力,從而提高移動終端設備的圖 像解碼效率。下面對具體的實現方式進行詳細的介紹。
[002引參見圖1,本申請實施例首先提供了一種對圖像進行解碼的方法,該方法具體可W 包括W下步驟:
[002引 SlOl ;接收對指定圖像進行解碼的請求;
[0030] 該步驟中接收到的請求可W是上層代碼發送的,例如,瀏覽器等應用的前端代碼 等。具體的指定圖像一般是指一幅圖像,也就是說本申請實施例中的各個步驟,描述的是對 單張圖像進行解碼的過程,例如,某商品對象的某個描述圖片等。
[0031] 在實際應用中,該方法可W應用于電子商務交易平臺中對商品對象圖片的展示過 程,或者其他圖片相關應用軟件、程序等對圖片的展示過程。在對商品對象圖像進行展示的 情況下,客戶端可W向服務器發送商品對象的瀏覽請求,之后可W接收到服務器返回的包 含有商品對象圖片信息的頁面信息,在顯示該頁面信息的過程中,就可W接收到上層代碼 對指定圖像進行解碼的請求,其中,該指定圖像就可W是待顯示的各個商品對象圖片中的 其中一個,在頁面中包含有多個商品對象圖片的情況下,每個商品對象圖片都可W按照本 申請實施例的方法進行顯示。
[0032] S102;按照所述指定圖像的待解碼數據的數據組成結構,將所述待解碼數據劃分 為多個數據單元;
[0033] 在接收到解碼請求之后,在本實施例中,可W首先確定出圖像的待解碼數據,并將 該待解碼數據劃分為多個數據單元。劃分多個數據單元的目的就是為了后續使用單指令多 數據流W及多核多線程的方式對該圖像進行解碼,W提高解碼速度。其中,具體在將待解碼 數據劃分成數據單元時,可W W輸入到解碼器的待解碼數據的數據組成結構為依據進行, 因為有些處理適合進行并行化處理,而有些則可能不適合。例如,對于JPEG格式的圖像來 說,其中,對MCU塊進行huffman解碼或算術解碼的過程,由于存在數據處理的依賴關聯,因 此不適用并行化化處理,在本申請實施例中,就可W將送部分操作按照常規的串行處理來 進行。而在后續的IDCT過程中,輸入到解碼器的待解碼數據由一個個的MCU(最小編碼單 元)塊組成,并且,每個MCU塊內部的數據在進行IDCT變換時,需要處理的數據量都比較 大,存在密集運算,并且運算過程中,數據處理中不存在依賴關系,因此,適合做單指令多數 據流的并行處理,而MCU塊之間則適合做多核多線程的并行處理,因此,可W W MCU塊為單 位來劃分數據單元;在上采樣及顏色空間轉換處理環節,輸入到解碼器的待解碼