首页 / 专利库 / 资料储存系统 / 数据压缩 / 无损压缩 / 熵编码 / 一种H.265编码方法和装置

一种H.265编码方法和装置

阅读:306发布:2020-05-11

专利汇可以提供一种H.265编码方法和装置专利检索,专利查询,专利分析的服务。并且本 发明 提供了一种H.265编码方法和装置,所述装置包括多个模 块 和多个流 水 步骤,每个流水步骤包括至少一个流水级,用于执行至少一个模块,多个模块包括预处理模块、粗选择模块、精确比较模块和整体控 制模 块;多个流水步骤包括预处理流水步骤、粗选择流水步骤、和精确比较流水步骤,所述粗选择流水步骤在预处理流水步骤之后执行,所述精确比较流水步骤在粗选择流水步骤之后执行。整体 控制模块 用于控制存、取原始 帧 数据和参考帧数据,以及控制所述预处理模块、粗选择模块、精确比较模块依次执行与之相对应的流水步骤。本发明通过分布搜索的方式提高了搜索 精度 ,同时更好地保留了重构图像的细节,降低了 硬件 资源消耗。,下面是一种H.265编码方法和装置专利的具体信息内容。

1.一种H.265编码装置,其特征在于,包括多个模和多个流步骤,每个流水步骤包括至少一个流水级,用于执行至少一个模块,其中:
多个模块包括预处理模块、粗选择模块、精确比较模块和整体控制模块,所述整体控制模块分别与预处理模块、粗选择模块、精确比较模块连接;
多个流水步骤包括预处理流水步骤、粗选择流水步骤、和精确比较流水步骤,所述粗选择流水步骤在预处理流水步骤之后执行,所述精确比较流水步骤在粗选择流水步骤之后执行;
所述预处理流水步骤通过预处理模块,将一个原始视频中的一个当前分割为多个CTU块;
所述粗选择流水步骤通过粗选择模块,按照多个划分模式来划分每个CTU块,对每个CTU块的每个划分模式进行帧间预测粗选择和帧内预测粗选择,并生成一个与每个划分模式相对应的预测信息;
所述精确比较流水步骤通过精确比较模块,对与每个CTU块的各个划分模式相对应的预测信息进行代价计算并比较,选择出对于每个CTU块代价最小的一个划分模式和与该划分模式对应的编码信息,并根据选择出的划分模式和其对应的编码信息,生成用于将当前帧生成H.265码流的熵编码信息和将当前帧生成重构帧的重构信息,
所述整体控制模块用于控制存、取原始帧数据和参考帧数据,以及控制所述预处理模块、粗选择模块、精确比较模块依次执行与之相对应的流水步骤。
2.如权利要求1所述的H.265编码装置,其特征在于,
所述粗选择模块包括:帧间预测粗选择模块和帧内预测粗选择模块;所述粗选择流水步骤包括:帧间预测粗选择流水级和帧内预测粗选择流水级;
所述帧间预测粗选择流水级通过帧间预测粗选择模块,按照多个划分模式来划分每个CTU块,每个划分模式将一个CTU块分割为对应的多个CU块,以及将其中的每个CU块分割为对应的一个或多个PU块,对每个CTU块的每个划分模式进行帧间预测并获取参考帧信息,以及对每个CTU块的每个划分模式进行帧内预测并生成一个与每个划分模式相对应的预测信息;
所述帧内预测粗选择流水级通过帧内预测粗选择模块:对每个划分模式中的每个PU块进行帧内预测并计算相应代价,根据代价选择相对于每个PU块代价一个或多个帧内预测方向,并将选择的帧内预测方向作为该划分模式相对应的预测信息。
3.如权利要求1所述的H.265编码装置,其特征在于,
所述粗选择模块还包括帧间粗选择模块,所述精确比较模块还包括帧内粗选择模块;
所述粗选择流水步骤包括帧间粗选择流水级,所述精确比较流水步骤包括帧内粗选择流水级;
所述帧间预测粗选择流水级通过帧间预测粗选择模块,按照多个划分模式来划分每个CTU块,每个划分模式将一个CTU块分割为对应的多个CU块,以及将其中的每个CU块分割为对应的一个或多个PU块,对每个CTU块的每个划分模式进行帧间预测并获取参考帧信息,以及对每个CTU块的每个划分模式进行帧内预测并生成一个与每个划分模式相对应的预测信息;
所述帧内预测粗选择流水级通过帧内预测粗选择模块:对每个划分模式中的每个PU块进行帧内预测并计算相应代价,根据代价选择相对于每个PU块代价一个或多个帧内预测方向,并将选择的帧内预测方向作为该划分模式相对应的预测信息。
4.如权利要求2或3所述的H.265编码装置,其特征在于,
所述帧间预测粗选择模块包括:粗搜索模块、参考帧数据加载模块、精搜索模块和分数像素搜索模块;
所述粗选择流水步骤包括:粗搜索流水级、参考帧数据加载流水级、精搜索流水级和分数像素搜索流水级;
所述粗搜索流水级通过粗搜索模块:从参考阵列中选择一帧,在其原始帧或者重构帧中选择一个参考帧,对参考帧和当前CTU块进行下采样操作,并在下采样后的参考帧中找到与下采样后的CTU块相比代价最小的像素位置,并计算该像素位置相对于当前CTU块的粗搜索矢量;
所述参考帧数据加载流水级通过参考帧数据加载流水级:通过整体控制模块获取粗搜索流水级的粗搜索矢量以及根据CTU块周围的运动矢量获得跟粗搜索有同样功能的一个或多个预测运动矢量,根据粗搜索矢量和一个或多个预测矢量加载参考帧数据,并通过整体控制模块传给精搜索流水级;
所述精搜索流水级通过精搜索模块:根据粗搜索矢量,针对每个PU块在参考帧的的重构图像中设定一个精搜索区域,并在该精搜索区域中生成一个该PU块对应的代价最小的一个精搜索矢量;以及用于根据当前CTU块周围的运动矢量信息,生成与粗搜索矢量具有同样功能的一个或多个预测运动矢量,并根据预测运动矢量生成精搜索矢量;并将生成的所有精搜索矢量发送给分数像素搜索模块;
所述分数像素搜索流水级通过分数像素搜索模块:根据每个接收到的精搜索矢量,针对每个PU块在参考帧中设定一个对应的分数像素搜索区域,并在该分数像素搜索区域中生成一个该PU块对应的代价最小的一个分数像素搜索矢量。
5.如权利要求4所述的H.265编码装置,其特征在于,所述帧内预测粗选择流水级与分数像素搜索流水级为同一个流水级,所述帧内预测粗选择模块与分数像素搜索模块并行地执行于该同一个流水级。
6.如权利要求5所述的H.265编码装置,其特征在于,
所述帧内预测粗选择模块包括参考像素生成模块,执行于帧内预测粗选择流水级;
所述帧内预测粗选择流水级包括:对每个划分模式中的每个PU块,使用当前帧的原始像素来生成参考像素,根据参考像素按H.265协议的规则对所有的帧内预测方向进行预测得到各个方向的预测结果,根据各个方向的预测结果分别与原始像素计算失真代价,并把代价从小到大排序选择出代价较小的一个或多个帧内预测方向。
7.如权利要求4所述的H.265编码装置,其特征在于,所述帧内预测粗选择流水级与分数像素搜索流水级为不同流水级,所述帧内预测粗选择模块执行于分数像素搜索模块之后的流水级。
8.如权利要求7所述的H.265编码装置,其特征在于,
所述帧内预测粗选择模块包括参考像素生成模块,执行于帧内预测粗选择流水级;
所述参考像素生成模块用于对每个划分模式中的每个PU块,使用当前帧的重构像素来生成参考像素,根据参考像素按H.265协议的规则对所有的帧内预测方向进行预测得到各个方向的预测结果,根据各个方向的预测结果分别与原始像素计算失真代价,并把代价从小到大排序选择出代价较小的一个或多个帧内预测方向。
9.如权利要求1所述的H.265编码装置,其特征在于,所述多个模块还包括后处理模块,所述多个流水步骤还包括后处理流水步骤,
所述后处理流水步骤通过后处理模块,将精确比较模块输出的每个CTU块相对应的代价最小的划分模式和根据与其对应的重构信息,来生成与当前帧相对应的重构帧。
10.如权利要求1所述的H.265编码装置,其特征在于,所述多个模块还包括熵编码模块,所述多个流水步骤还包括熵编码流水步骤,
所述熵编码流水步骤通过熵编码模块,将精确比较模块输出的每个CTU块相对应的代价最小的划分模式和根据与其对应的熵编码信息,生成符合H.265协议规范的二进制码流。
11.一种H.265编码方法,其特征在于,所述方法应用于H.265编码装置,所述装置包括多个模块和多个流水步骤,每个流水步骤包括至少一个流水级,用于执行至少一个模块,其中:
多个模块包括预处理模块、粗选择模块、精确比较模块和整体控制模块,所述整体控制模块分别与预处理模块、粗选择模块、精确比较模块连接;
多个流水步骤包括预处理流水步骤、粗选择流水步骤、和精确比较流水步骤,所述粗选择流水步骤在预处理流水步骤之后执行,所述精确比较流水步骤在粗选择流水步骤之后执行;
所述方法包括以下步骤:
预处理流水步骤通过预处理模块,将一个原始视频中的一个当前帧分割为多个CTU块;
粗选择流水步骤通过粗选择模块,按照多个划分模式来划分每个CTU块,对每个CTU块的每个划分模式进行帧间预测粗选择和帧内预测粗选择,并生成一个与每个划分模式相对应的预测信息;
精确比较流水步骤通过精确比较模块,对与每个CTU块的各个划分模式相对应的预测信息进行代价计算并比较,选择出对于每个CTU块代价最小的一个划分模式和与该划分模式对应的编码信息,并根据选择出的划分模式和其对应的编码信息,生成用于将当前帧生成H.265码流的熵编码信息和将当前帧生成重构帧的重构信息,
整体控制模块用于控制存、取原始帧数据和参考帧数据,以及控制所述预处理模块、粗选择模块、精确比较模块依次执行与之相对应的流水步骤。
12.如权利要求11所述的H.265编码方法,其特征在于,
所述粗选择模块包括:帧间预测粗选择模块和帧内预测粗选择模块;所述粗选择流水步骤包括:帧间预测粗选择流水级和帧内预测粗选择流水级;
所述方法还包括:
帧间预测粗选择流水级通过帧间预测粗选择模块,按照多个划分模式来划分每个CTU块,每个划分模式将一个CTU块分割为对应的多个CU块,以及将其中的每个CU块分割为对应的一个或多个PU块,对每个CTU块的每个划分模式进行帧间预测并获取参考帧信息,以及对每个CTU块的每个划分模式进行帧内预测并生成一个与每个划分模式相对应的预测信息;
帧内预测粗选择流水级通过帧内预测粗选择模块:对每个划分模式中的每个PU块进行帧内预测并计算相应代价,根据代价选择相对于每个PU块代价一个或多个帧内预测方向,并将选择的帧内预测方向作为该划分模式相对应的预测信息。
13.如权利要求11所述的H.265编码方法,其特征在于,
所述粗选择模块还包括帧间粗选择模块,所述精确比较模块还包括帧内粗选择模块;
所述粗选择流水步骤包括帧间粗选择流水级,所述精确比较流水步骤包括帧内粗选择流水级;
所述方法包括:
帧间预测粗选择流水级通过帧间预测粗选择模块,按照多个划分模式来划分每个CTU块,每个划分模式将一个CTU块分割为对应的多个CU块,以及将其中的每个CU块分割为对应的一个或多个PU块,对每个CTU块的每个划分模式进行帧间预测并获取参考帧信息,以及对每个CTU块的每个划分模式进行帧内预测并生成一个与每个划分模式相对应的预测信息;
帧内预测粗选择流水级通过帧内预测粗选择模块:对每个划分模式中的每个PU块进行帧内预测并计算相应代价,根据代价选择相对于每个PU块代价一个或多个帧内预测方向,并将选择的帧内预测方向作为该划分模式相对应的预测信息。
14.如权利要求12或13所述的H.265编码方法,其特征在于,
所述帧间预测粗选择模块包括:粗搜索模块、参考帧数据加载模块、精搜索模块和分数像素搜索模块;
所述粗选择流水步骤包括:粗搜索流水级、参考帧数据加载流水级、精搜索流水级和分数像素搜索流水级;
所述方法包括:
粗搜索流水级通过粗搜索模块:从参考阵列中选择一帧,在其原始帧或者重构帧中选择一个参考帧,对参考帧和当前CTU块进行下采样操作,并在下采样后的参考帧中找到与下采样后的CTU块相比代价最小的像素位置,并计算该像素位置相对于当前CTU块的粗搜索矢量;
参考帧数据加载流水级通过参考帧数据加载流水级:通过整体控制模块获取粗搜索流水级的粗搜索矢量以及根据CTU块周围的运动矢量获得跟粗搜索有同样功能的一个或多个预测运动矢量,根据粗搜索矢量和一个或多个预测矢量加载参考帧数据,并通过整体控制模块传给精搜索流水级;
精搜索流水级通过精搜索模块:根据粗搜索矢量,针对每个PU块在参考帧的的重构图像中设定一个精搜索区域,并在该精搜索区域中生成一个该PU块对应的代价最小的一个精搜索矢量;以及根据当前CTU块周围的运动矢量信息,生成与粗搜索矢量具有同样功能的一个或多个预测运动矢量,并根据预测运动矢量生成精搜索矢量;并将生成的所有精搜索矢量发送给分数像素搜索模块;
所述分数像素搜索流水级通过分数像素搜索模块:根据每个接收到的精搜索矢量,针对每个PU块在参考帧中设定一个对应的分数像素搜索区域,并在该分数像素搜索区域中生成一个该PU块对应的代价最小的一个分数像素搜索矢量。
15.如权利要求14所述的H.265编码方法,其特征在于,所述帧内预测粗选择流水级与分数像素搜索流水级为同一个流水级,所述帧内预测粗选择模块与分数像素搜索模块并行地执行于该同一个流水级。
16.如权利要求15所述的H.265编码方法,其特征在于,
所述帧内预测粗选择模块包括参考像素生成模块,执行于帧内预测粗选择流水级;
所述方法包括:
帧内预测粗选择流水级包括:对每个划分模式中的每个PU块,使用当前帧的原始像素来生成参考像素,根据参考像素按H.265协议的规则对所有的帧内预测方向进行预测得到各个方向的预测结果,根据各个方向的预测结果分别与原始像素计算失真代价,并把代价从小到大排序选择出代价较小的一个或多个帧内预测方向。
17.如权利要求14所述的H.265编码方法,其特征在于,所述帧内预测粗选择流水级与分数像素搜索流水级为不同流水级,所述帧内预测粗选择模块执行于分数像素搜索模块之后的流水级。
18.如权利要求17所述的H.265编码方法,其特征在于,
所述帧内预测粗选择模块包括参考像素生成模块,执行于帧内预测粗选择流水级;
所述方法包括:
参考像素生成模块对每个划分模式中的每个PU块,使用当前帧的重构像素来生成参考像素,根据参考像素按H.265协议的规则对所有的帧内预测方向进行预测得到各个方向的预测结果,根据各个方向的预测结果分别与原始像素计算失真代价,并把代价从小到大排序选择出代价较小的一个或多个帧内预测方向。
19.如权利要求11所述的H.265编码方法,其特征在于,所述多个模块还包括后处理模块,所述多个流水步骤还包括后处理流水步骤,
所述方法包括:
后处理流水步骤通过后处理模块,将精确比较模块输出的每个CTU块相对应的代价最小的划分模式和根据与其对应的重构信息,来生成与当前帧相对应的重构帧。
20.如权利要求11所述的H.265编码方法,其特征在于,所述多个模块还包括熵编码模块,所述多个流水步骤还包括熵编码流水步骤;
所述方法包括:熵编码流水步骤通过熵编码模块,将精确比较模块输出的每个CTU块相对应的代价最小的划分模式和根据与其对应的熵编码信息,生成符合H.265协议规范的二进制码流。

说明书全文

一种H.265编码方法和装置

技术领域

[0001] 本发明涉及H.265编码领域,尤其涉及一种H.265编码方法和装置。

背景技术

[0002] H.265是ITU-T VCEG继H.264之后所制定的新的视频编码标准。H.265标准围绕着现有的视频编码标准H.264,保留原来的某些技术,同时对一些相关的技术加以改进。新加的技术用以改善码流、编码质量、延时和算法复杂度之间的关系,达到最优化设置。具体的研究内容包括:提高压缩效率、提高鲁棒性和错误恢复能、减少实时的时延、减少信道获取时间和随机接入时延、降低复杂度等。目前,现有的H.265算法普遍存在着硬件资源消耗大、编码效率低的问题。

发明内容

[0003] 为此,需要提供一种H.265编码的技术方案,用以降低H.265算法的硬件资源消耗,并提高编码效率。
[0004] 为实现上述目的,发明人提供了一种H.265编码装置,包括多个模和多个流步骤,每个流水步骤包括至少一个流水级,用于执行至少一个模块,其中:
[0005] 多个模块包括预处理模块、粗选择模块、精确比较模块和整体控制模块,所述整体控制模块分别与预处理模块、粗选择模块、精确比较模块连接;
[0006] 多个流水步骤包括预处理流水步骤、粗选择流水步骤、和精确比较流水步骤,所述粗选择流水步骤在预处理流水步骤之后执行,所述精确比较流水步骤在粗选择流水步骤之后执行;
[0007] 所述预处理流水步骤通过预处理模块,将一个原始视频中的一个当前分割为多个CTU块;
[0008] 所述粗选择流水步骤通过粗选择模块,按照多个划分模式来划分每个CTU块,对每个CTU块的每个划分模式进行帧间预测粗选择和帧内预测粗选择,并生成一个与每个划分模式相对应的预测信息;
[0009] 所述精确比较流水步骤通过精确比较模块,对与每个CTU块的各个划分模式相对应的预测信息进行代价计算并比较,选择出对于每个CTU块代价最小的一个划分模式和与该划分模式对应的编码信息,并根据选择出的划分模式和其对应的编码信息,生成用于将当前帧生成H.265码流的熵编码信息和将当前帧生成重构帧的重构信息,
[0010] 所述整体控制模块用于控制存、取原始帧数据和参考帧数据,以及控制所述预处理模块、粗选择模块、精确比较模块依次执行与之相对应的流水步骤。
[0011] 进一步地,所述粗选择模块包括:帧间预测粗选择模块和帧内预测粗选择模块;所述粗选择流水步骤包括:帧间预测粗选择流水级和帧内预测粗选择流水级;
[0012] 所述帧间预测粗选择流水级通过帧间预测粗选择模块,按照多个划分模式来划分每个CTU块,每个划分模式将一个CTU块分割为对应的多个CU块,以及将其中的每个CU块分割为对应的一个或多个PU块,对每个CTU块的每个划分模式进行帧间预测并获取参考帧信息,以及对每个CTU块的每个划分模式进行帧内预测并生成一个与每个划分模式相对应的预测信息;
[0013] 所述帧内预测粗选择流水级通过帧内预测粗选择模块:对每个划分模式中的每个PU块进行帧内预测并计算相应代价,根据代价选择相对于每个PU块代价一个或多个帧内预测方向,并将选择的帧内预测方向作为该划分模式相对应的预测信息。
[0014] 进一步地,所述粗选择模块还包括帧间粗选择模块,所述精确比较模块还包括帧内粗选择模块;
[0015] 所述粗选择流水步骤包括帧间粗选择流水级,所述精确比较流水步骤包括帧内粗选择流水级。
[0016] 所述帧间预测粗选择流水级通过帧间预测粗选择模块,按照多个划分模式来划分每个CTU块,每个划分模式将一个CTU块分割为对应的多个CU块,以及将其中的每个CU块分割为对应的一个或多个PU块,对每个CTU块的每个划分模式进行帧间预测并获取参考帧信息,以及对每个CTU块的每个划分模式进行帧内预测并生成一个与每个划分模式相对应的预测信息;
[0017] 所述帧内预测粗选择流水级通过帧内预测粗选择模块:对每个划分模式中的每个PU块进行帧内预测并计算相应代价,根据代价选择相对于每个PU块代价一个或多个帧内预测方向,并将选择的帧内预测方向作为该划分模式相对应的预测信息。
[0018] 进一步地,所述帧间预测粗选择模块包括:粗搜索模块、参考帧数据加载模块、精搜索模块和分数像素搜索模块;
[0019] 所述粗选择流水步骤包括:粗搜索流水级、参考帧数据加载流水级、精搜索流水级和分数像素搜索流水级;
[0020] 所述粗搜索流水级通过粗搜索模块:从参考阵列中选择一帧,在其原始帧或者重构帧中选择一个参考帧,对参考帧和当前CTU块进行下采样操作,并在下采样后的参考帧中找到与下采样后的CTU块相比代价最小的像素位置,并计算该像素位置相对于当前CTU块的粗搜索矢量;
[0021] 所述参考帧数据加载流水级通过参考帧数据加载流水级:通过整体控制模块获取粗搜索流水级的粗搜索矢量以及根据CTU块周围的运动矢量获得跟粗搜索有同样功能的一个或多个预测运动矢量,根据粗搜索矢量和一个或多个预测矢量加载参考帧数据,并通过整体控制模块传给精搜索流水级;
[0022] 所述精搜索流水级通过精搜索模块:根据粗搜索矢量,针对每个PU块在参考帧的的重构图像中设定一个精搜索区域,并在该精搜索区域中生成一个该PU块对应的代价最小的一个精搜索矢量;以及用于根据当前CTU块周围的运动矢量信息,生成与粗搜索矢量具有同样功能的一个或多个预测运动矢量,并根据预测运动矢量生成精搜索矢量;并将生成的所有精搜索矢量发送给分数像素搜索模块;
[0023] 所述分数像素搜索流水级通过分数像素搜索模块:根据每个接收到的精搜索矢量,针对每个PU块在参考帧中设定一个对应的分数像素搜索区域,并在该分数像素搜索区域中生成一个该PU块对应的代价最小的一个分数像素搜索矢量。
[0024] 进一步地,所述帧内预测粗选择流水级与分数像素搜索流水级为同一个流水级,所述帧内预测粗选择模块与分数像素搜索模块并行地执行于该同一个流水级。
[0025] 进一步地,所述帧内预测粗选择模块包括参考像素生成模块,执行于帧内预测粗选择流水级;
[0026] 所述帧内预测粗选择流水级包括:对每个划分模式中的每个PU块,使用当前帧的原始像素来生成参考像素,根据参考像素按H.265协议的规则对所有的帧内预测方向进行预测得到各个方向的预测结果,根据各个方向的预测结果分别与原始像素计算失真代价,并把代价从小到大排序选择出代价较小的一个或多个帧内预测方向。
[0027] 进一步地,所述帧内预测粗选择流水级与分数像素搜索流水级为不同流水级,所述帧内预测粗选择模块执行于分数像素搜索模块之后的流水级。
[0028] 进一步地,所述帧内预测粗选择模块包括参考像素生成模块,执行于帧内预测粗选择流水级;
[0029] 所述参考像素生成模块用于对每个划分模式中的每个PU块,使用当前帧的重构像素来生成参考像素,根据参考像素按H.265协议的规则对所有的帧内预测方向进行预测得到各个方向的预测结果,根据各个方向的预测结果分别与原始像素计算失真代价,并把代价从小到大排序选择出代价较小的一个或多个帧内预测方向。
[0030] 进一步地,所述多个模块还包括后处理模块,所述多个流水步骤还包括后处理流水步骤,
[0031] 所述后处理流水步骤通过后处理模块,将精确比较模块输出的每个CTU块相对应的代价最小的划分模式和根据与其对应的重构信息,来生成与当前帧相对应的重构帧。
[0032] 进一步地,所述多个模块还包括熵编码模块,所述多个流水步骤还包括熵编码流水步骤,
[0033] 所述熵编码流水步骤通过熵编码模块,将精确比较模块输出的每个CTU块相对应的代价最小的划分模式和根据与其对应的熵编码信息,生成符合H.265协议规范的二进制码流。
[0034] 发明人还提供了一种H.265编码方法,所述方法应用于H.265编码装置,所述装置包括多个模块和多个流水步骤,每个流水步骤包括至少一个流水级,用于执行至少一个模块,其中:
[0035] 多个模块包括预处理模块、粗选择模块、精确比较模块和整体控制模块,所述整体控制模块分别与预处理模块、粗选择模块、精确比较模块连接;
[0036] 多个流水步骤包括预处理流水步骤、粗选择流水步骤、和精确比较流水步骤,所述粗选择流水步骤在预处理流水步骤之后执行,所述精确比较流水步骤在粗选择流水步骤之后执行;
[0037] 所述方法包括以下步骤:
[0038] 预处理流水步骤通过预处理模块,将一个原始视频中的一个当前帧分割为多个CTU块;
[0039] 粗选择流水步骤通过粗选择模块,按照多个划分模式来划分每个CTU块,对每个CTU块的每个划分模式进行帧间预测粗选择和帧内预测粗选择,并生成一个与每个划分模式相对应的预测信息;
[0040] 精确比较流水步骤通过精确比较模块,对与每个CTU块的各个划分模式相对应的预测信息进行代价计算并比较,选择出对于每个CTU块代价最小的一个划分模式和与该划分模式对应的编码信息,并根据选择出的划分模式和其对应的编码信息,生成用于将当前帧生成H.265码流的熵编码信息和将当前帧生成重构帧的重构信息,
[0041] 整体控制模块用于控制存、取原始帧数据和参考帧数据,以及控制所述预处理模块、粗选择模块、精确比较模块依次执行与之相对应的流水步骤。
[0042] 进一步地,所述粗选择模块包括:帧间预测粗选择模块和帧内预测粗选择模块;所述粗选择流水步骤包括:帧间预测粗选择流水级和帧内预测粗选择流水级;
[0043] 所述方法还包括:
[0044] 帧间预测粗选择流水级通过帧间预测粗选择模块,按照多个划分模式来划分每个CTU块,每个划分模式将一个CTU块分割为对应的多个CU块,以及将其中的每个CU块分割为对应的一个或多个PU块,对每个CTU块的每个划分模式进行帧间预测并获取参考帧信息,以及对每个CTU块的每个划分模式进行帧内预测并生成一个与每个划分模式相对应的预测信息;
[0045] 帧内预测粗选择流水级通过帧内预测粗选择模块:对每个划分模式中的每个PU块进行帧内预测并计算相应代价,根据代价选择相对于每个PU块代价一个或多个帧内预测方向,并将选择的帧内预测方向作为该划分模式相对应的预测信息。
[0046] 进一步地,所述粗选择模块还包括帧间粗选择模块,所述精确比较模块还包括帧内粗选择模块;
[0047] 所述粗选择流水步骤包括帧间粗选择流水级,所述精确比较流水步骤包括帧内粗选择流水级。
[0048] 所述方法包括:
[0049] 帧间预测粗选择流水级通过帧间预测粗选择模块,按照多个划分模式来划分每个CTU块,每个划分模式将一个CTU块分割为对应的多个CU块,以及将其中的每个CU块分割为对应的一个或多个PU块,对每个CTU块的每个划分模式进行帧间预测并获取参考帧信息,以及对每个CTU块的每个划分模式进行帧内预测并生成一个与每个划分模式相对应的预测信息;
[0050] 帧内预测粗选择流水级通过帧内预测粗选择模块:对每个划分模式中的每个PU块进行帧内预测并计算相应代价,根据代价选择相对于每个PU块代价一个或多个帧内预测方向,并将选择的帧内预测方向作为该划分模式相对应的预测信息。
[0051] 进一步地,所述帧间预测粗选择模块包括:粗搜索模块、参考帧数据加载模块、精搜索模块和分数像素搜索模块;
[0052] 所述粗选择流水步骤包括:粗搜索流水级、参考帧数据加载流水级、精搜索流水级和分数像素搜索流水级;
[0053] 所述方法包括:
[0054] 粗搜索流水级通过粗搜索模块:从参考阵列中选择一帧,在其原始帧或者重构帧中选择一个参考帧,对参考帧和当前CTU块进行下采样操作,并在下采样后的参考帧中找到与下采样后的CTU块相比代价最小的像素位置,并计算该像素位置相对于当前CTU块的粗搜索矢量;
[0055] 参考帧数据加载流水级通过参考帧数据加载流水级:通过整体控制模块获取粗搜索流水级的粗搜索矢量以及根据CTU块周围的运动矢量获得跟粗搜索有同样功能的一个或多个预测运动矢量,根据粗搜索矢量和一个或多个预测矢量加载参考帧数据,并通过整体控制模块传给精搜索流水级;
[0056] 精搜索流水级通过精搜索模块:根据粗搜索矢量,针对每个PU块在参考帧的的重构图像中设定一个精搜索区域,并在该精搜索区域中生成一个该PU块对应的代价最小的一个精搜索矢量;以及根据当前CTU块周围的运动矢量信息,生成与粗搜索矢量具有同样功能的一个或多个预测运动矢量,并根据预测运动矢量生成精搜索矢量;并将生成的所有精搜索矢量发送给分数像素搜索模块;
[0057] 所述分数像素搜索流水级通过分数像素搜索模块:根据每个接收到的精搜索矢量,针对每个PU块在参考帧中设定一个对应的分数像素搜索区域,并在该分数像素搜索区域中生成一个该PU块对应的代价最小的一个分数像素搜索矢量。
[0058] 进一步地,所述帧内预测粗选择流水级与分数像素搜索流水级为同一个流水级,所述帧内预测粗选择模块与分数像素搜索模块并行地执行于该同一个流水级。
[0059] 进一步地,所述帧内预测粗选择模块包括参考像素生成模块,执行于帧内预测粗选择流水级;
[0060] 所述方法包括:
[0061] 帧内预测粗选择流水级包括:对每个划分模式中的每个PU块,使用当前帧的原始像素来生成参考像素,根据参考像素按H.265协议的规则对所有的帧内预测方向进行预测得到各个方向的预测结果,根据各个方向的预测结果分别与原始像素计算失真代价,并把代价从小到大排序选择出代价较小的一个或多个帧内预测方向。
[0062] 进一步地,所述帧内预测粗选择流水级与分数像素搜索流水级为不同流水级,所述帧内预测粗选择模块执行于分数像素搜索模块之后的流水级。
[0063] 进一步地,所述帧内预测粗选择模块包括参考像素生成模块,执行于帧内预测粗选择流水级;
[0064] 所述方法包括:
[0065] 参考像素生成模块对每个划分模式中的每个PU块,使用当前帧的重构像素来生成参考像素,根据参考像素按H.265协议的规则对所有的帧内预测方向进行预测得到各个方向的预测结果,根据各个方向的预测结果分别与原始像素计算失真代价,并把代价从小到大排序选择出代价较小的一个或多个帧内预测方向。
[0066] 进一步地,所述多个模块还包括后处理模块,所述多个流水步骤还包括后处理流水步骤,
[0067] 所述方法包括:
[0068] 后处理流水步骤通过后处理模块,将精确比较模块输出的每个CTU块相对应的代价最小的划分模式和根据与其对应的重构信息,来生成与当前帧相对应的重构帧。
[0069] 进一步地,所述多个模块还包括熵编码模块,所述多个流水步骤还包括熵编码流水步骤;
[0070] 所述方法包括:熵编码流水步骤通过熵编码模块,将精确比较模块输出的每个CTU块相对应的代价最小的划分模式和根据与其对应的熵编码信息,生成符合H.265协议规范的二进制码流。
[0071] 区别于现有技术,本发明通过分布搜索的方式提高了搜索精度,同时更好地保留了重构图像的细节,降低了硬件资源消耗。同时,各个模块之间流水作业,通过整体控制模块进行调度,有效提高了编码效率。附图说明
[0072] 图1为本发明一实施方式涉及的H.265编码装置的示意图;
[0073] 图2为本发明一实施方式涉及的H.265编码装置的粗选择模块的示意图;
[0074] 图3为本发明一实施方式涉及的H.265编码装置的粗搜索过程的示意图;
[0075] 图4为本发明一实施方式涉及的H.265编码装置的精搜索过程的示意图;
[0076] 图5为本发明一实施方式涉及的H.265编码装置的分数像素搜索的示意图;
[0077] 图6-A为本发明一实施方式涉及的H.265编码装置进行搜索预测的示意图;
[0078] 图6-B为本发明另一实施方式涉及的H.265编码装置进行搜索预测的示意图;
[0079] 图7为本发明一实施方式涉及的H.265编码装置的精确比较模块的示意图;
[0080] 图8为本发明一实施方式涉及的H.265编码装置的分层比较模块的示意图;
[0081] 图9为本发明一实施方式涉及的H.265编码方法的流程图
[0082] 图10为本发明一实施方式涉及的H.265编码的粗搜索方法的流程图;
[0083] 图11为本发明一实施方式涉及的H.265编码的精搜索方法的流程图;
[0084] 图12为本发明一实施方式涉及的H.265编码的分数像素搜索方法的流程图;
[0085] 图13为本发明一实施方式涉及的当前CTU块周围的运动矢量信息的示意图;
[0086] 图14为本发明另一实施方式涉及的H.265编码装置的示意图;
[0087] 附图标记:
[0088] 100、原始视频;
[0089] 101、原始图像帧;
[0090] 102、当前帧;
[0091] 110、图像编码设备;120、预处理模块;130、粗选择模块;140、精确比较模块;150、熵编码模块;160、去块滤波模块;170、样本自适应偏置模块;180、后处理模块;
[0092] 121、当前CTU;141、编码信息;180、编码后视频;190、码流;145、重构帧图像;
[0093] 230、帧间预测粗选择模块;211、粗搜索模块;213、精搜索模块;215、分数像素搜索模块;
[0094] 330、帧内预测粗选择模块;231、参考像素生成模块;
[0095] 310、参考帧;311、下采样;320、下采样后的图像;351、运动矢量;352、最小代价像素块;330、当前CTU;340、下采样后CTU。
[0096] 410、参考帧;420、当前PU位置;421、还原运动矢量;423、精搜索运动矢量;430、精搜索区域;431、起始搜索位置;433、最小代价位置;
[0097] 510、参考帧;520、当前PU位置;521、精搜索运动矢量;423、分数像素搜索运动矢量;530、分数像素搜索区域;531、起始搜索位置;533、最小代价位置;
[0098] 711、分发模块;721、一级计算Level_calc0;722、二级计算Level_calc1;
[0099] 723、三级计算Level_calc2;724、四级计算Level_calc3;
[0100] 740、分层比较模块;
[0101] 810、单级计算模块;820、帧间模式代价计算模块;830、帧内模式代价计算模块;840、优选模块;
[0102] 910、参考帧数据加载模块;920、整体控制模块。

具体实施方式

[0103] 为详细说明技术方案的技术内容、构造特征、所实现目的及效果,以下结合具体实施例并配合附图详予说明。
[0104] 请参阅图1和图14,为本发明设计的H.265编码装置的示意图。所述装置为图像编码设备110,所述装置可以为具有图像编码功能的芯片,也可以为包含有上述芯片的电子设备,如是手机、平板电脑个人数字助理等智能移动设备,还可以是个人计算机、工业装备用计算机等电子设备。
[0105] 本发明设计的H.265编码装置可采用包含了多个流水步骤的流水线来实现具体实施例中的多个步骤。上述“流水线”,亦称管线(Pipeline),是指将对H.265的编码处理过程拆分为多个步骤,并通过多个相对应的硬件处理单元并行执行这些步骤,来加快处理速度的一种硬件实施方案。“流水步骤”指一条流水线上的一个具体步骤;“流水级”指在一个流水步骤内的一个特定流水线级。换句话说,一个流水线可以包括一个或者多个流水步骤;一个流水步骤可以包括一个或多个流水级。当一个流水步骤中只包括一个流水级时,可以将该流水步骤和流水级等同对待。
[0106] 在一些实施例中,某个特定的硬件模块可以支持一个或多个流水步骤的运行。就是说,这些流水步骤中的所有流水级,都由该硬件模块(或者由包含其中的子模块)来负责运行。在另外一些实施例中,某个特定的硬件模块可以支持至少一个流水级的运行。如果一个流水步骤有多个流水级时,该硬件模块只负责该流水步骤中,特定的一个或多个流水级的运行。换句话说,该流水步骤可以通过多个硬件模块来实施,每个硬件模块分别负责运行相应的流水步骤中相应的流水级。
[0107] 所述装置包括多个模块和多个流水步骤,每个流水步骤包括至少一个流水级,用于执行至少一个模块,其中:
[0108] 多个模块包括预处理模块120、粗选择模块130、精确比较模块140和整体控制模块920,所述整体控制模块920分别与预处理模块120、粗选择模块130、精确比较模块140连接;
[0109] 多个流水步骤包括预处理流水步骤、粗选择流水步骤、和精确比较流水步骤,所述粗选择流水步骤在预处理流水步骤之后执行,所述精确比较流水步骤在粗选择流水步骤之后执行;
[0110] 所述预处理流水步骤通过预处理模块120,将一个原始视频100中的一个当前帧102分割为多个CTU块(Coding Tree Unit,编码树单元)。CTU为当前帧图像中的一个子块,大小可以为16x16子块、32x32子块、64x64子块中的任意一种。具体地,预处理模块可以获取一个原始视频100中的原始图像帧101,并从原始图像帧101中选定一当前帧102。
[0111] 所述粗选择流水步骤通过粗选择模块130,按照多个划分模式来划分每个CTU块,对每个CTU块的每个划分模式进行帧间预测粗选择和帧内预测粗选择,并生成一个与每个划分模式相对应的预测信息。
[0112] 如图2所示,在本实施方式中,所述粗选择模块包括:帧间预测粗选择模块和帧内预测粗选择模块;所述粗选择流水步骤包括:帧间预测粗选择流水级和帧内预测粗选择流水级;
[0113] 所述帧间预测粗选择流水级通过帧间预测粗选择模块,按照多个划分模式来划分每个CTU块,每个划分模式将一个CTU块分割为对应的多个CU块(Coding Unit,编码单元),以及将其中的每个CU块分割为对应的一个或多个PU块(Prediction Unit,预测单元),对每个CTU块的每个划分模式进行帧间预测并获取参考帧信息,以及对每个CTU块的每个划分模式进行帧内预测并生成一个与每个划分模式相对应的预测信息。划分模式根据实际需要进行选择,例如对于一个64x64大小的当前CTU 121,可以将其划分为4个32x32子块;对于每个32x32子块又可以将其分为4个16x16子块。
[0114] 所述帧内预测粗选择流水级通过帧内预测粗选择模块:对每个划分模式中的每个PU块进行帧内预测并计算相应代价,根据代价选择相对于每个PU块代价一个或多个帧内预测方向,并将选择的帧内预测方向作为该划分模式相对应的预测信息。每个PU块都有自身对应的运动矢量,每个PU块的运动矢量都是用来从重构的参考帧中获取预测信息的,具体可以以当前PU块所在的位置为起点,按PU块对应的运动矢量获取预测信息。
[0115] 所述精确比较流水步骤通过精确比较模块140,对与每个CTU块的各个划分模式相对应的预测信息进行代价计算并比较,选择出对于每个CTU块代价最小的一个划分模式和与该划分模式对应的编码信息,并根据选择出的划分模式和其对应的编码信息,生成用于将当前帧生成H.265码流的熵编码信息和将当前帧生成重构帧的重构信息。这样,通过分布搜索的方式提高了搜索精度,同时更好地保留了重构图像的细节,降低了硬件资源消耗。
[0116] 所述整体控制模块用于控制存、取原始帧数据和参考帧数据,以及控制所述预处理模块、粗选择模块、精确比较模块依次执行与之相对应的流水步骤。优选的,所述粗选择流水步骤在预处理流水步骤之后执行,所述精确比较流水步骤在粗选择流水步骤之后执行。简言之,粗选择模块在执行当前帧对应的粗选择流水步骤时,预处理模块可以进行当前帧对应的下一帧的预处理流水步骤,精确比较模块在执行当前帧对应的精确比较流水步骤时,粗选择模块可以进行当前帧对应的下一帧的粗选择流水步骤,以此类推,实现流水作业,从而有效提高了编码效率。
[0117] 在某些实施例中,所述粗选择模块130还包括帧间粗选择模块230,所述精确比较模块140还包括帧内粗选择模块330;所述粗选择流水步骤包括帧间粗选择流水级,所述精确比较流水步骤包括帧内粗选择流水级。
[0118] 所述帧间预测粗选择流水级通过帧间预测粗选择模块,按照多个划分模式来划分每个CTU块,每个划分模式将一个CTU块分割为对应的多个CU块,以及将其中的每个CU块分割为对应的一个或多个PU块,对每个CTU块的每个划分模式进行帧间预测并获取参考帧信息,以及对每个CTU块的每个划分模式进行帧内预测并生成一个与每个划分模式相对应的预测信息;
[0119] 所述帧内预测粗选择流水级通过帧内预测粗选择模块:对每个划分模式中的每个PU块进行帧内预测并计算相应代价,根据代价选择相对于每个PU块代价一个或多个帧内预测方向,并将选择的帧内预测方向作为该划分模式相对应的预测信息。
[0120] 简言之,在实际应用过程中,帧内粗选择模块330既可以附属于粗选择模块130,也可以附属于精确比较模块140,从而拓宽本装置的应用场景。
[0121] 在某些实施例中,所述帧间预测粗选择模块230包括:粗搜索模块211、参考帧数据加载模块910、精搜索模块213和分数像素搜索模块215。所述粗选择流水步骤包括:粗搜索流水级、参考帧数据加载流水级、精搜索流水级和分数像素搜索流水级;
[0122] 所述粗搜索流水级通过粗搜索模块:从参考阵列中选择一帧,在其原始帧或者重构帧中选择一个参考帧,对参考帧和当前CTU块进行下采样操作,并在下采样后的参考帧中找到与下采样后的CTU块相比代价最小的像素位置,并计算该像素位置相对于当前CTU块的粗搜索矢量;
[0123] 所述参考帧数据加载流水级通过参考帧数据加载流水级:通过整体控制模块获取粗搜索流水级的粗搜索矢量以及根据CTU块周围的运动矢量获得跟粗搜索有同样功能的一个或多个预测运动矢量,根据粗搜索矢量和一个或多个预测矢量加载参考帧数据,并通过整体控制模块传给精搜索流水级;
[0124] 所述精搜索流水级通过精搜索模块:根据粗搜索矢量,针对每个PU块在参考帧的的重构图像中设定一个精搜索区域,并在该精搜索区域中生成一个该PU块对应的代价最小的一个精搜索矢量;以及用于根据当前CTU块周围的运动矢量信息,生成与粗搜索矢量具有同样功能的一个或多个预测运动矢量,并根据预测运动矢量生成精搜索矢量;并将生成的所有精搜索矢量发送给分数像素搜索模块;
[0125] 所述分数像素搜索流水级通过分数像素搜索模块:根据每个接收到的精搜索矢量,针对每个PU块在参考帧中设定一个对应的分数像素搜索区域,并在该分数像素搜索区域中生成一个该PU块对应的代价最小的一个分数像素搜索矢量。优选的,所述帧内预测粗选择流水级与分数像素搜索流水级为同一个流水级,所述帧内预测粗选择模块与分数像素搜索模块并行地执行于该同一个流水级。
[0126] 所述参考列表为存放参考帧的列表,当前帧的参考帧可以有多帧,都是通过参考列表索引的。一个参考帧包括重构帧和原始帧。由于参考帧和当前CTU块都是经过下采样操作得到,因而粗搜索模块计算得到的粗搜索矢量也应为相应下采样的搜索矢量,即相较于当前CTU块对应的粗搜索矢量需要乘以下采样的倍率(如1/4),并将乘以相应倍率后的粗搜索矢量传输给下一处理模块。
[0127] 在某些实施例中,所述帧内预测粗选择模块包括参考像素生成模块,执行于帧内预测粗选择流水级;所述帧内预测粗选择流水级包括:对每个划分模式中的每个PU块,使用当前帧的原始像素来生成参考像素,根据参考像素按H.265协议的规则对所有的帧内预测方向进行预测得到各个方向的预测结果,根据各个方向的预测结果分别与原始像素计算失真代价,并把代价从小到大排序选择出代价较小的一个或多个帧内预测方向。
[0128] 在某些实施例中,所述帧内预测粗选择流水级与分数像素搜索流水级为不同流水级,所述帧内预测粗选择模块执行于分数像素搜索模块之后的流水级。所述帧内预测粗选择模块包括参考像素生成模块,执行于帧内预测粗选择流水级;所述参考像素生成模块用于对每个划分模式中的每个PU块,使用当前帧的重构像素来生成参考像素,根据参考像素按H.265协议的规则对所有的帧内预测方向进行预测得到各个方向的预测结果,根据各个方向的预测结果分别与原始像素计算失真代价,并把代价从小到大排序选择出代价较小的一个或多个帧内预测方向。
[0129] 如图3所示,所述粗搜索模块从原始帧或者重构帧中选择一个作为参考帧,对参考帧和当前CTU分别进行下采样操作,再在下采样后的参考帧中找到与下采样后的CTU相比代价最小的像素位置和粗搜索矢量。优选的,在本实施方式中,参考帧和当前CTU的下采样缩放比例相同。例如参考帧310经过下采样311后得到的下采样后图像320,是将参考帧的长宽各缩放至1/4,则当前CTU330经过下采样331后得到的下采样后的CTU,通过将当前CTU330长宽各缩放至1/4得到。而后以下采样后的CTU340(图3中B子块)为单位,在下采样后图像(图3中A子块)中进行预测,并依次计算采样后的CTU340与下采样后图像320中各个对应的子块(以A子块中各个像素点为中心,取与B子块大小相同的子块)的代价,找到与下采样后的CTU相比代价最小的像素块,记为最小代价像素块352(图3中C子块),并记录当前最小代价像素块的中心像素位置和粗搜索矢量,粗搜索矢量为下采样后CTU340(图3中B子块)的中心像素与最小代价像素块352(图3中C子块)的中心像素位置之间的矢量位移(即图3中的运动矢量351)。
[0130] 如图13,对于一个64x64大小的当前CTU块,在位于上边的10个8x8大小的子块(图13中用1-10来标注的子块),左上边相邻的CTU块和右上边相邻的CTU块中,分别有其对应的一个粗搜索结果以及对应的运动矢量信息。此外,当前CTU块内部有16个协助运动矢量,因此最多有28个mv作为邻接mv(即当前CTU块周围的运动矢量信息)。这28个运动矢量信息会经过一定的筛选,筛选出预设数量个(如3个)的邻接mv传输给精搜索模块,从而确定同样预设数量个的精搜索运动矢量。在本实施方式中,同样功能是指筛选出的预设数量个的邻接mv与粗搜索模块得到的搜索结果的作用是一致的,即均会输入给精搜索模块的接口进行下一步处理。
[0131] 在本实施方式中,粗搜索模块会给精搜模块输入一个运动矢量,然后也会从邻接mv中选择几个mv输入给精搜索模块,假设总共有N个mv输入给精搜索模块,那么精搜索模块也会产生N个精搜索rmv(即精搜索矢量),并将N个精搜索矢量均输入给FME(即分数像素搜索模块),再由FME从这N个精搜索mv中通过代价比较得到一个最优的fme_mv(即分数像素搜索矢量),这个fme_mv最后会输入给精确比较模块。
[0132] 如图5所示,为了进一步提高搜索精度,所述分数像素搜索模块215用于根据每个接收到的精搜索矢量,针对每个PU块在参考帧中设定一个对应的分数像素搜索区域530,并在该分数像素搜索区域530中生成一个该PU块对应的代价最小的一个分数像素搜索矢量423。具体地,分数像素搜索区域530可以通过以下方式确定:根据当前PU位置520以及之前获取的精搜索运动矢量,在参考帧510中确定当前PU位置520对应的起始搜索位置531,以起始搜索位置像素为中心,分别在上下左右4个方位各扩展K个像素(K的值可以根据实际需要设定),得到边长为2K的方形区域即为分数像素搜索区域530。与精搜索的搜索方式类似的,以起始搜索位置531像素为中心,依次计算起始搜索位置531与分数像素搜索区域530中各个像素点为中心、当前PU大小相同的子块的代价,找到最小代价位置533,并计算当前PU位置与最小代价位置533之间的运动矢量,记为分数像素搜索运动矢量523。
[0133] 请参阅图7,为本发明一实施方式涉及的H.265编码装置中的精确比较模块的示意图。在某些实施例中,所述精确比较模块140包括有分发模块711、多个单级计算模块(比如721、722、723和724)、和多个分层比较模块740。所述分发模块711与粗选择模块130连接,并与多个单级计算模块连接;所述每个单级计算模块与一个相对应的分层比较模块740连接。
其中:
[0134] 所述分发模块711用于根据每个CTU块的不同划分模式,将每个划分模式中的不同的与该CU块相对应的预测信息分发给对不同的单级计算模块;
[0135] 所述单级计算模块用于根据从分发模块711接收到的与CU块相对应的预测信息,计算多个代价信息并进行层内比较,选出一个该CU块对应的代价最小的预测模式和划分模式;
[0136] 所述分层比较模块740用于比较不同层的单级比较模块所计算出的代价信息,选择出对于CTU块代价最小的划分模式和相对应的编码信息。
[0137] 在某些实施例中,图7的精确比较模块140包含了四个单级计算模块721、722、723和724。每个单级计算模块721、722、723和724可以由图8的单级计算模块810来组成。如图8所示,单级计算模块810包括帧间模式代价计算模块820、帧内模式代价计算模块830、和优选模块840。对于每个输入的CU,单级计算模块810可以通过帧间模式代价计算模块820来计算一个帧间代价,通过帧内模式代价计算模块830来计算一个帧内代价,并通过优选模块840来比较帧间代价和帧内代价,确定综合代价最小的一个划分模式和预测模式,即为当前输入的CU相对应的代价最小的划分模式和预测模式。
[0138] 回到图7的实施例中,每个单级计算模块721、722、723和724用于处理一个特定级别的CU块。比如,单级计算模块721可设为一级计算模块,用于处理64x64大小的CU块;单级计算模块722可设为二级计算模块,用于处理32x32大小的CU块;单级计算模块723可设为三级计算模块,用于处理16x16大小的CU块;单级计算模块724可设为四级计算模块,用于处理8x8大小的CU块。假设精确比较模块140从粗选择模块130接收到一个CTU以及相应的划分模式、预测信息、以及多个帧间运动矢量和参考信息。分发模块711可以根据各种划分模式下的CU,根据其大小,分发给各级计算模块721-724。
[0139] 在某些实施例中,每个单级计算模块的帧内模式代价计算模块830,[0140] 会接收到与某个级别的CU相关的一个或多个帧内预测信息,计算并选出一个帧内代价。每个单级计算模块的帧间模式代价计算模块820,会同时/并行接收到与某个级别的CU相关的一个或多个帧间运动矢量和参考信息,计算并选出一个帧间代价。之后,每个单级计算模块的优选模块840会从已经计算出的帧内代价和帧间代价中,优选一个最小代价。换句话说,当最小代价是帧内代价时,说明采用相关的帧内预测信息来进行H.265编码是较佳选择;当最小代价是帧间代价时,说明采用相关的帧间运动矢量和参考信息来进行H.265编码是较佳选择。
[0141] 例如,分层比较模块743可以将四级计算模块724计算得到的四个8x8块对应的最小代价之和、与1个从三级计算模块723计算得到的1个16x16块的最小代价进行比较,并得到代价更小的那一种划分模式。具体来说,分层比较所比较的对象之一的:4个8x8块(假设称为A、B、C、D块),可以全部是帧间比较获取的最小代价块,全部是帧内比较获取的最小代价块,或者同时包含帧间比较获取的最小代价块和帧内比较获取的最小代价块。比如A块可以是帧间获取的,B、C、D块可以是帧内获取的。或者A、C块可以是帧间获取的,B、D块是帧内获取的。
[0142] 同样的,分层比较模块742可以选择4个从分层比较模块743获取的、最小代价的16x16块,合并起来跟1个从二级计算模块722计算得到的最小代价的32x32块进行比较。具体来说,分层比较模块742选择的4个16x16块(假设称为E、F、G、H块),可以包括完整的
16x16CU块,也可以是由多个8x8块组成。比如E块可以是帧间获取的一个16x16CU块;F块可以是帧内获取的一个16x16CU块;G块可以是包括帧间获取的和帧内获取的4个8x8块组成的
16x16组合块。
[0143] 同样的,分层比较模块741可以选择4个从分层比较模块742获取的,有最小代价的32x32块,合并起来跟1个从一级计算模块721计算得到的最小代价的64x64块进行比较。具体来说,分层比较模块741选择的4个32x32块(假设称为I、J、K、L块),可以包括完整的
32x32CU块,也可以是由多个16x16块组成,每个再由多个8x8块组成的组合块。比如I块可以是帧间获取的一个32x32CU块;J块是包括帧间获取的和帧内获取的4个16x16CU块组成的;K块中的一个或多个16x16块可以分别是由多个8x8块组成的。
[0144] 通过以上的方式,分层比较模块740可以找到有最小代价的CTU、CU和PU块的组合,选择出对于CTU块代价最小的划分模式和相对应的编码信息。
[0145] 在某些实施例中,所述帧内预测粗选择模块330包括参考像素生成模块231;帧内预测粗选择模块330执行于帧内预测粗选择流水;
[0146] 所述参考像素生成模块231用于对每个划分模式中的每个PU块,使用当前帧的原始像素来生成参考像素,并根据参考像素按H.265协议的规则对所有的帧内预测方向进行预测得到各个方向的预测结果,并根据各个方向的预测结果分别与原始像素计算失真代价,并把代价从小到大排序选择出代价较小的一个或多个帧内预测方向。
[0147] 帧内预测粗选择模块进行粗选择的方法与帧间预测粗选择模块的类似,此处不再赘述。两者的差别在于在进行帧内预测时,是对原始帧进行下采样得到下采样后图像,下采样后的CTU在原始帧进行下采样得到下采样后图像进行预测;而在进行帧间预测时,是对参考帧进行下采样得到下采样后图像,下采样后的CTU在参考帧进行下采样得到下采样后图像中进行预测。
[0148] 如图6-A和图6-B,按照H.265的协议,参考像素应该用重构像素,但硬件实现的过程中,当前时间点只能得到原始像素,往往还无法得到重构像素,因此本发明中采用原始像素代替重构像素的方式。以4x4大小的PU子块为例,图中有黑色填充的圆点部分为边像素,根据H.265协议,4x4块(图6-B中阴影填充的圆点部分)的边界像素总共有17个,图中的黑色填充部分像素(即边像素)应该应用重构像素填充,但当前时间点无法得到重构像素,只用原始像素代替。阴影填充部分即为4x4大小的PU块。边界像素填充完成之后,再按协议进行预测得到阴影部分填充的4x4大小的块。
[0149] 如图4,所述精搜索模块根据粗搜索矢量,对每个PU在参考帧中设定一个精搜索区域,并在该精搜索区域中,找到一个对应该PU的代价最小的一个精搜索矢量。精搜索步骤是在参考帧410内进行的,每个当前CTU包含有多个PU,精搜索则是以某种顺序从这些PU中一个一个地选作当前PU来进行的。具体地,首先确定当前PU位置420,而后根据之前获取的粗搜索矢量(或称为还原运动矢量421)对该个PU在参考帧中设定一个精搜索区域430。并再根据还原运动矢量421在精搜索区域430内确定与当前PU位置420对应的一个起始搜索位置431。与粗搜索的搜索方式类似的,在精搜索区域430内,以起始搜索位置431像素为中心,依次计算起始搜索位置431与精搜索区域430中各个像素点为中心、当前PU大小相同的子块的代价,找到最小代价位置433,并计算当前PU位置420与最小代价位置433之间的运动矢量,记为精搜索运动矢量423。
[0150] 在某些实施例中,所述装置还包括后处理模块180,所述后处理模块180与精确比较模块140连接;所述后处理模块180执行于后处理流水步骤,所述后处理流水步骤包括:根据精确比较模块输出的每个CTU块相对应的代价最小的划分模式和根据与其对应的重构信息,来生成与当前帧相对应的重构帧。
[0151] 优选的,所述后处理模块180包括去块滤波模块160和样本自适应偏移模块170;所述后处理流水步骤包括去块滤波流水步骤和样本自适应偏移步骤;所述去块滤波模块执行于去块滤波流水步骤,所述样本自适应偏移步骤执行于样本自适应偏移步骤;所述去块滤波流水步骤包括:利用精确比较模块所提供的代价最小的划分模式和与其对应的重构信息,对重构帧进行滤波处理;所述样本自适应偏移流水步骤包括:对滤波处理后的重构帧进行SAO计算,得到最后的重构帧,用于参考和显示。去块滤波流水步骤和样本自适应偏移流水步骤依次串行的执行于后处理流水级。
[0152] 在某些实施例中,所述装置还包括熵编码模块150,所述熵编码模块150与精确比较模块140连接。所述熵编码模块150执行于熵编码流水步骤,所述熵编码流水步骤包括:根据精确比较模块140输出的每个CTU块相对应的代价最小的划分模式和根据与其对应的编码信息生成的与当前帧相对应的熵编码信息,来生成与当前帧相对应的H.265码流。所述熵编码流水步骤与后处理流水步骤并行的执行于同一流水级。
[0153] 具体地,所述精确比较模块140根据该CTU代价最小的划分模式和预测模式生成与该CTU相对应的熵编码所需数据,即如图1中所示的编码信息141,所述熵编码模块150用于根据与该CTU相对应的熵编码所需数据来生成与原始视频相对应的编码后码流190。同时,图像编码设备110也会输出编码后视频180,编码后视频180的某一图像帧即为重构图像帧145。
[0154] 如图9所示,发明人还提供了一种H.265编码方法,所述方法应用于H.265编码装置,所述装置包括多个模块和多个流水步骤,每个流水步骤包括至少一个流水级,用于执行至少一个模块,其中:
[0155] 多个模块包括预处理模块、粗选择模块、精确比较模块和整体控制模块,所述整体控制模块分别与预处理模块、粗选择模块、精确比较模块连接;
[0156] 多个流水步骤包括预处理流水步骤、粗选择流水步骤、和精确比较流水步骤,所述粗选择流水步骤在预处理流水步骤之后执行,所述精确比较流水步骤在粗选择流水步骤之后执行;
[0157] 所述方法包括以下步骤:
[0158] 首先进入步骤S101预处理流水步骤通过预处理模块,将一个原始视频中的一个当前帧分割为多个CTU块;
[0159] 而后进入步骤S102粗选择流水步骤通过粗选择模块,按照多个划分模式来划分每个CTU块,对每个CTU块的每个划分模式进行帧间预测粗选择和帧内预测粗选择,并生成一个与每个划分模式相对应的预测信息;
[0160] 而后进入步骤S103精确比较流水步骤通过精确比较模块,对与每个CTU块的各个划分模式相对应的预测信息进行代价计算并比较,选择出对于每个CTU块代价最小的一个划分模式和与该划分模式对应的编码信息,并根据选择出的划分模式和其对应的编码信息,生成用于将当前帧生成H.265码流的熵编码信息和将当前帧生成重构帧的重构信息,[0161] 整体控制模块用于控制存、取原始帧数据和参考帧数据,以及控制所述预处理模块、粗选择模块、精确比较模块依次执行与之相对应的流水步骤。
[0162] 如图10所示,所述粗选择模块包括:帧间预测粗选择模块和帧内预测粗选择模块;所述粗选择流水步骤包括:帧间预测粗选择流水级和帧内预测粗选择流水级;
[0163] 所述方法还包括:
[0164] 帧间预测粗选择流水级通过帧间预测粗选择模块,按照多个划分模式来划分每个CTU块,每个划分模式将一个CTU块分割为对应的多个CU块,以及将其中的每个CU块分割为对应的一个或多个PU块,对每个CTU块的每个划分模式进行帧间预测并获取参考帧信息,以及对每个CTU块的每个划分模式进行帧内预测并生成一个与每个划分模式相对应的预测信息;
[0165] 帧内预测粗选择流水级通过帧内预测粗选择模块:对每个划分模式中的每个PU块进行帧内预测并计算相应代价,根据代价选择相对于每个PU块代价一个或多个帧内预测方向,并将选择的帧内预测方向作为该划分模式相对应的预测信息。
[0166] 在某些实施例中,所述粗选择模块还包括帧间粗选择模块,所述精确比较模块还包括帧内粗选择模块;所述粗选择流水步骤包括帧间粗选择流水级,所述精确比较流水步骤包括帧内粗选择流水级。
[0167] 所述方法包括:
[0168] 帧间预测粗选择流水级通过帧间预测粗选择模块,按照多个划分模式来划分每个CTU块,每个划分模式将一个CTU块分割为对应的多个CU块,以及将其中的每个CU块分割为对应的一个或多个PU块,对每个CTU块的每个划分模式进行帧间预测并获取参考帧信息,以及对每个CTU块的每个划分模式进行帧内预测并生成一个与每个划分模式相对应的预测信息;
[0169] 帧内预测粗选择流水级通过帧内预测粗选择模块:对每个划分模式中的每个PU块进行帧内预测并计算相应代价,根据代价选择相对于每个PU块代价一个或多个帧内预测方向,并将选择的帧内预测方向作为该划分模式相对应的预测信息。
[0170] 简言之,帧内粗选择模块既可以是粗选择模块的一部分,也可以是精确比较模块的一部分,从而有效拓宽本发明的应用场景。
[0171] 在某些实施例中,所述帧间预测粗选择模块包括:粗搜索模块、参考帧数据加载模块、精搜索模块和分数像素搜索模块;
[0172] 所述粗选择流水步骤包括:粗搜索流水级、参考帧数据加载流水级、精搜索流水级和分数像素搜索流水级;
[0173] 所述方法包括:
[0174] 如图10所示,粗搜索流水级通过粗搜索模块:首先进入步骤S201粗搜索模块从参考阵列中选择一帧,在其原始帧或者重构帧中选择一个参考帧;而后进入步骤S202对参考帧和当前CTU块进行下采样操作;而后进入步骤S203在下采样后的参考帧中找到与下采样后的CTU块相比代价最小的像素位置,并计算该像素位置相对于当前CTU块的粗搜索矢量。
[0175] 参考帧数据加载流水级通过参考帧数据加载流水级:通过整体控制模块获取粗搜索流水级的粗搜索矢量以及根据CTU块周围的运动矢量获得跟粗搜索有同样功能的一个或多个预测运动矢量,根据粗搜索矢量和一个或多个预测矢量加载参考帧数据,并通过整体控制模块传给精搜索流水级;
[0176] 如图11所示,精搜索流水级通过精搜索模块:首先进入步骤S301根据粗搜索矢量,针对每个PU块在参考帧的的重构图像中设定一个精搜索区域;而后进入步骤S302在该精搜索区域中生成一个该PU块对应的代价最小的一个精搜索矢量;以及根据当前CTU块周围的运动矢量信息,生成与粗搜索矢量具有同样功能的一个或多个预测运动矢量,并根据预测运动矢量生成精搜索矢量;并将生成的所有精搜索矢量发送给分数像素搜索模块;
[0177] 如图12所示,所述分数像素搜索流水级通过分数像素搜索模块:首先进入步骤S401分数像素搜索模块根据每个接收到的精搜索矢量,针对每个PU块在参考帧中设定一个对应的分数像素搜索区域;而后进入步骤S402在该分数像素搜索区域中生成一个该PU块对应的代价最小的一个分数像素搜索矢量。
[0178] 在某些实施例中,所述帧内预测粗选择流水级与分数像素搜索流水级为同一个流水级,所述帧内预测粗选择模块与分数像素搜索模块并行地执行于该同一个流水级。简言之,帧内预测粗选择流水级与分数像素搜索流水级在时序上可以是并行执行,即同步进行,也可以是按照先后顺序执行,即先执行帧内预测粗选择流水级,再执行分数像素搜索流水级。
[0179] 在某些实施例中,所述帧内预测粗选择模块包括参考像素生成模块,执行于帧内预测粗选择流水级;所述方法包括:
[0180] 帧内预测粗选择流水级包括:对每个划分模式中的每个PU块,使用当前帧的原始像素来生成参考像素,根据参考像素按H.265协议的规则对所有的帧内预测方向进行预测得到各个方向的预测结果,根据各个方向的预测结果分别与原始像素计算失真代价,并把代价从小到大排序选择出代价较小的一个或多个帧内预测方向。
[0181] 在某些实施例中,所述多个模块还包括后处理模块,所述多个流水步骤还包括后处理流水步骤,所述方法包括:后处理流水步骤通过后处理模块,将精确比较模块输出的每个CTU块相对应的代价最小的划分模式和根据与其对应的重构信息,来生成与当前帧相对应的重构帧。在另一些实施例中,所述多个模块还包括熵编码模块,所述多个流水步骤还包括熵编码流水步骤;所述方法包括:熵编码流水步骤通过熵编码模块,将精确比较模块输出的每个CTU块相对应的代价最小的划分模式和根据与其对应的熵编码信息,生成符合H.265协议规范的二进制码流。
[0182] 如图14,预处理模块120属于一级流水,执行预处理流水步骤。粗选择模块执行粗选择流水步骤,粗选择模块包括粗搜索模块211、参考帧数据加载模块910、精搜索模块213和分数像素搜索模块215。相应地,粗选择流水级包括粗搜索流水级(即二级流水)、参考帧数据加载流水级(即三级流水)、精搜索流水级(即四级流水级)和分数像素搜索流水级(即五级流水)。优选的,所述帧内预测粗选择模块与分数像素搜索模块并行的执行于同一个流水级(即都执行于五级流水)。精确比较模块140执行精确比较流水步骤,属于六级流水。熵编码模块150和后处理模块分别执行于熵编码流水级和后处理流水级,熵编码流水级和后处理流水级并行的执行于七级流水。一至七级的流水均通过整体控制模块920实现数据传输、调度、控制,使得编码过程有序进行,极大提升了编码效率。
[0183] 本发明提供了一种H.265编码方法和装置,所述装置包括多个模块和多个流水步骤,每个流水步骤包括至少一个流水级,用于执行至少一个模块,多个模块包括预处理模块、粗选择模块、精确比较模块和整体控制模块;多个流水步骤包括预处理流水步骤、粗选择流水步骤、和精确比较流水步骤,所述粗选择流水步骤在预处理流水步骤之后执行,所述精确比较流水步骤在粗选择流水步骤之后执行。整体控制模块用于控制存、取原始帧数据和参考帧数据,以及控制所述预处理模块、粗选择模块、精确比较模块依次执行与之相对应的流水步骤。本发明通过分布搜索的方式提高了搜索精度,同时更好地保留了重构图像的细节,降低了硬件资源消耗。
[0184] 需要说明的是,尽管在本文中已经对上述各实施例进行了描述,但并非因此限制本发明的专利保护范围。因此,基于本发明的创新理念,对本文所述实施例进行的变更和修改,或利用本发明说明书及附图内容所作的等效结构或等效流程变换,直接或间接地将以上技术方案运用在其他相关的技术领域,均包括在本发明的专利保护范围之内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈