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

技术编号:29465091 阅读:12 留言:0更新日期:2021-07-27 17:53
本公开提供一种图像编解码方法及装置,涉及计算机图像处理技术领域,能够解决现有技术中的视频编解码技术在分层后进行编码而造成得冗余数据量多的问题。具体技术方案为:首先获取待编码的原始帧,并将原始帧划分为M个宏块;然后对M个宏块进行编码获得每个宏块的码流数据;将M个宏块分为N层,获取每层宏块的码流数据,其中1≤N≤M;最后根据当前带宽数据,将N层宏块中的至少一层宏块发送至解码端。本公开用于图像编码和解码。

【技术实现步骤摘要】
一种图像编解码方法及装置
本公开涉及计算机图像处理
,尤其涉及一种图像编解码方法及装置。
技术介绍
由于计算机合成图像需要覆盖办公、游戏等多种场景,在对图像编解码时,实际环境的带宽和帧率也有差异,尤其是在网络带宽有限的情形下,一般需要渐进的显示图像来提升用户体验。现有的视频编解码技术是多基于JPEG(JointPhotographicExpertsGroup)格式编码的,特点是以块为单位进行DCT(DiscreteCosineTransform,离散余弦变换)变换和量化,对其结果进行分层传输。但是该技术中由于一个块的系数固定为64个,在分层的层数有所限制,且由于对JPEG的分层过程发生于JPEG的游程编码码环节之前,分层后还需要进行游程编码,分层越多,游程编码在每层数据后面添加标记符就越多,从而可能冗余数据量越多。
技术实现思路
本公开实施例提供一种图像编解码方法及装置,能够解决现有技术中的视频编解码技术在分层后进行编码而造成得冗余数据量多的问题。所述技术方案如下:根据本公开实施例的第一方面,提供一种图像编码方法,该方法包括:获取待编码的原始帧,并将所述原始帧划分为M个宏块;对所述M个宏块进行编码获得每个宏块的码流数据;将所述M个宏块分为N层,获取每层宏块的码流数据,其中1≤N≤M;根据当前带宽数据,将N层宏块中的至少一层宏块发送至解码端。本公开实施例提供的图像编码方法,首先获取待编码的原始帧,并将原始帧划分为M个宏块;然后对M个宏块进行编码获得每个宏块的码流数据;将M个宏块分为N层,获取每层宏块的码流数据,其中1≤N≤M;最后根据当前带宽数据,将N层宏块中的至少一层宏块发送至解码端。本公开提供的图像编码方法,可以设置任意数量的层数,能够适应于各种极端带宽情形,且编码后进行分层,不会带来任何冗余数据。在一个实施例中,对所述M个宏块进行编码获得每个宏块的码流数据之前,所述方法还包括:将所述M个宏块分为文字类和图片类,所述文字类用于指示像素值变化超过第一预设阈值的宏块,所述图片类用于指示像素值变化小于第二预设阈值的宏块;所述对所述M个宏块进行编码包括:对所述文字类的宏块采用文字块编码器进行编码;对所述图片类的宏块采用图片编码器进行编码。本公开实施例通过上述方法,根据不同的宏块像素值变化,将宏块分为文字类和图片类,有利于根据不同的宏块类型采用合适的编码器进行编码,编码效果更好。在一个实施例中,上述方法还包括:将所述M个宏块还分为其他类,对所述其他类的宏块采用扩展编码器进行编码。本公开实施例通过上述方法,可以支持将来扩展的其他编码器对宏块进行编码。在一个实施例中,将所述M个宏块分为N层包括:将所述原始帧划分为N*N/2个宏块的第一模板块;若N为偶数时,将所述第一模板块的左边第i行分别划分到第1到N-1的奇数递增层,将所述第一模板块的右边第i行分别划分到第N到2的偶数递减层,其中i≤N/2;若N为奇数,将所述第一模板块的左边第i行分别划分到第1到N的奇数递增层,将所述第一模板块的右边第i行分别划分到第N-1到2的偶数递减层;将所述第一模板块的第i+1行的左边部分依次向右偏移L个宏块,最右边的宏块循环至最左边;将所述第一模板块的第i+1行的右边部分则依次向左偏移L个宏块,最左边的宏块循环至最右边;循环至完成所述第一模板块中每个宏块的分层。本公开实施例通过上述方法,将原始帧宏块进行离散分层,当渐进式发送时,宏块间的位置越离散,填充后整帧效果相对越好,越有利于提升用户体验。在一个实施例中,将所述M个宏块分为N层包括:将所述原始帧划分为(2*N)*N个宏块的第二模板块;将所述第二模板块的左边第j行分别划分到第1到N层,将所述第二模板块的右边第j行分别划分到第N到1层,其中j≤N;将所述第二模板块的第j+1行的左边部分依次向右偏移K个宏块,最右边的宏块循环至最左边;将所述第二模板块的第j+1行的右边部分则依次向左偏移K个宏块,最左边的宏块循环至最右边;循环至完成所述第二模板块中每个宏块的分层。本公开实施例通过上述方法,将原始帧宏块进行离散分层,当渐进式发送时,宏块间的位置越离散,填充后整帧效果相对越好,越有利于提升用户体验。在一个实施例中,根据当前带宽数据,将N层宏块中的至少一层宏块发送至解码端包括:获取当前带宽数据和帧率;根据所述当前带宽数据和帧率,获取当前帧允许发送的最大码流;根据所述N层宏块中每层宏块的码流数据,将第A层至第B层之间的宏块发送给解码端,0<A≤B≤N。本公开实施例通过上述方法,根据当前带宽数据和帧率,计算每帧的码流可用大小,从而确定当前帧编出的码流最多能发送多大。根据本公开实施例的第二方面,提供一种图像解码方法,该方法包括:接收编码端发送的编码数据;对所述编码数据进行分层、解码获取分层数据;根据所述分层数据对未接收到的空白宏块进行填充获取填充数据;将所述分层数据和填充数据拼接获取帧数据。本公开实施例提供的图像解码方法,首先接收编码端发送的编码数据;然后对所述编码数据进行分层、解码获取分层数据;根据所述分层数据对未接收到的空白宏块进行填充获取填充数据;最后将所述分层数据和填充数据拼接获取帧数据。本公开提供的图像编码方法,能够对解码端未接收到的宏块进行填充,显示效果好,用户体验好。在一个实施例中,根据所述分层数据对未接收到的空白宏块进行填充包括:根据空白宏块左侧和右侧最近的已解码的像素获取空白宏块中Xi的横向像素值;根据空白宏块上侧和下侧最近的已解码的像素获取空白宏块中Xi的纵向像素值;根据所述Xi的横向像素值和所述Xi的纵向像素值获取所述Xi的最终像素值;根据所述Xi的最终像素值对所述空白宏块进行填充。在一个实施例中,根据第一公式获取空白宏块Xi的横向像素值,所述第一公式包括:Xi的横向像素值=Li的像素值+DistLX*(Ri的像素值-Li的像素值)/DistLR;其中,所述Li像素值为所述空白宏块左侧最近的已解码的像素的值;所述Ri像素值为所述空白宏块右侧最近的已解码的像素的值;所述DistLX为所述Li与所述Xi之间的距离,以像素为单位;所述DistLR为所述Li与所述Ri之间的距离,以像素为单位。根据第二公式获取空白宏块Xi的纵向像素值,所述第二公式包括:Xi的纵向像素值=Ui的像素值+DistUX*(Di的像素值-Ui的像素值)/DistUD;其中,所述Ui像素值为所述空白宏块上侧最近的已解码的像素的值;所述Di像素值为所述空白宏块下侧最近的已解码的像素的值;所述DistUX为所述Ui与所述Xi之间的距离,以像素为单位;所述DistUD为所述Ui与所述Di之间的距离,以像素为单位。根据第三公式获取空白宏块本文档来自技高网...

【技术保护点】
1.一种图像编码方法,其特征在于,所述方法包括:/n获取待编码的原始帧,并将所述原始帧划分为M个宏块;/n对所述M个宏块进行编码获得每个宏块的码流数据;/n将所述M个宏块分为N层,获取每层宏块的码流数据,其中1≤N≤M;/n根据当前带宽数据,将N层宏块中的至少一层宏块发送至解码端。/n

【技术特征摘要】
1.一种图像编码方法,其特征在于,所述方法包括:
获取待编码的原始帧,并将所述原始帧划分为M个宏块;
对所述M个宏块进行编码获得每个宏块的码流数据;
将所述M个宏块分为N层,获取每层宏块的码流数据,其中1≤N≤M;
根据当前带宽数据,将N层宏块中的至少一层宏块发送至解码端。


2.根据权利要求1所述的图像编码方法,其特征在于,所述对所述M个宏块进行编码获得每个宏块的码流数据之前,所述方法还包括:
将所述M个宏块分为文字类和图片类,所述文字类用于指示像素值变化超过第一预设阈值的宏块,所述图片类用于指示像素值变化小于第二预设阈值的宏块;
所述对所述M个宏块进行编码包括:
对所述文字类的宏块采用文字块编码器进行编码;
对所述图片类的宏块采用图片编码器进行编码。


3.根据权利要求2所述的图像编码方法,其特征在于,所述方法还包括:
将所述M个宏块还分为其他类,对所述其他类的宏块采用扩展编码器进行编码。


4.根据权利要求1所述的图像编码方法,其特征在于,所述将所述M个宏块分为N层包括:
将所述原始帧划分为N*N/2个宏块的第一模板块;
若N为偶数时,将所述第一模板块的左边第i行分别划分到第1到N-1的奇数递增层,将所述第一模板块的右边第i行分别划分到第N到2的偶数递减层,其中i≤N/2;
若N为奇数,将所述第一模板块的左边第i行分别划分到第1到N的奇数递增层,将所述第一模板块的右边第i行分别划分到第N-1到2的偶数递减层;
将所述第一模板块的第i+1行的左边部分依次向右偏移L个宏块,最右边的宏块循环至最左边;将所述第一模板块的第i+1行的右边部分则依次向左偏移L个宏块,最左边的宏块循环至最右边;
循环至完成所述第一模板块中每个宏块的分层。


5.根据权利要求1所述的图像编码方法,其特征在于,所述将所述M个宏块分为N层包括:
将所述原始帧划分为(2*N)*N个宏块的第二模板块;
将所述第二模板块的左边第j行分别划分到第1到N层,将所述第二模板块的右边第j行分别划分到第N到1层,其中j≤N;
将所述第二模板块的第j+1行的左边部分依次向右偏移K个宏块,最右边的宏块循环至最左边;将所述第二模板块的第j+1行的右边部分则依次向左偏移K个宏块,最左边的宏块循环至最右边;
循环至完成所述第二模板块中每个宏块的分层。


6.根据权利要求1所述的图像编码方法,其特征在于...

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

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

1