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

標題: 我的顏色空間變換YCBCR to RGB 設計Verilog代碼 [打印本頁]

作者: lihongxia87628    時間: 2018-11-12 18:45
標題: 我的顏色空間變換YCBCR to RGB 設計Verilog代碼
我的顏色空間變換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
復制代碼








歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 四虎影院在线观看免费视频 | 日本在线免费观看 | 麻豆91精品91久久久 | 日本高清不卡视频 | 亚洲欧美日韩一区二区 | 亚洲成人中文字幕 | 久热精品在线播放 | 成人在线视频免费观看 | 欧美日韩一区精品 | 一级黄色片免费 | 最新中文字幕第一页视频 | 人人澡视频 | 久久国产精品视频 | 国产精品视频www | 国产乱码精品一区二区三区中文 | 最新中文字幕在线 | 成人国内精品久久久久一区 | 日本久草 | 欧美一级做性受免费大片免费 | 欧美区日韩区 | 中文字幕av一区二区三区 | 黄色电影在线免费观看 | 欧美久久久久久久久中文字幕 | 亚洲综合大片69999 | 国产精品日韩在线观看 | 五月激情综合 | 天天曰夜夜操 | 日韩欧美国产一区二区三区 | 精品www| 国产高清在线精品一区二区三区 | 在线视频三区 | 日批免费在线观看 | 国产一区免费视频 | 天天搞夜夜操 | 久久综合久色欧美综合狠狠 | 精品欧美色视频网站在线观看 | 欧美在线免费 | 免费一级片 | 欧美激情在线播放 | 欧美日本在线观看 | 久久精品成人 |