KR102219133B1 - 컴팩트한 비트 평면(bit-plane) 데이터 압축을 위한 인코더, 디코더 및 부호화 방법 - Google Patents
컴팩트한 비트 평면(bit-plane) 데이터 압축을 위한 인코더, 디코더 및 부호화 방법 Download PDFInfo
- Publication number
- KR102219133B1 KR102219133B1 KR1020140126151A KR20140126151A KR102219133B1 KR 102219133 B1 KR102219133 B1 KR 102219133B1 KR 1020140126151 A KR1020140126151 A KR 1020140126151A KR 20140126151 A KR20140126151 A KR 20140126151A KR 102219133 B1 KR102219133 B1 KR 102219133B1
- Authority
- KR
- South Korea
- Prior art keywords
- bit
- bits
- coefficient
- sequence
- coded
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/18—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/30—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
- H04N19/34—Scalability techniques involving progressive bit-plane based encoding of the enhancement layer, e.g. fine granular scalability [FGS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods 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/436—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/93—Run-length coding
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)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Image Processing (AREA)
Abstract
인코더는 복수의 레지스터들을 포함하며, 각 계수가 상기 계수의 복수의 해당 비트 자리들에 위치하는 복수의 비트들로 분해되는 계수들의 배열을 순차적으로 수신하고; 상기 각 계수의 상기 복수의 비트들에 동시에 동작하도록 구성된다.
Description
본 발명의 실시예는 데이터 압축을 위한 장치 및 방법에 관한 것이다.
데이터 압축 또는 소스 부호화는 데이터의 원래 표현 방식보다 적은 비트 수를 사용하여 정보를 부호화하는 것을 포함하는 컴퓨터 활용 분야에서 널리 사용되는 과정이다. 데이터는, 예를 들어, 데이터 저장 공간이나 전송 용량과 같은 자원 사용을 줄이기 위한 것을 포함하여 다양한 이유로 압축될 수 있다. 그러나, 데이터 압축(예를 들어, 부호화)은 데이터를 다시 사용하기 위해 데이터의 압축 해제(예를 들어, 복호화)를 필요로 하기 때문에, 데이터 압축은 공간과 시간 사이에서 균형을 도모해야 한다(예를 들어, 데이터 압축을 통해 컴퓨터 공간을 절약할 수 있으나, 압축 해제로 인한 처리 시간 증가가 발생할 수 있다).
데이터 압축 과정의 설계는 또한 압축의 정도, 이로 인해 도입되는 왜곡의 크기(예를 들어, 데이터의 손실 압축을 사용하는 경우) 및 데이터를 압축하고 압축 해제하기 위해 사용되는 컴퓨터 연산 자원 등을 포함하는 다른 고려 사항을 포함한다. 따라서, 저장 공간을 줄이면서 동시에 압축 해제 이후에 데이터 정확도를 증가시키고, 데이터를 압축하고 압축을 해제하기 위해 사용되는 처리에 필요한 파워와 시간을 감소시킬 수 있는 데이터 압축 기법이 계속 요구되고 있다.
본 발명의 실시예는 압축 해제 이후에 데이터 정확도를 증가시키고, 데이터를 압축하고 압축 해제하기 위해 사용되는 처리에 필요한 파워와 시간을 감소시키면서도, 처리에 사용되는 공간의 양을 줄여 주는 데이터 압축을 위한 (예를 들어, "컴팩트"하게 만들기 위한) 비트 평면(bit-plane)을 위한 장치 및 방법을 제공한다.
본 발명의 일 실시예에 따른 인코더는 복수의 레지스터들을 포함하며, 각 계수가 상기 계수의 복수의 해당 비트 자리들에 위치하는 복수의 비트들로 분해되는 계수들의 배열을 순차적으로 수신하고, 상기 각 계수의 상기 복수의 비트들에 병행 동작으로 작동하도록 구성된다.
상기 인코더는 상기 복수의 비트들의 비트가 0인 것을 탐지한 것에 대한 대응으로, 상기 복수의 레지스터들로부터의 비트에 해당하는 상기 복수의 비트 위치의 비트에 해당하는 레지스터를 1만큼 증가시키도록 더 구성될 수 있다.
상기 인코더는 상기 복수의 비트들의 비트가 1인 것을 탐지한 것에 대한 대응으로, 상기 비트에 해당하는 비트 위치에 해당하는 레지스터의 값을 부호화함으로써 부호화된 심볼을 생성하도록 더 구성될 수 있다.
상기 인코더는 상기 복수의 비트들의 비트가 1인 것을 탐지한 것에 대한 대응으로, 상기 비트에 해당하는 비트 위치에 해당하는 레지스터를 0으로 리셋하도록 더 구성될 수 있다.
상기 비트의 비트 위치에 해당하는 비트 위치에 해당하는 레지스터의 값은 비트 위치의 연속된 영의 값을 나타낼 수 있다.
각 계수의 비트 위치는 복수의 각각의 비트 평면 레벨들을 형성할 수 있으며, 상기 인코더는 또한 복수의 부호화된 심볼들을 포함하는 복수의 부호화된 비트 평면 레벨을 생성하도록 구성될 수 있다.
상기 인코더는 또한 계수의 시퀀스의 마지막(EOS)을 탐지한 것에 대한 대응으로, 복수의 시퀀스 마지막(EOS) 신호들은 상기 복수의 부호화된 비트 평면 레벨로 전송하도록 구성될 수 있다.
상기 인코더는 계수의 시퀀스의 마지막을 탐지한 것에 대한 대응으로, 상기 복수의 레지스터들을 영으로 리셋하도록 더 구성될 수 있다.
상기 복수의 비트 위치의 최초 비트 위치는 각 계수의 부호를 나타낼 수 있다.
본 발명의 또 다른 실시예에 따른 디코더는 각각의 비트 평면이 복수의 계수들의 비트 위치에 대응하는 복수의 비트 평면들 내에 배치된 부호화된 심볼들의 시퀀스를 수신하고; 상기 복수의 비트 평면들의 비트 평면에 해당하는 부호화된 심볼들의 시퀀스의 부호화된 심볼을 읽어 들이고; 상기 부호화된 심볼이 연속된 동일한 값들임을 탐지한 것에 대한 대응으로, 상기 연속된 동일한 값들과 같은 개수의 0-비트의 비트들을 출력하고; 상기 개수의 0-비트의 비트들을 출력한 이후 1-비트를 출력하도록 구성된다.
상기 디코더는 시퀀스의 마지막(EOS) 심볼인 부호화된 심볼을 탐지한 것에 대한 대응으로 상기 복수의 비트 평면의 다음의 비트 평면에 해당하는 부호화된 심볼의 시퀀스의 다음의 부호화된 심볼을 읽어 들이도록 더 구성될 수 있다.
상기 디코더는 상기 복수의 비트 평면의 마지막 비트 평면에 해당하는 시퀀스의 마지막(EOS) 심볼을 탐지한 것에 대한 대응으로 또 다른 부호화된 심볼들의 시퀀스를 수신하도록 더 구성될 수 있다.
본 발명의 또 다른 실시예에 따른 방법은 복수의 레지스터들을 포함하는 인코더를 사용하며, 각 계수가 상기 계수의 복수의 해당 비트 자리들에 위치하는 복수의 비트들로 분해되는 계수들의 배열을 순차적으로 수신하고, 상기 각 계수의 상기 복수의 비트들에 동시에 동작하는 단계를 포함하는 것을 특징으로 한다.
상기 방법은 상기 복수의 비트들의 비트가 0인 것을 탐지한 것에 대한 대응으로, 상기 비트에 해당하는 상기 복수의 비트 위치들의 비트 위치에 해당하는 레지스터를 1만큼 증가시키는 단계를 더 포함할 수 있다.
상기 방법은 상기 복수의 비트들의 비트가 1인 것을 탐지한 것에 대한 대응으로, 상기 비트에 해당하는 비트 위치에 해당하는 레지스터의 값을 부호화함으로써 부호화된 심볼을 생성하는 단계를 더 포함할 수 있다.
상기 방법은 상기 복수의 비트들의 비트가 1인 것을 탐지한 것에 대한 대응으로, 상기 레지스터를 0으로 리셋하는 단계를 더 포함할 수 있다.
상기 레지스터의 값은 비트 위치의 연속된 영의 값을 나타낼 수 있다.
각 계수의 비트 위치는 복수의 각 비트 평면 레벨들을 형성할 수 있으며, 상기 방법은 복수의 부호화된 심볼들을 포함하는 복수의 부호화된 비트 평면 레벨을 생성하는 단계를 더 포함할 수 있다.
상기 방법은 계수의 시퀀스의 마지막(EOS) 신호를 탐지한 것에 대한 대응으로, 복수의 시퀀스의 마지막(EOS) 신호들을 상기 복수의 부호화된 비트 평면 레벨로 전송하는 단계를 더 포함할 수 있다.
상기 방법은 계수의 시퀀스의 마지막을 탐지한 것에 대한 대응으로, 상기 복수의 레지스터들을 영으로 리셋하는 단계를 더 포함할 수 있다.
상기 복수의 비트 위치의 최초 비트 위치는 각 계수의 부호를 나타낼 수 있다.
본 발명의 실시예에 따른 인코더와 디코더는 다양한 응용 분야에서 활용될 수 있다. 예를 들어, 본 발명의 실시예는 디스플레이 패널, 셀룰러 폰, 컴퓨터 및 데이터 압축을 필요로 하는 기타 장치들에서 구현될 수 있다.
본 발명을 특정 실시예와 관련하여 기술하였지만, 본 발명이 개시된 실시예에만 제한되는 것은 아니며, 반대로, 본 발명은 첨부된 청구항의 정신과 범위 내에서 포함되는 다양한 수정과 균등한 배치, 및 이들과 균등한 사항들을 포함하도록 의도된 것이다.
본 발명의 상기 및 다른 실시예들은 이들에 대한 실시예의 예시들을 다음과 같이 설명된 첨부 도면들을 참조하여 상세히 기술함으로써 보다 분명하게 될 것이다:
도 1은 본 발명의 일 실시예에 따른 부호화 과정을 예시하는 흐름도이다.
도 2는 본 발명의 일 실시예에 따른 부호화 시스템을 예시하는 개략적 블록도이다.
도 3은 본 발명의 일 실시예에 따른 복호화 과정을 예시하는 흐름도이다.
도 4는 본 발명의 일 실시예에 따른 복호화 시스템을 예시하는 개략적 블록도이다.
도 1은 본 발명의 일 실시예에 따른 부호화 과정을 예시하는 흐름도이다.
도 2는 본 발명의 일 실시예에 따른 부호화 시스템을 예시하는 개략적 블록도이다.
도 3은 본 발명의 일 실시예에 따른 복호화 과정을 예시하는 흐름도이다.
도 4는 본 발명의 일 실시예에 따른 복호화 시스템을 예시하는 개략적 블록도이다.
이하에서는, 본 발명의 실시예를 보여 주는 첨부한 도면을 참조하여 본 발명의 실시예를 보다 완전하게 기술할 것이다. 해당 분야의 통상의 기술자라면 알 수 있듯이, 기술된 실시예들은 본 발명의 사상 또는 범위를 벗어나지 않으면서 다양한 수정을 가하거나 대체적인 형태를 취할 수 있다. 본 발명을 명확하게 기술하기 위해, 본 발명을 완전히 이해하는데 필요하지 않은 일부 요소들과 특징들은 생략될 수 있다.
본 명세서에서 사용된 용어들은 특정한 실시예를 기술하기 위해 사용되며, 본 발명을 한정하기 위한 것은 아니다. 예를 들어, "제 1", "제 2" 등과 같은 용어가 본 명세서에서는 여러 요소들을 기술하기 위해 사용될 수 있지만, 이들 요소들이 이들 용어들의 엄격한 구성으로 제한되는 것은 아니라는 것으로 이해되어야 한다. 대신에, 이들 용어들은 구성 요소 하나를 다른 구성 요소와 구별하기 위해 사용된다. 또한, 단수로 사용된 표현은 문맥 상으로 분명히 다른 의미를 갖지 않는 이상, 복수의 표현을 포함하는 것이다. 본 명세서에서 사용된, "구성되는", "포함하는", "가지는" 등과 같은 용어들은 명세서에 개시된 특징, 숫자, 단계, 동작, 구성 요소, 부분 또는 이들의 결합의 존재를 나타내기 위한 것으로 이해되어야 하며, 하나 이상의 다른 특징, 숫자, 단계, 동작, 구성 요소, 부분 또는 이들의 결합이 존재하거나 추가될 수 있는 가능성을 사전에 배제하기 위한 것을 아니다.
요소 또는 레이어가 다른 요소 또는 레이어의 "위에", 또는 이에 "연결되어" 또는 "결합되어" 있는 것으로 참조되는 경우, 상기 요소 또는 레이어는 다른 요소 또는 레이어의 바로 위에 또는 이에 직접 연결되거나 결합된 것일 수도 있고, 또는 하나 이상의 요소 또는 레이어가 개입되어 존재할 수도 있는 것으로 이해되어야 한다. 요소가 또 다른 요소 또는 레이어의 "바로 위에", 또는 이에 "직접 연결되어" 또는 "직접 결합되어" 있는 것으로 참조되는 경우, 여기에 개입되는 또 다른 요소 또는 레이어는 존재하지 않는다. 동일한 수치는 전체적으로 동일한 요소를 참조한다. 본 명세서에서 사용되는 용어 "및/또는"은 연관되어 열거된 하나 이상의 항목들 중 임의의 하나 또는 모든 조합들을 포함한다.
"아래에", "밑에", "낮게", "위에", "높이" 등과 같이 공간적으로 상대적인 용어들은 본 명세서의 도면에 예시된 하나의 요소 또는 특징들이 다른 요소(들)나 특징(들)과 가지는 관계를 보다 쉽게 기술하기 위하여 사용될 수 있다. 공간적으로 상대적인 용어들은 도면에서 묘사된 배치와 더불어 사용되는 장치 또는 동작의 다른 배치를 포함하기 위해 사용되는 것으로 이해되어야 한다. 예를 들어, 도면의 장치가 뒤집어 지는 경우, 다른 요소 또는 특징들의 "아래" 또는 "밑에" 있는 것으로 기술되었던 요소들은 다른 요소 또는 특징들의 "위에" 또는 "상에" 있는 것으로 될 것이다. 따라서, 예시로 든 용어 "위에"는 위와 아래의 두 배치를 모두 포함할 수 있다. 장치는 다른 방식으로 배치될 수 있으며(예를 들어, 90 도 회전하거나 다른 방향으로) 본 명세서에서 사용된 공간적으로 상대적인 기술들은 이에 따라 해석되어야 한다.
달리 정의되지 않는 한, 본 명세서에서 사용된 모든 용어들(기술적, 과학적 용어들을 포함)은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 같은 의미를 가진다. 통상적으로 사용되는 사전에서 정의된 것과 같은 용어들도 또한 관련 기술 분야에서의 문맥에 따라 가지는 의미와 일관된 의미를 가지는 것으로 해석되어야 하며 본 명세서에서 명확하게 정의되지 않는 한 이상적이거나 지나치게 형식적인 의미로 해석되어서는 안 된다. 또한, 본 발명의 실시예를 기술할 때, "할 수 있다"의 사용은 본 발명의 "하나 또는 그 이상의 실시예"에 관련된다.
도면에서 동일한 도면 부호는 동일한 요소를 나타내며, 이에 대한 반복된 기술은 생략된다.
이미지와 비디오의 압축을 위한 일반적인 데이터 압축 기법은 먼저 원래의 픽셀 데이터를 변환 계수로 전환하는 것을 포함한다. 예를 들어, 이미지 내 블록 데이터 또는 잔여 블록 간 데이터는 먼저 픽셀의 세기 값에서 이산 코사인 변환(discrete cosine transform: DCT), 아다마르(Hadamard) 변환, 웨이브릿(wavelet) 변환, 또는 해당 분야에서 통상의 기술을 가진 자에게 알려진 기타 다른 적절한 변환 과정과 같은 특정 이차원 변환을 사용하여 주파수 계수로 전환될 수 있다. 예로써, 원래의 사진 이미지는 이차원의 N x N 블록(예를 들어, 8 x 8 블록)으로 변환될 수 있으며, DCT 식이 각 블록이 해당하는 변환 계수를 가지도록 이미지에 오버레이되는 상기 N x N 행렬의 각 행과 열에 적용될 수 있다. 다른 실시예에서, 각 블록에 대해 다수의 변환 계수들이 존재할 수 있다.
상기 변환 계수들은 계수들에 해당하는 중요도에 따라 다시 양자화되거나 가중치가 부가되어 상기 변환 계수들의 많은 수 또는 대부분이 영의 값을 가지는 양자화된 계수들로 된다. 이어서, 상기 양자화된 값들 또는 계수들은 특정한 가변 길이 엔트로피 부호화 방법(예를 들어, 정적, 적응적(adaptive), 허프만(Huffman) 코딩, 산술 코딩, 또는 해당 분야에서 통상의 기술을 가진 자에게 알려진 기타 다른 적절한 엔트로피 부호화 방법)을 사용하여 집합적으로 또는 사전에 정의된 순서로 (예를 들어, 지그재그 순서로) 부호화된다. 이러한 과정의 결과는 원래의 압축되지 않은 데이터에 해당하는 부호화 비트열일 수 있다. 다른 예에서는, 원래의 이미지는 초기에 구획들로 구분될 수 있으며, 상기 기술된 압축 과정은 원래 이미지의 각 구획에 대해 수행된다.
예를 들어, 정렬된 변환 계수의 시퀀스가 주어졌을 때, 인코더는 특정한 양자화 임계값(예를 들어, 양자화 수(quantizer) Q)를 기반으로 상기 값들을 조정하여 데이터 크기를 조절한다. 그 이후, 양자화된 계수는 1) 연속적인 영들의 숫자들(예를 들어, 연속된 동일값), 및 2) 영이 아닌 절대값과 부호의 쌍들의 심볼들로 전환된다. 이 후, 양자화되거나 근사화된 연속된 영의 값들이나 계수의 영이 아닌 값들은 특정한 엔트로피 부호화를 통해 묶여진다.
예로써, 다음과 같이 정렬된 16개의 양자화된 숫자들은 상기 설명된 과정에 따라 압축될 수 있다:
14, 0, 0, 0, 5, -3, 0, 0, 0, 0, 0, 0, 9, 0, -1, 0
상기 기술된 방법의 첫 번째 단계는 이 시퀀스를 다음과 같이 연속된 동일값과 절대값 및 부호로 전환한다:
(1) r=0, a=14, s=0. (2) r=3, a=5, s=0. (3) r=0, a=3, s=1. (4) r=6, a=9, s=0. (5) r=1, a=1, s=1; EOS
상기 값들에 대해, r, a 및 s는 각각 연속된 동일값의 수, 절대값 및 부호를 나타내며, EOS는 시퀀스의 마지막(end of sequence)을 나타낸다. 양자화된 최초의 숫자는 영이 아니므로(즉, 14), 이전에는 영의 값들의 run이 없으며, 이에 따라 r=0이다. 영이 아닌 숫자가 14의 값을 가지는 양수이므로, a=14(절대값을 나타냄)이고 s=0 (부호가 양임을 나타냄)이다. 이어서, 양자화된 최초의 숫자에 이어 세 개의 영이 잇따르고 또 다른 영이 아닌 계수(즉, 5)에 이른다. 따라서, 두 번째 집합의 값들의 경우, r=3 (3개의 0이 연속함을 나타냄), a=5(시퀀스 내에서 영이 아닌 다음 숫자가 5의 값을 가짐을 나타냄), s=0(영이 아닌 값이 양수임을 나타냄)이다. 이렇게 양자화된 숫자들의 시퀀스를 구성하는 과정은 EOS에 의해 표시되는 시퀀스의 마지막에 이를 때까지 계속된다. 그 후에, r, a 및 s 값들의 시퀀스는 해당 분야에서 통상의 기술을 가진 자에게 알려진 적절한 특정 엔트로피 코덱 또는 코딩 기법을 사용하여 부호화된다. 예를 들어, 이전에 논의된 부호화 기법들(예를들어, 정적, 적응적(adaptive), 허프만(Huffman) 부호화, 산술 부호화, 또는 해당 분야에서 통상의 기술을 가진 자에게 알려진 기타 다른 적절한 엔트로피 부호화 방법) 중 하나를 사용하는 적절한 인코더가 사용될 수 있다.
요컨대, 상기 과정은 시퀀스 내 영이 아닌 계수들의 위치를 기반으로, 또 상기 영이 아닌 계수들 사이의 영들의 개수를 기반으로 양자화된 숫자들의 시퀀스를 조직하거나 묶어 준다. 따라서, 상기 과정은 저장 공간을 줄이고 효율을 높여 주면서 시퀀스 정보를 연속된 동일값과 절대값 및 부호 표시자의 시퀀스로 전환할 수 있다. 상기 전환된 시퀀스(예를 들어, 양자화된 계수들의 시퀀스에 서 전환된 연속된 동일값과 절대값 및 부호의 시퀀스)는 이후 적절하게 부호화된다.
본 데이터 압축 알고리즘은 인코더 및 디코더 모두가 상태 기계(예를 들어, 계수가 입력되고 비트들이 출력됨)로서 구축될 수 있게 해 준다.
고정 타겟 비트 용량을 이루거나, 최종적으로 코딩된 비트열에 대한 제한 또는 상한을 허용하기 위해(예를 들어, 비트열 당 256 비트로의 제한), 상기 계수들은 비트 평면들로 잘려질 수 있으며, 이 때 최상위 비트가 먼저 엔트로피 부호화되고 최하위 비트가 이어지며, 타겟 크기에 도달하며 부호화된 데이터는 종료한다. 다시 말하면, 대체적인 일반적 단일 패스 과정은 계수의 절대값들을 독립된 비트 평면들에 저장하는 과정을 포함할 수 있으며, 이 때 각 비트 평면은 단일 비트 위치 또는 각 계수의 비트 위치(예를 들어, 8-비트 비트 평면)를 나타낸다. 이 과정은 최상위 비트 위치로부터 최하위 비트 위치까지의 데이터를 사전 할당된 데이터 크기에 이를 때까지 최상위 비트가 묶여지도록 묶어 준다(예를 들어, 이미지의 각 블록에 해당하는 사전 할당된 데이터).
사전 할당된 데이터 크기를 사용하는 일반적인 단일 패스(single-pass) 데이터 압축 과정은 계수 입력 항목들을 절대값과 부호 정보의 쌍으로 전환하는 것으로 시작하며, 이를 통해 계수의 부호에 해당하는 비트 위치와 계수의 절대값과 같은 값에 이를 때까지 더해진 계수의 비트들에 해당하는 비트 위치(예를 들어, 크기 비트)에 대한 비트 평면들을 생성한다. 이어서, 계수들의 부호를 부호화하여 부호를 나타내는 비트 평면을 형성함으로써 첫 번째 비트 평면이 생성될 수 있다. 이어서, 계수의 절대값의 비트 평면들은 최상위 비트에서 최하위 비트까지 한번에 하나씩 부호화될 수 있다. 또한 각 비트 평면에 대해, 1의 비트들(즉, 1과 같은 비트들) 사이의 연속된 영의 값들이 실제 부호화 심볼을 제공한다.
예로써, 위와 같은 동일한 계수의 시퀀스가 본 부호화 기법을 기술하기 위해 사용될 것이다:
14, 0, 0, 0, 5, -3, 0, 0, 0, 0, 0, 0, 9, 0, -1, 0
현재 기술되는 알고리즘은 먼저 상기 계수들의 시퀀스를 부호 비트와 절대값 비트의 비트 평면으로 변환하여 아래 표 1에 나타난 것과 같이 총 5개의 비트 평면을 생성한다:
계수: | 14 | 0 | 0 | 0 | 5 | -3 | 0 | 0 | 0 | 0 | 0 | 0 | 9 | 0 | -1 | 0 |
부호: | 0 | - | - | - | 0 | 1 | - | - | - | - | - | - | 0 | - | 1 | - |
8: | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
4: | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
2: | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
1: | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 0 |
표 1은 다음과 같은 도출된 5개의 비트 평면들을 나타낸다: 부호 비트 평면, 8-비트 비트 평면, 4-비트 비트 평면, 2-비트 비트 평면, 및 1-비트 비트 평면. 상기 부호 비트 평면은 각 계수의 부호와 관련된 정보를 포함한다(예를 들어, 양의 부호인 경우 0의 비트, 음의 부호인 경우 1의 비트). 잔여 크기 또는 절대값 비트 평면은 각각의 계수가 네 개의 절대값 비트 평면들이 해당 계수의 동일한 크기에 수직으로 더해질 수 있도록 하는 비트값을 포함하는 경우에 1을 포함한다. 예를 들어, 계수 -3은 부호 비트 평면에서 1의 비트, 2-비트 비트 평면에서 1의 비트, 및 1-비트 비트 평면에서의 1의 비트로 분석되며, 이로써 상기 계수가 음수이고 절대값 3을 가짐을(즉, 1 + 2 = 3) 나타낸다.
이어서, 상기 압축 기법은 각 비트 평면에 존재하는 1 비트들과 상기 1 비트들 사이에 존재하는 연속된 영의 값들에 의존하여 부호 비트 평면과 네 개의 절대값 비트 평면들을 부호화한다. 상기 과정은 비트 평면 데이터를 부호화하기 위해 해당 분야의 기술자들에게 알려진 적절한 특정 엔트로피 코덱 또는 부호화 기법을 사용할 수 있다. 상기 비트 평면들은 타겟 데이터 크기에 이를 때까지 부호화된다. 아래 표 2는 표 1의 값들을 부호화한 결과를 보여 준다.
부호: | 5 | 8 | EOS | - | - |
8: | 0 | 11 | EOS | - | - |
4: | 0 | 3 | EOS | - | - |
2: | 0 | 4 | EOS | - | - |
1: | 4 | 0 | 6 | 1 | EOS |
표 2를 참조하면, 부호화된 8-비트 비트 평면은 처음에 "0"을 포함하며, 이는 비트 평면의 첫 번째 비트가 "1"을 포함하기 때문이다. 다음으로 부호화된 8-비트 비트 평면의 값은 "11"이며, 이는 11개의 연속된 영의 값이 다음의 1 비트의 값 이전에 나타남을 나타낸다. 마지막으로, 더 이상 따라오는 1 비트가 더 이상 없으므로, 부호화된 8-비트 비트 평면은 "11" 이후에 EOS를 포함한다.
비트 평면의 최초 비트가 "1"을 포함하므로 부호화된 4-비트 비트 평면은 최초에 "0"을 포함한다. 다음으로 부호화되는 4-비트 비트 평면의 값은 "3"이며, 이는 3개의 연속된 영의 값이 다음의 1 비트의 값 이전에 나타남을 나타낸다. 마지막으로, 더 이상 따라오는 1 비트가 더 이상 없으므로, 부호화된 4-비트 비트 평면은 "3" 이후에 EOS를 포함한다.
비트 평면의 최초 비트가 "1"을 포함하므로 부호화된 2-비트 비트 평면은 최초에 "0"을 포함한다. 다음으로 부호화되는 2-비트 비트 평면의 값은 "4"이며, 이는 4개의 연속된 영의 값이 다음의 1 비트의 값 이전에 나타남을 나타낸다. 마지막으로, 더 이상 따라오는 1 비트가 더 이상 없으므로, 부호화된 2-비트 비트 평면은 "4" 이후에 EOS를 포함한다.
비트 평면의 최초 4 비트가 "0"을 포함하므로 부호화된 1-비트 비트 평면은 최초에 "4"를 포함한다. 다음으로 부호화되는 1-비트 비트 평면의 값은 "0"이며, 이는 다음의 1 비트의 값 이전에 연속된 영의 값이 없음을 나타낸다. 다음으로 부호화되는 1-비트 비트 평면의 값은 "6"이며, 이는 6개의 연속된 영의 값이 다음의 1 비트의 값 이전에 나타남을 나타낸다. 다음으로 부호화되는 1-비트 비트 평면의 값은 "1"이며, 이는 하나의 연속된 영의 값이 다음의 1 비트의 값 이전에 나타남을 나타낸다. 마지막으로, 더 이상 따라오는 1 비트가 더 이상 없으므로, 부호화된 1-비트 비트 평면은 "1" 이후에 EOS를 포함한다.
비트 평면을 사용하는 상기 부호화 방법은 이미지 블록에 대한 고정 데이터 크기를 허용하지만, 상기 기술된 비트 평면 압축 방법은 과정이 순차적으로 수행되므로 모든 계수 데이터를 저장하기 위해 버퍼 메모리를 사용한다.
도 1은 본 발명의 일 실시예에 따른 부호화 과정을 예시하는 흐름도이다.
도 1을 참조하면, 본 발명의 실시예의 일례에 따른 부호화 과정의 흐름도(100)는 계수들에서 시작하여, 비트 평면들을 생성하고, 부호화를 수행하여 최종적으로 부호화 비트열로 끝나는 과정을 예시한다. 부호화 과정(100)은 단계 102에서 일련의 양자화된 계수들에서 시작한다. 부호화 과정(100)은 다수의 레지스터들(예를 들어, 도 2의 레지스터들(204))을 사용한다. 상기 레지스터들은 부호 레지스터와 비트들의 다른 크기들을 나타내는 비트 레지스터들을 포함한다. 예를 들어, 상기 레지스터들은 상기 1-비트, 2-비트, 4-비트 및 8-비트를 위한 레지스터들을 포함할 수 있으며 결과적으로 부호 레지스터를 포함하여 총 5개의 레지스터를 포함하게 된다(즉, 네 개의 비트 레지스터와 하나의 부호 레지스터). 본 실시예에 따른 인코더는, 위에서 기술된 것처럼 모든 계수에 대한 비트 평면을 생성하는 대신, 각 계수의 입력 항목을 분해하여 모든 비트들을 병렬로 부호화하도록 작동한다.
각 계수의 분해는 위의 표 2와 관련하여 기술된 것과 유사한 방식으로 일어난다. 위에 기술된 것과 수행된 후, 단계 102에서 양자화된 계수는 각각 표 2에 예시된 형태를 가지며, 이 때 각 계수는 부호 비트 파라미터와 크기 비트 파라미터를 가진다. 각 계수의 분해는 계수를 부호 비트(예를 들어, "s")와 이에 해당하는 크기 비트들(예를 들어, "aK . . . a1, a0")로 구성하는 단계를 포함한다.
부호화 과정(100)은 상기 과정(100)으로 입력된 계수의 시퀀스 내의 첫 번째 계수에 작동하거나 이를 묶음으로써 기능한다. 최초의 계수 이후에, 부호화 과정(100)은 계수의 시퀀스(102) 내의 다음 계수로 이동하여 계수가 더 이상 남아 있지 않을 때까지 과정을 반복한다. 부호 및 크기 비트는 해당하는 레지스터들(예를 들어, rs, raK . . . ra1, ra0)로 나타내어 질 수 있다.
단계 104에서, 상기 인코더는 작동 대상 계수의 부호 비트 "s"가 0인지의 여부(예를 들어, 계수의 부호가 양인지의 여부)를 결정한다. 계수의 부호 비트가 0과 같을 때는(예를 들어, 계수의 부호가 양인 경우), 부호 비트와 연관된 레지스터(rs)가 단계 106에서 1만큼 증가된다. 반면에, 계수의 부호 비트가 0이 아닐 때는(예를 들어, 부호 비트가 1과 같아서 계수가 음인 것을 나타내는 경우), 부호 레지스터(rs)가 단계 108에서 부호화되며 부호 레지스터(rs)는 0으로 리셋된다. 부호화는 해당 분야에서 통상의 기술을 가진 자에게 알려진 임의의 적절한 부호화 기법들, 예를 들어 위에서 논의된 부호화 방법(예를 들어, 정적, 적응적(adaptive), 허프만(Huffman) 부호화, 산술 부호화, 또는 기타 다른 적절한 엔트로피 부호화 방법)중 임의의 방법을 사용하여 수행될 수 있다.
병행 수행 시, 작동 대상 계수의 크기 비트 aK . . . a1, a0는 동일한 취급 과정을 겪는다. 예를 들어, 단계 110에서, 상기 인코더는 최대 비트 크기를 나타내는 작동 대상 계수의 비트 aK가 0인지의 여부(예를 들어, 상기 계수가 비트 크기를 포함하는지의 여부)를 결정한다. 최대 크기 비트 aK는 본 발명의 실시예에 따른 적절한 크기(예를 들어, aK는 8의 크기를 나타낼 수 있다)일 수 있다. 계수의 최대 크기 비트가 0과 같은 경우에는, 계수의 최대 크기 비트와 관련된 레지스터 raK의 값이 단계 112에서 1만큼 증가된다. 반면에, 계수의 최대 크기 비트가 0과 같지 않은 경우에는(예를 들어, 최대 크기 비트가 1과 같을 때), 계수의 최대 크기 비트 레지스터 raK가 부호화되며 상기 레지스터는 단계 114에서 0으로 리셋된다. 이 작동은 계수의 남은 비트들에 대해서 마찬가지로 수행된다. 본 발명의 일부 실시예에서, 레지스터들은 계수의 시퀀스에 작동되기 이전에 0으로 초기화된다.
단계 116에서 계수의 시퀀스 내의 계수에 작동한 이후에, 부호화 과정(100)은 계수의 시퀀스 내에 다음 계수가 있는지의 여부를 결정한다. 단계 118에서, 계수의 시퀀스 내에 다음 계수가 있는 경우에, 상기 과정은 단계 102의 계수의 시퀀스로 돌아가 분해된 다음 계수를 검색하며, 상기 인코더는 위에서 기술한 것과 같은 방식으로 다음 계수의 비트에 병렬로(예를 들어, 병행하여 또는 동시에) 작동한다.
분해된 계수들의 비트들은 각각의 부호화 비트열들(120)로 부호화되며, 이 때, 상기 비트열들 각각은 각 계수를 구성하는 각각의 비트 위치에 해당한다(예를 들어, 계수들의 부호 비트들에 해당하는 부호화 비트열, 계수들 중 가장 큰 크기의 비트들 aK에 해당하는 부호화 비트열 등).
단계 122에서, 계수의 시퀀스 내에 다음 계수가 없는 경우에, 상기 인코더는 시퀀스의 마지막(EOS) 신호를 전송하고 모든 레지스터들을 0으로 리셋한다. 단계 124에서, 인코더는 데이터의 또 다른 블록(예를 들어, 이미지 데이터의 또 다른 블록)을 나타내는 또 다른 계수의 시퀀스에 대해 상기 부호화 과정을 반복한다. 단계 124에서 병행 수행(예를 들어, 동시에) 시에, 상기 인코더는 인코더에 의해 부호화된 부호화 비트열(108)을 통합하며, 결과적으로 부호화 비트열(126)을 생성한다. 부호 비트와 비트 평면들을 나타내는 부호화 비트열들은 병렬로 인터레이스(interlace) 되거나 직렬로 통합된다. 상기 부호화 과정은 데이터의 모든 블록이 부호화될 때까지 계속될 수 있다.
예를 들어 설명하면, 계수의 시퀀스는 다음과 같이 위 표 1의 시퀀스를 포함할 수 있다: 14, 0, 0, 0, 5, -3, 0, 0, 0, 0, 0, 0, 9, 0, -1, 0. 본 발명의 실시예에 따르면, 5개의 비트 평면(예를 들어, 부호 비트 평면, 8-비트 비트 평면, 4-비트 비트 평면, 2-비트 비트 평면 및 1-비트 비트 평면)들은 명시적으로 변환되지 않으나, 5개의 비트 평면에 해당하는 5 개의 레지스터들이 유지된다(예를 들어, r_s, r_8, r_4, r_2 및 r_1). 5개의 레지스터들은 각 비트 평면 내의 연속된 영의 값들을 추적한다. 본 발명의 실시예는 분해된 계수, 예를 들어, 표 1에 보인 것과 같이 비트들로 분해된 계수를 이용할 수 있다.
부호화 과정은 시퀀스 내의 최초 계수(즉, 14)에서 시작한다. 계수 14에 해당하는 부호 비트와 1-비트가 각각 0이기 때문에, 레지스터 r_s와 r_1이 각각 1씩 증가된다. 또한, 계수 14에 해당하는 8-비트, 4-비트 및 2-비트가 각각 1이기 때문에, 레지스터s r_8, r_4 및 r_2가 부호화되어 0으로 리셋된다(이 경우에는, 0에서 유지된다).
과정은 이제 다음 계수인 0으로 이동한다. 모든 비트들이 0이므로, 각 레지스터 r_s, r_8, r_4, r_2 및 r_1이 1씩 증가된다. 다음 계수도 또한 0이므로, 모든 레지스터들이 다시 1씩 증가된다. 다음 계수도 또한 다시 0이므로, 모든 레지스터들이 다시 1씩 증가된다. 세 번째의 0 이후의 다음 계수는 5이다. 계수 5에 해당하는 부호 비트, 8-비트 및 2-비트가 각각 0이기 때문에, 각 레지스터 r_s, r_8 및 r_2가 1씩 증가된다. 또한, 계수 5에 해당하는 4-비트와 1-비트가 각각 1이기 때문에, 각 레지스터 r_4 및 r_1는 부호화되어 0으로 리셋된다. 이 경우에, 과정의 현 단계에서 r_4=3이고 r_1=4이므로, 이들 저장된 값이 부호화되며, r_4와 r_1은 0으로 리셋된다.
다음 계수는 -3이다. 계수 3에 해당하는 각 8-비트 및 4-비트가 0이기 때문에, 각 레지스터 r_8 및 r_4가 1씩 증가된다. 또한, 계수 -3에 해당하는 부호 비트, 2-비트 및 1-비트가 각각 1이기 때문에, 각 레지스터 r_s, r_2 및 r_1는 부호화되어 0으로 리셋된다. 이 경우에, 과정의 현 단계에서r_s=5, r_2=4 이고 r_1=0이므로, 이들 저장된 값이 부호화되며, r_s, r_2 및 r_1은 0으로 리셋된다(또는 0으로 유지된다). 과정은 계수의 시퀀스의 마지막에 이를 때까지 계속된다. 여기서 기술된 본 발명의 일 실시예에 따른 부호화 과정을 시퀀스 내 6개의 계수에 대해 이하에서 요약한다:
14: r_s+=1, r_1+=1; encode: r_8=0, r_4=0 및 r_2=0
0: r_s+=1, r_8+=1, r_4+=1, r_2+=1 및 r_1+=1
0: r_s+=1, r_8+=1, r_4+=1, r_2+=1 및 r_1+=1
0: r_s+=1, r_8+=1, r_4+=1, r_2+=1 및 r_1+=1
5: r_s+=1, r_8+=1, r_2+=1; 부호화: r_4=3 및 r_1=4; 리셋: r_4=r_1=0
-3: r_8+=1, r_4+=1; 부호화: r_s=5, r_2=4, 및 r_1=0; 리셋: r_s=r_2=r_1=0
도 2는 본 발명의 일 실시예에 따른 부호화 시스템을 예시하는 개략적 블록도이다.
도 2를 참조하면, 부호화 시스템(200)은 변환기(202)로 입력되는 이미지 데이터에서 시작한다. 상기 이미지 데이터는 적-녹-청(RGB)의 픽셀 정보를 포함할 수 있다. 상기 이미지 데이터는 정지 화상 또는 동영상 이미지 또는 비디오(예를 들어, 비디오의 프레임)에 해당할 수 있다. 상기 변환기(202)는 이미지 데이터를 변환 계수로 변환한다. 상기 변환기(202)는 해당 분야에서 통상의 기술을 가진 기술자에게 알려진 적절한 변환 기술, 예를 들어, 이산 코사인 변환(DCT), 아다마르(Hadamard) 변환, 웨이브릿(wavelet) 변환 등을 사용하여 작동할 수 있다. 본 발명의 일부 실시예에서, 상기 변환 계수는 위의 도 1과 관련하여 기술된 계수와 유사하다.
상기 변환 계수는 부호화 비트 평면에 해당하는 복수의 레지스터(204)로 보내진다. 상기 레지스터(204)는 상기 변환 계수를 구성하고 묶는데 사용된다. 상기 레지스터(204)는 요구되거나 필요에 따라 적절한 개수의 레지스터를 포함할 수 있다. 본 실시예에서, 부호화 비트 평면 레지스터는 다음과 같은 5개의 레지스터를 포함한다: 부호 레지스터 (r_s), 8-비트 레지스터 (r_8), 4-비트 레지스터 (r_4), 2-비트 레지스터 (r_2) 및 1-비트 레지스터 (r_1). 상기 레지스터(204)는 도 1과 관련하여 위에서 설명한 바와 같이 각 계수에 대한 정보를 추적한다. 본 발명의 실시예에서, 상기 레지스터(204)는 각 계수를 병렬로(예를 들어, 병행하여 또는 동시에) 수행하여 구성한다. 달리 말하면, 상기 레지스터(204)는 각 변환 계수와 관련된 정보를 추적하여 계수에 일단 동작이 가해지면, 해당 계수는 제거되며 이 계수는 중간 메모리에 저장될 필요가 없다.
상기 레지스터(204)는 변환 계수를 묶으므로, 일부 레지스터(204)의 값이, 예를 들어, 레지스터가 1-비트를 만날 때마다 부호화된다. 부호화되어야 하는 이들 레지스터들의 값들은 인코더(206)로 보내진다. 인코더(206)는 위의 도 1을 참조하여 논의된 대로 부호화 비트열을 출력한다. 부호화 비트열은 변환기(202)로 보내진 압축되지 않았거나 원래의 이미지 픽셀 데이터에 해당하는 부호화되거나 압축된 데이터이다. 부호화 비트열은 필요한 경우에 복호화를 위해 접근할 수 있도록 메모리(208)에 저장되거나 디코더 또는 또 다른 장치로 전송된다.
해당 기술에 대해 통상의 기술을 가진 자라면 변환기 모듈 및 인코더 모듈이 단일 모듈로 결합되거나 다른 하부 모듈들로 분리될 수 있음을 인식할 수 있을 것이다. 각 모듈은 변환기 및 인코더 모듈의 특정 기능을 수행하도록 구성된 하나 또는 그 이상의 ASIC, FPGA, 프로그래밍된 마이크로프로세서 및/또는 이와 유사한 장치를 통해 구현될 수 있다. 예를 들어, 상기 마이크로프로세서는 마이크로프로세서에 의해 실행되는 경우 특정한 기능이 발생되도록 하는 컴퓨터 명령어들을 저장하는 메모리와 연결될 수 있다r. 또한, 일부 실시예에서, 레지스터와 인코더는 단일 모듈로 통합된다.
도 3은 본 발명의 일 실시예에 따른 복호화 과정을 예시하는 흐름도이다.
도 3을 참조하면, 본 실시예에 따라 압축되거나 부호화된 정보의 복호화 과정(300)은 부호화 비트열(302)에서 시작한다. 부호화 비트열(302)은 본 발명의 실시예, 예를 들어, 도 1에서 예시된 본 발명의 실시예에 따라 생성될 수 있다. 부호화 비트열은 지정된 일부의 메모리에 저장되며 최종적으로 부호화된 값들을 비트 평면 순서로 나타낸다(예를 들어, 표 2와 같이 왼쪽에서 오른쪽으로의 수평 스캐닝 순서). 부호화 비트열은 예를 들어, 전송 매체를 통해 수신되었을 수 있다.
상기 복호화 과정(300)은 저장된 상기 비트열(302)의 묶음을 풀거나 압축을 해제한다. 상기 복호화 과정(300)은 부호화 심볼들의 시퀀스를 포함하는 부호화 비트열을 분석한다. 단계 304에서, 부호화 비트열 내의 부호화 심볼이 읽혀지거나 탐지된다. 단계 306에서, 부호화 심볼이 비트 평면들의 시퀀스의 마지막을 나타내는 EOS 심볼인지의 여부가 결정된다.
단계 308에서 EOS 심볼이 탐지되지 않으면, 연속된 동일값 r이 읽혀지고 탐지된다. 연속된 동일값 r은 부호화된 심볼의 값과 같다(예를 들어, 부호화된 심볼 5는 5 비트의 연속된 동일값을 나타낸다). 연속된 동일값 r은 특정 비트 평면에서의 연속적인 영의 값들의 개수를 의미한다. 부호화 심볼의 연속된 동일값 r이 읽혀진 이후에, 단계 310에서, r개의 위치 또는 자리들(즉, 연속된 동일값의 값)은 건너 띄고 r개의 비트들 이후의 다음 비트가 1 비트로 설정된다. 건너 띈 위치 또는 자리들의 비트 값들은 0으로 출력된다. 연속된 동일값 r은 특정 비트 평면을 따라 수평으로 발생한다. 예를 들어, 8-비트 비트 평면에 해당하는 부호화 심볼 5가 읽혀지면, 5개의 영의 값들이 8-비트 비트 평면을 따라 위치하거나 출력되고 상기 5개의 영의 값들 이후의 6번째 비트 위치는 1 비트로 설정된다. 연속된 동일값 r을 읽은 이후에, 단계 312에서, 작동 대상 비트 평면의 다음 부호화 심볼이 읽혀지고, 단계 304의 다음의 부호화 심볼에서 과정이 다시 시작된다.
복호화 과정(300)이 EOS 심볼을 탐지하면, 과정(300)은 이어서 탐지된 EOS가 단계 314의 비트 평면의 마지막 레벨에 해당하는지의 여부를 결정한다. 단계 316에서, EOS가 마지막 비트 평면 레벨에 해당하지 않는 경우, 복호화 과정(300)은 다음 비트 평면 레벨로 진행한다. 반면에, 단계 318에서, EOS가 마지막 비트 평면 레벨에 해당하지 않는 경우, 상기 디코더는 부호화된 데이터의 다음 블록으로 진행하여 단계 304에서 다음 블록의 최초 부호화 심볼을 읽어 들임으로써 데이터의 묶음을 해제하는 것을 계속한다. 데이터의 다음 블록은 이미지의 다음 블록에 해당할 수 있다.
예를 들어, 부호화 비트열은 표 3에 보인 정보를 차례대로 가질 수 있다:
부호: | 5 | 8 | EOS |
8: | 0 | 11 | EOS |
4: | 0 | 3 | EOS |
2: | 0 | 4 | EOS |
이 정보는 1-비트 비트 평면 정보를 더 이상 사용할 수 없다는 것을 제외하고는 상기 표 2의 정보와 유사함에 유의해야 한다. 위에서 언급한 바와 같이, 본 발명의 실시예는 고정 데이터 크기 부호화를 허용하며, 따라서, 고정 데이터 크기 제한으로 인해, 2-비트 비트 평면이 부호화된 이후에 데이터 용량이 충족되면 1-비트 비트 평면은 부호화되지 않을 수 있다. 따라서, 1-비트 비트 평면 정보는 부호화되지 않으며 복호화 단계에서 사용할 수 있도록 저장되지 않는다. 다른 실시예에서, 다른 고정 데이터 용량이 부호화 단계에서 부과될 수 있는데, 예를 들어, 2-비트 비트 평면과 1-비트 비트 평면의 최종 부호화 비트열에 포함되지 않을 수 있다.
본 실시예에 따르면, 상기 부호화 비트열은 상단 비트 평면 레벨에서 하단 비트 평면 레벨(예를 들어, 마지막 비트 평면)까지의 각 비트 평면에 걸쳐 수평으로 복호화된다. 본 실시예에 따른 디코더는 부호화된 심볼들을 부호화된 심볼이 아닌 비트들을 포함하는 비트 평면으로 수평으로 분할하며, 아래 표 4에 보인 것과 같을 결과를 생성한다.
부호: | 0 | - | - | - | 0 | 1 | - | - | - | - | - | - | 0 | - | 1 | - |
8: | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
4: | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
2: | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
비트 평면을 수직으로 군을 만든 후에, 다음과 같은 계수들의 시퀀스가 결과로 나타난다:
14, 0, 0, 0, 4, -2, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0
표 1에 보인 원래의 계수들과 비교하면, 1-비트 비트 평면을 부호화 단계에서 제거한 결과 다소의 차이가 있지만, 비트 평면 레벨에서 고정 데이터 제한을 구현하는 능력을 가지고 메모리를 절약하면서도 그 결과들은 여전히 유사하다. 예를 들어, 본 발명의 실시예에 따른 코덱 설계에서는 통합된 게이트의 개수가 인코더의 경우에는 40,000개 미만 디코더의 경우에는 60,000개 미만이다. 따라서, 본 발명의 실시예는 종래의 비디오 및 이미지 코덱과 비교하여 십분의 일 미만의 계산 복잡도를 가질 수 있다.
도 4는 본 발명의 일 실시예에 따른 복호화 시스템을 예시하는 개략적 블록도이다.
도 4를 참조하면, 복호화 시스템(400)이 메모리(408)에 저장된 부호화 비트열(예를 들어, 부호화된 심볼을 포함하는 비트 평면)에 접근한다. 상기 부호화 비트열은 상기 부호화 비트열을 복호화 또는 unpack하여 복호화된 계수들(예를 들어, 계수들의 부호와 크기에 해당하는 비트들을 포함하는 비트 평면들)을 생성하도록 구성된 엔트로피 인코더(402)로 전송된다. 압축되거나 부호화된 데이터는 본 발명의 실시예, 예를 들어, 도 3과 관련하여 기술된 방법에 따라 압축이 해제되거나 복호화될 수 있다. 복호화된 계수들은 상기 복호화된 계수들을 복호화된 이미지로 변환하도록 구성된(예를 들어, 위에서 설명한 바와 같이, 비트 평면들의 수직 열을 추가함으로써) 변환기(404)로 보내진다. 예를 들어, 복호화된 이미지는 최종 사용자가 컴퓨터에서 사용하기 위한 디스플레이를 위한 이미지일 수 있다.
본 발명의 분야에서 통상의 기술을 가진 자라면 상기 디코더 모듈 및 컨버터 모듈이 하나의 단일 모듈로 결합되거나 다른 하위-모듈들로 분리될 수 있음을 인식할 수 있을 것이다. 각 모듈은 상기 디코더 및 컨버터 모듈의 특정 기능들을 수행하도록 구성된 하나 이상의 ASIC, FPGA, 프로그래밍된 마이크로프로세서 및/또는 이와 유사한 장치들을 통해 구현될 수 있다. 예를 들어, 상기 마이크로프로세서는 마이크로프로세서에 의해 실행되는 경우 특정한 기능이 발생되도록 하는 컴퓨터 명령어들을 저장하는 메모리와 연결될 수 있다.
Claims (21)
- 복수의 레지스터들을 포함하는 인코더로서,
상기 인코더는,
상기 복수의 레지스터에 대응하는 복수의 비트 위치에 각각 위치하는 복수의 비트로 각각 분해되는 복수의 계수를 포함하는 계수 시퀀스를 순차적으로 수신하고,
상기 복수의 비트를 순차적으로 읽고, 상기 복수의 비트 중 0과 동일한 비트의 레지스터를 증가시키고, 상기 복수의 비트 중 1과 동일한 비트의 레지스터를 재설정함으로써 상기 각 계수의 상기 복수의 비트에 병행 동작으로 작동하고,
상기 복수의 비트 중 하나의 비트가 1인 것을 탐지한 것에 대한 대응으로, 상기 하나의 비트에 대응하는 하나의 비트 위치에 대응하는 하나의 레지스터의 값을 부호화함으로써 부호화된 심볼을 생성하고,
상기 하나의 비트가 1인 것을 탐지한 것에 대한 대응으로, 상기 하나의 레지스터를 0으로 재설정하고,
복수의 부호화된 심볼을 포함하는 복수의 부호화된 비트 평면 레벨을 생성하고,
상기 계수 시퀀스의 마지막을 탐지한 것에 대한 대응으로, 복수의 시퀀스 마지막(EOS) 신호를 상기 복수의 부호화된 비트 평면 레벨로 전송하고,
상기 계수 시퀀스의 마지막을 탐지한 것에 대한 대응으로, 상기 복수의 레지스터를 0으로 재설정하는
인코더. - 삭제
- 삭제
- 삭제
- 제1항에 있어서,
상기 하나의 레지스터의 값은 상기 하나의 비트 위치에서의 영(0)의 연속 회수(zero run)를 나타내는 인코더. - 제1항에 있어서,
상기 각 계수의 상기 비트 위치는 비트 평면 레벨을 형성하는 인코더. - 삭제
- 삭제
- 제1 항에 있어서,
상기 복수의 비트 위치의 최초 비트 위치는 각 계수의 부호를 나타내는 것을 특징으로 하는 인코더. - 복수의 비트 평면으로 배열된 부호화된 심볼들을 포함하는 심볼 시퀀스를 수신하고,
상기 복수의 비트 평면 중 서로 다른 비트 평면에 해당하는 상기 심볼 시퀀스의 둘 이상의 부호화된 심볼을 읽어 들이고,
상기 둘 이상의 부호화된 심볼이 연속된 동일한 값임을 탐지한 것에 대한 대응으로, 상기 비트 평면 중 해당하는 비트 평면에서 상기 연속된 동일한 값과 같은 개수의 0-비트의 비트들을 출력하고,
상기 0-비트의 비트들을 출력한 이후 상기 비트 평면 중 해당하는 비트 평면에서 1-비트를 출력하고,
시퀀스 마지막(EOS) 심볼인 부호화된 심볼을 탐지한 것에 대한 대응으로, 상기 복수의 비트 평면 중 다음 비트 평면에 해당하는 다음 부호화된 심볼을 읽어 들이고,
상기 복수의 비트 평면 중 마지막 비트 평면에 해당하는 시퀀스 마지막(EOS) 심볼을 탐지한 것에 대한 대응으로, 다른 부호화된 심볼 시퀀스를 수신하는
디코더. - 삭제
- 삭제
- 복수의 레지스터를 포함하는 인코더를 사용하는 부호화 방법으로서,
상기 복수의 레지스터에 대응하는 복수의 비트 위치에 각각 위치하는 복수의 비트로 각각 분해되는 복수의 계수를 포함하는 계수 시퀀스를 순차적으로 수신하는 단계,
상기 복수의 비트를 순차적으로 읽고, 상기 복수의 비트 중 0과 동일한 비트의 레지스터를 증가시키고, 상기 복수의 비트 중 1과 동일한 비트의 레지스터를 재설정함으로써 상기 각 계수의 상기 복수의 비트에 병행 동작으로 작동하는 단계,
상기 복수의 비트 중 하나의 비트가 1인 것을 탐지한 것에 대한 대응으로, 상기 하나의 비트에 대응하는 하나의 비트 위치에 대응하는 하나의 레지스터의 값을 부호화함으로써 부호화된 심볼을 생성하는 단계,
상기 하나의 비트가 1인 것을 탐지한 것에 대한 대응으로, 상기 하나의 레지스터를 0으로 재설정하는 단계,
복수의 부호화된 심볼을 포함하는 복수의 부호화된 비트 평면 레벨을 생성하는 단계,
상기 계수 시퀀스의 마지막을 탐지한 것에 대한 대응으로, 복수의 시퀀스 마지막(EOS) 신호를 상기 복수의 부호화된 비트 평면 레벨로 전송하는 단계, 그리고
상기 계수 시퀀스의 마지막을 탐지한 것에 대한 대응으로, 상기 복수의 레지스터를 0으로 재설정하는 단계
를 포함하며,
상기 복수의 비트 위치는 복수의 비트 평면 레벨을 이루는
부호화 방법. - 제13항에 있어서,
상기 복수의 비트들 중 하나의 비트가 0인 것을 탐지한 것에 대한 대응으로, 상기 복수의 레지스터들 중에서 상기 하나의 비트에 대응하는 상기 복수의 비트 위치들 중 하나의 비트 위치에 해당하는 하나의 레지스터를 1만큼 증가시키는 단계를 더 포함하는 부호화 방법. - 삭제
- 삭제
- 제13항에 있어서,
상기 하나의 레지스터의 값은 상기 하나의 비트 위치에서의 영(0)의 연속 회수(zero run)를 나타내는 부호화 방법. - 삭제
- 삭제
- 삭제
- 제13항에 있어서,
상기 복수의 비트 위치의 최초 비트 위치는 상기 각 계수의 부호를 나타내는 부호화 방법.
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361886580P | 2013-10-03 | 2013-10-03 | |
US61/886,580 | 2013-10-03 | ||
US14/451,150 US9813718B2 (en) | 2013-10-03 | 2014-08-04 | Apparatus and method for compact bit-plane data compression |
US14/451,150 | 2014-08-04 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20150039680A KR20150039680A (ko) | 2015-04-13 |
KR102219133B1 true KR102219133B1 (ko) | 2021-02-23 |
Family
ID=51589158
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020140126151A KR102219133B1 (ko) | 2013-10-03 | 2014-09-22 | 컴팩트한 비트 평면(bit-plane) 데이터 압축을 위한 인코더, 디코더 및 부호화 방법 |
Country Status (8)
Country | Link |
---|---|
US (1) | US9813718B2 (ko) |
EP (1) | EP2858370A1 (ko) |
JP (1) | JP6480695B2 (ko) |
KR (1) | KR102219133B1 (ko) |
CN (1) | CN104519355B (ko) |
AU (1) | AU2014227492B2 (ko) |
IN (1) | IN2014MU03062A (ko) |
TW (1) | TWI626843B (ko) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10602192B2 (en) * | 2016-02-04 | 2020-03-24 | Mediatek Inc. | Methods and apparatuses for performing entropy encoding and entropy decoding with size determination of at least one bitstream portion |
US20170311003A1 (en) * | 2016-04-20 | 2017-10-26 | Mediatek Inc. | Method and apparatus for performing entropy encoding with sign data removal and associated method and apparatus for performing entropy decoding with sign data recovery |
US10909926B2 (en) * | 2018-05-08 | 2021-02-02 | Apple Inc. | Pixel circuitry and operation for memory-containing electronic display |
CN114118177B (zh) * | 2022-01-24 | 2022-04-26 | 广东工业大学 | 一种基于奇异谱分析的位平面降噪方法、***及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020122483A1 (en) | 2001-03-02 | 2002-09-05 | Matsushita Electric Industrial Co., Ltd. | Encoding circuit and method |
US20080267300A1 (en) | 2007-04-30 | 2008-10-30 | Siemens Aktiengesellschaft | Method for the compression of data using a run-length coding |
US20110091123A1 (en) | 2009-10-21 | 2011-04-21 | Sony Corporation | Coding apparatus and coding method |
US20130163892A1 (en) | 2011-12-21 | 2013-06-27 | Sony Corporation | Image processing apparatus and image processing method |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4420771A (en) * | 1981-02-09 | 1983-12-13 | Bell Telephone Laboratories, Incorporated | Technique for encoding multi-level signals |
US4941124A (en) * | 1982-01-25 | 1990-07-10 | Skinner Jr James T | Text comparator with counter shift register |
JPH02131671A (ja) * | 1988-11-11 | 1990-05-21 | Casio Comput Co Ltd | 画像データ圧縮方法 |
GB2325584B (en) * | 1997-05-01 | 2000-03-29 | Ricoh Kk | Decompression system using inverse wavelet transform |
JP4054430B2 (ja) * | 1998-03-06 | 2008-02-27 | キヤノン株式会社 | 画像処理装置及び方法及び記憶媒体 |
KR19990075483A (ko) | 1998-03-20 | 1999-10-15 | 윤종용 | 비트 평면 압축장치 및 비트 평면 압축/복원 방법 |
JP3695330B2 (ja) * | 2000-12-26 | 2005-09-14 | 株式会社デンソー | 画像圧縮方法及び装置、記録媒体 |
US6650784B2 (en) * | 2001-07-02 | 2003-11-18 | Qualcomm, Incorporated | Lossless intraframe encoding using Golomb-Rice |
JP2003032496A (ja) * | 2001-07-12 | 2003-01-31 | Sanyo Electric Co Ltd | 画像符号化装置および方法 |
US7418146B2 (en) * | 2004-02-10 | 2008-08-26 | Sanyo Electric Co., Ltd. | Image decoding apparatus |
CN1267858C (zh) * | 2004-04-07 | 2006-08-02 | 西安交通大学 | 实时截断的jpeg2000速率控制方法 |
JP4510678B2 (ja) * | 2005-03-29 | 2010-07-28 | 株式会社Kddi研究所 | 映像伝送装置および映像伝送・受信再生装置 |
KR101375662B1 (ko) | 2007-08-06 | 2014-03-18 | 삼성전자주식회사 | 이미지 데이터 압축 방법 및 장치 |
KR100928324B1 (ko) | 2007-10-02 | 2009-11-25 | 주식회사 아이브이넷 | 압축된 동영상을 복원하기 위한 프레임 버퍼 메모리 운영방법 및 이에 적합한 디코딩 장치 |
JP5018582B2 (ja) * | 2008-03-21 | 2012-09-05 | 沖電気工業株式会社 | 予測値生成装置、予測値生成方法及び復号装置 |
US8477845B2 (en) * | 2009-10-16 | 2013-07-02 | Futurewei Technologies, Inc. | Predictive adaptive scan ordering for video coding |
JP2011091575A (ja) * | 2009-10-21 | 2011-05-06 | Sony Corp | 符号化装置および方法 |
US9008181B2 (en) * | 2011-01-24 | 2015-04-14 | Qualcomm Incorporated | Single reference picture list utilization for interprediction video coding |
GB2496197A (en) * | 2011-11-07 | 2013-05-08 | Sony Corp | Frequency Domain Video Data Reordering for Encoding |
US20130188741A1 (en) * | 2012-01-21 | 2013-07-25 | General Instrument Corporation | Devices and methods for sample adaptive offset coding and/or selection of band offset parameters |
-
2014
- 2014-08-04 US US14/451,150 patent/US9813718B2/en active Active
- 2014-09-18 AU AU2014227492A patent/AU2014227492B2/en active Active
- 2014-09-22 KR KR1020140126151A patent/KR102219133B1/ko active IP Right Grant
- 2014-09-23 EP EP20140185887 patent/EP2858370A1/en not_active Withdrawn
- 2014-09-24 IN IN3062MU2014 patent/IN2014MU03062A/en unknown
- 2014-09-29 TW TW103133824A patent/TWI626843B/zh active
- 2014-10-02 JP JP2014203688A patent/JP6480695B2/ja active Active
- 2014-10-08 CN CN201410524830.4A patent/CN104519355B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020122483A1 (en) | 2001-03-02 | 2002-09-05 | Matsushita Electric Industrial Co., Ltd. | Encoding circuit and method |
US20080267300A1 (en) | 2007-04-30 | 2008-10-30 | Siemens Aktiengesellschaft | Method for the compression of data using a run-length coding |
US20110091123A1 (en) | 2009-10-21 | 2011-04-21 | Sony Corporation | Coding apparatus and coding method |
US20130163892A1 (en) | 2011-12-21 | 2013-06-27 | Sony Corporation | Image processing apparatus and image processing method |
Also Published As
Publication number | Publication date |
---|---|
CN104519355B (zh) | 2019-06-04 |
IN2014MU03062A (ko) | 2015-10-09 |
CN104519355A (zh) | 2015-04-15 |
TWI626843B (zh) | 2018-06-11 |
TW201528786A (zh) | 2015-07-16 |
JP6480695B2 (ja) | 2019-03-13 |
AU2014227492B2 (en) | 2018-08-23 |
US9813718B2 (en) | 2017-11-07 |
KR20150039680A (ko) | 2015-04-13 |
EP2858370A1 (en) | 2015-04-08 |
JP2015073274A (ja) | 2015-04-16 |
AU2014227492A1 (en) | 2015-04-23 |
US20150098498A1 (en) | 2015-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2417518C2 (ru) | Эффективное кодирование и декодирование блоков преобразования | |
JP4113114B2 (ja) | Golomb−riceコーディングを使用するdct圧縮 | |
TWI471013B (zh) | 轉換式數位媒體編解碼器之計算複雜度及精確性控制 | |
US9332258B2 (en) | Method and device for display stream compression | |
CN102378991B (zh) | 用于编码的数据中的压缩增益的压缩域***和方法 | |
CN104041040A (zh) | 用于无损视频编码的预测残差编码 | |
RU2693902C2 (ru) | Кодер, декодер и способ | |
KR102219133B1 (ko) | 컴팩트한 비트 평면(bit-plane) 데이터 압축을 위한 인코더, 디코더 및 부호화 방법 | |
US6895120B2 (en) | 5,3 wavelet filter having three high pair and low pair filter elements with two pairs of cascaded delays | |
CN103716634A (zh) | 使用误差平面编码的数据压缩方法及装置 | |
JP2019515552A (ja) | デジタル画像のデコーディング方法、コーディング方法、装置および付随するコンピュータプログラム | |
US9948928B2 (en) | Method and apparatus for encoding an image | |
Hussin et al. | A comparative study on improvement of image compression method using hybrid DCT-DWT techniques with huffman encoding for wireless sensor network application | |
US20090304073A1 (en) | Systems and Methods for the Bandwidth Efficient Processing of Data | |
US20150146993A1 (en) | Generalization of methods and systems for image compression while encoding at least one extra bit | |
KR20180018253A (ko) | 웨이블릿 변환 매트릭스의 적응 정밀도 및 정량화 | |
Sharma | Modified golomb-rice algorithm for color image compression | |
JP6821184B2 (ja) | 画像復号化装置 | |
US20050249423A1 (en) | Block decoding method and system capable of decoding and outputting data in a rotated direction | |
US7613347B1 (en) | Low-complexity image coding | |
CN104104965A (zh) | 层次化图像和视频编解码器 | |
CN118354094A (zh) | 视频图像编解码方法及装置、电子设备及计算机存储介质 | |
Mosa | COLOR IMAGE COMPRESSION BASED ON ABSOLUTE MOMENT BLOCK TRUNCATION CODING USING DELTA ENCODING AND HUFFMAN CODING | |
Argyriou | DNA based image coding | |
Meena | Image Compression And Decompression In Terms Of Power And Area… |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AMND | Amendment | ||
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
AMND | Amendment | ||
E601 | Decision to refuse application | ||
X091 | Application refused [patent] | ||
AMND | Amendment | ||
X701 | Decision to grant (after re-examination) | ||
GRNT | Written decision to grant |