孫聞+金韜+王陽+胡躍輝+方勇+楊良勇+郭學文



摘要:針對現有的立體顯示圖像存儲技術存在兼容性不足、立體圖像常常缺少必要的光電信息等問題,文章提出了一種多目成像序列的編解碼算法:首先將采集到的多目成像序列數據首尾相連拼接成復合數據,接著按照常用圖像存儲格式將復合數據進行編碼存儲為一幅復合圖像文件,最后將光電信息參數編碼插入到對應的復合圖像編碼數據的特定位置中。該算法實現了多目成像序列與光電參數的同時存儲,存儲結構緊湊、存儲方便,避免造成光電參數和多目成像序列的混亂及數據丟失。該算法能夠兼容多種圖像存儲格式,具有很好的兼容性和靈活性。
關鍵詞:立體成像;立體圖像編碼;裸眼立體顯示;多目成像序列
中圖分類號:TN27 文獻標識碼:A 文章編號:1009-3044(2017)35-0244-03
An Encoding and Decoding Algorithm for Multi-Channel Imaging Sequence
SUN Wen1,JIN Tao2,3,WANG Yang2,3,HU Yao-hui2,FANG Yong2,YANG Liang-yong1,GUO Xue-wen2,3
(1. Anhui Huadong Photoelectric Technology Institute,Key Lab of Special Display Technology (Ministry of Education),National Engineering Lab of Special Display Technology,National Key Lab of Advanced Display Technology,Wuhu 241000,China;2. Academy of Photoelectric Technology,Hefei University of Technology,Hefei 230009,China;3. School of Computer and Information,Hefei University of Technology,Hefei 230009,China)
Abstract: There is insufficient compatibility and often lack of necessary photoelectric information in the stereopicture for existing stereoscopic display image storage technologies. In this paper, an encoding and decoding algorithm for multi-channel imaging sequence is proposed: First of all, the multi-channel imaging sequence data is connected together into a composite data. Then, the composite data is encoded and stored as a composite image file according to the commonly used image storage format. Finally, the photoelectric information parameters are encoded and inserted into the specific position of the corresponding composite image coded data. The algorithm can realize the simultaneous storage of multi-channel imaging sequence and photoelectric parameters. The storage structure is compact and the storage is convenient. It can avoid confusion and data loss caused by photoelectric parameters and multi-channel imaging sequence. The algorithm can be compatible with a variety of image storage formats, and it has good compatibility and flexibility.
Key words: stereoscopic imaging; stereoscopic image coding; nakedness-eye stereoscopic display; Multi-channel imaging sequence
2009年以來,3D影視熱潮的再次興起標志著立體顯示技術日趨成熟。大量立體顯示技術被引入用于制作優質的3D作品,但是3D影視熱潮選擇的立體顯示技術都是立體眼鏡式顯示技術。通過立體眼鏡式顯示技術,可以給觀看者帶來良好的3D視覺體驗,但是長時間佩戴眼鏡觀看會導致觀看者出現頭暈,惡心等不適感[1]。針對這個問題,提出了裸眼立體顯示技術,讓人們無需佩戴立體眼鏡,即可獲得立體觀感。隨著近年來光柵制作工藝、平板顯示技術、存儲設備等關鍵技術的突破,克服了顯示串擾問題和2D/3D兼容問題[2],基于柱透鏡光柵的裸眼立體顯示技術取得了長足的進步,有望替代眼鏡式立體顯示技術在市場中占據主流地位。但是目前在市場上,仍缺乏對裸眼顯示技術的生態環境支撐,比如現在立體顯示視頻制作的高成本,長周期使得3D片源不能滿足市場發展的需求,以及3D播放設備還比較少等問題[3]。這些問題促使我們開展對基于裸眼顯示技術中的實時立體視頻相關領域的研究。endprint
裸眼顯示技術中立體視頻的制作是整個裸眼立體領域中的核心關鍵,立體視頻的質量好壞直接影響著觀看者的視覺感受。多視點立體視頻源制作技術的關鍵部分之一是視點圖像信息的轉儲技術。在裸眼立體顯示器上重現多目成像序列時候,為了得到最好的播放效果,需要按照成像時的光電信息參數(包括相機陣列參數)和結合所使用的裸眼立體顯示器的光電參數進行立體圖像合成。因此在存儲編碼多目成像序列時,最好能夠包括這些光電信息參數,同時能夠兼容多種格式。這樣就有更多的視頻源來支持裸眼立體顯示市場的發展,市場同時也會更支持裸眼立體技術的研究,兩者相互促進,相互發展。基于此本文通過對通用圖像存儲格式的研究提出了一種多目成像序列的編解碼算法:利用常見的圖像格式(如BMP、JPEG、GIF、PNG、TIFF等)的文件結構特征,將多目成像系統中的光電信息參數存放在特定的位置空間中,用于子視點圖像序列的處理。本算法能兼容上述常見圖像存儲格式,具有很好的兼容性和靈活性。
1 編解碼算法
1.1 編解碼算法流程
本文提出的算法主要包括壓縮編碼算法和解碼算法[4],其中壓縮編碼算法主要過程如下:
1) 將多目成像序列數據首尾相連拼接成復合數據,拼接方式如圖2(b)所示。
2) 根據需要,選擇一種上述圖像格式完成對復合數據的編碼,存儲得到復合圖像文件。
3) 將多目成像序列的光電信息參數編碼插入到復合圖像編碼數據的特定位置中。對于不同圖像格式,光電信息參數插入的位置也不同,因此首先需要確定光電信息參數在復合圖像編碼數據中的可能插入位置,接著判斷插入位置的存儲空間是否滿足光電信息參數的數據量;如果是,則直接將光電信息參數插入到第一個可能位置中;如果否,調整文件頭和圖像數據之間的位置以及修改偏移量大小,最后將光電信息參數插入到復合圖像編碼數據中。
基于該壓縮編碼方法,能夠實現多目成像序列與光電信息的同時存儲,其中步驟2確保能兼容通用圖像格式,步驟3根據常用圖像格式的文件結構的特征,完成光電信息的插入。
如同時本文提出的解碼算法的主要過程下:
1) 獲取內含光電信息參數的復合圖像文件,利用與圖像格式對應的解碼器對目標圖像文件進行解碼獲得文件頭信息和圖像數據。
2) 由表1可知,目標文件的圖像格式不同,光電信息參數插入的位置也不同,因此需要根據其圖像格式確定在復合圖像數據中存儲光電信息參數數據塊的位置,從解碼后的復合圖像圖像數據的插入位置讀取光電信息參數標志位。
3) 判斷獲取的光電信息參數標識位是否與預設標識位一致;如果是,則表明完成光電信息參數的讀取操作,接著讀取后面的光電信息參數;如果否,則表明光電信息參數讀取出錯,重新從解碼后的復合圖像數據的特定位置中獲取光電信息參數。
4) 驗證光電信息參數是否正確,將光電信息參數和校驗位[5]構成的數據幀進行校驗。如果正確,則表明光電信息數據正確,如果錯誤,則表明光電信息數據中存在錯誤。
通過上述方式,可以根據復合圖像的圖像格式讀取出存儲其中的光電信息參數并判斷光電信息參數的準確。
1.2 光電信息參數塊定義
本文把立體圖像合成所需要的光電信息參數用一個結構體Info定義見圖1。
同時本文給出在上述兼容圖像格式中插入光電信息參數數據塊的方法和位置見表1。
2 算法測試和驗證
2.1 測試環境與方法
本文對上述算法在Windows7操作環境下進行驗證:首先使用Photoshop完成多目成像序列圖像數據的拼接存儲,接著使用UltraEdit以2進制形式打開圖像文件來完成光電信息信息的插入存儲以及進行文件數據的查看,最后再次使用Photoshop查看含有光電信息的復合圖像文件。在測試中,光電信息標志位設為:GDXXBZ,采用相機陣列來完成圖像序列的采集,相機個數為4。多目成像系統中的相機陣列參數見表2。
2.2 測試和驗證
對于多種常用圖像存儲格式,限于篇幅,在這里以BMP和JPEG格式為例應用編解碼算法分別進行驗證。
1) .當圖像存儲格式為BMP時,采集到的多目成像序列如圖2(a)所示,按照壓縮編碼算法的步驟一對多目成像序列數據拼接成復合數據如圖2(c)所示,按照步驟二對復合數據進行以BMP格式進行編碼存儲得到復合圖像文件。此時在復合圖像編碼數據中沒有光電信息參數,需要將光電信息參數編碼插入。其中根據表1可知,光電信息參數插入位置為復合圖像文件信息頭后面,根據BMP圖像文件結構,需要修改這個文件頭到位圖數據間字節的偏移量的值,以便在實際圖像數據之前插入光電信息參數數據塊。通過計算光電信息參數數據塊一共188字節,再加上BMP格式中BMP文件頭和位圖信息頭的大小,我們應修改其偏移量為000000F2h=242,接著將光電信息數據塊編碼利用UltraEdit插入到位圖信息頭后,并存儲為新的復合圖像文件,將其用Photoshop打開查看,能正常顯示。
通過UltraEdit對含有光電信息參數的復合圖像文件以二進制形式打開,下圖為將光電信息編碼插入后的圖像數據文件如圖2(d)所示。下面對于該圖像數據文件進行簡單分析:
00-0Dh:這是BMP文件頭的內容,其中包含文件類型、文件大小、以及文件頭到位圖數據間字節的偏移量的大小,這邊可以看出偏移量大小為000000F2h=242字節,以經修改過其偏移量。
0E-25h:這是位圖信息頭的內容,其中包含位圖信息頭大小,圖像寬度,圖像高度等。
對于36-3D:47445858425A0000h=“GDXXBZ”,光電信息參數標志位,表明由此開始存儲了光電信息參數塊。
3E-3F:0004h=4,表明相機陣列由4個相機組成。endprint