CN102708574A - 图像数据的压缩 - Google Patents

图像数据的压缩 Download PDF

Info

Publication number
CN102708574A
CN102708574A CN2012100486947A CN201210048694A CN102708574A CN 102708574 A CN102708574 A CN 102708574A CN 2012100486947 A CN2012100486947 A CN 2012100486947A CN 201210048694 A CN201210048694 A CN 201210048694A CN 102708574 A CN102708574 A CN 102708574A
Authority
CN
China
Prior art keywords
block truncation
truncation coding
btc
btc block
version
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
CN2012100486947A
Other languages
English (en)
Other versions
CN102708574B (zh
Inventor
T·宇罗
S·马克特慕伊勒
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.)
Adobe Inc
Original Assignee
Adobe Systems Inc
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 Adobe Systems Inc filed Critical Adobe Systems Inc
Publication of CN102708574A publication Critical patent/CN102708574A/zh
Application granted granted Critical
Publication of CN102708574B publication Critical patent/CN102708574B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本发明的各实施方式涉及图像数据的压缩。具体地,可以使用多个分块截断编码方案对图像内容进行压缩,产生图像内容的多个压缩版本。可以将多个压缩版本组合到一起成为单个数据结构。在组合多个压缩版本之前,可以对每一个压缩版本进行进一步压缩。在一个实施方式中,可以接收包含图像内容的多个分块截断编码格式版本的数据结构。可以确定来自多个压缩版本的渲染硬件兼容的分块截断编码内容并且向渲染硬件提供。该硬件然后可以对所选择的一个分块截断编码格式进行解码用于显示。在一个实施方式中,可以对所接收的多个分块截断编码内容版本中的每一个进行进一步压缩。在向硬件提供所选择的版本用于解码之前,可以对进一步压缩进行解压缩。

Description

图像数据的压缩
技术领域
本公开概括地涉及压缩,并且更加具体地涉及图像内容的压缩。
背景技术
非常大的用于纹理化(texture)的图像数据典型地存储在图形硬件(例如图像处理单元(GPU))的驻留存储器中,用于由该图形硬件使用。许多GPU实现对于纹理图像的一些压缩方案,可以是硬件专有的,允许GPU从存储器直接读取所压缩的图像。例如,在运行时间,将图像数据编码为与特定GPU兼容的格式并且将其传送到GPU存储器。然后GPU能够解码并且渲染该图像数据。
发明内容
本公开描述用于数据的非对称压缩和解压缩的技术和结构。在一个实施方式中,可以接收诸如图像内容的内容。可以使用多个分块截断编码方案对该内容进行编码,产生该图像内容的多个分块截断编码版本。可以将该多个分块截断编码版本组合到一起成为单个数据结构。在一个实施方式中,在组合该多个分块截断编码版本之前,可以进一步压缩每一个分块截断编码版本。在一个实施方式中,利用与分块截断编码方案不同的压缩算法,可以将进一步压缩应用到每一个分块截断编码版本的整体。在一个实施方式中,可以将每一个分块截断编码版本划分为组成分量,并且利用与分块截断编码方案不同的压缩算法,可以通过组成分量类型对该每一个分块截断编码版本进行进一步压缩。
在一个实施方式中,可以接收包含多个分块截断编码图像内容版本的数据结构。可以读取该数据结构并且可以确定与渲染硬件的特定片段兼容的分块截断编码版本,并向该渲染硬件提供。然后该硬件可以对所选择的一个分块截断编码格式进行解码用于显示。在一个实施方式中,可以利用与分块截断编码方案不同的压缩算法,对所接收的多个分块截断编码格式版本的每一个进行进一步压缩。在向该硬件提供所选择的版本用于解码之前,可以对进一步对该压缩进行解压缩。
附图说明
图1是根据一些实施方式用于对图像内容进行编码并且对所编码的版本进行组合的方法的流程图。
图2是根据一些实施方式用于对图像内容进行编码并且对所编码的版本进行组合的另一方法的流程图。
图3是根据一些实施方式用于对所编码的图像内容进行进一步压缩的方法的流程图。
图4是根据一些实施方式用于选择所压缩的媒体内容的格式并且向渲染硬件提供所选择的格式的方法的流程图。
图5是根据一些实施方式用于选择所压缩的媒体内容的格式并且向渲染硬件提供所选择的格式的另一方法的流程图。
图6a示出了根据一些实施方式对RAW纹理进行编码的示例。
图6b示出了根据一些实施方式对所编码的RAW纹理进行进一步压缩的示例。
图6c示出了根据一些实施方式选择所压缩的图像内容的格式并且对所选择的格式进行解码的示例。
图7示出了根据一些实施方式可以实现对图像内容进行编码并且对所编码的版本进行组合的示例服务器和示例客户端。
图8示出了可以在所述实施方式中使用的示例计算机***。
图9a-9c示出了根据一些实施方式用于将DXT1内容、PVRTC内容以及ETC 1内容划分为组成分量的示例。
尽管以几个实施方式的示例和说明性附图的方式描述了本公开,但是本领域的普通技术人员将意识到,本公开并不局限于所描述的实施方式或者附图。应该理解,附图及对其的详细描述并非旨在将本公开局限于所公开的特定形式,而是相反,本发明旨在覆盖落入当前公开的精神和范围内的全部变型,等同物和替代物。这里使用的标题仅用于组织目的而并非意味着用于限制本描述的范围。如在整个该申请中使用的,在允许意义上(即意味着具有潜在可能)而非强制意义上(即意味着必须)使用“可以”一词。类似地,词语“包括”意味着包括但不局限于。
具体实施方式
在下面的详细描述中,阐述了各种具体细节以提供对请求保护的主题的全面理解。然而,本领域的普通技术人员将理解,可以在没有这些具体细节的情况下实践请求保护的主题。在其他实例中,没有详细描述本领域的普通技术人员将熟知的方法、装置或者***以不混淆请求保护的主题。
按照对存储在特定装置或者专用计算设备或者平台的存储器内的二进制数字信号进行的算法、或者操作的符号表示的形式,来表示下面详细描述的一些部分。在该具体说明书的上下文中,术语特定装置等等包括通用计算机,一旦对其进行编程则该通用计算机可以执行遵照来自程序软件的指令的具体功能。算法描述或者符号表示是信号处理或者相关领域中的普通技术人员用于向该领域的其他技术人员传达其工作的本质的技术示例。这里认为算法通常为导致期望结果的操作或者类似信号处理的自洽序列。在该上下文中,操作或者处理涉及物理量的物理操控。典型地,尽管不是必要的,这样的量可以采取能够被存储、传输、组合、比较或者以其他方式操控的电或者磁信号的形式。已经证明,理论上出于公共用途的原因,将这样的信号指代为比特、数据、值、要素、符号、字符、项、数量、数字等等有时是方便的。然而,应该理解,要将这些或者类似项的全部与适当的物理量相关联并且只是方便的标签。除非以其他方式专门表述,通过下面的讨论显然的是,将意识到,在整个说明书中,使用诸如“处理”、“计算”、“算术计算(calculate)”、“确定”等等的术语的讨论,指代诸如专用计算机或者类似专用电子计算设备的特定装置的行为或者过程。因此,在该说明书的上下文中,专用计算机或者类似专用电子计算设备能够操控或者转换在专用计算机或者类似专用电子计算设备的存储器、寄存器、或者其他信息存储设备、传输设备、或者显示设备内典型地表示为物理上的电或者磁量的信号。
如这里所使用的,“第一”,“第二”等等这些术语用作跟随其后的名词的标签,并且并不暗含任何类型的排序(例如空间,时间、逻辑等等)。例如,在具有多个算法的计算机可读存储介质中,术语“第一”和“第二”算法可以用于指代所述算法中的任意两个。换句话说,“第一”和“第二”算法并不局限于逻辑算法0和1。
如这里所使用的,术语“以......为基础”用于描述影响确定的一个或者多个因素。该术语不排除会影响确定的附加因素。即,确定可以仅以那些因素或者至少部分地以那些因素为基础。考虑短语“以B为基础确定A”。尽管B可以是影响A的确定的因素,但是这样的短语不排除A的确定也以C为基础。在其他实例中,A可以仅以B为基础进行确定。
在计算设备上执行的数字图像编辑应用可以用于操控、增强、变换、创建和渲染诸如向量图形、3D图形和视频的图像、图形和视频。根据这里描述的各种实施方式,数字图像编辑应用可以用于渲染、修改和编辑这样的对象,并且可以使用诸如OpenGL、DirectX或者Direct3D的应用编程接口(API)。
描述了用于对图像内容进行编码并且对所编码的图像内容进行组合、以及用于选择所压缩的媒体内容的版本并且向渲染硬件提供所选择的格式的方法和装置的各种实施方式。一些实施方式可以包括用于对图像内容进行编码并且对所编码的图像内容进行组合的装置、和/或用于选择所编码的内容的版本并且向渲染硬件提供所选择的版本的装置。例如,编码模块可以接收图像内容作为输入并且利用分块截断编码算法压缩所述图像内容。在一个实施方式中,编码模块可以使用不同的压缩算法进一步压缩相同的内容。组合模块可以将不同压缩的内容的每一个组合为单个数据结构。选择模块可以选择所压缩的图像内容的适当格式用于硬件的特定片段。选择模块可以向渲染硬件进一步提供所选择的版本。在一些实施方式中,可以通过存储在计算机可读存储介质中并且可由计算装置的一个或者多个处理器执行的程序指令实现所述编码、组合和选择模块。如这里所描述的,计算机可读存储介质可以存储可由一个或者多个处理器执行的程序指令以使计算装置执行对图像内容进行编码、并且对所编码的图像内容进行组合、和/或选择所压缩的图像内容的版本并且向渲染硬件提供所选择的版本。编码、组合和选择模块的其他实施方式可以至少部分地通过硬件电路和/或例如存储在非易失性存储器中的固件实现。
现在转到图1,该图示出了用于对图像内容进行编码并且对所编码的版本进行组合的一个实施方式。尽管出于容易理解目的按照特定顺序示出了方框,但是可以使用其他顺序。在一些实施方式中,图1的方法可以包括比所示出的更多(或者更少)方框。方框100-120可以自动执行或者可以接收用户输入。
如在100处表明的,可以接收图像内容。图像内容可以包括二维(2D)图像数据(例如纹理数据)、向量图形、RGB数据、视频帧等等。例如,图像内容可以包括具有2D木头纹理的栅栏的3D图形的2D木头纹理。在这样的示例中,2D图像部分、木头纹理可以用于在栅栏的3D渲染中进行纹理化。可以以RAW格式接收纹理数据。
如在110处示出的,可以使用多个不同的分块截断编码(BTC)方案将图像内容编码为不同的分块截断编码版本。这里可以将图像内容的分块截断编码版本称为“BTC内容”或者“BTC版本”。BTC方案可以是非对称的。进而,BTC方案可以是具有固定压缩比的基于分块的纹理压缩格式。固定压缩比可以描述压缩全部具有相同大小的像素分块的压缩格式。这与诸如其中每一个压缩的分块可以具有不同大小的JPEG的分块压缩方案形成对比。在一个实施方式中,BTC方案可以将图像内容的每4×4像素分块编码为32比特。较大的固定压缩比可以产生较大的压缩而以降低的质量为代价。同样,较小的固定压缩比可以产生较小的压缩但是会产生较高质量压缩。与大小无关,这样的编码方案在本质上会是有损的。然而,利用固定压缩比编码的BTC内容会使例如GPU的存储器控制器的存储器控制器从硬件直接读取。可以在各种实施方式中使用的具有固定压缩比的BTC方案的一些示例包括:也被称为DXTn或者DXTC的S3纹理压缩(S3TC)、PVRTC-I、PVRTC-II、以及爱立信纹理压缩(ETC)。每一个BTC版本可以与某一图形硬件兼容。例如,一个GPU可以与S3TC编码内容兼容而另一GPU可以与ETC编码内容兼容。在一个实施方式中,可以利用S3TC、PVRTC、以及ETC方案中的每一个对图像内容进行编码,以使得该图像内容可以与广泛的硬件相兼容。可以将各种BTC方案包括在服务器上的库中,可以根据其执行编码。
在120处,可以将图像内容的不同分块截断编码版本组合为单个数据结构。例如,在其中使用S3TC、PVRTC和ETC方案的每一个对图像内容进行编码/压缩的实施方式中,可以将编码版本(例如S3TC编码图像内容、PVRTC编码图像内容、以及ETC编码图像内容)组合为单个数据结构。该单个数据结构可以是用于存储、上传和/或传输的单个文件。在一个实施方式中,可以通过分块截断编码版本对所组合的单个数据结构进行结构化。因此,在具有S3TC、PVRTC和ETC版本的示例中,数据结构的第一部分可以是S3TC编码内容,中间部分可以是PVRTC编码内容,并且最后部分可以是ETC编码内容。可以按照与通过格式类型顺序进行的不同方式对数据结构进行结构化。在一个实施方式中,可以在组合为单个数据结构之前对每一个编码类型进行划分,以使得所压缩的格式可以例如通过通道在整个数据结构上散布。数据结构可以包括头部或者其他格式以使得数据结构的适当部分可以通过媒体内容传输协议进行解析。然后将文件存储到存储介质(例如硬盘),或者可以向客户端传输文件。
图2示出了用于对图像内容进行编码并且对所编码的版本进行组合的另一实施方式。尽管出于容易理解目的按照特定顺序示出了方框,但是可以使用其他顺序。在一些实施方式中,图2的方法可以包括比所示出的更多(或者更少)方框。方框200-230可以自动执行或者可以接收用户输入。
在200和210处,可以接收图像内容并且可以使用多个不同的分块截断编码(BTC)方案将其编码为不同的分块截断编码版本。因此,方框200-210的接收和编码可以分别按照与图1的方框100-110的相同或者基本上相同的方式操作。
如在220处示出的,可以使用与在210处使用的分块截断编码方案的任意一个不同的压缩算法对图像内容的分块截断编码版本进行进一步编码。进一步编码可以向已经压缩的BTC内容提供附加压缩。按照一些方式,BTC方案可能不提供最有效的压缩。而且,附加压缩可以提供图像内容的更加有效的编码,并且可以允许在附加应用中使用组合的数据结构。在一个实施方式中,可以对全部BTC内容使用通用算法(例如LZMA),压缩BTC内容版本的一个或者多个。如在图3处描述的,BTC内容可以包括包含组成分量的字。在其中使用单个整体压缩算法对整个BTC内容进行编码的实施方式中,在执行附加编码之前可能不需要将“字”解交织为组成分量。然而,通过划分为组成分量,可以实现附加带宽和性能增益。尽管如果组合的文件不用于传输,则带宽考虑不会太明显并且BTC内容的整体通用附加压缩会是充分的。
图3示出了对分块截断编码版本的一个或者多个进行进一步编码的一个实施方式。尽管出于容易理解目的按照特定顺序示出了方框,但是可以使用其他顺序。在一些实施方式中,图3可以包括比所示出的更多(或者更少)方框。方框300-320可以自动执行或者可以接收用户输入。
如在300处示出的,可以将分块截断编码内容版本的一个或者多个分离为组成分量。诸如S3TC、PVRTC和ETC版本的图像内容的分块截断编码版本可以分别包括组成分量或者通道。通道的数量以及通道的类型可以以BTC的类型为基础进行变化。作为一个示例,BTC内容的组成分量可以包括图像部分和剩余部分。图像部分可以包括两个颜色分量,并且剩余部分可以包括选择器/修改器分量。可以将两个颜色分量以及选择器/修改器分量交织为字。在一个实施方式中,将分块截断编码内容版本分离为组成分量可以包括,将所述分块截断编码内容解交织或者划分为其各自的图像部分和剩余部分。图9a-9c示出了用于将DXT1内容、PVRTC内容以及ETC1内容分别划分为组成分量的示例。在一个实施方式中,在划分PVRTC内容之前可能需要对该内容进行解旋转。
在310处,可以利用压缩算法对组成分量的一个类型进行编码。组成分量的类型可以与压缩内容的图像部分相对应。对于压缩内容,可以使用与在初始编码中使用的BTC方案不同的算法对每一个流(例如图像部分、剩余部分)进行压缩。一些流可以容许有损压缩算法而其他流可以容许无损压缩算法。在一个实施方式中,可以使用可以是无损或者有损的诸如JPEG、PNG、JPEG-XR的颜色压缩技术,对两个颜色图像流进行压缩。
如在320处示出的,可以利用另一压缩算法对组成分量的另一类型进行编码。在一些实施方式中,组成分量的另一类型可以与BTC内容的剩余部分相对应。与对BTC内容的图像部分进行编码类似,也可以使用与在初始编码中使用的BTC方案不同的算法对BTC内容的剩余部分进行压缩。在一个实施方式中,用于对BTC内容的剩余部分进行压缩的算法也可以与用于对BTC内容的图像部分进行压缩的算法不同。例如,选择器/修改器流可以包括噪声数据,并且可以使用可以是无损的类似LZ77/霍夫曼或者LZMA的通用标准图像压缩算法进行压缩。
返回到图2,在230处,可以将图像内容的双重压缩的分块截断编码版本组合为单个数据结构。方框230可以与方框120基本上类似,除了在组合为单个数据结构之前,BTC版本中的一个或者多个可以包括通用的或者通过组成分量类型的压缩的附加层。双重压缩或者双重的压缩是指附加层的压缩/编码。
对图像内容的多个分块截断编码版本进行打包可以提供许多优点。首先,其允许内容创建器设计支持大多数现有GPU的纹理包。进而,在内容授权时刻使用非对称的图像压缩方案(诸如分块截断编码方案),可以允许媒体播放器避免在运行时重新压缩从而降低反应时间。而且,通过对多个分块截断编码版本进行进一步编码,可以实现附加的时间、带宽和存储增益。
可以按照下面表示可以与图1-3的编码技术中的一个或者多个相对应的媒体内容的示例编码和组合,其中ATF格式可以是用于存储、上传和/或传输的数据流:
Figure BSA00000676812500101
Figure BSA00000676812500102
Figure BSA00000676812500104
Figure BSA00000676812500111
在该示例中以三种不同的分块截断编码格式表示数据:DXT1、PVRTC以及ETC1。利用LZMA和JPEG-XR进一步压缩三个BTC版本的每一个的各自部分。例如,可以利用LZMA压缩噪声通道部分,并且可以利用JPEG-XR压缩颜色通道部分。注意,与PVRTC和ETC1数据不同地划分DXT1数据。在该示例中,DXT1数据包括单个LZMA压缩部分,而PVRTC和ETC1数据每个包括两个LZMA压缩部分,与顶部数据和底部数据相对应。
向已经压缩的内容应用附加压缩并且将双重压缩的媒体内容打包到一起成为单个数据结构,这可以产生比单独压缩版本的任意一个更小的多格式数据结构。换句话说,包含S3TC、PVRTC以及ETC编码内容的每一个的数据结构,分别被压缩两次,可以比仅包含S3TC、PVRTC或者ETC数据之一的数据结构更小。此外,通过对于BTC内容的不同部分使用不同的压缩方案,可以开发能够容许有损算法的通道的模式和可预见性,并且可以将通用无损算法应用到噪声通用通道。结果,可以实现改善的整体压缩比。
现在转到图4,示出了用于选择压缩媒体内容的版本并且向渲染硬件提供所选择的版本的一个实施方式。尽管出于容易理解目的按照特定顺序示出了方框,但是可以使用其他顺序。在一些实施方式中,图4的方法可以包括比所示出的更多(或者更少)方框。方框400-420可以自动执行或者可以接收用户输入。
在400处,可以例如在计算设备处接收数据结构,该数据结构可以包括图像内容的多个不同的分块截断编码版本。在一个实施方式中,计算设备上的媒体内容传输协议(例如媒体播放器)可以接收具有多个BTC版本的数据结构。在一个实施方式中,可以在运行时接收该数据结构。媒体播放器可以驻留在计算设备上,并且可以利用脚本引擎。计算设备可以包括多个处理器。例如,多个处理器可以包括一个或者多个CPU以及一个或者多个GPU。多个不同的BTC版本可以包括DXT1、ETC1、PVRTC-I、PVRTC-II以及其他BTC版本。所接收的数据结构可以是上面示出的ATF格式。
如在410处表明的,可以确定多个分块截断编码版本中的哪一个与渲染硬件(例如GPU)兼容。计算设备的GPU可以包括对BTC格式的某一类型进行编码和解码的能力。在一个实施方式中,媒体播放器可以在运行时检测哪一个BTC格式与计算设备上的可用GPU兼容。例如,媒体播放器可以检测GPU与ETC纹理压缩兼容。因此,媒体播放器可以确定ETC编码内容对于计算设备的渲染硬件是合适格式。在一个实施方式中,媒体播放器可以在运行时刻之前(例如在加电时、在时段间隔处等等)检测渲染硬件,以使得在400处接收数据结构时,媒体播放器已经知道哪一个格式与渲染硬件兼容。在这样的情况下,在通过媒体播放器接收数据结构时,媒体播放器可能不需要确定哪一个BTC格式是硬件兼容的,而取而代之的是,可以直接向渲染硬件提供兼容的BTC内容,如在方框320中。在一个实施方式中,解压缩器的前端可以接收数据结构并且选择硬件合适的格式。整体数据结构可以包括可以被解析的格式和/或头部,以使得可以选择合适的格式,并且向渲染硬件提供用于解码。在一个实施方式中,多个GPU可以存在于计算机设备上,每一个GPU可以与各种BTC格式兼容。播放器可以基于计算设备和/或用户偏好进行优化以确定选择哪一个格式。在一个实施方式中,可以选择每一个兼容的格式,并且在420处,将向能够对数据进行解码的合适硬件提供。
如在420处示出的,可以向渲染硬件提供所确定的兼容的分块截断编码版本。在一个实施方式中,可以向诸如GPU的图形硬件的存储器直接上传所确定/选择的BTC内容,并且可以通过GPU进行解码。因而,如果GPU是ETC格式兼容的,则可以将ETC编码内容从媒体播放器传送到GPU用于渲染图像内容。
图5示出了用于选择压缩媒体内容的格式并且向提供渲染硬件所选择的格式的另一实施方式。尽管出于容易理解目的按照特定顺序示出了方框,但是可以使用其他顺序。在一些实施方式中,图5的方法可以包括比所示出的更多(或者更少)方框。方框500-530可以自动执行或者可以接收用户输入。
如在500处示出的,可以例如在计算设备处接收数据结构,该数据结构可以包括图像内容的多个双重压缩版本。在一个实施方式中,双重压缩版本可以包括如下图像内容,该图像内容首先利用分块截断编码方案进行编码并且再次利用不是分块截断编码方案的压缩算法进行编码。如在方框400中,计算设备上的媒体内容传输协议(例如媒体播放器)可以接收具有多个BTC版本的数据结构。在一个实施方式中,可以对所接收的BTC版本进行进一步编码。可以利用整体压缩算法(例如LXMA、霍夫曼等等)对每一个版本进行进一步编码,或者可以通过通道进行进一步编码以使得可以使用多个附加的压缩算法。例如,可以使用JPEG、JPEG-XR、PNG或者其他相当的方案对颜色通道进行进一步压缩,同时可以使用诸如LZ77/霍夫曼、LZMA或者其他相当的方案的通用压缩算法对选择器通道进行压缩。因而,在一个实施方式中,所接收的数据结构可以包括多个BTC版本,每一个BTC版本包括附加压缩,该附加压缩可以是对于BTC内容的不同部分不同的附加压缩。
在510处,可以确定利用与渲染硬件兼容的BTC方案对多个双重压缩版本中的哪一个进行压缩。方框510可以按照与图4的方框410相同或者基本上相同的方式进行操作。
在520处,可以对所确定的双重压缩版本的压缩(非分块截断编码压缩)的附加层进行解码。在各种实施方式中,所选择的数据结构可以包括除BTC编码之外的编码的附加层。例如,可以使用诸如LZMA的算法或者多个算法对所述流进行进一步压缩。在一个实施方式中,可以在530处向渲染硬件提供BTC内容之前对该附加压缩进行解压缩。例如,CPU可以例如对任意的LZMA和/或JPEG-XR压缩进行解码,并且向GPU提供BTC编码媒体。换句话说,可以按照其中对媒体内容进行编码的相反顺序执行解码。因而,可以首先对压缩的最后级进行解码,并且随后顺次进行,直到达到初始压缩。在一些实施方式中,仅所选择的BTC版本可以使其附加压缩被解压缩,以使得不会在不与计算设备的渲染硬件兼容的BTC版本上使用资源。在一些实施方式中,BTC编码格式可以包括解交织的字,该字已经被解交织以优化压缩(例如对于颜色通道的JPEG-XR,以及对于选择器通道的LZMA)。在这样的实施方式中,在530处向GPU提供BTC编码内容之前,可以对所述字进行解交织。
如在530处示出的,可以向计算设备的渲染硬件提供所确定的兼容的分块截断编码版本,该版本可以具有在520处被解压缩的附加压缩。在一个实施方式中,可以向诸如GPU的图形硬件的存储器直接上传所确定/选择的BTC内容,并且可以通过该GPU进行解码。因而,如果GPU是ETC格式兼容的,则可以从媒体播放器向GPU提供ETC编码内容用于渲染所述图像内容。
返回到上面详细描述的ATF格式,考虑在支持ETC1的***上运行的媒体播放器。解压缩器的前端可以接收以上面的示例ATF格式的数据。软件客户端可以解析该格式化数据的头部并且选择对于***硬件的合适格式。在上面的示例中,软件客户端可以跳过DXT1和PVRTC数据,并且检测适当压缩的纹理类型,ETC1。软件客户端可以解码/解压缩ETC1数据。接下来,软件客户端可以对ETC1数据进行交织,以使得所产生的交织的ETC1数据可以与任何硬件要求完全兼容。可以向GPU直接传送交织的ETC1数据,其中GPU可以渲染图像数据。例如,GPU可以渲染纹理作为3D场景的一部分。
通过在单个流中接收媒体内容的多个BTC格式,可以避免会导致运行时间延迟(以及附加的运行时间存储器要求)的在客户端上对纹理进行解压缩。结果,可以改善渲染的质量和性能。进而,包括从多个格式中选择合适格式的能力也可以通过不要求解压缩不可用的格式而进一步产生质量和性能增益。
图6a示出了根据一些实施方式对RAW格式输入纹理进行编码的示例。如图所示,输入RAW纹理是砖墙的纹理。可以向多个编码器提供输入纹理。在所示的示例中,向DXT1编码器、ETC1编码器PVRTC编码器以及另一BTC编码器提供输入纹理。然后可以对输入纹理的四个BTC编码版本的每一个进行进一步压缩。如图所示,使用无损编码器对每一个版本进行压缩。将所产生的四个版本表示为组合到一起作为用于存储/上传/传输的单个文件,或者ATF文件。
图6b示出了对输入纹理进行编码的进一步细节。如图所示,使用固定大小将输入纹理从RAW编码到PVRCT,以使得将每一个4×4方框编码为32比特。在将纹理编码为PVRCT之后,将PVRCT编码内容表示为被划分为组成部分,即图像部分和剩余部分。图像部分和剩余部分可以与上面描述的颜色通道和选择器通道相对应。如图所示,可以利用算法对图像部分进行压缩。图4b中的算法是无损算法JPEG-XR,但是可以使用其他有损或者无损算法。将剩余部分表示为利用无损算法LZMA,进行压缩,然而,可以使用其他相当的算法。在附加压缩之后,可以将所压缩的图像部分和所压缩的剩余部分组合到一起成为单个文件。如在图4a中所示,可以将如在图4b中描述的可以对其进行进一步压缩的各种BTC版本组合到一起成为单个数据流,作为ATF文件。
图6c示出了根据一些实施方式选择压缩图像内容的版本并且向渲染硬件提供所选择的格式的示例。如图所示,可以接收ATF文件。可以基于运行时间检测的硬件来选择BTC编码版本。在所示出的示例中,所检测的硬件与PVRTC格式兼容。在其他实施方式中,可以在运行时间之前确定硬件兼容性。在图中的下一个箭头之后,可以使用无损解码器对PVRTC数据进行解码。无损解码器可以与在编码过程中使用的无损压缩算法相对应。如应用到在图4b中编码的内容一样,PVRTC无损解码器可以向PVRTC格式的相对应部分应用相应的解码技术JPEG-XR和LZMA。然后可以将包括两个颜色通道的图像部分以及剩余部分重新交织到一起成为字。可以将重新交织的PVRTC格式上传到GPU,其中GPU可以对PVRTC格式进行解码。如图所示,GPU可以将纹理渲染为3D场景的一部分。这里,GPU向墙壁的3D场景应用砖纹理。
示例实现
图7示出了可以实现在图1-3中示出的编码和组合技术中的一个或者多个的服务器700,以及可以实现图4-5的接收、确定和提供技术中的一个或者多个的客户端740。服务器700可以包括可以将其一起称为库的多个分块截断编码器710a-710c。在所示出的实施方式中,服务器700包括三个分块截断编码器710。服务器700可以进一步包括一个或者多个非分块截断编码器720。非分块截断编码器720是在其不使用BTC方案实现编码器的意义上的非分块截断编码器。例如,非分块截断编码器720可以实现JPEG-XR、JPEG、PNG、LZMA或者霍夫曼方案等等中的一个或者多个。服务器700可以接收图像数据705作为输入。在各种实施方式中,可以利用多个分块截断编码器710对图像数据705进行编码,并且可以利用一个或者多个非分块截断编码器720对其进行进一步编码。可以组合所编码的图像数据705以形成单个数据结构725,可以经过网络向客户端740提供和/或向存储介质730(诸如***存储器,磁盘驱动,DVD,CD等等)存储该单个数据结构725。
客户端740可以包括诸如CPU 750和GPU 780的一个或者多个处理器。CPU 750可以包括可以接收单个数据结构725的媒体播放器760以及非分块截断解码器770。媒体播放器760可以确定与GPU780兼容的BTC版本,并且可以向非分块截断解码器770提供BTC版本,如果要去除附加压缩的话。CPU 770可以向GPU 780提供所产生的解压缩的仍然是BTC编码的内容,用于存储到GPU存储器。GPU 780可以包括可以对GPU接收的BTC内容进行解码用于在显示器处渲染的分块截断解码器790。
示例***
可以在可以与各种其他设备交互的一个或者多个计算机***上执行这里描述的客户端和服务器和/或各种编码、组合、选择和确定技术的实施方式。图8示出了一种这样的计算机***。在不同实施方式中,计算机***800可以是各种类型设备中的任意一个,包括但不局限于,个人计算机***、桌面计算机、便携式电脑、笔记本或者上网本计算机、主机计算机***、手持计算机、工作站、网络计算机、照相机、机顶盒、移动设备、客户端设备、视频游戏控制台、手持视频游戏设备、应用服务器、存储设备、诸如交换机、调制解调器、路由器的***设备、或者通常是任何类型的计算或者电子设备。
在所示出的实施方式中,计算机***800包括经由输入/输出(I/O)接口830耦合到***存储器820的一个或者多个处理器810。计算机***800进一步包括耦合到I/O接口830的网络接口840、以及诸如光标控制设备860、键盘870和显示器880的一个或者多个输入/输出设备850。在一些实施方式中,预期可以使用计算机***800的单个实例实现实施方式,而在其他实施方式中,可以配置多个这样的***或者构成计算机***800的多个节点,以主持实施方式的不同部分或者实例。例如,在一个实施方式中,可以经由区别于计算机***800中实现其他元件的那些节点的一个或者多个节点实现一些元件。
在各种实施方式中,计算机***800可以是包括一个处理器810的单处理器***,或者是包括几个处理器810(例如两个,四个,八个或者另一适合数量)的多处理器***。处理器810可以是能够执行指令的任何适合的处理器。例如,在各种实施方式中,处理器810可以是实现诸如x86、PowerPC、PARC或者MIPS指令集架构(ISA)的各种ISA中的任意一个或者任何其他适合的ISA的通用处理器或者嵌入式处理器。在多处理器***中,每一个处理器810可以共同地但是不是必需地,实现相同的ISA。
在一些实施方式中,至少一个处理器810可以是GPU。可以认为GPU是用于个人计算机、工作站、游戏控制台或者其他计算或电子设备的专用图形渲染设备。现代GPU可以在操控和显示计算机图形方面非常有效,并且其高度并行的结构可以使其比典型CPU在用于复杂图形算法方面更加有效。例如,图形处理器可以按照一种方式实现多个图形图元操作,这种方式使得执行它们比使用主机中央处理单元(CPU)向屏幕直接绘制更加快速。在各种实施方式中,这里公开的图像处理方法可以至少部分地通过配置用于执行这样的GPU中的一个,或者并行执行这样的GPU中的两个或者更多的程序指令实现。GPU可以实现允许编程人员激活GPU的功能性的一个或者多个API。合适的GPU可以从诸如NVIDIA公司、ATI技术(AMD)以及其他供应商在商业上获得。
可以按照多种不同的物理形式实现诸如处理器810中的一个或者多个的GPU。例如,GPU可以采取专用图形卡、集成图形方案和/或混合方案的形式。专用图形卡可以是3D图形卡。GPU 810可以利用诸如PCI Express Graphics或者加速图形端口(AGP)的扩展插槽与母板接口通信,并且因而可以相对容易地更换或者升级,假设母板能够支持升级的话。然而,专用GPU不必是可移除的,也不必以标准形式与母板接口通信。术语“专用”指代硬件图形方案可以具有专用于图形使用的RAM的事实,而不指代该图形方案是否为可移除或者可更换。由于大小和重量约束,用于便携式计算机的专用GPU可以经过非标准并且通常是私有的插槽进行接口。即使在物理上不能彼此互换,仍然可以将这样的端口认为是AGP或者PCIexpress。
集成图形方案或者共享图形方案是,处理器利用计算机***RAM的一部分而不是利用专用图形存储器。例如,现代台式机的母板通常包括集成图形方案并且具有可获得的扩展插槽以随后添加专用图形卡。GPU可以是存储器极度密集的,由于集成方案不具有专用视频存储器,相对于已有的慢速***RAM和CPU,该集成方案具有自身竞争力。例如,***RAM会具有2GB/s和8GB/s之间的带宽,而大多数专用GPU享受从15GB/s到30GB/s的带宽。混合方案也可以与***存储器共享存储器,但是会具有比离散或者专用图形卡更小数量的板上存储器,以补偿***RAM的高等待时间。在图形处理单元810和计算机***800的剩余部分之间通信的数据可以经过图形卡插槽或者诸如图8的I/O接口830的其他接口进行。
注意到,在各种实施方式中,可以配置程序指令825以将图形应用实现为单机应用,或者实现为另一图形应用或者图形库的模块。例如,在一个实施方式中,可以配置程序指令825以实现诸如绘画、编辑、发布、拍照、游戏、动画和/或其他应用的图形应用,并且可以配置程序指令825以提供这里描述的功能性。在另一实施方式中,可以配置程序指令825以实现由在GPU 810和/或处理器810上执行的另一图形应用调用的一个或者多个功能或者模块中在此描述的技术。这些模块可以在CPU 810和/或GPU 810中的一个或者多个上执行,以使计算机***800提供这里描述的功能性。通过使用任何期望的编程语言、脚本语言、或者编程语言和/或脚本语言的组合,例如C、C++、C#、JavaTM、Perl等等,可以在各种实施方式中实现图形应用。例如,在一个实施方式中,图形应用可以是基于JAVA的,而在另一实施方式中,可以使用C或者C++编程语言实现该图形应用。在其他实施方式中,可以使用专门用于开发由诸如GPU的特定图形硬件执行的程序的专用图形语言实现图形应用。此外,可以在专门分配用于由图形处理器使用的存储器(例如位于包括图形处理器的图形板上的存储器)上实施图形应用。在各种实施方式中,也可以配置程序指令825以渲染图像,并且在一个或者多个显示器上将其表示为操作的输出,和/或以在存储器820和/或外部存储设备中存储图像数据。
可以配置***存储器820以存储可由处理器810访问的程序指令和/或数据。在各种实施方式中,可以使用任意适合存储器技术实现***存储器820,该技术诸如静态随机访问存储器(SRAM)、同步动态RAM(SDRAM)、非易失性/闪存类型存储器、或者任意其他类型的存储器。在所示出的实施方式中,示出了在***存储器820内分别作为程序指令825和数据存储835存储的、实现期望功能的程序指令和数据,诸如在上面对于编码模块、组合模块、选择模块和解码模块的实施方式描述的那些。在其他实施方式中,可以在计算机可访问介质的不同类型上或者在与***存储器820或者计算机***800分离的类似介质上接收、发送或者存储程序指令和/或数据。通常来说,计算机可访问介质可以包括诸如磁或者光介质的存储介质或者存储器介质,例如经由I/O接口830耦合到计算机***800的磁盘或者CD/DVD-ROM。可以通过传输介质或者诸如电、电磁或者数字信号的信号传输经由计算机可访问介质存储的程序指令和数据,该传输介质或者信号可以经由诸如网络和/或无线链路的通信介质传送,例如可以经由网络接口840实现。
在一个实施方式中,可以配置I/O接口830以协调处理器810、***存储器820以及包括网络接口840或者诸如输入/输出设备850的其他***接口的设备中的任意***设备之间的I/O流量。在一些实施方式中,I/O接口830可以执行任意必需的协议、时序或者其他数据变换以将来自一个部件(例如***存储器820)的数据信号转换为适合于另一部件(例如处理器810)使用的格式。在一些实施方式中,I/O接口830可以包括对于经过各种类型的***总线附接的设备的支持,例如以***部件互连(PCI)总线标准或者通用串行总线(USB)标准的变体为例。在一些实施方式中,可以将I/O接口830的功能划分为两个或者更多分离的部件,例如以北桥和南桥为例。此外,在一些实施方式中,可以将诸如到***存储器820的接口的I/O接口830的功能中的一些或者全部直接结合到处理器810中。
可以配置网络接口840以允许数据在计算机***800以及诸如其他计算机***的附接到网络的其他设备之间交换,或者在计算机***800的节点之间交换。在各种实施方式中,网络接口840可以支持如下通信:经由例如以以太网网络的任何适合类型为例的有线或者无线通用数据网络;经由诸如模拟语音网络或者数字光纤通信网络的电信/电话网络;经由诸如Fibre Channel SAN的存储区域网络,或者经由网络和/或协议的任何其他类型。
在一些实施方式中,输入/输出设备850可以包括一个或者多个显示终端、键盘、小键盘、触摸板、扫描设备、语音或者光学识别设备、或者适于通过一个或者多个计算机***800输入或者获取数据的任何其他设备。多个输入/输出设备850可以存在于计算机***800中或者可以分布在计算机***800的各种节点上。在一些实施方式中,类似的输入/输出设备可以与计算机***800分离,并且可以经过有线或者无线连接,诸如通过网络接口840与计算机***800的一个或者多个节点交互。
如图8所示,存储器820可以包括配置以实现这里描述的编码模块、组合模块、选择模块和确定模块的实施方式的程序指令825,以及包括可由程序指令825访问的各种数据的数据存储835。在一个实施方式中,程序指令825可以包括如在上面的附图中示出的编码、组合、选择和/或确定模块的实施方式的软件要素。数据存储835可以包括可以在实施方式中使用的数据。在其他实施方式中,可以包括其他或者不同的软件要素和数据。
本领域的普通技术人员将意识到,计算机***800只是示出性的而并不旨在限制这里描述的编码、组合、选择和/或确定模块的范围。具体地说,计算机***和设备可以包括能够执行所表明的功能的硬件或者软件的任意组合,包括计算机、个人计算机***、台式机、膝上型计算机、笔记本计算机、或者上网本计算机、大型机计算机***、手持计算机、工作站、网络计算机、照相机、机顶盒、移动设备、网络设备、互联网装置、PDA、无线电话、寻呼机、客户端设备、视频游戏控制台、手持视频游戏设备、应用服务器、存储设备,诸如交换机、调制解调器、路由器的***设备,或者通常为计算或者电子设备的任意类型。计算机***800也可以连接到没有示出的其他设备,或者代替地可以作为单机***操作。此外,由所示出的部件的提供的功能性在一些实施方式中可以组合在更少的部件中或者分布在附加的部件中。类似地,在一些实施方式中,可以不提供所示出的部件中的一些的功能性和/或可获得其他附加的功能性。
本领域的普通技术人员也将意识到,尽管将各种项目示出为在被使用的同时存储在存储器中或者存储设备上,但是出于存储器管理和数据一体化目的,可以在存储器和其他存储设备之间传输这些项目或者其一部分。可选地,在其他实施方式中,软件分量中的一些或者全部可以在另一设备上的存储器中执行,并且经由计算机间通信与所示出的计算机***通信。所述***分量或者数据结构中的一些或者全部也可以存储(例如作为指令或者结构数据)在计算机可访问介质或者便携式制品上,以由上面已经描述的各种示例以合适的驱动读取。在一些实施方式中,可以经由传输介质或者经由诸如网络和/或无线链路的通信介质传送的诸如电、电磁、或者数字信号的信号,将存储在与计算机***800分离的计算机可访问介质上的指令传输到计算机***800。各种实施方式可以进一步包括在计算机可访问介质上接收、发送或者存储根据前面描述所实现的指令和/或数据。因此,本公开可以利用其他计算机***配置实践。
结论
各种实施方式可以进一步包括在计算机可访问介质上接收、发送或者存储根据前面的描述实现的指令和/或数据。通常来说,计算机可访问介质可以包括诸如以磁盘或者DVD/CD-ROM为例的磁或者光介质的存储介质或者存储器介质,诸如RAM(例如SDRAM、DDR、RDRAM、SRAM等等)、ROM等等的易失性或者非易失性介质,以及传输介质或者诸如经由例如网络和/或无线链路的通信介质传送的电、电磁、或者数字信号的信号。
附图中示出的以及这里描述的各种方法代表方法的示例实施方式。所述方法可以在软件、硬件或者其组合中实现。可以改变方法的顺序,并且可以对各种元件进行添加、重新排序、组合、省去、修改等等。
对于得益于本公开的本领域的普通技术人员来说显见的是,可以进行各种变型和改变。本公开旨在覆盖全部这样的变型和改变,并且因此,旨在以说明性意义而非限制性意义来考虑上面的描述。

Claims (22)

1.一种方法,包括:
接收图像内容;
将所述图像内容编码为多个分块截断编码版本,其中所述压缩包括对于所述多个分块截断编码版本中的每一个使用不同的分块截断编码方案;以及
将所述多个分块截断编码版本组合为单个数据结构。
2.根据权利要求1所述的方法,其中所述多个分块截断编码版本至少包括ETC1编码版本、PVRTC编码版本、以及DXT1编码版本。
3.根据权利要求1所述的方法,进一步包括,在将所述多个分块截断编码版本组合为所述单个数据结构之前,利用与所述分块截断编码方案不同的压缩算法进一步压缩所述分块截断编码版本中的每一个。
4.根据权利要求3所述的方法,其中进一步压缩所述分块截断编码版本中的一个包括:
将所述分块截断编码内容版本中的一个分离为组成分量;
利用压缩算法对所述组成分量中的一种类型进行编码;以及
利用另一压缩算法对所述组成分量中的另一类型进行编码。
5.根据权利要求4所述的方法,其中所述分块截断编码内容的所述组成分量包括交织为字的两个颜色分量和选择器/修改器分量,以及其中所述分离所述分块截断编码内容包括对所述字进行解交织。
6.根据权利要求4所述的方法,其中所述利用所述压缩算法对所述组成分量的一种类型进行编码包括,利用颜色压缩方案对两个颜色图像分量进行压缩,其中所述颜色压缩方案包括JPEG、PNG或者JPEG-XR中的至少一个。
7.一种存储程序指令的非瞬态计算机可读存储介质,其中所述程序指令为计算机可执行以实现:
接收图像内容;
将所述图像内容压缩为多个分块截断编码内容版本,其中所述压缩包括对于所述多个分块截断编码内容版本中的每一个使用不同的分块截断编码方案;
将所述多个分块截断编码内容版本组合为单个数据结构。
8.根据权利要求7所述的非瞬态计算机可读存储介质,其中所述多个分块截断编码内容版本至少包括ETC1编码版本、PVRTC编码版本、以及DXT1编码版本。
9.根据权利要求7所述的非瞬态计算机可读存储介质,其中所述程序指令进一步为计算机可执行以在将所述多个分块截断编码内容版本组合为所述单个数据结构之前,实现利用与所述分块截断编码方案不同的压缩算法对所述分块截断编码内容版本中的每一个进行进一步压缩。
10.根据权利要求9所述的非瞬态计算机可读存储介质,其中对所述压缩内容以及另一压缩内容进行进一步压缩包括:
将所述分块截断编码内容分离为组成分量;
利用压缩算法对所述组成分量中的一种类型进行编码;以及
利用另一压缩算法对所述组成分量中的另一类型进行编码。
11.根据权利要求10所述的非瞬态计算机可读存储介质,其中所述分块截断编码内容的所述组成分量包括交织为字的两个颜色分量以及选择器/修改器分量,以及其中所述分离所述分块截断编码内容包括对所述字进行解交织。
12.根据权利要求10所述的非瞬态计算机可读存储介质,其中所述利用所述压缩算法对所述组成分量中的一种类型进行编码包括,利用颜色压缩方案对两个颜色图像分量进行压缩,其中所述颜色压缩方案包括JPEG、PNG或者JPEG-XR中的至少一个。
13.一种方法,包括:
在计算设备处接收数据结构,其中所述数据结构包括多个不同的分块截断编码图像内容版本;
确定所述多个不同的分块截断编码图像内容版本中的哪一个与所述计算设备的渲染硬件兼容;以及
向所述渲染硬件提供所确定的一个分块截断编码图像内容版本。
14.根据权利要求13所述的方法,其中利用与分块截断编码方案不同的压缩算法,对所述多个不同的分块截断编码内容版本中的每一个进行进一步压缩。
15.根据权利要求14所述的方法,进一步包括,在向所述渲染硬件提供所确定的一个分块截断编码内容版本之前,对进一步压缩的所确定的一个分块截断编码内容版本进行解压缩,其中所述解压缩针对与所述分块截断编码方案不同的所述压缩算法进行解压缩,以使得在所述解压缩之后,所确定的一个分块截断编码内容版本仍然是分块截断编码的。
16.根据权利要求15所述的方法,其中所述解压缩包括:
利用与分块截断编码解码器不同的解码器,对所确定的一个分块截断编码内容版本的组成分量的一种类型进行解压缩;以及
利用与分块截断解码器不同的另一解码器,对所确定的一个分块截断编码内容版本的组成分量的另一类型进行解压缩。
17.根据权利要求13所述的方法,其中利用具有固定压缩比的基于分块的纹理压缩算法,对所述分块截断编码内容版本的每一个进行编码。
18.一种存储程序指令的非瞬态计算机可读存储介质,其中所述程序指令为计算机可执行以实现:
在计算设备处接收数据结构,其中所述数据结构包括多个不同的分块截断编码内容版本;
确定所述多个不同的分块截断编码内容版本中的哪一个与所述计算设备的渲染硬件兼容;以及
向所述渲染硬件提供所确定的一个分块截断编码内容版本。
19.根据权利要求18所述的非瞬态计算机可读存储介质,其中利用与分块截断编码方案不同的压缩算法对所述多个不同的分块截断编码内容版本中的每一个进行进一步压缩。
20.根据权利要求19所述的非瞬态计算机可读存储介质,其中所述程序指令进一步为计算机可执行,以实现在向所述渲染硬件提供所确定的一个分块截断编码内容版本之前,对进一步压缩的所确定的一个分块截断编码内容版本进行解压缩,其中所述解压缩针对与所述分块截断编码方案不同的所述压缩算法进行解压缩,以使得在所述解压缩之后所确定的一个分块截断编码内容版本仍然是分块截断编码的。
21.根据权利要求20所述的非瞬态计算机可读存储介质,其中所述解压缩包括:
利用与分块截断编码解码器不同的解码器,对所确定的一个分块截断编码内容版本的组成分量的一种类型进行解压缩;以及
利用与分块截断解码器不同的另一解码器,对所确定的一个分块截断编码内容版本的组成分量的另一类型进行解压缩。
22.根据权利要求18所述的非瞬态计算机可读存储介质,其中利用具有固定压缩比的基于分块的纹理压缩算法,对所述分块截断编码内容版本的每一个进行编码。
CN201210048694.7A 2011-02-25 2012-02-27 图像数据的压缩 Active CN102708574B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/035,569 2011-02-25
US13/035,569 US8625910B2 (en) 2011-02-25 2011-02-25 Compression of image data

Publications (2)

Publication Number Publication Date
CN102708574A true CN102708574A (zh) 2012-10-03
CN102708574B CN102708574B (zh) 2015-05-27

Family

ID=46719034

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210048694.7A Active CN102708574B (zh) 2011-02-25 2012-02-27 图像数据的压缩

Country Status (2)

Country Link
US (2) US8625910B2 (zh)
CN (1) CN102708574B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103248523A (zh) * 2013-05-07 2013-08-14 中国人民解放军国防科学技术大学 用于大规模计算阵列操作***的网络路由配置方法
CN104737225A (zh) * 2012-12-13 2015-06-24 德州仪器公司 用于存储器带宽有效的显示合成的***及方法
CN105787987A (zh) * 2016-03-15 2016-07-20 广州爱九游信息技术有限公司 一种纹理处理方法及电子设备
CN106408641A (zh) * 2016-09-19 2017-02-15 上海玮舟微电子科技有限公司 一种图像数据的缓存方法和装置
CN106548498A (zh) * 2015-09-22 2017-03-29 三星电子株式会社 用于处理压缩纹理的方法和设备
CN108848082A (zh) * 2018-05-31 2018-11-20 深圳市腾讯网络信息技术有限公司 数据处理方法、装置、存储介质及计算机设备
CN110999287A (zh) * 2017-06-05 2020-04-10 因默希弗机器人私人有限公司 数字内容流压缩
CN112540848A (zh) * 2020-12-03 2021-03-23 安徽寒武纪信息科技有限公司 图像解压缩的设备、方法及可读存储介质

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9223793B1 (en) * 2009-06-03 2015-12-29 American Megatrends, Inc. De-duplication of files for continuous data protection with remote storage
US8625910B2 (en) 2011-02-25 2014-01-07 Adobe Systems Incorporated Compression of image data
JP6120781B2 (ja) 2011-03-18 2017-04-26 エンパイア テクノロジー ディベロップメント エルエルシー シーンベースの可変圧縮
JP2013126185A (ja) * 2011-12-15 2013-06-24 Fujitsu Ltd 情報処理装置、画像送信方法及び画像送信プログラム
JP5761007B2 (ja) * 2011-12-20 2015-08-12 富士通株式会社 情報処理装置、画像送信方法及び画像送信プログラム
JPWO2014017003A1 (ja) * 2012-07-25 2016-07-07 日本電気株式会社 更新領域検出装置
CN103841451B (zh) * 2012-11-28 2017-09-29 腾讯科技(深圳)有限公司 多媒体播放方法、装置及终端
US8989486B2 (en) * 2013-03-04 2015-03-24 Zynga Inc. Generation of intermediate images for texture compression
KR102245137B1 (ko) * 2014-09-17 2021-04-28 삼성전자 주식회사 렌더링 데이터의 압축을 해제하는 장치, 방법 및 기록매체
KR20160070512A (ko) 2014-12-10 2016-06-20 삼성전자주식회사 반도체 장치 및 그 동작 방법
CN105072445B (zh) * 2015-07-24 2018-09-07 杭州映墨科技有限公司 一种基于块截断编码压缩域的视频运动目标检测方法
CN106791883A (zh) * 2016-11-18 2017-05-31 上海兆芯集成电路有限公司 纹理砖压缩及解压缩方法以及使用该方法的装置
US10504248B2 (en) * 2018-03-30 2019-12-10 Microsoft Technology Licensing, Llc Machine learning applied to textures compression or upscaling
KR102489266B1 (ko) * 2018-08-13 2023-01-17 엘지전자 주식회사 모바일 디바이스 및 그 제어 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5416606A (en) * 1989-12-21 1995-05-16 Canon Kabushiki Kaisha Method and apparatus for encoding or decoding an image in accordance with image characteristics
CN101233542A (zh) * 2005-05-27 2008-07-30 艾利森电话股份有限公司 基于权重的图像处理
CN101588498A (zh) * 2009-06-23 2009-11-25 硅谷数模半导体(北京)有限公司 视频图像数据压缩、解压缩方法及装置
CN101588437A (zh) * 2008-04-29 2009-11-25 奥多比公司 用于对光场图像进行基于块的压缩的方法和设备

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1993014600A1 (en) 1992-01-21 1993-07-22 Supermac Technology Method and apparatus for compression and decompression of color image data
JP2800633B2 (ja) 1993-04-30 1998-09-21 富士ゼロックス株式会社 画像符号化装置
JP3590996B2 (ja) 1993-09-30 2004-11-17 ソニー株式会社 ディジタル画像信号の階層符号化および復号装置
KR960036647A (ko) 1995-03-20 1996-10-28 배순훈 스캐닝을 이용한 비트플랜 압축전송장치
KR0181048B1 (ko) 1995-03-28 1999-05-01 배순훈 삼각형 블럭을 이용한 비트플랜 압축전송장치
KR0181030B1 (ko) 1995-03-28 1999-05-01 배순훈 이진화상을 이용한 비트플랜 압축전송장치
US6236405B1 (en) 1996-07-01 2001-05-22 S3 Graphics Co., Ltd. System and method for mapping textures onto surfaces of computer-generated objects
US6404919B1 (en) 1997-08-14 2002-06-11 Minolta Co., Ltd. Image processor for encoding image data
JP3237582B2 (ja) 1997-08-28 2001-12-10 富士ゼロックス株式会社 画像処理装置及び画像処理方法
US5956431A (en) * 1997-10-02 1999-09-21 S3 Incorporated System and method for fixed-rate block-based image compression with inferred pixel values
JP2000050268A (ja) 1998-07-31 2000-02-18 Minolta Co Ltd 画像符号化装置
JP3521891B2 (ja) * 2000-09-21 2004-04-26 住友電気工業株式会社 光ファイバプリフォームの製造方法
GB0128888D0 (en) 2001-12-03 2002-01-23 Imagination Tech Ltd Method and apparatus for compressing data and decompressing compressed data
US7460131B2 (en) 2003-09-30 2008-12-02 Sharp Laboratories Of America, Inc. Methods and systems for processing image data for display on LC displays
SE0401852D0 (sv) * 2003-12-19 2004-07-08 Ericsson Telefon Ab L M Image processing
EP2320380B1 (en) 2004-07-08 2014-11-12 Telefonaktiebolaget L M Ericsson (Publ) Multi-mode image processing
US7606429B2 (en) 2005-03-25 2009-10-20 Ati Technologies Ulc Block-based image compression method and apparatus
US7505624B2 (en) 2005-05-27 2009-03-17 Ati Technologies Ulc Block-based image compression method and apparatus
US7385611B1 (en) * 2005-12-07 2008-06-10 Nvidia Corporation Decompression of block encoded texture data
US7787691B2 (en) * 2006-04-11 2010-08-31 Telefonaktiebolaget Lm Ericsson (Publ) High quality image processing
US9418450B2 (en) 2006-08-31 2016-08-16 Ati Technologies Ulc Texture compression techniques
JP4973605B2 (ja) 2008-06-13 2012-07-11 コニカミノルタビジネステクノロジーズ株式会社 画像処理方法、画像処理装置、および画像処理プログラム
US8860781B2 (en) 2009-06-30 2014-10-14 Qualcomm Incorporated Texture compression in a video decoder for efficient 2D-3D rendering
US8462166B2 (en) * 2010-10-01 2013-06-11 Apple Inc. Graphics system which measures CPU and GPU performance
US8625910B2 (en) 2011-02-25 2014-01-07 Adobe Systems Incorporated Compression of image data

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5416606A (en) * 1989-12-21 1995-05-16 Canon Kabushiki Kaisha Method and apparatus for encoding or decoding an image in accordance with image characteristics
CN101233542A (zh) * 2005-05-27 2008-07-30 艾利森电话股份有限公司 基于权重的图像处理
CN101588437A (zh) * 2008-04-29 2009-11-25 奥多比公司 用于对光场图像进行基于块的压缩的方法和设备
CN101588498A (zh) * 2009-06-23 2009-11-25 硅谷数模半导体(北京)有限公司 视频图像数据压缩、解压缩方法及装置

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104737225A (zh) * 2012-12-13 2015-06-24 德州仪器公司 用于存储器带宽有效的显示合成的***及方法
CN104737225B (zh) * 2012-12-13 2019-01-15 德州仪器公司 用于存储器带宽有效的显示合成的***及方法
CN103248523A (zh) * 2013-05-07 2013-08-14 中国人民解放军国防科学技术大学 用于大规模计算阵列操作***的网络路由配置方法
CN103248523B (zh) * 2013-05-07 2014-04-16 中国人民解放军国防科学技术大学 用于大规模计算阵列操作***的网络路由配置方法
CN106548498A (zh) * 2015-09-22 2017-03-29 三星电子株式会社 用于处理压缩纹理的方法和设备
CN105787987A (zh) * 2016-03-15 2016-07-20 广州爱九游信息技术有限公司 一种纹理处理方法及电子设备
CN105787987B (zh) * 2016-03-15 2019-07-30 广州爱九游信息技术有限公司 一种纹理处理方法及电子设备
CN106408641A (zh) * 2016-09-19 2017-02-15 上海玮舟微电子科技有限公司 一种图像数据的缓存方法和装置
CN106408641B (zh) * 2016-09-19 2019-10-18 上海玮舟微电子科技有限公司 一种图像数据的缓存方法和装置
CN110999287A (zh) * 2017-06-05 2020-04-10 因默希弗机器人私人有限公司 数字内容流压缩
CN108848082A (zh) * 2018-05-31 2018-11-20 深圳市腾讯网络信息技术有限公司 数据处理方法、装置、存储介质及计算机设备
CN112540848A (zh) * 2020-12-03 2021-03-23 安徽寒武纪信息科技有限公司 图像解压缩的设备、方法及可读存储介质

Also Published As

Publication number Publication date
US20120219233A1 (en) 2012-08-30
US8761528B2 (en) 2014-06-24
CN102708574B (zh) 2015-05-27
US20140105512A1 (en) 2014-04-17
US8625910B2 (en) 2014-01-07

Similar Documents

Publication Publication Date Title
CN102708574B (zh) 图像数据的压缩
CN106170921B (zh) 涉及符号压缩的数据的源编码和解码方法及装置
CN101796842B (zh) 用以最小化存储及总线带宽需求的有效图像压缩方案
CN1968418B (zh) 混合图像数据处理***和方法
CN109479146B (zh) 用于增量颜色压缩的位包装
CN106170922B (zh) 数据的源编码和解码的设备和方法
WO2006006915A1 (en) Multi-mode image processing
JP6178798B2 (ja) 終了可能な空間ツリー型位置符号化および復号
CN102523443A (zh) 用于图像压缩的熵编码器
JP2008537830A (ja) 3d圧縮データの生成、復元方法及びその装置
US8687686B2 (en) 3D contents data encoding/decoding apparatus and method
CA2683841A1 (en) Vector-based image processing
US10186236B2 (en) Universal codec
KR101709822B1 (ko) 부호화된 텍셀 블록에서 동작할 수 있는 복호 시스템 및 방법
KR102238091B1 (ko) 3d 모델 압축 및 압축해제 시스템 및 방법
CN104093027B (zh) 用于彩色图像的联合标量嵌入式图形编码
CN111178490B (zh) 数据输出方法、获取方法、装置和电子设备
EP2652707A1 (en) Tile encoding and decoding
US9819969B2 (en) Generalization of methods and systems for image compression while encoding at least one extra bit
KR20230133330A (ko) 머신 비전을 위한 비디오 코딩을 위한 방법 및 장치
US20150049800A1 (en) Estimation of entropy encoding bits in video compression
CN105745924A (zh) 色度下转换和上转换处理
CN104737225A (zh) 用于存储器带宽有效的显示合成的***及方法
US7733249B2 (en) Method and system of compressing and decompressing data
US10283094B1 (en) Run-length compression and decompression of media tiles

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant