FPGA----视频下采样------分辨率转换-----yuv444----yuv420

本篇文章主要介绍了"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