H.264學習方法及部分基礎知識


1、H.264新特性學習階段

首先,我們學習的weigand的那篇關於H.264 overview的經典文獻,這篇文獻對H.264的新特性大部分都有講到。之后,我們共開展三次會議來分組深入地學習H.264的各個新特性。

幀間編碼小組主講的內容有高精度運動估計分析了H.264的半象素點插值預測和1/4象素點插值預測,同時還分析了H.263的半象素點的插值預測以作比較。多參考幀和7種宏塊模式,分析它們的基本原理,並列舉了一些快速算法。B幀,講解了B幀的新特性,同時詳細講述了B幀獨有的兩種宏塊模式direct mode和multihypothesis mode

幀內編碼小組主講的內容有:講解了16×16塊和4×4塊的幀內預測的原理,並講述了相關的一些優化問題,包括:預測模式的編碼並行優化問題預測模式的快速選擇的策略問題

變換量化小組主講的內容有:H.264中采用的去塊濾波的深入介紹。H.264中的整數變換和量化的原理

 

熵編碼小組主講的內容有:UVLC&CAVLC哥倫布碼的編碼方法,CAVLC的具體過程並做了編碼的具體說明。CABAC,整個過程的介紹,包括二進制化,上下文建模,算術編碼。

 

由於大部分成員是初次接觸到H.264,所以我們這階段的學習過程中遺留了很多的問題,所幸的是我們在每次會議時都對前次的這些新特性會議遺留下來的問題進行討論解決

 

另外,我們最后還加了一講,一是對這階段的工作作個總結,以改正一些不好的學習方法。另外,就是對下一階段的工作作個計划。

2、H.264校驗模型學習階段

校驗模型的學習我們分編碼器學習階段和解碼器學習階段,其中編碼器是我們的重點,開展了四次會議,而解碼器部分只作了一次會議。

編碼器部分我們首先講解整個編碼器的程序框架,特別將程序主線上的一些重要函數進行了重點分析講解。然后就是我們各個小組對各自的部分進行深入的學習。

 

幀間編碼小組主講的內容有率失真優化問題,主要講解了基於拉格朗日乘數法的率失真優化策略,並對設計到率失真優化的相關程序段進行了分析。多參考幀問題,分析了多參考幀涉及到的重要的數據結構和全局變量,並講解了多參考幀保存,參考幀列表初始化,參考幀選擇等相關的代碼7種宏塊模式,分析了宏塊級和亞宏塊級的運動估計在校驗模型中的實現。高精度運動估計,首先分析了整個運動估計的過程,然后在分析了亞象素點插值預測的代碼段。

 

幀內編碼小組主講的內容有幀內預測在結合幀內預測的系統框架的基礎上對幀內預測的實現作了深入分析FMO和PAFF&MBAFF,分別分析了FMO和PAFF&MBAFF的基本原理和程序實現。

 

變換量化小組主講的內容有去塊濾波的程序實現變換量化,講解了其中用到的一些核心函數,同時也分析了相應的接口以及所用到的全局變量。

 

熵編碼小組主講的內容有: UVLC的程序實現。CABAC中三塊內容的實現代碼片斷分析。

解碼器部分,我們只花了一講,首先講解了H.264的碼流結構,然后分析了解碼器的程序主線,並和編碼器的程序主線進行了比較。

 

在校驗模型的學習階段,我們一方面對上階段所學的H.264的新特性有了更深刻的理解,同時還發現並學習了一些上階段沒有學過的新特性,如rdopt,fmo,mbaff等。

視頻編碼基礎知識

  1. 傳統編碼結構

    序列編碼結構:

     

    H.264中為什么使用離散余弦變換(DCT)

視頻通信中的碼率控制技術

昨天說到264中的模式選擇,它的目地就是為碼率控制服務。

即選擇最優的宏塊模式,以拉格郎日為優化模型。以控制碼率。

   

編碼控制的目標是在實際傳輸比特的限制下,以最小的計算復雜度獲得盡可能好的圖像質量。編碼碼率和計算復雜度,重建圖像質量三者是不可分的。

   

評價標准: 主觀和客觀,主觀指肉眼,客觀指MSEPSNR,通常認為PSNR平均值和最小PSNR值越大越好, 各幀間PSNR值變化越小越好。

   

碼率控制的主要環節: DCT變換,量化,緩沖區調整,分層編碼(可分級編碼和精細編碼),網絡狀況反饋調節編碼。

   

  視頻壓縮標准基本上都用到了DCT變換,運動補償編碼和變長熵編碼,由於對不同類型的幀(I B P)采用的編碼方式不同,使得各幀圖像編碼后產生的比特數也不一樣, 根據傳輸速率,信道可分為兩大類:變速率信道(VBR)和固定速率信道(CBR),無論編碼的一的碼流通過何種信道傳輸,視頻編碼囂生成的碼流都不能直接送到信道上傳輸,否則會千萬信道或擁塞,或空閑,這都將降低信道的利用率。

  為了使編碼后的流速率能和信道速率相匹配,提高信道的利用率,在編碼器和信道之間加一個緩沖區就非常必要,緩沖區的容量越大,碼流將能更好地適應信道速率,重建圖像的質量也會越高,但同時,也給解碼端帶來更大的時延,在實時視頻通信中常常需要端對端的時延非常小,這就要求緩沖區盡可能小,緩沖區的容量和時延要求構成了一對矛盾,碼率控制的目的就是為了解決這一矛盾。即在系統端對端的失真盡可能小情況下,滿足時延的要求使得緩沖區不發生下溢上溢。

   

  在視頻編碼過程中, 決定輸出碼流比特率的直接因素為DCT變換后的量化參數Q(cfg文件中,RDO未使能時,量化參數是不變的,即未使用率失真優化)。因此碼率控制的方法是根據信道速率和緩沖區狀態來調整量化參數Q,一般來說, 根據碼率控制的級別,當前的編碼器碼率控制算法分為兩大部分,基於幀和基於宏塊的碼率控制。控制的級別越低,控制的精度越高,算法復雜度越高。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM