有界率近无损和无损图像压缩的制作方法
【专利说明】
[0001] 相关申请的交叉引用
[0002] 本申请要求于2012年10月3日提交的美国临时申请序号61/709,316W及 于2013年10月2日提交的题为"BoundedRateNear-LosslessAndLosslessImage Compression"的美国申请号14/044,627的优先权,该两个申请的全文通过引用结合于此。
技术领域
[0003] 本公开设及图像处理。本公开还设及用于图像传输和显示的压缩和解压缩技术。
【背景技术】
[0004] 巨大的客户需求促使了显示器技术、图像分析算法W及通信技术的高速发展和复 杂图像显示装置的广泛应用。仅举几例,该种装置的范围从驱动家庭影院的高分辨率显示 器的DVD和藍光播放器到也具有非常高的分辨率显示器的现在普遍存在的智能电话和平 板电脑。图像处理技术的提高继续扩大该些装置的功能。
【附图说明】
[0005] 图1示出了源(source)将编码数据传送给接收器(sink)的一个实例架构。
[0006] 图2为编码器的一个实例。
[0007] 图3示出了并行处理架构。
[000引图4示出了预测器和量化器的一个实例。
[0009] 图5示出了实例样本位置。
[0010] 图6示出了压缩样本的编码格式的实例。
[0011] 图7示出了虚拟缓冲模型的一个实例。
[0012] 图8示出了一个实例解码器。
[0013] 图9示出了编码的实例逻辑。
[0014] 图10示出了解码的实例逻辑。
[0015] 图11示出了一个实例编码和解码系统。
[0016] 图12示出了图片和图片参数集的一个实例。
[0017] 图13示出了编码器的另一个实例。
[001引图14示出了解码器的另一个实例。
[0019] 图15示出了块捜索的样本组。
[0020] 图16示出了索引颜色历史的实例。
[0021] 图17示出了使用子流多路复用的切片的一部分的实例。
[0022] 图18示出了子流多路分解逻辑的实例。
[0023] 图19示出了子流多路复用逻辑的一个实例。
[0024] 图20示出了切片定时和延迟的一个实例。
[0025] 图21示出了形成9x1SAD的3x1部分SAD的实例。
[0026] 图22示出了用于编码器平坦度检查的原始像素的实例。
[0027] 图23示出了显示系统的实例。
[002引图24示出了编码器的实例。
[0029] 图25示出了用于动态调整由编码器、解码器或该两者使用的速率控制参数的系 统的实例。
[0030] 图26示出了忙碌像素区域与光滑像素区域相邻的图像内容的一个实例。
[0031] 图27示出了单元重排过程的实例。
【具体实施方式】
[0032] 图1示出了源150通过通信链路154与接收器152通信的一个实例架构100。源 150或接收器152可W存在于操控图像数据的任意装置内,例如,DVD或藍光播放器、智能电 话、平板电脑或任意其他装置。源150可W包括保持虚拟缓冲器114的编码器104。接收器 152可W包括解码器106、存储器108W及显示器110。编码器104接收源数据112 (例如, 源图像数据),并且可W保持预定容量的虚拟缓冲器114,W模制或模拟临时储存压缩输出 数据的物理缓冲器。编码器104还可W评估编码符号,W通过预定的比特率进行传输。编 码器104可W指定比特率,仅举两例,W每个像素的比特为单位或者W每个时间单位的比 特为单位。
[0033] 例如,通过保持用于编码的比特数减去输出的比特数的累计计数,编码器104可 W确定比特率。虽然编码器104可W在将编码数据116传输给存储器108之前,使用虚拟缓 冲器114来模制数据的缓冲,但是预定容量的虚拟缓冲器和输出比特率不必等于编码器内 的任何缓冲器的实际容量或者实际输出比特率。而且,编码器104可W响应于虚拟缓冲器 的充溢度或空虚度,调整用于编码的量化步长。下面,描述示例性编码器104和编码器104 的操作。
[0034] 解码器106可W从存储器108中获得编码数据116。而且,解码器106可W确定预 定的虚拟缓冲器的容量和比特率,并且可W确定编码器104用于编码该编码数据116的量 化步长。在解码器106将编码数据116解码时,解码器106还可W确定虚拟缓冲器114的 充溢度或空虚度,并且调整用于解码的量化步长。目P,解码器106可W跟踪编码器104的操 作,并且确定编码器104所使用的量化步长。解码器106对编码数据116解码,并且将视频 数据118提供给显示器110。在一些实施方式中,在编码数据116内没有量化步长,节省了 大量带宽。下面描述解码器106和编码器104的实例及其操作。
[0035] 存储器108可W实施为静态随机存取存储器(SRAM)、动态RAM值RAM)、固态驱动器 (SSD)、硬盘或其他类型的存储器。显示链路154可W是无线或有线连接或有线和无线连接 的组合。编码器104、解码器106、存储器108W及显示器110可W存在于单个装置(例如, 智能电话)内。或者,编码器104、解码器106、存储器108W及显示器110的任意子集可W 存在于给定的装置内。例如,藍光播放器可W包括解码器106和存储器108,并且显示器110 可W是与藍光播放器进行通信的分体显示器。
[0036] 图2示出了编码器200的实例。编码器200对视频数据202编码。例如,视频数 据202可W采用一系列连续帖202,…,202-X的形式。帖202,…,202-X可W采用像素分 量的二维矩阵的形式,可W在任意颜色空间内表示该形式,例如,红/绿/藍(RGB)、YUV、亮 度Y/色度藍色Cb/色度红色化(YCb化)、亮度Y/色度澄色/色度绿色(YCoCg)、a、红色、 绿色、藍色(ARGB)或其他颜色空间。每个像素分量可W与空间位置对应。虽然矩阵可W重 叠,W形成图片,但是在矩阵内的每个像素分量不必与在其他矩阵内的像素分量共同定位。
[0037] 可W使用包括预定数量的比特(例如,每个像素分量具有8、10或12比特)的值, 编码每个像素分量。作为实例,编码可W使用10比特YCb化4:2:2、8比特YCb化4:2:2、10 比特YCbCr4:4:4、8比特YCbCr4:4:4、8比特ARGB32或8比特RGB24编码。编码器200 可W按照光栅扫描顺序接收帖的像素分量:从左到右、从上到下。在某些实现方式中,视频 编码器200可预定速率接收像素分量。预定速率可W与每秒显示速率的实时帖对应。 [003引视频编码器200可W包括输入、预测器&量化器204、映射和可变长度编码器 (化0 206、速率控制器208、速率缓冲器210W及存储器(例如,DRAM) 212。视频编码器200 接收和编码像素分量。虽然表示进入视频编码器200内的像素分量的比特数可W恒定(每 个像素分量),但是表示每个编码的像素的比特数可W显著改变。编码器200可W通过减小 量化步长来增大表示编码像素的比特数,或者通过增加量化步长来减少比特数。
[0039] 输入、预测器&量化器204预测并且量化像素分量,产生量化残差。在某些实现方 式中,输入、预测器&量化器204可W由相同帖(例如,202-0)内的先前编码并且重构的像 素分量预测像素分量。映射器和可变长度编码器206编码量化残差,产生编码比特。
[0040] 输入、预测器&量化器204可W使用预定的初始量化步长来量化预定量的数据,例 如,视频像素数据。映射和可变长度编码器206向速率控制器208发信号,该速率控制器反 过来指导输入、预测器&量化器204递增、递减或不改变量化参数,在下面更详细地进行描 述。
[0041] 映射和可变长度编码器206可W使用其自然数2的补码的二进制值编码量化的样 本值。映射和可变长度编码器206用于编码每个值的比特数量可W由相同像素分量的编码 值和与每单位样本相关联的前缀值的最近历史的组合动态地确定。
[0042] 速率控制器208确定递增、递减还是不改变量化参数。速率控制器208可W执行 量化步长分析,例如,通过模拟或模制W预定比特率评估的预定容量的缓冲器。模制的缓冲 器可W称为虚拟缓冲器。如果虚拟缓冲器变满,那么速率控制器208可W增大或递增量化 步长。如果虚拟缓冲器变空,那么速率控制器208可W减小或递减量化步长。下面相对于 切片的速率控制,描述其进一步的方面。
[0043] 速率控制器208可W确