CN107333136A - 图像编码方法和装置 - Google Patents

图像编码方法和装置 Download PDF

Info

Publication number
CN107333136A
CN107333136A CN201710497431.7A CN201710497431A CN107333136A CN 107333136 A CN107333136 A CN 107333136A CN 201710497431 A CN201710497431 A CN 201710497431A CN 107333136 A CN107333136 A CN 107333136A
Authority
CN
China
Prior art keywords
gpu
cpu
image
module
quantization
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.)
Pending
Application number
CN201710497431.7A
Other languages
English (en)
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 CN201710497431.7A priority Critical patent/CN107333136A/zh
Publication of CN107333136A publication Critical patent/CN107333136A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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
    • H04N19/436Methods 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 using parallelised computational arrangements
    • 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/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/129Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
    • 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/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/625Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Abstract

本发明公开了一种图像编码方法和装置。其中,该方法包括:确定用于将原始图像编码为联合图像专家小组JPEG图像文件的中央处理器CPU和图像处理器GPU;利用确定的中央处理器CPU和图像处理器GPU共同执行编码过程。本发明解决了相关技术中的JPEG图像编码方法系统利用效率较低导致编码效率较低的技术问题。

Description

图像编码方法和装置
技术领域
本发明涉及图像编码领域,具体而言,涉及一种图像编码方法和装置。
背景技术
联合图像专家小组JPEG编码是一种广泛使用的无专利权的图像编码算法,通常的实现都是使用CPU或者GPU进行JPEG编码。其中,JPEG编码的步骤包括:1.图像分块;2.离散余弦变换(Discrete Cosine Transform,简称DCT)变换;3.量化;4.编码。如图1所示,先将原始图象数据分成8*8的小块,然后进行DCT变换,再通过量化器根据量化表对DCT变换之后得到的结果进行量化,然后通过熵编码器根据码表对量化之后得到的结果进行编码,得到最后的压缩数据。现有的技术通常全部使用CPU进行编码计算,CPU性能负载较大,或者,全部使用GPU进行编码,GPU在编码的时候,CPU处于空闲状态。
针对相关技术中的JPEG图像编码方法系统利用效率较低导致编码效率较低的技术问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种图像编码方法和装置,以至少解决相关技术中的JPEG图像编码方法系统利用效率较低导致编码效率较低的技术问题。
根据本发明实施例的一个方面,提供了一种图像编码方法,包括:确定用于将原始图像编码为联合图像专家小组JPEG图像文件的中央处理器CPU和图像处理器GPU;利用确定的CPU和GPU共同执行编码过程。
进一步地,利用确定的CPU和GPU共同执行编码过程包括:通过CPU和GPU分别执行编码过程的不同子任务,其中,编码过程包括多个子任务。
进一步地,通过CPU和GPU分别执行编码过程的不同子任务包括:通过CPU对原始图像执行图像分块;调用GPU的应用程序编程接口API将图像分块的结果复制到GPU的显存中;通过GPU执行压缩,进而对压缩的结果执行量化运算;调用GPU的API将量化运算的结果复制到主机内存中;通过CPU对量化运算的结果执行熵编码,得到JPEG图像文件。
进一步地,通过CPU对原始图像执行图像分块包括:通过CPU从主机内存中读取原始图像;通过CPU按照预设长度和预设宽度对原始图像进行分块,得到多块图像;通过CPU提取每块图像中的预设参数,得到每块图像的参数矩阵。
进一步地,通过GPU执行压缩,进而对压缩的结果执行量化运算包括:通过GPU采用浮点Float向量类型分别对每个参数矩阵执行离散余弦DCT变换;通过GPU利用预设量化表分别对经过DCT变换之后的每个参数矩阵进行量化。
进一步地,在通过GPU利用预设量化表分别对经过DCT变换之后的每个参数矩阵进行量化之前,该方法还包括:通过CPU生成预设量化表;调用GPU的API将预设量化表复制到GPU的显存中。
进一步地,通过CPU对量化运算的结果执行熵编码包括:通过CPU基于Zigzag扫描方式分别对量化之后的每个参数矩阵进行扫描,得到多个数组;通过CPU对多个数组进行Huffman编码,得到JPEG图像文件。
根据本发明实施例的另一方面,还提供了一种图像编码装置,包括:确定单元,用于确定用于将原始图像编码为联合图像专家小组JPEG图像文件的中央处理器CPU和图像处理器GPU;执行单元,用于利用确定的CPU和GPU共同执行编码过程。
进一步地,执行单元进一步用于通过CPU和GPU分别执行编码过程的不同子任务,其中,编码过程包括多个子任务。
进一步地,执行单元包括:第一执行模块,用于通过CPU对原始图像执行图像分块;第一调用模块,用于调用GPU的应用程序编程接口API将图像分块的结果复制到GPU的显存中;第二执行模块,用于通过GPU执行压缩,进而对压缩的结果执行量化运算;第二调用模块,用于调用GPU的API将量化运算的结果复制到主机内存中;第三执行模块,用于通过CPU对量化运算的结果执行熵编码,得到JPEG图像文件。
进一步地,第一执行模块包括:读取模块,用于通过CPU从主机内存中读取原始图像;分块模块,用于通过CPU按照预设长度和预设宽度对原始图像进行分块,得到多块图像;提取模块,用于通过CPU提取每块图像中的预设参数,得到每块图像的参数矩阵。
进一步地,第二执行模块包括:变换模块,用于通过GPU采用浮点Float向量类型分别对每个参数矩阵执行离散余弦DCT变换;量化模块,用于通过GPU利用预设量化表分别对经过DCT变换之后的每个参数矩阵进行量化。
进一步地,该装置还包括:生成模块,用于在通过GPU利用预设量化表分别对经过DCT变换之后的每个参数矩阵进行量化之前,通过CPU生成预设量化表;第三调用模块,用于调用GPU的API将预设量化表复制到GPU的显存中。
进一步地,第三执行模块包括:扫描模块,用于通过CPU基于Zigzag扫描方式分别对量化之后的每个参数矩阵进行扫描,得到多个数组;编码模块,用于通过CPU对多个数组进行Huffman编码,得到JPEG图像文件。
在本发明实施例中,通过确定用于将原始图像编码为联合图像专家小组JPEG图像文件的中央处理器CPU和图像处理器GPU;利用确定的中央处理器CPU和图像处理器GPU共同执行编码过程,解决了相关技术中的JPEG图像编码方法系统利用效率较低导致编码效率较低的技术问题,进而实现了能够提高系统利用效率进而提高编码效率的技术效果。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是现有技术的一种图像编码方法的流程图;
图2是根据本发明实施例的一种可选的图像编码方法的流程图;
图3是根据本发明实施例的另一种可选的图像编码方法的流程图;
图4是根据本发明实施例的一种可选的图像分块的示意图;
图5是根据本发明实施例的一种可选的GPU中存储的参数矩阵的示意图;
图6是根据本发明实施例的一种可选的量化的示意图;
图7是根据本发明实施例的一种可选的zigzag扫描方式的示意图;
图8是根据本发明实施例的一种可选的图像编码装置的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
本申请提供了一种图像编码方法的实施例。
图2是根据本发明实施例的一种可选的图像编码方法的流程图,如图2所示,该方法包括如下步骤:
步骤S101,确定用于将原始图像编码为联合图像专家小组JPEG图像文件的中央处理器CPU和图像处理器GPU。
CPU和GPU可以均可以是一个或多个,在为多个的情况下,需要在多个处理器中选择一个处理器,在只有一个CPU或只有一个GPU的情况下,则直接采用唯一的CPU或GPU进行处理器。该步骤可以是通过CPU确定的,例如,通过CPU在主机的内存中获取预先存储的处理方式,根据预先存储的内容确定编码所用的CPU和GPU。
步骤S102,利用确定的CPU和GPU共同执行编码过程。
在确定出用于将原始图像编码为联合图像专家小组JPEG图像文件的中央处理器CPU和图像处理器GPU之后,利用确定的CPU和GPU共同执行编码过程。通过CPU和GPU共同执行编码过程,可以充分利用系统的效率,并可以对某个部分的运算选用处理效率较高的处理器(CPU或GPU)进行处理。
可选的,可以通过中央处理器CPU和图像处理器GPU分别执行编码过程的不同子任务,其中,编码过程包括多个子任务,或者,也可以将一个子任务通过中央处理器CPU和图像处理器GPU共同执行,中央处理器CPU和图像处理器GPU执行一个子任务的不同部分。
可选的,由于JPEG图像编码的过程包括多个子任务,具体每个子任务由哪个处理器(CPU或GPU)进行处理可以是预先存储的;也可以是用户输入的;也可以是随机确定的;也可以是根据当前每个处理器的状态确定的,例如,在处理当前子任务之前,先根据之前的处理器运行状态确定处于空闲状态的处理器(CPU或GPU),通过处于空闲状态的处理器来执行当前的子任务。
该实施例通过确定用于将原始图像编码为联合图像专家小组JPEG图像文件的中央处理器CPU和图像处理器GPU;利用确定的中央处理器CPU和图像处理器GPU共同执行编码过程,解决了相关技术中的JPEG图像编码方法系统利用效率较低导致编码效率较低的技术问题,进而实现了能够提高系统利用效率进而提高编码效率的技术效果。
可选地,可以通过分析中央处理器CPU和图像处理器GPU的优缺点,将JPEG编码中的不同子任务使用中央处理器CPU和图像处理器GPU进行协同异构运算,从而在降低中央处理器CPU负载的同时加快运算速度,不仅能够发挥中央处理器CPU和图像处理器GPU的优势,避免缺点,而且可以在图像处理器GPU进行运算的同时中央处理器CPU进行运算,流水作业,从而提高编码效率,有效降低中央处理器CPU负载。
可选地,通过中央处理器CPU和图像处理器GPU分别执行编码过程的不同子任务包括:通过中央处理器CPU对原始图像执行图像分块;调用图像处理器GPU的应用程序编程接口API将图像分块的结果复制到图像处理器GPU的显存中;通过图像处理器GPU执行压缩,进而对压缩的结果执行量化运算;调用图像处理器GPU的API将量化运算的结果复制到主机内存中;通过中央处理器CPU对量化运算的结果执行熵编码,得到JPEG图像文件。
可选地,通过中央处理器CPU对原始图像执行图像分块包括:通过中央处理器CPU从主机内存中读取原始图像;通过中央处理器CPU按照预设长度和预设宽度对原始图像进行分块,得到多块图像;通过中央处理器CPU提取每块图像中的预设参数,得到每块图像的参数矩阵。
可选地,通过图像处理器GPU执行压缩,进而对压缩的结果执行量化运算包括:通过图像处理器GPU采用浮点Float向量类型分别对每个参数矩阵执行离散余弦DCT变换;通过图像处理器GPU利用预设量化表分别对经过DCT变换之后的每个参数矩阵进行量化。
可选地,在通过图像处理器GPU利用预设量化表分别对经过DCT变换之后的每个参数矩阵进行量化之前,该方法还包括:通过中央处理器CPU生成预设量化表;调用图像处理器GPU的API将预设量化表复制到图像处理器GPU的显存中。
可选地,通过中央处理器CPU对量化运算的结果执行熵编码包括:通过中央处理器CPU基于Zigzag扫描方式分别对量化之后的每个参数矩阵进行扫描,得到多个数组;通过中央处理器CPU对多个数组进行Huffman编码,得到JPEG图像文件。
实施例2
作为上述实施例1的一种优选实施例,通过中央处理器CPU和图像处理器GPU分别执行编码过程的不同子任务。
如图3所示,是上述优选实施例的一种优选的实施方式,其中,通过(主机的)中央处理器CPU和图像处理器GPU分别执行编码过程的不同子任务包括:通过中央处理器CPU对原始图像执行图像分块;调用图像处理器GPU的应用程序编程接口API将图像分块的结果复制(数据拷贝)到图像处理器GPU的显存中;通过图像处理器GPU执行压缩,进而对压缩的结果执行量化运算;调用图像处理器GPU的API将量化运算的结果复制(数据拷贝)到主机内存中;通过中央处理器CPU对量化运算的结果执行熵编码,得到JPEG图像文件。
具体而言,通过中央处理器CPU对原始图像执行图像分块可以包括:通过中央处理器CPU从主机内存中读取原始图像(输入图像);通过中央处理器CPU按照预设长度和预设宽度对原始图像进行分块,得到多块图像;通过中央处理器CPU提取每块图像中的预设参数,得到每块图像的参数矩阵。
例如,按照8*8像素的大小对原始图像进行分块的情况如图4所示。中央处理器CPU从主机内存中读取图像数据,将图像数据分成8*8像素的图像块。在图像数据的宽、高方向按照8像素进行分割,不足8像素的图像块,将空白处的像素值采用0值补齐8像素。
图像中的每个像素可以包括多个参数,每个像素的像素值是多个参数的值,例如,以RGB形式存储的图像,每个像素值包括三个参数值(R,G,B),分别是R(red,红色)、G(green,绿色)、B(blue,蓝色)的参数值,而以HSV模型表示的图像,每个像素的值包括(H,S,V)三个参数的值,分别为H(Hue,色度)、S(Saturation,饱和度)、V(Value,亮度)。每个参数矩阵只包括多个参数中的一个参数,每个参数矩阵中的各个元素的值为图像块中对应像素的一个参数的值。
图像分块的结果包括多个参数矩阵,每块图像对应有多个参数矩阵,在将图像分块的结果复制到图像处理器GPU的显存中之后,通过图像处理器GPU执行压缩,进而对压缩的结果执行量化运算。具体的,压缩的方式可以是DCT变换,在压缩式,可以通过图像处理器GPU采用浮点Float向量类型分别对每个参数矩阵执行离散余弦DCT变换,如图5所示,每个参数矩阵中的各行和各列均采用图像处理器GPU浮点向量,参数矩阵中每个元素的值可以用一个字节的长度表示。DCT变换的运算采用的是整数DCT的蝶形变换,通过图像处理器GPU进行运算与通过中央处理器CPU进行运算的算法大致相同,分别对参数矩阵的8行和8列数据进行运算。区别在于通过图像处理器GPU进行DCT变换时,可以采用图像处理器GPU的Float向量类型来进行数据运算,加快运算速度。
对每个参数矩阵执行DCT变换之后得到的结果仍然是大小相同的矩阵,可以称作DCT变换二维数组,如图6所示。在执行DCT变换之后,可以通过图像处理器GPU利用预设量化表分别对经过DCT变换之后的每个参数矩阵进行量化。
量化运算的过程是把DCT变换运算得出的结果与量化表上对应位置的数值相乘,如图6所示,量化表也即量化参数二维数组。预设量化表是与参数矩阵的大小相同的矩阵,例如,如图6所示,参数矩阵是8*8的二维数组,量化表也为8*8的二维数组。预设量化表可以是通过中央处理器CPU准备的,具体的,在进行量化之前,通过中央处理器CPU生成预设量化表,然后调用图像处理器GPU的API将预设量化表复制到图像处理器GPU的显存中。可选的,通过中央处理器CPU进行图像分块和准备量化表的步骤可以是同步进行的,在得到图像分块的结果和准备完量化表之后,调用图像处理器GPU的API,将图像分块的结果与量化表拷贝到图像处理器GPU显存中。
需要说明的是,不同的参数需要采用不同的量化表进行量化,例如,对于亮度的参数矩阵,采用用于量化图像亮度的量化表进行量化,对于色度的参数矩阵,采用用于量化图像色度的量化表进行量化。
通过图像处理器GPU进行量化运算的优势在于使用向量来进行乘法运算,能够加快运算速度。需要说明的是,每个参数矩阵可以由一个图像处理器GPU核心Kernel进行处理,图像处理器GPU包括多个核心。
通过中央处理器CPU对量化运算的结果执行熵编码可以包括:通过中央处理器CPU基于Zigzag扫描方式分别对量化之后的每个参数矩阵进行扫描,得到多个数组,通过中央处理器CPU对多个数组进行Huffman编码,得到JPEG图像文件(压缩数据)。
DCT变换和量化将一个n*n的二维数组变换成另一个n*n的二维数组,但是内存里所有数据都是线形存放的,如果一行行的存放这n2个数字,每行的结尾的点和下行开始的点就没有什么关系,所以JPEG规定按图7中所示的顺序依次保存和读取n2个DCT的系数值,图7中为64个系数,这样数列里的相邻点在图片上也是相邻的了。这种数据的扫描、保存、读取方式,是从8*8矩阵的左上角开始,按照英文字母Z的形状进行扫描的,因而称之为Zigzag扫描排序。
Huffman(赫夫曼)编码的编码方式为,对出现概率大的字符分配字符长度较短的二进制编码,对出现概率小的字符分配字符长度较长的二进制编码,从而使得字符的平均编码长度最短。
需要说明的是,在附图的流程图虽然示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请还提供了一种存储介质的实施例,该实施例的存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行本发明实施例的图像编码方法。
本申请还提供了一种处理器的实施例,该实施例的处理器用于运行程序,其中,程序运行时执行本发明实施例的图像编码方法。
实施例3
本申请还提供了一种图像编码装置的实施例。
图8是根据本发明实施例的一种可选的图像编码装置的示意图,如图8所示,该装置包括确定单元10和执行单元20。
其中,确定单元用于确定用于将原始图像编码为联合图像专家小组JPEG图像文件的中央处理器CPU和图像处理器GPU;执行单元用于利用确定的CPU和GPU共同执行编码过程。
该实施例通过确定单元,用于确定用于将原始图像编码为联合图像专家小组JPEG图像文件的中央处理器CPU和图像处理器GPU;执行单元,用于利用确定的CPU和GPU共同执行编码过程,解决了相关技术中的JPEG图像编码方法系统利用效率较低导致编码效率较低的技术问题,进而实现了能够提高系统利用效率进而提高编码效率的技术效果。
作为一种可选的实施方式,执行单元进一步用于通过中央处理器CPU和图像处理器GPU分别执行编码过程的不同子任务,其中,编码过程包括多个子任务。
作为一种可选的实施方式,执行单元包括:第一执行模块,用于通过中央处理器CPU对原始图像执行图像分块;第一调用模块,用于调用图像处理器GPU的应用程序编程接口API将图像分块的结果复制到图像处理器GPU的显存中;第二执行模块,用于通过图像处理器GPU执行压缩,进而对压缩的结果执行量化运算;第二调用模块,用于调用图像处理器GPU的API将量化运算的结果复制到主机内存中;第三执行模块,用于通过中央处理器CPU对量化运算的结果执行熵编码,得到JPEG图像文件。
作为一种可选的实施方式,第一执行模块包括:读取模块,用于通过中央处理器CPU从主机内存中读取原始图像;分块模块,用于通过中央处理器CPU按照预设长度和预设宽度对原始图像进行分块,得到多块图像;提取模块,用于通过中央处理器CPU提取每块图像中的预设参数,得到每块图像的参数矩阵。
作为一种可选的实施方式,第二执行模块包括:变换模块,用于通过图像处理器GPU采用浮点Float向量类型分别对每个参数矩阵执行离散余弦DCT变换;量化模块,用于通过图像处理器GPU利用预设量化表分别对经过DCT变换之后的每个参数矩阵进行量化。
作为一种可选的实施方式,该装置还包括:生成模块,用于在通过图像处理器GPU利用预设量化表分别对经过DCT变换之后的每个参数矩阵进行量化之前,通过中央处理器CPU生成预设量化表;第三调用模块,用于调用图像处理器GPU的API将预设量化表复制到图像处理器GPU的显存中。
作为一种可选的实施方式,第三执行模块包括:扫描模块,用于通过中央处理器CPU基于Zigzag扫描方式分别对量化之后的每个参数矩阵进行扫描,得到多个数组;编码模块,用于通过中央处理器CPU对多个数组进行Huffman编码,得到JPEG图像文件。
上述的装置可以包括处理器和存储器,上述单元均可以作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
上述本申请实施例的顺序不代表实施例的优劣。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。
其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

Claims (14)

1.一种图像编码方法,其特征在于,包括:
确定用于将原始图像编码为联合图像专家小组JPEG图像文件的中央处理器CPU和图像处理器GPU;
利用确定的所述CPU和所述GPU共同执行编码过程。
2.根据权利要求1所述的方法,其特征在于,利用确定的所述CPU和所述GPU共同执行编码过程包括:
通过所述CPU和所述GPU分别执行所述编码过程的不同子任务,其中,所述编码过程包括多个子任务。
3.根据权利要求2所述的方法,其特征在于,通过所述CPU和所述GPU分别执行所述编码过程的不同子任务包括:
通过所述CPU对所述原始图像执行图像分块;
调用所述GPU的应用程序编程接口API将图像分块的结果复制到所述GPU的显存中;
通过所述GPU执行压缩,进而对压缩的结果执行量化运算;
调用所述GPU的API将量化运算的结果复制到主机内存中;
通过所述CPU对所述量化运算的结果执行熵编码,得到所述JPEG图像文件。
4.根据权利要求3所述的方法,其特征在于,通过所述CPU对所述原始图像执行图像分块包括:
通过所述CPU从所述主机内存中读取所述原始图像;
通过所述CPU按照预设长度和预设宽度对所述原始图像进行分块,得到多块图像;
通过所述CPU提取每块图像中的预设参数,得到每块图像的参数矩阵。
5.根据权利要求4所述的方法,其特征在于,通过所述GPU执行压缩,进而对压缩的结果执行量化运算包括:
通过所述GPU采用浮点Float向量类型分别对每个参数矩阵执行离散余弦DCT变换;
通过所述GPU利用预设量化表分别对经过所述DCT变换之后的每个参数矩阵进行量化。
6.根据权利要求5所述的方法,其特征在于,在通过所述GPU利用预设量化表分别对经过所述DCT变换之后的每个参数矩阵进行量化之前,所述方法还包括:
通过所述CPU生成所述预设量化表;
调用所述GPU的API将所述预设量化表复制到所述GPU的显存中。
7.根据权利要求5所述的方法,其特征在于,通过所述CPU对所述量化运算的结果执行熵编码包括:
通过所述CPU基于Zigzag扫描方式分别对量化之后的每个参数矩阵进行扫描,得到多个数组;
通过所述CPU对所述多个数组进行Huffman编码,得到所述JPEG图像文件。
8.一种图像编码装置,其特征在于,包括:
确定单元,用于确定用于将原始图像编码为联合图像专家小组JPEG图像文件的中央处理器CPU和图像处理器GPU;
执行单元,用于利用确定的所述CPU和所述GPU共同执行编码过程。
9.根据权利要求8所述的装置,其特征在于,所述执行单元进一步用于通过所述CPU和所述GPU分别执行所述编码过程的不同子任务,其中,所述编码过程包括多个子任务。
10.根据权利要求9所述的装置,其特征在于,所述执行单元包括:
第一执行模块,用于通过所述CPU对所述原始图像执行图像分块;
第一调用模块,用于调用所述GPU的应用程序编程接口API将图像分块的结果复制到所述GPU的显存中;
第二执行模块,用于通过所述GPU执行压缩,进而对压缩的结果执行量化运算;
第二调用模块,用于调用所述GPU的API将量化运算的结果复制到主机内存中;
第三执行模块,用于通过所述CPU对所述量化运算的结果执行熵编码,得到所述JPEG图像文件。
11.根据权利要求10所述的装置,其特征在于,所述第一执行模块包括:
读取模块,用于通过所述CPU从所述主机内存中读取所述原始图像;
分块模块,用于通过所述CPU按照预设长度和预设宽度对所述原始图像进行分块,得到多块图像;
提取模块,用于通过所述CPU提取每块图像中的预设参数,得到每块图像的参数矩阵。
12.根据权利要求11所述的装置,其特征在于,所述第二执行模块包括:
变换模块,用于通过所述GPU采用浮点Float向量类型分别对每个参数矩阵执行离散余弦DCT变换;
量化模块,用于通过所述GPU利用预设量化表分别对经过所述DCT变换之后的每个参数矩阵进行量化。
13.根据权利要求12所述的装置,其特征在于,所述装置还包括:
生成模块,用于在通过所述GPU利用预设量化表分别对经过所述DCT变换之后的每个参数矩阵进行量化之前,通过所述CPU生成所述预设量化表;
第三调用模块,用于调用所述GPU的API将所述预设量化表复制到所述GPU的显存中。
14.根据权利要求12所述的装置,其特征在于,所述第三执行模块包括:
扫描模块,用于通过所述CPU基于Zigzag扫描方式分别对量化之后的每个参数矩阵进行扫描,得到多个数组;
编码模块,用于通过所述CPU对所述多个数组进行Huffman编码,得到所述JPEG图像文件。
CN201710497431.7A 2017-06-26 2017-06-26 图像编码方法和装置 Pending CN107333136A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710497431.7A CN107333136A (zh) 2017-06-26 2017-06-26 图像编码方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710497431.7A CN107333136A (zh) 2017-06-26 2017-06-26 图像编码方法和装置

Publications (1)

Publication Number Publication Date
CN107333136A true CN107333136A (zh) 2017-11-07

Family

ID=60197865

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710497431.7A Pending CN107333136A (zh) 2017-06-26 2017-06-26 图像编码方法和装置

Country Status (1)

Country Link
CN (1) CN107333136A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107809643A (zh) * 2017-11-13 2018-03-16 郑州云海信息技术有限公司 一种图像的解码方法、装置及介质
CN109451322A (zh) * 2018-09-14 2019-03-08 北京航天控制仪器研究所 用于图像压缩的基于cuda架构的dct算法和dwt算法的加速实现方法
CN110324629A (zh) * 2019-06-27 2019-10-11 北京奇艺世纪科技有限公司 图片转码方法、装置及电子设备
CN112351281A (zh) * 2020-10-28 2021-02-09 西安万像电子科技有限公司 图像处理方法及装置、处理器、非易失性存储介质
CN112385225A (zh) * 2019-09-02 2021-02-19 北京航迹科技有限公司 用于改进图像编码的方法和系统
CN117519887A (zh) * 2023-12-13 2024-02-06 南京云玑信息科技有限公司 一种提升云电脑远程操作体验的方法及系统

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102158694A (zh) * 2010-12-01 2011-08-17 航天恒星科技有限公司 一种基于gpu的遥感图像解压缩方法
CN102662641A (zh) * 2012-04-16 2012-09-12 浙江工业大学 一种基于cuda的种子分布数据并行获取方法
WO2013097098A1 (zh) * 2011-12-27 2013-07-04 华为技术有限公司 数据处理方法、图形处理器gpu及第一节点设备
US20130182966A1 (en) * 2011-12-15 2013-07-18 Samsung Electronics Co., Ltd. Imaging apparatus and image processing method
CN103414901A (zh) * 2013-08-26 2013-11-27 江苏新瑞峰信息科技有限公司 一种快速jpeg2000图像压缩系统
CN103605159A (zh) * 2013-11-13 2014-02-26 长江大学 一种并行压缩海量地震数据的方法
CN105120293A (zh) * 2015-08-26 2015-12-02 中国航空工业集团公司洛阳电光设备研究所 基于cpu和gpu的图像协同解码方法及装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102158694A (zh) * 2010-12-01 2011-08-17 航天恒星科技有限公司 一种基于gpu的遥感图像解压缩方法
US20130182966A1 (en) * 2011-12-15 2013-07-18 Samsung Electronics Co., Ltd. Imaging apparatus and image processing method
WO2013097098A1 (zh) * 2011-12-27 2013-07-04 华为技术有限公司 数据处理方法、图形处理器gpu及第一节点设备
CN102662641A (zh) * 2012-04-16 2012-09-12 浙江工业大学 一种基于cuda的种子分布数据并行获取方法
CN103414901A (zh) * 2013-08-26 2013-11-27 江苏新瑞峰信息科技有限公司 一种快速jpeg2000图像压缩系统
CN103605159A (zh) * 2013-11-13 2014-02-26 长江大学 一种并行压缩海量地震数据的方法
CN105120293A (zh) * 2015-08-26 2015-12-02 中国航空工业集团公司洛阳电光设备研究所 基于cpu和gpu的图像协同解码方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
张敏华等: "基于OpenCL的JPEG压缩算法并行化设计与实现", 《计算机工程与科学》 *
赵荣椿: "《数字图像处理》", 30 April 2016 *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107809643A (zh) * 2017-11-13 2018-03-16 郑州云海信息技术有限公司 一种图像的解码方法、装置及介质
CN107809643B (zh) * 2017-11-13 2020-11-20 苏州浪潮智能科技有限公司 一种图像的解码方法、装置及介质
CN109451322A (zh) * 2018-09-14 2019-03-08 北京航天控制仪器研究所 用于图像压缩的基于cuda架构的dct算法和dwt算法的加速实现方法
CN109451322B (zh) * 2018-09-14 2021-02-02 北京航天控制仪器研究所 用于图像压缩的基于cuda架构的dct算法和dwt算法的加速实现方法
CN110324629A (zh) * 2019-06-27 2019-10-11 北京奇艺世纪科技有限公司 图片转码方法、装置及电子设备
CN112385225A (zh) * 2019-09-02 2021-02-19 北京航迹科技有限公司 用于改进图像编码的方法和系统
CN112351281A (zh) * 2020-10-28 2021-02-09 西安万像电子科技有限公司 图像处理方法及装置、处理器、非易失性存储介质
CN117519887A (zh) * 2023-12-13 2024-02-06 南京云玑信息科技有限公司 一种提升云电脑远程操作体验的方法及系统
CN117519887B (zh) * 2023-12-13 2024-03-12 南京云玑信息科技有限公司 一种提升云电脑远程操作体验的方法及系统

Similar Documents

Publication Publication Date Title
CN107333136A (zh) 图像编码方法和装置
US7860328B2 (en) Compression processing apparatus and compression processing method
US11961267B2 (en) Color conversion between color spaces using reduced dimension embeddings
EP2732624A1 (en) Luma-based chroma intra prediction
JP2011087278A (ja) 画像処理方法および画像処理装置
CN105469353B (zh) 水印图像的嵌入方法和装置及提取方法和装置
US11893762B2 (en) Method and data processing system for lossy image or video encoding, transmission and decoding
US11790560B2 (en) Methods and decompression units for decompressing a compressed block of image data
CA2791788C (en) Apparatus and method for encoding and computing a discrete cosine transform using a butterfly processor
CN110399511A (zh) 基于Redis的图片缓存方法、设备、存储介质及装置
CN114819119A (zh) 信号处理的系统和方法
Abadpour et al. Color PCA eigenimages and their application to compression and watermarking
CN106303226A (zh) 图像处理方法及装置
CN111881920A (zh) 一种大分辨率图像的网络适配方法及神经网络训练装置
EP0875858A2 (en) Method and apparatus for compressing and decompressing image data
CN101919248A (zh) 增强型图像压缩的字节表示
CN113256744B (zh) 一种图像编码、解码方法及系统
CN107172430A (zh) 文字块的编码方法和装置
CN114761968A (zh) 用于频域静态通道滤波的方法、系统和存储介质
CN106717006B (zh) 用于根据图像类型选择压缩算法的方法
CN110572652B (zh) 一种静态图像的处理方法及装置
Shportko et al. Development of Predictors to Increase the Efficiency of Progressive Hierarchic Context-Independent Compression of Images Without Losses.
CN107223259A (zh) 基于树的图像存储系统
CN111815502A (zh) 基于WebP压缩算法的多图处理的FPGA加速方法
Singh et al. Deep learning based image segmentation directly in the jpeg compressed domain

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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20171107