CN105516727A - 一种图像编码方法及装置 - Google Patents
一种图像编码方法及装置 Download PDFInfo
- Publication number
- CN105516727A CN105516727A CN201510897191.0A CN201510897191A CN105516727A CN 105516727 A CN105516727 A CN 105516727A CN 201510897191 A CN201510897191 A CN 201510897191A CN 105516727 A CN105516727 A CN 105516727A
- Authority
- CN
- China
- Prior art keywords
- syntax elements
- context
- group
- probability state
- encoding block
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明实施例公开了一种图像编码方法及装置,涉及图像处理领域,用以提高图像编码的并行化处理能力。在本发明实施例中,按照以若干个编码块为一组的规则,将待处理图像帧中的全部编码块进行分组;对各组,确定与各句法元素相对应的上下文,计算出各句法元素所对应的上下文在相同的概率状态下的比特开销;利用计算出的比特开销,计算不同的预测模式下的代价,将最小的代价所对应的预测模式作为该编码块的预测模式;并利用确定出的预测模式进行CABAC编码处理;从而解决了上述问题。
Description
技术领域
本发明涉及图像处理领域,尤其涉及一种图像编码方法及装置。
背景技术
在新一代视频压缩标准HEVC(HighEfficiencyVideoCoding)中,图像帧按照编码器设置的最大编码单元LCU(LargestCodingUnit,最大编码单元)的尺寸进行划分并以此为单位进行编码处理。LCU的尺寸最大可为:64x64。为了给每一个LCU确定出一个合适的编码模式,编码过程中将对LCU向下划分成不同层级的CU(CodingUnit,编码单元),CU尺寸范围为:LCU尺寸~8x8;其中CU0对应为LCU,CUn对应为8x8;通过对不同层级的CU进行预编码而预测出LCU最适合的编码模式。
现有技术中采用了CABAC(Context-adaptivebinaryarithmeticcoding,基于上下文的自适应二进制算术编码)方法来进行模式预测和编码。CABAC存在数据依赖性,具体为:对于任意尺寸的CU,均包含相同的句法元素(变换、预测、残差等相关的句法元素),所有句法元素均以CU为单位进行编码,在代价计算过程中,每个句法元素均基于前面相应句法元素的概率状态进行压缩,每个句法元素的编码都需要基于前一个相应的句法元素基础上进行,因此每个CU的编码过程均需在其前一个CU的基础上进行,CU之间不能同时并行处理,同时CU内部的各个对应的句法元素也无法并行处理。
由于现有技术中CABAC的数据依赖特性,在计算代价的过程中,每个CU的编码过程均需要在对前一个CU编码完成的基础上进行,因此会影响并行化处理,导致吞吐量瓶颈,无法满足日益增长的吞吐量需求。
发明内容
本发明实施例提供一种图像编码方法及装置,用以提高图像编码的并行化处理能力。
本发明实施例提供一种图像编码方法,该方法包括:
按照以若干个编码块为一组的规则,将待处理图像帧中的全部编码块进行分组;
对于第一组内的各个编码块,分别对组内的每个编码块执行如下操作:确定与各句法元素相对应的上下文,计算出各句法元素所对应的上下文在相同的第一概率状态下的比特开销;利用计算出的比特开销,计算不同的预测模式下的代价,将最小的代价所对应的预测模式作为该编码块的预测模式;第一概率状态为预设的初始概率状态;并利用确定出的预测模式进行基于上下文的自适应二进制算术CABAC编码处理;
对于除第一组编码块以外的其余组编码块,分别对组内的每个编码块执行如下操作:确定与各句法元素相对应的上下文,计算出各句法元素所对应的各上下文在相同的第二概率状态下的比特开销;利用计算出的比特开销,计算不同的预测模式下的代价,将最小的代价所对应的预测模式作为该编码块的预测模式;第二概率状态为前一组编码块进行CABAC编码处理后所更新的概率状态;并利用确定出的预测模式进行CABAC编码处理;
其中,句法元素用于表征该句法元素所属于的编码块的图像信息。
本发明实施例还提供一种图像编码装置,该装置包括:
分组模块,用于按照以若干个编码块为一组的规则,将待处理图像帧中的全部编码块进行分组;
选择模块,用于对于第一组内的各个编码块,分别对组内的每个编码块执行如下操作:确定与各句法元素相对应的上下文,计算出各句法元素所对应的上下文在相同的第一概率状态下的比特开销;利用计算出的比特开销,计算不同的预测模式下的代价,将最小的代价所对应的预测模式作为该编码块的预测模式;第一概率状态为预设的初始概率状态;对于除第一组编码块以外的其余组编码块,分别对组内的每个编码块执行如下操作:确定与各句法元素相对应的上下文,计算出各句法元素所对应的各上下文在相同的第二概率状态下的比特开销;利用计算出的比特开销,计算不同的预测模式下的代价,将最小的代价所对应的预测模式作为该编码块的预测模式;第二概率状态为前一组编码块进行基于上下文的自适应二进制算术CABAC编码处理后所更新的概率状态;
编码模块,用于利用确定出的预测模式进行CABAC编码处理;
其中,句法元素用于表征该句法元素所属于的编码块的图像信息。
从上述技术方案可以看出,本发明实施例可以针对基于上下文的自适应二进制算术编码CABAC过程中的预测模式的选择过程进行优化,能够在不修改现有CABAC过程的前提下,实现CABAC的并行化处理。首先,可以将待处理的全部编码块划分为多组;然后,以每个组为单位,对组内的各编码块进行预测模式的选择,对于第一组内的各个编码块,分别对组内的每个编码块执行如下操作:确定与各句法元素相对应的上下文,计算出各句法元素所对应的上下文在相同的第一概率状态下的比特开销;利用计算出的比特开销,计算不同的预测模式下的代价,将最小的代价所对应的预测模式作为该编码块的预测模式;其中所述第一概率状态为预设的初始概率状态;以此类推,分别选择该组内的全部编码块的预测模式;同样的,对于其余组内的全部编码块,确定与各句法元素相对应的上下文,计算出各句法元素所对应的各上下文在相同的第二概率状态下的比特开销;利用计算出的比特开销,计算不同的预测模式下的代价,将最小的代价所对应的预测模式作为该编码块的预测模式;所述第二概率状态为前一组编码块进行CABAC编码处理后所更新的概率状态;以此类推,分别确定该组内的全部编码块的预测模式;这样,可以在不同颗粒度下进行概率统计,从而去除了组间的数据依赖,进而简化了CABAC中的预测模式的选择过程,提高了CABAC的吞吐量。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种面向CABAC的图像编码方法的流程示意图;
图2(a)为本发明实施例中的以两个LCU为一组进行处理的流程示意图;
图2(b)为本发明实施例中的以一个32x32尺寸的CU为一组进行处理的流程示意图;
图2(c)为本发明实施例中的以四个16x16尺寸的CU为一组进行处理的流程示意图;
图2(d)为本发明实施例中的以一个16x16尺寸的CU为一组进行处理的流程示意图;
图3为本发明实施例中的一种编码器进行图像帧编码的流程示意图;
图4为本发明实施例提供的一种图像编码装置的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本发明实施例的整体设计原理包括:
第一,在预测模式选择过程中,基于不同的颗粒度(LCU级或CU级)进行分组后执行CABAC概率状态统计,获得比特开销,其中,组间的各编码块串行处理,组内的各编码块并行处理;
第二,对CABAC过程中的各句法元素的上下文选择过程进行简化;
第三,仅对预测模式选择过程中的CABAC过程进行简化,不改变CABAC编码过程,从而保证了解码端能够按照现有的解码方法进行解码。
基于上述第一~第三,本发明实施例可以基于不同的颗粒度(LCU级或CU级)进行CABAC概率状态统计,实现CABAC过程的并行处理;同时,通过简化CABAC过程中各句法元素的上下文选择过程,提高并行过程中的吞吐量,进一步加快预测模式选择过程。本发明实施例可以应用于各种编码器端,同时不需要对解码过程进行任何修改,与现有技术相比,显著提高了图像编码效率。
下面对本发明实施例进行详细描述。
为了描述方便,在本发明实施例中,以编码块作为LCU和CU的统称。当编码块为LCU的情况下,此时颗粒度为LCU,即以N个LCU为一组进行预测模式的选择,从而将CABAC概率的更新周期扩大为每N个LCU更新一次。当编码块为CU的情况下,此时颗粒度为CU,即以M个CU为一组进行预测模式的选择,从而将CABAC概率的更新周期扩大为每M个更新一次。这样,本发明实施例可以实现CABAC过程的并行化处理。其中,N和M均可以为大于或等于1的正整数。
本发明实施例提供一种图像编码方法,图1示出了本发明实施例提供的一种面向CABAC的图像编码方法的流程示意图,如图1所示,包括:
步骤100:按照以若干个编码块为一组的规则,将待处理图像帧中的全部编码块进行分组。
步骤101:对于第一组内的各个编码块,分别对组内的每个编码块执行如下操作:确定与各句法元素相对应的上下文,计算出各句法元素所对应的上下文在相同的第一概率状态下的比特开销;利用计算出的比特开销,计算不同的预测模式下的代价,将最小的代价所对应的预测模式作为该编码块的预测模式;第一概率状态为预设的初始概率状态;并利用确定出的预测模式进行CABAC编码处理。
步骤102:对于除第一组编码块以外的其余组编码块,分别对组内的每个编码块执行如下操作:确定与各句法元素相对应的上下文,计算出各句法元素所对应的各上下文在相同的第二概率状态下的比特开销;利用计算出的比特开销,计算不同的预测模式下的代价,将最小的代价所对应的预测模式作为该编码块的预测模式;第二概率状态为前一组编码块进行CABAC编码处理后所更新的概率状态;并利用确定出的预测模式进行CABAC编码处理;
其中,句法元素用于表征该句法元素所属于的编码块的图像信息。
可选的,在上述步骤101和步骤102中,对于任一句法元素的上下文,获取预先存储的且与该句法元素对应的标准上下文模型;当该句法元素满足预设条件时,按照预设规则,选取该句法元素对应的标准上下文模型中的部分上下文,作为该句法元素的上下文。
可选的,在上述步骤101和步骤102中,当该句法元素对应的标准上下文模型中的上下文的个数大于预设阈值时,将该句法元素确定为满足预设条件的句法元素;选取满足预设条件的句法元素对应的标准上下文模型中的第N个上下文,作为该句法元素的上下文,N≥1;或者按照满足预设条件的句法元素对应的标准上下文模型中的各上下文的由前到后的排列顺序,选取标准上下文模型中的前N个上下文,作为该句法元素的上下文,N≥1。
可选的,在上述步骤102中,在对前一组内的最后一个编码块进行CABAC编码处理时,更新前一组编码块的概率状态,将更新后的概率状态作为前一组编码块进行编码处理后所更新的概率状态。
可选的,在上述步骤100~步骤102中,编码块为LCU或CU。
在实际中,本发明实施例可以以组为单位,对每组所包含的数据块进行并行化处理,这样,本发明实施例可以按照不同颗粒度,进行分组操作。
具体来说,本发明实施例中的颗粒度可以为LCU级别或CU级别。
下面分别基于两种不同的颗粒度,对本发明实施例进行举例说明。
首先,以颗粒度为LCU级别,对本发明实施例进行举例说明。
在本发明实施例中,可以以m个LCU(64x64~16x16)为一组进行统计,其中,m可以为大于或等于1的整数。
在当前LCU的初始CABAC状态下,计算各个句法元素的不同上下文对应的比特(bit)开销,并存储。这样,对于当前LCU后面的m-1个LCU,在其模式选择过程中的内部概率状态均是不更新的(包括这些LCU下划分的各个尺寸的CU(Depthi,1≤i≤3),各CU内部状态也均是不更新的),各CU的句法元素对应上下文的bit开销均从这里获取。
举例来说,在本发明实施例中,m=2,即以两个LCU为一组,也就是说,在本发明实施例中,组内两个LCU基于相同的CABAC状态进行比特开销计算。
图2(a)示出了本发明实施例中的以两个LCU为一组进行处理的流程示意图,本发明实施例仅以举例的方式示出了一个slice(片)中的六个LCU,为了描述方便,分别记为LCU0~LCU5。并且,以LCU0为该slice中的第一个LCU,如图2(a)所示,该流程可以包括:
首先,对LCU进行分组操作,以每两个LCU为一组,即:LCU0~LCU1。为第一组,LCU2~LCU3为第二组,LCU4~LCU5为第三组……以此类推。
然后,先对第一组LCU进行处理。
具体的,由于第一组中包括2个LCU(即LCU0~LCU1),因此,本发明实施例可以对第一组中的2个LCU进行并行化处理。
具体实现时,由于LCU0是该slice中的第一个LCU,因此,对于LCU0,根据初始CABAC状态进行计算,LCU0的整个模式选择过程均是基于该CABAC状态进行计算的,接着进行LCU0实际编码(该过程CABAC状态更新)。同时,基于同样的原理,处理LCU1。由于LCU1与LCU0为同一组,因此LCU1模式选择仍基于初始CABAC状态进行比特开销计算,接着进行LCU1实际编码。这样,本发明实施例能够基于相同的CABAC状态对组内的每个LCU同时进行并行化处理。
之后,继续对第二组LCU进行处理。
具体的,由于第二组中同样包括2个LCU(即LCU2~LCU3),因此,本发明实施例可以对第二组中的2个LCU进行并行化处理。
具体实现时,由于第二组中的每个LCU的模式选择是基于上一组LCU(即第一组LCU)实际编码后的状态进行计算的,因此,LCU2基于LCU1实际编码后的状态进行比特开销计算的,接着进行LCU2实际编码(该过程CABAC状态更新)。同时,基于同样的原理,处理LCU3。由于LCU2与LCU3为同一组,因此LCU3模式选择仍基于上一组LCU(即第一组LCU)实际编码后的状态进行计算的,接着进行LCU3实际编码。
并以此类推,依次对各组的模式选择进行处理。
可见,在本发明实施例中,对于组内的各LCU均可并行化处理,从而提高了编码效率。虽然本发明实施例仅以m=2进行举例描述,但在实际中,每组中的LCU的个数可以不相等,也就是说,第一组LCU中可以包含1个LCU,第二组LCU中可以包含2个LCU,第三组LCU中可以包含3个LCU,并以此类推,综上,本发明实施例可以按照各种不同的分组规则进行分组,但只要保证组内的各LCU基于相同的CABAC状态进行比特开销计算即可,因此本发明实施例不对分组规则进行限定。
然后,再以颗粒度为CU级别,对本发明实施例进行举例说明。
在本发明实施例中,可以以n个CU(32x32、16x16和8x8)为一组进行处理,其中,n可以为大于或等于1的整数。
假设当前尺寸CU对应划分深度为Depthi,其中,1≤i≤3。计算当前尺寸CU初始状态下各句法元素的bit开销,并存储。
具体来说,四个当前尺寸CU的初始状态对应的是均是上一较大尺寸CU(Depthi-1)处理完后的最佳状态,这样四个该尺寸CU内部概率状态不更新(包括该尺寸CU下划分的较小的CU:Depthi+1~Depth3),模式选择过程bit开销全部从这里获取。
举例来说,参见图2(b),图2(b)中示出了本发明实施例中的以一个32x32尺寸的CU为一组进行处理的流程示意图。其中,对于颗粒度为32x32尺寸的CU,以一个32x32尺寸的CU为一组进行分组,那么,该组内包括了该32x32尺寸的CU以及该CU下面所有的划分方式(16x16和8x8)的CU,在实际处理中,该CU本身和其下面所有的划分方式(16x16和8x8)内部状态不更新,均基于该CU的初始CABAC状态进行比特计算,这里的初始状态是指处理顺序上前一个32x32的CU处理完后的CABAC统计得到的最佳状态。这样,实现了组内的每个CU并行化处理。当然,本发明实施例仅以一个CU为一组进行举例描述,与颗粒度为LCU级别的分组方式相同,在实际中,可以按照各种不同的分组规则进行分组,但只要保证组内的各CU以及该CU下面所有的划分方式均基于相同的CABAC状态进行计算即可。因此本发明实施例不对分组规则进行限定。
再举例来说,参见图2(c),图2(c)中示出了本发明实施例中的以四个16x16尺寸的CU为一组进行处理的流程示意图。其中,对于颗粒度为16x16尺寸的CU,以四个16x16尺寸的CU为一组进行分组,那么,该组内包括了四个16x16尺寸的CU以及该CU下面所有的划分方式(8x8)的CU,在实际处理中,组内四个16x16尺寸CU本身和其子划分方式8x8的CU状态不更新,全部使用初始CABAC状态进行计算的,这里四个16x16尺寸CU的初始CABAC状态均是处理顺序上前一个32x32尺寸CU本身处理完后的最佳状态。这样,实现了组内的每个CU并行化处理。当然,本发明实施例仅以四个CU为一组进行举例描述,与颗粒度为LCU级别的分组方式相同,在实际中,可以按照各种不同的分组规则进行分组,但只要保证组内的各CU以及该CU下面所有的划分方式均基于相同的CABAC状态进行计算即可。因此本发明实施例不对分组规则进行限定。
再举例来说,参见图2(d),图2(d)中示出了本发明实施例中的以一个16x16尺寸的CU为一组进行处理的流程示意图。其中,对于颗粒度为16x16尺寸CU,以一个16x16尺寸的CU为一组进行分组,那么,该组内包括了该16x16尺寸的CU以及该CU下面所有的划分方式(8x8)的CU,在实际处理中,组内一个16x16尺寸CU本身和其子划分方式8x8的CU状态不更新,全部使用初始CABAC状态,这里当前32x32CU内的第一个16x16尺寸CU的初始状态均是处理顺序上前一个32x32尺寸CU本身处理完后的最佳状态,接着可以继续处理第二个16x16尺寸CU,那么此时,第二个16x16尺寸CU以及该CU下面所有的划分方式(8x8)的CU的初始状态就会是第一个16x16尺寸CU处理完后的最佳状态,以此类推。这样,实现了组内的每个16x16CU内部的并行化处理。当然,本发明实施例仅以一个CU为一组进行举例描述,与颗粒度为LCU级别的分组方式相同,在实际中,可以按照各种不同的分组规则进行分组,但只要保证组内的各CU以及该CU下面所有的划分方式均基于相同的CABAC状态进行计算即可。因此本发明实施例不对分组规则进行限定。
这样,在以不同颗粒度进行CABAC状态统计之后,本发明实施例可以继续根据编码器处理流程,进入如下模式选择过程。
对于当前要处理的CU,在其模式选择过程中,分别采用Merge融合预测模式、Inter帧间预测模式或Intra帧内预测模式,获得最佳运动信息或最佳预测模式后,进行CABAC编码,主要处理如下:
首先,在该过程中针对编码器所有句法元素的上下文模型更新过程进行简化。
具体实现时,本发明实施例中的简化过程主要是利用一个句法元素本身上下文的特性,减少每个句法元素的上下文模型数目,以减少依赖。
然后,利用前面上述步骤中LCU级或CU级获得的bit值,根据上下文确定bit开销进行编码。
这样,在进行CABAC编码之后,本发明实施例可以继续根据编码器处理流程,分别处理其余LCU。
下面以举例的方式,对本发明实施例提供的CABAC编码方法进行整体描述,在本发明实施例提供的CABAC编码方法中,包括上述步骤所描述的基于颗粒度进行CABAC状态统计和上下文简化过程。需要说明的是,本发明实施例仅以颗粒度为LCU为例进行描述,若颗粒度为CU进行处理时,只需在每个颗粒度CU模式选择前进行CABAC统计过程获得最新的CABAC状态即可。
在本发明实施例中,以一个LCU为单位(颗粒度为一个LCU)进行概率统计和相关上下文简化过程,这里上下文简化过程主要以残差部分相关句法元素为例进行描述。
图3示出了本发明实施例中的一种编码器进行图像帧编码的流程示意图,如图3所示,该流程可以包括:
步骤301:获取待编码图像帧。
步骤302:获取当前待处理的LCU。
步骤303:利用上述方式计算各句法元素的比特开销。
步骤304:对于当前待处理的CU,进行模式选择。
具体的,在上述步骤304中,模式选择过程可以通过如下步骤实现:
S1:分别采用不同模式进行预测。
其中,可以采用Merge融合预测模式、skip跳过预测模式、Inter帧间预测模式或Intra帧内预测模式等各种预测模式进行预测。
S2:确定当前模式内的最佳模式或运动信息。
S3:进行模式选择过程CABAC编码。
S4:对编码器所有句法元素进行上下文简化,并根据计算的bit开销进行代价计算。
这样,为了减少LCU内句法元素状态间的依赖性,根据LCU当前的CABAC状态对各句法元素的bit开销进行计算,然后在模式选择过程中,均利用前面计算的数据确定编码器中所有句法元素的bit开销,整个LCU内部概率状态不更新,这样,在LCU内部,当前二进制符号的状态不再依赖于相邻块或相邻系数。
这里需注意,若当前LCU为64x64,则在模式选择过程中,该LCU下面划分的所有尺寸(包括32x32、16x16和8x8的CU)内部CABAC状态全部不更新,均使用LCU初始计算的bit开销。
其中,上述步骤S4中的对编码器的句法元素进行上下文简化的过程可以具体包括:
需要说明的是,本发明实施例仅以残差部分相关句法元素为例进行描述,其它句法元素均可利用相同的技术构思进行上下文简化,这里不再一一赘述。
举例来说,对于最后一个非零位置(LastPos)坐标的编码的句法元素来说,X或Y坐标分为前缀(prefix)和后缀(suffix)的相关句法元素为:
last_sig_coeff_x_prefix、last_sig_coeff_y_prefix
last_sig_coeff_x_suffix、last_sig_coeff_y_suffix
由于在现有技术中,X坐标(或Y坐标)前缀上下文亮度(Luma)有15个,色度(Chroma)有3个,共18个,所以最后一个位置的上下文共有36个。并且,在TU(TransformUnit,变换单元)尺寸为32时的二值化过程中,进行二值化后最多为9位二进制(111111111),因此在二进制索引(BinIndex)中,当T=32时,Luma分量相邻两个二进制符号的上下文是相同的。
在本发明实施例中,可以采用如下方式对最后一个位置的上下文更新过程进行简化:根据不同TU尺寸,只设定一个偏移,TU尺寸为4,8,16和32时,对应Luma上下文的偏移分别是0,3,6,10,Chroma上下文的偏移均设为15,内部上下文不再更新。
再举例来说,对于系数组(CoefficientGroup,CG)标志CSBF句法元素来说,其句法元素为:
coded_sub_block_flag[][],CG组标志CSBF的上下文cg可为0或1,计算公式:
cg=min(1,sr+sl)
其中sr和sl分别为当前CG右边和下边CG组标志CSBF,若相邻CG在TU外,则cg设为0。
在本发明实施例中,可以将CG的上下文更新过程去掉,直接将上下文设为0,去除当前CG上下文对相邻CG的依赖。
再举例来说,对于系数绝对值的显著性(大于0)句法元素来说,其句法元素为:
sig_coeff_flag[][]
由于系数值的显著性采用基于位置的上下文模型,为减少上下文的数目,8x8、16x16和32x32TU的上下文模板是共享的。而且除4x4的TU之外,其余尺寸的(8x8、16x16、32x32)TU的系数值的显著性上下文主要是0、1和2三个值。可见,这种基于模板的上下文方式,对每个系数均要进行处理,比较复杂,且需要依赖于相邻CG的显著性。
在本发明实施例中,可以去掉上下文模板,把系数显著性句法元素(sig_coeff_flag)所有的上下文值均设置为0。
再举例来说,对于系数大于1句法元素来说,其句法元素为:
coeff_abs_level_greater1_flag[]
由于系数组(CoefficientGroup,CG)(4x4大小的块)中,前8个系数大于1标志coeff_abs_level_greater1_flag使用regular模式进行编码,其他大于1的标志使用bypass模式编码。因此,进行系数级编码时,TU中CG的上下文分为两个区域,左上CG和TU中的其他CG,这两个区域使用不同的上下文。例如,CGluma的上下文set有4个,chroma有2个。每个set中又有5个上下文,4个用于大于1的句法元素,1个用于大于2的句法元素。所以coeff_abs_level_greater1_flag的上下文有24个。
在本发明实施例中,可以采用只针对coeff_abs_level_greater1_flag的每个set中的上下文进行精简,仅选用前两个:0和1,进行上下文更新。
在执行上述步骤304之后,继续执行如下步骤。
步骤305:利用代价计算结果,确定当前CU的最佳模式。
步骤306:判断当前LCU中的所有CU是否均处理完毕,如果是,则继续执行步骤307;否则,跳回执行步骤304。
步骤307:对当前LCU进行实际CABAC编码。
步骤308:判断当前图像帧中的所有LCU是否均处理完毕,如果是,则结束流程;否则,跳回执行步骤302。
这样,利用本发明实施例提供的图像帧编码方法,降低了编码器的编码码率,还可以有效的降低了编码器的编码时间。
综上,本发明实施例的关键点是:
第一,本发明基于对CABAC处理过程的分析,在实际编码中不对CABAC过程进行修改,仅在预测模式选择过程中进行简化,以确保CABAC过程的准确性。
第二,本发明是在预测模式选择过程中,通过在不同的颗粒度进行CABAC概率状态统计,计算编码器各句法元素在相应状态的比特开销,这样相邻系数间或相邻块(较小块)状态不再相互依赖,可以实现CABAC的并行化处理,提高CABAC的吞吐量。
第三,在以颗粒度统计的基础上,可以进一步对上下文模型选择过程进行简化,本发明提供的简化方式可适用于编码器所有句法元素,以进一步增加CABAC的吞吐量。
可见,在本发明实施例中,在预测模式选择过程中对CABAC进行并行化处理,不修改实际的CABAC编码过程;在不同的颗粒度进行概率统计,可以选择一个或多个LCU,或是在CU级进行统计,去除数据依赖;进一步的,对上下文模型数目进行简化,可适用于编码器所有句法元素,以进一步增加CABAC的吞吐量。
从上述技术方案可以看出,本发明实施例可以针对基于上下文的自适应二进制算术编码CABAC中的预测模式的选择过程和上下文的选择过程分别进行优化,能够在不修改实际的CABAC过程的前提下,实现CABAC过程的并行化处理;首先,可以将待处理的全部编码块划分为多组;然后,以每个组为单位,对组内的各编码块进行预测模式的确定,具体的:对于第一组内的各个编码块,分别对组内的每个编码块执行如下操作:确定与各句法元素相对应的上下文,计算出各句法元素所对应的上下文在相同的第一概率状态下的比特开销;利用计算出的比特开销,计算不同的预测模式下的代价,将最小的代价所对应的预测模式作为该编码块的预测模式;其中所述第一概率状态为预设的初始概率状态;以此类推,分别确定该组内的全部编码块的预测模式;同样的,对于其余组内的全部编码块,确定与各句法元素相对应的上下文,计算出各句法元素所对应的各上下文在相同的第二概率状态下的比特开销;利用计算出的比特开销,计算不同的预测模式下的代价,将最小的代价所对应的预测模式作为该编码块的预测模式;所述第二概率状态为前一组编码块进行CABAC编码处理后所更新的概率状态;以此类推,分别确定该组内的全部编码块的预测模式;这样,可以在不同颗粒度下进行概率统计,从而去除了组间的数据依赖,进而简化了CABAC中的预测模式的选择过程,提高了CABAC的吞吐量;另一方面,本发明实施例还可以在上下文的选择过程中,对于编码块中的任一句法元素,获取预先存储的且与该句法元素对应的标准上下文模型;当该句法元素满足预设条件时,按照预设规则,选取该句法元素对应的所述标准上下文模型中的部分上下文,作为该句法元素对应的上下文;从而简化了CABAC中的上下文模型的选择过程,进一步提高了CABAC的吞吐量。
基于相同的技术原理,本发明实施例还提供了一种基于上下文的自适应二进制算术编码CABAC中的预测模式的确定装置,图4示出了本发明实施例提供的一种图像编码装置的结构示意图,如图4所示,该装置包括:
分组模块401,用于按照以若干个编码块为一组的规则,将待处理图像帧中的全部编码块进行分组;
选择模块402,用于对于第一组内的各个编码块,分别对组内的每个编码块执行如下操作:确定与各句法元素相对应的上下文,计算出各句法元素所对应的上下文在相同的第一概率状态下的比特开销;利用计算出的比特开销,计算不同的预测模式下的代价,将最小的代价所对应的预测模式作为该编码块的预测模式;所述第一概率状态为预设的初始概率状态;对于除所述第一组编码块以外的其余组编码块,分别对组内的每个编码块执行如下操作:确定与各句法元素相对应的上下文,计算出各句法元素所对应的各上下文在相同的第二概率状态下的比特开销;利用计算出的比特开销,计算不同的预测模式下的代价,将最小的代价所对应的预测模式作为该编码块的预测模式;所述第二概率状态为前一组编码块进行基于上下文的自适应二进制算术CABAC编码处理后所更新的概率状态;
编码模块403,用于利用确定出的预测模式进行CABAC编码处理;
其中,所述句法元素用于表征该句法元素所属于的编码块的图像信息。
可选的,所述选择模块402具体用于:
对于任一句法元素的上下文,获取预先存储的且与该句法元素对应的标准上下文模型;当该句法元素满足预设条件时,按照预设规则,选取该句法元素对应的所述标准上下文模型中的部分上下文,作为该句法元素的上下文。
可选的,所述选择模块402具体用于:
当该句法元素对应的标准上下文模型中的上下文的个数大于预设阈值时,将该句法元素确定为满足预设条件的句法元素;选取所述满足预设条件的句法元素对应的标准上下文模型中的第N个上下文,作为该句法元素的上下文,所述N≥1;或者按照所述满足预设条件的句法元素对应的标准上下文模型中的各上下文的由前到后的排列顺序,选取所述标准上下文模型中的前N个上下文,作为该句法元素的上下文,所述N≥1。
可选的,所述选择模块402具体用于:
在对前一组内的最后一个编码块进行CABAC编码处理时,更新所述前一组编码块的概率状态,将更新后的概率状态作为前一组编码块进行编码处理后所更新的概率状态。
可选的,所述编码块为LCU或CU。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器,使得通过该计算机或其他可编程数据处理设备的处理器执行的指令可实现流程图中的一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图的一个流程或多个流程和/或方框图的一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种图像的编码方法,其特征在于,该方法包括:
按照以若干个编码块为一组的规则,将待处理图像帧中的全部编码块进行分组;
对于第一组内的各个编码块,分别对组内的每个编码块执行如下操作:确定与各句法元素相对应的上下文,计算出各句法元素所对应的上下文在相同的第一概率状态下的比特开销;利用计算出的比特开销,计算不同的预测模式下的代价,将最小的代价所对应的预测模式作为该编码块的预测模式;所述第一概率状态为预设的初始概率状态;并利用确定出的预测模式进行基于上下文的自适应二进制算术CABAC编码处理;
对于除所述第一组编码块以外的其余组编码块,分别对组内的每个编码块执行如下操作:确定与各句法元素相对应的上下文,计算出各句法元素所对应的各上下文在相同的第二概率状态下的比特开销;利用计算出的比特开销,计算不同的预测模式下的代价,将最小的代价所对应的预测模式作为该编码块的预测模式;所述第二概率状态为前一组编码块进行CABAC编码处理后所更新的概率状态;并利用确定出的预测模式进行CABAC编码处理;
其中,所述句法元素用于表征该句法元素所属于的编码块的图像信息。
2.如权利要求1所述的方法,其特征在于,所述确定与各句法元素相对应的上下文,具体包括:
对于任一句法元素的上下文,获取预先存储的且与该句法元素对应的标准上下文模型;
当该句法元素满足预设条件时,按照预设规则,选取该句法元素对应的所述标准上下文模型中的部分上下文,作为该句法元素的上下文。
3.如权利要求2所述的方法,其特征在于,所述当该句法元素满足预设条件时,按照预设规则,选取该句法元素对应的所述标准上下文模型中的部分上下文,作为该句法元素的上下文,具体包括:
当该句法元素对应的标准上下文模型中的上下文的个数大于预设阈值时,将该句法元素确定为满足预设条件的句法元素;
选取所述满足预设条件的句法元素对应的标准上下文模型中的第N个上下文,作为该句法元素的上下文,所述N≥1;或者按照所述满足预设条件的句法元素对应的标准上下文模型中的各上下文的由前到后的排列顺序,选取所述标准上下文模型中的前N个上下文,作为该句法元素的上下文,所述N≥1。
4.如权利要求1所述的方法,其特征在于,所述前一组编码块进行编码处理后所更新的概率状态,具体为:
在对前一组内的最后一个编码块进行CABAC编码处理时,更新所述前一组编码块的概率状态,将更新后的概率状态作为前一组编码块进行编码处理后所更新的概率状态。
5.如权利要求1-4中任一项所述的方法,其特征在于,所述编码块为LCU或CU。
6.一种图像编码装置,其特征在于,该装置包括:
分组模块,用于按照以若干个编码块为一组的规则,将待处理图像帧中的全部编码块进行分组;
选择模块,用于对于第一组内的各个编码块,分别对组内的每个编码块执行如下操作:确定与各句法元素相对应的上下文,计算出各句法元素所对应的上下文在相同的第一概率状态下的比特开销;利用计算出的比特开销,计算不同的预测模式下的代价,将最小的代价所对应的预测模式作为该编码块的预测模式;所述第一概率状态为预设的初始概率状态;对于除所述第一组编码块以外的其余组编码块,分别对组内的每个编码块执行如下操作:确定与各句法元素相对应的上下文,计算出各句法元素所对应的各上下文在相同的第二概率状态下的比特开销;利用计算出的比特开销,计算不同的预测模式下的代价,将最小的代价所对应的预测模式作为该编码块的预测模式;所述第二概率状态为前一组编码块进行基于上下文的自适应二进制算术CABAC编码处理后所更新的概率状态;
编码模块,用于利用确定出的预测模式进行CABAC编码处理;
其中,所述句法元素用于表征该句法元素所属于的编码块的图像信息。
7.如权利要求6所述的装置,其特征在于,所述选择模块具体用于:
对于任一句法元素的上下文,获取预先存储的且与该句法元素对应的标准上下文模型;当该句法元素满足预设条件时,按照预设规则,选取该句法元素对应的所述标准上下文模型中的部分上下文,作为该句法元素的上下文。
8.如权利要求7所述的装置,其特征在于,所述选择模块具体用于:
当该句法元素对应的标准上下文模型中的上下文的个数大于预设阈值时,将该句法元素确定为满足预设条件的句法元素;选取所述满足预设条件的句法元素对应的标准上下文模型中的第N个上下文,作为该句法元素的上下文,所述N≥1;或者按照所述满足预设条件的句法元素对应的标准上下文模型中的各上下文的由前到后的排列顺序,选取所述标准上下文模型中的前N个上下文,作为该句法元素的上下文,所述N≥1。
9.如权利要求6所述的装置,其特征在于,所述选择模块具体用于:
在对前一组内的最后一个编码块进行CABAC编码处理时,更新所述前一组编码块的概率状态,将更新后的概率状态作为前一组编码块进行编码处理后所更新的概率状态。
10.如权利要求6-9中任一项所述的装置,其特征在于,所述编码块为LCU或CU。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510897191.0A CN105516727B (zh) | 2015-12-08 | 2015-12-08 | 一种图像编码方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510897191.0A CN105516727B (zh) | 2015-12-08 | 2015-12-08 | 一种图像编码方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105516727A true CN105516727A (zh) | 2016-04-20 |
CN105516727B CN105516727B (zh) | 2018-09-28 |
Family
ID=55724319
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510897191.0A Active CN105516727B (zh) | 2015-12-08 | 2015-12-08 | 一种图像编码方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105516727B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109547795A (zh) * | 2018-10-26 | 2019-03-29 | 西安科锐盛创新科技有限公司 | 视频编码方法及装置 |
CN110958459A (zh) * | 2018-09-26 | 2020-04-03 | 阿里巴巴集团控股有限公司 | 一种数据处理方法及其装置 |
CN113711599A (zh) * | 2019-04-24 | 2021-11-26 | 松下电器(美国)知识产权公司 | 编码装置、解码装置、编码方法和解码方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101212676A (zh) * | 2006-12-29 | 2008-07-02 | 北京展讯高科通信技术有限公司 | 高效并行cabac解码方法及其装置 |
US20120207222A1 (en) * | 2011-02-16 | 2012-08-16 | General Instrument Corporation | Method and system for processing video data |
CN102740077A (zh) * | 2012-07-04 | 2012-10-17 | 西安电子科技大学 | 基于h.264/avc标准的帧内预测模式选择方法 |
CN103535032A (zh) * | 2011-03-07 | 2014-01-22 | 奥林奇公司 | 编码和解码图像的方法、编码和解码设备、计算机程序 |
-
2015
- 2015-12-08 CN CN201510897191.0A patent/CN105516727B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101212676A (zh) * | 2006-12-29 | 2008-07-02 | 北京展讯高科通信技术有限公司 | 高效并行cabac解码方法及其装置 |
US20120207222A1 (en) * | 2011-02-16 | 2012-08-16 | General Instrument Corporation | Method and system for processing video data |
CN103535032A (zh) * | 2011-03-07 | 2014-01-22 | 奥林奇公司 | 编码和解码图像的方法、编码和解码设备、计算机程序 |
CN102740077A (zh) * | 2012-07-04 | 2012-10-17 | 西安电子科技大学 | 基于h.264/avc标准的帧内预测模式选择方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110958459A (zh) * | 2018-09-26 | 2020-04-03 | 阿里巴巴集团控股有限公司 | 一种数据处理方法及其装置 |
CN110958459B (zh) * | 2018-09-26 | 2022-06-03 | 阿里巴巴集团控股有限公司 | 一种数据处理方法及其装置 |
CN109547795A (zh) * | 2018-10-26 | 2019-03-29 | 西安科锐盛创新科技有限公司 | 视频编码方法及装置 |
CN113711599A (zh) * | 2019-04-24 | 2021-11-26 | 松下电器(美国)知识产权公司 | 编码装置、解码装置、编码方法和解码方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105516727B (zh) | 2018-09-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111699695B (zh) | 用于对经编码数据集进行解码的方法、设备和存储介质 | |
US10742984B2 (en) | Method and apparatus for multi-table based context adaptive binary arithmetic coding | |
US20160044329A1 (en) | Image Predictive Coding Method and Image Encoder | |
CN109889827B (zh) | 帧内预测编码方法、装置、电子设备及计算机存储介质 | |
KR20140031370A (ko) | 변환 계수 레벨 코딩을 위한 컨텍스트 모델링 기술들 | |
KR102600727B1 (ko) | 파라미터화된 확률 추정 유한 상태 머신들을 이용한 이진 산술 코딩 | |
EP1445955A1 (en) | Image encoding method, image decoding method, image encoder, image decode, program, computer data signal, and image transmission system | |
WO2014190468A1 (en) | Video encoder for images | |
CA3069635C (en) | Method and apparatus for range derivation in context adaptive binary arithmetic coding | |
CN101061515A (zh) | 表示时变图形模型的数据流的编码方案 | |
EP3499885B1 (en) | Method and device for encoding video data | |
CN111316642B (zh) | 信令图像编码和解码划分信息的方法和装置 | |
EP2697974A2 (en) | Methods and devices for coding and decoding the position of the last significant coefficient | |
CN112514381A (zh) | 图像编解码方法、编码器、解码器以及存储介质 | |
CA3075491A1 (en) | Binary arithmetic coding with progressive modification of adaptation parameters | |
CN105516727A (zh) | 一种图像编码方法及装置 | |
CN111654696B (zh) | 一种帧内的多参考行预测方法、装置、存储介质及终端 | |
CN102650969A (zh) | 一种获取、更新bin的上下文概率模型值的方法及装置 | |
CN109788284B (zh) | 一种量化块的解码方法、装置及电子设备 | |
US20190191162A1 (en) | Method and device for encoding video data | |
CN110049322B (zh) | 模式选择的方法、装置、电子设备及存储介质 | |
CN114449277B (zh) | 用于系数代码化的上下文推导的方法和设备 | |
CN106941610B (zh) | 基于改进方块编码的二值roi掩模编码方法 | |
CN105516719A (zh) | 一种视频编码方法及装置 | |
WO2023197104A1 (zh) | 一种编解码方法、编码器、解码器及存储介质 |
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 |