電視芯片setting調試總結
一、電視芯片的setting組合部分:
setting的調整主要分三個部分,第一個是時序調整;第二個是畫質調整;第三個是功能調整。
1、時序調整主要是讓圖像能正常顯示出來,包括圖像的縮放比率/ OVERSCAN比率/圖像的顏色正常等。
2、畫質調整主要是Deinterlace的motion/still/3:2pulldown/2:2pulldown,降噪、SHARPNESS、BCC的調整(BCC:brightness/contrast/color.)等。
3、功能調整主要是讓功能打開及正常的工作,如果TUNER、ADC通道、識別計算器、極性等等
二、如何調setting,調整思路和注意點有以下幾點:
1、屬性思路:如是功能、時序還是畫質調整
2、模塊思路:如是ADC、AFE、HDMI、AUDIO、MCU、GRAPHICS、VIDEO、OUTPUT_CONTROL、2D、3D、MEM、OSD等
3、信號流程思路:如端口捕獲圖象大小→ 寫入SDRAM圖象大小(Dowcscaling)→讀到緩衝器的源圖象大小→有效顯示圖象大小→實際顯示圖象大小(Upscaling)或是P(逐行) 通道、I(隔行)通道、B(直通)通道
4、固定和不固定思路:哪些REG在哪些狀態是固定的不能修改,哪些不是固定的能修改,如在 逐行不能打去隔行不能開NR,只有在NTSC和PAL纔有sharpness
5、硬件衝突思路:如我們調畫質時,如果電路有問題使信號就不標準,不能使setting做好
6、軟件衝突思路:如我們做模式識別及解擾時,在一定狀態下可以用setting和好的算法,去 解決 一定以好的算法爲準
7、硬件特性衝突(屬硬件衝突特類):如什麼狀態是做down什麼狀態是做up,什麼狀態要4:4:4, 什麼狀態要656輸出,什麼狀態採用1:1採樣,如採樣只能最大是1024,是因爲芯片裏面的行緩存做的是最大1024深等
三、幾個重要的公式:(還有很多不在這裏列出來瞭如PLL)
1、de=vds_ext_hb&vds_ext_vb
2、Display Clock=H_Total*V_Total*Frame rate
3、 vds_dis_hb/vb_st/sp=vds_ext_hb/vb_sp/st
ext_hb的st是從左開始的,ext_vb的st是從頂開始的
dis_hb/vb 是內存抓數據的時序
ext_hb/vb 是整個panel的blanking,產生DE的
vds_ext_hb/vb_st=vds_hsync/vsync_rst
4、 memory clock
隔行:MCLK 2.25 Iclk + 1.25 DCLK
逐行:MCLK 1.25 Pclk + 1.25 DCLK
Iclk 表法端口輸入的隔行信號的 data clock
Pclk 表法端口輸入的逐行信號的 data clock
DISP_CLK=每幀圖像像素*幀頻
四、案例:
1、720p50爲例如果我們DOWN到800個點,怎樣算h down:(V down和h down一樣的算法!)
720p(bt705標準)的有效是1280,pll公式的ma是7bb。而實際按1280點採樣的MD=1979(7bb)*1280/1280=7bb.
ratio = 4095 * ((M-N) / N), 2457=4095((1280-800)/800) 4095=1024(最大的深度)x4(每個4個pix)
DOWN的線路:ADC---AFE--Source De-interlaced---->V-Scale-down---->Write to Memory
2、從720x480 up到800x600的爲例
========================== H Scale Ratio ========================
When we read from memory 720 pixels from memory one line, we need H.scale up from 720 pxiels to 800 pixels to display!
firstly, set vds_hscale_byps = 0 to enable h-scale. vds_hscale = 720/800 * 1023 = 920 = 398 (hex)
When we read from memory 800 pixels from memory one line; we needn't do H.scale;
firstly, set vds_hscale_byps = 1 to disable h-scale. vds_hscalee = 1023 = 3ff(hex)
========================== V Scale Ratio ========================== When we read from memory 480 lines from memory one frame, we need V.scale up from 480 lines to 600 lines to display!
firstly, set vds_vscale_byps = 0 to enable v-scale. vds_vscale = 480/600 * 1023 = 818 = 332 (hex)
When we read from memory 600 lines from memory one frame; we needn't do V.scale;
UP的線路---Read Data From Memory---->H/V-Scale-up---->Output to screen!
五、一些重要的參數:
1、捕獲區圖象大小
2、捕獲區圖象偏移量
3、寫入SDRAM(Downscaling)
4、寫入SDRAM圖象偏移量
5、從幀緩衝器讀源圖象大小
6、從幀緩衝器讀源圖象偏移量
7、有效顯示圖象大小
8、行同步寬、行數據延遲象素數
9、場同步寬、場數據延遲行數
10、有效顯示圖象行場週期
11、有效顯示區隔行化時偶數場行數
12、SDRAM讀出圖象大小(Upscaling)
13、輸入端口信號格式
14、圖象端口、通道選擇
15、有效顯示區圖象色空間
16、顯示端口圖象色空間
17、Memory時鐘(MHz)
18、顯示端口時鐘
19、HV和SOG的關係
20、HV和DE的關係
21、Buffer
六:後端視頻處理芯片setting通用結構:
七、setting工具設計 :
1、能調試芯片所有的reg
2、直接生成C FILE
3、 能對所有的I2C器件進行讀和寫,包括8和16位的
4、 能配置REG(如增加和刪除)和及說明文檔(如URD工具和GRPO工具)
八、一些注意點:
做UP和DOWN及去隔行都會帶來很多一些問題點的。