作者hate56 (斯沟已内~欧八降)
看板AVEncode
标题Re: [请问] x264 的 bframes 跟 reframe
时间Wed Dec 8 23:26:33 2010
※ 引述《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
1F:推 xvid:P B记得是差别在找motion vector找frame的方式 12/09 00:11
2F:→ tinlans:你光这样讲是漠视 Weighted B-Frames 的存在啊 XD 12/09 07:51
3F:→ hate56:不要这麽说嘛 你想我把这些打上去会有人看得懂吗="= 12/09 10:07
4F:→ xvid:这篇应该也没几个人看的懂 有兴趣的人还是自行找资料看吧... 12/09 10:34
5F:推 gohome0083:推 之前刚接触的时候真的有点雾煞煞 XD 12/10 01:56
6F:推 twoseven:推 虽然只懂了一些,不过这部分中文的真的很难找到解说 12/13 03:35
7F:推 ARM123:记得选CABAC就是了.....B frame倒是还好,SR越大有时也不见 12/28 15:47
8F:→ ARM123:得好.... 12/28 15:47
9F:→ goldie:推荐此篇文章 01/24 16:59