CN103763569B - 一种基于先入先出队列的hevc细粒度并行预测方法 - Google Patents
一种基于先入先出队列的hevc细粒度并行预测方法 Download PDFInfo
- Publication number
- CN103763569B CN103763569B CN201410005285.8A CN201410005285A CN103763569B CN 103763569 B CN103763569 B CN 103763569B CN 201410005285 A CN201410005285 A CN 201410005285A CN 103763569 B CN103763569 B CN 103763569B
- Authority
- CN
- China
- Prior art keywords
- ctu
- size
- prediction
- input
- hevc
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 37
- 238000005192 partition Methods 0.000 claims description 3
- 230000006835 compression Effects 0.000 abstract description 6
- 238000007906 compression Methods 0.000 abstract description 6
- 238000010586 diagram Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 2
- 230000003321 amplification Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明公开一种基于先入先出队列的HEVC细粒度并行预测方法,其特征在于:允许一个编码树单元内部多个不同CU同时进行预测过程,并利用多个先入先出队列管理CU间的同步和通信。与现有技术相比,本发明充分利用了CTU内部的并行性,可以达到CTU内部理论上的最大并行度,并且不会带来任何压缩性能损失。
Description
技术领域
本发明涉及一种图像处理和视频编码领域的方法,具体是一种基于先入先出(FIFO,Fist In First Out)队列的HEVC编码树单元(CTU)内部并行预测方法。
背景技术
2013年1月国际电信联盟(ITU)通过的新一代视频编码标准HEVC(HighEfficiency Video Coding)相比于上一代标准H.264/AVC,在主观质量相同的前提下压缩效率提高了一倍。但是,压缩效率的提高是以计算复杂度的急剧上升为代价的,根据多方的测试和统计,HEVC比上一代标准H.264/AVC计算复杂度要高1~2个数量级。如何在保持高压缩效率的同时降低编码的复杂度,是HEVC应用和推广面临的一个迫切问题。
另一方面,由于物理因素的限制,单核处理器近些年的发展越来越缓慢,而多核(multi-core)和众核(many-core)处理器发展迅速,为大型程序提供强大的并行处理能力,典型的产品有多核中央处理器(CPU)和众核图形处理器(GPU)。HEVC的编码框架内存在很多的并行性可供研究,充分利用处理器提供的强大并行计算性能,为HEVC设计不同层次的并行化编码策略,可以给HEVC编码器带来数倍甚至数十倍的速度提升。
发明内容
本发明针对HEVC编码树单元的最佳划分和最佳预测模式判决问题,提供一种基于先入先出队列的CU级并行预测方法。该方法针CTU内部不同CU的预测过程提供并行化便利,在无任何压缩性能损失的同时还可以达到理论上的最大并行度。
为实现上述的目的,本发明所述的基于先入先出队列的HEVC CU级并行预测方法,包括如下步骤:
第一步,初始化:创建多个先入先出队列即FIFO队列,分别用于管理不同尺寸的CU或PU;
第二步,将CTU内所有CU或PU按尺寸分别压入相应的FIFO队列,入队顺序为相应尺寸CU或PU的四叉树扫描顺序;
第三步,各FIFO队列同时工作,从各自的队列中取出一个CU或PU进行预测,串行的兄弟CU或PU完成预测时,和它们所属的父CU进行RD代价比较,选取代价较小的作为当前父CU层的最佳划分和预测模式;
第四步,重复第三步,直到所有FIFO队列均为空,得到该CTU的最佳划分和最佳预测模式信息。
本发明的基本思想是允许CTU内的多个独立CU同时进行预测,并用FIFO队列管理CU间的同步。具体地,以帧内预测、CTU32x32、最大划分深度3为例,一个CTU内存在一个32x32CU、4个16x16CU、16个8x8CU以及64个4x4CU,所有CU均是串行进行。CU的处理时间大致正比于其像素个数,因此,设一个CU4x4的处理时间为一个时间单位,则8x8、16x16和32x32分别需要4、16和64个时间单位,整个CTU需要64×1+16×4+4×16+1×16=256个时间单位才能确定其最佳划分和每个划分的最佳预测模式。本发明提出的并行化方法,可以在64个时间单位内完成整个过程,加速比256/64=4。考虑到64已经是最少所需时间(单是CU32x32就需要64个时间单位),因此本发明方法已经达到此配置下理论上的最大并行度。帧间预测时预测单元(PU,Prediction Unit)的组合更多,但原理与此类似,最大并行度也为4。另外,本方法不受编码配置的限制,不同的CTU大小、不同的划分深度下本方法均可以达到相应配置下的最大并行度。
与现有技术相比,本发明具有以下有益效果:
本发明充分利用了CTU内部的并行性,可以达到CTU内部理论上的最大并行度,并且不会带来任何压缩性能损失,对CTU大小、划分深度、帧内、帧间预测等编码配置无特殊限制。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其他特征、目的和优点将会更加明显:
图1是CTU划分和其坐标图。
图2是8x8矩阵的四叉树扫描顺序图。
图3是本发明对帧内(intra)预测实施例的示意图。
图4是对图3第一个16x16CU部分的放大。
图5是本发明对帧间(inter)预测实施例CU16x16部分的示意图。
具体实施方式
下面结合具体实例对本发明进行详细说明。以下实施将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进。这些都属于本发明的保护范围。
本发明对CTU大小、划分深度、帧内、帧间预测等编码配置无特殊限制,下面以CTU大小32x32、最大划分深度3、帧内预测为例,来展示本方法的并行处理流程,其他配置下本方法同样适用,只需作相应改动即可。
首先介绍两个概念:先入先出(FIFO)队列和四叉树扫描顺序。
先入先出队列是数据结构和操作系统中的重要概念,其基本思想是将多个任务以一定的顺序放入队列中,处理程序每个从队列中取出一个任务执行,并严格保证先进入队列的任务一定比后进入队列的任务先执行。
HEVC编码单元以四叉树方式进行划分,相应地便存在四叉树扫描方式。四叉树扫描是对所有叶节点进行的一次深度优先遍历,该遍历以深度优先的方式递归地访问每个节点的四个子节点。附图2是对一个8x8矩阵的四叉树扫描,从左上角开始扫描到右下角元素,每个方块内的值表示该点被访问的顺序。
设CTU左上角像素位置为(0,0)。向右为x轴正方形,向下为y轴正方向,如附图1所示。以CUNxM(x,y)表示大小为NxM,左上角坐标为(x,y)的CU。对于每个CTU,HEVC以动态规划算法确定其最佳划分。对每个划分(CU),又以蛮力搜索(brute force searching)的方式从35种预测模式中寻找其最佳预测模式。
本发明允许一个编码树单元内部多个不同CU同时进行预测过程,并利用多个先入先出队列管理CU间的同步和通信。如图3所示,提供一个实施例,具体过程为:
第一步,初始化。创建4个FIFO队列,分别用于管理32x32~4x4四种尺寸的CU。
第二步,将CTU内所有CU(1个CU32x32、4个CU16x16、16个CU8x8、64个CU4x4)按尺寸分别压入相应的FIFO队列,入队顺序为相应尺寸CU的四叉树扫描顺序。
第三步,4个FIFO队列同时工作,从各自的队列中取出一个CU进行帧内预测。4个串行的兄弟CU完成预测时,和它们所属的父CU进行RD代价比较,选取代价较小的作为当前父CU层的最佳划分和预测模式。
第四步,4)重复步骤3),直到4个FIFO队列均为空,得到该CTU的最佳划分和最佳预测模式信息。
其中RD代价比较所占时间相对于预测过程可以忽略,因此每级的四个子CU处理时间完全隐藏在父CU处理时间内,最终一个CTU所需的总时间为64个时间单位如附图3和附图4所示,其中图4是对图3中第一个CU16x16部分的放大。由于一个CTU至少需要64个,因此这种基于FIFO队列的细粒度并行方法已经达到CTU内部理论上的最大并行度。帧间并行CU预测的过程与此类似,只是PU的组合更多,附图5给出了一个16x16CU及其8x8、4x4子CU的并行预测过程。因此该方法针CTU内部不同CU的预测过程提供并行化便利,在无任何压缩性能损失的同时还可以达到理论上的最大并行度。
下面提供另一个帧间预测实施例,编码配置为CTU32x32、最大划分深度3、允许非对称划分(AMP,Asymmetric Motion Partition)、帧间预测块不使用帧内模式、不使用PCM模式。
第一步,初始化。创建19个FIFO队列,分别用于管理32x32~4x8/8x4四种尺寸的PU。附图5给出了16x16部分的FIFO,其他部分的FIFO与此类似。
第二步,将所有PU按尺寸分别压入相应的FIFO队列,入队顺序为相应的四叉树扫描顺序。
第三步,各FIFO队列同时工作,从各自的队列中取出一个PU进行帧间预测。串行的兄弟PU完成预测时,和它们所属的父CU进行RD代价比较,选取代价较小的作为当前父CU层的最佳划分和预测模式。
第四步,4)重复步骤3),直到所有FIFO队列均为空,得到该CTU的最佳划分和最佳预测模式信息。
不同的编码配置,如CTU大小、划分深度、是否选用或跳过某些划分和预测模式组合、帧内/帧间/PCM预测等等,不会对本方法有实质性影响,只需对本文给出的方法稍作改变即可。例如只需在每级CU队列中增加一个并行FIFO,就可以支持PCM模式与帧内/帧间预测模式的并行,这些都属于本方法的保护范围。
本发明中其他没有具体说明的内容均可以采用现有技术实现,对帧内预测,FIFO队列的大小等于不同尺寸PU的数量;对帧间预测,FIFO队列的大小等于所有可能PU划分模式的数量。
尽管本发明的内容已经通过上述优选实施例作了详细介绍,但应当认识到上述的描述不应被认为是对本发明的限制。在本领域技术人员阅读了上述内容后,对于本发明的多种修改和替代都将是显而易见的。因此,本发明的保护范围应由所附的权利要求来限定。
Claims (1)
1.一种基于先入先出队列的HEVC细粒度并行预测方法,其特征在于所述方法包括如下步骤:
第一步,初始化:创建多个先入先出队列即FIFO队列,分别用于管理不同尺寸的CU或PU;
第二步,将CTU内所有CU或PU按尺寸分别压入相应的FIFO队列,入队顺序为相应尺寸CU或PU的四叉树扫描顺序;
第三步,各FIFO队列同时工作,从各自的队列中取出一个CU或PU进行预测,串行的兄弟CU或PU完成预测时,和它们所属的父CU进行RD代价比较,选取代价较小的作为当前父CU层的最佳划分和预测模式;
第四步,重复步骤第三步,直到所有FIFO队列均为空,得到该CTU的最佳划分和最佳预测模式信息;
对帧内预测,FIFO队列的大小等于不同尺寸PU的数量;对帧间预测,FIFO队列的大小等于所有可能PU划分模式的数量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410005285.8A CN103763569B (zh) | 2014-01-06 | 2014-01-06 | 一种基于先入先出队列的hevc细粒度并行预测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410005285.8A CN103763569B (zh) | 2014-01-06 | 2014-01-06 | 一种基于先入先出队列的hevc细粒度并行预测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103763569A CN103763569A (zh) | 2014-04-30 |
CN103763569B true CN103763569B (zh) | 2016-11-09 |
Family
ID=50530717
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410005285.8A Expired - Fee Related CN103763569B (zh) | 2014-01-06 | 2014-01-06 | 一种基于先入先出队列的hevc细粒度并行预测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103763569B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104125466B (zh) * | 2014-07-10 | 2017-10-10 | 中山大学 | 一种基于gpu的hevc并行解码方法 |
CN105791829B (zh) * | 2016-03-30 | 2019-05-03 | 南京邮电大学 | 一种基于多核平台的hevc并行帧内预测方法 |
WO2020063598A1 (en) * | 2018-09-25 | 2020-04-02 | Huawei Technologies Co., Ltd. | A video encoder, a video decoder and corresponding methods |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8265144B2 (en) * | 2007-06-30 | 2012-09-11 | Microsoft Corporation | Innovations in video decoder implementations |
-
2014
- 2014-01-06 CN CN201410005285.8A patent/CN103763569B/zh not_active Expired - Fee Related
Non-Patent Citations (3)
Title |
---|
《A Highly Efficient Parallel Algorithm for H.264 Encoder Based on Macro-Block Region Partition》;Shuwei Sun等;《High Performance Computing and Communications》;Springer;20071231;第577-585页 * |
《EFFICIENT REALIZATION OF PARALLEL HEVC INTRA ENCODING》;Yanan Zhao等;《Multimedia and Expo Workshops(ICMEW)》;20130719;第1-6页 * |
《Highly Parallel Mode Decision Method for HEVC》;Jun Zhang等;《Picture Coding Symposium(PCS)》;IEEE;20131211;第281-284页 * |
Also Published As
Publication number | Publication date |
---|---|
CN103763569A (zh) | 2014-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103688533B (zh) | 可减少行存储器的色度帧内预测方法及装置 | |
CN105491377B (zh) | 一种计算复杂度感知的视频解码宏块级并行调度方法 | |
CN102547289B (zh) | 基于gpu并行实现的快速运动估计方法 | |
CN106851293B (zh) | 用于帧内预测的解码图像的装置 | |
KR101588144B1 (ko) | 루마 기반 크로마 인트라 예측 | |
CN104885467B (zh) | 用于下一代视频编码的内容自适应参数变换 | |
CN102647594B (zh) | 一种整像素精度运动估计方法及其系统 | |
KR102144881B1 (ko) | 비디오 처리를 위한 송신 장치 및 방법 | |
DE112009004320T5 (de) | Speicher-Untersystem | |
US20100246665A1 (en) | Parallelization of high-performance video encoding on a single-chip multiprocessor | |
JP2010527194A (ja) | 動的運動ベクトル分析方法 | |
CN101860752B (zh) | 一种针对嵌入式多核系统的视频编码流水化并行方法 | |
CN103763569B (zh) | 一种基于先入先出队列的hevc细粒度并行预测方法 | |
CN107563951A (zh) | 在二维图像处理器上的统计操作 | |
CN101115207B (zh) | 基于预测点间相关性的帧内预测实现的方法及装置 | |
CN110337002A (zh) | 一种在多核处理器平台上hevc多层次高效并行解码算法 | |
CN102572430B (zh) | 一种基于可重构技术的h.264去块滤波算法的实现方法 | |
Abramowski et al. | A double-path intra prediction architecture for the hardware H. 265/HEVC encoder | |
CN101252691A (zh) | 一种多处理器并行实现高分辨率图像滤波的方法 | |
CN102647595B (zh) | 一种基于avs的亚像素运动估计的装置 | |
CN101383971A (zh) | 一种基于图像编解码的帧内预测的处理方法 | |
Liu et al. | Hybrid parallel bundle adjustment for 3d scene reconstruction with massive points | |
CN105160622B (zh) | 基于fpga的图像超分辨率的实现方法 | |
CN101256668A (zh) | 一种计算均衡的多核进行视频滤波的方法 | |
CN102769754A (zh) | H264编码器及其图像变换、量化及重构的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20161109 |