掌桥专利:专业的专利平台
掌桥专利
首页

一种图像编解码方法、系统及设备

文献发布时间:2023-06-19 11:49:09


一种图像编解码方法、系统及设备

技术领域

本公开涉及数据处理技术领域,尤其涉及一种图像编解码方法、系统及 设备。

背景技术

在当前网络环境中可能需要覆盖办公、游戏等多种场景,实际环境的带 宽和帧率也有差异,在这种情况下,用户往往还要追求视觉上的体验。目前 的图像编解码方法主要就是在这几个指标方面取其一,例如无损编解码方法 对于带宽要求较高,相对帧率较低;而带宽低、帧率高的编解码方法在视觉 表现上则相对较差,因此目前的图像编解码方法存在效率和画面质量的无法 同时兼顾的问题。

发明内容

本公开实施例提供一种图像编解码方法、系统及设备,能够解决目前的 图像编解码方法存在效率和质量的无法同时兼顾的问题。所述技术方案如下:

根据本公开实施例的第一方面,提供一种图像编码方法,该方法包括:

获取当前帧,所述当前帧包括至少一个宏块;

将所述当前帧中的宏块与参考帧中的对应宏块进行比较,并对当前宏块 进行标记,第一标记用于指示当前宏块是变化宏块,第二标记用于指示当前 宏块是不变宏块;

若当前宏块的标记为所述第一标记,则对当前宏块进行第一有损编码, 生成第一码流;

若当前宏块的标记为所述第二标记,则根据当前的网络带宽对当前宏块 进行第二有损编码和/或无损编码,生成第二码流;

将所述第一码流和第二码流进行整合,得到全帧码流,并将所述全帧码 流发送给解码端。

本公开提供的图像编码方法,通过获取当前帧,将当前帧中的宏块与参 考帧中的对应宏块进行比较,并对当前宏块进行标记,区分变化宏块和不变 宏块,若当前宏块是变化宏块,则进行第一有损编码,生成第一码流,若当 前宏块是不变宏块,则进行第二有损编码,生成第二码流,将第一码流和第 二码流进行整合后发送给解码端。本公开提供的图像编码方法是一种有损和 无损结合的编解码方案。当图像动态变化时为了平滑度和网络带宽而采用有 损方式编码,当图像全部或局部静止的时候,对静止区域采取编解码残差的方式形成无损区域,是取得了带宽、帧率、用户体验的平衡的编解码方式。

在一个实施例中,在所述获取当前帧之后,所述方法还包括:

根据宏块内容确定当前帧中宏块的宏块类型,所述宏块类型包括文字类 宏块和图片类宏块。

在一个实施例中,所述若当前宏块的标记为所述第一标记,则对当前宏 块进行第一有损编码,包括:

若当前宏块的标记为所述第一标记,则根据当前宏块的宏块类型,对当 前宏块进行相应的文字有损编码或图片有损编码。

在一个实施例中,所述若当前宏块的标记为所述第二标记,则根据当前 的网络带宽对当前宏块进行第二有损编码和/或无损编码,包括:

若当前宏块的标记为所述第二标记,且当前网络带宽大于或等于第一阈 值,则对当前宏块进行无损编码;

若当前宏块的标记为所述第二标记,且当前网络带宽小于或等于第二阈 值,则对当前宏块进行第二有损编码,其中所述第二阈值小于所述第一阈值;

若当前宏块的标记为所述第二标记,且当前网络带宽大于所述第二阈值 且小于所述第一阈值,则判断当前宏块是否是文字类宏块,若当前宏块是文 字类宏块,则对当前宏块进行无损编码,若当前宏块不是文字类宏块,则对 当前宏块进行第二有损编码。

在一个实施例中,所述若当前宏块的标记为所述第二标记,且当前网络 带宽大于或等于第一阈值,则对当前宏块进行无损编码,包括:

若当前宏块的标记为所述第二标记,且当前网络带宽大于或等于第一阈 值,则将当前宏块的标记修改为第三标记,并获取当前宏块的宏块序号,所 述第三标记用于指示当前宏块为更新宏块;

对所述更新宏块进行编码,其中,所述更新宏块中包括当前宏块与所述 参考帧中对应宏块的残差数据。

在一个实施例中,所述若当前宏块的标记为所述第二标记,且当前网络 带宽小于或等于第二阈值,则对当前宏块进行第二有损编码,包括:

若当前宏块的标记为所述第二标记,且当前网络带宽小于或等于第二阈 值,则获取当前宏块的宏块序号。

根据本公开实施例的第二方面,提供一种图像解码方法,该方法包括:

接收全帧码流,所述全帧码流为实施例第一方面所述的全帧码流;

对所述全帧码流中的宏块进行识别并解码,得到解码数据,并将所述解 码数据按照宏块序号进行整合,形成重建帧。

在一个实施例中,所述对所述全帧码流中的宏块进行识别并解码,包括:

若当前宏块的标记为第一标记,则根据当前宏块的宏块类型,对当前宏 块进行相应的文字解码或图片解码,得到解码数据;

若当前宏块的标记为第二标记,则根据当前宏块的序号复制解码参考帧 中对应序号宏块的内容,得到解码数据;

若当前宏块的标记为第三标记,则对当前宏块进行解码,得到残差数据, 根据当前宏块的序号复制解码参考帧中对应宏块的内容,得到复制数据,并 将所述残差数据与所述复制数据相加,得到解码数据。

根据本公开实施例的第二方面,提供一种图像编解码系统,所述系统包 括编码端和解码端;

其中,所述编码端用于执行实施例第一方面所述的方法,所述解码端用 于执行实施例第二方面所述的方法。

根据本公开实施例的第三方面,提供一种图像编解码设备,所述设备包 括处理器和存储器,所述存储器中存储有至少一条计算机指令,所述指令由 所述处理器加载并执行以实现实施例第一方面和实施例第二方面所述的编解 码方法中所执行的步骤。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性 的,并不能限制本公开。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公 开的实施例,并与说明书一起用于解释本公开的原理。

图1是本公开实施例提供的一种图像编码方法的流程图;

图2是本公开实施例提供的一种图像解码方法的流程图;

图3是本公开实施例提供的一种图像编解码系统的结构图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的 描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的 要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所 有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一 些方面相一致的系统和方法的例子。

本公开实施例提供一种图像编码方法,应用于编码端,如图1所示,该 方法包括以下步骤:

101、获取当前帧。

其中,当前帧中包括至少一个宏块。

在一个实施例中,在获取当前帧之后,方法还包括:

根据宏块内容确定当前帧中宏块的宏块类型,其中,宏块类型包括文字 类宏块和图片类宏块。

具体的,当宏块中细节较多,典型的如宏块内存在文字这种线条较为明 显的元素时,宏块被分类为文字类宏块;当宏块中像素较为平缓,细节较少 时,典型的如较为单纯的色块,宏块被分类为图片类宏块。

102、将当前帧中的宏块与参考帧中的对应宏块进行比较,并对当前帧中 的宏块进行标记。

第一标记用于指示当前宏块是变化宏块,第二标记用于指示当前宏块是 不变宏块;

其中,参考帧为之前已经编过的某一帧。当编完一帧时,可将刚编完的 这一帧更新为参考帧,也可每编N帧更新一次参考帧。

103、若当前宏块的标记为第一标记,则对当前宏块进行第一有损编码, 生成第一码流。

在一个实施例中,若当前宏块的标记为第一标记,则对当前宏块进行第 一有损编码,包括:

若当前宏块的标记为第一标记,则根据当前宏块的宏块类型,对当前宏 块进行相应的文字有损编码或图片有损编码。

104、若当前宏块的标记为第二标记,则根据当前的网络带宽对当前宏块 进行第二有损编码和/或无损编码,生成第二码流。

在一个实施例中,若当前宏块的标记为第二标记,则根据当前的网络带 宽对当前宏块进行第二有损编码和/或无损编码,包括:

若当前宏块的标记为第二标记,且当前网络带宽大于或等于第一阈值, 则对当前宏块进行无损编码;

若当前宏块的标记为第二标记,且当前网络带宽小于或等于第二阈值, 则对当前宏块进行第二有损编码,其中第二阈值小于第一阈值;

若当前宏块的标记为第二标记,且当前网络带宽大于第二阈值且小于第 一阈值,则判断当前宏块是否是文字类宏块,若当前宏块是文字类宏块,则 对当前宏块进行无损编码,若当前宏块不是文字类宏块,则对当前宏块进行 第二有损编码。

进一步的,若当前宏块的标记为所述第二标记,且当前网络带宽大于或 等于第一阈值,则对当前宏块进行无损编码,包括:

若当前宏块的标记为所述第二标记,且当前网络带宽大于或等于第一阈 值,则将当前宏块的标记修改为第三标记,并获取当前宏块的宏块序号,所 述第三标记用于指示当前宏块为更新宏块,对更新宏块进行编码,其中,更 新宏块中包括当前宏块与参考帧中对应宏块的残差数据。

若当前宏块的标记为第二标记,且当前网络带宽小于或等于第二阈值, 则对当前宏块进行第二有损编码,包括:若当前宏块的标记为第二标记,且 当前网络带宽小于或等于第二阈值,则获取当前宏块的宏块序号。

105、将第一码流和第二码流进行整合,得到全帧码流,并将全帧码流发 送给解码端。

本公开提供的图像编码方法,通过获取当前帧,将当前帧中的宏块与参 考帧中的对应宏块进行比较,并对当前宏块进行标记,区分变化宏块和不变 宏块,若当前宏块是变化宏块,则进行第一有损编码,生成第一码流,若当 前宏块是不变宏块,则进行第二有损编码,生成第二码流,将第一码流和第 二码流进行整合后发送给解码端。本公开提供的图像编码方法是一种有损和 无损结合的编解码方案。当图像动态变化时为了平滑度和网络带宽而采用有 损方式编码,当图像全部或局部静止的时候,对静止区域采取编解码残差的方式形成无损区域,是取得了带宽、帧率、用户体验的平衡的编解码方式。

本发明提供的图像编解码方法,可以在远程桌面这种情况比较复杂的综 合场景下使用,当在画面动态变化时,此时用户对具体变化着的图像元素的 识别度本身不会太高,因此对这部分采取有损编码,以保证较小的网络带宽 占用和较高的帧率;一旦画面静止下来,则以宏块为单位,将之前一帧每个 宏块有损产生的残差编码后补发,解码端解码后可将该静止画面重建为无损 画面,满足用户对画面细节的要求;对于区域变化的图像序列,由图像采集 模块提供变化区信息,在不变的区域中,将有损编码的宏块的残差信息编码 发送,解码端将这些不变区域的宏块重建为无损画面,提高了整体画面质量。

基于上述图1对应的实施例提供的图像编码方法,本公开另一实施例提 供一种图像解码方法,应用于解码端,如图2所示。其中部分步骤中的内容 与图1对应的实施例中的步骤相同或类似,以下只对步骤中不同之处做详细 说明。

201、接收全帧码流。

其中,全帧码流为图1对应的实施例中的全帧码流。

202、对全帧码流中的宏块进行识别并解码,得到解码数据。

在一个实施例中,对全帧码流中的宏块进行识别并解码,包括:

若当前宏块的标记为第一标记,则根据当前宏块的宏块类型,对当前宏 块进行相应的文字解码或图片解码,得到解码数据;

若当前宏块的标记为第二标记,则根据当前宏块的序号复制解码参考帧 中对应序号宏块的内容,得到解码数据;

若当前宏块的标记为第三标记,则对当前宏块进行解码,得到残差数据, 根据当前宏块的序号复制解码参考帧中对应宏块的内容,得到复制数据,并 将残差数据与复制数据相加,得到解码数据。

203、将解码数据按照宏块序号进行整合,形成重建帧。

具体的,还可以将形成的重建帧更新为解码参考帧,用于后续图像帧的 解码。

基于上述图1和图2对应的实施例提供的图像编解码方法,本公开另一 实施例提供一种图像编解码系统,如图3所示。该系统包括:编码端31和解 码端32。

编码端31中包括图像采集模块311、宏块比较模块312、宏块分类器313、 编码模块314、带宽分析模块315和传输模块316。

解码端32中包括接收模块321和解码模块322。

在实际应用中,图像采集模块311,其作用是采集原始计算机合成图像, 典型的如计算机桌面图像,采集的格式为YUV。本模块的工作主要是周期性 的采集图像帧,交给编码环节编码。在图像源变化时,它采集到的每帧图像 均不相同;在图像源静止不变时,它也要保持正常周期采集,并给宏块比较 模块312上报空帧信号,表示当前源图像和前一帧内容完全一致,在图像源 发生局部变化时,它将变化区的位置上报给宏块比较模块312,宏块比较模 块312就可计算出画面哪些部分是变化的,哪些部分是没有变化的。

宏块比较模块312,作用是将当前帧和参考帧进行比较。参考帧是之前 已经编过的某一帧。当编完一帧时,可将刚编完的这一帧更新为参考帧,也 可每编N帧更新一次参考帧。本模块的目的是将当前帧和参考帧进行比较, 得到所有的不变宏块的序号。

比较的方法是:如果图像采集模块311上报的是空帧,直接无需比较, 全帧宏块都是不变宏块;如果图像采集模块311上报的非空帧,而且存在变 化区信息,则计算出不变区,不变区内的宏块都是不变宏块,也无需进行全 帧比较;如果图像采集模块311上报的非空帧,而且不存在变化区信息,则 需要将当前帧和参考帧的每个宏块进行比较,才能得到不变宏块的序号。

宏块分类器313,本模块主要是将宏块分成不同的类别,以采用不同的 编码器进行编码。宏块的主要类别有文字类宏块、图片类宏块、不变宏块和 更新宏块。

编码模块314,本模块是对宏块进行编码,具体的,编码器类别有文字 宏块编码器,文字宏块编码器,宏块残差编码器。文字宏块编码器,主要是 用调色板量化和huffman编码的方式对文字类宏块进行有损编码;图片宏块 编码器,主要是用JPEG编码方法对宏块进行有损编码;宏块残差编码器, 主要是对文字宏块编码器和文字宏块编码器编码后的损失信息,也就是残差 进行编码,编码方式采用huffman方法编码。宏块残差编码器编出的码流, 不一定立即交由传输模块316发送,也不一定打包入当前帧的编码码流中, 而是根据当前的网络带宽来采取相应的处理。

具体的,当宏块中细节较多,典型的如宏块内存在文字这种线条较为明 显的元素时,宏块被分类为文字类宏块,文字类宏块将主要使用huffman编 码方式编码,以保留更多细节。除了huffman编码方式之外,文字类宏块编 码时也会采用调色板的方式进行量化处理,即将多种颜色值归结为较少的若 干种。量化的目的是为了节省码流,但也造成了颜色失真的结果。在编码一 个文字宏块之后,要将其原始宏块减去编码后并解码之后的重建宏块,得到 一个残差宏块,里面记录的就是该宏块的损失信息,该损失信息将由宏块残 差编码器进行编码。

当宏块中像素较为平缓,细节较少时,典型的如较为单纯的色块,宏块 被分类为图片类宏块,这类宏块将使用JPEG编码方式编码,以降低码流; JPEG也存在量化过程,因此也是有损编码,类似于文字宏块,在编码一个 JPEG宏块之后,也得到一个残差宏块,该损失信息也将由宏块残差编码器 进行编码。

当宏块是不变宏块,且之前(总有一次它是从其他内容变化成当前这个 不变宏块的内容,他在变成不变宏块之前,肯定是文字或者图片宏块编码过) 存在残差内容的话,如果带宽够用,则将该宏块类型由“不变类型宏块”修 改为“更新类型宏块”,并传输它的残差宏块。

带宽分析模块315,本模块主要是监测当前可用的网络带宽,同时监测 当前周期范围内,例如1秒内编出的帧的码流大小。一帧中可能存在多个宏 块需要传输残差,这些残差的传输固然可以使得解码端能得到对应宏块的无 损的视觉效果,但也会对网络带宽带来额外符合。本模块就是监测当前带宽, 根据最近一段时间编出的码流大小情况,权衡当前帧能传多少个宏块的残差 数据,以保证不会对网络带来过大影响,从而影响正常码流的传输,导致丢 包。

传输模块316,本模块是对最终各个宏块编码器产生的码流进行整合, 形成全帧码流,并将全帧码流发送给解码端32。

在实际应用中,如果采集到的画面全帧始终在变化,那么主要就是文字 类编码器和图片类编码器在编码,这时产生的码流就是有损的编码码流,但 由于此时画面是动态变化的,人眼不可能对动态变化的元素有太高的识别能 力,因此此时有损对于用户是可以接受的。

如果采集到的画面只有局部变化,例如此时的画面是一个窗口在被拖动, 那么人眼对于这个拖动中的窗口的内容是不敏感的,但是对于其他不变区域 的内容是敏感的。此时,图像采集模块311会上报变化区也就是变化的窗口 所存在的矩形区域。其他区域属于非变化区,宏块分类器就会将不变区域内 的宏块识别为不变宏块,并判断这些区域内的宏块位置是否之前产生过残差 码流,如果存在,则根据带宽分析模块315给的指示,是否带宽足够,如果 带宽足够,则将这些位置的宏块的残差数据打包入当前帧的编码码流中,并 将这些传残差数据的宏块的类型由“不变宏块”类型修改为“更新宏块”类 型。这两种类型的区别是,当解码端32解出某宏块类型是“不变宏块”的话, 将直接取参考帧该位置的宏块内容作为解码结果;如果解出某宏块类型是“更 新宏块”的话,将解它的残差数据包,将残差解出来后,和参考帧该位置的 宏块的内容相加,得到一个无损的宏块,作为解码结果。因此,编码端31 如果将一个宏块由“不变宏块”修改为“更新宏块”并携带该宏块的残差的话,解码端32就会将该宏块解出一个无损宏块。

如果采集到的画面是空的,即采集模块发现当前帧和参考帧相比完全一 样。则宏块分类器313就会首先将全帧宏块分类为不变宏块;然后根据当前 带宽情况,将全部或部分宏块修改为更新宏块类型,传他们的残差。需要说 明的是,当前带宽如果不够全部宏块都传残差,则优先传输之前编码为文字 类宏块的那些位置的宏块所产生的残差。因为文字类宏块细节较多,他们的 残差传到解码器后叠加原有损重建的宏块后,显示的细节更多,更容易提升 用户视觉效果。

解码端32的接收模块321接收编码端31由网络传输过来的编码数据。 解码模块322对编码数据进行识别并解码,其中,解码模块322中包括文字 宏块解码器、图片宏块解码器和残差解码器。

具体的,当解析到一个宏块类型是“更新宏块”时,说明码流中带的是 残差数据。使用huffman解码残差数据,并将解码后的内容和参考帧中该宏 块相加,得到当前帧的该宏块的无损图像。将所有宏块拼接在一起,形成整 帧图像。当解码完一帧时,根据参考帧切换的具体周期,更新并保存参考帧。 解码端保存的参考帧和编码端在帧号上是相同的,即两端是对应的。

本公开提供的编解码系统,通过获取当前帧,将当前帧中的宏块与参考 帧中的对应宏块进行比较,并对当前宏块进行标记,区分变化宏块和不变宏 块,若当前宏块是变化宏块,则进行第一有损编码,生成第一码流,若当前 宏块是不变宏块,则进行第二有损编码,生成第二码流,将第一码流和第二 码流进行整合后发送给解码端,解码端进行宏块识别并采用相应的解码器进 行解码。本公开提供的图像编解码系统是一种有损和无损结合的编解码系统。 当图像动态变化时为了平滑度和网络带宽而采用有损方式编码,当图像全部 或局部静止的时候,对静止区域采取编解码残差的方式形成无损区域,是取 得了带宽、帧率、用户体验的平衡的编解码方式。

本领域技术人员在考虑说明书及实践这里公开的公开后,将容易想到本 公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性 变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公 开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被 视为示例性的,本公开的真正范围和精神由下面的权利要求指出。

应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确 结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所 附的权利要求来限制。

相关技术
  • 图像编解码方法、图像编解码设备及网络系统
  • 一种图像层和分片层的编解码方法、编解码器和电子设备
技术分类

06120113062860