November 15, 2006

hqscaler - 高品質 RGB 圖片放大

因為工作需要,花了一些時間研究 RGB 圖片縮放。演算法與實做資訊相當多,但是要找到理想且適合應用需求者,就少之又少,[hq2x] 與其同系列的軟體相當不錯,也被許多電玩模擬器所採用,不過,其使用許多 MASM inline assembly 撰寫,我採用 ANSI C 去改寫並調整實做方式,並整合 [hq3x] 與 [hq4x],做了新套件 [hqscaler-1.0],授權方式為 GNU GPL。

hqscaler 能作 2x、3x,以及 4x 的圖片放大,以下就對 [ImageMagick] 、[scale2x] 作比較:
  • 原圖:
  • ImageMagick (x4)
  • scale2x (x4)
  • hqscaler (x4)
hqscaler 呈現的效果很棒,但是計算複雜度實在有點高,目前 version 1.0 是 ANSI C 的版本,或許稍後我再把 MMX optimizations 補上去,至於範例程式可參考 main.cpp,修改其中 hq4x 為 hq2x 或 hq3x 即可改變放大比例。
由 jserv 發表於 November 15, 2006 04:32 PM
迴響

@@" 傻眼
完全沒看過這樣的加速法
為什麼一個Byte錯開可以加速啊

maple 發表於 November 15, 2006 06:51 PM

Amazing!

william 發表於 November 15, 2006 10:34 PM

不知道用在照片影像上的效果如何?

k3 發表於 November 16, 2006 01:53 AM

先放大,再做抗锯齿?

liu 發表於 November 16, 2006 08:38 AM

用photoshop,photozoom pro,和hq2x
分別對影像照片作放大測試
hq2x效果大概和photoshop用鄰近像素的放大方式
效果差不多接近
photozoom pro
因為有用銳利化的效果處理感覺好像比較清晰
可是有些狀況下會讓影像邊緣線條改變
另外使用的是windows上的hq2x.exe

droger 發表於 November 16, 2006 10:30 AM

目前整個測試的結果,是必須針對原先就是以像素繪圖的圖檔最為有利
真實照片的話,跟鄰近像素(nearest neighbour)的放大效果差不多

droger 發表於 November 16, 2006 11:19 AM

第一次看到這個演算法,卻有似曾相識的感覺。原來我在筆劃辨識時,也設計了類似的演算法。不同的是, hq 是要找邊界,而我找的是代表筆劃的直線。

Thinker 發表於 November 16, 2006 03:17 PM

請問,有免費的 compiler 可供編譯為 Win32 的執行檔嗎?
剛剛試過 Dev-C++ 跟 Borland 的 free command line compiler,可是,我不會用。 @.@"
我只會在 Linux/BSD 底下編譯。
該不會要我安裝 Cygwin 吧? ^^;
有沒有人知道如何使用 Dev-C++ 或 Borland compiler 編譯 Win32 版的 hqscaler?

wmeier 發表於 November 17, 2006 11:27 AM

請問有編譯給win32用的嗎? 想試看看喔!!

穆德 發表於 November 19, 2006 11:18 AM

回樓上,可以直接編譯給win32使用

我用code::block
開一個新project
把所有檔案加進去

project - build option 不改也沒關係

================================================
請教一下:
改成放大2x,3x的時候,直接用hq2x,hq3x就可以嗎?
傳進去的參數需要改嗎?


andrew 發表於 November 22, 2006 12:53 PM
發表迴響









記住我的資訊?