2015-12-15 28 views
2

我試圖測試一些不同的視頻編解碼器丟失的信息量。我有一個使用PyPNG編寫一系列8位RGB圖像的python腳本。然後,我就用avconv編碼,例如圖像 - >視頻 - >圖像無損使用avconv

avconv -r 1 -i ../frames/data%03d.png -c:v ffv1 -qscale:v 0 -r 1 

outffv1.avi

我然後解碼該回png格式,像這樣

avconv -r 1 -i outffv1.avi -r 1 ./outffv1/frame%03d.png 

但當我之前和之後的視頻圖像比較壓縮,它們是不同的(平均絕對誤差爲〜15%)。讓我感到困惑的是,這是真的(給予或帶走)獨立於編解碼器

例如,對於一系列qscale值,我得到了libtheora的類似答案。

png編碼,即寫入png,並立即重新加載而無需視頻壓縮步驟,是無損的。

UPDATE - 更精確的工作例如:

單輸入幀這裏:https://www.dropbox.com/s/2utk1xs2t8heai9/data001.png?dl=0 編碼爲視頻像這樣:avconv -r 1 -i ./frames/data%03d.png -c:v ffv1 -qscale:v 0 -r 1 outffv1.avi 結果視頻這裏:https://www.dropbox.com/s/g1babae2a41v914/outffv1.avi?dl=0 解碼爲PNG再次這裏:使用該命令https://www.dropbox.com/s/8i8zg1qn7dxsgat/out001.png?dl=0avconv -r 1 -i outffv1.avi -qscale:v 31 -r 1 out%03d.png 和image magick差不多這樣 compare out001.png ./frames/data001.png diff.png 給這個(非零)diff https://www.dropbox.com/s/vpouk54p0dieqif/diff.png?dl=0

+0

你的問題不是很清楚。你的意思是說你沒有想到png編碼是無損的? PNG支持無損編碼 – ARK

+0

我期望/希望從視頻到png的avconv編碼無損。你知不知道,或者如何做到這一點? – nrob

+0

@nrob你能分享一個樣本png嗎?你如何比較? – aergistal

回答

2

您的視頻文件很可能使用YUV顏色格式。 PNG使用RGB。顏色的轉換不是一個無損的過程。