久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3673|回復: 0
收起左側

我的顏色空間變換YCBCR to RGB 設計Verilog代碼

[復制鏈接]
ID:425181 發表于 2018-11-12 18:45 | 顯示全部樓層 |閱讀模式
我的顏色空間變換YCBCR to RGB 設計代碼
用于視頻格式轉換
  1. `timescale 1ps/1ps
  2. module YCbCr2RGB (        
  3.                   //iRESET,
  4.                   iCLK,
  5.                   iY,
  6.                   iCb,
  7.                   iCr,

  8.                   Red,
  9.                   Green,
  10.                   Blue
  11.                                    );

  12.                                         //csc1
  13. //scale up to 10bit = 1024
  14. parameter R_Y_CST   =  18'h004A8,
  15.           R_CB_CST  =  18'h00000,
  16.           R_CR_CST  =  18'h00662;
  17.                        
  18. parameter G_Y_CST   =  18'h004A8,
  19.           G_CB_CST  =  18'h3FE70,
  20.           G_CR_CST  =  18'h3FCBF;
  21.                        
  22. parameter B_Y_CST   =  18'h004A8,
  23.           B_CB_CST  =  18'h00812,
  24.           B_CR_CST  =  18'h00000;
  25. parameter R_CST     =  228262; //183763; // 183251;//227750   228352  228262
  26. parameter G_CST     =  138740; //138710;//139222;//139252   139264  138740
  27. parameter B_CST     =  283574; //232260;//231748;  //283062  283648  283574   


  28.          






  29. ////csc2
  30. //parameter R_Y_CST   =  18'h00400,
  31. //          R_CB_CST  =  18'h00000,
  32. //          R_CR_CST  =  18'H0059C;
  33. //                       
  34. //parameter G_Y_CST   =  18'h00400,
  35. //          G_CB_CST  =  18'H3FEA0,
  36. //          G_CR_CST  =  18'H3FD25;
  37. //                       
  38. //parameter B_Y_CST   =  18'h00400,
  39. //          B_CB_CST  =  18'H00717,
  40. //          B_CR_CST  =  18'h00000;
  41. //         
  42. //parameter R_CST     =  183763; // 183251;//227750   228352  228262
  43. //parameter G_CST     =  138710;//139222;//139252   139264  138740
  44. //parameter B_CST     =  232260;//231748;  //283062  283648  283574         
  45.          

  46. parameter CST_YUV_Prec  =  10;

  47. //// scale up to 12bit = 4096  
  48. //parameter R_Y_CST  = 20'h012A0,
  49. //          R_CB_CST = 20'h00000,
  50. //          R_CR_CST = 20'h01989;
  51. //         
  52. //parameter G_Y_CST  = 20'h012A0,
  53. //          G_CB_CST = 20'hFF9BE,
  54. //          G_CR_CST = 20'hFF2FE;
  55. //         
  56. //parameter B_Y_CST  = 20'h012A0,
  57. //          B_CB_CST = 20'h0204A,
  58. //          B_CR_CST = 20'h00000;  
  59. //           
  60. //parameter R_CST     =  911000,
  61. //          G_CST     =  557007,
  62. //          B_CST     =  1132249;
  63. //         
  64. //parameter CST_YUV_Prec  =  12;  

  65. //csc1
  66. //R = 1.164*Y + 1.596*CR - 222.912
  67. //G = 1.164*Y - 0.391*CB - 0.813*CR + 135.488
  68. //B = 1.164*Y + 2.018*CB - 276.928

  69. //csc2
  70. //R = Y + 1.402*V - 179.456
  71. //G = Y - 0.34413*U - 0.71414*V + 135.45856
  72. //B = Y + 1.772*U - 226.816
  73. //        Input
  74.   input [7:0] iY,iCb,iCr;
  75.   input iCLK;  //iRESET,
  76.   
  77. //        Output
  78.   output        [7:0]        Red,Green,Blue;
  79.   
  80. //        Internal Registers/Wires
  81. reg [7:0] oRed,oGreen,oBlue;

  82. reg [17:0] X_OUT,Y_OUT,Z_OUT;

  83. wire [27:0] X,Y,Z;

  84. assign        Red  =        oRed;//[9:2];
  85. assign        Green=        oGreen;//[9:2];
  86. assign        Blue =        oBlue;//[9:2];

  87. wire [7:0]   Y1,Cb1,Cr1;

  88. assign  Y1  = iY ; //huang210;//LAN41;//LV145;//QING170;//iY; //iY;
  89. assign  Cb1 = iCb;//     16; //240;//54; //166;        //iCb;//iCb;   //(R) (82 , 90 240)
  90. assign  Cr1 = iCr;//     146;//110;//34; //16;         //iCr;//iCr;  //(R+G)(210 16 146 ) //(GLUE 41 240 110) //{GREEN 145 54 34}


  91. always@(posedge iCLK )//,posedge iRESET)
  92. begin
  93. //        if(iRESET)
  94. //        begin
  95. //                oRed<=0;
  96. //                oGreen<=0;
  97. //                oBlue<=0;
  98. //        end
  99. //        else
  100. //        begin
  101.                 // Red
  102.                 if(X_OUT[17])
  103.                         oRed<=0;
  104.                 else if(X_OUT[16:0]>255)
  105.                         oRed<=255;
  106.                 else
  107.                         oRed<=X_OUT[7:0];
  108.                         
  109.                 // Green
  110.                 if(Y_OUT[17])
  111.                         oGreen<=0;
  112.                 else if(Y_OUT[16:0]>255)
  113.                         oGreen<=255;
  114.                 else
  115.                         oGreen<=Y_OUT[7:0];
  116.                         
  117.                 // Blue
  118.                 if(Z_OUT[17])
  119.                         oBlue<=0;
  120.                 else if(Z_OUT[16:0]>255)
  121.                         oBlue<=255;
  122.                 else
  123.                         oBlue<=Z_OUT[7:0];
  124. //        end
  125. end

  126. always@(posedge iCLK )//,posedge iRESET)
  127. begin
  128. //        if(iRESET)
  129. //        begin
  130. //                X_OUT<=0;
  131. //                Y_OUT<=0;
  132. //                Z_OUT<=0;
  133. //        end
  134. //        else
  135.         begin
  136.                 X_OUT <= ((X - R_CST) >> (CST_YUV_Prec));  //  ((( X - R_CST ) % 1024) >= 512) ? (((X - R_CST + 512) >> (CST_YUV_Prec)) ) :
  137.                 Y_OUT <= ((Y + G_CST) >> (CST_YUV_Prec)); //   ((( Y + G_CST ) % 1024) >= 512) ? (((Y + G_CST + 512) >> (CST_YUV_Prec)) ) :
  138.                 Z_OUT <= ((Z - B_CST) >> (CST_YUV_Prec)); //   ((( Z - B_CST ) % 1024) >= 512) ? (((Z - B_CST + 512) >> (CST_YUV_Prec)) ) :
  139.         end
  140. end

  141. //wire   mac_reset  ;
  142. //assign mac_reset  =  (iRESET) ;

  143. MAC_10 MAC_3_X (
  144.                     //.aclr0(mac_reset),   
  145.                     .clock0(iCLK),   
  146.                     .dataa_0(Y1),     
  147.                     .dataa_1(Cb1),
  148.                     .dataa_2(Cr1),
  149.                     .datab_0(R_Y_CST),
  150.                     .datab_1(R_CB_CST),
  151.                     .datab_2(R_CR_CST),
  152.                     .result(X)
  153.                   );
  154. MAC_10 MAC_3_Y (
  155.                    /// .aclr0(mac_reset),
  156.                     .clock0(iCLK),
  157.                     .dataa_0(Y1),
  158.                     .dataa_1(Cb1),
  159.                     .dataa_2(Cr1),
  160.                     .datab_0(G_Y_CST),
  161.                     .datab_1(G_CB_CST),
  162.                     .datab_2(G_CR_CST),
  163.                     .result(Y)
  164.                   );         
  165. MAC_10 MAC_3_Z (
  166.                    // .aclr0(mac_reset),
  167.                     .clock0(iCLK),
  168.                     .dataa_0(Y1),
  169.                     .dataa_1(Cb1),
  170.                     .dataa_2(Cr1),
  171.                     .datab_0(B_Y_CST),
  172.                     .datab_1(B_CB_CST),
  173.                     .datab_2(B_CR_CST),
  174.                     .result(Z)
  175.                   );        

  176. endmodule
復制代碼



評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 一区二区三区网站 | 久久精品视频9 | 国产成人精品一区二区三区网站观看 | 美女黄18岁以下禁止观看 | 天天草天天干天天 | 黄色网毛片| 日韩色综合 | 欧美成人一区二免费视频软件 | 性福视频在线观看 | 久久久久中文字幕 | 欧美.com | 亚洲天堂二区 | 欧美一级在线观看 | 人人澡人人爱 | 一区二区不卡视频 | 国产一区二区三区色淫影院 | 欧美区日韩区 | 一区二区三区欧美在线 | 日本a在线 | 91porn成人精品| 日韩欧美亚洲 | 久久久高清 | 一区二区av | 天天夜碰日日摸日日澡 | 欧美无乱码久久久免费午夜一区 | 一区二区成人 | re久久| 美女福利视频 | 黄色综合| 欧美一区永久视频免费观看 | 久草新在线| 久www| 人人澡人人射 | 少妇久久久| 天天玩天天干天天操 | 一级免费a| 91久久久久久久久久久久久 | 中文字幕在线视频精品 | 久久久久一区二区 | 岛国一区 | 欧美一级黄色免费 |