CN110996127B - 图像编解码方法、设备及系统 - Google Patents

图像编解码方法、设备及系统 Download PDF

Info

Publication number
CN110996127B
CN110996127B CN201911167506.0A CN201911167506A CN110996127B CN 110996127 B CN110996127 B CN 110996127B CN 201911167506 A CN201911167506 A CN 201911167506A CN 110996127 B CN110996127 B CN 110996127B
Authority
CN
China
Prior art keywords
macro block
frame
copy
mapping table
macroblock
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201911167506.0A
Other languages
English (en)
Other versions
CN110996127A (zh
Inventor
张路
范志刚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xian Wanxiang Electronics Technology Co Ltd
Original Assignee
Xian Wanxiang Electronics Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Xian Wanxiang Electronics Technology Co Ltd filed Critical Xian Wanxiang Electronics Technology Co Ltd
Priority to CN201911167506.0A priority Critical patent/CN110996127B/zh
Publication of CN110996127A publication Critical patent/CN110996127A/zh
Application granted granted Critical
Publication of CN110996127B publication Critical patent/CN110996127B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display

Abstract

本公开提供一种图像编解码方法、设备及系统,涉及图像处理技术领域,能够在保证原始帧内容不变,量化指标不变的情况下,降低压缩后的码流大小,利于在室外等低质量网络条件下的图像传输。具体技术方案为:先对整帧图像分为宏块,再对整帧量化,然后对各宏块进行分类和重排,使得具有类似颜色特征的宏块聚集在一个区域。经过这种处理后,整帧图像就具有了局部的规律性,再使用字典压缩算法压缩可获取较高的压缩比。本发明用于图像编解码。

Description

图像编解码方法、设备及系统
技术领域
本公开涉及图像处理技术领域,尤其涉及图像编解码方法、设备及系统。
背景技术
目前,图像根据其内容产生方式不同可分为自然图像和计算机合成图像两大类。自然图像指的是自然界真实存在的景色,比如,人们生活中看到的电影、电视内容均为自然图像;计算机合成图像是采用计算机图形学技术,通过计算机上显卡计算得到的人造图像,例如办公软件word的界面、游戏画面、网页文字、CAD软件的矢量图、渲染图等。
现有技术在图像编解码方面主要有两种方式。其中,第一种方式是每帧图像中的每个部分都被视为同等地位,均采用统一的方法对数据进行编码,压缩方法多采用帧内预测和帧间预测进行压缩。这种编码方式的特点是能够对各种类型的图像编码,缺点是没有考虑到“屏幕视频图像”的特殊性,即没有利用计算机合成图像的特性做出针对性的优化,编码效果不是最优。第二种方式是在编码前首先将“屏幕视频图像”进行元素识别并分类,将不同类型的元素使用不同的编码器进行编码,这种方式专用性和针对性较强,但是一个关键问题是,随着移动互联网时代的蓬勃发展,具有实时性要求的图像传输的应用场景越来越多,清晰度要求也越来越高。清晰度越高,每帧图像的码流就越大,如何在复杂的网络场景例如室外无线网络下仍能流畅传输图像序列是一个难题。
发明内容
本公开实施例提供一种图像编解码方法、设备及系统,能够在保证原始帧内容不变,量化指标不变的情况下,降低压缩后的码流大小,利于在室外等低质量网络条件下的图像传输。所述技术方案如下:
根据本公开实施例的第一方面,提供一种图像编码方法,该方法包括:
获取原始帧,原始帧包括多个宏块;
对原始帧中的每个宏块按照预设规则重新排列,得到乱序帧、第一映射表和宏块类型表,第一映射表用于指示乱序帧中每个宏块在原始帧中的位置信息,宏块类型表用于指示乱序帧中每个宏块的宏块类型,宏块类型包括图片宏块、左拷贝宏块和上拷贝宏块;
根据宏块类型表剔除乱序帧中的左拷贝宏块和上拷贝宏块,得到紧凑帧和第二映射表,第二映射表用于指示紧凑帧中的每个宏块在乱序帧中的位置信息;
采用字典压缩算法对紧凑帧进行压缩,得到字典压缩码流;
将字典压缩码流、宏块类型表、第一映射表和第二映射表压缩后的融合码流发送给解码设备。
本公开实施例通过对整帧图像进行分类和重排,将具有类似颜色特征的宏块聚集在一个区域,消除宏块间的耦合性;进而剔除左拷贝宏块和上拷贝宏块,再使用字典压缩算法进行压缩,提高压缩效率,因此,本公开实施例能够在保证原始帧内容不变,量化指标不变的情况下,能降低压缩后的码流大小,利于在例如室外等低质量网络条件下传输。
根据本公开实施例的第二方面,提供一种图像解码方法,包括:
解析融合码流得到字典压缩码流、第一映射表、第二映射表、宏块类型表,第一映射表用于指示乱序帧中每个宏块在原始帧中的位置信息,第二映射表用于指示紧凑帧中每个宏块在乱序帧中的位置信息,宏块类型表用于指示乱序帧中每个宏块的宏块类型,宏块类型包括图片宏块、左拷贝宏块和上拷贝宏块;
对字典压缩码流进行解码处理,得到紧凑帧;
根据第二映射表和宏块类型表对紧凑帧进行处理,得到乱序帧;
根据第一映射表对乱序帧进行重建,得到重建后的原始帧。
本公开实施例通过对整帧图像进行分类和重排,将具有类似颜色特征的宏块聚集在一个区域,消除宏块间的耦合性;进而剔除左拷贝宏块和上拷贝宏块,再使用字典压缩算法进行压缩,提高压缩效率,因此,本公开实施例能够在保证原始帧内容不变,量化指标不变的情况下,能降低压缩后的码流大小,利于在例如室外等低质量网络条件下传输。
根据本公开实施例的第三方面,提供一种编码设备,包括:
获取模块,用于获取原始帧,原始帧包括多个宏块;
重排模块,用于对原始帧中的每个宏块按照预设规则重新排列,得到乱序帧、第一映射表和宏块类型表,第一映射表用于指示乱序帧中每个宏块在原始帧中的位置信息,宏块类型表用于指示乱序帧中每个宏块的宏块类型,宏块类型包括图片宏块、左拷贝宏块和上拷贝宏块;
剔除模块,用于根据宏块类型表剔除乱序帧中的左拷贝宏块和上拷贝宏块,得到紧凑帧和第二映射表,第二映射表用于指示紧凑帧中的每个宏块在乱序帧中的位置信息;
压缩模块,用于采用字典压缩算法对紧凑帧进行压缩,得到字典压缩码流;
融合模块,用于将字典压缩码流、宏块类型表、第一映射表和第二映射表压缩后的融合码流发送给解码设备。
根据本公开实施例的第四方面,提供一种解码设备,包括:
解析模块,用于解析融合码流得到字典压缩码流、第一映射表、第二映射表、宏块类型表,第一映射表用于指示乱序帧中每个宏块在原始帧中的位置信息,第二映射表用于指示紧凑帧中每个宏块在乱序帧中的位置信息,宏块类型表用于指示乱序帧中每个宏块的宏块类型,宏块类型包括图片宏块、左拷贝宏块和上拷贝宏块;
解码模块,用于对字典压缩码流进行解码处理,得到紧凑帧;
处理模块,用于根据第二映射表和宏块类型表对紧凑帧进行处理,得到乱序帧;
重建模块,用于根据第一映射表对乱序帧进行重建,得到重建后的原始帧。
根据本公开实施例的第五方面,提供一种编码设备,该编码设备包括处理器和存储器,存储器中存储有至少一条计算机指令,指令由处理器加载并执行以实现第一方面以及第一方面的任一实施例所描述的图像编码方法中所执行的步骤。
根据本公开实施例的第六方面,提供一种解码设备,该解码设备包括处理器和存储器,存储器中存储有至少一条计算机指令,指令由处理器加载并执行以实现第一方面以及第一方面的任一实施例所描述的图像解码方法中所执行的步骤。
根据本公开实施例的第七方面,提供一种图像编解码系统,该图像编解码系统包括第五方面对应实施例所描述的编码设备和第六方面对应实施例所描述的解码设备。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1是本公开实施例提供的一种图像编码方法的流程图;
图2是本公开实施例提供的一种图像解码方法的流程图;
图3是本公开实施例提供的一种图像编解码系统的结构示意图;
图4是本公开实施例提供的编码端宏块重排模块的流程示意图;
图5是本公开实施例提供的一级映射表的示意图;
图6是本公开实施例提供的紧凑帧生成模块的流程示意图;
图7是本公开实施例提供的紧凑帧的生成示意图;
图8是本公开实施例提供的紧凑帧解除模块的流程示意图;
图9是本公开实施例提供的原始帧的示意图;
图10是本公开实施例提供的乱序帧的示意图;
图11是本公开实施例提供的一种编码设备的结构图;
图12是本公开实施例提供的一种解码设备的结构图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
本公开实施例提供一种图像编码方法,应用于编码设备,如图1所示,该图像编码方法包括以下步骤:
101、获取原始帧。
在本公开实施例中,以对计算机合成图像的编解码为例,因此,原始帧可以是通过屏幕录像等操作采集到的屏幕帧。原始帧的数据格式可以是YUV格式数据或RGB格式数据,本方案采用RGB格式数据,如果是YUV格式数据的话将其转换为RGB格式即可。另外,原始帧中包括多个宏块。以1920*1080分辨率的帧来描述,宏块划分大小为常用的16*16大小,如设定为其他大小的宏块,也可以应用本公开技术方案。
102、对原始帧中的每个宏块按照预设规则重新排列,得到乱序帧、第一映射表和宏块类型表。
在本公开实施例中,乱序帧中的多个宏块的位置和原始帧相比发生了变化,但经过重新排列后,具备相似颜色特征的宏块会集中在一个区域,形成具有区域性规律的乱序数据。另外,第一映射表用于指示乱序帧中每个宏块在原始帧中的位置信息,宏块类型表用于指示乱序帧中每个宏块的宏块类型,宏块类型包括图片宏块、左拷贝宏块和上拷贝宏块。其中,图片宏块是需要真正参与内容编码的宏块;如果一个宏块和它右边的宏块内容完全相同,则该宏块被归类为“左拷贝宏块”(Copy From Left,CFL),意思是该宏块的内容可以由其左邻宏块推断出来,对它无需另外的压缩和解压;同理,如果一个宏块和它上面的宏块完全相同,则该宏块被归类为“上拷贝宏块”(Copy From Up,CFU),意思是该宏块的内容可以由其上面宏块推断出来,对它无需另外的压缩和解压。也就是说,编码端只需要将对应宏块标志置为CFL或CFU,解码端接收到标志后,从左边、上边的宏块拷贝数据作为当前CFL或CFU宏块的解码后内容即可。由此可见,CFL和CFU宏块所占码流是极小的。
为了提高编码效率,可以对原始帧进行量化处理后再进行重新排列。具体的,对原始帧中的每个像素进行调色板量化处理,得到索引帧,进而,对索引帧中的每个宏块按照预设规则进行重新排列,得到乱序帧、第一映射表和宏块类型表。在本公开实施例中,可以采用固定调色板或动态调色板对原始帧进行量化,量化后将一个像素的RGB三个分量映射为1个字节,该字节即为索引。需要说明的是,若采用动态调色板,则量化后的码流中包含索引数据和调色板数据;若采用固定调色板,则可在编解码两端预置调色板数据,那么,量化后的码流中可仅包含索引数据,无需再携带调色板数据。
在本公开实施例中,对索引帧中的每个宏块按照预测规则进行重新排列,得到乱序帧、第一映射表和宏块类型表包括:
对索引帧中的每个宏块进行直方图统计,获取每个宏块的特征参数,每个宏块的特征参数为每个宏块对应的直方图中频数最多的N个索引值;
根据每个宏块的特征参数,对索引帧中的所有宏块按照聚类算法进行分类,得到K个聚类;
将索引帧中的每个宏块按照所属聚类重新排列,得到乱序帧和第一映射表;
确定乱序帧中每个宏块的宏块类型,得到宏块类型表。
具体的,由于每个宏块的像素都量化为一个索引值,那么,直方图统计的是每个索引值对应的像素数目。以一个宏块为例,在直方图统计完成后,统计出现频数最多的N个索引值,将这N个索引值按照频数从大到小排列,并作为该宏块的特征参数,以此类推,得到索引帧中所有宏块的特征参数。进而,根据每个宏块的特征参数,采用聚类算法对索引帧中所有宏块进行分类,得到K个聚类;在分类完成后,将索引帧中每个宏块所属聚类按照从左到右,从上到下的光栅顺序进行重新排列,也就是说,将每个聚类中的宏块聚集放置在一起。由于索引帧已经乱序,为了使解码端能够重新恢复,则需要记录索引帧中每个宏块在原始帧中的位置(如横纵坐标),即第一映射表。
在获取到乱序帧后,将乱序帧中相邻两个宏块依次进行比较,若一宏块与其左邻宏块的颜色索引值相同,则从第一映射表中查找该宏块与左邻宏块的原始位置,从原始帧中读取这两个宏块的原始数据进行比较,若原始数据也完全相同,则将该宏块确定为左拷贝宏块;若一宏块与其上邻宏块的颜色索引值相同,则从第一映射表中查找该宏块与上邻宏块的原始位置,从原始帧中读取这两个宏块的原始数据进行比较,若原始数据也完全相同,则将该宏块确定为上拷贝宏块;非左拷贝宏块和上拷贝宏块,则确定为图片宏块。在对索引帧中的所有宏块的宏块类型确定完成后,得到该索引帧的宏块类型表。
103、根据宏块类型表剔除乱序帧中的左拷贝宏块和上拷贝宏块,得到紧凑帧和第二映射表。
由于左拷贝宏块和上拷贝宏块不参与压缩,因此,需要将左拷贝宏块和上拷贝宏块剔除,这样不仅可以去除宏块间的耦合,还可以减少不必要的计算并降低码流。具体的,参考宏块类型表,将左拷贝宏块和上拷贝宏块剔除,当一个左拷贝宏块或上拷贝宏块被剔除后,后面的宏块按照逆光栅顺序,即从下到上,从右到左的顺序依次前移,最终形成紧凑帧,紧凑帧中仅包含图片宏块。另外,为了解码端能够恢复出乱序帧,则需要记录紧凑帧中每个图片宏块在乱序帧中的位置信息,第二映射表则用于保存紧凑帧中每个图片宏块在乱序帧中的位置信息。
104、采用字典压缩算法对紧凑帧进行压缩,得到字典压缩码流。
由于在紧凑帧中,具备相似颜色特征的宏块会集中在一个区域,整帧图像可划分为多个区域,因此,可以对紧凑帧中不同区域可采用不同的字典压缩算法并行进行压缩,提高待编码数据在字典区的命中率,提高压缩效率和压缩比。
105、将字典压缩码流、宏块类型表、第一映射表和第二映射表压缩后的融合码流发送给解码设备。
具体的,由于字典压缩码流、宏块类型表、第一映射表和第二映射表中存储有不同的内容,因此,在向解码设备发送之前,一般需要进行融合,比如:另外创建一块大的内存,把这些数据按顺序放到这个内存里整体传输;或者,也可以在不同的数据结构之间增加一些分割字节、分割字符串之类的方便解码端识别。
若采用动态调色板对原始帧中的每个像素进行量化处理,则需要加上生成的动态调色板数据,也就是说,将字典压缩码流、宏块类型表、第一映射表、第二映射表以及动态调色板数据压缩后的融合码流发送给解码设备。
本公开实施例提供的图像编解方法,获取原始帧,对原始帧中的每个宏块按照预设规则重新排列,得到乱序帧、第一映射表和宏块类型表,根据宏块类型表剔除乱序帧中的左拷贝宏块和上拷贝宏块,得到紧凑帧和第二映射表,采用字典压缩算法对紧凑帧进行压缩,得到字典压缩码流,将字典压缩码流、宏块类型表、第一映射表和第二映射表压缩后发送给解码设备。本公开实施例通过对整帧图像进行分类和重排,将具有类似颜色特征的宏块聚集在一个区域,消除宏块间的耦合性;进而剔除左拷贝宏块和上拷贝宏块,再使用字典压缩算法进行压缩,提高压缩效率,因此,本公开实施例能够在保证原始帧内容不变,量化指标不变的情况下,能降低压缩后的码流大小,利于在例如室外等低质量网络条件下传输。
本公开实施例提供一种图像解码方法,该方法应用于解码设备,参考图2所示,该图像解码方法包括以下步骤:
201、解析融合码流得到字典压缩码流、第一映射表、第二映射表、宏块类型表。
第一映射表用于指示乱序帧中每个宏块在原始帧中的位置信息,第二映射表用于指示紧凑帧中每个宏块在乱序帧中的位置信息,宏块类型表用于指示乱序帧中每个宏块的宏块类型,宏块类型包括图片宏块、左拷贝宏块和上拷贝宏块。需要说明的是,解码设备所解析的融合码流对应编码设备融合的多项数据流,同时,此处所描述的原始帧、乱序帧、紧凑帧和图1对应的图像编码方法中的描述是一致的,此处不再赘述。
在一个实施例中,若编码端和解码端设备采用动态调色板,则解析融合码流后除了得到字典压缩码流、第一映射表、第二映射表和宏块类型表,还包括动态调色板数据;若编码端和解码端设备采用固定调色板,则可以预先在编码端和解码端预先设置固定调色板数据,那么,融合码流中无需携带固定调色板数据,解码端设备解析融合码流后得到字典压缩码流、第一映射表、第二映射表和宏块类型表。
202、对字典压缩码流进行解码处理,得到紧凑帧。
对字典压缩数据采用对应的字典压缩算法进行解码,解码后生成的数据对应编码端的紧凑帧。
203、根据第二映射表和宏块类型表对紧凑帧进行处理,得到乱序帧。
由于第二映射表存储有紧凑帧中每个宏块在乱序帧中的位置信息,因此,参考第二映射表确定并移动紧凑帧中的宏块到紧凑化处理之前的对应位置,其余位置的宏块为左拷贝宏块或上拷贝宏块,此时,查询宏块类型表获知左拷贝宏块或上拷贝宏块的位置,通过拷贝邻块的宏块将左拷贝宏块和上拷贝宏块灰度出来,得到一个完整的乱序帧。
若在编码端对原始帧中每个宏块的每个像素进行调色板量化处理,那么,在解码端需要进行反量化处理。那么,根据第二映射表和宏块类型表对紧凑帧进行处理,得到乱序帧包括:根据第二映射表对紧凑帧进行解除处理,得到未填充左拷贝宏块和右拷贝宏块的乱序索引帧;对未填充左拷贝宏块和右拷贝宏块的乱序索引帧进行反量化处理,得到未填充左拷贝宏块和右拷贝宏块的乱序帧;根据宏块类型表对未填充左拷贝宏块和右拷贝宏块的乱序帧进行填充,得到完整的乱序帧。通过先反量化再填充的处理,能够提高解码速率。需要说明的是,若编码端和解码端采用动态调色板,则根据解析融合码流得到的动态调色板数据对未填充左拷贝宏块和右拷贝宏块的乱序索引帧进行反量化处理。
当然,也可以根据第二映射表将紧凑帧中的宏块移动到紧凑化处理之前的对应位置,在根据宏块类型表获知左拷贝宏块和上拷贝宏块的位置,通过拷贝邻块将左拷贝宏块和上拷贝宏块恢复出来,得到完整的索引帧,然后根据调色板数据对索引帧进行反量化,得到乱序帧。
204、根据第一映射表对乱序帧进行重建,得到重建后的原始帧。
由于乱序帧的宏块位置记录在第一映射表中,因此,根据第一映射表即可将乱序帧中的宏块进行反重排,重建得到原始帧。
本公开实施例提供的图像编解方法,解析融合码流得到字典压缩码流、第一映射表、第二映射表、宏块类型表;对字典压缩码流进行解码处理,得到紧凑帧;根据第二映射表和宏块类型表对紧凑帧进行处理,得到乱序帧;根据第一映射表对乱序帧进行重建,得到重建后的原始帧。本公开实施例通过对整帧图像进行分类和重排,将具有类似颜色特征的宏块聚集在一个区域,消除宏块间的耦合性;进而剔除左拷贝宏块和上拷贝宏块,再使用字典压缩算法进行压缩,提高压缩效率,因此,本公开实施例能够在保证原始帧内容不变,量化指标不变的情况下,能降低压缩后的码流大小,利于在例如室外等低质量网络条件下传输。
基于上述图1对应的实施例提供的编码方法和图2对应的实施例提供的解码方法,本公开另一实施例提供一种图像编解码方法,参照图3所示是本公开所提供的计算机合成图像编解码系统的主要组件框图,下面对各组件进行描述,在后续的内容中,还会针对其中的某些组件进一步描述其工作流程。下面对编码端和解码端各组件和图像编解码过程进行详细描述。
一、对编码端各组件详述
S101:原始帧数据
原始帧数据可以YUV格式数据或RGB格式数据,本方案采用RGB格式数据,如果是YUV格式数据的话将其转换为RGB格式即可。在本公开实施例中,原始帧数据可以是通过屏幕录像等操作采集到的屏幕帧。
在本公开实施例中,以1920*1080分辨率的帧来描述,且宏块划分大小为常用的16*16大小,如设定为其他大小的宏块,也可以应用本公开技术方案。
S102:调色板量化模块
为保证实时性,提高编解码速度,本公开实施例采取固定256色调色板;如果实时性要求较低,或硬件计算性能非常好,也可以采取动态调色板。使用调色板对RGB像素进行量化,即将一个像素的RGB三个分量(常常是3个字节)映射为1个字节,这个字节叫做“索引”。索引值在0~255之间,分别代表256种RGB颜色值,索引号和它们对应的RGB颜色值的映射表,就叫做调色板,在量化后的码流中,应当包含索引数据和调色板。本公开实施例由于是固定值的256色调色板,在编解码两端的调色板模块(S106和S114)中都预置了调色板数据,在压缩后的码流中,就无需再携带调色板数据了;在编码端后续的环节中,帧中的每个像素都由1个字节的索引值代替,即由RGB帧变为了索引帧。
S103:宏块重排模块
宏块重排模块对原始帧在排列上无规律的宏块数据进行分析后重新排列,从而得到一帧具有区域性规律的乱序数据,这里的“乱序”指的是图像帧中多个宏块的位置和原始图相比发生了改变,但具备相同颜色特征的宏块会相对集中在一个区域。参考图4所示对该模块的工作流程的详细描述。
需要说明的是,由于字典压缩算法对具有周期性的数据压缩比高,因此,宏块重排模块对帧图像的宏块进行重排和分期的目的就是:通过重新分区排列,使得原始帧中各个宏块内容更具有周期性,从而增加CFL和CFU的个数以达到提升压缩比的目的,同时消除不同区域之间的耦合性以支持并行压缩;
S104:紧凑帧生成模块
紧凑帧生成模块的主要作用是从S103中生成的乱序索引数据帧中,剔除预测宏块(CFL/CFU),并得到剔除预测宏块后的宏块数据。预测宏块不参与压缩,因此在进入字典压缩环节之前,将其剔除可减少不必要的计算并降低码流。剔除掉帧内的CFL/CFU宏块后,其右边的宏块以向左、向上的顺序依次移动,最终形成紧凑帧数据;紧凑帧数据虽然名字带“帧”字,但由于将CFL/CFU宏块剔除了,其大小可能并不满一帧大小。在紧凑帧数据送交字典压缩模块压缩时,传入它的真实数据大小即可。
S105:字典压缩模块
采用不同的字典压缩算法,如zlib、LZ4、LZ77等算法,对紧凑帧数据进行压缩,得到字典压缩码流;本方案采取LZ4算法。字典压缩算法的共性是对于一帧画面中图像元素分布规律、且周期性在字典大小以内的图像压缩效果较好。
S107:宏块类型表(MB Type table)
用于记录宏块重排后的乱序帧中每个宏块的类型。本方案中,有三种类型,图片宏块即需要字典压缩的宏块,以及CFL和CFU两种预测宏块。
S108:一级映射表Map1
用于记录乱序帧中,每个宏块在原始帧内的位置。
S109:二级映射表Map2
在由乱序帧生成紧凑帧的过程中,为了解码端能重新恢复,需要记录紧凑帧中每个宏块在乱序帧中的位置,该二级映射表记录这个信息。
S110:码流融合模块
将图片块字典压缩后的数据、Map1、Map2和宏块类型表融合后传输给接收端,这就是最终的压缩码流。如果采用了动态调色板,这里还要加上动态生成的调色板数据。
具体的,图片块字典压缩后的数据、Map1、Map2和宏块类型表是不同的数据结构即不同的对象,里面存储的不同的内容。在向接收端发送前,一般需要进行融合,比如:另外创建一块大的内存,把这些数据按顺序放到这个内存里整体传输;或者,也可以在不同的数据结构之间增加一些分割字节、分割字符串之类的方便解码端识别。
二、对解码端各组件进行详述。
S111:解融合模块
解融合模块用于解出S110中融合的多项数据流,从而生成和编码端对应的三张表(一级映射表Map1、二级映射表Map2和宏块类型表)和字典压缩码流。需要说明的是,如果系统应用的是动态调色板,除了解融合得到上述三张表和字典压缩码流,还包括当前帧所用的调色板数据。
S116:字典解压模块
字典解压模块用于对解融合模块解除的字典压缩码流进行解压,解压后生成的数据对应编码端生成的紧凑帧。
S117:紧凑帧解除模块
紧凑帧解除模块用于参考二级映射表Map2对紧凑帧进行解除操作,该模块的输出对应编码端的乱序的索引帧,此时,乱序的索引帧中未填充CFL宏块和CFU宏块。
S118:反量化模块
反量化模块用于对乱序的索引帧进行反量化。具体的,遍历乱序索引帧中每个像素的索引值,通过查询S114调色板模板中的调色板数据,将索引值转换为3字节的RGB值;在这个环节中还需要参考S113宏块类型表,对于CFL/CFU宏块所处的位置,跳过反量化操作;该步骤结束后,乱序索引帧变为乱序的RGB帧,且其中CFL/CFU宏块的位置内的像素为无效值,则该帧数据简称存在“CFL/CFU洞”。
S119:CFL/CFU重建模块
由于来自S118的乱序RGB帧中含有“CFL/CFU洞”,因此,CFL/CFU重建模块用于参考S113宏块类型表,定位到乱序RGB帧所有的CFL宏块,将其内容赋值为其左邻宏块的RGB内容;同理将所有CFU宏块的内容赋值为其上邻宏块的RGB内容;至此填洞完毕,得到一个完整但乱序的RGB帧。
S120:宏块反重排模块
参考一级映射表Map1,将乱序RGB帧中每个宏块移动到原始帧对应位置,完成原始帧的解码重建。
根据上述描述,下面进行具体描述。
图4是编码端宏块重排模块流程图。其主要步骤包括:
S201:接收调色板量化模块的结果,即索引帧数据。
S202:首先遍历全帧每个宏块,每次处理一个宏块。本步骤判断是否所有宏块处理完毕,如是,转S205;如否,转S203。
S203:对当前宏块进行直方图统计。由于当前宏块的每个像素都是一个索引值,直方图统计的是每个索引值对应的像素数目。
S204:直方图统计完毕后,统计出现频数最多的4个索引值,将这4个索引值依频数从大到小排列,并记录为{x1,x2,x3,x4}。将一个宏块视为一个样本点的话,那么{x1,x2,x3,x4}就是标记这个样本点的四维坐标,该坐标将作为本宏块的特征参数参与S205的聚类算法。如果某宏块内的索引值总共不足4个,则以x4,x3,x2,x1顺序复制,即如果没有x4,则x4=x3,如果没有x3,则x4=x3=x2,以此类推。
S205:所有宏块的4个特征参数均统计完毕,对一帧的所有宏块进行聚类算法,从而对各个宏块进行分类。
具体的,本公开实施例采用K-means聚类算法,将每个宏块的4个特征参数作为4个坐标,K取5,这是一个经验值;根据场景和具体应用不同,K也可以取其他经验值。本公开实施例中,将把所有宏块分为5个区域。K-means是一种用于分类的机器学习算法,它通过计算样本点之间坐标的距离(欧氏距离、曼哈顿距离等等),来将特征相似的样本点归为一类,最终将所有样本点归为K类。这里的K值是经验值,实际应用时,K值可以按具体应用场景进行设置和调整;例如,对于办公场景,可能多是些文档、桌面、窗口、应用程序界面之类的大色块分布的,那么K就可以设的小一些,分类少一些;如果当前是比较复杂的场景,K可以设的大一些;具体设多少,需要不断尝试,找一个效果最好的K值;机器学习算法实现大部分都少不了调参。
样本点是机器学习中的一个概念,分类算法是机器学习算法,要把什么东西分类,那么,每个这个东西就被称为一个样本点。本发明中,样本点指的就是一个宏块。以1920*1080帧大小为例,共被划分为8160个16*16的宏块;那么要对这8160个宏块进行分类,就等同于对8160个样本点进行分类;而分类的方法就是:将样本点中“距离”较近的分为一类;为此,需要对两个样本点之间的距离进行计算、比较,找出距离最近的样本点,求得质心,然后不断迭代,直到找到误差最小的计算结果,最后才能分出2个类。
如何计算距离:距离一般有欧氏距离、曼哈顿距离,切比雪夫距离等等,其计算公式为现有技术,这里不再赘述。两个“点”计算出的数值越小,代表两个点之间“距离”越近。在计算出样本点之间的坐标距离之后,即可根据聚类算法对对样本进行分类。不同聚类算法有不同的原理,这里不再赘述。
S206:分类完成后,将索引帧中的各个宏块按照所属区域,进行重新排列。排列顺序为从左到右,从上到下的光栅顺序。
例如对应蓝底白字的索引宏块将被聚集放在一堆,对应蓝底纯色的将被聚集放在一堆,对应黑底灰图标的将被放在一堆,等等。
S207:由于索引帧已经乱序,为了使得解码端能够重新恢复,需要记录当前每个宏块在原来正序索引帧中的位置,本步骤将该信息记录在一级映射表Map1中,Map1的结构可参考图5,是一个二维矩阵数组,每个数组元素记录着该宏块在原来帧中的位置pos,通过pos值就推算出其在原来帧中的纵、横坐标。
S208:对全帧宏块进行分类,类别为图片块、CFL块、CFU块。分类的方法是,对乱序索引图中的每两个相邻宏块进行比较,如发现宏块X与其左边的宏块内的颜色索引值完全相同,则从Map1表中查的X和左邻宏块的原始位置,并从原始RGB帧中读取两个宏块的RGB数据进行比较,如RGB数据也完全相同,则判X为CFL宏块。CFU宏块类似,只是它和它的上邻宏块进行比较。非CFL和CFU的宏块,则判定为图片宏块。所有宏块分类完成后,将产生MB Typetable,记录一帧中每个宏块的类型。本方案中,由于一行有1920/16=120个宏块,一列有1080/16=68个宏块,MB Type table是一个120*68大小的数组,每个数组元素就是该位置的宏块的类型值。
图6是紧凑帧生成模块流程模块流程图。主要步骤包括:
S301:接收宏块重排的乱序索引帧作为输入。此乱序索引帧中,存在大量的CFL和CFU宏块需要剔除。
S302:参考MB Type table,将CFL和CFU剔除,剩余部分宏块生成紧凑帧,紧凑化的过程是按照逆光栅顺序,即从下到上,从右到左的顺序移动宏块;参考图7所示,当一个CFL被删除后,后面的宏块依次前移。
S303:紧凑索引帧生成后,为了解码端能够恢复出紧凑化前的索引帧,需要记录每个宏块在紧凑化前的位置,本步骤将该位置信息记录在二级映射表Map2中,二级映射表Map2的结构和一级映射表Map1结构相同,仅内容不同,因此结构可参考图5。
图8是解码端的紧凑帧解除模块的流程。主要步骤包括:
S401:接收字典解压模块的解压结果,字典解压模块的解压结果对应编码端的紧凑化处理的索引帧,即紧凑帧。
S402:解除紧凑帧需要参考二级映射表Map2,确定并移动紧凑帧中的宏块到编码端紧凑化处理之前的对应位置;解除紧凑帧后,会留下一些未被填充的CFL/CFU洞,此处暂不进行处理。
在紧凑帧解除后,产生的带有CFL/CFU洞的乱序索引帧将被送到反量化模块进行反量化。反量化模块通过查询调色板,将带有CFL/CFU洞的乱序索引帧恢复为乱序RGB帧,CFL/CFU洞的部分同样不进行处理,填为任意的RGB值即可,是无效状态。
反量化完成后,查询MB Type table,获知CFL、CFU宏块的位置后,由于参考宏块已经重建为RGB完毕,可以通过拷贝邻块的RGB值将CFL、CFU宏块恢复出来,即进行填洞操作。
填洞完毕后,就得到了一个完整的乱序RGB帧,由于乱序帧的宏块位置已经记录在一级映射表Map1中,因此参考一级映射表Map1即可将所有宏块进行反重排,重建得到原始的RGB帧。
至此,解码完毕。
为了更清晰的理解正序帧(即原始帧)和乱序帧,参考图9和图10所示。图9是一个原始RGB帧,直接对它采用字典压缩将会导致较大的码流,因为对像素的压缩顺序是光栅顺序(从左到右,从上到下),因为交替出现的蓝色和黑色色块会导致待搜索区的内容常常不能在字典区得到匹配。图10是对应于解码端S119模块的产出,即乱序的,无洞的RGB图。由于索引图的每个像素都是一个0~255的数字,无法直观展示,可通过图10观察原始帧经过乱序处理后的情形。可见编码端对宏块进行分类和重排后,得到的乱序帧实际上是具有局部规律性的,绿框部分是3个区域,这3个区域即可通过3个并行的字典压缩程序来压,例如第一个区域频繁出现的是类似白色的文字和蓝色底色,在压第一个区间的字典中很容易就容纳了这些颜色,待搜索区的内容搜索字典时命中率就更高,其他区域类似;而3个区域之间的大片蓝底和黑底,在编码端基本上都会被识别为CFL和CFU宏块而免于参与编码。这些纯蓝和纯黑的宏块,在图9中则是较为分散的,在非纯色宏块(如窗口边框)旁边的宏块常常不会被识别为CFL和CFU,而在10中集中起来后,CFL和CFU宏块的数目将会更多。
下面是一帧测试的例子,以图9的帧为例,它的原始RGB帧大小为1920*1080*3=6220800字节,约5.9MB。
方法1:在不使用本方案时(直接对图片帧进行字典压缩):
分类出的CFL宏块数目:total_CFL_mb_num=2456
分类出的CFU宏块数目:total_CFU_mb_num=178
压缩的码流大小为:336189字节
方法2:应用了本方案时:
分类出的CFL宏块数目:total_CFL_mb_num=2492
分类出的CFU宏块数目:total_CFU_mb_num=196
压缩的码流大小为:277668字节
可见,应用了本技术方案后,码流相对不应用时减少了58521字节,占方法1的17.4%。可见码流的降低是显著的。另外,看CFL和CFU宏块的数量也比原来有所提高,这也为降低码流提供了一部分贡献。
本公开实施例所采用的编解码方式主要解决背景技术中提到的第二种方式,先对整帧图像分为宏块,再对整帧量化,然后对各宏块进行分类和重排,使得具有类似颜色特征的宏块聚集在一个区域。经过这种处理后,整帧图像就具有了局部的规律性,再使用字典压缩算法压缩可获取较高的压缩比。另外本方案还在宏块重排环节设计了消除耦合性的操作。由于进行了区域划分,且不同区域间的宏块无耦合,则可对不同区域采用并行化算法并行压缩,在压缩速度上也可进一步提升。
综上,为了减小码流,提升压缩比,本方案提出的发明点具有如下技术效果:
1.采取宏块重排的方式,可在一帧图像整体不变化的情况下,提升CFL和CFU宏块的比例,从而提高压缩比;
2.去除宏块间耦合。由于CFL和CFU宏块的特殊性,其不参与字典压缩,将其余宏块单独聚合为更小的紧凑帧(Packed Frame)。CFL和CFU以及其他宏块之间的位置关联单独通过映射表实现;
3.在紧凑帧中,将具有类似特色的宏块归类在同一个区域内,整帧图像可划分多个区域。最终在用字典压缩时提高待编码区数据在字典区的命中率,提高压缩比;
4.由于上述第2点去除了宏块间耦合,在紧凑帧中的不同区域可采用并发的字典压缩,提高压缩效率。
本公开实施例提供了一种计算机屏幕图像的编解码系统,该编解码系统的主要优点是在保证原始帧内容不变,量化指标不变的情况下,能降低压缩后的码流大小,利于在例如室外等低质量网络条件下传输。附带的,由于采用了字典压缩,可在不同场景使用不同的字典压缩方法,可实现速度优先/码流大小优先等多种设置,例如本方案中的例子就是采用的LZ4压缩方法,它的特点是速度快,更适应于实时性要求高的场景,如果对压缩的码率大小有要求,可以搭配zlib等字典压缩方法,这些具体的压缩实现和本公开实施例都是兼容的。
基于上述图1和图3对应的实施例中所描述的图像编码方法,下述为本公开装置实施例,可以用于执行本公开方法实施例。
本公开实施例提供一种编码设备,如图11所示,该编码设备50包括:获取模块501、重排模块502、剔除模块503、压缩模块504和融合模块505;
获取模块501,用于获取原始帧,原始帧包括多个宏块;
重排模块502,用于对原始帧中的每个宏块按照预设规则重新排列,得到乱序帧、第一映射表和宏块类型表,第一映射表用于指示乱序帧中每个宏块在原始帧中的位置信息,宏块类型表用于指示乱序帧中每个宏块的宏块类型,宏块类型包括图片宏块、左拷贝宏块和上拷贝宏块;
剔除模块503,用于根据宏块类型表剔除乱序帧中的左拷贝宏块和上拷贝宏块,得到紧凑帧和第二映射表,第二映射表用于指示紧凑帧中的每个宏块在乱序帧中的位置信息;
压缩模块504,用于采用字典压缩算法对紧凑帧进行压缩,得到字典压缩码流;
融合模块505,用于将字典压缩码流、宏块类型表、第一映射表和第二映射表压缩后的融合码流发送给解码设备。
在一个实施例中,编码设备还包括:量化模块;
量化模块,用于对原始帧中每个像素进行调色板量化处理,得到索引帧;
重排模块,用于对索引帧中的每个宏块按照预设规则进行重新排列,得到乱序帧、第一映射表和宏块类型表。
在一个实施例中,重排模块包括:统计子模块、分类子模块、重排子模块和确定子模块;
统计子模块,用于对索引帧中的每个宏块进行直方图统计,获取每个宏块的特征参数,每个宏块的特征参数为每个宏块对应的直方图中频数最多的N个索引值;
分类子模块,用于根据每个宏块的特征参数,对索引帧中的所有宏块按照聚类算法进行分类,得到K个聚类;
重排子模块,用于将索引帧中每个宏块按照所属聚类重新排列,得到乱序帧和第一映射表;
确定子模块,用于确定乱序帧中每个宏块的宏块类型,得到宏块类型表。
在一个实施例中,重排模块还包括:检测子模块;
检测子模块,用于检测当前宏块中所有像素的索引值与左侧相邻宏块或上侧相邻宏块中所有像素的索引值是否相同;
确定子模块,用于在当前宏块中所有像素的索引值与左侧相邻宏块以及上侧相邻宏块中所有像素的索引值不相同时,将当前宏块的宏块类型确定为图片宏块;
确定子模块,用于在当前宏块中所有像素的索引值与左侧相邻宏块中所有像素的索引值相同时,将当前宏块的宏块类型确定为左拷贝宏块;
确定子模块,用于在当前宏块中所有像素的索引值与上侧相邻宏块中所有像素的索引值相同时,将当前宏块的宏块类型确定为上拷贝宏块。
在一个实施例中,确定子模块用于:
在当前宏块中所有像素的索引值与左侧相邻宏块中所有像素的索引值相同时,从第一映射表中查找当前宏块以及左侧相邻宏块的位置信息;
根据当前宏块以及左侧相邻宏块的位置信息,从原始帧中获取当前宏块与左侧相邻宏块的原始数据;
确定子模块,用于在当前宏块与左侧相邻宏块的原始数据相同时,将当前宏块的宏块类型确定为左拷贝宏块。
在一个实施例中,确定子模块用于:
在当前宏块中所有像素的索引值与上侧相邻宏块中所有像素的索引值相同时,从第一映射表中查找当前宏块以及上侧相邻宏块的位置信息;
根据当前宏块以及上侧相邻宏块的位置信息,从原始帧中获取当前宏块与上侧相邻宏块的原始数据;
在当前宏块与上侧相邻宏块的原始数据相同时,将当前宏块的宏块类型确定为上拷贝宏块。
在一个实施例中,量化模块,用于采用动态调色板对原始帧中每个像素进行调色板量化处理,得到索引帧和动态调色板数据;
融合模块,用于将字典压缩码流、第一映射表、第二映射表、宏块类型表和动态调色板数据压缩后的融合码流发送给解码设备。
本公开实施例提供的图像编解方法,获取原始帧,对原始帧中的每个宏块按照预设规则重新排列,得到乱序帧、第一映射表和宏块类型表,根据宏块类型表剔除乱序帧中的左拷贝宏块和上拷贝宏块,得到紧凑帧和第二映射表,采用字典压缩算法对紧凑帧进行压缩,得到字典压缩码流,将字典压缩码流、宏块类型表、第一映射表和第二映射表压缩后发送给解码设备。本公开实施例通过对整帧图像进行分类和重排,将具有类似颜色特征的宏块聚集在一个区域,消除宏块间的耦合性;进而剔除左拷贝宏块和上拷贝宏块,再使用字典压缩算法进行压缩,提高压缩效率,因此,本公开实施例能够在保证原始帧内容不变,量化指标不变的情况下,能降低压缩后的码流大小,利于在例如室外等低质量网络条件下传输。
基于上述图2和图3对应的实施例中所描述的图像解码方法,下述为本公开装置实施例,可以用于执行本公开方法实施例。
本公开实施例提供一种解码设备,如图12所示,该解码设备60包括:解析模块601、解码模块602、处理模块603和重建模块604;
解析模块601,用于解析融合码流得到字典压缩码流、第一映射表、第二映射表、宏块类型表,第一映射表用于指示乱序帧中每个宏块在原始帧中的位置信息,第二映射表用于指示紧凑帧中每个宏块在乱序帧中的位置信息,宏块类型表用于指示乱序帧中每个宏块的宏块类型,宏块类型包括图片宏块、左拷贝宏块和上拷贝宏块;
解码模块602,用于对字典压缩码流进行解码处理,得到紧凑帧;
处理模块603,用于根据第二映射表和宏块类型表对紧凑帧进行处理,得到乱序帧;
重建模块604,用于根据第一映射表对乱序帧进行重建,得到重建后的原始帧。
在一个实施例中,处理模块603,用于根据第二映射表对紧凑帧进行解除处理,得到未填充左拷贝宏块和右拷贝宏块的乱序索引帧;对未填充左拷贝宏块和右拷贝宏块的乱序索引帧进行反量化处理,得到未填充左拷贝宏块和右拷贝宏块的乱序帧;根据宏块类型表对未填充左拷贝宏块和右拷贝宏块的乱序帧进行填充,得到完整的乱序帧。
在一个实施例中,解析模块601,用于解析融合码流得到字典压缩码流、第一映射表、第二映射表、宏块类型表和动态调色板数据;
处理模块603,用于根据动态调色板数据对未填充左拷贝宏块和右拷贝宏块的乱序索引帧进行反量化处理,得到未填充左拷贝宏块和右拷贝宏块的乱序帧。
本公开实施例提供的图像编解方法,解析融合码流得到字典压缩码流、第一映射表、第二映射表、宏块类型表;对字典压缩码流进行解码处理,得到紧凑帧;根据第二映射表和宏块类型表对紧凑帧进行处理,得到乱序帧;根据第一映射表对乱序帧进行重建,得到重建后的原始帧。本公开实施例通过对整帧图像进行分类和重排,将具有类似颜色特征的宏块聚集在一个区域,消除宏块间的耦合性;进而剔除左拷贝宏块和上拷贝宏块,再使用字典压缩算法进行压缩,提高压缩效率,因此,本公开实施例能够在保证原始帧内容不变,量化指标不变的情况下,能降低压缩后的码流大小,利于在例如室外等低质量网络条件下传输。
本公开实施例还提供了一种编码设备,该编码设备包括接收器、发射器、存储器和处理器,该发射器和存储器分别与处理器连接,存储器中存储有至少一条计算机指令,处理器用于加载并执行至少一条计算机指令,以实现上述图1对应的实施例中所描述的图像编码方法。
本公开实施例还提供了一种解码设备,该解码设备包括接收器、发射器、存储器和处理器,该发射器和存储器分别与处理器连接,存储器中存储有至少一条计算机指令,处理器用于加载并执行至少一条计算机指令,以实现上述图2对应的实施例中所描述的图像解码方法。
基于上述图1对应的实施例中所描述的图像编码方法,本公开实施例还提供一种计算机可读存储介质,例如,非临时性计算机可读存储介质可以是只读存储器(英文:ReadOnly Memory,ROM)、随机存取存储器(英文:Random Access Memory,RAM)、CD-ROM、磁带、软盘和光数据存储装置等。该存储介质上存储有计算机指令,用于执行上述图1对应的实施例中所描述的图像编码方法,此处不再赘述。
基于上述图2对应的实施例中所描述的图像解码方法,本公开实施例还提供一种计算机可读存储介质,例如,非临时性计算机可读存储介质可以是只读存储器(英文:ReadOnly Memory,ROM)、随机存取存储器(英文:Random Access Memory,RAM)、CD-ROM、磁带、软盘和光数据存储装置等。该存储介质上存储有计算机指令,用于执行上述图2对应的实施例中所描述的图像解码方法,此处不再赘述。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
本领域技术人员在考虑说明书及实践这里公开的公开后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。

Claims (10)

1.一种图像编码方法,其特征在于,所述方法包括:
获取原始帧,所述原始帧包括多个宏块;
对所述原始帧中的每个宏块按照预设规则重新排列,得到乱序帧、第一映射表和宏块类型表,所述第一映射表用于指示所述乱序帧中每个宏块在原始帧中的位置信息,所述宏块类型表用于指示所述乱序帧中每个宏块的宏块类型,所述宏块类型包括图片宏块、左拷贝宏块和上拷贝宏块;其中,所述图片宏块为参与内容编码的宏块;若一个宏块和其右边的宏块内容完全相同,所述宏块为左拷贝宏块;若一个宏块和其上面的宏块内容完全相同,所述宏块为上拷贝宏块;
根据宏块类型表剔除所述乱序帧中的左拷贝宏块和上拷贝宏块,得到紧凑帧和第二映射表,所述第二映射表用于指示所述紧凑帧中的每个宏块在所述乱序帧中的位置信息;
采用字典压缩算法对所述紧凑帧进行压缩,得到字典压缩码流;
将所述字典压缩码流、所述宏块类型表、所述第一映射表和所述第二映射表压缩后的融合码流发送给解码设备;
其中,所述对所述原始帧中的每个宏块按照预设规则重新排列,得到乱序帧、第一映射表和宏块类型表包括:
对所述原始帧中每个像素进行调色板量化处理,得到索引帧;
对所述索引帧中的每个宏块进行直方图统计,获取每个宏块的特征参数,所述每个宏块的特征参数为所述每个宏块对应的直方图中频数最多的N个索引值;
根据所述每个宏块的特征参数,对所述索引帧中的所有宏块按照聚类算法进行分类,得到K个聚类;
将所述索引帧中每个宏块按照所属聚类重新排列,得到所述乱序帧和第一映射表;
确定所述乱序帧中每个宏块的宏块类型,得到所述宏块类型表。
2.根据权利要求1所述的方法,其特征在于,所述确定所述乱序帧中每个宏块的宏块类型,得到所述宏块类型表包括:
检测当前宏块中所有像素的索引值与左侧相邻宏块或上侧相邻宏块中所有像素的索引值是否相同;
在当前宏块中所有像素的索引值与左侧相邻宏块以及上侧相邻宏块中所有像素的索引值不相同时,将所述当前宏块的宏块类型确定为图片宏块;
在所述当前宏块中所有像素的索引值与左侧相邻宏块中所有像素的索引值相同时,将所述当前宏块的宏块类型确定为左拷贝宏块;
在所述当前宏块中所有像素的索引值与上侧相邻宏块中所有像素的索引值相同时,将所述当前宏块的宏块类型确定为上拷贝宏块。
3.根据权利要求2所述的方法,其特征在于,所述在所述当前宏块中所有像素的索引值与左侧相邻宏块中所有像素的索引值相同时,将所述当前宏块的宏块类型确定为左拷贝宏块包括:
在所述当前宏块中所有像素的索引值与左侧相邻宏块中所有像素的索引值相同时,从所述第一映射表中查找所述当前宏块以及所述左侧相邻宏块的位置信息;
根据所述当前宏块以及所述左侧相邻宏块的位置信息,从所述原始帧中获取所述当前宏块与所述左侧相邻宏块的原始数据;
在所述当前宏块与所述左侧相邻宏块的原始数据相同时,将所述当前宏块的宏块类型确定为左拷贝宏块。
4.根据权利要求2所述的方法,其特征在于,所述在所述当前宏块中所有像素的索引值与上侧相邻宏块中所有像素的索引值相同时,将所述当前宏块的宏块类型确定为上拷贝宏块包括:
在所述当前宏块中所有像素的索引值与上侧相邻宏块中所有像素的索引值相同时,从所述第一映射表中查找所述当前宏块以及上侧相邻宏块的位置信息;
根据当前宏块以及上侧相邻宏块的所述位置信息,从所述原始帧中获取所述当前宏块与所述上侧相邻宏块的原始数据;
在所述当前宏块与所述上侧相邻宏块的原始数据相同时,将所述当前宏块的宏块类型确定为上拷贝宏块。
5.根据权利要求1所述的方法,其特征在于,所述对所述原始帧中每个像素进行调色板量化处理,得到索引帧包括:
采用动态调色板对所述原始帧中每个像素进行调色板量化处理,得到索引帧和动态调色板数据;
所述将所述字典压缩码流、所述第一映射表、所述第二映射表和所述宏块类型表压缩后的融合码流发送给解码设备包括:
将所述字典压缩码流、所述第一映射表、所述第二映射表、所述宏块类型表和所述动态调色板数据压缩后的融合码流发送给解码设备。
6.一种图像解码方法,其特征在于,包括:
解析融合码流得到字典压缩码流、第一映射表、第二映射表、宏块类型表,所述第一映射表用于指示乱序帧中每个宏块在原始帧中的位置信息,所述第二映射表用于指示紧凑帧中每个宏块在乱序帧中的位置信息,所述宏块类型表用于指示乱序帧中每个宏块的宏块类型,所述宏块类型包括图片宏块、左拷贝宏块和上拷贝宏块,所述图片宏块为参与内容编码的宏块,若一个宏块和其右边的宏块内容完全相同,所述宏块为左拷贝宏块,若一个宏块和其上面的宏块内容完全相同,所述宏块为上拷贝宏块;
对所述字典压缩码流进行解码处理,得到紧凑帧;
根据所述第二映射表和所述宏块类型表对所述紧凑帧进行处理,得到乱序帧;
根据所述第一映射表对所述乱序帧进行重建,得到重建后的原始帧;
所述根据所述第二映射表和所述宏块类型表对所述紧凑帧进行处理,得到乱序帧包括:
根据所述第二映射表对所述紧凑帧进行解除处理,得到未填充左拷贝宏块和右拷贝宏块的乱序索引帧;对所述未填充左拷贝宏块和右拷贝宏块的乱序索引帧进行反量化处理,得到未填充左拷贝宏块和右拷贝宏块的乱序帧;根据所述宏块类型表对所述未填充左拷贝宏块和右拷贝宏块的乱序帧进行填充,得到完整的乱序帧。
7.根据权利要求6所述的方法,其特征在于,所述解析融合码流得到字典压缩码流、第一映射表、第二映射表、宏块类型表包括:
解析融合码流得到字典压缩码流、第一映射表、第二映射表、宏块类型表和动态调色板数据;
所述对所述未填充左拷贝宏块和右拷贝宏块的乱序索引帧进行反量化处理,得到未填充左拷贝宏块和右拷贝宏块的乱序帧包括:
根据所述动态调色板数据对所述未填充左拷贝宏块和右拷贝宏块的乱序索引帧进行反量化处理,得到未填充左拷贝宏块和右拷贝宏块的乱序帧。
8.一种编码设备,其特征在于,所述编码设备包括处理器和存储器,所述存储器中存储有至少一条计算机指令,所述指令由所述处理器加载并执行以实现权利要求1至权利要求5任一项所述的图像编码方法中所执行的步骤。
9.一种解码设备,其特征在于,所述解码设备包括处理器和存储器,所述存储器中存储有至少一条计算机指令,所述指令由所述处理器加载并执行以实现权利要求6至权利要求7任一项所述的图像解码方法中所执行的步骤。
10.一种图像编解码系统,其特征在于,所述图像编解码系统包括权利要求8所述的编码设备和权利要求9所述的解码设备。
CN201911167506.0A 2019-11-25 2019-11-25 图像编解码方法、设备及系统 Active CN110996127B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911167506.0A CN110996127B (zh) 2019-11-25 2019-11-25 图像编解码方法、设备及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911167506.0A CN110996127B (zh) 2019-11-25 2019-11-25 图像编解码方法、设备及系统

Publications (2)

Publication Number Publication Date
CN110996127A CN110996127A (zh) 2020-04-10
CN110996127B true CN110996127B (zh) 2022-12-09

Family

ID=70086701

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911167506.0A Active CN110996127B (zh) 2019-11-25 2019-11-25 图像编解码方法、设备及系统

Country Status (1)

Country Link
CN (1) CN110996127B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111953975A (zh) * 2020-07-03 2020-11-17 西安万像电子科技有限公司 一种渐进式解编码方法及装置
CN111770334B (zh) * 2020-07-23 2023-09-22 西安万像电子科技有限公司 数据编码方法及装置、数据解码方法及装置
CN112422973A (zh) * 2020-10-28 2021-02-26 西安万像电子科技有限公司 编码方法及装置

Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0907294A1 (en) * 1997-03-21 1999-04-07 Mitsubishi Denki Kabushiki Kaisha Image processing device and still image pickup device, and method for processing image
JP2001275111A (ja) * 2000-03-28 2001-10-05 Victor Co Of Japan Ltd 動画像符号化復号化方法及び動画像符号化復号化装置
CN1710959A (zh) * 2004-06-16 2005-12-21 华为技术有限公司 视频编解码处理方法
CN1929606A (zh) * 2005-09-07 2007-03-14 上海乐金广电电子有限公司 视频解码系统
US7343037B1 (en) * 2004-02-04 2008-03-11 Microsoft Corporation Dynamic, locally-adaptive, lossless palettization of color and grayscale images
CN101237577A (zh) * 2007-01-31 2008-08-06 索尼株式会社 信息处理设备和方法
CN101742295A (zh) * 2008-11-14 2010-06-16 北京中星微电子有限公司 基于图像自适应条带划分的自适应帧场编码方法及设备
CN104918050A (zh) * 2014-03-16 2015-09-16 上海天荷电子信息有限公司 使用动态排列重组的参考像素样值集的图像压缩方法
CN105282558A (zh) * 2014-07-18 2016-01-27 清华大学 帧内像素预测方法、编码方法、解码方法及其装置
CN105745671A (zh) * 2013-11-22 2016-07-06 华为技术有限公司 高级屏幕内容编码方案
CN105814889A (zh) * 2013-12-10 2016-07-27 佳能株式会社 Hevc中的改进的调色板模式
CN107509079A (zh) * 2017-08-16 2017-12-22 西安万像电子科技有限公司 文字块编码方法及装置
CN108174214A (zh) * 2017-12-08 2018-06-15 重庆邮电大学 一种基于屏幕内容视频编码的远程桌面共享方法
CN108391132A (zh) * 2018-04-19 2018-08-10 西安万像电子科技有限公司 文字块编码方法及装置
CN109120928A (zh) * 2018-04-18 2019-01-01 北方工业大学 基于字符分割的改进帧内块拷贝算法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5464435B2 (ja) * 2010-04-09 2014-04-09 ソニー株式会社 画像復号装置および方法

Patent Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0907294A1 (en) * 1997-03-21 1999-04-07 Mitsubishi Denki Kabushiki Kaisha Image processing device and still image pickup device, and method for processing image
JP2001275111A (ja) * 2000-03-28 2001-10-05 Victor Co Of Japan Ltd 動画像符号化復号化方法及び動画像符号化復号化装置
US7343037B1 (en) * 2004-02-04 2008-03-11 Microsoft Corporation Dynamic, locally-adaptive, lossless palettization of color and grayscale images
CN1710959A (zh) * 2004-06-16 2005-12-21 华为技术有限公司 视频编解码处理方法
CN1929606A (zh) * 2005-09-07 2007-03-14 上海乐金广电电子有限公司 视频解码系统
CN101237577A (zh) * 2007-01-31 2008-08-06 索尼株式会社 信息处理设备和方法
CN101742295A (zh) * 2008-11-14 2010-06-16 北京中星微电子有限公司 基于图像自适应条带划分的自适应帧场编码方法及设备
CN105745671A (zh) * 2013-11-22 2016-07-06 华为技术有限公司 高级屏幕内容编码方案
CN105814889A (zh) * 2013-12-10 2016-07-27 佳能株式会社 Hevc中的改进的调色板模式
CN104918050A (zh) * 2014-03-16 2015-09-16 上海天荷电子信息有限公司 使用动态排列重组的参考像素样值集的图像压缩方法
CN105282558A (zh) * 2014-07-18 2016-01-27 清华大学 帧内像素预测方法、编码方法、解码方法及其装置
CN107509079A (zh) * 2017-08-16 2017-12-22 西安万像电子科技有限公司 文字块编码方法及装置
CN108174214A (zh) * 2017-12-08 2018-06-15 重庆邮电大学 一种基于屏幕内容视频编码的远程桌面共享方法
CN109120928A (zh) * 2018-04-18 2019-01-01 北方工业大学 基于字符分割的改进帧内块拷贝算法
CN108391132A (zh) * 2018-04-19 2018-08-10 西安万像电子科技有限公司 文字块编码方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
EREC-Based Length Coding of Variable-Length Data Blocks;Yong Fang;《IEEE Transactions on Circuits and Systems for Video Technology 》;20100920;全文 *
视频压缩中的高效帧内编码技术研究;张涛;《中国博士学位论文全文数据库 (信息科技辑)》;20180115;全文 *

Also Published As

Publication number Publication date
CN110996127A (zh) 2020-04-10

Similar Documents

Publication Publication Date Title
CN105917648B (zh) 具有非对称分区的帧内块复制预测以及编码器侧搜索图案、搜索范围和用于分区的方法
CN110996127B (zh) 图像编解码方法、设备及系统
RU2682838C1 (ru) Способ и устройство для кодирования с преобразованием с выбором преобразования блокового уровня и неявной сигнализацией в рамках иерархического разбиения
CN110024398A (zh) 针对屏幕远程处理场景的局部的基于散列的运动估计
CN109842803B (zh) 一种图像压缩的方法及装置
CN111432210B (zh) 一种基于填充的点云属性压缩方法
JP2017508415A (ja) 画像符号化/復号方法及び装置
CN110401833B (zh) 图像传输方法及装置
CN114424247A (zh) 用于点云编码的方法及装置
JPWO2008047865A1 (ja) 画質評価方法、画質評価システム及び画質評価用プログラム
CN104780379A (zh) 一种屏幕图像集合的压缩方法
CN105100814A (zh) 图像编码、解码方法及装置
CN105230021A (zh) 屏幕内容的词典编码和解码
CN112019842A (zh) 点云压缩的方法、装置、计算机设备和存储介质
US11818397B2 (en) Sparse matrix representation using a boundary of non-zero coefficients
US9787985B2 (en) Reduction of spatial predictors in video compression
CN113099221A (zh) 跨分量样点自适应补偿方法、编码方法及相关装置
JP2024019644A (ja) ビデオコーディングのための方法、装置及びプログラム
WO2022252567A1 (zh) 基于相关度比较确定视频编解码优先顺序的方法及装置
CN111447452A (zh) 数据编码方法及系统
WO2022133753A1 (zh) 点云编解码方法与系统、及点云编码器与点云解码器
JP7141535B2 (ja) 点群圧縮の方法および装置
CN109672891B (zh) Jpeg图像的无损二次压缩方法
US10045022B2 (en) Adaptive content dependent intra prediction mode coding
TW201338553A (zh) 用於評估要轉換成被跳過巨集區塊的巨集區塊候選者的方法、系統和電腦程式產品

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant