본문 바로가기

Open Source

(17)
FLFTRender, freetype2 를 이용한 Fl_RGB_Image 에 글자 렌더링 Freetype2 에 대한 소개 Freetype2 는 TTF 폰트를 사용할 수 없는 시스템에서 이를 사용하기 위한 좋은 선택일 수 있거나, 플랫폼에 상관 없이 TTF 가 가지는 정확한 렌더링을 얻어 내기 위한 용도 등 많은 활용도가 있는 오픈소스 라이브러리 입니다. 보통은 Linux 에서 이를 가장 많이 사용하고 있을 것이고, 일부 게임들에서도 TTF 를 통해 Texture 를 얻거나 할때 많이들 사용하는 것으로 알고 있습니다. libfreetype2 + FLTK 활용 libfreetype2 의 경우 대부분 Linux 에서는 기본적으로 설치 되거나, 어렵지 않게 패키지 매니저로 설치가 가능한 라이브러리 입니다만, Windows 에서는 M$ 가 만들어 놓은 비친화적인 OS와 개발환경의 차이 덕에 이런 걸 ..
보케 효과를 만들어 보기 #2 - 성능향상 이 글은 이전 "보케 효과를 만들어 보기 #1" 에 이어지는 글 입니다. 혹시 이 글을 이전 글 보다 먼저 보신 분은 먼저 앞선 글을 읽고 오시면 더 이해 하시기 편할 것으로 예상 됩니다. 향상된 보케(빛망울) 효과 이전 글 에 소개된 보케효과 알고리즘은 0.1 초판으로서 현재 마지막 0.1.7.31 버젼에 비해 많은 것들이 모자란 버젼 이었습니다만, 그간 짬짬히 여러 문제를 수정 하고 성능을 비약적으로 향상 하여 근대의 다중 코어 CPU ( x86 및 ARM 계열 모두 해당 됨 ) 들에서 가장 효과적인 구동을 하도록 발전 하였습니다. 그 중 몇가지 수정 사항은 먼저, 효과를 적용하면서 발생하던 메모리 누수 ( 제 실수 였습니다만 ) 를 제거 하고, OpenMP 의 효과적인 구동으로 각 CPU threa..
보케 효과를 만들어 보기 #1 심도가 낮은 렌즈와, 큰 크기의 촬상면을 가진 DSLR 같은 종류가 아니면 찍기 힘든 사진이 있다면 아마 배경이 뭉개진 이미지들이 아닐까 합니다만, 사실 단순이 Gaussian blur 만 줘서는 큰 렌즈의 빛의 굴절로 인해 생기는 일명 Bokeh 라는 형태를 만들어 내기가 쉽지는 않습니다. 그래서 어떻게 Bokeh 를 만들어 낼까? 란 고민을 하다 scratchpixel.com 에 한 페이지를 보게 되었습니다. circualr shifting 이라는 형태를 가지고 빛이 렌즈와 조리개를 통해 촬상면에 맺히는 형태를 흉내 낸 시뮬레이션 정도 이긴 합니다만 꽤 그럴싸한 결과물을 얻을 수 있었습니다. 원래 소스는 조금 복잡한 처리를 해야 하나, 제가 이를 조금 수정 하여 다음 github 위치에 소스를 공개하..
libsrcnn (Super-Resolution Neural Networks) 맥에서 테스트 libsrcnn 이란? 참조1, 참조2 MacOSX 에서의 테스트 이번 테스트는 MacOSX 에서 기본 LLVM-GCC 를 사용하여 zsh로 성능 테스트를 해 보았습니다. 일단 MacOSX 에서는 기본적으로 HPC-GCC 가 아니고는 OpenMP 를 통한 CPU 가속을 할 수 없기 때문에, 기본적인 LLVM-GCC 의 Optimization 에 제한적으로 기능을 제한 해야 합니다.테스트 한 MacOSX모델명: MacBook Pro모델 식별자: MacBookPro12,1프로세서 이름: Intel Core i7프로세서 속도: 3.1 GHz총 코어 개수: 2L2 캐시(코어당): 256 KBL3 캐시: 4 MB메모리: 16 GB 테스트 이미지는 크기가 3:2 비율을 가지는 DSLR 로 촬영한 가로 2048px ..
고성능 신경망 Super-Resolution Image library - libsrcnn 소개 libsrcnn 은? libsrcnn 은 POSIX 를 포함한 Windows 에서도 DLL 로 사용이 가능 하도록 제공되는 오픈소스 라이브러리로서, Super-Resolution Imaging 을 OpenCV 와 같은 별도의 라이브러리를 사용하지 않고도 쓸 수 있도록 설계되고 만들어진 신경망이 적용된 고성능 엔진 입니다. 초창기는 ShuWang 의 오픈소스로 부터 시작하여, OpenCV 에서 발생하는 여러 낮은 성능과, Multi-thread 를 이용하지 못하는 단점등을 모두 보완한 프로젝트로서, 현존 이미지 복호처리 중 가장 띄어난 결과를 보여 주는 알고리즘이라 하겠습니다. 본 라이브러리는 ShuWang 의 오픈소스로 부터 기반을 하여 GCC, LLVM, CLANG 등으로 POSIX 에서 문제 없이 구..
신경망 Super-Resolution Imaging 오픈 소스 (libsrcnn) 공개 이전에 Super-Resolution Imaging 관련으로 관심을 가졌다가, 오래전에 공개 되었던 한 홍콩의 대학쪽에서 공개된 논문과 소스코드를 이번에 손을 보게 되었습니다. 이전에 fl_imgtk 에 Lanczos3 까지 초 고속으로 구현을 해 보았던지라, 이번 Super-Resolution (이하 SR) 은 어렵지 않게 구현을 할 수 있을 거로 추측을 해 봤습니다만, 결론적으로 대단히 쉽지 않은 부분이 많았습니다. 특히 지속적으로 32 에서 64번씩 반복되는 커널 매트릭스 구조는 도저히 속도를 개선 하는데 쉽지 않은 부분이었습니다만, 그럼에도 만들어진 영상의 품질은 아마 현존하는 이미지 리사이즈 알고리즘 중에서는 최고봉이 아닐까 합니다. 아무래도 Lanczos3 와 같은 리사이즈 엔진은 인간의 눈으..
시진을 그냥 이쁘고 밝게 : MIOH (Make Image O' HDR) 이 프로그램은 제가 오픈소스 프로젝트 중 하나로 가져 가고 있는 공개 프로그램 입니다. 단, GPL3 라이센스를 가지고 있으므로 상용으로 소스를 일절 사용할수 없습니다. 물론 어디서든 어떤 개인이던지 빌드된 바이너리를 사용하는 것은 문제가 되지 않지만, 재배포를 할수는 없습니다. 이 프로그램은 일단 전문가가 아니더라도 아무 사진이나 화사한 사진을 만들수 있도록 하자는 취지로 만들어진 것이며, 다음 알고리즘을 기반으로 만들어 졌습니다.Drago's log mappingReinhard's HDRCLAHE 위 알고리즘은 대부분의 오픈소스 이미지 처리 부분에서 많이들 사용하고 있으나, 은근히 공개프로그램 등에서는 사용되지 않는 것들 입니다. 그래서 간단히 윈도우나 맥(현재 개발이 끝나감) 에서 고가의 프로그램 ..
Windows 에서 BIOS dump 및 Parse (해석) 하기 소스코드 이 프로그램은 작년에 만들었던 것이나, 소스를 오픈 하고 있지 않다는걸 늦게 알아서 지금에서야 공개 하게 되었습니다. 공개된 위치는 다음과 같습니다. https://bitbucket.org/rageworx/rk_bios_dump 소스코드 자체는 MIT License 를 따르며, 내부에 사용된 코드들 중 WinBIOS info (winbiosinfo.h/cpp) 는 BIOS 규격을 공표하는 DMTF / DSP0132 ( 2011-01-26 ) version 2.7.1 의 System Management BIOS (SMBIOS) Reference Specification 문서를 참조로 개발 중 이었던 코드 입니다. 대부분의 표준 SMBIOS 를 parse 할 수 있으나, 일부 Phoenix 사 BIOS 들은..