檔案壓縮是如何工作的?

軟體工程師一直在開發新的方法,將大量資料擬合到一個小空間中。當我們的硬碟很小的時候,這是真的,網際網路的出現使它變得更加重要。檔案壓縮在連線我們的過程中扮演著重要的角色,它讓我們能夠傳送更少的資料,這樣我們就可以更快地下載,並在繁忙的網路上建立更多的連線。...

檔案壓縮是如何工作的?

軟體工程師一直在開發新的方法,將大量資料擬合到一個小空間中。當我們的硬碟很小的時候,這是真的,網際網路的出現使它變得更加重要。檔案壓縮在連線我們的過程中扮演著重要的角色,它讓我們能夠傳送更少的資料,這樣我們就可以更快地下載,並在繁忙的網路上建立更多的連線。

那麼它是如何工作的呢?

要回答這個問題,需要解釋一些非常複雜的數學,當然這超出了我們在本文中所能涵蓋的範圍,但是您不需要確切地理解它是如何在數學上工作的,就可以理解基礎知識。

最流行的文字壓縮庫依賴於兩種壓縮演算法,同時使用這兩種演算法可以獲得非常高的壓縮比。這兩種演算法是“LZ77”和“哈夫曼編碼”,哈夫曼編碼是非常複雜的,我們在這裡不詳細討論。首先,它使用一些花哨的數學來為單個字母分配較短的二進位制程式碼,在這個過程中縮小了檔案大小。如果您想了解更多,請檢視這篇關於程式碼如何工作的文章,或者這篇Computerphile的解釋文章。

另一方面,LZ77相對簡單,這就是我們在這裡要討論的。它試圖刪除重複的單詞,並用一個較小的“關鍵字”來代替它們。

以這篇短文為例:

檔案壓縮是如何工作的?

LZ77演算法將檢視此文字,意識到它將“howtogeek”重複三次,並將其更改為:

檔案壓縮是如何工作的?

然後,當它想讀迴文本時,它會用“howtogeek”替換(h)的每個例項,使我們回到原來的短語。

我們稱這種壓縮為“無損”壓縮——輸入的資料與輸出的資料相同。什麼也沒丟。

實際上,LZ77不使用鍵列表,而是用記憶體中的連結替換第二個和第三個匹配項:

檔案壓縮是如何工作的?

所以現在,當它到達(h)時,它將回顧“howtogeek”並閱讀它。

如果你對更詳細的解釋感興趣,這段來自Computerphile的影片非常有用。

這是一個理想化的例子。實際上,大多數文字都是用只有幾個字元的鍵來壓縮的。例如,單詞“the”即使出現在“there”、“their”和“then”這樣的單詞中,也會被壓縮。透過重複的文字,可以得到一些瘋狂的壓縮比。把這個單詞“howtogeek”的文字檔案重複100次。原始文字檔案的大小為3KB。不過,壓縮後只需要158位元組。壓縮率接近95%。

檔案壓縮是如何工作的?

很明顯,這是一個非常極端的例子,因為我們只是一遍又一遍地重複同一個詞。在一般實踐中,使用壓縮格式(如ZIP)對主要是文字的檔案進行壓縮,可能會得到大約30-40%的壓縮。

順便說一句,這個LZ77演算法適用於所有二進位制資料,而不僅僅是文字,儘管文字通常更容易壓縮,因為大多數語言使用了多少重複的單詞。例如,像漢語這樣的語言可能比英語更難壓縮。

影象和影片壓縮是如何工作的?

檔案壓縮是如何工作的?

影片和音訊壓縮的工作原理非常不同。與文字不同的是,文字可以進行無失真壓縮,並且不會丟失任何資料,而影象可以進行所謂的“有失真壓縮”,即丟失一些資料。壓縮的越多,丟失的資料就越多。

這就是人們上傳、分享和截圖多次的那些看起來可怕的jpeg的原因。每次壓縮影象時,都會丟失一些資料。

下面是一個例子。這是我拍的一張截圖,根本沒有被壓縮。

檔案壓縮是如何工作的?

然後,我把截圖在Photoshop上運行了多次,每次都以低質量JPEG格式匯出。結果是這樣的。

檔案壓縮是如何工作的?

看起來很糟,對吧?

好吧,這只是最壞的情況,每次以0%的JPEG質量匯出。為了比較,這裡有一個50%的質量JPEG,這是幾乎無法區分的源PNG影象,除非你把它放大,仔細看看。

檔案壓縮是如何工作的?

此影象的PNG大小為200KB,但此50%質量的JPEG僅為28KB。

那麼它是如何節省這麼多空間的呢?好吧,JPEG演算法是一項偉大的工程。大多數影象儲存一個數字列表,每個數字代表一個畫素。

JPEG不做這些。取而代之的是,它用一種叫做離散餘弦變換的東西來儲存影象,這種變換是以不同強度疊加在一起的正弦波的集合。它使用了64個不同的方程式,但其中大部分都沒有被使用。這就是Photoshop和其他影象應用程式中JPEG的質量滑塊選擇要使用多少個公式的原因。然後應用程式使用哈夫曼編碼進一步減小檔案大小。

這使得jpeg具有極高的壓縮比,根據質量的不同,可以將多兆位元組的檔案壓縮到幾千位元組。當然,如果你用得太多,你會得到這樣的結果:

檔案壓縮是如何工作的?

那形象太可怕了。但是少量的JPEG壓縮會對檔案大小產生很大的影響,這使得JPEG對於網站上的影象壓縮非常有用。你在網上看到的大多數圖片都經過壓縮以節省下載時間,特別是對於資料連線不好的移動使用者。事實上,所有關於如何極客的圖片都被壓縮了,以使頁面載入更快,而且你可能從未注意到。

影片壓縮

檔案壓縮是如何工作的?

影片的工作原理與影象有點不同。你可能會認為他們會用JPEG壓縮每一幀影片,他們當然會這麼做,但是有一個更好的方法來壓縮影片。

我們使用一種叫做“幀間壓縮”的方法,它計算每一幀之間的變化並只儲存這些變化。所以,舉個例子,如果你在一個影片中有一個相對靜止的鏡頭,它佔用了幾秒鐘的時間,就會節省很多空間,因為壓縮演算法不需要儲存場景中所有不變的東西。幀間壓縮是我們擁有數字電視和網路影片的主要原因。如果沒有它,影片將達到數百千兆位元組,超過2005年YouTube推出時的平均硬碟大小。

另外,由於幀間壓縮最適合靜止影片,這就是為什麼彩色紙屑會破壞影片質量。

注意:GIF不能做到這一點,這就是為什麼動畫GIF通常非常短和小,但仍然有一個相當大的檔案大小。

關於影片,另一件要記住的事情是它的位元率——每秒允許的資料量。例如,如果您的位元率是200kb/s,您的影片將看起來非常糟糕。質量隨著位元率的提高而提高,但是在每秒幾兆位元組之後,你得到的回報就越來越小。

這是從水母的影片中拍攝的縮放幀。左邊的是3Mb/s,右邊的是100Mb/s。

檔案壓縮是如何工作的?

檔案大小增加了30倍,但質量沒有多大提高。一般來說,YouTube影片的速度大約為2-10Mb/s,這取決於你的連線,因為更多的影片可能不會被注意到。

這個演示在實際影片中效果更好,所以如果你想親自檢視,你可以下載這裡使用的相同位元率測試影片。

音訊壓縮

檔案壓縮是如何工作的?

音訊壓縮的工作原理與文字和影象壓縮非常相似。當JPEG從影象中刪除你看不到的細節時,音訊壓縮也會對聲音進行同樣的處理。你可能不需要聽到吉他在弦上的吱吱聲,如果實際的吉他是非常,非常響亮。

MP3也使用位元率,從48和96 kbps的低端(低端)到128和240 kbps(相當不錯)到320 kbps(高階音訊),你可能只會聽到非常好的耳機(和耳朵)的區別。

也有用於音訊的無失真壓縮編解碼器,主要的是FLAC,它使用LZ77編碼來提供完全無損的音訊。有些人發誓FLAC的完美音質,但隨著MP3的流行,似乎大多數人要麼說不出來,要麼不介意的區別。

  • 發表於 2021-04-05 01:55
  • 閱讀 ( 49 )
  • 分類:網際網路

你可能感興趣的文章

壓縮的html是如何工作的以及為什麼需要它

... 在本文中,我們將討論縮小HTML檔案的兩種主要方法,為什麼要縮小HTML檔案,以及如何縮小。 ...

  • 發佈於 2021-03-14 09:00
  • 閲讀 ( 49 )

三大檔案壓縮和提取軟體

每個人都應該安裝一個檔案壓縮和提取工具。它是那些基本的PC工具之一。Windows包含了壓縮和解壓檔案的基本功能,但是它非常有限。 ...

  • 發佈於 2021-03-16 05:42
  • 閲讀 ( 44 )

此windows錯誤可能在您的電腦上累積了垃圾檔案

...碟空間在穩步減少,即使您沒有下載或向系統中新增任**檔案。垃圾檔案的累積是日誌檔案壓縮缺陷的一個症狀,微軟已經知道這個問題兩年多了。 ...

  • 發佈於 2021-03-17 12:28
  • 閲讀 ( 45 )

如何壓縮pdf檔案,減小檔案大小,並使其變小

PDF檔案可能過大。幸運的是,有許多易於使用的程式可以將一個超大的PDF檔案壓縮成更容易傳送電子郵件和線上共享的檔案。下面有四個選項介紹如何壓縮PDF檔案並使其變小。 ...

  • 發佈於 2021-03-18 08:43
  • 閲讀 ( 58 )

jpg與jpeg:這些影象檔案格式之間有什麼區別?

並非所有的影象檔案格式都是相同的。事實上,它們中的許多都是為了解決現有格式無法解決的問題而建立的。例如,JPEG的出現是因為影象檔案的大小佔用了太多的儲存空間。 ...

  • 發佈於 2021-03-26 15:54
  • 閲讀 ( 58 )

如何在mac上壓縮檔案

在Mac上儲存儲存的方法之一是壓縮檔案。這樣做可以讓您在計算機的相同儲存容量上儲存更多的檔案。 ...

  • 發佈於 2021-03-26 21:26
  • 閲讀 ( 55 )

如何在windows10中解壓檔案

每個人都應該知道的一個基本Windows函式是如何解壓縮檔案。這並不難,事實上,這個選項就在作業系統內部。 ...

  • 發佈於 2021-03-27 04:26
  • 閲讀 ( 49 )

如何將webp轉換為jpeg、png和其他影象格式

... WebP是一種影象檔案格式,主要用於在web上提供影象服務。這種格式既支援無失真壓縮,也支援有失真壓縮。當您對影象使用WebP格式時,其大小往往比JPEG或PNG格式的影象小得多。 ...

  • 發佈於 2021-03-28 09:40
  • 閲讀 ( 51 )

如何在mac上製作zip檔案

如果你想在你的Mac上**一個ZIP檔案,有很多方法可以做到。macOS提供了內建的工具,但也有第三方應用程式可以讓你在Mac上建立ZIP檔案。 ...

  • 發佈於 2021-03-28 16:40
  • 閲讀 ( 72 )

在iphone上壓縮影片的5種方法

...量錄製影片。然而,這樣做的缺點是影片最終會有巨大的檔案大小。由於大多數社交媒體服務都限制了共享的檔案大小,因此您可能想知道如何使您的iPhone影片變小。 ...

  • 發佈於 2021-03-29 20:26
  • 閲讀 ( 129 )
qw364060
qw364060

0 篇文章

作家榜

  1. admin 0 文章
  2. 孫小欽 0 文章
  3. JVhby0 0 文章
  4. fvpvzrr 0 文章
  5. 0sus8kksc 0 文章
  6. zsfn1903 0 文章
  7. w91395898 0 文章
  8. SuperQueen123 0 文章

相關推薦