본문 바로가기

프로그래밍 기록

(49)
CUDA 코어를 활용한 JEM 디블로킹 필터 병렬화 CUDA 코어를 활용하여 차세대 비디오 코덱 표준 프로그램 JEM에서의 루프 필터링 병렬화 1 JEM에서의 디블로킹 필터 CUDA 화 과정 Jem에서의 디블로킹 필터를 담당하는 클래스인 TComLoopFilter 이며 이는 인코더와 디코더가 모두 활용하는 COM 프로젝트에 속한 클래스로 QTBT구조로 재귀적으로 분할을 한 뒤에 해당엣지를 필터링하게 된다. 이때 CUDA에서 host와 device간 정보 전달에 사용하는 cudaMemcpy는 비용이 높은 작업이다 따라서 CU 단위에서 CUDA함수를 호출하기 위해 CU단위에서 cudaMemcpy를 사용하게 되면 수많은 cudaMemcpy가 호출되어 성능 하락 확실시된다. 따라서 본 논문에서는 xDeblockCU에서는 필터링을 해야 할 픽셀정보를 저장하고 xD..
스마트폰을 활용한 VR 게임 컨트롤러 최근 VR의 시장이 커지고 다양한 VR 컨텐츠가 발매 되고 있으며 그에 따른 컨트롤러들도 많이 출시가 되고 있다. 대부분의 사람들이 가지고 있는 스마트폰에는 VR 컨트롤러로 이용하기 적절한 센서들이 많이 존재한다. 이를 이용하여 PC와 스마트 폰을 연동하고 센서 정보를 이용하기 위해 네트워크 통신부와 센서정보 통신부를 정의하였으며 HMD에 출력하기 위한 HMD 출력부를 정의하여 VR 컨텐츠를 즐길 수 있는 컨트롤러의 구조를 설계하고 직접 구현하였다.언리얼엔진을 통하여 게임을 구축하고 해당 VR 컨트롤러를 이용하여 테스트를 진행하였다. 해당 프로젝트로 교내 창의적 종합설계 경진대회 은상을 수상하였다.
다양한 VR기기를 통한 익스트림 바이크게임 제작 HMD, Kinect 그리고 직접 제작한 방향 컨트롤러를 통하여 익스트림 스포츠 중 하나인 바이크를 실감나게 체험할 수 있는 게임을 제작하여 몰입감 있는 VR 콘텐츠를 제작하는 것을 목표로 시야부터 손동작, 발동작까지 모두 활용하는 몰입감있는 게임을 만드는 것이 목적이었다. 오큘러스는 기본적으로 연결만 되면 유니티에서 지원해주므로 시야각을 조절하여 몰입감을 높이는 작업을 하였고 Kinect를 통하여 발동작을 검출하였다. 처음으로 시도한 것은 Unity Engine Asset Store에서 무료로 공개되어 있는 Kinect Framework를 이용하여 발 Joint Vector를 검출해 높이를 측정, 발 구르는 동작을 감지하려 했으나 앉은 상태에서 상체를 감지하는 것은 간단히 성공한 반면 정작 다리는 제대..
Chai 3D 활용한 프로그램 제작 일학년때 방학이 끝나고 수업듣다가 당시 교수님이 해볼생각없냐고 추천하셔서진행했던 프로젝트Chai 3D API를 이용하여 그때 컨트롤했던 기기가 오메가 였나..?아무튼 처음으로 프로그래밍을 하고 돈을 받아봤던 기억..실험프로그램이라 자세한 내용은 생락..
OGRE 3D 를 통한 미니게임 컴퓨터공학과에 처음 진학하고빡센 동아리 교육을 들어면서 사실상 처음 진행한 프로젝트...해당 프로젝트로 동아리에 남느냐 마느냐 하는게 정해졌는데 당시에 유니티같은 뚝딱뚝딱 만드는 게임은 인정안해준다고 OGRE 3D로 프로젝트를 진행하게되었다. 소켓통신을 이용해서 2명이 플레이하는 미니게임(이라고 해봐야 2개)을 제작했는데달리기랑 폭탄피하기였다.너무 오래전이라 잊고 있었는데 우연히 당시 찍었던 사진을 보니 추억이 새록새록
Pixtree 인코더 관리 페이지 제작 Ajax 를 통하여 주기적으로 페이지 정보를 갱신하고 SNMP 와 WebSocket를 사용하여 인코더 Trap메시지를 확인함 Django 를 이용하여 Pixtree에서 사용하는 인코더들을 관리하고 로그 등을 확인하는 웹 페이지를 제작하였습니다. 인턴을 진행할 당시에 작업하였고 인턴이 끝난 직후 추가 기능 요청이 들어와 외주 형식으로 작업을 진행하였습니다. DB의경우 별도의 DB 서버를 사용하고 있어 해당 서버로 데이터를 JSON 형식으로 주고 받아 사용하였고 뷰의 경우 확정된 뷰가 나오기 전에 프로젝트를 시작하여 컨트롤러와 뷰를 직접 만들고 추후에 확정된 뷰에 맞게 업데이트 하였습니다. 간단한 SNMP 를 사용하여 인코더의 정보를 수집하고 인코더에서 Trap이 발생하면 이를 사용자에게 실시간으로 알려주기..
Polimer NodeJS 와 firebase 를 이용하여 정치 SNS 서비스 폴리머 서버 개발 Polimer는 정치, 사회, 경제 이슈에 대한 시민의 의견을 모으는 소셜 정치 플랫폼입니다. 해당 프로젝트에서 NodeJs와 firebase를 통한 백엔드 와 프론트엔드의 일부를 담당하였습니다. Admin 페이지에서는 복수의 카드뉴스이미지를 업로드 할 수 있도록 하였고 일반 사용자 페이지에서는 페이스북, 네이버 등을 활용한 소셜 로그인 기능과 즐겨 찾기 기능, 그리고 댓글과 관련한 다양한 기능 등을 구현하였습니다. NoSQL 형태의 firebase의 DB에 적응하는데 시간이 좀 걸렸으며 개발 도중 회원가입등에서 변경사항이 다수 존재하여 이를 수정하는데 많은 시간이 소모되었습니다 ps. 석사 진학후 참여율 문제때문에 중도 ..
수협 중앙회 관리 페이지 제작 CodeIgniter 프레임워크를 이용하여 통신소, 중계소 관리 및 시스템 리소스 관리 페이지 제작 C++ 프로그램과 PHP 쉘 프로그램 통하여 시스템 리소스 확인 PHP 기반의 웹 프레임워크 CodeIgniter를 이용하여 웹 페이지를 제작하였습니다. 통신국, 중계소의 관리와 시스템상의 로그, CPU, RAM, HDD 사용량 등을 실시간으로 확인 할 수 있는 관리 페이지로 뷰를 제외한 컨트롤러와 모델을 담당하였습니다. DB는 MySQL을 OS 는 Linux를 사용했습니다. DB 와 Linux를 사용해본적이 없어 걱정이 되었으나 DB자체는 복잡하지 않은 구조였고 Linux도 rsyslog를 사용하는 것 외에는 큰 어려움은 없어 DB 와 Linux 를 사용해보는 좋은 경험이 되었습니다. 시스템 정보를 출력..