• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于Vapoursynth和ffmpeg的視頻編輯

      2022-07-23 06:36:12北方工業(yè)大學信息學院余海鑫李文邦
      電子世界 2022年1期
      關鍵詞:色帶色度亮度

      北方工業(yè)大學信息學院 余海鑫 丁 航 李文邦

      目前大部分的視頻處理大多都是采用Avisynth這一視頻文件后期處理工具,但是從最近幾年來看,這款工具由于其代碼不規(guī)范,更新緩慢,版本更替出現(xiàn)各種各樣的問題而飽受非議。現(xiàn)如今出現(xiàn)一種新興的視頻處理工具vapoursynth,由于其必須基于python的環(huán)境下,因此其代碼與python語言有著相同的規(guī)范。文章通過對vapoursynth進行了研究,采用該工具來設計實現(xiàn)了對視頻進行降噪與去色帶處理,在視頻編碼方面采用visualstudio調(diào)用ffmpeg包中的編碼器來對視頻進行編碼。最終處理結(jié)果符合預期效果。

      隨著通信技術的不斷發(fā)展,使視頻的傳播變得更為迅捷,高效。那么視頻的傳輸與處理就相當?shù)年P鍵。視頻處理部分目前普遍使用Avisynth,其優(yōu)點有很多,其內(nèi)置濾鏡支持在YUV格式下進行處理,省去了將YUV文件轉(zhuǎn)到RGB文件這一過程,同時Avisynth內(nèi)建大量視頻處理濾鏡,也支持第三方強力濾鏡等等。但該產(chǎn)品已經(jīng)停滯發(fā)展了,其所使用的腳本語言是自定義的,需要重新學習。而新興的產(chǎn)品vaporsynth是基于python環(huán)境下的,其腳本語言也采用python語言,簡單方便。大部分Avisynth中的濾鏡都可以移植到vaporsynth中,因此使得其功能也會相當強大。視頻傳輸核心部分是視頻壓縮,而視頻編碼就是將原有視頻的圖像進行壓縮處理,去除掉冗余數(shù)據(jù),以此達到視頻壓縮的目的。有高編碼效率的視頻可以有更高的通信效率,在傳輸?shù)倪^程中也有更低的噪聲,目前最廣泛流行的視頻編碼格式當屬H.264。傳統(tǒng)視頻編碼采用基于塊劃分的混合編碼框架,包括幀內(nèi)預測、幀間預測、變換、量化、熵編碼和環(huán)路濾波等技術模塊。本文設計實現(xiàn)了基于Vapoursynth和ffmpeg的視頻編輯系統(tǒng),闡述了基于ffmpeg的h.264編碼的過程以及基于vapoursynth的降噪與去色帶的原理以及結(jié)果分析。

      1 系統(tǒng)設計

      該系統(tǒng)包括視頻處理和視頻編碼兩個模塊,視頻處理模塊包含降噪處理與去色帶處理,整個系統(tǒng)的框圖如圖1所示。

      圖1 系統(tǒng)框圖

      先將視頻用vapoursynth進行降噪或者是去色帶等一系列非線性編輯處理(若視頻質(zhì)量符合條件可以不進行處理)。然后對視頻進行編碼,使用visual studio調(diào)用ffmpeg包中的編碼器對視頻編碼。

      2 系統(tǒng)實現(xiàn)

      2.1 開發(fā)工具及環(huán)境配置

      實現(xiàn)降噪和去色帶模塊的開發(fā)工具是vapoursynth,它是可以支持開發(fā)Python腳本來進行非線性的處理的一種frameserver庫,與停滯發(fā)展的Avisynth相比,vapoursynth有支持多線程的處理工作、多種視頻編碼格式等優(yōu)點。

      vapoursynth下載地址為:https://github.com/vapoursynth/vapoursynth/releases

      Python:下載地址為:https://www.python.org/downloads/release/python-370a4/

      安裝完成python和vapoursynth及vapoursyntheditor后可在python編輯器中輸入以下代碼查看是否安裝成功:from vapoursynth import core

      print(core.version())

      若能輸出vapoursynth的版本信息代表安裝成功,且成功識別出已安裝的python環(huán)境。

      實現(xiàn)視頻編碼模塊的開發(fā)工具是ffmpeg,它是一套開源多功能媒體編輯計算機程序。本文主要利用其中的libavcodec音視頻編解碼庫進行操作。安裝完成后在visual studio中新建工程并完成與ffmpeg的聯(lián)合調(diào)試即可。

      ffmpeg下載地址為http://ffmpeg.org/

      visual studio:下載地址為https://visualstudio.microsoft.com/zhhans/downloads

      2.2 視頻處理

      要進行視頻處理,必須要調(diào)用所需的函數(shù),因此首先引入函數(shù)庫,調(diào)用函數(shù)讀入視頻,接著對視頻進行一系列的處理,所需的函數(shù)必須在函數(shù)庫中存在,將處理結(jié)束的視頻輸出。

      本文的視頻處理方式共有兩種,分別是降噪處理和去色帶處理。2.2.1 降噪處理

      首先通過MATLAB對原視頻圖像進行加噪,MATLAB的的加噪函數(shù)為:

      imnoise(img1,?salt & pepper?,0.2);

      該函數(shù)的第一個參數(shù)img1是需要進行處理的圖像,第二個參數(shù)是所加噪聲類型,本文使用的類型為椒鹽噪聲,還可以使用的噪聲有高斯噪聲,乘性噪聲等等,第三個參數(shù)是噪聲密度,噪聲密度越大,噪聲點越明顯,本文采用0.2使噪聲更為明顯。

      通過調(diào)用vapoursynth插件中的降噪模塊實現(xiàn)對視頻的降噪處理,其原理為對原像素亮度值一致的像素亮度取算術平均值,以抑制噪聲方差。降噪函數(shù)為:

      core.rgvs.RemoveGrain(clip,mode=4)

      其中第一個參數(shù)為所要進行降噪的視頻,第二參數(shù)為降噪模式,有1~24共24個模式,不同模式的降噪方式不同,本文采用的使降噪模式4,其vapoursynth源代碼為:

      import vapoursynth as vs

      from vapoursynth import core#引入函數(shù)庫

      file_path=?test.mp4?#文件的路徑,此為相對路徑

      clip = core.lsmas.LWLibavSource(file_path,threads=1)#threads為線程數(shù)

      clip = core.rgvs.RemoveGrain(clip, mode=4)#降噪函數(shù)

      clip.set_output()#輸出視頻進行預覽

      2.2.2 去色帶處理

      色帶是由于色彩精確度不夠?qū)е碌?,這里我們采用的方法是將構成色帶的像素替換為臨近像素直接的中間值,并施加抖動加噪以淡化色帶。其中抖動算法通過對周圍相鄰像素使用非均勻分布的量化誤差以達成抖動目的。去色帶函數(shù)為:

      core.f3kdb.Deband(clip,range=31,y=511,cb=511,cr=511,grainy=0,grainc=0)

      其中參數(shù)clip為要進行處理的視頻文件名,參數(shù)range為色帶檢測范圍,可以設0~31之間的數(shù),參數(shù)y,cb,cr分別為亮度平面,藍色色度平面和紅色色度平面的色帶檢測閾值,可以為0~511,grainy和grainc為亮度和色度平面的抖動值,可以為0`64。

      2.3 視頻編碼

      利用基于ffmpeg的視頻編碼器,可以將yuv視頻編碼成h.264壓縮編碼數(shù)據(jù)。流程圖如圖2所示。在開始之前,先將視頻轉(zhuǎn)換為yuv格式的視頻文件。然后初始化各結(jié)構體。將視頻的每一幀送入編碼器編碼。將編碼完成的數(shù)據(jù)流寫入文件。

      圖2 視頻編碼流程圖

      3 系統(tǒng)測試與結(jié)果

      3.1 降噪處理結(jié)果分析

      為了方便對比結(jié)果,原視頻圖像應清晰明亮,輪廓明顯,細節(jié)清楚可觀察。原視頻中的一幀圖像如圖3所示。

      圖3 原圖像

      可以使用MATLAB對其進行增加噪聲點,可以增加高斯噪聲,椒鹽噪聲,乘性噪聲等,如圖4所示加入了噪聲密度為0.1的椒鹽噪聲,可以看到有些輪廓已經(jīng)有些模糊了,有許多零零散散的噪聲點分布在圖像中。

      圖4 加噪后的圖像

      使用vapoursynth處理該圖片后,采用降噪模式4的圖像如圖5所示,用第8個相鄰像素的第四個最小值和第四個最大值來對該像素進行編輯,與圖4相比可以明顯感覺到大部分的噪聲點已經(jīng)被去除掉,但是與圖4相比還是能感覺到還殘有部分的噪聲點沒有去除,但總體效果上來看還是能達到目標的。

      圖5 經(jīng)過模式4降噪后的圖像

      采用降噪模式2的圖像如圖6所示,使用第8個相鄰像素的第二個最小值和第二個最大值來對該像素進行編輯,與圖3相比還殘余有大量的噪聲點,去除的效果比較差,因此采用模式4進行降噪效果更好。

      圖6 經(jīng)過模式2降噪后的圖像

      3.2 去色帶處理結(jié)果分析

      可以看出如圖7所示的圖像中各個顏色之間出現(xiàn)了塊狀的明顯色帶,接下來用vapoursynth對該圖進行去色帶處理。

      圖7 具有色帶的原圖像

      如圖8所示,設置色帶檢測范圍range為31,亮度平面y、藍色色度平面cb和紅色色度平面cr都設置為511,grainy和grainc代表亮度和色度平面的抖動值,設置為0即可,經(jīng)過去色帶以后的圖像大部分的色帶消失,圖像顏色之間過渡平滑。經(jīng)過去色帶處理后的圖像可以盡可能減小因壓縮而產(chǎn)生的影響。如圖9所示,將色帶檢測范圍設置為3,其他不變,處理后的圖像色帶未完全去除,依然存在較為明顯的色帶。如圖10所示,將亮度平面色帶檢測閾值設置為200,處理后的圖像也依然剩余部分色帶未清除。因此,各個參數(shù)對色帶的去除都有影響,色帶檢測范圍range越大,其去除效果越好,亮度平面與色度平面檢測閾值越大,去除效果也越好。

      圖8 經(jīng)過去色帶后的圖像

      圖9 色帶檢測范圍為3的圖像

      圖10 亮度平面色帶檢測閾值為200的圖像

      圖11 原視頻幀圖像

      圖12 H264編碼后視頻幀圖像

      3.3 視頻編碼的結(jié)果分析

      視頻編碼之前應該先播放該視頻查看視頻的清晰度是否方便對比,若是符合才可進行編碼操作,若是不符合,則應另外選則合適的視頻進行編碼。如圖11所示為原視頻中的一幀圖像。視頻清晰度符合要求,可進行下一步編碼。

      經(jīng)過H264編碼后的一幀圖像如圖12所示,對比編碼后的視頻與原視頻,可以看到幾乎是等同的,因此視頻編碼成功。

      本文基于vapoursynth庫與H.264框架。使用降噪模塊抑制噪聲方差,將壓縮過程中產(chǎn)生的噪聲點去除。通過將構成色帶的像素替換為臨近像素的中間值,去除不同顏色間的色帶,使顏色之間過渡平滑。能夠有效解決視頻編碼中出現(xiàn)的圖像失真嚴重問題,且此視頻編碼方法具有代碼簡單易懂、容易操作的特點,可以盡可能減小失真,在視頻編碼和噪聲修復等實際應用中有較強的實用價值。本文所使用的兩種編輯方式其難點在于需要多種軟件相互協(xié)調(diào),共同處理視頻文件,對環(huán)境的配置要求較高。

      猜你喜歡
      色帶色度亮度
      亮度調(diào)色多面手
      亮度一樣嗎?
      基于改進色度模型的非接觸式心率檢測與估計
      我司新研發(fā)的色帶涂布機產(chǎn)業(yè)化前景分析
      科技尚品(2016年7期)2016-05-30 10:48:04
      基于斬波調(diào)制的LED亮度控制
      景德鎮(zhèn)早期青白瓷的器型與色度
      人生的亮度
      如何提高蘋果的著色度
      偉迪捷為熱轉(zhuǎn)印打碼機發(fā)布全新的卓越型色帶
      芻議地圖制圖中界線套繪色帶原則
      仁寿县| 古蔺县| 惠来县| 益阳市| 正安县| 淮安市| 交口县| 沧源| 吉安县| 桐庐县| 宜宾县| 贺兰县| 阳信县| 湘乡市| 辽中县| 重庆市| 金山区| 遂昌县| 长顺县| 苍溪县| 呼伦贝尔市| 仁布县| 桂林市| 宜兰县| 彭泽县| 河源市| 常山县| 城固县| 湘潭市| 靖西县| 棋牌| 诏安县| 绥江县| 德阳市| 连南| 绥芬河市| 峨眉山市| 武邑县| 四子王旗| 北流市| 舟山市|