zoukankan      html  css  js  c++  java
  • FFMPEG YUV444P scale过程

    av_cold void ff_sws_init_swscale_x86(SwsContext *c)
    {
        int cpu_flags = av_get_cpu_flags();
    
    ...
          c->yuv2planeX = yuv2yuvX_sse3;
            hscalefn = c->dstBpc <= 14 ? ff_hscale8to15_ ## filtersize ## _ ## opt2 : 
                                         ff_hscale8to19_ ## filtersize ## _ ## opt1;    // 相当于c->hyScale = ff_hscale8to15_8_sse2
        c->hcScale = ff_hscale8to15_8_sse2
     
        c->yuv2planeX = ff_yuv2planeX_8_sse2  //vscale
        c->yuv2plane1 = ff_yuv2plane1_8_sse2
      ...
        c->hyScale = ff_hscale8to15_8_ssse3
        c->hcScale = ff_hscale8to15_8_ssse3
    }
     

    最后得到的值:

    yuv2plane1                <ff_yuv2plane1_8_sse2>,   ×

    yuv2planeX = 0x112ae60 <yuv2yuvX_sse3>,   //两个都变垂直 ✔

    hyScale      = 0x1180090 <ff_hscale8to15_8_ssse3>, //水平     ✔     instance->filter = 8192, 7142, 1972, 64844, 65306, 0, 0, 0, 64614, 1972   filter size = 8

    hcScale      = 0x1180090 <ff_hscale8to15_8_ssse3>  ✔                    instance->filter= 8192 7142 ....................................................................... filter size = 8

    FFMPEG YUV444P  -> NV12过程  未缩放

    yuv2plane1 = 0x11758b0 <ff_yuv2plane1_8_avx>,   ✔      缩放y通道

    yuv2planeX = 0x11751e0 <ff_yuv2planeX_8_avx>,    

    yuv2nv12cX = 0x113bac0 <yuv2nv12cX_c>,          ✔       将uv merge 起来

    hyScale = 0x1180010 <ff_hscale8to15_4_ssse3>,  ✔       缩放y plane 的 水平方向

    hcScale = 0x1180090 <ff_hscale8to15_8_ssse3>,   ✔      缩放 u plane 的水平方向   v plane 的水平方向

        

  • 相关阅读:
    强弱类型 静态语言 动态语言 || 脚本语言
    mysql版本升级问题处理
    word
    IntelliJ IDEA 插件
    dubbo
    spring源码构建
    zookeeper 本地多线程模拟分布式事务控制及配置中心
    一次性关闭所有的Activity
    可能以后用得到得东西
    Thread.sleep还是TimeUnit.SECONDS.sleep
  • 原文地址:https://www.cnblogs.com/luoyinjie/p/14519434.html
Copyright © 2011-2022 走看看