APP下载

一种多目成像序列的编解码算法

2018-01-06孙闻金韬王阳胡跃辉方勇杨良勇郭学文

电脑知识与技术 2017年35期

孙闻+金韬+王阳+胡跃辉+方勇+杨良勇+郭学文

摘要:针对现有的立体显示图像存储技术存在兼容性不足、立体图像常常缺少必要的光电信息等问题,文章提出了一种多目成像序列的编解码算法:首先将采集到的多目成像序列数据首尾相连拼接成复合数据,接着按照常用图像存储格式将复合数据进行编码存储为一幅复合图像文件,最后将光电信息参数编码插入到对应的复合图像编码数据的特定位置中。该算法实现了多目成像序列与光电参数的同时存储,存储结构紧凑、存储方便,避免造成光电参数和多目成像序列的混乱及数据丢失。该算法能够兼容多种图像存储格式,具有很好的兼容性和灵活性。

关键词:立体成像;立体图像编码;裸眼立体显示;多目成像序列

中图分类号: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