KR20150102746A - 반복 길이 부호화된 스트림을 업데이트하기 위한 방법 및 시스템 - Google Patents
반복 길이 부호화된 스트림을 업데이트하기 위한 방법 및 시스템 Download PDFInfo
- Publication number
- KR20150102746A KR20150102746A KR1020150028621A KR20150028621A KR20150102746A KR 20150102746 A KR20150102746 A KR 20150102746A KR 1020150028621 A KR1020150028621 A KR 1020150028621A KR 20150028621 A KR20150028621 A KR 20150028621A KR 20150102746 A KR20150102746 A KR 20150102746A
- Authority
- KR
- South Korea
- Prior art keywords
- runs
- adjacent
- run
- neighboring
- value
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/46—Conversion to or from run-length codes, i.e. by representing the number of consecutive digits, or groups of digits, of the same kind by a code word and a digit indicative of that kind
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/041—Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
- G06F3/0416—Control or interface arrangements specially adapted for digitisers
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/46—Conversion to or from run-length codes, i.e. by representing the number of consecutive digits, or groups of digits, of the same kind by a code word and a digit indicative of that kind
- H03M7/48—Conversion to or from run-length codes, i.e. by representing the number of consecutive digits, or groups of digits, of the same kind by a code word and a digit indicative of that kind alternating with other codes during the code conversion process, e.g. run-length coding being performed only as long as sufficientlylong runs of digits of the same kind are present
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
Abstract
본 발명은 반복 길이 부호화(RLE)된 스트림을 업데이트하기 위한 방법은 프로세서가 삽입 위치에서 RLE 스트림으로 삽입될 삽입값을 가지는 요소를 수신하며, 이 때 상기 삽입값은 다수의 값들 중 하나의 값을 가지며, 상기 RLE 스트림은 런들에 배치된 다수의 요소들을 가지고 각각의 요소들은 하나의 값을 가지는 단계; 상기 삽입 위치를 포함하는 런을 식별하는 단계; 상기 삽입값이 상기 삽입 위치에 있는 요소의 값과 같은지를 결정하는 단계; 상기 삽입값이 상기 요소의 값과 다를 때에는 상기 삽입 위치가 런들 중 하나 또는 그 이상의 합치되는 런들에 인접하는지를 결정하며, 이 때 합치되는 이웃한 런들의 각 요소는 상기 삽입값과 동일한 값을 가지는 단계; 상기 삽입 위치가 상기 런들 중 하나의 런에만 인접한 때에는 합치되는 런들 중 하나의 런을 확장하는 단계를 포함한다.
Description
본 발명의 실시예들은 통신 채널 내에서 데이터를 부호화하고 복호화하는 시스템 및 방법에 관한 것이다.
반복 길이 부호화(Run Length Encoding: RLE)는 널리 쓰이는 무손실 압축 기술로서 데이터 요소들을 특정한 스캐닝 순서에서 동일한 값을 가지고 반복되는 요소들의 개수인 "런(run)"으로써 나타낸다. 예를 들어, 다음과 같은 시퀀스 "0,0,0,1,1,1,0,0,0,1,1"은 "(0,3), (1,3), (0,3), (1,2)"와 같이 나타낼 수 있으며 이 때 각 쌍의 첫 번째 숫자는 런의 원소들의 값을 결정하며 두 번째 숫자는 이 값의 반복 개수를 결정한다. 상기 예에서, 상기 시퀀스는 세 개의 0으로 시작하여(0,3) 세 개의 1이 잇따르며(1,3), 세 개의 0이 추가로 잇따르고(0,3), 마지막으로 두 개의 1이 잇따른다(1,2). 이진 데이터의 경우, 요소들의 값들은 생략될 수 있으며 위의 표현은 "(3,3,3,2)"와 같이 되고 이 때 RLE 시퀀스의 첫 번째 숫자는 요소 "0"의 반복 회수를 나타낸다.
반복 길이 부호화는 때때로 디스플레이 장치 및 스캐너와 같이 래스터 스캔 순서로 동작하는 하드웨어와 함께 사용된다. RLE의 효율은 데이터의 특성에 따라 달라진다. 예를 들어, RLE는 다른 값들의 개수가 적고 동일한 값들이 가끔 인접한 요소들의 그룹으로 반복될 때 보다 높은 압축을 제공한다. RLE는 데이터에 선형 스캐닝 순서를 적용하거나 다차원 내에서 반복의 개수를 직접 부호화함으로써 다차원 데이터에 적용될 수 있다. 일반적으로, RLE 부호기는 순차적 순서로 제공되고 선형 버퍼 또는 다른 유형의 메모리에 저장되는 데이터에 작용한다. 데이터가 비순차적 순서로 생성된 경우에, 이러한 비순차적 데이터는 일반적으로 데이터를 완성하여 순차적 순서로 RLE 부호기에 제공될 수 있도록 하기 위해 버퍼링된다.
본 발명의 실시예는 신규한 비순차적 반복 길이 부호화 방법 및 시스템을 제공한다.
본 발명의 일 실시예에 따르면, 반복 길이 부호화된 스트림을 업데이트하기 위한 방법은 프로세서가 삽입 위치에서 반복 길이 부호화된 스트림으로 삽입될 삽입값을 가지는 요소를 수신하며, 이 때 상기 삽입값은 다수의 값들 중 하나의 값을 가지며, 상기 반복 길이 부호화된 스트림은 상기 반복 길이 부호화된 스트림의 시작 위치와 종료 위치 사이의 다수의 런들에 배치된 다수의 요소들을 가지고 각각의 요소들은 상기 다수의 값들 중 하나의 값과 상기 반복 길이 부호화된 스트림 내의 하나의 위치를 가지는 단계; 상기 삽입 위치를 포함하는 상기 반복 길이 부호화된 스트림의 런들 중 하나의 런을 식별하는 단계; 상기 프로세서가 상기 삽입값이 상기 삽입 위치에 있는 요소의 값과 같은지를 결정하는 단계; 상기 삽입값이 상기 삽입 위치에 있는 요소의 값과 다를 때에는 상기 프로세서가 상기 삽입 위치가 반복 길이 부호화된 스트림의 런들 중 하나 또는 그 이상의 합치되는 이웃한 런들에 인접하는지를 결정하며, 이 때 합치되는 이웃한 런들의 각 요소는 상기 삽입값과 동일한 값을 가지는 단계; 상기 삽입 위치가 상기 하나 또는 그 이상의 합치되는 이웃한 런들 중 하나의 런에만 인접한 때에는 상기 프로세서가 상기 하나 또는 그 이상의 합치되는 이웃한 런들 중 하나의 합치되는 런을 확장하는 단계; 상기 삽입 위치가 상기 하나 또는 그 이상의 합치되는 이웃한 런들 중 두 개의 런에 인접한 때에는 상기 프로세서가 상기 하나 또는 그 이상의 합치되는 이웃한 런들 중 두 개의 합치되는 런을 병합하는 단계; 및 상기 삽입 위치가 상기 하나 또는 그 이상의 합치되는 이웃한 런들에 인접하지 아니하는 때에는 상기 프로세서가 새로운 런을 생성하는 단계를 포함한다.
삽입 위치가 반복 길이 부호화된 스트림의 런들 중 하나 또는 그 이상의 합치되는 이웃한 런들에 인접하는지를 결정하는 상기 단계는 프로세서가 상기 삽입 위치에서 하나 또는 그 이상의 합치되는 각각의 이웃한 런까지의 하나 또는 그 이상의 거리들을 계산하며 이 때 하나 또는 그 이상의 합치되는 이웃한 런 각각은 왼쪽 단과 오른쪽 단을 가지는 단계; 상기 삽입 위치가 하나 또는 그 이상의 합치되는 이웃한 런들 중 두 개 사이에 있을 때에는, 상기 프로세서가 상기 하나 또는 그 이상의 합치되는 이웃한 런들 중 첫 번째 합치되는 이웃한 런의 오른쪽 단까지의 왼쪽 거리 및 상기 하나 또는 그 이상의 합치되는 이웃한 런들 중 두 번째 합치되는 이웃한 런의 왼쪽 단까지의 오른쪽 거리를 계산하는 단계; 상기 삽입 위치가 하나 또는 그 이상의 합치되는 이웃한 런들 중 하나와 시작 위치 사이에 있을 때에는, 상기 프로세서가 시작 위치까지의 왼쪽 거리 및 상기 하나 또는 그 이상의 합치되는 이웃한 런들 중 두 번째 합치되는 이웃한 런 중 하나의 왼쪽 단까지의 오른쪽 거리를 계산하는 단계; 및 상기 삽입 위치가 하나 또는 그 이상의 합치되는 이웃한 런들 중 하나와 마지막 위치 사이에 있을 때에는, 상기 프로세서가 상기 하나 또는 그 이상의 합치되는 이웃한 런들 중 두 번째 합치되는 이웃한 런 중 하나의 오른쪽 단까지의 왼쪽 거리 및 마지막 위치까지의 오른쪽 거리를 계산하는 단계를 포함할 수 있다.
삽입 위치가 반복 길이 부호화된 스트림의 런들 중 하나 또는 그 이상의 합치되는 이웃한 런들에 인접하는지를 프로세서가 결정하는 상기 단계는 왼쪽 거리가 1보다 크고 오른쪽 거리가 1인 때, 또는 왼쪽 거리가 1이고 오른쪽 거리가 1보다 클 때는 프로세서가 삽입 위치가 하나의 합치되는 이웃한 런에만 인접한지를 결정하는 단계; 왼쪽 거리가 1이고 오른쪽 거리가 1인 때에는 프로세서가 삽입 위치가 두 개의 합치되는 이웃한 런 사이에 있는지를 결정하는 단계; 및 왼쪽 거리가 1보다 크고 오른쪽 거리가 1보다 클 때는 프로세서가 삽입 위치가 하나 또는 그 이상의 합치되는 런들에 인접하지 않는지를 결정하는 단계를 포함한다.
상기 다수의 값들은 두 개의 값으로 구성될 수 있다.
상기 다수의 값들은 세 개의 값을 포함할 수 있다.
삽입 위치를 포함하는 반복 길이 부호화된 스트림의 런을 식별하는 상기 단계는 정확하게 수신된 하나 또는 그 이상의 요소에 따라 반복 길이 부호화된 스트림의 런을 예측하는 단계를 포함할 수 있다.
상기 요소는 다수의 연속된 요소들을 포함할 수 있고, 연속된 요소들 각각은 삽입값을 가지며, 상기 삽입 위치는 다수의 연속된 위치들을 포함하고, 상기 방법은 상기 연속된 요소들과 다른 값을 가지는 상기 다수의 연속된 위치들에 해당하는 반복 길이 부호화된 스트림의 위치에서 값들을 대체하는 단계를 더 포함할 수 있다.
상기 반복 길이 부호화 시퀀스는 영의 길이를 가지는 추가적인 런으로 패딩될 수 있다.
두 개의 합치된 런을 병합하는 상기 단계는 상기 추가적인 런을 영이 아닌 길이를 가지는 런으로 변환하는 단계를 포함할 수 있다.
본 발명의 일 실시예에 따른 시스템은 터치 제어기; 및 상기 터치 제어기에 결속되는 반복 길이 부호기를 포함하며, 이 때 상기 반복 길이 부호기는 터치 제어기로부터 삽입 위치에서 반복 길이 부호화된 스트림으로 삽입될 삽입값을 가지는 요소를 수신하며, 이 때 상기 삽입값은 다수의 값들 중 하나의 값을 가지며, 상기 반복 길이 부호화된 스트림은 상기 반복 길이 부호화된 스트림의 시작 위치와 종료 위치 사이의 다수의 런들에 배치된 다수의 요소들을 가지고 각각의 요소들은 다수의 값들 중 하나의 값과 반복 길이 부호화된 스트림 내의 하나의 위치를 가지며; 삽입 위치를 포함하는 반복 길이 부호화된 스트림의 런들 중 하나의 런을 식별하고; 상기 삽입값이 상기 삽입 위치에 있는 요소의 값과 같은지를 결정하며; 상기 삽입값이 삽입 위치에 있는 요소의 값과 다를 때에는 상기 프로세서가 상기 삽입 위치가 반복 길이 부호화된 스트림의 런들 중 하나 또는 그 이상의 합치되는 이웃한 런들에 인접하는지를 결정하고, 이 때 합치되는 이웃한 런들의 각 요소는 삽입값과 동일한 값을 가지도록 하고; 상기 삽입 위치가 상기 하나 또는 그 이상의 합치되는 이웃한 런들 중 하나의 런에만 인접한 때에는 상기 프로세서가 상기 하나 또는 그 이상의 합치되는 이웃한 런들 중 하나의 합치되는 런을 확장하며; 상기 삽입 위치가 상기 하나 또는 그 이상의 합치되는 이웃한 런들 중 두 개의 런에 인접한 때에는 상기 프로세서가 상기 하나 또는 그 이상의 합치되는 이웃한 런들 중 두 개의 합치되는 런을 병합하고; 상기 삽입 위치가 상기 하나 또는 그 이상의 합치되는 이웃한 런들에 인접하지 아니하는 때에는 새로운 런을 생성하도록 구성될 수 있다.
상기 반복 길이 부호기는 삽입 위치에서 하나 또는 그 이상의 합치되는 이웃한 런들까지의 하나 또는 그 이상의 거리들을 계산하고, 이 때 하나 또는 그 이상의 합치되는 이웃한 런 각각은 왼쪽 단과 오른쪽 단을 가지며; 상기 삽입 위치가 하나 또는 그 이상의 합치되는 이웃한 런들 중 두 개 사이에 있을 때에는 상기 하나 또는 그 이상의 합치되는 이웃한 런들 중 첫 번째 합치되는 이웃한 런의 오른쪽 단까지의 왼쪽 거리 및 상기 하나 또는 그 이상의 합치되는 이웃한 런들 중 두 번째 합치되는 이웃한 런의 왼쪽 단까지의 오른쪽 거리를 계산하고; 상기 삽입 위치가 하나 또는 그 이상의 합치되는 이웃한 런들 중 하나와 시작 위치 사이에 있을 때에는 시작 위치까지의 왼쪽 거리 및 상기 하나 또는 그 이상의 합치되는 이웃한 런들 중 두 번째 합치되는 이웃한 런 중 하나의 왼쪽 단까지의 오른쪽 거리를 계산하며; 상기 삽입 위치가 하나 또는 그 이상의 합치되는 이웃한 런들 중 하나와 마지막 위치 사이에 있을 때에는 상기 하나 또는 그 이상의 합치되는 이웃한 런들 중 두 번째 합치되는 이웃한 런 중 하나의 오른쪽 단까지의 왼쪽 거리 및 마지막 위치까지의 오른쪽 거리를 계산함으로써 상기 삽입 위치가 하나 또는 그 이상의 합치되는 이웃한 런들에 인접하는지를 결정하도록 구성될 수 있다.
상기 반복 길이 부호기는 왼쪽 거리가 1보다 크고 오른쪽 거리가 1인 때 또는 왼쪽 거리가 1이고 오른쪽 거리가 1보다 클 때는 삽입 위치가 하나의 합치되는 이웃한 런에만 인접한지를 결정하고, 왼쪽 거리가 1이고 오른쪽 거리가 1인 때에는 삽입 위치가 두 개의 합치되는 이웃한 런 사이에 있는지를 결정하며, 또한 왼쪽 거리가 1보다 크고 오른쪽 거리가 1보다 클 때는 프로세서가 삽입 위치가 하나 또는 그 이상의 합치되는 런들에 인접하지 않는지를 결정함으로써 삽입 위치가 하나 또는 그 이상의 합치되는 이웃한 런들에 인접하는지를 결정하도록 구성될 수 있다.
상기 다수의 값들은 두 개의 값으로 이루어질 수 있다.
상기 다수의 값들은 세 개의 값을 포함할 수 있다.
상기 반복 길이 부호기는 정확하게 수신된 하나 또는 그 이상의 요소에 따라 반복 길이 부호화된 스트림의 런을 예측함으로써 삽입 위치를 포함하는 반복 길이 부호화된 스트림의 런을 식별하도록 구성될 수 있다.
상기 요소는 다수의 연속된 요소들을 포함할 수 있고, 연속된 요소들 각각은 삽입값을 가지며, 상기 삽입 위치는 다수의 연속된 위치들을 가지고, 또한, 반복 길이 부호기는 상기 연속된 요소들과 다른 값을 가지는 상기 다수의 연속된 위치들에 해당하는 반복 길이 부호화된 스트림의 위치에서 값들을 대체하도록 더 구성될 수 있다.
상기 반복 길이 부호화된 시퀀스는 영의 길이를 가지는 추가적인 런으로써 패딩될 수 있다.
상기 반복 길이 부호기는 추가적인 런을 영이 아닌 길이를 가지는 런으로 변환함으로써 런을 병합하도록 구성될 수 있다.
이상과 같이 본 발명의 실시예는 신규한 비순차적 반복 길이 부호화 방법 및 시스템을 제공한다.
첨부된 도면은 본 명세서와 함께, 본 발명의 표본적 실시예들을 예시하며, 상세한 설명과 함께 본 발명의 원리를 설명하기 위해 사용된다.
도 1은 원 데이터와 반복 길이 부호화로 압축된 동일한 데이터를 예시하는 개략도이다.
도 2 는 본 발명의 일 실시예에 따른 반복 길이 부호기를 포함하는 연산 장치를 예시하는 블록도이다.
도 3A, 3B, 3C, 3D 및 3E는 본 발명의 일 실시예에 따라 기존의 데이터의 시퀀스에 신규 요소를 추가함으로써 수정된 서로 다른 경우들의 개략적 예시도이다.
도 4는 본 발명의 일 실시예에 따라 반복 길이 부호화된 데이터에 신규 요소를 추가하는 방법을 예시하는 흐름도이다.
도 5A, 5B, 5C, 5D 및 5E는 다양한 상황에서 .본 발명의 일 실시예에 따라 반복 길이 부호화된 데이터에 다중의 신규 요소를 추가하는 방법의 개략적 예시도이다.
도 6은 본 발명의 일 실시예에 따라 반복 길이 부호화된 이진 데이터에 신규 요소를 추가하는 방법을 예시하는 흐름도이다.
도 1은 원 데이터와 반복 길이 부호화로 압축된 동일한 데이터를 예시하는 개략도이다.
도 2 는 본 발명의 일 실시예에 따른 반복 길이 부호기를 포함하는 연산 장치를 예시하는 블록도이다.
도 3A, 3B, 3C, 3D 및 3E는 본 발명의 일 실시예에 따라 기존의 데이터의 시퀀스에 신규 요소를 추가함으로써 수정된 서로 다른 경우들의 개략적 예시도이다.
도 4는 본 발명의 일 실시예에 따라 반복 길이 부호화된 데이터에 신규 요소를 추가하는 방법을 예시하는 흐름도이다.
도 5A, 5B, 5C, 5D 및 5E는 다양한 상황에서 .본 발명의 일 실시예에 따라 반복 길이 부호화된 데이터에 다중의 신규 요소를 추가하는 방법의 개략적 예시도이다.
도 6은 본 발명의 일 실시예에 따라 반복 길이 부호화된 이진 데이터에 신규 요소를 추가하는 방법을 예시하는 흐름도이다.
본 출원은 2014년 2월 27일 미국 특허청에 출원되었으며, 본 명세서에 참조로써 전체 개시 내용이 통합된, "비순차 입력을 가지는 반복 길이 부호화(Run Length Encoding with Non-Sequential Input)"을 제목으로 하는 미국 예비 특허 출원 제 61/945,744호의 우선권을 주장하며 이에 따른 혜택을 받고자 한다.
하기 상세한 설명에서는, 본 발명의 표본적인 실시예만이 예시에 의해 도시되고 설명된다. 해당 기술 분야의 통상의 기술자라면 인식할 수 있는 바대로, 본 발명은 다른 많은 형태로 구현될 수 있으며 본 명세서에 개시된 실시예들로 제한되는 것으로 추정되어서는 안 된다. 유사한 참조 번호는 명세서 전체를 통해 유사한 요소들을 나타낸다.
본 명세서에서 사용된 용어는 특정한 실시예를 기술하기 위한 목적으로만 쓰인 것이며 본 발명의 개념을 제한하기 위한 것은 아니다. 본 명세서에 사용된 단수 형태의 표현인 "하나", "하나의" 및 "상기"와 같은 표현은 문맥 상으로 달리 해석되는 것이 분명하지 않은 이상 복수 형태 표현 또한 포함하도록 의도된 것이다. 또한 용어 "구성된다" 및/또는 "구성되는"이 본 명세서에서 사용될 때는 진술되는 특징, 정수, 단계, 동작, 요소 및/또는 구성물의 존재를 특정하는 것이고, 하나 또는 그 이상의 특징, 정수, 단계, 동작, 요소 구성물 및/또는 이들의 군의 존재를 배제하지 않는 것으로 이해되어야 할 것이다. 본 명세서에서 사용되는 용어 "및/또는"은 관련되어 열거된 하나 또는 그 이상의 항목들의 어떠한 조합도 모두 포함한다. "최소한 하나"와 같은 표현은 요소들의 목록에 선행하는 경우에는 요소들의 전체 목록을 수식하며 목록의 개별 요소들을 수식하지 않는다. 또한, 발명적 개념의 구현을 설명함에 있어서 "할 수 있다"의 사용은 "발명적 개념에서의 하나 또는 그 이상의 구현"을 의미한다. 또한, 용어 "표본적인"은 예 또는 예시를 나타내기 위한 의도로 사용되었다. 본 명세서에서 사용된 용어 "사용", "사용하여" 및 "사용된"은 각각 "활용", "활용하여" 및 "활용된"과 동의어로 간주될 수 있다. 첫 번째 요소가 두 번째 요소에 "결속"되거나 "연결"된 것으로 기술된 때에는, 상기 첫 번째 요소는 상기 두 번째 요소에 직접적으로 "결속" 또는 "연결"되거나, 상기 첫 번째 요소와 상기 두 번째 요소 사이에 하나 또는 그 이상의 중간 요소가 위치할 수 있다.
본 발명의 실시예의 측면들은 비순차적 반복 길이 부호화 장치에 관한 것이다. 터치 스크린을 위한 2차원 그리기 엔진이나 스타일러스 동작과 같은 데이터 소스와 결합하여 사용되는 경우에, 본 발명의 실시예들은 저장 요건과 하드웨어 비용을 절감하면서 데이터의 반복 길이 부호화(Run Length Encoding) 수행을 가능하게 한다.
본 발명의 실시예의 측면들은 임의의 순서로 각 요소 별 부호화를 허용하기 위해 반복 길이 부호화를 수행하기 위한 시스템 및 방법에 관한 것이다. 본 발명의 실시예의 다른 측면들은 반복 길이 부호화 과정의 연산과 관련된 복잡도를 감소시키기 위해 다중의 연속된 요소들을 한 번에 부호화하는 것에 대한 것이다. 또한, 본 발명의 실시예의 측면들은 입력 데이터를 위한 (예를 들어, 입력 데이터를 버퍼링하기 위한) 메모리 크기를 감축하거나 최소화하는 것을 포함하며 메모리 크기와 연산에 관련된 복잡성을 공학적으로 조화시키는 것을 포함한다.
반복 길이 부호화(Run Length Encoding: RLE)는 널리 쓰이는 무손실 압축 기술로서 데이터 요소들을 특정한 스캐닝 순서에서 동일한 값을 가지고 반복되는 요소들의 개수인 "런"으로써 나타낸다. 도 1은 원 데이터와 반복 길이 부호화로 압축된 동일한 데이터를 예시하는 개략도이다. 도 1에 도시된 것과 같이, 입력되는 2차원 이진 배열(10)은 "1"을 나타내는 강조 표시된 위치(예를 들어, 흰색 숫자를 가지는 검은색으로 채워짐) 및 "0"을 나타내는 기타 위치(예를 들어, 검은색 숫자를 가지는 흰색으로 채워짐)를 포함한다. 이러한 2차원 이진 배열은, 예를 들어, 터치 입력이 가능한 패널 상에 사용자가 터치한 위치에 해당하는 터치 센서 데이터일 수 있다.
래스터 스캐닝 순서(라인 단위, 상단 왼쪽 요소로부터 시작)에서 입력 배열의 모든 원소들은 도 1에 도시된 것과 같이 지정된 지수들이다(도 1에 도시된 것과 같이, 배열(10)의 64개 요소들이 0에서 63까지의 지수로 표시된다). 배열(10)의 아래 및 왼쪽의 순차적 입력 시퀀스(12)는 RLE 부호화기로 입력되면서 "1"의 값을 가지는 요소들의 지수들의 순서를 나타낸다. 결과적으로 나타나는 RLE 시퀀스(14)는 배열(10)의 아래와 오른 쪽으로 시퀀스 (0,5,5,5,5,4,6,2,32,0)로 나타나며, 이 때 첫 번째 "0"은 시퀀스의 처음에 "0"의 값을 가지는 요소가 없음을 나타내며, 다음의 "5"는 "1"의 값을 가지는 요소가 5개 있음을 나타내는 방식으로 이어진다. 본 예에서, 요소들이 가질 수 있는 값은 두 개의 가능한 값(예를 들어, "0" 또는 "1") 중 하나뿐이며 이진 RLE 시퀀스 내에서 "0" 및 "1"의 순서가 암묵적으로 정해져 있기 때문에 요소들의 값들은 생략되었다. 그러나, 본 발명의 실시예는 이로 제한되지 않으며 요소들이 두 개를 초과하는 가능한 값들(예를 들어, 네 개의 값이 가능한 경우에는: "0", "1", "2" 또는 "3")의 집합으로부터 선택될 수 있는 값을 가질 수 있는 상황으로 확장될 수 있다.
부호화를 위한 입력 데이터가 순차적 순서로 조직되지 않은 경우에는, 관련 기술 분야의 RLE 부호기는 추가적인 메모리를 사용하여 중간 단계에서 데이터를 버퍼링하고 부호화하기 이전에 상기 데이터를 순차적으로 정렬한다. 이러한 응용의 일례는 입력 터치 이벤트의 좌표를 스크린 상에 그려지는 픽셀로 전환하는 2차원 그리기 엔진 또는 응용 프로그램이다. 사용자가 터치 패널의 여러 부분을 임의의 순서로 터치할 수 있기 때문에, 터치 이벤트의 좌표가 반드시 래스터링의 순서로 나타나는 것은 아니다. 이러한 경우에, 관련 기술 분야의 RLE는 2차원 그리기 엔진으로부터의 데이터를 저장하기 위한 중간 단계로서 메모리를 필요로 하게 될 것이며, 이에 의해 이러한 시스템에 대한 비용이 증가하게 된다.
도 2 는 본 발명의 일 실시예에 따른 시스템(20) 내에서 반복 길이 부호기(28)의 역할을 예시하는 블록도이다. 도 2를 참조하면, 비순차적 RLE 시스템 및 방법이 도 2에 도시된 것과 같이 터치 입력이 가능한 디스플레이(22), 터치 제어기(24), 2차원 그리기 알고리듬을 실행하는 프로세서(26), 반복 길이 부호기(28), 디스플레이 오버레이(또는 저 latency 시각 가속기)(30), 및 디스플레이 제어기(32)를 포함하는 스크린 상의 그리기 시스템(20)(예를 들어, 태블릿, 스마트폰, 노트북 컴퓨터와 같은 컴퓨터 장치, 또는 터치 스크린 인터페이스를 가지는 기타 장치)에서 사용될 수 있다. 본 예에서, 상기 터치 제어기(24)는 터치 패널(22)로부터 터치 이벤트를 수신하여 이러한 터치 이벤트의 2차원 위치를 복호화한다. 터치 이벤트는 프로세서(26)로 공급되어(일부 실시예에서, 상기 프로세서(26) 및 디스플레이 오버레이(30)는 동일한 부품일 수 있다) 디스플레이(22) 상에 보여지는 라인을 나타내는 좌표를 디스플레이의 시퀀스를 생성하는 2차원 그리기 알고리듬에 의해 분석된다.
2차원 그리기 알고리듬에 의해 생성되는 좌표들의 순서가 반드시 디스플레이의 스캐닝 순서에 해당하는 것은 아니다. 예를 들어, 디스플레이 스캐닝은 일반적으로 디스플레이의 상단에서 디스플레이의 하단까지 행 단위로 각각의 행이 왼쪽에서 오른쪽으로 스캐닝되면서 진행된다. 그러나, 사용자가 터치 입력이 가능한 디스플레이(22)를 터치하여 스캐닝 방향과 다른 방향(예를 들어, 직접적으로 왼쪽에서 오른쪽이 아닌 방향)으로 드래그할 수 있으며 이에 의해 터치 제어기(24)와 프로세서(26)에 스캐닝 순서와 다른 순서로 도달하는 터치 이벤트를 생성할 수 있으며 이에 의해 상기 프로세서(26)는 스캐닝 순서와 다른 순서로 이미지 데이터를 생성하게 된다.
본 발명의 실시예들에 따르면, 상기 반복 길이 부호기(28)는 선 픽셀의 위치를 디스플레이 제어기(32)에 의해 RLE 스트림이 복호화되어 디스플레이(22) 상의 최종 이미지로 합성되는 디스플레이 오버레이(30)로 전달되는 압축된 표시로 부호화하기 위해 사용된다. 본 발명의 실시예에 따른 반복 길이 부호기(28)는 메모리에 저장되고 범용 프로세서에 의해 실행되는 프로그램 명령, 반복 길이 부호화 동작을 수행하도록 구성된 필드 프로그래머블 게이트 어레이(field programmable gate array: FPGA), 또는 반복 길이 부호화 동작을 수행하도록 설계된 주문형 반도체 집적회로(application specific integrated circuit: ASIC) 등과 같은 다양한 방식으로 구현될 수 있다. 또한, 특정 실시예에 따르면, 상기 디스플레이(22)는 유기 광 방출 다이오드(organic light-emitting diode: OLED) 디스플레이 또는 액정 디스플레이(liquid crystal display: LCD)일 수 있다.
도 3A, 3B, 3C, 3D 및 3E는 본 발명의 일 실시예에 따라 다양한 상황의 이진 데이터의 반복 길이 부호화된 시퀀스에 신규 요소를 추가하는 방법에 대한 개략적 예시도이다. 이진 데이터의 시퀀스는 다수의 요소들을 포함하며, 이 때 각 요소는 두 개의 값(예를 들어, 0 및 1) 중 하나를 가질 수 있으며 또 각 요소는 시퀀스 내의 특정한 위치(또는 지수)에 위치한다. 이진 데이터가 아닌 상황에서는, 상기 요소들은 다수의 값들 중 하나의 값을 가질 수 있다. 예를 들어, 2비트 데이터의 시퀀스에서, 시퀀스 내의 각각의 요소는 네 개의 값들 중 하나의 값을 가질 수 있으며, 8비트(1 바이트) 데이터의 시퀀스에서는, 시퀀스 내의 각각의 요소가 256개의 값들 중 하나의 값을 가질 수 있다. 값(또는 삽입값)을 가지는 신규 요소가 시퀀스 내의 삽입 위치에서 시퀀스 내의 상기 삽입 위치에 이미 존재하는 기존의 요소를 대체하기 위해 시퀀스로 추가될 수 있다. 이하의 설명을 쉽게 하기 위해, 도 3A, 3B, 3C, 3D, 3E, 및 3F에서 백색 또는 음영지지 않은 사각형으로 도시된 시퀀스 내의 위치들은 "0"의 값을 가지는 것으로 표시되며 시퀀스 내의 음영지거나 검은색의 위치들은 "1"의 값을 가지는 것으로 간주된다. 도 3A, 3B, 3C, 3D 및 3E는 0에서 13까지의 지수들을 가지는 14개의 이진 값의 시퀀스의 예를 예시하고 있다. 도 3A에 도시된 시퀀스의 예는 11100000000111의 값을 가지며 따라서 세 개의 런을 포함하며, 반복 길이 부호화된 경우에, (0,3,8,3)로 표시될 수 있다. 도 3A에 도시된 것과 같이, "0"의 값(또는 "삽입값")을 가지는 신규 요소(40)가 위치(또는 지수) 7에서 시퀀스에 추가되어 위치 7에 존재하는 기존의 요소를 대체하게 된다. 상기 신규 요소(40)는 위치 7에서 시퀀스에 추가되며, 이 때 이는 여덟 개의 0의 값의 런 idx 내에 있게 된다. 런 idx는 런 idx-1 및 idx+1에 인접한다.
상기 신규 요소(40)는 런s idx-1 및 idx+1의 요소들의 값들과 합치되는 값을 가진다. 이에 따라, 런 idx-1는 첫 번째 인접하는 합치된 런으로 간주될 수 있으며 런 idx+1는 두 번째 인접하는 합치된 런으로 간주될 수 있다(예를 들어, 도 3A에 도시된 것과 같이, 상기 신규 요소(40)와 런 idx-1 및 idx+1는 모두 같은 값 "0"을 가진다). 이진 데이터 시퀀스의 경우, 인접한 런들은 삽입값과 같은 값을 가지게 될 것이다. 그러나, 이진 데이터가 아닌 경우, 인접한 런 idx-1 및 idx+1가 반드시 삽입값과 같은 값을 가지지는 않는다. 삽입 위치 7에서 런 idx-1 (런 idx 왼쪽의 런)의 오른쪽 단까지의 거리 l은 5이며 삽입 위치 7에서런 idx+1 (두 번째 런 오른쪽의 런)의 왼쪽 단 까지의 거리 r은 4이다.
도 4는 본 발명의 일 실시예에 따라 반복 길이 부호화된 데이터에 신규 요소를 추가하는 방법(400)을 예시하는 흐름도이다. 요소들이 서로 다른 2개를 초과하는 값을 가지는 본 발명의 실시예들이 이하에서 보다 상세히 기술될 것이다.
도 4를 참조하면, 동작 402에서, 기존의 데이터 또는 기본 값(예를 들어, 모든 값이 0인 시퀀스)으로부터 반복 길이 부호화된 시퀀스를 생성함으로써 반복 길이 부호화된 시퀀스의 값들을 업데이트하는 방법이 초기화되며, 이 때 상기 시퀀스는 다수의 지수로 표시되는 위치를 가지게 된다. 도 3A, 3B, 3C 및 3D에 도시된 예에서, 상기 반복 길이 부호화된 시퀀스의 초기 시퀀스는 (0,3,8,3)이다.
삽입될 요소들의 집합이 존재한다고 가정하면, 동작 404에서 삽입될 다음 요소가 신규 요소(예를 들어, 도 3B, 3C, 3D, 3E 및 3F에 도시된 신규 요소(40))로서 선택된다. 동작 406에서 신규 요소를 삽입하기 위해, 상기 반복 길이 부호기(28)는 상기 신규 요소의 지수 (또는 지수로 표시된 위치, 또는 위치)를 기반으로 기존의 런들 중 어떠한 런 "idx"에 상기 요소가 속하게 되는지를 식별한다.
해당하는 런을 결정한 이후에, 상기 반복 길이 부호기(28)는 런 idx의 오른쪽("r") 및 왼쪽("l") 경계까지의 요소의 거리를 결정하며, 이 때 l은 런 idx 내의 신규 요소(40)의 위치와 런 idx-1 사이의 위치들의 개수이며(예를 들어, 런 idx 왼쪽의 런, 또는 이보다 낮은 지수를 가지는 런) r은 런 idx 내의 신규 요소의 지수와 런 idx+1 사이의 지수들의 개수이다(예를 들어, 런 idx 오른쪽의 런, 또는 이보다 높은 지수를 가지는 런). 런 idx의 왼쪽에 이러한 런이 존재하지 않는 경우에는 l은 신규 요소(40)의 지수와 시퀀스의 시작 사이의 위치의 개수를 나타내며, 런 idx의 오른쪽에 이러한 런이 존재하지 않는 경우에는 r은 신규 요소(40)의 지수와 시퀀스의 마지막 사이의 위치의 개수를 나타낸다. 이러한 동작은 해당 지수를 식별한 직후에 또는 동작 408 이후에 수행될 수 있다.
동작 408에서, 상기 반복 길이 부호기(28)는 신규 요소(40)의 값이 런 idx 내의 요소들의 값들과 같은지를 결정한다. 값이 같은 경우에는, 상기 신규 요소(40)는 반복 길이 부호화된 시퀀스에 어떠한 변화도 가하지 않으며 상기 반복 길이 부호기는 동작 404로 돌아가 삽입을 위한 다음 요소를 선택한다. 예를 들어, 도 3A에 도시된 것과 같이, 신규 요소(40)의 값은 "0"이고(백색 사각형으로 표시됨) 이 요소가 이미 "0"의 값을 가지는 지수 7에서 삽입되어야 하므로, 기존의 시퀀스에는 변화를 가할 필요가 없는 것이다.
상기 신규 요소(40)가 런 idx의 값과 다른 값을 가지는 경우에는, 도 3B, 3C, 3D 및 3E에 도시된 것처럼, 요소의 런의 오른쪽("r") 및 왼쪽("l") 경계로의 거리에 따라 신규 요소의 삽입을 다루기 위한 네 개의 다른 경우가 존재한다. 이하의 논의에서는 이웃한 런까지의 거리가 1인 경우에(예를 들어, l = 1 또는 r = 1) 이 요소가 "이웃한 런"에 "인접"한 것으로 기술한다(예를 들어, 요소와 같은 값을 가지는 현재 런 idx에 가장 가까운 런). 이웃한 런까지의 거리가 1보다 클 때에는, 이 요소는 이웃한 런에 인접하지 않은 것이다.
반복 길이 부호기가 동작 410에서 "idx"로 삽입될 요소가 도 3B에 도시된 것처럼 기존의 어떠한 런에도 인접하지 않는 것으로 결정하는 경우에는(l > 1, r > 1), 동작 412에서 현재의 런 idx가 "분할"되어 두 개의 추가적인 런이 생성된다(기존의 런은 크기가 감소한다). 이러한 상황에서, 기존의 반복 길이 부호화된 스트림은 신규 요소의 위치로부터 시프트될 필요가 있다. 이에 따라, 여덟 개의 8개의 0으로 이루어진 원래 런이 네 개의 0으로 이루어진 런, 하나의 1로 이루어진 런, 및 세 개의 0으로 이루어진 런으로 나누어지므로 상기 반복 길이 부호화된 시퀀스는 (0,3,8,3)에서 (0,3,4,1,3,3)로 업데이트된다.
신규 요소(40)가 양 측의 인접한 런들로부터1 단위를 초과하여 벗어나지 않는 경우에는, 동작 414에서, 상기 반복 길이 부호기(28)는, 예를 들어, 도 3C에 도시된 대로 예시된 것과 같이, 상기 신규 요소(40)가 왼 쪽에 동일한 값을 가지는 기존의 런(l = 1, r > 1)에만 인접할 것인지를 결정한다. 이러한 경우에는, 동작 416에서 상기 반복 길이 부호기(28)가 인접한 왼쪽의 런 idx-1를 성장(또는 증가 또는 "오른쪽으로 성장")시키고 현재의 런 idx를 축소(또는 감소)시킨다.
도 3C에 도시된 예에서, 상기 반복 길이 부호기(28)는 위치 3에서 "1"의 값을 가지는 신규 요소(40)를 기존의 부호화된 시퀀스에 추가하려 시도한다. 위치 3이 "1"의 값을 가지며 위치 0에서 2까지의 길이 3을 가지는 런에 인접하기 때문에, 상기 신규 요소(40)는 동일한 값의 런에 인접하게 된다. 이에 따라, 왼쪽의 런 idx-1는 "1"의 값과 4의 길이를 가지는 런으로 변환되며 요소가 삽입된 "0"의 값과 8의 길이를 가지는 런은 길이가 7인 런으로 축소된다. 이에 따라, the 반복 길이 부호화된 시퀀스는 (0,3,8,3)에서 (0,4,7,3)로 업데이트된다.
신규 요소가 왼쪽의 런에 인접하지 않은 경우에는, 동작 418에서, 상기 반복 길이 부호기는 신규 요소(40)가 오른쪽에 동일할 값을 가지는 기존의 런에만 인접하는지를 결정한다. 이렇게 결정되는 경우에는, "오른쪽으로 성장" 동작 416과 유사한 방식으로, 상기 반복 길이 부호기(28)는 동작 420에서 기존의 오른쪽 (idx+1)의 런을 성장(또는 증가 또는 "왼쪽으로 성장")시킨다.
도 3D를 참조하면, when the 신규 요소(40)가 기존의 런의 오른쪽에 인접할 때는(l > 1, r = 1), 상기 오른쪽에 인접한 런 (idx+1)가 증가되며 반면에 런 "idx"는 감소된다. 이에 따라, 상기 반복 길이 부호화된 시퀀스는 (0,3,8,3)에서 (0,3,7,4)로 업데이트된다.
상기 반복 길이 부호기(28)가 동작 422에서 신규 요소(40)가 상기 신규 요소(40)와 동일한 값을 가지는 두 개의 런에 인접한 것으로 결정한 경우에는, 동작 424에서 상기 두 개의 런이 "병합"되어 런들의 전체 개수는 두 개로 줄어든다. 이 경우에 상기 런은 병합된 이후에 왼쪽으로 시프트되거나 "0"으로 패딩될 수 있다. 도 3E에 도시된 예에서, 원래의 시퀀스는 1111111011111이며 RLE 시퀀스로서 (0,7,1,5)로 나타낼 수 있다. 시퀀스의 지수 7에서의 값 0을 1의 값으로 대체함으로써 시퀀스를 13개의 1을 가지는 시퀀스로 변환하며 이는 패딩을 가하지 않고 RLE 시퀀스 (0,13)로 나타낼 수 있다. 다른 방식으로, 상기 반복 길이 부호화된 시퀀스가 0으로 패딩되는 때에는, 결과적으로 나타나는 RLE 시퀀스는 (0,13,0,0)이 될 것이다. 마지막 점검 422를 보여 주는 도 4에 도시된 방법의 블록도는 설명을 명확하게 하기 위해 도시된 것이며 이 경우가 이진 데이터 처리의 시나리오에서 남아 있는 유일한 가능한 경우이므로 기술적으로 필요하지 않으며, 따라서 "else" 조건으로 처리될 수 있다.
본 발명의 일 실시예에 따르면, 상기 비순차 반복 길이 부호기(28)는 다중의 연속된 동일한 값을 가지는 요소들에 한번에 동작하도록 일반화된다. 삽입될 요소들은 이미 연속적으로 순서가 정해져 있을 수도 있고, 또는 도착하는 대로 정렬될 수도 있다. 이에 따라, 비순차적 반복 길이 부호기(28)는 연속적인 요소들을 그룹으로 묶을 수 있으며 줄어든 개수의 동작을 통해 반복 길이 부호화된 시퀀스로써 병합할 수 있다.
도 5A, 5B, 5C, 5D 및 5E는 다양한 상황에서 .본 발명의 일 실시예에 따라 반복 길이 부호화된 데이터에 다중의 신규 요소(42)를 추가하는 방법의 개략적 예시도이다. 도 6은 본 발명의 일 실시예에 따라 반복 길이 부호화된 이진 데이터에 신규 요소를 추가하는 방법(600)을 예시하는 흐름도이다. 이들 동작들의 설명은 도 4와 관련하여 설명된 것과 실질적으로 유사하며 여기서 다시 상세히 설명되지는 않을 것이다. 동작 602에서, 도 4에 예시된 동작 402의 방식과 유사한 방식으로, 반복 길이 부호화된 시퀀스의 값들을 업데이트하는 방법은 기존의 데이터 또는 기본값(예를 들어, 모든 값이 0인 시퀀스)으로부터 반복 길이 부호화된 시퀀스를 생성함으로써 초기화되며, 이 때 상기 시퀀스는 다수의 지수로 표시되는 위치를 가지게 된다. 삽입될 요소들이 집합이 존재한다고 가정하고, 동작 604에서, 연속된 요소들의 다음 집합이 삽입되도록 선택된다(예를 들어, 도 5A, 5B, 5C, 5D, 5E 및 5F에 예시된 신규 요소(42)).
도 5A를 참조하면, 3 내지 10의 위치를 포함하는 1의 값을 가지는 추가적인 신규 요소(42)가 추가되는 경우에는, 본 발명의 일 실시예에 따라, 위치 3, 4, 5, 6, 7, 8, 9 및 10에서 추가될 신규 요소들은 함께 그룹으로 묶을 수 있으며 한 번의 동작에 의해 삽입된다.
도 6을 참조하면, 동작 606에서, 상기 비순차 반복 길이 부호기(28)는 상기 신규 요소의 지수(또는 지수로 표시된 위치, 또는 위치)를 기반으로 기존의 런들 중 어떠한 런 또는 런들 "idx(s)"에 상기 신규 요소가 속하게 되는지를 결정한다.
동작 607에서, 상기 비순차 반복 길이 부호기(28)는 상기 신규 요소가 반복 길이 부호화된 시퀀스의 위치의 모든 값과 동일한 값을 가지는지를 결정한다. 이 경우에는, 도 5A에 예시된 것처럼 어떠한 동작도 필요로 하지 않는다.
기존의 모든 위치들이 신규 요소(42)와 동일한 값을 가지지 않는 경우에는, 본 발명의 일 실시예에서는, 동작 608에서, 겹쳐지는 모든 값들은 신규 요소의 값과 다른 값으로 대체된다. 예를 들어, 도 5B에 예시된 것과 같이, 7개의 "1"의 값을 가지는 런이 반복 길이 부호화된 시퀀스 11100011101111의 3 내지 10의 위치에 추가되며, 이는 RLE 시퀀스 (0,3,3,3,1,4)로 나타낼 수 있다. 이에 따라, 위치 3 내지 10이 이미 "0" 및 "1" 값의 혼합 데이터를 런 idxA, idxB, 및 idxC, 및 런 idx+1의 일부에 포함하게 된다. 본 발명의 일 실시예에서, 최소한 신규 요소들의 개수와 같은 길이를 가지는 단일 런을 생성하기 위해 신규 요소들이 추가되는 모든 위치들은 초기에 상기 신규 요소들의 값과 다른 값으로 대체된다. 일부의 경우에, 이로 인해 인접한 런과 병합될 새로운 런이 생겨날 수 있다. 도 5B에 도시된 예에서, 런 idxA, idxB, 및 idxC는 병합되고 런 idx+1는 크기가 1만큼 줄어 들어 임시 시퀀스 1110000000111를 생성하게 되며, 이는 RLE 시퀀스 (0,3,7,3)로 표현될 수 있다.
본 발명의 다른 실시예에서, 전부는 아니지만 일부의 기존 위치들이 신규 요소(42)로서 동일한 값을 가지는 경우에는, 도 4와 관련하여 설명한 것과 같이, 상기 신규 요소(42)는 한 번에 삽입될 수 있다. 그러나, 본 발명의 실시예들은 본 명세서에 설명된 특정한 기술로 제한되지 않는다.
해당하는 런들을 결정하고 임시 시퀀스를 생성하기 위해 값들을 대체한 이후에, 필요한 경우에는 상기 반복 길이 부호기(28)가 동작 609에서 런의 오른쪽("r") 및 왼쪽("l") 경계로의 신규 요소(42)의 거리를 결정한다(예를 들어, 런 idxA, idxB, 및 idxC를 병합하여 생성되는 도 5B의 새로운 런 idxk).
거리 l 및 r을 결정한 이후에, 잔여 동작들은 상기 단일 요소 실시예에 제공된 것과 실질적으로 유사한 방식으로 진행될 수 있다.
동작 610에서, l > 1 및 r > 1인 경우에는, 도 5C에 도시된 것과 같이, 상기 런 idx는 분할되어 두 개의 추가적인 런이 생성된다. 도 5C의 예에서, 원래의 RLE 시퀀스가 (0,3,8,3)로 주어진 경우, 동작 612에서 길이 8의 런은 위치 4 내지 9에서 6개의 신규 요소들(42)로 분할되며 새로운 반복 길이 부호화된 시퀀스는 (0,3,1,6,1,3)가 된다. 이를 통해, 단일 요소의 경우 각각의 신규 요소(42)가 한 번에 삽입되기 때문에 연산 노력을 감소시킬 수 있으며, 이에 의해 결과적으로, 예를 들어, 한 번의 분할 동작과 다섯 번의 성장 동작이 나타나게 된다.
동작 614에서, l = 1 및 r > 1인 경우에는, 도 5D에 도시된 것과 같이, 동작 616에서 상기 왼쪽 런 idx-1은 오른쪽으로 성장한다. 도 5D의 예에서, 원래의 RLE 시퀀스가 (0,3,8,3)로 주어지고 위치 3 내지 8에서 6개의 신규 요소(42)가 추가되는 경우, 길이가 3인 왼쪽의 런 idx-1은 6만큼 성장하고 길이 8인 런 idx는 6만큼 축소되며, 이에 의해 새로운 RLE 시퀀스 (0,9,2,3)이 생성된다.
마찬가지로, 동작 618에서, l > 1 및 r = 1인 경우에는, 도 5E에 도시된 것과 같이, 동작 620에서 상기 오른쪽 런 idx+1은 왼쪽으로 성장한다. 도 5E의 예에서, 원래의 RLE 시퀀스가 (0,3,8,3)로 주어지고 위치 5 내지 10에서 6개의 신규 요소(42)가 추가되는 경우, 길이가 3인 오른쪽의 런 idx-1 은6만큼 성장하고 길이 8인 런 idx는 6만큼 축소되며, 이에 의해 새로운 RLE 시퀀스 (0,3,2,9)가 생성된다.
마지막으로, 동작 622에서, l = 1 및 r = 1인 경우에는, 도 5F에 도시된 것과 같이, 동작 624에서 세 개의 모든런 idx-1, idx, 및 idx+1는 한 개의 런으로 병합된다. 도 5F의 예에서, 원래의 RLE 시퀀스가 (0,3,8,3)로 주어지고 위치 3 내지 10에서 8개의 신규 요소(42)가 추가되는 경우, 상기 세 개의 런들이 병합되어 새로운 RLE 시퀀스 (0,13)을, 또는 패딩된 경우에는 (0,13,0,0)을 생성한다.
시퀀스가 이진 데이터가 아닌 상황에서는(예를 들어, 시퀀스의 요소들이 두 개의 가능한 값을 초과하는 값을 가지는 상황), 상기 신규 요소(40)는 인접한 런이 신규 요소(40)와 같은 값을 가지는 경우에만 인접한 런에 병합된다. 거리 l 및 r 이 신규 요소(40)와 동일한 값을 가지는 가장 가까운 런까지의 거리로 계산되도록 수정함으로써, 위에서 설명된 것과 실질적으로 동일한 기술이 이진 데이터가 아닌 경우에 적용될 수 있다. 예를 들어, 이진 데이터가 아닌 경우에는, 동일한 "분할" 및 "병합" 동작들이 실질적으로 동일한 방식으로 사용될 수 있으며, 이 때 이진 데이터가 아닌 경우의 "병합"은 왼쪽과 오른쪽의 런 모두가 삽입된 요소와 동일한 값을 가질 때 수행될 것이다. "왼쪽으로 성장" 및 "오른쪽으로 성장"과 같은 동작은 오른쪽에 이웃한 런 또는 왼쪽에 이웃한 런이 각각 삽입되는 요소와 동일한 값을 가지는 경우에만 적용될 것이다. 이진 데이터가 아닌 경우에 추가적인 경우가 도입될 수 있으며, 이 때 새로운 런이 기존의 런의 경계에 생성된다(예를 들어, l = 1 및 r > 1 이고 왼쪽에 이웃한 런의 값이 삽입되는 값과 다른 경우, r = 1 및 l > 1이고 오른쪽에 이웃한 런의 값이 삽입되는 값과 다른 경우, 또는 l = 1 및 r = 1이고 왼쪽과 오른쪽의 요소 모두가 삽입되는 값과 다른 경우).
다른 경우들(인접하지 않는 경우, 왼쪽으로 인접한 경우, 오른쪽으로 인접한 경우, 및 왼쪽과 오른쪽 모두로 인접한 경우)은 특정한 순서로 또는 병렬로 평가될 수 있으며 본 발명의 실시예들은 본 명세서에 기술된 순서로 제한되지 않는다.
본 발명이 특정한 표본적 실시예와 관련하여 설명되기는 하였지만, 본 발명이 상기 개시된 실시예로 제한되는 것으로 이해되어서는 안 되며, 이와는 반대로, 첨부된 청구항과 이와 균등한 사항들의 사상과 범위 내에서 포함되는 다양한 수정과 균등한 배치를 모두 포함하기 위한 의도로 기술된 것이다.
예를 들어, 일 실시예에서, 부호화될 요소를 포함하는 런의 위치를 찾기 위한 상기 검색 동작은 예측을 사용할 수 있다. 예측을 구현하기 위한 하나의 가능성은 마지막으로 부호화된 심볼(또는 요소)을 포함하는 런으로부터 검색을 시작하는 것이며, 이를 통해 새로운 값들이 서로 밀접하게 모여 있는 실시예에서 검색 시간을 단축시킬 수 있을 것이다. 또한, 검색의 방향(예를 들어, 왼쪽, 오른쪽, 위쪽, 또는 아래쪽)도 마지막으로 부호화된 하나 또는 그 이상의 심볼을 기반으로 예측될 수 있다.
본 발명의 일부 실시예에서, 반복 길이 부호기(28)는, 예를 들어, 초기화 동작(402) 동안 생성되며RLE 시퀀스 내에 영의 길이를 가지는 추가적인 간격을 사용하여 데이터 시프트 연산의 양을 감소시킴으로써 메모리 및 컴퓨터 연산 요건을 조화시킬 수 있다. 초기 RLE 시퀀스에서 기존의 런들 사이를 영으로 패딩시키는 것은 영의 길이를 가지는 런이 이러한 기존의 런들 사이에 이러한 값을 가지는 어떠한 요소도 존재하지 않음을 나타내고 추가적인 메모리를 소모하지 않기 때문에 이로 인해 시퀀스의 의미를 변화시키지 않는다. 그러나, 기존의 런이 분할되면, 0의 값을 가지는 RLE 시퀀스 내의 기존의 인접 위치가 분할에 의해 생성된 새로운 런들 중 하나를 나타내기 위해 사용될 수 있으며, 이에 의해 기존의 런들을 오른 쪽으로 시프트시키는 컴퓨터의 연산 노력을 감소시키게 된다. 이러한 추가적인 연산 효율에 대한 대가로 사용되지 않은 영의 형태로 추가적인 메모리의 사용이 일어난다.
10: 배열
12: 순차적 입력 시퀀스
14: RLE 시퀀스 20: 그리기 시스템
22: 터치 패널/디스플레이 24: 터치 제어기
26: 프로세서 28: 반복 길이 부호기
30: 디스플레이 오버레이 32: 디스플레이 제어기
40, 42: 신규 요소 400, 600: 신규 요소를 추가하는 방법
402: 초기화 동작
14: RLE 시퀀스 20: 그리기 시스템
22: 터치 패널/디스플레이 24: 터치 제어기
26: 프로세서 28: 반복 길이 부호기
30: 디스플레이 오버레이 32: 디스플레이 제어기
40, 42: 신규 요소 400, 600: 신규 요소를 추가하는 방법
402: 초기화 동작
Claims (18)
- 프로세서가 삽입 위치에서 반복 길이 부호화된 스트림으로 삽입될 삽입값을 가지는 요소를 수신하며, 이 때 상기 삽입값은 다수의 값들 중 하나의 값을 가지며, 상기 반복 길이 부호화된 스트림은 상기 반복 길이 부호화된 스트림의 시작 위치와 종료 위치 사이의 다수의 런들에 배치된 다수의 요소들을 가지고, 각각의 요소들은 상기 다수의 값들 중 하나의 값과 상기 반복 길이 부호화된 스트림 내의 하나의 위치를 가지는 단계;
상기 삽입 위치를 포함하는 상기 반복 길이 부호화된 스트림의 런들 중 하나의 런을 식별하는 단계;
상기 프로세서가 상기 삽입값이 상기 삽입 위치에 있는 요소의 값과 같은지를 결정하는 단계;
상기 삽입값이 상기 삽입 위치에 있는 요소의 값과 다를 때에는 상기 프로세서가 상기 삽입 위치가 반복 길이 부호화된 스트림의 런들 중 하나 또는 그 이상의 합치되는 이웃한 런들에 인접하는지를 결정하며, 이 때 합치되는 이웃한 런들의 각 요소는 상기 삽입값과 동일한 값을 가지는 단계;
상기 삽입 위치가 상기 하나 또는 그 이상의 합치되는 이웃한 런들 중 하나의 런에만 인접한 때에는 상기 프로세서가 상기 하나 또는 그 이상의 합치되는 이웃한 런들 중 하나의 합치되는 런을 확장하는 단계;
상기 삽입 위치가 상기 하나 또는 그 이상의 합치되는 이웃한 런들 중 두 개의 런에 인접한 때에는 상기 프로세서가 상기 하나 또는 그 이상의 합치되는 이웃한 런들 중 두 개의 합치되는 런을 병합하는 단계; 및
상기 삽입 위치가 상기 하나 또는 그 이상의 합치되는 이웃한 런들에 인접하지 아니하는 때에는 상기 프로세서가 새로운 런을 생성하는 단계를 포함하는 반복 길이 부호화된 스트림을 업데이트하기 위한 방법. - 제 1항에 있어서,
삽입 위치가 반복 길이 부호화된 스트림의 런들 중 하나 또는 그 이상의 합치되는 이웃한 런들에 인접하는지를 결정하는 상기 단계는:
프로세서가 상기 삽입 위치에서 하나 또는 그 이상의 합치되는 각각의 이웃한 런까지의 하나 또는 그 이상의 거리들을 계산하며 이 때 하나 또는 그 이상의 합치되는 이웃한 런 각각은 왼쪽 단과 오른쪽 단을 가지는 단계;
상기 삽입 위치가 하나 또는 그 이상의 합치되는 이웃한 런들 중 두 개 사이에 있을 때에는, 상기 프로세서가 상기 하나 또는 그 이상의 합치되는 이웃한 런들 중 첫 번째 합치되는 이웃한 런의 오른쪽 단까지의 왼쪽 거리 및 상기 하나 또는 그 이상의 합치되는 이웃한 런들 중 두 번째 합치되는 이웃한 런의 왼쪽 단까지의 오른쪽 거리를 계산하는 단계;
상기 삽입 위치가 하나 또는 그 이상의 합치되는 이웃한 런들 중 하나와 시작 위치 사이에 있을 때에는, 상기 프로세서가 시작 위치까지의 왼쪽 거리 및 상기 하나 또는 그 이상의 합치되는 이웃한 런들 중 두 번째 합치되는 이웃한 런들 중 하나의 왼쪽 단까지의 오른쪽 거리를 계산하는 단계; 및
상기 삽입 위치가 하나 또는 그 이상의 합치되는 이웃한 런들 중 하나와 마지막 위치 사이에 있을 때에는, 상기 프로세서가 상기 하나 또는 그 이상의 합치되는 이웃한 런들 중 두 번째 합치되는 이웃한 런 중 하나의 오른쪽 단까지의 왼쪽 거리 및 마지막 위치까지의 오른쪽 거리를 계산하는 단계를 포함하는 것을 특징으로 하는 방법. - 제 2항에 있어서,
삽입 위치가 반복 길이 부호화된 스트림의 런들 중 하나 또는 그 이상의 합치되는 이웃한 런들에 인접하는지를 프로세서가 결정하는 상기 단계는:
왼쪽 거리가 1보다 크고 오른쪽 거리가 1인 때, 또는 왼쪽 거리가 1이고 오른쪽 거리가 1보다 클 때는 프로세서가 삽입 위치가 하나의 합치되는 이웃한 런에만 인접한지를 결정하는 단계;
왼쪽 거리가 1이고 오른쪽 거리가 1인 때에는 프로세서가 삽입 위치가 두 개의 합치되는 이웃한 런 사이에 있는지를 결정하는 단계; 및
왼쪽 거리가 1보다 크고 오른쪽 거리가 1보다 클 때는 프로세서가 삽입 위치가 하나 또는 그 이상의 합치되는 런들에 인접하지 않는지를 결정하는 단계를 포함하는 것을 특징으로 하는 방법. - 제 1항에 있어서,
상기 다수의 값들은 두 개의 값으로 구성되는 것을 특징으로 하는 방법. - 제 1항에 있어서,
상기 다수의 값들은 세 개의 값을 포함하는 것을 특징으로 하는 방법. - 제 1항에 있어서,
삽입 위치를 포함하는 반복 길이 부호화된 스트림의 런을 식별하는 상기 단계는:
정확하게 수신된 하나 또는 그 이상의 요소에 따라 반복 길이 부호화된 스트림의 런을 예측하는 단계를 포함하는 것을 특징으로 하는 방법. - 제 1항에 있어서,
상기 요소는 다수의 연속된 요소들을 포함할 수 있고, 이 때 연속된 요소들 각각은 삽입값을 가지며;
상기 삽입 위치는 다수의 연속된 위치들을 포함하고,
상기 방법은 상기 연속된 요소들과 다른 값을 가지는 상기 다수의 연속된 위치들에 해당하는 반복 길이 부호화된 스트림의 위치에서 값들을 대체하는 단계를 더 포함하는 것을 특징으로 하는 방법. - 제 1항에 있어서,
상기 반복 길이 부호화 시퀀스는 영의 길이를 가지는 추가적인 런으로 패딩되는 것을 특징으로 하는 방법. - 제 8항에 있어서,
두 개의 합치된 런을 병합하는 상기 단계는 상기 추가적인 런을 영이 아닌 길이를 가지는 런으로 변환하는 단계를 포함하는 것을 특징으로 하는 방법. - 터치 제어기; 및
상기 터치 제어기에 결속되는 반복 길이 부호기를 포함하며, 상기 반복 길이 부호기는:
터치 제어기로부터 삽입 위치에서 반복 길이 부호화된 스트림으로 삽입될 삽입값을 가지는 요소를 수신하며, 이 때 상기 삽입값은 다수의 값들 중 하나의 값을 가지며, 상기 반복 길이 부호화된 스트림은 상기 반복 길이 부호화된 스트림의 시작 위치와 종료 위치 사이의 다수의 런들에 배치된 다수의 요소들을 가지고 각각의 요소들은 다수의 값들 중 하나의 값과 반복 길이 부호화된 스트림 내의 하나의 위치를 가지며;
삽입 위치를 포함하는 반복 길이 부호화된 스트림의 런들 중 하나의 런을 식별하고;
상기 삽입값이 상기 삽입 위치에 있는 요소의 값과 같은지를 결정하며;
상기 삽입값이 삽입 위치에 있는 요소의 값과 다를 때에는:
상기 프로세서가 상기 삽입 위치가 반복 길이 부호화된 스트림의 런들 중 하나 또는 그 이상의 합치되는 이웃한 런들에 인접하는지를 결정하고, 이 때 합치되는 이웃한 런들의 각 요소는 삽입값과 동일한 값을 가지도록 하며;
상기 삽입 위치가 상기 하나 또는 그 이상의 합치되는 이웃한 런들 중 하나의 런에만 인접한 때에는 상기 프로세서가 상기 하나 또는 그 이상의 합치되는 이웃한 런들 중 하나의 합치되는 런을 확장하며;
상기 삽입 위치가 상기 하나 또는 그 이상의 합치되는 이웃한 런들 중 두 개의 런에 인접한 때에는 상기 프로세서가 상기 하나 또는 그 이상의 합치되는 이웃한 런들 중 두 개의 합치되는 런을 병합하고;
상기 삽입 위치가 상기 하나 또는 그 이상의 합치되는 이웃한 런들에 인접하지 아니하는 때에는 새로운 런을 생성하도록 구성되는 것을 특징으로 하는 시스템. - 제 10항에 있어서,
상기 반복 길이 부호기는
삽입 위치에서 하나 또는 그 이상의 합치되는 이웃한 런들까지의 하나 또는 그 이상의 거리들을 계산하고, 이 때 하나 또는 그 이상의 합치되는 이웃한 런 각각은 왼쪽 단과 오른쪽 단을 가지며;
상기 삽입 위치가 하나 또는 그 이상의 합치되는 이웃한 런들 중 두 개 사이에 있을 때에는 상기 하나 또는 그 이상의 합치되는 이웃한 런들 중 첫 번째 합치되는 이웃한 런의 오른쪽 단까지의 왼쪽 거리 및 상기 하나 또는 그 이상의 합치되는 이웃한 런들 중 두 번째 합치되는 이웃한 런의 왼쪽 단까지의 오른쪽 거리를 계산하고;
상기 삽입 위치가 하나 또는 그 이상의 합치되는 이웃한 런들 중 하나와 시작 위치 사이에 있을 때에는 시작 위치까지의 왼쪽 거리 및 상기 하나 또는 그 이상의 합치되는 이웃한 런들 중 두 번째 합치되는 이웃한 런 중 하나의 왼쪽 단까지의 오른쪽 거리를 계산하며;
상기 삽입 위치가 하나 또는 그 이상의 합치되는 이웃한 런들 중 하나와 마지막 위치 사이에 있을 때에는 상기 하나 또는 그 이상의 합치되는 이웃한 런들 중 두 번째 합치되는 이웃한 런 중 하나의 오른쪽 단까지의 왼쪽 거리 및 마지막 위치까지의 오른쪽 거리를 계산함으로써 상기 삽입 위치가 하나 또는 그 이상의 합치되는 이웃한 런들에 인접하는지를 결정하도록 구성되는 것을 특징으로 하는 시스템 - 제 11항에 있어서,
상기 반복 길이 부호기는
왼쪽 거리가 1보다 크고 오른쪽 거리가 1인 때 또는 왼쪽 거리가 1이고 오른쪽 거리가 1보다 클 때는 삽입 위치가 하나의 합치되는 이웃한 런에만 인접한지를 결정하고;
왼쪽 거리가 1이고 오른쪽 거리가 1인 때에는 삽입 위치가 두 개의 합치되는 이웃한 런 사이에 있는지를 결정하며; 또한
왼쪽 거리가 1보다 크고 오른쪽 거리가 1보다 클 때는 프로세서가 삽입 위치가 하나 또는 그 이상의 합치되는 런들에 인접하지 않는지를 결정함으로써 삽입 위치가 하나 또는 그 이상의 합치되는 이웃한 런들에 인접하는지를 결정하도록 구성되는 것을 특징으로 하는 시스템. - 제 10항에 있어서,
상기 다수의 값들은 두 개의 값으로 이루어지는 것을 특징으로 하는 시스템. - 제 10항에 있어서,
상기 다수의 값들은 세 개의 값을 포함하는 것을 특징으로 하는 시스템. - 제 10항에 있어서,
상기 반복 길이 부호기는 정확하게 수신된 하나 또는 그 이상의 요소에 따라 반복 길이 부호화된 스트림의 런을 예측함으로써 삽입 위치를 포함하는 반복 길이 부호화된 스트림의 런을 식별하도록 구성되는 것을 특징으로 하는 시스템. - 제 10항에 있어서,
상기 요소는 다수의 연속된 요소들을 포함할 수 있고, 연속된 요소들 각각은 삽입값을 가지며, 상기 삽입 위치는 다수의 연속된 위치들을 가지고, 또한, 반복 길이 부호기는 상기 연속된 요소들과 다른 값을 가지는 상기 다수의 연속된 위치들에 해당하는 반복 길이 부호화된 스트림의 위치에서 값들을 대체하도록 더 구성되는 것을 특징으로 하는 시스템. - 제 10항에 있어서,
상기 반복 길이 부호화된 시퀀스는 영의 길이를 가지는 추가적인 런으로써 패딩되는 것을 특징으로 하는 시스템. - 제 17항에 있어서,
상기 반복 길이 부호기는 추가적인 런을 영이 아닌 길이를 가지는 런으로 변환함으로써 런을 병합하도록 구성되는 것을 특징으로 하는 시스템.
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201461945744P | 2014-02-27 | 2014-02-27 | |
US61/945,744 | 2014-02-27 | ||
US14/629,415 US9160363B2 (en) | 2014-02-27 | 2015-02-23 | Run length encoding with non-sequential input |
US14/629,415 | 2015-02-23 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20150102746A true KR20150102746A (ko) | 2015-09-07 |
KR102161746B1 KR102161746B1 (ko) | 2020-10-06 |
Family
ID=53883265
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020150028621A KR102161746B1 (ko) | 2014-02-27 | 2015-02-27 | 반복 길이 부호화된 스트림을 업데이트하기 위한 방법 및 시스템 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9160363B2 (ko) |
KR (1) | KR102161746B1 (ko) |
CN (1) | CN104883193B (ko) |
TW (1) | TWI657693B (ko) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105357532A (zh) * | 2015-11-06 | 2016-02-24 | 苏州博思得电气有限公司 | 一种压缩方法、解压缩方法、压缩装置及解压缩装置 |
CN106507108B (zh) * | 2016-12-07 | 2018-04-17 | 杜昀晓 | 图像编码、解码的方法和装置 |
US10644721B2 (en) * | 2018-06-11 | 2020-05-05 | Tenstorrent Inc. | Processing core data compression and storage system |
US10812102B2 (en) | 2018-06-29 | 2020-10-20 | Apple Inc. | Efficient data encoding |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6954157B2 (en) * | 2001-11-22 | 2005-10-11 | Matsushita Electric Industrial Co., Ltd. | Variable length coding method and variable length decoding method |
KR100819992B1 (ko) * | 2005-05-19 | 2008-04-07 | 캐논 가부시끼가이샤 | 화상 부호화 장치 및 방법, 및 컴퓨터 판독가능 저장 매체 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB9727398D0 (en) * | 1997-12-29 | 1998-02-25 | Sgs Thomson Microelectronics | Run-length encoding |
KR20040099945A (ko) * | 2003-05-20 | 2004-12-02 | 삼성전자주식회사 | 디스크형 기록 매체로의 기록을 위한, 데이터 변조 방법및 그 장치와, 이에 사용되는 싱크 코드 삽입 방법 및 그장치와, 이를 구현하기 위한 프로그램을 기록한 기록 매체 |
US6897793B1 (en) * | 2004-04-29 | 2005-05-24 | Silicon Image, Inc. | Method and apparatus for run length limited TMDS-like encoding of data |
WO2006030366A1 (en) * | 2004-09-17 | 2006-03-23 | Koninklijke Philips Electronics N.V. | Method of converting a user bitstream into coded bitstream, method for detecting a synchronization pattern in a signal, a record carrier, a signal, a recording device and a playback device |
US7483585B2 (en) * | 2004-12-01 | 2009-01-27 | Ati Technologies Ulc | Image compression using variable bit size run length encoding |
JP2006286084A (ja) * | 2005-03-31 | 2006-10-19 | Fujitsu Ltd | 符号器、復号器および符号化方法 |
CN101729198B (zh) * | 2008-10-27 | 2014-04-02 | 华为技术有限公司 | 一种编解码方法、装置及系统 |
US8755619B2 (en) | 2009-11-19 | 2014-06-17 | Samsung Electronics Co., Ltd. | Method and apparatus for encoding and decoding image data using run of the image data |
CN102682810B (zh) * | 2011-03-17 | 2014-11-26 | 清华大学 | 游程长度比率调制数据记录方法及其系统 |
-
2015
- 2015-02-23 US US14/629,415 patent/US9160363B2/en active Active
- 2015-02-26 TW TW104106196A patent/TWI657693B/zh active
- 2015-02-27 KR KR1020150028621A patent/KR102161746B1/ko active IP Right Grant
- 2015-02-27 CN CN201510089942.6A patent/CN104883193B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6954157B2 (en) * | 2001-11-22 | 2005-10-11 | Matsushita Electric Industrial Co., Ltd. | Variable length coding method and variable length decoding method |
KR100819992B1 (ko) * | 2005-05-19 | 2008-04-07 | 캐논 가부시끼가이샤 | 화상 부호화 장치 및 방법, 및 컴퓨터 판독가능 저장 매체 |
Also Published As
Publication number | Publication date |
---|---|
TW201534107A (zh) | 2015-09-01 |
CN104883193A (zh) | 2015-09-02 |
TWI657693B (zh) | 2019-04-21 |
US20150244396A1 (en) | 2015-08-27 |
US9160363B2 (en) | 2015-10-13 |
KR102161746B1 (ko) | 2020-10-06 |
CN104883193B (zh) | 2019-08-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112218079B (zh) | 一种基于空间顺序的点云分层方法、点云预测方法及设备 | |
CN106170921B (zh) | 涉及符号压缩的数据的源编码和解码方法及装置 | |
CN106170922B (zh) | 数据的源编码和解码的设备和方法 | |
KR102161746B1 (ko) | 반복 길이 부호화된 스트림을 업데이트하기 위한 방법 및 시스템 | |
CN1223502A (zh) | 调色图象的压缩及其m阵符号集比特状态编码的二进制化 | |
US8606029B1 (en) | Hybridized image encoding based on region volatility | |
Liang et al. | Lossless compression of medical images using Hilbert space-filling curves | |
KR20110095049A (ko) | 명령어 병렬 처리 컴퓨터를 위한 명령어 압축 장치 및 방법 | |
Žalik et al. | Efficient chain code compression with interpolative coding | |
CN113505583B (zh) | 基于语义决策图神经网络的情感原因子句对提取方法 | |
KR20200108465A (ko) | 인코딩 방법, 디코딩 방법, 및 디바이스 | |
GB2511355A (en) | Encoder, decoder and method | |
CN106133791B (zh) | 用于颜色压缩的群聚和编码 | |
CN107770553B (zh) | 采用多类匹配参数及参数存储地址的数据压缩方法和装置 | |
CN114781654A (zh) | 联邦迁移学习方法、装置、计算机设备及介质 | |
CN101783719A (zh) | 一种速率匹配和解速率匹配方法、装置和通信系统 | |
CN109543772B (zh) | 数据集自动匹配方法、装置、设备和计算机可读存储介质 | |
KR20210086233A (ko) | 완화된 프루닝을 통한 행렬 데이터 처리 방법 및 그 장치 | |
JP6457558B2 (ja) | データ圧縮装置およびデータ圧縮方法 | |
CN102263948B (zh) | 用于解码编码的视频流的视频处理系统和方法 | |
CN110191341B (zh) | 一种深度数据的编码方法和解码方法 | |
KR20210086936A (ko) | 데이터 출력 방법, 획득 방법, 장치 및 전자 기기 | |
CN116489391A (zh) | 图像矢量量化编码、文图模型训练及使用方法和装置 | |
CN105516727A (zh) | 一种图像编码方法及装置 | |
KR20220100030A (ko) | 패턴 기반 캐시 블록 압축 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
A302 | Request for accelerated examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |