• 测试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比特,然后有些算法上下文需要重置,以及帧内预测不能在片内做。(本人的理解。)

  • 相关阅读:
    windows phone 自动隐藏的Popup from http://www.cnblogs.com/LoveJenny/archive/2011/07/14/2105869.html
    Linq update
    Windows Phone 7 MVVM模式数据绑定和传递参数 from:http://www.cnblogs.com/linzheng/archive/2011/03/27/1997086.html
    web 常见攻击与防护
    SFSA
    HDU 3530
    一笔话问题
    学习技巧
    练题宝典
    雪花
  • 原文地址:https://www.cnblogs.com/lihaiping/p/4224209.html
Copyright © 2020-2023  润新知