一种帧内块复制预测方法、装置及计算机可读存储介质转让专利
申请号 : CN202010753408.1
文献号 : CN112004099B
文献日 : 2021-08-03
发明人 : 江东 , 方诚 , 曾飞洋 , 林聚财 , 殷俊
申请人 : 浙江大华技术股份有限公司
摘要 :
权利要求 :
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中任一项所述的方法。
说明书 :
一种帧内块复制预测方法、装置及计算机可读存储介质
技术领域
背景技术
内预测模式、帧内块复制预测等模式。
建最终的候选列表。在构建初始候选列表时,块矢量是按照固定分类填充到相应的位置,同
类型的块矢量会替代前面的同类型块矢量,若有若干块矢量同时满足两个或三个分类时,
列表中最终只剩下最后出现的块矢量;并且在构建最终的候选列表时需要对初始列表中的
块矢量进行查重,剔除未填充的位置等操作得到最终的候选列表。目前最终得到的候选列
表中的块矢量只是用历史已编码的块矢量进行填充,其导致构建的候选列表不够多样化。
发明内容
预测矢量列表中的n个预测矢量同时满足m个相同的条件,n和m均大于一,则将n个所述预测
矢量中的至少部分填入对应的条件中,以形成所述初始块预测矢量候选列表;基于所述初
始块预测矢量候选列表构建最终块预测矢量候选列表;对所述当前块进行哈希匹配和/或
基于所述最终块预测矢量候选列表进行运动搜索以确定所述当前块的最终块矢量;利用所
述最终块矢量对所述当前块进行运动补偿。
量候选列表;若所述历史预测矢量列表中的n个预测矢量同时满足m个相同的条件,n和m均
大于一,则将n个所述预测矢量中的至少部分填入对应的条件中,以形成所述初始块预测矢
量候选列表;第二列表构建模块,用于基于所述初始块预测矢量候选列表构建最终块预测
矢量候选列表;匹配模块,用于对所述当前块进行哈希匹配和/或基于所述最终块预测矢量
候选列表进行运动搜索以确定所述当前块的最终块矢量;补偿模块,用于利用所述最终块
矢量对所述当前块进行运动补偿。
选列表,所述参考候选项包括以下至少一种:所述当前块的已编码邻块的块矢量、预设块矢
量和已填入初始块预测矢量候选列表的预测矢量的计算结果;对所述当前块进行哈希匹配
和/或基于所述最终块预测矢量候选列表进行运动搜索以确定所述当前块的最终块矢量;
利用所述最终块矢量对所述当前块进行运动补偿。
块最终块预测矢量候选列表,所述参考候选项包括以下至少一种:所述当前块的已编码邻
块的块矢量、预设块矢量和已填入初始块预测矢量候选列表的预测矢量的计算结果;匹配
模块,用于对所述当前块进行哈希匹配和/或基于所述最终块预测矢量候选列表进行运动
搜索以确定所述当前块的最终块矢量;补偿模块,用于利用所述最终块矢量对所述当前块
进行运动补偿。
基于所述最终块预测矢量候选列表进行运动搜索以确定所述当前块的最终块矢量,所述哈
希匹配的条件包括:匹配块与所述当前块哈希值相同的子块的数量大于预设阈值,所述预
设阈值小于所述当前块中所述子块的总数,和/或所述匹配块与所述当前块指定位置的所
述子块的哈希值相同;利用所述最终块矢量对所述当前块进行运动补偿。
对所述当前块进行哈希匹配和/或基于所述最终块预测矢量候选列表进行运动搜索以确定
所述当前块的最终块矢量,所述哈希匹配的条件包括:匹配块与所述当前块哈希值相同的
子块的数量大于预设阈值,所述预设阈值小于所述当前块中所述子块的总数,和/或所述匹
配块与所述当前块指定位置的所述子块的哈希值相同;补偿模块,用于利用所述最终块矢
量对所述当前块进行运动补偿。
基于所述最终块预测矢量候选列表进行运动搜索以确定所述当前块的最终块矢量,所述运
动搜索的起点包括所述当前块的左上角;利用所述最终块矢量对所述当前块进行运动补
偿。
对所述当前块进行哈希匹配和/或基于所述最终块预测矢量候选列表进行运动搜索以确定
所述当前块的最终块矢量,所述运动搜索的起点包括所述当前块的左上角;补偿模块,用于
利用所述最终块矢量对所述当前块进行运动补偿。
基于所述最终块预测矢量候选列表进行运动搜索以确定所述当前块的最终块矢量;利用所
述最终块矢量对所述当前块进行运动补偿得到第一预测块;对所述第一预测块进行滤波得
到第二预测块;计算并比较所述第一预测块和所述第二预测块的编码代价以确定是否进行
滤波。
对所述当前块进行哈希匹配和/或基于所述最终块预测矢量候选列表进行运动搜索以确定
所述当前块的最终块矢量;补偿模块,用于利用所述最终块矢量对所述当前块进行运动补
偿得到第一预测块;滤波模块,用于对所述第一预测块进行滤波得到第二预测块;计算模
块,用于计算并比较所述第一预测块和所述第二预测块的编码代价以确定是否进行滤波。
所述当前块的内容属于自然图像或自然图像与屏幕内容图像的混合;若满足,则为当前块
构建最终块预测矢量候选列表;对所述当前块进行哈希匹配和/或基于所述预测矢量候选
列表进行运动搜索以确定所述当前块的最终块矢量;利用所述最终块矢量对所述当前块进
行运动补偿。
块复制预测条件包括所述当前块的内容属于自然图像或自然图像与屏幕内容图像的混合;
若满足,则利用列表构建模块为当前块构建最终块预测矢量候选列表;匹配模块,用于对所
述当前块进行哈希匹配和/或基于所述预测矢量候选列表进行运动搜索以确定所述当前块
的最终块矢量;补偿模块,用于利用所述最终块矢量对所述当前块进行运动补偿。
存储器存储有程序指令;所述处理器用于执行所述存储器存储的程序指令以实现上述任一
项所述的方法。
方法。
满足的不同条件一一对应,并且块预测矢量候选列表中至少两个预测矢量同时满足至少两
个相同的条件;以此使得块预测矢量候选列表内的预测矢量更加多样化。
附图说明
本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它
的附图,其中:
具体实施方式
冲突的情况下,本申请中的所有实施例可以相互结合。基于本申请中的实施例,本领域普通
技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范
围。
帧内块复制预测技术可以仅应用于宽和高都小于等于16的块,因此其中的当前块和匹配块
均为宽和高都小于等于16的块。此外,帧内块复制预测方法的匹配块的选取还存在以下规
范性限制:匹配块必须位于当前最大编码单元(the largest coding unit,LCU)的左侧相
邻的最大编码单元内或者当前LCU的区域内,且将LCU都按照64×64区域大小平均划分,一
个匹配块的所有像素均来自于同一个64×64区域;匹配块中所有像素必须是已经解码重建
的像素;匹配块中如果有部分像素来自左侧相邻的LCU,那么它的左上角所在的64×64区域
坐标向右移128到当前对应的64×64区域位置时,该当前LCU的该64×64区域的像素应该完
全尚未解码重建。
初始块预测矢量候选列表的最大容量为 7,其列表存放有最多7个预测矢量,列表中的7个
位置分别对应满足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]中。
个预测矢量同时满足m个相同的条件,n和m均大于一,则将n个预测矢量中的至少部分填入
对应的条件中,以形成初始块预测矢量候选列表。
示。
[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]。
[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]。在填充完成后,对候选列表进行查重,将重复
填充的预测矢量删除,或者将中间和/或末尾的空余位置去除。
初始块预测矢量候选列表的 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个对应的
位置。
cands[4]) 个类型条件。在填充时,将BV7填充至BVP_cands[0],将BV3填充至BVP_cands
[2],BV2填充至BVP_cands[3],以形成初始块预测矢量候选列表。
表,在形成初始块预测矢量候选列表后,可以进一步将剩下的预测矢量或者初始值填充至
初始块预测矢量候选列表构建最终块预测矢量候选列表。
[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]。
[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]。在填充完成后,对候选列表进行查重,将重复
填充的预测矢量删除,或者将中间和/或末尾的空余位置去除。
空余位置移动至末尾,具体不做限定。
测矢量进行查重,此时若查重后的初始块预测矢量候选列表中还有空余位置时,则按照上
述规则将空余位置进行填充。具体的,在一实施例中,若经查重后,列表中的空余位置位于
列表的前面时,则按照上述规则将空余位置进行填充。或者在另一实施例中,在经过查重
后,并且将列表中的空余位置移动至列表的末尾,则按照上述规则将位于列表末尾的空余
位置进行填充,具体不做限定,以实际操作为准。
矢量列表,其中有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个对应的位置之后,且在初始块预测矢量
候选列表构建完成之后,还需要对初始块预测矢量候选列表进行查重,在查重后,若初始块
预测矢量候选列表还存在其他空余位置,则将其空余位置填入初始值。
时满足两个或三个以上条件的预测矢量的相关性是非常高的,将其都列入候选列表中,可
以增加候选列表的多样性。
表,参考候选项包括以下至少一种:当前块的已编码邻块的块矢量、预设块矢量和已填入预
测矢量候选列表的预测矢量的计算结果。
选项填入查重后的初始块预测矢量候选列表,以形成最终块预测矢量候选列表。
体实施例中,当前块的已编码邻块的块矢量的填充优先权>预设块矢量的填充优先权>已
填入块预测矢量候选列表的预测矢量的计算结果的填充优先权。
内;若还未填充满时,还可以将预设块矢量填充至未填充的位置内;若还未填满时,则将已
填入初始块预测矢量候选列表的预测矢量的计算结果填充至未填充的位置内。或者,在一
实施例中,在历史预测矢量列表按照上述7类条件的预测矢量填充规则进行填充形成初始
块预测矢量候选列表后,对初始块预测矢量候选列表进行查重,在此之后,若查重后的初始
块预测矢量候选列表未填充满时,则将当前块的已编码邻块的预测矢量填充至未填充的位
置内;若还未填充满时,还可以将预设块矢量填充至未填充的位置内;若还未填满时,则将
已填入初始块预测矢量候选列表的预测矢量的计算结果填充至未填充的位置内。
已填充的预测矢量推导出的新的预测矢量。
初始块预测矢量候选列表和/或查重后的初始块预测矢量候选列表中,以形成最终块预测
矢量候选列表。
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]。
时满足两个或三个以上条件的预测矢量的相关性是非常高的,将其都列入候选列表中,可
以增加候选列表的多样性,另外,本实施例中,将未被填充的位置采用参考候选项进行填
充,而不是像现有中的用初始值进行填充,进一步增加候选列表的多样性。
的子块的哈希值相同。
其作为子块对应的哈希值。匹配块同样按照相同的方式以当前块内每一整像素点作为左上
角构建4× 4的子块,并计算每一子块的CRC(Cyclical Redundancy Check,循环冗余校
验),将其作为子块对应的哈希值。匹配块与所述当前块哈希值相同的子块的数量大于预设
阈值,则该匹配块为参考块对应的匹配块,该匹配块对应的块矢量为当前块的最终块矢量。
预设阈值小于所述当前块中所述子块的总数。具体请参照图3,假设当前块与匹配块均有16
个子块,而图3中当前块中有四个子块:1、6、11、16的哈希值与匹配块中的四个子块:1、6、
11、16相同,则该匹配块为当前块对应的匹配块,该匹配块对应的块矢量为当前块的最终块
矢量。在另一实施例中,若匹配块与当前块指定位置的子块的哈希值相同,则表示该匹配块
为当前块对应的匹配块,具体请参照图4,若图4中当前块的子块1、16的哈希值与匹配块中
的子块1、16相同,则该匹配块为当前块对应的匹配块。
索范围更广,进而得到更佳的匹配块的选择,并搜索得到更佳的当前块的最终块矢量。
留的符合要求的匹配块,遍历所有块预测矢量候选列表中的预测矢量对应的编码代价。选
择编码代价最小的匹配块作为最终匹配块,即最终匹配块对应的块矢量为最终块矢量。具
体的,在计算编码代价时,通过匹配块的块矢量减去最终块预测矢量候选列表中的预测矢
量得到块矢量差,计算最终块预测矢量候选列表中的预测矢量编码所需的比特数以及块矢
量差编码所需的比特数,进而选的编码代价最小的匹配块作为最终匹配块,并记录其对应
的预测矢量的索引,即该预测矢量属于上述7中类型中的哪一类。
方法规范性限制的块的预测矢量为起点进行搜索;或者先对最终块预测矢量候选列表中满
足帧内块复制预测方法规范性限制的块进行编码代价计算,选择编码代价最小的块矢量作
为起点进行运动搜索,若没有满足帧内块复制预测方法规范性限制的块,则以(0,0)为起点
进行搜索。本方案中,除了选择块预测矢量候选列表中编码代价最小的块矢量作为起点之
外,还以当前块的左上角为起点进行搜索。具体的,在进行运动搜索时,需要设置搜索范围,
即预测矢量指向的点的水平垂直方向(‑M,M)范围,即以预测矢量指向的点为起点向上下左
右各偏移M个像素构成的矩形搜索范围。其中M可选取32和64。若该搜索范围某一侧超出图
像边界,则需要将该侧限制到图像边界内。一般情况下,在上述搜索范围内,以预测矢量为
起点的正上方、正左方、正下方和正右方四方向的已编码块进行搜索,且搜索到的匹配块需
要符合帧内块复制预测方法规范性限制,搜索方向由远及近。具体的,设置一个子像素的搜
索步长,不能超过上述搜索范围,在搜索到匹配块后,比较搜索到的匹配块的编码代价,选
择编码代价最小的块作为最终匹配块,其对应的块矢量为最终块矢量,记录当前作为起点
的预测矢量的索引。
帧内块复制预测方法规范性限制。通过比较编码代价,最终得到当前块的最终块矢量,记录
当前预测矢量的索引。搜索过程中如果某块矢量/预测矢量对应的编码代价小于某阈值时,
直接采用该块矢量作为当前块的最终块矢量,并记录当前的预测矢量的索引,退出运动搜
索过程。
行运动搜索。也可以分别通过哈希匹配及运动搜索确定最终块矢量,若确定的最终块矢量
不同,则根据编码代价选择合适的最终块矢量。
搜索。搜索完后也要进行编码代价比较。或者直接默认把当前块左上角位置为起点进行运
动搜索后的搜索结果加入编码代价比较。
量化、反量化反变换得到当前块进行运动补偿后的第一预测块。
价,则滤波标记用于表示进行滤波,若第一预测块的编码代价小于第二预测块的编码代价,
则滤波标记用于表示不进行滤波。
量差的x轴分量和y轴分量。
步骤S62,若不满足,则进入步骤S63。
当前块的已编码邻块的块矢量、预设块矢量和已填入所述初始块预测矢量候选列表的预测
矢量的计算结果等填充块预测矢量候选列表以形成最终块预测矢量候选列表,而不是只能
用初始值填充剩下的位置,使得候选列表中的预测矢量更加多样。在进行哈希匹配时放宽
哈希匹配的限制,在运动搜索时,添加更多的搜索范围,引入预测值滤波工具。以此能使更
多哈希匹配块参与到编码开销比较,提高最终块矢量的判断精度。
块14。
均大于一,则将n个所述预测矢量中的至少部分填入对应的条件中,以形成所述初始块预测
矢量候选列表。
填入初始块预测矢量候选列表的预测矢量的计算结果。
候选列表,在一实施例中,通过上述7 类条件的规则填充好初始块预测矢量候选列表后,还
需要对初始块预测矢量候选列表进行查重,若经过查重后,初始块预测矢量候选列表未被
填满,则选择至少一个参考候选项填入初始块预测矢量候选列表。参考候选项包括当前块
的已编码邻块的块矢量、预设块矢量和已填入初始块预测矢量候选列表的预测矢量的计算
结果。在进行填充时,按照预定的优先权顺序进行填充。在一具体实施例中,当前块的已编
码邻块的块矢量的填充优先权>预设块矢量的填充优先权>已填入初始块预测矢量候选
列表的预测矢量的计算结果的填充优先权。
置内;若还未填充满时,还可以将预设块矢量填充至未填充的位置内;若还未填满时,则将
已填入初始块预测矢量候选列表的预测矢量的计算结果填充至未填充的位置内。或者,在
一实施例中,在历史预测矢量列表按照上述7类条件的预测矢量填充规则进行填充形成初
始块预测矢量候选列表后,对初始块预测矢量候选列表进行查重,在此之后,若查重后的初
始块预测矢量候选列表未填充满时,则将当前块的已编码邻块的预测矢量填充至未填充的
位置内;若还未填充满时,还可以将预设块矢量填充至未填充的位置内;若还未填满时,则
将已填入初始块预测矢量候选列表的预测矢量的计算结果填充至未填充的位置内。
充的预测矢量推导出的新的预测矢量。
初始块预测矢量候选列表和/或查重后的初始块预测矢量候选列表中,以形成最终块预测
矢量候选列表。
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]。
列表,以提高候选列表的多样性,进而提高后续最终块矢量的精确性。
邻块的块矢量、预设块矢量和已填入初始块预测矢量候选列表的预测矢量的计算结果。
前块哈希值相同的子块的数量大于预设阈值,所述预设阈值小于所述当前块中所述子块的
总数,和/或所述匹配块与所述当前块指定位置的所述子块的哈希值相同。
位置的子块的哈希值相同。
其作为子块对应的哈希值。匹配块同样按照相同的方式以当前块内每一整像素点作为左上
角构建4× 4的子块,并计算每一子块的CRC(Cyclical Redundancy Check,循环冗余校
验),将其作为子块对应的哈希值。匹配块与所述当前块哈希值相同的子块的数量大于预设
阈值,则该匹配块为参考块对应的匹配块,该匹配块对应的块矢量为当前块的最终块矢量。
预设阈值小于所述当前块中所述子块的总数。具体请参照图3,假设当前块与匹配块均有16
个子块,而图3中当前块中有四个子块:1、6、11、16的哈希值与匹配块中的四个子块:1、6、
11、16相同,则该匹配块为当前块对应的匹配块,该匹配块对应的块矢量为当前块的最终块
矢量。在另一实施例中,若匹配块与当前块指定位置的子块的哈希值相同,则表示该匹配块
为当前块对应的匹配块,具体请参照图4,若图4中当前块的子块1、16的哈希值与匹配块中
的子块1、16相同,则该匹配块为当前块对应的匹配块。
索范围更广,进而得到更佳的匹配块的选择,并搜索得到更佳的当前块的最终块矢量。
留的符合要求的匹配块,遍历所有块预测矢量候选列表中的预测矢量对应的编码代价。选
择编码代价最小的匹配块作为最终匹配块,即最终匹配块对应的块矢量为最终块矢量。具
体的,在计算编码代价时,通过匹配块的块矢量减去最终块预测矢量候选列表中的预测矢
量得到块矢量差,计算最终块预测矢量候选列表中的预测矢量编码所需的比特数以及块矢
量差编码所需的比特数,进而选的编码代价最小的匹配块作为最终匹配块,并记录其对应
的预测矢量的索引,即该预测矢量属于上述7中类型中的哪一类。
搜索得到最终块矢量的精确性。
所述当前块哈希值相同的子块的数量大于预设阈值,所述预设阈值小于所述当前块中所述
子块的总数,和/或所述匹配块与所述当前块指定位置的所述子块的哈希值相同。
角。
方法规范性限制的块的预测矢量为起点进行搜索;或者先对最终块预测矢量候选列表中满
足帧内块复制预测方法规范性限制的块进行编码代价计算,选择编码代价最小的块矢量作
为起点进行运动搜索,若没有满足帧内块复制预测方法规范性限制的块,则以(0,0)为起点
进行搜索。本方案中,除了选择块预测矢量候选列表中编码代价最小的块矢量作为起点之
外,还以当前块的左上角为起点进行搜索。具体的,在进行运动搜索时,需要设置搜索范围,
即预测矢量指向的点的水平垂直方向(‑M,M)范围,即以预测矢量指向的点为起点向上下左
右各偏移M个像素构成的矩形搜索范围。其中M可选取32和64。若该搜索范围某一侧超出图
像边界,则需要将该侧限制到图像边界内。一般情况下,在上述搜索范围内,以预测矢量为
起点的正上方、正左方、正下方和正右方四个方向的已编码块进行搜索,且搜索到的匹配块
需要符合帧内块复制预测方法规范性限制,搜索方向由远及近。具体的,设置一个子像素的
搜索步长,不能超过上述搜索范围,在搜索到匹配块后,比较搜索到的匹配块的编码代价,
选择编码代价最小的块作为最终匹配块,其对应的块矢量为最终块矢量,记录当前作为起
点的预测矢量的索引。
帧内块复制预测方法规范性限制。通过比较编码代价,最终得到当前块的最终块矢量,记录
当前预测矢量的索引。搜索过程中如果某块矢量/预测矢量对应的编码代价小于某阈值时,
直接采用该块矢量作为当前块的最终块矢量,并记录当前的预测矢量的索引,退出运动搜
索过程。
行运动搜索。也可以分别通过哈希匹配及运动搜索确定最终块矢量,若确定的最终块矢量
不同,则根据编码代价选择合适的最终块矢量。
搜索。搜索完后也要进行编码代价比较。或者直接默认把当前块左上角位置为起点进行运
动搜索后的搜索结果加入编码代价比较。
高后续搜索得到最终块矢量的精确性。
的左上角。
量化、反量化反变换得到当前块进行运动补偿后的第一预测块。
价,则滤波标记用于表示进行滤波,若第一预测块的编码代价小于第二预测块的编码代价,
则滤波标记用于表示不进行滤波。
的编码开销,以此来确定是否进行滤波。
55。
加广泛。
信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器
件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器
也可以是任何常规的处理器等。
制器指定的位置存入和取出信息。有了存储器,帧内块复制预测装置才有记忆功能,才能保
证正常工作。帧内块复制预测装置的存储器按用途存储器可分为主存储器(内存) 和辅助
存储器(外存),也有分为外部存储器和内部存储器的分类方法。外存通常是磁性介质或光
盘等,能长期保存信息。内存指主板上的存储部件,用来存放当前正在执行的数据和程序,
但仅用于暂时存放程序和数据,关闭电源或断电,数据会丢失。
分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可
以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨
论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合
或通信连接,可以是电性,机械或其它的形式。
单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目
的。
元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现
出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备
(可以是个人计算机,系统服务器,或者网络设备等)或处理器(processor)执行本申请各个
实施方式方法的全部或部分步骤。
件产品的形式存储在上述存储介质中,包括若干指令用以使得一台计算机设备(可以是个
人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式方法
的全部或部分步骤。而前述的存储装置包括:U盘、移动硬盘、只读存储器(ROM,Read‑Only
Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程
序代码的介质,或者是计算机、服务器、手机、平板等终端设备。
领域,均同理包括在本发明的专利保护范围内。