2012-07-02 66 views
0

我比較2張圖像並獲得不匹配像素的陣列等像素陣列壓縮

rgb(12, 54, 69) 1 4 
rgb(19, 54, 98) 4 8 
rgb(12, 54, 69) 2 9 
rgb(86, 85, 10) 9 7 

我需要通過網絡發送此。所以壓縮我可以把它

rgb(12, 54, 69) (1, 4), (2, 9) 
rgb(19, 54, 98) (4, 8) 
rgb(86, 85, 10) (9, 7) 

不過我懷疑這個簡單的壓縮較大差異的情況下,也不會產生多大的好處。我還有任何測試。

當整個圖像被改變的新形象正常JPEG壓縮的大小將小得多。然而,對於任何小的差異,此方法將產生較小的字節開銷。並且沒有辦法知道每個圖像從上到下循環的變化量。

有沒有做同樣的任何標準的方式?我將在protobuf的頂部用C實現它++或提高序列化和Qt

+0

我會考慮重寫你的壓縮算法,並針對不同的圖像類型相當多的測試,看看你的壓縮方法真正提供任何好處!您可能會發現它很少或沒有提供任何好處。如果它在大多數情況下,比只使用你的方法,否則只使用JPEG。這將簡化你的通信協議,因爲你不必添加信息告訴你另一方如何解壓縮。這也將減輕需要花費額外時間進行大小比較的需要。 – trumpetlicks

回答

0

壓縮圖像在開局就JPEG,這種新的JPEG文件的大小傳遞給你的函數。在迭代函數時,只要超過傳入的大小,就返回失敗併發送jpeg。這樣你就不必到達函數的末尾。

不過,我會先分析您當前的代碼;在不太可能的情況下,你實際上是被這個代碼困住了,你可能會更好地通過創建一個本地/ C模塊來完成這個遍歷。

當然這個假定你的功能所花費的時間超過平均的JPEG創建時間。一如既往,優化前的配置文件,配置文件,配置

+0

但不會這個像素集更快的jpeg創建?兩種方式導致我仍然需要比較。因爲如果他們是相同的我不發送新的圖像,並坐下來改變。 –

+0

@NeelBasu看看像素集的創建速度是否比JPEG壓縮更快*,您需要進行配置文件(即執行實驗並進行測量)。您還需要剖析基於集合的圖像壓縮,以查看大多數情況下是否真的值得,例如他在評論中提到的trumpetlicks。 –