一种编解码方法及装置制造方法及图纸

技术编号:36071902 阅读:20 留言:0更新日期:2022-12-24 10:42
本公开是关于一种编解码方法及装置。该方法包括:接收图像的原始帧;将当前原始帧划分为N个宏块,并对N个宏块进行编码获得每个宏块的码流数据;其中,N为正整数;将当前原始帧划分为M个区域,并计算当前原始帧中各个区域对应的区域相似度;将编码后得到的码流数据及当前原始帧中各个区域对应的区域相似度融合成全帧码流,发送至解码端。本公开通过当前原始帧中各个区域对应的区域相似度与编码后的码流数据融合成全帧码流,发送至解码端,使得解码端能够自动识别解码错误。编码端基于接收的解码错误的区域编号,识别当前帧中识别出解码错误的区域,在下帧编码时仅在该某区域采取帧内编码恢复错误,其他区域不受影响,尽可能少的降低了码流。的降低了码流。的降低了码流。

【技术实现步骤摘要】
一种编解码方法及装置


[0001]本公开涉及图像处理
,尤其涉及一种编解码方法及装置。

技术介绍

[0002]在编解码系统中,出现错误是不可避免的情况。最常见的错误来源 是在网络传输中,由于网络丢包导致帧数据包部分或者整帧丢失,导致 后续帧解码时出现错误,常见的是花屏、马赛克等效果。还有就是由于 编码器绝大部分是有损编码,或者工作在有损编码模式下,因此编码会 产生画面上的损失,在一些特殊场景上,叠加上帧内参考和帧间参考, 有可能这种损失会逐渐叠加,导致出现比较严重和明显的损失,以至于 用户无法接受,这种属于小概率情况,但也存在。此外,由于编解码器 本身的一些设计或者兼容性问题,导致对某些特殊画面编出来的码流解 码后效果不理想,这种属于比较少见的情况,但是确实存在。
[0003]在出现数据错误后,解码器大部分情况下会执行正常解码流程,只 是解出来的画面是有问题的,例如花屏。用户能感知到这些问题,但是 解码器本身无法感知到错误,除非遇到极端场景,系统崩溃后重新启动, 但大部分情况下解码器都无法感知画面是有问题的。这就需要编解码系 统中存在错误恢复机制。
[0004]相关的错误恢复机制中:1)画面组的设置,编码系统规定在固定的 周期编码一个IDR帧,IDR是即时刷新帧,其中所有的宏块都按帧内编 码,不对之前编码的帧有任何参考。如果传输丢帧,解码由于参考帧丢 失而解码花屏,则在下一个画面组中的IDR帧到来时,所有参考关系重 建,错误立即恢复。这种是最常见的恢复机制,能够周期性的恢复错误, 在带宽不受限的情况下或者画面编出的码流比较低的情况下工作良好, 但在带宽敏感,网络环境比较差的情况下,由于每个IDR帧的码流都比 较大,会导致周期性的码流峰值,给传输带来压力,可能导致周期性卡 顿,影响整体效果;
[0005]2)采用周期性帧内刷新的机制,去掉了周期性编IDR帧,但是周期 性的会把本周期内的所有帧的某些部分强制按照帧内编码,则周期结束 后,相当于画面的每个部分都用帧内编码了一遍,恢复了帧间参考错误。 这种方式较好的避免了周期性IDR帧峰值,但只是将多出来的码流平摊 到了其他的帧上,整体码流仍是比较大的。另外,大部分正常情况下是 正常编解,没有错误的,但机制也在周期性的帧内刷新,会导致不必要 的额外码流;
[0006]3)解码端严格检查参考帧号,发现丢帧立即请求编码端发送IDR帧 以恢复错误。这种情况下可以不必设置周期性刷IDR帧,但这种情况下 由于检查的是帧号,帧号一般在码流的帧头结构中,只能解决一整帧数 据完全丢失的问题,对于部分数据缺失,或者非丢帧导致的编解码错误 则无法解决。
[0007]因此,有必要提供一种新的技术方案改善上述方案中存在的一个或者 多个问题。
[0008]需要说明的是,在上述
技术介绍
部分公开的信息仅用于加强对本公 开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现 有技术的信息。

技术实现思路

[0009]本公开的目的在于提供一种编解码方法及装置,进而至少在一定程 度上克服由于相关技术的限制和缺陷而导致的一个或者多个问题。
[0010]根据本公开实施例的第一方面,提供一种编码方法,该方法包括:
[0011]接收图像的原始帧;
[0012]将所述当前原始帧划分为N个宏块,并对N个所述宏块进行编码获 得每个所述宏块的码流数据;其中,N为正整数;
[0013]将所述当前原始帧划分为M个区域,并计算当前原始帧中各个区域 对应的区域相似度,所述当前原始帧中各个区域对应的区域相似度是指: 当前原始帧的重建帧中各个区域的像素值与上一原始帧的重建帧中对应 区域的像素值之间的相似度;其中,M为正整数;
[0014]将编码后得到的所述码流数据及所述当前原始帧中各个区域对应的 区域相似度融合成全帧码流,发送至解码端;
[0015]若接收到解码端发送的解码错误的区域的区域编号,则基于所述区 域编号识别出解码错误的区域,并对位于所述解码错误的区域的所有宏 块按照帧内编码进行编码。
[0016]本公开的实施例中,所述将所述当前原始帧划分为N个宏块,并对 N个所述宏块进行编码获得每个所述宏块的码流数据的步骤之后包括:
[0017]生成所述原始帧的重建帧,且以所述上一原始帧作为参考帧,生成 所述当前原始帧的所述重建帧。
[0018]本公开的实施例中,所述对N个所述宏块进行编码获得每个所述宏 块的码流数据的步骤包括:
[0019]对N个所述宏块进行帧内编码或对N个所述宏块进行帧间编码。
[0020]本公开的实施例中,所述区域相似度为余弦相似度,且所述余弦相 似度的计算公式为:
[0021][0022]其中,A
i
表示所述上一原始帧的所述重建帧的在每个所述区域的像素 值,n表示每个所述区域的像素值的总数量;B
i
表示所述当前原始帧的所 述重建帧在每个所述区域的像素值。
[0023]根据本公开实施例的第二方面,提供一种编码装置,该编码装置包 括:
[0024]采集模块,用于接收图像的原始帧;
[0025]编码模块,用于将所述当前原始帧划分为N个宏块,并对N个所述 宏块进行编码获得每个所述宏块的码流数据;其中,N为正整数;
[0026]第一区域相似度计算模块,用于将所述当前原始帧划分为M个区域, 并计算所述当前原始帧中各个区域对应的区域相似度,所述当前原始帧 中各个区域对应的区域相似度是指:当前原始帧的重建帧中各个区域的 像素值与上一原始帧的重建帧中对应区域的像素值之间的相似度;其中, M为正整数;
[0027]码流融合模块,用于将编码后得到的所述码流数据及所述当前原始 帧中各个区域对应的区域相似度融合成全帧码流,发送至解码端;
[0028]响应模块,用于若接收到解码端发送的解码错误的区域的区域编号, 则基于所述区域编号在当前帧中识别所述出现解码错误的区域,并对位 于所述解码错误的区域的所有宏块按照帧内编码进行编码。
[0029]根据本公开实施例的第三方面,提供一种解码方法,该方法包括:
[0030]接收编码端发送的全帧码流,并将所述全帧码流按照宏块进行解码, 得到当前重建帧;其中,所述全帧码流包括所述当前原始帧编码后的码 流数据及所述当前原始帧中各个区域对应的区域相似度;其中,所述当 前原始帧中各个区域的区域相似度是指:当前原始帧的重建帧中各个区 域的像素值与上一原始帧的重建帧中对应区域的像素值之间的相似度;
[0031]计算所述当前重建帧中各个区域对应的区域相似度,其中,所述当 前重建帧中各个区域对应的区域相似度是指:当前重建帧中各个区域的 像素值与上一重建帧中对应区域的像素值之间的相似度;
[0032]并将所述当前重建帧中各个区域对应的区域相似度与所述当前原始 帧中相同区域对应的区域相似度进行比较;
[0033]若存在区域相似度不相同的区域,则将该区域编号发送至编码端。本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种编码方法,其特征在于,该方法包括:接收图像的原始帧;将当前原始帧划分为N个宏块,并对N个所述宏块进行编码获得每个所述宏块的码流数据;其中,N为正整数;将所述当前原始帧划分为M个区域,并计算所述当前原始帧中各个区域对应的区域相似度,所述当前原始帧中各个区域对应的区域相似度是指:当前原始帧的重建帧中各个区域的像素值与上一原始帧的重建帧中对应区域的像素值之间的相似度;其中,M为正整数;将编码后得到的所述码流数据及所述当前原始帧中各个区域对应的区域相似度融合成全帧码流,发送至解码端;若接收到解码端发送的解码错误的区域的区域编号,则基于所述区域编号在当前帧中识别出解码错误的区域,并对位于所述解码错误的区域的所有宏块进行帧内编码。2.根据权利要求1所述方法,其特征在于,所述将当前原始帧划分为N个宏块,并对N个所述宏块进行编码获得每个所述宏块的码流数据的步骤之后还包括:生成所述原始帧的重建帧,且以所述上一原始帧作为参考帧,生成所述当前原始帧的所述重建帧。3.根据权利要求1所述方法,其特征在于,所述对N个所述宏块进行编码获得每个所述宏块的码流数据的步骤包括:对N个所述宏块进行帧内编码或对N个所述宏块进行帧间编码。4.根据权利要求1所述方法,其特征在于,所述区域相似度为余弦相似度,且所述余弦相似度的计算公式为:其中,A
i
表示所述上一原始帧的所述重建帧的在每个所述区域的像素值,n表示每个所述区域的像素值的总数量;B
i
表示所述当前原始帧的所述重建帧在每个所述区域的像素值。5.一种编码装置,其特征在于,该装置包括:采集模块,用于接收图像的原始帧;编码模块,用于将当前原始帧划分为N个宏块,并对N个所述宏块进行编码获得每个所述宏块的码流数据;其中,N为正整数;第一区域相似度计算模块,用于将所述当前原始帧划分为M个区域,并计算所述当前原始帧中各个区域对应的区域相似度,所述当前原始帧中各个区域对应的区域相似度是指:当前原始帧的重建帧中各个区域的像素值与上一原始帧的重建帧中对应区域的像素值之间的相似度;其中,M为正整数;码流融合模块,用于将编码后得到的所述码流数据及所述当前原始帧中各个区域对应的区域相似度融合成全帧码流,发送至解码端;响应模块,用于若接收到解码端发送的解码错误的区...

【专利技术属性】
技术研发人员:张路
申请(专利权)人:西安万像电子科技有限公司
类型:发明
国别省市:

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

1