专利名称:用于图像和视频处理的存储器组织方案和控制器结构的制作方法
技术领域:
本发明涉及图像和视频处理,且更明确地说,涉及用于视频序列的图像帧处理的存 储器存储技术。
背景技术:
数字视频能力可并入广泛范围的装置中,包含数字电视、数字直播系统、无线通信 装置、便携式数字助理(PDA)、膝上型计算机、台式计算机、直接双向通信装置(有时 称为"无线对讲机(walkie-talkie)")和无线电电话(例如,蜂窝式、卫星或基于陆地的 无线电电话)。这些装置可在产生、修改、传输、存储和播放全运动视频序列方面提供优 于常规模拟视频系统的显著改进。
已建立了许多视频处理和编码技术以用于传送数字视频序列。举例来说,运动图像 专家组(MPEG)已研发出许多视频编码标准,包含MPEG-1、 MPEG-2和MPEG-4。其 它标准包含ITU H.263标准和ITU H.264标准。此外,各种公司也已研发出许多专有标 准,且新标准不断出现并逐渐发展。
这些视频标准中的许多标准使用数据压缩。举例来说,许多视频编码技术利用经设 计以通过利用时间或帧间相关性而压缩数据的图形和视频压缩算法来提供帧间压縮。帧 间压缩技术通过将图像帧的基于像素的表示转换成运动表示来利用帧上的数据冗余。另 外,视频压缩技术常常使用图像帧内的相似性(称为空间或帧内相关性),从而允许可进 一步压縮图像帧内的运动表示的帧内压縮。帧内压縮通常基于用于压缩静止图像的常规 技术,例如,离散余弦变换(DCT)变换。
然而,在执行视频压縮之前,常常对视频序列的图像帧执行许多"前端"图像处理 技术。举例来说,常常对从图像传感器产生的图像使用前端图像处理技术。此些图像处 理技术的实例包含(只列出少数几种)去马赛克(demosaicing)、透镜滑离校正(lens rolloff correction)、縮放、色彩校正、色彩转换和空间滤波。所述处理可改进视觉图像质量属性, 例如,色调再现、色彩饱和度、色相再现和锐度。
举例来说,在视频应用中使用的一些图像传感器使用布置在相应传感器的表面上的 彩色滤光片阵列(CFA)来对场景进行取样。可使用多种CFA图案,且可使用数字信号 处理器(DSP)来针对每一感光点获得三个色彩值。然而,为了获得高质量彩色视频图
6像,可能需要图像处理技术。这些图像处理技术在本文中称为"前端"图像处理,因为 所述技术通常先于图像压缩或由视频编码单元进行的其它视频编码。然而,换句话说, 这些图像处理技术可称为"后处理"步骤,因为所述处理发生在图像被图像传感器俘获 之后。
遗憾的是,这些图像处理步骤可能在实时视频电话(VT)应用中出现实时视频编码 的问题。举例来说,为了确保视频序列的实时传输,所有图像处理需要非常快速地执行。 因此,实时图像处理可能需要非常高带宽的存储器和非常大的存储器容量,以便确保可 执行大量的图像处理(通常通过若干不同的图像处理模块)。遗憾的是,存储器带宽和存 储器空间对于大多数视频编码装置来说是有限的。
发明内容
本发明描述对图像处理有用的用于存储器的组织方案。所述组织方案对形成视频序 列的图像的高质量、高性能图像处理尤其有用,但还可应用于其它图像处理设置中。所 述存储器的所描述的技术和组织结构还允许视频装置的其它存储应用程序共享所述存储器。
根据本发明,将存储器字界定为包含多个图像的像素数据。举例来说,每一存储器 字可包含处理管线或视频序列中的若干循序图像的像素数据。存储器的邻接存储器字可 包含循序图像的邻接像素的数据。还描述存储器控制器结构,所述存储器控制器结构有 助于从每一存储器字分离出像素数据,以便允许将不同图像的像素数据发送到不同图像 处理模块以用于并行图像处理。根据本发明将图像数据布置在共享的存储器字中可加速 图像传感器处理,且对实时视频电话(VT)应用来说可能尤其合乎需要。另外,本文中 所描述的存储器组织方案和控制器结构还可支持将其它信息存储在存储器字内的能力, 所述信息例如是由装置的数字信号处理器(DSP)执行的32位或64位指令,或其它类 型的非像素信息。因此,本文中所描述的存储器布置和控制器结构可允许前端视频处理 和其它应用程序两者共享存储器。
在一个实施例中,本发明提供一种方法,其包括将包含第一图像的第一像素数据 和第二图像的第一像素数据的第一存储器字存储在存储器中;以及将包含第一图像的第 二像素数据和第二图像的第二像素数据的第二存储器字存储在存储器中。
在另一实施例中,本发明提供一种装置,其包括存储器,所述存储器包含第一存 储器字和第二存储器字,所述第一存储器字包含第一图像的第一像素数据和第二图像的 第一像素数据,所述第二存储器字包含第一图像的第二像素数据和第二图像的第二像素数据以及控制器,所述控制器在存储器存取循环中存取第一存储器字,以传递第一和 第二图像的第一像素数据。
在另一实施例中,本发明提供一种存储器,所述存储器包括第一存储器字和第二存 储器字,所述第一存储器字包含第一图像的第一像素数据和第二图像的第一像素数据, 所述第二存储器字包含第一图像的第二像素数据和第二图像的第二像素数据。
在附图和以下描述内容中陈述本发明的一个或一个以上实施例的细节。从所述描述 内容和图式以及从权利要求书中将明白本发明的其它特征、目标和优势。
图1是说明可实施本文中所描述的存储器组织技术的示范性装置的框图。 图2是说明可实施本文中所描述的存储器组织技术的示范性装置的另一框图。 图3和图4是说明根据本发明的示范性存储器组织的图。 图5是说明根据本发明的组织有不同图像的像素数据的示范性存储器字的图。 图6是说明示范性控制器结构的框图,所述控制器结构用以支持本文中所描述的存 储器字且允许存储器用于其它目的。
图7是说明根据本发明实施例的示范性过程的流程图。
具体实施例方式
本发明描述用于存储器的组织方案,其中多个不同图像的像素数据包含在存储器字 中。换句话说,可将给定存储器字界定为包含多个图像的像素数据。若干图像的连续像 素存储在存储器的邻接行中,其中每一行由包含一个或一个以上图像的像素数据的存储
器字界定。根据本发明,将图像数据布置在存储器字中可加速前端图像处理,这对于实 时视频电话(VT)来说尤其合乎需要。还描述存储器控制器结构',所述存储器控制器结 构有助于从每一存储器字分离出像素数据,以便允许将不同图像的像素数据发送到不同 图像处理模块以用于并行图像处理。在一些实施例中,多个并行图像处理操作可"共享" 给定存储器字,因为可将多个图像的像素数据从共享的存储器字同时解多路复用(即, 分配)到多个图像处理操作。实际上,这允许多个图像处理操作同时存取共享的存储器 字,并处理包封在存储器字的不同部分内的不同图像。
所描述的存储器组织方案和控制器结构还可支持存储其它信息的能力,所述信息例 如是由装置的数字信号处理器(DSP)执行的32位或64位指令、存储为高速缓冲存储 器的信息或其它类型的数据。换句话说,存储器组织方案允许相对较宽的存储器字(例 如,宽度为64个位),其允许存储器用于许多应用。同时,所描述的存储器控制器结构允许将相对较宽的存储器字分成较小单元,例如,从给定存储器字分离出若干图像的像 素,使得前端图像处理模块可并行地处理若干图像的像素。以此方式,所描述的组织方 案和控制器结构可加速前端图像处理,这对于实时视频电话(VT)应用来说尤其合乎需 要。
图1是说明示范性视频编码装置2的框图。视频编码装置2可形成能够编码和传输 视频数据的数字视频装置的一部分。视频数据可从视频摄像机俘获、从视频档案检索, 或以另一方式获得。编码装置2可在例如以下装置的装置内实施数字电视、数字直播 系统、无线通信装置、个人数字助理(PDA)、膝上型计算机、台式计算机、数码相机、 数字记录装置、具有网络功能的数字电视、蜂窝式或卫星无线电电话,或具有VT能力 的任何电信装置。编码装置2可遵照视频编码标准,例如,MPEG-4、 ITU-T H.263、 ITU-T H.264,或任何其它视频编码标准。编码装置2可支持帧间编码技术(例如,运动估计和 运动补偿),且还可支持其它技术(例如,用于帧内编码的空间估计和帧内预测编码技术)。
如图1中所展示,编码装置2包含视频编码设备4以对视频序列进行编码,且包含 视频存储器14以在此编码之前和之后存储视频序列。装置2还可包含发射器16以将经 编码的序列传输到另一装置,且可能包含视频俘获装置12 (例如,视频摄像机)以俘获 视频序列,并将俘获的序列存储在存储器14中。编码装置2的各种元件可经由通信总线 15以通信方式耦合。编码装置10中还可包含许多其它元件,但为了简洁没有在图1中 具体说明。图1中所说明的结构只是示范性的,因为本文中所描述的技术可用多种其它 结构来实施。
视频存储器14通常包括相对较大的存储器空间。举例来说,视频存储器14可包括 动态随机存取存储器(DRAM)或快闪存储器。存储器14可基于所谓的"或非(NOR)" 或"与非(NAND)"存储器技术或任何其它数据存储技术。在其它实例中,视频存储器 14可包括非易失性存储器或任何其它类型的数据存储单元。
视频编码设备4可包括用于移动无线电电话的所谓的"芯片组",所述芯片组包含硬 件、软件、固件的组合,和/或一个或一个以上微处理器、数字信号处理器(DSP)、专用 集成电路(ASIC)、现场可编程门阵列(FPGA)或其各种组合。视频编码设备4通常包 含耦合到局部存储器8的视频编码器6。视频编码器6可包括用于对数字视频数据进行 编码和解码的编码器/解码器(CODEC (编解码器))。局部存储器8可包括相对于视频存 储器14较小且较快的存储器空间。举例来说,局部存储器8可包括同步动态随机存取存 储器(SDRAM)。局部存储器8可包括与视频编码设备4的其它组件集成的"芯片上"存储器,以在处理器密集型编码处理期间提供对数据的非常快速的存取。然而,存储器 14和8可组合成同一存储器零件,或可以许多其它配置实施。
视频编码设备4包含存储器控制器10,其控制存储器获取和到局部存储器8的回写。 此外,图1中所说明的结构只是示范性的,因为存储器8和存储器控制器IO中所实施的 技术还可应用于其它结构,且还可应用于外部存储器14的组织。
举例来说,视频编码器6可包含前端视频处理单元18和视频编码单元19。前端视 频处理单元18通常对视频序列的帧执行一种或一种以上图像处理技术以改进图像质量, 且从而改进视频序列的质量。举例来说,前端视频处理单元18可执行例如去马赛克、透 镜滑离校正、縮放、色彩校正、色彩转换和空间滤波的技术。另外,前端视频处理单元 18还可执行其它技术。 一般来说,单元18所执行的技术称为"前端"图像处理技术, 因为所述技术通常先于由视频编码器6进行的编码。
视频俘获装置12可包括图像传感器,所述图像传感器包含布置在相应传感器的表面 上的彩色滤光片阵列(CFA)。在这种情况下,单元18所执行的前端图像处理可改进装 置12所俘获的视频序列的质量。举例来说,视频编码器6可包括经编程以界定单元18 的DSP,所述单元18执行图像俘获装置12所俘获的图像的前端处理。如本文中所描述, 存储器8中所实施的组织方案可改进图像处理带宽效率,且允许存储器8 (或存储器14) 的同一区域用于这些前端图像处理目的和其它存储目的两者。
视频编码单元19执行分度编码(viding coding),其可包含一个或一个以上视频压縮 技术,例如,帧间压缩或帧内压缩。举例来说,视频编码单元19可实施运动估计和运动 补偿技术,以利用时间或帧间数据相关性来提供帧间压缩。替代地或另外,视频编码单 元19可执行空间估计和帧内预测技术,以利用空间或帧内数据相关性来提供帧内压縮。 运动补偿(或帧内预测)的输出称为"残差",且通常包括指示待编码的当前视频区块与 运动估计或空间估计所识别的预测区块之间的差异的数据区块。
在视频编码单元19已执行运动补偿(或帧内预测)以产生残差之后,还可执行一系 列额外步骤,以迸一步对所述残差进行编码且进一步压縮数据。所执行的额外步骤可视 正使用的编码标准而定,但其通常称为"残差编码"。在任何情况下,视频编码单元19 可执行这些视频压縮技术中的一者或一者以上以减少(例如)经由视频装置2的发射器 16将视频序列传送到另一装置所需的数据的量。
本发明的技术可易于在由前端视频处理单元18进行的图像处理期间应用。明确地 说,本发明涵盖用于局部存储器8 (或例如外部存储器14的类似存储器)的组织技术,所述技术可改进图像处理带宽效率,且允许存储器8 (或存储器14)的同一区域用于其 它存储目的,例如,用于视频压縮或甚至用于非视频应用。另外,本发明提出用于存储 器控制器10的结构,所述结构可利用存储器8 (或存储器14)中的数据组织方案。尽管 相对于前端图像处理出于示范性目的而进行描述,但本文中所描述的存储器结构可应用 于处理多个图像的其它环境。
图2是说明可实施本文中所描述的存储器组织技术的示范性装置20的另一框图。在 这个实例中,装置20包含存储器22和存储器控制器24,所述存储器控制器24控制对 存储器22的存取。存储器控制器24可耦合到图像处理单元26,所述图像处理单元26 包含多个图像处理模块(标记为28A、 28B和28C且统称为"模块28")。尽管为了简洁 而说明了三个模块,但图像处理单元26可包含任何数目的图像处理模块28。模块28可 包含去马赛克模块、透镜滑离校正模块、缩放模块、色彩校正模块、色彩转换模块和空 间滤波模块或许多其它前端图像处理模块。另外,模块28可包含执行同一功能的多个图 像处理模块,从而允许对不同图像并行地执行所述功能。
根据本发明的技术,与若干不同图像相关联的像素可存储在同一存储器字中,且可 将存储器字分成可由模块28并行地处理的像素。在某些实施例中,可从存储器22同时 读取与不同图像相关联的图像数据,且将其分配给模块28。实际上,这允许模块28以 高效方式共享存储器22。
存储器控制器24还可耦合到其它装置,例如,数字信号处理器(DSP) 25、或其它 类型或硬件、处理器或逻辑电路。以此方式,存储器22的内容可在不同类型的硬件、处 理器和处理单元中使用。此外,本发明具体地涵盖对存储器22的内容的图像处理非常有 用的存储器组织方案,但其是灵活的,使得其它类型的数据也可存储在存储器22中。
装置20可对应于图1的装置2,但本发明未必限于这方面。举例来说,存储器22 可对应于存储器8或14中的任一者,且存储器控制器24可对应于存储器控制器10。图 像处理单元26可对应于前端视频处理单元18,且DSP25可对应于视频编码单元19。然 而,此外,图2中所说明的结构可更广泛地应用于许多装置和系统,且未必限于图1的 装置2。
根据本发明,将存储器22组织成存储器字,其中每一存储器字可用以存储与多个不 同图像相关联的像素数据。举例来说,存储器22中的存储器字中的每一者可经界定以支 持若干图像的像素数据,即使当前正存储较少数图像,给定字也不需要以像素数据完全 充填。作为一个实例,若干不同图像的相应第一像素可存储在第一存储器字中。每一所述不同图像的相应下一像素可存储在第二存储器字中。因此,若干图像的连续像素可存 储在存储器22的邻接行中,其中每一行由包含若干图像的像素数据的存储器字界定。
存储器控制器24经配置以允许从存储器22中的存储器字提取数据,使得可同时将 一个存储器字的不同数据发送到模块28中的不同者,以进行并行处理。模块28中的每 一者可经配置以在时间间隔中处理其相应数据,所述时间间隔大体上类似于(或等同于) 模块中的其它者的处理时间。这允许图像数据的高效同时处理。
然而,如果特定存储器字用以存储非像素数据(例如,可执行指令),那么存储器控 制器24允许将整个存储器字(在这种情况下是指令)发送到DSP 25。其它非像素信息 也可存储在存储器字中。存储器控制器24可接收界定存储器字的内容的命令,且如果给 定存储器字用以存储若干不同图像的像素数据,那么存储器控制器24可从存储器字同时 分离出所述像素数据,使得可并行地处理与不同图像相关联的像素数据。
图3是说明根据本发明的示范性存储器组织的示范性图。图3的数据结构30可存储 在存储器22中。如图3中所展示,数据结构30的每一行包括存储器字,所述存储器字 包含多个不同图像(即,零个或更多图像)的像素数据。举例来说,第一行(第一存储 器字)可包含图像P的像素数据Po、图像Q的像素数据Qo和图像R的像素数据Ro。 Po 可表示图像P的第一像素,Qo可表示图像Q的第一像素,且Ro可表示图像R的第一像 素。还可包含其它图像的第一像素。举例来说,如果存储器字的宽度为64个位,且每一 像素包括8个位,那么单个存储器字中可存储八个不同图像的八个不同像素。
类似地,第二行(第二存储器字)可包含图像P的像素数据Pi、图像Q的像素数据 Q,和图像R的像素数据Ri。 P,可表示图像P的第二像素,Qi可表示图像Q的第一像素, 且Ri可表示图像R的第一像素。因此,图像P、 Q和R的邻接像素可存储在存储器的邻 接行中。尽管给定图像的一个以上像素也可存储在给定存储器字中,但每一行可只包含 相当于若干不同图像的数据的一个像素。
在图3的数据结构30的实例中,每一个存储器字能够存储图像P、 Q和R的像素数 据。在这种情况下,每一图像可包含N+1个像素,其中N+l表示经分配以存储所述图 像的行的数目。如下文更详细描述,存储器字的一个或一个以上区段(或槽(slot))可 不包含任何数据,例如,只要正在处理较少数目的图像且存储器字中的每一者中存在额 外空间。事实上,同一组织方案可用以存储和处理单个图像,在这种情况下,每一存储 器字可只包含一个数据像素。然而,在这种情况下,每一存储器字中的额外空间将通常 是未使用的。
12此外,数据结构30可在邻接存储器空间内(例如,图3的牵储器22内)针对每N + 1个行而重复,从而允许使用共享的存储器字来存储额外群组的图像,如图4中进一 步说明。
图4是说明根据本发明的存储器组织的另一示范性图。图4的数据结构40可存储在 存储器22中,且表示根据本发明的存储器的逻辑组织。如图4中所展示,数据结构40 的每一行包括存储器字,所述存储器字包含多个不同图像的像素数据。然而,在这种情 况下,最初的N+1个行(最初的N+1个存储器字)包含图像P、 Q和R的像素数据,而 随后的行(随后的存储器字)包含图像X、 Y和Z的像素数据。
如图3和图4中所说明的存储器字的行配置可对前端图像处理高度有利。在这种情 况下,存储器控制器24可经配置以同时分离不同图像的像素数据,且将不同图像的像素 数据转发到图像处理单元26的不同图像处理模块28。因此,可由图像处理单元26并行 地处理若干图像,从而允许多个模块28高效地共享存储器22。此外,通过遍历存储器 22中的数据结构30 (图3)的整个长度,存储器控制器24可确定已存取了图像P、 Q和 /或R的所有像素。因此,希望在每一存储器字中包含相应图像的一个像素,但在数据结 构30的邻接存储器字中包含所述图像的所有像素。在这种情况下,历经数据结构30 — 遍可确保图像处理单元26对数据结构30中的任何给定图像进行处理。
同时,数据结构30和40中的存储器字(行)的相对较大的宽度可允许此些数据用 以存储非像素数据或其它类型的数据。可存储在存储器中的其它类型的数据的实例包含 图形深度信息、图形缓冲器的z缓冲器信息或计算机可执行软件指令。在又一实施例中, 所存储的数据可包括用于任何目的(包含非视频应用)的高速缓冲存储器。控制信号可 由存储器控制器24接收以界定任何存储器字的性质。对于64位存储器字来说, 一些字 可以是可执行软件指令,所述可执行软件指令可被存取且转发到DSP25以供执行。其它 存储器字可包含不同图像的像素数据(如图3和图4中所展示)。其它字可包含其它类型 的数据,例如,图形缓冲器信息或高速缓冲存储器。重要的是,存储器控制器24经配置 以支持存储器22的存储器字中的这些不同类型的信息。存储器22本身可采取多种实体 配置中的任一种。举例来说,存储器22可构成八组8位宽的存储器模块。作为另一实例, 存储器22可构成两组32位宽的字可定址存储器模块。作为又一实例,存储器22可包括 提供64位宽的字可定址存储器的单个存储器模块。
图5是描绘根据本发明的组织有不同类型的数据的存储器字51到55的另一图。存 储器字51、 52、 53和54包含若干图像的像素数据,如本文中所描述。举例来说,存储器字51包含八个不同图像的像素0。类似地,存储器字52包含八个不同图像的像素1, 存储器字52包含八个不同图像的像素2,且存储器字53包含八个不同图像的像素N。然 而,在一些情况下,存储器字51到54中可存储少于八个像素。在这种情况下,像素"槽" 中的一者或一者以上可以是空白的,或存储有无效数据。
存储器字51到54中的像素"槽"中的每一者可对应于特定前端图像处理模块。明 确地说,八个图像中的每一者可有一个像素存储在每一存储器字的同一 "槽"中。以此 方式,如果图像需要发送到特定图像处理模块,那么所述图像可存储在存储器字51到 54的对应"槽"中。接着,历经存储器字51到54—遍可确保可根据需要处理给定图像 的像素。在其它实例中,还可将相同像素发送到多个图像处理模块。
常规前端图像处理通常是循序的。即,常常在可相对于给定图像执行下一过程之前, 整体上执行第一过程。本发明的教示保持执行循序前端图像处理的能力,但允许相对于 序列的若干不同图像并行地执行此些过程。再次参看图5,举例来说,图像1可存储在 存储器字51到54的对应于第一图像处理模块的存储器槽中,而图像2可存储在存储器 字51到54的对应于不同图像处理模块的存储器槽中。其它图像可类似地存储在存储器 字51到54的存储器槽中。
在循序前端图像处理和随后回写到存储器之后,给定图像本质上可历经存储器字的 若干个槽。换句话说,在图5中,图像2 (其存储在存储器字51到54的第二槽中)可 预先存储在不同槽(例如,第一槽)中,经处理且接着回写到第二槽。以此方式,可仍 以循序方式处理每一个图像。然而,存储器组织方案允许并行地对若干图像执行此循序 处理(实质上,在图像经由处理和回写而遍历存储器字的不同槽时形成所谓的成像处理 管线)。存储器控制器24包含有助于像素跟踪、从相应的存储器字分离出像素、将像素 转发到适当模块28和将像素回写到不同存储器字的逻辑。
图6是存储器控制器60的框图,所述存储器控制器60是存储器控制器24 (图2) 的一个示范性实施例。存储器控制器60包含存储器输出逻辑61,所述存储器输出逻辑 61有助于同时从存储在存储器中的存储器字提取数据,使得可将给定存储器字中的数据 的不同部分转发到不同处理模块。另外,存储器控制器60还包含存储器输入逻辑62, 所述存储器输入逻辑62接收经处理的数据,并将所述经处理的数据组合于可回写到存储 器的存储器字中。可分别将控制信号63和64发送到逻辑61和62,以便对数据如何流 入和流出存储器进行控制。
举例来说,当从存储器接收到存储器字时,输出逻辑61可将数据分成各种子部分,
14可将所述子部分发送到一个或一个以上不同模块。在图6的实例中,存储器字可包括图 5的存储器字51到55中的一者。举例来说,如果从存储器接收到存储器字51,那么存 储器控制器的输出逻辑61可分离八个不同图像的像素数据。控制信号63识别存储器字 中包含什么类型的数据。因此,八个不同图像的像素数据(如图5的存储器字51中所展 示)可对应于第一数据、第二数据、第三数据、第四数据、第五数据、第六数据、第七 数据和第八数据(如图6中所展示)。存储器输出逻辑61将给定存储器字的不同数据转 发到不同处理模块。
另一方面,如果从存储器接收到包括非像素信息的存储器字55,那么存储器控制器 的输出逻辑61可确定将此信息发送到哪里。举例来说,如果存储器字55为计算机可执 行指令,那么可将存储器字55转发到共用处理模块(例如,DSP25 (图2))以供执行。 此外,控制信号63识别存储器字中包含什么类型的数据,且在这种情况下,控制信号 63将存储器字55识别为包含非像素数据,例如,待由DSP25执行的计算机可执行指令。
存储器输入逻辑62通常执行输出逻辑61的反向过程,以将数据回写到存储器。因 此,如果八个不同图像的八个像素由八个不同模块执行,那么存储器输入逻辑62可接收 不同图像的经处理的像素数据,且将经处理的像素数据组合成回写到存储器的存储器字。 另一方面,如果经处理的数据对应于非像素数据,那么控制信号64可照此识别所述数据, 且所述数据可作为非像素数据存储在存储器中。以此方式,存储器控制器60允许操纵存 储器字中的若干不同图像的像素数据,但也支持存储和提取来自存储在存储器的共用数 据结构中的存储器字的非像素数据的能力。
图7是说明根据本发明实施例的过程的流程图。将鉴于图2而描述图7。如图7中 所展示,存储器22存储包含第一图像的第一像素数据和第二图像的第一像素数据的第一 存储器字(70)。换句话说,存储器字包含两个或两个以上不同图像的像素数据。存储器 22还存储包含第一图像的第二像素数据和第二图像的第二像素数据的第二存储器字 (71)。因此,存储在存储器22中的连续存储器字可存储不同图像的邻接像素。
存储器控制器24从存储器22存取第一存储器字(例如,在存储器循环中)(72)。 由控制器24进行的存储器存取可响应于(例如)从图像处理单元26传递的前端图像处 理命令。存储器控制器24将第一图像的第一像素数据传递到第一图像处理模块(例如, 模块28A),且将第二图像的第一像素数据传递到第二图像处理模块(例如,模块28B) (73)。模块28A和28B同时处理第一和第二图像的第一像素数据(74),并将经处理结 果返回到存储器控制器24。存储器控制器24接着将第一和第二图像的第一像素数据的经处理版本存储在共用存储器字中(例如,在另一存储器循环中)(75)。所述经处理版 本可存储在不同于原始存储器字的存储器字中,且此外,可将像素数据的经处理版本移 动到存储器字的不同相应槽,使得对此些数据的随后处理将在图像处理模块28中的不同 者中发生。
存储器控制器24接着从存储器22存取第二存储器字(例如,在另一存储器循环中) (76),且将第一图像的第二像素数据传递到第一图像处理模块(例如,模块28A),且将 第二图像的第二像素数据传递到第二图像处理模块(例如,模块28B) (77)。以此方式, 模块28A和28B接收同一图像的相继像素以用于图像处理。模块28A和28B同时处理第 一和第二图像的第二像素数据(78),且将经处理结果返回到存储器控制器24。存储器 控制器24接着将第一和第二图像的第二像素数据的经处理版本存储在共用存储器字中 (例如,在另一存储器循环中)(79)。所述过程可针对存储在存储器22中的许多连续存 储器字而继续,使得模块28A和28B可处理不同图像的所有像素。
尽管将图7陈述为流程图,但请注意,根据本发明的教示,存储器存取通常与任一 图像处理并行地发生。这可确保存储器在读取/写入之间不存在闲置循环。因此,不应将 图7的流程图视为要求循序地执行步骤。相反,可同时执行图7中所展示的步骤中的一 者或一者以上。 一般来说,每当图像处理模块使用循环来进行处理时,可执行同时的存 储器存取以促进处理时间的高效使用。
在存储器循环期间,从存储器提取存储器字,将其分成其像素,且转发不同像素以 供处理。在下一存储器循环期间,对像素的经处理版本进行组合,并将其存储回共用存 储器字。所述过程通过循环历经存储在存储器中的循序存储器字、以像素提取和随后的 回写而继续,直到已处理存储器字的所有像素为止。然而,此外,存储器存取通常与处 理模块所执行的图像处理并行地发生。
每一图像的所有像素可存储在邻接存储器字中。以此方式,如果存储在存储器字中 的给定图像需要处理,那么完整历经存储器字可确保给定模块接收到所述图像的所有像 素。此外,由于若干图像的像素存储在存储器字中,所以完整历经存储器字可允许相对 于不同图像并行地执行若干循序图像处理技术。
此外,根据本发明将图像数据布置在存储器字中可改进前端图像处理带宽效率,这 对于实时VT应用来说尤其合乎需要。所描述的用于存储器控制器的结构尤其有助于从 每一存储器字分离出像素数据,以便允许将不同图像的像素数据发送到不同图像处理模 块以用于并行图像处理。另外,本文中所描述的存储器组织方案支持存储其它信息的能力,所述信息例如是由DSP执行的32位或64位指令,或用于其它应用程序的数据。举 例来说,同一存储器可在不在前端图像处理中用于存储像素时用作图形缓冲器。同时, 所描述的存储器控制器结构允许将相对较宽的存储器字分成较小单元,例如,从给定存 储器字分离出若干图像的像素,使得前端图像处理模块可并行地处理若干图像的像素。 以此方式,所描述的组织方案和控制器结构可加速前端图像处理,这对于实时VT应用 来说尤其合乎需要;而仍能向存储器提供灵活性,使得其可用于其它目的,例如,当不 执行前端视频处理时。
然而,可对本文中所描述的技术进行各种修改。举例来说,在一些情况下,存储器 控制器可经配置以将同一像素数据发送到一个以上图像处理模块。而且,在2D空间滤波 的一些情况下,图像处理模块中的一者或一者以上可接收若干行输入(例如,与邻接图 像相关联的若干像素或图像的邻接像素),且可基于所述若干行输入而输出一行输出(在 这种情况下,是经滤波的输出)。这些和其它实施例均在所附权利要求书的范围内。
1权利要求
1. 一种方法,其包括将包含第一图像的第一像素数据和第二图像的第一像素数据的第一存储器字存储在存储器中;以及将包含所述第一图像的第二像素数据和所述第二图像的第二像素数据的第二存储器字存储在所述存储器中。
2. 根据权利要求l所述的方法,其进一步包括将包含第一图像的第三像素数据和所述 第二图像的第三像素数据的第三存储器字存储在所述存储器中。
3. 根据权利要求1所述的方法,其中所述第一存储器字进一步包含第三图像的第一像 素数据,且其中所述第二存储器字进一步包含所述第三图像的第二像素数据。
4. 根据权利要求l所述的方法,其中所述第一和第二存储器字包括所述存储器的邻接 行。
5. 根据权利要求1所述的方法,其中所述第一和第二图像的邻接像素存储在所述存储 器的所述邻接行中,且所述第一和第二存储器字每一者包含来自多个图像的像素。
6. 根据权利要求l所述的方法,其进一步包括-在存储器存取循环中从所述存储器存取所述第一存储器字,以便同时检索所述第 一像素数据和所述第二像素数据;响应于在所述存储器存取循环中存取所述第一存储器字而将所述第一图像的所 述第一像素数据传递到第一图像处理模块;以及响应于在所述存储器存取循环中存取所述第一存储器字而将所述第二图像的所 述第一像素数据传递到第二图像处理模块。
7. 根据权利要求6所述的方法,其进一步包括-在所述第一图像处理模块中处理所述第一图像的所述第一像素数据;以及 同时在所述第二图像处理模块中处理所述第二图像的所述第一像素数据。
8. 根据权利要求7所述的方法,其进一步包括-将所述第一图像的所述第一像素数据的经处理版本与所述第二图像的所述第一 像素数据的经处理版本组合在共用存储器字中;以及在不同存储器存取循环中,将所述共用存储器字存储回所述存储器。
9. 根据权利要求1所述的方法,其进一步包括-在存储器存取循环中,从所述存储器存取所述第一存储器字;响应于在所述存储器存取循环中存取所述第一存储器字而将所述第一和第二图像的所述第一像素数据传递到图像处理模块;在所述图像处理模块中处理所述第一和第二图像的所述第一像素数据;以及 在不同存储器存取循环中,将所述第一和第二图像的所述第一像素数据的经处理版本存储回所述存储器,其中所述第一和第二图像的所述第一像素数据的所述经处理版本存储在所述存储器的共用存储器字中。
10. 根据权利要求l所述的方法,其进一步包括将非像素数据存储在所述存储器中。
11. 根据权利要求l所述的方法,其中所述第一存储器字符合可由处理器执行的指令的 宽度,所述方法进一步包括存储来自包含所述第一图像和所述第二图像的多个图像 的第一像素数据,以便封装整个宽度的所述第一存储器字与像素数据。
12. —种装置,其包括-存储器,其包含第一存储器字和第二存储器字,所述第一存储器字包含第一图像 的第一像素数据和第二图像的第一像素数据,所述第二存储器字包含所述第一图像 的第二像素数据和所述第二图像的第二像素数据;以及控制器,其在存储器存取循环中存取所述第一存储器字,以传递所述第一和第二 图像的所述第一像素数据。
13. 根据权利要求12所述的装置,其中所述存储器包含第三存储器字,所述第三存储 器字包含第一图像的第三像素数据和所述第二图像的第三像素数据。
14. 根据权利要求12所述的装置,其中所述第一存储器字进一步包含第三图像的第一像素数据,且其中所述第二存储器字进一步包含所述第三图像的第二像素数据。
15. 根据权利要求12所述的装置,其中所述第一和第二存储器字包括所述存储器的邻 接行。
16. 根据权利要求12所述的装置,其中所述第一和第二图像的邻接像素存储在所述存 储器的所述邻接行中,且所述第一和第二存储器字每一者包含来自视频序列的多个 图像的像素。
17. 根据权利要求12所述的装置,其进一步包括-第一图像处理模块;以及第二图像处理模块,其中所述控制器响应于在所述存储器存取循环中存取所述第 一存储器字而将所述第一图像的所述第一像素数据传递到所述第一图像处理模块,且所述控制器响应于在所述存储器存取循环中存取所述第一存储器字而将所述第 二图像的所述第一像素数据传递到所述第二图像处理模块。
18. 根据权利要求17所述的装置,进一步其中所述第一图像处理模块处理所述第一图像的所述第一像素数据;以及 所述第二图像处理模块同时处理所述第二图像的所述第一像素数据。
19. 根据权利要求18所述的装置,进一步其中所述控制器将所述第一图像的所述第一像素数据的经处理版本与所述第二图像 的所述第一像素数据的经处理版本组合在共用存储器字中;以及所述控制器在不同存储器存取循环中将所述共用存储器字存储回所述存储器。
20. 根据权利要求12所述的装置,其进一步包括图像处理模块,其中所述控制器响应于在所述存储器存取循环中存取所述第一存储器字而将所述第 一和第二图像的所述第一像素数据传递到图像处理模块;所述图像处理模块处理所述第一和第二图像的所述第一像素数据;以及所述控制器在不同存储器存取循环中将所述第一和第二图像的所述第一像素数 据的经处理版本存储回所述存储器中,其中所述第一和第二图像的所述第一像素数 据的所述经处理版本存储在所述存储器的共用存储器字中。
21. 根据权利要求12所述的装置,其中所述存储器进一步包含非像素数据。
22. 根据权利要求12所述的装置,其进一步包括处理器,其能够执行指令;其中所述第一存储器字符合与所述指令相关联的宽度,以及 其中所述存储器存储来自包含所述第一图像和所述第二图像的多个图像的第一像素数据,以便封装整个宽度的所述第一存储器字与来自所述多个图像的像素数据。
23. —种存储器,其包括第一存储器字,其包含第一图像的第一像素数据和第二图像的第一像素数据;以及第二存储器字,其包含所述第一图像的第二像素数据和所述第二图像的第二像素 数据。
24. 根据权利要求23所述的存储器,其进一步包括第三存储器字,所述第三存储器字 包含第一图像的第三像素数据和所述第二图像的第三像素数据。
25. 根据权利要求23所述的存储器,其中所述第一存储器字进一步包含第三图像的第 一像素数据,且其中所述第二存储器字进一步包含所述第三图像的第二像素数据。
26. 根据权利要求23所述的存储器,其中所述第一和第二存储器字包括所述存储器的 邻接行。
27. 根据权利要求23所述的存储器,其中所述第一和第二图像的邻接像素存储在所述 存储器的所述邻接行中,且所述第一和第二存储器字每一者包含来自视频序列的多 个图像的像素。
28. 根据权利要求23所述的存储器,其进一步包括存储在所述存储器中的非像素数据。
29. 根据权利要求23所述的存储器,其中所述存储器字包括64个位,且所述第一和第 二像素每一者包括8个位。
30. 根据权利要求29所述的存储器,进一步其中所述第一存储器字包含第三图像的第一像素数据,且所述第二存储器字包含所述 第三图像的第二像素数据;所述第一存储器字包含第四图像的第一像素数据,且所述第二存储器字包含所述 第四图像的第二像素数据;所述第一存储器字包含第五图像的第一像素数据,且所述第二存储器字包含所述 第五图像的第二像素数据;所述第一存储器字包含第六图像的第一像素数据,且所述第二存储器字包含所述 第六图像的第二像素数据;所述第一存储器字包含第七图像的第一像素数据,且所述第二存储器字包含所述 第七图像的第二像素数据;以及所述第一存储器字包含第八图像的第一像素数据,且所述第二存储器字包含所述 第八图像的第二像素数据。
31. 根据权利要求29所述的存储器,其中所述存储器包含至少512个行,所述至少512 个行界定至少512个存储器字,所述至少512个存储器字中的每一者包含两个或两 个以上图像的像素数据。
全文摘要
本发明描述对图像处理有用的存储器组织方案。还描述利用所述组织方案的存储器控制器结构。所述组织方案和控制器结构对形成视频序列的图像的高性能、高质量图像处理尤其有用,但还可应用于其它图像处理设置中。所述存储器的所描述的技术和组织结构还允许视频装置的其它存储应用程序共享所述存储器。
文档编号G06T1/60GK101443808SQ200780001874
公开日2009年5月27日 申请日期2007年1月5日 优先权日2006年1月5日
发明者斯蒂芬·莫洛伊, 约瑟夫·昌 申请人:高通股份有限公司