发明内容
为了解决复合图像视频编码和解码的现有技术中的这一问题,本发明提供了一种基于混合色度采样率的图像编码与解码的方法和装置。
本发明的主要技术特征如图5所示。
本发明的编码方法和装置中,输入图像是亮度采样率和色度采样率完全一致的图像,如图5所示YUV4:4:4像素格式的图像。输入图像被分割成具有一定像素的基本编码单位,称为编码单元(Coding Unit简称CU),对CU逐个进行编码。
对一个CU进行编码时,首先读入一个YUV4:4:4像素格式的CU(称为4:4:4编码单元或简称4:4:4CU)的全部像素。这个4:4:4CU有3个分量。对该4:4:4CU的两个色度分量进行下采样,得到对应的4:2:0CU。如果在对一幅YUV4:4:4图像进行编码前,已经对该图像的所有色度分量进行了下采样而产生了对应的YUV4:2:0图像,那么所述对应的4:2:0CU也可以从所述对应的YUV4:2:0图像中直接读入。
然后,本发明同时使用两组不同类型的编码工具,分别对4:4:4CU和4:2:0CU进行压缩编码。两组编码完成后,分别计算两种编码结果的率-失真特性,选择率-失真特性最优的那组编码工具的编码结果作为对该CU的最后编码结果,并把相应的压缩码流数据写入输出压缩码流。最终的输出压缩码流是既含有YUV4:4:4像素格式的压缩码流数据又含有YUV4:2:0像素格式的压缩码流数据的具有混合色度采样率的压缩码流。
在压缩码流的解码端,本发明从码流中不断读入部分码流数据,按照CU在码流中的顺序,逐个进行以CU为单位的解码。解码端有两组不同类型的解码工具:YUV4:4:4解码工具和YUV4:2:0解码工具。对一个CU的码流数据进行解码时,首先解析出该CU是以YUV4:4:4还是YUV4:2:0像素格式进行编码的,然后把码流数据送往相应的那组解码工具进行解码。从YUV4:4:4解码工具得到的是YUV4:4:4像素格式的重构CU,而从YUV4:2:0解码工具得到的是YUV4:2:0像素格式的重构CU。后者还必须经过色度上采样,得到YUV4:4:4像素格式的重构CU。这样,就得到最终的完整的YUV4:4:4像素格式的重构图像。
本发明的编码方法的流程示意图如图6所示。本发明对一幅图像的编码方法包括如下步骤:
1)读入具有第一像素格式的一个图像编码单元,称其为第一编码单元;
2)对所述第一编码单元的色度分量进行下采样,保持亮度分量不变,生成第二像素格式的编码单元,称其为第二编码单元;
3)用第一组编码工具对所述第一编码单元进行第一编码,产生第一组编码工具的编码结果;
4)用第二组编码工具对所述第二编码单元进行第二有损编码;
5)用所述第二组编码工具继续对步骤4)的编码结果进行第二无损编码,产生第二组编码工具的编码结果;
6)对步骤3)的编码结果进行所述第一编码的逆运算,产生出第一重构编码单元,并把所述第一重构编码单元的像素放入第一像素格式的历史像素暂存区,用作所述第一组编码工具的后续编码的参考像素,由于编码可能是有损的,所述第一重构编码单元的像素不一定等于所述第一编码单元的像素;
7)对步骤4)的编码结果进行所述第二有损编码的逆运算,产生出第二重构编码单元,并把所述第二重构编码单元的像素放入第二像素格式的历史像素暂存区,用作所述第二组编码工具的后续编码的参考像素,由于编码是有损的,所述第二重构编码单元的像素不一定等于所述第二编码单元的像素;
8)使用步骤3)的编码结果和步骤6)的重构结果,计算第一组编码工具的编码结果的率-失真特性;
9)对所述第二重构编码单元进行色度上采样,得到第一像素格式的第二重构上采样编码单元;
10)使用步骤5)的编码结果和步骤9)的重构上采样结果,计算第二组编码工具的编码结果的率-失真特性;
11)选择率-失真特性最优的那组编码工具的编码结果作为对所述第一编码单元的最后编码结果,并输出相应压缩码流数据;
12)判断率-失真特性最优的那组编码工具是否是第一组编码工具,如果是,则顺序执行下一步骤,否则跳至步骤14);
13)对所述第一重构编码单元进行色度下采样,得到第二像素格式的第一重构下采样编码单元,并用所述第一重构下采样编码单元的像素更新和替换步骤7)中放入第二像素格式的历史像素暂存区的第二重构编码单元的像素,然后跳至步骤15);
14)用所述第二重构上采样编码单元的像素更新和替换步骤6)中放入第一像素格式的历史像素暂存区的第一重构编码单元的像素;
15)判断是否已经完成对一幅图像所有编码单元的编码,如果是,则结束编码,否则回到步骤1),开始对下一个编码单元的编码。
本发明的解码方法的流程示意图如图7所示。本发明对压缩码流的解码方法包括如下步骤:
1)从输入压缩码流中读入属于一个被编码的编码单元,称其为被编码单元,的一段压缩码流数据;
2)从所述一段压缩码流数据中解析出该段压缩码流数据所含的当前被编码单元采用第一像素格式还是第二像素格式,并把该段压缩码流数据送往对应的第一组解码工具或第二组解码工具;
3)所述当前被编码单元采用第一像素格式的场合,本步骤包括下列子步骤:
3a)用所述第一组解码工具对压缩码流进行解码,产生出第一像素格式的第一重构编码单元,并把所述第一重构编码单元的像素放入第一像素格式的历史像素暂存区,用作所述第一组解码工具的后续解码的参考像素;
3b)对所述第一重构编码单元进行色度下采样,得到第二像素格式的第一重构下采样编码单元,并把所述第一重构下采样编码单元的像素放入第二像素格式的历史像素暂存区,用作所述第二组解码工具的后续解码的参考像素;
3c)输出所述第一重构编码单元;
4)所述当前被编码单元采用第二像素格式的场合,本步骤包括下列子步骤:
4a)用所述第二组解码工具对压缩码流进行解码,产生出第二像素格式的第二重构编码单元,并把所述第二重构编码单元的像素放入第二像素格式的历史像素暂存区,用作所述第二组解码工具的后续解码的参考像素;
4b)对所述第二重构编码单元进行色度上采样,得到第一像素格式的第二重构上采样编码单元,并把所述第二重构上采样编码单元的像素放入第一像素格式的历史像素暂存区,用作所述第一组解码工具的后续解码的参考像素;
4c)输出所述第二重构上采样编码单元;
5)判断是否已经完成对一幅图像或一个视频序列所有被编码单元压缩码流数据的解码,如果是,则结束解码,否则回到步骤1),开始对下一个被编码单元的解码。
本发明的编码装置示意图如图8所示。整个编码装置由以下模块组成:
1)第一像素格式像素存储模块,用于存储至少一个编码单元的第一输入像素;
2)使用第一组编码工具的编码模块,用于对第一像素格式的第一输入像素编码单元进行编码;
3)第一重构模块,用于重构产生第一重构编码单元,第一重构编码单元的一个用途是用于第一组编码工具所需的参考像素,另一个用途是用于计算第一率-失真特性;
4)第一像素格式的历史像素暂存模块,用于暂存第一组编码工具所需的参考像素;
5)第一率-失真特性计算模块,用于计算所述使用第一组编码工具的编码模块产生的编码结果的第一率-失真特性;
6)色度下采样模块,有两个用途:
6a)对第一像素格式的第一输入像素进行色度下采样,产生第二像素格式的第二输入像素;
6b)对第一像素格式的参考像素进行色度下采样,产生第二组编码工具所需的第二像素格式的参考像素;
7)第二像素格式像素存储模块,用于存储至少一个编码单元的第二输入像素;
8)使用第二组编码工具的有损编码模块,用于对第二像素格式的第二输入像素编码单元进行有损编码;
9)使用第二组编码工具的无损编码模块,用于对所述使用第二组编码工具的有损编码模块产生的编码结果继续进行无损编码;
10)第二重构模块,用于重构产生第二重构编码单元,第二重构编码单元的一个用途是用于第二组编码工具所需的参考像素,另一个用途是经过色度上采样后用于计算第二率-失真特性;
11)第二像素格式的历史像素暂存模块,用于暂存第二组编码工具所需的参考像素;
12)色度上采样模块,有两个用途:
12a)对第二重构编码单元进行色度上采样,提供给第二率-失真特性计算模块用于计算第二率-失真特性;
12b)对第二像素格式的参考像素进行色度上采样,产生第一组编码工具所需的第一像素格式的参考像素;
13)第二率-失真特性计算模块,用于计算所述使用第二组编码工具的编码模块产生的编码结果的第二率-失真特性;
14)最优编码工具选择模块,连接于所述第一和第二率-失真特性计算模块,用于对所述率-失真特性计算结果进行分析,并选择出率-失真特性最优的那组编码工具的编码结果作为对当前第一输入像素编码单元的最后编码结果;
15)码流暂存输出模块,连接于所述最优编码工具选择模块,用于暂存所述最优编码工具编码模块所产生的压缩码流数据,并在特定的时间,把所述的压缩码流数据输出到压缩码流。
本发明的解码装置示意图如图9所示。整个解码装置由以下模块组成:
1)码流像素格式解析模块,用于接收从一外部装置输入的视频压缩码流,解析出接收到的一段压缩码流数据内压缩的当前编码单元,称为当前被编码单元,是第一像素格式编码单元还是第二像素格式编码单元,选择相对应的第一组解码工具或第二组解码工具对所述一段压缩码流数据进行解码,并把所述一段压缩码流数据输出至相对应的第一解码重构模块或第二解码重构模块;
2)第一解码重构模块,在所述当前被编码单元是第一像素格式的场合,使用第一组解码工具对第一像素格式的压缩码流数据进行解码,重构产生出第一像素格式的第一重构编码单元;
3)第一像素格式的历史像素暂存模块,用于暂存第一组解码工具所需的参考像素;
4)第二解码重构模块,在所述当前被编码单元是第二像素格式的场合,使用第二组解码工具对第二像素格式的压缩码流数据进行解码,重构产生出第二像素格式的第二重构编码单元;
5)第二像素格式的历史像素暂存模块,用于暂存第二组解码工具所需的参考像素;
6)色度下采样模块,在所述当前被编码单元是第一像素格式的场合,对所述第一重构编码单元的像素进行色度下采样,产生第二组解码工具后续解码所需的第二像素格式的参考像素;
7)色度上采样模块,在所述当前被编码单元是第二像素格式的场合,对所述第二重构编码单元的像素进行色度上采样,产生符合最终输出像素格式要求的第一像素格式的重构像素,同时也是第一组解码工具后续解码所需的参考像素;
8)重构图像暂存输出模块,连接于所述的第一解码重构模块和所述的色度上采样模块,用以暂存解码重构的一幅或多幅图像,并在预设的时间按照图像的显示顺序,把图像输出。
实施例:混合YUV4:4:4和YUV4:2:0像素格式的编码方法
第一个实施例是图6所表示的编码方法的一个具体和优化的实施,其中第一像素格式是YUV4:4:4格式而第二像素格式是YUV4:2:0格式;第一组编码工具是无损编码工具,即第一重构编码单元的像素完全等同于第一编码单元的像素,故相应的重构步骤和重构之后的下采样步骤都可省略;第一组编码工具仅使用选择了第一组编码工具的编码结果作为最后编码结果的那些编码单元的像素为参考像素,故当选择了第二组编码工具的编码结果作为最后编码结果的时候,不需要用第二重构上采样编码单元的像素更新和替换放入第一像素格式的历史像素暂存区的第一编码单元的像素。
本实施例的编码方法的流程示意图如图10所示。本实施例的编码方法包括如下步骤:
1)读入YUV4:4:4格式的一个图像编码单元,称其为第一编码单元;
2)对所述第一编码单元的色度分量进行下采样,生成YUV4:2:0格式的编码单元,称其为第二编码单元;
3)用无损的第一组编码工具对所述第一编码单元进行第一编码,产生第一组编码工具的编码结果;
4)用第二组编码工具对所述第二编码单元进行第二有损编码;
5)用所述第二组编码工具继续对步骤4)的编码结果进行第二无损编码,产生第二组编码工具的编码结果;
6)对步骤4)的编码结果进行所述第二有损编码的逆运算,产生出第二重构编码单元,并把所述第二重构编码单元的像素放入YUV4:2:0格式的历史像素暂存区,用作所述第二组编码工具的后续编码的参考像素,由于编码是有损的,所述第二重构编码单元的像素不一定等于所述第二编码单元的像素;
7)使用步骤3)的编码结果,计算第一组编码工具的编码结果的率-失真特性,由于第一组编码工具是无损的,失真为零;
8)对所述第二重构编码单元进行色度上采样,得到YUV4:4:4格式的第二重构上采样编码单元;
9)使用步骤5)的编码结果和步骤8)的重构上采样结果,计算第二组编码工具的编码结果的率-失真特性;
10)选择率-失真特性最优的那组编码工具的编码结果作为对所述第一编码单元的最后编码结果,并输出相应压缩码流数据;
11)判断率-失真特性最优的那组编码工具是否是第一组编码工具,如果是,则顺序执行下一步骤,否则跳至步骤14);
12)把所述第一编码单元的像素放入YUV4:4:4格式的历史像素暂存区;
13)用所述第二编码单元的像素更新和替换步骤6)中放入第二像素格式的历史像素暂存区的第二重构编码单元的像素;
14)判断是否已经完成对一幅图像所有编码单元的编码,如果是,则结束编码,否则回到步骤1),开始对下一个编码单元的编码。
第二个实施例也是图6所表示的编码方法的一个具体和优化的实施,其中第一像素格式是YUV4:4:4格式而第二像素格式是YUV4:2:2格式,其他方面与第一个实施例相同。
第三个实施例也是图6所表示的编码方法的一个具体和优化的实施,其中第一像素格式是YUV4:2:2格式而第二像素格式是YUV4:2:0格式,其他方面与第一个实施例相同。