@
sgissb1 谢谢提问,文章作为测试程序分享,测试结果其实只是简单的和大家分享一些数据。没对具体参数进行详细说明还请见谅。
首先,简单讲一下 x264 和 x265 。目前圈内的公认, x265 的编码速度问题特别大,效率提升也没有太高。金山云算法团队是从零代码开始写了三年,其中辛苦一般人很难知道。另外 JCTVC 测试 video 已经规定了输入 yuv 的各种参数格式,大家可以参阅 HM 制定时的文档。
其次,我们也在 Github 上补充上传了详细的测试 excel (包含比对参数),具体说明如下:
x264.exe -o out.264 /home/qytest/yuvfiles/BQSquare_416x240_60.yuv --input-res 416x240 --preset [veryfast/slow/placebo] --fps [framerate] --profile high --aq-mode 0 --no-psy --psnr --bitrate [number] --keyint [framerate * 10] --frames 1000000
x265.exe -o out.265 --input /home/qytest/yuvfiles/BQSquare_416x240_60.yuv --input-res 416x240 --preset [ultrafast/slow/placebo] --fps [framerate] --aq-mode 0 --no-psy-rd --no-psy-rdoq --psnr --bitrate [number] --frame-threads 1 --keyint [framerate * 10] --frames 1000000
AppEncoder_x64.exe -b out.265 -i /home/qytest/yuvfiles/BQSquare_416x240_60.yuv -preset [veryfast/slow/veryslow] -tune offline -psnr 2 -rc 1 -br [number] -frms 1000000 -iper [framerate * 10]
对于您这提的十几个问题,还请参下:
问题 1 : vbr?cbr?(显然视频编码很少用了 cbr )
一般情况下, CBR 码率波动小,但是压缩率不如 ABR 。在比较中为了公平, X265 用默认配置 abr ,我们也是一种 ABR 的优化,这样的比较是公平的。
问题 2 :比较时候的 gop 参数?
I 帧间隔要一样才能保证公平。在 excel 中已经给了详细的参数。如果此处 gop 是指 I 帧间隔的话,那大部分测试情况是 10*fps 。
问题 3 :比较时候的 fps 都多少
JCTVC 的 yuv video 已经给出了 yuv 的 fps ,必须按照这个值进行设置。例如 BQSquare_416x240_60.yuv 的帧率就是 60
问题 4 :编译参数是什么样的,有没有对特定平台做过优化?浮点和定点数支持如何?
编译参数就是 x265 的默认配置,再说,我们跟 x265 是在相同平台下编译的,能用的汇编指令都是相同打开或关闭。
问题 5 :宏块支持范围
都是在 HEVC 标准范围内。
问题 6 :预处理做了哪些?
没做过任何预处理,直接编 YUV 以方便公平比较。
问题 7 : i b p 如何排列(和问题 2 部分重合)
X265 用默认的参数,例如 badapt 在各个档次下的打开或关闭。 ks265 的各档次默认 B 帧数量不一定与 x265 相同。具体情况可以下载测试程序自行实验。
问题 8 :时间戳精度如何?(如果在 codec 之后做了时间戳计算或打时间戳)
X265 和 ksc265 一样,都是视频编码器。时间戳的精度和修改不影响编码效率。真正商用编码器是 ffmpeg+x265 或 ksc265 。
问题 9 :码率控制如何?( x265 代码我没看过,但很多编码器支持码率控制)
Excel 中已经给出,实验结果就是码率控制下的结果。
问题 10 :压缩比的比较?(请尽可能在相同压缩参数下比较一下,如有不同请说明哪些不同)
业内的人都知道,应该用 4 个码率点的 BDRATE 函数来计算码率节省,如附件的 excel.
问题 11 :最大支持分辨率?(请比较 x265 和金山 x265 )
都跟 HM 一致。 4K 视频没有问题,更高分辨率的没有实验过。
问题 12 :压缩时内存占用比较?(请尽可能在相同压缩参数下比较一下,如有不同请说明哪些不同)
可以下载测试程序自行实验。实际内存占用应该与 x265 相当。
问题 13 :两个 codec 解码性能比较如何?
我们发布的同时包含编码器以及解码器, x265 中并没有解码器。如果要比较解码器性能可以用 openhevc 或者其他解码器。发布没有提供解码器相关测试结果。
问题 14 :什么样的硬件平台上比较?有没有用到 cpu 某些特定的指令集之类,两个编码器之间的指令区别!
我们在 excel 中给出了详细的平台信息。
本测试为 x265v1.9 版本与 QY265v2.2.0 版本离线编码对比测试,测试设备为台式机( Win7 操作系统, i5-4670 四核 CPU , 8G 内存)
指令集方面,支持到 AVX2.
问题 15 :如果金山 x265 与 x265 之间的区别类似, openh264 和 x264 的区别;那请说明,不要来这么大的标题和内容。不是不相信国人做不出 codec ,而是太哗众取宠了,尽管 v 站做编解码算法的人未必很多,我也不是一个专业的人士。但请理性和科学的对待技术和知识,如果就连金山这么大的公司,也和某些大厂商一样玩虚的,那就没多少意思了。谢谢!
openh264 面向实时视频通信,只有一个速度档次,只有 ippp ,功能只是 x264 一个非常小的子集。我们同 x264 一样,面向所有速度档次和所有应用场景。真心没玩虚的。我们是从 0 代码开始写,跟 x265 的框架基本没有关系。不过我们是商业公司,现在不到开源的时候,开放测试程序公开测试是一定程度的诚意,以上所有问题,对于专业人士来说,一测便知。只说测试结果,不开放测试程序才是真的没诚意。
最后,欢迎大家一同探讨分享。谢谢!