CN109510997A - 图像编码方法及设备 - Google Patents

图像编码方法及设备 Download PDF

Info

Publication number
CN109510997A
CN109510997A CN201710832222.3A CN201710832222A CN109510997A CN 109510997 A CN109510997 A CN 109510997A CN 201710832222 A CN201710832222 A CN 201710832222A CN 109510997 A CN109510997 A CN 109510997A
Authority
CN
China
Prior art keywords
node
coding
encoded
code tree
image
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.)
Granted
Application number
CN201710832222.3A
Other languages
English (en)
Other versions
CN109510997B (zh
Inventor
赵寅
杨海涛
刘杉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201710832222.3A priority Critical patent/CN109510997B/zh
Priority to PCT/CN2018/092577 priority patent/WO2019052255A1/zh
Publication of CN109510997A publication Critical patent/CN109510997A/zh
Application granted granted Critical
Publication of CN109510997B publication Critical patent/CN109510997B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding
    • 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/182Methods 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 a pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability

Landscapes

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

Abstract

本申请提供一种图像编码方法及设备,该方法包括:根据编码树确定已完成编码的编码单元的大小和待编码的编码单元的相邻图像区域的属性信息;根据已完成编码的编码单元的大小和相邻图像区域的属性信息确定待编码的编码单元的编码模式索引;若已存储与编码模式索引对应的编码模式,则根据存储的编码模式对待编码的编码单元进行编码。其中,编码树中节点的划分方式包括二叉树划分方式和/或三叉树划分方式。通过该方法可以重用已存储的编码模式,从而降低编码复杂度。

Description

图像编码方法及设备
技术领域
本申请涉及图像处理技术,尤其涉及一种图像编码方法及设备。
背景技术
H.265视频编码标准把一帧图像分割成互不重叠的编码树单元(Coding TreeUnit,CTU),还可以基于四叉树(Quad Tree,简称QT)对CTU进行划分。具体地,将CTU作为四叉树的根节点,按照四叉树的划分方式,将CTU递归划分成若干个叶节点。一个节点对应于一个图像区域,如果节点不被划分,则该节点称为叶节点,它对应的图像区域形成一个编码单元(Coding Unit,CU)。如果节点继续被划分,则节点对应的图像区域划分成四个相同大小的图像区域,每个图像区域对应一个节点。
进一步地,可以对四叉树的叶节点继续采用二叉树(Binary Tree,BT)划分或者三叉树(Triple Tree,TT)划分。其中,二叉树划分可以是水平方向上的二叉树划分或者竖直方向上的二叉树划分。同样,三叉树划分也可以是水平方向上的三叉树划分或者竖直方向上的三叉树划分。无论是基于BT划分方式还是TT划分方式,现有技术中编码端都需要根据CU对应的图像区域的相邻图像区域等确定该CU的预测模式、变换模式等编码模式,以根据这些编码模式实现对CU的编码,从而造成编码复杂度较高的问题。
发明内容
本申请提供一种图像编码方法及设备,通过重用编码模式索引对应的编码模式,从而无需编码端根据待编码的CU的相邻图像区域确定编码模式,进而降低了编码复杂度。
第一方面,本申请提供一种图像编码方法,包括:根据编码树确定已完成编码的编码单元的大小和待编码的编码单元的相邻图像区域的属性信息;其中,编码树中节点的划分方式包括二叉树划分方式和/或三叉树划分方式;根据已完成编码的编码单元的大小和相邻图像区域的属性信息确定待编码的编码单元的编码模式索引;若已存储与编码模式索引对应的编码模式,则根据存储的编码模式对待编码的编码单元进行编码。
本申请有益效果是:当编码树中节点的划分方式包括二叉树划分方式和/或三叉树划分方式时,说明待编码的CU可能对应有多条划分路径,因此在本次编码过程中,首先建立待编码的CU的编码模式索引,其次判断是否已存储该索引,如果存在该索引,则可以重用该索引对应的编码模式,从而无需编码端根据待编码的CU的相邻图像区域确定编码模式,进而降低了编码复杂度。
可选地,根据编码树确定已完成编码的编码单元的大小,包括:确定编码树的根节点到待编码的编码单元对应的待编码节点的划分路径;对划分路径中每一编码树层级的子节点相对于父节点的位置偏移进行求和,求和得到的位置偏移之和为已完成编码的编码单元的大小;其中,一个子节点相对于一个父节点的位置偏移为:在一个父节点对应的所有子节点对应的所有图像区域中,在一个子节点对应的图像区域被编码之前已经编码的图像区域大小。通过该方法可以有效确定已完成编码的编码单元的大小。
可选地,相邻图像区域包括:待编码的编码单元的左相邻图像区域和待编码的编码单元的上相邻图像区域。
相应的,相邻图像区域的属性信息包括:左相邻图像区域的宽、左相邻图像区域的高和左相邻图像区域对应的左相邻节点的编码树层级;上相邻图像区域的宽、上相邻图像区域的高和上相邻图像区域对应的上相邻节点的编码树层级。
可选地,当待编码的编码单元是待编码节点的父节点对应的所有子节点对应的所有图像区域中第一个编码的图像区域时,左相邻图像区域覆盖待编码的编码单元的左相邻像素,左相邻节点的编码树层级小于待编码节点的编码树层级,且左相邻节点的编码树层级为所有编码树层级小于待编码节点的编码树层级,且对应图像区域包括左相邻像素的所有节点中最大的一个;或者,
当待编码的编码单元不是待编码节点的父节点对应的所有子节点对应的所有图像区域中第一个编码的图像区域时,左相邻图像区域覆盖待编码的编码单元的左相邻像素,左相邻节点的编码树层级小于或者等于待编码节点的编码树层级,且左相邻节点的编码树层级为所有编码树层级小于或者等于待编码节点的编码树层级,且对应图像区域包括左相邻像素的所有节点中最大的一个。
可选地,左相邻图像区域覆盖待编码节点的父节点对应的图像区域的左相邻像素,左相邻节点的编码树层级小于或者等于待编码节点的父节点的编码树层级,且左相邻节点的编码树层级为所有编码树层级小于或者等于待编码节点的父节点的编码树层级,且对应图像区域包括左相邻像素的所有节点中最大的一个。
本申请的有益效果是:通过上述三种可选方式可以有效确定左相邻图像区域。
可选地,若待编码的编码单元不存在左相邻图像区域,则在根据已完成编码的编码单元的大小和相邻图像区域的属性信息确定待编码的编码单元的编码模式索引时,左相邻图像区域的宽、左相邻图像区域的高和左相邻节点的编码树层级均为预设值。
可选地,当待编码的编码单元是待编码节点的父节点对应的所有子节点对应的所有图像区域中第一个编码的图像区域时,上相邻图像区域覆盖待编码的编码单元的上相邻像素,上相邻节点的编码树层级小于待编码节点的编码树层级,且上相邻节点的编码树层级为所有编码树层级小于待编码节点的编码树层级,且对应图像区域包括上相邻像素的所有节点中最大的一个;或者,
当待编码的编码单元不是待编码节点的父节点对应的所有子节点对应的所有图像区域中第一个编码的图像区域时,上相邻图像区域覆盖待编码的编码单元的上相邻像素,上相邻节点的编码树层级小于或者等于待编码节点的编码树层级,且上相邻节点的编码树层级为所有编码树层级小于或者等于待编码节点的编码树层级,且对应图像区域包括上相邻像素的所有节点中最大的一个。
可选地,上相邻图像区域覆盖待编码节点的父节点对应的图像区域的上相邻像素,上相邻节点的编码树层级小于或者等于待编码节点的父节点的编码树层级,且上相邻节点的编码树层级为所有编码树层级小于或者等于待编码节点的父节点的编码树层级,且对应图像区域包括上相邻像素的所有节点中最大的一个。
本申请的有益效果是:通过上述三种可选方式可以有效确定上相邻图像区域。
可选地,若待编码的编码单元不存在上相邻图像区域,则在根据已完成编码的编码单元的大小和相邻图像区域的属性信息确定待编码的编码单元的编码模式索引时,上相邻图像区域的宽、上相邻图像区域的高和上相邻节点的编码树层级均为预设值。
可选地,编码模式索引包括以下信息:已完成编码的编码单元的大小、左相邻图像区域的宽、左相邻图像区域的高和左相邻节点的编码树层级;上相邻图像区域的宽、上相邻图像区域的高和上相邻节点的编码树层级。
可选地,若已存储与编码模式索引对应的编码模式,则根据存储的编码模式对待编码的编码单元进行编码之前,还包括:根据编码模式索引包括的信息判断是否已存储与编码模式索引对应的编码模式。
可选地,根据编码模式索引包括的信息判断是否已存储与编码模式索引对应的编码模式,包括:若编码模式索引与已存储的一个编码模式索引的部分信息匹配成功或者全部信息匹配成功,则判断已存储与编码模式索引对应的编码模式。
即当编码模式索引部分匹配成功或者全部匹配成功时,可以确定已存储与编码模式索引对应的编码模式。从而可以重用该编码模式,进而降低编码复杂度。
可选地,根据编码模式索引包括的信息判断是否已存储与编码模式索引对应的编码模式,包括:若编码模式索引与已存储的一个编码模式索引的全部信息匹配成功,则判断已存储与编码模式索引对应的编码模式;若编码模式索引与已存储的所有编码模式索引均未全部信息匹配成功,则判断编码模式索引与已存储的一个编码模式索引是否部分信息匹配成功;若编码模式索引与已存储的一个编码模式索引的部分信息匹配成功,则判断已存储与编码模式索引对应的编码模式。
即首先对编码模式索引进行全部匹配,当全部匹配失败时,再对编码模式索引进行部分匹配,从而提高重用编码模式的概率,进而降低编码复杂度。
可选地,该方法还包括:若编码模式索引与已存储的所有编码模式索引均未全部信息匹配成功且未部分信息匹配成功,则确定待编码的编码单元的编码模式,使用确定的编码模式对待编码的编码单元进行编码;并存储待编码的编码单元的编码模式索引和待编码的编码单元的编码模式。
可选地,部分信息包括:已完成编码的编码单元的大小、左相邻图像区域的宽、左相邻图像区域的高、上相邻图像区域的宽和上相邻图像区域的高。
下面对图像编码设备进行介绍,其实现原理和技术效果与上述原理和技术效果类似,此处不再赘述。
第二方面,本申请提供一种图像编码设备,包括:确定模块和编码模块。
确定模块,用于根据编码树确定已完成编码的编码单元的大小和待编码的编码单元的相邻图像区域的属性信息;其中,编码树中节点的划分方式包括二叉树划分方式和/或三叉树划分方式;确定模块,还用于根据已完成编码的编码单元的大小和相邻图像区域的属性信息确定待编码的编码单元的编码模式索引;编码模块,用于若已存储与编码模式索引对应的编码模式,则根据存储的编码模式对待编码的编码单元进行编码。
第三方面,本申请提供一种图像编码设备,包括:处理器和存储器;存储器用于存储处理器的执行指令;处理器用于:根据编码树确定已完成编码的编码单元的大小和待编码的编码单元的相邻图像区域的属性信息;其中,编码树中节点的划分方式包括二叉树划分方式和/或三叉树划分方式;根据已完成编码的编码单元的大小和相邻图像区域的属性信息确定待编码的编码单元的编码模式索引;若已存储与编码模式索引对应的编码模式,则根据存储的编码模式对待编码的编码单元进行编码。
第四方面,本申请提供一种图像编码设备,该设备包括经配置以进行以下操作的编码器:
根据编码树确定已完成编码的编码单元的大小和待编码的编码单元的相邻图像区域的属性信息;其中,编码树中节点的划分方式包括二叉树划分方式和/或三叉树划分方式;根据已完成编码的编码单元的大小和相邻图像区域的属性信息确定待编码的编码单元的编码模式索引;若已存储与编码模式索引对应的编码模式,则根据存储的编码模式对待编码的编码单元进行编码。
第五方面,本申请提供一种计算机存储介质,用于储存为上述第二方面、第三方面或第四方面涉及的图像编码设备所用的计算机软件指令,其包含用于执行上述第二方面、第三方面或第四方面所设计的程序。
第六方面,本申请提供一种计算机程序产品,其包含指令,当所述计算机程序被计算机所执行时,该指令使得计算机执行第二方面、第三方面或第四方面中图像编码设备所执行的功能。
本申请提供一种图像编码方法及设备,该方法包括:根据编码树确定已完成编码的编码单元的大小和待编码的编码单元的相邻图像区域的属性信息;其中,编码树中节点的划分方式包括二叉树划分方式和/或三叉树划分方式;根据已完成编码的编码单元的大小和相邻图像区域的属性信息确定待编码的编码单元的编码模式索引;若已存储与编码模式索引对应的编码模式,则根据存储的编码模式对待编码的编码单元进行编码。当编码树中节点的划分方式包括二叉树划分方式和/或三叉树划分方式时,说明待编码的CU可能对应有多条划分路径,因此在本次编码过程中,首先建立待编码的CU的编码模式索引,其次判断是否已存储该索引,如果存在该索引,则可以重用该索引对应的编码模式,从而无需编码端根据待编码的CU的相邻图像区域确定编码模式,进而降低了编码复杂度。
附图说明
图1A是基于四叉树划分方式对图像区域进行划分的示意图;
图1B是基于水平二叉树划分方式对图像区域进行划分的示意图;
图1C是基于竖直二叉树划分方式对图像区域进行划分的示意图;
图1D是基于水平三叉树划分方式对图像区域进行划分的示意图;
图1E是基于竖直三叉树划分方式对图像区域进行划分的示意图;
图2A是基于QT-BT划分方式对图像区域进行划分的示意图;
图2B是QT-BT划分方式对应的编码树的示意图;
图3A至图3I以对节点表示的图像区域进行划分来说明对节点的划分;
图4为本申请一实施例提供的一种图像编码方法的示意图;
图5为本申请一实施例提供的确定左相邻图像区域的方法流程图;
图6为本申请一实施例提供的确定左相邻图像区域的方法流程图;
图7为本申请一实施例提供的确定上相邻图像区域的方法流程图;
图8为本申请一实施例提供的确定上相邻图像区域的方法流程图;
图9为本申请一实施例提供的一种图像编码设备的结构示意图;
图10为本申请另一实施例提供的一种图像编码设备的结构示意图。
具体实施方式
以下,对本申请中的部分专业用语进行解释说明,以便于本领域技术人员理解。
CTU:一幅图像由多个CTU构成,一个CTU通常对应于一个方形图像区域,包括这个图像区域中的亮度像素和/或色度像素;CTU中还包含语法元素,这些语法元素指示如何将CTU划分成至少一个CU,以及解码每个编码单元得到重建图像的方法。
CU:它是编码树的叶节点,通常对应于一个A×B的矩形区域,包含该矩形区域的亮度像素/或色度像素,A为矩形的宽,B为矩形的高,A和B可以相同也可以不同,A和B的取值通常为2的整数次幂,例如256、128、64、32、16、8、4。一个CU可通过解码处理解码得到一个A×B的矩形区域的重建图像。
四叉树:一种树状结构,四叉树中的每个节点可以被划分为四个子节点。按照四叉树的划分方式,可以将CTU递归划分成若干个叶节点(CU)。一个节点对应于一个图像区域,如果节点不被划分,则该节点称为叶节点,它对应的图像区域形成一个CU。如果节点继续被划分,则节点对应的图像区域划分成四个相同大小的图像区域,每个图像区域对应一个节点。图1A是基于四叉树划分方式对图像区域进行划分的示意图,如图1A所示,将节点对应的图像区域划分成四个相同大小的图像区域,划分后的每个图像区域对应于一个节点。
二叉树:一种树状结构,二叉树中的每个节点可以被划分成两个子节点。其中,二叉树划分方式的划分方向可以是水平方向或者是竖直方向。例如:图1B是基于水平二叉树划分方式对图像区域进行划分的示意图,图1C是基于竖直二叉树划分方式对图像区域进行划分的示意图。如图1B所示,将节点对应的图像区域划分成上、下两个相同大小的图像区域,划分后的每个图像区域对应于一个节点。如图1C所示,将节点对应的图像区域划分成左、右两个相同大小的图像区域,划分后的每个图像区域对应于一个节点。
三叉树:一种树状结构,三叉树中的每个节点可以被划分成三个子节点。其中,三叉树划分方式的划分方向可以是水平方向或者是竖直方向。例如:图1D是基于水平三叉树划分方式对图像区域进行划分的示意图,图1E是基于竖直三叉树划分方式对图像区域进行划分的示意图。如图1D所示,将节点对应的图像区域划分成上、中、下三个的图像区域,划分后的每个图像区域对应于一个节点。这三个图像区域的高分别为整个图像区域高的1/4,1/2,1/4。如图1C所示,将节点对应的图像区域划分成左、中、右三个的图像区域,划分后的每个图像区域对应于一个节点。这三个图像区域的宽分别为整个图像区域宽的1/4,1/2,1/4。
QT-BT划分方式:CTU先按照QT划分,QT的叶节点允许继续使用BT划分。即编码树被分为两级,第一级编码树为QT,第二级编码树为BT。
QT-TT划分方式:CTU先按照QT划分,QT的叶节点允许继续使用TT划分。即编码树被分为两级,第一级编码树为QT,第二级编码树为TT。
QT-(BT和/或TT)划分方式:CTU先按照QT划分,QT的叶节点允许继续使用BT或者TT划分,其中BT的节点允许使用BT或TT划分,TT的节点允许使用BT或TT划分。即编码树被分为两级,第一级编码树为QT,第二级编码树为BT和/或TT。
级联编码树:该编码树包括多级编码树。例如:基于QT-BT、QT-TT、QT-(BT和/或TT)划分方式的级联编码树均包括两级编码树。本申请对如何划分编码树的级别不做限制。
非级联编码树:该编码树只包括一级编码树。例如:QT编码树、BT编码树和TT编码树均为非级联编码树。
编码树层级:若编码树为级联编码树(包括N级),则编码树层级分为:第一级编码树的层级、第二级编码树的层级……第N级编码树的层级。以基于QT-BT划分方式的编码树为例:图2A是基于QT-BT划分方式对图像区域进行划分的示意图,图2B是QT-BT划分方式对应的编码树的示意图。结合图2A和图2B进行说明:第一级编码树为QT,第二级编码树为BT。a到m为13个叶节点,每个叶节点对应1个CU;二叉树节点上的1表示竖直划分,0表示水平划分;其中每个节点都具有QT层级和BT层级。比如:a和b的QT层级均为1,BT层级均为2;c、d、e的QT层级均为1,BT层级均为1;f、k、l的QT层级均为2,BT层级均为1;i、j的QT层级均为2,BT层级均为0;g、h的QT层级均为2,BT层级均为2;m的QT层级为1,BT层级为0。若编码树为非级联编码树,则编码树层级即为该编码树的层级。例如:QT编码树中的各个节点均只有一个QT层级。
视频编码:编码端接收到视频之后,对于构成视频的每帧图像,将该图像划分成待编码图像块,按照待编码图像块的顺序进行编码。对于当前待编码图像块,首先通过参考重建图像块对当前待编码图像块进行预测,得到当前待编码图像块的预测信号;用当前待编码图像块的原始信号减去预测信号,得到残差信号。经过预测后,残差信号的幅值远小于原始信号。将残差信号进行变换(可选操作)和量化操作。经过变换量化后,得到量化系数,再通过变长编码、二进制编码等熵编码技术对量化系数做熵编码操作,得到码流。该码流通常包括:当前待编码图像块的划分信息以及编码模式等。进一步地,编码端还需要重建当前待编码图像块,以实现对后续待编码图像块的编码提供参考像素。具体地,在得到当前待编码图像块的量化系数之后,编码端需要对当前待编码图像块的量化系数进行反量化和反变换,得到重建的残差信号,将重建的残差信号与当前待编码图像块对应的预测信号相加,得到当前待编码图像块的重建信号,根据该重建信号得到重建图像块。
基于上述专业用语的介绍,下面提供一种图像编码方法及设备。
具体地,由于QT-BT划分方式、QT-TT划分方式或者QT-(BT和/或TT)划分方式中存在对节点的BT划分或者TT划分,基于此得到的叶节点实际上可以通过其他划分路径得到。即QT-BT划分、QT-TT划分或者QT-(BT和/或TT)划分中的叶节点可以通过多条划分路径得到。所谓叶节点的划分路径是指从编码树的根节点到该叶节点的路径。对于QT-BT编码树、QT-TT编码树和QT-(BT和/或TT)编码树,这里的根节点是指第二级编码树的根节点。
下面通过举例来说明一个叶节点可以通过多条划分路径得到。图3A至图3I为节点划分示意图,为了能够直观的说明问题,图3A至图3I以对节点表示的图像区域进行划分来说明对节点的划分。进一步地,图3A至图3I所提的根节点可以理解为上述QT-BT编码树、QT-TT编码树和QT-(BT和/或TT)编码树中第二级编码树的根节点。具体地,如图3A至图3C所示,叶节点C由一个根节点经过3次划分得到,首先通过水平二叉树划分方式将根节点划分成两个节点0和1,再通过竖直二叉树划分方式将节点0划分成两个节点00和01,再通过竖直二叉树划分方式将节点00划分成两个节点000的001;001节点对应于叶节点C。相应的,节点C的划分路径可记为“HBT0+VBT0+VBT1”或者“HBT+VBT+VBT+001”;HBT和VBT分别表示水平二叉树划分方式和竖直二叉树划分方式,数字0和1表示在每次划分中节点C所属节点的编号。如图3D至图3F所示,节点C的划分路径还可以是“HBT0+VTT1+VBT0”。如图3G至图3I所示,节点C的划分路径还可以是“VBT0+HBT0+VBT1”,其中,VTT表示竖直三叉树划分方式。综上,图3A至图3I示出了节点C的三条划分路径。现有技术中,针对这三种划分路径,都需要独立的确定节点C的编码模式,即需要根据节点C对应的图像区域的相邻图像区域的预测模式、变换模式等确定节点C的编码模式,从而存在编码复杂度较高的问题。
上述技术问题不限于上述的QT-BT编码树、QT-TT编码树和QT-(BT和/或TT)编码树,实际上,只要编码树中节点的划分方式包括二叉树划分方式和/或三叉树划分方式,则均存在同一个叶节点通过不同的划分路径得到的问题,例如:BT编码树存在该问题,比如:可以将图3A至图3C理解为对一个BT编码树的根节点的划分,可以将图3D至图3F理解为对一个BT和/或TT编码树的根节点的划分,可以将图3G至图3I理解为对一个BT编码树的根节点的划分。基于此,上述划分方式也都存在编码复杂度较高的问题。
为了解决上述技术问题,本申请提供一种图像编码方法及设备。本申请的主旨思想是:基于待编码的CU对应的待编码节点的划分路径确定待编码的CU的编码模式索引,若待编码的CU的编码模式索引已被存储,则可以重用该索引对应的编码模式,直接使用该编码模式对待编码的CU编码,从而降低编码复杂度。
图4为本申请一实施例提供的一种图像编码方法的示意图,如图4所示,该方法包括如下流程:
步骤S401:根据编码树确定已完成编码的CU的大小和待编码的CU的相邻图像区域的属性信息;其中,编码树中节点的划分方式包括二叉树划分方式和/或三叉树划分方式;
步骤S402:根据已完成编码的CU的大小和相邻图像区域的属性信息确定待编码的CU的编码模式索引;
步骤S403:若已存储与编码模式索引对应的编码模式,则根据存储的编码模式对待编码的CU进行编码。
针对步骤S401进行详细说明:编码树为级联编码树中的其中一级编码树或者编码树为非级联编码树。例如:该编码树可以是QT-BT编码树中的第二级编码树,可以是QT-(BT和/或TT)编码树中的第二级编码树,或者该编码树可以是一个BT编码树。只要编码树节点的划分方式包括二叉树划分方式和/或三叉树划分方式即可,本申请对编码树的形式不做限制。本申请提供的技术方案重点基于编码树为级联编码树中的其中一级编码树或者编码树为非级联编码树这两种情况。
上述编码树中节点的划分方式包括二叉树划分方式和/或三叉树划分方式是指只要该编码树中存在采用二叉树划分方式的节点,或者存在采用三叉树划分方式的节点,或者既存在二叉树划分方式的节点又存在三叉树划分方式的节点即可。因为只有编码树中节点的划分方式包括二叉树划分方式和/或三叉树划分方式才能使得CU具有除本次划分路径的其他划分路径。
已完成编码的CU的大小是指已完成编码的CU的图像区域大小之和。其中,图像区域大小可以用该区域覆盖的4×4图像块的数目来表示,也可以用该区域包括的像素数目来表示,本申请对此不做限制。根据编码树确定已完成编码的CU的大小,包括如下两种可选方式,但不限于这两种可选方式。
可选方式一:可以对待编码的CU对应的待编码节点的划分路径中已完成编码的CU进行标记,将所有带有标记的CU的图像区域大小求和,得到已完成编码的CU的大小。待编码节点的划分路径为从编码树的根节点到该待编码节点的划分路径。
可选方式二:确定编码树的根节点到待编码的CU对应的待编码节点的划分路径;对划分路径中每一编码树层级的子节点相对于父节点的位置偏移进行求和,求和得到的位置偏移之和即为已完成编码的编码单元的大小;其中,一个子节点相对于一个父节点的位置偏移为:在一个父节点对应的多个子节点对应的多个图像区域中,在一个子节点对应的图像区域被编码之前已经编码的图像区域大小。需要说明的是,这里的“求和”可以是直接相加求和,也可以是加权求和。本申请对此不做限制。
例如:在待编码节点的划分路径中确定第n层节点C(n)相对于其父节点C(n-1)的位置偏移O(n),其中n=1,2……N,N为待编码节点的编码树层级。第N层节点C(N)即为待编码节点。其中C(n)满足三个条件:(1)C(n)为待编码节点的划分路径中的一个节点;(2)C(n)的编码树层级为n;(3)C(n)对应的图像区域覆盖待编码的CU。例如,如图3A至图3C所示,节点0和节点00分别为节点001的划分路径上的编码树层级为1的节点和编码树层级为2的节点。确定第n层节点C(n)相对于其父节点C(n-1)的位置偏移O(n)之后,将各编码树层级的位置偏移O(n)相加得到已完成编码的CU的大小。其中,位置偏移O(n)等于节点C(n-1)对应的图像区域的宽、该图像区域的高和偏移比例值的乘积;其中,宽和高的乘积即为C(n-1)对应的图像区域的面积。当节点C(n)由节点C(n-1)经过水平二叉树划分方式或者竖直二叉树划分方式得到的时,如果节点C(n)对应的图像区域为父节点C(n-1)对应的所有子节点对应的所有图像区域中第一个编码的图像区域(即子节点C(n)的编号为0),则对应的偏移比例值为0;如果节点C(n)对应的图像区域为父节点C(n-1)对应的所有子节点对应的所有图像区域中第二个编码的图像区域(即子节点C(n)的编号为1),则对应的偏移比例值为1/2。当节点C(n)由节点C(n-1)经过水平三叉树划分方式或者竖直三叉树划分方式得到的时,如果节点C(n)对应的图像区域为父节点C(n-1)对应的所有子节点对应的所有图像区域中第一个编码的图像区域(即子节点C(n)的编号为0),则对应的偏移比例值为0;如果节点C(n)对应的图像区域为父节点C(n-1)对应的所有子节点对应的所有图像区域中第二个编码的图像区域(即子节点C(n)的编号为1),则对应的偏移比例值为1/4,如果节点C(n)对应的图像区域为父节点C(n-1)对应的所有子节点对应的所有图像区域中第三个编码的图像区域(即子节点C(n)的编号为2),则对应的偏移比例值为3/4。
需要说明的是,为了便于理解,本申请中涉及的对节点的编码均是指对节点对应的图像区域的编码。第M个编码的子节点是指其父节点对应的所有子节点对应的所有图像区域中第M个编码的图像区域对应的子节点。M为大于或者等于1的正整数。
例如:如图2A和图2B所示,叶节点h的根节点为节点f+g+h,根据编码树确定已完成编码的CU的大小的过程为:确定节点h相对于其父节点g+h的位置偏移,由于h是其父节点的第二个编码的子节点,因此节点h相对于其父节点g+h的位置偏移为父节点g+h对应的图像区域的面积与偏移比例值1/2的乘积;接着确定节点g+h相对于其父节点f+g+h的位置偏移,由于g+h是其父节点f+g+h的第二个编码的子节点,因此节点g+h相对于其父节点f+g+h的位置偏移为父节点f+g+h对应的图像区域的面积与偏移比例值1/2的乘积。最后将这两个位置偏移求和得到已完成编码的CU的大小。上述f+g+h节点即为包含节点f、g和h的节点。
例如:如图2A和图2B所示,叶节点g的根节点为节点f+g+h,在该根节点中确定已完成编码的CU的大小的过程为:确定叶节点g相对于其父节点g+h的位置偏移,由于g是其父节点的第一个编码的子节点,因此节点h相对于其父节点g+h的位置偏移为父节点g+h对应的图像区域的面积与偏移比例值0的乘积;接着确定节点g+h相对于其父节点f+g+h的位置偏移,由于g+h是其父节点f+g+h的第二个编码的子节点,因此节点g+h相对于其父节点f+g+h的位置偏移为父节点f+g+h对应的图像区域的面积与偏移比例值1/2的乘积。最后将这两个位置偏移求和得到已完成编码的CU的大小。
需要说明的是,编码树的编码顺序是从上至下,从左至右。
可选地,所述相邻图像区域包括:待编码的CU的左相邻图像区域和待编码的CU的上相邻图像区域。或者,所述相邻图像区域包括:待编码的CU的左相邻图像区域。或者,所述相邻图像区域包括:待编码的CU的上相邻图像区域。本申请对此不做限制。
可选地,若相邻图像区域包括:待编码的CU的左相邻图像区域和上相邻图像区域。则相邻图像区域的属性信息包括:左相邻图像区域的宽、高和左相邻图像区域对应的左相邻节点的编码树层级;上相邻图像区域的宽、高和上相邻图像区域对应的上相邻节点的编码树层级。其中,左相邻节点为左相邻图像区域对应的节点;上相邻节点为上相邻图像区域对应的节点。下面不再赘述。
可选地,若相邻图像区域包括:待编码的CU的左相邻图像区域和上相邻图像区域。则该相邻图像区域的属性信息包括:左相邻图像区域的宽、高和左相邻节点的编码树层级中的至少一项,以及上相邻图像区域的宽、高和上相邻节点的编码树层级中的至少一项。
可选地,若相邻图像区域包括:待编码的CU的左相邻图像区域和上相邻图像区域。则该相邻图像区域的属性信息包括:左相邻图像区域的预测模式、变换模式、运动矢量中的至少一项,以及上相邻图像区域的预测模式、变换模式、运动矢量中的至少一项。
其中,相邻图像区域指的是与待编码的CU在空域上相邻的图像区域。在本申请中,相邻图像区域的属性信息不限于上述内容,本申请对此不做限制。
需要说明的是,若待编码的CU不存在左相邻图像区域,则在根据已完成编码的CU的大小和相邻图像区域的属性信息确定待编码的CU的编码模式索引时,左相邻图像区域的宽、左相邻图像区域的高和左相邻节点的编码树层级均为预设值。可选地,将左相邻图像区域的宽、高和左相邻节点的编码树层级分别设置为编码树的根节点对应的图像区域的宽、高和根节点的编码树层级。其中,根节点的编码树层级为0。这里的编码树是指级联编码树中的其中一级编码树或者该编码树为非级联编码树,下面提到的编码树均是指这两种情况,下面不再赘述。基于此,编码树层级是指节点在所属级的编码树中的层级。
下面对左相邻图像区域进行定义,其中,左相邻图像区域是根据待编码的CU的左相邻像素确定的,也可以是根据待编码节点的父节点对应的图像区域的左相邻像素确定的。
具体地,第一种情况:(1)当待编码的CU是待编码节点的父节点对应的所有子节点对应的多个图像区域中第一个编码的图像区域时,左相邻图像区域覆盖待编码的CU的左相邻像素,左相邻节点的编码树层级小于待编码节点的编码树层级,且左相邻节点的编码树层级为所有编码树层级小于待编码节点的编码树层级,且对应图像区域包括左相邻像素的所有节点中最大的一个。
(2)当待编码的CU不是待编码节点的父节点对应的所有子节点对应的多个图像区域中第一个编码的图像区域时,左相邻图像区域覆盖待编码的CU的左相邻像素,左相邻节点的编码树层级小于或者等于待编码节点的编码树层级,且左相邻节点的编码树层级为所有编码树层级小于或者等于待编码节点的编码树层级,且对应图像区域包括左相邻像素的所有节点中最大的一个。
例如:如图2A和图2B所示,确定叶节点g对应的图像区域的左相邻图像区域过程为:假设叶节点g对应的图像区域的左上角像素坐标为(x,y),则左相邻像素可以定义为(x-1,y),或者为(x-2,y),或者为(x-1,y+H(g)-1),其中,在本申请中坐标系中x轴的正方向为原点的右方,y轴的正方向为原点的下方,下面不再赘述。H(g)为叶节点g的高,只要左相邻像素在叶节点g对应的图像区域的左侧即可,本申请对左相邻像素的坐标不做限制。假设左相邻像素坐标为(x-1,y),由于叶节点g是其父节点g+h的第一个编码的节点,因此必须满足上述第一种情况(1)中的条件,首先编码树层级小于叶节点g的编码树层级,且对应图像区域包括该左相邻像素的节点为:节点f,以及节点f+g+h,其中叶节点g的编码树层级为2,节点f的编码树层级为1,节点f+g+h的编码树层级为0。其次,节点f是节点f,以及节点f+g+h中编码树层级最大的一个,因此节点f对应的图像区域为节点g的左相邻图像区域。
再例如:如图2A和图2B所示,确定叶节点h对应的图像区域的左相邻图像区域过程为:由于叶节点h是其父节点g+h的第二个编码的节点,因此必须满足上述第一种情况(2)中的条件,首先编码树层级小于或者等于叶节点h的编码树层级,且对应图像区域包括该左相邻像素的节点为:节点f,以及节点f+g+h,其中叶节点h的编码树层级为2,节点f的编码树层级为1,节点f+g+h的编码树层级为0。其次,节点f是节点f,以及节点f+g+h中编码树层级最大的一个,因此节点f对应的图像区域为节点h的左相邻图像区域。
再例如:如图3A至图3C所示,确定叶节点001对应的图像区域的左相邻图像区域过程为:根据划分路径划分产生的节点为节点0、节点1(第一次划分产生)、节点00和节点01(第二次划分产生)、节点000和节点001(第三次划分产生);节点001为其父节点00的第二个编码的节点,节点001的编码树层级为3,节点0、节点00和节点000对应的图像区域均覆盖节点001对应的图像区域的左相邻像素,且编码树层级分别为1、2和3,因此,针对第一种情况(2)。节点0、节点00和节点000均满足编码树层级小于或者等于节点001的编码树层级,且对应图像区域包括该左相邻像素。其中,节点000是节点0、节点00和节点000中编码树层级最大的一个,所以节点000对应的图像区域为节点001对应的图像区域的左相邻图像区域。
上面介绍了左相邻图像区域需要满足的条件,下面对如何确定左相邻图像区域进行说明:
方式一:图5为本申请一实施例提供的确定左相邻图像区域的方法流程图,如图5所示,该方法包括:
步骤S501:若待编码节点为其父节点的第一个编码的子节点,则按照从编码树层级0到编码树层级N-1的顺序,针对划分路径上的每一编码树层级,判断在编码树层级中是否存在对应图像区域包括左相邻像素的节点,即每一编码树层级的节点中是否存在对应图像区域包括左相邻像素的节点;若待编码节点不是其父节点的第一个编码的子节点,则按照从编码树层级0到编码树层级N的顺序,针对划分路径上的每一编码树层级,判断在编码树层级中是否存在对应图像区域包括左相邻像素的节点,其中,N为待编码节点对应的编码树层级;
步骤S502:若在编码树层级存在对应图像区域包括左相邻像素的节点,则将该节点对应的图像区域作为待编码的CU的左相邻图像区域。
例如:如图2A和图2B所示,确定叶节点g对应图像区域的左相邻图像区域的方法为:确定叶节点g的编码树层级为2,且叶节点g为其父节点的第一个编码的子节点。基于此,首先确定编码树层级0的节点f+g+h对应的图像区域包括左相邻像素,可以暂时将该节点f+g+h对应的图像区域作为叶节点g对应图像区域的左相邻图像区域;其次确定编码树层级1的节点f对应的图像区域包括左相邻像素,可以将该节点f对应的图像区域作为叶节点g对应图像区域的左相邻图像区域。
再例如:如图2A和图2B所示,确定叶节点h对应图像区域的左相邻图像区域的方法为:确定叶节点h的编码树层级为2,且叶节点h为其父节点的第二个编码的子节点。基于此,首先确定编码树层级0的节点f+g+h对应的图像区域包括左相邻像素,可以暂时将该节点f+g+h对应的图像区域作为叶节点h对应图像区域的左相邻图像区域;其次确定编码树层级1的节点f对应的图像区域包括左相邻像素,可以暂时将该节点f对应的图像区域作为叶节点h对应图像区域的左相邻图像区域。最后确定不存在编码树层级2的节点对应的图像区域包括左相邻像素,因此,最终节点f对应的图像区域作为叶节点h对应图像区域的左相邻图像区域。
可选地,判断在编码树层级中是否存在对应图像区域包括左相邻像素的节点,包括:对编码树层级中的所有节点对应的图像区域判断是否存在包括左相邻像素的图像区域。
或者,
对编码树层级中,在待编码节点所属的节点之前编码的节点对应的图像区域判断是否存在包括左相邻像素的图像区域。
或者,
在编码树层级中,按照编码顺序判断是否存在待编码节点所属的节点的前一个节点对应的图像区域是否包括左相邻像素。
例如:编码树层级为1中待编码节点所属的节点是指覆盖待编码节点,且编码树层级为1的节点。
方式二:确定对应图像区域包括待编码的CU的左相邻像素,且编码树层级最大的节点,确定从根节点到该节点的划分路径。如果待编码节点为其父节点的第一个编码的子节点(即编号为0),并且在该划分路径上存在D(N-1),则将D(N-1)对应的图像区域作为左相邻图像区域,如果不存在D(N-1),则继续查找是否存在D(N-2),直到找到左相邻图像区域,则停止,或者直到D(0)也未找到左相邻图像区域,则停止。其中,N为待编码节点的编码树层级,D(N-1)是指对应图像区域包括左相邻像素的节点,且该节点的编码树层级为N-1。如果待编码节点不是其父节点的第一个编码的子节点(即编号大于0),并且D(N)存在,则将D(N)对应的图像区域作为左相邻图像区域,如果不存在D(N),则继续查找是否存在D(N-1),直到找到左相邻图像区域,则停止,或者直到D(0)也未找到左相邻图像区域,则停止。其中,N为待编码节点的编码树层级,D(N)是指对应图像区域包括左相邻像素的节点,且该节点的编码树层级为N。
其中,在本申请中节点编号是针对其父节点下的所有子节点来讲的,假设节点C(n)的父节点C(n-1)包括M个子节点,则这M个子节点按照从左至右、从上至下的顺序,其对应的编号的顺序由小至大排列,通常第一个编码的子节点的编号为0,第二个编码的子节点的编号为1,第三个编码的子节点编号为2。
例如:如图2A和图2B所示,确定叶节点g对应图像区域的左相邻图像区域的方法为:确定对应图像区域包括左相邻像素,且编码树层级最大的节点为f,确定从根节点f+g+h到该节点f的划分路径,确定叶节点g的编码树层级为2,且叶节点g为其父节点的第一个编码的子节点。则查找是否存在D(1),确定节点f即为D(1)。基于此,可以不用再查找包括左相邻像素的图像区域,最终将节点f对应的图像区域作为叶节点g对应图像区域的左相邻图像区域。
再例如:如图2A和图2B所示,确定叶节点h对应图像区域的左相邻图像区域的方法为:确定对应图像区域包括左相邻像素,且编码树层级最大的节点为f,确定从根节点f+g+h到该节点f的划分路径,确定叶节点h的编码树层级为2,且叶节点h为其父节点的第二个编码的子节点。则查找是否存在D(2),确定不存在D(2)。接着继续查找是否存在D(1)。确定节点f即为D(1)。基于此,可以不用再查找包括左相邻像素的图像区域,最终将节点f对应的图像区域作为叶节点h对应图像区域的左相邻图像区域。
综上,上述左相邻图像区域是根据待编码的CU的左相邻像素确定的,通过上述方法可以有效确定待编码的CU的左相邻图像区域。
下面介绍如何根据待编码的CU的父节点对应图像区域的左相邻像素确定左相邻图像区域。
具体地,第二种情况:左相邻图像区域覆盖待编码节点的父节点对应的图像区域的左相邻像素,左相邻节点的编码树层级小于或者等于待编码节点的父节点的编码树层级,且左相邻节点的编码树层级为所有编码树层级小于或者等于待编码节点的父节点的编码树层级,且对应图像区域包括左相邻像素的所有节点中最大的一个。
例如:如图2A和图2B所示,确定叶节点g对应图像区域的左相邻图像区域过程为:叶节点g的父节点为g+h,假设父节点g+h对应图像区域的左上角像素坐标为(x,y),则左相邻像素可以定义为(x-1,y),或者为(x-2,y),或者为(x-1,y+H(g+h)-1),其中H(g+h)为父节点g+h对应图像区域的高,只要左相邻像素在父节点g+h对应图像区域的左侧即可,本申请对左相邻像素的坐标不做限制。假设左相邻像素坐标为(x-1,y)。按照第二种情况中的条件,首先编码树层级小于或者等于父节点g+h的编码树层级,且对应图像区域包括所述左相邻像素的节点为:节点f,以及节点f+g+h,其中g+h的编码树层级为1,节点f的编码树层级为1,节点f+g+h的编码树层级为0。其次节点f是节点f和节点f+g+h中编码树层级最大的一个,因此节点f对应的图像区域为叶节点g对应的图像区域的左相邻图像区域。
上面介绍了左相邻图像区域需要满足的条件,下面对如何确定左相邻图像区域进行说明:
方式一:图6为本申请一实施例提供的确定左相邻图像区域的方法流程图,如图6所示,该方法包括:
步骤S601:按照从编码树层级0到编码树层级N-1的顺序,针对每一编码树层级,判断在编码树层级中是否存在对应图像区域包括左相邻像素的节点;N为待编码节点的编码树层级;
步骤S602:若在编码树层级存在对应图像区域包括左相邻像素的节点,则将该节点对应的图像区域作为左相邻图像区域。
例如:如图2A和图2B所示,确定叶节点g对应的图像区域的左相邻图像区域的方法为:确定叶节点g的编码树层级为2。基于此,确定编码树层级0的节点f+g+h对应的图像区域包括左相邻像素,可以暂时将该节点f+g+h对应的图像区域作为叶节点g对应图像区域的左相邻图像区域。接着确定编码树层级2的节点f对应的图像区域包括左相邻像素,最终可以将该节点f对应的图像区域作为叶节点g对应图像区域的左相邻图像区域。
可选地,判断在编码树层级中是否存在对应图像区域包括左相邻像素的节点,包括:对编码树层级中的所有节点对应的图像区域判断是否存在包括左相邻像素的图像区域。
或者,
对编码树层级中,在待编码节点的父节点所属的节点之前编码的节点对应的图像区域判断是否存在包括左相邻像素的图像区域。
或者,
在编码树层级中,按照编码顺序判断是否存在待编码节点的父节点所属的节点的前一个节点对应的图像区域是否包括左相邻像素。
例如:针对编码树层级1,待编码节点的父节点所属的节点是指覆盖待编码的CU的父节点,且编码树层级为1的节点。
方式二:在编码树中确定对应图像区域包括左相邻像素,且编码树层级最大的节点,确定从根节点到该节点的划分路径。首先在该划分路径上判断是否存在D(N-1),如果存在D(N-1),则将D(N-1)对应的图像区域作为左相邻图像区域,否则,则继续查找是否存在D(N-2),直到找到左相邻图像区域,则停止,或者直到D(0)也未找到左相邻图像区域,则停止。其中,N为待编码节点的编码树层级,D(N-1)是指对应图像区域包括左相邻像素的节点,且该节点的编码树层级为N-1。
例如:如图2A和图2B所示,确定叶节点g对应图像区域的左相邻图像区域的方法为:确定对应图像区域包括左相邻像素,且编码树层级最大的节点为f,确定从根节点f+g+h到该节点f的划分路径,确定叶节点g的编码树层级为2。则查找是否存在D(1),确定节点f即为D(1)。基于此,可以不用再查找包括左相邻像素的图像区域,最终将节点f对应的图像区域作为叶节点g对应图像区域的左相邻图像区域。
综上,上述左相邻图像区域是根据待编码节点的父节点对应图像区域的左相邻像素确定的,通过上述方法可以有效确定待编码的CU的左相邻图像区域。
下面对上相邻图像区域进行定义,其中,上相邻图像区域是根据待编码的CU的上相邻像素确定的,也可以是根据待编码节点的父节点对应的图像区域的上相邻像素确定的。
具体地,第一种情况:当待编码的CU是待编码节点的父节点对应的所有子节点对应的多个图像区域中第一个编码的图像区域时,上相邻图像区域覆盖待编码的CU的上相邻像素,上相邻节点的编码树层级小于待编码节点的编码树层级,且上相邻节点的编码树层级为所有编码树层级小于待编码节点的编码树层级,且对应图像区域包括上相邻像素的所有节点中最大的一个。
(2)当待编码的CU不是待编码节点的父节点对应的所有子节点对应的多个图像区域中第一个编码的图像区域时,上相邻图像区域覆盖待编码的CU的上相邻像素,上相邻节点的编码树层级小于或者等于待编码节点的编码树层级,且上相邻节点的编码树层级为所有编码树层级小于或者等于待编码节点的编码树层级,且对应图像区域包括上相邻像素的所有节点中最大的一个。
例如:如图2A和图2B所示,确定叶节点h对应图像区域的上相邻图像区域过程为:假设叶节点h对应图像区域的左上角像素坐标为(x,y),则上相邻像素坐标为;(x,y-1)或(x,y-2)或(x+W(g)-1,y-1),W(g)为叶节点h对应图像区域的宽。只要上相邻像素在叶节点h对应图像区域上侧即可,本申请对上相邻像素的坐标不做限制。假设上相邻像素坐标为(x,y-1),由于叶节点h是其父节点g+h的第二个编码的节点,因此必须满足上述第一种情况(2)中的条件,首先,编码树层级小于或者等于叶节点h的编码树层级,且对应图像区域包括上相邻像素的节点为:节点g以及节点f+g+h,其中叶节点h的编码树层级为2,节点g的编码树层级为2,节点f+g+h的编码树层级为0。其次,节点g是节点g以及节点f+g+h中编码树层级最大的一个,因此节点g对应的图像区域为节点h对应图像区域的上相邻图像区域。
上面介绍了上相邻图像区域需要满足的条件,下面对如何确定上相邻图像区域进行说明:
方式一:图7为本申请一实施例提供的确定上相邻图像区域的方法流程图,如图7所示,该方法包括:
步骤S701:若待编码节点为其父节点的第一个编码的子节点,则按照从编码树层级0到编码树层级N-1的顺序,针对每一编码树层级,判断在编码树层级中是否存在对应图像区域包括上相邻像素的节点;若待编码节点不是其父节点的第一个编码的子节点,则按照从编码树层级0到编码树层级N的顺序,针对每一编码树层级,判断在编码树层级中是否存在对应图像区域包括上相邻像素的图像区域,其中,N为待编码节点对应的编码树层级;
步骤S702:若在编码树层级存在对应图像区域包括上相邻像素的节点,则将该节点对应的图像区域作为上相邻图像区域。
例如:如图2A和图2B所示,确定叶节点h对应图像区域的上相邻图像区域的方法为:确定叶节点h的编码树层级为2,且叶节点h为其父节点的第二个编码的子节点。基于此,首先确定编码树层级0的节点f+g+h对应的图像区域包括上相邻像素,可以暂时将该节点f+g+h对应的图像区域作为叶节点h的上相邻图像区域;其次确定不存在编码树层级1的节点对应的图像区域包括上相邻像素。最后确定存在编码树层级2的节点g对应的图像区域包括上相邻像素,因此,最终节点g对应的图像区域作为叶节点h对应图像区域的上相邻图像区域。
方式二:在编码树中确定对应图像区域包括上相邻像素,且编码树层级最大的节点,确定从根节点到该节点的划分路径。如果待编码节点为其父节点的第一个编码的子节点(即编号为0),并且在该划分路径上存在D(N-1),则将D(N-1)对应图像区域作为上相邻图像区域,如果不存在D(N-1),则继续查找是否存在D(N-2),直到找到上相邻图像区域,则停止,或者直到D(0)也未找到上相邻图像区域,则停止。其中,N为待编码节点的编码树层级,D(N-1)是指对应图像区域包括上相邻像素的节点,且该节点的编码树层级为N-1。如果待编码节点不是其父节点的第一个编码的子节点(即编号大于0),并且D(N)存在,则将D(N)对应图像区域作为上相邻图像区域,如果不存在D(N),则继续查找是否存在D(N-1),直到找到上相邻图像区域,则停止,或者直到D(0)也未找到上相邻图像区域,则停止。其中,N为待编码节点的编码树层级,D(N)是指对应图像区域包括上相邻像素的节点,且该节点的编码树层级为N。
其中,在本申请中节点编号是针对其父节点下的所有子节点来讲的,假设节点C(n)的父节点C(n-1)包括M个子节点,则这M个子节点按照从左至右、从上至下的顺序,其对应的编号的顺序由小至大排列,通常第一个编码的子节点的编号为0,第二个编码的子节点的编号为1,第三个编码的子节点编号为2。
例如:如图2A和图2B所示,确定叶节点h对应图像区域的上相邻图像区域的方法为:确定对应图像区域包括上相邻像素,且编码树层级最大的节点为g,确定从根节点f+g+h到该节点g的划分路径,确定叶节点h的编码树层级为2,且叶节点h为其父节点的第二个编码的子节点。则查找是否存在D(2),确定存在D(2)。可以不用再查找包括上相邻像素的图像区域,最终将节点g对应的图像区域作为叶节点h对应图像区域的上相邻图像区域。
综上,上述上相邻图像区域是根据待编码的CU的上相邻像素确定的,通过上述方法可以有效确定待编码的CU的左相邻图像区域。
下面介绍如何根据待编码节点的父节点对应图像区域的上相邻像素确定上相邻图像区域。
具体地,第二种情况:上相邻图像区域覆盖待编码节点的父节点对应的图像区域的上相邻像素,上相邻节点的编码树层级小于或者等于待编码节点的父节点的编码树层级,且上相邻节点的编码树层级为所有编码树层级小于或者等于待编码节点的父节点的编码树层级,且对应图像区域包括所述上相邻像素的所有节点中最大的一个。
上面介绍了上相邻图像区域需要满足的条件,下面对如何确定上相邻图像区域进行说明:
方式一:图8为本申请一实施例提供的确定上相邻图像区域的方法流程图,如图8所示,该方法包括:
步骤S801:按照从编码树层级0到编码树层级N-1的顺序,针对每一编码树层级,判断在编码树层级中是否存在对应图像区域包括上相邻像素的节点;N为待编码的CU的编码树层级;
步骤S802:若在编码树层级存在对应图像区域包括上相邻像素的图像区域,则将包括上相邻像素的图像区域作为上相邻图像区域。
方式二:确定对应图像区域包括上相邻像素,且编码树层级最大的节点,确定从根节点到该节点的划分路径。首先在该划分路径上判断是否存在D(N-1),如果存在D(N-1),则将D(N-1)对应图像区域作为上相邻图像区域,否则,则继续查找是否存在D(N-2),直到找到上相邻图像区域,则停止,或者直到D(0)也未找到上相邻图像区域,则停止。其中,N为待编码节点的编码树层级,D(N-1)是指对应图像区域包括上相邻像素的节点,且该节点的编码树层级为N-1。
综上,上述上相邻图像区域是根据待编码节点的父节点对应图像区域的上相邻像素确定的,通过上述方法可以有效确定待编码的CU的上相邻图像区域。
可选地,若待编码的CU不存在上相邻图像区域,则在根据已完成编码的CU的大小和相邻图像区域的属性信息确定待编码的CU的编码模式索引时,上相邻图像区域的宽、上相邻图像区域的高和上相邻节点的编码树层级均为预设值。
需要说明的是,本申请不限制确定左相邻图像区域以及上相邻图像区域的先后顺序,可以并行确定左相邻图像区域以及上相邻图像区域,或按照划分路径对节点进行分析时,同时确定一个节点对应的图像区域是否为左相邻图像区域、是否为上相邻图像区域。
针对步骤S402进行详细说明:编码模式索引包括以下信息:已完成编码的CU的大小、左相邻图像区域的宽、左相邻图像区域的高和左相邻节点的编码树层级;上相邻图像区域的宽、上相邻图像区域的高和上相邻节点的编码树层级。
其中,编码模式索引可以被看作7维索引,7维分别包括:已完成编码的CU的大小、左相邻图像区域的宽、高和左相邻节点的编码树层级;上相邻图像区域的宽、高和上相邻节点的编码树层级。或者,编码模式索引可以被看作3维索引,3维分别包括:已完成编码的CU的大小、上相邻图像区域的属性信息和左相邻图像区域的属性信息。或者,编码模式索引可以被看作包含N个比特的一维索引,具体见表1。
表1
可选地,在步骤S403之前还包括:根据编码模式索引包括的信息判断是否已存储与编码模式索引对应的编码模式。
其中,根据编码模式索引包括的信息判断是否已存储与编码模式索引对应的编码模式具体包括如下两种可选方式:
可选方式一:若编码模式索引与已存储的一个编码模式索引的部分信息匹配成功或者全部信息匹配成功,则判断已存储与编码模式索引对应的编码模式。
可选地,当编码模式索引与已存储的一个编码模式索引的全部信息匹配成功时,才根据存储的编码模式对待编码的CU进行编码,基于此,当编码模式索引的全部信息未匹配成功,时,则判断未存储与编码模式索引对应的编码模式。进一步地,使用确定的编码模式对待编码的编码单元进行编码,并存储待编码的CU的编码模式索引和待编码的CU的编码模式。
可选地,当编码模式索引与已存储的一个编码模式索引的全部或者部分信息匹配成功时,才根据存储的编码模式对待编码的CU进行编码,基于此,当编码模式索引的全部信息未匹配成功且部分信息未匹配成功时,则判断未存储与编码模式索引对应的编码模式。进一步地,使用确定的编码模式对待编码的编码单元进行编码,并存储待编码的CU的编码模式索引和待编码的CU的编码模式。
可选方式二,若编码模式索引与已存储的一个编码模式索引的全部信息匹配成功,则判断已存储与编码模式索引对应的编码模式;若编码模式索引与已存储的所有编码模式索引均未全部信息匹配成功,则判断编码模式索引与已存储的一个编码模式索引是否部分信息匹配成功;若编码模式索引与已存储的一个编码模式索引的部分信息匹配成功,则判断已存储与编码模式索引对应的编码模式。
可选地,若编码模式索引与已存储的所有编码模式索引均未全部信息匹配成功且未部分信息匹配成功,则判断未存储与编码模式索引对应的编码模式。进一步地,使用确定的编码模式对待编码的编码单元进行编码,并存储待编码的CU的编码模式索引和待编码的CU的编码模式。
具体地,所谓全部信息匹配成功是指如果两个索引中的已完成编码的CU的大小、上相邻节点的编码树层级、上相邻图像区域的高、上相邻图像区域的宽、左相邻节点的编码树层级、左相邻图像区域的高、左相邻图像区域的宽这七项信息完全相同,则认为两个索引全部匹配成功。如果两个索引中上述N项信息匹配成功,N为大于或者等于1,且小于7的正整数,则认为两个索引部分匹配。例如N为5,可选地,部分信息可以包括:所述已完成编码的编码单元的大小、左相邻图像区域的宽、左相邻图像区域的高、上相邻图像区域的宽和上相邻图像区域的高。
可选地,根据存储的编码模式对待编码的CU进行编码,包括:将编码模式索引对应的编码模式作为待编码的CU的编码模式,或者,在节点的率失真优化编码处理过程中,跳过尝试编码模式索引对应的编码模式以外的编码模式,或者跳过索引对应的编码模式的部分信息以外的编码模式。例如:将划分路径P1下CU经过率失真优化决策得到的部分编码模式直接设置为划分路径P2下CU编码时的这部分编码模式,而不需要进行决策,例如当在划分路径P1下决策得到某个预测工具为关闭状态时编码效率较高,则在划分路径P2下此预测工具相应设置为关闭更好;或者,可以根据划分路径P1下得到的这部分编码模式,在划分路径P2下CU的率失真优化处理中排除一些编码模式的尝试,例如P1下决策得到了帧内预测方向,则P2下只尝试此帧内预测方向及相近的帧内预测方向,跳过尝试其它帧内预测方向。
上述编码模式包括预测模式以及变换模式等,例如:预测模式包括预测模式的开关、参数等,变换模式包括变换模式的开关、参数等。具体如下:
帧间预测方向参数,用于指示前向预测、后向预测或者双向预测。
变换模式参数,用于指示多种对残差的变换模式(如离散余弦变换(DiscreteCosine Transform,DCT)、(离散正弦变换Discrete Cosine Transform,DST)等)中的一种;
第二级变换模式参数,用于指示多种对残差的变换系数的变换模式中的一种;
位置相关的帧内预测组合(Position Dependent Intra PredictionCombination,PDPC)开关,用于指示CU的帧内预测是否使用位置相关的帧内预测组合方法;
解码端运动矢量导出方法的参数,用于指示CU的帧间预测模式是否采用解码端运动矢量导出,以及使用哪一种解码端运动矢量导出方法导出;
自适应运动矢量精度索引,用于指示CU的帧间预测中运动矢量的精度为1/4像素精度、整像素精度还是4像素精度;
亮度补偿预测开关,用于指示CU的帧间预测中是否使用亮度补偿预测;
仿射模型预测开关,用于指示CU的帧间预测中是否使用基于仿射模型的预测;
融合模式开关,用于指示CU的帧间预测是否使用融合模式(Merge Mode);
帧内预测方向,用于指示CU的帧内预测中使用的帧内预测方向,例如H.265中的Planar模式的预测方向、DC模式的预测方向以及33种角度预测模式的预测方向;
帧内帧间预测模式信息,用于指示CU的预测模式为帧内预测模式还是帧间预测模式;
变换系数信息,用于指示CU是否含有变换系数。
需要说明的是,编码模式不限于上述内容,本申请对此不做限制。进一步地,本申请采用现有技术的方法对待编码的CU进行编码,本申请对此不做限制。
可选地,已存储的编码模式可以存储在本地数据库,也可以存储在云端数据库,本申请对此不做限制。
数据库中编码模式的存储方式可有多种,本发明不作限定,例如数据库包括两张四维表,四个入口(entry)变量分别为CU的宽的索引,CU的高的索引,CU的Z扫描序号(z-order index)和索引编号,第一张表中每个元素为编码模式索引,第二张表中每个元素为一个64位的数值,各比特位上分别保存着编码模式索引对应的编码模式中的各种子信息(单个编码工具的开关或参数)。或者,数据库包括一张四维表,表的四个入口变量与上述四个入口变量相同,表中每一个元素为一个结构体,结构体的元素分别为编码模式索引和该索引对应的编码模式中的各种子信息。当CU的宽为4、8、16、32、64、128时,CU的宽的索引为0、1、2、3、4、5;当CU的高为4、8、16、32、64、128时,CU的高的索引为0、1、2、3、4、5;CU的Z扫描序号为在Z型扫描序列下CU左上角4x4块的序号;当编码模式索引第一次被存储时,索引编号可以是0,当编码模式索引第二次被存储时,索引编号可以是1,以此类推,当当编码模式索引第N次被存储时,索引编号可以是N-1。
综上,本申请提供一种图像编码方法,当编码树中节点的划分方式包括二叉树划分方式和/或三叉树划分方式时,说明待编码的CU可能对应有多条划分路径,因此在本次编码过程中,首先建立待编码的CU的编码模式索引,其次判断是否已存储该索引,如果存在该索引,则可以重用该索引对应的编码模式,从而无需编码端根据待编码的CU的相邻图像区域确定编码模式,进而降低了编码复杂度。
图9为本申请一实施例提供的一种图像编码设备的结构示意图,如图9所示,包括:确定模块91和编码模块92。
确定模块91,用于根据编码树确定已完成编码的编码单元的大小和待编码的编码单元的相邻图像区域的属性信息;其中,编码树中节点的划分方式包括二叉树划分方式和/或三叉树划分方式。
确定模块91,还用于根据已完成编码的编码单元的大小和相邻图像区域的属性信息确定待编码的编码单元的编码模式索引。
编码模块92,用于若已存储与编码模式索引对应的编码模式,则根据存储的编码模式对待编码的编码单元进行编码。
可选地,确定模块91具体用于:确定编码树的根节点到待编码的编码单元对应的待编码节点的划分路径;对划分路径中每一编码树层级的子节点相对于父节点的位置偏移进行求和,求和得到的位置偏移之和为已完成编码的编码单元的大小;其中,一个子节点相对于一个父节点的位置偏移为:在一个父节点对应的所有子节点对应的所有图像区域中,在一个子节点对应的图像区域被编码之前已经编码的图像区域大小。
可选地,相邻图像区域包括:待编码的编码单元的左相邻图像区域和待编码的编码单元的上相邻图像区域。相应的,相邻图像区域的属性信息包括:左相邻图像区域的宽、左相邻图像区域的高和左相邻图像区域对应的左相邻节点的编码树层级;上相邻图像区域的宽、上相邻图像区域的高和上相邻图像区域对应的上相邻节点的编码树层级。
可选地,当待编码的编码单元是待编码节点的父节点对应的所有子节点对应的所有图像区域中第一个编码的图像区域时,左相邻图像区域覆盖待编码的编码单元的左相邻像素,左相邻节点的编码树层级小于待编码节点的编码树层级,且左相邻节点的编码树层级为所有编码树层级小于待编码节点的编码树层级,且对应图像区域包括左相邻像素的所有节点中最大的一个。
或者,
当待编码的编码单元不是待编码节点的父节点对应的所有子节点对应的所有图像区域中第一个编码的图像区域时,左相邻图像区域覆盖待编码的编码单元的左相邻像素,左相邻节点的编码树层级小于或者等于待编码节点的编码树层级,且左相邻节点的编码树层级为所有编码树层级小于或者等于待编码节点的编码树层级,且对应图像区域包括左相邻像素的所有节点中最大的一个。
可选地,左相邻图像区域覆盖待编码节点的父节点对应的图像区域的左相邻像素,左相邻节点的编码树层级小于或者等于待编码节点的父节点的编码树层级,且左相邻节点的编码树层级为所有编码树层级小于或者等于待编码节点的父节点的编码树层级,且对应图像区域包括左相邻像素的所有节点中最大的一个。
可选地,若待编码的编码单元不存在左相邻图像区域,则左相邻图像区域的宽、左相邻图像区域的高和左相邻节点的编码树层级均为预设值。
可选地,当待编码的编码单元是待编码节点的父节点对应的所有子节点对应的所有图像区域中第一个编码的图像区域时,上相邻图像区域覆盖待编码的编码单元的上相邻像素,上相邻节点的编码树层级小于待编码节点的编码树层级,且上相邻节点的编码树层级为所有编码树层级小于待编码节点的编码树层级,且对应图像区域包括上相邻像素的所有节点中最大的一个;或者,
当待编码的编码单元不是待编码节点的父节点对应的所有子节点对应的所有图像区域中第一个编码的图像区域时,上相邻图像区域覆盖待编码的编码单元的上相邻像素,上相邻节点的编码树层级小于或者等于待编码节点的编码树层级,且上相邻节点的编码树层级为所有编码树层级小于或者等于待编码节点的编码树层级,且对应图像区域包括上相邻像素的所有节点中最大的一个。
可选地,上相邻图像区域覆盖待编码节点的父节点对应的图像区域的上相邻像素,上相邻节点的编码树层级小于或者等于待编码节点的父节点的编码树层级,且上相邻节点的编码树层级为所有编码树层级小于或者等于待编码节点的父节点的编码树层级,且对应图像区域包括上相邻像素的所有节点中最大的一个。
可选地,若待编码的编码单元不存在上相邻图像区域,则上相邻图像区域的宽、上相邻图像区域的高和上相邻节点的编码树层级均为预设值。
可选地,编码模式索引包括以下信息:已完成编码的编码单元的大小、左相邻图像区域的宽、左相邻图像区域的高和左相邻节点的编码树层级;上相邻图像区域的宽、上相邻图像区域的高和上相邻节点的编码树层级。
可选地,该设备还包括:判断模块93,用于根据编码模式索引包括的信息判断是否已存储与编码模式索引对应的编码模式。
可选地,判断模块93具体用于:若编码模式索引与已存储的一个编码模式索引的部分信息匹配成功或者全部信息匹配成功,则判断已存储与编码模式索引对应的编码模式。
可选地,判断模块93具体用于:若编码模式索引与已存储的一个编码模式索引的全部信息匹配成功,则判断已存储与编码模式索引对应的编码模式;若编码模式索引与已存储的所有编码模式索引均未全部信息匹配成功,则判断编码模式索引与已存储的一个编码模式索引是否部分信息匹配成功;若编码模式索引与已存储的一个编码模式索引的部分信息匹配成功,则判断已存储与编码模式索引对应的编码模式。
可选地,该设备还包括:存储模块94。
确定模块91,还用于若编码模式索引与已存储的所有编码模式索引均未全部信息匹配成功且未部分信息匹配成功,则确定待编码的编码单元的编码模式。
编码模块92,还用于使用确定的编码模式对待编码的编码单元进行编码。
存储模块94,用于存储待编码的编码单元的编码模式索引和待编码的编码单元的编码模式。
可选地,部分信息包括:已完成编码的编码单元的大小、左相邻图像区域的宽、左相邻图像区域的高、上相邻图像区域的宽和上相邻图像区域的高。
本申请提供编码设备可以执行上述图像编码方法以及该方法的可选方式,其实现原理和技术效果类似,此处不再赘述。
图10为本申请另一实施例提供的一种图像编码设备的结构示意图,如图10所示,该设备包括:处理器101和存储器102。
存储器102用于存储所述处理器101的执行指令。
处理器101用于:
根据编码树确定已完成编码的编码单元的大小和待编码的编码单元的相邻图像区域的属性信息;其中,编码树中节点的划分方式包括二叉树划分方式和/或三叉树划分方式。根据已完成编码的编码单元的大小和相邻图像区域的属性信息确定待编码的编码单元的编码模式索引。若已存储与编码模式索引对应的编码模式,则根据存储的编码模式对待编码的编码单元进行编码。
可选地,处理器101具体用于:确定编码树的根节点到待编码的编码单元对应的待编码节点的划分路径;对划分路径中每一编码树层级的子节点相对于父节点的位置偏移进行求和,求和得到的位置偏移之和为已完成编码的编码单元的大小;其中,一个子节点相对于一个父节点的位置偏移为:在一个父节点对应的所有子节点对应的所有图像区域中,在一个子节点对应的图像区域被编码之前已经编码的图像区域大小。
可选地,相邻图像区域包括:待编码的编码单元的左相邻图像区域和待编码的编码单元的上相邻图像区域。相应的,相邻图像区域的属性信息包括:左相邻图像区域的宽、左相邻图像区域的高和左相邻图像区域对应的左相邻节点的编码树层级;上相邻图像区域的宽、上相邻图像区域的高和上相邻图像区域对应的上相邻节点的编码树层级。
可选地,当待编码的编码单元是待编码节点的父节点对应的所有子节点对应的所有图像区域中第一个编码的图像区域时,左相邻图像区域覆盖待编码的编码单元的左相邻像素,左相邻节点的编码树层级小于待编码节点的编码树层级,且左相邻节点的编码树层级为所有编码树层级小于待编码节点的编码树层级,且对应图像区域包括左相邻像素的所有节点中最大的一个。
或者,
当待编码的编码单元不是待编码节点的父节点对应的所有子节点对应的所有图像区域中第一个编码的图像区域时,左相邻图像区域覆盖待编码的编码单元的左相邻像素,左相邻节点的编码树层级小于或者等于待编码节点的编码树层级,且左相邻节点的编码树层级为所有编码树层级小于或者等于待编码节点的编码树层级,且对应图像区域包括左相邻像素的所有节点中最大的一个。
可选地,左相邻图像区域覆盖待编码节点的父节点对应的图像区域的左相邻像素,左相邻节点的编码树层级小于或者等于待编码节点的父节点的编码树层级,且左相邻节点的编码树层级为所有编码树层级小于或者等于待编码节点的父节点的编码树层级,且对应图像区域包括左相邻像素的所有节点中最大的一个。
可选地,若待编码的编码单元不存在左相邻图像区域,则左相邻图像区域的宽、左相邻图像区域的高和左相邻节点的编码树层级均为预设值。
可选地,当待编码的编码单元是待编码节点的父节点对应的所有子节点对应的所有图像区域中第一个编码的图像区域时,上相邻图像区域覆盖待编码的编码单元的上相邻像素,上相邻节点的编码树层级小于待编码节点的编码树层级,且上相邻节点的编码树层级为所有编码树层级小于待编码节点的编码树层级,且对应图像区域包括上相邻像素的所有节点中最大的一个;或者,
当待编码的编码单元不是待编码节点的父节点对应的所有子节点对应的所有图像区域中第一个编码的图像区域时,上相邻图像区域覆盖待编码的编码单元的上相邻像素,上相邻节点的编码树层级小于或者等于待编码节点的编码树层级,且上相邻节点的编码树层级为所有编码树层级小于或者等于待编码节点的编码树层级,且对应图像区域包括上相邻像素的所有节点中最大的一个。
可选地,上相邻图像区域覆盖待编码节点的父节点对应的图像区域的上相邻像素,上相邻节点的编码树层级小于或者等于待编码节点的父节点的编码树层级,且上相邻节点的编码树层级为所有编码树层级小于或者等于待编码节点的父节点的编码树层级,且对应图像区域包括上相邻像素的所有节点中最大的一个。
可选地,若待编码的编码单元不存在上相邻图像区域,则上相邻图像区域的宽、上相邻图像区域的高和上相邻节点的编码树层级均为预设值。
可选地,编码模式索引包括以下信息:已完成编码的编码单元的大小、左相邻图像区域的宽、左相邻图像区域的高和左相邻节点的编码树层级;上相邻图像区域的宽、上相邻图像区域的高和上相邻节点的编码树层级。
可选地,处理器101还用于根据编码模式索引包括的信息判断是否已存储与编码模式索引对应的编码模式。
可选地,处理器101具体用于:若编码模式索引与已存储的一个编码模式索引的部分信息匹配成功或者全部信息匹配成功,则判断已存储与编码模式索引对应的编码模式。
可选地,处理器101具体用于:若编码模式索引与已存储的一个编码模式索引的全部信息匹配成功,则判断已存储与编码模式索引对应的编码模式;若编码模式索引与已存储的所有编码模式索引均未全部信息匹配成功,则判断编码模式索引与已存储的一个编码模式索引是否部分信息匹配成功;若编码模式索引与已存储的一个编码模式索引的部分信息匹配成功,则判断已存储与编码模式索引对应的编码模式。
可选地,处理器101,还用于若编码模式索引与已存储的所有编码模式索引均未全部信息匹配成功且未部分信息匹配成功,则确定待编码的编码单元的编码模式。使用确定的编码模式对待编码的编码单元进行编码。存储器102,用于存储待编码的编码单元的编码模式索引和待编码的编码单元的编码模式。
可选地,部分信息包括:已完成编码的编码单元的大小、左相邻图像区域的宽、左相邻图像区域的高、上相邻图像区域的宽和上相邻图像区域的高。
本申请提供编码设备可以执行上述图像编码方法以及该方法的可选方式,其实现原理和技术效果类似,此处不再赘述。

Claims (30)

1.一种图像编码方法,其特征在于,包括:
根据编码树确定已完成编码的编码单元的大小和待编码的编码单元的相邻图像区域的属性信息;其中,所述编码树中节点的划分方式包括二叉树划分方式和/或三叉树划分方式;
根据所述已完成编码的编码单元的大小和所述相邻图像区域的属性信息确定所述待编码的编码单元的编码模式索引;
若已存储与所述编码模式索引对应的编码模式,则根据存储的所述编码模式对所述待编码的编码单元进行编码。
2.根据权利要求1所述的方法,其特征在于,所述根据编码树确定已完成编码的编码单元的大小,包括:
确定所述编码树的根节点到所述待编码的编码单元对应的待编码节点的划分路径;
对所述划分路径中每一编码树层级的子节点相对于父节点的位置偏移进行求和,所述求和得到的位置偏移之和为所述已完成编码的编码单元的大小;其中,一个子节点相对于一个父节点的位置偏移为:在所述一个父节点对应的所有子节点对应的所有图像区域中,在所述一个子节点对应的图像区域被编码之前已经编码的图像区域大小。
3.根据权利要求1或2所述的方法,其特征在于,所述相邻图像区域包括:所述待编码的编码单元的左相邻图像区域和所述待编码的编码单元的上相邻图像区域;
相应的,所述相邻图像区域的属性信息包括:所述左相邻图像区域的宽、所述左相邻图像区域的高和所述左相邻图像区域对应的左相邻节点的编码树层级;所述上相邻图像区域的宽、所述上相邻图像区域的高和所述上相邻图像区域对应的上相邻节点的编码树层级。
4.根据权利要求3所述的方法,其特征在于,当所述待编码的编码单元是待编码节点的父节点对应的所有子节点对应的所有图像区域中第一个编码的图像区域时,所述左相邻图像区域覆盖所述待编码的编码单元的左相邻像素,所述左相邻节点的编码树层级小于所述待编码节点的编码树层级,且所述左相邻节点的编码树层级为所有编码树层级小于所述待编码节点的编码树层级,且对应图像区域包括所述左相邻像素的所有节点中最大的一个;或者,
当所述待编码的编码单元不是待编码节点的父节点对应的所有子节点对应的所有图像区域中第一个编码的图像区域时,所述左相邻图像区域覆盖所述待编码的编码单元的左相邻像素,所述左相邻节点的编码树层级小于或者等于所述待编码节点的编码树层级,且所述左相邻节点的编码树层级为所有编码树层级小于或者等于所述待编码节点的编码树层级,且对应图像区域包括所述左相邻像素的所有节点中最大的一个。
5.根据权利要求3所述的方法,其特征在于,所述左相邻图像区域覆盖待编码节点的父节点对应的图像区域的左相邻像素,所述左相邻节点的编码树层级小于或者等于所述待编码节点的父节点的编码树层级,且所述左相邻节点的编码树层级为所有编码树层级小于或者等于所述待编码节点的父节点的编码树层级,且对应图像区域包括所述左相邻像素的所有节点中最大的一个。
6.根据权利要求3-5任一项所述的方法,其特征在于,若所述待编码的编码单元不存在左相邻图像区域,则在根据所述已完成编码的编码单元的大小和所述相邻图像区域的属性信息确定所述待编码的编码单元的编码模式索引时,所述左相邻图像区域的宽、所述左相邻图像区域的高和所述左相邻节点的编码树层级均为预设值。
7.根据权利要求3-6所述的方法,其特征在于,当所述待编码的编码单元是待编码节点的父节点对应的所有子节点对应的所有图像区域中第一个编码的图像区域时,所述上相邻图像区域覆盖所述待编码的编码单元的上相邻像素,所述上相邻节点的编码树层级小于所述待编码节点的编码树层级,且所述上相邻节点的编码树层级为所有编码树层级小于所述待编码节点的编码树层级,且对应图像区域包括所述上相邻像素的所有节点中最大的一个;或者,
当所述待编码的编码单元不是待编码节点的父节点对应的所有子节点对应的所有图像区域中第一个编码的图像区域时,所述上相邻图像区域覆盖所述待编码的编码单元的上相邻像素,所述上相邻节点的编码树层级小于或者等于所述待编码节点的编码树层级,且所述上相邻节点的编码树层级为所有编码树层级小于或者等于所述待编码节点的编码树层级,且对应图像区域包括所述上相邻像素的所有节点中最大的一个。
8.根据权利要求3-6任一项所述的方法,其特征在于,所述上相邻图像区域覆盖待编码节点的父节点对应的图像区域的上相邻像素,所述上相邻节点的编码树层级小于或者等于所述待编码节点的父节点的编码树层级,且所述上相邻节点的编码树层级为所有编码树层级小于或者等于所述待编码节点的父节点的编码树层级,且对应图像区域包括所述上相邻像素的所有节点中最大的一个。
9.根据权利要求3-8任一项所述的方法,其特征在于,若所述待编码的编码单元不存在上相邻图像区域,则在根据所述已完成编码的编码单元的大小和所述相邻图像区域的属性信息确定所述待编码的编码单元的编码模式索引时,所述上相邻图像区域的宽、所述上相邻图像区域的高和所述上相邻节点的编码树层级均为预设值。
10.根据权利要求3-9任一项所述的方法,其特征在于,所述编码模式索引包括以下信息:所述已完成编码的编码单元的大小、所述左相邻图像区域的宽、所述左相邻图像区域的高、所述左相邻节点的编码树层级、所述上相邻图像区域的宽、所述上相邻图像区域的高和所述上相邻节点的编码树层级。
11.根据权利要求10所述的方法,其特征在于,所述若已存储与所述编码模式索引对应的编码模式,则根据存储的所述编码模式对所述待编码的编码单元进行编码之前,还包括:
根据所述编码模式索引包括的信息判断是否已存储与所述编码模式索引对应的编码模式。
12.根据权利要求11所述的方法,其特征在于,所述根据所述编码模式索引包括的信息判断是否已存储与所述编码模式索引对应的编码模式,包括:
若所述编码模式索引与已存储的一个编码模式索引的部分信息匹配成功或者全部信息匹配成功,则判断已存储与所述编码模式索引对应的编码模式。
13.根据权利要求11所述的方法,其特征在于,所述根据所述编码模式索引包括的信息判断是否已存储与所述编码模式索引对应的编码模式,包括:
若所述编码模式索引与已存储的一个编码模式索引的全部信息匹配成功,则判断已存储与所述编码模式索引对应的编码模式;
若所述编码模式索引与已存储的所有编码模式索引均未全部信息匹配成功,则判断所述编码模式索引与已存储的一个编码模式索引是否部分信息匹配成功;
若所述编码模式索引与已存储的一个编码模式索引的部分信息匹配成功,则判断已存储与所述编码模式索引对应的编码模式。
14.根据权利要求13所述的方法,其特征在于,还包括:
若所述编码模式索引与已存储的所有编码模式索引均未全部信息匹配成功且未部分信息匹配成功,则确定所述待编码的编码单元的编码模式,使用所述确定的编码模式对所述待编码的编码单元进行编码;并存储所述待编码的编码单元的编码模式索引和所述待编码的编码单元的编码模式。
15.根据权利要求12-14任一项所述的方法,其特征在于,所述部分信息包括:所述已完成编码的编码单元的大小、所述左相邻图像区域的宽、所述左相邻图像区域的高、所述上相邻图像区域的宽和所述上相邻图像区域的高。
16.一种图像编码设备,其特征在于,包括:确定模块和编码模块;
所述确定模块,用于根据编码树确定已完成编码的编码单元的大小和待编码的编码单元的相邻图像区域的属性信息;其中,所述编码树中节点的划分方式包括二叉树划分方式和/或三叉树划分方式;
所述确定模块,还用于根据所述已完成编码的编码单元的大小和所述相邻图像区域的属性信息确定所述待编码的编码单元的编码模式索引;
所述编码模块,用于若已存储与所述编码模式索引对应的编码模式,则根据存储的所述编码模式对所述待编码的编码单元进行编码。
17.根据权利要求16所述的设备,其特征在于,所述确定模块具体用于:
确定所述编码树的根节点到所述待编码的编码单元对应的待编码节点的划分路径;
对所述划分路径中每一编码树层级的子节点相对于父节点的位置偏移进行求和,所述求和得到的位置偏移之和为所述已完成编码的编码单元的大小;其中,一个子节点相对于一个父节点的位置偏移为:在所述一个父节点对应的所有子节点对应的所有图像区域中,在所述一个子节点对应的图像区域被编码之前已经编码的图像区域大小。
18.根据权利要求16或17所述的设备,其特征在于,所述相邻图像区域包括:所述待编码的编码单元的左相邻图像区域和所述待编码的编码单元的上相邻图像区域;
相应的,所述相邻图像区域的属性信息包括:所述左相邻图像区域的宽、所述左相邻图像区域的高和所述左相邻图像区域对应的左相邻节点的编码树层级;所述上相邻图像区域的宽、所述上相邻图像区域的高和所述上相邻图像区域对应的上相邻节点的编码树层级。
19.根据权利要求18所述的设备,其特征在于,当所述待编码的编码单元是待编码节点的父节点对应的所有子节点对应的所有图像区域中第一个编码的图像区域时,所述左相邻图像区域覆盖所述待编码的编码单元的左相邻像素,所述左相邻节点的编码树层级小于所述待编码节点的编码树层级,且所述左相邻节点的编码树层级为所有编码树层级小于所述待编码节点的编码树层级,且对应图像区域包括所述左相邻像素的所有节点中最大的一个;或者,
当所述待编码的编码单元不是待编码节点的父节点对应的所有子节点对应的所有图像区域中第一个编码的图像区域时,所述左相邻图像区域覆盖所述待编码的编码单元的左相邻像素,所述左相邻节点的编码树层级小于或者等于所述待编码节点的编码树层级,且所述左相邻节点的编码树层级为所有编码树层级小于或者等于所述待编码节点的编码树层级,且对应图像区域包括所述左相邻像素的所有节点中最大的一个。
20.根据权利要求18所述的设备,其特征在于,所述左相邻图像区域覆盖待编码节点的父节点对应的图像区域的左相邻像素,所述左相邻节点的编码树层级小于或者等于所述待编码节点的父节点的编码树层级,且所述左相邻节点的编码树层级为所有编码树层级小于或者等于所述待编码节点的父节点的编码树层级,且对应图像区域包括所述左相邻像素的所有节点中最大的一个。
21.根据权利要求18-20任一项所述的设备,其特征在于,若所述待编码的编码单元不存在左相邻图像区域,则所述左相邻图像区域的宽、所述左相邻图像区域的高和所述左相邻节点的编码树层级均为预设值。
22.根据权利要求18-21所述的设备,其特征在于,当所述待编码的编码单元是待编码节点的父节点对应的所有子节点对应的所有图像区域中第一个编码的图像区域时,所述上相邻图像区域覆盖所述待编码的编码单元的上相邻像素,所述上相邻节点的编码树层级小于所述待编码节点的编码树层级,且所述上相邻节点的编码树层级为所有编码树层级小于所述待编码节点的编码树层级,且对应图像区域包括所述上相邻像素的所有节点中最大的一个;或者,
当所述待编码的编码单元不是待编码节点的父节点对应的所有子节点对应的所有图像区域中第一个编码的图像区域时,所述上相邻图像区域覆盖所述待编码的编码单元的上相邻像素,所述上相邻节点的编码树层级小于或者等于所述待编码节点的编码树层级,且所述上相邻节点的编码树层级为所有编码树层级小于或者等于所述待编码节点的编码树层级,且对应图像区域包括所述上相邻像素的所有节点中最大的一个。
23.根据权利要求18-21任一项所述的设备,其特征在于,所述上相邻图像区域覆盖待编码节点的父节点对应的图像区域的上相邻像素,所述上相邻节点的编码树层级小于或者等于所述待编码节点的父节点的编码树层级,且所述上相邻节点的编码树层级为所有编码树层级小于或者等于所述待编码节点的父节点的编码树层级,且对应图像区域包括所述上相邻像素的所有节点中最大的一个。
24.根据权利要求18-23任一项所述的设备,其特征在于,若所述待编码的编码单元不存在上相邻图像区域,则所述上相邻图像区域的宽、所述上相邻图像区域的高和所述上相邻节点的编码树层级均为预设值。
25.根据权利要求18-24任一项所述的设备,其特征在于,所述编码模式索引包括以下信息:所述已完成编码的编码单元的大小、所述左相邻图像区域的宽、所述左相邻图像区域的高和所述左相邻节点的编码树层级;所述上相邻图像区域的宽、所述上相邻图像区域的高和所述上相邻节点的编码树层级。
26.根据权利要求25所述的设备,其特征在于,还包括:
判断模块,用于根据所述编码模式索引包括的信息判断是否已存储与所述编码模式索引对应的编码模式。
27.根据权利要求26所述的设备,其特征在于,所述判断模块具体用于:
若所述编码模式索引与已存储的一个编码模式索引的部分信息匹配成功或者全部信息匹配成功,则判断已存储与所述编码模式索引对应的编码模式。
28.根据权利要求26所述的设备,其特征在于,所述判断模块具体用于:
若所述编码模式索引与已存储的一个编码模式索引的全部信息匹配成功,则判断已存储与所述编码模式索引对应的编码模式;
若所述编码模式索引与已存储的所有编码模式索引均未全部信息匹配成功,则判断所述编码模式索引与已存储的一个编码模式索引是否部分信息匹配成功;
若所述编码模式索引与已存储的一个编码模式索引的部分信息匹配成功,则判断已存储与所述编码模式索引对应的编码模式。
29.根据权利要求28所述的设备,其特征在于,还包括:存储模块;
所述确定模块,还用于若所述编码模式索引与已存储的所有编码模式索引均未全部信息匹配成功且未部分信息匹配成功,则确定所述待编码的编码单元的编码模式;
所述编码模块,还用于使用所述确定的编码模式对所述待编码的编码单元进行编码;
所述存储模块,用于存储所述待编码的编码单元的编码模式索引和所述待编码的编码单元的编码模式。
30.根据权利要求27-29任一项所述的设备,其特征在于,所述部分信息包括:所述已完成编码的编码单元的大小、所述左相邻图像区域的宽、所述左相邻图像区域的高、所述上相邻图像区域的宽和所述上相邻图像区域的高。
CN201710832222.3A 2017-09-15 2017-09-15 图像编码方法及设备 Active CN109510997B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201710832222.3A CN109510997B (zh) 2017-09-15 2017-09-15 图像编码方法及设备
PCT/CN2018/092577 WO2019052255A1 (zh) 2017-09-15 2018-06-25 图像编码方法及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710832222.3A CN109510997B (zh) 2017-09-15 2017-09-15 图像编码方法及设备

Publications (2)

Publication Number Publication Date
CN109510997A true CN109510997A (zh) 2019-03-22
CN109510997B CN109510997B (zh) 2022-09-23

Family

ID=65722388

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710832222.3A Active CN109510997B (zh) 2017-09-15 2017-09-15 图像编码方法及设备

Country Status (2)

Country Link
CN (1) CN109510997B (zh)
WO (1) WO2019052255A1 (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104702958A (zh) * 2013-12-05 2015-06-10 中国科学院深圳先进技术研究院 一种基于空间相关性的hevc帧内编码方法及系统
KR20150090803A (ko) * 2014-01-27 2015-08-06 건국대학교 산학협력단 Hevc 인트라 코딩을 위한 코딩 단위 크기 결정 시스템
WO2017008263A1 (en) * 2015-07-15 2017-01-19 Mediatek Singapore Pte. Ltd. Conditional binary tree block partitioning structure
WO2017088810A1 (en) * 2015-11-27 2017-06-01 Mediatek Inc. Method and apparatus of entropy coding and context modelling for video and image coding

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120008684A1 (en) * 2010-07-09 2012-01-12 Samsung Electronics Co., Ltd. Method and apparatus of encoding and decoding video signal
CN103716627B (zh) * 2012-09-29 2017-02-22 华为技术有限公司 分层编解码方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104702958A (zh) * 2013-12-05 2015-06-10 中国科学院深圳先进技术研究院 一种基于空间相关性的hevc帧内编码方法及系统
KR20150090803A (ko) * 2014-01-27 2015-08-06 건국대학교 산학협력단 Hevc 인트라 코딩을 위한 코딩 단위 크기 결정 시스템
WO2017008263A1 (en) * 2015-07-15 2017-01-19 Mediatek Singapore Pte. Ltd. Conditional binary tree block partitioning structure
WO2017088810A1 (en) * 2015-11-27 2017-06-01 Mediatek Inc. Method and apparatus of entropy coding and context modelling for video and image coding

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
XIANG LI等: "Multi-Type-Tree", 《JOINT VIDEO EXPERTS TEAM (JVET) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11,4TH MEETING: CHENGDU, CN, 15–21 OCTOBER 2016,DOCUMENT: JVET-D0117R1》 *

Also Published As

Publication number Publication date
WO2019052255A1 (zh) 2019-03-21
CN109510997B (zh) 2022-09-23

Similar Documents

Publication Publication Date Title
CN107071416B (zh) 一种hevc帧内预测模式快速选择方法
CN103503461B (zh) 对图片进行编译码的方法
CN103891281B (zh) 检测用于视频译码的相邻视频单元的可用性
CN104883568B (zh) 视频数据的解码方法
CN109479141A (zh) 图像编码/解码方法和用于所述方法的记录介质
CN108702501A (zh) 用于视频编码的色度预测的区域化亮度预测模式继承的方法及装置
CN110178372A (zh) 图像解码装置以及图像编码装置
CN109804627A (zh) 图像编码/解码方法和设备
CN103931197B (zh) 确定用于变换系数的二进制码字的方法
CN103918273B (zh) 确定用于变换系数的二进制码字的方法
CN108605128A (zh) 合并用于视频译码的用于多类别块的滤波器
CN107836117A (zh) 用于视频和图像编解码的有条件的二叉树块分割结构的方法
CN107211157A (zh) 用于视频译码的重叠运动补偿
KR20180019688A (ko) 픽처 예측 방법 및 픽처 예측 장치
CN107071456A (zh) 用于引导合并候选块的方法和使用该方法的设备
WO2015021942A1 (zh) 定宽度变长度像素样值串匹配增强的图像压缩方法和装置
SE1351475A1 (sv) Metod för att härleda en temporal prediktionsrörelsesvektoroch en anordning som använder metoden.
CN108235009A (zh) 导出运动信息的方法
KR20200019270A (ko) 평면 간 예측
CN107046645A (zh) 图像编解码方法及装置
CN107071461A (zh) 用于解码运动画面的设备
CN107222745A (zh) 用于解码合并模式下的运动信息的装置
CN103108177B (zh) 图像编码方法及图像编码装置
CN104754362B (zh) 使用精细划分块匹配的图像压缩方法
CN107211137A (zh) 在算术代码化中的有效率场境应对

Legal Events

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