Hevc 视频编解码并行处理技术

文章介绍了并行处理的两种主要类型——功能并行和数据并行,并在视频编解码的上下文中详细阐述了它们的概念和应用。功能并行通过流水线方式实现模块间的并行执行,但可能面临负载失衡和扩展性问题。数据并行则通过处理独立数据块实现并行,具有更好的负载均衡和扩展性,尤其在H265/HEVC标准中,利用片和Tile结构支持数据并行处理。

一 并行处理技术

并行处理一般是指许多指令得以同时进行的处理模式,并行处理通常是将处理的过程分解成小部分,之后采用多个运算单元并以兵法方式加以解决,本章只讨论使用过个处理器的并行处理技术。通常分为两种,功能并行和数据并行,下面结合视频编解码原理对这两种并行方式做简要的介绍。

二 功能并行

功能并行是指将应用程序划分为相互独立的功能模块,每个模块间可以并行的执行,这种并行方式也被称为流水线型并行,是将各个独立的模块划分给不同的运算单元,各个模块之间通过流水线的方式来进行数据交换和通信,最终再将各个单元串接在一起,功能并行充分利用了时间上的并行性来获得加速的效果,比较适用于硬件实现。

在视频编解码中,我们可以将编解码器划分为各个不同的模块,以解码为例,各个模块映射到不同的运算单元,各自独立执行,完成不同的功能,由前面几章可以知道。H265/HEVC的解码过程可以分为熵解码、反量化

反变换、帧内预测、帧间预测,去方块绿波和杨点自适应补偿等,我们根据这些模块的互相联系和运作机制,可以对他们进行重新划分组合,从而实现功能并行。

功能并行的缺点也是很明显的,由于分配给不同运算单元的功能模块是不同的,因此很容易产生载荷失衡问题,有的运算单元的负载较轻,处理速度较快,而有的运算单元的负载较重,处理速度慢,总体上张哥程序的运行效率就会降低,功能并行还需要在不同的运算单元间进行数据通信,当数据量较大时,需要花费额外的资源来进行存储,另外,功能并行的扩展性较差,由于划分好的模块已经分配给不同的运算单元,在增加或者减少运算单元时,需要对原有的模块进行重新划分和分配。

二 数据并行

数据并行是将数据信息划分为相互独立的部分,每一部分交给不同的运算单元来执行,从而实现并行处理,这种方式下,不同运算单元上执行的程序是相同的,而且处理的是相互独立的数据信息,因此不需要进行运算单元间的通信,如图10.1(b)所示。

H265/HEVC中提供了适于进行数据并行处理的结构单元,如片和Tile,在不同的片和TIle中,数据信息是相互独立的,这样有利于将其分配给不同的运算单元来处理。对于比片和Tile小的划分单元,H265/HEVC支持波前并行处理,Wavefront Parallel Processing, 这是对于相互具有依赖的图像单元进行数据并行处理的方法,针对这种情况,需要通过适当的核间通信来消除数据单元之间的依赖关系,从而使得具有依赖关系的数据单元可以在不同的运算单元中进行处理。

对于数据并行,当数据块数目多于运算单元数目时,各个运算单元均处于持续运行状态,比较容易达到负载均衡,另外,数据并行具有非常好的扩展性,易于软件实现,当数据单元数目增多时,可以很容易的增加运算单元的数目来提升并行速率。

core1

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值