引表,對解碼圖像進行解碼。
[0178] 數據存儲模塊150,被配置為存儲整帖索引表和子圖像索引表。
[0179] 本發明提供的解碼器100對圖像進行解碼過程中,通過所建立的子圖像索引表,不 需要解碼整帖圖像,只需根據顯示需求信號采用硬件解碼,由所建立的子圖像索引表解碼 相應的實際顯示區域即可。由此其節省了大量的解碼時間,從而有效的提高了解碼效率,最 終提升了用戶體驗。
[0180] 其中,需要說明的是,參見圖8,作為本發明提供的解碼器100的一具體實施例,整 帖索引表建立模塊110包括解析設定單元和解碼計數單元(圖中均未示出)。數據存儲模塊 150包括第一存儲單元(圖中未示出)。
[0181] 解析設定單元,被配置為解析整帖圖像的文件頭,獲取復位間隔;并設定固定間隔 的當前索引單元中的最小編碼單元個數為預設個數。解碼計數單元,被配置為由整帖圖像 的首行編碼單元開始,按照從左到右的順序依次對每個最小編碼單元進行賭解碼并計數。 第一存儲單元,被配置為根據對最小編碼單元的計數,存儲每個索引單元中第一個最小編 碼單元左上角頂點像素點對應Y分量在整帖圖像的碼流中的比特位置,W及每個索引單元 的前一個索引單元中最后一個最小編碼單元中右下角基本塊的左上角頂點像素點對應的Y 分量的直流分量、饑分量的直流分量和Cr分量的直流分量,W及每個索引單元中第一個最 小編碼單元在直流信號復位周期中的序號。其中,每個索引單元中第一個最小編碼單元左 上角頂點像素點對應Y分量在所述整帖圖像的碼流中的比特位置為所述整帖圖像中每個索 引單元對應的碼流位置。每個索引單元的前一個索引單元中最后一個最小編碼單元中右下 角基本塊的左上角頂點像素點對應的Y分量的直流分量、Cb分量的直流分量和&分量的直 流分量為整帖圖像中每個索引單元對應的第一直流分量。每個索引單元中第一個最小編碼 單元在直流信號復位周期中的序號為整帖圖像中每個索引單元對應的第一復位序號。
[0182] 另外,子圖像索引表建立模塊130包括第一獲取單元和第一計算單元。相應的,數 據存儲模塊150包括第二存儲單元。其中:
[0183] 第一獲取單元,被配置為讀取所述整帖索引表,由所述整帖索引表中獲取所述解 碼圖像每一行中,緊鄰所述解碼圖像左邊界的索引單元對應的碼流位置、第一直流分量W 及第一復位序號,W及緊鄰所述解碼圖像右邊界的索引單元對應的碼流位置。第一計算單 元,配置為根據緊鄰所述解碼圖像左邊界的索引單元對應的碼流位置,W及緊鄰所述解碼 圖像右邊界的索引單元對應的碼流位置,計算得到所述解碼圖像每一行碼流對應的碼流偏 移和碼流長度。第二存儲單元,被配置為存儲所述解碼圖像每一行中緊鄰所述解碼圖像左 邊界的索引單元對應的第一直流分量和第一復位序號分別作為所述解碼圖像中每一行碼 流對應的第二直流分量和第二復位序號,W及所述解碼圖像每一行碼流對應的碼流偏移和 碼流長度作為所述子圖像索引表。
[0184] 進一步的,第一計算單元包括初始化子單元、首部偏移計算子單元、尾部偏移計算 子單元、碼流長度計算子單元和碼流偏移計算子單元。其中,初始化子單元,被配置為初始 化解碼圖像中首行編碼單元導入數據存儲模塊150的起始地址相對于整個數據存儲模塊 150的起始地址的偏移vbv_offset為0。首部偏移計算子單元,被配置為W緊鄰所述解碼圖 像左邊界的索引單元中第一個最小編碼單元作為所述解碼圖像每一行的首部,根據公式: offset0 = bitoffset0/8*8,計算得到每一行首部碼流字節對齊偏移offset0;并根據公式: bit_added = bitoffset〇-〇ff setO,計算每一行首部對齊增加的比特位bit_added;其中, MtoffsetO為緊鄰所述解碼圖像左邊界的索引單元中第一個最小編碼單元左上角頂點像 素點對應Y分量在所述整帖圖像的碼流中的比特位置。尾部偏移計算子單元,被配置為W緊 鄰所述解碼圖像右邊界的索引單元中第一個最小編碼單元的位置作為所述解碼圖像每一 行的尾部,根據公式:offsetl = (bitoffset8+7)/8*8,計算得到每一行尾部碼流字節對齊 偏移Offsetl;其中,bitoffsetS為緊鄰所述解碼圖像右邊界的索引單元中第一個最小編碼 單元左上角頂點像素點對應Y分量在所述整帖圖像的碼流中的比特位置。碼流長度計算子 單元,被配置為根據公式:imcu_bitlength = Offsetl-Offseto,計算得到解碼圖像中每一 行的碼流長度imcu_bitlength。碼流偏移計算子單元,被配置為根據公式:imcu_offset = bit_added+vbv_offset,計算得到解碼圖像中每一行的碼流偏移imcu_offset。
[0185] 更進一步的,作為本發明的解碼器100的一具體實施例,其子圖像索引表模塊130 還包括碼流修復單元。具體的,碼流修復單元包括導入子單元、判斷子單元和設置子單元 (圖中未示出)。
[0186] 其中,導入子單元,被配置為由解碼圖像的首行編碼單元開始,并由數據存儲模塊 150的起始位置作為初始導入位置,將解碼圖像每一行的碼流W字節為單位導入數據存儲 模塊150中。判斷子單元,被配置為判斷當前行導入數據存儲模塊150中的碼流最后一個字 節是否為OxFF。設置子單元,被配置為第一判斷子單元判斷出當前行導入數據存儲模塊150 中的碼流最后一個字節是OxFF時,在當前行導入數據存儲模塊150中的碼流尾部增加一個 OxOO字節,并更新當前行的碼流長度為:imcu_bitlength等于imcu_bitlength+8;并更新 vbv_off set = vbv_offset+imcu_bit length,設置下一行碼流導入數據存儲模塊的起始地 址相對于整個數據存儲模塊的起始地址的偏移。根據解碼圖像的全部碼流導入數據存儲模 塊150狀態,控制碼流導入過程的狀態。
[0187] 優選的,參見圖8,作為本發明的解碼器100的一具體實施例,其還包括控制模塊 160、賭解碼模塊170、反掃描反量化模塊180、反變換模塊190和裁剪縮放模塊200。同時,子 圖像解碼模塊140包括實時判斷單元、讀取單元和越界判斷單元。其中:
[0188] 控制模塊160,被配置為控制賭解碼模塊170、反掃描反量化模塊180、反變換模塊 190、裁剪縮放模塊200和子圖像解碼模塊140的啟動和停止。實時判斷單元,被配置為實時 判斷解碼圖像中的當前行是否需要解碼。讀取單元,被配置為當實時判斷單元判斷出解碼 圖像中的當前行需要解碼時,讀取數據存儲模塊150中存儲的當前行對應的子圖像索引表, 由所述子圖像索引表中獲取當前行的碼流對應的碼流偏移、碼流長度、直流分量和復位序 號。賭解碼模塊170,被配置為根據當前行的碼流對應的碼流偏移、碼流長度、直流分量和復 位序號,依次對每個索引單元中的最小編碼單元進行賭解碼。越界判斷單元,被配置為判斷 完成賭解碼的當前最小編碼單元是否為實際顯示區域邊界之外的最小編碼單元。賭解碼模 塊170、反掃描反量化模塊180、反變換模塊190和裁剪縮放模塊200,分別被配置為當越界判 斷單元判斷出當前最小編碼單元為實際顯示區域邊界之內的最小編碼單元時,對當前最小 編碼單元分別進行反掃描、反量化、反變換、裁剪和縮放,得到相應的解碼結果。數據存儲模 塊150,還被配置為存儲解碼結果。
[0189] W上所述實施例僅表達了本發明的幾種實施方式,其描述較為具體和詳細,但并 不能因此而理解為對本發明專利范圍的限制。應當指出的是,對于本領域的普通技術人員 來說,在不脫離本發明構思的前提下,還可W做出若干變形和改進,運些都屬于本發明的保 護范圍。因此,本發明專利的保護范圍應W所附權利要求為準。
【主權項】
1. 一種JPEG圖像解碼方法,其特征在于,包括如下步驟: 對與顯示需求信號相應的整幀圖像進行熵解碼,建立相應的整幀索引表;其中,所述整 幀索引表包括:所述整幀圖像中每個索引單元對應的碼流位置、第一直流分量以及第一復 位序號;所述索引單元為所述整幀圖像中固定間隔內包含預設個數的最小編碼單元的集 合; 根據所述顯示需求信號計算圖像解碼塊大小,并根據計算得到的所述圖像解碼塊大小 分割所述整幀圖像,確定所述整幀圖像中與所述顯示需求信號相應的實際顯示區域; 根據所述實際顯示區域由所述整幀圖像中選擇相應的解碼圖像;并根據所述整幀索引 表建立子圖像索引表,同時對所述解碼圖像進行碼流拼接;其中,所述子圖像索引表包括: 所述解碼圖像中每一行碼流對應的碼流偏移、碼流長度、第二直流分量和第二復位序號; 根據所述子圖像索引表,對所述解碼圖像進行解碼。2. 根據權利要求1所述的方法,其特征在于,所述對與顯示需求信號相應的整幀圖像進 行熵解碼,建立相應的整幀索引表,包括如下步驟: 解析所述整幀圖像的文件頭,獲取復位間隔;并設定固定間隔的當前索引單元中的最 小編碼單元個數為預設個數; 由所述整幀圖像的首行編碼單元開始,按照從左到右的順序依次對每個最小編碼單元 進行熵解碼并計數; 根據對所述最小編碼單元的計數,記錄每個所述索引單元中第一個最小編碼單元左上 角頂點像素點對應Y分量在所述整幀圖像的碼流中的比特位置,以及每個所述索引單元的 前一個索引單元中最后一個最小編碼單元中右下角基本塊的左上角頂點像素點對應的Y分 量的直流分量、Cb分量的直流分量和Cr分量的直流分量,以及每個所述索引單元中第一個 最小編碼單元在直流信號復位周期中的序號; 其中,每個所述索引單元中第一個最小編碼單元左上角頂點像素點對應Y分量在所述 整幀圖像的碼流中的比特位置為所述整幀索引表中的碼流位置; 每個所述索引單元的前一個索引單元中最后一個最小編碼單元中右下角基本塊的左 上角頂點像素點對應的Y分量的直流分量、Cb分量的直流分量和Cr分量的直流分量為所述 整幀索引表中的第一直流分量; 每個最小編碼單元中的一個8x8大小的像素塊為所述基本塊; 每個所述索引單元中第一個最小編碼單元在直流信號復位周期中的序號為所述整幀 索引表中的第一復位序號。3. 根據權利要求1所述的方法,其特征在于,所述根據所述顯示需求信號計算圖像解碼 塊大小,并根據計算得到的所述圖像解碼塊大小分割所述整幀圖像,確定所述整幀圖像中 與所述顯示需求信號相應的實際顯示區域,包括如下步驟: 根據所述顯示需求信號,獲取需要顯示區域的坐標和縮放倍數; 根據所述需要顯示區域的坐標和縮放倍數,計算所述圖像解碼塊大小; 根據所述圖像解碼塊大小分割所述整幀圖像,確定所述整幀圖像中與所述顯示需求信 號相應的實際顯示區域。4. 根據權利要求1所述的方法,其特征在于,所述根據所述實際顯示區域由所述整幀圖 像中選擇相應的解碼圖像,包括如下步驟: 分別以所述實際顯示區域的上邊界、下邊界、左邊界和右邊界為基準,確定所述整幀圖 像中緊鄰所述上邊界的一組索引單元、緊鄰下邊界的一組索引單元、緊鄰左邊界的一組索 引單元和緊鄰右邊界的一組索引單元; 將緊鄰左邊界的一組索引單元與緊鄰上邊界的一組索引單元的交點對應的最小編碼 單元的左上角頂點像素點的坐標位置標記為(left,top),將緊鄰右邊界的一組索引單元與 緊鄰下邊界的一組索引單元的交點對應的最小編碼單元的右下角頂點像素點的坐標位置 標記為(right,bottom); 以所述坐標位置為(left,top)的像素點的橫坐標為左邊界,縱坐標為上邊界,以所述 坐標位置為(right,bottom)的像素點的橫坐標為右邊界,縱坐標為下邊界圍成的區域作為 所述解碼圖像。5. 根據權利要求1所述的方法,其特征在于,所述根據所述整幀索引表建立子圖像索引 表,包括如下步驟: 讀取所述整幀索引表,獲取緊鄰所述解碼圖像左邊界的索引單元對應的碼流位置、第 一直流分量以及第一復位序號,以及緊鄰所述解碼圖像右邊界的索引單元對應的碼流位 置; 根據緊鄰所述解碼圖像左邊界的索引單元對應的碼流位置,以及緊鄰所述解碼圖像右 邊界的索引單元對應的碼流位置,計算得到所述解碼圖像每一行碼流對應的碼流偏移和碼 流長度,作為子圖像索引表中該行碼流對應的碼流偏移和碼流長度; 將所述解碼圖像每一行中緊鄰所述解碼圖像左邊界的索引單元對應的第一直流分量 和第一復位序號分別作為子圖像索引表中該行碼流對應的第二直流分量和第二復位序號。6. 根據權利要求5所述的方法,其特征在于,所述根據緊鄰所述解碼圖像左邊界的索引 單元對應的碼流位置,以及緊鄰所述解碼圖像右邊界的索引單元對應的碼流位置,計算得 到所述解碼圖像中每一行碼流對應的碼流偏移和碼流長度,包括如下步驟: 初始化所述解碼圖像中首行碼流導入數據存儲模塊的起始地址相對于整個數據存儲 模塊的起始地址的偏移vbv_off set為0; 以緊鄰所述解碼圖像左邊界的索引單元中第一個最小編碼單元作為所述解碼圖像