KR101226544B1 - Dsp와 fpga를 이용한 jpeg2000 압축 설계 방법 및 장치 - Google Patents

Dsp와 fpga를 이용한 jpeg2000 압축 설계 방법 및 장치 Download PDF

Info

Publication number
KR101226544B1
KR101226544B1 KR1020110038526A KR20110038526A KR101226544B1 KR 101226544 B1 KR101226544 B1 KR 101226544B1 KR 1020110038526 A KR1020110038526 A KR 1020110038526A KR 20110038526 A KR20110038526 A KR 20110038526A KR 101226544 B1 KR101226544 B1 KR 101226544B1
Authority
KR
South Korea
Prior art keywords
dsp
fpga
data
coder
image
Prior art date
Application number
KR1020110038526A
Other languages
English (en)
Other versions
KR20120120767A (ko
Inventor
유제택
현명한
남주훈
Original Assignee
국방과학연구소
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 국방과학연구소 filed Critical 국방과학연구소
Priority to KR1020110038526A priority Critical patent/KR101226544B1/ko
Publication of KR20120120767A publication Critical patent/KR20120120767A/ko
Application granted granted Critical
Publication of KR101226544B1 publication Critical patent/KR101226544B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Abstract

본 발명은 임베디드 시스템에서 효율적인 DSP/FPGA 분산설계 방법을 사용하여 DSP에서의 영상압축 연산량을 FPGA로 분산시켜 영상 압축 속도를 증가시키는 DSP와 FPGA를 이용한 JPEG2000 압축 설계 방법 및 장치에 관한 것으로, (a) PC로부터 PCI(Peripheral Component Interconnect)나 JTAG(Joint Test Action Group)을 통해 DSP로 raw 디지털 영상 데이터를 전송받거나, 외부 카메라로부터 NTSC 영상을 비디오 디코더를 통해 생성된 raw 디지털 영상 데이타(raw video data, YUV422)를 FPGA(Field Programmable Gate Array)와 제1 FIFO를 통해 DSP로 입력받아 메모리(SDRAM)에 저장하는 단계; (b) DSP가 raw 디지털 영상 데이타를 입력받은 후, JPEG2000 영상 압축복원을 처리하며, DSP로부터 제2 FIFO를 통해 FPGA로 MQ-코더를 실행하기 위한 이진 산술 데이타를 제공하고, 상기 FPGA의 MQ-코더로부터 DSP의 외부 메모리 인터페이스인 버퍼를 통해 MQ-코더의 처리 데이타를 DSP로 수신하여 영상 데이타의 압축 및 복원하며, 영상 데이터를 DSP와 FPGA로 나누어져 병렬 처리되는 단계; 및 (c) DSP로부터 제2 FIFO를 통해 FPGA로 MQ-코더를 실행하기 위한 이진 산술 데이타를 수신한 후, FPGA가 컨텍스트 기반 적응적 이진 산술 MQ-코더(Context-based adaptive binary arithmetic MQ-coder)를 사용하여 이진산술 연산처리하고 처리 데이타를 메모리(SRAM)에 저장하며, 버퍼를 통해 MQ-코더의 처리 데이타를 상기 DSP로 제공하는 단계; 및 (d) DSP와 FPGA의 병렬처리로 JPEG2000 알고리즘에 의해 영상이 압축된 후, JPEG2000 압축/복원 처리된 영상데이타를 메모리(SDRAM)로 저장하고, 이 압축된 영상들을 PCI를 통해 PC로 전송되거나, 제2 FIFO, FPGA, 비디오 인코더를 거쳐 NTSC 영상신호를 컴퓨터의 모니터로 출력하는 단계를 포함한다. 이에 따라, 개발된 FPGA의 MQ-코더는 일차적으로 JBIG2 테스트 벡터를 사용하여 성능을 검증하였고 최종적으로 실제 Lena 영상을 사용하여 성능을 검증하였다. 시뮬레이션 결과 소프트웨어 코더로만 구현한 것 보다 크게 압축시간을 단축하였음을 확인하였다.

Description

DSP와 FPGA를 이용한 JPEG2000 압축 설계 방법 및 장치{Co-design method and apparatus using DSP and FPGA for JPEG2000 Video Compression}
본 발명은 DSP와 FPGA를 이용한 JPEG2000 압축 설계 방법 및 장치에 관한 것으로, 보다 상세하게는 임베디드 시스템(Embedded System)에서 효율적인 DSP/FPGA 분산설계 방법을 사용하여 DSP(Digital Signal Processing)의 JPEG2000 영상압축 연산량을 FPGA(Field Programmable Gate Array)이 MQ-코더로 분산시켜 영상 압축 속도를 향상시키는, DSP와 FPGA를 이용한 JPEG2000 압축 설계 방법 및 장치에 관한 것이다.
현장 프로그래머블 게이트 어레이(Field Programmable Gate Array, 이하 FPGA라고 칭함)는 프로그래머블 논리 요소와 프로그래밍가능 내부선이 포함된 반도체 소자이다. 프로그래머블 논리 요소는 AND, OR, XOR, NOT, 더 복잡한 디코더나 계산기능의 조합 기능 같은 기본적인 논리 게이트의 기능을 복제하여 프로그래밍한다. 대부분 FPGA는 프로그래밍가능 논리 요소(FPGA 식으로는 논리 블록이라고도 함)에 간단한 플립플롭이나 더 완벽한 메모리 블록으로 된 메모리 요소를 포함하고 있다.
최근, 멀티미디어의 사용이 증가함에 따라 인터넷과 디지털 기기에 사용되는 이미지 또한 고품질의 화질을 요구하게 되었다. 현재 정지영상 압축의 표준인 JPEG은 영상을 8x8 블록으로 분할하여 DCT(Discrete Cosine Transform)를 취한 후에 압축과정을 수행하기 때문에 고압축을 할 경우 블록화 현상이 심하게 일어나는 단점을 가지고 있다.
이에 따라 새로운 표준안으로 JPEG2000이 제정되었는데,JPEG2000은 현존하는 표준안보다 왜곡율과 특정 부분의 이미지 품질을 한 차원 높일 뿐만 아니라 압축의 효율성 면에서도 훨씬 더 우수하다. 무손실과 손실압축, 큰 이미지 압축, 화소의 정밀도와 해상도의 차이에 의한 점진적 전송, 관심영역(ROI:Region Of Interest) 지정 및 처리 등은 JPEG2000의 특징 중에 하나이며 응용분야는 의료영상, 인터넷 영상, 원격 탐사, 영상저장, 그래픽스 및 컴퓨터 합성영상, 팩시밀리, 인쇄 및 출판영상, 레이저인쇄, 디지털카메라, 스캐너 및 디지털 복사기, 경제 문서, 보안용 카메라, 지구영상처리, 사진 및 미술품의 디지털 도서관 등 자연영상, 과학영상, 의료영상, 원격탐사 영상, 문서 영상, 그래픽 영상 등과 같이 서로 다른 특성을 갖는 다양한 형태의 정지영상에 점점 더 활용도가 높아지고 있다.
하지만, JPEG2000은 이러한 장점들을 부여하기 위해 이전 JPEG 보다 훨씬 많은 연산량과 메모리를 필요로 하게 되었고, 하드웨어로 구현 시에 압축속도에 많은 부담감을 가지고 있다.
그러나, JPEG2000은 NTSC(National Television System Committee, 미국의 TV 방송 규정·방식을 결정하는 위원회) 영상의 낮은 비트율에도 우수한 압축효율, 손실/무손실 압축지원, 연속톤과 이진 영상압축, 대용량 영상압축, 다양한 영상 컴포넌트 입력, 점진적 영상전송, 관심영역 코딩, 영상의 임의 접근, 객체 기반 활용, 에러 내성, 보안성 등에서 뛰어난 장점을 지니고 있지만, 기존의 JPEG보다 훨씬 많은 연산량과 메모리를 필요로 하고 있으므로, 하드웨어 구현이나 특히, 공간적, 성능적 제약을 가지고 있는 임베디드 시스템(Embedded System)에 적용하기에 많은 어려움이 있었다.
상기 종래 기술의 문제점을 해결하기 위한 본 발명의 목적은 여러 가지 제약사항들이 발생될 수 있는 임베디드 시스템에서 효율적인 DSP/FPGA 분산설계 방법을 사용하여 DSP에서 JPEG2000 영상압축 연산량을 FPGA의 MQ-코더로 분산시켜 영상 압축 속도를 증가시키고, DSP에서 처리되는 영상/압축복원 알고리즘을 효과적으로 구현하도록 타겟 보드인 파이프라인을 지원하는 고성능의 디지털 신호처리(Digital Signal Processing, 이하 DSP라고 칭함) 보드로 JPEG2000, H.264와 같이 연산량을 많이 필요로 하는 멀티미디어 알고리즘 구현에 적합한 TMS320C6416을 사용하고, FPGA로 내부 메모리와 함께 DSP 블록을 내장하여 영상처리 등의 신호처리 알고리즘을 빠르게 수행하는 StratixII를 사용하는, DSP와 FPGA로 설계된 영상압축 장치를 제공한다.
또한, 본 발명의 다른 목적은 DSP와 함께 FPGA에서 co-processing 할 부분은 JPEG2000 알고리즘 가운데 계산량이 많으면서도 FPGA 상에 구현되기 적합한 알고리즘인 MQ-코더 부분을 소프트웨어 profiling 작업을 거쳐 선정하였으며, 이를 VHDL(VHSIC Hardware Description Languae) 언어를 사용하여 병렬 처리에 적합하도록 설계한 FPGA 기반의 MQ-코더를 제공하는, DSP와 FPGA를 이용한 JPEG2000 압축 설계 방법을 제공한다.
상기 본 발명의 목적을 달성하기 위해, DSP(Digital Signal Processing)와 FPGA(Field Programmable Gate Array)를 이용한 JPEG2000 압축 설계 장치는 카메라로부터 원래 영상 데이타(raw video data)를 입력받아 A/D변환하여 raw 디지털 영상 데이타(YUV422)를 제공하는 비디오 디코더; 이진 산술 데이타를 입력받아 컨텍스트 기반 적응적 이진 산술 MQ-코더(Context-based adaptive binary arithmetic MQ-coder)를 사용하여 이진산술 연산처리 기능을 제공하는 현장 프로그래머블 게이트 어레이(FPGA:Field Programmable Gate Array); 상기 FPGA에 연결되고, 상기 MQ-코더의 소프트웨어를 저장하는 플래시 메모리; 상기 FPGA에 연결되고, raw 디지털 영상 데이타(raw video data)를 저장하는 SRAM; 상기 FPGA에 연결되고, 전체 시스템 클럭을 재생하는 삭제 및 프로그래밍가능한 로직 디바이스(EPLD:Erasable Programmable Logic Device); 상기 FPGA에 연결되고, 임베디드 시스템 개발시 디버깅 장비로 사용되고 외부 소프트웨어를 포팅하기 위한 제2 JTAG; 컴퓨터의 모니터로 비디오 데이타를 D/A변환하는 비디오 인코더; JPEG2000 영상 압축복원을 처리하며, 병렬처리로 상기 FPGA의 MQ-코더를 실행하기 위한 이진 산술 데이타를 FIFO를 통해 제공하고 상기 FPGA의 MQ-코더로부터 버퍼를 통해 MQ-코더의 처리 데이타를 수신하여 영상 데이타의 압축 및 복원하는 DSP; 선입선출 방식으로 Raw 디지털 영상을 상기 FPGA로부터 DSP로 제공하는 제1 FIFO; 선입선출 방식으로 상기 MQ-코더를 실행하기 위한 이진산술 데이타를 DSP로부터 상기 FPGA로 제공하는 제2 FIFO; 상기 FPGA의 MQ-코더의 처리 데이타를 DSP로 제공하는 버퍼; 상기 DSP에 연결되고 JPEG2000 압축/복원 처리된 영상데이타를 저장하는 SDRAM; 상기 DSP에 연결되고, JPEG2000 코덱 소프트웨어를 저장하는 플래시 메모리; 상기 DSP에 연결되고, PC의 CPU와 주변 장치를 연결하는 로컬 버스로 사용되는 PCI(Peripheral Component Interconnect); 상기 DSP에 연결되고, 임베디드 시스템 개발시 디버깅 장비로 사용되고 외부 소프트웨어를 포팅하기 위한 제1 JTAG(Joint Test Action Group); 및 상기 DSP에 연결되고, 내부 시스템 클럭을 분주하여 제공하는 PLL(Phase Looked Loop)을 포함한다.
상기 본 발명의 다른 목적을 달성하기 위해, DSP와 FPGA를 이용한 JPEG2000 압축 설계 방법은 (a) PC로부터 PCI(Peripheral Component Interconnect)나 JTAG(Joint Test Action Group)을 통해 DSP로 raw 디지털 영상 데이터를 전송받거나, 외부 카메라로부터 NTSC 영상을 비디오 디코더를 통해 생성된 raw 디지털 영상 데이타(raw video data, YUV422)를 FPGA(Field Programmable Gate Array)와 제1 FIFO를 통해 DSP로 입력받아 메모리(SDRAM)에 저장하는 단계; (b) 상기 DSP가 상기 raw 디지털 영상 데이타를 입력받은 후, JPEG2000 영상 압축복원을 처리하며, 상기 DPS로부터 제2 FIFO를 통해 상기 FPGA로 MQ-코더를 실행하기 위한 이진 산술 데이타를 제공하고, 상기 FPGA의 MQ-코더로부터 DSP의 외부 메모리 인터페이스인 버퍼를 통해 MQ-코더의 처리 데이타를 상기 DSP로 수신하여 영상 데이타의 압축 및 복원하며, 영상 데이터를 상기 DSP와 상기 FPGA로 나누어져 병렬 처리되는 단계; 및 (c) 상기 DSP로부터 제2 FIFO를 통해 상기 FPGA로 MQ-코더를 실행하기 위한 이진 산술 데이타를 수신한 후, 상기 FPGA가 컨텍스트 기반 적응적 이진 산술 MQ-코더(Context-based adaptive binary arithmetic MQ-coder)를 사용하여 이진산술 연산처리하고 처리 데이타를 메모리(SRAM)에 저장하며, 상기 버퍼를 통해 MQ-코더의 처리 데이타를 상기 DSP로 제공하는 단계; 및 (d) 상기 DSP와 FPGA의 병렬처리로 JPEG2000 알고리즘에 의해 영상이 압축된 후, JPEG2000 압축/복원 처리된 영상데이타를 메모리(SDRAM)로 저장하고, 이 압축된 영상들을 PCI를 통해 PC로 전송되거나, 제2 FIFO, FPGA, 비디오 인코더를 거쳐 NTSC 영상신호를 컴퓨터의 모니터로 출력하는 단계를 포함한다.
이상에서 설명한 바와 같이, 본 발명에 따른 DSP와 FPGA를 이용한 JPEG2000 압축 설계 방법 및 장치는 임베디드 시스템에서 효율적인 DSP/FPGA 분산설계 방법을 사용하여 DSP에서 JPEG2000 영상압축 연산량을 FPGA의 MQ-코더로 분산시켜 병렬처리로 동작함으로써 DSP에서 처리되는 JPEG2000 알고리즘을 효과적으로 구현하여 영상 압축 속도를 향상시키고, FPGA에 구현된 MQ-코더의 성능을 검증하기 위해 일차적으로 JBIG2 표준 테스트 벡터 및 실제 영상을 사용하여 성능을 검증했을 때, 제안된 MQ-코더는 기존의 소프트웨어 코더 보다 약 3배 정도 성능을 향상시키는 효과를 제공한다.
이에 따라, 개발된 FPGA의 MQ-코더는 일차적으로 JBIG2 테스트 벡터를 사용하여 성능을 검증하였고 최종적으로 실제 Lena 영상을 사용하여 성능을 검증하였다. 시뮬레이션 결과, 소프트웨어 코더로만 구현한 것 보다 크게 압축시간을 단축하였음을 확인하였다.
도 1은 본 발명에 따른 DSP와 FPGA를 이용한 JPEG2000 압축 분산설계 장치의 전체 시스템 구성도이다.
도 2는 본 발명의 일 실시예에 따른 실제 구현된 보드의 전면(부품면)을 나타낸 사진이다.
도 3은 본 발명의 일 실시예에 따른 실제 구현된 보드의 후면(솔더면)을 나타낸 사진이다.
도 4는 본 발명의 일 실시예에 따른 이진산술 부호화 및 복호화에 필요한 테이블을 나타낸다.
도 5는 FPGA의 VHDL 설계에 필요한 JPEG2000의 MQ코더의 인코딩 흐름도를 나타낸다.
도 6은 본 발명의 일 실시예에 따른 VHDL 설계에 필요한 레지스터를 보여준다.
도 7은 본 발명의 일 실시예에 따른 FPGA에 사용되는 VHDL MQ-코더 entity의 입력을 나타낸다.
도 8은 본 발명의 일 실시예에 따른 FPGA에 사용되는 VHDL MQ-코더 entity의 출력을 나타낸다.
이하, 본 발명의 바람직한 실시예를 첨부된 도면을 참조하여 그 구성과 동작을 상세하게 설명한다. 각 도면의 절차도에서 각각의 절차에 참조부호를 부가하거나 도면에서 구성요소들에 참조부호를 부가함에 있어서, 동일한 절차 및 구성요소에 대해서는 비록 다른 도면상에 표시되어 있더라도 동일한 부호를 부여하고 있음에 유의한다. 또한, 본 발명을 설명함에 있어, 관련된 공지의 기술 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하도록 한다.
또한, 이하에서는 본 발명의 바람직한 실시예를 설명하나 본 발명의 기술적 사상은 이에 한정되거나 제한되지 않으며 당업자에 의해 다양하게 변형 실시될 수 있다.
본 발명은 DSP와 FPGA를 이용한 JPEG2000 압축 분산설계 장치 및 방법에 관한 것이다.
도 1은 본 발명에 따른 DSP와 FPGA를 이용한 JPEG2000 압축 분산설계 장치의 전체 시스템 구성도이다.
본 발명에 따른 DSP와 FPGA를 이용한 JPEG2000 압축 설계 장치는 임베디드 시스템에서 효율적인 DSP/FPGA 분산설계 방법을 사용하여 DSP에서의 JPEG2000 영상압축 연산량을 FPGA(Field Programmable Gate Array, 현장 프로그래머블 게이트 어레이)로 MQ-코더의 기능을 분산시켜 영상 압축 속도를 증가시키고, DSP에서 처리되는 JPEG2000 영상 압축/복원 알고리즘을 효과적으로 구현하도록 타겟 보드의 DSP로 TMS320C6416을 사용하고, FPGA로 StratixII를 사용하였다.
DSP(Digital Signal Processing)와 FPGA(Field Programmable Gate Array)를 이용한 JPEG2000 압축 분산설계 장치는 카메라(12)로부터 원래 영상 데이타(raw video data)를 입력받아 A/D변환하는 비디오 디코더(13); 이진 산술 데이타를 입력받아 컨텍스트 기반 적응적 이진 산술 MQ-코더(Context-based adaptive binary arithmetic MQ-coder)를 사용하여 이진산술 연산처리 기능을 제공하는 현장 프로그래머블 게이트 어레이(FPGA:Field Programmable Gate Array)(14); FPGA(14)에 연결되고, MQ-코더의 소프트웨어를 저장하는 플래시 메모리(15); FPGA(14)에 연결되고, 원래 영상 데이타(raw video data, YUV422)를 저장하는 SRAM(16); FPGA(14)에 연결되고, 전체 시스템 클럭을 재생하는 삭제 및 프로그래밍가능한 로직 디바이스(EPLD:Erasable Programmable Logic Device)(20); FPGA(14)에 연결되고, 임베디드 시스템 개발시 디버깅 장비로 사용되고 외부 소프트웨어를 포팅하기 위한 제2 JTAG(21); 컴퓨터의 모니터(23)로 비디오 데이타를 D/A변환하는 비디오 인코더(22); JPEG2000 영상 압축복원을 처리하며, 병렬처리로 FPGA(14)의 MQ-코더를 실행하기 위한 상기 이진 산술 데이타를 제2 FIFO(18)를 통해 제공하고 FPGA(14)의 MQ-코더로부터 버퍼를 통해 MQ-코더의 처리 데이타를 수신하여 초당 30프레임의 영상 데이타의 압축 및 복원하는 DSP(24); 선입선출 방식으로 Raw 디지털 영상 데이타(YUV422)를 FPGA(14)로부터 DSP(24)로 제공하는 제1 FIFO(17); 선입선출 방식으로 MQ-코더를 실행하기 위한 상기 이진산술 데이타를 DSP(24)로부터 FPGA(14)로 제공하는 제2 FIFO(18); FPGA(14)의 MQ-코더의 처리 데이타를 DSP(24)로 제공하는 버퍼(19); DSP(24)에 연결되고 JPEG2000 압축/복원 처리된 영상데이타를 저장하는 SDRAM(25); DSP(24)에 연결되고 JPEG2000 코덱 소프트웨어를 저장하는 플래시 메모리(26); DSP(24)에 연결되고, PC의 CPU와 주변 장치를 연결하는 로컬 버스로 사용되는 PCI(Peripheral Component Interconnect)(10); DSP(24)에 연결되고, 임베디드 시스템 개발시 디버깅 장비로 사용되고 외부 소프트웨어를 포팅하기 위한 제1 JTAG(Joint Test Action Group)(11); DSP(24)에 연결되고, 내부 시스템 클럭을 분주하여 제공하는 PLL(Phase Looked Loop)(27)로 구성된다.
본 발명은 상기 DSP(24)에서 JPEG2000 영상 코덱에 의해 영상압축 연산량을 처리하며, 병목 현상이 일어나는 이진산술 데이타 부분에 대해 처리 속도를 증가시키도록 FPGA의 MQ코더로 분산시켜 영상 압축 속도를 향상시키기 위해 상기 FPGA(14)의 MQ-코더를 사용하였으며, VHDL 언어를 사용하여 병렬 처리로 이진산술 연산을 처리한다.
DSP와 FPGA를 이용한 JPEG2000 압축 설계 장치의 전체 시스템은 EPLD(Erasable Programmable Logic Device)에 의해 컨트롤 된다. DSP(24)와 비디오 디코더(13) 및 비디오 인코더(22), 전체 시스템 PLL(Phase Looked Loop)의 초기화는 DSP의 GPIO(General Purpose Input/Output, 범용 입출력)를 이용해 I2C 통신으로 설정된다. 시스템의 전원은 ATX(Advanced Technology Extended) 전원을 사용하였고, PC와 PCI(10)로 통신하기 위해 PCI Slot Type으로 PCB를 만들었다.
DSP와 FPGA를 이용한 JPEG2000 압축 분산설계 장치는 영상 입력의 경우, PCI(Peripheral Component Interconnect, PC의 CPU와 주변 장치를 연결하는 로컬 버스 규격)나 JTAG(Joint Test Action Group, 임베디드 시스템 개발시 사용하는 디버깅 장비)을 통해 PC에서 DSP(24)로 영상 데이터를 전송받거나 외부 카메라(12)로 NTSC 영상을 입력받을 수 있다. PC에서 직접 입력받게 되는 경우 디지털 형태의 데이터이기 때문에 Analog to Digital Converting 작업 없이 바로 영상 처리를 할 수 있다. 그러나 외부 카메라(12)로부터 NTSC 영상을 입력받게 되면, 비디오 디코더(13)를 통해 A/D변환되어 디지털 영상 데이타인 YUV422 포맷으로 디지털화 되고, FPGA(14), FIFO(17,18)를 거쳐 DSP(24)에 입력된다. 입력된 영상데이터는 DSP(24)를 통해 JPEG2000 알고리즘에 의해 영상 압축된 후, 이 압축된 영상들을 PCI(10)를 통해 PC로 전송되거나, FIFO(17,18), FPGA(14), 비디오 인코더(22)를 거쳐 NTSC 영상신호를 컴퓨터의 모니터(22)로 출력된다. 영상 입력을 받은 후 영상 데이터는 DSP(24)와 FPGA(14)로 나누어져 처리되고 DSP(24)와 FPGA(14) 사이의 통신은 DSP(24)의 외부 메모리 인터페이스를 사용하여 버퍼(19)를 통해 전송된다.
도 2는 본 발명의 일 실시예에 따른 실제 구현된 보드의 전면(부품면)을 나타낸 사진이고, 도 3은 본 발명의 일 실시예에 따른 실제 구현된 보드의 후면(솔더면)을 나타낸 사진이다.
DSP에서 처리되는 영상/압축복원 알고리즘을 효과적으로 구현하도록 타겟 보드의 DSP(Digital Signal Processing, 디지털 신호처리)는 파이프라인을 지원하는 고성능의 DSP는 JPEG2000, H.264와 같이 연산량을 많이 필요로 하는 멀티미디어 알고리즘 구현에 적합한 TMS320C6416을 사용하고, FPGA는 내부 메모리와 함께 DSP 블록을 내장하여 영상처리와 같은 신호처리 알고리즘을 빠르게 수행하는 StratixII를 사용하였다.
TMS320C6416은 fixed point 타입의 프로세서로 600MHz로 동작하며 SIMD(Single Instruction Multiple Data, 병렬 프로세서의 한 종류로, 하나의 명령어로 여러 개의 값을 동시에 계산하는 방식)와 super scalar 방식의 파이프라인을 지원하는 고성능의 DSP로 JPEG2000, H.264와 같이 연산량을 많이 필요로 하는 멀티미디어 알고리즘 구현에 적합한 프로세서이다.
StratixII FPGA는 내부 메모리와 함께 DSP 블록을 내장하고 있어서 영상처리와 같은 신호처리 알고리즘을 빠르게 수행할 수 있는 FPGA를 포함한다.
본 발명은 JPEG2000 영상 처리 분야에서 뛰어난 성능을 발휘하는 DSP를 주 Processor로 사용하였다. TMS320C6416은 Texas Instruments 社의 최신 고정소수점 (Fixed point) DSP이며, 핵심 연산 부분은 VelociTI.2 Advanced Very-Long-Instruction-Word(VLIW) Core를 사용하여 최대 8개의 명령을 1 사이클에 수행할 수 있다. 현재 최대 1GHz에서 8000MIPS, 1ns의 cycle time으로 동작하며, 본 발명에서는 600MHz, 4800MIPS, 1.67ns cycle time을 가진 DSP를 사용하였다. TMS320C64x는 1MB의 내부 메모리를 가지고 있으며 최대 1280MB의 외부 메모리를 이용할 수 있다. DSP(24)는 두 채널의 외부 메모리 인터페이스(EMIF, External Memory InterFace)를 가지고 있으며, EMIF-A는 64bit wide, EMIF-B는 16bit wide 이고. 최대 133MHz로 동작한다. 본 발명에서는 FIFO와의 동기를 위해 50MHz로서 동작시켰다.
본 발명은 DSP에서 JPEG2000 영상 코덱을 처리하면서 병목 현상이 일어나는 부분에 대해 처리 속도를 향상시키기 위해 FPGA(Field Programmable Gate Array)의 MQ-코더를 사용하였다. ALTERA 社의 EP1S20F672C6은 Stratix Device FPGA 로써 18,460개의 LE (Logic Element)를 가지고 있으며 총 426개의 I/O를 사용할 수 있다. 또한 총 1,669,248 Bit 의 내부 메모리를 가지고 있으며 영상 처리나 기타 신호 처리를 빠르게 할 수 있는 DSP 블록을 내장하고 있다.
JPEG2000에 사용된 산술코딩 방법은 컨텍스트 기반 적응적 이진 산술코더(Context-based adaptive binary arithmetic MQ-coder)인 MQ-coder를 사용하였다. 이것은 JBIG2에 사용된 것과 같다. 참고로, JBIG은 ISO/IEC 표준 11544, 및 ITU-T 권고안 T 82번으로 Joint Bi-level Image Experts Group이 표준화된 무손실 이미지 압축 표준이다, 현재 새로운 2값 이미지(흑백화상) 압축표준인 JBIG2가 나와 있으며, 기존 버전은 JBIG1이라고 불린다.
MQ-코더는 도 4에 도시된 바와 같이 각 심볼의 확률값을 비롯하여 총 4가지의 정보를 필요로 한다. I(CX)는 컨택스트의 확률값(Qe 값)의 현재 인덱스를, Qe(I(CX))는 확률값을, NMPS(I(CX))/NLPS(I(CX))는 MPS/LPS renormalization을 위한 다음 인덱스를, 그리고 SWITCH(I(CX))는 MPS(CX)의 구간 변경이 필요한 지를 나타내는 플래그 역할을 한다. JPEG2000 인코딩과 디코딩에는 같은 표를 사용한다.
도 4는 본 발명의 일 실시예에 따른 이진산술 부호화 및 복호화에 필요한 테이블을 나타낸다.
본 발명에 따른 DSP와 FPGA를 이용한 JPEG2000 압축 설계 방법은 (a) PC로부터 PCI(Peripheral Component Interconnect)(10)나 JTAG(Joint Test Action Group)(11)을 통해 DSP(24)로 raw 디지털 영상 데이터를 전송받거나, 외부 카메라(12)로부터 NTSC 영상을 비디오 디코더(13)를 통해 생성된 raw 디지털 영상 데이타(raw video data, YUV422)를 현장 프로그래머블 게이트 어레이(FPGA:Field Programmable Gate Array)(14)와 제1 FIFO(17)를 통해 DSP(14)로 입력받아 메모리(SDRAM)(25)에 저장하는 단계; (b) 상기 DSP(24)가 상기 raw 디지털 영상 데이터를 입력받은 후, JPEG2000 영상 압축복원을 처리하며, 상기 DPS(24)로부터 제2 FIFO(18)를 통해 FPGA(14)로 MQ-코더를 실행하기 위한 이진 산술 데이타를 제공하고, 상기 FPGA(14)의 MQ-코더로부터 DSP의 외부 메모리 인터페이스인 버퍼(19)를 통해 MQ-코더의 처리 데이타를 상기 DSP(24)로 수신하여 영상 데이타의 압축 및 복원하며, 디지털 영상 데이터를 상기 DSP(24)와 상기 FPGA(14)로 나누어져 병렬 처리되는 단계; 및 (c) 상기 DSP(24)로부터 상기 FPGA(14)로 MQ-코더를 실행하기 위한 이진 산술 데이타를 수신한 후, 상기 FPGA(14)가 컨텍스트 기반 적응적 이진 산술 MQ-코더(Context-based adaptive binary arithmetic MQ-coder)를 사용하여 이진산술 연산처리하고 처리 데이타를 메모리(SRAM)에 저장하며, 상기 버퍼(19)를 통해 MQ-코더의 처리 데이타를 상기 DSP(24)로 제공하는 단계; 및 (d) 상기 DSP(24)와 상기 FPGA(14)의 병렬처리로 JPEG2000 알고리즘에 의해 영상이 압축된 후, JPEG2000 압축/복원 처리된 영상데이타를 메모리(SDRAM)로 저장하고, 이 압축된 영상들을 PCI(10)를 통해 PC로 전송되거나, 제2 FIFO(18), FPGA(14), 비디오 인코더(22)를 거쳐 NTSC 영상신호를 컴퓨터의 모니터(23)로 출력하는 단계;를 포함한다.
상기 단계 (a)는 (a1) PC로부터 PCI(Peripheral Component Interconnect)(10)나 JTAG(Joint Test Action Group)(11)을 통해 상기 DSP(24)로 Raw 디지털 영상 데이터를 직접 입력받게 되는 경우 디지털 형태의 데이터이기 때문에 Analog to Digital Converting 작업 없이 바로 영상을 입력받는 단계; 및 (a2) 상기 외부 카메라(12)로부터 NTSC 영상을 입력받게 되면, 상기 비디오 디코더(13)를 통해 A/D변환되어 Raw 디지털 영상 데이타인 YUV422 포맷으로 디지털화 되고, FPGA(14), 제1 FIFO(17)를 거쳐 DSP(24)로 입력되는 것을 특징으로 한다.
도 5는 FPGA의 VHDL 설계에 필요한 JPEG2000의 MQ코더의 인코딩 흐름도를 나타낸다.
상기 FPGA(14)는 JPEG2000의 MQ-코더를 설계시에, 레지스터를 사용하여 상기 MQ-코더에 사용되는 네 가지의 일; 인코더의 상태 초기화; 현재 인코더의 컨택스트(CX) 지정하기; 입력 데이터의 다음 비트 인코딩; 입력 비트 스트림의 종료알림;을 설계한다.
상기 FPGA(14)는 상기 MQ-코더를 이용하여 데이터를 인코딩할 시에, 상기 레지스터를 초기화 하는 단계; 영상의 저주파 신호와 저주파 신호를 구분하는 임계값인 Decision bit(D)와 컨택스트(CX)를 읽는(Read(CX,D) pair) 단계; 상기 Decision bit(D)와 영상의 컨택스트의 최대 빈도 심볼(MPS(CX))을 비교하는 단계; D==MPS(CX)조건을 판단하여 D==MPS(CX) 조건을 만족하면 대부분 영상에 존재하는 영상의 저주파 신호에 대한 CodeMPS(More Probable Symbol)의 이진 산술 연산을 실행하고, D==MPS(CX) 조건을 만족하지 않으면 가끔 존재하는 영상의 고주파 신호에 대한 CodeLPS(Least Probable Symbol)의 이진 산술 연산을 실행하는 단계; 및 영상 데이타의 끝(end of data)이 확인되면, 압축된 최종 코드워드(CW)를 만들어내기 전에 가능한 많은 이진수 1 비트들을 register C에 채워넣기 위해 수행하는 "FLUSH register" 단계;를 포함한다.
MQ-코더의 인코딩 흐름도는 도 5와 같이 나타낸다. MQ-코더의 인코딩은 Decision bit(D)와 more probable symbol(MPS(CX))의 값에 따라서 "CodeMPS"(대부분 영상에 존재하는 영상의 저주파 신호에 대한 이진 산술 연산)와 CodeLPS"(가끔 존재하는 영상의 고주파 신호에 대한 이진 산술 연산)가 선택된다. 모든 심볼들이 처리된 뒤 압축된 최종 코드워드를 만들어내기 전에 가능한 많은 이진수 1 비트들을 register C에 채워넣기 위해 "FLUSH register" 과정이 수행된다.
FPGA(14)는 MQ-코더를 이용하여 데이터를 인코딩 및 디코딩 시에, 각 심볼의 확률값을 비롯하여 총 4가지의 정보; Qe 값의 현재 영상의 컨택스트에 대한 인덱스 I(CX); 영상 데이타에 존재하는 컨택스트의 확률값 Qe(I(CX)); MPS/LPS 재정규화(renormalization)을 위한 다음 인덱스 NMPS(I(CX))/NLPS(I(CX)); MPS(CX)의 구간 변경이 필요한 지를 나타내는 플래그 SWITCH(I(CX));를 포함하는 이진산술 부호화 및 복호화에 필요한 테이블(도4)을 사용하는 것을 특징으로 한다.
여기서, I(CX)는 현재 영상의 컨택스트(CX)에 대한 인덱스, MPS(CX)는 영상의 컨택스트의 최대 빈도 심볼, NMPS(I(CX))는 저주파 영상 데이타의 컨택스트 갯수, NLPS(I(CX)는 고주파 영상 데이타의 컨택스트 갯수, SWITCH(I(CX))는 MPS(CX)의 구간 변경이 필요한 지를 나타내는 플래그를 의미한다.
JPEG2000의 MQ-코더는 아래와 같은 4개의 task로 구성되어 있다.
▣ Initialize: 인코더의 상태를 초기화시킨다.
▣ Set Context: 현재 인코더의 컨텍스트(CX)를 정한다.
▣ Encode Bit: 입력 데이터의 다음 비트를 인코딩한다.
▣ Flush: 입력 비트 스트림의 끝을 알린다. JPEG2000은 'default'와 'predictable' 두 가지 종류의 종료를 지원한다.
JPEG2000 표준과 JPEG2000 코드를 분석하여 이 구조를 만족하도록 VHDL로 설계하는데 필요한 register는 도 6과 같이 표시하였다.
도 6은 본 발명의 일 실시예에 따른 VHDL 설계에 필요한 레지스터를 보여준다. 레지스터는 32 bits C(Code register, 압축 데이터를 생성), 32 bits A(산술코딩의 Interval register), 5 bits CT(Counter register, A와 C 레지스터의 shift 횟수), 1 bit MPS(현재 More Probable Symbol), 6 bits Index(현재 look-up table 인덱스), 8 bits B(출력 byte buffer, 다음 압축 바이트를 저장), 32 bits TempC(임시 C register), 5 bits K(Flush task에서 'predictable termination'에 사용됨)을 포함한다.
도 6에 확정된 레지스터들을 사용하여 JPEG2000에서 구현된 task 들을 구현하는데 주의해야 될 사항은, VHDL 언어의 장점을 발휘하여 모든 데이터 패스가 병렬처리가 가능하도록 설계하는 것이다. 이러한 점들을 고려하여 최종적으로 완성한 MQ-코더의 encoder entity의 입력과 출력은 도 7, 도 8과 같이 나타낸다.
도 7은 본 발명의 일 실시예에 따른 FPGA에 사용되는 VHDL MQ-코더 entity의 입력, 도 8은 본 발명의 일 실시예에 따른 FPGA에 사용되는 VHDL MQ-코더 entity의 출력을 나타낸다.
FPGA는 VHDL 언어를 사용하여 병렬 처리에 적합하도록 MQ-코더를 설계시에 MQ-코더 entity의 입력과 출력은 도 7과 도 8의 특징을 갖는 FPGA 기반의 MQ-코더를 사용한다.
도 7을 참조하면, FPGA 기반의 MQ-코더 entity의 입력(Input)은 1 bit nrset(Reset signal), 1 bit clock(System clock), 1 bit In_mps(More Probable Sysmbol), 6 bits In_index(Look-up table index), 1 bit In-bit(인코더 입력 비트), 1 bit predictTerm(default termination->0, predictable termination->1), 1 bit Init_do(인코더 초기화 task), 1 bit Set_Context_do(Set context task), 1 bit Encode_Bit_do(인코딩 task), 1 bit Flush_do(Flush task)를 포함한다.
도 8을 참조하면, FPGA 기반의 MQ-코더 entity의 출력(Output)은 8 bits byte_out_reg(압축 데이터), 1 bit enc_ready(인코더 idle->1, 인코더 bust->0), 1 bit byte_ready(새로운 데이터가 byte_out_reg에 저장되었을때 1클럭동안 '1'),
인코더의 내부 상태 표시(32 bits c_reg_out, 32 bits a_reg_out, 5 bits ct_reg_out, 1 bit mps_reg_out, 6 bits index_reg_out)를 포함한다.
임베디드 시스템에 효율적인 DSP와 FPGA 분산설계 방법을 제안하고 있다. 우선 표준안에 있는 JPEG2000 알고리즘을 상세히 분석하여 FPGA로 구현하는 것이 적합한 알고리즘을 MQ-코더 부분으로 정하였고, MQ-코더 알고리즘을 VHDL을 사용하여 FPGA에 구현할 수 있도록 하드웨어적인 관점에서 Register 부분까지 세밀히 분석하여 재구성하였다. 이렇게 함으로써 기존의 DSP로만 구현하는 것보다 더욱 우수한 성능을 달성하였다.
본 발명은 컴퓨터를 통해서 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다.
컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광데이터 저장장치 등이 있으며, 또한 케리어 웨이브(carrier wave)의 형태로 구현하는 것을 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고, 본 발명을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 세그먼트들은 본 발명이 속하는 기술분야의 당업자에 의해서 용이하게 추론될 수 있다.
이상에서 설명한 바와 같이, 이상에서는 본 발명의 바람직한 실시예를 예시적으로 설명하였으나, 본 발명의 범위는 이와 같은 특정 실시예에만 한정되는 것은 아니므로, 본 발명은 본 발명의 사상 및 특허 청구범위에 기재된 범주 내에서 다양한 형태로 수정, 변경, 또는 개선될 수 있을 것이며 본 발명의 보호 범위는 아래의 특허 청구범위를 기준으로 그와 동등한 범위 내에 있는 모든 기술 사상에 대해서까지 포함되는 것으로 해석되어야할 것이다.
10: PCI 11: 제1 JTAG
12: 카메라 13: 비디오 디코더
14: FPGA 15: 플래시 메모리
16: SRAM 17: 제1 FIFO
18: 제2 FIFO 19: 버퍼
20: EPLD 21: 제2 JTAG
22: 비디오 인코더 23: 컴퓨터
24: DSP 25: SDRAM
26: 플래시 메모리 27: PLL

Claims (14)

  1. DSP(Digital Signal Processing)와 FPGA(Field Programmable Gate Array)를 이용한 JPEG2000 압축 설계 장치에 있어서,
    카메라로부터 원래 영상 데이타(raw video data)를 입력받아 A/D변환하여 디지털 영상 데이타(YUV422)를 제공하는 비디오 디코더;
    이진 산술 데이타를 입력받아 컨텍스트 기반 적응적 이진 산술 MQ-코더(Context-based adaptive binary arithmetic MQ-coder)를 사용하여 이진산술 연산처리 기능을 제공하는 현장 프로그래머블 게이트 어레이(FPGA:Field Programmable Gate Array);
    상기 FPGA에 연결되고, 상기 MQ-코더의 소프트웨어를 저장하는 플래시 메모리;
    상기 FPGA에 연결되고, 상기 디지털 영상 데이타(YUV422)를 저장하는 SRAM;
    상기 FPGA에 연결되고, 전체 시스템 클럭을 재생하는 삭제 및 프로그래밍가능한 로직 디바이스(EPLD:Erasable Programmable Logic Device);
    상기 FPGA에 연결되고, 임베디드 시스템 개발시 디버깅 장비로 사용되고 외부 소프트웨어를 포팅하기 위한 제2 JTAG;
    컴퓨터의 모니터로 비디오 데이타를 D/A변환하는 비디오 인코더;
    JPEG2000 영상 압축복원을 처리하며, 병렬처리로 상기 FPGA의 MQ-코더를 실행하기 위한 이진 산술 데이타를 상기 제2 FIFO를 통해 제공하고 상기 FPGA의 MQ-코더로부터 버퍼를 통해 MQ-코더의 처리 데이타를 수신하여 영상 데이타의 압축 및 복원하는 DSP;
    선입선출 방식으로 상기 디지털 영상 데이타(YUV422)를 상기 FPGA로부터 상기 DSP로 제공하는 제1 FIFO;
    선입선출 방식으로 상기 MQ-코더를 실행하기 위한 상기 이진산술 데이타를 상기 DSP로부터 상기 FPGA로 제공하는 제2 FIFO;
    상기 FPGA의 MQ-코더의 처리 데이타를 DSP로 제공하는 버퍼;
    상기 DSP에 연결되고 JPEG2000 압축/복원 처리된 영상데이타를 저장하는 SDRAM;
    상기 DSP에 연결되고, JPEG2000 코덱 소프트웨어를 저장하는 플래시 메모리;
    상기 DSP에 연결되고, PC의 CPU와 주변 장치를 연결하는 로컬 버스로 사용되는 PCI(Peripheral Component Interconnect);
    상기 DSP에 연결되고, 임베디드 시스템 개발시 디버깅 장비로 사용되고 외부 소프트웨어를 포팅하기 위한 제1 JTAG(Joint Test Action Group); 및
    상기 DSP에 연결되고, 내부 시스템 클럭을 분주하여 제공하는 PLL(Phase Looked Loop);
    을 포함하는 DSP와 FPGA를 이용한 JPEG2000 압축 설계 장치.
  2. 제1항에 있어서,
    상기 DSP에서 JPEG2000 영상 코덱에 의해 영상압축 연산량을 처리하며, 병목 현상이 일어나는 이진산술 데이타 부분에 대해 처리 속도를 증가시키도록 FPGA의 MQ코더로 분산시켜 영상 압축 속도를 향상시키기 위해 상기 FPGA의 MQ-코더를 사용하고, VHDL(VHSIC Hardware Description Languae) 언어를 사용하여 병렬 처리로 이진산술 연산하는 것을 특징으로 하는 DSP와 FPGA를 이용한 JPEG2000 압축 설계 장치.
  3. 제1항에 있어서,
    상기 DSP와 FPGA를 이용한 JPEG2000 압축 설계 장치의 전체 시스템은 상기 EPLD(Erasable Programmable Logic Device)에 의해 컨트롤 되고, 상기 DSP와 상기 비디오 디코더 및 상기 비디오 인코더, 상기 전체 시스템의 PLL(Phase Looked Loop)의 초기화는 DSP의 GPIO(General Purpose Input/Output, 범용 입출력)를 이용해 I2C 통신으로 설정되고, 시스템의 전원은 ATX(Advanced Technology Extended) 전원을 사용하였고, PC와 상기 PCI로 통신하기 위해 PCI Slot Type으로 PCB를 만든 것을 특징으로 하는 DSP와 FPGA를 이용한 JPEG2000 압축 설계 장치.
  4. 제1항에 있어서,
    상기 FPGA는 JPEG2000의 MQ-코더를 설계시에, 레지스터를 사용하여 상기 MQ-코더에 사용되는 네 가지의 일; 인코더의 상태 초기화; 현재 인코더의 컨택스트 지정하기; 입력 데이터의 다음 비트 인코딩; 입력 비트 스트림의 종료알림;을 설계하는 것을 특징으로 하는 DSP와 FPGA를 이용한 JPEG2000 압축 설계 장치.
  5. 제4항에 있어서,
    상기 FPGA는
    상기 MQ-코더를 이용하여 데이터를 인코딩할 시에, 상기 레지스터를 초기화 하는 과정; 영상의 저주파 신호와 저주파 신호를 구분하는 임계값인 Decision bit(D)와 컨택스트(CX)를 읽는(Read(CX,D) pair) 과정; 상기 Decision bit(D)와 영상의 컨택스트의 최대 빈도 심볼(MPS(CX))을 비교하는 과정; D==MPS(CX)조건을 판단하여 D==MPS(CX) 조건을 만족하면 대부분 영상에 존재하는 영상의 저주파 신호에 대한 CodeMPS(More Probable Symbol)의 이진 산술 연산을 실행하고, D==MPS(CX) 조건을 만족하지 않으면 가끔 존재하는 영상의 고주파 신호에 대한 CodeLPS(Least Probable Symbol)의 이진 산술 연산을 실행하는 과정; 및 영상 데이타의 끝(end of data)이 확인되면, 압축된 최종 코드워드(CW)를 만들어내기 전에 이진수 1 비트들을 register C에 채워넣기 위해 수행하는 "FLUSH register" 과정;을 포함하는 것을 특징으로 하는 DSP와 FPGA를 이용한 JPEG2000 압축 설계 장치.
  6. 제4항에 있어서,
    상기 MQ-코더를 이용하여 데이터를 인코딩 및 디코딩 시에, 각 심볼의 확률값을 비롯하여 총 4가지의 정보; 컨택스트의 확률값(Qe 값)의 현재 영상의 컨택스트에 대한 인덱스 I(CX); 영상 데이타에 존재하는 컨택스트의 확률값 Qe(I(CX)); MPS/LPS 재정규화(renormalization)을 위한 다음 인덱스 NMPS(I(CX))/NLPS(I(CX)); MPS(CX)의 구간 변경이 필요한 지를 나타내는 플래그 SWITCH(I(CX));를 포함하는 이진산술 부호화 및 복호화에 필요한 테이블을 사용하는 것을 특징으로 하는 DSP와 FPGA를 이용한 JPEG2000 압축 설계 장치.
    여기서, I(CX)는 현재 영상의 컨택스트(CX)에 대한 인덱스, MPS(CX)는 영상의 컨택스트의 최대 빈도 심볼, NMPS(I(CX))는 저주파 영상 데이타의 컨택스트 갯수, NLPS(I(CX)는 고주파 영상 데이타의 컨택스트 갯수, SWITCH(I(CX))는 MPS(CX)의 구간 변경이 필요한 지를 나타내는 플래그를 의미한다.
  7. 제1항에 있어서,
    상기 DSP와 FPGA를 이용한 JPEG2000 분산 압축 설계 장치의 타겟 보드로써 상기 DSP는 TMS320C6416을 사용하고, 상기 FPGA는 StratixII를 사용하는 것을 특징으로 하는 DSP와 FPGA를 이용한 JPEG2000 압축 설계 장치.
  8. DSP와 FPGA를 이용한 JPEG2000 압축 설계 방법에 있어서,
    (a) PC로부터 PCI(Peripheral Component Interconnect)나 JTAG(Joint Test Action Group)을 통해 DSP로 raw 디지털 영상 데이터를 전송받거나, 외부 카메라로부터 NTSC 영상을 비디오 디코더를 통해 생성된 raw 디지털 영상 데이타(raw video data, YUV422)를 현장 프로그래머블 게이트 어레이(FPGA)와 제1 FIFO를 통해 DSP로 입력받아 메모리(SDRAM)에 저장하는 단계;
    (b) 상기 DSP가 상기 raw 디지털 영상 데이타를 입력받은 후, JPEG2000 영상 압축복원을 처리하며, 상기 DSP로부터 제2 FIFO를 통해 상기 FPGA로 MQ-코더를 실행하기 위한 이진 산술 데이타를 제공하고, 상기 FPGA의 MQ-코더로부터 DSP의 외부 메모리 인터페이스인 버퍼를 통해 MQ-코더의 처리 데이타를 상기 DSP로 수신하여 영상 데이타의 압축 및 복원하며, 디지털 영상 데이터를 상기 DSP와 상기 FPGA로 나누어져 병렬 처리되는 단계; 및
    (c) 상기 DSP로부터 상기 FPGA로 MQ-코더를 실행하기 위한 이진 산술 데이타를 수신한 후, 상기 FPGA가 컨텍스트 기반 적응적 이진 산술 MQ-코더(Context-based adaptive binary arithmetic MQ-coder)를 사용하여 이진산술 연산처리하고 처리 데이타를 메모리(SRAM)에 저장하며, 상기 버퍼를 통해 MQ-코더의 처리 데이타를 상기 DSP로 제공하는 단계; 및
    (d) 상기 DSP와 FPGA의 병렬처리로 JPEG2000 알고리즘에 의해 영상이 압축된 후, JPEG2000 압축/복원 처리된 영상데이타를 메모리(SDRAM)로 저장하고, 이 압축된 영상들을 PCI를 통해 PC로 전송되거나, 제2 FIFO, FPGA, 비디오 인코더를 거쳐 NTSC 영상신호를 컴퓨터의 모니터로 출력하는 단계;
    를 포함하는 DSP와 FPGA를 이용한 JPEG2000 압축 설계 방법.
  9. 제8항에 있어서,
    상기 단계 (a)는
    (a1) PC로부터 PCI(Peripheral Component Interconnect)나 JTAG(Joint Test Action Group)을 통해 상기 DSP로 Raw 디지털 영상 데이터를 직접 입력받게 되는 경우 디지털 형태의 데이터이기 때문에 Analog to Digital Converting 작업 없이 바로 영상을 입력받는 단계; 및
    (a2) 상기 외부 카메라로부터 NTSC 영상을 입력받게 되면, 상기 비디오 디코더를 통해 A/D변환되어 Raw 디지털 영상 데이타인 YUV422 포맷으로 디지털화 되고, FPGA, 제1 FIFO를 거쳐 상기 DSP로 입력되는 단계;
    를 포함하는 것을 특징으로 하는 DSP와 FPGA를 이용한 JPEG2000 압축 설계 방법.
  10. 제8항에 있어서,
    상기 단계 (c)의 FPGA에서 JPEG2000의 MQ-코더를 설계시에, 레지스터를 사용하여 상기 MQ-코더에 사용되는 네 가지의 일; 인코더의 상태 초기화; 현재 인코더의 컨택스트(CX) 지정하기; 입력 데이터의 다음 비트 인코딩; 입력 비트 스트림의 종료알림;을 설계하는 것을 특징으로 하는 DSP와 FPGA를 이용한 JPEG2000 압축 설계 방법.
  11. 제8항 또는 제10항에 있어서,
    상기 단계 (c)는
    (c1) 상기 FPGA에서 상기 MQ-코더를 이용하여 데이터를 인코딩 시에, 상기 레지스터를 초기화하는 단계;
    (c2) 영상의 저주파 신호와 저주파 신호를 구분하는 임계값인 Decision bit(D)와 컨택스트(CX)를 읽는(Read(CX,D) pair) 단계;
    (c3) 상기 Decision bit(D)와 영상의 컨택스트의 최대 빈도 심볼(MPS(CX))을 비교하는 단계;
    (c4) D==MPS(CX)조건을 판단하여, D==MPS(CX) 조건을 만족하면 대부분 영상에 존재하는 영상의 저주파 신호에 대한 CodeMPS(More Probable Symbol)의 이진 산술 연산을 실행하고, D==MPS(CX) 조건을 만족하지 않으면 가끔 존재하는 영상의 고주파 신호에 대한 CodeLPS(Least Probable Symbol)의 이진 산술 연산을 실행하는 단계; 및
    (c5) 영상 데이타의 끝(end of data)이 확인되면, 압축된 최종 코드워드(CW)를 만들어내기 전에 이진수 1 비트들을 register C에 채워넣기 위해 수행하는 "FLUSH register" 단계;
    를 포함하는 DSP와 FPGA를 이용한 JPEG2000 압축 설계 방법.
  12. 제8항에 있어서,
    상기 단계 (c)에서, 상기 MQ-코더를 이용하여 데이터를 인코딩 및 디코딩 시에, 각 심볼의 확률값을 비롯하여 총 4가지의 정보; 컨택스트의 확률값(Qe 값)의 현재 영상의 컨택스트에 대한 인덱스 I(CX); 영상 데이타에 존재하는 컨택스트의 확률값 Qe(I(CX)); MPS/LPS 재정규화(renormalization)을 위한 다음 인덱스 NMPS(I(CX))/NLPS(I(CX)); MPS(CX)의 구간 변경이 필요한 지를 나타내는 플래그 SWITCH(I(CX));를 포함하는 이진산술 부호화 및 복호화에 필요한 테이블(도4)을 사용하는 것을 특징으로 하는 DSP와 FPGA를 이용한 JPEG2000 압축 설계 방법.
  13. 제8항에 있어서,
    상기 FPGA은 MQ-코더 entity의 입력으로 1 bit nrset(Reset signal), 1 bit clock(System clock), 1 bit In_mps(More Probable Sysmbol), 6 bits In_index(Look-up table index), 1 bit In-bit(인코더 입력 비트), 1 bit predictTerm(default termination->0, predictable termination->1), 1 bit Init_do(인코더 초기화 task), 1 bit Set_Context_do(Set context task), 1 bit Encode_Bit_do(인코딩 task), 1 bit Flush_do(Flush task)를 포함하는 것을 특징으로 하는 DSP와 FPGA를 이용한 JPEG2000 압축 설계 방법.
  14. 제8항에 있어서,
    상기 FPGA은 MQ-코더 entity의 출력으로 8 bits byte_out_reg(압축 데이터), 1 bit enc_ready(인코더 idle->1, 인코더 bust->0), 1 bit byte_ready(새로운 데이터가 byte_out_reg에 저장되었을때 1클럭동안 '1'), 인코더의 내부 상태 표시(32 bits c_reg_out, 32 bits a_reg_out, 5 bits ct_reg_out, 1 bit mps_reg_out, 6 bits index_reg_out)를 포함하는 것을 특징으로 하는 DSP와 FPGA를 이용한 JPEG2000 압축 설계 방법.
KR1020110038526A 2011-04-25 2011-04-25 Dsp와 fpga를 이용한 jpeg2000 압축 설계 방법 및 장치 KR101226544B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110038526A KR101226544B1 (ko) 2011-04-25 2011-04-25 Dsp와 fpga를 이용한 jpeg2000 압축 설계 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110038526A KR101226544B1 (ko) 2011-04-25 2011-04-25 Dsp와 fpga를 이용한 jpeg2000 압축 설계 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20120120767A KR20120120767A (ko) 2012-11-02
KR101226544B1 true KR101226544B1 (ko) 2013-01-25

Family

ID=47507377

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110038526A KR101226544B1 (ko) 2011-04-25 2011-04-25 Dsp와 fpga를 이용한 jpeg2000 압축 설계 방법 및 장치

Country Status (1)

Country Link
KR (1) KR101226544B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103997648A (zh) * 2014-06-11 2014-08-20 中国科学院自动化研究所 一种基于dsp的jpeg2000标准图像快速解压缩系统及方法

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101597637B1 (ko) * 2013-09-02 2016-02-29 주식회사 쏠리드 Fpga 이미지 다운로드시 네트워크 부하를 경감하기 위한 압축 방법
CN103716508A (zh) * 2013-12-17 2014-04-09 重庆凯泽科技有限公司 一种基于dsp的视频图像处理系统
CN104679605B (zh) * 2015-02-15 2018-03-09 北京空间机电研究所 一种基于商用货架产品的航天软加固系统
CN107659784B (zh) * 2017-08-31 2019-05-28 北京航宇创通技术股份有限公司 CameraLink图像处理装置和光电转塔
CN108711135A (zh) * 2018-04-17 2018-10-26 广州创龙电子科技有限公司 一种基于fpga+dsp架构的相机图像采集与处理的方法及系统
CN109302605B (zh) * 2018-10-26 2020-12-22 浙江清华柔性电子技术研究院 基于多核处理器的图像编码方法及设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005065168A (ja) 2003-08-20 2005-03-10 Ricoh Co Ltd 画像圧縮装置及び画像圧縮方法
JP2005341370A (ja) 2004-05-28 2005-12-08 Fujitsu Ltd Mq−coder方式の算術符号化演算器
JP2007235678A (ja) 2006-03-02 2007-09-13 Ricoh Co Ltd 画像符号復号装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005065168A (ja) 2003-08-20 2005-03-10 Ricoh Co Ltd 画像圧縮装置及び画像圧縮方法
JP2005341370A (ja) 2004-05-28 2005-12-08 Fujitsu Ltd Mq−coder方式の算術符号化演算器
JP2007235678A (ja) 2006-03-02 2007-09-13 Ricoh Co Ltd 画像符号復号装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103997648A (zh) * 2014-06-11 2014-08-20 中国科学院自动化研究所 一种基于dsp的jpeg2000标准图像快速解压缩系统及方法
CN103997648B (zh) * 2014-06-11 2017-04-05 中国科学院自动化研究所 一种基于dsp的jpeg2000标准图像快速解压缩系统及方法

Also Published As

Publication number Publication date
KR20120120767A (ko) 2012-11-02

Similar Documents

Publication Publication Date Title
KR101226544B1 (ko) Dsp와 fpga를 이용한 jpeg2000 압축 설계 방법 및 장치
US11974069B2 (en) Image processing method and device using feature map compression
US6677869B2 (en) Arithmetic coding apparatus and image processing apparatus
US11962937B2 (en) Method and device of super resolution using feature map compression
CN109600618A (zh) 视频压缩方法、解压缩方法、装置、终端和介质
US20140043347A1 (en) Methods for jpeg2000 encoding and decoding based on gpu
KR102123620B1 (ko) 대용량 병렬 처리를 위해 비디오 신호를 엔트로피 인코딩 또는 엔트로피 디코딩하는 방법 및 장치
AU2019101272A4 (en) Method and apparatus for super-resolution using line unit operation
US11956569B2 (en) Image processing method and device using a line-wise operation
US7834785B2 (en) CABAC type encoding device and method
JP2005065168A (ja) 画像圧縮装置及び画像圧縮方法
Sjövall et al. High-level synthesis implementation of an embedded real-time HEVC intra encoder on FPGA for media applications
JP3230933B2 (ja) データ伸長装置、データ伸長方法、デコーディング装置、デコーディング方法、エンコーディング装置、及びエントロピー・デコーダ
Jilani et al. JPEG image compression using FPGA with Artificial Neural Networks
Ramesh Kumar et al. Two-symbol FPGA architecture for fast arithmetic encoding in JPEG 2000
CN113949867B (zh) 一种图像处理的方法及装置
Sodsong et al. JParEnt: Parallel entropy decoding for JPEG decompression on heterogeneous multicore architectures
Lopes F et al. A low complexity image compression solution for onboard space applications
Keerthi et al. Investigations On Image Compression Methodologies Using Hybrid Algorithms
Golston et al. C64x VelociTI. 2 extensions support media-rich broadband infrastructure and image analysis systems
Baruffa et al. A reprogrammable computing platform for JPEG 2000 and H. 264 SHD video coding
Candra et al. Optimum zigzag scan mapping method on FPGA device
KR101130271B1 (ko) H.264/avc를 위한 내용기반 가변길이 부호화기
Poovely et al. A survey on VLSI architecture and design for data compression
Ahmed et al. Parallel hardware architecture for jpeg-ls based on domain decomposition

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160519

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170102

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20180103

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20190103

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20200103

Year of fee payment: 8