熵上下文处理方法、片上系统及电子设备技术方案

技术编号:35065171 阅读:9 留言:0更新日期:2022-09-28 11:22
本申请涉及数据处理技术领域,特别涉及一种熵上下文处理方法、片上系统及电子设备,能够减少了熵上下文保存与恢复过程的耗时,并避免占用系统带宽。该方法具体应用于包括多个内核和至少一个存储单元的片上系统中,包括:检测到多个内核的输入比特状况不满足预设条件;多个内核分别将缓存的熵上下文备份到至少一个存储单元中;检测到多个内核的输入比特状况满足预设条件;多个内核从至少一个存储单元分别获取对应的熵上下文,并重新缓存对应的熵上下文;多个内核并行地对输入的比特流中的不同宏块行进行熵解码,并更新缓存的熵上下文。并更新缓存的熵上下文。并更新缓存的熵上下文。

【技术实现步骤摘要】
熵上下文处理方法、片上系统及电子设备


[0001]本申请涉及视频解码
,特别涉及一种熵上下文处理方法、片上系统及电子设备。

技术介绍

[0002]对于高清视频,现在主流视频压缩标准包括高效率视频编码(High Efficiency Video Coding,HEVC),高级视频编码(Advanced Video Coding,AVC)和信源编码标准(Audio Video coding Standard,AVS)等,而这些标准通过视频解码器(Video Decoder,VDEC)执行视频解码。通常视频解码器采用流水线设计,以宏块(AVC中表示为MB,即Macro Block;HEVC中表示为CTB,即Coding Tree Blocks)作为流水单元。具体地,以HEVC为例,其主要流水级划分4个级别,各级功能描述如下:第一级为熵解码(Entropy Decode);第二级为反量化(IQT)和反DCT变换(IDCT);第三级为帧预测(IPred)和图像重建(ReC);第四级为去块滤波(Dblock)和自适应补偿(SAO)。
[0003]视频解码器通过熵引擎对比特流进行解码,熵引擎具体基于不同的熵算法对比特流进行解析。不同的视频压缩标准采用不同的熵算法,例如,HEVC采用基于上下文的自适应二进制算术编码(Context

based Adaptive Binary Arithmetic Coding,CABAC),AVS采用基于上下文的访问控制协议(Context

Based Access Control,CBAC),AV1采用多符号方案等。无论视频标准使用哪种熵算法,视频解码器内部的熵引擎总是会对输入缓存区中的比特流进行解析处理,而输入缓存区的容量大小可以根据系统要求而有所不同。在传统的视频解码系统中,比特流中的比特是逐块(即宏块)加载的。那么,只有容量非常大的输入缓存区才可以保存足够的比特流以供熵引擎正常解码,否则就会出现“比特下溢”的问题。这意味着当前的熵引擎消耗了输入缓存区中所有可用比特,而输入缓存区内还未存入新的可用比特。这种比特下溢的情况一般是由系统总线的AXI(Advanced eXtensible Interface)延迟、互联网延迟、或者一些系统级问题(如占用系统总线的数据较多等)引起的。熵解码中的比特下溢的问题可能导致解码异常进而失败。
[0004]为了解决上述问题,通用的方法是在熵解码开始前保存当前的解码信息(例如,邻居信息(即相邻的宏块信息,如宏块的标识)和熵上下文),当解码过程遇到“比特下溢”时,视频解码器会退出解码过程,等待后续比特加载完成后,再恢复该解码信息以回到解码过程。目前熵解码的这些过程通常由视频解码器中的固件处理,固件在视频解码器的内部静态随机存取存储器(Static Random

Access Memory,SRAM)和外部双倍速率同步动态随机存储器(Double Data Rate SDRAM,DDR)之间执行熵上下文的保存和恢复过程,从而导致熵解码过程中最耗时的部分为保存和恢复熵上下文。并且,当视频解码器使用多核解码时,熵下文保存和恢复过程不仅耗时还会导致系统带宽高。

技术实现思路

[0005]本申请提供一种熵上下文处理方法、片上系统及电子设备,能够减少熵上下文保
存与恢复过程的耗时,并避免占用系统带宽。
[0006]本申请的第一方面提供了一种熵上下文处理方法,应用于包括多个内核和至少一个存储单元(如至少一个下文中的里程碑Ram)的片上系统中,该方法包括:检测到所述多个内核的输入比特状况不满足预设条件;所述多个内核分别将缓存的熵上下文备份到所述至少一个存储单元中;检测到多个内核的输入比特状况满足预设条件;所述多个内核从所述至少一个存储单元分别获取对应的熵上下文,并重新缓存对应的熵上下文;所述多个内核并行地对输入的比特流中的不同宏块行进行熵解码,并更新缓存的熵上下文。如此,由于各个内核无需在外部DDR中保存并恢复熵上下文,因此减少了各个内核对熵上下文保存与恢复过程的耗时,并且在多核解码场景中还可以避免由于内核在外部DDR中保存并恢复熵上下文产生的系统带宽。
[0007]在上述第一方面的一种可能的实现方式中,所述预设条件为:所述多个内核中的至少一个内核在预设时长内未输入比特流,或者所述多个内核中输入的比特流的比特数小于预设数量。可以理解的是,上述预设条件用于指示与多个内核相连的输入缓存区中出现的比特下溢问题。
[0008]在上述第一方面的一种可能的实现方式中,所述至少一个存储单元的数量与所述多个内核的数量相同,一个所述内核唯一对应一个所述存储单元;所述多个内核中的每个内核是将在所述至少一个存储单元中唯一对应的存储单元中存储或获取熵上下文的。
[0009]在上述第一方面的一种可能的实现方式中,所述片上系统中还包括与所述至少一个存储单元相连的仲裁器,所述至少一个存储单元的数量小于所述多个内核的数量;该方法还包括:所述多个内核分别向所述仲裁器发送一个存储请求消息;所述仲裁器基于多个存储请求消息,为所述多个内核分别分配一个存储地址;所述仲裁器向所述多个内核分别返回一个允许存储的响应消息;其中,每个所述内核所缓存的熵上下文是按照所述仲裁器分配的存储地址存储在所述至少一个存储单元中的。
[0010]在上述第一方面的一种可能的实现方式中,一个所述存储请求消息中包括以下至少一项:内核的标识信息,对应的内核缓存的熵上下文,指示请求存储熵上下文的第一指示信息;一个所述允许存储的响应消息中包括以下至少一项:对应的内核的标识信息,对应的内核所分配的存储地址的标识,指示允许对应的内核在所述至少一个存储单元中存储对应的熵上下文的第二指示信息。
[0011]在上述第一方面的一种可能的实现方式中,每个所述内核中包括一个固件,一个熵引擎和一个上下文缓存单元(即下文中的上下文Ram);其中,每个所述内核通过熵引擎对比特流进行熵解码并生成熵上下文;每个所述内核通过上下文缓存单元缓存熵上下文;每个所述内核通过固件向所述仲裁器发起一个所述存储请求,并将对应的上下文缓存单元中缓存的熵上下文备份至所述至少一个存储单元中,以及将从所述至少一个存储单元中获取的熵上下文恢复存储到对应的上下文缓存单元中。
[0012]在上述第一方面的一种可能的实现方式中,所述多个内核按照比特流中的宏块行对比特流进行熵解码,一个所述内核按照宏块行中的宏块对比特流进行熵解码,其中,一个宏块行对应一个内核,并且,一个所述内核缓存的熵上下文对应于一个宏块。
[0013]在上述第一方面的一种可能的实现方式中,所述片上系统与其外部的目标存储单元相连;所述方法还包括:所述多个内核中的每个所述内核将一个内核处理信息发送给所
述目标存储单元中,其中,一个所述内核处理信息中包括以下至少一项:对应的内核的信息,对应的内核中输入的比特流、宏块或宏块行的信息。
[0014]本申请的第二方面提供了一种片上系统,所述片上系统包括多本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种熵上下文处理方法,其特征在于,应用于包括多个内核和至少一个存储单元的片上系统中,所述方法包括:检测到所述多个内核的输入比特状况不满足预设条件;所述多个内核分别将缓存的熵上下文备份到所述至少一个存储单元中;检测到多个内核的输入比特状况满足预设条件;所述多个内核从所述至少一个存储单元分别获取对应的熵上下文,并重新缓存对应的熵上下文;所述多个内核并行地对输入的比特流中的不同宏块行进行熵解码,并更新缓存的熵上下文。2.根据权利要求1所述的方法,其特征在于,所述预设条件为:所述多个内核中的至少一个内核在预设时长内未输入比特流,或者所述多个内核中输入的比特流的比特数小于预设数量。3.根据权利要求2所述的方法,其特征在于,所述至少一个存储单元的数量与所述多个内核的数量相同,一个所述内核唯一对应一个所述存储单元;所述多个内核中的每个内核是将在所述至少一个存储单元中唯一对应的存储单元中存储或获取熵上下文的。4.根据权利要求1所述的方法,其特征在于,所述片上系统中还包括与所述至少一个存储单元相连的仲裁器,所述至少一个存储单元的数量小于所述多个内核的数量;所述方法还包括:所述多个内核分别向所述仲裁器发送一个存储请求消息;所述仲裁器基于多个存储请求消息,为所述多个内核分别分配一个存储地址;所述仲裁器向所述多个内核分别返回一个允许存储的响应消息;其中,每个所述内核所缓存的熵上下文是按照所述仲裁器分配的存储地址存储在所述至少一个存储单元中的。5.根据权利要求4所述的方法,其特征在于,一个所述存储请求消息中包括以下至少一项:内核的标识信息,对应的内核缓存的熵上下文,指示请求存储熵上下文的第一指示信息;一个所述允许存储的响应消息中包括以下至少一项:对应的内核的标识信息,对应的内核所分配的存储地址的标识,指示允许对应的内核在所述至少一个存储单元中存储对应的熵上下文的第二指示信息。6.根据权利要求5所述的方法,其特征在于,每个所述内核中包括一个固件,一个熵引擎和一个上下文缓存单元;其中,每个所述内核通过熵引擎对比特流进行熵解码并生成熵上下文;每个所述内核通过上下文缓存单元缓存熵上下文;每个所述内核通过固件向所述仲裁器发起一个所述存储请求,并将对应的上下文缓存单元中缓存的熵上下文备份至所述至少一个存储单元中,以及将从所述至少一个存储单元中获取的熵上下文恢复存储到对应的上下文缓存单元中。7.根据权利要求6所述的方法,其特征在于,所述多个内核按照比特流中的宏块行对比特流进行熵解码,一个所述内核按照宏块行中的宏块对比特流进行熵解码,其中,一个宏块行对应一个内核,并且,一个所述内核缓存的熵上下文对应于一个宏块。
8.根据权利要求7所述的方法,其特征在于,所述片上系统与其外部的目标存储单元相连;所述方法还包括:所述多个内核中的每个所述内核将一个内核处理信息发送给所述目标存储单元中,其中,一个所述内核处理信息中包括以下至少一项:对应的内核的信息,对应的内核中输入的比特流、宏块或宏块行的信息。9.一种片上系统,其特征在于,所述片上系统包括多个内核和至少一个存储单元;所述多个内核,用于检测到所述多个内核的输入比特状况不满足预设条件;分别将缓存的熵上下文备份到所述至...

【专利技术属性】
技术研发人员:黄异青
申请(专利权)人:安谋科技中国有限公司
类型:发明
国别省市:

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

1