KR20120098651A - 신호 데이터의 블록 부동소수점 압축 - Google Patents

신호 데이터의 블록 부동소수점 압축 Download PDF

Info

Publication number
KR20120098651A
KR20120098651A KR1020127010665A KR20127010665A KR20120098651A KR 20120098651 A KR20120098651 A KR 20120098651A KR 1020127010665 A KR1020127010665 A KR 1020127010665A KR 20127010665 A KR20127010665 A KR 20127010665A KR 20120098651 A KR20120098651 A KR 20120098651A
Authority
KR
South Korea
Prior art keywords
exponent
encoding
block
mantissa
values
Prior art date
Application number
KR1020127010665A
Other languages
English (en)
Other versions
KR101703208B1 (ko
Inventor
알버트 더블유. 베게너
Original Assignee
샘플리파이 시스템즈 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 샘플리파이 시스템즈 인코포레이티드 filed Critical 샘플리파이 시스템즈 인코포레이티드
Publication of KR20120098651A publication Critical patent/KR20120098651A/ko
Application granted granted Critical
Publication of KR101703208B1 publication Critical patent/KR101703208B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion 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/14Conversion to or from non-weighted codes
    • H03M7/24Conversion to or from floating-point codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion 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/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion 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/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/46Conversion 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Nonlinear Science (AREA)
  • General Engineering & Computer Science (AREA)

Abstract

신호 샘플들을 압축하기 위한 본 방법 및 시스템은 블록 부동소수점 표현을 사용하는데, 가수부 당 비트 개수는 해당 그룹 내에서 최대 절대값을 갖는 샘플에 의하여 결정된다. 압축기는, 그룹 당 고정된 수의 샘플들을 구비한, 신호 샘플들의 그룹들을 정의한다. 해당 그룹 내에서 최대 절대값을 갖는 샘플은, 상기 최대 샘플 값을 표현하기 위하여 필요한 비트 개수에 해당되는 지수부 값을 결정한다. 상기 지수부 값들은 인코딩되어 지수부 토큰들을 형성한다. 연속된 지수부 값들 사이의 지수부 차이값들은 개별적으로, 또는 결합되어 인코딩될 수 있다. 해당 그룹 안의 샘플들은 대응되는 가수부 값들로 맵핑되는데, 각각의 가수부들은 상기 지수부 값들에 기반한 비트 개수를 갖는다. 상기 지수부 값에 따라 최하위 비트들을 제거하는 것은 더 적은 수의 비트들을 갖는 가수부를 생성한다. 피드백 제어는 압축된 비트 비율 및/또는 품질 기준을 모니터링한다. 본 요약서는 청구범위의 청구항에서 설명되는 본 발명의 범위를 제한하지 않는다.

Description

신호 데이터의 블록 부동소수점 압축{BLOCK FLOATING POINT COMPRESSION OF SIGNAL DATA}
본 발명은 블록 부동소수점(block floating point) 표현의 효율적인 인코딩(encoding)을 이용한 신호 데이터의 압축(compression) 및 압축해제(decompression)에 관한 것이고, 더욱 자세하게는, 원하는 출력 데이터 비율(output data rate) 또는 원하는 품질 기준(quality metric)을 성취하기 위하여 신호 샘플(signal sample)들을 나타내는 비트(bit)들의 수를 감소시키는 블록 부동소수점 인코딩(block floating point encoding)에 관한 것이다.
신호 데이터의 압축은, 정확한 정보를 유지하면서도 신호 데이터의 양을 감소시키는 것이 바람직한 신호 또는 화상 처리 응용프로그램들에서, 자원(resource)들의 더욱 효율적인 사용을 가능하게 한다. 신호 데이터의 압축은 시스템 내의 메모리 또는 기타 저장 장치의 데이터 저장 용량에 대한 요구조건을 감소시킨다. 신호 데이터의 압축은 시스템에서 데이터 전송 인터페이스를 위한 대역폭 요구조건을 감소시킨다. 압축 및 압축해제를 위한, 연산 측면에서 효율적인 작업들은 해당 시스템의 연산 자원들 및 지연시간에 있어서 부담을 경감시킨다.
신호 처리에서 블록 부동소수점 표현은 한정된 개수의 비트들에 의해서 표현될 수 있는 동적 범위를 증가시키는 장점을 가지고 있다. 블록 부동소수점 표현은 신호 데이터의 정확도를 유지하면서도 넓은 동적 범위를 표현할 수 있게 한다. 통상적인 블록 부동소수점 표현에서, 일정 샘플들의 그룹을 위한 하나의 공통 지수부(exponent)가, 해당 그룹 안에서 가장 큰 절대값(magnitude)을 갖는 샘플에 근거하여 결정된다. 상기 그룹 안의 샘플 각각을 위한 가수부(mantissa)는, 상기 가장 큰 샘플의 가수부가 필요로 하는 개수만큼의 비트들에 의하여 표현된다. 상기 그룹을 위한 공통 지수부 및 상기 가수부를 표현하는 비트들은 연속적으로 묶여져서, 상기 그룹을 위한 압축된 샘플들을 표현하게 된다. 블록 부동소수점 표현은, 시간에 따라 진폭(amplitude)이 변화하지만 특정 그룹 내에서 이웃하는 샘플들은 유사한 진폭을 갖는 신호 변화(signal dynamic)의 경우에 유용하다. 여러 가지 신호 타입들이 이러한 변화를 갖는다. 그 예들은, 레이더, 음파, 및 초음파 신호등과 같은, 시간이 지남에 따라 약해지는 펄스 신호 등을 포함한다.
다음 특허들은, 다양한 응용프로그램들을 위한, 블록 부동소수점 데이터 표현을 이용한 압축을 설명하고 있다.
1998년 5월 12일 발행되고 "Waveform Data Compression Apparatus and Waveform Data Expansion Apparatus"라는 제목을 가진 Katsumata(Katsumata et al.)의 미국 특허 제5,751,771호는 블록 부동소수점 표현을 이용한 샘플링된 신호의 블록별(block by block) 압축을 설명하고 있다. 신호 샘플들의 블록 각각에 대하여, 인접하지 않은 샘플들의 일정 패턴의 쌍들 사이에서 많은 산술 평균(arithmetic mean)들이 계산된다. 샘플들 한 쌍의 상기 산술 평균은 상기 샘플들 쌍 사이의 중간 위치에서의 중간 샘플의 추정치를 의미한다. 상기 블록을 위하여 계산되는 산술 평균들을 위한 샘플들 쌍들 사이의 거리는, 일정 패턴, 즉 해당 블록의 양쪽 끝 샘플들의 쌍, 해당 블록의 끝 샘플과 중간 샘플, 등과 같이 일정 패턴에 따라 감소하게 된다. 상기 산술 평균들은 대응되는 중간 샘플 값들로부터 감산되어, 차이값 샘플들을 형성하게 된다. 상기 차이값 샘플들의 가수부는, 해당 블록 내에서 자신들의 인덱스(index)에 기반한 인코딩을 위하여, 비트 개수들을 할당받게 되는데, 이때 하나의 블록 안에서도 인코딩된 가수부들은 서로 다른 길이를 갖는다. 상기 블록 안의 마지막 샘플의 가수부는 고정된 비트 개수를 사용하여 선형적으로 인코딩된다. 상기 블록을 위한 지수부는, 상위 두 개의 비트들이 "01" 또는 "10"이 되도록 하고 부호 비트도 제거하는, 좌측 쉬프트의 최대 횟수에 기반한 하나의 수식을 사용하여 결정된다. 상기 차이값 샘플들의 가수부 및 마지막 샘플은, 해당 블록의 가수부들에 할당된 비트 개수에 맞추기 위하여, 최하위 비트들(LSBs)이 제거되도록 좌측 쉬프팅 및 반올림된다. 압축된 데이터의 블록은 인코딩된 지수부 및 인코딩된 가수부들을 포함한다. 다른 실시예에서는, 상기 차이값 샘플들의 인코딩 대신에, 상기 마지막 샘플에 추가로 다른 샘플들도 선형적으로 인코딩될 수 있다. 다른 실시예들은, 더 복잡한 패턴의 가수부 길이들과, 동일 블록 내에서의 샘플들에 대한 선형 또는 차이값 인코딩을 포함한다. 이러한 실시예들은, 가수부 길이들의 패턴과 상기 블록 내에서의 샘플 인덱스에 기반한 선형적 또는 차이값 인코딩을 나타내는, 하나의 패턴 코드를 포함한다.
2000년 2월 1일 발행되고 "Coding Method and Apparatus for Multiple Channels of Audio Information Representing Three-Dimensional Sound Fields"라는 제목을 가진, Davis(Davis et al.)의 미국 특허 제6,021,386호는, 오디오 신호들의 변환 계수(transformation coefficient)들의 블록 부동소수점 인코딩을 설명하고 있다. 오디오 신호에 적용된, 이산 퓨리에 변환(DFT: discrete Fourier transformation)과 같은, 이산 변환(discrete transformation)은 변환 계수들을 생성한다. 상기 변환 계수들은 연속된 변환 계수들의 서브밴드(subband), 또는 블록들로 그룹핑된다. 상기 블록을 위한 공통 지수부는 해당 서브밴드 내에서 가장 큰 스펙트럴 성분(spectral component)에 기반하여 결정된다. 하나의 실시예에서는, 블록 부동소수점 표현의 동적 범위를 증가시키기 위하여, 상기 서브밴드들의 그룹들에 마스터 성분(master component)들이 할당된다. 상기 마스터 성분은 상기 서브밴드들의 그룹의 모든 지수부를 위한 최소 지수부 값을 나타내고, 상기 서브밴드 지수부 값은 해당 서브밴드 내의 가장 큰 변환 계수의 지수부 값과 상기 마스터 성분 사이의 차이값을 나타낸다. 양자화기(quantizer)는, 상기 서브밴드 지수값 및 상기 마스터 성분값에 따라, 해당 서브밴드의 가수부들을 좌측 쉬프팅시키고, 해당 서브밴드에 할당된 비트 개수에 따른 일정 비트 길이로 상기 가수부들을 표현할 수 있도록 LSB들을 잘라낸다. 적응식 비트 할당기(adaptive bit allocator)는 각각의 서브밴드에 대한 비트 개수를 결정한다. 바람직한 하나의 실시예에서, 상기 비트 할당은 해당 서브밴드 내의 스펙트럴 성분들의 크기에 기반하여 결정된다.
Christensen은, "Block Floating Point for Radar Data"라는 제목의 논문(IEEE Transactions on Aerospace and Electronic Systems, Vol. 35, No. 1, pp. 308-18, 1999년 1월)에서, SAR (synthetic aperture radar) 데이터의 블록 부동소수점 표현을 설명하고 있다. 상기 논문은 블록 부동소수점 표현의 성능에 대한 이론적 분석을 신호대잡음비(SNR: signal to noise ratio) 대 블록 크기, 양자화 단계 크기, 및 블록 지수부의 표현을 위한 비트 개수와 같은 인코딩 파라미터들의 관점에서 제시하고 있다. 블록 당 고정된 비트 개수를 이용한, SAR 데이터에 대한 블록 부동소수점의 SNR 성능도 또한 제시되어 있다.
Huneycutt은, "Spaceborne Image Radar - C Instrument"라는 제목의 논문(IEEE Transactions on Geoscience and Remote Sensing, Vol. 27, No 2, pp. 164-9, 1989년 3월)에서, 화상처리 레이더 데이터의 블록 부동소수점 표현을 설명하고 있다. 상기 시스템은, 샘플 당 네 개의 최상위 비트들과 그에 이어지는 해당 샘플들 블록의 공통 지수부를 이용하여 8 비트 데이터 샘플들을 인코딩하는, 블록 부동소수점 양자화기(BFPQ: block floating point quantizer)를 포함한다.
아래에 이어지는 특허들은, 다양한 응용프로그램들의 신호 데이터를 압축하기 위하여, (위에서 설명한 것과 같은 블록 단위가 아니라) 샘플 하나 하나에 대하여 부동소수점 표현을 사용하는 방법을 설명한다.
1999년 8월 3일 발행된 "Method and Apparatus for Signal Compression and Processing Using Logarithmic Differential Compression"이라는 제목의 미국 특허 제5,933,360호는, 더 적은 샘플 당 비트들을 이용하여 샘플링된 신호를 부동소수점 형식으로 표현하기 위한, LDC(logarithmic differential compression)를 설명하고 있다. 필터링과 같은 신호 처리 연산들이 압축해제에 앞서 압축된 데이터에 적용된다. 상기 LDC는, 아날로그-디지털 변환 전 또는 변환 후에 신호의 1차 미분 계수를 계산하여, 미분계수 샘플들(derivative samples)을 생성하는 것을 포함한다. 상기 미분계수 샘플들의 작은 절대값은 더 적은 비트들로 상기 샘플들이 표현되는 것을 가능하게 한다. 각각의 미분계수 샘플은 압축된 신호의 하나의 샘플을 형성하기 위하여, 하나의 부호 비트, 하나의 지수부 필드, 및 하나의 가수부 필드를 갖는 부동소수점 형식으로 표현된다. 상기 부동소수점 표현에서 가수부 필드 및 지수부 필드의 길이들은 모든 미분계수 샘플들에 대하여 동일하고, 오디오 및 비디오 신호들과 같은 특정 응용프로그램에 맞추어 선택될 수 있다. 상기 LDC 알고리즘이 시간에 대하여 선형이고 연속되며 샘플 단위로 하나의 샘플에 적용되기 때문에, 필터링 및 변환과 같은 신호처리 작업들은 압축해제 이전에 압축된 데이터에 직접 적용될 수 있다. 하나의 LDC 샘플의 부동소수점 표현은 베이스 2의 로그 값(logarithmic(base2))을 근사(approximate)하기 때문에, 압축된 데이터에 대한 신호처리 작업들의 하드웨어 또는 소프트웨어 구현들의 복잡도가 줄어든다. 예를 들어, 로그 도메인(logarithmic domain)에서 곱셈은 LDC 샘플들의 합산과 같다. 상기 LDC 샘플들은, 런 렝스 인코딩(run length encoding), 허프만(Huffman), LZW(Lemple-Ziv-Welch) 등과 같은, 다른 압축 기법들을 적용함으로써 더욱 압축될 수 있다. 상기 LDC 방식은 모든 샘플들에 대하여 동일한 부동소수점 형식을 사용한다, 즉 데이터에 블록들에 따라 형식이 달라지지 않는다. 각각의 LDC 샘플은 하나의 지수부 필드 및 하나의 가수부 필드를 포함하고, 인코딩된 데이터의 하나의 블록 내에서 상기 지수부는 가수부들 사이에 공유되지 않는다.
본 발명의 발명자는 여러 가지 응용프로그램들을 위해 샘플링된 신호들의 압축을 위한 블록 부동소수점 표현들의 변용(adaptation)들을 설명하고 있다. 1998년 11월 17일 발행된 "Lossless and Loss-Limited Compression of Sampled Data Signals"라는 제목의 미국 특허 제5,839,100호(이하 "100 특허"라고 칭함)에서, 본 발명의 발명자는 샘플링된 신호의 미분계수 샘플들에 적용되는 부동소수점 인코더를 설명하고 있다. 상기 미분계수 샘플들은 샘플링된 신호의 연속된 샘플들 사이에서의 1차 또는 고차 미분계수들이다. 하나의 실시예에서, 상기 블록 부동소수점 인코더는 최대 미분계수 샘플에 기반하여 각각의 블록에 대한 지수부 값을 결정한다. 허프만 인코더는, 상기 지수부 값의 발생 횟수에 근거하여, 해당 블록의 지수부 값들에 코드들을 할당한다. 블록들의 시퀀스에 대하여 인코딩된 지수부들은 하나의 지수부 배열(exponent array)로 패킹(packed)된다. 가수부 생성기는, 해당 블록의 지수부 값에 의하여 지정된 비트 개수를 사용하여, 주어진 하나의 블록을 위한 가수부들을 인코딩한다. 인코딩된 가수부들은 하나의 가수부 배열로 패킹된다.
몇 건의 공동 소유된 미국 특허 출원들은 다양한 종류의 신호들 및 시스템들을 위한 블록 부동소수점 인코딩의 변용들을 포함한다. 이는 2008년 5월 21일 출원된 "Compression of Baseband Signals in Base Transceiver Systems"라는 제목의 미국 특허출원 제12/124,312호; 2008년 5월 21일 출원된 "Compression of Signals in Base Transceiver Systems"라는 제목의 미국 특허출원 제12/124,541호; 2008년 9월 11일 출원된 "Adaptive Compression of Computed Tomography Projection Data"라는 제목의 미국 특허출원 제12/208,839호; 2008년 9월 11일 출원된 "Edge Detection for Computed Tomography Projection Data Compression"라는 제목의 미국 특허출원 제12/208,835호; "Compression and Storage of Projection Data in a Computed Tomography System"이라는 제목의 미국 특허출원 제12/352,116호; 2008년 1월 12일 출원된 "Compression and Storage of Projection Data in a Rotatable Part of a Computed Tomography System"이라는 제목의 미국 특허출원 제12/352,222호; 2009년 6월 2일 출원된 "Ultrasound Signal Compression"이라는 제목의 미국 특허출원 제12/477,062호; 및 2009년 6월 29일 출원된 "Post-Beamforming Compression in Ultrasound Systems"라는 제목의 미국 특허출원 제12/494,184호를 포함한다.
본 발명의 실시예들은, 압축된 샘플들의 고정된 출력 데이터 비율(data rate) 또는 고정된 품질 기준(quality metric)을 가능하게 하는, 제어 특성(control feature)을 갖는 샘플링된 신호 데이터의 향상된 블록 부동소수점 압축을 제공한다.
본 발명의 하나의 목표는, 샘플 당 다수의 비트들로 구성된 다수의 신호 샘플들을 압축하기 위한 방법을 제공하는 것으로서, 상기 방법은 다음의 단계들, 즉:
다수의 신호 샘플들을 인코딩 그룹(encoding group)들의 시퀀스(sequence)로 그룹핑(grouping)하는 단계;
인코딩 그룹들의 상기 시퀀스 안에 있는 하나의 인코딩 그룹에 대하여, 해당 인코딩 그룹을 위한 하나의 블록 지수부 값(block exponent value)을 결정하고, 해당 인코딩 그룹 안에 있는 각 신호 샘플을 위한 가수부(mantissa)를 결정하는데, 상기 가수부가 상기 인코딩 그룹을 위한 상기 지수부 값에 근거한 비트 개수를 갖도록 하는 단계;
인코딩 그룹들의 상기 시퀀스에 대하여, 상기 인코딩 그룹들을 위한 블록 지수부 값들을 인코딩하여 상기 시퀀스 안의 해당 인코딩 그룹들에 대한 지수부 토큰(exponent token)들을 결정하는데, 이때 상기 지수부 토큰은 상기 시퀀스의 하나 이상의 인코딩 그룹들을 위한 하나 이상의 블록 지수부 값들을 표현하도록 하는 단계; 및
상기 지수부 토큰들 및 상기 가수부들을 사용하여, 저장 및 전송을 위해 다수의 신호 샘플들을 인코딩하여 압축된 데이터를 형성하는 단계를 포함한다.
본 발명의 또 다른 목적은, 다수의 인코딩된 원래 신호 샘플들을 나타내는 압축된 데이터를 전달하는 입력 신호를 압축해제하는 방법을 제공하는 것으로서, 상기 방법은 다음의 단계들, 즉:
상기 압축된 데이터를 분해(disassembling)하여 다수의 지수부 토큰들 및 다수의 압축된 그룹들로 이루어진 가수부들을 획득하는 단계로서, 이때 다수의 인코딩된 원래 신호 샘플들이 상기 지수부 토큰들 및 상기 가수부들에 의해 표현되는 단계;
상기 다수의 지수부 토큰들을 디코딩하여, 상기 다수의 압축된 그룹들 중 하나와 각각 연계되는, 다수의 블록 지수부 값들을 형성하는 단계;
각각의 압축된 그룹들에 대하여, 상기 연계된 블록 지수부 값을 사용하여 각각의 가수부를 표현하는 비트들의 개수를 결정하고, 상기 개수의 가수부 비트들을 대응되는 압축해제된 샘플로 맵핑(mapping)시켜서, 압축해제된 샘플들의 그룹을 형성하는 단계; 및
상기 결정 및 맵핑을 상기 압축된 그룹들에 적용하여, 다수의 압축해제된 샘플들을 생성하는 단계를 포함한다.
본 발명의 또 다른 목적은 다수의 신호 샘플들을 압축하기 위한 하나의 장치를 제공하는 것이다. 상기 장치는 다음과 같은 구성요소들, 즉:
다수의 신호 샘플들을 인코딩 그룹(encoding group)들의 시퀀스(sequence)로 그룹핑(grouping)하여, 인코딩 그룹들의 시퀀스를 형성하는 로직(logic);
각각의 인코딩 그룹에 대하여 하나의 블록 지수부 값을 결정하는 로직;
각각의 인코딩 그룹 안의 신호 샘플들을 수신하고, 각 신호 샘플에 대한 가수부를 형성하는데, 이때 특정 인코딩 그룹의 각각의 가수부는 상기 인코딩 그룹을 위한 블록 지수부 값에 근거한 비트 개수를 갖도록 하는, 하나의 가수부 인코더(mantissa encoder);
상기 인코딩 그룹들의 시퀀스에 대한 블록 지수부 값들을 인코딩하여 지수부 토큰들을 생성하는데, 이때 상기 지수부 토큰은 하나 이상의 인코딩 그룹들에 대한 하나 이상의 블록 지수부 값들을 표현하도록 하는, 하나의 지수부 인코더(exponent encoder); 및
상기 인코딩 그룹들의 시퀀스에 대한 상기 지수부 토큰들 및 가수부들을 배열하여 저장 또는 전송을 위한 압축된 데이터를 형성하는 하나의 비트 패커(bit packer)를 포함한다.
본 발명의 또 다른 목적은 다수의 인코딩된 원래 신호 샘플들을 표현하는 압축된 데이터를 전달하는 입력 신호를 압축해제하기 위한 하나의 장치를 제공하는 것이다. 상기 장치는 다음과 같은 구성요소들, 즉:
상기 다수의 인코딩된 원래 신호 샘플들이 다수의 지수부 토큰들 및 가수부들로 이루어진 다수의 압축된 그룹들에 의해 표현될 때, 상기 압축된 데이터를 수신하는 하나의 버퍼;
상기 압축된 데이터를 분해해서 상기 다수의 지수부 토큰들 및 가수부들로 이루어진 다수의 압축된 그룹들을 획득하기 위하여 상기 버퍼에 결합된 로직;
상기 다수의 지수부 토큰들을 전달받고, 상기 가수부들로 이루어진 다수의 압축된 그룹들 중 하나와 각각 연계되는 다수의 블록 지수부 값들을 결정하는, 하나의 지수부 디코더(exponent decoder); 및
상기 가수부들로 이루어진 각각의 압축된 그룹과 그와 관련된 블록 지수부 값을 전달받고, 상기 압축된 그룹 내의 각각의 가수부를 표현하는 비트들의 개수는 상기 관련 블록 지수부 값을 기반으로 하도록 하며, 각 가수부의 상기 개수의 비트들을 대응되는 압축해제된 샘플로 맵핑(mapping)시켜서, 압축해제된 샘플들의 그룹을 형성하여, 상기 다수의 압축된 그룹들을 디코딩하여 다수의 압축해제된 샘플들을 생성하는, 하나의 가수부 디코더(mantissa decoder)를 포함한다.
도 1은 블록 부동소수점 인코딩을 이용하여 신호 샘플들을 압축하는 신호 처리 시스템의 블록 다이어그램이다.
도 2는 블록 부동소수점 인코딩의 블록 다이어그램이다.
도 3a는 인코딩된 가수부를 위하여 n_exp 비트들을 선택하는 예를 도시하는 도면이다.
도 3b는 동일 블록 내에서 두 개의 샘플들을 압축하는 예를 보여주는 도면이다.
도 4는 하나의 지수부 토큰(exponent token)을 위하여 네 개 또는 여덟 개 비트들을 사용하는 인코딩 방식의 표이다.
도 5는 N_GROUP 샘플들의 한 블록을 위한 지수부 인코딩의 블록 다이어그램이다.
도 6은, 하나의 단일 압축된 패킷을 형성하기 위하여, 신호 샘플들의 8 개 블록들의 지수부들을 인코딩하는 하나의 예를 보여주는 도면이다.
도 7은, 도 6의 예에서의 압축된 블록들을 위한, 압축된 패킷의 데이터 부분에 대한 다이어그램이다.
도 8a는, 감소된 가수부를 위하여 LSB들을 제거하는 것을 포함한, 비트 선택(bit selection)을 도시하는 도면이다.
도 8b는, 감소된 가수부가 m_exp 비트들을 갖는 경우에, 동일한 블록 내에서 두 개의 샘플들을 압축하는 하나의 예를 보여주는 도면이다.
도 9는 n_exp, n_LSB, 및 m_exp의 예시적인 값들에 대한 표이다.
도 10은 LSB들의 제거를 포함하는 블록 부동소수점 인코딩의 블록 다이어그램이다.
도 11a는, 도 9에 주어진 표에 대응하는 그래프로서, 양자화 프로파일 함수(quantization profile function) f(n_exp)의 한 예를 보여주는 도면이다.
도 11b는, 상기 양자화 프로파일 함수 f(n_exp)가 그래프로 표현된 또 다른 예를 보여주는 도면이다.
도 11c는, 상기 양자화 프로파일 함수 f(n_exp)가 그래프로 표현된 또 다른 예를 보여주는 도면이다.
도 11d는, 상기 양자화 프로파일 함수 f(n_exp)가 그래프로 표현된 또 다른 예를 보여주는 도면이다.
도 12는, 압축된 데이터의 고정 비트 비율을 위한, BFP 인코더로의 피드백 제어에 대한 블록 다이어그램이다.
도 13은, 압축된 데이터의 고정 품질 기준을 위한, BFP 인코더로의 피드백 제어에 대한 블록 다이어그램이다.
도 14는 블록 부동소수점 디코딩을 사용하여 압축된 패킷들을 압축해제하는 신호 처리 시스템의 블록 다이어그램이다.
도 15는, 인코딩된 가수부 당 n_exp 비트들을 가진 하나의 압축된 그룹을 압축해제하기 위한, 블록 부동소수점 디코더 작업들에 대한 블록 다이어그램이다.
도 16은, 인코딩된 가수부 당 m_exp 비트들을 가진 하나의 압축된 그룹을 압축해제하기 위한, 블록 부동소수점 디코더 작업들에 대한 블록 다이어그램이다.
도 17은, 도 4의 코드 표에 따른, 지수부 디코더의 블록 다이어그램이다.
도 18은, 도 3b를 참조하여 설명된 압축 샘플들을 압축해제하는 예를 보여주는 도면이다.
도 19는, 도 8b를 참조하여 설명된 압축 샘플들을 압축해제하는 예를 보여주는 도면이다.
도 20은, 본 발명의 실시예들과 함께 사용하기에 적합한 컴퓨터 시스템(210)의 단순화된 블록 다이어그램이다.
도 21은, 다양한 응용프로그램들에서 사용되는, 신호 데이터를 획득(capturing)하고 처리(processing)하기 위한 데이터 처리 시스템의 일반화된 블록 다이어그램이다.
도 22는 압축을 포함하는 데이터 획득 시스템(data acquisition system)(120)의 블록 다이어그램이다.
도 1은 블록 부동소수점 인코딩을 이용하여 신호 샘플들을 압축하는 신호 처리 시스템의 블록 다이어그램이다. 아날로그-디지털 변환기(ADC: analog-to-digital converter)(200)는, 일정 샘플 속도 및 샘플 당 비트 수로, 입력 아날로그 신호(input analog signal)(100)를 샘플링된 신호(sampled signal)(201)로 변환한다. 상기 샘플링된 신호(201)에는 압축기(compressor)(110)가 적용되어 압축된 샘플들을 생성한다. 선택적인 하나의 전처리기(preprocessor)(300)가, 특정 응용프로그램을 위하여 또는 압축 성능을 향상시키기 위하여, 상기 샘플링된 신호(201)에 다양한 작업들을 수행할 수 있다. 상기 선택적인 전처리기(300)는 신호 컨디셔닝(signal conditioning), 필터링(filtering), 시간적 또는 공간적 윈도우잉 및 스케일링(temporal or spatial windowing and scaling)과 같은 작업들을 제공할 수도 있다. 일부 응용프로그램에서 압축 성능을 높이기 위하여, 상기 전처리기(300)는 상기 '100 특허'에 설명된 것과 같은 미분계수 연산자(derivative operator)를 포함할 수 있다. 미분계수들은, 해당 신호가 베이스밴드(baseband)(DC)에 또는 그 근처에 있는 한, 샘플들의 절대값을 감소시킨다. 신호의 중간 진동수(center frequency)가 샘플 속도의 1/6을 초과할 때는, 미분계수들이 샘플들의 절대값을 실제로 증가시키게 된다. BFP(block floating point) 인코더(400)는, 아래에서 설명하는 것처럼, 그룹들 또는 블록들을 정의하고, 압축된 그룹을 형성하기 위하여 각 그룹을 위한 하나의 지수부를 결정하고 가수부들을 인코딩한다. 비트 패커(bit packer)(500)는 상기 압축된 그룹들의 시퀀스로부터 압축된 패킷들을 형성한다. 상기 비트 패커는 상기 압축된 블록들 또는 압축된 패킷들의 크기에 관한 정보를 압축 제어기(compression controller)(600)에 제공한다. 상기 압축 제어기(600)는, 원하는 출력 데이터 비율 또는 품질 기준을 충족시키도록 압축을 증가 또는 감소시키기 위하여, 상기 BFP 인코더(400)의 파라미터들을 조정한다. 사용자는 상기 BFP 인코더를 위한 압축 제어 파라미터(compression control parameter)들을 상기 압축 제어기(600)에 입력시킬 수 있다. 이러한 사용자의 입력은 상기 압축 제어기(600)에게 원하는 출력 데이터 비율 또는 품질 기준을 제공할 수 있다. 추가로, 상기 압축 제어기(600)는 상기 전처리기(300)에 제어 파라미터들을 제공할 수 있다.
도 2는 상기 블록 부동소수점 인코더(400)의 하나의 실시예에 대한 블록 다이어그램이다. 블록 생성기(block generator)(405)는 함께 인코딩될 N_GROUP 샘플들(401i)의 블록들을 정의한다. 상기 N_GROUP 샘플들(401i)에 대하여, 다음 단계들에 따라 최대 지수부가 인코딩되고 N_GROUP 가수부들이 인코딩된다.
최초의 N_GROUP 샘플들(401i)에 대하여:
1) N_GROUP 샘플들의 각 그룹에 있는 최대 절대값의 log2를 계산하는 것과 같이, 최대 절대값을 갖는 샘플에 대한 지수부(베이스 2)를 결정한다. 이는 인코딩된 샘플 당 비트수, 즉 n_exp(0)를 가리킨다.
2) S가 샘플 당 비트들의 원래 개수라고 할 때, S 비트들을 이용하여 제1 그룹의 지수부 n_exp(0)를 절대적으로 인코딩(absolute encode)한다.
3) 샘플 당 n_exp(0) 비트들을 이용하여 N_GROUP 샘플들을 인코딩한다.
N_GROUP 샘플들(401i)의 ith 그룹(i>0)에 대하여:
4) 최대 절대값을 갖는 샘플에 대하여, ith 그룹 안의 인코딩된 샘플 당 비트 수, 즉 n_exp(i)를 나타내는, ith 지수부(베이스 2)를 결정한다.
5) ith 차이값을 결정하기 위하여 n_exp(i-1)로부터 n_exp(i)를 빼는 방식으로, ith 지수부를 차분 인코딩(differentially encoding)한다. 대응하는 토큰(token)을 이용하여 ith 차이값을 인코딩하는데, 이때 짧은 토큰은 더 흔한 차이값을, 더 긴 토큰들은 더 흔하지 않은 차이값을 나타낸다.
6) 샘플 당 n_exp(i) 비트들을 이용하여 N_GROUP 샘플들의 ith 그룹을 인코딩한다.
샘플들의 첫번째 그룹에 대해서는, 상기 지수부 n_exp(0)가 직접 인코딩된다. 예를 들어, S가 원래의 샘플 당 비트 수를 나타낼 때, 상기 지수부 n_exp(0)는 다음과 같이 인코딩될 수 있다:
a. 0: n_exp(0) = 0 (모든 4 개의 샘플 값들이 모두 0)
b. 1: n_exp(0) = 2 (샘플 당 2 비트)
c. 2: n_exp(0) = 3 (샘플 당 3 비트)
d. S-1까지 기타: n_exp(0) = S (샘플 당 S 비트)
ith 그룹에 대해서는, 상기 지수부 n_exp(i)는, 어떠한 코드단어(codeword)도 다른 코드단어의 접두사(prefix)가 되지 않는 전치 코드(prefix code)를 사용하여, 차분 인코딩될 수 있다. 차분 인코딩의 한 예는 다음과 같다:
1. 차이값을 계산한다: e_diff = n_exp(i) - n_exp(i-1)
2. 다음과 같이 상기 e_diff를 인코딩한다:
a. 0: e_diff = e(i) - e(i-1)
b. 101: e_diff = +1
c. 110: e_diff = -1
d. 1001: e_diff = +2
e. 1110: e_diff = -2
f. 기타
지수부 차이값들의 허프만 인코딩(Huffman encoding)은 지수부 차이값들의 발생 빈도에 근거하여 해당 차이값에 서로 다른 길이의 토큰을 배정한다. 짧은 허프만 토큰(Huffman token)들이 더 자주 발생하는 지수부 차이값에 배정될 수 있다. 상기 지수부 n_exp(i)는, 상기 차분 인코딩 대신에, 예를 들어 허프만 인코딩에 의해 직접 인코딩될 수도 있다. 블록 지수부들을 인코딩하는 대안들이 아래에서 설명된다.
도 2는 N_GROUP = 4 샘플들인 경우의 블록 부동소수점 인코더(400)의 한 예를 보여주고 있다. 상기 단계 1 및 단계 4에서와 같이, 지수부 계산기(exponent calculator)(402) N_GROUP 샘플들에 대한 최대 지수부, n_exp를 결정한다. 상기 최대 지수부(maximum exponent)는 최대 절대값을 갖는 샘플의 log 베이스 2 값에 해당된다. 상기 단계 2 및 단계 5에서와 같이, 지수부 토큰 생성기(exponent token generator)(404)는 상기 n_exp 값을 인코딩한다. 상기 단계 3 및 단계 6에서와 같이, 가수부 패커(mantissa packer)(406)는 N_GROUP 샘플들을 위한 가수부들을 인코딩하여, n_exp 비트 크기의 가수부를 생성한다. 도 3a는 인코딩된 가수부를 위하여 n_exp를 선택한 하나의 예를 도시하고 있다. 입력 샘플(420)은 K 비트들로 표현된다. 인코딩을 위해서는 상기 샘플(420)의 하위 n_exp 비트들이 선택되었다. 상기 샘플을 위한 부호 비트는 상기 선택된 비트들에 추가되고, 그 결과로 얻어지는 비트들의 시퀀스가 인코딩된 샘플을 나타내게 된다. 도 3b는 동일한 블록 내의 두 개의 샘플들을 압축하는 하나의 예를 보여준다. 이 예에서, 샘플들은 부호-가수부 형식으로 표현된다. 해당 블록의 N_GROUP 샘플들 중 최대 절대값 샘플(421)은, 도면에서 "X"로 표시된 것처럼, n_exp 가수부 비트들을 차지한다. 원래의 샘플 당 비트 수는 K인데, 0부터 K-1까지 번호가 매겨져 있고, 부호 비트는 "S"로 표시되었다. 압축된 샘플(422), 상기 단계 3 및 단계 6에 따라, n_exp 개의 가수부 비트들 및 부호 비트 "S"로 표현된다. 다른 하나의 샘플(423)은, "Y"로 표시된 비트들을 차지하고 있는, N_GROUP 샘플들의 블록 안에 있는 다른 하나의 샘플을 나타낸다. 압축된 샘플(424)는, 상기 단계 3 및 단계 6에 따라, 부호 비트 "S"와 함께, 상기 가수부 비트들 "Y"를 나타내기 위한 n_exp 개의 비트들을 사용한다. 상기 압축된 샘플들(422 및 424)은, 압축되지 않은 샘플들(421 및 423)의 각각 대응되는 가수부 값으로서 동일한 정수값들을 가지지만, 각 가수부의 비트 수는 감소되었다. 도 2를 다시 참조하면, 멀티플렉서(multiplexer)(408)가 인코딩된 지수부 토큰(411)과 그 후에 이어지는N_GROUP 개의 부호 비트들 및 가수부들을 패킹(packing)하여, N_GROUP 개의 압축된 샘플들을 나타내는 압축된 그룹(410)을 형성한다. 본 예에서, 상기 압축된 그룹(410)은 지수부 토큰(411) 및 그 후에 이어지는 네 개의 패킹된 가수부들(부호 비트 포함)(412-0, 412-1, 412-2, 및 412-3)의 시퀀스를 포함한다. 상기 비트 패커(500)는 압축된 패킷의 데이터 부분을 형성하기 위하여, 상기 압축된 그룹(410)들을 이어붙일(concatenate) 수 있다. 대안으로서, 상기 비트 패커(500)는 그룹들의 시퀀스에 대응되는 지수부 토큰들의 시퀀스와 그 후에 이어지는 대응되는 가수부들의 집합들로 배열시킬 수도 있다. N_GROUP의 바람직한 크기는 그룹 당 세 개 또는 네 개의 샘플들이다. 그러나 변화하는 그룹 크기를 사용할 수도 있다.
가수부들 및 지수부들을 분리하여 인코딩하는 것은 추가적인 압축을 제공하고 압축 에러를 완화시킨다. 지수부 인코딩을 위한 하나의 바람직한 실시예에서, 둘 이상의 지수부 차이값들이 함께 인코딩된다. 초음파, 레이더, 및 계산된 토모그래피(computed tomography) 미가공 데이터를 포함하는, 다양한 응용프로그램들로부터의 신호 데이터를 위한 블록 지수부 값들에 대한 통계적 분석 결과는, 연속되는 지수부들의 90%는 {-1, 0, +1}의 범위 내의 차이값을 가지며, 연속되는 지수부들의 98%는 {-2, -1, 0, +1, +2}의 범위 내의 차이값을 갖는다는 것을 보여준다. 둘 이상의 연속적인 지수부 차이값들을 함께 인코딩하는 것은 인코딩된 지수부 당 비트 수를 감소시킬 수 있다. 지수부 토큰 당 네 개 또는 여덟 개의 비트들을 사용하는 하나의 인코딩 방식이 도 4에 나타나 있다. 고정된 개수의 지수 비트들을 사용함으로써, 임의의 비트 길이를 갖는 지수부 토큰을 허용하는 지수부 인코딩과 비교하여, 압축 및 압축해제 모두의 복잡도가 감소한다. 도 4의 표는 세 가지 인코딩 옵션(encoding option)들, 즉: (A) 두 개의 연속적인 지수부 차이값들을 결합 인코딩(joint encoding)하는 옵션, (B) 하나의 지수부 차이값을 인코딩하는 옵션, (C) 하나의 지수부 값을 절대적으로(또는 선형으로) 인코딩하는 옵션에 대하여, 지수부 토큰 값들을 나열하고 있다. 상기 표의 세 번째 열에 있는, 결합 인코딩 옵션(A)를 위한 연속되는 지수부 차이값들 {diff(i), diff(i-1)}는, 차이값들의 서로 다른 9 개의 조합들을 갖는데, 이때 인코딩된 제1 및 제2 지수부 차이값은 세 가지 가능한 값들 {-1, 0, +1} 중 하나의 값을 갖는다. 상기 표의 16 개의 조합들 중 상기 9 개는 각각 4 비트들을 갖는 지수부 토큰들을 이용하여 인코딩할 수 있다. 하나의 토큰이 두 개 블록들의 지수부들을 인코딩하기 때문에, 상기 지수부 차이값들의 결합 인코딩은 블록 지수부 당 2 비트들을 사용한다. 옵션 (B)를 위한 {-2, -1, 0, +1, +2} 범위 안에 있는 단일 지수부 차이값의 인코딩 및 연관된 지수부 토큰들도 나열되어 있다. 이 옵션은 상기 표의 16 개 조합들 중 다섯을 사용한다. 마지막으로, 옵션 (C)를 위하여 표에 나열된, 지수부 값 그 자체, n_exp(i)의 절대적 인코딩은 지수부 토큰 당 8 개의 비트들을 사용한다. 이러한 실시예에서, 상위 세 개 비트들은 1로 설정되고 하위 다섯 개의 비트들이 지수부를 인코딩한다. 다섯 개의 하위 비트들은 {0, 2, 3, ..., 32} 범위 안에 있는 하나의 절대적 지수부 값을 가리키는데, 1의 지수값은 허용되지 않는다. 정수 개수의 니블(nibble)(4 비트 단위)들을 사용하는 것은 지수부 인코딩 및 나중의 디코딩을 단순하게 만든다. 도 4의 지수부 인코딩을 상기 응용프로그램들로부터의 신호 데이터에 적용한 결과는, 상기 지수부 인코딩 옵션들 각각에 대하여 다음과 같은 비율을 보여준다:
(A) 결합 인코딩 옵션 (지수 당 2 비트) - 지수부의 80%
(B) 차분 인코딩 옵션 (지수 당 4 비트) - 지수부의 18%
(C) 선형 인코딩 옵션 (지수 당 8 비트) - 지수부의 2%
상기 옵션들의 지수 당 비트들의 가중 평균값은, 인코딩된 지수부 당 평균 비트 수가 대략 2.48 비트임을 보여준다. 인코딩된 지수부 당 N_GROUP 개의 개별적인 샘플들이 존재하므로, 상기 지수부 인코딩 방식은, 대안적인 지수부 인코딩 기법들, 특히 가수부 당 하나의 지수를 이용하는 기법들과 비교했을 때, 상당한 효율성을 제공한다.
패킷들의 효율적인 압축 및 압축해제를 위하여, 하나의 패킷에서 표현되는 모드 샘플들을 위한 압축된 데이터는 동일 패킷 안에 포함된다. 해당 패킷의 첫 번째 블록 지수부를 절대적으로 인코딩하는 것은, 첫 번째 지수부 토큰이 이전 패킷으로부터 독립적일 수 있도록 만든다. 패킷의 마지막 블록 지수부는, 해당 패킷의 마지막에서 두 번째 블록 지수부를 이용하여 차분(differentially) 인코딩될 수 있다. 마지막 블록 지수부 및 그 전 블록 지수부에 해당하는 지수부 차이값은 동일한 패킷 내의 이전 지수부 차이값과 결합 인코딩될 수 있지만, 이어지는 패킷의 첫 번째 지수부 차이값과는 결합 인코딩될 수 없다.
도 5는 N_GROUP 샘플들(401i)의 한 블록에 대한 지수부 인코딩의 블록 다이어그램이다. 상기 블록 다이어그램은 위에서 설명한 패킷 내의 첫 번째 및 마지막 블록 지수부 값들을 위한 추가적인 조건들을 포함하지는 않는다. 감산기(430)는 이전 블록 지수부 n_exp(i-1)로부터 현재 블록에 대한 블록 지수부 n_exp(i)를 빼서 지수부 차이값 diff(i)를 형성한다. 의사결정 블록(432)은 상기 차이값의 절대값이 1보다 큰지를 검사한다. 만약 diff(i) 및 이전 반복(iteration)에서의 블록 지수부 diff(i-1) 둘 모두가 1 이하이면, 결합 인코더(440)는 도 4에서 옵션 (A)에 보인 바와 같이 상기 diff(i) 및 diff(i-1) 모두를 결합 인코딩하여, 상기 지수부 차이값들 둘 모두를 나타내는 하나의 4 비트 토큰을 형성한다. 만약 상기 diff(i)가 1보다 크면, 상기 의사결정 블록(436)은 상기 차이값이 2보다 큰지를 검사한다. 만약 상기 diff(i)의 절대값이 2보다 크면, 절대 인코딩 블록(434)이 도 4의 옵션 (C)에 보인 바와 같이 상기 지수부 n_exp(i)를 인코딩하여, 상기 n_exp(i)를 나타내는 하나의 8 비트 토큰을 형성한다. 나머지 경우에는, 차분 인코딩 블록(438)이 도 4의 옵션 (B)에 보인 바와 같이 상기 diff(i)를 인코딩하여, 상기 지수부 차이값 diff(i)를 나타내는 하나의 4 비트 토큰을 형성한다. 상기 지수부 토큰은 비트 패커(500)에게 제공된다.
도 6은 하나의 압축된 패킷을 형성하기 위하여 신호 샘플들의 여덟 개 블록들의 지수부들을 인코딩하는 하나의 예를 보여주는데, 이때 처음의 두 개 블록 지수부들은 토큰 당 8 비트를 갖도록 절대적 인코딩(옵션 (C))되었다. 블록 3 내지 블록 6의 지수부 차이값들은 결합 인코딩(옵션 (A))되어, 블록 3 및 블록 4를 위한 4 비트 지수부 토큰과 블록 5 및 블록 6를 위한 4 비트 지수부 토큰을 형성하도록 한다. 블록 7 및 블록 8을 위한 지수부 차이값들은 각각 차분 인코딩되어, 각 블록 당 4 비트 지수부 토큰을 생성한다. 비록 블록 7을 위한 지수부 차이값, 즉 diff(7) = +1 이 지수부의 결합 인코딩 범위 내에 들어가기는 하지만, 블록 8을 위한 지수부 차이값, 즉 diff(8) = -2 는 상기 범위 내에 들어가지 않는다. 그러므로, diff(7) 및 diff(8)은 각각 4 비트 지수부 토큰(1100 및 1101)이 각각 배정된다.
도 7은, 도 6의 예에서의 압축된 블록들을 위한, 하나의 압축된 패킷의 데이터 부분에 대한 다이어그램이다. 또한 상기 압축된 패킷은, 도면에는 생략된, 하나의 헤더를 포함한다. 각 블록의 부호 비트들을 포함해서 네 개의 가수부들을 위하여 패킹된 비트들은, 다이어그램에서 "4M"으로 표시되었고 크기에 비례하도록 도시되어 있지는 않다. 압축된 블록 1은 8 비트 지수부 토큰과 네 개의 14 비트 가수부들을 위한 패킹된 비트들을 포함한다. 압축된 블록 2는 8 비트의 지수부 토큰과 네 개의 7 비트 가수부들을 위한 패킹된 비트들을 포함한다. 블록 3 및 블록 4를 위한 지수부 차이값이 결합 인코딩되었기 때문에, 압축된 블록 3은 4 비트의 지수부 토큰과 네 개의 7 비트 가수부들을 포함한다. 압축된 블록 4는 네 개의 9 비트 가수부들을 포함하고 지수부 토큰은 포함하지 않는다. 블록 5 및 블록 6를 위한 지수부 차이값도 결합 인코딩되었기 때문에, 압축된 블록 5는 4 비트의 지수부 토큰과 네 개의 7 비트 가수부들을 포함한다. 압축된 블록 6은 네 개의 7 비트 가수부들을 포함하고 지수부 토큰은 포함하지 않는다. 압축된 블록 7은, 블록 6 및 블록 7에 해당하는 지수부들 사이의 차이값을 나타내는 지수부 토큰과 네 개의 9 비트 가수부들을 포함한다. 압축된 블록 8은, 블록 7 및 블록 8에 해당하는 지수부들 사이의 차이값을 나타내는 지수부 토큰과 네 개의 6 비트 가수부들을 포함한다. 본 예에서는 8 개의 블록들이 다섯 개의 지수부 토큰들을 사용하여 인코딩되었다.
지수부 인코딩의 대안적인 하나의 예에서, 연속되는 지수부들의 차이값이 계산되고 인코딩된다. 상기 지수부 값들은 천천히 변화하고, 따라서 연속되는 0 값의 스트링들 사이 사이에서 영이 아닌 값은 상대적으로 적게 분포하게 된다. 지수부 차이값들은 0이 아닌 차이값들 및 그들의 위치를 표현함으로써 효율적으로 인코딩될 수 있다. 상기 위치는 해당하는 인덱스 값 또는 마지막으로 0이 아니었던 값의 위치에 상대적인 값으로 표현될 수 있다. 상기 지수부 차이값의 인코딩은 비손실 방식이고, 따라서 상대적으로 큰 에러를 방지한다. 지수부들을 디코딩하기 위해서는, 상기 지수부 차이값들을 합산하고 해당 위치 정보들을 디코딩함으로써 상기 지수부 값들이 복구된다. 가수부의 디코딩을 위해서는, 디코딩된 샘플의 해당 지수부 값을 변화시키지 않도록, 각각의 가수부들이 제한된다. n_exp의 디코딩된 지수부에 대하여, 복구된 가수부는 2n_ exp - 1의 최대값을 가질 수 있다. 이는 가수부에서의 압축 에러가 해당 지수부의 값을 변화시키는 것을 방지한다.
또 다른 대안적인 블록 부동소수점 인코딩 방법은, 위에서 설명한 지수부의 차분 인코딩과 함께 가수부를 표현하는 비트 수의 추가적인 감소를 제공한다. N_GROUP 샘플들의 가수부들을 표현하는 비트 수는, 각각의 가수부로부터 일정 개수, 또는 n_LSB 개의 최하위 비트(LSB: least significant bit)들을 선택적으로 제거함으로써 추가적으로 감소된다. 상기 n_LSB의 값은, 아래에서 설명하는 바와 같이, 해당 샘플 블록에 대한 n_exp의 값에 의존적으로 결정된다. 도 8a는 감소된 가수부를 위하여 LSB들을 제거하는 것을 포함하는 비트 선택과정을 도시하고 있다. n_exp는 상기 단계 1 및 단계 4에서와 같이 결정된다. 가수부의 n_exp 개 하위 비트들 모두를 인코딩하는 대신에, 최하위 비트로부터 시작하여 n_LSB 개의 비트들이 제거된다. 남아 있는 m_exp (m_exp = n_exp - n_LSB) 개의 비트들이 인코딩을 위하여 선택된다. 도 8b는, 복구된 가수부들이 m_exp 개의 비트들을 갖는, 동일 블록 내의 두 개의 샘플들을 압축하는 하나의 예를 보여주고 있다. 본 예는 도 3b를 참조하여 설명된 예에서와 동일한 입력 샘플들(421 및 423)을 사용한다. 블록 안의 N_GROUP 개의 샘플들 중 최대 절대값 샘플(421)은 "X"로 표시된 n_exp 개의 비트들을 차지한다. n_LSB 개의 비트들이 제거되면, 압축된 샘플(425)은 더 적은 MSB들 및 LSB들을 갖는 감소된 가수부의 m_exp 개의 "X" 비트들을 나타낸다. 샘플(423)은, "Y" 비트들로 표시된, N_GROUP 샘플들의 블록 안에 있는 또 다른 샘플을 나타내고 있다. n_LSB 샘플들이 제거되면, 압축된 샘플(426)은 m_exp 비트들을 갖는 감소된 가수부의 "Y" 비트들을 표현하기 위하여 m_exp 비트들을 사용한다. 상기 압축된 샘플들(425 및 426)의 가수부들은 대응하는 압축되지 않은 샘플들(421 및 423)의 가수부들과는 서로 다른 정수값들을 갖게 된다. 상기 n_LSB 비트들이 반올림을 통하여 제거될 때는, 상기 압축된 샘플들(425 및 426)의 감소된 가수부의 정수 값들이 압축되지 않은 샘플들(421 및 423)에 각각 비교하여 더 높거나 더 낮은 값을 가질 수 있다. 상기 n_LSB 비트들이 버림을 통하여 제거될 때는, 상기 압축된 샘플들(425 및 426)의 감소된 가수부의 정수 값들이 압축되지 않은 샘플들(421 및 423)에 각각 비교하여 더 낮은 값을 가질 수 있다.
상기 n_LSB 값은 일정 수식 또는 표에 따라, n_exp 값에 의존적으로 결정된다. 도 9는 n_exp, n_LSB, 및 m_exp의 예시적인 값들을 보여주는 표이다. 큰 값의 n_exp를 위해서는, m_exp 개의 비트들을 갖는 감소된 가수부를 형성하도록, 더 많은 LSB들이 버림 또는 반올림을 통하여 제거된다. 예를 들어, 만약 n_exp가 12인 경우, N_GROUP 감소된 가수부들의 패킹을 위하여 9 개의 가수부 비트들이 유지되도록, 세 개의 LSB들이 제거된다. 블록 부동소수점 인코더(400)는 n_exp, n_LSB, 및 m_exp의 값들에 대한 하나의 열람표(look-up table)를 저장할 수 있다. 대안적으로, 상기 블록 부동소수점 인코더(400)는 n_LSB 및 m_exp를 n_exp의 함수로 나타내고, 필요한 때 그들의 값들을 계산할 수도 있다. 도 10은 LSB들을 제거하는 것을 포함하는 블록 부동소수점 인코더(400)의 블록 다이어그램이다. N_GROUP 샘플들의 각 그룹에 대하여, 위에서 설명한 것처럼 지수부 계산기(402)는 최대 지수부 n_exp를 계산한다. 가수부 비트 계산기(414)는, 본 명세서에서는 양자화 프로파일로 칭하고 있는, LSB, m_exp, 및 n_exp을 연관짓는 하나의 열람표 또는 수식을 이용하여, 감소된 가수부의 비트들의 수 m_exp를 결정한다. 감소된 가수부 패커(416)는 N_GROUP 샘플들 각각에 대하여 m_exp 비트들을 선택한다. 이후 멀티플렉서(408)는 상기 지수부 토큰(411) 및 그 뒤를 잇는 감소된 가수부들(419-0, 419-1, 419-2, ㅁ및 419-3)을 (추가된 부호 비트들과 함께) 패킹하여, 압축된 그룹(418)을 형성한다. 일부 조건들에서는, 상기 N_GROUP 샘플들의 그룹으로부터 어떠한 LSB도 제거되지 않는다. 예를 들어, N_GROUP 샘플들 중 하나 이상의 샘플들의 절대값이 허용 가능한 최소값보다 작은 경우, 원래의 LSB들을 포함하는 N_GROUP 개의 가수부들이 패킹된다. 압축된 패킷의 데이터 부분을 형성하기 위하여, 상기 비트 패커(500)는 연속되는 압축된 그룹(418)들을 이어붙일 수 있다. 대안적으로, 상기 비트 패커(500)는, 그룹들의 시퀀스에 대응하는 지수부 토큰들의 시퀀스와, 그에 이어지는 가수부들의 대응되는 집합들로 배열할 수도 있다. m_exp가 아니라 n_exp가 지수부 토큰 생성기(404)로의 입력으로 사용된다는 사실을 유의하여야 한다. 상기 압축기(110) 및 압축해제기(700) 둘 모두, n_exp, n_LSB, 및 m_exp을 연관짓는 동일한 양자화 프로파일(도 9에 보인 예시적 표와 같이)을 사용한다. 바람직한 하나의 실시예는 압축된 패킷 각각의 헤더 안에 표 선택 정보를 포함하여, 현재 활성화된 양자화 프로파일이 패킷마다 다르도록 할 수도 있다.
상기 압축 제어기(600)는 상기 블록 부동소수점 인코더(400)에 압축 제어 파라미터들을 제공한다. 상기 압축 제어 파라미터들은, n_LSB, m_exp, 및 n_exp를 연관짓는 열람표 또는 수식으로 표현되는, 대안적인 양자화 프로파일들을 포함할 수 있다. 상기 압축 제어 파라미터들은 블록 크기 파라미터 N_GROUP와 양자화 프로파일들의 선택 파라미터들을 포함할 수 있다. 상기 압축 제어기(600)는 상기 압축 제어 파라미터들을 선택하는 사용자 입력에 대응할 수도 있다. 압축된 데이터의 고정된 비트 비율 또는 고정 품질 기준, 또는 압축된 데이터의 왜곡 정도를 제공하는 압축 제어 파라미터들을 사용자가 선택할 수도 있다.
상기 n_LSB, m_exp, 및 n_exp를 연관짓는 상기 양자화 프로파일은, 다음과 같이, 하나의 수식으로 표현될 수 있다.
( n_LSB, m_exp ) = f( n_exp ) (1)
도 11a 내지 도 11d는 상기 f(n_exp)의 예시적 함수들을 그래프로 보여주고 있다. 실선들은 n_LSB의 값들을 나타내고, 점선들은 m_exp의 값들을 나타낸다. 도 11a는 도 9에 주어진 표의 그래프 표현이다. 도 11b, 도 11c, 및 도 11d는 다른 예들을 보여주고 있다. 양자화 프로파일들은, 정해진 범위의 n_exp 값들에 대하여 압축된 샘플들의 에러를 최소화하도록 설계될 수 있다. 샘플들에 적용되는 특정 양자화 프로파일은 그에 대응하는 비트 비율 및 에러 수준을 갖는 압축된 샘플들을 만들어낸다.
압축된 데이터의 고정된 품질을 위해서, 상기 압축 제어기(600)는 특정 신호 품질 기준 또는 왜곡 정도를 제공하는 양자화 프로파일을 선택할 수 있다. 상기 품질 기준은, 감소된 가수부의 버림 또는 반올림에 의한, 압축된 샘플들 내의 에러에 기반할 수 있다. 감소된 가수부들을 사용하는 블록 부동소수점 표현들에 있어서, 상기 에러들은 발생 확률 또는 샘플들 내에서 지수부 값들의 확률 밀도 함수를 이용하여 계산될 수 있다. 도 9를 참조하면, 해당 블록의 가수부들로부터 제거된 LSB들의 개수, 즉 n_LSB는 상기 블록을 위한 최대 지수부 값, 즉 n_exp에 의존적이다. 가수부들로부터의 LSB들의 제거가 반올림 또는 버림 에러의 근원이다. 신호 데이터의 PDF는 가우시안(Gaussian) 또는 포아송(Poisson) 밀도 함수들을 사용하여 모델링될 수 있다. 이러한 방식의 경우에, 평균, 편차, 또는 표준편차와 같은 상기 PDF의 파라미터들은 종래의 통계 기법들을 사용하여 계산될 수 있다. 대안적으로는, 해당 샘플들을 위한 지수부 값들의 히스토그램을 계산함으로써 상기 PDF 자체가 추정될 수 있다. 상기 히스토그램은, 가능한 지수부 값들 각각을 갖는 샘플들의 수를 결정하는 종래의 통계 기법들을 이용하여, 계산될 수 있다. 상기 통계적 계산들을 위하여 사용된 샘플들은, 특정 신호 타입을 위한 실제 데이터 또는 모의실험된 데이터들에 적용된, 상기 전처리기(300)로부터의 출력 샘플들로 대응될 수 있다.
감소된 가수부에서의 버림 또는 반올림 에러는 본 명세서에서 양자화 에러, 또는 QE라고 칭한다. j 번째 샘플 s(j)를 위한 상기 양자화 에러는 다음과 같이 계산된다.
QE(j) = s(j) - Q[s(j)] (2)
여기서 Q[s(j)]는, s(j)를 m_exp 비트로 반올림 또는 버림으로써 발생한, s(j)의 양자화된 값이다. 이러한 에러 계산은, 압축해제 시 최초 개수의 비트들을 가진 압축해제된 샘플들을 생성하기 위하여 양자화된 가수부에 n_LSB 개의 0 값들을 추가하는 경우에 적용될 수 있다. 상기 m_exp가 상기 j번째 샘플을 포함하는 블록을 위한 n_exp에 의존하기 때문에, 상기 양자화 에러 QE(j)도 역시 n_exp에 의존적이다.
지수부 값 n_exp의 함수로서의 상기 양자화 에러 QE(n_exp)는, 상기 양자화 프로파일 f(n_exp)에 기반하여 추정될 수 있다. 대안으로서, 상기 양자화 에러는, 다수의 시험 샘플들을 구비한 시험용 신호들에 상기 양자화 프로파일을 적용하고, 상기 수식 (2)를 이용하여 QE(j)를 계산함으로써 측정될 수도 있다. 다수의 시험용 샘플들을 위한 QE(j)의 평균치는, 특정 양자화 프로파일에 해당하는 예상 에러를 나타낼 수 있다.
대안으로서, 상기 예상 에러는 신호의 PDF에 기반하여 계산될 수 있다. 상기 예상 에러 E는 다음과 같이 주어진다.
E = Σ QE(exp) PDF(exp) (3)
여기서 PDF(exp)는 지수부 값들 exp의 확률 밀도 함수이다. 상기 합계 연산 Σ는, n_LSB ≠ 0, 즉 QE(n_exp) ≠ 0이 되도록, 최소 n_exp로부터 최대 n_exp까지 지수부 값들의 총합을 구한다. 예를 들어, 도 9를 참조하면, 최소 n_exp는 4이고 최대 n_exp는 14이다. n_exp의 함수로서 감소된 지수부에 대한 양자화 에러는 다음과 같이 주어진다.
QE(n_exp) = 가수부(n_exp) - 가수부(m_exp) (4)
상기 가수부(n_exp)는 완전한 정도(precision)의 가수부를 가리키고, 상기 가수부(m_exp)는 m_exp 비트들을 갖는 감소된 가수부를 가리키는데, 이때 양자화 함수 f(n_exp)에 따라, m_exp = n_exp - n_LSB이다. 이후, 예상 에러는 상기 수식 (3)을 사용하여 계산될 수 있다. 사용자가 원하는 품질, 대응하는 양자화 수식을 선택한 경우, 상기 압축 제어기(600)는 하나의 표 또는 하나의 수식으로 표현되는 대응되는 양자화 프로파일 f(n_exp)를 선택한다.
고정 비트 비율 또는 압축된 데이터의 압축률을 위해서, 상기 압축 제어기(600)는, 압축된 데이터의 최소한의 왜곡을 가지면서 원하는 비트 비율을 제공하는 양자화 프로파일을 선택할 수 있다. 특정 양자화 프로파일과 연계된 비트 비율은 PDF(exp)에 기반하여 추정될 수 있다. 양자화 프로파일이, 가수부를 인코딩하기 위한 비트 수 m_exp를 n_exp의 함수로서 나타내기 때문에, 상기 수식 (1)에 따라, N_SAMP 샘플들의 가수부들을 인코딩하기 위한 비트들의 수는 다음과 같이 추산된다.
N_MANT_BITS = N_SAMP * Σ m_exp(exp) PDF(exp) (5)
여기서 PDF(exp)는 지수부 값들의 확률 밀도 함수이고, m_exp(exp)는 양자화 프로파일에 따라 특정 n_exp와 연계된 m_exp의 가수부 당 비트 수를 가리킨다. 상기 합계 연산 Σ는, 상기 수식 (3)과 관련하여 위에서 설명한 것처럼, 최소 n_exp로부터 최대 n_exp까지의 지수부 값들을 합산한다. 도 4와 관련하여 위에서 설명한 바와 같이, 블록 지수부들 N_EXP_BITS를 인코딩하기 위한 비트들의 수는 다음과 같이 추산된다.
N_EXP_BITS = 2.48 * N_SAMP / N_GROUP (6)
상기 경험적 인수(empirical factor) 2.48은, 위에서 설명한 다양한 응용분야에서의 신호 데이터에 도 4의 지수부 인코딩을 적용하여 결정된, 인코딩된 지수부 당 비트 수이다. 상기 인수는, 대상 응용분야를 위한 신호 데이터에 상기 설명한 지수부 인코딩을 적용함으로써, 다른 응용분야들을 위해 측정될 수도 있다. N_GROUP 샘플들 당 하나의 지수부가 인코딩되기 때문에, 보통 상기 수 N_EXP_BITS는 N_MANT_BITS 에 대하여 상대적으로 작다. N_SAMP 샘플들을 위한 압축된 데이터 비트들의 수 N_COMP_BITS는 아래 수식과 같은 합산 값이다.
N_COMP_BITS = N_MANT_BITS + N_EXP_BITS (7)
압축률(compression ratio) CR은 다음과 같이 주어진다.
CR = BITS_SAMPLE * N_SAMP / N_COMP_BITS (8)
여기서 BITS_SAMPLE은 상기 BFP 인코더(400)로의 입력 샘플 당 비트 수이다.
에러 및 압축된 비트 비율을 위한 상기 근사치(approximation)들은, 최대 지수부가 n_exp인, 주어진 N_GROUP 샘플들의 그룹 안에 서로 다른 지수부 값들이 존재할 수 있을 때에는, 블록 지수부들의 영향을 모델링하지 못한다. 상기 블록 지수부들, 즉 n_exp가 천천히 변화한다는 사실을 보여주는, 실험적 측정치들에 근거한 과거 결과들은, 상기 추정치가 유용하다는 것을 보여준다. 대안적인 블록 지수부 모델들은 최대 지수부 값 n_exp를 갖는 하나의 블록 내의 지수부 값들을 위한 조건부 확률 P(EXP/n_exp)를 포함할 수 있다.
고정 비트 비율 또는 고정 품질을 위하여, 양자화 프로파일 각각에 대응되는 품질 기준들(에러, 왜곡 수준, 신호대잡음비 등에 근거) 및 대응하는 비트 비율과 함께, 양자화 프로파일들의 집합이 상기 압축 제어기(600)에 제공된다. 상기 양자화 프로파일들 및 대응하는 품질 기준들은, 신호 모델들을 사용함으로써, 그리고/또는 실제 또는 모의실험된 신호 데이터에 상기 BFP 인코딩을 적용하고 그 결과를 측정함으로써, 특정 응용분야에 대하여 결정될 수 있다. 예를 들어, 상기 양자화 프로파일들의 하나 이상의 집합들은 실험 신호들을 사용하여 시스템 캘리브레이션 동안에 결정될 수 있다. 상기 양자화 프로파일들의 집합(들)은 상기 압축 제어기(600)의 메모리로 다운로드될 수 있다. 사용자는 신호 샘플들의 압축 중 사용을 위하여 양자화 프로파일들의 특정 집합을 선택할 수 있다. 상기 압축 제어기(600)는 패킷마다 달라지도록 상기 집합으로부터 일련의 양자화 프로파일들을 적응식으로(adaptively) 선택할 수 있다.
상기 압축 제어기(600)는 상기 BFP 인코더(400)에, 그리고 선택적으로 상기 전처리기(300)에 피드백 제어를 제공할 수 있다. 도 12는, 압축된 데이터의 고정 비트 비율을 위하여 상기 BFP 인코더(400)에 제공하는 피드백 제어의 블록 다이어그램이다. 상기 압축 제어기(600)는 비트 패커(500)로부터, 압축된 샘플들의 패킷 당 비트 수와 같은, 비트 비율 정보를 수신한다. 비트 비율 계산기(610)는 피드백 제어를 위하여 비트 비율 또는 압축된 패킷의 패킷 크기를 계산한다. 상기 비트 비율 계산기(610)는 비트 비율을 계산하기 위하여 여러 개의 압축된 패킷들에 대하여 비트 개수의 평균을 구할 수도 있다. 비교기(620)는 상기 측정된 비트 비율이 원하는 비트 비율의 허용 범위(tolerance range) 내에 있는지를 결정한다. 만약 측정된 비트 비율이 허용 범위 바깥에 있으면, 상기 선택기(630)는 더 낮거나 더 높은 비트 비율을 제공하기 위하여 상기 양자화 프로파일들의 집합(632)으로부터 새로운 양자화 프로파일을 선택한다. 상기 허용 범위는 사용자에 의하여 정의될 수 있다. 상기 비교기(620)는 측정된 비트 비율과 원하는 비트 비율 사이의 차이를 계산할 수 있다. 상기 차이값의 허용 범위는 0일 수도 있고, 또는 차이값들의 일정 범위 안일 수 있다. 상기 허용 범위는, 압축된 비트 비율이 너무 높거나 너무 낮을 때 조절될 수 있도록, 양의 한계 값 및 음의 한계 값을 포함할 수 있다. 상기 압축 제어기는 상기 양자화 프로파일들의 집합(632)을 저장하기 위한 메모리를 포함할 수 있다. BFP 파라미터 생성기(640)는, 가수부 비트 계산기(414)를 위하여 n_exp, n_LSB, 및 m_exp를 BFP 인코더(400)에 연관시키는, 대응되는 압축 제어 파라미터들을 제공한다(도 10 참조). 상기 양자화 프로파일이 메모리에 저장된 하나의 수식으로 표현되는 하나의 실시예에서, 상기 BFP 파라미터 생성기(640)는 상기 n_exp, n_LSB, 및 m_exp를 연관짓는 하나의 열람표를 위한 항목들을 계산한다. 상기 양자화 프로파일이 하나의 열람표로 표현되는 하나의 실시예에서는, 상기 BFP 파라미터 생성기(640)는 선택된 열람표를 가리키는 압축 제어 파라미터를 제공한다. 대안적인 하나의 실시예에서, 상기 BFP 인코더(400)는 상기 양자화 프로파일(수식들 또는 표들)을 지역적(local) 메모리 안에 저장할 수 있다. 이러한 대안에서, 상기 BFP 파라미터 생성기(640)는 새로운 양자화 프로파일을 선택하기 위한 하나의 압축 제어 파라미터를 제공할 수도 있다.
도 13은 압축된 데이터의 고정 품질 기준을 위한, BFP 인코더(400)로의 피드백 제어의 블록 다이어그램이다. 품질 기준 계산기(650)는 평균 에러, 신호대잡음비(SNR), 또는 기타 왜곡 계측치 등과 같은 품질 기준을 계산한다. 바람직한 하나의 실시예에서, 상기 양자화 에러 QE(j)는 상기 수식 (2)에 따라 계산되고, 하나 이상의 압축된 패킷들에 대하여 평균값으로 계산되어, 일정 평균 에러를 생성하게 된다. 상기 품질 기준 계산기는 대응하는 신호 샘플들 s(j)에 대한 평균 신호 세기를 계산하여, 측정된 신호대잡음비를 생성할 수 있다. 품질 비교기(600)는, 평균 에러 또는 신호대잡음비와 같은 상기 측정된 품질 기준을 원하는 품질과 비교한다. 만약 측정된 품질 기준이 허용 범위를 벗어나면, 상기 선택기(630)는 압축 제어 파라미터들을 결정하기 위한 새로운 양자화 프로파일을 선택한다. 품질 기준을 위한 상기 허용 범위는 사용자에 의하여 정의되고, 0 이거나 다른 값들의 일정 범위 안일 수 있다. 상기 BFP 파라미터 생성기(640)는, 도 12를 참조하여 위에서 설명한 것처럼, 상기 BFP 인코더(400)에 새로운 압축 제어 파라미터들을 제공한다.
상기 비트 패커(500)는, 예를 들어 도 2의 압축된 그룹(410) 또는 도 10의 압축된 그룹(418)과 같이, 상기 BFP 인코더(400)에 의하여 생성된 압축된 그룹들로부터 압축된 패킷들을 형성한다. 상기 비트 패커(500)는 다수의 압축된 그룹들을 이어붙여서 하나의 압축된 패킷을 위한 데이터 부분을 형성한다. 압축된 패킷의 데이터 부분에 대한 하나의 예가 도 7을 참조하여 위에서 설명되었다. 상기 비트 패커(500)는 압축된 패킷의 데이터 부분에 선행하는 하나의 헤더를 생성한다. 상기 헤더는 동기화(synchronization) 관련 정보, 해당 패킷에 의해 표현되는 샘플들의 수, 해당 패킷 내의 바이트들의 수, 인코딩된 압축 제어 파라미터들, 양자화 프로파일, 및 기타 식별 정보를 포함할 수 있다. 이러한 정보는 사용자가 지정한 프로토콜에 따라, 상기 헤더 안에서 고정된 비트 폭을 갖는 필드들 안에 표현될 수 있다. 압축된 블록들을 인코딩하기 위하여 상기 BFP 인코딩이 양자화 프로파일에 의존할 때는, 상기 헤더 안의 압축 제어 파라미터들은 양자화 프로파일에 대응하는 인덱스 값 또는 양자화 프로파일 자체의 파라미터들을 포함할 수 있다. 압축해제를 지원하기 위해, 상기 패킷 헤더가 디코딩되어, 상기 데이터 부분의 압축된 블록들을 디코딩하기 위한 파라미터들을 재생성하고, 그리고 압축해제된 샘플들을 재정렬시키도록 한다.
도 14는 블록 부동소수점 디코딩을 이용하여 압축된 패킷들을 압축해제하는 하나의 신호 처리 시스템에 대한 블록 다이어그램이다. 압축해제기(700)는 압축된 패킷들로 이루어진 입력 신호를 수신하고, 해당 응용프로그램에 특정한 신호처리 작업을 위하여, 응용프로그램 프로세서(722)에게 디코딩된 샘플들을 제공한다. 패킷 전처리기(702)는 압축된 패킷 각각의 헤더 및 데이터 부분을 분리하고, 압축된 데이터를 포함하는 상기 데이터 부분을 BFP 디코더(710)에게 제공한다. 상기 패킷 전처리기(702)는 헤더 안에 있는 인코딩된 파라미터들을 디코딩하고, 그들을 압축해제 제어기(730)에게 제공한다. 상기 BFP 디코더는, 압축된 그룹 각각에 해당하는 N_GROUP 개의 디코딩된 샘플들을 형성하도록, 디코딩된 압축 제어 파라미터들에 따라서, 해당 패킷의 압축된 그룹들을 압축해제한다. 후처리기(720)는 디코딩된 샘플들의 그룹들을 재정렬하고, 해당되는 신호 샘플들을 재구성하기 위하여 다른 작업들을 수행할 수 있다. 예를 들어, 만약 상기 전처리기(300)가 블록 부동소수점 인코딩 이전에 샘플링된 신호(201)의 1차 또는 고차 미분계수들을 계산하였다면, 상기 후처리기(720)은 샘플링된 신호를 재구성하기 위하여 디코딩된 샘플들의 1차 또는 고차 적분 값들을 계산한다.
도 15는 인코딩된 가수부 당 n_exp 비트들을 갖는 하나의 압축된 그룹을 압축해제하기 위한 블록 부동소수점 디코더(710) 작업들의 블록 다이어그램이다. 압축된 그룹 버퍼(740)는, 도 2의 압축된 그룹(410)에 대응하는, N_GROUP 개의 압축된 그룹들을 위한 지수부 토큰 및 가수부들을 수신한다. 지수부 디코더(750)는 도 4의 코드표(code table)을 사용하여 지수부 토큰을 디코딩하고, 아래에 설명한 것처럼, 지수부 값 n_exp를 제공한다. 상기 지수부 값 n_exp는 N_GROUP 개의 가수부들 각각을 표현하기 위한 비트들의 수를 가리킨다. 가수부 디코더(770)는, 원래 개수의 비트들 또는 목적지 프로세서의 데이터 형식에 맞추어 다른 개수의 비트들로 재구성하기 위하여, 각각의 가수부를 적절한 개수의 상위 비트들(통상적으로 부호 연장 비트들(sign extension bits)) 및 하위 비트들(n_LSB 비트들)을 구비한 하나의 샘플로 맵핑시킨다. 상기 가수부 디코더(770)는 압축해제된 그룹(780)을 생성하는데, S0 내지 S3의 압축해제된 샘플들은 도 2의 패킹된 가수부들 412-0 내지 412-3에 대응한다.
도 16은, 인코딩된 가수부 당 m_exp 비트들을 갖는 하나의 압축된 그룹을 압축해제하기 위한, 블록 부동소수점 디코더(710) 작업들의 블록 다이어그램이다. 압축된 그룹 버퍼(740)는 도 10에서 압축된 그룹(418)에 대응되는, 압축된 그룹을 수신한다. 지수부 디코더(750)는 도 4의 코드표를 사용하여 지수부 토큰을 디코딩하여, 아래에서 설명하는 것처럼, 지수부 값 n_exp를제공한다. 가수부 디코더(770)는 상기 지수부 값 n_exp 및 양자화 프로파일을 사용하여, 감소된 가수부 419-0 내지 419-3 당 비트 수를 나타내는 파라미터 m_exp를 결정한다. 상기 가수부 디코더(770)는 상기 가수부를 적절한 상위 비트들을 갖는 하나의 샘플로 맵핑시킨다. 가수부 쉬프트 계산기(772)는 상기 지수부 값 n_exp를 이용하여, 양자화 프로파일에 기반하여 n_LSB 파라미터를 결정한다. 바람직한 하나의 실시예에서, 좌측 쉬프트기(774)는 n_LSB 비트만큼 가수부를 쉬프트시키고, LSB 위치들에 0 값들을 추가하여, 대응되는 압축해제된 샘플을 생성한다. 상기 좌측 쉬프트기(774)의 대안적인 하나의 실시예에서는, 상기 n_LSB 비트들을 일정 값(예측 가능한 평균 값을 갖는 양자화 에러를 생성하는 '1'과 그에 이어지는 n_LSB-1 개의 0 값들과 같이), 또는 임의의 비트들로 채울 수 있다. 그 결과 얻어지는 압축해제된 그룹(790)은, 도 10의 패킹된 가수부들 419-0 내지 419-3에 대응하는, N_GROUP 개의 압축해제된 샘플들 S0 내지 S3를 포함한다. 상기 압축해제 제어기(730)는 상기 패킷 헤더로부터 회복된 양자화 프로파일에 따른 파라미터들을 상기 가수부 디코더(770) 및 상기 가수부 쉬프트 계산기(772)에 제공한다.
도 17은 도 4의 코드표에 따른 지수부 디코더(750)의 블록 다이어그램이다. 본 실시예에서, 상기 지수부 디코더(750)는, 지수부 토큰이, 도 5를 참조하여 앞에서 설명한 것처럼, 결합 인코딩된 지수부 차이값들(옵션 A), 단일 인코딩된 지수부 차이값(옵션 B), 또는 절대 인코딩된 지수부(옵션 C)를 나타내는지를 결정하기 위하여, 시험들을 수행한다. 상기 지수부 디코더(750)는 상기 지수부 토큰(501)의 하위 네 개 비트들을 테스트한다. 의사결정 블록(752)은 상기 지수부 토큰(751)의 하위 네 개 비트들의 값이 9보다 작은지 테스트한다. 만약 작다면, 상기 지수부 토큰(501)은 옵션 A에 따라 결합 인코딩된 지수부 차이값들을 표현한다. 디코딩 블록(760)은 상기 지수부 토큰(751)의 네 개 비트들을 디코딩하여, 연속적인 차이 값들 diff(i) 및 diff(i+1)를 결정한다. 이 값들은 연속되는 지수부 값들 n_exp(i) 및 n_exp(i+1)을 계산하는 데 사용된다. 가산기(762)는 상기 diff(i)를 이전에 계산된 지수부 값 n_exp(i-1)에 더하여, i 번째 지수부 값 n_exp(i)를 계산한다. 가산기(764)는 상기 차이값 diff(i+1)을 i 번째 지수부 값 n_exp(i)에 더하여 n_exp(i+1)를 계산한다. 의사결정 블록(754)는 상기 지수부 토큰(751)의 하위 네 개 비트들이 14보다 작은지를 테스트한다. 만약 그렇다면, 상기 지수부 토큰(501)은 옵션 B에 따라 인코딩된 지수부 차이값를 나타낸다. 디코딩 블록(766)은 상기 네 개 비트들을 디코딩하여 차이값 diff(i)를 결정한다. 가산기(768)은 상기 차이값 diff(i)를 이전에 계산된 지수부 값 n_exp(i-1)에 더하여, i 번째 지수부 값 n_exp(i)를 결정한다. 만약 상기 의사결정 블록들(752 및 754)의 결과들이 상기 지수부 토큰(751)의 하위 네 개 비트들에 대하여 부정적인 경우에는, 상기 지수부 토큰은 네 개의 비트들을 추가하여 총 여덟 개의 비트들을 가지며, 옵션 C에 따라 절대적으로 인코딩된 지수부를 나타낸다. 디코딩 블록(756)은 상기 8 개 비트들을 디코딩하여, 지수부 값 n_exp(i)를 결정한다.
도 18은, 도 3b를 참조하여 설명된 압축된 샘플들을 압축해제하는 하나의 예를 보여준다. 가수부 디코더(770)는 지수부 값 n_exp를 사용하여 압축된 샘플들(422 및 424) 각각의 가수부 비트들 및 부호 비트들을 식별한다. 상기 가수부 디코더(770)는 n_exp 가수부 비트들 및 부호 비트를 대응되는 압축해제된 샘플들(421a 및 423a)에 맵핑시키는데, 상기 압축해제된 샘플들 각각은 원래 비트 수인 K 비트들을 갖는다. 대안으로서, 상기 가수부 디코더(770)는, 확장된 개수의 Kext 비트들을 각각 가지는 압축해제된 샘플들(421b 및 423b)을 형성하기 위하여, 가수부를 원래 신호 샘플들의 비트 폭이 아닌 다른 비트 폭으로 맵핑시킬 수 있다. 본 예에서, 부호-절대값 표현에 해당하는, 압축해제된 샘플들(421a, 421b, 423a, 및 423b)의 상위 비트들은 0이다. 대안으로서, 상위 비트들 중 하나 이상은, 목적지 프로세서에서 필요로 하는 데이터 표현방식에 따라, 부호 연장 비트들일 수 있다.
도 19는, 도 8b를 참조하여 설명된 압축된 샘플들의 압축해제에 대한 하나의 예를 보여준다. 가수부 디코더(770)는 파라미터 m_exp를 사용하여, 압축된 샘플들(425 및 426)의 가수부 비트들 및 부호 비트를 식별한다. 상기 가수부 디코더(770)는 m_exp 가수부 비트들 및 부호 비트를 하나의 K 비트 샘플로 맵핑시킨다. 좌측 쉬프트기(774)는 상기 비트들을 왼쪽으로 n_LSB 비트만큼 이동시켜서, 압축해제된 샘플들(421c 및 423c)을 각각 생성한다. 대안으로서, 상기 가수부 디코더(770) 및 좌측 쉬프트기(774)는, 각각 Kext 비트의 확장된 비트 수를 갖는 압축해제된 샘플들(421d 및 423d)을 각각 생성할 수 있다. 대안으로서, 목적지 프로세서에서 필요로 하는 데이터 표현방식에 따라, 하나 이상의 상위 비트들이 부호 연장 비트들일 수 있다.
본 발명의 압축기(110) 및 압축해제기(700)는 샘플들의 특정 데이터 표현 형식에 의하여 제한되지 않는다. 상기 데이터 표현 형식들은 부호-절대값, 부호 연장, 2의 보수, 및 부호 없는 정수들을 포함할 수 있다. 상기 데이터 표현 형식은 또한, IEEE-754-1985 또는 IEEE-754-2008 표준에 설명된 바와 같은, 표준 부동소수점 형식의 32 비트, 64 비트, 또는 128 비트 값들로 이루어진 가수부 및 지수부들(또는 둘 다)을 포함할 수 있다. 상기 블록 부동소수점 인코더(400) 또는 전처리기(300)로 입력되는 샘플들은 상기 블록 부동소수점 디코더(710) 또는 후처리기(720)로부터의 압축해제된 샘플들과는 서로 다른 데이터 표현 형식을 가질 수 있다. 특정 응용프로그램을 위한 데이터 처리 시스템의 요구조건을 충족시키기 위하여, 사용자는 데이터 표현 형식들을 결정할 수 있다.
압축기(110)는 상기 ADC(200)로부터 출력되는 신호 샘플들에 간단한 연산들을 수행할 수 있다. 블록 부동소수점 인코딩은 비교기들, 감산기들, 및 열람표들을 사용한다. 압축해제기는 압축된 패킷들을 압축해제하기 위하여 간단한 연산들을 수행할 수 있다. 블록 부동소수점 디코딩 압축해제기는 열람표들, 가산기들, 및 쉬프터들을 포함한다. 상기 간단한 연산들로 인하여, 무선 통신, 레이더, 초음파, 미가공 컴퓨터 토모그래피 데이터, 및 다른 화상처리용 미가공 데이터를 포함하는 신호 처리 응용프로그램들에서, 상기 압축기(110) 및 압축해제기(700)는 실시간으로, 또는 적어도 상기 ADC(200)의 샘플링 속도만큼 빠른 속도로 작동하도록 구현될 수 있다.
상기 압축기(110)의 실시예들은, 상기 ADC(200) 및 압축기(110)를 하나의 단일 주문형 반도체(ASIC: application specific integrated circuit) 안에 통합시키는 것을 포함한다. 상기 압축기(110)의 구현은, 적어도 상기 BFP 인코더(400) 및 압축 제어기(600)를 포함한다. 상기 압축 제어기(600)는 ASIC 또는 하나의 마이크로콘트롤러 안에 구현될 수 있다. 응용프로그램에 따라서, 상기 압축기(110)은 또한 전처리기(300)를 포함할 수도 있다. 대안적인 아키텍쳐들은 상기 압축기(110)를 상기 ADC(200)와는 분리된 장치 안에 구현할 수 있다. 상기 압축기(110)는, 디지털 신호 처리기(DSP: digital signal processor), 마이크로프로세서, 마이크로콘트롤러, 멀티코어 CPU(IBM Cell과 같은), 또는 그래픽 프로세싱 유닛(GPU; Nvidia GeForce와 같은)과 같이, 하나의 ASIC, FPGA, 또는 프로그래밍 가능한 프로세서에 의하여 구현될 수 있다.
상기 압축해제기(700)는 상기 응용프로그램 프로세서(722)와 동일한 장치로, 또는 서로 다른 장치로 통합될 수 있다. 압축해제 작업들은 하나의 ASIC 또는 FPGA 안에 구현될 수 있다. 상기 압축해제기(700)는 하나의 디지털-아날로그 변환기(DAC: digital-to-analog converter)로 통합될 수 있는데, 상기 DAC는 도 14에서 응용프로그램 프로세서(722)를 대체한다. 대안으로서, 상기 압축해제 작업들은, DSP, 마이크로프로세서, 마이크로콘트롤러, CPU, 또는 GPU와 같은, 프로그래밍 가능한 프로세서에 의하여 실행가능한 소프트웨어 또는 펌웨어 프로그램 안에 구현될 수 있다. 상기 압축해제기(700)의 바람직한 실시예는, 하나의 GPU에 의해 실행될 수 있는 압축해제 작업들을 위한 명령들을 구비한, 하나의 소프트웨어 프로그램이다. 또한 상기 GPU는 응용프로그램 프로세서(722)의 작업들 중 적어도 일부를 구현하도록 프로그래밍될 수도 있다. 대안으로서, 해당 응용프로그램을 위한 추가적인 신호 처리 작업들을 위하여, 압축해제된 샘플들이, CPU와 같은, 또 다른 프로그래밍 가능한 프로세서로 전달될 수 있다.
도 20은 본 발명의 실시예들과 함께 사용하기에 적합한 컴퓨터 시스템(210)의 간략화된 블록 다이어그램이다. 컴퓨터 시스템(210)은 통상적으로, 버스 서브시스템(bus subsystem)(212)을 통하여 다수의 주변장치들과 통신하는, 적어도 하나의 프로세서(214)를 포함한다. 상기 주변장치들은, 메모리 서브시스템(226) 및 파일 저장 서브시스템(228)을 포함하는 하나의 저장 시스템(224), 사용자 인터페이스 입력 장치들(222), 사용자 인터페이스 출력 장치들(220), 그리고 통신 인터페이스 서브시스템(216)을 포함한다. 상기 입력 및 출력 장치들은 상기 컴퓨터 시스템(210)과의 사용자 상호작용을 가능하게 한다. 상기 통신 인터페이스 서브시스템(216)는 통신 채널 또는 네트워크(218)로의 인터페이스를 제공하는데, 이는 단일 채널일 수도 있고, 또는 다수의 채널들을 구비한 통신 네트워크일 수도 있다. 상기 통신 채널 또는 네트워크(218)는 다른 컴퓨터 시스템들의 대응하는 인터페이스 장치들, 발신 및 수신 장치들, 또는 외부 네트워크와 연결된다. 상기 통신 채널 또는 네트워크(218)는 유선 링크들, 광섬유 라인들, 무선 링크들, 또는 정보 통신을 위한 기타 메커니즘들을 포함할 수 있다. 통신 네트워크(218)는 많은 상호연결된 컴퓨터 시스템들 및 통신 링크들을 포함할 수 있다. 하나의 실시예에서는 상기 통신 네트워크(218)가 인터넷이지만, 다른 실시예들에서는 상기 통신 네트워크(218)가 적절한 컴퓨터 네트워크 어떤 종류라도 포함할 수 있다.
상기 사용자 인터페이스 입력 장치들(222)은 키보드, 마우스와 같은 위치 지정 장치, 트랙볼, 터치패드, 또는 그래픽 태블릿, 스캐너, 화면에 통합된 터치스크린, 음성 인식 시스템들과 같은 오디오 입력 장치들, 마이크, 및 다른 종류의 입력 장치들을 포함할 수 있다. 일반적으로, "입력 장치"라는 용어는, 상기 컴퓨터 시스템(210)에 정보를 입력하기 위한 모든 종류의 장치들 및 방법들을 포함하는 의미로 사용되었다.
상기 사용자 인터페이스 출력 장치들(220)은 디스플레이 서브시스템, 프린터, 팩스, 또는 오디오 출력 장치들과 같은 비시각적 디스플레이들을 포함할 수 있다. 디스플레이 서브시스템은 음극선관(CRT), LCD와 같은 평판 패널 장치, 프로젝션 장치, 또는 시각적 영상을 생성하기 위한 기타 메커니즘들을 포함할 수 있다. 또한 상기 디스플레이 서브시스템은, 오디오 출력 장치들을 통하는 것처럼, 비시각적 디스플레이를 제공할 수도 있다. 일반적으로, "출력 장치"라는 용어는, 상기 컴퓨터 시스템(210)으로부터 사용자 또는 다른 기계나 컴퓨터 시스템에게 정보를 출력하기 위한, 모든 가능한 종류의 장치들 및 방법들을 포함하는 의미로 사용되었다.
상기 저장 시스템(224)은, 본 명세서에서 설명된 상기 압축기(110) 및/또는 압축해제기(700)의 일부 또는 모든 기능들을 제공할 수 있는, 기본적인 프로그래밍 및 데이터 구성요소들을 저장한다. 이러한 소프트웨어 모듈들은 일반적으로 프로세서(214)에 의하여 실행된다. 상기 프로세서(214)(들)은 하나 이상의 DSP, 마이크로프로세서, 마이크로콘트롤러, CPU 또는 GPU를 포함할 수 있다. 또한 상기 프로세서(214)(들)은, 위에서 설명한 바와 같이, 상기 압축기(110) 또는 압축해제기(700)의 일부 또는 모든 기능들을 구현하는 전용 ASIC 또는 FPGA 로직을 포함할 수 있다.
상기 메모리 서브시스템(226)은 통상적으로, 프로그램이 실행되는 동안의 명령들 및 데이터의 저장을 위한 주 임의 접근 메모리(RAM: random access memory)(230)와, 확정된 명령들일 저장되는 읽기 전용 메모리(ROM: read only memory)(232)를 포함하여, 다수의 메모리들을 포함한다. 상기 파일 저장 서브시스템(228)은 프로그램 및 데이터 파일들을 위한 영구적 저장소를 제공하며, 하드 디스크 드라이브, 플로피 디스크 드라이브, 그리고 그와 함께 연계된 탈착가능 매체인, CD-ROM 드라이브, 광 드라이브, 또는 탈착가능 미디어 카트리지(removable media cartridge)들을 포함할 수 있다. 특정 실시예들의 기능들을 구현하는 데이터베이스 및 모듈들은 상기 파일 저장 서브시스템(228)에 의하여 저장될 수 있다.
상기 버스 서브시스템(212)은 상기 컴퓨터 시스템(210)의 다양한 구성요소들 및 서브시스템들이 의도된 바대로 서로 통신할 수 있도록 하는 메커니즘을 제공한다. 비록 상기 버스 서브시스템(212)이 하나의 단일 버스로서 개략적으로 도시되어 있지만, 버스 서브시스템의 대안적 실시예들은 다수의 버스들을 사용할 수 있다.
컴퓨터 판독가능 매체(240)는 상기 파일 저장 서브시스템(228) 및/또는 상기 통신 인터페이스 서브시스템(216)과 연계된 하나의 매체일 수 있다. 상기 컴퓨터 판독가능 매체(240)은 하드 디스크, 플로피 디스크, CD-ROM, 광학적 매체, 탈착가능 미디어 카트리지, 또는 전자기파일 수 있다. 상기 컴퓨터 판독가능 매체(240)가 하나의 압축된 데이터 파일(280)을 저장하고 있는 것이 도시되어 있다. 상기 컴퓨터 판독가능 매체는 또한, 상기 압축기(110) 및/또는 압축해제기(700)의 기능을 구현하는 프로그램들을 저장할 수 있다.
상기 컴퓨터 시스템(210) 자체는, 개인용 컴퓨터, 휴대용 컴퓨터, 워크스테이션, 컴퓨터 터미널, 네트워크 컴퓨터, 텔레비전, 메인프레임, 또는 기타 다른 데이터 처리 시스템 또는 사용자 장치를 포함하여, 여러 가지 종류의 것일 수 있다. 컴퓨터 및 네트워크의 지속적인 변화로 인하여, 도 20에 도시된 상기 컴퓨터 시스템(210)의 묘사는 바람직한 실시예를 도시하기 위한 하나의 특정한 예로서면 이해되어야 한다. 도 20에 묘사된 컴퓨터 시스템과는 다소 다른 구성요소들을 구비한, 상기 컴퓨터 시스템(210)에 대한 많은 서로 다른 구성들이 만들어질 수 있다.
본 발명의 실시예들은, 통신, 초음파, 레이더, 및 센서들을 포함하여, 다양한 신호 종류들 및 응용프로그램들의 신호 샘플들을 압축할 수 있다. 본 발명의 압축은, 컴퓨터 토모그래피(CT) 및 자기공명 영상처리(MRI)를 위한 미처리 데이터를 포함하여, 화상 처리를 위한 데이터 획득 시스템들에 의해 생성된 신호들에 적용될 수 있다. 이와 같은 종류의 응용프로그램을 위한 데이터 처리 시스템들은, 신호 획득 시스템(DAS: data acquisition system)이라고 칭해지는 신호 데이터를 위한 신호 획득 및 처리 시스템을 일반적으로 포함한다. 획득된(captured) 신호 데이터는 저장 및 응용프로그램 처리를 위하여 하나의 컴퓨터 시스템으로 전달될 수 있다. 도 21은, 다양한 응용프로그램들에서 사용되는 신호 데이터들의 획득 및 처리를 위한, 하나의 데이터 처리 시스템의 일반화된 블록 다이어그램이다. 데이터 획득 시스템(120)은 특정 응용프로그램을 위한 센서들 및 프로세싱 요소들을 포함한다. 예를 들어, 초음파 및 음파의 경우, 상기 데이터 획득 시스템(120)은, 수신된 음향 신호들을 아날로그 전기적 신호들로 변환하기 위하여, 초음파 변환기(ultrasonic transducer) 요소들을 포함한다. CT DAS를 포함한 X-레이 화상처리 기기들의 경우, 상기 데이터 획득 시스템(120)은 감지된 X-레이 방사선으로부터 전기적 신호들을 생성하기 위한 X-레이 센서들을 포함한다. 통신, 즉 레이더 또는 MRI DAS의 경우에는, 상기 데이터 획득 시스템(120)은, 수집된 전자기 복사를 아날로그 신호로 변환하기 위한 안테나 및 수신기 서브시스템을 포함한다. 수집된 데이터의 디지털 처리를 위하여, 상기 데이터 획득 시스템(120)은 상기 아날로그 신호를 샘플링하는 ADC(200)를 포함한다. 상기 신호 샘플들은, 응용처리 시스템의 구성에 따라, 인터페이스들(222 또는 218)을 통하여 상기 컴퓨터 시스템(210)에 전달될 수 있다. 상기 컴퓨터 시스템(210)은 응용프로그램 특유의 처리 및/또는 수신된 신호 샘플들의 저장 및/또는 처리 결과들의 저장을 수행한다. 초음파, 음파, 레이더, CT 및 MRI와 같은 응용프로그램들의 경우에, 프로세서(214)(들)는 디스플레이 서브시스템(220)을 위한 2차원 또는 3차원 영상들을 형성하기 위하여, 영상처리 연산들을 적용할 수 있다. 통신용 응용프로그램들의 경우에는, 상기 프로세서(214)가 사용자 인터페이스 출력 장치들(220)을 위한 출력을 형서하도록 신호 샘플들에 디모듈레이션(demodulation)을 적용하고, 그리고/또는 통신 네트워크(218)를 통한 다른 목적지로의 전송을 위하여 상기 신호 샘플들을 처리할 수 있다. 도 21의 일반적인 아키텍쳐를 이용하는 상기 및 기타 응용프로그램들의 경우에, 상기 압축기(110)를 데이터 획득 및 처리 시스템(120)에 통합시키는 것은, 인터페이스들(222 또는 228)을 위해 필요한 대역폭 요구조건들을 감소시키고, 컴퓨터 시스템(210)의 저장 시스템(224) 자원들을 보존한다. 상기 프로세서(214)(들)는, 응용프로그램을 위한 처리에 앞서서 압축된 데이터를 압축해제하기 위한 상기 압축해제기(700)를 구현하기 위하여, 전용 프로세서를 포함할 수 있다.
도 22는 압축을 포함한 데이터 획득 시스템(120)의 블록 다이어그램이다. 센서 서브시스템(130)은, 응용프로그램을 위하여 특정 모드의 수신된 파형을 아날로그 신호(100)로 변환하도록 작동하는, 감지기들(detectors), 변환기들(transducers), 및/또는 수신기들(receivers)을 포함한다. 도 1에서 설명한 것처럼, ADC(200)는 상기 아날로그 신호(100)를 샘플링하고, 압축기(110)는 신호 샘플들을 압축한다. 장치 인터페이스(130)는 상기 압축된 데이터를 컴퓨터 시스템(210)으로의 전송을 위하여 인터페이스들(218 또는 222)에 제공한다. 프로세서(214)들은 수신된 압축된 데이터를 압축해제하고, 도 14에서 설명한 것처럼, 응용프로그램 특유의 처리를 수행한다. 상기 컴퓨터 시스템(210)은, 나중의 압축해제 및 응용프로그램 처리를 위하여, 파일 저장 서브시스템(228) 안에 상기 수신된 압축된 데이터를 저장할 수 있다.
일부 응용프로그램들의 경우, 컴퓨터 시스템(224)은, 저장 시스템(224), 통신 채널(218) 또는 사용자 인터페이스 출력 장치들(220)로 전달하기 전에 신호 샘플들을 압축할 수 있다. 예를 들어, 화상 데이터를 출력 디스플레이 장치 또는 프린터와 같은 사용자 인터페이스 출력 장치들(220)로 전송하는 것은 출력 장치(220) 안에 내장된 대역폭 및 메모리를 소비해버릴 수 있다. 흔히, 하나의 사무실 또는 하나의 가정에서 프린터는 컴퓨터들의 네트워크를 위한 하나의 공유된 자원이어서, 스캔되거나(scanning) 래스터링(rastering)된 화상 샘플들은 네트워크(218)를 통하여 프린터에 전송된다. 하나의 디스플레이 장치 또는 프린터로 전송되는 화상 데이터를 처리하는 것은, 2차원 영상 데이터를 스캔된 영상 샘플들의 1차원 시퀀스로 스캔 또는 래스터링하는 것을 포함한다. 상기 프로세서(214)는, 출력 디스플레이 장치(220)에 전송하거나 상기 통신 네트워크(218)를 통하여 공유된 프린터에 전송하기 전에, 상기 압축기(110)를 적용시킬 수 있다. 이 경우 상기 래스터링된 영상 샘플들이 상기 압축기(700)로 입력되는 신호 샘플들이 된다. 출력 디스플레이 장치(220) 안에 내장된 압축해제기(700)는, 2차원 영상을 디스플레이 또는 출력하기 위한 작어들 전에, 상기 압축된 스캐닝된 샘플들을 압축해제한다.
비록 본 발명의 바람직한 실시예들이 도시되고 설명되었지만, 본 발명이 상기 실시예들로만 제한되지는 않는다는 사실은 자명하다. 청구범위의 청구항들에서 설명된 본 발명의 원리 및 범위를 벗어나지 않고도, 본 발명의 기술분야의 통상의 기술자들에게 있어서 많은 변경들, 변화들, 변형형태들, 대체형태들, 및 균등물들이 명확히 이해될 수 있을 것이다.

Claims (42)

  1. 샘플 당 다수의 비트(bit)들로 구성된 다수의 신호 샘플들을 압축하는 방법으로서,
    다수의 신호 샘플들을 인코딩 그룹(encoding group)들의 시퀀스(sequence)로 그룹핑(grouping)하는 단계;
    인코딩 그룹들의 상기 시퀀스 안에 있는 하나의 인코딩 그룹에 대하여, 해당 인코딩 그룹을 위한 하나의 블록 지수부 값(block exponent value)을 결정하고, 해당 인코딩 그룹 안에 있는 각 신호 샘플을 위한 가수부(mantissa)를 결정하는데, 상기 가수부가 상기 인코딩 그룹을 위한 상기 지수부 값에 근거한 비트 개수를 갖도록 하는 단계;
    인코딩 그룹들의 상기 시퀀스에 대하여, 상기 인코딩 그룹들을 위한 블록 지수부 값들을 인코딩하여 상기 시퀀스 안의 해당 인코딩 그룹들에 대한 지수부 토큰(exponent token)들을 결정하는데, 이때 상기 지수부 토큰은 상기 시퀀스의 하나 이상의 인코딩 그룹들을 위한 하나 이상의 블록 지수부 값들을 표현하도록 하는 단계; 및
    상기 지수부 토큰들 및 상기 가수부들을 사용하여, 저장 및 전송을 위해 다수의 신호 샘플들을 인코딩하여 압축된 데이터를 형성하는 단계를 포함하는 것을 특징으로 하는 방법.
  2. 제1항에 있어서,
    개별적인 인코딩 그룹들을 위한 상기 지수부 토큰들을, 개별적인 인코딩 그룹들 안의 신호 샘플들을 위하여 연속으로 배열된 가수부들에 인접하도록 배열함으로써 하나의 압축된 데이터 세트를 형성하는 것을 포함하는 것을 특징으로 하는 방법.
  3. 제1항에 있어서,
    상기 시퀀스 안의 다수의 인코딩 그룹들을 위한 지수부 토큰들을 연속으로 배열하고, 다수의 인코딩 그룹들 안에 있는 신호 샘플들을 위한 가수부들을 연속으로 배열함으로써 하나의 압축된 데이터 세트를 형성하는 것을 포함하는 것을 특징으로 하는 방법.
  4. 제1항에 있어서,
    상기 블록 지수부 값이, 해당 인코딩 그룹 내에서 최대 절대값(maximum magnitude)을 갖는 하나의 신호 샘플에서 최상위의 영이 아닌 비트(most significant non-zero bit)의 위치 값에 근거하는 것을 특징으로 하는 방법.
  5. 제1항에 있어서,
    상기 블록 지수부 값들의 인코딩이 다음의 단계들, 즉:
    상기 시퀀스 내의 연속된 인코딩 그룹들에 대하여 블록 지수부 값들 사이의 차이값들을 결정하는 단계; 및
    상기 결정된 차이값들을 인코딩하여, 상기 연속된 인코딩 그룹들의 적어도 일부에 대한 지수부 토큰들을 생성하는 단계를 포함하는 것을 특징으로 하는 방법.
  6. 제5항에 있어서,
    상기 블록 지수부 값들의 인코딩이 다음의 단계들, 즉:
    지수부 토큰 코드들로 이루어진 사전 결정된 집합을 제공하는데, 이때 상기 사전 결정된 집합 내의 지수부 토큰 코드들은, 두 개의 연속된 인코딩 그룹들에서 각각의 블록 지수부 값의 차이값들을 인코딩하도록 하는 단계; 및
    만약 상기 시퀀스에서 두 개의 연속된 인코딩 그룹들에 대한 블록 지수부 값들 사이의 결정된 차이값이 상기 사전 결정된 집합 내의 지수부 토큰 코드들과 일치하는 경우에, 상기 지수부 토큰 코드들 중 하나를 이용하여 상기 연속된 인코딩 그룹들 중 하나에 대한 블록 지수부 값을 표현하는 단계를 포함하는 것을 특징으로 하는 방법.
  7. 제5항에 있어서,
    상기 블록 지수부 값들의 인코딩이 다음의 단계들, 즉:
    지수부 토큰 코드들로 이루어진 사전 결정된 집합을 제공하는데, 이때 상기 사전 결정된 집합 내의 지수부 토큰 코드들은, 셋 이상의 연속된 인코딩 그룹들에서 블록 지수부 값의 차이값들을 각각 인코딩하도록 하는 단계; 및
    만약 상기 시퀀스에서 셋 이상의 연속된 인코딩 그룹들에 대한 블록 지수부 값들 사이의 결정된 차이값이 상기 사전 결정된 집합 내의 지수부 토큰 코드들과 일치하는 경우에, 상기 시퀀스 안의 인코딩 그룹들 중 하나 이상에 대한 블록 지수부 값을 상기 지수부 토큰 코드들 중 하나를 이용하여 나타내는 단계를 포함하는 것을 특징으로 하는 방법.
  8. 제1항에 있어서,
    상기 가수부의 결정은, 해당 인코딩 그룹 안의 신호 샘플들로부터 제거하기 위한 최하위 비트들(LSBs: least significant bits)의 개수를 지정하는데, 이때 상기 인코딩 그룹 내의 신호 샘플들을 위한 가수부는 상기 인코딩 그룹을 위한 블록 지수부 값에서 상기 최하위 비트들의 지정된 개수를 뺀 만큼의 비트들을 포함하는 것을 특징으로 하는 방법.
  9. 제8항에 있어서,
    상기 최하위 비트들의 개수의 지정은, 상기 인코딩 그룹을 위한 블록 지수부 값에 근거하여 지정되는 것을 특징으로 하는 방법.
  10. 제8항에 있어서,
    상기 최하위 비트들의 개수의 지정은, 압축된 데이터를 위한 원하는 비트 비율(bit rate)에 근거하여 지정되는 것을 특징으로 하는 방법.
  11. 제8항에 있어서,
    상기 최하위 비트들의 개수의 지정은, 압축된 데이터를 위한 원하는 품질 기준(quality metric)에 근거하여 지정되는 것을 특징으로 하는 방법.
  12. 제1항에 있어서,
    각각의 신호 샘플은 하나의 부호 비트(sign bit)를 포함하고, 상기 가수부의 결정은 결정된 가수부 값과 함께 각 신호 샘플의 부호 비트의 추가를 포함하는 것을 특징으로 하는 방법.
  13. 제1항에 있어서,
    상기 그룹핑, 결정, 및 인코딩을 수행하기 위하여 신호처리 시스템을 사용하는 것을 포함하고, 상기 신호처리 시스템은 아날로그 신호를 수신하는 아날로그-디지털 변환기(analog to digital converter)를 포함하며,
    상기 아날로그 신호를 상기 그룹핑 단계를 위해 제공되는 다수의 신호 샘플들로 변환하는 단계를 추가로 포함하는 것을 특징으로 하는 방법.
  14. 제1항에 있어서,
    상기 그룹핑, 결정, 및 인코딩을 수행하기 위하여, 하나의 데이터 프로세서 및 데이터 저장 시스템을 포함하는 것을 특징으로 하는 방법.
  15. 제1항에 있어서,
    상기 다수의 신호 샘플들을 데이터 통신 채널 안의 하나의 수신기(receiver)를 이용하여 수신하는 것을 특징으로 하는 방법.
  16. 제1항에 있어서,
    상기 다수의 신호 샘플들이 데이터 저장 시스템 안에 저장되고, 상기 데이터 저장 시스템으로부터 상기 다수의 신호 샘플들을 읽어들이는 것을 포함하는 것을 특징으로 하는 방법.
  17. 다수의 인코딩된 원래 신호 샘플들을 나타내는 압축된 데이터를 전달하는 입력 신호를 압축해제하는 방법으로서,
    상기 압축된 데이터를 분해(disassembling)하여 다수의 지수부 토큰들 및 다수의 압축된 그룹들로 이루어진 가수부들을 획득하는 단계로서, 이때 다수의 인코딩된 원래 신호 샘플들이 상기 지수부 토큰들 및 상기 가수부들에 의해 표현되는 단계;
    상기 다수의 지수부 토큰들을 디코딩하여, 상기 다수의 압축된 그룹들 중 하나와 각각 연계되는, 다수의 블록 지수부 값들을 형성하는 단계;
    각각의 압축된 그룹들에 대하여, 상기 연계된 블록 지수부 값을 사용하여 각각의 가수부를 표현하는 비트들의 개수를 결정하고, 상기 개수의 가수부 비트들을 대응되는 압축해제된 샘플로 맵핑(mapping)시켜서, 압축해제된 샘플들의 그룹을 형성하는 단계; 및
    상기 결정 및 맵핑을 상기 압축된 그룹들에 적용하여, 다수의 압축해제된 샘플들을 생성하는 단계를 포함하는 것을 특징으로 하는 방법.
  18. 제17항에 있어서,
    상기 다수의 지수부 토큰들 중 일부는 연속된 압축된 그룹들과 연계된 블록 지수부 값들 사이의 차이값들을 인코딩하고, 상기 다수의 지수부 토큰들을 디코딩하는 단계는 다음의 단계들, 즉:
    사전에 결정된 지수부 토큰 코드들의 집합을 제공하는 단계로서, 상기 사전 결정된 집합의 지수부 토큰 코드들은 연속된 압축된 그룹들과 연계된 블록 지수부 값들 사이의 대응하는 차이값들을 인코딩하도록 하는 단계;
    주어진 하나의 지수부 토큰에 대하여, 상기 주어진 지수부 토큰에 의해 표현되는 하나 이상의 차이값들을 디코딩하기 위하여 상기 사전 결정된 집합을 사용하는 단계; 및
    디코딩된 각각의 차이값에 대하여, 상기 디코딩된 차이값을 이전 블록 지수부 값에 더하여, 상기 연속된 압축된 그룹들 중 대응되는 하나와 연계된 블록 지수부 값을 결정하는 단계를 추가로 포함하는 것을 특징으로 하는 방법.
  19. 제17항에 있어서,
    상기 가수부 비트들의 개수 결정이 상기 연계된 블록 지수부 값에 근거하여 최하위 비트(LSB)들의 개수를 결정하는 단계를 추가로 포함하는데,
    이때 상기 맵핑은 대응되는 압축해제된 샘플의 상기 개수만큼의 최하위 비트들에 대하여 0의 비트 값 또는 디더링된(dithered) 비트 값을 삽입하는 것을 포함하는 것을 특징으로 하는 방법.
  20. 제19항에 있어서,
    상기 입력 신호가 하나의 압축 제어 파라미터를 포함하고, 최하위 비트들의 개수를 결정하는 상기 단계가 다음의 단계들, 즉:
    상기 입력 신호로부터 상기 압축 제어 파라미터를 수신하는 단계;
    상기 압축 제어 파라미터에 따라 지역적 메모리에 저장된 다수의 양자화 프로파일(quantization profile)들로부터 하나의 양자화 프로파일을 선택하는 단계로서, 이때 각각의 양자화 프로파일은 해당 블록 지수부 값들을 대응되는 최하위 비트들 개수에 대응시키는 하나의 열람표(look-up table) 또는 하나의 수식을 포함하고 있는 단계; 및
    선택된 양자화 프로파일을 사용하여, 상기 연계된 블록 지수부 값에 근거하여 최하위 비트들의 개수를 결정하는 단계를 추가로 포함하는 것을 특징으로 하는 방법.
  21. 제 17항에 있어서,
    상기 분해, 디코딩, 결정, 맵핑, 및 적용을 수행하는 하나의 데이터 프로세서의 사용을 포함하는 것을 특징으로 하는 방법.
  22. 제17항에 있어서,
    하나의 데이터 통신 채널에서 하나의 수신기를 이용한 상기 입력 신호의 수신을 포함하는 것을 특징으로 하는 방법.
  23. 제17항에 있어서,
    하나의 데이터 저장 시스템으로부터 입력 신호를 읽어들이는 것을 포함하는 것을 특징으로 하는 방법.
  24. 샘플 당 다수의 비트(bit)들로 구성된 다수의 신호 샘플들을 압축하는 장치로서,
    다수의 신호 샘플들을 인코딩 그룹(encoding group)들의 시퀀스(sequence)로 그룹핑(grouping)하여, 인코딩 그룹들의 시퀀스를 형성하는 로직(logic);
    각각의 인코딩 그룹에 대하여 하나의 블록 지수부 값을 결정하는 로직;
    각각의 인코딩 그룹 안의 신호 샘플들을 수신하고, 각 신호 샘플에 대한 가수부를 형성하는데, 이때 특정 인코딩 그룹의 각각의 가수부는 상기 인코딩 그룹을 위한 블록 지수부 값에 근거한 비트 개수를 갖도록 하는, 하나의 가수부 인코더(mantissa encoder);
    상기 인코딩 그룹들의 시퀀스에 대한 블록 지수부 값들을 인코딩하여 지수부 토큰들을 생성하는데, 이때 상기 지수부 토큰은 하나 이상의 인코딩 그룹들에 대한 하나 이상의 블록 지수부 값들을 표현하도록 하는, 하나의 지수부 인코더(exponent encoder); 및
    상기 인코딩 그룹들의 시퀀스에 대한 상기 지수부 토큰들 및 가수부들을 배열하여 저장 또는 전송을 위한 압축된 데이터를 형성하는 하나의 비트 패커(bit packer)를 포함하는 것을 특징으로 하는 장치.
  25. 제24항에 있어서,
    상기 비트 패커는,
    개별적인 인코딩 그룹들을 위한 상기 지수부 토큰들을, 개별적인 인코딩 그룹들 안의 신호 샘플들을 위하여 연속으로 배열된 가수부들에 인접하도록 배열함으로써 하나의 압축된 데이터 세트를 형성하는 하나의 멀티플렉서(multiplexer)를 추가로 포함하는 것을 특징으로 하는 장치.
  26. 제24항에 있어서,
    상기 비트 패커는,
    상기 시퀀스 안의 다수의 인코딩 그룹들을 위한 지수부 토큰들을 연속으로 배열하고, 다수의 인코딩 그룹들 안에 있는 신호 샘플들을 위한 가수부들을 연속으로 배열함으로써 하나의 압축된 데이터 세트를 형성하는 하나의 멀티플렉서(multiplexer)를 추가로 포함하는 것을 특징으로 하는 장치.
  27. 제24항에 있어서,
    상기 블록 지수부 값이, 해당 인코딩 그룹 내에서 최대 절대값(maximum magnitude)을 갖는 하나의 신호 샘플에서 최상위의 영이 아닌 비트(most significant non-zero bit)의 위치 값에 근거하는 것을 특징으로 하는 장치.
  28. 제24항에 있어서,
    상기 지수부 인코더는,
    상기 시퀀스 내의 연속된 인코딩 그룹들과 연계된 블록 지수부 값들 사이의 차이값들을 결정하여, 상기 지수부 인코더가 상기 결정된 차이값들을 인코딩함으로써 대응되는 지수부 토큰들을 생성하도록 하는, 하나의 차이값 계산기(difference calculator)를 추가로 포함하는 것을 특징으로 하는 장치.
  29. 제28항에 있어서,
    상기 지수부 인코더는,
    메모리에 저장된 지수부 토큰 코드들의 사전 결정된 집합으로서, 상기 사전 결정된 집합 내의 지수부 토큰 코드는 두 개의 연속된 인코딩 그룹들에서 각각의 블록 지수부 값의 차이값들을 인코딩하는, 지수부 토큰 코드들의 사전 결정된 집합; 및
    상기 시퀀스에서 두 개의 연속된 인코딩 그룹들에 대한 블록 지수부 값들 사이의 결정된 차이값이 상기 사전 결정된 집합 내의 지수부 토큰 코드들과 일치하는지 결정하고, 만약 일치하는 경우에는, 상기 지수부 토큰 코드들 중 하나를 선택하여 상기 두 개의 연속된 인코딩 그룹들 중 하나에 대한 블록 지수부 값을 표현하는 로직을 추가로 포함하는 것을 특징으로 하는 장치.
  30. 제28항에 있어서,
    상기 지수부 인코더는,
    메모리에 저장된 지수부 토큰 코드들의 사전 결정된 집합으로서, 상기 사전 결정된 집합 내의 지수부 토큰 코드는 셋 이상의 연속된 인코딩 그룹들에서 각각의 블록 지수부 값의 차이값들을 인코딩하는, 지수부 토큰 코드들의 사전 결정된 집합; 및
    상기 시퀀스에서 셋 이상의 연속된 인코딩 그룹들에 대한 블록 지수부 값들 사이의 결정된 차이값이 상기 사전 결정된 집합 내의 지수부 토큰 코드들과 일치하는지 결정하고, 만약 일치하는 경우에는, 상기 지수부 토큰 코드들 중 하나를 선택하여 상기 연속된 인코딩 그룹들 중 하나에 대한 블록 지수부 값을 표현하는 로직을 추가로 포함하는 것을 특징으로 하는 장치.
  31. 제24항에 있어서,
    상기 가수부 인코더가, 해당 인코딩 그룹 안의 신호 샘플들로부터 제거될 최하위 비트들(LSBs: least significant bits)의 개수를 지정하는데, 이때 상기 인코딩 그룹 내의 신호 샘플들을 위한 각각의 가수부는 상기 인코딩 그룹을 위한 블록 지수부 값에서 상기 최하위 비트들의 지정된 개수를 뺀 만큼의 비트들을 포함하는 것을 특징으로 하는 장치.
  32. 제31항에 있어서,
    상기 가수부 인코더가 메모리에 저장된 하나의 양자화 프로파일(quantization profile)을 추가로 포함하고, 상기 양자화 프로파일은 해당 블록 지수부 값들을 상기 최하위 비트들의 개수에 대응시키는 하나의 열람표(look-up table) 또는 하나의 수식(formula)을 포함하고, 상기 가수부 인코더가 상기 인코딩 그룹을 위한 블록 지수부 값에 근거하여 최하위 비트들의 개수를 지정하기 위하여 상기 양자화 프로파일을 이용하는 것을 특징으로 하는 장치.
  33. 제32항에 있어서,
    상기 가수부 인코더에 하나의 압축 제어 파라미터를 제공하는 하나의 압축 제어기를 추가로 포함하고, 다수의 상기 양자화 프로파일들이 메모리 안에 저장되어, 상기 가수부 인코더가 상기 압축 제어 파라미터에 따라 상기 양자화 프로파일들 중 하나를 선택하는 것을 특징으로 하는 장치.
  34. 제33항에 있어서,
    상기 압축 제어기는, 압축된 데이터를 위한 원하는 비트 비율(bit rate)에 근거하여 상기 압축 제어 파라미터를 결정하는 것을 특징으로 하는 장치.
  35. 제33항에 있어서,
    상기 압축 제어기는, 압축된 데이터를 위한 원하는 품질 기준(quality metric)에 근거하여 상기 압축 제어 파라미터를 결정하는 것을 특징으로 하는 장치.
  36. 제24항에 있어서,
    아날로그 신호를 수신하도록 연결되고, 상기 아날로그 신호를 다수의 신호 샘플들로 변환하는 하나의 아날로그-디지털 변환기(analog to digital converter)를 추가로 포함하는 것을 특징으로 하는 장치.
  37. 다수의 인코딩된 원래 신호 샘플들을 나타내는 압축된 데이터를 전달하는 입력 신호를 압축해제하는 장치로서,
    상기 다수의 인코딩된 원래 신호 샘플들이 다수의 지수부 토큰들 및 가수부들로 이루어진 다수의 압축된 그룹들에 의해 표현될 때, 상기 압축된 데이터를 수신하는 하나의 버퍼;
    상기 압축된 데이터를 분해해서 상기 다수의 지수부 토큰들 및 가수부들로 이루어진 다수의 압축된 그룹들을 획득하기 위하여 상기 버퍼에 결합된 로직;
    상기 다수의 지수부 토큰들을 전달받고, 상기 가수부들로 이루어진 다수의 압축된 그룹들 중 하나와 각각 연계되는 다수의 블록 지수부 값들을 결정하는, 하나의 지수부 디코더(exponent decoder); 및
    상기 가수부들로 이루어진 각각의 압축된 그룹과 그와 관련된 블록 지수부 값을 전달받고, 상기 압축된 그룹 내의 각각의 가수부를 표현하는 비트들의 개수는 상기 관련 블록 지수부 값을 기반으로 하도록 하며, 각 가수부의 상기 개수의 비트들을 대응되는 압축해제된 샘플로 맵핑(mapping)시켜서, 압축해제된 샘플들의 그룹을 형성하여, 상기 다수의 압축된 그룹들을 디코딩하여 다수의 압축해제된 샘플들을 생성하는, 하나의 가수부 디코더(mantissa decoder)를 포함하는 것을 특징으로 하는 장치.
  38. 제37항에 있어서,
    상기 다수의 지수부 토큰들 중 일부는 연속된 압축된 그룹들과 연계된 블록 지수부 값들 사이의 차이값들을 인코딩하고,
    상기 지수부 디코더는,
    메모리에 저장된 지수부 토큰 코드들의 사전 결정된 집합으로서, 상기 사전 결정된 집합 내의 지수부 토큰 코드는 셋 이상의 연속된 인코딩 그룹들에서 각각의 블록 지수부 값의 차이값들을 인코딩하고, 상기 지수부 디코더가 상기 사전 결정된 집합을 이용하여 수신된 지수부 토큰 값에 의해 표현되는 하나 이상의 차이값들을 디코딩함으로써 하나 이상의 디코딩된 차이값들을 획득하도록 하는, 지수부 토큰 코드들의 사전 결정된 집합; 및
    상기 디코딩된 각각의 차이값 및 그와 관련된 이전 블록 지수부 값을 전달받아, 상기 연속된 압축된 그룹들 중 대응되는 하나에 대하여 블록 지수부 값을 생성하는, 하나의 가산기(adder)를 포함하는 것을 특징으로 하는 장치.
  39. 제37항에 있어서,
    상기 가수부 디코더는, 상기 연계된 블록 지수부 값에 근거하여 최하위 비트들(LSBs)의 개수를 결정하고, 대응되는 압축해제된 샘플의 상기 개수만큼의 최하위 비트들에 대하여 0의 비트 값 또는 디더링된(dithered) 비트 값을 삽입하는 것을 특징으로 하는 장치.
  40. 제39항에 있어서,
    상기 입력 신호가 하나의 압축 제어 파라미터를 포함하고,
    입력 신호로부터 상기 압축 제어 파라미터를 전달받아, 상기 압축 제어 파라미터를 상기 가수부 디코더에 저장하는 하나의 압축해제 제어기; 및
    메모리에 저장되고 상기 가수부 디코더에 결합된, 다수의 양자화 프로파일들로서, 각각의 상기 양자화 프로파일은 해당 블록 지수부 값들을 상기 최하위 비트들의 개수에 대응시키는 하나의 열람표(look-up table) 또는 하나의 수식(formula)을 포함하고, 상기 가수부 디코더가 상기 압축 제어 파라미터에 따라 상기 양자화 프로파일들 중 하나를 선택하여, 상기 인코딩 그룹을 위한 블록 지수부 값에 근거하여 최하위 비트들의 개수를 결정하는 데 상기 선택된 양자화 프로파일을 이용하도록 하는, 다수의 양자화 프로파일들을 추가로 포함하는 것을 특징으로 하는 장치.
  41. 제37항에 있어서,
    하나의 데이터 통신 채널로부터 입력 신호를 수신하고, 상기 압축된 데이터를 상기 버퍼에 제공하는 하나의 수신기를 추가로 포함하는 것을 특징으로 하는 장치.
  42. 제37항에 있어서,
    상기 입력 신호를 저장하고, 압축된 데이터를 상기 버퍼에 제공하도록 연결된 하나의 데이터 저장 시스템을 추가로 포함하는 것을 특징으로 하는 장치.
KR1020127010665A 2009-10-23 2010-10-22 신호 데이터의 블록 부동소수점 압축 KR101703208B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/605,245 US8301803B2 (en) 2009-10-23 2009-10-23 Block floating point compression of signal data
US12/605,245 2009-10-23
PCT/US2010/053809 WO2011050293A2 (en) 2009-10-23 2010-10-22 Block floating point compression of signal data

Publications (2)

Publication Number Publication Date
KR20120098651A true KR20120098651A (ko) 2012-09-05
KR101703208B1 KR101703208B1 (ko) 2017-02-06

Family

ID=43899332

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020127010665A KR101703208B1 (ko) 2009-10-23 2010-10-22 신호 데이터의 블록 부동소수점 압축

Country Status (6)

Country Link
US (3) US8301803B2 (ko)
EP (1) EP2491488A4 (ko)
JP (1) JP5745527B2 (ko)
KR (1) KR101703208B1 (ko)
CN (1) CN102597948B (ko)
WO (1) WO2011050293A2 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160033550A (ko) * 2014-09-18 2016-03-28 삼성전자주식회사 표현 가능한 수의 범위를 조절하는 방법 및 장치
KR20170057807A (ko) * 2015-11-17 2017-05-25 한국전자통신연구원 데이터 압축 장치 및 방법, 데이터 복원 장치 및 방법

Families Citing this family (124)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2309648A1 (en) * 2009-09-14 2011-04-13 Thomson Licensing Method for encoding floating-point data, method for decoding floating-point data, and corresponding encoder and decoder
WO2011041269A2 (en) * 2009-09-30 2011-04-07 Samplify Systems, Inc. Enhanced multi-processor waveform data exchange using compression and decompression
US8301803B2 (en) * 2009-10-23 2012-10-30 Samplify Systems, Inc. Block floating point compression of signal data
US9003437B2 (en) * 2009-12-08 2015-04-07 At&T Intellectual Property I, L.P. Method and apparatus for utilizing a broadcasting channel
GB2484969B (en) * 2010-10-29 2013-11-20 Canon Kk Improved reference frame for video encoding and decoding
US8923386B2 (en) * 2011-02-11 2014-12-30 Alcatel Lucent Method and apparatus for signal compression and decompression
US8756262B2 (en) 2011-03-01 2014-06-17 Splunk Inc. Approximate order statistics of real numbers in generic data
JP5734717B2 (ja) * 2011-03-24 2015-06-17 セミコンダクター・コンポーネンツ・インダストリーズ・リミテッド・ライアビリティ・カンパニー 浮動小数点数のビット長変換回路およびそれを用いた振動補正制御回路
US20120278441A1 (en) * 2011-04-28 2012-11-01 Futurewei Technologies, Inc. System and Method for Quality of Experience Estimation
JP5762151B2 (ja) * 2011-06-06 2015-08-12 地方独立行政法人東京都立産業技術研究センター 数値データの圧縮システム及び方法
US9047118B2 (en) 2011-06-30 2015-06-02 Altera Corporation Computationally efficient compression of floating-point data
WO2013100783A1 (en) 2011-12-29 2013-07-04 Intel Corporation Method and system for control signalling in a data path module
US9070362B2 (en) * 2011-12-30 2015-06-30 Nyquest Corporation Limited Audio quantization coding and decoding device and method thereof
US9106936B2 (en) * 2012-01-25 2015-08-11 Altera Corporation Raw format image data processing
US8487805B1 (en) * 2012-02-23 2013-07-16 Freescale Semiconductor, Inc. Successive approximation analog-to-digital converter
US9104473B2 (en) 2012-03-30 2015-08-11 Altera Corporation Conversion and compression of floating-point and integer data
US9158686B2 (en) 2012-03-30 2015-10-13 Altera Corporation Processing system and method including data compression API
US9026568B2 (en) * 2012-03-30 2015-05-05 Altera Corporation Data compression for direct memory access transfers
DE102012007012A1 (de) * 2012-04-05 2013-10-10 Mir Medical Imaging Research Holding Gmbh Verfahren zur blockweisen Kompression von Messdaten bei Computertomographen
US8401863B1 (en) * 2012-04-25 2013-03-19 Dolby Laboratories Licensing Corporation Audio encoding and decoding with conditional quantizers
US11452153B2 (en) 2012-05-01 2022-09-20 Lisnr, Inc. Pairing and gateway connection using sonic tones
WO2013166158A1 (en) 2012-05-01 2013-11-07 Lisnr, Llc Systems and methods for content delivery and management
CN103458460B (zh) 2012-05-31 2017-04-12 国际商业机器公司 对信号数据进行压缩和解压缩的方法和装置
US10230959B2 (en) 2012-06-01 2019-03-12 Nxp Usa, Inc. Method and apparatus for performing compression of image data
CN103634273A (zh) * 2012-08-21 2014-03-12 电信科学技术研究院 数据压缩发送及解压缩方法和设备
US9118345B2 (en) 2012-10-04 2015-08-25 Altera Corporation Data compression profiler for configuration of compression
KR20140046815A (ko) * 2012-10-11 2014-04-21 삼성전자주식회사 전력 관리 집적 회로 및 그 구동 방법
US9274802B2 (en) 2013-01-22 2016-03-01 Altera Corporation Data compression and decompression using SIMD instructions
US9298457B2 (en) 2013-01-22 2016-03-29 Altera Corporation SIMD instructions for data compression and decompression
CN105264779B (zh) 2013-01-22 2019-06-07 阿尔特拉公司 使用simd指令的数据压缩和解压
JP6225687B2 (ja) * 2013-02-18 2017-11-08 富士通株式会社 データ処理装置、およびデータ処理方法
KR101374595B1 (ko) 2013-04-26 2014-03-17 (주)케이사인 데이터를 블록화하여 블록 토큰을 설계하는 방법
KR101978178B1 (ko) * 2013-05-24 2019-05-15 삼성전자주식회사 초음파 데이터를 처리하는 데이터 처리 장치 및 방법
US9274951B2 (en) 2013-05-31 2016-03-01 Altera Corporation Cache memory controller for accelerated data transfer
US10331583B2 (en) 2013-09-26 2019-06-25 Intel Corporation Executing distributed memory operations using processing elements connected by distributed channels
US8879858B1 (en) * 2013-10-01 2014-11-04 Gopro, Inc. Multi-channel bit packing engine
FR3010605A1 (fr) * 2014-03-18 2015-03-13 Thomson Licensing Procede de codage et de decodage de donnes flottantes d'un bloc d'image et dispositifs associes
WO2015052064A1 (en) * 2013-10-07 2015-04-16 Thomson Licensing Method for coding and decoding floating data of an image block and associated devices
US10305980B1 (en) 2013-11-27 2019-05-28 Intellectual Property Systems, LLC Arrangements for communicating data in a computing system using multiple processors
CN104702369B (zh) * 2013-12-06 2019-10-11 中兴通讯股份有限公司 一种处理信号样点数据的方法及装置
US9438899B1 (en) * 2013-12-11 2016-09-06 Harris Corporation Statistically lossless compression system and method
US9608664B2 (en) * 2013-12-30 2017-03-28 International Business Machines Corporation Compression of integer data using a common divisor
KR101428648B1 (ko) * 2014-01-29 2014-08-13 (주)케이사인 블록 토큰 기반의 암호화 방법 및 블록 토큰 기반의 복호화 방법
EP3116261A4 (en) * 2014-03-24 2017-03-08 Huawei Technologies Co. Ltd. Method for transmitting physical layer data and data transmission device
US9628107B2 (en) 2014-04-07 2017-04-18 International Business Machines Corporation Compression of floating-point data by identifying a previous loss of precision
KR102105606B1 (ko) 2014-06-02 2020-05-04 한국전자통신연구원 데이터 압축 장치
US10520584B2 (en) * 2014-06-05 2019-12-31 Continental Automotive Systems, Inc. Radar system with optimized storage of temporary data
US9541637B2 (en) * 2014-07-29 2017-01-10 Delphi Technologies, Inc. Radar data compression system and method
WO2016045733A1 (en) * 2014-09-25 2016-03-31 Nokia Solutions And Networks Oy Improving communication efficiency
US9350384B2 (en) 2014-09-30 2016-05-24 International Business Machines Corporation Hierarchical data compression and computation
KR102452183B1 (ko) * 2014-10-15 2022-10-07 엘아이에스엔알, 인크. 불가청 신호음
JP2016095600A (ja) * 2014-11-13 2016-05-26 カシオ計算機株式会社 電子機器およびプログラム
SE538512C2 (sv) * 2014-11-26 2016-08-30 Kelicomp Ab Improved compression and encryption of a file
US9959299B2 (en) 2014-12-02 2018-05-01 International Business Machines Corporation Compression-aware partial sort of streaming columnar data
US10114554B1 (en) 2015-01-20 2018-10-30 Intellectual Property Systems, LLC Arrangements for storing more data in faster memory when using a hierarchical memory structure
CN105988972B (zh) * 2015-02-03 2018-12-07 上海澜至半导体有限公司 实现快速傅里叶变换/快速傅里叶逆变换的方法和电路
US10909078B2 (en) 2015-02-25 2021-02-02 International Business Machines Corporation Query predicate evaluation and computation for hierarchically compressed data
US20170054449A1 (en) * 2015-08-19 2017-02-23 Texas Instruments Incorporated Method and System for Compression of Radar Signals
WO2017031149A1 (en) * 2015-08-19 2017-02-23 Texas Instruments Incorporated Method and system for compression of radar signals
US10644748B2 (en) 2015-08-26 2020-05-05 Viavi Solutions Inc. Network test instrument with cable connection and signature testing
US10615894B2 (en) 2015-08-31 2020-04-07 Viavi Solutions Inc. Network test instrument with testing session analysis
EP3142256A1 (en) * 2015-09-14 2017-03-15 AKADEMIA GORNICZO-HUTNICZA im. Stanislawa Staszica Method and apparatus for conversion of value of analog signal to compressed digital word
US10135461B2 (en) * 2015-09-25 2018-11-20 Intel Corporation Systems, methods, and apparatuses for decompression using hardware and software
CN112230881A (zh) * 2016-01-20 2021-01-15 中科寒武纪科技股份有限公司 浮点数处理器
US10666984B2 (en) * 2016-03-08 2020-05-26 Qualcomm Incorporated Apparatus and method for vector-based entropy coding for display stream compression
DE102016116821A1 (de) * 2016-09-08 2018-03-08 Atlas Elektronik Gmbh Verfahren zum Übertragen von Sonardaten an eine Auswerteeinheit einer Sonaranlage eines Unterwasserfahrzeugs sowie Sonaranlage dafür
US10402168B2 (en) 2016-10-01 2019-09-03 Intel Corporation Low energy consumption mantissa multiplication for floating point multiply-add operations
US10528321B2 (en) 2016-12-07 2020-01-07 Microsoft Technology Licensing, Llc Block floating point for neural network implementations
US10715618B2 (en) * 2016-12-12 2020-07-14 Hughes Network Systems, Llc Compressibility estimation for lossless data compression
US10558575B2 (en) 2016-12-30 2020-02-11 Intel Corporation Processors, methods, and systems with a configurable spatial accelerator
US10416999B2 (en) 2016-12-30 2019-09-17 Intel Corporation Processors, methods, and systems with a configurable spatial accelerator
US10474375B2 (en) 2016-12-30 2019-11-12 Intel Corporation Runtime address disambiguation in acceleration hardware
US10572376B2 (en) 2016-12-30 2020-02-25 Intel Corporation Memory ordering in acceleration hardware
US10135473B2 (en) * 2017-01-25 2018-11-20 Nokia Solutions And Networks Oy Bit rate compression for signal transmission
US10469397B2 (en) 2017-07-01 2019-11-05 Intel Corporation Processors and methods with configurable network-based dataflow operator circuits
US10467183B2 (en) 2017-07-01 2019-11-05 Intel Corporation Processors and methods for pipelined runtime services in a spatial array
US10515049B1 (en) 2017-07-01 2019-12-24 Intel Corporation Memory circuits and methods for distributed memory hazard detection and error recovery
US10387319B2 (en) 2017-07-01 2019-08-20 Intel Corporation Processors, methods, and systems for a configurable spatial accelerator with memory system performance, power reduction, and atomics support features
US10445451B2 (en) 2017-07-01 2019-10-15 Intel Corporation Processors, methods, and systems for a configurable spatial accelerator with performance, correctness, and power reduction features
US10445234B2 (en) 2017-07-01 2019-10-15 Intel Corporation Processors, methods, and systems for a configurable spatial accelerator with transactional and replay features
US10515046B2 (en) 2017-07-01 2019-12-24 Intel Corporation Processors, methods, and systems with a configurable spatial accelerator
US11086816B2 (en) 2017-09-28 2021-08-10 Intel Corporation Processors, methods, and systems for debugging a configurable spatial accelerator
US10496574B2 (en) 2017-09-28 2019-12-03 Intel Corporation Processors, methods, and systems for a memory fence in a configurable spatial accelerator
US11189295B2 (en) 2017-09-28 2021-11-30 Lisnr, Inc. High bandwidth sonic tone generation
US10380063B2 (en) 2017-09-30 2019-08-13 Intel Corporation Processors, methods, and systems with a configurable spatial accelerator having a sequencer dataflow operator
US10445098B2 (en) 2017-09-30 2019-10-15 Intel Corporation Processors and methods for privileged configuration in a spatial array
US10949766B2 (en) * 2017-10-15 2021-03-16 Gsi Technology Inc. Precise exponent and exact softmax computation
EP3471271A1 (en) * 2017-10-16 2019-04-17 Acoustical Beauty Improved convolutions of digital signals using a bit requirement optimization of a target digital signal
KR102389035B1 (ko) * 2017-12-06 2022-04-22 한국전자통신연구원 압축 데이터 송수신 방법 및 이를 위한 장치
US10417175B2 (en) 2017-12-30 2019-09-17 Intel Corporation Apparatus, methods, and systems for memory consistency in a configurable spatial accelerator
US10565134B2 (en) 2017-12-30 2020-02-18 Intel Corporation Apparatus, methods, and systems for multicast in a configurable spatial accelerator
US10445250B2 (en) 2017-12-30 2019-10-15 Intel Corporation Apparatus, methods, and systems with a configurable spatial accelerator
US11307873B2 (en) 2018-04-03 2022-04-19 Intel Corporation Apparatus, methods, and systems for unstructured data flow in a configurable spatial accelerator with predicate propagation and merging
US10564980B2 (en) 2018-04-03 2020-02-18 Intel Corporation Apparatus, methods, and systems for conditional queues in a configurable spatial accelerator
CN111989897B (zh) * 2018-04-10 2023-09-01 瞻博网络公司 计算机网络的测量指标
US11200186B2 (en) 2018-06-30 2021-12-14 Intel Corporation Apparatuses, methods, and systems for operations in a configurable spatial accelerator
US10891240B2 (en) 2018-06-30 2021-01-12 Intel Corporation Apparatus, methods, and systems for low latency communication in a configurable spatial accelerator
US10853073B2 (en) 2018-06-30 2020-12-01 Intel Corporation Apparatuses, methods, and systems for conditional operations in a configurable spatial accelerator
US10459866B1 (en) 2018-06-30 2019-10-29 Intel Corporation Apparatuses, methods, and systems for integrated control and data processing in a configurable spatial accelerator
US10678724B1 (en) 2018-12-29 2020-06-09 Intel Corporation Apparatuses, methods, and systems for in-network storage in a configurable spatial accelerator
US11029927B2 (en) 2019-03-30 2021-06-08 Intel Corporation Methods and apparatus to detect and annotate backedges in a dataflow graph
US10817291B2 (en) 2019-03-30 2020-10-27 Intel Corporation Apparatuses, methods, and systems for swizzle operations in a configurable spatial accelerator
US10965536B2 (en) 2019-03-30 2021-03-30 Intel Corporation Methods and apparatus to insert buffers in a dataflow graph
US10915471B2 (en) 2019-03-30 2021-02-09 Intel Corporation Apparatuses, methods, and systems for memory interface circuit allocation in a configurable spatial accelerator
US11037050B2 (en) 2019-06-29 2021-06-15 Intel Corporation Apparatuses, methods, and systems for memory interface circuit arbitration in a configurable spatial accelerator
DE102019215191A1 (de) * 2019-09-09 2021-03-11 Robert Bosch Gmbh FMCW-Radarsensor mit synchronisierten Hochfrequenzbausteinen
DE102019127922B4 (de) * 2019-10-16 2024-02-08 Infineon Technologies Ag Verfahren zum bearbeiten von radarsignalen eines radarsystems und radarsystem
US11907713B2 (en) 2019-12-28 2024-02-20 Intel Corporation Apparatuses, methods, and systems for fused operations using sign modification in a processing element of a configurable spatial accelerator
DE102020104594B4 (de) 2020-02-21 2024-01-25 Infineon Technologies Ag Verarbeitung von Radarsignalen
CN111431539B (zh) * 2020-03-04 2023-12-08 嘉楠明芯(北京)科技有限公司 一种神经网络数据的压缩方法、装置及计算机可读存储介质
US11416248B2 (en) * 2020-03-28 2022-08-16 Intel Corporation Method and system for efficient floating-point compression
US11709225B2 (en) * 2020-06-19 2023-07-25 Nxp B.V. Compression of data employing variable mantissa size
US11394396B2 (en) * 2020-09-25 2022-07-19 Advanced Micro Devices, Inc. Lossless machine learning activation value compression
US11949763B2 (en) * 2020-11-19 2024-04-02 Steradian Semiconductors Private Limited System, device and method for data compression in a radar system
CN112862106B (zh) * 2021-01-19 2024-01-30 中国人民大学 一种基于自适应编解码迭代学习控制信息传输系统和方法
US20220245261A1 (en) * 2021-02-01 2022-08-04 Protegrity Corporation Parallel tokenization of date and time information in a distributed network environment
WO2022173572A1 (en) * 2021-02-10 2022-08-18 Microsoft Technology Licensing, Llc Hierarchical and shared exponent floating point data types
US11886833B2 (en) 2021-02-10 2024-01-30 Microsoft Technology Licensing, Llc Hierarchical and shared exponent floating point data types
CN117321562A (zh) * 2021-02-18 2023-12-29 诺基亚通信公司 共享指数的有效计算
TWI785546B (zh) 2021-03-23 2022-12-01 創鑫智慧股份有限公司 浮點數的編碼與解碼的方法與裝置
GB2603559B (en) * 2021-07-22 2023-08-09 Imagination Tech Ltd Coding blocks of pixels
KR102653107B1 (ko) * 2021-08-23 2024-04-01 삼성전자주식회사 연산 방법 및 장치
CN117289851A (zh) * 2022-06-16 2023-12-26 加特兰微电子科技(上海)有限公司 数据存储位宽的确定方法及装置、存储指数数据的方法
WO2024106556A1 (ko) * 2022-11-14 2024-05-23 주식회사 사피온코리아 부동 소수점 데이터 압축을 위한 방법 및 장치

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05218803A (ja) * 1992-01-31 1993-08-27 Sony Corp ディジタルフィルタ装置
KR20070001207A (ko) * 2004-04-05 2007-01-03 코닌클리케 필립스 일렉트로닉스 엔.브이. 스테레오 코딩 및 디코딩 방법 및 그 장치

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5179528A (en) * 1989-11-22 1993-01-12 Texas Instruments Incorporated Signal processing system and method implementing a non-linear transfer function approximated by a piecewise linear transformation
JP2605916B2 (ja) * 1990-03-19 1997-04-30 ヤマハ株式会社 波形信号発生装置
EP0520068B1 (en) * 1991-01-08 1996-05-15 Dolby Laboratories Licensing Corporation Encoder/decoder for multidimensional sound fields
US5347478A (en) * 1991-06-09 1994-09-13 Yamaha Corporation Method of and device for compressing and reproducing waveform data
US5548687A (en) * 1992-04-30 1996-08-20 Ricoh Company, Ltd. Method and apparatus for controlling a printer using the N/2r format
CA2127520C (en) * 1994-07-06 2001-01-16 Gordon J. Reesor Signal processing circuit
JP2958742B2 (ja) * 1994-10-07 1999-10-06 ローランド株式会社 波形データ圧縮装置、波形データ伸長装置、量子化装置および浮動小数点によるデータ作成方法
US5839100A (en) * 1996-04-22 1998-11-17 Wegener; Albert William Lossless and loss-limited compression of sampled data signals
DE19625855C2 (de) * 1996-06-27 1998-06-10 Siemens Ag Verfahren und Signalauswerteeinrichtung zur Datenreduktion bei der Verarbeitung von Signalwerten mit einer digitalen Signalverarbeitungseinheit in einem Übertragungssystem
US5933360A (en) * 1996-09-18 1999-08-03 Texas Instruments Incorporated Method and apparatus for signal compression and processing using logarithmic differential compression
US6148317A (en) * 1998-08-14 2000-11-14 Qualcomm Incorporated Method and apparatus for compressing signals in a fixed point format without introducing a bias
US6807528B1 (en) * 2001-05-08 2004-10-19 Dolby Laboratories Licensing Corporation Adding data to a compressed data frame
GB0411880D0 (en) * 2004-05-27 2004-06-30 Imagination Tech Ltd Method and apparatus for efficient evaluation of "table-based" mathematical functions
US7769904B2 (en) * 2004-06-09 2010-08-03 L-3 Communications Integrated Systems L.P. Extensible binary mark-up language for efficient XML-based data communications and related systems and methods
US7554464B1 (en) * 2004-09-30 2009-06-30 Gear Six, Inc. Method and system for processing data having a pattern of repeating bits
EP1801691B1 (en) * 2004-10-15 2019-04-10 Nippon Telegraph And Telephone Corporation Information encoding method, decoding method, common multiplier estimation method, device using these methods, program, and recording medium
US8065354B1 (en) * 2005-03-04 2011-11-22 Nvidia Corporation Compression of 16 bit data using predictor values
US7541950B2 (en) * 2006-07-20 2009-06-02 Samplify Systems, Inc. Enhanced time-interleaved A/D conversion using compression
US20080154999A1 (en) * 2006-12-20 2008-06-26 Texas Instruments Incorporated Compressed Floating Point Representation Of Points On Monotonic Curves Which Can Be Specified By High Order Equations
JP2009239852A (ja) * 2008-03-28 2009-10-15 Fujifilm Corp 画像処理装置及び画像処理方法
US8174428B2 (en) * 2008-05-21 2012-05-08 Integrated Device Technology, Inc. Compression of signals in base transceiver systems
US7852977B2 (en) * 2008-09-11 2010-12-14 Samplify Systems, Inc. Adaptive compression of computed tomography projection data
US7916830B2 (en) * 2008-09-11 2011-03-29 Samplify Systems, Inc. Edge detection for computed tomography projection data compression
US8045811B2 (en) * 2008-11-26 2011-10-25 Samplify Systems, Inc. Compression and storage of projection data in a computed tomography system
US8157738B2 (en) * 2009-06-02 2012-04-17 Samplify Systems, Inc. Ultrasound signal compression
US8317706B2 (en) * 2009-06-29 2012-11-27 White Eagle Sonic Technologies, Inc. Post-beamforming compression in ultrasound systems
US8301803B2 (en) * 2009-10-23 2012-10-30 Samplify Systems, Inc. Block floating point compression of signal data

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05218803A (ja) * 1992-01-31 1993-08-27 Sony Corp ディジタルフィルタ装置
KR20070001207A (ko) * 2004-04-05 2007-01-03 코닌클리케 필립스 일렉트로닉스 엔.브이. 스테레오 코딩 및 디코딩 방법 및 그 장치

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160033550A (ko) * 2014-09-18 2016-03-28 삼성전자주식회사 표현 가능한 수의 범위를 조절하는 방법 및 장치
KR20170057807A (ko) * 2015-11-17 2017-05-25 한국전자통신연구원 데이터 압축 장치 및 방법, 데이터 복원 장치 및 방법

Also Published As

Publication number Publication date
WO2011050293A2 (en) 2011-04-28
US8874794B2 (en) 2014-10-28
US20130060827A1 (en) 2013-03-07
WO2011050293A3 (en) 2011-09-22
US8880734B2 (en) 2014-11-04
CN102597948B (zh) 2016-04-27
CN102597948A (zh) 2012-07-18
US20110099295A1 (en) 2011-04-28
US20130054661A1 (en) 2013-02-28
JP5745527B2 (ja) 2015-07-08
JP2013508867A (ja) 2013-03-07
EP2491488A4 (en) 2013-08-21
EP2491488A2 (en) 2012-08-29
KR101703208B1 (ko) 2017-02-06
US8301803B2 (en) 2012-10-30

Similar Documents

Publication Publication Date Title
KR101703208B1 (ko) 신호 데이터의 블록 부동소수점 압축
TWI524265B (zh) 浮點資料之壓縮
CN107923971B (zh) 用于压缩雷达信号的方法和系统
US20140101485A1 (en) Data compression profiler for configuration of compression
KR100819597B1 (ko) 멀티모드 알파 이미지 처리 방법 및 장치
US7408481B2 (en) Information encoding method, decoding method, common multiplier estimating method, and apparatus, program, and recording medium using these methods
Fout et al. An adaptive prediction-based approach to lossless compression of floating-point volume data
JP5343032B2 (ja) レベル・モードとラン・レングス/レベル・モードの間での符号化を適応させるエントロピー符号化
US7864083B2 (en) Efficient data compression and decompression of numeric sequences
JP2013251895A (ja) 信号データの圧縮および圧縮解除のための方法および装置(信号データの圧縮および圧縮解除)
CN114223137A (zh) 用于低延时编码的灵活霍夫曼树近似
JP2020527884A (ja) デジタルデータ圧縮のための方法及びデバイス
WO2015147912A1 (en) Variable bit-length reiterative lossless compression system and method
Kunkel et al. Towards decoupling the selection of compression algorithms from quality constraints–an investigation of lossy compression efficiency
Herna Compression of DNA Microarray Images
CN112532980A (zh) 一种医疗超音波图像处理方法
JPH07160267A (ja) 波形データ符号化装置、波形データ符号化方法、波形データ復号装置、及び波形データ符号化/復号装置
CN116347095A (zh) 数字图像编码器、解码器、处理器和电子设备
Kiran et al. Efficient encoding and decoding algorithms for distributed resampling
JPH06224775A (ja) ハフマン復号器

Legal Events

Date Code Title Description
N231 Notification of change of applicant
A201 Request for examination
E701 Decision to grant or registration of patent right