CN1272740C - 基于类小波变换和稀疏数据编码的多分辨率图像数据管理系统和方法 - Google Patents

基于类小波变换和稀疏数据编码的多分辨率图像数据管理系统和方法 Download PDF

Info

Publication number
CN1272740C
CN1272740C CNB018203647A CN01820364A CN1272740C CN 1272740 C CN1272740 C CN 1272740C CN B018203647 A CNB018203647 A CN B018203647A CN 01820364 A CN01820364 A CN 01820364A CN 1272740 C CN1272740 C CN 1272740C
Authority
CN
China
Prior art keywords
image
coefficient
array
filter
data
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.)
Expired - Fee Related
Application number
CNB018203647A
Other languages
English (en)
Other versions
CN1479907A (zh
Inventor
C·K·崔
H·-Y·高
L·钟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Technologies Inc
Original Assignee
Picsurf Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Picsurf Inc filed Critical Picsurf Inc
Publication of CN1479907A publication Critical patent/CN1479907A/zh
Application granted granted Critical
Publication of CN1272740C publication Critical patent/CN1272740C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • G06F17/148Wavelet transforms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/403Edge-driven scaling; Edge-based scaling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4084Scaling of whole images or parts thereof, e.g. expanding or contracting in the transform domain, e.g. fast Fourier transform [FFT] domain scaling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/18Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/1883Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit relating to sub-band structure, e.g. hierarchical level, directional tree, e.g. low-high [LH], high-low [HL], high-high [HH]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/36Scalability techniques involving formatting the layers as a function of picture distortion after decoding, e.g. signal-to-noise [SNR] scalability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/59Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
    • H04N19/635Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by filter definition or implementation details
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
    • H04N19/64Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by ordering of coefficients or of bits for transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
    • H04N19/64Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by ordering of coefficients or of bits for transmission
    • H04N19/645Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by ordering of coefficients or of bits for transmission by grouping of coefficients into blocks after the transform
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
    • H04N19/64Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by ordering of coefficients or of bits for transmission
    • H04N19/647Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by ordering of coefficients or of bits for transmission using significance based coding, e.g. Embedded Zerotrees of Wavelets [EZW] or Set Partitioning in Hierarchical Trees [SPIHT]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234327Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by decomposing into layers, e.g. base layer and one or more enhancement layers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/258Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
    • H04N21/25808Management of client data
    • H04N21/25825Management of client data involving client display capabilities, e.g. screen resolution of a mobile phone
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/2662Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/435Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/443OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/462Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
    • H04N21/4621Controlling the complexity of the content stream or additional data, e.g. lowering the resolution or bit-rate of the video stream for a mobile client with a small screen
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/472End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
    • H04N21/4728End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for selecting a Region Of Interest [ROI], e.g. for requesting a higher resolution version of a selected region
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/048Indexing scheme relating to G06F3/048
    • G06F2203/04806Zoom, i.e. interaction techniques or interactors for controlling the zooming operation
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/04Changes in size, position or resolution of an image
    • G09G2340/0407Resolution change, inclusive of the use of different resolutions for different screen areas
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Graphics (AREA)
  • Algebra (AREA)
  • Discrete Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Image Processing (AREA)

Abstract

一种图像处理系统,按预定顺序处理片(168)。小波变换使用短滤波器应用于图像边界,以产生边缘系数。长滤波器用于内部位置的图像数据,以产生非边缘系数(172)。两种滤波器都是只应用于片内部的图像数据和较先变换数据组内部的变换系数。在客户机提供对应当解码器(180)。

Description

基于类小波变换和稀疏数据编码的 多分辨率图像数据管理系统和方法
发明领域
本发明总体上涉及在计算机系统、个人数字助理、数码相机和其它设备中图像的处理、压缩、传递以及存储,特别是一种图像管理系统和方法,其中经过数字编码的图像可以按任何特定的窗口大小和在多种分辨率下观看,并可以被打印、修剪或操作。
背景技术
图像可以按多种分辨率级存储。较低级分辨率的编码图像较小,因此,与较高分辨率相比,可以用较少的带宽传递,用较少的空间存储。当把图像存储为多种分辨率时,最好将图像数据分隔成有序的一组集合或子文件,其中每个附加的子文件提供从一个级到下一个级提高图像的分辨率所需的附加数据。此外,用特定的因子(例如4)提高图像分辨率时,最好使每个子文件中的图像数据量大致与相关的分辨率增加成正比。例如,如果每个分辨率级与其相邻级相差4倍(如:级0:32×32,级1:64×64,级2:128×128,等),则每个分辨率级的编码图像数据量应当大致等于下一个较高级分辨率的编码图像数据量的25%。从另一个观点看,用于从第一级到下一级提高图像分辨率的子文件中的数据量理想地是大约等于第一级的子文件中的数据量的三倍。
众所周知,图像的小波压缩自动产生若干分辨率级。特别地,如果对图像作用N“层”小波变换,则产生N+1个分辨率级的数据,其中数据的最后LL子波段包括最低分辨率级,而所有的子波段数据一起构成最高分辨率级。为方便起见,小波变换的“层”有时将称为“级”。在每个空间维度上,每个分辨率级与其相邻级相差因数2。我们可以将最低的拇指甲分辨率级标为0级,将最高分辨率级标为N级,这是最终或基本图像的分辨率。
本发明的第一方面基于两种观察。第一种是当使用传统的和大部分专用的数据压缩和编码方法时,由小波压缩产生的N级中的数据量往往以几何级数递减。例如,0级分辨率的数据量通常是1级分辨率数据量的80%,而理想地,其应当是1级分辨率数据量的25%。结果,0级分辨率的数据包含的数据显著多于显示0级图像所需的量。换句话说,0级数据给出0级低分辨率显示所不必要的高质量,因此,与只提供显示0级分辨率的图像所需的信息相比,所能获得的压缩率较低。
第二种观点是低分辨率图像数据系数量化为全分辨率显示,而不是低分辨率显示,因为这些数据系数不仅用于产生图像的低分辨率表示,还用于产生图像的较高分辨率表示。
根据本发明的该第一方面,如上所述,最好每个分辨率级的子阵列或子文件中的图像数据量大致正比于该分辨率级所关联的分辨率增加。
本发明的第二方面基于以下观点,即:小波变换传统上作用于图像的片或块的边界上,以避免再生的图像中的片或块边界假象。小波变换可以实现为具有相关长度的FI R(有限脉冲响应)滤波器。“长度”表示用于生成每个系数的数据样本数。小波变换一般关于中心对称,并且当实现小波变换的滤波器在片或块的边缘时,通常滤波器的一半或几乎一半将延伸到相邻的片或块内。结果,通常在小波变换图像的一个片的过程中必须不仅在存储器中保持相邻片的一部分,还必须在存储器中保持每级小波变换的相邻片的边界系数。这样,避免分片效应(也称为片边界效应或假象或边界假象)通常增加了执行对图像的小波变换的计算机或设备的存储要求,还会增加变换程序的复杂性,因为需要跟踪相邻的片或块的边界数据和系数的存储位置。根据本发明的第二方面,最好具有一种小波或类小波变换,其能够只作用于被处理的图像块的数据,而不必将该变换作用于相邻块中的数据,也不会产生明显的边界假象。这样的变换将降低存储器要求,并可以简化图像的小波压缩。
现有技术中众所周知,数字图像能够一次压缩一部分,而不是一次压缩全部,从而减少存储器要求。例如,用于图像的JPEG压缩和编码的DCT变换传统上用于8×8像素的片上。但是,对图像进行分片处理的一个公知问题是分片产生不期望的片边界效应。在JPEG图像中DCT分片的边界效应被认为是可以接受的,因为片的尺寸很小,使得分片效应对人眼比较不明显。
但是,当使用小波或类小波变换而不是DCT变换时,很小的片,如8×8像素不实用。类小波变换已经被证明比DCT变换提供优点更明显的数据压缩,因此,如果只利用中等量的工作存储器就能避免分片效应的话,最好使用类小波变换。
因此,最好提供一种图像处理系统和方法,其通过使用适度大小的片,如64×64或32×32或64×32像素的片的类小波变换,利用适量的工作存储器处理图像,同时避免产生不期望的分片(片边界)效应。
本发明的第三方面基于以下观点,即,应用于小波系数的最优量化级不仅在每个变换子波段之间不同,在图像的不同区域之间也不同。特别地,包含许多“特征”(其特征通常是水平或垂直线或边界)的图像区域比包含较少特征的区域更难压缩。即,在不导致从压缩数据再生的图像区域质量降低的情况下,这样特征密集的图像区域不能象特征较不密集的图像区域一样被压缩。因此,最好提供一种图像压缩和编码系统,其量化程序使用较小的量化因数量化特征密集的区域的小波系数,而使用较大的量化因数量化具有较少特征的区域的小波系数。
发明内容
概括地说,本发明是一种图像处理系统和方法,用于将一族预定的变换,如类小波变换,应用到图像的图像数据,以产生变换图像数据;还用于将数据压缩方法应用于该变换图像数据,以产生图像文件。该图像处理系统和方法对捕捉到的图像进行分片,按预定顺序处理这些片。片是图像数据不重叠的部分。每片图像数据通过将预定族的变换层应用于该图像数据片得到处理,从而产生连续的变换系数集。在一个优选实施例中,所述变换层是一族类小波分解变换的连续应用,包括应用于被处理的数据阵列边界处的数据的边缘滤波器和应用于数据阵列内部区域中的数据的内部滤波器。
由每个变换层处理的变换系数集包括位于变换系数集外部边界处的边缘系数和位于变换系数集内部位置处的非边缘系数。变换系数集包括由最后变换层产生的最后变换系数集和一个或多个较先的变换系数集。
所用的变换滤波器包括一个或多个边缘变换滤波器,其应用于片边界处的图像数据和位于每个较先的变换系数集靠近边界处的系数,以产生边缘系数;还包括一个或多个内部滤波器,其应用于片内部位置处的图像数据和较先的变换系数集内部位置处的系数,以产生非边缘系数。边缘变换滤波器的滤波支持比内部变换滤波器短,且边缘变换滤波器和内部变换滤波器都是只应用于片内的图像数据和较先的变换集内的变换系数。
边缘滤波器包括一个短而低的空间频率滤波器,其加权最靠近片边界的图像数据和最靠近每个较先的变换系数集边界的变换系数,从而能够从变换系数再生不带有边界假象的图像。
至少一些变换滤波器最好是非对称边界滤波器,向每个片的边界延伸第一长度,向远离片边界的方向延伸第二个较长的长度,但不超过片的边界。
在一个优选实施例中,内部变换滤波器包括一个中心滤波器,用于在被处理的数据阵列的中心或中心附近产生2-4个高通和2-4个低通系数。该中心滤波器作为滤波器开关。在该中心滤波器不同的侧面使用两种不同形式的内部滤波器。例如,在中心滤波器的一侧,内部滤波器的中心可能位于偶数数据位置,而在另一侧则可能位于奇数数据位置。
图像处理系统和方法还可以包括图像重构电路或程序,用于随后对图像文件应用数据解压缩方法和逆变换,以产生适合在图像观察器上显示的重构图像。
在本发明的第二方面,变换系数集对应于图像的空间频率子波段。这些子波段按照产生它们的变换层分组。对于一个或多个相应的子波段组,产生每个图像片的一个或多个参数,其值表示该片中图像特征的密集度。每个图像片被按照该一个或多个参数的值归入一组预定类中的一类。根据片的归类,选择该片的一组量化因数,然后用所选的量化因数将该片的变换系数按比例变换,以产生该片的一个量化变换系数集。
在本发明的第三方面,对量化的变换系数进行编码。在编码每组空间频率子波段的系数时,这些系数的最重要的位平面集存储在第一比特流中,最不重要的位平面集存储在第二比特流中。从另一观点看,其值超过预定阈值的编码系数部分(用于一组子波段)存储在第一比特流中,而剩余的编码系数部分存储在第二比特流中。当按照特定分辨率级从图像文件重构图像时,只有对应于该特定分辨率级的比特流被解码并用于重构该图像。对于一些分辨率级,不用的一个或多个比特流将包含子波段最不重要的部分(即,位平面),该子波段较重要的部分包含在用于在该分辨率级重构图像的比特流中。
附图简述
通过下列结合附图所做的详细说明和所附权利要求,本发明的其它目的和特征将更加明白。附图中:
图1是分布式计算机系统的框图,包括一个网络服务器和多个客户计算机,用于将多分辨率图像分布到客户计算机;
图2是根据本发明一个实施例的计算机系统的框图;
图3A简化示出将原始图像变换为变换图像阵列和将该变换图像阵列压缩为压缩图像文件的过程;图3B示出空间变换子波段到NQS子波段的映射,用于编码变换系数;
图4是代表一个图像的编码数据的概念表示,组织为帮助图像的多分辨率表示(即,按照多种分辨率级);
图5A、5B、5C、5D和5E示出图像存储数据结构;
图6是可以应用本发明的图像处理过程的高级流程图;
图7A、7B和7C用图形示出正向和反向类小波数据变换过程;
图8示出通过对图像数据阵列应用多层分解小波或类小波变换所产生的小波系数的空间频率子波段;
图9示出用于选择一个图像块的量化因数的块分类方法的流程图;
图10A和10B示出用于编码一个图像块的变换系数的程序的流程图;
图11A、11B和11C示出在一个优选实施例中称为最大位深度(MaxbitDepth)值的编码方法,其表示在编码图像的每个块和子块中编码变换系数所要求的位数;
图12是可以应用本发明的压缩图像重构过程的高级流程图;
图13A和13B示出用于解码图像的变换系数和用于从这些系数重构图像的程序的流程图;
图14是一个数码相机的框图,其中实现了本发明的一个或多个方面;
图15是一个概念流程图,表示客户计算机下载一个小图像,然后对图像放大,然后转到图像的新的部分。
优选实施例
本文件中,术语“小波”和“类小波”可以互换使用。类小波变换的空间频率特征大体上类似于传统的小波变换的空间频率特征,并可以无损地反变换,但滤波器较短,其计算效率更好。
本发明可以在处理图像的多种设备中实现,包括从高端工作站和服务器到低端客户计算机的多种计算机系统,也可以在特定的专用设备中实现,如数码相机。
用于编码和分布多分辨率图像的系统
图1示出一个分布式计算机系统,包括一个网络服务器140和多个客户计算机120,用于通过诸如因特网的全球通讯网络110或任何其它合适的通讯网络如局域网或企业内部网向客户计算机分布多分辨率的图像190。图像编码工作站150准备由网络服务器分布的多分辨率图像文件。在一些实施例中,网络服务器140也可以执行图像编码工作站150的图像编码任务。
典型的客户设备120应当是个人数字助理、个人计算机、工作站、或专用于特定任务的计算机控制的设备。客户设备120最好包括中央处理单元122、存储器124(包括高速随机存取存储器和非易失存储器如磁盘存储器)、以及用于通过通讯网络110将客户设备连接到网络服务器的网络接口或其它通讯接口128。存储器124典型地应当存储操作系统132、浏览器应用或其它看图应用134、图像解码模块180、和根据本发明编码的多分辨率图像文件190。在一个优选实施例中,浏览器应用134包括或耦合到一个JavaTM(Sun Microsystem公司的商标)虚拟机,用于执行Java语言程序,并且图像解码模块实现为JavaTM程序,其与图像文件190一起动态下载到客户设备,从而使浏览器能够解码图像文件用于观看。
网络服务器140最好包括中央处理单元142、存储器144(包括高速随机存取存储器和非易失存储器如磁盘存储器)、以及用于通过通讯网络110将网络服务器连接到客户设备和图像编码工作站150的网络接口或其它通讯接口148。存储器144典型地应当存储http(超文本传输协议)服务器模块146,用于响应http请求,包括多分辨率图像文件190的请求。网络服务器140还可以选择包括带有编码程序172的图像处理模块168,用于将图像编码为多分辨率图像。
计算机系统
参考图2,图像处理工作站150可以使用程序化的通用计算机系统实现。当网络服务器执行图像处理任务时,该图还可以表示网络服务器。计算机系统150可以包括:
一个或多个数据处理单元(CPU)152;
存储器154,其典型地包括高速随机存取存储器和非易失性存储器;
用户接口156,包括显示设备157,如CRT或LCD型显示器;
网络或其它通讯接口158,用于与其它计算机和其它设备通讯;
数据端口160,用于例如从数码相机接收图像和向数码相机发送图像(当然这样的图像传递也可以通过网络接口158来完成);和
一个或多个通讯总线161,用于将CPU 152、存储器154、用户接口156、网络接口158以及数据端口160互相连接。
该计算机系统的存储器154存储程序和数据,典型地包括:
操作系统162,用于提供基本的系统服务;
文件系统164,其可以是操作系统的一部分;
应用程序166,如用来观看和操作图像的用户级程序;
图像处理模块168,用于执行各种图像处理功能,包括作为本发明主题的那些功能;
图像文件190,表示各种图像;以及
临时图像数据阵列192,用于在图像处理和图像再生过程中产生的中间结果。
图像处理模块168可以包括一个图像编码模块170和图像解码模块180。图像编码模块170产生多分辨率图像文件190,其细节将在下面讨论。图像编码模块170可以包括:
编码控制程序172,其控制压缩和编码图像的过程(以原始图像阵列189开始,该阵列可以通过解码另一种图像文件格式的图像获得);
一组类小波变换程序174,用于将类小波滤波器应用于表示一个图像的图像数据;
块归类程序176,用于确定应用于图像的变换系数的每个块(或波段)的量化因数;
量化程序178,用于量化一个图像的变换系数;以及
稀疏数据编码程序179,也称为熵编码程序,用于编码由量化程序178产生的量化变换系数。
图像处理模块168中的程序在一组临时数据阵列192中存储部分变换的图像和其它临时数据。
图像解码模块180可以包括:
解码控制程序182,用于控制解码一个图像文件(或图像文件的一部分)的过程和再生由图像文件中的数据所表示的图像;
稀疏数据解码程序184,用于将存储在图像文件中的经过编码的量化变换系数解码为对应的量化变换系数阵列;
去量化程序186,用于去量化表示图像的一个片的一组变换系数;和
一组类小波反变换程序188,用于将类小波反向滤波器应用于表示图像的一个片的一组去量化的变换系数,以再生该片图像。
图像捕获和处理概述
参考图3,从数码相机的图像捕获机构(图14)或从图像扫描器或其它设备获得的原始图像数据200通过“对图像数据分片”而被处理。更具体地,原始图像数据被作为片202的阵列处理,每个片具有预定大小,如32×32或64×64(即64行64列)。在其它实施例中,可以使用其它的片大小,如32×32或16×32或128×128或64×128。片是图像数据不重叠的部分。用足够多的片以覆盖待处理的整个原始图像,即使一些片伸出原始图像的边缘。片的伸出部分在小波变换过程中用边界数据值的拷贝填充,或者用无效数据填充。片的位置相对于图像的左上角的原点确定,座标的第一项表示片(或片中的像素或系数)的Y位置,第二项表示片(或片中的像素或系数)的X位置。因此,位置0,128的片位于图像的顶部,其原点位于最上一行像素的第128个像素处。
小波或类小波分解变换连续应用于图像的每个片,将片中的原始图像数据转换为变换系数集。当类小波变换是应用于图像数据的二维阵列的一维变换时,该变换首先在一个方向上(如,水平方向)应用于图像数据,以产生中间系数集,然后该变换在另一方向上(如,垂直方向)应用于该中间系数集,以产生最终系数集。最终系数集是将类小波分解变换在水平和垂直方向上都应用于图像数据的结果。
片是按照预定的光栅扫描顺序处理的。例如,顶部行中的片是从一端(如,左端)到另一端(如,右端)处理,然后处理紧接着的下一行片,直到原始图像数据的底部行的片也被处理。
每一片的变换系数是通过连续应用类小波变换而产生的。对原始图像数据的初始二维阵列首先应用小波分解变换产生四组系数,表示为LL、HL1、LH1和HH1。随后的小波分解变换的每个应用只应用于由前一步小波变换产生的LL组系数,并产生四组新的系数,表示为LL、HLx、LHx和HHx,其中x表示小波变换“层”或迭代。在最后的小波分解变换迭代之后,只剩下一个LL组。产生的系数总数等于原始数据阵列中的数据样本数。由每次变换迭代产生的不同组系数有时称为“层”。一个图像所产生的小波变换层数通常是初始图像分辨率的函数。对于64×64或32×32大小的片,一般执行5个小波变换层,产生16个空间频率子波段数据:LL5、HL5、LH5、HH5、HL4、LH4、HH4、HL3、LH3、HH3、HL2、LH2、HH2、HL1、LH1、HH1。不同实现之间的变换层数可能不同,取决于所用的片的大小和可用的计算资源量。对于较大的片,可能使用附加的变换层,从而产生附加的数据子波段。执行的变换层数越多,通常将产生越好的数据压缩,其代价是增加的计算时间,但也可能产生增加的片边缘假象。
空间频率子波段按以下分组。子波段组0对应于LLN子波段,其中N表示作用于图像(或图像片)的变换层数。每个其它子波段组i包含三个子波段:LHi、HLi和HHi。以下将说明,当编码一个片的变换系数时,来自每组子波段的系数与其它组子波段的系数分开编码。在一个优选实施例中,产生一对比特流,以表示每组子波段中的系数。一个比特流表示该组子波段中的系数的最重要的位平面,而另一个比特流表示该组子波段的系数的其余的、最不重要的位平面。
由应用类小波变换所产生的小波系数最好通过用相应的量化值(也称为量化因数)除变换的片的每个子波段中的系数(由量化器178)来量化。在优选实施例中,为每个子波段指定一个独立的量化因数。更具体地,如下所述,一个块分类器176产生一个或多个值,表示每个图像片中的特征密集度,并且根据该一个或多个值,选择一个量化因数表,用于量化该片的不同子波段中的系数。
由量化器178产生的量化系数被稀疏数据编码器179编码,以产生每个图像片的一组编码子图像子文件210。
优选实施例中所用的类小波变换在下面详细描述。用于执行该优选实施例的类小波变换的电路与美国专利No.5,909,518“System andMethod for Performing Wavelet and Inverse Wavelet LikeTransformation of Digital Data Using Only Add and Bit ShiftArithmetic Operation”(用于仅使用加和移位算法操作执行数字数据的小波和反向类小波变换的系统和方法)中描述的小波变换和数据量化方法非常相似,该专利在此引作参考。
优选实施例的稀疏数据编码方法称为嵌套二次分裂(NQS),在下面详细描述。该稀疏数据编码方法是美国专利No.5,949,911“Systemand Method for Scalable Coding of Sparse Data Sets”(用于稀疏数据集的可伸缩编码的系统和方法)中描述的NQS稀疏数据编码方法的改进版本,该专利在此引作参考。
图3B示出用于编码变换系数的从空间频率子波段到NQS子波段的映射。特别地,在一个优选实施例中,七个空间频率子波段(LL5、HL5、LH5、HH5、HL4、LH4和HH4)被映射到单个NQS子波段(子波段0),以编码这些子波段中的系数。换句话说,该七个空间频率子波段中的系数作为单个顶层块处理,以进行NQS编码。在一个优选实施例中,NQS子波段0、1、2和3作为四个顶层NQS块编码,其最重要的位平面存储在表示所述图像的最低分辨率级的比特流中。
图像分辨率级和子图像
参考图4,一个图像按照多种分辨率级0-N存储,通常每个分辨率级与其相邻的分辨率级相差因数4。换句话说,如果图像的最高分辨率表示法(分辨率级N)包含的信息量为X,则第二高分辨率表示法N-1包含的信息量为X/4,第三高分辨率表示法包含的信息量为X/16。图像文件中存储的分辨率级数将取决于图像的最高分辨率表示法的大小和拇指甲图像在最低分辨率级能够接受的最小分辨率。例如,如果全或最高分辨率图像是具有16百万像素(如4096×4096像素的图像)的高清晰画面,则7个分辨率级应当是合适的:4096×4096,2048×2048,1024×1024,512×512,256×256,128×128,64×64。
但是,如图4所示,本发明的一个特征或方面是当多分辨率图像具有多于3或4个分辨率级时,该图像被编码和存储在多个“基本图像”文件中,每个文件包含2-4个分辨率级的数据。可选地,所有的基本图像可以存储在单个文件中,每个基础图像存储在该图像文件内的不同基础图像子文件或子文件数据结构中。
每个基础图像文件(或子文件)包含重构“基础图像”和1到3个子图像(较低分辨率级)所需的数据。例如,在图4所示例子中,图像存储在三个文件中,第一个文件存储三个分辨率级的图像,包括最高分辨率和两个较低的分辨率,第二个文件存储另外三个分辨率级的图像(第四、五和六高分辨率级),第三个文件存储两个最低分辨率级的图像,一共有8个分辨率级。通常,每个后续的文件比下一个较大的文件小大约为22X的因子,其中X是较大文件中的分辨率级数。例如,如果第一个文件具有三个分辨率级,则下一个文件通常比该文件小一个因子64(26)。
结果,表示一组较低分辨率级的图像文件将比包含全分辨率图像数据的图像文件小得多,且因此可以更快地传输给客户计算机。例如,客户计算机的用户可以先以最低分辨率级(如32×32或64×64)检查一组小图像,要求客户计算机只检查最小的三个图像文件,其将典型地包含最高分辨率图像文件的大约0.024%数据。当用户请求在较高分辨率观看图像时,客户计算机可以接收第二个较大的图像文件,包含最低分辨率图像文件64倍的数据。该第二文件可能包含三个分辨率级(如,512×512,256×256,128×128),这对用户来说可能足够了。当用户需要更高分辨率时,将发送最高分辨率文件。根据使用该系统的环境,图像的提供者可以收取附加的费用来允许下载更高分辨率的图像文件。
应当注意,许多图像文件不是正方形,而是矩形,且上述例子中使用的正方形图像尺寸不应认为是对本发明范围的限制。尽管由图像处理模块处理的信息的基本单元是片,通常是64×64或32×32的像素阵列,但任何特定的图像可以包含这样的片的任意大小的阵列。此外,图像不必要是片大小的偶数倍,因为不管是否合适,边缘片都将被截去。
将特定分辨率级的图像指定为“拇指甲”图像可以取决于图像所发送到的客户设备。例如,发给具有很小显示器的个人数字助理或移动电话的拇指甲可以比发给个人计算机的拇指甲小得多(例如,16分之1),发给具有大的高清晰屏幕的拇指甲可以比发给具有普通大小和清晰度的个人计算机的拇指甲大得多。当图像潜在地用于不同客户设备时,产生附加的基本图像,使得每种设备都能首先接收到适当大小的拇指甲图像。
当图像首先被客户设备请求时,该客户设备可以在其对拇指甲图像的请求中说明其窗口大小,或者服务器可以通过在向客户设备下载拇指甲图像之前查询客户设备来判断客户设备观看窗口的大小。结果,每种客户设备接收到适合该设备的最小分辨率拇指甲。
图像文件数据结构
参考图5A-5E,当图像的全部片都被变换、压缩和编码后,产生的编码图像数据作为图像文件190被存储。图像文件190包括标题数据194和一个基本图像数据结构序列,有时称为基本图像子文件196。每个基本图像子文件196通常包括用于在两个或更多个分辨率级显示图像的数据。此外,每个基本图像支持不同的分辨率级范围。多个基本图像和它们各自的子图像一起提供图像的全范围分辨率级,如图4所示。尽管在优选实施例中由基本图像支持的分辨率级相互不重叠,但是在可选实施例中,由一个基本图像文件支持的分辨率级可能与由(同一个初始全分辨率图像的)另一个基本图像文件支持的分辨率级重叠。
在优选实施例中,每个图像文件190是一个html文件或类似格式的网页,包含到小程序199(如JavaTM小程序)的链接198,如对象标签或小程序标签,当该文件下载到客户计算机时,小程序199自动被调用。标题194和选定的一个基本图像196用作输入嵌入的小程序199,其对图像解码并在用户的个人数字助理或计算机的显示器上显示。小程序的运行对用户是透明的,用户只看到其计算机显示器上显示的图像。可选地,该小程序可以向用户提供一个选项菜单,包括图像文件中包括的图像子文件所能获得的分辨率级、可以从服务器获得的附加的基本图像子文件、以及其它选项,如图像剪切选项。
在一个可选实施例中,客户工作站包括一个应用,如插入应用,用于以本发明的文件格式解码和显示图像。此外,每个图像文件210具有对应于该插入应用的相关数据类型。图像文件210与html(超文本链接标示语言)或类似格式的网页一起下载,该网页包括指向该图像文件的嵌入标签或对象标签。结果,当网页被下载到客户工作站时,该插入应用自动被客户计算机调用并执行。结果,图像文件就被解码和显示,插入应用的运行对用户透明。
图5A所示图像文件190-A表示存储多分辨率图像的一种可能的方式,特别适合在服务器上存储多分辨率图像。在客户计算机中,图5B所示的图像文件190-B可以只包含一个基本图像196。此外,图像文件190的客户版可以包括指向服务器上的图像文件190-A的链接201。链接201用于使客户计算机的用户能够下载同一图像的其它基本图像(其它分辨率级)。可选地,链接201是JavaTM(Sun Microsystem的商标)脚本,用于从网络服务器请求包括任何较高分辨率基本图像的图像文件。如果获得较高分辨率的图像文件要付费,则该脚本将调用服务器程序,以获得请求用户的费用。
在另一个可选实施例中,多分辨率图像可以在服务器上存储为一组独立的基本图像文件190-B,每个文件具有图5B所示的格式。这样做的好处是提供不必修改就能下载到客户计算机的图像文件190-B。
参考图5A,图像文件的标题194包括访问不同的基本图像子文件196所需的信息。特别地,在优选实施例中,标题194存储:
服务器中的图像文件的标识符或URL;
表示该文件中的基本图像子文件数(或者在每个基本图像文件存储在一个独立文件中的实施例中,是基本图像文件数)的参数值;
每个基本图像数据结构的大小;和
指向每个基本图像数据结构的偏移指针(或者在每个基本图像文件存储在一个独立文件中的实施例中,是指向每个基本图像文件的指针)。
每个基本图像子文件196具有标题204和一个比特流206的序列。这些比特流表示为1a、1b,一直到N,其中N是所述基本图像支持的分辨率级数。标号“1a”等的意义在以下解释。每个比特流206中的信息在下面详细描述。每个基本图像子文件的标题数据204包括表示以下意义的域:
基本图像子文件的大小(即,由基本图像子文件占据的存储空间);
用于将基本图像分片的片的大小(如,像素的行和列数),其中每个片分别被变换和编码,如下所述;
为这些基本图像子文件存储的颜色通道分量;
用于分解基本图像的变换滤波器(如,不同组的变换滤波器可以用于不同的图像);
为该基本图像编码的空间频率子波段数(即,基本图像的每片);
由基本图像支持的分辨率级(也称为子图像)数;
为基本图像编码的比特流数(即,基本图像的每片);和
每个比特流的信息。
基本图像子文件中的每个比特流的信息可以包括:
指向比特流,以指示其在图像文件中(或基本图像子文件中)的位置的偏移指针;
比特流的大小(比特流中有多少数据);
比特流中包括的空间频率子波段的范围;
比特流中的颜色通道数;
比特流中包括的位平面的范围,其表示子波段中的系数的位平面如何划分为重要、不重要、以及可能的中等重要部分;和
指向比特流中的片208的偏移指针表。
每个比特流206包括一个片子阵列208的序列,每个片子阵列包含图像的相关片的第i个比特流。比特流206可选地还包括标题209,具有用于忽略由基本图像标题204为基本图像制定的参数的域。当图像文件包含剪切图像时,图像文件中包括的片子阵列208的组限于那些需要表示该剪切图像的。
在一个优选实施例中,图像文件标题194还包括表示“剪切图像边界”的参数。这有助于只包含图像的剪切部分的数据的图像文件的局部拷贝,当客户计算机用于执行图像的缩小或放大操作时非常有用。例如,用户可能只请求整个图像的一小部分,但分辨率很高。在该情况下,只有显示图像的剪切部分所需的图像的片将被包括在发送给用户的客户计算机的图像文件中,剪切图像边界信息用于向在客户计算机上显示该图像的程序传达该信息。两类图像剪切信息由图像文件标题194提供:应用于整个图像文件的剪切,和应用于具体的子图像的任何进一步剪切。例如,当客户计算机首先接收图像时,其可能只接收到特定基本图像的最低分辨率子图像,该子图像一般不被剪切(与全图像相比)。当客户机以特定的较高分辨率放大图像的一部分时,只有产生将在客户计算机上观看的图像部分所需的数据片将被发送到客户计算机,从而新的剪切参数将被添加在客户计算机中存储(或缓存)的图像文件的标题上,以指示根据客户机的图像放大指令下载到客户计算机的子图像级或子图像的剪切边界。
指向基本图像的每个比特流的基本图像标题中包括的片的偏移指针的表还在放大和缩小过程中使用。特别地,参考图15,当图像文件第一次被客户计算机或设备下载时(240),较高级的比特流可能空缺,从而偏移指针表将初始包括无效值。当客户设备的用户放大图像时,如果需要,较高级比特流的各种片的数据被下载到客户设备(242),且指向片的偏移指针表更新,以反映其数据被下载到客户计算机的片。当客户机进一步以放大的或较高的分辨率级全景观看图像时,如果需要,附加片的信息被发送到客户计算机,图像文件标题194中的剪切信息和基本图像标题中的偏移信息再次被更新,以反映为每个比特流存储的数据的片。
参考图5A-5E,图像文件和基本图像子文件标题中的信息使得可以快速检索文件的任何部分,这使得计算机或其它设备能够在任意分辨率级定位图像的任何部分的开头或结尾,而不必解码图像文件190的任何其它部分内容。这在截取图像文件190,以产生较低图像质量版本的文件或剪切图像版本的文件,用于例如通过通讯网络向另一个计算机或设备发送时,非常有用。
下文中,术语“子图像”和“差分子图像”将相对于比特流206使用。总体上,基本图像的任何子图像将包括从比特流1a到具体的最后一个比特流如比特流3的全部比特流。这组连续的比特流构成以特定分辨率级重构图像所需的数据,此处称为子图像。“差分子图像”包含将图像分辨率从一个子图像级提高到下一个子图像级所需的附加比特流。例如,比特流1c、2b和3一起可以称为一个差分子图像,因为这些比特流包含将从比特流1a-2a产生的子图像的分辨率加倍所需的数据。
参考图5C,表示基本图像的编码数据190-C首先按“片顺序”存储。图像文件190-C包括标题222和一组片子文件220。参考图5D,每片子文件220包含标题224,表示用于编码该片的量化表,还包含指向子文件中的比特流的偏移指针以及其它信息。每个片的片子文件220还包含一组比特流子阵列226。每片比特流子阵列226包含编码数据,表示该片的相关组NQS子波段(见图3)的最重要的位平面、最不重要的位平面、或中等位平面。下表示出位平面到比特流子阵列的映射的例子:
  NQS子波段号分辨率 0-3 4,5,6 7,8,9
  16×16   S
  32×32   S+MS   S
  64×64   S+MS+IS   S+IS   全部
该表中,对应于S、MS和IS的位平面在每个NQS子波段中都不同。这些位平面范围在基本图像子文件的标题中说明。例如,对于NQS子波段0-3,S可能对应于位平面16-7,MS可能对应于位平面6-4,IS可能对应于位平面3-0;而对于NQS子波段4-6,S可能对应于位平面16-5,IS可能对应于位平面4-0。
比特流1a、1b和1c包含分别表示NQS子波段0、1、2和3的最重要、中等重要、和最不重要的位平面的编码数据。比特流2a和2b包含分别表示NQS子波段4、5和6的最重要和最不重要的位平面的编码数据,其对应于LH2、HL2和HH2子波段。比特流3包含表示分别对应于LH1、HL1和HH1子波段的NQS子波段7、8和9的编码数据全部位平面。
片子文件220可以被认为是“临时”文件,因为编码的片数据随后从图5C和5D所示的文件格式重组为图5A所示的文件格式。
图5E示出基本图像子文件196的一个具体例子,表示为196A。该基本图像子文件包含12个比特流206,用于产生基本图像和两个较低分辨率子图像。基本图像利用五层小波变换进行了变换,产生16个空间频率子波段数据,这些数据已经被编码和组织为三个子图像,包括基本图像。子图像数在一定程度上是任意的,因为由5个变换层产生的子波段可以用于产生多达6个子图像。但是,使用该基本图像子文件产生很小的子图像在存储器空间利用方面不是很高效,因此,通常优选利用较小的基本图像子文件产生较小的子图像。
图5E中,基本图像用5个变换层处理,但是产生的数据只是组织为3个子图像级,而不是6个。实际上,将子波段LL2转换为10个子波段(LL5、LH5、HL5、HH5、LH4、HL4、HH4、LH3、HL3、HH3)的最后三层变换不是用于产生额外的子图像级,而只是用于产生更好的数据压缩。
如图5E所示,当图像数据的5个变换层映射到3个子图像时,比特流数据阵列206到子图像的映射如下:
子图像0,最低级子图像,对应于比特流子阵列206-1a,其包含NQS子波段0-3的最重要的位平面(见图3B);
子图像1,对应于比特流206-1a、206-1b和206-2a;和
子图像2,基本图像,对应于基本图像子文件中的全部比特流206。
当变换层映射到比图5E所示例子中更多的子图像(子图像级)时,第一子图像206-1a将包括较少的空间频率子波段。
一种稀疏数据编码技术用于编码每片的每组子波段的变换系数,使得只用很少的数据就可以表示大部分包含零值的数据阵列。通常,变换的量化图像数据的较高频率部分(即,子波段)包含的零值比非零值多,且大部分非零值的绝对值较小。因此,许多片的较高级位平面将包含很少的非零值。
分片的小波变换方法
参考图6,当一个图像被图像捕获设备捕获时,产生图像文件的过程开始(步骤250)。如果图像大小可变,则判断所捕获的图像的大小以及覆盖图像数据所需的片的行数和列数(步骤252)。如果图像大小恒定,则步骤252不需要。
然后,通过在水平方向和垂直方向上对图像中每个片应用类小波分解变换,对所有的片按预定顺序进行处理,例如按光栅扫描顺序,然后对产生的变换系数进行量化,最后使用稀疏数据压缩和编码程序对量化的变换系数进行编码(步骤254)。每个片的编码数据存储在临时文件或子文件中,例如按图5D所示的格式。
当图像中的全部片都被处理后,包含所有编码片的多分辨率图像文件被存储在非易失性存储器中(步骤256)。更具体地,来自临时文件的编码片数据按照分辨率相反顺序和图5A所示格式被写入输出比特流文件中。“分辨率相反顺序”意味着图像文件存储在文件中时,最低分辨率比特流先存储,然后是次最低分辨率比特流,依此类推。
用于步骤254的类小波分解在下面参考图7A、7B和7C进行更详细的描述。量化和稀疏数据编码步骤也在下面详细描述。
初始图像被处理、编码和存储为多分辨率图像文件后,通常包含2-4个分辨率级,如果一个以上基本图像要包括在图像文件中(257),原始图像被下采样和反失真(anti-aliased),以产生新的基本图像(258),其每个维度都小一个因子2X,其中X是先前产生的多分辨率图像文件中的子图像级数。这样,新的基本图像将比基本图像的最小的、最低分辨率的子图像小一个因子4。然后按照与前一个基本图像同样的方式对新的基本图像进行处理,以产生附加的但小得多的编码多分辨率基本图像加到图像文件上。如果初始基本图像具有足够高的分辨率,可以通过执行第二轮下采样和反失真来形成第三基本图像,第三编码多分辨率基本图像文件可以存储在图像文件中。最后的编码基本图像可能比其它基本图像包含较少的子图像级,在一些实施例中,可能只包含一个分辨率级,在该情况下,图像文件实际上就是一个拇指甲图像文件。
在一个可选实施例中,每个编码基本图像存储在独立的图像文件中,这些图像文件通过存储在图像文件标题中的信息或通过html(或类html)链接相互链接。
在一个优选实施例中,下采用滤波器是一维FIR滤波器,首先应用于图像的行,然后应用于列,或相反。例如,如果图像要在每个维度上用因子4进行下采样(对于分辨率来说是降低因子16),则该FIR滤波器可以具有以下滤波器系数:
滤波器A=(-3-3-4-4 10 10 29 29 29 29 10 10-4-4-3-3)1/128。
这些示范实施例一次应用于一组14个样本,以产生一个下采样值,然后移位4个样本,然后再应用。重复这一过程,直到产生L/4个下采样值,其中L是初始样本数(即,像素值)。在图像数据阵列的边缘,镜像数据用于延伸超出图像数据边缘的滤波器系数。例如,在阵列的左边(或顶边),前6个系数应用于镜像数据值,4个“29/128”系数应用于被滤波的行(或列)中的前4个像素,最后6个系数应用于该行(或列)中下6个像素。
如果要用因数8下采样一个图像,则应用上述滤波器来用因数4下采样,然后,应用第二滤波器来用另一个因数2进一步下采样图像数据。在一个优选实施例中,该第二滤波器是FIR滤波器,具有如下滤波器系数:
滤波器B=(-3-4 10 29 29 10-4-3)1/64。
可选地,可以使用更长的滤波器以实现通过一个滤波器用因数8下采样。
以上描述的下采样滤波器具有以下特征:它们是低通滤波器,截止频率分别位于奈奎斯特(Nyquist)频率的四分之一和一半处;每个滤波器系数由一个简分数定义,其中,分子是整数,分母是2的正整数倍(即,2N形式的数,其中N是正整数)。这些滤波器特征的结果使得可以非常高效地执行下采样,同时保护图像的空间频率特征,避免失真效果。
尽管下采样滤波器滤波器应用于图像数据阵列的顺序(即,先行后列或相反)会影响产生的具体下采样像素值,但对像素值的影响不大。在本发明的其它实施例中,可以使用其它的下采样滤波器。
使用边缘、内部和中心变换滤波器的类小波分解
图7A-7C简单示出对一组图像数据X0-X2n-1执行类小波分解以产生一组系数L0-Ln-1和H0-Hn-1的过程,其中L系数表示图像数据的低空间频率分量,而H系数表示图像数据的高空间频率分量。
在优选实施例中,所应用的类小波变换实际上是两个滤波器。第一个滤波器T1称为边缘滤波器,用于产生所产生的变换系数行或列中的前两个和后两个系数。第二个滤波器T2称为内部滤波器,用于产生所产生的变换系数行或列中的所有其它系数。边缘滤波器T1是短滤波器,用于变换片或块边缘的数据,而内部滤波器T2是长滤波器,用于变换远离片或块边缘的数据。边缘滤波器和内部滤波器都不用片或块外部的数据。结果,与现有技术系统相比,将本发明的类小波变换应用于图像数据阵列所要求的工作存储器较小。同样,与现有技术系统相比,用于实现本发明的类小波变换的电路和/或软件的复杂性也较低。
在优选实施例中,边缘滤波器包含第一个很短的滤波器(其“支持”覆盖2-4个数据值),用于产生最先和最后的系数,还包括第二个滤波器,用于产生第二和第二到最好的系数。第二边缘滤波器的滤波器支持延伸超过3-6个数据值,因此,比第一边缘滤波器长一些,但比内部滤波器T2短。产生其它系数的内部滤波器具有7个以上数据值的滤波器支持。边缘滤波器,特别是用于产生最先和最后高空间频率系数值的第一边缘滤波器设计为最小化边缘假象,而不使用相邻片或块中的任何数据。换句话说,本发明的边缘滤波器设计为保证被处理的数据阵列的边缘值的准确重构,其在再生由该数据这列表示的图像时,又会最小化边缘假象。
在优选实施例中,应用于数据阵列的类小波分解变换包括第1层类小波变换,其与执行第2-N层变换时使用的类小波变换不同。特别地,第1层类小波变换使用较短的滤波器,比用于第2-N层的滤波器的滤波器支持短。第1层使用不同的类小波变换(即,一组变换滤波器)的原因之一是通过对第1层使用短滤波器来最小化边界假象。第1层使用不同于其它层的类小波变换(即,一组变换滤波器)的另一个原因是最小化由于加上大量标准值而引入的舍入误差。舍入误差主要在第1层变换过程中过滤原始图像数据时发生,有时会引起从编码图像数据再生的图像质量明显下降。
下面列出用于优选实施例中的类小波变换的公式:
第1层正向类小波变换:
T1和T2正向变换(低频):
Yk=X2k-X2k-1                     k=0,1,...,n-1
L k = X 2 k - 1 + [ Y k + 1 2 ] = X 2 k + X 2 k + 1 + 1 2 k = 0,1 , . . . , n - 1
T1正向变换(边缘滤波器-高频):
H 0 = Y 0 + [ - L 0 + L 1 + 1 2 ]
H 1 = Y 1 + [ - L 0 + L 2 + 2 4 ]
H n - 2 = Y n - 2 + [ - L n - 3 + L n - 1 + 2 4 ]
H n - 1 = Y n - 1 + [ - L n - 2 + L n - 1 + 1 2 ]
T2正向变换(内部滤波器-高频):
H k = Y k + [ 3 L k - 2 - 22 L k - 1 + 22 L k + 1 - 3 L k + 2 + 32 64 ] k = 2 , . . . , n - 3
第1层反向类小波变换
T1反向变换(边缘滤波器-高频):
Y 0 = H 0 + [ - L 0 + L 1 + 1 2 ]
Y 1 = H 1 + [ - L 0 + L 2 + 2 4 ]
Y n - 2 = H n - 2 - [ - L n - 3 + L n - 1 + 2 4 ]
Y n - 1 = H n - 1 - [ - L n - 2 + L n - 1 + 1 2 ]
T2反向变换(内部滤波器):
Y k = H k - [ 3 L k - 2 - 22 L k - 1 + 22 L k + 1 - 3 L k + 2 + 32 64 ] k = 2 , . . . , n - 3
X 2 k + 1 = L k - [ Y k + 1 2 ] k = 0,1 , . . . , n - 1
X2k=Yk+X2k+1                          k=0,1,…,n-1
正向类小波变换:第2-N层
下面示出变换级2-N(即,除级1之外的全部)的正向类小波分解变换的优选实施例的公式。注意,“2n”表示以数据样本测量的由该变换处理的数据的宽度;“n”假设为正整数。边缘滤波器T1由H0、Hn -1、L0和Ln-1的公式表示,其滤波器支持比内部滤波器T2短。
在一个可选实施例中,同样的类小波分解变换用于所有的层。例如,此处所示的用于第2-N层的类小波分解变换滤波器也可以用于第1层分解(即,用于滤波原始图像数据)。
H 0 = X 1 - [ X 0 + X 2 + 1 2 ] (边缘滤波器)
H k = X 2 k + 1 - [ 9 ( X 2 k + X 2 k + 2 ) - X 2 k - 2 - X 2 k + 4 + 8 16 ] k = 1 , . . . , n / 2 - 3
H n 2 - 2 = X n - 3 - [ X n - 4 + X n - 2 + 1 2 ] (中心滤波器)
H n 2 - 1 = X n - 1 - [ 11 X n - 2 + 5 X n + 1 + 8 16 ] (中心滤波器)
H n 2 = X n - [ 5 X n - 2 + 11 X n + 1 + 8 16 ] (中心滤波器)
H n 2 + 1 = X n + 2 - [ X n + 1 + X n + 3 + 1 2 ] (中心滤波器)
H k = X 2 k - [ 9 ( X 2 k - 1 + X 2 k + 1 ) - X 2 k - 3 - X 2 k + 3 + 8 16 ] k = n / 2 + 2 , . . . , n - 2
H n - 1 = X 2 n - 2 - [ X 2 n - 3 + X 2 n - 1 + 1 2 ] (边缘滤波器)
L 0 = X 0 + [ H 0 + 2 4 ] = 7 X 0 + 2 X 1 - X 2 + 3 8 (边缘滤波器)
L 1 = X 2 + [ H 0 + H 1 + 2 4 ] (边缘滤波器)
L k = X 2 k + [ 5 ( H k - 1 + H k ) - H k - 2 - H k + 1 + 8 16 ] k = 1 , . . . , n / 2 - 3
L n 2 - 2 = X n - 4 + [ H n 2 - 3 + H n 2 - 2 + 2 4 ] (中心滤波器)
L n 2 - 1 = X n - 2 + [ 2 H n 2 - 2 + 2 H n 2 - 1 + H n 2 + 4 8 ] (中心滤波器)
L n 2 = X n + 1 + [ 2 H n 2 + 1 + 2 H n 2 + H n 2 - 1 + 4 8 ] (中心滤波器)
L n 2 + 1 = X n + 3 + [ H n 2 + 1 + H n 2 + 2 + 2 4 ] (中心滤波器)
H k = X 2 k - [ 9 ( X 2 k - 1 + X 2 k + 1 ) - X 2 k - 3 - X 2 k + 3 + 8 16 ] k = n / 2 + 2 , . . . , n - 3
L n - 2 = X 2 n - 3 + [ H n - 2 + H n - 1 + 2 4 ] (边缘滤波器)
L n - 1 = X 2 n - 1 + [ H n - 1 + 2 4 ] = 7 X 2 n - 1 + 2 X 2 n - 2 - X 2 n - 3 + 3 8 (边缘滤波器)
上述分解变换公式的基本形式只有当n至少等于10时才应用。当n小于10时,用于边缘和中间项目之间的项目的一些公式被略去,因为要产生的系数太少,不需要这些公式。例如,当n=8时,用于产生Lk的两个公式将被忽略。
变换滤波器的属性说明
注意,产生L0和Ln-1的边缘变换滤波器T1在输入数据阵列的边缘具有正好三个输入样本的滤波器支持,并进行加权,使得这些系数的70%可归因于被滤波的数据阵列边界处的边缘值X0或X2n-1。边缘输入数据(即,最靠近阵列边界的样本)的加重使得图像可以从变换系数重构,且基本上没有片边界假象,尽管当生成片的变换系数时,边缘和内部滤波器仅应用于片内部的数据。产生L0和Ln-1的第1层边缘变换滤波器T1加权为使得这些系数值的50%归因于被滤波的数据阵列边界处的边缘值X2n-1
在优选实施例中,内部变换滤波器在整个被滤波的数据阵列内部不是以统一的方式应用。此外,内部滤波器包括一个中心滤波器,用于在被滤波数据阵列的中心或附近生成4个高通和4个低通系数。在其它实施例中,该中心滤波器可以产生少至2个低通和2个高通系数。该中心滤波器用于在内部滤波器左边和右边(或上边和下边)部分之间转换。内部滤波器两种形式之间的转换在此处称为“滤波切换”。内部滤波器的一半,不包括中心滤波器,以偶数编号的数据或系数位置为中心,而内部滤波器的另一半的中心位于奇数数据位置的数据上。(当然,阵列的偶数和奇数数据位置可以互换)。尽管以上公式将中心滤波器置于阵列中心,但中心滤波器可以位于数据阵列内任意位置,只要边缘滤波器与内部滤波器之间的过渡平滑。当然,必须定义反向变换滤波器,使得在与正向变换滤波器相同的位置上具有反向中心滤波器。
第2-N层的小数据阵列变换公式
当n=4时,要执行的变换可以表示为:
(X0,X1,X2,X3,X4,X5,X6,X7)→(L0,L1,L2,L3;H0,H1,H2,H3)
且上述通用变换公式集简化为如下所示:
H 0 = X 1 - [ X 0 + X 2 + 1 2 ]
H 1 = X 3 - [ 11 X 2 + 5 X 5 + 8 16 ]
H 2 = X 4 - [ 5 X 2 + 11 X 5 + 8 16 ]
H 3 = X 6 - [ X 5 + X 7 + 1 2 ]
L 0 = X 0 + [ H 0 + 2 4 ]
L 1 = X 2 + [ 2 H 0 + 2 H 1 - X 2 + 4 8 ]
L 2 = X 5 + [ 2 H 3 + 2 H 2 - H 1 + 4 8 ]
L 3 = X 7 + [ H 3 + 2 4 ]
当n=2时,要执行的变换可以表示为:
(X0,X1,X2,X3)→(L0,L1;H0,H1)
且上述通用变换公式集简化为如下所示:
H 0 = X 1 - [ X 0 + X 3 + 1 2 ]
H 1 = X 2 - [ X 0 + X 3 + 1 2 ]
L 0 = X 0 + [ H 0 + 2 4 ]
L 1 = X 3 + [ H 1 + 2 4 ]
反向类小波变换:第2-N层
下面示出优选实施例中使用的第2-N变换层(即,除第1层之外的全部)的反向类小波变换。上述变换公式的基本形式只有当n至少等于10时才应用。当n小于10时,用于边缘和中间项目之间的项目的一些公式被略去,因为要产生的系数太少,不需要这些公式。
X 0 = L 0 - [ H 0 + 2 4 ]
X 2 = L 1 - [ H 0 + H 1 + 2 4 ]
X 2 k = L k - [ 5 ( H k - 1 + H k ) - H k - 2 - H k + 1 + 8 16 ] k = 2 , . . . , n 2 - 3
X n - 4 = L n 2 - 2 - [ H n 2 - 3 + H n 2 - 2 + 2 4 ]
X 2 k + 1 = L k - [ 5 ( H k + H k + 1 ) - H k - 1 - H k + 2 + 8 16 ] k = n 2 + 2 , . . . , n - 3
X n - 2 = L n 2 - 1 - [ 2 H n 2 - 2 + 2 H n 2 - 1 - H n 2 + 4 8 ]
X n + 1 = L n 2 - [ 2 H n 2 + 1 + 2 H n 2 - H n 2 - 1 + 4 8 ]
X n + 3 = L n 2 + 1 - [ H n 2 + 1 + H n 2 + 2 - 2 4 ]
X 2 n - 3 = L n - 2 - [ H n - 2 + H n - 1 + 2 4 ]
X 2 n - 1 = L n - 1 - [ H n - 1 + 2 4 ]
X 1 = H 0 + [ X 0 + X 2 + 1 2 ]
X 2 k + 1 = H k - [ 9 ( X 2 k + X 2 k + 2 ) - X 2 k - 2 - X 2 k + 4 + 8 16 ] k = 1 , . . . , n 2 - 3
X n - 3 = H n 2 - 2 + [ X n - 4 + X n - 2 + 1 2 ]
X n - 1 = H n 2 - 1 + [ 11 X n - 2 + 5 X n + 1 + 8 16 ]
X n = H n 2 + [ 5 X n - 2 + 11 X n + 1 + 8 16 ]
X n + 2 = H n 2 + 1 + [ X n + 1 + X n + 3 + 1 2 ]
X 2 k = H k + [ 9 ( X 2 k - 1 + X 2 k + 1 ) - X 2 k - 3 - X 2 k + 3 + 8 16 ] k = n 2 + 2 , . . . , n - 2
X 2 n - 2 = H n - 1 + [ X 2 n - 3 + X 2 n - 1 + 1 2 ]
当n=8时,上述通用反向变换公式集简化为如下所示:
X 0 = L 0 - [ H 0 + 2 4 ]
X 2 = L 1 - [ H 0 + H 1 + 2 4 ]
X 4 = L 2 - [ H 1 + H 2 + 2 4 ]
X 6 = L 3 - [ 2 H 2 + 2 H 3 - H 4 + 4 8 ]
X 9 = L 4 - [ 2 H 5 + 2 H 4 - H 3 + 4 8 ]
X 11 = L 5 - [ H 5 + H 6 + 2 4 ]
X 13 = L 6 - [ H 6 + H 7 + 2 4 ]
X 15 = L 7 - [ H 7 + 2 4 ]
X 1 = H 0 + [ X 0 + X 2 + 1 2 ]
X 3 = H 1 + [ 9 ( X 2 + X 4 ) - X 0 - X 6 + 8 16 ]
X 5 = H 2 + [ X 4 + X 6 + 1 2 ]
X 7 = H 3 + [ 11 X 6 + 5 X 9 + 8 16 ]
X 8 = H 4 + [ 5 X 6 + 11 X 9 + 8 16 ]
X 10 = H 5 + [ X 9 + X 11 + 1 2 ]
X 12 = H 6 + [ 9 ( X 11 + X 13 ) - X 9 - X 15 + 8 16 ]
X 14 = H 7 + [ X 13 + X 15 + 1 2 ]
当n=4时,要执行的反向变换可以表示为:
(L0,L1,L2,L3;H0,H1,H2,H3)→(X0,X1,X2,X3,X4,X5,X6,X7)且上述通用反向变换公式集简化为如下所示:
X 0 = L 0 - [ H 0 + 2 4 ]
X 2 = L 1 - [ 2 H 0 + 2 H 1 - H 2 + 4 8 ]
X 5 = L 2 - [ 2 H 3 + 2 H 2 - H 1 + 4 8 ]
X 7 = L 3 - [ H 3 + 2 4 ]
X 1 = H 0 + [ X 0 + X 2 + 1 2 ]
X 3 = H 1 + [ 11 X 2 + 5 X 5 + 8 16 ]
X 4 = H 2 + [ 5 X 2 + 11 X 5 + 8 16 ]
X 6 = H 3 + [ X 5 + X 7 + 1 2 ]
当n=2时,要执行的反向变换可以表示为:(L0,L1;H0,H1)→(X0,X1,X2,X3)
且上述通用反向变换公式集简化为如下所示:
X 0 = L 0 - [ H 0 + 2 4 ]
X 3 = L 1 - [ H 1 + 2 4 ]
X 1 = H 0 + [ X 0 + X 3 + 1 2 ]
X 2 = H 1 + [ X 0 + X 3 + 1 2 ]
在优选实施例中,在每层反向变换过程期间,偶数位置的系数(即,X2i值)必须在奇数位置的系数(即,X2i+1值)之前计算。
在替换实施例中,短的T1分解变换用于对全部数据滤波,而不是边缘数据。仅使用短的T1分解变换缩短了计算时间,降低了复杂性,但降低了数据压缩率,因此,图像文件较大。仅使用短的T1分解变换还缩短了解码包含使用本发明编码的图像的图像文件的计算时间,因为在图像重构过程中,只使用对应的短的T1重构变换。
自适应块方式量化
参考图3,由类小波分解变换产生的每个小波系数被量化:
x ^ q = sign ( x ) [ ( | x | q + 3 8 ) ]
其中q是量化因数,并去量化:
x ^ = q x ^ q .
根据本发明,使用一个量化表来为每个小波系数的子波段指定一个量化因数,从而控制压缩质量。如果执行亮度值的5层小波变换(执行色度值的4层),在分解中有16个亮度值子波段:
LL5,HL5,LH5,HH5,HL4,LH4,HH4,HL3,LH3,HH3,HL2,LH2,HH2,HL1,LH1,HH1
和13个色度值子波段:
LL4,HL4,LH4,HH4,HL3,LH3,HH3,HL2,LH2,HH2,HL1,LH1,HH1
一个可能的量化表是用于亮度值的:
q=(16,16,16,18,18,18,24,24,24,36,46,46,93,300,300,600)
和用于色度值的:
q=(32,50,50,100,100,100,180,200,200,400,720,720,1440)。
但是,在优选实施例中,量化因数q是根据片中图像特征的密集度,针对图像的每个不同的片自适应选择的。参考图8,我们将子波段LHk,HLk和HHk的入口分别标为uij (k),vij (k)和wij (k)。参考图9,块分类器模块为该片的每个变换层(例如,k=1,2,3,4,5)计算一组块分类值:
U k = Σ ij | u ij ( k ) |
V k = Σ ij | v ij ( k ) |
W k = 1 2 Σ ij | w ij ( k ) |
Bk=max{Uk,Vk,Wk}
S k = 1 2 { U k 2 + V k 2 + W k 2 - 1 3 ( U k + V k + W k ) }
原始图像中的水平和垂直线大部分将分别由uij (k)和vij (k)表示。如果原始图像(即,由块分类器估算的片中)包含许多特征(如,边缘和纹路),则Bk往往较大。因此,Bk值越大,要压缩图像而不产生压缩假象将越难。
使用2类模型,提供两个量化表:
Q0=(16,16,16,18,18,18,36,36,36,72,72,72,144,300,300,600),
Q1=(16,32,32,36,36,36,72,72,72,144,144,144,288,600,600,1200)
其中Q0用于“难以”压缩的块,Q1用于“容易”压缩的块。
根据一个或多个Bk值与一个或多个对应的阈值的比较,内部片(即,不在图像边界上的片)各自被分类为“难”或“易”压缩。例如,如图9所示,一个片的B1可以与第一阈值TH1(如,65)比较(步骤271)。如果B1大于该阈值,则该片被分类为“难”(步骤272)。另外,B5与第二阈值TH2(如,60)比较(步骤273)。如果B5大于该阈值,则该片被分类为“难”(步骤274),否则,将其分类为“易”(步骤275)。然后利用由对应于块(即,片)分类的量化表指定的量化因数将该片的小波系数量化。
在优选实施例中,通过比较B1与另一个高阈值TH1B,例如85,来将边界片分类。B1值大于该阈值的边界片分类为“难以”压缩,否则分类为“容易”压缩。
在另一实施例中,可以指定3个或更多的块类别,并可以定义一组对应的阈值。根据B1和/或其它Bi值与这些阈值的比较,将一个片分类为指定的一种类别,然后选择对应的量化表,以确定要应用于片内的子波段的量化值。如果原始图像包含许多特征,则Sk也往往较大,因此,在一些实施例中,用Sk代替Bk来分类图像片。
划分重要部分与不重要部分的稀疏数据编码
参考图10A和10B,产生了基本图像的一个片的变换系数并量化后,下一步就是编码所产生的片的系数。对每个NQS子波段重复一组计算步骤280。通过编码每个NQS子波段产生的比特流由位平面划分,然后组成一组,以形成存储在图像文件中的比特流,如以上参考图5A-5E所描述。
最大位深度掩码
参考图10A,编码程序或装置确定要被编码的NQS子波段中的数据块的最大位深度(286),这是编码该块中的任何系数值所需的最大位数,此处称为最大位深度。最大位深度值通过计算编码该块中的任意数据值的绝对值所需的最大位数来确定。特别地,最大位深度等于int(log2V)+1,其中V是该块中任意元素的最大绝对值,“int()”表示具体值的整数部分。每个顶层块的最大位深度存储在对应的比特流中(如,其系数被编码的子波段组的重要比特流)。然后,对当前块调用块程序(288)。块程序的伪码表达示于表2中。
每个块包含4个子块(见图11A)。如图11B所示,块程序确定当前块的每4个子块的最大位深度(300)。然后,其产生并编码最大位深度掩码(301)。该掩码具有4位:m1,m2,m3,m4,分别设置为只有当对应子块的最大位深度等于当前块(父块)的最大位深度m0时等于预定值(如,1),否则设置为等于0。该掩码的数学表达如下:
掩码=(m0==m1)+(m0==m2)+(m0==m3)+(m0==m4)
其中,“+”表示级联。
例如,掩码1000表示只有子块1的最大位深度等于当前块的最大位深度。掩码的值总是在1-15之间。
最大位深度掩码最好用15个标记的霍夫曼(Huffman)表(见表1)编码。从表中可见,对应于最普通掩码型式的4个掩码值只用3个位编码,其中只有一个子块的最大位深度等于父块的最大位深度。
表1编码最大位深度掩码的Huffman表
  掩码   Huffman代码
  0001   111
  0010   101
  0011   1001
  0100   011
  0101   0010
  0110   10000
  0111   01001
  1000   110
  1001   01000
  1010   0001
  1011   00110
  1100   0101
  1101   00111
  1110   0000
  1111   10001
编码子块最大位深度值
此外,步骤301包括对于其最大位深度等于当前块的最大位深度m0的每个子块编码最大位深度值。例如,如图11A和11B所示,如果当前块的最大位深度值为
m1,m2,m3,m4=5,0,3,2
则需要被编码的最大位深度值只有m2,m3和m4,因为从最大位深度掩码和先前存储和编码的当前块的最大位深度m0的值已知最大位深度值m1
应当注意,如果m0=1,则不需要编码子块的最大位深度值,因为从最大位深度掩码可以完全知道那些值。
如果m0不等于1,则对于每个不等于m0的mi,程序如下编码mi值:
mi=0,则程序输出一串长度为m0-1的0;和
否则,程序输出一串长度为m0-mi-1的0,最后是一个1。
例如,如果m0=5,且m1=0,则m1被编码为一串4个0:0000。如果m0=5,且m1=3,则m1被编码为一串(5-3-1=1)1个0,最后是1:01。
以上{m1,m2,m3,m4}={5,0,3,2}的例子中,最大位深度值编码为:
  掩码   m2子块   M3子块   m4子块
  111   0000   01   001
然后,如果被编码的NQS子波段的系数要存储在两个或多个比特流中,则该块的最大位深度的编码表达被划分为两部分或更多,每一部分包含特定范围的位平面的信息内容。为了解释容易,我们将解释最大位深度值和掩码以及系数如何被划分为两部分,此处称为重要部分和不重要部分。同样的技术可以用于将这些值划分为对应于重要、中等重要和不重要(最不重要)部分的三个位平面范围。
对于每个NQS子波段,不包括最后一组NQS子波段,系数位平面被划分为两个或三个范围。当具有两个位平面范围时,选择或预定一个划分该两个范围的位平面阈值。每个“系数值”(包括其最大位深度值)小于该位平面阈值的“不重要”部分存储在“不重要”比特流206中(见图5D),其它系数存储在对应的重要比特流206中。位平面范围的选择通常是根据经验进行的,但使用不同的位平面范围编码大量图像,然后选择一组位平面范围,从而平均起来实现根据不同分辨率级的比特流对数据的特定划分。例如,所述特定划分可以是将数据大约相等地在第一分辨率级与第二分辨率级的比特流之间划分。可选地,所述特定划分可以要求第二分辨率级的比特流包含第一(较低)分辨率级的比特流4倍的数据。
首先,我们将说明将最大位深度值划分为重要和不重要部分,然后,说明编码和划分最小块的系数值。
如果一个块的最大位深度m0小于阈值,则该子块最大位深度掩码和最大位深度值的每一位存储在基本图像子文件的不重要部分中。否则,最大位深度掩码存储在重要部分中,然后,每个编码子块最大位深度值被划分为重要和不重要部分。该划分如下进行:如果mi≥阈值,则整个编码最大位深度值mi被包括在子图像子文件的重要部分中。否则,除mi=m0外,每个最大位深度值mi的最先的m0-阈值个位存储在子图像子文件的重要部分中,而每个mi的其它位(如果有)存储在子图像于文件的不重要部分中。
如果要将系数的位平面划分为三个范围,则选择或预定两个位平面阈值,并使用与上述相同的技术将最大位深度掩码和值分配在三个比特流中。
编码最小块的系数值
然后,如果当前块的大小(即,当前块中的系数值数量)不是预定的最小数(302-否),例如,4,则对当前块的每4个子块调用块程序(303)。这是递归程序调用。对子块调用块程序的结果,该子块的最大位深度掩码和值被编码并插入被编码的子波段组的一对比特流中。如果子块不是预定的最小尺寸,则对其子块递归调用块程序。
当预定最小尺寸的块被块程序处理时(302-是),该块的最大位深度和子块的最大位深度值被编码后(301),该块的系数被编码,编码值划分为重要和不重要部分(304)。
不等于0的每个系数包括一个POS/NEG位,以指示其符号,以及数量为最大位深度的附加位。此外,除了符号位外,每个非0系数的MSB(最重要位)已经从该系数的最大位深度值已知,实际上等于1。因此,该MSB不需要编码(或从另一个观点,其已经用最大位深度值进行了编码)。
对于每个最小块的系数,如果该系数的最大位深度小于阈值,则该系数的全部位,包括其符号位,在不重要部分中。否则,符号位在重要部分中,而且,如果有的话,最不重要位(LSB)的阈值数以上的最重要位(MSB)也包括在重要部分中。换句话说,底部“阈值”数的位分配到不重要部分中。但是,如果最大位深度等于阈值,则符号位仍然分配到重要部分中,而其它位分配在不重要部分中。
此外,如上所述,因为每个系数的绝对值的MSB已经从最大位深度掩码和值已知,该位不存储。同样,值为0的系数也不被编码,因为它们的值从该系数的最大位深度值完全已知,所述最大位深度值为0。
例如(见图11C),考虑一个块的4个系数{31,0,-5,-2}和一个阈值3。该块的值用二进制表示为POS 11111,0,NEG 101,NEG 10。首先,0值系数的非0系数的MSB被排除掉,从而得到:POS 111,NEG01,NEG 0。然后,阈值数量的最不重要位(除了符号位)被分配到不重要部分,剩下的分配到重要部分:
重要部分:POS 1,NEG
不重要部分:111,01,NEG 0。
重要部分包含系数值31和-5的最重要的位,而不重要部分包含系数值31和-5的其它位以及系数值-2的全部位。
表2
块编码程序的伪代码
//Encode MaxbitDepth mi for each subblock i:
Determine MaxbitDepth mi for each subblock i=1,2,3,4
mask=(m0==m1)+(m0==m2)+(m0==m3)+(m0==m4)
//where the“+”in the above equation represents concatenation
Encode and store mask using Huffman table
Fori=1 to 4{
  If mi≠m0{

     if mi=0{

         output a string of m0 O′s}

     else{//mi≠0

         output a string of m0-mi O′s,followed by a 1}

     }

    }
//Divide the encoded MaxbitDepth mask and MaxbitDepth between significant and
//insignificant portions as follows:
				
				<dp n="d36"/>
If m0<threshold{

    output the MaxbitDepth mask and MaxbitDepth values to insignificant bitstream}
else{

    output the MaxbitDepth mask to significant bitstream;

    for i=1 to 4{

        if mi=m0{output nothing for that mi}

        else{

           if mi≥threshold{output mi to significant bitstream}

           else {

              output the first m0-threshold bits of mi to the significant bitstream

              and output the remaining bits of mi(if any)in the insignificant

              bitstream}

           }

        }

    }
//Encode Coefficient values ifblock is of minimum size
If size of current block is>minimum block size{

    //coefficient values are denoted as ci

    for i=1 to 4{

        Call Block(subblock i);

        }

    else{//size of current block is≤minimum block size

        C=number of coefficients in block;//if block size is already known,skip this step

        for i=1 to C{

            if mi<threshold{

              output all bits of ci to insignificant bitstream;

              }

          else{

              output sign(ci)to the significant bitstream;

              if mi>threshold{

                  #M=mi-threshold-1;//#M≥0

                  output the #M most significant bits to the significant bitstream;

                  }

              output all remaining least significant bits of ci to the insignificant bitstream;

              }

          }//end of coefficient processing loop

      }    //end of main else clause

  }        //end of procedure
Return
如上所述,如果系数的位平面要划分为3个范围,则选择或预定2个位平面阈值,且使用上述相同的技术将编码的系数值在3个比特流之间分配。
图像重构
要以等于或低于一个图像文件中的基本图像被编码的分辨率级从该图像文件重构图像,则该图像文件在所述分辨率级以下的每个比特流都被解压缩和去量化。然后,以逐片形式对重构的变换系数进行反向变换,从而以特定的分辨率级重构图像数据。
参考图12,图像重构过程根据从图像文件接收的图像数据重构一个图像(320)。执行图像重构的程序或设备的用户,或者代表用户的控制程序操作,选择或指定一个等于或低于图像数据中包含的最高分辨率级的分辨率级R(322)。读取该图像数据文件的标题以确定图像中的片的数量和排列(L,K),以及图像重构程序可能需要的其它信息(323)。步骤324和326以给定的分辨率级重构图像,并且在步骤328,重构的图像被显示或存储在存储设备中。图13A和13B提供了该程序的更详细视图,用于在特定子图像级解码特定片的数据。
在一个优选实施例中,如图12所示,与指定分辨率级相关的图像文件中的数据首先被重组为一片接一片的子文件,每个片子文件包含该片的比特流(324)。然后,每片的数据被处理(326)。读取标题信息,以确定该片的每个顶层子波段块的最大位深度、用于量化每个子图像子波段的量化因数等。以指定分辨率级重构图像所需的每个NQS子波段的变换系数按照子波段顺序被解码。解码任意一个NQS子波段中的系数的解码过程的细节将在下面参考图13B讨论。通过应用每个子波段的量化因数(从基本图像标题中标识的Q表获得),对所获得的解码系数进行去量化。然后,对产生的去量化系数应用反向变换。注意,从去量化的变换系数重构图像的类小波反向变换已经在上面描述过。
参考图13A,为了以指定的分辨率级解码一个片t的数据,重复一组步骤340,以解码该片的每个NQS子波段,不包括该指定分辨率级所不需要的NQS子波段,也不包括该指定分辨率级所不需要的包含解码系数值的位平面的任何比特流。参考图5D和5E,只有该指定分辨率级所需要的基本图像的比特流被解码。对于被解码的片的特定顶层块(对应于一个NQS子波段),该顶层块的最大位深度或者从片阵列的标题(如果数据已经被重组为片阵列)确定,或者从该子波段的起始比特流的数据确定(346),然后,调用解码块程序,以解码当前块的数据(348)。
特定子波段的数据解码后,该子波段的解码变换系数可以利用相应的量化因数被去量化(350)。可选地,去量化可以在全部子波段的全部系数都解码后再执行。
一旦NQS子波段的全部系数都去量化,就执行反向变换,以再生特定分辨率级的当前片t的图像数据。
在一个可选实施例中,图12的步骤S324不使用,且图像文件中的数据不被重组为片阵列。相反,逐个子波段组对图像数据进行处理,要求恢复的全部片的变换系数在初始重构步骤中被累计和存储。解码特定子波段组的特定片的一个顶层块的数据的步骤340对每个片重复。特别地,对于特定子波段组的特定片的特定顶层块,该顶层块的最大位深度或者从该片阵列的标题,或者从子波段组的比特流的起始数据来确定(346),然后调用解码块程序来解码当前块的数据(348)。
参考图13B,解码块程序(其可以用于前述段落中的优选实施例和可选实施例)首先解码可应用的编码数据阵列中的最大位深度数据,以确定当前块的每个子波段的最大位深度(360)。根据被解码的NQS子波段,一个块的最大位深度数据可能在一个比特流中,也可能被分割在两个或三个比特流中,如上所述,因此,来自所有要求的比特流中的可应用最大位深度数据位将被读取和解码。如果当前块的大小大于预定的最小块大小(362-否),则对当前块的每个子块调用解码块程序(363)。这是递归程序调用。对子块调用解码块程序的结果,该子块的最大位深度值被解码。如果该子块不是预定的最小尺寸,则对其子块递归调用解码块程序,依此类推。
当由解码块程序处理了预定最小尺寸的块时(362-是),该块的系数被解码。根据被解码的子波段组,一个块的解码系数可能在一个比特流中,也可能被分割在两个或三个比特流中,如上所述,因此,来自所有要求的比特流中的可应用数据位将被读取和解码。
参考图13A,对于指定分辨率级中包括的全部NQS子波段,再生每片的量化变换系数。当这些系数被去量化后,对每个片应用反向变换(352),这已经描述过。
使用非交替的水平和垂直变换的实施例
在另一个优选实施例中,图像的每个片首先通过多个(如,5个)水平分解变换层处理,然后通过类似数目的垂直分解变换层处理。等价地,垂直变换层可以先于水平变换层应用。在本发明的图像变换方法的硬件实现中,变换层的这一顺序变换具有下列优点:(A)减少数据阵列旋转的次数,或(B)避免对于在工作图像阵列中切换行和列的角色的电路的需要。当执行随后的水平变换时,第二水平变换应用于由第一水平变换产生的低频系数的最左阵列,第三水平变换应用于由第二水平变换产生的低频系数的最左阵列,依此类推。这样,第二至第N水平变换应用的数据就是水平和垂直变换交替的变换方法中的数据的两倍。但是,该额外的数据处理在硬件实现上基本上不带来任何附加的处理时间,因为在这样的实现中,水平滤波器同时应用于工作图像阵列的全部行。
垂直变换连续地应用于工作图像阵列的连续较小的子阵列。当图像数据被所有变换层(水平和垂直)变换后,上述的量化和编码步骤被应用于产生的变换系数,以完成图像编码过程。
如上所述,不同的(通常是较短的)变换滤波器可以应用于靠近被处理的阵列边缘的系数,通常较长的变换滤波器应用于远离这些阵列边缘的系数。在中心使用较长的变换滤波器提供了比较长滤波器更好的数据压缩,而较短的变换滤波器消除了对相邻片的数据和系数的需求。
数码相机结构
参考图14,示出根据本发明的数码相机系统400的一个实施例。该数码相机系统400包括图像捕获设备402,如CCD传感器或任何其它适合捕获图像作为数字编码信息阵列的机构。假设图像捕获设备包括一个模数转换(ADC)电路,用于将模拟图像信息转换为数字值。
工作存储器404通常是随机存取存储器,从图像获取设备402接收数字编码的图像信息。更普遍地,它用于在相机的数据(即,图像)处理电路406对图像进行变换、压缩和处理期间,存储数字编码的图像。数据处理电路406在一个实施例中包括硬件逻辑和一组状态机,用于执行一组预定的处理操作。
在可选实施例中,数据处理电路406可以部分或全部实现为快速通用微处理器和一组软件程序。但是,至少使用2000年可用的技术,很难以足够快的速度处理和存储全分辨率图像(例如,具有1280×840像素的全色图像),使相机能够每秒摄取比如20个画面,这是一些商业产品所要求的。如果通过并行处理技术或良好设计的软件,低功率的通用图像数据微处理器能够支持数码相机需要的快速图像处理,那么数据处理电路106可以使用这样的通用微处理器实现。
经过数据处理电路406处理后,每个图像通常在非易失性存储设备408中被存储为“图像文件”,设备408通常用“闪”(即,EEPROM)存技术实现。非易失性存储设备408最好实现为活动存储器卡。这允许相机用户拔掉一个存储器卡,插入另一个,然后继续拍照。但是,在一些实施例中,非易失性存储设备408不是活动的,在这种情况下,相机通常具有一个数据接入端口410,使相机能够与其它设备相互传递图像文件,如通用台式机。具有非易失性存储设备408的数码相机也可以包括数据接入端口410。
数码相机400包括一组按钮412,用于给出相机指令。除了图像获取按钮,通常还有若干个其它按钮,用于选择下一个要拍摄的画面质量级、滚动存储器中的图像以便在相机的图像观察器414上观看、从非易失性存储设备408中删除图像、以及调用相机的其它功能。这样的其它功能可能包括使用闪光灯、与计算机之间传递图像文件。在一个实施例中,这些按钮是机电接触开关,而在其它实施例中,至少部分按钮可以实现为用户接口显示器416或图像观察器414上的触摸屏按钮。
用户接口显示器416通常实现为(A)与图像观察器414独立的LCD显示设备,或(B)图像观察器414上显示的图像。菜单、用户提示、以及关于存储在非易失性图像存储器408中的图像的信息可以显示在用户接口显示器416上,不管该显示是如何实现的。
图像被获取、处理并存储在非易失性存储设备408中后,可以从存储器408中检索出相关的图像文件,以便在图像观察器上观看。更具体地,图像文件由其变换的压缩形式转换回到适合在帧缓冲器418中存储的数据阵列。帧缓冲器中的图像数据显示在图像观察器414上。日期/时间电路420用于跟踪当前的日期和时间,存储的每个图像都打上拍摄图像的日期和时间戳。
还参考图14,数码相机400最好包括数据处理电路406,用于执行一套预定的基本操作,如执行将变换应用于一定量的图像数据所需的乘法和加法操作,以及一组状态机430-442,用于控制数据处理电路,以执行一组预定的图像处理操作。在一个实施例中,数码相机中的状态机如下:
一个或多个状态机430,用于变换、压缩和存储从相机的图像获取机构接收的图像。该图像有时称为“取景器”图像,因为被处理的图像通常是相机的图像观察器414上看到的图像。该组状态机430是初始产生存储在非易失性存储设备408中的每个图像文件的状态机。在拍摄之前,用户使用相机的按钮412来选定图像要存储的质量级。在一个优选实施例中,图像编码状态机430实现本发明的一个或多个特征。
一个或多个状态机432,用于解压缩、反变换和在计算机的图像观察器上显示存储的图像文件。由解压缩、反变换和去量化图像数据产生的重构图像存储在相机的帧缓冲器418中,使其能够在图像观察器414上观看。
一个或多个状态机434,用于更新和显示存储在非易失性存储设备408中的图像数目的计数。该图像计数最好显示在用户接口显示器416上。该组状态机434通常还将指示非易失性存储设备408未被图像文件占用的百分比,或相机进一步存储图像的能力的其它指示。如果相机没有独立的接口显示器416,这些存储器状态信息可以显示在图像观察器414上,如,叠加在图像观察器414中显示的图像上,或显示在图像观察器414上独立于主要的观察器图像的一个区域中。
一个或多个状态机436,用于实现相机的“取景器”模式,其中当前由图像获取机构402“看见”的图像显示在图像观察器414上,使得用户可以看见按下图像获取按钮后将被存储的图像。这些状态机可能在执行适当的修补步骤以改善原始图像数据后,将从图像获取设备402接收的图像传输到相机的帧缓冲器418。
一个或多个状态机438,用于从非易失性存储设备408向外部设备如通用计算机下载图像。
一个或多个状态机440,用于从外部设备如通用计算机向非易失性存储设备408上载图像。这使得相机可以用作看图设备,以及用作传输存储器卡上的图像文件的设备。
可选实施例
总的来说,在可用工作存储器不足以将整个图像作为单个片来处理时,或者在产品必须在不同的环境中,包括低存储器环境中工作时,或者在图像需要通过低带宽通信通道传递时,或者在必须或最好提供不同分辨率级的图像时,本发明在任何这样的“节约存储”环境中将是有用的。
在流型数据实现中,如接收使用本发明编码的压缩图像的网络浏览器中,一个图像的子图像可能被匆忙解码和解压缩,因为该图像的其它更高级子图像的数据正被接收。结果,压缩图像的一个或多个较低分辨率级版本可能在通过通信通道接收到(和/或解码)图像的最高分辨率版本的数据之前被重构并显示。
在另一个可选实施例中,可以使用不同于上述类小波变换的变换。
在可选实施例中,图像片可以按照不同顺序处理。例如,图像片可以从右到左处理,而不是从左到右处理。同样,图像片可以从底部行开始,逐步向着顶部行处理。
本发明可以实现为计算机程序产品,包括嵌入计算机可读存储介质中的计算机程序。例如,该计算机程序产品可以包含图2所示的程序模块。这些程序模块可以存储在CD-ROM、磁盘存储产品、或任何其它计算机可读数据或程序存储产品中。计算机程序产品中的软件模块还可以通过互联网或通过用载波传输计算机数据信号(其中嵌入所述软件模块)来以电子方式分布。
尽管参考几个具体实施例对本发明进行了描述,但上述说明只是示例性的,不应认为是对本发明的限制。本领域的技术人员可以进行各种修改而不偏离由所附权利要求定义的本发明的主旨和范围。

Claims (13)

1.一种处理图像数据阵列的方法,包括:
将预定族的变换滤波器应用于图像数据阵列,从而产生连续的变换系数组,每组变换系数包括该组变换系数外部边界的边缘系数和位于该组变换系数内部位置的非边缘系数;变换系数组包括一个最后变换系数组和一个或多个较先的变换系数组;和
所述应用包括将短变换滤波器应用于阵列边界的图像数据和位于每个较先变换系数组边界的系数,以产生边缘系数,以及将长滤波器应用于阵列内部位置的图像数据和较先的变换系数组内部位置的系数,以产生非边缘系数;
其中,短变换滤波器的滤波器支持比长变换滤波器短,并且在生成变换系数组时,短变换滤波器和长变换滤波器都只应用于阵列内部的图像数据,并且只应用于该阵列的较先变换系数组内的变换系数。
2.权利要求1的方法,其中短变换滤波器包括产生低空间频率系数的短低空间频率滤波器,该短低空间频率滤波器加权最靠近阵列边界的图像数据和最靠近每个较先变换系数组边界的变换系数,从而能够从变换系数再生图像,而没有阵列边界假象。
3.权利要求2的方法,其中,短低空间频率滤波器加权最靠近一个较先变换系数组边界的边缘变换系数,使得由滤波器为下一个变换系数组产生的边缘变换系数的50%以上可以归于最靠近一个较先变换系数组边界的变换系数。
4.权利要求1的方法,其中,多个变换滤波器是非对称边界滤波器,延伸到每个阵列边界的第一范围,并在远离阵列边界的方向上延伸到第二个较长的范围,但是不延伸超过阵列边界。
5.权利要求1的方法,其中,变换滤波器是小波或类小波分解变换滤波器。
6.权利要求1的方法,其中,长滤波器包括一个中心滤波器,应用于内部位置中预定阵列位置组的图像数据,用于产生一组中心高通和低通变换系数,且该长滤波器还包括第一和第二不同的内部滤波器,其中,第一内部滤波器应用于预定阵列位置组第一侧的阵列位置,第二内部滤波器应用于所述预定阵列组的不同的第二侧的阵列位置。
7.一种处理图像数据阵列的方法,包括:
按照预定顺序处理图像数据的片,这些片包括图像数据的不重叠部分,从而产生处理的图像数据;和
将处理的图像数据存储为数据图像文件;
每片图像数据的处理包括:
将预定族的变换滤波器应用于图像数据片,从而产生连续的变换系数组,每组变换系数包括该组变换系数外部边界的边缘系数和位于该组变换系数内部位置的非边缘系数;变换系数组包括一个最后变换系数组和一个或多个较先的变换系数组;且
所述应用包括将短变换滤波器应用于片边界的图像数据和位于每个较先变换系数组边界的系数,以产生边缘系数,以及将长滤波器应用于片内部位置的图像数据和较先的变换系数组内部位置的系数,以产生非边缘系数;
其中,短变换滤波器的滤波器支持比长变换滤波器短,并且在生成变换系数组时,短变换滤波器和长变换滤波器都只应用于片内部的图像数据,并且只应用于该片的较先变换系数组内的变换系数。
8.权利要求7的方法,其中每片的处理包括:
对于至少两个相应的变换系数组,产生一个或多个参数,这些参数的值表示该片中的图像特征密集度;
根据一个或多个参数的值,将片归类为预定组的类别;
根据片被归入的类别,选择每个相应片的一组量化因数;以及
由该量化因数组按比例缩放该片的变换系数,以产生该片的一组量化变换系数。
9.权利要求8的方法,包括:
在图像数据文件中存储一个标识,指示为图像数据的每片选定的量化因数组。
10.一种处理图像数据阵列的方法,包括:
将预定族的变换滤波器应用于图像数据阵列,以产生连续的变换系数组,包括将第一族变换滤波器应用于图像数据阵列,以产生第一组变换系数,和将第二族变换滤波器应用于第一组变换系数,以产生第二组变换系数;
其中,第一族变换滤波器的滤波器支持比第二族变换滤波器的短。
11.权利要求10的方法,其中,应用第一族变换滤波器包括将第一短变换滤波器应用于阵列边界处的图像数据,和将第一长变换滤波器应用于阵列内部位置的图像数据,并且应用第二族变换滤波器包括将第二短变换滤波器应用于第一组变换系数边界处的边缘系数和将第二长变换滤波器应用于第一组变换系数内部位置的系数。
12.权利要求10的方法,包括将第二族变换滤波器应用于第二组变换系数,以产生第三组变换系数,和将第二族变换滤波器应用于该第三组变换系数,以产生第四组变换系数。
13.权利要求12的方法,其中,应用第一族变换滤波器包括将第一短变换滤波器应用于阵列边界处的图像数据,和将第一长变换滤波器应用于阵列内部位置的图像数据,并且应用第二族变换滤波器包括将第二短变换滤波器应用于相应组变换系数边界处的边缘系数,并且将第二长变换滤波器应用于该相应组变换系数内部位置的系数。
CNB018203647A 2000-10-12 2001-10-11 基于类小波变换和稀疏数据编码的多分辨率图像数据管理系统和方法 Expired - Fee Related CN1272740C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/687,467 US6549674B1 (en) 2000-10-12 2000-10-12 Image compression based on tiled wavelet-like transform using edge and non-edge filters
US09/687,467 2000-10-12

Publications (2)

Publication Number Publication Date
CN1479907A CN1479907A (zh) 2004-03-03
CN1272740C true CN1272740C (zh) 2006-08-30

Family

ID=24760556

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB018203647A Expired - Fee Related CN1272740C (zh) 2000-10-12 2001-10-11 基于类小波变换和稀疏数据编码的多分辨率图像数据管理系统和方法

Country Status (6)

Country Link
US (4) US6549674B1 (zh)
EP (1) EP1332465A4 (zh)
JP (3) JP4511788B2 (zh)
CN (1) CN1272740C (zh)
AU (1) AU2002213135A1 (zh)
WO (1) WO2002031756A1 (zh)

Families Citing this family (145)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030142875A1 (en) * 1999-02-04 2003-07-31 Goertzen Kenbe D. Quality priority
US6263503B1 (en) 1999-05-26 2001-07-17 Neal Margulis Method for effectively implementing a wireless television system
US8266657B2 (en) 2001-03-15 2012-09-11 Sling Media Inc. Method for effectively implementing a multi-room television system
US7038716B2 (en) * 1999-07-30 2006-05-02 Pixim, Inc. Mobile device equipped with digital image sensor
US20020021758A1 (en) * 2000-03-15 2002-02-21 Chui Charles K. System and method for efficient transmission and display of image details by re-usage of compressed data
US6549674B1 (en) 2000-10-12 2003-04-15 Picsurf, Inc. Image compression based on tiled wavelet-like transform using edge and non-edge filters
US20030079184A1 (en) * 2000-05-05 2003-04-24 International Business Machines Corporation Dynamic image storage using domain-specific compression
US6891974B1 (en) * 2001-01-08 2005-05-10 Microsoft Corporation System and method providing improved data compression via wavelet coefficient encoding
US6971060B1 (en) * 2001-02-09 2005-11-29 Openwave Systems Inc. Signal-processing based approach to translation of web pages into wireless pages
US20020188635A1 (en) * 2001-03-20 2002-12-12 Larson Stephen C. System and method for incorporation of print-ready advertisement in digital newspaper editions
US6816626B1 (en) * 2001-04-27 2004-11-09 Cisco Technology, Inc. Bandwidth conserving near-end picture-in-picture videotelephony
US7580927B1 (en) * 2001-05-29 2009-08-25 Oracle International Corporation Quadtree center tile/boundary tile optimization
US7127117B2 (en) * 2001-06-11 2006-10-24 Ricoh Company, Ltd. Image compression method and apparatus for suppressing quantization rate in particular region, image expansion method and apparatus therefor, and computer-readable storage medium storing program for the compression or expansion
US20030091333A1 (en) * 2001-11-15 2003-05-15 Takuya Kotani Information recording apparatus, its control method, and information recording method
US7120308B2 (en) * 2001-11-26 2006-10-10 Seiko Epson Corporation Iterated de-noising for image recovery
JP2003271507A (ja) * 2002-03-13 2003-09-26 Canon Inc モバイル向けマークアップ言語を記述するシステム及び表示用コンテンツを作成する情報処理装置、プログラム
JP3890241B2 (ja) * 2002-03-13 2007-03-07 キヤノン株式会社 情報処理システム及び情報処理方法
US7146434B2 (en) * 2002-05-15 2006-12-05 Hewlett-Packard Development Company, L.P. Method for downloading data via the internet to a browser enabled computer
US20100131673A1 (en) * 2002-05-23 2010-05-27 New York University System and method for distributing foveated data in a network
US7260269B2 (en) * 2002-08-28 2007-08-21 Seiko Epson Corporation Image recovery using thresholding and direct linear solvers
JP4045913B2 (ja) * 2002-09-27 2008-02-13 三菱電機株式会社 画像符号化装置、画像符号化方法、および画像処理装置
US7558441B2 (en) 2002-10-24 2009-07-07 Canon Kabushiki Kaisha Resolution conversion upon hierarchical coding and decoding
JP4111268B2 (ja) * 2002-12-13 2008-07-02 株式会社リコー サムネイル画像の表示方法、サーバコンピュータ、クライアントコンピュータ及びプログラム
KR100436667B1 (ko) * 2003-02-20 2004-06-22 브이알 포토 주식회사 다중 웹 서버에서의 다중 해상도 이미지 제공 어플리케이션 공급 서비스 방법 및 장치
JP3625211B2 (ja) * 2003-03-13 2005-03-02 三菱電機株式会社 Jpeg圧縮ファイルの生成方法およびjpeg圧縮ファイルの生成装置および画像処理装置
JP4114534B2 (ja) * 2003-05-02 2008-07-09 ソニー株式会社 画像符号化装置及び方法
US7352909B2 (en) * 2003-06-02 2008-04-01 Seiko Epson Corporation Weighted overcomplete de-noising
FR2858096B1 (fr) * 2003-07-23 2005-12-30 Compression D Images En Reseau Procede de decodage d'image et dispositif de mise en oeuvre de ce procede
US20050105817A1 (en) * 2003-11-17 2005-05-19 Guleryuz Onur G. Inter and intra band prediction of singularity coefficients using estimates based on nonlinear approximants
DE10354226B4 (de) * 2003-11-20 2006-04-06 Siemens Ag Verfahren und Vorrichtung zum Laden eines in einem Archiv befindlichen Bildes mittels Pipeline Verarbeitung des in Chunks zerlegten Bildes mit Darstellung von Zwischenergebnissen in inkrementell erhöhter Auflösung
US7483583B2 (en) * 2003-12-16 2009-01-27 Infocus Corporation System and method for processing image data
WO2005081539A1 (ja) * 2004-02-23 2005-09-01 Nec Corporation 2次元信号の符号化/復号方法および装置
US7418144B2 (en) * 2004-03-03 2008-08-26 Her Majesty The Queen In Right Of Canada, As Represented By The Minister Of Industry, Through The Communications Research Centre Canada Curved wavelet transform for image and video compression
JP4489474B2 (ja) * 2004-03-19 2010-06-23 株式会社リコー 画像処理装置、プログラムおよび記録媒体
JP4500707B2 (ja) * 2004-03-24 2010-07-14 キヤノン株式会社 画像データ処理装置
US7917932B2 (en) 2005-06-07 2011-03-29 Sling Media, Inc. Personal video recorder functionality for placeshifting systems
US9998802B2 (en) 2004-06-07 2018-06-12 Sling Media LLC Systems and methods for creating variable length clips from a media stream
US8346605B2 (en) 2004-06-07 2013-01-01 Sling Media, Inc. Management of shared media content
US7769756B2 (en) 2004-06-07 2010-08-03 Sling Media, Inc. Selection and presentation of context-relevant supplemental content and advertising
US8099755B2 (en) 2004-06-07 2012-01-17 Sling Media Pvt. Ltd. Systems and methods for controlling the encoding of a media stream
EP1769399B1 (en) 2004-06-07 2020-03-18 Sling Media L.L.C. Personal media broadcasting system
US7975062B2 (en) 2004-06-07 2011-07-05 Sling Media, Inc. Capturing and sharing media content
US7929056B2 (en) * 2004-09-13 2011-04-19 Hewlett-Packard Development Company, L.P. User interface with tiling of video sources, widescreen modes or calibration settings
US7916952B2 (en) * 2004-09-14 2011-03-29 Gary Demos High quality wide-range multi-layer image compression coding system
US8854389B2 (en) * 2004-09-22 2014-10-07 Intel Corporation Apparatus and method for hardware-based video/image post-processing
US7515766B2 (en) * 2004-09-22 2009-04-07 Intel Corporation Apparatus and method for edge handling in image processing
KR100634527B1 (ko) * 2004-11-26 2006-10-16 삼성전자주식회사 층 기반 영상 처리 장치 및 방법
US8200796B1 (en) 2005-05-05 2012-06-12 Digital Display Innovations, Llc Graphics display system for multiple remote terminals
US11733958B2 (en) 2005-05-05 2023-08-22 Iii Holdings 1, Llc Wireless mesh-enabled system, host device, and method for use therewith
US8019883B1 (en) 2005-05-05 2011-09-13 Digital Display Innovations, Llc WiFi peripheral mode display system
US20060282855A1 (en) * 2005-05-05 2006-12-14 Digital Display Innovations, Llc Multiple remote display system
US7667707B1 (en) 2005-05-05 2010-02-23 Digital Display Innovations, Llc Computer system for supporting multiple remote displays
US7702952B2 (en) 2005-06-30 2010-04-20 Sling Media, Inc. Firmware update for consumer electronic device
US8625914B2 (en) 2013-02-04 2014-01-07 Sony Corporation Image processing system, image processing method and program
JP2007037049A (ja) * 2005-07-29 2007-02-08 Canon Inc 画像符号化装置及びその制御方法、並びに、コンピュータプログラム及びコンピュータ可読記憶媒体
US7899864B2 (en) * 2005-11-01 2011-03-01 Microsoft Corporation Multi-user terminal services accelerator
US8112513B2 (en) * 2005-11-30 2012-02-07 Microsoft Corporation Multi-user display proxy server
US8411978B1 (en) 2006-01-17 2013-04-02 Teradici Corporation Group encoding of wavelet precision
US8036473B1 (en) 2006-01-17 2011-10-11 Teradici Corporation Pixel selective wavelet transform methods
US7734107B2 (en) * 2006-02-24 2010-06-08 Sony Corporation System and method for performing wavelet-based texture feature extraction and classification
US8200067B2 (en) * 2006-03-28 2012-06-12 Avid Technology, Inc. Processing of scalable compressed video data formats for nonlinear video editing systems
US7493912B2 (en) * 2006-06-09 2009-02-24 Hartman Brian T Fixed cone sleeve valve having cone supported by means downstream of the gate in its closed position
FR2905539B1 (fr) * 2006-09-01 2008-11-28 Canon Res Ct France Soc Par Ac Procede et dispositif de codage de signaux numeriques multidimensionnels
US7848597B2 (en) * 2006-09-08 2010-12-07 Telefonaktiebolaget Lm Ericsson (Publ) Data processing
US7760960B2 (en) * 2006-09-15 2010-07-20 Freescale Semiconductor, Inc. Localized content adaptive filter for low power scalable image processing
US7460725B2 (en) * 2006-11-09 2008-12-02 Calista Technologies, Inc. System and method for effectively encoding and decoding electronic information
US7720300B1 (en) 2006-12-05 2010-05-18 Calister Technologies System and method for effectively performing an adaptive quantization procedure
US8467457B2 (en) * 2007-01-16 2013-06-18 Mobixell Networks (Israel) Ltd System and a method for controlling one or more signal sequences characteristics
US8301505B2 (en) * 2007-01-16 2012-10-30 Microsoft Corporation Integrated content viewing and payment
US9137497B2 (en) * 2007-04-11 2015-09-15 At&T Intellectual Property I, Lp Method and system for video stream personalization
US9424587B2 (en) * 2007-04-11 2016-08-23 Comcast Cable Communications, Llc Advertisement supported video download
WO2009003885A2 (en) * 2007-06-29 2009-01-08 Thomson Licensing Video indexing method, and video indexing device
US7925100B2 (en) * 2007-07-31 2011-04-12 Microsoft Corporation Tiled packaging of vector image data
US8477793B2 (en) * 2007-09-26 2013-07-02 Sling Media, Inc. Media streaming device with gateway functionality
WO2009051704A1 (en) * 2007-10-16 2009-04-23 Thomson Licensing Methods and apparatus for artifact removal for bit depth scalability
US8350971B2 (en) 2007-10-23 2013-01-08 Sling Media, Inc. Systems and methods for controlling media devices
US8060609B2 (en) 2008-01-04 2011-11-15 Sling Media Inc. Systems and methods for determining attributes of media items accessed via a personal media broadcaster
US8116580B2 (en) * 2008-05-12 2012-02-14 Lexmark International, Inc. Embedded high frequency image details
US8064733B2 (en) * 2008-06-24 2011-11-22 Microsoft Corporation Variable resolution images
US7933473B2 (en) * 2008-06-24 2011-04-26 Microsoft Corporation Multiple resolution image storage
US8667279B2 (en) 2008-07-01 2014-03-04 Sling Media, Inc. Systems and methods for securely place shifting media content
US8381310B2 (en) 2009-08-13 2013-02-19 Sling Media Pvt. Ltd. Systems, methods, and program applications for selectively restricting the placeshifting of copy protected digital media content
US8667163B2 (en) 2008-09-08 2014-03-04 Sling Media Inc. Systems and methods for projecting images from a computer system
US9191610B2 (en) 2008-11-26 2015-11-17 Sling Media Pvt Ltd. Systems and methods for creating logical media streams for media storage and playback
US8438602B2 (en) 2009-01-26 2013-05-07 Sling Media Inc. Systems and methods for linking media content
US8515181B2 (en) * 2009-02-11 2013-08-20 Ecole De Technologie Superieure Method and system for determining a quality measure for an image using a variable number of multi-level decompositions
US8326046B2 (en) 2009-02-11 2012-12-04 Ecole De Technologie Superieure Method and system for determining structural similarity between images
US8515182B2 (en) * 2009-02-11 2013-08-20 Ecole De Technologie Superieure Method and system for determining a quality measure for an image using multi-level decomposition of images
US8171148B2 (en) * 2009-04-17 2012-05-01 Sling Media, Inc. Systems and methods for establishing connections between devices communicating over a network
US8964851B2 (en) * 2009-06-09 2015-02-24 Sony Corporation Dual-mode compression of images and videos for reliable real-time transmission
US8457425B2 (en) * 2009-06-09 2013-06-04 Sony Corporation Embedded graphics coding for images with sparse histograms
JP5171742B2 (ja) * 2009-06-30 2013-03-27 日本放送協会 2次元コード表示用電子文書生成装置およびそのプログラム、ならびに、デジタル放送送信装置
US9091725B2 (en) * 2009-07-03 2015-07-28 Koh Young Technology Inc. Board inspection apparatus and method
US8406431B2 (en) 2009-07-23 2013-03-26 Sling Media Pvt. Ltd. Adaptive gain control for digital audio samples in a media stream
US9479737B2 (en) * 2009-08-06 2016-10-25 Echostar Technologies L.L.C. Systems and methods for event programming via a remote media player
US20110032986A1 (en) * 2009-08-07 2011-02-10 Sling Media Pvt Ltd Systems and methods for automatically controlling the resolution of streaming video content
US9565479B2 (en) 2009-08-10 2017-02-07 Sling Media Pvt Ltd. Methods and apparatus for seeking within a media stream using scene detection
US8799408B2 (en) 2009-08-10 2014-08-05 Sling Media Pvt Ltd Localization systems and methods
US20110035765A1 (en) * 2009-08-10 2011-02-10 Sling Media Pvt Ltd Systems and methods for providing programming content
US8532472B2 (en) * 2009-08-10 2013-09-10 Sling Media Pvt Ltd Methods and apparatus for fast seeking within a media stream buffer
US9525838B2 (en) * 2009-08-10 2016-12-20 Sling Media Pvt. Ltd. Systems and methods for virtual remote control of streamed media
US8966101B2 (en) 2009-08-10 2015-02-24 Sling Media Pvt Ltd Systems and methods for updating firmware over a network
US20110035466A1 (en) * 2009-08-10 2011-02-10 Sling Media Pvt Ltd Home media aggregator system and method
US9160974B2 (en) 2009-08-26 2015-10-13 Sling Media, Inc. Systems and methods for transcoding and place shifting media content
US8314893B2 (en) 2009-08-28 2012-11-20 Sling Media Pvt. Ltd. Remote control and method for automatically adjusting the volume output of an audio device
US20110113354A1 (en) * 2009-11-12 2011-05-12 Sling Media Pvt Ltd Always-on-top media player launched from a web browser
US9015225B2 (en) * 2009-11-16 2015-04-21 Echostar Technologies L.L.C. Systems and methods for delivering messages over a network
US9075560B2 (en) * 2009-12-10 2015-07-07 Microsoft Technology Licensing, Llc Real-time compression with GPU/CPU
US8611652B2 (en) 2009-12-16 2013-12-17 Red.Com, Inc. Resolution based formatting of compressed image data
US8799485B2 (en) * 2009-12-18 2014-08-05 Sling Media, Inc. Methods and apparatus for establishing network connections using an inter-mediating device
US8626879B2 (en) 2009-12-22 2014-01-07 Sling Media, Inc. Systems and methods for establishing network connections using local mediation services
US9178923B2 (en) 2009-12-23 2015-11-03 Echostar Technologies L.L.C. Systems and methods for remotely controlling a media server via a network
US9275054B2 (en) 2009-12-28 2016-03-01 Sling Media, Inc. Systems and methods for searching media content
WO2011087908A1 (en) * 2010-01-15 2011-07-21 Thomson Licensing Video coding using compressive sensing
US8856349B2 (en) 2010-02-05 2014-10-07 Sling Media Inc. Connection priority services for data communication between two devices
US8312111B2 (en) 2010-06-30 2012-11-13 Eastman Kodak Company Image processing in a computer network
US8341216B2 (en) 2010-06-30 2012-12-25 Eastman Kodak Company Efficient method for image processing in a computer network
GB2485576B (en) * 2010-11-19 2013-06-26 Displaylink Uk Ltd Video compression
US9325999B2 (en) * 2011-03-10 2016-04-26 Sharp Kabushiki Kaisha Video decoder for slices
US8983206B2 (en) 2011-05-04 2015-03-17 Ecole de Techbologie Superieure Method and system for increasing robustness of visual quality metrics using spatial shifting
AU2011203169C1 (en) * 2011-06-29 2014-07-17 Canon Kabushiki Kaisha Compression of high bit-depth images
CN102307304B (zh) * 2011-09-16 2013-04-03 北京航空航天大学 基于图像分割的立体视频右图像整帧丢失的错误隐藏方法
US8612491B2 (en) * 2011-10-25 2013-12-17 The United States Of America, As Represented By The Secretary Of The Navy System and method for storing a dataset of image tiles
US8660374B1 (en) * 2011-12-23 2014-02-25 Massachusetts Institute Of Technology Selecting transform paths for compressing visual data
US8773543B2 (en) * 2012-01-27 2014-07-08 Nokia Corporation Method and apparatus for image data transfer in digital photographing
US8996569B2 (en) 2012-04-18 2015-03-31 Salesforce.Com, Inc. Mechanism for facilitating evaluation of data types for dynamic lightweight objects in an on-demand services environment
CN103781171A (zh) * 2012-10-24 2014-05-07 中兴通讯股份有限公司 一种终端及其同步控制方法
CN103020647A (zh) * 2013-01-08 2013-04-03 西安电子科技大学 基于级联的sift特征和稀疏编码的图像分类方法
US10885104B2 (en) * 2014-02-27 2021-01-05 Dropbox, Inc. Systems and methods for selecting content items to store and present locally on a user device
US9787799B2 (en) 2014-02-27 2017-10-10 Dropbox, Inc. Systems and methods for managing content items having multiple resolutions
US10271076B2 (en) * 2014-06-30 2019-04-23 Sony Corporation File generation device and method, and content playback device and method
CN106464941B (zh) * 2014-06-30 2019-10-29 索尼公司 信息处理装置和方法
US10140827B2 (en) * 2014-07-07 2018-11-27 Google Llc Method and system for processing motion event notifications
US9170707B1 (en) 2014-09-30 2015-10-27 Google Inc. Method and system for generating a smart time-lapse video clip
WO2016071577A1 (fr) * 2014-11-05 2016-05-12 Colin, Jean-Claude Procédé pour réaliser des images animées
KR102263696B1 (ko) * 2015-03-20 2021-06-10 삼성전자주식회사 무선통신 시스템에서 데이터 송수신 방법 및 장치
US10198355B2 (en) 2015-10-29 2019-02-05 Dropbox, Inc. Proving a dynamic digital content cache
AU2017268705B2 (en) 2016-05-23 2022-05-19 Kakadu R & D Pty Ltd A method and apparatus for image compression
WO2018054506A1 (en) * 2016-09-23 2018-03-29 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Transform block coding
US10798321B2 (en) * 2017-08-15 2020-10-06 Dolby Laboratories Licensing Corporation Bit-depth efficient image processing
EP3454556A1 (en) * 2017-09-08 2019-03-13 Thomson Licensing Method and apparatus for video encoding and decoding using pattern-based block filtering
US10795773B2 (en) * 2018-11-12 2020-10-06 Eagle Eye Networks, Inc Persistent video camera and method of operation
US10924669B2 (en) * 2018-11-12 2021-02-16 Eagle Eye Networks, Inc. Persistent video camera and method of operation
US10983677B2 (en) 2018-11-16 2021-04-20 Dropbox, Inc. Prefetching digital thumbnails from remote servers to client devices based on a dynamic determination of file display criteria
GB2582422B (en) * 2019-02-05 2022-01-26 Canon Kk Video processing progress bar, indicating which parts have already been processed and which are yet to be processed

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB8721565D0 (en) * 1987-09-14 1987-10-21 Rca Corp Video signal processing system
US5162923A (en) * 1988-02-22 1992-11-10 Canon Kabushiki Kaisha Method and apparatus for encoding frequency components of image information
US5128757A (en) * 1990-06-18 1992-07-07 Zenith Electronics Corporation Video transmission system using adaptive sub-band coding
CA2088082C (en) * 1992-02-07 1999-01-19 John Hartung Dynamic bit allocation for three-dimensional subband video coding
JP3202355B2 (ja) * 1992-10-27 2001-08-27 キヤノン株式会社 階層符号化方式
JP3315241B2 (ja) * 1994-03-30 2002-08-19 株式会社東芝 画像ファイル装置
JP2000511363A (ja) * 1994-07-14 2000-08-29 ジョンソン、グレイス、カンパニー 画像を圧縮するための方法及び装置
JPH0832811A (ja) * 1994-07-15 1996-02-02 Canon Inc 画像符号化方法及び装置
US5748786A (en) * 1994-09-21 1998-05-05 Ricoh Company, Ltd. Apparatus for compression using reversible embedded wavelets
US6195465B1 (en) * 1994-09-21 2001-02-27 Ricoh Company, Ltd. Method and apparatus for compression using reversible wavelet transforms and an embedded codestream
US6141446A (en) * 1994-09-21 2000-10-31 Ricoh Company, Ltd. Compression and decompression system with reversible wavelets and lossy reconstruction
US5684714A (en) * 1995-05-08 1997-11-04 Kabushiki Kaisha Toshiba Method and system for a user to manually alter the quality of a previously encoded video sequence
JP3855286B2 (ja) * 1995-10-26 2006-12-06 ソニー株式会社 画像符号化装置および画像符号化方法、画像復号化装置および画像復号化方法、並びに記録媒体
US5926791A (en) 1995-10-26 1999-07-20 Sony Corporation Recursively splitting the low-frequency band with successively fewer filter taps in methods and apparatuses for sub-band encoding, decoding, and encoding and decoding
US5909518A (en) * 1996-11-27 1999-06-01 Teralogic, Inc. System and method for performing wavelet-like and inverse wavelet-like transformations of digital data
US6252989B1 (en) * 1997-01-07 2001-06-26 Board Of The Regents, The University Of Texas System Foveated image coding system and method for image bandwidth reduction
US6459816B2 (en) * 1997-05-08 2002-10-01 Ricoh Company, Ltd. Image processing system for compressing image data including binary image data and continuous tone image data by a sub-band transform method with a high-compression rate
US5949911A (en) * 1997-05-16 1999-09-07 Teralogic, Inc. System and method for scalable coding of sparse data sets
JPH1188866A (ja) * 1997-07-18 1999-03-30 Pfu Ltd 高精細画像表示装置及びそのプログラム記憶媒体
JP4251675B2 (ja) 1997-07-30 2009-04-08 ソニー株式会社 記憶装置およびアクセス方法
US6163629A (en) * 1998-01-30 2000-12-19 Compaq Computer Corporation Method for low complexity low memory inverse dithering
US6236757B1 (en) * 1998-06-18 2001-05-22 Sharp Laboratories Of America, Inc. Joint coding method for images and videos with multiple arbitrarily shaped segments or objects
US6229926B1 (en) * 1998-07-24 2001-05-08 Picsurf, Inc. Memory saving wavelet-like image transform system and method for digital camera and other memory conservative applications
US6282322B1 (en) * 1998-12-03 2001-08-28 Philips Electronics North America Corp. System and method for compressing and decompressing images
JP2001126250A (ja) * 1999-10-27 2001-05-11 Matsushita Electric Ind Co Ltd 光ディスク装置
US6549674B1 (en) * 2000-10-12 2003-04-15 Picsurf, Inc. Image compression based on tiled wavelet-like transform using edge and non-edge filters

Also Published As

Publication number Publication date
JP4511788B2 (ja) 2010-07-28
JP2007110753A (ja) 2007-04-26
US7206451B2 (en) 2007-04-17
EP1332465A4 (en) 2007-08-29
US20050053301A1 (en) 2005-03-10
US6549674B1 (en) 2003-04-15
WO2002031756A1 (en) 2002-04-18
CN1479907A (zh) 2004-03-03
US20030123744A1 (en) 2003-07-03
JP2004514311A (ja) 2004-05-13
JP2007159154A (ja) 2007-06-21
US6978049B2 (en) 2005-12-20
US20060072838A1 (en) 2006-04-06
EP1332465A1 (en) 2003-08-06
JP4707681B2 (ja) 2011-06-22
AU2002213135A1 (en) 2002-04-22
US6807308B2 (en) 2004-10-19

Similar Documents

Publication Publication Date Title
CN1272740C (zh) 基于类小波变换和稀疏数据编码的多分辨率图像数据管理系统和方法
CN1174616C (zh) 可逆子波变换和嵌入代码流处理
CN1268137C (zh) 使用可逆子波变换和嵌入代码流进行压缩的方法和装置
CN1222153C (zh) 数字图象压缩方法
CN1251518C (zh) 数字信号转换方法和数字信号转换装置
CN1379366A (zh) 图像处理装置和方法
CN1703912A (zh) 具有高压缩率和最小必需资源的快速codec
CN1315331C (zh) 图像信号转换方法和设备以及图像提供系统
CN1738435A (zh) Sdmctf编码的视频的3d子带解码中的空间可伸缩性
CN1744657A (zh) 多分辨率分割和填充
CN1738434A (zh) 用于3d子带编码的嵌入式基层编解码器
CN1950832A (zh) 用于ac预测状态以及宏块半帧/帧编码类型信息的位平面编码和解码
CN1735208A (zh) 在运动补偿的时间滤波中的自适应更新
CN1168322C (zh) 图象编码和解码方法
CN1553712A (zh) 数据处理设备、数据处理方法
CN1898699A (zh) 阿尔法图像处理
CN1926576A (zh) 用于数字编码3d立体视频图像的方法和系统
CN1767650A (zh) 用于在数字广播接收机中处理图像信号的设备和方法
CN1225124C (zh) 利用分类自适应处理的信息处理设备及其方法
CN1229758C (zh) 正交变换图像的分辨率变换装置和方法
CN1220376C (zh) 信息信号处理器和处理信息信号的方法
CN1663257A (zh) 小波变换系统,方法和计算机程序产品
CN1662037A (zh) 信号处理设备和方法,命令序列数据结构
CN1722843A (zh) 数字信号转换方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: SOLAN CO., LTD.

Free format text: FORMER OWNER: PICSURF INC.

Effective date: 20050826

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20050826

Address after: American California

Applicant after: Picsurf Inc.

Address before: American California

Applicant before: Picsurf Inc.

C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: GAOTONG TECHNOLOGY INC.

Free format text: FORMER OWNER: ZORAN CORPORATION

Effective date: 20150703

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150703

Address after: American California

Patentee after: QUALCOMM TECHNOLOGIES, INC.

Address before: American California

Patentee before: Picsurf Inc.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20060830

Termination date: 20151011

EXPY Termination of patent right or utility model