CN103414902A - 用于低功耗应用的avc并行编码方法 - Google Patents
用于低功耗应用的avc并行编码方法 Download PDFInfo
- Publication number
- CN103414902A CN103414902A CN2013103760596A CN201310376059A CN103414902A CN 103414902 A CN103414902 A CN 103414902A CN 2013103760596 A CN2013103760596 A CN 2013103760596A CN 201310376059 A CN201310376059 A CN 201310376059A CN 103414902 A CN103414902 A CN 103414902A
- Authority
- CN
- China
- Prior art keywords
- coding
- macro block
- power consumption
- parallel
- language element
- 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.)
- Pending
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明公开了一种用于低功耗应用的AVC并行编码方法,将图像编码分两步进行,第一步实现预测以及语义元素计算,第二步再进行语言元素熵编码。通过采用行宏块并行编码不仅可以降低编码引擎的时钟频率要求,进而降低编码功耗,同时可以大幅度提升编码过程中的数据复用水平,降低对外的数据访问带宽,从另一个层面上也可以降低系统的功耗,满足低功耗应用的要求。另一方面,独立的宏块行运算(第一步)和语言元素熵编码的复杂度基本不受并行运算影响,算法性能降低以及实现复杂度的增加很少。
Description
技术领域
本发明属于视频编解码领域,涉及一种低功耗的H.264/AVC并行编码方法,尤其是涉及二步法编码、以宏块行(Marco-Block Row)为基本单位的编码并行以及编码过程方法。
背景技术
H.264/AVC标准以其卓越的图像压缩性能已经为业界所接受,然而随着需要编码的图像幅面从CIF上升至D1、720P、1080P甚至4Kx2K(超高清),H.264编码更高的运算量在一些低功耗要求高的领域就成为一个主要问题。业界降低H.264编码功耗在算法实现阶段采用的手段是通过并行处理来降低编码过程中的硬件/处理器的时钟频率,进而降低硬件运行电压来降低系统功耗。
参阅图1所示,由于H.264/AVC编码过程是一个紧耦合的闭环过程,同一个条带(Slice)中前面的宏块如果没有完成编码,后面的宏块则因无相关的中间数据支撑不能启动编码,目前H.264/AVC编码的可采用并行编码方式主要是GOP(Group of Picture)级并行、Slice level并行以及微结构级并行,前两者利用编码过程的不相关进行并行处理,这样的并行处理带来的问题是图像编码延迟增加,而微结构级的并行则是指在宏块编码过程中具体的编码处理为并行操作。例如运动搜索过程中可以几种块模式/几个搜索点同时运算,进而缩短宏块的编码时间,但是这种方式的并行是有限的,因为这种并行度的提升会导致硬件/软件的复杂度剧增,反而不利编码功耗的降低,随着待编码视频幅面的增大和帧率的提升,这种并行方式难以为继,而且基于CPU/GPU的软件编码方式也无法同时使用多核资源,制约了硬件资源增加带来的编码性能提升,通过提升CPU/GPU的时钟可以增加编码器性能,但是会带来功耗大幅度提升的负面效应。
发明内容
本发明所要解决的技术问题是提供一种在不降低编码质量的前提下,解决H.264/AVC Slice编码过程中前后编码过程的紧耦合特征,使得H.264/AVC Slice编码过程可以并行开展的用于低功耗应用的AVC并行编码方法。而并行的层次介于Slice和微结构之间,通过这种层次的并行,一方面可以增加并行处理间数据复用,进而降低外部访问带宽来实现低功耗的目的,另一方面可以回避微结构并行带来的复杂度和不必要的算法性能下降。
为实现上述技术效果,本发明公开了一种用于低功耗应用的AVC并行编码方法,将图像编码分两步进行,第一步实现预测以及语义元素计算,第二步再进行语言元素熵编码。
所述方法进一步的改进在于,第一步的运动估计、帧内预测、帧间预测、模式判定运算依赖参考图像和编码控制信息,得到用来计算熵编码所必需的所述语言元素,;第二步基于上下文信息完成对语义元素进行熵编码得到编码结果。
所述方法进一步的改进在于,所述第一步以宏块行为单位并行处理,所述第二步以图像或者条带为单位并行处理。
所述方法进一步的改进在于,在所述第一步的计算中,一行宏块的运算倚赖上一行宏块第一步的运算结果以及所需参考图像和编码控制信息。
所述方法进一步的改进在于,每一行宏块的第一步运算得到的所述语言元素独立缓冲,作为第二步语言元素熵编码计算的输入。
所述方法进一步的改进在于,所述并行处理以图像中的一行宏块为基本单元同时进行编码。
所述方法进一步的改进在于,利用通过相邻行的宏块编码所需要的数据重复的特征,相邻的多行宏块同时编码,同时使用在缓冲区/Cache中相同的参考数据,进而大幅度降低编码过程对外的数据访问。
所述方法进一步的改进在于,利用通过行宏块的并行运算,进而大幅度降低编码过程时钟频率,进而通过降低编码器供电电压大幅度降低编码功耗。
所述方法进一步的改进在于,利用通过行宏块的并行运算,进而可以更有效的利用CPU/GPU的多核资源,进而降低功耗。
本发明由于采用了以上技术方案,使其具有以下有益效果是:通过采用行宏块并行编码不仅可以降低编码引擎的时钟频率要求,进而降低编码功耗,同时可以大幅度提升编码过程中的数据复用水平,降低对外的数据访问带宽,从另一个层面上也可以降低系统的功耗,满足低功耗应用的要求。另一方面,独立的宏块行运算(第一步)和语言元素熵编码的复杂度基本不受并行运算影响,算法性能降低以及实现复杂度的增加很少。
附图说明
图1是当前的条带(Slice)编码过程。
图2是本发明用于低功耗应用的AVC并行编码方法的编码过程。
具体实施方式
下面结合附图和具体实施方式对本发明作进一步详细的说明。
参阅图2所示,本发明用于低功耗应用的AVC并行编码方法将图像编码过程中的编码分两步进行,第一步通过运动估计(ME)、帧内预测、帧间预测、模式判定得到编码所需的参考图像和基本信息(块模式/运动相邻/QP/残差等),以实现预测以及语义元素计算,第二步则只是对得到编码所需的参考图像和基本信息进行熵编码得到编码结果,以进行语言元素熵编码。两步完全独立,使得第一步的处理可以以宏块行的单位并行处理,第二步可以以图像(Picture)或者条带(Slice)为单位并行处理。在第一步的计算中,一行宏块的编码仅倚赖上一行宏块第一步的运算结果和参考数据,这就意味着启动一行宏块在处理一段时间(例如完成两个宏块计算以后)后就可以启动下一行宏块的第一步处理,依次类推,一段时间后可以启动下下一行宏块处理,每一行宏块的第一步运算得到的结果(语言元素)独立缓冲,作为第二步语言元素熵编码计算的输入。其中,第一步运算以宏块行为单位并行编码,并行处理单元以图像中的一行MB(Marco-Block)为基本单元同时进行编码,最大限度的利用硬件/处理器资源进行编码,降低硬件/处理器进行编码所需要的最低时钟频率,进而降低供电电压,从而最大限度的降低编码功耗。利用通过相邻行的MB编码所需要的数据大部分是重复的特征,相邻的多行MB同时编码可以同时使用在缓冲区/Cache中相同的参考数据,进而大幅度降低编码过程对外的数据访问。第二步运算因为计算的耦合性无法以宏块行为单位并行编码,但是可以以Slice为单位并行处理。
通过采用行宏块并行编码不仅可以降低编码引擎的时钟频率要求,进而降低编码功耗,同时可以大幅度提升编码过程中的数据复用水平,降低对外的数据访问带宽,从另一个层面上也可以降低系统的功耗,满足低功耗应用的要求。
另一方面,独立的宏块行运算(第一步)和语言元素熵编码的复杂度基本不受并行运算影响,算法性能降低以及实现复杂度的增加很少。
以一个1920x108830FPS的编码器为例。采用GOP级和Slice级的并行不可取,前者大幅度增加编码延迟,后者无法实现并行编码的数据复用。业界常见做法是降低单位宏块的编码周期,即在微结构上的并行,例如增加运动搜索引擎/微计算部件的数目或者实现宏块编码流水,前者导致编码引擎复杂度剧增,后者必须解决编码算法紧耦合问题,不得不做一些算法假设,进而降低算法性能。即使如此,在编码器吞吐率达到800Cycle/MB的前提下,编码引擎也需要工作在超过196MHz的时钟频率下才有机会实现1920x108830FPS的实时编码。
但是采用本发明中宏块行并行编码,可以将单引擎宏块编码周期设定为3200Cycle/MB,这样可以最大限度的保持编码算法性能,并可以大幅简化编码引擎。如果采用8个并行引擎,即可在98MHz实现1920x108830FPS的实时编码,此时编码引擎可用使用更低的核心电压实现低功耗目标。
对于纯软件实现的H.264/AVC编码应用更是如此,由于编码算法的紧耦合导致无法在多核的CPU/GPU上并行执行,只能让其中一个内核高速运行,不利于降低系统功耗。如果采用并行编码方法,不同的工作可以分解到不同的CPU/GPU内核,使得可以以更低的时钟频率实现编码,同时由于多核编码存在的数据局部性可以使CPU/GPU的Cache命中率更高,进一步降低外部数据访问带宽,从另一方面降低系统的功耗。
以上结合附图实施例对本发明进行了详细说明,本领域中普通技术人员可根据上述说明对本发明做出种种变化例。因而,实施例中的某些细节不应构成对本发明的限定,本发明将以所附权利要求书界定的范围作为本发明的保护范围。
Claims (9)
1.一种用于低功耗应用的AVC并行编码方法,其特征在于:将图像编码分两步进行,第一步实现预测以及语义元素计算,第二步再进行语言元素熵编码。
2.如权利要求1所述的方法,其特征在于:第一步的运动估计、帧内预测、帧间预测、模式判定运算依赖参考图像和编码控制信息,得到用来计算熵编码所必需的所述语言元素,;第二步基于上下文信息完成对语义元素进行熵编码得到编码结果。
3.如权利要求2所述的方法,其特征在于:所述第一步以宏块行为单位并行处理,所述第二步以图像或者条带为单位并行处理。
4.如权利要求3所述的方法,其特征在于:在所述第一步的计算中,一行宏块的运算倚赖上一行宏块第一步的运算结果以及所需参考图像和编码控制信息。
5.如权利要求4所述的方法,其特征在于:每一行宏块的第一步运算得到的所述语言元素独立缓冲,作为第二步语言元素熵编码计算的输入。
6.如权利要求5所述的方法,其特征在于:所述并行处理以图像中的一行宏块为基本单元同时进行编码。
7.如权利要求6所述的方法,其特征在于:利用通过相邻行的宏块编码所需要的数据重复的特征,相邻的多行宏块同时编码,同时使用在缓冲区/Cache中相同的参考数据,进而大幅度降低编码过程对外的数据访问。
8.如权利要求6所述的方法,其特征在于:利用通过行宏块的并行运算,进而大幅度降低编码过程时钟频率,进而通过降低编码器供电电压大幅度降低编码功耗。
9.如权利要求6所述的方法,其特征在于:利用通过行宏块的并行运算,进而可以更有效的利用CPU/GPU的多核资源,进而降低功耗。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013103760596A CN103414902A (zh) | 2013-08-26 | 2013-08-26 | 用于低功耗应用的avc并行编码方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013103760596A CN103414902A (zh) | 2013-08-26 | 2013-08-26 | 用于低功耗应用的avc并行编码方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103414902A true CN103414902A (zh) | 2013-11-27 |
Family
ID=49607884
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2013103760596A Pending CN103414902A (zh) | 2013-08-26 | 2013-08-26 | 用于低功耗应用的avc并行编码方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103414902A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107168457A (zh) * | 2017-03-22 | 2017-09-15 | 深圳市博巨兴实业发展有限公司 | 一种低功耗gpu的soc方法 |
CN113068049A (zh) * | 2021-03-16 | 2021-07-02 | 上海富瀚微电子股份有限公司 | 分数像素运动估计装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101150719A (zh) * | 2006-09-20 | 2008-03-26 | 华为技术有限公司 | 并行视频编码的方法及装置 |
US20080131012A1 (en) * | 2003-12-19 | 2008-06-05 | National Taiwan University | Architecture and method for parallel embedded block coding |
CN102550030A (zh) * | 2010-09-16 | 2012-07-04 | 松下电器产业株式会社 | 图像解码装置、图像编码装置、及其方法、程序、集成电路以及代码转换装置 |
CN102577381A (zh) * | 2009-10-14 | 2012-07-11 | 夏普株式会社 | 并行视频编码和解码方法 |
-
2013
- 2013-08-26 CN CN2013103760596A patent/CN103414902A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080131012A1 (en) * | 2003-12-19 | 2008-06-05 | National Taiwan University | Architecture and method for parallel embedded block coding |
CN101150719A (zh) * | 2006-09-20 | 2008-03-26 | 华为技术有限公司 | 并行视频编码的方法及装置 |
CN102577381A (zh) * | 2009-10-14 | 2012-07-11 | 夏普株式会社 | 并行视频编码和解码方法 |
CN102550030A (zh) * | 2010-09-16 | 2012-07-04 | 松下电器产业株式会社 | 图像解码装置、图像编码装置、及其方法、程序、集成电路以及代码转换装置 |
Non-Patent Citations (2)
Title |
---|
于俊清等: "基于同核多核处理器的H.264多粒度并行编码器", 《计算机学报》 * |
冯飞龙等: "基于H.264实时编码的多核并行算法", 《计算机工程》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107168457A (zh) * | 2017-03-22 | 2017-09-15 | 深圳市博巨兴实业发展有限公司 | 一种低功耗gpu的soc方法 |
CN113068049A (zh) * | 2021-03-16 | 2021-07-02 | 上海富瀚微电子股份有限公司 | 分数像素运动估计装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9807410B2 (en) | Late-stage mode conversions in pipelined video encoders | |
TWI445411B (zh) | 在譯碼單元之視頻譯碼中執行局部運動向量推導之方法與相應裝置 | |
Khan et al. | Hardware-software collaborative complexity reduction scheme for the emerging HEVC intra encoder | |
US20170142411A1 (en) | Intra/inter mode decision for predictive frame encoding | |
Jiang et al. | Block-Based Parallel Intra Prediction Scheme for HEVC. | |
WO2021004153A1 (zh) | 图像预测方法、编码器、解码器以及存储介质 | |
CN103297777A (zh) | 一种用于加速视频编码速度的方法及装置 | |
CN105245896A (zh) | Hevc并行运动补偿方法及装置 | |
CN104469488A (zh) | 视频解码方法及系统 | |
US8879629B2 (en) | Method and system for intra-mode selection without using reconstructed data | |
CN109391816B (zh) | 基于cpu+gpu异构平台实现hevc中熵编码环节的并行处理方法 | |
WO2016014200A1 (en) | Techniques for performing a forward transformation by a video encoder using a forward transform matrix | |
CN103414902A (zh) | 用于低功耗应用的avc并行编码方法 | |
CN105100799A (zh) | 一种减少hevc编码器中帧内编码时延的方法 | |
CN102595137B (zh) | 基于图像像素块行/列流水线的快速模式判决装置和方法 | |
TWI785073B (zh) | 多重轉碼器編碼器及多重轉碼器編碼系統 | |
CN104038766A (zh) | 用于以图像帧为基础执行并行视频编码的装置及其方法 | |
JP2010178335A (ja) | デュアルステージイントラプレディクションビデオエンコーディングシステム及び方法 | |
Ryu et al. | Video on mobile CPU: UHD video parallel decoding for asymmetric multicores | |
Rhee et al. | An H. 264 high-profile intra-prediction with adaptive selection between the parallel and pipelined executions of prediction modes | |
CN103763561A (zh) | 一种h264视频编码并行运算方法 | |
US20150358630A1 (en) | Combined Parallel and Pipelined Video Encoder | |
Asif et al. | Exploiting MB level parallelism in H. 264/AVC encoder for multi-core platform | |
Vani et al. | Survey on H. 264 standard | |
Wang et al. | Hardware architecture design of HEVC entropy decoding |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C53 | Correction of patent of invention or patent application | ||
CB02 | Change of applicant information |
Address after: 200233, room 703, building A, No. 1050, Xuhui District, Shanghai, Wuzhong Road Applicant after: SHANGHAI FULHAN MICROELECTRONICS CO., LTD. Address before: 200233, room 703, building A, No. 1050, Xuhui District, Shanghai, Wuzhong Road Applicant before: Shanghai Fullhan Microelectronics Co., Ltd. |
|
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20131127 |