2014-03-26 25 views
2

通過python進程shell使用RaspiStill拍攝JPG編碼圖片。我得到一個超過兩個megs的文件。當我將質量降低到50%時,所拍攝照片的文件大小隻降低了約200K,或者降低了10%。當我將原始的2兆文件+文件保存並通過Paint.Net以85%的質量進行保存時,文件大小會降低到300k,或下降近90%。RaspiStill - 質量/尺寸錯誤匹配 - 文件太大

我做錯了什麼,或者在RaspiStill中的編碼器有問題嗎?

下面是我用它來拍照的命令行: PI @樹莓派〜/開發/測試$ raspistill -n -t 100 -q 50 -e JPG -o fullsizejpgsethalfquality.jpg

所得文件大小:2052kb 通過Paint.Net以85%的質量重新保存同一文件:319kb

想法?

回答

8

這個在Raspberry Pi論壇上花了很多實驗和爭論來解決。

這裏是鏈接到整個討論:是http://www.raspberrypi.org/forum/viewtopic.php?f=43&t=73174&p=527300#p527300

我的最終解決方案的統計數據如下:我放棄了分辨率最低爲640x480,由此產生的170K的文件大小。然後,我將質量下降到10,這對於大多數應用程序而言,相當於85的質量值,並將文件大小降至40k。最後,我關閉了縮略圖,該縮略圖以位圖形式存儲,最終得到的文件大小爲20k ...這是您對jpeg尺寸和質量設置的期望。下面是我用最後的命令:

PI @樹莓派〜/開發/測試$ raspistill -w 640 -h 480 -n -t 100 -q 10 -e JPG個無-o vgasize10nothumb.jpg

主要問題源於Raspistill如何解釋質量值。它將其用作對數 - esk值,其中從100一直到10幾乎沒有變化。質量從10-1下降到懸崖。一個相當瘋狂的發展決定恕我直言。

正如我所說的,對於大多數圖形應用程序來說,10的值與85的質量大致相同,這對於非常小的文件而言具有良好的質量。首先是使用Jpeg的關鍵。

+1

我有完全相同的問題。你的解決方案解釋了發生了什麼並修復了它。我認爲它應該被標記爲接受的答案(即使它是你自己的)。 – Wireblue

1

我也有-q( - 質量)參數的一些問題,並沒有很好地發現,但是,你爲什麼不嘗試使用--width--height?這應該給你一個解決方案,請看:

raspistill --width 1280 --height 960 --quality 100 -o fullsizejpgsethalfquality3.jpg 

我加--quality但你可以忽視它,我猜。如果我列出指南的內容,則會看到3張不同的照片。前兩個已經lkept全分辨率和-q參數玩:

-rw-r--r-- 1 pi pi 1691812 mar 27 16:57 fullsizejpgsethalfquality.jpg 
-rw-r--r-- 1 pi pi 1492051 mar 27 16:57 fullsizejpgsethalfquality2.jpg 
-rw-r--r-- 1 pi pi 351976 mar 27 17:00 fullsizejpgsethalfquality3.jpg 

大小看,這是一個5倍的照片更輕。

+0

該文件較小,因爲圖片較小。相機模塊的默認圖像尺寸爲2592x1944。您的圖像尺寸是分辨率的一半,這可以提供四分之一的像素數 - 這就是爲什麼您看到的照片大約是默認尺寸的25%。這對於Jpeg來說仍然是一個非常大的文件。壓縮並沒有接近應該的位置。 – codingCat

+0

我也有問題的-q參數,但如果大小是關鍵,那麼修改分辨率是唯一的東西。 – ederollora

+0

默認有這個大小:1691812字節,與我的命令一個有351976字節(較小的水庫)。在尺寸上講話少了79%。如果size就是你的問題,那麼至少在我的情況下,-q參數不能按預期工作。 – ederollora