freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

畢業(yè)論文視頻壓縮編碼技術設計(編輯修改稿)

2024-11-21 21:32 本頁面
 

【文章內(nèi)容簡介】 inance 塊有兩類幀內(nèi)預測方式,按標準中的記號表示為 :Intra _16x 16 和 Intra_4x4,而兩個 chrominance 分量則采用相同的預測方式。 Intra _16x 16 是對整個 16x16 大小的 luminance 進行預 6 測,一般用于圖像比較平坦的區(qū)域,共有 4 種預測方式 .而 Intra 4x4 方式是將 16x16大小的 luminance 劃分為 16 個 4x4 大小的亮度塊,然后對每個 4x4 大小的塊進行預測,共有 9 種預測方式。 對于 chrominance 分量 (Cr和 Cb),預測是對整個 8x8 塊進行的,共 4 種預測方式。 的幀內(nèi)編碼框圖如圖 所示: 圖 幀內(nèi)編碼框圖 16 x16 幀內(nèi)預測 16 x 1 6 預測方式是基于在 16x16 塊的基礎上,用于對圖像中的相對不變的部分進行編碼。 16x16 幀內(nèi)預測模式根據(jù)與當前宏塊鄰近的 33 個像素來生成luminance 分量的預測數(shù)據(jù),共有 4 種預測方式, 如圖 , 垂直( vertical)、水平( horizontal) , DC 和平面( plane)。在進行預測之前,首先要判斷這些鄰近像素是否可用 (available),如果這些像素不可用,例如鄰近像素所在的宏塊位于其它Slice 之中或當前宏塊位于圖像邊緣時某些預測模式就用不起來。 宏塊 幀內(nèi)預測 熵編碼 反變換 反量化 熵編碼 量化 變換 Mean(H+V) 7 圖 16 x16 幀內(nèi)預測 4x4 幀內(nèi)預測模式 在此模式下,編碼器將當前宏塊 16x16 的 luminance 分量劃分為 16 個 4x4 的塊,然后根據(jù)每個 4x4 塊周圍的鄰近像素對該塊做預測。按理說,對一塊像素做預測,其上下左右的像素 都應當作為參考,但由于編碼順序的原因, 只選擇了 13 個像素作為參考。 同 Intra_16x16 模式一樣,在開始預測之前,首先需判斷 AM 這些參考像素是否可用,如果有些參考像素不可用,那么有些預測模式也就不能用了。編碼器端用于預測的參考數(shù)據(jù)是經(jīng)過反變換與反量化后的重建圖像,所以判斷的主要依據(jù)就是看這些像素是否在當前的 4x4 塊之前已經(jīng)完成編碼,即已經(jīng)是經(jīng)過重建了的圖像。如果 4x4 塊 EH 參考像素所在的 4x4 塊尚未編碼,那么它們的 EH 參考像素是不可用的。另外,如果 EH 不可用而 D 是可用的,則用 D 來替代 EH 并將 EH 標記為可用。 在決定了哪些參考像素可用后,就可以通過它們產(chǎn)生預測值了。 一共定義了 9 種 Intra _4x4 預測方式,除了 DC 方式 (模式 2)之外,其它 8 種都是向某一個方向上進行預測,也就是做外插。 這 8 個預測方向和預測的方式如圖 所示: 圖 4x4 塊的 8 個預測方向 由圖中可以看出,如果某一塊區(qū)域內(nèi)的像素值呈現(xiàn)出一種方向性,那么選用與這個方向相近的某個預測方式,將會達到較好的預測效果。作為空間相關性的8 6 1 4 5 0 7 3 8 一種表 現(xiàn),在空間上相臨的塊其預測模式也是相近的,所以對于 Intra 4x4 預測, 并不直接編碼各個塊的預測模式,而是根據(jù)當前塊左邊和上邊塊的預測模式,對當前塊的預測模式進行估計,只有當前塊的預測模式和這個估計出來的預測模式不相同時才額外傳送當前塊的預測模式。 色差分量的幀內(nèi)預測 該預測針對的是當前宏塊的兩個 8x8 的色差分量 Cr和 Cb,共有 4 種模式,兩個 chrominance 分量采用相同的預測模式,預測對兩個分量分別進行,預測的范圍是整個 8x8 的色差分量。預測的參考像素是同一個 chrominance 分量的周圍17 個像素。 預測的過程同 16x16 基本相似,首先判斷這 17 個參考像素的可用性(availability),然后進行預測。 幀間預測 樹型構造的運動補償 編碼支持從 16x16 到 4x4 范圍尺寸的運動補償塊,在這個范圍中亮度樣本可有多個選擇。每個圖像宏模塊亮度組件可以按 4 種方式分開(如圖 1 所示):16x1 16x 8x16 和 8x8。每一個被分的子區(qū)是宏模塊的一部分。如果選擇了8x8的模式,每一個 8x8模塊被按 4種模式分成多個子塊 (如圖 2所示): 8x 8x4x8 和 4*4 (被稱作宏模塊子區(qū) )。這種模塊區(qū)和模塊子區(qū)在每個宏模塊產(chǎn)生大量的組合。這種劃分宏模塊為各種尺寸的動態(tài)子模塊的方法被稱作樹型運動補償。 每一個區(qū)和子區(qū)要求由各自的運動矢量描述。每一個運動矢量都要被編碼和發(fā)送;除此之外,所選的區(qū)需在壓縮的比特流中編碼。選擇了大的區(qū)域意味著用少量的比特數(shù)據(jù)去描述運動矢量和區(qū)域類型。然而,經(jīng)過補償后的運動的畫面還有大量的運動細節(jié)描寫。選擇小的區(qū)的劃分會在使用運動補償后產(chǎn)生少量的編碼。因此,選擇分區(qū)的尺寸大小具有顯著的意義??傊?大的分區(qū)適合均勻的區(qū)域,小的分區(qū)適合描述細節(jié)。在宏模塊中每一個顯示組件的分辨率是亮度組件的一半,每一個顯示被按同一方式分成亮度元素。 1/4 像素精度的運動估計 幀間編碼宏塊的每個分割或者子宏塊都是對參考圖像的某一相同尺寸區(qū)域進行預測而得到的。兩者之間的差異( MV)對亮度成分采用 1/4 像素精度,色度1/8 像素精度。亞像素位置的亮度和色度像素并不存在于參考圖像中,需利用鄰近已編碼點進行內(nèi)插而得。如果 MV 的垂直和水平分量為整數(shù),參考塊相應像素就已實際存在。如果其中一個或兩個為分數(shù),預測像素則 要通過參考幀中相應像素內(nèi)插獲得。 多參考幀模式選擇 標準為幀間圖像編碼提供了多參考幀選擇 ,可選擇 5 個不同的參考幀 , 進行幀間預測 , 這使得幀間編碼更加有效 , 恢復視頻的主觀效果更好 , 而且 , 使用多參考幀將會有助于 比特流錯誤的恢復 , 這樣比單獨參考幀方法可以節(jié) 9 省 5 %~ 10 %的傳輸碼率 。 另外 , 圖像編碼順序不是基于時間的圖像顯示順序 ,而是基于圖像之間的依賴關系。 變換與量化 將圖像的當前像素值與預測值相減,就形成了預測殘差。殘差內(nèi)仍然含有空間冗余,為了消除這 種冗余,通常采用變換編碼,即變換-量化-熵編碼三步。變換并不壓縮數(shù)據(jù),它只是消除數(shù)據(jù)中的相關性,或者說將數(shù)據(jù)中的冗余 (或相關性 )以一種便于隨后進行熵編碼的方式表現(xiàn)出來。壓縮是在熵編碼步驟中完成的。此外為了進一步減少數(shù)據(jù)量,編碼器還對變換后的系數(shù)進行量化,它的實質(zhì)是減少數(shù)據(jù)的取值范圍以減少每一個符號的熵。它會造成信息的損失,是有損編碼的一個重要步驟,它也是控制圖像率失真 (RD)特性的一個主要手段。在 中,變換與量化兩個步驟緊密相連。 整數(shù) DCT 變換 圖像編碼中常用的變換是 DCT,因為它在某種條件下近似于理論上最優(yōu)的KL變換。但是如果直接采用 DCT的定義進行變換,會帶來兩個問題:一個是需要進行浮點數(shù)操作,從而造成系統(tǒng)設計上的復雜性:第二,由于變換核都是無理數(shù),而有限精度的浮點數(shù)不可能精確地表示無理數(shù),再加上浮點數(shù)的運算可能會引入舍入誤差,這就使得在具體實現(xiàn)時會導致編解碼的不一致 (mismatch),即反變換的輸出結果和正變換的輸入不一樣。為了克服這些問題, 采用整數(shù) DCT變換,使得變換操作僅用整數(shù)加減和移位操作就可以完成,這樣既降低了設計復雜度,又避免了編解碼 的不一致 , 而由此帶來的編碼性能的減少微乎其微。需要注意的是,此時的變換已經(jīng)不是真正的 DCT,仍然稱其為 DCT 變換只是為了說它是由 DCT推導而來,且為了和另一個哈達瑪變換 (Hadamard 變換 )相區(qū)別罷了。 編碼器的變換與量化過程如圖 所示: 10 圖 編碼器變換與量化過程 圖中輸入為預測殘差,輸出為準備進行熵編碼的數(shù)據(jù),一共有五類。為了更大程度地利用空間冗余,對于 16x16 幀內(nèi)預測模式, 在對 16x16 的 luminance分量的 16 個 4x4 塊進行 DCT變換后,將每個 4x4 塊的 DC 系數(shù) (還沒有經(jīng)過量化 )提取出來,組成一個 4x4的 luminance DC 塊,對其再進行 4x4的哈達瑪( Hadamard)變換。同樣,對 8x8 chrominance 分量的 4 個 4x4 塊進行 DCT變換后,也將每個4x4 塊的 DC 系數(shù)提取出來,組成一個 2x2 的 chrominance DC 塊,對其進行 2x2的 Hadamard 變換。 量化 一般量化原理為: FQ=round(y/QP) 其中: y 為輸入樣本點編碼, QP 為 量化步長, FQ 為 y 的量化值, round()為取整函數(shù)。 熵編碼 在完成變換與量化之后,這些數(shù)據(jù)就送往熵編碼器,完成整個變換編碼的最后一步。 一共有 3 種熵編碼: (1)ExpGolomb 碼 (Exponential Golomb codes)。 (2)CAVLC (Contextbased Variable Length Coding): (3)CABAC(Contextbased Adaptive Binary Arithmetic Coding). 對這三種碼的使 用范圍做了規(guī)定 :(1)不出現(xiàn)在殘差數(shù)據(jù)中 。(2)僅出現(xiàn)在殘差數(shù)據(jù)中 :(3)僅出現(xiàn)在 Slice 層以下 (從 Slice data 開始 )的數(shù)據(jù)中。 (1)和 (2)都是采用查表方式,但是 (1)的表是固定的,而 (2)在編碼過程中會根據(jù)周圍宏塊以及在之Hadamard 變換 44 整數(shù) DCT變換 44 Hadamard 變換 22 整數(shù) DCT變換 44 整數(shù) DCT變換 44 DC 系數(shù)量化 AC 系數(shù)量化 AC 系數(shù)量化 AC 系數(shù)量化 AC 系數(shù)量化 AC 系數(shù)量化 DC 系數(shù)量化AC 系數(shù)量化 AC 系數(shù)量化 16*16 4*4 其他 DC DC 11 前編碼的數(shù)據(jù)信息,選擇不同的表,從而具有上下文自適應功能。 (3)屬于自適應算術編碼,能夠獲得比 (2)更好的壓縮性能和自適應能力 .。 ExpGolomb碼 ExpGolomb 碼的編碼過程分為兩步 :第一步將待編碼的數(shù)據(jù)轉換為一個中間變量 codeNum。 根據(jù)轉換方式,可將 ExpGolomb 碼分為 4 種,按 的記號分別表示為 uc, mc, sc 和 uc 和 sc 分別用于無符號整數(shù)和有符號整數(shù)的編碼, mc 用于對 coded_block_pattern編碼,這是表示當前宏塊中哪些子塊含有非零系數(shù)的一個參數(shù), to 用于編碼 ref_idx_10 和 ref_idx_l1,該參數(shù)表示使用緩存中的哪個參考幀做幀間預測,第二步是將 codeNum映射為二進制編碼。 CAVLC CAVLC 是基于上下文的自適應變長碼的英文簡稱,它用于編碼預測殘差。VLC 的基本思想是對經(jīng)常出現(xiàn)的符號賦予較短的碼字,反之則較長。與一般的VLC 碼不同的是, CAVLC 能夠根據(jù)以往編碼的數(shù)據(jù)在若干碼表中自適應地選擇,找出與當前編碼數(shù)據(jù)統(tǒng)計特性最相符的一個碼表來進行編碼 .并且它將以前標準中所采用的 (Run, Level)二元組拆開來,分別進行編碼,從而能達到更好的自適應性,提高了編碼性能。由于 CAVLC 改進的編碼性能以及實現(xiàn)簡單,它被 JVT所采納,同上面的 ExpGolomb 碼一起代替了原先的 UVLC. CAVLC 的設計考慮了如下幾個事實: 1)經(jīng)過變換與量化后的預測殘差中含有 較多的 0,這樣在 ZigZag掃描之后,用 Run和 Level 表示預測殘差可以取得較好壓縮效果。這一點在以前的標準中也用到了。這里 Level表示非零系數(shù)值 Run表示非零系數(shù)之前的 0 的數(shù)目 . 2)殘差末尾的幾個非零系數(shù)一般為 +1 或 1, CAVLC 對它們單獨進行了編碼。 3)作為空間相關性的一種表現(xiàn),當前塊中的非零系數(shù)個數(shù)和周圍塊的中的非零系數(shù)個數(shù)應該差不多, CAVLC 利用這一點自適應地選擇編碼當前塊中非零系數(shù)數(shù)的碼表。 4)位于低頻處的系數(shù)值一般較大,而位于高頻處的則相反, CAVLC 利用這一點自動地選擇編碼 Level的碼表。 5)位于低頻處的非零系數(shù)一般是連著的,中間沒有零,此時用 (Run, Level)形式來表示它們就顯得效率不高,因此 CAVLC 將 Run 和 Level 分開單獨進行編碼。 CABAC CABAC 只對二進制符號 0 和 1 進行編碼,所以首先要對輸入的 Syntax Element (SE)的值做二值化 (Bin- variation),即映射成一串 0, 1 序列,序列中的 12 每一個二進制符號稱為一個“ bin, bin是 CABAC 的編碼單元。對每一個 bin的編碼包括兩個步驟:選擇 context 和進行算術編碼。 由于空間相關性, SE的取值與鄰近相同的 SE取值是相關的,這樣,描述當前 SE的概率就應該用條件概率模型。 Context 就是這樣一個條
點擊復制文檔內(nèi)容
公司管理相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1