0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

沒有DCT,就沒有JPEG/MPEG

算法與數(shù)據結構 ? 來源:凹非寺 ? 作者:明敏 豐色 ? 2022-07-27 11:30 ? 次閱讀

世界上最好用的壓縮軟件是什么?

微信。

這個段子想必很多人都聽過。

一張幾兆的圖片,經微信一發(fā),立馬降到幾百kb。

7f2adb28-0d5b-11ed-ba43-dac502259ad0.jpg

△如果是有損壓縮畫質會下降(右圖天空有波紋)

雖說這是個吐槽,但u1s1,圖片視頻壓縮其實是一項非常必要的技術。

比如視頻通話、傳輸大量圖片時,如果不壓縮的話,要么圖像完全無法傳送,要么就是干等了。

所以在數(shù)字時代這幾十年里,萌生出了很多相關的技術,比如JPEG、H.26X。

不過你或許不知道,這些技術往上追溯,可以從47年前說起。

有三位名不見經傳的印度工程師“一意孤行”,在沒申請到研究經費的情況下,利用暑假時間鼓搗出來了一項技術,后來直接成為圖像視頻壓縮的行業(yè)標準。

它就是DCT。

全稱為Discrete Cosine Transform,即離散余弦變換。

而有趣的是,DCT誕生之初時,就連作者本人都沒有想到,它后來會有如此巨大的影響力。

沒有DCT,就沒有JPEG/MPEG

直接說DCT可能很多人不知道是什么,但JPEG大家肯定都聽過。

它除了是一種常見的圖片文件后綴名,其實也是一種有損壓縮標準,可以把一張圖片從左邊這樣變成右邊這樣:

7f412c2a-0d5b-11ed-ba43-dac502259ad0.png

ps.有損和無損的區(qū)別:無損壓縮可以再100%還原圖像;有損不可以,但有損壓縮后的圖像大小會大大減少。

DCT就是實現(xiàn)這個過程的一種基礎技術。

它是傅立葉變換的一種,可以將圖像從空域轉換到頻域,也就是把圖像從像素矩陣變成用帶有頻率等信息的函數(shù)來表示。

具體變換過程,我們以一張圖像中一個3x3的像素塊為例:

7f549706-0d5b-11ed-ba43-dac502259ad0.png

△圖源博客園博主@沉默的背影 X-Pacific

對這個像素塊做DTC變換,就相當于把除了第一個像素以外,其余像素的部分信息都抽取到第一個格中。

這樣,第一個格的像素值表示的就是一張圖的總體樣貌,稱為低頻信息;其余格表示的就是圖像中人物或物體的細節(jié),稱為高頻信息。

經DCT轉換后,每個3x3的像素塊都會產生1個DC(直流)系數(shù)(位于第一個格)及8個AC(交流)系數(shù)(剩余格),前者是DCT最重要的輸出。

7f67966c-0d5b-11ed-ba43-dac502259ad0.png

由于大部分的圖像能量會集中在低頻部分,因此轉換之后輸出的DC系數(shù)值比較大,而輸出的AC系值比較小。

利用“人眼對低頻分量的圖像比對高頻分量的圖像更敏感”這一原理,再通過量化保存下來低頻分量,舍棄高頻分量(將大部分AC系數(shù)值變?yōu)?)、丟掉那些對視覺效果影響不大的信息,從而達到壓縮目的。

從下面這兩張圖像的三維投影,我們可以看到DCT變換帶來的改變:

(上:原圖;下:經過DCT變換后)

7f7ce92c-0d5b-11ed-ba43-dac502259ad0.png

在實際的JPEG壓縮標準中,都是將一張圖像分成若干個8x8的像素塊(不夠的用空白補齊)。

將色彩空間從RGB轉為YUV之后,從左至右、從上至下對每個塊進行DCT變換。

然后對每個塊變換得來的系數(shù)進行量化,在這個過程中,一些重要的分量就被去除了,且無法恢復。

因此,這是一種不可逆的有損壓縮技術。

接著對量化后得到的AC系數(shù)和DC系數(shù)再分別進行編碼,經過哈夫曼編碼后得到下面這樣的一大串數(shù)字。

7f970cbc-0d5b-11ed-ba43-dac502259ad0.png

解壓縮時對每個圖像塊做DCT反轉換(IDCT),就可以重建完整圖像。

具體計算過程如下:

首先將圖片中每個像素的原始灰度和亮度值用8bit表示,也就是(0,255)這個范圍。

由于大多數(shù)值都會分布在128左右,所以會將這些值都減去128,這樣會有更多值為0,有利于壓縮,這時候范圍變成(-128,127)。

7fa970fa-0d5b-11ed-ba43-dac502259ad0.png

然后再用DCT變換公式進行變換,二維的用這個:

7fbd7c6c-0d5b-11ed-ba43-dac502259ad0.png

變換完后進行根據量化表進行量化,將大部分系數(shù)變?yōu)?,完成壓縮。

7fccd7fc-0d5b-11ed-ba43-dac502259ad0.png

ps.量化表是根據人眼對量化誤差的視覺閾值來確定的,有固定的一張表。

后面就是前面說的一系列編碼過程了。

1974年1月,這項技術首次被發(fā)表在IEEE Transactions on Computers上面。

自此,圖像和視頻壓縮領域的行業(yè)標準就誕生了。

1998年世界首個視頻壓縮標準H.261、1992年的JPEG和MPEG、2010年的WebP、2013年的HEIF、2018年谷歌亞馬遜公司聯(lián)合創(chuàng)建的AV1……等壓縮標準都是基于這項技術,且一直沿用至今。

40多年都名不見經傳的發(fā)明者

DCT的作者有3位,分別是Nasir Ahmed(納西爾·艾哈邁德)、K.R. Rao(K.R.拉奧)和T. Natarajan(T.納塔拉詹)。

納西爾是新墨西哥大學電氣與計算機工程系名譽教授。

他1940年出生于印度班加羅爾,1966年在新墨西哥大學獲得博士學位。

1966-1968年,他在霍尼韋爾公司擔任首席工程師,1968-1983年在堪薩斯州立大學擔任教授。

1983-2001年,他回到新墨西哥大學擔任電氣與計算機工程系首席教授。在此期間,他先后擔任過系主任、研究生院院長等職位。

今年,納西爾已經有82歲高齡。

另一位主要作者是K.R.拉奧。

他同樣是一位美籍印度裔學者。

1960年,他在佛羅里達大學獲得核工程專業(yè)博士學位。1966年,又在新墨西哥大學獲得電氣與計算機工程專業(yè)博士學位。

之后50年,他一直在得克薩斯州阿靈頓分校工作,擔任電氣工程系教授。

與此同時,他還是IEEE Fellow。

2021年1月15日,拉奧教授揮別人世,享年89歲。

T.納塔拉詹當時是納西爾帶的博士生,如今在互聯(lián)網上已經檢索不到太多他的相關信息。

可以說相比于大名鼎鼎的DCT,幾位發(fā)明者稱得上是“名不見經傳”了。

實際上,40多年來,DCT發(fā)明的幕后故事一直鮮有人關注。

甚至連納西爾的兒子都表示,“從來沒想過父親帶來的影響有如此之大”。

而將納西爾從幕后推至臺前的,還多虧了一部美劇中的一波致敬。

2020年,《我們的生活》中有一段劇情是納西爾以視頻通話的方式,講述了自己和妻子相愛的故事。

片方表示,設計這一橋段的初衷,就是希望更多人意識到,當下我們能夠通過互聯(lián)網快速發(fā)送圖片視頻,都與納西爾的工作離不開關系。

劇情播出后,不少媒體將DCT定義為“改變世界的算法”,也稱納西爾這位名不見經傳的工程師,終于從幕后推到了臺前。

不過,納西爾在自己的回憶視頻里表示,當初真的沒想到DCT會帶來如此大的影響。

我也無法預測技術發(fā)展的速度,對于FaceTime這些應用的出現(xiàn),我感到非常驚訝。

要知道,DCT最初可能差一點就被扼殺在了搖籃里。

1972年,當時已經對DCT初有構思的納西爾向美國國家科學基金會(NSF)遞交了一份申請,希望NSF能為他研究DCT提供資金支持。

不過令納西爾驚訝的是,這個申請直接被斃掉了,評審人給出的意見是“它太簡單了”。

但好在納西爾并沒有放棄,他始終覺得這個idea很有新意。

唯一令他有所顧慮的是,他可能是只能利用假期來完成DCT的相關工作了,而且這期間可能沒有任何收入。

所以,納西爾回家和妻子說:

我有直覺,這事兒值得做下去。只不過我們需要計劃好如何度過一個沒有薪水的暑假。

妻子沒有任何猶豫就支持了他。

于是,在1973年的夏天,DCT的研究工作正式開始了。

參與到這項研究的,還有納西爾的好友拉奧和博士生納塔拉詹。

拉奧也是支持納西爾研究DCT的重要人物之一。

在納西爾的申請被斃掉后,他第一時間把自己的想法告訴了好友拉奧。

拉奧給出了這樣的回復:

你要立即把這些結果以短文的形式發(fā)表。

這就是“How I Came Up with the Discrete Cosine Transform”誕生的始末。

802235da-0d5b-11ed-ba43-dac502259ad0.png

后來,這篇文章幾乎稱得上是圖片視頻壓縮領域的必讀之文。

之后的故事,也就是我們所熟知的了。

1974年,《Discrete Cosine Transform》在IEEE Transactions on Computers上發(fā)表。

截至目前,這篇文章的被引次數(shù)已經達到5878次。

納西爾曾在采訪中表示,自己人生中最大的禮物,就是人們對DCT的認可。

審核編輯 :李倩

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 圖像
    +關注

    關注

    2

    文章

    1075

    瀏覽量

    40275
  • JPEG
    +關注

    關注

    0

    文章

    65

    瀏覽量

    29892
  • DCT
    DCT
    +關注

    關注

    1

    文章

    55

    瀏覽量

    19818

原文標題:三個印度人改變壓縮算法,一意孤行整個暑假,卻因“太簡單”申不到經費

文章出處:【微信號:TheAlgorithm,微信公眾號:算法與數(shù)據結構】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    pcb沒有工藝邊怎么貼片

    當PCB沒有工藝邊時,進行貼片加工需要特別注意以下幾點,以確保貼片過程的順利進行和最終產品的質量。 一、了解工藝邊的作用 工藝邊是PCB板兩邊或四邊增加的部分,主要為了輔助貼片插件焊接走板,方便
    的頭像 發(fā)表于 08-15 09:45 ?373次閱讀

    Keil這么難用,為什么還沒有被淘汰?

    這個話題好像是個偽命題,因為我覺得Keil除了經??D、莫名卡死、不支持靈活的拓展外,也沒有很難用?。科鋵岾eil作為一款嵌入式軟件開發(fā)工具,在業(yè)界有著長期的存在和廣泛的應用。盡管有些人認為Keil
    的頭像 發(fā)表于 05-18 08:04 ?496次閱讀
    Keil這么難用,為什么還<b class='flag-5'>沒有</b>被淘汰?

    電路硬件,就沒有飛不了的線

    電容ESR太小導致電壓參考環(huán)路不穩(wěn)定,找電源組要個小電阻去。 我:你們有沒有小一點的電阻,零點幾歐姆那種?
    的頭像 發(fā)表于 03-28 10:14 ?471次閱讀
    電路硬件,就<b class='flag-5'>沒有</b>飛不了的線

    磁柵尺中間沒有數(shù)據的原因及解決方法

    磁柵尺中間沒有數(shù)據的原因及解決方法!磁柵尺是一類主要用于測量長度和位置的精密測量專用工具。但是,很多時候可能會遇到磁柵尺中間沒有數(shù)據的現(xiàn)象,這可能會導致測量結果不準確。當我們遇到磁柵尺中間沒有
    的頭像 發(fā)表于 03-06 14:37 ?774次閱讀
    磁柵尺中間<b class='flag-5'>沒有</b>數(shù)據的原因及解決方法

    為什么單個電感沒有極性呢?

    為什么單個電感沒有極性呢? 單個電感沒有極性是因為電感是由線圈或線圈組成的元件,其內部沒有正極或負極的區(qū)別。 電感是由導體卷繞成線圈的一種元件。在電感中,電流通過線圈時會產生磁場。當磁場發(fā)生變化
    的頭像 發(fā)表于 02-18 14:51 ?614次閱讀

    網絡適配器沒有啟用TCP/IP服務怎么解決

    網絡適配器沒有啟用TCP/IP服務是一個常見的問題,可能導致網絡連接問題。
    的頭像 發(fā)表于 01-29 11:36 ?1.4w次閱讀

    塑膠件沒有孔怎么做氣密性試驗

    在現(xiàn)代制造業(yè)中,塑膠制品因其優(yōu)良的性能和較低的制造成本被廣泛用于各種領域。然而,對于沒有孔的塑膠件,如何進行氣密性試驗卻是一個挑戰(zhàn)。本文將詳細介紹如何在沒有孔的情況下對塑膠件進行氣密性試驗。一
    的頭像 發(fā)表于 01-26 11:10 ?450次閱讀
    塑膠件<b class='flag-5'>沒有</b>孔怎么做氣密性試驗

    怎么辦?晶振沒有信號輸出

    怎么辦?晶振沒有信號輸出? 晶振作為電子設備中常見的元器件之一,在電子系統(tǒng)中起到時鐘信號供應的重要作用。然而,有時我們可能會遇到晶振沒有信號輸出的問題,這會嚴重影響設備的正常運行。本文將針對這一
    的頭像 發(fā)表于 01-25 13:51 ?756次閱讀

    變壓器沒有抽頭如何做正負壓?

    變壓器沒有抽頭如何做正負壓?
    的頭像 發(fā)表于 01-20 10:28 ?1252次閱讀
    變壓器<b class='flag-5'>沒有</b>抽頭如何做正負壓?

    dct變速箱和at變速箱哪個更好?

    dct變速箱和at變速箱各有優(yōu)勢,無法直接給出準確的回答說哪個更好,可以根據個人駕駛需求和偏好以及預算考慮。在決定DCT(雙離合變速箱)和AT(自動變速箱)之間哪個更好之前,我們需要理解這兩種變速箱
    的頭像 發(fā)表于 01-17 09:45 ?1251次閱讀

    過孔溫度,沒有我們想象那么高

    過孔溫度,沒有我們想象那么高
    的頭像 發(fā)表于 12-07 16:55 ?400次閱讀
    過孔溫度,<b class='flag-5'>沒有</b>我們想象那么高

    反相輸入放大器的坑,你踩過沒有?

    反相輸入放大器的坑,你踩過沒有?
    的頭像 發(fā)表于 12-06 15:35 ?470次閱讀
    反相輸入放大器的坑,你踩過<b class='flag-5'>沒有</b>?

    字符數(shù)組和字符串有沒有區(qū)別?

    字符數(shù)組和字符串有沒有區(qū)別?
    的頭像 發(fā)表于 11-30 16:39 ?489次閱讀

    零線上沒有電的條件

    零線沒有電是常規(guī)認知,火線(相線A、B、C)零線N,在變壓器的傳輸中相錢A、B、C,中性點線接入大地就產生了任意相電對大地是220V~文流電源。從電學物理角度分析,零線N也有電應是負電,這里對相電
    的頭像 發(fā)表于 10-13 15:17 ?673次閱讀
    零線上<b class='flag-5'>沒有</b>電的條件

    沒有充電保護過充會怎么樣

    沒有充電保護過充會怎么樣? 當我們使用手機、筆記本電腦或其他便攜式設備時,充電保護是非常重要的。如果沒有充電保護,過充會對設備造成很多損壞,甚至可能引發(fā)火災和其他安全問題。 過充是指設備電池充電超過
    的頭像 發(fā)表于 09-26 17:24 ?1423次閱讀