用于由光栅和由宏块存取的图像数据编码的制作方法
【专利说明】
[0001] 相关申请
[0002] 本申请要求于2013年2月1日提交的第61/759, 805号美国临时专利申请的权益, 该美国临时专利申请通过引用并入本文。
技术领域
[0003] 在本文中所描述的技术对图像或者视频帧的像素数据进行编码以支持对于在计 算系统中捕捉、处理、存储或显示的图像数据的多个存取模式,包括以光栅和宏块格式的存 取。
【背景技术】
[0004] 在目前的(2013年)成像应用中,通常期望在移动、便携式和固定式设备中捕捉、 处理、显示和存储图像。在图像和视频处理期间捕捉的惊人数量的像素可以在这样的设备 中产生对于系统速度和性能的瓶颈。在成像应用中,至少两个存取模式是常见的:基于光栅 的存取(沿着图像帧的相继水平行或者光栅存取顺序像素)和基于模块的(存取像素的方 形【或者矩形】子集,其中整个图像帧平铺有方形【或者矩形】)。使用诸如MPEG2和H. 264 之类的标准视频压缩算法对图像帧的压缩以附加的计算和参考帧存储(之前解码的图像 帧)为代价减少了这些瓶颈。在视频应用中,如果使用对参考帧内的宏块的无损或者有损 压缩来减少存储器容量要求和减少存储器存取时间,将期望的是这样的宏块编码是在计算 上有效的,以便最小化对于计算资源的需求。将进一步期望的是宏块编码方法支持基于光 栅和基于模块的存取模式二者。
[0005] 成像系统在使用微处理器、计算机和专门的集成电路(称作片上系统(SoC)或者 专用集成电路(ASIC))的消费者应用和工业应用二者中是普遍存在的。这样的成像系统可 以在个人计算机、膝上型计算机、平板电脑和智能电话中;在电视、卫星和有线电视系统、以 及机顶盒(STB)中;以及在工业成像系统中找到,该工业成像系统包括用于从如工厂、办公 楼和几何区域(诸如当无人驾驶飞行棋或卫星执行侦察时)一样的被监视的系统捕捉视频 的一个或多个照相机和网络。这样的成像和视频视同通常捕捉来自需要基于光栅的存取的 图像传感器的图像数据的帧。类似地,这样的成像和视频系统典型地使用监视器或者显示 器,用户在监视器或显示器上查看捕捉的静态图像或视频。因为数字视频系统需要每秒对 几十甚至上百兆字节(MByte)进行存储器存取以用于记录或者回放,所以包括活动图像专 家组(MPEG和MPEG2)、ITU H. 264和新的H. 265 (高效视频编解码)的几代视频压缩标准 被开发以减小视频记录和回放的存储器带宽和容量要求。这些视频处理标准通过采用在相 继帧之间的像素相似性取得了在10:1和50:1之间的压缩比。当前的帧中的许多像素可以 与之前的帧中的对应像素相同或者仅在水平和/或垂直方向上略微漂移。前述图像压缩标 准通过比较当前的图像帧的子集(典型地称为宏块或者MacBlk)与一个或多个之前的帧 中的同等尺寸的子集的相似性的区域进行操作。宏块是用于视频编解码过程中的许多预测 和运动估计技术的基本元件。在该文档的其余部分中,我们使用用于术语"宏块"的缩写词 "MacBlk"来将其与用于术语"兆字节"(106个字节)的缩写词"MByte"区分。搜索并且随后 确定类似的宏块的位置的编码过程通常称作运动估计(ME)。从先前的帧检索宏块而创建用 于当前的帧的宏块的解码过程通常称作运动补偿(MC)。ME和MC过程二者典型地存取来自 16 X 16像素的宏块中的先前的帧的像素。在编码和解码二者期间,其宏块被搜索(编码) 或者用作参考(解码)的先前的视频帧被称作参考帧。截至目前(2013年),ME和MC过程 存取主存储器中的未压缩的宏块(成块的参考帧),也称作动态随机存取存储器(DRAM)或 双倍数据速率(DDR)存储器。
[0006] 尤其是在移动和便携式设备中,其中由于电池限制而使得仅有限的功率量是可用 的,期望的是使用尽可能少的功率用于视频记录和回放。当ME过程存取存储于芯片外DDR 存储器中的参考帧中的宏块时在视频编码期间,以及当MC过程存取存储于芯片外DDR存储 器中的参考帧中的宏块时在视频解码期间,消耗显著(>30%)的功率量。在目前的便携式 计算机、平板电脑和智能电话中,视频编码和解码过程通常由多芯集成电路(1C)中的一个 或多个芯精心安排。
[0007] 本说明书描述了用于以用户可编程方式执行对参考帧宏块的低复杂度编码的存 取编码器,该用户可编程方式支持基于光栅和宏块二者的存取。在来自参考帧的宏块被写 入到DDR存储器时,它们根据用户选择的参数被编码,该参数诸如期望的编码比或者期望 的图像质量(可选地包括无损压缩)。类似地,在来自参考帧的经编码的宏块被从芯片外 DDR存储器读出时,它们根据在先前的宏块编码期间选择或者计算的参数被解码。存取编码 器以支持基于光栅的存取和基于宏块的存取二者的方式组织像素数据。在先前的视频处理 系统中,诸如换位之类的附加步骤典型地需要在参考帧中的经解码的宏块(为了方便标准 视频编码和解码而以宏块存取模式被存储)和基于光栅的存取之间转换,该基于光栅的存 取是图像传感器和图像显示器和监视器优选的。在本文中所描述的存取编码器并不需要这 些步骤。
[0008] 共同拥有的专利的申请描述了可用于固定点或整数、数值数据的表示或信号样本 的多种压缩技术。这些包括1998年11月17日公布的、Wegener的、名称为"Lossless and loss-limited Compression of Sampled Data Signals" 的 US 5,839,100( ' 100 专利)〇 通过引用并入本文的、2006年3月7日公布的、Wegener的、名称为"Adaptive Compression and Decompression of Bandlimited Signals" 的共同拥有的美国专利 7, 009, 533( '533 专利)描述了基于信号数据特性和用于压缩的相关信号特性的测量可配置的压缩算法。通 过引用并入本文的、2011年4月28日公布的、Wegener的、名称为"Block Floating-point Compression of Signal Data"的共同拥有的美国专利8,301,803( '803专利)描述了 用于整数样本的块浮点编码器和解码器。通过引用并入本文的、2012年6月27日提交 的、Wegener 的、名称为"Computationally Efficient Compression of Floating-Point Data"的共同拥有的美国专利申请号13/534,330( '330申请)描述了用于通过处理浮点 格式的指数值和尾数值来直接压缩浮点数据的算法。通过引用并入本文的、2012年9月 14 日提交的、Wegener 的、名称为"Conversion and Compression of Floating-Point and Integer Data"的共同拥有的专利申请号13/617,061( '061申请)描述了用于将浮点数据 转换成整数数据并且压缩整数数据的算法。
[0009] 通过引用并入本文的、Wegener 的、名称为 "Data Compression for Direct Memory Access Transfers"的、2012年9月14日提交的共同拥有的专利申请号 13/617, 205( '205申请)描述了提供用于数据和参数的直接存储器存取(DMA)转移的压 缩,以用于经由DMA描述符压缩。通过引用并入本文的、Wegener的、名称为"Processing System and Method Including Data Compression API"的、2012 年 9 月 14 日提交的共同 拥有的专利申请号13/616, 898( '898申请)描述了应用程序接口(API),包括操作和用于 操作的参数,该应用程序接口提供数据压缩和解压缩连同用于移动存储器系统的存储器元 件之间的数据的过程。
[0010]通过引用并入本文的、Wegener 的、名称为"Raw Format Image Data Processing" 的、2012年1月12日提交的共同拥有的专利申请号13/358,511 ( '511申请)描述了在图 像捕捉期间的图像传感器光栅的编码,以及在使用诸如JPEG或者JPEG200之类的标准图像 压缩算法的图像压缩期间经编码的光栅的后续使用。
[0011] 为了在视频捕捉、处理和显示期间更好地满足宏块存取要求,并且为了在基于光 栅和基于模块的存取二者期间减小存储器利用和复杂度,存在对于灵活的、在计算上有效 的宏块编码和解码方法的需要,该方法支持光栅和宏块存取模式二者。
【发明内容】
[0012] 在一个实施例中,在本文中所描述的存取编码器被应用于未编码的和之前解码的 图像数据,该图像数据被组织为宏块。存取编码器将用于以支持光栅和宏块存取二者的顺 序存储在存储器中的宏块编码成被存储的、经编码的宏块。补充位置信息也被存储以用于 检索宏块或者光栅格式的图像数据的期望部分,以用于进一步的处理或者显示。在一个方 面中,用于图像数据的宏块编码和解码可以使用计算机系统的资源来实施。
[0013] 本发明的其它方面和优点通过查看接下来的附图、【具体实施方式】和权利要求书可 以看到。
【附图说明】
[0014] 图1是根据优选实施例的包括存取编码器和解码器的计算系统的框图,该计算机 系统捕捉、处理、存储和显示数字图像数据。
[0015] 图2图示出像素的帧的示例。
[0016] 图3图示出通过光栅组织的像素的帧的示例。
[0017] 图4图示出通过宏块组织的像素的帧的示例。
[0018] 图5图示出宏块的分区的示例。
[0019] 图6示出了根据优选实施例的用于经编码的参考帧的DDR页面的数目的示例。
[0020] 图7示出了用于各种压缩比的DDR存取时间的示例。
[0021] 图8图示出使用指针目录的宏块存取的示例。
[0022] 图9图示出将像素数据包装到分组中的若干示例。
[0023] 图10图示出存取经编码的宏块内的经编码的子模块的示例。
[0024] 图11列出用于宏块编码的示例的假设。
[0025] 图12图示出从源自图像传感器的光栅数据形成经编码的宏块的示例。
[0026] 图13图示出通过标准的视频压缩和解压缩处理针对ME和MC操作存取经编码的 宏块的示例。
[0027] 图14图示出从用于显示器设备的经编码的宏块解码光栅的示例。
[0028] 图15a图示出视频编码器的示例,其中之前解码的参考帧被存储于存储器中。
[0029] 图15b图示出视频解码器的示例,其中之前解码的参考帧被存储于存储器中。
[0030] 图15c图示出在视频解码器的运动补偿过程期间提供存储器存取的存取编码器 和存取解码器的示例。
[0031] 图16图示出由存取编码器/用于视频解码的解码器处理的三种类型的宏块的示 例。
[0032] 图17a和图17b图示出其中视频编码器和视频解码器包括存取编码器和存取解码 器的系统的示例。
[0033] 图18是根据优选实施例的存取编码器的框图。
[0034] 图19是根据优选实施例的存取解码器的框图。
【具体实施方式】
[0035] 在本文中所描述的存取编码器和存取解码器的实施例可以涵盖多种计算架构,其 使用数值表示来表示图像数据。图像数据可以包括诸如8位、10位、6位等的各种位宽度的 整数数据和诸如32位或64位等的各种位宽度的浮点数据。图像数据可以由多种应用生成 并且计算架构针对特定应用而是通用的或专用的。图像数据可以得自来自物理过程、由计 算机仿真创建的图像数据或者数据处理的中间值的检测数据,要么用于在显示器设备或监 视器上的最终显示,要么简单地用于中间存储。例如,数值数据可以源自图像传感器信号, 该图像传感器信号由图像传感器中的模数变换器(ADC)变换成数字形式,其中数字样本通 常以整数格式来表示。图像像素的通常的颜色表示包括RGB(红、绿、蓝)和YUV(亮度/色 度1/色度2)。图像数据可以以平面格式(例如,对于RGB,所有R成分、随后是所有G成分、 随后是所有B成分)或者以交错格式(例如,{R,G,B}三元组的序列)被捕捉和/或被存 储。
[0036] 图像帧分别具有水平和垂直维度H_D頂和V_D頂,以及颜色平面的数目N_ COLORS (典型地3 [RGB或YUV]或者4 [RG