黃振興, 黃 苒, 趙博華*, 蘇 暢, 杜 寰
(1. 中國科學院 微電子研究所,北京 100029; 2. 中國科學院大學,北京 101408)
硅基有機發光二極管(OLED)微型顯示器是一種近年來隨著VR/AR技術的發展而成為顯示領域研究熱門的新型顯示器,將有機發光二極管直接與單晶硅集成電路集成,以單晶硅作為OLED發光器件的基底,且利用成熟的CMOS工藝完成發光器件的像素驅動和外圍驅動系統[1]。
伽馬校正最初起源于陰極射線管(Cathode Ray Tube, CRT)顯示器中電光轉換的非線性[2],射線管產生的電子束及其生成的圖像亮度與輸入電壓呈指數的對應關系。而對于OLED顯示器,發光亮度與流過OLED器件的電流是線性的,但實際上人眼視覺系統對于亮度變化的感覺也是非線性的[3]。伽馬校正正是為了克服這種非線性而引入的一種傳輸函數,在視頻流、計算機圖形學以及其他成像系統中應用廣泛。流行的伽馬矯正方法有兩種:一種是對顯示系統的伽馬特性進行數字建模,計算出矯正后的視頻驅動數據,預先存儲在存儲器中,顯示過程中采用查找表法(Look Up Table, LUT)實現圖像的伽馬矯正,該方法為數字校正,但需要占用較大的存儲空間[4];另一種方法是利用驅動電路外圍的精密電阻和運算放大器組成灰度級電壓產生電路,提供多級參考電壓,與顯示驅動電路一起實現圖像信號的伽馬矯正,該方法相當于采用了非線性數模轉換器(Digital to Analog Converter, DAC)實現,隨著灰度級數的增加,額外需要的模擬電路復雜程度也大大增加[5]。本文基于第一種方法提出適用于硅基OLED微顯示器的數字伽馬校正方法,該校正方法在精度和實現面積上均較傳統方法有一定優勢,且可以實時根據OLED發光情況對顯示器進行校正,對于顯示器顯示質量的提高具有重要意義。
顯示器不同亮度的實現可以主要分為空間灰度調制、時間灰度調制以及幅值灰度調制3種方式。空間灰度調制是指從像素單元的發光面積對灰度階梯進行控制;時間灰度調制是指在單元時間內控制像素的發光時間長短來對灰度進行控制;幅值灰度調制是通過控制顯示器件的驅動電壓或驅動電流大小從而控制灰度。我們選擇的是通過幅值灰度調制控制OLED發光的亮度。圖1為微顯示芯片顯示驅動系統的結構[6]。它主要由視頻數據處理模塊、線性數模轉換器、像素驅動電路以及OLED陣列組成。視頻數據處理模塊接收來自芯片外的視頻信號進行處理并產生控制微顯示芯片正常工作所需的各種時序信號,DAC將數字視頻信號線性轉換成對應的模擬電壓,像素驅動電路根據該電壓控制OLED器件的發光亮度。

圖1 顯示驅動系統的結構Fig.1 Structure of display driving system
對于某一灰度級別的顯示,視頻數據若不進行伽馬校正處理,OLED器件的發光亮度與輸入的視頻數據的灰度值呈線性關系。而通過人眼視覺系統我們的大腦感受到的灰度級別實際上與發光器件的亮度呈1/γ的指數關系,即
Y=K1·L1/γ,
(1)
其中:L為實際發光亮度,Y為大腦感受到的灰度級別,K1為常數。在低亮度環境中,人眼對亮度變化敏感,能夠感知很小的亮度差異;在高亮度環境中,對亮度變化不敏感,亮度值變化較大時,人眼才能分辨,這種特性稱為人眼的伽馬特性[7]。因此,大腦感受到的灰度級Y與輸入視頻數據的灰度值X也呈1/γ的指數關系。
為了保證對于均勻變化的灰度級別大腦能夠獲得均勻變化的亮度感受,需要對原始的視頻數據進行伽馬校正處理。伽馬校正其實是一種為了克服大腦對于亮度變化的非線性感受的一種傳輸函數,其表達式為
G=K2·Xγ,
(2)
其中:X為原始的視頻數據,G為通過伽馬校正后的輸出視頻數據,K2為常數。校正后的數據通過顯示器發光的實際亮度為
L=C·Xγ,
(3)
將式(3)代入式(1)則有:
Y=K3·X,
(4)
上式C和K3均為常數。因此通過對原始視頻數據進行伽馬校正處理,使得我們的大腦感受到的灰度級別與視頻數據的灰度級別為線性關系,達到了我們的校正目的。上述伽馬校正的推導過程如圖2所示。

圖2 伽馬校正的原理Fig.2 Principle of gamma correction
基于前面的顯示驅動系統,由于DAC的參考電壓確定,最大灰度數據對應的OLED驅動電壓也是確定的。也就是說,對于伽馬校正前后的兩組數據,對應的最小驅動電壓和最大驅動電壓是相同的。如果想完成從輸入數據到輸出數據的非線性映射,需要對輸出數據進行位寬拓展[8],則低位寬數據的中間碼值可以對應的是多個高位寬數據的中間碼值,如圖3所示。但是要求低位寬數據與高位寬數據之間的映射無交叉,通過這樣的映射關系,可以保證隨著輸入數據的遞增輸出數據也是遞增的,但是增加的幅度是可以調整的,這樣就實現了非線性映射。

圖3 位寬拓展示意圖Fig.3 Diagram of bit width extension
下面用4 bit映射到6 bit的數據來說明如何通過位寬拓展來實現非線性。4 bit數據與6 bit數據之間的一一映射如表1所示。圖4所示的曲線橫軸表示4 bit輸入數據,縱軸表示6 bit輸出數據,拓展的位寬越多,輸出曲線能夠更加平滑。從圖4可以看到通過位寬拓展可以很好地實現非線性。

表1 4 bit數據到6 bit數據映射關系Tab.1 Mapping relations between 4 bits and 6 bits data

圖4 4 bit數據到6 bit數據映射曲線Fig.4 Mapping curves of 4 bits and 6 bits data
對于我們的一款XGA039單色OLED微顯示芯片,分辨率為1 024×768,輸入數據為8 bit,表示的灰度值范圍為0~255。我們將輸入數據進行位寬拓展到10 bit來實現非線性。通過查找表的方式完成低位寬數據到高位寬數據的映射,是實現伽馬校正最簡單直接的方式[9-10]。但是若對256個灰度級數據進行查找表操作,且輸出為10 bit,則實際需要的RAM存儲空間的大小為256×10 bit,即需要256個位寬為10 bit的寄存器,這對于芯片實現來說太過于耗費面積[11]。若將伽馬校正曲線用17個點來擬合,相鄰兩點之間的曲線近似為直線,就得到了16段線性分段函數。由于通過位寬拓展獲得的10 bit數據的最大值和最小值已經確定,即對應OLED的最大發光亮度和最小發光亮度,所以僅需要通過設置中間的15個點來控制伽馬曲線的形狀。
由于人眼的伽馬特性,在低亮度環境下對灰度級變化敏感,在高亮度環境下對于灰度級變化不敏感,我們希望在低亮度區域用更多的灰度級來實現擬合,達到更高的精度?;谶@種考慮,在選擇上述的用于擬合曲線的15個點時,可以不以等間距選擇相鄰兩點對應的輸入灰度級,而是在低灰度級區域選擇更多的點,高灰度級區域選擇少數幾個點。使用I2C總線配置模塊內部寄存器的值來選擇這15個點在伽馬曲線中的位置,這樣使得伽馬曲線擬合的分段情況可調,在芯片制作完成后可以根據實際OLED的發光情況調整伽馬曲線的形狀,以此獲得更好的顯示效果[12]。
上述15個中間灰度級對應的輸出值通過LUT操作獲得;而對于相鄰兩點之間的灰度級,首先需要判斷該點位于哪兩點之間,然后通過線性插值計算獲得輸出,計算公式為

(5)
其中KIN為8 bit輸入數據,KOUT為10 bit輸出數據,X(n)與X(n+1)為KIN相鄰兩點的輸入灰度值,KLUT(n)與KLUT(n+1)為這兩點對應輸出值,這4個參數值均通過I2C總線配置。這樣的插值計算不僅滿足實際伽馬校正的精度需求,且需要的寄存器數量僅為15個點所對應輸入和輸出值的數據位寬,大幅減小了實現面積。

圖5 伽馬校正調試流程Fig.5 Gamma correction debugging process
根據式(3)得發光亮度L與原始視頻數據X的γ冪次成正比關系,比例系數為C。γ的取值一般在1~4之間,取1意味著沒有校正,輸入輸出保持直線關系,圖像質量沒有改善。取值越大,圖像的暗區灰度等級越細膩,黑白反差也變大,但γ取值過大圖像整體質量下降,所以一般取1.6~3.4 之間,實踐中取1.6、2.2、2.8、3.4 這4個值進行調試比較合適[13]。對于一個確定的γ取值,調試過程如圖5所示。
針對上述的調試過程,我們的XGA039 OLED微顯示器實際發光的最大亮度為20 000 cd/m2,γ取值分別為1.6,2.2,2.8,3.4四個值時的亮度L與原始數據灰度值X的關系曲線如圖6所示。根據實際的顯示情況,在γ=2.2時獲得最適應人類視覺系統感知的顯示效果。

圖6 不同γ取值的伽馬曲線Fig.6 Gamma curves with different γ
上面的4簇曲線是在將伽馬曲線均勻分段的情況下測得的,為了更好地擬合γ=2.2時的曲線,采用了可調分段擬合的方法,即在低灰度級選擇更多的點。具體分段方式如圖7所示,低灰度級區域相鄰兩點對應輸入灰度級的間距為8或16,高灰度級區域相鄰兩點對應輸入灰度級的間距為16或32,即中間15個灰度級的選擇為8, 16, 24, 32, 40, 48, 64, 80, 96, 112, 128, 144, 160, 192, 224,測試實際校正數據如表2所示,通過伽馬校正在低亮度區域對應了更高的灰度級。這樣,如圖8曲線在低灰度區域的放大圖所示,在人眼更為敏感的低亮度區域達到了更高的擬合精度。當顯示一張包含256個灰度級逐漸變化的圖片,通過這種方法校正前后芯片的顯示效果對比如圖9所示,校正之后灰階的變化明顯,更適應人眼感知的需求。

圖7 γ=2.2時采用可調分段擬合的伽馬曲線Fig.7 Gamma curve with adjustable segmentation of γ=2.2

圖8 低灰度區域伽馬曲線放大圖Fig.8 Magnified view of gamma curve in low gray level region

表2 灰度級-亮度測試數據Tab.2 Gray-luminance test data (cd·m-2)

續 表

圖9 伽馬校正前后對比Fig.9 Comparison before and after the gamma correction
本文提出了一種適用于硅基OLED微型顯示器的數字伽馬校正方法,用于改善人眼視覺系統對于亮度感知的非線性。該非線性函數通過分段線性函數擬合而成,基于查找表和線性插值算法實現,并且通過I2C總線配置內部寄存器值,根據實際發光情況做到分段可調,可在低亮度區域獲得更高的校正精度以適應伽馬特性。相對于傳統的數字查找表法不僅提高了在低灰度區域的精度而且大大節省了實現面積;而相對于使用非線性DAC的模擬校正方法,外圍模擬電路的復雜程度也得到降低。在使用XGA039芯片進行實際發光調試下,測得的最大發光亮度為20 000 cd/m2,當伽馬系數取值為2.2時,分段方式采用可調非均勻分段時獲得了較為適應人眼視覺系統感知的顯示效果。