检测和解除视频中格子失真的方法和设备的制作方法

文档序号:7958151阅读:164来源:国知局
专利名称:检测和解除视频中格子失真的方法和设备的制作方法
背景技术
视频流的压缩可能导致会降低整体图像质量的块状(blockiness)(棋盘图案)。这些通常被称为运动图像专家组(MPEG)失真,例如标题为“AdvancedVideo Coding (Part 10)”(高级视频编码(第十部分))(2004)的国际标准化组织(ISO)/国际电工委员会(IEC)运动图像专家组(MPEG)标准。作为其它例子,可以根据标题为“MPEG-4 Information Technology-Coding of Audio-Visual Objects”(MPEG-4信息技术-音频编码-可视对象)(2001)的ISO/IEC文件14496或根据标题为“Information Technology-Generic Coding of Moving Picturesand Associated Audio Information”(信息技术-运动图像和相关音频信息的遗传编码)(2000)的ISO/IEC文件13818-1来处理图像信息。
在某些普通的情况中,棋盘图案的格子大小在整个视频图像中是均匀的,例如在视频屏幕上的8×8像素(8:8)、12×12像素(12:12)、8×4像素(8:4)等输出。在其他情况中,在同一个图像中可能会存在可变的块大小。这例如可能是对内容敏感的MPEG编码器造成的(例如,利用更多位或更小的块大小对图像中非常详细的部分或移动部分进行编码所造成的)。


图1示出根据某些实施例的用于检测和校正编码视频中的非均匀块状的方法。
图2和3示出根据某些实施例的用于检测和校正非均匀块状的更详细的方法。
图4和5示出根据某些实施例的用于确定阵列位置的向量乘法的方法。
图6示出根据某些实施例的用于检测和校正编码视频中的非均匀块状的系统。
图7是具有多个矢量点的视频屏幕的示意图。
图8示出根据某些实施例的利用集成电路和电路板的图6的系统。
图9示出根据某些实施例的用于检测块状的方法。
具体实施例方式
图1是用于检测解码的视频流中的棋盘(“块状”)模式的高级方法100。例如可以根据前述的“Advanced Video Coding(Part 10)”解码视频流。通常,在方法100中,因为检测潜在块状失真的各种比较在逐像素级别上进行,因此可以在同一个视频图像中检测到多个可变大小的块。
在110,针对在例如水平轴的第一轴上定义的强度阈值来测试视频图像的基色(“颜色”)在两个相邻像素(为了方便说明而称为第一像素和第二像素)之间的强度变化。如果从第一像素到第二像素的颜色强度变化超过了强度阈值,则第二像素被表示为块状像素。接着,将第二像素与第三像素比较,等等。在视频图像的第一(例如水平)轴和第二(垂直)轴上都进行这种比较,并且对于三基色RBG(标准红、蓝、绿),或可替换的表示也是如此,例如YUV(对于亮度、蓝色水平和红色水平具有单独代码量级的颜色编码模式)。具有必要阈值变化的任意颜色的任意像素(或亮度、或颜色或图像强度的其它测量)可以表示块状像素。第一和第二轴像素存储在相互独立的阵列中。110接着进行到120。
在120,在存储第一轴(水平)像素的存储器中的所有块状像素位置与针对所有第二轴(垂直)像素的所有块状像素位置进行向量组合。这生成了各种导致潜在块状失真的相交角的向量(角)位置。例如,如果在110检测的水平块状像素是3和5,在110检测的垂直块状像素是9和16,则像素的向量位置是(3,9);(3,16);(5,9)和(5,16)。120接着进行到130。
在130,在120生成的向量位置的邻域中应用平滑滤波器。典型地,平滑滤波器调整在向量位置的邻域中的一个或多个颜色的变化强度,由此减少与视频代码相关的块状。
图2和3示出了根据一个实施例的用于检测对块状失真的平滑的方法200。开始之后,在210,要设置的第一阵列类型是用于水平阵列的。水平阵列可以恰好是视频屏幕的第一水平阵列,或者是视频屏幕的某个其它水平阵列。210接着进行到220。
在220,对于视频显示三基色中的至少一个,通过选择从像素到相邻像素的强度变化的强度阈值,设置一个或者多个阈值来检测可能的块状像素。在又一个实施例中,所有三个颜色具有不同的强度阈值。该强度阈值可以由用户编程或预编程。如果完全缺少给定颜色强度被表示为“零”值,且最大可允许强度是“255”,则阈值强度的示例值可以是38-50的变化,即,在不同像素之间的强度变化是15%到20%。然而,其它值也在本发明的范围之内。220进行到230。
在230,所选择的轴(在这种情况中是水平轴)上的像素计数被设置为0。230进行到240。
在240,(例如从RGB颜色组的红色、绿色或蓝色之一中)选择包含视频的三基色的下一个颜色以适合于编码视频。为了说明容易起见,可以相对于选择的颜色来描述RGB颜色组。由于这是240首次在本说明中执行,因此在240中选择第一个颜色。240进行到242。
在242,选择在轴的开始处的第一像素。242进行到250。
在250,沿着所选择的轴来选择/增量到下一个像素。这典型的是沿着选择轴的邻近像素。250进行到260。
在260,针对比220中确定的强度阈值更大的被选颜色,确定在第一像素和被选像素之间是否存在强度差。如果不是,260进行到270。如果是,260进行到265。在一个实施例中,如果一个被选颜色已经具有了强度差,则260进行到265而不用进一步检查该轴。在另一个实施例,所有的颜色是独立测试的。
在265,第二像素的位置存储在用于所选择的轴的存储器中作为块状像素的潜在位置。水平轴的块状像素存储在第一存储位置,且水平轴的块状像素存储在单独的存储位置,以供在后面的向量乘法中使用。265进行到270。
在270,确定相对于强度阈值是否已经测试了针对选择轴行的所有像素转变。如果不是,270进行到272。如果是,270进行到280。
在272,为了继续比较相邻像素之间的颜色变化强度和强度阈值变化,第二像素位置和颜色强度被存储为第一像素位置和颜色强度。相邻通常可以定义为相互紧接的像素或具有某些其它定义关系的像素(例如相互间隔两个,相互间隔三个等)。在一个实施例中,相邻像素是阵列中的下一个像素。272返回到上面的250。
在280,确定是否已经针对所有基色的强度变化测试了阵列类型(水平或垂直)。如果还没有测试该阵列类型的所有基色强度阈值,则280返回到230。如果已经测试了该阵列类型的所有的基色强度阈值,则280进行到285。
在285,确定所选择的阵列类型是否是垂直阵列类型。如果是,则方法200停止。如果不是,285进行到29。
在290,所选择的阵列类型变为垂直类型。290进行到292。
在292,所选择的颜色被重置为颜色组的第一颜色(例如,RGB基色组的红色)。292进行到295。
在295,将第一像素设置为垂直阵列中的空像素。295返回到242。
在297,对于水平轴和垂直轴,都通过将265中生成的阵列相乘而产生向量位置。注意297与方法100的120相似。
例如,如果在265检测和生成的两个阵列是[1,10,15,20]和[1,10,15,20],则检测的角向量和由此的格子大小是[1,1];[1,10];[1,15];[1,20];[10,1];[10,10];[10,15];[10,20];[15,1];[15,10];[15,15];[15,20];[20,1];[20,10];[20,15];[20,20]。
图4和5示出了在一个实施例中的一种更详细描述297的方法400,用于从水平和垂直标量像素值计算各种块大小的潜在向量位置,该方法还进一步描述了在潜在向量位置应用平滑滤波器。
在410,块大小和第一相交点都被设置为0。410进行到420。
在420,选择下个块大小。例如对于第一块大小,这可以是4×4(4:4)块大小,可能由于420的再次执行而接着是4×8(4:8)块大小,(8:4)块大小,(6:8)块大小等。在任何情况中,420进行到430。
在430,接着从297生成的向量中选择第一向量位置(相交点)。注意,该第一向量是从297生成的列表中剩下来的向量位置,下面将对此讨论。430进行到440。
在440,确定所选择的向量是否是在420选择的块大小的倍数。例如,如果块大小是(4:4),则确定所选择的向量位置是否是(4:4)块的倍数。换句话说,对于(4:4)块,确定所选择的向量位置是否在(4,4);(8,8);(12,12)等。如果是,440进行到442。如果不是,440进行到450。
在442,所选择的向量接着被存储在用于适当块大小的存储器中。例如,如果(8,8)被确定为是(4:4)的倍数,则(4:4)阵列的存储器具有分配给该阵列的(8,8)向量位置值。此外,增加对于该块大小的计数值。442进行到444。在一个实施例中,操作者使用该计数值以调整差阈值。
在444,接着从向量列表中删除所选择的向量位置。444接着返回到430。
在450,接着从存储器选择下一个向量位置点。例如,如果第一向量是(6,12);且确定(6,12)不是被选块大小(4:4)的倍数;则选择列表中的下个向量,也许选择了(10,16)。450接着进行到460。
在460,确定该下个向量位置是否是被选块大小的倍数。例如,460可以确定示例向量位置(10,16)是否是块大小(4:4)的倍数。在任何情况中,如果该下个选择点是倍数,460向回循环到442。如果不是,460进行到470。
在470,对第一相交向量位置和下个相交向量位置相互比较,以了解是否一个与另一个相差算数块大小的相加。如果是,所有相交都以被选块大小存储,且对于两个相交向量位置,470都向回循环返回到442。
例如,示例第一向量(6,12)不是(4:4)的倍数,但是(6,12)和(10,16)相互之间相差(4:4),所以它们仍然都与(4:4)块相关。
在480,确定所有保留的相交向量是否已经相对于被选块大小测试过。如果不是,480向回循环到440。如果是,480进行到490。
在490,确定是否所有的块大小已经被测试。如果不是,490环回到420。如果是,在495中应用滤波器,然后方法400结束。
图6示出了对解除视频块状的视频解块器(“解块器”)600。具有多个像素的编码视频由输入分析器610接收。在输入分析器610对输入执行解码后,由强度差阈值检测器(“阈值检测器”)620和低通滤波器692接收像素。
阈值检测器620耦合到第一存储器630和第二存储器640。第一和第二存储器用于分别存储针对水平轴和垂直轴的、由阈值检测器620确定的强度发生变化的像素位置。第一和第二存储器640、650耦合到向量位置乘法器645。向量位置乘法器645耦合到块状检测器650。块状检测器650生成每个图像的每个块大小的多个向量位置的数据。块状检测器650也耦合到到低通滤波器692。低通滤波器692接着生成解除了块状的图像,作为来自输入分析器610的解码视频和来自块状检测器650的输出的组合。根据某些实施例,观看者可以调节低通滤波器692的操作。
块状检测器650具有存储向量位置的存储器660、确定块大小的比较器670、各种块大小的存储阵列680、确定不同大小的数量的存储器计数器685、以及存储各种块大小的各种向量位置的存储器690。注意存储控制器685和存储器690可以以例如哈希表的方式使用。
在一个实施例中,在视频解块器600中,方法200的210到250由输入消息分析器610执行。由阈值检测器620执行260。在块610中执行265,且像素位置适当地放置在存储器630或640中。接着再次由输入消息分析器610执行270、272、280、285和290、292和294。297由向量位置乘法器645执行,且结果被输入到块状检测器650的存储器660中。
在另一实施例中,方法400由块状检测器650和低通滤波器692执行,其使用了比较器670、存储阵列680、存储器计数器685、存储器690和低通滤波器692。
图7示出具有所检测的各种块大小和被照亮的相交点的视频显示器(“显示器”)700的示例实施例。在显示器700中,第一相交点710位于相交点(4,4),第二相交点720位于相交点(6,8),第三相交点730位于(12,8)。在其它实施例中,另一个相交点可以是(4,8)。这些相交点的每一个都可以让低通平滑滤波器692应用到它们及其它相邻像素。通过应用低通滤波器692,减少了图像的块状。
在又一个实施例中,将低通滤波器692应用到第一、第二和第三相交点710、720和730的倍数。例如,根据第一相交点(4,4)710,在相交点(8,8)和(12,12)应用低通滤波器692,还根据第二相交点720,把低通滤波器692应用到相交点(12,16)和(18,24),等等。
图8示出了根据某些实施例的系统。系统800可以执行方法200和400。系统800包括主板810、视频输入820、集成电路(“IC芯片”)825和存储器830。系统800可以包括桌面计算平台的组件,存储器830可以包括用于存储数据的任意类型的存储器,如单数据速率随机存取存储器、双数据速率随机存取存储器或可编程只读存储器。
IC芯片825接收编码的视频输入820,并执行各种方法200和400。在图8中,存储的信息被存储在存储器830中,且每个图像840的每个块大小的块状测量的测量值和解除了块状的图像自身都由主板810输出,也许是通过数字I/O端口(未示出)输出。
图9示出了方法900。在910,图像信息由系统800接收。接着在920,在图像信息中检测块状失真。所检测的块状失真与不同的格子大小相关。
这里描述的几个实施例仅仅是用于说明的目的。某些实施例可以包括这里描述的元件的任意当前的或此后公知的版本。因此,本领域技术人员会由该描述中了解到可以通过各种修改和变化实现其它实施例。
权利要求
1.一种方法,包括接收图像信息;以及检测图像信息中的块状失真,其中所检测的块状失真与不同的格子大小相关。
2.根据权利要求1所述的方法,进一步包括校正所检测的块状失真;以及提供校正的图像信息。
3.根据权利要求1所述的方法,其中所接收的图像信息包括一组像素,且所述检测包括沿着第一轴选择第一像素;沿着第一轴选择第二像素;确定从第一像素到第二像素的颜色变化的强度是否超过了阈值;如果从第一像素到第二像素的颜色变化的强度超过了阈值,则存储该颜色变化强度的第一位置;沿着第二轴选择第一像素;沿着第二轴选择第二像素;确定从第一像素到第二像素的颜色变化的强度是否超过了阈值;如果从第一像素到第二像素的颜色变化的强度超过了阈值,则存储该颜色变化强度的第二位置;根据第一位置和第二位置定义向量位置。
4.根据权利要求3所述的方法,进一步包括对在所述定义第一和第二位置的向量位置上的视频输出进行滤波。
5.根据权利要求3所述的方法,其中所述第一像素具有位置值和颜色强度值。
6.权利要求3的方法,进一步包括选择颜色组的第二颜色;以及确定从第一像素到第二像素的颜色组的第二颜色的颜色变化的强度是否超过了阈值;以及存储该颜色变化强度的位置。
7.根据权利要求3所述的方法,其中所述第一像素和第二像素是相邻像素。
8.根据权利要求4所述的方法,其中滤波进一步包括应用平滑滤波器。
9.根据权利要求3所述的方法,进一步包括将所述第一位置和第二位置乘以整数值,以生成第二向量位置;以及对该第二向量位置滤波。
10.根据权利要求3所述的方法,进一步包括定义默认的块大小;将所述向量位置和默认的块大小比较;以及存储具有默认的块大小的所述向量位置。
11.根据权利要求3所述的方法,其中所述颜色是从多个颜色中选择的,且多个颜色由红色、绿色和蓝色组成。
12.根据权利要求3所述的方法,其中所述颜色具有最小强度和最大强度,且阈值被设置为从第一像素到第二像素约为15%的强度变化最小值。
13.根据权利要求3所述的方法,其中所述阈值由用户设置。
14.一种系统,包括阈值检测器,用于针对第一轴和第二轴检测从第一像素到第二像素的颜色变化是否超过了阈值;第一存储器,用于如果在第一轴上从第一像素到第二像素的颜色变化超过了阈值则存储第一轴的第一像素位置;第二存储器,用于如果在第二轴上从第一像素到第二像素的颜色变化超过了阈值则存储第二轴的第二像素位置;向量生成器,用于根据第一像素位置和第二像素位置生成向量位置;以及滤波器,用于对向量位置进行滤波。
15.根据权利要求14所述的系统,其中所述第一和第二存储器是逻辑存储器,且集成在一个存储器芯片中。
16.根据权利要求14所述的系统,进一步包括第四存储器,用于存储要与所述向量位置比较的预选择的块大小。
17.根据权利要求16所述的系统,进一步包括比较器,用于比较所述向量位置和预选择的块大小。
18.根据权利要求14所述的系统,进一步包括存储器,用于存储与所述向量位置相关的计数。
19.根据权利要求14所述的系统,其中所述滤波器包括低通滤波器。
20.根据权利要求14所述的系统,进一步包括印刷电路板;输入端口,用于接收第一像素和第二像素;耦合到电路板的双速率存储器;以及具有阈值检测器的集成电路,该集成电路耦合到电路板。
21.一种方法,包括检测在图像信息中的块状失真,其中所检测的块状失真与不同的格子大小相关;以及校正至少一个与不同格子大小相关的块状失真。
全文摘要
一种可以包括接收图像信息的方法。在图像信息中检测块状失真,其中所检测的块状失真与不同的格子大小有关。
文档编号H04N7/36GK101026754SQ200610064008
公开日2007年8月29日 申请日期2006年9月30日 优先权日2005年9月30日
发明者W·阿利, M·苏贝达 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1