一种H.265/HEVC中8x8子宏块的并行帧内预测方法技术

技术编号:14557817 阅读:77 留言:0更新日期:2017-02-05 12:15
本发明专利技术公开了一种H.265/HEVC中8x8子宏块的并行帧内预测方法,包括以下步骤:统一帧内预测公式形式、建立系数表和参考位置表以及并行帧内预测的具体执行步骤,统一帧内预测公式形式与建立系数表和参考位置表是根据CUDA和帧内预测计算公式的特性制定而成的,更加有利于一个8x8子宏块块中64个待预测像素和相应的35种预测模式通过统一的预测公式进行预测,满足了CUDA多线程单指令多数据流的需求,实现了帧内预测子宏块中细粒度并行,消除了影响并行算法性能的大量分支语句。本发明专利技术在帧内预测过程中实现了像素级并行,可以有效地利用GPU中众核资源加速帧内预测过程,缩短编码时间。

A parallel intra prediction method of 8x8 sub macroblock in H.265/HEVC

The invention discloses a parallel frame 8x8 sub macroblock in H.265/HEVC prediction method, which comprises the following steps: unified intra prediction formula, establish coefficient table and the reference position table and parallel intra prediction in the specific implementation steps, unified intra prediction formula and establish coefficient table and the reference position table is based on CUDA and the characteristics of intra prediction formula is made, more conducive to a 8x8 macro block in 64 sub pixel to be predicted and the corresponding 35 prediction modes by predicting the unified formula to predict, to meet the CUDA multi-threaded SIMD needs, achieve intra prediction sub macroblock in fine grain parallelism, eliminates the influence of a large number of branches of the parallel algorithm performance. The invention realizes the pixel level parallelism in the intra prediction process, and can effectively utilize the public resources in the GPU to accelerate the intra prediction process and shorten the encoding time.

【技术实现步骤摘要】

本专利技术属于视频编码领域和显卡通用计算领域,更具体地,涉及一种H.265/HEVC中8x8子宏块的并行帧内预测方法
技术介绍
H.265/HEVC标准是提出不久的新一代视频压缩标准,在许多领域都开始推广应用。与之前的已经成熟的H.264/AVC标准相似,H.265/HEVC同样采用是的基于像素域的帧内预测方法,该方法针对可用的预测模式以及各种分块大小进行遍历计算,通过率失真公式得到一个在视频质量和视频压缩率两方面效果都比较好的一种预测模式,这种全模式预测使得整个过程计算复杂度相当高。H.265/HEVC相比于H.264/AVC标准采用更多帧内预测模式,由H.264/AVC标准的9种帧内预测模式增加到35种;同时采用了更多更大的预测块进行预测,这样能更好的处理高分辨率的视频。为了降低全模式预测的编码时间,研究者提出了许多行之有效的解决方案,其中基于GPU硬件加速的方法在减少编码时间上效果最好。基于GPU的帧内预测主要采用的是CUDA架构,它是由NVIDIA提出的通用计算平台,将复杂的GPU指令包装成浅显易懂的运行时指令,极大地降低了编写显卡设备代码的难度。CUDA采用的是一种类似于SIMD的执行模型,比较适合于易并行计算,对于数据相关性强、逻辑复杂的情况,CUDA并行并不是很好的选择。利用GPU的众核优势并行处理多帧图像,可以极大地提升编码效率。这一类算法需要修改视频帧中的像素块之间的编码顺序来提升并行度,其中一部分算法甚至牺牲视频质量,主动减少可使用的模式来降低数据依赖,进一步提升并行度。但是现有算法只是停留在粗粒度的并行方法上,对于细粒度的像素级并行仍然没有涉及,对GPU的性能还不能充分地利用。现有技术方案总是采用单线程来遍历计算8x8子宏块中的35种预测模式或者采用简单的块级并行策略,不能采用多线程来并行处理所有像素,这是由于编码块中每个像素所参考的重建像素值会随自己所在位置而变化,进这种情况会导致大量的分支语句,因此不适合采用CUDA来并行处理。
技术实现思路
针对现有技术的缺陷或改进需求,本专利技术提供了一种H.265/HEVC中8x8子宏块的并行帧内预测方法,其目的在于,根据CUDA执行模型以及8x8子宏块帧内预测中的特性,建立统一参考数组、系数表和参考位置表,消除了执行过程中的大量分支语句,从而实现了像素级的并行,使之可以更有效地利用GPU的众核优势。为实现上述目的,本专利技术提出了一种H.265/HEVC中8×8子宏块的并行帧内预测方法,其特征在于,所述方法包括以下步骤:(1)从已编码的视频帧中获取17个参考像素Ri,j,其中R1,0、R2,0、R3,0、R4,0、R5,0、R6,0、R7,0和R8,0为从左到右排列的上方参考像素,R9,0、R10,0、R11,0、R12,0、R13,0、R14,0、R15,0和R16,0为从左到右排列的右上方参考像素,R0,1、R0,2、R0,3、R0,4、R0,5、R0,6、R0,7和R0,8为从上到下排列的左侧参考像素,R0,9、R0,10、R0,11、R0,12、R0,13、R0,14、R0,15和R0,16为从上到下排列的左下方参考像素,R0,0为左上方参考像素;其中待预测8×8子宏块中的像素为Pi,j,i∈[1,8],j∈[1,8],所有待预测像素Pi,j构成8×8子宏块,所述待预测像素在对应的子宏块内的坐标位置表示为(x,y);(2)根据获取的参考像素生成一个长度为36的空的参考值数组Ref,该参考值数组用于存储Ri,j的像素、两个随机生成的保留值和一个根据H.265/HEVC标准对17个参考像素进行计算生成的预测值DC;(3)根据H.265/HEVC中针对8×8子宏块的帧内预测计算公式和参考值数组Ref构造系数表T1和参考位置表T2;(4)根据步骤(3)构造的系数表T1和参考位置表T2对8×8子宏块执行基于CUDA的并行帧内预测,其共有2240个线程用于并行处理所有35种预测模式。作为进一步优选的,步骤(3)包括以下子步骤:(3.1)将H.265/HEVC中针对8×8子宏块的帧内预测计算公式归纳成如下:针对预测模式18-34,帧内预测公式如下:pred(x,y,m)=((32-wy)·Ri,0+wy·Ri+1,0+16)>>5(1)cy=(y·d)>>5(2)wy=(y·d)&31(3)i=x+cy(4)其中Ri,0和Ri+1,0是8×8子宏块中的上方、右上方以及左上方参考像素,wy为权重因子,d为预测模式18-34中任一种预测模式相对于预测模式26的偏移量,x和y为待预测像素在对应的子宏块内的坐标位置,cy为与待预测像素纵坐标y有关的中间值,pred(x,y,m)是指坐标为(x,y)且预测模式为m的待预测像素的预测值,m表示8×8子宏块中帧内预测的18-34预测模式,(x,y,m)表示待预测像素对应的线程序号;针对预测模式2-18,帧内预测公式如下:pred(x,y,m)=((32-wx)·R0,j+wx·R0,j+1+16)>>5(5)cx=(x·d)>>5(6)wx=(x·d)&31(7)j=y+cx(8)其中R0,j和R0,j+1是8×8子宏块中的左侧、左下方以及左上方参考像素,wy为权重因子,d为预测模式2-18中任一种预测模式相对于预测模式10的偏移量,x和y为待预测像素在对应的子宏块内的坐标位置,cx为与待预测像素横坐标x有关的中间值,pred(x,y,m)是指坐标为(x,y)且预测模式为m的像素的预测值,m表示8×8子宏块中帧内预测的2-18预测模式,(x,y,m)表示待预测像素对应的线程序号;针对预测模式0,Plannar预测模式,帧内预测公式如下:predV(x,y,0)=(8-y)·Rx,0+y·R0,9(9)predH(x,y,0)=(8-x)·R0,y+y·R9,0(10)pred(x,y,0)=(predV(x,y,m)+predH(x,y,m)+8)>>4(11)其中Rx,0是和待预测像素横坐标x位置所对应的上方参考像素,R0,y是和待预测像素纵坐标y位置所对应的左侧参考像素,x和y为待预测像素在对应的子宏块内的坐标位置,pred(x,y,0)是指坐标为(x,y)且预测模式为0的像素的预测值,0表示8×8子宏块中帧内预测的预测模式0本文档来自技高网
...

【技术保护点】
一种H.265/HEVC中8×8子宏块的并行帧内预测方法,其特征在于,所述方法包括以下步骤:(1)从已编码的视频帧中获取17个参考像素Ri,j,其中R1,0、R2,0、R3,0、R4,0、R5,0、R6,0、R7,0和R8,0为从左到右排列的上方参考像素,R9,0、R10,0、R11,0、R12,0、R13,0、R14,0、R15,0和R16,0为从左到右排列的右上方参考像素,R0,1、R0,2、R0,3、R0,4、R0,5、R0,6、R0,7和R0,8为从上到下排列的左侧参考像素,R0,9、R0,10、R0,11、R0,12、R0,13、R0,14、R0,15和R0,16为从上到下排列的左下方参考像素,R0,0为左上方参考像素;其中待预测8×8子宏块中的像素为Pi,j,i∈[1,8],j∈[1,8],所有待预测像素Pi,j构成8×8子宏块,所述待预测像素在对应的子宏块内的坐标位置表示为(x,y);(2)根据获取的参考像素生成一个长度为36的空的参考值数组Ref,该参考值数组用于存储Ri,j的像素、两个随机生成的保留值和一个根据H.265/HEVC标准对17个参考像素进行计算生成的预测值DC;(3)根据H.265/HEVC中针对8×8子宏块的帧内预测计算公式和参考值数组Ref构造系数表T1和参考位置表T2;(4)根据步骤(3)构造的系数表T1和参考位置表T2对8×8子宏块执行基于CUDA的并行帧内预测,其共有2240个线程用于并行处理所有35种预测模式。...

【技术特征摘要】
1.一种H.265/HEVC中8×8子宏块的并行帧内预测方法,其特征在
于,所述方法包括以下步骤:
(1)从已编码的视频帧中获取17个参考像素Ri,j,其中R1,0、R2,0、
R3,0、R4,0、R5,0、R6,0、R7,0和R8,0为从左到右排列的上方参考像素,R9,0、
R10,0、R11,0、R12,0、R13,0、R14,0、R15,0和R16,0为从左到右排列的右上方参考
像素,R0,1、R0,2、R0,3、R0,4、R0,5、R0,6、R0,7和R0,8为从上到下排列的左侧
参考像素,R0,9、R0,10、R0,11、R0,12、R0,13、R0,14、R0,15和R0,16为从上到下排
列的左下方参考像素,R0,0为左上方参考像素;其中待预测8×8子宏块中的
像素为Pi,j,i∈[1,8],j∈[1,8],所有待预测像素Pi,j构成8×8子宏块,所述待
预测像素在对应的子宏块内的坐标位置表示为(x,y);
(2)根据获取的参考像素生成一个长度为36的空的参考值数组
Ref,该参考值数组用于存储Ri,j的像素、两个随机生成的保留值和一个根
据H.265/HEVC标准对17个参考像素进行计算生成的预测值DC;
(3)根据H.265/HEVC中针对8×8子宏块的帧内预测计算公式和参考
值数组Ref构造系数表T1和参考位置表T2;
(4)根据步骤(3)构造的系数表T1和参考位置表T2对8×8子宏块执
行基于CUDA的并行帧内预测,其共有2240个线程用于并行处理所有35种
预测模式。
2.根据权利要求1所述的并行帧内预测方法,其特征在于,步骤
(3)包括以下子步骤:
(3.1)将H.265/HEVC中针对8×8子宏块的帧内预测计算公式归纳成如
下:
针对预测模式18-34,帧内预测公式如下:
pred(x,y,m)=((32-wy)·Ri,0+wy·Ri+1,0+16)>>5(1)
cy=(y·d)>>5(2)
wy=(y·d)&31(3)
i=x+cy(4)
其中Ri,0和Ri+1,0是8×8子宏块中的上方、右上方以及左上方参考像素,
wy为权重因子,d为预测模式18-34中任一种预测模式相对于预测模式26的
偏移量,x和y为待预测像素在对应的子宏块内的坐标位置,cy为与待预测
像素纵坐标y有关的中间值,pred(x,y,m)是指坐标为(x,y)且预测模式
为m的待预测像素的预测值,m表示8×8子宏块中帧内预测的18-34预测模
式,(x,y,m)表示待预测像素对应的线程序号;
针对预测模式2-18,帧内预测公式如下:
pred(x,y,m)=((32-wx)·R0,j+wx·R0,j+1+16)>>5(5)
cx=(x·d)>>5(6)
wx=(x·d)&31(7)
j=y+cx(8)
其中R0,j和R0,j+1是8×8子宏块中的左侧、左下方以及左上方参考像
素,wy为权重因子,d为预测模式2-18中任一种预测模式相对于预测模式10
的偏移量,x和y为待预测像素在对应的子宏块内的坐标位置,cx为与待预
测像素横坐标x有关的中间值,pred(x,y,m)是指坐标为(x,y)且预测模
式为m的像素的预测值,m表示8×8子宏块中帧内预测的2-18预测模式,(x,
y,m)表示待预测像素对应的线程序号;
针对预测模式0,Plannar预测模式,帧内预测公式如下:
predV(x,y,0)=(8-y)·Rx,0+y·R0,9(9)
predH(x,y,0)=(8-x)·R0,y+y·R9,0(10)
pred(x,y,0)=(predV(x,y,m)+predH(x,y,m)+8)>>4(11)
其中Rx,0是和待预测像素横坐标x位置所对应的上方参考像素,R0,y是
和待预测像素纵坐标y位置所对应的左侧参考像素,x和y为待预测像素在
对应的子宏块内的坐标位置,pred(x,y,0)是指坐标为(x,y)且预测模式
为0的像素的预测值,0表示8×8子宏块中帧内预测的预测模式0,(x,y,0)表
示待预测像素对应的线程序号;
...

【专利技术属性】
技术研发人员:蒋文斌金海池也
申请(专利权)人:华中科技大学
类型:发明
国别省市:湖北;42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1