Nios 기반 설계 디자인 콘테스트 수상작 리포트

기능 설명NiosII 보드의 SD CARD를 이용해 중요한 영상을 개인용 PC에서 SD CARD로 저장한다. SD CARD에 기록된 영상을 NiosII 보드에서 JPEG 영상 압축한 후 TFT-LCD 에 출력한다.성능 변수입력된 영상의 중요성을 판단하고 특정 물체를 트랙킹한 영상을 SD CARD에 저장해 데이터를 보관하고, NiosII 보드를 통해 SD CARD에 저장된 영상 이미지를 TFT - LCD에 출력한다.디자인 아키텍처JPEG 소프트웨어 플로우차트 및 알고리즘JPEG은 기본방식과 확장 방식이 있는데 기본방식은 1화소 1색 성분 당 8비트로써 시퀀셜 모드와 허프만 부호화로 이루어져 있다. 확장 방식은 보다 광범위한 응용에 대응하기 위해 제정된 것으로 1화소 1색 성분 당 8비트 또는 12비트이고, 시퀀셜 모드 또는 프로그레시브 모드, 허프만 부호 또는 산술 부호로 되어 있어 응용에 따라 모드를 선택할 수 있다.그림 8은 JPEG 인코딩 과정을 보여준다. DCT(Discrete Cosine Transform) 부호화 방식은 압축하는 측(부호화)에서의 입력 영상을 우선 8*8 화소의 블록으로 분해한다. 이 블록 단위에 DCT 연산을 행하고 여기서 얻어진 DCT 계수들을 DC(Direct Current: 직류) 성분과 AC(Alternate Current: 교류) 성분으로 나누어 독립적으로 양자화 한다. 양자화에 사용되는 양자화 테이블은 규정치가 존재하지 않으며 개별적으로 설정된다. 양자화 된 DCT계수 중 DC 계수는, 바로 앞 블록의 DC 계수를 예측치로 한 차분치를 부호화 하며, 나머지 AC 성분은 블록마다 지그재그 스캔에 의해 일렬로 나열한 후 부호화한다.디자인 설명Nios II 개발 환경그림 12와 같이 SOPC 빌더를 이용해 필요한 사양에 맞춘 요소를 추가시켜 시스템을 구성하고 제너레이션 한 결과 그림 13과 같이 정상적으로 시스템이 제너레이션 되었다. 그림 14는 생성된 시스템의 전체적인 블록도를 나타내고 있다.Nios II Processor Core는 코어의 빠른 속도를 이용해 빠른 시간 내에 영상을 압축하고 처리하기 위해 Nios II/f를 사용하였다. 표 1에서는 Nios II Processor Core의 종류별 특징이 나타나 있다.생성된 시스템을 Quartus II에서 컴파일 한 결과 그림 15와 같은 시스템 사양이 나타났다.Total Logic Elements는 27%를 사용하였으며, Pin은 전체의 36%를 사용하고, Memory bits는 59%가 사용되었다. 그림 16, 17은 디자인된 SRAM 컨트롤러와 TFT-LCD 컨트롤러를 보여준다.- 입력 포트fsync = 입력 이미지 동기화vclk = 데이터 출력 클럭lvalid = 라인 값- 출력 포트ntpld[2] = 인터럽트 생성address[17..0]= SRAM 주소 저장S_data[15..0] = SRAM 데이터 저장S_cs = SRAM 칩 셀렉트S_oe = SRAM 출력 이네이블S_we = SRAM 쓰기 이네이블- Output portbled_o = 백라이트 온/오프 lcd_de = LCD 데이터 이네이블lcd_data[15..0] = RGB[5:6:5] lcd_mclk = LCD 클럭이미지 프로세싱의 개발환경듀얼 카메라의 장점: 항공기에 줌 카메라를 설치하는 것은 크기와 무게의 증가로 인해 많은 제약이 있다.따라서 두 개의 렌즈를 사용해 줌 카메라의 약점을 보완해야 한다. 그림 18은 듀얼 카메라에 의한 이미지 프로세싱을 보여준다.디자인 특징비행 안전성 시험안정적이며 신속한 자동·수동 전환을 위해 CPLD를 사용한 스위치를 구현했다. CPLD는 비교적 간단히 사용할 수 있는 GAL16V8 칩을 사용했고, 자동·수동 변환은 RC조종기 5 번 채널을 통해 이루어진다. 자동·수동 변환에 따라 두 개의 LED를 각각 점등시킴으로써 육안으로 상태를 확인할 수 있도록 하였다. 그림 19는 구성된 CPLD를 시뮬레이션으로 테스트한 결과이다.사용자 인터페이스 프로그램(그림 20)① : 하드웨어 시스템과 연동하기 위한 시리얼 통신 부분이며 시리얼 통신은 비동기 통신을 이용해 데이터를 송·수신 한다.② : 기체의 이동 상황을 판단하기 위한 부분이며 기체의 이동을 선으로 표시했다. 눈금 크기의 확대·축소가 가능하므로 목표 지점과의 오차를 인식할 수 있으며, 목표점의 위치를 표시해 임무 수행 여부를 판단할 수 있다.③ : 기체의 실시간 고도 상태를 판단하며 기체의 고도를 선으로 표현하였다.④ : 3D 프로그램과 연동해 기체의 기울기 및 고도를 3D 모션으로 쉽게 알아볼 수 있다.⑤ : OpenGL 프로그램을 이용해 기체의 기울기 및 방향을 확인 할 수 있다.⑥ : 기체에서 수신된 GPS 데이터를 출력하는 부분이며 목표 지점을 입력해 기체에 송신한다. 또한, 카메라에서 트랙킹 된 물체의 좌표를 GPS 데이터와 연동해 출력한다.⑦ : 기체 제어 버튼이며 GPS 모듈의 ON·OFF, 자동·수동 전환, 영상 카메라 위치 조종, 카메라 화각 조종을 담당한다.SOPC의 주요 역할항공 촬영된 영상을 SOPC(Nios II)를 이용한 JPEG압축 기술을 사용해 관측자가 보다 많은 영상을 수집하고 임무 수행을 원활히 할 수 있도록 지원한다. 여기서 SOPC를 이용한 영상 압축 기술은 항공 촬영된 영상의 복호 처리와 수집된 영상의 부호처리를 담당한다. 그림 22는 SOPC의 특별한 역할을 보여주고 있다.시스템은 이미지를 실시간으로 수집해 SD 카드에 저장한다. 저장된 이미지는 Nios II 보드를 통해 JPEG으로 압축된다. 최종적으로 압축된 이미지는 TFT-LCD에 출력된다.디자인 과정에서 배우게 된 점결론 - Nios 보드의 편리한 JTAG 디버깅 모듈을 사용할 수 있어 많은 도움이 되었으며 보드를 통해 많은 실험을 할 수 있었다. - 프로그램을 메모리로 다운로드 할 수 있으며 실행을 가동하고 지정시킬 수 있었다 . Breakpoint, Watchpoint를 설정할 수 있어 디버깅하기 용이했으며, 레지스터와 메모리를 분석할 수 있어서 데이터를 참조하기 편리했다. - NiosII IDE는 프로젝트 Template의 형태로 소프트웨어 코드 예제를 제공해 시스템을 보다 빨리 구축할 수 있도록 해주었다. - 실시간 커널인 MicroC/OS-II 가 개발 키트와 함께 공급되어 편리하게 사용할 수 있었다. - 개발 동영상을 제공해 주어 처음 개발을 시작할 때 많은 도움이 되었다.앞으로의 계획개발 키트는 내장된 플래시 메모리를 가지고 있지만 MPEG을 JPEG으로 압축하는 우리의 프로젝트를 위해서는 그 크기가 매우 작다. 앞으로 우리는 외부 메모리를 사용해 비디오 압축을 이용한 항공사진을 구현할 예정이다.
회원가입 후 이용바랍니다.
개의 댓글
0 / 400
댓글 정렬
BEST댓글
BEST 댓글 답글과 추천수를 합산하여 자동으로 노출됩니다.
댓글삭제
삭제한 댓글은 다시 복구할 수 없습니다.
그래도 삭제하시겠습니까?
댓글수정
댓글 수정은 작성 후 1분내에만 가능합니다.
/ 400
내 댓글 모음
저작권자 © 테크월드뉴스 무단전재 및 재배포 금지