본문 바로가기

오픈 소스

(9)
보케 효과를 만들어 보기 #2 - 성능향상 이 글은 이전 "보케 효과를 만들어 보기 #1" 에 이어지는 글 입니다. 혹시 이 글을 이전 글 보다 먼저 보신 분은 먼저 앞선 글을 읽고 오시면 더 이해 하시기 편할 것으로 예상 됩니다. 향상된 보케(빛망울) 효과 이전 글 에 소개된 보케효과 알고리즘은 0.1 초판으로서 현재 마지막 0.1.7.31 버젼에 비해 많은 것들이 모자란 버젼 이었습니다만, 그간 짬짬히 여러 문제를 수정 하고 성능을 비약적으로 향상 하여 근대의 다중 코어 CPU ( x86 및 ARM 계열 모두 해당 됨 ) 들에서 가장 효과적인 구동을 하도록 발전 하였습니다. 그 중 몇가지 수정 사항은 먼저, 효과를 적용하면서 발생하던 메모리 누수 ( 제 실수 였습니다만 ) 를 제거 하고, OpenMP 의 효과적인 구동으로 각 CPU threa..
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 Imaging 오픈 소스 (libsrcnn) 공개 이전에 Super-Resolution Imaging 관련으로 관심을 가졌다가, 오래전에 공개 되었던 한 홍콩의 대학쪽에서 공개된 논문과 소스코드를 이번에 손을 보게 되었습니다. 이전에 fl_imgtk 에 Lanczos3 까지 초 고속으로 구현을 해 보았던지라, 이번 Super-Resolution (이하 SR) 은 어렵지 않게 구현을 할 수 있을 거로 추측을 해 봤습니다만, 결론적으로 대단히 쉽지 않은 부분이 많았습니다. 특히 지속적으로 32 에서 64번씩 반복되는 커널 매트릭스 구조는 도저히 속도를 개선 하는데 쉽지 않은 부분이었습니다만, 그럼에도 만들어진 영상의 품질은 아마 현존하는 이미지 리사이즈 알고리즘 중에서는 최고봉이 아닐까 합니다. 아무래도 Lanczos3 와 같은 리사이즈 엔진은 인간의 눈으..
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 들은..
FLTK 이미지 툴킷, fl_imgtk 공개 그간 다른용도로(?) 쓰기 위해 만들어 오던 FLTK 용 이미지 처리 엔진의 일부인 fl_imgtk 를 공개 하였습니다. 소스는 github 에서 받으실 수 있으며, 누구나 제한없이 사용 가능한 MIT License 를 적용하고 있습니다. (물론 원래 소스들에 대해서는 각자 따로 기재 해야 하는 제한이 있을 수 있습니다) https://github.com/rageworx/fl_imgtk 소스코드는 gcc 나 llvm-gcc, 아니면 MinGW-W64 만 make 로 빌드 할 수 있도록 지원 합니다만, 별도로 프로젝트 파일을 만들어서 M$VC 등에서도 사용은 가능하나, 아마 FLTK 를 M$VC 에서는 쓰지 않을것으로 보입니다. QT 를 M$VC 에서 개발하지 않는 것처럼요. fl_imgtk 가 현재 지원..
HTTP/1.1 의 POST 때문에 살짝 고민한 문제 .... 이전에 만든 HTTP/1.0 용 socket source 를 POST 까지 되도록 버그를 수정 하면서 HTTP/1.1 으로 호환되게 변경 하다 보니 알수 없는 문제를 격었습니다. 바로 해당 서버(Apache2 + PHP5) 에서 $_POST[x] method 를 이용해서 넘어 온 것이 없는 듯이 인식 한다는 점 이었습니다만, 여러번의 시도 중 다음 header 인자가 중요하다는 것을 알았습니다. 바로 Content-Type 이 문제 였습니다. PHP5 에서 제대로 POST 되는 내용을 알려면 Content-Type 을 application/x-www-form-urlencoded 로 써야 인식을 하는 것 이었습니다. 기존엔 text/html 로 mime 을 지정해서 보냈더니 이걸 인식 못하는 문제를 이제 ..
Mercurial HG 사용자 (username) 지정 하기. + lightpackkr ... Mercurial HG 를 처음 접하다 보니, 다음과 같이 소스를 수정 한 다음 commit 을 할떄 오류가 나더군요.username 을 지정하라 ?보통 CVS 나 SVN 에서는 내부에 숨김 디렉토리가 생기고, 이 안에 정보가 포함 되던데, HG는 이런 부분이 다른가 봅니다.일단 하라니 해야겠으니, hg help config 에서 설명 하는데로, 먼저 Mercurial 이 설치된 곳으로 이동 합니다. 저의 경우는 Windows7 64ibit 이므로 다음과 같이 이동 했습니다.(C:\Program Files\Mercurial)여기서 Mercurial.ini 파일을 열고 다음과 같이 항목을 추가 합니다.이중, ui session 이 이미 있으신 분은 추가 되거나 수정 되는 정도 이겠습니다.이제 commit ..
libRTEA rev0.2 : TEA 인코딩/디코딩 C++ class 저번주에 올렸던 libRTEA 에 몇가지 버그가 있는 것을 수정하고, 기능을 추가 하였습니다. 혹시라도 사용하신 분이 계시다면 이것으로 업데이트 해 쓰시면 좋겠습니다. 바뀐 헤더는 다음과 같으며, HexChar 라는 것이 추가 되었습니다. 위 캡쳐 이미지 처럼 문자열/바이트 배열 을 Hex 값을 표시하는 문자열로 처리 해 주는 기능 입니다. 활용도는 암호화 데이터를 ASCII 내에서 처리 할 수 있도록 뭔가 만들 수 있게 해 주는 정도 이겠습니다.