技術宅


經常在愛奇藝、優酷看視頻的朋友都知道,如果你的網速較快,可以在播放界面點擊畫質切換,將視頻畫質切換到“高清540P”、“720P”、“1080P”等(圖2)。
這些畫質實際就是分辨率的簡稱,比如540P是960×540,在720P是1280×720,分辨率越高,視頻畫面就由越多的點組成,展示的畫面細節就越豐富(圖3)。
另外一個影響視頻流暢度的參數為幀速率,視頻的幀速率越高,畫面就顯得越流暢,特別是運動物體,就越不容易出現拖影。

在網友展示的“翻拍”老電影中,主要就是利用神經網絡對原視頻的分辨率和幀速率進行了提升。
首先是分辨率的增強,在傳統的操作中如果我們需要將低分辨率圖像或者視頻擴展為高分辨率,使用的是插值算法。它的原理是基于目標分辨率中的點,將其按照縮放關系對應到原圖像中,同時在圖像邊緣的模糊和鋸齒間獲得平衡。不過傳統算法放大的圖像(視頻)很容易出現模糊和鋸齒(圖4)。
現在結合神經網絡技術的插值算法則可以有效地避免這種現象的出現,比如https://bigjpg.com/提供的放大圖片技術(借助的正是神經網絡技術)。它先制作一個機器訓練模型,然后使用大量低分辨率的圖像作為輸入源并得到對應的高分辨率結果圖像。接著通過神經網絡,針對放大圖片的線條、顏色、網點等特點,對放大算法不斷調整和優化,最后生成一套最優的算法。這個算法可以保證放大后的圖像色彩保留較好, 圖片邊緣也不會有模糊和鋸齒,從而實現將低分辨率圖片“無損”放大為高分辨率清晰圖片(圖5)。這次網友在視頻“翻新”操作中使用的則是源于Gigapixel AI的技術,它使用的技術類似ht t p s: //bigjpg.com/,只不過它可以對視頻每一幀的圖像都進行無損放大,在大幅提高電影分辨率的同時畫面又不會產生明顯的模糊和鋸齒(圖6)。
其次則是結合神經網絡的插幀技術。它也是先構建了一個可以感知視頻運動加速度的網絡模型,該模型會先通過大量的數據訓練來感知物體運動軌跡,并在其中加入中間幀,從而提升幀速率讓視頻播放變得更為流暢。以拋橄欖球的運動視頻為例,它的運動軌跡是一條拋物線,如果拍攝時視頻的幀速率較低,那么在播放時是看不到球體運動的拋物線。現在結合神經網絡就可以先計算出拋橄欖球運動的實際路徑,然后在原視幀拋物線路徑中間添加新幀,這樣增加幀數后視頻播放會更流暢,而且畫面不會有任何違和感(圖7)。
這次網友通過神經網絡計算出原來電影中火車的運動軌跡,然后通過插幀技術將原來老電影的幀速率從20FPS提高了60FPS,再結合上述分辨率的提升,實現老電影變身。其畫面流暢度和清晰度幾乎可以與現在主流智能手機拍攝的視頻相媲美,比如現在iPhone 11最高也只支持拍攝4K/60FPS的視頻。


如上所述,借助神經網絡我們可以對圖片和視頻進行分辨率和幀速率的提升。這些技術可以用在生活中的很多方面,比如我們可以使用它來提升老照片的清晰度,比如將抽屜里那些原來用傻瓜機拍攝的照片、保存時間比較久遠的黑白模糊照片等,都可以掃描到電腦中,處理成為更加清晰的數碼記憶。

當然我們也可以用神經網絡來處理視頻,比如華為Mate 30 Pro就可以將960FPS的視頻插幀生成7680FPS的慢動作視頻,在官方展示的視頻中完美地演示一滴水從高處落到杯中并濺出水花的整個過程(圖8)。它借助的正是手機內置的神經網絡技術。