工學碩士學位請求論文...

56

Upload: others

Post on 29-Jan-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

  • http://creativecommons.org/licenses/by-nc-nd/2.0/kr/legalcodehttp://creativecommons.org/licenses/disclaimer-popup?lang=kr

  • 工學碩士學位請求論文

    휴대용 단말기기를 위한 공유 메모리를 갖는

    JPEG2000 인코더의 구현

    Implementation of JPEG2000 Encoder with

    shared Memory for Portable Devices

    2008年 2月

    仁荷大學校 大學院

    情報通信 工學科

    金 炳 秀

  • 工學碩士學位請求論文

    휴대용 단말기기를 위한 공유 메모리를 갖는

    JPEG2000 인코더의 구현

    Implementation of JPEG2000 Encoder with

    shared memory for Portable Devices

    2008年 2月

    指導敎授 鄭 德 鎭

    이 論文을 碩士學位 論文으로 提出함

    仁荷大學校 大學院

    情報通信 工學科

    金 炳 秀

  • 이 論文을 金 炳 秀의 碩士學位 論文으로

    認定함.

    2008年 2月

    主審

    副審

    委員

  • - i -

    요 약

    멀티미디어 기술의 사용 증가와 이전의 정지영상 압축방법 JPEG의 저

    비트에서의 화질 열화, 고압축에서의 블록화 현상 등의 단점으로 인해

    새로운 압축 방식의 필요성이 대두되었고, 그 결과 차세대 정지영상 압

    축 부호화 방식으로서 JPEG2000의 표준화가 완료되었다. JPEG2000의

    주요특징은 ROI(Region of Interest), 무손실 코딩(Lossless Coding)과

    손실 코딩(Lossy Coding), 점진적 전송(Progressive Transmission)등 이

    있으며, 응용분야로는 의학영상, 인터넷, 디지털 카메라, 프린터, 스캐너,

    이동단말기 등 광범위하게 사용되고 있다. 그러나 JPEG2000은 현재의

    JPEG과 비교하여 코딩 알고리즘이 훨씬 더 복잡하고 더 많은 계산 량이

    요구된다. 특히 무선 환경의 휴대용 기기에서는 하드웨어의 복잡성과 계

    산 량, 메모리 사이즈 등이 전력소비에 큰 영향을 미친다. 따라서 휴대용

    단말기기를 위한 JPEG2000 인코더를 구현하기 위해서는 적은 하드웨어

    와 메모리 사이즈로 구성된 별도의 전용 하드웨어를 설계하는 것이 바람

    직하다.

    본 논문에서는 하드웨어 사이즈를 줄이는 이산 웨이블릿 변환

    (Discrete Wavelet Transform)의 구조와 메모리 구조를 새롭게 제안하

    고자 한다. 이산 웨이블릿 변환 블록에서 곱셈 연산대신 단순 가산과

    shift 연산만을 이용하여 연산 량을 줄이고 구조를 단순화하였고, 이산

    웨이블릿 변환 블록과 비트 평면 코딩(Bit Plane Coding) 블록이 같은

    메모리를 사용함으로써 전체 메모리 사이즈를 줄일 수 있도록 하였다.

    그 결과 제안한 JPEG2000 인코더는 기존의 JPEG2000 구조에 비해 15%

    가량 줄어든 메모리 사이즈를 갖는다[1]. 메모리 사이즈 감소를 통해 전

  • - ii -

    력 소비를 줄일 수 있고, 이를 통해 무선기기에서 중요시되는 배터리 사

    용량을 증대시킬 수 있어 본 연구에서 제안된 JPEG2000 인코더는 저 전

    력 소비가 요구되는 휴대용 단말분야에서 응용이 가능할 것으로 기대된

    다.

  • - iii -

    Abstract

    With advance of multimedia technologies, a new compression

    method is required. So the JPEG2000 was developed to overcome

    disadvantages of the previous JPEG, such as image quality distortion

    in low bit rate, blocking artifacts in high rates of compression.

    JPEG2000 key features are ROI (Region of Interest), Lossless Coding

    and Lossy Coding, and a progressive transmission etc. And JPEG2000

    applied to many still image applications, such as medical image, the

    Internet, the digital camera, the printer, the scanner and the mobile

    terminal etc. But the JPEG2000’s coding algorithm is more

    complicated than JPEG and JPEG2000 needs more computation

    resource. A particularly portable device in mobile application, power

    consumption is affect by hardware complexity and computation

    resource, and memory size. Therefore special purpose hardware with

    low memory and low complexity is need to implement the JPEG2000

    encoder for portable devices.

    This paper proposed low complexity Discrete Wavelet Transform

    architecture and JPEG2000 encoder with shared memory. Discrete

    Wavelet Transform architecture reduces the hardware size by using

    the shift operation instead of the multiplication operation. Also

    JPEG2000 encoder reduces the memory size by the Discrete Wavelet

    Transform block and Bit Plane Coding block shared the memory. In

    result, memory size is reduced about 15 percentage compare to

  • - iv -

    Andra’s architecture[1]. Since the proposed architecture was

    implemented to reduce the memory size and power consumption and

    increase the battery life, proposed JPEG2000 encoder can be applying

    to portable devices requires low power consumption.

  • - v -

    목 차

    요 약 ··················································································································ⅰ

    Abstract ············································································································ⅲ

    그림 목차 ··········································································································ⅶ

    표 목차 ··············································································································ⅸ

    Ⅰ. 서 론 ············································································································1

    Ⅱ. JPEG2000 Standard ···············································································3

    2.1 JPEG2000의 특징 ···················································································3

    2.2 JPEG2000 시스템 Overview ·······························································4

    2.2.1 이미지 전처리 단계 ···································································· 5

    2.2.1.1 타일링 ·····················································································5

    2.2.1.2 디씨 레벨 시프팅 ·································································6

    2.2.1.3 멀티 컴포넌트 변환 ·····························································6

    2.2.2 압축 단계 ························································································8

    2.2.2.1 이산 웨이블릿 변환 ···························································10

    2.2.2.2 양자화 ···················································································12

    2.2.2.3 Region of Interest 코딩 ···················································13

    2.2.2.4 Rate Control ········································································14

    2.2.2.5 Entropy Encoding ······························································15

    2.2.3 Tire-2 코딩과 비트스트림 형성단계 ······································16

  • - vi -

    Ⅲ. JPEG2000 주요 블록 시스템 모델링 ···············································17

    3.1 이산 웨이블릿 변환 모델링 ·······························································17

    3.2 비트 평면 코딩 모델링 ·······································································24

    3.2.1 코딩 방법 ······················································································24

    3.2.1.1 Zero Coding (ZC) ······························································24

    3.2.1.2 Sign Coding (SC) ······························································25

    3.2.1.3 Magnitude Refinement Coding (MRC) ························26

    3.2.1.4 Run-Length Coding (RLC) ·············································26

    3.2.2 코딩 패스 ······················································································27

    3.2.2.1 Significance Propagation Pass (SPP) ··························27

    3.2.2.2 Magnitude Refinement Pass (MRP) ····························28

    3.2.2.3 Clean Up Pass (CUP) ······················································29

    3.3 이진 산술 부호화기 모델링 ·······························································30

    Ⅳ. JPEG2000 인코더 시스템 구현 ·······················································33

    4.1 제안된 JPEG2000 인코더의 구조 ·····················································33

    4.1.1 이산 웨이블릿 변환 블록 ··························································34

    4.1.2 비트 평면 코딩 블록 ··································································35

    4.1.3 이진 산술 부호화기 블록 ··························································36

    Ⅵ. 결론 ············································································································37

    Ⅶ. 참고 문헌 ··································································································39

  • - vii -

    그림 목차

    그림 1. DC Level Shifting ··············································································6

    그림 2. (a) JPEG2000 인코더 알고리즘의 블록다이어그램 (b) 데이터흐

    름 ·····························································································································9

    그림 3. 2차원 신호에서의 이산 웨이블릿 변환의 확장 ·····························11

    그림 4. 데드 존 양자화 ·····················································································13

    그림 5. 코드블록의 스캔 양식 ·········································································16

    그림 6. 순방향 이산 웨이블릿 변환(이 2일 때) ·····································17

    그림 7. 순방향 이산 웨이블릿 변환 과정 ·····················································18

    그림 8. 이차원 부 밴드 분해 과정 ·································································19

    그림 9.(a) 수직방향의 부 밴드 분해 과정 (b) 수평방향의 부 밴드 분해

    과정 ·······················································································································20

    그림 10. 1차 부 밴드 분해 과정 ·····································································21

    그림 11. 신호의 주기 대칭적 확장 ·································································21

    그림 12. 이산 웨이블릿 변환 MATLAB 시뮬레이션 모델 ······················23

  • - viii -

    그림 13. Significance Propagation Pass의 순서도 ····································27

    그림 14. Magnitude Refinement Pass의 순서도 ········································28

    그림 15. Clean Up Pass의 순서도 ·································································29

    그림 16. 이진 산술 부호화기 흐름도 ·····························································31

    그림 17. 비트 평면 코딩 블록과 이산 부호화 블록의 MATLAB 시뮬레

    이션 모델 ···········································································································31

    그림 18. 제안된 JPEG2000 인코더 구조 ······················································33

    그림 19. 이산 웨이블릿 변환 블록 구조도 ···················································34

    그림 20. 비트 평면 코딩의 VLSI 구조 ·························································35

    그림 21. 이진 산술 부호화기 구조 ·································································36

  • - ix -

    표 목차

    표 1. JPEG2000과 JPEG의 BER과 bpp에 따른 PSNR결과 ·······················1

    표 2. 이미지의 성능에 대한 타일링의 영향 ···················································6

    표 3. Daubechies 9/7 필터 계수 ····································································12

    표 4. Le Gall 5/3 필터 계수 ···········································································12

    표 5. 1차 확장을 하였을 때와 하지 않았을 때의 PSNR 비교 ················21

    표 6. 부 밴드에 따른 Zero Coding 콘텍스트 표 ········································24

    표 7. Sign Coding을 위한 참고 표 ································································25

    표 8. Magnitude Refinement Coding을 위한 참고 표 ······························26

    표 9. 19개의 콘텍스트와 초기 색인 값 ·························································30

    표 10. 일반적인 JPEG2000과 제안된 구조의 메모리 사이즈 비교 ·········37

  • 1

    Ⅰ. 서 론

    최근 콘텐츠 디지털화의 확산과 유∙무선 인터넷의 발달로 인해 콘텐

    츠들의 전달 및 보급이 매우 활발해지고 있다. 콘텐츠 중 가장 사용빈도

    의 증가가 큰 것이 영상 콘텐츠인데, 영상 콘텐츠는 매우 함축적인 정보

    를 포함하는 장점이고 있는 반면, 그 데이터양이 방대한 단점 또한 갖고

    있다. 따라서 영상 데이터양을 줄이기 위한 노력이 지난 20여 년간 진행

    되어오고 있다. 그 중 정지영상에 대해서는 JPEG(Joint Photographic

    Expert Group)이 국제 표준으로 채택된 바 있다. JPEG은 고 압축에서의

    블록화 현상과 저 비트 율에서 뚜렷한 화질열화 현상을 보이고, 또한 잡

    음 환경에서 성능이 크게 저하되는 단점을 가지고 있다. 이러한 단점을

    극복하기 위해 새로운 정지영상 압축방법 표준인 JPEG2000이 개발되었

    다. JPEG과 JPEG2000의 BER(Bit Error Rates)과 bpp(bit per pixel)에

    따른 PSNR(Peak Signal to Noise Ratio)결과는 표1과 같다[1].

    bpp

    BER → 0 1e-6 1e-5 1e-4

    0.25JPEG2000 23.06 23.00 21.62 16.59

    JPEG 21.94 21.79 20.77 16.43

    0.5JPEG2000 26.71 26.42 23.96 17.09

    JPEG 25.40 25.12 22.95 15.73

    1.0JPEG2000 31.90 30.75 27.08 16.92

    JPEG 30.84 29.24 23.65 14.80

    2.0JPEG2000 38.91 36.38 27.23 17.33

    JPEG 37.22 30.68 20.78 12.09

    표 1. JPEG2000과 JPEG의 BER과 bpp에 따른 PSNR결과

    JPEG2000은 JPEG에 비해 압축률이 뛰어나면서도(0.25bpp이하), 고화

    질의 이미지를 제공하고, ROI(Region of Interest), Lossy coding과

    Lossless coding, 화소의 정밀도와 해상도의 차이에 의한 Progressive

  • 2

    Transmission등의 특징을 갖는다. 또한 응용분야로는 의료영상, 인터넷,

    디지털 카메라, 프린터, 스캐너, 이동단말기 등 대용량의 정지화상 정보

    를 저장해야 하는 언론 및 출판계, 사진업계 등에서 광범위하게 사용될

    것으로 예상된다.

    그러나 JPEG2000은 현재의 JPEG과 비교하여 코딩 알고리즘이 훨씬

    더 복잡하고 더 많은 계산 량이 요구된다. 특히 무선 환경의 휴대용 기

    기에서는 하드웨어의 복잡성과 계산 량, 메모리 사이즈 등이 전력소비에

    큰 영향을 미친다. 따라서 휴대용 단말기기를 위한 JPEG2000 Encoder를

    구현하기 위해서는 적은 하드웨어와 메모리 사이즈로 구성된 별도의 전

    용 하드웨어를 설계하는 것이 바람직하다.

    따라서 본 논문에서는 휴대용 단말기기에 맞는 저 복잡도, 저 메모리

    JPEG2000 인코더를 설계하기 위하여 이산 웨이블릿 변환(Discrete

    Wavelet Transform)의 구조에서 연산 량을 줄이고 구조를 단순화하는

    기법과 전체 JPEG2000에서 메모리 사용을 줄이는 메모리 구조를 새롭게

    제안하고 설계한 내용을 설명하고 있다.

    본 논문의 구성은 Ⅱ-1절에서 JPEG2000의 전반적인 특징에 대해 서

    술하고, Ⅱ-2절에서는 JPEG2000의 개요에 대해 서술하였다. Ⅲ절에서는

    이산 웨이블릿 변환, 비트 평면 코딩, 산술 부호화기로 구분하여

    JPEG2000의 주요 블록에 대해 설명하였다. Ⅳ절에서는 Ⅲ절에서 보여준

    주요 블록들을 표준에 맞게 설계 및 구현하였다. 제안한 구조대로 설계

    한 후 시뮬레이션 및 합성 결과를 서술하고 있으며, 마지막 Ⅴ절에서는

    논문의 주제 및 제안된 JPEG2000 인코더의 구현 결과를 전체적으로 고

    찰하였다.

  • 3

    Ⅱ. JPEG2000 Standard

    2.1 JPEG2000의 특징

    JPEG2000은 International Organization for Standardization(ISO)과

    International Electrotechnical Commission(IEC)의 공동의 노력으로

    만들어진 정지영상 압축방법 표준이다. JPEG2000은 다양한

    어플리케이션에 대해 필수적으로 중요한 특징들을 다수 제공하여 현재의

    JPEG이 제공하지 못하는 최상의 화질과 높은 압축률을 제공한다.

    JPEG2000에 의해 과학영상, 그래픽영상, 의료영상, 인터넷, 프린터,

    스캐너, 디지털 카메라, 멀티미디어 이동통신 등 새로운

    어플리케이션들을 시장으로 확보하였다. 각각의 어플리케이션들마다

    표준에 대하여 요구하는 사항들이 있으며 JPEG2000은 다음 특징을

    만족해야 한다.

    1. 낮은 비트율에서의 뛰어난 성능을 보인다. JPEG2000은 매우

    낮은 bit-rates에서(0.25bit/pixel) 현재의 표준보다 더 뛰어난

    성능을 제공해야 한다. 이 때 낮은 비트 율을 지원함으로 인한

    rate-distortion 특정 스펙트럼 부분의 열화가 있어서는 안 된다.

    2. 무손실과 손실 압축을 제공한다. JPEG2000은 점진적

    디코딩과정에서 무손실 압축을 제공하도록 요구되고 있다.

    3. 화소의 정밀도와 표현범위에 따른 점진적 전송을 제공한다. 화소

    정밀도, 혹은 공간 해상도를 증가시키면서 영상을 재구성하는

    점진적 전송은 많은 어플리케이션에서 필수적인 것이다. 이를 통해

  • 4

    서로 다른 타깃 디바이스에서 영상을 재구성할 때 서로 다른

    해상도와 화소 정밀도를 가질 수 있다. 변화에 따라 영상을 재구성

    가능하도록 점진적 전송이 이루어져야 한다.

    4. ROI(Region of Interest) 코딩을 제공한다. ROI는 JPEG2000에

    포함된 기능 중 하나로서 영상에서 다른 부분보다 더 중요한

    부분에 대해 다른 부분보다 더 나은 화질을 갖도록 부호화 될 수

    있다. ROI 내에 있는 비트들을 더 상위 위치의 bit plan으로

    위치시키기 위해 ROI scaling 기반의 방법이 사용된다. JPEG2000

    Part-1에 정의된 ROI는 MAXSHIFT 방법이라 불리며, 영역에 대한

    정보와 영역의 복호에 대한 추가정보 필요 없이 어떠한 모양의

    영역도 ROI 부호화가 가능하다.

    5. 비트 에러에 대한 강인성을 제공한다. Codestream을 디자인 할

    때 비트 에러에 대한 강인성을 고려해야 한다. 복호화 된 영상

    화질의 평가에서 codestream은 그 어떤 부분보다 중요하다.

    Codestream을 알맞게 설계하면 에러 보상 시스템에 도움을 줄

    수가 있다.

    2.2 JPEG2000 시스템 Overview

    전체 압축 시스템은 간단히 세 단계로 나눌 수 있다. 이미지

    전처리(Image Preprocessing)단계와 압축(Compression)단계, 그리고

    Tier-2 코딩과 비트스트림 형성(Tier-2 Coding and Bitstream

    Formation)단계이다. JPEG2000은 타일 단위로 분리된 영상을 입력으로

    받아서 이산 웨이블릿 변환을 수행하여 4개의 부 밴드로 분할한다.

    각각의 부 밴드는 비트 평면 코딩을 위해 코드블록 단위로 분리되며, 각

  • 5

    코드블록을 다시 비트 평면 단위로 분리되어 코딩을 수행한다. 그리하여

    나온 콘텍스트와 디시전 값을 이용하여 이산 산술 부호화과정을 거쳐

    코드 스트림을 생성한다. 코드 스트림은 Tier-2 코딩과 비트 스트림

    형성과정을 통해 JPEG2000의 패킷구조에 적합한 최종 코드 스트림을

    생성한다.

    2.2.1 이미지 전처리단계

    이미지 전처리 단계는 선택적인 사항으로써 JPEG-2000을 사용하여

    압축을 하는 어플리케이션에 따라 실행될 수도 있고 그렇지 않을 수도

    있다. 이미지 전처리 단계는 타일링(tiling), 디씨 레벨 시프팅(DC level

    shifting), 멀티컴포넌트 변환(multicomponent transformation)으로

    구성되어 있다.

    2.2.1.1 타일링

    타일링은 코덱(CODEC)에서 사용하는 메모리의 크기가 압축할 영상의

    크기보다 더 작을 때 사용하는 방법으로써 입력 영상을 겹치지 않는 더

    작은 사각형의 블록으로 나누는 작업이다. 이 때 각각의 사각형 블록을

    타일(tile)이라 부르며, 각각의 타일은 독립적으로 코딩 된다. 웨이블릿

    변화와 양자화, 그리고 엔트로피 코딩 등을 포함한 모든 연산들은

    이미지 타일에 독립적으로 수행되어진다. 표 2는 타일링을 하였을 때와

    하지 않았을 때의 PSNR 결과 값을 나타내고 있다[2]. 타일링을 하였을

    때 성능의 감소가 일어나고, 타일 사이즈를 작게 할 경우 타일링

    아티펙트가 더욱 더 많이 발생한다.

  • 6

    PSNR

    No Tile 25.07

    Tiles of size

    256×25624.70

    Tiles of size

    256×25623.91

    표 2. 이미지의 성능에 대한 타일링의 영향

    2.2.1.2 디씨 레벨 시프팅

    보통 영상의 픽셀들은 부호가 없는 정수로 표현되어 있다. 그러나

    수학적인 계산을 하기 위해선 각각의 픽셀들은 부호가 있는 정수로

    표현되어야 하며, 이를 위해 디씨 레벨 시프팅 처리를 하게 된다. 그림

    1은 디씨 레벨 시프팅을 나타내고 있다.

    그림 1. DC Level Shifting

    2.2.1.3 멀티컴포넌트 변환

    컬러 영상의 경우 보통 3가지 컴포넌트(예를 들면 R, G, B)로 구성되어

    있다. 이런 컬러 영상은 압축하기 전에 컴포넌트간의 상관성을 줄이기

    위해 멀티컴포넌트 변환을 거치게 된다. 멀티컴포넌트 변환을 거치게

    되면 여분이 줄어들고 압축 성능 향상이 일어난다.

    JPEG-2000 Part1에서는 멀티컴포넌트 변환을 위해 2가지 변환을

  • 7

    제공하고 있다. 그 중 하나는 가역 컬러 변환(Reversible Color

    Transform)이고 나머지 하나는 비가역 컬러 변환(Irreversible Color

    Transform)이다. 가역 컬러 변환은 손실 압축(lossy compression)과

    무손실 압축(lossless compression) 모두에 사용될 수 있는 반면, 비가역

    컬러 변환은 손실 압축에서만 사용할 수 있다. 가역 컬러 변환과 비가역

    컬러 변환의 순방향, 역방향 변환 공식은 다음과 같이 주어진다.

    순방향 가역 컬러 변환

    ⌊⌋

    역방향 가역 컬러 변환

    ⌊ ⌋

    순방향 비가역 컬러 변환

  • 8

    역방향 비가역 컬러 변환

    2.2.2 압축단계

    이전 섹션에서 설명한 이미지 전처리 단계를 거친 후 압축단계에서

    실제로 압축된 코드를 발생시킨다. 그림 2의 (a)는 압축 시스템의

    기능적 블록다이어그램을 나타내고 있고, 그림 2의 (b)는 압축시스템의

    데이터 흐름을 나타내고 있다. 그림 2의 (a)와 (b)를 보면 각각의 전

    처리된 성분들이 독립적으로 압축되고 전송되는 것을 볼 수 있다.

  • 9

    그림 2. (a) JPEG2000 인코더 알고리즘의 블록다이어그램 (b) 데이터흐름

    압축단계는 주로 세 단계로 나누어지는데, 그 중 첫 번째 이산

    웨이블릿 변환(Discrete Wavelet Transform)단계이고, 두 번째가

    양자화(Quantization) 단계, 그리고 마지막 엔트로피 코딩(Entropy

    Encoding)단계이다. 전처리 과정을 거친 후 각각의 성분은 이산

    웨이블릿 변환에 의해 독립적으로 분해된다. 이산 웨이블릿 변환은

    각각의 성분을 다른 해상도 레벨에 따라 다수의 부 밴드(subband)로

    분해한다. 손실 압축의 경우에는 각각의 부 밴드가 양자화 파라미터에

    의해 독립적으로 양자화 된다. 양자 화된 부 밴드들은 다수의 같은

    크기의 코드블록으로 나눠지고, 이 코드블록들은 독립적으로 엔트로피

  • 10

    코딩을 거쳐 그림 2의 (b)에 보이는 압축된 비트 스트림을 생성한다.

    다음 절에서 압축 단계의 주요한 3가지 기능에 대하여 논의해 보고자

    한다.

    2.2.2.1 이산 웨이블릿 변환

    JPEG에서는 8x8 블록 단위의 이산 코사인 변환(Discrete Cosine

    Transform)을 사용하는 반면, JPEG-2000에서는 이산 웨이블릿 변환을

    사용한다. 이전에 언급했듯이 이산 웨이블릿 변환은 본질적으로 타일(영

    상) 성분을 다른 해상도 레벨에 따라 다수의 부 밴드로 분해한다. 영상

    압축에 사용되는 2차원 이산 웨이블릿 변환은 1차원 웨이블릿 변환을 영

    상의 열 방향으로 적용한 데이터에 다시 행 방향으로 1차원 웨이블릿 변

    환을 적용함으로써 얻어진다. 그림 3은 영상 압축에 사용되는 2차원 이

    산 웨이블릿 변환을 나타낸 것이다.

  • 11

    그림 3. 2차원 신호에서의이산 웨이블릿 변환의확장

    영상에 웨이블릿 변환을 1번 적용시키면 영상은 4개의 부 밴드로 분해

    된다. 4개의 부 밴드는 LL1, LH1, HL1, HH1이고 LL1은 원 영상을 가로

    와 세로 방향으로 2:1로 샘플링 한 영상의 근사 영상을 나타낸다. 이

    LL1 부 밴드에 다시 2차원 웨이블릿 변환을 적용할 수 있으며 그 결과

    LL1 부 밴드는 다시 4개의 부 밴드로(LL2, LH2, HL2, HH2) 분해된다.

    LL2 부 밴드에 한 번 더 2차원 웨이블릿 변환을 적용하면 LL2 부 밴드

    는 다시 4개의 부 밴드로 분해되며, 이러한 방식으로 계속 해서 2차원

    웨이블릿 변환을 적용할 수 있다. JPEG-2000 Part1에는 하나의 타일 컴

    포넌트에 2차원 웨이블릿 변환을 최대 32회 적용할 수 있도록 하였다.

    또한 JPEG2000 표준은 필터 방식과 리프팅 방식의 이산 웨이블릿 변환

    을 모두 지원한다. 다음에서는 JPEG2000표준 Part 1에서 지원하는 두

  • 12

    가지 기본 웨이블릿 필터에 관해 설명하고자 한다.

    손실 압축에서는 JPEG2000의 기본 웨이블릿 필터로 Daubechies (9, 7)

    biorthogonal spline 필터가 사용된다. 표 3은 Daubechies의 필터 계수를

    나타낸 것이다.

    i Low-pass Filter h(i) High-pass Filter g(i)

    0 0.602949018236358 1.1150870524569

    ±1 0.26686411844287 -0.59127176311424

    ±2 -0.078223266528987 -0.05754352622849

    ±3 -0.016864118442874 0.091271763114249

    ±4 -0.026748757410809

    표 3. Daubechies 9/7 필터 계수

    무손실 압축에서는 JPEG2000의 기본 웨이블릿 필터로 Le Gall (5, 3)

    biorthogonal spline 필터가 사용된다. Le Gall 필터는 무손실 압축에서의

    기본 필터이지만 손실 압축에서 역시 사용될 수 있다. 표 4는 Le Gall의

    필터 계수를 나타낸 것이다.

    i Low-pass Filter h(i) High-pass Filter g(i)

    0

    1

    ±1

    ±2

    표 4. Le Gall 5/3 필터 계수

    2.2.2.2 양자화

    무손실 압축의 경우 양자화 과정을 거치지 않지만, 손실압축일 경우

    이산 웨이블릿 변환 과정을 거쳐 발생된 모든 부 밴드들은 양자화과정을

  • 13

    거친다. 양자화 계수는 정밀도를 감소시키는 작업이므로, 이 과정에서

    이미지의 왜곡이 발생한다. JPEG-2000 Part 1에서는 원점 근처에

    데드-존 (dead-zone)이 있는 균일 스칼라 양자화(uniform scalar

    quantization)를 사용한다. 그림 4에 보이듯이, 스텝 사이즈가 Δb일 경우

    데드-존의 길이 는 2Δb가 되며, 각각의 부 밴드에 대해 각기 다른

    양자화 스텝 사이즈를 사용할 수 있다

    그림 4. 데드 존 양자화

    2.2.2.3 Region of Interest 코딩

    JPEG2000에서는 영상의 특정 관심영역(ROI)이 다른 부분보다 높은

    중요성을 가지는 응용분야에서의 기능을 제공하고 있다. 이 기능은 영상

    전체를 복원하기 이전에 영상의 특정 영역이나 사용자 측면에서 볼 때

    관심영역에 대해서 우수한 화질을 보장하면서 먼저 전송하여야하는

    응용분야에서 활용되어진다[2]. 이러한 ROI 코딩은 JPEG2000표준

    Part1에서 Maxshift 방법을 표준으로 채택하여 사용하고 있다. Maxshift

    방법은 non-ROI 영역의 가장 큰 값을 갖는 계수보다 ROI영역의

  • 14

    계수들을 높은 bit-plane에 위치하도록 스케일링 업(scaling up)하는

    것이다.

    2.2.2.4 Rate Control

    웨이블릿 변환 양자화와 엔트로피 코딩과 같은 주요한 JPEG2000의

    코딩 기술은 명확히 기술되어 있지만. 몇몇 구현 이슈들은 각 개발자의

    특권으로 남아 있다. Rate Control 역시 그러한 개방된 이슈들 중

    하나이다. Rate Control은 전체이미지에서 원하는 Code Rate를 얻기

    위한 양자화와 절삭에 의해 생기는 왜곡을 최소화하면서 적절한 인코딩

    비트 비율을 얻기 위해 각 서브밴드의 코드블록에 할당된 비트 비율을

    조절하는 프로세서이다. 이것은 다른 방법을 통해서도 조절할 수 있는데,

    허용된 왜곡 내에서 최대의 에너지 레벨을 얻도록 코딩 비율 조절하는

    것이다.

    JPEG2000은 코드블록에 따라 개별적으로 비트스트림을 만들어낸다.

    따라서 왜곡률 최적화 알고리즘은 목적 비트 비율에 따라 왜곡을

    최소화하기 위해 적절한 절삭점을 생성한다. 영상이 완전히 압축된 후에

    왜곡률 최적화 알고리즘은 각각의 코딩유닛의 비율과 그 비율에 대한

    왜곡률 정보를 통해 적용된다. 그래서 Post Compression Rate

    Distortion으로 불린다.

    또 다른 방법으로 양자화 단계를 조절하는 방법이 있다. 스텝사이즈를

    크게 하는 것은 비트 비율을 낮출 것이다. 하지만 이것은 단지 손실

    압축에서만 적용가능하다. 또한 계속해서 스텝사이즈를 바꾸는 것은

    Tire1코딩에서의 재 연산을 필요로 한다. Tire1 코딩은 계산양이 매우

    많은 부분이다. 따라서 이러한 접근 방법은 계산양이 정형화된

  • 15

    어플리케이션에서는 적당하지 않다. 하지만 비트 비율 컨트롤은 완전히

    인코딩 이슈이며, JPEG2000의 오픈이슈로 남아있다. 이것은 개발자가

    원하는 왜곡율과 하드웨어 가격을 높이게 되는 계산 양을 적절히 조절할

    수 있는 개발자의 특권이다. 하드웨어 구현을 위해서 왜곡율 조절

    알고리즘은 왜곡율 최적화 기술을 통해 적절한 기준점을 찾고

    비트스트림 압축을 위한 엔트로피 코딩엔진에 그 기준점을 전달하기

    위해서는 마이크로 컨트롤러를 필요로 한다.

    2.2.2.5 Entropy Encoding

    bit-plane coding에서는 4가지 코딩 방법과 3가지 코딩 패스에 의해

    콘텍스트(CX)와 디시전(D)을 출력하고, binary Arithmetic coding에서는

    입력된 콘텍스트에 대한 확률 값의 구간갱신과 코드 값 연산을 통해서

    압축된 코드인 비트스트림을 출력한다.

    bit-plane coding은 웨이블릿 변환과 양자 화된 영상이미지의 각 부

    밴드별 코드블록내의 데이터를 비트 평면으로 나눈 후, 코딩하고자하는

    샘플과 주위 샘플들의 상태정보와 값을 참고하여 4가지 코딩 방법과

    3가지 코딩 패스에 의해 콘텍스트를 추출하고 그룹화 함으로써 나중에

    수행될 산술부호화 과정의 데이터양을 최대한 줄이기 위해 사용된다.

    코드블록내의 모든 비트 평면은 일정한 순서에 의해 3가지 패스를

    통과하며, 비트 평면 내의 각각의 샘플들은 3가지 패스를 통과하는 동안

    단 한번 코딩된다. 코드블록에서 코딩 순서는 스트립(stripe)단위로

    수행되며 그림 5는 샘플의 스캔 순서를 보여준다.

  • 16

    그림 5 코드블록의 스캔 양식

    산술부호화기는 MQ coder에 기반을 둔, 이진 적응 산술부호화기로서,

    각 샘플간의 상관관례를 이용해 추출된 콘텍스트에 기반을 둔 통계적인

    확률예측 테이블을 이용하여 적응적으로 확률을 추정하는 방법을

    사용한다. 부호화는 누적확률구간 [0, 1)내에서 현재의 부호화 구간을

    2개의 부 구간 즉 LPS(Less Probable Symbol)에 대한 구간과

    MPS(More Probable Symbol)에 대한 구간으로 분할하는 철차를

    반복적으로 수행하며, 입력 심벌들에 대하 누적확률 분포를 산술적으로

    계산하여 코드스트림을 생성한다.

    2.2.3 Tier-2 코딩과 비트스트림 형성단계

    Tier-1 코딩에 의해 각각의 코드블록에 관한 압축된 비트가 생성된

    이후 Tier-2 코딩엔진이 각각의 코드블록에 관한 블록요약정보와

    레이어(Layer)를 효율적으로 나타낸다.

  • 17

    III. JPEG2000 시스템 주요 블록 모델링

    3.1 이산 웨이블릿 변환 모델링

    순방향 이산 웨이블릿 변환(FDWT)에서는 분해 수준을 나타내는

    에 따라 타일 성분 샘플 를 성분을 지닌 부 밴드들로

    변환한다. 이산 웨이블릿 변환을 거친 후 총 × 개의 부 밴드가

    생성된다. 그림 5는 이 2일 때의 모든 부 밴드를 표현하고 있다.

    그림 6. 순방향 이산 웨이블릿 변환(이 2일 때)

    순방향 이산 웨이블릿 변환 과정은 변수 lev(현재 분해 수준)를 0으로

    초기화하고, 부 밴드 를 로 세팅함으로서 시작한다.

    2D_SD과정은 모든 lev마다 수행되고 변수 lev가 이 될 때까지

    반복하여 수행된다. 그림 6은 순방향 이산 웨이블릿 변환 과정을

    나타내고 있다.

  • 18

    그림 7. 순방향 이산 웨이블릿 변환 과정

    2차원 부 밴드 분해(2D_SD)과정은 입력 2차원 행렬을

    , , , 4개의 부

    밴드로 분해한다. 4개의 부 밴드들은 원래의 샘플 행렬의 필터되고

    다운샘플된 형태이다. 2차원 부 밴드 분해과정은 먼저 의 모든

    행에 수직방향의 부 밴드 분해(VER_SD)과정을 적용시킨 후 모든 열에

    수평방향의 부 밴드 분해(HOR_SD)과정을 적용시킨다. 그 후 2차원

    디인터리브(2D_DEINTERLEAVE)과정을 적용하여 4개의 부 밴드를

    얻는다. 그림 7은 2차원 부 밴드 분해(2D_SD)의 과정을 나타내고 있다.

  • 19

    그림 8. 이차원 부 밴드 분해 과정

    그림 8은 수직방향의 부 밴드 분해과정과 수평방형의 부 밴드

    분해과정을 나타내고 있다. 각각 입력으로 들어온 행렬에 대해서 각

    행과 또는 각 열에 대하여 1차 부 밴드 분해(1D_SD)를 수행한다. 1차

    부 밴드 분해를 수행한 후의 결과 행 과 결과 열은 다시 원래 위치의

    행과 열에 위치하게 된다.

  • 20

    그림 9. (a) 수직방향의 부 밴드 분해 과정 (b) 수평방향의 부 밴드 분해과정

    그림 9는 1차 부 밴드 분해과정을 나타내고 있다. 1차 부 밴드 분해는

    1차 확장 과정과 1차 순방향 필터과정으로 구성되어 있다. 이 확장

    과정은 주기 대칭적 확장(periodic symmetric extension)이라고 불린다.

    그림 10과 같이 주기 대칭적 확장은 첫 번째 샘플을 중심으로 오른편에

    있는 샘플을 왼편으로 복사하고, 마지막 샘플을 중심으로 왼편에 있는

    샘플을 오른편으로 복사하여 수행한다. 이 확장 과정을 수행함으로써

    영상의 경계에서 일어나는 화질 열화를 방지하여 더 좋은 품질의 영상을

    얻을 수 있다. 표 5는 1차 확장을 하였을 때와 하지 않았을 때의

  • 21

    PSNR값을 보여주고 있다.

    그림 10. 1차 부 밴드 분해 과정

    그림 11. 신호의 주기 대칭적 확장

    5/3 Filter 9/7 Filter

    Extension No Extension Extension No Extension

    LENA 128 Inf 41.2018 Inf 39.9084

    LENA 512 Inf 47.1687 Inf 45.881

    houses 512 Inf 48.9674 Inf 46.8500

    bridge 512 Inf 46.9416 Inf 46.3998

    표 5. 1차 확장을 하였을 때와 하지 않았을 때의 PSNR 비교 결과 값

    1차원 순방향 필터과정에서는 이산 웨이블릿 변환의 구현이 매우

    용이한 리프팅 기반의 필터를 사용하여 가역 변환과 비가역 변환을

  • 22

    수행한다. 가역 1차원 필터링과, 비가역 1차원 필터링 공식은 다음과

    같이 주어진다.

    가역 1차원 필터링

    ⌊ ⌋

    ⌊ ⌋

    비가역 1차원 필터링

    ← ×

    ← ×

    ← ×

    ← ×

    ←×

    ←×

  • 23

    이산 웨이블릿 연산 블록에 대한 시뮬레이션은 Matlab을 이용하여

    실시하였다. 시뮬레이션에 사용한 모델은 그림과 같다.

    그림 12. 이산 웨이블릿 변환 MATLAB 시뮬레이션 모델

    이산 웨이블릿 변환 과정은 JPEG2000 표준에서 제안하고 있는 것과 같

    다. 입력 영상이 들어오게 되면 이상에서 설명하였던 과정으로 수직방향

    의 부 밴드 분해과정과 수평방형의 부 밴드 분해과정을 거치고 디인터리

    링 과정을 거쳐 4개의 부 밴드로 분해된다. 역방향 이산 웨이블릿 변환

    은 순방향 이산 웨이블릿 변환을 역으로 수행하면 된다. 그리하여 나온

    영상과 원 영상의 MSE와 PSNR을 측정하였다. 시뮬레이션 환경에서는

    부동 소수점으로 수를 표현하여, MSE는 0, PSNR은 무한대로 측정된다.

  • 24

    3.2 비트 평면 코딩 모델링

    3.2.1 코딩방법

    현재 코딩되는 샘플 값과 주변의 샘플들의 상태정보를 참고하여 4가지

    코딩방법을 수행한다. Zero Coding, Sign Coding, Magnitude

    Refinement Coding, Run-Length Coding 등에서 0에서 18까지의

    콘텍스트를 생성하여 다음 처리 블록인 산술 부호화기로 전달한다.

    3.2.1.1 Zero Coding(ZC)

    Zero Coding은 이웃한 주변 8개 샘플들의 상태정보와 현재 샘플이

    속해있는 부 밴드의 특성을 참고하여 코딩을 수행한다. Zero Coding에서

    생성하는 콘텍스트의 값은 표 6에 나와 있고 디시전 값은 현재 코딩하는

    샘플의 값이다.

    LL, LH 부 밴드 HL 부 밴드 HH 부 밴드

    CX2 x x x 2 x x ≥3 8

    1 ≥1 x ≥1 1 x ≥1 2 7

    1 0 ≥1 0 1 ≥1 0 2 6

    1 0 0 0 1 0 ≥2 1 5

    0 2 x 2 0 x 1 1 4

    0 1 x 1 0 x 0 1 3

    0 0 ≥2 0 0 ≥2 ≥2 0 2

    0 0 1 0 0 1 1 0 1

    0 0 0 0 0 0 0 0 0

    표 6. 부 밴드에 따른 Zero Coding 콘텍스트 표

  • 25

    3.2.1.2 Sign Coding(SC)

    Sign Coding은 샘플의 부호비트를 코딩하는 방법으로 부호는 나타내는

    콘텍스트를 출력시키기 때문에 하나의 코드불록에서 단 한번 수행된다.

    Sign Coding에서는 수평 참고 값 H와 수직 참고 값 V에 의해서

    콘텍스트와 디시전 값이 결정된다. 현재 코딩되고 있는 위치가 (m,

    n)이라 가정하면 H와 V값과 디시전 값은 다음과 같다.

    × ×

    × ×

    그리고 구해진 H와 V를 이용하여 콘텍스트와 값을 구하는데 이는

    표 7에 나와 있다.

    H V CX

    1 1 0 13

    1 0 0 12

    1 -1 0 11

    0 1 0 10

    0 0 0 9

    0 -1 1 10

    -1 1 1 11

    -1 0 1 12

    -1 -1 1 13

    표 7. Sign Coding을 위한 참고 표

  • 26

    3.2.1.3 Magnitude Refinement Coding(MRC)

    샘플이 ‘1’의 값을 갖는 경우, 그 샘플의 중요도는 매우 커지게 된다.

    따라서 하위 비트 평면의 샘플 값들의 중요도도 그만큼 증가하게

    되는데, 이런 샘플을 코딩하는 방법이 바로 Magnitude Refinement

    Coding이다. 현재 샘플의 상태정보와 주위 샘플들의 상태정보의 합을

    이용하여 콘텍스트를 만들어 낸다. 표 8은 Magnitude Refinement

    Coding을 위한 참고 표이다.

    σ'[m,n]σ[m-1,n-1] + σ[m-1,n] + σ[m+1,n] + σ[m,n-1] +

    σ[m,n+1] + σ[m-1,n-1] + σ[m-1,n] + σ[m-1,n+1]CX

    1 x 16

    0 ≥1 15

    0 0 14

    표 8. Magnitude Refinement Coding을 위한 참고 표

    3.2.1.4 Run-Length Coding(RLC)

    Run-Length Coding은 스트립 단위로 콘텍스트와 디시전을 생성시키는

    방법으로 스트립내의 모든 샘플의 는 ‘0’ 이어야 한다. 스트립내의 모든

    샘플 값이 ‘0’이면 콘텍스트 ‘17’과, 디시전 ‘0’을 생성하고, 샘플 값 중

    하나 이상의 값이 ‘1’을 갖는 다면 콘텍스트 ‘17’과, 디시전 ‘1’을 생성한

    후, 스트립 내에서 처음으로 ‘1’이 발견되는 위치를 리기 위해 콘텍스트

    ‘18’과 디시전 값을 생성한다.

  • 27

    3.2.2 코딩패스

    3.2.2.1 Significance Propagation Pass(SPP)

    코드블록의 첫 번째 비트 평면을 제외한 모든 비트 평면에 처음으로

    적용되는 패스이다. Significance Propagation Pass는 현재 코딩되는

    샘플의 상태정보 가 ‘0’이고 주위 8개의 샘플 상태정보의 합이 1이상

    이면 Zero Coding을 수행하고, 이 때 현재 코딩되는 샘플 값이 ‘1’일

    경우에는 Zero Coding 후 Sign Coding도 수행한다. 위의 조건을

    만족하지 않을 경우에는 다음 샘플로 넘어간다.

    그림 13. Significance Propagation Pass의순서도

  • 28

    3.2.2.2 Magnitude Refinement Pass(MRP)

    코드블록의 첫 번째 비트 평면을 제외한 모든 비트 평면에 두 번째로

    적용되는 패스로 샘플의 크기에 관한 정보를 갖는 콘텍스트를 그룹화

    한다. 그림 14는 Magnitude Refinement Pass의 순서도로서 현재 샘플의

    상태정보 가 ‘1’이고 값이 ‘0’일 때, Magnitude Refinement Coding을

    수행한다. 역시 위의 조건을 만족하지 않을 경우에는 다음 샘플로

    넘어간다.

    그림 14. Magnitude Refinement Pass의 순서도

  • 29

    3.2.2.3 Clean Up Pass(CUP)

    Clean Up Pass는 코드블록의 모든 비트평면에 대하여 수행된다. Clean

    Up Pass에서는 먼저 상태정보 와 가 모두 ‘0’인 지를 확인하여

    하나라도 ‘0’이 아닐 경우에는 다음 샘플로 넘어가고 조건을 만족할

    경우에는 Run-Length Coding을 수행할지 Zero Coding을 수행할 지를

    확인한다. 그 이후의 조건과 패스의 흐름은 그림 15에 나와 있다.

    그림 15. Clean Up Pass의 순서도

  • 30

    3.3 이진 산술 부호화기 모델링

    이전 절에서 설명했듯이, 비트 평면 코딩은 콘텍스트와 디시전을 각

    코딩 패스마다 생성시킨다. JPEG2000 표준에서는 MQ-코더를 사용하여

    콘텍스트와 디시전 값을 부호화한다. JPEG2000 표준은 확률 값과 확률

    예측 과정을 4새의 필드로 구성된 Qe-표로 제공한다.

    Operation CX I(CX)

    Zero Coding

    0

    1

    2

    3

    4

    5

    6

    7

    8

    4

    0

    0

    0

    0

    0

    0

    0

    0

    Sign Coding

    9

    10

    11

    12

    13

    0

    0

    0

    0

    0

    Magnitude Refinement Coding

    14

    15

    16

    0

    0

    0

    Run-Length Coding

    UNIFORM

    17

    18

    3

    46

    표 9. 19개의 콘텍스트와 초기 색인 값

    그리고 비트 평면 코딩에 의해 서로 다른 19개의 콘텍스트가 생성되고,

  • 31

    각각의 콘텍스트에 대해 Qe-표의 색인값과 상태정보를 추적하기 위해

    I(CX)와 초기 값이 제공된다. 표 9는 의 19개의 콘텍스트와 초기 색인

    값을 나타내고 있다. 부호화기는 먼저 INITENC를 통해 부호화기를

    초기화를 수행하게 된다. 그리고 콘텍스트와 디시전 값을 읽어 표 9와

    Qe-표 등을 이용하여 부호화를 수행한다. 그 이후 종료조건을

    만족시키게 되면 FLUSH를 수행하고 전체 부호화과정을 끝마치게 된다.

    그림 16은 이진 산술 부호화기의 전체 흐름 도를 나타내 주고 있다.

    그림16.이진산술부호화기흐름도

  • 32

    비트 평면 코딩과 이진 산술 부호화기에 관한 시뮬레이션 역시 Matlab

    을 이용하여 실시하였다. 이산 웨이블릿 변환을 거친 각 부 밴드들은 다

    시 코드블록 단위로 비트 평면 코딩을 수행한다. 이때 코드블록은 다시

    비트 평면 단위로 코딩절차를 수행하고 그 결과 콘텍스트와 디시전을 생

    성한다. 이 생성된 콘텍스트와 디시전과 Qe-표를 이용하여 비트 산술

    부호화 블록에서는 8비트 코드 스트림을 생성한다. Matlab을 이용하여

    순방향 및 역방향에 대한 기능을 검증하였다.

    그림 17. 비트 평면 코딩 블록과 이산 부호화 블록의 MATLAB 시뮬레이션 모델

  • 33

    Ⅳ. JPEG2000 인코더 시스템 구현

    4.1 제안된 JPEG2000 인코더의 구조

    그림 18는 제안된 JPEG2000 인코더의 구조도 이다. JPEG2000

    인코더는 이산 웨이블릿 변환(DWT) 블록, Data Formatter(DF) 블록,

    비트 평면 코딩(BPC) 블록, 산술 부호화기(BAC), 메인 컨트롤러로

    구성되어 있다. 8비트 영상이 입력으로 들어오면 이산 웨이블릿 변환

    블록을 거쳐 각 부 밴드로 분리되어 메모리에 저장된다. 각 부 밴드는

    비트 평면 코딩 연산을 위해 DF 블록을 거쳐 부호화된 절대 값

    표현으로 바뀌고 코드 블록 단위로 비트 평면 코딩을 수행한다. 비프

    평면 코딩을 수행하여 생성된 콘텍스트와 디시전 값을 이용하여 산술

    부호화를 수행한 후 코드 스트림을 출력으로 갖게 된다.

    그림 18. 제안된 JPEG2000 인코더 구조

  • 34

    4.1.1 이산 웨이블릿 변환 블록

    이전 3절에서 설명하였던 이산 웨이블릿 변환 블록을 설계하였다. 5/3

    필터의 경우에는 상수 -0.5와 0.25를 곱하는 대신 각각 오른쪽으로 1번,

    2번 시프트 연산을 통해 실행되도록 하였고, 또한 9/7필터에서 사용되는

    상수 , , ,

    역시 하드웨어 사이즈가 큰 곱셈기를 사용하지 않고

    시프트 연산을 통해 구현하였다. 예를 들어 같은 경우 입력되는 값에

    왼쪽으로 6번, 5번, 2번 0번 이동한 값을 더한 후 결과 값을 구할 때

    다시 오른쪽으로 6번 시프트 하는 연산을 통해서 실제적으로 값을

    곱하는 연산과 같은 결과를 얻을 수 있다. 그림 19은 이산 웨이블릿

    변환 블록의 구조도이다. 이와 같은 구조를 사용하여 곱셈기를 사용하는

    구조에 비해 연산 량과 하드웨어 사이즈를 줄일 수 있다.

    그림 19. 이산 웨이블릿 변환 블록 구조도

  • 35

    4.1.2 비트 평면 코딩 블록

    다음에 나와 있는 그림은 비트 평면 코딩의 VLSI 구조이다. 실제적인

    코딩을 수행하는 Zero Coding, Sign Coding, Magnitude Refinement

    Coding 부분과 비트 평면 코딩 시 사용하는 상태정보를 위한 메모리와

    레지스터, 그리고 전체 코딩 패스 및 메모리 관련 신호를 생성해주는

    컨트롤러로 구성된다. 결국 코드 블록단위를 입력으로 받아 비트 평면

    코딩에서 사용되는 3가지 패스와 4가지 코딩연산을 수행하여 다음

    블록인 이진 산술 부호화 블록에서 사용하는 콘텍스트와 디시전 값을

    생성시킨다.

    그림 20. 비트 평면 코딩의 VLSI 구조

  • 36

    4.1.3 이진 산술 부호화 블록

    다음에 나와 있는 그림은 이진 산술 부호화 블록의 구조이다. 이진

    산술 부화 블록은 Qe-표를 이용한 확률 예측기와 확률 구간을 분할하는

    블록과 실질적인 코드 값을 구해내고 입력 데이터의 압축을 담당하는

    블록으로 나누어진다. 비트 평면 코딩 블록으로부터 콘텍스트와

    디시전이 입력되면 Qe-표에서 콘텍스트에 해당하는 확률 값이 구간

    분할과 코드 값 연산에 사용되고, 압축된 코드 스트림 8비트가

    B레지스터로부터 출력된다.

    그림 21. 이진 산술 부호화 블록의 구조

  • 37

    Ⅴ. 결론

    본 연구는 휴대 단말 기기에서 사용하는 JPEG2000 인코더의 메모리

    사이즈 및 하드웨어 사이즈 크기를 감소시키는 데에 목적이 있다.

    JPEG2000 인코더는 JPEG에 비해 압축률이 뛰어나면서도, 고화질의

    이미지를 제공한다는 장점이 있는 반면에 코딩 알고리즘이 훨씬 더

    복잡하고, 더 많은 계산 량이 요구되어 하드웨어 구현 시 하드웨어

    사이즈와 메모리 사이즈가 크다는 단점이 존재한다. 이러한 JPEG2000

    인코더의 단점을 극복하기 위하여 메모리 사이즈를 줄이는 방법으로

    공유 메모리를 활용하고 하드 웨서 사이즈를 줄이기 위해 곱셈기를

    사용하지 않는 구조를 제안 하였다. 그 결과 아래 표 10에서 보이는

    것과 같이 저 메모리, 저 전력을 목적으로 제안된 JPEG2000 구조는

    일반적인 구조에 비해 15%의 메모리 감소 결과를 보였다.

    CAST

    JPEG2K_E[7]

    Peking

    University[12]

    Andra's

    Architecture[9]

    Proposed

    Architecture

    Filter Type 5/3, 9/7 5/3, 9/7 5/3, 9/7 5/3, 9/7

    Memory

    (Kbits)- 320 309.975 258.245

    Speed[MHz] 107 54 - > 100

    Family Virtex-Ⅱ pro - - Virtex-Ⅱ pro

    Device 2VP30-7 - - 2VP30-7

    표 10. 일반적인 JPEG2000 구조와 제안된 구조의 메모리 사이즈 비교

    따라서 휴대용 단말기기에 곱셈기를 사용하지 않는 이산 웨이블릿

    변환과 공유 메모리를 사용하는 구조를 적용하면 기존 구조에 비해 적은

  • 38

    메모리 용량과 하드웨어를 사용하여 무선 환경의 휴대 기기에 적합한

    JPEG2000 인코더를 구현 할 수 있을 것이다.

  • 39

    Ⅵ. 참고 문헌

    [1]. K. Andra, C. Chakrabarti, T. Acharya, "A high-performance

    JPEG2000 architecture", Circuits and Systems for Video

    Technology, IEEE Transactions on, vol.13, no.3, Mar. 2003,

    pp.209-218.

    [2]. C. Christopoulos, A. Skodras, T. Ebrahimi, "JPEG2000 still

    image coding system : an overview", Consumer Electronics, IEEE

    Transactions on, vol.46, no.4, Nov. 2000, pp.1103-1127.

    [3]. David S. Taubman, Michael W. Marcellin, "JPEG2000 Image

    Compression Fundamentals, Standards and Practice", 2002.

    [4]. Bing-Fei Wu, Chung-Fu Lin, "An efficient architecture for

    JPEG2000 coprocessor", Consumer Electronics, IEEE

    Transactions on, vol.50, no.4, Nov. 2004, pp.1183-1189.

    [5]. ISO/IEC. ISO/IEC 15444-1. Information technology – JPEG 2000

    image coding system, 2000.

  • 40

    [6]. Tinku Acharya, Ping-Sing Tsai, "JPEG2000 Standard for Image

    Compression Concepts, Algorithms and VLSI Architectures",

    WILEY, 2005.

    [7]. JPEG 2000 Encoder Core. Cast Inc., 2002.

    [8]. Jose Monteiro, "Computer Aided Design Techniques for Low

    Power Sequential Logic Circuit", Kluwer Academic Publishers,

    1997.

    [9]. K. Andra, C. Chakrabarti, T. Acharya, "A VLSI architecture for

    lifting-based forward and inverse wavelet transform", Signal

    Processing, IEEE Transactions on, vol.50, no.4, Apr. 2002,

    pp.966-977.

    [10]. CS6510 JPEG 2000 Encoder. Amphion.

    [11]. Xuguang Lan, Nanning Zheng, Yuehu Liu, "Low-power and

    high-speed VLSI architecture for lifting-based forward and

    inverse wavelet transform", Consumer Electronics, IEEE

    Transactions on, vol.51, no.2, May. 2005, pp.379-385.

  • 41

    [12]. Chao Xu, Yan-Ju Han, Su-Fang Hu, "A Memory-Saving

    System Including DWT and EC for JPEG2000 Implementation",

    Image Processing, 2006 IEEE International Conference on, 8-11

    Oct. 2006, pp.3269-3272

    [13]. Q. P. Huang, R. Z. Zhou, Z. L. Hong, "Low memory and low

    complexity VLSI implementation of JPEG2000 codec," Consumer

    Electronics, IEEE Transactions on, vol.50, no.2, May 2004, pp.638

    –646.

  • 42

    감사의 글

    SoC 설계 및 시스템 응용 연구실에서 생활한 3년 과 지난 2년간의

    대학원 생활을 되돌아보면서 아쉬운 마음을 뒤로하고 이 감사의 글을

    통해 그 동안 저를 도와주시고 가르쳐주신 많은 분들께 감사의 말을

    전하고 싶습니다.

    먼저 학부과정과 석사과정 내내 많은 가르침과 관심으로 지도해 주신

    정덕진 교수님께 진심으로 감사드립니다. 그리고 부족한 논문을 다듬어

    주시고 심사해주신 이종호 교수님과 이한호 교수님께 감사드립니다.

    또한 학부과정부터 석사과정동안 저를 가르쳐 주셨던 김춘우 교수님,

    김덕경 교수님, 김주희 교수님께도 감사를 드립니다.

    또한 항상 좋은 말씀해주신 주민선배와 논문지도와 인생에 대한 진로나

    고민을 상담해주신 동순선배님께 진심으로 감사드리며 고마움을

    전합니다. 그리고 지난 3년간 많은 도움을 주고, 연구실의 방장 역할을

    하느라 고생이 많았던 승열이 형에게도 고마움을 전합니다.

    학부시절부터 연구실 막내라고 항상 챙겨주었던 일호 형, 종욱이 형,

    상호 형, 영광이 형, 승석이 형, 진택이 형, 은경 누나, 은정 누나에게

    감사를 드리며, 이제 연구실 일을 도맡아 할 상설이 형, 재연이 형과

    앞으로 우리 연구실의 미래인 성섭이 형과 재영이 형에게도 많은 것을

    품고 한걸음 더 나아갈 수 있는 기회가 되길 바랍니다.

    경쟁자가 아닌 최고의 파트너로서 연구실 생활을 함께 해온, 또 지난

    2년 연구실 생활보다 앞으로 함께할 생활이 더 많은 규열이 형에게 항상

  • 43

    고마움을 전합니다.

    마지막으로 항상 저의 든든한 후원자이셨던 아버지와 지금의 제 모습을

    누구보다도 더 자랑스러워하실 어머니께 진심으로 감사드리며

    사랑합니다.

    항상 제 주변에서 힘이 되어 주었던 모든 분들께 감사드리며, 앞으로

    실망시키는 모습을 보이지 않기 위해 더욱 더 노력하며 열심히

    살아가겠습니다. 다 시 한번 모든 분들께 감사드리며 글을 마칩니다.

    2007년 12월

    김병수

    Ⅰ. 서론Ⅱ. JPEG2000 Standard2.1 JPEG2000의 특징2.2 JPEG2000 시스템 Overview2.2.1 이미지 전처리 단계2.2.1.1 타일링2.2.1.2 디씨 레벨 시프팅2.2.1.3 멀티 컴포넌트 변환

    2.2.2 압축 단계2.2.2.1 이산 웨이블릿 변환2.2.2.2 양자화2.2.2.3 Region of Interest 코딩2.2.2.4 Rate Control2.2.2.5 Entropy Encoding

    2.2.3 Tire-2 코딩과 비트스트림 형성단계

    Ⅲ. JPEG2000 주요 블록 시스템 모델링3.1 이산 웨이블릿 변환 모델링3.2 비트 평면 코딩 모델링3.2.1 코딩 방법3.2.1.1 Zero Coding (ZC)3.2.1.2 Sign Coding (SC)3.2.1.3 Magnitude Refinement Coding (MRC)3.2.1.4 Run-Length Coding (RLC)

    3.2.2 코딩 패스3.2.2.1 Significance Propagation Pass (SPP)3.2.2.2 Magnitude Refinement Pass (MRP)3.2.2.3 Clean Up Pass (CUP)

    3.3 이진 산술 부호화기 모델링

    Ⅳ. JPEG2000 인코더 시스템 구현4.1 제안된 JPEG2000 인코더의 구조4.1.1 이산 웨이블릿 변환 블록4.1.2 비트 평면 코딩 블록4.1.3 이진 산술 부호화기 블록

    Ⅵ. 결론Ⅶ. 참고 문헌