作者:Zhi Li、Anne Aaron、Ioannis Katsavounidis、Anush Moorthy 和 Megha Manohara
術語縮寫
DLM - Detail Loss Metric 細節損失指標
DMOS - Differential Mean Opinion Score 差分平均意見分數
DSIS - Double Stimulus Impairment Scale 雙刺激損傷量表
SVM - Support Vector Machine 支援向量機
VIF - Visual Information Fidelity 視覺資訊保真度
VMAF - Video Multimethod Assessment Fusion 視訊多方法評估融合
SRCC - Spearman’s rank correlation coefficient 斯皮爾曼等級相關係數
緣起
在 Netflix,我們關心視訊質量,我們關心大規模準確測量視訊質量。我們的方法:視訊多方法評估融合 (VMAF)指數,旨在反映觀眾對我們的流媒體質量的看法。我們正在開源這個工具,並邀請研究界與我們合作完成這個重要的專案。
我們對高質量視訊的追求
我們努力為我們的會員提供出色的觀看體驗:流暢的視訊播放,無惱人的畫面偽影。考慮到網路頻寬和觀看裝置的限制,這項工作的一個重要部分是提供具有最佳感知質量的視訊流。我們通過多種努力不斷朝著這個目標努力。
首先,我們在視訊編碼領域進行了創新。流式視訊需要使用 H.264/AVC、HEVC 和 VP9 等標準進行壓縮,以便以合理的位元率進行流式傳輸。當視訊壓縮過多或不正確時,這些技術會引入質量損害,稱為壓縮偽影。專家將它們稱為“塊效應”、“振鈴效應”或“蚊子噪音”,但對於普通觀眾來說,視訊看起來並不正確。為此,我們定期比較編解碼器供應商的壓縮效率、穩定性和效能,並整合市場上最好的解決方案。我們評估不同的視訊編碼標準,以確保我們始終處於壓縮技術的前沿。例如,我們在 H.264/AVC、HEVC 和 VP9 之間進行比較,開放媒體聯盟(AOM) 和聯合視訊探索團隊(JVET)。即使在既定標準內,我們也會繼續試驗配方決策(參見 Per-Title 編碼優化專案)和速率分配演算法,以充分利用現有工具集。
我們在基於雲的分散式媒體管道中對 Netflix 視訊流進行編碼,這使我們能夠擴充套件以滿足業務需求。為了最大限度地減少不良源交付、軟體錯誤和雲例項的不可預測性(瞬態錯誤)的影響,我們在管道中的各個點自動進行質量監控。通過這種監控,我們試圖在採集和管道中的每個轉換點檢測視訊質量問題。
最後,當我們在 Netflix 生態系統的各個領域(例如自適應流媒體或內容交付網路演算法)進行迭代並執行 A/B 測試時,我們努力確保通過系統改進來維持或提高視訊質量。例如,旨在減少播放開始延遲或重新緩衝的自適應流演算法的改進不應降低流會話中的整體視訊質量。
上述所有具有挑戰性的工作都取決於一個基本前提:我們可以準確有效地測量大規模視訊流的感知質量。傳統上,在視訊編解碼器的開發和研究中,有兩種方法被廣泛用於評估視訊質量:1) 視覺主觀測試和 2) 簡單指標的計算,例如 PSNR,或者最近的 SSIM [1]。
毫無疑問,對於我們生產、A/B 測試監控和編碼研究實驗的吞吐量而言,人工目視檢查在操作上和經濟上都是不可行的。測量影像質量是一個老問題,已經提出了許多簡單實用的解決方案。均方誤差 (MSE)、峰值訊雜比(PSNR) 和結構相似性指數 (SSIM) 是最初為影像設計並後來擴充套件到視訊的指標示例。這些指標通常在編解碼器(“迴圈內”)中用於優化編碼決策和報告編碼視訊的最終質量。儘管該領域的研究人員和工程師都清楚 PSNR 並不能始終反映人類的感知,但它仍然是編解碼器比較和編解碼器標準化工作的事實標準。
構建與 Netflix 相關的資料集
為了評估視訊質量評估演算法,我們採用資料驅動的方法。第一步是收集與我們的用例相關的資料集。儘管有用於設計和測試視訊質量指標的公開資料庫,但它們缺乏與 Netflix 等實際流媒體服務相關的內容多樣性。其中許多在源和編碼質量方面不再是最先進的;例如,它們包含標準清晰度 (SD) 內容並且僅涵蓋較舊的壓縮標準。此外,由於評估視訊質量的問題遠比測量壓縮偽影更為普遍,因此現有資料庫試圖捕捉更廣泛的損傷,不僅由壓縮引起,而且由傳輸損耗、隨機噪聲和幾何變換引起。
Netflix 的流媒體服務為設計準確反映流媒體視訊質量的感知指標帶來了一系列獨特的挑戰和機遇。例如:
視訊源特性。Netflix 擁有海量的電影和電視節目,它們在型別上表現出多樣性,例如兒童內容、動畫、快速動作電影、帶有原始鏡頭的紀錄片等。此外,它們還表現出多樣化的低階源特徵,例如膠片顆粒、感測器噪聲、計算機生成的紋理、始終如一的黑暗場景或非常明亮的色彩。過去開發的許多質量指標都沒有經過調整以適應源內容的這種巨大變化。例如,許多現有的資料庫缺乏動畫內容,並且大多數沒有考慮電影顆粒,這是專業娛樂內容中非常普遍的訊號特徵。
文物的來源。由於 Netflix 視訊流是使用強大的傳輸控制協議 (TCP) 傳輸的,因此丟包和誤碼絕不是視覺障礙的來源。這會在編碼過程中留下兩種型別的偽影,最終影響觀看者的體驗質量 (QoE):壓縮偽影(由於有失真壓縮)和縮放偽影(對於較低位元率,視訊在壓縮前被下采樣,然後在觀眾的裝置)。通過定製質量指標以僅涵蓋壓縮和縮放工件,以通用性換取精度,其準確性有望優於通用指標。
為了構建更適合 Netflix 用例的資料集,我們從 Netflix 目錄中的熱門電視節目和電影中選擇了 34 個源剪輯(也稱為參考視訊)的樣本,每 6 秒長,並將它們與公開的可用的剪輯。源剪輯涵蓋了廣泛的高階特徵(動畫、室內/室外、攝像機運動、面部特寫、人物、水、明顯的顯著性、物體數量)和低階特徵(膠片顆粒噪聲、亮度、對比度、紋理、運動、色彩變化、色彩豐富度、銳度)。使用源剪輯,我們以 384×288 到 1920×1080 的解析度和 375 kbps 到 20,000 kbps 的位元率對 H.264/AVC 視訊流進行編碼,產生大約 300 個失真視訊. 這涵蓋了廣泛的視訊位元率和解析度,以反映 Netflix 成員廣泛變化的網路狀況。
然後,我們進行了主觀測試,以確定非專家觀察者如何對編碼視訊相對於源剪輯的損傷進行評分。在標準化主觀測試中,我們使用的方法稱為雙刺激損傷量表 (DSIS)方法。參考視訊和失真視訊在消費級電視上按順序顯示,環境照明受控(如 ITU-R BT.500–13 [2] 建議書所述)。如果失真視訊以小於參考的解析度進行編碼,則在電視上顯示之前將其放大到源解析度。觀察者坐在類似客廳的環境中的沙發上,並被要求以 1(非常煩人)到 5(不明顯)的等級對損傷進行評分。將所有觀察者的分數結合起來生成差分平均意見分數或 DMOS 對於每個失真視訊並在 0 到 100 範圍內歸一化,參考視訊的得分為 100。來自觀察者的參考視訊、失真視訊和 DMOS 分數的集合在本文中將被稱為NFLX 視訊資料集。
傳統視訊質量指標
傳統的、廣泛使用的視訊質量指標與 NFLX 視訊資料集的“真實” DMOS 分數有何關聯?
視覺示例
上面,我們看到了從 4 個不同的失真視訊中捕獲的部分靜止幀;頂部的兩個視訊報告的 PSNR 值約為 31 dB,而底部的兩個視訊報告的 PSNR 值約為 34 dB。然而,人們幾乎沒有注意到“人群”視訊的差異,而兩個“狐狸”視訊的差異則更加明顯。人類觀察者通過將這兩個“人群”視訊的 DMOS 評分為 82(頂部)和 96(底部)來確認這一點,而對兩個“狐狸”視訊的 DMOS 評分分別為 27 和 58 分來確認這一點。
詳細結果
下圖是散點圖,在 x 軸上顯示觀察者的 DMOS,在 y 軸上顯示來自不同質量指標的預測分數。這些圖是從 NFLX 視訊資料集的選定子集中獲得的,我們將其標記為 NFLX-TEST(詳見下一節)。每個點代表一個失真視訊。我們繪製了四個質量指標的結果:
- 亮度分量的PSNR
- SSIM [1]
- 多尺度 FastSSIM [3]
- PSNR-HVS [4]
有關 SSIM、Multiscale FastSSIM 和 PSNR-HVS 的更多詳細資訊,請參閱參考部分列出的出版物。對於這三個指標,我們使用了Daala程式碼庫 [5] 中的實現,因此後續圖中的標題以“Daala”為字首。
注意:具有相同顏色的點對應於源自相同參考視訊的失真視訊。由於主題可變性和參考視訊歸一化到 100,一些 DMOS 分數可能超過 100。
從圖中可以看出,這些指標未能提供一致地預測觀察者 DMOS 評級的分數。例如,關注左上角的 PSNR 圖,對於 35 dB 左右的 PSNR 值,“真實”DMOS 值的範圍從 10(損傷很煩人)到 100(損傷難以察覺)。對於 SSIM 和多尺度 FastSSIM 指標可以得出類似的結論,其中接近 0.90 的分數可以對應於 10 到 100 的 DMOS 值。在每個圖上方,我們報告了 Spearman 等級相關係數(SRCC),即Pearson 積矩相關性係數(PCC) 和每個指標的均方根誤差 (RMSE) 數字,在非線性邏輯擬合後計算,如 ITU-R BT.500-13 [2] 的附件 3.1 中所述。SRCC 和 PCC 值接近 1.0 和 RMSE 值接近於 0 是可取的。在四個指標中,PSNR-HVS 展示了最好的 SRCC、PCC 和 RMSE 值,但仍然缺乏預測準確性。
為了在各種內容上實現有意義的效能,度量應該表現出良好的相對質量分數,即度量中的增量應該提供關於感知質量增量的資訊。在下圖中,我們選擇了三個典型的參考視訊,一個高噪視訊(藍色)、一個 CG 動畫(綠色)和一個電視劇(生鏽),並繪製了不同失真視訊的預測分數與 DMOS 的關係。每個。為了有效地作為相對質量得分,在質量曲線的相同範圍內的不同剪輯之間的恆定斜率是可取的。例如,參考下面的 PSNR 圖,在 34 dB 到 36 dB 的範圍內,電視劇的 PSNR 變化約 2 dB 對應於 DMOS 變化約 50(50 到 100),但 CG 動畫在相同範圍內類似的 2 dB 變化對應於小於 20(40 到 60)的變化DMOS。雖然 SSIM 和 FastSSIM 對於 CG 動畫和電視劇片段表現出更一致的斜率,但它們的效能仍然不足。
總之,我們看到傳統指標不適用於我們的內容。為了解決這個問題,我們採用了基於機器學習的模型來設計一個旨在反映人類對視訊質量感知的指標。該指標將在下一節中討論。
我們的方法:視訊多方法評估融合 (VMAF)
基於我們與南加州大學 C.-CJ Kuo 教授及其團隊的研究合作 6,我們開發了Video Multimethod Assessment Fusion 或 VMAF,通過組合多個基本質量指標來預測主觀質量。基本原理是,每個基本度量在源內容特徵、偽像型別和失真程度方面都可能有自己的優勢和劣勢。通過使用機器學習演算法(在我們的例子中是支援向量機 (SVM) 迴歸器)將基本指標“融合”到最終指標中,該演算法為每個基本指標分配權重,最終指標可以保留各個指標的所有優勢,並提供更準確的最終分數。機器學習模型使用通過主觀實驗(在我們的例子中為 NFLX 視訊資料集)獲得的意見分數進行訓練和測試。
作為 VMAF 開發工具包開源軟體的一部分發布的 VMAF 演算法和模型的當前版本(表示為 VMAF 0.3.1)使用以下由支援向量機 (SVM) 迴歸 [8] 融合的基本指標:
視覺資訊保真度 (VIF) [9]。VIF 是一種被廣泛採用的影像質量度量,其前提是質量與資訊保真度損失的度量相輔相成。在其原始形式中,VIF 分數被測量為結合四個量表的保真度損失。在 VMAF 中,我們採用了 VIF 的修改版本,其中每個尺度中的保真度損失作為基本指標包括在內。
細節損失指標(DLM) [10]。DLM 是一種影像質量度量,其基本原理是分別測量影響內容可見性的細節損失和分散觀眾注意力的冗餘損傷。原始指標結合了 DLM 和附加損傷測量 (AIM) 以產生最終分數。在 VMAF 中,我們只採用 DLM 作為基本指標。特別注意特殊情況,例如黑框,其中原始公式的數值計算失敗。
VIF 和 DLM 都是影像質量指標。我們進一步引入以下簡單特徵來解釋視訊的時間特徵:
運動。這是對相鄰幀之間時間差異的簡單測量。這是通過計算亮度分量的平均絕對畫素差來實現的。
這些基本指標和特徵是通過測試和驗證的迭代從其他候選者中選擇出來的。
我們將 VMAF 的準確性與上述其他質量指標進行比較。為了避免不公平地將 VMAF 過度擬合到資料集,我們首先將 NFLX 資料集分為兩個子集,稱為 NFLX-TRAIN 和 NFLX-TEST。這兩組具有不重疊的參考剪輯。然後使用 NFLX-TRAIN 資料集訓練 SVM 迴歸器,並在 NFLX-TEST 上進行測試。
下圖顯示了 VMAF 指標在 NFLX-TEST 資料集和選定參考剪輯上的效能——高噪聲視訊(藍色)、CG 動畫(綠色)和電視劇(生鏽)。為了便於比較,我們重複了 PSNR-HVS 的圖,這是前面部分中表現最好的指標。很明顯,VMAF 的效能要好得多。
我們還將 VMAF與具有可變幀延遲(VQM-VFD) [11] 的視訊質量模型進行了比較,該模型被許多人認為是該領域的最新技術。VQM-VFD 是一種使用神經網路模型將低階特徵融合成最終度量的演算法。它在精神上類似於 VMAF,只是它在較低階別提取特徵,例如空間和時間梯度。
很明顯,VQM-VFD 在 NFLX-TEST 資料集上的效能接近 VMAF。由於 VMAF 方法允許將新的基本指標納入其框架,VQM-VFD 也可以作為 VMAF 的基本指標。
下表列出了融合 NFLX-TEST 資料集上各個基本指標的不同組合後,VMAF 模型的 SRCC、PCC 和 RMSE 資料測量的效能,以及 VMAF 0.3.1 的最終效能。我們還列出了使用 VQM-VFD 增強的 VMAF 的效能。結果證明了我們的假設,即高效能質量指標的智慧融合會導致與人類感知的相關性增加。
NFLX-TEST 資料集
結果總結
在下表中,我們總結了前面討論過的不同指標的 SRCC、PCC 和 RMSE,在 NLFX-TEST 資料集和三個流行的公共資料集上:VQEG HD(僅限 vqeghd3 集合)[12]、實時視訊資料庫 [13]和實時移動視訊資料庫 [14]。結果表明,VMAF 0.3.1 在除 LIVE 資料集之外的所有指標中都優於其他指標,與效能最佳的 VQM-VFD 相比,它仍然提供具有競爭力的效能。由於 VQM-VFD 在四個資料集之間表現出良好的相關性,因此我們正在嘗試將 VQM-VFD 作為 VMAF 的基本指標;雖然它不是開源版本 VMAF 0.3.1 的一部分,但它可能會整合到後續版本中。
NFLX-TEST 資料集
實時資料集*
*僅用於壓縮損傷(H.264/AVC 和 MPEG-2 視訊)
VQEGHD3 資料集*
*對於源內容 SRC01 至 SRC09 和流相關損傷 HRC04、HRC07 和 HRC16 至 HRC21
實時移動資料集
VMAF 開發套件 (VDK) 開源包
為了通過 Internet 提供高質量的視訊,我們認為該行業需要良好的感知視訊質量指標,這些指標既實用又易於大規模部署。我們開發了 VMAF 來幫助我們滿足這一需求。今天,我們在 Apache 許可證版本 2.0 下在 Github 上開源 VMAF 開發工具包(VDK 1.0.0)包。通過開源 VDK,我們希望它可以隨著時間的推移而發展,從而提高效能。
VDK 核心中的特徵提取(包括基本度量計算)部分是計算密集型的,因此為了提高效率,它是用 C 編寫的。控制程式碼是用 Python 編寫的,用於快速原型設計。
該軟體包帶有一個簡單的命令列介面,允許使用者以單一模式(run_vmaf 命令)或批處理模式(run_vmaf_in_batch 命令,可選擇啟用並行執行)執行 VMAF。此外,由於特徵提取是最昂貴的操作,使用者還可以將特徵提取結果儲存在資料儲存中以供以後重複使用。
該軟體包還提供了一個框架,用於進一步定製基於以下內容的 VMAF 模型:
- 訓練它的視訊資料集
- 要使用的基本指標和其他功能
- 迴歸器及其超引數
該命令run_training接受三個配置檔案:一個資料集檔案,其中包含有關訓練資料集的資訊、一個特徵引數檔案和一個迴歸器模型引數檔案(包含迴歸器超引數)。下面是定義資料集、一組選定特徵、迴歸量及其超引數的示例程式碼。
##### 定義資料集#####
dataset_name = 'example'
yuv_fmt = 'yuv420p'
width = 1920
height = 1080
ref_videos = [
{'content_id':0, 'path':'checkerboard.yuv'},
{'content_id':1, 'path':'flat.yuv'},
]
dis_videos = [
{'content_id':0, 'asset_id': 0, 'dmos':100, 'path':'checkerboard.yuv' }, # ref
{'content_id':0, 'asset_id': 1, 'dmos':50, 'path':'checkerboard_dis.yuv'},
{'content_id':1, 'asset_id': 2, 'dmos' :100, 'path':'flat.yuv'}, # ref
{'content_id':1, 'asset_id': 3, 'dmos':80, 'path':'flat_dis.yuv'},
]
##### 定義特徵 #####
feature_dict = {
# VMAF_feature/Moment_feature 是聚合特徵
#motion, adm2, dis1st 是原子特徵
'VMAF_feature':['motion', 'adm2'],
'Moment_feature' :['dis1st'], # dis video 的第一時刻
}
##### 定義迴歸器和超引數 #####
model_type = “LIBSVMNUSVR” # libsvm NuSVR 迴歸器
model_param_dict = {
# ==== 預處理:標準化每個特徵 ==== #
'norm_type':'clip_0to1' , # rescale to within [0, 1]
# ==== postprocess: clip final quality score ==== #
'score_clip':[0.0, 100.0], # clip to within [0, 100]
# ==== libsvmnusvr 引數 ==== #
'gamma':0.85, # selected
'C':1.0, # default
'nu':0.5, # default
'cache_size':200 # default
}
最後,FeatureExtractor可以擴充套件基類以開發定製的 VMAF 演算法。這可以通過嘗試其他可用的基本指標和功能或發明新的來實現。同樣,TrainTestModel可以擴充套件基類以測試其他迴歸模型。詳情請參閱 CONTRIBUTING.md。使用者還可以使用現有的開源 Python 庫(例如 scikit-learn [15]、cvxopt [16] 或 tensorflow [17])嘗試替代機器學習演算法。scikit-learn 的隨機森林迴歸器的示例整合包含在包中。
VDK 包包括 VMAF 0.3.1 演算法,具有選定的特徵和基於 NFLX 視訊資料集上收集的主觀分數的訓練有素的 SVM 模型。我們還邀請社群使用該軟體包來開發改進的功能和迴歸器,以用於感知視訊質量評估。我們鼓勵使用者在其他資料集上測試 VMAF 0.3.1,併為我們的用例幫助改進它,並可能將其擴充套件到其他用例。
我們關於質量評估的開放式問題
檢視條件。Netflix 支援數以千計的有源裝置,包括智慧電視、遊戲機、機頂盒、計算機、平板電腦和智慧手機,從而為我們的會員帶來了廣泛不同的觀看條件。觀看設定和顯示會顯著影響質量感知。例如,如果 Netflix 會員在 4K 60 英寸電視上觀看以 1 Mbps 編碼的 720p 電影,則如果在 5 英寸智慧手機上觀看同一流的質量,可能會有非常不同的看法。當前的 NFLX 視訊資料集涵蓋了單一的觀看條件——在標準距離觀看電視。為了增強 VMAF,我們正在其他觀看條件下進行主觀測試。有了更多的資料,我們可以推廣演算法,以便可以將檢視條件(顯示尺寸、與螢幕的距離等)輸入到迴歸器中。
時間池。我們當前的 VMAF 實現基於每幀計算質量分數。在許多用例中,需要臨時池化這些分數在較長時間內返回單個值作為摘要。例如,一個場景的得分、常規時間段的得分或整部電影的得分是合乎需要的。我們目前的方法是一個簡單的時間池化,它採用每幀值的算術平均值。但是,這種方法存在“隱藏”質量差的幀的風險。對較低分數給予更多權重的池化演算法可能對人類感知更準確。當使用匯總分數來比較幀之間不同質量波動的編碼時,或者在優化編碼或流會話時作為目標指標時,良好的池化機制尤其重要。VMAF 和其他質量指標的感知準確時間池機制仍然是一個開放且具有挑戰性的問題。
一致的指標。由於 VMAF 包含完整的參考基本指標,因此 VMAF 高度依賴於參考的質量。遺憾的是,Netflix 目錄中所有影片的視訊源質量可能不一致。源以從 SD 到 4K 的解析度進入我們的系統。即使在相同的解析度下,可用的最佳源也可能會受到某些視訊質量的影響。因此,比較(或總結)不同標題的 VMAF 分數可能不準確。例如,當從 SD 源生成的視訊流的 VMAF 得分達到 99(滿分 100)時,它絕不具有與從 HD 源編碼的具有相同得分 99 的視訊相同的感知質量。對於質量監測,我們非常希望我們可以計算出跨來源一致的絕對質量分數。畢竟,當觀眾觀看 Netflix 節目時,除了傳送到他們螢幕上的圖片之外,他們沒有任何參考。我們希望有一種自動化的方式來預測他們對交付給他們的視訊質量的看法,同時考慮到促成該螢幕上最終呈現的視訊的所有因素。
概括
我們開發了 VMAF 0.3.1 和 VDK 1.0.0 軟體包,以幫助我們向會員提供最優質的視訊流。作為我們持續追求質量的一部分,我們的團隊每天都使用它來評估視訊編解碼器和編碼引數和策略。VMAF 與其他指標已整合到我們的編碼管道中,以改進我們的自動化 QC。我們處於使用 VMAF 作為客戶端指標之一來監控系統範圍的 A/B 測試的早期階段。
在當今的網際網路環境中,提高視訊壓縮標準並在實際編碼系統中做出明智的決策非常重要。我們認為,使用並不總是與人類感知相關的傳統指標會阻礙視訊編碼技術的真正進步。然而,總是依賴手動視覺測試是不可行的。VMAF 是我們解決這個問題的嘗試,使用我們內容中的樣本來幫助設計和驗證演算法。與業界合作開發新視訊標準的方式類似,我們邀請社群公開合作改進視訊質量措施,最終目標是更有效地使用頻寬併為所有人提供視覺上令人愉悅的視訊。
致謝
我們要感謝以下個人對 VMAF 專案的幫助:Joe Yuchieh Lin、Eddy Chi-Hao Wu、C.-C Jay Kuo 教授(南加州大學)、Patrick Le Callet 教授(南特大學)和託德·古道爾。
參考
- Z. Wang, A. C. Bovik, H. R. Sheikh, and E. P. Simoncelli, “Image Quality Assessment: From Error Visibility to Structural Similarity,” IEEE Transactions on Image Processing, vol. 13, no. 4, pp. 600–612, Apr. 2004.
- BT.500 : Methodology for the Subjective Assessment of the Quality of Television Pictures, https://www.itu.int/rec/R-REC...
- M.-J. Chen and A. C. Bovik, “Fast Structural Similarity Index Algorithm,” Journal of Real-Time Image Processing, vol. 6, no. 4, pp. 281–287, Dec. 2011.
- N. Ponomarenko, F. Silvestri, K. Egiazarian, M. Carli, J. Astola, and V. Lukin, “On Between-coefficient Contrast Masking of DCT Basis Functions,” in Proceedings of the 3 rd International Workshop on Video Processing and Quality Metrics for Consumer Electronics (VPQM ’07), Scottsdale, Arizona, Jan. 2007.
- Daala codec. https://git.xiph.org/daala.git/
- T.-J. Liu, J. Y. Lin, W. Lin, and C.-C. J. Kuo, “Visual Quality Assessment: Recent Developments, Coding Applications and Future Trends,” APSIPA Transactions on Signal and Information Processing, 2013.
- J. Y. Lin, T.-J. Liu, E. C.-H. Wu, and C.-C. J. Kuo, “A Fusion-based Video Quality Assessment (FVQA) Index,” APSIPA Transactions on Signal and Information Processing, 2014.
- C.Cortes and V.Vapnik, “Support-Vector Networks,” Machine Learning, vol. 20, no. 3, pp. 273–297, 1995.
- H. Sheikh and A. Bovik, “Image Information and Visual Quality,” IEEE Transactions on Image Processing, vol. 15, no. 2, pp. 430–444, Feb. 2006.
- S. Li, F. Zhang, L. Ma, and K. Ngan, “Image Quality Assessment by Separately Evaluating Detail Losses and Additive Impairments,” IEEE Transactions on Multimedia, vol. 13, no. 5, pp. 935–949, Oct. 2011.
- S. Wolf and M. H. Pinson, “Video Quality Model for Variable Frame Delay (VQM_VFD),” U.S. Dept. Commer., Nat. Telecommun. Inf. Admin., Boulder, CO, USA, Tech. Memo TM-11–482, Sep. 2011.
- Video Quality Experts Group (VQEG), “Report on the Validation of Video Quality Models for High Definition Video Content,” June 2010, http://www.vqeg.org/
- K. Seshadrinathan, R. Soundararajan, A. C. Bovik and L. K. Cormack, “Study of Subjective and Objective Quality Assessment of Video”, IEEE Transactions on Image Processing, vol.19, no.6, pp.1427–1441, June 2010.
- A. K. Moorthy, L. K. Choi, A. C. Bovik and G. de Veciana, “Video Quality Assessment on Mobile Devices: Subjective, Behavioral, and Objective Studies,” IEEE Journal of Selected Topics in Signal Processing, vol. 6, no. 6, pp. 652–671, Oct. 2012.
- scikit-learn: Machine Learning in Python. http://scikit-learn.org/stable/
- CVXOPT: Python Software for Convex Optimization. http://cvxopt.org/
- TensorFlow. https://www.tensorflow.org/