米乐m6登录基于活动矢量重用的转码优化运动

2023-02-14 12:38:45
浏览次数:
返回列表

  米乐m6编者按:视频转码是视频相干界限中最紧张的营业,需求耗费大宗的算力。转码有解码和编码两个阶段,正在编码中,运动矢量盘算是耗费CPU算力最多的个别,是以要研究何如节减大宗的盘算并抬高图像质料。LiveVideoStack邀请到了英特尔的谢义先生,为咱们先容基于运动矢量重用的转码优化。

  大多好!米乐m6登录我是谢义,来自英特尔亚太研发有限公司。咱们团队要紧掌管基于至强任事器的软件优化劳动,而任事器端的视频转码任事是咱们中心闭怀的界限。英特尔实行的规矩是“水利万物而不争”,咱们的初志是协帮互帮厂商正在英特尔任事器上获取最佳的视频转码本能。

  根据客户确凿需求,定造下一代CPU是咱们的劳动之一,咱们采用做视频转码的另一个起因,是为了安排更好满意音视频界限需求的下一代硬件。因而本日还会给大多先容下一代CPU中闭于编解码的独特指令,这些独特指令能够加快编码作用。

  本日,我分享的实质分为三个章节。起首,应用英特尔丰盛的器材链对视频转码实行说明。咱们行动硬件厂商,自己不做音视频转码营业,但俗话说“弄斧要到班门”,因而咱们起首对视频转码的极少表率场景实行了微架构层面的说明,为后面的优化做好铺垫。然后,运动运动先容计划的主题术思,即何如重用一次编码的消息来抬高二次编码的作用。之条件到,盘算繁复度正在转码里占了很大的本钱,运动因而要从泉源上低浸盘算繁复度。最终,运动先容SIMD指令集。SIMD的全称是Single Instruction Multiple Data,有趣是单指令无数据,注解一条指令能够同时操作多个数据。

  咱们从相干墟市获取了图中的数据。第一张图暗示正在2020年,视频数据正在互联网数据占比70%。到现正在,视频数据正在互联网数据占比已进步80%。第二张图是PRC Video Cloud Market Forecast,图中呈延长趋向。固然目前共有云墟市的增速减缓,然则视频云的延长仍有很大潜力。回到转码自己,第三张图和第四张图来自Video Developer report。从第四张图能够看到,正在2019年,H.264仍是主流视频编码技能,90%以上仍应用H.264。其次,较多应用的是H.265,然后是VP9和AV1,H.265也正在慢慢成为一种趋向。第三张图暗示视频编码器开荒职员布置正在2022年进入的情状。此中,进入最多的是H.265,然后是AV1,再然后是H.266,这三个允诺正正在成为主流编码器允诺,咱们后续将基于这些主流编码器实行开荒。

  接下来实行直播本钱说明。这是一张直播的构造图,主播上传实质到上行CDN,然后再发送到转码中央实行实质识别、运动截屏、录造和转码,接着再分发到下行CDN。这个经过中,运动本钱最大的是收集带宽和转码任事器。之条件到,收集带宽取决于阅览人数和码率。举个例子,阅览2M的视频和阅览500K的视频所需的收集带宽差别,1000一面同时阅览视频和10一面同时阅览视频所需的收集带宽也差别。转码任事取决于区分率、码率和视频编码法式等。

  咱们对头部的互联网厂商实行了说明。如第一张图所示,要紧有两个本钱,一个是Traffic price,即带宽本钱,另一个是转码本钱。第二张图暗示直播一幼时内,转码和带宽的比例,图的横轴是阅览人数,纵轴是转码和带宽用度的比例。能够看到,当观多数大于等于50时,带宽成为要紧的本钱。举个例子,顶级流量主播的一场直播的带宽本钱要几百万,此时转码本钱唯有几千块,运动相对带宽本钱险些能够大意。但对待数目繁多的幼主播来讲,观多数大概唯有十几个,此时的带宽较低,因而转码本钱成为要紧的本钱。针对这两种情状,正在带宽本钱较大时,咱们以优化带宽为主,正在转码本钱较大时,咱们以优化转码速率/转码本能为主。

  接下来,先容几款好用的英特尔的器材。起首是V-Tune,是一个能够速捷挖掘利用圭臬瓶颈的可视化的器材。左下图展现了一个例子,能够看到,咱们能够知晓转码里每个函数占用的CPU韶华,双击就可进入code,无误定位哪行code的占对比高,因而能够了解地知晓热门函数正在哪里。咱们援手CPU、GPU和FPGA,也援手多措辞和多操作体例。V-Tune的长处是直观,误差是会为体例带来必然的职守。

  另一个器材是Emon,其用于low-level层面的数据抓取。Emon的长处是能够直接抓取Performance Monitoring Units(PMUs),即寄存器的值,是以功率耗费较少。旁观右上图,能够知晓CPU的行使率、AVX指令集的应用比例,也能够知晓该函数是Backend_Bound照旧Frontend_Bound。是以,能够了解知晓体例的题目正在哪里。

  行使刚刚先容的器材,能够猜度转码耗费的算力。能够看到,正在某一个转码场景里,编码经过中的运动猜度(Motion Estimation)占比进步40%,但差此表场景情状有所差别,举个例子,将8K的数据转换成360P的数据时,解码耗费的算力大于转码耗费的算力。正在大个别情状下,若研究帧决定等,运动猜度的占比将进步50%,是以这成为了咱们闭怀的热门。

  咱们现正在研究转码,例如将H.264或H.265转换成H.266或AV1。正在一次编码时,咱们能够取得slice type、mb qp和mb partition等消息。正在现正在的编解码形式中,解码之后这些消息就会被舍弃。而咱们的主题术思是,正在二次编码中重用一次编码的消息。通过大略盘算,正在大个别场景下,重用一次编码消息能够节减约莫67%的运算量。

  对待这种思绪,大多大概有良多题目。例如,当帧率或区分率正在转码前后爆发转化时,会不会显示极少新的题目。是以,固然计划的道理对比直接,但实践利用时需求处分良多“并发症”。极端是,咱们要研究何如一方面擢升转码速率,另一方面担保转码质料,不然转码质料欠好,纵然转码速率很速,也不行进入适用。

  举个例子注明何如重用一次编码的消息来抬高视频质料。JND是一种感知编码技能,正在左上的图中,四个block中唯有左下的block的值为1,其余block的值为0。但对待人眼来说,能够大意数值1,即四个block的值能够都为0。这是JND的主题术思:过滤人眼感想不到的消息。对此,经典的形式是应用双边滤波器等实行过滤,但这些形式都是无不同的滤波,容易酿成“误伤”。而现正在因为操作一次编码消息,咱们知晓哪些消息能够被滑腻,哪些消息务必保存,通过配置权重的形式来实行“区别对于”。如许做能够带来两个好处,一是能够抬高主观视觉的质料,二是正在限造码率的情状下,能够将码率用正在刀刃上,大幅度地抬高客观质料。例如,运动将一个原码率是50Mbps的视频转码为2Mbps的视频,采用咱们的形式就能够较大地抬高质料。

  另一种形式是应用一次编码的残差。正在H.264和H.265里,有two-path的算法,但这个算法经常不被应用。这是由于,固然通过一次编码能够操作大体的消息,而且正在此根基上二次编码的结果更精准,编码质料更高且码率更低,然则这会大幅度地添补盘算量,推高转码本钱和延迟。为分处分这个题目,咱们直接重用一次编码的消息来杀青仿佛二次编码的恶果。

  至强任事器平台SIMD指令集经迭代了良多代,大多对比熟知的例如AVX2,AVX512等。第二代至强可扩展平台正在AVX512的根基上援手了INT8数据精度,第三代援手BF16指令集,2023年头量产的第四代平台的AI本能正在BF16和INT8上较上一代擢升了8倍,此中插足了AMX 指令集,也能够会意为正在CPU内部有一块硬件加快器。例如INT8的算力,一颗CPU的本能亲热200T,良多以前正在CPU上无法达成的运算现正在都成为大概。

  最终先容一个例子,注明何如应用SIMD指令集优化视频编码。正在H.264中有一个巨细为16×16的宏块,需求对其乞降或平方和,那么何如用avx512对其实行加快呢?需求奉行以下几步。起首,将16个int8的数据载入到mm128寄存器中。然后,将int8数据转换成int32,这是由于有时刻运算结果为负数,而int8无法暗示负数。接着,将16个int32数据水准相加,这需求耗费0.5个指令周期,而手动盘算则需求8次盘算,是以极大地抬高了作用。最终,将16个int32平方后再水准相加。通过如许的统治,本能可抬高16倍或8倍(若为一条指令则抬高16倍,若为两条指令则抬高8倍)。

  本文为倾盆号作家或机构正在倾盆信息上传并颁发,仅代表该作家或机构意见,不代表倾盆信息的意见或态度,倾盆信息仅供应消息颁发平台。申请倾盆号请用电脑探访。米乐m6登录基于活动矢量重用的转码优化运动

搜索