一种解码器及有损解码视频图像的方法技术

技术编号:13190619 阅读:62 留言:0更新日期:2016-05-11 18:47
本发明专利技术提供一种解码器及有损解码视频图像的方法,其中,每帧视频图像被划分为多个宏块,该方法包括:将当前宏块的残差值与帧内预测值或帧间预测值相加得到当前宏块的d位比特的重建值并在第一缓存区进行缓存;其中,通过从第一缓存区读取帧内已解码的相邻宏块的d位比特的重建值进行帧内预测,得到当前宏块的帧内预测值;将当前宏块的d位比特的重建值向右移n位比特,得到当前宏块的d-n位比特的重建值并进行滤波,或者,对当前宏块的d位比特的重建值进行滤波,将滤波后的d位比特的重建值向右移n位比特,得到并输出d-n位比特的解码结果,n为小于d的正整数。本发明专利技术既可以节省读写DDR带宽及硬件资源又不会出现花屏,保证图像质量。

【技术实现步骤摘要】

本专利技术涉及高清数字视频压缩编解码
,尤其涉及一种解码器及有损解码 视频图像的方法。
技术介绍
用于视频解码装置,如图1所示,主要包括:反量化模块(Q ^、反变换模块(T 4、 相加模块、限位模块Clip、去块滤波模块dblk、自适应样点补偿模块SA0、参考帧缓存区 (Ref buffer)、帧内预测模块(Pintra)和帧间预测模块(PintCT),完整的比特位深BitDepth = 8或10的视频图像解码流程主要包括: 每一帧视频图像会划分成很多个宏块,不论是8bit还是lObit视频图像宏块码流 都要先熵解码得到熵解码系数(Coefficients),然后经反量化模块进行反量化、经反变换模 块进行反变换得到残差值(d+Ι位),相加模块将得到的残差值与该宏块对应的帧内预测值 或帧间预测值相加得到重建值;限位模块将重建值限制在(〇,2 d 4范围内,这样每个重建 值可以用d比特表示(d = 8或10);去块滤波用于对限位后的重建值进行去块滤波;自适 应样点补偿模块用于对去块滤波后的重建值进行自适应样点补偿计算,得到解码结果并输 出。 每个宏块可能采用帧内预测也可能采用帧间预测,当前宏块的重建值会用做当前 帧后续宏块的帧内预测,当前帧宏块的重建值滤波后会用于下一帧图像中宏块的帧间预 测。视频码流里会标示每个宏块采用的预测模式。 帧内预测模块参考帧内已解码的相邻宏块未经滤波(dblk&SAO)的重建值进行帧 内预测,帧间预测模块参考已解码帧的与当前宏块相邻的宏块经滤波(dblk&SAO)的重建 值进行帧间预测。 具体地,视频解码装置根据视频码流中标示的预测模式,确定需要结合当前宏块 的残差值及帧内预测值计算当前宏块的重建值时,由相加模块将当前宏块的残差值及帧内 预测模块输出的帧内预测值相加得到当前宏块的重建值;确定需要结合当前宏块的残差值 及帧间预测值计算当前宏块的重建值时,由相加模块将当前宏块的残差值及帧间预测模块 输出的帧间预测值相加得到当前宏块的重建值。 以上解码过程中每个对应的模块解码lObit序列比解码8bit序列都需要多消耗 硬件资源。 支持全规格的lObit序列解码需要消耗更多的硬件单元以及占用更多的带宽,如 果能够在现有的8bit解码器上只增加很少的硬件资源就能达到解码lObit序列并且视觉 上差别不大,则是个很好的解决方案。 现有方法都是从上述流程图入手考虑在哪个步骤把lObit数据运算转换为8bit 数据运算,很明显的由于输出解码结果只能存放在DDR(即DDR SDRAM,双倍速率同步动态 随机存储器),为保证带宽其数据位深最好为8而不是10,因此至少必须在滤波(dblk&SAO) 之后转换。 目前较好的解决节省硬件资源的解码流程如图2所示: 〇/, 其中^的意思是将10比特数据转换为8bit数据,转换方法为将10比特数据右 1 ().〇 mb 移两位。I的意思是将8比特数据转换为lObit数据,转换方法为将8比特数据左移两 m 位。在解码过程中,限位模块将相加模块输出的重建值右移两位,将重建值限制在(0,2S ^ 范围内;帧内预测模块将限位模块输出的重建值左移两位后再进行帧内预测,帧间预测模 块将得到的帧间预测值左移两位后输出。 从图2可以看至lj,该方案在解码lObit码流时,反量化、反变换和帧内预测3个模 块用的是l〇bit运算,而滤波(去块滤波和自适应样点补偿)和帧间预测模块用的是8bit 运算。之所以这样做主要是后两个模块的lObit运算消耗的硬件单元比前三个多。该技术 能较好的接近原始解码效果,比直接从熵解码步骤就将系数从lObit转换为8bit能获得更 好的PSNR(Peak Signalto Noise Ratio,峰值信噪比)(40DB左右)和更好的图像质量。 但上述方案有一个缺点,就是HEVC做帧内intra预测会利用周围宏块的重建 值做水平垂直等35种模式的预测,但是上述流程图中得到重建值后会先把数据从lObit 限位到8bit做滤波(dblk&SAO),需要用来做intra预测时再从8bit扩展到lObit,这 个过程中会导致intra宏块周围的参考像素和原来的有误差,导致解码效果不尽如人 意。误差比较明显的是当32X32亮度块做intra预测时会对intra宏块周围的参考像素 (reference sample)进行平滑(smoothing)的操作,当参考像素的不连续性超过一个阈值 (l〈〈(bitdepth-5))时会对所有的周围参考像素用双线性插值bilinear interpolation 的平滑smoothing方式进行修改(强帧内平滑called strong intra smoothing)。而如果 原来的参考像素并没有超过该阈值则不做或做的是小平滑滤波,此时会导致预测出 来的数据完全不同,造成解码的不正确,并且该错误有可能扩散至该帧内后续intra块和 对后面的P帧的解码造成大面积解码错误。采用上述方法解码得到的图像会出现图像花屏 现象。
技术实现思路
本专利技术提供,既可以节省读写DDR带宽及 硬件资源又不会出现花屏,保证图像质量。 本专利技术提供一种解码器有损解码视频图像的方法,其中,每帧视频图像被划分为 多个宏块,该方法包括 : 将当前宏块的残差值与帧内预测值或帧间预测值相加得到当前宏块的d位比特 的重建值并在第一缓存区进行缓存;其中,通过从第一缓存区读取帧内已解码的相邻宏块 的d位比特的重建值进行帧内预测,得到当前宏块的帧内预测值; 将当前宏块的d位比特的重建值向右移η位比特,得到当前宏块的d-n位比特的 重建值,对所述d-n位比特的重建值进行滤波,或者,对当前宏块的d位比特的重建值进行 滤波,将滤波后的d位比特的重建值向右移η位比特,得到并输出d-n位比特的解码结果, η为大于1小于d的整数。 优选地,该方法还包括: 每得到一个宏块的d-n位比特的解码结果后,将所述d-n位比特的解码结果在第 二缓存区进行缓存; 通过如下方式得到当前宏块的帧间预测值: 从第二缓存区读取已解码帧的与当前宏块相邻的宏块的d-n位比特的解码结果 进行帧间预测,将帧间预测的结果向左移η位比特得到当前宏块的帧间预测值; 或者 从第二缓存区读取已解码帧的与当前宏块相邻的宏块的d-n位比特的解码结果 并向左移η位比特后进行帧间预测,得到当前宏块的帧间预测值。 优选地,所述d为10,所述η为2。 优选地,在滤波之前将d位比特的重建值向右移η位比特,具体包括: 在滤波之前将d位比特的重建值向右移η位比特,并将重建值限制在0~2d η 1范 围内。 优选地,将滤波后的d位比特的重建值向右移η位比特,具体包括: 在滤波之后将滤波后的d位比特的重建值向右移η位比特,并将滤波后的重建值 限制在0~2 dn 1范围内。 优选地,对当前宏块的d位比特或d-n位比特的重建值进行滤波,具体包括: 对当前宏块的d位比特或d-n位比特的重建值进行去块滤波和自适应样点补偿。 本专利技术还提供一种有损解码视频图像的解码器,每帧视频图像当前第1页1 2 3 4 本文档来自技高网
...

【技术保护点】
一种有损解码视频图像的方法,其中,每帧视频图像被划分为多个宏块,其特征在于,该方法包括:将当前宏块的残差值与帧内预测值或帧间预测值相加得到当前宏块的d位比特的重建值并在第一缓存区进行缓存;其中,通过从第一缓存区读取帧内已解码的相邻宏块的d位比特的重建值进行帧内预测,得到当前宏块的帧内预测值;将当前宏块的d位比特的重建值向右移n位比特,得到当前宏块的d‑n位比特的重建值,对所述d‑n位比特的重建值进行滤波,或者,对当前宏块的d位比特的重建值进行滤波,将滤波后的d位比特的重建值向右移n位比特,得到并输出d‑n位比特的解码结果,n为大于1小于d的整数。

【技术特征摘要】

【专利技术属性】
技术研发人员:胡家鹏
申请(专利权)人:炬芯珠海科技有限公司
类型:发明
国别省市:广东;44

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

1