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

你可能感兴趣的:(YUV,RGB)