CN110944209B - 运动矢量的确定方法和装置 - Google Patents

运动矢量的确定方法和装置 Download PDF

Info

Publication number
CN110944209B
CN110944209B CN201811531038.6A CN201811531038A CN110944209B CN 110944209 B CN110944209 B CN 110944209B CN 201811531038 A CN201811531038 A CN 201811531038A CN 110944209 B CN110944209 B CN 110944209B
Authority
CN
China
Prior art keywords
prediction block
distortion value
matching distortion
prediction
matching
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201811531038.6A
Other languages
English (en)
Other versions
CN110944209A (zh
Inventor
陈旭
郑建铧
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202210183278.1A priority Critical patent/CN114727114B/zh
Priority to PCT/CN2019/107305 priority patent/WO2020057664A1/zh
Priority to EP19861316.8A priority patent/EP3846472A4/en
Publication of CN110944209A publication Critical patent/CN110944209A/zh
Priority to US17/206,767 priority patent/US11259042B2/en
Priority to US17/576,261 priority patent/US20220141482A1/en
Application granted granted Critical
Publication of CN110944209B publication Critical patent/CN110944209B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/567Motion estimation based on rate distortion criteria

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本申请提供一种运动矢量的确定方法和装置,仅分别计算第一预测块与第五预测块之间的匹配失真值、第二预测块与第六预测块之间的匹配失真值、第三预测块与第七预测块之间的匹配失真值、第四预测块与第八预测块之间的匹配失真值,第一、二、三、四预测块分别为前向预测块向上下左右偏移时得到的预测块,第五、六、七、八预测块分别为后向预测块在后向参考帧中向下、上、右、左偏移时得到的预测块,根据各匹配失真值之间的大小关系,确定目标前、后向预测块,根据目标前、后向预测块确定当前块的目标运动矢量。每次匹配时只需要计算上下左右4个方向偏移后的预测块之间的匹配失真值,从而减少了匹配失真值的计算量,提高了运动矢量的计算效率。

Description

运动矢量的确定方法和装置
技术领域
本申请涉及视频编解码技术,尤其涉及一种运动矢量的确定方法和装置。
背景技术
目前,常用的视频编码方法采用单向帧间预测和双向帧间预测,单向帧间预测仅根据当前块的一个参考块生成当前块的预测块,双向帧间预测根据至少两个参考块生成当前块的预测块,该至少两个参考块可来自于同一个参考帧或者不同的参考帧。为了使得解码端能够成功解码,编码端需要将当前块的运动信息发送给解码端,当前块的运动信息可以包括:参考帧索引值、运动矢量预测值(motion Vector Predictor,MVP)和运动矢量差(Motion Vector Difference,MVD)。
现有技术中,在双向帧间预测过程中,采用解码端运动矢量修正(decoder-sidemotion vector refinement,DMVR)技术计算运动矢量,在计算运动矢量时需要通过块匹配算法确定当前块的最佳匹配块(即预测块),在确定当前块的最佳匹配块时至少需要5次匹配(即上下左右、斜上或斜下分别进行一次匹配),匹配复杂度高。每次匹配需要计算预测块的匹配失真值时,现有技术在计算匹配失真值时,除了需要计算预测块之间的差值,还需要计算预测块的均值,使得匹配失真值计算过于复杂。
发明内容
本申请提供一种运动矢量的确定方法和装置,能够减少匹配失真值的计算量,提高了运动矢量的计算效率。
第一方面,本申请实施例提供一种运动矢量的确定方法,包括:
计算当前块的前向预测块与后向预测块之间的第一匹配失真值;
仅分别计算第一预测块与第五预测块之间的第二匹配失真值、第二预测块与第六预测块之间的第三匹配失真值、第三预测块与第七预测块之间的第四匹配失真值、第四预测块与第八预测块之间的第五匹配失真值;其中,所述第一预测块、所述第二预测块、所述第三预测块、所述第四预测块分别为所述前向预测块在前向参考帧中向上、下、左、右偏移时得到的预测块;所述第五预测块、所述第六预测块、所述第七预测块、所述第八预测块分别为所述后向预测块在后向参考帧中向下、上、右、左偏移时得到的预测块;
根据所述第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值和第五匹配失真值之间的大小关系,确定目标前向预测块和目标后向预测块;
根据所述目标前向预测块和所述目标后向预测块,确定所述当前块的目标运动矢量。
所述方法在每次匹配搜索时,只需要计算前向预测块和后向预测块在上下左右4个方向偏移后的预测块之间的匹配失真值,而现有技术中,每次匹配搜索时至需要计算前向预测块和后向预测块在上下左右、对角方向共5个方向偏移后的预测块之间的匹配失真值,从而减少了匹配失真值的计算量,提高了运动矢量的计算效率。
在一种可能的实施方式中,所述根据所述第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值和第五匹配失真值之间的大小关系,确定目标前向预测块和目标后向预测块,包括:
从所述第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值和第五匹配失真值中确定最小匹配失真值;
确定所述最小匹配失真值对应的所述前向预测块、所述第一预测块、所述第二预测块、所述第三预测块或所述第四预测块为所述目标前向预测块,确定所述最小匹配失真值对应的所述后向预测块、所述第五预测块、所述第六预测块、所述第七预测块或所述第八预测块为所述目标后向预测块。
在又一种可能的实施方式中,所述第一预测块、所述第二预测块、所述第三预测块、所述第四预测块分别为所述前向预测块按照第一像素精度在前向参考帧中向上、下、左、右偏移时得到的预测块,所述第五预测块、所述第六预测块、所述第七预测块、所述第八预测块分别为所述后向预测块按照所述第一像素精度在后向参考帧中向下、上、右、左偏移时得到的预测块;
所述根据所述第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值和第五匹配失真值之间的大小关系,确定目标前向预测块和目标后向预测块,包括:
当所述第二匹配失真值、第三匹配失真值、第四匹配失真值和第五匹配失真值均大于或等于所述第一匹配失真值时,仅分别计算第九预测块与第十三预测块之间的第六匹配失真值、第十预测块与第十四预测块之间的第七匹配失真值、第十一预测块与第十五预测块之间的第八匹配失真值、第十二预测块与第十六预测块之间的第九匹配失真值;所述第九预测块、所述第十预测块、所述第十一预测块、所述第十二预测块分别为所述前向预测块按照第二像素精度在所述前向参考帧中向上、下、左、右偏移时得到的预测块,所述第十三预测块、所述第十四预测块、所述第十五预测块、所述第十六预测块分别为所述后向预测块按照所述第二像素精度在所述后向参考帧中向下、上、右、左偏移时得到的预测块;
从所述第一匹配失真值、第六匹配失真值、第七匹配失真值、第八匹配失真值和第九匹配失真值中确定最小匹配失真值;
确定所述最小匹配失真值对应的所述前向预测块、所述第九预测块、所述第十预测块、所述第十一预测块或所述第十二预测块为所述目标前向预测块,确定所述最小匹配失真值对应的所述后向预测块、所述第十三预测块、所述第十四预测块、所述第十五预测块或所述第十六预测块为所述目标后向预测块。
在一种可能的实施方式中,所述第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值、第五匹配失真值、第六匹配失真值、第七匹配失真值、第八匹配失真值和第九匹配失真值中的任意一个匹配失真值包括:两个预测块之间的SAD;
所述SAD通过如下公式计算:
Figure BDA0001905652970000021
其中,当P0[n]为所述前向预测块、所述第一预测块、所述第二预测块、所述第三预测块、所述第四预测块、所述第九预测块、所述第十预测块、所述第十一预测块或所述第十二预测块中的像素点的像素值时,P1[n]对应地为所述后向预测块、所述第五预测块、所述第六预测块、所述第七预测块、所述第八预测块、所述第十三预测块、所述第十四预测块、所述第十五预测块或所述第十六预测块中的像素点的像素值,P0[n]和P1[n]在两个预测块中的对应位置相同,L为预测块内的像素点的个数,K为两个预测块之间的均值;
K通过如下公式计算:
K=(∑0≤iM<,0≤j<NP0[i][j]-∑0≤iM<,0≤j<NP1[i][j])/M*N
其中,M为预测块采样后宽度方向的像素点个数,N为预测块采样后高度方向的像素点个数,i和j为像素点的编号,当P0[i][j]为所述前向预测块、所述第一预测块、所述第二预测块、所述第三预测块、所述第四预测块、所述第九预测块、所述第十预测块、所述第十一预测块或所述第十二预测块采样后的像素点的像素值时,P1[i][j]对应地为所述后向预测块、所述第五预测块、所述第六预测块、所述第七预测块、所述第八预测块、所述第十三预测块、所述第十四预测块、所述第十五预测块或所述第十六预测块采样后的像素点的像素值,P0[i][j]和P1[i][j]在两个预测块中的对应位置相同。
该方式中在计算K时,对预测块进行了采样,从而使得K的计算量减少,降低了匹配失真值的计算复杂度。
在一种可能的实施方式中,所述第一像素精度为整像素精度,所述第二像素精度为半像素精度。
在使用第一像素精度没有匹配到预测时,采用更精细化的第二像素精度进行匹配搜索,从而使得确定的目标前向预测块和目标后向预测块更加准确。
在一种可能的实施方式中,所述SAD通过如下公式计算:
Figure BDA0001905652970000031
其中,当P0[n]为所述前向预测块、所述第一预测块、所述第二预测块、所述第三预测块、所述第四预测块、所述第九预测块、所述第十预测块、所述第十一预测块或所述第十二预测块中的像素点的像素值时,P1[n]对应地为所述后向预测块、所述第五预测块、所述第六预测块、所述第七预测块、所述第八预测块、所述第十三预测块、所述第十四预测块、所述第十五预测块或所述第十六预测块中的像素点的像素值,P0[n]和P1[n]在两个预测块中的对应位置相同,L为预测块内的像素点的个数。
该方式中,在计算匹配失真值时不需要计算两个预测块之间的均值,从而简化了匹配失真值的计算。
在一种可能的实施方式中,P0[n]为所述前向预测块、所述第一预测块、所述第二预测块、所述第三预测块、所述第四预测块、所述第九预测块、所述第十预测块、所述第十一预测块或所述第十二预测块采样后的像素点的像素值时,P1[n]对应地为所述后向预测块、所述第五预测块、所述第六预测块、所述第七预测块、所述第八预测块、所述第十三预测块、所述第十四预测块、所述第十五预测块或所述第十六预测块采样后的像素点的像素值,P0[n]和P1[n]在采样后的两个预测块中的对应位置相同,L为采样后的预测块内的像素点的个数。
该方式中,通过采样减少了SAD的计算量,降低了匹配失真值的计算复杂度。
第二方面,本申请实施例提供一种运动矢量的确定方法,包括:
根据当前块的前向预测块和后向预测块,确定合成预测块;
计算所述第一预测块和所述合成预测块之间的第一匹配失真值,所述第一预测块为所述前向预测块或者所述后向预测块;
仅分别计算第二预测块与所述合成预测块之间的第二匹配失真值、第三预测块与所述合成预测块之间的第三匹配失真值、第四预测块与所述合成预测块之间的第四匹配失真值、第五预测块与所述合成预测块之间的第五匹配失真值;其中,所述第二预测块、所述第三预测块、所述第四预测块、所述第五预测块分别为所述第一预测块在参考帧中向上、下、左、右偏移时得到的预测块;
根据第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值和第五匹配失真值之间的大小关系,确定目标预测块;
根据所述目标预测块,确定所述当前块的目标运动矢量。
所述方法在每次匹配搜索时,只需要计算前向预测块和后向预测块在上下左右4个方向偏移后的预测块之间的匹配失真值,而现有技术中,每次匹配搜索时至需要计算前向预测块和后向预测块在上下左右、对角方向共5个方向偏移后的预测块之间的匹配失真值,从而减少了匹配失真值的计算量,提高了运动矢量的计算效率。
在一种可能的实施方式中,所述根据第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值和第五匹配失真值之间的大小关系,确定目标预测块,包括:
当所述第一预测块为所述前向预测块时,从所述前向预测块对应的第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值和第五匹配失真值中,确定第一最小匹配失真值;
确定所述第一最小匹配失真值对应的所述前向预测块、所述第二预测块、所述第三预测块、所述第四预测块或所述第五预测块为所述目标预测块;
当所述第一预测块为所述后向预测块时,从所述后向预测块对应的第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值和第五匹配失真值中,确定第二最小匹配失真值;
确定所述第二最小匹配失真值对应的所述后向预测块、所述第二预测块、所述第三预测块、所述第四预测块或所述第五预测块为所述目标预测块。
在另一种可能的实施方式中,所述第二预测块、所述第三预测块、所述第四预测块、所述第五预测块分别为所述第一预测块按照第一像素精度,在参考帧中向上、下、左、右偏移时得到的预测块;
所述根据第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值和第五匹配失真值之间的大小关系,确定目标预测块,包括:
当所述第二匹配失真值、第三匹配失真值、第四匹配失真值和第五匹配失真值均大于或等于所述第一匹配失真值时,仅分别计算第六预测块与所述合成预测块之间的第六匹配失真值、第七预测块与所述合成预测块之间的第七匹配失真值、第八预测块与所述合成预测块之间的第八匹配失真值、第九预测块与所述合成预测块之间的第九匹配失真值;其中,所述第六预测块、所述第七预测块、所述第八预测块、所述第九预测块分别为所述第一预测块按照第二像素精度在所述参考帧中向上、下、左、右偏移时得到的预测块;
当所述第一预测块为所述前向预测块时,从所述第一匹配失真值、第六匹配失真值、第七匹配失真值、第八匹配失真值和第九匹配失真值中,确定第一最小匹配失真值;
确定所述第一最小匹配失真值对应的所述前向预测块、所述第六预测块、所述第七预测块、所述第八预测块或所述第九预测块为所述目标预测块;
当所述第一预测块为所述后向预测块时,从所述第一匹配失真值、第六匹配失真值、第七匹配失真值、第八匹配失真值和第九匹配失真值中,确定第二最小匹配失真值;
确定所述第二最小匹配失真值对应的所述后向预测块、所述第六预测块、所述第七预测块、所述第八预测块或所述第九预测块为所述目标预测块。
在一种可能的实施方式中,所述第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值、第五匹配失真值、第六匹配失真值、第七匹配失真值、第八匹配失真值和第九匹配失真值中的任意一个匹配失真值包括:两个预测块之间的绝对误差和SAD;
所述SAD通过如下公式计算:
Figure BDA0001905652970000051
其中,P0[n]为所述第一预测块、所述第二预测块、所述第三预测块、所述第四预测块、所述第五预测块、所述第六预测块、所述第七预测块、所述第八预测块、所述第九预测块中的像素点的像素值,P1[n]为所述合成预测块中的像素点的像素值,P0[n]和P1[n]在两个预测块中的对应位置相同,L为预测块内的像素点的个数,K为两个预测块之间的均值;
K通过如下公式计算:
K=(∑0≤iM<,0≤j<NP0[i][j]-∑0≤iM<,0≤j<NP1[i][j])/M*N
其中,M为预测块采样后宽度方向的像素点个数,N为预测块采样后高度方向的像素点个数,i和j为像素点的编号,P0[i][j]为所述第一预测块、所述第二预测块、所述第三预测块、所述第四预测块、所述第五预测块所述第六预测块、所述第七预测块、所述第八预测块、所述第九预测块采样后的像素点的像素值,P1[i][j]为所述合成预测块采样后的像素点的像素值,P0[i][j]和P1[i][j]在两个预测块中的对应位置相同。
该方式中在计算K时,对预测块进行了采样,从而使得K的计算量减少,降低了匹配失真值的计算复杂度。
在一种可能的实施方式中,所述第一像素精度为整像素精度,所述第二像素精度为半像素精度。
在使用第一像素精度没有匹配到预测时,采用更精细化的第二像素精度进行匹配搜索,从而使得确定的目标前向预测块和目标后向预测块更加准确。
在一种可能的实施方式中,所述SAD通过如下公式计算:
Figure BDA0001905652970000052
其中,P0[n]为所述第一预测块、所述第二预测块、所述第三预测块、所述第四预测块、所述第五预测块、所述第六预测块、所述第七预测块、所述第八预测块、所述第九预测块中的像素点的像素值,P1[n]为所述合成预测块中的像素点的像素值,P0[n]和P1[n]在两个预测块中的对应位置相同,L为预测块内的像素点的个数。
该方式中,在计算匹配失真值时不需要计算两个预测块之间的均值,从而简化了匹配失真值的计算。
在一种可能的实施方式中,P0[n]为所述第一预测块、所述第二预测块、所述第三预测块、所述第四预测块、所述第五预测块、所述第六预测块、所述第七预测块、所述第八预测块、所述第九预测块采样后的像素点的像素值,P1[n]为所述合成预测块采样后的像素点的像素值,P0[n]和P1[n]在两个采样后的预测块中的对应位置相同,L为采样后的预测块内的像素点的个数。
该方式中,通过采样减少了SAD的计算量,降低了匹配失真值的计算复杂度。
第三方面,本申请实施例提供一种运动矢量的确定方法,包括:
计算当前块的前向预测块与后向预测块之间的第一匹配失真值;
分别计算第一预测块与第六预测块之间的第二匹配失真值、第二预测块与第七预测块之间的第三匹配失真值、第三预测块与第八预测块之间的第四匹配失真值、第四预测块与第九预测块之间的第五匹配失真值、第五预测块与第十预测块之间的第六匹配失真值;其中,所述第一预测块、所述第二预测块、所述第三预测块、所述第四预测块、所述第五预测块分别为所述前向预测块在前向参考帧中向上、下、左、右、对角方向偏移时得到的预测块;所述第六预测块、所述第七预测块、所述第八预测块、所述第九预测块、所述第十预测块分别为所述后向预测块在后向参考帧中向下、上、右、左、所述对角方向的反方向偏移时得到的预测块,当所述对角方向为左上、左下、右上或右下时,所述对角方向的反方向对应为右下、右上、左下或左上;
所述第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值、第五匹配失真值、第六匹配失真值中的任意一个匹配失真值包括:两个预测块之间的SAD;
所述SAD通过如下公式计算:
Figure BDA0001905652970000061
其中,当P0[n]为所述前向预测块、所述第一预测块、所述第二预测块、所述第三预测块、所述第四预测块或所述第五预测块中的像素点的像素值时,P1[n]对应地为所述后向预测块、所述第六预测块、所述第七预测块、所述第八预测块、所述第九预测块或所述第十预测块中的像素点的像素值,P0[n]和P1[n]在两个预测块中的对应位置相同,L为预测块内的像素点的个数,K为预测块的均值;
K通过如下公式计算:
K=(∑0≤iM<,0≤j<NP0[i][j]-∑0≤iM<,0≤j<NP1[i][j])/M*N
其中,M为预测块采样后宽度方向的像素点个数,N为预测块采样后高度方向的像素点个数,i和j为像素点的编号,当P0[i][j]为所述前向预测块、所述第一预测块、所述第二预测块、所述第三预测块、所述第四预测块或所述第五预测块采样后的像素点的像素值时,P1[i][j]对应地为所述后向预测块、所述第六预测块、所述第七预测块、所述第八预测块、所述第九预测块或所述第十预测块采样后的像素点的像素值,P0[i][j]和P1[i][j]在两个预测块中的对应位置相同;
根据所述第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值、第五匹配失真值和第六匹配失真值之间的大小关系,确定目标前向预测块和目标后向预测块;
根据所述目标前向预测块和所述目标后向预测块,确定所述当前块的目标运动矢量。
该方式中在计算K时,对预测块进行了采样,从而使得K的计算量减少,降低了匹配失真值的计算复杂度。
在一种可能的实施方式中,所述根据所述第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值、第五匹配失真值和第六匹配失真值之间的大小关系,确定目标前向预测块和目标后向预测块,包括:
从所述第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值、第五匹配失真值和第六匹配失真值中确定最小匹配失真值;
确定所述最小匹配失真值对应的所述前向预测块、所述第一预测块、所述第二预测块、所述第三预测块、所述第四预测块或所述第五预测块为所述目标前向预测块,确定所述最小匹配失真值对应的所述后向预测块、所述第六预测块、所述第七预测块、所述第八预测块、所述第九预测块或所述第十预测块为所述目标后向预测块。
在一种可能的实施方式中,所述第一预测块、所述第二预测块、所述第三预测块、所述第四预测块、所述第五预测块分别为所述前向预测块按照第一像素精度在前向参考帧中向上、下、左、右、对角方向偏移时得到的预测块;所述第六预测块、所述第七预测块、所述第八预测块、所述第九预测块、所述第十预测块分别为所述后向预测块按照所述第一像素精度在后向参考帧中向下、上、右、左、所述对角方向的反方向偏移时得到的预测块;
所述根据所述第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值、第五匹配失真值和第六匹配失真值之间的大小关系,确定目标前向预测块和目标后向预测块,包括:
当所述第二匹配失真值、第三匹配失真值、第四匹配失真值、第五匹配失真值和第六匹配失真值均大于或等于所述第一匹配失真值时,分别计算第十一预测块与第十六预测块之间的第七匹配失真值、第十二预测块与第十七预测块之间的第八匹配失真值、第十三预测块与第十八预测块之间的第九匹配失真值、第十四预测块与第十九预测块之间的第十匹配失真值、第十五预测块与第二十预测块之间的第十一匹配失真值;其中,所述第十一预测块、所述第十二预测块、所述第十三预测块、所述第十四预测块、所述第十五预测块分别为所述前向预测块按照第二像素精度在前向参考帧中向上、下、左、右、对角方向偏移时得到的预测块;所述第十六预测块、所述第十七预测块、所述第十八预测块、所述第十九预测块、所述第二十预测块分别为所述后向预测块按照所述第二像素精度在后向参考帧中向下、上、右、左、所述对角方向的反方向偏移时得到的预测块;
从所述第一匹配失真值、第七匹配失真值、第八匹配失真值、第九匹配失真值、第十匹配失真值和第十一匹配失真值中确定最小匹配失真值;
确定所述最小匹配失真值对应的所述前向预测块、所述第十一预测块、所述第十二预测块、所述第十三预测块、所述第十四预测块或所述第十五预测块为所述目标前向预测块,确定所述最小匹配失真值对应的所述后向预测块、所述第十六预测块、所述第十七预测块、所述第十八预测块、所述第十九预测块或所述第二十预测块为所述目标后向预测块。
在一种可能的实施方式中,所述第一像素精度为整像素精度,所述第二像素精度为半像素精度。
在使用第一像素精度没有匹配到预测时,采用更精细化的第二像素精度进行匹配搜索,从而使得确定的目标前向预测块和目标后向预测块更加准确。
在一种可能的实施方式中,P0[n]为所述前向预测块、所述第一预测块、所述第二预测块、所述第三预测块、所述第四预测块或所述第五预测块采样后的像素点的像素值时,P1[n]对应地为所述后向预测块、所述第六预测块、所述第七预测块、所述第八预测块、所述第九预测块或所述第十预测块采样后的像素点的像素值,P0[n]和P1[n]在两个采样后的预测块中的对应位置相同,L为采样后的预测块内的像素点的个数。
该方式中,通过采样减少了SAD的计算量,降低了匹配失真值的计算复杂度。
第四方面,本申请实施例提供一种运动矢量的确定方法,包括:
根据当前块的前向预测块和后向预测块,确定合成预测块;
计算所述第一预测块和所述合成预测块之间的第一匹配失真值,所述第一预测块为所述前向预测块或者所述后向预测块;
分别计算第二预测块与所述合成预测块之间的第二匹配失真值、第三预测块与所述合成预测块之间的第三匹配失真值、第四预测块与所述合成预测块之间的第四匹配失真值、第五预测块与所述合成预测块之间的第五匹配失真值、第六预测块与所述合成预测块之间的第六匹配失真值;其中,所述第二预测块、所述第三预测块、所述第四预测块、所述第五预测块、所述第六预测块分别为所述第一预测块在参考帧中向上、下、左、右、对角方向偏移时得到的预测块,当所述对角方向为左上、左下、右上或右下时,所述对角方向的反方向对应为右下、右上、左下或左上;
所述第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值、第五匹配失真值、第六匹配失真值中的任意一个匹配失真值包括:两个预测块之间的绝对误差和SAD;
所述SAD通过如下公式计算:
Figure BDA0001905652970000081
其中,P0[n]为所述第一预测块、所述第二预测块、所述第三预测块、所述第四预测块、所述第五预测块或所述第六预测块中的像素点的像素值,P1[n]为所述合成预测块中的像素点的像素值,P0[n]和P1[n]在两个预测块中的对应位置相同,L为预测块内的像素点的个数,K为预测块的均值;
K通过如下公式计算:
K=(∑0≤iM<,0≤j<NP0[i][j]-∑0≤iM<,0≤j<NP1[i][j])/M*N
其中,M为预测块采样后宽度方向的像素点个数,N为预测块采样后高度方向的像素点个数,i和j为像素点的编号,P0[i][j]为所述第一预测块、所述第二预测块、所述第三预测块、所述第四预测块、所述第五预测块或所述第六预测块采样后的像素点的像素值,P1[i][j]为所述合成预测块采样后的像素点的像素值,P0[i][j]和P1[i][j]在两个预测块中的对应位置相同;
根据第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值、第五匹配失真值和第六匹配失真值之间的大小关系,确定目标预测块;
根据所述目标预测块,确定所述当前块的目标运动矢量。
该方式中,在计算匹配失真值时不需要计算两个预测块之间的均值,从而简化了匹配失真值的计算。
在一种可能的实施方式中,所述根据第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值、第五匹配失真值和第六匹配失真值之间的大小关系,确定目标预测块,包括:
当所述第一预测块为所述前向预测块时,从所述前向预测块对应的第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值、第五匹配失真值和第六匹配失真值中,确定第一最小匹配失真值;
确定所述第一最小匹配失真值对应的所述前向预测块、所述第二预测块、所述第三预测块、所述第四预测块、所述第五预测块或所述第六预测块为所述目标预测块;
当所述第一预测块为所述后向预测块时,从所述后向预测块对应的第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值、第五匹配失真值中和第六匹配失真值,确定第二最小匹配失真值;
确定所述第二最小匹配失真值对应的所述后向预测块、所述第二预测块、所述第三预测块、所述第四预测块、所述第五预测块或所述第六预测块为所述目标预测块。
在一种可能的实施方式中,所述第二预测块、所述第三预测块、所述第四预测块、所述第五预测块、所述第六预测块分别为所述第一预测块按照第一像素精度在参考帧中向上、下、左、右、对角方向偏移时得到的预测块;
所述根据第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值、第五匹配失真值和第六匹配失真值之间的大小关系,确定目标预测块,包括:
当所述第二匹配失真值、第三匹配失真值、第四匹配失真值、第五匹配失真值和第六匹配失真值均大于或等于所述第一匹配失真值时,分别计算第七预测块与所述合成预测块之间的第七匹配失真值、第八预测块与所述合成预测块之间的第八匹配失真值、第九预测块与所述合成预测块之间的第九匹配失真值、第十预测块与所述合成预测块之间的第十匹配失真值、第十一预测块与所述合成预测块之间的第十一匹配失真值;其中,所述第七预测块、所述第八预测块、所述第九预测块、所述第十预测块、所述第十一预测块分别为所述第一预测块按照第二像素精度在所述参考帧中向上、下、左、右、对角方向偏移时得到的预测块;
当所述第一预测块为所述前向预测块时,从所述第一匹配失真值、第七匹配失真值、第八匹配失真值、第九匹配失真值、第十匹配失真值和第十一匹配失真值中,确定第一最小匹配失真值;
确定所述第一最小匹配失真值对应的前向预测块、所述第七预测块、所述第八预测块、所述第九预测块、所述第十预测块或所述第十一预测块为所述目标预测块;
当所述第一预测块为所述后向预测块时,从所述第一匹配失真值、第七匹配失真值、第八匹配失真值、第九匹配失真值、第十匹配失真值和第十一匹配失真值中,确定第二最小匹配失真值;
确定所述第二最小匹配失真值对应的所述后向预测块、所述第七预测块、所述第八预测块、所述第九预测块、所述第十预测块或所述第十一预测块为所述目标预测块。
在一种可能的实施方式中,所述第一像素精度为整像素精度,所述第二像素精度为半像素精度。
该方式中,通过采样减少了SAD的计算量,降低了匹配失真值的计算复杂度。
在一种可能的实施方式中,P0[n]为所述第一预测块、所述第二预测块、所述第三预测块、所述第四预测块、所述第五预测块或所述第六预测块采样后的像素点的像素值,P1[n]为所述合成预测块采样后的像素点的像素值,P0[n]和P1[n]在两个采样后的预测块中的对应位置相同,L为采样后的预测块内的像素点的个数。
该方式中,通过采样减少了SAD的计算量,降低了匹配失真值的计算复杂度。
第五方面,本申请实施例提供一种运动矢量的确定装置,包括:
计算模块,用于计算当前块的前向预测块与后向预测块之间的第一匹配失真值;
所述计算模块,还用于仅分别计算第一预测块与第五预测块之间的第二匹配失真值、第二预测块与第六预测块之间的第三匹配失真值、第三预测块与第七预测块之间的第四匹配失真值、第四预测块与第八预测块之间的第五匹配失真值;其中,所述第一预测块、所述第二预测块、所述第三预测块、所述第四预测块分别为所述前向预测块在前向参考帧中向上、下、左、右偏移时得到的预测块;所述第五预测块、所述第六预测块、所述第七预测块、所述第八预测块分别为所述后向预测块在后向参考帧中向下、上、右、左偏移时得到的预测块;
第一确定模块,用于根据所述第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值和第五匹配失真值之间的大小关系,确定目标前向预测块和目标后向预测块;
第二确定模块,用于根据所述目标前向预测块和所述目标后向预测块,确定所述当前块的目标运动矢量。
在一种可能的实施方式中,所述第一确定模块具体用于:
从所述第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值和第五匹配失真值中确定最小匹配失真值;
确定所述最小匹配失真值对应的所述前向预测块、所述第一预测块、所述第二预测块、所述第三预测块或所述第四预测块为所述目标前向预测块,确定所述最小匹配失真值对应的所述后向预测块、所述第五预测块、所述第六预测块、所述第七预测块或所述第八预测块为所述目标后向预测块。
在一种可能的实施方式中,所述第一预测块、所述第二预测块、所述第三预测块、所述第四预测块分别为所述前向预测块按照第一像素精度在前向参考帧中向上、下、左、右偏移时得到的预测块,所述第五预测块、所述第六预测块、所述第七预测块、所述第八预测块分别为所述后向预测块按照所述第一像素精度在后向参考帧中向下、上、右、左偏移时得到的预测块;
所述计算模块,还用于当所述第二匹配失真值、第三匹配失真值、第四匹配失真值和第五匹配失真值均大于或等于所述第一匹配失真值时,仅分别计算第九预测块与第十三预测块之间的第六匹配失真值、第十预测块与第十四预测块之间的第七匹配失真值、第十一预测块与第十五预测块之间的第八匹配失真值、第十二预测块与第十六预测块之间的第九匹配失真值;所述第九预测块、所述第十预测块、所述第十一预测块、所述第十二预测块分别为所述前向预测块按照第二像素精度在所述前向参考帧中向上、下、左、右偏移时得到的预测块,所述第十三预测块、所述第十四预测块、所述第十五预测块、所述第十六预测块分别为所述后向预测块按照所述第二像素精度在所述后向参考帧中向下、上、右、左偏移时得到的预测块;
所述第一确定模块具体用于:
从所述第一匹配失真值、第六匹配失真值、第七匹配失真值、第八匹配失真值和第九匹配失真值中确定最小匹配失真值;
确定所述最小匹配失真值对应的所述前向预测块、所述第九预测块、所述第十预测块、所述第十一预测块或所述第十二预测块为所述目标前向预测块,确定所述最小匹配失真值对应的所述后向预测块、所述第十三预测块、所述第十四预测块、所述第十五预测块或所述第十六预测块为所述目标后向预测块。
在一种可能的实施方式中,所述第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值、第五匹配失真值、第六匹配失真值、第七匹配失真值、第八匹配失真值和第九匹配失真值中的任意一个匹配失真值包括:两个预测块之间的SAD;
所述SAD通过如下公式计算:
Figure BDA0001905652970000101
其中,当P0[n]为所述前向预测块、所述第一预测块、所述第二预测块、所述第三预测块、所述第四预测块、所述第九预测块、所述第十预测块、所述第十一预测块或所述第十二预测块中的像素点的像素值时,P1[n]对应地为所述后向预测块、所述第五预测块、所述第六预测块、所述第七预测块、所述第八预测块、所述第十三预测块、所述第十四预测块、所述第十五预测块或所述第十六预测块中的像素点的像素值,P0[n]和P1[n]在两个预测块中的对应位置相同,L为预测块内的像素点的个数,K为两个预测块之间的均值;
K通过如下公式计算:
K=(∑0≤iM<,0≤j<NP0[i][j]-∑0≤iM<,0≤j<NP1[i][j])/M*N
其中,M为预测块采样后宽度方向的像素点个数,N为预测块采样后高度方向的像素点个数,i和j为像素点的编号,当P0[i][j]为所述前向预测块、所述第一预测块、所述第二预测块、所述第三预测块、所述第四预测块、所述第九预测块、所述第十预测块、所述第十一预测块或所述第十二预测块采样后的像素点的像素值时,P1[i][j]对应地为所述后向预测块、所述第五预测块、所述第六预测块、所述第七预测块、所述第八预测块、所述第十三预测块、所述第十四预测块、所述第十五预测块或所述第十六预测块采样后的像素点的像素值,P0[i][j]和P1[i][j]在两个预测块中的对应位置相同。
在一种可能的实施方式中,所述第一像素精度为整像素精度,所述第二像素精度为半像素精度。
在一种可能的实施方式中,所述SAD通过如下公式计算:
Figure BDA0001905652970000111
其中,当P0[n]为所述前向预测块、所述第一预测块、所述第二预测块、所述第三预测块、所述第四预测块、所述第九预测块、所述第十预测块、所述第十一预测块或所述第十二预测块中的像素点的像素值时,P1[n]对应地为所述后向预测块、所述第五预测块、所述第六预测块、所述第七预测块、所述第八预测块、所述第十三预测块、所述第十四预测块、所述第十五预测块或所述第十六预测块中的像素点的像素值,P0[n]和P1[n]在两个预测块中的对应位置相同,L为预测块内的像素点的个数。
在一种可能的实施方式中,当P0[n]为所述前向预测块、所述第一预测块、所述第二预测块、所述第三预测块、所述第四预测块、所述第九预测块、所述第十预测块、所述第十一预测块或所述第十二预测块采样后的像素点的像素值时,P1[n]对应地为所述后向预测块、所述第五预测块、所述第六预测块、所述第七预测块、所述第八预测块、所述第十三预测块、所述第十四预测块、所述第十五预测块或所述第十六预测块采样后的像素点的像素值,P0[n]和P1[n]在两个采样后的预测块中的对应位置相同,L为采样后的预测块内的像素点的个数。
第六方面,本申请实施例提供一种运动矢量的确定装置,包括:
合成模块,用于根据当前块的前向预测块和后向预测块,确定合成预测块;
计算模块,用于计算所述第一预测块和所述合成预测块之间的第一匹配失真值,所述第一预测块为所述前向预测块或者所述后向预测块;
所述计算模块,还用于仅分别计算第二预测块与所述合成预测块之间的第二匹配失真值、第三预测块与所述合成预测块之间的第三匹配失真值、第四预测块与所述合成预测块之间的第四匹配失真值、第五预测块与所述合成预测块之间的第五匹配失真值;其中,所述第二预测块、所述第三预测块、所述第四预测块、所述第五预测块分别为所述第一预测块在参考帧中向上、下、左、右偏移时得到的预测块;
第一确定模块,用于根据第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值和第五匹配失真值之间的大小关系,确定目标预测块;
第二确定模块,用于根据所述目标预测块,确定所述当前块的目标运动矢量。
在一种可能的实施方式中,所述第一确定模块具体用于:
当所述第一预测块为所述前向预测块时,从所述前向预测块对应的第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值和第五匹配失真值中,确定第一最小匹配失真值;
确定所述第一最小匹配失真值对应的所述前向预测块、所述第二预测块、所述第三预测块、所述第四预测块或所述第五预测块为所述目标预测块;
当所述第一预测块为所述后向预测块时,从所述后向预测块对应的第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值和第五匹配失真值中,确定第二最小匹配失真值;
确定所述第二最小匹配失真值对应的所述后向预测块、所述第二预测块、所述第三预测块、所述第四预测块或所述第五预测块为所述目标预测块。
在一种可能的实施方式中,所述第二预测块、所述第三预测块、所述第四预测块、所述第五预测块分别为所述第一预测块按照第一像素精度,在参考帧中向上、下、左、右偏移时得到的预测块;
所述计算模块,还用于当所述第二匹配失真值、第三匹配失真值、第四匹配失真值和第五匹配失真值均大于或等于所述第一匹配失真值时,仅分别计算第六预测块与所述合成预测块之间的第六匹配失真值、第七预测块与所述合成预测块之间的第七匹配失真值、第八预测块与所述合成预测块之间的第八匹配失真值、第九预测块与所述合成预测块之间的第九匹配失真值;其中,所述第六预测块、所述第七预测块、所述第八预测块、所述第九预测块分别为所述第一预测块按照第二像素精度在所述参考帧中向上、下、左、右偏移时得到的预测块;
所述第一确定模块具体用于:
当所述第一预测块为所述前向预测块时,从所述第一匹配失真值、第六匹配失真值、第七匹配失真值、第八匹配失真值和第九匹配失真值中,确定第一最小匹配失真值;
确定所述第一最小匹配失真值对应的所述前向预测块、所述第六预测块、所述第七预测块、所述第八预测块或所述第九预测块为所述目标预测块;
当所述第一预测块为所述后向预测块时,从所述第一匹配失真值、第六匹配失真值、第七匹配失真值、第八匹配失真值和第九匹配失真值中,确定第二最小匹配失真值;
确定所述第二最小匹配失真值对应的所述后向预测块、所述第六预测块、所述第七预测块、所述第八预测块或所述第九预测块为所述目标预测块。
在一种可能的实施方式中,所述第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值、第五匹配失真值、第六匹配失真值、第七匹配失真值、第八匹配失真值和第九匹配失真值中的任意一个匹配失真值包括:两个预测块之间的SAD;
所述SAD通过如下公式计算:
Figure BDA0001905652970000121
其中,P0[n]为所述第一预测块、所述第二预测块、所述第三预测块、所述第四预测块、所述第五预测块、所述第六预测块、所述第七预测块、所述第八预测块、所述第九预测块中的像素点的像素值,P1[n]为所述合成预测块中的像素点的像素值,P0[n]和P1[n]在两个预测块中的对应位置相同,L为预测块内的像素点的个数,K为两个预测块之间的均值;
K通过如下公式计算:
K=(∑0≤iM<,0≤j<NP0[i][j]-∑0≤iM<,0≤j<NP1[i][j])/M*N
其中,M为预测块采样后宽度方向的像素点个数,N为预测块采样后高度方向的像素点个数,i和j为像素点的编号,P0[i][j]为所述第一预测块、所述第二预测块、所述第三预测块、所述第四预测块、所述第五预测块所述第六预测块、所述第七预测块、所述第八预测块、所述第九预测块采样后的像素点的像素值,P1[i][j]为所述合成预测块采样后的像素点的像素值,P0[i][j]和P1[i][j]在两个预测块中的对应位置相同。
在一种可能的实施方式中,所述第一像素精度为整像素精度,所述第二像素精度为半像素精度。
在一种可能的实施方式中,所述SAD通过如下公式计算:
Figure BDA0001905652970000122
其中,P0[n]为所述第一预测块、所述第二预测块、所述第三预测块、所述第四预测块、所述第五预测块、所述第六预测块、所述第七预测块、所述第八预测块、所述第九预测块中的像素点的像素值,P1[n]为所述合成预测块中的像素点的像素值,P0[n]和P1[n]在两个预测块中的对应位置相同,L为预测块内的像素点的个数。
在一种可能的实施方式中,P0[n]为所述第一预测块、所述第二预测块、所述第三预测块、所述第四预测块、所述第五预测块、所述第六预测块、所述第七预测块、所述第八预测块、所述第九预测块采样后的像素点的像素值,P1[n]为所述合成预测块采样后的像素点的像素值,P0[n]和P1[n]在两个采样后的预测块中的对应位置相同,L为采样后的预测块内的像素点的个数。
第七方面,本申请实施例提供一种运动矢量的确定装置,包括:
计算模块,用于计算当前块的前向预测块与后向预测块之间的第一匹配失真值;
所述计算模块,还用于分别计算第一预测块与第六预测块之间的第二匹配失真值、第二预测块与第七预测块之间的第三匹配失真值、第三预测块与第八预测块之间的第四匹配失真值、第四预测块与第九预测块之间的第五匹配失真值、第五预测块与第十预测块之间的第六匹配失真值;其中,所述第一预测块、所述第二预测块、所述第三预测块、所述第四预测块、所述第五预测块分别为所述前向预测块在前向参考帧中向上、下、左、右、对角方向偏移时得到的预测块;所述第六预测块、所述第七预测块、所述第八预测块、所述第九预测块、所述第十预测块分别为所述后向预测块在后向参考帧中向下、上、右、左、所述对角方向的反方向偏移时得到的预测块,当所述对角方向为左上、左下、右上或右下时,所述对角方向的反方向对应为右下、右上、左下或左上;
所述第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值、第五匹配失真值、第六匹配失真值中的任意一个匹配失真值包括:两个预测块之间的绝对误差和SAD;
所述SAD通过如下公式计算:
Figure BDA0001905652970000131
其中,当P0[n]为所述前向预测块、所述第一预测块、所述第二预测块、所述第三预测块、所述第四预测块或所述第五预测块中的像素点的像素值时,P1[n]对应地为所述后向预测块、所述第六预测块、所述第七预测块、所述第八预测块、所述第九预测块或所述第十预测块中的像素点的像素值,P0[n]和P1[n]在两个预测块中的对应位置相同,L为预测块内的像素点的个数,K为预测块的均值;
K通过如下公式计算:
K=(∑0≤iM<,0≤j<NP0[i][j]-∑0≤iM<,0≤j<NP1[i][j])/M*N
其中,M为预测块采样后宽度方向的像素点个数,N为预测块采样后高度方向的像素点个数,i和j为像素点的编号,当P0[i][j]为所述前向预测块、所述第一预测块、所述第二预测块、所述第三预测块、所述第四预测块或所述第五预测块采样后的像素点的像素值时,P1[i][j]对应地为所述后向预测块、所述第六预测块、所述第七预测块、所述第八预测块、所述第九预测块或所述第十预测块采样后的像素点的像素值,P0[i][j]和P1[i][j]在两个预测块中的对应位置相同;
第一确定模块,用于根据所述第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值、第五匹配失真值和第六匹配失真值之间的大小关系,确定目标前向预测块和目标后向预测块;
第二确定模块,用于根据所述目标前向预测块和所述目标后向预测块,确定所述当前块的目标运动矢量。
在一种可能的实施方式中,所述第一确定模块具体用于:
从所述第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值、第五匹配失真值和第六匹配失真值中确定最小匹配失真值;
确定所述最小匹配失真值对应的所述前向预测块、所述第一预测块、所述第二预测块、所述第三预测块、所述第四预测块或所述第五预测块为所述目标前向预测块,确定所述最小匹配失真值对应的所述后向预测块、所述第六预测块、所述第七预测块、所述第八预测块、所述第九预测块或所述第十预测块为所述目标后向预测块。
在一种可能的实施方式中,所述第一预测块、所述第二预测块、所述第三预测块、所述第四预测块、所述第五预测块分别为所述前向预测块按照第一像素精度在前向参考帧中向上、下、左、右、对角方向偏移时得到的预测块;所述第六预测块、所述第七预测块、所述第八预测块、所述第九预测块、所述第十预测块分别为所述后向预测块按照所述第一像素精度在后向参考帧中向下、上、右、左、所述对角方向的反方向偏移时得到的预测块;
所述计算模块,还用于当所述第二匹配失真值、第三匹配失真值、第四匹配失真值、第五匹配失真值和第六匹配失真值均大于或等于所述第一匹配失真值时,分别计算第十一预测块与第十六预测块之间的第七匹配失真值、第十二预测块与第十七预测块之间的第八匹配失真值、第十三预测块与第十八预测块之间的第九匹配失真值、第十四预测块与第十九预测块之间的第十匹配失真值、第十五预测块与第二十预测块之间的第十一匹配失真值;其中,所述第十一预测块、所述第十二预测块、所述第十三预测块、所述第十四预测块、所述第十五预测块分别为所述前向预测块按照第二像素精度在前向参考帧中向上、下、左、右、对角方向偏移时得到的预测块;所述第十六预测块、所述第十七预测块、所述第十八预测块、所述第十九预测块、所述第二十预测块分别为所述后向预测块按照所述第二像素精度在后向参考帧中向下、上、右、左、所述对角方向的反方向偏移时得到的预测块;
所述第一确定模块具体用于:
从所述第一匹配失真值、第七匹配失真值、第八匹配失真值、第九匹配失真值、第十匹配失真值和第十一匹配失真值中确定最小匹配失真值;
确定所述最小匹配失真值对应的所述前向预测块、所述第十一预测块、所述第十二预测块、所述第十三预测块、所述第十四预测块或所述第十五预测块为所述目标前向预测块,确定所述最小匹配失真值对应的所述后向预测块、所述第十六预测块、所述第十七预测块、所述第十八预测块、所述第十九预测块或所述第二十预测块为所述目标后向预测块。
在一种可能的实施方式中,所述第一像素精度为整像素精度,所述第二像素精度为半像素精度。
在一种可能的实施方式中,当P0[n]为所述前向预测块、所述第一预测块、所述第二预测块、所述第三预测块、所述第四预测块或所述第五预测块采样后的像素点的像素值时,P1[n]对应地为所述后向预测块、所述第六预测块、所述第七预测块、所述第八预测块、所述第九预测块或所述第十预测块采样后的像素点的像素值,P0[n]和P1[n]在两个采样后的预测块中的对应位置相同,L为采样后的预测块内的像素点的个数。
第八方面,本申请实施例提供一种运动矢量的确定装置,包括:
合成模块,用于根据当前块的前向预测块和后向预测块,确定合成预测块;
计算模块,用于计算所述第一预测块和所述合成预测块之间的第一匹配失真值,所述第一预测块为所述前向预测块或者所述后向预测块;
所述计算模块,还用于分别计算第二预测块与所述合成预测块之间的第二匹配失真值、第三预测块与所述合成预测块之间的第三匹配失真值、第四预测块与所述合成预测块之间的第四匹配失真值、第五预测块与所述合成预测块之间的第五匹配失真值、第六预测块与所述合成预测块之间的第六匹配失真值;其中,所述第二预测块、所述第三预测块、所述第四预测块、所述第五预测块、所述第六预测块分别为所述第一预测块在参考帧中向上、下、左、右、对角方向偏移时得到的预测块,当所述对角方向为左上、左下、右上或右下时,所述对角方向的反方向对应为右下、右上、左下或左上;
所述第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值、第五匹配失真值、第六匹配失真值中的任意一个匹配失真值包括:两个预测块之间的SAD;
所述SAD通过如下公式计算:
Figure BDA0001905652970000151
其中,P0[n]为所述第一预测块、所述第二预测块、所述第三预测块、所述第四预测块、所述第五预测块或所述第六预测块中的像素点的像素值,P1[n]为所述合成预测块中的像素点的像素值,P0[n]和P1[n]在两个预测块中的对应位置相同,L为预测块内的像素点的个数,K为预测块的均值;
K通过如下公式计算:
K=(∑0≤iM<,0≤j<NP0[i][j]-∑0≤iM<,0≤j<NP1[i][j])/M*N
其中,M为预测块采样后宽度方向的像素点个数,N为预测块采样后高度方向的像素点个数,i和j为像素点的编号,P0[i][j]为所述第一预测块、所述第二预测块、所述第三预测块、所述第四预测块、所述第五预测块或所述第六预测块采样后的像素点的像素值,P1[i][j]为所述合成预测块采样后的像素点的像素值,P0[i][j]和P1[i][j]在两个预测块中的对应位置相同;
第一确定模块,用于根据第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值、第五匹配失真值和第六匹配失真值之间的大小关系,确定目标预测块;
第二确定模块,用于根据所述目标预测块,确定所述当前块的目标运动矢量。
在一种可能的实施方式中,所述第一确定模块具体用于:
当所述第一预测块为所述前向预测块时,从所述前向预测块对应的第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值、第五匹配失真值和第六匹配失真值中,确定第一最小匹配失真值;
确定所述第一最小匹配失真值对应的所述前向预测块、所述第二预测块、所述第三预测块、所述第四预测块、所述第五预测块或所述第六预测块为所述目标预测块;
当所述第一预测块为所述后向预测块时,从所述后向预测块对应的第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值、第五匹配失真值中和第六匹配失真值,确定第二最小匹配失真值;
确定所述第二最小匹配失真值对应的所述后向预测块、所述第二预测块、所述第三预测块、所述第四预测块、所述第五预测块或所述第六预测块为所述目标预测块。
在一种可能的实施方式中,所述第二预测块、所述第三预测块、所述第四预测块、所述第五预测块、所述第六预测块分别为所述第一预测块按照第一像素精度在参考帧中向上、下、左、右、对角方向偏移时得到的预测块;
所述计算模块,还用于当所述第二匹配失真值、第三匹配失真值、第四匹配失真值、第五匹配失真值和第六匹配失真值均大于或等于所述第一匹配失真值时,分别计算第七预测块与所述合成预测块之间的第七匹配失真值、第八预测块与所述合成预测块之间的第八匹配失真值、第九预测块与所述合成预测块之间的第九匹配失真值、第十预测块与所述合成预测块之间的第十匹配失真值、第十一预测块与所述合成预测块之间的第十一匹配失真值;其中,所述第七预测块、所述第八预测块、所述第九预测块、所述第十预测块、所述第十一预测块分别为所述第一预测块按照第二像素精度在所述参考帧中向上、下、左、右、对角方向偏移时得到的预测块;
所述第一确定模块具体用于:
当所述第一预测块为所述前向预测块时,从所述第一匹配失真值、第七匹配失真值、第八匹配失真值、第九匹配失真值、第十匹配失真值和第十一匹配失真值中,确定第一最小匹配失真值;
确定所述第一最小匹配失真值对应的前向预测块、所述第七预测块、所述第八预测块、所述第九预测块、所述第十预测块或所述第十一预测块为所述目标预测块;
当所述第一预测块为所述后向预测块时,从所述第一匹配失真值、第七匹配失真值、第八匹配失真值、第九匹配失真值、第十匹配失真值和第十一匹配失真值中,确定第二最小匹配失真值;
确定所述第二最小匹配失真值对应的所述后向预测块、所述第七预测块、所述第八预测块、所述第九预测块、所述第十预测块或所述第十一预测块为所述目标预测块。
在一种可能的实施方式中,所述第一像素精度为整像素精度,所述第二像素精度为半像素精度。
在一种可能的实施方式中,P0[n]为所述第一预测块、所述第二预测块、所述第三预测块、所述第四预测块、所述第五预测块或所述第六预测块采样后的像素点的像素值,P1[n]为所述合成预测块采样后的像素点的像素值,P0[n]和P1[n]在两个采样后的预测块中的对应位置相同,L为采样后的预测块内的像素点的个数。
第九方面,本申请实施例提供一种视频编解码设备,包括:相互耦合的非易失性存储器和处理器,所述处理器调用存储在所述存储器中的程序代码以执行如第一方面以及第一方面任一可能实现方式所描述的方法。
第十方面,本申请实施例提供一种视频编解码设备,包括:相互耦合的非易失性存储器和处理器,所述处理器调用存储在所述存储器中的程序代码以执行如第二方面以及第二方面任一可能实现方式所描述的方法。
第十一方面,本申请实施例提供一种视频编解码设备,包括:相互耦合的非易失性存储器和处理器,所述处理器调用存储在所述存储器中的程序代码以执行如第三方面以及第三方面任一可能实现方式所描述的方法。
第十二方面,本申请实施例提供一种视频编解码设备,包括:相互耦合的非易失性存储器和处理器,所述处理器调用存储在所述存储器中的程序代码以执行如第四方面以及第四方面任一可能实现方式所描述的方法。
第十三方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储了程序代码,其中,所述程序代码包括用于执行第一方面以及第一方面任一可能实现方式所描述的方法的部分或全部步骤的指令。
第十四方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储了程序代码,其中,所述程序代码包括用于执行第二方面以及第二方面任一可能实现方式所描述的方法的部分或全部步骤的指令。
第十五方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储了程序代码,其中,所述程序代码包括用于执行第三方面以及第三方面任一可能实现方式所描述的方法的部分或全部步骤的指令。
第十六方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储了程序代码,其中,所述程序代码包括用于执行第四方面以及第四方面任一可能实现方式所描述的方法的部分或全部步骤的指令。
第十七方面,本申请实施例提供一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行第一方面以及第一方面任一可能实现方式所描述的方法的部分或全部步骤。
第十八方面,本申请实施例提供一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行第二方面以及第二方面任一可能实现方式所描述的方法的部分或全部步骤。
第十九方面,本申请实施例提供一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行第三方面以及第三方面任一可能实现方式所描述的方法的部分或全部步骤。
第二十方面,本申请实施例提供一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行第四方面以及第四方面任一可能实现方式所描述的方法的部分或全部步骤。
应当理解的是,本申请的第五至二十方面与本申请的第一方面至第四方面的技术方案一致,各方面及对应的可行实施方式所取得的有益效果相似,不再赘述。
本申请提供的运动矢量的确定方法和装置,包括:仅分别计算第一预测块与第五预测块之间的第二匹配失真值、第二预测块与第六预测块之间的第三匹配失真值、第三预测块与第七预测块之间的第四匹配失真值、第四预测块与第八预测块之间的第五匹配失真值;其中,第一预测块、第二预测块、第三预测块、第四预测块分别为前向预测块向上下左右偏移时得到的预测块;第五预测块、第六预测块、第七预测块、第八预测块分别为后向预测块在后向参考帧中向下、上、右、左偏移时得到的预测块;根据各匹配失真值之间的大小关系,确定目标前向预测块和目标后向预测块;根据目标前向预测块和目标后向预测块,确定当前块的目标运动矢量。只需要计算前向预测块和后向预测块在上下左右4个方向偏移后的预测块之间的匹配失真值,从而减少了匹配失真值的计算量,提高了运动矢量的计算效率。
附图说明
图1为视频编码装置的一种示意图;
图2为帧间预测的一种示意图;
图3为视频解码装置的一种示意图;
图4为本申请实施例一提供的运动矢量的确定方法的流程图;
图5为当前块、前向预测块和后向预测块的一种示意图;
图6为前向预测块和后向预测块的一种偏移示意图;
图7为本申请实施例二提供的运动矢量的确定方法的流程图;
图8为前向预测块和后向预测块的又一种偏移示意图;
图9为本申请实施例三提供的运动矢量的确定方法的流程图;
图10为前向预测块和后向预测块的另一种偏移示意图;
图11为本申请实施例四提供的运动矢量的确定方法的流程图;
图12为前向预测块和后向预测块的再一种偏移示意图;
图13为本申请实施例五提供的一种运动矢量的确定装置的示意图;
图14为本申请实施例六提供的一种运动矢量的确定装置的示意图;
图15为本申请实施例七提供的一种运动矢量的确定装置的示意图;
图16为本申请实施例八提供的一种运动矢量的确定装置的示意图;
图17为本申请实施例九提供的一种视频编解码设备的示意图。
具体实施方式
下面结合本申请实施例中的附图对本申请实施例进行描述。以下描述中,参考形成本公开一部分并以说明之方式示出本申请实施例的具体方面或可使用本申请实施例的具体方面的附图。应理解,本申请实施例可在其它方面中使用,并可包括附图中未描绘的结构或逻辑变化。因此,以下详细描述不应以限制性的意义来理解,且本申请的范围由所附权利要求书界定。例如,应理解,结合所描述方法的揭示内容可以同样适用于用于执行所述方法的对应设备或系统,且反之亦然。例如,如果描述一个或多个具体方法步骤,则对应的设备可以包含如功能单元等一个或多个单元,来执行所描述的一个或多个方法步骤(例如,一个单元执行一个或多个步骤,或多个单元,其中每个都执行多个步骤中的一个或多个),即使附图中未明确描述或说明这种一个或多个单元。另一方面,例如,如果基于如功能单元等一个或多个单元描述具体装置,则对应的方法可以包含一个步骤来执行一个或多个单元的功能性(例如,一个步骤执行一个或多个单元的功能性,或多个步骤,其中每个执行多个单元中一个或多个单元的功能性),即使附图中未明确描述或说明这种一个或多个步骤。进一步,应理解的是,除非另外明确提出,本文中所描述的各示例性实施例和/或方面的特征可以相互组合。
本申请实施例所涉及的技术方案不仅可能应用于现有的视频编码标准中(如H.264、HEVC等标准),还可能应用于未来的视频编码标准中(如H.266标准)。本申请的实施方式部分使用的术语仅用于对本申请的具体实施例进行解释,而非旨在限定本申请。
本申请提供一种运动矢量的确定方法,该方法可以应用在视频编码装置或视频解码装置中,图1为视频编码装置的一种示意图,如图1所示,该视频编码装置包括:运动估计(Motion estimation,ME)模块、运动补偿(Motion compensation,MC)模块、减法模块、变换(Transform)模块/量化(Quantization)模块、熵编码(Entropy encode)模块、帧内预测方式选择模块、帧内预测(Intra Prediction)模块、逆变换模块/逆量化模块、加法模块和滤波模块。
视频编码装置会尝试对当前帧(也称为当前图像)进行帧内预测和帧间预测(Inter Prediction),根据预测结果最终确定使用帧内预测还是帧间预测。帧内预测是指利用当前帧内已重建区域内像素点的像素值对待编码的当前块内像素点的像素值进行预测。帧间预测是在已重建的参考帧中,为当前帧中的当前块寻找匹配的目标预测块(也称为参考块),根据目标预测块中的像素点的像素值预测当前块中像素点的预测像素值。
帧间预测又分为单向帧间预测和双向帧间预测,单向帧间预测包括前向帧间预测或后向帧间预测。前向帧间预测是指当前块从前向参考帧集合中选择一个参考帧确定目标预测块,后向帧间预测是指当前块从后向参考帧集合中选择一个参考帧确定目标预测块,双向帧间预测是指从前向参考帧集合和后向参考帧集合中分别选择一个参考帧确定目标预测块。当使用双向帧间预测时,当前块会存在两个目标预测块:目标前向预测块和目标后向预测块,目标前向预测块是从前向参考帧中确定的,目标后向预测块是从后向参考帧中确定,在进行预测时根据两个目标预测块的像素点的像素值确定当前块内像素点的预测像素值。
其中,前向参考帧是指在当前块所在的帧之前编码且在其之前播放的帧,后向参考帧是指在当前块所在的帧之前编码且在其之后播放的帧,前向参考帧集合也称为前向参考帧列表,后向参考帧列表也称为后向参考帧列表,前向参考帧集合和后向参考帧集合中分别可以包括一个或多个参考帧,前向参考帧集合和后向参考帧集合中所包含的参考帧的数量可以相同,也可以不同。
在进行编码之前,需要对待编码的当前帧进行分块,将当前帧划分为一个或多个编码块,编码块为M*N大小的阵列,M和N为编码块的高度和宽度方向的像素点个数,M和N的取值可以相同也可以不同,编码块中各个像素点的像素值是已知的。
在帧间预测过程中,ME模块根据当前块和参考帧,在参考帧中进行匹配搜索,得到当前块的目标预测块(包括目标前向预测块和/或目标后向预测块),根据编码块和目标预测块得到运动矢量(Motion vector,MV)。
MV可以用量(Δx,Δy)表示,其中,Δx表示目标预测块相对于当前块位置的水平位移,Δy表示目标预测块相对于当前块位置的竖直位移。
MC模块根据运动矢量对当前块进行运动补偿,得到当前块中的像素点的预测像素值,示例性的,MC模块根据运动矢量和参考帧确定当前块的目标预测块,根据当前块的目标预测块得到当前块中的像素点的预测像素值。
减法模块将当前块的实际像素值和当前块的预测像素值进行相减,得到当前块的残差信息。然后,由变换模块对残差信息进行变换,或者,量化模块对残差信息进行量化,变换模块可以利用离散余弦变换(Discrete Cosine Transformation,DCT)等方法对残差信息进行变换。
熵编码模块对量化后或者变换后的残差信息进行熵编码,将当前块的运动信息和熵编码后的残差信息发送给接收端。
当前块的运动信息包括MV和参照帧,运动信息也称为运动数据,参考帧索引可以用Δt表示。双向帧间预测块得到的当前块的运动信息包括前向预测块的运动信息(Δx0,Δy0,Δt0以及后向预测块的运动信息(Δx1,Δy1,Δt1)。
逆量化模块对量化后的残差信息进行逆量化,或者,逆变换模块对变换后得到的残差信息进行逆变换,得到恢复的残差信息,加法模块将恢复得到的残差信息和当前块的预测像素值进行相加,得到恢复后的当前块,滤波模块对恢复后的当前块进行滤波,通过对划分后的编码块分别进行上述过程,得到当前帧的编码帧,当前帧的编码帧可以用于后续帧的编码。
在帧内预测过程中,帧内预测方式选择模块从多种帧内预测方式中选择一种帧内预测方式,帧内预测块根据帧内预测方式选择模块选择的帧内预测方式进行帧内预测,得到当前块中的像素点的预测像素值。减法模块将当前块的实际像素值和当前块的预测像素值进行相减,得到当前块的残差信息。然后,由变换模块对残差信息进行变换,或者,量化模块对残差信息进行量化,变换模块可以利用DCT等方法对残差信息进行变换。熵编码模块对量化后或者变换后的残差信息进行熵编码,将当前块的运动信息和熵编码后的残差信息发送给接收端。逆量化模块对量化后的残差信息进行逆量化,或者,逆变换模块对变换后得到的残差信息进行逆变换,得到恢复的残差信息,加法模块将恢复得到的残差信息和当前块的预测像素值进行相加,得到恢复后的当前块,滤波模块对恢复后的当前块进行滤波。同时,加法模块会将恢复后的当前块发送给帧内预测方式选择模块和帧内预测模块,用于后续帧的编码。
其中,当前块的运动信息可以包括:预测方向的指示信息,一个或两个指向预测块的运动矢量,参考帧索引。通过预测方向的指示信息指示当前块使用前向帧间预测、后向帧间预测或双向帧间预测中的何种预测方向,通过参考帧索引指明当前块使用的参考帧,通过运动矢量指示参考帧中用于预测当前块的目标预测块相对当前帧中当前块的位置偏移,因而一个运动矢量对应一个预测块。
本申请的方法主要应用在帧间预测中,在编码端主要由图1所示视频编码装置中的ME模块执行。图2为帧间预测的一种示意图,如图2所示,当前帧采用双向帧间预测,当前帧的参考帧包括前向参考帧和后向参考帧,ME模块通过对前向参考帧和后向参考帧进行匹配搜索,得到当前块的目标预测块为:前向参考帧中的预测块1和后向参考帧中的预测块2。
解码过程是编码过程的逆过程,图3为视频解码装置的一种示意图,如图3所示,该视频解码装置包括:熵解码(Entropy decode)模块、逆变换模块/逆量化模块、加法模块、帧内预测模块、MC模块、滤波器和DMVR模块。
熵解码模块对接收到的编码端发送的熵编码后的残差信息进行解码,逆量化模块对解码得到的残差信息进行逆量化,或者,逆变换模块对解码得到的残差信息进行逆变换,得到当前块的残差信息。DMVR模块根据解码得到的当前块的运动信息,确定当前块的参考帧和预测方式,根据参考帧和预测方向确定当前块的目标预测块,根据当前块的目标预测块确定运动矢量,MC模块根据DMVR确定的运动矢量和参考帧确定当前块的目标预测块,根据当前块的目标预测块确定当前块中的像素点的预测像素值。加法模块将当前块的预测像素值和当前块的残差信息进行相加,得到恢复后的当前块,滤波器对恢复后的当前块进行滤波,得到重建后的当前块。加法模块也会将恢复后的当前块发送给帧内预测模块。
图4为本申请实施例一提供的运动矢量的确定方法的流程图,本实施例的方法应用在双向帧间预测过程中,可以应用在编码端和解码端,应用在编码端时可以由图1所示视频编码装置中的ME模块执行,应用在解码端时可以由图3所示的视频解码装置的DMVR模块执行。如图4所示,本实施例提供的方法包括以下步骤:
步骤S101、计算当前块的前向预测块与后向预测块之间的第一匹配失真值。
本实施例的方法应用在双向帧间预测中,当前块有两个预测块:前向预测块和后向预测块。其中,前向预测块是指:当前块根据其大小及预测运动信息在参考帧列表List 0(List 1)中POC(Picture Order Count,图片顺序编号)小于(大于)当前帧POC的参考帧里所对应区域的图像块。后向预测块是指:当前块根据其大小及预测运动信息在参考帧列表List 1(List0)中POC大于(小于)当前帧POC的参考帧里所对应区域的图像块。
图5为当前块、前向预测块和后向预测块的一种示意图,如图5所示,当前块具有两个预测预测运动信息:前向预测运动信息和后向预测运动信息,前向预测运动信息和后向预测运动信息独立获取。前向预测运动信息中包括前向参考帧的索引Δt0和MV0(Δx0,Δy0),该前向参考帧属于参考帧列表List 0,后向预测运动信息包括后向参考帧的索引Δt1和MV1(Δx1,Δy1),该后向参考帧属于参考帧列表list1。
当前块在当前帧中的位置信息和大小是已知的,前向预测块和后向预测块的大小与当前块的大小相同。因此,根据前向参考帧的索引Δt0在参考帧列表List 0中找到前向参考帧,根据当前块在当前帧中的位置和MV0(Δx0,Δy0)得到前向预测块。如图5所示,前向参考帧中的虚线框表示当前块在前向参考帧中的对应位置,将当前块在前向参考帧中的对应位置按照MV0(Δx0,Δy0)移动得到前向预测块。
同理,根据后向参考帧的索引Δt1在参考帧列表list1中找到后向参考帧,根据当前块在当前帧中的位置和MV1(Δx1,Δy1)得到后向预测块。如图5所示,后向参考帧中的虚线框表示当前块在后向参考帧中的对应位置,将当前块在后向参考帧中的对应位置按照MV1(Δx1,Δy1)移动得到后向预测块。
步骤S102、仅分别计算第一预测块与第五预测块之间的第二匹配失真值、第二预测块与第六预测块之间的第三匹配失真值、第三预测块与第七预测块之间的第四匹配失真值、第四预测块与第八预测块之间的第五匹配失真值。
其中,第一预测块、第二预测块、第三预测块、第四预测块分别为前向预测块在前向参考帧中向上、下、左、右偏移时得到的预测块,第五预测块、第六预测块、第七预测块、第八预测块分别为后向预测块在后向参考帧中向下、上、右、左偏移时得到的预测块。
本实施例中,仅对前向预测块和后向预测块在上下左右四个方向移动,每次移动时前向预测块和后向预测块的移动方向相反,每次移动时前向预测块和后向预测块可以使用相同的像素精度移动。
图6为前向预测块和后向预测块的一种偏移示意图,如图6所示,实线方框表示前向预测块和后向预测块偏移得到的预测块,图中箭头表示前向预测块和后向预测块的偏移方向。
本实施例中,前向预测块和后向预测块可以按照预设的第一像素精度在参考帧中偏移得到其他预测块。该第一像素精度可以为整像素精度,整像素精度为一个像素精度的整数倍,例如,该第一像素精度为1个像素、2个像素或者3个像素。
该第一像素精度还可以非整像素精度,非整像素精度为一个像素精度的非整数倍,例如,该第一像素精度为0.5个像素、1.25个像素、1.5个像素、2.5个像素等。
无论该第一像素精度为整像素精度还是非整像素精度,每次偏移时都在前向预测块或者后向预测块的基础上向上、下、左、右偏移一个第一像素精度。
可选的,如果前向预测块或后向预测块偏移后为非整像素,则可以将偏移后的像素调整到整像素精度,可以在偏移后的非整像素的基础上补偿像素。例如,将前向预测块按照第一像素精度偏移后得到的第一预测块位于0.5像素位置上,则补偿0.5像素,使得第一预测块位于整像素位置上;更为普适地,如位于x1像素位置上,则补偿x2像素,其中,x1+x2=N0个整像素,N0为预设非负数值,如预设的正整数;使得第一预测块位于整像素位置上。
本实施例中,每次匹配搜索将前向预测块和后向预测块分别向上下左右四个方向偏移一个第一像素精度,可能会进行多次匹配搜索,直至找到最佳的预测块,每次匹配搜索在前一次的基础上增量一个第一像素精度。例如,第一次匹配搜索将前向预测块和后向预测块分别向上下左右偏移一个像素,第二次匹配搜索将前向预测块和后向预测块分别向上下左右偏移两个像素,第三次匹配搜索将前向预测块和后向预测块分别向上下左右偏移三个像素。
本实施例中,第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值、第五匹配失真值中的任意一个匹配失真值包括两个预测块之间的绝对误差和(Sum ofAbsolute Difference,SAD)。其中,SAD可以通过如下几种方式计算:
方式一,SAD可以通过如下方式计算:
Figure BDA0001905652970000211
其中,当P0[n]为前向预测块、第一预测块、第二预测块、第三预测块或第四预测块中的像素点的像素值时,P1[n]对应地为后向预测块、第五预测块、第六预测块、第七预测块或第八预测块中的像素点的像素值,P0[n]和P1[n]在两个预测块中的对应位置相同,L为预测块内的像素点的个数,K为两个预测块之间的均值。
即当P0[n]为前向预测块中的像素点的像素值时,P1[n]为后向预测块中的像素点的像素值。当P0[n]为第一预测块中的像素点的像素值时,P1[n]为第五预测块中的像素点的像素值。当P0[n]为第二预测块中的像素点的像素值时,P1[n]为第六预测块中的像素点的像素值。当P0[n]为第三预测块中的像素点的像素值时,P1[n]为第七预测块中的像素点的像素值。当P0[n]为第四预测块中的像素点的像素值时,P1[n]为第八预测块中的像素点的像素值。
K可以通过如下公式计算:
K=(∑0≤iM<,0≤j<NP0[i][j]-∑0≤iM<,0≤j<NP1[i][j])/M*N
其中,M为预测块采样后宽度方向的像素点个数,N为预测块采样后高度方向的像素点个数,i和j为像素点的编号,当P0[i][j]为前向预测块、第一预测块、第二预测块、第三预测块或第四预测块采样后的像素点的像素值时,P1[i][j]对应地为后向预测块、第五预测块、第六预测块、第七预测块或第八预测块采样后的像素点的像素值,P0[i][j]和P1[i][j]在两个预测块中的对应位置相同。
K为整数,“/”不仅表示除法运算,还表示取整运算,在取整时可以向上取整,也可以向下取整。
该方式中在计算K时,对预测块进行了采样,从而使得K的计算量减少,降低了匹配失真值的计算复杂度。本实施例不对采样方式进行限定,可以将偶数编号或者奇数编号的像素点去掉,通过采样计算得到的K也称为亚均值。
方式二、SAD可以通过如下方式计算:
Figure BDA0001905652970000221
其中,当P0[n]为前向预测块、第一预测块、第二预测块、第三预测块或第四预测块中的像素点的像素值时,P1[n]对应地为后向预测块、第五预测块、第六预测块、第七预测块或第八预测块中的像素点的像素值,P0[n]和P1[n]在两个预测块中的对应位置相同,L为预测块内的像素点的个数。
该方式中,在计算匹配失真值时不需要计算两个预测块之间的均值,从而简化了匹配失真值的计算。
可选的,上述两种方式中,P0[n]为前向预测块、第一预测块、第二预测块、第三预测块或第四预测块采样后的像素点的像素值,P1[n]对应地为后向预测块、第五预测块、第六预测块、第七预测块或第八预测块采样后的像素点的像素值。通过采样减少了SAD的计算量,降低了匹配失真值的计算复杂度。
方式三、与方式一的区别点为:方式一中在计算K时对预测块进行了采样,方式三中在计算K时不对预测块进行采样。
本实施例中,在每次匹配搜索时,仅需要计算上下左右4个方向的匹配失真值,而现有技术中,每次匹配搜索时至少需要上下左右、对角5个方向的匹配失真值,从而减少了匹配失真值的计算量。
步骤S103、根据第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值和第五匹配失真值之间的大小关系,确定目标前向预测块和目标后向预测块。
示例性的,可以通过如下几种方式确定目标前向预测块和目标后向预测块:
(方式一)从第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值和第五匹配失真值中确定最小匹配失真值,确定该最小匹配失真值对应的前向预测块、第一预测块、第二预测块、第三预测块或第四预测块为目标前向预测块,确定该最小匹配失真值对应的后向预测块、第五预测块、第六预测块、第七预测块或第八预测块为目标后向预测块。
该最小匹配失真值可能为一个或者多个,当该最小匹配失真值为多个时,可以随机选择一个最小匹配失真值确定目标前向预测块和目标后向预测块。也可以按照预设的规则选择一个最小匹配失真值确定目标前向预测块和目标后向预测块。
当该最小匹配失真值为第一匹配失真值时,即第二匹配失真值、第三匹配失真值、第四匹配失真值和第五匹配失真值均大于或等于第一匹配失真值时,前向预测块为目标前向预测块,后向预测块为目标后向预测块。
(方式二)当第二匹配失真值、第三匹配失真值、第四匹配失真值和第五匹配失真值均大于或等于第一匹配失真值时,仅分别计算第九预测块与第十三预测块之间的第六匹配失真值、第十预测块与第十四预测块之间的第七匹配失真值、第十一预测块与第十五预测块之间的第八匹配失真值、第十二预测块与第十六预测块之间的第九匹配失真值。其中,第九预测块、第十预测块、第十一预测块、第十二预测块分别为前向预测块按照第二像素精度在前向参考帧中向上、下、左、右偏移时得到的预测块,第十三预测块、第十四预测块、第十五预测块、第十六预测块分别为后向预测块按照第二像素精度在后向参考帧中向下、上、右、左偏移时得到的预测块。
从第一匹配失真值、第六匹配失真值、第七匹配失真值、第八匹配失真值和第九匹配失真值中确定最小匹配失真值。确定最小匹配失真值对应的前向预测块、第九预测块、第十预测块、第十一预测块或第十二预测块为目标前向预测块,确定最小匹配失真值对应的后向预测块、第十三预测块、第十四预测块、第十五预测块或第十六预测块为目标后向预测块。
第六匹配失真值、第七匹配失真值、第八匹配失真值和第九匹配失真值的计算方式参照步骤S102中第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值和第五匹配失真值的计算方式,这里不再赘述,
其中,第二像素精度不同于第一像素精度,第二像素精度可以大于或小于第一像素进度。第二像素精度也可以为整像素精度或者非整像素精度。示例性的,第一像素精度为整像素精度,第二像素精度为非整像素精度,例如,第一像素精度为1个像素,第二像素精度为1/2像素、1/4像素或者1/8像素。
当第二匹配失真值、第三匹配失真值、第四匹配失真值和第五匹配失真值均大于或等于第一匹配失真值时,采用更精细化的第二像素精度进行匹配搜索,从而使得确定的目标前向预测块和目标后向预测块更加准确。
需要说明的是,如果第二匹配失真值、第三匹配失真值、第四匹配失真值和第五匹配失真值中的任意一个匹配失真值小于第一匹配失真值,则可以按照方式一确定目标前向预测块和目标后向预测块。
步骤S104、根据目标前向预测块和目标后向预测块,确定当前块的目标运动矢量。
在双向帧间预测方式中,当前块的目标运动矢量包括两个矢量:第一运动矢量和第二运动矢量,第一运动矢量是指目标前向预测块相对于当前块的位置偏移量,第二运动矢量是指目标后向预测块相对于当前块的位置偏移量。
本实施例中,在每次匹配搜索时,只需要计算前向预测块和后向预测块在上下左右4个方向偏移后的预测块之间的匹配失真值,而现有技术中,每次匹配搜索时至需要计算前向预测块和后向预测块在上下左右、对角方向共5个方向偏移后的预测块之间的匹配失真值,从而减少了匹配失真值的计算量,提高了运动矢量的计算效率。
图7为本申请实施例二提供的运动矢量的确定方法的流程图,本实施例的方法应用在双向帧间预测过程中,可以应用在编码端和解码端,应用在编码端时可以由图1所示视频编码装置中的ME模块执行,应用在解码端时可以由图3所示的视频解码装置的DMVR模块执行。对于一些相同概念,参照实施例一的相关描述,本实施例不再赘述。如图7所示,本实施例提供的方法包括以下步骤:
步骤S201、根据当前块的前向预测块和后向预测块,确定合成预测块。
示例性的,将前向预测块和后向预测块中的像素点的像素值相加取平均值,得到合成预测块的像素点的像素值。
步骤S202、计算第一预测块和合成预测块之间的第一匹配失真值,第一预测块为前向预测块或者后向预测块。
步骤S203、仅分别计算第二预测块与合成预测块之间的第二匹配失真值、第三预测块与合成预测块之间的第三匹配失真值、第四预测块与合成预测块之间的第四匹配失真值、第五预测块与合成预测块之间的第五匹配失真值。
其中,第二预测块、第三预测块、第四预测块、第五预测块分别为第一预测块在参考帧中向上、下、左、右偏移时得到的预测块。当第一预测块为前向预测块时,该参考帧为前向参考帧,当第一预测块为后向预测块时,该参考帧为后向参考帧。
不同于实施例一,本实施例仅对第一预测块进行偏移,不对合成预测块进行偏移。
图8为前向预测块和后向预测块的又一种偏移示意图,如图8所示,实线方框表示前向预测块和后向预测块偏移得到的预测块,图中箭头表示前向预测块和后向预测块的偏移方向,不需要对合成预测块进行偏移。
需要明确的是,本实施例中可以仅对前向预测块进行上下左右四个方向的偏移,而后向预测块仍然按照现有技术进行至少五个方向的偏移。或者,仅对后向预测块进行上下左右四个方向的偏移,而前向预测块仍然按照现有技术进行至少五个方向的偏移。或者,对前向预测块和后向预测块均进行四个方向的偏移。
步骤S204、根据第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值和第五匹配失真值之间的大小关系,确定目标预测块。
示例性的,本实施例中可以通过如下几种方式确定目标预测块:
(方式一)当第一预测块为前向预测块时,从前向预测块对应的第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值和第五匹配失真值中,确定第一最小匹配失真值;确定该第一最小匹配失真值对应的前向预测块、第二预测块、第三预测块、第四预测块或第五预测块为目标预测块。
当第一预测块为后向预测块时,从后向预测块对应的第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值和第五匹配失真值中,确定第二最小匹配失真值,确定该第二最小匹配失真值对应的后向预测块、第二预测块、第三预测块、第四预测块或第五预测块为目标预测块。
当该第一最小匹配失真值为第一匹配失真值时,即前向预测块对应的第二匹配失真值、第三匹配失真值、第四匹配失真值和第五匹配失真值均大于或等于第一匹配失真值时时,目标预测块为前向预测块。当该第二最小匹配失真值为第一匹配失真值时,即后向预测块对应的第二匹配失真值、第三匹配失真值、第四匹配失真值和第五匹配失真值均大于或等于第一匹配失真值时,目标预测块为后向预测块。
(方式二)当第二匹配失真值、第三匹配失真值、第四匹配失真值和第五匹配失真值均大于或等于第一匹配失真值时,仅分别计算第六预测块与合成预测块之间的第六匹配失真值、第七预测块与合成预测块之间的第七匹配失真值、第八预测块与合成预测块之间的第八匹配失真值、第九预测块与合成预测块之间的第九匹配失真值。
其中,第六预测块、第七预测块、第八预测块、第九预测块分别为第一预测块按照第二像素精度在参考帧中向上、下、左、右偏移时得到的预测块。第二预测块、第三预测块、第四预测块或第五预测块分别为第一预测块按照第一像素精度在参考帧中向上、下、左、右偏移时得到的预测块。
当第一预测块为前向预测块时,从第一匹配失真值、第六匹配失真值、第七匹配失真值、第八匹配失真值和第九匹配失真值中,确定第一最小匹配失真值,确定第一最小匹配失真值对应的前向预测块、第六预测块、第七预测块、第八预测块或第九预测块为目标预测块。
当第一预测块为后向预测块时,从第一匹配失真值、第六匹配失真值、第七匹配失真值、第八匹配失真值和第九匹配失真值中,确定第二最小匹配失真值,确定第二最小匹配失真值对应的后向预测块、第六预测块、第七预测块、第八预测块或第九预测块为目标预测块。
其中,第二像素精度不同于第一像素精度,第二像素精度可以小于或大于第一像素精度。第一像素精度和第二像素精度均可以为整像素精度或非整像素精度。或者,第一像素精度为整像素精度,第二像素精度为半像素精度。
可选的,如果前向预测块或后向预测块偏移后为非整像素,则可以将偏移后的像素调整到整像素精度。
需要说明的是,如果第二匹配失真值、第三匹配失真值、第四匹配失真值和第五匹配失真值中的任意一个匹配失真值小于第一匹配失真值,则可以按照方式一确定目标前向预测块和目标后向预测块。
本实施例中,第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值、第五匹配失真值、第六匹配失真值、第七匹配失真值、第八匹配失真值和第九匹配失真值中的任意一个匹配失真值包括两个预测块之间的SAD。SAD可以通过如下几种方式计算:
方式一,SAD可以通过公式计算:
Figure BDA0001905652970000251
其中,P0[n]为第一预测块、第二预测块、第三预测块、第四预测块、第五预测块、第六预测块、第七预测块、第八预测块或第九预测块中的像素点的像素值,P1[n]为合成预测块中的像素点的像素值,P0[n]和P1[n]在两个预测块中的对应位置相同,L为预测块内的像素点的个数,K为两个预测块之间的均值。
K可以通过如下公式计算:
K=(∑0≤iM<,0≤j<MP0[i][j]-∑0≤iM<,0≤j<MP1[i][j])/M*N
其中,M为预测块采样后宽度方向的像素点个数,N为预测块采样后高度方向的像素点个数,i和j为像素点的编号,P0[i][j]为第一预测块、第二预测块、第三预测块、第四预测块、第五预测块、第六预测块、第七预测块、第八预测块或第九预测块采样后的像素点的像素值,P1[i][j]为合成预测块采样后的像素点的像素值,P0[i][j]和P1[i][j]在两个预测块中的对应位置相同。
该方式中在计算K时,对预测块进行了采样,从而使得K的计算量减少,降低了匹配失真值的计算复杂度。本实施例不对采样方式进行限定,可以将偶数编号或者奇数编号的像素点去掉。
方式二、SAD可以通过如下方式计算:
Figure BDA0001905652970000261
其中,P0[n]为第一预测块、第二预测块、第三预测块、第四预测块、第五预测块、第六预测块、第七预测块、第八预测块或第九预测块中的像素点的像素值,P1[n]为合成预测块中的像素点的像素值,P0[n]和P1[n]在两个预测块中的对应位置相同,L为预测块内的像素点的个数。
该方式中,在计算匹配失真值时不需要计算两个预测块之间的均值,从而简化了匹配失真值的计算。
可选的,上述两种方式中,P0[n]为第一预测块、第二预测块、第三预测块、第四预测块、第五预测块、第六预测块、第七预测块、第八预测块或第九预测块采样后的像素点的像素值。P1[n]为合成预测块采样后的像素点的像素值。通过采样减少了SAD的计算量,降低了匹配失真值的计算复杂度。
方式三、与方式一的区别点为:方式一中在计算K时对预测块进行了采样,方式三中在计算K时不对预测块进行采样。
步骤S205、根据目标预测块,确定当前块的目标运动矢量。
在双向帧间预测方式中,当前块的目标运动矢量包括两个矢量:第一运动矢量和第二运动矢量,第一运动矢量是指目标前向预测块相对于当前块的位置偏移量,第二运动矢量是指目标后向预测块相对于当前块的位置偏移量。
本实施例中,在每次匹配搜索时,只需要计算前向预测块和/或后向预测块在上下左右4个方向偏移后的预测块之间的匹配失真值,而现有技术中,每次匹配搜索时至需要计算前向预测块和后向预测块在上下左右、对角方向共5个方向偏移后的预测块之间的匹配失真值,从而减少了匹配失真值的计算量,提高了运动矢量的计算效率。
图9为本申请实施例三提供的运动矢量的确定方法的流程图,本实施例的方法应用在双向帧间预测过程中,可以应用在编码端和解码端,应用在编码端时可以由图1所示视频编码装置中的ME模块执行,应用在解码端时可以由图3所示的视频解码装置的DMVR模块执行。
本实施例与实施例一的区别点包括:(1)本实施例中对前向预测块和后向预测块分别向上、下、左、右、对角方向共5个方向进行了偏移,而实施例一中对前向预测块和后向预测块分别向上、下、左、右四个方向进行了偏移。(2)本实施例中,匹配失真值的计算方式与实施例一不同。
如图9所示,本实施例提供的方法包括以下步骤:
步骤S301、计算当前块的前向预测块与后向预测块之间的第一匹配失真值。
步骤S302、分别计算第一预测块与第六预测块之间的第二匹配失真值、第二预测块与第七预测块之间的第三匹配失真值、第三预测块与第八预测块之间的第四匹配失真值、第四预测块与第九预测块之间的第五匹配失真值、第五预测块与第十预测块之间的第六匹配失真值。
其中,第一预测块、第二预测块、第三预测块、第四预测块、第五预测块分别为前向预测块在前向参考帧中向上、下、左、右、对角方向偏移时得到的预测块;第六预测块、第七预测块、第八预测块、第九预测块、第十预测块分别为后向预测块在后向参考帧中向下、上、右、左、对角方向的反方向偏移时得到的预测块。
当对角方向为左上、左下、右上或右下时,对角方向的反方向对应为右下、右上、左下或左上。
本实施例中,对前向预测块和后向预测块在上下左右、对角方向共五个方向移动,每次移动时前向预测块和后向预测块的移动方向相反,每次移动时前向预测块和后向预测块可以使用相同的像素精度移动。
图10为前向预测块和后向预测块的另一种偏移示意图,如图10所示,实线方框表示前向预测块和后向预测块偏移得到的预测块,图中箭头表示前向预测块和后向预测块的偏移方向,与图6相比较,本实施例中,前向预测块还向左上方向偏移了,后向预测块对应的向右下方向偏移了。
本实施例中,前向预测块和后向预测块可以按照预设的第一像素精度在参考帧中偏移得到其他预测块。该第一像素精度可以为整像素精度,也可以为非整像素精度。
可选的,如果前向预测块或后向预测块偏移后为非整像素,则可以将偏移后的像素调整到整像素精度。
本实施例中,第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值、第五匹配失真值、第六匹配失真值中的任意一个匹配失真值包括:两个预测块之间的SAD;
SAD通过如下公式计算:
Figure BDA0001905652970000271
其中,当P0[n]为前向预测块、第一预测块、第二预测块、第三预测块、第四预测块或第五预测块中的像素点的像素值时,P1[n]对应地为后向预测块、第六预测块、第七预测块、第八预测块、第九预测块或第十预测块中的像素点的像素值,P0[n]和P1[n]在两个预测块中的对应位置相同,L为预测块内的像素点的个数,K为预测块的均值。
K通过如下公式计算:
K=(∑0≤iM<,0≤j<NP0[i][j]-∑0≤iM<,0≤j<NP1[i][j])/M*N
其中,M为预测块采样后宽度方向的像素点个数,N为预测块采样后高度方向的像素点个数,i和j为像素点的编号,当P0[i][j]为前向预测块、第一预测块、第二预测块、第三预测块、第四预测块或第五预测块采样后的像素点的像素值时,P1[i][j]对应地为后向预测块、第六预测块、第七预测块、第八预测块、第九预测块或第十预测块采样后的像素点的像素值,P0[i][j]和P1[i][j]在两个预测块中的对应位置相同。
该方式中在计算K时,对预测块进行了采样,从而使得K的计算量减少,降低了匹配失真值的计算复杂度。本实施例不对采样方式进行限定,可以将偶数编号或者奇数编号的像素点去掉。
可选的,SAD还可以通过如下方式计算:
Figure BDA0001905652970000272
其中,当P0[n]为前向预测块、第一预测块、第二预测块、第三预测块、第四预测块或第五预测块中的像素点的像素值时,P1[n]对应地为后向预测块、第六预测块、第七预测块、第八预测块、第九预测块或第十预测块中的像素点的像素值,P0[n]和P1[n]在两个预测块中的对应位置相同,L为预测块内的像素点的个数。
可选的,上述两种方式中,P0[n]为前向预测块、第一预测块、第二预测块、第三预测块、第四预测块或第五预测块采样后的像素点的像素值,P1[n]对应地为后向预测块、第六预测块、第七预测块、第八预测块、第九预测块或第十预测块采样后的像素点的像素值。通过采样减少了SAD的计算量,降低了匹配失真值的计算复杂度。
步骤S303、根据所述第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值、第五匹配失真值和第六匹配失真值之间的大小关系,确定目标前向预测块和目标后向预测块。
示例性的,可以通过如下两种方式确定目标前向预测块和目标后向预测块:
(方式一)从第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值、第五匹配失真值和第六匹配失真值中确定最小匹配失真值,确定该最小匹配失真值对应的前向预测块、第一预测块、第二预测块、第三预测块、第四预测块或第五预测块为目标前向预测块,确定最小匹配失真值对应的后向预测块、第六预测块、第七预测块、第八预测块、第九预测块或第十预测块为目标后向预测块。
当该最小匹配失真值为第一匹配失真值时,即第二匹配失真值、第三匹配失真值、第四匹配失真值、第五匹配失真值和第六匹配失真值均大于或等于第一匹配失真值时,前向预测块为目标前向预测块,后向预测块为目标后向预测块。
(方式二)当第二匹配失真值、第三匹配失真值、第四匹配失真值、第五匹配失真值和第六匹配失真值均大于或等于所述第一匹配失真值时,分别计算第十一预测块与第十六预测块之间的第七匹配失真值、第十二预测块与第十七预测块之间的第八匹配失真值、第十三预测块与第十八预测块之间的第九匹配失真值、第十四预测块与第十九预测块之间的第十匹配失真值、第十五预测块与第二十预测块之间的第十一匹配失真值。
其中,第十一预测块、第十二预测块、第十三预测块、第十四预测块、第十五预测块分别为前向预测块按照第二像素精度在前向参考帧中向上、下、左、右、对角方向偏移时得到的预测块;第十六预测块、第十七预测块、第十八预测块、第十九预测块、第二十预测块分别为后向预测块按照第二像素精度在后向参考帧中向下、上、右、左、对角方向的反方向偏移时得到的预测块。
第一预测块、第二预测块、第三预测块、第四预测块、第五预测块分别为前向预测块按照第一像素精度在前向参考帧中向上、下、左、右、对角方向偏移时得到的预测块;第六预测块、第七预测块、第八预测块、第九预测块、第十预测块分别为后向预测块按照第一像素精度在后向参考帧中向下、上、右、左、对角方向的反方向偏移时得到的预测块。
从第一匹配失真值、第七匹配失真值、第八匹配失真值、第九匹配失真值、第十匹配失真值和第十一匹配失真值中确定最小匹配失真值,确定最小匹配失真值对应的前向预测块、第十一预测块、第十二预测块、第十三预测块、第十四预测块或第十五预测块为目标前向预测块,确定最小匹配失真值对应的后向预测块、第十六预测块、第十七预测块、第十八预测块、第十九预测块或第二十预测块为目标后向预测块。
第七匹配失真值、第八匹配失真值、第九匹配失真值、第十匹配失真值和第十一匹配失真值的计算方式参照步骤S102中第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值和第五匹配失真值的计算方式,这里不再赘述。
其中,第一像素精度和第二像素精度不同,第二像素精度可以大于或小于第一像素进度。第一像素精度和第二像素精度均可以为整像素精度或者非整像素精度。示例性的,第一像素精度为整像素精度,第二像素精度为非整像素精度。
当第二像素精度可以大于或小于第一像素进度时,采用更精细化的第二像素精度进行匹配搜索,从而使得确定的目标前向预测块和目标后向预测块更加准确。
需要说明的是,如果第二匹配失真值、第三匹配失真值、第四匹配失真值、第五匹配失真值和第六匹配失真值中的任意一个匹配失真值小于第一匹配失真值,则可以按照方式一确定目标前向预测块和目标后向预测块。
步骤S304、根据目标前向预测块和目标后向预测块,确定当前块的目标运动矢量。
在双向帧间预测方式中,当前块的目标运动矢量包括两个矢量:第一运动矢量和第二运动矢量,第一运动矢量是指目标前向预测块相对于当前块的位置偏移量,第二运动矢量是指目标后向预测块相对于当前块的位置偏移量。
本实施例中,在计算匹配失真值时,使用采样后的预测块计算预测块之间的均值,减少了均值的计算量,降低了匹配失真值的计算复杂度,提高了运动矢量的计算效率。
图11为本申请实施例四提供的运动矢量的确定方法的流程图,本实施例的方法应用在双向帧间预测过程中,可以应用在编码端和解码端,应用在编码端时可以由图1所示视频编码装置中的ME模块执行,应用在解码端时可以由图3所示的视频解码装置的DMVR模块执行。
本实施例与实施例二的区别点包括:(1)本实施例中对第一预测块向上、下、左、右、对角方向共5个方向进行了偏移,而实施例二中对第一预测块向上、下、左、右四个方向进行了偏移。(2)本实施例中,匹配失真值与实施例二不同。
如图11所示,本实施例提供的方法包括以下步骤:
步骤S401、根据当前块的前向预测块和后向预测块,确定合成预测块。
步骤S402、计算第一预测块和合成预测块之间的第一匹配失真值,第一预测块为前向预测块或者后向预测块。
步骤S403、分别计算第二预测块与所述合成预测块之间的第二匹配失真值、第三预测块与合成预测块之间的第三匹配失真值、第四预测块与合成预测块之间的第四匹配失真值、第五预测块与所述合成预测块之间的第五匹配失真值、第六预测块与合成预测块之间的第六匹配失真值。
其中,第二预测块、第三预测块、第四预测块、第五预测块、第六预测块分别为第一预测块在参考帧中向上、下、左、右、对角方向偏移时得到的预测块,当对角方向为左上、左下、右上或右下时,对角方向的反方向对应为右下、右上、左下或左上。当第一预测块为前向预测块时,该参考帧为前向参考帧,当第一预测块为后向预测块时,该参考帧为后向参考帧。
本实施例中,对前向预测块和后向预测块在上下左右、对角方向共五个方向移动,每次移动时前向预测块和后向预测块的移动方向相反,每次移动时前向预测块和后向预测块可以使用相同的像素精度移动。
图12为前向预测块和后向预测块的再一种偏移示意图,与图8相比较,本实施例中,前向预测块还向左上方向偏移了,后向预测块对应的向右下方向偏移了。
本实施例中,前向预测块和后向预测块可以按照预设的第一像素精度在参考帧中偏移得到其他预测块。该第一像素精度可以为整像素精度,也可以为非整像素精度。
可选的,如果前向预测块或后向预测块偏移后为非整像素,则可以将偏移后的像素调整到整像素精度。
本实施例中,第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值、第五匹配失真值、第六匹配失真值中的任意一个匹配失真值包括:两个预测块之间的SAD。
该SAD可以通过如下公式计算:
Figure BDA0001905652970000291
其中,P0[n]为第一预测块、第二预测块、第三预测块、第四预测块、第五预测块或第六预测块中的像素点的像素值,P1[n]为合成预测块中的像素点的像素值,P0[n]和P1[n]在两个预测块中的对应位置相同,L为预测块内的像素点的个数,K为预测块的均值;
K通过如下公式计算:
K=(∑0≤iM<,0≤j<NP0[i][j]-∑0≤iM<,0≤j<NP1[i][j])/M*N
其中,M为预测块采样后宽度方向的像素点个数,N为预测块采样后高度方向的像素点个数,i和j为像素点的编号,P0[i][j]为第一预测块、第二预测块、第三预测块、第四预测块、第五预测块或第六预测块采样后的像素点的像素值,P1[i][j]为合成预测块采样后的像素点的像素值,P0[i][j]和P1[i][j]在两个预测块中的对应位置相同。
该方式中在计算K时,对预测块进行了采样,从而使得K的计算量减少,降低了匹配失真值的计算复杂度。本实施例不对采样方式进行限定,可以将偶数编号或者奇数编号的像素点去掉,
可选的,SAD还可以通过如下方式计算:
Figure BDA0001905652970000301
其中,P0[n]为第一预测块、第二预测块、第三预测块、第四预测块、第五预测块或第六预测块中的像素点的像素值,P1[n]为合成预测块中的像素点的像素值,P0[n]和P1[n]在两个预测块中的对应位置相同,L为预测块内的像素点的个数。
可选的,上述两种方式中,P0[n]为第一预测块、第二预测块、第三预测块、第四预测块、第五预测块或第六预测块采样后的像素点的像素值,P1[n]为合成预测块采样后的像素点的像素值。通过采样减少了SAD的计算量,降低了匹配失真值的计算复杂度。
步骤S404、根据第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值、第五匹配失真值和第六匹配失真值之间的大小关系,确定目标预测块。
示例性,可以通过如下几种确定目标预测块:
(方式一)当第一预测块为前向预测块时,从前向预测块对应的第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值、第五匹配失真值和第六匹配失真值中,确定第一最小匹配失真值。确定第一最小匹配失真值对应的前向预测块、第二预测块、第三预测块、第四预测块、第五预测块或第六预测块为目标预测块。
当第一预测块为后向预测块时,从后向预测块对应的第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值、第五匹配失真值中和第六匹配失真值,确定第二最小匹配失真值。确定第二最小匹配失真值对应的后向预测块、第二预测块、第三预测块、第四预测块、第五预测块或第六预测块为目标预测块。
当第一最匹配失真值为第一匹配失真值时,即前向预测块对应的第二匹配失真值、第三匹配失真值、第四匹配失真值、第五匹配失真值和第六匹配失真值均大于或等于第一匹配失真值,前向预测块为目标预测块。当第二最匹配失真值为第一匹配失真值时,即后向预测块对应的第二匹配失真值、第三匹配失真值、第四匹配失真值、第五匹配失真值和第六匹配失真值均大于或等于第一匹配失真值时,后向预测块为目标预测块。
(方式二)当第二匹配失真值、第三匹配失真值、第四匹配失真值、第五匹配失真值和第六匹配失真值均大于或等于第一匹配失真值时,分别计算第七预测块与合成预测块之间的第七匹配失真值、第八预测块与合成预测块之间的第八匹配失真值、第九预测块与合成预测块之间的第九匹配失真值、第十预测块与合成预测块之间的第十匹配失真值、第十一预测块与合成预测块之间的第十一匹配失真值。
其中,第七预测块、第八预测块、第九预测块、第十预测块、第十一预测块分别为第一预测块按照第二像素精度在参考帧中向上、下、左、右、对角方向偏移时得到的预测块。第二预测块、第三预测块、第四预测块、第五预测块、第六预测块分别为第一预测块按照第一像素精度在参考帧中向上、下、左、右、对角方向偏移时得到的预测块。
当第一预测块为前向预测块时,从第一匹配失真值、第七匹配失真值、第八匹配失真值、第九匹配失真值、第十匹配失真值和第十一匹配失真值中,确定第一最小匹配失真值。确定第一最小匹配失真值对应的前向预测块、第七预测块、第八预测块、第九预测块、第十预测块、第十一预测块为目标预测块。
当第一预测块为后向预测块时,从第一匹配失真值、第七匹配失真值、第八匹配失真值、第九匹配失真值、第十匹配失真值和第十一匹配失真值中,确定第二最小匹配失真值。确定第二最小匹配失真值对应的后向预测块、第七预测块、第八预测块、第九预测块、第十预测块、第十一预测块为目标预测块。
第七匹配失真值、第八匹配失真值、第九匹配失真值、第十匹配失真值和第十一匹配失真值的计算方式参照步骤S102中第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值和第五匹配失真值的计算方式,这里不再赘述。
其中,第一像素精度和第二像素精度不同,第二像素精度可以大于或小于第一像素进度。第一像素精度和第二像素精度均可以为整像素精度或者非整像素精度。示例性的,第一像素精度为整像素精度,第二像素精度为非整像素精度。
当第二像素精度可以大于或小于第一像素进度时,采用更精细化的第二像素精度进行匹配搜索,从而使得确定的目标前向预测块和目标后向预测块更加准确。
需要说明的是,如果第二匹配失真值、第三匹配失真值、第四匹配失真值、第五匹配失真值和第六匹配失真值中的任意一个匹配失真值小于第一匹配失真值,则可以按照方式一确定目标前向预测块和目标后向预测块。
步骤S405、根据目标预测块,确定当前块的目标运动矢量。
本实施例中,在计算匹配失真值时,使用采样后的预测块计算预测块之间的均值,减少了均值的计算量,降低了匹配失真值的计算复杂度,提高了运动矢量的计算效率。
图13为本申请实施例五提供的一种运动矢量的确定装置的示意图,如图13所示,本实施例的装置包括:
计算模块11,用于计算当前块的前向预测块与后向预测块之间的第一匹配失真值;
所述计算模块11,还用于仅分别计算第一预测块与第五预测块之间的第二匹配失真值、第二预测块与第六预测块之间的第三匹配失真值、第三预测块与第七预测块之间的第四匹配失真值、第四预测块与第八预测块之间的第五匹配失真值;其中,所述第一预测块、所述第二预测块、所述第三预测块、所述第四预测块分别为所述前向预测块在前向参考帧中向上、下、左、右偏移时得到的预测块;所述第五预测块、所述第六预测块、所述第七预测块、所述第八预测块分别为所述后向预测块在后向参考帧中向下、上、右、左偏移时得到的预测块;
第一确定模块12,用于根据所述第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值和第五匹配失真值之间的大小关系,确定目标前向预测块和目标后向预测块;
第二确定模块13,用于根据所述目标前向预测块和所述目标后向预测块,确定所述当前块的目标运动矢量。
在一种可能的实施方式中,所述第一确定模块12具体用于:
从所述第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值和第五匹配失真值中确定最小匹配失真值;
确定所述最小匹配失真值对应的所述前向预测块、所述第一预测块、所述第二预测块、所述第三预测块或所述第四预测块为所述目标前向预测块,确定所述最小匹配失真值对应的所述后向预测块、所述第五预测块、所述第六预测块、所述第七预测块或所述第八预测块为所述目标后向预测块。
在一种可能的实施方式中,所述第一预测块、所述第二预测块、所述第三预测块、所述第四预测块分别为所述前向预测块按照第一像素精度在前向参考帧中向上、下、左、右偏移时得到的预测块,所述第五预测块、所述第六预测块、所述第七预测块、所述第八预测块分别为所述后向预测块按照所述第一像素精度在后向参考帧中向下、上、右、左偏移时得到的预测块;
所述计算模块11,还用于当所述第二匹配失真值、第三匹配失真值、第四匹配失真值和第五匹配失真值均大于或等于所述第一匹配失真值时,仅分别计算第九预测块与第十三预测块之间的第六匹配失真值、第十预测块与第十四预测块之间的第七匹配失真值、第十一预测块与第十五预测块之间的第八匹配失真值、第十二预测块与第十六预测块之间的第九匹配失真值;所述第九预测块、所述第十预测块、所述第十一预测块、所述第十二预测块分别为所述前向预测块按照第二像素精度在所述前向参考帧中向上、下、左、右偏移时得到的预测块,所述第十三预测块、所述第十四预测块、所述第十五预测块、所述第十六预测块分别为所述后向预测块按照所述第二像素精度在所述后向参考帧中向下、上、右、左偏移时得到的预测块;
所述第一确定模块12具体用于:
从所述第一匹配失真值、第六匹配失真值、第七匹配失真值、第八匹配失真值和第九匹配失真值中确定最小匹配失真值;
确定所述最小匹配失真值对应的所述前向预测块、所述第九预测块、所述第十预测块、所述第十一预测块或所述第十二预测块为所述目标前向预测块,确定所述最小匹配失真值对应的所述后向预测块、所述第十三预测块、所述第十四预测块、所述第十五预测块或所述第十六预测块为所述目标后向预测块。
在一种可能的实施方式中,所述第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值、第五匹配失真值、第六匹配失真值、第七匹配失真值、第八匹配失真值和第九匹配失真值中的任意一个匹配失真值包括:两个预测块之间的绝对误差和SAD;
所述SAD通过如下公式计算:
Figure BDA0001905652970000321
其中,当P0[n]为所述前向预测块、所述第一预测块、所述第二预测块、所述第三预测块、所述第四预测块、所述第九预测块、所述第十预测块、所述第十一预测块或所述第十二预测块中的像素点的像素值时,P1[n]对应地为所述后向预测块、所述第五预测块、所述第六预测块、所述第七预测块、所述第八预测块、所述第十三预测块、所述第十四预测块、所述第十五预测块或所述第十六预测块中的像素点的像素值,P0[n]和P1[n]在两个预测块中的对应位置相同,L为预测块内的像素点的个数,K为两个预测块之间的均值;
K通过如下公式计算:
K=(∑0≤iM<,0≤j<NP0[i][j]-∑0≤iM<,0≤j<NP1[i][j])/M*N
其中,M为预测块采样后宽度方向的像素点个数,N为预测块采样后高度方向的像素点个数,i和j为像素点的编号,当P0[i][j]为所述前向预测块、所述第一预测块、所述第二预测块、所述第三预测块、所述第四预测块、所述第九预测块、所述第十预测块、所述第十一预测块或所述第十二预测块采样后的像素点的像素值时,P1[i][j]对应地为所述后向预测块、所述第五预测块、所述第六预测块、所述第七预测块、所述第八预测块、所述第十三预测块、所述第十四预测块、所述第十五预测块或所述第十六预测块采样后的像素点的像素值,P0[i][j]和P1[i][j]在两个预测块中的对应位置相同。
在一种可能的实施方式中,所述第一像素精度为整像素精度,所述第二像素精度为半像素精度。
在一种可能的实施方式中,所述SAD通过如下公式计算:
Figure BDA0001905652970000331
其中,当P0[n]为所述前向预测块、所述第一预测块、所述第二预测块、所述第三预测块、所述第四预测块、所述第九预测块、所述第十预测块、所述第十一预测块或所述第十二预测块中的像素点的像素值时,P1[n]对应地为所述后向预测块、所述第五预测块、所述第六预测块、所述第七预测块、所述第八预测块、所述第十三预测块、所述第十四预测块、所述第十五预测块或所述第十六预测块中的像素点的像素值,P0[n]和P1[n]在两个预测块中的对应位置相同,L为预测块内的像素点的个数。
在一种可能的实施方式中,当P0[n]为所述前向预测块、所述第一预测块、所述第二预测块、所述第三预测块、所述第四预测块、所述第九预测块、所述第十预测块、所述第十一预测块或所述第十二预测块采样后的像素点的像素值时,P1[n]对应地为所述后向预测块、所述第五预测块、所述第六预测块、所述第七预测块、所述第八预测块、所述第十三预测块、所述第十四预测块、所述第十五预测块或所述第十六预测块采样后的像素点的像素值,P0[n]和P1[n]在两个采样后的预测块中的对应位置相同,L为采样后的预测块内的像素点的个数。
本实施例的装置,可用于执行实施例一所述的方法,具体实现方式和技术效果类型,这里不再赘述。需要说明的是,上述计算模块11、第一确定模块12、第二确定模块13可应用于编码端或解码端的运动矢量的确定过程。
图14为本申请实施例六提供的一种运动矢量的确定装置的示意图,如图14所示,本实施例的装置包括:
合成模块21,用于根据当前块的前向预测块和后向预测块,确定合成预测块;
计算模块22,用于计算所述第一预测块和所述合成预测块之间的第一匹配失真值,所述第一预测块为所述前向预测块或者所述后向预测块;
所述计算模块22,还用于仅分别计算第二预测块与所述合成预测块之间的第二匹配失真值、第三预测块与所述合成预测块之间的第三匹配失真值、第四预测块与所述合成预测块之间的第四匹配失真值、第五预测块与所述合成预测块之间的第五匹配失真值;其中,所述第二预测块、所述第三预测块、所述第四预测块、所述第五预测块分别为所述第一预测块在参考帧中向上、下、左、右偏移时得到的预测块;
第一确定模块23,用于根据第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值和第五匹配失真值之间的大小关系,确定目标预测块;
第二确定模块24,用于根据所述目标预测块,确定所述当前块的目标运动矢量。
在一种可能的实施方式中,所述第一确定模块23具体用于:
当所述第一预测块为所述前向预测块时,从所述前向预测块对应的第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值和第五匹配失真值中,确定第一最小匹配失真值;
确定所述第一最小匹配失真值对应的所述前向预测块、所述第二预测块、所述第三预测块、所述第四预测块或所述第五预测块为所述目标预测块;
当所述第一预测块为所述后向预测块时,从所述后向预测块对应的第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值和第五匹配失真值中,确定第二最小匹配失真值;
确定所述第二最小匹配失真值对应的所述后向预测块、所述第二预测块、所述第三预测块、所述第四预测块或所述第五预测块为所述目标预测块。
在一种可能的实施方式中,所述第二预测块、所述第三预测块、所述第四预测块、所述第五预测块分别为所述第一预测块按照第一像素精度,在参考帧中向上、下、左、右偏移时得到的预测块;
所述计算模块22,还用于当所述第二匹配失真值、第三匹配失真值、第四匹配失真值和第五匹配失真值均大于或等于所述第一匹配失真值时,仅分别计算第六预测块与所述合成预测块之间的第六匹配失真值、第七预测块与所述合成预测块之间的第七匹配失真值、第八预测块与所述合成预测块之间的第八匹配失真值、第九预测块与所述合成预测块之间的第九匹配失真值;其中,所述第六预测块、所述第七预测块、所述第八预测块、所述第九预测块分别为所述第一预测块按照第二像素精度在所述参考帧中向上、下、左、右偏移时得到的预测块;
所述第一确定模块23具体用于:
当所述第一预测块为所述前向预测块时,从所述第一匹配失真值、第六匹配失真值、第七匹配失真值、第八匹配失真值和第九匹配失真值中,确定第一最小匹配失真值;
确定所述第一最小匹配失真值对应的所述前向预测块、所述第六预测块、所述第七预测块、所述第八预测块或所述第九预测块为所述目标预测块;
当所述第一预测块为所述后向预测块时,从所述第一匹配失真值、第六匹配失真值、第七匹配失真值、第八匹配失真值和第九匹配失真值中,确定第二最小匹配失真值;
确定所述第二最小匹配失真值对应的所述后向预测块、所述第六预测块、所述第七预测块、所述第八预测块或所述第九预测块为所述目标预测块。
在一种可能的实施方式中,所述第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值、第五匹配失真值、第六匹配失真值、第七匹配失真值、第八匹配失真值和第九匹配失真值中的任意一个匹配失真值包括:两个预测块之间的绝对误差和SAD;
所述SAD通过如下公式计算:
Figure BDA0001905652970000341
其中,P0[n]为所述第一预测块、所述第二预测块、所述第三预测块、所述第四预测块、所述第五预测块、所述第六预测块、所述第七预测块、所述第八预测块、所述第九预测块中的像素点的像素值,P1[n]为所述合成预测块中的像素点的像素值,P0[n]和P1[n]在两个预测块中的对应位置相同,L为预测块内的像素点的个数,K为两个预测块之间的均值;
K通过如下公式计算:
K=(∑0≤iM<,0≤j<NP0[i][j]-∑0≤iM<,0≤j<NP1[i][j])/M*N
其中,M为预测块采样后宽度方向的像素点个数,N为预测块采样后高度方向的像素点个数,i和j为像素点的编号,P0[i][j]为所述第一预测块、所述第二预测块、所述第三预测块、所述第四预测块、所述第五预测块所述第六预测块、所述第七预测块、所述第八预测块、所述第九预测块采样后的像素点的像素值,P1[i][j]为所述合成预测块采样后的像素点的像素值,P0[i][j]和P1[i][j]在两个预测块中的对应位置相同。
在一种可能的实施方式中,所述第一像素精度为整像素精度,所述第二像素精度为半像素精度。
在一种可能的实施方式中,所述SAD通过如下公式计算:
Figure BDA0001905652970000351
其中,P0[n]为所述第一预测块、所述第二预测块、所述第三预测块、所述第四预测块、所述第五预测块、所述第六预测块、所述第七预测块、所述第八预测块、所述第九预测块中的像素点的像素值,P1[n]为所述合成预测块中的像素点的像素值,P0[n]和P1[n]在两个预测块中的对应位置相同,L为预测块内的像素点的个数。
在一种可能的实施方式中,P0[n]为所述第一预测块、所述第二预测块、所述第三预测块、所述第四预测块、所述第五预测块、所述第六预测块、所述第七预测块、所述第八预测块、所述第九预测块采样后的像素点的像素值,P1[n]为所述合成预测块采样后的像素点的像素值,P0[n]和P1[n]在两个采样后的预测块中的对应位置相同,L为采样后的预测块内的像素点的个数。
本实施例的装置,可用于执行实施例二所述的方法,具体实现方式和技术效果类型,这里不再赘述。需要说明的是,上述合成模块21、计算模块22、第一确定模块23、第二确定模块24可应用于编码端或解码端的运动矢量的确定过程。
图15为本申请实施例七提供的一种运动矢量的确定装置的示意图,如图15所示,本实施例的装置包括:
计算模块31,用于计算当前块的前向预测块与后向预测块之间的第一匹配失真值;
所述计算模块31,还用于分别计算第一预测块与第六预测块之间的第二匹配失真值、第二预测块与第七预测块之间的第三匹配失真值、第三预测块与第八预测块之间的第四匹配失真值、第四预测块与第九预测块之间的第五匹配失真值、第五预测块与第十预测块之间的第六匹配失真值;其中,所述第一预测块、所述第二预测块、所述第三预测块、所述第四预测块、所述第五预测块分别为所述前向预测块在前向参考帧中向上、下、左、右、对角方向偏移时得到的预测块;所述第六预测块、所述第七预测块、所述第八预测块、所述第九预测块、所述第十预测块分别为所述后向预测块在后向参考帧中向下、上、右、左、所述对角方向的反方向偏移时得到的预测块,当所述对角方向为左上、左下、右上或右下时,所述对角方向的反方向对应为右下、右上、左下或左上;
所述第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值、第五匹配失真值、第六匹配失真值中的任意一个匹配失真值包括:两个预测块之间的绝对误差和SAD;
所述SAD通过如下公式计算:
Figure BDA0001905652970000352
其中,当P0[n]为所述前向预测块、所述第一预测块、所述第二预测块、所述第三预测块、所述第四预测块或所述第五预测块中的像素点的像素值时,P1[n]对应地为所述后向预测块、所述第六预测块、所述第七预测块、所述第八预测块、所述第九预测块或所述第十预测块中的像素点的像素值,P0[n]和P1[n]在两个预测块中的对应位置相同,L为预测块内的像素点的个数,K为预测块的均值;
K通过如下公式计算:
K=(∑0≤iM<,0≤j<NP0[i][j]-∑0≤iM<,0≤j<NP1[i][j])/M*N
其中,M为预测块采样后宽度方向的像素点个数,N为预测块采样后高度方向的像素点个数,i和j为像素点的编号,当P0[i][j]为所述前向预测块、所述第一预测块、所述第二预测块、所述第三预测块、所述第四预测块或所述第五预测块采样后的像素点的像素值时,P1[i][j]对应地为所述后向预测块、所述第六预测块、所述第七预测块、所述第八预测块、所述第九预测块或所述第十预测块采样后的像素点的像素值,P0[i][j]和P1[i][j]在两个预测块中的对应位置相同;
第一确定模块32,用于根据所述第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值、第五匹配失真值和第六匹配失真值之间的大小关系,确定目标前向预测块和目标后向预测块;
所述第二确定模块33,还用于根据所述目标前向预测块和所述目标后向预测块,确定所述当前块的目标运动矢量。
在一种可能的实施方式中,所述第一确定模块32具体用于:
从所述第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值、第五匹配失真值和第六匹配失真值中确定最小匹配失真值;
确定所述最小匹配失真值对应的所述前向预测块、所述第一预测块、所述第二预测块、所述第三预测块、所述第四预测块或所述第五预测块为所述目标前向预测块,确定所述最小匹配失真值对应的所述后向预测块、所述第六预测块、所述第七预测块、所述第八预测块、所述第九预测块或所述第十预测块为所述目标后向预测块。
在一种可能的实施方式中,所述第一预测块、所述第二预测块、所述第三预测块、所述第四预测块、所述第五预测块分别为所述前向预测块按照第一像素精度在前向参考帧中向上、下、左、右、对角方向偏移时得到的预测块;所述第六预测块、所述第七预测块、所述第八预测块、所述第九预测块、所述第十预测块分别为所述后向预测块按照所述第一像素精度在后向参考帧中向下、上、右、左、所述对角方向的反方向偏移时得到的预测块;
所述计算模块31,还用于当所述第二匹配失真值、第三匹配失真值、第四匹配失真值、第五匹配失真值和第六匹配失真值均大于或等于所述第一匹配失真值时,分别计算第十一预测块与第十六预测块之间的第七匹配失真值、第十二预测块与第十七预测块之间的第八匹配失真值、第十三预测块与第十八预测块之间的第九匹配失真值、第十四预测块与第十九预测块之间的第十匹配失真值、第十五预测块与第二十预测块之间的第十一匹配失真值;其中,所述第十一预测块、所述第十二预测块、所述第十三预测块、所述第十四预测块、所述第十五预测块分别为所述前向预测块按照第二像素精度在前向参考帧中向上、下、左、右、对角方向偏移时得到的预测块;所述第十六预测块、所述第十七预测块、所述第十八预测块、所述第十九预测块、所述第二十预测块分别为所述后向预测块按照所述第二像素精度在后向参考帧中向下、上、右、左、所述对角方向的反方向偏移时得到的预测块;
所述第一确定模块32具体用于:
从所述第一匹配失真值、第七匹配失真值、第八匹配失真值、第九匹配失真值、第十匹配失真值和第十一匹配失真值中确定最小匹配失真值;
确定所述最小匹配失真值对应的所述前向预测块、所述第十一预测块、所述第十二预测块、所述第十三预测块、所述第十四预测块或所述第十五预测块为所述目标前向预测块,确定所述最小匹配失真值对应的所述后向预测块、所述第十六预测块、所述第十七预测块、所述第十八预测块、所述第十九预测块或所述第二十预测块为所述目标后向预测块。
在一种可能的实施方式中,所述第一像素精度为整像素精度,所述第二像素精度为半像素精度。
在一种可能的实施方式中,当P0[n]为所述前向预测块、所述第一预测块、所述第二预测块、所述第三预测块、所述第四预测块或所述第五预测块采样后的像素点的像素值时,P1[n]对应地为所述后向预测块、所述第六预测块、所述第七预测块、所述第八预测块、所述第九预测块或所述第十预测块采样后的像素点的像素值,P0[n]和P1[n]在两个采样后的预测块中的对应位置相同,L为采样后的预测块内的像素点的个数。
本实施例的装置,可用于执行实施例三所述的方法,具体实现方式和技术效果类型,这里不再赘述。需要说明的是,上述计算模块31、第一确定模块32、第二确定模块33可应用于编码端或解码端的运动矢量的确定过程。
图16为本申请实施例八提供的一种运动矢量的确定装置的示意图,如图16所示,本实施例的装置包括:
合成模块41,用于根据当前块的前向预测块和后向预测块,确定合成预测块;
计算模块42,用于计算所述第一预测块和所述合成预测块之间的第一匹配失真值,所述第一预测块为所述前向预测块或者所述后向预测块;
所述计算模块42,还用于分别计算第二预测块与所述合成预测块之间的第二匹配失真值、第三预测块与所述合成预测块之间的第三匹配失真值、第四预测块与所述合成预测块之间的第四匹配失真值、第五预测块与所述合成预测块之间的第五匹配失真值、第六预测块与所述合成预测块之间的第六匹配失真值;其中,所述第二预测块、所述第三预测块、所述第四预测块、所述第五预测块、所述第六预测块分别为所述第一预测块在参考帧中向上、下、左、右、对角方向偏移时得到的预测块,当所述对角方向为左上、左下、右上或右下时,所述对角方向的反方向对应为右下、右上、左下或左上;
所述第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值、第五匹配失真值、第六匹配失真值中的任意一个匹配失真值包括:两个预测块之间的绝对误差和SAD;
所述SAD通过如下公式计算:
Figure BDA0001905652970000371
其中,P0[n]为所述第一预测块、所述第二预测块、所述第三预测块、所述第四预测块、所述第五预测块或所述第六预测块中的像素点的像素值,P1[n]为所述合成预测块中的像素点的像素值,P0[n]和P1[n]在两个预测块中的对应位置相同,L为预测块内的像素点的个数,K为预测块的均值;
K通过如下公式计算:
K=(∑0≤iM<,0≤j<NP0[i][j]-∑0≤iM<,0≤j<NP1[i][j])/M*N
其中,M为预测块采样后宽度方向的像素点个数,N为预测块采样后高度方向的像素点个数,i和j为像素点的编号,P0[i][j]为所述第一预测块、所述第二预测块、所述第三预测块、所述第四预测块、所述第五预测块或所述第六预测块采样后的像素点的像素值,P1[i][j]为所述合成预测块采样后的像素点的像素值,P0[i][j]和P1[i][j]在两个预测块中的对应位置相同;
第一确定模块43,用于根据第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值、第五匹配失真值和第六匹配失真值之间的大小关系,确定目标预测块;
第二确定模块44,用于根据所述目标预测块,确定所述当前块的目标运动矢量。
在一种可能的实施方式中,所述第一确定模块43具体用于:
当所述第一预测块为所述前向预测块时,从所述前向预测块对应的第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值、第五匹配失真值和第六匹配失真值中,确定第一最小匹配失真值;
确定所述第一最小匹配失真值对应的所述前向预测块、所述第二预测块、所述第三预测块、所述第四预测块、所述第五预测块或所述第六预测块为所述目标预测块;
当所述第一预测块为所述后向预测块时,从所述后向预测块对应的第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值、第五匹配失真值中和第六匹配失真值,确定第二最小匹配失真值;
确定所述第二最小匹配失真值对应的所述后向预测块、所述第二预测块、所述第三预测块、所述第四预测块、所述第五预测块或所述第六预测块为所述目标预测块。
在一种可能的实施方式中,所述第二预测块、所述第三预测块、所述第四预测块、所述第五预测块、所述第六预测块分别为所述第一预测块按照第一像素精度在参考帧中向上、下、左、右、对角方向偏移时得到的预测块;
所述计算模块42,还用于当所述第二匹配失真值、第三匹配失真值、第四匹配失真值、第五匹配失真值和第六匹配失真值均大于或等于所述第一匹配失真值时,分别计算第七预测块与所述合成预测块之间的第七匹配失真值、第八预测块与所述合成预测块之间的第八匹配失真值、第九预测块与所述合成预测块之间的第九匹配失真值、第十预测块与所述合成预测块之间的第十匹配失真值、第十一预测块与所述合成预测块之间的第十一匹配失真值;其中,所述第七预测块、所述第八预测块、所述第九预测块、所述第十预测块、所述第十一预测块分别为所述第一预测块按照第二像素精度在所述参考帧中向上、下、左、右、对角方向偏移时得到的预测块;
所述第一确定模块43具体用于:
当所述第一预测块为所述前向预测块时,从所述第一匹配失真值、第七匹配失真值、第八匹配失真值、第九匹配失真值、第十匹配失真值和第十一匹配失真值中,确定第一最小匹配失真值;
确定所述第一最小匹配失真值对应的前向预测块、所述第七预测块、所述第八预测块、所述第九预测块、所述第十预测块或所述第十一预测块为所述目标预测块;
当所述第一预测块为所述后向预测块时,从所述第一匹配失真值、第七匹配失真值、第八匹配失真值、第九匹配失真值、第十匹配失真值和第十一匹配失真值中,确定第二最小匹配失真值;
确定所述第二最小匹配失真值对应的所述后向预测块、所述第七预测块、所述第八预测块、所述第九预测块、所述第十预测块或所述第十一预测块为所述目标预测块。
在一种可能的实施方式中,所述第一像素精度为整像素精度,所述第二像素精度为半像素精度。
在一种可能的实施方式中,P0[n]为所述第一预测块、所述第二预测块、所述第三预测块、所述第四预测块、所述第五预测块或所述第六预测块采样后的像素点的像素值,P1[n]为所述合成预测块采样后的像素点的像素值,P0[n]和P1[n]在两个采样后的预测块中的对应位置相同,L为采样后的预测块内的像素点的个数。
本实施例的装置,可用于执行实施例四所述的方法,具体实现方式和技术效果类型,这里不再赘述。需要说明的是,上述合成模块42、计算模块43、第一确定模块43、第二确定模块44可应用于编码端或解码端的运动矢量的确定过程。
实施例五至实施例八中各功能模块可由编码器、解码器或者处理器实现。处理器可以实现为一个或多个中央处理单元(Central Processing Unit,CPU)芯片、核(例如,多核处理器)、现场课编程门阵列(Field-Programmable Gate Array,FPGA)、专用集成电路(Application Specific Integrated Circuit,ASIC)和数字信号处理器(Digital SignalProcessing,DSP)。
图17为本申请实施例九提供的一种视频编解码设备的示意图,如图17所示,本实施例的视频编解码设备500包括处理器51、存储器52和总线系统53。其中,处理器51和存储器52通过总线系统53相连,该存储器52用于存储指令,该处理器51用于执行该存储器52存储的指令。视频编解码设备500的存储器52存储程序代码,且处理器51可以调用存储器52中存储的程序代码执行本申请实施例一至实施例四中任一实施例所述的方法,具体实现方式参照方法实施例的描述,这里不再详细描述。
在本申请实施例中,该处理器51可以是CPU,该处理器51还可以是其他通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
该存储器52可以包括只读存储器(Read-Only Memory,ROM)设备或者随机存取存储器(random access memory,RAM)设备。任何其他适宜类型的存储设备也可以用作存储器52。存储器52可以包括由处理器51使用总线系统53访问的代码和数据。
该总线系统53除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线系统53。
可选的,视频编解码设备500还可以包括一个或多个输出设备,诸如显示器。在一个示例中,显示器可以是触感显示器,其将显示器与可操作地感测触摸输入的触感单元合并。显示器可以经由总线系统53连接到处理器51。
在上述实施例中,对各个实施例的描述各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
以上所述,仅为本申请示例性的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。

Claims (40)

1.一种运动矢量的确定方法,其特征在于,包括:
计算当前块的前向预测块与后向预测块之间的第一匹配失真值;
仅分别计算第一预测块与第五预测块之间的第二匹配失真值、第二预测块与第六预测块之间的第三匹配失真值、第三预测块与第七预测块之间的第四匹配失真值、第四预测块与第八预测块之间的第五匹配失真值;其中,所述第一预测块、所述第二预测块、所述第三预测块、所述第四预测块分别为所述前向预测块在前向参考帧中向上、下、左、右偏移时得到的预测块;所述第五预测块、所述第六预测块、所述第七预测块、所述第八预测块分别为所述后向预测块在后向参考帧中向下、上、右、左偏移时得到的预测块;
根据所述第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值和第五匹配失真值之间的大小关系,确定目标前向预测块和目标后向预测块;
根据所述目标前向预测块和所述目标后向预测块,确定所述当前块的目标运动矢量。
2.根据权利要求1所述的方法,其特征在于,所述根据所述第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值和第五匹配失真值之间的大小关系,确定目标前向预测块和目标后向预测块,包括:
从所述第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值和第五匹配失真值中确定最小匹配失真值;
确定所述最小匹配失真值对应的所述前向预测块、所述第一预测块、所述第二预测块、所述第三预测块或所述第四预测块为所述目标前向预测块,确定所述最小匹配失真值对应的所述后向预测块、所述第五预测块、所述第六预测块、所述第七预测块或所述第八预测块为所述目标后向预测块。
3.根据权利要求1所述的方法,其特征在于,所述第一预测块、所述第二预测块、所述第三预测块、所述第四预测块分别为所述前向预测块按照第一像素精度在前向参考帧中向上、下、左、右偏移时得到的预测块,所述第五预测块、所述第六预测块、所述第七预测块、所述第八预测块分别为所述后向预测块按照所述第一像素精度在后向参考帧中向下、上、右、左偏移时得到的预测块;
所述根据所述第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值和第五匹配失真值之间的大小关系,确定目标前向预测块和目标后向预测块,包括:
当所述第二匹配失真值、第三匹配失真值、第四匹配失真值和第五匹配失真值均大于或等于所述第一匹配失真值时,仅分别计算第九预测块与第十三预测块之间的第六匹配失真值、第十预测块与第十四预测块之间的第七匹配失真值、第十一预测块与第十五预测块之间的第八匹配失真值、第十二预测块与第十六预测块之间的第九匹配失真值;所述第九预测块、所述第十预测块、所述第十一预测块、所述第十二预测块分别为所述前向预测块按照第二像素精度在所述前向参考帧中向上、下、左、右偏移时得到的预测块,所述第十三预测块、所述第十四预测块、所述第十五预测块、所述第十六预测块分别为所述后向预测块按照所述第二像素精度在所述后向参考帧中向下、上、右、左偏移时得到的预测块;
从所述第一匹配失真值、第六匹配失真值、第七匹配失真值、第八匹配失真值和第九匹配失真值中确定最小匹配失真值;
确定所述最小匹配失真值对应的所述前向预测块、所述第九预测块、所述第十预测块、所述第十一预测块或所述第十二预测块为所述目标前向预测块,确定所述最小匹配失真值对应的所述后向预测块、所述第十三预测块、所述第十四预测块、所述第十五预测块或所述第十六预测块为所述目标后向预测块。
4.根据权利要求3所述的方法,其特征在于,所述第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值、第五匹配失真值、第六匹配失真值、第七匹配失真值、第八匹配失真值和第九匹配失真值中的任意一个匹配失真值包括:两个预测块之间的绝对误差和SAD;
所述SAD通过如下公式计算:
Figure FDA0003345263020000021
其中,当P0[n]为所述前向预测块、所述第一预测块、所述第二预测块、所述第三预测块、所述第四预测块、所述第九预测块、所述第十预测块、所述第十一预测块或所述第十二预测块中的像素点的像素值时,P1[n]对应地为所述后向预测块、所述第五预测块、所述第六预测块、所述第七预测块、所述第八预测块、所述第十三预测块、所述第十四预测块、所述第十五预测块或所述第十六预测块中的像素点的像素值,P0[n]和P1[n]在两个预测块中的对应位置相同,L为预测块内的像素点的个数,K为两个预测块之间的均值;
K通过如下公式计算:
K=(∑0≤iM<,0≤j<NP0[i][j]-∑0≤iM<,0≤j<NP1[i][j])/M*N
其中,M为预测块采样后宽度方向的像素点个数,N为预测块采样后高度方向的像素点个数,i和j为像素点的编号,当P0[i][j]为所述前向预测块、所述第一预测块、所述第二预测块、所述第三预测块、所述第四预测块、所述第九预测块、所述第十预测块、所述第十一预测块或所述第十二预测块采样后的像素点的像素值时,P1[i][j]对应地为所述后向预测块、所述第五预测块、所述第六预测块、所述第七预测块、所述第八预测块、所述第十三预测块、所述第十四预测块、所述第十五预测块或所述第十六预测块采样后的像素点的像素值,P0[i][j]和P1[i][j]在两个预测块中的对应位置相同。
5.根据权利要求4所述的方法,其特征在于,所述第一像素精度为整像素精度,所述第二像素精度为半像素精度。
6.一种运动矢量的确定方法,其特征在于,包括:
根据当前块的前向预测块和后向预测块,确定合成预测块;
计算第一预测块和所述合成预测块之间的第一匹配失真值,所述第一预测块为所述前向预测块或者所述后向预测块;
仅分别计算第二预测块与所述合成预测块之间的第二匹配失真值、第三预测块与所述合成预测块之间的第三匹配失真值、第四预测块与所述合成预测块之间的第四匹配失真值、第五预测块与所述合成预测块之间的第五匹配失真值;其中,所述第二预测块、所述第三预测块、所述第四预测块、所述第五预测块分别为所述第一预测块在参考帧中向上、下、左、右偏移时得到的预测块;
根据第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值和第五匹配失真值之间的大小关系,确定目标预测块;
根据所述目标预测块,确定所述当前块的目标运动矢量。
7.根据权利要求6所述的方法,其特征在于,所述根据第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值和第五匹配失真值之间的大小关系,确定目标预测块,包括:
当所述第一预测块为所述前向预测块时,从所述前向预测块对应的第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值和第五匹配失真值中,确定第一最小匹配失真值;
确定所述第一最小匹配失真值对应的所述前向预测块、所述第二预测块、所述第三预测块、所述第四预测块或所述第五预测块为所述目标预测块;
当所述第一预测块为所述后向预测块时,从所述后向预测块对应的第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值和第五匹配失真值中,确定第二最小匹配失真值;
确定所述第二最小匹配失真值对应的所述后向预测块、所述第二预测块、所述第三预测块、所述第四预测块或所述第五预测块为所述目标预测块。
8.根据权利要求6所述的方法,其特征在于,所述第二预测块、所述第三预测块、所述第四预测块、所述第五预测块分别为所述第一预测块按照第一像素精度,在参考帧中向上、下、左、右偏移时得到的预测块;
所述根据第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值和第五匹配失真值之间的大小关系,确定目标预测块,包括:
当所述第二匹配失真值、第三匹配失真值、第四匹配失真值和第五匹配失真值均大于或等于所述第一匹配失真值时,仅分别计算第六预测块与所述合成预测块之间的第六匹配失真值、第七预测块与所述合成预测块之间的第七匹配失真值、第八预测块与所述合成预测块之间的第八匹配失真值、第九预测块与所述合成预测块之间的第九匹配失真值;其中,所述第六预测块、所述第七预测块、所述第八预测块、所述第九预测块分别为所述第一预测块按照第二像素精度在所述参考帧中向上、下、左、右偏移时得到的预测块;
当所述第一预测块为所述前向预测块时,从所述第一匹配失真值、第六匹配失真值、第七匹配失真值、第八匹配失真值和第九匹配失真值中,确定第一最小匹配失真值;
确定所述第一最小匹配失真值对应的所述前向预测块、所述第六预测块、所述第七预测块、所述第八预测块或所述第九预测块为所述目标预测块;
当所述第一预测块为所述后向预测块时,从所述第一匹配失真值、第六匹配失真值、第七匹配失真值、第八匹配失真值和第九匹配失真值中,确定第二最小匹配失真值;
确定所述第二最小匹配失真值对应的所述后向预测块、所述第六预测块、所述第七预测块、所述第八预测块或所述第九预测块为所述目标预测块。
9.根据权利要求8所述的方法,其特征在于,所述第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值、第五匹配失真值、第六匹配失真值、第七匹配失真值、第八匹配失真值和第九匹配失真值中的任意一个匹配失真值包括:两个预测块之间的绝对误差和SAD;
所述SAD通过如下公式计算:
Figure FDA0003345263020000031
其中,P0[n]为所述第一预测块、所述第二预测块、所述第三预测块、所述第四预测块、所述第五预测块、所述第六预测块、所述第七预测块、所述第八预测块、所述第九预测块中的像素点的像素值,P1[n]为所述合成预测块中的像素点的像素值,P0[n]和P1[n]在两个预测块中的对应位置相同,L为预测块内的像素点的个数,K为两个预测块之间的均值;
K通过如下公式计算:
K=(∑0≤iM<,0≤j<NP0[i][j]-∑0≤iM<,0≤j<NP1[i][j])/M*N
其中,M为预测块采样后宽度方向的像素点个数,N为预测块采样后高度方向的像素点个数,i和j为像素点的编号,P0[i][j]为所述第一预测块、所述第二预测块、所述第三预测块、所述第四预测块、所述第五预测块所述第六预测块、所述第七预测块、所述第八预测块、所述第九预测块采样后的像素点的像素值,P1[i][j]为所述合成预测块采样后的像素点的像素值,P0[i][j]和P1[i][j]在两个预测块中的对应位置相同。
10.根据权利要求9所述的方法,其特征在于,所述第一像素精度为整像素精度,所述第二像素精度为半像素精度。
11.一种运动矢量的确定方法,其特征在于,包括:
计算当前块的前向预测块与后向预测块之间的第一匹配失真值;
分别计算第一预测块与第六预测块之间的第二匹配失真值、第二预测块与第七预测块之间的第三匹配失真值、第三预测块与第八预测块之间的第四匹配失真值、第四预测块与第九预测块之间的第五匹配失真值、第五预测块与第十预测块之间的第六匹配失真值;其中,所述第一预测块、所述第二预测块、所述第三预测块、所述第四预测块、所述第五预测块分别为所述前向预测块在前向参考帧中向上、下、左、右、对角方向偏移时得到的预测块;所述第六预测块、所述第七预测块、所述第八预测块、所述第九预测块、所述第十预测块分别为所述后向预测块在后向参考帧中向下、上、右、左、所述对角方向的反方向偏移时得到的预测块,当所述对角方向为左上、左下、右上或右下时,所述对角方向的反方向对应为右下、右上、左下或左上;
所述第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值、第五匹配失真值、第六匹配失真值中的任意一个匹配失真值包括:两个预测块之间的绝对误差和SAD;
所述SAD通过如下公式计算:
Figure FDA0003345263020000041
其中,当P0[n]为所述前向预测块、所述第一预测块、所述第二预测块、所述第三预测块、所述第四预测块或所述第五预测块中的像素点的像素值时,P1[n]对应地为所述后向预测块、所述第六预测块、所述第七预测块、所述第八预测块、所述第九预测块或所述第十预测块中的像素点的像素值,P0[n]和P1[n]在两个预测块中的对应位置相同,L为预测块内的像素点的个数,K为预测块的均值;
K通过如下公式计算:
K=(∑0≤iM<,0≤j<NP0[i][j]-∑0≤iM<,0≤j<NP1[i][j])/M*N
其中,M为预测块采样后宽度方向的像素点个数,N为预测块采样后高度方向的像素点个数,i和j为像素点的编号,当P0[i][j]为所述前向预测块、所述第一预测块、所述第二预测块、所述第三预测块、所述第四预测块或所述第五预测块采样后的像素点的像素值时,P1[i][j]对应地为所述后向预测块、所述第六预测块、所述第七预测块、所述第八预测块、所述第九预测块或所述第十预测块采样后的像素点的像素值,P0[i][j]和P1[i][j]在两个预测块中的对应位置相同;
根据所述第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值、第五匹配失真值和第六匹配失真值之间的大小关系,确定目标前向预测块和目标后向预测块;
根据所述目标前向预测块和所述目标后向预测块,确定所述当前块的目标运动矢量。
12.根据权利要求11所述的方法,其特征在于,所述根据所述第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值、第五匹配失真值和第六匹配失真值之间的大小关系,确定目标前向预测块和目标后向预测块,包括:
从所述第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值、第五匹配失真值和第六匹配失真值中确定最小匹配失真值;
确定所述最小匹配失真值对应的所述前向预测块、所述第一预测块、所述第二预测块、所述第三预测块、所述第四预测块或所述第五预测块为所述目标前向预测块,确定所述最小匹配失真值对应的所述后向预测块、所述第六预测块、所述第七预测块、所述第八预测块、所述第九预测块或所述第十预测块为所述目标后向预测块。
13.根据权利要求11所述的方法,其特征在于,所述第一预测块、所述第二预测块、所述第三预测块、所述第四预测块、所述第五预测块分别为所述前向预测块按照第一像素精度在前向参考帧中向上、下、左、右、对角方向偏移时得到的预测块;所述第六预测块、所述第七预测块、所述第八预测块、所述第九预测块、所述第十预测块分别为所述后向预测块按照所述第一像素精度在后向参考帧中向下、上、右、左、所述对角方向的反方向偏移时得到的预测块;
所述根据所述第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值、第五匹配失真值和第六匹配失真值之间的大小关系,确定目标前向预测块和目标后向预测块,包括:
当所述第二匹配失真值、第三匹配失真值、第四匹配失真值、第五匹配失真值和第六匹配失真值均大于或等于所述第一匹配失真值时,分别计算第十一预测块与第十六预测块之间的第七匹配失真值、第十二预测块与第十七预测块之间的第八匹配失真值、第十三预测块与第十八预测块之间的第九匹配失真值、第十四预测块与第十九预测块之间的第十匹配失真值、第十五预测块与第二十预测块之间的第十一匹配失真值;其中,所述第十一预测块、所述第十二预测块、所述第十三预测块、所述第十四预测块、所述第十五预测块分别为所述前向预测块按照第二像素精度在前向参考帧中向上、下、左、右、对角方向偏移时得到的预测块;所述第十六预测块、所述第十七预测块、所述第十八预测块、所述第十九预测块、所述第二十预测块分别为所述后向预测块按照所述第二像素精度在后向参考帧中向下、上、右、左、所述对角方向的反方向偏移时得到的预测块;
从所述第一匹配失真值、第七匹配失真值、第八匹配失真值、第九匹配失真值、第十匹配失真值和第十一匹配失真值中确定最小匹配失真值;
确定所述最小匹配失真值对应的所述前向预测块、所述第十一预测块、所述第十二预测块、所述第十三预测块、所述第十四预测块或所述第十五预测块为所述目标前向预测块,确定所述最小匹配失真值对应的所述后向预测块、所述第十六预测块、所述第十七预测块、所述第十八预测块、所述第十九预测块或所述第二十预测块为所述目标后向预测块。
14.根据权利要求13所述的方法,其特征在于,所述第一像素精度为整像素精度,所述第二像素精度为半像素精度。
15.一种运动矢量的确定方法,其特征在于,包括:
根据当前块的前向预测块和后向预测块,确定合成预测块;
计算第一预测块和所述合成预测块之间的第一匹配失真值,所述第一预测块为所述前向预测块或者所述后向预测块;
分别计算第二预测块与所述合成预测块之间的第二匹配失真值、第三预测块与所述合成预测块之间的第三匹配失真值、第四预测块与所述合成预测块之间的第四匹配失真值、第五预测块与所述合成预测块之间的第五匹配失真值、第六预测块与所述合成预测块之间的第六匹配失真值;其中,所述第二预测块、所述第三预测块、所述第四预测块、所述第五预测块、所述第六预测块分别为所述第一预测块在参考帧中向上、下、左、右、对角方向偏移时得到的预测块,当所述对角方向为左上、左下、右上或右下时,所述对角方向的反方向对应为右下、右上、左下或左上;
所述第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值、第五匹配失真值、第六匹配失真值中的任意一个匹配失真值包括:两个预测块之间的绝对误差和SAD;
所述SAD通过如下公式计算:
Figure FDA0003345263020000061
其中,P0[n]为所述第一预测块、所述第二预测块、所述第三预测块、所述第四预测块、所述第五预测块或所述第六预测块中的像素点的像素值,P1[n]为所述合成预测块中的像素点的像素值,P0[n]和P1[n]在两个预测块中的对应位置相同,L为预测块内的像素点的个数,K为预测块的均值;
K通过如下公式计算:
K=(∑0≤iM<,0≤j<NP0[i][j]-∑0≤iM<,0≤j<NP1[i][j])/M*N
其中,M为预测块采样后宽度方向的像素点个数,N为预测块采样后高度方向的像素点个数,i和j为像素点的编号,P0[i][j]为所述第一预测块、所述第二预测块、所述第三预测块、所述第四预测块、所述第五预测块或所述第六预测块采样后的像素点的像素值,P1[i][j]为所述合成预测块采样后的像素点的像素值,P0[i][j]和P1[i][j]在两个预测块中的对应位置相同;
根据第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值、第五匹配失真值和第六匹配失真值之间的大小关系,确定目标预测块;
根据所述目标预测块,确定所述当前块的目标运动矢量。
16.根据权利要求15所述的方法,其特征在于,所述根据第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值、第五匹配失真值和第六匹配失真值之间的大小关系,确定目标预测块,包括:
当所述第一预测块为所述前向预测块时,从所述前向预测块对应的第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值、第五匹配失真值和第六匹配失真值中,确定第一最小匹配失真值;
确定所述第一最小匹配失真值对应的所述前向预测块、所述第二预测块、所述第三预测块、所述第四预测块、所述第五预测块或所述第六预测块为所述目标预测块;
当所述第一预测块为所述后向预测块时,从所述后向预测块对应的第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值、第五匹配失真值中和第六匹配失真值,确定第二最小匹配失真值;
确定所述第二最小匹配失真值对应的所述后向预测块、所述第二预测块、所述第三预测块、所述第四预测块、所述第五预测块或所述第六预测块为所述目标预测块。
17.根据权利要求15所述的方法,其特征在于,所述第二预测块、所述第三预测块、所述第四预测块、所述第五预测块、所述第六预测块分别为所述第一预测块按照第一像素精度在参考帧中向上、下、左、右、对角方向偏移时得到的预测块;
所述根据第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值、第五匹配失真值和第六匹配失真值之间的大小关系,确定目标预测块,包括:
当所述第二匹配失真值、第三匹配失真值、第四匹配失真值、第五匹配失真值和第六匹配失真值均大于或等于所述第一匹配失真值时,分别计算第七预测块与所述合成预测块之间的第七匹配失真值、第八预测块与所述合成预测块之间的第八匹配失真值、第九预测块与所述合成预测块之间的第九匹配失真值、第十预测块与所述合成预测块之间的第十匹配失真值、第十一预测块与所述合成预测块之间的第十一匹配失真值;其中,所述第七预测块、所述第八预测块、所述第九预测块、所述第十预测块、所述第十一预测块分别为所述第一预测块按照第二像素精度在所述参考帧中向上、下、左、右、对角方向偏移时得到的预测块;
当所述第一预测块为所述前向预测块时,从所述第一匹配失真值、第七匹配失真值、第八匹配失真值、第九匹配失真值、第十匹配失真值和第十一匹配失真值中,确定第一最小匹配失真值;
确定所述第一最小匹配失真值对应的前向预测块、所述第七预测块、所述第八预测块、所述第九预测块、所述第十预测块或所述第十一预测块为所述目标预测块;
当所述第一预测块为所述后向预测块时,从所述第一匹配失真值、第七匹配失真值、第八匹配失真值、第九匹配失真值、第十匹配失真值和第十一匹配失真值中,确定第二最小匹配失真值;
确定所述第二最小匹配失真值对应的所述后向预测块、所述第七预测块、所述第八预测块、所述第九预测块、所述第十预测块或所述第十一预测块为所述目标预测块。
18.根据权利要求17所述的方法,其特征在于,所述第一像素精度为整像素精度,所述第二像素精度为半像素精度。
19.一种运动矢量的确定装置,其特征在于,包括:
计算模块,用于计算当前块的前向预测块与后向预测块之间的第一匹配失真值;
所述计算模块,还用于仅分别计算第一预测块与第五预测块之间的第二匹配失真值、第二预测块与第六预测块之间的第三匹配失真值、第三预测块与第七预测块之间的第四匹配失真值、第四预测块与第八预测块之间的第五匹配失真值;其中,所述第一预测块、所述第二预测块、所述第三预测块、所述第四预测块分别为所述前向预测块在前向参考帧中向上、下、左、右偏移时得到的预测块;所述第五预测块、所述第六预测块、所述第七预测块、所述第八预测块分别为所述后向预测块在后向参考帧中向下、上、右、左偏移时得到的预测块;
第一确定模块,用于根据所述第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值和第五匹配失真值之间的大小关系,确定目标前向预测块和目标后向预测块;
第二确定模块,用于根据所述目标前向预测块和所述目标后向预测块,确定所述当前块的目标运动矢量。
20.根据权利要求19所述的装置,其特征在于,所述第一确定模块具体用于:
从所述第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值和第五匹配失真值中确定最小匹配失真值;
确定所述最小匹配失真值对应的所述前向预测块、所述第一预测块、所述第二预测块、所述第三预测块或所述第四预测块为所述目标前向预测块,确定所述最小匹配失真值对应的所述后向预测块、所述第五预测块、所述第六预测块、所述第七预测块或所述第八预测块为所述目标后向预测块。
21.根据权利要求19所述的装置,其特征在于,所述第一预测块、所述第二预测块、所述第三预测块、所述第四预测块分别为所述前向预测块按照第一像素精度在前向参考帧中向上、下、左、右偏移时得到的预测块,所述第五预测块、所述第六预测块、所述第七预测块、所述第八预测块分别为所述后向预测块按照所述第一像素精度在后向参考帧中向下、上、右、左偏移时得到的预测块;
所述计算模块,还用于当所述第二匹配失真值、第三匹配失真值、第四匹配失真值和第五匹配失真值均大于或等于所述第一匹配失真值时,仅分别计算第九预测块与第十三预测块之间的第六匹配失真值、第十预测块与第十四预测块之间的第七匹配失真值、第十一预测块与第十五预测块之间的第八匹配失真值、第十二预测块与第十六预测块之间的第九匹配失真值;所述第九预测块、所述第十预测块、所述第十一预测块、所述第十二预测块分别为所述前向预测块按照第二像素精度在所述前向参考帧中向上、下、左、右偏移时得到的预测块,所述第十三预测块、所述第十四预测块、所述第十五预测块、所述第十六预测块分别为所述后向预测块按照所述第二像素精度在所述后向参考帧中向下、上、右、左偏移时得到的预测块;
所述第一确定模块具体用于:
从所述第一匹配失真值、第六匹配失真值、第七匹配失真值、第八匹配失真值和第九匹配失真值中确定最小匹配失真值;
确定所述最小匹配失真值对应的所述前向预测块、所述第九预测块、所述第十预测块、所述第十一预测块或所述第十二预测块为所述目标前向预测块,确定所述最小匹配失真值对应的所述后向预测块、所述第十三预测块、所述第十四预测块、所述第十五预测块或所述第十六预测块为所述目标后向预测块。
22.根据权利要求21所述的装置,其特征在于,所述第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值、第五匹配失真值、第六匹配失真值、第七匹配失真值、第八匹配失真值和第九匹配失真值中的任意一个匹配失真值包括:两个预测块之间的绝对误差和SAD;
所述SAD通过如下公式计算:
Figure FDA0003345263020000081
其中,当P0[n]为所述前向预测块、所述第一预测块、所述第二预测块、所述第三预测块、所述第四预测块、所述第九预测块、所述第十预测块、所述第十一预测块或所述第十二预测块中的像素点的像素值时,P1[n]对应地为所述后向预测块、所述第五预测块、所述第六预测块、所述第七预测块、所述第八预测块、所述第十三预测块、所述第十四预测块、所述第十五预测块或所述第十六预测块中的像素点的像素值,P0[n]和P1[n]在两个预测块中的对应位置相同,L为预测块内的像素点的个数,K为两个预测块之间的均值;
K通过如下公式计算:
K=(∑0≤iM<,0≤j<NP0[i][j]-∑0≤iM<,0≤j<NP1[i][j])/M*N
其中,M为预测块采样后宽度方向的像素点个数,N为预测块采样后高度方向的像素点个数,i和j为像素点的编号,当P0[i][j]为所述前向预测块、所述第一预测块、所述第二预测块、所述第三预测块、所述第四预测块、所述第九预测块、所述第十预测块、所述第十一预测块或所述第十二预测块采样后的像素点的像素值时,P1[i][j]对应地为所述后向预测块、所述第五预测块、所述第六预测块、所述第七预测块、所述第八预测块、所述第十三预测块、所述第十四预测块、所述第十五预测块或所述第十六预测块采样后的像素点的像素值,P0[i][j]和P1[i][j]在两个预测块中的对应位置相同。
23.根据权利要求22所述的装置,其特征在于,所述第一像素精度为整像素精度,所述第二像素精度为半像素精度。
24.一种运动矢量的确定装置,其特征在于,包括:
合成模块,用于根据当前块的前向预测块和后向预测块,确定合成预测块;
计算模块,用于计算第一预测块和所述合成预测块之间的第一匹配失真值,所述第一预测块为所述前向预测块或者所述后向预测块;
所述计算模块,还用于仅分别计算第二预测块与所述合成预测块之间的第二匹配失真值、第三预测块与所述合成预测块之间的第三匹配失真值、第四预测块与所述合成预测块之间的第四匹配失真值、第五预测块与所述合成预测块之间的第五匹配失真值;其中,所述第二预测块、所述第三预测块、所述第四预测块、所述第五预测块分别为所述第一预测块在参考帧中向上、下、左、右偏移时得到的预测块;
第一确定模块,用于根据第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值和第五匹配失真值之间的大小关系,确定目标预测块;
第二确定模块,用于根据所述目标预测块,确定所述当前块的目标运动矢量。
25.根据权利要求24所述的装置,其特征在于,所述第一确定模块具体用于:
当所述第一预测块为所述前向预测块时,从所述前向预测块对应的第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值和第五匹配失真值中,确定第一最小匹配失真值;
确定所述第一最小匹配失真值对应的所述前向预测块、所述第二预测块、所述第三预测块、所述第四预测块或所述第五预测块为所述目标预测块;
当所述第一预测块为所述后向预测块时,从所述后向预测块对应的第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值和第五匹配失真值中,确定第二最小匹配失真值;
确定所述第二最小匹配失真值对应的所述后向预测块、所述第二预测块、所述第三预测块、所述第四预测块或所述第五预测块为所述目标预测块。
26.根据权利要求24所述的装置,其特征在于,所述第二预测块、所述第三预测块、所述第四预测块、所述第五预测块分别为所述第一预测块按照第一像素精度,在参考帧中向上、下、左、右偏移时得到的预测块;
所述计算模块,还用于当所述第二匹配失真值、第三匹配失真值、第四匹配失真值和第五匹配失真值均大于或等于所述第一匹配失真值时,仅分别计算第六预测块与所述合成预测块之间的第六匹配失真值、第七预测块与所述合成预测块之间的第七匹配失真值、第八预测块与所述合成预测块之间的第八匹配失真值、第九预测块与所述合成预测块之间的第九匹配失真值;其中,所述第六预测块、所述第七预测块、所述第八预测块、所述第九预测块分别为所述第一预测块按照第二像素精度在所述参考帧中向上、下、左、右偏移时得到的预测块;
所述第一确定模块具体用于:
当所述第一预测块为所述前向预测块时,从所述第一匹配失真值、第六匹配失真值、第七匹配失真值、第八匹配失真值和第九匹配失真值中,确定第一最小匹配失真值;
确定所述第一最小匹配失真值对应的所述前向预测块、所述第六预测块、所述第七预测块、所述第八预测块或所述第九预测块为所述目标预测块;
当所述第一预测块为所述后向预测块时,从所述第一匹配失真值、第六匹配失真值、第七匹配失真值、第八匹配失真值和第九匹配失真值中,确定第二最小匹配失真值;
确定所述第二最小匹配失真值对应的所述后向预测块、所述第六预测块、所述第七预测块、所述第八预测块或所述第九预测块为所述目标预测块。
27.根据权利要求26所述的装置,其特征在于,所述第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值、第五匹配失真值、第六匹配失真值、第七匹配失真值、第八匹配失真值和第九匹配失真值中的任意一个匹配失真值包括:两个预测块之间的绝对误差和SAD;
所述SAD通过如下公式计算:
Figure FDA0003345263020000101
其中,P0[n]为所述第一预测块、所述第二预测块、所述第三预测块、所述第四预测块、所述第五预测块、所述第六预测块、所述第七预测块、所述第八预测块、所述第九预测块中的像素点的像素值,P1[n]为所述合成预测块中的像素点的像素值,P0[n]和P1[n]在两个预测块中的对应位置相同,L为预测块内的像素点的个数,K为两个预测块之间的均值;
K通过如下公式计算:
K=(∑0≤iM<,0≤j<NP0[i][j]-∑0≤iM<,0≤j<NP1[i][j])/M*N
其中,M为预测块采样后宽度方向的像素点个数,N为预测块采样后高度方向的像素点个数,i和j为像素点的编号,P0[i][j]为所述第一预测块、所述第二预测块、所述第三预测块、所述第四预测块、所述第五预测块所述第六预测块、所述第七预测块、所述第八预测块、所述第九预测块采样后的像素点的像素值,P1[i][j]为所述合成预测块采样后的像素点的像素值,P0[i][j]和P1[i][j]在两个预测块中的对应位置相同。
28.根据权利要求27所述的装置,其特征在于,所述第一像素精度为整像素精度,所述第二像素精度为半像素精度。
29.一种运动矢量的确定装置,其特征在于,包括:
计算模块,用于计算当前块的前向预测块与后向预测块之间的第一匹配失真值;
所述计算模块,还用于分别计算第一预测块与第六预测块之间的第二匹配失真值、第二预测块与第七预测块之间的第三匹配失真值、第三预测块与第八预测块之间的第四匹配失真值、第四预测块与第九预测块之间的第五匹配失真值、第五预测块与第十预测块之间的第六匹配失真值;其中,所述第一预测块、所述第二预测块、所述第三预测块、所述第四预测块、所述第五预测块分别为所述前向预测块在前向参考帧中向上、下、左、右、对角方向偏移时得到的预测块;所述第六预测块、所述第七预测块、所述第八预测块、所述第九预测块、所述第十预测块分别为所述后向预测块在后向参考帧中向下、上、右、左、所述对角方向的反方向偏移时得到的预测块,当所述对角方向为左上、左下、右上或右下时,所述对角方向的反方向对应为右下、右上、左下或左上;
所述第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值、第五匹配失真值、第六匹配失真值中的任意一个匹配失真值包括:两个预测块之间的绝对误差和SAD;
所述SAD通过如下公式计算:
Figure FDA0003345263020000102
其中,当P0[n]为所述前向预测块、所述第一预测块、所述第二预测块、所述第三预测块、所述第四预测块或所述第五预测块中的像素点的像素值时,P1[n]对应地为所述后向预测块、所述第六预测块、所述第七预测块、所述第八预测块、所述第九预测块或所述第十预测块中的像素点的像素值,P0[n]和P1[n]在两个预测块中的对应位置相同,L为预测块内的像素点的个数,K为预测块的均值;
K通过如下公式计算:
K=(∑0≤iM<,0≤j<NP0[i][j]-∑0≤iM<,0≤j<NP1[i][j])/M*N
其中,M为预测块采样后宽度方向的像素点个数,N为预测块采样后高度方向的像素点个数,i和j为像素点的编号,当P0[i][j]为所述前向预测块、所述第一预测块、所述第二预测块、所述第三预测块、所述第四预测块或所述第五预测块采样后的像素点的像素值时,P1[i][j]对应地为所述后向预测块、所述第六预测块、所述第七预测块、所述第八预测块、所述第九预测块或所述第十预测块采样后的像素点的像素值,P0[i][j]和P1[i][j]在两个预测块中的对应位置相同;
第一确定模块,用于根据所述第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值、第五匹配失真值和第六匹配失真值之间的大小关系,确定目标前向预测块和目标后向预测块;
所述第一确定模块,还用于根据所述目标前向预测块和所述目标后向预测块,确定所述当前块的目标运动矢量。
30.根据权利要求29所述的装置,其特征在于,所述第一确定模块具体用于:
从所述第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值、第五匹配失真值和第六匹配失真值中确定最小匹配失真值;
确定所述最小匹配失真值对应的所述前向预测块、所述第一预测块、所述第二预测块、所述第三预测块、所述第四预测块或所述第五预测块为所述目标前向预测块,确定所述最小匹配失真值对应的所述后向预测块、所述第六预测块、所述第七预测块、所述第八预测块、所述第九预测块或所述第十预测块为所述目标后向预测块。
31.根据权利要求29所述的装置,其特征在于,所述第一预测块、所述第二预测块、所述第三预测块、所述第四预测块、所述第五预测块分别为所述前向预测块按照第一像素精度在前向参考帧中向上、下、左、右、对角方向偏移时得到的预测块;所述第六预测块、所述第七预测块、所述第八预测块、所述第九预测块、所述第十预测块分别为所述后向预测块按照所述第一像素精度在后向参考帧中向下、上、右、左、所述对角方向的反方向偏移时得到的预测块;
所述计算模块,还用于当所述第二匹配失真值、第三匹配失真值、第四匹配失真值、第五匹配失真值和第六匹配失真值均大于或等于所述第一匹配失真值时,分别计算第十一预测块与第十六预测块之间的第七匹配失真值、第十二预测块与第十七预测块之间的第八匹配失真值、第十三预测块与第十八预测块之间的第九匹配失真值、第十四预测块与第十九预测块之间的第十匹配失真值、第十五预测块与第二十预测块之间的第十一匹配失真值;其中,所述第十一预测块、所述第十二预测块、所述第十三预测块、所述第十四预测块、所述第十五预测块分别为所述前向预测块按照第二像素精度在前向参考帧中向上、下、左、右、对角方向偏移时得到的预测块;所述第十六预测块、所述第十七预测块、所述第十八预测块、所述第十九预测块、所述第二十预测块分别为所述后向预测块按照所述第二像素精度在后向参考帧中向下、上、右、左、所述对角方向的反方向偏移时得到的预测块;
所述第一确定模块具体用于:
从所述第一匹配失真值、第七匹配失真值、第八匹配失真值、第九匹配失真值、第十匹配失真值和第十一匹配失真值中确定最小匹配失真值;
确定所述最小匹配失真值对应的所述前向预测块、所述第十一预测块、所述第十二预测块、所述第十三预测块、所述第十四预测块或所述第十五预测块为所述目标前向预测块,确定所述最小匹配失真值对应的所述后向预测块、所述第十六预测块、所述第十七预测块、所述第十八预测块、所述第十九预测块或所述第二十预测块为所述目标后向预测块。
32.根据权利要求31所述的装置,其特征在于,所述第一像素精度为整像素精度,所述第二像素精度为半像素精度。
33.一种运动矢量的确定装置,其特征在于,包括:
合成模块,用于根据当前块的前向预测块和后向预测块,确定合成预测块;
计算模块,用于计算第一预测块和所述合成预测块之间的第一匹配失真值,所述第一预测块为所述前向预测块或者所述后向预测块;
所述计算模块,还用于分别计算第二预测块与所述合成预测块之间的第二匹配失真值、第三预测块与所述合成预测块之间的第三匹配失真值、第四预测块与所述合成预测块之间的第四匹配失真值、第五预测块与所述合成预测块之间的第五匹配失真值、第六预测块与所述合成预测块之间的第六匹配失真值;其中,所述第二预测块、所述第三预测块、所述第四预测块、所述第五预测块、所述第六预测块分别为所述第一预测块在参考帧中向上、下、左、右、对角方向偏移时得到的预测块,当所述对角方向为左上、左下、右上或右下时,所述对角方向的反方向对应为右下、右上、左下或左上;
所述第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值、第五匹配失真值、第六匹配失真值中的任意一个匹配失真值包括:两个预测块之间的绝对误差和SAD;
所述SAD通过如下公式计算:
Figure FDA0003345263020000121
其中,P0[n]为所述第一预测块、所述第二预测块、所述第三预测块、所述第四预测块、所述第五预测块或所述第六预测块中的像素点的像素值,P1[n]为所述合成预测块中的像素点的像素值,P0[n]和P1[n]在两个预测块中的对应位置相同,L为预测块内的像素点的个数,K为预测块的均值;
K通过如下公式计算:
K=(∑0≤iM<,0≤j<NP0[i][j]-∑0≤iM<,0≤j<NP1[i][j])/M*N
其中,M为预测块采样后宽度方向的像素点个数,N为预测块采样后高度方向的像素点个数,i和j为像素点的编号,P0[i][j]为所述第一预测块、所述第二预测块、所述第三预测块、所述第四预测块、所述第五预测块或所述第六预测块采样后的像素点的像素值,P1[i][j]为所述合成预测块采样后的像素点的像素值,P0[i][j]和P1[i][j]在两个预测块中的对应位置相同;
第一确定模块,用于根据第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值、第五匹配失真值和第六匹配失真值之间的大小关系,确定目标预测块;
所述第一确定模块,还用于根据所述目标预测块,确定所述当前块的目标运动矢量。
34.根据权利要求33所述的装置,其特征在于,所述第一确定模块具体用于:
当所述第一预测块为所述前向预测块时,从所述前向预测块对应的第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值、第五匹配失真值和第六匹配失真值中,确定第一最小匹配失真值;
确定所述第一最小匹配失真值对应的所述前向预测块、所述第二预测块、所述第三预测块、所述第四预测块、所述第五预测块或所述第六预测块为所述目标预测块;
当所述第一预测块为所述后向预测块时,从所述后向预测块对应的第一匹配失真值、第二匹配失真值、第三匹配失真值、第四匹配失真值、第五匹配失真值中和第六匹配失真值,确定第二最小匹配失真值;
确定所述第二最小匹配失真值对应的所述后向预测块、所述第二预测块、所述第三预测块、所述第四预测块、所述第五预测块或所述第六预测块为所述目标预测块。
35.根据权利要求33所述的装置,其特征在于,所述第二预测块、所述第三预测块、所述第四预测块、所述第五预测块、所述第六预测块分别为所述第一预测块按照第一像素精度在参考帧中向上、下、左、右、对角方向偏移时得到的预测块;
所述计算模块,还用于当所述第二匹配失真值、第三匹配失真值、第四匹配失真值、第五匹配失真值和第六匹配失真值均大于或等于所述第一匹配失真值时,分别计算第七预测块与所述合成预测块之间的第七匹配失真值、第八预测块与所述合成预测块之间的第八匹配失真值、第九预测块与所述合成预测块之间的第九匹配失真值、第十预测块与所述合成预测块之间的第十匹配失真值、第十一预测块与所述合成预测块之间的第十一匹配失真值;其中,所述第七预测块、所述第八预测块、所述第九预测块、所述第十预测块、所述第十一预测块分别为所述第一预测块按照第二像素精度在所述参考帧中向上、下、左、右、对角方向偏移时得到的预测块;
所述第一确定模块具体用于:
当所述第一预测块为所述前向预测块时,从所述第一匹配失真值、第七匹配失真值、第八匹配失真值、第九匹配失真值、第十匹配失真值和第十一匹配失真值中,确定第一最小匹配失真值;
确定所述第一最小匹配失真值对应的前向预测块、所述第七预测块、所述第八预测块、所述第九预测块、所述第十预测块或所述第十一预测块为所述目标预测块;
当所述第一预测块为所述后向预测块时,从所述第一匹配失真值、第七匹配失真值、第八匹配失真值、第九匹配失真值、第十匹配失真值和第十一匹配失真值中,确定第二最小匹配失真值;
确定所述第二最小匹配失真值对应的所述后向预测块、所述第七预测块、所述第八预测块、所述第九预测块、所述第十预测块或所述第十一预测块为所述目标预测块。
36.根据权利要求35所述的装置,其特征在于,所述第一像素精度为整像素精度,所述第二像素精度为半像素精度。
37.一种视频编解码设备,其特征在于,包括:相互耦合的非易失性存储器和处理器,所述处理器调用存储在所述存储器中的程序代码以执行如权利要求1-5任一项所描述的方法。
38.一种视频编解码设备,其特征在于,包括:相互耦合的非易失性存储器和处理器,所述处理器调用存储在所述存储器中的程序代码以执行如权利要求6-10任一项所描述的方法。
39.一种视频编解码设备,其特征在于,包括:相互耦合的非易失性存储器和处理器,所述处理器调用存储在所述存储器中的程序代码以执行如权利要求11-14任一项所描述的方法。
40.一种视频编解码设备,其特征在于,包括:相互耦合的非易失性存储器和处理器,所述处理器调用存储在所述存储器中的程序代码以执行如权利要求15-18任一项所描述的方法。
CN201811531038.6A 2018-09-21 2018-12-14 运动矢量的确定方法和装置 Active CN110944209B (zh)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN202210183278.1A CN114727114B (zh) 2018-09-21 2018-12-14 运动矢量的确定方法和装置
PCT/CN2019/107305 WO2020057664A1 (zh) 2018-09-21 2019-09-23 运动矢量的确定方法和装置
EP19861316.8A EP3846472A4 (en) 2018-09-21 2019-09-23 METHOD AND APPARATUS FOR DETERMINATION OF A MOTION VECTOR
US17/206,767 US11259042B2 (en) 2018-09-21 2021-03-19 Motion vector determining method and apparatus
US17/576,261 US20220141482A1 (en) 2018-09-21 2022-01-14 Motion Vector Determining Method and Apparatus

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201811109801 2018-09-21
CN2018111098016 2018-09-21

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202210183278.1A Division CN114727114B (zh) 2018-09-21 2018-12-14 运动矢量的确定方法和装置

Publications (2)

Publication Number Publication Date
CN110944209A CN110944209A (zh) 2020-03-31
CN110944209B true CN110944209B (zh) 2022-03-04

Family

ID=69905205

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811531038.6A Active CN110944209B (zh) 2018-09-21 2018-12-14 运动矢量的确定方法和装置

Country Status (2)

Country Link
EP (1) EP3846472A4 (zh)
CN (1) CN110944209B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103826133A (zh) * 2004-05-04 2014-05-28 高通股份有限公司 运动补偿帧速率上调方法和设备
CN104427345A (zh) * 2013-09-11 2015-03-18 华为技术有限公司 运动矢量的获取方法、获取装置、视频编解码器及其方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI311297B (en) * 2006-05-02 2009-06-21 Nat Central Universit Method for motion search between video pictures with multiple blocks
CN101931803B (zh) * 2009-06-26 2013-01-09 华为技术有限公司 视频图像运动信息获取方法、装置及设备、模板构造方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103826133A (zh) * 2004-05-04 2014-05-28 高通股份有限公司 运动补偿帧速率上调方法和设备
CN104427345A (zh) * 2013-09-11 2015-03-18 华为技术有限公司 运动矢量的获取方法、获取装置、视频编解码器及其方法

Also Published As

Publication number Publication date
EP3846472A1 (en) 2021-07-07
EP3846472A4 (en) 2021-11-10
CN110944209A (zh) 2020-03-31

Similar Documents

Publication Publication Date Title
CN111385569B (zh) 一种编解码方法及其设备
JP5081305B2 (ja) フレーム間予測符号化の方法および装置
US20190058896A1 (en) Method and apparatus of video coding with affine motion compensation
KR101393824B1 (ko) 저 복잡성 움직임 벡터 도출을 위한 시스템 및 방법
JP2019115061A (ja) 符号化装置、符号化方法、復号装置、復号方法、及びプログラム
CN113784132B (zh) 用于帧间预测的运动向量舍入、截取和存储的方法和装置
TWI729483B (zh) 視訊編解碼系統的運動向量湊整統一的方法以及裝置
CN104363457A (zh) 图像处理设备和方法
CN110933426B (zh) 一种解码、编码方法及其设备
KR20140095607A (ko) 인터 예측 방법 및 그 장치
CN111698500B (zh) 一种编解码方法、装置及其设备
US8599921B2 (en) Adaptive partition subset selection module and method for use therewith
CN113383550A (zh) 光流修正的提前终止
JP5560009B2 (ja) 動画像符号化装置
CN114009041A (zh) 双向预测光流计算和双向预测校正中用于块级边界样本梯度计算的整数网格参考样本位置的计算方法
CN114727114B (zh) 运动矢量的确定方法和装置
US9420308B2 (en) Scaled motion search section with parallel processing and method for use therewith
JP2012134870A (ja) 映像符号化方法、及び映像復号方法
JP5184447B2 (ja) 動画像符号化装置および復号装置
CN110944209B (zh) 运动矢量的确定方法和装置
CN112154666A (zh) 视频编解码方法和装置
US20100246682A1 (en) Scaled motion search section with downscaling and method for use therewith
KR20120072205A (ko) 매크로블록 간의 예측 기법을 이용한 움직임 추정 장치 및 방법
CN112449180B (zh) 一种编解码方法、装置及其设备
CN112449197A (zh) 视频编解码的方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant