CN101317197A - 利用逐颜色分裂向调色板图像提供熵约束颜色分裂的方法、系统和计算机程序产品 - Google Patents

利用逐颜色分裂向调色板图像提供熵约束颜色分裂的方法、系统和计算机程序产品 Download PDF

Info

Publication number
CN101317197A
CN101317197A CNA200680035129XA CN200680035129A CN101317197A CN 101317197 A CN101317197 A CN 101317197A CN A200680035129X A CNA200680035129X A CN A200680035129XA CN 200680035129 A CN200680035129 A CN 200680035129A CN 101317197 A CN101317197 A CN 101317197A
Authority
CN
China
Prior art keywords
leaf node
node
new
color
leaf
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.)
Granted
Application number
CNA200680035129XA
Other languages
English (en)
Other versions
CN101317197B (zh
Inventor
杨恩辉
王隆吉
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.)
Maliki Innovation Co ltd
Original Assignee
JET DATA CO Ltd
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 JET DATA CO Ltd filed Critical JET DATA CO Ltd
Publication of CN101317197A publication Critical patent/CN101317197A/zh
Application granted granted Critical
Publication of CN101317197B publication Critical patent/CN101317197B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/46Colour picture communication systems
    • H04N1/64Systems for the transmission or the storage of the colour picture signal; Details therefor, e.g. coding or decoding means therefor
    • 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/103Selection of coding mode or of prediction mode
    • 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/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • 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/182Methods 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 pixel
    • 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/186Methods 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 colour or a chrominance component
    • 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/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/19Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding using optimisation based on Lagrange multipliers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/94Vector quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Image Processing (AREA)
  • Color Television Systems (AREA)
  • Color Image Communication Systems (AREA)

Abstract

提供了一种使用数据处理系统对具有被分配给像素集的M个不同颜色的数字化彩色图像进行渐进编码的方法、系统和计算机程序产品,通过把所述M个不同颜色中的每一个分配给所述像素集中至少一个像素而提供所述数字化彩色图像。这包括:(a)初始化树结构;(b)确定每一个起始叶节点的至少一个代表颜色;以及(c)通过如下步骤增大所述树结构:(i)基于相关联的可实现代价,选择叶节点n成为与两个新的叶节点相链接的非叶节点n;(ii)通过把n中的每一个像素分配给两个新的叶节点之一而创建两个新的叶节点;(iii)确定两个新的叶节点中每一个的代表颜色;以及(iv)对与叶节点n相关联的索引信息进行编码。

Description

利用逐颜色分裂向调色板图像提供熵约束颜色分裂的方法、系统和计算机程序产品
技术领域
本发明涉及图像数据的渐进编码。
背景技术
具有上千或上百万颜色的图片可以表示为真彩色图像,以诸如BMP(位图)和JPEG的格式来存储针对每一个像素的确切颜色。相反,仅包含少量(典型地最多为256)颜色的图片能够被更有效地存储为色图(colormapped)图像或调色板(palettized)图像,像公知的GIF(图形交换格式)或PNG(便携式网络图形)格式。大部分的网络图像具有GIF或PNG格式。
当通过低带宽通信链路浏览调色板图像时,例如通过无线链路或拨号链路,该调色板图像的渐进传输能够支持快速浏览,因为其使用户能够在接收到所有渐进编码的图像数据之前观看该图像的完整版本(但分辨率低)。然而,即使GIF和PNG均支持交错格式,该格式通过对图像进行多通道编码并在每个通道中跳过多个像素而渐进地细化图像分辨率,但是就每个像素的颜色信息渐进地细化为无损失恢复的严格意义上来说,交错的GIF和PNG不具有渐进格式。
Rauschenbach在他的MCQ(移动可视化颜色量化格式)方法(U.Rauschenbach,“Compression of palettized images with progressivecoding of the color information”,in Proc SPIE Visual)中研究了针对调色板图像的颜色信息的渐进细化。
Communications and Image Processing(VCIP14000),Perth,Australia,2000年6月,下文称作[1]。与交错GIF和PNG格式不同,MCQ的颜色信息的细化是逐比特平面而进行的,并且允许以良好细节对形状(例如文本)进行早期识别,通常是在对压缩比特流的小部分进行解码之后。尽管MCQ支持和分辨率细化形成对照的颜色信息的渐进细化,然而其仅实现了与GIF或PNG格式可比较的压缩率。为了提高压缩率并同时支持调色板图像的渐进传输,Chen等人(X.Chen,S.Kwong,和J.Feng,“A new compression scheme for color-quantized images”,IEEETransactions on Circuits and System for VideoTechnology,Vol.12,No.10,pp.904-908,Oct.2002,下文称作[2])提出了一种基于MCQ的新的颜色细化方案,而且Orchard和Bouman开创了基于失真的分层分裂颜色量化算法(Orchard和Bouman,“Color quantizationof images”,IEEE Transactions on Signal Processing,Vol.39,No.12,pp.2677-2690,Dec.1991,下文称作[3])。与逐比特平面地对颜色信息进行细化的MCQ不同(比特平面的个数与调色板的颜色深度相等),Chen的算法逐颜色地对颜色进行进行细化。针对调色板图像的无损压缩,[2]中提出的颜色分裂算法实现了相比于GIF或PNG格式的大约30-40%的尺寸减小,而且还具有支持渐进传输的良好特征。
发明内容
根据本发明的实施例的方面,提供了一种使用数据处理系统对具有被分配给像素集的M个不同颜色的数字化彩色图像进行渐进编码的方法,通过把所述M个不同颜色中的每一个分配给所述像素集中相关联的像素子集而提供所述数字化彩色图像,所述方法包括:(a)通过提供至少一个起始叶节点来初始化树结构,所述起始叶节点包括来自所述M个不同颜色的颜色集;(b)针对每一个起始叶节点,确定至少一个代表颜色;以及(c)通过如下步骤增大所述树结构:(i)基于相关联的可实现代价,选择叶节点n变为与两个新的叶节点相链接的非叶节点n,其中所述相关联的可实现代价通过如下步骤来确定:1)确定由把所述叶节点变为与两个新的叶节点相链接的非叶节点而产生的相关联的失真改变;2)确定由把所述叶节点变为与两个新的叶节点相链接的非叶节点而产生的相关联的熵速率增加;以及,3)基于所述相关联的失真改变以及所述相关联的熵速率增加,确定所述相关联的可实现代价;(ii)通过把n中的每一个颜色分配给所述两个新的叶节点之一而创建两个新的叶节点;(iii)针对所述两个新的叶节点中的每一个,确定代表颜色;以及(iv)对与叶节点n相关联的索引信息、所述两个新的叶节点的代表颜色、以及与和所述两个新的叶节点的两个代表颜色相对应的数字化彩色图像的多个像素有关的信息进行编码。
根据本发明的实施例的方面,提供了一种由计算机使用的计算机程序产品,对具有被分配给像素集的M个不同颜色的数字化彩色图像进行渐进编码,通过把所述M个不同颜色中的每一个分配给所述像素集中相关联的像素子集而提供所述数字化彩色图像,所述计算机程序产品包括:记录介质;以及所述记录介质上记录的装置,用于指挥计算机系统执行如下步骤:(a)通过提供至少一个起始叶节点来初始化树结构,所述起始叶节点包括来自所述M个不同颜色的颜色集;(b)针对每一个起始叶节点,确定至少一个代表颜色;以及(c)通过如下步骤增大所述树结构:(i)基于相关联的可实现代价,选择叶节点n变为与两个新的叶节点相链接的非叶节点n,其中所述相关联的可实现代价通过如下步骤来确定:1)确定由把所述叶节点变为与两个新的叶节点相链接的非叶节点而产生的相关联的失真改变;2)确定由把所述叶节点变为与两个新的叶节点相链接的非叶节点而产生的相关联的熵速率增加;以及,3)基于所述相关联的失真改变以及所述相关联的熵速率增加,确定所述相关联的可实现代价;(ii)通过把n中的每一个颜色分配给所述两个新的叶节点之一而创建两个新的叶节点;(iii)针对所述两个新的叶节点中的每一个,确定代表颜色;以及(iv)对与叶节点n相关联的索引信息、所述两个新的叶节点的代表颜色、以及与和所述两个新的叶节点的两个代表颜色相对应的数字化彩色图像的多个像素有关的信息进行编码。
根据本发明的另一实施例,提供了一种对具有被分配给像素集的M个不同颜色的数字化彩色图像进行渐进编码的系统,通过把所述M个不同颜色中的每一个分配给所述像素集中相关联的像素子集而提供所述数字化彩色图像,所述系统包括:记录介质;以及包括用于执行如下步骤的处理器的装置:(a)通过提供至少一个起始叶节点来初始化树结构,所述起始叶节点包括来自所述M个不同颜色的颜色集;(b)针对每一个起始叶节点,确定至少一个代表颜色;以及(c)通过如下步骤增大所述树结构(i)基于相关联的可实现代价,选择叶节点n变为与两个新的叶节点相链接的非叶节点n,其中所述相关联的可实现代价通过如下步骤来确定1)确定由把所述叶节点变为与两个新的叶节点相链接的非叶节点而产生的相关联的失真改变;2)确定由把所述叶节点变为与两个新的叶节点相链接的非叶节点而产生的相关联的熵速率增加;以及,3)基于所述相关联的失真改变以及所述相关联的熵速率增加,确定所述相关联的可实现代价;(ii)通过把n中的每一个颜色分配给所述两个新的叶节点之一而创建两个新的叶节点;(iii)针对所述两个新的叶节点中的每一个,确定代表颜色;以及(iv)对与叶节点n相关联的索引信息、所述两个新的叶节点的代表颜色、以及与和所述两个新的叶节点的两个代表颜色相对应的数字化彩色图像的多个像素有关的信息进行编码。
附图说明
为了更好地理解这里描述的各个实施例以及更加清楚地展示如何实现这些实施例,仅作为示例来参考示出至少一个典型实施例的附图,其中:
图1在流程图中示出了根据本发明实施例的方面用于在叶节点之间利用逐颜色分裂对调色板图像进行熵约束颜色分裂的总算法;
图2在流程图中示出了根据本发明实施例的另一方面用于在叶节点之间利用逐颜色分裂对调色板图像进行熵约束颜色分裂的总算法;
图3在流程图中示出了图1和2中的方法的初始化子过程;
图4在流程图中示出了图1中的方法的子过程的示例,其中叶节点被分裂;
图5在流程图中示出了图2中的方法的子过程的示例,其中叶节点被试验性地分裂;
图6在流程图中示出了图2中的方法的子过程,其中叶节点被永久地分裂;
图7在流程图中示出了图1中的方法的子过程的变体,用于分裂叶节点;
图8在流程图中示出了图1中的方法中分裂叶节点的另一变体;
图9在流程图中示出了图1和2中的方法的子过程,其中对新的代表颜色进行渐进编码;
图10在框图中示出了根据本发明实施例的计算机系统;
图11在框图中更加详细地示出了图10中的计算机系统的处理器;
图12a-d在图表中示出了根据本发明实施例的方面对叶节点进行渐进分裂以提供颜色数据的渐进编码;
图13是移动设备的典型实施例的框图;
图14是图13中的移动设备的通信子系统组件的典型实施例的框图;
具体实施方式
具有上千或上百万颜色的图片可以表示为真彩色图像,以诸如BMP(位图)和JPEG的格式来存储针对每一个像素的确切颜色。相反,仅包含少量(典型地最多为256)颜色的图片能够被更有效地存储为色图图像或调色板图像,像公知的GIF(图形交换格式)或PNG(便携式网络图形)格式。大部分的网络图像具有GIF或PNG格式。
当通过低带宽通信链路浏览调色板图像时,例如通过无线链路或拨号链路,该调色板图像的渐进传输能够支持快速浏览,因为其使用户能够在接收到所有渐进编码的图像数据之前观看该图像的完整版本(但分辨率低)。然而,即使GIF和PNG均支持交错格式,该格式通过对图像进行多通道编码并在每个通道中跳过多个像素而渐进地细化图像分辨率,但是就每个像素的颜色信息渐进地细化为无损失恢复的严格意义上来说,交错的GIF和PNG不具有渐进格式。
Rauschenbach在他的MCQ(移动可视化颜色量化格式)方法(U.Rauschenbach,“Compression of palettized images with progressivecoding of the color information”,in Proc SPIE Visual Communicationsand Image Processing(VCIP2000),Perth,Australia,June 2000,下文称作[1])中研究了针对调色板图像的颜色信息的渐进细化。与交错GIF和PNG格式不同,MCQ的颜色信息的细化是逐比特平面而进行的,并且允许以良好细节对形状(例如文本)进行早期识别,通常是在对压缩比特流的小部分进行解码之后。尽管MCQ支持和分辨率细化形成对照的颜色信息的渐进细化,然而其仅实现了与GIF或PNG格式可比较的压缩率。为了提高压缩率并同时支持调色板图像的渐进传输,Chen等人(X.Chen,S.Kwong,和J.Feng,“A new compression scheme forcolor-quantized images”,IEEE Transactions on Circuits and System forVideo Technology,Vol.12,No.10,pp.904-908,Oct.2002,下文称作[2])提出了一种基于MCQ的新的颜色细化方案,而且Orchard和Bouman开创了基于失真的分层分裂颜色量化算法(Orchard和Bouman,“Colorquantization of images”,IEEE Transactions on Signal Processing,Vol.39,No.12,pp.2677-2690,Dec.1991,下文称作[3])。与逐比特平面地对颜色信息进行细化的MCQ不同(比特平面的个数与调色板的颜色深度相等),Chen的算法逐颜色地对颜色进行进行细化。针对调色板图像的无损压缩,[2]中提出的颜色分裂算法实现了相比于GIF或PNG格式的大约30-40%的尺寸减小,而且还具有支持渐进传输的良好特征。
[2]、[3]中的颜色分裂算法仅基于失真标准来分裂代表颜色,而且完全不考虑速率约束。另一方面,调色板图像中的每一个颜色是3D矢量。颜色量化或颜色分裂实质上是矢量量化(VQ)问题(Y,Linde,A,Buzo,和R.Gray,“An algorithm for vector quantizer design”,IEEETrans.Communications,Vol.COM-28,No.1,pp.84-95,Jan.1980,下文称作[4])。由Chou等人提出的熵约束矢量量化(ECVQ)或有条件熵约束矢量量化(CECVQ)(P.Chou,T.Lookabaugh,和R.Gray,“Entropy-constrained vector quantization”,IEEE Trans.Acous.,Speech,和Signal Processing,Vol.37,No.1,pp.31-42,Jan.1989,下文称作[5],以及P.Chou和T.Lookabaugh,“Conditional entropy constrained vectorquantization”,Proceeding ICASSP 1990,pp.197-200,Apr.1990,下文称作[6])可以将失真和熵速率(entropy rate)进行折衷。为了减小常规矢量量化算法的复杂度并使其在实际应用中可行,已经开发出树结构矢量量化(TSVQ)算法(A.Buzo,A.Gray,Jr.,R.Gray和J.Markel,“Speechcoding based upon vector quantization”,IEEE Trans.Acous.,Speech,andSignal Processing,Vol.ASSP-28,No.5,pp.562-574,Oct.1980,下文称作[7],E.Riskin和R.Gray,“A greedy tree growing algorithm for the design ofvariable rate vector quantizers”,IEEE Transactions on SignalProcessing,Vol.39,No.11,pp.2500-2507,Nov.1991,下文称作[8],以及M.Mahesh,W.Pearlman和L.Lu,“Variable-rate tree-structured vectorquantizers”,IEEE Trans.Information Theory,Vol.41,No.4,pp.917-930,Jul.1995,下文称作[9])。在该方法中,把ECVQ/CECVQ和TSVQ的理念应用于基于二叉树的颜色分裂情景,并开发出针对调色板图像的四种熵约束颜色分裂算法,其不仅导致渐进传输方案,而且在R-D(速率-失真)意义上能够比[2]中的方案好得多。
本文档的余下部分组织如下。文本部分首先描述无条件熵约束颜色分裂问题,然后在实施例中提供了分别使用固定的拉格朗日乘数和动态确定的拉格朗日乘数的两种分裂算法。在部分III中,根据另一实施例,描述了使用固定的拉格朗日乘数的逐像素有条件熵约束颜色分裂算法。在部分IV中,根据另一实施例示出了逐颜色有条件熵约束颜色分裂算法,其增加了如下约束:原始图像中具有相同颜色值的所有像素能够在分裂过程期间通过相同的代表颜色值进行更新。
II.无条件熵约束颜色分裂
[2]和[3]中使用二叉树结构(相比于线性结构,二叉树结构能够保持颜色索引之间的更多相关)来表示调色板图像的颜色的关系,以便划分色图,或等效地,在编码过程期间渐进地分裂代表颜色。假定调色板图像的色图为C={c0,c1,…,cM-1},其中M是原始调色板图像中不同颜色的个数。每一个颜色矢量(或被称作颜色条目)ci对应于颜色值(ri,gi,bi)。把f(ci)定义为ci在给定图像中出现的次数。目标是设计基于二叉树的颜色分裂算法,该算法能够最小化受到无条件熵约束的失真。该颜色分裂算法划分色图C或渐进地分裂C的代表颜色,直到无损地重构原始调色板图像或达到用户指定的目标颜色数。该划分过程产生了动态的二叉树,其每一个叶节点n对应于C的子集Sn,从而C=∪nSn其中m≠n,0≤m,n<N且N是动态二叉树的叶节点总数。把qn表示为Sn的代表色,其被定义为Sn的质心。这样,动态二叉树连同qn(0≤n<N)给出了树结构的矢量量化器,使得随着动态二叉树增大,当前的矢量量化器完全嵌入后续的高速率矢量量化器。关键的问题是怎样增大动态二叉树。
从根节点(表示原始色图C)开始,通过每次分裂期望的叶节点而增大动态二叉树。进行选择和分裂期望的叶节点的过程,以最小化拉格朗日代价:
J=D+λ·R    (1)
其中,D和R分别是在把一个叶节点分裂为两个新的叶节点后与新创建的动态二叉树相对应的重构的调色板图像的失真和熵。可针对整个分裂过程中被分裂的或固定的每一个叶节点而动态地确定拉格朗日乘数λ(表示针对失真的速率折衷)。在这部分中考虑这两种情况。
设TN是具有N个叶节点的二叉树,而TN+1是通过把TN的叶节点n分裂为两个子节点n’和n”而从TN中产生的二叉树。设d(ci,qn)是当颜色条目ci=(ri,gi,bi)∈C被代表颜色 q n = ( r ^ n , g ^ n , b ^ n ) 所替代时的颜色量化误差。具体地,
d ( c i , q n ) = | | c i - q n | | 2 = ( r i - r ^ n ) 2 + ( g i - g ^ n ) 2 + ( b i - b ^ n ) 2 - - - ( 2 )
这样,把叶节点n分裂为n’和n”所引起的失真减小是
Δ D N = D N - D N + 1 = Σ c i ∈ S n f ( c i ) d ( c i , q n ) - Σ c i ∈ S n ′ f ( c i ) d ( c i , q n ′ ) - Σ c i ∈ S n ′ ′ f ( c i ) d ( c i , a n ′ ′ ) - - - ( 3 )
其中DN和DN+1分别是与树TN和TN+1相对应的失真;qn’和qn”分别是Sn’和Sn”的代表颜色。注意,Sn=Sn′∪Sn″
Figure A20068003512900205
此外,设 f ( S n ′ ) = Σ c i ∈ S n ′ f ( c i ) 以及 f ( S n ′ ′ ) = Σ c i ∈ S n ′ ′ f ( c i ) 分别是当把Sn划分为Sn’和Sn”时其颜色索引落入Sn’和Sn”的像素的个数,且表示为f(Sn)=f(Sn’)+f(Sn”)。这样,从把叶节点n分裂为n’和n”所产生的无条件熵的增量可以被表示为
ΔR N = R N + 1 - R N = - f ( S n ′ ) l og 2 ( f ( S n ′ ) f ( S n ) ) - f ( S n ′ ′ ) log 2 ( f ( S n ′ ′ ) f ( S n ) ) - - - ( 4 )
其中RN和RN+1分别是与树TN和TN+1相对应的熵。注意,在这个基于二叉树的颜色分裂中,当对叶节点n进行分裂时,ΔDN和ΔRN都不取决于其他叶节点。
可以向叶节点n的分裂应用迭代过程,以实现最小代价。把具有固定λ的无条件熵约束颜色分裂算法概括如下。
算法1:具有固定λ的无条件熵约束颜色分裂算法
步骤1-初始化
给定调色板图像I和目标颜色数Ntarget或目标速率Rtarget,获得仅具有根节点的二叉树T1。与根节点相对应的代表颜色是原始色图的质心,即
q 0 = Σ i = 0 M - 1 ( f ( c i ) c i ) / f ( S 0 ) - - - ( 5 )
其中,S0=C且 f ( S 0 ) = Σ i = 0 M - 1 f ( c i ) . 计算与S0相关联的簇(cluster)协方差矩阵的主特征值,如[2]和[3]中所讨论。设N=1;R1=0;且D1=σ2,其中σ2是C的方差。选择收敛标准ε并把根节点标为叶节点。
步骤2-找到对于分裂每一个叶节点的最小可实现代价
对于TN的每一个叶节点n,使用如下步骤根据试验性地(tentatively)分裂n来找到最小可实现代价。
步骤2.1
把Jold n初始化为DN+λ·RN
步骤2.2
对于每一个颜色ci∈Sn,基于有偏失真测量而把ci分配给叶节点n’或n”。即,在如下条件成立时把ci分配给n’:
d ( c i , q n ′ ) - λl og 2 ( f ( S n ′ ) f ( S n ) ) ≤ d ( c i , q n ′ ′ ) - λ log 2 ( f ( S n ′ ′ ) f ( S n ) ) - - - ( 6 )
否则,把ci分配给n”。注意,对于第一次迭代来说,qn′,qn″,f(Sn′)和f(Sn″)是未知的。取而代之的是,第一次迭代使用[2]中描述的基于失真的标准来分裂节点n。
步骤2.3
计算叶节点n’和n”的新的代表颜色qn’和qn”,作为在步骤2.2中获得的新的划分Sn’和Sn”的质心,并更新f(Sn′)和f(Sn″)。使用(3)和(4)来计算从当前分裂中得到的ΔDN和ΔRN,这导致新的代价 J new n = ( D N - Δ D N ) + λ · ( R N + Δ R N ) . 如果 | J old n - J new n | / J old n ≤ ϵ 或Sn’或Sn”中仅包括一个颜色条目,则对n进行分裂所得到的最小可实现代价被看作Jnew n。否则,利用Jnex n来取代Jold n,并转到步骤2.2进行进一步的迭代。
步骤3-把TN增大至TN+1
从所有叶节点中,找到实现最小代价的叶节点n,即 J new n = arg min k is a leaf node J new k . 通过如下迭代过程对n进行分裂以获得新的二叉树TN+1
步骤3.1
把Jold初始化为DN+λ·RN
步骤3.2
对于每一个颜色条目ci∈Sn,基于有偏失真测量(6)而把ci分配给叶节点n’或n”。注意,对于第一次迭代来说,(6)中的qn′,qn″,f(Sn′)和f(Sn″)是未知的。取而代之的是,第一次迭代使用[2]中描述的基于失真的标准来分裂节点n。
步骤3.3
计算叶节点n’和n”的新的代表颜色qn’和qn”,作为在步骤3.2中获得的新的划分Sn’和Sn”的质心,并更新f(Sn′)和f(Sn″)。使用(3)和(4)来计算从当前分裂中得到的ΔDN和ΔRN,这导致新的代价Jnew=(DN-ΔDN)+λ·(RN+ΔRN)。如果|Jold-Jnew|/Jold≤ε或Sn’或Sn”中仅包括一个颜色条目,则停止分裂叶节点n的迭代,把节点n扩展为两个新的叶节点,分别被标为n’和n”,并转到步骤4。否则,利用Jnew来取代Jold,并转到步骤3.2进行进一步的迭代。
步骤4-渐进地传输(或仅是编码,然后比如说进行存储)颜色更新比特
发出被分裂的节点索引(即n)、新的代表颜色(即qn’和qn”)以及针对其颜色落入Sn的像素的颜色更新比特。根据RN+1=RN+ΔRN更新总比特速率。如果N+1<Ntarget或RN+1<Rtarget,则根据DN+1=DN-ΔDN更新新的失真;把N增大1;然后回到步骤2,以进行进一步的分裂。否则,停止分裂和传输过程。
在上述分裂过程期间,算法1采用固定的λ,其物理含义是失真-速率函数的斜率。另一种方法是使用可变的λ并执行分裂,以找到总失真减小和速率增大之间的良好折衷。换句话说,当把TN增大为TN+1时,旨在使λ最大化,其中在TN中每一个叶节点处所有可能的迭代,并越过TN中所有的叶节点,
λ = D N - D N + 1 R N + 1 - R N - - - ( 7 )
在TN中的每一个叶节点处,通过迭代过程找到其最大可实现的λ,这与当对节点进行分裂时所使用的λ类似。具体地,该分裂以假定λ为零而开始。找到针对这个λ值的最小化(1)的两个代表颜色。计算失真的减小和速率的增大。新的λ值是失真减小与速率增大之比。现在,利用这个新的λ值来重新进行分裂。该迭代过程继续,直到λ不再增大。然后,把收敛值看作这个叶节点处的最大可实现的λ。待分裂的实际的叶节点是TN的所有叶节点中给出最大收敛值的叶节点。下文的算法2给出了详细描述。
算法2:具有动态确定的λ的无条件熵约束颜色分裂算法
步骤1-初始化
给定调色板图像I和目标颜色数Ntarget或目标速率Rtarget,获得仅具有根节点的二叉树T1。与根节点相对应的代表颜色是可使用(5)来计算的色图的质心。设N=1;R1=0;且D1=σ2。选择收敛标准ε并把根节点标为叶节点。
步骤2-针对每一个新的叶节点,找到最大可实现的λ
针对TN中每一个叶节点n,使用如下步骤来从n的分裂中找到最大可获得的λn,max,好似对叶节点n进行分裂。
步骤2.1
λ n t = 0 , 其中λn t中的t是迭代索引。
步骤2.2
针对每一个颜色ci∈Sn,基于有偏失真测量,把ci分配给有意向的新的叶节点n’或n”。即,在如下条件成立时把ci分配给n’:
d ( c i , q n ′ ) - λ n t l og 2 ( f ( S n ′ ) f ( S n ) ) ≤ d ( c i , q n ′ ′ ) - λ n t log 2 ( f ( S n ′ ′ ) f ( S n ) ) - - - ( 8 )
否则,把ci分配给n”。注意,对于第一次迭代来说,qn′和qn″是未知的。取而代之的是,第一次迭代使用[2]中描述的基于失真的分裂标准来分裂叶节点n。备选地,针对第一次迭代,可以把qn扰动为qn′,qn″。即使对于第一次迭代来说f(Sn′)和f(Sn″)也是未知的,然而该算法工作良好,因为针对第一次迭代假定λn t为零。
步骤2.3
把叶节点n’和n”的新的代表颜色qn’和qn”分别更新为在步骤2.2中获得的新的划分Sn’和Sn”的质心,并把f(Sn′)和f(Sn″)分别更新为其颜色落入在步骤2.2中获得的Sn’和Sn”的像素的个数。使用(3)和(4)来计算从当前分裂中产生的ΔDN和ΔRN。如果 Δ D N Δ R N > λ n t , 则设 λ n t = Δ D N Δ R N , 然后回到步骤2.2进行进一步的迭代。否则,把当前的λn t作为叶节点n处的最大可实现λn,max
步骤3-把TN增大至TN+1
从TN的所有叶节点中,找到具有最大值λn,max的叶节点n,即 λ n , max = arg max k is a leaf node λ k , max . 通过如下迭代过程对叶节点n进行分裂以获得新的二叉树TN+1
步骤3.1
把Jold初始化为DNn,max·RN
步骤3.2
对于每一个颜色条目ci∈Sn,基于所产生的拉格朗日代价而把ci分配给有意向的新的叶节点n’或n”。即,在如下条件成立时把ci分配给n’:
d ( c i , q n ′ ) - λ n , max l og 2 ( f ( S n ′ ) f ( S n ) ) ≤ d ( c i , q n ′ ′ ) - λ n , max log 2 ( f ( S n ′ ′ ) f ( S n ) ) - - - ( 9 )
否则,把ci分配给节点n”。注意,对于第一次迭代来说,qn′,qn″,f(Sn′)和f(Sn″)是未知的。取而代之的是,第一次迭代使用[2]中描述的基于失真的标准来分裂节点n。
步骤3.3
把叶节点n’和n”的新的代表颜色qn’和qn”分别更新为在步骤3.2中获得的新的划分Sn’和Sn”的质心,并把f(Sn′)和f(Sn″)分别更新为其颜色落入在步骤3.2中获得的Sn’和Sn”的像素的个数。使用(3)和(4)来计算从当前分裂中得到的ΔDN和ΔRN,这导致新的代价Jnew=(DN-ΔDN)+λn,max·(RN+ΔRN)。如果|Jold-Jnew|/Jold≤ε,或Sn’或Sn”中仅包括一个颜色条目,则停止叶节点n的分裂的迭代,把节点n扩展为两个新的叶节点,分别被标为n’和n”,并转到步骤4。否则,利用Jnew来取代Jold,并转到步骤3.2进行进一步的迭代。
步骤4-渐进地传输(或仅是编码,然后比如说进行存储)颜色更新比特
发出被分裂的节点索引(即n)、新的代表颜色(即qn’和qn”)以及针对其颜色落入Sn的像素的颜色更新比特。根据RN+1=RN+ΔRN更新总比特速率。如果N+1<Ntarget或RN+1<Rtarget,则根据DN+1=DN-ΔDN更新新的失真;把N增大1;然后回到步骤2。否则,停止分裂和传输过程。
III.有条件熵约束颜色分裂:逐像素的分裂
在实际应用中,通常采用像在[2]中使用的基于上下文的算术编码,在算法1和2中的熵编码阶段中对更新比特进行编码,以获得高压缩的增益。然而在算法1和2中,所使用的速率约束是无条件熵。如果可以使用有条件熵作为颜色分裂算法中的约束,则分裂过程中所使用的熵可以更精确地与编码阶段中的熵相匹配。因此,可以获得在速率-失真的意义上的更好结果。在这个部分中,将把具有固定的λ的无条件熵约束颜色分裂算法扩展到有条件熵约束的情景。
对于有条件熵约束颜色分裂,将考虑两种单独的情况。在下文中分别将其称为逐像素分裂和逐颜色分裂。逐像素分裂的含义是,在分裂过程中,原始图像中具有相同颜色的像素可以被映射到不同的叶节点。换句话说,基于不同的上下文,在分裂过程中,原始图像中具有相同颜色的像素可以由不同的代表颜色进行更新。针对具有M个不同颜色的调色板图像来说,通常,即使原始的调色板图像最后可以无损地重构,然而在M-1个节点分裂步骤之后,可能不会极好地重构原始图像。另一方面,逐颜色分裂的含义是,在分裂过程中,原始图像中具有相同颜色的所有像素必须被映射到相同的节点。换句话说,在分裂过程中,原始图像中具有相同颜色的所有像素将会由相同的代表颜色来更新。针对具有M个不同颜色的调色板图像,在M-1个节点分裂步骤之后,保证会极好地重构原始图像。在这个部分中,将会发展逐像素有条件熵约束颜色分裂算法,并在部分IV中考虑逐颜色有条件熵约束颜色分裂算法。在这两种情况下,仅考虑使用固定的λ。
无条件熵约束颜色分裂算法和有条件熵约束颜色分裂算法之间的主要不同是(4)中所示的熵速率增大ΔRN的计算以及(6)中所示的有偏失真测量。为了在分裂过程期间计算有条件熵速率,为了进行上下文建模,可以使用任意数目的相邻像素。在下文中,仅计算以左边和上边的像素为条件的有条件熵速率。向更多相邻像素的扩展是直接的。
如其名称所示,逐像素有条件熵约束颜色分裂算法以逐像素的方式更新颜色信息。设cp是C中的像素p的原始颜色,并把Ψn表示为分裂过程期间与叶节点n相对应的像素集。对于像素p∈Ψn,其左边和上边的相邻像素的代表颜色索引在当前重构图像中是u和v,把p映射到叶节点n’导致上下文u和v之下的熵增大如下,
H n ′ u , v = - log 2 ( f u , v ( Ψ n ′ ) f u , v ( Ψ n ′ ) + f u , v ( Ψ n ′ ′ ) ) - - - ( 10 )
其中fu,vn′)和fu,vn″)分别是根据在前迭代在上下文u和v之下被映射到叶节点n’或n”的像素的个数。类似地,把p映射到叶节点n”导致在上下文u和v之下的熵增大如下,
H n ′ ′ u , v = - log 2 ( f u , v ( Ψ n ′ ′ ) f u , v ( Ψ n ′ ) + f u , v ( Ψ n ′ ′ ) ) - - - ( 11 )
基于所产生的增大的拉格朗日代价,把每一个像素p∈Ψn单独地映射到叶节点n’或n”。逐像素有条件熵约束颜色分裂算法概括如下。
算法3:具有固定的λ的逐像素有条件熵约束颜色分裂算法
步骤1-初始化
给定具有色图C的调色板图像I以及目标颜色个数Ntarget或目标速率Rtarget,获得仅具有根节点的二叉树T1。把N初始化为1。设R1=0且D1=σ2。计算代表颜色q0和与根节点相关联的簇协方差矩阵的主特征值。选择收敛标准ε并把根节点标为叶节点。
步骤2-找到针对分裂每一个叶节点的最小可实现代价
对于TN的每一个叶节点n,使用如下步骤根据试验性地分裂n来找到最小可实现代价。
步骤2.1
把Jold n初始化为DN+λ·RN
步骤2.2
对于每一个像素p∈Ψn,其左边和上边的相邻像素的代表颜色在当前重构图像中是u和v,基于有偏失真测量而把p映射到叶节点n’和n”。即,在如下条件成立时把p映射到节点n’:
d ( c p , q n ′ ) + λ · H n ′ u , v ≤ d ( c p , q n ′ ′ ) + λ · H n ′ ′ u , v - - - ( 12 )
否则,把p映射到节点n”。注意,对于第一次迭代来说,qn′,qn″,Hn′ u,v和Hn″ u,v是未知的。取而代之的是,第一次迭代使用基于失真的标准。
步骤2.3
更新叶节点n’和n”的新的代表颜色qn′和qn″以及统计量fu,vn′)和fu,vn″)。使用(10)和(11)来计算Hn′ u,v和Hn″ u,v。计算ΔDN和ΔRN,其中
ΔD N = Σ p ∈ Ψ n d ( c p , q n ) - Σ p ∈ Ψ n ′ d ( c p , q n ′ ) - Σ p ∈ Ψ n ′ ′ d ( c p , q n ′ ′ ) - - - ( 13 )
以及
ΔR N = Σ u , v [ f u , v ( Ψ n ′ ) · H n ′ u , v + f u , v ( Ψ n ′ ′ ) · H n ′ ′ u , v ] - - - ( 14 )
这导致新的代价 J new n = ( D N - Δ D N ) + λ · ( R N + Δ R N ) . 如果 | J old n - J new n | / J old n ≤ ϵ 或者Ψn′或Ψn″中仅包括一个像素,则来自分裂n的最小可实现代价是Jnew n。否则,利用Jnew n来取代Jold n,并回到步骤2.2以进行进一步的迭代。
步骤3-把TN增大至TN+1
从所有叶节点中,找到实现最小代价的叶节点n,即 J new n = arg min k is a leaf node J new k . 通过如下迭代过程对n进行分裂以获得新的二叉树TN+1
步骤3.1
把Jold初始化为DN+λ·RN
步骤3.2
对于每一个像素p∈Ψn,其左边和上边的相邻像素的代表颜色在当前重构图像中是u和v,使用有偏失真测量(12)而把p映射到叶节点n’或n”。注意,对于第一次迭代来说,(12)中的qn′,qn″,Hn′ u,v和Hn″ u,v是未知的。取而代之的是,第一次迭代使用基于失真的标准。
步骤3.3
更新叶节点n’和n”的新的代表颜色qn′和qn″以及统计量fu,vn′)和fu,vn″)。使用(10)和(11)来计算Hn′ u,v和Hn″ u,v。使用(13)和(14)计算由当前分裂中产生的ΔDN和ΔRN,这导致新的代价Jnew=(DN-ΔDN)+λ·(RN+ΔRN)。如果|Jold-Jnew|/Jold≤ε或者Ψn′或Ψn″中仅包括一个像素,则停止分裂节点n的迭代,把节点n’和n”标为新的叶节点,并到达步骤4。否则,利用Jnew来取代Jold,并回到步骤3.2以进行进一步的迭代。
步骤4-渐进地传输(或仅是编码,然后比如说进行存储)颜色更新比特
发出被分裂的节点索引(即n)、新的代表颜色(即qn’和qn”)以及针对所有像素p∈Ψn的颜色更新比特。根据RN+1=RN+ΔRN更新总比特速率。如果N+1<Ntarget或RN+1<Rtarget,则根据DN+1=DN-ΔDN更新新的失真;把N增大1;然后回到步骤2,以进行进一步的分裂。否则,停止分裂和传输过程。
IV.有条件熵约束颜色分裂:逐颜色分裂
逐像素分裂的含义是,通过不同的中间代表颜色,原始图像中具有相同颜色值的像素可以更新为其最终颜色。换句话说,在分裂过程期间,原始图像中具有相同颜色的像素可以被映射为不同节点。为了确保原始图像中的相同颜色在分裂过程期间由相同的代表颜色更新,可以添加这样的约束:在分裂过程期间,原始图像中具有相同颜色的所有像素将被映射到相同的节点。这导致逐颜色有条件熵约束分裂算法,将在这个部分中详细描述。
在把叶节点n分裂为n’和n”期间,当前的重构图像中与颜色条目ci∈Sn相对应的像素可以具有不同的上下文u和v,其中每一个像素p(cp=ci)与(10)和(11)中定义的熵Hn′ u,v或Hn″ u,v相对应。把ci分配给n’导致每像素熵增大为
H n ′ c i = Σ c p = c i H n ′ u , v f ( c i ) - - - ( 15 )
类似地,把ci分配给n”导致每像素熵增大为
H n ′ ′ c i = Σ c p = c i H n ′ ′ u , v f ( c i ) - - - ( 16 )
仍把每一个颜色条目ci∈Sn映射到叶节点n’或n”,以最小化迭代过程中所产生的拉格朗日代价。逐颜色有条件熵约束颜色分裂算法概括如下。
算法4:具有固定的λ的逐颜色有条件熵约束颜色分裂算法
步骤1-初始化
给定具有色图C的调色板图像I以及目标颜色个数Ntarget或目标速率Rtarget,获得仅具有根节点的二叉树T1。设S0=C且N=1。设R1=0且D1=σ2。使用等式(5)计算S0的代表颜色以及与S0相关联的簇协方差矩阵的主特征值。选择收敛标准ε并把根节点标为叶节点。
步骤2-找到针对分裂每一个叶节点的最小可实现代价
对于TN的每一个叶节点n,使用如下步骤根据试验性地分裂n来找到最小可实现代价。
步骤2.1
把Jold n初始化为DN+λ·RN
步骤2.2
对于每一个颜色ci∈Sn,基于有偏失真测量把ci分配给叶节点n’或n”。即,当满足如下条件时把ci分配给n’:
d ( c i , q n ′ ) + λ · H n ′ c i ≤ d ( c i , q n ′ ′ ) + λ · H n ′ ′ c i - - - ( 17 )
否则,把ci分配给n”。注意,对于第一次迭代来说,qn′,qn″
Figure A20068003512900305
是未知的。取而代之的是,第一次迭代使用基于失真的标准。
步骤2.3
更新叶节点n’和n”的新的代表颜色qn′和qn″以及统计量fu,vn′)和fu,vn″)。使用(15)和(16)来计算
Figure A20068003512900311
Figure A20068003512900312
,然后使用(10)和(11)。使用(3)和(14)计算从当前分裂中产生的ΔDN和ΔRN,这导致新的代价 J new n = ( D N - Δ D N ) + λ · ( R N + Δ R N ) . 如果 | J old n - J new n | / J old n ≤ ϵ 或者Sn’或Sn”中仅包括一个像素,则来自分裂n的最小可实现代价是Jnew n。否则,利用Jnew n来取代Jold n,并回到步骤2.2以进行进一步的迭代。
步骤3-把TN增大至TN+1
从所有叶节点中,找到实现最小代价的叶节点n,即 J new n = arg min k is a leaf node J new k . 通过如下迭代过程对n进行分裂以获得新的二叉树TN+1
步骤3.1
把Jold初始化为DN+λ·RN
步骤3.2
对于每一个颜色ci∈Sn,使用有偏失真测量(17)把ci分配给叶节点n’或n”。注意,对于第一次迭代来说,qn′,qn″
Figure A20068003512900316
Figure A20068003512900317
是未知的。取而代之的是,第一次迭代使用基于失真的标准。
步骤3.3
更新叶节点n’和n”的新的代表颜色qn′和qn″以及统计量fu,vn′)和fu,vn″)。使用(15)和(16)来计算。使用(3)和(14)计算由当前分裂中产生的ΔDN和ΔRN,这导致新的代价Jnew=(DN-ΔDN)+λ·(RN+ΔRN)。如果|Jold-Jnew|/Jold≤ε或者Sn’或Sn”中仅包括一个像素,则停止分裂节点n的迭代,把节点n’和n”标为新的叶节点,并到达步骤4。否则,利用Jnew来取代Jold,并回到步骤3.2以进行进一步的迭代。
步骤4-渐进地传输(或仅是编码,然后比如说进行存储)颜色更新比特
发出被分裂的节点索引(即n)、新的代表颜色(即qn’和qn”)以及针对其颜色落入Sn的像素的颜色更新比特。根据RN+1=RN+ΔRN更新总比特速率。如果N+1<Ntarget或RN+1<Rtarget,则根据DN+1=DN-ΔDN更新新的失真;把N增大1;然后回到步骤2,以进行进一步的分裂。否则,停止分裂和传输过程。
现在参考图1,将描述算法1、3和4的基本操作。算法1、3和4都采用了固定的拉格朗日乘数λ,其代表失真和熵速率之间的折衷。过程110示出了这三个算法共有的步骤。
过程110在步骤111处开始,并立即进行到步骤112,在此处对分裂过程进行初始化。下文将参考图3详细描述步骤112。一旦对分裂过程进行了初始化,便在步骤113处选择拉格朗日乘数λ。然后,子过程127的第一次迭代开始。
子过程127的每一次迭代通过如下步骤来分裂叶节点n:创建两个新的叶节点n’和n”,并渐进地对针对新的叶节点的新的代表颜色以及与应当使用这些颜色对图像中哪些像素进行更新有关的信息进行编码。一旦对n进行分裂,则其变为非叶节点。
子过程127的第一个目的是确定必须对哪个叶节点进行分裂。这在步骤114-118中完成。在步骤114,把叶节点索引n初始化为0。然后,在步骤115,根据算法1、3或4中的分裂过程对叶节点n(具有索引n的叶节点)进行分裂。这些分裂过程中的每一个在下文分别参考图4、7和8来分别详细描述。这些过程中的每一个均包括:根据相关联的失真改变以及相关联的熵速率增加,确定把节点n分裂为两个新的叶节点的最小代价。一旦完成叶节点n的分裂,则在步骤117,子过程127使用变量N来确定树结构中的所有叶节点是否已经被分裂,该变量N代表树结构中叶节点的个数,其在下文参考图3描述的过程310中的步骤314被初始化。如果并非所有N个叶节点都被分裂,则在步骤116把叶节点索引n加一,然后过程110返回步骤115,以继续该分裂过程。一旦树结构中的所有叶节点都被分裂,则过程110继续到步骤118。在步骤118,从所有叶节点中选择实现最低的最小代价的叶节点n。
一旦确定具有最低的最小代价的叶节点n,则在步骤119处,根据算法1、3或4中的分裂过程对n进行分裂。这些分裂算法中的每一个均在下文参考图4、7和8分别详细描述。在这个过程期间,叶节点n变为非叶节点,并创建两个新的叶节点n’和n”。在步骤120,把叶节点n’和n”标为新的叶节点。
在步骤121,把新的代表颜色连同颜色更新比特一起渐进地进行编码。下文将参考图9详细地描述步骤121。
在步骤122,通过把对n进行分裂前老的树结构的熵速率与把n分裂为n’和n”所导致的熵的增量相加,来计算包括n’和n”的新的树结构的熵速率。
在步骤123,可以把在步骤122计算的新的树结构的熵速率与下文参考图3描述的初始化过程期间设置的目标熵速率进行比较。备选地,把与新的树结构中叶节点的个数相对应的代表颜色的个数与下文参考图3描述的初始化过程期间设置的目标颜色个数进行比较。如果新的熵速率大于或等于目标熵速率,或如果新的树结构中的颜色的个数大于或等于目标颜色个数,则过程110前进到步骤126并终止。否则,过程110继续到步骤124。
在步骤124,根据对节点n进行分裂前的树结构的失真与把节点n分裂为叶节点n’和n”所导致的失真的减小的加和,计算新的树结构的失真。然后,在步骤125,把树结构中的叶节点的个数N加一,该过程返回步骤114,并且分裂过程继续。
现在参考图2,将会描述算法2的操作。过程210的功能与过程110类似,除了过程210采用动态确定的拉格朗日乘数而不是过程110中那样的固定的拉格朗日乘数。
过程210从步骤211开始,并立即进行到步骤212,在此处对分裂过程进行初始化。将参考图3来详细描述步骤212。然后,子过程227的第一次迭代开始。
子过程227的每一次迭代通过如下步骤来分裂叶节点n:创建两个新的叶节点n’和n”,并渐进地对针对新的叶节点的新的代表颜色以及与应当使用这些颜色对图像中哪些像素进行更新有关的信息进行编码。一旦对n进行分裂,则其变为非叶节点。
子过程227的第一个目的是确定必须对哪个叶节点进行分裂。这在步骤214-218中完成。在步骤214,把叶节点索引n初始化为0。然后,在步骤215,根据算法2中的试验性地分裂过程对叶节点n(具有索引n的叶节点)试验性地进行分裂。这个分裂过程在下文参考图5来详细描述。试验性地分裂过程包括确定每一个叶节点n的最大可实现拉格朗日乘数λn,max。一旦完成叶节点n的试验性地分裂,则在步骤217,该过程使用变量N来确定树结构中的所有叶节点是否已经被试验性地分裂,该变量N代表树结构中叶节点的个数,其在步骤314在下文参考图3描述的过程310中被初始化。如果并非所有N个叶节点都被试验性地分裂,则在步骤216递增叶节点索引n,然后过程210返回步骤215,而且试验性地分裂过程继续。一旦树结构中的所有叶节点都被试验性地分裂,则过程210继续到步骤218。在步骤218,选择具有在步骤215中计算出的最高的最大可实现拉格朗日乘数λn,max的叶节点n。
一旦确定具有最高的最大可实现拉格朗日乘数λn,max的叶节点n,则在步骤219处,根据算法2的永久分裂过程对n进行永久分裂。该永久分裂算法在下文参考图6详细描述。在这个永久分裂过程期间,叶节点n变为非叶节点,并创建两个新的叶节点n’和n”。在步骤220,把叶节点n’和n”标为新的叶节点。
在步骤221,把新的代表颜色连同颜色更新比特一起渐进地进行编码。下文将参考图9详细地描述步骤221。
在步骤222,通过将针对在n被分裂前老的树结构的熵速率与将n分裂为n’和n”所导致的熵的增量相加,来计算包括n’和n”的新的树结构的熵速率。使用等式(4)来计算熵的增量。
在步骤223,可以把在步骤222计算的新的树结构的熵速率与下文参考图3描述的初始化过程期间设置的目标熵速率进行比较。备选地,把与新的树结构中叶节点的个数相对应的代表颜色的个数与下文参考图3描述的初始化过程期间设置的目标颜色个数进行比较。如果新的熵速率大于或等于目标熵速率,或如果新的树结构中的颜色的个数大于或等于目标颜色个数,则过程210前进到步骤226并终止。否则,在步骤224,根据对节点n进行分裂前的树结构的失真与把节点n分裂为叶节点n’和n”所导致的失真的减小的加和,计算新的树结构的失真。然后,在步骤225,把树结构中的叶节点的个数N递增,过程210返回步骤214,并且分裂过程继续。
现在参考图3,描述分裂过程的初始化。过程310在步骤311开始,并立即进行到步骤312。
在步骤312,指定目标颜色个数Ntarget或目标熵速率Rtarget。在过程110和210中的步骤123和223中将分别使用这些值来确定分裂过程何时应当终止。
然后,初始化多个变量。在步骤313,使用等式(5),根据图像的原始色图的质心,计算起始叶节点的初始代表颜色。在步骤314,把树结构中叶节点的个数N初始化为1,并在步骤315把初始树结构的熵速率初始化为0。在步骤316,把与初始树结构相关联的失真设为图像的原始色图的方差。在步骤317,选择收敛标准ε。过程410、610、710和810中的步骤422、622、723和824分别使用该收敛准则来确定节点的分裂过程何时应当终止。这些过程将在下文详细描述。一旦这些变量已经被初始化,则过程310继续到步骤318并终止。
现在参考图4,描述根据算法1的叶节点n的分裂过程。具体地,过程410把n变换为非叶节点,创建两个新的叶节点n’和n”,并把n中的每一个颜色分配给n’或n”。把分配给节点n的颜色集表示为Sn
过程410在步骤411开始,然后立即进行到步骤412。在步骤412,把代价测量Jold n初始化为通过把当前树结构的失真与把当前树结构的熵速率和过程110中的步骤113处选择的拉格朗日乘数λ相乘而获得的积相加而获得的值。
在步骤413,把用于跟踪子过程427的迭代次数的迭代索引t初始化为0。在步骤414,使用迭代索引t确定这是否为子过程427的第一次迭代(即t=0)。如果这是子过程427的第一次迭代,则在步骤415,基于[2]中所描述的基于失真的标准而把n中的每一个颜色分配给n’或n”。在子过程427的后续迭代中,其中t≠0,在步骤416处,基于等式(6)的有偏失真测量,把n中的每一个颜色分配给n’或n”。
接下来,基于n’和n”来计算多个值。首先,在步骤417计算n’和n”的新的代表颜色qn′和qn″。在步骤418,分别更新原始图像中n’和n”中每一个颜色的出现次数f(Sn′)和f(Sn″)。在步骤419,使用等式(3)来计算把节点n分裂为n’和n”而产生的失真的减小ΔDN。在步骤420,使用等式(4)来计算把节点n分裂为n’和n”而产生的熵速率的增加ΔRN。最后,在步骤421,分别使用在步骤419和420中计算的ΔDN和ΔRN的值来计算表示新的树结构的代价的代价测量Jnew n
在步骤422,使用在过程310的步骤317处选择的收敛标准ε来确定子过程427是否应当终止。如果最近的分裂所导致的代价改变(按照Jnew n和Jold n的差除以Jold n来计算)小于或等于收敛标准ε,则不需要子过程427的另一次迭代,而且过程410进行到步骤426并终止。否则,过程410前进到步骤423。
在步骤423,分别检查被分配给n’和n”的颜色集Sn′和Sn″,以确定任一集是否仅包括一个颜色。如果任一集Sn′或Sn″确实仅包括一个颜色,则过程410前进到步骤426并终止。如果Sn′和Sn″均包括多于一个颜色,则将通过在步骤424把迭代索引t加一、在步骤425处把Jold n设为Jnew n的值、并返回步骤414来重复子过程427。
现在参考图5,描述根据算法2对叶节点n进行试验性地分裂的过程。具体地,如果n被分裂为两个新的叶节点n’和n”并把n中的每一个颜色分配给n’或n”,则过程510确定拉格朗日乘数λn,max的最大值。把分配给节点n的颜色集表示为Sn
过程510从步骤511开始,并立即进行到步骤512。在步骤512,用于跟踪子过程527的迭代次数的迭代索引t被初始化为0。在步骤513,把表示针对节点n以及子过程527的迭代t的动态确定的拉格朗日乘数的λn t的值初始化为0。
在步骤514,使用迭代索引t来确定这是否为子过程527的第一次迭代(即t=0)。如果这是子过程527的第一次迭代,则在步骤515,根据[2]中描述的基于失真的标准,把n中的每一个颜色分配给n’或n”。在子过程527的后续迭代中,其中t≠0,在步骤516,基于等式(8)的有偏失真测量,把n中的每一个颜色分配给n’或n”。
接下来,基于n’和n”来计算多个值。首先,在步骤517计算n’和n”的新的代表颜色qn′和qn″。在步骤518,分别计算原始图像中n’和n”中每一个颜色的出现次数f(Sn′)和f(Sn″)。在步骤519,使用等式(3)来计算把节点n分裂为n’和n”而产生的失真的减小ΔDN。在步骤520,使用等式(4)来计算把节点n分裂为n’和n”而产生的熵速率的增加ΔRN
在步骤521,把失真的减小ΔDN除以熵速率的增加ΔRN,并与拉格朗日乘数λn t进行比较。如果ΔDN/ΔRN小于或等于λn t,则在步骤522处把针对节点n的最大可实现拉格朗日乘数λn,max设为λn t,而且过程510前进到步骤526并终止。如果ΔDN/ΔRN大于λn t,则过程510前进到步骤523。
在步骤523,检查分别被分配给n’和n”的颜色集Sn′和Sn″,以确定任一集是否仅包括一个颜色。如果任一集Sn′或Sn″确实仅包括一个颜色,则过程510前进到步骤522,在步骤522处把针对节点n的最大可实现拉格朗日乘数λn,max设为λn t,而且过程前进到步骤526并终止。如果Sn′和Sn″两者均包括多于一个的颜色,则通过在步骤524处把迭代索引t加一、在步骤525处将λn t设为ΔDN/ΔRN、并返回步骤514来重复子过程527。
现在参考图6,描述根据算法2对叶节点n进行永久分裂的过程。具体地,过程610把n变换为非叶节点,创建两个新的叶节点n’和n”,并把n中的每一个颜色分配给n’或n”。把分配给节点n的颜色集表示为Sn
过程610从步骤611开始,并立即进行到步骤612。在步骤612,把代价测量Jold初始化为通过把当前树结构的失真DN与把当前树结构的熵速率和过程210中的步骤218处确定的拉格朗日乘数λn,max相乘而获得的积相加而获得的值。
在步骤613,把用于跟踪子过程627的迭代次数的迭代索引t初始化为0。在步骤614,使用迭代索引t确定这是否为子过程627的第一次迭代(即t=0)。如果这是子过程627的第一次迭代,则在步骤615,基于[2]中所描述的基于失真的标准而把n中的每一个颜色分配给n’或n”。在子过程627的后续迭代中,其中t≠0,在步骤616处,基于等式(9)的有偏失真测量,把n中的每一个颜色分配给n’或n”。
接下来,基于n’和n”来计算多个值。首先,在步骤617计算n’和n”的新的代表颜色qn′和qn″。在步骤618,分别计算原始图像中n’和n”中每一个颜色的出现次数f(Sn′)和f(Sn″)。在步骤619,使用等式(3)来计算把节点n分裂为n’和n”而产生的失真的减小ΔDN。在步骤620,使用等式(4)来计算把节点n分裂为n’和n”而产生的熵速率的增加ΔRN。最后,在步骤621,分别使用在步骤619和620中计算的ΔDN和ΔRN的值来计算表示新的树结构的代价的代价测量Jnew
在步骤622,使用在过程310的步骤317处选择的收敛标准ε来确定子过程627是否应当终止。如果最近的分裂所导致的代价改变(按照Jnew和Jold的差除以Jold来计算)小于或等于收敛标准ε,则不需要子过程627的另一次迭代,而且过程610进行到步骤626并终止。否则,过程610前进到步骤623。
在步骤623,分别检查被分配给n’和n”的颜色集Sn′和Sn″以确定任一集是否仅包括一个颜色。如果任一集Sn′或Sn″确实仅包括一个颜色,则过程610前进到步骤626并终止。如果Sn′和Sn″均包括多于一个颜色,则将通过在步骤624把迭代索引t加一、在步骤625处把Jold设为Jnew的值、并返回步骤614来重复子过程627。
现在参考图7,描述根据算法3的叶节点n的分裂过程。在这个过程中,每一个叶节点n具有相应的像素集,以Ψn来表示。过程710把n变换为非叶节点,创建两个新的叶节点n’和n”,并把Ψn中的每一个像素分配给n’或n”。
过程710从步骤711开始,并立即进行到步骤712。在步骤712,把成本测量Jold n初始化为通过把当前树结构的失真与把当前树结构的熵速率和过程110中的步骤113处选择的拉格朗日乘数λ相乘而获得的积相加而获得的值。
在步骤713,把用于跟踪子过程728的迭代次数的迭代索引t初始化为0。在步骤714,使用迭代索引t确定这是否为子过程728的第一次迭代(即t=0)。如果这是子过程728的第一次迭代,则在步骤715,基于[2]中所描述的基于失真的标准而把Ψn中的每一个像素分配给n’或n”。在子过程728的后续迭代中,其中t≠0,在步骤716处,基于等式(12)的有偏失真测量,把Ψn中的每一个像素分配给n’或n”。
接下来,基于n’和n”来计算多个值。首先,在步骤717计算n’和n”的新的代表颜色qn′和qn″。在步骤718,对fu,vn′)和fu,vn″)进行更新,其中u和v是当前重构图像中像素p的左边和上边的相邻像素的代表颜色索引,而且fu,vn)是在上下文u和v之下被映射到叶节点n的像素的个数。在步骤719,分别使用等式(10)和(11)来计算在上下文u和v之下把每一个p∈Ψn映射到n’或n”的熵速率Hn′ u,v和Hn″ u,v。在步骤720,使用等式(13)来计算把节点n分裂为n’和n”而产生的失真的减小ΔDN。在步骤721,使用考虑到在步骤719所计算的熵值的等式(14)来计算把节点n分裂为n’和n”而产生的熵速率的增加ΔRN。最后,在步骤722,分别使用在步骤720和721中计算的ΔDN和ΔRN的值来计算表示新的树结构的代价的代价测量Jnew n
在步骤723,使用在过程310的步骤317处选择的收敛标准ε来确定子过程728是否应当终止。如果最近的分裂所导致的代价改变(根据Jnew n和Jold n的差除以Jold n来计算)小于或等于收敛标准ε,则不需要子过程728的另一次迭代,而且过程710进行到步骤727并终止。否则,过程710前进到步骤724。
在步骤724,分别检查被分配给n’和n”的像素集Ψn′和Ψn″,以确定任一集是否仅包括一个像素。如果任一集Ψn′或Ψn″确实仅包括一个像素,则过程710前进到步骤727并终止。如果Ψn′和Ψn″均包括多于一个像素,则将通过在步骤725把迭代索引t加一、在步骤726处把Jold n设为Jnew n的值、并返回步骤714来重复子过程728。
现在参考图8,描述根据算法4对叶节点n的分裂过程。在这个过程中,每一个叶节点n具有相应的像素集(表示为Ψn)以及相应的颜色集Sn。过程810把n变换为非叶节点,创建两个新的叶节点n’和n”,并把n中的每一个颜色分配给n’或n”。
过程810从步骤811开始,并立即进行到步骤812。在步骤812,把成本测量Jold n初始化为通过把当前树结构的失真与把当前树结构的熵速率和过程110中的步骤113处选择的拉格朗日乘数λ相乘而获得的积相加而获得的值。
在步骤813,把用于跟踪子过程829的迭代次数的迭代索引t初始化为0。在步骤814,使用迭代索引t确定这是否为子过程829的第一次迭代(即t=0)。如果这是子过程829的第一次迭代,则在步骤815,基于[2]中所描述的基于失真的标准而把n中的每一个颜色分配给n’或n”。在子过程829的后续迭代中,其中t≠0,在步骤816处,基于等式(17)所示的有偏失真测量,把n中的每一个颜色分配给n’或n”。
接下来,基于n’和n”来计算多个值。首先,在步骤817计算n’和n”的新的代表颜色qn′和qn″。在步骤818,对fu,vn′)和fu,vn″)进行更新,其中fu,vn)是在上下文u和v之下被分配给叶节点n的像素的个数。在步骤819,分别使用等式(10)和(11)来计算在上下文u和v之下把每一个p∈Ψn映射到n’或n”的熵速率。在步骤820,使用等式(15)来计算把ci分配给n’所产生的每像素熵的增加,并使用等式(16)针对n”进行相同的计算。在步骤821,使用等式(3)来计算把节点n分裂为n’和n”而产生的失真的减小ΔDN。在步骤822,使用考虑到在步骤819所计算的熵值的等式(14),来计算把节点n分裂为n’和n”而产生的熵速率的增加ΔRN。最后,在步骤823,分别使用在步骤821和822中计算的ΔDN和ΔRN的值来计算表示新的树结构的代价的代价测量Jnew n
在步骤824,使用在过程310的步骤317处选择的收敛标准ε来确定子过程829是否应当终止。如果最近的分裂所导致的代价改变(按照Jnew n和Jold n的差除以Jold n来计算)小于或等于收敛标准ε,则不需要子过程829的另一次迭代,而且过程810进行到步骤828并终止。否则,过程810前进到步骤825。
在步骤825,分别检查被分配给n’和n”的颜色集Sn′和Sn″,以确定任一集是否仅包括一个颜色。如果任一集Sn′或Sn″确实仅包括一个颜色,则过程810前进到步骤828并终止。如果Sn′和Sn″均包括多于一个颜色,则将通过在步骤826把迭代索引t加一、在步骤827处把Jold n设为Jnew n的值、并返回步骤814来重复子过程829。
现在参考图9,描述对新的代表颜色和颜色更新比特渐进地编码的过程910。
过程910从步骤911处开始,并立即进行到步骤912,在此处对节点n(在过程110的步骤118处或在过程210的步骤218处被选择为被分裂)的节点索引进行编码。在步骤913,对n’和n”的代表颜色qn′和qn″进行编码。
在步骤914,把用于跟踪子过程922当前所考虑的像素的像素索引i初始化为0。然后,过程910进入子过程922的第一次迭代。
如果像素i或者来自与像素i相对应的原始颜色调色板的颜色没有被分配给节点n,则过程910前进到步骤919。如果像素i或者来自与像素i相对应的原始颜色调色板的颜色已经被分配给节点n,则过程910前进到步骤916。在步骤916,过程910确定在过程110的步骤119或在过程210的步骤219期间,像素i或者来自与像素i相对应的原始颜色调色板的颜色是否被分配给n’或n”。如果像素i或者来自与像素i相对应的原始颜色调色板的颜色被分配给n’,则与像素i相对应的颜色更新比特被编码为1。否则,像素i或者来自与像素i相对应的原始颜色调色板的颜色一定被分配给了n”,则与像素i相对应的颜色更新比特被编码为0。
然后,过程910前进到步骤919,在此处确定子过程922是否考虑了原始图像中的所有像素。如果不是,则在步骤920把像素索引i加一,而且过程910返回步骤915。如果子过程922考虑了来自原始图像的所有像素,则过程910前进到步骤921并终止。
一旦过程910完成,则可以使用编码的信息来更新被分配给n的所有像素(在算法3的情况下)或其颜色被分配给n的所有像素(在算法1、2和4的情况下)的颜色。如果与像素p相关联的颜色更新比特是1,那么将会把p更新为当前重构图像中的代表颜色qn′。如果与像素p相关联的颜色更新比特是0,则将会把p更新为当前重构图像中的代表颜色qn″
参考图10,示出了根据本发明的方面的计算机系统1010的框图。计算机系统1010包括用于存储彩色图像数据的存储器1012、用于显示数字彩色图像的监视器1014、用于图像处理并用于提供基于失真和熵速率两者的颜色数据渐进编码的CPU 1016、以及用于对彩色图像数据进行编码的编码器1018。在对彩色图像数据进行编码后,编码后的彩色图像数据可以被存储,或经由传输管道1020从计算机系统1010而发送。
参考图11,更详细地示出了图10中的CPU 1016。具体地,如图所示,CPU 1016包括树管理模块1122、失真量化器1124和熵速率量化器1126。如图所示,树管理模块1122链接到失真量化器1124和熵速率量化器1126两者。
在操作中,树管理模块1122可操作地对树结构执行操作,例如通过把初始叶节点(可以是根节点,或备选地是多个起始叶节点)之间的颜色进行划分而初始化树结构,随后增大该树结构。如上所述,增大树结构的过程是基于熵速率和失真两者;因此,树管理模块1122可以链接到失真量化器1124和熵速率量化器1126两者。就是说,当选择待划分的叶节点变为与两个新的叶节点相联系的非叶节点时,树管理模块1122可以通过向由对原始叶节点进行分裂而产生的两个新的叶节点中的一个或另一个分配该叶节点中的颜色而以具体的叶节点进行实验。基于熵速率量化器1126和失真量化器1124所分别确定的熵速率和失真,树管理模块1122可以针对预期父节点中的所有颜色的两个新的叶节点,确定这两个新的叶节点之间具体的颜色分配。通过对多个或所有的叶节点执行这个操作,树管理模块1122可以确定待划分的具体叶节点和由该划分所导致的两个新的叶节点之间的颜色分配。树管理模块1122也可以执行其他功能,例如确定新的叶节点的代表颜色,以及维持叶节点总数的运行数目。
根据上文所述的算法3,不同像素位置的相同颜色可以分配给不同的叶节点,因为叶节点分配以逐像素为基础而进行,由特定像素和颜色对的上下文来确定。在实现算法3中,熵速率量化器1126和失真量化器1124的操作与上文所述相似。具体地,无论其是被分配给一对新的叶节点中特定的新的叶节点的是颜色还是像素,熵速率量化器都会确定由这个分配所导致的熵速率的边际增加,而失真量化器确定失真的任何改变。当然,如上所述,例如如何确定熵速率改变在算法3中是不同的,因为这还取决于如何在各个新的叶节点之间分配相邻像素。
参考图12a-d,在一系列图表中示出了用于提供颜色数据的渐进编码的叶节点渐进分裂过程。在图12a的图表中,仅提供了一个根节点1200。这个根节点中包括原始数字化彩色图像的M个不同颜色中的所有颜色。在上文所述的本发明的方法的第一步骤中,根节点1200分裂为两个新的叶节点1202和1204。利用根节点11400的这个初始划分,当然,待划分的特定叶节点不存在选择,只有一个节点。然而,根节点中所有M个不同颜色在新的叶节点1202和1204之间的分配共同地基于上文所述的熵速率和失真标准。具体地,熵速率量化器1126可以确定针对把特定颜色分配给新的叶节点1202和1204中任一者的熵速率的边际增加。类似地,失真量化器1124可以确定针对把该颜色分配给新的叶节点1202和1204中每一个的新的失真测量。这样,针对叶节点1202和1204中的每一个,可以确定基于速率和失真两者的相关联的有偏失真测量,而且可以把该颜色分配给叶节点1202和1204中具有较低的相关联的有偏失真测量的叶节点。
图12b的图表到图12c的图表的转变更为复杂,因为在这个实例中,存在两个叶节点(叶节点1202和1204)以供在划分之间进行选择。同样,基于失真和熵速率两者的考虑来决定对叶节点1202还是1204进行划分。根据本发明的一些实施例(参见上文描述的算法1、3和4),其中采用了固定的拉格朗日乘数,确定用于把叶节点变为与两个新的叶节点链接的非叶节点(划分叶节点)的代价。然后,将对叶节点1202和1204中具有较低代价的叶节点进行划分。根据另一实施例(参见上文描述的算法2),针对每一个可能的叶节点,确定该折衷或拉格朗日乘数。然后,将会对叶节点1202和1204中获得较大拉格朗日乘数(即,失真减小和熵速率增大之间的最佳折衷)的叶节点进行划分。
通常,由熵速率量化器1126和失真量化器1124来确定对叶节点1202和1204中的每一个进行划分的代价。就是说,熵速率量化器1126可以确定由于把特定叶节点变为与两个新的叶节点链接的非叶节点所产生的相关联的熵速率的增加,而失真量化器1124可以确定由于把该叶节点变为非叶节点所产生的相关联的失真的改变。当然,在每一个叶节点的情况下,当对新的叶节点之间不同的颜色分配进行测试时,这也是迭代过程。一旦针对叶节点1202和1204中的每一个确定了失真和熵速率的相关联的改变,那么如果失真和熵速率的改变之间的折衷是固定的,则可以确定将要划分的较佳的叶节点。在图12c所示的示例中,叶节点1202被分为两个非叶节点1206和1208。在图12c所示的节点划分过程中,剩余三个叶节点:节点1204、1206和1208。
如上所述,当然,拉格朗日乘数可能不是固定的。在这种情况下,可以针对图12b中的每一个叶节点1202和1204来确定拉格朗日乘数。然后,可以对具有较大可实现拉格朗日乘数的叶节点进行划分。
图12c和图12d之间的转变中叶节点的划分或树的增大与图12b和12c之间的情形非常类似。在图12c和12d这个稍后的转变中,考虑进行划分的叶节点是叶节点1204、1206和1208。在图12d中,叶节点1206已经被划分,从而创建出两个新的叶节点1210和1212。结果,现在存在4个叶节点1204、1208、1210和1212。这个叶节点的划分过程可以继续进行,直到达到某个目标点。该目标点可以基于总的熵速率,或备选地,可以基于由于最后的划分所产生的叶节点的总数。例如,每当对叶节点进行划分时,存在相关联的增加的熵速率。在某点上,与二叉树相关联的总熵速率可能超过目标熵速率。此外,每当对叶节点进行划分时,叶节点的总数会增大一。在某点上,树结构中叶节点的新的总数可能超过叶节点的某个目标个数。这个叶节点的目标个数可以是M(原始数字化彩色图像中的颜色的个数),使得可以针对逐颜色分裂算法(即算法1、2和4)完整地再现该原始数字化彩色图像。备选地,这个叶节点的目标个数可以小于M。在某些实施例中,当相关联的总熵速率超过目标熵速率时、或叶节点的总数超过叶节点的目标个数时,树增大的过程或叶节点的划分过程停止。
根据本发明的实施例的方面,移动无线通信设备可以用于提供上文所述的熵约束颜色分裂。下文描述的实施例通常涉及该移动无线通信设备,此后称作移动设备,其可以根据IT策略而配置。应当注意,术语IT策略通常是指IT策略规则的集合,其中IT策略规则可以被定义为分组的或非分组的,以及全局的或是针对特定用户的。术语分组、非分组、全局、针对特定用户将在下文中定义。适用的通信设备的示例包括寻呼机、蜂窝电话、蜂窝智能电话、无线管理器、个人数字助理、计算机、膝上计算机、手持无线通信设备、启用无线的笔记本计算机等。
移动设备是具有高级数据通信能力的双向通信设备,包括通过收发机站的网络与其他移动设备或计算机系统进行通信的能力。移动设备还可以具有允许语音通信的能力。取决于移动设备所提供的功能,其可以被称作数据消息收发设备、双向寻呼机、具有数据消息收发能力的蜂窝电话、无线因特网设备、或数据通信设备(具有或不具有电话功能)。为了帮助读者理解移动设备的结构以及其如何与其他设备和主机系统进行通信,现在将参考图13和图14。
首先参考图13,示出了移动设备1300的典型实施例的框图。移动设备1300包括多个组件,例如控制移动设备1300的全部操作的主处理器1302。通过通信子系统1304来执行包括数据和语音通信的通信功能。通信子系统1304与无线网络1400进行消息收发。在这个移动设备1300的典型实施例中,根据全球移动通信系统(GSM)和通用分组无线业务(GPRS)的标准来配置通信子系统1304。GSM/GPRS无线网络得到广泛的使用,而且期望这些标准最终可以被GSM系统的增强型数据业务(EDGE)和通用移动电信服务(UMTS)所取代。新的标准仍在制定中,但可以确信的是它们与这里描述的网络行为相似,而且本领域的技术人员还可以理解的是,这里描述的实施例可以使用将来研发出的任意其它适合的标准。把通信子系统1304与网络1400相连的无线链路表示一个或更多个不同的射频(RF)信道,它们根据被规定用于GSM/GPRS通信的已制定的协议而操作。利用更新的网络协议,这些信道能够支持电路交换语音通信和分组交换数据通信两者。
尽管在一个典型实施方式中与移动设备1300相关联的无线网络是GSM/GPRS无线网络,然而在变体实施方式中也可以使用其它与移动设备1300相关的无线网络。例如,可以采用的不同类型的无线网络包括数据中心无线网络、语音中心无线网络以及能够支持相同物理基站上的语音和数据通信两者的双模网络。组合的双模网络包括但不限于:码分多址(CDMA)或CDMA 14000网络、GSM/GPRS网络(如上所述)以及像EDGE和UMTS那样的未来的第三代(3G)网络。数据中心网络的一些较早的示例包括MobitexTM无线电网络和DataTacTM无线电网络。较早的语音中心数据网络的示例包括像GSM和时分多址(TDMA)系统那样的个人通信系统(PCS)网络。
主处理器1302还与附加的子系统进行交互,例如随机存取存储器(RAM)1306、闪速存储器1308、显示器1310、辅助输入/输出(I/O)子系统1312、数据端口1314、键盘1316、扬声器1318、麦克风1320、短距离通信系统1322和其它设备子系统1324。
移动设备1300的一些子系统执行与通信有关的功能,而其它子系统可以提供“驻留”或在设备上功能。作为示例,显示器1310和键盘1316可以用于两种与通信有关的功能,例如输入在网络1400上传送的文本消息、以及例如计算器或任务列表的设备驻留功能。
在完成所需的网络注册或激活过程后,移动设备1300可以在网络1400上发送和接收通信信号。网络访问与移动设备1300的用户相关。为了识别用户,移动设备1300需要把SIM/RUIM卡1326(即用户身份模块或可移除用户身份模块)插入SIM/RUIM接口1328以便和网络进行通信。SIM卡或RUIM 1326是一种常规的“智能卡”,其尤其可用于识别移动设备1300的用户并对移动设备1300进行个人化。如果没有SIM卡1326,那么移动设备1300不能够完整可操作地与网络1400进行通信。通过把SIM卡/RUIM 1326插入SIM/RUIM接口1328,用户可以访问所有订购的服务。服务可以包括:网络浏览和消息收发,例如电子邮件、语音邮件、短消息服务(SMS)以及多媒体消息收发服务(MMS)。更多高级服务可以包括:销售点、现场服务和销售力量自动化。SIM卡/RUIM 1326包括处理器和用于存储信息的存储器。一旦把SIM卡/RUIM 1326插入SIM/RUIM接口1328,它就与主处理器1302耦合。为了识别用户,SIM卡/RUIM 1326包含一些用户参数,例如国际移动用户身份(IMSI)。使用SIM卡/RUIM 1326的优点是,用户不必受到任意单一物理移动设备的束缚。SIM卡/RUIM 1326也可以存储额外的移动设备用户信息,包括记事册(或日历)信息和最近的呼叫信息。备选地,用户身份信息还可以被编程到闪速存储器1308中。
移动设备1300是电池供电的设备,包括用于容纳一个或多个可充电电池1330的电池接口1332。在至少一些实施例中,电池1330可以是具有嵌入式处理器的智能电池。电池接口1332与稳压器(未示出)耦合,稳压器有助于使电池1330向移动设备1300提供电源V+。尽管当前技术使用电池,例如微燃料电池的未来技术可以向移动设备1300供电。
移动设备1300还包括操作系统1334和软件组件1336至1346,其在下文详细描述。由主处理器1302执行的操作系统1334和软件组件1336至1346典型地存储在例如闪速存储器1308的持久性存储器中,其备选地是只读存储器(ROM)或类似的存储器元件(未示出)。本领域的技术人员可以理解,操作系统1334和软件组件1336至1346的部分(特定的设备应用或其一部分)可以试验性地加载到例如RAM 1306的易失性存储器中。如本领域的技术人员所公知,还可以包括其他软件组件。
控制基本设备操作的软件应用1336的子集(包括数据和语音通信应用)通常在移动设备1300的制造期间被安装在移动设备1300上。其他软件应用包括消息应用1338,其可以是允许移动设备1300的用户发送和接收电子消息的任意适合的软件程序。如本领域的技术人员所公知,存在用于消息应用1338的各种备选。用户已发送或接收的消息典型地存储在移动设备1300的闪速存储器1308中,或移动设备1300中一些其他适合的存储元件中。在至少一些实施例中,已发送和接收的消息中的一些可以远离设备1300而存储,例如存储在移动设备1300与之进行通信的相关联的主机系统的数据存储器中。
软件应用还可以包括设备状态模块1340、个人信息管理器(PIM)1342、以及其他适合的模块(未示出)。设备状态模块1340提供了持久性,即设备状态模块1340确保重要的设备数据存储在持久性存储器中,例如闪速存储器1308中,从而当移动设备1300关闭或断电时不会丢失数据。
PIM 1342包括组织和管理用户感兴趣的数据项的功能,例如但不限于电子邮件、联系人、日历事件、语音邮件、约会和任务项。PIM应用具有通过无线网络1400发送和接收数据项的能力。PIM数据项通过无线网络1400与存储在主计算机系统和/或与主计算机系统相关联的设备用户的相应数据项进行无缝集成、同步和更新。这个功能在移动设备1300上建立了关于这些数据项的镜像主计算机。这一点在主计算机机系统是移动设备用户的办公室计算机系统的情况下尤其有利。
移动设备1300还包括连接模块1344和IT策略模块1346。连接模块1344实现了移动设备1300与无线基础结构和任意主机系统进行通信所需的通信协议,例如企业系统,移动设备1300被授权与之进行接口连接。
连接模块1344包括能够与移动设备1300集成的一组API,以允许移动设备1300使用与企业系统相关联的任意数目的业务。连接模块1344允许移动设备1300与主机系统建立端对端的、安全的且得到验证的通信管道。连接模块1344所提供访问的应用子集可以用于把IT策略命令从主机系统传递到移动设备1300。这可以无线或有线的方式来进行。然后,可以把这些指令传递到IT策略模块1346,以修改设备1300的配置。备选地,在一些情况下,也可以通过有线连接来进行IT策略更新。
IT策略模块1346接收对IT策略进行编码的IT策略数据。然后,IT策略模块1346确保IT策略数据得到移动设备1300的验证。然后,可以把IT策略数据以其原来的形式存储在闪速存储器1306中。在IT策略数据被存储后,IT策略模块1346可以把全局通知发送至驻留在移动设备1300上的所有应用。然后,IT策略可用的应用通过发送IT策略数据而做出响应,以查找可用的IT策略规则。
IT策略模块1346可以包括解析器(未示出),该解析器可由应用来使用,以读取IT策略规则。对于在通知时没有运行的应用,当执行该应用以确定新接收到的IT策略数据中是否存在任何有关的IT策略规则时,可以调用解析器或IT策略模块1346。
对支持IT策略中的规则的所有应用进行编码,以获知期望的数据类型。例如,针对“WEP用户名称”所设置的值已知为字符串;因此,IT策略数据中与该规则相对应的值被解释为字符串。作为另一个示例,针对“设置最大口令尝试”IT策略规则的设置已知为整数,因而IT策略数据中与该规则相对应的值被解释为整数。
在将IT策略规则应用于可用的应用或配置文件之后,IT策略模块1346向主机系统发回应答,以指示IT策略数据被接收并成功地被应用。
其他类型的软件应用也可以被安装在移动设备1300上。这些软件应用可以是第三方应用,其在移动设备1300的制造后添加。第三方应用的示例包括游戏、计算器、实用工具等。
附加的应用程序可以通过无线网络1400、辅助I/O子系统1312、数据端口1314、短距离通信子系统1322或任意其它适合的子系统1324而加载到移动设备1300上。这种应用程序安装的灵活性增加了移动设备1300的功能,并且可以提供增强的在设备上功能、与通信有关的功能或两者都有。例如,安全通信应用程序使得能够使用移动设备1300来执行电子商务功能和其它这种金融交易。
数据端口1314使用户能够通过外部设备或软件应用程序来设置首选项,并通过向移动设备1300提供信息或软件下载而扩展移动设备1300的能力,这种扩展不是通过无线通信网络而执行。备选的下载路径例如可以用于:通过直接而可靠的受信连接把加密密钥加载到移动设备1300上,以提供安全的设备通信。
数据端口1314可以是能够实现移动设备1300和另一计算设备之间的数据通信的任意适合的端口。数据端口1314可以是串口或并口。在一些实例中,数据端口1314可以是USB端口,包括用于数据传输的数据线和提供充电电流以对移动设备1300的电池1330进行充电的电源线。
不需使用无线网络1400,短距离通信子系统1322提供了移动设备1300与不同系统或设备之间的通信。例如,子系统1322可以包括用于短距离通信的红外设备以及相关的电路和组件。短距离通信的示例可以包括由红外数据协会(IrDA)、蓝牙研制的标准,以及由IEEE研制的802.11标准族。
在使用中,例如文本消息、电子邮件消息或下载的网页的已接收信号可以由通信子系统1304进行处理,并输入到主处理器1302。然后,主处理器1302对已接收信号进行处理,以向显示器1310或备选地向辅助I/O子系统1312输出。用户还可以使用键盘1316、显示器1310以及可能的辅助I/O子系统1312来构成例如电子邮件消息的数据项。辅助子系统1312可以包括例如如下设备:触摸屏、鼠标、跟踪球、红外指纹检测器或具有动态按钮能力的滚轮。键盘1316优选地是字母数字键盘和/或电话型小键盘。然而,也可以使用其他类型的键盘。所构成的数据项可以经通信子系统1304在无线网络1400上传输。
对于语音通信,移动设备1300的全部操作本质上是类似的,除了已接收信号将会输出到扬声器1318且将要发送的信号由麦克风1320产生。例如语音消息记录子系统的备选语音或音频I/O子系统也可以在移动设备1300上实现。尽管语音或音频信号输出主要由扬声器1318来完成,然而显示器1310也可以用于提供额外的信息,例如呼叫方的身份、语音呼叫的持续时间或与语音呼叫有关的其它信息。
现在参考图14,示出了通信子系统组件1304的典型框图。通信子系统1304包括接收机1350、发射机1352、一个或多个嵌入式或内部天线元件1354、1356、本地振荡器(LO)1358以及例如数字信号处理器(DSP)的处理模块1360。通信子系统1304的具体设计取决于移动设备1300与之操作的通信网络1400。因此,应当理解的是,图14所示的设计仅作为一个示例。
天线1354通过无线网络1400接收到的信号被输入接收机1350,接收机1350可以执行一般的接收机功能,例如信号放大、下变频、滤波、信道选择以及模数(A/D)转换。对已接收信号进行A/D转换允许在DSP 1360中执行更为复杂的通信功能,例如解调和解码。以类似的方式,DSP 1360对所要发送的信号进行处理,包括调制和编码。把这些经过DSP处理的信号输入发射机1352进行数模(D/A)转换、上变频逆、滤波、放大并通过天线1356在无线网络1400上发送。DSP 1360不仅对通信信号进行处理,而且还提供了接收机和发射机的控制。例如,通过DSP 1360中实现的自动增益控制算法,可以自适应地控制施加到接收机1350和发射机1352中的通信信号的增益。
移动设备1300与无线网络1400之间的无线链路可以包含移动设备1300与无线网络1400之间使用的一个或多个不同的信道(典型地为不同的RF信道)以及相关协议。RF信道是必须被保存的有限资源,典型地是因为移动设备1300的全部带宽和有限的电池电力的限制。
当移动设备1300完全可操作时,仅当发射机1352向无线网络1400进行发送时才激活(key)或开启发射机1352,其它时间关闭发射机1352以保存资源。类似地,在指定的时间周期中,周期性地关闭接收机1350以保存电力,直到需要接收机1350接收信号或信息(如果存在的话)为止。
本专利文献的公开内容的一部分包含受版权保护的材料。版权所有者不反对对专利和商标局专利文件或记录的专利文献或专利公开内容中任意一项进行复制再现,但保留其他所有版权。
本发明的其他变体和修改是可能的。例如,本领域的技术人员可以理解,本发明的实施例的方面也可以存储在适合的记录介质上的指令来体现,该指令可以随后用于配置计算机系统以实现本发明的实施例。所有这种修改或变体均被看作落入由所附权利要求限定的本发明的范围。

Claims (46)

1、一种使用数据处理系统对具有被分配给像素集的M个不同颜色的数字化彩色图像进行渐进编码的方法,通过把所述M个不同颜色中的每一个分配给所述像素集中相关联的像素子集而提供所述数字化彩色图像,所述方法包括:
(a)通过提供至少一个起始叶节点来初始化树结构,所述起始叶节点包括来自所述M个不同颜色的颜色集;
(b)针对每一个起始叶节点,确定至少一个代表颜色;以及
(c)通过如下步骤增大所述树结构:
(i)基于相关联的可实现代价,选择叶节点n变为与两个新的叶节点相链接的非叶节点n,其中所述相关联的可实现代价通过如下步骤来确定:
确定由把所述叶节点变为与两个新的叶节点相链接的非叶节点而产生的相关联的失真改变;
确定由把所述叶节点变为与两个新的叶节点相链接的非叶节点而产生的相关联的熵速率增加;以及,
基于所述相关联的失真改变以及所述相关联的熵速率增加,确定所述相关联的可实现代价;
(ii)通过把n中的每一个颜色分配给所述两个新的叶节点之一而创建所述两个新的叶节点;
(iii)针对所述两个新的叶节点中的每一个,确定代表颜色;以及
(iv)对与叶节点n相关联的索引信息、所述两个新的叶节点的代表颜色、以及与和所述两个新的叶节点的两个代表颜色相对应的数字化彩色图像的多个像素有关的信息进行编码。
2、根据权利要求1所述的方法,其中,所述至少一个起始叶节点是所述树结构的根节点,而且所述根节点的颜色集包括所有M个不同颜色。
3、根据权利要求1所述的方法,其中,所述至少一个起始叶节点包括包含了所述M个不同颜色的多个不相交子集的多个起始叶节点,其中,颜色的每一个不相交子集包括在所述多个起始节点中唯一一个起始叶节点中。
4、根据权利要求1所述的方法,其中,步骤(c)还包括:
确定以下至少一项:(A)相关联的增加的熵速率,所述相关联的增加的熵速率通过把叶节点n中的每一个颜色分配给两个新的叶节点之一,将叶节点n变为与两个新的叶节点相链接的非叶节点n而产生,以及(B)叶节点的新的总数,所述叶节点的新的总数由将叶节点n变为与两个新的叶节点相链接的非叶节点n而产生;
如果确定了相关联的增加的熵速率,则若所述相关联的增加的熵速率小于目标熵速率,便重复步骤(c);以及
如果确定了叶节点的新的总数,则若所述叶节点的新的总数小于叶节点的目标个数,便重复步骤(c)。
5、根据权利要求1所述的方法,其中,所述确定叶节点的代表颜色的步骤包括:
针对叶节点中的每一个颜色,确定数字化彩色图像中具有该颜色的相关联的像素子集中的像素的个数;以及
基于叶节点中的所有颜色以及与叶节点中每一个颜色相关联的像素子集中的像素个数,确定叶节点中所有颜色的质心。
6、根据权利要求1所述的方法,其中,所述步骤(c)(ii)包括:
通过如下步骤来把n中的每一个颜色分配给两个新的叶节点之一:针对两个新的叶节点中的每一个,确定涉及到把颜色分配给新的叶节点的速率和失真的相关联的有偏失真测量,并把n中的颜色分配给具有较低的相关联的有偏失真测量的新的叶节点。
7、根据权利要求6所述的方法,其中,针对两个新的叶节点中的每一个,通过如下步骤来确定相关联的有偏失真测量:
确定由向新的叶节点分配颜色而产生的相关联的失真改变;
确定由向新的叶节点分配颜色而产生的相关联的熵速率增加;以及
基于相关联的失真改变和相关联的熵速率增加,计算相关联的有偏失真测量。
8、根据权利要求1所述的方法,还包括:
基于每一个起始节点的所述至少一个代表颜色,初始化较低分辨率的图像;
其中,步骤(c)(iv)还包括:
根据步骤(c)(ii)中把n中的颜色向两个新的叶节点之一的分配,确定与两个新的叶节点的两个代表颜色相对应的数字化彩色图像的多个像素的信息比特;以及
使用算术编码,基于较低分辨率的图像对信息比特进行编码。
9、根据权利要求1所述的方法,其中,步骤(c)(i)包括:
针对每一个叶节点,确定把该叶节点变为与两个新的叶节点相链接的非叶节点的相关联的可实现代价;以及
基于针对该叶节点的相关联的可实现代价与针对至少一个其他叶节点的相关联的可实现代价的比较,来选择叶节点。
10、根据权利要求9所述的方法,其中,步骤(c)(i)包括:针对每一个叶节点,确定针对所选叶节点的相关联的可实现代价是否小于针对其他叶节点中的每一个的相关联的可实现代价。
11、根据权利要求10所述的方法,其中,步骤(c)(i)包括:针对每一个叶节点,基于把相关联的失真改变与通过将相关联的熵速率增加和乘数相乘所获得的乘积相加,来确定相关联的可实现代价。
12、根据权利要求11所述的方法,其中,所述乘数是固定的拉格朗日乘数。
13、根据权利要求10所述的方法,其中,步骤(c)(i)包括:针对每一个叶节点,通过如下步骤来确定相关联的可实现代价:
确定由把叶节点变为与两个新的叶节点相链接的非叶节点而产生的相关联的熵速率增加和相关联的失真减小之间的相关联的可实现折衷;以及
基于相关联的可实现折衷、相关联的熵速率增加以及相关联的失真减小,来确定相关联的可实现代价。
14、根据权利要求7所述的方法,其中,针对两个新的叶节点中的每一个,所述确定由向新的叶节点分配颜色而产生的相关联的熵速率增加的步骤包括:
针对该颜色的像素子集中的每一个像素,确定相邻像素集,其中,相邻像素集中的每一个像素与该像素邻接;
基于所述相邻像素集,确定针对该像素的熵速率增加;以及
基于针对该颜色的像素子集中的所有像素的熵速率增加,确定由向新的叶节点分配该颜色而产生的相关联的熵速率增加。
15、一种由计算机使用的计算机程序产品,对具有被分配给像素集的M个不同颜色的数字化彩色图像进行渐进编码,通过把所述M个不同颜色中的每一个分配给所述像素集中相关联的像素子集而提供所述数字化彩色图像,所述计算机程序产品包括:
记录介质;以及
所述记录介质上记录的装置,用于指挥计算机系统执行如下步骤:
(a)通过提供至少一个起始叶节点来初始化树结构,所述起始叶节点包括来自所述M个不同颜色的颜色集;
(b)针对每一个起始叶节点,确定至少一个代表颜色;以及
(c)通过如下步骤增大所述树结构:
(i)基于相关联的可实现代价,选择叶节点n变为与两个新的叶节点相链接的非叶节点n,其中所述相关联的可实现代价通过如下步骤来确定:
确定由把所述叶节点变为与两个新的叶节点相链接的非叶节点而产生的相关联的失真改变;
确定由把所述叶节点变为与两个新的叶节点相链接的非叶节点而产生的相关联的熵速率增加;以及,
基于所述相关联的失真改变以及所述相关联的熵速率增加,确定所述相关联的可实现代价;
(ii)通过把n中的每一个颜色分配给所述两个新的叶节点之一而创建所述两个新的叶节点;
(iii)针对所述两个新的叶节点中的每一个,确定代表颜色;以及
(iv)对与叶节点n相关联的索引信息、所述两个新的叶节点的代表颜色、以及与和所述两个新的叶节点的两个代表颜色相对应的数字化彩色图像的多个像素有关的信息进行编码。
16、根据权利要求15所述的计算机程序产品,其中,所述至少一个起始叶节点是所述树结构的根节点,而且所述根节点的颜色集包括所有M个不同颜色。
17、根据权利要求15所述的计算机程序产品,其中,所述至少一个起始叶节点包括包含了所述M个不同颜色的多个不相交子集的多个起始叶节点,其中,颜色的每一个不相交子集包括在所述多个起始节点中唯一一个起始叶节点中。
18、根据权利要求15所述的计算机程序产品,其中,步骤(c)还包括:
确定以下至少一项:(A)相关联的增加的熵速率,所述相关联的增加的熵速率通过把叶节点n中的每一个颜色分配给两个新的叶节点之一,将叶节点n变为与两个新的叶节点相链接的非叶节点n而产生,以及(B)叶节点的新的总数,所述叶节点的新的总数由将叶节点n变为与两个新的叶节点相链接的非叶节点n而产生;
如果确定了相关联的增加的熵速率,则若所述相关联的增加的熵速率小于目标熵速率,便重复步骤(c);以及
如果确定了叶节点的新的总数,则若所述叶节点的新的总数小于叶节点的目标个数,便重复步骤(c)。熵速率
19、根据权利要求15所述的计算机程序产品,其中,所述确定叶节点的代表颜色的步骤包括:
针对叶节点中的每一个颜色,确定数字化彩色图像中具有该颜色的相关联的像素子集中的像素的个数;以及
基于叶节点中的所有颜色以及与叶节点中每一个颜色相关联的像素子集中的像素个数,确定叶节点中所有颜色的质心。
20、根据权利要求15所述的计算机程序产品,其中,所述步骤(c)(ii)包括
通过如下步骤来把n中的每一个颜色分配给两个新的叶节点之一:针对两个新的叶节点中的每一个,确定涉及到把颜色分配给新的叶节点的速率和失真的相关联的有偏失真测量,并把n中的颜色分配给具有较低的相关联的有偏失真测量的新的叶节点。
21、根据权利要求20所述的计算机程序产品,其中,针对两个新的叶节点中的每一个,通过如下步骤来确定相关联的有偏失真测量:
确定由向新的叶节点分配颜色而产生的相关联的失真改变;
确定由向新的叶节点分配颜色而产生的相关联的熵速率增加;以及
基于相关联的失真改变和相关联的熵速率增加,计算相关联的有偏失真测量。
22、根据权利要求15所述的计算机程序产品,其中,所述记录介质上记录的指令还可操作地指挥计算机系统根据每一个起始节点的至少一个代表颜色来初始化较低分辨率的图像;而且
步骤(c)(iv)还包括:
根据步骤(c)(ii)中把n中的颜色向两个新的叶节点之一的分配,确定与两个新的叶节点的两个代表颜色相对应的数字化彩色图像的多个像素的信息比特;以及
使用算术编码,基于较低分辨率的图像对信息比特进行编码。
23、根据权利要求15所述的计算机程序产品,其中,步骤(c)(i)包括:
针对每一个叶节点,确定把该叶节点变为与两个新的叶节点相链接的非叶节点的相关联的可实现代价;以及
基于针对该叶节点的相关联的可实现代价与针对至少一个其他叶节点的相关联的可实现代价的比较,来选择叶节点。
24、根据权利要求23所述的计算机程序产品,其中,步骤(c)(i)包括:针对每一个叶节点,确定针对所选叶节点的相关联的可实现代价是否小于针对其他叶节点中的每一个的相关联的可实现代价。
25、根据权利要求24所述的计算机程序产品,其中,步骤(c)(i)包括:针对每一个叶节点,基于把相关联的失真改变与通过将相关联的熵速率增加和乘数相乘所获得的乘积相加,来确定相关联的可实现代价。
26、根据权利要求25所述的计算机程序产品,其中,所述乘数是固定的拉格朗日乘数。
27、根据权利要求24所述的计算机程序产品,其中,步骤(c)(i)包括:针对每一个叶节点,通过如下步骤来确定相关联的可实现代价:
确定由把叶节点变为与两个新的叶节点相链接的非叶节点而产生的相关联的熵速率增加和相关联的失真减小之间的相关联的可实现折衷;以及
基于相关联的可实现折衷、相关联的熵速率增加以及相关联的失真减小,来确定相关联的可实现代价。
28、根据权利要求21所述的计算机程序产品,其中,针对两个新的叶节点中的每一个,所述确定由向新的叶节点分配颜色而产生的相关联的熵速率增加的步骤包括:
针对该颜色的像素子集中的每一个像素,确定相邻像素集,其中,相邻像素集中的每一个像素与该像素邻接;
基于所述相邻像素集,确定针对该像素的熵速率增加;以及
基于针对该颜色的像素子集中的所有像素的熵速率增加,确定由向新的叶节点分配该颜色而产生的相关联的熵速率增加。
29、一种对具有被分配给像素集的M个不同颜色的数字化彩色图像进行渐进编码的系统,通过把所述M个不同颜色中的每一个分配给所述像素集中相关联的像素子集而提供所述数字化彩色图像,所述系统包括:
记录介质;以及
包括用于执行如下步骤的处理器的装置:
(a)通过提供至少一个起始叶节点来初始化树结构,所述起始叶节点包括来自所述M个不同颜色的颜色集;
(b)针对每一个起始叶节点,确定至少一个代表颜色;以及
(c)通过如下步骤增大所述树结构:
(i)基于相关联的可实现代价,选择叶节点n变为与两个新的叶节点相链接的非叶节点n,其中所述相关联的可实现代价通过如下步骤来确定:
确定由把所述叶节点变为与两个新的叶节点相链接的非叶节点而产生的相关联的失真改变;
确定由把所述叶节点变为与两个新的叶节点相链接的非叶节点而产生的相关联的熵速率增加;以及,
基于所述相关联的失真改变以及所述相关联的熵速率增加,确定所述相关联的可实现代价;
(ii)通过把n中的每一个颜色分配给所述两个新的叶节点之一而创建所述两个新的叶节点;
(iii)针对所述两个新的叶节点中的每一个,确定代表颜色;以及
(iv)对与叶节点n相关联的索引信息、所述两个新的叶节点的代表颜色、以及与和所述两个新的叶节点的两个代表颜色相对应的数字化彩色图像的多个像素有关的信息进行编码。
30、根据权利要求29所述的系统,其中,所述至少一个起始叶节点是所述树结构的根节点,而且所述根节点的颜色集包括所有M个不同颜色。
31、根据权利要求29所述的系统,其中,所述至少一个起始叶节点包括包含了所述M个不同颜色的多个不相交子集的多个起始叶节点,其中,颜色的每一个不相交子集包括在所述多个起始节点中唯一一个起始叶节点中。
32、根据权利要求29所述的系统,其中,步骤(c)还包括
确定以下至少一项:(A)相关联的增加的熵速率,所述相关联的增加的熵速率通过把叶节点n中的每一个颜色分配给两个新的叶节点之一,将叶节点n变为与两个新的叶节点相链接的非叶节点n而产生,以及(B)叶节点的新的总数,所述叶节点的新的总数由将叶节点n变为与两个新的叶节点相链接的非叶节点n而产生;
如果确定了相关联的增加的熵速率,则若所述相关联的增加的熵速率小于目标熵速率,便重复步骤(c);以及
如果确定了叶节点的新的总数,则若所述叶节点的新的总数小于叶节点的目标个数,便重复步骤(c)。
33、根据权利要求29所述的系统,其中,所述确定叶节点的代表颜色的步骤包括:
针对叶节点中的每一个颜色,确定数字化彩色图像中具有该颜色的相关联的像素子集中的像素的个数;以及
基于叶节点中的所有颜色以及与叶节点中每一个颜色相关联的像素子集中的像素个数,确定叶节点中所有颜色的质心。
34、根据权利要求29所述的系统,其中,所述步骤(c)(ii)包括:
通过如下步骤来把n中的每一个颜色分配给两个新的叶节点之一:针对两个新的叶节点中的每一个,确定涉及到把颜色分配给新的叶节点的速率和失真的相关联的有偏失真测量,并把n中的颜色分配给具有较低的相关联的有偏失真测量的新的叶节点。
35、根据权利要求34所述的系统,其中,针对两个新的叶节点中的每一个,通过如下步骤来确定相关联的有偏失真测量:
确定由向新的叶节点分配颜色而产生的相关联的失真改变;
确定由向新的叶节点分配颜色而产生的相关联的熵速率增加;以及
基于相关联的失真改变和相关联的熵速率增加,计算相关联的有偏失真测量。
36、根据权利要求29所述的系统,其中,
所执行的步骤还包括基于每一个起始节点的至少一个代表颜色,初始化较低分辨率的图像;以及
步骤(c)(iv)还包括
根据步骤(c)(ii)中把n中的颜色向两个新的叶节点之一的分配,确定与两个新的叶节点的两个代表颜色相对应的数字化彩色图像的多个像素的信息比特;以及
使用算术编码,基于较低分辨率的图像对信息比特进行编码。
37、根据权利要求29所述的系统,其中,步骤(c)(i)包括:
针对每一个叶节点,确定把该叶节点变为与两个新的叶节点相链接的非叶节点的相关联的可实现代价;以及
基于针对该叶节点的相关联的可实现代价与针对至少一个其他叶节点的相关联的可实现代价的比较,来选择叶节点。
38、根据权利要求37所述的系统,其中,步骤(c)(i)包括:针对每一个叶节点,确定针对所选叶节点的相关联的可实现代价是否小于针对其他叶节点中的每一个的相关联的可实现代价。
39、根据权利要求38所述的系统,其中,步骤(c)(i)包括:针对每一个叶节点,基于把相关联的失真改变与通过将相关联的熵速率增加和乘数相乘所获得的乘积相加,来确定相关联的可实现代价。
40、根据权利要求39所述的系统,其中,所述乘数是固定的拉格朗日乘数。
41、根据权利要求38所述的系统,其中,步骤(c)(i)包括:针对每一个叶节点,通过如下步骤来确定相关联的可实现代价:
确定由把叶节点变为与两个新的叶节点相链接的非叶节点而产生的相关联的熵速率增加和相关联的失真减小之间的相关联的可实现折衷;以及
基于相关联的可实现折衷、相关联的熵速率增加以及相关联的失真减小,来确定相关联的可实现代价。
42、根据权利要求35所述的系统,其中,针对两个新的叶节点中的每一个,所述确定向新的叶节点分配颜色而产生的相关联的熵速率增加的步骤包括:
针对该颜色的像素子集中的每一个像素,确定相邻像素集,其中,相邻像素集中的每一个像素与该像素邻接;
基于所述相邻像素集,确定针对该像素的熵速率增加;以及
基于针对该颜色的像素子集中的所有像素的熵速率增加,确定向新的叶节点分配颜色而产生的相关联的熵速率增加。
43、根据权利要求28所述的系统,其中,所述系统是移动无线设备。
44、根据权利要求1所述的方法,还包括:
基于每一个起始节点的所述至少一个代表颜色,初始化已编码的图像;
其中,步骤(c)还包括:通过附加在步骤(c)(iv)中获得的已编码比特,渐进地更新已编码的图像。
45、根据权利要求15所述的计算机程序产品,其中
所述记录介质上记录的指令还可操作地指挥计算机系统基于每一个起始节点的所述至少一个代表颜色而初始化已编码的图像;
其中,步骤(c)还包括通过附加在步骤(c)(iv)中获得的已编码比特,渐进地更新已编码的图像。
46、根据权利要求29所述的系统,其中
所执行的步骤还包括基于每一个起始节点的所述至少一个代表颜色,初始化已编码的图像;
其中,步骤(c)还包括:通过附加在步骤(c)(iv)中获得的已编码比特,渐进地更新已编码的图像。
CN200680035129XA 2005-09-23 2006-09-25 对数字化彩色图像进行渐进编码的方法和系统 Active CN101317197B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US71958505P 2005-09-23 2005-09-23
US60/719,585 2005-09-23
PCT/CA2006/001558 WO2007033483A1 (en) 2005-09-23 2006-09-25 Method, system and computer program product for providing entropy constrained color splitting for palette images with color-wise splitting

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN2011100543165A Division CN102196266B (zh) 2005-09-23 2006-09-25 利用逐颜色分裂向调色板图像提供熵约束颜色分裂的计算机系统

Publications (2)

Publication Number Publication Date
CN101317197A true CN101317197A (zh) 2008-12-03
CN101317197B CN101317197B (zh) 2012-10-03

Family

ID=37888497

Family Applications (3)

Application Number Title Priority Date Filing Date
CN200680035129XA Active CN101317197B (zh) 2005-09-23 2006-09-25 对数字化彩色图像进行渐进编码的方法和系统
CN2011100543165A Active CN102196266B (zh) 2005-09-23 2006-09-25 利用逐颜色分裂向调色板图像提供熵约束颜色分裂的计算机系统
CN2006800350935A Active CN101283377B (zh) 2005-09-23 2006-09-25 向调色板图像提供熵约束颜色分裂的方法和系统

Family Applications After (2)

Application Number Title Priority Date Filing Date
CN2011100543165A Active CN102196266B (zh) 2005-09-23 2006-09-25 利用逐颜色分裂向调色板图像提供熵约束颜色分裂的计算机系统
CN2006800350935A Active CN101283377B (zh) 2005-09-23 2006-09-25 向调色板图像提供熵约束颜色分裂的方法和系统

Country Status (5)

Country Link
US (6) US8000547B2 (zh)
EP (4) EP1927084A4 (zh)
CN (3) CN101317197B (zh)
CA (2) CA2620885A1 (zh)
WO (2) WO2007033483A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106464871A (zh) * 2014-05-23 2017-02-22 高通股份有限公司 在基于调色板的视频译码中对具有逸出的行程进行译码
US10382749B2 (en) 2014-05-23 2019-08-13 Qualcomm Incorporated Coding run values based on palette index in palette-based video coding
US11323733B2 (en) 2014-05-23 2022-05-03 Qualcomm Incorporated Predictor palette initialization in palette-based video coding

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8000547B2 (en) 2005-09-23 2011-08-16 Slipstream Data Inc. Method, system and computer program product for providing entropy constrained color splitting for palette images with color-wise splitting
US8775662B2 (en) * 2005-09-27 2014-07-08 Blackberry Limited System and method for progressive delivery of multimedia objects
US20090010533A1 (en) * 2007-07-05 2009-01-08 Mediatek Inc. Method and apparatus for displaying an encoded image
KR20100053010A (ko) * 2008-11-12 2010-05-20 삼성전자주식회사 휴대단말기의 태양 전지 충전을 이용한 어플리케이션 구현 장치 및 방법
US7952504B2 (en) * 2009-06-19 2011-05-31 Mediatek Inc. Gain control method and electronic apparatus capable of gain control
US9172963B2 (en) 2010-11-01 2015-10-27 Qualcomm Incorporated Joint coding of syntax elements for video coding
US8830258B2 (en) * 2011-03-07 2014-09-09 Ricoh Co., Ltd Generating strokes in real-time on an electronic paper display
US9142056B1 (en) * 2011-05-18 2015-09-22 Disney Enterprises, Inc. Mixed-order compositing for images having three-dimensional painting effects
US9223825B2 (en) 2012-08-20 2015-12-29 Blackberry Limited Methods and devices for applying constraints to data object
CN104021579A (zh) * 2014-06-10 2014-09-03 广州博冠信息科技有限公司 图片变色方法及装置
US10136141B2 (en) * 2014-06-11 2018-11-20 Qualcomm Incorporated Determining quantization parameter (QP) values and delta QP values for palette coded blocks in video coding
WO2016048263A1 (en) 2014-09-22 2016-03-31 Hewlett Packard Enterprise Development Lp Identification of content-defined chunk boundaries
EP3007423A1 (en) * 2014-10-06 2016-04-13 Industrial Technology Research Institute Method of color palette coding applicable to electronic device and electronic device using the same
EP3306922A1 (en) * 2016-10-05 2018-04-11 Thomson Licensing Method and apparatus for encoding a picture using rate-distortion based block splitting
WO2020261313A1 (ja) * 2019-06-24 2020-12-30 日本電信電話株式会社 画像符号化方法、及び画像復号方法
US11748914B2 (en) * 2020-08-26 2023-09-05 Meta Platforms Technologies, Llc Rate controlled image and texture data compression
WO2023197832A1 (en) * 2022-04-13 2023-10-19 Mediatek Inc. Method and apparatus of using separate splitting trees for colour components in video coding system

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5047842A (en) * 1989-11-03 1991-09-10 The Trustees Of Princeton University Color image display with a limited palette size
JP4420415B2 (ja) * 1998-07-03 2010-02-24 キヤノン株式会社 符号化方法及び符号化装置
US6496198B1 (en) * 1999-05-04 2002-12-17 Canon Kabushiki Kaisha Color editing system
US6496498B1 (en) * 1999-11-19 2002-12-17 Siemens Information & Communication Mobile Llc Method and system for avoiding periodic bursts of interference in wireless communication between a mobile unit and a base unit
US6868186B1 (en) * 2000-07-13 2005-03-15 Ceva D.S.P. Ltd. Visual lossless image compression
CN1209925C (zh) * 2003-01-10 2005-07-06 李春林 基于信源高阶熵的数据压缩方法
CN1322472C (zh) * 2003-09-08 2007-06-20 中国人民解放军第一军医大学 基于小波变换的预测四叉树图像压缩及解压方法
JP2006333436A (ja) 2005-01-07 2006-12-07 Ntt Docomo Inc 動画像符号化装置、動画像復号装置、動画像符号化方法、動画像復号方法、動画像符号化プログラム、及び、動画像復号プログラム
US8000547B2 (en) * 2005-09-23 2011-08-16 Slipstream Data Inc. Method, system and computer program product for providing entropy constrained color splitting for palette images with color-wise splitting

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106464871A (zh) * 2014-05-23 2017-02-22 高通股份有限公司 在基于调色板的视频译码中对具有逸出的行程进行译码
CN106464871B (zh) * 2014-05-23 2019-04-23 高通股份有限公司 处理视频数据的方法、装置、设备以及计算机可读媒体
US10291940B2 (en) 2014-05-23 2019-05-14 Qualcomm Incorporated Coding runs with escape in palette-based video coding
US10382749B2 (en) 2014-05-23 2019-08-13 Qualcomm Incorporated Coding run values based on palette index in palette-based video coding
US11323733B2 (en) 2014-05-23 2022-05-03 Qualcomm Incorporated Predictor palette initialization in palette-based video coding

Also Published As

Publication number Publication date
US20110123110A1 (en) 2011-05-26
US20120321183A1 (en) 2012-12-20
US20120308129A1 (en) 2012-12-06
US8503807B2 (en) 2013-08-06
CN101317197B (zh) 2012-10-03
EP1927083A4 (en) 2009-07-01
US20070076968A1 (en) 2007-04-05
US8000547B2 (en) 2011-08-16
EP1927084A4 (en) 2009-07-01
CA2620885A1 (en) 2007-03-29
WO2007033483A1 (en) 2007-03-29
WO2007033487A3 (en) 2007-05-24
US20070071339A1 (en) 2007-03-29
CN101283377B (zh) 2013-05-29
CN102196266B (zh) 2013-07-03
EP2461293A1 (en) 2012-06-06
US8559740B2 (en) 2013-10-15
CA2620893C (en) 2015-06-23
US8265408B2 (en) 2012-09-11
US20120039530A1 (en) 2012-02-16
US7903893B2 (en) 2011-03-08
CN102196266A (zh) 2011-09-21
WO2007033487A8 (en) 2008-06-12
EP1927084A2 (en) 2008-06-04
CN101283377A (zh) 2008-10-08
US8260071B2 (en) 2012-09-04
WO2007033487A2 (en) 2007-03-29
EP2461294A1 (en) 2012-06-06
CA2620893A1 (en) 2007-03-29
EP1927083A1 (en) 2008-06-04

Similar Documents

Publication Publication Date Title
CN101317197B (zh) 对数字化彩色图像进行渐进编码的方法和系统
US20130114910A1 (en) Method for compressing/decompressing a three-dimensional mesh
CN101779377A (zh) 自适应可伸缩分组丢失恢复
CN103345767A (zh) 一种高安全性的jpeg图像隐写方法
CN111523556B (zh) 模型训练方法、装置及系统
Kumar et al. Distributed source coding based encryption and lossless compression of gray scale and color images
Kossentini et al. Entropy-constrained residual vector quantization
Hasircioglu et al. Communication efficient private federated learning using dithering
CN108810117A (zh) 图像的访问方法、装置、电子设备及存储介质
Kadam et al. Quantization at the physical layer using affinity propagation clustering
Hasırcıoğlu et al. Communication Efficient Private Federated Learning Using Dithering
Teboulle On ϕ-divergence and its applications
Li et al. Repairable fountain codes with unequal repairing locality in D2D storage system
Wang et al. A Coordinate-based Fuzzy Encoding Strategy for Compressing Grayscale Images
Lungisani et al. Optimized Block-Based Lossy Image Compression Technique for Wireless Sensor Networks
CN116777014A (zh) 基于标签保护的联邦学习模型训练方法、设备及存储介质
Idrees et al. Image Compression using Genetic Algorithm
Ma et al. On the Coding and Segmentation of Multivariate Mixed Data
Chiou et al. Compression on the block indexes in image vector quantization
Yang et al. The redundancy of multi-resolution coding for successively refinable sources
Gong Classified context quantization of VQ indexes for image compression
Karthikeyan et al. Graph based evolutionary algorithms for optimized image segmentation

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CI01 Publication of corrected invention patent application

Correction item: Inventor

Correct: Yang Enhui|Wang Longji

False: Yang Enhui|Wang Longji

Number: 49

Volume: 24

CI02 Correction of invention patent application

Correction item: Inventor

Correct: Wang Longji

False: Wang Longji

Number: 49

Page: The title page

Volume: 24

C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20211129

Address after: Ontario, Canada

Patentee after: BlackBerry Ltd.

Address before: Ontario, Canada

Patentee before: Jet Data Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20240523

Address after: Ai Erlandubailin

Patentee after: Maliki Innovation Co.,Ltd.

Country or region after: Ireland

Address before: Ontario, Canada

Patentee before: BlackBerry Ltd.

Country or region before: Canada

TR01 Transfer of patent right