本发明涉及一种光场图像编码方法,尤其是涉及一种面向灵活视点存取的光场图像可伸缩编码方法。
背景技术:
1、作为一种新兴的成像技术,光场成像可以同时记录光线的强度和方向信息,是实现沉浸式媒体的重要技术之一。特殊的数据结构能够支持光场图像实现许多新颖的后处理,如重聚焦、目标检测、自主机器人视觉等。然而,丰富的场景信息也带来了庞大的数据量,因此,需要对光场图像进行有效压缩编码。
2、现有的光场图像编码方法可以分为两类:
3、第一类是基于传统编码器的编码方法。这类方法中,最常见的是基于伪视频序列的光场图像编码方法,其将光场图像表示成子孔径图像(sub-aperture image,sai)阵列,再将sai视为视频帧,按一定的顺序排列成伪视频序列,然后使用现有的视频编码器对伪视频序列进行压缩编码。此外,还有学者对传统编码器进行改进,如在现有的视频编码器中加入更符合光场图像结构的预测方法,以此提升编码性能。
4、第二类是基于视点合成的方法。这类方法在编码前,先将光场图像表示成子孔径图像(sub-aperture image,sai)阵列,对视点(sai)阵列进行稀疏采样,只选取部分视点进行压缩编码,解码端利用重建算法重建完整的视点阵列。这类方法经过稀疏采样的操作,能有效减少需要压缩的数据量,再结合解码端的高效重建,能进一步提升编码性能。
5、虽然现有的光场图像编码方法已经取得了一定的光场图像压缩效果,但是在可伸缩性能方面仍存在不足,特别地,在视点可伸缩性、视点随机访问和质量可伸缩性方面还有一定的改进空间。
技术实现思路
1、本发明所要解决的技术问题是提供一种面向灵活视点存取的光场图像可伸缩编码方法,其在能够提供可伸缩性的同时,能够保持良好的编码效率。
2、本发明解决上述技术问题所采用的技术方案为:一种面向灵活视点存取的光场图像可伸缩编码方法,其特征在于包括以下步骤:
3、步骤1:对于任意一张光场图像,设定用于表示该张光场图像的sai阵列即视点阵列的大小为9×9,将视点阵列分成四层视点层,第一层视点层共包含1个视点,角度坐标为(5,5);第二层视点层共包含8个视点,角度坐标分别为(1,1)、(1,5)、(1,9)、(5,1)、(5,9)、(9,1)、(9,5)、(9,9);第三层视点层共包含16个视点,角度坐标分别为(1,3)、(1,7)、(3,1)、(3,3)、(3,5)、(3,7)、(3,9)、(5,3)、(5,7)、(7,1)、(7,3)、(7,5)、(7,7)、(7,9)、(9,3)、(9,7);第四层视点层共包含56个视点,角度坐标分别为(1,2)、(1,4)、(1,6)、(1,8)、(2,1)、(2,2)、(2,3)、(2,4)、(2,5)、(2,6)、(2,7)、(2,8)、(2,9)、(3,2)、(3,4)、(3,6)、(3,8)、(4,1)、(4,2)、(4,3)、(4,4)、(4,5)、(4,6)、(4,7)、(4,8)、(4,9)、(5,2)、(5,4)、(5,6)、(5,8)、(6,1)、(6,2)、(6,3)、(6,4)、(6,5)、(6,6)、(6,7)、(6,8)、(6,9)、(7,2)、(7,4)、(7,6)、(7,8)、(8,1)、(8,2)、(8,3)、(8,4)、(8,5)、(8,6)、(8,7)、(8,8)、(8,9)、(9,2)、(9,4)、(9,6)、(9,8);其中,角度坐标(u,v)表示视点阵列中第u行第v列的位置,1≤u≤9,1≤v≤9;
4、步骤2:在编码端,针对第一层视点层,将第一层视点层中的视点作为帧内编码帧输入到标准视频编码器中进行压缩编码;
5、步骤3:在编码端,针对第二层视点层,将第二层视点层中的每个视点作为帧间编码帧输入到标准视频编码器中进行压缩编码,其中,在压缩编码时,第二层视点层中的每个视点的参考图像列表中的参考帧只有第一层视点层中的视点;
6、步骤4:在编码端,针对第三层视点层,将第三层视点层中的每个视点作为帧间编码帧输入到标准视频编码器中进行压缩编码,其中,在压缩编码时,第三层视点层中的每个视点的参考图像列表中的参考帧有3个或4个,第三层视点层中的任一个视点的参考图像列表中的参考帧如下:
7、步骤4.1:2个参考帧来自前两层视点层中已编码的视点;
8、步骤4.2:1个参考帧为根据步骤4.1中的2个参考帧并采用视点合成技术生成的合成视点;
9、步骤4.3:若步骤4.1中的2个参考帧中的其中一个参考帧为第一层视点层中已编码的视点,则不继续增加参考帧;若步骤4.1中的2个参考帧中没有第一层视点层中已编码的视点,则将第一层视点层中已编码的视点作为第4个参考帧;
10、步骤5:在编码端,针对第四层视点层,将第四层视点层中的每个视点作为帧间编码帧输入到标准视频编码器中进行压缩编码,其中,在压缩编码时,第四层视点层中的每个视点的参考图像列表中的参考帧有3个或4个,第四层视点层中的任一个视点的参考图像列表中的参考帧如下:
11、步骤5.1:2个参考帧来自前三层视点层中已编码的视点;
12、步骤5.2:1个参考帧为根据步骤5.1中的2个参考帧并采用视点合成技术生成的合成视点;其中,要求采用的视点合成技术与步骤4.2中采用的视点合成技术一致;
13、步骤5.3:若步骤5.1中的2个参考帧中的其中一个参考帧为第一层视点层中已编码的视点,则不继续增加参考帧;若步骤5.1中的2个参考帧中没有第一层视点层中已编码的视点,则将第一层视点层中已编码的视点作为第4个参考帧;
14、步骤6:在解码端,使用标准视频编码器解码四层视点层中的所有视点,最终得到的解码光场图像作为增强质量解码光场图像。
15、所述步骤4.1中的2个参考帧根据当前待编码的视点的角度坐标而确定,对应关系如下:当前待编码的视点的角度坐标为(1,3)时,2个参考帧分别为角度坐标为(1,1)和(1,5)的已编码的视点;当前待编码的视点的角度坐标为(1,7)时,2个参考帧分别为角度坐标为(1,5)和(1,9)的已编码的视点;当前待编码的视点的角度坐标为(3,1)时,2个参考帧分别为角度坐标为(1,1)和(5,1)的已编码的视点;当前待编码的视点的角度坐标为(3,3)时,2个参考帧分别为角度坐标为(1,1)和(5,5)的已编码的视点;当前待编码的视点的角度坐标为(3,5)时,2个参考帧分别为角度坐标为(1,5)和(5,5)的已编码的视点;当前待编码的视点的角度坐标为(3,7)时,2个参考帧分别为角度坐标为(1,9)和(5,5)的已编码的视点;当前待编码的视点的角度坐标为(3,9)时,2个参考帧分别为角度坐标为(1,9)和(5,9)的已编码的视点;当前待编码的视点的角度坐标为(5,3)时,2个参考帧分别为角度坐标为(5,1)和(5,5)的已编码的视点;当前待编码的视点的角度坐标为(5,7)时,2个参考帧分别为角度坐标为(5,5)和(5,9)的已编码的视点;当前待编码的视点的角度坐标为(7,1)时,2个参考帧分别为角度坐标为(5,1)和(9,1)的已编码的视点;当前待编码的视点的角度坐标为(7,3)时,2个参考帧分别为角度坐标为(5,5)和(9,1)的已编码的视点;当前待编码的视点的角度坐标为(7,5)时,2个参考帧分别为角度坐标为(5,5)和(9,5)的已编码的视点;当前待编码的视点的角度坐标为(7,7)时,2个参考帧分别为角度坐标为(5,5)和(9,9)的已编码的视点;当前待编码的视点的角度坐标为(7,9)时,2个参考帧分别为角度坐标为(5,9)和(9,9)的已编码的视点;当前待编码的视点的角度坐标为(9,3)时,2个参考帧分别为角度坐标为(9,1)和(9,5)的已编码的视点;当前待编码的视点的角度坐标为(9,7)时,2个参考帧分别为角度坐标为(9,5)和(9,9)的已编码的视点。
16、所述步骤5.1中的2个参考帧根据当前待编码的视点的角度坐标而确定,对应关系如下:当前待编码的视点的角度坐标为(n,2)时,2个参考帧分别为角度坐标为(n,1)和(n,3)的已编码的视点;当前待编码的视点的角度坐标为(n,4)时,2个参考帧分别为角度坐标为(n,3)和(n,5)的已编码的视点;当前待编码的视点的角度坐标为(n,6)时,2个参考帧分别为角度坐标为(n,5)和(n,7)的已编码的视点;当前待编码的视点的角度坐标为(n,8)时,2个参考帧分别为角度坐标为(n,7)和(n,9)的已编码的视点;其中,n的值为1、3、5、7、9;
17、当前待编码的视点的角度坐标为(2,m)时,2个参考帧分别为角度坐标为(1,m)和(3,m)的已编码的视点;当前待编码的视点的角度坐标为(4,m)时,2个参考帧分别为角度坐标为(3,m)和(5,m)的已编码的视点;当前待编码的视点的角度坐标为(6,m)时,2个参考帧分别为角度坐标为(5,m)和(7,m)的已编码的视点;当前待编码的视点的角度坐标为(8,m)时,2个参考帧分别为角度坐标为(7,m)和(9,m)的已编码的视点;其中,m的值为1、3、5、7、9;
18、当前待编码的视点的角度坐标为(2,2)时,2个参考帧分别为角度坐标为(1,1)和(3,3)的已编码的视点;当前待编码的视点的角度坐标为(2,4)时,2个参考帧分别为角度坐标为(1,3)和(3,5)的已编码的视点;当前待编码的视点的角度坐标为(2,6)时,2个参考帧分别为角度坐标为(1,7)和(3,5)的已编码的视点;当前待编码的视点的角度坐标为(2,8)时,2个参考帧分别为角度坐标为(1,9)和(3,7)的已编码的视点;当前待编码的视点的角度坐标为(4,2)时,2个参考帧分别为角度坐标为(3,1)和(5,3)的已编码的视点;当前待编码的视点的角度坐标为(4,4)时,2个参考帧分别为角度坐标为(3,3)和(5,5)的已编码的视点;当前待编码的视点的角度坐标为(4,6)时,2个参考帧分别为角度坐标为(3,7)和(5,5)的已编码的视点;当前待编码的视点的角度坐标为(4,8)时,2个参考帧分别为角度坐标为(3,9)和(5,7)的已编码的视点;当前待编码的视点的角度坐标为(6,2)时,2个参考帧分别为角度坐标为(5,3)和(7,1)的已编码的视点;当前待编码的视点的角度坐标为(6,4)时,2个参考帧分别为角度坐标为(5,5)和(7,3)的已编码的视点;当前待编码的视点的角度坐标为(6,6)时,2个参考帧分别为角度坐标为(5,5)和(7,7)的已编码的视点;当前待编码的视点的角度坐标为(6,8)时,2个参考帧分别为角度坐标为(5,7)和(7,9)的已编码的视点;当前待编码的视点的角度坐标为(8,2)时,2个参考帧分别为角度坐标为(7,3)和(9,1)的已编码的视点;当前待编码的视点的角度坐标为(8,4)时,2个参考帧分别为角度坐标为(7,5)和(9,3)的已编码的视点;当前待编码的视点的角度坐标为(8,6)时,2个参考帧分别为角度坐标为(7,5)和(9,7)的已编码的视点;当前待编码的视点的角度坐标为(8,8)时,2个参考帧分别为角度坐标为(7,7)和(9,9)的已编码的视点。
19、所述视点合成技术为视频插帧网络或经典插值算法。
20、一种面向灵活视点存取的光场图像可伸缩编码方法,其特征在于包括以下步骤:
21、步骤s1:对于任意一张光场图像,设定用于表示该张光场图像的sai阵列即视点阵列的大小为9×9,将视点阵列分成四层视点层,第一层视点层共包含1个视点,角度坐标为(5,5);第二层视点层共包含8个视点,角度坐标分别为(1,1)、(1,5)、(1,9)、(5,1)、(5,9)、(9,1)、(9,5)、(9,9);第三层视点层共包含16个视点,角度坐标分别为(1,3)、(1,7)、(3,1)、(3,3)、(3,5)、(3,7)、(3,9)、(5,3)、(5,7)、(7,1)、(7,3)、(7,5)、(7,7)、(7,9)、(9,3)、(9,7);第四层视点层共包含56个视点,角度坐标分别为(1,2)、(1,4)、(1,6)、(1,8)、(2,1)、(2,2)、(2,3)、(2,4)、(2,5)、(2,6)、(2,7)、(2,8)、(2,9)、(3,2)、(3,4)、(3,6)、(3,8)、(4,1)、(4,2)、(4,3)、(4,4)、(4,5)、(4,6)、(4,7)、(4,8)、(4,9)、(5,2)、(5,4)、(5,6)、(5,8)、(6,1)、(6,2)、(6,3)、(6,4)、(6,5)、(6,6)、(6,7)、(6,8)、(6,9)、(7,2)、(7,4)、(7,6)、(7,8)、(8,1)、(8,2)、(8,3)、(8,4)、(8,5)、(8,6)、(8,7)、(8,8)、(8,9)、(9,2)、(9,4)、(9,6)、(9,8);其中,角度坐标(u,v)表示视点阵列中第u行第v列的位置,1≤u≤9,1≤v≤9;
22、步骤s2:在编码端,针对第一层视点层,将第一层视点层中的视点作为帧内编码帧输入到标准视频编码器中进行压缩编码;
23、步骤s3:在编码端,针对第二层视点层,将第二层视点层中的每个视点作为帧间编码帧输入到标准视频编码器中进行压缩编码,其中,在压缩编码时,第二层视点层中的每个视点的参考图像列表中的参考帧只有第一层视点层中的视点;
24、步骤s4:在解码端,使用标准视频编码器解码第一层视点层和第二层视点层各自中的所有视点;然后针对第三层视点层中的每个视点,根据2个来自前两层视点层中已解码的视点并采用视点合成技术生成;再针对第四层视点层中的每个视点,根据2个来自前三层视点层中已解码的视点并采用相同的视点合成技术生成;最终得到的解码兼合成的光场图像作为基础质量解码光场图像。
25、所述步骤s4中,针对第三层视点层中的每个视点,采用视点合成技术生成时生成的视点的角度坐标由2个来自前两层视点层中已解码的视点的角度坐标决定,对应关系如下:2个已解码的视点的角度坐标分别为(1,1)和(1,5)时,生成的视点的角度坐标为(1,3);2个已解码的视点的角度坐标分别为(1,5)和(1,9)时,生成的视点的角度坐标为(1,7);2个已解码的视点的角度坐标分别为(1,1)和(5,1)时,生成的视点的角度坐标为(3,1);2个已解码的视点的角度坐标分别为(1,1)和(5,5)时,生成的视点的角度坐标为(3,3);2个已解码的视点的角度坐标分别为(1,5)和(5,5)时,生成的视点的角度坐标为(3,5);2个已解码的视点的角度坐标分别为(1,9)和(5,5)时,生成的视点的角度坐标为(3,7);2个已解码的视点的角度坐标分别为(1,9)和(5,9)时,生成的视点的角度坐标为(3,9);2个已解码的视点的角度坐标分别为(5,1)和(5,5)时,生成的视点的角度坐标为(5,3);2个已解码的视点的角度坐标分别为(5,5)和(5,9)时,生成的视点的角度坐标为(5,7);2个已解码的视点的角度坐标分别为(5,1)和(9,1)时,生成的视点的角度坐标为(7,1);2个已解码的视点的角度坐标分别为(5,5)和(9,1)时,生成的视点的角度坐标为(7,3);2个已解码的视点的角度坐标分别为(5,5)和(9,5)时,生成的视点的角度坐标为(7,5);2个已解码的视点的角度坐标分别为(5,5)和(9,9)时,生成的视点的角度坐标为(7,7);2个已解码的视点的角度坐标分别为(5,9)和(9,9)时,生成的视点的角度坐标为(7,9);2个已解码的视点的角度坐标分别为(9,1)和(9,5)时,生成的视点的角度坐标为(9,3);2个已解码的视点的角度坐标分别为(9,5)和(9,9)时,生成的视点的角度坐标为(9,7)。
26、所述步骤s4中,针对第四层视点层中的每个视点,采用视点合成技术生成时生成的视点的角度坐标由2个来自前三层视点层中已解码的视点的角度坐标决定,对应关系如下:
27、2个已解码的视点的角度坐标分别为(n,1)和(n,3)时,生成的视点的角度坐标为(n,2);2个已解码的视点的角度坐标分别为(n,3)和(n,5)时,生成的视点的角度坐标为(n,4);2个已解码的视点的角度坐标分别为(n,5)和(n,7)时,生成的视点的角度坐标为(n,6);2个已解码的视点的角度坐标分别为(n,7)和(n,9)时,生成的视点的角度坐标为(n,8);其中,n的值为1、3、5、7、9;
28、2个已解码的视点的角度坐标分别为(1,m)和(3,m)时,生成的视点的角度坐标为
29、(2,m);2个已解码的视点的角度坐标分别为(3,m)和(5,m)时,生成的视点的角度坐标为(4,m);2个已解码的视点的角度坐标分别为(5,m)和(7,m)时,生成的视点的角度坐标为(6,m);2个已解码的视点的角度坐标分别为(7,m)和(9,m)时,生成的视点的角度坐标为(8,m);其中,m的值为1、3、5、7、9;
30、2个已解码的视点的角度坐标分别为(1,1)和(3,3)时,生成的视点的角度坐标为(2,2);2个已解码的视点的角度坐标分别为(1,3)和(3,5)时,生成的视点的角度坐标为(2,4);2个已解码的视点的角度坐标分别为(1,7)和(3,5)时,生成的视点的角度坐标为(2,6);2个已解码的视点的角度坐标分别为(1,9)和(3,7)时,生成的视点的角度坐标为(2,8);2个已解码的视点的角度坐标分别为(3,1)和(5,3)时,生成的视点的角度坐标为(4,2);2个已解码的视点的角度坐标分别为(3,3)和(5,5)时,生成的视点的角度坐标为(4,4);2个已解码的视点的角度坐标分别为(3,7)和(5,5)时,生成的视点的角度坐标为(4,6);2个已解码的视点的角度坐标分别为(3,9)和(5,7)时,生成的视点的角度坐标为(4,8);2个已解码的视点的角度坐标分别为(5,3)和(7,1)时,生成的视点的角度坐标为(6,2);2个已解码的视点的角度坐标分别为(5,5)和(7,3)时,生成的视点的角度坐标为(6,4);2个已解码的视点的角度坐标分别为(5,5)和(7,7)时,生成的视点的角度坐标为(6,6);2个已解码的视点的角度坐标分别为(5,7)和(7,9)时,生成的视点的角度坐标为(6,8);2个已解码的视点的角度坐标分别为(7,3)和(9,1)时,生成的视点的角度坐标为(8,2);2个已解码的视点的角度坐标分别为(7,5)和(9,3)时,生成的视点的角度坐标为(8,4);2个已解码的视点的角度坐标分别为(7,5)和(9,7)时,生成的视点的角度坐标为(8,6);2个已解码的视点的角度坐标分别为(7,7)和(9,9)时,生成的视点的角度坐标为(8,8)。
31、所述视点合成技术为视频插帧网络或经典插值算法。
32、与现有技术相比,本发明的优点在于:
33、本发明方法考虑到解码端对视点阵列的分辨率需求不同,将用于表示光场图像的视点阵列(即子孔径图像阵列)分成了四个视点层,用户可按照需求,灵活地传输不同的视点层,例如仅需要角度分辨率为1×1、3×3或5×5的解码光场图像的用户,不再需要传输所有的视点,可分别只传输前一层、前两层或前三层视点层。
34、本发明方法考虑到视点随机访问的需求,为不同视点构建了不同的参考图像列表,提升了视点随机访问的灵活性,且将额外的合成视点加入了部分视点的参考图像列表中,以提升编码效率。
35、本发明方法考虑到质量可伸缩需求,支持两种质量的传输,当带宽有限或仅需要基础质量的解码光场图像时,可只传输前两层视点层,解码端利用视点合成技术,合成其余视点;当带宽充足或需要增强质量的解码光场图像时,可将所有视点层都编码传输。
36、实验结果表明,本发明方法保持良好的编码效率的同时,可支持用户灵活地进行视点存取,如传输不同数量的视点、消耗不同的码率传输不同质量的光场图像和灵活访问不同位置的视点等。