专利名称:生成用于去块滤波器的边缘掩码的利记博彩app
技术领域:
所要求权利的本发明的实现一般可以涉及用于编码和/或解码视 频信息的方案,更具体地说,涉及在它们的视频处理中采用去块滤 波器的这些方案。
背景技术:
可以在帧或其它^L频对象(如^L频对象平面(VOP))内分块 组织;现频信息。在一些^^频编码/解码方案中, 一个块可以包括一组 (2x2、 4x4、 8x8等)例如亮度(即,Y)象素。在色度(即,U/V 或Cr/Cb)象素中也可以反映类似的数据组织。在一些方案中,还可 将亮度和色度视频信息块集合成所谓的宏块。但是,应注意,上述 块和宏块大小只是示例性的,在各种视频编码/解码方案中也可采用 其它大小和数量。
某些视频编码/解码方案可以采用去块滤波器来使相邻块之间的 边缘平滑。这些去块滤波器可以改善解码后的视频数据的外观,并 且可以改善编码后的视频数据的压缩性能。这种滤波可以应用于亮 度和/或色度分量的相邻块的垂直和/或水平边缘。采用去块滤波器的 一些视频方案可以包括但不限于高级视频编码(AVC)(如MPEG-4第10部分和ITU-T建议H.264 ) 、 Windows Media Video 9 (WMV-9 ) 和/或SMPTE的VC-1。
但是,对于一些宏块,去块滤波器可能不能对宏块内的所有可 能的垂直和水平边缘进行操作。在这些情况下,可以利用边缘掩码 来精确地指定将对哪些垂直边缘和哪些水平边缘滤波。为不同的宏 块(或宏块的若干部分)生成这样的边缘掩码可能在给定的解码和/ 或编码过程中占用过长的时间。
附图并入本说明书中并构成本说明书的 一部分,它们示出和本 发明的原理 一致的一个或多个实现,并且与本描述一起说明这些实 现。附图不一定按比例绘制,而是将重点放在说明本发明的原理上。
图中
图1示出视频编码系统的一部分;
图2示出图1的系统中的示例性去块滤波器;
图3A和3B在概念上示出示例性数据緩冲器和边缘掩码;
图4示出图2的滤波器中的示例性边缘掩码发生器;
图5A和5B示出宏块位置偏移量;以及
图6示出视频数据的示例性去块过程。
具体实施例方式
以下详细描述参照附图。不同的图中可以使用相同的附图标记 来标识相同或类似的元件。在以下描述中,为了说明而不是限制的 目的,阐述了诸如特定结构、架构、接口、技术等具体细节,以便 充分理解所要求的发明的各个方面。但是,从本公开获益的本领域 的技术人员将明白,所要求的发明的各个方面可以在不背离这些具 体细节的其它示例中实现。在某些情况下,省略了对众所周知的装 置、电路和方法的描述,以免让不必要的细节混淆对本发明的描述。
图1示出碎见频编码系统100的一部分。系统100可以包括解码 器或编码器,任何一个都可包括其它部分,为了清楚地说明,图1 中没有示出这些其它部分。例如,如图所示的系统100部分可以在 熵解码和重新排序之后设置在解码器中,或者可以将它设置在编码 器的重建路径中。
如图1所示的系统100部分可以包括逆量化器(Q") 110、逆变 换器(T1) 120和去块滤波器130。逆量化器110可以缩放系数。该 缩放可以在量化之后在编码器中执行,或在熵解码和重新排序之后在解码器中执行。
逆变换器120可以对由逆量化器UO输出的缩放系数执行逆变 换。在一些实现中,逆变换器120可以执行离散余弦逆变换(IDCT)。 但是,在一些实现中,逆变换器120可以执行另一逆变换,如逆哈 达玛(Hadamard)变换、逆小波变换或其它目前已知或以后开发的 逆变换。逆变换器120可以产生重建的视频数据块或差异块,这些 差异块可以添加到预测块(未示出)中以便产生重建的视频数据块。 通过任一种方法,逆变换器120可以为去块滤波器130输出重建的 数据块(以及因此的宏块)用于操作。
去块滤波器130可以对视频数据宏块中的块进行操作。去块滤 波器130可以对宏块中的各块之间的垂直和/或水平边缘应用滤波。 尽管去块滤波器130可以进行操作以便使宏块中的各块之间的边缘 平滑,但它不一定对正好是一个宏块的块进行操作。例如,去块滤 波器130可以对大于一个宏块的块集合]乍用,或者可以对小于一个 宏块的块集合作用。
图2示出去块滤波器130的实现。去块滤波器130可以包括緩 冲器210、边缘掩码发生器220和滤波器部分230。尽管为便于说明 而示为以某一方式连接,但图2中的去块滤波器130可以按其它配 置连接。例如,可以从緩沖器210直接输出经过滤波的视频数据, 而不是如图所示那样经由滤波器230输出。其它变化也是可能且可 设想其它变化。
緩冲器210可以包括用于在4丸行边缘滤波时(例如,在此之前、 在此过程中等)存储多个视频数据块的存储器。例如,緩冲器210 可以包括同步或异步随机存取存储器(RAM)。在一些实现中,緩 冲器210的大小可以设计成用于容纳约丄个宏块(如8x8、 4x8、 8
x4、 4x4个块)的视频数据。在一些实现中,緩冲器210的大小可 以设计成用于容纳大于一个宏块的视频数据。例如,緩冲器210还 可以包括用于存储与宏块相邻的一个或多个块的空间,如6x6块布
置,这将在下文参照图3A和3B进行更详细地描述。在一些实现中, 緩沖器210可以容纳更多的数据,如两个或两个以上宏块。
可以将边缘掩码发生器220设置成用于生成边缘掩码,该边缘 掩码定义緩冲器210中的各块内待由滤波器部分230去块-滤波的特 定边缘。边缘掩码发生器220可以生成对应于緩冲器210中的块数 量的边缘掩码,但由于滤波器部分230的带宽和/或其它处理限制, 可能不能对所有可能的边缘进行滤波。例如,在一些实现中,边缘 掩码发生器220可以为緩冲器210中的给定量的数据的多达6个水 平边缘和/或多达6个垂直边缘生成掩码(例如,可以指导对它们进 行滤波)。但是,在掩码中标识为去块的更少或更多数量的水平和 垂直边缘也是可以的。这些概念将参照图3A和3B更详细地说明。
图3A在概念上示出包括块310和将要滤波的水平边缘320以及 对应的水平边缘掩码330的示例性数据緩沖器210。为便于说明,图 3A示出緩冲器210的将要滤波的水平边缘,且图3B示出緩沖器中 的同一数据的垂直边缘。在如图3A和3B所示的示例中,》爰沖器210 可以包括6x6个^L频数据块310。而且,在这6x6个块内,宏块可 以位于緩冲器210的最右下面的4x4个块中,但宏块也可以位于緩 冲器210内的其它位置。
如图所示,緩冲器210中的这6x6个块可以包括块中的5组水 平边纟彖(^口 hedge O-hedge 4 )禾口;t丸中的5纟且垂直边缘(^口 vedge O-vedge 4)。在图3A中,将待滤波(如"待去块")的6个水平边缘320 相对于其它水平边缘示为粗体。图3A中还示出不滤波的水平边缘, 但它们不是粗体。
水平边缘掩码330对应于图3A中的緩冲器210内的指定边缘。 掩码330的大小(如5 x 5)表示緩冲器210中的6x6个块内的水平 边缘的总数。掩码330中将要滤波的边缘示为"1",而不滤波的边 缘示为"0"。尽管可以如图所示表示边緣掩码330 (例如,表示成 5个由0和1的组成的组),但它也可以用更紧凑的格式表示,如一
个词或两个十六进制字符。这些字符可以表示将经由滤波器230对 哪些边缘行以及那些行内的哪些位置/边缘去块。
图3B在概念上示出包括块310和将要滤波的垂直边缘340以及 对应的垂直边缘掩码350的示例性数据緩冲器210。与图3A中的六 个水平边缘320相比,图3B中只存在两个将要滤波的垂直边缘340。 在垂直边缘掩码350中,将这些将要滤波的垂直边缘340示为"1", 而不滤波的垂直边缘由"0"表示。
尽管图3A和图3B中分开介绍了边缘掩码330和350,但它们 在实现中不一定分开。例如,可以使用包括将要滤波的水平和垂直 边缘的组合式边缘掩码。但是,在一些实现中,独立的水平掩码330 和垂直掩码350可以从边缘掩码发生器220输出到滤波器部分230。
或将要滤波的所有垂直边缘340,从而允许用两个词来将一个完整的 边缘掩码传输给滤波器部分230。
图4示出边缘掩码发生器220的一个实现。图4中的发生器220 可以基于以下三个标准来生成边缘掩码1)视频数据是亮度还是色 度类型的数据;2)是想要重叠还是环内滤波;以及3)相关宏块在它 的视频对象内的位置。下文将对这些标准进一步说明。边缘掩码发 生器220可以包括索引存储器410、复用器420-440、组合器450和 掩码存储器460。
索引存储器410可以包括用于存储多个索引的存储元件,如只 读存储器(ROM)或RAM。如图所示,索引存储器410可以存储亮 度重叠(overlapping OV )表索引、亮度环内(in-loop IL )表索引、 色度重叠表索引和色度环内表索引。索引存储器410中的索引可以 概念化为不同边缘掩码类别的组的数量。在图4的发生器220中, 可以基于索引存储器410中的索引选择四种类别的边缘掩码,但是 在其它实现中,这个数字可以更小或更大。
复用器420-440可以在OV/IL和亮庹/色度选择线的基础上从索 引存储器410选择其中一个索引。复用器420和430可以基于所指 定的是IL还是OV滤波来选择合适的亮度和色度索引。该滤波可以 由緩沖器210中的视频数据的参数来指定,如数据序列层中的 INLOOP和/或OVERLAP标记。复用器440可以基于緩冲器210中 的视频数据是亮度数据还是色度数据来在这些亮度和色度索引之间 进行选择。在一些实现中,OV/IL和亮度/色度选择线可以与复用器420 和430的输入一起交换,以便从复用器440产生相同的输出。
可以利用由复用器440输出的"表索引"来选择掩码存储器460 中的某个表。如下文将说明,可以利用图4中的"宏块位置偏移量" 来选择由来自复用器440的表索引所指定的表中的某一项。将参照 图5A和5B进一步说明宏块位置偏移量。
图5A和5B示出宏块位置偏移量。去块滤波器130可以按照到 达顺序对宏块进行处理,如MB。、 MB卩...、MBn.P其中见频对 象(如帧)中宏块的总数。每个宏块可以位于对象/帧中的九个一般 位置之一处,并且该位置可以由视频数据中的宏块报头参数字段定 义。
图5A示出视频数据帧510和宏块在帧510内的九个可能的位置。 这些位置中的四个位置可以位于帧510的"拐角,,处,在这些"拐 角"处, 一个宏块与帧510的两个边界毗邻。如图所示,可以将这 些位置表示成"左上"、"右上"、"左下,,和"右下"。这些位 置中的四个位置可以沿着帧510的排除拐角以外的边界,在这些边 界处, 一个宏块只和帧510的一个边界毗邻。如图所示,可以将这 些位置表示成"内上"、"内右"、"内下"和"内左"。可以将 不和帧510的任何边界毗邻的宏块归类为"内-内"。
图5B示出宏块位置/定位和对应的十六进制值的表520。这些十 六进制值可以在宏块的报头信息中找到。例如,表520中的特定值 可以在用VC1方案编码的视频数据宏块的m—bBoundary字段中找 到。但是,也可以在按照其它视频编码方案编码的宏块中找到类似
的位置值。表520中的这些位置值可以用于图4中的边缘掩码发生 器220中的宏块位置偏移量。
返回到图4,组合器450可以将宏块位置偏移量和表索引,以便 输出所得索引值组合。在一些实现中,组合器450可以包括用于将 宏块位置偏移量加到表索引中的加法器。在一些实现中,适当时, 组合器450可以包括用于在算术上(例如,减法器等)和/或在逻辑 上(例如,"与"、"异或"等)将宏块位置偏移量和表索引组合 的其它逻辑。所得索引值可以指向掩码存储器460中的位置。
掩码存储器460可以包括适合存储例.如索引表470和掩码表480 的存储元件,如ROM或RAM或任何类型的基于栅极的存储设备。 索引表470可以由来自组合器450的所得索引值标引。尽管为了便 于说明,图4中只示出一个索引表470, ^f旦应注意,这个表对应于由 复用器440输出的表索引。实际上,索引表470的数量可以对应于 索引存储器410中的表索引的数量(如四)。
表470中的哪个项。例如,如果宏块索引值指示所述的宏块是内左 宏块,那么所得索引值可以标引表470中的"内左"项。索引表470 中的这个项可以包含指向4务码表480的指针或索引。
掩码表480可以对应于给定的索引表470 (例如,也可以存在多 个如上所述的表),并且可以包括将供寺块滤波器的滤波器部 分230使用的对应水平和垂直边缘掩码。例如,索引表470中的"内 左"项可以指向掩码表480中的水平边缘掩码Mask化(H)。表470中的 该项还可能隐含地指向掩码表480中的垂直边缘掩码Maski(v),因为 该垂直边缘掩码可以是例如表480中紧跟在Mask化(H)之后的项。因 此,边缘掩码发生器220可以从掩码表480中输出指定将由滤波器 部分230去块的水平边缘的水平边缘掩码和指定将由滤波器部分230 去块的垂直边缘的垂直边缘掩码。
在一些实现(未示出)中,掩码表480中的各项可以同时指定将要滤波的水平和垂直边缘。例如,索引表470中的"内左"项可 以指向掩码表480中给定的水平和垂直编号边缘n (n=0、 ...4;见图 3A和3B,编号的Hedge和Vedge值)的组合垂直和水平边缘掩码 MasknIL(VH)。因此,例如,Mask3n^一H)可以指定将沿水平边缘3去块 的所有水平边缘以及将沿垂直边缘3去块的所有垂直边缘。表470 中的该项还可以隐含地指向表480中的其它编号边缘n的一个或多 个额外Maskn化(vjj)值。对于掩码表480,涉及那些本文明确描述的项 的不同编号和排列的其它方案和实现也是可以的。因此,边缘掩码 发生器220可以从掩码表480中输出为给定编号边缘指定将由滤波 器部分230去块的水平和垂直边缘的一个或多个边缘掩码。
尽管为方便起见将要素470和480作为"表"进行描述,但也 可以将它们实现为链接列表、一系列指针或任何其它合适的数据结 构。此外,在一些实现中,可以在存储器460中的单个数据结构内 布置边缘掩码Mask^。例如,可以将发生器450、表索引和宏块位置 偏移量设计成使得所得索引值指向该结构中的每隔一个值,以便同 时标引水平边缘掩码和(隐含地)垂直边缘掩码。此外,其它实现 可以涉及同时指定宏块内将要滤波的水平和垂直边缘的单个边缘4备 码。或者,可以为给定宏块采用多于两个边缘掩码(如水平和垂直)。 对于和本文的公开一致的边缘掩码发生器220,其它实现也是可以 的。
返回到图2,滤波器部分230可以基于来自边缘掩码发生器220 的一个或多个边缘掩码对緩冲器210中的块之间的水平和/或垂直边 缘执行去块。对于由边缘掩码指定用于去块的每个边缘,滤波器部 分230可以影响所述的边缘的任一边上多达约三个样本。滤波器部 分230所施加的滤波的强度可以取决于例如当前的量化器、相邻块 的编码模式和/或边缘上的样本的梯度。这些因素及其应用于去块通 常已知,这里不再赘述。
在一些实现中,滤波器部分230可以从緩沖器210读取所有或大部分将要滤波的样本。滤波器部分230可以在执行去块之后执行 相应的将滤波后的样本写入到緩冲器210中的操作。但是,在一些 实现中,滤波器部分230也可以在每个边缘的基础上执行往来于緩 冲器210的去块读取和替换操作。
图6示出视频数据的示例去块过程600。尽管为方便和清楚地说 明可以参照图2中的去块滤波器130描述图6, ^f旦应了解,过程600 可以由其它滤波器执行。
处理可以从在緩沖器210中加载视频数据[动作610]开始。如前 所述,缓冲器210可以保存多于或少于一个宏块的视频数据。緩沖 器210还可以在任何时间存储亮度和/或色度视频数据。
基于緩冲器210中的视频数据的类型,边缘掩码发生器220可 以生成用于指定緩沖器210中的块之间的将要去块的边缘的一个或 多个边缘:淹码[动作620]。例如,逻辑(如元件410-440)可以指定 特定表470,可以在该特定表470中查找将要滤波的边缘。其它逻辑 (如组合器450)可以利用来自緩沖器210中的宏块的信息来指定表 470内进一步指定边缘的位置。在一些实现中,发生器220可以为将 要去块-滤波的水平边缘和垂直边缘产生独立的掩码。但是,在一些 实现中,发生器220可以产生标识水平和垂直边缘的单个^f备码。
处理可以继续,滤波器部分230基于来自发生器220的一个或 多个边缘掩码对緩冲器210中的视频数据去块-滤波[动作630]。该处 理的顺序很大程度上取决于加载在缓沖器210中的数据,并且可以 遵循某些惯例,如先处理亮度数据再处理色度数据。也可以遵循其 它惯例,如先对水平边缘去块-滤波再对垂直边缘去块-滤波,或者先 对垂直边缘去块-滤波再对水平边缘去块-滤波。在对视频数据滤波之 后,可以将它写入到緩沖器210中,以便可以替换相应的未经滤波 的数据。
在对緩沖器210中的数据执行完所有滤波之后,可以将该数据 卸载到它的处理链中的下一个目的地[动作640]。如之前所提到的,该下一个目的地可以取决于滤波器130是位于解码器中还是位于编 码器中而改变。在一些实现中,当对数据去块时,可以依序卸载乡爰 冲器210,并且当移除经过滤波的数据时,可以将新数据写入到緩冲 器210中[动作610]。在一些实现中,动作640可能只有在滤波器部 分230处理完緩沖器210中的所有数据之后才发生(例如,当对緩 冲器210中的数据完全去块时)。,
以上对一个或多个实现的描述提供了图解和描述,但不希望它 们是独占性的或将本发明的范围限制在所公开的确切形式。根据以 上教导,修改和改变是可能的,或者可以从本发明的各种实现的实 践中获得修改和改变。
例如,尽管描述成分立的功能单元,但图2和图4中的元件也 可以在硬件和/或固件的任意组合中(例如,在寄存器传送逻辑(RTL) 或类似设计方案中)实现。此外,图6中的动作不需要按所示顺序 实现;也不一定要执行所有动作。而且,那些与其它动作无关的动 作可以和那些其它动作并行才丸行。此外,可以将该图中的至少一些 动作实现为可以在机器可读介质中实现的指令或指令组。
除非明确描述,否则不应将本申请的描述中所用的任何元件、 动作或指令理解为对于本发明至关重要或必需。而且,本文所用的 冠词"一"用于包括一个或多个项。在基本不背离本发明的精神和 原理的情况下,可以对所要求的发明的上述一个(或多个)实现做 出改变和修改。希望所有这些修改和改变都在本文中包含在本^^开 的范围内并受随附权利要求的保护。
权利要求
1.一种设备,包括存储器,包括多个表,所述多个表包括标识将要去块滤波的边缘的边缘掩码信息;第一逻辑,用于在所述多个表中指定一个边缘掩码信息表;以及第二逻辑,用于指定所述一个表内的特定项,所述特定项对应于至少一组边缘掩码信息。
2. 如权利要求l所述的设备,其特征在于,所述第一逻辑包括 复用器,用于基于将要去块滤波的视频数据是亮度数据还是色度数据来输出表索引。
3. 如权利要求l所述的设备,其特征在于,所述第一逻辑包括 复用器,用于基于将要去块滤波的视频数据是环内数据还是重叠数据来输出表索引。
4. 如权利要求l所述的设备,其特征在于,所述第二逻辑包括 组合器,用于将来自所述第 一 逻辑的表索引和与将要去块滤波的视频数据关联的宏块位置偏移量组合。
5. 如权利要求1所述的设备,其特征在于,所述一个表内的所 述特定项包括指向所述至少 一组边缘4务码信息的指针。
6. 如权利要求5所述的设备,其特征在于,所述至少一組边缘 掩码信息包括水平边缘掩码和垂直边缘掩码。
7. 如权利要求1所述的设备,还包括索引存储器,连接到所述第一逻辑且包括指向包括所述多个表 的存储器的多个索引。
8. —种设备,包括緩沖器,用于存储包括对应于宏块钓至少 一部分的块的视频数据; 边缘掩码发生器,用于生成定义将要去块的块间边缘的特定边缘掩码,所述边缘掩码发生器包括用于存储多个边缘掩码的边缘掩码存储器,和用于基于所述緩冲器中的所述视频数据的类型和所述宏块的位置偏移量在所述多个边缘掩码中选择所述特定边缘掩码的逻辑;以及去块滤波器,用于基于来自所述边缘掩码发生器的所述特定边 缘掩码对所述緩沖器中的视频数据块之间的边缘进行去块。
9. 如权利要求8所述的设备,其特征在于,所述边缘掩码发生 器还包括索引存储器,包括指向所述边缘^f务码存储器的多个索引。
10. 如权利要求9所述的设备,其特征在于,所述逻辑还包括 至少一个复用器,用于基于所述緩沖器中的所述视频数据是亮度数据还是色度数据来从所述索引存储器中的所述多个索引中选择 选定的索引;以及组合器,用于将所述选定的索引和所述宏块的位置偏移量组合, 以便产生用于在所述边缘掩码存储器中选择所述特定边缘掩码的所 得索引。
11. 如权利要求10所述的设备,其特征在于,所述至少一个复 用器基于所述緩冲器中的所述视频数据是重叠数据还是环内数据来 从所述索引存储器中的所述多个索引中选择所述选定的索引。
12. 如权利要求8所述的设备,其特征在于,所述緩沖器存储整 个视频数据宏块和不包含在所述宏块中的至少一个相邻视频数据 块。
13. 如权利要求8所述的设备,其特征在于,所述特定边缘掩码 包括一个或多个将要去块的水平边缘。
14. 如权利要求8所述的设备,其特征在于,所述特定边缘掩码 包括一个或多个将要去块的垂直边缘。
15. —种方法,包括将视频数据加载到緩沖器中,所述视频数据包括多个相邻块;基于所述緩冲器中的所述视频数据的特性从多个存储的索引中 选择第一索引;将所述第一索引和从所述视频数据获得的宏块位置偏移量组合,以便产生组合索引;基于所述组合索引生成至少一个边缘掩码;以及对所述缓沖器中的所述视频数据滤疼,以便对由所述至少 一 个边缘掩码标识的块间边缘去块。
16. 如权利要求15所述的方法,还包括 在所述滤波之后从所述緩沖器卸载所述视频数据。
17. 如权利要求15所述的方法,其特征在于,所述选择包括 基于所述视频数据是亮度数据还是色度数据来选择所述第一索引。
18. 如权利要求15所述的方法,其特征在于,所述选择包括 基于所述视频数据是亮度数据还是色度数据来选择所述第一索引。
19. 如权利要求15所述的方法,其特征在于,所述选择包括 基于所述视频数据中环内标记或重叠标记的存在来选择所述第一索引。 '
20. 如权利要求15所述的方法,其特征在于,所述生成包括 利用所述组合索引来查找水平边缘掩码和垂直边缘掩码。
全文摘要
一种去块单元可以包括缓冲器、边缘掩码发生器和去块滤波器。缓冲器可以存储包括块的视频数据。这些块可以对应于宏块的至少一部分。边缘掩码发生器可以生成特定的边缘掩码,该边缘掩码定义将要去块的块间边缘。边缘掩码发生器可以包括用于存储多个边缘掩码的边缘掩码存储器和用于在这些边缘掩码中选择特定边缘掩码的逻辑。该逻辑可以基于缓冲器中的视频数据的类型和宏块的位置偏移量进行选择。去块滤波器可以基于来自边缘掩码发生器的特定边缘掩码对缓冲器中的视频数据块之间的边缘去块。
文档编号G06T5/00GK101198983SQ200680021013
公开日2008年6月11日 申请日期2006年4月11日 优先权日2005年4月11日
发明者R·奇特罗 申请人:英特尔公司