KR100763371B1 - 고해상도 그래픽 데이터 무손실 압축/신장 방법 - Google Patents

고해상도 그래픽 데이터 무손실 압축/신장 방법 Download PDF

Info

Publication number
KR100763371B1
KR100763371B1 KR1020000085756A KR20000085756A KR100763371B1 KR 100763371 B1 KR100763371 B1 KR 100763371B1 KR 1020000085756 A KR1020000085756 A KR 1020000085756A KR 20000085756 A KR20000085756 A KR 20000085756A KR 100763371 B1 KR100763371 B1 KR 100763371B1
Authority
KR
South Korea
Prior art keywords
data
index register
header
pointer
data index
Prior art date
Application number
KR1020000085756A
Other languages
English (en)
Other versions
KR20020056404A (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 KR1020000085756A priority Critical patent/KR100763371B1/ko
Publication of KR20020056404A publication Critical patent/KR20020056404A/ko
Application granted granted Critical
Publication of KR100763371B1 publication Critical patent/KR100763371B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/005Statistical coding, e.g. Huffman, run length coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

본 발명은 비교적 간단한 구조로 구현할 수 있는 고해상도 그래픽 데이터의 효과적인 압축 및 신장 방법을 제공하기 위한 것으로서, 본 발명에 따른 신장 방법은 송신측을 통해 데이터 인덱스 레지스터를 이용하여 압축된 스트림이 수신되면 헤더를 읽어 압축된 스트림이 데이터인지 포인터인지를 구별하는 단계와, 상기 구별 결과 데이터이면 런-렝스(run-length) 코딩을 통해 데이터를 출력하고, 출력되는 서로 다른 값을 갖는 데이터를 고유의 포인터값을 갖는 데이터 인덱스 레지스터에 각각 저장하는 단계와, 상기 구별 결과 포인터이면 상기 포인터값을 검출하고, 이 검출된 포인터값을 이용하여 데이터 인덱스 레지스터에서 해당 데이터를 검출하여 런-렝스(run-length) 코딩을 통해 데이터를 출력하는 단계를 포함하여 이루어지며, 그에 따라 약간의 소프트웨어 또는 하드웨어 추가로 대용량의 고해상도 그래픽 데이터를 처리할 수 있다.
무손실 압축 및 신장, 런-렝스(run-length) 코딩

Description

고해상도 그래픽 데이터 무손실 압축/신장 방법{method for lossless compression and expansion of high quality graphic data}
도 1a 내지 도 1b 는 일반적인 그래픽 데이터 영상을 나타낸 도면
도 2a 내지 도 2e 는 본 발명에 따른 압축 방식 구조를 나타낸 도면
도 3 은 본 발명에 따른 데이터 인덱스 레지스터 구조를 나타낸 도면
도 4a 내지 도 4c 는 본 발명에 따른 고해상도 그래픽 데이터 무손실 압축 방식을 나타낸 도면
도 5 는 본 발명에 따른 고해상도 그래픽 데이터 무손실 신장 방법을 나타낸 도면
본 발명은 인터넷이나 데이터 방송을 지원하는 기기에 사용되는 고해상도 그래픽 데이터를 간단한 구조로 무손실 압축 및 신장하는 방법에 관한 것이다.
최근 인터넷의 열기는 인터넷 응용 기기의 범위를 PC에 한정하지 않고 일반 가정용 가전 기기는 물론 전용 기기의 개발에까지 이르고 있다. 대표적으로 인터넷을 지원하는 인터넷 티브이, 일반 티브이에서 인터넷을 가능하게 하는 셋탑 박스 그리고 PDA를 비롯한 휴대용 단말기 등이 있다.
또한 새로운 정보 매체로 부각되고 있는 디지털 티브이는 단순한 고해상도 영상 출력이라는 기능을 벗어나 양방향 통신을 이용한 데이터 방송을 통하여 사용자 중심의 정보 혁명을 지향하고 있다.
이러한 인터넷이나 데이터 방송의 공통점은 사용자의 요구에 응답하여 고해상도 그래픽 데이터를 온라인으로 수신하여 처리 및 출력한다는 점이다.
현재 오프라인 기기에서의 그래픽 데이터는 주로 화면 조정 메뉴 정도의 용도로 사용되므로 저해상도의 글자 폰트 데이터를 압축하지 않고 메모리에 저장하여 일반 화면에 겹쳐 출력하고 있다.
이를 인터넷이나 데이터 방송용도로 사용하려면 멀티미디어 정보 전달이라는 고유의 목적에 부합되도록 고해상도의 그래픽 데이터를 처리해야 하는데, 이 경우 광대한 데이터양으로 인해 시스템에 과부하가 발생되며 전송에 따른 대역폭 또한 커지는 문제가 발생된다.
이를 해결하기 위해 현재 대부분의 기기에서는 광대한 데이터양을 줄이기 위한 방식으로 전달하고자 하는 고해상도의 그래픽 데이터를 압축하는 방식을 사용하며, 그 중 하나가 코덱(CODEC)이다.
그러나 이러한 코덱(CODEC)을 소프트웨어적으로 처리하기 위해서는 많은 CPU 파워가 요구되며, 이에 따른 전체 손실(cost)의 증가 내지는 기타 기능의 제한을 유발할 수 있다. 그리고 이 같은 기능을 하드웨어적으로 처리하려면 그 복잡도나 그 크기에서 효율성이 떨어지게 된다.
따라서 본 발명은 상기와 같은 문제점을 해결하기 위해 안출한 것으로서, 비교적 간단한 구조로 구현할 수 있는 고해상도 그래픽 데이터의 효과적인 압축 및 신장 방법을 제공하는데 그 목적이 있다.
상기와 같은 목적을 달성하기 위한 본 발명에 따른 고해상도 그래픽 데이터 무손실 압축 방법의 특징은 복수 비트를 갖는 고유 헤더, 복수 개의 런(run)을 갖는 카운터부, 그리고 데이터로 형성된 다수개의 스트림을 이용한 런-렝스(run-length) 코딩에 의한 무손실 압축 방법에 있어서, 동일한 데이터가 유효 범위 안에서 연속적으로 위치되면, 상기 고유 헤더 및 상기 카운터부와 차별화 되는 차별 헤더를 형성하는 단계와, 상기 고유 헤더 및 복수 개의 런(run)을 갖는 카운터부가 동시에 형성된 결합 카운터부를 형성하는 단계와, 상기 유효 범위 안에서 연속적으로 위치될 데이터가 저장된 데이터 인덱스 레지스터의 포인터값을 갖는 포인터부를 형성하는 단계를 포함하여 이루어지는데 있다.
데이터 인덱스 레지스터에 각각 저장되는 데이터는 서로 다른 값을 갖는데 다른 특징이 있다.
데이터 인덱스 레지스터는 마지막 포인터값까지 저장되면 이후에 입력되는 값은 처음의 포인터값으로 순환되어 저장되는데 또 다른 특징이 있다.
상기 차별 헤더는 상기 2비트의 고유헤더 및 상기 카운터부 최상위 2비트의 결합과 다른 값인데 또 다른 특징이 있다.
상기와 같은 목적을 달성하기 위한 본 발명에 따른 고해상도 그래픽 데이터 무손실 신장 방법의 특징은 송신측을 통해 압축된 스트림이 수신되면 헤더를 읽어 압축된 스트림이 데이터인지 포인터인지를 구별하는 제 1 단계와, 상기 구별 결과 데이터이면 런-렝스(run-length) 코딩을 통해 데이터를 출력하고, 출력되는 서로 다른 값을 갖는 데이터를 고유의 포인터값을 갖는 데이터 인덱스 레지스터에 각각 저장하는 제 2 단계와, 상기 구별 결과 포인터이면 상기 포인터값을 검출하고, 이 검출된 포인터값을 이용하여 데이터 인덱스 레지스터에서 해당 데이터를 검출하여 런-렝스(run-length) 코딩을 통해 데이터를 출력하는 제 3 단계를 포함하여 이루어지는데 있다.
데이터 인덱스 레지스터는 출력되는 데이터가 8bpp이면 데이터 인덱스 레지스터의 크기가 4개, 16bpp이면 16개, 또는 24bpp이면 32개로 이루어지는데 다른 특징이 있다.
상기 2 단계는 헤더 다음에 위치하는 복수개의 런을 읽어 데이터가 디스플레이부에 위치할 픽셀의 개수를 정의하는 단계와, 상기 런 다음단에 위치하는 데이터를 읽고 상기 정의된 픽셀의 개수만큼 데이터를 디스플레이부로 출력하는 단계와, 현재 카운터가 가리키고 있는 데이터 인덱스 레지스터 포인터에 상기 출력된 데이터를 저장하고, 상기 카운터가 다음 데이터 인덱스 레지스터 포인터를 가리키도록 지정하는 단계를 포함하여 이루어지는데 또 다른 특징이 있다.
상기 3 단계는 헤더 다음에 위치하는 복수개의 런을 읽어 데이터가 디스플레이부에 위치할 픽셀의 개수를 정의하는 단계와, 상기 런 다음단에 위치하는 데이터 인덱스 레지스터 포인터값을 읽어 데이터 인덱스 레지스터에 저장된 데이터의 위치를 검색하는 단계와, 상기 검색된 데이터 인덱스 레지스터 위치에 저장된 데이터를 상기 정의된 픽셀의 개수만큼 디스플레이부로 출력하는 단계를 포함하여 이루어지는데 또 다른 특징이 있다.
본 발명의 다른 목적, 특성 및 잇점들은 첨부한 도면을 참조한 실시예들의 상세한 설명을 통해 명백해질 것이다.
본 발명에 따른 고해상도 그래픽 데이터 무손실 압축/신장 방법의 바람직한 실시예에 대하여 첨부한 도면을 참조하여 설명하면 다음과 같다.
도면 설명에 앞서 먼저, 고해상도 그래픽 데이터의 압축 방식으로는 크게 무손실 압축과 유손실 압축으로 나눌 수 있다.
상기 유손실 압축은 압축률이나 데이터의 종류에 크게 영향을 받지 않는 반면, 구현이 복잡하다는 단점이 있다. 이 유손실 압축의 실 예로는 정지 영상에 대한 JPEG나 동영상에 대한 MPEG 등이 있다.
다음으로 상기 무손실 압축은 구현이 비교적 단순해서 팩시밀리 같은 저해상도의 폰트 데이터 압축에 유리한 반면, 압축률이 떨어지는 단점이 있다. 이 무손실 압축의 실 예로는 런-렝스(run-length) 코딩이나 허프만(huffman) 코딩이 있다.
이와 같은 압축 방식을 통한 인터넷이나 데이터 방송에서 일반적으로 사용되는 그래픽 데이터는 일반 티브이에서 볼 수 있는 전체 동영상이 아니라 대부분 정지 영상과 일부의 동영상으로 구성된다.
따라서 현재 온라인으로 지원되는 동영상은 갱신(update)되는 속도가 느리고 불규칙적이므로 정지영상으로 처리해도 무방하다.
또한 도 1a 및 도 1b에서의 예제 영상과 같이 대부분의 균일한 배경(background) 영상과 일부분의 전경(foreground) 영상으로 나뉠 수 있다.
이와 같은 특징을 참조하여 인터넷 기기에서 그래픽 데이터를 압축하기 위해서는 구현이 복잡한 유손실 압축 방식보다는 구현이 비교적 단순한 무손실 압축 방식이 효율성 측면에서 유리하다.
그러나 현재 널리 이용되는 무손실 압축 방식 대부분이 영상 화소의 연속성을 압축의 기본으로 사용하기 때문에 화소의 연속성이 떨어지는 일부 전경(foreground) 영상의 고해상도 데이터에 대해서는 압축률이 현저하게 감소하게 된다.
따라서 이러한 영역에 대한 압축률을 효과적으로 높이는 것이 필요하다.
도 2에서는 이를 해결하기 위한 데이터의 압축 방법을 나타내고 있다.
도 2를 보면, 크게 2 개의 스트림으로 나눌 수 있다.
먼저, 제 1 스트림은 복수 비트를 갖는 고유의 제 1 헤더, 복수 개의 런(run)을 갖는 제 1 카운터부, 그리고 데이터로 구성된 스트림이 다수 개로 존재한다.
그리고 제 2 스트림은 복수 비트를 갖고 상기 다수개의 제 1 스트림과 다른 비트를 갖는 고유의 제 2 헤더, 상기 다수개의 제 1 스트림 중 어느 하나의 스트림내의 헤더와 복수 개의 런(run)을 동시에 갖는 제 2 카운터부, 그리고 해당 데이터를 저장하는 데이터 인덱스 레지스터의 포인터 값을 갖는 포인터부로 구성된다.
그리고 상기 제 2 스트림은 정의되는 값에 따라 복수 개로 확장 가능하며, 본 발명에서는 데이터 인덱스 레지스터를 사용하는 경우 하나만을 사용한다.
이때, 8bpp(bit/pixel)이상의 고해상도 데이터 압축을 목표로 하기 때문에 8bpp 미만의 저해상도 데이터에 대해서는 압축 효율이 기존의 무손실 압축방식보다 약간 떨어질 수 있으나, 저해상도 데이터는 압축하지 않아도 될 정도로 데이터양이 많지 않으므로 모든 해상도에 대하여 일괄적으로 다음에 방법을 적용해도 무난하다.
또한 본 발명에 따른 압축 방식은 런-렝스(run-length) 코딩 방법을 기초로 한다. 즉, 이웃하는 화소의 값을 비교하여 같은 값을 갖는 화소의 개수를 카운트하여 카운트 값과 화소 값을 저장하는 방식이다.
도 2a 내지 도 2e에서와 같이 본 발명은 카운트 값에 따라 고유의 헤더(prefix)를 갖는다.
즉, 도 2a는 카운트 값이 1인 경우로서 "00"의 2 비트 헤더를 갖는다.
그리고 도 2b는 카운트 값이 2~7인 경우로서, "01"의 헤더를 갖는다.
마찬가지로 각각 도 2c는 "10", 도 2d는 "11"의 2 비트 헤더를 각각 갖는다.
그리고 도 2e는 도 2a~도 2d의 경우를 기본으로 구성된다.
즉, 도 2e는 "0100"의 4 비트 헤더를 갖는데 도 2b에서 "01"의 헤더를 갖는 경우 카운트 값이 2~7 즉, 이진수로 표현하면 "010"에서 "111"이므로 도 2e의 "0100" 헤더는 도 2b의 헤더값과 카운트 값이 합쳐진 값과 겹치지 않는다.
이외에 "0000","1100" 등 여러 개의 겹치지 않는 값이 있다. 이 중 본 발명 은 "0100" 헤더값을 사용하기로 하며 확장이 가능하다.
여기서 도 2e는 본 발명의 중심이 되는 경우로서 "0100" 헤더를 다음에는 도 2a~도 2d에서와 같이 2 비트 헤더와 카운트값과 그리고 데이터 인덱스 레지스터 포인터 값이 따라온다.
여기서 데이터 인덱스 레지스터 포인터의 개념을 도 3에서 나타내었다.
데이터 인덱스 레지스터는 유사한 값이지만 같지 않은 화소 값이 반복되면서 연속으로 들어올 경우를 대비한 것으로, 이러한 경우 카운트값과 화소 값을 전부 저장하는 것이 아니라 카운트값과 데이터 인덱스 레지스터 내에 저장되어 있는 같은 값의 위치를 나타내는 포인터값만을 저장하는 방식이다.
도 4a 내지 도 4c는 본 발명에 따른 적용 실시예를 나타내고 있다.
도 4a는 압축되지 않은 그래픽 데이터로서 8bpp 데이터를 실 예로 나타내고 있는 도면으로, 그래픽 데이터가 모두 4가지의 화소값으로 구성되어 있다.
그리고 도 4b는 도 a의 데이터를 본 발명에 적용하여 압축시킨 결과를 나타내고 있다.
또 도 4c는 원 데이터가 데이터 인덱스 레지스터에 저장되는 과정을 나타낸다.
일단 최초 입력된 화소 값은 11, 127, 10으로 도면 2a~도 2d와 같이 2 비트 헤더와 카운트 값 그리고, 화소 값이 저장된다.
따라서 헤더값은 11, 카운트 값은 127, 그리고 화소값은 10이 저장된다. 그리고 데이터 인덱스 레지스터 첫 번째 포인터에 10이 저장된다.
이와 같은 값으로 압축된 데이터를 풀어보면 첫 번째 라인에 처음부터 127 픽셀까지 10이라는 화소값을 기록하게 된다.
따라서 도 4a의 (1)라인과 같이 표시된다.
다음 도 4b에 다음 번 입력된 화소 값 0100, 11, 127, 00으로 도 2e와 같이 0100 헤더와 도 2a~도 2d에서와 같이 2 비트 헤더와 카운트값과 그리고 데이터 인덱스 레지스터 포인터값이 저장된다.
이때 마지막 단에는 화소 값 대신 데이터 인덱스 레지스터 포인터값 "00"이 저장된다.
이는 "00"번지에 최초 입력된 화소값 "10"이 저장되어 있으므로 이 화소값 "10"을 도 4a의 (2)라인에 디스플레이 한다.
상기와 같은 방법을 이용하여 도 4b에서 나타낸 압축된 고해상도 그래픽 데이터를 신장하여 도 4a와 같이 디스플레이할 수 있다.
이와 같은 방법을 통해 본 발명은 데이터 인덱스 레지스터를 이용함으로써, 고해상도의 그래픽 데이터 대신에 데이터 인덱스 레지스터 포인터값을 저장함으로써, 송신시 발생되는 대역폭을 줄일 수 있으며, 또한 수신후 신장 과정에서 발생되는 시간을 줄일 수 있다.
그리고 도 2a~도 2d와 같이 압축되어 입력되는 데이터에 화소값이 반복해서 동일한 화소값이 입력되다가, 다른 화소값이 입력되는 경우 도 4c의 데이터 인덱스 레지스터의 각 포인터값에 따른 해당 위치에 저장한다.
도 4c에서는 도 4b를 통해 입력되는 화소값이 변할 때마다 포인터값이"01","10","11"의 순으로 저장되는 것을 나타내고 있으며, 데이터 인덱스 레지스터의 포인터가 풀(full)된 경우에는 가장 처음에 위치하는 데이터 인덱스 레지스터의 포인터값 위치에 다음 변화된 화소값을 저장한다.
즉, 화소값이 마지막 포인터값인 "11"번지까지 저장되었다면 이후에 입력되는 값은 다시 "00"번지로 순환하게 된다.
이와 같은 데이터 인덱스 레지스터 방식은 데이터의 해상도가 클수록 효과적이며 데이터 인덱스 레지스터의 크기는 압축 효율성을 고려해 데이터의 해상도에 따라 달리하는 것이 유리하다.
예를 들면 도 4에서와 같이 8bpp 데이터의 경우에는 데이터 인덱스 레지스터의 크기는 4개, 16bpp 데이터일 경우는 16개, 24bpp 데이터에서는 32개로 정의한다.
이렇게 정의할 경우 8bpp 데이터의 경우에는 8 비트 데이터를 2 비트로 표현할 수 있으므로 헤더 비트를 제외하고 2 비트의 압축 효과가 있고 마찬가지 방식으로 16bpp 데이터는 8 비트의 압축 효과가 있다.
다음 표 1에서는 도 1a 및 도 1b의 실제 그래픽 데이터를 이용하여 본 발명에 의해 얻어진 압축 결과이다.
입력 데이터 리메이크 (remark)
mbc(도 1a) 케이블(도 1b)
8bpp 24bpp 8bpp
압축 비율 17 % 12 % 25 % 압축 데이터/ 비압축 데이터
도 5 는 본 발명에 따른 압축된 데이터를 신장하는 방법을 나타낸 도면이다.
도 5를 보면, 먼저 수신측은 송신측을 통해 압축된 고해상도 그래픽 데이터를 수신하면(S1), 헤더 2비트를 읽어서 헤더값이 "00", "01", "10", "11"중 어느 것인지 판단한다(S2).
상기 판단 결과 헤더값이 "00"인 경우는(S3) 다음에 위치하는 데이터를 읽고(S12), 디스플레이부로 출력한 후, 현재 카운터가 가리키고 있는 데이터 인덱스 레지스터 포인터에 상기 출력된 데이터를 저장한다(S13). 그리고 카운터가 다음 데이터 인덱스 레지스터 포인터를 가리키도록 지정한다(S18).
상기 판단 결과 헤더값이 "10"인 경우는(S3) 다음에 위치하는 런(run)값인 5비트를 읽어 데이터가 디스플레이부에 위치할 픽셀의 개수를 정의한다(S14).
그리고 그 다음단에 위치하는 데이터를 읽고(S15), 상기 정의된 픽셀의 개수만큼 데이터를 디스플레이부로 출력한 후, 현재 카운터가 가리키고 있는 데이터 인덱스 레지스터 포인터에 상기 출력된 데이터를 저장한다(S13). 그리고 카운터가 다음 데이터 인덱스 레지스터 포인터를 가리키도록 지정한다(S18).
또 상기 판단 결과 헤더값이 "11"인 경우는(S3) 다음에 위치하는 런(run)값인 7비트를 읽어 데이터가 디스플레이부에 위치할 픽셀의 개수를 정의한다(S16).
그리고 그 다음단에 위치하는 데이터를 읽고(S17), 상기 정의된 픽셀의 개수만큼 데이터를 디스플레이부로 출력한 후, 현재 카운터가 가리키고 있는 데이터 인덱스 레지스터 포인터에 상기 출력된 데이터를 저장한다(S13). 그리고 카운터가 다음 데이터 인덱스 레지스터 포인터를 가리키도록 지정한다(S18).
또 상기 판단 결과 헤더값이 "01"인 경우는(S3) 본 발명에서 정의한 "0100"인지를 판단하기 위해서 다음단에 위치하는 런(run) 2비트를 읽어 "00"인지를 검색한다(S4). 이때 "0100"은 임의로 정의한 값으로 헤더 및 카운터부가 형성되지 않는 4비트의 어느 값이면 정의할 수 있다.
상기 검색결과(S5) "00"이 아닌 경우는 헤더 다음단에 위치하는 런(run) 3비트를 읽어 데이터가 디스플레이부에 위치할 픽셀의 개수를 정의한다(S10).
그리고 그 다음단에 위치하는 데이터를 읽고(S11), 상기 정의된 픽셀의 개수만큼 데이터를 디스플레이부로 출력한 후, 현재 카운터가 가리키고 있는 데이터 인덱스 레지스터 포인터에 상기 출력된 데이터를 저장한다(S13). 그리고 카운터가 다음 데이터 인덱스 레지스터 포인터를 가리키도록 지정한다(S18).
그리고 상기 검색결과(S5) "00"인 경우, 도 2(e)와 같이 정의된 방식으로 인식하고, 다음단에 위치하는 2비트의 헤더를 읽는다(S6).
이어 위에서 설명한 방법과 동일한 방법으로 헤더값에 따른 런(run)의 해당 비트만큼 읽는다.
즉, "01"인 경우는 3비트를, "10"인 경우는 5비트를, "11"인 경우는 7비트를 읽어 데이터가 디스플레이부에 위치할 픽셀의 개수를 정의하고, "00"인 경우는 헤더의 다음단이 데이터로서 이때는 픽셀의 개수를 하나로 정의한다(S7).
그리고 그 다음단에 위치하는 데이터 인덱스 레지스터 포인터값을 읽어 데이터 인덱스 레지스터에 저장된 데이터의 위치를 검색한다(S8).
이어 상기 검색된 데이터 인덱스 레지스터 포인터값에 저장된 데이터를 상기 정의된 픽셀의 개수만큼 디스플레이부로 출력한다(S9).
이와 같이 수신된 압축 데이터는 도 5와 같은 과정을 통하여 신장된다.
그리고 도 2와 도 5에서 나타낸 본 발명에 따른 압축과 신장 방식은 복잡한 연산을 수반하지 않으므로 소프트웨어로 구현해도 계산 능력이 크게 필요하지 않으며, 또한 하드웨어로 구현시에도 데이터 레지스터와 배럴(barrel) 쉬프터, 그리고 몇 개의 카운터와 비교기로 쉽게 구현할 수 있다.
이상에서 설명한 바와 같은 본 발명에 따른 고해상도 그래픽 데이터 무손실 압축/신장 방법은 다음과 같은 효과가 있다.
첫째, 고해상도 그래픽 데이터의 압축과 신장을 별도의 코덱(CODEC)을 사용하지 않는 간단한 형태를 갖는 효과가 있다.
둘째, 인터넷/데이터 방송 전용 기기이외에도 기존의 DTV 디스플레이 기기나 OSD 프로세서 그리고, 인터넷 휴대 단말기 등에 적용하여 약간의 소프트웨어 또는 하드웨어 추가로 대용량의 고해상도 그래픽 데이터를 처리할 수 있다.
이상 설명한 내용을 통해 당업자라면 본 발명의 기술 사상을 이탈하지 아니하는 범위에서 다양한 변경 및 수정이 가능함을 알 수 있을 것이다.
따라서, 본 발명의 기술적 범위는 실시예에 기재된 내용으로 한정되는 것이 아니라 특허 청구의 범위에 의하여 정해져야 한다.

Claims (9)

  1. 복수 비트를 갖는 고유 헤더, 복수 개의 런(run)을 갖는 카운터부, 그리고 데이터로 형성된 다수개의 스트림을 이용한 런-렝스(run-length) 코딩에 의한 무손실 압축 방법에 있어서,
    동일한 데이터가 유효 범위 안에서 연속적으로 위치되면, 상기 고유 헤더 및 상기 카운터부와 차별화되는 차별 헤더를 형성하는 제 1 단계와,
    상기 고유 헤더 및 복수 개의 런(run)을 갖는 카운터부가 동시에 형성된 결합 카운터부를 형성하는 제 2 단계와,
    상기 유효 범위 안에서 연속적으로 위치될 데이터가 저장된 데이터 인덱스 레지스터의 포인터값을 갖는 포인터부를 형성하는 제 3 단계를 포함하여 이루어지는 것을 특징으로 하는 고해상도 그래픽 데이터 무손실 압축 방법.
  2. 제 1 항에 있어서,
    상기 데이터 인덱스 레지스터는 데이터가 8bpp 이면 4개, 16bpp 이면 16개, 그리고 24bpp 이면 32개인 것을 특징으로 하는 고해상도 그래픽 데이터 무손실 압축 방법.
  3. 제 1 항에 있어서,
    상기 데이터 인덱스 레지스터에 각각 저장되는 데이터는 서로 다른 값을 갖 는 것을 특징으로 하는 고해상도 그래픽 데이터 무손실 압축 방법.
  4. 제 1 항에 있어서,
    상기 데이터 인덱스 레지스터는 마지막 포인터값까지 저장되면 이후에 입력되는 값은 처음의 포인터값으로 순환되어 저장되는 것을 특징으로 하는 고해상도 그래픽 데이터 무손실 압축 방법.
  5. 제 1 항에 있어서,
    상기 차별 헤더는 상기 2비트의 고유 헤더 및 상기 카운터부 최상위 2비트의 결합과 다른 값인 것을 특징으로 하는 고해상도 그래픽 데이터 무손실 압축 방법.
  6. 송신측을 통해 압축된 스트림이 수신되면 헤더를 읽어 압축된 스트림이 데이터인지 포인터인지를 구별하는 제 1 단계와,
    상기 구별 결과 데이터이면 런-렝스(run-length) 코딩을 통해 데이터를 출력하고, 출력되는 서로 다른 값을 갖는 데이터를 고유의 포인터값을 갖는 데이터 인덱스 레지스터에 각각 저장하는 제 2 단계와,
    상기 구별 결과 포인터이면 상기 포인터값을 검출하고, 이 검출된 포인터값을 이용하여 데이터 인덱스 레지스터에서 해당 데이터를 검출하여 런-렝스(run-length) 코딩을 통해 데이터를 출력하는 제 3 단계를 포함하여 이루어지는 것을 특징으로 하는 고해상도 그래픽 데이터 무손실 신장방법.
  7. 제 6 항에 있어서, 상기 데이터 인덱스 레지스터는
    출력되는 데이터가 8bpp이면 데이터 인덱스 레지스터의 크기가 4개, 16bpp이면 16개, 또는 24bpp이면 32개로 이루어지는 것을 특징으로 하는 고해상도 그래픽 데이터 무손실 신장방법.
  8. 제 6 항에 있어서, 상기 2 단계는
    헤더 다음에 위치하는 복수개의 런을 읽어 데이터가 디스플레이부에 위치할 픽셀의 개수를 정의하는 단계와,
    상기 런 다음단에 위치하는 데이터를 읽고 상기 정의된 픽셀의 개수만큼 데이터를 디스플레이부로 출력하는 단계와,
    현재 카운터가 가리키고 있는 데이터 인덱스 레지스터 포인터에 상기 출력된 데이터를 저장하고, 상기 카운터가 다음 데이터 인덱스 레지스터 포인터를 가리키도록 지정하는 단계를 포함하여 이루어지는 것을 특징으로 하는 고해상도 그래픽 데이터 무손실 신장 방법.
  9. 제 6 항에 있어서, 상기 3 단계는
    헤더 다음에 위치하는 복수개의 런을 읽어 데이터가 디스플레이부에 위치할 픽셀의 개수를 정의하는 단계와,
    상기 런 다음단에 위치하는 데이터 인덱스 레지스터 포인터값을 읽어 데이터 인덱스 레지스터에 저장된 데이터의 위치를 검색하는 단계와,
    상기 검색된 데이터 인덱스 레지스터 위치에 저장된 데이터를 상기 정의된 픽셀의 개수만큼 디스플레이부로 출력하는 단계를 포함하여 이루어지는 것을 특징으로 하는 고해상도 그래픽 데이터 무손실 신장 방법.
KR1020000085756A 2000-12-29 2000-12-29 고해상도 그래픽 데이터 무손실 압축/신장 방법 KR100763371B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020000085756A KR100763371B1 (ko) 2000-12-29 2000-12-29 고해상도 그래픽 데이터 무손실 압축/신장 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020000085756A KR100763371B1 (ko) 2000-12-29 2000-12-29 고해상도 그래픽 데이터 무손실 압축/신장 방법

Publications (2)

Publication Number Publication Date
KR20020056404A KR20020056404A (ko) 2002-07-10
KR100763371B1 true KR100763371B1 (ko) 2007-10-04

Family

ID=27688901

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020000085756A KR100763371B1 (ko) 2000-12-29 2000-12-29 고해상도 그래픽 데이터 무손실 압축/신장 방법

Country Status (1)

Country Link
KR (1) KR100763371B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR970063952A (ko) * 1996-02-07 1997-09-12 모리시따 요오이찌 디코딩 장치 및 방법
KR19990052959A (ko) * 1997-12-23 1999-07-15 구자홍 티씨피의 오오비 채널을 이용한 부가 데이터 전송방법
WO1999062251A2 (en) * 1998-05-08 1999-12-02 Koninklijke Philips Electronics N.V. Method for storing compressed digital audio and video
KR20000037751A (ko) * 1998-12-02 2000-07-05 구자홍 화상통신기기의 데이터 전송 프로토콜

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR970063952A (ko) * 1996-02-07 1997-09-12 모리시따 요오이찌 디코딩 장치 및 방법
KR19990052959A (ko) * 1997-12-23 1999-07-15 구자홍 티씨피의 오오비 채널을 이용한 부가 데이터 전송방법
WO1999062251A2 (en) * 1998-05-08 1999-12-02 Koninklijke Philips Electronics N.V. Method for storing compressed digital audio and video
KR20000037751A (ko) * 1998-12-02 2000-07-05 구자홍 화상통신기기의 데이터 전송 프로토콜

Also Published As

Publication number Publication date
KR20020056404A (ko) 2002-07-10

Similar Documents

Publication Publication Date Title
US5327254A (en) Method and apparatus for compressing and decompressing image data
CN101977312B (zh) 视频压缩系统
US7526029B2 (en) General purpose compression for video images (RHN)
US6008745A (en) Variable length decoding using lookup tables
US20080107174A1 (en) Faster image processing
US7233619B1 (en) Variable general purpose compression for video images (ZLN)
US7773816B2 (en) Systems and methods for decoding large images
US5608862A (en) Apparatus for processing hierarchically-coded image data
US5808570A (en) Device and method for pair-match Huffman transcoding and high-performance variable length decoder with two-word bit stream segmentation which utilizes the same
US20130148740A1 (en) Method and apparatus for processing partial video frame data
US6847333B2 (en) Method of and system for low-bandwidth transmission of color video
US9449585B2 (en) Systems and methods for compositing a display image from display planes using enhanced blending hardware
US8031959B2 (en) Compression system for a bit-plane
US5831677A (en) Comparison of binary coded representations of images for compression
CN100357879C (zh) 向/从缓冲器提取和加载数据的装置和方法
DE112014000643T5 (de) Bilddatencodierung für Zugriff nach Raster und nach Makroblock
US6956511B2 (en) Multi-symbol/coefficient decode operation for Huffman codes
US5351133A (en) Color video display with built-in color decompression system
JP2002524007A (ja) イメージ圧縮方法および装置
JP4406481B2 (ja) グラフィックデータ圧縮
US6157327A (en) Encoding/decoding device
KR100763371B1 (ko) 고해상도 그래픽 데이터 무손실 압축/신장 방법
US20070046792A1 (en) Image compositing
US7853087B2 (en) High-speed binary image compression method
US20070242749A1 (en) Image frame compression of video stream with fast random accessing and decompressing

Legal Events

Date Code Title Description
N231 Notification of change of applicant
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: 20100630

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee