0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

一文知道fpga如何實(shí)現(xiàn)YCbCr422轉(zhuǎn)YCbCr444

FPGA開源工作室 ? 來源:搜狐網(wǎng) ? 作者:搜狐網(wǎng) ? 2020-09-27 18:10 ? 次閱讀

1 YCbCr顏色空間

YCbCr顏色空間是YUV顏色空間的縮放和偏移版本。Y定義為8bit,標(biāo)稱顏色范圍為16-235;Cb和Cr標(biāo)稱顏色表示范圍為16-240。YCbCr的采樣格式一般有44、42、41、和40。

1.1 44 YCbCr格式

圖1表示44格式Y(jié)CbCr采樣點(diǎn)的定位。每個采樣點(diǎn)有Y、Cb和Cr值,每個顏色值的顏色分量為8bit(典型),因此每個采樣點(diǎn)24bit。

圖1 44采樣

1.2 42 YCbCr格式

圖 2表示42格式Y(jié)CbCr采樣點(diǎn)定位。對于每兩個水平Y(jié)采樣點(diǎn),有一個Cb和一個Cr采樣點(diǎn)。

圖2 42協(xié)調(diào)位置采樣

2 matlab YCbCr422轉(zhuǎn)YCbCr444

在上一期的基礎(chǔ)上將YCbCr422再轉(zhuǎn)回YCbCr444

close all

clear all

clc

I=imread('1.bmp');

[H ,W ,D]=size(I);

R=double(I(:,:,1));

G=double(I(:,:,2));

B=double(I(:,:,3));

Y0= double(zeros(H,W));

Cb0 =double(zeros(H,W));

Cr0 = double(zeros(H,W));

Cb1 =double(zeros(H,W/2));

Cr1 = double(zeros(H,W/2));

CbCr = double(zeros(H,W));

Cb =double(zeros(H,W));

Cr = double(zeros(H,W));

%RGB轉(zhuǎn)YCbCr444

for i = 1:H

for j = 1:W

Y0(i, j) = 0.299*R(i, j) + 0.587*G(i, j) + 0.114*B(i, j);

Cb0(i, j) = -0.172*R(i, j) - 0.339*G(i, j) + 0.511*B(i, j) + 128;

Cr0(i, j) = 0.511*R(i, j) - 0.428*G(i, j) - 0.083*B(i, j) + 128;

end

end

for i=1:1:H

for j=2:2:W

Cb1(i,j/2)=(Cb0(i,j-1)+Cb0(i,j))/2;

end

end

for i=1:1:H

for j=2:2:W

Cr1(i,j/2)=(Cr0(i,j-1)+Cr0(i,j))/2;

end

end

for i=1:1:H

for j=1:1:W

if rem(j,2)==0

CbCr(i,j)=Cr1(i,j/2);

else

CbCr(i,j)=Cb1(i,(j+1)/2);

end

end

end

%由YCbCr422轉(zhuǎn)出YCbCr444

%Cb

for i=1:1:H

for j=1:1:W

if rem(j,2)==0

Cb(i,j)=Cb1(i,j/2);

else

Cb(i,j)=Cb1(i,(j+1)/2);

end

end

end

%Cr

for i=1:1:H

for j=1:1:W

if rem(j,2)==0

Cr(i,j)=Cr1(i,j/2);

else

Cr(i,j)=Cr1(i,(j+1)/2);

end

end

end

CbCr=uint8(CbCr);

YCbCr(:,:,1)=Y0;

YCbCr(:,:,2)=Cb;

YCbCr(:,:,3)=Cr;

YCbCr=uint8(YCbCr);

Y=uint8(Y0);

Cb=uint8(Cb);

Cr=uint8(Cr);

%YCbCr422中的CbCr交替

figure(1),

imshow(CbCr),title('CbCr');

figure(2),

subplot(221),imshow(Cb),title('Cb');

subplot(222),imshow(Cr),title('Cr');

subplot(223),imshow(Y),title('Y');

subplot(224),imshow(YCbCr),title('YCbCr');

figure(3),

imshow(YCbCr),title('YCbCr');

CbCr細(xì)節(jié)放大為一幅CbCr交錯的圖像。

YCbCr444的Y分量為一幅灰度圖像。

上圖為YCbCr422轉(zhuǎn)換后的YCbCr444

3 fpga仿真實(shí)現(xiàn)

module YUV422_2YUV444(

input clk,//系統(tǒng)時鐘

input rst_n,

input[7:0] y_i,//輸入視頻亮度信號y

input[7:0] cbcr_i,//輸入視頻色度信號cbcr

input de_i,//輸入視頻有效

input hs_i,//輸入視頻行同步

input vs_i,//輸入視頻場同步

output [7:0] y_o,//輸出視頻亮度分量y

output[7:0] cb_o,//輸出視頻Cb分量

output[7:0] cr_o,//輸出視頻Cr分量

output reg de_o,//輸出視頻有效

output reg hs_o,//輸出視頻行同步

output reg vs_o//輸出視頻場同步

);

reg flag;//CbCr分離時標(biāo)記信號

reg[7:0] cbcr_r,cbcr_r1,y_r;

assign cb_o = (flag==1'b0)?cbcr_r:cbcr_r1;

assign cr_o = (flag==1'b0)?cbcr_i:cbcr_r;

assign y_o = y_r;

always@(posedge clk)

begin

de_o <= de_i;

hs_o <= hs_i;

vs_o <= vs_i;

cbcr_r<=cbcr_i;

cbcr_r1<=cbcr_r;

y_r<=y_i;

end

always@(posedge clk or negedge rst_n)

begin

if(~rst_n)

flag <= 1'b0;

else if(de_o==1'b1)

flag <= ~flag;

else

flag <= 1'b0;

end

//將CbCr分開,并復(fù)制

//如:CbYCrYCbYCrY --> CbCrYCbCrYCbCrYCbCrY

endmodule

fpga實(shí)現(xiàn)YCbCr422轉(zhuǎn)YCbCr444,效果和matlab一致。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1629

    文章

    21744

    瀏覽量

    603655

原文標(biāo)題:fpga實(shí)現(xiàn)YCbCr422轉(zhuǎn)YCbCr444

文章出處:【微信號:leezym0317,微信公眾號:FPGA開源工作室】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    NCS8803芯片HDMI轉(zhuǎn)EDP功能簡介

    supportedRGB444/YCbCr444/YCbCr422 supportedPixel clock up to 340MHz2-channel audio
    發(fā)表于 07-05 09:14

    HDMI轉(zhuǎn)EDP芯片NCS8803簡介

    supportedRGB444/YCbCr444/YCbCr422 supportedPixel clock up to 340MHz2-channel audio supportedAdaptive
    發(fā)表于 07-27 09:01

    YCbCr色彩空間和RGB色彩空間之間的轉(zhuǎn)換方法介紹

    分辨率的視頻轉(zhuǎn)換,而且支持YCbCr444、YCbCr422YCbCr420等多種打包或平面YCbCr格式。本設(shè)計方案已用VerilogHDL語言
    發(fā)表于 07-01 06:41

    【穩(wěn)定方案】轉(zhuǎn)接/轉(zhuǎn)換芯片NCS8827 IC:HDMI to CVBS

    format of PAL or NTSC**HDMI輸入**:HDMI InputSupport HDMI 1.4RGB444/YCbCr444/YCbCr422 supported2-channel
    發(fā)表于 07-26 18:00

    轉(zhuǎn)換IC/轉(zhuǎn)接芯片NCS8828:HDMI-to-YPbPr

    /YCbCr444/YCbCr422 supportedPixel clock up to 166MHz2-channel audio supportedSupport Hot-Plug
    發(fā)表于 07-30 11:59

    NCS8803芯片HDMI轉(zhuǎn)EDP功能簡介

    InputHDMI 1.4a supportedRGB444/YCbCr444/YCbCr422 supportedPixel clock up to 340MHz2-channel audio
    發(fā)表于 04-23 15:57

    NCS8803 HDMI轉(zhuǎn)EDP芯片規(guī)格書

    /YCbCr444/YCbCr422像素時鐘: 340MHz支持雙通道音頻輸入;參考時鐘任何頻率,在19MHz到100MHz之間,單端時鐘輸入 內(nèi)置5000 ppm SSC與否通信方式:IIC電源1.2V
    發(fā)表于 12-10 17:09

    NCS8803芯片HDMI轉(zhuǎn)EDP功能簡介

    InputHDMI 1.4a supportedRGB444/YCbCr444/YCbCr422 supportedPixel clock up to 340MHz2-channel audio
    發(fā)表于 04-20 16:00

    請問在FPGA上怎么實(shí)現(xiàn)從RGB轉(zhuǎn)換到YCbCr?

    本文推導(dǎo)出種適合在FPGA實(shí)現(xiàn)從RGB到YCbCr。顏色空間變換的新算法,采用單片FPGA完成電路設(shè)計,利用
    發(fā)表于 04-29 06:57

    NCS8803 HDMI轉(zhuǎn)EDP芯片規(guī)格書

    /YCbCr444/YCbCr422像素時鐘: 340MHz支持雙通道音頻輸入;參考時鐘任何頻率,在19MHz到100MHz之間,單端時鐘輸入 內(nèi)置5000 ppm SSC與否通信方式:IIC電源1.2V
    發(fā)表于 08-02 10:11

    NCS8803 HDMI轉(zhuǎn)EDP芯片規(guī)格書

    /YCbCr444/YCbCr422像素時鐘: 340MHz支持雙通道音頻輸入;參考時鐘任何頻率,在19MHz到100MHz之間,單端時鐘輸入 內(nèi)置5000 ppm SSC與否通信方式:IIC電源1.2V
    發(fā)表于 04-19 10:37

    MS2109視頻傳采集晶片參數(shù)特性介紹 HDMI轉(zhuǎn)USB

    DVI1.0,支持HDCP1.42.最大輸入解析度3840*2160@30HZ3.支持RGB444,YCBCR422,YCBCR444,YCBCR420 color space4.支持
    發(fā)表于 04-19 17:22

    MS2109視頻傳采集晶片參數(shù)特性介紹 HDMI轉(zhuǎn)USB

    DVI1.0,支持HDCP1.42.最大輸入解析度3840*2160@30HZ3.支持RGB444,YCBCR422,YCBCR444,YCBCR420 color space4.支持
    發(fā)表于 05-10 14:43

    MS2109視頻傳采集晶片參數(shù)特性介紹 HDMI轉(zhuǎn)USB

    DVI1.0,支持HDCP1.42.最大輸入解析度3840*2160@30HZ3.支持RGB444,YCBCR422,YCBCR444,YCBCR420 color space4.支持
    發(fā)表于 05-27 11:14

    實(shí)現(xiàn)matlab YCbCr444轉(zhuǎn)YCbCr422實(shí)例

    采樣 1.2 42 YCbCr格式 圖 2表示42格式YCbCr采樣點(diǎn)定位。對于每兩個水平Y(jié)采樣點(diǎn),有個Cb和個Cr采樣點(diǎn)。 圖2 42協(xié)調(diào)位置采樣 2 matlab
    的頭像 發(fā)表于 09-27 11:32 ?4773次閱讀
    <b class='flag-5'>實(shí)現(xiàn)</b>matlab <b class='flag-5'>YCbCr444</b><b class='flag-5'>轉(zhuǎn)</b><b class='flag-5'>YCbCr422</b>實(shí)例