2017-07-27 72 views
1

即時通訊思想使用Huffman編碼,使一個應用程序,從iPhone相機拍攝照片的權利,並壓縮它拍攝的圖像。硬件能夠處理複雜的計算和構建樹嗎?換句話說,它是可行的嗎?使用Huffman編碼壓縮通過iPhone攝像頭

謝謝

+0

iPhone手機越來越強大所以要根據您的圖片有多大尋找和什麼樣的速度基線要設置應該是可能的。看看這個實現,你可以嘗試配置文件中的速度爲你自己:[raywenderlich/SWIFT算法俱樂部(https://github.com/raywenderlich/swift-algorithm-club/tree/master/Huffman%20Coding ) –

回答

4

如果你指的是圖像文件(如JPG,PNG,等等),那麼你應該知道,他們已經與特定的圖像壓縮算法。如果有的話,結果文件不會被壓縮太多。

如果你的意思是你要採取的UIImage原始像素數據和壓縮它,你能做到這一點。我確信iPhone可以處理它。

如果這是一個有趣的項目,然後去了。如果你希望這是一個有用的和使用的應用程序,你將有一些挑戰

  1. 這是不太可能的霍夫曼會比JPG,PNG使用標準的圖像壓縮更好,等

  2. 蘋果已經看到了需要更好的壓縮和iOS的11實現HEIF WWDC Video about HEIF

  3. 他們做了很多的操作系統和照片應用程序的工作,以確保在本地使用HEIF,但如果你分享照片的時候將其變成任何人都可以使用的東西(例如JPG)

  4. 它們實現的所有壓縮都使用硬件加速。你也可以這樣做,但代碼比霍夫曼難得多。

因此,學習和娛樂,這是一個很好的項目 - 這可能是更容易做到的Mac應用程序,而不是,但對於一些意思是真實的,那將是非常難以克服上述問題, 。

+0

謝謝@Lou。你的回答非常有幫助 – inzo

0

有2份,編碼和解碼。編碼過程涉及構建樹的樹或基於表的表示。解碼過程包括讀取huff編碼字節和撤消增量。與PNG相比,在編碼中獲得更多的速度優勢可能是困難的,但是通過將解碼邏輯移動到具有金屬的GPU,可以看出解碼非常有效的加速。你可以看看一個例子的完整源代碼,它只爲github Metal Huffman上的灰度圖像做過。