一种用于并行结构的多视点视频编码强滤波实现方法_2

文档序号:9492185阅读:来源:国知局
大小的宏块为单位的,每个宏块由16个4X4大小块组成,每两个相邻块之间可能出现块效应,所以需要对宏块的每个边界进行滤波。对于YUV格式下的宏块,其宏块是由亮度分量Y和色度分量U/V组成。宏块边界(图3)分为垂直边界和水平边界,左侧是亮度块(亮度分量对应的数据块),右侧是色度块(色度分量对应的数据块)。V0-V3即为亮度块的垂直边界,H0-H3为亮度块的水平边界,待滤波的像素是宏块边界每行两侧的8个像素点(p3、p2、p 1、p0、q0、ql、q2、q3)。同理,右侧的VO、VI是色度块的垂直边界,Hl、H2是色度块的水平边界,同样的,待滤波的像素是色度块边界每行两侧的8个像素点。去块滤波算法就是每次对宏块边界每行的8个像素点进行滤波计算。
[0030]本发明的具体实现步骤为:
[0031]a:对亮度分量Y进行滤波(图4,图中a-Ι为滤波顺序),PE00、PE01、PE02、PE03分别加载处理左侧亮度块R0 (左侧相邻的4X4数据块,属于另一宏块)和右侧亮度块1的第一行、第二行、第三行、第四行像素;PE04、PE05、PE06、PE07分别加载处理左侧亮度块R1 (左侧相邻的4X4数据块,属于另一宏块)和右侧亮度块5的第一行、第二行、第三行、第四行像素;PE08、PE09、PE10、PE11分别加载处理左侧亮度块R2 (左侧相邻的4X4数据块,属于另一宏块)和右侧亮度块9的第一行、第二行、第三行、第四行像素;PE12、PE13、PE14、PE15分别加载处理左侧亮度块R3(左侧相邻的4X4数据块,属于另一宏块)和右侧亮度块13的第一行、第二行、第三行、第四行像素。等数据加载完成后,PE00-PE15分别根据所加载的数据进行并行滤波运算,待滤波运算完成后,对亮度分量的垂直边界VO的滤波计算完毕。
[0032]b:对色度分量U (图5,图中b-k为滤波顺序),V (图6,图中b_k为滤波顺序)进行滤波处理。此时也是16个PE并行处理,PE00-PE07处理色度分量U的垂直边界;PE08_PE15处理色度分量V的垂直边界。并且在整个滤波计算中,用于处理U、V分量的PE固定不变,这样做的优点是:对色度分量U、V的数据处理是完全不相关的,可以分开处理,增加并行度;而处理色度分量U或V的对应的8个PE之间是有数据相关的,例如ΡΕ00可能会用到PE01-PE07中任何一个PE的数据,这样,就需要使PE00-PE07、PE08_PE15固定处理一个U或V分量的数据,以方便数据间通信。
[0033]分量U的色度块处理过程:用ΡΕ00、PE01、PE02、PE03分别处理左侧色度块R0和右侧色度块1的第一行、第二行、第三行、第四行像素;PE04、PE05、PE06、PE07分别处理左侧色度块R1和右侧色度块3的第一行、第二行、第三行、第四行像素。分量V的色度块处理过程:PE08、PE09、PE10、PE11分别处理左侧色度块R0和右侧色度块1的第一行、第二行、第三行、第四行像素;PE12、PE13、PE14、PE15分别处理左侧色度块R1和右侧色度块3的第一行、第二行、第三行、第四行像素。PE00-PE15滤波计算都是并行的,此时,它们的色度滤波标志位chromaFlag都为1,并且不需要重新计算BS值,而是把对应亮度分量的BS值直接复制过来。待16个PE计算完成后,便完成了色度分量U、V各自对应的垂直边界V0的滤波。
[0034]c:对于亮度块(1、5、9、13),使用的是a中PE00-PE15已经分别处理的数据,无需重新加载。所以此时,PE00-PE15只需分别加载右侧块2,6,10, 14的像素即可。PE00、PE01、PE02、PE03分别加载右侧当前块2的第一行、第二行、第三行、第四行像素;PE04、PE05、PE06、PE07分别加载右侧当前块6的第一行、第二行、第三行、第四行像素;PE08、PE09、PE10、PE11分别加载右侧当前块10的第一行、第二行、第三行、第四行像素;PE12、PE13、PE14、PE15分别加载右侧当前块14的第一行、第二行、第三行、第四行像素。等数据加载完成后,PE00-PE15分别根据所加载的数据进行滤波运算,待滤波运算完成后,对亮度分量的垂直边界VI的滤波计算完毕。
[0035]d:同理,PE00-PE15按照和c相同的方式加载和处理垂直边界V2对应的数据,并行进行滤波计算。待16个PE滤波完成后,便完成了垂直边界V2的滤波计算。
[0036]e:此时需要对色度分量U、V的垂直边界VI进行滤波。此时,V、U分量的色度块1、3需要的数据是b中PE00-PE15处理后的数据,所以在PE00-PE15中已经分别存有该数据。那么只需P00-P07分别加载U分量色度块2、4的每行数据,PE07-PE15分别加载V的块2、4的每行数据即可。此时,数据加载完毕后,16个PE便可以进行并行滤波计算,它们之间的操作互不影响。待16个PE计算完毕,即完成了 U、V的垂直边界VI的滤波。
[0037]f:同样的,按照和c相同的处理方式,将PE00-PE15分别加载亮度分量Y的垂直边界V3对应的数据,并行进行滤波计算。待16个PE滤波完成后,便完成了垂直边界V3的滤波计算。
[0038]g:此时,对宏块的垂直滤波已经完成,需要对宏块的水平边界进行滤波。ΡΕ00、PE01、PE02、PE03分别处理上侧亮度块T0 (上侧相邻的4X4数据块,属于另一宏块)和下侧亮度块1的第一列、第二列、第三列、第四列像素;PE04、PE05、PE06、PE07分别处理上侧亮度块T1 (上侧相邻的4X4数据块,属于另一宏块)和下侧亮度块2的第一列、第二列、第三列、第四列像素;PE08、PE09、PE10、PE11分别处理上侧亮度块T2 (上侧相邻的4X4数据块,属于另一宏块)和下侧亮度块3的第一列、第二列、第三列、第四列像素;PE12、PE13、PE14、PE15分别处理上侧亮度块T3 (上侧相邻的4X4数据块,属于另一宏块)和下侧亮度块4的第一列、第二列、第三列、第四列像素。
[0039]此时,以ΡΕ00为例,来说明每个PE00-PE03的数据加载过程。当前,ΡΕ00中已经有数据p0,那么只需再加载剩余七个数据即可,所以对T0的第一列像素q0、ql、q2、q3可以直接从图像的数据中读取,而数据pl、p2、p3则是分别由PE01、PE02、PE03共享而得到的。PE04-PE15的数据获取方式是:最上侧数据直接从图像中加载,下侧数据通过共享PE01-PE03的数据而得到。当PE00-PE15的所需数据准备好后就可以进行并行工作,进而完成对亮度分量水平边界H0的滤波。
[0040]h:色度分量U、V的垂直边界滤波已经完成。需要对其水平边界进行滤波。相同的,依旧用PE00-PE07对色度分量U进行滤波处理;PE08-PE15对色度分量V进行滤波处理。此时,PE00-PE03只需分别加载T0第一列到第四列的数据,然后从PE00-PE03中获取所需的相应其它三个数据即可。而PE04-PE07需分别加载T0第一列到第四列的数据,并从PE00-PE03中获取其它的4个数据。用于处理色度分量V的PE08-PE15,其数据加载也是如此。等数据准备好后,便可以并行执行滤波过程,完成对色度分量u、V的水平边界H0的滤波。
[0041]1:用PE00-PE15并行处理H1。同样的,用PE00-PE03分别处理亮度块1和块5的第一列、第二列、第三列、第四列像素点;用PE04-PE07分别处理亮度块2和块6的第一列、第二列、第三列、第四列像素点;用PE07-PE11分别处理亮度块3和块7的第一列、第二列、第三列、第四列像素点;用PE12-PE15分别处理亮度块4和块8的第一列、第二列、第三列、第四列像素点。而此时PE00-PE15已经分别存有亮度块1、2、3、4每列的像素,所以只需获取亮度块5、6、7、8每列的像素即可。并且对于PE04-PE07而言,每个PE自身已经存有亮度块6的一个像素点,所以只需加载三个像素点即可。当数据准备好后,即可并行进行滤波,从而完成对亮度分量水平边界H1的滤波。
[0042]j:对亮度分量水平边界H2进行滤波。其数据准备方式和i相同,同样的,用PE00-PE03分别处理亮度块5和块9的第一列、第二列、第三列、第四列像素点;用PE04-PE07分别处理亮度块6和块10的第一列、第二列、第三列、第四列像素点;用PE07-PE11分
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1