用于图像压缩的频率分量选择的制作方法

文档序号:22689104发布日期:2020-10-28 12:59阅读:153来源:国知局
用于图像压缩的频率分量选择的制作方法
发明背景本发明涉及用于压缩或解压缩图像数据的方法和装置,并且在一个特定示例中,用于压缩或解压缩图像数据,以允许以降低的带宽和低延迟传输图像数据。现有技术描述本说明书中提到的任何现有的出版物(或从其推出的信息)或提到的任何已知的内容不应被视为并且应当不被视为对现有的出版物(或从其推出的信息)或已知的内容形成本说明书涉及的努力领域中的公知常识的一部分的承认或允许或任何形式的表明。在虚拟现实系统、增强现实系统以及混合现实系统中,通常提供可佩戴显示设备(诸如头戴式显示器(hmd)),该设备基于显示设备的相对空间定位和/或定向,向佩戴者显示信息。这样的系统通过基于与显示设备的姿态(定位和定向)相关的信息生成图像而操作,因此当显示设备移动时,图像被更新以反映显示设备的新姿态。为避免晕动症,重要的是使在收集姿态信息与创建对应图像之间的时间差最小化,尤其在当显示设备快速移动的环境中。再加上对生成高分辨率图像的需求使得它们看起来尽可能栩栩如生,这意味着需要大量的处理硬件。于是,目前的高端系统通常需要与显示设备具有高带宽和低延迟连接的静态台式机。因此,当前的系统(诸如htcvivetm、oculusrifttm和playstationvrtm)需要在计算机和hmd之间存在有线连接,这是不便利的。虽然移动解决方案是可用的(诸如gearvrtm,它结合了移动电话,以在hmd本身内执行图像的处理和显示),但是处理能力是有限的,这意味着可以显示的内容受到限制,特别是在图像分辨率和质量方面。众所周知的是要压缩图像数据,以便降低数据量。这在许多应用中是有用的,诸如降低存储图像数据所需的存储容量,或者降低与图像数据传输相关联的带宽要求。jpeg使用基于离散余弦变换(dct)的有损压缩形式。该数学运算将视频源的每个帧/场从空间(2d)域转换到频域(也称为变换域)。一个并不严格地基于人类心理视觉系统的感知模型丢弃了高频信息,即色调和强度的急剧转变。在变换域中,通过量化来减少信息。量化的系数随后被排序并且无损地打包成输出位流。然而,这种方法常常通常仅实现有限量的压缩,并且需要大量的处理时间,使得这些方法不适用于低延迟应用,诸如虚拟现实或增强现实、远程呈现等。传统压缩方案遇到的另一个问题在于条带化。具体来说,传统的离散余弦变换压缩方案保留了较低的频率分量,因为这些频率分量对所得的未压缩图像的质量有较大的影响。然而,随着图像的变化,尤其是在数字现实应用的情况下,这并不总是最有效的方法,并且会导致图像伪像,例如条带化。具体来说,色带化往往是由于信息丢失而引起的颜色呈现不准确的问题,导致图像相邻部分之间频率的逐步变化。发明概述在一个宽泛的形式中,本发明的一个方面寻求提供一种压缩代表一个或更多个图像的图像数据的方法,该方法包括:从图像数据中获得像素数据,该像素数据代表一个或更多个图像内的像素阵列;对像素数据应用变换以确定指示像素阵列的频率系数的频率系数集合;编码该频率系数集合的所选择的子集,该子集被选择以优先编码具有较高幅度的频率系数;并且生成指示编码的频率系数的索引;以及使用编码的频率系数和索引生成压缩的图像数据。在一个实施例中,该方法包括:选择具有n位的频率系数,其中n是最初设置为最大位数的整数;以及,选择n的值逐渐减小的具有n位的频率系数。在一个实施例中,该方法包括选择具有逐渐变小的位数的频率系数,直到满足一个或更多个编码参数为止。在一个实施例中,一个或更多个编码参数包括至少一个阈值,并且其中该方法包括编码频率系数,直到以下至少一种情况:编码的频率系数的数量达到系数数量阈值;编码的频率系数的位数达到位阈值;以及,编码的频率系数的位总数达到位总数阈值。在一个实施例中,该方法包括选择频率系数以实现目标压缩程度。在一个实施例中,该方法包括:基于以下至少一项来选择频率系数:从显示设备接收的显示数据,该显示数据至少部分地指示以下至少一项:显示设备的操作、显示设备的使用;以及,指示无线通信链路的操作的通信链路数据;至少部分地指示显示设备的配置的配置数据;以及,至少部分指示与一个或更多个图像相关联的数字现实内容的内容数据。在一个实施例中,显示数据指示以下至少一项:指示相对于环境的显示设备姿态的姿态数据;指示相对于环境的显示设备运动的运动数据;由用户提供的输入命令;指示用户注视的注视数据;以及,指示用户的生理属性的生理数据。在一个实施例中,通信链路数据指示以下至少一项:无线通信链路误差度量;无线通信链路服务质量;无线通信链路带宽;以及,无线通信链路延迟。在一个实施例中,配置数据指示以下至少一项:显示分辨率;显示刷新率;显示视场;以及,显示透镜属性。在一个实施例中,内容数据包括以下至少一项:像素阵列内容;图像内容;图像的不同部分的内容;图像的不同部分的不透明度;图像内关注区域;图像内关注位置;与图像相关联的一个或更多个提示;以及,图像内的一个或更多个显示对象。在一个实施例中,该方法包括差异性压缩图像数据,使得图像的不同部分使用不同压缩程度进行压缩。在一个实施例中,该方法包括:确定像素阵列在一个或更多个图像内的定位;并且至少部分地根据确定的定位来选择频率系数集合的子集,使得压缩程度取决于像素阵列的确定的定位。在一个实施例中该方法包括压缩像素数据,使得压缩程度基于像素阵列定位以及用户注视和显示设备配置中的至少一项。在一个实施例中,像素阵列的定位相对于定义的定位被确定,并且定义的定位是以下至少一项:测量的用户注视点;预期的用户注视点;与测量的用户注视点的偏移量;与预期的用户注视点的偏移量;至少部分地根据指示用户注视点的注视数据来被确定,该注视数据是从注视跟踪系统获得的;以及,基于显示设备的特性。在一个实施例中,该方法包括压缩像素数据,使得压缩程度是以下至少一项:基于与定义点的距离;基于相对于定义点的方向;随着与定义点更远而增加;以及,提供中心凹压缩。在一个实施例中,该方法包括,对于具有设定位数的频率系数,在选择对应于较高频率的频率系数之前,选择对应于较低频率的频率系数。在一个实施例中,该索引指示:每个编码的频率系数的位数;以及,位置,该位置是以下至少一项:每个编码的频率系数在定义序列中的位置;以及,每个编码的频率系数在系数矩阵内的位置。在一个实施例中,定义序列是以下至少一项:系数矩阵的之字形遍历;以及,有序列表。在一个实施例中,该方法包括通过以下方式生成索引:指定位数n;对于具有指定位数n的每个编码的频率系数,指定编码的频率系数的位置;并且,重复步骤a)和步骤b),以逐渐减少位数n。在一个实施例中,该方法包括:确定指示索引的索引代码;并且,使用索引代码生成压缩的图像数据。在一个实施例中,该索引指示对于每个频率系数的值。在一个实施例中,频率系数的编码在以下至少一种情况下执行:没有缩放;以及,没有有损编码。在一个实施例中,该方法包括,对于具有n位的频率系数,通过去除第一位,使用n-1位对频率系数进行编码。在一个实施例中,该方法包括使用位编码方案来编码频率系数中的至少一些,从而生成编码的频率系数的集合,其中,位编码方案定义用于编码频率系数的位数,并且其中频率系数被选择性地编码,使得编码的频率系数中的至少一些具有减少的位数。在一个实施例中,位编码方案使用减少的位数来编码以下至少一项:对应于较高频率的较小频率系数;以及,对应于较高频率的频率系数中的至少一些。在一个实施例中,该方法包括将缩放因子应用于频率系数中的至少一些,从而对缩放后的频率系数进行编码。在一个实施例中,图像数据定义多个通道,并且其中该方法包括选择性地并行编码对于每个通道的频率系数。在一个实施例中,像素数据定义了rgb通道,并且其中该方法包括:将rgb通道转换成ycbcr通道;并且,变换ycbcr通道,以生成相应的频率系数,并且其中转换步骤和变换步骤是使用最小位大小来执行的。在一个实施例中,该方法包括选择性地对y通道编码比cb通道或cr通道更多的频率系数。在一个实施例中,该变换是2-d离散余弦变换。在一个实施例中,该方法用于以下至少一项:压缩数字现实数据;传输数字现实数据;以及,无线传输数字现实数据。在一个实施例中,该方法包括:确定目标压缩程度;至少部分根据目标压缩程度来选择位编码方案;并且,根据位编码方案,编码频率系数集合,并且其中索引指示选择的位编码方案。在一个实施例中,该方法包括:使用选择的位编码方案编码多个像素阵列;并且,基于多个像素阵列的压缩,选择接下来的编码方案。在一个实施例中,该方法包括使用以下至少一项来选择位编码方案:多个先前像素阵列的累积位总数;目标位速率;像素阵列在一个或更多个图像内的定位;从显示设备接收的显示数据,该显示数据至少部分地指示以下至少一项:显示设备的操作、显示设备的使用;以及,指示无线通信链路的操作的通信链路数据;至少部分地指示显示设备的配置的配置数据;至少部分指示与一个或更多个图像相关联的数字现实内容的内容数据。在一个实施例中,该方法包括:确定多个先前像素阵列的累积位总数;如果累积位总数超过累积位总数阈值:确定多个先前像素阵列的压缩程度;以及,使用压缩程度和目标压缩程度来选择位编码方案。在一个实施例中,位编码方案通过以下至少一项来编码频率系数:编码频率系数的子集;以及,用缩放因子缩放频率系数,并对缩放的频率系数进行编码。在一个实施例中,该方法包括:识别最高幅度频率系数;计算将最高幅度频率系数降低到目标位数所需的最小缩放因子;以及,使用以下至少一项来缩放频率系数:最小缩放因子;和,比最小缩放因子更大的缩放因子。在一个实施例中,该方法包括:选择多个位编码方案之一,其中,每个位编码方案定义:可用的缩放因子和位阈值,其中,频率系数是根据位阈值选择性地编码的。使用至少是最小缩放因子的可用的缩放因子缩放频率系数;并且,通过以下至少一项,根据位阈值对缩放的频率系数进行编码:编码具有比位阈值更多的位的缩放频率系数;并且,丢弃具有比位阈值更少的位的缩放频率系数。在一个实施例中,每个位编码方案定义以下至少一项:对于不同颜色通道的相应位阈值;对于亮度通道和色度通道相应的位阈值;以及,对于色度通道比对于亮度通道更高的位阈值。在一个实施例中,位编码方案定义色度颜色通道和亮度颜色通道中的每一个的位阈值,并且其中该方法包括,对于每个颜色通道:对像素数据应用变换;计算最小缩放因子;选择缩放因子;缩放频率系数;以及,编码缩放的频率系数的子集。在一个实施例中,该方法包括从位编码方案的有序列表中选择位编码方案,该列表被排序以提供逐渐增加的压缩。在一个实施例中,位编码方案通过以下至少一项提供逐渐增加的压缩:逐渐增加可用的缩放因子的幅度;和,降低最低可用的缩放因子;以及,逐渐增加位阈值。在一个实施例中,可用的缩放因子是以下至少一项:1、2、4和8。在一个实施例中,位阈值是以下至少一项:0、1、2、3、4、5和6。在一个实施例中,频率系数包括dc分量,并且其中dc分量是以下至少一项:在不压缩的情况下保留的;在不缩放的情况下保留的;以及,使用本机位数保留的。在一个宽泛的形式中,本发明的一个方面寻求提供一种压缩代表一个或更多个图像的图像数据的系统,该系统包括一个或更多个编码器处理设备,该一个或更多个编码器处理设备:从图像数据中获得像素数据,该像素数据代表一个或更多个图像内的像素阵列;对像素数据应用变换以确定指示像素阵列的频率系数的频率系数集合;编码该频率系数集合的所选择的子集,该子集被选择以优先编码具有较高幅度的频率系数;并且生成指示编码的频率系数的索引,以及使用编码的频率系数和索引生成压缩的图像数据。在一个实施例中,该系统包括:编码器输入缓冲器,该编码器输入缓冲器接收图像数据;以及,编码器输出缓冲器,该编码器输出缓冲器存储压缩的图像数据。在一个实施例中,该系统包括编码器输入缓冲器,该编码器输入缓冲器:缓冲对应于图像的接下来的m-1行像素的图像数据;缓冲下一行像素的接下来的m个像素的图像数据,从而允许至少一个编码器处理设备从缓冲的图像数据中获得对于接下来的m×m像素块的像素数据;重复步骤b),直到从所有m行像素中获得像素数据;并且,重复步骤a)和步骤b),直到已经从图像的每行像素获得像素数据。在一个实施例中,该系统包括编码器传输器,该编码器传输器传输来自编码器输出缓冲器的图像数据。在一个实施例中,一个或更多个编码器处理设备包括:适当编程的现场可编程门阵列;专用集成电路;以及,图形处理单元。在一个实施例中,像素数据定义了多个通道,并且其中该系统包括:用于每个通道的相应处理设备;以及,并行处理设备,该并行处理设备用于并行处理每个通道。在一个实施例中,该系统包括与解码器无线通信的编码器,从而允许图像数据在编码器和解码器之间作为压缩的图像数据传输。在一个实施例中,解码器是在耦合到可佩戴显示设备的解码器和作为可佩戴显示设备的一部分的解码器中的至少一个。在一个实施例中,编码器和解码器通信,以交换以下至少一项:压缩的图像数据;指示显示设备运动的运动数据;用于至少部分控制显示设备的控制数据;指示用户输入命令的输入数据;指示观察者注视点的注视数据;以及,来自与可佩戴显示设备相关联的传感器的传感器数据。在一个宽泛的形式中,本发明的一个方面寻求提供一种解压缩代表一个或更多个图像的压缩图像数据的方法,该方法包括:获得压缩的图像数据,该压缩的图像数据包括编码的频率系数和指示编码的频率系数的索引;解码编码的频率系数以获得频率系数的子集;使用频率系数子集和索引来生成频率系数的集合;以及,对频率系数的集合应用逆变换,以确定代表在一个或更多个图像内的像素阵列的像素数据。在一个实施例中,该索引指示:每个编码的频率系数的位数;以及,位置,该位置是以下至少一项:每个编码的频率系数在定义序列中的位置;以及,每个编码的频率系数在系数矩阵内的位置。在一个实施例中,定义序列是以下至少一项:系数矩阵的之字形遍历;以及,有序列表。在一个实施例中,该方法包括,使用解码的频率系数和索引来重建以下至少一项:频率系数的集合;定义的频率系数序列;以及,系数矩阵。在一个实施例中,该方法包括:解码每个编码的频率系数;确定每个频率系数的位置;根据位置,将解码的频率系数添加到定义序列和系数矩阵中的至少一个;并且,将空值添加到定义序列和系数矩阵中的至少一个中的空位置。在一个实施例中,该方法包括从压缩的图像数据中确定索引代码,以及从索引代码中确定索引。在一个实施例中,解码每个编码的频率系数在以下至少一种情况下执行:没有缩放;以及,没有有损解码。在一个实施例中,该方法包括,对于具有n-1位的编码的频率系数,通过添加第一位,使用n位创建频率系数。在一个实施例中,该方法包括根据位编码方案解码编码的频率系数中的至少一些,从而生成频率系数集合,其中,生成至少一个频率系数,使得编码的频率系数集合小于频率系数集合。在一个实施例中,位编码方案使用减少的位数来编码以下至少一项:对应于较高频率的较小频率系数;以及,对应于较高频率的频率系数中的至少一些。在一个实施例中,该方法包括将缩放因子应用于频率系数中的至少一些,从而对缩放后的频率系数进行变换。在一个实施例中,以下至少一项:将相同的缩放因子应用于每个频率系数;以及,缩放因子用于增加每个频率系数的幅度。在一个实施例中,图像数据定义多个通道,并且其中该方法包括选择性地并行解码对于每个通道的编码的频率系数。在一个实施例中,压缩的图像数据定义了ycbcr通道,并且其中该方法包括:对ycbcr通道执行逆变换;并且,将变换的ycbcr通道转换成rgb通道,并且其中转换步骤和变换步骤使用最小位大小来执行。在一个实施例中,该方法包括为cb通道或cr通道生成比y通道更多的频率系数。在一个实施例中,逆变换是逆2-d离散余弦变换。在一个实施例中,该方法用于以下至少一项:解压缩数字现实数据;接收数字现实数据;以及,无线接收数字现实数据。在一个实施例中,该索引指示所选择的位编码方案,并且其中该方法包括使用位编码方案通过以下至少一项来生成频率系数集合:解码编码的频率系数,以获得频率系数的子集;以及,将缩放因子应用于频率系数集合。在一个实施例中,该方法包括:从压缩的图像数据中确定在一个或更多个图像内的像素阵列中的像素的像素值;使用代表像素阵列中的每个像素的修改量值的修改量阵列来修改像素值;并且,量化修改的像素值,以生成指示图像中的像素阵列的像素数据。在一个实施例中,该方法包括根据以下至少一项来选择修改量阵列:像素阵列在一个或更多个图像中的定位;至少部分地指示以下至少一项的显示数据:显示设备的操作、显示设备的使用;以及,指示无线通信链路的操作的通信链路数据;至少部分地指示显示设备的配置的配置数据;以及,至少部分指示与一个或更多个图像相关联的数字现实内容的内容数据。在一个实施例中,修改量阵列对于在图像内处于不同定位的像素阵列是不同的。在一个实施例中,修改量阵列对于在不同图像中处于相同定位的像素阵列是相同的。在一个实施例中,修改量是伪随机值。在一个宽泛的形式中,本发明的一个方面寻求提供一种用于解压缩代表一个或更多个图像的压缩的图像数据的系统,该系统包括一个或更多个电子解码器处理设备,该一个或更多个电子解码器处理设备:获得压缩的图像数据,该压缩图像数据包括编码的频率系数和指示编码的频率系数的索引;解码编码的频率系数,以获得频率系数的子集;使用频率系数子集和索引来生成频率系数的集合;并且,对频率系数的集合应用逆变换,以确定代表在一个或更多个图像内的像素阵列的像素数据。在一个实施例中,该系统包括:解码器输入缓冲器,该解码器输入缓冲器接收压缩的图像数据;以及,解码器输出缓冲器,该解码器输出缓冲器存储图像数据。在一个实施例中,该系统包括解码器收发器,该解码器收发器接收压缩的图像数据并将压缩图像数据提供给输入缓冲器。在一个实施例中,至少一个解码器处理设备包括适当编程的fpga。在一个实施例中,压缩的图像数据定义多个通道,并且其中该系统包括对于每个通道的相应的处理设备。在一个实施例中,该系统包括与编码器无线通信的解码器,从而允许图像数据在编码器和解码器之间作为压缩的图像数据传输。在一个实施例中,编码器是耦合到适当编程的计算机系统并作为适当编程的计算机系统的一部分的至少一个。在一个实施例中,解码器是在耦合到可佩戴显示设备的解码器以及作为可佩戴显示设备的一部分的解码器中的至少一个。在一个实施例中,解码器和编码器通信,以交换以下至少一项:压缩的图像数据;指示显示设备运动的运动数据;用于至少部分控制显示设备的控制数据;指示用户输入命令的输入数据;指示观察者注视点的注视数据;以及,来自与可佩戴显示设备相关联的传感器的传感器数据。在一个宽泛的形式中,本发明的一个方面寻求提供一种显示形成数字现实流的一部分的图像的方法,对于待显示的每个图像,该方法包括:在一个或更多个编码器处理设备中:从图像数据获得像素数据,该像素数据代表一个或更多个图像内的像素阵列;对像素数据应用变换以确定频率系数的集合,该频率系数指示像素阵列的频率系数;编码频率系数的集合的所选择的子集,该子集被选择为优先编码具有较高幅度的频率系数;以及,使用编码的频率系数生成压缩的图像数据;使用无线通信链路将压缩的图像数据无线传输到显示设备;并且,在与显示设备相关联的一个或更多个解码器处理设备中:获得压缩的图像数据;解码编码的频率系数,以获得频率系数的子集;使用频率系数的子集生成频率系数的集合;以及,对频率系数的集合应用逆变换,以确定代表像素阵列的像素数据。在一个宽泛的形式中,本发明的一个方面寻求提供一种用于显示形成数字现实流的一部分的图像的系统,该系统包括:一个或更多个编码器处理设备,该一个或更多个编码器处理设备:从图像数据获得像素数据,该像素数据代表一个或更多个图像内的像素阵列;对像素数据应用变换,以确定频率系数的集合,该频率系数指示像素阵列的频率系数;编码频率系数的集合的所选择的子集,该子集被选择为优先编码具有较高幅度的频率系数;并且,使用编码的频率系数生成压缩的图像数据;无线通信链路,该无线通信链路无线传输压缩的图像数据;以及,与显示设备相关联的一个或更多个解码器处理设备,该一个或更多个解码器处理设备:获得压缩的图像数据;解码编码的频率系数,以获得频率系数的子集;使用频率系数的子集生成频率系数的集合;并且,对频率系数的集合应用逆变换,以确定代表像素阵列的像素数据。在一个宽泛的形式中,本发明的一个方面寻求提供一种解压缩代表一个或更多个图像的压缩的图像数据的方法,该方法包括:获得压缩的图像数据;从压缩的图像数据中确定对于在一个或更多个图像内的像素阵列中的像素的像素值;使用代表对于像素阵列中的每个像素的修改量值的修改量阵列来修改像素值;以及,量化修改的像素值,以生成指示图像中的像素阵列的像素数据。在一个实施例中,该方法包括根据以下至少一项来选择修改量阵列:像素阵列在一个或更多个图像中的定位;至少部分地指示以下至少一项的显示数据:显示设备的操作、显示设备的使用;以及,指示无线通信链路的操作的通信链路数据;至少部分地指示显示设备的配置的配置数据;以及,至少部分指示与一个或更多个图像相关联的数字现实内容的内容数据。在一个实施例中,修改量阵列对于在图像内处于不同定位的像素阵列是不同的。在一个实施例中,修改量阵列对于在不同图像中处于相同定位的像素阵列是相同的。在一个实施例中,修改量是伪随机值。在一个宽泛的形式中,本发明的一个方面寻求提供一种用于解压缩代表一个或更多个图像的压缩的图像数据的系统,该系统包括一个或更多个处理设备,该一个或更多个处理设备:获得压缩的图像数据;从压缩的图像数据中确定对于在一个或更多个图像内的像素阵列中的像素的像素值;使用代表对于像素阵列中的每个像素的修改量值的修改量阵列来修改像素值;以及,量化修改的像素值以生成指示图像中的像素阵列的像素数据。在一个宽泛的形式中,本发明的一个方面寻求提供一种压缩代表一个或更多个图像的图像数据的方法,该方法包括:从图像数据获得像素数据,该像素数据代表一个或更多个图像内的像素阵列;确定目标压缩程度;对像素数据应用变换以确定频率系数的集合,该频率系数指示像素阵列的频率系数;至少部分根据目标压缩程度来选择位编码方案;根据位编码方案对频率系数的集合进行编码,以生成编码的频率系数,其中,位编码方案通过以下至少一种方式对频率系数进行编码:编码频率系数的子集,该子集被选择为优先编码具有较高幅度的频率系数;以及,用缩放因子缩放频率系数,并对缩放的频率系数进行编码;并且,生成指示以下至少一项的索引:选择的位编码方案、缩放因子、和编码的频率系数;使用编码的频率系数和索引生成压缩的图像数据。在一个实施例中,该方法包括:使用选择的位编码方案编码多个像素阵列;以及,基于多个像素阵列的压缩,选择接下来的编码方案。在一个实施例中,该方法包括使用以下至少一项来选择位编码方案:对于多个先前像素阵列的累积位总数;目标位速率;像素阵列在一个或更多个图像内的定位;从显示设备接收的显示数据,该显示数据至少部分地指示以下至少一项:显示设备的操作、显示设备的使用;以及,指示无线通信链路的操作的通信链路数据;至少部分地指示显示设备的配置的配置数据;至少部分指示与一个或更多个图像相关联的数字现实内容的内容数据。在一个实施例中,该方法包括:确定对于多个先前像素阵列的累积位总数;如果累积位总数超过累积位总数阈值:确定对于多个先前像素阵列的压缩程度;并且,使用压缩程度和目标压缩程度来选择位编码方案。在一个实施例中,该方法包括:识别最高幅度频率系数;计算将最高幅度频率系数降低到目标位数所需的最小缩放因子;以及,使用以下至少一项来缩放频率系数:最小缩放因子和比最小缩放因子更大的缩放因子。在一个实施例中,该方法包括选择多个位编码方案中的一个,其中,每个位编码方案定义:可用的缩放因子和位阈值,其中,频率系数是根据位阈值选择性地编码的。在一个实施例中,该方法包括以下至少一项:编码具有比位阈值更多的位的频率系数;以及,丢弃具有比位阈值更少的位的频率系数。在一个实施例中,每个位编码方案定义以下至少一项:对于不同颜色通道的相应位阈值;对于亮度通道和色度通道相应位阈值;以及,对于色度通道比对于亮度通道更高的位阈值。在一个实施例中,该方法包括从位编码方案的有序列表中选择位编码方案,该列表被排序以提供逐渐增加的压缩。在一个实施例中,位编码方案通过以下至少一项提供逐渐增加的压缩:逐渐增加可用的缩放因子的幅度;以及,降低最低可用的缩放因子;以及,逐渐增加位阈值。在一个实施例中,缩放因子是以下至少一项:1、2、4和8。在一个实施例中,位阈值是以下至少一项:0、1、2、3、4、5和6。在一个实施例中,频率系数包括dc分量,并且其中dc分量是以下至少一项:在不压缩的情况下保留的;在不缩放的情况下保留的;以及,使用本机位数保留的。在一个实施例中,像素数据定义了rgb通道,并且其中该方法包括:将rgb通道转换成ycbcr通道;并且,变换ycbcr通道,以生成相应的频率系数,并且其中转换步骤和变换步骤是使用最小位大小来执行的。在一个实施例中,该方法包括:选择位编码方案,该位编码方案定义:可用的缩放因子和位阈值;将变换应用于像素数据,以确定频率系数的集合;计算将最高幅度频率系数降低到目标位数所需的最小缩放因子;基于可用的缩放因子和最小缩放因子,选择缩放因子;用选择的缩放因子缩放频率系数;以及,根据位阈值,编码缩放的频率系数的子集。在一个实施例中,位编码方案定义对于色度颜色通道和亮度颜色通道中的每一个的位阈值,并且其中该方法包括,对于每个颜色通道:对像素数据应用变换;计算最小缩放因子;选择缩放因子;缩放频率系数;以及,编码缩放的频率系数的子集。在一个宽泛的形式中,本发明的一个方面寻求提供一种用于压缩代表一个或更多个图像的图像数据的系统,该系统包括一个或更多个编码器处理设备,该一个或更多个编码器处理设备:从图像数据获得像素数据,该像素数据代表一个或更多个图像内的像素阵列;确定目标压缩程度;对像素数据应用变换以确定频率系数的集合,该频率系数指示像素阵列的频率系数;至少部分根据目标压缩程度来选择位编码方案;根据位编码方案对频率系数的集合进行编码,以生成编码的频率系数,其中,位编码方案通过以下至少一种方式对频率系数进行编码:编码频率系数的子集,该子集被选择为优先编码具有较高幅度的频率系数;以及,用缩放因子缩放频率系数,并对缩放的频率系数进行编码;并且,生成指示以下至少一项的索引:选择的位编码方案、缩放因子、以及编码的频率系数;使用编码的频率系数以及索引生成压缩的图像数据。在一个宽泛的形式中,本发明的一个方面寻求提供一种解压缩代表一个或更多个图像的压缩图像数据的方法,该方法包括:获得压缩的图像数据,该压缩的图像数据包括编码的频率系数和指示所选择的位编码方案以及以下至少一项的索引:缩放因子和编码的频率系数;使用索引来确定选择的位编码方案;使用位编码方案通过以下至少一项来生成频率系数的集合:解码编码的频率系数以获得频率系数的子集,并使用频率系数的子集和索引生成频率系数的集合;并且,将缩放因子应用于编码的频率系数,以生成频率系数;并且,对频率系数的集合应用逆变换,以确定代表在一个或更多个图像内的像素阵列的像素数据。在一个实施例中,该方法包括:解码编码的频率系数,以获得频率系数的子集;以及,将缩放因子应用于频率系数的子集。在一个宽泛的形式中,本发明的一个方面寻求提供一种用于解压缩代表一个或更多个图像的压缩的图像数据的系统,该系统包括一个或更多个解码器处理设备,该一个或更多个解码器处理设备:获得压缩的图像数据,该压缩的图像数据包括编码的频率系数和指示所选择的位编码方案以及以下至少一项的索引:缩放因子和编码的频率系数;使用索引来确定选择的位编码方案;使用位编码方案通过以下至少一项来生成频率系数的集合:解码编码的频率系数以获得频率系数的子集,并使用频率系数的子集和索引生成频率系数的集合;并且,将缩放因子应用于编码的频率系数,以生成频率系数;并且,对频率系数的集合应用逆变换,以确定代表在一个或更多个图像内的像素阵列的像素数据。将认识到,本发明的宽泛形式及其各自特征可合并使用、变换使用和/或单独使用,且针对各宽泛形式描述的内容皆不具限制性。附图简述现在将参考附图,针对本发明的实施例的各种示例进行描述,其中:图1a和图1b是用于压缩和随后解压缩图像数据的方法的示例的流程图;图2a是用于在可佩戴设备上显示图像的装置的第一示例的示意图;图2b是用于在可佩戴设备上显示图像的装置的第二示例的示意图;图3是包含用于压缩和解压缩图像数据的装置的虚拟现实系统的特定示例的示意图;图4a至图4d是用于压缩和随后解压缩图像数据的方法的特定示例的流程图;图5a是系数矩阵的示例的示意图;图5b是图5a的系数矩阵的遍历路径的示例的示意图;图5c是图5a的系数矩阵的索引的位结构的示例的示意图;并且,图6是图示针对不同频率分量选择获得的压缩误差的示例的曲线图;图7a是像素阵列的示例;图7b是基于图7a的像素阵列的压缩的像素阵列的示例;并且,图7c是基于图7a的像素阵列的解压缩的像素阵列的示例;图8a是像素阵列的示例;图8b是基于图8a的像素阵列的压缩的像素阵列的示例;图8c是修改量阵列的示例;图8d是基于图8a的像素阵列的修改的压缩的像素阵列的示例;图8e是基于图8a的像素阵列的解压缩的像素阵列的示例;图8a是多个像素阵列的示例;图8b是基于图8a的像素阵列的压缩的像素阵列的示例;图8c是基于图8a的像素阵列的解压缩的像素阵列的示例;图9d是基于修改的压缩的像素阵列的解压缩的像素阵列的示例;图10a和图10b是用于压缩和随后解压缩图像数据的方法的另一示例的流程图;图11a至图11d是用于压缩和随后解压缩图像数据的方法的另一特定示例的流程图;图12a是压缩的图像的示例;图12b是图示用于图12a的图像的压缩的整体压缩率的曲线图;图12c和图12d是图示用于图12a的图像的像素块的压缩的所选择的位编码方案和对应压缩率的曲线图;图12e和图12f是图示用于图12a的图像的第一部分的像素块的压缩的所选择的位编码方案和对应压缩率的曲线图;并且图12g和图12h是图示用于图12a的图像的第二部分的像素块的压缩的所选择的位编码方案和对应压缩率的曲线图。优选实施例的详细描述现在将参考图1a和图1b,描述用于压缩和随后解压缩图像数据的方法的示例。出于说明的目的,假设该过程至少部分地使用一个或更多个电子处理设备来执行。在一个示例中,相应的处理设备用于压缩和解压缩图像数据,从而允许压缩的图像数据在两个处理设备之间传递,然而这不是必需的,并且可替代地,同一处理设备可以用于压缩和解压缩图像数据。处理设备可以形成相应处理系统(例如计算机系统、计算机服务器)、客户端设备(包括移动电话、便携式计算机)、显示设备(诸如可佩戴的或头戴式显示器)的一部分,或者可替代地可以采用耦合到这些设备的独立模块的形式。图像数据通常表示一个或更多个图像,并且在一个示例中,表示在相应显示设备上待显示的图像序列。从下面的描述中明显的是,在一个特定示例中,图像数据是形成适于远离源显示的数字内容流的一部分的图像序列,诸如在虚拟现实图形应用、增强现实图形应用或混合现实图形应用中(其中图像被显示在可佩戴的显示器上),和/或在远程呈现应用中(其中图像由远程可控系统显示,诸如无人机安装的相机等)。然而,将认识到,虽然本文描述的技术对于数字现实应用特别有用,但是这并不旨在限制,并且该技术可以用于任何内容流,诸如视频流、计算机图形等。在该示例中,在步骤100处,从图像数据中获得像素数据,该像素数据表示在一个或更多个图像内的像素阵列。该像素数据可根据图像数据地格式以任何适当方式获得。在一个示例中,获得像素数据仅通过从图像数据中选择特定的字节序列实现。像素阵列通常对应于预定数量的像素,诸如多个图像之一的8x8像素块,然而可以使用其它像素阵列。在步骤110处,对像素数据应用变换以确定频率系数的集合,该频率系数指示像素阵列的频率分量。该变换通常是频率变换,例如傅立叶变换或类似者,在一个示例中是2ddct(离散余弦变换)。该变换可以例如使用已知的变换技术以任何适当方式应用,然而在一个示例中以高度并行方式执行,因此减少了处理时间。在步骤120处,对频率系数的集合的所选择子集进行编码。在这一点上,被编码的频率系数是被选择以使编码的频率信息的有效性最大化的子集,例如通过选择具有最高幅度并且因此对解压缩图像的质量贡献最多的频率系数。执行选择的方式将根据优选实施方式而变化,但是在一个示例中,这包括选择具有逐渐变小的幅度的频率系数,并且因此可以由逐渐变小的位数来定义,直到达到某个极限。然而,这不是必需的,并且可以使用其他选择方法。频率系数可以以任何合适的方式编码,这可以根据优选实施方式而变化,并且在一个示例中,可以包括使用频率系数的原始位表示,或者执行某种其他形式的无损编码,这将在下面更详细地描述。在步骤130处,创建指示被编码的频率系数的索引。该索引用于识别频率系数,以便这些频率系数可以用于在随后的解压缩步骤中重新生成图像。这是必需的,因为对于每个像素阵列,不同的频率系数将具有不同的幅度,使得被编码的频率系数将在每个像素阵列之间变化,并且因此该信息需要被传送到解码器以用于解压缩。该索引可以采用任何适当的形式,并且可以以任何适当的方式(诸如通过识别系数例如在系数矩阵内的位置)识别频率系数。该索引可以例如通过提供该索引后跟一串编码的频率系数被单独提供给频率系数,或者可以在该索引中包括编码的频率系数,这将在下面更详细地描述。一旦已经执行了编码并创建了索引,就可以在步骤140处生成压缩的图像数据,其中压缩的图像数据包括编码的频率系数,并与索引一起提供。例如,这可以通过创建字节流(bytestream)执行,该字节流包括编码的频率系数的序列,可选地具有用于识别新图像的起点等的额外信息,例如标志或其它标记。因此,上述过程通过编码所选择的频率系数,并使用索引来识别已被编码的频率系数,而允许创建压缩的图像数据。通过允许任意地选择频率系数(例如,基于它们的幅度),这可以导致在图像随后被解压缩时更高的图像质量。在这一点上,传统的方法聚焦于对对应于较低频率的频率系数进行编码,这是基于对应于较低频率的频率系数通常对图像质量贡献最大。在这种情况下,通过在每次执行编码时对相同的频率系数进行编码,这有助于解码过程,但是相反地,这意味着所执行的编码对于每个像素阵列来说并不是最优的,从而导致伪像(诸如条带化)。相反,在当前的方法中,频率系数可以被选择以例如通过编码最大幅度系数来优化所得的图像,这进而对所得的图像的外观提供最大的贡献。最大幅度频率系数不限于最低频率的系数,这意味着也可以对较大的高频系数进行编码。在这种情况下,通过在压缩的图像数据中包括索引来促进图像的解压缩,这意味着所选择的频率系数可以针对每个像素块而变化,从而允许针对每个像素块和/或图像来说压缩是最优的,同时使对图像质量的影响最小化。在这一点上,在步骤150处,获得压缩的图像数据,其中在步骤160处解码编码的频率系数,以创建频率系数的子集。将认识到,执行这种操作的方式将根据所执行的编码的性质而变化。随后,在步骤170处,该索引被用来通常通过用空值定义未编码的频率系数来生成频率系数的完整集合。随后,在步骤180处,可对频率系数的集合应用逆变换,以确定像素数据,该像素数据表示在一个或更多个图像内的像素阵列。具体来说,该操作通常采用逆频率变换的形式,诸如傅立叶逆变换、2ddct等。因此,上述过程允许通过编码频率系数的所选择的子集来编码图像数据,并使用索引来识别编码的频率系数,然后在解压缩编码的频率系数时可以使用该索引。这种方法具有固有的自适应性,这意味着所选择的频率系数将根据被编码的像素阵列的内容而变化,从而确保针对内容来说压缩是最优的,从而允许使可以实现的压缩量最大化,同时使得对图像质量的影响最小化。除了上述优点之外,该方案可以以高度并行的方式实施,进而使得该过程能够快速地执行,从而减少延迟,减少延迟在许多应用中至为重要,诸如虚拟现实应用中,其中图像是响应于显示设备的运动而生成的,因此必须快速地传输到该显示设备进行显示。现在将描述更多其它特征。在一个示例中,该方法包括选择具有n位的频率系数,其中n是最初设置为最大位数的整数,然后选择n的值逐渐减小的具有n位的频率系数。这样执行是为了对具有较大幅度(以及因此的较大位数)的频率系数进行编码,从而优先于具有较小幅度并因此具有较小位数的频率系数进行编码,进而对图像质量的影响较小。通常,执行选择逐渐变小的位数的过程,直到满足编码参数,从而选择被编码的频率系数的子集。例如,该操作可以被执行,以确保足够的频率系数被编码以保持期望的图像质量,同时使传输的图像数据的总量最小化。编码参数可以以多种方式中的任何一种来定义,并且可以体现固定规则或动态规则,从而允许像素阵列根据图像内容、可用的传输要求、期望的压缩程度等进行自适应编码。编码参数(多个编码参数)通常包括一个或更多个阈值,该方法包括编码系数,直到满足阈值为止。这可以包括编码频率系数,直到编码的频率系数的数量达到系数数量阈值、直到编码频率系数的位数量达到位阈值、或者直到编码频率系数的位总数达到位总阈值。因此,这允许编码设定数量的系数,或者允许编码设定数量的位,这进而允许根据系数的幅度编码不同数量的系数。在一个示例中,选择频率系数以实现目标压缩程度。例如,在需要积极的压缩的情况下,这可以通过仅编码几个高幅度频率系数来执行,而如果需要不太积极的压缩,这可能包括编码更大数量的系数。考虑到一系列不同的因素,可以确定期望的压缩以及因此选择的频率系数。这可以包括使用至少部分指示显示设备的操作和/或显示设备的使用的显示数据、指示无线通信链路的操作的通信链路数据、至少部分指示显示设备的配置的配置数据和至少部分指示数字现实内容的内容数据。显示数据可以定义当前显示设备姿态和/或运动,其可以用于评估与先前图像相比的冗余度或者用户注视,用户注视可以评估图像的哪些区域正被用户聚焦并因此哪些区域需要较高图像质量和较少的压缩。类似地,内容数据可用于例如基于视觉内容和/或其他上下文提示(诸如听觉提示)确定图像内的关注区域,从而再次允许确定需要较高图像质量的区域。配置数据通常定义图像的部分,这些部分或者在显示设备的视场之外且因此没有被显示,和/或也在图像的没有被显示的区域中且因此可以使用更积极的压缩,而不会感觉到图像质量的降低。最后,基于当前带宽和/或延迟,通信链路数据可用于控制所使用的整体压缩程度,确保压缩的图像数据能够及时传输。因此,该方法可以包括基于与硬件操作相关的一个或更多个操作参数和/或与图像相关的图像参数来选择编码参数,诸如阈值。操作参数可以包括用于传输压缩的图像数据的通信链路的传输带宽、用于传输压缩的图像数据的通信链路的传输服务质量、显示设备的运动、图像显示要求、目标显示分辨率等中的任何一个或更多个。类似地,图像参数可以包括正被处理的通道、一个或更多个图像内的像素阵列的定位、相对于一个或更多个图像的观察者的注视点来说一个或更多个图像内的像素阵列的定位等中的任何一个或更多个。作为另一种选择,可以使用指示解压缩的图像和/或数据传输中的误差的误差度量,以便控制所使用的压缩程度。将认识到,这些布置可以例如通过基于当前误差值、像素阵列的内容等来改变阈值而用于动态调整压缩程度。例如,如果压缩伪像超过设定量,则可以通过调整阈值来降低压缩程度,而如果可用传输带宽下降,则可以增加压缩。这种动态调整压缩的能力有助于优化压缩,以获得当前环境下的可能的最佳图像质量。例如,图像的一些部分的相对质量可能不如其他部分重要。在虚拟现实的情况下,由于显示透镜的图像失真,图像的外围部分常常不会真实显示给用户。因此,可以用有效的零质量(effectivezeroquality)对图像的这些部分进行编码,从而极大地降低压缩的图像数据的量,而不损失可视图像的图像质量。类似地,在虚拟现实应用中,例如使用眼睛跟踪技术等,可以对观察者正在观看的图像部分进行分析,然后以更高的质量对更靠近注视点的图像部分进行编码。在这一点上,观察者对外围区域的感知通常会降低,因此图像质量的降低通常不太明显。因此,通过在观察者的注视点附近以较高质量编码图像,这允许观察者将整体质量较低的图像感知为具有等同质量。在这一点上,将认识到,只要保持整个图像的传输时间,视图中心附近的像素阵列是否包含更多的位并且花费更长的时间来传输并不重要,因为这可以通过降低图像外围附近传输的位数来适应。因此,在一个示例中,该方法包括差异性压缩图像数据,使得使用不同的压缩程度来压缩图像的不同部分,这进而允许整体压缩程度最大化,而不会感知到图像质量的降低。在一个示例中,该过程通过下列过程来实现:确定在一个或更多个图像内像素阵列的定位,然后基于该定位选择频率系数的子集,使得像素数据被压缩的程度取决于像素阵列的确定定位。在一个示例中,相对于定义定位来确定该定位,该定义定位可以至少部分地指示用户的注视点。定义定位可以基于实际测量的注视点,或者预期或预测的用户的注视点(例如通过假设用户正注视图像的大致中心来确定),或者基于内容,诸如图像内的焦点、头戴设备的运动等。另外,所定义的点可以偏离注视点,例如将其定位在注视点之下,以考虑到这样的事实,即个人倾向于在注视点稍微靠下聚焦,以避免在行走时与障碍物碰撞。因此,这提供了用于压缩和随后解压缩图像的机制,其中基于像素阵列的位置来控制压缩。具体来说,这允许基于像素阵列的定位来选择压缩程度,使得可以在靠近注视点的区域中使用较小的压缩,而远离注视点(例如在用户的周边视场中)则使用较大的压缩。这实际上提供了中心凹压缩,通过在图像质量降低不太明显的用户周边视场中增加压缩,从而允许实现较大的整体压缩,而没有太明显的质量损失。可替代地,这可以基于显示设备的特性,例如通过改变远离显示设备透镜中心的压缩程度。在一个示例中,压缩程度可以基于与定义点的距离(例如远离注视点逐渐减小),但是也可以基于相对于定义点的方向,使得压缩在定义点之上或之下更大。将认识到,这允许在具有相对于注视点定位的任何任意形状的区域中使用相应的压缩程度,并且这可以根据被压缩内容的特定环境和/或性质来配置。例如,与外围区域相比,这允许围绕定义点的椭圆形、卵形或心形区域具有降低的压缩量,从而在用户对任何压缩伪像的感知更大的区域中的图像质量最大化。从上面将认识到,由于像素阵列内频率分布的固有差异,并且特别是基于对于相应像素阵列具有最大幅度的特定频率系数,每个像素阵列被不同地编码。另外,可以通过调整编码参数且特别是用于控制过程的阈值来动态地执行编码,从而允许编码考虑外部因素(诸如所需的压缩程度、用户的注视等),由此根据需要进一步增加或减少压缩程度。在一个示例中,该方法包括,对于具有设定位数的频率系数,在选择对应于较高频率的频率系数之前,选择对应于较低频率的频率系数。因此,例如,如果对将要被编码的位总数有限制,则这可能意味着在四个六位的频率系数中只有两个被编码,在这种情况下,具有较低频率的六位频率系数通常被优先选择,因为具有较低频率的六位频率系数往往对图像质量有较大影响。然而,将认识到,这不是必需的,并且可以使用其他方法。该索引通常指示每个编码的频率系数的位数和频率系数在定义的序列中或在系数矩阵中的位置。例如,索引可以基于矩阵内的坐标定位,或者仅仅基于系数的有序列表中的相对定位或者系数矩阵的之字形遍历来识别频率系数。通过基于位置识别频率系数,这使得识别系数所需的位数最小化,同时确保在解码时能够正确识别频率系数。在这种情况下,可以为多个频率系数指定一次位数,从而允许迭代地构造索引,例如通过指定位数n,然后列出对于具有该指定位数n的每个编码的频率系数的位置。然后,对于逐渐减少的位数n重复这一过程,直到索引完成,例如当满足编码参数时。还将认识到,可以针对所有频率系数构造索引,然后仅仅这些系数中的一些被编码,并被提供索引的对应部分作为压缩的图像数据的一部分。虽然索引可以在每次传送时指定以上信息,但是将认识到,例如如果图像中的特定像素阵列基本相同,则一些索引可以重复。在这种情况下,索引可以替代代码,例如参考先前像素块的索引,在这种情况下,该方法可以包括确定指示索引的索引代码,并使用该索引代码生成压缩的图像数据。在一个示例中,索引指示对于每个频率系数的值,尽管这不是必需的,并且可替代地,索引可以与编码的频率系数分开存储,例如通过将它们作为独立的数据结构的一部分来提供。频率系数可以以任何适当的方式编码,并且这可以包括将频率系数编码为原始位序列(即没有变化),在没有缩放和/或没有有损编码的情况下编码频率系数。在一个特定示例中,由于编码该值所需的位数是已知的,因此第一位必须是“1”值(它是固有的,使得如果第一位是“0”,则可以使用更少的位数),这意味着可以省略该值,从而通过去除第一位,使用n-1位对具有n位的频率系数进行编码。然而,将认识到,可以使用其他形式的编码,诸如使用位编码方案,其中一些编码的频率系数具有降低的位数。这可以通过例如缩放和/或省略更多的位数来实现。因此,将缩放因子应用于至少一些频率系数可以用于降低频率系数幅度,从而降低待编码的位数。当执行解压缩时,可以应用类似的缩放因子,从而将相应的频率系数缩放回它们的原始幅度。在这个过程中,通常执行舍入,使得缩放后的频率系数是整数值,或者具有有限数量的有效数字,从而使用于编码系数的位数最小化。将认识到,当执行这一操作时,会导致重新创建的频率系数的准确性降低,但是这对于所得的图像质量的影响是可以忽略的。另外,例如通过仅仅降低所使用的位数,可以使用较少数量的位来编码具有较小幅度的频率系数。虽然这再次导致准确性降低,但与通过确保更高幅度的频率系数被准确编码而获得的准确性相比,这是最小的。还将认识到,例如通过选择多个编码方案中的一个并使用所选择的编码方案对像素数据进行编码,不同的编码方案可以用于不同的像素阵列。这允许基于因素(诸如所需的压缩程度)来选择不同的编码方案。因此,例如,一些像素阵列可以在没有缩放的情况下被编码,而其他像素阵列可以对小于5位的任何频率系数使用缩放。同样,所使用的编码方案可以被指定为索引的一部分,以便于解码。在一个示例中,图像数据定义了多个通道,该方法包括选择性地编码对于每个通道的频率系数。通过单独编码不同的通道,这允许不同的通道被不同地编码(例如使用不同的位编码方案或者丢弃不同的频率系数)。另外,编码通道独立地允许通道被并行编码,这可以显著地帮助降低执行编码所花费的时间,从而降低编码延迟。在一个示例中,像素数据定义了rgb通道,并且该方法包括将rgb通道转换成亮度和色度通道ycbcr,以及变换ycbcr通道。在这一点上,人眼对亮度和色度通道的感知是不同的,从而允许使用更大的压缩程度对色度通道进行编码,以及因此的与亮度通道相比的降低的质量,而不会导致感知质量的损失。因此,在该示例中,该方法可以包括相比于cb或cr通道对于y通道选择性地编码更多的频率系数,并且类似地可以包括相比于对于cb和cr通道对于y通道选择性地编码频率系数。在另一个示例中,在像素数据定义了rgb通道的情况下,该方法可以包括将rgb通道转换成ycbcr通道,并通过编码cbcr通道和使用y通道来生成压缩的图像数据。实际上,在这个示例中,y通道实际上是未编码的,这意味着在亮度通道内包含的全部信息被保留。这在一些编码场景下(例如当对显示出梯度的像素阵列进行编码时)尤其有用,因为这有助于保持颜色变化并因此改善图像质量,同时仅导致压缩的轻微减少。一般来说,在将rgb通道转换成ycbcr通道时,并且另外在随后变换ycbcr通道以生成相应的频率系数时,使用最小位大小来执行转换和变换步骤。具体来说,每个系数使用比原始本机位数更高的位数进行编码,因此在计算频率系数的步骤期间不会丢失细节。例如,当转换到ycbcr并随后计算频率系数时,8位的rgb系数可以被视为10位的系数,以避免在这个过程期间信息的丢失。将认识到,随着频率系数随后被编码和/或缩放,这不会增加压缩数据的整体幅度,但是避免了编码时的信息损失,因此可以产生改善的图像质量,尤其是减少的条带。然而,将认识到,这不是必需的,并且处理可以可替代地在rgb通道中执行,在这种情况下,不一定需要颜色转换。这通常也避免了精度的损失,并产生了改善的图像质量。如上所述,不同的通道可以并行编码。在这种情况下,生成压缩的图像数据的方法通常包括执行并行到串行字节编码,从而将频率系数串行化成字节流,然后字节流可以经历字节编码。在这方面,字节编码可用于提供额外的无损压缩步骤。这通常涉及代码替换,其通过解析形成压缩的图像数据的一部分的字节序列、识别包括多个相同字节的子序列以及用该子序列代替指示子序列中相同字节的值和相同字节数的代码来执行。在一个示例中,当相同字节的子序列包括三个或更多字节时,代码包括两个字节,然而将认识到,可以使用其他合适的编码方案。虽然这种代码替换(常常称为游程编码)可以对任何字节序列执行,但是在一个示例中,字节序列是由编码的频率系数形成的位流。在这一点上,许多编码的频率系数通常具有零值,这意味着当由编码的频率系数形成的位流被分析为字节序列时,序列中经常有多个零值字节。因此,通过用这些代替代码,这允许字节数减少。虽然图像数据可以从任何源获得,但是在一个示例中,该方法包括从视频信息流(feed)(诸如用于显示的图像序列)中获得像素数据。在另一示例中,该方法被用作数字现实系统的一部分,并且在一个特定示例中,用于无线传输数字现实内容,诸如增强现实、虚拟现实、混合现实、远程呈现等。在一个示例中,实现上述压缩方案是为了基于目标压缩程度来执行各个像素阵列的动态压缩。具体来说,在该示例中,目标压缩程度连同关于对先前像素阵列实现的压缩程度的信息被用于确定应该用于一个或更多个未来像素阵列的压缩程度。具体来说,这被用于选择位编码方案,然后该方案至少部分地用于利用上述方法编码频率系数,使得具有较高幅度的频率系数可以被优先编码,然而这不是必需的。在这种情况下,随后生成指示所选择的位编码方案的索引,因此允许执行对应的解码。在这种方法中,可以根据频率系数的幅度和所需的压缩程度来选择不同的位编码方案。这允许针对一个或更多个像素阵列的组动态地调整压缩,使得组中的像素阵列被最佳地编码,同时确保在整个图像上获得期望的目标压缩。以下将更加详细地描述该方法的其他特征。在一个示例中,该方法可以用于通过经由通信网络和无线通信链路中的至少一个接收来自计算设备的压缩的图像数据在可佩戴数字现实头戴设备中显示图像数据。这可以包括从计算机或其他类似设备无线传送压缩图像,或者可以包括将压缩图像从基于云的计算环境传送到本地设备(诸如安装有头戴设备的智能电话),从而允许使用云计算来执行图像的创建。合适的连接的示例包括硬连线千兆比特互联网、例如经由移动通信网络(诸如3g、4g或5g网络)流传输到移动电话、经由有线连接传输到系缆的hmd、或者经由无线连接传输到未系缆的hmd等。还将认识到,可以使用上述系统来促进压缩的图像数据的解压缩。例如,系统可以使用上述形式的索引以及解码的频率系数来重建频率系数的集合、频率系数的定义序列和/或系数矩阵。在一个示例中,该过程包括解码每个编码的频率系数,确定每个频率系数的位置,将解码的频率系数添加到定义序列或系数矩阵中,并将空值添加到定义序列和系数矩阵中的至少一项中的空位置。在一个示例中,在索引已经作为代码被传输的情况下,该方法包括从压缩的图像数据中确定索引代码,以及从索引代码中确定索引。通常,该方法包括在没有缩放和/或没有有损解码的情况下解码每个编码的频率系数,执行这种解码的方式根据频率系数被编码的方式而变化。在一个特定示例中,通过仅仅省略第一位(因为这总是被设置为“1”的值)来编码频率系数,在这种情况下,该方法包括,对于具有n-1位的编码频率系数,通过添加第一位来使用n位创建频率系数。然而,附加地和/或可替代地,可以基于在编码频率系数时使用的位编码方案来使用位编码方案。例如,这可以包括重新生成对应于较小频率系数的一些丢失的频率系数(通常作为空值),从而允许应用后续的逆变换,这将在下面更详细地描述。该方法还可以包括将缩放因子应用于至少一些频率系数,使得缩放的频率系数变换。如前所述,图像数据通常定义多个通道,其中对于每个通道,编码的频率系数被选择性地独立解码。通道通常包括ycbcr通道,该方法包括对ycbcr通道进行逆变换,并将变换后的ycbcr通道转换成rgb通道。通常,逆变换是逆2-d离散余弦变换,然而也可以使用其他合适的变换。还将认识到,如果如上所述,y通道没有被编码,则该方法可以包括解码cbcr通道,然后将解码的cbcr通道和y通道转换成rgb通道。如在压缩图像数据的示例中,该方法通常包括对cb或cr通道生成比y通道更多的频率系数。该方法还可以包括并行地解码通道,在这种情况下,通过串行到并行字节解码,压缩的图像数据可以至少部分地解码,有效地将输入字节流分割成单独的位编码的频率系数,然后将该位编码的频率系数并行解码。在还执行无损编码的情况下,该方法通常包括识别字节序列内的代码,并用该代码代替包括多个相同字节的子序列。在这种情况下,代码通常指示子序列中相同字节的值和相同字节的数量。同样,子序列通常包括三个或更多个字节,并且代码包括两个字节,然而也可以使用其他合适的排列。通常,对压缩的图像数据执行该过程,利用该过程来生成位流,该位流随后用于创建编码的频率系数。解压缩的数据还可以经历进一步的处理,诸如使用去块滤波器,当使用块编码技术等时,去块滤波器用于使可能在宏块之间形成的尖锐边缘平滑。这又可以允许使用更高的压缩程度,同时避免图像质量的对应降低。在另一示例中,像素数据经历进一步修改,以帮助减少条带。在这一点上,压缩可以从系数矩阵中去除较高频率的分量,这可以在图像内产生均匀的色带。为了减少这种影响,可以修改像素值来破坏这些区域的均匀性。在一个示例中,这是通过从压缩的图像数据中确定对于一个或更多个图像内的像素阵列中的像素的像素值来实现的。然后,在对修改后的像素值进行量化以生成指示图像中像素阵列的像素数据之前,使用代表对于像素阵列中每个像素的修改量值的修改量阵列来修改像素值。可以根据可以帮助优化所执行的修改的像素阵列在一个或更多个图像中的定位、显示数据、通信链路数据、配置数据和/或内容数据来选择修改量阵列。例如,在可能出现均匀像素块的地方,或者在用户可能感知所产生条带的区域,可以使修改最大化。在一个示例中,对于图像内不同定位处的像素阵列,修改量阵列是不同的,从而有助于降低额外伪像的引入,而对于不同图像中相同定位的像素阵列,修改量阵列通常是相同的,从而确保图像之间的一致性。虽然可以使用任何值,但是在一个示例中,修改量值是伪随机值。修改量的使用也可以与任何压缩技术一起使用,并且不限于与图1a和图1b中描述的方法一起使用。因此,将认识到,该方法可以提供本发明的一个替代方面。在另一示例中,上述方法由相应的硬件配置来执行。例如,压缩图像数据可以由包括电子编码器处理设备的编码器来执行,该电子编码器处理设备从图像数据中获得像素数据,执行频率变换,选择性地编码至少一些频率系数,生成指示编码的频率系数的索引,并使用编码的频率系数和索引来生成压缩的图像数据。类似地,可以使用包括电子解码器处理设备的解码器来执行压缩的图像数据的解压缩,该电子解码器处理设备获得压缩的图像数据,从压缩的图像数据中确定编码的频率系数的集合,执行编码的频率系数的位解码,使用频率系数的子集和索引来生成频率系数的集合,并且对该频率系数的集合施加逆变换以确定代表一个或更多个图像内的像素阵列的像素数据。在一个示例中,该装置包括无线通信的编码器和解码器,从而允许图像数据作为压缩的图像数据在编码器和解码器之间传送。在一个特定示例中,这可以被用来提供在可佩戴显示设备(诸如hmd和/或便携式设备(诸如移动电话))和处理系统(并且在一个示例中是基于云的处理系统)之间的无线通信。现在将参考图2a描述该装置的示例。在该示例中,处理系统210(诸如适当编程的计算机系统、游戏控制台等)适于生成内容,以供在hmd240上显示。处理系统210通常通过从hmd接收关于hmd姿态的传感器数据以及可选地从一个或更多个独立的控制器250接收输入数据来实现这一点。处理系统210随后基于传感器和/或输入数据生成内容,该内容通常采用视频数据的形式,其可以从视频卡等输出。视频数据被传送到编码器220,编码器220在经由无线通信链路260将压缩的图像数据无线传送到解码器230之前,通过压缩图像数据对视频数据进行编码。解码器230解码压缩的图像数据,并将所得的视频数据提供给hmd以供显示。将认识到,这种布置允许现有的计算机系统、游戏控制台等和hmd210、240经由无线连接260连接,从而消除了对处理系统210和hmd240之间的有线连接的需要。因此,例如,用户可以佩戴hmd和相关联的解码器,然后将编码器连接到他们的计算机系统或游戏控制台,从而允许提供无线hmd布置。这可以用来将传统的系缆的头戴设备转换成无线装置。然而,这不是必需的,并且可替代地,处理系统210和hmd240可以被配置成包括集成的编码器和解码器硬件,从而允许它们经由直接无线连接260进行通信,如图2b所示。例如,编码器可以设置在用于生成内容的计算机系统中,而解码器可以集成在智能电话中,例如snapdragon820hexagondsp或类似设备中,从而允许智能电话接收和解码从计算机系统无线流传输的内容。在一个示例中,这允许计算机系统通过本地无线连接进行流传输,但是在另一个示例中,这可以用于经由移动电话网络或类似设备从基于云的数字现实引擎提供内容。现在将参考图3,更详细地描述硬件配置的示例。将参考独立的硬件编码器和解码器来说明该示例,但是将认识到,这不是必需的,并且相同的技术可以与集成硬件结合使用。此外,虽然参考了虚拟现实应用,但是这也不是必需的,并且该技术可以被用于应用于在其中传送图像数据的任何环境,特别是当图像数据将使用有限的带宽传送时,同时保持可接受的图像质量和期望的延迟,诸如在虚拟现实、增强现实或远程呈现应用中。在该示例中,装置300同样包括处理系统310、编码器320、解码器330和采用hmd或类似形式的显示设备340。现在将更详细地描述这些系数中的每一个。在该示例中,处理系统310包括至少一个微处理器311、存储器312、可选的输入/输出设备313(诸如键盘及/或显示器)以及外部接口314,如所示,上述部件经由总线315互相连接。可利用外部接口314将处理设备310连接至外围设备,诸如通信网络、存储设备、外围装置等。虽然仅示出单个外部接口314,然而这指示为了进行示例,并且实际上可提供使用各种方法(例如以太网、串行端口、usb、无线连接等等)的多个接口。在这个特定示例中,该外部接口至少包括数据连接接口(诸如usb)、视频连接接口(诸如displayport、hdmi、thunderbolt等)。使用时,微处理器311执行以应用软件的形式储存于存储器312中的指令,以允许执行所需过程。应用软件可包含一个或更多个软件模块,并可于适当的执行环境(诸如操作系统环境等)中被执行。因此,将认识到,处理系统310可以由任何适当的处理系统(例如适当编程的pc等)形成。在一个特定示例中,处理系统310是标准处理系统(例如基于英特尔架构的处理系统),其执行储存在非易失性(例如硬盘)储存器上的软件应用,但这不是必需的。然而还应当理解的是,该处理系统可以是任何电子处理设备,诸如微处理器、微芯片处理器、逻辑门配置、可选地与实现逻辑关联的固件,诸如fpga(现场可编程门阵列)、专用集成电路(asic)、片上系统(soc)、图形处理单元(gpu)、数字信号处理(dsp)或任何其他电子设备、系统或布置。此外,虽然所示的处理系统310是单个整体,但是将认识到,实际上处理系统310可由多个物理设备形成,该物理设备可以可选地分布在多个地理上分离的位置上,例如作为基于云的环境的一部分。编码器320通常包含编码器输入缓冲器321,依次耦接至编码器处理设备322、编码器输出缓冲器323和收发器324。可以提供耦接到收发器324的单独的数据缓冲器325。使用时,图像数据并且在一个特定示例中是视频数据被接收,并在传送给编码器处理设备322进行压缩之前暂时存储于输入缓冲器321中。在这一点上,编码器输入缓冲器通常缓冲对应于图像中接下来m-1行像素以及接下来一行像素的接下来m个像素的图像数据,由此获得对于接下来的mxm像素块的像素数据。因此,将认识到,该过程不需要缓冲整个图像,而是只需要在处理开始之前缓冲m-1行像素和接下来一行的另外m个像素。一旦这一操作完成,则接下来的m个像素会被缓冲,且重复这一操作,直到从前m行的像素开始的像素数据都被获取并进行编码为止。此过程对该图像中的后续行像素重复执行,直到获取对于整个图像的像素数据,在此时,下一图像也以类似方式开始进行处理。一般来说,m的值是整数,并且可以根据因素(诸如选择规则、所需的压缩程度、像素阵列的定位等)来设置。在一个示例中,m=8,在这种情况下,该过程包括缓冲图像的七行像素,然后缓冲下一行像素的接下来的八个像素,使得编码器处理设备322在开始编码之前从缓冲的图像数据中获得对于下一个8×8像素块的像素数据。作为该方法的结果,编码器输入缓冲器始终不需要储存超过七行以及八个像素的图像数据,也就降低了存储器需求。此外,在获取像素数据时,即使在缓冲接下来八个像素的图像数据之前,也可使用该编码过程立即处理像素数据。这有两个主要影响,即降低处理时间,进而导致延迟的显著降低,以及降低整体存储器需求。所获得的压缩的图像数据例如通过顺序读入编码位而接着被储存在编码器输出缓冲器323中,由此执行并列到串行(paralleltoserial)字节编码,完成后再经由收发器324传输到解码器330。收发器324还适于传送其他数据,诸如经由编码器数据缓冲器325从hmd340接收的传感器数据。缓冲器321、323、325可以是任何适当形式的暂时储存器,这取决于优选的实施方式,并且在一个示例中可包含高性能的fifo(先进先出)场储存芯片等。输入缓冲器通常连接于hdmi端口、显示端口输出端或者任何其他合适的视频源,而数据缓冲器335则连接于usb端口,从而允许等同连接到计算机系统。收发器324可以采用任何适当形式,但在一个示例中,其能够使编码器与解码器之间进行基于短距离无线电的通信360,例如经由点对点的直接wifitm连接、60ghz无线技术等。处理设备322可以是能够执行本文所述压缩过程的任何设备。处理设备322可包含通用处理设备,其根据储存在存储器中的软件指令操作。然而在一个示例中,为了确保适当的快速压缩时间,该处理设备包括定制硬件,其被配置成执行压缩过程。这可以包括可选地与实现逻辑相关联的固件,诸如fpga(现场可编程门阵列)、图形处理单元(gpu)、专用集成电路(asic)、片上系统(soc)、数字信号处理器(dsp)或任何其他电子设备、系统或布置。在优选示例中,编码器处理设备322被配置成执行每个dct的、各个通道的并行处理,以及各个频率系数的并行编码。因此,虽然示出了单个编码器处理设备322,但是实际上,可提供用于并行地编码其中每个通道的相应的编码器处理设备322,或者可替代地可以使用gpu或者其他类似的并行处理架构。若是有一个通道(例如y通道)未被编码,则该编码器处理设备可能在传送相应数据到编码器输出缓冲器323时引入延迟,以确保仍能与编码的cbcr通道同步。在上述示例中,编码器320和处理系统310被描述为分立的物理实体,但是将认识到,在实践中这不是必须的情况,并且在一个示例中,编码器的功能在处理系统310内的硬件内(诸如在gpu等中)实现。解码器330通常包括收发器334,其与解码器输入缓冲器331耦接,而解码器输入缓冲器331又耦接到解码器处理设备332及解码器输出缓冲器333。还可提供耦接到收发器334的单独的数据缓冲器335。使用时,压缩的图像数据经由收发器334从编码器320接收,并被暂存于输入缓冲器331,之后再被传输至解码器处理设备332进行解压缩。所得的图像数据然后被储存至解码器输出缓冲器333,之后再被传输到显示设备340。收发器324亦可适用于传输其它数据,例如经由解码器数据缓冲器335从显示设备340接收到的传感器数据。缓冲器331、333、335可以是任何适当形式的暂时储存器,这取决于优选的实施方式,并且在一个示例中可包含高性能的fifo(先进先出)场储存芯片等。输出缓冲器通常连接于hdmi端口,而数据缓冲器335则连接于usb端口,因此允许等同地连接到显示设备。收发器334可以采用任何适当形式,但在一个示例中,其能够使编码器与解码器之间进行基于短距离无线电的通信360,例如经由点对点的直接wifitm连接、60ghz无线技术等。处理设备332可包含通用处理设备,其根据储存在存储器中的软件指令操作。然而在一个示例中,为了确保适当低的解压缩时间,该处理设备包含了定制硬件,其被配置以执行解压缩过程。这可以包括可选地与实现逻辑相关联的固件,诸如fpga(现场可编程门阵列)、图形处理单元(gpu)、专用集成电路(asic)、片上系统(soc)、数字信号处理器(dsp)或任何其他电子设备、系统或布置。在优选示例中,解码器处理设备332被配置成执行每个dct的、各个通道的并行处理,以及各个频率系数的并行编码。同样,虽然示出了单个解码器处理设备332,但是实际上,可提供用于并行地编码其中每个通道的相应的编码器处理设备332,或者可替代地可以使用gpu或者其他类似的并行处理架构。若是有一个通道(例如y通道)未被编码,则该解码器处理设备可能在传送相应数据到解码器输出缓冲器333时引入延迟,以确保仍能与cbcr通道同步。显示设备340包括至少一个微处理器341、存储器342、可选的输入/输出设备343(诸如小键盘或输入按钮)、一个或更多个传感器344、显示器345以及外部接口346,如所示,上述部件经由总线347互相连接。显示设备340可以采用hmd的形式,并且因此设置在适当的外壳中,允许其由用户穿戴,并且包括相关联的透镜,允许观看显示器,如本领域技术人员将认识到的。在该示例中,外部接口347适于经由有线连接将显示设备正常连接到处理系统310。虽然仅示出单个外部接口347,然而这指示为了进行示例,并且实际上可提供使用各种方法(例如以太网、串行端口、usb、无线连接等等)的多个接口。在这个特定示例中,该外部接口通常至少包括数据连接接口(诸如usb)、视频连接接口(诸如displayport、hdmi、thunderbolt等)。使用时,微处理器341执行以应用软件的形式储存于存储器342中的指令,以允许执行所需过程。应用软件可包含一个或更多个软件模块,并可于适当的执行环境(诸如操作系统环境等)中被执行。因此,将认识到,该处理设备可以是任何电子处理设备,诸如微处理器、微芯片处理器、逻辑门配置、可选地与实现逻辑相关联的固件,诸如fpga(现场可编程门阵列)、图形处理单元(gpu)、专用集成电路(asic)、片上系统(soc)、数字信号处理器(dsp)或任何其他电子设备、系统或布置。一般来说,传感器344用于感测显示设备340的定向和/或定位,并且可以包括惯性传感器、加速度计等。可以设置额外的传感器(诸如光传感器或接近传感器),以确定显示设备当前是否被穿戴,同时眼睛跟踪传感器可以用于提供用户注视点的指示。在上述示例中,解码器330和显示设备340被描述为分立的物理实体,但是将认识到,在实践中这不是必须的情况,并且在一个示例中,解码器的功能在显示设备340内的硬件内实现。在一个示例中,该显示设备因此可以是现有的商用显示设备,诸如htcvivetm、oculusrifttm或playstationvrtm头戴设备,然而将认识到,该显示设备并非必要的,且亦可使用任何合适的布置。例如,显示设备可以采用结合到可佩戴头戴设备中的移动电话或其他类似显示设备的形式,其中数字现实内容经由一个或更多个无线网络,从远程计算机(诸如基于云的系统)生成和提供。现在将更详细地描述图像压缩/解压缩过程的操作的示例。出于该示例的目的,假设处理系统310正在执行应用软件,该应用软件生成在显示设备340上显示的内容,该内容基于来自显示设备340上的传感器345以及可选地其他传感器(诸如手持控制器或位置检测系统(未示出),如本领域技术人员将认识到的)的传感器数据动态显示。由处理器311根据作为应用软件存储在存储器312中的指令和/或经由i/o设备313或其他外围设备(未示出)接收的来自用户的输入命令来执行由处理系统310执行的动作。由处理器341根据作为应用软件存储在存储器342中的指令来执行由显示设备340执行的动作。编码器320和解码器340充当处理系统310和显示设备340之间的接口,从而允许图像数据被压缩、无线传输,然后在显示在显示设备340上之前被解压缩,同时还允许传感器数据或其他输入命令数据被传送回处理系统。通常由相应的处理设备322、332基于定义的编程并且在一个示例中是定制的硬件配置和/或嵌入式固件中的指令来执行由编码器320和解码器330执行的动作。然而,将认识到,为了以下示例的目的而假设的上述配置不是必需的,并且可以使用许多其他配置。例如,编码器和解码器的功能可以直接内置在处理系统310和显示设备340中。另外,压缩技术可以应用于各种其他场景,包括在一个或更多个计算机系统上压缩和解压缩图像,而不需要使用独立的显示设备。然而,上述布置对于虚拟或增强现实应用、远程呈现应用等特别有益。现在将参考图4a至图4d更详细地描述压缩和随后解压缩图像数据的方法的过程。在该示例中,在步骤400和402处,编码器320从处理系统310接收代表图像序列中的一个或更多个的图像数据,并将其临时存储在编码器输入缓冲器321中。图像数据例如通过解析数据以识别数据内界定报头的标志、识别图像的起点等被分析,从而允许在步骤404处获取对应于图像数据的下一个8×8像素块的像素数据。在这点上,当缓冲数据时,编码器需要来自图像的初始8×8像素块,以便开始处理。因此,在处理可以开始之前,编码器输入缓冲器321填充有图像的前七行像素以及第八行像素的前八个像素。当接下来的八个像素被接收时,接下来的8×8块可以被处理,这被重复直到图像的前八行中的所有像素都被处理为止。接下来,可以以类似的方式处理下一组八行。在步骤406处,确定一个或更多个图像和/或操作参数。这些参数用于确定应该使用的压缩程度,并且可以用于控制压缩过程的其他方面,诸如是否使用色彩空间转换或缩放。图像的性质和操作参数将根据优选的实施方式而变化,并且还将认识到,这些术语仅用于说明的方便性,而不旨在限制。在一个示例中,图像参数包括像素阵列在一个或更多个图像内的定位。该定位可以是图像内的绝对定位,使得例如图像边缘附近的像素阵列可能需要较少的细节,在这种情况下可以执行更大的压缩。附加地和/或可替代地,相对于定义定位来确定该定位,该定位至少部分地指示用户的注视点。定义定位可以基于实际测量的注视点,以及关于从可佩戴显示设备340中的合适的传感器接收的注视点的信息,或者例如通过假设用户正注视图像的大致中心来确定的预期或预测的用户的注视点,或者基于内容(诸如图像内的焦点、头戴设备的运动等)。另外,所定义的点可以偏离注视点,例如将其定位在注视点之下,以考虑到这样的事实,即个人倾向于在注视点稍微靠下聚焦,以避免在行走时与障碍物碰撞。这可用于使注视点附近区域的压缩程度最小化,同时更远离注视点时增加压缩,在远离注视点的地方用户对图像质量的感知较低。操作参数可以包括显示设备和/或传输系统的操作方面,诸如可用带宽或头戴设备的运动速率。在这种情况下,执行的压缩级别可以取决于可用带宽,其中随着带宽下降,图像质量降低,以确保图像数据的成功传输,而在头戴设备运动的情况下,更快的运动速率通常需要更少的图像细节,但是需要更高的帧速率,这又可以通过增加压缩程度来实现。将认识到,这种操作参数可以根据性质和参数以及特定的实施方式以多种方式确定。这可以包括根据头戴设备或其他显示器确定参数,包括从内置或外部传感器得出的关于运动的信息、从传输系统确定的传输带宽的细节等。在步骤408处,使用操作和/或图像参数来确定一个或更多个编码参数,其中编码参数定义了如何执行编码过程,诸如需要执行颜色转换和/或特定的阈值水平值。编码参数可以以任何合适的方式来确定,诸如使用图像和/或操作参数从查找表中检索编码参数等。在这一点上,查找表通常是预先配置的,并且定义了将用于不同场景的相关值。例如,这通常会为图像中不同的像素块位置定义不同的阈值,然后可以基于操作参数(诸如可用带宽)定义将要应用于阈值的进一步的偏移。像素数据通常采用多通道rgb数据的形式,并且根据由编码参数定义的过程,在步骤410处,可以可选地由处理设备322转换至ycbcr亮度和色度通道。然而,这不是必需的,并且更典型地,如果期望保持尽可能多的图像质量,则像素数据以rgb格式保持。在步骤412处,对每个通道应用2ddct,从而将通道变换到频域。该过程可以使用已知技术来执行,并且在优选示例中,由处理设备322以高度并行的方式来执行,从而降低处理时间。每个通道上的变换过程的结果是具有64个频率系数的8×8矩阵,代表相应图像通道中不同频率系数的幅度。在步骤414处,选择接下来的位值n。位值通常被设置为定义频率系数的值所需的最大位数,根据特定的环境,该最大位数可以包括8、9、10、11或12位或更多位。在图5a的示例中,示出了包括多个频率系数的矩阵,这些频率系数的值可以由不同数量的位定义,包括0到8位,由c0到c8表示。在步骤416处,例如使用图5b所示的之字形遍历路径来遍历系数矩阵,直到达到第一个8位系数c8为止。此时,或者基于0到63之间的代表沿着路径经过的距离的数字,或者使用0到7之间的代表矩阵的行和列的两个值,确定频率系数的位置。将认识到,在每种情况下,位置可以用6位来表示。在步骤420处,创建索引条目,其示例在图5c中示意性示出。在该示例中,索引包括列501、第二列502和第三列503,该列501包括定义当前位数n的条目,该第二列502代表位置,并且该第三列503代表频率系数的值。虽然在该示例中,在索引中包括频率系数的值,但是将认识到,这不是必需的,并且可替代地,可以在单独的数据结构中提供索引和频率值。作为该过程的一部分,频率系数通常经历编码。在这一点上,第一频率系数用7位示出,因为基于第一位必须是“1”的值可以省略该第一位,否则频率系数将会是7位的值。然而,还将认识到,可以采用其他编码方案来进一步降低位数(例如通过缩放等),并且这些过程将不再进一步详细描述。在步骤422处,确定是否达到阈值。阈值可以是位阈值,该位阈值定义了可以针对相应像素阵列编码的位的总数,从而允许严格控制正在生成的压缩的图像数据的总幅度。可替代地,阈值可以是频率系数的数量,这意味着编码了设定数量的系数。假设没有达到总位阈值,则过程前进到步骤424,其中处理设备确定是否还有8位系数c8。如果是,则过程返回到步骤416,以选择接下来的频率系数,从而允许使用以上过程将其添加到索引中。对于图5c所示的示例,将认识到,该循环重复三次,直到8位系数c8中的每一个都已被索引,如行组511所示。一旦给定长度的所有频率系数都被编码,则该过程前进到步骤426,以确定是否已经达到n值的阈值,如果没有,则该过程返回到步骤414,以在针对n值重复步骤416至步骤424之前选择下一个n值。这一直持续到达到n个阈值的总位阈值为止。在图5c的示例中,4的值被设置为n阈值,得出所示的索引结构,其中行组512、513、514分别用于7、6和5位组。因此,将认识到,使用以上定义的过程,递归地搜索系数矩阵,以寻找位数n的连续递减值,直到达到极限。索引和频率系数的得出的位数将取决于频率系数的实际值,对于不同的像素阵列,频率系数的实际值会有极大的变化。对于不同的n个阈值所需的位的总数示例如以下的表1所示。对64个8位字进行编码通常需要512位,因此在这种情况下,明显的是,只要不编码小于4位的频率系数,那么需要编码的位数就会降低。表1n的阈值位数842793618452674451351025611660在实践中,大多数系数矩阵具有数量多得多的具有小值频率系数,因此位数的降低大得多,这意味着在实践中可以实现更大的压缩。图6示出了图示压缩误差幅度的曲线图。具体来说,该曲线图示出了系数矩阵中每频率系数的平均编码位数与平均误差和标准误差的关系。这突出了随着保留的位数的改变,图像质量有平滑的过渡,使得在理解这将对得出的图像质量产生的影响的同时,容易自适应地改变执行的压缩程度。在一个示例中,该方法被实现为对每个块提供具有13-512位之间的索引和编码的频率系数。还将认识到,当矩阵中存在较高位的频率系数(诸如10或12位幅度的频率系数)的时候,所获得的压缩程度相对较高,这意味着对于较高质量的图像,一般来说好处更大。不管获得的相对压缩程度如何,另一个重要的因素在于保留了最重要的频率系数并且尤其是那些具有最高幅度的频率系数,从而使对所得的图像质量的影响最小化。在以上示例中,一旦已经识别出待编码的频率系数的子集,索引过程就停止。然而,将认识到,这不是必需的,并且可替换地,对于所有频率系数幅度,可以遍历整个系数矩阵,从而有效地创建所有频率系数的索引。在这种情况下,可以在创建索引之后应用阈值,使得只有频率系数的所选择的子集被合并到压缩的图像数据中。将认识到,这具有相同的最终结果,因此将不进一步详细描述。一旦编码已经被执行,在步骤428处,通过执行并行到串行字节编码、特别是通过组合对于三个通道中每一个的索引和频率系数,索引和频率系数的编码子集可以被连结成位流。在步骤430处,可以通过解析字节以识别相同字节的子序列来执行额外的编码,然后用这些子序列代替代码以执行代码替换编码。具体来说,这种方法用于识别三个或更多个相同字节的子序列,然后其可以在不丢失任何信息的情况下替换代码。具体来说,对于大多数图像,在得到的编码的频率系数中存在零串,其中缩放系数已经舍入到零。因此,这些可以由解码器可识别的代码替换,从而允许解码器重新插入相同字节的子序列。虽然代码可以采用任何合适的形式,但是在一个示例中,代码包括标识特定字节是代码的报头,以及对应于相同字节的值和数量的信息。在优选的布置中,使用布尔或运算将一个2字节的代码与一行(1-8)中的零的数目相结合。在一个示例中,零的数量以n-1表示,因此0-7的数量与2字节代码进行“或”运算,使得它们仅占据第二字节的3位。例如,使用的代码可以是(11111111;11111000),其中根据零的数量,第二字节与0-7进行“或”运算。将认识到,类似的方法可以用于不同的值。这种方法运行良好,因为编码很少导致值大于或等于248的连续数字,所以解码算法可以仅仅搜索值为255的一个字节以及值大于或等于248的后续字节,将其识别为与编码的频率系数相反的代码。然后,该代码被对应于具有由第二字节的最后3位表示的零序列的数量的数据的字节替换。基于迄今为止的测试,在位编码阶段之后,这可以导致数据进一步降低19-25%。在执行了代码替换之后,在步骤432处可以输出压缩的图像数据。具体来说,压缩的图像数据通常存储在输出缓冲器323中,直到存在足够的数据,此时由收发器324创建数据包并将其传输到编码器。在步骤434处,解码器330经由收发器334接收压缩的数据,将其存储在解码器输入缓冲器331中。如上所述,在步骤438处执行串行到并行字节编码以便针对三个颜色通道中的每一个重建索引和频率系数之前,在步骤436处解析数据以识别数据中的代码,其中用重复的相同字节的子序列代替这些代码。在步骤440处,执行选择性位解码,特别是解码每个编码的频率系数。将认识到,在其最简单的形式中,这简单地包括将“1”位添加到编码的频率系数中每一个的起点。然后,基于索引中标识的位置,将解码的频率系数插入到频率系数矩阵中。对于矩阵中的任何空白空间,在步骤444处应用逆2ddct变换之前,这些空间由空值填充。如果必要的话,在步骤446处,将对于每个ycbcr通道的变换矩阵转换成rgb通道,从而允许在步骤448处输出8×8像素块,允许显示设备340渲染该块。因此,上述过程允许显著降低对每个8×8像素块以及因此的整体图像进行编码所需的图像数据量。具体来说,这是通过选择性地编码具有最大幅度的频率系数、优先编码这些系数并将其与索引一起传输以允许系数矩阵被重新生成来实现的。这极大地增加了可以执行的编码的灵活性,尤其是优化了在逐块基础上执行的压缩。优化是基于块的内容自动执行的,尤其是基于频率系数的幅度选择频率系数,这意味着默认选择更重要的频率系数。另外,频率系数的数量或被编码的位数的选择可用于控制所得压缩的幅度。这允许考虑图像中块的定位以及显示和/或传输系统的操作参数来执行压缩。这使得能够执行中央凹压缩,以及基于硬件的当前操作来优化压缩,例如基于可用传输带宽来优化压缩。因此,上述布置提供了有效的dct动态位编码和索引方案,该方案特别适用于诸如流传输无条带的高质量视频的应用,例如用于数字现实应用,诸如虚拟现实和增强/混合现实应用。传统的dct压缩(诸如jpeg压缩)通过如下方式操作:在频率系数矩阵中保留较低的频率系数,丢弃处于特定级别的较高的频率系数,而不管这些频率系数的幅度。通过以降低精度为代价来缩放系数,可以实现进一步的压缩。这种方法在数字现实应用中往往是次优的,在数字现实应用中,图像是动态的,具有变化很大的内容。具体来说,这种压缩方法往往会导致条带问题。因此,上述方法通过寻求保持dct系数的精度、特别是通过在dct矩阵中保留较大的值来避免这个问题,这在最终图像的质量中起着更重要的作用,并且上述方法可选地寻求通过使由色彩空间转换(例如从rgb到ycbcr以及返回到rgb)导致的精度损失最小化来提供进一步的改善。在这一点上,由于不可能预先知道较大幅度系数的位置,所以识别到最大幅度系数,并生成索引,以识别这些系数在矩阵中的位置。该索引可以作为压缩的图像数据的一部分来传送,并用于在解压缩期间重建矩阵,从而避免较大幅度分量的损失。这与传统方法相反,传统方法聚焦于保留较低的频率系数,而丢弃较高的频率系数,这进而会导致较高幅度频率系数的损失。特别是在条带化的情况下,上述方法避免了较高幅度系数的损失,从而降低了条带化效应,其中通过避免颜色转换步骤的精度损失,实现了进一步的改善。虽然避免颜色转换步骤是可选的,但它是为了完整性而呈现的,并且一般来说,它的包含将取决于特定的实施方式以及颜色转换是否是强制性的。例如,许多图像处理系统具有rgb<->ycbcr转换过程,因此可能需要颜色转换步骤。另外,转换到交替颜色空间有助于压缩,从而允许色度通道比亮度通道被压缩得更多,因此如果需要进一步压缩,这可能是有益的。然而,根据转换的像素的表示(例如:如果将8位转换为8位整数),转换到交替颜色空间会导致精度损失,并且会导致一些用户可见的条带,因此颜色空间转换通常不是优选的。为了保留较大幅度的频率系数,该系统采用优先化和索引框架,其中首先发送最重要的系数,然后是越来越不重要的系数,其中基于诸如所需的压缩程度、可用带宽等因素来控制传输的系数的数量。因此,这种方法允许根据应用增加或减少每像素阵列的位数,而结果是以最少的位数发送最重要的值。这对本文档中描述的不同应用示例有重要的好处。该方法通常包括从最高位值的数(例如8位数)开始,在系数矩阵中从级别1开始通过整个表搜索这些值,通常遵循之字形图案。对于每个频率系数,数字被编码,并创建索引位来表示频率系数的位置。作为该过程的一部分,由于每个识别的频率分量具有定义的位数,因此可以去除有效位来保存位,例如将8位数编码为包括符号的7个位。在所有最高位数被编码后,这个过程可以对较低位值的数(即:7、6、5、4、3、2)依次重复,对表中的所有数字进行编码而不丢失任何精度。下面列出了对于一种可能实现的伪代码。循环(对于每个位数8到2位重复);7循环;n=8到2a.在系数2-64(所有级别)中查找+/-<(2^n)且>=(2^(n-1))的数(查找dct矩阵中的所有n位数)i.为此,对向量进行比较,并根据值是否存在,将得出的向量设置为0或1(有效表向量)ii.如上所述,ac系数是+/-,因此在没有符号位的情况下执行检查,然后将该位包括在表示中iii.将符号位存储为单独向量可能是有用的b.获取值的数量(表示为m-1)[6位]i.如果没有找到值,将[0](1位)附加到输出,并移动到下一个循环迭代c.生成索引(0-63)[6位],根据系数的以下顺序,定义向量中的定位:i.执行之字形遍历,以列出向量形式的系数,从而创建用于查找的表,该表可以支持所有带符号数字的索引ii.取向量,并且从第二值(第一ac系数)开始,并且创建63值长的数(int16类型)d.数据:i.将数据存储为(value-1)[大小为n-2位]ii.注意:数据从顶部(第一个)位去除,因为它总是设置顶部位iii.注意:对于2位数,没有发送数据位,只有可以在解码侧创建+/-1值的符号位e.打包数据i.[1(找到数据)][数值-1(6位)][第一索引(6位)][第一符号位(1位)][第一数据(n-2位-6、5、4、3、2、1位)]…[最后的有效索引(6位)][最后的符号位(1位)][最后的数据(n-2位-6、5、4、3、2、1)]f.对数字位值8到2重复在编码之后,可以传输最高有效频率分量,同时可以丢弃不同数量的较低有效频率分量,以获得显著的压缩程度。将认识到,这允许根据待实现的压缩率来调整传输的频率分量的数量。还将认识到,多种方法可以用于以上以及通过通信介质发送的位的后续分组。具体来说,以上允许实现固定或动态位编码方案。固定的情况使用预定义的规则来提供每像素阵列要发送的位数的输出,其中超出该范围的位将被丢弃。这方面的示例包括基于像素阵列离用户眼睛定位的距离来保留每像素阵列的固定位数。这可用于提供中心凹压缩。相反,动态编码使用关于位编码过程的信息,其中每个像素阵列由需要多少位完全代表像素阵列来代表,例如取决于像素阵列内容的复杂性。在这种情况下,每个像素阵列可以被动态地编码,使得更复杂的像素阵列被给予比其他像素阵列更多的位分配。现在将更详细地描述使用修改量阵列来减少条带化的示例。出于说明的目的,下面的示例将讨论对单个图像的影响,然而将认识到,这可以应用于单个离散图像或形成运动视频的帧的图像,该运动视频将经历有损压缩和解压缩,例如用于以比原始视频更低的数据速率传输压缩视频的目的。此外,为了简化文档,将针对4x4像素块给出示例,但是该方法可以应用于任何块大小。在代表每颜色分量具有n位的像素的典型显示器的情况下,颜色分量的值只能以全范围的1/2n的离散步长(step)为单位变化。当在单个图像中并排观察两个颜色区域时,人眼可以注意到值的这种离散变化,即可见的步长或条带。在图像中包含较大区域的缓慢颜色淡入淡出的区域中,离散像素值之间的步长会导致眼睛可视的颜色条带出现,即所谓的条带伪像。为了避免出现条带伪像,从一个像素值到另一个像素值的过渡经常被抖动,这打破了从一个值到另一个值的过渡的尖锐边缘。这导致图像以增加的噪声为代价降低了可见条带伪像,结果是整体上感知的视觉质量更高。然而,有损图像压缩和解压缩通常会导致高频信息的丢失,这意味着相邻像素值之间的微小差异会丢失。在考虑到图像的小正方形区域的基于块的压缩方案中,像素之间的小差异可能丢失,这导致整个块被解码为对于所有像素具有相同的值。这具有消除或平均掉加到源图像上的抖动噪声的效果,导致条带伪像的再现。另外,像素值的变化往往与块边界对齐,这导致可见的块伪像以及条带伪像。为了避免这种区域在图像中被注意到,当前的方法使用修改来调整像素值,这进而导致块中的一些像素被设置为稍高或稍低的值,以重新创建抖动效果并打破明显的视觉边界。在一个示例中,这是通过在输出像素值被量化为它们的最终表示之前,在图像数据被解压缩的同时向图像数据添加伪随机噪声来实现的,然而将认识到,可以使用任何合适的修改。修改量阵列通常是图像上的固定图案,对于不同的块是不同的,但是对于视频的每一帧,图像上的固定图案是相同的。实际上,这可以使用线性反馈移位寄存器来实现,用被解码的块的屏幕坐标来初始化。该移位寄存器的输出可用于在rom中查找值,以调整添加到被解码像素的伪随机值的统计分布。图7a至图7c图示了有损压缩对块中像素值的正常影响。图7a中所示的源块具有的大部分像素值为1,其中少数像素值为2。在有损压缩期间,关于值2像素的位置的信息丢失,其中对于所有像素的平均值被保留,如图7b所示。在最后阶段,像素值必须被舍入(量化)为整值,从而产生图7c所示的最终块,其中所有像素具有相同的值。相反,在当前的方法中,在如图8c所示的解压缩期间使用修改量阵列来修改像素值。为了实现这一点,图8a的原始像素阵列如前所述被压缩,如图8b所示。然后将所得的阵列与图8c的修改量阵列组合,以创建修改的像素阵列,如图8d所示,其中一些像素值增加,而另一些像素值减少。执行量化后,最终像素阵列包含与阵列中其他像素不同的一些像素值。这种情况对边界的影响如图9a至图9d所示。具体来说,在该示例中,跨越边界的四个像素阵列的序列在图9a中示出。这些值在压缩期间进行平均,得出图9b所示的压缩阵列。执行传统的解压缩方法,这些压缩阵列被量化,产生如图9c所示的明显的边界。相反,应用上述修改方法工作会破坏边界,如图9d所示。因此,该方法可以与前面描述的方法结合使用,或者独立于前面描述的方法使用,以便减轻由图像压缩导致的条带化。如前所述,在一个示例中,上述技术可以结合频率系数的缩放来执行,其中这优选地被执行,使得针对每个像素块动态地调整压缩程度。现在将参考图10a和图10b更详细地描述该方法的示例。在该示例中,在步骤1000处,从图像数据中获得像素数据,其中该像素数据代表在一个或更多个图像内的像素阵列。像素数据可以以任何适当的方式获得,如上文例如关于步骤100所述。在步骤1005处,确定目标压缩程度。这指示了所需的压缩程度,并且可以与关于先前像素块的压缩的信息一起使用,以在步骤1010处选择位编码方案,该方案随后可以用于编码一个或更多个像素块,这将在下面更详细地描述。在步骤1015处,对像素数据应用变换,以确定频率系数的集合,该频率系数指示了像素阵列的频率分量。这通常是通过执行如前面例如关于步骤110所描述的2ddct来实现的。在步骤1020处,编码频率系数。频率系数可以被编码,使得频率系数的子集被选择,以便使被编码的频率信息的有效性最大化,通常通过选择具有最高幅度的频率系数来最大化。附加地和/或可替代地,可以通过缩放频率系数来执行编码。在这一点上,通常,许多位编码方案通过执行频率系数的缩放和选择性编码来操作。然而,还将认识到,根据所需的压缩程度,在一些示例中,位编码方案可以仅执行频率系数的缩放,或者可以仅执行所选择的频率系数的编码,这取决于优选的实施方式。在步骤1025处,生成索引,该索引至少部分地指示所选择的位编码方案,并且可选地指示缩放因子和/或已经被选择和编码的频率系数。在这一点上,将认识到,可以以类似于前面概述的方式生成索引。在步骤1030处,生成压缩的图像数据,然后根据需要例如通过将压缩的图像数据传输到解码系统来提供压缩的图像数据,该解码系统在步骤1035处接收压缩的图像数据,并在步骤1040处操作以解码频率系数。为了实现这一点,解码器将从压缩的图像数据中确定索引,并使用该索引来识别在压缩期间使用的位编码方案。随后,在步骤1045处,这允许解码器生成频率系数的集合,并且如果需要,可选地应用缩放因子来对频率系数进行缩放。在此之后,在步骤1050处可以应用逆2ddct变换,其中这被用于在步骤1055处生成图像数据。因此,将认识到,上述布置提供了一种机制,以便基于目标压缩程度阵列目标来动态压缩单个像素阵列,使得像素块可以基于多种位编码方案中的一种来进行差异性编码,这允许执行频率系数缩放或选择性频率系数编码中的一种或更多种,以便保持整体目标压缩,同时优化所得的图像质量。以下说明更多其它特征。位编码方案可以以多种方式中的任何一种来选择,并且通常这考虑到对于多个先前像素阵列的累积的位总数。在一个特定示例中,这考虑到对于图像的累积位总数和目标压缩程度或目标位速率。因此,在这种情况下,可以计算设定数量的先前像素阵列的位的总数(诸如10、50、500、1000、5000、10000等),然后定制对于当前像素阵列的压缩以确保保持整体位速率。也可以以类似于前述的方式,基于其他因素(诸如像素阵列在一个或更多个图像内的定位、从显示设备接收的显示数据、指示无线通信链路的操作的通信链路数据、指示显示设备的配置的配置数据或者指示与一个或更多个图像相关联的数字现实内容的内容数据)来调整目标压缩程度。由此将认识到,这允许根据整体目标位速率以及诸如像素阵列在图像中的位置、可用通信带宽等因素来调整对于单个像素阵列和/或像素阵列组的压缩程度,从而确保通过优化每个像素阵列上使用的压缩来实现足够的整体压缩。在一个特定示例中,确定多个先前像素阵列的累积位总数,如果累积位总数超过累积位总数阈值,则确定对于多个先前像素阵列的压缩程度,其中使用压缩程度和目标压缩程度来选择位编码方案,然而将认识到,可以使用其他方法。尽管上述过程可以如上所述仅通过编码频率系数的子集来执行,但是附加地和/或可替代地,这可以通过用缩放因子缩放频率系数来实现。在一个优选示例中,这两种方法都与被缩放的频率系数结合使用,然后根据缩放系数的幅度,对缩放的频率系数的所选择的子集进行编码。在一个特定示例中,该方法包括识别最高幅度频率系数,计算将最高幅度频率系数降低到目标位数所需的最小缩放因子,然后使用最小缩放因子或较大的缩放因子缩放频率系数。这可以用于例如确保所有频率系数被降低到七位或更小的幅度,其中选择最高幅度系数来形成压缩的图像数据,然而将认识到,系数矩阵中的第一系数(通常被称为dc系数)可以被排除在该过程之外,从而允许dc系数被无缩放地传输,例如作为八、九、十或十一位数,这取决于优选的实施方式。例如通过降低条带化的影响保留dc分量不被缩放可以显著改善所得的图像质量。在一个特定示例中,通过选择多个位编码方案中的一个来实现上述过程,其中每个位编码方案定义可用的缩放因子和一个或更多个位阈值。在该示例中,随后使用至少是最小缩放因子的可用的缩放因子之一来缩放频率系数,然后根据位阈值对缩放后的频率系数进行编码,例如通过仅编码具有比位阈值更多位的频率系数和/或丢弃具有比位阈值更少位的缩放频率系数。因此,将认识到,在该示例中,位编码方案定义了位阈值和缩放因子的组合,其可以用于实现不同的压缩程度。然后可以基于阵列目标来选择用于任何单个像素阵列的位编码方案,这又取决于对于多个先前像素阵列的累积位总数。在一个示例中,每个位编码方案定义了对于不同颜色通道(尤其是对于亮度和色度通道)的各自位阈值。一般来说,这包括与亮度通道相比对于色度通道的更高位阈值,从而丢弃与亮度通道相比对于色度通道的更多的频率系数。这有助于保存图像中由观看图像的个人感知的信息,从而保持图像质量。另外,如前所述,当转换颜色通道并生成频率系数时,一般来说,使用更高的精度级别来处理系数,例如使用10位来编码8位系数,从而避免舍入的不准确性。因此,在一个示例中,该方法包括对像素数据应用变换,计算最小缩放因子,选择位编码方案,缩放频率系数,然后根据对于相应颜色通道的位阈值,对缩放的频率系数的子集进行编码。在一个优选示例中,该方法包括从有序列表的位编码方案中选择位编码方案,其中,列表被排序,以提供逐渐增加的压缩。这允许基于所需的压缩程度进行初始位编码方案选择,根据满足阵列目标所需的压缩,针对不同的块组改变所选择的方案。压缩的逐渐增加通常通过增加可用的缩放因子的幅度、降低最低可用的缩放因子和逐渐增加的位阈值来实现。可以使用的缩放因子可以是一、二、四或八中的任何一个或更多个,然而将认识到,可以适当地选择其他因子。类似地,位阈值可以是一、二、三、四、五或六中的任何一个或更多个,然而也可以根据特定实施方式来使用其他阈值。将认识到,上述技术可以利用与以上关于图1a至图10描述的特征和硬件类似的特征和硬件来执行,因此这些特征将不再进一步详细描述。现在将参考图11a至图11d和图12a至图12e描述编码方法的更具体的示例。在该示例中,在步骤1100处接收图像数据,并且在步骤1110获取接下来的8×8像素块(阵列)之前,在步骤1102处缓冲该图像数据。将认识到,这些步骤基本上类似于在图4a至图4d的示例中在步骤400至步骤404处执行的那些步骤,因此将不再进一步详细描述这些步骤。在获取像素阵列之前,在步骤1104处,可选地确定对于多个先前像素阵列的当前压缩程度,其中例如在设定数量的像素阵列已经被编码之后,或者当累积位总数(用于编码多个先前像素块的位总数)达到阈值时,执行该步骤,这将在下面更详细地描述。在步骤1106处,确定目标压缩程度,该压缩程度代表对于当前图像或图像当前部分的压缩应该保持的平均压缩率。目标位速率可以基于各种因素来设置,但是最典型的是基于编码器和解码器之间的无线通信链路的传输能力来设置,并且特别是基于可用带宽、延迟和/或所需的服务质量,但是也可以基于当前像素阵列在图像中的定位(例如,压缩图像的外围部分多于图像的中心焦点部分)。在步骤1108处,选择位编码方案。具体来说,从有序列表中选择接下来的位编码方案,其中基于当前压缩程度是高于还是低于目标压缩程度来选择方案,以提供比先前所选择的方案更多或更少的压缩。在这一点上,位编码方案列表通常包括提供逐渐变高压缩的位编码方案的列表,使得朝向列表顶部的方案具有最小的缩放因子,而对于列表中稍后的方案,缩放因子增加。因此,可以根据需要,通过向上或向下沿列表移动来选择接下来的方案。以下的表2中陈述这种列表的示例。在这种情况下,假设选择了位编码方案8或更高,那么将使用缩放参数4或8,以便允许实现期望的缩放。表2编码方案位阈值缩放因子101、2、4、8211、2、4、8321、2、4、8402、4、8512、4、8722、4、8804、8914、8一旦选择了位编码方案并获取了像素阵列,以类似于前面关于步骤410和步骤412描述的方式,在步骤1112处将rgb通道转换成亮度和色度通道,并在步骤1114处对每个通道应用2ddct。在步骤1116处,对每个系数矩阵内的频率系数进行排序,并在步骤1118处将其用于识别最高幅度频率系数。然后在步骤1120处,通过计算所需的缩放因子来确定最小缩放参数,以便将最高幅度系数的幅度降低到设定数字以下。具体来说,在一个优选的示例中,这被实现成将最高幅度系数的幅度降低到127以下,使得这可以使用七位来编码。然而,将认识到,根据优选实施方式,可以使用63或更低的替代数字。在步骤1122处,通过首先缩放频率系数,然后选择缩放的频率系数以供编码,对频率系数进行编码,在步骤1124处这被用于创建索引条目。在步骤1126至步骤1130中,可以执行并行到串行字节编码和可选的代码替换,从而允许以类似于以上关于步骤428至步骤432描述的方式输出压缩的图像数据。在步骤1132处,确定对于多个先前像素阵列的累积位总数,这用于在步骤1134处评估是否已经超过累积位总数阈值。如果没有超过,则过程返回到步骤1110,以获取接下来的像素阵列。否则,过程返回到步骤1104,以确定压缩率并选择如上所述的位编码方案。因此,从中将认识到,在已经创建了一定数量的压缩位之后,选择新的位编码方案。此时,查看这些块的累积压缩率,并重新选择位编码,从而允许在需要时进行更改。将认识到,这允许对多个块进行编码,其中基于生成的压缩的图像数据的总量,动态更新位编码方案。因此,对于实现较少压缩的图像区域,位编码方案可以更快地切换,以帮助确保所选择的方案是最优的。一般来说,选择累积位总数阈值,使得在无线分组的大小内,位编码方案改变几次,以控制将通过无线系统发送的位速率,并确保没有峰值或压缩率的很大变化。然而,可替代地,在已经处理了设定数量的块之后,可以重新选择位编码方案。这可以包括单个块,然而系统通常不太稳定,因此通常会使用更多的块。在步骤1136处,解码器接收压缩的图像数据,在步骤1138和1140处以类似于以上关于步骤434至步骤438描述的方式执行可选的代码替换和串行到并行字节编码。在步骤1146处使用缩放因子缩放重建的频率分量之前,在步骤1142和步骤1144处,以类似于以上关于步骤440和步骤442描述的方式执行选择性位解码和系数矩阵的重建。随后,以类似于以上关于步骤444至步骤448描述的方式,在步骤1148处可以对频率系数应用逆变换,在步骤1150处色度和亮度通道被转换成rgb通道,并且在步骤1152处输出8×8像素块。在图12a至图12h中示出这种方法的示例结果。具体来说,图12a示出了包括两个图像区域1201、1202的示例图像,其形式为横跨图像延伸的带。在图12b中,示出了在整个图像中图像被针对连续块逐渐压缩时的整体压缩率。在这一点上,值得注意的是,最初压缩率约为0.76,随着图像上的压缩进行,压缩率逐渐增加并平均为约0.805。图12c示出了所使用的位编码方案的变化,图12d示出了对于每个像素块的所得的压缩级别。这展示了位编码方案如何随着块被压缩而改变,并且突出了位编码方案1至4优先用于编码图像的天空区域,同时对于每个像素块的压缩保持被限制在0.75和0.9之间的范围。图12e和图12f以及图12g和图12h分别示出了带1201、1202的压缩。具体来说,这表明天空优先使用位编码方案1至4来压缩,而岩石通常使用压缩方案4至7来压缩。在该特定示例中,位编码方案1至4通常使用较少的缩放,如果需要,通过丢弃频率分量来实现压缩。其原因在于天空区域往往具有相对恒定的颜色和饱和度,这意味着频率系数矩阵由具有一般来说较小值的频率系数形成,但是在整个矩阵中具有相对恒定的值。因此,仅最小缩放就足以提供必要的压缩,而不需要省略频率系数。相反,在压缩带1202中的岩石特征时,图像内容有很多变化,这意味着存在高幅度频率系数,使得缩放需要更积极。通过降低块之间颜色变化最小的区域的缩放,这显著降低了使用更传统的压缩技术获得的条带伪像。然而,通过动态调整所使用的位编码方案,系统能够保持整体期望的压缩程度,同时允许以最适当的方式压缩不同类型的内容,从而避免压缩伪像,并因此保持图像质量。在所有上述示例中,系数矩阵中的第一系数(通常被称为dc系数)可以被排除在该过程之外,从而允许dc系数作为八、十或十二位数传输,这取决于优选的实施方式。在整个本说明书和跟随的权利要求中,除非上下文另有要求,否则措辞“包括(comprise)”以及变型例如“包括(comprises)”或“包括(comprising)”,将被理解为暗示包括陈述的整数或整数的组或步骤但不排除任何其他的整数或整数的组。如本文所用且除非另有说明,术语“大约”是指±20%。必须注意的是,除非上下文另外明确指示,否则如说明书和所附权利要求中使用的单数形式“一(a)”、“一(an)”和“该(the)”包括复数指示物。因此,例如,对于“处理系统”的提及包括多个处理系统。在本说明书中以及在所附的权利要求书中,将引用许多术语,除非相反的内涵明显,否则这些术语应被定义为具有以下含义。本领域的技术人员将认识到,多种变型和修改将变得明显。对本领域的技术人员变得明显的所有的这样的变型和修改应当被认为落在描述之前本发明宽泛地表现的精神和范围内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1