在載體圖像中嵌入凈荷的方法及凈荷重建、傳輸方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及傳輸或保存攜帶有無法檢測到的凈荷(payload)的載體圖像的方法, 尤其涉及圖片內(nèi)嵌凈荷的編碼方法。
【背景技術(shù)】
[0002] 使用如AES加密和RSA加密等加密方式對被傳輸?shù)碾[私等保密信息進(jìn)行保護(hù)已廣 為人知且被普遍使用。由于被傳輸?shù)男畔⒁鸭用?,所以未授?quán)的接收人無法對已加密的信 息進(jìn)行讀取。然而,雖然接收人無法解密已接收的信息,但其仍可知該信息為加密信息,因 為加密信息一般被隨機(jī)化且無法被人識(shí)別。
[0003] 在某些情形下,加密信息可能在其傳輸過程中由于吸引了不必要的注意而被屏蔽 或丟棄。因此,不但需要對信息加密,還需要將加密信息承載于人可識(shí)別的圖片等偽裝媒介 中。也即,被傳輸?shù)男畔㈦m然看似為無關(guān)的人可識(shí)別圖片,但實(shí)際上該人可識(shí)別圖片內(nèi)編碼 或內(nèi)嵌了一保密信息。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明的目的是提供一種在載體圖像中嵌入凈荷的方法及相應(yīng)的凈荷重建和傳 輸方法,以取代或改進(jìn)現(xiàn)有的加密方式。
[0005] 為達(dá)到上述目的,本發(fā)明的第一方面提供一種在載體圖像中嵌入凈荷的方法,包 括:提供具有二維陣列的二維載體圖像,其中所述二維陣列的每個(gè)元素具有至少一個(gè)亮度 值;對所述二維載體圖像進(jìn)行序列化,以得到載體圖像一維序列化陣列,其中所述載體圖像 一維序列化陣列的每個(gè)元素具有與所述二維陣列的元素相對應(yīng)的至少一個(gè)亮度值;對所述 載體圖像一維序列化陣列的每個(gè)元素的亮度值實(shí)施模數(shù)值為M的取模運(yùn)算并獲取每個(gè)元 素的亮度基數(shù)值;提供凈荷一維序列化陣列,其中所述凈荷一維序列化陣列的每個(gè)元素具 有可由n位二進(jìn)制數(shù)表示的凈荷;將所述凈荷一維序列化陣列的每個(gè)元素分割為多個(gè)子元 素,其中,所述多個(gè)子元素中的每一個(gè)具有可由n'位二進(jìn)制數(shù)表示的像素單位凈荷,且滿足 n'小于n,以及n'位二進(jìn)制數(shù)所能表示的最大值小于所述模數(shù)值M;將所述多個(gè)子元素中 的每個(gè)子元素與所述載體圖像一維序列化陣列的相應(yīng)元素配對;將所述多個(gè)子元素中的各 子元素的像素單位凈荷加至所述載體圖像一維序列化陣列的相應(yīng)元素的亮度基數(shù)值上,以 將所述凈荷一維序列化陣列嵌入所述載體圖像一維序列化陣列中;將實(shí)施相加后的載體圖 像一維序列化陣列反序列化為內(nèi)嵌所述凈荷一維序列化陣列的二維載體圖像。
[0006] 為達(dá)到上述目的,本發(fā)明的第二方面提供一種對內(nèi)嵌于載體圖像中的凈荷進(jìn)行重 建的方法,包括:提供內(nèi)嵌有具有至少一個(gè)亮度值的凈荷的二維載體圖像;將所述內(nèi)嵌有 具有至少一個(gè)亮度值的凈荷的二維載體圖像序列化為內(nèi)嵌有具有至少一個(gè)亮度值的凈荷 的載體圖像一維序列化陣列;對內(nèi)嵌有凈荷的載體圖像一維序列化陣列的每個(gè)元素的亮度 值實(shí)施模數(shù)值為M的取模運(yùn)算并獲取相應(yīng)的余數(shù);將獲取的可由n'位二進(jìn)制數(shù)表示的余數(shù) 合并為可由n位二進(jìn)制數(shù)表示的所述凈荷,其中,n'小于n,且n'位二進(jìn)制數(shù)所能表示的最 大值小于所述模數(shù)值M。
[0007] 為達(dá)到上述目的,本發(fā)明的第三方面提供一種對通過圖片內(nèi)嵌凈荷編碼方式內(nèi)嵌 于圖片中的凈荷進(jìn)行傳輸?shù)姆椒ǎǎ菏褂玫谝辉O(shè)備傳輸一人可識(shí)別圖片;使用第二設(shè) 備接收被傳輸?shù)乃鋈丝勺R(shí)別圖片;處理接收到的所述人可識(shí)別圖片;將接收到的所述人 可識(shí)別圖片轉(zhuǎn)化為一凈荷。
[0008] 通過采用上述一種或多種方法,保密信息能夠以看似無關(guān)的人可識(shí)別圖片的形式 進(jìn)行傳輸或保存,不會(huì)引起不必要的注意,也不容易被屏蔽或丟棄,且保密信息的提取過程 非常簡單,可靠性高。
【附圖說明】
[0009] 以下通過參考附圖對本發(fā)明的非限制性和非窮舉性實(shí)施例進(jìn)行說明。各附圖中, 除非另有說明,相似參考標(biāo)號指代相似部件。
[0010] 圖1所示為用于編碼凈荷的示例性人可識(shí)別圖片。
[0011] 圖2所示為由二維MXN陣列表示的示例性圖片示意圖。
[0012]圖3所示為對具有MXN陣列的二維載體圖像序列化后的載體圖像一維序列化陣 列的不意圖。
[0013]圖4所示為具有多個(gè)亮度值的示例性載體圖像一維序列化陣列。
[0014]圖5所示為去除余數(shù)后的具有多個(gè)亮度值的示例性載體圖像一維序列化陣列。
[0015] 圖6所示為示例性凈荷一維序列化陣列。
[0016] 圖7所示為包括具有由8位二進(jìn)制數(shù)表示的凈荷元素的凈荷一維序列化陣列。
[0017] 圖8所示為包括分割子元素的凈荷一維序列化陣列。
[0018] 圖9所示為包括具有像素單位凈荷的分割子元素的凈荷一維序列化陣列。
[0019]圖10所示為在原始亮度值上疊加了像素單位凈荷后的凈荷一維序列化陣列。
[0020] 圖11所示為已內(nèi)嵌凈荷的示例性圖片。
[0021] 圖12所示為嵌入載體圖像內(nèi)的示例性凈荷。
[0022] 圖13所示為包括具有8位凈荷元素的凈荷一維序列化陣列。
[0023] 圖14所示為包括具有3位像素單位凈荷子元素的凈荷一維序列化陣列。
[0024] 圖15所示為包括具有8位凈荷元素的凈荷一維序列化陣列。
[0025] 圖16所示為包括具有3位、3位、2位像素單位凈荷子元素的凈荷一維序列化陣 列。
[0026] 圖17所示為圖片內(nèi)嵌凈荷編碼的示例性操作。
[0027] 圖18所示為在二維載體圖像中嵌入凈荷的示例性方法。
[0028]圖19所示為從內(nèi)嵌有凈荷的二維載體圖像中提取凈荷的示例性方法。
[0029] 各附圖中,相應(yīng)參考字符表示相應(yīng)部件。本領(lǐng)域技術(shù)人員可理解的是,附圖中的元 素以簡便性和清晰性為目的展示,不一定按比例繪制。例如,為了更加容易理解本發(fā)明的各 實(shí)施例,圖中某些元素的尺寸可能相對其他元素被放大。
【具體實(shí)施方式】
[0030] 為使本發(fā)明的理解更加透徹,下文給出了多個(gè)具體細(xì)節(jié)。然而,對本領(lǐng)域技術(shù)人員 而言顯而易見的是,本發(fā)明的實(shí)施并不依賴于這些細(xì)節(jié)。此外,為了避免給本發(fā)明的描述造 成混亂,熟知材料和方法并未具體描述。
[0031] 本說明書中,提及"一個(gè)實(shí)施例"或"一實(shí)施例"時(shí)是指,結(jié)合所述實(shí)施例描述的具 體特征、方法或特性包含于本發(fā)明的至少一個(gè)實(shí)施例中。因此,呈現(xiàn)于本說明書中各處的短 語"在一個(gè)實(shí)施例中"或"在一實(shí)施例"并不一定都指同一實(shí)施例。此外,在一個(gè)或多個(gè)實(shí) 施例中,所述具體特征、方法或特性可以任何合適的組合和/或次組合形式組合。
[0032] 圖1所示為根據(jù)本發(fā)明一個(gè)實(shí)施例的示例性人可識(shí)別圖片100,其例如為圖像 "花",用于被編碼后攜帶一凈荷(payload)。凈荷是指被傳輸?shù)膶?shí)際需要的信息。二維載體 圖像"花" 100包括MXN個(gè)像素或元素,M和N均為整數(shù)。如果載體圖像"花" 100為單色圖 像,則其每個(gè)元素均具有一個(gè)亮度值。如果載體圖像"花"1〇〇為彩色圖像,則其每個(gè)元素均 可具有紅色亮度R、綠色亮度G和藍(lán)色亮度B三個(gè)值。
[0033] 假設(shè)所述載體圖像"花"為單色圖像,則其每個(gè)元素具有灰度水平為0至255的亮 度值。所述亮度值由8比特的二進(jìn)制數(shù)表示。可以理解的是,本發(fā)明并不局限于8比特的 二進(jìn)制數(shù)表現(xiàn)形式,其可使用任何比特的二進(jìn)制數(shù)表現(xiàn)形式。同樣地,本發(fā)明并不局限于單 色載體圖像,其也可使用彩色載體圖像。
[0034] 如果載體圖像"花"100為彩色圖像,則其每個(gè)顏色值R、G、B均可用上述亮度值的 處理方式進(jìn)行處理。或者,R、G、B值中的一個(gè)或兩個(gè)可用上述亮度值的處理方式進(jìn)行處理。
[0035] 圖2所示為根據(jù)本發(fā)明一個(gè)實(shí)施例的表示二維載體圖像"花"100的MXN陣列 200的示意圖。圖3所示為根據(jù)本發(fā)明一個(gè)實(shí)施例對具有MXN陣列200的二維載體圖像 "花" 100序列化后的載體圖像一維序列化陣列300。序列化是指將數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)化為可經(jīng)網(wǎng) 絡(luò)連接鏈路存儲(chǔ)或傳輸并且之后可在相同計(jì)算機(jī)環(huán)境中重建的一維陣列的過程。當(dāng)根據(jù)所 執(zhí)行的序列化的格式對上述產(chǎn)生的一系列數(shù)據(jù)重新讀取時(shí),便可生成原始對象。
[0036]圖4所示為根據(jù)本發(fā)明一個(gè)示例性實(shí)施例的由8位二進(jìn)制數(shù)400構(gòu)成的載體圖像 一維序列化陣列300的示意圖。圖4的下部顯示了該載體圖像一維序列化陣列300與上述 二維MXN陣列200的元素對應(yīng)關(guān)系,而其上部所示為二維MXN陣列200中對應(yīng)元素的示 例性亮度值402。
[0037] 求取余數(shù)的運(yùn)算稱為取模運(yùn)算,使用運(yùn)算符"mod"或"%"表示。例如,14除以12 的余數(shù)表示為14mod12或14% 12。由于其余數(shù)為2,可得14mod12 = 2,或14% 12 = 2。 需要注意的是,此外還有26mod12 = 2,或26% 12 = 2。在上述兩例中,除數(shù)12稱為模數(shù), 可得:
[0038] 余數(shù)=數(shù)值%模數(shù)(1)
[0039] 使用所述取模運(yùn)算可算出每個(gè)亮度值的余數(shù)。其中,可使用任何模數(shù)。例如,使用 16作為模數(shù)對圖4中的亮度值求余后的結(jié)果如表1所示。需要注意的是,還可使用其他任 何模數(shù)。
[0040] 每個(gè)亮度值的基數(shù)定義為該亮度值減去其余數(shù)的差,即:
[0041] 基數(shù)=數(shù)值-余數(shù)(2)
[0042] 式⑵中,"余