亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種數(shù)據(jù)壓縮和解壓縮的方法和裝置的制造方法

文檔序號:10573044閱讀:410來源:國知局
一種數(shù)據(jù)壓縮和解壓縮的方法和裝置的制造方法
【專利摘要】本發(fā)明公開了一種圖像壓縮和解壓縮裝置和方法,所述裝置包括差值計算模塊、殘差編碼模塊、壓縮數(shù)據(jù)指針生成模塊、壓縮數(shù)據(jù)指針解碼模塊、殘差解碼模塊和差值補(bǔ)償模塊,其中,差值計算模塊,被設(shè)置為進(jìn)行圖像分塊和差值計算;殘差編碼模塊,被設(shè)置為進(jìn)行殘差編碼并儲存編碼后的壓縮數(shù)據(jù);壓縮數(shù)據(jù)指針生成模塊,被設(shè)置為生成并存儲壓縮數(shù)據(jù)指針;壓縮數(shù)據(jù)指針解碼模塊,被設(shè)置為讀取壓縮數(shù)據(jù)指針;殘差解碼模塊,被設(shè)置為讀取壓縮數(shù)據(jù)并進(jìn)行殘差解碼;差值補(bǔ)償模塊,被設(shè)置為進(jìn)行差值補(bǔ)償,恢復(fù)出圖像所有像素塊的原始數(shù)據(jù)。本發(fā)明中在壓縮率和復(fù)雜度之間取得合理的折中,從而提高了圖像處理裝置存取外置存儲器中數(shù)據(jù)的效率。
【專利說明】
一種數(shù)據(jù)壓縮和解壓縮的方法和裝置
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及圖像處理及人工智能技術(shù)領(lǐng)域,特別是涉及一種圖像處理裝置存取外置存儲器中數(shù)據(jù)時的數(shù)據(jù)壓縮和解壓縮的方法和裝置。
【背景技術(shù)】
[0002]目前圖像信息的處理已經(jīng)越來越成為與人們生活緊密相關(guān)的基礎(chǔ)技術(shù),圖像中所包含的巨大信息量也成為人工智能技術(shù)領(lǐng)域的研究重點(diǎn)。從手機(jī)中的圖像增強(qiáng)、美顏功能,到圖像內(nèi)容的分類與理解,都離不開針對圖像的密集運(yùn)算。
[0003]當(dāng)利用GPU、DSP或者專用的圖像處理器等芯片處理圖像數(shù)據(jù)時,都需要從外置存儲器存取大量的圖像數(shù)據(jù),圖像處理芯片訪問外置存儲器的帶寬很容易成為圖像處理速度的瓶頸,并且成為圖像處理系統(tǒng)中功耗消耗量的很大一部分。目前解決這一瓶頸的主要方法是在圖像處理芯片和外置存儲器之間通過數(shù)據(jù)壓縮和解壓縮模塊,對寫入外置存儲器的數(shù)據(jù)進(jìn)行壓縮,減小寫入外部存儲器的數(shù)據(jù)量;當(dāng)從外置存儲器讀出數(shù)據(jù)時,進(jìn)行解壓縮,恢復(fù)出原始的圖像數(shù)據(jù)。
[0004]在上述的數(shù)據(jù)壓縮和解壓縮的過程中,圖像壓縮率越高,對外部存儲器的存取帶寬和功耗的減小越明顯。但是,現(xiàn)有技術(shù)中的圖像壓縮和解壓縮的算法往往比較復(fù)雜,盡管能夠提供更高的圖像壓縮率,但是會增加硬件的實(shí)現(xiàn)復(fù)雜度,提高了硬件成本和運(yùn)行功耗,并且由于需要較長的處理時間來進(jìn)行數(shù)據(jù)壓縮和解壓縮,增加了芯片訪問外置存儲器的延遲,反而使得圖像處理速度下降。因此,需要一種能夠?qū)D像數(shù)據(jù)進(jìn)行實(shí)時壓縮和解壓縮處理的方法,在壓縮率和復(fù)雜度之間取得合理的折中,從而提高圖像處理裝置存取外置存儲器中的圖像數(shù)據(jù)的效率。

【發(fā)明內(nèi)容】

[0005]鑒于上述問題,本發(fā)明提供了一種克服上述問題或者至少部分地解決上述問題的一種圖像處理裝置存取外置存儲器中數(shù)據(jù)時的數(shù)據(jù)壓縮和解壓縮的方法和裝置。
[0006]為了解決上述問題,本發(fā)明實(shí)施例公開了一種圖像壓縮和解壓縮裝置,包括差值計算模塊、殘差編碼模塊、壓縮數(shù)據(jù)指針生成模塊、壓縮數(shù)據(jù)指針解碼模塊、殘差解碼模塊和差值補(bǔ)償模塊,其中,
[0007]差值計算模塊,被設(shè)置為將圖像劃分為多個像素塊,再進(jìn)一步將各像素塊劃分為多個子像素塊以對各像素塊進(jìn)行差值計算,在將一像素塊劃分為多個子像素塊時,取該像素塊的中心部分為參考子像素塊,并保證該參考子像素塊中的至少一個像素被包含在所有該像素塊的其他子像素塊中,以使得該像素作為其他子像素塊的參考像素,然后取參考像素計算其余像素相對于該參考像素的差值;
[0008]殘差編碼模塊,被設(shè)置為將參考子像素塊的參考像素值存入外部存儲器,并且對各像素塊中每個子像素塊的其余像素的差值同時進(jìn)行定長編碼和變長編碼,并根據(jù)編碼后的數(shù)據(jù)大小選擇編碼后長度較短的數(shù)據(jù)儲存到外部存儲器中;
[0009]壓縮數(shù)據(jù)指針生成模塊,被設(shè)置為生成并存儲壓縮數(shù)據(jù)指針,如果已知圖像的遍歷方法為順序遍歷,跳過此步驟;否則,將每個像素塊編碼后的數(shù)據(jù)在外部存儲器中的地址指針也存入外部存儲器;
[0010]壓縮數(shù)據(jù)指針解碼模塊,被設(shè)置為讀取壓縮數(shù)據(jù)指針,如果已知圖像的遍歷方法為順序遍歷,跳過此步驟;否則,當(dāng)從外部存儲器讀取壓縮后的圖像并進(jìn)行解壓縮時,首先從外部存儲器讀取壓縮數(shù)據(jù)指針;
[0011]殘差解碼模塊,被設(shè)置為根據(jù)讀取壓縮數(shù)據(jù),并根據(jù)編碼過程中所選擇的編碼方式相對應(yīng)地對各子像素塊的差值進(jìn)行定長解碼或者變長解碼;
[0012]差值補(bǔ)償模塊,被設(shè)置為根據(jù)參考子像素塊的參考像素,以及其余各子像素塊的差值,進(jìn)行差值補(bǔ)償,恢復(fù)出圖像所有像素塊的原始數(shù)據(jù)。
[0013]本發(fā)明實(shí)施例還公開了一種圖像壓縮和解壓縮方法,所述方法具體包括如下步驟:
[0014](I)將圖像劃分為多個像素塊,再進(jìn)一步將各像素塊劃分為多個子像素塊以對各像素塊進(jìn)行差值計算,在將一像素塊劃分為多個子像素塊時,取該像素塊的中心部分為參考子像素塊,并保證該參考子像素塊中的至少一個像素被包含在所有該像素塊的其他子像素塊中,以使得該像素作為其他子像素塊的參考像素,然后取參考像素計算其余像素相對于該參考像素的差值;
[0015](2)將參考子像素塊的參考像素值存入外部存儲器,并且對各像素塊中每個子像素塊的其余像素的差值同時進(jìn)行定長編碼和變長編碼,并根據(jù)編碼后的數(shù)據(jù)大小選擇編碼后長度較短的數(shù)據(jù)儲存到外部存儲器中;
[0016](3)生成并存儲壓縮數(shù)據(jù)指針,如果已知圖像的遍歷方法為順序遍歷,跳過此步驟;否則,將每個像素塊編碼后的數(shù)據(jù)在外部存儲器中的地址指針也存入外部存儲器;
[0017](4)讀取壓縮數(shù)據(jù)指針,如果已知圖像的遍歷方法為順序遍歷,跳過此步驟;否則,當(dāng)從外部存儲器讀取壓縮后的圖像并進(jìn)行解壓縮時,首先從外部存儲器讀取壓縮數(shù)據(jù)指針;
[0018](5)根據(jù)讀取壓縮數(shù)據(jù),并根據(jù)編碼過程中所選擇的編碼方式相對應(yīng)地對各子像素塊的差值進(jìn)行定長解碼或者變長解碼;
[0019](6)根據(jù)參考子像素塊的參考像素,以及其余各子像素塊的差值,進(jìn)行差值補(bǔ)償,恢復(fù)出圖像所有像素塊的原始數(shù)據(jù)。
[0020]本發(fā)明包括以下優(yōu)點(diǎn):
[0021]本發(fā)明給出一種存取外置存儲器中的圖像數(shù)據(jù)時的數(shù)據(jù)壓縮和解壓縮的方法和裝置,減小了存取外部存儲器數(shù)據(jù)時的帶寬和功耗。
[0022]本發(fā)明在壓縮率和復(fù)雜度之間取得合理的折中,通過本發(fā)明的圖像壓縮和解壓縮的方法和裝置可以在存取外置存儲器中的圖像數(shù)據(jù)時,實(shí)現(xiàn)低成本、低功耗和高效率的有益技術(shù)效果。
[0023]同時本發(fā)明中所采用的圖像分塊和差值計算方式以及殘差編碼方式都進(jìn)一步減小了相對于原始圖像的數(shù)據(jù)量,在有益于硬件實(shí)現(xiàn)的同時達(dá)到了更好的壓縮效果。
【附圖說明】
[0024]圖1是本發(fā)明實(shí)施例中數(shù)據(jù)壓縮和解壓縮裝置的示意圖;
[0025]圖2A是本發(fā)明實(shí)施例中差值計算模塊中圖像分塊的示意圖;
[0026]圖2B是本發(fā)明實(shí)施例中差值計算模塊中差值計算的示意圖;
[0027]圖3是本發(fā)明實(shí)施例中殘差編碼模塊和殘差解碼模塊的具體結(jié)構(gòu)的示意圖;
[0028]圖4是本發(fā)明實(shí)施例中殘差編碼模塊的定長編碼示意圖;
[0029]圖5是本發(fā)明實(shí)施例中殘差編碼模塊的變長編碼示意圖;
[0030]圖6是本發(fā)明實(shí)施例中壓縮數(shù)據(jù)指針生成模塊生成壓縮數(shù)據(jù)指針的示意圖;
[0031]圖7是本發(fā)明實(shí)施例中存取外置存儲器的數(shù)據(jù)時的數(shù)據(jù)壓縮和解壓縮方法的流程圖。
【具體實(shí)施方式】
[0032]為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖和【具體實(shí)施方式】對本發(fā)明作進(jìn)一步詳細(xì)的說明。
[0033]參照圖1,為圖像處理裝置存取外置存儲器中數(shù)據(jù)時的數(shù)據(jù)壓縮和解壓縮裝置的示意圖。所述圖像壓縮和解壓縮裝置包括差值計算模塊101、殘差編碼模塊102、壓縮數(shù)據(jù)指針生成模塊103、壓縮數(shù)據(jù)指針解碼模塊104、殘差解碼模塊105和差值補(bǔ)償模塊106。
[0034]差值計算模塊101,被設(shè)置為進(jìn)行圖像分塊和差值計算。當(dāng)圖像處理模塊向外置存儲器寫入圖像數(shù)據(jù)時,將圖像劃分為多個像素塊,再進(jìn)一步將各像素塊劃分為多個子像素塊以對各像素塊進(jìn)行差值計算,在將一像素塊劃分為多個子像素塊時,取該像素塊的中心部分為參考子像素塊,并保證該參考子像素塊中的至少一個像素被包含在所有該像素塊的其他子像素塊中,以使得該像素作為其他子像素塊的參考像素。然后,取參考像素計算其余像素相對于該參考像素的差值。這種差值計算方式可以更進(jìn)一步地減小相對于原始圖像的數(shù)據(jù)量,進(jìn)而減少訪問外置存儲器的帶寬和功耗。
[0035]其中,如果劃分的該像素塊的數(shù)據(jù)全部為零值,則輸出一個特定標(biāo)記,不再對該像素塊進(jìn)行編碼。
[0036]上述子像素塊的劃分方式遵循了圖像的局部相關(guān)性原則,提高了各像素與其參考像素的相似度,能更好的實(shí)現(xiàn)對數(shù)據(jù)的壓縮。
[0037]更進(jìn)一步地,當(dāng)像素含有紅色R、綠色G、藍(lán)色B或者亮度、色差等多個通道的數(shù)據(jù)時,還可以對各個通道依次按照上述圖像分塊和差值計算的方式進(jìn)行處理。
[0038]殘差編碼模塊102,被設(shè)置為進(jìn)行殘差編碼并儲存編碼后的壓縮數(shù)據(jù)。具體為,將參考子像素塊的參考像素值存入外部存儲器,并且對各像素塊中每個子像素塊的其余像素的差值同時進(jìn)行定長編碼和變長編碼,并根據(jù)編碼后的數(shù)據(jù)大小選擇編碼后長度較短的數(shù)據(jù)儲存到外部存儲器中。
[0039]更進(jìn)一步地,當(dāng)子像素塊的各像素差值都為零時,殘差編碼步驟可以輸出一個特定標(biāo)記,而不需要再對每個像素的差值進(jìn)行編碼。
[0040]更進(jìn)一步地,在計算子像素塊中未與參考子像素塊相鄰的像素相對于參考像素的差值數(shù)據(jù)時,可以根據(jù)前面各個像素相對于參考像素的差值數(shù)據(jù)的大小自適應(yīng)的調(diào)整計算差值的方向。
[0041]更進(jìn)一步地,為了提高壓縮率,還可以選擇更靈活的編碼方式,例如當(dāng)子像素塊的各像素差值有一個或者多個不為零時,在對差值進(jìn)行變長編碼時,將差值分成高位和低位兩部分,對其中的低位部分進(jìn)行定長編碼,對其中的高位部分進(jìn)行變長編碼。
[0042]壓縮數(shù)據(jù)指針生成模塊103,被設(shè)置為生成并存儲壓縮數(shù)據(jù)指針。如果已知圖像的遍歷方法為非順序遍歷,或者未能事先確定圖像的遍歷方法,則將每個像素塊編碼后的數(shù)據(jù)在外部存儲器中的地址指針也存入外部存儲器。為了減少地址指針的記錄數(shù)量,也可以間隔多個像素塊,記錄其在外部存儲器中的地址指針。如果已知圖像的遍歷方法為順序遍歷,跳過此步驟。
[0043]壓縮數(shù)據(jù)指針解碼模塊104,被設(shè)置為讀取壓縮數(shù)據(jù)指針。當(dāng)從外部存儲器讀取壓縮后的圖像并進(jìn)行解壓縮時,如果已知圖像的遍歷方法為非順序遍歷,或者未能事先確定圖像的遍歷方法,則首先從外部存儲器讀取壓縮數(shù)據(jù)指針。如果已知圖像的遍歷方法為順序遍歷,跳過此步驟。
[0044]殘差解碼模塊105,被設(shè)置為讀取壓縮數(shù)據(jù)并對壓縮數(shù)據(jù)進(jìn)行殘差解碼。具體為,根據(jù)壓縮數(shù)據(jù)指針解碼模塊104讀取的壓縮數(shù)據(jù)指針信息或者直接從外部存儲器中依次讀取一個或多個像素塊的壓縮數(shù)據(jù),并且,除參考子像素塊的參考像素外,根據(jù)編碼過程中所選擇的編碼方式相對應(yīng)地對其余各子像素塊的差值進(jìn)行定長解碼或者變長解碼。
[0045]差值補(bǔ)償模塊106,被設(shè)置為進(jìn)行差值補(bǔ)償,恢復(fù)出圖像所有像素塊的原始數(shù)據(jù)。具體為,根據(jù)參考子像素塊的參考像素,以及其余各子像素塊的差值,進(jìn)行差值補(bǔ)償,即作前述差值計算的逆處理,恢復(fù)出圖像所有像素塊的原始數(shù)據(jù)。
[0046]作為一優(yōu)選實(shí)施例,可以把原始圖像數(shù)據(jù)劃分為4X4像素大小的像素塊,然后再進(jìn)一步劃分為2X2像素大小的子像素塊,以下將描述差值計算模塊101進(jìn)行圖像分塊與差值計算的詳細(xì)過程。
[0047]如圖2A所示,原始圖像201為通過圖像采集設(shè)備采集得到的原始圖像或者采集后經(jīng)過處理的圖像數(shù)據(jù)。將原始圖像201劃分成多個4X4像素大小的像素塊202,然后進(jìn)一步劃分為5個2 X 2像素大小的子像素塊203,其中取像素塊202的中間部分為參考子像素塊203_1,該參考子像素塊203_1所包含的四個像素分別被作為其他子像素塊203_2,203_3和203_4的參考像素。
[0048]特別地,當(dāng)原始圖像不能正好劃分為多個4X4的像素塊202時,將圖像邊界上的數(shù)據(jù)重復(fù),直到能形成完整的4X4像素塊為止。選取相鄰的4個像素作為子像素塊203,由于相鄰的像素之間具有較強(qiáng)的相關(guān)性,其像素之間的差值較小,進(jìn)而可以減小壓縮后的數(shù)據(jù)量。
[0049]在每個2X 2的子像素塊203中,除最后一個像素外,分別選取參考子像素塊203_1中與其最鄰近的一個像素作為參考像素,進(jìn)而計算該像素相對于參考像素的差值,對于未與該參考像素相鄰的最后一個像素,則根據(jù)已計算的差值,選取差值較大的該像素作為最后一個像素的參考像素來計算其差值。
[0050]如圖2B所示,在子像素塊203_2中,對于鄰近參考子像素塊的像素2和像素5,分別取參考子像素塊203_1中與其最鄰近的像素6作為參考像素來計算差值,由此可得,像素2的殘差為(像素2-像素6),像素5的殘差為(像素5-像素6);對于未鄰近參考像素的像素I,則比較像素2的殘差與像素5的殘差的大小,當(dāng)像素2的殘差大于或等于像素5的殘差時,取像素2為參考像素來計算像素I的差值,即此時像素I的殘差為(像素1-像素2),否則取像素5為參考像素來計算像素I的差值,即此時像素I的殘差為(像素1-像素5)。
[0051]相對應(yīng)地,在解碼過程中,根據(jù)同樣的原則選擇最后一個像素,即像素I的參考像素,對其進(jìn)行差值補(bǔ)償。
[0052]由此可見,在計算子像素塊中最后一個像素相對于參考像素的差值數(shù)據(jù)時,可以根據(jù)前面各個像素相對于參考像素的差值數(shù)據(jù)的大小自適應(yīng)的調(diào)整計算差值的方向。在差值補(bǔ)償過程中,補(bǔ)償最后一個像素的差值數(shù)據(jù)時,也根據(jù)前面各個像素的差值數(shù)據(jù)的大小自適應(yīng)的調(diào)整差值補(bǔ)償?shù)姆较?。這種自適應(yīng)的調(diào)整方式一方面不需要額外地存儲或讀取差值計算以及差值補(bǔ)償?shù)姆较驍?shù)據(jù),另一方面也進(jìn)一步減小了殘差值,進(jìn)而減少了壓縮后的數(shù)據(jù)量。
[0053]參照圖3,示出了殘差編碼模塊和殘差解碼模塊的具體結(jié)構(gòu)。殘差編碼模塊102包括定長編碼模塊301,變長編碼模塊302和壓縮選擇模塊303。編碼時,定長編碼模塊301和變長編碼模塊302同時工作,同時對差值數(shù)據(jù)分別進(jìn)行定長編碼和變長編碼,然后壓縮選擇模塊303根據(jù)兩種編碼后數(shù)據(jù)的長短,選擇相應(yīng)的編碼結(jié)果輸出,并記錄下編碼字長信息和選擇的編碼方式。
[0054]殘差解碼模塊105包括定長解碼模塊305和變長解碼模塊306。解碼時,根據(jù)選擇模塊303選擇的具體編碼方式,將數(shù)據(jù)流送給定長解碼模塊305或者變長解碼模塊306進(jìn)行解碼,得到解碼后的差值數(shù)據(jù)。
[0055]如圖4所示,為當(dāng)圖像被劃分為2X2像素大小的子像素塊時,殘差編碼模塊的定長編碼示意圖。具體包括以下步驟:
[0056]步驟401,計算每個子像素塊中前三個像素的差值的非零位的最高位數(shù);
[0057]步驟402,根據(jù)所述最高位數(shù),將每個差值的高位零值刪除,并作為編碼結(jié)果輸出。
[0058]如圖5所示,為當(dāng)圖像被劃分為2X2像素大小的子像素塊時,殘差編碼模塊的變長編碼示意圖。具體包括以下步驟:
[0059]步驟501,計算每個子像素塊中前三個像素的差值的非零位的最低位數(shù);
[0060]步驟502,計算每個差值減去低位值所能表達(dá)的最大值;
[0061]步驟503,根據(jù)步驟501計算得到的最低位數(shù),把每個差值的低位值作為編碼結(jié)果的第一部分輸出;
[0062]步驟504,對步驟502的結(jié)果進(jìn)行變長編碼,作為編碼結(jié)果的第二部分輸出。
[0063]其中,變長編碼可以為哥倫布編碼或哈夫曼編碼等變長編碼方式。
[0064]如圖6所示,為壓縮數(shù)據(jù)指針生成模塊生成壓縮數(shù)據(jù)指針的示意圖。當(dāng)一個或者多個連續(xù)像素塊601壓縮后的數(shù)據(jù)被寫入外部存儲器603時,該壓縮后的數(shù)據(jù)的地址指針602也被同時寫入外部存儲器603,并且該地址指針602在外部存儲器中的地址可以根據(jù)像素塊601在原始圖像604中的坐標(biāo)映射得到,從而通過該地址指針602建立起原始圖像的像素坐標(biāo)和壓縮后的數(shù)據(jù)之間的索引關(guān)系。當(dāng)采用非順序遍歷圖像時,能夠通過壓縮數(shù)據(jù)指針讀出對應(yīng)坐標(biāo)上的圖像像素的壓縮數(shù)據(jù)。
[0065]參照圖7,示出了本發(fā)明的圖像數(shù)據(jù)壓縮和解壓縮的步驟流程圖,具體可以包括如下步驟:
[0066]步驟701,圖像分塊和差值計算。具體包括:將圖像劃分為多個像素塊,再進(jìn)一步將各像素塊劃分為多個子像素塊以對各像素塊進(jìn)行差值計算,在將一像素塊劃分為多個子像素塊時,取該像素塊的中心部分為參考子像素塊,并保證該參考子像素塊中的至少一個像素被包含在所有該像素塊的其他子像素塊中,以使得該像素作為其他子像素塊的參考像素;然后取參考像素計算其余像素相對于該參考像素的差值。
[0067]其中,如果劃分的該像素塊的數(shù)據(jù)全部為零值,則輸出一個特定標(biāo)記,不再對該像素塊進(jìn)行編碼。
[0068]更進(jìn)一步地,當(dāng)像素含有紅色R、綠色G、藍(lán)色B或者亮度、色差等多個通道的數(shù)據(jù)時,還可以對各個通道依次按照上述圖像分塊和差值計算的方式進(jìn)行處理。
[0069]步驟702,殘差編碼并儲存編碼后的壓縮數(shù)據(jù)。具體包括:將參考子像素塊的參考像素值存入外部存儲器,并且對各像素塊中每個子像素塊的其余像素的差值同時進(jìn)行定長編碼和變長編碼,并根據(jù)編碼后的數(shù)據(jù)大小選擇編碼后長度較短的數(shù)據(jù)儲存到外部存儲器中。
[0070]更進(jìn)一步地,當(dāng)子像素塊的各像素差值都為零時,殘差編碼步驟可以輸出一個特定標(biāo)記,而不需要再對每個像素的差值進(jìn)行編碼。
[0071]更進(jìn)一步地,為了提高壓縮率,還可以選擇更靈活的編碼方式,例如當(dāng)子像素塊的各像素差值有一個或者多個不為零時,在對差值進(jìn)行變長編碼時,將差值分成高位和低位兩部分,對其中的低位部分進(jìn)行定長編碼,對其中的高位部分進(jìn)行變長編碼。
[0072]步驟703,生成并存儲壓縮數(shù)據(jù)指針。具體包括:如果已知圖像的遍歷方法為非順序遍歷,或者未能事先確定圖像的遍歷方法,則將每個像素塊編碼后的數(shù)據(jù)在外部存儲器中的地址指針也存入外部存儲器。為了減少地址指針的記錄數(shù)量,也可以間隔多個像素塊,記錄其在外部存儲器中的地址指針。如果已知圖像的遍歷方法為順序遍歷,跳過此步驟。
[0073]步驟704,讀取壓縮數(shù)據(jù)指針。具體包括:當(dāng)從外部存儲器讀取壓縮后的圖像并進(jìn)行解壓縮時,如果已知圖像的遍歷方法為非順序遍歷,或者未能事先確定圖像的遍歷方法,則首先從外部存儲器讀取壓縮數(shù)據(jù)指針。如果已知圖像的遍歷方法為順序遍歷,跳過此步驟。
[0074]步驟705,讀取壓縮數(shù)據(jù)并進(jìn)行殘差解碼。具體包括:根據(jù)指針信息或者直接從外部存儲器中依次讀取一個或多個像素塊的壓縮數(shù)據(jù),并且,除參考子像素塊的參考像素外,根據(jù)步驟702中選擇的編碼方式相對應(yīng)地對其余各子像素塊的差值進(jìn)行定長解碼或者變長解碼。
[0075]步驟706,進(jìn)行差值補(bǔ)償。具體包括:根據(jù)參考子像素塊的參考像素,以及其余各子像素塊的差值,進(jìn)行差值補(bǔ)償,即作前述差值計算的逆處理,恢復(fù)出圖像所有像素塊的原始數(shù)據(jù)。
[0076]所述圖像壓縮和解壓縮裝置可以作為獨(dú)立的硬件實(shí)體,也可以為抽象的硬件集合,所述各個子模塊還可以分別或組合為相關(guān)的子硬件加速實(shí)體,并協(xié)同實(shí)現(xiàn)圖像壓縮和解壓縮裝置的全部或部分功能。
[0077]以上對本發(fā)明所提供的一種圖像處理裝置存取外置存儲器中數(shù)據(jù)時的數(shù)據(jù)壓縮和解壓縮的裝置和方法進(jìn)行了詳細(xì)介紹,上述記載中應(yīng)用了具體示例對本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時,對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在【具體實(shí)施方式】及應(yīng)用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對本發(fā)明的限制。
【主權(quán)項】
1.一種圖像壓縮和解壓縮裝置,其特征在于:包括差值計算模塊、殘差編碼模塊、壓縮數(shù)據(jù)指針生成模塊、壓縮數(shù)據(jù)指針解碼模塊、殘差解碼模塊和差值補(bǔ)償模塊,其中, 差值計算模塊,被設(shè)置為將圖像劃分為多個像素塊,再進(jìn)一步將各像素塊劃分為多個子像素塊以對各像素塊進(jìn)行差值計算,在將一像素塊劃分為多個子像素塊時,取該像素塊的中心部分為參考子像素塊,并保證該參考子像素塊中的至少一個像素被包含在所有該像素塊的其他子像素塊中,以使得該像素作為其他子像素塊的參考像素,然后取參考像素計算其余像素相對于該參考像素的差值; 殘差編碼模塊,被設(shè)置為將參考子像素塊的參考像素值存入外部存儲器,并且對各像素塊中每個子像素塊的其余像素的差值同時進(jìn)行定長編碼和變長編碼,并根據(jù)編碼后的數(shù)據(jù)大小選擇編碼后長度較短的數(shù)據(jù)儲存到外部存儲器中; 壓縮數(shù)據(jù)指針生成模塊,被設(shè)置為生成并存儲壓縮數(shù)據(jù)指針,如果已知圖像的遍歷方法為順序遍歷,跳過此步驟;否則,將每個像素塊編碼后的數(shù)據(jù)在外部存儲器中的地址指針也存入外部存儲器; 壓縮數(shù)據(jù)指針解碼模塊,被設(shè)置為讀取壓縮數(shù)據(jù)指針,如果已知圖像的遍歷方法為順序遍歷,跳過此步驟;否則,當(dāng)從外部存儲器讀取壓縮后的圖像并進(jìn)行解壓縮時,首先從外部存儲器讀取壓縮數(shù)據(jù)指針; 殘差解碼模塊,被設(shè)置為根據(jù)讀取壓縮數(shù)據(jù),并根據(jù)編碼過程中所選擇的編碼方式相對應(yīng)地對各子像素塊的差值進(jìn)行定長解碼或者變長解碼; 差值補(bǔ)償模塊,被設(shè)置為根據(jù)參考子像素塊的參考像素,以及其余各子像素塊的差值,進(jìn)行差值補(bǔ)償,恢復(fù)出圖像所有像素塊的原始數(shù)據(jù)。2.根據(jù)權(quán)利要求1所述的裝置,其特征在于:在差值計算模塊中,如果劃分的該像素塊的數(shù)據(jù)全部為零值,則輸出一個特定標(biāo)記,不再對該像素塊進(jìn)行編碼;在殘差編碼模塊中,當(dāng)子像素塊的各像素差值都為零時,殘差編碼步驟輸出一個特定標(biāo)記,不再對每個像素的差值進(jìn)行編碼。3.根據(jù)權(quán)利要求1所述的裝置,其特征在于:在殘差編碼模塊中對差值進(jìn)行變長編碼時,當(dāng)子像素塊的各像素差值有一個或者多個不為零時,將所述差值分成高位和低位兩部分,對其中的低位部分進(jìn)行定長編碼,對其中的高位部分進(jìn)行變長編碼。4.根據(jù)權(quán)利要求1所述的裝置,其特征在于:在殘差編碼模塊中,在計算子像素塊中未與參考子像素塊相鄰的像素相對于參考像素的差值數(shù)據(jù)時,可以根據(jù)前面各個像素相對于參考像素的差值數(shù)據(jù)的大小自適應(yīng)的調(diào)整計算差值的方向。5.根據(jù)權(quán)利要求1所述的裝置,其特征在于:在差值計算模塊中,將原始圖像劃分成多個4 X 4像素大小的像素塊,然后將每個像素塊進(jìn)一步劃分成5個2 X 2像素大小的子像素塊,其中取該像素塊的中間部分的四個像素為參考子像素塊,該參考子像素塊所包含的四個像素分別被作為其他四個子像素塊的參考像素以進(jìn)行差值計算。6.根據(jù)權(quán)利要求5所述的裝置,其特征在于:所述差值計算包括選取參考子像素塊中與所述其他四個子像素塊中的一個最鄰近的一像素作為所述其他四個子像素塊中的一個的參考像素,進(jìn)而計算其所包含的像素中鄰近所述參考像素的像素相對于所述參考像素的差值,對于未與所述參考像素相鄰的最后一個像素,則根據(jù)已計算的所述差值,選取差值較大的像素作為所述最后一個像素的參考像素來計算其差值。7.根據(jù)權(quán)利要求1所述的裝置,其特征在于:所述殘差編碼模塊包括定長編碼模塊,變長編碼模塊和壓縮選擇模塊,編碼時,定長編碼模塊和變長編碼模塊同時對差值數(shù)據(jù)分別進(jìn)行定長編碼和變長編碼,然后壓縮選擇模塊根據(jù)兩種編碼后數(shù)據(jù)的長短,選擇相應(yīng)的編碼結(jié)果輸出,并記錄下編碼字長信息和選擇的編碼方式; 所述殘差解碼模塊包括定長解碼模塊和變長解碼模塊,解碼時,根據(jù)所述壓縮選擇模塊選擇的具體編碼方式,將數(shù)據(jù)流送給定長解碼模塊或變長解碼模塊進(jìn)行解碼,得到解碼后的差值數(shù)據(jù)。8.根據(jù)權(quán)利要求5所述的裝置,其特征在于:在殘差編碼模塊中,所述定長編碼包括,計算每個子像素塊中前三個像素的差值的非零位的最高位數(shù);然后,根據(jù)所述最高位數(shù),將每個差值的高位零值刪除,并作為編碼結(jié)果輸出。9.根據(jù)權(quán)利要求5所述的裝置,其特征在于:在殘差編碼模塊中,所述變長編碼包括,首先計算每個子像素塊中前三個像素的差值的非零位的最低位數(shù);其次計算每個差值減去低位值所能表達(dá)的最大值;然后根據(jù)所述最低位數(shù),把每個差值的低位值作為編碼結(jié)果的第一部分輸出;最后對所述最大值進(jìn)行變長編碼,作為編碼結(jié)果的第二部分輸出。10.一種圖像壓縮和解壓縮方法,其特征在于:所述方法具體包括如下步驟: (1)將圖像劃分為多個像素塊,再進(jìn)一步將各像素塊劃分為多個子像素塊以對各像素塊進(jìn)行差值計算,在將一像素塊劃分為多個子像素塊時,取該像素塊的中心部分為參考子像素塊,并保證該參考子像素塊中的至少一個像素被包含在所有該像素塊的其他子像素塊中,以使得該像素作為其他子像素塊的參考像素,然后取參考像素計算其余像素相對于該參考像素的差值; (2)將參考子像素塊的參考像素值存入外部存儲器,并且對各像素塊中每個子像素塊的其余像素的差值同時進(jìn)行定長編碼和變長編碼,并根據(jù)編碼后的數(shù)據(jù)大小選擇編碼后長度較短的數(shù)據(jù)儲存到外部存儲器中; (3)生成并存儲壓縮數(shù)據(jù)指針,如果已知圖像的遍歷方法為順序遍歷,跳過此步驟;否貝1J,將每個像素塊編碼后的數(shù)據(jù)在外部存儲器中的地址指針也存入外部存儲器; (4)讀取壓縮數(shù)據(jù)指針,如果已知圖像的遍歷方法為順序遍歷,跳過此步驟;否則,當(dāng)從外部存儲器讀取壓縮后的圖像并進(jìn)行解壓縮時,首先從外部存儲器讀取壓縮數(shù)據(jù)指針; (5)根據(jù)讀取壓縮數(shù)據(jù),并根據(jù)編碼過程中所選擇的編碼方式相對應(yīng)地對各子像素塊的差值進(jìn)行定長解碼或者變長解碼; (6)根據(jù)參考子像素塊的參考像素,以及其余各子像素塊的差值,進(jìn)行差值補(bǔ)償,恢復(fù)出圖像所有像素塊的原始數(shù)據(jù)。
【文檔編號】H04N19/587GK105933708SQ201610231983
【公開日】2016年9月7日
【申請日】2016年4月15日
【發(fā)明人】張彥剛
【申請人】張彥剛
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1