隨著技術發展,8bit (0-255)灰階的空間光調制器產品會逐步被10bit(0-1023)階產品代替,而傳統8bit產品將被逐步淘汰,淪為二線產品。雖然很多用戶思維習慣依然停留在8bit年代,同時現存程序代碼也面臨數據不兼容問題,但基于10bit位深的優勢已經被眾多課題組證明。因此,掌握10bit甚至更高位深的SLM編程技巧尤為必要。
位深
位深是指控制相位/振幅的最大精度范圍,也是尋址函數的尋址步長,映射到電路器件的基本參數就是DAC精度。傳統產品DAC芯片為8bit或10bit,新產品采用12bit或16bit甚至更高精度的DAC芯片。電尋址SLM的控制電壓值V是個基本量,DAC芯片位深越大,V被細分的精度就越高,即步長精度為V/灰階。例如,同樣1個波長的相位調制量,如果灰階256,則電壓細分為V/256,調制步長為1/256個波長相位周期,如果灰階1024,則V/1024,步長精細度提升了4倍,為1/1024個波長相位周期,這在高精度控制場景下,可以極大提高分辨精度。
對用戶交互而言,位深對應到算法計算中的歸一化取值范圍。由于理論計算中采用浮點數,計算機的浮點數通常為32位或64位,在歸一化時取整時,就需要考慮實際位深。8bit的產品,取整范圍是按0-255,10bit產品,取整范圍按0-1023。這個差別將帶來數據格式的差異。
HDMI數據格式
空間光調制器產品大部分采用視頻接口,比如HDMI或DVI,因此,其數據格式為視頻圖像格式。常見的RGB圖像為24bit,按RGB三個通道,每個通道8bit;這種數據格式兼容所有主流圖像數據處理芯片。因此,空間光調制器數據傳輸接口沿用了24bit的數據編碼格式。如下圖:
針對8bit的空間光調制器,用戶只需輸入8bit的數據,利用HDMI中單個通道即可完成尋址交互。采用時序控制的空間光調制器,則RGB三通道時序變化,可以將24bit數據輸入到空間光調制器,然后由驅動器按RGB時序控制LCoS芯片。
如果LCoS驅動電路采用10bit的工作模式,用戶為了通過可視化圖像的數據格式輸出給驅動電路尋址數據,就必須在PC電腦和SLM控制器之間定義數據格式協議。由于硬件傳輸接口為HDMI,HDMI的數據格式中標準的RGB三通道數據流最為常見,且跟主流圖像處理軟件、算法等非常兼容,因此在10bit的LCoS驅動電路和用戶數據之間需要基于HDMI協議約定一個數據格式。
比如上圖的334,就是將10bit的數據,按R通道存放3位、G通道存放三位,B通道存放4位的格式,低位補零,實現上位機編程模型。這個在編程時通過移位操作,可非常簡便實現。當然,SLM生產廠家也可以定義為442,235…. 該格式由廠家在Firmware中定義,本身只是一個數據協議約定,HDSLM80R Plus選擇了334的模式。
HDSLM80R Plus的編程技巧
理解了上述基本概念和背景,我們下面針對應用場景詳細描述編程思路。
1、必須兼容8bit的控制場景
因為特定歷史原因,部分用戶會死死抱住8bit算法不松手,堅持只使用8bit的數據算法。那么,此時該如何向下兼容?
方法一,通過串口配置,將10bit的HDSLM改為8bit工作模式,此時,電路處理數據時,直接按8bit數據模式進行尋址。此時,相位精度也變為了256灰階。該方法將硬件降為8bit,以兼容用戶數據。
方法二,利用Matlab算法增加數據轉碼函數,將原有8bit(0-255)映射到調制深度的控制關系,修改為0-1023的映射關系。軟件參考圖如下,算法編碼(Matlab -- SLM80R_8Turn10bit.m)
數據對比:Tvortex -- 8bit轉10bit ;vortex -- 直接算出的10bit數據
參考兩組數據,Tvortex數據與vortex數據比較,Tvortex數據差為4,丟失部分細節。
2、直接操控10bit數據場景
針對沒有歷史包袱的用戶,則可以直接開始10bit的算法模式。
保存10bit圖片軟件參考圖如下(Matlab -- SLM80R_10bit.m)
以上希望幫助大家理解1024灰階編程的差異點。
-
HDMI
+關注
關注
32文章
1663瀏覽量
151657 -
編程
+關注
關注
88文章
3592瀏覽量
93594 -
空間光調制器
+關注
關注
1文章
65瀏覽量
8698
原文標題:空間光調制器編程技巧之1024灰階
文章出處:【微信號:UPOLabs,微信公眾號:UPOLabs】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論