亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Vapoursynth和ffmpeg的視頻編輯

        2022-07-23 06:36:12北方工業(yè)大學(xué)信息學(xué)院余海鑫李文邦
        電子世界 2022年1期

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

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

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

        1 系統(tǒng)設(shè)計(jì)

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

        圖1 系統(tǒng)框圖

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

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

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

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

        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)境。

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

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

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

        2.2 視頻處理

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

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

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

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

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

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

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

        其中第一個(gè)參數(shù)為所要進(jìn)行降噪的視頻,第二參數(shù)為降噪模式,有1~24共24個(gè)模式,不同模式的降噪方式不同,本文采用的使降噪模式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()#輸出視頻進(jìn)行預(yù)覽

        2.2.2 去色帶處理

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

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

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

        2.3 視頻編碼

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

        圖2 視頻編碼流程圖

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

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

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

        圖3 原圖像

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

        圖4 加噪后的圖像

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

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

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

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

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

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

        圖7 具有色帶的原圖像

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

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

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

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

        圖11 原視頻幀圖像

        圖12 H264編碼后視頻幀圖像

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

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

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

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

        猫咪www免费人成网最新网站| 国产精品国产高清国产专区| 91青青草手机在线视频| 中文字幕精品一区二区三区| 奇米影视第四色首页| 99久久精品国产一区二区蜜芽| 亚洲无码毛片免费视频在线观看| 日韩一区三区av在线| 国产激情视频在线观看大全| 精品国产青草久久久久福利| 国产性猛交╳xxx乱大交| 欧美日韩国产乱了伦| 水蜜桃网站视频在线观看| 亚洲熟妇色自偷自拍另类| 亚洲av无码久久寂寞少妇| 国产人成无码视频在线1000| 国产成人av区一区二区三| 国产乱码精品一区二区三区久久| 色欲综合一区二区三区| 精品一区二区三区在线观看| 少妇高潮惨叫久久久久电影| 国内精品国产三级国产| 欧美精品亚洲精品日韩专区 | 国产成人精品免费视频大全| 色男色女午夜福利影院| 精品乱人伦一区二区三区| 人妻无码人妻有码中文字幕| 国产三级国产精品三级在专区| 亚洲男人在线天堂av| 精品人妻伦一二三区久久| 纯爱无遮挡h肉动漫在线播放| 亚洲是图一区二区视频| 一区二区亚洲精品国产精| 国产国产人免费人成免费视频| 亚洲永久无码动态图| 国产美女高潮流的白浆久久| 插插射啊爱视频日a级| 中出内射颜射骚妇| 亚洲黄片久久| 国产成人高清在线观看视频 | 老太脱裤让老头玩ⅹxxxx|