CN104023235B - 图像编码中的索引颜色历史 - Google Patents

图像编码中的索引颜色历史 Download PDF

Info

Publication number
CN104023235B
CN104023235B CN201410073689.0A CN201410073689A CN104023235B CN 104023235 B CN104023235 B CN 104023235B CN 201410073689 A CN201410073689 A CN 201410073689A CN 104023235 B CN104023235 B CN 104023235B
Authority
CN
China
Prior art keywords
pixel
color
value
current pixel
history
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.)
Active
Application number
CN201410073689.0A
Other languages
English (en)
Other versions
CN104023235A (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.)
Avago Technologies International Sales Pte Ltd
Original Assignee
Avago Technologies Fiber IP Singapore Pte 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 Avago Technologies Fiber IP Singapore Pte Ltd filed Critical Avago Technologies Fiber IP Singapore Pte Ltd
Publication of CN104023235A publication Critical patent/CN104023235A/zh
Application granted granted Critical
Publication of CN104023235B publication Critical patent/CN104023235B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/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/154Measured or subjectively estimated visual quality after decoding, e.g. measurement of distortion
    • 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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)

Abstract

本发明公开了图像编码中的索引颜色历史,编码器可以实现存储先前编码的像素的颜色值的索引颜色历史。所述编码器可获得用于编码的当前像素或者当前像素组并确定是否使用索引颜色历史编码当前像素。在这种情况下,所述编码器可以比较当前像素的颜色值和先前编码像素的颜色值,以便例如通过满足一个或多个相似性准则确定当前的像素是否充分的与先前编码的像素的颜色值相似。当相似性准则满足时,所述编码器可以通过参考满足存储相似性准则的颜色值的索引颜色历史中的条目将当前像素编码为索引值。当相似性准则不满足时,所述编码器可以使用另一个编码方法或者技术编码当前像素。

Description

图像编码中的索引颜色历史
相关申请的交叉引用
本申请要求于2013年2月28提交的美国临时申请US61/770,979以及于2014年2月17日提交的美国实用专利申请US14/182,172的优先权,其全部内容通过引证结合于本文中。
技术领域
本公开涉及图像编码。本公开还涉及使用索引颜色历史来编码或者解码图像。
背景技术
巨大的顾客需求驱动了电子和通信技术的快速发展,这导致了在全世界范围内采用显示各式各样的图像或者视频内容的设备。这种设备的示例包括智能手机、平板电视以及平板电脑。图像和视频处理技术中的进步将会持续增强这些设备的能力。
发明内容
根据本发明的一个实施方式,提供一种系统包括:存储器,存储:索引颜色历史,所述索引颜色历史包括存储先前编码像素的颜色值的条目;与所述存储器通信的编码逻辑,所述编码逻辑被配置为:获得用于编码的当前像素;通过比较所述当前像素的颜色值和所述先前编码像素的颜色值,确定是否使用所述索引颜色历史编码所述当前像素;以及当确定使用所述索引颜色历史编码所述当前像素时:将所述像素作为索引值编码到所述索引颜色历史中。
其中,所述编码逻辑被配置为当所述当前像素的颜色值相对于所述先前编码像素的颜色值满足相似性准则时,确定使用所述索引颜色历史编码所述当前像素。
其中,当所述当前像素的颜色值与所述先前编码像素的颜色值相同时,满足所述相似性准则。
其中,当所述当前像素的颜色值的成分值与所述先前编码像素的颜色值的对应成分值的区别在差值阈值内时,满足所述相似性准则。
其中,当所述当前像素的颜色值与所述先前编码像素的颜色值的区别在差值阈值内时,满足所述相似性准则。
其中,所述编码逻辑进一步被配置为:访问所述当前像素的量化参数;以及将所述差值阈值确定为所述当前像素的所述量化参数的函数。
其中,所述编码逻辑被配置为将所述差值阈值确定为所述当前像素的所述量化参数的最大量化误差。
其中,所述编码逻辑被配置为将所述差阈值确定为以下:当所述最大量化误差不超过误差阈值时,确定为基于所述当前像素的所述量化参数的最大量化误差;以及当所述最大量化误差超过所述误差阈值时,确定为小于所述当前像素的所述量化参数的所述最大量化误差的值。
其中,所述编码逻辑进一步被配置为在编码位流中以显式方式信号通知所述当前像素已经作为所述索引值被编码到所述索引颜色历史中。
其中,所述编码逻辑进一步被配置为:当存储在所述索引颜色历史中的颜色值相对于所述当前像素的颜色值均不满足相似性准则时,确定不使用所述索引颜色历史对所述当前像素进行编码;以及在不参考所述索引颜色历史的情况下编码所述当前像素。
其中,所述编码逻辑进一步被配置为:当确定不使用所述索引颜色历史编码所述当前像素时:将所述当前像素的颜色值插入所述索引颜色历史中;以及将所述当前像素的颜色值指示为最近使用的颜色值。
其中,所述编码逻辑进一步被配置为通过从所述索引颜色历史中去除最近最久未使用的颜色值,将所述当前像素的颜色值插入到所述索引颜色历史中。
根据本发明的另一个实施方式,提供一种方法,包括:获得当前像素的图像数据,所述图像数据包括所述当前像素的颜色值;当在以下情况下,确定通过参考索引颜色历史编码所述当前像素:所述索引颜色历史包括存储先前编码像素的颜色值的历史条目,所述先前编码像素的颜色值相对于所述当前像素的颜色值满足相似性准则;以及通过参考所述索引颜色历史编码所述当前像素的位长度的函数值小于使用不同编码方法编码所述当前像素的位长度的函数值;以及通过参考所述索引颜色历史中的所述历史条目编码所述当前像素。
其中,通过参考所述历史条目编码所述当前像素包括将所述当前像素编码为对应于所述历史条目的索引值。
其中,该方法还包括保持所述索引颜色历史以指示所述历史条目是所述索引颜色历史的最近使用的条目。
其中,该方法还包括:在编码位流中信号通知所述当前像素是通过参考所述索引颜色历史被编码的。
其中,所述信号通知包括将转义码编码到与所述当前像素对应的前缀中。
根据本发明的又一个实施方式,提供一种产品,包括:非临时性机器可读介质;以及通过所述介质存储的指令,当所述指令被处理器执行时,使所述处理器:获得用于编码的当前像素;访问索引颜色历史以确定所述索引颜色历史中的条目是否存储有先前编码像素的颜色值,其中所述先前编码像素的颜色值满足至少一个准则,所述至少一个准则包括所述先前编码像素的颜色值相对于所述当前像素的颜色值的相似性准则;以及当所述索引颜色历史包括满足所述至少一个准则的条目时:将所述像素作为索引值编码至条目;以及当所述索引颜色历史不包括满足所述相似性准则的条目时:在不参考所述索引颜色历史的情况下编码所述像素。
其中所述指令进一步使所述处理器:确定所述索引颜色历史包括存储有满足所述相似性准则的颜色值的多个条目,以及对此响应地:选择所述多个条目中的一个条目的索引值作为编码所述像素的索引值。
其中所述指令使所述处理器选择所述多个条目中的一个条目的索引值是通过以下步骤进行的:识别所述多个条目中的哪个条目具有的颜色值具有颜色成分的绝对差的最小之和。
附图说明
图1示出使用索引颜色历史执行图像处理的设备的示例。
图2示出了编码器的示例架构。
图3示出了索引颜色历史的示例性表示。
图4示出了索引颜色历史的另一个示例性表示。
图5示出了索引颜色历史的示例性表示。
图6示出了可以执行以编码图像数据的设备的逻辑的示例。
图7示出用于处理图像数据的系统的示例。
图8示出了可以执行以解码图像数据的设备的逻辑的示例。
具体实施方式
以下的讨论提及了使用索引颜色历史进行的图像编码。如下所述的技术和系统可以改善图像编码(如编码或者解码)的效率,尤其是用于诸如文本的精细图像内容。使用索引颜色历史的图像编码会产生高效编码的颜色(例如颜色值或者像素值),这些颜色之前在图像中出现过,例如来自图像的先前处理部分的颜色,在图像中的先前行或列的位置,位于具有特定颜色的当前像素的上面、下面、左面和/或右面的位置,或者在其它的位置。此外,使用索引颜色历史的图像压缩会导致与先前出现在图像中的颜色相似但不相同的颜色的高效编码,例如相对于一个原始颜色匹配任何数量的类似标准的相似颜色。
结合有、实施或保持索引颜色历史或使用索引颜色历史执行编码或者解码(如下所讨论的)设备可以采取许多不同的形式。例如所述设备可以是机顶盒、手机、智能手机、便携式计算机、个人数据助理、便携式计算机、平板电脑、便携式电子邮件设备或者存储器中的通过处理器执行的进程或者线程。另外的设备示例包括电视、高清晰度(例如蓝光(TM)或者DVD音频)媒体播放机或者家用媒体服务器。实际上在任何情况下均存在这种设备,包括家庭、商业、公共场所或汽车。
图1示出执行图像处理的设备100的示例,所述图像处理包括使用索引颜色历史编码图像数据。所述设备100包括通信接口110和用户接口116。所述通信接口110可以支持经由不同的一系列有线或无线格式、协议、调制、频道、比特率和编码中任一个的通信。因此,通信接口110可以支持使用802.11a/b/g/n/ac标准、60GHzWiGig/802.11TGad规范、蓝牙、全球移动通讯系统(GSM)、时分多址接入(TDMA)、频分多址接入(FDMA)、码分多址接入(CDMA)、以太网、线缆(例如,DOCSIS)、DSL、同轴电缆多媒体联盟(MoCA)、电力线(例如,电力线网络AV)、以太网无源光网络(EPON)、吉比特无源光网络(GPON)、或者其它有线或无线接入技术或协议进行的通信。
设备100包括系统逻辑112。系统逻辑112可包括硬件、软件、固件或者其它逻辑的任何组合。系统逻辑112例如可以以片上系统(SoC)、特定用途集成电路(ASIC)或者其它电路来加以实现。系统逻辑112为设备100中实施任何所需功能的一部分。在编码图像数据的背景下,系统逻辑112可以包括编码器114。编码器114可以以硬件、软件或者两者来实施如下所述图像处理中的任一个,包括使用索引颜色历史编码图像数据。在一些实施方式中,系统逻辑112在例如专用的图像处理线路的硬件中实现编码器114和索引颜色历史。
在一些实施方式中,系统逻辑112包括一个或多个处理器120和存储器121。存储器121存储例如包括编码指令124的系统指令122,处理器120执行编码指令124以编码图像数据。存储器121还可以存储索引颜色历史(ICH)126(例如作为硬件寄存器文件)、运行参数127以及要编码的数据128,例如图像的像素数据。像素数据可以指的是或者包括像素的颜色值。
系统逻辑112可以将ICH126实施为存储器(如高速缓存存储器、表格、有序的列表),该存储器保持一组最近使用的颜色值或者像素值。编码器114保持ICH126。编码器114可以将ICH126实现为存储可配置数量的条目。ICH126可以存储预定数量的条目,例如8、16、321、64或者任何其它数量的条目。在ICH126中的条目可以存储例如通过颜色值或像素值的颜色指示。编码器114可以将颜色值表示为颜色空间(或者颜色模型)的数值(或者数组)部分,颜色空间例如为RGB颜色空间、YCbCr颜色空间、YCoCg颜色空间、CMYK颜色空间或者任何其它的颜色空间。在一些实施方式中,编码器114根据输入图像的格式在YCoCg或者YCbCr中编码图像数据。编码器114可以在编码之前将RGB输入图像转换为YCoCg。解码器可以在输出之前将解码的YCoCg内容转换为RGB。
编码器114可以将ICH126实施为使得条目是保持颜色值的多个位存储位置。颜色值可以指的是特定颜色空间中的颜色的表示。例如,当编码RGB24图像或者已经转换为YCoCg的视频数据时,YCoCg颜色值的Y成分可以利用8比特编码以及Co和Cg成分可以利用9比特编码。在这个示例中,ICH126可以向ICH126中的条目分配26比特以存储YCoCg颜色值。条目可以比存储颜色值所需的宽。例如,各个条目可以是32位或者64位宽,并且因此有利于例如与每颜色值利用其它附加位的其他颜色空间进行无缝操作。作为另一个变形,编码器114可以将ICH条目实施为窄于存储特定颜色空间的颜色值所使用的位数。在该变形中,编码器114可以量化颜色值或使颜色值四舍五入为更小的位深以存储ICH126的较窄条目。
编码器114可以使用ICH编码或者非ICH编码来编码图像数据。当执行ICH编码时,编码器114可以通过参考ICH126来编码图像数据,例如通过将编码位流中的像素表示为ICH126中的索引值。当执行非ICH编码时,编码器114可以使用不参考ICH126的不同编码方法来编码图像数据,不同编码方法的示例包括在2010年3月9日提交的美国专利申请第12/720,273和2013年10月2日提交的美国专利申请第14/044,627中所记载的编码方法,通过引证将上述两者结合于本文中。例如,编码器114在执行非ICH编码时可以利用美国专利申请第14/044,627中描述的预测编码方法中的任一个。
图2示出了编码器114的示例架构200。示例性架构200可以支持使用预测编码或ICH编码进行的像素编码。
编码器114可以产生可以精确地符合独立指定的bpp(位/像素)速率的位流。bpp速率可以根据位/像素时间来指定。位/像素时间可以在算法上被指定,这是因为像素时间的单位在编码器114的输入和输出端相同。编码每个像素或者像素组的比特数可以较大的改变。在示例性架构200中,速率缓冲器202促进将用于编码各个组的可变比特数转换为例如恒定的bpp速率。为此,编码器114可以包括速率控制器204。速率控制器204可以确定在量化步骤是否增加、减少或者保持不变。
编码器114可以包括颜色空间转换逻辑206,例如RGB输入至可逆的YCoCg转换逻辑。输入缓冲器208可以存储经转换的输入。在图2中还示出了实施样本值的预测和残差值的产生的预测、量化和重建(PQR)逻辑210。在一些实施方式中,PQR逻辑210预测和量化像素成分,从而产生量化的残差。PQR逻辑210可以从先前编码的和重建的像素成分中预测像素成分,并可以包括多个(例如3个)预测器:修改的中值自适应预测(MMAP)、中点预测(MPP)和阻断预测(BP)。PQR逻辑210还可以实现残差值的量化以及样本值的重建。
在图2中还示出了可变长度编码器(VLC)逻辑214,其可以使用Δ尺寸单元可变长度编码(DSU-VLC)实现熵编码。VLC逻辑214可以例如使用自然数2的补码二进制值编码量化的样本值。映射和可变长度编码器206编码各个值所使用的位数可以通过相同像素成分的编码值的近期历史和与各个样本单元有关的前缀值的组合动态地被确定。输入缓冲器208可以提供样本到平坦度确定逻辑218。
图2中示出的示例性架构包括ICH126。编码器114确定是使用ICH126或者根据另一个编码法编码像素数据。在一些变形中,编码器114确定对于每组是使用ICH编码还是非ICH编码来编码像素。编码器114可以以任意的方式将像素组确定为例如1、2、3、4、6、8或者任何其它数量的像素,方式例如横穿扫描行、在图像的特定部分、在一维或者多维(例如二维)布置中、整个连续或者非连续或者在其他方式。例如,一组8个像素可以是两个2x2连续像素的集合,其中每个集合与另一个集合是连续或者非连续。作为另一个示例,8个像素的组可以是连续的2x4像素块。
编码器114可以使用任何种类的算法或者可以在运行参数127中指定的任何准则选择使用ICH编码。被编码器114使用的选择算法或者准则不必实施在解码器中。如下详细的描述,编码器114可以在编码位流中指示输入的像素或者输入像素组是使用ICH编码还是另一种编码方法编码的。
在一些实施方式中,编码器114根据相对于ICH126中的条目的相似性准则确定是否为输入的一组像素使用ICH编码。换句话说,当在ICH126中的条目相对于当前输入像素满足相似性准则,编码器114可以确定针对当前输入像素使用ICH编码。当组中的输入像素的阈值数目或者百分比(所有)满足相似性准则,编码器114可以确定为像素组使用ICH编码。关于这一点,编码器114可以比较输入像素的颜色值和存储在ICH126的条目中的颜色值。
编码器114可以对于将要被编码的输入像素的颜色值和ICH126中的条目的颜色值之间的差异应用一个或多个相似性准则,其中一些示例将在下文呈现。作为第一个示例,编码器114可以确定颜色值之间的差异是否超过差分阈值,例如在颜色空间的一个或多个成分之间测量的或者通过颜色空间中两个颜色值之间的距离测量的。当一个或多个成分的差异或者一个或多个成分之间的差异(如绝对差)之和或者成分的任何所选函数小于差分阈值时,相似性准则可以被满足。基于这一点,当将要编码的输入像素的颜色值与ICH126中一个或多个条目的颜色值的差异小于差分阈值时,例如当输入像素的颜色值与ICH126中条目的颜色值之间的差异在差分阈值内时,在ICH126中的条目可以满足相似性准则。
在一些变化中,相似性准则可以指定适用于颜色值的一个或多个成分的公共差分阈值,例如针对输入像素和ICH126条目之间比较的Y、Co和Cg成分的公共差分阈值。在其它变形中,相似性准则可以指定适用于颜色值的单独成分的相应的差分阈值,例如第一差分阈值适用于Y成分比较、第二差分阈值适用于Co成分比较、以及Cg差分阈值适用于Cg成分比较。作为另一个替代的或者附加的变形,相似性准则可以指定指专用于组中的不同像素的特定差分阈值。
编码器114可以确定差分阈值为非ICH编码中所使用的一个或多个变量的函数。作为示例,编码器114可以将差分阈值识别为可以从使用非ICH编码方法对组中的像素进行编码所获得的最大、最小或者平均误差。在这些情况中,相似性准则可以包括误差准则。为了在量化的背景下提供说明,编码器114将差分阈值确定为将应用于当前像素或者当前像素组的量化参数(QP)的函数,其中编码器114使用非ICH编码(例如预测编码)来编码当前像素或者当前像素组。在该说明中,非ICH编码算法可以对于一三像素组中的第一像素使用QP值4指定以及对于第二和第三像素使用QP值5进行指定。对应的最大量化误差对于第一像素可以为2^4/2=8,以及对于第二和第三像素为2^5/2=16。当与ICH126中的条目比较时,编码器114可以为第一像素的成分应用差分阈值8以及为第二和第三像素成分应用差分阈值16。因此,编码器114可以通过确定要被编码的输入像素的各个成分的绝对差和ICH126中的条目是否超过这些差分阈值,来确定相似性准则是否得到满足。在该具体说明中,当输入像素的颜色值成分和ICH126中的条目的颜色值的颜色值成分之间的差异的绝对值小于差分阈值,例如与第一像素的颜色值成分相比相差8,以及与第二和第三像素的颜色值成分相比相差16,编码器114确定满足相似性准则。
作为相似性准则的附加示例,编码器114可以应用差分阈值而不是当前可用的最大量化误差。例如,当最大量化误差超过预定误差水平(例如阈值)时,编码器114可以应用小于当前可用最大量化误差的差分阈值。当最大量化误差不超过预定误差水平时,编码器114可以应用等于当前可用最大量化误差的差分阈值。作为一个示意性说明,如果QP=5并且最大误差是16,以及预定的误差水平是8,编码器114可以应用小于16的差分阈值,例如8。如果QP=4以及最大误差是8,那么编码器可以应用等于最大误差的差分阈值,其中最大误差是8。
在一些变形中,相似性准则的满足需要输入像素的颜色值和ICH126中的条目之间相同的匹配。即,当ICH126中的条目完全匹配输入像素时,则编码器114可以确定满足相似性准则。作为又一个变形,相似性准则可以要求输入像素和ICH126条目之间一个或多个颜色成分的精确匹配。在该变形中,当输入像素的一个或多个成分与ICH126条目的相应成分完全一致时,编码器114可以确定相似性准则的满足。
编码器114在确定针对像素或输入像素组使用ICH编码时,可以应用多个准则。作为一个示例,编码器114基于一个或多个条件确定是否选择ICH模式下的编码用于组,例如当以下两个条件满足时:
(1)针对组中的每个像素,在ICH126中存在满足相似性准则的至少一个条目;以及
(2)在ICH模式中编码组所消耗的位的估计数(位成本)少于使用非ICH模式编码组所消耗的位的估计数。
作为上述条件(2)的另外的或者替代的示例,编码器114可以应用准则以基于像素组的位成本和一个或多个附加参数(例如经使用编码模式引起的误差),在ICH模式和非ICH模式之间选择。当编码输入像素所参考的ICH126中的条目的颜色值与输入像素的颜色值不同时,在ICH模式中编码像素组会在输入像素中引入误差,以及当ICH126中被参考的条目的颜色值与输入像素的颜色值完全匹配时,输入像素的误差为0。在这一点上,误差可以指的是输入像素的颜色值和从特定编码模式产生的编码的颜色值之间的差异。例如,在非ICH模式下的编码会引入例如由颜色值的量化或者重建所引起的误差。在这些示例中,编码器114可以对从使用ICH编码或者非ICH编码产生的相应误差,以及确定是使用ICH编码或者非ICH编码时的误差因数进行加权。
在一些实施方式中,编码器114比较使用ICH126的一个或多个条目应用于像素组的ICH编码的位成本和误差的函数输出和施加于像素组的的ICH编码的误差对比对应的位消耗的函数的输出以及施加于像素组的非ICH编码的位成本和误差的对应函数。换句话说,当确定是使用ICH模式还是非ICH模式编码像素组时,编码器114可以对位成本和精确度(例如通过误差函数所标示的)进行加权。作为一个具体示例,编码器可以比较以下函数的输出:“位成本+4*总和(ceil(log2(maxAbsError+1)))”,其中maxAbsError指代基于每成分的最大绝对误差以及总和是成分的总和。当ICH126中的一个或多个条目的函数输出小于使用非ICH编码时的函数输出时,编码器114可以选择ICH编码。编码器114可以应用任何函数的变形以比较输入像素组的ICH编码和非ICH编码,并考虑以下因素:例如位成本、误差和/或精确度、吞吐量、处理时间、功耗或者任意数量的其它参数。
与使用非ICH编码估计的位成本和误差相比,编码器114可以向使用ICH编码所估计的位成本和误差应用不同的函数。例如,编码器可以通过应用第一函数至使用ICH编码的位成本和误差(或者任何另外的或者替代的至第一函数的输入),以及应用第二函数到使用非ICH编码的位成本和误差(或者任何另外的或者替代的至第二函数的输入)并比较输出,确定是使用ICH编码还是使用非ICH编码。作为另一个选择,编码器114比较使用ICH编码和使用非ICH编码的估计位成本和误差的相应函数输出,并当函数的输出相差至少预定阀值时,确定使用特定编码方法。
当以上条件两者同时满足时,编码器114可以选择ICH编码来编码组。在一些变形中,编码器114可以基于与组的输入像素在同一扫描行的输入值以及先前扫描行的重建值中的一个或者两个估计使用非ICH模式时消耗的位的数量。例如,编码器114可以估计将要用于编码组中的每一个像素的预测残差的位的数量,其中该预测基于输入和重建的值。
在确定对一组输入像素使用ICH编码之后,编码器114可以选择相应的索引到ICH126中以表示输入像素。在一些实施方式中,编码器114可以将输入像素编码为索引值,其识别ICH126中满足输入像素的相似性准则的条目。当ICH126包括相对于输入像素满足相似性准则的多个条目时,编码器114可以应用另外的准则以从满足相似性准则的多个条目中选择特定的条目。作为一个实施方式,编码器114选择ICH126中的产生每成分误差的绝对差的最小和的条目。在其它实施方式中,编码器114选择在一个成分中产生最低绝对误差的ICH条目,例如YCbCr颜色空间的Y成分。编码器114可以应用另外的或者替代的准则,其指定在ICH126中输入像素和条目的任何函数的比较,以及作为另外的示例,指定选择具有每成分的绝对差的最低加权和或者每成分平方误差的最低总数的条目。
在一些实施方式中,当选择进入ICH126中的索引以表示输入像素(可以被称作选择相似性准则)而不是确定ICH126包括相对于输入像素满足相似性准则的至少一个条目(其中可以参照包含的相似性准则)时,编码器114可以应用相似性准则的不同组。因此,编码器114可以确定选入ICH126中的索引以表示输入像素(例如通过应用选择相似性准则),分离地确定ICH127是否包括具有与输入像素足够相似的颜色值的至少一个条目(例如通过包含相似性准则指定的特定相似阈值内)。选择相似性准则和包含相似性准则可以分别包括上面论述的相似性准则的任何组合。
编码器114在确定是否使用ICH编码或者非ICH编码来编码输入像素组之前,可以确定选入ICH126中的索引以表示输入像素组的相应像素。为了举例说明,编码器114可以使用选择相似性准则确定选入ICH126中的索引,以分别编码组中的输入像素,并且随后在满足以下两个条件时确定对于像素组是否选择ICH模式下的编码:
(1)对于组中的每个像素,在ICH126中存在至少一个条目满足所包含的相似性准则;以及
(2)对于使用选择相似性准则确定选入ICH126中的索引,使用所选择的索引的位成本和误差的函数的输出值小于使用非ICH编码的位成本和误差的函数的输出(或少于至少预定阀值)。
因此,在一些实施方式中,在确定是否使用ICH编码之前,编码器114可以确定进入ICH126的所选择的索引,其将用于表示ICH中的输入像素。在这种情况下,当满足两个条件时,编码器114可以通过将输入像素表示为所选择的索引来编码像素组。在其它变形中,编码器114可以确定进入ICH126的所选索引,以用于表示使用选择相似性准则的输入像素组,同时或者之前确定是否使用ICH编码来编码输入像素组,例如如上所述。
图3示出编码器114可以实现的ICH126的示例性表示300。图3中示出的ICH126包括具有索引值302和颜色值304的条目。在图3中,ICH126包括32个条目,并且条目用相应的索引值302来标识。换句话说,索引值302指向或者对应于ICH126中的特定条目,是否显式地存储在条目中或以其他方式识别特定条目作为从ICH126中的第一条目的偏移。
编码器114可以响应于初始化条件初始化ICH126,例如依据一个或多个预先确定的事件的出现。初始化条件的示例包括识别输入图像(压缩的或者非压缩的)的开始、图像片段的开始、或者扫描行的开始。编码器114可以将ICH126设置为初始状态,例如以使得ICH126未存储有效条目。编码器114可以在初始化后填充ICH126的内容,或者编码器114可以实现ICH126以使得条目包括图3中所示的有效位308。特定条目的有效位308可以表示特定条目是在有效状态还是无效(例如未使用的)状态。在初始化过程中,编码器114可以清除ICH126中的条目的有效位308,而且或可替换地填充条目中的先前内容。
编码器114可以输入颜色值到ICH126中以用于使用非ICH编码所编码的像素。对于这些像素,编码器114可以检查像素的颜色值(例如当使用预测编码时的重建像素值),以及确定是否插入颜色值到ICH126,例如作为条目插入到ICH126。在这种情况下,编码器114可以应用任何数量的进入准则或条件。当ICH126已经包括具有相对于非ICH编码的像素的颜色值,满足一个或多个相似性准则的颜色值304的有效条目时,编码器114可以放弃插入非ICH编码的像素的颜色值。当ICH126中没有具有满足非ICH编码的像素的颜色值的相似性准则的有效条目时,编码器114可以插入非ICH编码的像素的颜色值到ICH126中。在确定是否插入非ICH编码的像素的颜色值到ICH126中时,编码器114可以应用诸如以上所描述的那些的相似或者误差准则的任何组合。当确定是否使用ICH编码以及确定是否插入非ICH编码的像素的颜色值到ICH126中时,编码器114可以应用相同的,部分重叠,或者不同的相似性准则。
当ICH126中存在未使用的(例如无效的)条目时,编码器114可以通过分配未使用的条目并赋予其非ICH编码的像素的颜色值,来将非ICH编码的像素的颜色值插入。ICH126可以设置与新分配的条目相关联的值以指示插入的颜色值是最近使用(MRU)的。在一种变形中,编码器114保持有计数器。编码器114可以在定义的事件时重置计数器,例如在片段开始或者扫描行开始时。计数器可以包括许多位。ICH126中的条目可以包括存储计数器值的计数器字段。在图3中,ICH126中的条目包括相应的计数器值,被标记为最近最久未使用(LRU)的计数器值306。编码器114可以为通过编码器114编码的每个像素增加计数器。编码器可以为使用ICH编码所编码的每个像素或者在任何其它可配置的速率增加计数器。当ICH126的条目匹配相似性准则或者是新插入时,编码器可以复制计数器的当前值作为条目的LRU计数器值306,以表示条目是最近被使用。
当全部的ICH126条目在插入非ICH编码的像素的颜色值之前是有效的时,编码器114可以替换LCH126中的条目。编码器114可以采用置换算法,例如LRU置换算法。当编码器114确定插入新颜色值到ICH126时,编码器114可以将LRU条目识别为具有最小计数器值的条目,例如如存储在LRU计数器值306中的条目。编码器114可以分配多个位给计数器,以使得最大计数器值大于或等于连续的计数器复位事件之间的像素数量。在一些实施方式中,编码器114为每个组(例如而不是每个像素)增加计数器。在这些实施方式中,编码器114可以分配多个位到计数器中,以使得最大计数器值大于或等于连续的计数器复位事件之间的组数量。
编码器114可以采用任何置换算法来确定ICH126中替换的条目。编码器114可以利用替代的置换算法,例如最近未被使用(NRU)或者先进先出(FIFO)。除了包括用于ICH126的条目的LRU计数器值之外,编码器114可以以其他变形来实现LRU。
图4示出了ICH126的另一个示例性表示400,其中编码器114可以将ICH126实现为有序表。有序表可以基于条目在有序表中的位置来指示哪个颜色值是MRU和LRU。ICH126可以将插入的颜色值识别为最近被使用的值,例如通过编码器114在有序表的头部插入新颜色值的条目并且旧条目向下移动。作为示例性实施方式,编码器114可以将ICH126作为移位寄存器来管理,其中最近使用的颜色值在顶端以及最近未使用的颜色值在底部。在顶端增加新条目并且所有其它条目向下移动,在最低端的条目移出ICH126。
在一些变形中,编码器114将新颜色值插入ICH126中,而不需要在检查在ICH126中是否已经存在任何相似的颜色值(例如那些满足相似性准则的)。换句话说,编码器114可以无条件地(例如不需要应用任何进入准则)将非ICH编码的像素的颜色值的条目插入到ICH126中。在这种情况下,编码器114会减少插入颜色值到ICH126中的复杂度和/或延迟,这是因为到ICH126的插入可以不需要实现另外的比较逻辑的开销和没有执行比较时的延迟的情况下完成。
在其它变形中,编码器114将非ICH编码的像素的新颜色值插入到ICH126中并检查ICH126中的旧条目以确定一个(或多个)条目相对于新颜色值是否满足相似性准则。当编码器114识别一个或多个条目(例如,颜色值)满足相似性准则时,编码器114可以从ICH126中移去这些条目。当编码器114从ICH126中除去颜色值时,旧条目可以在有序表中向前移动一个位置,例如MRU方向。以此方式,当新条目(例如,新颜色值)与旧条目(例如,旧颜色值)相一致时,有效的结果会将旧颜色值标记为最近被使用的,例如如同现在位于有序表头部的新条目。
在一个变形中,编码器114确定ICH126中的现有条目相对于非ICH编码的像素的新颜色值是否满足相似性准则。当ICH126中的特定条目满足相似性准则时,编码器114将该特定条目指示为最近使用的(例如通过将特定条目移动到ICH126列表的顶端),并且不插入新颜色值到ICH126中。与移动特定条目到顶端关联地,在特定条目上方(更新)的条目向下移动一个位置。在另一个变形中,编码器114确定ICH126中的现有条目相对于非ICH编码的像素的新颜色值是否满足相似性准则。当ICH126中的特定条目满足相似性准则时,编码器114更新该特定条目的值以对应于新颜色值,并且将该特定条目表示为最近使用的(例如通过移动特定条目到ICH126列表的顶端)。与移动特定条目到顶端关联地,先前在特定条目上面(更新)的条目向下移动一个位置。
当使用ICH编码来编码像素数据时,编码器114保持ICH126。当编码器114使用ICH编码来编码一组时,用于编码输入像素的索引参考ICH126中的条目。当ICH126的条目被引用以及被用于编码输入像素时,编码器114可以将被参考的条目表示为MRU,例如通过将被参考的条目移动到ICH126的顶端并将条目的先前位置之上的其它值向下移动1。编码器114可以针对ICH编码组中的所有条目并行执行该操作,其中一个或多个ICH条目以指定的相对顺序被移动到列表的顶端(例如MRU位置)。组中的最后像素值会变成MRU,例如如果在组中存在多于2个像素,则相同组中下一个较早的像素变成第二MRU等。组的最后一个像素可以在语法描述中被表示最右边的像素。
编码器114可以分配ICH126的特定部分以存储特定像素组的颜色值来代替存储最近使用的颜色值。接下来在图5中提供了32条目ICH126的一个示意图。对于片段的第一行或者图像数据的其它预定部分,编码器114可以例如如上面关于图4中所描述的对用于存储最近使用的颜色值的ICH126的32个条目进行处理。对于第一行片段之后的行,编码器114可以定义一组索引值以存储与所选像素位置有关的颜色值。例如,在当前行之上的行中,可以存在位于当前像素附近(例如距当前像素特定距离内)的像素位置。该组索引值不会被视为根据MRU和LR顺序最近使用的条目。这对不在ICH126中的像素值的高效编码十分有效,并且可以利用一些内容改善编码。
图5示出ICH126的示例性表示500。编码器114可以将ICH126分割成不同的部分,其中特定部分中的条目存储与指定像素组相关联的颜色值。在图5中,编码器114分配ICH126的第一部分作为最近使用的分配502和ICH126的第二部分作为邻近像素分配504。在图5示出的具体示例中,编码器110分配ICH126底部的7个条目作为邻居像素分配504,以存储邻近于当前将要编码的像素组的所选像素的颜色值,即,索引值25-31。编码器114可以在编码器114编码后续像素组时,更新存储在这些邻近像素条目中的颜色值。作为邻近像素分配504中的条目的一个示例,编码器114可以在三个输入像素的当前组之上的行内存储七个像素的颜色值,例如关于当前组中心定位在上方的行中的七个像素。
编码器114可以利用ICH126中的第一“n”(例如在该示例中为25)条目,以实施最近使用的颜色值的有序列表,例如最近使用的分配502的条目对应于图5中ICH126中的索引值00-24。当执行ICH编码时,编码器114可以使用来自最近使用的分配502(例如为索引值00-24的条目)中的索引值或者ICH126的邻近像素分配504(例如为索引值25-31的条目)中的条目的索引值编码像素。
ICH126可以在ICH126的分区部分中存储不同的颜色值。例如,存储在最近使用的分配502中的颜色值可以部分地或全部地不同于存储在邻近像素分配504中的颜色值。在一个实施方式中,当编码器114将像素编码为ICH126的邻近像素分配504中的条目的索引值时,编码器114可以将所指示的邻近像素的颜色值插入到ICH126的最近使用的分配502中以作为MRU颜色值。在另一个实施方式中,当编码器114通过引用ICH126的邻近像素分配504中的索引值编码像素时,编码器114可以放弃插入所指示的邻近像素的颜色值。在这个实施方式中,所指示的邻近像素的颜色值不进入ICH126的最近使用的分配502中。
图6示出了可以实现为编码图像数据的设备100的逻辑600的示例。编码器114可以将逻辑600实现为硬件、软件或者两者,例如软件中的编码指令124。
编码器114可以初始化ICH126(602)。例如,编码器114可以响应于初始化条件初始化ICH126,初始化条件例如为在编码输入图像或者输入图像的特定部分开始时。为了初始化ICH126,编码器114可以填充ICH126的内容或者标记ICH126的条目为无效的或者未使用的。对于另一个变形,编码器114可以通过将ICH126的内容(例如,颜色值)设置为预定的配置来初始化ICH126。编码器可以获得输入数据以编码,例如一组用于编码的输入像素(604)。
编码器114确定是使用ICH编码还是非ICH编码来编码输入像素组(606)。可以通过编码器114根据任意数量的准则逐个组地确定ICH编码,准则包括上述的相似性、估计位成本准则和/或误差准则。例如,编码器114可以在以下情况下使用ICH编码来编码像素组:(i)当针对像素组中的每个像素,ICH126包括具有充分相似颜色值的一个或多个条目,例如颜色值的差异小于差值阈值,以及(ii)当编码组的位数和使用ICH编码的误差的函数输出小于对应的用于编码组的位数和使用非ICH编码的误差的函数输出。
当确定使用ICH编码来编码像素组时,编码器114将像素作为相应的索引值编码到ICH126中(610)。编码器114可以针对将要编码的特定像素,选择ICH126中具有相同或者相似颜色值的条目的索引值,相同或相似颜色值根据相似性准则进行确定。编码器114可以使用固定数量的位以表示编码位流中的索引值。作为一个示例,编码器114可以使用固定数量的位(例如5)来为32条目ICH126编码索引值。在一些变形中,编码器114可以改变或者减少用于表示编码位流中的特定索引值的位数,例如通过利用可变长度编码技术。运行参数127可以指定用于在编码位流中使用索引值编码像素值的语法,以及语法的另外示例包括使用熵编码、向量编码、或者算术编码,以表示在编码位流中ICH126的索引值。
编码器114可以更新ICH126(612),例如以表示用于编码最近使用的像素组所引用的索引值的条目。编码器114可以以任何指定的频率更新ICH126,例如编码每个像素之后、每隔一个像素进行编码之后、每隔三个像素编码之后等。当以所列顺序表实现ICH126时,编码器114可以将被ICH编码的像素引用的条目移动到顺序列表的头部。在一些变形中,当编码器114使用来自ICH126的一部分的索引值编码像素时,其中该部分是为所选择的邻近像素分配的,编码器114会放弃更新ICH126以表示近来使用的邻近像素的颜色值。在其它变形中,编码器114可以以任何指定的频率更新ICH126以表示近来使用的邻近像素的颜色值,指定频率例如为在使用选择的邻近像素编码的每个事件时、在每隔一个该事件、每个第三个该事件等。
编码器114可以为编码位流中的像素组提供ICH编码的指示(614)。编码器114可以通过将ICH编码指示显式地添加在可应用于ICH编码像素组的编码位流中,来在编码的位流中信号通知针对该组使用ICH编码。例如,运行参数127可以指定用于表示针对特定像素组选择ICH编码的语法。
在DSU-VLC编码的背景下,位流将尺寸预测值编码为相对于预测的尺寸值为Δ,以及Δ被编码在单元的前缀中。在该示例性背景中,编码器114可以通过将转义码值编码在该组的前缀(例如用于像素组的Y单元的前缀)中,来指示针对该像素组选择ICH编码。转义值可以来代替Δ尺寸值使用。
作为一种选择,当编码器114使用ICH编码来编码第一像素组时,编码器114可以对跟在第一组之后的第二组像素应用修改的前缀和转义码。例如,编码器114可以定义第二组的第一单元的前缀,以使得特定缩短的前缀码被解释为表示第二组的ICH编码的转义码,以及较长的前缀被解释为表示第二组的非ICH编码的非转义码。在该示例中,编码器114可以将第二组的第一单元的前缀指定为前缀值为0,并被编码为“1”位,以表示使用ICH编码对第二组编码。任何前缀值大于0,例如利用一个或多个“0”位后跟着一个“1”位编码,可以表示第二组使用非ICH编码进行编码。在该示例中,前缀值大于0可以被理解为从前缀值中减1以形成这样一组的前缀值,即,该组不跟在不使用ICH编码的组之后,例如当第一组使用非ICH编码进行编码时。
示意性地,编码器114可以使用非ICH编码来编码紧接在使用ICH编码所编码的先前像素组之后的后续像素组。当先前组没有使用ICH编码进行编码时,编码器114可以确定后续组中具有前缀值等于2的第一单元。然而,当编码器114使用ICH编码来编码先前组时,编码器114可以确定后续像素组第一单元的前缀具有值2+1=3。前缀值3可以被编码为“0001”。前缀值3,大于0,表示前缀值3-1=2不是转义码。因此,当多个连续的像素组使用ICH编码进行编码时,第二以及后续连续ICH编码的块的前缀的位数可以被减小。结果可以减少用于编码图像或者图像的一部分的位的数量。
应用到具有转义码的组的尺寸预测值可以持续直至后续组,在此再次被编码器114应用为预测值。尺寸预测可以持续直至编码器114确定使用DSU-VLC(例如使用非ICH编码)编码后续组,之后,编码器114使用后续组来产生下一个尺寸预测值。
编码器114可以确定使用非ICH编码来编码像素组(616)。在一些变形中,编码器114可以将像素解码为输出位流中的未压缩的颜色或者像素值。编码器114还可以将非ICH编码的像素的颜色值插入到ICH126(618),例如以任何上述的方式。编码器114可以将插入的颜色值指示为最近使用的,并更新ICH126中的其它条目的新近指示,例如通过将旧的条目向下推送至移位寄存器的实施方式。编码器114可以以任何指定的频率执行这些插入和更新,例如编码像素之后、每隔一个像素编码之后、编码组之后,编码多个组之后等。编码器114还可以在编码的位流中对使用非ICH编码编码像素组进行信号通知,例如通过不在编码的位流中增加转义码。编码器114可以继续处理后续像素组(622)。
图7示出了用于图像处理的系统700的示例。在图7中,设备702可以解码图像数据,包括使用ICH编码和非ICH编码而编码的图像数据。在这点上,设备702可以例如通过通信链路706从实现编码器114的设备100接收编码的位流。
在图7示出的示例中,设备702包括通信接口710、系统逻辑712和用户接口716,例如显示器。系统逻辑712可以实现解码器714。在一些实施方式中,系统逻辑712包括一个或多个处理器720和存储器721。存储器721存储例如系统指令722,包括解码指令724、索引颜色历史726、操作参数727、用于解码的数据,例如经编码的像素数据728。在一些实施方式中,设备702在硬件(例如专用的图像处理电路)中实现解码器714和ICH726。
解码器714可以解码先前使用ICH编码或者非ICH编码而编码的图像数据。在这点上,解码器714可以以与编码器114实现和保持ICH126一样的方式实现和保持ICH726。因此,解码器714可以实现上述编码器114的任何功能,但是在一些实施方式中,解码器714可以不实施编码器114用于确定是使用ICH编码还是非ICH编码来编码数据的选择算法或逻辑。
在一些变形中,编码器114和解码器714执行相同或者一致的操作以分别更新ICH126和ICH726。更新可以导致ICH126和ICH726中的条目在解码器714中解码像素和在编码器114中编码像素之后,分别共享一致的属性。一致的属性可以指的是相同属性或者变化不超过指定的距离阈值的属性。一致的属性可以包括共享相同的颜色值、相同的索引值和相同的最近使用的指示值,例如LRU、MRU、计数器值或条目的顺序。
编码器114和解码器714可以根据一致的初始准则分别初始化ICH126和ICH726。编码器114和解码器714可以在确定是否将非ICH编码的像素的颜色值插入到ICH126和726时应用一致的准则,例如通过应用相同的相似性准则。编码器114和解码器714可以使用在保存其相应的ICH条目方面行为一致的内容处理算法,而不需考虑编码器114和解码器714是如何实现的。
尽管系统700示出可以分别实现编码器114和解码器714的分离设备100和702,但是编码器114和解码器714可以利用单个设备来实现。例如,系统逻辑112可以同时实现编码器114和解码器714。
图8示出了可以实现解码图像数据的设备702的逻辑800的示例。解码器714可以将逻辑800实施为硬件、软件或者两者,例如软件如解码指令724。
解码器714可以根据被编码器114应用的一致的初始化准则来初始化ICH726(802)。解码器714可以获得用于解码的数据(804)。在这点上,解码器714可以获得编码器114先前编码的编码位流(例如,压缩的图像数据)。
解码器714确定像素组的图像数据是否使用ICH编码被编码(806)。为此,解码器714可以根据运行参数727对每个组的编码位流进行分析。运行参数727可以指定编码器114使用的一致的或者相同的语法以表示针对像素组使用ICH编码。在这点上,解码器714可以对组的第一单元的前缀进行解码,并响应于在前缀中识别到转义码的来确定像素组使用ICH编码进行编码。
在一些实施方式中,当使用ICH编码对第一组进行编码时,解码器714可以以不同于使用非ICH编码第一组时解码器714将获得的解译的方式,对紧接在该组之后的第一单元的前缀进行解译。例如,解码器714可以确定第二组的第一单元的前缀的前缀值为0,被编码为“1”位,以表示使用ICH编码对第二组进行编码,以及可以确定任何前缀值大于0并利用一个或多个“0”位后跟着一个“1”位编码,以表示使用非ICH编码对第二组进行编码。因此,解码器714可以通过从前缀值中减去1来处理大于0的前缀值,以形成位于使用ICH编码的先前组之后的组的单元的前缀值。
对于使用ICH编码的像素组的图像数据,解码器714可以将像素组的数据解译为ICH727中的索引值。因此,解码器714可以使用索引值解码像素(810),获得通过编码位流中的相应索引值指定的颜色值。解码器714可以将索引值解译为指向ICH726条目的指针,例如指向ICH726的第一部分,其表示最近使用的颜色值或者指向ICH726的第二部分,其被分配用于存储所选择的重建像素的颜色值。所选择的重建像素可以是邻近像素,或者可以相对于当前像素具有其它指定的位置或或关系。解码器714可以以与编码器114一致的方式更新ICH726中的对应条目(812)。
当解码器714确定像素组数据未使用ICH编码进行编码时,解码器714根据非ICH解码方法(814)解码像素数据以重建像素数据。解码器714可以将重建像素的颜色值插入ICH726中(816),在条目中插入和/或代替的方式与编码器114一致。解码器714可以继续解码后续的像素组数据(818)。
上述方法、设备和逻辑(包括编码器114和解码器714)可以在硬件、软件或者硬件和软件两者的许多不同组合中以许多不同的方式实现。例如,系统的全部或者一部分可包括控制器、微处理器或者专用集成电路(ASIC)电路中的电路,或者可利用分立逻辑或者组件或者其它类型的模拟或者数字电路的组合来实现,合并在单个集成电路上或者分布于多个集成电路之间。上述逻辑的全部或者一部分可实现为由处理器、控制器或者其它处理设备执行的指令,并且可存储于有形或者非易失性机器可读或者计算机可读介质中,诸如闪存、随机存取存储器(RAM)或者只读存储器(ROM)、可擦除可编程只读存储器(EPROM)或者其它机器可读介质(诸如光盘只读存储器(CDROM)或者磁盘或光盘)。因此,产品(诸如计算机程序产品)可包括存储介质以及存储于介质上的计算机可读指令,当在端设备、计算机系统或者其它设备中执行这些计算机可读指令时,这些计算机可读指令使得设备执行根据以上任何描述的操作。
编码器114或者解码器714的处理能力可分布于多个系统组件之间,诸如多个处理器和存储器之间,可选地包括多个分布式处理系统。参数、数据库和其它数据结构可被分离地存储和管理,可结合入单个存储器或者数据库中,可以以多种方式进行逻辑上和物理上组织,并且可以多种方式实现,包括诸如链接表、哈希表或者隐式存储机制的数据结构。程序可以是单个程序的一部分(例如子例程)、跨多个存储器和处理器分布的独立的程序,或者以多种不同方式实现,诸如以诸如共享库(例如,动态链接库(DLL))的库来实现。例如,DLL可存储执行上述系统处理中任一个的代码。
已经具体地描述了各种实施方式。然而,许多其它的实施方式同样是可行的。

Claims (20)

1.一种用于图像译码的系统,包括:
存储器,存储:
索引颜色历史,所述索引颜色历史包括存储先前编码像素的颜色值的条目;
与所述存储器通信的编码电路,所述编码电路被配置为:
获得用于编码的当前像素;
通过比较所述当前像素的颜色值和所述先前编码像素的颜色值,确定是否使用所述索引颜色历史编码所述当前像素;
以及
当确定使用所述索引颜色历史编码所述当前像素时:
将所述像素作为索引值编码到所述索引颜色历史中。
2.根据权利要求1所述的系统,其中,所述编码电路被配置为当所述当前像素的颜色值相对于所述先前编码像素的颜色值满足相似性准则时,确定使用所述索引颜色历史编码所述当前像素。
3.根据权利要求2所述的系统,其中,当所述当前像素的颜色值与所述先前编码像素的颜色值相同时,满足所述相似性准则。
4.根据权利要求2所述的系统,其中,当所述当前像素的颜色值的成分值与所述先前编码像素的颜色值的对应成分值的区别在差值阈值内时,满足所述相似性准则。
5.根据权利要求2所述的系统,其中,当所述当前像素的颜色值与所述先前编码像素的颜色值的区别在差值阈值内时,满足所述相似性准则。
6.根据权利要求5所述的系统,其中,所述编码电路进一步被配置为:
访问所述当前像素的量化参数;以及
将所述差值阈值确定为所述当前像素的所述量化参数的函数。
7.根据权利要求6所述的系统,其中,所述编码电路被配置为将所述差值阈值确定为所述当前像素的所述量化参数的最大量化误差。
8.根据权利要求6所述的系统,其中,所述编码电路被配置为:
当基于所述当前像素的所述量化参数的最大量化误差不超过误差阈值时,将所述差值阈值确定为所述最大量化误差;以及
当所述最大量化误差超过所述误差阈值时,将所述差值阈值确定为小于所述当前像素的所述量化参数的所述最大量化误差的值。
9.根据权利要求1所述的系统,其中,所述编码电路进一步被配置为在编码位流中以显式方式信号通知所述当前像素已经作为所述索引值被编码到所述索引颜色历史中。
10.根据权利要求1所述的系统,其中,所述编码电路进一步被配置为:
当存储在所述索引颜色历史中的颜色值相对于所述当前像素的颜色值均不满足相似性准则时,确定不使用所述索引颜色历史对所述当前像素进行编码;以及
在不参考所述索引颜色历史的情况下编码所述当前像素。
11.根据权利要求10所述的系统,其中,所述编码电路进一步被配置为:
当确定不使用所述索引颜色历史编码所述当前像素时:
将所述当前像素的颜色值插入所述索引颜色历史中;以及
将所述当前像素的颜色值指示为最近使用的颜色值。
12.根据权利要求11所述的系统,其中,所述编码电路进一步被配置为通过从所述索引颜色历史中去除最近最久未使用的颜色值,将所述当前像素的颜色值插入到所述索引颜色历史中。
13.一种用于图像译码的方法,包括:
获得当前像素的图像数据,所述图像数据包括所述当前像素的颜色值;
当在以下情况下,确定通过参考索引颜色历史编码所述当前像素:
所述索引颜色历史包括存储先前编码像素的颜色值的历史条目,所述先前编码像素的颜色值相对于所述当前像素的颜色值满足相似性准则;以及
通过参考所述索引颜色历史编码所述当前像素的位长度的函数值小于使用不同编码方法编码所述当前像素的位长度的函数值;以及
通过参考所述索引颜色历史中的所述历史条目编码所述当前像素。
14.根据权利要求13所述的方法,其中,通过参考所述历史条目编码所述当前像素包括将所述当前像素编码为对应于所述历史条目的索引值。
15.根据权利要求13所述的方法,还包括保持所述索引颜色历史以指示所述历史条目是所述索引颜色历史的最近使用的条目。
16.根据权利要求13所述的方法,还包括:
在编码位流中信号通知所述当前像素是通过参考所述索引颜色历史被编码的。
17.根据权利要求16所述的方法,其中,所述信号通知包括将转义码编码到与所述当前像素对应的前缀中。
18.一种用于图像译码的方法,包括:
获得用于编码的当前像素;
访问索引颜色历史以确定所述索引颜色历史中的条目是否存储有先前编码像素的颜色值,其中所述先前编码像素的颜色值满足至少一个准则,所述至少一个准则包括所述先前编码像素的颜色值相对于所述当前像素的颜色值的相似性准则;以及
当所述索引颜色历史包括满足所述至少一个准则的条目时:
将所述像素作为索引值编码至条目;以及
当所述索引颜色历史不包括满足所述相似性准则的条目时:
在不参考所述索引颜色历史的情况下编码所述像素。
19.根据权利要求18所述的方法,其进一步包括:
确定所述索引颜色历史包括存储有满足所述相似性准则的颜色值的多个条目,以及对此响应地:
选择所述多个条目中的一个条目的索引值作为编码所述像素的索引值。
20.根据权利要求19所述的方法,其中选择所述多个条目中的一个条目的所述索引值包括:
识别所述多个条目中的哪个条目具有的颜色值具有颜色成分的绝对差的最小之和。
CN201410073689.0A 2013-02-28 2014-02-28 图像编码中的索引颜色历史 Active CN104023235B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201361770979P 2013-02-28 2013-02-28
US61/770,979 2013-02-28
US14/182,172 US9363517B2 (en) 2013-02-28 2014-02-17 Indexed color history in image coding
US14/182,172 2014-02-17

Publications (2)

Publication Number Publication Date
CN104023235A CN104023235A (zh) 2014-09-03
CN104023235B true CN104023235B (zh) 2017-12-26

Family

ID=51388227

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410073689.0A Active CN104023235B (zh) 2013-02-28 2014-02-28 图像编码中的索引颜色历史

Country Status (2)

Country Link
US (2) US9363517B2 (zh)
CN (1) CN104023235B (zh)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102577379B (zh) 2009-10-05 2017-12-19 汤姆逊许可证公司 用于视频编码和译码中的嵌入量化参数调节的方法和装置
BR112016012417B1 (pt) 2013-12-18 2023-04-11 Hfi Innovation Inc Método e aparelho para inicialização e gerenciamento de paleta
CN110225345B (zh) 2013-12-27 2022-07-19 寰发股份有限公司 用于主颜色索引图编码的方法及装置
CN105981388B (zh) 2013-12-27 2019-05-10 寰发股份有限公司 调色板编码中句法冗余移除的方法和装置
US10182242B2 (en) * 2013-12-27 2019-01-15 Mediatek Inc. Method and apparatus for palette coding with cross block prediction
WO2015103980A1 (en) 2014-01-07 2015-07-16 Mediatek Inc. Method and apparatus for color index prediction
KR102324004B1 (ko) * 2014-03-14 2021-11-09 브이아이디 스케일, 인크. 스크린 콘텐츠 코딩을 위한 팔레트 코딩
US9843816B2 (en) * 2014-04-21 2017-12-12 Qualcomm Incorporated System and method for coding in pattern mode for display stream compression (DSC)
WO2016029419A1 (zh) * 2014-08-29 2016-03-03 富士通株式会社 图像编码方法、装置以及图像处理设备
WO2016029420A1 (zh) * 2014-08-29 2016-03-03 富士通株式会社 基于调色板的图像编码方法、装置以及图像处理设备
CN105491384A (zh) * 2014-10-06 2016-04-13 财团法人工业技术研究院 调色板编码方法与解码方法以及电子装置
TWI577177B (zh) * 2014-10-06 2017-04-01 財團法人工業技術研究院 調色板編碼方法與解碼方法以及電子裝置
WO2016106554A1 (zh) * 2014-12-30 2016-07-07 富士通株式会社 图像编码方法、装置以及图像处理设备
US9729885B2 (en) * 2015-02-11 2017-08-08 Futurewei Technologies, Inc. Apparatus and method for compressing color index map
JP6545570B2 (ja) 2015-08-18 2019-07-17 株式会社東芝 符号化装置、復号装置および画像処理装置
US10097842B2 (en) * 2015-09-18 2018-10-09 Qualcomm Incorporated Restriction of escape pixel signaled values in palette mode video coding
WO2018054570A1 (en) * 2016-09-23 2018-03-29 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Image compression technique
US10523956B2 (en) 2016-11-16 2019-12-31 Citrix Systems, Inc. Multi-pixel caching scheme for lossless encoding
US10368079B2 (en) 2017-03-31 2019-07-30 Ati Technologies Ulc Method and apparatus for image compression that employs multiple indexed color history buffers
US11695919B2 (en) 2018-08-28 2023-07-04 Google Llc Lossy image compression using palettization of locally mixed colors
US10848787B2 (en) 2018-08-28 2020-11-24 Google Llc Lossy image compression using palettization of locally mixed colors
CN109376592B (zh) * 2018-09-10 2021-04-27 创新先进技术有限公司 活体检测方法、装置和计算机可读存储介质
CN109819254B (zh) * 2019-01-31 2022-05-03 深圳市战音科技有限公司 一种有损的图像压缩传输方法和系统
CN112073726B (zh) * 2020-09-11 2022-07-08 Oppo广东移动通信有限公司 压缩方法及装置、计算机可读存储介质及电子设备
US11770535B2 (en) * 2021-02-19 2023-09-26 Samsung Display Co., Ltd. Systems and methods for joint color channel entropy encoding with positive reconstruction error
WO2024011370A1 (zh) * 2022-07-11 2024-01-18 Oppo广东移动通信有限公司 视频图像处理方法及装置、编解码器、码流、存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102075752A (zh) * 2011-01-11 2011-05-25 北京北纬点易信息技术有限公司 嵌入式系统的图像编码、解码方法和装置

Family Cites Families (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0395394B1 (en) * 1989-04-26 1995-06-28 Canon Kabushiki Kaisha Image encoding method
DE69225621T2 (de) 1991-01-17 1998-11-12 Mitsubishi Electric Corp Vorrichtung zur Kodierung eines Videosignals
JP3749752B2 (ja) 1995-03-24 2006-03-01 アイティーティー・マニュファクチャリング・エンタープライジズ・インコーポレーテッド ブロック適応型差分パルスコード変調システム
US6621934B1 (en) 1996-12-17 2003-09-16 Thomson Licensing S.A. Memory efficient compression apparatus in an image processing system
KR19980054467A (ko) 1996-12-27 1998-09-25 김영환 데시메이션(Decimation) 필터
JPH11161782A (ja) * 1997-11-27 1999-06-18 Seiko Epson Corp カラー画像の符号化方法およびその符号化装置ならびにカラー画像の復号化方法およびその復号化装置
JP3413721B2 (ja) 1998-06-26 2003-06-09 ソニー株式会社 画像符号化方法及び装置、並びに画像復号方法及び装置
US6853385B1 (en) 1999-11-09 2005-02-08 Broadcom Corporation Video, audio and graphics decode, composite and display system
US7649947B2 (en) 2001-06-05 2010-01-19 Qualcomm Incorporated Selective chrominance decimation for digital images
GB2387056A (en) 2002-03-28 2003-10-01 Sony Uk Ltd Differential encoding and decoding
KR20050012809A (ko) 2002-06-18 2005-02-02 코닌클리케 필립스 일렉트로닉스 엔.브이. 비디오 인코딩 방법과 대응 인코딩 및 디코딩 장치들
JP4617644B2 (ja) 2003-07-18 2011-01-26 ソニー株式会社 符号化装置及び方法
US7383180B2 (en) 2003-07-18 2008-06-03 Microsoft Corporation Constant bitrate media encoding techniques
US8582659B2 (en) 2003-09-07 2013-11-12 Microsoft Corporation Determining a decoding time stamp from buffer fullness
US7697608B2 (en) 2004-02-03 2010-04-13 Sony Corporation Scalable MPEG video/macro block rate control
JP4532980B2 (ja) 2004-05-12 2010-08-25 キヤノン株式会社 動画像符号化装置及び方法、並びにコンピュータプログラム及びコンピュータ可読記憶媒体
US20060227870A1 (en) 2005-03-10 2006-10-12 Tao Tian Context-adaptive bandwidth adjustment in video rate control
CN101156453B (zh) 2005-04-05 2012-07-18 汤姆森许可贸易公司 局部调整量化阶的方法和编码图像序列的方法和设备
JP2007020036A (ja) 2005-07-11 2007-01-25 Toshiba Corp 画像送信装置および画像受信装置
JP2007089035A (ja) 2005-09-26 2007-04-05 Toshiba Corp 動画像符号化方法、装置及びプログラム
JP4618436B2 (ja) * 2006-02-10 2011-01-26 富士ゼロックス株式会社 符号化装置、復号化装置、符号化方法、復号化方法、及びプログラム
US7995649B2 (en) 2006-04-07 2011-08-09 Microsoft Corporation Quantization adjustment based on texture level
US8077775B2 (en) 2006-05-12 2011-12-13 Freescale Semiconductor, Inc. System and method of adaptive rate control for a video encoder
CN101444103B (zh) 2006-05-17 2013-04-17 富士通株式会社 图像压缩装置、压缩方法、以及图像恢复装置、恢复方法
EP2448269A1 (en) 2006-10-10 2012-05-02 Nippon Telegraph And Telephone Corporation Video encoding method and decoding method, apparatuses therefor, programs therefor, and storage media for recording the programs
US8121403B2 (en) 2007-10-30 2012-02-21 Sharp Laboratories Of America, Inc. Methods and systems for glyph-pixel selection
US8406314B2 (en) 2007-11-28 2013-03-26 Sharp Laboratories Of America, Inc. Two-dimensional DPCM with PCM escape mode
US8953673B2 (en) 2008-02-29 2015-02-10 Microsoft Corporation Scalable video coding and decoding with sample bit depth and chroma high-pass residual layers
US20090310672A1 (en) 2008-06-13 2009-12-17 W&W Communications, Inc. Method and System for Rate Control in a Video Encoder
JPWO2010092740A1 (ja) 2009-02-10 2012-08-16 パナソニック株式会社 画像処理装置、画像処理方法、プログラムおよび集積回路
JP5334070B2 (ja) 2009-02-13 2013-11-06 ブラックベリー リミテッド 画像処理における均衡ピクセル領域ひずみ分布を有する適合量子化
US9774875B2 (en) 2009-03-10 2017-09-26 Avago Technologies General Ip (Singapore) Pte. Ltd. Lossless and near-lossless image compression
US8599214B1 (en) * 2009-03-20 2013-12-03 Teradici Corporation Image compression method using dynamic color index
US20100296579A1 (en) 2009-05-22 2010-11-25 Qualcomm Incorporated Adaptive picture type decision for video coding
US20110255589A1 (en) 2009-08-03 2011-10-20 Droplet Technology, Inc. Methods of compressing data and methods of assessing the same
CN102577379B (zh) 2009-10-05 2017-12-19 汤姆逊许可证公司 用于视频编码和译码中的嵌入量化参数调节的方法和装置
EP2364031A1 (en) 2010-03-01 2011-09-07 Telefonaktiebolaget L M Ericsson (Publ) Compression coding and compression decoding of video signals
US20110310967A1 (en) 2010-06-22 2011-12-22 Lei Zhang Method and System for Video and Image Coding Using Pattern Matching for Intra-Prediction
JP5529685B2 (ja) 2010-09-03 2014-06-25 パナソニック株式会社 画像符号化方法、画像復号化方法、画像符号化装置及び画像復号化装置
US8792550B2 (en) 2011-08-04 2014-07-29 Qualcomm Incorporated Color/gray patch prevention for video coding

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102075752A (zh) * 2011-01-11 2011-05-25 北京北纬点易信息技术有限公司 嵌入式系统的图像编码、解码方法和装置

Also Published As

Publication number Publication date
US9363517B2 (en) 2016-06-07
US20160269755A1 (en) 2016-09-15
US20140241630A1 (en) 2014-08-28
US9906817B2 (en) 2018-02-27
CN104023235A (zh) 2014-09-03

Similar Documents

Publication Publication Date Title
CN104023235B (zh) 图像编码中的索引颜色历史
CN101908035B (zh) 视频编解码方法、gpu及其与cpu的交互方法及系统
US8615138B2 (en) Image compression using sub-resolution images
CN101919250B (zh) 压缩多个像素块的方法和压缩器、以及对压缩像素块进行解压的方法和解压器
CN110024393A (zh) 用于视频译码的低复杂度符号预测
CN106412579B (zh) 一种图像的编码、解码方法和装置
CN102740068B (zh) 图像存储器压缩方法与装置
CN105933708B (zh) 一种数据压缩和解压缩的方法和装置
CN103581679B (zh) 解码行程编码数据的解码器和方法
CN105814891A (zh) 用于在调色板编码模式中对调色板进行编码或解码的方法和设备
CN104704825A (zh) 分段图像数据的无损压缩
CN109618157A (zh) 一种视频显示流压缩编码的硬件实现系统及方法
CN105960803A (zh) 递归块分区
CN106030652A (zh) 针对频繁变化区域避免使用帧缓冲器显示输出面的方法和设备
CN107820091B (zh) 一种图片处理方法、系统及一种图片处理设备
JP2014087058A (ja) エンコーダ,デコーダおよびその方法
KR102231975B1 (ko) 순방향 변환 행렬을 사용하여 비디오 인코더에 의해 순방향 변환을 수행하는 기술
Zhou et al. An efficient fractal image coding algorithm using unified feature and DCT
CN117097906B (zh) 一种区域医疗资源高效利用的方法及系统
CN110324668A (zh) 图像块编码中的变换方法、解码中的反变换方法及装置
CN115662346B (zh) Demura补偿值压缩方法和系统
US10559093B2 (en) Selecting encoding options
CN113473140B (zh) 脑神经图像的有损压缩方法、系统、设备与存储介质
Pratapa et al. TexNN: Fast texture encoding using neural networks
CN106559675A (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1197509

Country of ref document: HK

TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20170309

Address after: Singapore Singapore

Applicant after: Avago Technologies Fiber IP Singapore Pte. Ltd.

Address before: American California

Applicant before: Zyray Wireless Inc.

GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20181019

Address after: Singapore Singapore

Patentee after: Annwa high tech Limited by Share Ltd

Address before: Singapore Singapore

Patentee before: Avago Technologies Fiber IP Singapore Pte. Ltd.

REG Reference to a national code

Ref country code: HK

Ref legal event code: WD

Ref document number: 1197509

Country of ref document: HK