CN103096047B - 一种分片层参数集解码及编码方法和装置 - Google Patents

一种分片层参数集解码及编码方法和装置 Download PDF

Info

Publication number
CN103096047B
CN103096047B CN201110340195.0A CN201110340195A CN103096047B CN 103096047 B CN103096047 B CN 103096047B CN 201110340195 A CN201110340195 A CN 201110340195A CN 103096047 B CN103096047 B CN 103096047B
Authority
CN
China
Prior art keywords
aps
parameter
encoding tool
parameter set
encoding
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
CN201110340195.0A
Other languages
English (en)
Other versions
CN103096047A (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.)
ZTE Corp
Original Assignee
ZTE Corp
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
Priority to CN201110340195.0A priority Critical patent/CN103096047B/zh
Application filed by ZTE Corp filed Critical ZTE Corp
Priority to EP12844694.5A priority patent/EP2753079A4/en
Priority to JP2014540294A priority patent/JP6172536B2/ja
Priority to EP18164289.3A priority patent/EP3407605B1/en
Priority to PCT/CN2012/079111 priority patent/WO2013063962A1/zh
Priority to KR1020147014852A priority patent/KR101600056B1/ko
Priority to US14/355,785 priority patent/US10298946B2/en
Priority to ES18164289T priority patent/ES2962853T3/es
Priority to FIEP18164289.3T priority patent/FI3407605T3/fi
Publication of CN103096047A publication Critical patent/CN103096047A/zh
Application granted granted Critical
Publication of CN103096047B publication Critical patent/CN103096047B/zh
Priority to US16/417,596 priority patent/US10750196B2/en
Priority to US16/995,469 priority patent/US11252428B2/en
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/46Embedding additional information in the video signal during the compression process
    • 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
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Abstract

本发明公开了一种分片层参数集编码方法,所述方法包括:在已有参数集中存在编码工具参数与当前分片需使用的一部分编码工具的编码工具参数相同的参数集时,将所述参数集的标识序号编码到当前分片的码流中,所述参数集指的是包含有一个或多个分片编解码过程中所使用编码工具的公共信息。相应的,本发明还公开了一种分片层参数集解码方法,以及用于分片层参数集编解码的装置,在分片头信息中引用多个参数集时,也能够充分利用已编码的参数集信息,实现分片编解码过程中所使用编码工具的灵活配置,并降低信息冗余。

Description

一种分片层参数集解码及编码方法和装置
技术领域
本发明涉及视频压缩编码技术,尤其涉及一种分片层参数集解码及编码方法和装置。
背景技术
参数集(Parameter Set)是视频编码标准最基本的数据结构,其中包含有编解码过程中所需使用的公共信息,如标志位(flags)、公共参数信息(如档次(Profile)、级别(Level)索引序号等)。通常,参数集中的标志位和参数决定了编解码器在任何一个时刻的编解码工具的使用情况,一些重要的算法往往只是一个标志位引申下的具体操作说明。因此,参数集的数据结构、编解码及引用方法决定了整个视频编码标准的基本框架和码流组织形式。
目前,高性能视频编码标准(HEVC,High-Efficiency Video Coding)中包含有三类参数集:序列参数集(SPS,Sequence Parameter Set)、图像参数集(PPS,PictureParameter Set)和适配参数集(APS,Adaptation Parameter Set)。其中,SPS包含了对整个输入视频序列进行编解码所使用的公共信息;PPS包含了一幅图像或多幅图像编解码过程中所使用的公共信息;APS是包含有一个或多个分片(Slice)编解码过程中所使用编码工具公共信息的数据结构。SPS、PPS的编解码和引用方法与现有标准H.264/AVC相似,在编码端,APS的编码和引用方法可以包括如下步骤:
步骤1,编码器根据SPS、PPS,确定编码当前分片过程中容许使用的编码工具。
步骤2,编码器对当前分片进行编码。其中,编码器优化模块确定该分片编码过程中使用的编码工具及编码工具参数。
步骤3,编码器检测之前已有APS中编码工具参数是否与当前分片所使用的编码工具参数完全相同。若是,执行步骤4;否则,执行步骤5。
步骤4,编码器将该APS的标识序号写入分片层头信息中,当前分片的APS信息编码过程结束。
步骤5,编码器根据分片当前所使用的编码工具参数,生成新的APS,并为该APS分配新的标识序号。编码器将该APS的标识序号写入分片层头信息中,当前分片的APS信息编码过程结束。
这里,所述编码工具为图像层编码工具、图像或分片层公共控制模块。所述图像层编码工具可以包括采样点自适应加性偏移量补偿(SAO,Sample Adaptive Offset)、自适应环路滤波器(ALF,Adaptive Loop Filter)、加权预测(WP,Weighted Prediction)等。所述图像或分片层公共控制模块可以包括解码图像缓冲区(DPB,Decoded Picture Buffer)管理模块、参考图像标识和调整模块、参考图像列表构造模块等。所述编码工具参数可包括:编码工具开启/关闭标志位;使用编码工具算法恢复像素点过程中所必需的运算参数,如SAO各子带加性偏移量的值,ALF所使用的滤波器系数值,图像或分片层公共控制模块中参考图像信息等。
另外,编码器可为每个分片使用不同的APS,也可以为同图像中的所有分片使用相同的APS,也可以为多个分片(不一定是同图像中的分片)使用相同的APS。
在解码端,APS的解码和引用方法可以包括如下步骤:
步骤1,解码器解析分片头信息部分的二进制码流,确定当前分片解码过程中所使用的APS标识序号。
步骤2,解码器根据解析得到的APS标识序号,解析对应APS的码流,得到当前分片解码过程中所使用的编码工具及编码工具参数。
步骤3,解码器根据APS配置编码工具,并使用所配置的编码工具恢复该分片所包含的像素点,当前分片解码过程结束。
现有方法的局限性主要表现在如下四个方面:
第一,编码器不能充分利用已编码APS信息。APS中同时包含了多种编码工具参数,并且在分片头信息中仅允许引用一个APS。因此,当且仅当分片使用的编码工具参数与某一个APS中的相关信息完全相同时,编码器才可直接使用该APS而无需为分片生成新的APS。因此,在分片编码过程中,一个编码工具的编码工具参数始终不变而其他编码工具参数改变,编码器必须为后续编码分片重新生成新的APS,而无法直接利用现有APS中的已有编码工具参数。
第二,APS的编码和引用方法存在信息冗余。如上所述,编码器在重新生成的APS中,需要重复编码先前APS中已有的编码工具参数,带来额外的编码比特开销。
第三,编码器无法通过APS灵活配置编码工具。除上述情况外,编码器不能使用为每个编码工具“分别配置、在分片层编码过程中组合使用”的方式实现编码工具的灵活配置。
第四,分片层关闭编码工具的方法会带来较大比特开销。对于编解码过程中允许使用的编码工具,若在实际的编解码过程中不使用一个或多个编码工具,仍需要单独生成仅包含“在分片层编解码过程中关闭该编码工具”标志位的参数集,并将该参数集的标识序号写入分片层头信息中。这样,编码器为编码“关闭该编码工具”的标志位信息(通常情况下所需编码比特开销与标志位的数量相同),需要“额外”编码参数集结构的其他信息和分片层参数集标识序号信息,从而带来较大的编码比特开销。
发明内容
有鉴于此,本发明的主要目的在于提供一种分片层参数集解码及编码方法和装置,能够充分利用已编码的APS信息,实现分片编解码过程中所使用编码工具的灵活配置,并降低信息冗余。
为达到上述目的,本发明的技术方案是这样实现的:
本发明提供了一种分片层参数集编码方法,所述方法包括:在已有参数集中存在编码工具参数与当前分片需使用的一部分编码工具的编码工具参数相同的参数集时,将所述参数集的标识序号编码到当前分片的码流中;所述参数集为包含有一个或多个分片编解码过程中所使用编码工具公共信息的数据结构。
在上述方案中,所述方法还包括:生成参数集,在该参数集中编码当前分片需使用的另一部分编码工具的编码工具参数,分配标识序号给所述参数集,将所述参数集的标识序号编码到当前分片的码流中。
在上述方案中,所述生成参数集,在该参数集中编码当前分片需使用的另一部分编码工具的编码工具参数,包括:
在所述当前分片需使用的另一部分编码工具包括两个或两个以上的编码工具时,生成一个或多个参数集,在一个所述参数集中编码一个或多个所述编码工具的编码参数。
在上述方案中,所述生成参数集,在该参数集中编码当前分片需使用的另一部分编码工具的编码工具参数,包括:在所述当前分片需使用的另一部分编码工具包括两个或两个以上的编码工具时,生成对应各所述编码工具的各参数集,在一个所述参数集中编码一个所述编码工具的编码工具参数,并为各参数集分配参数集标识序号,将所述各参数集的标识序号编码到当前分片的码流中;
或者,在所述当前分片需使用的另一部分编码工具包括两个或两个以上的编码工具时,生成一个参数集,在所述参数集中编码所述两个或两个以上编码工具的编码工具参数,并为所述参数集分配参数集标识序号,将所述各参数集的标识序号编码到当前分片的码流中。
在上述方案中,所述分配参数集标识序号给所述参数集,包括:基于当前分片所采用的多参数集覆盖模式,确定候选标识序号,从所述候选标识序号中选择一个分配给所述参数集。
在上述方案中,所述方法具体为:预先配置对应不同编码工具的参数集标识序号;在已有参数集中存在编码工具参数与当前分片需使用的一部分编码工具的编码工具参数相同的参数集时,将所述参数集的标识序号赋值为预先配置的对应所述编码工具的参数集标识序号后,再将所述参数集的标识序号编码到当前分片的码流中。
在上述方案中,所述方法还包括:判断已有参数集中是否存在编码工具参数与当前分片需使用的一部分编码工具的编码工具参数相同的参数集。
在上述方案中,所述编码工具包括:图像层编码工具和/或图像或分片层管理模块;
所述图像层编码工具包括:采样点自适应加性偏移量补偿(SAO),自适应环路滤波(ALF),加权预测(WP)等;
所述图像或分片层管理模块包括:解码图像缓冲区(DPB)管理模块、参考图像标识和调整模块、参考图像列表构造模块等。
本发明还提供了一种分片层参数集解码方法,所述方法包括:
根据当前分片码流中的参数集标识序号,解码当前分片所引用的多个参数集,确定当前分片解码过程中所使用的编码工具参数,并将所确定编码工具参数的参数值赋值给当前分片数据结构中的对应变量;
所述参数集为包含有一个或多个分片编解码过程中所使用编码工具公共信息的数据结构。
在上述方案中,所述确定当前分片解码过程中所使用的编码工具参数,包括:对于每一种编码工具,在当前分片所引用的多个参数集中,仅有一个参数集中该编码工具开启/关闭标志位为1,则确定当前分片解码过程中使用该参数集中所述编码工具的编码工具参数。
在上述方案中,所述确定当前分片解码过程中所使用的编码工具参数,包括:根据预先配置的参数集标识序号与编码工具之间的对应关系,确定当前分片解码过程中所使用编码工具的编码工具参数。
在上述方案中,所述确定当前分片解码过程中所使用的编码工具参数,包括:根据预设的多参数集覆盖方式,确定当前分片解码过程中所使用的编码工具参数。
在上述方案中,所述根据预设的多参数集覆盖方式,确定当前分片解码过程中所使用的编码工具参数,包括:对于每一种编码工具,在标识序号为ps_id[n]的参数集中用于标识该参数集中包含所述编码工具参数信息的标志位为1时,用该参数集中的所述编码工具的编码工具参数覆盖之前确定用于当前分片解码过程中所述编码工具的编码工具参数,n为整数,不小于1且不大于当前分片所引用参数集的数目。
在上述方案中,所述根据预设的多参数集覆盖方式,确定当前分片解码过程中所使用的编码工具参数,包括:根据用于指示当前所采用多参数集覆盖模式的标志位,得到当前解码过程中需采用的多参数集覆盖模式,并基于该多参数集覆盖模式确定当前分片解码过程中所使用的编码工具参数。
在上述方案中,所述用于指示当前所采用多参数集覆盖模式的标志位的二进制表示包含一个或多个比特位,一个比特位指示一种编码工具的多参数集覆盖模式。
在上述方案中,所述用于指示当前所采用多参数集覆盖模式的标志位基于ps_id[i]和ps[i-1]给出的参数集标识序号之间的绝对值之差得到,i为整数,不小于1且不大于当前分片解码过程中所引用参数集的数量。
在上述方案中,所述编码工具包括:图像层编码工具和/图像或分片层管理模块,所述图像层编码工具包括:SAO、ALF、WP等;所述图像或分片层管理模块包括DPB管理模块、参考图像标识和调整模块、参考图像列表构造模块等。
本发明还提供了一种用于分片层参数集编码的编码器,所述编码器包括:判断模块和编码模块,其中,
判断模块,用于在判断已有参数集中存在编码工具参数与当前分片需使用的一部分编码工具的编码工具参数相同的一个或多个参数集时,通知所述编码模块引用所述参数集;
所述编码模块,用于在接收到所述判断模块的所述通知时,将所述参数集的标识序号编码到当前分片的码流中;
所述参数集为包含有一个或多个分片编解码过程中所使用编码工具公共信息的数据结构。
在上述方案中,所述编码模块,还用于生成参数集,在该参数集中编码当前分片需使用的另一部分编码工具的编码工具参数,分配标识序号给所述参数集,将所述参数集的标识序号编码到当前分片的码流中。
在上述方案中,所述编码模块,还用于将所述参数集的标识序号赋值为预先配置的对应所述编码工具的参数集标识序号后,再将所述参数集的标识序号编码到当前分片的码流中。
在上述方案中,所述判断模块,判断已有参数集中是否存在编码工具参数与当前分片需使用的一部分编码工具的编码工具参数相同的参数集。
本发明还提供了一种用于分片层参数集解码的解码器,所述解码器包括:解码模块、确定模块和赋值模块,其中,
解码模块,用于根据当前分片码流中的参数集标识序号,解码当前分片所引用的多个参数集;
确定模块,用于根据所述解码模块解码当前分片所引用的多个参数集,得到的多个参数集的编码工具参数,确定当前分片解码过程中所使用的编码工具参数;
赋值模块,用于将所述确定模块所确定编码工具参数的参数值赋值给当前分片数据结构中的对应变量;
所述参数集为包含有一个或多个分片编解码过程中所使用编码工具公共信息的数据结构。
在上述方案中,所述确定模块,用于对于每一种编码工具,在当前分片所引用的多个参数集中,仅有一个参数集中该编码工具开启/关闭标志位为1,则确定当前分片解码过程中使用该APS中所述编码工具的编码工具参数。
在上述方案中,所述确定模块,用于根据预先配置的参数集标识序号与编码工具之间的对应关系,确定当前分片解码过程中所使用编码工具的编码工具参数。
在上述方案中,所述确定模块,用于根据预设的多参数集覆盖方式,确定当前分片解码过程中所使用的编码工具参数。
本发明还提供了一种电子设备,所述电子设备包括上述的编码器和上述的解码器。
本发明的分片层参数集解码及编码方法和装置,在已有参数集中存在编码工具参数与当前分片需使用的一部分编码工具的编码工具参数相同的一个或多个参数集时,将所述参数集的标识序号编码到当前分片的码流中,从而在分片头信息中引用多个参数集时,也能够充分利用已编码的参数集信息,实现分片编解码过程中所使用编码工具的灵活配置,并降低信息冗余。
此外,本发明可以根据实际需要,生成一个或多个参数集,在一个参数集中编码一个或多个编码工具的编码工具参数,不仅便于后续分片在编解码过程中引用所生成的参数集,而且还有利于减少编码比特开销。
附图说明
图1为本发明分片层参数集解码方法的实现流程图;
图2为本发明实施例一中解码分片层多APS码流的实现流程图;
图3为图2步骤209中SAO编码工具参数确定过程的实现流程图;
图4为图2步骤209中ALF编码工具参数确定过程的实现流程图;
图5为本发明实施例一中编码分片层多APS码流的实现流程图;
图6为图5步骤505一种具体实现过程的流程图;
图7为本发明实施例二中解码分片层多APS码流的实现流程图;
图8为本发明实施例二中编码分片层多APS码流的实现流程图;
图9为图8中步骤806的一种具体实现过程的实现流程图;
图10为本发明实施例三中解码分片层多APS码流的实现流程图;
图11为本发明实施例三中编码分片层多APS码流的实现流程图;
图12为本发明实施例四中APS解码过程的实现流程图;
图13为本发明实施例四的APS编码过程的实现流程图;
图14为本发明实施例四中解码分片层多APS码流的实现流程图;
图15为图14中步骤1408的一种具体实现方法的实现流程图;
图16为本发明实施例一中编码分片层多APS码流的实现流程图;
图17为图16步骤1605的一种具体实现方法的流程图;
图18为本发明实施例四中编码分片层多APS码流的实现流程图;
图19为本发明实施例五中解码分片层多APS码流的实现流程图;
图20为本方明实施例五中编码分片层多APS码流的实现流程图;
图21为本发明实施例六中解码分片层多APS码流的实现流程图;
图22为图21中步骤2108的一种具体实现方法的实现流程图;
图23为本发明实施例六中编码分片层多APS码流的实现流程图;
图24为图23中步骤2305的一种具体实现方法的实现流程图;
图25为本发明实施例七中APS解码过程的实现流程图;
图26为本发明实施例七中APS编码过程的实现流程图;
图27为本发明实施例七中解码分片层多APS码流的实现流程图;
图28为本发明实施例七中编码分片层多APS码流的实现流程图;
图29为本发明实施例九中编码分片层多APS码流的实现流程图;
图30为本发明实施例一中编码分片层多APS码流的实现流程图。
具体实施方式
本发明的基本思想是:在当前分片的编解码过程中,引用的参数集个数大于1时,存在与当前分片解码需使用的一个或多个编码工具参数相同的已有参数集,分片层引用所述一个或多个已有参数集的编码工具参数,编码或解码当前分片的码流。
本发明的一种分片层参数集编码方法,主要包括:在已有参数集中存在编码工具参数与当前分片需使用的一部分编码工具的编码工具参数相同的一个或多个参数集时,将所述参数集的标识序号编码到当前分片的码流中。所述参数集为包含有一个或多个分片编解码过程中所使用编码工具公共信息的数据结构,即为下文中的APS。
其中,所述方法还包括:生成APS,在该APS中编码当前分片需使用的另一部分编码工具的编码工具参数,分配标识序号给所述APS,将所述APS的标识序号编码到当前分片的码流中。
其中,所述生成APS,在该APS中编码当前分片需使用的另一部分编码工具的编码工具参数,包括:
在所述当前分片需使用的另一部分编码工具包括两个或两个以上的编码工具时,生成一个或多个APS,在一个所述APS中编码一个或多个所述编码工具的编码参数。
具体的,所述生成APS,在该APS中编码当前分片需使用的另一部分编码工具的编码工具参数,包括:在所述当前分片需使用的另一部分编码工具包括两个或两个以上的编码工具时,生成对应各所述编码工具的各APS,在一个所述APS中编码一个所述编码工具的编码工具参数,并为各APS分配APS标识序号,将所述各APS的标识序号编码到当前分片的码流中;
或者,在所述当前分片需使用的另一部分编码工具包括两个或两个以上的编码工具时,生成一个APS,在所述APS中编码所述两个或两个以上编码工具的编码工具参数,并为所述APS分配APS标识序号,将所述各APS的标识序号编码到当前分片的码流中。
其中,所述分配APS标识序号给所述APS,包括:基于当前分片所采用的多APS覆盖模式,确定候选标识序号,从所述候选标识序号中选择一个分配给所述APS。
其中,所述方法还包括:判断已有APS中是否存在编码工具参数与当前分片需使用的一部分编码工具的编码工具参数相同的APS。
实际应用中,上述的编码方法具体可以为:预先配置对应不同编码工具的参数集标识序号;在已有参数集中存在编码工具参数与当前分片需使用的一部分编码工具的编码工具参数相同的参数集时,将所述参数集的标识序号赋值为预先配置的对应所述编码工具的参数集标识序号后,再将所述参数集的标识序号编码到当前分片的码流中。
本发明的一种分片层参数集解码方法,参照图1所示,主要包括:
步骤101:根据当前分片码流中的APS标识序号,解码当前分片所引用的多个APS;
步骤102:确定当前分片解码过程中所使用的编码工具参数,并将所确定编码工具参数的参数值赋值给当前分片数据结构中的对应变量。
具体的,所述确定当前分片解码过程中所使用的编码工具参数,可以包括:
对于每一种编码工具,在当前分片所引用的多个APS中,仅有一个APS中该编码工具开启/关闭标志位为1,则确定当前分片解码过程中使用该APS中所述编码工具的编码工具参数。
具体的,所述确定当前分片解码过程中所使用的编码工具参数,可以包括:根据预先配置的参数集标识序号与编码工具之间的对应关系,确定当前分片解码过程中所使用编码工具的编码工具参数。
具体的,所述确定当前分片解码过程中所使用的编码工具参数,还可以包括:根据预设的多APS覆盖方式,确定当前分片解码过程中所使用的编码工具参数。
其中,所述根据预设的多APS覆盖方式,确定当前分片解码过程中所使用的编码工具参数,可以包括:对于每一种编码工具,在标识序号为aps_id[n]的APS中用于标识该APS中包含所述编码工具参数信息的标志位为1时,用该APS中的所述编码工具的编码工具参数覆盖之前确定用于当前分片解码过程中所述编码工具的编码工具参数,n为整数,不小于1且不大于当前分片所引用APS的数目。
其中,还可以根据用于指示当前所采用多APS覆盖模式的标志位,得到当前解码过程中需采用的多APS覆盖模式,并基于该多APS覆盖模式确定当前分片解码过程中所使用的编码工具参数。
这里,所述用于指示当前所采用多APS覆盖模式的标志位的二进制表示包含一个或多个比特位,一个比特位指示一种编码工具的多APS覆盖模式。
这里,所述用于指示当前所采用多APS覆盖模式的标志位基于aps_id[i]和aps[i-1]给出的APS标识序号之间的绝对值之差得到,i为整数,不小于1且不大于当前分片解码过程中所引用APS的数量。
相应的,本发明还提供了一种用于分片层参数集编码的编码器,所述编码器包括:判断模块和编码模块,其中,判断模块,用于在判断已有APS中存在编码工具参数与当前分片需使用的一部分编码工具的编码工具参数相同的APS时,通知所述编码模块引用所述APS;所述编码模块,用于在接收到所述判断模块的所述通知时,将所述APS的标识序号编码到当前分片的码流中。
其中,所述编码模块,还可以用于生成APS,在该APS中编码当前分片需使用的另一部分编码工具的编码工具参数,分配标识序号给所述APS,将所述APS的标识序号编码到当前分片的码流中。
其中,所述编码模块,还可以用于将所述参数集的标识序号赋值为预先配置的对应所述编码工具的参数集标识序号后,再将所述参数集的标识序号编码到当前分片的码流中。
其中,所述判断模块,判断已有APS中是否存在编码工具参数与当前分片需使用的一部分编码工具的编码工具参数相同的APS。这里,在判断已有APS中不存在编码工具参数与当前分片需使用的一部分编码工具的编码工具参数相同的APS时,则判断模块通知所述编码模块不存在编码工具参数与当前分片需使用的一部分编码工具的编码工具参数相同的APS,所述编码模块接收到该通知后,直接生成一个或多个APS,则所述编码模块生成一个或多个APS,在生成的各APS中编码当前分片所需编码工具的编码工具参数,为生成的各APS分配标识序号,将所述各APS的标识序号编码到当前分片的码流中。
相应的,本发明还提供了一种用于分片层参数集解码的解码器,所述解码器包括:解码模块、确定模块和赋值模块,其中,解码模块,用于根据当前分片码流中的APS标识序号,解码当前分片所引用的多个APS;确定模块,用于根据所述解码模块解码当前分片所引用的多个APS,得到的多个APS的编码工具参数,确定当前分片解码过程中所使用的编码工具参数;赋值模块,用于将所述确定模块所确定编码工具参数的参数值赋值给当前分片数据结构中的对应变量。
具体的,所述确定模块,可以用于对于每一种编码工具,在当前分片所引用的多个APS中,仅有一个APS中该编码工具开启/关闭标志位为1,则确定当前分片解码过程中使用该APS中所述编码工具的编码工具参数。
具体的,所述确定模块,还可以用于根据预先配置的参数集标识序号与编码工具之间的对应关系,确定当前分片解码过程中所使用编码工具的编码工具参数。
具体的,所述确定模块,还可以用于根据预设的多APS覆盖方式,确定当前分片解码过程中所使用的编码工具参数。
相应的,本发明还提供了一种电子设备,参照图1所示,所述电子设备包括上述的编码器和解码器。
本发明中的所述编码工具可以包括:图像层编码工具和/图像或分片层管理模块,所述图像层编码工具包括:SAO,ALF,WP等;所述图像或分片层管理模块包括:DPB管理模块、参考图像标识和调整模块、参考图像列表构造模块等。
本发明的实施例一至实例六以SAO和ALF两种图像层编码工具为例进行说明,实施例七至实施例十在实施例一至实例六的基础上,进一步举例说明使用图像层编码工具与图像或分片层公共控制模块共同进行编解码的实现过程。且在以下各实施例中,均假设编解码过程中容许使用SAO和ALF。
在下述各实施例的编码器需要在使用多APS时,需要保证按照该实施例中所述解码器的分片层多APS码流解析流程,解码器可以获得与编码器一致的图像层编码工具的工具参数。
下述各实施例所述编码器实现方法仅为该实施例下编码器可能的实现方法之一,任何能够生成符合该实施例解码器码流解析过程要求的码流的编码器,均属于该实施例的编码器实现方法。
实施例一
本实施例中所使用APS码流组织的结构如表1所示。
表1
其中,描述(Descriptor)栏给出了各语法单元取值的二进制表示方法,编码器采用相应的二进制表示方法对相应语法单元进行编码,解码器采用相应的二进制表示方法对相关语法单元进行解码。
在编码和解码过程中,编码器和解码器均可在分片层保留一份APS的参数拷贝。其中,分片层的APS参数可以来自于单个APS,也可以来自于多个APS。
本实施例允许分片引用多个APS中给出的编码工具参数,多APS在分片层头信息中的标识方法如表2所示,本实施例在分片层头信息中添加了APS标识信息,具体如表2中第6-13行所示。
slice_header(){ Descriptor
lightweight_slice_flag u(1)
if(!lightweight_slice_flag){
slice_type ue(v)
pic_parameter_set_id ue(v)
if(sample_adaptive_offset_enabled_flag||adaptive_loop_filter_enabled_flag){
number_valid_aps u(v)
if(number_valid_aps!=0){
for(i=0;i<number_valid_aps;i++){
aps_id[i] ue(v)
}
}
}
......
}
......
if(!lightweight_slice_flag){
...... se(v)
if(adaptive_loop_filter_enabled_flag&&aps_adaptive_loop_filter_flag){
byte_align()
alf_cu_control_param()
byte_align()
}
}
}
表2
表2中,number_valid_aps用于标识分片编解码过程中所引用APS的数量,其取值为[0,MaxNumberValidAps]之间的整数。若APS码流中未给出语法单元number_valid_aps,则其取值默认为0。number_valid_aps取值的上限值MaxNumberValidAps可以根据档次/级别中可用图像层编码工具的数量确定。
其中,aps_id[i]用于标识分片编解码过程中所引用APS的标识序号。其中,i为[0,number_valid_aps-1]之间的整数。
当number_valid_aps的值为0时,表示当前分片编解码过程中不引用任何APS,即所有APS均不用于当前分片的编解码过程。
当number_valid_aps的取值为1时,表示当前分片编解码过程中引用一个APS,此时,默认该APS的标识序号为aps_id[0],SAO编码工具参数与ALF编码工具参数在标识序号为aps_id[0]的APS中给出。此时,解码器根据该APS中的SAO开启/关闭标志位aps_sample_adaptive_offset_flag和ALF开启/关闭标志位aps_adaptive_loop_filter_flag的取值,设置分片层数据结构中的aps_sample_adaptive_offset_flag和aps_adaptive_loop_filter_flag的值。
当number_valid_aps的取值大于1时,表示分片编解码过程中同时引用多个APS,此时,分片所引用APS的标识序号由aps_id[0]、aps_id[1]、...、aps_id[number_valid_aps-1]给出。当且仅当多个APS中仅有一个APS的aps_sample_adaptive_offset_flag取值为1时,分片的解码过程中使用SAO,且SAO编码工具参数由该APS给出;当且仅当多个APS中仅有一个APS的aps_adaptive_loop_filter_flag取值为1时,分片的解码过程中使用ALF,且ALF编码工具参数由该APS给出。若多个APS中的aps_sample_adaptive_offset_flag取值为1,则解码器在解码当前分片过程中不使用SAO,解码器将分片层数据结构中aps_sample_adaptive_offset_flag的值置为0;若多个APS中的aps_adaptive_loop_filter_flag取值为1,则解码器在解码当前分片过程中不使用ALF,解码器将分片层数据结构中aps_adaptive_loop_filter_flag的值置为0。
对应于表2,本实施例中,解码器进行分片层多APS码流解码的流程如图2所示,可以包括如下步骤:
步骤201,解码器解析当前分片所引用的SPS码流,使用u(1)所对应的译码方法获得sample_adaptive_offset_enabled_flag和adaptive_loop_filter_enabled_flag的取值。
这里,标志位sample_adaptive_offset_enabled_flag和adaptive_loop_filter_enabled_flag均为分片层数据结构中的标志位,sample_adaptive_offset_enabled_flag表示当前分片的编解码过程中是否容许使用SAO,adaptive_loop_filter_enabled_flag表示当前分片的编解码过程中是否容许使用ALF。
步骤202,解码器判断(sample_adaptive_offset_enabled_flag||adaptive_loop_filter_enabled_flag)的值是否为真(true),若为true,执行步骤203;若为假(false),当前解码过程结束。
步骤203,解码器解析分片头信息,使用u(v)所对应的译码方法获得number_valid_aps的取值。
步骤204,若number_valid_aps的取值等于0,则执行步骤205;若number_valid_aps的取值不等于0,执行步骤206。
步骤205,当前分片解码过程中不引用任何APS,解码过程不使用SAO和ALF,将分片层数据结构中aps_sample_adaptive_offset_flag和aps_adaptive_loop_filter_flag分别置为0,当前解码过程结束。
步骤206,若number_valid_aps的取值等于1,则执行步骤207;若number_valid_aps的取值不等于1,执行步骤208。
步骤207,当前分片解码过程中仅引用一个APS,解码器使用ue(v)所对应的译码方法获得aps_id[0]的取值,解析标识序号等于aps_id[0]的APS中的SAO编码工具参数和ALF编码工具参数,并将所述SAO编码工具参数的参数值和赋给分片层SAO数据结构的对应变量,将ALF编码工具参数的参数值赋给ALF数据结构中的对应变量,当前解码过程结束。
步骤208,当前分片解码过程中引用多个APS,解码器解析多APS,解码器使用ue(v)所对应的译码方法获得aps_id[0]、aps_id[1]、...、aps_id[number_valid_aps-1]的取值,并分别解码标识序号等于aps_id[0]、aps_id[1]、...、aps_id[number_valid_aps-1]的多个APS中SAO编码工具参数和ALF编码工具参数。
步骤209,解码器根据解码多个APS得到的各SAO编码工具参数和ALF编码工具参数,确定解码当前分片过程中所使用的SAO编码工具参数和ALF编码工具参数,并将所确定SAO编码工具参数的参数值赋值给分片层数据结构中SAO数据结构的对应变量,将所确定ALF编码工具参数的参数值赋值给分片层数据结构中ALF数据结构的对应变量,当前解码过程结束。
其中,如图3所示,步骤209中SAO编码工具参数的确定及赋值的过程包括如下步骤:
步骤301,若解码器解码多个APS得到的各aps_sample_adaptive_offset_flag的取值均为0,则执行步骤302;否则,执行步骤303。
步骤302,解码器在解码当前分片过程中不使用SAO,将分片层数据结构中aps_sample_adaptive_offset_flag的值置为0,当前流程结束。
步骤303,若解码器解码多个APS得到的各aps_sample_adaptive_offset_flag中有且只有一个取值等于1,则执行步骤304;若解码器解码多个APS得到的各aps_sample_adaptive_offset_flag中有两个或两个以上取值等于1,执行步骤305。
步骤304,解码器在解码当前分片过程中使用SAO,将分片层数据结构中aps_sample_adaptive_offset_flag的值置为1,并将aps_sample_adaptive_offset_flag值为1的APS中SAO编码工具参数的值赋给分片层SAO数据结构中的对应变量,当前流程结束。
步骤305,解码器在解码当前分片过程中不使用SAO,将分片层数据结构中aps_sample_adaptive_offset_flag的值置为0,当前流程结束。
其中,如图4所示,步骤209中ALF编码工具参数的确定及赋值过程包括如下步骤:
步骤401,若解码器解码多个APS得到的各aps_adaptive_loop_filter_flag的取值均为0,则执行步骤402;否则,执行步骤403。
步骤402,解码器在解码当前分片过程中不使用ALF,将分片层数据结构中aps_adaptive_loop_filter_flag的值置为0,当前流程结束。
步骤403,若解码器解析多个APS得到的各aps_adaptive_loop_filter_flag中有且只有一个取值等于1,则执行步骤404;若解码器解析多个APS得到的各aps_adaptive_loop_filter_flag中有两个或两个以上取值等于1,执行步骤405。
步骤404,解码器在解码当前分片过程中使用ALF,分片层数据结构中aps_adaptive_loop_filter_flag的值置为1,并将aps_adaptive_loop_filter_flag取值为1的APS中ALF编码工具参数的参数值赋给分片层ALF数据结构中的对应变量,当前流程结束。
步骤405,解码器在解码当前分片过程中不使用ALF,将分片层数据结构中aps_adaptive_loop_filter_flag的值置为0,当前流程结束。
相应的,本实施例中编码器进行分片多APS码流编码的流程,如图5所示,具体可以包括如下步骤:
步骤501,编码器根据SPS、PPS,确定当前分片编码过程中容许使用的图像层编码工具。
具体地,可以根据SPS中表示图像层编码工具是否容许使用的标志位的取值,确定当前分片编码过程中是否容许使用的图像层编码工具。例如,SPS中的sample_adaptive_offset_enabled_flag取值为1,编码过程中容许使用SAO;若sample_adaptive_offset_enabled_flag取值为0,编码过程中不允许使用SAO。
步骤502,编码器确定当前分片编码过程中实际使用的图像层工具及其编码工具参数。
具体地,所述编码器可使用各图像层编码工具的参数计算方法,结合率失真优化方法确定在当前分片编码过程中是否使用一个图像层编码工具,并在使用该图像层编码工具的情况下确定编码工具的其他参数,具体实现过程可以参考现有的相关技术,在此不再赘述。
步骤503,若当前分片所需图像层编码工具的编码工具参数与已有APS中包含的同一图像层编码工具的编码工具参数完全相同,则执行步骤504;否则,执行步骤505。
步骤504,编码器将分片层数据结构中number_valid_aps的值置为1,使用u(v)对应的编码方法将number_valid_aps的值写入码流;获取编码工具参数与当前分片相应编码工具参数相同的APS的标识序号,将该APS标识序号赋值给分片层数据结构中的aps_id[0],并使用ue(v)对应的编码方法将aps_id[0]的值写入码流,继续执行步骤506。
步骤505,编码器生成新APS,为新APS分配标识序号,在该新APS中编码当前分片所需图像层编码工具的编码工具参数,并将该新APS的标识序号写入当前分片头信息的码流中,继续执行步骤506。
步骤506,编码器将当前分片的其它编码数据写入码流,当前分片多APS码流的编码过程结束。
所述编码器在使用多APS时,需保证解码器能够按照上述分片层多APS码流解码流程进行相应的解码,即需要保证解码器可以获得与编码器一致的图像层编码工具的工具参数。
其中,步骤505中,所述编码器可根据当前分片是否使用分片层编码工具、所使用分片层编码工具中的一种或多种图像层编码工具的编码工具参数是否与已有APS中对应图像层编码工具的编码工具参数相同、当前分片的图像层编码工具是否用于后续分片的编码等因素,确定新APS的生成方法和APS标识序号的编码方法。
具体地,步骤505中生成新APS,为其分配标识序号,并将APS标识序号写入分片头信息中的实现流程如图6所示,具体可以包括如下步骤:
步骤601,编码器在编码当前分片过程中是否不需要使用任何图像层编码工具;若是,则执行步骤602;若不是,则执行步骤603。
步骤602,编码器将分片层数据结构中的number_valid_aps置为0,并使用u(v)对应的编码方法将number_valid_aps写入码流,结束当前流程。
步骤603,如果编码器在编码当前分片过程中仅需使用SAO和ALF中的一种图像层编码工具,则执行步骤604;如果编码器在编码当前分片过程中需同时使用SAO和ALF中的两种图像层编码工具,则执行步骤605。
步骤604,编码器将分片层数据结构中的number_valid_aps置为1,使用u(v)对应的编码方法将number_valid_aps写入码流,生成新的APS,在该新APS中编码编码当前分片过程中所需图像层编码工具的编码工具参数,并为所生成的新APS分配标识序号,将新APS标识序号赋值给aps_id[0],再使用ue(v)对应的编码方法将aps_id[0]写入码流,当前流程结束。
步骤605,编码器判断在现有APS中是否存在仅aps_sample_adaptive_offset_flag或aps_adaptive_loop_filter_flag的值为1且对应的编码工具参数与当前分片的SAO编码工具参数或ALF编码工具参数相同的APS,则执行步骤606;否则,执行步骤607。
步骤606,编码器将分片层数据结构number_valid_aps置为2,使用u(v)对应的方法将number_valid_aps写入码流,将编码工具参数与当前分片的SAO编码工具参数和ALF编码工具参数中一个相同的APS的标识序号赋值给aps_id[0],并生成一个新APS,在该新APS中编码当前分片所使用SAO编码工具参数和ALF编码工具参数中的另一个,将该新APS标识序号赋值给aps_id[1],使用ue(v)对应的编码方法将aps_id[0]和aps_id[1]写入码流,当前流程结束。
步骤607,编码器判断是否需要在后续编码分片使用与当前分片具有相同工具参数的SAO或ALF,若是,执行步骤608;否则,执行步骤609。
步骤608,编码器将分片层数据结构中的number_valid_aps置为2,使用u(v)对应的方法将number_valid_aps写入码流,并生成两个新APS,其中一个新APS中编码当前分片所使用的SAO编码工具参数,另一个新APS中编码当前分片所使用的ALF编码工具参数,为所生成的两个新APS分配不同的APS标识序号,将所述两个新APS的标识序号分别赋值给aps_id[0]和aps_id[1],再使用ue(v)对应的编码方法将aps_id[0]和aps_id[1]写入码流,当前流程结束。
其中,所述编码器为一个图像层编码工具单独生成一个APS时,在所生成的APS中,其他图像层编码工具的开启/关闭标志位均置为0,并且不包含其他图像层编码工具所需的辅助参数。
步骤609,编码器将分片层数据结构中的number_valid_aps置为1,使用u(v)对应的方法将number_valid_aps写入码流,将生成一个新APS,在该新APS中编码当前分片所使用的SAO编码工具参数和ALF编码工具参数,为该新APS分配标识序号,并将该新APS的标识序号赋值给aps_id[0],再使用ue(v)对应的编码方法将aps_id[0]的值写入码流,当前流程结束。
实施例二
本实施例中所使用的APS码流组织结构与实施例一完全相同。
本实施例允许分片引用多个APS中给出的编码工具,多APS在分片头信息中的标识方法如实施例一中的表2所示,其中,number_valid_aps和number_valid_aps的含义以及其取值等与实施例一相同,唯一不同的是,当number_valid_aps的取值大于1时,当前分片同时引用多个APS,此时,解码器使用标识序号等于aps_id[0]的APS所给出的ALF编码工具参数配置解码当前分片过程中使用的ALF,使用标识序号等于aps_id[1]的APS中所给出的SAO编码工具参数配置解码当前分片过程中使用的SAO。
如图7所示,本实施例中解码器进行分片层多APS码流解码的流程,具体可以包括如下步骤:
步骤701,与步骤201完全相同。
步骤702,与步骤202完全相同。
步骤703,与步骤203完全相同。
步骤704,与步骤204完全相同。
步骤705,与步骤205完全相同。
步骤706,与步骤206完全相同。
步骤707,与步骤207完全相同。
步骤708,与步骤208完全相同。
步骤709,解码器使用标识序号等于aps_id[0]的APS中的ALF编码工具参数设置,解码当前分片过程中所使用分片层数据结构中的ALF编码工具参数;解码器使用标识序号等于aps_id[1]的APS中的SAO编码工具参数设置,解码当前分片过程中所使用分片层数据结构中的SAO编码工具参数,当前分片层多APS码流解码过程结束。
对应于图7所示的解码流程,本实施例中编码器进行分片层多APS码流编码的流程如图8所示,具体可以包括如下步骤:
步骤801,与步骤501完全相同。
步骤802,与步骤502完全相同。
步骤803,若编码器在当前分片编码过程中不需使用任何图像层编码工具,则执行步骤804;否则,执行步骤805。
步骤804,编码器将分片层数据number_valid_aps置为0,并使用u(v)对应的编码方法将number_valid_aps的值写入当前分片头信息的码流中,继续执行步骤811。
步骤805,如果编码器在当前分片编码过程中同时使用SAO与ALF,则执行步骤806;如果编码器在当前分片编码中仅使用了SAO与ALF中的一个图像层编码工具,则执行步骤807。
步骤806,编码器根据现有APS中所包含的编码工具参数,确定当前分片引用的APS,并在分片头信息中进行编码,继续执行步骤811。
步骤807,判断是否存在满足如下条件的已有APS:该APS中的所有图像编码工具的工具参数与当前分片层所有图像编码工具的工具参数完全相同,如果是,则现有APS中存在可供当前分片直接引用的APS,继续执行步骤808;如果不是,则现有APS中没有可供当前分片直接引用的APS,编码器需要生成新的APS,继续执行步骤809。
步骤808,编码器将分片层数据number_valid_aps置为1,并使用u(v)对应的编码方法将number_valid_aps的值写入码流,将aps_id[0]的取值置为相应编码工具参数与当前分片层所使用的编码工具参数相同的APS的标识序号,使用ue(v)对应的编码方法将aps_id[0]的值写入码流,继续执行步骤811。
步骤809,编码器生成新APS,在该新APS中编码当前分片需使用的编码工具参数,并为该新APS分配标识序号。
步骤810,编码器将分片层数据结构中的number_valid_aps置为1,使用u(v)对应的编码方法将number_valid_aps的值写入码流,并将aps_id[0]的取值置为所述新APS的标识序号,使用ue(v)对应的编码方法将aps_id[0]的值写入码流。
步骤811,编码器将分片的其它编码数据写入码流,分片编码过程结束。
其中,步骤806中所述编码器可根据当前分片是否使用分片层编码工具、所使用分片层编码工具中一种或多种的工具参数是否与已有APS中对应工具的工具参数相同、当前分片的图像层编码工具是否用于后续分片编码等因素,确定当前分片所引用的APS并在分片头信息中进行编码。步骤806的一种实现流程如图9所示,具体可以包括如下步骤:
步骤901,若现有APS中有APS同时包含SAO编码工具参数和ALF编码工具参数且与当前分片所使用的SAO编码工具参数和ALF编码工具参数均完全相同,则执行步骤902;否则,执行步骤903。
步骤902,编码器将分片层数据结构中number_valid_aps的值置为1,使用u(v)对应的编码方法将number_valid_aps写入码流,并将编码工具参数与当前分片所使用的编码工具参数完全相同的APS的标识序号赋值给aps_id[0],使用ue(v)的方法将aps_id[0]写入分片层头信息码流,当前流程结束。
步骤903,若现有APS中存在ALF编码工具参数与当前分片所使用的ALF编码工具参数相同的APS、以及SAO编码工具参数与当前分片所使用的SAO编码工具参数相同的APS,则执行步骤904;否则,执行步骤905。
步骤904,编码器将分片层数据结构中number_valid_aps的值置为2,使用u(v)对应的编码方法将number_valid_aps写入码流,将ALF编码工具参数与当前分片的ALF编码工具参数相同的APS的标识序号赋值给aps_id[0],将SAO编码工具参数与当前分片的SAO编码工具参数相同的APS的标识序号赋值给aps_id[1],使用ue(v)的方法将aps_id[0]和aps_id[1]写入分片层头信息码流,当前流程结束。
步骤905,若现有APS中存在对应编码工具参数与当前分片所使用的ALF编码工具参数和SAO编码工具参数中一个相同的APS,则执行步骤906;否则,需要为当前分片使用的SAO和ALF生成新的参数集,执行步骤908。
步骤906,编码器生成新APS,在所述新APS中编码当前分片所使用的ALF编码工具参数和SAO编码工具参数中的另一个,并为该新APS分配标识序号。
步骤907,编码器将分片层数据结构中的number_valid_aps的值置为2,使用u(v)对应的编码方法将number_valid_aps写入码流,将ALF编码工具参数与当前分片所使用的ALF编码工具参数相同的APS的标识序号,赋值给aps_id[0],将SAO编码工具参数与当前分片所使用的SAO编码工具参数相同的APS的标识序号赋值给aps_id[1],使用ue(v)的方法将aps_id[0]和aps_id[1]写入分片层头信息的码流,当前流程结束。
步骤908,若需要将当前分片编码工具参数的SAO和ALF用于后续分片的编码中,则执行步骤909;否则,执行步骤910。
步骤909,编码器生成两个新APS,在其中一个新APS中编码当前分片所使用的SAO编码工具参数,在另一个新APS中编码当前分片所使用的ALF编码工具参数,分别为两个新APS分配不同的标识序号,将分片层数据结构number_valid_aps的值置为2,使用u(v)对应的编码方法将number_valid_aps写入码流;将包含有当前分片所使用ALF编码工具参数的新APS的标识序号赋值给aps_id[0],将包含有当前分片所使用SAO编码工具参数的新APS的标识序号赋值给aps_id[1],使用ue(v)的方法将aps_id[0]和aps_id[1]写入分片层头信息码流,当前流程结束。
步骤910,编码器生成新的APS,在该APS中编码当前分片所使用的SAO编码工具参数和ALF编码工具参数,为该新APS分配标识序号,将分片层数据结构中的number_valid_aps的值置为1,使用u(v)对应的编码方法将number_valid_aps写入码流,并将所述新APS的标识序号赋值给aps_id[0],使用ue(v)的方法将aps_id[0]写入分片层头信息码流,当前流程结束。
实施例三
本实施例中所使用的APS码流组织结构与实施例一完全相同。
本实施例允许分片引用多个APS中给出的编码工具参数,多APS在分片层头信息中的标识方法如表3所示,本实施例在分片层头信息中添加APS标识信息,具体如表3中第6-16行所示。
slice_header(){ Descriptor
lightweight_slice_flag u(1)
if(!lightweight_slice_flag){
slice_type ue(v)
pic_parameter_set_id ue(v)
if(sample_adaptive_offset_enabled_flag||adaptive_loop_filter_enabled_flag){
valid_aps_exist_flag u(1)
if(valid_aps_exist_flag){
if(sample_adaptive_offset_enabled_flag){
aps_id_sao ue(v)
}
if(adaptive_loop_filter_enabled_flag){
aps_id_alf ue(v)
}
}
}
......
}
......
}
表3
表3中,valid_aps_exist_flag用于标识分片编解码过程中是否引用图像层编码工具。具体地,valid_aps_exist_flag等于1表示当前分片解码过程中引用图像层编码工具,并且引用APS配置图像层编码工具;valid_aps_exist_flag等于0表示当前分片解码过程中不引用图像层编码工具,解码当前分片的过程中不使用图像层编码工具。
aps_id_sao用于标识分片解码过程中SAO所引用APS的标识序号,分片解码过程中所使用的SAO编码工具参数从该APS中获得。
aps_id_alf用于标识分片解码过程中ALF所使用APS的标识序号,分片解码过程中所使用的ALF编码工具参数从该APS中获得。
基于表3,本实施例中解码器进行分片层多APS码流解码的流程如图10所示,具体可以包括如下步骤:
步骤1001,与步骤201完全相同;
步骤1002,解码器判断(sample_adaptive_offset_enabled_flag||adaptive_loop_filter_enabled_flag)的值是否为true,若为true,执行步骤1003;若为false,当前流程结束。
步骤1003,解码器解析分片头信息,使用u(1)所对应的译码方法获得valid_aps_exist_flag的取值。
步骤1004,若valid_aps_exist_flag的取值等于1,则继续执行步骤1005;否则,解码器在当前分片解码过程中不使用任何图像层编码工具,将分片层数据结构中的aps_sample_adaptive_offset_flag和aps_adaptive_loop_filter_flag均置为0,当前流程结束。
步骤1005,若sample_adaptive_offset_enable_flag的值等于1,则继续执行步骤1006;否则,分片层解码过程中不使用SAO,解码器将分片层数据结构中的aps_sample_adaptive_offset_flag置为0,继续执行步骤1007。
步骤1006,解码器使用ue(v)对应的译码方法获得aps_id_sao的取值,解码器从标识序号等于aps_id_sao的APS中读取SAO编码工具参数,并将所述SAO编码工具参数的参数值赋值给分片层SAO编码工具参数的数据结构,继续执行步骤1007。
步骤1007,若adaptive_loop_filter_enable_flag的值等于1,则继续执行步骤1008;否则,分片层解码过程中不使用ALF,解码器将分片层数据结构中的aps_adaptive_loop_filter_flag置为0,结束当前流程。
步骤1008,解码器使用ue(v)对应的译码方法获得aps_id_alf的取值,解码器从标识序号等于aps_id_alf的APS中读取ALF编码工具参数,并将所述ALF编码工具参数的参数值赋值给分片层ALF编码工具参数的数据结构,当前流程结束。
对应于上述的解码流程,本实施例中编码器进行分片层多APS码流编码的流程如图11所示,具体可以包括如下步骤:
步骤1101,与步骤501完全相同。
步骤1102,与步骤502完全相同。
步骤1103,若编码器在当前分片编码过程中不需使用任何图像层编码工具,则执行步骤1104;否则,编码器将分片层数据结构中valid_aps_exist_flag的值置为1,并使用u(1)对应的编码方法将valid_aps_exist_flag写入码流,继续执行步骤1105。
步骤1104,编码器将分片层数据结构valid_aps_exist_flag的值置为0,并使用u(1)对应的编码方法将valid_aps_exist_flag写入码流,继续执行步骤1112。
步骤1105,编码器判断:若现有APS中存在包含与当前分片所使用的SAO和ALF的工具参数相同的APS,即现有APS中存在可供当前分片直接引用的APS,则执行步骤1106;否则,执行步骤1107。
步骤1106,编码器将SAO编码工具参数与当前分片所使用SAO编码工具参数相同的APS的标识序号对应赋值给分片层数据结构中aps_id_sao,将ALF编码工具参数与当前分片所使用ALF编码工具参数相同的APS的标识序号对应赋值给分片层数据结构中aps_id_alf,并使用ue(v)对应的编码方法将aps_id_sao和aps_id_alf写入码流,继续执行步骤1112。
步骤1107,编码器判断:若现有APS中仅包含与当前分片所使用的SAO工具参数相同的APS但不包含与当前分片所使用的ALF工具参数相同的APS,即仅SAO工具参数编码可直接引用现有APS,则执行步骤1108。否则,执行步骤1109。
步骤1108,编码器将SAO编码工具参数与当前分片所使用SAO编码工具参数相同的APS的标识序号对应赋值给分片层数据结构中aps_id_sao。编码器生成新的APS,为其分配标识序号,在该APS中编码ALF工具参数,并将该APS标识序号赋值给分片层数据结构中aps_id_alf。编码器使用ue(v)对应的编码方法将aps_id_sao和aps_id_alf写入码流,继续执行步骤1112。
步骤1109,编码器判断:若现有APS中仅包含与当前分片所使用的ALF工具参数相同的APS但不包含与当前分片所使用的SAO工具参数相同的APS,即仅ALF工具参数编码可直接引用现有APS,执行步骤1110。否则,执行步骤1111。
步骤1110,编码器将ALF编码工具参数与当前分片所使用ALF编码工具参数相同的APS的标识序号对应赋值给分片层数据结构中aps_id_alf。编码器生成新的APS,为其分配标识序号,在该APS中编码SAO工具参数,并将该APS标识序号赋值给分片层数据结构中aps_id_sao。编码器使用ue(v)对应的编码方法将aps_id_sao和aps_id_alf写入码流,继续执行步骤1112。
步骤1111,编码器生成新的APS,为该APS分配标识序号,在该APS中同时编码SAO工具参数和ALF工具参数。编码器将该APS标识序号赋值给分片层数据结构中aps_id_sao和aps_id_alf,使用ue(v)对应的编码方法将aps_id_sao和aps_id_alf写入码流,继续执行步骤1112。
步骤1112,编码器将分片的其它编码数据写入码流,分片编码过程结束。
实施例四
本实施例中所使用的APS码流组织结构如表4所示,表4中第3-4行、第13-15行、第20行、第23-25行、第30-31行均为本实施例相对于现有APS码流组织结构新增加的语法单元。
表4
其中,aps_sample_adaptive_offset_data_present_flag用于标识当前APS中是否包含有SAO编码工具参数,具体地,aps_sample_adaptive_offset_data_present_flag取值等于1时,表示当前APS中包含有SAO编码工具参数;aps_sample_adaptive_offset_data_present_flag取值等于0时,表示当前APS中不包含SAO编码工具参数。实际应用中,aps_sample_adatpive_offset_flag的默认值为0。
aps_adaptive_loop_filter_data_present_flag用于标识当前APS中是否包含有ALF编码工具参数,具体地,aps_adaptive_loop_filter_data_present_flag取值等于1时,表示当前APS中包含有ALF编码工具参数;aps_adaptive_loop_filter_data_present_flag取值等于0时,表示当前APS中不包含ALF编码工具参数。实际应用中,aps_adaptive_loop_filter_flag的默认值为0。
基于表4所示APS码流组织结构,对应的APS码流解码流程如图12所示,主要可以包括如下步骤:
步骤1201,解码器读入APS码流,使用u(1)对应的译码方法解析得到aps_sample_adaptive_offset_data_present_flag和aps_adatpive_loop_filter_data_present_flag的取值。
步骤1202,解码器继续解码APS中与熵编码相关的填充信息。
步骤1203,若aps_sample_adaptive_offset_data_present_flag的取值为1,则执行步骤1204;否则,当前APS中不存在SAO编码工具参数,执行步骤1207。
步骤1204,解码器使用u(1)对应的译码方法解码得到aps_sample_adaptive_offset_flag的取值。
步骤1205,若aps_sample_adaptive_offset_flag的取值等于1,则执行步骤1206;否则,执行步骤1207。
步骤1206,解码器解码SAO滤波器参数及其他相关控制参数,并继续步骤1207。
步骤1207,若aps_adaptive_loop_filter_data_present_flag的取值等于1,则执行步骤1208;否则,当前APS中不存在ALF编码工具参数,执行步骤1211。
步骤1208,解码器使用u(1)对应的译码方法解码得到aps_adaptive_loop_filter_flag的取值。
步骤1209,若aps_adaptive_loop_filter_flag的取值等于1,则执行步骤1210;否则,执行步骤1211。
步骤1210,解码器解码ALF滤波器参数及其他相关控制参数,并继续步骤1211。
步骤1211,解码器解码APS中其他语法单元,并结束当前解码过程。
对应图12的APS码流解码流程,本实施例中APS码流编码的流程如图13所示,具体可以包括如下步骤:
步骤1301,编码器生成APS,为所生成的APS分配标识序号,并使用ue(v)对应的编码方法将所述APS的标识序号写入码流。
步骤1302,编码器根据分片层实际编码过程中使用的图像层编码工具,确定APS中aps_sample_adaptive_offset_data_present_flag和aps_adatpive_loop_filter_data_present_flag的取值,使用u(1)对应的方法将aps_sample_adaptive_offset_data_present_flag和aps_adatpive_loop_filter_data_present_flag写入码流,并编码熵编码相关填充信息。
步骤1303,若aps_sample_adaptive_offset_data_present_flag的取值等于1,则执行步骤1304;否则,执行步骤1305。
步骤1304,编码SAO编码工具参数,包括SAO开启/关闭标志位、SAO滤波器系数及相关控制信息,并继续步骤1305。
步骤1305,若aps_adatpive_loop_filter_data_present_flag的取值等于1,则执行步骤1306;否则,执行步骤1307。
步骤1306,编码ALF编码工具参数,包括ALF开启/关闭标志位、ALF滤波器系数及相关控制信息,并继续步骤1307。
步骤1307,编码器编码APS中的其他语法单元,当前编码流程结束。
需要说明的是,图12中的解码流程以及图13的编码流程中仅包含了针对新增语法单元的解码步骤或编码步骤,其他语法单元的解码或编码的步骤可以采用相关现有技术实现,不再赘述。
本实施例中,允许分片引用多个APS中给出的编码工具参数,多APS在分片层头信息中的标识方法如表5所示,本实施例在分片层头信息中添加APS标识信息,具体如表5中第6-11行所示。
slice_header(){ Descriptor
lightweight_slice_flag u(1)
if(!lightweight_slice_flag){
slice_type ue(v)
pic_parameter_set_id ue(v)
if(sample_adaptive_offset_enabled_flag||adaptive_loop_filter_enabled_flag){
number_valid_aps u(v)
for(i=0;i<number_valid_aps;i++){
aps_id[i] ue(v)
}
}
......
}
......
if(!lightweight_slice_flag){
......
if(adaptive_loop_filter_enabled_flag&&aps_adaptive_loop_filter_flag){
byte_align()
alf_cu_control_param()
byte_align()
}
}
}
表5
其中,表5中number_valid_aps、aps_id[i]的含义与实施例一表2中相同,所不同的是,当number_valid_aps的取值大于1时,当前分片同时引用多个APS,此时,当前分片所引用APS的标识序号由aps_id[0]、aps_id[1]、...、aps_id[number_valid_aps-1]给出。
所述解码器使用多APS的覆盖模式确定当前分片所使用的图像层编码工具的工具参数,具体为:标识序号为aps_id[n](1≤n≤number_valid_aps-1)的APS中aps_sample_adaptive_offset_data_present_flag为1时,用该APS中的SAO编码工具参数覆盖之前根据aps_id[0]、aps_id[1]、...、aps_id[n-1]确定的用于当前分片码流解码的SAO编码工具参数;标识序号为aps_id[n](1≤n≤number_valid_aps-1)的APS中aps_adaptive_loop_filter_data_present_flag为1时,用该APS中的ALF编码工具参数覆盖之前根据aps_id[0]、aps_id[1]、...、aps_id[n-1]确定的用于当前分片码流解码的ALF编码工具参数。
本实施例中,解码器进行分片层多APS码流解析的流程如图14所示,包括如下步骤:
步骤1401,与步骤201完全相同。
步骤1402,与步骤202完全相同。
步骤1403,与步骤203完全相同。
步骤1404,与步骤204完全相同。
步骤1405,与步骤205完全相同。
步骤1406,若number_valid_aps的取值等于1,则执行步骤1407;若number_valid_aps的取值不等于1,执行步骤1408。
步骤1407,与步骤207完全相同。
步骤1408,解码器解析多APS,并使用多APS的覆盖方法解码多个APS得到的SAO编码工具参数和ALF编码工具参数,确定解码当前分片过程中所使用的SAO编码工具参数和ALF编码工具参数,并将所确定的SAO编码工具参数和ALF编码工具参数的参数值分别赋值给分片层数据结构中SAO对应变量和ALF的对应变量,当前流程结束。
其中,步骤1408中确定当前分片解码过程中所使用的SAO编码工具参数和ALF编码工具参数的实现流程如图15所示,具体可以包括如下步骤:
步骤1501,解码器初始化循环变量i=0。
步骤1502,解码器判断循环变量i是否小于number_valid_aps,如果是,则执行步骤1503;否则,执行步骤1513。
步骤1503,解码器使用上述的APS码流解码方法解码标识序号为aps_id[i]的APS码流。
步骤1504,若aps_sample_adaptive_offset_data_present_flag的取值为1,则执行步骤1505;否则,执行步骤1506。
步骤1505,解码器将通过解码标识序号为aps_id[i]的APS获得的SAO编码工具参数覆盖之前确定用于解码当前分片的SAO编码工具参数,继续执行步骤1508。
步骤1506,解码器判断循环变量i的取值是否等于0,如果是,则执行步骤1507;否则,执行步骤1508。
步骤1507,解码器设置分片层aps_sample_adaptive_offset_flag取值为0,执行步骤1508。
步骤1508,若aps_adaptive_loop_filter_data_present_flag的取值为1,则执行步骤1509;否则,执行步骤1510。
步骤1509,解码器将通过解码标识序号为aps_id[i]的APS而获得的ALF编码工具参数覆盖之前确定用于解码当前分片的ALF编码工具参数,继续执行步骤1512。
步骤1510,解码器判断循环变量i的取值是否等于0,如果是则执行步骤1511;否则,执行步骤1512。
步骤1511,解码器设置分片层aps_adaptive_loop_filter_flag取值为0,继续执行步骤1512。
步骤1512,解码器更新循环变量i=i+1,返回执行步骤1502。
步骤1513,解码器使用最终确定的SAO编码工具参数和ALF编码工具参数进行当前分片码流的解码,当前流程结束。
需要说明的是,对于步骤1408的具体实现过程,可以将标识序号为aps_id[0]的APS作为基本APS,将标识序号分别为aps_id[1]、aps_id[2]、...、aps_id[number_valid_aps-1]的各APS作为修正APS,所述解码器可以先解码基本APS,设置分片层图像编码工具的初始工具参数,然后再解码各修正APS,并使用上述图15所示的多APS覆盖模式确定最终解码当前分片时所使用的图像层编码工具的编码工具参数。
相应的,本实施例中,编码器进行分片层多APS码流编码的流程如图16所示,具体可以包括如下步骤:
步骤1601-1602,与步骤501-502完全相同。
步骤1603,若当前分片需要使用图像层编码工具,且图像层编码工具的编码工具参数与已有APS中同一图像层编码工具的编码工具参数相同,则执行步骤1604;否则,执行步骤1605。
步骤1604,编码器将所述APS的标识序号写入分片层头信息的码流中,并继续执行步骤1606。
具体地,若所述编码器检测到存在一个已有APS,其包含的图像层编码工具的工具参数与当前分片使用的全部图像层编码工具的工具参数完全相同,则所述编码器将分片层数据结构中number_valid_aps的值置为1,使用u(v)对应的编码方法将number_valid_aps写入码流,并获取相应编码工具参数与当前分片所使用编码工具参数相同的APS的标识序号,将该APS的标识序号赋值给分片层数据结构中的aps_id[0],并使用ue(v)对应的编码方法将aps_id[0]的值写入码流。
若所述编码器检测到存在多个已有APS,按照多APS覆盖方法可获得与当前分片所使用的图像层编码工具相同的工具参数,则所述编码器将分片层数据结构中number_valid_aps的值置为所使用的APS个数,使用u(v)对应的编码方法将其写入码流。所述编码器根据多APS覆盖方法,将所使用APS的标识序号依次赋值给分片层数据结构中的aps_id[0]、aps_id[1]、...、aps_id[number_valid_aps-1],并使用ue(v)对应的编码方法将其写入码流。
步骤1605,编码器生成新的APS,为新APS分配标识序号,并将新APS的标识序号信息写入分片头信息中,继续执行步骤1606。
具体地,所述编码器可针对当前分片层所使用的各图像层编码工具,分别生成对应的新APS,在各图像层编码工具对应的新APS中编码相应的编码工具参数。
具体地,所述编码器还可以生成一个新APS,在该APS中编码当前分片层所使用的全部编码工具的编码工具参数,并将该APS的标识序号写入分片层头信息的码流中。
这里,所述编码器还可以根据当前分片层所使用的图像层编码工具是否需要用于后续分片的编码,确定生成新APS的数目,其中,一个APS中可以包含一个或多个图像层编码工具的编码工具参数。
其中,若当前分片层所使用的图像层编码工具中有一个/多个图像层编码工具的工具参数与现有APS中所包含的对应编码工具参数相同,则编码器可以仅针对工具参数与所有的现有APS中包含的对应编码工具参数均不相同的其他图像层编码工具生成APS。
所述编码器将APS的标识序号信息写入分片头信息的码流中,保证使用多APS覆盖方式的解码器在解析码流后能够获得正确的图像层编码工具的工具参数。
上述仅为所述编码器生成APS、利用现有APS、使得后续编码分片可以复用当前分片APS等方面进行优化的简单方法。凡能够生成本实施例中提供解码器可正确解析的分片层APS码流的编码器、APS编码和分片层APS编码方法,均属于本实施例步骤1605所涵盖的范围。
步骤1606,编码器将分片的其它编码数据写入码流,分片编码过程结束。
具体地,步骤1605中编码器生成新APS,为新APS分配标识序号,并将新APS的标识序号信息写入分片头信息的具体实现流程如图17所示,包括如下步骤:
步骤1701,与步骤601完全相同。
步骤1702,与步骤602完全相同。
步骤1703,与步骤603完全相同。
步骤1704,与步骤604完全相同。
步骤1705,若现有APS中存在对应工具参数与当前分片的SAO或ALF之一工具参数相同,则执行步骤1706;否则,执行步骤1707。
步骤1706,与步骤606完全相同。
步骤1707,编码器优化模块判断是否需要在后续编码分片单独使用与当前分片具有相同工具参数的SAO或ALF,则执行步骤1708;否则,执行步骤1709。
步骤1708,与步骤608完全相同。
步骤1709,与步骤609完全相同。
实施例五
本实施例中所使用的APS码流组织结构与实施例一完全相同。
本实施例允许分片引用多个APS中给出的编码工具参数,多APS在分片层头信息中的标识方法如表2所示,本实施例在分片层头信息中添加APS标识信息,具体如表6中第6-16行所示。
slice_header(){ Descriptor
lightweight_slice_flag u(1)
if(!lightweight_slice_flag){
slice_type ue(v)
pic_parameter_set_id ue(v)
if(sample_adaptive_offset_enabled_flag||adaptive_loop_filter_enabled_flag){
number_valid_aps u(v)
for(i=0;i<number_valid_aps;i++){
aps_id[i] ue(v)
}
if(number_valid_aps>1){
for(i=0;i<number_valid_aps-1;i++){
aps_overwriting_pattern[i] u(2)
}
}
}
......
}
......
}
表6
其中,number_valid_aps和aps_id[i]的含义与实施例一中完全相同。
其中,aps_overwriting_pattern[i]用于指示number_valid_aps取值大于1时的多APS覆盖模式。具体地,本实施例中使用的多APS覆盖模式及其具体地操作方法如表7所示。
表7
其中,aps_overwriting_pattern[i]的二进制表示中包含两个比特位,其中,第一个比特位用于标识“ALF编码工具参数是否覆盖”,第二个比特位用于标识“SAO编码工具参数是否覆盖”,并定义相应的覆盖操作。该方法可直接用于可用图像层编码工具的数量大于2时对多APS覆盖模式及对应操作的扩展。
本实施例中,解码器进行分片层多APS码流解码的流程如图18所示,具体可以包括如下步骤:
步骤S1801,与步骤201完全相同。
步骤S1802,与步骤202完全相同。
步骤S1803,与步骤203完全相同。
步骤S1804,与步骤204完全相同。
步骤S1805,与步骤205完全相同。
步骤S1806,与步骤206完全相同。
步骤S1807,与步骤207完全相同。
步骤S1808,与步骤208完全相同。
步骤S1809,解码器使用u(2)对应的译码方法解析APS覆盖模式索引信息,并使用各覆盖模式对应的操作方法(表8)确定SAO和ALF编码工具参数,当前流程结束。
相应的,本实施例中,编码器进行分片层多APS码流编码的流程如图19所示,具体可以包括如下步骤:
步骤1901,与步骤1601完全相同。
步骤1902,与步骤1602完全相同。
步骤1903,若编码器检测当前分片使用图像层编码工具且所使用工具与已有APS中图像层工具的工具参数相同,则执行步骤1904;否则,执行步骤1905。
步骤1904,编码器将所述已有APS的标识序号写入分片层头信息的码流中,并继续执行步骤1906。
具体地,若所述编码器检测到存在一个已有APS,其包含的图像层编码工具的工具参数与当前分片使用的全部图像层编码工具的工具参数完全相同,则所述编码器将分片层数据结构中number_valid_aps的值置为1,使用u(v)对应的编码方法将number_valid_aps写入码流,并获取相应编码工具参数与当前分片所使用编码工具参数相同的APS的标识序号,将该APS的标识序号赋值给分片层数据结构中的aps_id[0],并使用ue(v)对应的编码方法将aps_id[0]的值写入码流。
若现有APS中存在SAO编码工具参数与当前分片使用的SAO编码工具参数相同的一个APS、以及ALF编码工具参数与当前分片所使用的ALF编码工具参数相同的一个APS,则所述编码器将分片层数据结构中number_valid_aps的值置为2,使用u(v)对应的编码方法将number_valid_aps的值写入码流,并将上述两个APS的标识序号分别赋值给aps_id[0]和aps_id[1],并使用ue(v)对应的编码方法将aps_id[0]和aps_id[1]的值写入码流,所述编码器还确定所需使用的多APS覆盖模式,为aps_overwriting_pattern赋值,使用u(2)对应的编码方法将aps_overwriting_pattern的值写入码流。
其中,所述编码器在将多APS标识序号写入分片层头信息码流的过程中,必须保证所设置的多APS可使得本实施例解码器使用分片层多APS码流解码方法和所定义的APS覆盖模式,获得正确的图像层编码工具的编码工具参数。
步骤1905,编码器生成新的APS,为该新APS分配标识序号,并将新APS的标识序号及其多APS覆盖模式写入分片头信息中,执行步骤1906。
所述编码器在将多APS标识序号写入分片层头信息码流的过程中,必须保证所设置的多APS可使得本实施例解码器使用分片层多APS码流解码方法和所定义的APS覆盖模式,获得正确的图像层编码工具的编码工具参数。
步骤1906,编码器将分片的其它编码数据写入码流,分片编码过程结束。
其中,步骤1905中生成新APS的实现流程如图20所示,具体可以包括如下步骤:
步骤2001,与步骤601完全相同。
步骤2002,与步骤602完全相同。
步骤2003,与步骤603完全相同。
步骤2004,与步骤604完全相同。
步骤2005,编码器判断在现有APS中是否存在对应的编码工具参数与当前分片的SAO编码工具参数或ALF编码工具参数相同的APS,如果是,则继续执行步骤2006;如果不是,继续执行步骤2007。
步骤2006,与步骤606完全相同。
步骤2007,编码器设置APS覆盖模式,以保证解码器获得正确的图像层编码工具参数,并将基于设置的APS覆盖模式,为分片层数据结构中的aps_overwriting_pattern[0]赋值,使用u(2)对应的编码方法将aps_overwriting_pattern[0]的值写入码流,当前流程结束。
步骤2008,编码器判断后续编码分片需要使用与当前分片具有相同编码工具参数的SAO或ALF,若是,执行步骤2009;否则,执行步骤2011。
步骤2009,与步骤608完全相同。
步骤2010,编码器设置APS覆盖模式,保证解码器获得正确的图像层编码工具参数,并将基于所设置的覆盖模式为分片层数据结构中的aps_overwriting_pattern[0]赋值,使用u(2)对应的编码方法将aps_overwriting_pattern[0]的值写入码流,当前流程结束。
步骤2011,与步骤609完全相同。
本实施例中,还可以使用实施例四中的APS码流组织结构。此时,所述编码器为一个图像层编码工具单独生成一个APS时,在该生成的APS中,其他图像层编码工具在该APS中存在工具参数的标志位均为0。例如,为ALF工具参数单独生成的APS中,所述编码器将SAO对应的aps_sample_adaptive_offset_data_present_flag置为0。
实施例六
本实施例中所使用的APS码流组织结构与实施例一相同。
本实施例允许分片引用多个APS中给出的编码工具参数,多APS在分片层头信息中的标识方法如表2所示,本实施例在分片层头信息中添加APS标识信息,具体如表2中第6-13行所示。
本实施例解码器使用APS覆盖模式确定当前解码分片所使用的编码工具参数。具体地,本实施例使用的APS覆盖模式及对应的操作方法如表8所示,当分片头信息中存在多个APS时,解码器根据aps_id[i]和aps[i-1](i=1,2,...,number_valid_aps-1)给出的APS标识序号之间的绝对值之差abs(x)确定APS的信息覆盖模式。表8中,abs(x)返回实数x的绝对值。
表8
本实施例中,解码器进行分片层多APS码流解码的流程如图21所示,具体可以包括如下步骤:
步骤2101,与步骤201完全相同。
步骤2102,与步骤202完全相同。
步骤2103,与步骤203完全相同。
步骤2104,与步骤204完全相同。
步骤2105,与步骤205完全相同。
步骤2106,若number_valid_aps的取值等于1,则执行步骤2107;若number_valid_aps的取值不等于1或0,执行步骤2108。
步骤2107,与步骤207完全相同。
步骤2108,解码器使用ue(v)所对应的译码方法获得aps_id[0]、aps_id[1]、...、aps_id[number_valid_aps-1]的取值,解码器解码标识序号分别为aps_id[0]、aps_id[1]、...、aps_id[number_valid_aps-1]的多个APS中的SAO编码工具参数和ALF编码工具参数,并根据所定义的APS覆盖模式确定当前分片解码过程中使用的编码工具参数,结束当前流程。
其中,步骤2108中根据所定义的APS覆盖模式确定当前分片解码过程中使用的编码工具参数的流程如图22所示,具体可以包括如下步骤:
步骤2201,解码器解码标识序号等于aps_id[0]的APS,获得该APS图像层编码工具的编码工具参数。
步骤2202,解码器初始化循环变量:i:=1。
步骤2203,若i<number_valid_aps成立,则执行步骤2204;否则,结束当前流程。
步骤2204,解码器解码标识序号为aps_id[i]的APS,并根据abs(aps_id[i]-aps_id[i-1])确定APS覆盖模式。
步骤2205,解码器根据所确定的APS覆盖模式,使用标识序号等于aps_id[i]的APS中编码工具参数覆盖基于之前已确定的相应编码工具参数。
步骤2206,解码器更新循环变量:i:=i+1,执行步骤2203。
相应的,本实施例中编码器进行分片层多分片多APS码流编码的流程如图23所示,具体可以包括如下步骤:
步骤2301,与步骤1901完全相同。
步骤2302,与步骤1902完全相同。
步骤2303,若当前分片需要使用图像层编码工具,且图像层编码工具的编码工具参数与已有APS中同一图像层编码工具的编码工具参数相同,则执行步骤2304;否则,执行步骤2305。
步骤2304,编码器将所述已有APS的标识序号写入分片层头信息中,执行步骤2306。
具体地,若所述编码器检测到存在一个已有APS,其包含的图像层编码工具的工具参数与当前分片使用的全部图像层编码工具的工具参数完全相同,则所述编码器将分片层数据结构中number_valid_aps的值置为1,使用u(v)对应的编码方法将number_valid_aps写入码流,并获取相应编码工具参数与当前分片所使用编码工具参数相同的APS的标识序号,将该APS的标识序号赋值给分片层数据结构中的aps_id[0],并使用ue(v)对应的编码方法将aps_id[0]的值写入码流。
若现有APS中存在SAO编码工具参数与当前分片使用的SAO编码工具参数相同的一个APS、以及ALF编码工具参数与当前分片所使用的ALF编码工具参数相同的一个APS,且两个APS的标识序号关系恰可满足所需使用的APS覆盖模式,则所述编码器将分片层数据结构中number_valid_aps的值置为2,使用u(v)对应的编码方法将number_valid_aps的值写入码流,并将上述两个APS的标识序号分别赋值给aps_id[0]和aps_id[1],并使用ue(v)对应的编码方法将aps_id[0]和aps_id[1]的值写入码流。
若现有APS中存在SAO编码工具参数与当前分片使用的SAO编码工具参数相同的一个APS、以及ALF编码工具参数与当前分片所使用的ALF编码工具参数相同的一个APS,但两个APS的标识序号关系不能满足所需使用的APS覆盖模式,则所述编码器可将number_valid_aps的值设置为2,将编码比特较多的APS的标识序号赋值给aps_id[0],并生成一个新APS,在该新APS中编码另一个图像层编码工具的编码工具参数,并根据所需使用的APS覆盖模式为该APS分配标识序号,赋值给aps_id[1],使用u(v)对应的编码方法将number_valid_aps的值写入码流,使用ue(v)对应的编码方法将aps_id[0]和aps_id[1]的值写入码流。
其中,所述编码器在将多APS标识序号写入分片层头信息码流的过程中,必须保证所设置的多APS可使得本实施例解码器使用分片层多APS码流解码方法和所定义的APS覆盖模式,获得正确的图像层编码工具的编码工具参数。
步骤2305,编码器生成新的APS,为该新APS分配标识序号,并将新APS的标识序号及其多APS覆盖模式写入分片头信息中,继续执行步骤2306。
步骤2306,编码器将分片的其它编码数据写入码流,分片编码过程结束。
其中,步骤2305中生成新APS的实现流程如图24所示,具体可以包括如下步骤:
步骤2305的一种实现方法的流程如图24所示。
步骤2401,与步骤601完全相同。
步骤2402,与步骤602完全相同。
步骤2403,如果编码器在编码当前分片过程中仅使用了SAO和ALF中的一种图像层编码工具,则执行步骤2404;如果编码器在编码当前分片过程中同时使用了SAO和ALF中的两种图像层编码工具,则执行步骤2405。
步骤2404,与步骤604完全相同。
步骤2405,编码器判断在现有APS中是否存在对应的编码工具参数与当前分片的SAO编码工具参数或ALF编码工具参数相同的APS,如果是,则执行步骤2406;如果不是,则继续执行步骤2410。
步骤2406,编码器确定APS覆盖模式,并根据该APS覆盖模式确定新APS的候选标识序号。
步骤2407,编码器判断所确定的新APS候选标识序号是否均已分配,如果是,则继续执行步骤2410;如果不是,则继续执行步骤2408。
步骤2408,编码器选择可用候选APS标识序号,为另一个编码工具的工具参数生成一个新的APS,并将其标识序号赋值给aps_id[1]。
步骤2409,编码器将分片层数据结构number_valid_aps置为2,使用u(v)对应的方法将其写入码流,将相同工具参数的APS的标识序号赋值给aps_id[0],并器使用ue(v)对应的编码方法将aps_id[0]和aps_id[1]写入码流,当前流程结束。
步骤2410,编码器优化模块判断后续编码分片是否会需要单独使用与当前分片具有相同编码工具参数的SAO或ALF,若是,则执行步骤2411;否则,执行步骤2414。
步骤2411,编码器确定各包含一个图像层编码工具的工具参数的APS的覆盖模式,并根据覆盖模式确定两个APS的候选标识序号。
步骤2412,编码器判断:若新APS的候选标识序号均未分配给已有APS,则执行步骤2413;否则,执行步骤2414。
步骤2413,编码器将分片层数据结构number_valid_aps置为2,使用u(v)对应的方法将其写入码流,分别为SAO和ALF生成两个APS,分配可用候选标识序号,并分别赋值给aps_id[0]和aps_id[1],使用ue(v)对应的编码方法将aps_id[0]和aps_id[1]写入码流,当前流程结束。
步骤2414,与步骤609完全相同。
实施例七
本实施例详细说明使用图像层编码工具与图像或分片层公共控制模块进行分片多APS码流编解码的实现过程。
本实施例中所使用APS码流组织的结构如表9所示。
aps_rbsp(){ Descriptor
aps_id ue(v)
aps_common_management_module_data_present_flag u(1)
if(aps_common_management_module_data_present_flag)
common_management_module_data()
else
picture_level_coding_tool_data()
}
表9
表9中,语法单元aps_common_management_module_data_present_flag用于标识APS所包含的编码工具参数种类,具体地,其取值等于1时,该APS中包含的数据为图像或分片层公共控制模块类编码工具的编码工具参数,该编码工具参数包含标志位及操作参数,所述编码工具参数包含在数据结构common_management_module_data()中;取值等于0时,该APS中包含的数据为图像层编码工具的编码工具参数,如开启/关闭标志位及操作参数,所述编码工具参数包含在数据结构picture_level_coding_tool_data()中。
其中,数据结构picture_level_coding_tool_data()可使用实施例一~实施例六中给出的APS所使用编码工具参数的数据结构相同,数据结构common_management_module_data()可与实施例一~实施例六中APS所使用的编码工具参数的数据结构相类似,不再赘述。
基于表9所示的APS码流组织,对应的解码流程如图25所示,具体可以包括如下步骤:
步骤2501,解码器读入APS码流,使用u(1)对应的译码方法解析得到语法单元aps_common_management_module_data_present_flag的取值。
步骤2502,若aps_common_management_module_data_present_flag的取值等于1,则执行步骤2503;若aps_common_management_module_data_present_flag的取值等于0,则执行步骤2504。
步骤2503,解码器读入APS码流,根据图像或分片层公共控制模块相关语法单元对应的译码方法得到各语法单元的取值,当前解码过程结束。
步骤2504,解码器读入APS码流,根据图像层编码工具相关语法单元对应的译码方法得到各语法单元的取值,当前解码过程结束。
基于表9所示的APS码流组织,,对应的编码流程如图26所示,具体可以包括如下步骤:
步骤2601,编码器优化模块确定当前分片编码过程中使用的编码工具的参数。
所述编码器优化模块用于确定当前编码单元编码过程中需要使用的编码工具及其参数,如现有的率失真优化模块。
步骤2602,编码器将图像或分片层公共管理模块信息写入码流。
所述编码器判断当前使用的图像或分片层公共管理模块信息是否与之前已有的相关信息相同,或判断当前使用的图像或分片层公共管理模块信息是否能够从现有APS中获得,如果是,则无需编码当前使用的图像或分片层公共管理模块信息;如果不是,则需要编码当前使用的图像或分片层公共管理模块信息。
若需要编码当前使用的图像或分片层公共管理模块信息,所述编码器判断是否需要将图像或分片层公共管理模块信息单独写入分片层头信息,若需要,则单独写入当前分片头信息中;否则,编码器生成新APS,分配APS标识序号,在所述新APS中编码图像或分片层公共管理模块的编码工具参数。
步骤2603,编码器将图像层编码工具参数写入码流。
所述编码器判断当前使用的图像层编码工具参数是否与之前已有的相关信息相同,或判断当前使用的图像或分片层公共管理模块信息是否能够从现有APS中获得,若是,则无需编码当前使用的图像层工具参数;若不是,则需要编码当前使用的图像层工具参数。
若需要编码当前所使用图像层编码工具的编码工具参数,所述编码器生成新APS,分配APS标识序号,在所述新APS中编码图像层编码工具的编码工具参数。
本实施例允许分片引用多个APS中给出的编码工具参数,多APS在分片层头信息中的标识方法如表10所示,本实施例在分片层头信息中添加APS标识信息,具体如表10中第10-16行所示。
slice_header(){ Descriptor
lightweight_slice_flag u(1)
if(!lightweight_slice_flag){
slice_type ue(v)
pic_parameter_set_id ue(v)
if(sample_adaptive_offset_enabled_flag||adaptive_loop_filter_enabled_flag){
aps_id ue(v)
}
......
referring_to_aps_flag u(1)
if(referring_to_aps_flag){
aps_id_management_module ue(v)
}
else{
common_management_module_data()
}
......
}
......
}
表10
表10中,aps_id用于标识当前分片解码过程中所引用APS的标识序号。解码器使用标识序号等于aps_id的APS中图像层编码工具的编码工具参数配置解码当前分片过程中所使用的图像层编码工具。
referring_to_aps_flag用于标识配置解码当前分片过程中所使用图像或分片层公共管理模块所使用的编码工具参数的来源。具体地,referring_to_aps_flag取值等于1时,解码器使用APS中图像或分片层公共管理模块的编码工具参数配置解码当前分片过程中所使用的图像或分片层公共管理模块;取值等于0时,解码器使用分片头信息中给出的图像或分片层公共管理模块的编码工具参数,即数据结构common_management_module_data()所包含的参数,配置解码当前分片过程中使用的图像或分片层公共管理模块。
aps_id_management_module用于表示当前分片解码过程中所应用APS的标识序号。解码器使用标识序号等于aps_id_management_module的APS中图像层编码工具的编码工具参数配置解码当前分片过程中所使用的图像或分片公共管理模块。
对应于表10,本实施例中,解码器进行分片层多APS码流解码的流程如图27所示,可以包括如下步骤:
步骤2701,与步骤201完全相同。
步骤2702,解码器判断(sample_adaptive_offset_enabled_flag||adaptive_loop_filter_enabled_flag)的值是否为true。若为true,执行步骤2703;否则,执行步骤2704。
步骤2703,解码器解析分片头信息,使用u(v)所对应的译码方法获得aps_id的取值,使用标识序号等于aps_id的APS中图像层编码工具的编码工具参数配置解码当前分片过程中使用的图像层编码工具,继续执行步骤2704。
步骤2704,解码器解析分片头信息,使用u(1)所对应的译码方法获得referrfing_to_aps_flag的取值。
步骤2705,解码器判断referring_to_aps_flag的取值是否等于1,若等于1,则执行步骤2706;若取值等于0,则执行步骤2707。
步骤2706,解码器解析分片头信息,使用ue(v)所对应的译码方法获得aps_id_management_module的取值,使用标识序号等于aps_id_management_module的APS中图像或分片层公共管理模块的编码工具参数配置解码当前分片过程中使用的图像或分片层公共管理模块,继续执行步骤2708。
步骤2707,解码器解析分片头信息中的数据结构common_management_module_data(),使用数据结构common_management_module_data()中各语法单元的取值配置解码当前分片头信息过程中使用的图像或分片层公共管理模块,继续执行步骤2708。
步骤2708,分片层多APS码流的解码过程结束,继续解码该分片头信息中的其他语法单元。
相应的,本实施例中编码器进行分片多APS码流编码的流程,如图28所示,具体可以包括如下步骤:
步骤2801,与步骤501完全相同。
步骤2802,与步骤502完全相同。
步骤2803,若当前分片需要使用的图像层编码工具的编码工具参数与已有APS中包含的同一图像层编码工具的编码工具参数完全相同,则执行步骤2804;否则,执行步骤2805。
步骤2804,编码器获取编码工具参数与当前分片相应编码工具参数相同的APS的标识序号,将该APS标识序号赋值给分片层数据结构中的aps_id,并使用ue(v)对应的编码方法将aps_id的值写入码流,继续执行步骤2806。
步骤2805,编码器生成新APS,为该新APS分配标识序号,在该新APS中编码当前分片需使用图像层编码工具的编码工具参数,将所述新APS的标识序号赋值给分片层数据结构中的aps_id,并使用ue(v)对应的编码方法将aps_id的值写入码流,继续执行步骤2806。
步骤2806,编码器判断是否需要通过引用APS的方式编码图像或分片层公共管理模块的编码工具参数,如果是,执行步骤2807;如果不是,执行步骤2811。
实际应用中,所述编码器可以将当前分片所需图像或分片层公共管理模块的编码工具参数直接写入分片层头信息数据结构common_management_module_data()中,也可以通过引用APS的方式将当前分片所需图像或分片层公共管理模块的编码工具参数写入到分片层头信息数据结构common_management_module_data()中。
步骤2807,编码器将分片层语法单元referring_to_aps_flag的取值置为1,并使用u(1)对应的编码方法将referring_to_aps_flag的值写入码流,继续步骤2808;
步骤2808,如果当前分片需使用图像或分片层公共管理模块的编码工具参数与已有APS中包含的相应编码工具参数完全相同,则执行步骤2809;否则,执行步骤2810。
步骤2809,编码器获取相应编码工具参数与当前分片需使用图像或分片层公共管理模块的编码工具参数相同的APS的标识序号,将该APS的标识序号赋值给分片层数据结构中的aps_id_management_module,并使用ue(v)对应的编码方法将aps_id_management_module的值写入码流,继续执行步骤2812。
步骤2810,编码器生成新APS,在该新APS中编码当前分片需使用图像或分片层公共管理模块的编码工具参数,并为该新APS分配标识序号,将所述新APS的标识序号赋值给分片层数据结构中的aps_id_management_module,并使用ue(v)对应的编码方法将aps_id_management_module的值写入码流,继续执行步骤2812。
步骤2811,编码器将分片层语法单元referring_to_aps_flag的取值置为0,并使用u(1)对应的编码方法将referring_to_aps_flag的值写入码流,将当前分配所需图像或分片层公共管理模块工具的编码工具参数赋值给分片层数据结构common_management_module_data()中的对应语法单元,并使用数据结构common_management_module_data()中各语法单元对应的编码方法将各语法单元的取值写入码流,继续执行步骤2812。
步骤2812,分片层多APS编码过程结束,继续编码其他分片层头信息。
实施例八
本实施例详细说明使用图像层编码工具与图像或分片层公共控制模块进行分片多APS码流编解码的实现过程。
本实施例APS码流组织结构如实施例七中的表9所示。
本实施例允许分片引用多个APS中给出的编码工具参数,多APS在分片层头信息中的标识方法如表11所示,本实施例在分片层头信息中添加APS标识信息,具体如表11中第6行和第8行所示。
slice_header(){ Descriptor
lightweight_slice_flag u(1)
if(!lightweight_slice_flag){
slice_type ue(v)
pic_parameter_set_id ue(v)
picture_level_coding_tools_APS_data()
......
common_management_module_APS_data()
......
}
......
}
表11
表11中,picture_level_coding_tools_APS_data()为图像编码工具的分片层多APS码流组织结构,该码流组织结构可使用本专利实施例一~六中所描述的分片层多APS码流组织结构。common_management_module_APS_data()为图像或分片层公共管理模块的分片层多APS码流组织结构,其具体结构如表12所示。
common_management_module_APS_data(){ Descriptor
number_vaild_aps_management_module u(v)
if(number_vaild_aps_management_module>0){
for(i=0;i<number_valid_aps_management_module;i++){
aps_id_management_module[i] ue(v)
}
}
else{
common_management_module_data()
}
}
表12
其中,number_valid_aps_management_module用于标识当前分片头信息中解码图像或分片层公共管理模块编码工具参数时引用的APS数量,取值为[0,MaxNumberValidApsManagementModule]之间的整数。若码流中未给出语法单元number_valid_aps_management_module,则其取值默认为0。number_valid_aps_management_module的取值上限值MaxNumberValidApsManagementModule的值可以根据档次/级别可用图像或分片层公共管理模块类工具的数量确定。
当number_valid_aps_management_module的取值等于0时,解码器不使用引用APS的方式获得图像或分片层公共管理模块的编码工具参数。
aps_id_management_module[i]用于标识当前分片头信息中当前分片头信息中解码图像或分片层公共管理模块编码工具参数时所引用APS的标识序号。其中,i为[0,number_valid_aps_management_module-1]之间的整数。
其中,表11可用实施例一~六中的类似方法实现图像或分片层公共管理模块相关的分片层多APS码流组织。
本实施例中,图像层编码工具的编码工具参数与图像或分片层公共管理模块的编码工具参数不出现在同一个APS中,因此,本实施例中分片层多APS码流解码及编码的流程,可以基于实施例一~六中所描述的分片层多APS码流解码及编码流程直接类推得到,不再赘述。
其中,所述编码器可使用与实施例七中的方法判断是否需要在分片头信息中编码当前分片所使用图像或分片层公共管理模块的编码工具参数。若需要,编码器将分片层头信息中语法单元number_valid_aps_management_module的取值置为0,将图像或分片层公共管理模块的编码工具参数赋值给common_management_module_data()数据结构中的对应语法单元,使用各语法单元对应的编码方法将其取值写入码流。若不需要,使用上述实施例一~六中所描述的方法确定所需引用的APS数量,赋值给语法单元number_valid_aps_management_module,并编码所使用APS的标识序号。
实施例九
本实施例详细说明使用图像层编码工具与图像或分片层公共控制模块进行分片多APS码流编解码的实现过程。
本实施例中所使用APS码流组织的结构如表13所示。
aps_rbsp(){ Descriptor
aps_id ue(v)
......
aps_tool_A_flag u(1)
aps_tool_B_flag u(1)
......
aps_common_management_module_data_present_flag u(1)
......
if(aps_tool_A_flag)
tool_A_param()
if(aps_tool_B_flag)
tool_B_param()
......
if(aps_common_management_module_data present_flag)
common_management_module_data()
......
}
表13
表13中,tool_A和tool_B为图像层编码工具,如SAO、ALF等。
其中,aps_tool_A_flag、与aps_tool_B_flag的含义可以与实施例一表1中SAO开启/关闭标志位aps_sample_adaptive_offset_flag和ALF开启/关闭标志位aps_adaptive_loop_filter_flag相类似。具体地,aps_tool_A_flag可定义为工具A的开启/关闭标志位。aps_tool_A_flag取值等于1时,分片的解码过程中使用工具A,且工具A的编码工具参数由该APS给出;aps_tool_A_flag取值等于0时,分片的解码过程中不使用工具A,当前APS中不包含工具A的工具参数。aps_tool_B_flag可定义为工具B的开启/关闭标志位。aps_tool_B_flag取值等于1时,分片的解码过程中使用工具B,且工具B的编码工具参数由该APS给出;aps_tool_B_flag取值等于0时,分片的解码过程中不使用工具B,当前APS中不包含工具B的工具参数。
其中,aps_tool_A_flag、与aps_tool_B_flag的含义还可以与实施例四表4中aps_sample_adaptive_offset_data_present_flag和aps_adaptive_loop_filter_data_present_flag的含义相类似。具体地,aps_tool_A_flag可定义为用于标识当前APS中是否包含有工具A的编码工具参数,aps_tool_A_flag取值等于1时,当前APS中包含工具A的部分或全部的编码工具参数;aps_tool_A_flag取值等于0时,当前APS中不包含工具A的编码工具参数。aps_tool_B_flag可定义为用于标识当前APS中是否包含有工具B的编码工具参数,aps_tool_B_flag取值等于1时,当前APS中包含工具B的部分或全部的编码工具参数;aps_tool_B_flag取值等于0时,当前APS中不包含工具B的编码工具参数。
这里,数据结构tool_A_param()包含有工具A的部分或全部编码工具参数,数据结构tool_B_param()包含有工具B的部分或全部编码工具参数。
aps_common_management_module_data_present_flag用于标识APS中是否包含图像或分片层公共控制模块的编码工具参数,aps_common_management_module_data_present_flag的取值等于1时,该APS中包含图像或分片层公共控制模块的编码工具参数,且该编码工具参数包含在数据结构common_management_module_data()中;aps_common_management_module_data_present_flag的取值等于0时,该APS中不包含图像或分片层公共控制模块的编码工具参数。这里,数据结构common_management_module_data()包含有图像或分片层公共管理模块的部分或全部的编码工具参数。
基于表13中第9-15行,可知,本实施例所使用的APS码流组织方法允许APS中同时包含图像层编码工具的编码工具参数和图像或分片层公共管理模块的编码工具参数。
本实施例允许分片引用多个APS中给出的编码工具参数,多APS在分片层头信息中的标识方法如表14所示,本实施例在分片层头信息中添加APS标识信息,具体如表14中第8行、以及第11-19行所示。
slice_header(){ Descriptor
lightweight_slice_flag u(1)
if(!lightweight_slice_flag){
slice_type ue(v)
pic_parameter_set_id ue(v)
if(sample_adaptive_offset_enabled_flag||adaptive_loop_filter_enabled_flag){
aps_id ue(v)
referred_by_management_module u(1)
}
......
if(!referred_by_management_module){
referring_to_aps_flag u(1)
if(referring_to_aps_flag){
aps_id_management_module ue(v)
}
else{
common_management_module_data()
}
}
......
}
......
}
表14
表14中,referred_by_management_module用于标识当前分片编解码过程中所使用的图像层编码工具的编码工具参数和图像或分片层公共管理模块的编码工具参数是否来自于同一个APS,其中,referred_by_management_module取值等于1时,当前分片编解码过程中所使用图像层编码工具的编码工具参数和图像或分片层公共管理模块的编码工具参数来自于同一个APS;referred_by_management_module取值等于0时,当前分片编解码过程中所使用图像层编码工具的编码工具参数和图像或分片层公共管理模块的编码工具参数来自于不同的APS。若referred_by_management_module未在码流中显示给出(即sample_adaptive_offset_enabled_flag和adaptive_loop_filter_enabled_flag的取值同时为0时),其默认值为0。
其中,aps_id用于标识当前分片编解码过程中使用图像层编码工具所引用APS的标识序号,即使用标识序号等于aps_id的APS中图像层编码工具的编码工具参数配置解码当前分片编解码过程中所使用的图像层编码工具。
其中,referring_to_aps_flag取值等于1时,使用APS中图像或分片层公共管理模块的编码工具参数配置当前分片编解码过程中所使用的图像或分片层公共管理模块;referring_to_aps_flag取值等于0时,使用分片头信息中给出的图像或分片层公共管理模块的编码工具参数(即common_management_module_data()数据结构所包含的参数)配置当前分片编解码过程中使用的图像或分片层公共管理模块。
其中,aps_id_management_module用于表示当前分片编解码过程中使用图像或分片层公共管理模块所引用APS的标识序号,使用标识序号等于aps_id_management_module的APS中图像或分片层公共管理模块的编码工具参数配置当前分片编解码过程中所使用的图像或分片公共管理模块。
对应于表14,本实施例中,解码器进行分片层多APS码流解码的流程如图29所示,可以包括如下步骤:
步骤2901,解码器读入当前分片所引用的SPS码流。
步骤2902,解码器解析当前分片所引用的SPS码流,使用u(1)所对应的译码方法获得标志位sample_adaptive_offset_enabled_flag和adaptive_loop_filter_enabled_flag的取值。
步骤2903,解码器判断(sample_adaptive_offset_enabled_flag||adaptive_loop_filter_enabled_flag)的值是否为true,若为true,执行步骤2904;否则,执行步骤2905。
步骤2904,解码器解析分片头信息,使用u(v)所对应的译码方法获得aps_id的取值,解码器使用u(1)所对应的译码方法获得标志位referred_by_management_module的取值,若referred_by_management_module的取值等于1,解码器使用标识序号等于aps_id的APS中图像层编码工具的编码工具参数和图像或分片层公共管理模块的编码工具参数配置当前分片解码过程中使用的图像层编码工具和图像或分片层公共管理模块;若referred_by_management_module的取值等于0,解码器仅使用标识序号等于aps_id的APS中图像层编码工具的编码工具参数配置当前分片解码过程中使用的图像层编码工具,继续执行步骤2905。
步骤2905,解码器判断:若referred_by_management_module取值等于0,则执行步骤2906;若referred_by_management_module取值等于1,则执行步骤2910。
步骤2906,解码器解析分片头信息,使用u(1)所对应的译码方法获得referrfing_to_aps_flag的取值。
步骤2907,解码器判断referring_to_aps_flag的取值是否等于1,若等于1,则执行步骤2908;若取值等于0,则执行步骤2909。
步骤2908,解码器解析分片头信息,使用ue(v)所对应的译码方法获得aps_id_management_module的取值,使用标识序号等于aps_id_management_module的APS中图像或分片层公共管理模块的编码工具参数配置当前分片解码过程中使用的图像或分片层公共管理模块,继续执行步骤2910。
步骤2909,解码器解析分片头信息中数据结构common_management_module_data(),使用数据结构common_management_module_data()中各语法单元的取值配置当前分片解码头信息过程中使用的图像或分片层公共管理模块,继续执行步骤2910。
步骤2910,分片层多APS码流解码过程结束,继续解析该分片头信息中的其他语法单元。
相应的,本实施例中编码器进行分片多APS码流编码的流程,如图30所示,具体可以包括如下步骤:
步骤3001,与步骤501完全相同。
步骤3002,与步骤502完全相同。
步骤3003,编码器优化模块根据将图像层编码工具的编码工具参数与图像或分片层公共管理模块的编码工具参数在同一个APS中进行编码的需求,得到referred_by_management_module的取值。
具体地,当ample_adaptive_offset_enabled_flag和adaptive_loop_filter_enabled_flag的取值同时为0时,将referred_by_management_module的取值置为0。
具体地,所述编码器不需要通过引用APS的方式将当前分片所需图像或分片层公共管理模块的编码工具参数写入到分片层头信息数据结构common_management_module_data()中时,将referred_by_management_module的取值置为0。
所述编码器的优化模块判断需要在后续分片中使用上述的APS时,将图像层编码工具的编码工具参数与图像或分片层公共管理模块的编码工具参数写入同一个APS中,并将referred_by_management_module的取值置为1。
所述编码器的优化模块判断需要在后续分片中将图像层编码工具的编码工具参数与图像或分片层公共管理模块的编码工具参数在不同的APS中使用时,或需要在后续分片中仅使用上述图像层编码工具的编码工具参数或图像或分片层公共管理模块的编码工具参数时,将图像层编码工具的编码工具参数与图像或分片层公共管理模块的编码工具参数分别写入两个不同的APS中,并将referred_by_management_module的取值置为0。
步骤3004,编码器判断referred_by_management_module的取值等于1,则执行步骤3005;否则,执行步骤3008。
步骤3005,若当前分片需要使用的编码工具及其编码工具参数与已有APS中包含的同一编码工具的编码工具参数完全相同,则执行步骤3006;否则,执行步骤3007。
步骤3006,编码器获取编码工具参数与当前分片相应编码工具参数相同的APS的标识序号,将该APS标识序号赋值给分片层数据结构中的aps_id,并使用ue(v)对应的编码方法将aps_id的值写入码流,使用u(1)对应的编码方法将referred_by_management_module(此时取值等于1)也写入码流。继续执行步骤3017。
步骤3007,编码器生成新APS,在该新APS中编码当前分片需使用图像层编码工具的编码工具参数、以及图像或分片层公共管理模块的编码工具参数,并为该新APS分配标识序号,将所述新APS标识序号赋值给分片层数据结构中的aps_id,并使用ue(v)对应的编码方法将aps_id的值写入码流,使用u(1)对应的编码方法将referred_by_management_module(此时取值等于1)也写入码流,继续执行步骤3017。
步骤3008,若当前分片需要使用的图像层编码工具及其编码工具参数与已有APS中包含的同一图像层编码工具的编码工具参数相同,则执行步骤3009;否则,执行步骤3010。
步骤3009,编码器获取编码工具参数与当前分片所需图像层编码工具的编码工具参数相同的APS的标识序号,将该APS标识序号赋值给分片层数据结构中的aps_id,并使用ue(v)对应的编码方法将aps_id的值写入码流,使用u(1)对应的编码方法将referred_by_management_module(此时取值等于0)写入码流。继续执行步骤3011。
步骤3010,编码器生成新APS,在该新APS中编码当前分片需使用图像层编码工具的编码工具参数,并为该新APS分配标识序号,将所述新APS标识序号赋值给分片层数据结构中的aps_id,并使用ue(v)对应的编码方法将aps_id值写入码流,使用u(1)对应的编码方法将referred_by_management_module(此时取值等于0)写入码流。继续执行步骤3011。
步骤3011,编码器判断是否能够采用引用APS的方式编码图像或分片层公共管理模块的编码工具参数,如果是,执行步骤3012;如果不是,执行步骤3016。
步骤3012,编码器将分片层语法单元referring_to_aps_flag的取值置为1,并使用u(1)对应的编码方法将referring_to_aps_flag的值写入码流,继续步骤3013;
步骤3013,若当前分片需使用图像或分片层公共管理模块的编码工具参数与已有APS中所包含图像或分片层公共管理模块的编码工具参数完全相同,则继续执行步骤3014;否则,继续执行步骤3015。
步骤3014,编码器获取编码工具参数与当前分片所需图像或分片层公共管理模块的编码工具参数相同的APS的标识序号,将该APS标识序号赋值给分片层数据结构中的aps_id_management_module,并使用ue(v)对应的编码方法将aps_id_management_module的值写入码流,继续执行步骤3017。
步骤3015,编码器生成新APS,在该新APS中编码当前分片所需图像或分片层公共管理模块的编码工具参数,并为该新APS分配标识序号,将所述新APS标识序号赋值给分片层数据结构中的aps_id_management_module,并使用ue(v)对应的编码方法将aps_id_management_module值写入码流,继续执行步骤3017。
步骤3016,编码器将分片层语法单元referring_to_aps_flag的取值置为0,并使用u(1)对应的编码方法将referring_to_aps_flag的值写入码流,将图像或分片层公共管理模块的编码工具参数赋值给分片层数据结构common_management_module_data()中的对应语法单元,并使用common_management_module_data()中各语法单元对应的编码方法将其取值写入码流。
步骤3017,分片层多APS编码过程结束,编码器继续编码其他分片层头信息。
本实施例中,还可以将表13所示的APS码流组织结构与实施例七中表10所示的多APS在分片层头信息中的标识方法相结合,实现分片中多APS码流编解码,具体实现过程与上述图29和图30所示的流程相似,在此不再赘述。
实施例十
本实施例详细说明使用图像层编码工具与图像或分片层公共控制模块进行分片多APS码流编解码的实现过程。
本实施例所使用APS码流组织结构与实施例9中表13相同。
本实施例允许分片引用多个APS中给出的编码工具参数,多APS在分片层头信息中的标识方法如表11所示,本实施例在分片层头信息中添加APS标识信息,具体如表11中第10-16行所示。
本实施例分片层多APS的解码和编码方法与实施例八相似,不同之处在于分片层多APS的编解码和引用过程中使用与实施例九相似的APS标志位。
此外,本实施例还可以采用如表15所示多APS在分片层头信息中的标识方法,本实施例在分片层头信息中添加APS标识信息具体如表15中第6-7行和第9-11行所示。
slice_header(){ Descriptor
lightweight_slice_flag u(1)
if(!lightweight_slice_flag){
slice_type ue(v)
pic_parameter_set_id ue(v)
referred_by_management_module u(1)
picture_level_coding_tools_APS_data()
......
if(!referred_by_management_module){
common_management_module_APS_data()
}
......
}
......
}
表15
表15中,referred_by_management_module与表14中的含义完全相同。
可替换地,referred_by_management_module可采用与实施例九表14相同的码流组织形式,即在图像层编码工具的数据结构picture_level_coding_tools_APS_data()中APS标识序号后进行编码。并且,当从SPS标志位中获知编解码过程中图像层编码工具均不可用时,referred_by_management_module的默认取值为0。
本实施例的分片层多APS解码和编码过程中,与referred_by_management_module相关的码流解析、标志位取值设置方法、标志位取值对应的控制方法与实施例九相同。即,当referred_by_management_module的取值等于1时,图像层编码工具的编码工具参数、和图像或分片层公共管理模块的编码工具参数均由数据结构picture_level_coding_tools_APS_data()给出;当referred_by_management_module的取值等于0时,图像层编码工具的编码工具参数由数据结构picture_level_coding_tools_APS_data()给出,图像或分片层公共管理模块的编码工具参数由数据结构common_management_module_APS_data()给出。
本实施例的分片层多APS解码和编码过程中,picture_level_coding_tools_APS_data()与common_management_module_APS_data()的多对应的解码和编码流程与实施例八中相关流程相同。
本实施例中,进行分片层多APS码流解码和编码的流程,与实施例九相似,不再赘述。
实施例十一
本实施例提供一种电子设备,该电子设备包括本发明所述的解码装置和编码装置,其中,所述解码装置能够实现上述实施例一至实施例十中分片层多APS码流的解码,所述编码装置能够实现上述实施例一至实施例十中分片层多APS码流的编码。
本实施例提供的电子设备可以是视频通信应用中相关码流生成设备和接收播放设备,例如,手机、计算机、服务器、机顶盒、便携式移动终端、数字电视、数字摄像机等。
上述各实施例中,编码流程仅为编码器可能实现的编码方法之一,任何能够生成符合其解码器解码过程所要求码流的编码器及相应的编码方法,均在各实施例所涵盖的范围内。
需要说明的是,实施例一至实施例六中所述解码器根据分片层所引用的多个APS,推断解码当前分片过程中所使用的编码工具参数的方法、以及进行编码的方法,同时适用于图像层编码工具、图像或分片层公共控制模块。本发明对应的三种或三种以上编码工具的实施例可由上述各实施例进行直接类推得到,不再赘述。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

Claims (21)

1.一种分片层参数集编码方法,其特征在于,所述方法包括:
在已有参数集中存在编码工具参数与当前分片需使用的一部分编码工具的编码工具参数相同的参数集时,将参数集的标识序号编码到当前分片的码流中;在所述已有参数集中不存在编码工具参数与所述当前分片需使用的另一部分编码工具的编码工具参数相同的参数集时,生成参数集,在所述生成的参数集中编码所述当前分片需使用的所述另一部分编码工具的编码工具参数,分配标识序号给所述生成的参数集,将所述生成的参数集的标识序号编码到所述当前分片的码流中;
参数集为包含有一个或多个分片编解码过程中所使用编码工具公共信息的数据结构。
2.根据权利要求1所述的分片层参数集编码方法,其特征在于,所述生成参数集,在该参数集中编码当前分片需使用的另一部分编码工具的编码工具参数,包括:
在所述当前分片需使用的另一部分编码工具包括两个或两个以上的编码工具时,生成一个或多个参数集,在一个参数集中编码一个或多个所述编码工具的编码参数。
3.根据权利要求2所述的分片层参数集编码方法,其特征在于,所述生成参数集,在该参数集中编码当前分片需使用的另一部分编码工具的编码工具参数,包括:在所述当前分片需使用的另一部分编码工具包括两个或两个以上的编码工具时,生成对应各所述编码工具的各参数集,在一个参数集中编码一个所述编码工具的编码工具参数,并为各参数集分配参数集标识序号,将所述各参数集的标识序号编码到当前分片的码流中;
或者,在所述当前分片需使用的另一部分编码工具包括两个或两个以上的编码工具时,生成一个参数集,在参数集中编码所述两个或两个以上编码工具的编码工具参数,并为参数集分配参数集标识序号,将所述各参数集的标识序号编码到当前分片的码流中。
4.根据权利要求1所述的分片层参数集编码方法,其特征在于,所述分配参数集标识序号给参数集,包括:基于当前分片所采用的多参数集覆盖模式,确定候选标识序号,从所述候选标识序号中选择一个分配给参数集。
5.根据权利要求1所述的分片层参数集编码方法,其特征在于,所述方法具体为:
预先配置对应不同编码工具的参数集标识序号;
在已有参数集中存在编码工具参数与当前分片需使用的一部分编码工具的编码工具参数相同的参数集时,将参数集的标识序号赋值为预先配置的对应所述编码工具的参数集标识序号后,再将参数集的标识序号编码到当前分片的码流中。
6.根据权利要求1所述的分片层参数集编码方法,其特征在于,所述方法还包括:判断已有参数集中是否存在编码工具参数与当前分片需使用的一部分编码工具的编码工具参数相同的参数集。
7.根据权利要求1至6任一项所述的分片层参数集编码方法,其特征在于,所述编码工具包括:图像层编码工具和/或图像或分片层管理模块;
所述图像层编码工具包括:采样点自适应加性偏移量补偿SAO,自适应环路滤波ALF,加权预测WP;
所述图像或分片层管理模块包括:解码图像缓冲区DPB管理模块、参考图像标识和调整模块、参考图像列表构造模块。
8.一种分片层参数集解码方法,其特征在于,所述方法包括:
根据当前分片码流中的参数集标识序号,解码当前分片所引用的多个参数集,确定当前分片解码过程中所使用的编码工具参数,并将所确定编码工具参数的参数值赋值给当前分片数据结构中的对应变量;
所述参数集为包含有一个或多个分片编解码过程中所使用编码工具公共信息的数据结构;
其中,所述确定当前分片解码过程中所使用的编码工具参数,包括:根据预设的多参数集覆盖模式,确定当前分片解码过程中所使用的编码工具参数;
所述根据预设的多参数集覆盖模式,确定当前分片解码过程中所使用的编码工具参数,包括:根据用于指示当前所采用多参数集覆盖模式的标志位,得到当前解码过程中需采用的多参数集覆盖模式,并基于该多参数集覆盖模式确定当前分片解码过程中所使用的编码工具参数。
9.根据权利要求8所述分片层参数集解码方法,其特征在于,所述确定当前分片解码过程中所使用的编码工具参数,包括:
对于每一种编码工具,在当前分片所引用的多个参数集中,仅有一个参数集中该编码工具开启/关闭标志位为1,则确定当前分片解码过程中使用该参数集中所述编码工具的编码工具参数。
10.根据权利要求8所述分片层参数集解码方法,其特征在于,所述确定当前分片解码过程中所使用的编码工具参数,包括:
根据预先配置的参数集标识序号与编码工具之间的对应关系,确定当前分片解码过程中所使用编码工具的编码工具参数。
11.根据权利要求8所述分片层参数集解码方法,其特征在于,所述根据预设的多参数集覆盖模式,确定当前分片解码过程中所使用的编码工具参数,包括:对于每一种编码工具,在标识序号等于ps_id[n]的参数集中用于标识该参数集中包含所述编码工具参数信息的标志位为1时,用该参数集中的所述编码工具的编码工具参数覆盖之前确定用于当前分片解码过程中所述编码工具的编码工具参数,n为整数,不小于1且不大于当前分片所引用参数集的数目。
12.根据权利要求8所述分片层参数集解码方法,其特征在于,用于指示当前所采用多参数集覆盖模式的标志位的二进制表示包含一个或多个比特位,一个比特位指示一种编码工具的多参数集覆盖模式。
13.根据权利要求8所述分片层参数集解码方法,其特征在于,用于指示当前所采用多参数集覆盖模式的标志位基于参数集标识序号ps_id[i]和ps_id[i-1]给出的参数集标识序号之间的绝对值之差得到,i为整数,不小于1且不大于当前分片解码过程中所引用参数集的数量。
14.根据权利要求8至13任一项所述分片层参数集解码方法,其特征在于,
所述编码工具包括:图像层编码工具和/或图像或分片层管理模块,所述图像层编码工具包括:采样点自适应加性偏移量补偿SAO、自适应环路滤波ALF、加权预测WP;所述图像或分片层管理模块包括解码图像缓冲区DPB管理模块、参考图像标识和调整模块、参考图像列表构造模块。
15.一种用于分片层参数集编码的编码器,其特征在于,所述编码器包括:判断模块和编码模块,其中,
判断模块,用于在判断已有参数集中存在编码工具参数与当前分片需使用的一部分编码工具的编码工具参数相同的一个或多个参数集时,通知所述编码模块引用参数集;
所述编码模块,用于在接收到所述判断模块的所述通知时,将参数集的标识序号编码到当前分片的码流中;还用于在所述已有参数集中不存在编码工具参数与所述当前分片需使用的另一部分编码工具的编码工具参数相同的一个或多个参数集时生成参数集,在所述生成的参数集中编码所述当前分片需使用的所述另一部分编码工具的编码工具参数,分配标识序号给所述生成的参数集,将所述生成的参数集的标识序号编码到所述当前分片的码流中;
参数集为包含有一个或多个分片编解码过程中所使用编码工具公共信息的数据结构。
16.根据权利要求15所述用于分片层参数集编码的编码器,其特征在于,所述编码模块,还用于将参数集的标识序号赋值为预先配置的对应所述编码工具的参数集标识序号后,再将参数集的标识序号编码到当前分片的码流中。
17.根据权利要求15至16任一项所述用于分片层参数集编码的编码器,其特征在于,所述判断模块,判断已有参数集中是否存在编码工具参数与当前分片需使用的一部分编码工具的编码工具参数相同的参数集。
18.一种用于分片层参数集解码的解码器,其特征在于,所述解码器包括:解码模块、确定模块和赋值模块,其中,
解码模块,用于根据当前分片码流中的参数集标识序号,解码当前分片所引用的多个参数集;
确定模块,用于根据所述解码模块解码当前分片所引用的多个参数集,得到的多个参数集的编码工具参数,确定当前分片解码过程中所使用的编码工具参数;
赋值模块,用于将所述确定模块所确定编码工具参数的参数值赋值给当前分片数据结构中的对应变量;
所述参数集为包含有一个或多个分片编解码过程中所使用编码工具公共信息的数据结构;
其中,所述确定当前分片解码过程中所使用的编码工具参数,包括:根据预设的多参数集覆盖模式,确定当前分片解码过程中所使用的编码工具参数;
所述根据预设的多参数集覆盖模式,确定当前分片解码过程中所使用的编码工具参数,包括:根据用于指示当前所采用多参数集覆盖模式的标志位,得到当前解码过程中需采用的多参数集覆盖模式,并基于该多参数集覆盖模式确定当前分片解码过程中所使用的编码工具参数。
19.根据权利要求18所述用于分片层参数集解码的解码器,其特征在于,所述确定模块,用于对于每一种编码工具,在当前分片所引用的多个参数集中,仅有一个参数集中该编码工具开启/关闭标志位为1,则确定当前分片解码过程中使用该参数集中所述编码工具的编码工具参数。
20.根据权利要求18所述用于分片层参数集解码的解码器,其特征在于,所述确定模块,用于根据预先配置的参数集标识序号与编码工具之间的对应关系,确定当前分片解码过程中所使用编码工具的编码工具参数。
21.一种电子设备,其特征在于,所述电子设备包括权利要求15至17任一项所述的编码器和权利要求18至20任一项所述的解码器。
CN201110340195.0A 2011-11-01 2011-11-01 一种分片层参数集解码及编码方法和装置 Active CN103096047B (zh)

Priority Applications (11)

Application Number Priority Date Filing Date Title
CN201110340195.0A CN103096047B (zh) 2011-11-01 2011-11-01 一种分片层参数集解码及编码方法和装置
FIEP18164289.3T FI3407605T3 (fi) 2011-11-01 2012-07-24 Menetelmä ja laite parametrijoukkojen koodaamiseksi ja dekoodaamiseksi viipaletasolla
EP18164289.3A EP3407605B1 (en) 2011-11-01 2012-07-24 Method and device for encoding and decoding parameter sets at slice level
PCT/CN2012/079111 WO2013063962A1 (zh) 2011-11-01 2012-07-24 一种分片层参数集解码及编码方法和装置
KR1020147014852A KR101600056B1 (ko) 2011-11-01 2012-07-24 슬라이스 파라미터 세트 인코딩 및 디코딩 방법과 장치
US14/355,785 US10298946B2 (en) 2011-11-01 2012-07-24 Method and device for encoding and decoding parameter sets at slice level
EP12844694.5A EP2753079A4 (en) 2011-11-01 2012-07-24 METHOD AND DEVICE FOR ENCODING AND DECODING THE SET OF PARAMETERS OF A LAYER AT WHICH FRAGMENTATION IS EFFECTED
JP2014540294A JP6172536B2 (ja) 2011-11-01 2012-07-24 スライス層パラメータセットの復号化及び符号化の方法及び装置
ES18164289T ES2962853T3 (es) 2011-11-01 2012-07-24 Método y dispositivo para codificar y decodificar conjuntos de parámetros a nivel de segmento
US16/417,596 US10750196B2 (en) 2011-11-01 2019-05-20 Method and device for encoding and decoding parameter sets at slice level
US16/995,469 US11252428B2 (en) 2011-11-01 2020-08-17 Method and device for encoding and decoding parameter sets at slice level

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110340195.0A CN103096047B (zh) 2011-11-01 2011-11-01 一种分片层参数集解码及编码方法和装置

Publications (2)

Publication Number Publication Date
CN103096047A CN103096047A (zh) 2013-05-08
CN103096047B true CN103096047B (zh) 2018-06-19

Family

ID=48191286

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110340195.0A Active CN103096047B (zh) 2011-11-01 2011-11-01 一种分片层参数集解码及编码方法和装置

Country Status (8)

Country Link
US (3) US10298946B2 (zh)
EP (2) EP3407605B1 (zh)
JP (1) JP6172536B2 (zh)
KR (1) KR101600056B1 (zh)
CN (1) CN103096047B (zh)
ES (1) ES2962853T3 (zh)
FI (1) FI3407605T3 (zh)
WO (1) WO2013063962A1 (zh)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103686179B (zh) * 2012-09-26 2019-05-07 中兴通讯股份有限公司 使用参数集的编码、解码方法及装置、电子设备
CN103702126B (zh) * 2013-12-10 2017-01-18 清华大学深圳研究生院 一种基于视频标准hevc的并行编码优化方法
CN112887737B (zh) * 2014-01-03 2024-04-02 康普英国有限公司 用于hevc扩展处理的条件解析扩展语法
CN106105218B (zh) * 2014-10-08 2019-04-09 Lg电子株式会社 在3维视频编码中处理相机参数的方法
US10506244B2 (en) * 2015-03-06 2019-12-10 Qualcomm Incorporated Method and apparatus for video coding using adaptive tile sizes
CN104809100A (zh) * 2015-04-02 2015-07-29 上海新时达电气股份有限公司 文本编码、解码方法及所对应的编解码系统
CN105049853A (zh) * 2015-07-06 2015-11-11 深圳市云宙多媒体技术有限公司 一种基于片源分析的sao编码方法及系统
US10805611B2 (en) * 2016-10-18 2020-10-13 Mediatek Inc. Method and apparatus of constrained sequence header
EP3457698A1 (en) * 2017-09-18 2019-03-20 Thomson Licensing Method and apparatus for coding of omnidirectional video
KR102606330B1 (ko) * 2019-02-28 2023-11-24 엘지전자 주식회사 Aps 시그널링 기반 비디오 또는 영상 코딩
WO2020180143A1 (ko) * 2019-03-07 2020-09-10 엘지전자 주식회사 루마 맵핑 및 크로마 스케일링 기반 비디오 또는 영상 코딩
KR20210134771A (ko) * 2019-03-08 2021-11-10 지티이 코포레이션 디지털 비디오의 파라미터 세트 시그널링
KR20230016712A (ko) * 2019-03-11 2023-02-02 엘지전자 주식회사 루마 맵핑 및 크로마 스케일링 기반 비디오 또는 영상 코딩
US11683487B2 (en) 2019-03-26 2023-06-20 Qualcomm Incorporated Block-based adaptive loop filter (ALF) with adaptive parameter set (APS) in video coding
US11284114B2 (en) * 2019-04-23 2022-03-22 Qualcomm Incorporated Adaptive loop filter set index signaling
US20220256201A1 (en) * 2019-05-03 2022-08-11 Mediatek Inc. Methods and Apparatuses of Syntax Signaling and Referencing Constraint in Video Coding System
US11516472B2 (en) 2019-06-21 2022-11-29 Hyundai Motor Company Method and apparatus for controlling coding tools
FR3098070B1 (fr) * 2019-06-27 2022-02-18 S A Vitec Procédé d’encodage et de décodage vidéo par signalisation d’un sous-ensemble de candidat
US11190793B2 (en) * 2019-07-09 2021-11-30 Qualcomm Incorporated Memory constraint for adaptation parameter sets for video coding
EP4030762A4 (en) * 2019-09-10 2023-09-06 Samsung Electronics Co., Ltd. IMAGE DECODING DEVICE USING A SET OF TOOLS AND CORRESPONDING IMAGE DECODING METHOD, AND IMAGE ENCODING DEVICE AND CORRESPONDING IMAGE ENCODING METHOD
JP7324940B2 (ja) 2019-09-19 2023-08-10 北京字節跳動網絡技術有限公司 ビデオコーディングにおけるスケーリングウインドウ
EP4018671A4 (en) 2019-09-19 2022-12-07 Beijing Bytedance Network Technology Co., Ltd. DERIVING REFERENCE SAMPLE POSITIONS IN VIDEO CODING
CN112543322B (zh) * 2019-09-20 2022-04-15 杭州海康威视数字技术股份有限公司 一种解码、编码方法、装置及其设备
MX2022003836A (es) 2019-10-05 2022-05-12 Beijing Bytedance Network Tech Co Ltd Se?alizacion basada en los niveles de las herramientas de codificacion de video.
EP4044597A4 (en) * 2019-10-10 2023-11-01 Samsung Electronics Co., Ltd. IMAGE DECODING APPARATUS WITH TOOL SET AND IMAGE DECODING METHOD THEREOF, AND IMAGE CODING APPARATUS AND IMAGE CODING METHOD THEREOF
KR102493125B1 (ko) * 2019-10-10 2023-01-30 삼성전자주식회사 툴 세트를 이용하는 영상 복호화 장치 및 이에 의한 영상 복호화 방법, 및 영상 부호화 장치 및 이에 의한 영상 부호화 방법
JP7391203B2 (ja) 2019-10-12 2023-12-04 北京字節跳動網絡技術有限公司 ビデオコーディングツールを洗練する使用およびシグナリング
KR20220073740A (ko) 2019-10-13 2022-06-03 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 레퍼런스 픽처 리샘플링 및 비디오 코딩 툴 사이의 상호 작용
WO2021107663A1 (ko) * 2019-11-27 2021-06-03 엘지전자 주식회사 영상 디코딩 방법 및 그 장치
JP2023509052A (ja) * 2019-12-31 2023-03-06 ホアウェイ・テクノロジーズ・カンパニー・リミテッド エンコーダ、デコーダ、および対応する方法
WO2021145673A1 (ko) * 2020-01-13 2021-07-22 엘지전자 주식회사 영상/비디오 코딩을 위한 가중된 예측 방법 및 장치
CN116034581A (zh) * 2020-06-10 2023-04-28 Lg电子株式会社 用信号通知aps标识符的图像编码/解码方法和设备及存储比特流的计算机可读记录介质
US20220109856A1 (en) * 2020-10-06 2022-04-07 Samsung Electronics Co., Ltd. Access of essential video coding (evc) slices in a file

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8406301B2 (en) * 2002-07-15 2013-03-26 Thomson Licensing Adaptive weighting of reference pictures in video encoding
US7724818B2 (en) * 2003-04-30 2010-05-25 Nokia Corporation Method for coding sequences of pictures
US9560367B2 (en) 2004-09-03 2017-01-31 Nokia Technologies Oy Parameter set and picture header in video coding
JP2006203662A (ja) * 2005-01-21 2006-08-03 Toshiba Corp 動画像符号化装置・復号化装置及び符号化ストリーム生成方法
CN101217654B (zh) 2008-01-04 2010-04-21 华南理工大学 视频码流可伸缩性组织方法
US8325796B2 (en) * 2008-09-11 2012-12-04 Google Inc. System and method for video coding using adaptive segmentation
WO2010086500A1 (en) * 2009-01-28 2010-08-05 Nokia Corporation Method and apparatus for video coding and decoding
FR2947134A1 (fr) 2009-06-23 2010-12-24 France Telecom Procedes de codage et de decodages d'images, dispositifs de codage et de decodage, flux de donnees et programme d'ordinateur correspondants.
US9001883B2 (en) * 2011-02-16 2015-04-07 Mediatek Inc Method and apparatus for slice common information sharing
CA2829335A1 (en) * 2011-03-10 2012-09-13 Vidyo, Inc. Parameter set maintenance in video coding
US9277228B2 (en) * 2011-07-18 2016-03-01 Qualcomm Incorporated Adaptation parameter sets for video coding
US8768079B2 (en) * 2011-10-13 2014-07-01 Sharp Laboratories Of America, Inc. Tracking a reference picture on an electronic device

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Toby Walker等.Network Adaptation Layer and High-Level Syntax.《4. JVT MEETING;61. MPEG MEETING》.2002,1-9. *

Also Published As

Publication number Publication date
US10298946B2 (en) 2019-05-21
KR20140093255A (ko) 2014-07-25
EP2753079A4 (en) 2016-04-27
EP3407605B1 (en) 2023-10-11
US20210076056A1 (en) 2021-03-11
ES2962853T3 (es) 2024-03-21
KR101600056B1 (ko) 2016-03-04
JP2014535227A (ja) 2014-12-25
CN103096047A (zh) 2013-05-08
US10750196B2 (en) 2020-08-18
WO2013063962A1 (zh) 2013-05-10
US20190273935A1 (en) 2019-09-05
JP6172536B2 (ja) 2017-08-02
EP3407605A1 (en) 2018-11-28
EP2753079A1 (en) 2014-07-09
US20140294067A1 (en) 2014-10-02
FI3407605T3 (fi) 2023-12-13
US11252428B2 (en) 2022-02-15

Similar Documents

Publication Publication Date Title
CN103096047B (zh) 一种分片层参数集解码及编码方法和装置
JP6180495B2 (ja) 復号化のための方法及び装置並びにnalユニットを利用するための方法及び装置
CN105392008B (zh) 一种预测编、解码方法和相应的编、解码器和电子设备
CN100435506C (zh) 音频数据编码转换发送方法以及编码转换接收方法、设备和系统
JP2010515306A (ja) ビデオデータをエンコードする装置及びデコードするシステム
CN101394551A (zh) 视频数据的打包、编解码方法及装置及系统
CN116312576A (zh) 声音或声场的压缩hoa表示的解码方法和装置
CN107181744A (zh) 一种视频处理及编码方法、处理器与编码器
CN104093025B (zh) 编解码方法和装置
CN101998141B (zh) 视频数据的打包、编解码方法及装置及系统
AU2008241568B2 (en) Coding systems

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