首页> 中国专利> 用于计算机层析成像数据的有损压缩和解压缩的方法和系统

用于计算机层析成像数据的有损压缩和解压缩的方法和系统

摘要

用于CT扫描器数据的压缩器和解压缩器首先执行对个体CT采样值的无损压缩。在该压缩之后,计算压缩率CR。将它与目标压缩率进行比较。如果目标压缩率大于或者等于达到的压缩率,通过削减无损压缩值的位数来执行附加的有损压缩。在这种有损压缩之后在压缩器内立即执行有损解压缩,并且存储解压缩值作为用于压缩器的历史,保持压缩器和解压缩器同步。这允许在实现更高的压缩率的同时获得更好的解压缩数据质量。

著录项

  • 公开/公告号CN103417232A

    专利类型发明专利

  • 公开/公告日2013-12-04

    原文格式PDF

  • 申请/专利权人 X环技术有限公司;

    申请/专利号CN201310175570.X

  • 发明设计人 G·肯普弗;

    申请日2013-05-13

  • 分类号A61B6/03(20060101);G06T9/00(20060101);G06F19/00(20110101);

  • 代理机构中国国际贸易促进委员会专利商标事务所;

  • 代理人魏小薇

  • 地址 德国菲斯滕费尔德布鲁克

  • 入库时间 2024-02-19 20:08:03

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-03-13

    专利权的转移 IPC(主分类):A61B6/03 登记生效日:20200225 变更前: 变更后: 申请日:20130513

    专利申请权、专利权的转移

  • 2017-09-05

    授权

    授权

  • 2015-05-13

    实质审查的生效 IPC(主分类):A61B6/03 申请日:20130513

    实质审查的生效

  • 2013-12-04

    公开

    公开

说明书

技术领域

本发明一般地涉及医学诊断成像和行李成像的技术,特别涉及用于计算机层析成像的方法和设备,其中测量数据在到重建扫描对象的图像的计算机的途中被压缩以及可能被解压缩。

背景技术

在计算机层析成像(CT)中,在通过来自不同方向(投射)的X射线源的X射线照射的对象的扫描期间,获取原始数据(raw data)。通过物体被衰减的X射线入射到多个传感器(通道)上,所述多个传感器(通道)被布置在放射线检测器的多个行中。所述多个行通常被称为多个切面(slices)。

X射线源和检测器被安装在转动器(rotor)或扫描架(gantry)上。因此,对于每个转动器位置,获得与所述多个切面对应的多个数据矢量(也称为“扇(fan)”或“读数”)。在扫描期间,转动器以角度步幅被转动,每个步幅给出新的读数。在完整的一次转动期间或之后,待检对象(患者)在与转动器平面正交的方向上被移动,并且在许多次转动中积累的数据被合成为一个文件,该文件伴随着用于每个矢量的附加元数据和文件元数据。

在具有带有128个切面的640个传感器的示例性CT扫描中,有640*128个通道,并且每次转动可以有2000个读数。因此,每次转动的1亿6千4百万个测量值被获得,每个测量的值被存储作为16位(2字节)的无符号字。由此,每次转动大约有400M字节的数据。转动的次数取决于要被扫描的患者的身材。对于每秒4次转动,数据速率大致为每秒1.6G字节。需要例如大致10~20次转动用于扫描人类头部。如此,生成相当高的数据速率,这进而被传输到中央处理单元以用于重建被扫描的对象图像。

因此,能够有效率地压缩到计算机的途中的此数据的压缩方法可以通过减小将数据传输到中央处理单元所需的存储空间和带宽,在CT成像装置的总体操作方面进行改进。

作为医学工具的CT成像由于其在医学分析中的益处而被公知,但是同时,由于X射线的使用,CT成像也被公知为对被扫描的人类(或者其他活体对象)有害。为此,为了从造成最小伤害的角度最大化医学益处,规范要求:从扫描获得的有意义的数据不应该被损失。数据损失的来源可能包括由于传输手段的物理限制而通常不可避免的数据损坏以及有损压缩技术。这种传输手段通常确保位错误率低于1,000,000,000,000(10的12次方)分之一,但不是零。对于在CT扫描中经过的并且在以上计算的数据尺寸(4~8G字节),这意味着每几十次扫描中有一次扫描会遭受一个或更多个位的损坏。

由于要求不丢失有意义的数据,用于CT图像数据的压缩算法优选地(尽管不是排他地),是无损压缩算法。此外,应使用检错和纠错方案,以便保护免受数据损坏的不幸事件。

在本领域中已提出用于CT成像数据的若干种压缩算法。多数这样的算法(如果不是全部的话)由三个主要步骤组成:第一步骤,关于期待的数据进行预测;第二步骤,要被压缩的数据与该预测相比较;以及第三步骤,要被压缩的数据和预测数据之间的差值尽可能有效率地被编码(通常称为熵编码步骤)。在国际专利申请公布WO2011/033381A1中公开了这样的压缩器,由于改进的预测器和进一步改进的编码器,该国际专利申请公布WO2011/033381A1提供了相对高的压缩。

为了进一步增大压缩,在美国专利7,852,977B2中公开了有损压缩算法。这种压缩算法去除数据的被认为对于图像重建没有用处的一些特定部分。为了估计数据去除程度,反馈环路被提供以用于测量外出数据速率。

滑电环(slip ring,电子工程方面)是用于通过转动组件而形成电连接的设备。滑电环也被称为转动电气接口、转动电连接器、集电器、旋转器(swivels)或电旋转接头。滑电环由安装在轴杆上并且与轴杆绝缘的导电环或带构成。从系统的转动部分(诸如发电机的转子)电连接到该滑电环。固定触点或者电刷与滑电环相接触地运行,将电力或信号传送到系统的外部的静态部分。本质上,滑电环是具有横穿旋转接头而不被缠结的能力的电力和通信缆线的等同物。此外,使用非接触数据和电力传输系统,在此也称作滑电环。在US20030185427A1中公开了一个示例。

滑电环在CT扫描器中被频繁使用,以便在生成CT原始数据的扫描器的转动器与被用于从该数据重建和显示3D图像的静态中央处理单元之间进行连接。

当前的滑电环在其数据吞吐量方面被限于大约每秒10Giga位(10Gbps,其是每秒10的9次方位)。对于一些高分辨率CT扫描,该带宽对于实时地传送原始数据和在静态显示器上显示CT图像是不够的。因此,在虚拟地扩大滑电环的通信容量方面,压缩是有用的。

压缩算法根据其定义是取决于其需要压缩的数据的。在本领域中公知,对于任何压缩算法,都存在根本不能被压缩的数据,特别是不能在给定阈值比率以上被压缩的数据。因此,当要被压缩的数据不能以要求的比率压缩时,被设计为取决于总是能够达到的最小压缩率的系统可能不能成功工作。对于采用压缩的CT扫描器尤其如此。

在没有对被扫描的对象和通过用CT扫描器对所述对象进行扫描产生的数据的先验知识的情况下,CT扫描器设计将需要假设压缩可能根本不是有效的。因此考虑最坏情况的情形会消除压缩的主要益处——将相对低吞吐量的通信链路用于高带宽通信的能力。

发明内容

实施例基于通过引入改进的有损压缩来改进原始CT数据的压缩的目的。另一方面是以几乎独立于数据的预定压缩率压缩该数据。本发明的进一步的方面是将损失降低到绝对的所要求的最小值,以便实现期望的压缩率。本发明的进一步的方面是压缩器和解压缩器、用于压缩的方法和用于解压缩的方法。

这里公开的是用于从旋转数据源(诸如X射线扫描器)通过滑电环向静态目标(诸如中央处理单元)传送数据的示例性的方法和系统。特别地,公开了用于压缩数据的方法、用于解压缩数据的方法、数据压缩器、解压缩器、用于压缩和解压缩数据的系统、具有用于压缩和解压缩数据的系统的滑电环以及具有用于压缩和解压缩数据的系统的CT扫描器。

公开一种压缩滑电环系统,包括:压缩器,位于连接到数据生成器的转动平台上,所述压缩器从该数据生成器接收数据;滑电环,在所述转动平台和静态平台之间被分割并且在所述转动平台和所述静态平台之间被连接;以及解压缩器,位于所述静态平台上,所述静态平台经由通信网络连接到目标。

用于压缩滑电环系统的压缩器可以包括这里公开的任何特征。

用于压缩滑电环系统的解压缩器可以包括这里公开的任何特征。

包括压缩滑电环系统的CT扫描器可以包括这里公开的任何特征。在此,数据生成器是信号接收机从X射线检测器接收的模拟信号的数字采样器,有时也被称为数据获取系统(DAS)。在此,对于可以用16位表示的表示一个检测器单元的一个X射线检测器采样的值,使用术语“采样”。采样也可以被称为像素。

一般来说,实施例与现有技术区别在于,将衰减逻辑部件更深地插入到压缩器自身中,从而降低反馈环路的长度并且消除在能够在没有损失时达到期望的压缩率的情况下对损失的需要。

基本上,有损数据压缩器使用无损压缩算法。在WO2011/033381中公开了这种无损压缩算法,在此将WO2011/033381以引用方式包含在本文中。

无损压缩算法可以包括以下步骤:

1)从如CT扫描器的数据源输入采样;

2)选择用于预测数据的模型,优选地基于历史;

3)计算接收到的数据与模型之间的差值D=S-H,其中H是从历史数据得到的参考值,S是要被压缩的采样;

4)对计算的差值进行编码;

5)输出经过编码的数据。

优选地,该模型基于历史。用于基于历史值H1、H2、H3计算该参考值H的示例性模型可以是H=H1+H2-H3。在此,历史是将被解压缩器重建的数据(在无损压缩器中,它应该正好与在压缩器过去接收到的原本数据相同)。H1可以是最新的历史数据。参考是表示要被压缩的值的预测的值。其一般从历史中被得到。在替换性实施例中,对于不存在历史时或者要求不取决于历史进行压缩时(诸如在压缩数据损坏的情况下为了同步目的)的情况,参考可以被固定。如下所示,历史值可以已经通过计算采样解压缩值而被生成。一般地,H可以是多个可能位置处的来自先前帧的单个像素值或这种像素值的组合、来自当前帧(其刚刚被压缩)的像素值(诸如相邻像素)、或者这种像素的组合或这种像素与来自先前帧的像素的组合。例如,可以从两个历史帧——先前帧和先前帧之前的帧——中的一个历史帧中取出历史值。一般地,可以取来自所存储的先前帧的任何像素组。此外,来自当前处理的帧的像素也可以被用作为历史,只要没有产生循环依存性即可。在历史帧内,可以从(x,y)坐标取出历史像素,所述(x,y)坐标与正在被处理的帧内的像素的坐标、或者与相对于正在被处理的帧内的像素的坐标具有给定偏置(x+Δx,y+Δy)的坐标相同,其中Δx和Δy可以是预定义的范围内的小的正整数或负整数。Δx和Δy可以进而被表达为被映射到给定偏置的单个整数。在另一个实施例中,被使用的仅有参考偏置是(Δx,Δy)=(0,0)——仅是先前帧内正在被编码的像素的相同坐标。

压缩算法可以一起处理若干组输入采样。这种分组可以意味着,对于一组采样应用共同的压缩技术,这可以代表一个传感器读数。在上述的无损压缩算法中,一行中N个采样的各组使用单个预测模型被压缩(成为作为参考的历史的单个矢量)。输入采样的组的压缩可以导致每N个采样的组的经压缩的输出尺寸G。压缩流中的每采样的平均位数于是为G/N。平均压缩率于是可被表达为B/(G/N)=B*N/G,其中B是输入中的每采样的位数。B的典型值可以是16。

可以通过控制参数来控制有损压缩。这些控制参数中的一种可以是最大容许数据损失。优选地,最大容许数据损失是每输入采样的最大容许的数据损失。可以用位每采样来表示。对于所有采样,它可以是固定的,或者可以被表示为输入数据流的结构内的采样位置的函数,例如表示为帧内的采样位置的函数。这可以被用于以下的情况中:即在该情况下,数据的一部分必须被无损失地被压缩(诸如数据的更加有效(significant)的部分),而其他部分可以具有某种程度的损失而被压缩(诸如数据的不那么有效的部分)。这些参数中的另一个参数可以是目标压缩率,或者其任何等同参数(如目标输出率,也被称为目标压缩率)。优选地,它可以是每N个输入采样的压缩位的目标数量T,其中N是整数并且优选可以是如在基本无损压缩算法中使用的一组中的采样数量。因此,T可以是G的目标数量,如以上所讨论的。

基于该数据输入,当前压缩率或任何等同值(可以是输出速率和/或每N个输入采样的压缩位数)被连续地计算。为了简便,它进一步被称为压缩率。此外,可以计算压缩率的平均值。

如果当前压缩率高于或者等于目标压缩率,则由无损压缩进行压缩的数据被输出。没有必要通过使用有损压缩而引入信息损失。

如果当前压缩率低于目标压缩率,则N个采样的组将如下一起被压缩。

首先可以存在至少一个进一步尝试,以无损失地压缩。如果成功了并且可以达到目标压缩率,则输出经过无损压缩的数据。

如果通过无损压缩不能达到目标压缩率,则计算压缩数据必须要被削减的、取整(rounded to)到最近整数的位数R。如果该数大于容许的数据损失,则将容许的数据损失用作R。于是,从在无损压缩算法的步骤3中计算的每一个差值D中去除R个最低有效位,导致新的经削减的差值DR

包括N个采样的组的压缩值的压缩输出矢量被标记为有损的,并且进一步地优选包含关于R的信息。

可以执行对用于削减的位数R的编码,以使得在不削减位的情况下,单个前缀位(其可以为“0”)作为头部被添加到N个采样的压缩编码,而如果削减位,则形式为“1b1b2b3b4”的多个位作为头部被添加,其中“b1b2b3b4”可以是代表削减位数、或者削减位数的诸如Huffman或Golomb Rice编码的最优编码的二进制数。这使得能够在可以作为主导压缩模式的无损压缩的情况下实现最小开销。更优选地,“b1”是最低有效位,而“b4”是最高有效位。该次序也可以颠倒。很显然,可以根据所要求的数值范围而适应性改变位数,并且位的顺序可以改变。特别地,这种“b1b2b3b4”的编码不需要代表已经由前缀位代表的值零。

为了使得压缩器能够与解压缩器同步地操作,优选地在压缩器内执行立即的解压缩。代替将到来的原始数据存储作为压缩器的历史,要由解压缩器解压缩的数据作为压缩器的历史被存储。

在以下,更详细地描述压缩器内的该解压缩。其与在解压缩器中执行的解压缩是类似的。由于在压缩器内的该解压缩器能够直接访问所有压缩器数据,并不隐含要求特定信息(如指示应用了有损压缩的标记)。此外,由于将负责对差值的编码,该解压缩器还将能够访问未编码的差值。它仅需要类似地执行将差值扩大回它们的原本尺寸以及然后创建解压缩数据的动作。

优选地,除了对于被标记为有损压缩的矢量以外,该解压缩如同WO2011/033381中公开的无损解压缩那样被实施。在这种情况下,在解压缩之前,差值被扩大回其原本尺寸。

如果已对输出矢量进行了编码,则它将首先被解码,尽管优选的是压缩器的解压缩步骤接收未编码形式的输出矢量以减小计算开销。然后,采样的个体值被重建。更优选地,差值D已经通过压缩器作为数学相减的结果而被生成:D=S-H,其中H是从历史数据中得到的参考值,S是要被压缩的采样。如果该差值D由有符号的M位数如“dM-1dM-2dM-3dM-4…d0”表达则是进一步优选的,其中M是正整数。一般来说,该数可以保持两个无符号M-1位的数的差值,其中“dM-1”是最高有效位,“d0”是最低有效位。由于先前的压缩,该数已被削减R个最低有效位,这导致削减的差值DR“dM-1dM-2dM-3dM-4...dR+1dR”,其具有M-R位的长度。

可以无需通过对得到的削减的差值DR进行最优编码的阶段而计算解压缩值。首先,削减的差值DR的R个最低有效位(LSB)被填充位序列。它可以是任何优选预定的位序列。更优选地,它是以“1000...”起始的序列。因此,位R-1被填充“1”,而位R-2、R-3以及进一步接连的位被填充“0”。这可导致如“dM-1dM-2dM-3dM-4...dR+1dR10...0”的数。这个长度为M位的新的数进一步被称作近似差值D‘。

在下一步骤中,通过S’=D’+H计算原本采样的第一近似值S’,其中H是来自历史的相关参考值,其对于压缩器和解压缩器是相同的。这里,S’是第一近似,这是因为它由于溢出的原因而可能实际上远离所要求的值。这是可能发生的,因为先前步骤的最低有效位代替中的“1”,如果它是正值,则可以使D‘大于D,或者如果它是负值,则可以使D‘小于D。例如,如果H=0xFFFF,S=0xFFFF,D=0并且R=5,则会有D‘=0x10和S‘=H+D‘=0x1000F,这要求对于一个采样由17位而非16位来表示。如果D‘是负值并且H接近或者等于零,则类似的溢出可能发生。如果不加处理,则在用相同位数表达为无符号数时这种溢出将导致相对于原本采样S的严重偏差,为此,第一S‘优选地以比原本采样多一位来被表达。

在计算S‘之后,可以使用简单的溢出检查用以测试S‘的MSB是否被设定。如果没有,则没有发生溢出。如果MSB被设为1,则这意味着溢出。从S‘计算进一步的近似S‘‘。如果S‘的MSB未被设定,则S‘‘是没有MSB的S‘。如果S‘的MSB被设定,则使用D’来计算S‘‘。如果D’为正值,则S‘‘被设为预定值,优选为最大采样值(例如0xFFFF)。如果D’为负值,则S’被设为零(0x0000)。S‘‘的上述定义有效地将误差(S-S‘‘)限制为保持在R位的所要求的误差边界内但是不允许溢出。在S’导致0x1000F的上述示例中,由于其MSB被设定并且D’为正值,因此结果为S’’是0xFFFF(这也恰好是S的原本的值)。

最后,值S’’而非S被存储在压缩器的和解压缩器的历史中,供之后的压缩步骤使用。这确保压缩器和解压缩器之间的一致性,该一致性是使用相同机制利用历史和到来的(经解码的)差值用于采样重建所要求的。

以下的表示出本发明的一些数值示例:

输入采样(S)200400800200参考(H)100200100200无损差值(D)1002007000R1240经削减的D5050430经重建的D(D')1012026960经重建的采样(S')201402796200误差(损失)1240

这里,全部经削减的D的和是143,而全部误差的和是7。

为了比较,作为现有技术已知的压缩的值如下所示:

这里,所有无损差值的和为250,而所有误差的和为8。因此,如这里所描述的压缩具有较低的差值计数,导致较低的数据量,此外其还具有较低的错误率。这些示例基于以下假设:1)差值编码尺寸与差值尺寸成比例(在熵编码的情况下通常是这样的),以及2)用于现有技术的反馈取4个时钟周期(ticks)(仅在4个时钟周期之后,衰减水平才能被更新,这是因为只有在那时,先前衰减才影响压缩器输出)。

在优选实施例中,可以对于预定数量的采样,预定义用于要由有损压缩器削减的位数R。这具有这样的效果:对于预定数量的压缩采样必须仅一次将R传送到解压缩器。此外,R可以在整个扫描期间恒定,或者可以随着时间改变。R可以基于先前的数据分析。在之后会更加详细地给出这种先前的数据分析的示例。

根据另一实施例,要由有损压缩器削减的位数R可以被设为零。这可用于当无损压缩器计算出最好不要压缩数据时的情况。一个示例是不可压缩的数据。

在进一步的实施例中,要由有损压缩器削减的位数R可以基于输出速率的移动平均值而被计算。这可以对于预定时间或者采样数量而被进行。因此,许多采样组上的损失被求平均值。此外,可以以指数方式进行加权,例如通过使用公式(1-α)*A+α*B,其中α是0和1之间的值,A表示每压缩采样组的先前平均位数,B表示每压缩采样组的当前位数。当α被设为接近零时,平均值向着每压缩采样组的当前位数缓慢收敛。当α被设为接近1时,平均值向着每压缩采样组的当前位数快速收敛。用于α的典型值可以是1/64或者是具有2的-N次方的形式的2的任何其它负指数,其中N是正整数。

一般来说,如本领域技术中所描述的,削减的位数R可以是非整数。为了实现非整数削减,原本的差值可以首先乘以值M,并且只有这时,R位才可从中被削减。如果M不是2的因数,例如M=3,则削减的位数可以有效地是非整数值,这导致更加精确的位削减。M将需要以压缩数据被发送,使得解压缩器可以在重建原本的近似数据采样之前反转乘法的动作。例如,差值在损失之前是10000b(十进制的16),而乘数M=3被使用,这导致3*16=48=110000b。然后,去除三位用于有损压缩,导致110b(十进制的6)。解压缩器将重建110100(十进制的52)以导致+4的误差,然后除以M=3以导致17.333,17.333被取整为17,这导致+1的误差。对于使用乘数3的3个削减位,可能误差范围将在-1和+1之间(小于2位的位范围)。

在压缩之后,经压缩的并且优选地经编码的输出矢量可以经由滑电环或非接触数据链路被传输。作为替换的和/或附加的数据可以通过存储接口被发送,所述存储接口可以被用于在如SSD或记忆棒之类的存储部件上存储数据。在这种系统中,在存储接口进行输出时或者作为消费存储的压缩数据的应用的一部分,解压缩能够被立即执行。

解压缩器接收压缩器的压缩输出矢量作为输入,并且对到来的数据进行解压缩。基本上,解压缩器如上面描述的压缩器的解压缩器元件那样被实施,此外还要加上用于编码数据(即,压缩参数和熵编码的差值)的解码机构。如果输出矢量已被编码,则它将被首先解码。

在解码之后,采样的个体值被重建。首先,经削减的差值DR的R个最低有效位(LSB)被填充位序列,以计算经解压缩的值。它可以是任何优选预定的位序列。更优选地,它是以“1000...”起始的序列。因此,位R-1被填充“1”,而位R-2、R-3以及进一步接连的位被填充“0”。这可导致如“dM-1dM-2dM-3dM-4...dR+1dR10...0”的数。这个长度为M位的新的数进一步被称作近似差值D‘。

在下一步骤中,通过S’=D’+H计算原本采样的第一近似值S’,其中H是来自历史的相关参考值,其对于压缩器和解压缩器是相同的。这里,S’是第一近似,这是因为它由于溢出的原因而可能实际上远离所要求的值。这是可能发生的,因为先前步骤的最低有效位代替中的“1”,如果它是正值,则可以使D‘大于D,或者如果它是负值,则可以使D‘小于D。如果D‘是负值并且H接近或者等于零,则类似的溢出可能发生。

在计算S‘之后,可以使用溢出检查用以测试S‘的MSB是否被设定。如果没有,则没有发生溢出。如果MSB被设为1,则这意味着溢出。从S‘计算进一步的近似S‘‘。如果S‘的MSB未被设定,则S‘‘是没有MSB的S‘。如果S‘的MSB被设定,则使用D’来计算S‘‘。如果D’为正值,则S‘‘被设为预定值,优选为最大采样值(例如0xFFFF)。如果D’为负值,则S’被设为预定值,优选为零(0x0000)。S‘‘的上述定义有效地将误差(S-S‘‘)限制为保持在R位的所要求的误差边界内但是不允许溢出。在S’导致0x1000F的上述示例中,由于其MSB被设定并且D’为正值,因此结果为S’’是0xFFFF(这也恰好是S的原本的值)。

最后,值S‘‘被存储在解压缩器的历史中,供之后的解压缩步骤使用。

为了清楚起见,在这里参照了压缩器和解压缩器。它可以是用于压缩和/或解压缩数据的硬件部件、用于压缩和/或解压缩数据的软件部件、或者用于压缩和/或解压缩数据的方法。可以用硬件和/或软件来实施。

一般来说,这里公开的压缩和解压缩的方法、压缩器和解压缩器优选被用于CT原始数据的压缩,但是它们可用于允许有损压缩的任何其它种类的数据。此外,经压缩的数据的传输不限于经由滑电环或非接触数据链路的传输。作为替代,数据可以通过任何其它传输手段被传输,以及/或者被存储在存储器中。作为替换方案以及/或者作为添加,数据可以通过存储接口被发送,该存储接口可以被用于在如SSD或记忆棒之类的存储部件上存储数据。在这种系统中,在存储接口进行输出时或者作为消费存储的压缩数据的应用的一部分,解压缩能够被立即执行。这里公开的算法和方法被理解为在计算机、微处理器、FPGA或者ASIC上被实施。它们可被存储在适当的存储器件上,如磁盘、硬盘、SSD、CD、DVD或记忆棒。

实施例的一个重要的优点在于:能够在压缩处理自身期间决定达到的压缩率是否足够。如果压缩率是足够的(例如,当呈现的数据恰好与先前观察的数据非常相似),则压缩器可以保留原本的数据质量而不倚赖降低压缩数据的质量的有损压缩。相反,呈现在本领域技术中的有损压缩算法对给定数据段内的(或者特定时间帧内的)所有数据应用有损压缩,而不论该数据与在先观察的历史数据之间的关系如何。结果,在能够对可能大大小于选择有损压缩的段的数据子段实现足够的压缩的情况下,它们不利用保留数据质量的可能性。

在最佳质量与可变损失水平的约束下的解决选择最优压缩方法的问题的作为替换的能够想到的途径可以是并行地耦接多个压缩器,每个压缩器执行不具有或者具有给定损失水平的压缩,并且选择具有最高质量的被充分压缩的输出。这种途径的优点可以是:选择机制(即要使用哪个输出数据)可以是相对直接的。然而,这种途径可能是相当复杂的并且占用大量资源。这是因为,有效率地组合经熵编码的数据的输出是极困难的,并且要求在能够决定要使用哪个数据之前对压缩数据并行地编码多次。这会导致非常慢(如果所有替换方案均被串行考查)或者非常占用资源的压缩(如果所有替换方案均被并行考查)。在当前发明中呈现的途径将对额外要求的资源的需要限制为特定的不同计算的点,而将压缩的熵编码部分留下作为一个单个机构(没有复制)。这是有可能的,这是因为能够基于计算出的差值的值来恰好计算或估计经编码的数据的尺寸。该新颖的途径允许在对特定数据子段给出所要求的损失水平而同时几乎不比无损压缩器要求更多资源的情况下所呈现的方法能够最优化经压缩数据的质量。

在本领域技术中呈现最小化压缩资源同时实施可变损失水平压缩器的替换性途径。以这种途径,基于压缩器外部的、估计要求的损失水平的机构,被呈现给无损压缩器的采样被衰减,以便实现某种经压缩的数据速率。该途径还具有使用几乎不比无损压缩器要求的更多的资源的益处,但是由于数据被呈献给压缩器的时间与经压缩的数据速率可以被确定的时间之间的相对长的延迟,不可避免地,衰减水平只能周期性地被调整,这导致对于有效的数据段具有固定衰减水平。结果,如果在这种数据段内存在本来可以无衰减地被压缩的子段,则丢失了产生更高质量的压缩数据的潜能。如以上所呈现的,在当前发明中并不具有如下这样的情况:即从压缩率到损失水平的反馈是立即的。

附图说明

接下来,将通过示例的方式通过实施例的示例以及参照附图来描述本发明,所述示例并不限制一般发明构思。

图1示出压缩算法的流程图。

图2示出用于削减差值的算法的流程图。

图3示出由解码器所使用的值。

图4示出经解压缩的采样值的计算。

图5示出压缩滑电环的示意图。

图6详细示出无损压缩器。

图7示出无损解压缩器。

虽然本发明容易经受各种修改和替代性形式,但是在附图中通过示例的方式示出了其具体实施例,并且将在此详细描述所述具体实施例。然而应该理解,附图及其详细描述并不意图将本发明限定为所公开的特定形式,而是相反,意图覆盖落入由所附权利要求限定的本发明的精神和范围内的所有修改、等同物和替代方式。

具体实施方式

图1示出了基本压缩算法。压缩开始于步骤100。在步骤101处,从CT扫描器一类的数据源输入数据。优选地,由N个输入采样组成的数据块被输入并且进一步被一同处理,其中N是整数。在接下来的步骤102处,选择用于预测数据的适当模型。该选择可基于历史,像先前输入的数据,优选地在步骤111处已被存储在历史存储器中的数据。利用所选的模型,在步骤103处,计算在步骤101接收的输入数据与模型之间的差值D=S-H。如果该算法不能达到所需的压缩,则在步骤104处执行可选的差值削减。该步骤由差值D计算出削减的差值DR,该步骤可被称为差值削减器。利用这些削减的差值,在步骤108至110处计算解压缩的值。首先,在步骤108处,由削减的差值DR来计算重建的差值D′。然后,在步骤109处,使用重建的差值D′和相关参考值H,按照公式S′=D′+H来计算原始采样的近似值S′,其中相关参考值H由历史得出且已被用于压缩。最后,在步骤110处,可以进行溢出校正。这里,使用D′,由S′来计算溢出校正后的近似值S”。在步骤111处,溢出校正后的近似值S”被存储在历史存储器中。先前计算出的且被可选地削减的差值D′在步骤105处被编码。最后,在步骤106处,编码后的数据被输出,并可经由滑电环或非接触数据链路或存储接口被传送。压缩算法结束于107。

图2示出了根据前一幅图中的步骤104,可选地削减差值的算法的流程图。在步骤500处,在步骤103计算出的无损差值被输入。在步骤501处,计算无损编码的尺寸E。这取决于对差值进行编码所用的编码机制。在优选实施例中,利用具有参数K的Golomb-Rice编码方案对差值进行编码。在这样的编码方案中,编码后的差值的长度可被计算为等于K加上差值高于其K个最低有效位的最高有效位所代表的数字加1。例如,如果K=4并且差值D为0x002A,则编码长度为K+0x002+1=7。对于其他编码方案,也可以计算或估计长度。在步骤502处将其与在步骤509处接收的目标编码尺寸T进行比较。当E不大于T时,在步骤510处保存无损差值以供接下来使用。当E大于T时,在步骤511处使差值削减R位,其中R是从前一步507处获得的。可以如图4所示来完成削减。根据步骤505处的差值,计算实际编码尺寸E′。在无损差值D被保存的情况下,实际编码尺寸E′等于前面计算出的无损编码的尺寸E。如果在步骤511处差值被削减,则实际编码尺寸E′小于前面计算出的无损编码的尺寸E,并且可按相同方式来计算。基于实际编码尺寸E′,计算在步骤511处要削减的位数R。这里,例如,在步骤506处显示的移动平均可以被计算作为在步骤507处计算R的基础。优选地,步骤506处的计算可被表示为最优选地,该函数为其中α是介于0和1之间的值,控制着当前尺寸的收敛速度。通常,该计算也可基于任何其他先前的值。在步骤507处,在步骤508处接收的最大容许误差Rmax连同优选地还连同T一起使用,用于计算R。Rmax可以在整个扫描期间固定不变,或者可以依据帧内的组位置而变。其中k是预定的增益因子,G是用相同R编码的组内的采样数。结果受Rmax的限制。在步骤512处,计算出的差值被输出,可用作前一幅图的步骤105的输入。

图3示出差值削减器所使用的值。第一个示例性的差值201是长度为M=17位的差值削减器的输入,它可以是无损压缩的结果。该有符号值可以保留两个无符号的16位数字的差值,并可具有诸如“d16d15d14d13d12d11d10d9d8d7d6d5d4d3d2d1d0”的二进制形式,其中“d16”是最高有效位(MSB),“d0”是最低有效位(LSB)。在典型的编码方案中,MSB也可被当作差值的符号,对于负数它可以被置位,对于正数它可以被取消置位。第二个示例性的差值D202是差值削减器的输出,也是差值重建器的输入,其长度为M=14位,它可以是有损压缩的结果,其中位数削减了R=3。这里,移除了最低有效位。解压缩器通过用以“1000...”开始的比特序列填充最低有效位,由差值D202生成近似差值D′203,该近似差值D′203是差值重建器的输出。

图4示出了解压缩后的采样值的计算过程,给出了前面示出的步骤108-110的细节。该过程开始于步骤600。在第一步骤601处,对应于步骤108,计算近似差值D′。为此,用预定的样式来填充差值D在有损压缩期间被移除的最低有效位。优选地,用“1000…”这样的样式来填充R个最低有效位。填充样式的最高有效位优选地为“1”,所有位或其他位填充为“0”。该步骤可被称为差值重建器。在下一步602处,对应于步骤109,按照S′=H+D′来计算原始采样值的第一近似值S′,其中H是优选地从历史导出的相关参考值,对于压缩器和解压缩器而言它是相同的。优选地,H和D′的数值具有相同位数,但这不是必要的,只要在上述加法运算中没有位丢失即可。在这些值相加时,有可能发生溢出。在步骤603-607对溢出进行处置,这在前面示出的步骤110中已简要叙述。因此,两个数值的和需要额外的最高有效位。在步骤603处,通过检查S′的(MSB)最高有效位是否为“1”,完成对这样的溢出的检查。如果不为“1”,则在步骤607处通过移除S′的最高有效位来计算第二近似值S”。在发生了溢出并且S′的最高有效位为“1”的情况下,必须在步骤604处作出进一步的判断,判断D′是否为正,因而大于或等于0。如果它为正,则在步骤605处S”被设为最大采样值,优选地设为长度等于每个采样的位数的一串“1”。如果为负,则在步骤606处S”被设为0。在计算S”后,在步骤608处它被存储在无损压缩器的历史中,这对应于前面所示的步骤111。该过程结束于609。

图5示出了压缩滑电环的示意图。它也可适用于通常的数据传输系统或者压缩存储。它包括压缩器910、滑电环920和解压缩器930,存储器911被包含在压缩器910中或附接于它,存储器931被包含在压缩器930中或附接于它。

压缩器910可位于被称为转动器的转动平台上,从该转动平台获得原始数据912,例如来自计算机层析图像扫描器上的X射线传感器的数据,该转动平台也被称为数据发生器。压缩器接收这样的原始数据,并可将其存储在附于自身的存储器911中。存储器911可被压缩器910用来存储压缩时参考用的历史原始数据,另外,在压缩器不能立即通过滑电环传送数据(例如,由于滑电环的吞吐率的限制)的情况下,存储器911也用作压缩前或压缩后的数据的临时缓冲器。

存储器931可被解压缩器930用来在目的地或者通往目的地的网络不能以解压缩器产生的速率来接收数据的情况下存储数据。

压缩器910可以将压缩后的数据通过滑电环920送往解压缩器930,解压缩器930可以将数据存储在所附的存储器931中。解压缩器930在其输出端传送未压缩的原始数据932。此外,压缩后的数据可被存储在静止单元或者任何存储元件上,以供进一步使用。

解压缩器930可位于被称为静止器的静止单元上,原始数据可从该静止单元被发送到中央处理单元或服务器以供数据分析和显示,或者被发送到存储元件。解压缩器接收压缩后的原始数据,并将该压缩后的原始数据或者其解压缩后的数据版本存储在所附的存储器931中。

图6详细示出了无损压缩器。这样的压缩器可被用于图像压缩以及其他类型的数据。但是,应当理解,即使其他类型的数据不代表图像,这样的数据也可以按类似的方式来压缩。例如,这样的数据可以代表任何类型的数据,包括从多种源(例如光、电磁辐射或音频)数字采样的数据。优选地,待压缩的数据在压缩前被缩放。这样的缩放可包括加或减一个偏移值,并且/或者乘以一个缩放值,并且/或者应用一个转移函数。在CT扫描器的具体情形下,通过进行缩放,具有不同闪烁体或不同信号处理组件的不同物理检测器模块的信号可以被均衡。均衡可基于相对于相同检测器或者相对于基准检测器的基准测量。压缩器可以压缩定点格式(例如16位)的数据或者浮点格式(例如,12位的尾数,4位的指数)的数据。在定点数据的情况下,在压缩前可以转换到浮点格式。在浮点数据的情况下,通过采用不同算法或设置的两个不同压缩器,可对尾数和指数进行压缩。可替换地,根据压缩效率,可以只对尾数或指数进行压缩。此外,不同的压缩算法可被用于偏移、全尺寸和成像(调制后的)数据集。

可与图像数据分开传送的控制数据可以不进行压缩。控制数据是用于控制诸如X射线管、处理器硬件一类的硬件或者诸如压缩器一类的软件的数据。

压缩器包括预测器940,它接收像素形式的待压缩数据941以及关于这样的像素在给定大小和形状的可能的图像帧内的位置的同步信息。预测器的主要目的是根据一般基于输入数据的历史的内部模型来预测待压缩的数据。预测器的输出是输入数据和预测的模型之间的差值,它被发送到熵编码器942以供编码。熵编码器942将来自预测器940的差值数据编码成得到压缩数据的压缩形式。然后该数据被发送到误差防护器943,误差防护器943对输入数据标注选择性的误差防护码,以保护压缩数据免受多种错误。最后,误差防护器943将被压缩并且可选地进行误差防护的数据944传送出去,作为压缩器的输出。

图7示出了无损解压缩器的示例性实施方式。这样的解压缩器可被用于图像解压缩以及前面已被压缩的其他类型的数据。解压缩器包括误差校正器950,它接收已编码的差值或像素形式的待解压缩数据951、连同编码及误差防护参数、以及关于所接收的数据的开始及结束的同步信息和要接收的帧的预期大小和形状。误差校正器可负责基于所使用的纠错检错码来识别并校正输入数据内的任何错误,并在将数据传递给熵解码器952之前从数据中剥除ECC和EDC信息。熵解码器可以接收编码后的差值或原始像素、还有编码参数。它可负责将信息解码成明文的有符号差值,该差值将由重建器953与参考数据相加或相减。如果熵编码器接收的是原始像素数据(在未对像素进行压缩的情况下),它可将这样的像素按原样转发给重建器。重建器可以通过使差值与它可能已存储在自身的存储器中的适当的参考数据进行相加或相减,来重建原始像素数据。然后,它可以将重建后的数据存储在其存储器中,以供未来参考,然后将它作为解压缩器的输出954,以像素的形式转发。

受益于本公开的本领域技术人员将会理解:本发明据信提供了一种数据压缩器和数据压缩方法。参照说明书,本领域技术人员将会明白本发明的多个不同方面的其他修改及替换实施方式。因此,本说明书只应被解释为示例性的,只是为了教导本领域技术人员实现本发明的一般方式。应当理解,这里所描述且显示的本发明的多种形式应被当作目前优选的实施方式。多种元件和材料可以替换这里所图示并描述的相应部分,多个部分和过程可以颠倒顺序,本发明的某些特征可被独立使用,在阅读了本发明的说明书后,本领域技术人员将会明白这些内容。在不偏离权利要求限定的精神和范围的情况下,可以对这里描述的要素做出改变。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号