数据装载阶段数据压缩工具的制作方法

文档序号:13809847阅读:195来源:国知局
数据装载阶段数据压缩工具的制作方法

相关申请的交叉引用

本申请要求于2015年6月12日提交的题目为“data-chargephasedatacompressiontool”的美国专利申请14/738,253的优先权,为了所有目的在此将该申请通过引用并入本文,如同在本申请中完全阐述一样。



背景技术:

图像传感器广泛应用于诸如数字照相机的设备以产生数字图像。在图像传感器中使用模数转换器(adc)以将模拟信号转换为数字信号。更具体地,adc将来自像素阵列的模拟像素信号转换为数字数据。压缩技术可以用于压缩表示图像的数字数据以及保持图像的质量。



技术实现要素:

实施方式一般涉及数据装载阶段数据压缩,以及涉及基于预先确定的输出区域模数(ad)编码或捕获顺序的由区域ad传感器捕获的图像像素数据的压缩。在一些实施方式中,一种装置包括一个或多个处理器,以及包括编码在一个或多个有形介质中的逻辑,该逻辑用于由一个或多个处理器执行并且当被执行时可操作以执行包括以下操作的操作:针对图像数据计算预测值,其中图像数据为数据装载阶段数据,其中预测值的计算是基于块间预测的,并且其中附加比特预算被分配给图像数据的第一块;基于预测值来计算残余数据;对残余数据进行量化;对量化的残余数据进行熵编码;以及基于残余数据中的一个或多个以及熵编码之后一定数量的剩余比特预算来对逆量化的残余数据进行细化。

在一些实施方式中,一种编码在一个或多个非暂态计算机可读介质中的软件,用于由一个或多个处理器执行。当被执行时,该软件可操作以执行包括以下操作的操作:针对图像数据计算预测值,其中图像数据为数据装载阶段数据,其中预测值的计算是基于块间预测的,并且其中附加比特预算被分配给图像数据的第一块;基于预测值来计算残余数据;对残余数据进行量化;对量化的残余数据进行熵编码;以及基于残余数据中的一个或多个以及熵编码之后一定数量的剩余比特预算来对逆量化的残余数据进行细化。

在一些实施方式中,一种方法包括针对图像数据计算预测值,其中图像数据为数据装载阶段数据,其中预测值的计算是基于块间预测的,并且其中附加比特预算被分配给图像数据的第一块。该方法还包括基于预测值来计算残余数据。该方法还包括对残余数据进行量化。该方法还包括对量化的残余数据进行熵编码。该方法还包括基于残余数据中的一个或多个以及熵编码之后一定数量的剩余比特预算来对逆量化的残余数据进行细化。

对本文所公开的具体实施例的本质和优点的进一步理解可以通过参考本说明书的剩余部分以及附图来实现。

附图说明

图1示出了可以用于本文所描述的实施方式的区域模数转换器(adc)的框图。

图2示出了根据一些实施方式的示出来自基于相关双采样(cds)的操作的数据的示例图。

图3是根据一些实施方式的示例数据压缩器的框图。

图4示出了根据一些实施方式的用于压缩图像数据的示例方法的流程图。

图5a示出了根据一些实施方式的示例d阶段数据的框图。

图5b-图5e示出了根据一些实施方式的示例子样本编码块的框图。

图6a示出了根据一些实施方式的示例输入图片的框图。

图6b和图6c示出了根据一些实施方式的示例子图片的框图。

图7a示出了根据一些实施方式的示例输入图片的框图。

图7b和图7c示出了根据一些实施方式的示例子图片的框图。

图8示出了根据一些实施方式的示例输入图片的框图,其中编码顺序为光栅顺序。

图9示出了根据一些实施方式的示例输入图片的框图,其中编码顺序为z字形(zigzag)顺序。

图10示出了根据一些实施方式的示例输入图片的框图。

图11示出了根据一些实施方式的示例数据压缩结果的框图。

图12示出了可以用于本文所描述的实施方式的示例计算系统的框图。

具体实施方式

实施方式一般涉及数据装载阶段数据压缩。如下面更详细地描述的,实施方式采用基于块间预测的技术用于数据装载阶段(d阶段)数据,诸如区域模数(ad)传感器的数据装载阶段数据,的数据压缩。

如下面更详细地描述的,装置将比特率偏置编码应用到图像数据的第一块中。换句话说,与来自随机访问单元的图像数据的后续块相比,该装置向该图像数据的第一块分配附加的或更高的比特率/比特预算。

在各种实施方式中,装置针对图像数据计算预测值,其中该图像数据为数据装载阶段数据,并且其中预测值的计算是基于块间预测的。该装置还基于预测值来计算残余数据。该装置还对残余数据进行量化。该装置还对量化的残余数据进行熵编码。该装置还基于残余数据中的一个或多个以及熵编码之后一定数量的剩余比特预算来对逆量化的残余数据进行细化。结果,与基于内部预测的技术相比,主观性能和客观性能均有所改进。

图1示出了可以用于本文所描述的实施方式的示例区域模数转换器(adc)100的框图。区域adc100包括生成预装载阶段(p阶段)数据和数据装载阶段(p阶段)数据的像素的区域或块102。

在各种实施方式中,区域adc100在块102中执行并行处理。为了便于说明,以方形示出块102。在各种实施方式中,块102可以为任何形状,诸如长方形、圆形等。

在各种实施方式中,区域adc100的稳定时间可以显著地减少,其中稳定时间可以是传感器一旦开启后达到稳定输出的时间。这种减少的稳定时间对于高速照相机是有益的。

图2示出了根据一些实施方式的示出来自基于相关双采样(cds)的操作的数据的示例图200。在各种实施方式中,基于cds的操作涉及p阶段数据和d阶段数据两者。区域adc100执行cds作为降噪技术,其中cds数据由d阶段数据与p阶段数据之间的差异生成。cds数据反映了图像中噪声的消除。

从编解码器的角度来看,区域adc100存储p阶段数据,因为获取p阶段数据和d阶段数据的时机是不同的。例如,区域adc100获取p阶段数据和存储p阶段数据。当区域adc100获取d阶段数据时,adc100可以随后提取p阶段数据,并且执行cds以便消除噪声。如下面更详细地描述的,p阶段压缩是所期望的,并且因此被执行。

图3是根据一些实施方式的示例数据压缩器300的框图。在各种实施方式中,数据压缩器300可以是图1的区域adc的一部分。如图所示,数据压缩器300包括预测单元302、量化器304、熵编码器306和细化单元308。下面结合图4更详细地描述针对数据压缩器300的操作的示例实施方式。

虽然可以在图像数据的上下文中描述本文所描述的实施方式,但是这些实施方式和其他实施方式也适用于非图像数据。例如p阶段数据主要为非图像数据或噪声。本文所描述的实施方式可以适用于由非图像数据或噪声组成的p阶段数据的压缩,以及适用于由图像数据组成的d阶段数据的压缩。

在各种实施方式中,区域adc100可以以两种模式进行操作。第一种模式,也是这两种模式中较简单的,被称为脉冲编码调制(pcm)。第二种模式被称为差分脉冲编码调制(dpcm)。在各种实施方式中,1比特信号(例如,比特0或比特1)指示应用哪种模式。

关于pcm模式,区域adc100按从最高有效比特(msb)到最低有效比特(lsb)的顺序发送每个比特平面,直到使用了所有比特预算。在一些实施方式中,区域adc100可以执行未编码比特的中间点重建。在一些实施方式中,pcm模式可以应用于随机访问(ra)像素阵列,其中每个块是被随机访问的。换句话说,可以独立地访问每个块,并且独立地对每个块进行编码和/或解码,其中不依赖于周围的块。

在示例实施方式中,给定像素块为8×1块或8×1像素。该像素块可以为任何大小(例如,4×4等)。在这一示例中,块为8×1像素。在这一示例中,对于8个像素中的每一个,存在12比特深度(比特平面)。每个像素为12比特并且将被压缩为6比特,但是依据具体实施方式可以被压缩为任何其他数量的比特(例如,4比特等)。

如果需要编码从12比特深度变为6比特深度,则每个样本的8×12比特或96比特变为每个样本的8×6比特或48比特。结果,8×1块将用48比特(而不是96比特)进行编码。

在一些实施方式中,区域adc100首先计算比特预算。具有48比特预算的情况下,1比特用于指示pcm模式。因此在这一示例中,剩余47比特。区域adc随后去除报头比特。区域adc100随后从msb到lsb对每个块进行编码,直到用尽比特预算。在一些实施方式中,区域adc100随后执行中间点重建以便最小化误差。

下面结合图4更详细地描述dpcm模式的示例实施方式。

图4示出了根据一些实施方式的用于压缩图像数据的示例方法的流程图。参照图3和图4,该方法在块402中启动,其中数据压缩器300针对图像数据计算预测值。在各种实施方式中,该图像数据为数据装载阶段数据。图像数据被划分为块,并且数据压缩器300针对图像数据的每个块计算预测值,并且基于块间预测来计算预测值。换句话说,数据压缩器300基于比较第一块的样本和第二块的样本来计算预测值。

如下面更详细地描述的,与来自随机访问单元的图像数据的后续块相比,数据压缩器300向该图像数据的第一块分配附加的或更高的比特率/比特预算。

如下面更详细地描述的,在各种实施方式中,预测值的计算是基于不同块中的相同位置的样本数据的。例如,预测值的计算可以是基于先前块中的相同位置的样本数据的。

再次参照图4,在块404中,数据压缩器300基于预测值来计算残余数据。

在块406中,数据压缩器300对残余数据进行量化。在各种实施方式中,数据压缩器300基于量化值来对残余数据进行量化。在各种实施方式中,数据压缩器300确定在比特流中发送的模式判定过程中的量化参数(qn)。在一些实施方式中存在两种可能的技术,下面将更详细地描述这些技术。

关于第一种技术,在一些实施方式中,数据压缩器300选择预先确定的量化值(qn)。各种实施方式是可能的。例如在一些实施方式中,量化值可以基于预先确定的比特深度。在一些实施方式中,数据压缩器300可以从范围从预先确定的数字(例如,0、1、2等)到预先确定的比特深度的一组量化值中选择量化值。例如,如果预先确定的比特深度为12,则量化值可以为0至11(12个可能的量化值)。在另一个示例实施方式中,量化值可以基于2n的q步长,其中n=1、2、3、4等。在一些实施方式中,在报头(header)中可以用4比特来标志量化值。数据压缩器300测试不同的量化值。

关于第二种技术,在一些实施方式中,数据压缩器300从一个或多个预先确定的量化值中选择量化值。例如,可能存在最常被选择的1个或2个量化值。这种量化值可以依据具体实施方式而变化。模式判定可以比较这2种预先确定的量化值。因此,这一技术简化了模式判定过程。此外,仅需要1比特在报头中标志量化值。

在块408中,数据压缩器300对量化的残余数据进行熵编码。在一些实施方式中,数据压缩器300基于golomb编码(例如,指数golomb编码、渐进golomb编码等)进行熵编码。依据具体实施方式,可以使用其他熵编码。

在块410中,数据压缩器300对量化的残余数据的逆进行细化。在一些实施方式中,数据压缩器300基于残余数据中的一个或多个以及熵编码之后一定数量的剩余比特预算来对逆量化的残余数据进行细化。例如在一些实施方式中,数据压缩器300执行中间点重建,并且将残余数据添加到预测值中。

虽然数据压缩器300被描述为执行本文实施方式中所描述的步骤,但是区域adc100的任何合适的部件或部件的组合或与区域adc100相关联的任何合适的一个或多个处理器、和/或数据压缩器300、和/或任何合适的系统都可以执行所描述的步骤。

图5a示出了根据一些实施方式的示例d阶段数据500的框图。在各种实施方式中,d阶段数据500是来自诸如区域adc100的区域adc的d阶段图像数据。

在各种实施方式中,d阶段数据500基本上与原始bayer图像相同。不像p阶段数据,d阶段数据具有高得多的动态范围并且存在更强的空间相关性。来自原始bayer的d阶段数据500的主要差别包括以下内容。每个块不由bayer图像的连续相邻的样本组成。此外,如下面更详细地描述的,块的每个样本属于不同的区域。例如,一个区域大小可以为4×4,并且块大小可以为4×2。

如图所示,d阶段数据100被划分为4×4区域502、504、506、508、510、512、514、516、518、520、522、524、526、528、530和532(用加粗线指示)。在这一具体示例中,每个区域的大小为4×4。依据具体实施方式,其他大小是可能的(例如,6×6、8×8、10×10等)。

每个4×4区域包括编码块,诸如编码块540(用虚线指示)。在这一具体示例中,编码块为4×2。4×2的编码块通常用于bayer图像编码。依据具体实施方式,其他大小是可能的(例如,4×4、4×3、4×1等)。

每个编码块具有预先确定的数量的样本。在这一示例中存在8个样本。每个编码块的样本的具体数量将依赖于具体实施方式。

每个编码块具有关联的样本位置。例如,编码块540具有样本位置a1、a2、a3、a4、a5、a6、a7和a8。

在各种实施方式中,数据压缩器100基于原始编码块中的每个样本的位置将d阶段数据500分成不同的子样本编码块。在这一具体示例中,子样本编码块为4×2。依据具体实施方式,其他大小是可能的(例如,4×4、4×3、4×1等)。

图5b-图5e示出了根据一些实施方式的示例子样本编码块550、560、570和580的框图。

如图所示,在这一具体实施方式中,存在四个4×2子样本编码块550、560、570和580。如图所示,子样本编码块550包括对应于a1、b1、c1、d1、e1、f1、g1和h1的样本。因为给定子样本块中的每个样本属于输入图片500的不同的区域,所以相关性较小。即使相关性较小,数据压缩器300仍然可以基于块间预测来压缩d阶段数据。

结果,预测值的计算是基于不同编码块中的相同位置的样本数据的。例如,预测值的计算可以是基于先前块中的相同位置的样本数据的。

如图所示,子样本编码块560包括对应于a2、b2、c2、d2、e2、f2、g2和h2的样本。

如图所示,子样本编码块570包括对应于i1、j1、k1、l1、m1、n1、o1和p1的样本。

如图所示,子样本编码块580包括对应于i2、j2、k2、l2、m2、n2、o2和p2的样本。

在各种实施方式中,数据压缩器300对给定子样本块中的所有像素独立地进行编码。例如,数据压缩器300可以对子样本块550中的所有像素进行编码,随后对子样本块560、随后对子样本块570以及随后对子样本块580进行上述操作。于是实际顺序可以改变,并且将依赖于具体实施方式。

因为区域adc编码块由子采样数据组成,与具有连续样本的常规编码块相比,该区域adc编码块具有小得多的块内的空间相关性。

如上所述,本文所描述的实施方式支持pcm模式和dpcm模式二者。实施方式使得能够访问相邻块用于dpcm模式的预测。在一些实施方式中,这些技术中的一些可能需要额外的存储器以存储其他块。此外,随机访问单元可能变大。

图6a示出了根据一些实施方式的示例输入图片600的框图。输入图片600包括d阶段数据。如图所示,输入图片600具有36×24的图片大小、3×3的区域adc大小以及4×1的嵌入块编码(ebc)块大小。在一些实施方式中,存在单一颜色格式(不是r、gr、gb、b颜色以简化说明)。

图6b和图6c示出了根据一些实施方式的示例子图片610和620的框图。每个子图片610和620含有具有4×1的块大小的24个块。在各种实施方式中,子图片610和620中的每一个的样本是基于输入图片600中的位置的。

图7a示出了根据一些实施方式的示例输入图片700的框图。在这一示例实施方式中,输入图片700与图6a的输入图片600相同。

图7b和图7c示出了根据一些实施方式的示例子图片710和720的框图。在这一示例实施方式中,子图片710和720与图6b的子图片610和620相同。

此外,示出了子图片730。在各种实施方式中,当前样本的预测器是在先前块或先前子图片中的相同位置处的样本。换句话说,使用块间预测,其中预测器来自不同块。例如,如图7b所示,子图片620用于预测子图片610。此外,如图7c所示,子图片620用于预测子图片630。在一些实施方式中,额外的存储器可以用于存储子图片。

在各种实施方式中,编码顺序可以是固定的、块级自适应的或帧级自适应的。依据具体实施方式,各种编码顺序是可能的。

图8示出了根据一些实施方式的示例输入图片800的框图,其中编码顺序为光栅顺序。如图所示,在一些实施方式中,编码顺序为光栅顺序。在这一示例实施方式中,随机访问单元的大小更小(由加粗矩形指示)。此外,子图片0、子图片3、子图片6(由加粗箭头指示)是完全内部预测编码的(黄色样本)。

来自随机访问单元的图像数据的第一块是块内预测编码的,其中性能可能比其他块更差。这可能引入视觉假象。当来自随机访问单元的图像数据的第一块进行块内预测编码时,本文所描述的实施方式改进其性能。

图9示出了根据一些实施方式的示例输入图片900的框图,其中编码顺序为z字形顺序。如图所示,在一些实施方式中,编码顺序为z字形顺序。在这一示例实施方式中,随机访问单元的大小更大(由加粗矩形指示)。此外,仅子图片0是完全内部预测编码的(黄色样本)。客观性能和主观性能均优于光栅顺序。

图10示出了根据一些实施方式的示例子图片1000的框图。

在各种实施方式中,数据压缩器100将比特率/比特预算偏置编码应用到图像数据的第一块中。在各种实施方式中,与来自随机访问单元的图像数据的后续块相比,数据压缩器100将更高的比特率/比特预算分配给该图像数据的第一块。

例如,压缩期间,数据压缩器100可以将第一块从12bps编码至6bps,同时将其他的块从12bps编码至5bps。因此改进了熵编码。

在各种实施方式中,数据压缩器100可以使用渐进golomb编码(pgc)。与指数golomb编码相比,pgc显著地改进了psnr。pgc参数依据块大小和目标速率而变化。

图11示出了根据一些实施方式的示例数据压缩结果的框图。

图12是可以用于本文所描述的实施方式的示例计算系统1200的框图。例如,计算系统1200可以用于实现图1的区域adc100或者任何其他关联的设备。在一些实施方式中,计算系统1200可以包括处理器1202、操作系统1204、存储器1206、输入/输出(i/o)接口1210以及传感器1212。可以将软件应用1208存储于存储器1206上或任何其他合适的存储位置或计算机可读介质上。软件应用1208提供使得处理器1202能够执行本文所描述的功能的指令。在其他实施例中,计算系统1200可能不具有所列举的部件的全部和/或可能具有其他部件来代替或补充上面列举的那些部件。计算系统1200的部件可以由一个或多个处理器或硬件设备的任何组合、以及硬件、软件、固件的任何组合等来实现。

虽然在描述中已经关于其具体实施方式例进行了描述,但是这些具体实施例仅仅是说明性的而不是限制性的。

可以使用包括c、c++、java、汇编语言等的任何合适的编程语言以实现具体实施例的例程。可以采用不同的编程技术,诸如过程或面向对象。可以在单个处理设备或多个处理器上执行例程。虽然可以以特定顺序呈现步骤、操作或计算,但是可以在不同的具体实施例中改变这一顺序。在一些具体实施例中,可以在同一时间执行如本说明书中顺序示出的多个步骤。

可以在非暂态计算机可读存储介质中实现具体实施例,该非暂态计算机可读存储介质由指令执行系统、装置、系统或设备使用或者与指令执行系统、装置、系统或设备结合使用。可以以软件或硬件或二者的组合中的控制逻辑的形式来实现具体实施例。该控制逻辑当由一个或多个处理器执行时,可操作以执行具体实施例中所描述的内容。

可以通过使用编程通用数字计算机、通过使用专用集成电路、可编程逻辑器件、现场可编程门阵列、光学、化学、生物学、量子或纳米工程系统、部件和机制来实现具体实施例。一般来说,具体实施例的功能可以通过本领域已知的任何方式来实现。可以使用分布式、联网系统、部件和/或电路。数据的通信或传输可以是有线的、无线的或通过任何其他方式。

还应当理解,附图/图中所示的元件中的一个或多个也可以以更分离或更集成的方式实现,或者甚至在某些情况下被移除或呈现为不可操作的,如根据一个具体应用是有用的。实现可以存储在机器可读介质中以允许计算机执行上述任何方法的程序或代码也在本发明的精神和范围内。

“处理器”包括处理数据、信号或其他信息的任何合适的硬件和/或软件系统、机制或部件。处理器可以包括具有通用中央处理单元、多个处理单元、用于实现功能的专用电路的系统或其他系统。处理不需要局限于地理地点或者具有时间限制。例如,处理器可以“实时”、“离线”、以“批量模式”等执行其功能。可以通过不同的(或相同的)处理系统在不同的时间和不同的地点执行处理的部分。处理系统的示例可以包括服务器、客户端、最终用户设备、路由器、交换机、网络存储设备等。计算机可以是与存储器进行通信的任何处理器。存储器可以是任何合适的处理器可读存储介质,诸如随机存取存储器(ram)、只读存储器(rom)、磁盘或光盘、或者适于存储用于由处理器执行的指令的其他有形介质。

如在本文描述和贯穿以下整个权利要求中所使用的,除非上下文另有明确规定,否则“一”、“一个”和“该”包括复数引用。此外,如在本文描述和贯穿以下整个权利要求中所使用的,除非上下文另有明确规定,否则“在…中”的含义包括“在…中”和“在…上”。

因此,虽然本文已经描述了具体实施例,但是在上述公开中意在包括一定范围的修改、各种变化以及替换,并且应当理解,在一些实例中,在不脱离所阐述的范围和精神的情况下,将采用具体实施例的一些特征而不相应地使用其他特征。因此,可以做出许多修改以使具体情况或材料适应于基本范围和精神。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1