CN107004135A - 大图像文件的远程查看 - Google Patents
大图像文件的远程查看 Download PDFInfo
- Publication number
- CN107004135A CN107004135A CN201580068257.3A CN201580068257A CN107004135A CN 107004135 A CN107004135 A CN 107004135A CN 201580068257 A CN201580068257 A CN 201580068257A CN 107004135 A CN107004135 A CN 107004135A
- Authority
- CN
- China
- Prior art keywords
- data
- image
- byte
- computing device
- described image
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 claims abstract description 144
- 230000009467 reduction Effects 0.000 claims abstract description 37
- 238000006243 chemical reaction Methods 0.000 claims description 49
- 238000007906 compression Methods 0.000 claims description 32
- 230000015654 memory Effects 0.000 claims description 29
- 230000006835 compression Effects 0.000 claims description 26
- 230000004044 response Effects 0.000 claims description 26
- 238000003780 insertion Methods 0.000 claims description 2
- 230000037431 insertion Effects 0.000 claims description 2
- 230000008569 process Effects 0.000 description 60
- 238000004422 calculation algorithm Methods 0.000 description 26
- 238000004891 communication Methods 0.000 description 16
- 230000008859 change Effects 0.000 description 15
- 230000008901 benefit Effects 0.000 description 11
- 230000006837 decompression Effects 0.000 description 11
- 238000005516 engineering process Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 238000012546 transfer Methods 0.000 description 8
- 230000000712 assembly Effects 0.000 description 7
- 238000000429 assembly Methods 0.000 description 7
- 229910002056 binary alloy Inorganic materials 0.000 description 7
- 238000004590 computer program Methods 0.000 description 7
- 230000009471 action Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 5
- 238000013144 data compression Methods 0.000 description 5
- 238000002059 diagnostic imaging Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- 239000004148 curcumin Substances 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 238000005259 measurement Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 238000006073 displacement reaction Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 235000017060 Arachis glabrata Nutrition 0.000 description 1
- 241001553178 Arachis glabrata Species 0.000 description 1
- 235000010777 Arachis hypogaea Nutrition 0.000 description 1
- 235000018262 Arachis monticola Nutrition 0.000 description 1
- 241000196324 Embryophyta Species 0.000 description 1
- 230000003321 amplification Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 210000003484 anatomy Anatomy 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000002224 dissection Methods 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 208000014674 injury Diseases 0.000 description 1
- 210000003127 knee Anatomy 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 235000020232 peanut Nutrition 0.000 description 1
- 238000011112 process operation Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 210000003625 skull Anatomy 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001502 supplementing effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 239000010409 thin film Substances 0.000 description 1
- 238000003325 tomography Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000008733 trauma Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/10—Image enhancement or restoration using non-spatial domain filtering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/30—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
- H04N19/33—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the spatial domain
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
- Editing Of Facsimile Originals (AREA)
- Image Processing (AREA)
Abstract
通常,本公开中描述的主题可以体现在用于将图像数据发送到客户端设备的方法、系统和程序产品中。计算系统发送第一图像数据,计算设备能够从所述第一图像数据生成图像的初始显示。初始显示是与图像的全分辨率相比分辨率降低的图像的降低分辨率版本。计算系统发送第二图像数据,计算设备能够从所述第二图像数据生成图像的后续显示。图像的后续显示是图像的中间分辨率版本,其具有高于图像的降低分辨率版本的分辨率并且低于图像的全分辨率的分辨率。
Description
相关申请的交叉引用
本申请要求于2014年10月15日提交的美国临时申请序列号62/064,282和于2014年11月26日提交的临时申请序列号62/085,138的权益,其申请的全部内容通过引用合并于此。
技术领域
本文涉及对数据进行转换和压缩。
背景技术
一些图像很大,诸如通过医疗x射线设备获得的图像。例如,一些完整的(full-filed)数字乳腺X射线图像在未压缩格式的情况下大于50MB。无损图像压缩技术可以减少图像的大小,但图像文件仍然足够大以使得传送整个图像文件到远程计算设备(例如,医疗专业人员已经要求图像的客户端计算设备)要求该远程计算设备处的人员在整个图像通过网络被检索期间、可以查看之前等待。此外,一些图像压缩算法未被集成到某些Web浏览器中。由于这样,客户端侧解压缩算法可以必须以脚本语言编程(例如,JavaScript)并且在图像可以被解压缩之前被传送到客户端计算设备。在脚本语言中编程的解压缩算法可以由Web浏览器脚本引擎执行,尽管这样的引擎执行指令可以比在Web浏览器脚本引擎外执行指令更慢。
发明内容
本文描述技术、方法、系统以及用于转换和压缩数据的其它机制。一般来说,在客户端计算设备处的用户可以请求查看存储在远程计算系统处存储的图像文件。远程计算系统可以生成图像的降低分辨率版本,并传送图像的降低分辨率版本到客户端计算设备,用于显示。在稍后的时候,客户端计算设备可以请求远程计算系统发送数据用于生成图像的中间分辨率版本的显示。计算系统可以发送这样的数据,即使它本身可以作为图像不可见。然而,客户端计算设备可以可以将在图像的降低分辨率版本中的信息与来自图像的中间分辨率版本的数据进行组合来生成图像的中间分辨率版本的显示。
从远程计算系统传送到客户端计算设备的图像信息可以在传送之前被压缩以促进更快地传送数据。此外,远程计算系统可以转换数据以增加由数据表示的数据值的冗余度。这种转换可以在压缩之前执行,以便于增加压缩水平。例如,如果表示图像像素的图像数据不使用每个像素值的一些最高有效位(例如,因为像素值用10位存储,但是10位信息存储在两个8位的字节中),则远程计算系统可以分割构成每个像素值的数据(例如,在存储像素值的字节之间均匀地或基本均匀地)。因此,可以出现在每个所存储的字节中的唯一值的数目可以减少,并且数据值的重复(以及由此的压缩程度)可以增加。
作为对下面描述的实施例的附加描述,本公开描述了以下实施例。
实施例1是用于将图像数据发送到客户端设备的计算机实现的方法。所述方法包括由计算系统接收对将图像数据发送到计算设备的第一请求。所述方法包括由计算系统发送第一图像数据并且由计算设备响应于已经接收到第一请求而接收所述第一图像数据,计算设备能够从第一图像数据生成图像的初始显示,其中图像的初始显示是与图像的全分辨率相比分辨率降低的图像的降低分辨率版本。所述方法包括由计算系统接收对将图像数据发送到计算设备的第二请求。所述方法包括由计算系统发送第二图像数据并且由计算设备响应于已经接收到第二请求而接收所述第二图像数据,计算设备能够从第二图像数据生成图像的后续显示,其中图像的后续显示是图像的中间分辨率版本,图像的中间分辨率版本具有比图像的降低分辨率版本的分辨率高并且比图像的全分辨率低的分辨率,其中通过从图像的中间分辨率版本中的像素的值中减去图像的初始显示中的像素的值来先前生成第二图像数据的部分,其中第二图像数据被配置以使得计算设备能够通过将第二图像数据与第一图像数据组合来生成图像的后续显示。
实施例2是实施例1的计算机实现的方法,进一步包括由计算系统,通过压缩对图像的初始显示进行编码的数据或压缩表示对图像的初始显示进行编码的数据的转换的数据来生成第一图像数据。
实施例3是实施例1的计算机实现的方法,其中,图像的中间分辨率版本被配置以使得计算机能够通过将图像的中间分辨率版本与附加图像数据组合而无损地重新创建图像的全分辨率。
实施例4是实施例1的计算机实现的方法,其中第二图像数据包含没有附加的图像数据不足以从中生成图像的版本的显示的信息。
实施例5是实施例1的计算机实现的方法,进一步包括由计算系统生成第一图像数据,其中生成第一图像数据包括通过对分辨率高于图像的初始显示的图像的版本中的多个像素的值进行组合来生成第一图像数据的部分,所述第一图像数据的部分表示图像的初始显示中的像素的值。
实施例6是实施例1的计算机实现的方法,其中,将图像数据发送到计算设备的第二请求由计算设备发送,以被计算系统接收,作为计算设备接收用户输入以放大到图像的初始显示的结果。
实施例7是实施例1的计算机实现的方法,进一步包括由计算系统并且基于识别计算设备的显示特性的数据来确定发送第一图像数据,计算设备从第一图像数据能够生成图像的降低分辨率版本,所述第一图像数据区别于从中能够生成图像的其他分辨率版本的图像数据。
实施例8是实施例1的计算机实现的方法,其中图像的中间分辨率版本的存储在存储器中的大小大于第二图像数据的未压缩形式的存储在存储器中的大小。
实施例9是实施例1的计算机实现的方法,进一步包括由计算系统生成第一图像数据,其中图像中的像素值各自被编码为双字节数据单元,并且其中生成第一图像数据包括:(i)由计算系统识别其中对像素值进行编码的每个双字节数据单元中的位数量,其中位数量是双字节数据单元中所有位的子集,其中位数量跨越每个双字节数据单元中的位的范围,以及(ii)由计算系统将位于每个双字节数据单元中位的范围的上半部的位移位到每个双字节数据单元中的不同位置,同时将位于每个双字节数据单元中位的范围的下半部的位留在其原始位置。
实施例10是实施例9的计算机实现的方法,其中位的范围占据全部双字节数据单元的最低字节以及双字节数据单元的最高字节的子集。
实施例11是实施例9的计算机实现的方法,其中,在计算系统已经将位于所述不同位置的上半部的位移位之后,生成第一图像数据包括对一起包括图像的双字节数据单元的组合进行压缩。
实施例12是实施例1的计算机实现的方法,进一步包括由计算系统通过移动像素的多字节表示中的位的子集来生成第一图像数据,使得位的子集从占据像素的多字节表示的第一字节的部分和像素的多字节表示的第二字节的部分移动到仅占据像素的多字节表示的第二字节的部分。
实施例13是实施例12的计算机实现的方法,其中将位的子集从占据第一字节的部分和第二字节的部分移动到仅占据第二字节的部分包括将二进制零插入第一字节的部分中,位的子集已经先前位于所述第一字节的部分处。
实施例14是实施例1的计算机实现的方法,进一步包括由计算系统通过在每个双字节数据单元的第一字节和每个双字节数据单元的第二字节之间均匀地扩展在多个双字节数据单元中编码的二进制数据,来生成第二图像数据,使得二进制数据由每个双字节数据单元的第一字节中的一定数目的位以及每个双字节数据单元的第二字节中的一定数目的位表示。
实施例15是实施例14的计算机实现的方法,其中:第一字节中一定数目的位与第二字节中一定数目的位相同;第一字节中一定数目的位是第一字节中位的子集;以及第二字节中的一定数目的位是第二字节中位的子集。
实施例16是实施例15的计算机实现的方法,其中在多个双字节数据单元中编码的二进制数据是由计算系统对图像的全分辨率或图像的降低分辨率版本执行的delta编码过程的结果。
实施例17是一种计算机实现的方法。所述方法包括由计算系统接收对将图像数据发送到计算设备的第一请求,计算设备能够从所述第一请求生成图像的初始显示。所述方法包括由计算系统从图像的全分辨率生成第一图像数据,以及从图像的全分辨率生成第二图像数据。生成第一图像数据包括:(i)生成与图像的全分辨率相比分辨率降低的图像的降低分辨率版本,其中图像的降低分辨率版本中的像素被存储在多字节数据单元中,(ii)在相应的多字节数据单元中的每个字节之间均匀地重新布置若干个位,所述若干个位在每个相应的多字节数据单元中编码每个像素值,以及(iii)在对每个相应的多字节数据单元的每个像素的值进行编码的所述若干个位被均匀地重新布置之后,通过压缩过程发送在多字节数据单元中编码的数据。所述方法包括由计算系统发送第一图像数据并由计算设备响应于已经接收到第一请求而接收所述第一图像数据,计算设备能够从所述第一图像数据生成图像的初始显示,其中图像的初始显示是与图像的全分辨率相比分辨率降低的图像的降低分辨率版本。所述方法包括由计算系统接收对将图像数据发送到计算设备的第二请求,计算设备能够从所述第二请求生成图像的后续显示。所述方法包括由计算系统发送第二图像数据并由计算设备响应于已经接收到第二请求而接收所述第二图像数据,计算设备能够从所述第二图像数据生成图像的后续显示,其中图像的后续显示是图像的中间分辨率版本,所述图像的所述中间分辨率版本具有高于图像的降低分辨率版本的分辨率并且低于图像的全分辨率的分辨率,其中通过从图像的中间分辨率版本中的像素的值中减去图像的初始显示中的像素的值来先前生成第二图像数据的部分,以及其中第二图像数据被配置以使得计算设备能够通过将第二图像数据与第一图像数据组合来生成图像的后续显示。
实施例18涉及一个或多个包括指令的计算机可读设备,所述指令当由一个或多个计算机处理器执行时,使得执行根据实施例1到17中任一个的方法的动作。
在某些情况下,特定实施方式可以实现以下优点中的一个或多个。在客户端计算设备上查看大图像文件可以比将整个图像传送到客户端计算设备然后呈现以查看更快。当图像的较低分辨率版本已经被下载到客户端计算设备时显示图像的中间分辨率版本可以不要求下载在较低分辨率的图像数据还没有被下载到客户端计算设备的情况下查看图像的中间分辨率版本所需要的所有信息。在数据字节之间均匀地呈现以供压缩的分割信息可以减少所述数据的值的范围以及所述数据中值的重复,这可以提高数据的压缩水平。
在附图和下面的描述中阐述一个或多个实施方式的细节。其他特征、对象和优点从描述和附图以及权利要求中将是显而易见的。
附图说明
图1图示出了用于将图像数据从计算系统传送到计算设备的系统和各种方法。
图2图示出了用于生成图像的较低分辨率版本以及重建到包括原始无损版本的较高分辨率版本所需的数据的过程。
图3图示出了将图像转换为图像的较低分辨率版本以及重建到包括原始无损版本的较高分辨率版本的数据的过程。
图4图示出了通过在数据的字节之间重新布置数据的位来转换图像数据的过程。
图5A-B图示出了用于对图像数据进行delta编码以及通过查找表重新映射经delta编码的数据的过程。
图6是可以用于实现本文中描述的系统和方法的计算设备的框图,作为客户端或作为服务器或多个服务器。
各附图中的相同附图标记指示相同的元件。
具体实施方式
所述文大体上描述了转换和压缩数据。例如,图像数据可以被分开成代表图像的不同分辨率视图的数据层。与较低分辨率视图相对应的层可以被传送以被客户端计算设备接收,然后客户端计算设备显示图像。计算设备可以通过将来自较低分辨率视图的数据与可以用于生成较高分辨率的视图的数据进行组合来显示图像的较高分辨率的版本。实际上,计算设备可以通过部分地使用较低分辨率的图像信息并部分使用较高分辨率的图像信息来无损地重建图像的较高分辨率视图。
此外,在每个图像数据层被传送到客户端计算设备之前,所述图像数据层可以经历无损数据转换和压缩过程。无损数据转换可以涉及改变存储在多字节单元信息中的值,使得构成所述值的二进制值在多个字节之间被均匀地或有些均匀地存储,这可以减少在数据中重复的值的数目并增加后续数据压缩(例如,利用来自符号查找表中的符号替代数据,或者利用诸如Huffman编码或deflate的站点特定压缩算法)。系统的这些和其它方面在下面的图中描述。
图1图示出了用于将图像数据从计算系统102传送到计算设备104的系统和各种方法。在所述示例中,计算系统102可以是单个计算机或计算机的集合,诸如使用一个地理上分散的服务器集合操作的云计算系统。计算设备104可以是移动电话,如图1所示,或者可以是诸如平板计算机、膝上型计算机或桌面计算机的各种其他形式的计算设备。所述系统不限于将图像数据从医疗保健组织的计算系统传送到医疗专业人员的计算设备,但是在本说明书中的示例将参考这样的布置以便说明系统的益处。
在框110处,计算设备104接收请求图像的用户输入。例如,计算设备104的用户可以已经启动了应用程序(例如,“应用(app)”),或者被导航到被配置为向医疗专业人员的计算设备提供医学图像的网站。作为一个例子,医生可以只带有他的手机离开医院,并且立即需要查看刚刚入院的创伤受害者的高分辨率图像。医生可以打开医学图像查看器应用程序或访问网站,并且作为响应,被呈现医生可以在他的电话104上查看的图像的多个链接或缩略图。(在一些实施方式中,缩略图是通过框206(图2)的过程生成的图像的较低分辨率版本。)医生可以为特定图像选择链接或缩略图,并且作为响应,计算设备104可以传送对图像的请求(框112)。
在框112处,从移动计算设备104传送对图像的请求由计算系统102接收。所述请求可以具体地识别出所请求图像的低分辨率版本,或者可以简单地识别图像,并且计算系统102可以确定是发送图像的全分辨率版本还是图像的较低分辨率版本。在一些示例中,请求112或从计算设备104到计算系统102的先前通信可以包括识别计算设备104的显示能力的信息。例如,请求104可以包括识别移动电话的类型或移动电话的显示的最大分辨率(例如,1334x 740像素)的信息。在一些示例中,计算系统102可以接收指定计算设备104的数据传送能力的信息(例如,由计算设备104通过网络接收信息的速度,或者计算设备104当前是否通过小区信号塔或通过Wi-Fi连接到互联网)。
计算系统102接收请求112,并且作为响应发送由计算设备104接收的低分辨率图像数据132(框116)。低分辨率图像数据132可以由计算系统102响应于已经接收到的请求112而生成,或者可以已经由计算系统102在先前的时间点生成(例如,原始图像130可以已经预先被处理以生成图像数据132、134和136)。事实上,低分辨率图像数据132(以及诸如中间分辨率图像数据134和高分辨率图像数据136的图像数据的其它层)可以已经由不同的计算系统生成并且由计算系统102传送以进行存储。生成图像数据132、134和136的各个层的动作由框114表示,其将参照图2更详细地描述,在返回到图1描述框116至124之前这个描述的焦点将转向图2。
图2图示出了用于生成图像的较低分辨率版本和重构包括原始无损版本的较高分辨率的图像所需的图像数据的过程。所述过程可以接收图像130(在此有时被指代为全分辨率图像)作为输入,并且可以输出表示不同分辨率水平的图像的数据的多个压缩数据块132、134和136。为了产生压缩数据块132、134和136,所述过程可以产生未压缩数据140、222和224的对应块。然后,未压缩数据块140、222和224可以被delta编码并通过查找表(框208)重新映射以产生经编码和重新映射的数据块230、232和234。然后可以进一步转换delta编码和重新映射的数据以增加数据中的数据值的复制(框210)以产生经转换数据块240、242和244。然后可以压缩所述信息(框212)以产生上述压缩数据块132、134和136,其中一些块可被传送以供计算设备104接收。图2中示出的每个框在以下结合附加细节进行说明。
在框202处,计算系统接收生成图像的较低分辨率版本的请求202,以及重建包括原始无损版本的图像的较高分辨率所需的图像数据。请求202可以与请求112(图1)相同,可以是独立请求,或者可以是由请求112(图1)发起的请求。用于生成图像的较低分辨率版本的请求202可以指定图像的期望的或目标较低分辨率版本,或者可以不指定。请求202可以识别要为其产生较低分辨率版本的图像。在所述图示中,图像130是全分辨率图像,其中框114的过程将为其生成较低分辨率的版本(例如,较低分辨率版本132)。在所述图示中,图像130是用户头部的医学图像(例如,头部颅骨的计算机断层(CT)扫描)。
在方框204,计算系统102对图像进行预处理。预处理可以包括在排除像素填充值的同时计算最小和最大像素值。预处理还可以包括将位于图像中所示的解剖结构外的像素的值改变为最小像素值。例如,医学成像设备可以将像素填充值插入到图像中以表示图像的那些部分,所述图像的那些部分基本上是填充图像的侧面以满足特定图像形状以及不表示由医学成像设备捕获的数据的填充信息。像素填充值可以由医学成像设备设定为任意数目(例如,“FFEE”十六进制),并且预处理可以将这些值改变为比最小像素值少一的值(例如,最小值为“0001”十六进制,将像素填充值重新映射为“0000”十六进制)。
图像的预处理还可以包括从图像中的每个像素减去minPixelValue,其可以作为最小值“0000”(十六进制)。这样做可以提供由客户端计算设备104处理图像数据的性能提升,因为一些JavaScript引擎被优化以访问基于零的阵列。
在框206处,计算系统将图像转换成图像的较低分辨率版本。现在参照图3更详细地描述所述过程,尽管所述描述稍后将返回到描述图2的框208、210和212。
图3图示出了将图像转换成图像的较低分辨率版本的过程。尽管图2指示所述过程将在512KB图像130上执行,图3中的过程的简化说明参考16像素图像210示出。框206的过程包括多个迭代或递归转换,如下所述。
转换的初始迭代在原始图像210的四个像素块上(例如,每个2×2像素块上)进行操作。在所述图示中,参考像素P1至P4描述转换过程,尽管可以将相同的过程应用于像素P5至P8、像素P9至P12以及像素P13至P16。参照像素P1至P4,所述过程使用图3所示的转换部分290所示的算法。特别地,计算系统生成像素P1至P4的总和(例如,Sum=P1+P2+P3+P4),然后生成所述和的近似值(例如,A(近似)=Sum/4)。(在一些实施方式中,近似是和的平均值)。转换值D1至D3和M是使用转换部分290中所示的其他算法生成的(例如,M(模数)=Sum%4);D1=P1-A;D2=P2-A;D3=P3-A)。因此,转换的单次迭代生成转换数据220。(在所述示例中,“A(近似)”值被示为A1,因为来自其他转换的A值被呈现为A2、A3等)。从四个像素的每个转换输出的“A”或“近似”值表示这四个像素的近似值。作为一个粗略的比喻,每个四像素组的阴影混合在一起以产生单一的阴影。在一些实施方式中,所述过程可以对不同于2x2(例如,1×4,3×3等)的像素块进行操作。在一些实施方式中,由处理每个像素块产生的值可以不同于精确的平均值或算术平均值,并且另外可以将块中的每个像素的值组合成单个像素值。
来自初始转换的所有A值可以被组合以生成图像230的降低分辨率版本,其将具有与原始图像210的四分之一像素一样多的像素(或近似数字,当原始图像210中的像素数目不能被四整除)。在一些示例中,图像230的所述降低分辨率版本是被发送到客户端计算设备104的图像。
在一些示例中,对图像230的降低分辨率版本执行转换的另一次迭代。例如,计算系统可以确定图像230的降低分辨率版本是否已经满足用于传送到客户端计算设备104的标准。例如,计算系统102可以存储默认分辨率,在所述默认分辨率它将停止递归地应用转换(例如,一旦图像的降低分辨率版本处于诸如128×128的阈值分辨率,或者当确定转换的另一次迭代将产生具有小于阈值分辨率的分辨率的图像)。
在一些实施方式中,计算系统102可以停止执行过程的阈值分辨率小于计算设备102的分辨率(例如,256×256像素)。在一些实施方式中,计算系统102可以停止执行过程的阈值分辨率可以基于识别计算设备104的分辨率的信息来确定。例如,计算系统102可以接收指示计算设备104具有分辨率为1334×740像素的显示器的信息,并且因此可以执行转换的连续迭代,直到创建了具有1334×740或更大分辨率的图像230的降低分辨率版本,并且其中转换的另一次迭代将产生图像230的甚至更降低分辨率版本,其将落在1334×740分辨率阈值以下。换句话说,框206的过程可以被配置为连续执行上述转换,直到适当分辨率的图像被创建以在计算设备104上显示。适当的分辨率可以等于或恰好高于计算设备的显示器的分辨率,因为在计算设备上的显示器上不会呈现任何更大的分辨率。如果用户放大图像,则可以从计算系统检索附加信息以生成图像的较高分辨率版本。在一些示例中,将基于所识别的计算设备104到其网络连接速度或其与网络的连接类型来确定要生成并发送到客户端计算设备的图像的分辨率。
所述描述现在转向描述对从初始转换输出的A值的四字节或像素组合执行的转换的后续迭代。例如,可以对图像230的降低分辨率版本中所示的A1至A4值执行转换。在这种转换的递归应用中,为了转换部分290中示出的算法的目的,每个A值被视为“P”值。所述处理由图3所示的A1至A4的替选名称反映(即,数据替选地被称为P1'至P4')。这些算法的应用产生包括A1',D1',D2',D3'和M'的转换数据240。
在框206中执行的过程的一些版本中,图像的全分辨率和中间分辨率版本可被计算系统102丢弃,并且计算系统240可以存储由过程(图3中所示的A1')创建的图像的最低分辨率版本以及每层转换的D1至D3和M值。(在图3中用点虚线表示可以丢弃但仍然许可无损重构的数据,而转换过程的每个阶段的数据由虚线分组。)针对每层转换存储D1至D3和M值,因为计算系统可以使用图像的最低分辨率版本和“D”和“M”值无损地重新创建原始图像210。例如,可以使用值A1',D1',D2',D3'和M'重新创建图像230的降低分辨率版本。这样做的算法遵循。P1=D1+A。P2=D2+A。P3=D3+A。P4=(A*4)-P1-P2-P3+M。
图2中图示出了各种信息层的这种存储。在所述示例中,图像140是由框206(在所述图示中为128×128×16 32KB图像)的过程生成的最低分辨率图像。数据222表示可以与图像140组合以创建较高分辨率图像(256×256×16 128KB图像)的数据。例如,图像140(图2)可以与像素/图像A1'(图3)相对应,而数据222(图2)可以与D1',D2',D3'和M'(图3)相对应。沿着相似的线,一旦从图像140和数据222创建了较高分辨率的图像,就可以通过将所述图像与可和D1,D2,D3和M相对应的数据224组合来创建甚至较高分辨率图像(图3)。如图3所示,这种反向转换将产生原始图像210。重建可以是无损的。
应当注意,图3中所示的过程206的图示是非典型的,因为它需要一个小的16像素图像,并将其减少到单个像素A1'。在典型的过程中,初始图像将大于16像素,并且输出的图像将大于单个像素。换句话说,方框206中描述的过程在图像减少到单个像素之前将经常停止其转换。
在图2所示的过程中接下来是框208。在框208处,计算系统102对从框206的过程输出的每个数据层(例如,对图像140、数据222和数据224中的每一个)执行各种处理和转换。仍然,本描述将简单地越过其对框208的讨论而进入对框210的讨论。其原因在于对框208和210仅用少量像素来图示,但框208的过程将示例数据简化到这样的程度以至于框210的益处不是清楚的示出。因此,本描述首先图示出了框210的操作和益处,然后转回来描述另一个示例,其中数据由框208的操作处理,然后由框210的操作来处理。在一些实施方式中,可以不执行关于框206描述的转换过程,而是可以执行框208的操作。在一些实施方式中,框208的操作是可选的。
在框210处,计算系统通过在多个字节之间重新布置数据来执行图像数据的转换。例如,图像数据有时被存储为16位字(两个8位字节)的集合,每个字表示图像的单个像素或图像数据的单个通道(例如,用于单个像素的红色、绿色或蓝色数据)。然而,医学成像设备可以不生成可以填充能够由16位字表示的所有值的数据。例如,16位值可以存储0和65,535之间的2的6次方或65,536个不同的值,但是示例的医学成像系统可以仅被配置为图像的单个像素区域生成10位值(即,2的10次方或1024值)。在这样的系统中,每个像素的10位信息仍然可以被存储在一个16位字中。因此,每个字可以浪费6位。此外,来自图像中每个像素的最低字节(即8位)可以包含多达256个不同的值,而最高字节可以仅在其最低二位中包含图像数据,使得来自每个像素的最高字节可以包含不超过四个不同的值。
最低字节值的宽范围意味着用来自查找表的值替代字节中的值的过程可以不是有效的,因为最低字节的查找表可以仍然包含多达256个值。(在所述描述中,可以使用符号树而不是查找树)。减少在图像中的所有最低字节之间发现的唯一值的数目的处理可以增加值的重复。这种增加的重复的示例益处可以包括在最低字节中减少数目的唯一值,并且因此减小大小的查找表。减小大小的查找表可以允许图像中最低字节之间的所有值由较小的查找表数目(例如,对于每个最低字节值不超过5位来表示,而不是每个最低字节值都需要8位)。
获得增加的值重复的益处的一种方法是将位于每个最低字节的信息位中的一些移位到最高字节。尽管这增加了可以在最高字节中表示的唯一值的数目,但可以减少在最低和最高字节的组合之间发现的唯一值的总体减少。现在参考图4描述执行所述数据移位过程的转换的示例。
图4图示出了通过在数据的字节之间重新布置数据来转换图像数据的过程。原始图像数据402表示送入到框210的转换过程的数据。所述数据可以来自图像的任何层,并且不必是来自“原始”图像的数据。例如,如果框208的操作未被执行,则送入到框210的转换过程的数据可以是图像数据140(图2),或者如果框208的操作被执行,则可以是图像数据230(图2)。输入转换过程210的数据也可以是各种示例中的图像130、数据222、数据224、数据232或数据234。
在图4中以十六进制和二进制格式图示出了原始图像数据402。在所述图示中,信息的每个16位字表示图像的像素(因此,像素1至4的标记),但正在处理的数据集中的每个16位字不需要表示像素。例如,在输入数据是数据222(图2)的示例中,所述数据是相对于图3描述的D1',D2',D3'和M'值的集合。值重复表404示出了在包括原始图像数据的八个字节之间表示的五个唯一的8位值。
数据的转换由框410表示,框410包括框412,414和416。
在框412处,计算系统识别使用的位数目。在一些示例中,图像数据伴随有元数据,所述元数据指示每个字的多少位用于表示值。例如,医疗成像设备可以记录10位值,并且可以将数据附加到图像,其指示像素值被记录为10位数据。在一些示例中,计算系统必须识别用于记录值的位数目。例如,计算系统可以分析信息以识别最小值(在所述示例中为“0000”十六进制)和最大值(在所述示例中为“0208”十六进制)。在所述跨度之间表示的值的范围仅占据10位信息,因此可以将10位设置为数据的动态范围。
在上述示例中,数据从“0000”(十六进制)开始,并且在所述范围的顶部附近不存在值(例如,在“FFFF”十六进制或“EF10”十六进制)处。这可以是由于在框204(图2)执行的预处理,其中将minPixelValue添加到每个图像值。例如,如果最低值为“0004”(十六进制)(表示“0000 0000 0000 0100”二进制),则将数据向下移位到“0000”(十六进制)将减少对两位的需要。类似地,相同的预处理重新映射填充数据,其有时由靠近所述范围顶部的值(例如,在“FFFF”)处表示。在没有重新映射这些值的情况下,可以值的范围从“0000”或其附近一直扩展到“FFFF”。因此,预处理允许相对于框210描述的位重新布置的转换与表示人体解剖的数据值的范围一起工作。因此,预处理可以在框410之前或作为框410的一部分执行,而不是在图2中示出框204的位置处。
在任何情况下,一旦确定了由图像中的每个16位值表示的值的范围,则框414的操作被执行以识别如何重新布置或分割在字的两个字节之间的范围中的值。在值范围内有偶数位(在本示例中为10位)的示例中,则位可以均匀分布在两个字节之间(最高字节中的5位和最低字节中的5位)。在值范围内的位为奇数(例如,11位)的示例中,则位可以基本均匀地分布在两个字节之间(例如,最高字节中的5位和最低字节中的6位,或反之亦然),使得指派给最高字节的位数目和指派给最低字节的位数目相差不多于一位。在一些实施方式中,位指派可以相差多于一位。在一些实施方式中,转换可以不均匀地或基本均匀地在多个字节之间重新布置或分割数据。例如,存储在双字节数据单元中的8位数字的转换可以移动数据,使得单个位被存储在较高字节中,并且八位中的七位在最低字节中。
在框416,图像数据的每个字的较高字节用指派给较高字节的位数填充,并且最低字节用指派给最低字节的位数填充。数据从最初识别的值范围填充。例如,将像素1的转换示出为图4中的项420。所述示例示出范围为10位的字。作为转换的结果,最低的5位留在字的最低字节中,并且最高的5位被移动到字的最高字节。所述过程可以包括掩模或指派“0”值给没有指派的最低字节中的位。在这个示例中,除了在实质数据的第5位和第6位之间插入“000”(二进制)之外,最高字节开始处的位和最低字节开始处的位按顺序表示原始数据。数据在此示例中保留其原始顺序,但数据也可以不保留其原始顺序。
应当注意,由像素1的转换示出的10位的范围以二进制“1”开始,并以二进制“1”结束,但不一定必须是这种情况。例如,所使用的被识别的位的数目是被翻译的数据的所有值之中的位的数目。作为示例,值“0000 0000 0000 0100”(二进制)可以具有10位的范围,并且可以相应地操作。
经转换的图像数据430图示出了使用上述过程来转换原始图像数据402中数据的的四个像素的结果。如值重复表432所示,经转换的数据430仅包括四个唯一值,在这些值中比在原始图像数据402中具有更多的重复(比较值重复表432与值重复表404,其中所述值重复表432具有Shannon熵值为1.9(8位)和2.0(16位),所述值重复表404具有Shannon熵值为2.2(8位)和2.0(16位))。
在一些实施方式中,参考图4描述的转换过程可以利用使用大于16位的数据量记录的数据来执行。例如,转换过程可以以3字节(24位)、4字节(32位)或更多的数量所存储的数据执行。在每个示例中,可以不要求指定数据量中的所有位的原始数据在数据量的字节或子部分之间重新布置或分割。在一些实施方式中,数据量不是8位字节的倍数。例如,可以将数据记录在两个5位数据子单元的数据量中,但是数据可以只填充两个5位数据子单元的8位。因此,可以扩展数据,使得每个5位数据子单元存储四位。
虽然本公开讨论了关于图像数据的数据扩展转换过程,但是转换及其益处不限于图像数据,并且可以用于增加其中每个数据值被存储在多字节数据单元中的其他类型的数据的值的重复,但数据值不跨越多字节数据单元可以表示的整个值范围。数据扩展转换过程也将受益的示例场景是高保真科学测量数据。例如,测量精确距离、温度或速度的科学测试仪器,可以生成存储在16位或24位数据单元中的信息,但信息可以使用少于所有所要求的数据单元。在本文中描述的技术(至少相对于图2的框208、210和212描述的技术)可以用于在不执行本文中的其他过程的操作(例如,相对于图3所描述的那些)的情况下转换和压缩这样的数据。
返回到由图2框202至212的组合所示的框114的过程,框210处的数据的转换结果是数据240、242和244,然后数据240、242和244在框212处被压缩。在一些示例中,压缩包括单独地或由gzip程序实现的应用deflate数据压缩算法。也可以使用其他压缩算法。在一些实施方式中,代替应用压缩算法或作为应用压缩算法的部分,经转换的图像数据通过LZ77运行或由其检测到重复的串并被串和重复数目替代的其他过程运行。例如,如果检测“E100E100E100E100”(十六进制),则可以用“E100”以及距离2和长度为6的特殊符号替代。(距离和长度值被识别为2和6,因为有4次重复十六进制字节“E1”和“00”,并且LZ77放置一个特殊的标记,指示所述过程应该在流中返回一个“距离”字节数,并重复最多为“长度”字节,因此在“E100”之后将是特殊代码说回到“E100”之前的2个字节,并重复最多6个字节,这扩展到这两个字节“E100E100E100E100”的附件的3个复本。)用更紧凑的表示替代重复的串,由于表示重复的串所需的位较少,可以降低数据的整体大小。从LZ77或类似过程导致的压缩水平随着数据中重复值水平的增加而增加。至少由于这个原因,在LZ77或类似过程之前应用数据重新布置转换可以增加压缩水平。
在一些实施方式中,代替应用压缩算法或作为应用压缩算法的部分,经转换的图像数据或经由LZ77或类似过程进行的其他数据通过Huffman编码器或一些其他过程来运行,通过这些其他过程创建符号树来用使用较少位来编码更常见的符号的不同符号替代经转换的图像数据中找到的值。例如,如果“E1”(hex)是图像数据中最常见的值,则可以使用少于8位进行编码。通过符号树映射经转换的数据中的值可以降低数据的总体大小,因为通常使用比原始符号更少的位来编码通常出现的符号。进一步地,当将数据提供给这样的替代过程包括更小数目的唯一值(并且那些值被重复更多)时,压缩水平可以增加,因为可以存在更少替代值,并且因此最长的替代值可以在单个二进制长度上较小。因此,在替代过程之前应用数据重新布置转换可以增加由替代过程导致的压缩。
现在回到框208(图2),生成图像的较低分辨率层的框114中的过程可以包括对图像的较低分辨率版本进行delta编码,并在应用框210的数据重新布置转换之前通过查找表重新映射经delta编码的数据。相对于图5A-B描述所述过程的示例图示。
图5A示出了输入到过程500中用于对数据进行delta编码并应用查找表的原始图像数据502。原始图像数据502表示输入到过程500,诸如数据140、222和224(图2),并不一定意味着数据是原始图像130的数据。如值重复表504所示,原始图像数据要求三个唯一的16位值,并且仅包括单个重复实例。在本例中,原始数据的Shannon熵值为2.2。在典型图像中,原始图像数据502可以包括更多的16位值,使得将存在更多唯一的16位值。
在框510处,delta编码过程例如由计算系统102应用于原始图像数据502。delta编码是将数据存储或传送作为顺序数据值之间的差异的方式,而不是作为每个数据值的绝对值的方式。例如,由于原始图像数据502中的像素1和像素2之间的变化为“1”,像素2的值可以简单地为“1”。类似地,因为像素2和像素3之间的变化是“1”,像素3的值可以是“1”。像素3和像素4之间的变化为“-1”(整数),因此像素4值可以是“FFFF”(十六进制)。为了简化这里的说明,像素1的值被设置为“0”,即使一系列经delta编码的值中的第一值有时将被设置为其绝对数以使得所述系列中的每个数据值的绝对值可以恢复。
delta编码过程的输出的整数值(即,0、1、1、-1)在项512处示出,并且经delta编码的值的十六进制和二进制表示由标记为经delta编码的数据520的项显示。如值重复表522所示,所述四像素示例仍然包括三个唯一的16位值,尽管可以通过包括多于四个16位值的数据(例如,在512KB图像中)注意到唯一值的减少。此外,8位字节的值重复从五个(对于原始图像数据502)减少到三个(对于经delta编码的数据)。类似地,Shannon熵已从2.2降至1.5。
在框530和532处,创建正向和反向查找表540和542,计算系统102将使用其来将经delta编码的数据重新映射到新的数据值。例如,正向查找表540可以用于将经delta编码的数据520中重复最多的数据值映射到要求其表示的最少位的值。例如,在此示例中由于值“0001”(十六进制)是重复最多的值,所以所述表可以将所述值映射到“00”(十六进制)。从这个说明显而易见的是,以这种方式映射数据的另一个益处是,如果在原始集合中唯一值的数目可以由这样的较小的数字表示,16位值的集合可以被映射到需要较少数据(例如,8位值)的值的集合。可以通过按照出现频率对值进行排序来创建正向查找表540。可以通过镜像正向查找表530中的值来创建反向查找表532。在数据被压缩并被传送到客户端计算设备104之前,计算系统102可以使用正向查找表540来重新映射经delta编码的数据520,同时客户机计算设备104可以使用反向查找表542来反转经delta编码的数据的映射。
在框550处,使用正向查找表540重新映射经delta编码的数据。这导致1、0、0、2(整数)的输出数据流。所述数据还在重新映射的数据部分560(图5B)处以十六进制和二进制被识别。如值重复表562所示,唯一的16位值的数目仍然为3,但Shannon熵已进一步降至0.8。如果对具有更多数据值的数据集合执行过程,则唯一16位值的数目可以降低。
在框580处,560中的数据被转换,使得由每对MSB和LSB字节表示的数据在两个字节之间被均匀地或基本均匀地重新布置或分割,这导致单个字节阵列582和584。参考图4更详细地描述数据重新布置过程。如值重复表590和592所示,Shannon熵进一步降低。尽管图4图示出转换后的图像数据430被输出为单个阵列,其包括每个16位字的最高8位字节(也称为最高有效字节或MSB)和每个16位字的最低8位字节(也称为最低有效字节或LSB),图4的过程可以将经转换的图像数据430输出为两个阵列-一个用于MSB,一个用于LSB,如图5B所示。将信息指派到MSB和LSB的单独阵列中可以进一步增加字节流中的重复值的数目,这可以进一步增加后续数据压缩算法执行的压缩水平。例如,压缩过程可以分别对每个阵列进行操作,使得为每个阵列创建单独的查找表。可以在上述位重新布置之前、在位重新布置之后或者与位的重新布置同时执行到两个阵列的转换。
如前所述,数据重新布置过程在经delta编码的数据的简单四值分析中并不明显。在所述示例中,可能值的范围被限制为两位,因此重新布置或分割LSB与MSB之间的值仅导致对像素4的数据的改变的值,其中值从“0000 0000”(MSB二进制)“0000 0010”(LSB二进制)到“0000 0001”(MSB二进制)“0000 0000”(LSB二进制)改变。换句话说,两位数“01”(二进制)最初完全存储在LSB的最后两位,但重新布置所述数字使得一个位被存储在MSB中并且一位被存储在LSB中导致二进制“1”从LSB被移动到MSB。
现在回到图1,计算系统102响应于已经接收到对图像数据112的请求,返回低分辨率图像数据(框116)。图1图示出了低分辨率图像数据132是从图像130生成的图像数据层132、134和136的多个集合中的一个。如相对于图2所描述的,图像数据132可以是应用了各种转换和数据压缩算法的图像130的降低分辨率版本。由于如此,低分辨率图像数据132可以要求在其作为图像显示之前进行处理,因此在图1和图2中图示出了作为阴影数据块而不是图像的低分辨率图像数据132。
在一些示例中,低分辨率图像数据132是由框114的过程生成的最低生成的图像数据层。在一些示例中,框114的过程先前生成了多个图像数据层,并且计算系统102基于计算设备104的显示特性来选择要发送到计算设备104的适当的数据层。由于这样,计算系统102可以向具有不同显示特性的不同计算设备提供不同图像数据层,响应于来自每个不同计算设备的对相同图像的初始请求。
在框118处,计算设备104接收低分辨率图像数据132,处理低分辨率图像数据132以生成可显示为低分辨率图像140的数据,然后显示低分辨率图像140,例如,在计算设备104的LCD显示器上。更具体地,计算设备104可以通过诸如互联网的网络来接收图像数据132,其中计算设备104可以在地理上远离并且与计算系统102分开。计算设备104可以需要撤消由计算系统102应用于图像数据132的转换和数据压缩过程,以便将图像数据132还原成可视形式作为低分辨率图像140。
例如,计算设备104可以通过应用反转在框212中应用的压缩过程的过程(例如,通过反转gzip以及deflate的压缩过程)来解压缩图像数据132。可以通过在许多web浏览器中发现的deflate的解压缩算法的本地实施方式来执行图像的解压缩。如前所述,可以使用其他压缩和解压缩算法。然而,一些Web浏览器可以不包括某些解压缩算法的本地实施方式。结果,解压缩指令可以用脚本语言(例如,JavaScript)来描述,然后如果期望,由web浏览器的脚本语言引擎来执行。然而,在web浏览器中使用脚本语言引擎执行解压缩算法可以比在web浏览器中本地实现的解压缩算法来执行解压缩算法更低效。此外,解压缩指令可以需要被传送到计算设备,这可以进一步延迟显示图像所需的时间。仍然,无论解压缩算法是否由web浏览器本地实现,本说明书中讨论的技术的许多益处都可以实现。
在框120处,计算设备104向计算系统102发送对中间分辨率图像数据的请求120。计算设备104可以响应于在计算设备104显示低分辨率图像140之后接收到的用户输入来发送请求,或者可以是在计算设备104接收到低分辨率图像数据132之后并且在计算设备104接收低分辨率图像数据132之后没有用户输入时由计算设备104自动发送。
作为说明,计算设备104可以在计算设备104的显示器上显示低分辨率图像104。尽管本文将所述图像称为“低分辨率”,但是所述分辨率可以匹配或超过计算设备104的显示能力。如果用户期望放大图像,例如查看图像中具有更多细节的描绘的人体解剖结构的部分,则由计算设备104存储的图像的当前版本可以没有足够的分辨率来显示具有匹配或超过计算设备104的分辨能力的细节的放大区域。由于如此,用于放大区域的较高分辨率图像可以是有益的,并且计算设备104可以发送对可以从其生成较高分辨率图像的信息的请求120。
计算设备104可以响应于计算设备104接收请求显示较高分辨率图像数据的用户输入(诸如导致计算设备的显示放大图像使得图像的某部分被放大以占据比缩放操作之前更大的显示空间的请求)而发送请求120。在一些示例中,计算设备104可以在计算设备104接收到初始图像数据132之后,并且在计算设备处完全没有接收到用户输入的情况下,或者在被定向发送请求120的计算设备处没有接收到用户输入的情况下,发送请求120。因此,计算设备104可以在用户与图像交互之前接收用于生成图像的较高分辨率版本的数据134,并且由于数据134已经存储在计算设备104处,所以响应于用户输入请求执行缩放动作,计算设备104可以能够立即呈现图像的放大显示,而不在接收到对执行缩放动作的用户输入请求之后从计算系统102接收数据。
在一些实施方式中,计算系统102在没有从计算设备104接收另一请求的情况下发送中间分辨率图像数据134。例如,计算系统可以被配置为初始发送低分辨率图像数据132,然后,立即或延迟之后,在没有从设备104接收独立于初始请求112的对这种数据的请求的情况下,发送中间分辨率图像数据。
在一些实施方式中,计算系统响应于请求120发送到计算设备104的数据134是计算设备104可以在有或者没有解压缩和数据转换以及没有其他图像数据的情况下处理的信息,以生成图像的较高分辨率的显示(例如,诸如通过发送图3所示的“A”值的集合,或其经转换和/或经压缩版本)。仍然,响应于请求120从计算系统102传送到计算设备104的数据量可以通过传送图像数据层的“D”和“M”值来减少,从所述图像数据层“A”值被先前发送,而不是发送较高分辨率水平的“A”值(例如,因为M值可以是小于16位A值的2位值,并且因为D和M值可以具有比A值更低的熵而因此可以更好地压缩)。这是因为计算设备104能够将来自先前发送的图像140的“A”信息与“D”和“M”值组合以无损地创建图像的较高分辨率版本,如下所述。
在框124处,计算设备在接收到图像数据134之后,通过将来自低分辨率图像140的数据与新接收的图像数据134组合来生成中间分辨率图像。在一些示例中,计算设备104可以不能在不使用图像140中的数据的情况下生成从中间分辨率图像数据134合理地近似由全分辨率图像130所描绘的内容的图像的显示。作为松散而不完全准确的概括,计算设备104可以使用中间分辨率图像数据134在先前显示的图像140中“填充”细节。用于从低分辨率图像重新创建较高分辨率图像的算法和附加数据在这个描述中在前描述。例如,可以使用值A1',D1',D2',D3'和M'来重建图像230(图3)的降低分辨率版本。这样做的算法遵循。P1=D1+A。P2=D2+A。P3=D3+A。P4=(A*4)-P1-P2-P3+M。由于这样,来自较高分辨率图像的像素的值可以是使用来自较低分辨率图像的像素的值和一些最近接收到的数据来生成。
尽管图1描绘了其中计算系统102响应于两个请求112和120发送两组图像信息132和134的示例,计算系统102可以发送图像信息的进一步的集合,计算设备104可以使用所述图像信息的集合来生成图像的甚至较高分辨率的版本,直到计算设备104无损地重建全分辨率图像130为止。例如,响应于从计算设备104到计算系统102的后续请求,计算系统102可以发送图像数据136,可以从其构建图像130的全分辨率。
在一些实施方式中,计算系统102可以响应于单个请求发送多个图像数据层。例如,计算系统102可以响应于来自计算设备104的单个请求来发送图像数据134和图像数据136。这种动作可以有帮助的示例场景是当接收到显著放大图像的用户输入。例如,适度缩放可以仅需要图像数据134以较高的分辨率充分地显示图像,但是如果缩放是实质的,则计算系统102可以确定图像数据136也应所述被发送到计算设备104。然后,计算设备104可以对所述过程执行两次迭代以解压缩图像和反转转换。
在一些实施方式中,图像130被分段成多个“图块(tile)”,其中每个图块表示图像130的区域(例如,图像可以包括二乘二的图块网格)。如在本说明书中相对于图像130所描述的,计算系统130可以将每个单独的图块转换成多个较低分辨率的图像数据层。由于如此,响应于对图像的低分辨率版本的请求112,计算系统102可以向客户端计算设备104发送一个或多个图像数据块,其中每个图像数据块表示图像的相应图块的较低分辨率版本。当接收到对放大图像的用户请求时,具有多个图块中的每一个的图像数据层的益处变得显而易见。缩放区域可以仅需要来自包含图像的图块的子集的数据,因此,计算系统102可以仅需要为所述图块子集发送附加的图像数据。因此,来自计算设备104到计算系统102的请求可以指定用户已经请求缩放显示的图像的区域,或者可以指定期望中间分辨率图像数据的图块。
图6是可以用于将本文中描述的系统和方法实现为客户端或服务器或多个服务器的计算设备600、650的框图。计算设备600旨在表示各种形式的数字计算机,诸如膝上型计算机、桌面机、工作站、个人数字助理、服务器、刀片服务器、大型机和其他合适的计算机。计算设备650旨在表示各种形式的移动设备,诸如个人数字助理、蜂窝电话、智能电话和其他类似的计算设备。这里示出的组件、它们的连接和关系以及它们的功能仅仅是示例性的,并不意味着限制本文中描述和/或要求保护的实施方式。
计算设备600包括处理器602、存储器604、存储设备606、连接到存储器604和高速扩展端口610的高速接口608以及连接到低速总线614和存储设备606的低速接口612。组件602、604、606、608、610和612中的每一个使用各种总线互连,并且可以适当地安装在公共主板上或以其他方式安装。处理器602可以处理用于在计算设备600内执行的指令,包括存储在存储器604或存储设备606上的指令,以在外部输入/输出设备上显示用于GUI的图形信息,诸如耦合到高速接口608的显示器616。在其他实施方式中,可以适当地使用多个处理器和/或多个总线以及多个存储器和多个类型的存储器。而且,可以连接多个计算设备600,每个设备提供必要操作的部分(例如,作为服务器组,一组刀片服务器或多处理器系统)。
存储器604在计算设备600内存储信息。在一个实施方式中,存储器604是一个或多个易失性存储器单元。在另一实施方式中,存储器604是一个或多个非易失性存储器单元。存储器604还可以是另一种形式的计算机可读介质,诸如磁盘或光盘。
存储设备606能够为计算设备600提供大容量存储。在一个实施方式中,存储设备606可以是或包含计算机可读介质,诸如软盘设备、硬盘设备、光盘设备或磁带设备、闪存或其它类似的固态存储设备,或包括存储区域网络中的设备或其他配置的设备阵列。计算机程序产品可以有形地体现在信息载体中。计算机程序产品还可以包含指令,所述指令在被执行时执行一个或多个方法,诸如上述的方法。信息载体是诸如存储器604、存储设备606或处理器602上的存储器的计算机可读介质或机器可读介质。
高速控制器608管理计算设备600的带宽密集型操作,而低速控制器612管理较低带宽密集型操作。功能的这种分配仅作为示例。在一个实施方式中,高速控制器608耦合到存储器604、显示器616(例如,通过图形处理器或加速器)以及耦合到可接受各种扩展卡(未示出)的高速扩展端口610。在所述实施方式中,低速控制器612耦合到存储设备606和低速扩展端口614。可以包括各种通信端口(例如,USB、蓝牙、以太网、无线以太网)的低速扩展端口可以是耦合到一个或多个输入/输出设备,诸如键盘、指针设备、扫描仪或诸如交换机或路由器的网络设备,例如,通过网络适配器。
计算设备600可以以多种不同的形式来实现,如图所示。例如,它可以被实现为标准服务器620,或者在一组这样的服务器中多次实现。它也可以被实现为机架服务器系统624的一部分。此外,它可以在诸如膝上型计算机622的个人计算机中实现。替选地,来自计算设备600的组件可以与诸如设备650的移动设备(未示出)中的其他组件组合。这样的设备中的每一个可以包含计算设备600、650中的一个或多个,并且整个系统可以由彼此通信的多个计算设备600、650组成。
计算设备650包括处理器652、存储器664、诸如显示器654的输入/输出设备、通信接口666和收发器668以及其他组件。设备650还可以被提供有诸如微驱动器或其他设备的存储设备,以提供附加存储。组件650、652、664、654、666和668中的每一个都是使用各种总线互连,并且若干组件可以适当地安装在公共主板上或以其他适合方式安装。
处理器652可以执行计算设备650内的指令,包括存储在存储器664中的指令。处理器可以被实现为包括分开和多个模拟和数字处理器的芯片的芯片集。另外,处理器可以使用若干个架构中的任何来实现。例如,处理器410可以是CISC(复杂指令集计算机)处理器、RISC(精简指令集计算机)处理器或MISC(最小指令集计算机)处理器。例如,处理器可以提供用于设备650的其他组件的协同,诸如用户界面的控制,由设备650运行的应用以及由设备650进行的无线通信。
处理器652可以通过耦合到显示器654的控制接口658和显示接口656与用户通信。显示器654可以是例如TFT(薄膜晶体管液晶显示器)显示器或OLED(有机发光二极管)显示器或其他适当的显示技术。显示接口656可以包括用于驱动显示器654向用户呈现图形和其它信息的适当电路。控制接口658可以从用户接收命令并将其变换以提交给处理器652。此外,可以提供与处理器652通信的外部接口662,以使得设备650能够与其他设备进行近区域通信。例如,外部接口662可以提供在一些实施方式中的有线通信,或者在其它实施方式中的无线通信,并且还可以使用多个接口。
存储器664在计算设备650内存储信息。存储器664可以被实现为计算机可读介质,易失性存储器单元,或非易失性存储器单元。扩展存储器674也可以通过扩展接口672被提供并且被连接到设备650,扩展接口672可以包括例如SIMM(单列直插存储器模块)卡接口。这种扩展存储器674可以为设备650提供附加的存储空间,或者还可以存储用于设备650的应用或其他信息。具体来说,扩展存储器674可以包括执行或补充上述过程的指令,也可以包括安全信息。因此,例如,扩展存储器674可以被提供为用于设备650的安全模块,并且可以用许可设备650的安全使用的指令来编程。此外,可以经由SIMM卡以及附加信息来提供安全应用,诸如以不可攻击的方式将识别信息放置在SIMM卡上。
例如,存储器可以包括闪存和/或NVRAM存储器,如下所述。在一个实施方式中,计算机程序产品被有形地体现在信息载体中。计算机程序产品包含指令,所述指令当被执行时,执行一个或多个方法,诸如上述的方法。信息载体是计算机可读介质或机器可读介质,诸如存储器664、扩展存储器674或可以例如通过收发器668或外部接口662接收的处理器652上的存储器。
设备650可以通过通信接口666进行无线通信,通信接口666可以在必要时包括数字信号处理电路。通信接口666可以提供诸如GSM语音呼叫、SMS、EMS或MMS消息,CDMA、TDMA、PDC、WCDMA、CDMA2000或GPRS等各种模式或协议的通信。这样的通信可以例如通过射频收发器668发生。此外,可以发生短距离通信,诸如使用蓝牙、WiFi或其他这样的收发器(未示出)。此外,GPS(全球定位系统)接收器模块670可以向设备650提供附加的导航和位置相关的无线数据,其可以由在设备650上运行的应用适当地使用。
设备650还可以使用音频编解码器660可听地通信,音频编解码器660可以从用户接收说话信息并将其变换为可用的数字信息。音频编解码器660同样可以为用户生成诸如通过扬声器(例如,在设备650的手机中)的可听见的声音。这样的声音可以包括来自语音电话呼叫的声音,可以包括记录的声音(例如,语音消息,音乐文件等),并且还可以包括在设备650上操作的应用生成的声音。
计算设备650可以以多种不同的形式来实现,其中一些在图中示出。例如,它可以被实现为蜂窝电话680。它也可以被实现为智能电话682、个人数字助理或其他类似移动设备的一部分。
另外,计算设备600或650可以包括通用串行总线(USB)闪存驱动器。USB闪存驱动器可以存储操作系统和其他应用。USB闪存驱动器可以包括输入/输出组件,诸如可以插入到另一计算设备的USB端口中的无线发射器或USB连接器。
这里描述的系统和技术的各种实施方式可以在数字电子电路、集成电路、专门设计的ASIC(专用集成电路)、计算机硬件、固件、软件和/或其组合中实现。这些各种实施方式可以包括在可编程系统上可执行和/或可解释的一个或多个计算机程序中的实施方式,所述可编程系统包括至少一个可编程处理器,其可以是专用的或通用的,所述处理器被耦合以从存储系统、至少一个输入设备和至少一个输出设备接收数据和指令,以及向存储系统、至少一个输入设备和至少一个输出设备传送数据和指令。
这些计算机程序(也称为程序、软件、软件应用或代码)包括用于可编程处理器的机器指令,并且可以以高级程序和/或对象导向的编程语言和/或汇编/机器语言来实现。如本文所使用的,术语“机器可读介质”和“计算机可读介质”是指任何计算机程序产品、装置和/或设备(例如,磁盘、光盘、存储器、可编程逻辑设备(PLD))用来向可编程处理器提供机器指令和/或数据。
为了提供与用户的交互,这里描述的系统和技术可以在具有显示设备(例如,CRT(阴极射线管)或LCD(液晶显示器)监视器)的计算机上实现,用于将信息显示给用户,以及用户可以向计算机提供输入的键盘和指针设备(例如,鼠标或轨迹球)。其他类型的设备也可用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈(例如,视觉反馈、听觉反馈或触觉反馈);并且可以以任何形式接收来自用户的输入,包括声音、语音或触觉输入。
这里描述的系统和技术可以在包括后端组件(例如,作为数据服务器)或包括中间件组件(例如,应用服务器)),或者包括前端组件(例如,具有图形用户界面或Web浏览器的客户端计算机,用户可以通过所述图形用户界面或Web浏览器与这里描述的系统和技术的实施方式进行交互),或者这种后端、中间件或前端组件的任何组合的计算系统中实现。系统的组件可以通过数字数据通信(例如,通信网络)的任何形式或介质互连。通信网络的示例包括局域网(“LAN”)、广域网(“WAN”)、对等网络(具有点对点或静态成员)、网格计算基础设施和互联网。
计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离,通常通过通信网络进行交互。客户端和服务器之间的关系是由于在相应的计算机上运行并且彼此之间具有客户端-服务器关系的计算机程序而产生的。
服务器系统可以是提供服务或服务集合的硬件和软件的组合。例如,物理上分开和联网的计算机化设备的集合可一起操作为逻辑服务器系统单元,以处理为数百个计算设备提供服务所必需的操作。本文中描述的计算系统可以是服务器系统。
在各种实施方式中,如果先前的操作不成功(例如,如果确定没有被执行),则不执行“响应于”或“作为另一操作的结果”(例如,确定或识别)”而执行的操作。“自动”执行的操作是没有用户干预(例如,插入用户输入)而执行的操作。用条件语言描述的本文中的特征可以描述可选的实施方式。在一些示例中,从第一设备“传送”到第二设备包括第一设备将数据放置到网络中以供第二设备接收,但可以不包括第二设备接收数据。相反,从第一设备“接收”可以包括从网络接收数据,但可以不包括第一设备传送数据。
由计算系统“确定”可以包括计算系统请求另一个设备执行确定并将结果提供给计算系统。此外,由计算系统“显示”或“呈现”可以包括计算系统发送用于导致另一设备显示或呈现参考信息的数据。
虽然上面已经详细描述了一些实施方式,但是其它修改是可能的。此外,可以使用用于执行本文中描述的系统和方法的其他机制。此外,附图中描绘的逻辑流程不需要所示的特定顺序或序列顺序来实现期望的结果。可以从所描述的流程中提供其他步骤或者消除步骤,并且可以将其他组件添加到所描述的系统中或从所描述的系统中移除。因此,其他实施方式在所附权利要求的范围内。
在一些实施例中,用于转换数据的计算机实现的方法包括由计算系统接收包括各自存储在相应的多字节数据单元内的多个值的数据。多个值中的每一个由比每个多字节数据单元中的位数目少的位数量进行编码,其中编码多个值中的每一个的位数量完全占据每个多字节数据结构的最低有效字节,并且仅部分占据每个多字节数据结构的最高有效字节。计算系统将多个值中的每一个中的位数量中的一些位移动到每个多字节数据结构的最高有效字节,使得对多个值中的每一个进行编码的位数量不再完全占据每个多字节数据结构的最低有效字节。在移动了位数量的一些位之后,计算系统压缩包括多个值的数据,每个值存储在相应的多字节数据单元中。
作为对上述实施例的附加描述,本公开描述了以下实施例。
实施例21是一种用于通过减少由每个多字节数据单元的最低字节表示的若干个唯一值来增加数据的可压缩性的计算机实现的方法,所述数据包括多字节数据单元的集合。所述方法包括由计算系统识别表示值集合的数据,其中每个值由在一起形成数据的多字节数据单元的集合中的多字节数据单元表示。所述方法包括由计算系统识别用于表示每个多字节数据单元中的值的位数量,其中位数量跨越每个多字节数据单元中的位的范围,并且是少于形成每个多字节数据单元的所有位。所述方法包括由计算系统将每个多字节数据单元中的位的子集从(i)占据多字节数据单元的第一字节的部分和多字节数据的第二字节的部分移动到(ii)仅占据多字节数据单元的第二字节的部分,而不占据多字节数据单元的第一字节的部分。方法包括由计算系统在计算系统已经将每个多字节数据单元中的位子集移动后,将由数据中的每个字节识别的值映射到使用比一个字节少一个或多个位的新值。所述方法包括在计算系统已经移动位的子集并且然后映射值之后,由计算系统压缩数据。
实施例22是实施例21的计算机实现的方法,其中表示值的集合的数据是图像数据,并且这些值是多个对应像素的值。
实施例23是实施例21的计算机实现的方法,其中表示值的集合的数据包括由科学测试仪器生成的数据,并且这些值是由科学测试仪器生成的单独测量。
实施例24是实施例21的计算机实现的方法,其中多字节数据单元是双字节数据单元;并且移动每个多字节数据单元中位的子集包括移动位于每个多字节数据单元中的位的范围的上半部分中的位到每个多字节数据单元中的不同位置,同时留下位于其原始位置的每个多字节数据单元中的位的范围的下半部分中的位。
实施例25是实施例24的计算机实现的方法,其中位的范围占据多字节数据单元的最低字节的全部以及多字节数据单元的最高字节的子集。
实施例26是实施例21的计算机实现的方法,其中移动每个多字节数据单元中的位子集包括将二进制零插入到第一字节的部分中,位的子集先前位于第一字节的所述部分处。
实施例27是实施例21的计算机实现的方法,其中移动每个多字节数据单元中的位的子集包括在每个多字节数据单元的第一字节和每个多字节数据单元的第二字节之间均匀地扩展在每个多字节数据单元中编码的二进制数据,使得二进制数据由每个多字节数据单元的第一字节中的一定数目的位和每个多字节数据单元的第二字节中的一定数目的位的表示。
实施例28是实施例27的计算机实现的方法,其中:第一字节中的一定数目的位与第二字节中的一定数目的位相同;第一字节中的一定数目的位是形成第一字节的位的子集;并且第二字节中的一定数目的位是形成第二字节的位的子集。
实施例29是实施例21的计算机实现的方法,进一步包括在移位发生之后由计算系统生成查找表,所述查找表将多字节数据单元的集合中的共同出现的值指派给使用比共同出现的值少一个或多个位的新值,其中在映射中使用查找表。
实施例30涉及一个或多个包括指令的计算机可读设备,所述指令当由一个或多个计算机处理器执行时根据实施例21至30中任一个的方法执行动作。
Claims (18)
1.一种用于将图像数据发送到客户端设备的计算机实现的方法,包括:
由计算系统接收对将图像数据发送到计算设备的第一请求;
由所述计算系统发送第一图像数据并且由所述计算设备响应于已经接收到所述第一请求而接收所述第一图像数据,所述计算设备能够从所述第一图像数据生成所述图像的初始显示,
其中所述图像的所述初始显示是与所述图像的全分辨率相比分辨率降低的所述图像的降低分辨率版本;
由所述计算系统接收对将图像数据发送到所述计算设备的第二请求;以及
由所述计算系统发送第二图像数据并且由所述计算设备响应于已经接收到所述第二请求而接收所述第二图像数据,所述计算设备能够从所述第二图像数据生成所述图像的后续显示,
其中所述图像的所述后续显示是所述图像的中间分辨率版本,所述图像的所述中间分辨率版本具有比所述图像的所述降低分辨率版本的分辨率高并且比所述图像的所述全分辨率低的分辨率,
其中所述第二图像数据的一部分先前通过从所述图像的所述中间分辨率版本中的像素的值中减去所述图像的所述初始显示中的像素的值来生成,以及
其中所述第二图像数据被配置以使得所述计算设备能够通过将所述第二图像数据与所述第一图像数据组合来生成所述图像的后续显示。
2.根据权利要求1所述的计算机实现的方法,进一步包括由所述计算系统,通过压缩对所述图像的所述初始显示进行编码的数据或压缩表示对所述图像的所述初始显示进行编码的所述数据的转换的数据来生成所述第一图像数据。
3.根据权利要求1所述的计算机实现的方法,其中,所述图像的所述中间分辨率版本被配置以使得计算机能够通过将所述图像的所述中间分辨率版本与附加图像数据组合而无损地重新创建所述图像的所述全分辨率。
4.根据权利要求1所述的计算机实现的方法,其中所述第二图像数据包含没有附加的图像数据不足以从中生成所述图像的版本的显示的信息。
5.根据权利要求1所述的计算机实现的方法,进一步包括由所述计算系统生成所述第一图像数据,其中生成所述第一图像数据包括通过对分辨率高于所述图像的所述初始显示的所述图像的版本中的多个像素的值进行组合来生成所述第一图像数据的一部分,所述第一图像数据的所述一部分表示所述图像的所述初始显示中的像素的值。
6.根据权利要求1所述的计算机实现的方法,其中,将图像数据发送到所述计算设备的所述第二请求由所述计算设备发送,以由所述计算系统接收,作为所述计算设备接收用户输入以放大到所述图像的所述初始显示的结果。
7.根据权利要求1所述的计算机实现的方法,进一步包括由所述计算系统并且基于识别所述计算设备的显示特性的数据来确定发送所述第一图像数据,所述计算设备从所述第一图像数据能够生成所述图像的所述降低分辨率版本,所述第一图像数据区别于从中能够生成所述图像的其他分辨率版本的图像数据。
8.根据权利要求1所述的计算机实现的方法,其中所述图像的所述中间分辨率版本的存储在存储器中的大小大于所述第二图像数据的未压缩形式的存储在存储器中的大小。
9.根据权利要求1所述的计算机实现的方法,进一步包括由所述计算系统生成所述第一图像数据,其中所述图像中的像素值各自被编码为双字节数据单元,并且其中生成所述第一图像数据包括:
(i)由所述计算系统识别其中对像素值进行编码的每个双字节数据单元中的位数量,其中所述位数量是所述双字节数据单元中所有位的子集,其中所述位数量跨越每个双字节数据单元中的位的范围,以及
(ii)由所述计算系统将位于每个双字节数据单元中所述位的范围的上半部的位移位到每个双字节数据单元中的不同位置,同时将位于每个双字节数据单元中所述位的范围的下半部的位留在其原始位置。
10.根据权利要求9所述的计算机实现的方法,其中所述位的范围占据全部所述双字节数据单元的最低字节以及所述双字节数据单元的最高字节的子集。
11.根据权利要求9所述的计算机实现的方法,其中,在所述计算系统已经将位于所述不同位置的所述上半部的所述位移位之后,生成所述第一图像数据包括对一起包括所述图像的双字节数据单元的组合进行压缩。
12.根据权利要求1所述的计算机实现的方法,进一步包括由所述计算系统通过移动像素的多字节表示中的位的子集来生成所述第一图像数据,使得所述位的子集从占据所述像素的所述多字节表示的第一字节的部分和所述像素的所述多字节表示的第二字节的部分移动到仅占据所述像素的所述多字节表示的所述第二字节的部分。
13.根据权利要求12所述的计算机实现的方法,其中将所述位的子集从占据所述第一字节的一部分和所述第二字节的一部分移动到仅占据所述第二字节的一部分包括:将二进制零插入所述第一字节的一部分中,所述位的子集先前曾位于所述第一字节的所述一部分处。
14.根据权利要求1所述的计算机实现的方法,进一步包括由所述计算系统,通过在每个双字节数据单元的第一字节和每个双字节数据单元的第二字节之间均匀地扩展在多个双字节数据单元中编码的二进制数据,来生成所述第二图像数据,使得所述二进制数据由每个双字节数据单元的所述第一字节中的一定数目的位以及每个双字节数据单元的所述第二字节中的一定数目的位表示。
15.根据权利要求14所述的计算机实现的方法,其中:
所述第一字节中的所述一定数目的位与所述第二字节中的所述一定数目的位相同;
所述第一字节中的所述一定数目的位是所述第一字节中的位的子集;以及
所述第二字节中的所述一定数目的位是所述第二字节中的位的子集。
16.根据权利要求15所述的计算机实现的方法,其中在所述多个双字节数据单元中编码的所述二进制数据是由所述计算系统对所述图像的全分辨率或所述图像的降低分辨率版本执行的delta编码过程的结果。
17.一个或多个包括指令的计算机可读设备,所述指令当由一个或多个计算机处理器执行时,使得操作被执行,所述操作包括:
由计算系统接收对将图像数据发送到计算设备的第一请求;
由所述计算系统发送第一图像数据并且由所述计算设备响应于已经接收到所述第一请求而接收所述第一图像数据,所述计算设备能够从所述第一图像数据生成所述图像的初始显示,
其中所述图像的所述初始显示是与所述图像的全分辨率相比分辨率降低的所述图像的降低分辨率版本;
由所述计算系统接收对将图像数据发送到所述计算设备的第二请求;以及
由所述计算系统发送第二图像数据并且由所述计算设备响应于已经接收到所述第二请求而接收所述第二图像数据,所述计算设备可以从所述第二图像数据生成所述图像的后续显示,
其中所述图像的所述后续显示是所述图像的中间分辨率版本,所述图像的所述中间分辨率版本具有比所述图像的所述降低分辨率版本的分辨率高并且比所述图像的所述全分辨率低的分辨率,以及
其中所述第二图像数据被配置以使得所述计算设备能够通过将所述第二图像数据与所述第一图像数据组合来生成所述图像的后续显示。
18.一种计算机实现的方法,包括:
由计算系统接收对将图像数据发送到计算设备的第一请求,所述计算设备能够从所述第一请求生成图像的初始显示;
由所述计算系统从所述图像的全分辨率生成第一图像数据,以及从所述图像的所述全分辨率生成第二图像数据,其中生成所述第一图像数据包括:
(i)生成与所述图像的所述全分辨率相比分辨率降低的所述图像的降低分辨率版本,其中所述图像的所述降低分辨率版本中的像素被存储在多字节数据单元中,
(ii)在相应的多字节数据单元中的每个字节之间均匀地重新布置若干个位,所述若干个位在每个相应的多字节数据单元中编码每个像素值,以及
(iii)在对每个相应的多字节数据单元的每个像素的值进行编码的所述若干个位被均匀地重新布置之后,通过压缩过程发送在所述多字节数据单元中编码的数据;
由所述计算系统发送所述第一图像数据并由所述计算设备响应于已经接收到所述第一请求而接收所述第一图像数据,所述计算设备能够从所述第一图像数据生成所述图像的初始显示,
其中所述图像的所述初始显示是与所述图像的全分辨率相比分辨率降低的所述图像的所述降低分辨率版本;
由所述计算系统接收对将图像数据发送到所述计算设备的第二请求,所述计算设备能够从所述第二请求生成所述图像的后续显示;以及
由所述计算系统发送第二图像数据并由所述计算设备响应于已经接收到所述第二请求而接收所述第二图像数据,所述计算设备能够从所述第二图像数据生成所述图像的后续显示,
其中所述图像的所述后续显示是所述图像的中间分辨率版本,所述图像的所述中间分辨率版本具有高于所述图像的所述降低分辨率版本的分辨率并且低于所述图像的所述全分辨率的分辨率,
其中通过从所述图像的所述中间分辨率版本中的像素的值中减去所述图像的所述初始显示中的像素的值来先前生成所述第二图像数据的部分,以及
其中所述第二图像数据被配置以使得所述计算设备能够通过将所述第二图像数据与所述第一图像数据组合来生成所述图像的后续显示。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201462064282P | 2014-10-15 | 2014-10-15 | |
US62/064,282 | 2014-10-15 | ||
US201462085138P | 2014-11-26 | 2014-11-26 | |
US62/085,138 | 2014-11-26 | ||
PCT/US2015/055754 WO2016061361A1 (en) | 2014-10-15 | 2015-10-15 | Remote viewing of large image files |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107004135A true CN107004135A (zh) | 2017-08-01 |
Family
ID=55747350
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580068257.3A Pending CN107004135A (zh) | 2014-10-15 | 2015-10-15 | 大图像文件的远程查看 |
Country Status (7)
Country | Link |
---|---|
US (2) | US9661321B2 (zh) |
EP (1) | EP3207500A1 (zh) |
CN (1) | CN107004135A (zh) |
AU (1) | AU2015332438A1 (zh) |
CA (1) | CA2964773A1 (zh) |
IL (1) | IL251739A0 (zh) |
WO (1) | WO2016061361A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112242946A (zh) * | 2019-07-16 | 2021-01-19 | 沃兹艾普公司 | 用于按组块传输图像的方法和系统 |
CN113497957A (zh) * | 2020-03-18 | 2021-10-12 | 摩托罗拉移动有限责任公司 | 从远程电子设备的外部显示器捕获图像的电子设备和方法 |
US11646983B1 (en) | 2019-07-16 | 2023-05-09 | Whatsapp Llc | Methods and systems for transmitting an image with thumbnail data |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170085666A1 (en) * | 2015-09-23 | 2017-03-23 | Facebook, Inc. | Systems and methods for adjusting progressive image transmission based on device properties |
US10194288B2 (en) * | 2016-06-12 | 2019-01-29 | Apple Inc. | Sticker distribution system for messaging apps |
US10453179B1 (en) * | 2016-09-23 | 2019-10-22 | Amazon Technologies, Inc. | Scaled image generation |
US10956529B1 (en) * | 2018-03-20 | 2021-03-23 | Pinterest, Inc. | Content presentation |
US20230334022A1 (en) * | 2022-04-14 | 2023-10-19 | The Hospital For Sick Children | System and method for processing and storage of a time-series data stream |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060038879A1 (en) * | 2003-12-21 | 2006-02-23 | Kremen Stanley H | System and apparatus for recording, transmitting, and projecting digital three-dimensional images |
US20070230829A1 (en) * | 1999-11-24 | 2007-10-04 | Sirohey Saad A | Method and apparatus for transmission and display of a compressed digitalized image |
CN101147174A (zh) * | 2004-10-15 | 2008-03-19 | 微软公司 | 用于管理图像数据的传送和/或存储的系统和方法 |
CN101350923A (zh) * | 2008-09-03 | 2009-01-21 | 中国科学院上海技术物理研究所 | 一种交互式医学图像通信与显示方法 |
CN101841707A (zh) * | 2010-03-19 | 2010-09-22 | 西安电子科技大学 | 基于jpeg2000标准的高速实时处理算术熵编码方法 |
US20130163894A1 (en) * | 2004-09-14 | 2013-06-27 | Gary Demos | Variable length coding system |
US20140219346A1 (en) * | 2013-01-07 | 2014-08-07 | Nokia Corporation | Method and apparatus for video coding and decoding |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6507872B1 (en) * | 1992-09-25 | 2003-01-14 | David Michael Geshwind | Class of methods for improving perceived efficiency of end-user interactive access of a large database such as the world-wide web via a communication network such as “The Internet” |
US5870502A (en) * | 1996-04-08 | 1999-02-09 | The Trustees Of Columbia University In The City Of New York | System and method for a multiresolution transform of digital image information |
US5864345A (en) * | 1996-05-28 | 1999-01-26 | Intel Corporation | Table-based color conversion to different RGB16 formats |
AUPO472897A0 (en) | 1997-01-22 | 1997-02-20 | Canon Information Systems Research Australia Pty Ltd | A method for digital image compression |
US6711297B1 (en) | 1998-07-03 | 2004-03-23 | University Of Pittsburgh - Of The Commonwealth System Of Higher Education | Methods and apparatus for dynamic transfer of image data |
BG63586B1 (bg) | 1999-07-29 | 2002-05-31 | Румен КУНЧЕВ | Метод и устройство за пирамидално кодиране на изображения |
US6744929B1 (en) * | 1999-11-18 | 2004-06-01 | Nikon Corporation | Image data compression method image data compression apparatus and recording medium and data signal for providing image data compression program |
JP2005184232A (ja) * | 2003-12-17 | 2005-07-07 | Sony Corp | 符号化装置、プログラム、およびデータ処理方法 |
US20070280357A1 (en) | 2006-05-31 | 2007-12-06 | Chih-Ta Star Sung | Device for video decompression and display |
US8285766B2 (en) * | 2007-05-23 | 2012-10-09 | The Trustees Of Princeton University | Microprocessor shifter circuits utilizing butterfly and inverse butterfly routing circuits, and control circuits therefor |
EP2749026A1 (en) * | 2011-11-18 | 2014-07-02 | Koninklijke Philips N.V. | Encoding high quality (medical) images using standard lower quality (web) image formats |
US9405539B2 (en) * | 2013-07-31 | 2016-08-02 | Intel Corporation | Providing vector sub-byte decompression functionality |
-
2015
- 2015-10-15 US US14/884,574 patent/US9661321B2/en active Active
- 2015-10-15 AU AU2015332438A patent/AU2015332438A1/en not_active Abandoned
- 2015-10-15 WO PCT/US2015/055754 patent/WO2016061361A1/en active Application Filing
- 2015-10-15 CN CN201580068257.3A patent/CN107004135A/zh active Pending
- 2015-10-15 EP EP15850053.8A patent/EP3207500A1/en not_active Withdrawn
- 2015-10-15 CA CA2964773A patent/CA2964773A1/en not_active Abandoned
-
2017
- 2017-04-13 IL IL251739A patent/IL251739A0/en unknown
- 2017-05-22 US US15/601,626 patent/US20170257628A1/en not_active Abandoned
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070230829A1 (en) * | 1999-11-24 | 2007-10-04 | Sirohey Saad A | Method and apparatus for transmission and display of a compressed digitalized image |
US20060038879A1 (en) * | 2003-12-21 | 2006-02-23 | Kremen Stanley H | System and apparatus for recording, transmitting, and projecting digital three-dimensional images |
US20130163894A1 (en) * | 2004-09-14 | 2013-06-27 | Gary Demos | Variable length coding system |
CN101147174A (zh) * | 2004-10-15 | 2008-03-19 | 微软公司 | 用于管理图像数据的传送和/或存储的系统和方法 |
CN101350923A (zh) * | 2008-09-03 | 2009-01-21 | 中国科学院上海技术物理研究所 | 一种交互式医学图像通信与显示方法 |
CN101841707A (zh) * | 2010-03-19 | 2010-09-22 | 西安电子科技大学 | 基于jpeg2000标准的高速实时处理算术熵编码方法 |
US20140219346A1 (en) * | 2013-01-07 | 2014-08-07 | Nokia Corporation | Method and apparatus for video coding and decoding |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112242946A (zh) * | 2019-07-16 | 2021-01-19 | 沃兹艾普公司 | 用于按组块传输图像的方法和系统 |
US11646983B1 (en) | 2019-07-16 | 2023-05-09 | Whatsapp Llc | Methods and systems for transmitting an image with thumbnail data |
CN113497957A (zh) * | 2020-03-18 | 2021-10-12 | 摩托罗拉移动有限责任公司 | 从远程电子设备的外部显示器捕获图像的电子设备和方法 |
Also Published As
Publication number | Publication date |
---|---|
US9661321B2 (en) | 2017-05-23 |
EP3207500A1 (en) | 2017-08-23 |
CA2964773A1 (en) | 2016-04-21 |
AU2015332438A1 (en) | 2017-05-04 |
US20160112703A1 (en) | 2016-04-21 |
IL251739A0 (en) | 2017-06-29 |
US20170257628A1 (en) | 2017-09-07 |
WO2016061361A1 (en) | 2016-04-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107004135A (zh) | 大图像文件的远程查看 | |
JP4187514B2 (ja) | 圧縮デジタル化画像の送信及び表示のための方法及び装置 | |
CN102197649B (zh) | 三维图像数据的动态传送 | |
EP0753218B1 (en) | Fixed quality source coder | |
CN117544793A (zh) | 用于对字节流进行编码和解码的方法和设备 | |
CN104704825B (zh) | 分段图像数据的无损压缩 | |
US20120250990A1 (en) | Method, apparatus and computer program product for displaying normalized medical images | |
US8417043B2 (en) | Method, apparatus and computer program product for normalizing and processing medical images | |
JP2015509294A (ja) | 標準低品質(ウェブ)画像フォーマットを用いた高品質(医療)画像の符号化 | |
US11089338B2 (en) | Progressive lossless compression of image data | |
US20040136602A1 (en) | Method and apparatus for performing non-dyadic wavelet transforms | |
Devadoss et al. | Near lossless medical image compression using block BWT–MTF and hybrid fractal compression techniques | |
KR102645508B1 (ko) | Haar 기반 포인트 클라우드 코딩을 위한 방법 및 장치 | |
US11797848B2 (en) | Data compression apparatus, data compression method, and learning apparatus | |
Olanda et al. | Terrain data compression using wavelet-tiled pyramids for online 3D terrain visualization | |
Anantha Babu et al. | Lossless compression algorithm using improved RLC for grayscale image | |
JP2011508497A (ja) | 画像データの効率的な伝送の方法及び装置 | |
Špelič et al. | Lossless compression of threshold-segmented medical images | |
Arthur et al. | Efficient medical image compression technique for telemedicine considering online and offline application | |
CN116168790B (zh) | 一种临床试验的大数据招募系统 | |
Akhtar et al. | Significance of ROI coding using MAXSHIFT scaling applied on MRI images in teleradiology-telemedicine | |
EP4365908A1 (en) | Compression of measurement data from medical imaging system | |
Loh et al. | Mobile Imagery eXchange (MIX) toolkit: data sharing for the unconnected | |
Zou | Compression and Decompression of Color MRI Image by Huffman Coding | |
Akhtar et al. | Significance of Region of Interest applied on MRI image in Teleradiology-Telemedicine |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20170801 |
|
WD01 | Invention patent application deemed withdrawn after publication |