KR20070083652A - 부동소수점 수의 수열의 압축 및 복원 방법 - Google Patents
부동소수점 수의 수열의 압축 및 복원 방법 Download PDFInfo
- Publication number
- KR20070083652A KR20070083652A KR1020077008187A KR20077008187A KR20070083652A KR 20070083652 A KR20070083652 A KR 20070083652A KR 1020077008187 A KR1020077008187 A KR 1020077008187A KR 20077008187 A KR20077008187 A KR 20077008187A KR 20070083652 A KR20070083652 A KR 20070083652A
- Authority
- KR
- South Korea
- Prior art keywords
- value
- floating point
- sequence
- point number
- bits
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/001—Model-based coding, e.g. wire frame
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
-
- 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/14—Conversion to or from non-weighted codes
- H03M7/24—Conversion to or from floating-point codes
-
- 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
-
- 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/12—Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
-
- 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/124—Quantisation
-
- 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/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/136—Incoming video signal characteristics or properties
- H04N19/14—Coding unit complexity, e.g. amount of activity or edge presence estimation
-
- 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/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/156—Availability of hardware or computational resources, e.g. encoding based on power-saving criteria
-
- 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/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/164—Feedback from the receiver or from the transmission channel
-
- 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/46—Embedding additional information in the video signal during the compression process
-
- 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/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/593—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/544—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Discrete Mathematics (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
본 발명은 부동소수점 수의 수열을 압축하고 복원하는 방법에 관한 것이다. 상기 압축방법은, 상기 수열의 부동소수점 수의 최대값과 최소값을 측정하는 단계; 상기 최소값과 최대값의 함수로서 양자화 단계의 값을 측정하는 단계; 상기 최소값과 최대값 사이에서 선형 양자화를 부동소수점 수에 적용하고 상기 양자화 단계의 값을 이용함으로써 상기 수열의 각각의 부동소수점 수를 압축하는 단계; 및, 상기 압축하는 단계로부터 나오는 각각의 압축값을 이진 수열에 삽입하는 단계;를 포함한다.
부동소수점 수, 압축, 복원, 양자화
Description
본 발명은 데이터를 전송, 저장, 검색, 표시하기 위한 컴퓨터 시스템 분야에 관한 것이다. 보다 구체적으로는, 부동소수점 수(floating point numbers)의 수열을 압축하고 복원하는 방법에 관한 것이다.
다수의 소프트웨어 애플리케이션이 대량의 수치 데이터를 전송하고 저장하고 검색하기 위해 요청된다. 이것은 특히 그림, 도면, 설계도와 같은 디지털 그래픽 문서를 생성하고 표시하는 소프트웨어 애플리케이션에 관한 것이며, 이러한 문서들은 매우 많은 점, 라인, 곡선들을 나타내는 그래픽 데이터를 포함한다. 이러한 그래픽 문서에서, 그래픽 객체(object)는 이차원 벡터와 혼합된 벡터/래스터 그래픽 객체를 기술하는 SVG(가변 벡터 도형처리)와 같은 언어를 사용하여 기술된다.
SVG는 XML(확장성 생성 언어)에 기초한 마크업(markup) 언어이다. 이 언어는 세가지 형태의 그래픽 객체를 허용한다: 벡터 그래픽 형상, 이미지, 및 텍스트. 벡터 그래픽 도형은 직선과 곡선으로 구성된 경로로 정의된다. 각각의 직선과 곡선은 각각 시작점과 끝점의 좌표를 포함하는 세그먼트의 시퀀스와 시작점과 끝점을 연결하는 곡선의 형상을 정의하는 변환 명령으로 정의된다. 복합 그래픽 형상은 좌표와 변형 명령의 매우 긴 리스트에 의해 SVG 언어로 표현된다. SVG에 따라서, 모든 좌표값은 IEEE 754 포맷에 따라 32 비트로 디지털 인코딩된 부동숫자(floating numbers)이다.
SVG를 사용하는 것은 휴대폰에서 그래픽을 전송하고 표시하기 위해 전화통신에서 널리 이용되고 있다. 그러나 전화통신에서 이용가능한 데이터 전송률은 일반적으로 감소 되어 있고 휴대폰의 디스플레이의 치수도 작도.
데이터 전송률을 줄이거나 디지털 문서를 전송하거나 저장하는데 필요한 저장 크기를 줄일 수 있는 종래의 알려진 해결방법은 문서에 압축처리를 하는 것이다. 이와 관련하여, ISO/IEC 15938-1은, 보다 구체적으로는 MPEG-7(동영상 전문가 그룹)은 XML 구조의 문서의 서식을 인코딩(압축)하는 이진 포맷 및 방법을 제안한다. 보다 구체적으로, 이러한 기준은 멀티미디어 메타데이터와 같이 고도로 조직화된 데이터를 다루도록 고안되어 있다. 그러나 수열은 SVG 문서의 중요한 부분을 구성한다. 따라서, 부동소수점 수의 수열을 압축할 필요가 있다.
ZLIB(zip)과 같은 표준 압축 알고리즘은 디지털 인코딩에 사용되는 코딩 포맷이 무엇이든 간에 부동소수점 수의 수열에 적용될 때 기대만큼 효과적이지 못하다.
부동소수점 수와 관련된 압축방법이 미국특허 US6,253,222 및 US6,396,420에 개시되어 있다. US6,253,222에 개시된 방법은 압축될 각각의 부동소수점 수에 상수 바이어스 값을 빼는 것에 기초한다. US6,396,420에 개시된 방법은 압축될 두 값에서 공통 숫자를 식별하는 것에 기초하며, 이값의 공통부분과 비-공통부분은 개별적으로 압축된다.
본 발명의 목적은 부동소수점 수의 수열의 압축 효율을 증가시키는 것이다. 본 발명의 또 다른 목적은 낮은 해상도 디스플레이에서 SVG 그래픽 문서와 같은 벡터 그래픽 문서를 표시하기에 적합한 압축 및 복원 방법이다.
본 발명에 따르면, 이러한 목적은, 부동소수점 수의 수열을 압축하기 위한 압축방법으로서,
상기 수열의 부동소수점 수의 최대값과 최소값을 측정하는 단계;
상기 최소값과 최대값의 함수로서 양자화 단계의 값을 측정하는 단계;
상기 최소값과 최대값 사이에서 선형 양자화를 부동소수점 수에 적용하고 상기 양자화 단계의 값을 이용함으로써 상기 수열의 각각의 부동소수점 수를 압축하는 단계; 및,
상기 압축하는 단계로부터 나오는 각각의 압축값을 이진 수열에 삽입하는 단계;를 포함하는, 부동소수점 수의 수열을 압축하기 위한 압축방법에 의해 이루어진다.
바람직한 실시예에 따르면, 상기 수열의 각각의 부동소수점 수는,
상기 식에서 v는 압축되는 부동소수점 수이고, q는 v의 압축값이고, min은 상기 최소값이고, qstep은 상기 양자화 단계이며, Int[x]는 x의 정수부를 복귀시키는 함수이다.
바람직한 실시예에 따르면, 상기 양자화 단계의 값은,
상기 식에서 nbits는 상기 압축값 중 적어도 한 값의 비트 수이고, max 는 상기 수열의 부동소수점 수의 최대값이다.
바람직한 실시예에 따르면, 상기 압축값 각각의 비트수는 상기 부동소수점 수의 최대 정확도의 함수로서 측정된다.
바람직한 실시예에 따르면, 상기 수열의 부동소수점 수는 디지털 그래픽 이미지의 점들의 좌표이고, 상기 압축값 각각의 비트수는 디지털 그래픽 이미지가 표시되도록 되어 있는 디스플레이 해상도의 함수로서 측정된다.
바람직한 실시예에 따르면, 상대적인 수가 이어지는 상기 수열의 첫 번째 부동소수점 수를 포함하는 새로운 수열로 상기 수열을 대체하는 초기 단계를 포함하고, 각각의 상대적인 수는 상기 수열 내의 현재의 부동소수점 수와 이전의 부동소수점 수의 차이로부터 기인하고, 각각의 상대적인 수는 상기 첫 번째 부동소수점 수의 압축값의 비트 수보다 적은 수의 비트를 갖는 압축된 상대값을 얻기 위해 상기 양자화 단계를 이용하여 압축된다.
바람직한 실시예에 따르면, 상기 압축된 상대적인 수의 각각의 비트 수는 상기 상대적인 수의 최대값을 이용하여 측정된다.
바람직한 실시예에 따르면, 상기 수열의 부동소수점 수는 점들의 좌표이고, 각각의 좌표는 적어도 두 개의 부동소수점 수를 포함하고, 각각의 부동소수점 수는 개별적인 좌표 줄을 갖고, 상기 압축방법은 각 좌표 줄의 부동소수점 수에 각각 적용된다.
바람직한 실시예에 따르면, 상기 부동수소점 수의 수열은 SVG 문서에 속한다.
본 발명의 또 다른 목적은, 부동소수점 수의 압축된 디지털값의 이진 수열을 복원하기 위한 방법으로서, 상기 부동소수점 수는 최소값과 최대값 사이에 있고,
이진 수열에서 적어도 하나의 디지털값의 비트 수와 양자화 단계의 값을 측정하는 단계;
상기 비트 수를 이용하여 각각의 압축된 부동소수점 수의 디지털 값을 연속적으로 읽는 단계; 및,
읽혀진 각각의 디지털 값의 부동소수점 수의 복원된 값을 얻기 위해, 상기 양자화 단계의 값과 상기 최대값 또는 최소값을 이용하여 읽혀진 각각의 디지털 값을 복원하는 단계;를 포함하는, 부동소수점 수의 압축된 디지털값의 이진 수열을 복원하기 위한 방법이다.
바람직한 실시예에 따르면, 상기 복원하는 단계는 읽혀진 각각의 디지털 값 q에, 식 v = min + qstep·(q+0.5)를 적용하는 것을 포함하고,
상기 식에서 v는 부동소수점 수의 복원된 값이고, min은 상기 부동소수점 수의 최소값이고, qstep은 상기 양자화 단계이다.
바람직한 실시예에 따르면,
상기 식에서 nbits는 상기 비트 수이고, max는 상기 부동소수점 수의 최대값이다.
바람직한 실시예에 따르면, 상기 비트 수와 상기 최소값과 상기 최대값은 상기 이진 수열의 헤더에서 제공되는 양자화 그리드 식별자로부터 측정된다.
바람직한 실시예에 따르면, 상기 비트 수와 상기 최소값과 상기 최대값은 상기 이진 수열의 헤더에서 제공된다.
바람직한 실시예에 따르면, 상기 이진 수열 내의 첫 번째 디지털 값은 상기 비트 수를 갖고, 상기 이진 수열 내의 다른 디지털 값은 상기 비트 수보다 적은 상대적인 비트 수를 갖고,
각각의 부동소수점 수의 값은:
현재의 복원된 값을 얻기 위해 상기 이진 수열 내의 현재 디지털 값을 복원하는 것과, 이전의 복원된 값에 현재의 복원된 값을 더하는 것에 의해 측정되고,
첫 번째 부동소수점 수의 값은 상기 이진 수열 내의 상기 첫 번째 디지털 값을 복원함으로써 나온다.
바람직한 실시예에 따르면, 상기 상대적인 비트 수는 상기 이진 수열의 헤더 내에서 읽혀진다.
바람직한 실시예에 따르면, 상기 수열의 부동소수점 수는 점들의 좌표이고, 각각의 좌표는 개별적인 좌표 줄을 갖고 있는 적어도 두 개의 부동소수점을 포함하고, 상기 복원방법은 각각의 좌표 줄의 부동소수점 수에 개별적으로 가해진다.
본 발명의 또 다른 목적은, 부동소수점 수의 수열을 압축하기 위한 압축장치로서,
상기 수열의 부동소수점 수의 최대값과 최소값을 측정하는 수단;
상기 최소값과 최대값의 함수로서 양자화 단계의 값을 측정하는 수단;
상기 최소값과 최대값 사이에서 선형 양자화를 부동소수점 수에 적용하고 상기 양자화 단계의 값을 이용함으로써 상기 수열의 각각의 부동소수점 수를 압축하는 수단; 및,
상기 압축하는 수단으로부터 생성되는 각각의 압축값을 이진 수열에 삽입하는 수단;을 포함하는, 압축장치이다.
바람직한 실시예에 따르면, 상기 압축 수단은 상기 수열의 각각의 부동소수점 수에,
상기 식에서 v는 압축되는 부동소수점 수이고, q는 v의 압축값이고, min은 상기 최소값이고, qstep은 상기 양자화 단계이며, Int[x]는 x의 정수부를 복귀시키는 함수이다.
바람직한 실시예에 따르면, 상대적인 수가 이어지는 상기 수열의 첫 번째 부동소수점 수를 포함하는 새로운 수열로 상기 수열을 대체하는 수단을 더 포함하고, 각각의 상대적인 수는 상기 수열 내의 현재의 부동소수점 수와 이전의 부동소수점 수의 차이로부터 기인하고, 상기 압축 수단은 상기 첫 번째 부동소수점 수의 압축값의 비트 수보다 적은 비트 수를 갖는 압축된 상대값을 얻기 위해 상기 양자화 단계를 이용하여 각각의 상대적인 수를 압축하는 것을 특징으로 하는 압축장치.
본 발명의 또 다른 목적은, 부동소수점 수의 압축된 디지털값의 이진 수열을 복원하기 위한 복원장치로서, 상기 부동소수점 수는 최소값과 최대값 사이에 있고,
이진 수열에서 적어도 하나의 디지털값의 비트 수와 양자화 단계의 값을 측정하는 수단;
상기 비트 수를 이용하여 각각의 압축된 부동소수점 수의 디지털 값을 연속적으로 읽는 수단; 및,
읽혀진 각각의 디지털 값의 부동소수점 수의 복원된 값을 얻기 위해, 상기 양자화 단계의 값과 상기 최대값 또는 최소값을 이용하여 읽혀진 각각의 디지털 값을 복원하는 수단;을 포함하는 복원장치이다.
바람직한 실시예에 따르면, 상기 복원하는 수단은 읽혀진 각각의 디지털 값 q에,
식 v = min + qstep·(q+0.5)를 적용하고,
상기 식에서 v는 부동소수점 수의 복원된 값이고, min은 상기 부동소수점 수의 최소값이고, qstep은 상기 양자화 단계이다.
바람직한 실시예에 따르면,
상기 식에서 nbits는 상기 비트 수이고, max는 상기 부동소수점 수의 최대값이다.
바람직한 실시예에 따르면, 상기 이진 수열의 헤더에서 제공되는 양자화 그리드 식별자로부터 상기 비트 수와 상기 최소값과 상기 최대값을 측정하는 수단을 더 포함한다.
바람직한 실시예에 따르면, 상기 이진 수열 내의 첫 번째 디지털 값은 상기 비트 수를 갖고, 상기 이진 수열 내의 다른 디지털 값은 상기 비트 수보다 적은 상대적인 비트 수를 갖고,
상기 복원 수단은:
현재의 복원된 값을 얻기 위해 상기 이진 수열 내의 현재 디지털 값을 복원하는 것과, 이전의 복원된 값에 현재의 복원된 값을 더하는 것에 의해, 각각의 부동소수점 수의 값을 측정하고,
첫 번째 부동소수점 수의 값은 상기 이진 수열 내의 상기 첫 번째 디지털 값을 복원함으로써 나온다.
바람직한 실시예에 따르면, 상기 이진 수열의 헤더 내에서 상기 상대적인 비트 수를 읽는 수단을 더 포함한다.
본 발명은 첨부된 도면을 참고하여 다음의 설명을 읽어보면 보다 명확히 이해될 것이며 본 발명의 다른 특징과 이점도 나타날 것이다.
도 1은 본 발명에 따른 압축 장치의 개략도.
도 2는 본 발명에 따른 복원 장치의 개략도.
도 3은 부동소수점 수의 수열을 포함하는 압축될 문서를 나타내는 도면.
도 4는 본 발명에 따른 압축 방법을 나타내는 흐름도.
도 5는 도 1의 압축 장치에 의해 수행되는 압축으로부터 초래되는 압축 부동소수점 수의 이진 수열을 포함하는 압축된 문서를 나타내는 도면.
도 6은 도 3에 도시된 압축 문서의 다른 부분을 나타내는 도면.
도 7은 본 발명에 따른 복원 방법을 나타내는 흐름도.
본 발명의 주요 특성이 이제 설명될 것이다. 도 1은 본 발명에 따른 압축 장치(CMP)를 나타낸다. 이 장치는 부동소수점 수의 수열을 포함하는 SVG 언어에 기초하는 디지털 그래픽 문서와 같은 문서를 처리하도록 되어 있다. 장치(CMP)는 문서(DOC1)로부터 문서(DOC1) 보다 크기가 작은 압축된 문서(CDOC)를 생성한다.
도 2는 압축 장치(CMP)에 의해 생성되는 압축된 문서를 처리하고 복원된 문서를 제공하는 복원 장치(DEC)를 나타낸다. 복원장치에 의해 압축된 문서(CDOC)로부터 생성된 복원된 문서(DOC2)는 압축 문서(CDOC)를 생성시킨 원래 문서(DOC1)와 반드시 일치하는 것은 아니다.
도 3은 압축될 문서(DOC1)의 예이다. 이 문서는 적어도 하나의 부동소수점 수의 수열(FPS)을 포함하고 있다. 이 수열은 헤더(SHD)와, 예를 들어 그래픽 이미지의 점들의 좌표(X1,Y1), (X2,Y2)...(Xn,Yn)을 나타내는 부동소수를 포함한다. SVG 언어에 따라, 좌표는 32비트의 부동소수점 포맷으로 인코딩된다.
도 4는 본 발명에 따른 압축 방법을 나타낸다. 이 방법은 다음과 같은 단계를 포함한다:
S1: 압축될 수열의 부동소수점 수의 분석
S2: 양자화 단계의 결정
S3: 압축된 문서 내에 압축 매개변수(RL)의 삽입
S4: 수열 내 첫 번째 숫자의 읽기
S5: 첫 번째 숫자의 압축
S6: 압축된 문서 내에 첫 번째 수의 압축값의 삽입
S7: 수열 내에서 다음 수를 읽기
S8: 압축 매개변수(RL)의 시험
S9: 다음 수의 압축
S10: 부동소수점 수열 내에서 읽은 이전의 수와 다음의 수의 차이를 압축
S11: 압축된 문서 내에 이전의 압축 결과의 삽입
S12: 수열의 끝에 도달했는지 여부의 측정
S13: 압축된 문서 내에 종결 코드의 삽입
단계(S1)에서, 수열 내의 부동소수점 수의 구조에 적합하게 된 압축 매개변수를 측정하기 위해, 부동소수점 수의 수열(FPS)이 분석된다. 이러한 분석의 목적은 최소값과 최대값 및 수열의 부동소수점 수의 유효 비트 수 또는 정확도를 측정하는 것이다.
본 발명의 바람직한 실시예에서, 최소값과 최대값은 수열(FPS) 또는 문서(DOC1)의 헤더에 저장된 매개변수로부터 측정된다. 이러한 정보는 예를 들어 수열의 수의 단위 또는 형태의 정의를 포함하고, 이러한 단위 또는 형태는 부동소수점 수의 최소값과 최대값과 관련이 있다.
본 발명의 또 다른 바람직한 실시예에서, 최소값과 최대값은 수열(FPS)의 부동소수점 수로부터 측정된다.
부동소수점 수의 유효 비트 수는 수열의 수의 최대 정확도를 줄이는 것을 방지하도록 선택된다. 따라서 손실 없이 압축이 수행될 것이다.
본 발명의 또 다른 실시예에서, 유효 비트의 수는 문서의 사용과 관련하여 측정된다. 예를 들어, 문서가 휴대전화에 장착하는 것과 같이 낮은 해상도로 표시되도록 된 벡터 그래픽 이미지를 포함하고 있다면, 부동소수점 수의 유효 비트의 수는 그러한 표시부의 해상도에 적합한 값으로 선택될 수 있다. 예를 들어, 표시부가 320 X 240 픽셀의 해상도를 갖고 있다면, 비트 수는 한쪽에서는 9 비트이고 다 른 쪽에서는 8비트가 되도록 선택될 수 있다. 이 경우 압축은 손실을 일으키므로 비가역적이다. 그러나, 부동소수점 수가 벡터 그래픽 이미지의 점들에 대한 좌표를 나타내면, 이미지의 점들은 표시된 이미지 내에서 약간 상이한 지점을 가질 것이지만, 이미지의 선명도는 감소 되지 않을 것이다.
또한, 단계(S1)에서 수열의 연속되는 수들 사이의 최대 차이값이 계산된다. 이러한 최대 차이값은 압축률의 관점에서 상대적인 압축이 보다 효율적일지 여부를 나타내는 압축 매개변수(RL)를 측정하는데 사용된다. 예를 들어, 수열의 부동소수점 수가 이차원 이미지의 점들의 좌표인 경우, 또한 각각의 점이 수열에서 이전의 점과 가까이 있는 경우, 상대적인 압축이 절대적인 압축보다 더 효율적일 것이다.
수열의 부동소수점 수가, 각각의 수가 좌표와 같은 개별적인 줄(rank)을 갖고 있는 그룹으로 배열되어 있는 경우, 최소값 및 최대값과 유효 비트의 수는 각 줄에 대해 개별적으로, 즉, 모든 X 값에 대해서 그리고 모든 Y 값에 대해서 측정된다.
다음 단계(S2)에서, 양자화 단계 "qstep"이 측정된다. 이를 위해, 다음과 같은 식이 적용될 수 있다:
여기에서 "nbits"는 수열(FPS)의 수의 유효 비트의 수이고, "max"와 "min"은 이전에 측정된 최대값 및 최소값이다.
부동소수점 수가 이미지 내의 점들의 좌표인 경우, 양자화단계는 각 줄에 대 해, 즉 X 값에 대해 그리고 Y값에 대해 측정된다.
다음 단계(S3)에서, 압축 매개변수(RL)는 압축된 문서(CDOC)에서 쓰여진다.
다음 단계(S4)에서, 첫번째 부동소수점 수(X1)가 수열(FPS)에서 읽혀진다. 이 부동소수점 수는 양자화 단계(qstep)을 사용하여 최소값과 최대값 사이의 선형 양자화를 적용함으로써 단계(S5)에서 압축된다. 압축은 예를 들어 다음의 식을 적용하는 것으로 구성된다:
여기에서 v는 압축될 부동소수점 수이고, q는 v의 압축된 값이고, Int[x]는 x의 정수부를 입력하는 함수이다.
다음 단계(S6)에서, 얻어진 압축 값이 압축 문서(CDOC)에 기록된다. 부동소수점 수가 이차원 이미지의 점들의 좌표를 나타내는 경우, 수열의 첫 번째 두 수 X1, Y1가 읽혀지고 압축되며 단계(S4, S5, S6)에서 압축 문서에 삽입된다.
다음 단계(S7)에서, 다음 부동소수점 수가 수열(FPS)에서 읽혀진다. 압축이 압축 매개변수(RL)에 따라 상대적으로 수행되면, 단계(S10)가 실행된다. 그렇지 않은 경우에는 단계(S9)가 실행된다. 단계(S9)에서, 단계(S7)에서 읽혀진 수는 식(2)을 사용하여 압축된다. 단계(S10)에서, 압축 연산(식(2))이 단계(S7)에서 읽혀진 부동소수점 수와 이전의 부동소수점 수(즉, 현재 처리되는 수가 수열의 두 번째라면 첫번째 수 X1 또는 Y1) 사이의 차이값에 적용된다. 단계(S10)에서 상대적 압축의 결과는 단계(S9)에서 수행된 압축 결과 보다 작은 다수의 유효 비트를 포함한 다. 상대 압축에서 사용된 비트의 수는 미리 정해진 값이거나 수열의 수의 차이값의 함수로서 수열 분석(단계 S1) 중에 측정된 값일 수 있다.
단계(S11)에서, 압축값이 압축 문서(CDOC)에 삽입된다. 다시, 부동소수점 수가 이차원 이미지의 점들의 좌표를 나타내면, 수열의 두 수(X2, Y2)가 단계(S7 - S11)에서 읽혀지고 압축되며 저장된다.
그리고 나서, 단계(S12)가 부동소수점 수의 수열(FPS)의 끝에 도달되었는지 여부를 측정하기 위해 실행된다. 만일 수열의 끝에 도달한 경우에는, 종결 코드(ESC)가 압축 문서에 삽입된다(단계 S13). 그렇지 않으면, 단계(S7 - S12)가 다시 실행된다.
도 5는 문서(DOC1)를 압축한 압축 문서(CDOC)의 구조를 보여준다. 압축 문서는 수열(FPS)의 압축하여 얻어지는 압축 수열(CS)를 포함한다. 압축 수열(CS)은 헤더(CSHD)와 바디(CSBY)를 포함하며, 바디는 수열의 부동소수점 수(X2, Y2...Xn, Yn)의 압축값(CX2, CY2...CXn, CYn)을 포함한다.
헤더(CSHD)는 압축 매개변수(RL)를 포함하고, RL의 값이 상대 압축을 나타내는 경우에는:
- 수열이 절대적으로 압축된 첫 번째 수를 포함하는지 여부를 나타내는 매개변수(FP),
- 만일 매개변수(FP)가 첫 번째 압축값(CX1)을 나타내면, 그리고 수열(FPS)의 부동소수점 수가 점들의 좌표를 나타내면, 두 번째 좌표(Y1)의 첫 번째 압축값(CY1),
- 상대 압축값의 비트 수가 디폴트값과 상이한지 여부를 나타내는 압축 매개변수(ND),
- 매개변수(ND)가 디폴값과 상이한 비트 수를 나타내면, 상대 압축값의 비트 수(DYN).
도 6은 점들의 좌표와 점들을 연결하는 선의 모양을 형성하는 명령을 포함하는 압축 수열의 헤더를 나타낸다. 이 경우, 도 5에 도시된 헤더에 부가하여 헤더는:
- 수열이 명확한 명령을 포함하는지 여부를 나타내는 매개변수(EC)
- 명령이 대문자로 표현되는지 여부를 나타내는 매개변수(UP)
- 명령(CMD)
도 7은 본 발명에 따른 복원 방법을 나타낸다. 이 방법은 다음의 단계를 포함한다:
S21: 양자화 단계의 측정
S22: 압축 매개변수(RL)의 읽기
S23: 압축 수열(CS) 내에서 첫 번째 압축값(CX1)의 읽기
S24: 첫 번째 값의 복원
S25: 복원된 문서(DOC2) 내에서 복원값의 삽입
S26: 압축 수열에서 다음 압축값의 읽기
S27: 다음 압축값이 압축 수열의 끝을 나타내는 이스케이프 코드와 동일한지 여부를 시험
S28: 다음 압축값의 복원
S29: 압축 매개변수(RL)의 시험
S30: 다음 복원값과 이전 복원값의 차이를 계산
S31: 복원된 문서(DOC2)에서 복원값의 삽입
단계(S21)에서, 양자화 단계(qstep)는 식(1)을 이용하여 계산된다. 비트 수(nbits)와 식(1)을 적용하는데 필요한 최대값(max) 및 최소값(min)은 압축 수열 헤더(CSHD) 에서 읽혀지는 유닛 식별자로부터 유도된다.
단계(S22)에서, 압축 매개변수(RL)는 압축 수열 헤더(CSHD)에서 읽혀진다.
단계(S23)에서, 부동소수점 수의 첫 번째 압축값(CX1)은 압축 수열(CS)에서 읽혀진다. 이 수는, 최대값(max)과 최소값(min) 및 양자화 단계(qstep)를 사용하여, 단계(S5)에서 적용된 값과 반대인 계산을 적용함으로써 단계(S24)에서 복원된다. 복원은 예를 들어 다음의 식을 적용하는 것으로 이루어져 있다:
v = min + qstep·(q+0.5) (3)
단계(S25)에서, 복원값이 복원된 문서(DOC2)의 복원 수열 내에 삽입된다. 압축 수열의 압축값이 점들의 좌표를 나타내면, 단계(S23) 내지 단계(S25)가 첫 번째 지점의 각 좌표에 대해 반복된다.
단계(S26)에서, 다음값이 압축 수열(CS)에서 읽혀진다. 만일 다음값이 수열의 끝을 표시하는 이스케이프 코드와 동일하면, 수열의 복원이 종결된다(S27). 그렇지 않으면, 단계(S24)에서 적용된 것과 동일한 계산을 적용함으로써 단계(S26)에서 읽혀진 다음값이 단계(S28)에서 복원된다. 수열이 압축 매개변수(RL)에 의해 표 시되는 것처럼 상대적으로 압축되었다면(S29), 양자화 단계(qstep)에 읽혀진 다음값을 곱함으로써 복원이 추가로 수행된다. 복원 문서(DOC2)에 삽입된 복원값은 이전 복원값(S30)에 부가된 단계(S28)에서 얻은 복원값과 동일하다:
v(n) = q·qstep + v(n-1) (4)
여기에서 v(n)은 다음 복원값이고, v(n-1)은 이전의 복원값이며, q는 압축 수열에서 읽혀진 다음값이다.
압축 프로세스는 압축 수열의 각각의 값에 대해서 단계(S25 내지 S30)를 수행한다. 압축 수열의 압축값이 지점들의 좌표를 나타내면, 단계(S25, S26, S28, S30)이 각 좌표에 대해 반복된다.
복원 프로세스는 또한 이진 신택스(binary syntax)에 의해 정의될 수 있고, 여기에서 비트 스트림 또는 압축 수열에서 읽은 각각의 데이터 아이템이 뚜렷하게 나타나고, 이름과 비트의 길이에 의해서, 그리고 전송 유형과 순서에 대해 기억법에 의해서 기술된다. 비트 스트림으로부터 복원되는 데이터 아이템에 의해 유발되는 작용은 데이터 아이템의 값에 의존하며, 이전에 읽혀졌거나 복원된 데이터 아이템에 의존한다. 데이터 아이템이 존재할 때 조건(condition)을 나타내기 위해 다음과 같은 구조가 사용된다:
while(condition){
data_item
...
}
만일 조건이 참(true) 이라면, 데이터 아이템의 그룹이 비트 스트림에서 다음에 발생한다. 이것은 조건이 참을 더 이상 만족하지 않을 때까지 반복된다. 이러한 신택스는 "C-code" 규약을 사용하며, 이 규약에 따라 영이 아닌 값으로 평가되는 변수 또는 표현은 참 조건에 상당하게 되고, 영으로 평가되는 변수 또는 표현은 거짓(false) 조건에 상당하게 된다.
아래의 구조에서, 조건이 참이면, 데이터 아이템의 첫 번째 그룹은 비트 스트림에서 다음에 발생한다. 조건이 거짓이면, 데이터 아이템의 두 번째 그룹은 비트 스트림에서 다음에 발생한다:
if(condition){
data_item
...
}else{
data_item
...
}
아래의 구조에서, 데이터 아이템의 그룹은 (n-m)번 발생한다. 데이터 아이템의 그룹 내의 조건 구조는 루프 제어 변수 i의 값에 따라 달라질 수 있고, 루프 제어 변수는 첫 번째 발생에 대해 m 으로 설정되고, 두 번째 발생 이후에 대해 하나씩 증가된다.
for(i=m; i<n; i++){
data_item
...
}
특정 신택스 요소 또는 복원 매개변수로부터 다른 신택스 테이블로 값을 전달하기 위해 함수와 같은 구조가 또한 사용된다. 아래와 같은 예에 도시된 것처럼, 신택스 부분은 C와 같은 신택스를 이용하는 함수로서 정의된다:
테이블 1
datatype Function(datatype parameter_name){ | 비트의 수 |
if(parameter_name==...){ | |
OtherFunction(parameter_name) | |
}else if..... | |
..... | |
}else{ | |
..... | |
} | |
Return return_value | |
} |
이러한 신택스 테이블은 "함수(Function)"라고 불리는 신택스 부분을 기술하며, 이 신택스 부분은 "datatype"의 유형인 매개변수 "parameter_name"을 수용한다. 매개변수 "parameter_name"는 구문 부분 내에서 사용되며, 또한 다른 구문 부분에, 위의 예에서는 신택스 부분 "OtherFunction"에, 전달될 수 있다.
다음의 신택스 테이블은 도 7에 도시된 복원 프로세스의 또 다른 표현이다.
테이블 2
decodeListOfCoordinates(codec){ | 비트의 수 |
decodeListOfCoordinatesHeader(codec) | |
escape=true | |
while(escape){ | |
escape=decodeNumber(codec,1) | |
if(codec.nbDim='2'&&!escape){ | |
decodeNumber(codec,2) | |
} | |
} | |
} |
테이블 2는 부동소수점 수의 압축 수열의 복원 함수에 대한 이진 신택스 테이블이다. 이 함수는 매개변수 코덱(codec)을 수용하며, 이 코덱은 "nbits", "min", "max" 필드를 포함하는 데이터의 복합 구조이며, 압축값과 수열의 압축된 부동소수점 수의 최소값 및 최대값을 인코딩하는데 사용되는 비트의 수를 정의한다. 이 함수는 처음에 다른 함수 "decodeListOfCoordinatesHeader"를 불러온다. 그런 후, 불(Boolean) 변수 "escape"를 개시하고, 조건 "escape"가 참일 동안 이어지는 명령을 수행하는 "while" 루프에 들어간다. "while" 루프의 첫 번째 명령은 압축 수열 내에서 읽고 복원하는 함수 "decodeNumber"를 불러오는 것이다. 이 함수는 두 개의 입력 매개변수 "codec"과 정수를 수용하고, 변수 "escape"로 저장되어 있는 불(Boolean) 변수를 복귀시킨다. "while" 루프의 다음 명령은 수열의 압축값이 이차원 공간 내의 점들의 좌표를 나타내고 있는지 여부를 시험하는 것이다. 점들의 차원(dimensions)의 수가 복합 변수 "codec"의 필드 "nbDim"에 저장되어 있다. 다음 명령은 압축값이 점들의 좌표인 경우에 함수 "decodeNumber"를 요청한다.
아래의 테이블 3은 함수 "decodeListOfCoordinatesHeader"의 이진 신택스 테이블이다:
테이블 3
boolean decodeListOfCoordinatesHeader(codec){ | 비트의 수 |
codec.relative | 1 |
if(codec.relative='1'){ | |
startPoint='1' | |
if(codec.contextual){ | |
StartPoint | 1 |
} | |
if(startPoint==1){ | |
codec.v(1)=decode(codec.quantizerUsed) | |
if(codec.nbDim='2'){ | |
codec.v(2)= decode(codec.quantizerUsed) | |
} | |
} | |
NewDynamic=1 | 1 |
if(codec.contextual){ | |
NewDynamic | |
} | |
if(NewDynamic=='1'){ | |
codec.dynamic | 5 |
} | |
} | |
return startPoint | |
} |
함수 "decodeListOfCoordinatesHeadre"의 첫 번째 명령은 압축 수열 내에서 1 비트의 길이를 갖는 압축 매개변수(RL)를 읽고, 변수 "codec"의 필드 "relative"에 저장한다. 다음 명령은 매개변수(RL)의 값을 시험한다. 이 매개변수가 1과 동일하면, 변수 "startPoint"는 1로 설정된다. 다음 명령은 변수 "codec"의 필드 "contextual"의 값을 시험한다. 필드 "contextual"이 참으로 설정되면, 1 비트로 코딩된 압축 매개변수(SP)는 압축 수열에서 읽혀지고 변수 "startPoint"로 저장된다. 변수 "startPoint"가 1이면, 수열의 첫 번째 압축 부동소수점 값을 읽기 위해 함수 "decode"를 불러온다. 이 함수는 입력 매개변수로서 "codec.quantizerUsed"를 수용하며, 이는 복합 변수 "codec"의 필드이고 양자화 단계(qstep)을 포함한다. 함수 "decode"는 압축 수열 내에서 다음값을 읽고 복원하며 복합 변수 "codec"의 필드 "v(10)"에 저장된 복원된 값을 복귀시킨다. 만일 압축값이 평면(차원의 수 "codec.nbDim"=2) 내의 점들의 좌표를 나타내면, 함수 "decode"는 다시 압축 수열의 첫 번째 점의 Y-좌표를 읽고 복원하도록 요청된다. 이에 따른 복원된 값은 복합 변수 "codec"의 필드 "v(2)"에 저장된다. 그리고 나서, 변수 "newDynamic"은 1로 초기화된다. 다음 명령은 변수 "codec"의 필드 "contextual"의 값을 시험한다. 필드 "contextual"가 참으로 설정되면, 1 비트에서 코딩된 압축 매개변수(ND)가 압축 수열(CS)에서 읽혀지고 변수 "newDynamic"에 저장된다. 그런 후, "newDynamic"의 값이 1과 비교되고, 만일 1이라면, 압축 매개변수(DYN)의 5 비트가 압축 수열 내에서 읽혀지고 복합 변수 "codec"의 필드 "dynamic"에 저장된다. 함수 "decodeListOfCoordinatesHeader"의 마지막 명령은 변수 "startpoint"의 값이 함수의 출력이라는 것을 말해준다.
아래의 테이블 4는 함수 "decodeNumber"의 이진 신택스 테이블이다:
테이블 4
decodeNumber(codec,index){ | 비트의 수 |
if(!codec.relative){ | |
num=decode(codec.quantizerUsed) | |
if(num==codec.quantizerUsed.escapeCode){ | |
return false | |
} | |
codec.v(index)=num | |
}else{ | |
escape=readOffset(codec.dynamic,offset) | |
if(escape) | |
return false | |
codec.v(index)+=offset*codec.quantizerUsed.step | |
} | |
} |
함수(decodeNumber)는 입력 매개변수로서 복합 변수 "codec"와 "index"라는 변수를 수신한다. 이 함수의 첫 번째 명령은 필드 "codec.relative"에 저장된 압축 매개변수(RL)의 값을 시험한다. 압축 매개변수가 압축이 상대적으로 수행되지 않는다는 것을 나타내면, 함수 "decode"가 수열(CS) 내의 다음 값을 읽고 복원하도록 요청된다. 복원된 값은 변수 "num"에 저장되고, 그 후 이 변수는 변수 "codec"의 필드 "codec.quantizerUsed.escapeCode"에 저장된 이스케이프 코드와 비교된다. 이 이스케이프 코드는 압축 수열의 끝을 표시하는 코드(ESC)이다. 압축 수열에서 읽혀진 값이 이스케이프 코드(ESC)인 경우, 함수 "decodeNumber"는 끝나고, 거짓으로 설정된 불(Boolean)로 돌아간다. 다음 명령은 마지막 복원값을 변수 "codec"의 필드 "v(index)"에 저장한다. 다음 명령은 압축이 상대적으로 수행되었을 때 실행된다. 첫 번째 명령은 변수 "codec"와 변수 "offset"의 필드 "dynamic"을 매개변수로서 수용하는 함수 "readOffset"을 불러온다. 함수 "readOffset"는 수열의 끝에 도달하였는지의 여부를 나타내는 불(Boolean)을 복귀시킨다. 함수 "readOffset"에 의해 읽혀진 값은 변수 "offset"에서 복귀된다. 다음 명령에서, 변수 "offset"의 값은 변수 "codec"의 필드 "quantizerUsed.step"에 저장되고 변수 "codec.v(index)"에 부가된 양자화 단계(qstep)가 곱해진다.
아래의 테이블 5는 함수 "readOffset"의 이진 신택스 테이블이다.
테이블 5
boolean readOffset(dynamicity,value){ | 비트의 수 |
negative | 1 |
value | dynamicity (변동) |
if(negative==1){ | |
value=-value | |
} | |
if(value==0 && negative==1){ | |
return true | |
}else{ | |
return false | |
} | |
} |
이 함수는, 압축 수열(CS)에서 읽혀질 비트의 수를 나타내는 변수 "dynamicity"와 읽기 값이 저장되어야 하는 변수 포인터 "value"를, 입력 매개변수로서 수용한다. 이 함수는 불(Boolean) 값을 복귀시킨다. 이 함수의 첫 번째 명령은 압축 수열(CS) 내에서 읽혀지는 값이 음의 값인지의 여부를 나타내는 비트를 읽고, 이 비트는 변수 "negative"에 저장된다. 그 후, 이 함수는 수열(CS) 내에서 압축된 값을 나타내는 "dynamicity"에 해당하는 다수의 비트를 읽고, 이 읽혀진 값은 변수 "value"에 저장된다. 비트 "negative"는 시험되고, 음의 값을 나타내면, 변수 "value"는 음의 수로 설정된다. 함수의 다음 명령은 읽혀진 값이 수열(CS)에 도달하였는지 여부를 나타내는 이스케이프 코드("0"으로 코딩됨)인지 여부를 시험하며, 이 정보는 함수에 의해 불(Boolean)로서 복귀된다.
아래의 테이블 6은 함수 "decode"의 이진 신택스 테이블이다.
테이블 6
float decode(quantizer){ | 비트의 수 |
q | nbits |
v=quantizer.min+(q+0.5)*quantizer.step | |
return v | |
} |
이 함수는 입력 매개변수로서 수열의 부동소수점 값을 압축하기 위해 사용되 는 양자화 단계 "qstep"와 최소값 "min"을 포함하는 복합 변수 "quantizer"를 수용한다. 이 함수는 식(3)을 적용하며, 부동소수점 포맷으로 복원 결과를 복귀시킨다.
아래의 테이블 7은 점들 사이에서 직선 또는 곡선을 나타내는 명령과 혼합된 점들의 좌표를 나타내는 부동소수점 수의 압축된 수열을 복원하기 위한 함수 "decodePath"의 이진 신택스 테이블이다.
테이블 7
decodePath(){ | 비트의 수 |
escape=false | |
firstCoordinate=true | |
while(!escape){ | |
explicitCommand | 1 |
if(explicitCommand==1) | |
uppercase | 1 |
command | 4 |
} | |
for(int i=0;i<(command.nbFollow);i++){ | |
if(firstCoordinate){ | |
startPoint=decodeListOfCoordinatesHeader(spatialgrid) | |
if(startPoint=='0'){ | |
decodeNumber(spatialgrid,1) | |
decodeNumber(spatialgrid,2) | |
} | |
firstCoordinate=false | |
}else{ | |
decodeNumber(spatialgrid,1) | |
decodeNumber(spatialgrid,2) | |
} | |
} | |
if(command=='1001'){ | |
escape=true | |
} | |
} | |
} |
이 함수의 첫 번째 명령은 변수 "escape"를 거짓으로 설정하고 변수 "firstCoordinate"를 참으로 설정한다. 그런 후 이 함수는 변수 "escape"의 값을 출력 조건으로 갖는 while 루프를 포함한다. 루프의 첫 번째 명령은 압축 수열 내에서 1 비트에서 코딩된 압축 매개변수(EC)(도 6 참고)를 읽고, 이는 변수 "explicitCommand"에 저장되어 있다. 그리고 나서 변수 "explicitCommand"의 값이 시험된다. 만일 이 변수가 1과 동일하다면, 1 비트에서 코딩된 압축 매개변수 UP와 4 비트에서 코딩된 변수 CMD는 압축 수열에서 읽혀지고 변수 "uppercase"와 "command"로 저장된다. 이어지는 명령어는 for 루프에 대응한다. 이 루프는 테이블 내에서 정의된 매개변수 "command.nbFollow"에 의해 정의된 만큼 여러번 반복된다. 실제로, "command.nbFollow"는 명령 "command" 이후의 점들의 수를 나타낸다. for 루프의 첫 번째 명령은 변수 "firstCoordinate"를 시험한다. 만일 "firstCoordinate"가 참이면, 함수 "decodeListOfCoordinatesheader"를 부르게 되고 정수 "startPoint"를 복귀시킨다. 다음 명령은 "startPoint"의 값을 시험한다. 이러한 값이 0이면, 두 개의 다음 명령은 함수 "decodeNumber"를 불러서 첫 번째 점의 좌표를 읽고 복원한다. 그 후 변수 "firstCoordinate"는 거짓으로 설정된다. 만일 함수 "decodeListOfCoordinatesHeader"를 부른 후에 "firstCoordinate"가 거진이면, 함수 "decodeNumber"를 두 번 부름으로써 다음 점의 좌표가 읽혀지고 복원된다. for 루프의 끝 이후에, 명령 "command"의 값은 이스케이프 코드와 비교된다. 만일 "command"가 이스케이프 코드와 동일하면, while 루프를 종결시키기 위해 변수 "escape"는 참으로 설정된다. 즉, 함수 "decodePath"는 압축 수열에서 명령이 이스케이프 코드와 동일할 때까지 명령에 의존하는 다수의 점 좌표와 명령을 읽는다.
부동소수점 수의 수열과 명령의 복원 프로세스는 또한 아래와 같은 신택스에 의해 정의될 수 있다:
class codec_path{
codec_pointSequence()seq;
uivlc5()nbOfTypes;
for(int i=0;i<nbOfTypes;i++){
unit(5)type[i];
}
}
class codec_pointSequence{
vlc5int nbPoints;
uint(1) flag;
if(flag==0){
if(nbPoints<3){
uint(5) bits;
for(int i=0;i<nbPoints;i++){
uint(bits)x[i];
uint(bits)y[i];
}
}else{
uint(5) bits;
uint(bits) x[0];
uint(bits) y[0];
uint(5) bitsx;
uint(5) bitsy;
for(int i=1;i<nbPoints;i++){
uint(bitsx) dx;
uint(bitsy) dy;
x[i]=dx+x[i-1];
y[i]=dy+y[i-1];
}
}
}
}
이 신택스는 두 개의 함수 "codec_path"와 "codec_pointSequence"를 정의한다. 함수 codec_path는 우선 함수 "codec_pointSequence"를 부른다. 그런 후 압축 수열에서 5 비트의 정수를 읽는다. 다음 명령은 "bnOfTypes"가 반복되는 루프를 도입한다. for 루프는 압축 수열 내에서 서명되지 않은 5 비트의 정수를 읽고 테이블 "type"에서 읽혀진 값을 저장하는 명령을 포함한다. 즉, 함수 "codec_path"는 함수 codec_pointSequence를 부르고, 수 "nbOfTypes"를 읽고, 테이블 "type"에서 "nbOfTypes" 수들을 로딩한다.
함수 "codec_pointSequence"는 우선 압축 수열에서 각각 5 비트와 1 비트를 갖는 변수 "nbPoints"와 "flag"의 정수값을 읽는다. 변수 "flag"가 0이 아니면, 함수 "codec_pointSequence"는 아무런 작동을 하지 않는다. 그렇지 않으면, 변수 "nbPoints"의 값은 3과 비교된다. "nbPoints"가 3 보다 작으면, 5 비트의 정수가 압축 수열에서 읽혀지고 변수 "bits"에 저장된다. 다음 명령은 압축 수열에서 "nbPoints"와 동일한 다수의 점들의 좌표 x와 y를 읽기 위한 그리고 테이블 "x"와 "y"에서 읽은 값을 로딩하기 위한 루프이다. 압축 수열 내의 각각의 좌표는 "bits"와 동일한 다수의 비트를 갖는 정수이다. 만일 "nbPoints"가 3 보다 크거나 같으면, 5 비트의 정수가 읽혀지고 변수 "bits" 내에 저장된다. 그 후, 첫 번째 점의 x-좌표와 y-좌표가 압축 수열 내에서 읽혀지고 테이블 "x"와 "y"에 저장된다. 그 후, 5 비트를 갖는 두 개의 정수가 압축 수열 내에서 읽혀지고 변수 "bitsx" 및 "bitsy" 내에 저장된다. 다음 명령은 압축 수열 내의 변수 "dx"와 "dy"의 "nbPoints" 정수값을 읽는 for 루프를 도입하며, 이러한 변수들은 각각 "bitsx"와 "bitsy" 비트를 갖는다. 사실, "dx"와 "dy"는 점들의 상대적인 좌표를 나타낸다. for 루프의 다음 명령은 점 좌표의 절대값을 계산하고 이러한 값들을 테이블 "x"와 "y"에 저장한다.
실제로, 함수 "codec_pointSequence"는 수열 내의 점의 수가 3 이하라면 점들의 좌표가 절대적으로 압축되는 것으로 추정한다. 그렇지 않으면, 이러한 좌표들은 상대적으로 압축된다. 또한, 수열 내의 점들의 수는 이스케이프 코드를 사용하는 대신 압축 수열에 쓰여진다. 압축이 상대적으로 수행될 때, 비트 "bitsx"와 "bitsy"의 상이한 수는 각각의 x좌표와 y좌표에 대한 압축 수열 내에 저장된다. 그 러면 테이블 "x"와 "y"에 저장된 점 좌표의 압축값은 식(3)을 이용하여 복원된다.
본 발명에 따른 압축 방법의 효율에 대한 시험은 압축 결과의 크기가 최초 문서의 크기의 4% 이하가 될 수 있다는 것을 보여주었고, 이러한 비율은 Zlib와 같은 종래의 압축 알고리즘이 사용될 때의 21%보다 더 크다.
위에서 기술한 예에 비추어 볼 때, 본 발명에 따른 방법이 다양하게 변형될 수 있다는 것이 당업자에게 자명할 것이다. 이와 관련하여, 다른 양자화 계산이 적용될 수 있고, 양자화 단계와 압축값을 계산하는데에 다른 식들이 사용될 수 있다.
Claims (36)
- 부동소수점 수의 수열을 압축하기 위한 압축방법으로서,상기 수열의 부동소수점 수의 최대값과 최소값을 측정하는 단계;상기 최소값과 최대값의 함수로서 양자화 단계의 값을 측정하는 단계;상기 최소값과 최대값 사이에서 선형 양자화를 부동소수점 수에 적용하고 상기 양자화 단계의 값을 이용함으로써 상기 수열의 각각의 부동소수점 수를 압축하는 단계; 및,상기 압축하는 단계로부터 나오는 각각의 압축값을 이진 수열에 삽입하는 단계;를 포함하는 압축방법.
- 제3항에 있어서,상기 압축값 각각의 비트수는 상기 부동소수점 수의 최대 정확도의 함수로서 측정되는 것을 특징으로 하는 압축방법.
- 제3항에 있어서,상기 수열의 부동소수점은 디지털 그래픽 이미지의 점들의 좌표이고, 상기 압축값 각각의 비트수는 디지털 그래픽 이미지가 표시되도록 되어 있는 디스플레이 해상도의 함수로서 측정되는 것을 특징으로 하는 압축방법.
- 제1항 내지 제5항 중 어느 한 항에 있어서,상대적인 수가 이어지는 상기 수열의 첫 번째 부동소수점 수를 포함하는 새로운 수열로 상기 수열을 대체하는 초기 단계를 포함하고, 각각의 상대적인 수는 상기 수열 내의 현재의 부동소수점 수와 이전의 부동소수점 수의 차이로부터 기인하고, 각각의 상대적인 수는 상기 첫 번째 부동소수점 수의 압축값의 비트 수보다 적은 수의 비트를 갖는 압축된 상대값을 얻기 위해 상기 양자화 단계를 이용하여 압축되는 것을 특징으로 하는 압축방법.
- 제6항에 있어서,상기 압축된 상대적인 수의 각각의 비트 수는 상기 상대적인 수의 최대값을 이용하여 측정되는 것을 특징으로 하는 압축방법.
- 제1항 내지 제7항 중 어느 한 항에 있어서,상기 수열의 부동소수점 수는 점들의 좌표이고, 각각의 좌표는 적어도 두 개의 부동소수점 수를 포함하고, 각각의 부동소수점 수는 개별적인 좌표 줄을 갖고, 상기 압축방법은 각 좌표 줄의 부동소수점 수에 각각 적용되는 것을 특징으로 하는 압축방법.
- 제1항 내지 제8항 중 어느 한 항에 있어서,상기 부동수소점 수의 수열은 SVG 문서에 속하는 것을 특징으로 하는 압축방법.
- 부동소수점 수의 압축된 디지털값의 이진 수열을 복원하기 위한 복원방법으로서, 상기 부동소수점 수는 최소값과 최대값 사이에 있고,이진 수열에서 적어도 하나의 디지털값의 비트 수와 양자화 단계의 값을 측 정하는 단계;상기 비트 수를 이용하여 각각의 압축된 부동소수점 수의 디지털 값을 연속적으로 읽는 단계; 및,읽혀진 각각의 디지털 값의 부동소수점 수의 복원된 값을 얻기 위해, 상기 양자화 단계의 값과 상기 최대값 또는 최소값을 이용하여 읽혀진 각각의 디지털 값을 복원하는 단계;를 포함하는, 복원방법.
- 제10항에 있어서,상기 복원하는 단계는 읽혀진 각각의 디지털 값 q에,식 v = min + qstep·(q+0.5)를 적용하는 것을 포함하고,상기 식에서 v는 부동소수점 수의 복원된 값이고, min은 상기 부동소수점 수의 최소값이고, qstep은 상기 양자화 단계인 것을 특징으로 하는 복원방법.
- 제12항에 있어서,상기 비트 수와 상기 최소값과 상기 최대값은 상기 이진 수열의 헤더에서 제공되는 양자화 그리드 식별자로부터 측정되는 것을 특징으로 하는 복원방법.
- 제12항에 있어서,상기 비트 수와 상기 최소값과 상기 최대값은 상기 이진 수열의 헤더에서 제공되는 것을 특징으로 하는 복원방법.
- 제10항 내지 제14항 중 어느 한 항에 있어서,상기 이진 수열 내의 첫 번째 디지털 값은 상기 비트 수를 갖고, 상기 이진 수열 내의 다른 디지털 값은 상기 비트 수보다 적은 상대적인 비트 수를 갖고,각각의 부동소수점 수의 값은:현재의 복원된 값을 얻기 위해 상기 이진 수열 내의 현재 디지털 값을 복원하는 것과, 이전의 복원된 값에 현재의 복원된 값을 더하는 것에 의해 측정되고,첫 번째 부동소수점 수의 값은 상기 이진 수열 내의 상기 첫 번째 디지털 값을 복원함으로써 나오는 것을 특징으로 하는 복원방법.
- 제14항에 있어서,상기 상대적인 비트 수는 상기 이진 수열의 헤더 내에서 읽혀지는 것을 특징 으로 하는 복원방법.
- 제10항 내지 제16항 중 어느 한 항에 있어서,상기 수열의 부동소수점 수는 점들의 좌표이고, 각각의 좌표는 개별적인 좌표 줄을 갖고 있는 적어도 두 개의 부동소수점을 포함하고, 상기 복원방법은 각각의 좌표 줄의 부동소수점 수에 개별적으로 가해지는 것을 특징으로 하는 복원방법.
- 제10항 내지 제17항 중 어느 한 항에 있어서,부동소수점 수의 상기 수열은 SVG 문서에 속하는 것을 특징으로 하는 복원방법.
- 부동소수점 수의 수열을 압축하기 위한 압축장치로서,상기 수열의 부동소수점 수의 최대값과 최소값을 측정하는 수단;상기 최소값과 최대값의 함수로서 양자화 단계의 값을 측정하는 수단;상기 최소값과 최대값 사이에서 선형 양자화를 부동소수점 수에 적용하고 상기 양자화 단계의 값을 이용함으로써 상기 수열의 각각의 부동소수점 수를 압축하는 수단; 및,상기 압축하는 수단으로부터 생성되는 각각의 압축값을 이진 수열에 삽입하는 수단;을 포함하는, 압축장치.
- 제21항에 있어서,상기 압축값 각각의 비트수는 상기 부동소수점 수의 최대 정확도의 함수로서 측정되는 것을 특징으로 하는 압축장치.
- 제21항에 있어서,상기 수열의 부동소수점 수는 디지털 그래픽 이미지의 점들의 좌표이고, 상기 압축값 각각의 비트수는 디지털 그래픽 이미지가 표시되도록 되어 있는 디스플레이 해상도의 함수로서 측정되는 것을 특징으로 하는 압축장치.
- 제19항 내지 제23항 중 어느 한 항에 있어서,상대적인 수가 이어지는 상기 수열의 첫 번째 부동소수점 수를 포함하는 새로운 수열로 상기 수열을 대체하는 수단을 포함하고, 각각의 상대적인 수는 상기 수열 내의 현재의 부동소수점 수와 이전의 부동소수점 수의 차이로부터 기인하고,상기 압축 수단은 상기 첫 번째 부동소수점 수의 압축값의 비트 수보다 적은 비트 수를 갖는 압축된 상대값을 얻기 위해 상기 양자화 단계를 이용하여 각각의 상대적인 수를 압축하는 것을 특징으로 하는 압축장치.
- 제24항에 있어서,상기 압축된 상대적인 수의 각각의 비트 수는 상기 상대적인 수의 최대값을 이용하여 측정되는 것을 특징으로 하는 압축장치.
- 제19항 내지 제25항 중 어느 한 항에 있어서,상기 수열의 부동소수점 수는 점들의 좌표이고, 각각의 좌표는 적어도 두 개의 부동소수점 수를 포함하고, 각각의 부동소수점 수는 개별적인 좌표 줄을 갖고, 상기 압축은 각 좌표 줄의 부동소수점 수에 각각 적용되는 것을 특징으로 하는 압 축장치.
- 제19항 내지 제26항 중 어느 한 항에 있어서,상기 부동수소점 수의 수열은 SVG 문서에 속하는 것을 특징으로 하는 압축장치.
- 부동소수점 수의 압축된 디지털값의 이진 수열을 복원하기 위한 복원장치로서, 상기 부동소수점 수는 최소값과 최대값 사이에 있고,이진 수열에서 적어도 하나의 디지털값의 비트 수와 양자화 단계의 값을 측정하는 수단;상기 비트 수를 이용하여 각각의 압축된 부동소수점 수의 디지털 값을 연속적으로 읽는 수단; 및,읽혀진 각각의 디지털 값의 부동소수점 수의 복원된 값을 얻기 위해, 상기 양자화 단계의 값과 상기 최대값 또는 최소값을 이용하여 읽혀진 각각의 디지털 값을 복원하는 수단;을 포함하는 복원장치.
- 제28항에 있어서,상기 복원하는 수단은 읽혀진 각각의 디지털 값 q에,식 v = min + qstep·(q+0.5)를 적용하고,상기 식에서 v는 부동소수점 수의 복원된 값이고, min은 상기 부동소수점 수 의 최소값이고, qstep은 상기 양자화 단계인 것을 특징으로 하는 복원장치.
- 제30항에 있어서,상기 이진 수열의 헤더에서 제공되는 양자화 그리드 식별자로부터 상기 비트 수와 상기 최소값과 상기 최대값을 측정하는 수단을 더 포함하는 것을 특징으로 하는 복원장치.
- 제30항에 있어서,상기 비트 수와 상기 최소값과 상기 최대값은 상기 이진 수열의 헤더에서 제공되는 것을 특징으로 하는 복원장치.
- 제28항 내지 제32항 중 어느 한 항에 있어서,상기 이진 수열 내의 첫 번째 디지털 값은 상기 비트 수를 갖고, 상기 이진 수열 내의 다른 디지털 값은 상기 비트 수보다 적은 상대적인 비트 수를 갖고,상기 복원 수단은:현재의 복원된 값을 얻기 위해 상기 이진 수열 내의 현재 디지털 값을 복원하는 것과, 이전의 복원된 값에 현재의 복원된 값을 더하는 것에 의해, 각각의 부동소수점 수의 값을 측정하고,첫 번째 부동소수점 수의 값은 상기 이진 수열 내의 상기 첫 번째 디지털 값을 복원함으로써 나오는 것을 특징으로 하는 복원장치.
- 제32항에 있어서,상기 이진 수열의 헤더 내에서 상기 상대적인 비트 수를 읽는 수단을 더 포함하는 것을 특징으로 하는 복원장치.
- 제28항 내지 제34항 중 어느 한 항에 있어서,상기 수열의 부동소수점 수는 점들의 좌표이고, 각각의 좌표는 개별적인 좌표 줄을 갖고 있는 적어도 두 개의 부동소수점을 포함하고, 상기 복원은 각각의 좌표 줄의 부동소수점 수에 개별적으로 가해지는 것을 특징으로 하는 복원장치.
- 제28항 내지 제35항 중 어느 한 항에 있어서,부동소수점 수의 상기 수열은 SVG 문서에 속하는 것을 특징으로 하는 복원장치.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US60889804P | 2004-09-13 | 2004-09-13 | |
US60/608898 | 2004-09-13 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20070083652A true KR20070083652A (ko) | 2007-08-24 |
Family
ID=35562216
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020077008187A KR20070083652A (ko) | 2004-09-13 | 2005-09-13 | 부동소수점 수의 수열의 압축 및 복원 방법 |
Country Status (7)
Country | Link |
---|---|
US (1) | US20070208792A1 (ko) |
EP (1) | EP1790080A2 (ko) |
JP (1) | JP2008512917A (ko) |
KR (1) | KR20070083652A (ko) |
CN (1) | CN101019325A (ko) |
CA (1) | CA2580146A1 (ko) |
WO (1) | WO2006030288A2 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11436011B2 (en) | 2020-02-18 | 2022-09-06 | Samsung Electronics Co., Ltd. | Processing method and processing device with matrix multiplication computation |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9070178B2 (en) | 2006-08-11 | 2015-06-30 | Siemens Product Lifecycle Management Software Inc. | Method and system for organizing topology elements for better compression |
EP2050078A2 (en) * | 2006-08-11 | 2009-04-22 | Siemens Product Lifecycle Management Software Inc. | Method and system for organizing topology elements for better compression |
US8156088B2 (en) * | 2007-09-20 | 2012-04-10 | Canon Kabushiki Kaisha | Document encoding apparatus, document encoding method, and computer-readable storage medium |
EP2264904B9 (en) * | 2009-06-16 | 2013-08-21 | Canon Kabushiki Kaisha | Methods and device of binary coding and decoding for structured document comprising a plurality of data |
EP2278550B1 (en) * | 2009-06-17 | 2013-08-14 | Canon Kabushiki Kaisha | Method of encoding and decoding a graphics path sequence into a layered scheme |
CN101795138B (zh) * | 2010-01-19 | 2013-01-16 | 北京四方继保自动化股份有限公司 | 电力系统广域测量系统高密度时间序列数据的压缩处理方法 |
SG189549A1 (en) * | 2010-11-02 | 2013-06-28 | I Ces Innovative Compression Engineering Solutions | Method for compressing digital values of image, audio and/or video files |
US8959129B2 (en) | 2011-06-30 | 2015-02-17 | Altera Corporation | Compression of floating-point data |
EP2798480B1 (en) * | 2011-12-30 | 2018-09-26 | Intel Corporation | Vector frequency compress instruction |
US9104473B2 (en) | 2012-03-30 | 2015-08-11 | Altera Corporation | Conversion and compression of floating-point and integer data |
CN103853855A (zh) * | 2012-11-29 | 2014-06-11 | 北京华大九天软件有限公司 | 一种电路仿真模拟同步波形压缩格式 |
CN103729864A (zh) * | 2013-12-18 | 2014-04-16 | 珠海金山网络游戏科技有限公司 | 一种三维模型的压缩存储方法及系统 |
US9450602B2 (en) | 2014-01-02 | 2016-09-20 | Sap Se | Efficiently query compressed time-series data in a database |
CN105680868B (zh) | 2014-11-17 | 2019-04-12 | 华为技术有限公司 | 压缩流数据的方法及设备 |
CN108628807B (zh) * | 2017-03-20 | 2022-11-25 | 北京百度网讯科技有限公司 | 浮点数矩阵的处理方法、装置、设备及计算机可读存储介质 |
CN110771045B (zh) * | 2017-06-22 | 2024-03-29 | 日本电信电话株式会社 | 编码装置、解码装置、编码方法、解码方法、以及记录介质 |
TWI785546B (zh) | 2021-03-23 | 2022-12-01 | 創鑫智慧股份有限公司 | 浮點數的編碼與解碼的方法與裝置 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA1251555A (en) * | 1984-12-19 | 1989-03-21 | Tetsujiro Kondo | High efficiency technique for coding a digital video signal |
JPH0474063A (ja) * | 1990-07-13 | 1992-03-09 | Matsushita Electric Ind Co Ltd | 画像の符号化方法 |
JP3687080B2 (ja) * | 1996-07-17 | 2005-08-24 | ソニー株式会社 | 画像符号化装置および画像符号化方法、画像復号化装置および画像復号化方法、並びに記録媒体 |
US6262737B1 (en) * | 1998-01-30 | 2001-07-17 | University Of Southern California | 3D mesh compression and coding |
US6253222B1 (en) * | 1998-10-31 | 2001-06-26 | Hewlett-Packard Company | Compression of limited range floating point numbers |
US6154761A (en) * | 1999-02-12 | 2000-11-28 | Sony Corporation | Classified adaptive multiple processing system |
US6396420B1 (en) * | 1999-02-26 | 2002-05-28 | Autodesk, Inc. | Delta compression of floating point coordinate data |
JP4508490B2 (ja) * | 2000-09-11 | 2010-07-21 | パナソニック株式会社 | 符号化装置および復号化装置 |
US7432925B2 (en) * | 2003-11-21 | 2008-10-07 | International Business Machines Corporation | Techniques for representing 3D scenes using fixed point data |
-
2005
- 2005-09-13 CN CNA2005800305189A patent/CN101019325A/zh active Pending
- 2005-09-13 JP JP2007530792A patent/JP2008512917A/ja active Pending
- 2005-09-13 WO PCT/IB2005/002723 patent/WO2006030288A2/en active Application Filing
- 2005-09-13 EP EP05783375A patent/EP1790080A2/en not_active Withdrawn
- 2005-09-13 CA CA002580146A patent/CA2580146A1/en not_active Abandoned
- 2005-09-13 KR KR1020077008187A patent/KR20070083652A/ko not_active Application Discontinuation
-
2007
- 2007-03-13 US US11/685,467 patent/US20070208792A1/en not_active Abandoned
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11436011B2 (en) | 2020-02-18 | 2022-09-06 | Samsung Electronics Co., Ltd. | Processing method and processing device with matrix multiplication computation |
Also Published As
Publication number | Publication date |
---|---|
JP2008512917A (ja) | 2008-04-24 |
CA2580146A1 (en) | 2006-03-23 |
CN101019325A (zh) | 2007-08-15 |
US20070208792A1 (en) | 2007-09-06 |
WO2006030288A2 (en) | 2006-03-23 |
WO2006030288A3 (en) | 2006-07-06 |
EP1790080A2 (en) | 2007-05-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20070083652A (ko) | 부동소수점 수의 수열의 압축 및 복원 방법 | |
CN102016829B (zh) | 计算逆向离散余弦变换期间的误差减少 | |
CN1146246C (zh) | 一种输出固定长度块数据的压缩系统 | |
US7079698B2 (en) | Image coding and decoding apparatus, method of image coding and decoding, and recording medium for recording program for image coding and decoding | |
US7298914B2 (en) | Image processing device, method and recording medium for compressing image data using repeatability of data patterns | |
US20040196905A1 (en) | Apparatus and method of parallel processing an MPEG-4 data stream | |
KR20080049019A (ko) | 구조 문서를 압축하고 해제하는 방법 및 장치 | |
CN109600618A (zh) | 视频压缩方法、解压缩方法、装置、终端和介质 | |
KR20020026243A (ko) | 동작 보정 블록에 기반한 압축 디지털 비디오의 다변 복합디코딩에 관한 방법 및 장치 | |
CN101546434A (zh) | 一种bmp图片文件的压缩、解压缩方法及系统 | |
JP4189443B2 (ja) | グラフィックス画像の圧縮及び逆圧縮方法 | |
US6721455B1 (en) | Method and apparatus for icon compression and decompression | |
CN110493242B (zh) | 基于WGAN-GP和U-net改进的图像增强的方法、装置及存储介质 | |
KR20030059402A (ko) | 에지 검출 방법과 장치 | |
US6850566B2 (en) | Implementation of quantization for SIMD architecture | |
US6526178B1 (en) | Picture mapping apparatus and picture mapping method, and picture generation apparatus and picture generation method | |
CN115459780A (zh) | 数据压缩的方法、数据解压缩的方法和相关设备 | |
KR100612829B1 (ko) | 그래픽 애니메이션 데이터의 키 부호화 장치와 그 방법 | |
US6279062B1 (en) | System for reducing data transmission between coprocessors in a video compression/decompression environment by determining logical data elements of non-zero value and retrieving subset of the logical data elements | |
CN100499819C (zh) | 一种用于降低多媒体数据编码比特率的方法 | |
US20240187593A1 (en) | Bitmask compression method | |
Tavakoli | Entropy and image compression | |
JPH10336661A (ja) | 画像符号化・復号化装置、画像符号化・復号化方法及び画像符号化・復号化プログラムを記録する記録媒体 | |
JP2724223B2 (ja) | 画像データ復元方式 | |
WO2019191904A1 (zh) | 一种数据处理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WITN | Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid |