2016-12-02 115 views
0

我有一個網絡畫廊,我顯示的圖片在用戶上傳的文件大小和分辨率上有所不同。目前所有的圖像都是基線。所以我想知道,如果我將它們轉換爲漸進式圖像,是否會產生重大影響。使用漸進式圖像有什麼優勢和折衷。Progressive jpeg vs baseline jpegs

回答

4

JPEG標準定義了各種壓縮模式。只有這三個被廣泛使用:

  • 基線順序
  • 擴展順序
  • 進步

第一唯一的差別是在表的數量允許的。否則,它們將以完全相同的方式進行編碼和解碼。

JPEG將圖像分成幀,然後分割成掃描。上述模式只允許一幀。該框架是圖像。掃描通過圖像數據。掃描可以包含一個顏色分量的數據,也可以交織幷包含多個顏色分量的數據。

  • 灰度連續JPEG流將有一個掃描。
  • 彩色順序JPEG流可能有一個或三個掃描。

JPEG需要8x8像素數據塊並將離散餘弦變換應用於該數據。 64個像素數據變成64個DCT係數。第一個DCT係數稱爲「DC」係數,其他63個稱爲「AC」係數。

這是令人困惑的術語,類比與直流和交流電流。 DC係數類似於塊的平均像素值。

在順序JPEG中,塊中的64個係數一起編碼(DC和AC係數編碼不同)。在逐行JPEG中,DC和AC係數掃描編碼係數內的位域(可配置大小)。從理論上講,您可以爲每個組件的每個位單獨掃描一次。

漸進式JPEG的實現和使用要複雜得多。如果您正在爲順序JPEG創建編碼器,則只需讓主叫方選擇使用交錯掃描或非交錯掃描。對於漸進式JPEG,編碼器需要一種機制讓調用者確定每次掃描中應掃描多少次掃描和哪些位。

漸進式編碼可能比順序慢,因爲您必須對數據進行多次傳遞。

逐行解碼中的速度問題取決於它是如何完成的。如果您一次解碼整個圖像,漸進式可能比順序稍慢。如果您的解碼器在處理流時顯示圖像淡入,它將比順序慢得多。每次更新顯示時,都必須進行逆DCT,上採樣和顏色轉換。

另一方面,使用漸進式JPEG和良好調諧的掃描可以獲得更好的壓縮效果。

有漸進性和順序

這本書之間在質量上沒有差別描述的過程:

https://www.amazon.com/Compressed-Image-File-Formats-JPEG/dp/0201604434/ref=asap_bc?ie=UTF8

+1

比你曾經想知道的JPEG更多... ;-) +1 – deceze

+0

哇..很多髮夾的東西的jpeg。 :) – Ayan

0

唯一的區別在於,漸進式圖像的編碼方式允許瀏覽器在圖像仍在下載時顯示圖像的粗略預覽,直到最終下載完成後,圖像質量會更好。基線圖像將自上而下加載,逐行圖像將從低分辨率加載到高分辨率。

對於不支持逐行圖像的瀏覽器,只有在加載完整圖像後才能看到任何內容。 (現在所有中途現代瀏覽器都支持漸進式JPEG。)

您可以看到動作差異的動畫,例如,這裏:https://www.youtube.com/watch?v=TOc15-2apY0

+0

那麼,有沒有在速度方面有什麼區別? – Ayan

+0

下載速度?這取決於圖像的大小,這取決於你如何精確地壓縮/保存圖像。相同大小的文件可以在相同的時間下載。處理速度?很值得談論。 – deceze

+0

因此,如果您要在圖庫中使用jpeg,您寧願延遲加載基線jpeg或漸進式jpeg。 – Ayan