zoukankan      html  css  js  c++  java
  • 测试x264编码器的低延时编码和非延时编码

    最近在学x264的编码,经过大量的测试,编码1080P的视频,编码10000帧数据。

    在设置为低延时编码的时候:

    编码线程0,一帧耗时:7.000000 ms.
    编码线程0,一帧耗时:8.000000 ms.
    编码线程0,一帧耗时:7.000000 ms.
    编码线程0,一帧耗时:8.000000 ms.
    编码线程0,一帧耗时:8.000000 ms.
    编码线程0,一帧耗时:7.000000 ms.
    编码线程0,一帧耗时:7.000000 ms.
    编码线程0,一帧耗时:7.000000 ms.
    编码线程0,一帧耗时:7.000000 ms.
    编码线程0,一帧耗时:7.000000 ms.
    编码线程0,一帧耗时:7.000000 ms.
    编码线程0,一帧耗时:7.000000 ms.
    编码线程0,一帧耗时:7.000000 ms.
    编码线程0,一帧耗时:7.000000 ms.
    编码线程0,一帧耗时:6.000000 ms.
    编码线程0,平均帧编码时间7.24ms.
    编码线程0,总编码帧数:10000,得到编码帧数:10000,延时编码帧数:0,单帧最小耗时:5.00,最大耗时:18.00,总消耗时间:104274.000 ms,总编码耗时:72352 ms,平均耗时:0 ms.
    结束:1 路编码平均总时间=104274.000000.
    结束!!
    出第一帧的时间,耗时7ms.
    ==============================
    CPU:
    4路编码,25帧2倍速,CPU:65~75%
    5路编码,25帧2倍速,CPU:90~95%
    8路编码,25帧1倍速,CPU:60~70%

    当设置为非延时编码时:

    编码线程0,一帧耗时:2.000000 ms.
    编码线程0,一帧耗时:1.000000 ms.
    编码线程0,一帧耗时:1.000000 ms.
    编码线程0,一帧耗时:1.000000 ms.
    编码线程0,一帧耗时:1.000000 ms.
    编码线程0,一帧耗时:4.000000 ms.
    编码线程0,一帧耗时:1.000000 ms.
    编码线程0,一帧耗时:1.000000 ms.
    编码线程0,一帧耗时:1.000000 ms.
    编码线程0,一帧耗时:1.000000 ms.
    编码线程0,一帧耗时:1.000000 ms.
    编码线程0,一帧耗时:5.000000 ms.
    编码线程0,一帧耗时:1.000000 ms.
    编码线程0,一帧耗时:1.000000 ms.
    编码线程0,一帧耗时:2.000000 ms.
    编码线程0,取延时帧,一帧耗时:0.000000 ms.
    编码线程0,取延时帧,一帧耗时:0.000000 ms.
    编码线程0,取延时帧,一帧耗时:2.000000 ms.
    编码线程0,取延时帧,一帧耗时:2.000000 ms.
    编码线程0,取延时帧,一帧耗时:0.000000 ms.
    编码线程0,取延时帧,一帧耗时:0.000000 ms.
    编码线程0,平均帧编码时间1.48ms.
    编码线程0,总编码帧数:10000,得到编码帧数:10000,延时编码帧数:6,单帧最小耗时:0.00,最大耗时:24.00,总消耗时间:45206.000 ms,总编码耗时:14774 ms,平均耗时:0 ms.
    结束:1 路编码平均总时间=45206.000000.
    结束!!
    出第一帧的时间,耗时47ms

    ==============================
    CPU:
    8路编码,25帧1倍速,CPU:65~80%
    5路编码,25帧2倍速,CPU:85~95%
    4路编码,25帧2倍速,CPU:55~65%

    差距这么大,我自己也惊讶了。

    查找了下原因:

    (官方)

    Each slice adds some bitrate (or equivalently reduces quality), for a variety of reasons: the slice header costs some bits, cabac contexts are reset, mvs and intra samples can't be predicted across the slice boundary.
    因为采用低延时编码的时候,每个切片添加了bitrate比特,然后有些算法上下文需要重置,以及帧内预测不能在片内做。(本人的理解。)

  • 相关阅读:
    C# 为WebBrowser设置代理,打开网页
    C# WebBrowser 设置代理完全解决方案
    java读取文件的几种方式性能比较
    .NET 对文件和文件夹操作的介绍
    java利用反射打印出类的结构
    java输出月的日历控制台
    java 实现二分查找算法
    java实现快速排序
    解决window 12 service 不能调用excel ,报"System.Runtime.InteropServices.COMException (0x800A03EC)
    3 webpack 4 加vue 2.0生产环境搭建
  • 原文地址:https://www.cnblogs.com/lihaiping/p/4224209.html
Copyright © 2011-2022 走看看