每 一行的首部,根據公式:〇ffset0 = bitoffset0/8*8,計算得到每一行首部碼流字節對齊偏 移off setO;其中,bitoff setO為緊鄰所述解碼圖像左邊界的索引單元中第一個最小編碼單 元左上角頂點像素點對應Y分量在所述整幀圖像的碼流中的比特位置; 根據公式:13;11:_3(1(16(1 = 13;[1:(^€861:0-(^€861:0,計算每一行首部對齊增加的比特位13;[1:_ added; 以緊鄰所述解碼圖像右邊界的索引單元中第一個最小編碼單元的位置作為所述解碼 圖像每一行的尾部,根據公式:〇ffsetl = (bitoffset8+7)/8*8,計算得到每一行尾部碼流 字節對齊偏移offsetl;其中,bitoffset8為緊鄰所述解碼圖像右邊界的索引單元中第一個 最小編碼單元左上角頂點像素點對應Y分量在所述整幀圖像的碼流中的比特位置; 根據公式:imcu_bitlength = offsetl_offsetO,計算得到所述解碼圖像中每一行的碼 流長度 imcu_b i 11 ength; 根據公式:imcu_offset = bit_added+vbv_offset,計算得到所述解碼圖像中每一行的 碼流偏移imcu_offs e t; 對所述解碼圖像進行碼流拼接。7. 根據權利要求6所述的方法,其特征在于,所述對所述解碼圖像進行碼流拼接,包括 如下步驟: 由所述解碼圖像的首行碼流開始,并由所述數據存儲模塊的起始地址作為初始導入位 置,將所述解碼圖像每一行的碼流以字節為單位導入所述數據存儲模塊中; 判斷當前行導入所述數據存儲模塊中的碼流最后一個字節是否為OxFF; 若是,則在當前行導入所述數據存儲模塊中的碼流尾部增加一個0x00字節,并更新所 述當前行的碼流長度為:imcu_bi11 ength等于imcu_bi11 ength+8; 根據公式:vbv_offset = vbv_offset+imcu_bitlength,計算下一行碼流導入數據存儲 模塊的起始地址相對于整個數據存儲模塊的起始地址的偏移; 根據所述解碼圖像的全部碼流導入所述數據存儲模塊狀態,控制碼流導入過程的狀 ??τ 〇8. 根據權利要求7所述的方法,其特征在于,所述根據所述解碼圖像的全部碼流導入所 述數據存儲模塊狀態,控制碼流導入過程的狀態,包括如下步驟: 判斷所述解碼圖像的碼流是否全部導入所述數據存儲模塊; 若是,則停止碼流拼接修復; 若否,則返回繼續執行將所述解碼圖像每一行對應的區域的碼流以字節為單位導入所 述數據存儲模塊中的步驟。9. 根據權利要求1所述的方法,其特征在于,所述根據所述子圖像索引表,對所述解碼 圖像進行解碼,包括如下步驟: 實時判斷所述解碼圖像中的當前行是否需要解碼; 當判斷出所述解碼圖像中的當前行需要解碼時,讀取當前行對應的子圖像索引表,由 所述子圖像索引表中獲取當前行的碼流對應的碼流偏移、碼流長度、第二直流分量和第二 復位序號; 根據解碼圖像中當前行的碼流對應的碼流偏移、碼流長度、第二直流分量和第二復位 序號,依次對當前行中每個索引單元中的最小編碼單元進行熵解碼; 判斷完成熵解碼的當前最小編碼單元是否為所述實際顯示區域邊界之外的最小編碼 單元; 若是,則根據當前行是否為所述解碼圖像的最后一行,控制對所述解碼圖像的解碼的 狀態; 若否,則對所述當前最小編碼單元進行反掃描、反量化、反變換、裁剪和縮放后得到相 應的解碼結果,并存儲所述解碼結果。10. -種解碼器,其特征在于,包括整幀索引表建立模塊、實際顯示區域確定模塊、子圖 像索引表建立模塊、子圖像解碼模塊和數據存儲模塊; 所述整幀索引表建立模塊,被配置為對與顯示需求信號相應的整幀圖像進行熵解碼, 建立相應的整幀索引表;其中,所述整幀索引表包括:所述整幀圖像中每個索引單元對應的 碼流位置、第一直流分量以及第一復位序號;所述索引單元為所述整幀圖像中固定間隔內 包含預設個數的最小編碼單元的集合; 所述實際顯示區域確定模塊,被配置為根據所述顯示需求信號計算圖像解碼塊大小, 并根據計算得到的所述圖像解碼塊大小分割所述整幀圖像,確定所述整幀圖像中與所述顯 示需求信號相應的實際顯示區域; 所述子圖像索引表確定模塊,被配置為根據所述實際顯示區域由所述整幀圖像中選擇 相應的解碼圖像;并根據所述整幀索引表建立子圖像索引表,同時對所述解碼圖像進行碼 流拼接;其中,所述子圖像索引表包括:所述解碼圖像中每一行碼流對應的碼流偏移、碼流 長度、第二直流分量和第二復位序號; 所述子圖像解碼模塊,被配置為根據所述子圖像索引表,對所述解碼圖像進行解碼; 所述數據存儲模塊,被配置為存儲所述整幀索引表和所述子圖像索引表。11. 根據權利要求10所述的解碼器,其特征在于,所述整幀索引表建立模塊包括解析設 定單元和解碼計數單元;所述數據存儲模塊包括第一存儲單元; 所述解析設定單元,被配置為解析所述整幀圖像的文件頭,獲取復位間隔;并設定固定 間隔的當前索引單元中的最小編碼單元個數為預設個數; 所述解碼計數單元,被配置為由所述整幀圖像的首行編碼單元開始,按照從左到右的 順序依次對每個最小編碼單元進行熵解碼并計數; 所述第一存儲單元,被配置為根據對所述最小編碼單元的計數,存儲每個所述索引單 元中第一個最小編碼單元左上角頂點像素點對應Y分量在所述整幀圖像的碼流中的比特位 置,以及每個所述索引單元的前一個索引單元中最后一個最小編碼單元中右下角基本塊的 左上角頂點像素點對應的Y分量的直流分量、Cb分量的直流分量和Cr分量的直流分量,以及 每個所述索引單元中第一個最小編碼單元在直流信號復位周期中的序號; 其中,每個所述索引單元中第一個最小編碼單元左上角頂點像素點對應Y分量在所述 整幀圖像的碼流中的比特位置為所述整幀圖像中每個索引單元對應的碼流位置; 每個所述索引單元前一個索引單元中最后一個最小編碼單元中右下角基本塊的左上 角頂點像素點對應的Y分量的直流分量、Cb分量的直流分量和Cr分量的直流分量為所述整 幀圖像中每個索引單元對應的第一直流分量; 每個最小編碼單元中的一個8x8大小的像素塊為所述基本塊; 每個所述索引單元中第一個最小編碼單元在直流信號復位周期中的序號為所述整幀 圖像中每個索引單元對應的第一復位序號。12. 根據權利要求10所述的解碼器,其特征在于,所述子圖像索引表建立模塊包括第一 獲取單元和第一計算單元;所述數據存儲模塊包括第二存儲單元; 所述第一獲取單元,被配置為讀取所述整幀索引表,獲取緊鄰所述解碼圖像左邊界的 索引單元對應的碼流位置、第一直流分量以及第一復位序號,以及緊鄰所述解碼圖像右邊 界的索引單元對應的碼流位置; 所述第一計算單元,被配置為根據緊鄰所述解碼圖像左邊界的索引單元對應的碼流位 置,以及緊鄰所述解碼圖像右邊界的索引單元對應的碼流位置,計算得到所述解碼圖像每 一行碼流對應的碼流偏移和碼流長度,作為子圖像索引表中該行碼流對應的碼流偏移和碼 流長度; 所述第二存儲單元,被配置為存儲所述解碼圖像每一行中緊鄰所述解碼圖像左邊界的 索引單元對應的第一直流分量和第一復位序號分別作為所述解碼圖像中每一行碼流對應 的第二直流分量和第二復位序號,以及所述解碼圖像每一行碼流對應的碼流偏移和碼流長 度作為所述子圖像索引表。13. 根據權利要求12所述的解碼器,其特征在于,所述第一計算單元包括初始化子單 元、首部偏移計算子單元、尾部偏移計算子單元、碼流長度計算子單元和碼流偏移計算子單 元; 所述初始化子單元,被配置為初始化所述解碼圖像中首行碼流導入數據存儲模塊的起 始地址相對于整個數據存儲模塊的起始地址的偏移vbv_off set為0; 所述首部偏移計算子單元,被配置為以緊鄰所述解碼圖像左邊界的索引單元中第一個 最小編碼單元作為所述解碼圖像每一行的首部,根據公式:〇ffset0 = bitoffset0/8*83+ 算得到每一行首部碼流字節對齊偏移offsetO ;并根據公式:根據公式:bit_added = bitoff set〇-〇ff setO,計算每一行首部對齊增加的比特位bit_added;其中,bitoff setO為 緊鄰所述解碼圖像左邊界的索引單元中第一個最小編碼單元左上角頂點像素點對應Y分量 在所述整幀圖像的碼流中的比特位置; 所述尾部偏移計算子單元,被配置為以緊鄰所述解碼圖像右邊界的索引單元中第一個 最小編碼單元的位置作為所述解碼圖像每一行的尾部,根據公式:off set 1 = (bi toff set8+ 7)/8*8,計算得到每一行尾部碼流字節對齊偏移off set 1;其中,bitoff set8為緊鄰所述解 碼圖像右邊界的索引單元中第一個最小編碼單元左上角頂點像素點對應Y分量在所述整幀 圖像的碼流中的比特位置; 所述碼流長度計算子單元,被配置為根據公式:imcu_bitlength = offset 1-offsetO, 計算得到所述解碼圖像中每一行的碼流長度imcu_bitlength; 所述碼流偏移計算子單元,被配置為根據公式:imcu_offset = bit_added+vbv_ offs e t,計算得到所述解碼圖像中每一行的碼流偏移imcu_of f s e t。14. 根據權利要求13所述的解碼器,其特征在于,所述子圖像索引表建立模塊還包括碼 流修復單元; 所述碼流修復單元包括導入子單元、判斷子單元和設置子單元; 所述導入子單元,被配置為由所述解碼圖像的首行碼流開始,并由所述數據存儲模塊 的起始地址作為初始導入位置,將所述解碼圖像每一行的碼流以字節為單位導入所述數據 存儲模塊中; 判斷子單元,被配置為判斷當前行導入所述數據存儲模塊中的碼流最后一個字節是否 為OxFF; 設置子單元,被配置為所述判斷子單元判斷出當前行導入所述數據存儲模塊中的碼流 最后一個字節是OxFF時,在當前行導入所述數據存儲模塊中的碼流尾部增加一個0x00字 節,并更新所述當前行的碼流長度為:imcu_bitlength等于imcu_bitlength+8;并根據公 式:vbv_off set = vbv_offset+imcu_bit length,設置下一行碼流導入數據存儲模塊的起始 地址相對于整個數據存儲模塊的起始地址的偏移;并根據所述解碼圖像的全部碼流導入所 述數據存儲模塊狀態,控制碼流導入過程的狀態。15. 根據權利要求10所述的解碼器,其特征在于,還包括控制模塊、熵解碼模塊、反掃描 反量化模塊、反變換模塊和裁剪縮放模塊; 所述子圖像解碼模塊包括實時判斷單元、讀取單元和越界判斷單元; 所述控制模塊,被配置為控制所述熵解碼模塊、所述反掃描反量化模塊、所述反變換模 塊、所述裁剪縮放模塊和所述子圖像解碼模塊的啟動和停止; 所述實時判斷單元,被配置為實時判斷所述解碼圖像中的當前行是否需要解碼; 所述讀取單元,被配置為當所述實時判斷單元判斷出所述解碼圖像中的當前行需要解 碼時,讀取所述數據存儲模塊中存儲的當前行對應的子圖像索引表,由所述子圖像索引表 中獲取當前行的碼流對應的碼流偏移、碼流長度、直流分量和復位序號; 所述熵解碼模塊,被配置為根據當前行的碼流對應的碼流偏移、碼流長度、第二直流分 量和第二復位序號,依次對每個索引單元中的最小編碼單元進行熵解碼; 所述越界判斷單元,被配置為判斷完成熵解碼的當前最小編碼單元是否為所述實際顯 示區域邊界之外的最小編碼單元; 所述熵解碼模塊、所述反掃描反量化模塊、所述反變換模塊和所述裁剪縮放模塊,分別 被配置為當所述越界判斷單元判斷出所述當前最小編碼單元為所述實際顯示區域邊界之 內的最小編碼單元時,對所述當前最小編碼單元分別進行反掃描、反量化、反變換、裁剪和 縮放,得到相應的解碼結果; 所述數據存儲模塊,還被配置為存儲所述解碼結果。
【專利摘要】本發明公開了一種JPEG圖像解碼方法和解碼器,其中方法包括如下步驟:對與顯示需求信號相應的整幀圖像進行熵解碼,建立相應的整幀索引表;根據顯示需求信號計算圖像解碼塊大小,并根據計算得到的圖像解碼塊大小分割整幀圖像,確定整幀圖像中與顯示需求信號相應的實際顯示區域;根據實際顯示區域由整幀圖像中選擇相應的解碼圖像;并根據整幀索引表建立子圖像索引表,同時對解碼圖像進行碼流拼接;根據子圖像索引表,對解碼圖像進行解碼。其實現了分塊解碼的目的,避免了對整幀圖像的全部解碼,因此節省了解碼時間,提高了圖像解碼效率。最終有效解決了傳統的圖像解碼方法的解碼效率較低的問題。
【IPC分類】H04N19/91, H04N19/44, H04N19/14, H04N19/176
【公開號】CN105578194
【申請號】CN201610014062
【發明人】涂尚斌, 王文函
【申請人】珠海全志科技股份有限公司
【公開日】2016年5月11日
【申請日】2016年1月6日