CN113454995A - 跨多个图像的压缩 - Google Patents

跨多个图像的压缩 Download PDF

Info

Publication number
CN113454995A
CN113454995A CN201980092510.7A CN201980092510A CN113454995A CN 113454995 A CN113454995 A CN 113454995A CN 201980092510 A CN201980092510 A CN 201980092510A CN 113454995 A CN113454995 A CN 113454995A
Authority
CN
China
Prior art keywords
images
media content
codeword
storage
user
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
CN201980092510.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.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Publication of CN113454995A publication Critical patent/CN113454995A/zh
Pending legal-status Critical Current

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/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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3059Digital compression and data reduction techniques where the original information is represented by a subset or similar information, e.g. lossy compression
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/42Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • 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/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/177Methods 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 a group of pictures [GOP]
    • 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
    • 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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/93Run-length coding

Landscapes

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

Abstract

提供了一种用于跨多个图像(122)进行压缩的方法(400)。该方法包括在存储设备(140)处接收多个图像。对于多个图像中的每个图像,该方法包括使用有损压缩生成码字(312),每个码字被定义为比特串。该方法进一步包括基于为多个图像中的每个图像生成的码字生成熵代码化表(322)并且使用生成的熵代码化表对多个图像进行熵编码。

Description

跨多个图像的压缩
技术领域
本公开涉及跨多个图像的压缩。
背景技术
今天,技术使人们能够基本上在任何地方生成媒体内容(例如,图像和视频)。例如,移动设备通常标配相机,这允许人们拍摄照片或录制他们的经历。随着这项技术的易用性和社交媒体平台的流行,人们可能被迫生成媒体内容来捕捉回忆或分享时刻。随着人们增加他们生成的媒体内容的数量,通常需要存储空间作为存储媒体内容的存储库。因此,远程服务器和备份存储功能已变得普遍可访问以满足其中一些存储需求。然而,随着需求的不断增加,存储设备需要改进存储效率和/或媒体存储技术。
发明内容
本公开的一个方面提供了一种用于跨多个图像进行压缩的方法。该方法包括在数据处理硬件处在存储设备处接收多个图像。对于多个图像中的每个图像,该方法还包括由数据处理硬件使用有损压缩生成码字,每个码字被定义为比特串。该方法进一步包括由数据处理硬件基于多个图像的码字生成熵代码化表。该方法还包括由数据处理硬件根据生成的熵代码化表对多个图像进行熵编码。
本公开的实施方式可以包括以下可选特征中的一个或多个。在一些实施方式中,生成码字包括将多个图像中的每个图像划分为像素块,将每个像素块变换为变换系数,量化变换系数以形成量化索引,将每个量化索引表示为相应的比特串,以及指配可变长度码到相应的比特串。这里,可变长度码包括当多个图像内相应的比特串的出现增加时减小的比特长度。变换系数可以包括离散余弦变换(DCT)系数。每个码字可以是量化变换系数的固定长度比特串。有损压缩可以是联合图像专家组(JPEG)压缩。
在一些示例中,生成熵编码表包括通过出现频率来编译码字并且基于码字的编译频率为每个码字指配比特的可变长度码。例如,出现频率指示每个码字在多个图像中存在的次数。这里,第一可变长度码可以被指配给第一码字并且第二可变长度码可以被指配给第二码字。第一可变长度码可以包括比第二可变长度码更少的比特。第一码字可以包括比第二码字更大的出现频率。在一些实施方式中,基于码字的出现频率将比特的可变长度码指配给每个已编译码字包括为所有已编译码字优化比特的可变长度码之和。
在一些配置中,存储设备包括与用户设备通信的分布式系统的远程服务器。接收多个图像可以响应于来自用户设备的上传而发生,该上传与用户设备的媒体内容的备份功能性相关联。接收到的多个图像可以包括高质量格式,并且对多个图像进行熵编码可以将接收到的多个图像压缩成较低存储占用格式。
在一些示例中,多个图像中的每个图像具有共同特性,其中共同特性与特定用户、用户账户、媒体内容相册或物理存储位置相关联。接收多个图像可以包括接收包括多个图像和用于存储在存储设备处的另外多个图像的媒体内容,并且确定多个图像具有共同特性,其中共同特性与特定用户、用户账户、媒体内容专辑或物理存储位置相关联。附加地或可替代地,该方法可以进一步包括将使用生成的熵代码化表进行熵编码的多个图像存储在存储设备处的与其他多个图像分离的位置中。
可选地,接收多个图像包括在运行与存储设备通信的存储应用的用户设备处检测媒体内容的创建或接收,以及为用户设备生成提示,其中该提示询问是否使用用户设备要将检测到的媒体内容备份或传输到存储设备。当用户选择将检测到的媒体内容备份或传输到存储设备时,该方法包括标识媒体内容内的多个图像以进行熵编码。
在一些示例中,多个图像对应于来自由用户设备上传的媒体内容的第一图像子集。这里,媒体内容的上传包括第一图像子集和第二图像子集。第一图像子集具有被指定用于压缩成较低存储占用格式的第一媒体内容格式。第二图像子集绕过被压缩成较低存储占用格式。
本公开的另一方面提供了一种用于跨多个图像进行压缩的系统。该系统包括数据处理硬件和与数据处理硬件通信的存储器硬件。存储器硬件存储在数据处理硬件上执行时使数据处理硬件执行操作的指令。操作包括在存储设备处接收多个图像。对于多个图像中的每个图像,操作还包括使用有损压缩生成码字,每个码字被定义为比特串。操作进一步包括基于多个图像的码字生成熵代码化表和根据生成的熵代码化表对多个图像进行熵编码。
此方面可以包括以下可选特征中的一个或多个。在一些实施方式中,生成码字的操作包括将多个图像中的每个图像划分为像素块、将每个像素块变换为变换系数、量化变换系数以形成量化索引、将每个量化索引表示为相应的比特串,以及将可变长度码指配给相应的比特串。这里,可变长度码包括当多个图像内相应的比特串的出现增加时减小的比特长度。变换系数可以包括离散余弦变换(DCT)系数。每个码字可以是量化变换系数的固定长度比特串。有损压缩可以是联合图像专家组(JPEG)压缩。
在一些示例中,生成熵编码表的操作包括按出现频率编译码字以及基于码字的编译频率为每个码字指配比特的可变长度码。例如,出现频率指示每个码字在多个图像中存在的次数。这里,第一可变长度码可以被指配给第一码字并且第二可变长度码可以被指配给第二码字。第一可变长度码可以包括比第二可变长度码更少的比特,并且第一码字可以包括比第二码字更大的出现频率。在一些实施方式中,基于码字的出现频率将比特的可变长度码指配给每个已编译码字包括,为所有已编译码字优化比特的可变长度码之和。
在一些配置中,存储设备包括与用户设备通信的分布式系统的远程服务器。多个图像可以响应于来自用户设备的上传而发生,该上传与用户设备的媒体内容的备份功能性相关联。接收到的多个图像可以包括高质量格式,并且对多个图像进行熵编码可以将接收到的多个图像压缩成较低存储占用格式。
在一些示例中,多个图像中的每个图像具有共同特性,其中共同特性与特定用户、用户账户、媒体内容相册或物理存储位置相关联。接收多个图像可以包括接收包括多个图像和用于存储在存储设备处的另外多个图像的媒体内容,并且确定多个图像具有共同特性,其中共同特性与特定用户、用户账户、媒体内容专辑或物理存储位置相关联。附加地或替代地,该方法可以进一步包括将使用生成的熵代码化表进行熵编码的多个图像存储在存储设备处的与其他多个图像分离的位置中。
可选地,接收多个图像的操作包括在运行与存储设备通信的存储应用的用户设备处检测媒体内容的创建或接收,并且为用户设备生成提示,其中该提示询问是否用户设备的使用要将检测到的媒体内容备份或传输到存储设备。当用户选择将检测到的媒体内容备份或传输到存储设备时,该方法包括标识媒体内容内的多个图像以进行熵编码。
在一些示例中,多个图像对应于来自用户设备上传的媒体内容的第一图像子集。这里,媒体内容的上传包括第一图像子集和第二图像子集。第一图像子集具有被指定用于压缩成较低存储占用格式的第一媒体内容格式。第二个图像子集绕过被压缩成较低存储占用格式。
在附图和下面的描述中阐述了本公开的一种或多种实施方式的细节。从描述和附图以及从权利要求中,其他方面、特征和优点将是显而易见的。
附图说明
图1是示例媒体存储环境的示意图。
图2是图1的媒体存储环境的示例压缩器的示意图。
图3是图1的媒体存储环境的示例熵编码器的示意图。
图4是为媒体存储环境的存储系统实现图像压缩的方法的示例操作布置的流程图。
图5是可用于实现本文描述的系统和方法的示例计算设备的示意图。
各种附图中相同的参考符号指示相同的元件。
具体实施方式
媒体内容存储已经导致多媒体压缩技术的广泛采用。这些技术可以在几乎所有类型的硬件和软件系统上采用以减小图像和/或视频的大小。存储供应商经常采用压缩技术以为媒体内容用户或媒体内容所有者提供成本有效的存储解决方案。压缩技术通常寻求减小一段媒体内容(例如,图像或视频)的大小,同时保持一定程度的质量。因为媒体内容用户或媒体内容拥有者可能有兴趣保持他或她的媒体内容的最佳质量,所以这种兴趣可能需要大量的存储空间。不幸的是,这些兴趣并不完全与想要有效利用其存储空间同时试图将存储媒体内容的成本最小化的存储供应商一致。换句话说,大型、高质量的媒体内容存储起来可能很昂贵,并且可能会减少对存储供应商的投资的客户(例如,媒体内容用户或媒体内容所有者)的数量。因此,存储供应商希望在他们的整个存储空间或部分存储空间上优化存储。然而,压缩技术历来被开发以优化对于每个图像或每个视频的内容压缩,使得这些技术不能很好地考虑更大规模的多个图像或视频。在这里,为了解决这个问题,压缩技术在压缩过程中考虑了多个图像或视频。
图1是媒体存储环境100的示例。媒体存储环境100是用户10经由用户设备110进行通信以存储诸如照片(例如,图像122、122a-n)或视频的媒体内容120的环境。用户10可以生成媒体内容120的上传112以通过网络130将媒体内容120传输到存储系统140。网络130可以是被配置成在用户设备110和存储系统140之间路由数据的任何类型的通信网络。尽管出于说明性目的图1-3可以将媒体内容120描绘为图像122,媒体存储环境100内的媒体内容120可以是任何类型的媒体内容120,包括但不限于图像(例如,实况照片、运动照片、智能连拍照片等)或视频。
用户10可以出于多种原因选择将媒体内容120存储在存储系统140上。一种可能的原因是用户10可能对用户设备110有资源意识。换言之,用户10可以选择将媒体内容120存储在存储系统140上以合并或最小化被媒体内容120占用的用户设备110的资源空间。例如,用户设备110被配置有有限量的存储空间。取决于用户设备110的计算资源(例如,数据处理硬件114和/或存储器硬件116),用户10可能宁愿分配计算资源来运行用户设备110的应用或者其他功能性,而不是存储媒体内容120。因此,用户10可以选择将媒体内容120存储在诸如存储系统140的远程位置而不是用户设备110上。
用户10可以使用存储系统140来存储媒体内容120的另一个原因可以是使用与存储系统140相关联的媒体内容服务。存储系统140的这些媒体内容服务例如可以由媒体内容应用(例如,基于云的应用)提供。基于云的应用通常是指使用或访问远程系统的计算资源或存储资源的应用。例如,媒体内容应用被配置成使用户10(例如,通过用户设备110)能够访问存储系统140。在一些实施方式中,媒体内容应用是在用户设备110上运行的应用20,其可以访问用户设备110的资源(例如,数据处理硬件114和/或存储器硬件116)。通过访问用户设备110的资源,应用20可以将位于用户设备110上的媒体内容120传达到存储系统140。媒体内容应用可以在传输到存储系统140之前、期间或之后为媒体内容120提供媒体内容服务。媒体内容服务的一些示例包括媒体组织(例如,相册、时间线、地理标记、元数据创建/编辑)、媒体编辑、媒体共享能力(例如,对等媒体共享)、媒体存储等。另外地或可替代地,这些媒体内容应用中的一些可以基于各种压缩技术或存储管理专供存储。
在一些示例中,媒体内容应用为用户设备110的媒体内容120提供备份功能性。该备份功能性可以是自动的、手动的或由用户10定制的。因为用户设备110可能能够进行媒体内容生成或获取(即,接收媒体内容120),备份功能性可以允许用户10保存媒体内容120。此外,存储系统140,通过提供备份功能性,可以简化用户10的媒体内容管理。例如,存储系统140将媒体内容120存储在相册(即,图像组122a-n或视频)或媒体内容120的元数据(例如,时间戳)中以允许用户10方便地访问或导航媒体内容120。
用户设备110可以是能够将捕获的媒体内容120传达到网络130和/或存储系统140的任何计算设备或数据处理硬件。例如,用户设备110是诸如移动电话、膝上型计算机、平板计算机、个人数字助理(PDA)、智能可穿戴设备(例如,智能手表)等移动设备。在一些示例中,用户设备110包括数据处理硬件114、存储器硬件116和至少一个图像捕获设备118。在其他示例中,用户设备110包括数据处理硬件114和存储器硬件116而没有图像捕获设备118,使得用户设备110能够发送和接收媒体内容120,但不能生成媒体内容120。图像捕获设备118能够捕获图像122或图像序列122a-n(例如,视频)。例如,图像捕捉设备118是被配置成以特定频率捕获单个图像122或多个图像122a-n以形成视频内容的相机。通过捕获图像122或图像序列122a-n,图像捕获设备118生成媒体内容120。
存储系统140(也称为存储设备)通常是指远离用户10和/或被配置成存储媒体内容120的用户设备110的联网系统。这里,用户10不具有对存储系统140的物理访问权,但是借助于具有到网络130的网络连接的用户设备110具有远程访问。存储系统140可以是具有一个或多个网络地址的一个或多个工作站和/或服务器。存储系统140包括资源142,诸如数据处理硬件144、存储器硬件146和软件资源148。在一些示例中,存储系统140是分布式系统(例如,云环境),其中资源142可以跨多个计算系统被共享。
更详细地参考图1,用户10可以决定备份位于用户设备110上的媒体内容120。为了备份媒体内容120,用户10可以将媒体内容120(例如,至少一个图像122)上传到存储系统140。在这里,图1描绘由用户10在用户设备110处上传的多个图像122a-n。在一些示例中,用户10手动生成媒体内容120(例如,图像122a-n)的上传112。在其他示例中,在用户设备110上执行的应用20自动地生成媒体内容120(例如,图像122a-n)的上传112。例如,应用20发起自动备份过程(例如,在媒体内容120的存储和/或生成的特定时间或特定阈值),其生成媒体内容120(例如,图像122)的上传112。在一些配置中,应用20被配置成检测在用户设备110处(例如,通过图像捕获设备118)媒体内容120的创建或接收。当应用20检测到媒体内容120的创建(或接收)时,应用20可以提示用户设备110的用户10备份(例如,复制)创建的媒体内容120和/或将媒体内容120传输到存储系统140。应用20可以被配置成当应用20检测到在用户设备110处的媒体内容创建时自动地备份和/或自动地传输创建的媒体内容。
图1图示了当媒体内容120(诸如图像122a-n)被传达到存储系统140时,压缩器200和熵编码器300将媒体内容120处理成用于存储的压缩媒体内容(例如,示出为压缩图像302、302a-n)。压缩器200和熵编码器300可以对应于存储系统140上的软件资源148。在一些示例中,存储系统140接收媒体内容120(例如,图像122a-n),并且然后将媒体内容120传达到压缩器200和熵编码器300。作为将图像122a-n作为媒体内容120的示例,用户10可以以高质量格式(例如,原始格式)上传图像122a-n,并且存储系统140可以随后使用压缩器200和熵编码器300重新压缩上传的图像122a-n(到联合图像专家组(JPEG)格式)。在其他示例中,压缩器200和熵编码器300在用户设备110将媒体内容120上传到存储系统140之前处理媒体内容120。这里,压缩器200和熵编码器300的功能性可以经由在用户设备110上运行的应用20在用户设备110上执行。例如,一旦媒体内容120(例如,图像122a-n)由用户设备110(例如,经由应用20)指定用于在用户设备110处的上传,压缩器200和熵编码器300可以在上传媒体内容120之前处理媒体内容120。当压缩器200和熵编码器300处理被指定用于上传112到存储系统140的媒体内容120(例如,图像122a-n)时,用户设备110可以以压缩的大小上传112媒体内容120,从而实现更快的上传时间,同时在上传112期间需要更少的带宽。无论媒体内容120是否被指定用于上传112或者上传是否完成,压缩器200和熵编码器300被配置成处理媒体内容120(例如,图像122a-n)以生成压缩媒体内容(例如,示出为压缩图像302a-n)以存储在存储系统140上。
不通过压缩器200和熵编码器300将媒体内容120处理成对应的压缩媒体内容120,媒体内容120(例如,图像122a-n)的存储对于存储系统140的存储供应商来说可能是昂贵的,因为用户10可以指定和上传高质量格式的媒体内容120。特别地,当用户10以高质量格式指定并上传媒体内容120时,与如果媒体内容120在存储系统140上存储之前被压缩成对应的压缩媒体内容120(例如,压缩图像302a-n)相比,存储供应商可能被强制存储占据更多空间的媒体内容。因此,随着用户设备110的越来越多的用户10正在使用存储系统140来存储他们的媒体内容120,存储供应商可以利用压缩器200和熵编码器300来提供具有成本效益的存储解决方案。例如,使用压缩器200和熵编码器300,高质量格式的媒体内容120(例如,图像122a-n)可以被压缩成较低存储占用格式的压缩媒体内容(例如,图像302a-n)以减少存储系统140的存储需求。此外,当在被上传到存储系统140之前,媒体内容120被压缩器200和熵编码器300压缩则可以减少上传时间和带宽要求。
当压缩器200接收媒体内容120时,压缩器200被配置成执行有损压缩并且生成量化索引222的输出。这里,熵编码器300接收量化索引222的输出并且被配置成根据一个或多个熵代码化表322(例如,图3中所示)在无损过程中对媒体内容120进行熵编码以形成压缩媒体内容120(例如,示出为压缩图像302、302a-n)。在一些示例中,压缩器200和熵编码器300是单独的组件(例如,单独的软件程序)。作为单独的组件,压缩器200和熵编码器300被配置成彼此通信,但是可以在媒体存储环境100内的不同位置处实现。在一些实施方式中,如图1中的虚线框所示,压缩器200和熵编码器300包括单个单元。例如,压缩器200和熵编码器300是在与存储系统140相关联的媒体存储应用上执行的单个程序的一部分。换言之,媒体存储应用可以是被用于与包括压缩器200和熵编码器300作为内置功能性的用户设备110的存储系统140的软件资源148。
图2是压缩器200的示例。压缩器200被配置成对来自上传112的媒体内容120(例如,示出为多个图像122a-n)执行有损压缩(例如,JPEG压缩)。有损压缩是一种媒体压缩形式,其处理媒体内容(例如,图像122)以减少表示媒体内容120所需的数据量。为了减少表示媒体内容120所需的数据量,有损压缩通常去除冗余信息或压缩技术指定为表示媒体内容120所不必要的信息。冗余信息可以是代码化冗余、像素间冗余或心理视觉冗余。通过去除冗余,有损压缩形成媒体内容120(例如,压缩图像302),其包括比压缩之前的媒体内容120(例如,图像122)的原始形式更少的数据(即,压缩的),但通常具有用户10无法察觉的质量损失。这是因为压缩算法通过考虑人眼对质量的实际感知(即,人眼无法检测到的信息)来减少冗余。例如,人眼对亮度比对色度更敏感,并且因此,压缩技术通常会丢弃色度信息。
压缩器200通常包括变换器210和量化器220。在一些示例中,压缩器200包括附加的或替代的组件,这取决于发生在压缩器200处的有损压缩的类型。变换器210被配置成接收来自用户设备110的上传112的媒体内容120(例如,示出为图像122a-n)。参考图2,对于每个图像122,变换器210在操作212处将图像122分割/划分为子块(例如,像素块)213。例如,变换器210将图像122分割/划分为8x8像素块213。对于每个子块213,在操作214处,变换器210变换子块213以生成对应的变换系数216(例如,通过离散余弦变换(DCT))。例如,对于8x8子块,子块213实际上是两个空间维度上的64点离散信号。如此,在8x8子块213的DCT变换的情况下,DCT变换将64点离散信号变换成64个空间频率的分解以输出64个信号幅度的集合作为变换系数216。这些变换系数216可以具有一些在两个维度上都具有零频率的系数(也称为DC系数)和一些具有非零频率的系数(也称为AC系数)。此处,编号较低的系数表示低频颜色变化(即,跨区域的渐变颜色),而编号较高的系数表示高频颜色变化(即,块内从一个像素到另一个像素的快速变化)。在一些示例中,变换系数216是表示媒体内容120(例如,图像122)的符号的非量化形式。通过生成变换系数216,变换器210可以关联冗余图像数据和非冗余图像数据以帮助熵编码器300去除冗余图像数据。在一些实施方式中,变换系数216还允许熵编码器300容易地确定具有非零方差的每个变换子块213的多个系数以帮助码字生成。一旦变换器210生成变换系数216,变换器210就将变换系数216传达到量化器220。
在一些示例中,变换器210执行附加操作。这些操作可能涉及媒体内容准备。在一些配置中,媒体内容准备的操作发生在变换器210在操作212处将媒体内容120划分为子块213之前。对于媒体内容准备,变换器210可以将媒体内容120分离成颜色空间的分量(例如,亮度(Y)、蓝色色度(U)和红色色度(V))。当变换器210将媒体内容120(例如,图像122)分离成色彩空间分量时,变换器210可以附加地按像素区域对色彩空间分量(例如,色度分量)进行子采样。
量化器220接收变换系数216并且被配置成基于变换系数216执行量化过程(例如,标量量化)。量化过程通常将输入参数转换成更小的输出值数据集。尽管量化过程可以从模拟转换为数字,但是这里的量化过程处理转换后的数字媒体内容的数字内容。通过使用量化过程,数据可以被压缩,但以数据丢失的一些方面为代价,因为较小的数据集是较大或连续数据集的减少(即,有损过程)。量化器220将来自变换器210的每个子块213的变换系数216量化(例如,标量量化)为量化索引222。作为示例,量化器220将每个变换系数216除以对应的量化器步长,并且然后可以随后将结果值舍入到最接近的整数以形成量化索引222。这里,量化索引222被传达到熵编码器300以用于代码工作形成和熵编码。在一些示例中,通过变换系数216的标量量化进行量化可以允许在压缩器200处的有损压缩过程来缩放每个变换系数216,以便将冗余媒体内容数据(例如,可以在编码期间去除的数据)与有价值的媒体内容数据(例如,不应被去除的数据)进行对比。
在一些示例中,量化表指定量化器220的量化器步长。量化表可以是基于压缩格式(例如,期望质量设置)的默认量化表或基于有损压缩的目的的自定义量化表(即,压缩应用)。在一些配置中,量化器步长指示变换系数216是否接收精细量化和/或粗量化,或者在一些情况下,哪些变换系数216接收精细量化并且哪些接收粗量化。精细量化通常更类似于原始图像,而粗量化形成的原始图像相似度更低。因为量化表对于不同的压缩应用可能不同,压缩媒体内容(例如,压缩图像302)可以存储在量化期间使用的量化表以启用解压缩。
参考图3,熵编码器300从压缩器200接收来自有损压缩的多个图像122a-n的量化索引222。利用媒体内容120(例如,多个图像122a-n)的量化索引222,熵编码器300被配置成将媒体内容120编码成对应的压缩媒体内容(例如,示出为压缩图像302a-n)。如图3中所示,熵编码器300通常包括代码化器310、代码化表生成器320和编码器330。代码化器310被配置成基于量化索引222生成码字312。码字312指用于表示数据符号的比特串(例如,比特、字节、变换系数、量化变换系数、量化索引、矢量等)。换句话说,这些符号可以表示来自压缩器200的基于压缩的数据。在一些实施方式中,代码化器310对量化索引222进行排序以执行游程长度编码(RLE)。例如,代码化器310可以使用锯齿形序列(例如,在顺序编码中)对量化索引222进行排序,并且然后在锯齿形序列上使用游程长度代码化算法来生成符号。例如,RLE执行量化索引222的矩阵的线性变换以将量化索引向量化为具有向量形式的符号。为了说明8x8子块213,码字312的符号对应于表示根据锯齿形序列排序的64个量化索引222的向量。在其他示例中,代码化器310采用部分或全部渐进编码(例如,对应于渐进JPEG的渐进编码),其中代码化器310分批扫描相似定位的量化索引222而不是序列模式(例如,锯齿形序列)以生成符号。
在一些配置中,在RLE期间,代码化器310通过合并连续的零量化索引222和代码化非零量化索引222来生成表示量化索引222的码字312。例如,每个码字312由两个符号,第一个符号和第二个符号的组合形成。第一符号表示游程长度(即,非零量化索引222之前的量化索引222中的零的数量)和与表示继零量化索引222的游程长度之后的非零量化索引222的比特数量相对应的大小。第二符号表示对应于第一符号的非零量化索引222的幅度。为了说明,使用表示8x8子块213的64个量化索引222的向量,该向量可以包括量化索引222的序列,诸如(41,0,0,0,67,...)。这里,代码化器310可以将该序列表示为(0,41);(3,67),因为在四十一(41)的非零量化索引222之前没有零量化索引222并且在六十七(67)的非零量化索引222之前有三个零量化索引222。使用量化索引222的符号,代码化器310形成由比特串定义的码字312。在一些示例中,代码化器310形成码字312,其中每个码字是表示量化索引222(例如,量化的变换系数)的固定长度比特串。例如,每个码字312被代码化为4比特值。在一些示例中,存在对应于块的结尾(例如,块的结尾标记)或固定长度比特串的零的最大游程长度的特殊码字312。例如,在4比特值的情况下,最大游程长度特殊码字312对应于十六个连续的零。由代码化器310生成的码字312可以对应于每个符号(例如,游程长度表示或非零量化索引222表示)。一旦代码化器310生成码字312,码字312就可以被传达到代码化表生成器320。
代码化表生成器320基于从代码化器310接收到的码字312生成一个或多个熵代码化表322。传统上,在基于有损压缩(例如,JPEG压缩)的熵编码期间,熵编码使用标准熵代码化表或为媒体内容120的单个元素优化的熵代码化表。例如,有损压缩为单个图像生成码字,并且熵编码器300仅基于从单个图像生成的码字进行编码。这个过程可能是产生压缩媒体内容的有损压缩和熵编码的组合,但不幸的是,这个压缩过程缺乏对跨所有媒体内容(例如,来自于上传112的图像122a-n或图像集122a-n)的总存储的优化和/或缺乏针对媒体内容的多个元素的特定集合的特定优化。更具体地说,一般而言,熵代码化表不考虑媒体内容的多个元素(即,跨多个图像来生成熵代码化表)。尽管标准熵代码化表可以基于具有特定比特精度的大量图像集的平均统计数据,但是这些表对于例如特定的多个图像122a-n(例如,要存储在存储系统140中的特定的图像集122a–n)不是唯一的,并且因此可能使存储供应商的存储效率低下。通过在生成熵代码化表时考虑将或最终存储在存储系统140处的媒体内容120(例如,多个图像122a-n)的多个元素,压缩器200和熵编码器300可以优化存储供应商的媒体内容存储;因此,潜在地降低用户10的存储成本或稳定用户10的存储成本。
在一些示例中,压缩器200和/或熵编码器300被配置成优化跨媒体内容120的不同合集或集合的存储。在这些示例中,媒体内容120可以共享共同特性。例如,压缩器200和/或熵编码器300被配置成优化与一个或多个用户10(例如,具有应用20和/或存储系统140的用户10的用户账户)相关联的媒体内容120的存储。在不同的尺度上,压缩器200和/或熵编码器300可以被配置成优化跨媒体内容120的一个或多个子集的存储,诸如媒体内容专辑或共享给定元数据特性的媒体内容的合集。在一些配置中,应用20和/或存储系统140采用压缩器200和/或熵编码器300来优化存储系统140(例如,整个远程系统或数据中心)中的一些(例如,特定的物理存储位置)或者整个的存储。应用20和/或存储系统140可以标识媒体内容的共同特性(例如,媒体内容120的类型或媒体内容120的指定存储位置)并确定该标识是否将利用压缩器200和/或熵编码器300。例如,应用20和/或存储系统140可以标识共享共同特性的一些或所有的上传媒体内容,并将具有共同特性的媒体内容传达给压缩器200和/或熵编码器300。
在一些配置中,上传112的媒体内容120包括具有不同质量格式的媒体内容元素,使得多个图像122a-n可以对应于上传112的图像122a-n的子集。例如,定义压缩器200和/或熵编码器300的多个图像122a-n的图像子集122a-n对应于具有大(例如,高)质量格式的上传112的图像。在此配置中,压缩器200和/或熵编码器300可以标识媒体内容120的质量差异并确定要处理的图像122a-n的子集。换言之,上传112的一些媒体内容120可以被压缩成较低存储格式(例如,被标识的图像子集122a-n),而未标识的媒体内容120被存储在存储系统140中(例如,没有由压缩器200和/或熵编码器300处理)。
附加地或可替代地,存储系统140和/或应用20的存储供应商指定将由压缩器200和/或熵编码器300处理的媒体内容格式。例如,应用20(或压缩器200和/或熵编码器300)可以用文件大小阈值编程,该文件大小阈值指示要被压缩成较低存储占用格式的最小文件大小。在一些示例中,应用20被配置成归类地指定将要由压缩器200和/或熵编码器300压缩成较低存储占用格式的媒体内容格式。
继续参考图3的熵编码器300,代码化表生成器320接收用于多个图像122a-n(例如,上传112的媒体内容120)的码字312。在一些示例中,每当更多的媒体内容120被传达到存储系统140时,代码化表生成器320为存储供应商或存储系统140重新生成熵代码化表322,使得存储系统140跨所有已存储的媒体内容保持存储效率。在一些实施方式中,代码化表生成器320仅针对被一起发送到压缩器200和/或熵编码器300(例如,通过上传112)的多个图像122a-n来生成代码化表322。
在一些示例中,熵代码化表322是比特串映射,其包括一个或多个码字312、每个码字312的出现频率和映射到每个码字312的可变长度比特串(例如,示为可变码324)。在一些配置中,出现频率对应于特定码字312存在于媒体内容120(例如,多个图像122a-n)中的次数的计数,使得代码化表生成器320通过相应的出现频率编译每个码字312。例如,图3描绘了按频率从最频繁(4.2)到最不频繁(1.1)排序的码字312a-n。在一些示例中,可变长度比特串映射到固定长度比特串,使得具有较大频率的码字312映射到具有较少比特的可变长度比特串。例如,当码字312与其他码字312相比以最高频率出现时,代码化表生成器320指配具有最少比特量的可变长度比特串(例如,在图3中示为可变码324)。换言之,当代码化表生成器320将第一可变长度码324a指配给第一码字312a并且将第二可变长度码324b指配给第二码字312b时,第一可变长度码324a包括比第二可变长度码324b少的比特,因为第一码字312a比第二码字312b具有更大的出现频率。在一些示例中,频率范围可以被指配特定的可变长度比特串,使得即使两个码字312(例如,第一码字312a和第二码字312b)具有不同的频率,这些码字312a-n中的每一个码字具有不同比特的相应的可变长度码324a-n,但具有相同的可变长度比特串。通过指配具有与固定长度比特串(例如,码字312)的出现频率成比例的比特量的可变长度比特串(例如,可变长度码324),代码化表生成器320可以确保根据可变长度比特串的媒体内容120(例如,图像122)的表示可能减小形成压缩媒体内容(例如,压缩图像302)所需的比特数。换言之,可以优化可变长度比特串的比特长度之和。
编码器330使用由代码化表生成器320生成的熵代码化表322来执行熵编码,从而产生媒体内容120的压缩版本(例如,压缩图像302a-n)。熵编码可以指无损数据压缩过程,因为熵编码可以允许从压缩数据完美地重建原始数据。编码器330接收媒体内容120(例如,图像122a-n)的码字312和熵代码化表322,并且将媒体内容120(例如,图像122a-n)内的每个码字312替换成如由熵代码化表322指定的对应的可变长度码324a-n。对于该过程,编码器330可以结合熵代码化表322使用诸如霍夫曼代码化或算术代码化的熵编码技术。这些熵编码技术可以定义如熵代码化表322指示的要映射到码字312(例如,根据频率)的可变长度码324的大小。
图4是用于生成用于存储在存储系统140处的压缩媒体内容的示例方法400的流程图,其中压缩媒体内容是压缩图像302、302a-n。在操作402处,方法400在存储设备(例如,存储系统140(例如,存储系统140处的存储器硬件146))处接收多个图像122、122a-n。在操作404处,对于多个图像122中的每个图像122,方法400使用有损压缩生成码字312。这里,每个码字312被定义为比特串。在操作406处,方法400基于多个图像122的码字312生成熵代码化表322。在操作408处,方法400使用生成的熵代码化表322对多个图像122进行熵编码。在一些实施方式中,用户设备110执行被配置成在用户设备110上实现压缩器200和/或熵编码器300的功能性的应用20。在这些实施方式中,用户设备110本地存储多个图像122并本地执行操作404、406、408以本地编码多个图像122。然后,用户设备110可以将编码图像上传为压缩图像302以存储在存储设备(例如,存储系统140)上。
在一些实施方式中,多个图像122a-n指示媒体内容120的一部分,该部分将根据熵代码化表322特别基于多个图像122a-n的合集进行熵编码。换句话说,多个图像122a-n可以被形成为媒体内容120的子集,但是多个图像122a-n都是被共同熵编码的,使得多个图像122a-n中没有单个图像绕过熵编码。
图5是可用于实现本文档中所述的系统(例如,用户设备110、存储系统140、压缩器200和/或熵编码器300)和方法(例如,方法400)的示例计算设备500的示意图。计算设备500旨在表示各种形式的数字计算机,诸如膝上型计算机、台式计算机、工作站、个人数字助理、服务器、刀片服务器、大型机以及其它适当的计算机。本文所示的组件、它们的连接和关系以及它们的功能仅是例证性的,并不意味着限制本文档中描述和/或要求保护的发明的实施方式。
计算设备500包括处理器510(例如,数据处理硬件)、存储器520(例如,存储器硬件)、存储设备530、连接到存储器520和高速扩展端口550的高速接口/控制器540,以及连接到低速总线570和存储设备530的低速接口/控制器560。组件510、520、530、540、550和560中的每个组件使用各种总线互连,并且可以安装在公共主板上或以其它适当的方式安装。处理器510能够处理用于在计算设备500内执行的指令,包括存储在存储器520中或存储在存储设备530上的指令,以在诸如耦合到高速接口540的显示器580之类的外部输入/输出设备上显示用于图形用户界面(GUI)的图形信息。在其它实施方式中,可以适当地使用多个处理器和/或多个总线,以及多个存储器和存储器类型。而且,可以连接多个计算设备500,其中每个设备提供必要操作的部分(例如,作为服务器组、刀片服务器组或多处理器系统)。
存储器520在计算设备500内非暂时性地存储信息。存储器520可以是计算机可读介质、易失性存储器单元或非易失性存储器单元。非暂时性存储器520可以是用于临时或永久地存储程序(例如,指令序列)或数据(例如,程序状态信息)以供计算设备500使用的物理设备。非易失性存储器的示例包括但不限于闪存和只读存储器(ROM)/可编程只读存储器(PROM)/可擦可编程只读存储器(EPROM)/电子可擦可编程只读存储器(EEPROM)(例如,通常用于固件,诸如启动程序)。易失性存储器的示例包括但不限于随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、相变存储器(PCM)以及磁盘或磁带。
存储设备530能够为计算设备500提供大容量存储。在一些实施方式中,存储设备530是计算机可读介质。在各种不同的实施方式中,存储设备530可以是软盘设备、硬盘设备、光盘设备或磁带设备、闪存或其它类似的固态存储设备,或设备阵列,包括在存储区域网络或其它配置中的设备。在另外的实施方式中,计算机程序产品有形地体现为信息载体。该计算机程序产品包含在被执行时执行一种或多种方法,诸如上述那些方法的指令。信息载体是计算机或机器可读介质,诸如存储器520、存储设备530或处理器510上的存储器。
高速控制器540管理计算设备500的带宽密集型操作,而低速控制器560管理较低带宽密集型操作。这种职责分配仅是例证性的。在一些实施方式中,高速控制器540耦合到存储器520、显示器580(例如,通过图形处理器或加速器)和可以接受各种扩展卡(未示出)的高速扩展端口550。在一些实施方式中,低速控制器560耦合到存储设备530和低速扩展端口590。可能包括各种通信端口(例如,USB、蓝牙、以太网、无线以太网)的低速扩展端口590可以例如通过网络适配器耦合到一个或多个输入/输出设备,例如键盘、定点设备、扫描仪或网络设备,诸如交换机或路由器。
如图所示,可以以多种不同形式来实现计算设备500。例如,计算设备500可以被实现为标准服务器500a或在一组这样的服务器500a中多次实现,被实现为膝上型计算机500b或被实现为机架服务器系统500c的一部分。
本文所述的系统和技术的各种实施方式能够以数字电子和/或光学电路、集成电路、专门设计的ASIC(应用专用集成电路)、计算机硬件、固件、软件和/或其组合实现。这些各种实施方式能够包括在一个或多个计算机程序中的实施方式,该计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用的或通用的,耦合以从存储系统、至少一个输入设备以及至少一个输出设备接收数据和指令,并将数据和指令发送到这些设备。
这些计算机程序(也称为程序、软件、软件应用或代码)包括用于可编程处理器的机器指令,并且能够以高级过程和/或面向对象的编程语言和/或以汇编/机器语言实现。本文中使用的术语“机器可读介质”和“计算机可读介质”是指任何计算机程序产品、非暂时性计算机可读介质、用于向可编程处理器提供机器指令和/或数据的装置和/或设备(例如,磁盘、光盘、存储器、可编程逻辑设备(PLD),包括接收机器指令作为机器可读信号的机器可读介质。术语“机器可读信号”是指用于向可编程处理器提供机器指令和/或数据的任何信号。
本说明书中所述的过程和逻辑流程能够由执行一个或多个计算机程序以通过对输入数据进行操作并生成输出来执行功能的一个或多个可编程处理器来执行。过程和逻辑流程也能够由专用逻辑电路执行,例如FPGA(现场可编程门阵列)或ASIC(应用专用集成电路)。例如,适于执行计算机程序的处理器包括通用和专用微处理器,以及任何种类的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行指令的处理器和用于存储指令和数据的一个或多个存储设备。通常,计算机还将包括一个或多个用于存储数据的大容量存储设备例如磁盘、磁光盘或光盘,或可操作地耦合至大容量存储设备以从中接收数据或对其传输数据,或者两者。然而,计算机不必具有此类设备。适于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,例如包括半导体存储器设备,例如EPROM、EEPROM和闪存设备;磁盘,例如内部硬盘或可移动磁盘;磁光盘;以及CD ROM和DVD-ROM盘。处理器和存储器能够由专用逻辑电路补充或被并入专用逻辑电路中。
为了提供与用户的交互,本公开的一个或多个方面能够在具有显示设备和可选的键盘与定点设备的计算机上实现,显示设备例如是CRT(阴极射线管)、LCD(液晶显示器)监视器或触摸屏,以向用户显示信息,定点设备例如为鼠标和轨迹球,用户能够通过其向计算机提供输入。其它类型的设备也能够用于提供与用户的交互;例如,提供给用户的反馈能够为任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且能够以任何形式接收来自用户的输入,包括声音、语音或触觉输入。另外,计算机能够通过向用户使用的设备发送文档以及从用户使用的设备接收文档来与用户进行交互;例如,通过响应于从Web浏览器收到的请求,将网页发送到用户客户端设备上的Web浏览器。
已经描述了许多实施方式。然而,应理解,在不脱离本公开的精神和范围的情况下,可以做出各种修改。因而,其它实施方式也在所附权利要求的范围内。

Claims (24)

1.一种方法(400),包括:
在存储设备(140)的数据处理硬件(144)处接收多个图像(122);
对于所述多个图像(122)中的每个图像(122),由所述数据处理硬件(144)使用有损压缩来生成码字(312),每个码字(312)被定义为比特串;
由所述数据处理硬件(144)基于为所述多个图像(122)中的每个图像(122)生成的所述码字(312)来生成熵代码化表(322);以及
由所述数据处理硬件(144)使用所生成的熵代码化表(322)对所述多个图像(122)进行熵编码。
2.根据权利要求1所述的方法(400),其中生成码字(312)进一步包括:
将所述多个图像(122)中的每个图像(122)划分为像素块(213);
将所述像素块(213)中的每个像素块变换为变换系数;
量化所述变换系数以形成量化索引(222);
将每个量化索引表示为相应的比特串;以及
将可变长度码指配给所述相应的比特串,所述可变长度码包括比特长度,当在所述多个图像(122)内所述相应的比特串的出现增加时,所述比特长度减小。
3.根据权利要求2所述的方法(400),其中,所述变换系数包括离散余弦变换(DCT)系数。
4.根据权利要求1-3中的任一项所述的方法(400),其中,所述有损压缩包括联合图像专家组(JPEG)压缩。
5.根据权利要求1-4中的任一项所述的方法(400),其中,生成所述熵编码表(322)包括:
基于所述码字(312)的出现频率来编译为所述多个图像(122)中的每个图像(122)生成的所述码字(312),所述出现频率指示每个码字(312)在所述多个图像(122)中存在的次数;以及
基于所述码字(312)的所述出现频率,将比特的可变长度码指配给每个已编译码字(312)。
6.根据权利要求5所述的方法(400),其中,基于所述码字(312)的所述出现频率将所述比特的可变长度码指配给每个已编译码字(312)包括:针对所有已编译码字(312),优化所述比特的可变长度码的和。
7.根据权利要求1-6中的任一项所述的方法(400),其中,响应于来自用户设备(110)的上传(112)而发生接收所述多个图像(122),所述上传(112)与所述用户设备(110)的媒体内容(120)的备份功能性相关联。
8.根据权利要求1-7中的任一项所述的方法(400),其中,所述多个图像(122)中的每个图像(122)具有共同特性,所述共同特性与特定用户、用户账户、媒体内容相册或物理存储位置相关联。
9.根据权利要求1-8中的任一项所述的方法(400),其中,接收所述多个图像(122)包括:
接收包括所述多个图像(122)和另一多个图像(122)的媒体内容(120)以用于存储在所述存储设备(140)处;以及
确定所述多个图像(122)具有共同特性,所述共同特性与特定用户、用户账户、媒体内容相册或物理存储位置相关联。
10.根据权利要求9所述的方法(400),进一步包括:由所述数据处理硬件(144)将使用所生成的熵代码化表(322)进行熵编码的所述多个图像(122)存储在所述存储设备(140)处的与其他多个图像(122)分离的位置中。
11.根据权利要求1-10中的任一项所述的方法(400),其中,接收所述多个图像(122)包括:
在运行与所述存储设备(140)通信的存储应用(20)的用户设备(110)处检测媒体内容(120)的创建或接收;
为所述用户设备(110)生成提示,所述提示询问所述用户设备(110)的用户是否要将所检测的媒体内容(120)备份或传输到所述存储设备(140);以及
当所述用户选择将所检测的媒体内容(120)备份或传输到所述存储设备(140)时,标识所述媒体内容(120)内的所述多个图像(122)以用于进行熵编码。
12.根据权利要求1-11中的任一项所述的方法(400),其中,所述多个图像(122)与来自用户设备(120)的媒体内容(120)的上传(112)的第一图像子集(122)相对应,所述媒体内容(120)的上传(112)包括所述第一图像子集(122)和第二图像子集(122),所述第一图像子集(122)具有被指定用于压缩成较低存储占用格式的第一媒体内容(120)格式,所述第二图像子集(122)绕过被压缩成所述较低存储占用格式。
13.一种系统(100),包括:
存储设备(140)的数据处理硬件(144);以及
存储器硬件(146),所述存储器硬件(146)与所述数据处理硬件(144)通信,所述存储器硬件(146)存储指令,所述指令当在所述数据处理硬件(144)上执行时使所述数据处理硬件(144)执行操作,所述操作包括:
在所述存储设备(140)处接收多个图像(122);
对于所述多个图像(122)中的每个图像(122),使用有损压缩来生成码字(312),每个码字(312)被定义为比特串;
基于为所述多个图像(122)中的每个图像(122)生成的所述码字(312)来生成熵代码化表(322);以及
使用所生成的熵代码化表(322)对所述多个图像(122)进行熵编码。
14.根据权利要求13所述的系统(100),其中,生成码字(312)进一步包括:
将所述多个图像(122)中的每个图像(122)划分为像素块(213);
将所述像素块(213)中的每个像素块变换为变换系数;
量化所述变换系数以形成量化索引(222);
将每个量化索引表示为相应的比特串;以及
将可变长度码指配给所述相应的比特串,所述可变长度码包括比特长度,当在所述多个图像(122)中所述相应的比特串的出现增加时,所述比特长度减小。
15.根据权利要求14所述的系统(100),其中,所述变换系数包括离散余弦变换(DCT)系数。
16.根据权利要求13-15中的任一项所述的系统(100),其中,所述有损压缩包括联合图像专家组(JPEG)压缩。
17.根据权利要求13-16中的任一项所述的系统(100),其中,生成所述熵编码表(322)包括:
基于所述码字(312)的出现频率来编译为所述多个图像(122)中的每个图像生成的所述码字(312),所述出现频率指示每个码字(312)在所述多个图像中存在的次数(122);以及
基于所述码字(312)的所述出现频率,将比特的可变长度码指配给每个已编译码字(312)。
18.根据权利要求17所述的系统(100),其中,基于所述码字(312)的所述出现频率将所述比特的可变长度码指配给每个已编译码字(312)包括:针对所有已编译的码字(312),优化所述比特的可变长度码的和。
19.根据权利要求13-18中的任一项所述的系统(100),其中,响应于来自用户设备(110)的上传(112)而发生接收所述多个图像(122),所述上传(112)与所述用户设备(110)的媒体内容(120)的备份功能性相关联。
20.根据权利要求13-19中的任一项所述的系统(100),其中,所述多个图像(122)中的每个图像(122)具有共同特性,所述共同特性与特定用户、用户账户、媒体内容相册或物理存储位置相关联。
21.根据权利要求13-20中的任一项所述的系统(100),其中,所述接收所述多个图像(122)的操作包括:
接收包括所述多个图像(122)和另一多个图像(122)的媒体内容(120)以用于存储在所述存储设备(140)处;以及
确定所述多个图像(122)具有共同特性,所述共同特性与特定用户、用户账户、媒体内容相册或物理存储位置相关联。
22.根据权利要求21所述的系统(100),其中,所述操作进一步包括:将使用所生成的熵代码化表(322)进行熵编码的所述多个图像(122)存储在所述存储设备(140)处的与其他多个图像(122)分离的位置中。
23.根据权利要求13-22中的任一项所述的系统(100),其中,所述接收所述多个图像(122)的操作包括:
在运行与所述存储设备(140)通信的存储应用(20)的用户设备(110)处检测媒体内容(120)的创建或接收;
为所述用户设备(110)生成提示,所述提示询问所述用户设备(110)的用户是否要将所检测的媒体内容(120)备份或传输到所述存储设备(140);以及
当所述用户选择将所检测的媒体内容(120)备份或传输到所述存储设备(140)时,标识所述媒体内容(120)内的所述多个图像(122)以用于进行熵编码。
24.根据权利要求13-23中的任一项所述的系统(100),其中,所述多个图像(122)与来自用户设备(120)的媒体内容(120)的上传(112)的第一图像子集(122)相对应,所述媒体内容(120)的上传(112)包括第一图像子集(122)和第二图像子集(122),所述第一图像子集(122)具有被指定用于压缩成较低存储占用格式的第一媒体内容(120)格式,所述第二图像子集(122)绕过被压缩成所述较低存储占用格式。
CN201980092510.7A 2019-02-22 2019-11-10 跨多个图像的压缩 Pending CN113454995A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/282,418 US10687062B1 (en) 2019-02-22 2019-02-22 Compression across multiple images
US16/282,418 2019-02-22
PCT/US2019/060664 WO2020171860A1 (en) 2019-02-22 2019-11-10 Compression across multiple images

Publications (1)

Publication Number Publication Date
CN113454995A true CN113454995A (zh) 2021-09-28

Family

ID=68835287

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980092510.7A Pending CN113454995A (zh) 2019-02-22 2019-11-10 跨多个图像的压缩

Country Status (6)

Country Link
US (1) US10687062B1 (zh)
EP (1) EP3928515A1 (zh)
JP (1) JP7147075B2 (zh)
KR (1) KR20210113681A (zh)
CN (1) CN113454995A (zh)
WO (1) WO2020171860A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019185818A1 (en) * 2018-03-29 2019-10-03 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Transform coefficient block coding

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5333212A (en) 1991-03-04 1994-07-26 Storm Technology Image compression technique with regionally selective compression ratio
US5157488A (en) * 1991-05-17 1992-10-20 International Business Machines Corporation Adaptive quantization within the jpeg sequential mode
US5398066A (en) 1993-07-27 1995-03-14 Sri International Method and apparatus for compression and decompression of digital color images
US5471207A (en) * 1994-02-23 1995-11-28 Ricoh Company Ltd. Compression of palettized images and binarization for bitwise coding of M-ary alphabets therefor
US5552832A (en) * 1994-10-26 1996-09-03 Intel Corporation Run-length encoding sequence for video signals
JP2951861B2 (ja) * 1994-12-28 1999-09-20 シャープ株式会社 画像符号化装置及び画像復号装置
US5682152A (en) 1996-03-19 1997-10-28 Johnson-Grace Company Data compression using adaptive bit allocation and hybrid lossless entropy encoding
US20020001412A1 (en) 1998-07-21 2002-01-03 Hewlett-Packard Company System for variable quantization in jpeg for compound documents
US20020087546A1 (en) * 2000-01-31 2002-07-04 Michael Slater Apparatus, methods, and systems for digital photo management
JP2002044662A (ja) 2000-07-24 2002-02-08 Sony Corp データ符号化装置及び符号化方法並びにデータ復号化装置及び復号化方法
US6701020B2 (en) 2001-03-15 2004-03-02 Hewlett-Packard Development Company, L.P. JADE-JPEG based adaptive document compression engine
US7092578B2 (en) * 2001-10-23 2006-08-15 Agilent Technologies, Inc. Signaling adaptive-quantization matrices in JPEG using end-of-block codes
US7840892B2 (en) * 2003-08-29 2010-11-23 Nokia Corporation Organization and maintenance of images using metadata
US7724827B2 (en) * 2003-09-07 2010-05-25 Microsoft Corporation Multi-layer run level encoding and decoding
US20050111746A1 (en) 2003-11-26 2005-05-26 Kumar Bharath S. Progressive medical image volume navigation
US7702781B2 (en) * 2006-03-03 2010-04-20 Teoco Corporation System and method of storing data files at a remote storage facility
US7884742B2 (en) 2006-06-08 2011-02-08 Nvidia Corporation System and method for efficient compression of digital data
JP4303312B1 (ja) 2008-07-31 2009-07-29 国立大学法人広島大学 圧縮処理装置および圧縮処理方法
CN101778284A (zh) 2010-02-02 2010-07-14 杭州电子科技大学 一种多焦点多光子显微镜成像数据的有损压缩方法
JP2011205521A (ja) * 2010-03-26 2011-10-13 Seiko Epson Corp バックアップ制御装置
WO2012060172A1 (ja) 2010-11-04 2012-05-10 シャープ株式会社 動画像符号化装置、動画像復号装置、動画像伝送システム、動画像符号化装置の制御方法、動画像復号装置の制御方法、動画像符号化装置制御プログラム、動画像復号装置制御プログラム、および記録媒体
CN102647541B (zh) 2012-04-28 2014-08-20 大连民族学院 一种基于有损压缩链码的图像编码方法
GB2523348B (en) * 2014-02-20 2016-03-30 Gurulogic Microsystems Oy Encoder, decoder and method
US9344114B1 (en) 2015-05-11 2016-05-17 Qualcomm Incorporated Compressed caching in a virtual memory system
US10303402B2 (en) * 2016-08-02 2019-05-28 Seagate Technology Llc Data compression using partial statistics
US10291911B2 (en) * 2016-11-29 2019-05-14 Motorola Mobility Llc Classes of tables for use in image compression

Also Published As

Publication number Publication date
JP2022510733A (ja) 2022-01-27
KR20210113681A (ko) 2021-09-16
EP3928515A1 (en) 2021-12-29
US10687062B1 (en) 2020-06-16
WO2020171860A1 (en) 2020-08-27
JP7147075B2 (ja) 2022-10-04

Similar Documents

Publication Publication Date Title
US8566477B2 (en) Real-time multi-block lossless recompression
US6301392B1 (en) Efficient methodology to select the quantization threshold parameters in a DWT-based image compression scheme in order to score a predefined minimum number of images into a fixed size secondary storage
RU2613031C2 (ru) Способ кодирования данных, способ декодирования данных, кодер, декодер и кодек
US11049283B2 (en) Lossless compression of fragmented image data
US20130251261A1 (en) Method And Apparatus For Image Data Compression
WO2013185237A1 (en) Methods and systems for automatically and efficiently categorizing, transmitting, and managing multimedia contents
US20130044961A1 (en) Real-time image compression
TW201421996A (zh) 隨機存取記憶體中壓縮資料的系統及方法
Chawla et al. Image compression techniques: a review
US8340443B2 (en) System and method for compressing compressed data
Öztürk et al. Performance evaluation of jpeg standards, webp and png in terms of compression ratio and time for lossless encoding
Minewaki et al. Near lossless coding of sparse histogram images based on zero-skip quantization
JP7147075B2 (ja) 複数の画像全体の圧縮
US11803985B2 (en) Information processing apparatus, information processing method, and recording medium
US9451275B2 (en) System and method for storing and moving graphical image data sets with reduced data size requirements
US20100277612A1 (en) Memory management in an image storage device
JP5186820B2 (ja) 符号化装置、符号化方法および符号化プログラム
KR20040049424A (ko) 영상 저장 장치 및 그 관리방법
KR20210120358A (ko) 시각적 저손실 영상 압축 시스템 및 그 방법
JP2004207909A (ja) 画像処理方法
Colyer et al. Digital Culture Imaging
JPH04302581A (ja) 画像ファイリングシステムにおける検索用画像の生成方法および画像ファイリングシステムにおける画像生成装置
KR20090114971A (ko) 압축된 이미지의 압축률 확인 방법 및 장치
JP2005192075A (ja) 画像情報システム及び画像登録処理方法

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