CN109889827B - 帧内预测编码方法、装置、电子设备及计算机存储介质 - Google Patents

帧内预测编码方法、装置、电子设备及计算机存储介质 Download PDF

Info

Publication number
CN109889827B
CN109889827B CN201910290936.5A CN201910290936A CN109889827B CN 109889827 B CN109889827 B CN 109889827B CN 201910290936 A CN201910290936 A CN 201910290936A CN 109889827 B CN109889827 B CN 109889827B
Authority
CN
China
Prior art keywords
mode
coding block
coding
candidate
optimal
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
CN201910290936.5A
Other languages
English (en)
Other versions
CN109889827A (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201910290936.5A priority Critical patent/CN109889827B/zh
Publication of CN109889827A publication Critical patent/CN109889827A/zh
Priority to PCT/CN2020/078147 priority patent/WO2020207162A1/zh
Priority to JP2021529273A priority patent/JP7250927B2/ja
Application granted granted Critical
Publication of CN109889827B publication Critical patent/CN109889827B/zh
Priority to US17/319,465 priority patent/US11451772B2/en
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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods 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/103Selection of coding mode or of prediction mode
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • 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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本申请涉及视频编码技术领域,公开了一种帧内视频编码方法、装置、电子设备及计算机可读存储介质,其中,帧内视频编码方法包括:确定当前编码块的N个候选帧内预测模式,并将N个候选帧内预测模式保存至候选模式列表,N为正整数;获取当前编码块的空间相邻编码块与上层编码块分别对应的最优编码模式,并将空间相邻编码块与上层编码块分别对应的最优编码模式保存至相邻模式列表;基于候选模式列表与相邻模式列表,确定当前编码块的最优编码模式。本申请实施例的方法,利用当前编码块的空间相邻块和上层编码块分别对应的最优编码模式,辅助编码器自适应地跳过当前编码块的某些编码模式的RDO决策过程,有效减少编码器的计算量,提高编码速度。

Description

帧内预测编码方法、装置、电子设备及计算机存储介质
技术领域
本申请涉及视频编码技术领域,具体而言,本申请涉及一种帧内预测编码方法、装置、电子设备及计算机存储介质。
背景技术
HEVC(High Efficiency Video Coding,高性能视频编码)编码过程中,涉及到许多模式决策过程,RDO(Rate Distortion Optimization,率失真优化)是当前业界最重要的视频编码决策技术,能有效的为视频编码的各个环节选择最优的编码模式,进而提升压缩效率。在编码过程中,编码器尝试对每个可能的模式分别编码,并计算该模式对应的率失真代价,然后选择率失真代价最小的模式为最优模式,最终将最优模式编码写入码流中。由于编码器需要对每个模式尝试编码,并完成所有编码环节,所以RDO涉及的计算量非常巨大,特别是HEVC标准中增加了众多的编码模式,直接导致RDO计算量成倍增长。
目前,在HEVC的参考软件HM和著名的开源软件x265中,帧内预测编码都采用了粗选和精选的两步搜索策略。在x265中,粗选阶段使用简化的SATD(Sum of AbsoluteTransformed Differences,绝对变换误差和)算法,便于快速识别可能性较大的最优模式,精选阶段则使用精细的RDO算法,以保证帧内预测编码的压缩效率。
然而,本申请的发明人在具体实施过程中,发现:x265的精选阶段的率失真优化代价(RdoCost)存在无效计算的情况,特别是处于候选列表末端的模式作为最优模式的概率非常低,计算这些模式的RdoCost的收益非常低,因而总体上降低了编码速度。
发明内容
本申请实施例提供了一种帧内预测编码方法,能够有效减少编码器的计算量,极大提高编码速度与编码效率。其中:
一方面,提供了一种帧内预测编码方法,包括:
确定当前编码块的N个候选帧内预测模式,并将N个候选帧内预测模式保存至候选模式列表,N为正整数;
获取当前编码块的空间相邻编码块与上层编码块分别对应的最优编码模式,并将空间相邻编码块与上层编码块分别对应的最优编码模式保存至相邻模式列表;
基于候选模式列表与相邻模式列表,确定当前编码块的最优编码模式。
在一种可能的实现方式中,空间相邻编码块包括以下至少一种:紧邻当前编码块且位于当前编码块左侧的第一编码块、紧邻当前编码块且位于当前编码块上侧的第二编码块、紧邻第一编码块且位于第一编码块上侧的第三编码块、紧邻第一编码块且位于第一编码块下侧的第四编码块以及紧邻第二编码块且位于第二编码块右侧的第五编码块;
获取当前编码块的空间相邻编码块与上层编码块分别对应的最优编码模式,包括:
获取第一编码块、第二编码块、第三编码块、第四编码块以及第五编码块中至少一项的最优编码模式,以及上层编码块的最优编码模式。
在另一种可能的实现方式中,确定当前编码块的N个候选帧内预测模式,包括:
按照第一预定顺序,对多个预定帧内预测模式分别对应的预定率失真优化代价值进行排序,并将排序后的前N个帧内预测模式作为当前编码块的候选帧内预测模式;
将N个候选帧内预测模式保存至候选模式列表,包括:
依据第一预定顺序,将N个候选帧内预测模式,依次保存至候选模式列表;
将空间相邻编码块与上层编码块分别对应的最优编码模式保存至相邻模式列表,包括:
依据第二预定顺序,将第一编码块、第二编码块、第三编码块、第四编码块以及第五编码块中至少一项的最优编码模式,以及上层编码块的最优编码模式,依次保存至相邻模式列表。
在另一种可能的实现方式中,获取第一编码块、第二编码块、第三编码块、第四编码块以及第五编码块中至少一项的最优编码模式,以及上层编码块的最优编码模式,包括:
当第一编码块、第二编码块、第三编码块、第四编码块以及第五编码块中的任一项未超出图像边界时,获取预存储的该未超出图像边界的编码块的最优编码模式;
当第一编码块、第二编码块、第三编码块、第四编码块以及第五编码块中的任一项超出图像边界时,将直流模式作为超出图像边界的编码块的最优编码模式;
当上层编码块未超出图像边界时,获取预存储的该上层编码块的最优编码模式;
当上层编码块超出最大的帧内预测编码块边界时,将直流模式作为上层编码块的最优编码模式。
在另一种可能的实现方式中,基于候选模式列表与相邻模式列表,确定当前编码块的最优编码模式,包括:
确定候选模式列表中首个索引值对应的候选帧内预测模式或第二个索引值对应的候选帧内预测模式,是否存在于相邻模式列表中;
若候选模式列表中首个索引值对应的候选帧内预测模式存在于相邻模式列表中,则将N更新为首个索引值增加第一预设数值,基于更新后的N确定当前编码块的最优编码模式;
若候选模式列表中首个索引值对应的候选帧内预测模式不存在于相邻模式列表中,且候选模式列表中第二个索引值对应的候选帧内预测模式存在于相邻模式列表中,则将N更新为第二个索引值增加第一预设数值,并基于更新后的N确定当前编码块的最优编码模式;
若候选模式列表中首个索引值对应的候选帧内预测模式与候选模式列表中第二个索引值对应的候选帧预测模式,均不存在于相邻模式列表中,则基于相邻模式列表与候选模式列表,确定当前编码块的最优编码模式。
在另一种可能的实现方式中,基于更新后的N确定当前编码块的最优编码模式,包括:
当更新后的N等于第二预设数值时,将首个索引值对应的候选帧内预测模式确定为当前编码块的最优编码模式;
当更新后的N不等于第二预设数值时,基于该更新后的N,根据候选模式列表,确定当前编码块的最优编码模式。
在另一种可能的实现方式中,基于相邻模式列表与候选模式列表,确定当前编码块的第二最优编码模式,包括:
当相邻模式列表中首个索引值对应的最优编码模式与第二个索引值对应的最优编码模式相同时,确定首个索引值对应的最优编码模式在候选模式列表中的候选索引值,并基于候选索引值与候选模式列表,确定当前编码块的最优编码模式;
当相邻模式列表中首个索引值对应的最优编码模式与第二个索引值对应的最优编码模式不相同时,根据候选模式列表,确定当前编码块的最优编码模式。
在另一种可能的实现方式中,确定首个索引值对应的最优编码模式在候选模式列表中的候选索引值,包括:
当首个索引值对应的最优编码模式存在于候选模式列表中时,将首个索引值对应的最优编码模式在候选模式列表中的索引值确定为候选索引值;
当首个索引值对应的最优编码模式不存在于候选模式列表中时,将N减第三预定数值确定为候选索引值。
在另一种可能的实现方式中,基于候选索引值与候选模式列表,确定当前编码块的最优编码模式,包括:
将N更新为候选索引值增加第四预设数值,并基于更新后的N,根据候选模式列表,确定当前编码块的最优编码模式。
在另一种可能的实现方式中,根据候选模式列表,确定当前编码块的最优编码模式,包括:
确定候选模式列表当前包括的各个候选帧内预测模式分别对应的率失真代价值;
确定各个率失真代价值中的最小值,并将该最小值对应的候选帧内预测模式,确定为当前编码块的最优编码模式。
在另一种可能的实现方式中,确定候选模式列表当前包括的各个候选帧内预测模式分别对应的率失真代价值,包括:
确定候选帧内预测模式的预定预测值;
根据预定预测值,计算候选帧内预测模式的编码失真,以及对候选帧内预测模式编码后的比特数;
根据编码失真与比特数,计算候选帧内预测模式的率失真优化代价值。
另一方面,提供了一种帧内预测编码装置,包括:
第一处理模块,用于确定当前编码块的N个候选帧内预测模式,并将N个候选帧内预测模式保存至候选模式列表,N为正整数;
第二处理模块,用于获取当前编码块的空间相邻编码块与上层编码块分别对应的最优编码模式,并将空间相邻编码块与上层编码块分别对应的最优编码模式保存至相邻模式列表;
确定模块,用于基于候选模式列表与相邻模式列表,确定当前编码块的最优编码模式。
在一种可能的实现方式中,空间相邻编码块包括以下至少一种:紧邻当前编码块且位于当前编码块左侧的第一编码块、紧邻当前编码块且位于当前编码块上侧的第二编码块、紧邻第一编码块且位于第一编码块上侧的第三编码块、紧邻第一编码块且位于第一编码块下侧的第四编码块以及紧邻第二编码块且位于第二编码块右侧的第五编码块;
第二处理模块具体用于获取第一编码块、第二编码块、第三编码块、第四编码块以及第五编码块中至少一项的最优编码模式,以及上层编码块的最优编码模式。
在另一种可能的实现方式中,第一处理模块具体用于按照第一预定顺序,对多个预定帧内预测模式分别对应的预定率失真优化代价值进行排序,并将排序后的前N个帧内预测模式作为当前编码块的候选帧内预测模式;以及用于依据第一预定顺序,将N个候选帧内预测模式,依次保存至候选模式列表;
第二处理模块具体用于依据第二预定顺序,将第一编码块、第二编码块、第三编码块、第四编码块以及第五编码块中至少一项的最优编码模式,以及上层编码块的最优编码模式,依次保存至相邻模式列表。
在另一种可能的实现方式中,第二处理模块具体用于当第一编码块、第二编码块、第三编码块、第四编码块以及第五编码块中的任一项未超出图像边界时,获取预存储的该未超出图像边界的编码块的最优编码模式;以及当第一编码块、第二编码块、第三编码块、第四编码块以及第五编码块中的任一项超出图像边界时,将直流模式作为超出图像边界的编码块的最优编码模式;以及当上层编码块未超出图像边界时,获取预存储的该上层编码块的最优编码模式;以及当上层编码块超出最大的帧内预测编码块边界时,将直流模式作为上层编码块的最优编码模式。
在另一种可能的实现方式中,确定模块包括第一确定子模块、第一模式确定子模块与第二模式确定子模块;
第一确定子模块,用于确定候选模式列表中首个索引值对应的候选帧内预测模式或第二个索引值对应的候选帧内预测模式,是否存在于相邻模式列表中;
第一模式确定子模块,用于当候选模式列表中首个索引值对应的候选帧内预测模式存在于相邻模式列表中,则将N更新为所述首个索引值增加第一预设数值,基于更新后的N确定当前编码块的最优编码模式;
第二模式确定子模块,用于当候选模式列表中首个索引值对应的候选帧内预测模式不存在于相邻模式列表中,且候选模式列表中第二个索引值对应的候选帧内预测模式存在于相邻模式列表中,则将N更新为第二个索引值增加第一预设数值,并基于更新后的N确定当前编码块的最优编码模式;
第三模式确定子模块,用于当首个索引值对应的候选帧内预测模式与第二个索引值对应的候选帧内预测模式均不存在于相邻模式列表中时,基于相邻模式列表与候选模式列表,确定当前编码块的最优编码模式。
在另一种可能的实现方式中,第一模式确定子模块具体用于当更新后的N等于第二预设数值时,将首个索引值对应的候选帧内预测模式确定为当前编码块的最优编码模式;以及当更新后的N不等于第二预设数值时,基于该更新后的N,根据候选模式列表,确定当前编码块的最优编码模式。
在另一种可能的实现方式中,第二模式确定子模块具体用于当相邻模式列表中首个索引值对应的最优编码模式与第二个索引值对应的最优编码模式相同时,确定首个索引值对应的最优编码模式在候选模式列表中的候选索引值,并基于候选索引值与候选模式列表,确定当前编码块的最优编码模式;以及用于当相邻模式列表中首个索引值对应的最优编码模式与第二个索引值对应的最优编码模式不相同时,根据候选模式列表,确定当前编码块的最优编码模式。
在另一种可能的实现方式中,第二模式确定子模块具体用于当首个索引值对应的最优编码模式存在于候选模式列表中时,将首个索引值对应的最优编码模式在候选模式列表中的索引值确定为候选索引值;以及当首个索引值对应的最优编码模式不存在于候选模式列表中时,将N减第三预定数值确定为候选索引值。
在另一种可能的实现方式中,第二模式确定子模块具体用于将N更新为候选索引值增加第四预设数值,并基于更新后的N,根据候选模式列表,确定当前编码块的最优编码模式。
在另一种可能的实现方式中,确定模块包括代价值确定子模块与编码模式确定子模块;
代价值确定子模块,用于确定候选模式列表当前包括的各个候选帧内预测模式分别对应的率失真代价值;
编码模式确定子模块,用于确定各个率失真代价值中的最小值,并将该最小值对应的候选帧内预测模式,确定为当前编码块的最优编码模式。
在另一种可能的实现方式中,代价值确定子模块具体用于确定候选帧内预测模式的预定预测值;以及用于根据预定预测值,计算候选帧内预测模式的编码失真,以及对候选帧内预测模式编码后的比特数;以及用于根据编码失真与比特数,计算候选帧内预测模式的率失真优化代价值。
另一方面,提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行所述程序时实现上述的帧内预测编码方法。
另一方面,提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现上述的帧内预测编码方法。
本申请实施例提供的帧内预测编码方法,通过保存有当前编码块的N个候选帧内预测模式的候选模式列表,以及保存有当前编码块的空间相邻编码块与上层编码块分别对应的最优编码模式的相邻模式列表,确定当前编码块的最优编码模式,使得能够充分利用当前编码块的空间相邻块和上层编码块分别对应的最优编码模式,从而辅助编码器自适应地跳过当前编码块的某些编码模式的RDO决策过程,有效减少编码器的计算量,极大提高编码速度与编码效率。
本申请附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本申请一个实施例的帧内预测编码方法的流程示意图;
图2为本申请一个实施例的空间相邻编码块和上层编码块的示意图;
图3为本申请一个实施例的高性能视频编码HEVC的四叉树划分示意图;
图4为本申请一个实施例的帧内预测编码的过程示意图;
图5为根据本申请一个实施例的帧内预测编码方法确定当前编码块的最优编码模式的示意图;
图6为本申请又一实施例的帧内预测编码装置的基本结构示意图;
图7为本申请又一实施例的帧内预测编码装置的详细结构示意图;
图8为本申请实施例的电子设备的结构示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本申请的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
本申请一个实施例提供了一种帧内预测编码方法,该方法由编码器执行,其中,编码器可以位于服务器中,也可以位于客户端中,还可以位于其它可能的终端设备中,本申请实施例不对其做限制,如图1所示,包括:
步骤S110,确定当前编码块的N个候选帧内预测模式,并将N个候选帧内预测模式保存至候选模式列表,N为正整数。
具体地,编码器可以使用简化的SATD算法,确定当前编码块的N个候选帧内预测模式。编码器在确定出该N个候选帧内预测模式后,可以将该N个候选帧内预测模式保存至相应的列表中,为后续便于区分将该列表记作候选模式列表,即编码器将该N个候选帧内预测模式保存至候选模式列表中,从而为后续确定当前编码块的最优编码模式提供前提保障。
步骤S120,获取当前编码块的空间相邻编码块与上层编码块分别对应的最优编码模式,并将空间相邻编码块与所述上层编码块分别对应的最优编码模式保存至相邻模式列表。
具体地,编码器在确定出当前编码块的空间相邻编码块与上层编码块分别对应的最优编码模式后,可以将空间相邻编码块的最优编码模式以及上层编码块的最优编码模式,存储至预定的存储空间中。其中,编码器在确定该空间相邻编码块的最优编码模式或上层编码块的最优编码模式的过程中,可以将待确定出最优编码模式的空间相邻编码块或上层编码作为当前编码块,利用本申请实施例的方法进行确定,在这种情况下,该空间相邻编码块或上层编码块即为此时的当前编码块,即编码器确定当前编码块的最优编码模式,该当前编码为空间相邻编码块或上层编码块。
具体地,编码器在确定当前编码块的最优编码模式过程中,需要利用该空间相邻编码块的最优编码模式以及上层编码块的最优编码模式时,从预定的存储空间中获取当前编码块的空间相邻编码块与上层编码块分别对应的最优编码模式。在获取到空间相邻编码块与所述上层编码块分别对应的最优编码模式后,可以将空间相邻编码块与上层编码块分别对应的最优编码模式保存至相应的列表中,为后续便于区分将该列表记作相邻模式列表,即将空间相邻编码块与上层编码块分别对应的最优编码模式保存至相邻模式列表,从而为后续确定当前编码块的最优编码模式提供前提保障。
步骤S130,基于候选模式列表与相邻模式列表,确定当前编码块的最优编码模式。
具体地,编码器在将N个候选帧内预测模式保存至候选模式列表,以及将空间相邻编码块与上层编码块分别对应的最优编码模式保存至相邻模式列表后,可以基于该候选模式列表与该相邻模式列表,确定当前编码块的最优编码模式,从而充分利用当前编码块的空间相邻块和上层编码块分别对应的最优编码模式,使得编码器自适应地跳过当前编码块的某些编码模式的RDO决策过程,减少编码器的计算量,提高编码速度。
本申请实施例提供的帧内预测编码方法,通过保存有当前编码块的N个候选帧内预测模式的候选模式列表,以及保存有当前编码块的空间相邻编码块与上层编码块分别对应的最优编码模式的相邻模式列表,确定当前编码块的最优编码模式,使得能够充分利用当前编码块的空间相邻块和上层编码块分别对应的最优编码模式,从而辅助编码器自适应地跳过当前编码块的某些编码模式的RDO决策过程,有效减少编码器的计算量,极大提高编码速度与编码效率。
在一种可能的实现方式中,空间相邻编码块包括以下至少一种:紧邻当前编码块且位于当前编码块左侧的第一编码块、紧邻当前编码块且位于当前编码块上侧的第二编码块、紧邻第一编码块且位于第一编码块上侧的第三编码、紧邻第一编码块且位于第一编码块下侧的第四编码块以及紧邻第二编码块且位于第二编码块右侧的第五编码块。
具体地,图2给出了空间相邻编码块和上层编码块的示意图,在图2左侧的示意图中,C为当前编码块,L为当前编码块C的空间相邻编码块,A也为当前编码块C的空间相邻块,U为当前编码块C在四叉树结构中的上层编码块,C为U的子编码块之一。其中,L紧邻当前编码块C且位于当前编码块C的左侧,为便于区分可以将L记作第一编码块,即L为紧邻当前编码块且位于当前编码块左侧的第一编码块;A紧邻当前编码块C且位于当前编码块C的上侧,为便于区分可以将A记作第二编码块,即A为紧邻当前编码块且位于当前编码块上侧的第二编码块。当然,空间相邻编码块除可以包括上述的第一编码块与第二编码块之外,还可以包括第三编码块、第四编码块及第五编码块,如图2右侧的示意图所示。在图2右侧的示意图中,C为当前编码块,L为第一编码块,A为第二编码块,B为紧邻第一编码块L且位于第一编码块L上侧的第三编码块,换言之,B为紧邻第二编码块A且位于第二编码块A左侧的第三编码块,D为紧邻第一编码块L且位于第一编码块L下侧的第四编码块,E为紧邻第二编码块A且位于第二编码块A右侧的第五编码块。
下面均以当前编码块C的空间相邻块包括第一编码块L与第二编码块A为例,对本申请实施例进行具体介绍。
具体地,由于当前编码块C的空间相邻块包括第一编码块L与第二编码块A,因此获取当前编码块的空间相邻编码块的最优编码模式,即为获取第一编码块的最优编码模式与第二编码块的最优编码模式,获取当前编码块的空间相邻编码块与上层编码块分别对应的最优编码模式,即为获取第一编码块的最优编码模式、第二编码块的最优编码模式以及上层编码块的最优编码模式。
进一步地,在获取到第一编码块的最优编码模式、第二编码块的最优编码模式以及上层编码块的最优编码模式之后,可以依据预先设定的顺序(记作第二预定顺序),将第一编码块的最优编码模式、第二编码块的最优编码模式以及上层编码块的最优编码模式,依次保存至相邻模式列表。其中,该第二预定顺序可以为先将第一编码块的最优编码模式保存至相邻模式列表,再将第二编码块的最优编码模式保存至相邻模式列表,再将上层编码块的最优编码模式保存至相邻模式列表,当然也可以为其它的写入顺序,本申请实施例不对其做限制。换言之,依据第二预定顺序,将第一编码块的最优编码模式、第二编码块的最优编码模式以及上层编码块的最优编码模式,依次保存至相邻模式列表。
进一步地,HEVC采用灵活的四叉树编码块划分结构,最大的编码块是CTU(CodingTree Unit,编码树单元),其尺寸为64x64像素。如图3所示,CTU可继续递归地往下划分更小的CU(Coding Unit,编码单元),即CTU可继续划分为4个32x32的CU,每个32x32的CU可继续划分为4个16x16的CU,直到CU为8x8,不能继续划分为止。于是,获取当前编码块的空间相邻编码块与上层编码块分别对应的最优编码模式的过程,包括如下几种情况:
(1)若当前编码块C处于图像的最左侧,则当前编码块C的左侧不存在其它编码块,即紧邻当前编码块C且位于当前编码块C的左侧的编码块L,超出了图像边界,此时可以使用直流模式作为编码块L的最优编码模式,即在相邻模式列表中,将第一编码块的最优编码模式替换为直流模式。
(2)若当前编码块C处于图像的最上侧,则当前编码块C的上侧不存在其它编码块,即紧邻当前编码块C且位于当前编码块C的上侧的编码块A,超出了图像边界,此时可以使用直流模式作为编码块A的最优编码模式,即在相邻模式列表中,将第二编码块的最优编码模式替换为直流模式。
(3)若当前编码块C的大小为32*32像素,则当前编码块C即为最大的帧内预测编码块,其在四叉树结构中不存在上层编码块,即编码块C不是其它编码块的子编码块,也即当前编码块C在四叉树结构中的上层编码块U,超出了最大的帧内预测编码块的边界,此时可以使用直流模式作为编码块U的最优编码模式,即在相邻模式列表中,将上层编码块的最优编码模式替换为直流模式。
(4)当第一编码块、第二编码块以及上层编码块中的任一项未超出图像边界时,获取预存储的该未超出图像边界的编码块的最优编码模式。
换言之,获取当前编码块的空间相邻编码块与上层编码块分别对应的最优编码模式的过程,具体包括:当第一编码块和/或第二编码块超出图像边界时,将直流模式作为超出图像边界的编码块的最优编码模式;以及当上层编码块超出最大的帧内预测编码块边界时,将直流模式作为上层编码块的最优编码模式。其中,第一编码块、第二编码块可超出编码树单元边界或slice(条带)边界,不受视频编码标准中关于获取空间相邻编码块的编码信息的约束。
在又一种可能的实现方式中,在确定当前编码块的N个候选帧内预测模式的过程中,N的大小(即候选模式列表的长度)取决于当前编码块的大小和用户设置的率失真档位RdLevel,其中,N随着编码块大小的减小而增加,随着RdLevel增大而增大,如表1所示。因此,在确定当前编码块的N个候选帧内预测模式的过程中,首先需要根据用户设置的RdLevel和当前编码块的大小,计算当前编码块的候选模式列表的长度N,其中,当前编码块的大小对于编码器来说是已知的。
表1候选模式列表长度N取值
Figure BDA0002024889010000131
Figure BDA0002024889010000141
具体地,在计算出当前编码块的候选模式列表的长度N后,接着计算多个预定帧内预测模式分别对应的预定率失真优化代价值,其中,预定率失真优化代价值可以为绝对变换误差和代价值(记作satdCost),为方便介绍后续使用satdCost这一预定率失真优化代价值进行介绍。在计算出各个预定帧内预测模式分别对应的预定率失真优化代价值(satdCost)后,对计算得到的各个satdCost按照第一预定顺序进行排序,并将排序后的前N个帧内预测模式作为当前编码块的候选帧内预测模式,接着将该N个候选帧内预测模式保存至候选模式列表中。
其中,上述的多个预定帧内预测模式为HEVC标准的35种帧内预测模式,计算多个预定帧内预测模式分别对应的satdCost,即计算35种帧内预测模式分别对应的satdCost。
具体地,计算多个预定帧内预测模式分别对应的satdCost的过程中,可以根据该35种帧内预测模式分别计算当前编码块的预测值,接着依据计算出的各个帧内预测模式分别对应的预测值,计算各个帧内预测模式分别对应的satd(绝对变换误差和)和比特数bits,接着根据各个帧内预测模式分别对应的satd(绝对变换误差和)和比特数bits,计算各个帧内预测模式分别对应的satdCost。
进一步地,上述第一预定顺序可以为从小到大的排列顺序,也可以为其它排列顺序,本申请实施例不对其做限制。如果上述的第一预定顺序为从小到大的排列顺序,则在计算出各个预定帧内预测模式分别对应的satdCost后,可以对各个satdCost按照从小到大的排列顺序进行排序,接着,将排序后的前N个帧内预测模式作为当前编码块的候选帧内预测模式,即从35种帧内预测模式分别对应的satdCost中,选取satdCost最小的N个帧内预测模式,作为当前编码块的候选帧内预测模式,并按N个satdCost从小到大的顺序,将该N个satdCost对应的帧内预测模式保存至候选模式列表中,作为当前编码块的候选帧内预测模式,在实际应用中,该候选模式列表可以记作RdoCandList。
换言之,本实现方式中的确定当前编码块的N个候选帧内预测模式,可以概括为:按照第一预定顺序,对多个预定帧内预测模式分别对应的绝对变换误差和代价值进行排序,并将排序后的前N个帧内预测模式作为当前编码块的候选帧内预测模式。将N个候选帧内预测模式保存至候选模式列表,可以概括为:依据第一预定顺序,将N个候选帧内预测模式,依次保存至候选模式列表。
在又一种可能的实现方式中,在基于候选模式列表与相邻模式列表,确定当前编码块的最优编码模式的过程中,可以先确定候选模式列表中首个索引值对应的候选帧内预测模式或第二个索引值对应的候选帧内预测模式,是否存在于相邻模式列表中;接着,如果首个索引值对应的候选帧内预测模式或者第二个索引值对应的候选帧内预测模式存在于相邻模式列表中,则将N更新为首个索引值增加第一预设数值或者第二个索引值增加第一预设数值,并基于更新后的N确定当前编码块的最优编码模式;接着,如果首个索引值对应的候选帧内预测模式与第二个索引值对应的候选帧内预测模式,均不存在于相邻模式列表中,则基于相邻模式列表,确定当前编码块的最优编码模式。
其中,上述的第一预设数值可以为1,也可以根据需要设定为其它值,本申请实施例不对其做限制,下面以第一预设数值为1作为示例,对本实现方式进行详细介绍。
具体地,当候选模式列表中的首个索引值对应的候选帧内预测模式存在于相邻模式列表中时,则对N进行更新。其中,在对N进行更新时,若候选模式列表中的首个索引值对应的候选帧内预测模式存在于相邻模式列表中,则将N更新为该首个索引值加1(1即为第一预设数值),若候选模式列表中首个索引值对应的候选帧内预测模式不存在于相邻模式列表中,且第二个索引值对应的候选帧内预测模式存在于相邻模式列表中,则将N更新为该第二个索引值加1(1即为第一预设数值)。在完成N的更新以后,可以基于更新后的N确定当前编码块的最优编码模式。
进一步地,在基于更新后的N确定当前编码块的最优编码模式的过程中,可以首先确定更新后的N是否等于第二预设数值;接着,若更新后的N等于第二预设数值,则将候选模式列表中的首个索引值对应的候选帧内预测模式,确定为当前编码块的最优编码模式;接着,若更新后的N不等于第二预设数值,则基于该更新后的N,根据候选模式列表,确定当前编码块的最优编码模式。其中,上述的第二预设数值可以为1,也可以根据需要设定为其它值,本申请实施例不对其做限制,需要注意的是,本申请实施例根据需要将第二预设数值取值为1。
具体地,若候选模式列表的首个索引值对应的候选帧内预测模式与第二个索引值对应的候选帧内预测模式均不存在于相邻模式列表中,则基于相邻模式列表与候选模式列表,确定当前编码块的最优编码模式。
其中,在基于相邻模式列表与候选模式列表,确定当前编码块的最优编码模式的过程中,可以首先确定相邻模式列表的首个索引值对应的最优编码模式,与该相邻模式列表的第二个索引值对应的最优编码模式是否相同;接着,如果两者相同,即相邻模式列表中首个索引值对应的最优编码模式与第二个索引值对应的最优编码模式相同,则确定该首个索引值对应的最优编码模式在候选模式列表中的候选索引值(记作nIdx),并基于该候选索引值与候选模式列表确定当前编码块的最优编码模式;接着,如果两者不相同,即相邻模式列表中首个索引值对应的最优编码模式与第二个索引值对应的最优编码模式不相同,则根据候选模式列表,确定当前编码块的最优编码模式。
进一步地,确定相邻模式列表的首个索引值对应的最优编码模式,在候选模式列表中的候选索引值的过程中,首先可以确定该首个索引值对应的最优编码模式是否存在于该候选模式列表中;如果该首个索引值对应的最优编码模式存在于该候选模式列表中,则将候选索引值确定为该候选模式列表中的首个索引值对应的最优编码模式,在该候选模式列表中的索引值,即将该首个索引值对应的最优编码模式在候选模式列表中的索引值确定为候选索引值。如果该首个索引值对应的最优编码模式不存在于该候选模式列表中,则将N减第三预定数值确定为候选索引值,其中,第三预设数值可以为1,也可以根据需要设定为其它值,本申请实施例不对其做限制,需要注意的是,本申请实施例根据需要将第三预设数值取值为1,即将候选索引值确定为N减1(即N-1)。
进一步地,在确定出候选索引值,基于候选索引值与候选模式列表确定当前编码块的最优编码模式的过程中,可以先将N更新为确定出的候选索引值(nIdx)增加第四预设数值,接着基于更新后的N,根据候选模式列表,确定当前编码块的最优编码模式。其中,上述的第四预设数值可以为1,也可以根据需要设定为其它值,本申请实施例不对其做限制,需要注意的是,本申请实施例根据需要将第四预设数值取值为1,即将N更新为nIdx+1。
进一步地,上述的根据候选模式列表,确定当前编码块的最优编码模式的过程中,可以先确定候选模式列表当前包括的各个候选帧内预测模式分别对应的率失真代价值;接着确定各个率失真代价值中的最小值,并将该最小值对应的候选帧内预测模式,确定为当前编码块的最优编码模式。
其中,确定候选模式列表当前包括的各个候选帧内预测模式分别对应的率失真代价值的过程中,针对任一候选帧内预测模式,其率失真代价值的计算过程具体可以为:先确定该任一候选帧内预测模式的预定预测值;接着根据确定出的预定预测值,计算该任一候选帧内预测模式的编码失真(例如平方误差和SSD失真),以及对该任一候选帧内预测模式编码(例如熵编码)后的比特数;接着根据计算得到的编码失真(例如SSD失真)与比特数,计算该任一候选帧内预测模式的率失真优化代价值。
进一步地,图4给出了本申请实施例的帧内预测编码过程的示意图,在图4中相邻编码块包括当前编码块左边的编码块(即第一编码块)和上边的编码块(即第二编码块),将候选模式列表记作RdoCandList,将相邻模式列表记作nbModeList,将绝对变换误差和代价值记作satdCost,将率失真优先代价值记作RdoCost,候选模式列表中首个索引值对应的候选帧内预测模式记作RdoCandList[0],候选模式列表中第二个索引值对应的候选帧内预测模式记作RdoCandList[1],相邻模式列表中首个索引值对应的候选帧内预测模式记作nbModeList[0],相邻模式列表中第二个索引值对应的候选帧内预测模式记作nbModeList[1]。同时,为方便描述,将上述和第一预设数值、第二预设数值、第三预设数值及第四预设数值等,均取值为1,将候选索引值记作nIdx。
其中,图4中的流程由编码器执行,编码器可以位于服务器中,也可以位于客户端中,还可以位于其它可能的终端设备中,本申请实施例不对其做限制,图4的流程大体可以描述为如下步骤:
步骤S401,计算候选模式列表RdoCandList的长度N:根据用户设置的RdLevel和当前编码块的大小,计算当前编码块精选阶段的候选模式列表的长度N;
步骤S402,计算35种帧内预测模式的satdCost:对35种帧内预测模式,分别使用各模式计算当前编码块的预测值,并计算SATD失真和估计比特数bits,进而计算得出satdCost;
步骤S403,选取satdCost最小的N种帧内预测模式,并保存到RdoCandList:从35种帧内预测模式的satdCost中,选取satdCost最小的N个帧内预测模式作为候选帧内预测模式,并按对应的satdCost从小到大的顺序依次写入RdoCandList中;
步骤S404,获取相邻最佳模式列表nbModeList:获取当前编码块左边的编码块的最佳帧模式、当前编码块上边的编码块的最佳帧内模式、以及当前编码块的上层编码块的最佳帧内模式,并按顺序写入nbModeList中;
步骤S405,第一快速条件判决:判断RdoCandList[i]是否存在于相邻最佳模式列表nbModeList中,若存在,则执行步骤S406,否则执行步骤S409,其中,i=0,1;
步骤S406,令N等于i+1;
步骤S407,第二快速条件判决:判断N是否等于1,若等于,则执行步骤S408,否则执行步骤S412;
步骤S408,判决RdoCandList[0]为当前编码块最终的最优模式,流程结束;
步骤S409,第三快速条件判决:判断nbModeList[0]是否等于nbModeList[1],若相等,则执行步骤S410,否则执行步骤S412;
步骤S410,计算nbModeList[0]在RdoCandList中的索引nIdx:若nbModeList[0]在RdoCandList中存在,则nIdx为nbModeList[0]在RdoCandList中的索引,否则令nIdx为N-1;
步骤S411,令N等于nIdx+1;
步骤S412,计算RdoCandList中候选帧内预测模式的RdoCost:分别使用RdoCandList中的前N种候选帧内预测模式计算当前编码块的预测值,并依据计算出的各个预测值,分别计算当前编码块的编码失真(例如SSD失真)和编码(例如熵编码)之后的比特数bits,接着,依据计算出的编码失真(例如SSD失真)和编码(例如熵编码)之后的比特数bits,分别计算每个候选帧内预测模式对应的RdoCost;
步骤S413,选择RdoCost最小的候选帧内预测模式为当前编码块最终的最优模式,流程结束。
另外,在x265中对本申请实施例的帧内预测编码方法进行测试时,测试数据显示,该方法可平均节省编码时间接近30%,等价于提高编码速度42%,而BD-rate只增加了0.8%。可见,该方法在显著降低编码复杂度的同时,对压缩效率基本没有影响。其中,测试数据如表2所示,测试条件具体如下所示:
(1)处理器Intel(R)Xeon(R)CPU E5-2670v3@2.30GHz 48核,内存128GB;
(2)HEVC标准测试序列;
(3)x265:全I帧配置,preset为slow,固定QP(Quantization Parameter,量化参数);
(4)测试点:QP为22、27、32、37。
表2本申请实施例的帧内预测编码方法的测试数据
标准测试序列类别 BD-rate(%) 编码时间节省(%)
B 0.8 -29.94
C 0.8 -30.94
D 0.8 -29.28
E 0.9 -28.97
F 0.7 -29.67
All 0.8 -29.81
进一步地,图5给出了根据本申请实施例的帧内预测编码方法确定当前编码块的最优编码模式的示意图,其中,图5以空间相邻编码块包括当前编码块左侧的编码块(即第一编码块)和上侧的编码块(即第二编码块)为例进行介绍,并假定第一预设数值、第二预设数值、第三预设数值及第四预设数值均为1。在图5的相邻模式列表中,nbEM_1表示第一编码块的最优编码模式记作,nbEM_2表示第二编码块的最优编码模式,nbEM_3表示当前编码块的上层编码块的最优编码模式。在图5的候选模式列表中,CandEM_1表示候选模式列表的首个索引对应的帧内预测模式,CandEM_2表示候选模式列表的第二个索引对应的帧内预测模式,依此类推,CandEM_N表示候选模式列表的第N个索引对应的帧内预测模式。
在图5中,确定当前编码块的最优编码模式的过程是由编码器执行的,其中,编码器可以位于服务器中,也可以位于客户端中,还可以位于其它可能的终端设备中,本申请实施例不对其做限制,该过程具体可以为:
首先判断候选模式列表中首个索引值对应的候选帧内预测模式或者第二个索引值对应的候选帧内预测模式,是否存在于相邻模式列表中,若候选模式列表中首个索引值对应的候选帧内预测模式存在于相邻模式列表中,则将N更新为首个索引值增加1,并判断更新后的N是否等于1,如果等于1,则将该首个索引值对应的候选帧内预测模式确定为当前编码块的最优编码模式,例如将CandEM_1确定为当前编码块的最优编码模式,如果不等于1,则基于该更新后的N,根据候选模式列表,确定当前编码块的最优编码模式,例如将CandEM_3确定为当前编码块的最优编码模式。
接着,若候选模式列表中首个索引值对应的候选帧内预测模式不存在于相邻模式列表中,且第二个索引值对应的候选帧内预测模式存在于相邻模式列表中,则将N更新为第二个索引值增加1,并判断更新后的N是否等于1,如果等于1,则将该第二个索引值对应的候选帧内预测模式确定为当前编码块的最优编码模式,例如,将CandEM_2确定为当前编码块的最优编码模式,如果不等于1,则基于该更新后的N,根据候选模式列表,确定当前编码块的最优编码模式,例如将CandEM_3确定为当前编码块的最优编码模式。
接着,候选模式列表中首个索引值对应的候选帧内预测模式与候选模式列表中第二个索引值对应的候选帧预测模式,均不存在于相邻模式列表中,则基于相邻模式列表与候选模式列表,确定当前编码块的最优编码模式。其中,基于候选索引值与候选模式列表,确定当前编码块的最优编码模式,具体可以为:判断相邻模式列表中首个索引值对应的最优编码模式与第二个索引值对应的最优编码模式是否相同,如果相同,则确定该首个索引值对应的最优编码模式在候选模式列表中的候选索引值(记作nIdx),并将N更新为候选索引值增加1(记作N=nIdx+1),并基于更新后的N,根据候选模式列表,确定当前编码块的最优编码模式;如果不相同,则根据候选模式列表,确定当前编码块的最优编码模式。
其中,确定首个索引值对应的最优编码模式在候选模式列表中的候选索引值的过程,具体可以为:若首个索引值对应的最优编码模式存在于候选模式列表中,则将该候选索引值确定为该首个索引值对应的最优编码模式在候选模式列表中的索引值;若首个索引值对应的最优编码模式不存在于候选模式列表中,将候选索引值确定为N减1。
其中,上述根据候选模式列表,确定当前编码块的最优编码模式的过程,具体可以为:计算候选模式列表中候选帧内预测模式的率失真代价值(记作RdoCost):分别使用候选模式列表中的前N种候选帧内预测模式计算当前编码块的预测值,并依据计算出的各个预测值,分别计算当前编码块的编码失真(例如SSD失真)和编码(例如熵编码)之后的比特数bits,接着,依据计算出的编码失真(例如SSD失真)和编码(例如熵编码)之后的比特数bits,分别计算每个候选帧内预测模式对应的RdoCost;并选择RdoCost最小的候选帧内预测模式为当前编码块最终的最优模式,例如选择CandEM_3为当前编码块最终的最优模式。
本申请实施例,利用当前编码块的空间相邻块和上层编码块分别对应的最优编码模式,辅助编码器自适应地跳过当前编码块的某些编码模式的RDO决策过程,有效减少编码器的计算量,极大提高编码速度与编码效率。
图6为本申请又一实施例提供的一种帧内预测编码装置的基本结构示意图,如图6所示,该装置60可以包括第一处理模块61、第二处理模块62及确定模块63,其中:
第一处理模块61用于确定当前编码块的N个候选帧内预测模式,并将N个候选帧内预测模式保存至候选模式列表,N为正整数;
第二处理模块62用于获取当前编码块的空间相邻编码块与上层编码块分别对应的最优编码模式,并将空间相邻编码块与上层编码块分别对应的最优编码模式保存至相邻模式列表;
确定模块63用于基于候选模式列表与相邻模式列表,确定当前编码块的最优编码模式。
本申请实施例提供的装置,通过保存有当前编码块的N个候选帧内预测模式的候选模式列表,以及保存有当前编码块的空间相邻编码块与上层编码块分别对应的最优编码模式的相邻模式列表,确定当前编码块的最优编码模式,使得能够充分利用当前编码块的空间相邻块和上层编码块分别对应的最优编码模式,从而辅助编码器自适应地跳过当前编码块的某些编码模式的RDO决策过程,有效减少编码器的计算量,极大提高编码速度与编码效率。
图7为本申请又一实施例提供的一种帧内预测编码装置的详细结构示意图,如图7所示,该装置70可以包括第一处理模块71、第二处理模块72及确定模块73,其中,图7中的第一处理模块71所实现的功能与图6中的第一处理模块61相同,图7中的第二处理模块72所实现的功能与图6中的第二处理模块62相同,图7中的推荐模块73所实现的功能与图6中的推荐模块63相同,在此不再赘述。下面对图7所示的帧内预测编码装置进行详细介绍:
具体地,空间相邻编码块包括以下至少一种:紧邻当前编码块且位于当前编码块左侧的第一编码块、紧邻当前编码块且位于当前编码块上侧的第二编码块、紧邻第一编码块且位于第一编码块上侧的第三编码、紧邻第一编码块且位于第一编码块下侧的第四编码以及紧邻第二编码块且位于第二编码块右侧的第五编码。
第二处理模块72具体用于获取第一编码块、第二编码块、第三编码块、第四编码块以及第五编码中至少一项的最优编码模式,以及上层编码块的最优编码模式。
进一步地,第一处理模块71具体用于按照第一预定顺序,对多个预定帧内预测模式分别对应的预定率失真优化代价值进行排序,并将排序后的前N个帧内预测模式作为当前编码块的候选帧内预测模式;以及用于依据第一预定顺序,将N个候选帧内预测模式,依次保存至候选模式列表;
第二处理模块72具体用于依据第二预定顺序,将第一编码块、第二编码块、第三编码块、第四编码块以及第五编码中至少一项的最优编码模式,以及上层编码块的最优编码模式,依次保存至相邻模式列表。
进一步地,第二处理模块72具体用于当第一编码块、第二编码块、第三编码块、第四编码块以及第五编码块中的任一项未超出图像边界时,获取预存储的该未超出图像边界的编码块的最优编码模式;以及当第一编码块、第二编码块、第三编码块、第四编码块以及第五编码块中的任一项超出图像边界时,将直流模式作为超出图像边界的编码块的最优编码模式;以及当上层编码块未超出图像边界时,获取预存储的该上层编码块的最优编码模式;以及当上层编码块超出最大的帧内预测编码块边界时,将直流模式作为上层编码块的最优编码模式。
进一步地,确定模块73包括第一确定子模块731、第一模式确定子模块732、第二模式确定子模块733与第三模式确定子模块734,其中:
第一确定子模块731用于确定候选模式列表中首个索引值对应的候选帧内预测模式或第二个索引值对应的候选帧内预测模式,是否存在于相邻模式列表中;
第一模式确定子模块732用于当候选模式列表中首个索引值对应的候选帧内预测模式存在于相邻模式列表中,则将N更新为首个索引值增加第一预设数值,基于更新后的N确定当前编码块的最优编码模式;
第二模式确定子模块733用于当候选模式列表中首个索引值对应的候选帧内预测模式不存在于相邻模式列表中,且候选模式列表中第二个索引值对应的候选帧内预测模式存在于相邻模式列表中,则将N更新为第二个索引值增加第一预设数值,并基于更新后的N确定当前编码块的最优编码模式;
第三模式确定子模块734用于当首个索引值对应的候选帧内预测模式与第二个索引值对应的候选帧内预测模式均不存在于相邻模式列表中时,基于相邻模式列表与候选模式列表,确定当前编码块的最优编码模式。
进一步地,第一模式确定子模块732具体用于当更新后的N等于第二预设数值时,将首个索引值对应的候选帧内预测模式确定为当前编码块的最优编码模式;以及当更新后的N不等于第二预设数值时,基于该更新后的N,根据候选模式列表,确定当前编码块的最优编码模式。
进一步地,第二模式确定子模块733具体用于当相邻模式列表中首个索引值对应的最优编码模式与第二个索引值对应的最优编码模式相同时,确定首个索引值对应的最优编码模式在候选模式列表中的候选索引值,并基于候选索引值与候选模式列表,确定当前编码块的最优编码模式;以及用于当相邻模式列表中首个索引值对应的最优编码模式与第二个索引值对应的最优编码模式不相同时,根据候选模式列表,确定当前编码块的最优编码模式。
进一步地,第二模式确定子模块733具体用于当首个索引值对应的最优编码模式存在于候选模式列表中时,将首个索引值对应的最优编码模式在候选模式列表中的索引值确定为候选索引值;以及当首个索引值对应的最优编码模式不存在于候选模式列表中时,将N减第三预定数值确定为候选索引值。
进一步地,第二模式确定子模块733具体用于将N更新为候选索引值增加第四预设数值,并基于更新后的N,根据候选模式列表,确定当前编码块的最优编码模式。
进一步地,确定模块73包括代价值确定子模块735与编码模式确定子模块736;
代价值确定子模块735用于确定候选模式列表当前包括的各个候选帧内预测模式分别对应的率失真代价值;
编码模式确定子模块736用于确定各个率失真代价值中的最小值,并将该最小值对应的候选帧内预测模式,确定为当前编码块的最优编码模式。
进一步地,代价值确定子模块735具体用于确定任一候选帧内预测模式的预定预测值;以及用于根据预定预测值,计算任一候选帧内预测模式的编码失真,以及对任一候选帧内预测模式编码后的比特数;以及用于根据编码失真与比特数,计算任一候选帧内预测模式的率失真优化代价值。
本申请另一实施例提供了一种电子设备,如图8所示,图8所示的电子设备800包括:处理器801和存储器803。其中,处理器801和存储器803相连,如通过总线802相连。进一步地,电子设备800还可以包括收发器804。需要说明的是,实际应用中收发器804不限于一个,该电子设备800的结构并不构成对本申请实施例的限定。
其中,处理器801应用于本申请实施例中,用于实现图6与图7所示的第一处理模块、第二处理模块及确定模块的功能。
处理器801可以是CPU,通用处理器,DSP,ASIC,FPGA或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器801也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线802可包括一通路,在上述组件之间传送信息。总线802可以是PCI总线或EISA总线等。总线802可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器803可以是ROM或可存储静态信息和指令的其他类型的静态存储设备,RAM或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM、CD-ROM或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
存储器803用于存储执行本申请方案的应用程序代码,并由处理器801来控制执行。处理器801用于执行存储器803中存储的应用程序代码,以实现图6或图7所示实施例提供的帧内预测编码装置的动作。
本申请再一实施例提供的电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时,与现有技术相比,可实现:通过保存有当前编码块的N个候选帧内预测模式的候选模式列表,以及保存有当前编码块的空间相邻编码块与上层编码块分别对应的最优编码模式的相邻模式列表,确定当前编码块的最优编码模式,使得能够充分利用当前编码块的空间相邻块和上层编码块分别对应的最优编码模式,从而辅助编码器自适应地跳过当前编码块的某些编码模式的RDO决策过程,有效减少编码器的计算量,极大提高编码速度与编码效率。
本申请再一实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现实施例一所示的方法。通过保存有当前编码块的N个候选帧内预测模式的候选模式列表,以及保存有当前编码块的空间相邻编码块与上层编码块分别对应的最优编码模式的相邻模式列表,确定当前编码块的最优编码模式,使得能够充分利用当前编码块的空间相邻块和上层编码块分别对应的最优编码模式,从而辅助编码器自适应地跳过当前编码块的某些编码模式的RDO决策过程,有效减少编码器的计算量,极大提高编码速度与编码效率。
本申请实施例提供的计算机可读存储介质适用于上述方法的任一实施例。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
以上所述仅是本申请的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

Claims (13)

1.一种帧内预测编码方法,其特征在于,包括:
确定当前编码块的N个候选帧内预测模式,并将所述N个候选帧内预测模式保存至候选模式列表,N为正整数;
获取当前编码块的空间相邻编码块与上层编码块分别对应的最优编码模式,并将所述空间相邻编码块与所述上层编码块分别对应的最优编码模式保存至相邻模式列表;
确定所述候选模式列表中首个索引值对应的候选帧内预测模式或第二个索引值对应的候选帧内预测模式,是否存在于所述相邻模式列表中;
若所述候选模式列表中首个索引值对应的候选帧内预测模式存在于所述相邻模式列表中,则将所述N更新为所述首个索引值增加第一预设数值,基于更新后的N确定当前编码块的最优编码模式;
若所述候选模式列表中首个索引值对应的候选帧内预测模式不存在于所述相邻模式列表中,且所述候选模式列表中第二个索引值对应的候选帧内预测模式存在于所述相邻模式列表中,则将所述N更新为所述第二个索引值增加第一预设数值,并基于更新后的N确定当前编码块的最优编码模式;
若所述候选模式列表中首个索引值对应的候选帧内预测模式与所述候选模式列表中第二个索引值对应的候选帧预测模式,均不存在于所述相邻模式列表中,则基于所述相邻模式列表与所述候选模式列表,确定当前编码块的最优编码模式。
2.根据权利要求1所述的方法,其特征在于,所述空间相邻编码块包括以下至少一种:紧邻当前编码块且位于当前编码块左侧的第一编码块、紧邻当前编码块且位于当前编码块上侧的第二编码块、紧邻所述第一编码块且位于所述第一编码块上侧的第三编码块、紧邻所述第一编码块且位于所述第一编码块下侧的第四编码块以及紧邻所述第二编码块且位于所述第二编码块右侧的第五编码块;
所述获取当前编码块的空间相邻编码块与上层编码块分别对应的最优编码模式,包括:
获取所述第一编码块、所述第二编码块、所述第三编码块、所述第四编码块以及所述第五编码块中至少一项的最优编码模式,以及所述上层编码块的最优编码模式。
3.根据权利要求2所述的方法,其特征在于,所述确定当前编码块的N个候选帧内预测模式,包括:
按照第一预定顺序,对多个预定帧内预测模式分别对应的预定率失真优化代价值进行排序,并将排序后的前N个帧内预测模式作为当前编码块的候选帧内预测模式;
所述将所述N个候选帧内预测模式保存至候选模式列表,包括:
依据所述第一预定顺序,将所述N个候选帧内预测模式,依次保存至所述候选模式列表;
所述将所述空间相邻编码块与所述上层编码块分别对应的最优编码模式保存至相邻模式列表,包括:
依据第二预定顺序,将所述第一编码块、所述第二编码块、所述第三编码块、所述第四编码块以及所述第五编码块中至少一项的最优编码模式以及所述上层编码块的最优编码模式,依次保存至所述相邻模式列表。
4.根据权利要求2或3所述的方法,其特征在于,所述获取所述第一编码块、所述第二编码块、所述第三编码块、所述第四编码块以及所述第五编码块中至少一项的最优编码模式,以及所述上层编码块的最优编码模式,包括:
当所述第一编码块、所述第二编码块、所述第三编码块、所述第四编码块以及所述第五编码块中的任一项未超出图像边界时,获取预存储的该未超出图像边界的编码块的最优编码模式;
当所述第一编码块、所述第二编码块、所述第三编码块、所述第四编码块以及所述第五编码块中的任一项超出图像边界时,将直流模式作为超出所述图像边界的编码块的最优编码模式;
当所述上层编码块未超出图像边界时,获取预存储的该上层编码块的最优编码模式;
当所述上层编码块超出最大的帧内预测编码块边界时,将直流模式作为所述上层编码块的最优编码模式。
5.根据权利要求1所述的方法,其特征在于,所述基于更新后的N确定当前编码块的最优编码模式,包括:
当更新后的N等于第二预设数值时,将所述首个索引值对应的候选帧内预测模式确定为当前编码块的最优编码模式;
当更新后的N不等于第二预设数值时,基于该更新后的N,根据所述候选模式列表,确定当前编码块的最优编码模式。
6.根据权利要求1所述的方法,其特征在于,所述基于所述相邻模式列表与所述候选模式列表,确定当前编码块的最优编码模式,包括:
当所述相邻模式列表中首个索引值对应的最优编码模式与第二个索引值对应的最优编码模式相同时,确定所述首个索引值对应的最优编码模式在所述候选模式列表中的候选索引值,并基于所述候选索引值与所述候选模式列表,确定当前编码块的最优编码模式;
当所述相邻模式列表中首个索引值对应的最优编码模式与第二个索引值对应的最优编码模式不相同时,根据所述候选模式列表,确定当前编码块的最优编码模式。
7.根据权利要求6所述的方法,其特征在于,所述确定所述首个索引值对应的最优编码模式在所述候选模式列表中的候选索引值,包括:
当所述首个索引值对应的最优编码模式存在于所述候选模式列表中时,将所述首个索引值对应的最优编码模式在所述候选模式列表中的索引值确定为所述候选索引值;
当所述首个索引值对应的最优编码模式不存在于所述候选模式列表中时,将所述N减第三预定数值确定为所述候选索引值。
8.根据权利要求7所述的方法,其特征在于,所述基于所述候选索引值与所述候选模式列表,确定当前编码块的最优编码模式,包括:
将所述N更新为所述候选索引值增加第四预设数值,并基于更新后的N,根据所述候选模式列表,确定当前编码块的最优编码模式。
9.根据权利要求5-8任一项所述的方法,其特征在于,所述根据所述候选模式列表,确定当前编码块的最优编码模式,包括:
确定所述候选模式列表当前包括的各个候选帧内预测模式分别对应的率失真代价值;
确定各个率失真代价值中的最小值,并将该最小值对应的候选帧内预测模式,确定为当前编码块的最优编码模式。
10.根据权利要求9所述的方法,其特征在于,所述确定所述候选模式列表当前包括的各个候选帧内预测模式分别对应的率失真代价值,包括:
确定候选帧内预测模式的预定预测值;
根据所述预定预测值,计算所述候选帧内预测模式的编码失真,以及对所述候选帧内预测模式编码后的比特数;
根据所述编码失真与所述比特数,计算所述候选帧内预测模式的率失真优化代价值。
11.一种帧内预测编码装置,其特征在于,包括:
第一处理模块,用于确定当前编码块的N个候选帧内预测模式,并将所述N个候选帧内预测模式保存至候选模式列表,N为正整数;
第二处理模块,用于获取当前编码块的空间相邻编码块与上层编码块分别对应的最优编码模式,并将所述空间相邻编码块与所述上层编码块分别对应的最优编码模式保存至相邻模式列表;
确定模块,用于确定所述候选模式列表中首个索引值对应的候选帧内预测模式或第二个索引值对应的候选帧内预测模式,是否存在于所述相邻模式列表中;
若所述候选模式列表中首个索引值对应的候选帧内预测模式存在于所述相邻模式列表中,则将所述N更新为所述首个索引值增加第一预设数值,基于更新后的N确定当前编码块的最优编码模式;
若所述候选模式列表中首个索引值对应的候选帧内预测模式不存在于所述相邻模式列表中,且所述候选模式列表中第二个索引值对应的候选帧内预测模式存在于所述相邻模式列表中,则将所述N更新为所述第二个索引值增加第一预设数值,并基于更新后的N确定当前编码块的最优编码模式;
若所述候选模式列表中首个索引值对应的候选帧内预测模式与所述候选模式列表中第二个索引值对应的候选帧预测模式,均不存在于所述相邻模式列表中,则基于所述相邻模式列表与所述候选模式列表,确定当前编码块的最优编码模式。
12.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1-10任一项所述的帧内预测编码方法。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现权利要求1-10任一项所述的帧内预测编码方法。
CN201910290936.5A 2019-04-11 2019-04-11 帧内预测编码方法、装置、电子设备及计算机存储介质 Active CN109889827B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201910290936.5A CN109889827B (zh) 2019-04-11 2019-04-11 帧内预测编码方法、装置、电子设备及计算机存储介质
PCT/CN2020/078147 WO2020207162A1 (zh) 2019-04-11 2020-03-06 帧内预测编码方法、装置、电子设备及计算机存储介质
JP2021529273A JP7250927B2 (ja) 2019-04-11 2020-03-06 フレーム内予測符号化方法、装置、電子デバイスおよびコンピュータプログラム
US17/319,465 US11451772B2 (en) 2019-04-11 2021-05-13 Intra-frame prediction coding method and apparatus, electronic device, and computer storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910290936.5A CN109889827B (zh) 2019-04-11 2019-04-11 帧内预测编码方法、装置、电子设备及计算机存储介质

Publications (2)

Publication Number Publication Date
CN109889827A CN109889827A (zh) 2019-06-14
CN109889827B true CN109889827B (zh) 2021-01-29

Family

ID=66937090

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910290936.5A Active CN109889827B (zh) 2019-04-11 2019-04-11 帧内预测编码方法、装置、电子设备及计算机存储介质

Country Status (4)

Country Link
US (1) US11451772B2 (zh)
JP (1) JP7250927B2 (zh)
CN (1) CN109889827B (zh)
WO (1) WO2020207162A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109889827B (zh) * 2019-04-11 2021-01-29 腾讯科技(深圳)有限公司 帧内预测编码方法、装置、电子设备及计算机存储介质
CN110166775B (zh) * 2019-06-25 2021-05-11 浙江大华技术股份有限公司 帧内预测方法、编码器及存储装置
CN110267041B (zh) 2019-06-28 2021-11-09 Oppo广东移动通信有限公司 图像编码方法、装置、电子设备和计算机可读存储介质
CN111757105B (zh) * 2020-06-30 2023-07-04 北京百度网讯科技有限公司 图像编码处理方法、装置、设备和介质
CN112055209A (zh) * 2020-08-06 2020-12-08 浙江大华技术股份有限公司 图像编码方法及图像处理装置、计算机可读存储介质
CN113891074B (zh) * 2021-11-18 2023-08-01 北京达佳互联信息技术有限公司 视频编码方法和装置、电子装置和计算机可读存储介质
WO2023177198A1 (ko) * 2022-03-15 2023-09-21 주식회사 케이티 영상 부호화/복호화 방법 및 장치

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102067610B (zh) * 2008-06-16 2013-07-10 杜比实验室特许公司 基于视频编码的切片依赖性的码率控制模型适配
CN102665474B (zh) 2009-12-25 2015-01-28 Ykk株式会社 拉链用拉头
CN102685474B (zh) * 2011-03-10 2014-11-05 华为技术有限公司 预测模式的编解码方法、编解码设备及网络系统
EP2774360B1 (en) * 2011-11-04 2017-08-02 Huawei Technologies Co., Ltd. Differential pulse code modulation intra prediction for high efficiency video coding
US9344722B2 (en) * 2011-11-18 2016-05-17 Futurewei Technologies, Inc. Scanning of prediction residuals in high efficiency video coding
CN103997646B (zh) * 2014-05-13 2018-05-01 北京航空航天大学 一种高清视频编码中快速帧内预测模式选择方法
US10142626B2 (en) * 2014-10-31 2018-11-27 Ecole De Technologie Superieure Method and system for fast mode decision for high efficiency video coding
WO2017065532A1 (ko) * 2015-10-13 2017-04-20 엘지전자(주) 비디오 신호의 인코딩, 디코딩 방법 및 장치
KR101896263B1 (ko) 2016-12-29 2018-09-07 방정호 수소수 제조장치
CN117336474A (zh) * 2017-01-02 2024-01-02 Lx 半导体科技有限公司 图像编码/解码设备以及发送图像数据的设备
CN110278443B (zh) * 2018-03-16 2022-02-11 华为技术有限公司 划分标志位的上下文建模方法及装置
CN110650337B (zh) * 2018-06-26 2022-04-01 中兴通讯股份有限公司 一种图像编码方法、解码方法、编码器、解码器及存储介质
CN110213594A (zh) * 2018-12-29 2019-09-06 腾讯科技(深圳)有限公司 用于帧内编码的方法、装置、帧编码器、帧编码系统以及计算机可读存储媒体
KR20210113399A (ko) * 2019-02-25 2021-09-15 후아웨이 테크놀러지 컴퍼니 리미티드 인트라 예측을 위해 인트라 모드 코딩을 사용하는 인코더, 디코더 및 대응 방법
CN109889627B (zh) 2019-03-26 2020-08-25 常州索维尔电子科技有限公司 一种can总线节点id自动分配方法及装置
CN109889827B (zh) * 2019-04-11 2021-01-29 腾讯科技(深圳)有限公司 帧内预测编码方法、装置、电子设备及计算机存储介质

Also Published As

Publication number Publication date
US11451772B2 (en) 2022-09-20
CN109889827A (zh) 2019-06-14
US20210266534A1 (en) 2021-08-26
WO2020207162A1 (zh) 2020-10-15
JP2022527685A (ja) 2022-06-03
JP7250927B2 (ja) 2023-04-03

Similar Documents

Publication Publication Date Title
CN109889827B (zh) 帧内预测编码方法、装置、电子设备及计算机存储介质
CN113068032B (zh) 图像编解码方法、编码器、解码器以及存储介质
US10742984B2 (en) Method and apparatus for multi-table based context adaptive binary arithmetic coding
CN113382255B (zh) 一种编解码方法、设备及存储介质
EP1445955A1 (en) Image encoding method, image decoding method, image encoder, image decode, program, computer data signal, and image transmission system
KR102214937B1 (ko) 디블로킹 필터 방법 및 장치
JPH09224253A (ja) 画像符号化装置および画像復号装置
WO2022116317A1 (zh) 帧内预测方法、编码器、解码器以及存储介质
CN111492655A (zh) 用于视频压缩的基于纹理的分区决定
CN110662072B (zh) 运动信息候选者列表构建方法、装置及可读存储介质
CN110049322B (zh) 模式选择的方法、装置、电子设备及存储介质
CN110971896A (zh) 一种h.265编码方法和装置
CN109618152B (zh) 深度划分编码方法、装置和电子设备
CN108322741A (zh) 一种确定编码模式的方法及装置
WO2023197104A1 (zh) 一种编解码方法、编码器、解码器及存储介质
CN111246220A (zh) 一种基于vvc帧内编码的深度预测方法、设备及存储介质
CN114222136A (zh) 运动补偿的处理方法、编码器、解码器以及存储介质
WO2022188114A1 (zh) 帧内预测方法、编码器、解码器以及存储介质
CN110602502B (zh) 一种运动矢量编码和解码的方法
CN110139097B (zh) 视频编码中自适应模式顺序调整的方法
CN116233419A (zh) 一种avs3帧内块划分方法及相关设备
CN115834882A (zh) 一种帧内预测方法、装置、电子设备及存储介质
CN116527907A (zh) 一种基于图像特性的编码单元的划分方法
CN112565750A (zh) 一种视频编码方法、电子设备和存储介质
CN113676737A (zh) 一种基于gpu的高效视频编码器及编码方法

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