본 논문은 이진 영상 압축 표준인 JBIG2의 주요 구성모듈을 하드웨어 IP(Intellectual Property)로 설계 구현을 제안한다. JBIG2가 표준화된 이후 차세대 FAX 하드웨어 개발을 용이하게 하기 위하여 JBIG2 부호화기의 주요 모듈인 심볼 추출부, 허프만 부호화기, MMR 부호화기, MQ 산술부호화기를 하드웨어 IP로 합성하였다. VHDL코드 생성 및 합성을 위해서 ImpulseC Codeveloper와 Xilinx ISE/EDK 프로그램을 사용하였다. 심볼추출시 메모리의 사용을 최소화하기 위해 문서를 128라인씩 분할하여 처리하도록 설계하였다. 합성된 IP들은 Xilinx사의 ML410 개발보드의 Virtex-4 FX60 FPGA에 다운로드하여 성능평가를 수행하였다. 4개의 IP가 FPGA에서 차지하는 면적은 전체 slice의 36.7%를 차지하였다. 동작 검증을 위해 Active HDL 툴을 이용하여 각 IP에 대한 파형 검증을 수행한 결과 정상 동작함을 확인하였다. 아울러 ML410 개발보드 상에서 Microblaze CPU를 이용해 소프트웨어로만 수행한 경우와 동작 속도를 비교 한 결과, 구현된 IP들은 심볼 추출부는 17배, 허프만 부호화기는 10배, MMR 부호화기는 6배, MQ 산술부호화기는 2.2배 이상의 빠른 처리 속도를 나타내었다. 구현된 하드웨어 IP와 연동된 소프트웨어 모듈로 표준 CCITT문서를 압축한 결과 정상적으로 동작함을 확인하였다.
본 논문은 이진 영상 압축 표준인 JBIG2의 주요 구성모듈을 하드웨어 IP(Intellectual Property)로 설계 구현을 제안한다. JBIG2가 표준화된 이후 차세대 FAX 하드웨어 개발을 용이하게 하기 위하여 JBIG2 부호화기의 주요 모듈인 심볼 추출부, 허프만 부호화기, MMR 부호화기, MQ 산술부호화기를 하드웨어 IP로 합성하였다. VHDL코드 생성 및 합성을 위해서 ImpulseC Codeveloper와 Xilinx ISE/EDK 프로그램을 사용하였다. 심볼추출시 메모리의 사용을 최소화하기 위해 문서를 128라인씩 분할하여 처리하도록 설계하였다. 합성된 IP들은 Xilinx사의 ML410 개발보드의 Virtex-4 FX60 FPGA에 다운로드하여 성능평가를 수행하였다. 4개의 IP가 FPGA에서 차지하는 면적은 전체 slice의 36.7%를 차지하였다. 동작 검증을 위해 Active HDL 툴을 이용하여 각 IP에 대한 파형 검증을 수행한 결과 정상 동작함을 확인하였다. 아울러 ML410 개발보드 상에서 Microblaze CPU를 이용해 소프트웨어로만 수행한 경우와 동작 속도를 비교 한 결과, 구현된 IP들은 심볼 추출부는 17배, 허프만 부호화기는 10배, MMR 부호화기는 6배, MQ 산술부호화기는 2.2배 이상의 빠른 처리 속도를 나타내었다. 구현된 하드웨어 IP와 연동된 소프트웨어 모듈로 표준 CCITT문서를 압축한 결과 정상적으로 동작함을 확인하였다.
This paper proposes the hardware IP design of JBIG2 encoder. In order to facilitate the next generation FAX after the standardization of JBIG2, major modules of JBIG2 encoder are designed and implemented, such as symbol extraction module, Huffman coder, MMR coder, and MQ coder. ImpulseC Codeveloper ...
This paper proposes the hardware IP design of JBIG2 encoder. In order to facilitate the next generation FAX after the standardization of JBIG2, major modules of JBIG2 encoder are designed and implemented, such as symbol extraction module, Huffman coder, MMR coder, and MQ coder. ImpulseC Codeveloper and Xilinx ISE/EDK program are used for the synthesis of VHDL code. To minimize the memory usage, 128 lines of input image are processed succesively instead of total image. The synthesized IPs are downloaded to Virtex-4 FX60 FPGA on ML410 development board. The four synthesized IPs utilize 36.7% of total slice of FPGA. Using Active-HDL tool, the generated IPs were verified showing normal operation. Compared with the software operation using microblaze cpu on ML410 board, the synthesized IPs are better in operation time. The improvement ratio of operation time between the synthesized IP and software is 17 times in case of symbol extraction IP, and 10 times in Huffman coder IP. MMR coder IP shows 6 times faster and MQ coder IP shows 2.2 times faster than software only operation. The synthesized H/W IP and S/W module cooperated to succeed in compressing the CCITT standard document.
This paper proposes the hardware IP design of JBIG2 encoder. In order to facilitate the next generation FAX after the standardization of JBIG2, major modules of JBIG2 encoder are designed and implemented, such as symbol extraction module, Huffman coder, MMR coder, and MQ coder. ImpulseC Codeveloper and Xilinx ISE/EDK program are used for the synthesis of VHDL code. To minimize the memory usage, 128 lines of input image are processed succesively instead of total image. The synthesized IPs are downloaded to Virtex-4 FX60 FPGA on ML410 development board. The four synthesized IPs utilize 36.7% of total slice of FPGA. Using Active-HDL tool, the generated IPs were verified showing normal operation. Compared with the software operation using microblaze cpu on ML410 board, the synthesized IPs are better in operation time. The improvement ratio of operation time between the synthesized IP and software is 17 times in case of symbol extraction IP, and 10 times in Huffman coder IP. MMR coder IP shows 6 times faster and MQ coder IP shows 2.2 times faster than software only operation. The synthesized H/W IP and S/W module cooperated to succeed in compressing the CCITT standard document.
* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.
제안 방법
있다. IP의 합성을 위해 Impulse C Codeveloper 를 사용하여 소프트웨어와 하드웨어 모듈, 디바이스 드라이버를 구현한 후, Xilinx사의 ISE와 EDK Tool'侦을 사용하여 IP를 합성하였고 IP의 파형 검증은 Active-HimL〔坷을 사용하여 실시하였다. 최종적으로 ML410보드에 Microblaze cpu를 합성한 흑、 개발된 IP를 FPGA에 다운로드하여 개발보드에 부속된 Flash 메모리에 저장된 이진문서를 로딩하여 S/W와 연동을 통해 압축하는 실험을 수행함으로써 정상 동작 여부를 검증하였다.
6% 정도를 사용하였다. MMR 부호화기의 성능 평가는 10개의 테스트용 비트맵 영상을 MMR 코딩한 시간을 측정함으로 수행하였다. 10번의 실험을 수행한 후 평균 시간을 측정 했을 때 소프트웨어로만 수행한 경우 평균 1천4백3십만 ticks가 소요되었고 하드웨어로 수행했을 경우 2백3십만ticks가 소요되었다.
다른 4개의 블록보다 제일 많은 면적을 차지한 것을 알 수 있다. MQ 산술부호화기의 성능평가는 JBIG2 Final CD[4] 부록에 있는 테스트 시퀀스(32 Byte)를 MQ 산술 부호화하는데 소요된 시간을 측정함으로 수행하였다. 10번의 실험을 수행한 후 IByte의 입력 데이터를 부호화 하는데 소요된 평균 시간을 계산했을 때 소프트웨어로 수행한 경우 평균 6만4천 ticks가 소요되었고, 하드웨어로 수행했을 경우 2만8천 ticks가 소요되었다.
둘째, 설계된 하드웨어 IP 와 소프트웨어의 연동했을 때와 Microblaze 코어를 이용하여 소프트웨어만으로 처리했을 때의 소요되는 처리 시간을 비교하였다. Microblaze 코어는 내부에 타이머가 없기 때문에 OPB-Timer를 이용하여 처리 시간을 측정하였다. OPB-Timer는 IP가 동작될 때클럭을 측정하는 타이머로써 단위는 ticks이고, ticks 에 프로세서의 동작 주기를 곱하면 동작시간이 된다 공정한 동작시간을 얻기 위해 여러 번 반복 수행 후 평균 처리 속도를 구했다.
하드웨어에 입력되는 값은 내부메모리를 효율적으로 사용하기 위하여 부호화 하고자 하는 픽셀 값(D) 1 bit와 컨텍스트 값 (CX) 16 Bits를 전송한다. Qe 확률표는 static 메모리에 저장하고, 소프트웨어 모듈과 하드웨어 모듈의연동을 위해 하드웨어 모듈의 내부 레지스터(A, C, Counter)의 정보 값은 매 인코딩 스텝마다 입출력스트림을 통해 주고 받도록 설계하였다. 부호화된데이터는 Ibyte 씩 S/W 모듈로 전송한다.
저장된 영상에서 심벌을 찾고, 윤곽선 검출을 통해 심벌의 윤곽선을 생성한다. 그리고 채워넣기(Fill-In) 과정을 통해 윤곽선 내부를 채우도록 하여 심벌 비트맵을 생성하도록 설계하였다, 심벌의 ID, 심벌 비트맵의 가로 및 세로 위치, 심벌 비트맵의 가로 및 세로 크기, 심벌 비트맵을 스트림으로 출력하도록 설계하였다. 심벌비트맵은 8비트, 나머지 데이터는 16비트 스트림으로 설계하였다.
MMR 부호화는 기준선과 현재 라인의 화소들의 상관관계를 이용하여 부호화 하는방법으로 처음의 기준선은 백색라인을 기준선으로설정한다. 기준선을 설정 한 후 현재라인의 변화 화소의 위치를 찾기 위해 흑색에서 백색으로 변화하는 화소들의 위치를 메모리에 저장하고 백색에서흑색으로 변화하는 화소들의 위치를 저장한다. 이변화 화소의 위치 값으로부터 MMR 표준문세기에정의된 al, a2, bl, b2를 구한다.
환경 값을 설정한다. 다음으로는 해당되는허프만 테이블의 구간별 최저값을 메모리로부터 읽어 와서 부호화될 데이터의 값과 비교하여 어느 구간에 속하여 있는지를 찾아낸다 그 위치에 해당하는 인덱스 값을 이용하여 프리픽스 길이와 프리픽스 부호 그리고 구간 길이를 메모리로부터 읽어오도록 한다. 구간 부호는 부호화될 데이터의 값과 해당 구간의 최저값과의 차이가 코드로 만들어진다.
성능평가는 첫째로 합성된 IP의 FX-60의 사용가능한 Slice중에서 몇 % 를 소모했는지 측정한다. 둘째, 설계된 하드웨어 IP 와 소프트웨어의 연동했을 때와 Microblaze 코어를 이용하여 소프트웨어만으로 처리했을 때의 소요되는 처리 시간을 비교하였다. Microblaze 코어는 내부에 타이머가 없기 때문에 OPB-Timer를 이용하여 처리 시간을 측정하였다.
또한, 산술부호기의 속성상 입력이 인가된 후 출력이 발생하기까지에는 불규칙한 지연이 발생한다. 따라서, 모든 입력이 완료가 된 후에도 하드웨어 모듈에는 가상입력을 계속 인가하여 최종 Byteout이 OxAC, OxFF가 출력 되는 것을 확인한 후에 하드웨어 모듈을 종료시키도록 설계하였다.
어려울 정도로 연구가 미약하다. 먼저 심벌추출부의 설계 사례는 검색되지 않았다 MQ 산술부호기의 하드웨어 설계의 경우, JPEG2000에 사용하기 위해 제안된 것으로 부호기의 동작 스피드를 높이고 구조를 단순화하여 연산량을 줄이기 위하여 4단계 파이프라인 적용과 복잡한 곱셈기와 나눗셈기 대신 근사화를 통한 간단한 덧셈과 시프트연산을 적용한 방법'頌Ki이 제안되었다. MMR 부호기의 하드웨어 설계의 경우 압축된 2진 영상 데이터를 고속으로 복원하기 위하여 병렬 영상 스트림 방법을 적용한 MMR 부호화를 지원하는 VLSI 설계 16] 등이 발표되었다.
문서 내에서 심벌을 추출하기 위한 심벌 추출부는 실험에 사용된 임베디드 보드의 제한된 메모리 용량으로 인해, 전체 영상을 한꺼번에 저장할 수 없기 때문에 128라인씩 분할한 영상을 임베디드 보드의 메모리에 저장하도록 설계하였다. 메모리양은 200dpi 문서의 수평 화소 크기가 1728화소가 되는데 8화소씩 묶어서 하나의 바이트를 구성하게 되어, 1*17228 8/8 = 27, 648 (byte)가 필요하다 그림 2는 심벌 추출부의 구조를 나타낸다.
이러한 설계 툴 중 하나로 Impulse Accelerated Technologies 사의 ImpulseC CoDeveloper?} 있다1', 이는 ANSI-C 표준을 따르는 C 코드를 VH坦L로 변환해주는 툴이다. 본 논문에서는 먼저 JBIG2 전체 알고리즘을 C 코드로 개발한 후 소프트웨어로 처리할 부분은 C코드로 처리하고, 하드웨어로 처리할 부분은 VHDL로 변환해 준다. 또한 소프트웨어와 인터페이스 역할을 하는 하드웨어 디바이스 드라이버를 생성해 주기 때문에하드웨어와 소프트웨어와의 연동이 용이하다.
본 논문에서는 임베디드 시스템에 적합한 JBIG2 압축 시스템을 설계하는데 있어서 핵심 모듈이라고 할 수 있는 심벌 추출부, 허프만 부호화기, MMR 부호화기, MQ 산술부호화기를 하드웨어로 설계 및 구현하였다. 하드웨어와 소프트웨어의 연동 설계를 위하여 ImpulseC CoDeveloper를 사용하여 각 모듈을 설계하였다.
또한 소프트웨어와 인터페이스 역할을 하는 하드웨어 디바이스 드라이버를 생성해 주기 때문에하드웨어와 소프트웨어와의 연동이 용이하다. 본 논문에서는 임베디드용 JBIG2 부호기의 핵심 모듈인심벌 추출부, 허프만 부호화기, MMR 부호화기, MQ 산술부호화기를 설계 구현하였다.
설계된 IP 들은 Xilinx ISE/EDK 를 이용하여 ML410 개발 보드 상의 FPGA에 하드웨어 IP로 추가하였고 소프트웨어와의 연동으로 이진문서를 압축하는 실험을 수행하였다. 소프트웨어와의 연동 실험을 통하여 소프트웨어에서 데이터를 하드웨어 측으로 전송하고 IP 내에서의 동작을 생성된 데이터스트림을 소프트웨어 측에서 다시 전송받아 그 결과를 확인하는 방식으로 설계된 IP가 정상 동작됨을 UART 터미널을 통해 확인하였다.
OPB-Timer는 IP가 동작될 때클럭을 측정하는 타이머로써 단위는 ticks이고, ticks 에 프로세서의 동작 주기를 곱하면 동작시간이 된다 공정한 동작시간을 얻기 위해 여러 번 반복 수행 후 평균 처리 속도를 구했다. 셋째로 FX-60의 IOB(Input Output Block)를 얼마나 사용하는지 측정한다.
JBIG2부호기에서도 빠른 처리 위해 심벌 비트맵을 MMR 부호화기를 사용하여 부호화 하게 된다. 심벌 추출부와 마찬가지로 비트맵 영상을 처리하기위해 빈번한 메모리 억세스가 발생 되는데 메모리영역을 소프트웨어와 하드웨어가 공유하도록 설계하여 처리시간을 단축하였다. 그림 4는 설계된 MMR 부호화기의 구조이다.
5% 정도를 사용하였다. 심벌 추출부의 성능평가는 스캔된 일반문서에서 소프트웨어만으로 심벌을 추출할 때와 하드웨어 IP로 심벌을 추출 할 때 걸리는 시간을 측정함으로 수행하였다. 공정한 시간측정을 위하여 10번의 수행을 한 후 평균 시간을 측정 했을 때 소프트웨어로 수행한 경우 평균 1억4천9백만 ticks가 소요되었고 하드웨어로 수행했을 경우 평균 8백6십만 ticks가 소요되었다.
전체 부호화기는 심벌 추출 IP, 허프만 부호화 IP, MMR 부호화 IP, MQ 산술부호화 IP 모듈을 통합하여 구성하였다. JBIG2의 나머지 부분은 S/W로 실행하였다.
IP의 합성을 위해 Impulse C Codeveloper 를 사용하여 소프트웨어와 하드웨어 모듈, 디바이스 드라이버를 구현한 후, Xilinx사의 ISE와 EDK Tool'侦을 사용하여 IP를 합성하였고 IP의 파형 검증은 Active-HimL〔坷을 사용하여 실시하였다. 최종적으로 ML410보드에 Microblaze cpu를 합성한 흑、 개발된 IP를 FPGA에 다운로드하여 개발보드에 부속된 Flash 메모리에 저장된 이진문서를 로딩하여 S/W와 연동을 통해 압축하는 실험을 수행함으로써 정상 동작 여부를 검증하였다. 성능평가는 첫째로 합성된 IP의 FX-60의 사용가능한 Slice중에서 몇 % 를 소모했는지 측정한다.
하드웨어 출력으로 각각 32비트씩 두 개의 하드웨어 스트림을 설계하여 하나의 스트림은 프리픽스 길이 8비트(31:24), 구간 길이 8비트(23:16), 프리픽스 부호 16비트(15:0)를 출력하고 다른 하나는 구간 부호 32비트(31:0)를 출력하도록 설계하였다. 이렇게 설계된 허프만 부호화기의 하드웨어 구조는허프만 테이블의 모든 데이터 값을 메모리로 읽어올 필요가- 없으며, 해당 테이블의 구간별 최저값만을 먼저 읽어서 비교과정을 수행함으로써 메모리로부터 읽어오는 과정을 최소화하였다.
al > b2 이면 패스(Pass) 모드 부호화를행흐)게 되고 |al - bl| < 3이면 수직 모드 부호화를 하게 되며, |al - bl| > 3 이면 수평 모드 부호화를 하게 된다. 하드웨어 출력으로는 각 모드별 코드 테이블에 정의 되어있는 코드와 코드 길이의 값을 각각 8비트와 16비트 하드웨어 스트림(FIFO)으로 전송하도록 설계하였다.
하드웨어와 소프트웨어의 연동 설계를 위하여 ImpulseC CoDeveloper를 사용하여 각 모듈을 설계하였다. ALDEC사의 Active-HDL을 사용하여 파형 검증을 거친 후 Xilii以사의 ISE/EDK를 사용하여 합성하였다 실험 및 검증에는 Xilin以사의 ML410 실험보드상의 Virtex-4 FX60 FPGA를 이용하였다.
5% 정도를 사용하였다. 허프만 부호화기의 성능평가는 한 개의 데이터를 허프만 부호화를 수행하는데 소요되는 시간을 측정함으로 수행하였다 . 소프트웨어로만 동작하였을경우 평균 6, 505 ticks가 소요되었고 하드웨어 연동의 경우에는 평균 625 ticks가 소요되었다.
대상 데이터
2 배 빠른 처리 속도를 보였다. 4개의 모듈을 합친 전체부호화 IP의 경우 9, 814 Slices를 사용하여 전체 FPGA Slice용량의 36.7%를 사용하였다. 또한 각 모듈은 JBIG2 소프트웨어와의 연동 실험을 실시하여 정상적으로 동작함을 확인하였다.
9, 271 Slice를 사용하여 전체 사용 가능한 Slice 용량의 36.7%를 사하였다. FX-60의 전체 576개의 IOB중에서 561개가 사용되었음을 알 수 있었다.
하드웨어와 소프트웨어의 연동 설계를 위하여 ImpulseC CoDeveloper를 사용하여 각 모듈을 설계하였다. ALDEC사의 Active-HDL을 사용하여 파형 검증을 거친 후 Xilii以사의 ISE/EDK를 사용하여 합성하였다 실험 및 검증에는 Xilin以사의 ML410 실험보드상의 Virtex-4 FX60 FPGA를 이용하였다. 실험 결과, 설계된 심벌 추출부 IP의 경우 2, 413 Slices를 사용하여 전체 FPGA Slice 용량의 9.
MMR 부호화기는 FPGA 사용량이 2, 173 Slice 로 전체 사용가능한 Slice용량의 8.6% 정도를 사용하였다. MMR 부호화기의 성능 평가는 10개의 테스트용 비트맵 영상을 MMR 코딩한 시간을 측정함으로 수행하였다.
MQ 산술부호화기는 FPGA 사용량이 4, 122 Slice 로 전체 사용가능한 Slice용량의 16.3% 정도를 사용하였다. 다른 4개의 블록보다 제일 많은 면적을 차지한 것을 알 수 있다.
실험에 사용된 개발보드는 Xiliiml사에서 만든 ML410 보드로서 Virtex-4 FX60 FPGA칩을 내장하고 있다. IP의 합성을 위해 Impulse C Codeveloper 를 사용하여 소프트웨어와 하드웨어 모듈, 디바이스 드라이버를 구현한 후, Xilinx사의 ISE와 EDK Tool'侦을 사용하여 IP를 합성하였고 IP의 파형 검증은 Active-HimL〔坷을 사용하여 실시하였다.
심벌 추출부는 2, 413 Slice를 전체 사용 가능한 25, 280 Slice의 9.5% 정도를 사용하였다. 심벌 추출부의 성능평가는 스캔된 일반문서에서 소프트웨어만으로 심벌을 추출할 때와 하드웨어 IP로 심벌을 추출 할 때 걸리는 시간을 측정함으로 수행하였다.
전체 부호화기 하드웨어 IP는 JBIG2의 나머지소프트웨어 모듈과 연동하여 압축실험을 수행하였다 실험에 사용한 영상은 JBIG표준에서 공식적으로 사용하는 테스트 문서 중에서 200dpi(dot per inch) 해상도를 가진 CCITT-1(텍스트위주)과 CCITT-5 (그림이 포함된 것)문서이다. 아울러 일반한글문서를 스캔한 2진 문서를 실험에 사용하였다. 그림 10은 복호화한 결과 얻어진 문서 영상으로써, 454K 바이트(Byte) 크기의 영상을 그림 10(a)의 경우 14K 바이트 그림 10(b)의 경우36K 바이트, 10(c)는 18K 바이트로 각각 JBIG2 압축 후에 복원한 영상을 보여주고 있다.
FX-60의 전체 576개의 IOB중에서 561개가 사용되었음을 알 수 있었다. 전체 부호화기 하드웨어 IP는 JBIG2의 나머지소프트웨어 모듈과 연동하여 압축실험을 수행하였다 실험에 사용한 영상은 JBIG표준에서 공식적으로 사용하는 테스트 문서 중에서 200dpi(dot per inch) 해상도를 가진 CCITT-1(텍스트위주)과 CCITT-5 (그림이 포함된 것)문서이다. 아울러 일반한글문서를 스캔한 2진 문서를 실험에 사용하였다.
이론/모형
첫째, Visual Studio를 사용하여 JBIG2 부호기를 C언어로 개발한다. 둘째, 하드웨어모듈의 개발을 위하여 ImpulseC CoDeveloper 툴을 사용한다. 이 프로그램은 개발단계에서 하드웨어와 소프트웨어 연동을 위하여 소프트웨어 모듈과 하드웨어모듈을 분리 설계가 가능하고, 두 모듈간에 공유메모리를 설치할 수도 있고, 스트림과 신호를 통해 데이터를 주고받도록 설계하기에 용이하다.
성능/효과
MQ 산술부호화기의 성능평가는 JBIG2 Final CD[4] 부록에 있는 테스트 시퀀스(32 Byte)를 MQ 산술 부호화하는데 소요된 시간을 측정함으로 수행하였다. 10번의 실험을 수행한 후 IByte의 입력 데이터를 부호화 하는데 소요된 평균 시간을 계산했을 때 소프트웨어로 수행한 경우 평균 6만4천 ticks가 소요되었고, 하드웨어로 수행했을 경우 2만8천 ticks가 소요되었다. 하드웨어 동작이 약 2.
MMR 부호화기의 성능 평가는 10개의 테스트용 비트맵 영상을 MMR 코딩한 시간을 측정함으로 수행하였다. 10번의 실험을 수행한 후 평균 시간을 측정 했을 때 소프트웨어로만 수행한 경우 평균 1천4백3십만 ticks가 소요되었고 하드웨어로 수행했을 경우 2백3십만ticks가 소요되었다. 드웨어 동작이 약 6배 이상 빠른 수행을 보여 주었다
6% 를 사용하였고 10개의 테스트 비트맵 영상을 처리하는데 걸린 시간이 23ms로 소프트웨어로만 처리한 경우보다 약 6배 빠른 처리 속도를 보였다. MQ 산술부호화 IP의 경우 4, 122 Slices를 人]용하여, 전체 FPGA Slice 용량의 16.3%를 사용하였고 1 Byte의 테스트 데이터를 처리하는데 걸린 시간이 28.86ms로 소프트웨어로만 처리한 경우보다 약 2.2 배 빠른 처리 속도를 보였다. 4개의 모듈을 합친 전체부호화 IP의 경우 9, 814 Slices를 사용하여 전체 FPGA Slice용량의 36.
poooooor의 연속된 테스트 신호를 입력 했을때 실험 결과로 심벌의 X, Y 위치(7, 0) 와 심벌 영상의 가로와 세로의 크기(1, 128)가 그림 6에 보인것과 같이 100MHz 클럭을 사용할 때, 6.85ms에서시작하여 11.89ms에서 심벌 하나가 정상적으로 추출됨을 알 수 있다. 이 시간은 흑화소의 위치와 관련이 있으므로 중요한 의미를 갖지는 않는다
심벌 추출부의 성능평가는 스캔된 일반문서에서 소프트웨어만으로 심벌을 추출할 때와 하드웨어 IP로 심벌을 추출 할 때 걸리는 시간을 측정함으로 수행하였다. 공정한 시간측정을 위하여 10번의 수행을 한 후 평균 시간을 측정 했을 때 소프트웨어로 수행한 경우 평균 1억4천9백만 ticks가 소요되었고 하드웨어로 수행했을 경우 평균 8백6십만 ticks가 소요되었다. 클럭이 100MHz에서 시간으로 환산하면 각각 약 1.
아울러 손실 모드에서 발생한 에러는 정련 정보를 추가로 보내주어서 손실 모드에서 점진적으로 무손실 모드가 가능하도록 변환해 줌으로써 에러 없이 부호화할 수 있다. 넷째, JBIG2는 기존의 방식을 선택적으로 수용할 수 있게 해준다. MH, MR, MMR이 허프만 부호화기를 人]용하고 JBIG이 QM 산술부호화기만을 사용하는 것에 반해, JBIG2는 허프만 부호화와 MQ 산술부호화기를 선택적으로 사용한다.
7%를 사용하였다. 또한 각 모듈은 JBIG2 소프트웨어와의 연동 실험을 실시하여 정상적으로 동작함을 확인하였다.
설계된 MQ 산술부호화기에 JBIG2 표준문서의 부록 山에 있는 테스트 시퀀스(32Byte)를 입력하여, 출력을 확인함으로써 정상으로 동작함을 알 수 있었다 그림 9에서 부호화된 데이터의 첫 출력이 42.95/zs 후에 0x84가 출력됨으로써 정상적인 동작을 함을 확인하였다.
설계된 허프만 부호화기에 테스트 신호를 입력하여, 그 출력결과를 통해 정상동작 여부를 확인하도록 하였다 클럭 주파수 100MHz에서 32비트의 데이터를 입력시켜서 출력이 나올 때 까지의 동작 시간을 측정하였고, 2번 실험한 평균 동작시간이 그림 7에 보인 것과 같이 약 605ns가 소요됨을 알 수 있었다. 입력으로 HTOOB는 0, 테이블 번호는 B, 데이터 코드는 25를 입력했을 때, 출력으로 프리픽스 길이가 5, 프리픽스 코드가 30, 구간 길이가 6, 구간 코드가 14로 출력 되어 표준 허프만 테이블 B 와 비교했을 때 정상적으로 동작됨을 확인하였다
허프만 부호화기의 성능평가는 한 개의 데이터를 허프만 부호화를 수행하는데 소요되는 시간을 측정함으로 수행하였다 . 소프트웨어로만 동작하였을경우 평균 6, 505 ticks가 소요되었고 하드웨어 연동의 경우에는 평균 625 ticks가 소요되었다. 이 결과는 12번의 허프만 동작을 연속 수행한 결과의 평균값을 나타낸 것이다.
실험을 수행하였다. 소프트웨어와의 연동 실험을 통하여 소프트웨어에서 데이터를 하드웨어 측으로 전송하고 IP 내에서의 동작을 생성된 데이터스트림을 소프트웨어 측에서 다시 전송받아 그 결과를 확인하는 방식으로 설계된 IP가 정상 동작됨을 UART 터미널을 통해 확인하였다.
ALDEC사의 Active-HDL을 사용하여 파형 검증을 거친 후 Xilii以사의 ISE/EDK를 사용하여 합성하였다 실험 및 검증에는 Xilin以사의 ML410 실험보드상의 Virtex-4 FX60 FPGA를 이용하였다. 실험 결과, 설계된 심벌 추출부 IP의 경우 2, 413 Slices를 사용하여 전체 FPGA Slice 용량의 9.5%를 사용하였고 그림 10(c)의 심벌을 추출하는데 걸린 시간은 86 ms로 소프트웨어로만 처리한 경우보다 약 17배 이상 빠른 처리 속도를 보였다. 허프만 부호화 IP의 경우 639 Slices를 사용하여, 전체 FPGA Slice 용량의 2.
둘째, 하드웨어모듈의 개발을 위하여 ImpulseC CoDeveloper 툴을 사용한다. 이 프로그램은 개발단계에서 하드웨어와 소프트웨어 연동을 위하여 소프트웨어 모듈과 하드웨어모듈을 분리 설계가 가능하고, 두 모듈간에 공유메모리를 설치할 수도 있고, 스트림과 신호를 통해 데이터를 주고받도록 설계하기에 용이하다. 하드웨어 모듈은 먼저 C로 구현되며, 시뮬레이션이 성공하면 VHDL이나 verilog 코드로 변환된다.
입력으로 HTOOB는 0, 테이블 번호는 B, 데이터 코드는 25를 입력했을 때, 출력으로 프리픽스 길이가 5, 프리픽스 코드가 30, 구간 길이가 6, 구간 코드가 14로 출력 되어 표준 허프만 테이블 B 와 비교했을 때 정상적으로 동작됨을 확인하였다
086sec가 된다. 하드웨어를 이용할 경우 소프트웨어만으로 동작시켰을 때보다 약 17배 이상 빨리 수행됨을 보여 주었다.
5%를 사용하였고 그림 10(c)의 심벌을 추출하는데 걸린 시간은 86 ms로 소프트웨어로만 처리한 경우보다 약 17배 이상 빠른 처리 속도를 보였다. 허프만 부호화 IP의 경우 639 Slices를 사용하여, 전체 FPGA Slice 용량의 2.5%를 사용하였고 하나의 테스트 입력데이터를 처리하는데 걸린 시간이 6.25(11 s)로 소프트웨어로만 처리한 경우보다 약 10배 빠른 처리 속도를 보였다 MMR 부호화 IP의 경우 2, 173 Slices를 人}용하여, 전체 FPGA Slice 용량의 8.6% 를 사용하였고 10개의 테스트 비트맵 영상을 처리하는데 걸린 시간이 23ms로 소프트웨어로만 처리한 경우보다 약 6배 빠른 처리 속도를 보였다. MQ 산술부호화 IP의 경우 4, 122 Slices를 人]용하여, 전체 FPGA Slice 용량의 16.
후속연구
향후 과제로는 고속의 임베디드 시스템에 적합한 JBIG2 전체 시스템 개발을 위해 처리 속도를 향상시킨 각 하드웨어 IP 개발과 심벌사전에 있는 기존의 심벌과 새로 입력되는 심벌을 고속으로 비교하는심벌 비교 및 매칭부의 하드웨어 개발이 필요하다.
참고문헌 (19)
CCITT Draft Rec. T.4, Standardization of Group 3 Facsimile Apparatus for Document Trans-mission, 1979.
CCITT Rec. T.6, Facsimile Coding Schemes and Coding Control Functionfor Group 4 Facsimile Apparatus, 1988
ITU-T Rec. T.82, Information Technology Coded Representation of Picture and Audio Information - Progressive Bi- Level Image Compression, March, 1993.
P. G. Howard, "AT&T JBIG2 Coder Proposal," ISO/IEC JTCI/SC29/WG1, Feb, 1996.
P. G. Howard, F. Kossentini, B. Martins, S. Forchhammer, and W. J. Rucklidge, "The Emerging JBIG2 Standard," IEEE Trans. Circuits, Syst. Video Technology, Vol.8, No.7, pp.838-848, Nov. 1998.
P. G. Howard, "Lossless and Lossy Compression of Text Images by Soft Pattern Matching," ISO/IEC JTC1/SC29/WG1, N205, 1995.
O. Johnsen, J. Segen, and G. Cash, "Coding of Two-Level Pictures by Pattern Matching and Substitution," Bell System Technical Journal, Vol.62, No.8, Oct., 1983.
김 혁, Real Xilinx Processor World, World, 엔트미디어, 2005
Fumitaka Sato, Masayoshi Murayama. "A High Speed Image CODEC VLSI for Document Retrieval," IEEE Trans. Circuits and Systems, Vol.36, No.10, Oct. 1989
Parhi, K.K. "High-speed Huffman decoder architectures," Signals, Systems and Computers, 1991. 1991 Conference Record of the Twenty-Fifth Asilomar Conference on 4-6 Nov. 1991 Page(s):64-68 Vol.1
※ AI-Helper는 부적절한 답변을 할 수 있습니다.