专利名称:在胶片颗粒模拟中以光栅顺序读取胶片颗粒图案的方法和装置的利记博彩app
技术领域:
本发明一般地涉及胶片颗粒模拟,更具体地涉及一种在胶片颗粒模拟中以光栅(raster)顺序读取胶片颗粒图案(pattern)的方法和装置。
背景技术:
在显影过程期间在运动画面图像中形成胶片颗粒。胶片颗粒在HD图像中可被清楚地觉察到,并且成为正变得更希望在整个图像处理和传输链中保持的区别性的电影特征。然而,由于不能使用与时间预测相关的压缩增益(compression gain),胶片颗粒的保持对于现今的编码器是个挑战。由于颗粒的随机性,只在非常高的比特率下才实现可视无损编码。当对通常与噪声和精细纹理相关联的高频进行滤波时,有损编码器往往抑制胶片颗粒。
在近期建立的H.264 I MPEG-4 AVC视频压缩标准中,特别是在其保真度范围扩展(FRExt)修正1(JVT-K051,ITU-T Recommendation H.264 I ISO/IEC14496-10 International Standard with Amendment 1(带有修正1的国际标准),Redmond,USA,2004年6月)中,定义了胶片颗粒补充增强信息(SEI)消息。这种消息描述关于属性(例如大小和强度(intensity))的胶片颗粒特性,并允许视频解码器将胶片颗粒外观模拟到解码画面上。H.264 I MPEG-4 AVC标准规定在胶片颗粒SEI消息中存在哪些参数,怎样解释它们以及要用来以二进制格式将SEI消息编码的语法。但是,所述标准没有规定在接收到胶片颗粒SEI消息时模拟胶片颗粒的确切程序。
胶片颗粒模拟是相对较新的技术,其在后期制作(post-production)中以及在修复旧的库存胶片期间用来在计算机生成的素材上模拟胶片颗粒。对于这种应用,在市场上存在商业软件,如纽约罗彻斯特的Eastman Kodak公司的Cineon以及Visual Infinity的Grain SurgeryTM。这些工具需要用户交互,并且实现起来较为复杂,这使得它们不适合实时视频编码应用。而且,这些工具中没有一个能够解释如H.264/AVC视频编码标准等中规定的胶片颗粒SEI消息。
发明内容
本发明有利地提供了一种在胶片颗粒模拟中以光栅顺序读取胶片颗粒图案的方法和装置。
在本发明的一个实施例中,一种在胶片颗粒模拟中以光栅顺序读取胶片颗粒图案的方法包括确定伪随机起始位置;对于一组胶片颗粒块的每一行,重复该伪随机起始位置;以及对于下一组胶片颗粒块的每一显示行,使用不同的伪随机起始位置。在本发明的各个实施例中,通过重置被实现用于确定所述伪随机起始位置的伪随机数发生器中至少一个种子值来触发不同的伪随机起始位置。
在本发明的替换实施例中,一种在胶片颗粒模拟中以光栅顺序读取胶片颗粒图案的装置包括伪随机数发生器,用于为一组胶片颗粒块的每一行确定伪随机起始位置,并且为下一组胶片颗粒块的每一显示行确定不同的伪随机起始位置。在本发明的一个实施例中,所述伪随机起始位置每个都包括水平偏移量(offset)和垂直偏移量,这些偏移量是通过取伪随机数发生器的最高有效位(MSB)和最低有效位(LSB)确定的。
通过结合附图考虑以下详细描述,本发明的教导可被容易地理解,在附图中图1示出根据本发明一个实施例的具有胶片颗粒模拟能力的视频解码器子系统的高层框图;图2示出适合在图1中视频解码器子系统中使用的接口控制器的实施例的高层框图;图3示出图1的胶片颗粒数据库的典型排列及其偏移量的高层框图;图4示出用于随机选择胶片颗粒块的均匀伪随机数发生器的实施例的高层框图;
图5示出具有8×8块的多个64×64胶片颗粒图案的高层框图,其中只有一个胶片颗粒图案被用于胶片颗粒块的选择;以及图6示出具有8×8块的多个64×64胶片颗粒图案的高层框图,其中两个胶片颗粒图案被用于胶片颗粒块的选择。
应理解这些附图是出于说明本发明的思想的目的,并且不一定是说明本发明的唯一可能的配置。为了帮助理解,在可能的时候,使用相同的参考标号指代图中共有的相同的元件。
具体实施例方式
本发明有利地提供了一种在胶片颗粒模拟中以光栅顺序读取胶片颗粒图案的方法。虽然将主要在用于在例如消费级HD DVD播放器的IC设计中应用的视频解码器子系统的环境中描述本发明,但是本发明的特定实施例不应被当作限制本发明的范围。本领域技术人员将认识到并且本发明的教导所告知的是本发明的思想可被有利地应用于例如媒体播放器/接收器设备、解码器、机顶盒、电视机等中的任何胶片颗粒模拟过程。
图1示出了根据本发明一个实施例的具有胶片颗粒模拟能力的视频解码器子系统的高层框图。图1的视频解码器子系统100说明性地包括例如视频解码器(说明性地为H.264解码器)106、视频显示和图形引擎108、主机接口110、接口控制器(说明性地为RAM接口控制器)112、和本地存储器(说明性地为本地RAM存储器)114,所述本地存储器114被实现为用于存储远程胶片颗粒数据库104中的胶片颗粒图案的小子集的胶片颗粒高速缓冲存储器。图1还示出了主机CPU 102和包括远程胶片颗粒数据库104的远程永久存储程序存储器。虽然在图1的视频解码器子系统100中,主机CPU 102和远程胶片颗粒数据库104被示出为包括分离的组件,但是在本发明的替换实施例中,远程胶片颗粒数据库104可位于CPU 102的永久存储器中。另外,虽然在图1中的视频解码器子系统100中,视频解码器106、视频显示和图形引擎108、主机接口100和接口控制器112被示出为包括分离组件,但是在本发明的替换实施例中,视频解码器106、视频显示和图形引擎108、主机接口100和接口控制器112可包括单个组件,并可被集成在单个集成片上系统(SoC)设计中。
此外,虽然在图1的视频解码器子系统100中,存储胶片颗粒图案的部件被示出为本地存储器114(,高速缓冲存储器)和远程胶片颗粒数据库104,但是在本发明的替换实施例中,可以实现基本上任何可访问的存储部件,以保存胶片颗粒图案的子集和胶片颗粒图案的全部数目。这样的部件可包括存储盘、磁存储介质、光存储介质或基本上任何存储部件。另外,可为每个存储设备实现一个或多个存储部件。另外,虽然图1的胶片颗粒数据库104被示出为位置远离存储器114,但是在本发明的替换实施例中,胶片颗粒图案存储部件位置可互相紧邻或以较大的距离互相远离。
图2示出了适合在图1的视频解码器子系统100中使用的接口控制器的实施例的高层框图。图2的接口控制器112包括处理器210和用于存储控制程序、算法等的存储器220。处理器210与诸如电源、时钟电路、高速缓冲存储器等的传统支持电路230以及帮助执行存储在存储器220中的软件例程的电路协作。因此,可以想到可在硬件中,例如作为与处理器210协作以执行各种步骤的电路来实现在这里作为软件过程讨论的过程步骤中的一些。接口控制器112还包含输入输出电路240,其在与接口控制器112通信的各种相应功能元件之间形成接口。
虽然图2的接口控制器112被示出为被编程以执行根据本发明的各种控制功能的通用计算机,但是可以用硬件,例如作为专用集成电路(ASIC)来实现本发明。因此,在这里描述的过程步骤意图是被广泛地解释为由软件、硬件或它们的组合来等同地执行。
再次参考图1的子系统100,远程胶片颗粒数据库104通常比较大。在本发明的一个实施例中,H.264视频解码器106、视频显示和图形引擎108、主机接口110、接口控制器112和本地存储器114包括HD DVD播放器的组件。需要以例如HD DVD播放器的采样率来存取来自远程胶片颗粒数据库104的胶片颗粒图案。因此,快速存取大胶片颗粒数据库104是必要的。在根据本发明的图1的子系统100中,在被支持(leverage)以开发高速缓存技术来降低复杂度的补充增强信息(SEI)胶片颗粒周期(period)期间,仅使用远程胶片颗粒数据库104的一小部分。
更具体地说,图1的胶片颗粒模拟过程需要将胶片颗粒SEI消息解码,所述消息是在均通过引用而被全部包含于此的修正1(保真度范围扩展)所规定的国际标准ITU-T Rec.H.264 I ISO/IEC 14496-10比特流中传送的。在本发明的一个实施例中,胶片颗粒SEI消息被先于I(帧内编码的)画面而发送,而且只有一个胶片颗粒SEI消息在特定的I画面之前。
在本发明的一个实施例中,胶片颗粒图案的远程胶片颗粒数据库104由169个4096个胶片颗粒样本的图案组成,每个图案代表64×64胶片颗粒图像。在胶片颗粒数据库104中,根据标准规范的频率滤波模型,使用不同的截止频率对来合成每个胶片颗粒图案。在胶片颗粒模拟过程期间,使用在SEI消息中传送的截止频率来存取胶片颗粒图案的远程胶片颗粒数据库104。胶片颗粒数据库104被存储在ROM、闪存或其他永久存储设备中,例如图1的视频解码器子系统100的胶片颗粒数据库104,并且通常不会改变。胶片颗粒数据库104包含具有非常多的胶片颗粒形状和大小的随机胶片颗粒图案。但是,对于特定的视频内容序列,实际上只需要此数据库的小子集来有效地模拟胶片颗粒。对于任何SEI消息周期,所述规范将胶片颗粒图案的数量限制为小子集。因此,本发明实现小胶片颗粒高速缓冲存储器,如本地存储器114,它在接收到SEI消息时被更新。
通常,远程胶片颗粒数据库104被存储在主机CPU 102的永久存储器中或主机CPU 102的地点处。但是,视频解码器106与视频显示和图形引擎108需要快速存取胶片颗粒数据库104。因此,并根据本发明,本地存储器114被提供用于快速存取至少胶片颗粒图案的子集。也就是说,将至少现有SEI消息周期所需要的或最多实现的胶片颗粒图案的小子集传送到和存储在本地存储器114中。
在本发明的一个实施例中,本地存储器114足够大以存储整个胶片颗粒数据库104。在这样的实施例中,视频解码器106与视频显示和图形引擎108可以通过接口控制器112而立即并快速地存取最初存储在远程胶片颗粒数据库104中的所有可用的胶片颗粒图案。另外,本发明的这种实施例有这样的优点本地存储器114中的胶片颗粒高速缓冲存储器不必在接收到SEI消息时被更新。然而,这种实施例的缺点是需要更多的存储器(如RAM)。但是,在一些实现中,已经可以获得这种大存储空间。
在本发明的替换实施例中,本地存储器114只足够大以存储胶片颗粒数据库104的子集。在这种实施例中,每当接收到SEI消息时,控制器112都启动对本地存储器114的高速缓冲存储器的检查,以确定是否需要用在新SEI消息中选择的远程胶片颗粒数据库104中的不同胶片颗粒图案来代替已经在本地存储器114中的胶片颗粒图案子集中的任意一个。此技术的优点是较小的本地存储器114的分配。缺点是本地存储器114的高速缓冲存储器必须由控制器112管理,而且在最坏的情况下,对于每个I帧,必须将全部高速缓冲存储器大小通过例如控制器112而从远程胶片颗粒数据库104传递至本地存储器114。另外,在本发明的这种实施例中,当设备启动(或重置)时,控制器112可利用存储在远程胶片颗粒数据库104中的最常用(common)的胶片颗粒图案来预初始化本地存储器114(即胶片颗粒高速缓冲存储器)。也就是说,对于哪些胶片颗粒图案要存储在本地存储器114中的选择取决于经验数据,所述经验数据基于在对胶片内容的广泛选择中,最经常使用胶片颗粒数据库104中的什么胶片颗粒图案。
在任何情况下,在本发明的上述实施例中,与控制器112相结合的根据本发明的本地存储器114使视频解码器106与视频显示和图形引擎108能够更快地存取先前只包含在远程胶片颗粒数据库104中的胶片颗粒图案。
如先前所述,并且对于图1的视频解码器子系统100,在本发明的一个实施例中,胶片颗粒图案的胶片颗粒数据库104由169个连续胶片颗粒的64×64样本图像(图案)组成。这169个图像中的每一个都代表不同的胶片颗粒图案。胶片颗粒图案具有特定的大小和形状,所述特定的大小和形状是由如C.Gomila、J.Llach、J Cooper在2004年10月18日发表的“Film Grain Simulationfor HD DVD Systems”中描述的频率滤波模型创建的,其通过引用而被整体合并于此。
在胶片颗粒模拟过程期间,以随机的顺序存取胶片颗粒块。也就是说,使用伪随机数发生器来产生到胶片颗粒图案(或具有多于一个胶片颗粒图案的胶片颗粒图案数据库)的水平和垂直方向的偏移量,以便确定用于选择胶片颗粒图案的样本的起始读取位置。例如,图3示出了图1的胶片颗粒数据库的典型排列的高层框图。图3示出了具有x轴中的i_offset(水平偏移量)和y轴中的j_offset(垂直偏移量)的64×64样本胶片颗粒图案。图3还示出了各种类型的169个胶片颗粒图案。在本发明的一个实施例中并且参考图3,胶片颗粒图案由被分为8×8胶片颗粒样本块的64×64样本组成。在本发明的这种实施例中,偏移量可被任选地限制为范围
,以保证在胶片颗粒图案数据库的边缘上可以获得完整的16×16块。如所述,使用伪随机数发生器来产生到64×64胶片颗粒图案的水平和垂直方向上的偏移量。在本发明的一个实施例中,水平偏移量的分辨率被限制为每4个(every 4th)样本,而垂直偏移量的分辨率被限制为每8个(every 8th)样本。但是应注意,在本发明的替换实施例中,也可选择其它水平偏移量和垂直偏移量分辨率值。此外,在本发明的实施例中,偏移量可被任选地限制为范围
,以保证在胶片颗粒图案数据库的边缘上可以获得完整的16×16块。
图4示出了根据本发明的伪随机数发生器的实施例的高层框图。使用多项式模2算子x31+x3+1的图4的伪随机数发生器400用来从胶片颗粒数据库中的胶片颗粒图案随机选择样本的胶片颗粒块。在图4的实施例中,在32位移位寄存器中实现多项式模2算子。在每个阶段,通过取MSB和LSB来从寄存器提取两个随机数。具体地说,在图4的伪随机数发生器400中,对于具有被分组为4个8×8样本块(2个垂直和2个水平)的胶片颗粒数据库中的64×64样本的胶片颗粒图案的实施例,通过取16MSB和16LSB来从寄存器提取两个随机数。根据本发明的一个实施例,在接收到胶片颗粒SEI消息时,将用于模拟第一颜色分量上的胶片颗粒的种子e1设为1;将用于模拟第二颜色分量上的胶片颗粒的种子e2设为557,794,999;将用于模拟第三颜色分量上的胶片颗粒的种子e3设为974,440,221。但是应注意,上述种子e1、e2和e3的值仅为本发明的一个实施例,而在本发明的替换实施例中,可使用其它种子值。
图4的伪随机数发生器400的一个精巧的方面是胶片颗粒样本块在图案中被分组到一起。根据本发明,通过重置每组块的种子值而得到所述图案。也就是说,对于一组块的每一行的每一显示行的开头,种子值相同。实现这个特征以保持更好(larger)的胶片颗粒图案质量。
例如,在本发明的一个实施例中,胶片颗粒样本在8×8样本块中被分组到一起,并被排列在4个块(2个水平和2个垂直)的组中。根据本发明,通过仅每16行和16列而重置每组块的种子值来得到此图案。也就是说,对于这组块的每一行的每一显示行(即,对于上例,每16行)的开头,种子值相同。
虽然在上面直接描述的本发明的实施例中,本发明人描述了实现2×2个8×8样本块的组(导致每16行和16列更新种子值)的本发明,但是其它的配置也可被使用,甚至是非整数数目的块,使得在所确定的图案中,在基本上任何希望数目的行和列之后一致地更新所述种子。本发明的一个重要方面是要具有可确定的可重复的伪随机数模式(pattern)。
根据本发明,胶片颗粒图案可被以光栅顺序从存储器中读出,以便满足显示需要。根据本发明,由于如上所述的伪随机数发生器的可重复特性,这一点是可能的。为了重复,在接收到胶片颗粒SEI消息时,以新种子开始伪随机数x(k,ec)。因此,并且参考上述例子,在显示行上对于每16个水平样本产生伪随机数序列中的新随机数。根据本发明,在显示行的末尾,以来自前一行的开头的值(x(k,ec))重置伪随机数发生器。由于伪随机过程是可重复的,因此在第二显示行期间每16个样本选择相同的块。对于每一显示行到第16显示行,这一过程重复它自己。在第16显示后,伪随机数x(k,ec)被更新为伪随机值序列中的下一个值,并被保存(即在寄存器中)以用作下16个显示行的起始x(k,ec)。
例如,图5示出了具有8×8块的多个64×64胶片颗粒图案的高层框图,其中只有一个胶片颗粒图案被用于胶片颗粒块的选择。也就是说,在图5中,解码的画面段的所有块平均值指向相同的胶片颗粒图案,即图5的胶片颗粒图案1。因此,图5示出了根据本发明一个实施例的、全部在一个胶片颗粒图案中将8×8块分组为16×16块。
图6示出了具有8×8块的多个64×64胶片颗粒图案的高层框图,其中两个胶片颗粒图案被用于胶片颗粒块的选择。也就是说,在图6中的实施例中,解码的画面段的块平均值指向胶片颗粒图案1和图案2。在这种情况下,仍然可看到16×16图案,但是现在它们在胶片颗粒图案1和图案2之间来回穿越。相同的伪随机状态被用于所有胶片颗粒图案类型。
使用本发明的思想,解码器的显示引擎可以光栅顺序读取胶片颗粒数据,并且不需要读取整个块(说明性地为8×8块)。本发明的上述思想的另一好处是在对8×8块的胶片颗粒模拟期间,在胶片颗粒去块中使用的8×8块RAM可被减少至2个样本。只需要当前显示行(例如,previous_fg_block[i+6][j]和previous_fg_block[i+7][j])上的前一胶片颗粒块的右边缘上的这两个样本。也就是说,在对相邻块之间的垂直边缘进行去块以形成胶片颗粒图案时,在相邻胶片颗粒块之间应用去块滤波器,以保证无缝地形成胶片颗粒图案。去块滤波器只应用于相临块间的垂直边缘。由于根据本发明并且如上所述以光栅扫描的顺序模拟胶片颗粒块,因此只需要当前显示行上的前一胶片颗粒块的右边缘上的这两个样本来进行去块。
已描述了用于在胶片颗粒模拟期间以光栅顺序读取胶片颗粒图案的方法和装置的各种实施例(其意图是说明性的,而不是限制性的),需要注意根据上述教导,本领域技术人员可以进行修改和变化。因此,应当理解可在所公开的本发明的特定实施例中进行处于所附权利要求所概括的本发明的范围和精神内的改变。尽管前述内容针对本发明的各种实施例,但是可以想到本发明的其它和另外的实施例,而不背离其基本范围。因此,应当根据所附权利要求来确定本发明的适当范围。
权利要求
1.一种用于在胶片颗粒模拟中以光栅顺序读取胶片颗粒图案的方法,包括确定起始读取偏移位置;对于一组胶片颗粒块的每一显示行,重复所述起始读取偏移位置;以及对于下一组胶片颗粒块的每一显示行,使用不同的起始读取偏移位置。
2.如权利要求1所述的方法,其中所述起始读取偏移位置是以伪随机的方式确定的。
3.如权利要求1所述的方法,其中所述起始读取偏移位置是使用伪随机数发生器确定的。
4.如权利要求1所述的方法,其中所述起始读取偏移位置每个都包括垂直偏移量和水平偏移量。
5.如权利要求4所述的方法,其中所述水平偏移量被限制为每4个胶片颗粒样本。
6.如权利要求4所述的方法,其中所述垂直偏移量被限制为每8个胶片颗粒样本。
7.如权利要求1所述的方法,其中,所述一组胶片颗粒块和所述下一组胶片颗粒块每个都包括4组8×8胶片颗粒样本,所述组被排列为两个垂直组和两个水平组。
8.如权利要求7所述的方法,其中,通过重置被实现用来确定所述起始读取偏移位置的伪随机数发生器的至少一个种子值,来触发所述不同的起始读取偏移位置。
9.一种用于在胶片颗粒模拟中以光栅顺序读取胶片颗粒图案的方法,包括确定伪随机起始位置;对于一组胶片颗粒块的每一行,重复所述伪随机起始位置;以及对于下一组胶片颗粒块的每一显示行,使用不同的伪随机起始位置。
10.如权利要求9所述的方法,其中所述伪随机起始位置是使用伪随机数发生器确定的。
11.如权利要求9所述的方法,其中通过设置所述伪随机数发生器的种子值来确定每组胶片颗粒块的每一行中的胶片颗粒样本的数目。
12.如权利要求9所述的方法,其中由所述伪随机数发生器确定每组胶片颗粒块的行的数目。
13.如权利要求9所述的方法,其中所述伪随机起始位置每个都包括至少一个胶片颗粒图案的垂直偏移量和水平偏移量。
14.如权利要求13所述的方法,其中所述水平偏移量被限制为所述至少一个胶片颗粒图案的每4个胶片颗粒样本。
15.如权利要求13所述的方法,其中所述垂直偏移量被限制为所述至少一个胶片颗粒图案的每8个胶片颗粒样本。
16.如权利要求9所述的方法,其中所述胶片颗粒图案位于胶片颗粒数据库中。
17.如权利要求9所述的方法,其中所述一组胶片颗粒块和所述下一组胶片颗粒块每个都包括4组8×8胶片颗粒样本,所述组每个都被排列为两个垂直组和两个水平组。
18.一种用于使得能够在胶片颗粒模拟中以光栅顺序读取胶片颗粒图案的装置,包括伪随机数发生器,用于对一组胶片颗粒块的每一行确定伪随机起始位置,并且对下一组胶片颗粒块的每一显示行确定不同的伪随机起始位置。
19.如权利要求18所述的装置,其中所述伪随机数发生器的种子值与一组胶片颗粒块的每一行的开头的种子值相同。
20.如权利要求18所述的装置,其中所述伪随机数发生器的种子值在所述一组胶片颗粒块和所述下一组胶片颗粒块之间是不同的。
21.如权利要求18所述的装置,其中实现所述伪随机数发生器,以便从所述胶片颗粒图案随机选择多组胶片颗粒块。
22.如权利要求18所述的装置,其中所述伪随机起始位置每个都包括水平偏移量和垂直偏移量。
23.如权利要求22所述的装置,其中所述偏移量被限制为范围
。
24.如权利要求22所述的装置,其中由伪随机数发生器通过取最高有效位(MSB)和最低有效位(LSB)来确定所述偏移量。
全文摘要
本发明提供了一种用于在胶片颗粒模拟中以光栅顺序读取胶片颗粒图案的方法和装置,包括确定伪随机起始位置;对于一组胶片颗粒块的每一行,重复伪随机起始位置;以及对于下一组胶片颗粒块的每一显示行,使用不同的伪随机起始位置。在本发明的各种实施例中,通过重置被实现用来确定所述伪随机起始位置的伪随机数发生器的至少一个种子值来触发所述不同的伪随机起始位置。
文档编号H04N7/24GK101040300SQ200580035427
公开日2007年9月19日 申请日期2005年10月17日 优先权日2004年10月18日
发明者杰弗里·A·库珀, 琼·拉赫, 克里斯蒂娜·高米拉 申请人:汤姆森特许公司