CN110662033B - 一种解码、编码方法及其设备 - Google Patents
一种解码、编码方法及其设备 Download PDFInfo
- Publication number
- CN110662033B CN110662033B CN201810692041.XA CN201810692041A CN110662033B CN 110662033 B CN110662033 B CN 110662033B CN 201810692041 A CN201810692041 A CN 201810692041A CN 110662033 B CN110662033 B CN 110662033B
- Authority
- CN
- China
- Prior art keywords
- image block
- motion vector
- template
- candidate
- information
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/573—Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
- H04N19/107—Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/12—Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
- H04N19/122—Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/567—Motion estimation based on rate distortion criteria
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Discrete Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本申请提供一种解码、编码方法及其设备,该方法包括:获取当前图像块的候选图像块的运动信息;根据所述候选图像块的运动信息获取所述当前图像块的模板;根据所述当前图像块的所述模板对编码比特流进行解码。通过本申请的技术方案,可以快速得到当前图像块的模板,解决了解码效率低,解码时延大等问题,可以提高解码效率,降低解码时延,提高编解码性能。
Description
技术领域
本申请涉及视频编解码技术领域,尤其涉及一种解码、编码方法及其设备。
背景技术
为了达到节约空间的目的,视频图像都是经过编码后才传输的,完整的视频编码方法可以包括预测、变换、量化、熵编码、滤波等过程。其中,预测编码包括帧内编码和帧间编码,帧间编码是利用视频时间域的相关性,使用邻近已编码图像的像素预测当前图像的像素,以达到有效去除视频时域冗余的目的。
在视频编码技术中,编码过程是按照逐个图像块进行的,在进行当前图像块的编码时,周围已编码图像块的重建信息是可被利用的,而模板(Template)是指当前图像块周围(时域或空域的相邻区域)固定形状的解码信息。在编码端和解码端,模板是完全一样的,因此,在编码端利用模板进行的一些操作,在解码端可获得完全一致的结果,也就是说,编码端基于模板推导的信息可以在解码端无损恢复,而不需要传递额外信息,从而进一步减少传输比特数。
但是,传统的模板生成方式,存在解码效率低,解码时延大等问题。
发明内容
本申请提供了一种解码、编码方法及其设备,解决了解码效率低,解码时延大等问题,可以提高解码效率,降低解码时延,提高编解码性能。
本申请提供一种解码方法,应用于解码端,所述方法包括:
获取当前图像块的候选图像块的运动信息;
根据所述候选图像块的运动信息获取所述当前图像块的模板;
根据所述当前图像块的所述模板对编码比特流进行解码。
本申请提供一种编码方法,应用于编码端,所述方法包括:
获取当前图像块的候选图像块的运动信息;
根据所述候选图像块的运动信息获取所述当前图像块的模板;
根据所述当前图像块的所述模板对比特流进行编码,得到编码比特流;
将所述编码比特流发送给解码端。
本申请提供一种解码端设备,所述解码端设备包括:处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;所述处理器用于执行机器可执行指令,以实现上述的方法步骤。
本申请提供一种编码端设备,所述编码端设备包括:处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;所述处理器用于执行机器可执行指令,以实现上述的方法步骤。
由以上技术方案可见,本申请实施例中,可以根据当前图像块的候选图像块的运动信息获取当前图像块的模板,并根据当前图像块的模板对编码比特流进行解码。上述方式可以快速得到当前图像块的模板,解决了解码效率低,解码时延大等问题,可以提高解码效率,降低解码时延,提高编解码性能。
附图说明
为了更加清楚地说明本申请实施例或者现有技术中的技术方案,下面将对本申请实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本申请实施例的这些附图获得其他的附图。
图1是本申请一种实施方式中的编码方法的流程图;
图2A-图2O是本申请一种实施方式中的目标图像块的模板示意图;
图3A-图3D是本申请另一种实施方式中的编码方法的流程图;
图4是本申请一种实施方式中的解码方法的流程图;
图5是本申请另一种实施方式中的解码方法的流程图;
图6是本申请一种实施方式中的解码装置的结构图;
图7是本申请一种实施方式中的编码装置的结构图;
图8是本申请一种实施方式中的解码端设备的硬件结构图;
图9是本申请一种实施方式中的编码端设备的硬件结构图。
具体实施方式
在本申请实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本申请。本申请和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
本申请实施例中提出一种解码、编码方法,该方法可以涉及如下概念:
运动矢量(Motion Vector,MV):在帧间编码中,使用运动矢量表示当前帧视频图像的当前图像块与参考帧视频图像的参考图像块之间的相对位移,例如,当前帧的视频图像A与参考帧的视频图像B存在很强的时域相关性,在传输视频图像A的图像块A1(当前图像块)时,可以在视频图像B中进行运动搜索,找到与图像块A1最匹配的图像块B1(参考图像块),并确定图像块A1与图像块B1之间的相对位移,该相对位移也就是图像块A1的运动矢量。其中,每个划分的图像块都有相应的运动矢量传送到解码端,如果对每个图像块的运动矢量进行独立编码和传输,特别是划分成小尺寸的大量图像块,则消耗相当多的比特。为降低用于编码运动矢量的比特数,可以利用相邻图像块之间的空间相关性,根据相邻已编码图像块的运动矢量对当前待编码图像块的运动矢量进行预测,然后对预测差进行编码,这样可以有效降低表示运动矢量的比特数。
运动信息(Motion Information):由于运动矢量表示当前图像块与某个参考图像块的位置偏移,为了准确获取指向图像块的信息,除了运动矢量,还需要参考帧图像的索引信息来表示使用哪个参考帧图像。在视频编码技术中,对于当前帧图像,通常可以建立一个参考帧图像列表,参考帧图像索引信息则表示当前图像块采用了参考帧图像列表中的第几个参考帧图像。在视频编码技术中,可以将运动矢量、参考帧索引等与运动相关的编码信息统称为运动信息。
模板(Template):在视频编码技术中,编码过程是按照逐个图像块进行的,在进行当前图像块的编码时,周围已编码图像块的重建信息是可被利用的。模板指当前图像块周围(时域或空域的相邻区域)固定形状的解码信息。在编码端和解码端,模板是完全一样的,因此,在编码端利用模板进行的一些操作,在解码端可获得完全一致的结果,也就是说,编码端基于模板推导的信息可以在解码端无损恢复,而不需要传递额外信息,从而进一步减少传输比特数。
率失真原则(Rate-Distortion Optimized):评价编码效率的有两大指标:码率和PSNR(Peak Signal to Noise Ratio,峰值信噪比),比特流越小,则压缩率越大,PSNR越大,则重建图像质量越好,在模式选择时,判别公式实质上也就是对二者的综合评价。例如,模式对应的代价:J(mode)=D+λ*R,其中,D表示Distortion(失真),通常可以使用SSE指标来进行衡量,SSE是指重建图像块与源图像的差值的均方和;λ是拉格朗日乘子,R就是该模式下图像块编码所需的实际比特数,包括编码模式信息、运动信息、残差等所需的比特总和。
帧内预测与帧间预测(intra prediction and inter prediction)技术:帧内预测是指,可以利用当前图像块的空域相邻图像块(即与当前图像块处于同一帧图像)的重建像素值进行预测编码,而帧间预测是指,可以利用当前图像块的时域相邻图像块(与当前图像块处于不同帧图像)的重建像素值进行预测编码。
以下结合几个具体的实施例,对上述解码方法、编码方法进行详细说明。
实施例一:
参见图1所示,为编码方法的流程示意图,该方法可以包括以下步骤:
步骤101,编码端获取当前图像块的候选图像块的运动信息。
其中,当前图像块的候选图像块可以包括但不限于:当前图像块的空域候选图像块;或者,当前图像块的时域候选图像块;对此候选图像块不做限制。
其中,在对当前图像块进行编码时,由于当前图像块的候选图像块已经完成编码,即候选图像块的运动信息为已知,因此,编码端可以直接获取候选图像块的运动信息,如候选图像块的运动矢量和参考帧索引等,对此不做限制。
步骤102,编码端根据候选图像块的运动信息获取当前图像块的模板。
其中,本步骤102的处理过程,可以参见后续实施例,在此不再赘述。
步骤103,编码端根据当前图像块的模板对比特流进行编码,得到编码比特流。其中,该编码比特流可以是针对该当前图像块的编码比特流。
其中,根据当前图像块的模板对比特流进行编码,得到编码比特流,可以包括但不限于:获取当前图像块的原始模式信息;基于当前图像块的模板,根据该原始模式信息获取当前图像块的目标模式信息;根据该目标模式信息对比特流进行编码,得到编码比特流。原始模式信息为原始运动矢量,目标模式信息为目标运动矢量;或者,原始模式信息为原始运动矢量和原始参考帧,目标模式信息为目标运动矢量和目标参考帧;或者,原始模式信息为原始预测图像块,目标模式信息为目标预测图像块。当然,上述只是示例,对此不做限制。
步骤104,编码端将该编码比特流发送给解码端。
其中,当编码端根据目标模式信息对比特流进行编码时,编码端向解码端发送携带第一指示信息的编码比特流,该第一指示信息用于指示基于当前图像块的模板,根据原始模式信息获取当前图像块的目标模式信息。当编码端根据原始模式信息对比特流进行编码时,编码端向解码端发送携带第二指示信息的编码比特流,第二指示信息用于指示基于原始模式信息对编码比特流进行解码。
其中,上述方式是采用显示方式通知第一指示信息或者第二指示信息,在实际应用中,还可以采用隐式方式通知,即不在编码比特流中携带第一指示信息或者第二指示信息。具体的,编码端和解码端还可以协商决策策略或者通过在标准定义策略,存储在编码端和解码端,如决策策略可以为默认第一策略信息,第一策略信息用于指示基于当前图像块的模板,根据原始模式信息获取当前图像块的目标模式信息;或者,默认第二策略信息,第二策略信息用于指示基于原始模式信息对编码比特流进行解码;或者,默认第三策略信息,第三策略信息为采用与当前图像块的相邻图像块相同的策略信息。
在此基础上,当决策策略为默认第一策略信息,且编码端根据目标模式信息对比特流进行编码时,则编码比特流中可以不携带第一指示信息和第二指示信息。当决策策略为默认第二策略信息,且编码端根据原始模式信息对比特流进行编码时,则编码比特流中可以不携带第一指示信息和第二指示信息。当决策策略为默认第三策略信息,且相邻图像块采用第一策略信息,则编码端根据目标模式信息对比特流进行编码时,编码比特流中可以不携带第一指示信息和第二指示信息;当相邻图像块采用第二策略信息,则编码端根据原始模式信息对比特流进行编码时,编码比特流中可以不携带第一指示信息和第二指示信息。
由以上技术方案可见,本申请实施例中,可以根据当前图像块的候选图像块的运动信息获取当前图像块的模板,根据当前图像块的模板对比特流进行编码,得到编码比特流。上述方式可以快速得到当前图像块的模板,解决编码效率低,编码时延大等问题,可以提高编码效率,降低编码时延,提高编码性能。
实施例二:
在视频编码过程中,对每个图像块逐一编码,在对当前图像块编码时,若当前图像块周围的相邻图像块已经重建完成,则可以利用相邻图像块的已解码信息对当前图像块进行重建,因此,可以利用当前图像块的相邻图像块的已解码信息获取当前图像块的模板。该已解码信息可以包括但不限于:相邻图像块的重建信息和/或相邻图像块的预测信息。该重建信息可以包括但不限于亮度值、色度值等;预测信息可以是能够获取重建信息的中间值,例如,若能够利用中间值A获取到亮度值,则中间值A是预测信息,对此预测信息不做限制。
但是,若已解码信息是重建信息,则当前图像块的模板的生成需要等到解码重建阶段,大大降低了解码的效率,带来解码的时延;而已解码信息是预测信息,则当前图像块的模板的生成也需要等到解码重建阶段,大大降低了解码的效率,带来解码的时延。因此,上述方式会导致解码的并行度受到较大影响。
针对上述发现,在本实施例中,提出了一种更优的模板生成方式,与采用重建信息和预测信息生成模板的方式不同,可以根据当前图像块的候选图像块的运动信息(如运动矢量和参考帧索引等)获取当前图像块的模板,根据候选图像块的运动信息获取当前图像块的模板的方法均可应用在编码端和解码端。
其中,根据候选图像块的运动信息获取当前图像块的模板,可以包括:当运动信息包括候选图像块的运动矢量和参考帧索引时,根据该参考帧索引确定该候选图像块对应的参考帧图像;根据该运动矢量从该参考帧图像中获取与该候选图像块对应的参考图像块,并根据该参考图像块获取该当前图像块的模板。
例如,参见图2A所示,假设图像块A1是当前图像块,而图像块A2和图像块A3是图像块A1的候选图像块。针对图像块A2,若图像块A2的参考帧索引为视频图像B的索引,则可以根据该参考帧索引确定图像块A2对应的参考帧图像是视频图像B;然后,从视频图像B中选取与图像块A2对应的图像块B2,即图像块B2在视频图像B中的位置,与图像块A2在视频图像A中的位置相同;然后,可以根据图像块A2的运动矢量对图像块B2进行移动,如利用运动矢量(3,3)移动图像块B2,得到与图像块B2对应的图像块B2’(如向右移动3个像素点,向上移动3个像素点),图像块B2’就是图像块A2对应的参考图像块。同理,可以确定与图像块A3对应的参考图像块是图像块B3’。进一步的,可以根据图像块B2’和图像块B3’确定图像块A2的模板,参见图2A所示。
在一个例子中,候选图像块可以包括M个第一候选图像块和N个第二候选图像块,M为大于或等于1的自然数,N为大于或等于0的自然数,或者,M为大于或等于0的自然数,N为大于或等于1的自然数。第一候选图像块为当前图像块上侧的候选图像块,第二候选图像块为当前图像块左侧的候选图像块。
根据候选图像块的运动信息获取当前图像块的模板,可以包括但不限于:根据M个第一候选图像块的运动矢量预测模式和运动信息,确定第一模板;根据N个第二候选图像块的运动矢量预测模式和运动信息,确定第二模板。然后,将第一模板确定为当前图像块的模板;或者,将第二模板确定为当前图像块的模板;或者,将第一模板和第二模板拼接之后确定为当前图像块的模板。
例如,若M为大于或等于1的自然数,N为0,则可以根据M个第一候选图像块的运动矢量预测模式和运动信息,确定第一模板,并将第一模板确定为当前图像块的模板。若N为大于或等于1的自然数,M为0,则可以根据N个第二候选图像块的运动矢量预测模式和运动信息,确定第二模板,并将第二模板确定为当前图像块的模板。若M为大于或等于1的自然数,N为大于或等于1的自然数,则可以根据M个第一候选图像块的运动矢量预测模式和运动信息,确定第一模板,根据N个第二候选图像块的运动矢量预测模式和运动信息,确定第二模板,将第一模板确定为当前图像块的模板;或将第二模板确定为当前图像块的模板;或将第一模板和第二模板拼接之后确定为当前图像块的模板。
其中,第一候选图像块包括当前图像块上侧的相邻图像块和/或次邻图像块;相邻图像块的预测模式为帧间模式或者帧内模式;次邻图像块的预测模式为帧间模式。例如,第一候选图像块可以包括至少一个预测模式为帧间模式的相邻图像块,例如,当前图像块上侧的所有相邻图像块、或当前图像块上侧的第一个相邻图像块、或当前图像块上侧的任意一个或多个相邻图像块。此外,当当前图像块上侧的相邻图像块均为帧内模式时,第一候选图像块还可以包括至少一个预测模式为帧间模式的次邻图像块,例如,当前图像块上侧的所有次邻图像块,或当前图像块上侧的第一个次邻图像块,或当前图像块上侧的任意一个或多个次邻图像块。此外,当当前图像块上侧存在帧内模式的相邻图像块时,第一候选图像块还可以包括帧内模式的相邻图像块,例如,当前图像块上侧的第一个帧内模式的相邻图像块,当前图像块上侧的所有帧内模式的相邻图像块等。当然,上述只是第一候选图像块的示例,对此不做限制。
其中,第二候选图像块包括当前图像块左侧的相邻图像块和/或次邻图像块;相邻图像块的预测模式为帧间模式或者帧内模式;次邻图像块的预测模式为帧间模式。例如,第二候选图像块可以包括至少一个预测模式为帧间模式的相邻图像块,例如,当前图像块左侧的所有相邻图像块、或当前图像块左侧的第一个相邻图像块、或当前图像块左侧的任意一个或多个相邻图像块。此外,当当前图像块左侧的相邻图像块均为帧内模式时,第二候选图像块还可以包括至少一个预测模式为帧间模式的次邻图像块,例如,当前图像块左侧的所有次邻图像块,或当前图像块左侧的第一个次邻图像块,或当前图像块左侧的任意一个或多个次邻图像块。此外,当当前图像块左侧存在帧内模式的相邻图像块时,第一候选图像块还可以包括帧内模式的相邻图像块,例如,当前图像块左侧的第一个帧内模式的相邻图像块,当前图像块左侧的所有帧内模式的相邻图像块等。当然,上述只是第二候选图像块的示例,对此不做限制。
其中,当前图像块的相邻图像块包括但不限于:当前图像块的空域相邻图像块(即同一帧视频图像中的相邻图像块);或者,当前图像块的时域相邻图像块(即不同帧视频图像中的相邻图像块)。当前图像块的次邻图像块包括但不限于:当前图像块的空域次邻图像块(即同一帧视频图像中的次邻图像块);或者,当前图像块的时域次邻图像块(即不同帧视频图像中的次邻图像块)。
在一个例子中,当M大于1时,则第一模板可以包括M个子模板或者P个子模板,且由M个子模板或者P个子模板拼接而成,P可以为帧间模式的第一候选图像块的数量,P小于或等于M。例如,若M个第一候选图像块均为帧间模式的候选图像块,则第一模板可以包括M个子模板,且由M个子模板拼接而成。又例如,若M个第一候选图像块包括P个帧间模式的候选图像块、并包括M-P个帧内模式的候选图像块,则第一模板可以包括M个子模板(即每个候选图像块对应一个子模板),且由M个子模板拼接而成,或者,第一模板可以包括P个子模板(即P个帧间模式的候选图像块对应的P个子模板),且由P个子模板拼接而成。
此外,当M等于1时,则第一模板可以包括第一子模板,该第一子模板可以是根据当前图像块上侧的首个候选图像块的运动矢量预测模式和运动信息确定的;或者,第一子模板可以是根据当前图像块上侧的任意一个候选图像块的运动矢量预测模式和运动信息确定的。其中,由于第一候选图像块包括至少一个预测模式为帧间模式的相邻图像块或次邻图像块,因此,M等于1时,第一模板包括的是帧间模式的相邻图像块或次邻图像块对应的第一子模板。
在一个例子中,运动信息可以包括第一候选图像块的运动矢量和参考帧索引,基于此,根据M个第一候选图像块的运动矢量预测模式和运动信息,确定第一模板,可以包括但不限于:
情况一、针对M个第一候选图像块中的第i个候选图像块,当确定第i个候选图像块的运动矢量预测模式为帧间模式时,则根据参考帧索引确定第i个候选图像块对应的参考帧图像;根据第i个候选图像块的运动矢量,从该参考帧图像中确定第i个候选图像块对应的参考图像块,该参考图像块与第i个候选图像块的相对位置偏移,与第i个候选图像块的运动矢量相匹配;然后,可以根据确定的参考图像块,获取尺寸为第一横向长度和第一纵向长度的图像块作为第一模板包括的第i个子模板。
情况二、针对M个第一候选图像块中的第i个候选图像块,当确定第i个候选图像块的运动矢量预测模式为帧内模式时,则将第i个候选图像块按照默认值(如默认像素值,可以是根据经验预先配置的亮度值)填充,基于默认值填充后的图像块,获取尺寸为第一横向长度和第一纵向长度的图像块作为第一模板包括的第i个子模板。
情况三、针对M个第一候选图像块中的第i个候选图像块,当确定第i个候选图像块的运动矢量预测模式为帧内模式时,根据第i个候选图像块对应的参考帧索引确定第i个候选图像块对应的参考帧图像;根据第i个候选图像块对应的运动矢量,从参考帧图像中确定第i个候选图像块对应的参考图像块,参考图像块与第i个候选图像块的相对位置偏移与第i个候选图像块对应的运动矢量相匹配(包含相等或近似相等);根据确定的参考图像块,获取尺寸为第一横向长度和第一纵向长度的图像块作为第一模板包括的第i个子模板;其中,第i个候选图像块对应的参考帧索引和运动矢量,是第i个候选图像块的相邻图像块的参考帧索引和运动矢量。
其中,第一横向长度与第一候选图像块的横向长度满足第一比例关系(如1:1,1:2,2:1等,对此不做限制),或者与当前图像块的横向长度满足第二比例关系(如1:1,1:2,2:1等),或者等于第一预设长度(根据经验配置)。
其中,第一纵向长度与第一候选图像块的纵向长度满足第三比例关系(如1:1,1:2,2:1等),或者与当前图像块的纵向长度满足第四比例关系(如1:1,1:2,2:1等),或者等于第二预设长度(即根据经验配置的长度)。
其中,第一比例关系、第二比例关系、第三比例关系和第四比例关系之间可以设置为相同,也可以不同。第一预设长度和第二预设长度可以设置为相同,也可以不同。
在一个例子中,当N大于1时,则第二模板可以包括N个子模板或者R个子模板,且由N个子模板或者R个子模板拼接而成,R可以为帧间模式的第二候选图像块的数量,R小于或等于N。例如,若N个第二候选图像块均为帧间模式的候选图像块,则第二模板可以包括N个子模板,且由N个子模板拼接而成。又例如,若N个第二候选图像块包括R个帧间模式的候选图像块、并包括N-R个帧内模式的候选图像块,则第二模板可以包括N个子模板(即每个候选图像块对应一个子模板),且由N个子模板拼接而成,或者,第二模板可以包括R个子模板(即R个帧间模式的候选图像块对应的R个子模板),且由R个子模板拼接而成。
此外,当N等于1时,则第二模板可以包括第二子模板,该第二子模板可以是根据当前图像块左侧的首个候选图像块的运动矢量预测模式和运动信息确定的;或者,第二子模板可以是根据当前图像块左侧的任意一个候选图像块的运动矢量预测模式和运动信息确定的。其中,由于第二候选图像块包括至少一个预测模式为帧间模式的相邻图像块或次邻图像块,因此,N等于1时,第二模板包括的是帧间模式的相邻图像块或次邻图像块对应的第二子模板。
在一个例子中,运动信息可以包括第二候选图像块的运动矢量和参考帧索引,基于此,根据N个第二候选图像块的运动矢量预测模式和运动信息,确定第二模板,可以包括但不限于:
情况一、针对N个第二候选图像块中的第i个候选图像块,当确定第i个候选图像块的运动矢量预测模式为帧间模式时,则根据参考帧索引确定第i个候选图像块对应的参考帧图像;根据第i个候选图像块的运动矢量,从该参考帧图像中确定第i个候选图像块对应的参考图像块,该参考图像块与第i个候选图像块的相对位置偏移,与第i个候选图像块的运动矢量相匹配;然后,可以根据确定的参考图像块,获取尺寸为第二横向长度和第二纵向长度的图像块作为第二模板包括的第i个子模板。
情况二、针对N个第二候选图像块中的第i个候选图像块,当确定第i个候选图像块的运动矢量预测模式为帧内模式时,则将第i个候选图像块按照默认值(如默认像素值,可以是根据经验预先配置的亮度值)填充,基于默认值填充后的图像块,获取尺寸为第二横向长度和第二纵向长度的图像块作为第二模板包括的第i个子模板。
情况三、针对N个第二候选图像块中的第i个候选图像块,当确定第i个候选图像块的运动矢量预测模式为帧内模式时,根据第i个候选图像块对应的参考帧索引确定第i个候选图像块对应的参考帧图像;根据第i个候选图像块对应的运动矢量,从参考帧图像中确定第i个候选图像块对应的参考图像块,参考图像块与第i个候选图像块的相对位置偏移与第i个候选图像块对应的运动矢量相匹配(包含相等或近似相等);根据确定的参考图像块,获取尺寸为第二横向长度和第二纵向长度的图像块作为第一模板包括的第i个子模板;其中,第i个候选图像块对应的参考帧索引和运动矢量,是第i个候选图像块的相邻图像块的参考帧索引和运动矢量。
其中,第二横向长度与第二候选图像块的横向长度满足第五比例关系(如1:1,1:2,2:1等,对此不做限制),或者与当前图像块的横向长度满足第六比例关系(如1:1,1:2,2:1等),或者等于第三预设长度(根据经验配置)。
其中,第二纵向长度与第二候选图像块的纵向长度满足第七比例关系(如1:1,1:2,2:1等),或者与当前图像块的纵向长度满足第八比例关系(如1:1,1:2,2:1等),或者等于第四预设长度(即根据经验配置的长度)。
其中,第五比例关系、第六比例关系、第七比例关系和第八比例关系之间可以设置为相同,也可以不同。第三预设长度和第四预设长度可以设置为相同,也可以不同。
在一个例子中,根据候选图像块的运动信息获取当前图像块的模板,还可以包括但不限于:当当前图像块对应多个运动信息时,根据每个运动信息获取该运动信息对应的模板,每个模板的获取方式参见上述实施例。然后,获取每个运动信息对应的权重参数,并根据每个运动信息对应的权重参数以及该运动信息对应的模板获取当前图像块的模板。例如,基于每个运动信息对应的权重参数以及该运动信息对应的模板,基于加权平均方式获取当前图像块的模板。
例如,当前图像块对应运动信息A和运动信息B,采用上述实施例获取运动信息A对应的模板A,并采用上述实施例获取运动信息B对应的模板B。
然后,可以获取运动信息A的权重参数1和运动信息B的权重参数2,这样,当前图像块的模板可以为(模板A*权重参数1+模板B*权重参数2)/2。
以下结合几个具体情况,对当前图像块的模板进行详细说明。
情况一:参见图2B所示,候选图像块可以包括当前图像块上侧的所有帧间模式的相邻图像块,以及,当前图像块左侧的所有帧间模式的相邻图像块。
对于当前图像块A1,若左侧存在帧间模式的相邻图像块,如图像块A3和图像块A4,则可以将帧间模式的图像块A3和图像块A4确定为当前图像块A1的候选图像块。类似的,若上侧存在帧间模式的相邻图像块,如图像块A2,则可以将帧间模式的图像块A2确定为当前图像块A1的候选图像块。
其中,若左侧没有可用图像块,或者,虽然左侧有可用图像块,但是可用图像块均是帧内模式,则可以说明当前图像块A1的左侧没有候选图像块。类似的,若上侧没有可用图像块,或者,虽然上侧有可用图像块,但是可用图像块均是帧内模式,则可以说明当前图像块A1的上侧没有候选图像块。若左侧和上侧均没有候选图像块,则可以说明当前图像块A1没有候选图像块。
此外,若当前图像块A1没有候选图像块,则不再采用本实施例的技术方案,而是采用传统方式,对此不再赘述。若当前图像块A1有候选图像块,如左侧的候选图像块和/或上侧的候选图像块,则采用本实施例的技术方案。
在一个例子中,在确定出候选图像块为图像块A2、图像块A3和图像块A4后,就可以根据图像块A2的运动信息、图像块A3的运动信息和图像块A4的运动信息,获取当前图像块A1的模板。例如,针对图像块A2,可以根据参考帧索引确定图像块A2对应的参考帧图像,从该参考帧图像中选取与图像块A2对应的图像块B2,根据图像块A2的运动矢量对图像块B2进行移动,得到与图像块A2对应的参考图像块B2’,同理,可以得到与图像块A3对应的参考图像块B3’,与图像块A4对应的参考图像块B4’,参见图2C所示。然后,可以根据参考图像块B2’、参考图像块B3’和参考图像块B4’获得当前图像块A1的模板。
在一个例子中,假设当前图像块A1上侧模板的横向长度为W,纵向长度为S,W的取值可以根据经验配置,S的取值可以根据经验配置,对于W和S的取值均不做限制。例如,W可以为当前图像块A1的横向长度,为候选图像块A2的横向长度,为当前图像块A1的横向长度的2倍等,S可以为候选图像块A2的纵向长度,为候选图像块A2的纵向长度的1/3等。在此基础上,参见图2D所示,为参考图像块B2’对应的模板示意图。在图2D中,是以W为候选图像块A2的横向长度为例,即W为参考图像块B2’的横向长度;是以S为候选图像块A2的纵向长度的1/3为例,即S为参考图像块B2’的纵向长度的1/3。
假设当前图像块A1左侧模板的横向长度为R,纵向长度为H,R的取值可以根据经验配置,H的取值可以根据经验配置,对于R和H的取值均不做限制。例如,H可以为当前图像块A1的纵向长度,为候选图像块A3的纵向长度,R可以为候选图像块A3的横向长度,为候选图像块A3的横向长度的1/3等。在此基础上,参见图2D所示,为参考图像块B3’对应的模板示意图,是以H为候选图像块A3的纵向长度为例,以R为候选图像块A3的横向长度的1/3为例。
同理,参考图像块B4’对应的模板页可以参见图2D所示,在此不再赘述。
在一个例子中,假设当前图像块上侧有M个不同模式的候选图像块,则针对第i个候选图像块,假设其横向长度为wi,则判断该候选图像块的预测模式。
若为帧内模式,则不再生成子模板,或者,按照默认值(如默认像素值,可以是根据经验预先配置的亮度值)填充,作为上侧模板的第i个子模板。
若为帧间模式,则获取第i个候选图像块的运动信息(如运动矢量和参考帧索引等),基于该运动矢量和该参考帧索引生成横向长度为wi,纵向长度为S的模板,作为上侧模板的第i个子模板。具体的,若运动矢量为MV,参考帧索引为idx,则在当前帧的第idx个参考图像中找到相对位置偏移为MV的横向长度为wi,纵向长度为S的矩形块,作为上侧模板的第i个子模板。
假设当前图像块左侧有N个不同模式的候选图像块,则针对第i个候选图像块,假设纵向长度为hi,横向长度为R,则判断该候选图像块的预测模式。
若为帧内模式,则不再生成子模板,或者,按照默认值(如默认像素值,可以是根据经验预先配置的亮度值)填充,作为左侧模板的第i个子模板。
若为帧间模式,则获取第i个候选图像块的运动信息(如运动矢量和参考帧索引等),基于该运动矢量和该参考帧索引生成横向长度为R,纵向长度为hi的模板,作为左侧模板的第i个子模板。具体的,若运动矢量为MV,参考帧索引为idx,则在当前帧的第idx个参考图像中找到相对位置偏移为MV的横向长度为R,纵向长度为hi的矩形块,作为左侧模板的第i个子模板。
进一步的,上侧模板可以由上侧的所有子模板拼接而成,左侧模板可以由左侧的所有子模板拼接而成,上侧模板和左侧模板就拼接成当前图像块的模板。
情况二:参见图2E所示,候选图像块可以包括当前图像块上侧的第一个帧间模式的相邻图像块,以及,当前图像块左侧的第一个帧间模式的相邻图像块。
对于当前图像块A1,若左侧的第一个图像块A3是帧间模式,则可以将图像块A3确定为当前图像块A1的候选图像块。若上侧的第一个图像块A2是帧间模式,则可以将图像块A2确定为当前图像块A1的候选图像块。
其中,若左侧没有可用图像块,或者,左侧的第一个图像块是帧内模式,则当前图像块A1的左侧没有候选图像块。若上侧没有可用图像块,或者,上侧的第一个图像块是帧内模式,则当前图像块A1的上侧没有候选图像块。若左侧和上侧均没有候选图像块,则当前图像块A1没有候选图像块。
进一步的,若当前图像块A1没有候选图像块,则不再采用本实施例的技术方案,而是采用传统方式,对此不再赘述。若当前图像块A1有候选图像块,如左侧的候选图像块和/或上侧的候选图像块,则采用本实施例的技术方案。
在确定出候选图像块为图像块A2和图像块A3后,可以根据图像块A2的运动信息和图像块A3的运动信息,获取当前图像块A1的模板。例如,可以根据参考帧索引确定图像块A2对应的参考帧图像,从参考帧图像中选取与图像块A2对应的图像块B2,根据图像块A2的相邻运动矢量对图像块B2进行移动,得到与图像块A2对应的参考图像块B2’,同理,可以得到与图像块A3对应的参考图像块B3’,可以根据参考图像块B2’和参考图像块B3’获得模板。
在一个例子中,假设当前图像块A1上侧模板的横向长度为W,纵向长度为S,W的取值可以根据经验配置,S的取值可以根据经验配置,对于W和S的取值均不做限制。例如,W可以为当前图像块A1的横向长度,为候选图像块A2的横向长度,S可以为候选图像块A2的纵向长度,为候选图像块A2的纵向长度的1/3等。参见图2F所示,为参考图像块B2’对应的模板示意图。
假设当前图像块A1左侧模板的横向长度为R,纵向长度为H,R的取值可以根据经验配置,H的取值可以根据经验配置,对于R和H的取值均不做限制。例如,H可以为当前图像块A1的纵向长度,为候选图像块A3的纵向长度等,R可以为候选图像块A3的横向长度,为候选图像块A3的横向长度的1/3等。在此基础上,参见图2F所示,为参考图像块B3’对应的模板示意图。
在一个例子中,假设当前图像块上侧有M个不同模式的候选图像块,则针对上侧的第一个候选图像块,假设其横向长度为w,则判断该候选图像块的预测模式。若为帧内模式,则不再生成模板,或者,按照默认值(如默认像素值,可以是根据经验预先配置的亮度值)填充,作为上侧模板。若为帧间模式,则获取该候选图像块的运动信息(如运动矢量和参考帧索引等),基于运动矢量和参考帧索引生成横向长度为w,纵向长度为S的模板,作为上侧模板。
假设当前图像块左侧有N个不同模式的候选图像块,针对左侧的第一个候选图像块,假设纵向长度为h,横向长度为R,则判断该候选图像块的预测模式。若为帧内模式,则不再生成模板,或按照默认值填充,作为左侧模板。若为帧间模式,获取该候选图像块的运动信息(如运动矢量和参考帧索引),基于运动矢量和参考帧索引生成横向长度为R,纵向长度为h的模板,作为左侧模板。
情况三:参见图2G所示,候选图像块可以包括当前图像块上侧的第一个帧间模式的相邻图像块,以及,当前图像块左侧的第一个帧间模式的相邻图像块。
与情况二的图2F相比,在情况三中,当前图像块A1上侧模板的横向长度W,其取值为当前图像块A1的横向长度,当前图像块A1左侧模板的纵向长度H,其取值为当前图像块A1的纵向长度,其它过程与情况二类似,不再赘述。
情况四:参见图2H所示,候选图像块可以包括当前图像块上侧的帧间模式的相邻图像块、当前图像块上侧的帧间模式的次邻图像块(即相邻图像块为帧内模式时,选择该相邻图像块对应的与当前图像块是次邻的图像块)、当前图像块左侧的帧间模式的相邻图像块、当前图像块左侧的次邻图像块。
例如,对于当前图像块A1,左侧存在帧间模式的相邻图像块,如图像块A3和图像块A4,则可以将帧间模式的图像块A3和图像块A4确定为当前图像块A1的候选图像块。类似的,上侧存在帧间模式的相邻图像块,如图像块A2,则可以将帧间模式的图像块A2确定为当前图像块A1的候选图像块。
此外,左侧存在帧内模式的相邻图像块,如图像块A7,且图像块A7左侧存在帧间模式的图像块A8,即图像块A8是当前图像块A1左侧的次邻图像块,因此,可以将帧间模式的图像块A8确定为当前图像块A1的候选图像块。
类似的,上侧存在帧内模式的相邻图像块,如图像块A5,且图像块A5上侧存在帧间模式的图像块A6,即图像块A6是当前图像块A1上侧的次邻图像块,因此,可以将帧间模式的图像块A6确定为当前图像块A1的候选图像块。
在确定出候选图像块为图像块A2、图像块A3、图像块A4、图像块A6和图像块A8后,根据图像块A2的运动信息、图像块A3的运动信息、图像块A4的运动信息、图像块A6的运动信息和图像块A8的运动信息,获取当前图像块A1的模板,具体获取方式参见情况一,只是多了根据图像块A6的运动信息和图像块A8的运动信息获取模板,在此不再赘述,模板最终参见图2I所示。
情况五:参见图2J所示,若当前图像块上侧的第一个相邻图像块为帧内模式,且该第一个相邻图像块上侧的图像块为帧间模式,则候选图像块可以包括当前图像块上侧的帧间模式的次邻图像块。此外,若当前图像块左侧的第一个相邻图像块为帧内模式,且该第一个相邻图像块左侧的图像块为帧间模式,则候选图像块可以包括当前图像块左侧的帧间模式的次邻图像块。
对于当前图像块A1,若上侧的第一个图像块A2是帧内模式,且图像块A2上侧存在帧间模式的图像块A4,即图像块A4是当前图像块A1上侧的次邻图像块,因此,可以将帧间模式的图像块A4确定为当前图像块A1的候选图像块。
此外,若左侧的第一个图像块A3是帧内模式,且图像块A3左侧存在帧间模式的图像块A5,即图像块A5是当前图像块A1左侧的次邻图像块,因此,可以将帧间模式的图像块A5确定为当前图像块A1的候选图像块。
在确定出候选图像块为图像块A4和图像块A5后,可以根据图像块A4的运动信息和图像块A5的运动信息,获取当前图像块A1的模板,具体获取方式参见情况二和情况三,在此不再赘述,模板最终参见图2K或者图2L所示。
情况六:参见图2H所示,候选图像块可以包括当前图像块上侧的帧间模式的相邻图像块、当前图像块上侧的帧内模式的相邻图像块、当前图像块左侧的帧间模式的相邻图像块、当前图像块左侧的帧内模式的相邻图像块。
例如,对于当前图像块A1,左侧存在帧间模式的相邻图像块,如图像块A3和图像块A4,则可以将帧间模式的图像块A3和图像块A4确定为当前图像块A1的候选图像块。类似的,上侧存在帧间模式的相邻图像块,如图像块A2,则可以将帧间模式的图像块A2确定为当前图像块A1的候选图像块。
左侧存在帧内模式的相邻图像块,如图像块A7,可以将帧内模式的图像块A7确定为当前图像块A1的候选图像块。上侧存在帧内模式的相邻图像块,如图像块A5,可以将帧内模式的图像块A5确定为当前图像块A1的候选图像块。
在确定出候选图像块为图像块A2、图像块A3、图像块A4、图像块A5和图像块A7后,根据图像块A2的运动信息、图像块A3的运动信息、图像块A4的运动信息、图像块A5的运动信息和图像块A7的运动信息,获取当前图像块A1的模板,具体获取方式参见情况一,只是多了根据图像块A5的运动信息和图像块A7的运动信息获取模板,在此不再赘述,模板最终参见图2M所示。
需要注意的是,在根据图像块A5的运动信息获取模板时,由于图像块A5是帧内模式,不具有运动信息,因此,可以将图像块A5的相邻图像块(即图像块A6)的运动信息确定为图像块A5的运动信息,在得到图像块A5的运动信息后,就可以利用图像块A5的运动信息获取模板,具体获取方式参见情况一。
同理,在根据图像块A7的运动信息获取模板时,由于图像块A7是帧内模式,不具有运动信息,因此可以将图像块A7的相邻图像块(即图像块A8)的运动信息确定为图像块A5的运动信息,并利用图像块A5的运动信息获取模板。
情况七:参见图2J所示,若当前图像块上侧的第一个相邻图像块为帧内模式,且该第一个相邻图像块上侧的图像块为帧间模式,则候选图像块可以包括当前图像块上侧的第一个帧内模式的相邻图像块。此外,若当前图像块左侧的第一个相邻图像块为帧内模式,且该第一个相邻图像块左侧的图像块为帧间模式,则候选图像块可以包括当前图像块左侧的第一个帧内模式的相邻图像块。
对于当前图像块A1,若上侧第一个图像块A2是帧内模式,图像块A2上侧存在帧间模式的图像块A4,将帧内模式的图像块A2确定为当前图像块A1的候选图像块。若左侧第一个图像块A3是帧内模式,图像块A3左侧存在帧间模式的图像块A5,将帧内模式的图像块A3确定为当前图像块A1的候选图像块。
在确定出候选图像块为图像块A2和图像块A3后,可以根据图像块A2的运动信息和图像块A3的运动信息,获取当前图像块A1的模板,具体获取方式参见情况二和情况三,在此不再赘述,模板最终参见图2N或者图2O所示。
需要注意的是,在根据图像块A2的运动信息获取模板时,由于图像块A2是帧内模式,不具有运动信息,因此,可以将图像块A2的相邻图像块(即图像块A4)的运动信息确定为图像块A2的运动信息,并利用图像块A2的运动信息获取模板。在根据图像块A3的运动信息获取模板时,由于图像块A3是帧内模式,不具有运动信息,因此可以将图像块A3的相邻图像块(即图像块A5)的运动信息确定为图像块A3的运动信息,并利用图像块A3的运动信息获取模板。
实施例三:
在帧间编码技术中,可以使用运动矢量表示当前帧视频图像的当前图像块与参考帧视频图像的参考图像块之间的相对位移。例如,视频图像A是当前帧视频图像,图像块A1是当前图像块,视频图像B是视频图像A的参考帧视频图像,图像块B1是图像块A1的参考图像块。由于视频图像A与视频图像B存在很强的时域相关性,在需要传输视频图像A的图像块A1时,可以在视频图像B中进行运动搜索,找到与图像块A1最匹配的图像块B1,并确定图像块A1与图像块B1之间的相对位移,该相对位移也就是图像块A1的运动矢量。
例如,运动矢量为(-6,4),该运动矢量表示图像块B1与图像块A1相比,在水平方向上,向左移动6个像素点,在垂直方向上,向上移动4个像素点。
编码端向解码端发送编码比特流时,编码比特流携带的是图像块A1的运动矢量(-6,4),不是图像块A1。解码端接收到编码比特流后,可以获得图像块A1的运动矢量(-6,4),基于图像块A1的位置和运动矢量(-6,4),在视频图像B中确定图像块B1的位置,即:在图像块A1的位置上,向左移动6个像素点,向上移动4个像素点,得到的是图像块B1的位置,从图像块B1的位置读取图像块B1,利用图像块B1对图像块A1进行重建。由于图像块B1和图像块A1的相似度很高,因此利用图像块B1对图像块A1进行重建,可重建出相似度很高的图像。由于运动矢量占用的比特数小于图像块A1占用的比特数,因此通过在编码比特流携带运动矢量,而不是携带图像块A1,从而节约大量比特。
进一步的,若视频图像A包括大量图像块,则每个图像块的运动矢量也会占用比较多的比特,因此,为了进一步的节约比特数,本申请实施例中,还可以利用相邻图像块的运动矢量确定图像块A1的运动矢量。例如,在视频图像A中,与图像块A1相邻的图像块可以包括:图像块A2和图像块A3,在运动矢量列表中可以包括图像块A2的运动矢量A21和图像块A3的运动矢量A31。
编码端在向解码端发送编码比特流时,编码比特流携带的是原始运动矢量A21的索引值(即运动矢量列表中的索引值),而不是图像块A1的运动矢量(-6,4),更不是图像块A1。解码端接收到编码比特流后,可以获得原始运动矢量A21的索引值,并根据索引值从运动矢量列表中获取原始运动矢量A21。由于索引值占用的比特数小于运动矢量占用的比特数,因此可以进一步节约比特。
本实施例中,不是直接将原始运动矢量A21作为图像块A1的最终运动矢量,而是根据原始运动矢量A21获取与原始运动矢量A21不同的目标运动矢量,该目标运动矢量是与图像块A1的运动矢量最接近的,因此,可以将该目标运动矢量作为图像块A1的最终运动矢量。显然,与“将原始运动矢量A21直接作为图像块A1的最终运动矢量”的方式相比,上述“将目标运动矢量作为图像块A1的最终运动矢量”的方式,可以解决预测质量不高,预测错误等问题。
综上所述,本实施例中,原始模式信息为当前图像块的原始运动矢量,目标模式信息为当前图像块的目标运动矢量,编码端可以获取当前图像块对应的原始运动矢量,并根据该原始运动矢量和获取的模板,得到基于模板的目标运动矢量,该目标运动矢量与该原始运动矢量不同。根据该目标运动矢量对比特流进行编码,得到编码比特流。编码端可以将编码比特流发送给解码端。
在一个例子中,编码端可以先获取当前图像块的原始运动矢量,假设当前图像块是图像块A1,在编码端的运动矢量列表依次包括运动矢量A21、运动矢量A31、运动矢量A41和运动矢量A51,则从运动矢量列表中选择一个运动矢量,而选择的运动矢量就是图像块A1的原始运动矢量。当然,上述方式只是示例,对此不做限制,例如,可以直接将默认运动矢量确定为原始运动矢量。
其中,编码端从运动矢量列表中选择一个运动矢量,可以包括:编码端从运动矢量列表中选择第一个运动矢量;或者,从运动矢量列表中选择最后一个运动矢量;或者,从运动矢量列表中随机选择第一个运动矢量;或者,采用hash(哈希)算法从运动矢量列表中选择第一个运动矢量。当然,上述方式只是几个示例,对此不做限制,只要能够从运动矢量列表中选择运动矢量即可。
其中,运动矢量列表用于记录与当前图像块相邻的图像块的运动矢量。例如,在得到图像块A2的运动矢量A21后,可以将运动矢量A21记录到该运动矢量列表,在得到图像块A3的运动矢量A31后,可以将运动矢量A31记录到该运动矢量列表,以此类推,最终,可以得到图像块A1的运动矢量列表。
在一个例子中,针对编码端根据该原始运动矢量和获取的模板,得到基于模板的目标运动矢量的过程,可以参见后续实施例四和实施例五,在此不再赘述。例如,假设将运动矢量A21确定为原始运动矢量,则可以利用原始运动矢量A21获取目标运动矢量,该目标运动矢量作为图像块A1的最终运动矢量。
在一个例子中,针对编码端根据该目标运动矢量对比特流进行编码,得到编码比特流,并将编码比特流发送给解码端的过程,可以包括:在得到目标运动矢量后,可以利用目标运动矢量对当前图像块进行编码,对此编码方式不做限制,在编码完成后,可以得到编码比特流,并将编码比特流发送给解码端。
其中,编码端可以根据原始运动矢量和目标运动矢量向解码端发送编码比特流。具体的,可以获取原始运动矢量的编码性能和目标运动矢量的编码性能。当目标运动矢量的编码性能优于原始运动矢量的编码性能时,向解码端发送携带第一指示信息的编码比特流。当原始运动矢量的编码性能优于目标运动矢量的编码性能时,向解码端发送携带第二指示信息的编码比特流。
其中,编码端获取原始运动矢量的编码性能和目标运动矢量的编码性能的过程,可以参见后续的实施例,在本实施例中,对此不再详加赘述。
其中,上述方式是采用显示方式通知第一指示信息或者第二指示信息,在实际应用中,还可以采用隐式方式通知,即不在编码比特流中携带第一指示信息或者第二指示信息。具体的,编码端和解码端还可以协商决策策略或者通过在标准定义策略,存储在编码端和解码端,如决策策略可以为默认第一策略信息;或者,默认第二策略信息;或者,默认第三策略信息,第三策略信息为采用与当前图像块的相邻图像块相同的策略信息。当决策策略为默认第一策略信息,且目标运动矢量的编码性能优于原始运动矢量的编码性能时,编码比特流中可以不携带第一指示信息和第二指示信息。当决策策略为默认第二指示信息,且原始运动矢量的编码性能优于目标运动矢量的编码性能时,编码比特流中可以不携带第一指示信息和第二指示信息。当决策策略为默认第三策略信息,且相邻图像块采用第一策略信息时,目标运动矢量的编码性能优于原始运动矢量的编码性能时,编码比特流中可以不携带第一指示信息和第二指示信息;当相邻图像块采用第二策略信息时,原始运动矢量的编码性能优于目标运动矢量的编码性能时,编码比特流中可以不携带第一指示信息和第二指示信息。
在一个例子中,编码端根据原始运动矢量和目标运动矢量向解码端发送编码比特流,还可以包括:获取原始运动矢量在运动矢量列表中的索引值;向解码端发送携带该索引值的编码比特流。例如,若原始运动矢量为运动矢量A21,且运动矢量A21是运动矢量列表的第一个运动矢量,则该索引值可以为1。
由以上技术方案可见,可以根据原始运动矢量获取目标运动矢量,并根据目标运动矢量确定当前图像块的最终运动矢量,而不是直接根据原始运动矢量确定当前图像块的最终运动矢量,从而提高运动矢量的精度,提高编码性能。而且,在根据原始运动矢量获取目标运动矢量时,可以根据候选图像块的运动信息获取当前图像块的模板,并根据所述当前图像块的模板获取目标运动矢量,上述方式可以快速得到当前图像块的模板,继而根据该模板得到目标运动矢量,可以提高解码效率,减少解码时延。例如,在解码的重建阶段之前,就可以获取当前图像块的模板,并根据当前图像块的模板得到目标运动矢量。
实施例四:
在实施例三的基础上,针对编码端根据该原始运动矢量和获取的模板,得到基于模板的目标运动矢量的过程,可以参见图3A所示,该流程可以包括:
步骤311,编码端将原始运动矢量确定为中心运动矢量。
步骤312,编码端确定与该中心运动矢量对应的边缘运动矢量。
其中,该边缘运动矢量可以与该中心运动矢量不同。
其中,编码端确定与该中心运动矢量对应的边缘运动矢量,可以包括:将该中心运动矢量(x,y)向不同方向偏移S,从而得到不同方向的边缘运动矢量(x-S,y)、边缘运动矢量(x+S,y)、边缘运动矢量(x,y+S)、边缘运动矢量(x,y-S)。例如,在水平方向上,可以将中心运动矢量(x,y)向左偏移S,得到边缘运动矢量(x-S,y);在水平方向上,可以将中心运动矢量(x,y)向右偏移S,得到边缘运动矢量(x+S,y);在垂直方向上,可以将中心运动矢量(x,y)向上偏移S,得到边缘运动矢量(x,y+S);在垂直方向上,可以将中心运动矢量(x,y)向下偏移S,得到边缘运动矢量(x,y-S)。
其中,S的初始值可以根据经验配置,如可以为2、4、8、16等。
假设中心运动矢量为(3,3),S为4,则边缘运动矢量为边缘运动矢量(7,3)、边缘运动矢量(3,7)、边缘运动矢量(-1,3)、边缘运动矢量(3,-1)。
步骤313,编码端根据当前图像块的模板获得中心运动矢量的编码性能,并根据当前图像块的模板获得边缘运动矢量的编码性能。
情况一,编码端根据当前图像块的模板获得中心运动矢量的编码性能,可以包括但不限于:根据当前图像块的模板的参数信息和第一目标参考块的参数信息,确定中心运动矢量的编码性能,第一目标参考块可以为模板对应的参考图像块基于中心运动矢量进行偏移之后获得的图像块。具体的,编码端可以根据模板的参数信息和第一目标参考块的参数信息,确定中心运动矢量的预测性能,并根据中心运动矢量的预测性能确定中心运动矢量的编码性能;例如,可以根据该预测性能和编码所需的实际比特数,确定中心运动矢量的编码性能。
其中,上述参数信息可以为亮度值;或者,可以为亮度值和色度值。
假设参数信息为亮度值,为了确定中心运动矢量的编码性能,可以先获取当前图像块的模板的亮度值、第一目标参考块的亮度值。例如,在得到当前图像块的模板后,可以获取模板的每个像素点的亮度值,并获取该模板的参考图像块,假设中心运动矢量为(3,3),则可以利用中心运动矢量(3,3)移动该参考图像块,得到与参考图像块对应的图像块X(如对参考图像块向右移动3个像素点,向上移动3个像素点,将处理后的图像块记为图像块X),而图像块X就是第一目标参考块,且可以获取图像块X的每个像素点的亮度值。
基于模板的每个像素点的亮度值、图像块X的每个像素点的亮度值,可以采用如下公式确定中心运动矢量的预测性能:SAD是可用绝对差总和,用于表示中心运动矢量的预测性能。TMi表示模板的第i个像素点的亮度值,TMPi表示图像块X的第i个像素点的亮度值,M表示像素点的总数量。
假设参数信息为亮度值和色度值,则利用如下公式确定中心运动矢量的亮度值预测性能SAD,并采用如下公式确定中心运动矢量的色度值预测性能:亮度值预测性能SAD和色度值预测性能CSAD的平均值,就是中心运动矢量的预测性能。其中,CSAD是可用绝对差总和,用于表示中心运动矢量的色度值预测性能,CTMi表示模板第i个像素点的色度值,CTMPi表示图像块X第i个像素点的色度值,Mc表示像素点总数量。
进一步的,在得到中心运动矢量的预测性能后,则可以根据该预测性能和编码所需的实际比特数,确定中心运动矢量的编码性能。例如,可以采用RDO(Rate DistortionOptimized,率失真原则)确定中心运动矢量的编码性能,而RDO通常采用如下公式确定中心运动矢量的编码性能:J=D+λ*R。其中,J表示编码性能,D表示预测性能,λ是拉格朗日乘子,是根据经验配置的数值,R是图像块编码所需的实际比特数,即编码比特流携带信息的比特总和。
情况二,编码端根据当前图像块的模板获得边缘运动矢量的编码性能,可以包括但不限于:根据当前图像块的模板的参数信息和第二目标参考块的参数信息,确定边缘运动矢量的编码性能,第二目标参考块可以为模板对应的参考图像块基于边缘运动矢量进行偏移之后获得的图像块。具体的,编码端可以根据模板的参数信息和第二目标参考块的参数信息,确定边缘运动矢量的预测性能,并根据边缘运动矢量的预测性能确定中心运动矢量的编码性能;例如,可以根据该预测性能和编码所需的实际比特数,确定边缘运动矢量的编码性能。
其中,上述参数信息可以为亮度值;或者,可以为亮度值和色度值。
情况二与情况一类似,区别在于:在情况一中,利用边缘运动矢量移动模板的参考图像块,得到第二目标参考块,并利用第二目标参考块获得边缘运动矢量的编码性能,而情况二中,利用中心运动矢量移动模板的参考图像块,得到第一目标参考块,并利用第一目标参考块获得中心运动矢量的编码性能。
步骤314,编码端根据中心运动矢量的编码性能和边缘运动矢量的编码性能,从中心运动矢量和边缘运动矢量中确定目标运动矢量。
具体的,编码端可以从中心运动矢量和边缘运动矢量中选择编码性能最优的运动矢量;当该编码性能最优的运动矢量不是原始运动矢量时,可以将该编码性能最优的运动矢量确定为目标运动矢量;当该编码性能最优的运动矢量是原始运动矢量时,编码端可以从中心运动矢量和边缘运动矢量中选择编码性能次优的运动矢量,并将编码性能次优的运动矢量确定为目标运动矢量。
例如,若编码性能最优的运动矢量是边缘运动矢量(7,3),则编码端可以将边缘运动矢量(7,3)确定为目标运动矢量。若编码性能最优的运动矢量是中心运动矢量为(3,3),也就是原始运动矢量,则编码端还可以将编码性能次优的运动矢量(如边缘运动矢量(7,3)等)确定为目标运动矢量。
实施例五:
在实施例三的基础上,针对编码端根据该原始运动矢量和获取的模板,得到基于模板的目标运动矢量的过程,可以参见图3B所示,该流程可以包括:
步骤321,编码端将原始运动矢量确定为中心运动矢量。
步骤322,编码端确定与该中心运动矢量对应的边缘运动矢量。
其中,该边缘运动矢量可以与该中心运动矢量不同。
步骤323,编码端根据当前图像块的模板获得中心运动矢量的编码性能,并根据当前图像块的模板获得边缘运动矢量的编码性能。
步骤324,编码端判断是否满足目标运动矢量的迭代结束条件。
如果是,则可以执行步骤326;如果否,则可以执行步骤325。
其中,迭代结束条件可以包括但不限于:迭代次数达到次数阈值,或者,执行时间达到时间阈值,或者,参数S已经被修改为预设数值,如1。
当然,上述只是迭代结束条件的几个示例,对此迭代结束条件不做限制。
步骤325,编码端从中心运动矢量和边缘运动矢量中选择编码性能最优的运动矢量,将编码性能最优的运动矢量确定为中心运动矢量,并返回步骤322。
例如,若编码性能最优的运动矢量是边缘运动矢量(7,3),则可以将边缘运动矢量(7,3)确定为中心运动矢量,并重新执行步骤322,以此类推。
当第一次执行步骤322时,参数S的取值可以为初始值,如可以为16。当再次执行步骤322时,先对参数S的取值进行调整,如调整为上次参数S减去2,或者,调整为上次参数S的一半等,对此不做限制,只要小于上次参数S即可,后续以调整为上次参数S的一半为例。因此,当第二次执行步骤322时,则参数S的取值为8;当第三次执行步骤322时,则参数S的取值为4;以此类推。
其中,在对参数S的取值进行调整后,先判断调整后的参数S是否小于等于预设数值,如1。如果否,则可以基于调整后的参数S执行步骤322,对此过程不再赘述。如果是,则可以将参数S的取值设置为1,并基于该参数S(即取值1)执行步骤322,而在执行到步骤324时,判断结果为满足迭代结束条件。
步骤326,编码端根据中心运动矢量的编码性能和边缘运动矢量的编码性能,从中心运动矢量和边缘运动矢量中确定目标运动矢量。
实施例六:
在实施例三中,编码端可以获取原始运动矢量的编码性能和目标运动矢量的编码性能。编码端获取原始运动矢量的编码性能,可以包括:根据当前图像块的模板的参数信息和第三目标参考块的参数信息,确定原始运动矢量的编码性能,第三目标参考块为模板对应的参考图像块基于原始运动矢量进行偏移之后获得的图像块。具体的,可以根据模板的参数信息和第三目标参考块的参数信息,确定原始运动矢量的预测性能,并根据该预测性能确定原始运动矢量的编码性能;例如,根据该预测性能和编码所需的实际比特数,确定原始运动矢量的编码性能。其中,上述参数信息可以为亮度值;或者,亮度值和色度值。
编码端获取目标运动矢量的编码性能,可以包括但不限于:根据当前图像块的模板的参数信息和第四目标参考块的参数信息,确定目标运动矢量的编码性能,第四目标参考块为模板对应的参考图像块基于目标运动矢量进行偏移之后获得的图像块。具体的,可以根据模板的参数信息和第四目标参考块的参数信息,确定目标运动矢量的预测性能,并根据该预测性能确定目标运动矢量的编码性能;例如,根据该预测性能和编码所需的实际比特数,确定目标运动矢量的编码性能。其中,上述参数信息可以为亮度值;或者,亮度值和色度值。
上述过程与实施例三类似,区别在于:在得到第三目标参考块或者第四目标参考块时,是利用原始运动矢量或者目标运动矢量移动模板的参考图像块,而不是利用中心运动矢量移动模板的参考图像块,在此不再重复赘述。
实施例七:
本实施例中,原始模式信息为当前图像块的原始运动矢量和原始参考帧,目标模式信息为当前图像块的目标运动矢量和目标参考帧。基于此,编码端可以获取当前图像块对应的原始运动矢量和原始参考帧,并根据该原始运动矢量、该原始参考帧和获取的模板,得到基于模板的目标运动矢量(可以与原始运动矢量不同)和目标参考帧。然后,可以根据该目标运动矢量和目标参考帧对比特流进行编码,得到编码比特流,并将编码比特流发送给解码端。
在一个例子中,编码端可以先获取当前图像块的原始运动矢量,假设当前图像块是图像块A1,在编码端的运动矢量列表依次包括运动矢量A21、运动矢量A31、运动矢量A41和运动矢量A51,则从运动矢量列表中选择一个运动矢量,而选择的运动矢量就是图像块A1的原始运动矢量。当然,上述方式只是示例,对此不做限制,例如,可以直接将默认运动矢量确定为原始运动矢量。
在一个例子中,编码端获取当前图像块的原始参考帧的过程,对于当前图像块来说,可以有一个或者多个参考帧(具有很强时域相关性的视频帧),可以将其中一个参考帧作为原始参考帧,而剩余的参考帧均为候选参考帧,在本实施例中,需要从原始参考帧和所有候选参考帧中选取出目标参考帧,而目标参考帧也就是当前图像块最终的参考帧,使用该目标参考帧进行后续处理。
在一个例子中,编码端根据原始运动矢量、原始参考帧和获取的模板,得到基于模板的目标运动矢量和目标参考帧的过程,可以参见后续实施例,在此不再赘述。例如,将运动矢量A21确定为原始运动矢量,将参考帧1确定为原始参考帧,将参考帧2和参考帧3确定为候选参考帧,则利用原始运动矢量A21、参考帧1、参考帧2和参考帧3获取目标运动矢量和目标参考帧,目标运动矢量作为当前图像块的最终运动矢量,该目标参考帧可以为参考帧1、参考帧2和参考帧3中的某个参考帧,且目标参考帧作为当前图像块的最终参考帧。
在一个例子中,编码端根据该目标运动矢量和目标参考帧对比特流进行编码,得到编码比特流,并将编码比特流发送给解码端的过程,可以包括但不限于:编码端在得到目标运动矢量和目标参考帧后,可以利用目标运动矢量和目标参考帧对当前图像块进行编码,对此编码方式不做限制,在编码完成后,编码端可以得到编码比特流,并将所述编码比特流发送给解码端。
其中,编码端可以根据原始运动矢量和目标运动矢量向解码端发送编码比特流。具体的,可以获取原始运动矢量的编码性能和目标运动矢量的编码性能。当目标运动矢量的编码性能优于原始运动矢量的编码性能时,向解码端发送携带第一指示信息的编码比特流。当原始运动矢量的编码性能优于目标运动矢量的编码性能时,向解码端发送携带第二指示信息的编码比特流。
其中,编码端获取原始运动矢量的编码性能和目标运动矢量的编码性能的过程,可以参见上述的实施例六,在本实施例中,对此不再详加赘述。
其中,上述方式是采用显示方式通知第一指示信息或者第二指示信息,在实际应用中,还可以采用隐式方式通知第一指示信息或者第二指示信息,即不在编码比特流中携带第一指示信息或者第二指示信息,具体的,编码端和解码端还可以协商决策策略或者通过在标准定义策略,存储在编码端和解码端,如决策策略可以为默认第一策略信息;或者,默认第二策略信息;或者,默认第三策略信息,第三策略信息为采用与当前图像块的相邻图像块相同的策略信息。然后,可以基于决策策略确定在哪种情况下可以不在编码比特流中携带第一指示信息或者第二指示信息,详细处理参见实施例三,在此不再赘述。
在一个例子中,编码端根据原始运动矢量和目标运动矢量向解码端发送编码比特流,还可以包括:获取原始运动矢量在运动矢量列表中的索引值;向解码端发送携带该索引值的编码比特流。例如,若原始运动矢量为运动矢量A21,且运动矢量A21是运动矢量列表的第一个运动矢量,则该索引值可以为1。
由以上技术方案可见,可以根据原始运动矢量和原始参考帧获取目标运动矢量和目标参考帧,并根据目标运动矢量确定当前图像块的最终运动矢量,根据目标参考帧确定当前图像块的最终参考帧,而不是直接根据原始运动矢量确定当前图像块的最终运动矢量,利用原始参考帧确定当前图像块的最终参考帧,从而提高运动矢量的精度,提高编码性能。而且,可以根据候选图像块的运动信息获取当前图像块的模板,可以快速得到当前图像块的模板,可以提高编码效率,减少编码时延,如在编码的重建阶段之前,可以获取当前图像块的模板。
实施例八:
在实施例七的基础上,编码端根据原始运动矢量、原始参考帧和模板,得到基于模板的目标运动矢量和目标参考帧,实现流程可以参见图3C所示。
步骤331,编码端基于当前图像块的模板,根据原始运动矢量获取原始参考帧对应的候选运动矢量,该候选运动矢量可以与该原始运动矢量不同。
在一个例子中,编码端基于当前图像块的模板,根据原始运动矢量获取原始参考帧对应的候选运动矢量,可以包括但不限于:编码端将原始运动矢量确定为中心运动矢量,并确定与中心运动矢量对应的边缘运动矢量,边缘运动矢量与中心运动矢量不同;编码端根据当前图像块的模板获得中心运动矢量的编码性能,并根据当前图像块的模板获得边缘运动矢量的编码性能;然后,编码端可以根据中心运动矢量的编码性能和边缘运动矢量的编码性能,从中心运动矢量和边缘运动矢量中确定原始参考帧对应的候选运动矢量。
其中,编码端根据原始运动矢量获取原始参考帧的候选运动矢量的过程,可以参见实施例四或者实施例五,只是将实施例四或者实施例五中的目标运动矢量,替换为原始参考帧的候选运动矢量即可,在此不再重复赘述。
步骤332,编码端根据原始运动矢量获取各个候选参考帧(如一个或者多个候选参考帧中的每个候选参考帧)对应的初始运动矢量。
在一个例子中,编码端根据原始运动矢量获取各个候选参考帧对应的初始运动矢量,可以包括:第一候选参考帧为候选参考帧中的任意一个,针对第一候选参考帧,可以根据当前图像块所在帧与原始参考帧的距离(如距离可以为当前图像块所在帧与原始参考帧之间的帧数)、当前图像块所在帧与所述第一候选参考帧的距离和原始运动矢量,获取第一候选参考帧的初始运动矢量。
例如,假设原始运动矢量为运动矢量1,原始参考帧为参考帧1,候选参考帧为参考帧2和参考帧3,当前图像块所在帧(后续称为当前帧)与参考帧1的距离为d1,当前帧与参考帧2的距离为d2,当前帧与参考帧3的距离为d3,则:参考帧2对应的初始运动矢量为运动矢量1*(d2/d1),后续记为运动矢量2,参考帧3对应的初始运动矢量为运动矢量1*(d3/d1),后续记为运动矢量3。
步骤333,编码端根据初始运动矢量获取候选参考帧对应的候选运动矢量。
在一个例子中,编码端根据初始运动矢量获取候选参考帧对应的候选运动矢量,可以包括但不限于:第一候选参考帧可以为候选参考帧中的任意一个,针对该第一候选参考帧,编码端可以将该第一候选参考帧的初始运动矢量确定为中心运动矢量,并确定与中心运动矢量对应的边缘运动矢量,该边缘运动矢量与该中心运动矢量不同;编码端可以根据当前图像块的模板获得中心运动矢量的编码性能,并根据当前图像块的模板获得边缘运动矢量的编码性能;然后,编码端可以根据中心运动矢量的编码性能和边缘运动矢量的编码性能,从中心运动矢量和边缘运动矢量中确定第一候选参考帧对应的候选运动矢量。
其中,针对每个候选参考帧,可以根据该候选参考帧的初始运动矢量获取该候选参考帧的候选运动矢量,即每个候选参考帧对应一个候选运动矢量。
其中,编码端根据候选参考帧的初始运动矢量获取该候选参考帧的候选运动矢量的过程,可以参见实施例四或实施例五,只是将实施例四或实施例五中的目标运动矢量,替换为候选参考帧的候选运动矢量,将实施例四或实施例五中的原始运动矢量,替换为候选参考帧的初始运动矢量即可,在此不再赘述。
步骤334,编码端从原始参考帧对应的候选运动矢量以及各个候选参考帧对应的候选运动矢量中,选择编码性能最优的候选运动矢量。
例如,编码端得到原始参考帧对应的候选运动矢量以及各个候选参考帧对应的候选运动矢量后,可以获取每个候选运动矢量的编码性能,具体获取方式参见上述实施例四,将实施例四的中心运动矢量替换为候选运动矢量即可,在此不再赘述。编码端在得到每个候选运动矢量的编码性能后,就可以选择编码性能最优的候选运动矢量,对此选择过程不再赘述。
步骤335,编码端将编码性能最优的候选运动矢量确定为目标运动矢量,并将编码性能最优的候选运动矢量对应的参考帧确定为目标参考帧。
例如,当编码性能最优的候选运动矢量对应原始参考帧时,编码端可以将该原始参考帧确定为目标参考帧,当编码性能最优的候选运动矢量对应候选参考帧时,编码端可以将该候选参考帧确定为目标参考帧。
本实施例中,需要从原始参考帧和所有候选参考帧中选取目标参考帧,而目标参考帧也就是当前图像块最终的参考帧。需要从原始参考帧对应的候选运动矢量和所有候选参考帧对应的候选运动矢量中,选取目标运动矢量(即编码性能最优的候选运动矢量),该目标运动矢量就是当前图像块最终的运动矢量。
实施例九:
本实施例中,原始模式信息可以为原始预测图像块,目标模式信息可以为目标预测图像块,编码端可以根据原始预测图像块获取目标预测图像块。
具体的,在帧间编码技术中,为了传输当前帧视频图像的当前图像块,可以先查询到当前图像块对应的参考帧视频图像,即可以通过参考帧索引查询到该参考帧视频图像,然后,从该参考帧视频图像中查询到与当前图像块匹配的预测图像块,在需要对当前图像块进行编码时,不是直接对该当前图像块进行编码,而是对当前图像块与该预测图像块的差进行编码,从而减少比特传输量。
在一个例子中,可以直接对当前图像块与预测图像块的差进行编码,但是,由于当前图像块与预测图像块之间可能存在亮度差别,因此,直接对当前图像块与预测图像块的差进行编码时,存在编码效果较差,编码性能较低等问题。
与上述方式不同的是,本实施例中,将参考帧视频图像中的预测图像块称为原始预测图像块,并根据原始预测图像块获取目标预测图像块,对当前图像块与目标预测图像块的差进行编码,而不是直接对当前图像块与原始预测图像块的差进行编码。由于目标预测图像块是采用局部光照补偿算法得到的图像块,能够消除预测图像块与当前图像块之间的亮度差别,在对当前图像块与目标预测图像块的差进行编码时,可以解决编码效果较差,编码性能较低等问题。
在本实施例中,编码端可以获取当前图像块对应的原始预测图像块,根据原始预测图像块和获取的模板,得到基于模板的目标预测图像块。根据目标预测图像块对比特流进行编码,得到编码比特流,并将编码比特流发送给解码端。
在一个例子中,编码端获取当前图像块对应的原始预测图像块的过程,可以包括但不限于如下方式:编码端先获取当前图像块对应的参考帧索引,并通过该参考帧索引查询到当前图像块对应的参考帧视频图像,然后,编码端可以从该参考帧视频图像中查询到与当前图像块匹配的原始预测图像块。
在一个例子中,编码端根据原始预测图像块和获取的模板,得到基于模板的目标预测图像块的过程,可以参见后续实施例,在此不再赘述。
在一个例子中,编码端根据该目标预测图像块对比特流进行编码,得到编码比特流,并将编码比特流发送给解码端的过程,可以包括:在得到目标预测图像块后,可以对当前图像块与目标预测图像块的差进行编码,对此编码方式不做限制,在编码完成后,得到编码比特流,将编码比特流发送给解码端。
进一步的,当编码端采用目标预测图像块对比特流进行编码(即对当前图像块与目标预测图像块的差进行编码)时,编码端向解码端发送携带第一指示信息的编码比特流;当编码端采用原始预测图像块对比特流进行编码(即对当前图像块与原始预测图像块的差进行编码)时,编码端向解码端发送携带第二指示信息的编码比特流。
其中,上述方式是采用显示方式通知第一指示信息或者第二指示信息,在实际应用中,还可以采用隐式方式通知第一指示信息或者第二指示信息,即不在编码比特流中携带第一指示信息或者第二指示信息,具体的,编码端和解码端还可以协商决策策略或者通过在标准定义策略,存储在编码端和解码端,如决策策略可以为默认第一策略信息;或者,默认第二策略信息;或者,默认第三策略信息,第三策略信息为采用与当前图像块的相邻图像块相同的策略信息。
例如,若决策策略为默认第一策略信息,且编码端采用目标预测图像块对比特流进行编码,则不在编码比特流中携带第一指示信息或者第二指示信息;
若决策策略为默认第二策略信息,且编码端采用原始预测图像块对比特流进行编码,则不在编码比特流中携带第一指示信息或者第二指示信息;
若决策策略为默认第三策略信息,当前图像块的相邻图像块采用第一策略信息,且编码端采用目标预测图像块对比特流进行编码,则不在编码比特流中携带第一指示信息或者第二指示信息;若当前图像块的相邻图像块采用第二策略信息,且编码端采用原始预测图像块对比特流进行编码,则不在编码比特流中携带第一指示信息或者第二指示信息。
实施例十:
在实施例九的基础上,编码端根据原始预测图像块和获取的模板,得到基于模板的目标预测图像块的过程,其实现流程可以参见图3D所示。
步骤341,编码端获取当前图像块的运动矢量和该运动矢量对应的参考帧索引。其中,对于当前图像块来说,当前图像块的运动矢量可以为上述实施例中的原始运动矢量,可以为上述实施例中的目标运动矢量,还可以为上述实施例中的最终运动矢量,对此不做限制,只要能够得到当前图像块的运动矢量即可。此外,该运动矢量对应的参考帧索引也就是当前图像块的参考帧的索引。
步骤342,编码端根据当前图像块的运动矢量和参考帧索引获得模板对应的参考块。例如,通过该参考帧索引查询到参考帧视频图像,并从参考帧视频图像中查询到与当前图像块匹配的参考图像块,然后,利用当前图像块的运动矢量对该参考图像块进行移动,得到的就是模板对应的参考块,后续记为TMP。
步骤343,编码端根据当前图像块的模板和该模板对应的参考块,获取原始预测图像块的变换系数。具体的,编码端可以根据当前图像块的模板的各像素的参数信息、该模板对应的参考块的各像素的参数信息,获取原始预测图像块的变换系数。其中,该参数信息可以包括但不限于各像素的亮度值。
例如,参见如下公式:TMi表示当前图像块的模板中的第i个像素的亮度值,TMPi表示模板对应的参考块中的第i个像素的亮度值,M表示模板的像素总数,a和b为变换系数,通过调整a和b的取值,使SSE的取值也发生变化。当SSE的取值最小时,a和b的取值就是目标值,即获得了变换系数a和b的取值。其中,可以采用最小二乘法使SSE取值最小,继而获得变换系数a和b的取值。当然,也可以采用其它算法,对此不做限制。
步骤344,编码端根据变换系数对原始预测图像块进行光照补偿,得到目标预测图像块。例如,目标预测图像块可以为aX+b,X表示原始预测图像块。
实施例十一:
参见图4所示,为解码方法的流程示意图,应用于解码端,该方法可以包括以下步骤:
步骤401,解码端获取当前图像块的候选图像块的运动信息。
其中,当前图像块的候选图像块可以包括但不限于:当前图像块的空域候选图像块;或者,当前图像块的时域候选图像块;对此候选图像块不做限制。
步骤402,解码端根据候选图像块的运动信息获取当前图像块的模板。
其中,解码端根据候选图像块的运动信息获取当前图像块的模板的方法与编码端相同,具体可参见实施例二的相关内容,在此不再赘述。
步骤403,解码端根据当前图像块的模板对编码比特流进行解码。
在一个例子中,解码端根据当前图像块的模板对编码比特流进行解码,可以包括但不限于:获取当前图像块的原始模式信息;基于当前图像块的模板,根据该原始模式信息获取当前图像块的目标模式信息;根据该目标模式信息对编码比特流进行解码。其中,原始模式信息为原始运动矢量,目标模式信息为目标运动矢量;或者,原始模式信息为原始运动矢量和原始参考帧,目标模式信息为目标运动矢量和目标参考帧;或者,原始模式信息为原始预测图像块,目标模式信息为目标预测图像块。当然,上述只是示例,对此不做限制。
在一个例子中,在基于当前图像块的模板,根据该原始模式信息获取当前图像块的目标模式信息之前,解码端还可以获取编码比特流,该编码比特流可以是编码端发送的,也可以是解码端对比特流进行编码后得到的。
例如,解码端可以接收来自编码端的编码比特流,若编码比特流携带第一指示信息,该第一指示信息用于指示基于当前图像块的模板,根据原始模式信息获取当前图像块的目标模式信息;则根据第一指示信息,获取当前图像块的候选图像块的运动信息;根据候选图像块的运动信息获取当前图像块的模板。
又例如,解码端可以接收来自编码端的编码比特流,若编码比特流携带第二指示信息,该第二指示信息用于指示基于当前图像块对应的原始模式信息对编码比特流进行解码;则根据第二指示信息,获取当前图像块对应的原始模式信息,并基于原始模式信息对编码比特流进行解码。
其中,上述方式是采用显示方式通知第一指示信息或者第二指示信息,在实际应用中,编码端还可以采用隐式方式通知第一指示信息或者第二指示信息对应的策略,即编码比特流中未携带第一指示信息或者第二指示信息。基于此,解码端还可以根据本地预设的第一策略信息,获取当前图像块的候选图像块的运动信息;根据候选图像块的运动信息获取当前图像块的模板;或者,还可以根据本地预设的第二策略信息,获取原始模式信息,基于原始模式信息对编码比特流进行解码;或者,还可以获取第三策略信息,根据本地预设的第三策略信息对编码比特流进行解码;其中,第一策略信息用于指示基于当前图像块的模板,根据原始模式信息获取当前图像块的目标模式信息;第二策略信息用于指示基于当前图像块对应的原始模式信息对编码比特流进行解码;第三策略信息为采用与当前图像块的候选图像块相同的策略信息。
具体的,编码端和解码端还可以协商决策策略或者通过在标准定义策略,存储在编码端和解码端,如决策策略可以为默认第一策略信息;或默认第二策略信息;或默认第三策略信息。在此基础上,若编码比特流中未携带第一指示信息和第二指示信息,当决策策略为默认第一策略信息时,根据本地预设的第一策略信息,获取当前图像块的候选图像块的运动信息;根据候选图像块的运动信息获取当前图像块的模板;当决策策略为默认第二策略信息时,则根据本地预设的第二策略信息,获取原始模式信息,基于原始模式信息对编码比特流进行解码;当决策策略为默认第三策略信息,若相邻图像块采用第一策略信息,则获取当前图像块的候选图像块的运动信息;根据候选图像块的运动信息获取当前图像块的模板;若相邻图像块采用第二策略信息,则获取原始模式信息,基于原始模式信息对编码比特流进行解码。
由以上技术方案可见,本申请实施例中,可以根据当前图像块的候选图像块的运动信息获取当前图像块的模板,根据当前图像块的模板对编码比特流进行解码。上述方式可以快速得到当前图像块的模板,解决解码效率低,解码时延大等问题,可以提高解码效率,降低解码时延,并提高解码性能。
实施例十二:
本实施例中,与采用重建信息和预测信息生成模板的方式不同,可以根据当前图像块的候选图像块的运动信息(如运动矢量和参考帧索引等)获取当前图像块的模板。具体的,解码端可以则根据该参考帧索引确定该候选图像块对应的参考帧图像;根据该运动矢量从该参考帧图像中获取与该候选图像块对应的参考图像块,并根据该参考图像块获取该当前图像块的模板。
其中,候选图像块可以包括M个第一候选图像块和N个第二候选图像块,M为大于或等于1的自然数,N为大于或等于0的自然数,或者,M为大于或等于0的自然数,N为大于或等于1的自然数。第一候选图像块为当前图像块上侧的候选图像块,第二候选图像块为当前图像块左侧的候选图像块。第一候选图像块包括当前图像块上侧的相邻图像块和/或次邻图像块;相邻图像块的预测模式为帧间模式或者帧内模式;次邻图像块的预测模式为帧间模式。第二候选图像块包括当前图像块左侧的相邻图像块和/或次邻图像块;相邻图像块的预测模式为帧间模式或者帧内模式;次邻图像块的预测模式为帧间模式。
根据候选图像块的运动信息获取当前图像块的模板,可以包括但不限于:根据M个第一候选图像块的运动矢量预测模式和运动信息,确定第一模板;根据N个第二候选图像块的运动矢量预测模式和运动信息,确定第二模板。然后,将第一模板确定为当前图像块的模板;或者,将第二模板确定为当前图像块的模板;或者,将第一模板和第二模板拼接之后确定为当前图像块的模板。
在一个例子中,当M大于1时,则上述第一模板可以包括M个子模板或者P个子模板,且由M个子模板或P个子模板拼接而成,P为帧间模式的第一候选图像块的数量;当M等于1时,则第一模板可以包括第一子模板,第一子模板是根据当前图像块上侧的首个候选图像块的运动矢量预测模式和运动信息确定的。当N大于1时,则第二模板可以包括N个子模板或者R个子模板,且由N个子模板或R个子模板拼接而成,R为帧间模式的第二候选图像块的数量;当N等于1时,则第二模板可以包括第二子模板,第二子模板是根据当前图像块左侧的首个候选图像块的运动矢量预测模式和运动信息确定的。
在一个例子中,根据候选图像块的运动信息获取当前图像块的模板,还可以包括但不限于:当当前图像块对应多个运动信息时,根据每个运动信息获取该运动信息对应的模板。获取每个运动信息对应的权重参数,并根据每个运动信息对应的权重参数以及该运动信息对应的模板获取当前图像块的模板。
其中,实施例十二的处理过程与实施例二类似,在此不再重复赘述。
实施例十三:
原始模式信息为当前图像块的原始运动矢量,目标模式信息为当前图像块的目标运动矢量,解码端可以获取当前图像块对应的原始运动矢量,并根据该原始运动矢量和获取的模板,得到基于模板的目标运动矢量,该目标运动矢量与该原始运动矢量不同。解码端根据该目标运动矢量对编码比特流进行解码。
例如,解码端将目标运动矢量确定为当前图像块的最终运动矢量,并利用当前图像块的最终运动矢量对编码比特流进行解码,对此解码过程不做限制。
其中,解码端根据该原始运动矢量和获取的模板,得到基于模板的目标运动矢量的处理过程,可以参见后续的实施例,在此不再重复赘述。
在一个例子中,针对解码端获取当前图像块的原始运动矢量的过程,解码端还可以接收来自编码端的编码比特流,该编码比特流携带原始运动矢量在运动矢量列表中的索引值;解码端可以从运动矢量列表中选取与该索引值对应的运动矢量;将选取的运动矢量确定为当前图像块对应的原始运动矢量。如索引值为1时,则获取运动矢量列表的第一个运动矢量,该运动矢量是当前图像块的原始运动矢量。其中,运动矢量列表用于记录与当前图像块相邻的图像块的运动矢量,解码端维护的运动矢量列表与编码端维护的运动矢量列表相同。当然,上述方式只是示例,如可以将当前图像块的候选图像块的运动矢量确定为当前图像块对应的原始运动矢量,或将默认运动矢量确定为原始运动矢量。
在一个例子中,解码端还可以从编码比特流中解析出第一指示信息或者第二指示信息。当编码比特流携带第一指示信息时,可以根据原始运动矢量和获取的模板,得到基于模板的目标运动矢量,并利用目标运动矢量对编码比特流进行解码;当编码比特流携带第二指示信息时,可以根据原始运动矢量对编码比特流进行解码。
由以上技术方案可见,可以根据原始运动矢量获取目标运动矢量,并根据目标运动矢量确定当前图像块的最终运动矢量,而不是直接根据原始运动矢量确定当前图像块的最终运动矢量,从而提高运动矢量的精度,提高解码性能。而且,在根据原始运动矢量获取目标运动矢量时,可以根据候选图像块的运动信息获取当前图像块的模板,基于当前图像块的模板,根据原始运动矢量获取目标运动矢量;上述方式可以快速得到当前图像块的模板,继而根据该模板得到目标运动矢量,可以提高解码效率,减少解码时延。例如,在解码的重建阶段之前,就可以获取当前图像块的模板,并根据模板得到目标运动矢量。
实施例十四:
在实施例十三的基础上,针对解码端根据原始运动矢量和获取的模板,得到基于模板的目标运动矢量的过程,其流程参见图5所示,可以包括:
步骤501,解码端将原始运动矢量确定为中心运动矢量。
步骤502,解码端确定与该中心运动矢量对应的边缘运动矢量。
其中,该边缘运动矢量可以与该中心运动矢量不同。
其中,确定与中心运动矢量对应的边缘运动矢量,可以包括:将中心运动矢量(x,y)向不同方向偏移S,得到不同方向的边缘运动矢量(x-S,y)、边缘运动矢量(x+S,y)、边缘运动矢量(x,y+S)、边缘运动矢量(x,y-S)。
步骤503,解码端根据当前图像块的模板获得中心运动矢量的编码性能,并根据当前图像块的模板获得边缘运动矢量的编码性能。
其中,解码端根据当前图像块的模板获得中心运动矢量的编码性能,可以包括但不限于:解码端可以根据当前图像块的模板的参数信息和第一目标参考块的参数信息,确定中心运动矢量的编码性能,其中,第一目标参考块为模板对应的参考图像块基于中心运动矢量进行偏移之后获得的图像块。
其中,解码端根据当前图像块的模板获得边缘运动矢量的编码性能,可以包括但不限于:解码端可以根据当前图像块的模板的参数信息和第二目标参考块的参数信息,确定边缘运动矢量的编码性能,其中,第二目标参考块为模板对应的参考图像块基于边缘运动矢量进行偏移之后获得的图像块。
步骤504,解码端根据中心运动矢量的编码性能和边缘运动矢量的编码性能,从中心运动矢量和边缘运动矢量中确定目标运动矢量。
具体的,解码端可以从中心运动矢量和边缘运动矢量中选择编码性能最优的运动矢量;当该编码性能最优的运动矢量不是原始运动矢量时,可以将该编码性能最优的运动矢量确定为目标运动矢量;当该编码性能最优的运动矢量是原始运动矢量时,解码端可以从中心运动矢量和边缘运动矢量中选择编码性能次优的运动矢量,并将编码性能次优的运动矢量确定为目标运动矢量。
步骤501-步骤504的详细处理流程,可以参见实施例四,只是执行主体从编码端变更为解码端,其它处理流程相同,在此不再重复赘述。
针对解码端根据原始运动矢量和获取的模板,得到基于模板的目标运动矢量,还可以采用实施例五,只是执行主体从编码端变为解码端,在此不再赘述。
实施例十五:
本实施例中,原始模式信息为当前图像块的原始运动矢量和原始参考帧,目标模式信息为当前图像块的目标运动矢量和目标参考帧。基于此,解码端可以获取当前图像块对应的原始运动矢量和原始参考帧,基于当前图像块的模板,解码端可以根据当前图像块对应的原始运动矢量和该原始参考帧,得到基于模板的目标运动矢量(目标运动矢量可以与原始运动矢量不同)和目标参考帧,并根据该目标运动矢量和目标参考帧对编码比特流进行解码。
其中,解码端基于当前图像块的模板,根据当前图像块对应的原始运动矢量和该原始参考帧,得到基于模板的目标运动矢量和目标参考帧,可以包括但不限于:基于当前图像块的模板,根据该原始运动矢量获取该原始参考帧对应的候选运动矢量;根据该原始运动矢量获取各个候选参考帧对应的初始运动矢量;根据初始运动矢量获取候选参考帧对应的候选运动矢量;然后,可以从原始参考帧对应的候选运动矢量以及各个候选参考帧对应的候选运动矢量中选择编码性能最优的候选运动矢量;将编码性能最优的候选运动矢量确定为目标运动矢量,将编码性能最优的候选运动矢量对应的参考帧确定为目标参考帧。
其中,根据原始运动矢量获取各个候选参考帧对应的初始运动矢量,可以包括但不限于:第一候选参考帧为候选参考帧中的任意一个,针对第一候选参考帧,根据当前图像块所在帧与原始参考帧的距离、当前图像块所在帧与第一候选参考帧的距离和原始运动矢量,获取第一候选参考帧的初始运动矢量。
在一个例子中,基于当前图像块的模板,根据该原始运动矢量获取该原始参考帧对应的候选运动矢量,可以包括但不限于:将该原始运动矢量确定为中心运动矢量,并确定与该中心运动矢量对应的边缘运动矢量,该边缘运动矢量与该中心运动矢量不同;然后,根据当前图像块的模板获得该中心运动矢量的编码性能,并根据当前图像块的模板获得该边缘运动矢量的编码性能;然后,可以根据该中心运动矢量的编码性能和该边缘运动矢量的编码性能,从该中心运动矢量和该边缘运动矢量中确定原始参考帧对应的候选运动矢量。
在一个例子中,根据初始运动矢量获取候选参考帧对应的候选运动矢量,可以包括但不限于:第一候选参考帧为候选参考帧中的任意一个,针对所述第一候选参考帧,将所述第一候选参考帧的初始运动矢量确定为中心运动矢量,并确定与该中心运动矢量对应的边缘运动矢量,该边缘运动矢量与中心运动矢量不同;根据当前图像块的模板获得中心运动矢量的编码性能和边缘运动矢量的编码性能;根据中心运动矢量的编码性能和边缘运动矢量的编码性能,从中心运动矢量和边缘运动矢量中确定第一候选参考帧对应的候选运动矢量。
其中,针对实施例十五的详细实现流程,可以参见上述实施例七和实施例八,只是执行主体从编码端变为解码端,在此不再重复赘述。
实施例十六:
本实施例中,原始模式信息可以为原始预测图像块,目标模式信息可以为目标预测图像块,基于此,解码端可以获取当前图像块对应的原始预测图像块,基于当前图像块的模板,根据该原始预测图像块获取当前图像块的目标预测图像块,并根据该目标预测图像块对编码比特流进行解码。
其中,解码端基于当前图像块的模板,根据该原始预测图像块获取当前图像块的目标预测图像块,可以包括但不限于:解码端根据当前图像块的模板和该模板对应的参考块,获取该原始预测图像块的变换系数;然后,根据该变换系数对原始预测图像块进行光照补偿,得到当前图像块的目标预测图像块。
在一个例子中,解码端根据当前图像块的模板和该模板对应的参考块,获取该原始预测图像块的变换系数之前,解码端还可以获取当前图像块的运动矢量和该运动矢量对应的参考帧索引;然后,解码端可以根据当前图像块的运动矢量和该参考帧索引获得模板对应的参考块。
在一个例子中,解码端根据当前图像块的模板和该模板对应的参考块,获取该原始预测图像块的变换系数,可以包括但不限于:解码端可以根据当前图像块的模板的各像素的参数信息、该模板对应的参考块的各像素的参数信息,获取变换系数;其中,参数信息可以包括各像素的亮度值。
其中,针对实施例十六的详细实现流程,可以参见上述实施例九和实施例十,只是执行主体从编码端变为解码端,在此不再重复赘述。
实施例十七:
基于与上述方法同样的申请构思,本申请实施例还提出一种解码装置,应用于解码端,如图6所示,为所述装置的结构图,所述装置包括:
获取模块61,用于获取当前图像块的候选图像块的运动信息;根据所述候选图像块的运动信息获取所述当前图像块的模板;解码模块62,用于根据所述当前图像块的所述模板对编码比特流进行解码。
所述解码模块62根据所述当前图像块的所述模板对编码比特流进行解码时具体用于:获取所述当前图像块的原始模式信息;基于所述当前图像块的所述模板,根据所述原始模式信息获取所述当前图像块的目标模式信息;根据所述目标模式信息对所述编码比特流进行解码。
所述解码装置还包括:接收模块,用于接收来自编码端的编码比特流,所述编码比特流携带第一指示信息;所述第一指示信息用于指示基于所述当前图像块的模板,根据所述原始模式信息获取所述当前图像块的目标模式信息;所述获取模块61,还用于根据所述第一指示信息,获取当前图像块的候选图像块的运动信息;根据所述候选图像块的运动信息获取所述当前图像块的模板。
所述接收模块,还用于接收来自编码端的编码比特流,所述编码比特流携带第二指示信息;其中,所述第二指示信息用于指示基于所述原始模式信息对编码比特流进行解码;所述解码模块62,还用于根据所述第二指示信息,获取所述原始模式信息;基于所述原始模式信息对所述编码比特流进行解码。
所述获取模块61,还用于根据本地预设的第一策略信息,获取当前图像块的候选图像块的运动信息;根据所述候选图像块的运动信息获取所述当前图像块的所述模板,其中,所述第一策略信息用于指示基于所述当前图像块的模板,根据所述原始模式信息获取所述当前图像块的目标模式信息;或者,
所述解码模块62,还用于根据本地预设的第二策略信息,获取所述原始模式信息;基于所述原始模式信息对所述编码比特流进行解码,其中,所述第二策略信息用于指示基于所述原始模式信息对编码比特流进行解码;或者,
所述解码模块62还用于根据本地预设的第三策略信息对所述编码比特流进行解码;所述第三策略信息为采用与当前图像块的候选图像块相同的策略信息。
所述原始模式信息为所述当前图像块的原始运动矢量,所述目标模式信息为所述当前图像块的目标运动矢量;所述解码模块62基于所述当前图像块的所述模板,根据所述原始模式信息获取所述当前图像块的目标模式信息时具体用于:将所述原始运动矢量确定为中心运动矢量;确定与所述中心运动矢量对应的边缘运动矢量,所述边缘运动矢量与所述中心运动矢量不同;根据所述模板获得所述中心运动矢量的编码性能和所述边缘运动矢量的编码性能;根据所述中心运动矢量的编码性能和所述边缘运动矢量的编码性能,从所述中心运动矢量和所述边缘运动矢量中确定所述目标运动矢量。
所述原始模式信息为所述当前图像块的原始运动矢量和原始参考帧,所述目标模式信息为所述当前图像块的目标运动矢量和目标参考帧;所述解码模块62基于所述当前图像块的所述模板,根据所述原始模式信息获取所述当前图像块的目标模式信息时具体用于:基于所述当前图像块的所述模板,根据所述原始运动矢量获取所述原始参考帧对应的候选运动矢量;根据所述原始运动矢量获取各个候选参考帧对应的初始运动矢量;根据所述初始运动矢量获取所述候选参考帧对应的候选运动矢量;从所述原始参考帧对应的候选运动矢量以及各个所述候选参考帧对应的候选运动矢量中选择编码性能最优的候选运动矢量;将所述编码性能最优的候选运动矢量确定为所述目标运动矢量,将编码性能最优的候选运动矢量对应的参考帧确定为所述目标参考帧。
所述解码模块62根据所述原始运动矢量获取各个候选参考帧对应的初始运动矢量时具体用于:第一候选参考帧为候选参考帧中的任意一个,针对所述第一候选参考帧,根据当前图像块所在帧与所述原始参考帧的距离、当前图像块所在帧与所述第一候选参考帧的距离和所述原始运动矢量,获取所述第一候选参考帧的所述初始运动矢量。
所述解码模块62基于所述当前图像块的所述模板,根据所述原始运动矢量获取所述原始参考帧对应的候选运动矢量时具体用于:将所述原始运动矢量确定为中心运动矢量;确定与所述中心运动矢量对应的边缘运动矢量,所述边缘运动矢量与所述中心运动矢量不同;根据所述模板获得所述中心运动矢量的编码性能和所述边缘运动矢量的编码性能;根据所述中心运动矢量的编码性能和所述边缘运动矢量的编码性能,从所述中心运动矢量和所述边缘运动矢量中确定所述原始参考帧对应的候选运动矢量。
所述解码模块62根据所述初始运动矢量获取所述候选参考帧对应的候选运动矢量时具体用于:第一候选参考帧为候选参考帧中的任意一个,针对所述第一候选参考帧,将所述第一候选参考帧的初始运动矢量确定为中心运动矢量;确定与所述中心运动矢量对应的边缘运动矢量;所述边缘运动矢量与所述中心运动矢量不同;根据所述模板获得所述中心运动矢量的编码性能和所述边缘运动矢量的编码性能;根据所述中心运动矢量的编码性能和所述边缘运动矢量的编码性能,从所述中心运动矢量和所述边缘运动矢量中确定所述第一候选参考帧对应的所述候选运动矢量。
所述原始模式信息为原始预测图像块,所述目标模式信息为目标预测图像块,所述解码模块62基于所述当前图像块的所述模板,根据所述原始模式信息获取所述当前图像块的目标模式信息时具体用于:根据所述模板和所述模板对应的参考块,获取所述原始预测图像块的变换系数;根据所述变换系数对所述原始预测图像块进行光照补偿,得到所述目标预测图像块。
所述解码模块62还用于:获取当前图像块的运动矢量和所述运动矢量对应的参考帧索引;根据所述当前图像块的运动矢量和所述参考帧索引获得所述模板对应的参考块。
所述解码模块62根据所述模板和所述模板对应的参考块,获取所述原始预测图像块的变换系数时具体用于:根据所述模板的各像素的参数信息、所述模板对应的参考块的各像素的参数信息,获取所述变换系数;其中,所述参数信息包括亮度值。
在一个例子中,所述候选图像块包括M个第一候选图像块和N个第二候选图像块,M为大于或等于1的自然数,N为大于或等于0的自然数,或者,M为大于或等于0的自然数,N为大于或等于1的自然数;所述第一候选图像块为所述当前图像块上侧的候选图像块,所述第二候选图像块为所述当前图像块左侧的候选图像块;所述获取模块61根据所述候选图像块的运动信息获取所述当前图像块的模板时具体用于:根据M个第一候选图像块的运动矢量预测模式和运动信息,确定第一模板;根据N个第二候选图像块的运动矢量预测模式和运动信息,确定第二模板;将所述第一模板确定为所述当前图像块的模板;或者,将所述第二模板确定为所述当前图像块的模板;或者,将所述第一模板和所述第二模板拼接之后确定为所述当前图像块的模板。
在一个例子中,所述第一候选图像块包括所述当前图像块上侧的候选图像块和/或次邻图像块;所述候选图像块的预测模式为帧间模式或者帧内模式;所述次邻图像块的预测模式为帧间模式;所述第二候选图像块包括所述当前图像块左侧的候选图像块和/或次邻图像块;所述候选图像块的预测模式为帧间模式或者帧内模式;所述次邻图像块的预测模式为帧间模式。
在一个例子中,当所述M大于1时,所述第一模板包括M个子模板或者P个子模板,且由所述M个子模板或所述P个子模板拼接而成,所述P为帧间模式的第一候选图像块的数量;当M等于1时,所述第一模板包括第一子模板,所述第一子模板是根据所述当前图像块上侧的首个候选图像块的运动矢量预测模式和运动信息确定的。
在一个例子中,所述运动信息包括所述第一候选图像块的运动矢量和参考帧索引,所述获取模块61根据M个第一候选图像块的运动矢量预测模式和运动信息,确定第一模板时具体用于:针对所述M个第一候选图像块中的第i个候选图像块,当确定所述第i个候选图像块的运动矢量预测模式为帧间模式时,根据所述参考帧索引确定所述第i个候选图像块对应的参考帧图像;根据所述第i个候选图像块的运动矢量,从所述参考帧图像中确定所述第i个候选图像块对应的参考图像块,所述参考图像块与所述第i个候选图像块的相对位置偏移与所述第i个候选图像块的运动矢量相匹配;根据确定的所述参考图像块,获取尺寸为第一横向长度和第一纵向长度的图像块作为所述第一模板包括的第i个子模板。
所述获取模块61根据M个第一候选图像块的运动矢量预测模式和运动信息,确定第一模板时具体用于:针对所述M个第一候选图像块中的第i个候选图像块,当确定所述第i个候选图像块的运动矢量预测模式为帧内模式时,将所述第i个候选图像块按照默认值填充,并获取尺寸为第一横向长度和第一纵向长度的图像块作为所述第一模板包括的第i个子模板;或者,根据所述第i个候选图像块对应的参考帧索引确定所述第i个候选图像块对应的参考帧图像;根据所述第i个候选图像块对应的运动矢量,从所述参考帧图像中确定所述第i个候选图像块对应的参考图像块,所述参考图像块与所述第i个候选图像块的相对位置偏移与所述第i个候选图像块对应的运动矢量相匹配;根据确定的所述参考图像块,获取尺寸为第一横向长度和第一纵向长度的图像块作为所述第一模板包括的第i个子模板;其中,所述第i个候选图像块对应的参考帧索引和运动矢量,是所述第i个候选图像块的候选图像块的参考帧索引和运动矢量。
所述第一横向长度与所述第一候选图像块的横向长度满足第一比例关系,或者与所述当前图像块的横向长度满足第二比例关系,或者等于第一预设长度;
所述第一纵向长度与所述第一候选图像块的纵向长度满足第三比例关系,或者与所述当前图像块的纵向长度满足第四比例关系,或者等于第二预设长度。
在一个例子中,当所述N大于1时,所述第二模板包括N个子模板或者R个子模板,且由所述N个子模板或所述R个子模板拼接而成,所述R为帧间模式的第二候选图像块的数量;当N等于1时,所述第二模板包括第二子模板,所述第二子模板是根据所述当前图像块左侧的首个候选图像块的运动矢量预测模式和运动信息确定的。
在一个例子中,所述运动信息包括所述第二候选图像块的运动矢量和参考帧索引,所述获取模块61根据N个第二候选图像块的运动矢量预测模式和运动信息,确定第二模板时具体用于:针对所述N个第二候选图像块中的第i个候选图像块,当确定所述第i个候选图像块的运动矢量预测模式为帧间模式时,根据所述参考帧索引确定所述第i个候选图像块对应的参考帧图像;根据所述第i个候选图像块的运动矢量,从所述参考帧图像中确定所述第i个候选图像块对应的参考图像块,所述参考图像块与所述第i个候选图像块的相对位置偏移与所述第i个候选图像块的运动矢量相匹配;根据确定的所述参考图像块,获取尺寸为第二横向长度和第二纵向长度的图像块作为所述第二模板包括的第i个子模板。
所述获取模块61根据N个第二候选图像块的运动矢量预测模式和运动信息,确定第二模板时具体用于:针对所述N个第二候选图像块中的第i个候选图像块,当确定所述第i个候选图像块的运动矢量预测模式为帧内模式时,将所述第i个候选图像块按照默认值填充,并获取尺寸为第二横向长度和第二纵向长度的图像块作为所述第二模板包括的第i个子模板;或者,根据所述第i个候选图像块对应的参考帧索引确定所述第i个候选图像块对应的参考帧图像;根据所述第i个候选图像块对应的运动矢量,从所述参考帧图像中确定所述第i个候选图像块对应的参考图像块,所述参考图像块与所述第i个候选图像块的相对位置偏移与所述第i个候选图像块对应的运动矢量相匹配;根据确定的所述参考图像块,获取尺寸为第二横向长度和第二纵向长度的图像块作为所述第一模板包括的第i个子模板;其中,所述第i个候选图像块对应的参考帧索引和运动矢量,是所述第i个候选图像块的候选图像块的参考帧索引和运动矢量。
所述第二横向长度与所述第二候选图像块的横向长度满足第五比例关系,或者与所述当前图像块的横向长度满足第六比例关系,或者等于第三预设长度;
所述第二纵向长度与所述第二候选图像块的纵向长度满足第七比例关系,或者与所述当前图像块的纵向长度满足第八比例关系,或者等于第四预设长度。
所述获取模块61根据所述候选图像块的运动信息获取所述当前图像块的模板时具体用于:当所述当前图像块对应多个运动信息时,根据每个运动信息获取该运动信息对应的模板;获取每个运动信息对应的权重参数,根据每个运动信息对应的权重参数和所述运动信息对应的模板获取所述当前图像块的模板。
基于与上述方法同样的申请构思,本申请实施例还提出一种编码装置,应用于编码端,如图7所示,为所述装置的结构图,所述装置包括:
获取模块71,用于获取当前图像块的候选图像块的运动信息;根据所述候选图像块的运动信息获取所述当前图像块的模板;编码模块72,用于根据所述当前图像块的所述模板对比特流进行编码,得到编码比特流;发送模块73,用于将所述编码比特流发送给解码端。
所述编码模块72根据所述当前图像块的所述模板对比特流进行编码,得到编码比特流时具体用于:获取所述当前图像块的原始模式信息;基于所述当前图像块的所述模板,根据所述原始模式信息获取所述当前图像块的目标模式信息;根据所述目标模式信息对比特流进行编码,得到编码比特流。
当根据所述目标模式信息对比特流进行编码时,所述发送模块73向解码端发送携带第一指示信息的编码比特流,所述第一指示信息用于指示基于所述当前图像块的模板,根据所述原始模式信息获取所述当前图像块的目标模式信息。
当根据所述原始模式信息对比特流进行编码时,所述发送模块73向解码端发送携带第二指示信息的编码比特流,所述第二指示信息用于指示基于所述原始模式信息对编码比特流进行解码。
所述原始模式信息为所述当前图像块的原始运动矢量,所述目标模式信息为所述当前图像块的目标运动矢量;所述编码模块72基于所述当前图像块的所述模板,根据所述原始模式信息获取所述当前图像块的目标模式信息时具体用于:将所述原始运动矢量确定为中心运动矢量;确定与所述中心运动矢量对应的边缘运动矢量,所述边缘运动矢量与所述中心运动矢量不同;根据所述模板获得所述中心运动矢量的编码性能和所述边缘运动矢量的编码性能;根据所述中心运动矢量的编码性能和所述边缘运动矢量的编码性能,从所述中心运动矢量和所述边缘运动矢量中确定所述目标运动矢量。
所述原始模式信息为所述当前图像块的原始运动矢量和原始参考帧,所述目标模式信息为所述当前图像块的目标运动矢量和目标参考帧;所述编码模块72基于所述当前图像块的所述模板,根据所述原始模式信息获取所述当前图像块的目标模式信息时具体用于:基于所述当前图像块的所述模板,根据所述原始运动矢量获取所述原始参考帧对应的候选运动矢量;根据所述原始运动矢量获取各个候选参考帧对应的初始运动矢量;根据所述初始运动矢量获取所述候选参考帧对应的候选运动矢量;从所述原始参考帧对应的候选运动矢量以及各个所述候选参考帧对应的候选运动矢量中选择编码性能最优的候选运动矢量;将所述编码性能最优的候选运动矢量确定为所述目标运动矢量,将编码性能最优的候选运动矢量对应的参考帧确定为所述目标参考帧。
所述编码模块72根据所述原始运动矢量获取各个候选参考帧对应的初始运动矢量时具体用于:第一候选参考帧为候选参考帧中的任意一个,针对所述第一候选参考帧,根据当前图像块所在帧与所述原始参考帧的距离、当前图像块所在帧与所述第一候选参考帧的距离和所述原始运动矢量,获取所述第一候选参考帧的所述初始运动矢量。
所述编码模块72基于所述当前图像块的所述模板,根据所述原始运动矢量获取所述原始参考帧对应的候选运动矢量时具体用于:将所述原始运动矢量确定为中心运动矢量;确定与所述中心运动矢量对应的边缘运动矢量,所述边缘运动矢量与所述中心运动矢量不同;根据所述模板获得所述中心运动矢量的编码性能和所述边缘运动矢量的编码性能;根据所述中心运动矢量的编码性能和所述边缘运动矢量的编码性能,从所述中心运动矢量和所述边缘运动矢量中确定所述原始参考帧对应的候选运动矢量。
所述编码模块72根据所述初始运动矢量获取所述候选参考帧对应的候选运动矢量时具体用于:第一候选参考帧为候选参考帧中的任意一个,针对所述第一候选参考帧,将所述第一候选参考帧的初始运动矢量确定为中心运动矢量;确定与所述中心运动矢量对应的边缘运动矢量;所述边缘运动矢量与所述中心运动矢量不同;根据所述模板获得所述中心运动矢量的编码性能和所述边缘运动矢量的编码性能;根据所述中心运动矢量的编码性能和所述边缘运动矢量的编码性能,从所述中心运动矢量和所述边缘运动矢量中确定所述第一候选参考帧对应的所述候选运动矢量。
所述原始模式信息为原始预测图像块,所述目标模式信息为目标预测图像块,所述编码模块72基于所述当前图像块的所述模板,根据所述原始模式信息获取所述当前图像块的目标模式信息时具体用于:根据所述模板和所述模板对应的参考块,获取所述原始预测图像块的变换系数;根据所述变换系数对所述原始预测图像块进行光照补偿,得到所述目标预测图像块。
所述编码模块72还用于:获取当前图像块的运动矢量和所述运动矢量对应的参考帧索引;根据所述当前图像块的运动矢量和所述参考帧索引获得所述模板对应的参考块。
所述编码模块72根据所述模板和所述模板对应的参考块,获取所述原始预测图像块的变换系数时具体用于:根据所述模板的各像素的参数信息、所述模板对应的参考块的各像素的参数信息,获取所述变换系数;其中,所述参数信息包括亮度值。
所述候选图像块包括M个第一候选图像块和N个第二候选图像块,M为大于或等于1的自然数,N为大于或等于0的自然数,或者,M为大于或等于0的自然数,N为大于或等于1的自然数;所述第一候选图像块为所述当前图像块上侧的候选图像块,所述第二候选图像块为所述当前图像块左侧的候选图像块;所述获取模块71根据所述候选图像块的运动信息获取所述当前图像块的模板时具体用于:根据M个第一候选图像块的运动矢量预测模式和运动信息,确定第一模板;根据N个第二候选图像块的运动矢量预测模式和运动信息,确定第二模板;将所述第一模板确定为所述当前图像块的模板;或者,将所述第二模板确定为所述当前图像块的模板;或者,将所述第一模板和所述第二模板拼接之后确定为所述当前图像块的模板。
在一个例子中,所述第一候选图像块包括所述当前图像块上侧的候选图像块和/或次邻图像块;所述候选图像块的预测模式为帧间模式或者帧内模式;所述次邻图像块的预测模式为帧间模式;所述第二候选图像块包括所述当前图像块左侧的候选图像块和/或次邻图像块;所述候选图像块的预测模式为帧间模式或者帧内模式;所述次邻图像块的预测模式为帧间模式。
在一个例子中,当所述M大于1时,所述第一模板包括M个子模板或者P个子模板,且由所述M个子模板或所述P个子模板拼接而成,所述P为帧间模式的第一候选图像块的数量;当M等于1时,所述第一模板包括第一子模板,所述第一子模板是根据所述当前图像块上侧的首个候选图像块的运动矢量预测模式和运动信息确定的。
所述运动信息包括所述第一候选图像块的运动矢量和参考帧索引,所述获取模块71根据M个第一候选图像块的运动矢量预测模式和运动信息,确定第一模板时具体用于:针对所述M个第一候选图像块中的第i个候选图像块,当确定所述第i个候选图像块的运动矢量预测模式为帧间模式时,根据所述参考帧索引确定所述第i个候选图像块对应的参考帧图像;根据所述第i个候选图像块的运动矢量,从所述参考帧图像中确定所述第i个候选图像块对应的参考图像块,所述参考图像块与所述第i个候选图像块的相对位置偏移与所述第i个候选图像块的运动矢量相匹配;根据确定的所述参考图像块,获取尺寸为第一横向长度和第一纵向长度的图像块作为所述第一模板包括的第i个子模板。
所述获取模块71根据M个第一候选图像块的运动矢量预测模式和运动信息,确定第一模板时具体用于:针对所述M个第一候选图像块中的第i个候选图像块,当确定所述第i个候选图像块的运动矢量预测模式为帧内模式时,将所述第i个候选图像块按照默认值填充,并获取尺寸为第一横向长度和第一纵向长度的图像块作为所述第一模板包括的第i个子模板;或者,根据所述第i个候选图像块对应的参考帧索引确定所述第i个候选图像块对应的参考帧图像;根据所述第i个候选图像块对应的运动矢量,从所述参考帧图像中确定所述第i个候选图像块对应的参考图像块,所述参考图像块与所述第i个候选图像块的相对位置偏移与所述第i个候选图像块对应的运动矢量相匹配;根据确定的所述参考图像块,获取尺寸为第一横向长度和第一纵向长度的图像块作为所述第一模板包括的第i个子模板;其中,所述第i个候选图像块对应的参考帧索引和运动矢量,是所述第i个候选图像块的候选图像块的参考帧索引和运动矢量。
所述第一横向长度与所述第一候选图像块的横向长度满足第一比例关系,或者与所述当前图像块的横向长度满足第二比例关系,或者等于第一预设长度;
所述第一纵向长度与所述第一候选图像块的纵向长度满足第三比例关系,或者与所述当前图像块的纵向长度满足第四比例关系,或者等于第二预设长度。
在一个例子中,当所述N大于1时,所述第二模板包括N个子模板或者R个子模板,且由所述N个子模板或所述R个子模板拼接而成,所述R为帧间模式的第二候选图像块的数量;当N等于1时,所述第二模板包括第二子模板,所述第二子模板是根据所述当前图像块左侧的首个候选图像块的运动矢量预测模式和运动信息确定的。
所述运动信息包括所述第二候选图像块的运动矢量和参考帧索引,所述获取模块71根据N个第二候选图像块的运动矢量预测模式和运动信息,确定第二模板时具体用于:针对所述N个第二候选图像块中的第i个候选图像块,当确定所述第i个候选图像块的运动矢量预测模式为帧间模式时,根据所述参考帧索引确定所述第i个候选图像块对应的参考帧图像;根据所述第i个候选图像块的运动矢量,从所述参考帧图像中确定所述第i个候选图像块对应的参考图像块,所述参考图像块与所述第i个候选图像块的相对位置偏移与所述第i个候选图像块的运动矢量相匹配;根据确定的所述参考图像块,获取尺寸为第二横向长度和第二纵向长度的图像块作为所述第二模板包括的第i个子模板。
所述获取模块71根据N个第二候选图像块的运动矢量预测模式和运动信息,确定第二模板时具体用于:针对所述N个第二候选图像块中的第i个候选图像块,当确定所述第i个候选图像块的运动矢量预测模式为帧内模式时,将所述第i个候选图像块按照默认值填充,并获取尺寸为第二横向长度和第二纵向长度的图像块作为所述第二模板包括的第i个子模板;或者,根据所述第i个候选图像块对应的参考帧索引确定所述第i个候选图像块对应的参考帧图像;根据所述第i个候选图像块对应的运动矢量,从所述参考帧图像中确定所述第i个候选图像块对应的参考图像块,所述参考图像块与所述第i个候选图像块的相对位置偏移与所述第i个候选图像块对应的运动矢量相匹配;根据确定的所述参考图像块,获取尺寸为第二横向长度和第二纵向长度的图像块作为所述第一模板包括的第i个子模板;其中,所述第i个候选图像块对应的参考帧索引和运动矢量,是所述第i个候选图像块的候选图像块的参考帧索引和运动矢量。
所述第二横向长度与所述第二候选图像块的横向长度满足第五比例关系,或者与所述当前图像块的横向长度满足第六比例关系,或者等于第三预设长度;
所述第二纵向长度与所述第二候选图像块的纵向长度满足第七比例关系,或者与所述当前图像块的纵向长度满足第八比例关系,或者等于第四预设长度。
所述获取模块71根据所述候选图像块的运动信息获取所述当前图像块的模板时具体用于:当所述当前图像块对应多个运动信息时,根据每个运动信息获取该运动信息对应的模板;获取每个运动信息对应的权重参数,根据每个运动信息对应的权重参数和所述运动信息对应的模板获取所述当前图像块的模板。
本申请实施例提供的解码端设备,从硬件层面而言,其硬件架构示意图具体可以参见图8所示。包括:处理器81和机器可读存储介质82,其中:所述机器可读存储介质82存储有能够被所述处理器81执行的机器可执行指令;所述处理器81用于执行机器可执行指令,以实现本申请上述示例公开的解码方法。
基于与上述方法同样的申请构思,本申请实施例还提供一种机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述计算机指令被处理器执行时,能够实现本申请上述示例公开的解码方法。
本申请实施例提供的编码端设备,从硬件层面而言,其硬件架构示意图具体可以参见图9所示。包括:处理器91和机器可读存储介质92,其中:所述机器可读存储介质92存储有能够被所述处理器91执行的机器可执行指令;所述处理器91用于执行机器可执行指令,以实现本申请上述示例公开的编码方法。
基于与上述方法同样的申请构思,本申请实施例还提供一种机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述计算机指令被处理器执行时,能够实现本申请上述示例公开的编码方法。
其中,上述机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(Radom Access Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
上述实施例阐明的***、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (45)
1.一种解码方法,其特征在于,应用于解码端,所述方法包括:
获取当前图像块的候选图像块的运动信息;
根据所述候选图像块的运动信息获取所述当前图像块的模板;
根据所述当前图像块的所述模板对编码比特流进行解码;
其中,所述根据所述当前图像块的所述模板对编码比特流进行解码,包括:获取所述当前图像块的原始模式信息;基于所述当前图像块的所述模板,根据所述原始模式信息获取所述当前图像块的目标模式信息;根据所述目标模式信息对所述编码比特流进行解码;
其中,所述原始模式信息为所述当前图像块的原始运动矢量,所述目标模式信息为所述当前图像块的目标运动矢量;所述基于所述当前图像块的所述模板,根据所述原始模式信息获取所述当前图像块的目标模式信息,具体包括:将所述原始运动矢量确定为中心运动矢量;确定与所述中心运动矢量对应的边缘运动矢量,所述边缘运动矢量与所述中心运动矢量不同;根据所述模板获得所述中心运动矢量的代价值和所述边缘运动矢量的代价值;根据所述中心运动矢量的代价值和所述边缘运动矢量的代价值,从所述中心运动矢量和所述边缘运动矢量中确定所述目标运动矢量;
其中,所述根据所述中心运动矢量的代价值和所述边缘运动矢量的代价值,从所述中心运动矢量和所述边缘运动矢量中确定所述目标运动矢量,包括:从所述中心运动矢量和所述边缘运动矢量中选择代价值最小的运动矢量作为所述目标运动矢量。
2.根据权利要求1所述的方法,其特征在于,
在基于所述当前图像块的所述模板,根据所述原始模式信息获取所述当前图像块的目标模式信息之前,所述方法还包括:
接收来自编码端的编码比特流,所述编码比特流携带第一指示信息;其中,所述第一指示信息用于指示基于所述当前图像块的模板,根据所述原始模式信息获取所述当前图像块的目标模式信息;
根据所述第一指示信息,获取当前图像块的候选图像块的运动信息;根据所述候选图像块的运动信息获取所述当前图像块的模板。
3.根据权利要求1所述的方法,其特征在于,
在基于所述当前图像块的所述模板,根据所述原始模式信息获取所述当前图像块的目标模式信息之前,所述方法还包括:
接收来自编码端的编码比特流,所述编码比特流携带第二指示信息;其中,所述第二指示信息用于指示基于所述原始模式信息对编码比特流进行解码;
根据所述第二指示信息,获取所述原始模式信息,基于所述原始模式信息对所述编码比特流进行解码。
4.根据权利要求1所述的方法,其特征在于,
在基于所述当前图像块的所述模板,根据所述原始模式信息获取所述当前图像块的目标模式信息之前,所述方法还包括:
根据本地预设的第一策略信息,获取当前图像块的候选图像块的运动信息;根据所述候选图像块的运动信息获取所述当前图像块的所述模板,其中,所述第一策略信息用于指示基于所述当前图像块的模板,根据所述原始模式信息获取所述当前图像块的目标模式信息;或者,
根据本地预设的第二策略信息,获取所述原始模式信息,基于所述原始模式信息对所述编码比特流进行解码,其中,所述第二策略信息用于指示基于所述原始模式信息对编码比特流进行解码;或者,
根据本地预设的第三策略信息对所述编码比特流进行解码;其中,所述第三策略信息为采用与当前图像块的候选图像块相同的策略信息。
5.根据权利要求1所述的方法,其特征在于,所述原始模式信息为所述当前图像块的原始运动矢量和原始参考帧,所述目标模式信息为所述当前图像块的目标运动矢量和目标参考帧;所述基于所述当前图像块的所述模板,根据所述原始模式信息获取所述当前图像块的目标模式信息,具体包括:
基于所述当前图像块的所述模板,根据所述原始运动矢量获取所述原始参考帧对应的候选运动矢量;
根据所述原始运动矢量获取各个候选参考帧对应的初始运动矢量;
根据所述初始运动矢量获取所述候选参考帧对应的候选运动矢量;
从所述原始参考帧对应的候选运动矢量以及各个所述候选参考帧对应的候选运动矢量中选择代价值最优的候选运动矢量;
将所述代价值最优的候选运动矢量确定为所述目标运动矢量,将代价值最优的候选运动矢量对应的参考帧确定为所述目标参考帧。
6.根据权利要求5所述的方法,其特征在于,
根据所述原始运动矢量获取各个候选参考帧对应的初始运动矢量,包括:
第一候选参考帧为候选参考帧中的任意一个,针对所述第一候选参考帧,根据当前图像块所在帧与所述原始参考帧的距离、当前图像块所在帧与所述第一候选参考帧的距离和所述原始运动矢量,获取所述第一候选参考帧的所述初始运动矢量。
7.根据权利要求5所述的方法,其特征在于,基于所述当前图像块的所述模板,根据所述原始运动矢量获取所述原始参考帧对应的候选运动矢量,包括:
将所述原始运动矢量确定为中心运动矢量;
确定与所述中心运动矢量对应的边缘运动矢量,所述边缘运动矢量与所述中心运动矢量不同;
根据所述模板获得所述中心运动矢量的代价值和所述边缘运动矢量的代价值;
根据所述中心运动矢量的代价值和所述边缘运动矢量的代价值,从所述中心运动矢量和所述边缘运动矢量中确定所述原始参考帧对应的候选运动矢量。
8.根据权利要求5或6所述的方法,其特征在于,
根据所述初始运动矢量获取所述候选参考帧对应的候选运动矢量,包括:
第一候选参考帧为候选参考帧中的任意一个,针对所述第一候选参考帧,
将所述第一候选参考帧的初始运动矢量确定为中心运动矢量;
确定与所述中心运动矢量对应的边缘运动矢量;所述边缘运动矢量与所述中心运动矢量不同;
根据所述模板获得所述中心运动矢量的代价值和所述边缘运动矢量的代价值;
根据所述中心运动矢量的代价值和所述边缘运动矢量的代价值,从所述中心运动矢量和所述边缘运动矢量中确定所述第一候选参考帧对应的所述候选运动矢量。
9.根据权利要求1所述的方法,其特征在于,
所述原始模式信息为原始预测图像块,所述目标模式信息为目标预测图像块,所述基于所述当前图像块的所述模板,根据所述原始模式信息获取所述当前图像块的目标模式信息,具体包括:
根据所述模板和所述模板对应的参考块,获取所述原始预测图像块的变换系数;
根据所述变换系数对所述原始预测图像块进行光照补偿,得到所述目标预测图像块。
10.根据权利要求9所述的方法,其特征在于,所述根据所述模板和所述模板对应的参考块,获取所述原始预测图像块的变换系数之前,还包括:
获取当前图像块的运动矢量和所述运动矢量对应的参考帧索引;
根据所述当前图像块的运动矢量和所述参考帧索引获得所述模板对应的参考块。
11.根据权利要求9所述的方法,其特征在于,所述根据所述模板和所述模板对应的参考块,获取所述原始预测图像块的变换系数,包括:
根据所述模板的各像素的参数信息、所述模板对应的参考块的各像素的参数信息,获取所述变换系数;其中,所述参数信息包括亮度值。
12.根据权利要求1所述的方法,其特征在于,所述候选图像块包括M个第一候选图像块和N个第二候选图像块,M为大于或等于1的自然数,N为大于或等于0的自然数,或者,M为大于或等于0的自然数,N为大于或等于1的自然数;所述第一候选图像块为所述当前图像块上侧的候选图像块,所述第二候选图像块为所述当前图像块左侧的候选图像块;
所述根据所述候选图像块的运动信息获取所述当前图像块的模板,包括:
根据M个第一候选图像块的运动矢量预测模式和运动信息,确定第一模板;
根据N个第二候选图像块的运动矢量预测模式和运动信息,确定第二模板;
将所述第一模板确定为所述当前图像块的模板;或者,
将所述第二模板确定为所述当前图像块的模板;或者,
将所述第一模板和所述第二模板拼接之后确定为所述当前图像块的模板。
13.根据权利要求12所述的方法,其特征在于,
所述第一候选图像块包括所述当前图像块上侧的候选图像块和/或次邻图像块,所述候选图像块的预测模式为帧间模式或者帧内模式,所述次邻图像块的预测模式为帧间模式;
所述第二候选图像块包括所述当前图像块左侧的候选图像块和/或次邻图像块,所述候选图像块的预测模式为帧间模式或者帧内模式,所述次邻图像块的预测模式为帧间模式。
14.根据权利要求12所述的方法,其特征在于,当所述M大于1时,所述第一模板包括M个子模板或者P个子模板,且由所述M个子模板或所述P个子模板拼接而成,所述P为帧间模式的第一候选图像块的数量;
当M等于1时,所述第一模板包括第一子模板,所述第一子模板是根据所述当前图像块上侧的首个候选图像块的运动矢量预测模式和运动信息确定的。
15.根据权利要求14所述的方法,其特征在于,所述运动信息包括所述第一候选图像块的运动矢量和参考帧索引,所述根据M个第一候选图像块的运动矢量预测模式和运动信息,确定第一模板,包括:
针对所述M个第一候选图像块中的第i个候选图像块,当确定所述第i个候选图像块的运动矢量预测模式为帧间模式时,根据所述参考帧索引确定所述第i个候选图像块对应的参考帧图像;
根据所述第i个候选图像块的运动矢量,从所述参考帧图像中确定所述第i个候选图像块对应的参考图像块,所述参考图像块与所述第i个候选图像块的相对位置偏移与所述第i个候选图像块的运动矢量相匹配;
根据确定的所述参考图像块,获取尺寸为第一横向长度和第一纵向长度的图像块作为所述第一模板包括的第i个子模板。
16.根据权利要求14所述的方法,其特征在于,所述根据M个第一候选图像块的运动矢量预测模式和运动信息,确定第一模板,包括:
针对所述M个第一候选图像块中的第i个候选图像块,当确定所述第i个候选图像块的运动矢量预测模式为帧内模式时,将所述第i个候选图像块按照默认值填充,并获取尺寸为第一横向长度和第一纵向长度的图像块作为所述第一模板包括的第i个子模板;或者,
根据所述第i个候选图像块对应的参考帧索引确定所述第i个候选图像块对应的参考帧图像;根据所述第i个候选图像块对应的运动矢量,从所述参考帧图像中确定所述第i个候选图像块对应的参考图像块,所述参考图像块与所述第i个候选图像块的相对位置偏移与所述第i个候选图像块对应的运动矢量相匹配;根据确定的所述参考图像块,获取尺寸为第一横向长度和第一纵向长度的图像块作为所述第一模板包括的第i个子模板;
其中,所述第i个候选图像块对应的参考帧索引和运动矢量,是所述第i个候选图像块的候选图像块的参考帧索引和运动矢量。
17.根据权利要求15或16所述的方法,其特征在于,
所述第一横向长度与所述第一候选图像块的横向长度满足第一比例关系,或者与所述当前图像块的横向长度满足第二比例关系,或者等于第一预设长度;
所述第一纵向长度与所述第一候选图像块的纵向长度满足第三比例关系,或者与所述当前图像块的纵向长度满足第四比例关系,或者等于第二预设长度。
18.根据权利要求12所述的方法,其特征在于,当所述N大于1时,所述第二模板包括N个子模板或者R个子模板,且由所述N个子模板或所述R个子模板拼接而成,所述R为帧间模式的第二候选图像块的数量;
当N等于1时,所述第二模板包括第二子模板,所述第二子模板是根据所述当前图像块左侧的首个候选图像块的运动矢量预测模式和运动信息确定的。
19.根据权利要求18所述的方法,其特征在于,所述运动信息包括所述第二候选图像块的运动矢量和参考帧索引,所述根据N个第二候选图像块的运动矢量预测模式和运动信息,确定第二模板,包括:
针对所述N个第二候选图像块中的第i个候选图像块,当确定所述第i个候选图像块的运动矢量预测模式为帧间模式时,根据所述参考帧索引确定所述第i个候选图像块对应的参考帧图像;
根据所述第i个候选图像块的运动矢量,从所述参考帧图像中确定所述第i个候选图像块对应的参考图像块,所述参考图像块与所述第i个候选图像块的相对位置偏移与所述第i个候选图像块的运动矢量相匹配;
根据确定的所述参考图像块,获取尺寸为第二横向长度和第二纵向长度的图像块作为所述第二模板包括的第i个子模板。
20.根据权利要求18所述的方法,其特征在于,所述根据N个第二候选图像块的运动矢量预测模式和运动信息,确定第二模板,包括:
针对所述N个第二候选图像块中的第i个候选图像块,当确定所述第i个候选图像块的运动矢量预测模式为帧内模式时,将所述第i个候选图像块按照默认值填充,并获取尺寸为第二横向长度和第二纵向长度的图像块作为所述第二模板包括的第i个子模板;或者,
根据所述第i个候选图像块对应的参考帧索引确定所述第i个候选图像块对应的参考帧图像;根据所述第i个候选图像块对应的运动矢量,从所述参考帧图像中确定所述第i个候选图像块对应的参考图像块,所述参考图像块与所述第i个候选图像块的相对位置偏移与所述第i个候选图像块对应的运动矢量相匹配;根据确定的所述参考图像块,获取尺寸为第二横向长度和第二纵向长度的图像块作为所述第一模板包括的第i个子模板;
其中,所述第i个候选图像块对应的参考帧索引和运动矢量,是所述第i个候选图像块的候选图像块的参考帧索引和运动矢量。
21.根据权利要求19或20所述的方法,其特征在于,
所述第二横向长度与所述第二候选图像块的横向长度满足第五比例关系,或者与所述当前图像块的横向长度满足第六比例关系,或者等于第三预设长度;
所述第二纵向长度与所述第二候选图像块的纵向长度满足第七比例关系,或者与所述当前图像块的纵向长度满足第八比例关系,或者等于第四预设长度。
22.根据权利要求12所述的方法,其特征在于,
所述根据所述候选图像块的运动信息获取所述当前图像块的模板,包括:
当所述当前图像块对应多个运动信息时,根据每个运动信息获取该运动信息对应的模板;
获取每个运动信息对应的权重参数,并根据每个运动信息对应的权重参数以及所述运动信息对应的模板获取所述当前图像块的模板。
23.一种编码方法,其特征在于,应用于编码端,所述方法包括:
获取当前图像块的候选图像块的运动信息;
根据所述候选图像块的运动信息获取所述当前图像块的模板;
根据所述当前图像块的所述模板对比特流进行编码,得到编码比特流;
将所述编码比特流发送给解码端;
其中,所述根据所述当前图像块的所述模板对比特流进行编码,得到编码比特流,包括:获取所述当前图像块的原始模式信息;基于所述当前图像块的所述模板,根据所述原始模式信息获取所述当前图像块的目标模式信息;根据所述目标模式信息对比特流进行编码,得到编码比特流;
其中,所述原始模式信息为所述当前图像块的原始运动矢量,所述目标模式信息为所述当前图像块的目标运动矢量;所述基于所述当前图像块的所述模板,根据所述原始模式信息获取所述当前图像块的目标模式信息,具体包括:将所述原始运动矢量确定为中心运动矢量;确定与所述中心运动矢量对应的边缘运动矢量,所述边缘运动矢量与所述中心运动矢量不同;根据所述模板获得所述中心运动矢量的编码性能和所述边缘运动矢量的编码性能;根据所述中心运动矢量的编码性能和所述边缘运动矢量的编码性能,从所述中心运动矢量和所述边缘运动矢量中确定所述目标运动矢量;
其中,所述根据所述中心运动矢量的编码性能和所述边缘运动矢量的编码性能,从所述中心运动矢量和所述边缘运动矢量中确定所述目标运动矢量,包括:从所述中心运动矢量和所述边缘运动矢量中选择编码性能最大的运动矢量作为所述目标运动矢量。
24.根据权利要求23所述的方法,其特征在于,所述方法还包括:
当根据所述目标模式信息对比特流进行编码时,向解码端发送携带第一指示信息的编码比特流,所述第一指示信息用于指示基于所述当前图像块的模板,根据所述原始模式信息获取所述当前图像块的目标模式信息。
25.根据权利要求23所述的方法,其特征在于,所述方法还包括:
当根据所述原始模式信息对比特流进行编码时,向解码端发送携带第二指示信息的编码比特流,所述第二指示信息用于指示基于所述原始模式信息对编码比特流进行解码。
26.根据权利要求23所述的方法,其特征在于,所述原始模式信息为所述当前图像块的原始运动矢量和原始参考帧,所述目标模式信息为所述当前图像块的目标运动矢量和目标参考帧;所述基于所述当前图像块的所述模板,根据所述原始模式信息获取所述当前图像块的目标模式信息,具体包括:
基于所述当前图像块的所述模板,根据所述原始运动矢量获取所述原始参考帧对应的候选运动矢量;
根据所述原始运动矢量获取各个候选参考帧对应的初始运动矢量;
根据所述初始运动矢量获取所述候选参考帧对应的候选运动矢量;
从所述原始参考帧对应的候选运动矢量以及各个所述候选参考帧对应的候选运动矢量中选择编码性能最优的候选运动矢量;
将所述编码性能最优的候选运动矢量确定为所述目标运动矢量,将编码性能最优的候选运动矢量对应的参考帧确定为所述目标参考帧。
27.根据权利要求26所述的方法,其特征在于,
根据所述原始运动矢量获取各个候选参考帧对应的初始运动矢量,包括:
第一候选参考帧为候选参考帧中的任意一个,针对所述第一候选参考帧,根据当前图像块所在帧与所述原始参考帧的距离、当前图像块所在帧与所述第一候选参考帧的距离和所述原始运动矢量,获取所述第一候选参考帧的所述初始运动矢量。
28.根据权利要求26所述的方法,其特征在于,
基于所述当前图像块的所述模板,根据所述原始运动矢量获取所述原始参考帧对应的候选运动矢量,包括:
将所述原始运动矢量确定为中心运动矢量;
确定与所述中心运动矢量对应的边缘运动矢量,所述边缘运动矢量与所述中心运动矢量不同;
根据所述模板获得所述中心运动矢量的编码性能和所述边缘运动矢量的编码性能;
根据所述中心运动矢量的编码性能和所述边缘运动矢量的编码性能,从所述中心运动矢量和所述边缘运动矢量中确定所述原始参考帧对应的候选运动矢量。
29.根据权利要求26或27所述的方法,其特征在于,
根据所述初始运动矢量获取所述候选参考帧对应的候选运动矢量,包括:
第一候选参考帧为候选参考帧中的任意一个,针对所述第一候选参考帧,
将所述第一候选参考帧的初始运动矢量确定为中心运动矢量;
确定与所述中心运动矢量对应的边缘运动矢量;所述边缘运动矢量与所述中心运动矢量不同;
根据所述模板获得所述中心运动矢量的编码性能和所述边缘运动矢量的编码性能;
根据所述中心运动矢量的编码性能和所述边缘运动矢量的编码性能,从所述中心运动矢量和所述边缘运动矢量中确定所述第一候选参考帧对应的所述候选运动矢量。
30.根据权利要求23所述的方法,其特征在于,
所述原始模式信息为原始预测图像块,所述目标模式信息为目标预测图像块,所述基于所述当前图像块的所述模板,根据所述原始模式信息获取所述当前图像块的目标模式信息,具体包括:
根据所述模板和所述模板对应的参考块,获取所述原始预测图像块的变换系数;
根据所述变换系数对所述原始预测图像块进行光照补偿,得到所述目标预测图像块。
31.根据权利要求30所述的方法,其特征在于,所述根据所述模板和所述模板对应的参考块,获取所述原始预测图像块的变换系数之前,还包括:
获取当前图像块的运动矢量和所述运动矢量对应的参考帧索引;
根据所述当前图像块的运动矢量和所述参考帧索引获得所述模板对应的参考块。
32.根据权利要求30所述的方法,其特征在于,所述根据所述模板和所述模板对应的参考块,获取所述原始预测图像块的变换系数,包括:
根据所述模板的各像素的参数信息、所述模板对应的参考块的各像素的参数信息,获取所述变换系数;其中,所述参数信息包括亮度值。
33.根据权利要求23所述的方法,其特征在于,所述候选图像块包括M个第一候选图像块和N个第二候选图像块,M为大于或等于1的自然数,N为大于或等于0的自然数,或者,M为大于或等于0的自然数,N为大于或等于1的自然数;所述第一候选图像块为所述当前图像块上侧的候选图像块,所述第二候选图像块为所述当前图像块左侧的候选图像块;
所述根据所述候选图像块的运动信息获取所述当前图像块的模板,包括:
根据M个第一候选图像块的运动矢量预测模式和运动信息,确定第一模板;
根据N个第二候选图像块的运动矢量预测模式和运动信息,确定第二模板;
将所述第一模板确定为所述当前图像块的模板;或者,
将所述第二模板确定为所述当前图像块的模板;或者,
将所述第一模板和所述第二模板拼接之后确定为所述当前图像块的模板。
34.根据权利要求33所述的方法,其特征在于,
所述第一候选图像块包括所述当前图像块上侧的候选图像块和/或次邻图像块,所述候选图像块的预测模式为帧间模式或者帧内模式,所述次邻图像块的预测模式为帧间模式;
所述第二候选图像块包括所述当前图像块左侧的候选图像块和/或次邻图像块,所述候选图像块的预测模式为帧间模式或者帧内模式,所述次邻图像块的预测模式为帧间模式。
35.根据权利要求33所述的方法,其特征在于,当所述M大于1时,所述第一模板包括M个子模板或者P个子模板,且由所述M个子模板或所述P个子模板拼接而成,所述P为帧间模式的第一候选图像块的数量;
当M等于1时,所述第一模板包括第一子模板,所述第一子模板是根据所述当前图像块上侧的首个候选图像块的运动矢量预测模式和运动信息确定的。
36.根据权利要求35所述的方法,其特征在于,所述运动信息包括所述第一候选图像块的运动矢量和参考帧索引,所述根据M个第一候选图像块的运动矢量预测模式和运动信息,确定第一模板,包括:
针对所述M个第一候选图像块中的第i个候选图像块,当确定所述第i个候选图像块的运动矢量预测模式为帧间模式时,根据所述参考帧索引确定所述第i个候选图像块对应的参考帧图像;
根据所述第i个候选图像块的运动矢量,从所述参考帧图像中确定所述第i个候选图像块对应的参考图像块,所述参考图像块与所述第i个候选图像块的相对位置偏移与所述第i个候选图像块的运动矢量相匹配;
根据确定的所述参考图像块,获取尺寸为第一横向长度和第一纵向长度的图像块作为所述第一模板包括的第i个子模板。
37.根据权利要求35所述的方法,其特征在于,所述根据M个第一候选图像块的运动矢量预测模式和运动信息,确定第一模板,包括:
针对所述M个第一候选图像块中的第i个候选图像块,当确定所述第i个候选图像块的运动矢量预测模式为帧内模式时,将所述第i个候选图像块按照默认值填充,并获取尺寸为第一横向长度和第一纵向长度的图像块作为所述第一模板包括的第i个子模板;或者,
根据所述第i个候选图像块对应的参考帧索引确定所述第i个候选图像块对应的参考帧图像;根据所述第i个候选图像块对应的运动矢量,从所述参考帧图像中确定所述第i个候选图像块对应的参考图像块,所述参考图像块与所述第i个候选图像块的相对位置偏移与所述第i个候选图像块对应的运动矢量相匹配;根据确定的所述参考图像块,获取尺寸为第一横向长度和第一纵向长度的图像块作为所述第一模板包括的第i个子模板;
其中,所述第i个候选图像块对应的参考帧索引和运动矢量,是所述第i个候选图像块的候选图像块的参考帧索引和运动矢量。
38.根据权利要求36或37所述的方法,其特征在于,
所述第一横向长度与所述第一候选图像块的横向长度满足第一比例关系,或者与所述当前图像块的横向长度满足第二比例关系,或者等于第一预设长度;
所述第一纵向长度与所述第一候选图像块的纵向长度满足第三比例关系,或者与所述当前图像块的纵向长度满足第四比例关系,或者等于第二预设长度。
39.根据权利要求33所述的方法,其特征在于,当所述N大于1时,所述第二模板包括N个子模板或者R个子模板,且由所述N个子模板或所述R个子模板拼接而成,所述R为帧间模式的第二候选图像块的数量;
当N等于1时,所述第二模板包括第二子模板,所述第二子模板是根据所述当前图像块左侧的首个候选图像块的运动矢量预测模式和运动信息确定的。
40.根据权利要求39所述的方法,其特征在于,所述运动信息包括所述第二候选图像块的运动矢量和参考帧索引,所述根据N个第二候选图像块的运动矢量预测模式和运动信息,确定第二模板,包括:
针对所述N个第二候选图像块中的第i个候选图像块,当确定所述第i个候选图像块的运动矢量预测模式为帧间模式时,根据所述参考帧索引确定所述第i个候选图像块对应的参考帧图像;
根据所述第i个候选图像块的运动矢量,从所述参考帧图像中确定所述第i个候选图像块对应的参考图像块,所述参考图像块与所述第i个候选图像块的相对位置偏移与所述第i个候选图像块的运动矢量相匹配;
根据确定的所述参考图像块,获取尺寸为第二横向长度和第二纵向长度的图像块作为所述第二模板包括的第i个子模板。
41.根据权利要求39所述的方法,其特征在于,所述根据N个第二候选图像块的运动矢量预测模式和运动信息,确定第二模板,包括:
针对所述N个第二候选图像块中的第i个候选图像块,当确定所述第i个候选图像块的运动矢量预测模式为帧内模式时,将所述第i个候选图像块按照默认值填充,并获取尺寸为第二横向长度和第二纵向长度的图像块作为所述第二模板包括的第i个子模板;或者,
根据所述第i个候选图像块对应的参考帧索引确定所述第i个候选图像块对应的参考帧图像;根据所述第i个候选图像块对应的运动矢量,从所述参考帧图像中确定所述第i个候选图像块对应的参考图像块,所述参考图像块与所述第i个候选图像块的相对位置偏移与所述第i个候选图像块对应的运动矢量相匹配;根据确定的所述参考图像块,获取尺寸为第二横向长度和第二纵向长度的图像块作为所述第一模板包括的第i个子模板;
其中,所述第i个候选图像块对应的参考帧索引和运动矢量,是所述第i个候选图像块的候选图像块的参考帧索引和运动矢量。
42.根据权利要求40或41所述的方法,其特征在于,
所述第二横向长度与所述第二候选图像块的横向长度满足第五比例关系,或者与所述当前图像块的横向长度满足第六比例关系,或者等于第三预设长度;
所述第二纵向长度与所述第二候选图像块的纵向长度满足第七比例关系,或者与所述当前图像块的纵向长度满足第八比例关系,或者等于第四预设长度。
43.根据权利要求33所述的方法,其特征在于,
所述根据所述候选图像块的运动信息获取所述当前图像块的模板,包括:
当所述当前图像块对应多个运动信息时,根据每个运动信息获取该运动信息对应的模板;
获取每个运动信息对应的权重参数,并根据每个运动信息对应的权重参数以及所述运动信息对应的模板获取所述当前图像块的模板。
44.一种解码端设备,其特征在于,包括:处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;所述处理器用于执行机器可执行指令,以实现权利要求1-22任一所述的方法步骤。
45.一种编码端设备,其特征在于,包括:处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;所述处理器用于执行机器可执行指令,以实现权利要求23-43任一所述的方法步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810692041.XA CN110662033B (zh) | 2018-06-28 | 2018-06-28 | 一种解码、编码方法及其设备 |
PCT/CN2019/093574 WO2020001591A1 (zh) | 2018-06-28 | 2019-06-28 | 一种解码、编码方法及其设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810692041.XA CN110662033B (zh) | 2018-06-28 | 2018-06-28 | 一种解码、编码方法及其设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110662033A CN110662033A (zh) | 2020-01-07 |
CN110662033B true CN110662033B (zh) | 2021-11-23 |
Family
ID=68984489
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810692041.XA Active CN110662033B (zh) | 2018-06-28 | 2018-06-28 | 一种解码、编码方法及其设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110662033B (zh) |
WO (1) | WO2020001591A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023044916A1 (zh) * | 2021-09-27 | 2023-03-30 | Oppo广东移动通信有限公司 | 帧内预测的方法、编码器、解码器和编解码*** |
CN116800956A (zh) * | 2022-01-07 | 2023-09-22 | 杭州海康威视数字技术股份有限公司 | 图像编解码方法、装置及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1497981A (zh) * | 2002-07-16 | 2004-05-19 | ���ǵ�����ʽ���� | 用于编码和解码运动矢量的方法和装置 |
WO2011071514A2 (en) * | 2009-12-08 | 2011-06-16 | Thomson Licensing | Methods and apparatus for adaptive residual updating of template matching prediction for video encoding and decoding |
CN102177716A (zh) * | 2008-10-09 | 2011-09-07 | 株式会社Ntt都科摩 | 动态图像编码装置、动态图像解码装置、动态图像编码方法、动态图像解码方法、动态图像编码程序、动态图像解码程序、动态图像处理***以及动态图像处理方法 |
CN102215386A (zh) * | 2010-04-09 | 2011-10-12 | 华为技术有限公司 | 视频图像块处理方法及装置 |
CN104980760A (zh) * | 2010-07-09 | 2015-10-14 | 三星电子株式会社 | 用于对运动矢量进行编码和解码的方法和设备 |
CN106604035A (zh) * | 2017-01-22 | 2017-04-26 | 北京君泊网络科技有限责任公司 | 一种用于视频编码和压缩的运动估计的方法 |
WO2018065397A2 (en) * | 2016-10-03 | 2018-04-12 | Thomson Licensing | Method and apparatus for encoding and decoding motion information |
CN108134939A (zh) * | 2016-12-01 | 2018-06-08 | 北京金山云网络技术有限公司 | 一种运动估计方法及装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5818969A (en) * | 1995-05-12 | 1998-10-06 | Intel Corporation | Intelligent start for motion estimation search |
KR100928325B1 (ko) * | 2007-10-15 | 2009-11-25 | 세종대학교산학협력단 | 영상의 부호화, 복호화 방법 및 장치 |
CN101895675B (zh) * | 2010-07-26 | 2012-10-03 | 杭州海康威视软件有限公司 | 一种移动侦测方法和装置 |
-
2018
- 2018-06-28 CN CN201810692041.XA patent/CN110662033B/zh active Active
-
2019
- 2019-06-28 WO PCT/CN2019/093574 patent/WO2020001591A1/zh active Application Filing
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1497981A (zh) * | 2002-07-16 | 2004-05-19 | ���ǵ�����ʽ���� | 用于编码和解码运动矢量的方法和装置 |
CN102177716A (zh) * | 2008-10-09 | 2011-09-07 | 株式会社Ntt都科摩 | 动态图像编码装置、动态图像解码装置、动态图像编码方法、动态图像解码方法、动态图像编码程序、动态图像解码程序、动态图像处理***以及动态图像处理方法 |
WO2011071514A2 (en) * | 2009-12-08 | 2011-06-16 | Thomson Licensing | Methods and apparatus for adaptive residual updating of template matching prediction for video encoding and decoding |
CN102215386A (zh) * | 2010-04-09 | 2011-10-12 | 华为技术有限公司 | 视频图像块处理方法及装置 |
CN104980760A (zh) * | 2010-07-09 | 2015-10-14 | 三星电子株式会社 | 用于对运动矢量进行编码和解码的方法和设备 |
WO2018065397A2 (en) * | 2016-10-03 | 2018-04-12 | Thomson Licensing | Method and apparatus for encoding and decoding motion information |
CN108134939A (zh) * | 2016-12-01 | 2018-06-08 | 北京金山云网络技术有限公司 | 一种运动估计方法及装置 |
CN106604035A (zh) * | 2017-01-22 | 2017-04-26 | 北京君泊网络科技有限责任公司 | 一种用于视频编码和压缩的运动估计的方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2020001591A1 (zh) | 2020-01-02 |
CN110662033A (zh) | 2020-01-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6545318B2 (ja) | 復号方法、装置、プログラム、記憶媒体 | |
CN110933426B (zh) | 一种解码、编码方法及其设备 | |
US20120027092A1 (en) | Image processing device, system and method | |
JP2010016454A (ja) | 画像符号化装置および方法、画像復号装置および方法、並びにプログラム | |
CN111698500B (zh) | 一种编解码方法、装置及其设备 | |
CN111263144B (zh) | 一种运动信息确定方法及其设备 | |
CN110662033B (zh) | 一种解码、编码方法及其设备 | |
CN110662074B (zh) | 一种运动矢量确定方法和设备 | |
CN113873257B (zh) | 一种运动信息候选列表的构建方法、装置及其设备 | |
CN113709457B (zh) | 一种解码、编码方法、装置及其设备 | |
CN112449180B (zh) | 一种编解码方法、装置及其设备 | |
CN110691247B (zh) | 一种解码、编码方法和设备 | |
WO2010061515A1 (ja) | 動画像符号化装置及び符号化方法、動画像復号化装置及び復号化方法 | |
CN110365987B (zh) | 一种运动矢量确定方法、装置及其设备 | |
CN113422951B (zh) | 一种解码、编码方法、装置及其设备 | |
CN113709486B (zh) | 一种编解码方法、装置及其设备 | |
CN112055220B (zh) | 一种编解码方法、装置及其设备 | |
KR101525325B1 (ko) | 인트라 예측 모드 결정 방법 및 그 장치 | |
CN113132734A (zh) | 一种编码、解码方法、装置及其设备 | |
KR20120008271A (ko) | 주변 화소의 정합을 이용한 예측 움직임 벡터 선택 장치 및 그 방법 | |
KR20140087137A (ko) | 적응적 양 예측 방법 및 장치 |
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 |