欧美成人A片免费|日韩无码一级av|一级黄色大片在线播放|黄片视频在线观看无码|亚洲精品成人无码影视|婷婷五月天视频网站|日韩三级AV在线播放|姓爱av在线婷婷春色五月天|真人全黃色录像免费特黄片|日本无码黄在线观看下载

  • +1

Shopee視頻處理技術(shù)后臺(tái)應(yīng)用

2022-11-17 14:21
來(lái)源:澎湃新聞·澎湃號(hào)·湃客
字號(hào)

東南亞各市場(chǎng)的網(wǎng)絡(luò)環(huán)境復(fù)雜多變、差異極大,如何在有限網(wǎng)絡(luò)條件下提供穩(wěn)定、高清的視頻體驗(yàn)是我們面臨的一大挑戰(zhàn)?;诖耍敬畏窒韺⒔榻B Shopee 在東南亞視頻業(yè)務(wù)落地上的方案,在畫(huà)質(zhì)提升上做出的努力,以及一些性能提升成本控制方面的優(yōu)化。

在 8 月 6 日舉辦的 LiveVideoStackCon 2022 上海站大會(huì)中,Shopee 視頻技術(shù)團(tuán)隊(duì)負(fù)責(zé)人 Zhixing 分享了 Shopee 視頻處理技術(shù)的后臺(tái)應(yīng)用,本文根據(jù)演講內(nèi)容整理而成。

1. 背景

隨著 Shopee 電商業(yè)務(wù)在東南亞等市場(chǎng)展開(kāi),視頻和電商結(jié)合的應(yīng)用迅速落地。然而,當(dāng)?shù)卦S多用戶使用的手機(jī)配置有限,這些手機(jī)在視頻編解碼、圖像處理方面存在不小的性能瓶頸。

并且,當(dāng)?shù)鼐W(wǎng)絡(luò)基礎(chǔ)設(shè)施建設(shè)還不太完善,在這樣的網(wǎng)絡(luò)條件下,如何穩(wěn)定且高質(zhì)量地傳輸媒體數(shù)據(jù)成為一大挑戰(zhàn)。

另外,海量的視頻文件和直播視頻處理也給 Shopee 后臺(tái)帶來(lái)了巨大的壓力。那么 Shopee 是如何通過(guò)技術(shù)手段來(lái)解決這一系列問(wèn)題的呢?

本次分享的內(nèi)容大致分為四個(gè)部分:第一部分是 Shopee 視頻相關(guān)的產(chǎn)品介紹;第二部分是 Shopee 視頻業(yè)務(wù)后臺(tái)的技術(shù)方案;第三部分是 Shopee 高清低碼轉(zhuǎn)碼技術(shù),以及 RTC 場(chǎng)景視頻編碼技術(shù);第四部分是我們?cè)谛阅芴嵘凸?jié)省算力成本上做的一些優(yōu)化。

2. Shopee 視頻技術(shù)落地產(chǎn)品

先來(lái)看看 Shopee 有哪些與視頻相關(guān)的產(chǎn)品。

作為電商平臺(tái),Shopee App 是我們的主要業(yè)務(wù),涵蓋了 feeds 流、直播帶貨、點(diǎn)播等視頻類服務(wù)。其中,短視頻服務(wù) Shopee Video 目前也已經(jīng)在東南亞個(gè)別市場(chǎng)上線。

Shopee 的數(shù)字銀行業(yè)務(wù) SeaBank 在部分場(chǎng)景下也用到了視頻服務(wù),例如在線開(kāi)戶環(huán)節(jié)。用戶發(fā)起開(kāi)戶請(qǐng)求,客服接聽(tīng),通過(guò)視頻畫(huà)面在線認(rèn)證身份信息。

此外,公司內(nèi)部的通訊工具 SeaTalk 也計(jì)劃在語(yǔ)音通信功能的基礎(chǔ)上,新增視頻會(huì)議能力。

3. Shopee 視頻相關(guān)后臺(tái)服務(wù)

針對(duì)上述應(yīng)用,我們開(kāi)發(fā)了哪些視頻相關(guān)的后臺(tái)服務(wù)呢?

3.1 直播/點(diǎn)播轉(zhuǎn)碼

首先是 Shopee App 的轉(zhuǎn)碼服務(wù),涉及點(diǎn)播和直播轉(zhuǎn)碼兩個(gè)轉(zhuǎn)碼平臺(tái)。有一些 AI 增強(qiáng)類的前置處理,一幀耗時(shí)比較長(zhǎng),對(duì)于點(diǎn)播業(yè)務(wù)來(lái)說(shuō),這不是什么問(wèn)題,只是轉(zhuǎn)碼耗時(shí)增長(zhǎng)。而對(duì)于直播業(yè)務(wù)來(lái)說(shuō),就需要考慮效率問(wèn)題了,比如幀率 30,最多一幀只能耗時(shí) 33ms,如果串行進(jìn)行所有前置處理,就會(huì)使得出幀幀率小于輸入幀率,導(dǎo)致視頻幀堆積的問(wèn)題。

于是,我們?cè)O(shè)計(jì)了流水線的視頻處理架構(gòu),將耗時(shí)較短、不影響主流程的處理節(jié)點(diǎn)放在同一個(gè) region 中,串行處理,耗時(shí)長(zhǎng)的節(jié)點(diǎn)單獨(dú)一個(gè) region,region 與 region 之間并行執(zhí)行,中間通過(guò)隊(duì)列通信。這樣,只需要任意一個(gè)處理節(jié)點(diǎn)耗時(shí)保證在幀 duration 范圍內(nèi),就能滿足業(yè)務(wù)要求。

我們可以看到中間這張彩色的示意圖,如果是串行處理,每一幀的耗時(shí)就等于每一個(gè)節(jié)點(diǎn)耗時(shí)相加。然而流水線處理的話,每一幀的耗時(shí)取決于耗時(shí)最大的處理節(jié)點(diǎn)。

上圖為 Shopee 的直播/點(diǎn)播轉(zhuǎn)碼服務(wù)架構(gòu)圖。點(diǎn)播轉(zhuǎn)碼集群分為內(nèi)部 Prado 容器集群和云主機(jī)集群,MMS 點(diǎn)播平臺(tái)是我們的上游服務(wù),該平臺(tái)可以根據(jù)負(fù)載自由調(diào)度,選擇使用 Prado 轉(zhuǎn)碼或是云主機(jī)轉(zhuǎn)碼。

說(shuō)個(gè)題外話,為什么這里會(huì)有兩種集群?近兩年因?yàn)橐咔椋?wù)器采購(gòu)比較困難,于是公司的 SRE 建議我們,這類對(duì)數(shù)據(jù)安全性要求沒(méi)有特別高的服務(wù)可以切到云主機(jī),以加快業(yè)務(wù)落地。

對(duì)于轉(zhuǎn)碼后的視頻畫(huà)面質(zhì)量,我們也有內(nèi)部的畫(huà)質(zhì)數(shù)據(jù)平臺(tái) AWCY,提供編碼畫(huà)質(zhì)監(jiān)控能力。

3.2 直播連麥

上圖是 Shopee App 的直播連麥服務(wù)架構(gòu)。連麥雙方通過(guò) RTC-SFU 服務(wù)通信,觀眾通過(guò) HTTP-FLV 觀看直播。

這里值得注意的是,通常云廠商為了后臺(tái)的穩(wěn)定性,將連麥服務(wù)的邏輯簡(jiǎn)單化了,不管房間是否有連麥主播,都采用轉(zhuǎn)碼的方式處理視頻流。而既然有轉(zhuǎn)碼,就涉及到視頻編碼環(huán)節(jié),若只有一路主播的時(shí)候也轉(zhuǎn)碼,會(huì)浪費(fèi)大量算力資源。

為了節(jié)省計(jì)算資源,Shopee 主播視頻采用了 H.264 編碼。在單個(gè)主播的時(shí)候,我們采用直接轉(zhuǎn)封裝的方式處理主播的視頻;當(dāng)有連麥者接入的時(shí)候,采用混流轉(zhuǎn)碼的方式處理視頻;連麥者離開(kāi)后,再次返回到轉(zhuǎn)封模式。

而 MCU 后臺(tái)處理了這種模式之間交替切換的問(wèn)題,通過(guò)緩存 GOP 的方式解決從單主播切換到連麥模式的場(chǎng)景,通過(guò)等待新的 GOP 的方式解決從連麥模式切換到單人模式的場(chǎng)景。

線上大部分時(shí)候,在房間只有單個(gè)主播的場(chǎng)景下,CPU 的平均負(fù)載較低,大大提高了集群的并發(fā)能力。單臺(tái)機(jī)器如果進(jìn)行轉(zhuǎn)碼,最多支持 20 路主播;如果不進(jìn)行轉(zhuǎn)碼,目前通過(guò)壓測(cè)數(shù)據(jù)來(lái)看,至少支持 200 路主播轉(zhuǎn)發(fā)。

這一套方案也用于 SeaBank 在線開(kāi)戶系統(tǒng),對(duì)開(kāi)戶通話過(guò)程進(jìn)行錄制。區(qū)別在于 SeaBank 系統(tǒng)只有混流模式。

3.3 多人會(huì)議混流

對(duì)于 Shopee 內(nèi)部通訊軟件 SeaTalk,我們提供了多人會(huì)議混流服務(wù)作為技術(shù)能力儲(chǔ)備(目前該功能還未上線),混流模塊中嵌入了開(kāi)源軟件 OWT 和 mediasoupclient 的核心模塊,并且在 OWT 模塊上增加了 3 幀的緩存隊(duì)列,以平滑混流視頻幀。會(huì)議混流系統(tǒng)支持 RTMP 和 WebRTC 接入。

3.4 視頻后臺(tái)編輯

針對(duì) Shopee 的短視頻產(chǎn)品 Shopee Video,我們開(kāi)發(fā)了一套后臺(tái)編輯服務(wù),用于完成一些 2D 特效,例如圖片序列轉(zhuǎn)視頻、添加背景音樂(lè)、畫(huà)面切割、文字動(dòng)畫(huà)、視頻轉(zhuǎn)場(chǎng)、背景模糊等。目前通過(guò) CPU 執(zhí)行 Xvfb 虛擬顯存的方式完成 gltransition 的轉(zhuǎn)場(chǎng)效果。

4. 高清低碼

隨著 Shopee App 中帶貨直播業(yè)務(wù)量逐漸增長(zhǎng),提升直播用戶畫(huà)質(zhì)體驗(yàn)的需求也日益強(qiáng)烈。另一方面,在東南亞的網(wǎng)絡(luò)條件下,直播分辨率很多還是 360p 或 270p,碼率 300-500k。

起初,大部分 Shopee 帶貨主播流沒(méi)有轉(zhuǎn)碼,為了適配直播觀眾下行參差不同的網(wǎng)絡(luò)情況,主播甚至用更低的分辨率和碼率開(kāi)播,來(lái)提高觀眾側(cè)的流暢度,當(dāng)然這種做法以犧牲清晰度為代價(jià)。

在考慮用戶觀看體驗(yàn),并綜合視頻轉(zhuǎn)碼成本等多種因素后,Shopee 決定投入自研視頻轉(zhuǎn)碼業(yè)務(wù)。與業(yè)界常見(jiàn)做法類似,Shopee 的直播轉(zhuǎn)碼也分為普通轉(zhuǎn)碼和高清低碼轉(zhuǎn)碼。

普通直播轉(zhuǎn)碼集群用 NVIDIA T4 顯卡硬編碼,來(lái)支持更多直播轉(zhuǎn)碼。測(cè)試數(shù)據(jù)顯示,直播帶貨場(chǎng)景下,一張 NVIDIA T4 顯卡能編碼 30 路,相較于 CPU 成本有一定優(yōu)勢(shì)。另外一部分是高清低碼轉(zhuǎn)碼,使用 CPU 轉(zhuǎn)碼,編碼器是基于 x264 優(yōu)化后的版本。

上圖是 Shopee 直播高清低碼和云廠商高清低碼的畫(huà)質(zhì)對(duì)比,左邊可以看出來(lái) Shopee 轉(zhuǎn)碼畫(huà)質(zhì)明顯優(yōu)于云廠商 A,和右邊的云廠商 B 相比,在塊效應(yīng)的處理上也有細(xì)微優(yōu)勢(shì)。那么 Shopee 的高清低碼轉(zhuǎn)碼是如何做到的呢?

4.1 視頻處理的一般流程

先來(lái)大概了解一下視頻轉(zhuǎn)碼需要經(jīng)過(guò)哪些環(huán)節(jié):

第一步解碼得到 YUV 畫(huà)面數(shù)據(jù);

然后經(jīng)過(guò)前置處理,包含了 ROI 背景 gblur 濾波、銳化、AI 增強(qiáng);

接著將 YUV 數(shù)據(jù)送進(jìn)編碼器,進(jìn)入預(yù)編碼環(huán)節(jié),主要步驟是下采樣、Scenecut 關(guān)鍵幀判斷,幀類型決策、AC 能量值計(jì)算、MBTree 等;

下一步進(jìn)入編碼環(huán)節(jié),包括幀內(nèi)/幀間預(yù)測(cè)編碼、RDO、Deblocking、參考幀管理等步驟;

最后就是進(jìn)入量化和熵編碼環(huán)節(jié),最終輸出 NALU 單元。

上面步驟中藍(lán)色部分是 Shopee 在 x264 基礎(chǔ)上做過(guò)優(yōu)化的節(jié)點(diǎn),接下來(lái)會(huì)一一講解。

4.2 Shopee 高清低碼優(yōu)化方案

4.2.1 前置處理

1)CDEF 算法

在前置處理時(shí),參考 AV1 中實(shí)現(xiàn)的 CDEF 算法,抽出來(lái)作為一個(gè) FFmpeg 濾鏡,該算法主要用于解決由于過(guò)度壓縮導(dǎo)致的物體邊緣振鈴效應(yīng)。通過(guò)該濾波算法之后,畫(huà)面中的物體邊緣會(huì)更加平滑。

CDEF 大致可以理解為首先計(jì)算當(dāng)前 8x8 的塊在預(yù)設(shè)的八個(gè)方向塊上的殘差,選擇殘差最小的作為確定的角度方向,然后找到對(duì)應(yīng)的角度方向矩陣進(jìn)行濾波。圖中最右邊是濾波后的效果,可以看到樹(shù)枝的邊緣更加平滑了。

2)3D 降噪

常見(jiàn)的傳統(tǒng)降噪算法 FFmpeg 中也有一些濾鏡實(shí)現(xiàn),比如 hqdn3d、bm3d 等。hqdn3d 參考的點(diǎn)較少,運(yùn)動(dòng)劇烈時(shí)效果不佳。bm3d 需要額外計(jì)算運(yùn)動(dòng)向量,速度極慢。

我們?cè)诰幋a器內(nèi)置的 3D 降噪算法通過(guò)復(fù)用運(yùn)動(dòng)向量的方法規(guī)避了效果差和速度慢的缺點(diǎn)。利用前后幀的預(yù)測(cè)信息,在預(yù)編碼中得到的運(yùn)動(dòng)向量作為依據(jù),找到被參考幀對(duì)應(yīng)的塊,作為濾波的參考?jí)K,然后通過(guò)雙邊濾波算法,對(duì)當(dāng)前塊進(jìn)行濾波。

這樣一來(lái),因?yàn)閺?fù)用了運(yùn)動(dòng)向量,從而能夠較好地對(duì)當(dāng)前的塊進(jìn)行降噪濾波,也減少了計(jì)算復(fù)雜度。我們?cè)?x265 也實(shí)現(xiàn)了同樣的算法。

4.2.2 分類參數(shù)

常見(jiàn)的分類編碼參數(shù)往往通過(guò)人為主觀分類,例如游戲、UGC 視頻、影視劇等。而考慮到主觀分類對(duì)于編碼器提高 BD-rate 不一定是最佳的,Shopee 采用了一種逆向的思維方法,先抽出來(lái)幾個(gè)不增加編碼復(fù)雜度,主要影響畫(huà)質(zhì)的參數(shù):B 幀個(gè)數(shù)、B 幀決策算法、B-pyramid、B 幀層次結(jié)構(gòu)、QComp 等。

首先將這些參數(shù)分成性價(jià)比最高的八組(當(dāng)然這八組是通過(guò)我們線上的視頻跑出來(lái)的結(jié)論),然后分別得出圖中幾組參數(shù)的最佳 SSIM BD-rate 收益——這里的收益是相對(duì)于我們線上統(tǒng)一的編碼參數(shù)而言,把最佳 BD-rate 視頻,相同參數(shù)的作為一組,然后針對(duì)這一組視頻提取特征,進(jìn)行訓(xùn)練,使用訓(xùn)練完的模型對(duì)線上視頻進(jìn)行分類。

手動(dòng)參數(shù)分類測(cè)試 BD-rate 收益最大 2.6%,模型分類 BD-rate 提升取決于模型分類的準(zhǔn)確性,目前通過(guò)模型分類收益 1.4% 左右,模型還在進(jìn)一步改進(jìn)中,預(yù)期是接近手動(dòng)分類 BD-rate 收益最大 2.6% 的目標(biāo)。

4.2.3 編碼器優(yōu)化

1)VBV - Adapt CRF

在編碼器碼控方面,我們也做出了一些優(yōu)化。如圖,這是 VBV + CRF 碼控模型示意圖,一邊注水,注水速度為 maxrate*幀duration;一邊放水,放水速度為實(shí)際編碼碼率。

當(dāng)水位過(guò)低時(shí),發(fā)生下溢,增大 QP 值,降低編碼碼率。當(dāng)水位過(guò)高,發(fā)生上溢,減小 QP 值,增大編碼碼率。實(shí)際編碼檔位的 maxrate、bufsize 參數(shù)限制了水池的大小,使得復(fù)雜視頻畫(huà)面為了達(dá)到目標(biāo) CRF 畫(huà)質(zhì),經(jīng)常發(fā)生下溢,當(dāng)碼率不足時(shí),大幅度降低了高復(fù)雜度畫(huà)面的畫(huà)質(zhì),比如出現(xiàn)嚴(yán)重塊效應(yīng)。

我們通過(guò)動(dòng)態(tài)調(diào)整 CRF 值的方式,讓平均畫(huà)質(zhì)始終處于 VBV 限制范圍內(nèi)。當(dāng)發(fā)生下溢時(shí),增大 CRF 值,降低目標(biāo)畫(huà)質(zhì);當(dāng)發(fā)生上溢時(shí),減小 CRF 值,提高目標(biāo)畫(huà)質(zhì),以此達(dá)到提升視頻平均質(zhì)量的目的。通過(guò)線上大量視頻測(cè)試,BD-rate 提升了 1.2%。

2)Hierarchy B + 時(shí)域?yàn)V波

Shopee 編碼器對(duì) BD-rate 提升最多的優(yōu)化是分層 B 幀結(jié)構(gòu)。

如圖所示,左邊是社區(qū)版本 x264 編碼出來(lái)的 B 幀結(jié)構(gòu),右邊是優(yōu)化后的 B 幀結(jié)構(gòu)。由于右邊的 B 幀分了更多層,從圖上可以很直觀地看出來(lái),參考幀和被參考幀的距離更近,參考關(guān)系更優(yōu)。

另外,分層 B 幀使用先確定 miniGOP,然后二分的方式?jīng)Q策參考關(guān)系和層次,相較于社區(qū)版的 Adapt B 和 Viterbi B 幀決策,速度更快。以下是我們測(cè)試的 BD-rate 提升和幀率提升收益。

另外,決策完參考關(guān)系之后,還可以通過(guò)對(duì)編碼幀進(jìn)行時(shí)域?yàn)V波,讓編碼幀更接近參考幀,減小殘差,以提高 BD-rate,收益大概在 2% 左右。

3)ROI(GBlur 背景)

為了適配東南亞的網(wǎng)絡(luò)質(zhì)量,Shopee 轉(zhuǎn)碼服務(wù)提出了一種 ROI 轉(zhuǎn)碼檔位。以往常見(jiàn)的 ROI 編碼,單純通過(guò)增大非 ROI 區(qū)域的 QP 值來(lái)降低非 ROI 區(qū)域的畫(huà)質(zhì),然后把 bits 節(jié)省下來(lái),減小 ROI 區(qū)域 QP 值來(lái)提高畫(huà)質(zhì)。

但是這樣帶來(lái)一個(gè)問(wèn)題,非 ROI 區(qū)域看起來(lái)塊效應(yīng)非常明顯,和 ROI 區(qū)域有明顯割裂感。于是,我們對(duì)非 ROI 區(qū)域進(jìn)行高斯模糊濾波之后再 ROI 編碼,效果看起來(lái)比原來(lái)的 ROI 編碼好很多。

如圖所示,左邊是原圖,中間是扣下來(lái)的 ROI 區(qū)域,右圖是高斯模糊之后 ROI 編碼的效果。

4)長(zhǎng)期參考幀

為了支持后臺(tái)視頻編輯的服務(wù),我們?cè)诰庉嫹?wù)編碼器中增加了長(zhǎng)期參考幀。

在剪輯視頻的時(shí)候,可能會(huì)出現(xiàn)一段節(jié)目中間要植入廣告的場(chǎng)景,如果按照原生的 x264 幀類型決策策略,會(huì)發(fā)生 scenecut,決策為 IDR 幀,然而我們可以看到,這里中間植入的廣告的前后畫(huà)面很有關(guān)聯(lián)性。

于是我們把發(fā)生 scenecut 前額視頻幀緩存在編碼器參考幀隊(duì)列中,并標(biāo)記為長(zhǎng)期參考幀,當(dāng)后面的視頻幀出現(xiàn) scenecut 的時(shí)候,再和隊(duì)列中的長(zhǎng)期參考幀 scenecut 決策一次,如果決策結(jié)果均為發(fā)生 scenecut,則標(biāo)記為 IDR,反之編碼為 P 幀。如此優(yōu)化后,BD-rate 提升 6% 左右,不過(guò)該策略僅適用于視頻剪輯的場(chǎng)景。

5)分級(jí) RDO

另外,我們還在 RDO 方面做了一些優(yōu)化。

RDO 是編碼器進(jìn)行二次編碼,把重建塊和原畫(huà)之間的殘差作為失真,為了盡量減小失真,對(duì)幀內(nèi)/幀間預(yù)測(cè)模式、運(yùn)動(dòng)向量、QP 值重新決策的過(guò)程。它們的決策強(qiáng)度都是依次遞增的,意思是如果要打開(kāi) QP RD,就一定要開(kāi)運(yùn)動(dòng)向量,模式?jīng)Q策 refine。

/* mbrd == 1 -> RD mode decision */ /* mbrd == 2 -> RD refinement satd cost */ /* mbrd == 3 -> QPRD */

于是我們把 QP RD 單獨(dú)拿出來(lái),通過(guò)新增的參數(shù)控制開(kāi)關(guān),在犧牲了一定速度的條件下,達(dá)到了 BD-rate 3% 的收益。

6)時(shí)域 SVC

針對(duì) RTC 場(chǎng)景,我們也做了一些編碼側(cè)的優(yōu)化。

RTC 一般是沒(méi)有 B 幀的,為了解決群組會(huì)議用戶網(wǎng)絡(luò)質(zhì)量參差不齊的問(wèn)題。我們將 P 幀也進(jìn)行了分層。層級(jí)之間的參考關(guān)系如圖所示,上層的 P 幀永遠(yuǎn)參考下層的幀。

這樣一來(lái),我們?cè)趥鬏斶^(guò)程中可以任意丟棄上一層的 P 幀,而不影響解碼播放。下行帶寬不足的時(shí)候, 在一個(gè) miniGOP 內(nèi)部,上層的 P 幀可以根據(jù)實(shí)際網(wǎng)絡(luò)情況丟棄,以降低帶寬,從而保證視頻的流暢性。

5. 性能優(yōu)化

5.1 編碼器端上優(yōu)化

在線上視頻業(yè)務(wù)中,我們?cè)龅竭^(guò)一些問(wèn)題。有一些配置較低的手機(jī),在光線不是很好的情況下,拍出來(lái)的畫(huà)面無(wú)法看清畫(huà)面中必要的的文字信息。于是我們對(duì)手機(jī)上采集到的畫(huà)面進(jìn)行了銳化,讓文字看起來(lái)更清晰一些。

然而測(cè)試發(fā)現(xiàn),對(duì)于東南亞的手機(jī)配置,這樣的算法發(fā)熱太嚴(yán)重,即便銳化算法是參考了 FFmpeg 的 USM,已經(jīng)是通過(guò)橫縱向狀態(tài)機(jī)復(fù)用和多線程優(yōu)化過(guò)的版本,銳化一幀 720p 普遍耗時(shí)還是有 15-20ms,而且手機(jī)發(fā)熱嚴(yán)重。

于是我們針對(duì) 3x3 的 USM 模版,用 NEON 匯編指令優(yōu)化了銳化函數(shù),把一些點(diǎn)積、累加運(yùn)算通過(guò) SIMD 指令并行處理,銳化處理的幀率提高了 7 倍,手機(jī)也不再發(fā)熱。

5.2 一入多出編碼

東南亞的機(jī)房機(jī)器成本同樣很高,為了節(jié)省服務(wù)器機(jī)器資源,在點(diǎn)播后臺(tái)轉(zhuǎn)碼服務(wù)中,我們也做了一些成本優(yōu)化。

Shopee App 需要將一個(gè)點(diǎn)播視頻轉(zhuǎn)碼 6 個(gè)檔位,不同的分辨率和碼率。我們通過(guò)對(duì)一些轉(zhuǎn)碼中間數(shù)據(jù)復(fù)用的方式很大程度上降低了轉(zhuǎn)碼服務(wù)集群的成本,首先我們復(fù)用了前置處理,包括 AI 增強(qiáng),把同一個(gè)視頻文件轉(zhuǎn)碼多個(gè)檔位的請(qǐng)求調(diào)度到同一臺(tái)主機(jī)上,以復(fù)用前置處理結(jié)果。

其次,我們通過(guò)復(fù)用編碼器 lookahead 幀決策、MBTree 等信息。針對(duì)同一個(gè)視頻文件的轉(zhuǎn)碼,我們通常只需要對(duì)其中一個(gè)檔位的視頻做幀決策,其他的檔位直接復(fù)用幀類型信息。在編碼環(huán)節(jié)中復(fù)用運(yùn)動(dòng)向量,skip 塊等信息來(lái)減少運(yùn)算量。

經(jīng)過(guò)測(cè)試,有參考信息的轉(zhuǎn)碼檔位能節(jié)省 50% 的運(yùn)算量。復(fù)用的轉(zhuǎn)碼檔位越多,節(jié)省的 CPU 算力也越多。

以上就是本次分享的主要內(nèi)容。接下來(lái)我們還會(huì)發(fā)布在 x265 編碼器上的一些優(yōu)化,在一些視頻業(yè)務(wù)上支持 H.265 編碼能力,進(jìn)一步提高視頻用戶體驗(yàn)。

本文轉(zhuǎn)載自Shopee技術(shù)團(tuán)隊(duì)公眾號(hào)。

    本文為澎湃號(hào)作者或機(jī)構(gòu)在澎湃新聞上傳并發(fā)布,僅代表該作者或機(jī)構(gòu)觀點(diǎn),不代表澎湃新聞的觀點(diǎn)或立場(chǎng),澎湃新聞僅提供信息發(fā)布平臺(tái)。申請(qǐng)澎湃號(hào)請(qǐng)用電腦訪問(wèn)http://renzheng.thepaper.cn。

            查看更多

            掃碼下載澎湃新聞客戶端

            滬ICP備14003370號(hào)

            滬公網(wǎng)安備31010602000299號(hào)

            互聯(lián)網(wǎng)新聞信息服務(wù)許可證:31120170006

            增值電信業(yè)務(wù)經(jīng)營(yíng)許可證:滬B2-2017116

            ? 2014-2026 上海東方報(bào)業(yè)有限公司