CN102595119B - 条带编码方法及装置、条带解码方法及装置 - Google Patents

条带编码方法及装置、条带解码方法及装置 Download PDF

Info

Publication number
CN102595119B
CN102595119B CN201110008133.XA CN201110008133A CN102595119B CN 102595119 B CN102595119 B CN 102595119B CN 201110008133 A CN201110008133 A CN 201110008133A CN 102595119 B CN102595119 B CN 102595119B
Authority
CN
China
Prior art keywords
band
lcu
position information
current
scu
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
CN201110008133.XA
Other languages
English (en)
Other versions
CN102595119A (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.)
MIGU Culture Technology 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 CN201110008133.XA priority Critical patent/CN102595119B/zh
Priority to PCT/CN2012/070387 priority patent/WO2012095032A1/zh
Publication of CN102595119A publication Critical patent/CN102595119A/zh
Application granted granted Critical
Publication of CN102595119B publication Critical patent/CN102595119B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/174Methods 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 slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process

Landscapes

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

Abstract

本发明涉及编解码技术,公开了条带编码方法及装置、条带解码方法及装置,其中,一种条带编码方法包括:按CU将当前划分对象划分成条带;在起始位置信息字段写入当前条带的起始位置信息,所述当前条带的起始位置信息包括:所述当前条带中起始LCU在图像中的绝对位置信息、以及所述当前条带中起始SCU在所述起始LCU中的相对位置信息;对所述当前条带进行编码,输出编码码流。使用本发明,可以控制条带的数据量大小,从而增强网络兼容性。

Description

条带编码方法及装置、条带解码方法及装置
技术领域
本发明涉及编解码技术,具体涉及新一代视频编码标准(HEVC,HighEfficiency Video Coding)中的条带编码方法及装置、条带解码方法及装置。
背景技术
随着网络技术和终端处理能力的不断提高,人们对目前广泛使用的运动图像专家组系列2(MPEG-2,Moving Pictures Experts Group-2),运动图像专家组系列4(MPEG-4),H.264等视频编解码技术提出了新的要求,例如希望能够满足高清、3D的要求,从而满足新的家庭影院、远程监控、数字广播、移动流媒体、便携摄像、医学成像等新领域的应用,为了满足这些应用,新一代视频编码标准(HEVC,High Efficiency Video Coding)应运而生。
HEVC为了提高压缩效率,使用了一种新的编码结构,具体地,将一个视频图像划分成为由整数个编码单元(CU,Coding Unit)组成,CU为方形,并且CU的尺寸大小可变。CU的产生过程简述如下,首先,将一个视频图像划分成为不重叠的整数个最大编码单元(LCU,Largest Coding Unit);进一步,可以将LCU可分裂为四个相同尺寸的CU;进一步,该四个CU可以分裂为更小四个相同尺寸的CU;分裂过程可以一直进行,直到分裂得到的CU的尺寸达到规定的最小值,该最小值即为最小编码单元(SCU,Smallest CodingUnit)。每个CU都存在分裂和不分裂两种可能,CU是否继续分裂或不分裂可以通过一个标识符进行标识,因此,在实际的编码过程中CU可能具有不同的尺寸大小。
为了限制误码的扩散和传输引入了条带(Slice)的概念,条带的应用可以使条带间的编码是独立的,一个条带的预测不能以另一个条带中的图像为参考图像,因此一个条带中的预测误差也不会传播到另一个条带。
现有的一种HEVC中的条带划分方法是按CU进行条带的划分,一个条带包括整数个CU,具体地,一个条带可以只包括一个CU,也可以包括整个视频图像的所有CU,从而使得一个视频图像可编码成一个或多个条带。其中,为了使解码端能够确定条带的开始位置从而开始解码,现有的一种方式是在条带头中携带条带的起始SCU的绝对位置信息,使解码端可以根据该绝对位置信息确定条带的开始位置,其中起始SCU的绝对位置信息是指该起始SCU在视频图像中的位置信息,该绝对位置信息具体可以是SCU的序号。
由于使用的是起始SCU的绝对位置信息作为条带的起始位置信息,而视频图像中的SCU的数量会随着图像尺寸的增加而呈指数增长,因此条带的起始SCU的序号的值可能会非常大,使得对条带起始位置信息进行编码所需的比特数也急剧增加,降低了网络利用效率。
发明内容
本发明实施例提供了条带编码方法及装置、条带解码方法及装置,可以减少对条带起始位置信息进行编码所需的比特数,提高网络利用效率。
一方面,本发明一个实施例提供了一种条带编码方法,包括:
按CU将当前划分对象划分成条带;
在起始位置信息字段写入当前条带的起始位置信息,所述当前条带的起始位置信息包括:所述当前条带中起始LCU在图像中的绝对位置信息、以及所述当前条带中起始SCU在所述起始LCU中的相对位置信息;
对所述当前条带进行编码,输出编码码流。
另一方面,本发明另一个实施例提供了一种条带解码方法,包括:
从起始位置信息字段解析当前条带的起始位置信息,所述当前条带的起始位置信息包括:所述当前条带中起始LCU在图像中的绝对位置信息、以及所述当前条带中起始SCU在所述起始LCU中的相对位置信息;
根据所述起始位置信息开始对所述当前条带的解码,并根据预置处理方式确定完成对所述当前条带的解码;
输出解码得到的当前条带的重建图像。
另一方面,本发明另一个实施例提供了一种条带编码装置,包括:
划分单元,用于按CU将当前划分对象划分成条带;
写入单元,用于在起始位置信息字段写入所述划分单元获得的当前条带的起始位置信息;所述当前条带的起始位置信息包括:所述当前条带中起始LCU在图像中的绝对位置信息、以及所述当前条带中起始SCU在所述起始LCU中的相对位置信息;
编码处理单元,用于对所述写入单元获得的当前条带进行编码,输出编码码流。
另一方面,本发明另一个实施例提供了一种条带解码装置,包括:
解析单元,用于从起始位置信息字段解析当前条带的起始位置信息,所述当前条带的起始位置信息包括:所述当前条带中起始LCU在图像中的绝对位置信息、以及所述当前条带中起始SCU在所述起始LCU中的相对位置信息;
解码单元,用于根据所述解析单元获得的起始位置信息开始对所述当前条带的解码,并根据预置处理方式确定完成对所述当前条带的解码;
输出单元,用于输出所述解码单元获得的条带的重建图像。
从本发明实施例提供的以上技术方案可以看出,由于本发明实施例使用的起始位置信息字段包括起始LCU位置信息字段和起始SCU位置信息字段,使条带的起始位置信息可以用LCU的绝对位置信息和SCU的相对位置信息确定,而一个视频图像中LCU的数量要少于SCU的数量,一个LCU中的SCU的数量也少于一个图像中的SCU的数量,因此对LCU的序号以及SCU的相对序号进行编码的比特数较少,从而减少对条带起始位置信息进行编码所需的比特数,提高网络利用效率;并且解码装置在解码时可以直接解析起始LCU位置信息字段和起始SCU位置信息字段中的位置信息,再根据解析得到的位置信息直接定位到条带的起始位置,从而提高解码效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一个实施例提供的条带编码方法的流程图;
图2为本发明另一个实施例提供的条带编码方法的流程图;
图3为本发明另一个实施例提供的条带编码方法的流程图;
图4为本发明一个实施例提供的条带解码方法的流程图;
图5为本发明另一个实施例提供的条带解码方法的流程图;
图6为本发明另一个实施例提供的条带解码方法的流程图;
图7为本发明一个实施例提供的条带编码装置的结构图;
图8为本发明另一个实施例提供的条带解码装置的结构图;
图9为本发明另一个实施例提供的条带编码装置的结构图;
图10为本发明一个实施例提供的条带解码装置的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明实施例中,起始LCU的绝对位置信息可以为起始LCU在图像中的顺序绝对位置信息或倒序绝对位置信息;其中,当前条带的起始LCU在图像中的绝对位置信息具体可以是起始LCU在图像中的序号,例如一个图像包括10个LCU,序号分别是0~9,当前条带的起始LCU是图像中的第4个LCU,则该起始LCU的顺序绝对位置信息为3,该起始LCU的倒序绝对位置信息为5。
起始SCU的相对位置信息可以为起始SCU在起始LCU中的顺序相对位置信息或倒序相对位置信息;其中,起始SCU在起始LCU中的顺序相对位置信息具体可以是,当前条带的起始SCU相对于起始LCU中的第一个SCU的位置信息,例如起始LCU的第一个SCU在图像中的序号为1000,但是当前条带的起始SCU在图像中的序号为1010,则起始SCU在起始LCU中的相对位置信息为1010-1000=10;起始SCU在起始LCU中的倒序相对位置信息具体可以是,当前条带的起始SCU相对于起始LCU中的最后一个SCU的位置信息,例如起始LCU的最后一个SCU在图像中的序号为1010,但是当前条带的起始SCU在图像中的序号为1000,则起始SCU在起始LCU中的倒序相对位置信息为1010-1000=10。
在本发明的实施例中并不限定具体何时使用起始LCU在图像中的顺序绝对位置信息或倒序绝对位置信息作为起始LCU的绝对位置信息;也不限定何时使用起始SCU在起始LCU中的顺序相对位置信息或倒序相对位置信息作为起始SCU的相对位置信息。
同样的,在本发明的实施例中,结束LCU的绝对位置信息可以为结束LCU在图像中的顺序绝对位置信息或倒序绝对位置信息;结束SCU的相对位置信息可以为结束SCU在结束LCU中的顺序相对位置信息或倒序相对位置信息。
在本发明的实施例中也不限定具体何时使用结束LCU在图像中的顺序绝对位置信息或倒序绝对位置信息作为结束LCU的绝对位置信息;也不限定何时使用结束SCU在结束LCU中的顺序相对位置信息或倒序相对位置信息作为结束SCU的相对位置信息。
先介绍本发明实施例提供的条带编码方法,图1描述了本发明一个实施例提供的条带编码方法的流程,该实施例包括:
101、根据判决信息确定当前划分对象的条带划分类型,按照确定的条带划分类型将当前划分对象划分成条带。
其中,在本发明的一个实施例中,判决信息可以是输入配置、和输入参数、和视频源中的至少一个,不同的输入配置、和/或输入参数、和/或视频源可以采用不同的条带划分类型。在本发明的一个实施例中,条带划分类型可以是按LCU划分或按CU划分。
当前划分对象具体可以是当前图像序列、或当前视频图像、或当前图像条带等。
102、在起始位置信息字段写入当前条带的起始位置信息。
其中,起始位置信息字段可以位于当前条带的条带头,也可以位于序列参数集的头,也可以位于图像参数集的头等。
在本发明的一个实施例中,起始位置信息字段只包括一个字段,即可以直接将当前条带的起始位置信息写入该一个字段,此时当前条带的起始位置信息可以为起始SCU在图像中的绝对位置信息。
在本发明的另一个实施例中,起始位置信息字段包括起始LCU位置信息字段和起始SCU位置信息字段;此时,在起始位置信息字段写入当前条带的起始位置信息具体为:在起始LCU位置信息字段写入当前条带的起始LCU在图像中的绝对位置信息,在起始SCU位置信息字段写入起始SCU在起始LCU中的相对位置信息。其中,在按LCU对当前划分对象进行划分时,当前条带的起始SCU即为起始LCU的起始SCU,则起始SCU在起始LCU中的相对位置信息就是0。
103、对写入了起始位置信息的当前条带进行编码,输出编码码流。
其中,具体可以采用VLC编码方式或非VLC编码方式对当前条带进行编码。
在本发明的一个实施例中,如果采用非VLC编码方式对当前条带进行编码,在对当前条带进行编码前可以进一步包括步骤:在结束位置信息字段写入当前条带的结束位置信息。可以理解的是,在采用VLC编码方式对当前条带进行编码时,也可以在对当前条带进行编码前包括该步骤。结束位置信息字段可以位于当前条带的条带头,也可以位于序列参数集的头,也可以位于图像参数集的头等。
在本发明的一个实施例中,结束位置信息字段只包括一个字段,即可以直接将当前条带的结束位置信息写入该一个字段,例如当前条带的结束位置信息为当前条带的长度信息,此时,当前条带的结束位置可以通过当前条带的起始位置信息以及当前条带的长度信息共同确定;在本发明的一个实施例中当前条带的长度信息具体为:当前条带包括的LCU的数量以及结束CU在结束LCU中的顺序相对位置或倒序相对位置;或当前条带包括的CU的数量;或当前条带包括的SCU的数量。在本发明的另一个实施例中,当前条带的结束位置信息也可以为结束SCU在图像中的绝对位置信息。
在本发明的另一个实施例中,结束位置信息字段包括结束LCU位置信息字段和结束SCU位置信息字段;此时,在结束位置信息字段写入当前条带的结束位置信息具体为:在结束LCU位置信息字段写入当前条带的结束LCU在图像中的绝对位置信息,在结束SCU位置信息字段写入结束SCU在结束LCU中的相对位置信息。其中,在按LCU对当前划分对象进行划分时,当前条带的结束SCU即为结束LCU的结束SCU,则结束SCU在结束LCU中的相对位置信息即为该SCU相对于结束LCU中起始SCU的位置信息。
在本发明的另一个实施例中,如果采用非VLC编码方式对当前条带进行编码,在对当前条带进行编码前可以进一步包括步骤:为当前条带中所有CU的条带结束标志位赋值,该条带结束标志位位于当前条带包括的每一个CU的最后一个SCU的数据净载的最后一位,其中结束CU中的条带结束标志位赋值为有效。可以理解的是,在采用VLC编码方式对当前条带进行编码时,也可以在对当前条带进行编码前包括该步骤。
从上可知,本实施例可以根据判决信息确定当前划分对象的条带划分类型,按照确定的条带划分类型将当前划分对象划分成条带,使划分成的条带的数据量大小能够适应网络,并且在不同的网络可以采用不同的条带划分方式,从而增强网络兼容性。
进一步,在本发明的另一个实施例中,使用的起始位置信息字段包括起始LCU位置信息字段和起始SCU位置信息字段,使解码装置在解码时可以直接解析起始LCU位置信息字段和起始SCU位置信息字段中的位置信息,再根据解析得到的位置信息直接定位到条带的起始位置,从而提高解码效率。
进一步,在本发明的另一个实施例中,可以在结束位置信息字段写入当前条带的结束位置信息,使解码装置可以直接根据该结束位置信息确定解码完成,从而在确保正确解码的同时提高解码效率。
进一步,在本发明的另一个实施例中,可以为当前条带中所有CU的条带结束标志位赋值,并且将结束CU中的条带结束标志位赋值为有效,使解码装置在解码时可以根据解码得到的条带结束标志位的值是否有效确定解码是否完成,从而在确保正确解码的同时提高解码效率。
图2描述了本发明另一个实施例提供的条带编码方法的流程,该实施例包括:
201、根据判决信息确定当前划分对象的条带划分类型,按照确定的条带划分类型将当前划分对象划分成条带。
202、在起始位置信息字段写入当前条带的起始位置信息,将当前划分对象的条带划分类型信息写入划分类型信息字段;该划分类型信息字段可以位于序列参数集的头、或图像参数集的头、或条带的条带头等。
在本发明的一个实施例中,起始位置信息字段只包括一个字段,即可以直接将当前条带的起始位置信息写入该一个字段,此时当前条带的起始位置信息可以为结束SCU在图像中的绝对位置信息。
在本发明的另一个实施例中,起始位置信息字段包括起始LCU位置信息字段和起始SCU位置信息字段;此时,在起始位置信息字段写入当前条带的起始位置信息具体为:如果条带划分类型为按LCU划分,仅在起始LCU位置信息字段写入当前条带的起始LCU在图像中的绝对位置信息;如果条带划分类型为按CU划分,在起始LCU位置信息字段写入起始LCU在图像中的绝对位置信息,在起始SCU位置信息字段写入起始SCU在起始LCU中的相对位置信息。
203、对写入了起始位置信息和条带划分类型信息的当前条带进行编码,输出编码码流。
其中,具体可以采用VLC编码方式或非VLC编码方式对当前条带进行编码。
在本发明的一个实施例中,如果采用非VLC编码方式对当前条带进行编码,在对当前条带进行编码前可以进一步包括步骤:在结束位置信息字段写入当前条带的结束位置信息。可以理解的是,在采用VLC编码方式对当前条带进行编码时,也可以在对当前条带进行编码前包括该步骤。结束位置信息字段可以位于当前条带的条带头,也可以位于序列参数集的头,也可以位于图像参数集的头等。
在本发明的一个实施例中,结束位置信息字段只包括一个字段,即可以直接将当前条带的结束位置信息写入该一个字段,例如当前条带的结束位置信息为当前条带的长度信息,此时,当前条带的结束位置可以通过当前条带的起始位置信息以及当前条带的长度信息共同确定;在本发明的一个实施例中当前条带的长度信息具体为:当前条带包括的LCU的数量以及结束CU在结束LCU中的顺序相对位置或倒序相对位置;或当前条带包括的CU的数量;或当前条带包括的SCU的数量。在本发明的另一个实施例中,当前条带的结束位置信息也可以为结束SCU在图像中的绝对位置信息。
在本发明的另一个实施例中,结束位置信息字段包括结束LCU位置信息字段和结束SCU位置信息字段;此时,在结束位置信息字段写入当前条带的结束位置信息具体为:如果条带划分类型为按LCU划分,仅在结束LCU位置信息字段写入当前条带的结束LCU在图像中的绝对位置信息;如果条带划分类型为按CU划分,在结束LCU位置信息字段写入结束LCU在图像中的绝对位置信息,在结束SCU位置信息字段写入结束SCU在结束LCU中的相对位置信息。
在本发明的另一个实施例中,如果采用非VLC编码方式对当前条带进行编码,在条带划分类型为按LCU划分时,对当前条带进行编码前进一步包括:为当前条带中所有LCU的条带结束标志位赋值,条带结束标志位位于当前条带包括的每一个LCU的最后一个SCU的数据净载的最后一位,其中结束LCU中的条带结束标志位赋值为有效。在条带划分类型为按CU划分时,对当前条带进行编码前进一步包括:为当前条带中所有CU的条带结束标志位赋值,条带结束标志位位于当前条带包括的每一个CU的最后一个SCU的数据净载的最后一位,其中结束CU中的条带结束标志位赋值为有效。可以理解的是,在采用VLC编码方式对当前条带进行编码时,也可以在对当前条带进行编码前包括该步骤。
从上可知,本实施例可以根据判决信息确定当前划分对象的条带划分类型,按照确定的条带划分类型将当前划分对象划分成条带,使划分成的条带的数据量大小能够适应网络,并且在不同的网络可以采用不同的条带划分方式,从而增强网络兼容性;同时,本实施例还可以将当前划分对象的条带划分类型信息写入划分类型信息字段,使解码装置可以获知当前条带的划分类型,从而根据该划分类型信息确定解码是否完成,在确保正确解码的同时提高解码效率。
进一步,在本发明的另一个实施例中,使用的起始位置信息字段包括起始LCU位置信息字段和/或起始SCU位置信息字段,使解码装置在解码时可以直接解析起始LCU位置信息字段和/或起始SCU位置信息字段中的位置信息,再根据解析得到的位置信息直接定位到条带的起始位置,从而提高解码效率。由于解码装置可以获知当前条带的划分类型,在当前条带按LCU划分时,可以仅向起始LCU位置信息字段写入数据,而不需要向起始SCU位置信息字段写入数据,从而可以减少需要写入的数据量,提高编码效率;也可以使解码装置不需要解析起始SCU位置信息字段,进一步提高解码效率。
进一步,在本发明的另一个实施例中,可以在结束位置信息字段写入当前条带的结束位置信息,使解码装置可以直接根据该结束位置信息确定解码完成,从而在确保正确解码的同时提高解码效率。在本发明的另一个实施例中,使用的结束位置信息字段包括结束LCU位置信息字段和/或结束SCU位置信息字段,使解码装置在解码时可以直接解析结束LCU位置信息字段和/或结束SCU位置信息字段中的位置信息,再根据解析得到的位置信息直接定位到条带的结束位置,从而提高解码效率。如果解码装置可以获知当前条带的划分类型,在当前条带按LCU划分时,可以仅向结束LCU位置信息字段写入数据,而不需要向结束SCU位置信息字段写入数据,从而可以减少需要写入的数据量,提高编码效率;也可以使解码装置不需要解析结束SCU位置信息字段,进一步提高解码效率。
进一步,在本发明的另一个实施例中,可以为当前条带中所有CU的条带结束标志位赋值,并且将结束CU中的条带结束标志位赋值为有效,使解码装置在解码时可以根据解码得到的条带结束标志位的值是否有效确定解码是否完成,从而在确保正确解码的同时提高解码效率。如果解码装置可以获知当前条带的划分类型,因此解码装置可以在当前条带按LCU划分时,仅解析当前条带最后一个CU的结束标志位就可以确定解码是否完成,进一步提高解码效率。
图3描述了本发明另一个实施例提供的条带编码方法的流程,包括:
301、按CU将当前划分对象划分成条带。
302、在起始位置信息字段写入当前条带的起始位置信息。
其中,起始位置信息字段可以位于当前条带的条带头,也可以位于序列参数集的头,也可以位于图像参数集的头等。
当前条带的起始位置信息包括:当前条带中起始LCU在图像中的绝对位置信息、以及当前条带中起始SCU在起始LCU中的相对位置信息。
303、对当前条带进行编码,输出编码码流。
其中,具体可以采用VLC编码方式或非VLC编码方式对当前条带进行编码。
在本发明的一个实施例中,如果采用非VLC编码方式对当前条带进行编码,在对当前条带进行编码前可以进一步包括步骤:在结束位置信息字段写入当前条带的结束位置信息。可以理解的是,在采用VLC编码方式对当前条带进行编码时,也可以在对当前条带进行编码前包括该步骤。结束位置信息字段可以位于当前条带的条带头,也可以位于序列参数集的头,也可以位于图像参数集的头等。
在本发明的一个实施例中,结束位置信息字段只包括一个字段,即可以直接将当前条带的结束位置信息写入该一个字段,例如当前条带的结束位置信息为当前条带的长度信息,此时,当前条带的结束位置可以通过当前条带的起始位置信息以及当前条带的长度信息共同确定;在本发明的一个实施例中当前条带的长度信息具体为:当前条带包括的LCU的数量以及结束CU在结束LCU中的顺序相对位置或倒序相对位置;或当前条带包括的CU的数量;或当前条带包括的SCU的数量。在本发明的另一个实施例中,当前条带的结束位置信息也可以为结束SCU在图像中的绝对位置信息。
在本发明的另一个实施例中,结束位置信息字段包括结束LCU位置信息字段和结束SCU位置信息字段;此时,在结束位置信息字段写入当前条带的结束位置信息具体为:在结束LCU位置信息字段写入当前条带的结束LCU在图像中的绝对位置信息,在结束SCU位置信息字段写入结束SCU在结束LCU中的相对位置信息。
在本发明的另一个实施例中,如果采用非VLC编码方式对当前条带进行编码,在对当前条带进行编码前可以进一步包括步骤:为当前条带中所有CU的条带结束标志位赋值,该条带结束标志位位于当前条带包括的每一个CU的最后一个SCU的数据净载的最后一位,其中结束CU中的条带结束标志位赋值为有效。可以理解的是,在采用VLC编码方式对当前条带进行编码时,也可以在对当前条带进行编码前包括该步骤。
从上可知,本实施例可以使用的起始位置信息字段包括起始LCU位置信息字段和起始SCU位置信息字段,使解码装置在解码时可以直接解析起始LCU位置信息字段和起始SCU位置信息字段中的位置信息,再根据解析得到的位置信息直接定位到条带的起始位置,从而提高解码效率。
进一步,在本发明的另一个实施例中,可以在结束位置信息字段写入当前条带的结束位置信息,使解码装置可以直接根据该结束位置信息确定解码完成,从而在确保正确解码的同时提高解码效率。
进一步,在本发明的另一个实施例中,可以为当前条带中所有CU的条带结束标志位赋值,并且将结束CU中的条带结束标志位赋值为有效,使解码装置在解码时可以根据解码得到的条带结束标志位的值是否有效确定解码是否完成,从而在确保正确解码的同时提高解码效率。
在本发明实施例提供的条带编码方法中,在对当前条带的第一个LCU进行编码时,可以进一步根据当前CU在第一个LCU中的位置信息确定是否为当前CU设置分裂标识位。具体地,如果当前CU不在当前划分对象范围内或当前CU的尺寸为SCU的尺寸,可以不对当前CU的分裂标识位进行编码。在当前CU在当前划分对象范围内且当前CU的尺寸大于SCU的尺寸,且当前CU结束位置大于等于当前条带起始CU的位置时,才对当前CU的分裂标识位进行编码。由此可见,本实施例可以不对某些CU的分裂标识位进行编码,因此不需要传输这些分裂标识位的数据,从而可以降低网络的占用,提高网络的利用效率。
如下再介绍本发明实施例提供的条带解码方法,图4描述了本发明一个实施例提供的条带解码方法的流程,包括:
401、从起始位置信息字段解析当前条带的起始位置信息。
在本发明的一个实施例中,起始位置信息字段包括起始LCU位置信息字段和起始SCU位置信息字段;该情况下,从起始位置信息字段解析当前条带的起始位置信息具体为:从起始LCU位置信息字段解析当前条带的起始LCU的绝对位置信息,从起始SCU位置信息字段解析当前条带的起始SCU的相对位置信息。
402、根据起始位置信息开始对当前条带的解码,并根据预置处理方式确定完成对当前条带的解码。
在本发明的一个实施例中,根据预置处理方式确定完成对当前条带的解码具体为:从结束位置信息字段解析当前条带的结束位置信息;根据结束位置信息确定完成对当前条带的解码。在本发明的一个实施例中,结束位置信息字段包括结束LCU位置信息字段和结束SCU位置信息字段;该情况下,从结束位置信息字段解析当前条带的结束位置信息具体为:从结束LCU位置信息字段解析当前条带的结束LCU的绝对位置信息,从结束SCU位置信息字段解析当前条带的结束SCU的相对位置信息。在本发明的另一个实施例中,解析得到的当前条带的结束位置信息是当前条带的长度信息,可以根据该长度信息以及当前条带的起始位置信息确定是否完成对当前条带的解码;在本发明的另一个实施例中,解析得到的当前条带的结束位置信息是结束SCU的绝对位置信息,可以直接根据结束SCU的绝对位置信息确定是否完成解码。
在本发明的另一个实施例中,根据预置处理方式确定完成对当前条带的解码具体为:判断当前CU的条带结束标志位的值是否有效,如果有效,确定完成对当前条带的解码,该条带结束标志位位于当前CU的最后一个SCU的数据净载的最后一位。
在本发明的另一个实施例中,当前条带是采用VLC编码方式编码获得,因此根据预置处理方式确定完成对当前条带的解码具体可以是:判断当前CU是否还有数据净载,如果当前CU没有数据净载,则可以确认完成对当前条带的解码。
403、输出解码得到的当前条带的重建图像。
从上可知,本实施例中当前条带按照条带划分类型划分获得,并且条带划分类型根据判决信息确定,因此划分成的条带的尺寸能够适应网络,并且在不同的网络可以采用不同的条带划分方式,从而增强网络兼容性。
进一步,在本发明的另一个实施例中,使用的起始位置信息字段包括起始LCU位置信息字段和起始SCU位置信息字段,因此可以直接解析起始LCU位置信息字段和起始SCU位置信息字段中的位置信息,再根据解析得到的位置信息直接定位到条带的起始位置,从而提高解码效率。
进一步,在本发明的另一个实施例中,可以直接根据结束位置信息确定解码完成,从而在确保正确解码的同时提高解码效率。
进一步,在本发明的另一个实施例中,可以根据解码得到的条带结束标志位的值是否有效确定解码是否完成,从而在确保正确解码的同时提高解码效率。
图5描述了本发明另一个实施例提供的条带解码方法的流程,包括:
501、从头信息中解析获得当前条带的条带划分类型信息。
502、根据条带划分类型信息从起始位置信息字段解析当前条带的起始位置信息。
在本发明的一个实施例中,条带划分类型信息为按LCU划分,该情况下,根据条带划分类型信息从起始位置信息字段解析当前条带的起始位置信息具体为:从起始LCU位置信息字段解析当前条带的起始LCU的绝对位置信息,该起始位置信息字段仅包括所述起始LCU位置信息字段。在本发明的另一个实施例中,条带划分类型信息为按CU划分,根据条带划分类型信息从起始位置信息字段解析当前条带的起始位置信息具体为:从起始LCU位置信息字段解析当前条带的起始LCU的绝对位置信息,从起始SCU位置信息字段解析当前条带的起始SCU的相对位置信息,起始位置信息字段包括起始LCU位置信息字段和起始SCU位置信息字段。在本发明的另一个实施例中,条带划分类型信息为按CU划分,根据条带划分类型信息从起始位置信息字段解析当前条带的起始位置信息具体为:从起始SCU位置信息字段解析当前条带的起始SCU的绝对位置信息,起始位置信息字段仅包括起始SCU位置信息字段。
503、根据起始位置信息开始对当前条带的解码,并根据预置处理方式确定完成对当前条带的解码。
在本发明的一个实施例中,根据预置处理方式确定完成对当前条带的解码具体为:从结束位置信息字段解析当前条带的结束位置信息;根据结束位置信息确定完成对当前条带的解码。在本发明的一个实施例中,解析得到的当前条带的结束位置信息是当前条带的长度信息,可以根据该长度信息以及当前条带的起始位置信息确定是否完成对当前条带的解码。在当前条带按LCU划分时,当前条带的长度信息可以为当前条带包括的LCU的数量;在当前条带按CU划分时,当前条带的长度信息可以为当前条带包括的LCU的数量以及结束CU在结束LCU中的顺序相对位置或倒序相对位置;或当前条带包括的CU的数量;或当前条带包括的SCU的数量。
在本发明的另一个实施例中,根据预置处理方式确定完成对所述当前条带的解码具体为:根据条带划分类型信息从结束位置信息字段解析当前条带的结束位置信息;根据结束位置信息确定完成对当前条带的解码。在本发明的一个实施例中,是根据条带划分类型信息从结束位置信息字段解析当前条带的结束位置信息,具体地:在本发明的一个实施例中,条带划分类型信息为按LCU划分,根据条带划分类型信息从结束位置信息字段解析当前条带的结束位置信息具体为:从结束LCU位置信息字段解析当前条带的结束LCU的绝对位置信息,结束位置信息字段仅包括结束LCU位置信息字段。在本发明的另一个实施例中,条带划分类型信息为按CU划分,根据条带划分类型信息从结束位置信息字段解析当前条带的结束位置信息具体为:从结束LCU位置信息字段解析当前条带的结束LCU的绝对位置信息,从结束SCU位置信息字段解析当前条带的结束SCU的相对位置信息,结束位置信息字段包括结束LCU位置信息字段和结束SCU位置信息字段;在本发明的另一个实施例中,条带划分类型信息为按CU划分,根据条带划分类型信息从结束位置信息字段解析当前条带的结束位置信息具体为:从结束SCU位置信息字段解析当前条带的结束SCU的绝对位置信息,结束位置信息字段仅包括结束SCU位置信息字段。
在本发明的另一个实施例中,根据预置处理方式确定完成对当前条带的解码具体为:如果条带划分类型信息为按LCU划分,判断当前LCU的条带结束标志位的值是否有效,如果有效,确定完成对当前条带的解码,条带结束标志位位于当前LCU的最后一个SCU的数据净载的最后一位。如果条带划分类型信息为按CU划分,判断当前CU的条带结束标志位的值是否有效,如果有效,确定完成对当前条带的解码,条带结束标志位位于当前CU的最后一个SCU的数据净载的最后一位。
在本发明的另一个实施例中,当前条带是采用VLC编码方式编码获得,因此根据预置处理方式确定完成对当前条带的解码具体可以是:判断当前CU是否还有数据净载,如果当前CU没有数据净载,则可以确认完成对当前条带的解码。
504、输出解码得到的当前条带的重建图像。
从上可知,本实施例中当前条带按照条带划分类型划分获得,并且条带划分类型根据判决信息确定,因此划分成的条带的尺寸能够适应网络,并且在不同的网络可以采用不同的条带划分方式,从而增强网络兼容性;同时,本实施例还可以根据解析到的条带划分类型信息获知当前条带的划分类型,从而根据该划分类型信息确定解码是否完成,在确保正确解码的同时提高解码效率。
进一步,在本发明的另一个实施例中,使用的起始位置信息字段包括起始LCU位置信息字段和起始SCU位置信息字段,因此可以直接解析起始LCU位置信息字段和起始SCU位置信息字段中的位置信息,再根据解析得到的位置信息直接定位到条带的起始位置,从而提高解码效率。由于可以获知当前条带的划分类型,在当前条带按LCU划分时,可以仅向起始LCU位置信息字段写入数据,而不需要向起始SCU位置信息字段写入数据,从而可以减少需要写入的数据量,提高编码效率;也不需要解析起始SCU位置信息字段,进一步提高解码效率。
进一步,在本发明的另一个实施例中,可以直接根据结束位置信息确定解码完成,从而在确保正确解码的同时提高解码效率。在本发明的另一个实施例中,使用的结束位置信息字段包括结束LCU位置信息字段和结束SCU位置信息字段,因此可以直接解析结束LCU位置信息字段和结束SCU位置信息字段中的位置信息,再根据解析得到的位置信息直接定位到条带的结束位置,从而提高解码效率。由于可以获知当前条带的划分类型,因此不需要解析结束SCU位置信息字段,进一步提高解码效率。
进一步,在本发明的另一个实施例中,可以根据解码得到的条带结束标志位的值是否有效确定解码是否完成,从而在确保正确解码的同时提高解码效率。由于可以获知当前条带的划分类型,因此可以在当前条带按LCU划分时,仅解析当前条带最后一个CU的结束标志位就可以确定解码是否完成,进一步提高解码效率。
图6描述了本发明另一个实施例提供的条带解码方法的流程,包括:
601、从起始位置信息字段解析当前条带的起始位置信息。
其中,当前条带的起始位置信息包括:当前条带中起始LCU在图像中的绝对位置信息、以及当前条带中起始SCU在起始LCU中的相对位置信息。
在本发明的一个实施例中,起始位置信息字段包括起始LCU位置信息字段和起始SCU位置信息字段;该情况下,从起始位置信息字段解析当前条带的起始位置信息具体为:从起始LCU位置信息字段解析当前条带的起始LCU的绝对位置信息,从起始SCU位置信息字段解析当前条带的起始SCU的相对位置信息。
602、根据起始位置信息开始对当前条带的解码,并根据预置处理方式确定完成对当前条带的解码。
在本发明的一个实施例中,根据预置处理方式确定完成对当前条带的解码具体为:从结束位置信息字段解析当前条带的结束位置信息;根据结束位置信息确定完成对当前条带的解码。其中,结束位置信息字段包括结束LCU位置信息字段和结束SCU位置信息字段;该情况下,从结束位置信息字段解析当前条带的结束位置信息具体为:从结束LCU位置信息字段解析当前条带的结束LCU的绝对位置信息,从结束SCU位置信息字段解析当前条带的结束SCU的相对位置信息。在本发明的另一个实施例中,解析得到的当前条带的结束位置信息是当前条带的长度信息,可以根据该长度信息以及当前条带的起始位置信息确定是否完成对当前条带的解码。其中,当前条带的长度信息可以为当前条带包括的LCU的数量以及结束CU在结束LCU中的顺序相对位置或倒序相对位置;或当前条带包括的CU的数量;或当前条带包括的SCU的数量。在本发明的另一个实施例中,解析得到的当前条带的结束位置信息是结束SCU的绝对位置信息,可以直接根据结束SCU的绝对位置信息确定是否完成解码。
603、输出解码得到的当前条带的重建图像。
从上可知,本实施例可以使用的起始位置信息字段包括起始LCU位置信息字段和起始SCU位置信息字段,因此可以直接解析起始LCU位置信息字段和起始SCU位置信息字段中的位置信息,再根据解析得到的位置信息直接定位到条带的起始位置,从而提高解码效率。
进一步,在本发明的另一个实施例中,可以直接根据该结束位置信息确定解码完成,从而在确保正确解码的同时提高解码效率。
进一步,在本发明的另一个实施例中,可以根据解码得到的条带结束标志位的值是否有效确定解码是否完成,从而在确保正确解码的同时提高解码效率。
在本发明实施例提供的条带解码方法中,根据起始位置信息开始对当前条带的解码的过程可以包括:如果当前CU不在所述当前划分对象范围内或当前CU的尺寸为SCU的尺寸,不对当前CU的分裂标识位解码;如果当前CU在当前划分对象范围内且当前CU的尺寸大于SCU的尺寸,且当前CU的起始位置大于等于条带起始CU的位置,才对当前CU的分裂标识位进行解码。由此可见,本实施例可以不对某些CU的分裂标识位进行编码,因此不需要传输这些分裂标识位的数据,从而可以降低网络的占用,提高网络的利用效率。
如下再介绍本发明实施例提供的HEVC语法结构。
表中C字段表示该语法元素的分类;Descripter制定对应语法的描述子。
1)在起始位置信息字段包括起始LCU位置信息字段和起始SCU位置信息字段时,本发明一个实施例提供的HEVC条带头起始位置的语法结构如表一所示。
表1
  slice_header(){   C   Descriptor
  ...
  first_lcu_is_zero_flag   2   u(1)
  if(first_lcu_is_zero_flag==0){
        first_lcu_in_slice_minus_1   2   u(v)
  }
  first_scu_is_zero_flag   2   u(1)
  if(first_scu_is_zero_flag==0){
       first_scu_in_slice_minus_1   2   u(v)
  }
....
  }
表1中,first_lcu_is_zero_flag用于标示条带起始位置的LCU是不是图像内第一个LCU,如果first_lcu_is_zero_flag等于1,则条带起始的LCU位置设为0,条带解码将从图像第一个LCU中的某个CU开始。
first_lcu_in_slice_minus_1用于标示条带的第一个LCU的位置(SliceStartLCUAddress),条带解码将从该LCU中的某个CU开始。SliceStartLCUAddress的计算如公式一所示。
SliceStartLCUAddress=first_lcu_in_slice_minus_1+1            (公式一)
first_scu_is_zero_flag用于标示条带起始位置的CU是不是起始LCU中的第一个CU,如果first_scu_is_zero_flag等于1,则条带起始的CU位置设为0,条带解码从起始LCU的第一个CU开始。
first_scu_in_slice_minus_1用于标示条带的第一个CU在起始LCU中的具体位置(SliceStartSCUAddress),即条带的第一个CU的左上角SCU在所属LCU中的相对位置偏移,条带解码从该CU开始,SliceStartSCUAddress的计算如公式二所示。
SliceStartSCUAddress=first_scu_in_slice_minus_1+1            (公式二)
解码时,在解析条带头的过程中分两步获取起始位置信息:
第一步:先根据第一级的信息来得到条带起始位置所属的LCU:先解析first_lcu_is_zero_flag来确定条带起始LCU是否是图像的第一个LCU,如果不是则需要进一步解析first_lcu_in_slice_minus_1来计算条带起始LCU的具体位置,具体计算过程如上述公式一所示。
第二步:再解析first_scu_is_zero_flag来确定条带起始CU是否是LCU中的第一个CU。在基于LCU的条带划分中,first_scu_is_zero_flag的值必然为1,则不需要进一步解析第二级的信息,条带解码从条带起始LCU的第一个CU开始;在基于CU的条带划分中,first_scu_is_zero_flag可能为0,则需要进一步解析第二级的信息来精确的定位条带解码的起始位置(SliceStartSCUAddress),具体计算过程如上述公式二所示,条带解码从条带起始LCU中相对位置为SliceStartSCUAddress的CU开始。
2)在结束位置信息字段包括结束LCU位置信息字段和结束SCU位置信息字段时,在结束LCU位置信息为结束LCU在图像中的顺序绝对位置、且结束SCU位置信息为结束SCU在结束LCU中的顺序相对位置时,本发明一个实施例提供的HEVC条带头结束位置的语法结构如表2所示。
表2
slice_header(){   C   Descriptor
...
  last_lcu_is_zero_flag   2   u(1)
  if(last_lcu_is_zero_flag==0){
      last_lcu_in_slice_minus_1   2   u(v)
  }
  last_scu_is_end_flag   2   u(1)
  if(last_scu_is_end_flag==0){
      last_scu_in_slice_minus_1   2   u(v)
  }
...
}
表2中,last_lcu_is_zero_flag用于标示条带结束位置的LCU是不是图像内第一个LCU,如果last_lcu_is_zero_flag等于1,则条带结束的LCU位置设为0,条带解码将结束于第一个LCU中的某个CU。
last_lcu_in_slice_minus_1用于标示条带的最后一个LCU的位置(SliceEndLCUAddress),条带解码将结束于该LCU中的某个CU,SliceEndLCUAddress计算如公式三所示。
SliceEndLCUAddress=last_lcu_in_slice_minus_1+1           (公式三)
last_scu_is_end_flag用于标示条带结束位置的CU是不是结束LCU中的最后一个CU,如果last_scu_is_end_flag等于1,则条带结束的CU位置设为LCU的最后一个CU,条带解码至结束LCU的最后一个CU截止。
last_scu_in_slice_minus_1用于标示条带的最后一个CU在结束LCU中的具体位置(SliceEndSCUAddress),即条带的最后一个CU的右下角SCU在所属LCU中的相对位置偏移,条带解码至该CU截止。SliceEndSCUAddress计算如公式四所示。
SliceEndSCUAddress=NumSCUsInLCU-2-last_scu_in_slice_minus_1
                                                    (公式四)
其中,公式四中NumSCUsInLCU为一个LCU所包含的SCU的总个数。
解码时,在解析条带头的过程中分两步获取结束位置信息:
第一步:先根据第一级的信息来得到条带结束位置所属的LCU:先解析last_lcu_is_zero_flag来确定条带结束LCU是否是图像的第一个LCU,如果不是则需要进一步解析last_lcu_in_slice_minus_1来计算条带起始LCU的具体位置,具体计算过程如上述公式四所示。
第二步:再解析last_scu_is_end_flag来确定条带结束CU是否是LCU中的最后一个CU。在基于LCU的条带划分中,last_scu_is_end_flag的值必然为1,则不需要进一步解析第二级的信息,条带解码至条带结束LCU的最后一个CU结束;在基于CU的条带划分中,last_scu_is_end_flag可能为0,则需要进一步解析第二级的信息来精确的定位条带解码的结束位置(SliceEndSCUAddress),具体计算过程如上述公式四所示,条带解码至条带结束LCU中相对位置为SliceEndSCUAddress的CU结束。
3)在结束位置信息字段包括结束LCU位置信息字段和结束SCU位置信息字段时,在结束LCU位置信息为结束LCU在图像中的倒序绝对位置、且结束SCU位置信息为结束SCU在结束LCU中的倒序相对位置时,本发明一个实施例提供的HEVC条带头结束位置的语法结构如表3所示。
表3
slice_header(){   C   Descriptor
  last_lcu_is_end_flag   2   u(1)
  if(last_lcu_is_end_flag==0){
      last_lcu_in_slice_minus_1   2   u(v)
  }
}
表3中,last_lcu_is_end_flag用于标示条带结束位置的LCU是不是图像内最后一个LCU,如果last_lcu_is_end_flag等于1,则条带结束的LCU位置设为NumLCUsInPicture-1,其中NumLCUsInPicture为一个视频图像所包含的LCU的总个数。条带解码将结束于图像最后一个LCU中的某个CU。
last_lcu_in_slice_minus_1用于标示条带的最后一个LCU的位置(SliceEndLCUAddress),条带解码将结束于该LCU中的某个CU。SliceEndLCUAddress计算如公式五所示。
SliceEndLCUAddress=NumLCUsInPicture-2-last_lcu_in_slice_minus_1
                                                       (公式五)
4)在CU具有条带结束标志位时,本发明一个实施例提供的HEVC编码单元结束标志位的语法结构如表4所示。
表4
coding_unit(...,&moreDataFlag){   C   Descriptor
   ...
   if(split_coding_unit_flag){
      ...
   }else{
     ...
     if(!entropy_coding_mode_flag)   2   u(v)
      moreDataFlag=more_rbsp_data()
     else{
        end_of_slice_flag
   moreDataFlag=!end_of_slice_flag
  }
 }
}
表4中,split_coding_unit_flag用于标示当前的CU是否要进一步分裂。split_coding_unit_flag等于1,则当前CU将继续分裂为四个等大的更深一级的CU;split_coding_unit_flag等于0,则当前CU不再进行分裂,是进行编码的最后一级的CU。
moreDataFlag用于标示后续是否还有当前条带的数据。moreDataFlag等于1,则当前条带还有更多数据等待解码,条带解码将继续;moreDataFlag等于0,则当前条带的数据已经全部解码完毕,条带解码将结束。
more_rbsp_data用于判断数据净载是否结束。如果当前条带没有更多数据净载,该操作返回0,否则返回1。
entropy_coding_mode_flag用于选取语法元素的熵编码方式。entropy_coding_mode_flag等于0,表示该种编码方法可以通过判断码流数据结束来推断条带的结束,则不需要写条带结束标志位;entropy_coding_mode_flag等于1,表示该种编码方法不能通过判断码流数据结束来推断条带的结束,则需要些条带结束标志位。
end_of_slice_flag是条带结束标记位。end_of_slice_flag等于1,表示当前CU是条带中的最后一个CU,条带解码结束;end_of_slice_flag等于0,表示当前CU不是条带中最后一个CU,当前条带需继续解码下一个CU。
解码时,对每个CU都会先根据split_coding_unit_flag判断是否继续分裂,如果split_coding_unit_flag等于1,则将当前CU分裂为四个更小的CU,并对每个CU都进行相同的CU解析操作;直到某个CU的split_coding_unit_flag等于0,则当前CU为实际进行解码的单元,进入解码重建过程,并在当前解码重建结束之后解析条带结束标志位。其过程是,先根据entropy_coding_mode_flag来判断当前条带的熵编码类型,如果entropy_coding_mode_flag等于0,则根据操作more_rbsp_data( )来给moreDataFlag赋值;如果entropy_coding_mode_flag等于1,则需要解析标志位end_of_slice_flag,并给moreDataFlag赋值moreDataFlag等于1,则条带解码将继续;moreDataFlag等于0,则条带解码将结束。
5)在起始位置信息字段包括起始LCU位置信息字段和/或起始SCU位置信息字段时,本发明一个实施例提供的HEVC条带头起始位置的语法结构如表5或表6所示。
表5
slice_header( ){   C   Descriptor
    ...
    first_lcu_is_zero_flag   2   u(1)
    if(first_lcu_is_zero_flag==0){
         first_lcu_in_slice_minus_1   2   u(v)
    }
    if(lcu_slice_flag==0){
      first_scu_is_zero_flag   2   u(1)
      if(first_scu_is_zero_flag==0){
           first_scu_in_slice_minus_1   2   u(v)
      }
    }
    ...
  }
表6
slice_header( ){   C   Descriptor
...
if(lcu_slice_flag==1){
  first_lcu_is_zero_flag   2   u(1)
  if(first_lcu_is_zero_flag==0){
       first_lcu_in_slice_minus_1   2   u(v)
  }
}else{
     first_scu_is_zero_flag   2   u(1)
if(fist_scu_is_zero_flag==0){
first_scu_in_slice_minus_1   2   u(v)
    }
  }
....
}
表5和表6中,fist_lcu_is_zero_flag用于标示条带起始位置的LCU是不是图像内第一个LCU,如果first_lcu_is_zero_flag等于1,则条带起始的LCU位置设为0,条带解码将从图像第一个LCU中的某个CU开始。
first_lcu_in_slice_minus_1用于标示条带的第一个LCU的位置(SliceStartLCUAddress),条带解码将从该LCU中的某个CU开始。SliceStartLCUAddress计算如公式六所示。
SliceStartLCUAddress=fist_lcu_in_slice_minus_1+1            (公式六)
lcu_slice_flag用于标示当前条带的划分类型,lcu_slice_flag等于1表示当前条带划分是基于LCU的,则不需要进一步写明条带起始CU的位置;lcu_slice_flag等于0表示当前条带划分是基于CU的,则需要进一步写明条带起始的CU的位置。该标识符的值一般通过如实施例一所示方法解析得到,也可能通过默认值进行设置。
表5中,first_scu_is_zero_flag用于标示条带起始位置的CU是不是起始LCU中的第一个CU,如果first_scu_is_zero_flag等于1,则条带起始的CU位置设为0,条带解码从起始LCU的第一个CU开始。表6中,first_scu_is_zero_flag用于标示条带起始位置的CU是不是图像中的第一个CU,如果first_scu_is_zero_flag等于1,则条带起始的CU位置设为0,条带解码从图像的第一个CU开始。
表5中,fist_scu_in_slice_minus_1用于标示条带的第一个CU在起始LCU中的具体位置(SliceStartSCUAddress),即条带的第一个CU的左上角SCU在所属LCU中的相对位置偏移,条带解码从该CU开始。SliceStartSCUAddress计算如公式七所示。
SliceStartSCUAddress=fist_scu_in_slice_minus_1+1            (公式七)
表6中,first_scu_in_slice_minus_1用于标示条带的第一个CU在图像中的具体位置(SliceStartSCUAddress),即条带的第一个CU的左上角SCU在所属图像中的绝对位置偏移,条带解码从该CU开始。SliceStartSCUAddress计算也如公式七所示。
解码时,在解析条带头的过程中分两步获取起始位置信息:
第一步:先根据第一级的信息来得到条带起始位置所属的LCU:先解析first_lcu_is_zero_flag来确定条带起始LCU是否是图像的第一个LCU,如果不是则需要进一步解析first_lcu_in_slice_minus_1来计算条带起始LCU的具体位置,具体计算过程如上述公式六所示。
第二步:再根据lcu_slice_flag判断条带划分类型。lcu_slice_flag等于1,表明是基于LCU的条带划分,则不需要进一步解析第二级的信息,条带解码从条带起始LCU的第一个CU开始;lcu_slice_flag等于0,表明是基于CU的条带划分,则需要进一步解析第二级的信息来精确的定位条带解码的起始位置(SliceStartSCUAddress)。先解析first_scu_is_zero_flag来确定条带起始CU是否是所属LCU的第一个CU,如果不是则需要进一步解析first_scu_in_slice_minus_1来计算条带起始CU的具体位置,,具体计算过程如上述公式七所示,条带解码从条带起始LCU中相对位置为SliceStartSCUAddress的CU开始。
第一步:根据lcu_slice_flag判断条带划分类型。
第二步:若lcu_slice_flag等于1,表明是基于LCU的条带划分,则只需解析条带起始LCU的位置。先解析first_lcu_is_zero_flag来确定条带起始LCU是否是图像的第一个LCU,如果不是则需要进一步解析first_lcu_in_slice_minus_1来计算条带起始LCU的具体位置,具体计算过程如上述公式六所示;若lcu_slice_flag等于0,表明是基于CU的条带划分,则需要解析条带起始SCU的位置。先解析first_scu_is_zero_flag来确定条带起始CU是否是所属LCU的第一个CU,如果不是则需要进一步解析first_scu_in_slice_minus_1来计算条带起始CU的具体位置,,具体计算过程如上述公式七所示,条带解码从条带起始LCU中相对位置为SliceStartSCUAddress的CU开始。
6)在结束位置信息字段包括结束LCU位置信息字段和结束SCU位置信息字段时,在结束LCU位置信息为结束LCU在图像中的顺序绝对位置、且结束SCU位置信息为结束SCU在结束LCU中的顺序相对位置时,本发明一个实施例提供的HEVC条带头结束位置的语法结构如表7或表8所示。
表7
slice_header(){   C   Descriptor
   ...
   last_lcu_is_zero_flag   2   u(1)
   if(last_lcu_is_zero_flag==0){
       last_lcu_in_slce_minus_1   2   u(v)
   }
  if(lcu_slice_flag==0){
      last_scu_is_zero_flag   2   u(1)
   if(last_scu_is_zero_flag==0){
       last_scu_in_slice_minus_1   2   u(v)
   }
 }
 ...
}
表8
slice_header( ){   C   Descriptor
  ...
  if(lcu_slice_flag==0){
     last_lcu_is_zero_flag   2   u(1)
   if(last_lcu_is_zero_flag==0){
       last_lcu_in_slice_minus_1   2   u(v)
   }
}else{
   last_scu_is_zero_flag   2   u(1)
   if(last_scu_is_zero_flag==0){
       last_scu_in_slice_minus_1   2   u(v)
   }
 }
 ...
}
表7和表8中,last_lcu_is_zero_flag用于标示条带结束位置的LCU是不是图像内第一个LCU,如果last_lcu_is_zero_flag等于1,则条带结束的LCU位置设为0,条带解码将结束于第一个LCU中的某个CU。
last_lcu_in_slice_minus_1用于标示条带的最后一个LCU的位置(SliceEndLCUAddress),条带解码将结束于该LCU中的某个CU。SliceEndLCUAddress计算如公式八所示。
SliceEndLCUAddress=last_lcu_in_slice_minus_1+1             (公式八)
lcu_slice_flag用于标示当前条带的划分类型,lcu_slice_flag等于1表示当前条带划分是基于LCU的,则不需要进一步写明条带结束CU的位置;lcu_slice_flag等于0表示当前条带划分是基于CU的,则需要进一步写明条带结束CU的位置。该标识符的值一般通过如实施例一所示方法解析得到,也可能通过默认值进行设置。
表7中,last_scu_is_zero_flag用于标示条带结束位置的CU是不是结束LCU中的第一个CU,如果last_scu_is_zero_flag等于1,则条带结束的CU位置设为0,条带解码至结束LCU的第一个CU截止。表8中,last_scu_is_zero_flag用于标示条带结束位置的CU是不是图像中的第一个CU,如果last_scu_is_zero_flag等于1,则条带结束的CU位置设为0,条带解码至图像的第一个CU截止。
表7中,last_scu_in_slice_minus_1用于标示条带的最后一个CU在结束LCU中的具体位置(SliceEndSCUAddress),即条带的最后一个CU的右下角SCU在所属LCU中的相对位置偏移,条带解码至该CU截止。SliceEndSCUAddress计算如公式九所示。
SliceEndSCUAddress=last_scu_in_slice_minus_1+1             (公式九)
表8中,last_scu_in_slice_minus_1用于标示条带的最后一个CU在图像中的具体位置(SliceEndSCUAddress),即条带的最后一个CU的右下角SCU在所属图像中的绝对位置,条带解码至该CU截止。SliceEndSCUAddress计算如公式九所示。
解码时,在解析条带头的过程中分两步获取结束位置信息:
第一步:先根据第一级的信息来得到条带结束位置所属的LCU:先解析last_lcu_is_zero_flag来确定条带结束LCU是否是图像的第一个LCU,如果不是则需要进一步解析last_lcu_in_slice_minus_1来计算条带起始LCU的具体位置,具体计算过程如上述公式八所示。
第二步:再根据lcu_slice_flag判断条带划分类型。lcu_slice_flag等于1,表明是基于LCU的条带划分,则不需要进一步解析第二级的信息,条带解码至条带结束LCU的最后一个CU结束;lcu_slice_flag等于0,表明是基于CU的条带划分,则需要进一步解析第二级的信息来精确的定位条带解码的结束位置(SliceEndSCUAddress),先解析last_scu_is_zero_flag来确定条带结束CU是否是所属LCU的第一个CU,如果不是则需要进一步解析last_scu_in_slice_minus_1来计算条带结束CU的具体位置,具体计算过程如上述公式九所示,条带解码至条带结束LCU中相对位置为SliceEndSCUAddress的CU结束。
第一步:根据lcu_slice_flag判断条带划分类型。
第二步:若lcu_slice_flag等于1,表明是基于LCU的条带划分,则只需解析条带结束LCU的位置。先解析firs_lcut_is_zero_flag来确定条带结束LCU是否是图像的第一个LCU,如果不是则需要进一步解析first_lcu_in_slice_minus_1来计算条带结束LCU的具体位置,具体计算过程如上述公式八所示;若lcu_slice_flag等于0,表明是基于CU的条带划分,则需要解析条带结束SCU的位置。先解析first_scu_is_zero_flag来确定条带结束CU是否是所属LCU的第一个CU,如果不是则需要进一步解析first_scu_in_slice_minus_1来计算条带结束CU的具体位置,具体计算过程如上述公式九所示,条带解码从条带结束LCU中相对位置为SliceStartSCUAddress的CU开始。
7)在结束位置信息字段包括结束LCU位置信息字段和/或结束SCU位置信息字段时,在结束LCU位置信息为结束LCU在图像中的倒序绝对位置、且结束SCU位置信息为结束SCU在结束LCU中的倒序相对位置时,本发明一个实施例提供的HEVC条带头结束位置的语法结构如表9所示。
表9
slice_header(){   C   Descriptor
   if(lcu_slice_flag==0){
      last_scu_is_end_flag   2   u(1)
    if(last_scu_is_end_flag==0){
       last_scu_in_slice_minus_1   2   u(v)
    }
  }
 }
表9中,lcu_slice_flag用于标示当前条带的划分类型,lcu_slice_flag等于1表示当前条带划分是基于LCU的,则不需要进一步写明条带结束CU的位置;lcu_slice_flag等于0表示当前条带划分是基于CU的,则需要进一步写明条带结束CU的位置。该标识符的值一般通过如实施例一所示方法解析得到,也可能通过默认值进行设置。
last_scu_is_end_flag用于标示条带结束位置的CU是不是结束LCU中的最后一个CU,如果last_scu_is_end_flag等于1,则条带结束的CU位置设为LCU的最后一个CU,条带解码至结束LCU的最后一个CU截止。
last_scu_in_slice_minus_1用于标示条带的最后一个CU在结束LCU中的具体位置(SliceEndSCUAddress),即条带的最后一个CU的右下角SCU在所属LCU中的相对位置偏移,条带解码至该CU截止。SliceEndSCUAddress计算如公式十。
SliceEndSCUAddress=NumSCUsInLCU-2-last_scu_in_slice_minus_1
                                                     (公式十)
公式十中,NumSCUsInLCU为一个LCU所包含的SCU的总个数。
8)在CU具有条带结束标志位时时,本发明一个实施例提供的HEVC编码单元结束标志位的语法结构如表10或表11所示。
表10
  coding_unit(...,&moreDataFlag){   C   Descriptor
      ...
      if(split_coding_unit_flag){
         ...
      }else{
        ...
      if(last_lcu_is_end_flag==0){
      if(!entropy_coding_mode_flag)   2   u(v)
      moreDataFlag=more_rbsp_data()
      else{
        end_of_slice_flag
   moreDataFlag=!end_of_slice_flag
   }
  }
 }
}
表11
  slice_data( ){   C   Descriptor
      ...
  moreDataFlag=1
  do{
    ...
    coding_unit(...,moreDataFlag)   2|3|4
    if(last_lcu_is_end_flag==1){
     if(!entropy_coding_mode_flag)
      moreDataFlag=more_rbsp_data()
     else{
         end_of_slice_flag   2   ae(v)
   moreDataFlag=!end_of_slice_flag
   }
  }
  ....
 }while(moreDataFlag)
}
表10和表11中,lcu_slice_flag用于标示当前条带的划分类型,lcu_slice_flag等于1表示当前条带划分是基于LCU的,则不需要进一步写明条带结束CU的位置;lcu_slice_flag等于0表示当前条带划分是基于CU的,则需要进一步写明条带结束CU的位置。该标识符的值一般通过如实施例一所示方法解析得到,也可能通过默认值进行设置。
split_coding_unit_flag用于标示当前的CU是否要进一步分裂。split_coding_unit_flag等于1,则当前CU将继续分裂为四个等大的更深一级的CU;split_coding_unit_flag等于0,则当前CU不再进行分裂,是进行编码的最后一级的CU。
moreDataFlag用于标示后续是否还有当前条带的数据。moreDataFlag等于1,则当前条带还有更多数据等待解码,条带解码将继续;moreDataFlag等于0,则当前条带的数据已经全部解码完毕,条带解码将结束。
more_rbsp_data用于判断数据净载是否结束。如果当前条带没有更多数据净载,该操作返回0,否则返回1.
entropy_coding_mode_flag用于选取语法元素的熵编码方式。entropy_coding_mode_flag等于0,表示该种编码方法可以通过判断码流数据结束来推断条带的结束,则不需要写条带结束标志位;entropy_coding_mode_flag等于1,表示该种编码方法不能通过判断码流数据结束来推断条带的结束,则需要些条带结束标志位。
end_of_slice_flag是条带结束标记位。end_of_slice_flag等于1,表示当前CU是条带中的最后一个CU,条带解码结束;end_of_slice_flag等于0,表示当前CU不是条带中最后一个CU,当前条带需继续解码下一个CU。
解码时,对每个CU都会先根据split_coding_unit_flag判断是否继续分裂,如果split_coding_unit_flag等于1,则将当前CU分裂为四个更小的CU,并对每个CU都进行相同的CU解析操作;直到某个CU的split_coding_unit_flag等于0,则当前CU为实际进行解码的单元,进入解码重建过程,并在当前解码重建结束判断是否是基于CU的条带划分,若是则解析条带结束标志,否则不解析。
条带结束标志解析过程是,先根据entropy_coding_mode_flag来判断当前条带的熵编码类型,如果entropy_coding_mode_flag等于0,则根据操作more_rbsp_data( )来给moreDataFlag赋值;如果entropy_coding_mode_flag等于1,则需要解析标志位end_of_slice_flag,并给moreDataFlag赋值moreDataFlag等于1,则条带解码将继续;moreDataFlag等于0,则条带解码将结束。
条带数据解码语法中,对每一个LCU进行循环,每次循环的结束也会判断是否是基于CU条带划分,若不是则解析条带结束标志,若是则不解析。解析过程同上。
9)在条带的结束位置信息为条带的长度信息时,如果条带是按LCU划分,则可以在条带头中增加条带的LCU长度信息,本发明一个实施例提供的条带长度语法结构如表12所示。
表12
slice_header( ){   C   Descripto r
     slice_length_lcu   2   u(v)
}
slice_length_lcu用于标示当前条带所包含的LCU总个数。条带结束LCU的位置(SliceEndLCUAddress)可以根据该值以及起始LCU的位置(SliceStartLCUAddress)可以按照公式十一计算,条带解码结束于SliceEndLCUAddress对应的LCU。
SliceEndLCUAddress=SliceStartLCUAddress+slice_length_lcu
                                                    (公式十一)
10)在条带的结束位置信息为条带的长度信息时,如果条带是按CU划分,则可以在条带头中增加条带的LCU长度信息以及结束SCU在结束LCU中的相对位置信息,本发明一个实施例提供的条带长度语法结构如表13所示,该实施例中,结束SCU在结束LCU中的相对位置信息为顺序相对位置信息。
表13
slice_header( ){   C   Descripto r
     slice_length_lcu   2   u(v)
     last_scu_in_slice_minus_1   2   u(v)
   }
slice_length_lcu用于标示当前条带所包含的LCU总个数。条带结束LCU的位置(SliceEndLCUAddress)可以根据该值以及起始LCU的位置(SliceStartLCUAddress)可以按照公式十二计算,条带解码将结束于SliceEndLCUAddress对应的LCU中的某个CU。
SliceEndLCUAddress=SliceStartLCUAddress+slice_length_lcu    (公式十二)
last_scu_in_slice_minus_1用于标示条带的最后一个CU在结束LCU中的具体位置(SliceEndSCUAddress),即条带的最后一个CU的右下角SCU在所属LCU中的相对位置,条带解码至SliceEndSCUAddress对应的CU截止。SliceEndSCUAddress计算可以如公式十三所示。
SliceEndSCUAddress=last_scu_in_slice_minus_1+1         (公式十三)
11)在条带的结束位置信息为条带的长度信息时,如果条带是按CU划分,则可以在条带头中增加条带的CU长度信息,本发明一个实施例提供的条带长度语法结构如表14所示。
表14
slice_header( ){   C   Descripto r
     slice_length_cu_minus1   2   u(v)
}
slice_length_cu_minus1用于标示当前条带所包含的CU总个数(NumCUInSlice),NumCUInSlice的计算可以如公式十四所示。解码时记录已解码CU个数,当解码CU个数达到条带CU总个数,则结束条带解码。
NumCUInSlice=slice_length_cu_minus1+1      (公式十四)
12)在条带的结束位置信息为条带的长度信息时,如果条带是按CU划分,则可以在条带头中增加条带的SCU长度信息,本发明一个实施例提供的条带长度语法结构如表15所示。
表15
slice_header( ){   C   Descripto r
     slice_length_scu_minus1   2   u(v)
}
slice_length_scu_minus1用于标示当前条带所包含的SCU总个数,并可以根据该值以及条带起始LCU的位置(SliceStartLCUAddress)、条带起始CU在所属LCU中的相对位置(SliceStartSCUAddress)和LCU包含SCU的总数(NumSCUInLCU)来计算条带结束CU的具体位置,可以分别用该CU所在LCU的位置(SliceEndLCUAddress)以及该CU在LCU中的位置(SliceEndSCUAddress)表示,SliceEndLCUAddress的计算可以如公式十五所示,SliceEndSCUAddress的计算可以如公式十六所示。
SliceEndLCUAddress=SliceStartLCUAddress+(SliceStartSCUAddress+slice_length_scu_minus1+1)/NumSCUInLCU
                                                       (公式十五)
SliceEndSCUAddress=(SliceStartSCUAddress+slice_length_scu_minus1+1)%NumSCUInLCU
                                                      (公式十六)
13)在可以根据CU在LCU中的相对位置推断LCU每一层CU的分裂情况时,本发明一个实施例提供的分裂标识位语法结构如表16所示。
表16
Figure BDA0000043925940000361
CurrentCUInPicRange用于表示当前CU是否在视频图像区域内,CurrentCUInPicRange等于1表示当前CU所有像素都在视频图像区域内;CurrentCUInPicRange等于0表示当前CU有部分像素在视频图像区域外。
CurrCodingUnitSize标记当前CU的尺寸。
MinCodingUnitSize表示CU的最小尺寸。
LCUAddress用于标记当前CU所述LCU在图像中位置。
SliceStartLCUAddress用于标记条带起始LCU在图像中的位置。
split_coding_unit_flag标识当前CU是否进行进一步的分裂。split_coding_unit_flag等于1,则当前CU将分裂为四个等大的CU;split_coding_unit_flag等于0,则当前CU不再进行分裂,是一个最终的需实际解码的CU。
StartSCUAddress用于标记当前CU在LCU中的起始位置。
SliceStartSCUAddress用于标记条带起始SCU在LCU中的位置。
因此,解码过程中先确认当前CU是在视频图像范围内且大于最小的CU尺寸,再解析分裂标志位;否则,则不需要解析分裂标识位。
在判断当前CU是不是处于条带的第一个LCU中,如果不是则直接解析分裂标识位;否则进入以下步骤进行判断。
解码过程中先确认当前CU是在视频图像范围内且大于最小的CU尺寸,再解析分裂标志位;否则,则不需要解析分裂标识位。
进一步判断当前CU的起始位置与条带起始CU的位置的关系。如果当前CU的起始位置大于等于条带起始CU的位置,则需要进一步解析分裂标志位;如果当前CU结束位置小于条带起始CU的位置,则不需要进一步解析分裂标识位,其值为0;其他情况,也不需要进一步解析分裂标识位,其值为1。
若分裂标志位为0,则当前CU不再进行分裂,为最终的需实际解码的CU,进入解码重建过程;若分裂标志位为1,则当前CU分裂为四个等大的深一层CU,且对每一个深一层CU都进行完整的处理过程,即判断是否进一步分裂或直接解码。
在以上各实施例中描述位置信息时,包括起始LCU的绝对位置、起始SCU的相对位置、结束LCU的绝对位置、结束SCU的相对位置等,可直接对各位置的数值进行编码。其中,不限定数值的编码方式。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
如下再介绍本发明实施例提供的装置,图7描述了本发明一个实施例提供的条带编码装置的结构,包括:
确定单元701,用于根据判决信息确定当前划分对象的条带划分类型。
划分单元702,用于按照确定单元701确定的条带划分类型将当前划分对象划分成条带。
写入单元703,用于在起始位置信息字段写入划分单元702划分的当前条带的起始位置信息。
编码处理单元704,用于对写入单元703获得的当前条带进行编码,输出编码码流。
在本发明的另一个实施例中,写入单元703,还可以用于将702确定单元确定的当前划分对象的条带划分类型信息写入划分类型信息字段。
在本发明的另一个实施例中,写入单元703,具体用于在条带划分类型为按LCU划分时,在起始LCU位置信息字段写入当前条带的起始LCU在图像中的绝对位置信息,起始位置信息字段仅包括起始LCU位置信息字段;在条带划分类型为按CU划分时,在起始LCU位置信息字段写入起始LCU在图像中的绝对位置信息,在起始SCU位置信息字段写入起始SCU在起始LCU中的相对位置信息,起始位置信息字段包括起始LCU位置信息字段和起始SCU位置信息字段;或在条带划分类型为按CU划分时,在起始SCU位置信息字段写入起始SCU在起始LCU中的绝对位置信息,起始位置信息字段仅包括起始SCU位置信息字段。
在本发明的另一个实施例中,写入单元703还用于在结束位置信息字段写入当前条带的结束位置信息。
在本发明的另一个实施例中,写入单元703,具体用于在条带划分类型为按LCU划分时,在结束LCU位置信息字段写入当前条带的结束LCU在图像中的绝对位置信息,结束位置信息字段仅包括结束LCU位置信息字段;在条带划分类型为按CU划分时,在结束LCU位置信息字段写入结束LCU在图像中的绝对位置信息,在结束SCU位置信息字段写入所述结束SCU在所述结束LCU中的相对位置信息,结束位置信息字段包括结束LCU位置信息字段和结束SCU位置信息字段;或在条带划分类型为按CU划分时,在结束SCU位置信息字段写入结束SCU在所述结束LCU中的绝对位置信息,结束位置信息字段仅包括结束SCU位置信息字段。
在本发明的另一个实施例中,写入单元703,还用于在确定单元702确定的条带划分类型为按LCU划分时,为当前条带中所有LCU的条带结束标志位赋值,条带结束标志位位于当前条带包括的每一个LCU的最后一个SCU的数据净载的最后一位,其中结束LCU中的条带结束标志位赋值为有效;在确定单元702确定的条带划分类型为按CU划分时,为当前条带中所有CU的条带结束标志位赋值,条带结束标志位位于当前条带包括的每一个CU的最后一个SCU的数据净载的最后一位,其中结束CU中的条带结束标志位赋值为有效。
在本发明的另一个实施例中,编码处理单元704,还用于在对当前条带的第一个LCU进行编码时,根据当前CU在第一个LCU中的位置信息确定是否对当前CU的分裂标识位进行编码。
从上可知,本实施例可以根据判决信息确定当前划分对象的条带划分类型,按照确定的条带划分类型将当前划分对象划分成条带,使划分成的条带的数据量大小能够适应网络,并且在不同的网络可以采用不同的条带划分方式,从而增强网络兼容性。
进一步,在本发明的另一个实施例中,还可以将当前划分对象的条带划分类型信息写入划分类型信息字段,使解码装置可以获知当前条带的划分类型,从而根据该划分类型信息确定解码是否完成,在确保正确解码的同时提高解码效率。
进一步,在本发明的另一个实施例中,使用的起始位置信息字段包括起始LCU位置信息字段和起始SCU位置信息字段,使解码装置在解码时可以直接解析起始LCU位置信息字段和起始SCU位置信息字段中的位置信息,再根据解析得到的位置信息直接定位到条带的起始位置,从而提高解码效率。由于解码装置可以获知当前条带的划分类型,在当前条带按LCU划分时,可以仅向起始LCU位置信息字段写入数据,而不需要向起始SCU位置信息字段写入数据,从而可以减少需要写入的数据量,提高编码效率;也可以使解码装置不需要解析起始SCU位置信息字段,进一步提高解码效率。
进一步,在本发明的另一个实施例中,可以在结束位置信息字段写入当前条带的结束位置信息,使解码装置可以直接根据该结束位置信息确定解码完成,从而在确保正确解码的同时提高解码效率。在本发明的另一个实施例中,使用的结束位置信息字段包括结束LCU位置信息字段和结束SCU位置信息字段,使解码装置在解码时可以直接解析结束LCU位置信息字段和结束SCU位置信息字段中的位置信息,再根据解析得到的位置信息直接定位到条带的结束位置,从而提高解码效率。由于解码装置可以获知当前条带的划分类型,在当前条带按LCU划分时,可以仅向结束LCU位置信息字段写入数据,而不需要向结束SCU位置信息字段写入数据,从而可以减少需要写入的数据量,提高编码效率;也可以使解码装置不需要解析结束SCU位置信息字段,进一步提高解码效率。
进一步,在本发明的另一个实施例中,可以为当前条带中所有CU的条带结束标志位赋值,并且将结束CU中的条带结束标志位赋值为有效,使解码装置在解码时可以根据解码得到的条带结束标志位的值是否有效确定解码是否完成,从而在确保正确解码的同时提高解码效率。由于解码装置可以获知当前条带的划分类型,因此解码装置可以在当前条带按LCU划分时,仅解析当前条带最后一个CU的结束标志位就可以确定解码是否完成,进一步提高解码效率。
图8描述了本发明另一个实施例提供的条带解码装置的结构,包括:
解析单元801,用于从起始位置信息字段解析当前条带的起始位置信息。
解码单元802,用于根据解析单元801解析获得的起始位置信息开始对当前条带的解码,并根据预置处理方式确定完成对当前条带的解码。
输出单元803,用于输出解码单元802获得的条带的重建图像。
在本发明的另一个实施例中,起始位置信息字段包括起始LCU位置信息字段和起始SCU位置信息字段;解析单元801,具体用于从起始LCU位置信息字段解析当前条带的起始LCU的绝对位置信息,从起始SCU位置信息字段解析当前条带的起始SCU的相对位置信息。
在本发明的另一个实施例中,解析单元801还用于从结束位置信息字段解析当前条带的结束位置信息;解码单元802,用于根据解析单元801获得的结束位置信息确定完成对当前条带的解码。
在本发明的另一个实施例中,结束位置信息字段包括结束LCU位置信息字段和结束SCU位置信息字段;解析单元801,具体用于从结束LCU位置信息字段解析当前条带的结束LCU的绝对位置信息,从结束SCU位置信息字段解析当前条带的结束SCU的相对位置信息。
在本发明的另一个实施例中,解析单元801,还用于从头信息中解析获得当前条带的条带划分类型信息;解析单元801,具体用于在当前条带的条带划分类型为按LCU划分时,从起始LCU位置信息字段解析当前条带的起始LCU的绝对位置信息,起始位置信息字段仅包括起始LCU位置信息字段;在当前条带的条带划分类型为按CU划分时,从起始LCU位置信息字段解析当前条带的起始LCU的绝对位置信息,从起始SCU位置信息字段解析当前条带的起始SCU的相对位置信息,起始位置信息字段包括起始LCU位置信息字段和起始SCU位置信息字段;或在当前条带的条带划分类型为按CU划分时,从起始SCU位置信息字段解析当前条带的起始SCU的绝对位置信息,起始位置信息字段仅包括起始SCU位置信息字段。
在本发明的另一个实施例中,解析单元801,还用于根据解析获得的条带划分类型信息从结束位置信息字段解析当前条带的结束位置信息;解码单元802,用于根据解析单元801获得的结束位置信息确定完成对当前条带的解码。
在本发明的另一个实施例中,解析单元801,具体用于在当前条带的条带划分类型为按LCU划分时,从绝对LCU位置信息字段解析当前条带的绝对LCU的绝对位置信息,绝对位置信息字段仅包括绝对LCU位置信息字段;在当前条带的条带划分类型为按CU划分时,从绝对LCU位置信息字段解析当前条带的绝对LCU的绝对位置信息,从绝对SCU位置信息字段解析当前条带的绝对SCU的相对位置信息,绝对位置信息字段包括绝对LCU位置信息字段和绝对SCU位置信息字段;或在当前条带的条带划分类型为按CU划分时,从绝对SCU位置信息字段解析当前条带的绝对SCU的绝对位置信息,绝对位置信息字段仅包括绝对SCU位置信息字段。
从上可知,本实施例中当前条带按照条带划分类型划分获得,并且条带划分类型根据判决信息确定,因此划分成的条带的数据量大小能够适应网络,并且在不同的网络可以采用不同的条带划分方式,从而增强网络兼容性。
进一步,在本发明的另一个实施例中,还可以根据解析到的条带划分类型信息获知当前条带的划分类型,从而根据该划分类型信息确定解码是否完成,在确保正确解码的同时提高解码效率。
进一步,在本发明的另一个实施例中,使用的起始位置信息字段包括起始LCU位置信息字段和起始SCU位置信息字段,因此可以直接解析起始LCU位置信息字段和起始SCU位置信息字段中的位置信息,再根据解析得到的位置信息直接定位到条带的起始位置,从而提高解码效率。由于可以获知当前条带的划分类型,在当前条带按LCU划分时,可以仅向起始LCU位置信息字段写入数据,而不需要向起始SCU位置信息字段写入数据,从而可以减少需要写入的数据量,提高编码效率;也不需要解析起始SCU位置信息字段,进一步提高解码效率。
进一步,在本发明的另一个实施例中,可以直接根据结束位置信息确定解码完成,从而在确保正确解码的同时提高解码效率。在本发明的另一个实施例中,使用的结束位置信息字段包括结束LCU位置信息字段和结束SCU位置信息字段,因此可以直接解析结束LCU位置信息字段和结束SCU位置信息字段中的位置信息,再根据解析得到的位置信息直接定位到条带的结束位置,从而提高解码效率。由于可以获知当前条带的划分类型,因此不需要解析结束SCU位置信息字段,进一步提高解码效率。
进一步,在本发明的另一个实施例中,可以根据解码得到的条带结束标志位的值是否有效确定解码是否完成,从而在确保正确解码的同时提高解码效率。由于可以获知当前条带的划分类型,因此可以在当前条带按LCU划分时,仅解析当前条带最后一个CU的结束标志位就可以确定解码是否完成,进一步提高解码效率。
图9描述了本发明另一个实施例提供的条带编码装置的结构,包括:
划分单元901,用于按CU将当前划分对象划分成条带。
写入单元902,用于在起始位置信息字段写入划分单元901获得的当前条带的起始位置信息;当前条带的起始位置信息包括:当前条带中起始LCU在图像中的绝对位置信息、以及当前条带中起始SCU在起始LCU中的相对位置信息。
编码处理单元903,用于对写入单元902获得的当前条带进行编码,输出编码码流。
在本发明的另一个实施例中,写入单元902还用于在结束位置信息字段写入当前条带的结束位置信息。
在本发明的另一个实施例中,写入单元902,还用于为当前条带中所有CU的条带结束标志位赋值,条带结束标志位位于当前条带包括的每一个CU的最后一个SCU的数据净载的最后一位,其中结束CU中的条带结束标志位赋值为有效。
在本发明的另一个实施例中,编码处理单元903,还用于在对当前条带的第一个LCU进行编码时,根据当前CU在第一个LCU中的位置信息确定是否对当前CU的分裂标识位进行编码。本实施例可以不对某些CU的分裂标识位进行编码,因此不需要传输这些分裂标识位的数据,从而可以降低网络的占用,提高网络的利用效率。
从上可知,本实施例可以使用的起始位置信息字段包括起始LCU位置信息字段和起始SCU位置信息字段,使解码装置在解码时可以直接解析起始LCU位置信息字段和起始SCU位置信息字段中的位置信息,再根据解析得到的位置信息直接定位到条带的起始位置,从而提高解码效率。
进一步,在本发明的另一个实施例中,可以在结束位置信息字段写入当前条带的结束位置信息,使解码装置可以直接根据该结束位置信息确定解码完成,从而在确保正确解码的同时提高解码效率。
进一步,在本发明的另一个实施例中,可以为当前条带中所有CU的条带结束标志位赋值,并且将结束CU中的条带结束标志位赋值为有效,使解码装置在解码时可以根据解码得到的条带结束标志位的值是否有效确定解码是否完成,从而在确保正确解码的同时提高解码效率。
图10描述了本发明另一个实施例提供的条带解码装置的结构,包括:
解析单元1001,用于从起始位置信息字段解析当前条带的起始位置信息,当前条带的起始位置信息包括:当前条带中起始LCU在图像中的绝对位置信息、以及当前条带中起始SCU在起始LCU中的相对位置信息。
解码单元1002,用于根据解析单元1001获得的起始位置信息开始对当前条带的解码,并根据预置处理方式确定完成对当前条带的解码。
输出单元1003,用于输出解码单元1002获得的条带的重建图像。
在本发明的另一个实施例中,解析单元1001,还用于从结束位置信息字段解析当前条带的结束位置信息;解码单元1002,用于根据解析单元1001获得的结束位置信息确定完成对当前条带的解码。
从上可知,本实施例可以使用的起始位置信息字段包括起始LCU位置信息字段和起始SCU位置信息字段,因此可以直接解析起始LCU位置信息字段和起始SCU位置信息字段中的位置信息,再根据解析得到的位置信息直接定位到条带的起始位置,从而提高解码效率。
进一步,在本发明的另一个实施例中,可以直接根据该结束位置信息确定解码完成,从而在确保正确解码的同时提高解码效率。
进一步,在本发明的另一个实施例中,可以根据解码得到的条带结束标志位的值是否有效确定解码是否完成,从而在确保正确解码的同时提高解码效率。
上述装置和系统内的各模块之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,上述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,上述的存储介质可为磁碟、光盘、只读存储记忆体(ROM:Read-Only Memory)或随机存储记忆体(RAM:Random Access Memory)等。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (18)

1.一种条带编码方法,其特征在于,包括:
按编码单元CU将当前划分对象划分成条带;
在当前条带的起始位置信息字段写入当前条带的起始位置信息,所述当前条带的起始位置信息包括:所述当前条带中起始最大编码单元LCU在图像中的绝对位置信息、以及所述当前条带中起始最小编码单元SCU在所述起始LCU中的相对位置信息;
对所述当前条带进行编码,输出编码码流。
2.如权利要求1所述的条带编码方法,其特征在于,
所述起始LCU在图像中的绝对位置信息为:所述起始LCU在图像中的顺序绝对位置信息或倒序绝对位置信息;
所述起始SCU在所述起始LCU中的相对位置信息为:所述起始SCU在所述起始LCU中的顺序相对位置信息或倒序相对位置信息。
3.如权利要求1或2所述的条带编码方法,其特征在于,对所述当前条带进行编码前,进一步包括:
在结束位置信息字段写入当前条带的结束位置信息。
4.如权利要求3所述的条带编码方法,其特征在于,所述结束位置信息包括所述当前条带中结束LCU在图像中的绝对位置信息、以及所述当前条带中结束SCU在所述结束LCU中的相对位置信息;
所述结束LCU在图像中的绝对位置信息具体为:所述结束LCU在图像中的顺序绝对位置信息或倒序绝对位置信息;
所述结束SCU在所述结束LCU中的相对位置信息为:所述结束SCU在所述结束LCU中的顺序相对位置信息或倒序相对位置信息。
5.如权利要求3所述的条带编码方法,其特征在于,所述结束位置信息为所述当前条带的长度信息,所述当前条带的长度信息具体为:
所述当前条带包括的LCU的数量、以及结束CU在结束LCU中的相对位置;
所述当前条带包括的CU的数量;
所述当前条带包括的SCU的数量。
6.如权利要求1或2所述的条带编码方法,其特征在于,对所述当前条带进行编码前,进一步包括:
为所述当前条带中所有CU的条带结束标志位赋值,所述条带结束标志位位于所述当前条带包括的每一个CU的最后一个SCU的数据净载的最后一位,其中结束CU中的条带结束标志位赋值为有效。
7.如权利要求1或2所述的条带编码方法,其特征在于,在对当前条带的第一个LCU进行编码时,根据当前CU在当前LCU中的位置信息确定是否对当前CU的分裂标识位进行编码;
如果当前CU不在所述当前划分对象范围内或所述当前CU的尺寸为SCU的尺寸,不对当前CU的分裂标识位编码;
如果所述当前CU在所述当前划分对象范围内且所述当前CU的尺寸大于SCU的尺寸,且所述当前CU的起始位置大于等于条带起始CU的位置,才对所述当前CU的分裂标识位进行编码。
8.一种条带解码方法,其特征在于,包括:
从起始位置信息字段解析当前条带的起始位置信息,所述当前条带的起始位置信息包括:所述当前条带中起始最大编码单元LCU在图像中的绝对位置信息、以及所述当前条带中起始最小编码单元SCU在所述起始LCU中的相对位置信息;
根据所述起始位置信息开始对所述当前条带的解码,并根据预置处理方式确定完成对所述当前条带的解码;
输出解码得到的当前条带的重建图像。
9.如权利要求8所述的条带解码方法,其特征在于,所述根据预置处理方式确定完成对所述当前条带的解码具体为:
从结束位置信息字段解析所述当前条带的结束位置信息;
根据所述结束位置信息确定完成对所述当前条带的解码。
10.如权利要求9所述的条带解码方法,其特征在于,所述结束位置信息包括所述当前条带中结束LCU在图像中的绝对位置信息、以及所述当前条带中结束SCU在所述结束LCU中的相对位置信息;
所述结束LCU在图像中的绝对位置信息具体为:所述结束LCU在图像中的顺序绝对位置信息或倒序绝对位置信息;
所述结束SCU在所述结束LCU中的相对位置信息为:所述结束SCU在所述结束LCU中的顺序相对位置信息或倒序相对位置信息。
11.如权利要求9所述的条带解码方法,其特征在于,所述当前条带的结束位置信息为所述当前条带的长度信息,所述当前条带的长度信息具体为:
所述当前条带包括的LCU的数量、以及结束CU在结束LCU中的顺序相对位置或倒序相对位置;
所述当前条带包括的CU的数量;
所述当前条带包括的SCU的数量。
12.如权利要求8所述的条带解码方法,其特征在于,在对当前条带的第一个LCU进行解码时,根据当前CU在所述第一个LCU中的位置信息确定是否对当前CU的分裂标识位进行解码;
如果当前CU不在当前划分对象范围内或所述当前CU的尺寸为SCU的尺寸,不对当前CU的分裂标识位进行解码;
如果所述当前CU在所述当前划分对象范围内且所述当前CU的尺寸大于SCU的尺寸,且所述当前CU的起始位置大于等于条带起始CU的位置,才对所述当前CU的分裂标识位进行解码。
13.一种条带编码装置,其特征在于,包括:
划分单元,用于按编码单元CU将当前划分对象划分成条带;
写入单元,用于在当前条带的起始位置信息字段写入所述划分单元获得的当前条带的起始位置信息;所述当前条带的起始位置信息包括:所述当前条带中起始最大编码单元LCU在图像中的绝对位置信息、以及所述当前条带中起始最小编码单元SCU在所述起始LCU中的相对位置信息;
编码处理单元,用于对所述写入单元获得的当前条带进行编码,输出编码码流。
14.如权利要求13所述的条带编码装置,其特征在于,所述写入单元,还用于在结束位置信息字段写入当前条带的结束位置信息。
15.如权利要求13所述的条带编码装置,其特征在于,所述写入单元,还用于为所述当前条带中所有CU的条带结束标志位赋值,所述条带结束标志位位于所述当前条带包括的每一个CU的最后一个SCU的数据净载的最后一位,其中结束CU中的条带结束标志位赋值为有效。
16.如权利要求13至15任一所述的条带编码装置,其特征在于,所述编码处理单元,还用于在对当前条带的第一个LCU进行编码时,根据当前CU在所述第一个LCU中的位置信息确定是否对当前CU的分裂标识位进行编码。
17.一种条带解码装置,其特征在于,包括:
解析单元,用于从起始位置信息字段解析当前条带的起始位置信息,所述当前条带的起始位置信息包括:所述当前条带中起始最大编码单元LCU在图像中的绝对位置信息、以及所述当前条带中起始最小编码单元SCU在所述起始LCU中的相对位置信息;
解码单元,用于根据所述解析单元获得的起始位置信息开始对所述当前条带的解码,并根据预置处理方式确定完成对所述当前条带的解码;
输出单元,用于输出所述解码单元获得的条带的重建图像。
18.如权利要求17所述的条带解码装置,其特征在于,所述解析单元,还用于从结束位置信息字段解析所述当前条带的结束位置信息;
所述解码单元,用于根据所述解析单元获得的结束位置信息确定完成对所述当前条带的解码。
CN201110008133.XA 2011-01-14 2011-01-14 条带编码方法及装置、条带解码方法及装置 Active CN102595119B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201110008133.XA CN102595119B (zh) 2011-01-14 2011-01-14 条带编码方法及装置、条带解码方法及装置
PCT/CN2012/070387 WO2012095032A1 (zh) 2011-01-14 2012-01-16 指示和获取用户流数的方法及通信装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110008133.XA CN102595119B (zh) 2011-01-14 2011-01-14 条带编码方法及装置、条带解码方法及装置

Publications (2)

Publication Number Publication Date
CN102595119A CN102595119A (zh) 2012-07-18
CN102595119B true CN102595119B (zh) 2014-03-12

Family

ID=46483276

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110008133.XA Active CN102595119B (zh) 2011-01-14 2011-01-14 条带编码方法及装置、条带解码方法及装置

Country Status (2)

Country Link
CN (1) CN102595119B (zh)
WO (1) WO2012095032A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9807392B2 (en) * 2012-06-11 2017-10-31 Samsung Electronics Co., Ltd. Sample adaptive offset (SAO) adjustment method and apparatus and SAO adjustment determination method and apparatus
RU2608465C1 (ru) * 2013-01-04 2017-01-18 Самсунг Электроникс Ко., Лтд. Способ энтропийного кодирования сегмента слайса и устройство для него и способ энтропийного декодирования сегмента слайса и устройство для него
CN103813169B (zh) * 2014-02-19 2017-07-21 北京大学 视频编解码器中可伸缩的对象表示方法和装置
CN105791868B (zh) * 2016-04-07 2019-03-12 中星技术股份有限公司 视频编码的方法和设备
CN110022481B (zh) * 2018-01-10 2023-05-02 中兴通讯股份有限公司 视频码流的解码、生成方法及装置、存储介质、电子装置
CN109862357A (zh) * 2019-01-09 2019-06-07 深圳威尔视觉传媒有限公司 低延迟的云游戏图像编码方法、装置、设备和存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101389021A (zh) * 2007-09-14 2009-03-18 华为技术有限公司 视频编解码方法及装置
CN101394550A (zh) * 2007-09-17 2009-03-25 华为技术有限公司 视频数据的打包方法及装置
CN101453656A (zh) * 2007-11-29 2009-06-10 华为技术有限公司 视频编码、解码方法及装置和视频编解码系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101389021A (zh) * 2007-09-14 2009-03-18 华为技术有限公司 视频编解码方法及装置
CN101394550A (zh) * 2007-09-17 2009-03-25 华为技术有限公司 视频数据的打包方法及装置
CN101453656A (zh) * 2007-11-29 2009-06-10 华为技术有限公司 视频编码、解码方法及装置和视频编解码系统

Also Published As

Publication number Publication date
CN102595119A (zh) 2012-07-18
WO2012095032A1 (zh) 2012-07-19

Similar Documents

Publication Publication Date Title
US11659184B2 (en) Method and device for video coding and decoding
CN102595119B (zh) 条带编码方法及装置、条带解码方法及装置
CN110933424B (zh) 一个帧内编码块的多个预测块
US10805644B2 (en) Device and method for entropy encoding and decoding
CN105247863B (zh) 三维或多视图视频编码或解码的方法
CN107046645B (zh) 图像编解码方法及装置
CN113574880B (zh) 关于子块变换模式的分割
US20160373767A1 (en) Encoding and Decoding Methods and Apparatuses
BR112019021593A2 (pt) Método e dispositivo para codificação e decodificação entrópica de sinais de vídeo
US10554997B2 (en) Video coding/decoding method, encoder, and decoder
CN104935944A (zh) 一种视频数据编码、解码的方法和装置
CN103379333B (zh) 编解码方法、视频序列码流的编解码方法及其对应的装置
US20230262221A1 (en) Method and device for video coding and decoding
CN117793359A (zh) 视频编解码方法、计算机可读存储介质和数据发送方法
CN102595123B (zh) 条带编码方法及装置、条带解码方法及装置
CN109005412B (zh) 运动矢量获取的方法及设备
CN115134629A (zh) 视频传输方法、系统、设备及存储介质
CN108600755B (zh) 图像帧编码方法及装置
CN110324668B (zh) 图像块编码中的变换方法、解码中的反变换方法及装置
CN116724212A (zh) 熵编码/解码自旋传感器头捕获的点云几何数据的方法和装置
CN110557621B (zh) 参数获取方法、像素点对选择方法及相关设备
US20190166373A1 (en) Image encoding/decoding method and apparatus and image processing equipment
KR101700752B1 (ko) 깊이 정보의 코딩 방법과 디코딩 방법, 깊이 정보의 코딩 장치와 디코딩 장치 및 비디오 처리 재생 장치
CN105163124A (zh) 一种图像编码方法、图像解码方法及装置
KR20200028019A (ko) 모드 정보를 코딩 및 디코딩하기 위한 방법 및 장치, 그리고 전자 디바이스

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20201218

Address after: Room 400, building 5, No.11 Deshengmenwai street, Xicheng District, Beijing 100032 (Desheng Park)

Patentee after: MIGU CULTURE TECHNOLOGY Co.,Ltd.

Address before: 518129 headquarters building of Bantian HUAWEI base, Longgang District, Guangdong, Shenzhen

Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd.