本篇文章主要介绍了"FPGA----视频下采样------分辨率转换-----yuv444----yuv420 ",主要涉及到FPGA----视频下采样------分辨率转换-----yuv444----yuv420 方面的内容,对于FPGA----视频下采样------分辨率转换-----yuv444----yuv420 感兴趣的同学可以参考一下。
1、分辨率下采样:1080P到720P
1080P即:1920*1080
720P即: 1280*720
a:列变换:1920--1280
a.1:求最大公约数 为640
a.2:1920/640=3; 1280/640=2
a.3:裁剪比为2/3=1280/1920 即1920的视频每3列取2列,丢一列,做为1280的视频
b:行变换:1080--720
b.1:求最大公约数 为360
b.2:1920/360=5; 1280/360=3
b.3:裁剪比为3/5=720/1080 即1080的视频每5行取2行,丢一行,做为720的视频
2、YUV444--YUV422
列 像素点1 像素点2 像素点3 像素点4
YUV444 YUV YUV YUV YUV
YUV422 YU YV YU YV
3、YUV422--YUV420
YUV422第一行 YU YV YU YV
YUV422第二行 YU YV YU YV
YUV422第三行 YU YV YU YV
YUV422第四行 YU YV YU YV
YUV422第五行 YU YV YU YV
YUV422第六行 YU YV YU YV
变换:将偶数行的颜色分量丢弃
YUV420第一行 YU YV YU YV
YUV420第二行 Y Y Y Y
YUV420第三行 YU YV YU YV
YUV420第四行 Y Y Y Y
YUV420第五行 YU YV YU YV
YUV420第六行 Y Y Y Y
4、RGB到YUV转
Y <= ( (263 * iRed) + (516 * iGreen) + (100 * iBlue) + 16384)>>10;
U <= ( (450 * iRed) - (377 * iGreen) - ( 73 * iBlue) + 131072)>>10;
V <= (-(152 * iRed) - (298 * iGreen) + (450 * iBlue) + 131072)>>10;
注意:
如果时钟频率过高、组合逻辑耗费时间太长、FPGA等级低---即变为流水线来实现
如果为BT655传输:Y/U/V的值应该在-- 16<Y/U/V<235