一种帧内块复制预测方法、装置及计算机可读存储介质转让专利

申请号 : CN202010753408.1

文献号 : CN112004099B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 江东方诚曾飞洋林聚财殷俊

申请人 : 浙江大华技术股份有限公司

摘要 :

本发明公开了一种帧内块复制预测方法、装置及计算机可读存储介质,其中,方法包括:利用历史预测矢量列表为当前块构建初始块预测矢量候选列表;若所述历史预测矢量列表中的n个预测矢量同时满足m个相同的条件,n和m均大于一,则将n个所述预测矢量中的至少部分填入对应的条件中,以形成所述初始块预测矢量候选列表;基于所述初始块预测矢量候选列表构建最终块预测矢量候选列表;对所述当前块进行哈希匹配和/或基于所述最终块预测矢量候选列表进行运动搜索以确定所述当前块的最终块矢量;利用所述最终块矢量对所述当前块进行运动补偿。本发明通过上述方法构建块预测矢量候选列表,使得构建的块预测矢量候选列表更加多样化。

权利要求 :

1.一种帧内块复制预测方法,其特征在于,包括:利用历史预测矢量列表为当前块构建初始块预测矢量候选列表;若所述历史预测矢量列表中的n个预测矢量同时满足m个相同的条件,n和m均大于一,则将n个所述预测矢量中的至少部分填入对应的条件中,以形成所述初始块预测矢量候选列表;

基于所述初始块预测矢量候选列表构建最终块预测矢量候选列表;

以所述当前块和匹配块的循环冗余校验值作为哈希值对所述当前块和所述匹配块进行哈希匹配,确定与所述当前块对应的最终匹配块,以确定所述当前块的最终块矢量;和/或基于所述最终块预测矢量候选列表进行运动搜索,比较搜索到的匹配块的编码代价,确定与所述当前块对应的最终匹配块,以确定所述当前块的最终块矢量,所述最终块矢量为所述最终匹配块的块矢量;

利用所述最终块矢量对所述当前块进行运动补偿。

2.根据权利要求1所述的帧内块复制预测方法,其特征在于,所述将n个所述预测矢量中的至少部分填入对应的条件中,以形成所述初始块预测矢量候选列表,包括:

若n>m,则将n个所述预测矢量中的m个分别填入m个所述条件对应的位置;

若n=m,则将n个所述预测矢量分别填入m个所述条件对应的位置;

若n

所述基于所述初始块预测矢量候选列表构建最终块预测矢量候选列表包括:若n>m,则遍历所述历史预测矢量列表中的所有所述预测矢量之后,所述初始块预测矢量候选列表仍有空余位置,则将剩余n‑m个所述预测矢量填入所述空余位置以形成所述最终块预测矢量候选列表;

若n

3.根据权利要求2所述的帧内块复制预测方法,其特征在于,所述将n个所述预测矢量中的至少部分填入对应的条件中,以形成所述初始块预测矢量候选列表,包括:若对应的条件已被所述预测矢量填充,则跳过该位置,和/或若一个所述预测矢量符合多个对应的条件,则将所述预测矢量填入第一个符合的条件中。

4.根据权利要求1‑3所述的帧内块复制预测方法,其特征在于,所述基于所述初始块预测矢量候选列表构建最终块预测矢量候选列表包括:利用参考候选项基于所述初始块预测矢量候选列表为当前块构建最终块预测矢量候选列表,所述参考候选项包括以下至少一种:所述当前块的已编码邻块的块矢量、预设块矢量和已填入所述预测矢量候选列表的预测矢量的计算结果。

5.根据权利要求4所述的帧内块复制预测方法,其特征在于,所述利用参考候选项基于所述初始块预测矢量候选列表为当前块构建最终块预测矢量候选列表包括:若所述初始块预测矢量候选列表未被填满,则选择至少一个所述参考候选项填入所述初始块预测矢量候选列表,以形成所述最终块预测矢量候选列表。

6.根据权利要求5所述的帧内块复制预测方法,其特征在于,所述选择至少一个所述参考候选项填入所述初始块预测矢量候选列表包括:选择至少一个所述参考候选项;

将选中的所述参考候选项与所述初始块预测矢量候选列表中的预测矢量进行查重;

若通过查重,则将选中的所述参考候选项填入所述初始块预测矢量候选列表。

7.根据权利要求1所述的帧内块复制预测方法,其特征在于,所述以所述当前块和匹配块的循环冗余校验值作为哈希值对所述当前块和所述匹配块进行哈希匹配,确定与所述当前块对应的最终匹配块,以确定所述当前块的最终块矢量,包括:所述哈希匹配的条件包括:所述最终匹配块与所述当前块哈希值相同的子块的数量大于预设阈值,所述预设阈值小于所述当前块中所述子块的总数,和/或所述最终匹配块与所述当前块指定位置的所述子块的哈希值相同。

8.根据权利要求1所述的帧内块复制预测方法,其特征在于,所述基于所述最终块预测矢量候选列表进行运动搜索,比较搜索到的匹配块的编码代价,确定与所述当前块对应的最终匹配块,以确定所述当前块的最终块矢量,所述最终块矢量为所述最终匹配块的块矢量,包括:

所述运动搜索的起点包括所述当前块的左上角。

9.根据权利要求1所述的帧内块复制预测方法,其特征在于,所述利用所述最终块矢量对所述当前块进行运动补偿包括:

利用所述最终块矢量对所述当前块进行运动补偿得到第一预测块;

对所述第一预测块进行滤波得到第二预测块;

计算并比较所述第一预测块和所述第二预测块的编码代价以确定是否进行滤波。

10.根据权利要求9所述的帧内块复制预测方法,其特征在于,所述计算并比较所述第一预测块和所述第二预测块的编码代价以确定是否进行滤波包括:对所述当前块进行编码得到所述当前块的码流,所述码流中包括滤波标记,若所述第一预测块的编码代价大于所述第二预测块的编码代价,则所述滤波标记用于表示进行滤波,否则所述滤波标记用于表示不进行滤波。

11.根据权利要求1所述的帧内块复制预测方法,其特征在于,所述利用历史预测矢量列表为当前块构建初始块预测矢量候选列表之前还包括:判断所述当前块是否满足帧内块复制预测条件,所述帧内块复制预测条件包括所述当前块的内容属于自然图像或自然图像与屏幕内容图像的混合;

若满足,则为所述当前块构建块预测矢量候选列表。

12.一种帧内块复制预测装置,其特征在于,包括:第一列表构建模块,用于利用历史预测矢量列表为当前块构建初始块预测矢量候选列表;若所述历史预测矢量列表中的n个预测矢量同时满足m个相同的条件,n和m均大于一,则将n个所述预测矢量中的至少部分填入对应的条件中,以形成所述初始块预测矢量候选列表;

第二列表构建模块,用于基于所述初始块预测矢量候选列表构建最终块预测矢量候选列表;

匹配模块,用于以所述当前块和匹配块的循环冗余校验值作为哈希值对所述当前块和所述匹配块进行哈希匹配,确定与所述当前块对应的最终匹配块,以确定所述当前块的最终块矢量;和/或基于所述最终块预测矢量候选列表进行运动搜索,比较搜索到的匹配块的编码代价,确定与所述当前块对应的最终匹配块,以确定所述当前块的最终块矢量,所述最终块矢量为所述最终匹配块的块矢量;

补偿模块,用于利用所述最终块矢量对所述当前块进行运动补偿。

13.一种帧内块复制预测方法,其特征在于,包括:利用历史预测矢量列表和/或参考候选项为当前块构建最终块预测矢量候选列表,所述参考候选项包括以下至少一种:所述当前块的已编码邻块的块矢量、预设块矢量和已填入初始块预测矢量候选列表的预测矢量的计算结果;

以所述当前块和匹配块的循环冗余校验值作为哈希值对所述当前块和所述匹配块进行哈希匹配,确定与所述当前块对应的最终匹配块,以确定所述当前块的最终块矢量;和/或基于所述最终块预测矢量候选列表进行运动搜索,比较搜索到的匹配块的编码代价,确定与所述当前块对应的最终匹配块,以确定所述当前块的最终块矢量,所述最终块矢量为所述最终匹配块的块矢量;

利用所述最终块矢量对所述当前块进行运动补偿。

14.根据权利要求13所述的帧内块复制预测方法,其特征在于,所述利用历史预测矢量列表和/或参考候选项为当前块构建最终块预测矢量候选列表包括:

利用所述历史预测矢量列表为所述当前块构建初始块预测矢量候选列表;

若所述初始块预测矢量候选列表未被填满,则选择至少一个所述参考候选项填入所述初始块预测矢量候选列表,以形成所述最终块预测矢量候选列表。

15.根据权利要求14所述的帧内块复制预测方法,其特征在于,所述选择至少一个所述参考候选项填入所述初始块预测矢量候选列表包括:选择至少一个所述参考候选项;

将选中的所述参考候选项与所述初始块预测矢量候选列表中的预测矢量进行查重;

若通过查重,则将选中的所述参考候选项填入所述初始块预测矢量候选列表。

16.一种帧内块复制预测装置,其特征在于,包括:列表构建模块,用于利用历史预测矢量列表和/或参考候选项为当前块构建最终块预测矢量候选列表,所述参考候选项包括以下至少一种:所述当前块的已编码邻块的块矢量、预设块矢量和已填入初始块预测矢量候选列表的预测矢量的计算结果;

匹配模块,用于以所述当前块和匹配块的循环冗余校验值作为哈希值对所述当前块和所述匹配块进行哈希匹配,确定与所述当前块对应的最终匹配块,以确定所述当前块的最终块矢量;和/或基于所述最终块预测矢量候选列表进行运动搜索,比较搜索到的匹配块的编码代价,确定与所述当前块对应的最终匹配块,以确定所述当前块的最终块矢量,所述最终块矢量为所述最终匹配块的块矢量;

补偿模块,用于利用所述最终块矢量对所述当前块进行运动补偿。

17.一种帧内块复制预测方法,其特征在于,包括:为当前块构建最终块预测矢量候选列表;

以所述当前块和匹配块的循环冗余校验值作为哈希值对所述当前块和所述匹配块进行哈希匹配,确定与所述当前块对应的最终匹配块,以确定所述当前块的最终块矢量;和/或基于所述最终块预测矢量候选列表进行运动搜索,比较搜索到的匹配块的编码代价,确定与所述当前块对应的最终匹配块,以确定所述当前块的最终块矢量,所述最终块矢量为所述最终匹配块的块矢量,所述哈希匹配的条件包括:所述最终匹配块与所述当前块哈希值相同的子块的数量大于预设阈值,所述预设阈值小于所述当前块中所述子块的总数,和/或所述最终匹配块与所述当前块指定位置的所述子块的哈希值相同;

利用所述最终块矢量对所述当前块进行运动补偿。

18.一种帧内块复制预测装置,其特征在于,包括:列表构建模块,用于为当前块构建最终块预测矢量候选列表;

匹配模块,用于以所述当前块和匹配块的循环冗余校验值作为哈希值对所述当前块和所述匹配块进行哈希匹配,确定与所述当前块对应的最终匹配块,以确定所述当前块的最终块矢量;和/或基于所述最终块预测矢量候选列表进行运动搜索,比较搜索到的匹配块的编码代价,确定与所述当前块对应的最终匹配块,以确定所述当前块的最终块矢量,所述最终块矢量为所述最终匹配块的块矢量;所述哈希匹配的条件包括:所述最终匹配块与所述当前块哈希值相同的子块的数量大于预设阈值,所述预设阈值小于所述当前块中所述子块的总数,和/或所述最终匹配块与所述当前块指定位置的所述子块的哈希值相同;

补偿模块,用于利用所述最终块矢量对所述当前块进行运动补偿。

19.一种帧内块复制预测方法,其特征在于,包括:为当前块构建最终块预测矢量候选列表;

以所述当前块和匹配块的循环冗余校验值作为哈希值对所述当前块和所述匹配块进行哈希匹配,确定与所述当前块对应的最终匹配块,以确定所述当前块的最终块矢量;和/或基于所述最终块预测矢量候选列表进行运动搜索,比较搜索到的匹配块的编码代价,确定与所述当前块对应的最终匹配块,以确定所述当前块的最终块矢量,所述最终块矢量为所述最终匹配块的块矢量;所述运动搜索的起点包括所述当前块的左上角;

利用所述最终块矢量对所述当前块进行运动补偿。

20.一种帧内块复制预测装置,其特征在于,包括:列表构建模块,用于为当前块构建最终块预测矢量候选列表;

匹配模块,用于以所述当前块和匹配块的循环冗余校验值作为哈希值对所述当前块和所述匹配块进行哈希匹配,确定与所述当前块对应的最终匹配块,以确定所述当前块的最终块矢量;和/或基于所述最终块预测矢量候选列表进行运动搜索,比较搜索到的匹配块的编码代价,确定与所述当前块对应的最终匹配块,以确定所述当前块的最终块矢量,所述最终块矢量为所述最终匹配块的块矢量;所述运动搜索的起点包括所述当前块的左上角;

补偿模块,用于利用所述最终块矢量对所述当前块进行运动补偿。

21.一种帧内块复制预测方法,其特征在于,包括:为当前块构建最终块预测矢量候选列表;

以所述当前块和匹配块的循环冗余校验值作为哈希值对所述当前块和所述匹配块进行哈希匹配,确定与所述当前块对应的最终匹配块,以确定所述当前块的最终块矢量;和/或基于所述最终块预测矢量候选列表进行运动搜索,比较搜索到的匹配块的编码代价,确定与所述当前块对应的最终匹配块,以确定所述当前块的最终块矢量,所述最终块矢量为所述最终匹配块的块矢量;

利用所述最终块矢量对所述当前块进行运动补偿,得到第一预测块;

对所述第一预测块进行滤波得到第二预测块;

计算并比较所述第一预测块和所述第二预测块的编码代价以确定是否进行滤波。

22.根据权利要求21所述的帧内块复制预测方法,其特征在于,包括:对所述当前块进行编码得到所述当前块的码流,所述码流中包括滤波标记,若所述第一预测块的编码代价大于所述第二预测块的编码代价,则所述滤波标记用于表示进行滤波,否则所述滤波标记用于表示不进行滤波。

23.一种帧内块复制预测装置,其特征在于,包括:列表构建模块,用于为当前块构建最终块预测矢量候选列表;

匹配模块,用于以所述当前块和匹配块的循环冗余校验值作为哈希值对所述当前块和所述匹配块进行哈希匹配,确定与所述当前块对应的最终匹配块,以确定所述当前块的最终块矢量;和/或基于所述最终块预测矢量候选列表进行运动搜索,比较搜索到的匹配块的编码代价,确定与所述当前块对应的最终匹配块,以确定所述当前块的最终块矢量,所述最终块矢量为所述最终匹配块的块矢量;

补偿模块,用于利用所述最终块矢量对所述当前块进行运动补偿得到第一预测块;

滤波模块,用于对所述第一预测块进行滤波得到第二预测块;

计算模块,用于计算并比较所述第一预测块和所述第二预测块的编码代价以确定是否进行滤波。

24.一种帧内块复制预测方法,其特征在于,包括:判断当前块是否满足帧内块复制预测条件,所述帧内块复制预测条件包括所述当前块的内容属于自然图像或自然图像与屏幕内容图像的混合;

若满足,则为当前块构建最终块预测矢量候选列表;

以所述当前块和匹配块的循环冗余校验值作为哈希值对所述当前块和所述匹配块进行哈希匹配,确定与所述当前块对应的最终匹配块,以确定所述当前块的最终块矢量;和/或基于所述最终块预测矢量候选列表进行运动搜索,比较搜索到的匹配块的编码代价,确定与所述当前块对应的最终匹配块,以确定所述当前块的最终块矢量,所述最终块矢量为所述最终匹配块的块矢量;

利用所述最终块矢量对所述当前块进行运动补偿。

25.一种帧内块复制预测装置,其特征在于,包括:条件判断模块,用于判断当前块是否满足帧内块复制预测条件,所述帧内块复制预测条件包括所述当前块的内容属于自然图像或自然图像与屏幕内容图像的混合;

若满足,则利用列表构建模块为当前块构建最终块预测矢量候选列表;

匹配模块,用于以所述当前块和匹配块的循环冗余校验值作为哈希值对所述当前块和所述匹配块进行哈希匹配,确定与所述当前块对应的最终匹配块,以确定所述当前块的最终块矢量;和/或基于所述最终块预测矢量候选列表进行运动搜索,比较搜索到的匹配块的编码代价,确定与所述当前块对应的最终匹配块,以确定所述当前块的最终块矢量,所述最终块矢量为所述最终匹配块的块矢量;

补偿模块,用于利用所述最终块矢量对所述当前块进行运动补偿。

26.一种帧内块复制预测装置,其特征在于,所述帧内块复制预测装置包括处理器、与所述处理器连接的存储器,其中,

所述存储器存储有程序指令;

所述处理器用于执行所述存储器存储的程序指令以实现如权利要求1‑11、13‑15、17、

19、21‑22、24中任一项所述的方法。

27.一种计算机可读存储介质,其特征在于,所述存储介质存储有程序指令,所述程序指令被执行时实现如权利要求1‑11、13‑15、17、19、21‑22、24中任一项所述的方法。

说明书 :

一种帧内块复制预测方法、装置及计算机可读存储介质

技术领域

[0001] 本发明涉及视频编码技术领域,特别是涉及一种帧内块复制预测方法、装置及计算机可读存储介质。

背景技术

[0002] 通过视频编码技术可以对视频进行压缩,以降低视频的数据量,降低视频传输过程中的网络带宽、减少存储空间。其中,视频编码模式可以包括传统帧间预测模式、传统帧
内预测模式、帧内块复制预测等模式。
[0003] 以帧内块复制预测模式为例,现有的帧内预测过程中涉及到块预测矢量候选列表的构建过程,构建候选列表分为两步,先构建一个初始的候选列表,再根据临时候选列表构
建最终的候选列表。在构建初始候选列表时,块矢量是按照固定分类填充到相应的位置,同
类型的块矢量会替代前面的同类型块矢量,若有若干块矢量同时满足两个或三个分类时,
列表中最终只剩下最后出现的块矢量;并且在构建最终的候选列表时需要对初始列表中的
块矢量进行查重,剔除未填充的位置等操作得到最终的候选列表。目前最终得到的候选列
表中的块矢量只是用历史已编码的块矢量进行填充,其导致构建的候选列表不够多样化。

发明内容

[0004] 本发明提供一种帧内块复制预测方法、装置及计算机可读存储介质,其在构建块预测矢量候选列表时,对填入的预测矢量的条件进行拓展,使得构建的候选列表更加多样。
[0005] 为解决上述技术问题,本发明提供的第一个技术方案为:提供一种帧内块复制预测方法,包括:利用历史预测矢量列表为当前块构建初始块预测矢量候选列表;若所述历史
预测矢量列表中的n个预测矢量同时满足m个相同的条件,n和m均大于一,则将n个所述预测
矢量中的至少部分填入对应的条件中,以形成所述初始块预测矢量候选列表;基于所述初
始块预测矢量候选列表构建最终块预测矢量候选列表;对所述当前块进行哈希匹配和/或
基于所述最终块预测矢量候选列表进行运动搜索以确定所述当前块的最终块矢量;利用所
述最终块矢量对所述当前块进行运动补偿。
[0006] 为解决上述技术问题,本发明提供的第二个技术方案为:提供一种帧内块复制预测装置,包括:第一列表构建模块,用于利用历史预测矢量列表为当前块构建初始块预测矢
量候选列表;若所述历史预测矢量列表中的n个预测矢量同时满足m个相同的条件,n和m均
大于一,则将n个所述预测矢量中的至少部分填入对应的条件中,以形成所述初始块预测矢
量候选列表;第二列表构建模块,用于基于所述初始块预测矢量候选列表构建最终块预测
矢量候选列表;匹配模块,用于对所述当前块进行哈希匹配和/或基于所述最终块预测矢量
候选列表进行运动搜索以确定所述当前块的最终块矢量;补偿模块,用于利用所述最终块
矢量对所述当前块进行运动补偿。
[0007] 为解决上述技术问题,本发明提供的第三个技术方案为:提供一种帧内块复制预测方法,包括:利用历史预测矢量列表和/或参考候选项为当前块构建块最终块预测矢量候
选列表,所述参考候选项包括以下至少一种:所述当前块的已编码邻块的块矢量、预设块矢
量和已填入初始块预测矢量候选列表的预测矢量的计算结果;对所述当前块进行哈希匹配
和/或基于所述最终块预测矢量候选列表进行运动搜索以确定所述当前块的最终块矢量;
利用所述最终块矢量对所述当前块进行运动补偿。
[0008] 为解决上述技术问题,本发明提供的第四个技术方案为:提供一种帧内块复制预测装置,包括:列表构建模块,用于利用历史预测矢量列表和/或参考候选项为当前块构建
块最终块预测矢量候选列表,所述参考候选项包括以下至少一种:所述当前块的已编码邻
块的块矢量、预设块矢量和已填入初始块预测矢量候选列表的预测矢量的计算结果;匹配
模块,用于对所述当前块进行哈希匹配和/或基于所述最终块预测矢量候选列表进行运动
搜索以确定所述当前块的最终块矢量;补偿模块,用于利用所述最终块矢量对所述当前块
进行运动补偿。
[0009] 为解决上述技术问题,本发明提供的第五个技术方案为:提供一种帧内块复制预测方法,包括:为当前块构建最终块预测矢量候选列表;对所述当前块进行哈希匹配和/或
基于所述最终块预测矢量候选列表进行运动搜索以确定所述当前块的最终块矢量,所述哈
希匹配的条件包括:匹配块与所述当前块哈希值相同的子块的数量大于预设阈值,所述预
设阈值小于所述当前块中所述子块的总数,和/或所述匹配块与所述当前块指定位置的所
述子块的哈希值相同;利用所述最终块矢量对所述当前块进行运动补偿。
[0010] 为解决上述技术问题,本发明提供的第六个技术方案为:提供一种帧内块复制预测装置,包括:列表构建模块,用于为当前块构建最终块预测矢量候选列表;匹配模块,用于
对所述当前块进行哈希匹配和/或基于所述最终块预测矢量候选列表进行运动搜索以确定
所述当前块的最终块矢量,所述哈希匹配的条件包括:匹配块与所述当前块哈希值相同的
子块的数量大于预设阈值,所述预设阈值小于所述当前块中所述子块的总数,和/或所述匹
配块与所述当前块指定位置的所述子块的哈希值相同;补偿模块,用于利用所述最终块矢
量对所述当前块进行运动补偿。
[0011] 为解决上述技术问题,本发明提供的第其个技术方案为:提供一种帧内块复制预测方法,包括:为当前块构建最终块预测矢量候选列表;对所述当前块进行哈希匹配和/或
基于所述最终块预测矢量候选列表进行运动搜索以确定所述当前块的最终块矢量,所述运
动搜索的起点包括所述当前块的左上角;利用所述最终块矢量对所述当前块进行运动补
偿。
[0012] 为解决上述技术问题,本发明提供的第八个技术方案为:提供一种帧内块复制预测装置,包括:列表构建模块,用于为当前块构建最终块预测矢量候选列表;匹配模块,用于
对所述当前块进行哈希匹配和/或基于所述最终块预测矢量候选列表进行运动搜索以确定
所述当前块的最终块矢量,所述运动搜索的起点包括所述当前块的左上角;补偿模块,用于
利用所述最终块矢量对所述当前块进行运动补偿。
[0013] 为解决上述技术问题,本发明提供的第九个技术方案为:提供一种帧内块复制预测方法,包括:为当前块构建最终块预测矢量候选列表;对所述当前块进行哈希匹配和/或
基于所述最终块预测矢量候选列表进行运动搜索以确定所述当前块的最终块矢量;利用所
述最终块矢量对所述当前块进行运动补偿得到第一预测块;对所述第一预测块进行滤波得
到第二预测块;计算并比较所述第一预测块和所述第二预测块的编码代价以确定是否进行
滤波。
[0014] 为解决上述技术问题,本发明提供的第十个技术方案为:提供一种帧内块复制预测装置,包括:列表构建模块,用于为当前块构建最终块预测矢量候选列表;匹配模块,用于
对所述当前块进行哈希匹配和/或基于所述最终块预测矢量候选列表进行运动搜索以确定
所述当前块的最终块矢量;补偿模块,用于利用所述最终块矢量对所述当前块进行运动补
偿得到第一预测块;滤波模块,用于对所述第一预测块进行滤波得到第二预测块;计算模
块,用于计算并比较所述第一预测块和所述第二预测块的编码代价以确定是否进行滤波。
[0015] 为解决上述技术问题,本发明提供的第十一个技术方案为:提供一种帧内块复制预测方法,包括:判断当前块是否满足帧内块复制预测条件,所述帧内块复制预测条件包括
所述当前块的内容属于自然图像或自然图像与屏幕内容图像的混合;若满足,则为当前块
构建最终块预测矢量候选列表;对所述当前块进行哈希匹配和/或基于所述预测矢量候选
列表进行运动搜索以确定所述当前块的最终块矢量;利用所述最终块矢量对所述当前块进
行运动补偿。
[0016] 为解决上述技术问题,本发明提供的第十二个技术方案为:提供一种帧内块复制预测装置,包括:条件判断模块,用于判断当前块是否满足帧内块复制预测条件,所述帧内
块复制预测条件包括所述当前块的内容属于自然图像或自然图像与屏幕内容图像的混合;
若满足,则利用列表构建模块为当前块构建最终块预测矢量候选列表;匹配模块,用于对所
述当前块进行哈希匹配和/或基于所述预测矢量候选列表进行运动搜索以确定所述当前块
的最终块矢量;补偿模块,用于利用所述最终块矢量对所述当前块进行运动补偿。
[0017] 为解决上述技术问题,本发明提供的第十三个技术方案为:提供一种帧内块复制预测装置,所述帧内块复制预测装置包括处理器、与所述处理器连接的存储器,其中,所述
存储器存储有程序指令;所述处理器用于执行所述存储器存储的程序指令以实现上述任一
项所述的方法。
[0018] 为解决上述技术问题,本发明提供的第十四个技术方案为:提供一种计算机可读存储介质,所述存储介质存储有程序指令,所述程序指令被执行时实现上述任一项所述的
方法。
[0019] 本发明的有益效果是:区别于现有技术的情况,本发明通过在为当前块构建最终块预测矢量候选列表的过程中,使得预测矢量候选列表中的不同位置与填入的预测矢量需
满足的不同条件一一对应,并且块预测矢量候选列表中至少两个预测矢量同时满足至少两
个相同的条件;以此使得块预测矢量候选列表内的预测矢量更加多样化。

附图说明

[0020] 为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于
本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它
的附图,其中:
[0021] 图1是本发明帧内块复制预测方法的第一实施例的流程示意图;
[0022] 图2是图1中步骤S11的一实施例的流程示意图;
[0023] 图3是图1中步骤S12的哈希匹配的一实施例的结构示意图;
[0024] 图4是图1中步骤S12的哈希匹配的另一实施例的结构示意图;
[0025] 图5是图1中步骤S13的一实施例的流程示意图;
[0026] 图6是图1中步骤S11的另一实施例的流程示意图;
[0027] 图7是本发明帧内块复制预测装置的第一实施例的结构示意图;
[0028] 图8是本发明帧内块复制预测方法的第二实施例的流程示意图;
[0029] 图9是本发明帧内块复制预测装置的第二实施例的结构示意图;
[0030] 图10是本发明帧内块复制预测方法的第三实施例的流程示意图;
[0031] 图11是本发明帧内块复制预测装置的第三实施例的结构示意图;
[0032] 图12是本发明帧内块复制预测方法的第四实施例的流程示意图;
[0033] 图13是本发明帧内块复制预测装置的第四实施例的结构示意图;
[0034] 图14是本发明帧内块复制预测方法的第五实施例的流程示意图;
[0035] 图15是本发明帧内块复制预测装置的第五实施例的结构示意图;
[0036] 图16是本发明帧内块复制预测方法的第六实施例的流程示意图;
[0037] 图17是本发明帧内块复制预测装置的第六实施例的结构示意图;
[0038] 图18是本发明帧内块复制预测装置的第七实施例的结构示意图;
[0039] 图19是本发明计算机可读存储介质的结构示意图。

具体实施方式

[0040] 下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请的一部分实施例,而不是全部的实施例。在不
冲突的情况下,本申请中的所有实施例可以相互结合。基于本申请中的实施例,本领域普通
技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范
围。
[0041] 下面结合附图和实施例对本发明进行详细的说明。
[0042] 请参见图1,为本发明帧内块复制预测方法的第一实施例的流程示意图。其中,帧内块复制预测技术的应用存在一定限制,例如的块应满足帧内块复制预测条件。举例说明,
帧内块复制预测技术可以仅应用于宽和高都小于等于16的块,因此其中的当前块和匹配块
均为宽和高都小于等于16的块。此外,帧内块复制预测方法的匹配块的选取还存在以下规
范性限制:匹配块必须位于当前最大编码单元(the largest coding unit,LCU)的左侧相
邻的最大编码单元内或者当前LCU的区域内,且将LCU都按照64×64区域大小平均划分,一
个匹配块的所有像素均来自于同一个64×64区域;匹配块中所有像素必须是已经解码重建
的像素;匹配块中如果有部分像素来自左侧相邻的LCU,那么它的左上角所在的64×64区域
坐标向右移128到当前对应的64×64区域位置时,该当前LCU的该64×64区域的像素应该完
全尚未解码重建。
[0043] 步骤S11:利用历史预测矢量列表为当前块构建初始块预测矢量候选列表。
[0044] 具体的,初始块预测矢量(Block vector prediction,BVP)候选列表在构建时一般利用历史预测矢量列表进行构建,历史预测矢量列表至少包括部分块预测矢量。现有的
初始块预测矢量候选列表的最大容量为 7,其列表存放有最多7个预测矢量,列表中的7个
位置分别对应满足7 类条件的预测矢量,当存在多个满足同类型的预测矢量时,后出现的
预测矢量将替代前面的同类型预测矢量,存放在初始块预测矢量候选列表对应类型的位置
中。
[0045] 具体的,用BVP_cands[0]‑BVP_cands[6]代表初始块预测矢量候选列表中7个位置,这7个位置分别对应以下类型条件:
[0046] BVP_cands[0]存放历史预测矢量列表中宽×高>32的块的预测矢量;
[0047] BVP_cands[1]存放历史预测矢量列表中相同预测矢量出现次数超过2的预测矢量;
[0048] BVP_cands[2]存放历史预测矢量列表中位于当前块左侧的块的预测矢量;
[0049] BVP_cands[3]存放历史预测矢量列表中位于当前块上侧的块的预测矢量;
[0050] BVP_cands[4]存放历史预测矢量列表中位于当前块左上的块的预测矢量;
[0051] BVP_cands[5]存放历史预测矢量列表中位于当前块右上的块的预测矢量;
[0052] BVP_cands[6]存放历史预测矢量列表中位于当前块左下的块的预测矢量。
[0053] 历史预测矢量列表中符合上述7类条件的预测矢量可能存在也可能不存在。在一实施例中,可以按照正序或倒序的方式遍历历史预测矢量列表中的各个预测矢量。将历史
预测矢量列表中满足上述7类条件的预测矢量填充至对应的位置中。需要注意的是,若一个
预测矢量符合多个对应的条件,则将预测矢量填入第一个符合的条件中。例如,若BV1 同时
满足BVP_cands[0]及BVP_cands[1],则将BV1填充至BVP_cands[0] 中。在另一实施例中,若
对应的条件已被预测矢量填充,则在下一次填充时,若预测矢量满足当前条件之外还满足
其他条件,则跳过该位置,将其填充至其他条件中。例如若有BV2同时满足BVP_cands[0]及 
BVP_cands[1],而BVP_cands[0]已被填充,则跳过BVP_cands[0],将 BV2填充至BVP_cands
[1]中。
[0054] 在一实施例中,在利用历史预测矢量列表为当前块构建初始块预测矢量候选列表时,将历史预测矢量列表中满足对应条件的预测矢量进行填充。若历史预测矢量列表中的n
个预测矢量同时满足m个相同的条件,n和m均大于一,则将n个预测矢量中的至少部分填入
对应的条件中,以形成初始块预测矢量候选列表。
[0055] 具体的,在填充时可以参照如下规则进行填充:
[0056] 步骤S111:将n与m进行比较。
[0057] 若n>m,则跳转到S112;若n=m,则跳转到S113;若n
[0058] 步骤S112:则将n个预测矢量中的m个分别填入m个条件对应的位置。
[0059] 若n>m,则将n个预测矢量中的m个分别填入m个条件对应的位置,以预先构成初始块预测矢量候选列表。
[0060] 在以下实施例中,将未经过查重的初始块预测矢量候选列表用 BVP_cands[0]~BVP_cands[6]表示,而查重后的初始块预测矢量候选列表用BVP_list[0]~BVP_list[6]表
示。
[0061] 例如,在一实施例中,假设按照倒序的方式遍历历史预测矢量列表,其中有三个预测矢量(BV7、BV3、BV2)同时满足初始块预测矢量候选列表的2(BVP_cands[0]、BVP_cands
[2])个类型条件。将BV7、BV3 填充至BVP_cands[0]、BVP_cands[2]中,BV7填充至BVP_cands
[0]、 BV3填充至BVP_cands[2],以预先构成初始块预测矢量候选列表。具体的,在填充后,
还需要对填充后的初始块预测矢量候选列表进行查重,将重复填充的预测矢量删除,在经
过查重后,若查重后的初始块预测矢量候选列表中还有未填充的位置时,例如,若查重后,
列表中BVP_list[5] 和BVP_list[6]仍然没有填充完,且BV2经过查重后与列表内的预测矢
量都不相同时,则将BV2填充至BVP_list[5]。
[0062] 或者,在另一实施例中,假设按照倒序的方式遍历历史预测矢量列表,其中有三个预测矢量(BV7、BV3、BV2)同时满足初始块预测矢量候选列表的2(BVP_cands[0]、BVP_cands
[2])个类型条件。将BV7、 BV3填充至BVP_cands[0]、BVP_cands[2]中,BV7填充至BVP_cands
[0]、 BV3填充至BVP_cands[2],以预先构成初始块预测矢量候选列表。若构成的初始块预
测矢量候选列表中还有未填充的位置时,例如,列表中 BVP_cands[5]和BVP_cands[6]仍然
没有填充完,则将BV2填充至 BVP_cands[5]。在填充完成后,对候选列表进行查重,将重复
填充的预测矢量删除,或者将中间和/或末尾的空余位置去除。
[0063] 步骤S113:将n个预测矢量分别填入m个条件对应的位置。
[0064] 若n=m,则将n个预测矢量分别填入m个条件对应的位置。例如,在一实施例中,假设按照倒序的方式遍历历史预测矢量列表,其中有三个预测矢量(BV7、BV3、BV2)同时满足
初始块预测矢量候选列表的 3(BVP_cands[0]、BVP_cands[2]、BVP_cands[3])个类型条件。
则将上述3个预测矢量进行填充。其中,BV7填充至BVP_cands[0],BV3填充至BVP_cands[2],
BV2填充至BVP_cands[3]。S114:则n个所述预测矢量分别填入m个所述条件中的n个对应的
位置。
[0065] 若n满足初始块预测矢量候选列表的4(BVP_cands[0]、BVP_cands[2]、BVP_cands[3]、BVP_
cands[4]) 个类型条件。在填充时,将BV7填充至BVP_cands[0],将BV3填充至BVP_cands
[2],BV2填充至BVP_cands[3],以形成初始块预测矢量候选列表。
[0066] 步骤S12:基于所述初始块预测矢量候选列表构建最终块预测矢量候选列表。
[0067] 具体的,若历史预测矢量列表中的n个预测矢量同时满足m个相同的条件,n和m均大于一,则将n个预测矢量中的至少部分填入对应的条件中,以形成初始块预测矢量候选列
表,在形成初始块预测矢量候选列表后,可以进一步将剩下的预测矢量或者初始值填充至
初始块预测矢量候选列表构建最终块预测矢量候选列表。
[0068] 例如,在一实施例中,假设按照倒序的方式遍历历史预测矢量列表,其中有三个预测矢量(BV7、BV3、BV2)同时满足初始块预测矢量候选列表的2(BVP_cands[0]、BVP_cands
[2])个类型条件。将BV7、BV3 填充至BVP_cands[0]、BVP_cands[2]中,BV7填充至BVP_cands
[0]、 BV3填充至BVP_cands[2],以预先构成初始块预测矢量候选列表。具体的,在填充后,
还需要对填充后的初始块预测矢量候选列表进行查重,将重复填充的预测矢量删除,在经
过查重后,若查重后的初始块预测矢量候选列表中还有未填充的位置时,例如,若查重后,
列表中BVP_list[5] 和BVP_list[6]仍然没有填充完,且BV2经过查重后与列表内的预测矢
量都不相同时,则将BV2填充至BVP_list[5]。
[0069] 或者,在另一实施例中,假设按照倒序的方式遍历历史预测矢量列表,其中有三个预测矢量(BV7、BV3、BV2)同时满足初始块预测矢量候选列表的2(BVP_cands[0]、BVP_cands
[2])个类型条件。将BV7、 BV3填充至BVP_cands[0]、BVP_cands[2]中,BV7填充至BVP_cands
[0]、 BV3填充至BVP_cands[2],以预先构成初始块预测矢量候选列表。若构成的初始块预
测矢量候选列表中还有未填充的位置时,例如,列表中 BVP_cands[5]和BVP_cands[6]仍然
没有填充完,则将BV2填充至 BVP_cands[5]。在填充完成后,对候选列表进行查重,将重复
填充的预测矢量删除,或者将中间和/或末尾的空余位置去除。
[0070] 在一具体实施例中,对初始块预测矢量候选列表进行查重包括:剔除重复填充的预测矢量及去除中间和/或末尾的空余位置,或者在另一实施例中,查重操作还包括将中间
空余位置移动至末尾,具体不做限定。
[0071] 需要说明的是,在利用历史预测矢量列表为当前块构建初始块预测矢量候选列表时,在将历史预测矢量列表中的预测矢量填充形成初始块预测矢量后,还需要对初始块预
测矢量进行查重,此时若查重后的初始块预测矢量候选列表中还有空余位置时,则按照上
述规则将空余位置进行填充。具体的,在一实施例中,若经查重后,列表中的空余位置位于
列表的前面时,则按照上述规则将空余位置进行填充。或者在另一实施例中,在经过查重
后,并且将列表中的空余位置移动至列表的末尾,则按照上述规则将位于列表末尾的空余
位置进行填充,具体不做限定,以实际操作为准。
[0072] 再例如,在一实施例中,若n成所述最终块预测矢量候选列表。例如,在一实施例中,假设按照倒序的方式遍历历史预测
矢量列表,其中有3个预测矢量(BV7、BV3、BV2)同时满足初始块预测矢量候选列表的4(BVP_
cands[0]、BVP_cands[2]、BVP_cands[3]、BVP_cands[4]) 个类型条件。在填充时,将BV7填
充至BVP_cands[0],将BV3填充至 BVP_cands[2],BV2填充至BVP_cands[3],以形成初始块
预测矢量候选列表。在剩余的BVP_cands[4]中填充初始值,例如填充0矢量。具体的,在一实
施例中,在将n个预测矢量分别填入m个条件中的n个对应的位置之后,且在初始块预测矢量
候选列表构建完成之后,还需要对初始块预测矢量候选列表进行查重,在查重后,若初始块
预测矢量候选列表还存在其他空余位置,则将其空余位置填入初始值。
[0073] 现有技术中,在构建块预测矢量候选列表时,后出现的预测矢量覆盖前面出现的预测矢量,最终列表中保留的只有最后出现的预测矢量,实际上这些出现此处很多或者同
时满足两个或三个以上条件的预测矢量的相关性是非常高的,将其都列入候选列表中,可
以增加候选列表的多样性。
[0074] 在另一实施例中,为了进一步增加构建的最终块预测矢量候选列表的多样性,还可以利用参考候选项基于初始块预测矢量候选列表为当前块构建最终块预测矢量候选列
表,参考候选项包括以下至少一种:当前块的已编码邻块的块矢量、预设块矢量和已填入预
测矢量候选列表的预测矢量的计算结果。
[0075] 具体的,在通过上述方式得到初始块预测矢量候选列表,对初始块预测矢量候选列表进行查重,若经过查重后,初始块预测矢量候选列表未被填满,则选择至少一个参考候
选项填入查重后的初始块预测矢量候选列表,以形成最终块预测矢量候选列表。
[0076] 参考候选项包括当前块的已编码邻块的块矢量、预设块矢量和已填入块预测矢量候选列表的预测矢量的计算结果。在进行填充时,按照预定的优先权顺序进行填充。在一具
体实施例中,当前块的已编码邻块的块矢量的填充优先权>预设块矢量的填充优先权>已
填入块预测矢量候选列表的预测矢量的计算结果的填充优先权。
[0077] 具体的,在历史预测矢量列表按照上述7类条件的预测矢量填充规则,没有将初始块预测矢量候选列表填充满时;则将当前块的已编码邻块的预测矢量填充至未填充的位置
内;若还未填充满时,还可以将预设块矢量填充至未填充的位置内;若还未填满时,则将已
填入初始块预测矢量候选列表的预测矢量的计算结果填充至未填充的位置内。或者,在一
实施例中,在历史预测矢量列表按照上述7类条件的预测矢量填充规则进行填充形成初始
块预测矢量候选列表后,对初始块预测矢量候选列表进行查重,在此之后,若查重后的初始
块预测矢量候选列表未填充满时,则将当前块的已编码邻块的预测矢量填充至未填充的位
置内;若还未填充满时,还可以将预设块矢量填充至未填充的位置内;若还未填满时,则将
已填入初始块预测矢量候选列表的预测矢量的计算结果填充至未填充的位置内。
[0078] 具体的,可以假设预设块矢量为(‑width,0),(0,‑height),其中, width和height为当前块的宽和高;已填入初始块预测矢量候选列表的预测矢量的计算结果为候选列表中
已填充的预测矢量推导出的新的预测矢量。
[0079] 在一实施例中,在将参考候选项填入初始块预测矢量候选列表和/ 或查重后的初始块预测矢量候选列表中时需要先选择至少一个参考候选项,将选中的参考候选项填充至
初始块预测矢量候选列表和/或查重后的初始块预测矢量候选列表中,以形成最终块预测
矢量候选列表。
[0080] 例如,在一实施例中,假设按照倒序的方式遍历历史预测矢量列表,其中有三个预测矢量(BV7、BV3、BV2)同时满足 BVP_cands[0]~BVP_cands[6]中的2(BVP_cands[0]、BVP_
cands[2])个类型条件。将BV7、BV3、BV2按照正序的方式填充至BVP_cands[0]、BVP_cands
[2]中,BV7填充至BVP_cands[0]、BV3填充至BVP_cands[2];在填充后,还需要对其进行查
重。在一实施例中,假设查重后的初始块预测矢量候选列表为:BVP_list[0]~BVP_list
[6],经过查重后,若列表中还有未填充的,例如,若查重后,列表中BVP_list[5]和BVP_list
[6] 仍然没有填充完,且BV2与列表内的预测矢量都不相同,则BV2填充至查重后的初始块
预测矢量候选列表中的BVP_list[5]。此时,查重后的初始块预测矢量候选列表中的BVP_
cands[6]仍然没有填充,则可以将预设块矢量((‑width,0)或(0,‑height))填充至查重后
的初始块预测矢量候选列表中的BVP_list[6]。
[0081] 现有技术中,在构建块预测矢量候选列表时,后出现的预测矢量覆盖前面出现的预测矢量,最中列表中保留的只有最后出现的预测矢量,实际上这些出现此处很多或者同
时满足两个或三个以上条件的预测矢量的相关性是非常高的,将其都列入候选列表中,可
以增加候选列表的多样性,另外,本实施例中,将未被填充的位置采用参考候选项进行填
充,而不是像现有中的用初始值进行填充,进一步增加候选列表的多样性。
[0082] 步骤S13:对当前块进行哈希匹配和/或基于块预测矢量候选列表进行运动搜索以确定当前块的最终块矢量。
[0083] 具体的,以哈希匹配为例,哈希匹配条件包括:匹配块与当前块哈希值相同的子块的数量大于预设阈值,预设阈值小于当前块中子块的总数,和/或匹配块与当前块指定位置
的子块的哈希值相同。
[0084] 具体的,对当前块与匹配块进行哈希计算。以当前块内每一整像素点作为左上角构建4×4的子块,并计算每一子块的CRC(Cyclical Redundancy Check,循环冗余校验),将
其作为子块对应的哈希值。匹配块同样按照相同的方式以当前块内每一整像素点作为左上
角构建4× 4的子块,并计算每一子块的CRC(Cyclical Redundancy Check,循环冗余校
验),将其作为子块对应的哈希值。匹配块与所述当前块哈希值相同的子块的数量大于预设
阈值,则该匹配块为参考块对应的匹配块,该匹配块对应的块矢量为当前块的最终块矢量。
预设阈值小于所述当前块中所述子块的总数。具体请参照图3,假设当前块与匹配块均有16 
个子块,而图3中当前块中有四个子块:1、6、11、16的哈希值与匹配块中的四个子块:1、6、
11、16相同,则该匹配块为当前块对应的匹配块,该匹配块对应的块矢量为当前块的最终块
矢量。在另一实施例中,若匹配块与当前块指定位置的子块的哈希值相同,则表示该匹配块
为当前块对应的匹配块,具体请参照图4,若图4中当前块的子块1、16的哈希值与匹配块中
的子块1、16相同,则该匹配块为当前块对应的匹配块。
[0085] 现有技术在进行哈希匹配时,要求所有子块的哈希值均相同,才判断该匹配块为当前块对应的匹配块,其搜索条件严格,使得后续搜索到的匹配块的范围小,本发明使得搜
索范围更广,进而得到更佳的匹配块的选择,并搜索得到更佳的当前块的最终块矢量。
[0086] 在一实施例中,在通过哈希匹配搜索出当前块对应的匹配块后,进一步检查搜索到的匹配块是否符合帧内块复制预测方法规范性的限制,保留符合要求的匹配块。对于保
留的符合要求的匹配块,遍历所有块预测矢量候选列表中的预测矢量对应的编码代价。选
择编码代价最小的匹配块作为最终匹配块,即最终匹配块对应的块矢量为最终块矢量。具
体的,在计算编码代价时,通过匹配块的块矢量减去最终块预测矢量候选列表中的预测矢
量得到块矢量差,计算最终块预测矢量候选列表中的预测矢量编码所需的比特数以及块矢
量差编码所需的比特数,进而选的编码代价最小的匹配块作为最终匹配块,并记录其对应
的预测矢量的索引,即该预测矢量属于上述7中类型中的哪一类。
[0087] 以运动搜索为例,在进行运动搜索时,以当前块的左上角为起点进行搜索。具体的,现有技术中在进行运动搜索时,会以最终块预测矢量候选列表中满足帧内块复制预测
方法规范性限制的块的预测矢量为起点进行搜索;或者先对最终块预测矢量候选列表中满
足帧内块复制预测方法规范性限制的块进行编码代价计算,选择编码代价最小的块矢量作
为起点进行运动搜索,若没有满足帧内块复制预测方法规范性限制的块,则以(0,0)为起点
进行搜索。本方案中,除了选择块预测矢量候选列表中编码代价最小的块矢量作为起点之
外,还以当前块的左上角为起点进行搜索。具体的,在进行运动搜索时,需要设置搜索范围,
即预测矢量指向的点的水平垂直方向(‑M,M)范围,即以预测矢量指向的点为起点向上下左
右各偏移M个像素构成的矩形搜索范围。其中M可选取32和64。若该搜索范围某一侧超出图
像边界,则需要将该侧限制到图像边界内。一般情况下,在上述搜索范围内,以预测矢量为
起点的正上方、正左方、正下方和正右方四方向的已编码块进行搜索,且搜索到的匹配块需
要符合帧内块复制预测方法规范性限制,搜索方向由远及近。具体的,设置一个子像素的搜
索步长,不能超过上述搜索范围,在搜索到匹配块后,比较搜索到的匹配块的编码代价,选
择编码代价最小的块作为最终匹配块,其对应的块矢量为最终块矢量,记录当前作为起点
的预测矢量的索引。
[0088] 在一实施例中,若当前块尺寸宽高都小于16的块,除了上述搜索范围,还要在上述划定的搜索范围内进行全搜索,搜索步长为一个子像素,搜索范围内所有匹配块需要符合
帧内块复制预测方法规范性限制。通过比较编码代价,最终得到当前块的最终块矢量,记录
当前预测矢量的索引。搜索过程中如果某块矢量/预测矢量对应的编码代价小于某阈值时,
直接采用该块矢量作为当前块的最终块矢量,并记录当前的预测矢量的索引,退出运动搜
索过程。
[0089] 具体的,在一实施例中,确定当前块的最终块矢量时,可以优选使用哈希匹配的方式进行搜索,若哈希匹配的方式未搜索到最终块矢量,则再基于所述预测矢量候选列表进
行运动搜索。也可以分别通过哈希匹配及运动搜索确定最终块矢量,若确定的最终块矢量
不同,则根据编码代价选择合适的最终块矢量。
[0090] 若经过编码代价比较后,选择的最佳预测矢量是(‑width,0)或(0, ‑height)时,就需要以当前块左上角位置为起点进行运动搜索,需要注意的是,已搜索的区域不再进行
搜索。搜索完后也要进行编码代价比较。或者直接默认把当前块左上角位置为起点进行运
动搜索后的搜索结果加入编码代价比较。
[0091] 步骤S14:利用所述最终块矢量对所述当前块进行运动补偿。
[0092] 具体的,请参见图5,为步骤S14的一具体实施例的流程示意图,包括:
[0093] 步骤S141:利用最终矢量块对当前块进行运动补偿得到第一预测块。
[0094] 具体的,当前块根据最终块矢量通过像素插值或像素拷贝的方式基于最终匹配块获取预测值,将当前块的原始像素值和预测值相减得到残差块,再然后对残差块进行变换
量化、反量化反变换得到当前块进行运动补偿后的第一预测块。
[0095] 步骤S142:对第一预测块进行滤波得到第二预测块。
[0096] 具体的,对第一预测块进行滤波,例如帧间预测滤波,即当前块像素经过帧内块复制预测的预测值和周围空域的已编码像素的重建值进行加权。
[0097] 步骤S143:计算并比较第一预测块和第二预测块的编码代价以确定是否进行滤波。
[0098] 具体的,对当前块进行编码得到当前块的码流,码流中包括滤波标记;计算比较第一预测块和第二预测块的编码代价,若第一预测块的编码代价大于第二预测块的编码代
价,则滤波标记用于表示进行滤波,若第一预测块的编码代价小于第二预测块的编码代价,
则滤波标记用于表示不进行滤波。
[0099] 在另一具体实施例中,可以不进行滤波,直接基于第一预测块进行编码。
[0100] 具体的,在一实施例中,当前块编码的码流中还包括句法元素,句法元素中包括当前编码单元采用的帧内块复制模式、当前块对应的预测矢量的索引、块矢量差的精度、块矢
量差的x轴分量和y轴分量。
[0101] 请参见图6,为图1中步骤S11的第三实施例的流程示意图。具体的,在为当前块构建最终块预测矢量候选列表之前,还包括:
[0102] 步骤S61:判断当前块是否满足帧内块复制预测条件。
[0103] 在一实施例中,帧内块复制预测条件包括当前块的内容属于自然图像或自然图像与屏幕内容图像的混合,屏幕内容图像为屏幕生成内容、计算机产生图像。若满足,则进入
步骤S62,若不满足,则进入步骤S63。
[0104] 步骤S62:则为当前块构建初始块预测矢量候选列表。
[0105] 具体的,在构建块预测矢量候选列表时,可利用上述所示的具体实施方式,在此不再赘述。
[0106] 步骤S63:结束。
[0107] 若当前块不满足帧内块复制预测条件,则不为当前块构建最终块预测矢量候选列表。
[0108] 相对于现有技术,本发明在构建块预测矢量候选列表时,若有若干预测矢量同时满足同样的两个或三个分类时,会将这些相关性较强的预测矢量都填入候选列表,或者用
当前块的已编码邻块的块矢量、预设块矢量和已填入所述初始块预测矢量候选列表的预测
矢量的计算结果等填充块预测矢量候选列表以形成最终块预测矢量候选列表,而不是只能
用初始值填充剩下的位置,使得候选列表中的预测矢量更加多样。在进行哈希匹配时放宽
哈希匹配的限制,在运动搜索时,添加更多的搜索范围,引入预测值滤波工具。以此能使更
多哈希匹配块参与到编码开销比较,提高最终块矢量的判断精度。
[0109] 请参见图7,为本发明帧内块复制预测装置的第一实施例的结构示意图。其中,帧内块复制预测装置包括第一列表构建模块11、第二列表构建模块12、匹配模块13及补偿模
块14。
[0110] 其中,第一列表构建模块11用于利用历史预测矢量列表为当前块构建初始块预测矢量候选列表;若所述历史预测矢量列表中的n个预测矢量同时满足m个相同的条件,n和m
均大于一,则将n个所述预测矢量中的至少部分填入对应的条件中,以形成所述初始块预测
矢量候选列表。
[0111] 第二列表构建模块12用于基于所述初始块预测矢量候选列表构建最终块预测矢量候选列表。
[0112] 匹配模块13用于对当前块进行哈希匹配和/或基于块预测矢量候选列表进行运动搜索以确定当前块的最终块矢量。
[0113] 补偿模块14用于利用所述最终块矢量对所述当前块进行运动补偿。
[0114] 请参见图8,为本发明帧内块复制预测方法的第二实施例的流程示意图,包括:
[0115] 步骤S21:利用历史预测矢量列表和/或参考候选项为当前块构建最终块预测矢量候选列表,参考候选项包括以下至少一种:当前块的已编码邻块的块矢量、预设块矢量和已
填入初始块预测矢量候选列表的预测矢量的计算结果。
[0116] 具体的,先利用历史预测矢量列表为当前块构建初始块预测矢量候选列表,将历史预测矢量列表中满足上述7类条件的预测矢量填充至对应的条件中形成初始块预测矢量
候选列表,在一实施例中,通过上述7 类条件的规则填充好初始块预测矢量候选列表后,还
需要对初始块预测矢量候选列表进行查重,若经过查重后,初始块预测矢量候选列表未被
填满,则选择至少一个参考候选项填入初始块预测矢量候选列表。参考候选项包括当前块
的已编码邻块的块矢量、预设块矢量和已填入初始块预测矢量候选列表的预测矢量的计算
结果。在进行填充时,按照预定的优先权顺序进行填充。在一具体实施例中,当前块的已编
码邻块的块矢量的填充优先权>预设块矢量的填充优先权>已填入初始块预测矢量候选
列表的预测矢量的计算结果的填充优先权。
[0117] 具体的,在历史预测矢量列表按照上述7类条件的预测矢量填充规则,没有将初始块预测矢量候选列表未填充满时;则将当前块的已编码邻块的预测矢量填充至未填充的位
置内;若还未填充满时,还可以将预设块矢量填充至未填充的位置内;若还未填满时,则将
已填入初始块预测矢量候选列表的预测矢量的计算结果填充至未填充的位置内。或者,在
一实施例中,在历史预测矢量列表按照上述7类条件的预测矢量填充规则进行填充形成初
始块预测矢量候选列表后,对初始块预测矢量候选列表进行查重,在此之后,若查重后的初
始块预测矢量候选列表未填充满时,则将当前块的已编码邻块的预测矢量填充至未填充的
位置内;若还未填充满时,还可以将预设块矢量填充至未填充的位置内;若还未填满时,则
将已填入初始块预测矢量候选列表的预测矢量的计算结果填充至未填充的位置内。
[0118] 具体的,可以假设预设块矢量为(‑width,0),(0,‑height),其中, width和height为当前块的宽和高;已填入块预测矢量候选列表的预测矢量的计算结果为候选列表中已填
充的预测矢量推导出的新的预测矢量。
[0119] 在一实施例中,在将参考候选项填入初始块预测矢量候选列表和/ 或查重后的初始块预测矢量候选列表中时需要先选择至少一个参考候选项,将选中的参考候选项填充至
初始块预测矢量候选列表和/或查重后的初始块预测矢量候选列表中,以形成最终块预测
矢量候选列表。
[0120] 例如,在一实施例中,假设按照倒序的方式遍历历史预测矢量列表,其中有三个预测矢量(BV7、BV3、BV2)同时满足 BVP_cands[0]~BVP_cands[6]中的2(BVP_cands[0]、BVP_
cands[2])个类型条件。将BV7、BV3、BV2按照正序的方式填充至BVP_cands[0]、 BVP_cands
[2]中,BV7填充至BVP_cands[0]、BV3填充至BVP_cands[2];在填充后,还需要对其进行查
重。在一实施例中,假设查重后的初始块预测矢量候选列表为:BVP_list[0]~BVP_list
[6],经过查重后,若列表中还有未填充的,例如,若查重后,列表中BVP_list[5]和BVP_list
[6] 仍然没有填充完,且BV2与列表内的预测矢量都不相同,则BV2填充至查重后的初始块
预测矢量候选列表中的BVP_list[5]。此时,查重后的初始块预测矢量候选列表中的BVP_
cands[6]仍然没有填充,则可以将预设块矢量((‑width,0)或(0,‑height))填充至查重后
的初始块预测矢量候选列表中的BVP_list[6]。
[0121] 步骤S22:对所述当前块进行哈希匹配和/或基于所述最终块预测矢量候选列表进行运动搜索以确定所述当前块的最终块矢量。
[0122] 步骤S23:利用所述最终块矢量对所述当前块进行运动补偿。
[0123] 本实施例步骤S22及步骤S23的其他详细说明请参见其他实施例,在此不再重复。本实施例中,利用历史预测矢量列表和/或参考候选项为当前块构建最终块预测矢量候选
列表,以提高候选列表的多样性,进而提高后续最终块矢量的精确性。
[0124] 请参见图9,为本发明帧内块复制预测装置的第二实施例的结构示意图。其中,帧内块复制预测装置包括列表构建模块21、匹配模块22 及补偿模块23。
[0125] 其中,列表构建模块21用于利用历史预测矢量列表和/或参考候选项为当前块构建块最终块预测矢量候选列表,所述参考候选项包括以下至少一种:所述当前块的已编码
邻块的块矢量、预设块矢量和已填入初始块预测矢量候选列表的预测矢量的计算结果。
[0126] 匹配模块22用于对所述当前块进行哈希匹配和/或基于所述最终块预测矢量候选列表进行运动搜索以确定所述当前块的最终块矢量。
[0127] 补偿模块23用于利用最终块矢量对当前块进行运动补偿。
[0128] 请参见图10,为本发明帧内块复制预测方法的第三实施例的流程示意图,包括:
[0129] 步骤S31:为当前块构建最终块预测矢量候选列表。
[0130] 步骤S32:对所述当前块进行哈希匹配和/或基于所述最终块预测矢量候选列表进行运动搜索以确定所述当前块的最终块矢量,所述哈希匹配的条件包括:匹配块与所述当
前块哈希值相同的子块的数量大于预设阈值,所述预设阈值小于所述当前块中所述子块的
总数,和/或所述匹配块与所述当前块指定位置的所述子块的哈希值相同。
[0131] 具体的,以哈希匹配匹配为例,哈希匹配条件包括:匹配块与当前块哈希值相同的子块的数量大于预设阈值,预设阈值小于当前块中子块的总数,和/或匹配块与当前块指定
位置的子块的哈希值相同。
[0132] 具体的,对当前块与匹配块进行哈希计算。以当前块内每一整像素点作为左上角构建4×4的子块,并计算每一子块的CRC(Cyclical Redundancy Check,循环冗余校验),将
其作为子块对应的哈希值。匹配块同样按照相同的方式以当前块内每一整像素点作为左上
角构建4× 4的子块,并计算每一子块的CRC(Cyclical Redundancy Check,循环冗余校
验),将其作为子块对应的哈希值。匹配块与所述当前块哈希值相同的子块的数量大于预设
阈值,则该匹配块为参考块对应的匹配块,该匹配块对应的块矢量为当前块的最终块矢量。
预设阈值小于所述当前块中所述子块的总数。具体请参照图3,假设当前块与匹配块均有16 
个子块,而图3中当前块中有四个子块:1、6、11、16的哈希值与匹配块中的四个子块:1、6、
11、16相同,则该匹配块为当前块对应的匹配块,该匹配块对应的块矢量为当前块的最终块
矢量。在另一实施例中,若匹配块与当前块指定位置的子块的哈希值相同,则表示该匹配块
为当前块对应的匹配块,具体请参照图4,若图4中当前块的子块1、16的哈希值与匹配块中
的子块1、16相同,则该匹配块为当前块对应的匹配块。
[0133] 现有技术在进行哈希匹配时,要求所有子块的哈希值均相同,才判断该匹配块为当前块对应的匹配块,其搜索条件严格,使得后续搜索到的匹配块的范围小,本发明使得搜
索范围更广,进而得到更佳的匹配块的选择,并搜索得到更佳的当前块的最终块矢量。
[0134] 在一实施例中,在通过哈希匹配搜索出当前块对应的匹配块后,进一步检查搜索到的匹配块是否符合帧内块复制预测方法规范性的限制,保留符合要求的匹配块。对于保
留的符合要求的匹配块,遍历所有块预测矢量候选列表中的预测矢量对应的编码代价。选
择编码代价最小的匹配块作为最终匹配块,即最终匹配块对应的块矢量为最终块矢量。具
体的,在计算编码代价时,通过匹配块的块矢量减去最终块预测矢量候选列表中的预测矢
量得到块矢量差,计算最终块预测矢量候选列表中的预测矢量编码所需的比特数以及块矢
量差编码所需的比特数,进而选的编码代价最小的匹配块作为最终匹配块,并记录其对应
的预测矢量的索引,即该预测矢量属于上述7中类型中的哪一类。
[0135] 步骤S33:利用最终块矢量对当前块进行运动补偿。
[0136] 本实施例步骤S31及步骤S33的其他详细说明请参见其他实施例,在此不再重复。本实施例中,其拓展了哈希匹配的限制条件,进而扩大了最终块矢量的匹配范围,提高后续
搜索得到最终块矢量的精确性。
[0137] 请参见图11,为本发明帧内块复制预测装置的第三实施例的结构示意图。其中,帧内块复制预测装置包括列表构建模块31、匹配模块32 及补偿模块33。
[0138] 列表构建模块31用于为当前块构建最终块预测矢量候选列表。
[0139] 匹配模块32用于对所述当前块进行哈希匹配和/或基于所述最终块预测矢量候选列表进行运动搜索以确定所述当前块的最终块矢量,所述哈希匹配的条件包括:匹配块与
所述当前块哈希值相同的子块的数量大于预设阈值,所述预设阈值小于所述当前块中所述
子块的总数,和/或所述匹配块与所述当前块指定位置的所述子块的哈希值相同。
[0140] 补偿模块33用于利用最终块矢量对当前块进行运动补偿。
[0141] 请参见图12,为本发明帧内块复制预测方法的第四实施例的流程示意图,包括:
[0142] 步骤S41:为当前块构建最终块预测矢量候选列表;
[0143] 步骤S42:对所述当前块进行哈希匹配和/或基于所述最终块预测矢量候选列表进行运动搜索以确定所述当前块的最终块矢量,所述运动搜索的起点包括所述当前块的左上
角。
[0144] 以运动搜索为例,在进行运动搜索时,以当前块的左上角为起点进行搜索。具体的,现有技术中在进行运动搜索时,会以最终块预测矢量候选列表中满足帧内块复制预测
方法规范性限制的块的预测矢量为起点进行搜索;或者先对最终块预测矢量候选列表中满
足帧内块复制预测方法规范性限制的块进行编码代价计算,选择编码代价最小的块矢量作
为起点进行运动搜索,若没有满足帧内块复制预测方法规范性限制的块,则以(0,0)为起点
进行搜索。本方案中,除了选择块预测矢量候选列表中编码代价最小的块矢量作为起点之
外,还以当前块的左上角为起点进行搜索。具体的,在进行运动搜索时,需要设置搜索范围,
即预测矢量指向的点的水平垂直方向(‑M,M)范围,即以预测矢量指向的点为起点向上下左
右各偏移M个像素构成的矩形搜索范围。其中M可选取32和64。若该搜索范围某一侧超出图
像边界,则需要将该侧限制到图像边界内。一般情况下,在上述搜索范围内,以预测矢量为
起点的正上方、正左方、正下方和正右方四个方向的已编码块进行搜索,且搜索到的匹配块
需要符合帧内块复制预测方法规范性限制,搜索方向由远及近。具体的,设置一个子像素的
搜索步长,不能超过上述搜索范围,在搜索到匹配块后,比较搜索到的匹配块的编码代价,
选择编码代价最小的块作为最终匹配块,其对应的块矢量为最终块矢量,记录当前作为起
点的预测矢量的索引。
[0145] 在一实施例中,若当前块尺寸宽高都小于16的块,除了上述搜索范围,还要在上述划定的搜索范围内进行全搜索,搜索步长为一个子像素,搜索范围内所有匹配块需要符合
帧内块复制预测方法规范性限制。通过比较编码代价,最终得到当前块的最终块矢量,记录
当前预测矢量的索引。搜索过程中如果某块矢量/预测矢量对应的编码代价小于某阈值时,
直接采用该块矢量作为当前块的最终块矢量,并记录当前的预测矢量的索引,退出运动搜
索过程。
[0146] 具体的,在一实施例中,确定当前块的最终块矢量时,可以优选使用哈希匹配的方式进行搜索,若哈希匹配的方式未搜索到最终块矢量,则再基于所述预测矢量候选列表进
行运动搜索。也可以分别通过哈希匹配及运动搜索确定最终块矢量,若确定的最终块矢量
不同,则根据编码代价选择合适的最终块矢量。
[0147] 若经过编码代缴比较后,选择的最佳预测矢量是(‑width,0)或(0, ‑height)时,就需要以当前块左上角位置为起点进行运动搜索,需要注意的是,已搜索的区域不再进行
搜索。搜索完后也要进行编码代价比较。或者直接默认把当前块左上角位置为起点进行运
动搜索后的搜索结果加入编码代价比较。
[0148] 步骤S43:利用所述最终块矢量对所述当前块进行运动补偿。
[0149] 本实施例中步骤S41及步骤S43的其他详细说明请参见其他实施例,在此不再重复。本实施例中,其拓展了运动搜索的起点的条件,进而扩大了最终块矢量的匹配范围,提
高后续搜索得到最终块矢量的精确性。
[0150] 请参见图13,为本发明帧内块复制预测装置的第四实施例的结构示意图。其中,帧内块复制预测装置包括列表构建模块41、匹配模块42 及补偿模块43。
[0151] 列表构建模块41用于为当前块构建最终块预测矢量候选列表。
[0152] 匹配模块42用于对所述当前块进行哈希匹配和/或基于所述最终块预测矢量候选列表进行运动搜索以确定所述当前块的最终块矢量,所述运动搜索的起点包括所述当前块
的左上角。
[0153] 补偿模块43用于利用最终块矢量对所述当前块进行运动补偿。
[0154] 请参见图14,为本发明帧内块复制预测方法的第五实施例的流程示意图,包括:
[0155] 步骤S51:为当前块构建最终块预测矢量候选列表。
[0156] 步骤S52:对所述当前块进行哈希匹配和/或基于所述最终块预测矢量候选列表进行运动搜索以确定所述当前块的最终块矢量。
[0157] 步骤S53:利用所述最终块矢量对所述当前块进行运动补偿得到第一预测块。
[0158] 具体的,当前块根据最终块矢量通过像素插值或像素拷贝的方式基于最终匹配块获取预测值,将当前块的原始像素值和预测值相减得到残差块,再然后对残差块进行变换
量化、反量化反变换得到当前块进行运动补偿后的第一预测块。
[0159] 步骤S54:对所述第一预测块进行滤波得到第二预测块。
[0160] 具体的,对第一预测块进行滤波,即当前块像素经过帧内块复制预测的预测值和周围空域的已编码像素的重建值进行加权。
[0161] 步骤S55:计算并比较所述第一预测块和所述第二预测块的编码代价以确定是否进行滤波。
[0162] 具体的,对当前块进行编码得到当前块的码流,码流中包括滤波标记;计算比较第一预测块和第二预测块的编码代价,若第一预测块的编码代价大于第二预测块的编码代
价,则滤波标记用于表示进行滤波,若第一预测块的编码代价小于第二预测块的编码代价,
则滤波标记用于表示不进行滤波。
[0163] 本实施例中,步骤S51及步骤S52的其他详细说明请参见其他实施例,在此不再重复。本实施例中,其对第一预测块进行滤波得到第二预测块,比较第一预测块与第二预测块
的编码开销,以此来确定是否进行滤波。
[0164] 请参见图15,为本发明帧内块复制预测装置的第五实施例的结构示意图。其中,帧内块复制预测装置包括列表构建模块51、匹配模块52、补偿模块53、滤波模块54及计算模块
55。
[0165] 列表构建模块51用于为当前块构建最终块预测矢量候选列表。
[0166] 匹配模块52用于对所述当前块进行哈希匹配和/或基于所述最终块预测矢量候选列表进行运动搜索以确定所述当前块的最终块矢量。
[0167] 补偿模块53用于利用最终块矢量对当前块进行运动补偿得到第一预测块。
[0168] 滤波模块54用于对第一预测块进行滤波得到第二预测块。
[0169] 计算模块55用于计算并比较第一预测块和第二预测块的编码代价以确定是否进行滤波。
[0170] 请参见图16,为本发明帧内块复制预测方法的第六实施例的流程示意图。
[0171] 步骤S61:判断当前块是否满足帧内块复制预测条件,所述帧内块复制预测条件包括所述当前块的内容属于自然图像或自然图像与屏幕内容图像的混合。
[0172] 步骤S62:若满足,则为当前块构建最终块预测矢量候选列表。
[0173] 若当前块的内容属于自然图像或自然图像与屏幕内容图像的混合,则为当前块构建最终块预测矢量候选列表。
[0174] 步骤S63:对所述当前块进行哈希匹配和/或基于所述预测矢量候选列表进行运动搜索以确定所述当前块的最终块矢量。
[0175] 步骤S64:利用所述最终块矢量对所述当前块进行运动补偿。
[0176] 本实施例中步骤S63及步骤S64的其他详细实施方式请参照其他实施例,在此不再赘述。本实施例所述的方法,其拓展的帧内块复制预测方法的应用条件,使得其应用场景更
加广泛。
[0177] 请参见图17,为本发明帧内块复制预测装置的第六实施例的结构示意图。帧内块复制预测装置包括:条件判断模块61、列表构建模块62、匹配模块63及补偿模块64。
[0178] 条件判断模块61用于判断当前块是否满足帧内块复制预测条件,所述帧内块复制预测条件包括所述当前块的内容属于自然图像或自然图像与屏幕内容图像的混合。
[0179] 列表构建模块62用于在当前块是否满足帧内块复制预测条件时,为当前块构建最终块预测矢量候选列表。
[0180] 匹配模块63用于对所述当前块进行哈希匹配和/或基于所述预测矢量候选列表进行运动搜索以确定所述当前块的最终块矢量。
[0181] 补偿模块64用于利用所述最终块矢量对所述当前块进行运动补偿。
[0182] 请参见图18,为本发明帧内块复制预测装置的第七实施例的结构示意图。帧内块复制预测装置包括相互连接的存储器72和处理器71。
[0183] 存储器72用于存储实现上述任意一项的帧内块复制预测方法的程序指令。
[0184] 处理器71用于执行存储器72存储的程序指令。
[0185] 其中,处理器71还可以称为CPU(Central Processing Unit,中央处理单元)。处理器71可能是一种集成电路芯片,具有信号的处理能力。处理器71还可以是通用处理器、数字
信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器
件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器
也可以是任何常规的处理器等。
[0186] 存储器72可以为内存条、TF卡等,可以存储帧内块复制预测装置中全部信息,包括输入的原始数据、计算机程序、中间运行结果和最终运行结果都保存在存储器中。它根据控
制器指定的位置存入和取出信息。有了存储器,帧内块复制预测装置才有记忆功能,才能保
证正常工作。帧内块复制预测装置的存储器按用途存储器可分为主存储器(内存) 和辅助
存储器(外存),也有分为外部存储器和内部存储器的分类方法。外存通常是磁性介质或光
盘等,能长期保存信息。内存指主板上的存储部件,用来存放当前正在执行的数据和程序,
但仅用于暂时存放程序和数据,关闭电源或断电,数据会丢失。
[0187] 在本申请所提供的几个实施例中,应该理解到,所揭露的方法和装置,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,模块或单元的划
分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可
以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨
论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合
或通信连接,可以是电性,机械或其它的形式。
[0188] 作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络
单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目
的。
[0189] 另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单
元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0190] 集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者
说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现
出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备 
(可以是个人计算机,系统服务器,或者网络设备等)或处理器(processor)执行本申请各个
实施方式方法的全部或部分步骤。
[0191] 请参阅图19,为本发明计算机可读存储介质的结构示意图。本申请的存储介质存储有能够实现上述所有帧内块复制预测方法的程序文件 81,其中,该程序文件81可以以软
件产品的形式存储在上述存储介质中,包括若干指令用以使得一台计算机设备(可以是个
人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式方法
的全部或部分步骤。而前述的存储装置包括:U盘、移动硬盘、只读存储器(ROM,Read‑Only 
Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程
序代码的介质,或者是计算机、服务器、手机、平板等终端设备。
[0192] 以上仅为本发明的实施方式,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术
领域,均同理包括在本发明的专利保护范围内。