如前節所述,多層次編碼適用於異質接收端的廣播環境,且適於提供多重品質的應用。
照多層次編碼的特性來看,原始資料被解析分割為多個層次,下層資料代表低解析度,
上層資料代表對底層的加強,經過合成運算,可以得到較高解析度的資料。在廣播環境 中,我們無法針對特定使用者群送出適合其播放能力的資料,而是將所有層次廣播出 去,由使用者端自行決定接收哪些層次。在此種模式下,使用者分群是以接收的層數為 依據。若想保護資料排除沒有權限讀取的人,一個直接的想法就是:將不同層次資料分 別加密,權限越高的使用者能解密的層數越多。就密碼方法的角度來看,就是不同層用 不同密碼方法,或使用同方法但不同 key,不論是哪一種方式,都是為了區別不同層次 的存取權。
如果只是單純為了區別資料存取權,那麼分層加密已經足夠。但是對多媒體資料而 言,有些需求與一般資料不太一樣,最明顯的一點就是,在即時性多媒體串流應用中,
少部分資訊漏失是不可避免的,而依照傳輸架構的不同,有些環境可以要求重新傳輸漏 失的資訊,不過對廣播而言,因為必須符合即時性與缺乏回授管道,系統無法知道哪些 資料已經漏失,所以遺失的資訊是無法重傳的。而對於數位廣播系統,除了資料串流外,
加解密用的 key 如何傳輸與保護也是一個重要課題。例如數位電視廣播標準(DVB[18]) 所採用的是將key 的有效時間分為三類,有效時間長的用來保護有效時間短的,而且其 加密方法也較複雜(強度較高)。用來保護資料串流的密碼方法最簡單,且換 key 頻率最 高。另一個則是 key 與 content 的同步問題,在很多狀況下,在網路上傳播的封包並不 保證接收時間,也就是說,受到保護的串流資料可能比 key 早到,最糟的狀況是,key 的封包遺失,又無法重傳,就會出現整段資訊無法解密的情形。
我們的研究,是利用watermark 技術,把上層解密所需的 key 嵌入下層中,如此一 來,key 與 content 同步的問題得以解決。再藉由 robust watermark 的特性,讓整個解密 與解碼過程受到相當程度保護,換言之,如果發生傳輸錯誤,我們仍能由下層取出內嵌 的 key,因此不會影響對上層的解密。當然,下層資訊遺失必然對合成最終資訊有所影 響,但我們認為只要能妥善利用error concealment 技術,應可修復至可接受的範圍,這 種做法會比出錯時直接捨棄所有enhancement 資訊更能滿足使用者。
圖 12 為接收端架構,Xi為收到的加密資料,經解密後得到Ei,再與之前解碼所得 的base layer (Bi-1)合成得到新的 base layer (Bi),其中解密用的 key (Ki)的來源,是由 Bi-1
取出watermark (Wi),經過 user key (Gi)解密後,得到真正隱藏的資訊(Fi),包括解密用 的key (Ki)與下次抓取 watermark 的參數(Pi)。以上敘述可以用下列各式表示:
z Bi = compose(Bi-1, Ei)
z Ei = decrypte(Xi, Ki) z Wi = extract(Bi-1, Pi-1) z Fi = decryptf(Wi, Gi) z Ki = key(Fi)
z Pi = param(Fi)
整個解密與解碼過程是反覆進行,後一次動作需要的參數皆由前一層base layer 而來。
至於起始參數則有如下考量:
z 當整個媒體串流受到密碼保護,則解密所需的 K0 必須由其他管道是先獲得。如果 B0當成preview layer 不加密,則沒有這個問題,只需跳過解密步驟即可。
z 如果抓取 watermark 需要起始參數,則 P0也必須由其他管道是先獲得。
z 用來保護 Ki與Pi的user key Gi,是本系統中必須事先透過其他管道取得的參數,這 取得管道可伴隨訂購行為發生。
X
iK
idecrypt
e
() compose() B
E
i i{G
i}
B
i-1 Delaydecrypt
f
()
key() param()
extract() W
iF
iDelay
P
iP
i-1圖 12 多層次解密與解碼
隨著不同的多層次編碼方法,傳送端的架構也會有所不同,圖 13 所示為其中一種 可能的架構。先把 Ki與Pi合併成Fi,再用Gi加密產生Wi,利用Pi參數將Wi嵌入B’i-1
後得到Bi-1,然後分析Bi與Bi-1得到enhancement Ei,最後將Ei以Ki加密送出Xi。
X
iK
iencrypt
e()
decompose()
B
iE
i
{G
i}
B'
i-1encrypt
f
() embed() W
i
F
iP
icombine()
P
i-1B
i-1圖 13 多層次加密與編碼
C. 模擬與實驗
本次研究我們用單張照片進行概念性的模擬。首先,我們從 1024x1024 的照片(B1)解析 出512x512 的 base layer (B’0),另外將一個 64-bit 的字串(NCTU-DEE)當成加密用的 key,
產生binary watermark (圖 14)後嵌入 base layer,接著將含有 watermark 的 512x512 照片 (B0)當成最終的 base layer,利用 B0與B1就可得到enhancement layer (E1),最後我們用 DES[19]方法對 E1加密。
NCTU-DEE Î
圖 14 Binary watermark for embedding
圖 15 所示為傳送前對應的 base layer 與 enhancement layer,其中 base layer 因為嵌入了 watermark,使得 PSNR 變為 39.24 dB,但在視覺上與原始 base layer 沒有區別。
圖 15 傳送前的 512x512 base layer 與 1024x1024 enhancement layer
因為此次為概念驗證,所以我們並未將處理過的照片以特定標準進行壓縮。為了模 擬傳輸錯誤,我們將base layer 切割成 8x8 的區塊,並以亂數選取 10%的區塊丟棄[20]。
從破壞後的base layer 抓取出來的 binary watermark 如圖 16 所示,其 bit-correct rate 為 92.74%,而從這個 watermark 中,我們依然可以推出原本的 64-bit key,因此接收到的 enhancement layer 資料可以正常解密。圖 17 為不做任何 error concealment 的合成結果,
可以看到除了被破壞的10%區域之外,其他部分皆可解碼回原本的解析度。
Î NCTU-DEE
圖 16 從傳輸錯誤的 base layer 抓取出的 watermark,其 bit-correct rate 為 92.74%
圖 17 傳輸錯誤情形下解碼的結果
D. 結論
在本研究中,我們提出一個方法,將多層次編碼、密碼方法、與數位浮水印技術結合,
試圖解決數位廣播環境下面臨的幾個問題:
z 使用者存取權限:經由多層次加密概念加以解決,將不同層次的資料以不同 key 保 護起來,權限低的人無法解開較高層的加密資料。
z key-content 同步:將 key 以 watermark 形式嵌入 content 中,取得 content 同時也取 得key,不會有同步問題。
z 傳輸錯誤影響解碼品質:使用 robust watermark 對抗錯誤,在一定程度破壞下,key 仍能正確取出,不致影響enhancement layer 的解密與解碼。傳統加密方式可能因為 小部分錯誤而導致無法取得enhancement layer,相較之下,我們的方法可以獲得較 多正確資訊,對於後續error concealment 或 post-processing 較有幫助。
透過初步的模擬實驗,我們驗證了想法的可行性,接下來的目標將是結合標準的壓縮格 式,並研究傳輸錯誤時可能發生的狀況。
第三部分 畫面間小波視訊編碼之開發與研究
A. 背景與目的
過去幾年來,隨著網際網路以及廣播事業的發展與普及,多媒體的應用的標準日趨 重要。多媒體視訊的應用包括了視訊會議、網路電視、數位電視等。對於各種不同的應 用,也有不同的標準。目前制定標準的主要兩個機構是ITU 以及 MPEG,分別是針對於 視訊會議以及數位電影不同的應用來規劃。但近幾年,因為應用的變化幅度大,要求的 規格也有許多變化,因此新訂定的標準也就沒有特別為某種應用做設計,而反以可調性 為主。可調性則又可分類為三種,一是所謂的空間可調層次性(Spatial Scalability),二是 時間可調層次性(Temporal Scalability),三是位元率可調層次性(Bitrate Scalability)。
MPEG-4 的 FGS 則是頻寬可調性的一個例子。這種可調層次性的壓縮方法,就可以應用 到行動視訊(Mobile Video)這種低頻寬的應用,或是頻寬變化頻繁的網路電視等等。視訊 畫面間小波編碼技術(Interframe Wavelet)是近幾年被提出的壓縮演算法,其優點就在於 全可調層次性(Full Scalability) — 同時兼具三種可調層次性,所以利用一次壓縮好的視 訊,就可以提供給各種應用。而其壓縮效能在高位元率時跟目前標準制定的先進視訊編 碼技術(ISO/IEC 14496-10 Advanced Video Coding, AVC)十分接近,如圖 18。
圖18:視訊畫面間小波編碼技術與先進視訊編碼技術之壓縮效能比較
在視訊壓縮的研究上,演算法的發展已經過幾十年的發展。許多的演算法經過標準會 議嚴密的測試訂定而成為標準,例如MPEG-1、MPEG-2 等多媒體標準。現行的標準當 中,演算法主要採用的架構是混合式時間與空間域編碼法(hybrid coding)。在時間軸上 利用動態補償的方式,將時間軸上多餘的訊號移除,空間則是利用轉換編碼的方式 (Transform Coding)將能量集中,最後經過熵編碼(entropy coder)將資料壓縮。在空間軸
上,最常採用的轉換編碼的方式是以離散餘弦轉換(discrete cosine transform)為主。而近 幾年,採用次頻寬轉換(subband coding)或小波轉換(wavelet transform)的越來越多。以 JPEG2000 為例,則完全採用小波轉換。利用次頻寬轉換或是小波轉換可以省去離散餘 旋轉換的方塊狀瑕疵(blocking artifact)。也有人研究過在時間軸上直接做轉換編碼,不 過其編碼效果在動作大的影像並不好。視訊畫面間小波編碼技術(Interframe Wavelet)在 時間域沿著物體移動軌跡,用Haar Filter 在時間軸上做濾波(Temporal Filtering),把每兩 幅影像就可分為和(Sum)與差(Difference),之後再做單一影像的壓縮,其主要架構如圖 測所使用的基本單位為16x16 大小方塊,稱 macroblock。此基本單位可再細分為 16x16, 16x8, 8x16 及 8x8 大小長方塊,如圖 20(a)所示。而 8x8 之 sub-macroblock 可細分為 8x8, 8x4, 4x8 及 4x4 大小,如圖 20(b)。
(a)
(b)
圖 20: (a) sub-macroblock 之四種型態. (b) 8×8 sub-macroblock 之切割.
在此移動搜尋的過程中,為了增加搜尋的精確度,我們將參考畫面經填補濾波器 (interpolation filter),進行 1/2 像素與 1/4 像素精確度的移動搜尋。由於搜尋方塊切割較 為細緻,也造成了移動向量之位元率過高,因此我們利用相鄰方塊移動向量的相關性,
進行預測。我們用被預測方塊的左方、左上方、上方及右上方進行被預測方塊的移動向 量預測。藉由細緻的搜尋方塊切割與移動向量預測,我們可以精確有效率的將畫面切割 成適當的搜尋方塊,並找到對應的移動向量。圖 21 為經過移動搜尋之後的畫面切割圖 例。
圖 21: 經過移動搜尋之後的畫面切割
B.2 I-Block 與雙向移動估測
I-Block 與雙向移動估測的概念曾在[22]描述過。我們利用此概念並經適當的修改將其 用於改善移動補償時間濾波。
時間軸之低通畫面是基於其中每個點的連接狀態,利用方程式(2)及(3)所產生的。一 般來說,對於判斷為「連接狀態點」(此點在前後兩張畫面有很好對應),移動補償效 果不錯。然而,缺乏對應的比較差的移動估測結果,會對這些低通畫面造成畫質的缺陷。
而低通畫面對於在時間軸可調應用(temporal scalability)極為重要,因此,我們必須將這 些較差的移動估測之點強制宣告為「非連接狀態」以改善低通影像效率。
[ ] m , n ( A [ ] [ m , n B ~ m d
m, n d
n] ) 2
H = − − −
(1)[ ] m n H [ m d n d ] B [ ] m n
L
, = ~ + m, + n + 2 , (2)[ ] m n B [ ] m n
L , = 2 ,
(3)圖 22: 前後兩張畫面連接狀態示意圖
我們將 I-block 的大小訂為 16x16。如同圖 22 所示,A[m,n]為在A 畫面中座標為(m,n) 之方塊,
B [ m − d
m, n − d
n]
為 B 畫面沿著(dm,d
n)移動向量所對應之參考方塊。我們先比較 兩者之變異數,然後選擇較小的值稱為 Vmin;若兩者的均方差直大於 F*Vmin,此方塊將我們將 I-block 的大小訂為 16x16。如同圖 22 所示,A[m,n]為在A 畫面中座標為(m,n) 之方塊,