0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

手淘H265编解码算法与工程优化

LiveVideoStack 来源:未知 作者:工程师李察 2018-11-03 10:26 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

手淘的产品目前已经拓展到直播、短视频等领域,业务中存在着大量的图片和视频;自2015年起,图片和视频的数量呈指数级别高速增长;并且随着网络技术的发展与消费升级,用户对图片和视频清晰度的要求也不断提升,从最早的360P到现在的4k甚至8k,这些都带来了宽带成本与存储成本的大规模提升,这也就是为什么我们希望借助H265技术支持音视频业务的良性发展。

2、H.265介绍

2.1 成本效益

借助H265技术我们可以实现大规模并发场景下音视频业务的有效成本控制。带宽与存储成本不容小觑,与H264相比,以典型4K场景中使用H265技术为例,可在保持画质不变的同时节省达50%的带宽,而以720P直播为例使用H265则可节省30%流量。现在的流量有90%以上都来自移动端(手机)而非传统意义的PC、服务器、Pad等;而对手机端尤其是Android设备而言,碎片化带来的计算能力受限、性能层次不齐等问题使得H265上的很多优化与功能受到限制。如果我们直接将H265应用于手机端则会在解码时出现发热大、能耗高、实时编码无法正常进行等现象;与此同时,也缺少快速、高效且成熟的端上编码方案,这些都是亟待我们解决的问题。

2.2 编码框架

接下来介绍下H265的编码框架。H265编码框架由四个模块组成:输入一段视频的连续多帧,首先需要经过的是包含帧内预测、帧间预测两个操作的预测模块;随后进行变换量化模块也就是针对原始图像块与预测图像块的差值进行DCT和量化;接下来解码模块会将图像解码以便用于下一帧的预测;最后的熵编码模块将针对预测信息和残差系数进行算数编码从而进一步消除编码冗余。

2.3 技术亮点

H265主要有哪些技术亮点?首先H265具有灵活的编码结构,拥有CUPUN、CTUN等多个细分编码单元;其次H265的块大小也非常灵活,包括4×4、8×8等更多块划分方式;除此之外,H265的Sample Adaptive Offset(SAO)技术相对于Deblock和ALF具有更高性价比;最后在整个H265中包含了并行化设计,使得H265的优势更加明显。

除了以上技术亮点,H265相比于H264 在插值、MV预测、帧内预测、变换、去块滤波等方面进行了大量改进与优化。上图右侧表展示的是H.265相对于H.264在多方面带来提升的量化数据。

2.4 改进代价

H.265为音视频带来了技术提升,与此同时也带来了不容忽视的改进代价。码流的节省意味着计算复杂度的提升,从上图右侧的统计表中我们可以看出,相对于H264,H265的编码复杂程度增加了约3到4倍,解码复杂程度也增加了近50%。这就意味着传统的针对H.264的软硬件解决方案处理H.265会明显感到力不从心,我们需要妥善解决因方案升级带来的诸多技术挑战。

3、H.265高效编解码器的实现

即便如此,H.265的优势也不容忽视。上图展示的是我们在2017年开展的一项调研,以当时比较成熟的金山HEVC解码器为例,对比标准H.265解码器,无论是在解码速度还是解码质量上金山的HEVC解码器都有很大优势,这项调研结果也让我们对H.265的未来发展更加充满信心。

3.1 RDO优化

手淘在H.265编解码领域作出了哪些探索?我们的优化探索主要分为两部分:算法优化与工程优化,而算法优化主要集中在RDO方向。由于HEVC支持不同的CTU/CU/PU/TU组合模式,可选编码模式激增;搜寻最优编码模式时,随着编码模式数量的增加,率失真计算会成为编码过程的计算瓶颈,这主要是由于传统H.264中基于SATD的率失真优化不可在H.265中使用,需要精度更高的失真代价计算。为了优化RDO以实现更高效的处理效果,我们进行了以下7项改进:

高效预判CU层次。

采用基于纹理信息等内容的CU遍历提前终止策略。

基于卷积神经网络解决图像分块的非线性问题。

提前预判残差AZB块,从而减少D与R的计算。

使用量化误差D和残差比特数R的快速计算模型。

采用基于单调性的ME快速计算模型。

在35中模式中快速选择合适的帧内预测模式。

1)模式划分CTU/CU/PU/TU

以PU为例,H.264有7种划分模式,而H.265则有24种划分模式。

如果统计H.265中一个图像可以选择的所有划分模式,一个块有高达384种可选择的划分模式。只有计算完成所有选择后才能确定最佳划分方案,如何缩短计算如此多选择所需要的时间?

2)RDO优化

快速模式决策——深度预估

首先,由于每块的划分层级与划分深度和当前块的参考帧块之间有很强的相关性,利用时间和空间的相关性,我们可从参考块的深度预估本块的深度范围并得到Min-depth与Max-depth;其次,即使本块与上一块或参考块有相关关系,本块也有一些自己独有的信息可被利用,我们可通过结合本块的运动与纹理信息界定深度的精度范围,确定具体划分深度的精度范围。

快速模式决策——纹理Corner检测

通过对图像纹理的检测我们可快速选择最优的划分模式。迅速识别平坦或对比度较强的纹理,提升划分效率。

快速模式决策——CNN分类

应对带Corner的纹理时,可通过按照强度判决是否继续划分来实现快速选择,这对线性变化的处理效果较好,而在实际应用中我们需要面对很多非线性变化的应用场景,此时就需要CNN卷积神经网络+深度学习的模型对非线性变化进行纹理分类与快速模式选择,这里的线性分析与非线性分析是分开进行的。

快速模式决策——AZB决策

AZB(All Zero Block)是量化后系数为全0的块,通过AZB提前判别决策可对块进行快速归类,从而减少D与R的计算。

Distortion&Bits估计

纵览整个劣势帧的计算过程 ,计算Dp需原图到重建图像间的SSE,也就是完成编码模式P的预测、变换、量化、反量化、反变换、重建等。为避免这样冗长而复杂的计算过程,我们可以在变换与量化后在频域计算残差能量;而码率统计 则是通过一次熵编码实现,为了提高计算效率我们可以对残差数据的码率统计建立线性估计模型并根据NxN变换矩阵量化后的特征估计其码率,可减少近50%的计算量。

FME最优搜索位置估计

这里我们主要进行的优化是,通过整像素点及1/2像素点的SAD值和其坐标来估算出最优1/4像素点,从而加速整个搜索过程。

快速帧率预测方法

我们采用了基于贝叶斯模型开发的一套帧内预测快速决策方法,可为帧内预测速度带来一倍的提升并将损失降低到0.01dB。

3)码率控制优化

我们使用以下策略对码率控制与Lookahead进行优化,首先是基于CuTree的信息传递来调整CUQP,其次是基于rates和复杂度的IBP FrameQP,最后是·基于参考强度的Slice Type Decision,这一部分内容我会在LiveVideoStackCon 2018上作出更加详细描述 。

4)参考帧优化——长期参考帧

我们知道,参考帧大都在一个GOP范围内,往往有更好的编码质量,参考帧有助于提高被参考帧的质量,而长期参考帧可能源于多个GOP。这就使得对于背景很少发生变化的直播场景,长期参考帧可有效减少信息经过多帧传递带来的损失,引用长期参考帧可将平均EV提高大概0.25dB,

上图展示的是各模块计算量占比,以上就是我们围绕RDO领域进行的多项探索。

3.2 工程化优化方法

基于工程方面我们也进行了多项优化,首先是针对一些特殊函数的汇编计算优化,我们通过采用NEON指令集优化,为典型计算性能带来2~4倍的提升,如RDO(SSE、SAD)模块、运动搜索模块、帧内预测模块等均提升两倍以上;其次,针对现在移动端广泛使用的多核处理器,我们优化多核并行计算并适应现代处理器的架构;除此之外,我们也优化bottleneck的指令和访存,从而进一步提升整体性能。

3.3 优化成果

1)软件编码

经过算法与工程两个层次上的优化,我们为HEVC编解码带来了明显的性能提升。就编码速度而言,手淘比X.265 17年初的版本提升3倍以上并可在iPhone6上实现720P&30帧的实时编码;若想实现相同的编码质量,手淘的编码码率相对于X.265降低了至少15%,上图展示的便是具体的测试结果。

2)软件解码

软解优化更多集中在工程方面也就是NEON指令集部分,较少在算法层面进行调整。通过对NEON指令集的优化与一些逻辑上的改写,手淘可实现相对于FFmpeg提升150%以上的视频解码速度,例如将1Mbps 720P H.265的测试用例用于小米5手机进行解码测试,其解码速度可达两百帧以上,而CPU的占用率也控制在20%以下;在处理图片方面,例如对H.265的标准I帧处理上我们也做出了不少优化和改进,APG的图片解码速度相对于FFmpeg提升70%以上。

4、总结与未来展望

这里我们对视频编码标准的未来进行简单的展望。过去10年大家都是按照H.264、H.265的标准;而在流媒体渐成趋势的未来,Google提出的VP8、VP9、VP10,还有H.266、AV1等标准将推动音视频行业向更光明的未来发展。技术的进步为我们实现更多更新潮的效果打下基础,助力消费升级与用户体验的日渐完善。

如果简单对比H.266与AV1我们可以看到,因为H.266引入了更多的四叉树二叉树结构(QTBT),整体的BD-Rate提升近4%;但H.266对比H.265,在保持画质不变的情况下码流降低了近1倍而整体编码时间却增加了2倍左右,整体解码时间则增加近1倍。基于之前的调研我们发现,AV1的时间复杂度是X.265的2000~3000倍,这说明AV1未来的改进与优化任重而道远。

Q&A

Q:VP9在将来会大面积普及吗?

A:我认为VP9当前存在最大的妨碍其普遍推行的问题是兼容性,因为现在很多设备都采用向下兼容的策略,而VP9在诸多设备上的普及率不高;如果大家在直播等领域使用VP9进行编码则必须经过转码之后才能通过CDN分享,随后重新转成H.264或H.265再播放,这样势必会带来很多麻烦。

Q:能否在客户端实现硬编?

A:现在的一些高端手机已经可以实现性能稳定的硬编H.265,例如对iOS而言,iPhone7以上的机型都可稳定实现。但在较为碎片化的安卓机型上,由于安卓机型解码时对多种协议的支持力度不统一,加上不同档次的手机性能差距过大,编码性能受到很大影响。手淘上主播的机型主要是ios,所以在淘宝上我们主要采用硬编方案;而对于直播环境,因为需要CDN进行内容分发,而CDN重点支持的链路基本属于H.264,编码方式受限于整个直播的链路环境。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 解码
    +关注

    关注

    0

    文章

    189

    浏览量

    28880
  • 工程
    +关注

    关注

    0

    文章

    170

    浏览量

    29832
  • H265
    +关注

    关注

    0

    文章

    5

    浏览量

    17045

原文标题:手淘H265编解码算法与工程优化

文章出处:【微信号:livevideostack,微信公众号:LiveVideoStack】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    C++音视频实战-FFmpeg基础到工程-多路H265监控录放开发

    pan.baidu.com/s/1g64x9D_jp9ufk4uBpQBmvA?pwd=497f  未来安防底层核心:C++ 音视频实战,从 FFmpeg 到多路 H265 监控开发 站在2026年
    的头像 发表于 04-20 15:49 528次阅读

    深入解析RENESAS DA7218超低功耗立体声编解码

    。RENESAS的DA7218超低功耗立体声编解码器就是这样一款满足市场需求的优秀产品。今天,我们就来深入剖析这款编解码器的特点、功能及应用。 文件下载: DA7218-00U32.pdf 一、产品概述 DA7218是一款专为便携式应用或可穿戴设备
    的头像 发表于 04-12 11:05 272次阅读

    ADAU1372低延迟低功耗编解码器:音频设计的理想之选

    器无疑是一个理想的选择。今天,我们就来深入了解一下这款编解码器的特点、性能和应用。 文件下载: ADAU1372.pdf 一、ADAU1372概述 ADAU1372是一款具有四个输入和两个输出的编解码器,集成了异步采样率转换器(ASRCs)。它专为低延迟和低功耗而
    的头像 发表于 03-23 15:25 158次阅读

    TLV320AIC1x系列单声道编解码器:特性、应用与设计要点

    TLV320AIC1x系列单声道编解码器:特性、应用与设计要点 在电子设备的音频处理领域,编解码器(CODEC)起着至关重要的作用。今天,我们要深入探讨德州仪器(TI)的TLV320AIC1x系列
    的头像 发表于 02-04 11:25 390次阅读

    TLV320AIC22C:双VoIP编解码器的技术剖析与应用指南

    器的需求也愈发迫切。TI公司的TLV320AIC22C双VoIP编解码器,凭借其卓越的性能和丰富的功能,成为了众多工程师的首选。今天,我们就来深入剖析这款编解码器的技术特点、工作原理以及实际应用。 文件下载
    的头像 发表于 02-03 14:40 405次阅读

    深入解析LM4546B AC '97多通道音频编解码

    深入解析LM4546B AC '97多通道音频编解码器 在当今的电子世界中,音频编解码器扮演着至关重要的角色,尤其是在PC系统、便携式设备以及汽车电子等领域。今天,我们要深入探讨一款由德州仪器
    的头像 发表于 02-03 10:50 356次阅读

    电子工程师必备:TLV320AIC3106-Q1低功耗立体声音频编解码器深度解析

    电子工程师必备:TLV320AIC3106-Q1低功耗立体声音频编解码器深度解析 在汽车信息娱乐和集群系统的音频处理领域,TI推出的TLV320AIC3106-Q1低功耗立体声音频编解码器备受关注
    的头像 发表于 02-02 11:05 316次阅读

    TLV320AIC3206:超低功耗立体声音频编解码器的卓越之选

    功耗立体声音频编解码器,凭借其出色的特性和灵活的配置,成为了电子工程师们的热门选择。今天,我们就来深入探讨一下这款编解码器的方方面面。 文件下载: tlv320aic3206.pdf 一、产品概述 TLV320AIC3206是一
    的头像 发表于 01-30 16:00 769次阅读

    AMD EV系列器件VCU Control Software简介

    近年来,随着音视频应用场景和内容越来越丰富,对网络传输和存储都带来了巨大的挑战。为了应对这一挑战,各种视频编解码技术就被提了出来,其中H.264/H.265视频编解码协议是当前的主流视
    的头像 发表于 12-10 14:45 4739次阅读
    AMD EV系列器件VCU Control Software简介

    音视频编解码封装解封装部件介绍

    是否有探索开源鸿蒙音视频编解码技术的欲望?是否对开源鸿蒙音视频编解码格式支持有诉求?别急——今天这份开源鸿蒙AVCodec Kit介绍文章,就是解答疑惑的指南!参考这份指南,可以使用开源鸿蒙的音视频编解码能力,进行应用开发;也可
    的头像 发表于 10-31 09:15 668次阅读
    音视频<b class='flag-5'>编解码</b>封装解封装部件介绍

    视耀T1 MINI-4路4K编解码器丨端到端超低延时赋能4K超清视界

    富视智通推出的视耀T1 MINI编解码器是一款具备低延时、高密度集成及全场景兼容性等优质特性的明星产品。该设备支持4路独立4Kp60 H.265/HEVC编解码,1路AVC 1080p编解码
    发表于 08-28 13:43

    K230在同时使用H265编码与yolo进行检测时出现错误怎么解决?

    1、单独使用H265编码时或者yolo检测没有问题 2.一旦将二者结合,因为H265编码时YUV格式,所以我另外开了一个RGB平面格式来运行yolo推理 3.报错信息显示:两者的空间会冲突然后导致
    发表于 07-11 08:15

    SmartDV推出先进的H.264和H.265视频编码器和解码器IP

    综合性IP产品系列可支持H.264的基本/主流/高性能配置和H.265的主流/主流10/主流静态图像配置,提供了跨越不同应用的无缝集成和无与伦比的灵活性。
    的头像 发表于 06-27 11:11 1852次阅读
    SmartDV推出先进的<b class='flag-5'>H</b>.264和<b class='flag-5'>H.265</b>视频编码器和<b class='flag-5'>解码</b>器IP

    雷卯针对易百纳EB-Hi3516DV300-DC-182 开发板防雷防静电方案

    处理单元 2 AI算力 1Tops 3 视频编解码 H.264 BP/MP/HP H.265 Main Profile 支持 I/P 帧,支持 Smart P 参考 MJPEG/JPEG
    的头像 发表于 06-04 15:18 623次阅读
    雷卯针对易百纳EB-Hi3516DV300-DC-182 开发板防雷防静电方案

    基于RK3576的BASE64编解码

    了BASE64编解码工具,方便用户进行数据封装。文章详细说明了如何快速上手,包括源码工程下载、开发环境搭建、例程编译与运行。此外,还提供了BASE64编解码API的详细说明,包括编码和解码
    的头像 发表于 05-12 13:41 803次阅读
    基于RK3576的BASE64<b class='flag-5'>编解码</b>