那還是2014年!當時 35 歲的約翰・帕潘得利普洛斯(John Papandriopoulos)是曾經就讀於墨爾本大學的一位電氣工程博士生,個人主頁上全是有關 DSL 網路傳輸最佳化和加速的研究內容,這是他在學術上的研究方向,完成博士學位之後他取得了研究專利並將其出售給了愛立信公司。他的另一個身份,那就是 SnappyLabs 公司的創始人兼CEO。
自稱“jpap”的約翰是 SnappyLabs 公司唯一的員工,他表示自己是一個馬力全開的創業者:技術研發、平面設計、客戶支援還有媒體推廣,全都是自己抱著那臺 13 寸蘋果 MacBook Pro 在舊金山的咖啡館裡完成的。當然,有時候他也會在舊金山某個小山頂上的家中工作。
蘋果公司收購了 SnappyLabs 公司,外界分析是因為看中了該公司旗下的產品 SnappyCam。
SnappyCam 當時號稱是全世界拍照最快的智慧手機 app 應用。通常 800 萬畫素的相機每秒只能拍 3 到 6 張的照片,但是 SnappyCam 3.0 可以實現每秒拍攝 20 到 30 張全畫素照片。這種效果是蘋果自己的拍照軟體都無法做到的。在被蘋果收購之前,jpap 表示 SnappyCam 已經在 App Store 上賣出了上萬份複製,並在九個國家的 App Store 高居付費下載排行榜第一。
SnappyCam 的受歡迎程度之高,以至於出現了該軟體的盜版。SnappyCam 3.0 此前在 App Store 的售價是 0.99美元。下圖為 SnappyCam 拍攝的運動圖片:
SnappyCam 成功的奧秘在於改進了影象資料壓縮的演算法,包括近一萬行手寫的彙編程式碼外加超過兩萬行的底層 C 預言編碼,SnappyCam 替換了 iPhone 內建的標準 JPG 壓縮和處理方式,實現了每秒高達 20 幀的拍攝速度。
Papandriopoulos 曾經描述過如何實現應用的超高速拍照:
“我們首先學習了離散餘弦轉換(DST)演算法,然後基於部分研究成果開發了一套更適合 ARM NEON SIMD 協處理器指令集框架的演算法。最終的演算法包含了近 1 萬行經過手工除錯的彙編程式碼,以及 2 萬多行低級別 C 語言程式碼。”
“JPEG 的壓縮編碼除了上面提到的 DST 演算法,還包括用於生成小型 JPEG 圖片的霍夫曼壓縮演算法。在完成 DST 演算法後,我們在開發霍夫曼壓縮演算法時遭遇了瓶頸。後來透過手工調整彙編程式碼來最佳化這部分內容,使之更貼合 ARM 處理器的架構特點,最終讓成像儘可能地快速。”
真的相當專業。TechCrunch在當時的專訪中將 SnappyCam 譽為是一項技術突破:“他重新發明了 JPG 影象標準,以便學習如何才能加快影象的捕捉、緩衝、處理和壓縮速度。”
所以小米12花兩年時間重寫了相機的底層架構,我感覺是相當OK的。