法律状态公告日
法律状态信息
法律状态
2017-10-10
授权
授权
2015-03-25
实质审查的生效 IPC(主分类):H04N19/593 申请日:20141029
实质审查的生效
2015-02-18
公开
公开
技术领域
本发明属于高清数字视频压缩编解码技术领域,针对HEVC视频编解码标准,具体涉及一种用于HEVC标准中帧内预测的预测单元的硬件编址寻址方法。
背景技术
HEVC(High Efficiency Video Coding)是由国际电信组织(ITU)和运动图像专家组(MPEG)联合成立的组织JCTVC提出的下一代视频编解码标准。目标是在相同的视觉效果的前提下,相比于上一代标准,即H.264/AVC标准,压缩率提高一倍。
基于HEVC的视频编码器,主要由以下模块组成:帧内预测、帧间预测、变换、量化、反量化、反变换、重建、去方块滤波器、自适应样点补偿等。其中,帧内预测利用同一帧图像内相邻像素之间的相关性,采用合适的方法进行预测,以减小空间冗余度,从而达到压缩的效果。为了提高预测的准确性,HEVC引入了基于四叉树的块结构,具体地,图像处理块的最大单位(LCU)可以是一个64×64块,而该64×64块可以被划分成4个32×32块,每个32×32块又可以被划分为4个16×16块,依次类推直到4×4块的层次,这些块被统一地称为预测单元(PU)。可以说,帧内预测的过程就是搜索预测单元(PU)的过程,而在这样的搜索过程中,对于当前预测单元(PU)的寻址是必不可少的,寻址的复杂直接影响了编码的效率和性能。
发明内容
本发明的目的在于提出一种可以克服现有技术不足的、高效的、用于HEVC标准中帧内预测的预测单元的硬件编址寻址方法。
假设当前编码的最大单位(LCU)为一个64×64块,那么对于当前的处理单位,其中所有4×4大小的预测单元(PU)将按照Z字(Zig-Zag)顺序编址,如图1所示。该顺序实际上也是HEVC标准中所采用的处理顺序,如图2所示。
而对于其他预测单元(PU),将以其左上角的4×4块表征其地址,8×8的情况如图3所示,16×16的情况如图4所示。
在此编址基础上,如果帧内预测按照前序遍历的顺序搜索,如图5所示,其中,圆圈内包含的数字表征了搜索顺序,那么对于下一块预测单元(PU)的寻址可以利用公式(1)完成:
(1)
此处,Addrnxt是下一个PU的地址,Addrcur是当前PU的地址,Sizenxt是下一个的PU的大小,Sizecur是当前的PU的大小,Addrnxt和Addrcur的单位是4×4大小的预测单元(PU),Sizenxt和Sizecur取的是预测单元(PU)的边长,单位是像素。
如果帧内预测按照后序遍历的顺序搜索,如图6所示,其中,圆圈内包含的的数字表征了搜索顺序,那么对于下一块预测单元(PU)的寻址可以利用公式(2)完成:
(2)
此处,Addrnxt是下一个PU的地址,Addrcur是当前PU的地址,Offset是需要加上的偏移地址,Sizenxt是下一个的PU的大小,Sizecur是当前的PU的大小,Addrnxt、Addrcur和Offset的单位是4×4大小的预测单元(PU),Sizenxt和Sizecur取的是预测单元(PU)的边长,单位是像素。
如果帧内预测按照给定分块(Partition)的顺序搜索,那么对于下一块预测单元(PU)的寻址可以利用公式(3)完成:
(3)
此处,Addrnxt是下一个PU的地址,Addrcur是当前PU的地址,Offset是需要加上的偏移地址, Sizecur是当前的PU的大小Addrnxt、Addrcur和Offset的单位是4×4大小的预测单元(PU),Sizecur取的是预测单元(PU)的边长,单位是像素。
使用本方法,可以有效地结合不同的搜索方式和不同块大小的预测单元(PU),简化对于预测单元(PU)的寻址操作,降低硬件复杂度,提高编码器的性能。
附图说明
图1:4×4大小预测单元(PU)的编址。
图2:Z字(Zig-Zag)顺序示意。
图3:8×8大小预测单元(PU)的编址。
图4:16×16大小预测单元(PU)的编址。
图5:前序遍历全搜索。
图6:后序遍历全搜索。
图7:给定分块(Partition)方式搜索的一个例子。
具体实施方式
下面通过实例并结合附图,进一步具体描述本发明方法。
如对于图5所示的前序遍历的搜索顺序,帧内预测将:
1. 搜索64×64块,其地址为0;
2. 搜索该64×64块中的第1个32×32块,其地址为1;
3. 搜索该32×32块中的第1个16×16块,其地址为1;
4. 搜索该16×16块中的第1个8×8块,其地址为1;
5. 搜索该8×8块中的1个4×4块,其地址为1;
6. 搜索该8×8块中的2个4×4块,其地址为2(1+1);
7. 搜索该8×8块中的3个4×4块,其地址为3(2+1);
8. 搜索该8×8块中的4个4×4块,其地址为4(3+1);
9. 搜索上一层16×16块中的第2个8×8块,其地址为5(4+1);
10. 搜索该8×8块中的1个4×4块,其地址为5;
11. 搜索该8×8块中的1个4×4块,其地址为6(5+1);
12. 搜索该8×8块中的1个4×4块,其地址为7(6+1);
13. 搜索该8×8块中的1个4×4块,其地址为8(7+1);
14. 搜索上一层16×16块中的第3个8×8块,其地址为9(8+1);
15. 搜索该8×8块中的1个4×4块,其地址为9;
16. 搜索该8×8块中的1个4×4块,其地址为10(9+1);
17. 搜索该8×8块中的1个4×4块,其地址为11(10+1);
18. 搜索该8×8块中的1个4×4块,其地址为12(11+1);
……
列出该顺序后,可以得到在下一个预测单元(PU)的大小小于当前预测单元(PU)的大小的情况下,预测单元(PU)的地址不变;在下一个预测单元(PU)的大小大于等于当前预测单元(PU)的大小的情况下,预测单元(PU)的地址加1。此处,地址仍以一个4×4大小的预测单元(PU)作为基本单位。
又对图6所示的后序遍历的搜索顺序,帧内预测将:
1. 搜索第1个4×4块,其地址为1;
2. 搜索第2个4×4块,其地址为2(1+1);
3. 搜索第3个4×4块,其地址为3(2+1);
4. 搜索第4个4×4块,其地址为4(3+1);
5. 搜索第1个8×8块,其地址为1(4-3*1);
6. 搜索第5个4×4块,其地址为5(1+4);
7. 搜索第6个4×4块,其地址为6(5+1);
8. 搜索第7个4×4块,其地址为7(6+1);
9. 搜索第8个4×4块,其地址为8(7+1);
10. 搜索第2个8×8块,其地址为5(8-3*1);
11. 搜索第9个4×4块,其地址为9(5+4);
12. 搜索第10个4×4块,其地址为10(9+1);
13. 搜索第11个4×4块,其地址为11(10+1);
14. 搜索第12个4×4块,其地址为12(11+1);
15. 搜索第3个8×8块,其地址为9(12-3*1);
16. 搜索第13个4×4块,其地址为13(9+4);
17. 搜索第14个4×4块,其地址为14(13+1);
18. 搜索第15个4×4块,其地址为15(13+1);
……
列出该顺序后,可以得到在下一个预测单元(PU)的大小大于当前预测单元(PU)的大小的情况下,下一个预测单元(PU)的地址等与当前地址减去之前所述的Offset变量的3倍;在下一个预测单元(PU)的大小小于等于当前预测单元(PU)的大小的情况下,下一个预测单元(PU)的地址等于当前地址加上Offset变量。此处,地址仍以一个4×4大小的预测单元(PU)作为基本单位。
再如对图7所示的基于给定分块方式(Partition)的搜索,在这个示例下,帧内预测将:
1. 搜索第1个32×32块,其地址为1;
2. 搜索下一个8×8块,其地址为65(1+64);
3. 搜索下一个8×8块,其地址为69(65+4);
4. 搜索下一个8×8块,其地址为73(69+4);
5. 搜索下一个8×8块,其地址为77(73+4);
6. 搜索下一个16×16块,其地址为81(77+4);
7. 搜索下一个16×16块,其地址为97(81+16);
8. 搜索下一个16×16块,其地址为113(97+16);
9. 搜索下一个16×16块,其地址为129(113+16);
10. 搜索下一个16×16块,其地址为145(129+16);
11. 搜索下一个8×8块,其地址为161(145+16);
12. 搜索下一个8×8块,其地址为165(161+4);
13. 搜索下一个8×8块,其地址为169(165+4);
14. 搜索下一个8×8块,其地址为173(169+4);
15. 搜索下一个16×16块,其地址为177(173+4);
16. 搜索下一个16×16块,其地址为193(177+16);
17. 搜索下一个16×16块,其地址为209(193+16);
18. 搜索下一个16×16块,其地址为225(209+16);
19. 搜索下一个8×8块,其地址为241(225+16);
20. 搜索下一个8×8块,其地址为245(241+4);
21. 搜索下一个8×8块,其地址为249(245+4);
22. 搜索下一个8×8块,其地址为253(249+4);
列出该顺序后,可以得到在下一个预测单元(PU)的大小大于当前预测单元(PU)的大小的情况下,下一个预测单元(PU)的地址永远等于当前地址加上之前所述的Offset变量。
机译: 基于HEVC纹理的块大小早期决策方法,用于HEVC编码器中的快速帧内预测
机译: 基于HEVC纹理的块大小早期决策方法,用于HEVC编码器中的快速帧内预测
机译: 一种优化的存储寻址方法,用于使用从指令派生的编码地址对多个存储单元中的一个站点进行寻址,从而使存储器寻址的方法步骤减少了