本發(fā)明屬于圖像處理技術(shù)領(lǐng)域,特別涉及一種二值roi掩模編碼方法,可用于實(shí)現(xiàn)遙感云圖roi掩模的高效編碼。
背景技術(shù):
方塊編碼最早用于二值圖像的編碼,如傳真圖像,由于方法簡(jiǎn)單有效進(jìn)而推廣到了灰度圖像的編碼之中。方塊編碼分為兩個(gè)過(guò)程:分塊掃描和哈夫曼編碼:首先選擇設(shè)定大小的分塊對(duì)圖像進(jìn)行劃分,然后將分塊內(nèi)灰度值的排列信息作為表示該分塊的消息,并用相應(yīng)的符號(hào)表示,再掃描整個(gè)圖像,將所有分塊對(duì)應(yīng)的符號(hào)組成一維的符號(hào)序列,最后對(duì)符號(hào)序列進(jìn)行哈夫曼編碼。
傳統(tǒng)的這種方塊編碼有效地利用了二值圖像的空間相關(guān)性,但是在對(duì)符號(hào)序列的編碼上,由于沒(méi)有考慮到不同二值圖像對(duì)應(yīng)符號(hào)序列的特性,一律使用傳統(tǒng)的哈夫曼編碼方法,因而降低了符號(hào)序列編碼的效率。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于針對(duì)上述現(xiàn)有技術(shù)的不足,提出一種基于改進(jìn)方塊編碼的二值roi掩模編碼方法,提高roi掩模的編碼效率。
本發(fā)明的技術(shù)思路是:針對(duì)roi掩模的區(qū)域性和這些區(qū)域所對(duì)應(yīng)的符號(hào)序列存在大量的統(tǒng)計(jì)冗余的特點(diǎn),利用roi掩模像素間的空間相關(guān)性對(duì)roi掩模進(jìn)行分塊處理,通過(guò)對(duì)每個(gè)分塊進(jìn)行符號(hào)包裝,得到一維的符號(hào)序列,對(duì)roi掩模的編碼即為符號(hào)序列的編碼,通過(guò)對(duì)符號(hào)序列中出現(xiàn)次數(shù)最多、連續(xù)性最強(qiáng)的符號(hào)‘0’的單獨(dú)處理,計(jì)算其游程數(shù)組,實(shí)行對(duì)游程數(shù)組和修正后符號(hào)序列的編碼。其具體實(shí)現(xiàn)方案包括如下:
(1)對(duì)roi掩模圖像按照從上到下、從左到右的順序進(jìn)行3*3分塊,將分塊內(nèi)像素值讀取為一個(gè)九位的二進(jìn)制0、1序列,并將該二進(jìn)制序列轉(zhuǎn)換為十進(jìn)制的值,作為表示該分塊的符號(hào);再按照從上到下從左到右的順序,掃描所有的3*3分塊,將所有的符號(hào)讀取為一維的符號(hào)序列;
(2)遍歷一維符號(hào)序列,計(jì)算符號(hào)序列中‘0’符號(hào)的游程數(shù)組,并將符號(hào)序列中連續(xù)的符號(hào)‘0’用相應(yīng)的一個(gè)符號(hào)替換,得到修正后的符號(hào)序列;
(3)分別對(duì)游程數(shù)組和修正后的符號(hào)序列進(jìn)行哈夫曼編碼,再將兩者的編碼碼流合并,得到最終的編碼碼流。
本發(fā)明與現(xiàn)有技術(shù)相比較,具有如下優(yōu)點(diǎn):
第一、本發(fā)明利用到了roi掩模的空間相關(guān)性,減少了roi掩模的統(tǒng)計(jì)冗余
第二、本發(fā)明可以使用更短的碼流完成roi掩模的編碼,提高了roi掩模的編碼效率。
附圖說(shuō)明
圖1是本發(fā)明的實(shí)現(xiàn)流程圖;
圖2是本發(fā)明中對(duì)分塊掃描的示意圖。
具體實(shí)施方式
以下結(jié)合附圖和實(shí)施例,對(duì)本發(fā)明作進(jìn)一步詳細(xì)的描述。
步驟1,對(duì)roi掩模分塊,獲得符號(hào)序列。
(1a)創(chuàng)建二維數(shù)組a,將在感興趣區(qū)域提取得到的感興趣區(qū)域roi掩模讀取到二維數(shù)組a中,并進(jìn)行3*3的分塊操作,并按照?qǐng)D2所示的方法對(duì)分塊內(nèi)的像素值進(jìn)行讀取,得到二進(jìn)制序列;
(1b)創(chuàng)建變量t,用于存儲(chǔ)分塊所對(duì)應(yīng)的符號(hào),并初始化為0,再?gòu)母呶坏降臀槐闅v二進(jìn)制序列,并給t加上二進(jìn)制序列中每一位對(duì)應(yīng)的十進(jìn)制值,遍歷結(jié)束后得到分塊對(duì)應(yīng)的符號(hào);
(1c)遍歷所有分塊對(duì)應(yīng)的符號(hào),得到符號(hào)序列。
步驟2,遍歷符號(hào)序列,得到符號(hào)‘0’的游程數(shù)組和修正后的符號(hào)序列。
(2a)創(chuàng)建一維數(shù)組b,用于存儲(chǔ)符號(hào)‘0’的游程,并初始化為空;
(2b)從符號(hào)序列的第一個(gè)符號(hào)開(kāi)始遍歷,判斷符號(hào)是否為‘0’:
如果符號(hào)不為‘0’,則跳過(guò)該符號(hào),執(zhí)行(2c);
如果符號(hào)為‘0’,則計(jì)算該符號(hào)之后連續(xù)為‘0’的數(shù)量n,將n加入到數(shù)組b之中,并跳過(guò)n個(gè)符號(hào)‘0’,執(zhí)行(2c);
(2c)判斷是否到達(dá)符號(hào)序列的末尾:
如果沒(méi)有到達(dá)末尾,則返回(2b)繼續(xù)遍歷;
如果到達(dá)末尾,則遍歷結(jié)束,得到符號(hào)‘0’的游程數(shù)組;
(2d)從符號(hào)序列的第一個(gè)符號(hào)再次遍歷,判斷符號(hào)是否為‘0’:
如果符號(hào)不為‘0’,則跳過(guò)該符號(hào),執(zhí)行(2e);
如果符號(hào)為‘0’,則刪除該符號(hào)之后所有連續(xù)為‘0’的符號(hào),并跳過(guò)該符號(hào),執(zhí)行(2e);
(2e)判斷是否到達(dá)符號(hào)序列的末尾:
如果沒(méi)有到達(dá)末尾,則執(zhí)行步驟(2d);
如果到達(dá)末尾,則遍歷結(jié)束,得到修正后的符號(hào)序列。
步驟3,對(duì)步驟2得到的結(jié)果進(jìn)行哈夫曼編碼,合并碼流。
(3a)計(jì)算符號(hào)‘0’的游程數(shù)組中每個(gè)值的概率,并根據(jù)每個(gè)值所對(duì)應(yīng)的概率大小來(lái)分配碼長(zhǎng):值的概率越大則分配的碼長(zhǎng)越短,概率越小則分配的碼長(zhǎng)越長(zhǎng),最后根據(jù)分配的碼字對(duì)游程數(shù)組所有的值進(jìn)行編碼,得到符號(hào)‘0’的游程數(shù)組的編碼碼流;
(3b)計(jì)算修正后的符號(hào)序列中每個(gè)符號(hào)的概率,根據(jù)符號(hào)所對(duì)應(yīng)的概率大小來(lái)分配碼長(zhǎng):符號(hào)的概率越大分配的碼長(zhǎng)越短,概率越小分配的碼長(zhǎng)越長(zhǎng),最后根據(jù)分配的碼字對(duì)修正后的符號(hào)序列中所有的符號(hào)進(jìn)行編碼,得到修正后的符號(hào)序列的編碼碼流;
(3c)將(3a)得到的符號(hào)‘0’的游程數(shù)組的編碼碼流長(zhǎng)度,添加到游程數(shù)組的編碼碼流前,并將步驟(3b)得到的修正后的符號(hào)序列的編碼碼流拼接到游程數(shù)組的編碼碼流之后,完成碼流的合并,得到最終的編碼碼流。
以符號(hào)序列{2,0,0,0,0,511,511,5,0,0,0}為例,對(duì)本步驟的具體實(shí)施描述如下:
首先,執(zhí)行步驟(2a)到(2c),得到符號(hào)‘0’的游程數(shù)組為[43],并執(zhí)行步驟(2d)到(2e)得到修正后的符號(hào)序列為{2,0,511,511,5,0};
接著,執(zhí)行步驟(3a),對(duì)游程數(shù)組進(jìn)行編碼,由于游程數(shù)組中4和3兩個(gè)值的概率相同,因此給這兩個(gè)值分配相同長(zhǎng)度的碼長(zhǎng),分別為0和1,根據(jù)分配的碼長(zhǎng)對(duì)游程數(shù)組進(jìn)行編碼,得到編碼碼流‘01’。
接著,執(zhí)行步驟(3b),計(jì)算修正后的符號(hào)序列中符號(hào)‘2’、‘0’、‘511’和‘5’的概率,分別為
最后,執(zhí)行步驟(3c),計(jì)算游程數(shù)組的編碼碼流長(zhǎng)度為2,并用一個(gè)字節(jié)00000010表示,接著將這一個(gè)字節(jié)添加到游程數(shù)組的編碼碼流‘01’之前,得到碼流‘0100000010’;并將修正后的符號(hào)序列的編碼碼流‘01011100’添加碼流‘0100000010’之后,最終得到碼流為‘010000001001011100’,完成對(duì)roi掩模的編碼。
以上描述僅是本發(fā)明的一個(gè)具體實(shí)例,并未構(gòu)成對(duì)本發(fā)明的任何限制,顯然對(duì)于本領(lǐng)域的專(zhuān)業(yè)人員來(lái)說(shuō),在了解了本發(fā)明內(nèi)容和原理后,都可能在不背離本發(fā)明原理、結(jié)構(gòu)的情況下,進(jìn)行形式和細(xì)節(jié)上的各種修改和改變,但是這些基于本發(fā)明思想的修正和改變?nèi)栽诒景l(fā)明的權(quán)利求保護(hù)范圍之內(nèi)。