一种优化视频解码带宽的方法、系统及装置与流程

文档序号:35149298发布日期:2023-08-18 05:37阅读:23来源:国知局
一种优化视频解码带宽的方法、系统及装置与流程

本发明属于视频编解码,更具体地,涉及一种优化视频解码带宽的方法、系统及装置。


背景技术:

1、随着互联网技术的发展,移动终端的普及,视频应用越来越广泛。而视频编解码技术,是视频业务的基础。视频编码的本质是将数据压缩,主要是去除冗余信息,包括空间上的冗余信息和时间上的冗余信息,从而实现视频数据的压缩。目前主流的视频编码格式是h.264/avc、h.265/hevc、vp9、av1,其中h.264/avc应用最为广泛。

2、在视频编码中会定义3种帧:i帧,为关键帧,采用帧内压缩技术压缩;p帧,为前向参考帧,参考其前面的i帧或p帧进行压缩;b帧,为双向参考帧,同时参考其前面和后面的i帧或者p帧进行压缩。值得说明的是,p帧和b帧可以采取混合的帧内/帧间方式来对帧进行编码:帧的某些部分以帧内进行编码,其它部分参考相应参考帧进行编码。

3、相应的,在解码时会对这些帧进行解压缩。某1帧图像解码完成后,如果它是后面某些图像的参考帧,则它会被放入dpb(decoder picture buffer,解码图像缓存)中保存。i帧不需要参考帧,直接解压缩;p帧需要1个参考帧进行解压缩;b帧需要2个参考帧进行解压缩。

4、而dpb一般是放在外部sdram(synchronous dynamic random access memory,同步动态随机存取存储器)中,如果直接对dpb进行访问,那就需要非常高的访问带宽。例如对一个1920*1080p60hz 4:2:0的压缩视频进行解码,可能需要高达3.5gb/s的访问带宽。另外,在读和写参考帧到dpb时,都是以宏块为单位进行操作的,y的宏块为16*16,每行16个像素,16行,cb/cr的宏块为8*8,每行8个像素,8行,读写第一行16/8像素,再读写第二行的16/8像素,每次地址操作不是连续的,这样无法使用突发传输,对于sdram访问的效率非常低。

5、鉴于此,如何克服上述现有技术所存在的技术问题是本技术领域亟待解决的难题。


技术实现思路

1、本发明的目的之一在于克服上述现有技术中存在的技术问题,为了解决sdram访问效率低、使用有损压缩算法导致参考帧图像精度损失、使用无损压缩算法导致增加面积、处理复杂的技术难题,提供一种优化视频解码带宽的方法、系统及装置,使解码器在参考帧写入dpb时,进行无损压缩,分别对y、cb/cr(也可称为u/v)的宏块进行压缩,生成压缩数据后压缩头信息,压缩数据也是以块作为单元,在dpb中分配的空间大小与原始宏块大小相等,但是在写压缩数据时只写入有效数据;多个宏块的压缩头累计到一定数量后,一起写入dpb相应位置;解码器在经运动补偿后,提取参考帧对应位置的宏块时,根据此位置,先提取对应的压缩头,再提取对应的压缩数据,经过解压缩模块,得到正确的宏块预测数据,加上残差,再经过滤波,就可以得到解码后的输出图像。

2、为实现上述目的,按照本发明的第一方面,提供了一种优化视频解码带宽的方法,包括:

3、将参考帧写入dpb时,分别对y、u、v中一种或多种的宏块进行无损压缩,生成压缩数据后压缩头信息以得到对应的压缩头;

4、在经运动补偿后提取参考帧对应位置的宏块时,通过对应地址进行索引分析,先提取对应的压缩头,再提取对应的压缩数据;

5、对提取的压缩数据进行解压缩,以还原成真实的参考帧宏块残差数据,进行后续的残差数据处理,即可得到解码后的输出图像。

6、进一步的,所述无损压缩基于小波变换和熵编码,生成可变长的压缩数据,具体的:

7、小波变换先对输入数据做一次列小波变换,再做一次行小波变换,以使复杂数据集中在一点,简单数据呈辐射状扩散;

8、进一步对这些数据做熵编码,使复杂数据压缩成较多的码字,简单数据压缩成较少的码字,最终生成可变长的压缩数据。

9、进一步的,所述y的宏块大小为16*16,总共256byte,压缩后的数据为1-256byte,同时生成4bit的压缩头,其第1个宏块的有效压缩数据写入base_address,第2个宏块的有效压缩数据写入base_address+256,第n个宏块的有效压缩数据写入base_address+256*(n-1)。

10、进一步的,所述u/v的宏块大小为8*8,总共64byte,压缩后的数据为1-64byte,同时生成2bit的压缩头,其第1个宏块的有效压缩数据写入base_address,第2个宏块的有效压缩数据写入base_address+64,第n个宏块的有效压缩数据写入base_address+64*(n-1)。

11、进一步的,所述压缩头先按顺序缓存在压缩模块内部,多个连续的压缩头可组成1个128bit数据,累积到到4个128bit时再一次性写到dpb中;若是压缩到了参考帧最后1个宏块,则压缩头不必累积到4个128bit数据,直接写入dpb 。

12、进一步的,所述在经运动补偿后提取参考帧对应位置的宏块时,通过对应地址进行索引分析,先提取对应的压缩头,再提取对应的压缩数据具体包括:

13、依据解码器发送过来的宏块索引值,先从dpb中读出压缩头数据;

14、得取到压缩头数据后,解析出来其中的有效长度信息,同时计算出要读的压缩块基地址,只读取有效长度的压缩数据进入解码器;

15、在提取参考帧对应位置的宏块时,若现有缓存已占用超过预设值,则待累积一定参考帧后再进行统一的宏块提取。

16、进一步的,所述对提取的压缩数据进行解压缩具体包括:

17、接收到提取的压缩数据后,对其进行压损压缩的逆过程,先做熵解码,把数据全部恢复出来,然后通过重映射把数据恢复成8bit,最后做逆小波变换,解压生成无损压缩数据,以得到原始参考帧宏块数据做后续的残差处理。

18、进一步的,所述压缩头为1byte或1/2byte。

19、第二方面,本发明提供一种优化视频解码带宽的系统,应用如第一方面所述的优化视频解码带宽的方法,包括无损压缩模块、参考帧索引模块以及解压缩模块,其中:

20、所述无损压缩模块用于将参考帧写入dpb时,分别对y、u/v的宏块进行无损压缩,生成压缩数据后压缩头信息;

21、所述参考帧索引模块用于在经运动补偿后提取参考帧对应位置的宏块时,通过对应地址进行索引分析,先提取对应的压缩头,再提取对应的压缩数据;

22、所述解压缩模块用于对提取的压缩数据进行解压缩,以还原成真实的参考帧宏块残差数据,进行后续的残差数据处理,即可得到解码后的输出图像。

23、第三方面,本发明提供一种优化视频解码带宽的装置,装置包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述处理器设置为执行如第一方面所述的优化视频解码带宽的方法。

24、总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有如下有益效果:本发明的解码器在将参考帧写入dpb时,进行无损压缩,压缩算法为小波变换加熵编码,分别对y、u/v的宏块进行压缩,生成压缩数据后压缩头信息。压缩数据也是以块作为单元,在dpb中分配的空间大小与原始宏块大小相等,但是在写压缩数据时只写入有效数据。压缩头为1byte或1/2byte,多个宏块的压缩头累计到一定数量后,一起写入dpb相应位置。解码器在经运动补偿后,提取参考帧对应位置的宏块时,根据此位置,先提取对应的压缩头,再提取对应的压缩数据,经过解压缩模块,得到正确的宏块预测数据,加上残差,再经过滤波,就可以得到解码后的输出图像。

25、通过这种方式,虽然会占用比原始参考帧稍微大一点的sdram空间(原始参考帧空间+压缩头空间),但是实现了对参考帧的无损压缩和解压缩,显著降低了解码器对sdram的访问带宽,同时不会降低参考帧和解码质量。另外,该方式实现简单,不再需要内部sram缓存,通过地址就很容易索引到需要的宏块。在外部sdram中使用更多的空间,比起解码器内部增加sram,所花费的面积和成本小得多。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1