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 的水平方向

        

  • 相关阅读:
    10. 正则表达式匹配
    124. 二叉树中的最大路径和。 递归
    1028. 从先序遍历还原二叉树。 深搜
    1014. 最佳观光组合. 转变思路
    297. 二叉树的序列化与反序列化.
    1300. 转变数组后最接近目标值的数组和. 二分
    15. 三数之和. 双指针法⭐
    1. 两数之和. 哈希表
    739. Daily Temperatures. 单调栈
    面试题46. 把数字翻译成字符串. 递归
  • 原文地址:https://www.cnblogs.com/luoyinjie/p/14519434.html
Copyright © 2011-2022 走看看