我試圖測試一些不同的視頻編解碼器丟失的信息量。我有一個使用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=0 :avconv -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
你的問題不是很清楚。你的意思是說你沒有想到png編碼是無損的? PNG支持無損編碼 – ARK
我期望/希望從視頻到png的avconv編碼無損。你知不知道,或者如何做到這一點? – nrob
@nrob你能分享一個樣本png嗎?你如何比較? – aergistal