HEVC 的画质和压缩率的优势仅在超高清分辨率时才凸显,而 QSV 的画质和压缩率能和 AVC 持平,全高清及以下的分辨率, HEVC 基本上得不偿失

2020-08-25 20:40:50 +08:00
 ungrown

今天有(mo)空(yu)闲搞了个小实验,想看看 2K 以下的分辨率,包括 FHD(1920x1080)和 HD(1280x720)甚至更低分辨率时,HEVC 的画质和压缩率相比 AVC 到底有多少提升。

之前给家里影音资源大量二压的过程就隐约觉得,在 FHD 、HD 甚至更低分辨率的场景下,HEVC 似乎很得不偿失。

本来还想着通过实验找到个比较均衡的 CRF 参数供以后使用,但是结果让我大跌眼镜,很想放弃 HEVC 。

本文的 hevc 专指 ffmpeg 自带 x265 编码器,avc 专指 ffmpeg 自带 x264 编码器,qsv 专指 ffmpeg 自带 h264_qsv 编码器

[先放结论] [ 1 ] 如果画面细节是可以舍弃的,那么采用较高的 crf,25 以上甚至 28 以上,此时的 hevc 编码虽然很费时间,但是体积可以缩得很小,而且虽然细节丢失后的画面涂抹感严重,但是轮廓色块却能比较好得保留下来,相比之下此时的 avc 早已变成马赛克(实际上 avc 在默认的 crf=23 时轮廓线条已经开始轻微碎片化)。 [ 2 ] avc 的缺点随着分辨率的升高而被放大,到 4K 甚至更高的分辨率时,avc 将被 hevc 碾压,这同时符合 hevc 的设计目标和现实中的应用场景。 [ 3 ] 在 FHD 全高清乃至更低分辨率的条件下,hevc 在码率利用率上的优势不太明显,尤其在使用低 crf 压制时,hevc 相比于 avc 最多只能减小 30%左右的码率,而且相比于 avc 依然有轻微的涂抹感,会丢失一些细微细节,然而这却是耗费了几倍的编码时间换来的。

实验素材是个高码率 MMD,因为是 CG 动画,代表性还是不够广泛,但权且作为这类视频的典型例子。

软件全都是 FFmpeg,版本 4.0.2 。

codec   res     crf     ratio
+-------+-------+-------+----
hevc    x       16      .343
avc     x       16      .447
hevc    x       19      .226
avc     x       19      .322
hevc    x       22      .147
avc     x       22      .222
hevc    x       25      .099
avc     x       25      .154
hevc    x       28      .068
avc     x       28      .109
hevc    fhd     16      .257
qsv     fhd     16      .319
avc     fhd     16      .358
hevc    fhd     19      .165
qsv     fhd     19      .219
avc     fhd     19      .236
hevc    fhd     22      .109
avc     fhd     22      .159
hevc    fhd     25      .075
avc     fhd     25      .112
hevc    hd      16      .123
qsv     hd      16      .171
avc     hd      16      .176
hevc    hd      19      .083
qsv     hd      19      .12
avc     hd      19      .117
hevc    hd      22      .057
avc     hd      22      .08
hevc    hd      25      .04
avc     hd      25      .057

codec:编码器,qsv 专指 h264_qsv,我的 CPU 旧,不支持 hevc_qsv

res:输出分辨率,x 指原分辨率,fhd 指缩小到内切 1920x1080,hd 指缩小到内切 1280x720

crf:就是 crf 参数,顺便一提实验中除了 crf 和缩放没有其他参数

ratio:压缩比,输出文件相比源文件的体积比值,小数点前面的 0 省略了

有经验的人知道,avc 的 crf=23 和 hevc 的 crf=28 有点接近

但这并不代表 avc 和 hevc 输出相同画质对应的 crf 总是相差 5

crf 越小,这俩的输出画质越接近

实际上 23 以下的相同 crf 时,这俩的输出画质就已经不能一眼看出来了,得暂停、靠近、放大、截图……

但真实情况还要更复杂,因为 hevc 针对超高清优化,像素块涂抹感很严重

对于全高清以下的分辨率,hevc 细节其实丢得很多

但在 crf=16 时,hevc 、avc 、qsv 三者的画质非常接近

硬要说的话,avc 依然最佳,但与其他两个的差距可以忽略

但此时,这三者体积也很接近,hevc 顶多也就节约 20%-30%的码率

虽然对视频平台服务商来讲可以剩下很多成本

但在本地存储时,节约的空间不明显,而压制的时间却是成倍增加

所以说 hevc 得不偿失撒(对个人、家用)

如果增大 crf,19 也还行,22 算是个分水岭

再往上,细节的丢失可以被轻易地感知,但很多时候用户就是不需要保留这些细节

比如说,我之前一直把家里的电影统一缩小到内切 1280x720,用 crf=25 压制成 hevc

“看电影看的是故事不是像素点”

一些值得收藏的视频则会用 crf=28,当然也是 hevc

“以后重看时大概看个意思就行了”

这么看来,hevc 虽然非常耗时,但能用低码率牺牲细节保留轮廓,也是个很不错的应用面

那如果要保留细节、输出高画质、又要二压减小体积呢?

我以前一直采用 crf<22 的 hevc,但通过这次实验,我觉得该换思路

既然此时 hevc 画质没有优势,体积没有优势,耗时劣势拉满,那为什么不用 avc 呢

既既然此时 qsv 无论是画质、体积都和 avc 相差无几甚至偶有反超,而速度却数倍于 avc,那为什么不用 qsv 呢

全文完

8701 次点击
所在节点    FFmpeg
86 条回复
ouqihang
2020-08-25 21:48:47 +08:00
@mxalbert1996 #18 我一直以为,那些收藏的人都存的是原盘,至少都是 remux,想不到还会转成小体积文件。
ungrown
2020-08-25 21:53:03 +08:00
@minami #19 还行,这次实验,以及跟你和另外几位的交流,已经帮我把方案定下来了,我上面也说过了,就是分两种情况:
低分辨率高画质,低 crf 值,qsv,速度极快,体积只比 hevc 高 20%-30%,画质细节保留得还比 hevc 多(当然 hevc 调参数应该也能追上来,但是 hevc 太慢了);
低分辨率低画质,高 crf 值,hevc,速度慢,但是体积很小,非常小,真正意义上同等画面比 avc 少了一半(甚至更少),画面涂抹感比较明显,丢了不少细节,但是轮廓线条清晰(此时如果用 avc 已经成了马赛克了)。
ungrown
2020-08-25 22:00:36 +08:00
@mxalbert1996 #18 还有忘了说,我可能一直都没说得足够清楚——画质是可以牺牲的,画质是永远都可以牺牲的,所以“更懂调参”这是你自我代入脑补了。
用 500kbps 码率就能清楚表达的故事,为什么我要浪费几千 kbps 的码率?
720p@800kbps 的画质会丢失暗场、丢失每一滴雨水、丢失一小部分衣服纹理皮肤褶皱,然而这些细节难道不是本来就是多余的吗?
动画的高离散特性导致它需要更高的码率保留画面的锐利感,但是适当提高足矣。
现在最让我不服的就是收藏的 mmd,码率实在是降不到 2000kbps 以下,我考虑降低此类视频的分辨率档次,以后全部二压成 720p 试试看。
ungrown
2020-08-25 22:01:49 +08:00
@ouqihang #21 原盘和 bd-rip 的唯一价值是作为高清晰度的“源”,为二压提供基准
zhuangku556
2020-08-25 22:08:36 +08:00
我就不会去二压,要么就下 bdrip 大概一个半小时的 1080P 15GB 左右,要么还是下 bdrip,但是 70GB 左右的 hevc 的 4K HDR 版,比如小丑 /1917 这种。
darer
2020-08-25 22:15:57 +08:00
x265 关一下 sao 试试
(--no-sao )
mxalbert1996
2020-08-25 22:49:37 +08:00
@ungrown 我猜测你什么流程了?你打这么多字也许是想炫耀一下你有多会节省空间,但在我和其他很多人看来这不过就是花几百块钱买几块硬盘的事。能用钱解决的事情何必花时间?至于高清和细节是不是伪需求,你先去问问内容创作者是怎么想的吧。
ungrown
2020-08-25 22:56:53 +08:00
@zhuangku556 #25 我这一部电影基本不超过一个 G,动作场景少的片不超过 500M
ungrown
2020-08-25 23:05:53 +08:00
@mxalbert1996 #27 压片花我什么时间了?编码器需要我去帮它跑吗?我整套流程操作一下只占用几十秒到一两分钟的事情,我还至少展现了智慧和勤劳,你买了一堆硬盘除了空耗电能存些这辈子都不一定看几遍的东西,显得你有能耐?你那些高清动辄几十个 G,我耗费要少于你的资源消耗远少于你的能量依赖要少于你的设备零部件占据远少于你的空间却获得原超于你的体验,在你这种不动脑子不动手只会空口叫嚣花钱实则送钱的人面前我不显摆显摆对得起你的花出去的冤枉钱的吗?

另外创作者是最明白高清纯属伪需求的人群,各大平台哪个不二压?哪个二压码率能喂饱?平台商怂恿创作者配合他们坑用户呢,他们说的话他们自己都不信,你作为被骗的小白鼠你起什么劲?
ungrown
2020-08-25 23:07:04 +08:00
@darer #26 多谢,我看看
ayconanw
2020-08-25 23:43:50 +08:00
压片对厂商来说是一次性成本,而带宽是每天都要花钱的
redeemer1001
2020-08-26 00:30:58 +08:00
@ungrown #29 你开心就好😂
jones2000
2020-08-26 00:35:24 +08:00
个人用户没必要压片,直接 PT 上下 4K 原盘( 60G-90G )就可以了,硬盘现在很便宜。 看 4K 图的就是高清+ATMOS 音效。
ungrown
2020-08-26 00:41:19 +08:00
@ayconanw #31 还有另外一个前提:厂商提供的视频画质都是中等,对应到实验数据的表格中,就是分辨率高,但是 crf 也比较高,这个时候,hevc 相比 avc 可以获得 30%-50%的码率降低,厂商就很开心,编码方案商就更开心了
ungrown
2020-08-26 00:43:37 +08:00
@jones2000 #33 看电影看的是故事是剧情不是像素点,听的是台词是配乐不是声道和音效,反正我是不愿意为了这些额外的修饰多付出哪怕 100kbps,更别提几十 GB 的空间了
ungrown
2020-08-26 00:45:44 +08:00
@redeemer1001 #32 怎么了你不开心吗
ynyounuo
2020-08-26 00:59:34 +08:00
不是一类人非要互甩 epeen 也太没必要了。
est
2020-08-26 01:28:18 +08:00
不懂就问,行车记录仪 2k 分辨率视频怎么压参数怎么设最好?至少得能看清楚前面车牌号为准
mxalbert1996
2020-08-26 07:05:36 +08:00
@ungrown 对于你这种一副众人皆醉我独醒的心态并且通过人身攻击来满足自尊的人我是没什么可说的了,毕竟很多事也是主观的。不过还是要提醒你压片的功耗可比硬盘的功耗高得多了,这可是客观事实哦。
ungrown
2020-08-26 07:18:03 +08:00
@mxalbert1996 #39 这点你错得离谱,硬盘功率虽然比 CPU 满载功率低,但转码是一次性工作,硬盘是 365x24 小时不停,一部电影转码三四个小时耗的电,相比其在硬盘上一直呆着耗的电,简直杯水车薪,多么简单的计算题。这还只是考虑单硬盘的情况,像你们那样硬盘位恨不得插满的,总硬盘功耗都接近我笔记本的 CPU 满载功耗了,硬盘全年空转耗费的电能就为了里面那些几乎不会再去看一眼的“收藏”?众人皆醉我独醒这话原封不动送给你,为了面子连算术题都不会做的人,居然还有脸来“攻击”我说我“攻击”你?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/701397

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX