Re: [請問] x264 的 bframes 跟 reframe

看板AVEncode作者 (斯溝已內~歐八降)時間15年前 (2010/12/08 23:26), 編輯推噓4(405)
留言9則, 7人參與, 最新討論串3/3 (看更多)
※ 引述《twoseven (Tse)》之銘言: : 關於這兩個設定已經困擾好幾天 查詢google中文網頁也沒有特別多的介紹 : 目前看到大部分的影片常常都是ref設定為2 : ref : 預設:3 : 控制DPB(Decoded Picture Buffer)的大小。範圍是從0到16。總之,此值是每個P幀可 : 以使用它前面多少個幀作為參考幀的數目(B幀可以使用的數目要少一或兩個,取決於它 : 們是否作為參考幀)。可以作為參考幀的最小ref數是1。 : 上面指的是它會預先讀取好的意思?? : bframes : 預設:3 : 設定x264可以使用的最大並行B幀數。 : 這..看不太懂 : ------------------------------------------------------------- : 想請教一下,如果設定ref是1,bframe設定是0,有什麼特別的影響嗎 : 或是提高這兩個數值,可以帶來的幫助? : 最近由於不斷轉檔上傳一些影片,實驗了很多軟體,由於內建設定都不太相同 : 卻也各自有各自的問題,所以想從一些地方去調好設定值 下面有一部份不確定正確性,有錯誤歡迎討論一下^^ 首先 知道什麼是B幀嗎? 一般影片在看的時候是連續的畫格一格一格的在切換 但其實在壓縮的時候並不是每個畫格都會完全的紀錄畫格的全樣 通常的壓縮方式是:由第一格紀錄全部影像資訊 此格稱作I-frame 後面數個畫格則只有紀錄與前一畫格不同、變動過的區塊 此格稱作P-frame 所以一般的畫格在播放的時候是這樣在放的:IPPPIPPPIPPP... 那什麼是B幀(B-frame)呢? P-frame只能與前一個畫格作比較來壓縮 但有時如果可以先參考前後的畫格再來壓縮中間一個或數個畫格 反而可以使壓縮率提高 這種經過後方畫格參考過再壓縮的畫格就是B-frame 像是  :IBBBPBBBP 解碼順序:134527896    ↑︵  ↑   ↑    關參  參   參      鍵考  考   考      幀幀1. 幀2.  幀3.       ︶ 註:這是MPEG-2的方式,目前的AVC也許可以用B-frame做參考幀 一般常見使用B-frame壓縮的時機是過了I-frame才出現的新像素 或是數格的漸層影像,先預知前後畫格再補間中間的畫格 等等 -- 1.ref設定多少比較好? ref可以設定在壓縮P-frame時參考前面幾個P-frame作壓縮 通常是1~16,差異在當數值越大,就必須花很多時間把前面的畫格叫出來分析 通常只要設定超過5就可以很明顯發現壓縮時間會拉很長 所以如何取決一個漂亮的數值呢? 如果:1.沒有使用B-frame → 設定1 可以節省不必要的壓縮時間 2.使用B-frame → 設定在bframes的 1/2 ~ 1/3 即可 因為P-frame的畫面取決於I-frame,當沒有B-frame插花時, I-frame與P-frame之間的關係是流暢的 因此後面的P-frame只要跟前一個P-frame做參考比較出變動的像素就可以了 過多的ref會過度拉長壓縮時間及解碼時間,且看不出畫質的提升 但有用B-frame要提高ref的原因是怕B-frame會丟掉細節的像素 而才需要增加ref來「找回」失去的像素 (壓縮時因為先壓縮I、P-frame才補間B-frame,所以就算B-frame把像素丟了, 只要壓縮時在B後面的P-frame有紀錄就可以救回來。) 雖ref增加有助於細節的重建機會,但還是強調一點: 過多的ref會過度拉長壓縮時間及解碼時間,一般設定1~2、不超過5是最好的。 2.bframes設定多少比較好? 由於B-frame是為低畫質而設計的、且壓縮、解碼時都會消耗較多時間 因此當高畫質時請設定為0 (減低解碼負擔,在高畫質時你的CPU需要解析很大量的數據) 低畫質的話就量力而為,最好是4或以下 一樣,過多的B-frame會過度拉長壓縮時間及解碼時間,且不一定可以提升畫質 3.如果設定ref是1,bframe設定是0,有什麼特別的影響嗎 或是提高這兩個數值,可以帶來的幫助? 有阿,如果設定成ref=1,bframe=0就可以將壓縮時間降到很低 但就失去了提升畫質的機會 不用擔心,就我的經驗 這樣設定反而好 反正數值調高也只是在浪費時間在壓縮上,畫質其實肉眼是看不太出來的 除非這隻影片有典藏的需要,不過典藏的檔案應該不至於用低畫質來壓縮吧 所以:高畫質影片 → ref=1,bframe=0    低畫質影片 → ref=2~5,bframe<5 這樣的設定相信對於影像的品質與壓縮時間的平衡會有一點幫助。 -- 我是不是不小心打太多了... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.135.213.250

12/09 00:11, , 1F
P B記得是差別在找motion vector找frame的方式
12/09 00:11, 1F

12/09 07:51, , 2F
你光這樣講是漠視 Weighted B-Frames 的存在啊 XD
12/09 07:51, 2F

12/09 10:07, , 3F
不要這麼說嘛 你想我把這些打上去會有人看得懂嗎="=
12/09 10:07, 3F

12/09 10:34, , 4F
這篇應該也沒幾個人看的懂 有興趣的人還是自行找資料看吧...
12/09 10:34, 4F

12/10 01:56, , 5F
推 之前剛接觸的時候真的有點霧煞煞 XD
12/10 01:56, 5F

12/13 03:35, , 6F
推 雖然只懂了一些,不過這部分中文的真的很難找到解說
12/13 03:35, 6F

12/28 15:47, , 7F
記得選CABAC就是了.....B frame倒是還好,SR越大有時也不見
12/28 15:47, 7F

12/28 15:47, , 8F
得好....
12/28 15:47, 8F

01/24 16:59, , 9F
推薦此篇文章
01/24 16:59, 9F
文章代碼(AID): #1C_wEhcv (AVEncode)
文章代碼(AID): #1C_wEhcv (AVEncode)