对数据重新格式化以减小视频编码器和缓冲器之间的带宽的制作方法

文档序号:7886054阅读:211来源:国知局
专利名称:对数据重新格式化以减小视频编码器和缓冲器之间的带宽的制作方法
对数据重新格式化以减小视频编码器和缓冲器之间的带宽
背景技术
本申请一般涉及视频编码器。视频编码器用于获得视频数据并将其编码成占用较少空间的格式。作为结果,可以更加有效地使用发送视频信息的设备与接收视频信息的设备之间所消耗的带宽,或者同时可以在这些设备之间发送更多的数据。通常,将编码器所使用的视频数据格式化成16X16大小的块,其被称为宏块。宏块的使用广泛地应用于视频压缩领域的各个地方。作为结果,在大部分常规操作中,使用16X16大小的宏块。例如,存储器可以存储(之前编码的)参考帧。将当前处理的帧与参考帧进行比较以去除冗余。编码过程可以依赖于这些参考帧以及这些参考帧与当前处理的帧之间的差。一般地,因为视频数据是存储在16X16大小的块中的,所以使用16X16大小的块的格式来在视频编码器所使用的存储器中存储参考帧。然而,一些存储器,例如双倍数据速率3 (DDR3)静态动态随机存取存储器(参见可从 JEDEC 获得的 DDR3SDRAM 标准,JESD79-3D,2009 年 9 月,Arlington,VA22201),响应于对数据宏块的请求,提供两个宏块而不是一个宏块。实际上,在一般的视频编码器中,从存储器中获取参考图像消耗了编码器和存储器之间的大部分带宽。因而,在编码器每次请求来自参考图像的16X16大小的宏块时,存储器可能返回两个并肩的16 X 16大小的宏块,而不是一个16 X 16大小的宏块。这是因为在DDR3标准中规定了 32字节的最小突发长度。从DDR3存储器中获取的32字节包含所请求的宏块中的一个16字节的行以及右侧宏块中的一个16字节的行。视频编码器仅仅消耗所请求的16X 16大小的宏块,并且丢弃右侧的宏块。这导致消耗了两倍的带宽,这是因为对单独的16X16大小的宏块的每个请求导致消耗了两个宏块的带宽。


图1是本发明一个实施例的示意图;图2是一个实施例的流程图;图3是根据本发明一个实施例的块格式;以及图4是根据本发明另一实施例的块格式。
具体实施例方式根据一些实施例,存储在视频编码器参考图像缓冲器中的宏块的宽高比可以从常规宽度变化到与某些存储器(例如DDR3存储器)的最小突发长度相匹配的宽度。在一些实施例中,常规的宏块宽度16个字节以及高度16个行在一个实施例中可以变化成非对称的宽度32个字节以及高度8个行。随后,将16X16大小的宏块中的两个连续的16字节的行重新映射到32X8大小的宏块中的一个32字节的行(被称为“排(row)”以区分对称的(例如16X 16)宏块和非对称的(例如32X8)宏块中的“行(Iine)”)。新的宏块宽度32个字节与某些存储器(例如DDR3存储器)所使用的最小突发长度32个字节相匹配。将16X16大小的宏块重新格式化成32X8大小的宏块,使得其可以在八个32字节的请求中在参考图像缓冲器中被访问。八个32字节的请求正好返回来自存储器的32X8或256个字节,从而在一些实施例中产生了带宽效率。相反,使用DDR3存储器的常规视频编码器响应于八个请求而接收512个字节,从而与本发明的一些实施例相比产生了两倍的带宽消耗。参考图1,视频编码系统10包括视频编码器12。视频编码器12接收图像数据并输出已编码的流。编码器12从图像帧的左角开始写出参考图像,作为宏块。与视频编码器通信的桥14将对称的宏块重新格式化成非对称的宏块。在一个实施例中,该桥可以是存储器桥。在一个实施例中,重新格式化可以涉及调整(swizzling)。存储器或缓冲器15随后存储重新格式化后的宏块。视频编码器12从缓存器15中读取的参考图像的非对称宏块被桥14重新格式化成对称宏块。在一个实施例中,缓冲器15可以是最小突发长度比常规16 X 16大小的宏块的宽度更长的任意存储器,包括具有32字节的最小突发长度的DDR3SDRAM存储器。当然,未来可能使用甚至更大的突发长度,在这种情况下,可以进行块非对称性的相应调整。例如,如果参考图像缓冲器使用64字节的最小突发长度,那么将简单地将宏块中的高度或排数切成两半,使得重新格式化后的宏块为64X4个像素。参考图2,在一个实施例中,可以由桥14实现的序列17可以是硬件、软件或固件。在软件实施例中,序列17可以由存储在非暂时性计算机可读介质上的指令来实现。这些指令可以由适当的处理器来执行。例如,在软件实施例中,存储设备可以存储指令。存储设备可以是磁、光或半导体存储器。因而,例如,作为一个实施例,桥14可以包括存储指令的存储设备以及执行这些指令的处理器。在另一实施例中,该序列可以实现成编码器12的一部分。图2中所示的序列17初始确定(方块18)所涉及的编码类型。桥14通常已经知道编码器12所处的模式。在一个实施例中,如果编码需要参考图像,如菱形20中所确定的,那么将参考图像作为第一类型的32X8大小的宏块存储在缓冲器14中(方块22)。在这种情况中,重新格式化仅仅涉及一次组合来自16X16大小的宏块的两个行,以形成32X8大小的宏块的每个行。否则,如果菱形20处的检查失败了,那么菱形24处的检查确定系统是否正在使用图像自适应帧场编码。如果是,则以第二类型的格式以32X8大小来处理宏块,如方块26中所指示的。在图像自适应帧场编码中,帧可以被渐进地写入,以及交错地读回,以作为顶场或底场。帧也可以被交错地写入,以及被渐进地读回。在另一实施例中,还可以针对宏块自适应帧场(MBAFF)编码进行28处的检查。在这种情况中,在一些实施例中,可以针对这种类型的编码来优化非对称宏块,如方块30中所指示的。因而,参考图3,描绘了第一类型的参考块格式。其具有从0到31或者32字节的长度以及8行的深度。符号“In”与渐进的宏块行号相对应。因而,图3示出了总共十六个宏块中的第一组五个宏块中的每个32X8大小的宏块内的行的布置。其余的宏块简单地重复所描绘的序列。
对于图像自适应帧场编码访问(也称为图像级帧/场编码)而言,可以使用图4中所示的格式。Tn是指行η处的顶场(其包括帧在宏块中的奇数行),并且Bn是指行η处的底场(其包括宏块的偶数行)。如图4中所示的,在一个实施例中,针对图像自适应帧场编码,将顶场和底场的行重新映射到32X8大小的宏块的格式上,以优化带宽效率。第一行包括来自16X 16大小的宏块的两个偶数行(L2和L0)。第二行包括来自16X16大小的宏块的两个奇数行(L3和LI)。因而,奇数行组成顶场,并且偶数行组成底场。在图像自适应帧场编码中,视频编码器12可以逐帧(渐进地)或逐场(用于交错的图像)进行读取。如果对参考图像中的32X8大小的宏块进行参考以进行基于场的编码,那么编码器获取第一、第三、第五和第七行来进行顶场编码,并且单独地获取第二、第四、第六和第八行来进行底场编码。如果对参考图像中的32X8大小的宏块进行参考以进行基于帧的编码,那么在基于场和基于帧的编码的例子中,编码器获取第一、第二、第三和第八行。在一个实施例中,编码器使用32X8大小的宏块的行的全部,从而在一些实施例中优化带宽。在一些实施例中,来自32X8大小的宏块的每个行的32字节可以组成连续的场行。使用连续的场行确保了针对所有32字节的突发的场编码来自相同的场,顶场或底场。在PAFF中,如果从缓冲器15中渐进地读出宏块,那么读出的行将是乱序的。在一个实施例中,桥14负责对行进行重新排序,使得编码器12注意不到重新格式化。贯穿本说明书提及“一个实施例”或“实施例”是指结合该实施例描述的特定特征、结构或特性包括在涵盖于本发明内的至少一个实现中。因而,短语“一个实施例”或“在实施例中”的出现未必是指同一实施例。此外,除了所示的特定实施例以外,可以以其它适当的形式来实现所述特定特征、结构或特性,并且所有这样的形式都可以涵盖在本申请的权利要求内。虽然上面讨论了 32X8大小的宏块,但是通常,可以以相同的方式来处理亮度宏块、色度宏块的大小。一般地,色度宏块是32X4大小的宏块,这是因为存在的亮度数据是色度数据的两倍。因而,本发明应用于亮度宏块和色度宏块。虽然已经关于有限数量的实施例描述了本发明,但是本领域技术人员将理解从其而来的多种修改和变形。所附权利要求旨在涵盖落入本发明真实精神和范围内的所有这些修改和变形。
权利要求
1.一种方法,包括: 针对从视频编码器到最小突发长度大于16个字节的缓冲器的每个请求,仅使一个宏块突发。
2.如权利要求1所述的方法,还包括: 从所述缓冲器向所述视频编码器提供数据的宏块,所述宏块的大小被调整以与所述缓冲器的最小突发长度相匹配;以及 仅从所述缓冲器供应能够被所述视频编码器充分使用的数据。
3.如权利要求1所述的方法,包括:提供32字节宽X8行的宏块的突发传输。
4.如权利要求1所述的方法,包括:将DDR3静态动态随机存取存储器用作所述缓冲器。
5.如权利要求1所述的方法,包括:响应于从所述视频编码器到所述缓冲器的对于参考图像数据的请求,而提供大小被非对称地调整的宏块。
6.如权利要求1所述的方法,包括:在所述缓冲器中将顶场存储成偶数行或奇数行中的一个,并且将底场存储成所述偶数行或所述奇数行中的另一个。
7.如权利要求2所述的方法,包括:选择性地对宏块进行重新格式化,以用于图像自适应帧场编码或非图像自适应帧场编码。
8.如权利要求1所述的方法,包括:使用宽度至少等于与所述缓冲器的最小突发长度相关联的字节数量的宏块。
9.一种装置,包括: 最小突发长度大于16个字节的缓冲器;以及 耦合到所述缓冲器的编码器,用于针对每一个对所述缓冲器的请求,仅使一个宏块突发。
10.如权利要求9所述的装置,其中,所述编码器提供32字节宽X8行的宏块的突发传输。
11.如权利要求9所述的装置,所述缓冲器用于向所述编码器提供数据的宏块,所述宏块的大小与所述缓冲器的最小突发长度相匹配,并且所述缓冲器用于仅供应能够被所述视频编码器充分使用的数据。
12.如权利要求9所述的装置,其中,所述缓冲器是DDR3静态动态随机存取存储器。
13.如权利要求9所述的装置,所述编码器用于响应于从所述视频编码器到所述缓冲器的对于参考图像数据的请求而提供大小被非对称地调整的宏块。
14.如权利要求9所述的装置,所述缓冲器将顶场存储成偶数行或奇数行中的一个,并且将底场存储成偶数行或奇数行中的另一个。
15.如权利要求11所述的装置,所述编码器用于选择性地对数据的宏块进行重新格式化,以用于图像自适应帧场编码或非图像非自适应帧场编码。
16.一种存储指令的计算机可读介质,所述指令被视频编码器执行以: 针对从所述视频编码器到最小突发长度大于16个字节的缓冲器的每个请求,仅使一个宏块突发。
17.如权利要求16所述的介质,还存储用于从所述缓冲器向所述视频编码器提供数据的宏块以及仅从所述缓冲器供应能够被所述视频编码器充分使用的数据的指令,所述宏块的大小与所述缓冲器的最小突发长度相匹配。
18.如权利要求16所述的介质,还存储用于响应于从所述视频编码器到所述缓冲器的对于参考图像数据的请求而提供大小被非对称地调整的宏块的指令。
19.如权利要求16所述的介质,还存储用于在缓冲器中将顶场存储成偶数行或奇数行中的一个并且将底场存储成偶数行或奇数行中的另一个的指令。
20.如权利要求17所述的介质,还存储用于选择性地对宏块进行重新格式化以用于图像自适应帧场编码或非图像自适应 帧场编码的指令。
全文摘要
参考图像缓冲器可以向视频编码器供应非对称的宏块,以改善编码器与缓冲器之间的带宽。宏块的宽度可以被调整以与缓冲器的最小突发长度相匹配。可以通过减小宏块的高度来使得宏块的大小保持不变。
文档编号H04N5/232GK103210640SQ201180054601
公开日2013年7月17日 申请日期2011年9月8日 优先权日2010年9月15日
发明者M·L·库尔特 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1