h264的碼率控制 JVT-G012

開始看h264的碼率控制,很多地方都提到?G012,拿來做為參考比較,看來很有必要研究清楚。

偶這人,E文文檔不翻譯的話,看過就忘了,于是草草翻譯了下,因為不打算做B幀,也不準備在同一幀中使用不同的MB,這些地方就跳過了。

Title:

Adaptive Basic Unit Layer Rate Control for JVT

?

1.?????Introduction

?

編碼器使用碼率控制來控制編碼碼流變化的bit rate特性,以追求給定目標bit rate下的高質量解碼。碼率控制因此成為了編碼器的必要部分,并在標準中被廣泛的研究,比如MPEG2,MPEG4,H.263等等。因此,他也被JVT充分的研究。JVT的碼率控制與其他的標準相比更加困難。這是因為量化參數被同時應用到碼率控制算法(rate control algorithm)和碼率失真最優化(rate distortion optimization RDO)中,這樣在進行碼率控制研究的時候導致了蛋雞悖論:要對當前幀的宏塊進行RDO,需要用當前幀或者宏塊的MAD決定每個宏塊的QP值。然而,當前幀或宏塊的MAD只有在RDO之后才能算出。此外,可用的編碼信道帶寬也可能是固定的或是隨時間變化的。因此我們需要同時考慮固定bit rate(CBR)和可變bit rate(VBR)。然而現存的方案集中與CBR。

?

JVT通過引入基本單元的概念和線性模型,提出了一種自適應基本單元層的碼率控制算法。這個基本單元可以是幀,條帶,或者宏塊MB,線性模型通過前一幀的相關位置的基本單元來預測當前幀當前基本單元的MAD。蛋雞悖論解決如下:當前幀的目標碼率采用漏桶(leaky bucket)模型和線性跟蹤理論根據預先定義的幀率,當前緩沖區占有率,目標緩沖區級別和可用的信道帶寬計算。因為未編碼的基本單元MAD未知,所以剩余的bit平均分配到未編碼的當前幀基本單元中。當前基本單元的MAD靠線性模型使用前一幀相關位置的基本單元的MAD來預測。二次率失真模型(RD)用于計算相應的QP,這個值用與當前基本單元中每個宏塊的最小率失真(rate distortion optimization)我們同時也關注VBR。我們設計了虛擬緩沖區來根據信道帶寬的動態變化而調整編碼程序。該緩沖區是不能向上或者向下溢出的。因為該模型和漏桶模型基本一致,我們的碼率控制因此符合理想參考解碼器(hypothetical reference decoder)

我們測試VBR和CBR來驗證我們的設計。VBR比特率曲線是一條預定義的曲線。他表明實際生成的比特數保持接近比特率曲線并且緩沖并沒有溢出。CBR中,我們的碼率控制方案的編碼效率與使用固定QP值的比較。編碼的計算率由我們的碼率控制方案指定。我們方案的編碼效率提高了1.02dB,所有測試序列的平均PSNR提高了0.32dB。我們也同使用AHM2.0軟件AHG推薦的F086進行比較。PSNR提高了1.73dB,最高損失0.25dB,必須提及的是我們的方案是one pass而F086是two pass(two pass:采用2次編碼,每一幀的第一次編碼用來產生第2次編碼所需要的編碼策略)

  1. Preliminary Knowledge

?

在這一章中,我們提出關于H.264碼率控制的相關問題。

2.1?The Chicken and Egg Dilemma

涉及碼率控制的MB編碼過程如下

因為QP由碼率控制和RDO指定,這里就有個問題,當進行碼率控制時:為MB做RDO,MB的QP應該首先使用MB的MAD決定。然而,當前MB的MAD只有在做了RDO之后才能得到。這是一個典型的蛋雞悖論。因此,H.264的碼率控制要比MPEG2,MPEG4,H.263的更加困難。學習H.264的碼率控制,我們必須解決這個問題去建立當前MB的MAD。除此之外,我們也應該計算當前MB的目標碼率和決定共享相同QP的連續MB數量。為了解決這些問題,我們需要下列的預備知識。

2.2?Definition of A Basic Unit

基本單元的概念定義。

定義1:假設一幀由MB組成,基本單元定義為一組由MB組成的連續MB,其中屬于

在一幀中基本單元的總數如下

????????????????????????????????????????????????????????????????????????????????(1)

假設一個基本單元可以為MB,條帶,場,幀。例如,一個QCIF大小的視頻序列?= 99.?根據定義1,?可以為 1, 3, 9, 11, 33, or 99. 相應的?分別為 99, 33, 11, 9, 3, and 1,

這表明使用一個較大的基本單元,可以實現較高的PSNR值同時碼率波動也就更大。換句話說,使用較小基本單元,碼率波動會顯著變小,但是會輕微損失PSNR

2.3?A Fluid Flow Traffic Model

我們現在提出一種流體流動通信模型(fluid flow traffic model)來計算當前編碼幀的目標bit。標識一組圖片(GOP)的總幀數。表示在ithGOP中的jth幀,表示編碼jth幀后虛擬緩存的占有率。那么我們得到

????????????????????????????????????????(2)

?

其中A()是ithGOP中jth幀生成的比特數。u()是可用信道帶寬,可以使VBR,也可以是CBR,是預定義的幀率,是緩存大小,其最大值由不同的level和profile決定。

注意初始緩沖區的值設置為,這個是可以設置為其他的值的,通常,初始緩沖區值可以設置為一個小的值如果比特波動很小的話。

這個模型和漏桶模型[7]類似,令,在我們的設計中,我們保證碼流包含在上述的虛擬緩存中,因此,當碼流以參數?and輸入到HRD,中,HRD緩存是不會向上或者向下溢出的,換句話說,我們的碼率控制方案是符合HRD的。

2.4??A Linear Model for MAD Prediction

現在引入線性模型在當前幀中預測當前基本單元的MAD。

這個同樣是依賴于前一幀中相關位置的基本單元。假設當前幀中當前基本單元的預測MAD和前一幀相關位置基本單元的實際MAD分別表示為為?和,線性預測模型由下式給出

?????????????????????????????????????????????????????????????????????(3)

其中?和為預測模型的2個相關系數。?和的初始值分別設置為1和0,他們在每個基本單元被編碼后更新。線性模型被用來解決蛋雞悖論。

使用基本單元的概念和模型(2)模型(3),我們方案的步驟如下:

1.?使用fluid traffic模型(2)和線性跟蹤理論[5]計算當前幀的目標bit

2.??把剩余的bit平均分配給給當前幀的未編碼基本單元。

3.?使用前一幀相關位置的基本單元的實際MAD通過線性模型(3)來預測當前幀基本單元的MAD。

4.?使用二次RD模型計算相應的參數

5.??使用來自step4的QP計算當前基本單元每個MB的RDO

如果基本單元選擇為幀,那么我們的碼率控制方案由2層組成:GOP層和幀層。否則,應該加上基本單元層碼率控制。他們會在下面詳細說明。

?

?

以上內容為轉載,個人接著翻譯以后的章節,屬于原創了吧。


本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/453760.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/453760.shtml
英文地址,請注明出處:http://en.pswp.cn/news/453760.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Android RecyclerView嵌套EditView實時更新Item數據

一、場景(例如:購物車) 1、當我們需要以列表樣式管理某些數據時,可能需要列表項的某個字段可編輯 2、編輯Item上的某個字段后可能還要更新相關字段的值 二、可能遇到的問題 1、列表滑動導致輸入框中的數據錯位(或者焦點…

workbench拓撲優化教程_優化技術在水泵水力設計的應用(上篇)

文章來源:安世亞太官方訂閱號(搜索:Peraglobal)CFD技術在泵的內流數值模擬、研究泵內部流動規律和結構方面已廣泛應用,取得了很多成果。但是初步設計的產品如果通過CFD仿真得到的性能曲線不能滿足使用要求,…

深度學習之 TensorRT

1 簡介 TensorRT是一個高性能的深度學習推理(Inference)優化器,可以為深度學習應用提供低延遲、高吞吐率的部署推理。TensorRT可用于對超大規模數據中心、嵌入式平臺或自動駕駛平臺進行推理加速。TensorRT現已能支持TensorFlow、Caffe、Mxne…

H.264筆記

H.264標準寫得比較繁復,所以考慮在瀏覽完Whitepaper之后就開始研讀X264代碼。X264代碼風格還是比較清晰簡潔的。根據對標準得理解,Picture Order Count在Slice解碼的一開始就被提及:I0 B1 B2 P3 B4 B5 P6I0 P3 B1 B2 P6 B4 B5于是I0的POC是0&…

進制轉換中dbho是什么意思_什么是網段?二進制十進制如何互相轉換?看完這篇,你就全明白了...

之前的文章講了ip,子網掩碼,網關的關系,今天著重講一下網段。我們用傻瓜交換機通訊時,一個網段的設備才能互相通訊,怎么能判斷兩個ip是同一個網段呢?今天就簡單的說一下。(這篇文章用語音聽可以起到催眠作用…

【網絡流24題】星際轉移問題(最大流)

【網絡流24題】星際轉移問題(最大流) 題面 Cogs 題解 因為天數是未知的,所以我們要想辦法處理天數 可以選擇二分或者依次累加天數 因為數據范圍較小,使用二分可能反而復雜度會增高 所以使用不斷累加天數 那么,把所有的…

使用 gunicorn 部署flask項目

1、WSGI協議 Web框架致力于如何生成HTML代碼,而Web服務器用于處理和響應HTTP請求。Web框架和Web服務器之間的通信,需要一套雙方都遵守的接口協議。WSGI協議就是用來統一這兩者的接口的。 2、WSGI容器 常用的WSGI容器有Gunicorn和uWSGI,但G…

軟件需求與問題解決

(一) 小滿當上項目經理后不久,參與了一個大項目。當時市場簽下來的時候,公司里面是歡天喜地的。項目做了一年多。到了交付的時候,用戶卻很不滿意,當初說好的東西,好多都變了卦。用戶是上帝&…

flex 換主軸后子元素占滿_Chrome72 嵌套 flex 布局修改,你的網站可能會發生布局錯亂...

起源2019 年 1 月 29 日,Chrome72 正式版(72.0.3626.81)發布,本次發布帶來了一個改變,且沒有在更新日志中提及,該改變導致某些網站發生了布局錯亂。該改變主要針對的是嵌套的flex布局,下面我們一起看下是怎么回事。問題…

使用 Django + Wusgi + Nginx 部署 Django

如何在生產上部署Django? Django的部署可以有很多方式,采用 nginxuwsgi 的方式是其中比較常見的一種方式。 uwsgi介紹 uWSGI是一個Web服務器,它實現了WSGI協議、uwsgi、http等協議。Nginx中HttpUwsgiModule的作用是與uWSGI服務器進行交換。 WSGI / …

網絡學習網址

網絡之路博客 http://ccieh3c.com/ 轉載于:https://www.cnblogs.com/changha0/p/8179801.html

路由到另外一個頁面_Nextjs使用解讀一(項目搭建與路由系統)

文章說明:1. 之前想搭建個人博客,由于學習的是react技術棧,所以就到處搜羅資料學了nextjs,配合koa就把博客搭起來了。該系列文章基于我的學習筆記,重新整理了一遍,如果有錯誤之處,還請指正。2. …

微信獲取token -1000

最終翻看微信開發api找到需要去配置IP白名單。只需要配置訪問來源IP即可。 轉載于:https://www.cnblogs.com/yangjinqiang/p/8184663.html

產品技術和管理

為啥純粹為消費者傳遞體驗的活動可以價格不菲,幾為暴利?——談客戶體驗作為客戶價值提升之源 不論產品還是服務,如果能夠為消費者傳遞有益的體驗,其價值就可以在一般的產品服務之上得以體現;附加了體驗的產品&#xff…

Linux 修改系統編碼

linux服務器的字符集設置可能影響到網站頁面出現 “???” 等問號亂碼,還有可能導致文件中的漢字部分出現亂碼。有兩個原因 服務器沒有安裝 zh_CN.UTF-8 字符集,導致不支持中文!服務器雖然裝了 zh_CN.UTF-8…

jquery ztree 設置勾選_047 JAVA-jQuery

jQuery操作元素屬性的值表單:<body><input type"button" name"" id"but1" value"測試獲得屬性值" /><hr />賬號&#xff1a;<input type"text" name"sxtzh" id"zhanghao" value&q…

Opencv undefined reference to `cv::imread() Ubuntu編譯

Ubuntu下編譯一個C文件&#xff0c;C源程序中使用了opencv&#xff0c;opencv的安裝沒有問題&#xff0c;但是在編譯的過程中出現如下錯誤&#xff1a; undefined reference to cv::imread(std::string const&, int)undefined reference to cv::noArray()undefined referen…

深度學習目標檢測之 YOLO v1

這是繼 RCNN&#xff0c;fast-RCNN 和 faster-RCNN 之后&#xff0c;rbg&#xff08;RossGirshick&#xff09;針對DL目標檢測速度問題提出的另外一種框架。YOLO V1 增強版本GPU中能跑45fps&#xff0c;簡化版本155fps。 論文名&#xff1a; 《You Only Look Once&#xff1a;…

編程珠璣番外篇

1.Plan 9 的八卦 在 Windows 下喜歡用 FTP 的同學抱怨 Linux 下面沒有如 LeapFTP 那樣的方便的工具. 在蘋果下面用慣了 Cyberduck 的同學可能也會抱怨 Linux 下面使用 FTP 和 SFTP 是一件麻煩的事情. 其實一點都不麻煩, 因為在 LINUX 系統上壓根就不需要用 FTP. 為什么呢? 因…

BT下載原理分析

版權聲明&#xff1a;本文為博主原創文章&#xff0c;未經博主允許不得轉載。 BitTorrent協議。 BT全名為BitTorrent,是一個p2p軟件,你在下載download的同時&#xff0c;也在為其他用戶提供上傳upload&#xff0c;因為大家是“互相幫助”&#xff0c;所以不會隨著用戶數的增加而…