深挖“窄帶高清”的實現原理

過去幾年,又拍云一直在點播、直播等視頻應用方面潛心鉆研,取得了不俗的成果。我們結合點播、直播、短視頻等業務中的用戶場景,推出了“省帶寬、壓成本”系列文章,從編碼技術、網絡架構等角度出發,結合又拍云的產品成果,向大家介紹節省流量,降低帶寬成本的妙招。

《降低30%視頻碼率,深挖“窄帶高清”的實現原理》是“省帶寬、壓成本”系列文章的第3篇。本文將深挖又拍云最新技術窄帶高清,講解窄帶高清是怎樣在不改變視頻主觀質量的情況下,通過改變碼率來降低視頻播放的帶寬成本。

往期回顧:

第一篇:《節省50%以上的流量成本,從產品架構看PCDN的節流能力》

第二篇:《深入解析 H.265 編碼模式,帶你了解 Apple 全面推進 H.265 的原因》

第三篇:《愛奇藝第一季度又燒了11個億元,什么時候是個頭?》

第四篇:《降低30%視頻碼率,深挖“窄帶高清”的實現原理》


盡量降低視頻碼率又不影響視頻的主觀觀看質量,這是視頻平臺最關心的問題之一,因為降低碼率意味著視頻播放帶寬的下降,節約成本。

2018年3月,又拍云自研的“窄帶高清”功能,通過碼率控制優化,讓視頻在主觀質量不受影響的情況下,高效降低30%視頻碼率。窄帶高清通過視頻內容復雜度算法來確定視頻應用場景,繼而確定該場景下最優視頻編碼參數,輔助于碼率控制算法,最終達到視頻碼率控制與帶寬優化這個目的。

窄帶高清可以有效提升視頻播放平臺終端用戶視頻打開速度,并且減少視頻分發在帶寬成本的上的消耗。

為什么窄帶高清可以節省流量

一般來說,視頻轉碼所需的成本比視頻播放帶寬少很多。因此通過視頻轉碼來降低帶寬成本成為可能,窄帶高清就是建立在這個大前提下的一個功能。通過窄帶高清功能可以節省30%的視頻碼率,大大降低直播、點播等業務場景下的帶寬成本。

?

△ 左為源視頻,右為窄帶高清(詳見視頻演示)

窄帶高清是如何實現

實現窄帶高清有兩個優化方向,1.在相同碼率的情況下提升視頻質量;2.在主觀質量不受損失的情況下,盡可能降低視頻碼率。

根據實際業務需求,又拍云的“窄帶高清”功能采用了第二種思路,即保持視頻質量,降低碼率。

場景劃分

首先我們需要對視頻進行內容復雜度分析,獲取場景信息,取得視頻空間域的復雜度和時間域的復雜度,然后獲得視頻序列最終的復雜度,最終確定視頻編碼場景。

為什么要進行場景劃分呢?

下文我們以場景運動劇烈和平緩的視頻為例,跟大家解釋一下場景劃分的原因。

?

△ 平緩視頻、劇烈視頻的碼率分析(psnr)

從上圖可以看出,在相同質量下,場景運動緩慢的視頻比場景運動劇烈的視頻,所需碼率少很多,這就是場景劃分的意義所在。

目前我們對手機拍攝視頻、動畫、商業動作大片、影視劇、在線教育、綜藝節目等視頻場景進行測試,獲取常見場景下視頻內容的編碼復雜度。

另外在高碼率的時候,碼率增加對視頻質量的提升比較少,因此只要找到合適碼率,那么視頻低碼率下的質量和高碼率下的質量是相差無幾的,這是窄帶高清的理論基石。

碼率控制算法研究

碼率控制算法是視頻編碼器中非常重要的部分,學術上,碼率控制算法分為兩種:CBR(Constant Bit Rate,恒定碼率)和VBR(Variable Bit Rate,可變碼率)。考慮到業務需求是在主觀質量不變的情況下,降低視頻文件大小,又拍云“窄帶高清”功能采用VBR的方式,并做了如下設定提升整體畫質的表現:

  • 視頻運動緩慢的時候,使用更低的碼率;運動劇烈的時候,使用更高的碼率;
  • 視頻圖像內部,靜止的部分分配更少的碼率;運動的部分分配更多的碼率。

通俗的說,把碼率放在該用的地方,不浪費每一個比特,實現更低的碼率,更清晰的畫質,更小的文件尺寸。

視頻編碼器優化

如何對視頻編碼器進行優化,又拍云通過客觀質量評價加主觀質量評價想結合的辦法來制定視頻編碼器優化標準。

視頻質量評價作為視頻領域熱門的研究方向之一,分成主觀質量評價和客觀質量評價兩類。

主觀質量評價,即通過人工觀察者直接觀察視頻,在主觀打分,對視頻質量的好壞進行分級,該方法必須嚴格的測試環境實施步驟復雜,而且對觀察者要有一定的專業要求,因此實施起來需要巨大的代價,一般會用在科研機構小規模的算法驗證。

而對海量視頻數據和工業界來說,客觀質量評價是更好的選擇。PSNR(Peak Signal to Noise Ratio,峰值信噪比),是基于數學統計特性的評價方法,基于獨立的像素差值,忽略序列內容對失真可見度的影響,因而會出現和主觀感知的視頻質量的一致性存在差異。但是算法簡單,易于操作,且大規模應用。

針對PSNR的缺點,Zhou Wang等人實現了亮度、對比度和結構失真相互獨立的質量評價方法SSIM,得到更接近人眼視覺特性的評價指標。但是依然是過于簡單,屏蔽掉了HVS的其他生理特性。

視頻編碼器的參數數量很多,紛繁復雜,為了得到最佳的優化組合,我們用了客觀質量評價算法PSNR(Peak Signal to Noise Ratio,峰值信噪比)和SSIM(Structural SIMilarity,結構相似度),主觀質量評價算法VMAF(Video Multi-Method Assessment Fusion),再配合人工主觀質量評價的方式,獲取了常見場景下視頻編碼器的參數優化方案。

又拍云窄帶高清,融合了以上幾種客觀和主觀的評價方法,在編碼器優化過程中,獲取碼率和視頻質量的平衡。

目前,絕大多數視頻還是使用H.264/AVC視頻編碼標準,更先進的H.265/HEVC和VP9的普及度還不夠。因此又拍云“窄帶高清”功能優先支持了H.264視頻編碼格式,未來將支持H.265格式。

學術界還有許多碼率方面的研究成果,比如基于ROI(Region of Interest,感興趣區域)和HVS(Human Visual System,人眼視覺系統)的碼率控制,這些成果和技術,又拍云也將積極融入到相關產品和解決方案中。

?

推薦閱讀:

愛奇藝第一季度又燒了11個億元,什么時候是個頭?
平均節省流量 30% ,這項視頻云處理技術是如何實現的??

?

?

轉載于:https://www.cnblogs.com/upyun/p/9040963.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/389636.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/389636.shtml
英文地址,請注明出處:http://en.pswp.cn/news/389636.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

學習總結5 - bootstrap學習記錄1__安裝

1.bootstrap是什么? 簡潔、直觀、強悍的前端開發框架,說白了就是給后端二把刀開發網頁用的,讓web開發更迅速、簡單。 復制代碼 2.如何使用? 如圖所示到bootstrap中文網進行下載 復制代碼 下載完成之后,如圖所示&#x…

519. 隨機翻轉矩陣

519. 隨機翻轉矩陣 給你一個 m x n 的二元矩陣 matrix ,且所有值被初始化為 0 。請你設計一個算法,隨機選取一個滿足 matrix[i][j] 0 的下標 (i, j) ,并將它的值變為 1 。所有滿足 matrix[i][j] 0 的下標 (i, j) 被選取的概率應當均等。 …

模型的搜索和優化方法綜述:

一、常用的優化方法: 1.爬山 2.最陡峭下降 3.期望最大值 二、常用的搜索方法: 1.貪婪搜索 2.分支界定 3.寬度(深度)優先遍歷轉載于:https://www.cnblogs.com/xyp666/p/9042143.html

Redis 服務安裝

下載 客戶端可視化工具: RedisDesktopManager redis官網下載: http://redis.io/download windos服務安裝 windows服務安裝/卸載下載文件并解壓使用 管理員身份 運行命令行并且切換到解壓目錄執行 redis-service --service-install windowsR 打開運行窗口, 輸入 services.msc 查…

熊貓數據集_對熊貓數據框使用邏輯比較

熊貓數據集P (tPYTHON) Logical comparisons are used everywhere.邏輯比較隨處可見 。 The Pandas library gives you a lot of different ways that you can compare a DataFrame or Series to other Pandas objects, lists, scalar values, and more. The traditional comp…

初級功能筆試題-1

給我徒弟整理的一些理論性的筆試題,不喜勿噴。(所以沒有答案哈) 1、測試人員返測缺陷時,如果缺陷未修復,把缺陷的狀態置為下列什么狀態()。 2、當驗證被測系統的主要業務流程和功能是否實現時&a…

ansbile--playbook劇本案例

個人博客轉至: www.zhangshoufu.com 通過ansible批量管理三臺服務器,使三臺服務器實現備份,web01、nfs、backup,把web和nfs上的重要文件被分到backup上,主機ip地址分配如下 CharacterIP地址IP地址主機名Rsync--server1…

5938. 找出數組排序后的目標下標

5938. 找出數組排序后的目標下標 給你一個下標從 0 開始的整數數組 nums 以及一個目標元素 target 。 目標下標 是一個滿足 nums[i] target 的下標 i 。 將 nums 按 非遞減 順序排序后,返回由 nums 中目標下標組成的列表。如果不存在目標下標,返回一…

決策樹之前要不要處理缺失值_不要使用這樣的決策樹

決策樹之前要不要處理缺失值As one of the most popular classic machine learning algorithm, the Decision Tree is much more intuitive than the others for its explainability. In one of my previous article, I have introduced the basic idea and mechanism of a Dec…

說說 C 語言中的變量與算術表達式

我們先來寫一個程序&#xff0c;打印英里與公里之間的對應關系表。公式&#xff1a;1 mile1.61 km 程序如下&#xff1a; #include <stdio.h>/* print Mile to Kilometre table*/ main() {float mile, kilometre;int lower 0;//lower limitint upper 1000;//upper limi…

gl3520 gl3510_帶有gl gl本機的跨平臺地理空間可視化

gl3520 gl3510Editor’s note: Today’s post is by Ib Green, CTO, and Ilija Puaca, Founding Engineer, both at Unfolded, an “open core” company that builds products and services on the open source deck.gl / vis.gl technology stack, and is also a major contr…

uiautomator +python 安卓UI自動化嘗試

使用方法基本說明&#xff1a;https://www.cnblogs.com/mliangchen/p/5114149.html&#xff0c;https://blog.csdn.net/Eugene_3972/article/details/76629066 環境準備&#xff1a;https://www.cnblogs.com/keeptheminutes/p/7083816.html 簡單實例 1.自動化安裝與卸載 &#…

5922. 統計出現過一次的公共字符串

5922. 統計出現過一次的公共字符串 給你兩個字符串數組 words1 和 words2 &#xff0c;請你返回在兩個字符串數組中 都恰好出現一次 的字符串的數目。 示例 1&#xff1a;輸入&#xff1a;words1 ["leetcode","is","amazing","as",&…

Python+Appium尋找藍牙/wifi匹配

前言&#xff1a; 此篇是介紹怎么去尋找藍牙&#xff0c;進行匹配。主要2個問題點&#xff1a; 1.在不同環境下&#xff0c;搜索到的藍牙數量有變 2.在不同環境下&#xff0c;搜索到的藍牙排序會變 簡單思路&#xff1a; 將搜索出來的藍牙名字添加到一個list去&#xff0c;然后…

power bi中的切片器_在Power Bi中顯示選定的切片器

power bi中的切片器Just recently, while presenting my session: “Magnificent 7 — Simple tricks to boost your Power BI Development” at the New Stars of Data conference, one of the questions I’ve received was:就在最近&#xff0c;在“新數據之星”會議上介紹我…

字符串匹配 sunday算法

#include"iostream" #include"string.h" using namespace std;//BF算法 int strfind(char *s1,char *s2,int pos){int len1 strlen(s1);int len2 strlen(s2);int i pos - 1,j 0;while(j < len2){if(s1[i j] s2[j]){j;}else{i;j 0;}}if(j len2){…

5939. 半徑為 k 的子數組平均值

5939. 半徑為 k 的子數組平均值 給你一個下標從 0 開始的數組 nums &#xff0c;數組中有 n 個整數&#xff0c;另給你一個整數 k 。 半徑為 k 的子數組平均值 是指&#xff1a;nums 中一個以下標 i 為 中心 且 半徑 為 k 的子數組中所有元素的平均值&#xff0c;即下標在 i …

Adobe After Effects CS6 操作記錄

安裝 After Effects CS6 在Mac OS 10.12.5 上無法直接安裝, 需要瀏覽到安裝的執行文件后才能進行 https://helpx.adobe.com/creative-cloud/kb/install-creative-suite-mac-os-sierra.html , 但是即使安裝成功, 也不能正常啟動, 會報"You can’t use this version of the …

數據庫邏輯刪除的sql語句_通過數據庫的眼睛查詢sql的邏輯流程

數據庫邏輯刪除的sql語句Structured Query Language (SQL) is famously known as the romance language of data. Even thinking of extracting the single correct answer from terabytes of relational data seems a little overwhelming. So understanding the logical flow…

好用的模塊

import requests# 1、發get請求urlhttp://api.xxx.xx/api/user/sxx_infodata{stu_name:xxx}reqrequests.get(url,paramsdata) #發get請求print(req.json()) #字典print(req.text) #string,json串# 返回的都是什么# 返回的類型是什么# 中文的好使嗎# 2、發請求posturlhttp://api…