2022年1月23日 星期日

自動白平衡


依R, G, B 成份,加總整個畫面的像素值 ,先調整成 K = 128


改 ltp_controller.v

宣告

  1. reg [26:0] sum_R, sum_G, sum_B; // the total value of R, G, B
  2. reg [16:0] average_R, average_G, average_B; 
  3. reg [18:0] gray_average; // K: gray_average = (R_average+G_average+B_average)/3
  4. reg [26:0] temp_R, temp_G, temp_B;
  5. wire [7:0] new_R, new_G, new_B;

計算
  1. always@(posedge iCLK  or negedge iRST_n) // sum all the component
  2. begin
  3. if (!iRST_n)
  4. begin
  5. sum_R <= 0; // sum R
  6. sum_G <= 0; // sum G
  7. sum_B <= 0; // sum B
  8. end
  9. else if (y_cnt == 0 && x_cnt == (H_LINE-1))
  10. begin
  11. sum_R <= 0; // sum R
  12. sum_G <= 0; // sum G
  13. sum_B <= 0; // sum B
  14. end
  15. else if (display_area)
  16. begin
  17. sum_R <= sum_R + read_red; // sum R
  18. sum_G <= sum_G + read_green; // sum G
  19. sum_B <= sum_B + read_blue; // sum B
  20. temp_R <= 375*{read_red,7'b0}   / average_R; // K = 128, R*K/(R_av/375)
  21. temp_G <= 375*{read_green,7'b0} / average_G; // K = 128, R*K/(G_av/375)
  22. temp_B <= 375*{read_blue,7'b0}  / average_B; // K = 128, R*K/(B_av/375)
  23. end
  24. else if (y_cnt == (V_LINE-1) && x_cnt == (H_LINE-1))
  25. begin
  26. average_R <= sum_R[26:10]; // 375 times (800*480/1024=375)
  27. average_G <= sum_G[26:10];
  28. average_B <= sum_B[26:10];
  29. end
  30. end
輸出
  1. always@(posedge iCLK or negedge iRST_n)
  2. begin
  3. if (!iRST_n)
  4. begin
  5. oHD <= 1'd0;
  6. oVD <= 1'd0;
  7. oDEN <= 1'd0;
  8. oLCD_R <= 8'd0;
  9. oLCD_G <= 8'd0;
  10. oLCD_B <= 8'd0;
  11. end
  12. else if (y_cnt < (Vertical_Front_Porch+240))
  13. begin
  14. oHD <= mhd;
  15. oVD <= mvd;
  16. oDEN <= mden;
  17. oLCD_R <= temp_R > 255 ? 255: temp_R[7:0];
  18. oLCD_G <= temp_G > 255 ? 255: temp_G[7:0];
  19. oLCD_B <= temp_B > 255 ? 255: temp_B[7:0];

  20. end
  21. else
  22. begin
  23. oHD <= mhd;
  24. oVD <= mvd;
  25. oDEN <= mden;
  26. oLCD_R <= read_red;
  27. oLCD_G <= read_green;
  28. oLCD_B <= read_blue;
  29. end
  30. end

結果:有部分雜訊出現,推測是除法太慢

待改進
https://blog.csdn.net/a874176979/article/details/79853934

沒有留言:

張貼留言