CN112839226A - 一种图像编码、解码方法、相关装置及存储介质 - Google Patents

一种图像编码、解码方法、相关装置及存储介质 Download PDF

Info

Publication number
CN112839226A
CN112839226A CN201911167495.6A CN201911167495A CN112839226A CN 112839226 A CN112839226 A CN 112839226A CN 201911167495 A CN201911167495 A CN 201911167495A CN 112839226 A CN112839226 A CN 112839226A
Authority
CN
China
Prior art keywords
macro block
coding
lossless coding
pixel
lossless
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.)
Granted
Application number
CN201911167495.6A
Other languages
English (en)
Other versions
CN112839226B (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.)
Sangfor Technologies Co Ltd
Original Assignee
Sangfor Technologies 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 Sangfor Technologies Co Ltd filed Critical Sangfor Technologies Co Ltd
Priority to CN201911167495.6A priority Critical patent/CN112839226B/zh
Publication of CN112839226A publication Critical patent/CN112839226A/zh
Application granted granted Critical
Publication of CN112839226B publication Critical patent/CN112839226B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation

Abstract

本申请实施例提供了一种图像编码、解码方法、相关装置及存储介质,用于在图像编码及解码的过程中,避免有损扩散现象的发生,提升图像的质量。本申请实施例方法包括:获取第一宏块,所述第一宏块为对输入的图像进行划分后得到的宏块;识别所述第一宏块的图像类型;当所述第一宏块的图像类型满足无损编码条件时,利用第一历史宏块对所述第一宏块执行第一无损编码处理,生成第一码流,其中,所述第一历史宏块为执行了所述第一无损编码处理或第二无损编码处理的宏块中的任一个。

Description

一种图像编码、解码方法、相关装置及存储介质
技术领域
本申请涉及图像编码技术领域,尤其涉及一种图像编码、解码方法、相关装置及存储介质。
背景技术
虚拟桌面是一种支持企业级实现桌面系统的远程动态访问与数据中心统一托管的技术。虚拟桌面利用虚拟化技术,实现数据和应用的集中管理,从服务器中虚拟多个桌面,客户通过客户端连接服务器使用桌面操作系统。虚拟桌面通过将个人桌面集中部署在数据中心,实现桌面统一管控,不仅能够节约硬件成本,而且能够节约管理成本和运维成本,同时为用户提供按需访问的云桌面。但是虚拟桌面基础架构需要实时传送大量图像数据,对带宽要求高,而广域网带宽通常是有限的,因此如何削减服务器和客户端之间的传输流量成为虚拟桌面基础架构的关键问题。
而服务器和客户端之间的流量削减主要依赖于对虚拟桌面图像的压缩,即对虚拟桌面图像的压缩率越高,则流量削减越明显,否则,流量削减越不明显。而申请人在研究的过程中发现,在现有的虚拟桌面图像压缩算法中,如果对于可以执行无损压缩的图片,在其进行压缩时,引用了执行过有损压缩算法的图片,这将会导致在图像解码时有损现象的扩散,从而降低桌面图像的质量。
发明内容
本申请实施例提供了一种图像编码、解码方法、相关装置及存储介质,用于在图像编码及解码的过程中,避免有损扩散现象的发生,提升图像的质量。
本申请实施例第一方面提供了一种图像编码方法,该方法包括:
获取第一宏块,所述第一宏块为对输入的图像进行划分后得到的宏块;
识别所述第一宏块的图像类型;
当所述第一宏块的图像类型满足无损编码条件时,利用第一历史宏块对所述第一宏块执行第一无损编码处理,生成第一码流,其中,所述第一历史宏块为执行了所述第一无损编码处理或第二无损编码处理的宏块中的任一个。
优选的,所述方法还包括:
当所述第一宏块的图像类型满足有损编码条件时,对所述第一宏块执行有损编码处理,生成第二码流。
优选的,所述方法还包括:
当所述第一宏块的图像类型满足无损编码条件时,对所述第一宏块执行所述第二无损编码处理,生成第三码流。
优选的,所述当所述第一宏块的图像类型满足无损编码条件时,利用第一历史宏块对所述第一宏块执行第一无损编码处理,生成第一码流,包括:
当所述第一宏块的图像类型满足无损编码条件时,将所述第一宏块输入无损编码模块,以令所述无损编码模块利用第一历史宏块对所述第一宏块执行第一无损编码处理,生成第一码流;
所述当所述第一宏块的图像类型满足有损编码条件时,对所述第一宏块执行有损编码处理,生成第二码流,包括:
当所述第一宏块的图像类型满足有损编码条件时,将所述第一宏块输入有损编码模块,以令所述有损编码模块对所述第一宏块执行有损编码处理,生成第二码流。
优选的,所述当所述第一宏块的图像类型满足无损编码条件时,利用第一历史宏块对所述第一宏块执行第一无损编码处理,生成第一码流,包括:
当所述第一宏块的图像类型满足无损编码条件时,将所述第一宏块输入至无损编码模块,以令所述无损编码模块基于第一无损编码的方式确定历史宏块的查找范围,并从查找范围内的历史宏块中查找到所述第一历史宏块时,利用所述第一历史宏块对所述第一宏块执行第一无损编码处理,生成第一码流;
所述当所述第一宏块的图像类型满足无损编码条件时,对所述第一宏块执行所述第二无损编码处理,生成第三码流,包括:
当所述第一宏块的图像类型满足无损编码条件时,将所述第一宏块输入至无损编码模块,以令所述无损编码模块基于第一无损编码的方式确定历史宏块的查找范围,并从查找范围内的历史宏块中无法查找到所述第一历史宏块时,对所述第一宏块执行第二无损编码处理,生成第三码流。
优选的,所述第一无损编码处理包括:轻量级无损编码和第一像素级无损编码,所述第一像素级无损编码为需要利用所述第一历史宏块执行编码的像素级无损编码方式;
所述第二无损编码处理包括:无需利用历史宏块执行编码的像素级无损编码方式。
优选的,所述图像类型包括:文本图像和自然图像;
所述无损编码条件为:所述第一宏块的图像类型为文本图像,所述有损编码条件为:所述第一宏块的图像类型为自然图像。
当所述第一宏块的图像类型满足无损编码条件时,利用第一历史宏块对所述第一宏块执行第一无损编码处理,生成第一码流,包括:
当所述第一宏块的图像类型为所述文本图像,且所述第一宏块满足第一预设条件时,对所述第一宏块执行轻量级无损编码处理,否则执行第一像素级无损编码处理。
优选的,所述第一预设条件包括:
所述第一宏块与前一图像对应位置的宏块重复,且所述前一图像对应位置的宏块执行了所述第一无损编码处理或所述第二无损编码处理;
或,
所述第一宏块的当前行或当前列与所述宏块的前一行或前一列都重复,且所述第一宏块的前一行或前一列执行了所述第一无损编码处理或所述第二无损编码处理;
或,
所述第一宏块为纯色图像;
或,
所述第一宏块与当前图像的任一宏块重复,且所述当前图像的任一宏块都执行了所述第一无损编码处理或所述第二无损编码处理;
或,
所述第一宏块与以前图像的任一宏块重复,且所述以前图像的任一宏块都执行了所述第一无损编码处理或所述第二无损编码处理。
优选的,第一码流数据包括:轻量级编码的类型标记信息及轻量级编码的参数信息,及第一像素级无损编码的像素数据、第一像素级无损编码的类型标记信息及第一像素级无损编码的参数信息;
第二码流数据包括:有损像素数据、有损像素级编码的类型标记信息及有损像素级编码的参数信息;
第三码流数据包括:第二像素级无损编码的像素数据、第二像素级无损编码的类型标记信息及第二像素级无损编码的参数信息。
优选的,所述方法还包括:
对所述轻量级编码的类型标记信息及轻量级编码的参数信息、所述第一像素级无损编码的类型标记信息及第一像素级无损编码的参数信息、所述有损像素级编码的类型标记信息及有损像素级编码的参数信息和所述第二像素级无损编码的类型标记信息及第二像素级无损编码的参数信息执行熵编码,生成第四码流;
将所述第一像素级无损编码的像素数据、所述第二像素级无损编码的像素数据及所述有损像素数据以独立码流的形式引入所述第四码流,生成第五码流。
本申请实施例第二方面提供了一种图像解码方法,包括:
获取第一码流,所述第一码流为利用第一历史宏块对所述第一宏块执行第一无损编码处理的码流,其中,所述第一历史宏块为执行了所述第一无损编码处理或第二无损编码处理的宏块中的任一个;
对所述第一码流执行与所述第一无损编码处理对应的解码处理,得到执行了第一无损编码的宏块。
优选的,所述方法还包括:
获取第二码流,所述第二码流为执行了有损编码的码流;
对所述第二码流执行与有损编码处理对应的解码处理,得到执行了有损编码的宏块。
优选的,所述方法还包括:
获取第三码流,所述第三码流为执行了第二无损编码的码流;
对所述第三码流执行与所述第二无损编码处理对应的解码处理,得到执行了第二无损编码的宏块;
根据所述第一无损编码的宏块、所述有损编码的宏块及所述第二无损编码的宏块,还原出被传输的图像。
优选的,所述第一无损编码处理包括:轻量级无损编码和第一像素级无损编码,所述第一像素级无损编码为需要利用所述第一历史宏块执行编码的像素级无损编码方式;
所述第二无损编码处理包括:无需利用历史宏块执行编码的像素级无损编码方式。
优选的,第一码流数据包括:轻量级编码的类型标记信息及轻量级编码的参数信息,及第一像素级无损编码的像素数据、第一像素级无损编码的类型标记信息及第一像素级无损编码的参数信息;
第二码流数据包括:有损像素数据、有损像素级编码的类型标记信息及有损像素级编码的参数信息;
第三码流数据包括:第二像素级无损编码的像素数据、第二像素级无损编码的类型标记信息及第二像素级无损编码的参数信息。
优选的,在所述获取第一码流之前,所述方法还包括:
获取终极码流,所述终极码流包括:所述第一像素级无损编码的像素数据、所述第二像素级无损编码的像素数据、所述有损像素数据和熵编码的第四码流;
对所述第四码流执行熵解码,得到所述轻量级编码的类型标记信息及轻量级编码的参数信息,所述第一像素级无损编码的类型标记信息及第一像素级无损编码的参数信息,所述有损像素级编码的类型标记信息及有损像素级编码的参数信息和所述第二像素级无损编码的类型标记信息及第二像素级无损编码的参数信息;
其中,所述轻量级编码的类型标记信息及轻量级编码的参数信息,所述第一像素级无损编码的像素数据、第一像素级无损编码的类型标记信息及第一像素级无损编码的参数信息组成所述第一码流;所述有损像素数据、有损像素级编码的类型标记信息及有损像素级编码的参数信息组成所述第二码流;所述第二像素级无损编码的像素数据、第二像素级无损编码的类型标记信息及第二像素级无损编码的参数信息组成所述第三码流。
本申请实施例第三方面提供了一种图像编码装置,包括:
第一获取模块,用于获取第一宏块,所述第一宏块为对输入的图像进行划分后得到的宏块;
识别模块,用于识别所述第一宏块的图像类型;
第一无损编码模块,用于当所述第一宏块的图像类型满足无损编码条件时,利用第一历史宏块对所述第一宏块执行第一无损编码处理,生成第一码流,其中,所述第一历史宏块为执行了所述第一无损编码处理或第二无损编码处理的宏块中的任一个。
优选的,所述装置还包括:
有损编码模块,当所述第一宏块的图像类型满足有损编码条件时,对所述第一宏块执行有损编码处理,生成第二码流。
优选的,所述装置还包括:
第二无损编码模块,用于当所述第一宏块的图像类型满足无损编码条件时,对所述第一宏块执行所述第二无损编码处,生成第三码流。
优选的,第一无损编码模块,具体用于:
当所述第一宏块的图像类型满足无损编码条件时,将所述第一宏块输入无损编码模块,以令所述无损编码模块利用第一历史模块对所述第一宏块执行第一无损编码处理,生成第一码流;
有损编码模块,具体用于:
当所述第一宏块的图像类型满足有损编码条件时,将所述第一宏块输入有损编码模块,以令所述有损编码模块对所述第一宏块执行有损编码处理,生成第二码流。
优选的,第一无损编码模块,具体用于:
当所述第一宏块的图像类型满足无损编码条件时,将所述第一宏块输入至无损编码模块,以令所述无损编码模块基于第一无损编码的方式确定历史宏块的查找范围,并从历史宏块中查找到所述第一历史宏块时,利用所述第一历史宏块对所述第一宏块执行第一无损编码处理,生成第一码流;
第二无损编码模块,具体用于:
当所述第一宏块的图像类型满足无损编码条件时,将所述第一宏块输入至无损编码模块,以令所述无损编码模块基于第一无损编码的方式确定历史宏块的查找范围,并从历史宏块中无法查找到所述第一历史宏块时,对所述第一宏块执行第二无损编码处理,生成第三码流。
优选的,所述第一无损编码处理包括:轻量级无损编码和第一像素级无损编码,所述第一像素级无损编码为需要利用所述第一历史宏块执行编码的像素级无损编码方式;
所述第二无损编码处理包括:无需利用历史宏块执行编码的像素级无损编码方式。
优选的,所述图像类型包括:文本图像和自然图像;
所述无损编码条件为:所述第一宏块的图像类型为文本图像,所述有损编码条件为:所述第一宏块的图像类型为自然图像。
第一无损编码模块,具体用于:
当所述第一宏块的图像类型为所述文本图像,且所述第一宏块满足第一预设条件时,对所述第一宏块执行轻量级无损编码处理,否则执行第一像素级无损编码处理。
优选的,所述第一预设条件包括:
所述第一宏块与前一图像对应位置的宏块重复,且所述前一图像对应位置的宏块执行了所述第一无损编码处理或所述第二无损编码处理;
或,
所述第一宏块的当前行或当前列与所述宏块的前一行或前一列都重复,且所述第一宏块的前一行或前一列执行了所述第一无损编码处理或所述第二无损编码处理;
或,
所述第一宏块为纯色图像;
或,
所述第一宏块与当前图像的任一宏块重复,且所述当前图像的任一宏块都执行了所述第一无损编码处理或所述第二无损编码处理;
或,
所述第一宏块与以前图像的任一宏块重复,且所述以前图像的任一宏块都执行了所述第一无损编码处理或所述第二无损编码处理。
优选的,第一码流数据包括:轻量级编码的类型标记信息及轻量级编码的参数信息,及第一像素级无损编码的像素数据、第一像素级无损编码的类型标记信息及第一像素级无损编码的参数信息;
第二码流数据包括:有损像素数据、有损像素级编码的类型标记信息及有损像素级编码的参数信息;
第三码流数据包括:第二像素级无损编码的像素数据、第二像素级无损编码的类型标记信息及第二像素级无损编码的参数信息。
优选的,所述装置还包括:
熵编码模块,用于对所述轻量级编码的类型标记信息及轻量级编码的参数信息、所述第一像素级无损编码的类型标记信息及第一像素级无损编码的参数信息、所述有损像素级编码的类型标记信息及有损像素级编码的参数信息和所述第二像素级无损编码的类型标记信息及第二像素级无损编码的参数信息执行熵编码,生成第四码流;
码流引入模块,用于将所述第一像素级无损编码的像素数据、所述第二像素级无损编码的像素数据及所述有损像素数据以独立码流的形式引入所述第四码流,生成第五码流。
本申请实施例第四方面提供了一种图像解码装置,包括:
第二获取模块,用于获取第一码流,所述第一码流为利用第一历史宏块对所述第一宏块执行第一无损编码处理的码流,其中,所述第一历史宏块为执行了所述第一无损编码处理或第二无损编码处理的宏块中的任一个;
第一解码模块,用于对所述第一码流执行与所述第一无损编码处理对应的解码处理,得到执行了第一无损编码的宏块。
优选的,所述第二获取模块,还用于:
获取第二码流,所述第二码流为执行了有损编码的码流;
所述装置还包括:
第二解码模块,用于对所述第二码流执行与有损编码处理对应的解码处理,得到执行了有损编码的宏块。
优选的,所述第二获取模块,还用于:
获取第三码流,所述第三码流为执行了第二无损编码的码流;
所述装置,还包括:
第三解码模块,用于对所述第三码流执行与所述第二无损编码处理对应的解码处理,得到执行了第二无损编码的宏块;
图像还原模块,用于根据所述第一无损编码的宏块、所述有损编码的宏块及所述第二无损编码的宏块,还原出被传输的图像。
优选的,所述第一无损编码处理包括:轻量级无损编码和第一像素级无损编码,所述第一像素级无损编码为需要利用所述第一历史宏块执行编码的像素级无损编码方式;
所述第二无损编码处理包括:无需利用历史宏块执行编码的像素级无损编码方式。
优选的,第一码流数据包括:轻量级编码的类型标记信息及轻量级编码的参数信息,及第一像素级无损编码的像素数据、第一像素级无损编码的类型标记信息及第一像素级无损编码的参数信息;
第二码流数据包括:有损像素数据、有损像素级编码的类型标记信息及有损像素级编码的参数信息;
第三码流数据包括:第二像素级无损编码的像素数据、第二像素级无损编码的类型标记信息及第二像素级无损编码的参数信息。
优选的,在所述获取第一码流之前,所述第二获取模块,还用于:
获取终极码流,所述终极码流包括:所述第一像素级无损编码的像素数据、所述第二像素级无损编码的像素数据、所述有损像素数据和熵编码的第四码流;
所述装置还包括:
熵解码模块,用于对所述第四码流执行熵解码,得到所述轻量级编码的类型标记信息及轻量级编码的参数信息,所述第一像素级无损编码的类型标记信息及第一像素级无损编码的参数信息,所述有损像素级编码的类型标记信息及有损像素级编码的参数信息和所述第二像素级无损编码的类型标记信息及第二像素级无损编码的参数信息;
其中,所述轻量级编码的类型标记信息及轻量级编码的参数信息,所述第一像素级无损编码的像素数据、第一像素级无损编码的类型标记信息及第一像素级无损编码的参数信息组成所述第一码流;所述有损像素数据、有损像素级编码的类型标记信息及有损像素级编码的参数信息组成所述第二码流;所述第二像素级无损编码的像素数据、第二像素级无损编码的类型标记信息及第二像素级无损编码的参数信息组成所述第三码流。
本申请实施例第五方面提供了一种计算机装置,包括处理器所述处理器在执行存储于存储器上的计算机程序时,用于实现本申请实施例第一方面提供的图像编码方法,或本申请实施例第二方面提供的图像解码方法。
本申请实施例第六方面提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,用于实现本申请实施例第一方面提供的图像编码方法,或本申请实施例第二方面提供的图像解码方法。
从以上技术方案可以看出,本申请实施例具有以下优点:
本申请实施例中,获取第一宏块,所述第一宏块为对输入的图像进行划分后得到的宏块;识别所述第一宏块的图像类型;当所述第一宏块的图像类型满足无损编码条件时,利用第一历史宏块对所述第一宏块执行第一无损编码处理,生成第一码流,其中,所述第一历史宏块为执行了所述第一无损编码处理或第二无损编码处理的宏块中的任一个。因为在图像编码中,限定无损编码过程中所引用的第一历史宏块为执行了第一无损编码处理或第二无损编码处理的宏块,从而避免了无损编码过程中,引用执行有损编码宏块这一现象的发生,即避免了有损扩散现象的发生,提升了无损编码图像的质量。
附图说明
图1为本申请实施例中一种图像编码方法的一个实施例示意图;
图2为本申请实施例中一种图像编码方法的另一个实施例示意图;
图3为本申请实施例中一种图像编码方法的另一个实施例示意图;
图4为本申请实施例中一种图像编码方法的另一个实施例示意图;
图5为本申请实施例中图1实施例步骤103的细化步骤;
图6为本申请实施例中一种图像编码方法的另一个实施例示意图:
图7为本申请实施例中图像解码方法的一个实施例示意图;
图8为本申请实施例中图像解码方法的另一个实施例示意图;
图9为本申请实施例中图像解码方法的另一个实施例示意图;
图10为本申请实施例中图像编码装置的一个实施例示意图;
图11为本申请实施例中图像解码装置的一个实施例示意图。
具体实施方式
本申请实施例提供了一种图像编码、解码方法、相关装置及存储介质,用于在图像编码及解码的过程中,避免有损扩散现象的发生,提升图像的质量。
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
针对现有技术中图像在压缩时,存在的有损扩散现象,本申请实施例提出了一种图像压缩、解压方法,用于避免图像压缩中的有损扩散现象,提升图像质量。
为方便理解,下面对本申请实施例中的图像压缩方法进行描述,请参阅图1,本申请实施例中一种图像压缩方法的一个实施例,包括:
101、获取第一宏块,所述第一宏块为对输入的图像进行划分后得到的宏块;
本实施例中,用户通过计算机或移动终端登陆虚拟机访问虚拟桌面,相当于服务器通过自身虚拟化将对应于该用户的虚拟桌面操作系统,通过专有的虚拟桌面协议发送给该用户,而为了对服务器和客户端之间的流量进行削减,一种方法是对待传输的当前图像进行压缩。
而在对当前图像压缩前,需要先获取待传输的当前图像,而为了提高图像的压缩率,可以减小桌面图像的压缩单位,即将当前图像划分为多个宏块,其中宏块的尺寸为16*16的像素小块,或64*64的像素小块,其中宏块的尺寸可以根据压缩需求而定,此处不做具体限制。
本实施例中的第一宏块,即为对图像进行划分后而得到的任一宏块,而输入的图像即为待传输的当前图像。
102、识别所述第一宏块的图像类型;
而为了提高图像的压缩率,本实施例中对不同的宏块采用不同的压缩方法。在对不同的宏块采用不同的压缩方法前,需要先识别每个宏块的图像类型,一般图像类型包括文本图像和自然图像。
具体的,因为文本图像有着区别于自然图像的特征:如文本图像的颜色通常较少,如黑底白字或白底黑字且不同颜色种类的像素个数相差较大,而自然图像的颜色分布更加连续且均匀,颜色种类较多;文本图像往往有着更为明显和锐利的边缘,而自然图像在不同颜色边缘处会明显的更加柔和。
基于上述区别特征,可以从各像素宏块中提取到相关特征信息,并基于这些特征信息计算得到包括颜色特征参数和梯度特征参数在内的区别特征,以便于与真正文本图像的区别特征参数范围进行匹配,以判定当前宏块属于文本图像还是自然图像。
此外,除了上述区别特征,还可以基于一些辅助判断特征,如各像素宏块的像素值行列和信息,以及相邻各像素宏块间的关联性参数等,以便于在上述区别特征的基础上,增加图像类型判断的准确率。
需要说明的是,上述只是对宏块图像类型识别方法的举例说明,此处只要可以识别第一宏块的图像类型即可,此处对识别第一宏块图像类型的方法不做具体限制。
103、当所述第一宏块的图像类型满足无损编码条件时,利用第一历史宏块对所述第一宏块执行第一无损编码处理,生成第一码流,其中,所述第一历史宏块为执行了所述第一无损编码处理或第二无损编码处理的宏块中的任一个。
具体的,因为文本图像较自然图像而言,像素个数较少,所以一般对文本类图像采用无损压缩算法,既不损失画面质量,也能大大降低数据码流;而自然图像的像素个数较多,所以对自然图像一般采用有损压缩算法,虽然画面质量会有一定损失,但数据码流确会大大降低。故一般对文本图像采用无损编码方式,而对自然图像采用有损编码方式。
故第一宏块的图像类型满足无损编码条件,即第一宏块的图像类型为文本图像时,利用第一历史宏块对第一宏块执行第一无损编码处理,生成第一码流,其中,第一历史宏块为执行了第一无损编码处理或第二无损编码处理的宏块中的任一个。
此处,第一无损编码处理为需要利用第一历史宏块执行无损编码的编码方式,一般包括轻量级无损编码和需要利用第一历史宏块的第一像素级无损编码方式,第二无损编码处理为无需利用历史宏块的第二像素级无损编码方式。至于像素级无损编码方式,在编码的过程中,是否需要利用历史宏块,主要取决于像素级无损编码的具体算法,此处不再赘述。
本申请实施例中,获取第一宏块,所述第一宏块为对输入的图像进行划分后得到的宏块;识别所述第一宏块的图像类型;当所述第一宏块的图像类型满足无损编码条件时,利用第一历史宏块对所述第一宏块执行第一无损编码处理,生成第一码流,其中,所述第一历史宏块为执行了所述第一无损编码处理或第二无损编码处理的宏块中的任一个。因为在图像编码中,限定无损编码过程中所引用的第一历史宏块为执行了第一无损编码处理或第二无损编码处理的宏块,从而避免了无损编码过程中,引用执行有损编码宏块这一现象的发生,即避免了有损扩散现象的发生,提升了无损编码图像的质量。
基于图1所述的实施例,下面接着对第一宏块的图像类型为自然图像时,第一宏块的编码过程进行描述,请参阅图2,本申请实施例中图像编码方法的另一实施例,包括:
201、当所述第一宏块的图像类型满足有损编码条件时,对所述第一宏块执行有损编码处理,生成第二码流;
当第一宏块的图像类型满足有损编码条件,即第一宏块的图像类型为自然图像时,对第一宏块执行有损编码处理,以生成第二码流,本实施例中,为了最大化的减小码流,此处的有损编码的方式为能够利用帧间信息或具有全局字典的压缩算法。
202、当所述第一宏块的图像类型满足无损编码条件时,对所述第一宏块执行所述第二无损编码处理,生成第三码流。
基于图1所述的实施例,当在历史宏块中查找不到第一历史宏块时,则无法对第一宏块执行第一无损编码处理,则可以进一步在第一宏块的图像类型为文本图像时,对第一宏块执行第二无损编码处理,生成第三码流,其中,第二无损编码处理为无需利用第一历史宏块执行无损编码的编码方式。
本申请实施例中,对第一宏块满足有损编码条件的编码方式,及第一宏块满足无损编码条件,但不能执行第一无损编码时,所执行的第二编码方式做了详细描述,一方面第二无损编码方式可以作为对第一无损编码方式的补充,保证对文本图像宏块的编码质量,另一方面对满足有损编码条件的第一宏块执行有损编码,从而在避免有损扩散现象的前提下,提升了对图像编码的灵活性。
在实际应用场景中,为了使得无损编码和有损编码方式之间不会相互引用,可以将无损编码和有损编码分别对应各自的独立码流,即还可以通过以下方式对无损编码和有损编码的码流进行限制,请参阅图3,本申请实施例中图像编码方法的另一实施例,包括:
301、当所述第一宏块的图像类型满足无损编码条件时,将所述第一宏块输入无损编码模块,以令所述无损编码模块利用第一历史宏块对所述第一宏块执行第一无损编码处理,生成第一码流;
当第一宏块的图像类型满足无损编码条件,即第一宏块为文本图像时,将第一宏块输入无损编码模块,以令无损编码模块利用第一历史宏块对第一宏块执行第一无损编码处理,生成第一码流。
本实施例中,将满足无损编码条件的宏块,输入单独的处理模块,即无损编码模块,使得无损编码模块的数据流与有损编码模块的数据流之间保持相互独立,即不发生交叉引用,从而避免了有损扩散现象。
302、当所述第一宏块的图像类型满足有损编码条件时,将所述第一宏块输入有损编码模块,以令所述有损编码模块对所述第一宏块执行有损编码处理,生成第二码流。
当第一宏块的图像满足无损编码条件时,将第一宏块输入有损编码模块,以令有损编码模块对第一宏块执行有损编码处理,生成第二码流。因为将满足有损编码条件的第一宏块,输入至有损编码模块进行处理,从而使得有损编码的码流只经过有损编码模块,即有损编码码流与无损编码的码流不发生交叉引用,同时将不同类型的宏块输入至各自对应的编码模块中进行处理,也提升了对宏块的编码效率。
本申请实施例中,通过无损编码模块和有损编码模块,使得有损编码码流和无损编码码流之间保持相互独立,即不交叉引用,且将不同类型的宏块输入至各自对应的编码模块中进行处理,也提升了对宏块的编码效率。
基于图1和图2所述的实施例,下面接着对当第一宏块满足无损编码条件时,对第一宏块执行第一无损编码和第二无损编码的条件进行描述,请参阅图4,本申请实施例中图像编码方法的另一个实施例,包括:
401、当所述第一宏块的图像类型满足无损编码条件时,将所述第一宏块输入至无损编码模块,以令所述无损编码模块基于第一无损编码的方式确定历史宏块的查找范围,并从所述查找范围内的历史宏块中查找到所述第一历史宏块时,利用所述第一历史宏块对所述第一宏块执行第一无损编码处理,生成第一码流;
具体的,当第一宏块的图像类型满足无损编码条件,即第一宏块的图像类型为文本图像时,将第一宏块输入至无损编码模块,使得无损编码模块先根据第一无损编码的方式确定历史宏块的查找范围,如当第一无损编码方式为轻量级无损编码方式时,则历史宏块的查找范围为所有已执行编码的历史宏块,当第一无损编码方式为第一像素级无损编码方式时,若该编码方式限定历史宏块的查找范围为当前宏块前5帧图像中的历史宏块,则对应的查找范围为当前宏块前5帧图像中已经执行编码的历史宏块,若第一像素级编码方式不限定历史宏块的查找范围,则一般从所有已执行编码的历史宏块中进行查找。
当在查找范围内的历史宏块中找到的匹配的历史宏块,则进一步判断匹配的历史宏块,是否为第一历史宏块,即判断匹配的历史宏块,是否执行的是第一无损编码方式或第二无损编码方式,若是,也即在查找范围内的历史宏块中找到了第一历史宏块,则利用该第一历史宏块对所述第一宏块执行第一无损编码处理,生成第一码流。
402、当所述第一宏块的图像类型满足无损编码条件时,将所述第一宏块输入至无损编码模块,以令所述无损编码模块基于第一无损编码的方式确定历史宏块的查找范围,并从历史宏块中无法查找到所述第一历史宏块时,对所述第一宏块执行第二无损编码处理,生成第三码流。
具体的,当第一宏块的图像类型满足无损编码条件,即第一宏块的图像类型为自然图像,将第一宏块输入至无损编码模块,使得无损编码模块先根据第一无损编码的方式确定历史宏块的查找范围,具体历史宏块的查找范围与步骤401中描述的类似,此处不再赘述。
若在查找范围内的历史宏块中找不到匹配的历史宏块,也即找不到第一历史宏块,或者是找到匹配的历史宏块,但进一步判断匹配的历史宏块执行的是有损编码方式,即在查找范围内的历史宏块中没有查找到第一历史宏块时,则对第一宏块执行第二无损编码,生成第三码流。
本申请实施例中,当第一宏块满足无损编码条件时,对第一宏块执行第一无损编码和第二无损编码的条件做了详细描述,提升了本申请实施例的可实施性。
基于图1所述实施例中的步骤103,因为第一无损编码包括轻量级及无损编码和第一像素级无损编码,而当第一宏块的图像类型满足无损编码条件时,如何区分执行轻量级无损编码和第一像素级无损编码的条件,下面将做详细描述,请参阅图5,图5为图1实施例中步骤103的细化步骤:
501、当所述第一宏块的图像类型为所述文本图像,且所述第一宏块满足第一预设条件时,对所述第一宏块执行轻量级无损编码处理,否则执行第一像素级无损编码处理。
当第一宏块的图像类型为文本图像,且第一宏块满足第一预设条件时,对第一宏块执行轻量级无损编码处理,否则执行第一像素级无损编码处理。此处,所谓轻量级编码,即对宏块本身的像素内容不需要编码,只需对该宏块做简单的标记,便可以在解码程序中,通过该标记信息对宏块的像素内容进行恢复。而第一像素级无损编码处理,即在无损编码过程中,需要引用无损编码的历史宏块而执行的编码过程。
具体的,第一预设条件包括:①所述第一宏块与前一图像对应位置的宏块重复,且所述前一图像对应位置的宏块执行了第一无损编码处理或第二无损编码处理,即当前图像中该宏块与上一帧图像对应位置的宏块相同,且上一帧图像对应位置的宏块执行了第一无损编码处理或第二无损编码处理时,则轻量级编码只需记录轻量级编码的类型,即第一宏块满足第一预设条件中的哪个类型,在后续的解码程序中,便可根据上一帧图像中对应位置的宏块对第一宏块进行恢复;或②第一宏块的当前行或当前列与所述宏块的前一行或前一列都重复,且第一宏块的前一行或前一列执行了第一无损编码处理或第二无损编码处理,对应在图像上,即该图像为横格子或竖格子,则轻量级编码只需记录轻量级编码的类型,即该宏块满足第一预设条件中的哪个类型,在后续的解码程序中,便可根据前一行或前一列的像素对第一宏块进行恢复;或③第一宏块为纯色图像;若当前宏块为纯色图像时,轻量级编码只需记录轻量级编码的类型和轻量级编码的参数信息,其中参数信息至少包括:该宏块的颜色信息,而轻量级编码的类型即该宏块满足第一预设条件中的哪个类型;在后续的解码程序中,便可根据宏块的颜色信息对该宏块进行恢复;或④第一宏块与当前图像的任一宏块重复,且所述任一宏块执行了第一无损编码处理或第二无损编码处理;此时,轻量级编码需要记录轻量级编码的类型和轻量级编码的参数信息,其中参数信息至少包括:与第一宏块相同(重复)宏块的位置坐标,而轻量级编码的类型即该宏块满足第一预设条件中的哪个类型,这样,在后续的解码程序中,便可根据与第一宏块相同(重复)宏块的位置坐标,找到重复宏块,以对第一宏块进行恢复;或⑤第一宏块与以前图像的任一宏块重复,且所述任一宏块执行了第一无损编码处理或第二无损编码处理,此时,轻量级编码需要记录轻量级编码的类型和轻量级编码的参数信息,其中参数信息至少包括:以前图像中与第一宏块相同(重复)宏块的位置坐标,而轻量级编码的类型即该宏块满足第一预设条件中的哪个类型,这样,在后续的解码程序中,便可根据以前图像中与第一宏块相同(重复)宏块的位置坐标,找到重复宏块,以对第一宏块进行恢复。
本申请实施例中,对执行轻量级无损编码和第一像素级无损编码的条件做了详细描述,使得满足第一预设条件的第一宏块执行轻量级无损编码处理,不满足第一预设条件的第一宏块执行第一像素级无损编码处理,以最大化的削减图像码流。
基于图1至图5所述的实施例,因为第一码流对应执行的是第一无损编码处理,第二码流对应执行的是有损编码处理,第三码流执行的是第二无损编码处理,故第一码流数据包括:轻量级编码的类型标记信息及轻量级编码的参数信息,及第一像素级无损编码的像素数据、第一像素级无损编码的类型标记信息及第一像素级无损编码的参数信息;
第二码流数据包括:有损像素数据、有损像素级编码的类型标记信息及有损像素级编码的参数信息;
第三码流数据包括:第二像素级无损编码的像素数据、第二像素级无损编码的类型标记信息及第二像素级无损编码的参数信息。
而为了进一步削减服务器和客户端之间的流量,还可以对编码后的宏块所产生的第一码流数据、第二码流数据及第三码流数据进一步进行编码,请参阅图6,本申请实施例中的一种图像编码方法的另一个实施例包括:
601、对所述轻量级编码的类型标记信息及轻量级编码的参数信息、所述第一像素级无损编码的类型标记信息及第一像素级无损编码的参数信息、所述有损像素级编码的类型标记信息及有损像素级编码的参数信息和所述第二像素级无损编码的类型标记信息及第二像素级无损编码的参数信息执行熵编码,生成第四码流;
为了进一步提高服务器和客户端之间流量的削减率,可以进一步对第一码流中的轻量级编码的类型标记信息及轻量级编码的参数信息、第一像素级无损编码的类型标记信息及第一像素级无损编码的参数信息;以及第二码流数据中的有损像素级编码的类型标记信息及有损像素级编码的参数信息;以及第三码流数据中的第二像素级无损编码的类型标记信息及第二像素级无损编码的参数信息执行熵编码,以进一步提高流量削减率。
具体的,因为上述信息都属于文字信息,故还可以通过熵编码策略,如适应性二元算数编码(CABAC)策略对其做进一步的编码,以生成第四码流,以进一步减少服务器端和客户端之间的流量。
602、将所述第一像素级无损编码的像素数据、所述第二像素级无损编码的像素数据及所述有损像素数据以独立码流的形式引入所述第四码流,生成第五码流。
因为一般像素级编码策略(包括第一像素级无损编码策略、第二像素级无损编码策略和有损像素级编码策略)中已经包括熵编码,故像素数据(包括第一像素级无损编码的像素数据、第二像素级无损编码的像素数据和有损编码的像素数据)都为经过熵编码的数据,所以将像素数据以独立码流的形式引入第四码流,生成第五码流。
当第五码流传输到客户端后,客户端对该第五码流进行缓存,并根据对应的解码策略,对传输的图像进行还原显示。
本申请实施例中,对第一码流数据、第二码流数据和第三码流数据执行熵编码的过程做了进一步的描述,且上述熵编码的过程进一步缩减了服务器端和客户端之间的流量,提升了码流的削减率。
上面对本申请实施例中的图像编码方法做了描述,下面接着对本申请实施例中的图像解码方法进行描述,请参阅图7,本申请实施例中一种图像解码方法的一个实施例,包括:
701、获取第一码流,所述第一码流为利用第一历史宏块对所述第一宏块执行第一无损编码处理的码流,其中,所述第一历史宏块为执行了所述第一无损编码处理或第二无损编码处理的宏块中的任一个;
对应于图1所述的实施例,当步骤103中的第一码流到达图像解码装置后,图像解码装置获取该第一码流,并对第一码流执行步骤702。
具体的,第一码流为利用第一历史宏块对第一宏块执行第一无损编码处理的码流,其中,第一历史宏块为执行了第一无损编码处理或第二无损编码处理的宏块中的任一个。
需要说明的是,本实施例中的第一无损编码处理包括:轻量级无损编码和第一像素级无损编码,其中,第一像素级无损编码为需要利用第一历史宏块执行编码的像素级无损编码方式。
702、对所述第一码流执行与所述第一无损编码处理对应的解码处理,得到执行了第一无损编码的宏块。
当第一码流到达图像解码装置后,图像解码装置对第一码流执行与第一无损编码处理对应的解码处理,得到执行了第一无损编码的宏块。
本申请实施例中,解码端的第一码流,对应的也为编码端的第一码流,而编码端在做第一无损编码过程中,限制所利用的第一历史宏块为执行了第一无损编码处理或第二无损编码处理的宏块,故在解码端的第一码流中,第一码流所利用的第一历史宏块也为执行了第一无损编码处理或第二无损编码处理的宏块,故在解码时也对应可以避免有损扩散现象,提升图像的质量。
基于图7所述的实施例,在获取第一无损编码的宏块后,还包括以下的步骤,请参阅图8,本申请实施例中图像解码方法的另一个实施例,包括:
801、获取第二码流,所述第二码流为执行了有损编码的码流;
对应于图2所述的实施例,当第二码流到达图像解码装置后,图像解码装置获取该第二码流,其中,第二码流为执行了有损编码的码流。
802、对所述第二码流执行与有损编码处理对应的解码处理,得到执行了有损编码的宏块;
对第二码流执行与有损编码编码对应的解码处理,得到执行了有损编码的宏块。
803、获取第三码流,所述第三码流为执行了第二无损编码的码流;
当第三码流到达图像解码装置后,图像解码装置对应获取该第三码流,其中,第三码流为执行了第二无损编码的码流。
其中,第二无损编码处理为无需利用历史宏块执行编码的像素级无损编码方式。
804、对所述第三码流执行与所述第二无损编码处理对应的解码处理,得到执行了第二无损编码的宏块;
对第三码流执行与第二无损编码处理对应的解码处理,得到执行了第二无损编码的宏块。
805、根据所述第一无损编码的宏块、所述有损编码的宏块及所述第二无损编码的宏块,还原出被传输的图像。
图像解码装置得到第一无损编码的宏块、所述有损编码的宏块及所述第二无损编码的宏块后,因解码端和编码端对宏块的划分方法相同,故图像解码装置根据多个不同宏块中各个宏块的顺序信息,还原出当前图像。
图7及图8实施例中的第一码流数据包括:轻量级编码的类型标记信息及轻量级编码的参数信息,及第一像素级无损编码的像素数据、第一像素级无损编码的类型标记信息及第一像素级无损编码的参数信息;
第二码流数据包括:有损像素数据、有损像素级编码的类型标记信息及有损像素级编码的参数信息;
第三码流数据包括:第二像素级无损编码的像素数据、第二像素级无损编码的类型标记信息及第二像素级无损编码的参数信息。
对应于图6所述的实施例,图像解码装置在获取第一码流之前,还包括以下的步骤,请参阅图9,本申请实施例中图像解码方法的另一个实施例,包括:
901、获取终极码流,所述终极码流包括:所述第一像素级无损编码的像素数据、所述第二像素级无损编码的像素数据、所述有损像素数据和熵编码的第四码流;
对应于图6所述的实施例,为了进一步减少码流,图像编码装置分别对对所述轻量级编码的类型标记信息及轻量级编码的参数信息、所述第一像素级无损编码的类型标记信息及第一像素级无损编码的参数信息、所述有损像素级编码的类型标记信息及有损像素级编码的参数信息和所述第二像素级无损编码的类型标记信息及第二像素级无损编码的参数信息执行了熵编码,故对应的在图像解码装置端,图像解码装置第一时间获取到的终极码流包括:所述第一像素级无损编码的像素数据、所述第二像素级无损编码的像素数据、所述有损像素数据和熵编码的第四码流,其中第四码流数据包括:所述轻量级编码的类型标记信息及轻量级编码的参数信息,所述第一像素级无损编码的类型标记信息及第一像素级无损编码的参数信息,所述有损像素级编码的类型标记信息及有损像素级编码的参数信息和所述第二像素级无损编码的类型标记信息及第二像素级无损编码的参数信息。
902、对所述第四码流执行熵解码,得到所述轻量级编码的类型标记信息及轻量级编码的参数信息,所述第一像素级无损编码的类型标记信息及第一像素级无损编码的参数信息,所述有损像素级编码的类型标记信息及有损像素级编码的参数信息和所述第二像素级无损编码的类型标记信息及第二像素级无损编码的参数信息;
其中,所述轻量级编码的类型标记信息及轻量级编码的参数信息,所述第一像素级无损编码的像素数据、第一像素级无损编码的类型标记信息及第一像素级无损编码的参数信息组成所述第一码流;所述有损像素数据、有损像素级编码的类型标记信息及有损像素级编码的参数信息组成所述第二码流;所述第二像素级无损编码的像素数据、第二像素级无损编码的类型标记信息及第二像素级无损编码的参数信息组成所述第三码流。
当对第四码流执行熵解码后,得到所述轻量级编码的类型标记信息及轻量级编码的参数信息,所述第一像素级无损编码的类型标记信息及第一像素级无损编码的参数信息,所述有损像素级编码的类型标记信息及有损像素级编码的参数信息和所述第二像素级无损编码的类型标记信息及第二像素级无损编码的参数信息;
其中,所述轻量级编码的类型标记信息及轻量级编码的参数信息,所述第一像素级无损编码的像素数据、第一像素级无损编码的类型标记信息及第一像素级无损编码的参数信息组成所述第一码流;所述有损像素数据、有损像素级编码的类型标记信息及有损像素级编码的参数信息组成所述第二码流;所述第二像素级无损编码的像素数据、第二像素级无损编码的类型标记信息及第二像素级无损编码的参数信息组成所述第三码流。
对应于图6所述的实施例,图像解码装置在获取第一码流之前,需要先对终极码流中的第四码流执行熵解码,以得到对应的第一码流、第二码流和第三码流。
上面对本申请实施例中的图像编码方法和图像解码方法进行了描述,下面接着对本申请实施例中的图像编码装置进行描述,请参阅图10,本申请实施例中图像编码装置的一个实施例,包括:
第一获取模块1001,用于获取第一宏块,所述第一宏块为对输入的图像进行划分后得到的宏块;
识别模块1002,用于识别所述第一宏块的图像类型;
第一无损编码模块1003,用于当所述第一宏块的图像类型满足无损编码条件时,利用第一历史宏块对所述第一宏块执行第一无损编码处理,生成第一码流,其中,所述第一历史宏块为执行了所述第一无损编码处理或第二无损编码处理的宏块中的任一个。
优选的,所述装置还包括:
有损编码模块1004,当所述第一宏块的图像类型满足有损编码条件时,对所述第一宏块执行有损编码处理,生成第二码流。
优选的,所述装置还包括:
第二无损编码模块1005,用于当所述第一宏块的图像类型满足无损编码条件时,对所述第一宏块执行所述第二无损编码处,生成第三码流。
优选的,第一无损编码模块1003,具体用于:
当所述第一宏块的图像类型满足无损编码条件时,将所述第一宏块输入无损编码模块,以令所述无损编码模块利用第一历史模块对所述第一宏块执行第一无损编码处理,生成第一码流;
有损编码模块1004,具体用于:
当所述第一宏块的图像类型满足有损编码条件时,将所述第一宏块输入有损编码模块,以令所述有损编码模块对所述第一宏块执行有损编码处理,生成第二码流。
优选的,第一无损编码模块1003,具体用于:
当所述第一宏块的图像类型满足无损编码条件时,将所述第一宏块输入至无损编码模块,以令所述无损编码模块基于第一无损编码的方式确定历史宏块的查找范围,并从历史宏块中查找到所述第一历史宏块时,利用所述第一历史宏块对所述第一宏块执行第一无损编码处理,生成第一码流;
第二无损编码模块1005,具体用于:
当所述第一宏块的图像类型满足无损编码条件时,将所述第一宏块输入至无损编码模块,以令所述无损编码模块基于第一无损编码的方式确定历史宏块的查找范围,并从历史宏块中无法查找到所述第一历史宏块时,对所述第一宏块执行第二无损编码处理,生成第三码流。
优选的,所述第一无损编码处理包括:轻量级无损编码和第一像素级无损编码,所述第一像素级无损编码为需要利用所述第一历史宏块执行编码的像素级无损编码方式;
所述第二无损编码处理包括:无需利用历史宏块执行编码的像素级无损编码方式。
优选的,所述图像类型包括:文本图像和自然图像;
所述无损编码条件为:所述第一宏块的图像类型为文本图像,所述有损编码条件为:所述第一宏块的图像类型为自然图像。
第一无损编码模块1003,具体用于:
当所述第一宏块的图像类型为所述文本图像,且所述第一宏块满足第一预设条件时,对所述第一宏块执行轻量级无损编码处理,否则执行第一像素级无损编码处理。
优选的,所述第一预设条件包括:
所述第一宏块与前一图像对应位置的宏块重复,且所述前一图像对应位置的宏块执行了所述第一无损编码处理或所述第二无损编码处理;
或,
所述第一宏块的当前行或当前列与所述宏块的前一行或前一列都重复,且所述第一宏块的前一行或前一列执行了所述第一无损编码处理或所述第二无损编码处理;
或,
所述第一宏块为纯色图像;
或,
所述第一宏块与当前图像的任一宏块重复,且所述当前图像的任一宏块都执行了所述第一无损编码处理或所述第二无损编码处理;
或,
所述第一宏块与以前图像的任一宏块重复,且所述以前图像的任一宏块都执行了所述第一无损编码处理或所述第二无损编码处理。
优选的,第一码流数据包括:轻量级编码的类型标记信息及轻量级编码的参数信息,及第一像素级无损编码的像素数据、第一像素级无损编码的类型标记信息及第一像素级无损编码的参数信息;
第二码流数据包括:有损像素数据、有损像素级编码的类型标记信息及有损像素级编码的参数信息;
第三码流数据包括:第二像素级无损编码的像素数据、第二像素级无损编码的类型标记信息及第二像素级无损编码的参数信息。
优选的,所述装置还包括:
熵编码模块1006,用于对所述轻量级编码的类型标记信息及轻量级编码的参数信息、所述第一像素级无损编码的类型标记信息及第一像素级无损编码的参数信息、所述有损像素级编码的类型标记信息及有损像素级编码的参数信息执行熵编码,生成第四码流;
码流引入模块1007,用于将所述第一像素级无损编码的像素数据、所述第二像素级无损编码的像素数据及所述有损像素数据以独立码流的形式引入所述第四码流,生成第五码流。
需要说明的是,本申请实施例中各模块的作用与图1至图6实施例中描述的类似,此处不再赘述。
本申请实施例中,通过第一获取模块1001获取第一宏块,所述第一宏块为对输入的图像进行划分后得到的宏块;通过识别模块1002识别所述第一宏块的图像类型;当所述第一宏块的图像类型满足无损编码条件时,通过第一无损编码模块1003利用第一历史宏块对所述第一宏块执行第一无损编码处理,生成第一码流,其中,所述第一历史宏块为执行了所述第一无损编码处理或第二无损编码处理的宏块中的任一个。因为在图像编码中,限定无损编码过程中所引用的第一历史宏块为执行了第一无损编码处理或第二无损编码处理的宏块,从而避免了无损编码过程中,引用执行有损编码宏块这一现象的发生,即避免了有损扩散现象的发生,提升了无损编码图像的质量。
下面接着对本申请实施例中的图像解码装置进行描述,请参阅图11,本申请实施例中图像解码装置的一个实施例,包括:
第二获取模块1101,用于获取第一码流,所述第一码流为利用第一历史宏块对所述第一宏块执行第一无损编码处理的码流,其中,所述第一历史宏块为执行了所述第一无损编码处理或第二无损编码处理的宏块中的任一个;
第一解码模块1102,用于对所述第一码流执行与所述第一无损编码处理对应的解码处理,得到执行了第一无损编码的宏块。
优选的,所述第二获取模块1101,还用于:
获取第二码流,所述第二码流为执行了有损编码的码流;
所述装置还包括:
第二解码模块1103,用于对所述第二码流执行与有损编码处理对应的解码处理,得到执行了有损编码的宏块。
优选的,所述第二获取模块1101,还用于:
获取第三码流,所述第三码流为执行了第二无损编码的码流;
所述装置,还包括:
第三解码模块1104,用于对所述第三码流执行与所述第二无损编码处理对应的解码处理,得到执行了第二无损编码的宏块;
图像还原模块1105,用于根据所述第一无损编码的宏块、所述有损编码的宏块及所述第二无损编码的宏块,还原出被传输的图像。
优选的,所述第一无损编码处理包括:轻量级无损编码和第一像素级无损编码,所述第一像素级无损编码为需要利用所述第一历史宏块执行编码的像素级无损编码方式;
所述第二无损编码处理包括:无需利用历史宏块执行编码的像素级无损编码方式。
优选的,第一码流数据包括:轻量级编码的类型标记信息及轻量级编码的参数信息,及第一像素级无损编码的像素数据、第一像素级无损编码的类型标记信息及第一像素级无损编码的参数信息;
第二码流数据包括:有损像素数据、有损像素级编码的类型标记信息及有损像素级编码的参数信息;
第三码流数据包括:第二像素级无损编码的像素数据、第二像素级无损编码的类型标记信息及第二像素级无损编码的参数信息。
优选的,在所述获取第一码流之前,所述第二获取模块1101,还用于:
获取终极码流,所述终极码流包括:所述第一像素级无损编码的像素数据、所述第二像素级无损编码的像素数据、所述有损像素数据和熵编码的第四码流;
所述装置还包括:
熵解码模块1106,用于对所述第四码流执行熵解码,得到所述轻量级编码的类型标记信息及轻量级编码的参数信息,所述第一像素级无损编码的类型标记信息及第一像素级无损编码的参数信息,所述有损像素级编码的类型标记信息及有损像素级编码的参数信息和所述第二像素级无损编码的类型标记信息及第二像素级无损编码的参数信息;
其中,所述轻量级编码的类型标记信息及轻量级编码的参数信息,所述第一像素级无损编码的像素数据、第一像素级无损编码的类型标记信息及第一像素级无损编码的参数信息组成所述第一码流;所述有损像素数据、有损像素级编码的类型标记信息及有损像素级编码的参数信息组成所述第二码流;所述第二像素级无损编码的像素数据、第二像素级无损编码的类型标记信息及第二像素级无损编码的参数信息组成所述第三码流。
本申请实施例中,第二获取模块1101获取的的第一码流,对应的也为编码端的第一码流,而编码端在做第一无损编码过程中,限制所利用的第一历史宏块为执行了第一无损编码处理或第二无损编码处理的宏块,故在解码端的第一码流中,第一码流所利用的第一历史宏块也为执行了第一无损编码处理或第二无损编码处理的宏块,故在解码时也对应可以避免有损扩散现象,提升图像的质量。
上面从模块化功能实体的角度对本申请实施例中的图像编码装置、解码装置进行了描述,下面从硬件处理的角度对本申请实施例中的计算机装置进行描述:
该计算机装置用于实现图像编码装置的功能,本申请实施例中计算机装置一个实施例包括:
处理器以及存储器;
存储器用于存储计算机程序,处理器用于执行存储器中存储的计算机程序时,可以实现如下步骤:
获取第一宏块,所述第一宏块为对输入的图像进行划分后得到的宏块;
识别所述第一宏块的图像类型;
当所述第一宏块的图像类型满足无损编码条件时,利用第一历史宏块对所述第一宏块执行第一无损编码处理,生成第一码流,其中,所述第一历史宏块为执行了所述第一无损编码处理或第二无损编码处理的宏块中的任一个。
在本申请的一些实施例中,处理器,还可以用于实现如下步骤:
当所述第一宏块的图像类型满足有损编码条件时,对所述第一宏块执行有损编码处理,生成第二码流。
在本申请的一些实施例中,处理器,还可以用于实现如下步骤:
当所述第一宏块的图像类型满足无损编码条件时,对所述第一宏块执行所述第二无损编码处理,生成第三码流。
在本申请的一些实施例中,处理器,具体还可以用于实现如下步骤:
当所述第一宏块的图像类型满足无损编码条件时,将所述第一宏块输入无损编码模块,以令所述无损编码模块利用第一历史模块对所述第一宏块执行第一无损编码处理,生成第一码流;
在本申请的一些实施例中,处理器,具体还可以用于实现如下步骤:
当所述第一宏块的图像类型满足有损编码条件时,将所述第一宏块输入有损编码模块,以令所述有损编码模块对所述第一宏块执行有损编码处理,生成第二码流。
在本申请的一些实施例中,处理器,具体还可以用于实现如下步骤:
当所述第一宏块的图像类型满足无损编码条件时,将所述第一宏块输入至无损编码模块,以令所述无损编码模块基于第一无损编码的方式确定历史宏块的查找范围,并从查找范围内的历史宏块中查找到所述第一历史宏块时,利用所述第一历史宏块对所述第一宏块执行第一无损编码处理,生成第一码流;
在本申请的一些实施例中,处理器,具体还可以用于实现如下步骤:
当所述第一宏块的图像类型满足无损编码条件时,将所述第一宏块输入至无损编码模块,以令所述无损编码模块基于第一无损编码的方式确定历史宏块的查找范围,并从查找范围内的历史宏块中无法查找到所述第一历史宏块时,对所述第一宏块执行第二无损编码处理,生成第三码流。
在本申请的一些实施例中,处理器,还可以用于实现如下步骤:
当所述第一宏块的图像类型为文本图像,且所述第一宏块满足第一预设条件时,对所述第一宏块执行轻量级无损编码处理,否则执行第一像素级无损编码处理。
在本申请的一些实施例中,处理器,还可以用于实现如下步骤:
对所述轻量级编码的类型标记信息及轻量级编码的参数信息、所述第一像素级无损编码的类型标记信息及第一像素级无损编码的参数信息、所述有损像素级编码的类型标记信息及有损像素级编码的参数信息和所述所述第二像素级无损编码的类型标记信息及第二像素级无损编码的参数信息执行熵编码,生成第四码流;
将所述第一像素级无损编码的像素数据、所述第二像素级无损编码的像素数据及所述有损像素数据以独立码流的形式引入所述第四码流,生成第五码流。
该计算机装置还可以用于实现图像解码装置的功能,本申请实施例中计算机装置另一实施例包括:
处理器以及存储器;
存储器用于存储计算机程序,处理器用于执行存储器中存储的计算机程序时,可以实现如下步骤:
获取第一码流,所述第一码流为利用第一历史宏块对所述第一宏块执行第一无损编码处理的码流,其中,所述第一历史宏块为执行了所述第一无损编码处理或第二无损编码处理的宏块中的任一个;
对所述第一码流执行与所述第一无损编码处理对应的解码处理,得到执行了第一无损编码的宏块。
在本申请的一些实施例中,处理器,还可以用于实现如下步骤:
获取第二码流,所述第二码流为执行了有损编码的码流;
对所述第二码流执行与有损编码处理对应的解码处理,得到执行了有损编码的宏块。
在本申请的一些实施例中,处理器,还可以用于实现如下步骤:
获取第三码流,所述第三码流为执行了第二无损编码的码流;
对所述第三码流执行与所述第二无损编码处理对应的解码处理,得到执行了第二无损编码的宏块;
根据所述第一无损编码的宏块、所述有损编码的宏块及所述第二无损编码的宏块,还原出被传输的图像。
在本申请的一些实施例中,处理器,还可以用于实现如下步骤:
获取终极码流,所述终极码流包括:所述第一像素级无损编码的像素数据、所述第二像素级无损编码的像素数据、所述有损像素数据和熵编码的第四码流;
对所述第四码流执行熵解码,得到所述轻量级编码的类型标记信息及轻量级编码的参数信息,所述第一像素级无损编码的类型标记信息及第一像素级无损编码的参数信息,所述有损像素级编码的类型标记信息及有损像素级编码的参数信息和所述第二像素级无损编码的类型标记信息及第二像素级无损编码的参数信息;
其中,所述轻量级编码的类型标记信息及轻量级编码的参数信息,所述第一像素级无损编码的像素数据、第一像素级无损编码的类型标记信息及第一像素级无损编码的参数信息组成所述第一码流;所述有损像素数据、有损像素级编码的类型标记信息及有损像素级编码的参数信息组成所述第二码流;所述第二像素级无损编码的像素数据、第二像素级无损编码的类型标记信息及第二像素级无损编码的参数信息组成所述第三码流。
可以理解的是,无论是图像编码装置,还是图像解码装置,上述说明的计算机装置中的处理器执行所述计算机程序时,也可以实现上述对应的各装置实施例中各单元的功能,此处不再赘述。示例性的,所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器中,并由所述处理器执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述图像编码/解码装置中的执行过程。例如,所述计算机程序可以被分割成上述图像编码装置中的各单元,各单元可以实现如上述相应图像编码装置说明的具体功能。
所述计算机装置可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述计算机装置可包括但不仅限于处理器、存储器。本领域技术人员可以理解,处理器、存储器仅仅是计算机装置的示例,并不构成对计算机装置的限定,可以包括更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述计算机装置还可以包括输入输出设备、网络接入设备、总线等。
所述处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述计算机装置的控制中心,利用各种接口和线路连接整个计算机装置的各个部分。
所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述计算机装置的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
本发明还提供了一种计算机可读存储介质,该计算机可读存储介质用于实现图像编码装置的功能,其上存储有计算机程序,计算机程序被处理器执行时,处理器,可以用于执行如下步骤:
获取第一宏块,所述第一宏块为对输入的图像进行划分后得到的宏块;
识别所述第一宏块的图像类型;
当所述第一宏块的图像类型满足无损编码条件时,利用第一历史宏块对所述第一宏块执行第一无损编码处理,生成第一码流,其中,所述第一历史宏块为执行了所述第一无损编码处理或第二无损编码处理的宏块中的任一个。
在本发明的一些实施例中,计算机可读存储介质存储的计算机程序被处理器执行时,处理器,可以具体用于执行如下步骤:
当所述第一宏块的图像类型满足有损编码条件时,对所述第一宏块执行有损编码处理,生成第二码流。
在本发明的一些实施例中,计算机可读存储介质存储的计算机程序被处理器执行时,处理器,可以具体用于执行如下步骤:
当所述第一宏块的图像类型满足无损编码条件时,对所述第一宏块执行所述第二无损编码处理,生成第三码流。
在本发明的一些实施例中,计算机可读存储介质存储的计算机程序被处理器执行时,处理器,可以具体用于执行如下步骤:
当所述第一宏块的图像类型满足无损编码条件时,将所述第一宏块输入无损编码模块,以令所述无损编码模块利用第一历史模块对所述第一宏块执行第一无损编码处理,生成第一码流;
在本发明的一些实施例中,计算机可读存储介质存储的计算机程序被处理器执行时,处理器,可以具体用于执行如下步骤:
当所述第一宏块的图像类型满足有损编码条件时,将所述第一宏块输入有损编码模块,以令所述有损编码模块对所述第一宏块执行有损编码处理,生成第二码流。
在本发明的一些实施例中,计算机可读存储介质存储的计算机程序被处理器执行时,处理器,可以具体用于执行如下步骤:
当所述第一宏块的图像类型满足无损编码条件时,将所述第一宏块输入至无损编码模块,以令所述无损编码模块基于第一无损编码的方式确定历史宏块的查找范围,并从查找范围内的历史宏块中查找到所述第一历史宏块时,利用所述第一历史宏块对所述第一宏块执行第一无损编码处理,生成第一码流。
在本发明的一些实施例中,计算机可读存储介质存储的计算机程序被处理器执行时,处理器,可以具体用于执行如下步骤:
当所述第一宏块的图像类型满足无损编码条件时,将所述第一宏块输入至无损编码模块,以令所述无损编码模块基于第一无损编码的方式确定历史宏块的查找范围,并从查找范围内的历史宏块中无法查找到所述第一历史宏块时,对所述第一宏块执行第二无损编码处理,生成第三码流。
在本发明的一些实施例中,计算机可读存储介质存储的计算机程序被处理器执行时,处理器,可以具体用于执行如下步骤:
当所述第一宏块的图像类型为文本图像,且所述第一宏块满足第一预设条件时,对所述第一宏块执行轻量级无损编码处理,否则执行第一像素级无损编码处理。
在本发明的一些实施例中,计算机可读存储介质存储的计算机程序被处理器执行时,处理器,可以具体用于执行如下步骤:
对所述轻量级编码的类型标记信息及轻量级编码的参数信息、所述第一像素级无损编码的类型标记信息及第一像素级无损编码的参数信息、所述有损像素级编码的类型标记信息及有损像素级编码的参数信息执行熵编码,生成第四码流;
将所述第一像素级无损编码的像素数据、所述第二像素级无损编码的像素数据及所述有损像素数据以独立码流的形式引入所述第四码流,生成第五码流。
本发明还提供了另一种计算机可读存储介质,该计算机可读存储介质用于实现图像解码装置的功能,其上存储有计算机程序,计算机程序被处理器执行时,处理器,可以用于执行如下步骤:
获取第一码流,所述第一码流为利用第一历史宏块对所述第一宏块执行第一无损编码处理的码流,其中,所述第一历史宏块为执行了所述第一无损编码处理或第二无损编码处理的宏块中的任一个;
对所述第一码流执行与所述第一无损编码处理对应的解码处理,得到执行了第一无损编码的宏块。
在本发明的一些实施例中,计算机可读存储介质存储的计算机程序被处理器执行时,处理器,可以具体用于执行如下步骤:
获取第二码流,所述第二码流为执行了有损编码的码流;
对所述第二码流执行与有损编码处理对应的解码处理,得到执行了有损编码的宏块。
在本发明的一些实施例中,计算机可读存储介质存储的计算机程序被处理器执行时,处理器,可以具体用于执行如下步骤:
获取第三码流,所述第三码流为执行了第二无损编码的码流;
对所述第三码流执行与所述第二无损编码处理对应的解码处理,得到执行了第二无损编码的宏块;
根据所述第一无损编码的宏块、所述有损编码的宏块及所述第二无损编码的宏块,还原出被传输的图像。
在本发明的一些实施例中,计算机可读存储介质存储的计算机程序被处理器执行时,处理器,可以具体用于执行如下步骤:
获取终极码流,所述终极码流包括:所述第一像素级无损编码的像素数据、所述第二像素级无损编码的像素数据、所述有损像素数据和熵编码的第四码流;
对所述第四码流执行熵解码,得到所述轻量级编码的类型标记信息及轻量级编码的参数信息,所述第一像素级无损编码的类型标记信息及第一像素级无损编码的参数信息,和所述第二像素级无损编码的类型标记信息及第二像素级无损编码的参数信息;
其中,所述轻量级编码的类型标记信息及轻量级编码的参数信息,所述第一像素级无损编码的像素数据、第一像素级无损编码的类型标记信息及第一像素级无损编码的参数信息组成所述第一码流;所述有损像素数据、有损像素级编码的类型标记信息及有损像素级编码的参数信息组成所述第二码流;所述第二像素级无损编码的像素数据、第二像素级无损编码的类型标记信息及第二像素级无损编码的参数信息组成所述第三码流。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (20)

1.一种图像编码的方法,其特征在于,所述方法包括:
获取第一宏块,所述第一宏块为对输入的图像进行划分后得到的宏块;
识别所述第一宏块的图像类型;
当所述第一宏块的图像类型满足无损编码条件时,利用第一历史宏块对所述第一宏块执行第一无损编码处理,生成第一码流,其中,所述第一历史宏块为执行了所述第一无损编码处理或第二无损编码处理的宏块中的任一个。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述第一宏块的图像类型满足有损编码条件时,对所述第一宏块执行有损编码处理,生成第二码流。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
当所述第一宏块的图像类型满足无损编码条件时,对所述第一宏块执行所述第二无损编码处理,生成第三码流。
4.根据权利要求2所述的方法,其特征在于,
所述当所述第一宏块的图像类型满足无损编码条件时,利用第一历史宏块对所述第一宏块执行第一无损编码处理,生成第一码流,包括:
当所述第一宏块的图像类型满足无损编码条件时,将所述第一宏块输入无损编码模块,以令所述无损编码模块利用第一历史宏块对所述第一宏块执行第一无损编码处理,生成第一码流;
所述当所述第一宏块的图像类型满足有损编码条件时,对所述第一宏块执行有损编码处理,生成第二码流,包括:
当所述第一宏块的图像类型满足有损编码条件时,将所述第一宏块输入有损编码模块,以令所述有损编码模块对所述第一宏块执行有损编码处理,生成第二码流。
5.根据权利要求3所述的方法,其特征在于,
所述当所述第一宏块的图像类型满足无损编码条件时,利用第一历史宏块对所述第一宏块执行第一无损编码处理,生成第一码流,包括:
当所述第一宏块的图像类型满足无损编码条件时,将所述第一宏块输入至无损编码模块,以令所述无损编码模块基于第一无损编码的方式确定历史宏块的查找范围,并从所述查找范围内的历史宏块中查找到所述第一历史宏块时,利用所述第一历史宏块对所述第一宏块执行第一无损编码处理,生成第一码流;
所述当所述第一宏块的图像类型满足无损编码条件时,对所述第一宏块执行所述第二无损编码处理,生成第三码流,包括:
当所述第一宏块的图像类型满足无损编码条件时,将所述第一宏块输入至无损编码模块,以令所述无损编码模块基于第一无损编码的方式确定历史宏块的查找范围,并从所述查找范围内的历史宏块中无法查找到所述第一历史宏块时,对所述第一宏块执行第二无损编码处理,生成第三码流。
6.根据权利要求3所述的方法,其特征在于,所述第一无损编码处理包括:轻量级无损编码和第一像素级无损编码,所述第一像素级无损编码为需要利用所述第一历史宏块执行编码的像素级无损编码方式;
所述第二无损编码处理包括:无需利用历史宏块执行编码的第二像素级无损编码方式。
7.根据权利要求6所述的方法,其特征在于,
所述图像类型包括:文本图像和自然图像;
所述无损编码条件为:所述第一宏块的图像类型为文本图像,所述有损编码条件为:所述第一宏块的图像类型为自然图像。
当所述第一宏块的图像类型满足无损编码条件时,利用第一历史宏块对所述第一宏块执行第一无损编码处理,生成第一码流,包括:
当所述第一宏块的图像类型为所述文本图像,且所述第一宏块满足第一预设条件时,对所述第一宏块执行轻量级无损编码处理,否则执行第一像素级无损编码处理。
8.根据权利要求7所述的方法,其特征在于,所述第一预设条件包括:
所述第一宏块与前一图像对应位置的宏块重复,且所述前一图像对应位置的宏块执行了所述第一无损编码处理或所述第二无损编码处理;
或,
所述第一宏块的当前行或当前列与所述第一宏块的前一行或前一列都重复,且所述第一宏块的前一行或前一列执行了所述第一无损编码处理或所述第二无损编码处理;
或,
所述第一宏块为纯色图像;
或,
所述第一宏块与当前图像的任一宏块重复,且所述当前图像的任一宏块都执行了所述第一无损编码处理或所述第二无损编码处理;
或,
所述第一宏块与以前图像的任一宏块重复,且所述以前图像的任一宏块都执行了所述第一无损编码处理或所述第二无损编码处理。
9.根据权利要求7所述的方法,其特征在于,
第一码流数据包括:轻量级编码的类型标记信息及轻量级编码的参数信息,及第一像素级无损编码的像素数据、第一像素级无损编码的类型标记信息及第一像素级无损编码的参数信息;
第二码流数据包括:有损像素数据、有损像素级编码的类型标记信息及有损像素级编码的参数信息;
第三码流数据包括:第二像素级无损编码的像素数据、第二像素级无损编码的类型标记信息及第二像素级无损编码的参数信息。
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:
对所述轻量级编码的类型标记信息及轻量级编码的参数信息、所述第一像素级无损编码的类型标记信息及第一像素级无损编码的参数信息、所述有损像素级编码的类型标记信息及有损像素级编码的参数信息,以及所述第二像素级无损编码的类型标记信息及第二像素级无损编码的参数信息执行熵编码,生成第四码流;
将所述第一像素级无损编码的像素数据、所述第二像素级无损编码的像素数据及所述有损像素数据以独立码流的形式引入所述第四码流,生成第五码流。
11.一种图像解码方法,其特征在于,所述方法包括:
获取第一码流,所述第一码流为利用第一历史宏块对所述第一宏块执行第一无损编码处理的码流,其中,所述第一历史宏块为执行了所述第一无损编码处理或第二无损编码处理的宏块中的任一个;
对所述第一码流执行与所述第一无损编码处理对应的解码处理,得到执行了第一无损编码的宏块。
12.根据权利要求11所述的方法,其特征在于,所述方法还包括:
获取第二码流,所述第二码流为执行了有损编码的码流;
对所述第二码流执行与有损编码处理对应的解码处理,得到执行了有损编码的宏块。
13.根据权利要求12所述的方法,其特征在于,所述方法还包括:
获取第三码流,所述第三码流为执行了第二无损编码的码流;
对所述第三码流执行与所述第二无损编码处理对应的解码处理,得到执行了第二无损编码的宏块;
根据所述第一无损编码的宏块、所述有损编码的宏块及所述第二无损编码的宏块,还原出被传输的图像。
14.根据权利要求13所述的方法,其特征在于,
所述第一无损编码处理包括:轻量级无损编码和第一像素级无损编码,所述第一像素级无损编码为需要利用所述第一历史宏块执行编码的像素级无损编码方式;
所述第二无损编码处理包括:无需利用历史宏块执行编码的像素级无损编码方式。
15.根据权利要求14所述的方法,其特征在于,
第一码流数据包括:轻量级编码的类型标记信息及轻量级编码的参数信息,及第一像素级无损编码的像素数据、第一像素级无损编码的类型标记信息及第一像素级无损编码的参数信息;
第二码流数据包括:有损像素数据、有损像素级编码的类型标记信息及有损像素级编码的参数信息;
第三码流数据包括:第二像素级无损编码的像素数据、第二像素级无损编码的类型标记信息及第二像素级无损编码的参数信息。
16.根据权利要求15所述的方法,其特征在于,在所述获取第一码流之前,所述方法还包括:
获取终极码流,所述终极码流包括:所述第一像素级无损编码的像素数据、所述第二像素级无损编码的像素数据、所述有损像素数据和熵编码的第四码流;
对所述第四码流执行熵解码,得到所述轻量级编码的类型标记信息及轻量级编码的参数信息,所述第一像素级无损编码的类型标记信息及第一像素级无损编码的参数信息,所述有损像素级编码的类型标记信息及有损像素级编码的参数信息和所述第二像素级无损编码的类型标记信息及第二像素级无损编码的参数信息。
17.一种图像编码的装置,其特征在于,所述装置包括:
第一获取模块,用于获取第一宏块,所述第一宏块为对输入的图像进行划分后得到的宏块;
识别模块,用于识别所述第一宏块的图像类型;
第一无损编码模块,用于当所述第一宏块的图像类型满足无损编码条件时,利用第一历史宏块对所述第一宏块执行第一无损编码处理,生成第一码流,其中,所述第一历史宏块为执行了所述第一无损编码处理或第二无损编码处理的宏块中的任一个。
18.一种图像解码装置,其特征在于,所述装置包括:
第二获取模块,用于获取第一码流,所述第一码流为利用第一历史宏块对所述第一宏块执行第一无损编码处理的码流,其中,所述第一历史宏块为执行了所述第一无损编码处理或第二无损编码处理的宏块中的任一个;
第一解码模块,用于对所述第一码流执行与所述第一无损编码处理对应的解码处理,得到执行了第一无损编码的宏块。
19.一种计算机装置,包括处理器,其特征在于,所述处理器在执行存储于存储器上的计算机程序时,用于实现如权利要求1至10中任一项所述的图像编码方法,或权利要求11至16中任一项所述的图像解码方法。
20.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,用于实现如权利要求1至10中任一项所述的图像编码方法,或权利要求11至16中任一项所述的图像解码方法。
CN201911167495.6A 2019-11-25 2019-11-25 一种图像编码、解码方法、相关装置及存储介质 Active CN112839226B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911167495.6A CN112839226B (zh) 2019-11-25 2019-11-25 一种图像编码、解码方法、相关装置及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911167495.6A CN112839226B (zh) 2019-11-25 2019-11-25 一种图像编码、解码方法、相关装置及存储介质

Publications (2)

Publication Number Publication Date
CN112839226A true CN112839226A (zh) 2021-05-25
CN112839226B CN112839226B (zh) 2024-02-23

Family

ID=75923023

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911167495.6A Active CN112839226B (zh) 2019-11-25 2019-11-25 一种图像编码、解码方法、相关装置及存储介质

Country Status (1)

Country Link
CN (1) CN112839226B (zh)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102577412A (zh) * 2010-03-04 2012-07-11 北京视博云科技有限公司 一种图像编码方法和装置
US20130182765A1 (en) * 2012-01-17 2013-07-18 Futurewei Technologies, Inc. In-loop Filtering for Lossless Coding Mode in High Efficiency Video Coding
CN104272734A (zh) * 2012-05-15 2015-01-07 索尼公司 图像处理装置和图像处理方法
CN104349171A (zh) * 2013-07-31 2015-02-11 上海通途半导体科技有限公司 一种视觉无损的图像压缩编、解码装置及编、解码方法
WO2015133325A1 (ja) * 2014-03-07 2015-09-11 ソニー株式会社 画像符号化装置および方法、並びに、画像処理装置および方法
US20160150243A1 (en) * 2013-07-09 2016-05-26 Canon Kabushiki Kaisha Image coding apparatus, image coding method, and program, and image decoding apparatus, image decoding method and program
CN106231214A (zh) * 2016-08-11 2016-12-14 复旦大学 基于可调宏块的高速cmos传感器图像近似无损压缩方法
CN107665128A (zh) * 2017-09-13 2018-02-06 深信服科技股份有限公司 图像处理方法、系统、服务器及可读存储介质
CN108184118A (zh) * 2016-12-08 2018-06-19 中兴通讯股份有限公司 云桌面内容编码与解码方法及装置、系统
WO2019210822A1 (zh) * 2018-05-02 2019-11-07 中兴通讯股份有限公司 视频编解码方法、装置、系统及存储介质

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102577412A (zh) * 2010-03-04 2012-07-11 北京视博云科技有限公司 一种图像编码方法和装置
US20130182765A1 (en) * 2012-01-17 2013-07-18 Futurewei Technologies, Inc. In-loop Filtering for Lossless Coding Mode in High Efficiency Video Coding
CN104272734A (zh) * 2012-05-15 2015-01-07 索尼公司 图像处理装置和图像处理方法
US20160150243A1 (en) * 2013-07-09 2016-05-26 Canon Kabushiki Kaisha Image coding apparatus, image coding method, and program, and image decoding apparatus, image decoding method and program
CN104349171A (zh) * 2013-07-31 2015-02-11 上海通途半导体科技有限公司 一种视觉无损的图像压缩编、解码装置及编、解码方法
WO2015133325A1 (ja) * 2014-03-07 2015-09-11 ソニー株式会社 画像符号化装置および方法、並びに、画像処理装置および方法
CN106231214A (zh) * 2016-08-11 2016-12-14 复旦大学 基于可调宏块的高速cmos传感器图像近似无损压缩方法
CN108184118A (zh) * 2016-12-08 2018-06-19 中兴通讯股份有限公司 云桌面内容编码与解码方法及装置、系统
CN107665128A (zh) * 2017-09-13 2018-02-06 深信服科技股份有限公司 图像处理方法、系统、服务器及可读存储介质
WO2019210822A1 (zh) * 2018-05-02 2019-11-07 中兴通讯股份有限公司 视频编解码方法、装置、系统及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
欧阳晓: "HEVC屏幕内容编码的帧内预测快速算法", 中国优秀硕士学位论文全文数据库 *

Also Published As

Publication number Publication date
CN112839226B (zh) 2024-02-23

Similar Documents

Publication Publication Date Title
US10051272B2 (en) Coding structure
CN101350929B (zh) 表示图像帧的非帧边缘区块时的增强的压缩方法
CN104581177B (zh) 一种结合块匹配和串匹配的图像压缩方法和装置
CN105100814B (zh) 图像编码、解码方法及装置
CN103886623A (zh) 一种图像压缩方法、设备及系统
EP3806462A1 (en) Image encoding and decoding method , related device and storage medium
CN110545417B (zh) 一种桌面场景的图像编码、解码方法及相关装置
CN110545446B (zh) 一种桌面图像编码、解码方法、相关装置及存储介质
CN112839226B (zh) 一种图像编码、解码方法、相关装置及存储介质
CN113127637A (zh) 一种字符的还原方法及装置、存储介质、电子装置
CN110545435B (zh) 一种基于概率模型的桌面像素编码方法、装置及存储介质
CN107197295A (zh) 一种编码系统和方法
CN106101711A (zh) 一种快速实时视频编解码压缩算法
CN110969672A (zh) 图像压缩方法及装置
CN111355953B (zh) 将包含图形对象的图像内容添加至图像帧的方法及系统
US20230239474A1 (en) Video coding method, apparatus, and device, and medium
CN110545445A (zh) 一种视频压缩方法及装置、服务器及计算机可读存储介质
CN117078492A (zh) 添加、提取、移除水印的方法、装置、设备及存储介质
CN110677681A (zh) 一种视频编解码方法、装置及终端设备
CN115499664A (zh) 视频编码方法、视频解码方法以及编码端或/和解码端
CN115426519A (zh) H265视频在浏览器中的播放方法及系统
CN116132759A (zh) 一种音视频流同步传输方法、装置、电子设备及存储介质
CN111526364A (zh) 图像处理的方法、装置和系统
CN116708800A (zh) 图像编码与解码方法、装置及系统
CN114339305A (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