一种编码方法、装置、设备及可读存储介质制造方法及图纸

技术编号:37564838 阅读:16 留言:0更新日期:2023-05-15 07:45
本申请公开了计算机技术领域内的一种编码方法、装置、设备及可读存储介质。本申请在编码器中设有缓存区,并在缓存区设有翻转指针和尾指针,利用这两个指针指示已存码流中的最低位0元素存储地址和末位元素存储地址,在确定后来的输入码流溢出时,便可将已存码流中的最低位0元素和码流末尾的末位元素之间的所有元素作为待翻转码流并进行翻转,解决了新输入码流带来的溢出问题,从而解决了CABAC编码的溢出问题。相应地,本申请提供的一种编码装置、设备及可读存储介质,也同样具有上述技术效果。也同样具有上述技术效果。也同样具有上述技术效果。

【技术实现步骤摘要】
一种编码方法、装置、设备及可读存储介质


[0001]本申请涉及计算机
,特别涉及一种编码方法、装置、设备及可读存储介质。

技术介绍

[0002]目前,基于CABAC(Context

based Adaptive Binary Arithmatic Coding,上下文自适应二进制算术编码)得到的上一时钟周期的二进制码流会受下一时钟周期二进制码流的影响。如果下一时钟周期的二进制码流有溢出,那么一时钟周期二进制码流中的元素就需要翻转。这种情况被称为CABAC编码的bitsOutstanding问题。
[0003]因此,如何解决CABAC编码的bitsOutstanding问题,是本领域技术人员需要解决的问题。

技术实现思路

[0004]有鉴于此,本申请的目的在于提供一种编码方法、装置、设备及可读存储介质,以解决CABAC编码的bitsOutstanding问题。其具体方案如下:
[0005]第一方面,本申请提供了一种编码方法,应用于编码器,所述编码器包括缓存区,所述缓存区设有翻转指针和尾指针,所述翻转指针指向所述缓存区中的当前已存码流中的最低位0元素,所述尾指针指向所述当前已存码流中的末位元素,其中,所述翻转指针和所述尾指针之间的码流为待翻转码流,所述方法包括:
[0006]接收当前输入码流和所述当前输入码流的描述信息;
[0007]根据所述描述信息中的溢出标识信息,将所述待翻转码流进行翻转操作,得到目标码流;
[0008]将所述当前输入码流存储至所述缓存区,得到更新后的已存码流,其中,所述翻转指针指向所述更新后的已存码流中的最低位0元素,所述尾指针指向所述更新后的已存码流中的末位元素。
[0009]可选地,所述根据所述描述信息中的溢出标识信息,将所述待翻转码流进行翻转操作,得到目标码流,包括:
[0010]根据所述溢出标识信息将所述待翻转码流中的所有元素值进行取反操作,得到所述目标码流。
[0011]可选地,还包括:
[0012]根据所述描述信息中的非溢出标识信息,使所述待翻转码流中的所有元素值保持不变,得到所述目标码流。
[0013]可选地,所述描述信息还包括:所述当前输入码流的码流长度;
[0014]相应地,所述将所述当前输入码流存储至所述缓存区,包括:
[0015]判断所述缓存区的剩余空间是否不小于所述码流长度;
[0016]若所述剩余空间不小于所述码流长度,则获取所述尾指针指向的存储地址,将该
存储地址的下一地址作为所述当前输入码流的初始存储地址,从所述初始存储地址开始,将所述当前输入码流存储至所述缓存区;
[0017]若所述剩余空间小于所述码流长度,则等待所述目标码流中的最低位0元素之前的元素的输出,并根据元素输出结果,将未输出的元素按序移动存储至已输出元素在所述缓存区中占用的存储空间,直至所述剩余空间不小于所述码流长度时,将所述当前输入码流存储至所述缓存区。
[0018]可选地,所述描述信息还包括:所述当前输入码流中最低位0元素的位置记录信息;
[0019]相应地,若所述位置记录信息不是默认无效信息,则确定所述当前输入码流不为全1码流;否则,确定所述当前输入码流为全1码流。
[0020]可选地,所述方法还包括:
[0021]接收码流输出信号,根据所述码流输出信号将所述翻转指针指向地址的之前地址中存储的元素作为确定码流输出。
[0022]可选地,所述方法还包括:
[0023]若接收到码流终止信号,则将所述尾指针指向的地址及其之前地址中存储的数据作为确定码流输出。
[0024]第二方面,本申请提供了一种编码装置,应用于编码器,所述编码器包括缓存区,所述缓存区设有翻转指针和尾指针,所述翻转指针指向所述缓存区中的当前已存码流中的最低位0元素,所述尾指针指向所述当前已存码流中的末位元素,其中,所述翻转指针和所述尾指针之间的码流为待翻转码流,所述装置包括:
[0025]接收模块,用于接收当前输入码流和所述当前输入码流的描述信息;
[0026]翻转模块,用于根据所述描述信息中的溢出标识信息,将所述待翻转码流进行翻转操作,得到目标码流;
[0027]存储模块,用于将所述当前输入码流存储至所述缓存区,得到更新后的已存码流,其中,所述翻转指针指向所述更新后的已存码流中的最低位0元素,所述尾指针指向所述更新后的已存码流中的末位元素。
[0028]第三方面,本申请提供了一种电子设备,包括:
[0029]存储器,用于存储计算机程序;
[0030]处理器,用于执行所述计算机程序,以实现前述公开的编码方法。
[0031]第四方面,本申请提供了一种可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述公开的编码方法。
[0032]通过以上方案可知,本申请提供了一种编码方法,应用于编码器,所述编码器包括缓存区,所述缓存区设有翻转指针和尾指针,所述翻转指针指向所述缓存区中的当前已存码流中的最低位0元素,所述尾指针指向所述当前已存码流中的末位元素,其中,所述翻转指针和所述尾指针之间的码流为待翻转码流,所述方法包括:接收当前输入码流和所述当前输入码流的描述信息;根据所述描述信息中的溢出标识信息,将所述待翻转码流进行翻转操作,得到目标码流;将所述当前输入码流存储至所述缓存区,得到更新后的已存码流,其中,所述翻转指针指向所述更新后的已存码流中的最低位0元素,所述尾指针指向所述更新后的已存码流中的末位元素。
[0033]可见,本申请在编码器中设有缓存区,并在缓存区设有翻转指针和尾指针,翻转指针指向缓存区中的当前已存码流中的最低位0元素,尾指针指向缓存区中的当前已存码流中的末位元素,由于CABAC编码的后一周期码流可能溢出,因此翻转指针和尾指针之间的码流可能会因后一周期码流的溢出而翻转,故翻转指针和尾指针之间的码流为待翻转码流。据此,本申请在接收到当前输入码流(如:当前已存码流的下一周期码流)和当前输入码流的描述信息后,根据描述信息中的溢出标识信息,将待翻转码流进行翻转操作,得到目标码流;将当前输入码流存储至缓存区,得到更新后的已存码流,之后使翻转指针指向更新后的已存码流中的最低位0元素,尾指针指向更新后的已存码流中的末位元素。由此可实现:在后来的当前输入码流溢出时,先对当前已存码流中的最低位0元素和其末位元素之间的所有元素进行翻转,以解决新输入码流带来的溢出问题。
[0034]相应地,本申请提供的一种编码装置、设备及可读存储介质,也同样具有上述技术效果。
附图说明
[0035]为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0036]图1为本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种编码方法,其特征在于,应用于编码器,所述编码器包括缓存区,所述缓存区设有翻转指针和尾指针,所述翻转指针指向所述缓存区中的当前已存码流中的最低位0元素,所述尾指针指向所述当前已存码流中的末位元素,其中,所述翻转指针和所述尾指针之间的码流为待翻转码流,所述方法包括:接收当前输入码流和所述当前输入码流的描述信息;根据所述描述信息中的溢出标识信息,将所述待翻转码流进行翻转操作,得到目标码流;将所述当前输入码流存储至所述缓存区,得到更新后的已存码流,其中,所述翻转指针指向所述更新后的已存码流中的最低位0元素,所述尾指针指向所述更新后的已存码流中的末位元素。2.根据权利要求1所述的方法,其特征在于,所述根据所述描述信息中的溢出标识信息,将所述待翻转码流进行翻转操作,得到目标码流,包括:根据所述溢出标识信息将所述待翻转码流中的所有元素值进行取反操作,得到所述目标码流。3.根据权利要求1所述的方法,其特征在于,所述方法还包括:根据所述描述信息中的非溢出标识信息,使所述待翻转码流中的所有元素值保持不变,得到所述目标码流。4.根据权利要求1所述的方法,其特征在于,所述描述信息还包括:所述当前输入码流的码流长度;相应地,所述将所述当前输入码流存储至所述缓存区,包括:判断所述缓存区的剩余空间是否不小于所述码流长度;若所述剩余空间不小于所述码流长度,则获取所述尾指针指向的存储地址,将该存储地址的下一地址作为所述当前输入码流的初始存储地址,从所述初始存储地址开始,将所述当前输入码流存储至所述缓存区;若所述剩余空间小于所述码流长度,则等待所述目标码流中的最低位0元素之前的元素的输出,并根据元素输出结果,将未输出的元素按序移动存储至已输出元素在所述缓存区中占用的存储空间,直至所述剩余空间不...

【专利技术属性】
技术研发人员:黄刚毅禹治祥邱军陈州辉
申请(专利权)人:湖南国科微电子股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1