FFMPEG YUV444P scale过程
av_cold void ff_sws_init_swscale_x86(SwsContext *c) { int cpu_flags = av_get_cpu_flags(); ... c->yuv2planeX = yuv2yuvX_sse3;
最后得到的值:
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 的水平方向