KR101610610B1 - Encoder, decoder and method - Google Patents

Encoder, decoder and method Download PDF

Info

Publication number
KR101610610B1
KR101610610B1 KR1020157027208A KR20157027208A KR101610610B1 KR 101610610 B1 KR101610610 B1 KR 101610610B1 KR 1020157027208 A KR1020157027208 A KR 1020157027208A KR 20157027208 A KR20157027208 A KR 20157027208A KR 101610610 B1 KR101610610 B1 KR 101610610B1
Authority
KR
South Korea
Prior art keywords
data
value
encoded
quot
encoder
Prior art date
Application number
KR1020157027208A
Other languages
Korean (ko)
Other versions
KR20150126890A (en
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 KR20150126890A publication Critical patent/KR20150126890A/en
Application granted granted Critical
Publication of KR101610610B1 publication Critical patent/KR101610610B1/en

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/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3002Conversion to or from differential modulation
    • 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
    • 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/3002Conversion to or from differential modulation
    • H03M7/3044Conversion to or from differential modulation with several bits only, i.e. the difference between successive samples being coded by more than one bit, e.g. differential pulse code modulation [DPCM]
    • 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/3068Precoding preceding compression, e.g. Burrows-Wheeler transformation
    • 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/3068Precoding preceding compression, e.g. Burrows-Wheeler transformation
    • H03M7/3079Context modeling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/04Protocols for data compression, e.g. ROHC

Abstract

대응하는 인코딩된 출력 데이터(D2 또는 D3)를 생성하기 위하여 수치 값들의 시퀀스를 포함하는 입력 데이터(D1)를 인코딩하기 위한 인코더(10)가 제공되며, 인코더(10)는, 상기 입력 데이터(D1)에, 하나 이상의 대응하는 인코딩된 시퀀스를 생성하기 위하여 차 및/또는 합 인코딩의 형태를 적용하기 위한 데이터 프로세싱 장치를 포함하며, 상기 하나 이상의 대응하는 인코딩된 시퀀스는, 상기 인코딩된 출력 데이터(D2 또는 D3)를 생성하기 위하여, 최대 값이 랩어라운드(wrap around)되고/되거나 최소 값이 랩어라운드되며, 상기 인코더(10)는 인코딩된 출력 데이터(D2 또는 D3)를 생성하기 위하여 사용되는 일련의 예측값에 대한 제1 디폴트 예측값을 사용하도록 동작될 수 있으며, 상기 인코딩된 데이터는 입력값, 예측값 및 인코딩 연산자를 이용하여 생성되는 것을 특징으로 한다.There is provided an encoder 10 for encoding input data D1 comprising a sequence of numerical values to generate corresponding encoded output data D2 or D3, ) Comprising a data processing device for applying a form of difference and / or sum encoding to generate one or more corresponding encoded sequences, wherein the one or more corresponding encoded sequences are encoded by the encoded output data D2 Or D3), the maximum value is wrapped around and / or the minimum value is wrapped, and the encoder 10 generates a series of < RTI ID = 0.0 > May be operated to use a first default prediction value for a prediction value and the encoded data is generated using an input value, a prediction value and an encoding operator .

Description

인코더, 디코더 및 방법{ENCODER, DECODER AND METHOD}[0001] ENCODER, DECODER AND METHOD [0002]

본 개시는 인코더 예컨대 다이렉트 ODelta 연산자를 사용하도록 동작될 수 있는 인코더와 관련된다. 또한, 본 개시는 데이터를 인코딩하는 방법 예컨대, 다이렉트 ODelta 연산자를 사용함으로써 데이터를 인코딩하는 방법과 관련된다. 또한, 본 개시는 또한 인코딩된 데이터를 디코딩하는 디코더 예컨대, 역 ODelta 연산자를 적용하도록 동작될 수 있는 디코더와 관련된다. 부가적으로, 본 개시는 인코딩된 데이터를 디코딩하는 방법 예컨대, 역 ODelta 연산자를 적용함으로써 인코딩된 데이터를 디코딩하는 방법과 관련된다. 또한 부가적으로, 본 개시는 비순간적(비일시적) 머신 판독 가능한 데이터 저장 매체 상에 기록되는 소프트웨어 제품과 관련되며, 여기서 소프트웨어 제품은 전술한 방법을 구현하기 위한 컴퓨터 하드웨어 상에서 실행될 수 있다. The present disclosure relates to an encoder, e.g. an encoder, which can be operated to use a direct ODelta operator. The present disclosure also relates to a method of encoding data, for example, a method of encoding data by using a direct ODelta operator. The present disclosure also relates to a decoder that decodes the encoded data, such as a decoder that can be operated to apply an inverse ODelta operator. Additionally, this disclosure relates to a method of decoding encoded data, for example, a method of decoding encoded data by applying an inverse ODelta operator. Additionally, the present disclosure relates to a software product recorded on an non-transient (non-volatile) machine-readable data storage medium, wherein the software product can be executed on computer hardware for implementing the methods described above.

클라우데 이 샤논(Claude E. Shannon)은 현대의 통신 시스템에 대한 기초를 제공한 통신의 수학적 이론은 제안하였다. 또한, 다양한 현대의 인코딩 방법들이 전술한 수학적 이론의 지식 내에서 발전되었다. 현대의 기술적 지식의 개요를 제공하는 정보 소스들의 리스트가 표 1에 제공된다. Claude E. Shannon proposed a mathematical theory of communication that provided the basis for modern communication systems. In addition, various modern encoding methods have been developed within the knowledge of the mathematical theory described above. A list of information sources providing an overview of modern technical knowledge is provided in Table 1.

공지된 기술 문헌The known technical literature 초기 문헌Early literature 세부사항                     Detail
P1

P1
“가변 길이 코드”, 위키피디아 (2012년 11월 28일 액세스)
URL: http://en.wikipedia.org/wiki/Variable-length_code
"Variable Length Code", Wikipedia (accessed November 28, 2012)
URL: http://en.wikipedia.org/wiki/Variable-length_code

P2

P2
“런-렝쓰 인코딩”, 위키피디아 (2012년 11월 28일 액세스)
URL: http://en.wikipedia.org/wiki/Run-length_encoding
"Run-Length Encoding", Wikipedia (accessed November 28, 2012)
URL: http://en.wikipedia.org/wiki/Run-length_encoding

P3

P3
“호프만 코딩”, 위키피디아 (2012년 11월 28일 액세스)
URL: http://en.wikipedia.org/wiki/Huffman_coding
"Hoffman coding", Wikipedia (accessed November 28, 2012)
URL: http://en.wikipedia.org/wiki/Huffman_coding

P4

P4
“산술 코딩(Arithmetic coding)”, 위키피디아 (2012년 11월 28일 액세스)
URL: http://en.wikipedia.org/wiki/Arithmetic_coding
"Arithmetic coding", Wikipedia (accessed November 28, 2012)
URL: http://en.wikipedia.org/wiki/Arithmetic_coding


P5


P5
“통신의 수학적 이론(A Mathematic Theory of Communication)”, Shannon, Claude E. (1948) (2012년 11월 28일 액세스)
URL: http://cm:bell-labs.com/cm/ms/what/shannonday/shannon1948.pdf
"A Mathematical Theory of Communication", Shannon, Claude E. (1948) (accessed November 28, 2012)
URL: http: //cm: bell-labs.com/cm/ms/what/shannonday/shannon1948.pdf

P6

P6
“델타 인코딩”, 위키피디아 (2012년 11월 28일 액세스)
URL: http://en.wikipedia.org/wiki/Delta_coding
"Delta Encoding", Wikipedia (accessed November 28, 2012)
URL: http://en.wikipedia.org/wiki/Delta_coding

P7

P7
샤논의 소스 코딩 이론; 위키피디아 (2012년 11월 28일 액세스)
URL: http://en.wikipedia.org/wiki/Source_coding_theorem
Shannon's source coding theory; Wikipedia (accessed November 28, 2012)
URL: http://en.wikipedia.org/wiki/Source_coding_theorem

P8

P8
“엔트로피”- 위키피디아 (2012년 11월 28일 액세스)
URL: http://en.wikipedia/wiki/Entropy
"Entropy" - Wikipedia (accessed November 28, 2012)
URL: http://en.wikipedia.org/wiki/Entropy

유럽 특허 EP 1 2376 974 B1("패킷 헤더 압축을 위한 방법 및 장치", Alcatel Lucent (FR))에는, 데이터 패킷의 송신 방법이 기재되어 있으며, 여기서 데이터 패킷은 압축된 값을 포함하는 필드(CF)를 구비한다. 압축된 값은 2개의 연속적인 데이터 패킷들 사이에서 전개되는 값을 나타내며 미리 정해진 간격(이하,“해석 간격”)을 포함한다. 이 방법은 이하의 단계 즉, In European Patent EP 1 2376 974 B1 ("Method and Apparatus for Packet Header Compression", Alcatel Lucent (FR)), a method of transmitting a data packet is described, wherein the data packet contains a field CF . The compressed value represents a value developed between two consecutive data packets and includes a predetermined interval (hereinafter " interpolation interval "). The method comprises the following steps:

(i) 압축되는 값과 미리 정해진 랩 어라운드 경계 사이의 거리가 미리 정해진 임계값보다 작으면, 압축된 값에 부가적인 비트를 첨부하는 단계로서, 여기서 부가적인 비트는, 압축되는 값의 상대적인 위치를 랩 어라운드 경계에 명료하게 표시하는 것인 상기 첨부하는 단계와,(i) appending an additional bit to the compressed value if the distance between the compressed value and the predetermined wraparound boundary is less than a predetermined threshold, wherein the additional bit is a relative position of the compressed value Wraparound boundary, the method comprising the steps of:

(ii) 수신기에서, 압축된 값의 모든 수신된 비트에 따라서 제1 해석 간격을 계산하는 단계와,(ii) at the receiver, calculating a first interpretation interval according to all received bits of the compressed value,

(iii) 제1 해석 간격의 하나의 값보다 큰 값이 수신되는 압축된 값과 일치하면 랩 어라운드를 시그널링하는 단계와,(iii) signaling a wraparound if a value greater than one value of the first analysis interval coincides with the received compressed value,

(iv) 랩 어라운드의 시그널링시에, 부가적인 비트를 제외하고 압축된 값의 모든 수신된 비트에 따라서 제2 해석 간격을 계산하는 단계와,(iv) at the time of signaling of the wrap-around, calculating a second interpretation interval in accordance with all received bits of the compressed value, excluding additional bits,

(v) 부가적인 비트를 이용하여 제2 해석 간격 내의 압축해제된 값을 명확화하는 단계를 포함한다.(v) clarifying the decompressed value in the second analysis interval using an additional bit.

샤논 엔트로피의 정의는 표 1에 목록화된 문헌 P7 및 P8에 제공된다. 주어진 데이터에 존재하는 엔트로피를 압축하도록 동작될 수 있는 복수의 상이한 압축 방법이 존재하며, 이러한 방법들은 때때로 엔트로피를 변경하기 위하여, 예컨대 주어진 데이터에 대한 더 큰 무손실 압축비를 획득하기 위하여 사용되며; 이러한 엔트로피 변경 방법은, 예컨대 표 1의 문헌 P2에 기재된 바와 같은 런-렝쓰 인코딩(RLE), 표 1의 문헌 P1에 기재된 바와 같은 가변 길이 코딩(VLC), 표 1의 문헌 P3에 기재된 바와 같은 호프만 코딩, 표 1의 문헌 P6에 기재된 바와 같은 델타 코딩, 및 표 1의 문헌 P4에 기재된 바와 같은 산술 코딩 즉, 레인지 코딩을 포함한다. 이러한 방법들은 알파벳 문자, 숫자, 바이트 및 워드를 나타내는 데이터를 압축하도록 유익하게 사용된다. 그러나, 이러한 방법들은 비트 레벨에서 주어진 데이터를 압축하도록 잘 구성되지 않으며, 이러한 이유로, 비트-바이-비트로 변경될 수 있는 이러한 주어진 데이터를 압축하기에는 매우 적합하지 않다.The definitions of Shannon entropy are provided in documents P7 and P8 listed in Table 1. There are a plurality of different compression methods that can be operated to compress the entropy present in a given data, and these methods are sometimes used to change entropy, e.g., to obtain a larger lossless compression ratio for a given data; This entropy modification method may be used, for example, for run-length encoding (RLE) as described in document P2 of Table 1, variable length coding (VLC) as described in document P1 of Table 1, Hoffman Coding, delta coding as described in document P6 of Table 1, and arithmetic coding as described in document P4 of Table 1, i.e., range coding. These methods are advantageously used to compress data representing alphabetic characters, numbers, bytes and words. However, these methods are not well-suited for compressing given data at the bit level, and for this reason are not very suitable for compressing such given data which may be changed to bit-by-bit.

예컨대 표 1의 문헌 P6에 기재된 델타 인코딩은, 포지티브 오리지널 데이터 값들로부터 포지티브 또는 네가티브 값일 수 있는 델타 값들을 생성하도록 동작될 수 있다. 또한, 사용된 데이터 요소들의 사이즈에 기초하여, 8-비트, 16-비트 또는 32-비트 랩 어라운드에 사용되는 공지된 델타 인코더의 구현이 존재한다. 그러나, 8-비트, 16-비트 또는 32-비트 값 이외의 레짐(regime)에 대하여 최적화되는 현대의 델타 인코더가 부족하다. 특히, 공지된 델타 인코더는 일반적으로 기인하는 3개의 상이한 값 즉, “-1”, “0” 및 “1”로서, 예컨대 비트-바이-비트 인코딩에서와 같이 코딩 오리지널 비트 값들이 즉, “0”과 “1”인 경우에 특히 비효율적이다. For example, the delta encoding described in document P6 of Table 1 may be operated to generate delta values that may be positive or negative values from the positive original data values. There is also an implementation of a known delta encoder used for 8-bit, 16-bit or 32-bit wrap around, based on the size of the data elements used. However, modern delta encoders are lacking which are optimized for regimes other than 8-bit, 16-bit or 32-bit values. In particular, known delta encoders generally use the coding original bit values as " 0 ", " 0 ", " &Quot; and " 1 ", respectively.

모든 종류의 데이터는 저장 공간을 소모하며, 통신 시스템 전송 용량은, 이러한 데이터가 하나의 위치로부터 다른 위치로 이용될 때 필요하게 된다. 데이터의 양이, 예컨대 3-차원 비디오 콘텐츠와 같은 멀티미디어 발전의 결과로서 증가함에 따라서, 더 많은 저장 공간 및 전송 용량이 데이터를 처리하는데 필요하게 되며, 또한 더 많은 에너지가 데이터의 양이 증가함에 따라서 필요하게 된다. 전세계적으로, 통신되는 데이터의 양은 시간에 대하여 점진적으로 증가되며; 예컨대 인터넷은 거대한 양의 데이터를 포함하며, 이들의 일부는 복수의 카피로 저장된다. 또한, 예컨대 데이터의 사이즈를 감소시킬 때에 사용하기 위하여, 데이터와 연관된 엔트로피(E)를 압축하기 위하여 현재 이용가능한 방법들이 존재한다. 또한, 예컨대 델타 인코딩 및 런-렝쓰 인코딩(RLE)에 대하여 엔트로피를 변경하는 이용가능한 방법들이 또한 존재하지만, 현재 실현가능한 더욱 더 큰 데이터 압축을 제공하기 위해서 개선된 방법들이 요구된다.All kinds of data consume storage space, and communication system transmission capacity is needed when such data is used from one location to another. As the amount of data increases as a result of multimedia developments such as, for example, three-dimensional video content, more storage space and transmission capacity are required to process the data, and more energy is required as the amount of data increases . Globally, the amount of data communicated is incrementally increased over time; For example, the Internet contains huge amounts of data, some of which are stored in multiple copies. Also, there are currently available methods for compressing the entropy (E) associated with the data, e.g., for use in reducing the size of the data. There are also available methods for changing entropy, for example, for delta encoding and run-length encoding (RLE), but improved methods are needed to provide even greater data compression that is currently feasible.

예컨대 비트-바이-비트 인코딩에서, 예컨대 오리지널 데이터 내의 데이터 요소들의 모든 값이 사용되지 않고/않거나 델타 인코딩 방법과 결합하여 사용되는 이전의 또는 후속의 인코딩 방법이, 디코딩되는 데이터에 대하여 원래 사용되는 비트 다이나믹보다 더 높은 비트 포맷을 요구하는 경우에, 오리지널 데이터의 더욱 빠르고 더욱 효율적인 인코딩을 달성할 수 있게 하는 공지된 델타 인코딩 방법의 최적 이용에 대한 필요성이 또한 존재한다.For example, in a bit-by-bit encoding, a previous or subsequent encoding method in which all values of data elements in the original data are not used and / or used in conjunction with a delta encoding method, There is also a need for an optimal utilization of known delta encoding methods that allows for faster and more efficient encoding of the original data, in the case of requiring higher bit formats than dynamic.

본 개시는 개선된 형태의 델타 인코더 즉, “다이렉트 ODelta 인코더”를 제공하도록 시도하며, 이러한 인코더는, 데이터의 다른 값들뿐만 아니라 개별적인 비트들을 인코딩할 때 즉, 비트-바이-비트 인코딩에 있어서 더욱 효율적이다.This disclosure attempts to provide a delta encoder, or " direct ODelta encoder, " which is an improved type, which encodes different values of data as well as individual bits, i.e., to be.

또한, 본 개시는 데이터를 델타 인코딩하는 개선된 방법 즉, 데이터를 다이렉트 ODelta 인코딩하는 방법을 제공하도록 시도한다. The present disclosure also attempts to provide an improved method of delta encoding data, i. E., A method of direct ODelta encoding data.

또한, 본 개시는 인코딩된 데이터 예컨대 ODelta 인코딩된 데이터를 디코딩하는 개선된 디코더 즉, 역 ODelta 디코더를 제공하도록 시도한다. The present disclosure also attempts to provide an improved decoder, i.e., an inverse ODelta decoder, for decoding encoded data, such as ODelta encoded data.

부가적으로, 본 개시는 인코딩된 데이터 예컨대 ODelta 인코딩 데이터를 디코딩하는 개선된 방법 즉, 데이터의 역 ODelta 디코딩 방법을 제공하도록 시도한다. Additionally, the present disclosure attempts to provide an improved method of decoding encoded data such as ODelta encoded data, i. E., An inverse ODelta decoding method of data.

제1 양태에 따르면, 첨부된 청구항 1에 청구된 인코더가 제공되는데, 대응하는 인코딩된 출력 데이터(D2 또는 D3)를 생성하기 위하여 수치 값들의 시퀀스를 포함하는 입력 데이터(D1)를 인코딩하기 위한 인코더가 제공되며, 상기 인코더는, 하나 이상의 대응하는 인코딩된 시퀀스를 생성하기 위하여 차 및/또는 합 인코딩의 형태를 입력 데이터(D1)에 적용하기 위한 데이터 프로세싱 장치를 포함하며, 상기 하나 이상의 대응하는 인코딩된 시퀀스는, 인코딩된 출력 데이터(D2 또는 D3)를 생성하기 위하여, 최대값이 랩 어라운드되고/되거나 최소값이 랩 어라운드되며, 상기 인코더(10)는 인코딩된 출력 데이터(D2 또는 D3)를 생성하기 위하여 사용되는 일련의 예측값에 대한 제1 디폴트 예측값을 사용하도록 동작될 수 있고, 상기 인코딩된 출력 데이터는 입력값, 예측값 및 인코딩 연산자를 이용하여 생성된다.According to a first aspect, there is provided an encoder as claimed in appended claim 1, wherein an encoder for encoding input data (D1) comprising a sequence of numerical values for generating corresponding encoded output data (D2 or D3) Wherein the encoder comprises a data processing device for applying a type of difference and / or sum encoding to the input data (D1) to generate one or more corresponding encoded sequences, wherein the one or more corresponding encodings The resulting sequence is wrapped and / or wrapped around a maximum value to produce encoded output data D2 or D3 and the encoder 10 generates encoded output data D2 or D3 And the encoded output data may be operable to use a first default prediction value for a set of prediction values used for the input value, e.g., It is generated using the value and encoding operator.

유익하게, 랩 어라운드는, 인코더를 구현할 때 네가티브 차이 또는 너무 큰 값이 발생하는 것을 피하도록 사용된다. “수치 값”이라는 용어는, 비트들의 그룹(바이너리보다 더 높은 차수)뿐만 아니라 개별적인 비트(바이너리)를 포함하도록 해석될 것이다. Advantageously, the wraparound is used to avoid generating negative differences or too large a value when implementing an encoder. The term " numerical value " will be interpreted to include a separate bit (binary) as well as a group of bits (higher order than binary).

본 발명은, 차 및/또는 합 인코딩과 랩 어라운드의 조합이 인코딩된 데이터(D2)를 생성하기 위하여 입력 데이터(D1)의 유용한 엔트로피 변경을 제공할 수 있고, 이것이 인코딩된 데이터(D2)로부터 인코딩된 데이터(D3)를 생성할 때 주어진 엔트로피 인코더 내에서 개선된 데이터 압축을 달성되게 한다는 점에서 유리하다.The present invention is based on the finding that the combination of difference and / or sum encoding and wrap around can provide useful entropy changes of the input data D1 to produce encoded data D2, It is advantageous in that improved data compression is achieved within a given entropy encoder when generating the generated data D3.

옵션적으로, 인코더에 대하여, 데이터 프로세싱 장치는, 인코딩된 출력 데이터(D2 또는 D3)를 생성하는데 사용되는 하나 이상의 대응하는 인코딩된 시퀀스에 적용하기 위한 하나 이상의 오프셋, 최소 및/또는 최대 값을 계산하기 위하여 입력 데이터(D1) 및/또는 하나 이상의 대응하는 인코딩된 시퀀스를 분석하도록 동작된다. 또한 옵션적으로, 인코더에 대하여, 하나 이상의 오프셋 값은 “0”값을 가진다.Optionally, for the encoder, the data processing device may calculate one or more offsets, minimum and / or maximum values for applying to the one or more corresponding encoded sequences used to generate the encoded output data (D2 or D3) To analyze the input data D1 and / or one or more corresponding encoded sequences. Optionally, for the encoder, one or more offset values have a value of " 0 ".

옵션적으로, 인코더는 하나 이상의 1-비트 값을 포함하는 수치 값을 프로세싱하도록 동작되며, 인코더는 비트-바이-비트 방식으로 입력 데이터(D1)를 인코딩하도록 동작된다.Optionally, the encoder is operated to process a numerical value comprising one or more 1-bit values, and the encoder is operated to encode the input data D1 in a bit-by-bit manner.

옵션적으로, 인코더에 있어서, 하나 이상의 대응하는 인코딩된 시퀀스는 입력 데이터(D1)의 순차적인 값에서의 변화를 나타낸다. Optionally, in the encoder, one or more corresponding encoded sequences represent changes in sequential values of the input data D1.

옵션적으로, 인코더는, 랩어라운드 값(wrapValue)을 사용하도록 동작하며, 랩어라운드 값은 최대 값(highValue) - 최소 값(lowValue) + 1이다. 이러한 랩어라운드 값은, 인코딩된 출력 데이터(D2 또는 D3)를 생성할 때, 최소 값(lowValue), 종종 네가티브 값보다 더 작은, 또는 최대 값(highValue) 보다 더 높은 이러한 값들이 발생하는 것을 피하기 위하여, 유익하게 사용된다.Optionally, the encoder operates to use the wrap around value (wrapValue), and the wrap around value is the maximum value (highValue) - the minimum value (lowValue) + 1. This wrap around value is used to avoid generating these values when generating the encoded output data D2 or D3, which is a minimum value (lowValue), often smaller than the negative value, or higher than the maximum value (highValue) , And is beneficially used.

옵션적으로, 인코더는 입력 데이터(D1)를 개별적으로 인코딩되는 복수의 데이터 섹션으로 세분(subdivide)하도록 동작될 수 있다. 또한 옵션적으로, 인코더는 데이터 압축이 인코딩된 출력 데이터(D2 또는 D3)에서 달성될 수 있을 때에만 데이터 섹션에 선택적으로 인코딩을 적용하도록 동작될 수 있다.Optionally, the encoder can be operated to subdivide the input data D1 into a plurality of data sections that are individually encoded. Optionally, the encoder may also be operable to selectively apply the encoding to the data section only when the data compression can be achieved in the encoded output data (D2 or D3).

또한 옵션적으로, 인코더에 있어서, 제1 디폴트 예측 값은 “0”이다. 또한 옵션적으로, 제1 예측 값은 또한 최소 값(lowValue), 최대 값(highValue), [최대 값(highValue) + 최소값(lowValue) +1]/2 등일 수도 있다.Optionally, in the encoder, the first default prediction value is " 0 ". Optionally, the first prediction value may also be a lowValue, a highValue, a highValue + a lowValue + 1/2, or the like.

옵션적으로, 인코더는 인코딩된 출력 데이터(D2 또는 D3)를 생성하기 위하여 부가적인 인코딩을 적용하도록 동작될 수 있으며, 여기서 부가적인 인코딩은, 런렝쓰 인코딩(run-length encoding; RLE), 스플릿 RLE, 엔트로피 모디파이어(entropy modifier; EM), 가변 길이 코딩(variable length coding; VLC), 호프만 코딩, 산술 코딩, 레인지 코딩 중 적어도 하나를 포함한다.Optionally, the encoder may be operable to apply additional encoding to generate the encoded output data D2 or D3, where the additional encoding may be a run-length encoding (RLE), a split RLE , An entropy modifier (EM), variable length coding (VLC), Hoffman coding, arithmetic coding, and range coding.

옵션적으로, 인코더는, 런렝쓰 인코딩(RLE), 스플릿 RLE, 엔트로피 모디파이어(EM), 호프만 코딩, 가변 길이 인코딩(variable length encoding; VLE), 레인지 코딩 및/또는 산술 코딩을 이용하는 인코딩에 효율적인 상호 유사한 비트들의 런-렝쓰에 따라서 입력 데이터(D1)를 복수의 섹션으로 세분하도록 동작될 수 있다.Optionally, the encoder is capable of encoding efficiently using run length encoding (RLE), split RLE, entropy modifier (EM), Huffman coding, variable length encoding (VLE), range coding and / And may be operated to subdivide the input data D1 into a plurality of sections according to the run-length of similar bits.

옵션적으로, 인코더에 있어서, 프로세싱 장치는, 비일시적 머신 판독 가능한 데이터 저장 매체 상에 기록되는 하나 이상의 소프트웨어 제품을 실행하도록 동작되는 컴퓨팅 하드웨어를 이용하여 구현된다.Optionally, for an encoder, the processing device is implemented using computing hardware operative to execute one or more software products recorded on a non-transitory machine-readable data storage medium.

제2 양태에 따르면, 인코딩된 대응하는 출력 데이터(D2 또는 D3)를 생성하기 위하여 수치 값들의 시퀀스를 포함하는 입력 데이터(D1)를 인코딩하는 인코더를 이용하는 방법이 제공되며, 이 방법은, According to a second aspect, there is provided a method of using an encoder to encode input data (D1) comprising a sequence of numerical values to generate encoded corresponding output data (D2 or D3)

(a) 하나 이상의 대응하는 인코딩된 시퀀스를 생성하기 위하여 차 및/또는 합 인코딩의 형태를 입력 데이터(D1)에 적용하기 위한 인코더의 데이터 프로세싱 장치를 이용하는 단계와,(a) using an encoder's data processing device to apply the type of difference and / or sum encoding to the input data (D1) to generate one or more corresponding encoded sequences;

(b) 인코딩된 출력 데이터(D2 또는 D3)를 생성하기 위하여, 하나 이상의 대응하는 인코딩된 시퀀스에서 최대 값이 랩 어라운드되고/되거나 최소 값이 랩 어라운드되도록 데이터 프로세싱 장치를 이용하는 단계를 포함한다.
상기 방법은 인코딩된 출력 데이터(D2 또는 D3)를 생성하기 위하여 사용되는 일련의 예측값에 대한 제1 디폴트 예측값을 사용하는 단계를 포함하며, 상기 인코딩된 데이터는 입력값, 예측값 및 인코딩 연산자를 이용하여 생성된다.
(b) using the data processing device to wrap the surroundings and / or wrap the surroundings in the one or more corresponding encoded sequences to produce the encoded output data (D2 or D3).
The method includes using a first default prediction value for a series of prediction values used to generate encoded output data (D2 or D3), wherein the encoded data is encoded using an input value, a prediction value and an encoding operator .

유익하게, 랩 어라운드는, 인코딩 방법을 구현할 때 네가티브 차, 또는 너무 큰 값이 발생하는 것을 피하기 위하여 사용된다. “수치 값”이라는 용어는, 비트들의 그룹(바이너리 보다 더 높은 차수)뿐만 아리라 개별적인 비트(바이너리)를 포함하도록 해석될 것이다.Advantageously, wraparound is used to avoid generating a negative difference, or too large a value, when implementing an encoding method. The term " numerical value " will be interpreted to include individual bits (binary) as well as groups of bits (higher order than binary).

옵션적으로, 방법은 인코딩된 출력 데이터(D2 또는 D3)를 생성하는데 사용하기 위한 하나 이상의 대응하는 인코딩된 시퀀스에 적용하기 위한 하나 이상의 오프셋, 최소 및/또는 최대 값을 계산하기 위하여 입력 데이터(D1) 및/또는 하나 이상의 대응하는 인코딩된 시퀀스를 분석하는 데이터 프로세싱 장치를 이용하는 단계를 포함한다. 또한 옵션적으로, 방법은 하나 이상의 오프셋 값에 대하여 “0”값을 이용하는 단계를 포함한다.Optionally, the method further comprises the step of generating input data D1 (D2 or D3) to calculate one or more offsets, minimum and / or maximum values for applying to one or more corresponding encoded sequences for use in generating the encoded output data D2 or D3 ) And / or a data processing device that analyzes one or more corresponding encoded sequences. Optionally, the method also includes using a " 0 " value for one or more offset values.

옵션적으로, 방법은 하나 이상의 1-비트 값을 포함하는 수치 값을 프로세싱하는 단계와 입력 데이터(D1)를 비트-바이-비트 방식으로 인코딩하는 단계를 포함한다. 또한 옵션적으로, 방법은 하나 이상의 오프셋 값에 대하여 “0”값을 이용하는 단계를 포함한다.Optionally, the method comprises processing a numerical value comprising one or more 1-bit values and encoding the input data D1 in a bit-by-bit manner. Optionally, the method also includes using a " 0 " value for one or more offset values.

옵션적으로, 방법을 구현할 때, 하나 이상의 대응하는 인코딩된 시퀀스는 입력 데이터(D1)의 순차적인 값들에서의 변화를 나타낸다.Optionally, when implementing the method, the one or more corresponding encoded sequences represent changes in sequential values of the input data D1.

옵션적으로, 방법은 랩어라운드 값(wrapValue)을 사용하기 위하여 인코더를 동작시키는 단계를 포함하며, 여기서 랩어라운드 값은 최대값(highValue) - 최소값(lowValue) + 1이다. 이러한 랩어라운드는, 인코딩된 출력 데이터(D2 또는 D3)를 생성할 때, 최소 값(lowValue), 종종 네가티브 값보다 작거나 또는 최대값(highValue)보다 더 높은 이러한 값들이 발생하는 것을 피하기 위하여, 유익하게 사용된다.Optionally, the method comprises operating an encoder to use a wrap around value, wherein the wrap around value is a highValue - lowValue + 1. This wraparound is advantageous in order to avoid generating these values when generating the encoded output data D2 or D3, which is a minimum value (lowValue), often less than the negative value or higher than the maximum value (highValue) Lt; / RTI >

옵션적으로, 방법은 입력 데이터(D1)를 개별적으로 인코딩되는 복수의 데이터 섹션으로 세분하는 단계를 포함한다. 또한 옵션적으로, 방법은 데이터 압축이 인코딩된 출력 데이터(D2 또는 D3)에서 달성될 수 있을 때에만 데이터의 섹션에 선택적으로 인코딩을 적용하는 단계를 포함한다.Optionally, the method includes subdividing the input data D1 into a plurality of data sections that are individually encoded. Optionally, the method further comprises selectively applying the encoding to a section of data only when the data compression can be achieved in the encoded output data (D2 or D3).

또한 옵션적으로, 방법에 있어서, 디폴드 제1 예측값은 “0”이다. 또한 옵션적으로, 제1 예측값은 또한 최소 값(lowValue), 최대 값(highValue), [최대 값(highValue) + 최소 값(lowValue) +1]/2 등일 수 있다.Optionally, in the method, the default first predicted value is " 0 ". Optionally, the first prediction value may also be a lowValue, a highValue, a highValue + a lowValue + 1/2, or the like.

옵션적으로, 방법은 인코딩된 출력 데이터(D2)를 생성하기 위하여 부가적인 인코딩을 적용하는 단계를 포함하며, 상기 부가적인 인코딩은, 런렝쓰 인코딩(RLE), 스플릿 RLE, 엔트로피 모디파이어(EM), 가변 길이 코딩(VLC), 호프만 코딩, 산술 코딩, 레인지 코딩 중 적어도 하나를 포함한다.Optionally, the method comprises applying additional encoding to generate encoded output data D2, wherein the additional encoding includes at least one of run-length encoding (RLE), split RLE, entropy modifier (EM) Variable length coding (VLC), Hoffman coding, arithmetic coding, and range coding.

또한 옵션적으로, 방법은, 런렝쓰 인코딩(RLE), 스플릿 RLE, 엔트로피 모디파이어(EM), 호프만 코딩, 가변 길이 인코딩(VLE), 레인지 코딩 및/또는 산술 코딩을 이용하여 인코딩에 효율적인 상호 유사한 비트들의 런렝쓰에 따라서 입력 데이터(D1)를 복수의 섹션으로 세분하는 단계를 포함한다.Optionally, the method further comprises the steps of: using a run-length encoding (RLE), split RLE, entropy modifier (EM), Hoffman coding, variable length encoding (VLE), range coding and / And subdividing the input data D1 into a plurality of sections according to the run length of the input data D1.

또한 옵션적으로, 방법은 비일시적 머신 판독 가능한 데이터 저장 매체 상에 기록되는 하나 이상의 소프트웨어 제품을 실행하도록 동작될 수 있는 컴퓨팅 하드웨어를 이용하여 프로세싱 장치를 구현하는 단계를 포함한다.Optionally, the method also includes implementing the processing device using computing hardware operable to execute one or more software products recorded on a non-transitory machine-readable data storage medium.

제3 양태에 따르면, 디코딩된 출력 데이터(D5)를 생성하기 위하여 인코딩된 데이터(D2, D3 또는 D4)를 디코딩하는 디코더가 제공되며, 상기 디코더는 인코딩된 데이터(D2, D3 또는 D4)의 하나 이상의 부분을 프로세싱하기 위한 데이터 프로세싱 장치를 포함하며, 데이터 프로세싱 장치는 상기 하나 이상의 부분의 하나 이상의 대응하는 인코딩된 시퀀스에 차 및/또는 합 디코딩의 형태를 적용하도록 동작될 수 있고, 하나 이상의 인코딩된 시퀀스는 디코딩된 출력 데이터(D5)를 생성하기 위하여, 최대 값이 랩 어라운드되고/되거나 최소 값이 랩 어라운드되며, 상기 데이터 프로세싱 장치는 디코딩되는 일련의 데이터에서의 제1 예측값의 디폴트값을 추정하도록 동작될 수 있다. According to a third aspect, there is provided a decoder for decoding encoded data (D2, D3 or D4) to produce decoded output data (D5), said decoder comprising one of the encoded data (D2, D3 or D4) Wherein the data processing device is operable to apply a type of difference and / or sum decoding to one or more corresponding encoded sequences of the one or more portions, wherein the one or more encoded The sequence is wrapped around and / or wrapped around a minimum value to produce decoded output data D5, and the data processing apparatus is configured to estimate a default value of a first estimate in a series of data to be decoded Can be operated.

옵션적으로, 디코더는, 하나 이상의 1-비트 값을 포함하는 인코딩된 데이터(D2, D3 또는 D4)를 디코딩하도록 동작될 수 있고, 디코더는 비트-바이-비트 방식으로 인코딩된 데이터(D2, D3 또는 D4)를 디코딩하도록 동작될 수 있다. Optionally, the decoder may be operable to decode the encoded data (D2, D3, or D4) comprising one or more 1-bit values, and the decoder may decode the bit-by-bit encoded data D2, D3 Or < RTI ID = 0.0 > D4. ≪ / RTI >

옵션적으로, 디코더는 디코딩된 출력 데이터(D5)를 생성하는데 사용하기 위한 하나 이상의 인코딩된 시퀀스에 적용하기 위한 하나 이상의 값을 데이터 프로세싱 장치가 수신하게 동작될 수 있도록 배치된다. 또한 옵션적으로, 수신된 값들은 최대 값, 최소 값 및/또는 오프셋 값이다. 또한 옵션적으로, 디코더는 “0” 값을 가지는 하나 이상의 오프셋 값에 대한 함수에 대하여 동작될 수 있다.Optionally, the decoder is arranged such that the data processing apparatus can be operated to receive one or more values for applying to one or more encoded sequences for use in generating decoded output data D5. Optionally, the received values are a maximum value, a minimum value and / or an offset value. Optionally, the decoder can also be operated on a function for one or more offset values having a value of " 0 ".

옵션적으로, 디코더는 인코딩된 데이터(D2, D3 또는 D4)로 인코딩된 순차적인 값들에서의 변화를 나타내는 하나 이상의 대응하는 인코딩된 시퀀스에 대한 함수에 대하여 동작될 수 있다.Optionally, the decoder may be operated on a function for one or more corresponding encoded sequences indicating a change in sequential values encoded with the encoded data (D2, D3 or D4).

옵션적으로, 디코더는 랩어라운드 값(wrapValue)을 사용하도록 동작될 수 있으며, 여기서 랩어라운드 값은 최대 값(highValue) - 최소 값(lowValue) + 1과 동일하다. 이러한 랩어라운드는, 디코딩된 출력 데이터(D5)를 생성할 때, 최소 값(lowValue), 종종 네가티브 값보다 작거나 또는 최대 값(highValue)보다 더 높은 이러한 값들이 발생하는 것을 피하기 위하여 사용된다.Optionally, the decoder may be operated to use a wrap around value (wrapValue), wherein the wrap around value is equal to the maximum value (highValue) - minimum value (lowValue) + 1. This wraparound is used to avoid generating these values when generating the decoded output data D5, which is a minimum value (lowValue), often less than the negative value or higher than the maximum value (highValue).

옵션적으로, 디코더는, 데이터 프로세싱 장치가 런렝쓰 인코딩(RLE), 스플릿 RLE, 엔트로피 모디파이어(EM), 가변 길이 코딩(VLC), 호프만 코딩, 산술 코딩, 레인지 코딩 중 적어도 하나의 역을 통하여 프로세싱되는 데이터에 적용하게 동작될 수 있도록 동작된다.Optionally, the decoder is operable to cause the data processing device to perform processing via at least one of run length encoding (RLE), split RLE, entropy modifier (EM), variable length coding (VLC), Hoffman coding, arithmetic coding, Lt; RTI ID = 0.0 > data. ≪ / RTI >

또한 옵션적으로, 디폴트 예측값은 “0” 값을 가진다. 그러나, 예측 값은 또한 전술한 바와 같이, 최소 값(lowValue), 최대 값(highValue), [최대값(highValue) + 최소 값(lowValue) +1 ]/2 등일 수 있다.Optionally, the default prediction value also has a value of " 0 ". However, the prediction value may also be a lowValue, a highValue, a highValue + a lowValue + 1/2, etc., as described above.

옵션적으로, 디코더에 있어서, 프로세싱 장치는, 비일시적 머신 판독 가능한 데이터 저장 매체 상에 기록된 하나 이상의 소프트웨어 제품을 실행하도록 동작가능한 컴퓨팅 하드웨어를 이용하여 구현된다.Optionally, for a decoder, the processing device is implemented using computing hardware operable to execute one or more software products recorded on a non-transitory machine-readable data storage medium.

제4 양태에 있어서, 대응하는 디코딩된 출력 데이터(D5)를 생성하기 위하여 인코딩된 데이터(D2, D3 또는 D4)를 디코딩하는 디코더를 사용하는 방법이 제공되며, 이 방법은, 인코딩된 데이터(D2, D3 또는 D4)의 하나 이상의 부분들을 프로세싱하기 위한 데이터 프로세싱 장치를 이용하는 단계를 포함하며, 상기 데이터 프로세싱 장치는, 하나 이상의 부분들의 하나 이상의 대응하는 인코딩된 시퀀스에 차 및/또는 합 디코딩의 형태를 적용하도록 동작될 수 있고, 상기 하나 이상의 인코딩된 시퀀스는, 디코딩된 출력 데이터(D5)를 생성하기 위하여, 최대 값이 랩 어라운드되고/되거나 최소 값이 랩 어라운드되며, 상기 데이터 프로세싱 장치는 디코딩되는 일련의 데이터에서의 제1 예측값의 디폴트값을 추정하기 위하여 동작될 수 있다.In a fourth aspect, there is provided a method of using a decoder to decode encoded data (D2, D3 or D4) to produce corresponding decoded output data (D5), the method comprising the steps of: , D3, or D4), the data processing apparatus comprising: means for generating a difference and / or sum decoding type on one or more corresponding encoded sequences of one or more portions And wherein the one or more encoded sequences are wrapped around and / or wrapped at a minimum value to produce decoded output data (D5), the data processing apparatus comprising: Lt; RTI ID = 0.0 > 1 < / RTI >

옵션적으로, 방법은 하나 이상의 1-비트 값을 포함하는 인코딩된 데이터(D2, D3 또는 D4)를 디코딩하는 단계와, 인코딩된 데이터(D2, D3 또는 D4)를 비트-바이-비트 방식으로 디코딩하는 디코더를 이용하는 단계를 포함한다. 또한 옵션적으로, 방법에 있어서, 하나 이상의 오프셋 값은 “0”값을 가진다. Optionally, the method comprises decoding the encoded data (D2, D3 or D4) comprising one or more 1-bit values and decoding the encoded data (D2, D3 or D4) in a bit- Lt; / RTI > decoder. Optionally, in the method, the one or more offset values have a value of " 0 ".

옵션적으로, 방법은, 디코딩된 출력 데이터(D5)를 생성하는데 사용하기 위한 하나 이상의 대응하는 인코딩된 시퀀스에 적용하기 위한 입력 데이터(D1) 및/또는 하나 이상의 대응하는 인코딩된 시퀀스(D2, D3 또는 D4)의 값을 수신하는 데이터 프로세싱 장치를 이용하는 단계를 포함한다. Optionally, the method may comprise input data D1 for applying to one or more corresponding encoded sequences for use in generating decoded output data D5 and / or one or more corresponding encoded sequences D2, D3 Or < RTI ID = 0.0 > D4. ≪ / RTI >

옵션적으로, 방법에 있어서, 하나 이상의 대응하는 인코딩된 시퀀스는 인코딩된 데이터(D2, D3 또는 D4)로 인코딩된 순차적인 값들에서의 변화를 나타낸다.Optionally, in the method, the one or more corresponding encoded sequences represent a change in sequential values encoded with the encoded data (D2, D3 or D4).

옵션적으로, 방법은 디코딩된 출력 데이터(D5)를 생성할 때 네가티브 차이 또는 너무 큰 값이 발생하는 것을 피하기 위하여 최대 값을 랩 어라운드하거나 또는 최소 값을 랩 어라운드하는 데이터 프로세싱 장치를 이용하는 단계를 포함한다.Optionally, the method includes using a data processing device wraparound the maximum value or wrap around the minimum value to avoid generating a negative difference or too large a value when generating the decoded output data D5 do.

옵션적으로, 방법에 있어서, 데이터 프로세싱 장치는, 런렝쓰 인코딩(RLE), 스플릿 RLE, 엔트로피 모디파이어(EM), 가변 길이 코딩(VLC), 호프만 코딩, 산술 코딩, 레인지 코딩 중 적어도 하나의 역을 통하여 프로세싱되는 데이터에 적용하도록 동작될 수 있다.Optionally, in the method, the data processing device is adapted to perform at least one of run length encoding (RLE), split RLE, entropy modifier (EM), variable length coding (VLC), Hoffman coding, arithmetic coding, Lt; RTI ID = 0.0 > and / or < / RTI >

또한 옵션적으로, 방법에 있어서, 디폴트 예측 값은 “0”값을 가진다.Optionally, in the method, the default prediction value has a value of " 0 ".

옵션적으로, 방법에 있어서, 프로세싱 장치는 비일시적 머신 판독 가능한 데이터 저장 매체 상에 기록되는 하나 이상의 소프트웨어 제품을 실행하도록 동작될 수 있는 컴퓨팅 하드웨어를 이용하여 구현된다.Optionally, in the method, the processing device is implemented using computing hardware operable to execute one or more software products recorded on a non-transitory machine-readable data storage medium.

제5 양태에 따르면, 대응하는 디코딩된 출력 데이터(D5)를 생성하도록 인코딩된 데이터(D2, D3 또는 D4)를 디코딩하는 디코더를 이용하는 방법이 제공되며, 이 방법은, According to a fifth aspect, there is provided a method of using a decoder to decode encoded data (D2, D3 or D4) to produce corresponding decoded output data (D5)

(a) 인코딩된 데이터(D2, D3 또는 D4)가 변형된 데이터의 순차적인 값에서의 변화를 나타내는 적어도 하나의 인코딩된 시퀀스를 포함하며, 최대 값을 랩 어라운딩하거나 또는 최소값을 랩 어라운드하는 것을 고려하여, 인코딩된 데이터(D2, D3 또는 D4)의 하나 이상의 부분들을 디코딩하기 위하여 인코딩된 데이터(D2, D3 또는 D4)를 프로세싱하기 위한 데이터 프로세싱 장치를 이용하는 단계와,(a) comprises at least one encoded sequence of encoded data (D2, D3 or D4) representing a change in a sequential value of the transformed data, and wraparound the maximum value or wrap around the minimum value (D2, D3, or D4) to decode one or more portions of the encoded data (D2, D3, or D4), using the data processing device to process the encoded data

(b) 대응하는 프로세싱된 데이터를 생성하고, 디코딩된 출력 데이터(D5)를 생성하기 위하여 적어도 하나의 프리-오프셋 값 및/또는 포스트-오프셋 값을 이용하여 하나 이상의 부분들을 변형하는 데이터 프로세싱 장치를 이용하는 단계를 포함한다. (b) a data processing device that generates corresponding processed data and transforms one or more portions using at least one pre-offset value and / or post-offset value to produce decoded output data D5 Lt; / RTI >

전술한 양태를 참조하면, 오프셋 값에 대하여, 옵션적으로, 디코더에 있어서, 데이터 프로세싱 장치는 인코딩된 데이터(D2, D3 또는 D4) 내의 값들의 범위를 수신하고, 이로부터 적어도 하나의 프리-오프셋 및/또는 포스트-오프셋 값을 유도하도록 동작될 수 있다. 포스트-오프셋 값은, 역 연산자, 예컨대 다이렉트 역 ODelta 연산자의 사용 이전에 변형된 데이터를 생성하는데 사용될 수 있고, 프리-오프셋 값은 역 연산자 이후에 데이터를 변형시키는데 사용된다. 적어도 하나의 오프셋 값은 디코딩된 출력 데이터(D5)를 생성하기 위하여 프로세싱된 데이터와 옵션적으로 결합된다.With reference to the above-described embodiment, for the offset value, optionally, at the decoder, the data processing device receives a range of values in the encoded data (D2, D3 or D4), from which at least one pre- And / or to derive a post-offset value. The post-offset value may be used to generate the transformed data prior to use of the inverse operator, e.g., the direct inverse ODelta operator, and the pre-offset value is used to transform the data after the inverse operator. The at least one offset value is optionally combined with the processed data to produce decoded output data D5.

오프셋은 옵션적으로 디코더에서 지원된다. 오프셋은 이것이 인코더에서도 사용될 때 사용된다. 레인지(lowValue 내지 highValue)를 사용하는 파라미터(wrapValue) 내의 랩어라운드, 역 연산자(합 대(vs.) 차이) 및 역 예측자(입력 값 대 출력 값)는 디코더의 중요한 요소들이다.Offsets are optionally supported in the decoder. Offset is used when this is also used in the encoder. The wraparound, inverse operator (difference vs. difference) and inverse predictor (input value versus output value) in the parameter (wrapValue) using the range (lowValue to highValue) are important components of the decoder.

옵션적으로, 디코더에 있어서, 데이터 프로세싱 장치는, 런렝쓰 인코딩(RLE), 스플릿 RLE, 엔트로피 모디파이어(EM), 가변 길이 코딩(VLC), 호프만 코딩, 산술 코딩, 레인지 코딩 중 적어도 하나의 역을 통하여 프로세싱되는 데이터에 적용하도록 동작될 수 있다. 이 프로세싱은 데이터(D3)로부터 데이터(D4)를 생성하기 위하여 실행된다.Optionally, in the decoder, the data processing device is adapted to perform at least one of run length encoding (RLE), split RLE, entropy modifier (EM), variable length coding (VLC), Hoffman coding, arithmetic coding, Lt; RTI ID = 0.0 > and / or < / RTI > This processing is executed to generate the data D4 from the data D3.

디코더에 있어서, 데이터 프로세싱 장치는, 역 디코딩 예컨대 역 ODelta 디코딩의 형태로 구현될 때 레인지(lowValue 내지 highValue)를 이용하여 파라미터(wrapValue) 내의 랩어라운드를 사용하도록 동작될 수 있다.For a decoder, the data processing device may be operable to use wraparound within the parameter wrapValue using a range (lowValue to highValue) when implemented in the form of reverse decoding, e.g., inverse ODelta decoding.

제6 양태에 따르면, 대응하는 인코딩된 데이터(D2 또는 D3)를 생성하기 위하여 입력 데이터(D1)를 인코딩하는 제1 양태에 따른 적어도 하나의 인코더, 그리고 대응하는 디코딩된 데이터(D5)를 생성하기 위하여 인코딩된 데이터(D2, D3 또는 D4)를 디코딩하는 제3 양태에 따른 적어도 하나의 디코더를 포함하는 코덱이 제공된다.According to a sixth aspect, at least one encoder according to the first aspect for encoding input data (D1) to generate corresponding encoded data (D2 or D3), and generating corresponding decoded data (D5) There is provided a codec comprising at least one decoder according to the third aspect for decoding encoded data (D2, D3 or D4).

제7 양태에 따르면, 비순간적(비일시적) 머신 판독 가능한 데이터 저장 매체 상에 기록되는 소프트웨어 제품이 제공되며, 이 소프트웨어 제품은 제2 양태에 따른 데이터 인코딩 방법을 실행하기 위하여 컴퓨팅 하드웨어 상에서 실행될 수 있는 것을 특징으로 한다. According to a seventh aspect, there is provided a software product recorded on an non-transient (non-transient) machine-readable data storage medium, the software product being executable on computing hardware to perform a data encoding method according to the second aspect .

제8 양태에 따르면, 비순간적(비일시적) 머신 판독 가능한 데이터 저장 매체 상에 기록되는 소프트웨어 제품이 제공되며, 이 소프트웨어 제품은 제4 양태에 따른 데이터 디코딩 방법을 실행하기 위하여 컴퓨팅 하드웨어 상에서 실행될 수 있는 것을 특징으로 한다.According to an eighth aspect, there is provided a software product recorded on an non-transient (non-transient) machine-readable data storage medium, the software product being executable on computing hardware to execute a data decoding method according to the fourth aspect .

본 발명의 특징은 첨부된 청구범위에 의해 규정되는 바와 같이 본 발명의 범위로부터 벗어나지 않고 여러 가지 조합으로 조합될 수 있음이 인식될 것이다.It will be appreciated that the features of the invention may be combined in various combinations without departing from the scope of the invention as defined by the appended claims.

이제, 본 개시의 실시형태를 하기의 도면을 참조하면서 단지 예로서 설명한다.
도 1은 본 개시에 따른 기능에 대하여 구현된 인코더 및 디코더를 포함하는 코덱을 예시하는 도면이다.
도 2는 도 1의 인코더에서 실행되는 바와 같이 데이터 인코딩 방법의 단계들을 예시하는 도면이다.
도 3은 도 1의 디코더에서 실행되는 바와 같이 데이터 디코딩 방법의 단계들을 예시하는 도면이다.
첨부 도면에 있어서, 밑줄 친 숫자는, 밑줄 친 숫자가 위에 있는 항목 또는 밑줄 친 숫자가 인접해 있는 항목을 나타내기 위해 사용된다. 밑줄 없는 숫자는 밑줄 없는 숫자를 항목에 연결하는 선에 의해 식별되는 항목과 관련된다. 숫자가 밑줄이 없고 연관된 화살표를 수반할 경우, 그 밑줄 없는 숫자는 화살표가 지시하는 일반적인 항목을 식별하는데 사용된다.
Embodiments of the present disclosure will now be described by way of example only with reference to the following drawings.
1 is a diagram illustrating a codec including an encoder and a decoder implemented for functionality according to the present disclosure;
Figure 2 is a diagram illustrating the steps of a data encoding method as implemented in the encoder of Figure 1;
3 is a diagram illustrating the steps of a data decoding method as implemented in the decoder of FIG.
In the accompanying drawings, an underlined number is used to indicate an item with an underlined number or an item with an underlined number adjacent to the underlined number. An underscore number is associated with an item identified by a line connecting an underscored number to the item. If a number is underscored and accompanies an associated arrow, the underscore number is used to identify the generic entry pointed to by the arrow.

본 개시의 실시형태를 설명할 때, 표 2에 제공되는 바와 같이, 이하의 약어 및 정의가 사용된다.In describing the embodiments of the present disclosure, the following abbreviations and definitions are used, as provided in Table 2 below.

약어 및 정의Abbreviations and definitions 약어Abbreviation 설명Explanation ADCADC 아날로그/디지털 컨버터Analog-to-digital converter 코덱(Codec)Codec 디지털 데이터에 대한 인코더 및 대응하는 디코더The encoder and corresponding decoder for digital data DACDAC 디지털/아날로그 컨버터Digital / Analog Converter
DB

DB
랜덤 액세스 메모리(RAM) 또는 판독 전용 메모리(ROM)에서의 데이터베이스A database in a random access memory (RAM) or a read-only memory (ROM)

DC

DC
주어진 영상의 DC 성분, 즉 영상의 수단, 즉 평균 휘도에 대응, 영상의 최저 공간 주파수 성분을 나타냄Represents the minimum spatial frequency component of the image, corresponding to the DC component of a given image, i.e., the means of the image, i.e., the average luminance
RLERLE 런-렝쓰 인코딩Run-length encoding ROIROI 관심 있는 영역Areas of interest ROMROM 판독 전용 메모리Read only memory VLCVLC 가변 길이 코드Variable length code

개요에 있어서, 도 1을 참조하면, 본 개시는 인코더(10) 및 그 연관된 동작 방법에 관련되며, 유익하게도, 인코더(10)는 다이렉트 ODelta 인코더로서 구현된다. 또한, 본 개시는 또한 대응하는 디코더(20)와 관련되며, 유익하게도, 디코더(20)는 역 ODelta 디코더로서 구현된다. 본 개시의 실시형태는 기타 데이터의 레인지 최적화된 버전뿐만 아니라 전술한 공지된 델타(Delta) 인코딩 방법의 비트-최적화된 버전인 다이렉트 ODelta 연산자를 유익하게 사용한다. ODelta 인코딩은 가변-길이 데이터 워드 예컨대 8/16/32/64 비트를 사용하거나 및/또는 오리지널 값이 1 내지 64 비트의 범위로 표현되는 8/16/32/64 비트 데이터 요소의 가변-길이 인코딩을 사용하는 컴퓨팅 하드웨어 또는 전용 디지털 하드웨어에 사용되며, 대응하는 인코딩된 값은 1 내지 64 비트로 생성된다. 물론, 인코더(10) 및 디코더(20)는, 어떤 경우에, 어떤 종류의 숫자 값들이 데이터(D1) 예컨대 오리지널 데이터에 포함되어 있다고 알고 있으므로, 그 정의 또는 전송은 여기서는 추가로 설명되지 않는다. 숫자 범위(MIN 및 MAX)가 알려져 있고, 데이터(D1)가 이용될 수 있음이 단순히 가정된다.In overview, referring to FIG. 1, the present disclosure relates to an encoder 10 and its associated method of operation, and advantageously, the encoder 10 is implemented as a direct ODelta encoder. The present disclosure also relates to a corresponding decoder 20, and advantageously, the decoder 20 is implemented as an inverse ODelta decoder. Embodiments of the present disclosure advantageously use a range-optimized version of other data as well as a direct ODelta operator, which is a bit-optimized version of the known Delta encoding method described above. The ODelta encoding may be performed using variable-length data words such as 8/16/32/64 bits and / or variable-length encoding of 8/16/32/64 bit data elements whose original values are represented in the range of 1 to 64 bits Or dedicated digital hardware, and the corresponding encoded value is generated from 1 to 64 bits. Of course, the encoder 10 and the decoder 20 know that in some cases some kind of numerical value is included in the data D1, for example in the original data, its definition or transmission is not further described here. It is simply assumed that the numerical ranges MIN and MAX are known, and data D1 can be used.

공지된 델타 코딩 방법은, 오리지널(MIN 내지 MAX)로부터 결과(MIN-MAX 내지 MAX-MIN)까지의 값의 범위를 증가시킨다. 이는 오리지널 데이터가 포지티브 값만을 포함할 때 이 방법이 네가티브 값을 또한 생성한다는 것을 의미한다. 본 개시에 따른 ODelta 연산자는 대응하는 오리지널 값의 범위에 있지 않는 값을 결코 생성하지 않고, 따라서 이 연산자는 사용되는 데이터 범위를 증가시키지 않고, 이에 따라서 실행시에, 예컨대 엔트로피 감소 및 연관된 데이터 압축시에 유익하게 사용된다. 예컨대, 공지된 델타 인코딩 방법은, 이러한 델타 인코딩 방법에 의해 생성된 데이터 값이 -31 내지 +31의 범위 즉, 6(즉, 사인 비트 + 5 비트) 비트를 이용하여 실질적으로 표현될 수 있는 63개 값에 있도록, 5-비트 데이터의 스트림 즉, 0 내지 31의 값의 범위로 동작되며, 이와 대조적으로, 다이렉트 ODelta 생성된 값들은, 전술한 5-비트 데이터의 스트림으로부터 생성될 때, 계속해서 0 내지 31의 범위에 있다. 또한, 델타 인코딩의 공지된 방법들은 재귀적으로 구현되도록 허용되지 않는 반면에, 다이렉트 또는 역으로, 본 개시에 따른 ODelta 연산자는 재귀적으로 구현되도록 허용되지만, 이 연산자는 사용된 범위의 값들을 계속해서 유지한다. 값들의 범위는 정확한 비트(bit-exact)일 필요는 없는데 예컨대, 0 내지 31의 값이 5비트에 의해 규정되고, ODelta 연산자는 임의의 범위의 값들 예컨대 0 내지 25의 값의 범위를 사용할 수 있는 반면에 여전히 적절히 동작된다.The known delta coding method increases the range of values from the original (MIN to MAX) to the result (MIN-MAX to MAX-MIN). This means that this method also produces a negative value when the original data contains only a positive value. The ODelta operator according to the present disclosure never generates a value that is not in the range of the corresponding original value, so this operator does not increase the data range used, and accordingly at runtime, for example, at the time of entropy reduction and associated data compression . ≪ / RTI > For example, the known delta encoding method is based on the fact that the data values generated by this delta encoding method can be substantially represented using bits ranging from -31 to +31, i.e., 6 (i.e., sine bits + 5 bits) Bit data, that is, a range of values from 0 to 31, and, conversely, direct ODelta generated values are generated from the stream of 5-bit data described above, 0 to 31. < / RTI > Also, while known methods of delta encoding are not allowed to be implemented recursively, direct or vice versa, the ODelta operator according to this disclosure is allowed to be recursively implemented, but this operator continues to use the values of the range used . The range of values does not have to be bit-exact, for example values of 0 to 31 are defined by 5 bits, and the ODelta operator can use ranges of values of any range, for example from 0 to 25 On the other hand, it still works properly.

원칙적으로, 여기에 설명된 ODelta 방법은 항상 기존 데이터 범위에 기초하여 직접 기능할 수 있으며, 이는 이하에 예로서 주어진다. ODelta 방법은 또한 데이터 내의 최소 발생 숫자 값(“lowValue”) 및 데이터 내의 최대 발생 숫자 값(“highValue”)을 나타내는 정보를 전달함으로써 개선될 수도 있다. lowValue >= MIN이고 highValue <= MAX이고 이들 값이 옵션적임에 주목해야 한다.In principle, the ODelta method described here can always function directly based on the existing data range, which is given by way of example below. The ODelta method may also be improved by conveying information indicating a minimum occurring numerical value (&quot; lowValue &quot;) in the data and a maximum occurring numerical value (&quot; highValue &quot; It should be noted that lowValue> = MIN and highValue <= MAX and these values are optional.

이하 본 개시에 따른 다이렉트 및 역 ODelta 연산자들의 2개의 예를 설명한다. 다이렉트 및 역 ODelta 연산자들의 제1 예는, 예컨대 비순간적(비일시적) 머신 판독 가능한 데이터 저장 매체 상에 기록된 하나 이상의 소프트웨어 제품을 실행하도록 동작될 수 있는 전자식 하드웨어 및/또는 컴퓨팅 하드웨어로 구현하기에 효율적이며 비교적 단순하다.Two examples of the direct and inverse ODelta operators according to the present disclosure are described below. A first example of direct and inverse ODelta operators may be implemented in electronic hardware and / or computing hardware that can be operated to execute one or more software products, for example, written on non-transient (non-volatile) machine-readable data storage media It is efficient and relatively simple.

본 개시에 따른 다이렉트 또는 역 ODelta 연산자를 구현할 때, 유익하게 데이터 값들의 오리지널 시퀀스의 전체는 포지티브이며, 최저값은 0이다. 옵션적으로, 일부 오프셋 값 즉, 프리-오프셋 값 또는 포스트-오프셋 값은 이들이 값에 있어서 모두 포지티브를 가지며 최저값이 “0”이 되도록 데이터 값들을 시프트하는데 사용될 수 있다. 본 개시에 따른 ODelta 연산자는 다이렉트 방식으로 모든 타입의 데이터에 대하여 사용될 수 있으며; 이는 일반적으로 데이터 압축을 제공할 수 있으며 즉, 통신된 데이터 레이트를 감소시킬 수 있으며, 그 이유는, 오프셋 값이 모든 값들에 부가되거나 또는 모든 값들로부터 감산될 때, 데이터 값들의 범위가 소수의 비트를 이용하여 규정될 수 있기 때문이다. 예컨대, 다이렉트 또는 역 ODelta 연산자의 애플리케이션 이전에, 오리지널 데이터 값들은, -11 내지 +18의 범위 내에 있고, 이러한 범위는 +11의 오프셋 값을 이용하여 0 내지 29의 범위로 변형될 수 있고, 변형된 범위는 이후에 5-비트로 설명된다. 이러한 프리-오프셋 또는 포스트-오프셋 값이 사용되지 않을 때, 오리지널 데이터 값은 이들을 기재하기 위하여 적어도 6 비트를 요구하며, 종종, 실제로는, 풀 8-비트 사인 바이트가 편의를 위하여 사용된다.When implementing the direct or inverse ODelta operator according to the present disclosure, advantageously the entirety of the original sequence of data values is positive, and the lowest value is zero. Optionally, some offset values, i.e., pre-offset values or post-offset values, can be used to shift the data values such that they all have positive values and the lowest value is &quot; 0 &quot;. The ODelta operator according to the present disclosure can be used for all types of data in a direct manner; This can generally provide data compression, i.e., reduce the communicated data rate, since when the offset value is added to all values or subtracted from all values, the range of data values is a fractional bit As shown in FIG. For example, prior to the application of the direct or inverse ODelta operator, the original data values are in the range of -11 to +18, this range may be modified to a range of 0 to 29 using an offset value of +11, Lt; RTI ID = 0.0 &gt; 5-bit &lt; / RTI &gt; When these pre-offset or post-offset values are not used, the original data values require at least 6 bits to describe them, and sometimes, in practice, a full 8-bit sign byte is used for convenience.

데이터 범위의 유사한 최적화는 일반화된 다이렉트 또는 역 ODelta 연산자를 이용할 때, 또한 가능하다. 이에 따라서, 다이렉트 또는 역 ODelta 연산자, 또는 일부 다른 방법은, 풀 레인지의 값보다 작은 오프셋 값이 제공될 수 있는 데이터 값을 생성하면, 그 후 그 범위의 최적화는 ODelta 인코딩 방법에서 어떤 위상으로 구현될 수 있다. 오프셋 값, 부호에 있어서 네가티브 또는 포지티브가 사용될 때, 이는 도 1, 도 2 및 도 3을 참조하여 이후에 설명되는 바와 같이, 인코더(10)로부터 디코더(20)까지 또한 전달되어야 한다. Similar optimization of the data range is also possible when using the generalized direct or inverse ODelta operator. Accordingly, if a direct or inverse ODelta operator, or some other method, generates a data value that can be provided with an offset value that is less than the full-range value, then optimization of that range may be implemented in some phase in the ODelta encoding method . When a negative or positive in the offset value, sign, is used, it must also be transmitted from the encoder 10 to the decoder 20, as will be described later with reference to Figs. 1, 2 and 3.

다이렉트 ODelta 연산자는 1-비트 방식으로 구현될 수 있고, 예컨대 비트-바이-비트 방식으로 오리지널 데이터(D1)를 인코딩할 수 있고, 이하에 더욱 상세히 설명되는 바와 같이, 이러한 1-비트 방식에서, 방법 1 및 방법 3은 도 1에서 오리지널 데이터(D1)의 비트 값에서의 변화가 없을 때 “0”값을 생성하고, 오리지널 데이터(D1)의 비트 값에서의 변화가 발생할 때 “1”값을 생성한다. 오리지널 데이터에서의 제1 비트에 대한 예측은 옵션적으로 “0”값이며, 따라서 오리지널 데이터(D1)에서의 제1 비트의 값이 유지된다. 오리지널 데이터 내의 예측된 값의 제1 비트를 사용하는 것이 또한 대안적으로 옵션적으로 가능하지만, 이러한 선택은 어떤 코딩 이점을 제공하지 않는데, 그 이유는, 예측이 옵션적으로 1-비트 데이터에 대한 디폴트에 의해, “0”값이 되도록 항상 가정될 때 선택은 전달될 필요가 없고, 즉 미리 정해된 값 “0”이 인코더(10)와 디코더(20)에 의해 사용되고, 이에 의해 통신되는 이러한 예측에 대한 필요성을 피하고, 이에 따라서 데이터 압축을 개선시킨다.The direct ODelta operator can be implemented in a one-bit manner and can encode the original data D1 in a bit-by-bit manner, for example, and in this one-bit scheme, as will be described in more detail below, 1 and 3 generate a value &quot; 0 &quot; when there is no change in the bit value of the original data D1 in Fig. 1 and generate a value &quot; 1 &quot; when a change in the bit value of the original data D1 occurs do. The prediction of the first bit in the original data is optionally a value of &quot; 0 &quot;, so that the value of the first bit in the original data D1 is maintained. It is alternatively optionally possible to use the first bit of the predicted value in the original data, but such a selection does not provide any coding advantage, since the prediction is optionally performed on the 1- By default, the selection does not need to be transmitted when it is always assumed to be a value of &quot; 0 &quot;, that is, a predetermined value &quot; 0 &quot; is used by the encoder 10 and the decoder 20, Thereby improving data compression. &Lt; RTI ID = 0.0 &gt;

본 개시에 따른 다이렉트 ODelta 인코딩의 예를 이제 설명한다. 예시적인 오리지널 비트 시퀀스, 17개의 “1” 및 20개의 “0”을 포함하는 즉 27 비트가 아래와 같이 식 1(Eq. 1)에 제공된다. An example of a direct ODelta encoding according to the present disclosure will now be described. An exemplary original bit sequence, 27 bits including 17 &quot; 1 &quot; and 20 &quot; 0 &quot;, is provided in Equation 1 (Eq.

Figure 112015095377944-pct00001
식 1
Figure 112015095377944-pct00001
Equation 1

이것의 엔트로피(E)는 식 2(Eq.2)으로부터 계산될 수 있다.Its entropy (E) can be calculated from Equation 2 (Eq.2).

Figure 112015095377944-pct00002
식 2
Figure 112015095377944-pct00002
Equation 2

식 2(Eq. 2)에서 엔트로피(E)를 코딩하는데 필요한 비트 수 즉, Min_bitThe number of bits required to code the entropy (E) in Equation 2 (Eq. 2), that is, Min_bit

는. 전술한 문헌 D7 및 D8에 기재된 바와 같이, 샤논의 소스 코딩 이론으로부터 계산될 수 있고, 식 3(Eq. 3)에 제공된다. . Can be calculated from Shannon's source coding theory, as described in D7 and D8 above, and is provided in Equation 3 (Eq. 3).

Figure 112015095377944-pct00003
식 3
Figure 112015095377944-pct00003
Equation 3

비트의 오리지널 시퀀스는, 전술한 바와 같이 즉 방법 1 및 방법 3에 의해 다이렉트 ODelta 연산자 처리될 때, 13개의 “1” 및 24개의 “0”이 존재하는 37 비트을 포함하여, 아래와 같이 비트의 시퀀스가 생성된다.The original sequence of bits includes 37 bits in which there are 13 &quot; 1 &quot; s and 24 &quot; 0 &quot; s when processed by the Direct ODelta operator as described above, i.e. Method 1 and Method 3, .

Figure 112015095377944-pct00004
식 4
Figure 112015095377944-pct00004
Equation 4

이것의 엔트로피(E)는 식 5(Eq. 5)로부터 계산될 수 있다.Its entropy (E) can be calculated from Equation 5 (Eq. 5).

Figure 112015095377944-pct00005
식 5
Figure 112015095377944-pct00005
Equation 5

이는 식 6(Eq. 6)에 따라서, 최소 비트 수 즉, Min_bits로 표현될 수 있다.This can be expressed by the minimum number of bits, Min_bits, according to Equation 6 (Eq. 6).

Figure 112015095377944-pct00006
식 6
Figure 112015095377944-pct00006
Equation 6

식 4(Eq. 4)에서의 비트의 시퀀스는 유익하게 예컨대, 런렝Tm 인코딩(RLE), 호프만 코딩, 산술 인코딩, 레인지 인코딩, 엔트로피 모디파이어 인코딩 또는 SRLE 인코딩 중 적어도 하나를 이용하여 데이터 압축을 달성하도록 추가로 인코딩된다.The sequence of bits in Equation 4 (Eq. 4) may advantageously be used to achieve data compression using, for example, at least one of runle Tm encoding (RLE), Huffman coding, arithmetic encoding, range encoding, entropy modifier encoding or SRLE encoding And is further encoded.

ODelta 연산자는 그 연관된 엔트로피 코딩 방법이 적용될 때, 예컨대 식 1(Eq. 1)에서와 같이, 오리지널 데이터 대신에, 예컨대 식 4(Eq. 4)에서와 같이, 예컨대 RLE 또는 SRLE가 동작된 데이터에 대하여 사용될 때, 오리지널 데이터(D1)를 나타내도록 요구되는 비트양을 감소시키며, 이러한 1-비트 다이렉트 ODelta 연산자 즉 방법 1 및 방법 3은, 식 1(Eq. 1)에서의 비트들의 오리지널 시퀀스에서의 많은 변화가 존재할 때 “1”을 생성하고, 상기 연산자는 식 1(Eq. 1)에서 비트의 오리지널 시퀀스에서의 상호 유사한 비트의 긴 시퀀스가 존재할 때 “0”을 생성한다. The ODelta operator can be used in place of the original data, for example as in Equation 4 (Eq. 4), for example when RLE or SRLE is applied to the data in which the associated entropy coding method is applied, Bit direct ODelta operators, i.e., Method 1 and Method 3, reduce the amount of bits required to represent the original data D1, which is equal to the number of bits in the original sequence of bits in Equation 1 (Eq. 1) &Quot; 1 &quot; when there are many changes, and the operator generates &quot; 0 &quot; when there is a long sequence of mutually-similar bits in the original sequence of bits in Equation 1 (Eq.

ODelta 연산자의 역 버전 즉, 방법 1 및 방법 3의 역은, 적절하게 “0”값으로부터 “1”값으로 또는 “1”값으로부터 “0”값으로 비트 값을 변경하며, 데이터의 인코딩된 스트림에서 즉, 데이터(D2)에서 “1”값이 존재할 때, 인코딩된 데이터의 스트림에서 즉 데이터(D2)에서 “1”값이 존재할 때, 데이터(D2)의 인코딩된 스트림에서 “0”값이 존재할 때 비트 값을 변경하지 않는다. 이러한 ODelta 연산이 데이터(D2)의 다이렉트 ODelta-연산된 비트 스트림에 대하여 실행될 때, 데이터(D1)의 오리지널 스트림은, 디코딩된 데이터(D5)로서 생성되지만, 전술한 바와 같이, VLC 또는 호프만 코딩과 같은 부가적인 코딩이 유익하게 사용되며, 이러한 코딩은 또한 고려될 필요가 있고, 이는 데이터(D3)가 엔트로피 인코더의 포워딩 동작을 이용하여 데이터(D2)로부터 생성되고, 데이터(D4)는 엔트로피 디코더의 역 동작을 이용하여 데이터(D3)로부터 생성된다는 것을 의미한다.The inverse version of the ODelta operator, that is, the inverse of method 1 and method 3, modifies the bit value from a value of "0" to a value of "1" appropriately or from a value of "1" to a value of "0" 0 &quot; in the encoded stream of data D2 when there is a &quot; 1 &quot; value in the data D2, i.e., in the stream of encoded data, Do not change the bit value when present. When this ODelta operation is performed on the direct ODelta-computed bit stream of data D2, the original stream of data D1 is generated as decoded data D5, but as described above, VLC or Hoffman coding and Such additional coding is beneficially used and this coding also needs to be considered because data D3 is generated from data D2 using the forwarding operation of the entropy encoder and data D4 is generated from the entropy decoder And is generated from the data D3 using the inverse operation.

유익하게, 데이터(D1)의 오리지널 스트림은 인코딩이 적용되기 이전에 2 개 이상의 섹션들로 세분된다. 이러한 세분은 데이터(D1)의 오리지널 스트림을 인코딩할 때 사용되는 더 많은 수의 최적화에 대한 기회를 제공한다. 예컨대, 이러한 세분은, 데이터(D1)에서의 변경가능한 시퀀스가 직접 ODelta 인코딩 즉, 방법 1 및 방법 3을 이용할 때 더 많은 “1”을 생성하기 때문에 유익한 반면에 평평한 변경가능하지 않은 시퀀스 즉 “평평한(flat)”시퀀스는, 예컨대 후속의 VRL 인코딩 또는 호프만 인코딩에 대하여 바람직하게 더 많은 “0”을 생성하므로, 엔트로피(E)는 전술한 바와 같이 데이터(D1)를 개별적으로 인코딩될 수 있는 복수의 섹션으로 분할함으로써 상기 데이터(D1)를 구성하는 전체 비트 스트림에 대하여 감소될 수 있다.Advantageously, the original stream of data D1 is subdivided into two or more sections before the encoding is applied. These subdivisions provide an opportunity for a greater number of optimizations used when encoding the original stream of data D1. For example, such a subdivision is beneficial because the alterable sequence in data D1 is directly ODelta encoding, that is, it produces more &quot; 1 &quot; when using Method 1 and Method 3, whereas a flat, non-alterable sequence, quot; flat &quot; sequence preferably generates more &quot; 0 &quot; for subsequent VRL or Hoffman encodings, Section can be reduced for the entire bit stream constituting the data D1.

서로 개별적으로 인코딩되는 복수의 섹션이 사용될 때, 본 발명에 따른 다이렉트 ODelta 인코딩의 예를 다음에 설명한다. 오리지널 단일 비트의 시퀀스를 포함하는 제1 섹션은, 아래와 같이 식 7(Eq. 7)에서, 전체로 16 비트 즉, 7개의 “1”과 9개의 “0”을 포함한다.An example of a direct ODelta encoding according to the present invention will now be described when a plurality of sections that are individually encoded from each other are used. The first section including the sequence of the original single bits includes 16 bits in total, that is, 7 &quot; 1 &quot; and 9 &quot; 0 &quot; in Equation 7 (Eq.

Figure 112015095377944-pct00007
식 7
Figure 112015095377944-pct00007
Equation 7

여기서 H(x) = 4.7621이고 B = 15.82이며; “H”는 엔트로피를 나타내며, “B”는 Max_bit를 나타낸다. 오리지널 비트의 식 7(Eq. 7) 시퀀스는 다이렉트 ODelta 연산자 처리될 때, 대응하는 변환된 비트의 시퀀스가 식 8(Eq. 8)에서와 같이 제공된다. Where H (x) = 4.7621 and B = 15.82; "H" represents entropy, and "B" represents Max_bit. When the original 7-bit sequence (Eq. 7) of the original bit is processed by the direct ODelta operator, the corresponding sequence of converted bits is provided as in Eq. 8 (Eq. 8).

Figure 112015095377944-pct00008
식 8
Figure 112015095377944-pct00008
Equation 8

여기서, H(X) = 4.3158이고, B = 14.34이다.Here, H (X) = 4.3158 and B = 14.34.

오리지널 싱글 비트의 시퀀스를 포함하는 제2 섹션은 아래와 같이 식 9(Eq. 9)에 포함된다.The second section containing the sequence of original single bits is included in Equation 9 (Eq. 9) as follows.

Figure 112015095377944-pct00009
식 9
Figure 112015095377944-pct00009
Equation 9

여기서, H(X) = 6.3113이고, B = 20.97이다. 오리지널 비트의 식 9(Eq. 9) 시퀀스는, 다이렉트 ODelta 연산자 처리될 때, 대응하는 변환된 비트의 시퀀스는 식 10(Eq. 10)에서와 같이 제공된다.Here, H (X) = 6.3113 and B = 20.97. The sequence of the original bit of Equation 9 (Eq. 9), when processed by the direct ODelta operator, provides the corresponding sequence of transformed bits as in Equation 10 (Eq. 10).

Figure 112015095377944-pct00010
식 10
Figure 112015095377944-pct00010
Equation 10

여기서, H(X) = 1.7460이고 B = 5.80이다. 이들 예에 있어서, 전술한 바와 같이, H(X)는 엔트로피 E를 나타내며, B는 코딩에 필요한 최소 비트 수를 나타낸다.Where H (X) = 1.7460 and B = 5.80. In these examples, H (X) denotes entropy E, and B denotes the minimum number of bits required for coding, as described above.

이 예에서의 식 7(Eq. 7) 및 식 10(Eq. 10)으로부터의 최적 압축은, 양쪽 섹션이 개별적으로 다이렉트 ODelta 연산자 처리될 때 달성되며(즉, 14.34 비트 + 5.80 비트 = 총 20.14 비트에 대한 인코딩); 이러한 압축은 오리지널로 요구되는 36.82 비트 보다 더 적은 비트 즉, 34.60 비트를 요구하는 다이렉트 ODelta-연산된 비트 또는 분할 이후에 요구되는 오리지널 비트 수(= 15.82 비트 + 20.97 비트 = 36.79 비트)를 요구한다. 유익하게, 데이터(D1) 내의 비트들의 오리지널 스트림을 섹션들로 분할하는 것은, 즉 피스-바이-피스로 데이터(D2) 내에 포함되는 바와 같이, 오리지널 데이터(D1)의 엔트로피(E) 및 변경된 데이터의 대응하는 엔트로피(H)를 분석함으로써 자동적으로 실행된다.Optimal compression from Eqs. 7 (Eq. 7) and Eq. 10 (Eq. 10) in this example is achieved when both sections are processed separately with a direct ODelta operator (ie 14.34 bits + 5.80 bits = 20.14 bits total For encoding); This compression requires less than the 36.82 bits required by the original, i.e., the number of original ODelta-calculated bits requiring 34.60 bits or the number of original bits required after division (= 15.82 bits + 20.97 bits = 36.79 bits). Advantageously, dividing the original stream of bits in the data D1 into sections, i.e., entropy (E) of the original data D1 and modified data (D), as contained in the data D2 by piece- Lt; RTI ID = 0.0 &gt; (H) &lt; / RTI &gt;

데이터 압축은, 데이터의 큰 충분한 영역이 존재하면, 데이터(D1)에서 이용가능한 복수의 긴 런 섹션이 존재할 때, 단순히 데이터(D1)의 부분들을 인코딩될 새로운 섹션으로 분할함으로써 조악한 방식으로 옵션적으로 구현되며, 여기서 비트 값들은 시퀀스에 따라서 급속하게 변한다. 옵션적으로, 데이터(D1)의 일부 섹션은 다이렉트 ODelta 연산자를 사용하지 않고 인코딩되는데, 예컨대 비교적 적은 개별적인 차이 비트를 가진 상호 유사한 비트의 긴 런이 존재하면; 이러한 경우, 다이렉트 ODelta 연산자는 데이터 압축 목적을 위하여 현저한 이점을 제공하지 않는다.The data compression is performed in a coarse manner by simply dividing the portions of the data D1 into new sections to be encoded when there are a plurality of long run sections available in the data D1, Where the bit values change rapidly according to the sequence. Optionally, some sections of data D1 are encoded without using the direct ODelta operator, for example if there is a long run of mutually-similar bits with relatively few individual difference bits; In this case, the direct ODelta operator does not provide a significant advantage for data compression purposes.

데이터(D1)를 더 작은 섹션들로 분할하는 것은, 데이터를 인코딩된 데이터(D2)로 만드는데 기여하는 부가적인 오버헤드를 생성하는 단점을 가진다. 이러한 오버헤드는, 예컨대 매 새로운 섹션과 연관되는 데이터 비트 또는 데이터 바이트의 양을 나타내는 정보를 포함한다. 그러나, 적어도 어떤 량의 오버헤드 데이터 값을 송신할 필요가 있음이 항상 발견되며, 이에 따라서 주어진 데이터가 데이터의 2개의 섹션으로 분할될 때 하나의 추가(extra) 오버헤드 데이터 값만이 존재한다.Dividing the data D1 into smaller sections has the disadvantage of creating additional overhead which contributes to making the data into encoded data D2. Such overhead includes, for example, information indicating the amount of data bits or data bytes associated with each new section. However, it is always found that at least some amount of overhead data value needs to be transmitted, so that there is only one extra overhead data value when the given data is divided into two sections of data.

이후에 디코딩될 수 있는 인코딩된 비트 스트림을 달성하기 위하여, 엔트로피 인코딩은 다이렉트 ODelta 연산자, 예컨대, VLC, 호프만 코딩, 산술 코딩, 레인지 코딩, RLE, SRLE, EM 및 유사 코딩 이후에 유익하게 구현된다. 실제 데이터 인코딩과 비교할 때 계산된 엔트로피(E) 및 최소 비트 추정 값에 기초하여 최적화 계산을 실행하는 것이 더 쉽고 계산상으로 더욱 효율적이다. 이러한 실행 순서는 상당한 속도 최적화를 가능하게 하고, 종종 인코딩된 데이터(D2)에서의 최적의 데이터 압축 결과를 달성한다. 대안적으로, 즉 데이터(D1) 내의 오리지널 비트, 알파벳, 숫자, 바이트 및 워드 데이터가, 엔트로피-최적화된 비트 스트림을 생성하기 위하여 일부 다른 방법으로 먼저 코딩되는 방식으로 엔트로피 최적화를 실행하는 것이 실현될 수 있고, 그 후, 다이렉트 ODelta 연산자는 대응하는 인코딩된 데이터 즉, 데이터(D2)를 제공하기 위하여 엔트로피-최적화된 비트 스트림을 변경하는데 사용된다. 또한, 이러한 ODelta 연산된 데이터는, 데이터(D3)를 생성하기 위하여 데이터(D2)로부터 다른 인코딩 방법으로 계속해서 인코딩될 수 있다.Entropy encoding is advantageously implemented after a direct ODelta operator, e.g., VLC, Huffman coding, arithmetic coding, range coding, RLE, SRLE, EM and similar coding, to achieve an encoded bitstream that can be decoded thereafter. It is easier and computationally more efficient to perform the optimization calculation based on the calculated entropy (E) and the minimum bit estimate value when compared to the actual data encoding. This order of execution enables considerable speed optimization and often achieves optimal data compression results in the encoded data D2. Alternatively, it is realized to perform entropy optimization in such a way that the original bit, alphabet, number, byte and word data in data D1 are first coded in some other way to produce an entropy-optimized bitstream And then the direct ODelta operator is used to modify the entropy-optimized bitstream to provide the corresponding encoded data, i.e. data D2. Further, this ODelta-calculated data can be continuously encoded from data D2 in a different encoding method to generate data D3.

일반화된 다이렉트 ODelta 연산자는, 데이터(D1) 내에 사용되는 값들의 범위를 기술하는 파라미터 즉, 그 값들을 나타내는데 필요한 비트의 값 또는 비트 수를 사용한다. 또한, ODelta 연산자는, 포지티브 및 네가티브 오프셋 값 다시 말해서 포지티브 및 네가티브 “페디스털(pedestal)”값을 사용할 수 있는 방법에서 사용된다. 예컨대, 데이터(D1)에 7 비트가 제공되면, 즉 지원되는 “0” 내지 “127”의 값을 갖지만, 이 데이터가 “60” 내지 “115”의 범위의 값들만을 포함하고, 그 후, -60의 오프셋 값이 데이터(D1)에 적용될 때, 이에 의해 단지 6 비트를 포함하는 값으로써 표현될 수도 있는“0” 내지 “55”의 범위의 값을 가지는 생성되어진 변환된 데이터가 존재하며, 이에 의해 즉 달성하기 위한 데이터 압축의 정도가 실현될 수 있다. 이에 따라서, 일반화된 다이렉트 ODelta 연산자는, 풀 레인지의 데이터 값이 데이터(D1)에 제공되는데, 즉 7비트로 표현되며, 종래에는 8-비트 바이트로 표현된다.The generalized direct ODelta operator uses a value or bit number of a bit, which is a parameter that describes a range of values used in the data D1, that is, the bits necessary to represent the values. In addition, the ODelta operator is used in a way that can use positive and negative offset values, that is, positive and negative &quot; pedestal &quot; values. For example, if 7 bits are provided in the data D1, that is, it has a value of "0" to "127" that is supported but this data includes only values in the range of "60" to "115" When the offset value of -60 is applied to the data D1, there is generated transformed data having a value in the range of &quot; 0 &quot; to &quot; 55 &quot; By doing this, the degree of data compression to achieve can be realized. Accordingly, the generalized direct ODelta operator is provided with the data value of the full range in the data D1, that is, represented by 7 bits and conventionally represented by 8-bit bytes.

본 발명에 따라서, 다이렉트 ODelta 값, 즉 방법 1은, 단지 포지티브 값을 가진 데이터에 대하여 아래와 같이 예시적인 소프트웨어 코드를 제외하고 설명되는 바와 같이 절차를 이용하여 계산될 수 있다(lowValue = MIN = 0 및 highValue = MAX = 127, wrapValue = 127 - 0 + 1 = 128).In accordance with the present invention, the direct ODelta value, i. E. Method 1, can be calculated for data with a positive value only using the procedure as outlined below except for the exemplary software code (lowValue = MIN = 0 and highValue = MAX = 127, wrapValue = 127 - 0 + 1 = 128).

Figure 112015095377944-pct00011
Figure 112015095377944-pct00011

이제, 전술된 ODelta 연산자를 추가로 설명하기 위한 예가 제공될 것이다. 값들의 오리지널 시퀀스는 아래와 같이 식 11(Eq. 11)에 제공된다.Now, an example will be provided to further illustrate the above-mentioned ODelta operator. The original sequence of values is given in Equation 11 (Eq. 11) as follows.

Figure 112015095377944-pct00012
식 11
Figure 112015095377944-pct00012
Equation 11

대응하는 델타 코딩 값은 아래와 같이 식 12(Eq. 12)에 제공된다.The corresponding delta coding value is provided in Equation 12 (Eq. 12) as follows.

Figure 112015095377944-pct00013
식 12
Figure 112015095377944-pct00013
Equation 12

대응하는 다이렉트 ODelta 코딩 값들은, 아래와 같이 식 13(Eq. 13)에 제공된다. Corresponding direct ODelta coding values are provided in Equation 13 (Eq. 13) as follows.

Figure 112015095377944-pct00014
식 13
Figure 112015095377944-pct00014
Equation 13

여기서, 파라미터 내의 랩어라운드(wrapValue)가 사용된다. Here, the wrapValue in the parameter is used.

역 ODelta 연산자, 즉 방법 1은, 예컨대 아래와 같이 예시적인 소프트웨어 코드에 의해 구현되는 바와 같이, 역 ODelta 값을 생성하는데 사용될 수 있다.The inverse ODelta operator, i.e., Method 1, can be used to generate an inverse ODelta value, e.g., as embodied by the exemplary software code below.

Figure 112015095377944-pct00015
Figure 112015095377944-pct00015

이 소프트웨어 코드가 실행되어 식 13(Eq. 13)에 적용될 때, 이러한 소프트웨어는 식 14(Eq. 14)에 제공된 바와 같이 값들을 생성한다.When this software code is executed and applied to Equation 13 (Eq. 13), this software generates values as provided in Equation 14 (Eq. 14).

Figure 112015095377944-pct00016
식 14
Figure 112015095377944-pct00016
Equation 14

이 예는 2의 거듭제곱 값으로서 wrapValue을 이용한다. 이는 의무사항이 아니며, wrapValue는, 만일 네가티브 값들이 또한 이용가능하거나 또는 레인지가 데이터의 주어진 시퀀스에서 프리-오프셋에 의해 변경되면, 가장 큰 데이터 값보다 더 큰 임의의 값이거나 사용된 범위보다 더 넓은 값일 수도 있다. 이후에 이러한 특징을 나타내는 추가적인 예가 존재한다.This example uses wrapValue as the power of 2. This is not mandatory and wrapValue may be any value larger than the largest data value or wider than the used range if negative values are also available or if the range is changed by a pre-offset in a given sequence of data Value. Thereafter, there are additional examples showing this feature.

도 1을 참조하여 전술한 내용을 요약하기 위하여, 본 개시는 인코더(10)와 디코더(20)와 관련된다. 옵션적으로, 인코더(10) 및 디코더(20)는 도면 번호 30에 의해 일반적으로 표시되는 코덱으로서 결합되어 사용된다. 인코더(10)는 예컨대, 대응하는 인코딩된 데이터(D2 또는 D3)를 생성하기 위하여 다이렉트 ODelta 방법을 이용하여 인코딩되는 오리지널 입력 데이터(D1)를 수신하도록 동작될 수 있다. 인코딩된 데이터(D2 또는 D3)는 옵션적으로 통신 네트워크(40)를 통하여 통신되거나, 예컨대 광학 디스크 판독 전용 메모리(ROM) 또는 이와 유사한 것과 같은 데이터 캐리어 등의 데이터 저장 매체(50) 상에 저장된다. 디코더(20)는, 예컨대 통신 네트워크(40)를 통하여 스트림되거나 데이터 저장 매체(50) 상에 제공되는, 인코딩된 데이터(D2 또는 D3)를 수신하도록 동작될 수 있고, 예컨대 오리지널 데이터(D1)와 실질적으로 유사한 대응하는 디코딩된 데이터(D5)를 생성하기 위하여, 역 방법 예컨대 역 ODelta 방법을 적용하도록 동작될 수 있다. 인코더(10) 및 디코더(20)는, 예컨대, 하나 이상의 소프트웨어 제품을 실행하도록 동작될 수 있는 컴퓨팅 하드웨어, 예컨대 이러한 설명부에서의 예시적인 실시형태로서 제공되는 코덱과 같은 디지털 하드웨어를 이용하여 유익하게 구현된다. 대안적으로, 인코더(10) 및/또는 디코더(20)는 전용 디지털 하드웨어를 이용하여 구현된다.To summarize the foregoing with reference to FIG. 1, the present disclosure relates to encoder 10 and decoder 20. Optionally, encoder 10 and decoder 20 are combined and used as a codec, generally indicated by reference numeral 30. The encoder 10 may be operable to receive the original input data D1 that is encoded using the direct ODelta method, for example, to generate the corresponding encoded data D2 or D3. The encoded data D2 or D3 is optionally communicated over the communication network 40 or stored on a data storage medium 50 such as a data carrier such as an optical disk read only memory (ROM) or the like . The decoder 20 may be operable to receive encoded data D2 or D3, e.g., streamed over a communication network 40 or provided on a data storage medium 50, It may be operated to apply the inverse method, e.g. the inverse ODelta method, to produce substantially similar corresponding decoded data D5. Encoder 10 and decoder 20 may advantageously be implemented using digital hardware, such as, for example, a computing hardware capable of being operated to execute one or more software products, such as a codec provided as an exemplary embodiment in this description. . Alternatively, the encoder 10 and / or the decoder 20 are implemented using dedicated digital hardware.

인코더(10)에서 실행되는 바와 같이, ODelta 방법은 도 2에 도시된 바와 같은 단계들을 이용한다. 옵션적인 제1 단계(100)에서, 입력 데이터(D1)는 데이터 요소들의 값의 범위를 찾기 위하여 프로세싱된다. 옵션적인 제2 단계(110)에서, 값들의 범위로부터, 오프셋, 즉 프리-오프셋은 대응하는 세트의 변형된 요소들을 생성하기 위하여 데이터 요소들을 포지티브 레짐(regime)으로 변형하기 위해 계산된다. 제3 단계(120)에 있어서, 제2 단계(110)에서 옵션적으로 변형된 요소들은, 그 후 대응하는 ODelta 인코딩된 값들을 생성하기 위하여 다이렉트 ODelta 인코딩된다. 제4 단계(130)에 있어서, ODelta 인코딩된 값들 및 옵션적인 오프셋 값, 최소 값(lowValue), 및/또는 최대 값(highValue)은, 데이터(D2)로부터 데이터(D3)를 생성하기 위하여 예컨대 런-렝쓰 인코딩(RLE), 레인지 코딩, 또는 호프만 코딩을 이용하여 그 후 개별적으로 인코딩된다. 오프셋 값, 최소 값(lowValue), 및/또는 최대 값(HighValue)은 항상 압축될 수 없기 때문에, 인코더(10)로부터 디코더(20)까지 적절한 비트양을 이용하여 전달되는 값을 요구한다. 또한, 오프셋 값, 최소 값(lowValue), 및/또는 최대 값(highValue)은 다이렉트 ODelta 연산자에 대하여 옵션적인 특징이며; 예컨대, 오프셋 값은, 어떤 상황에서는, “0”값을 가지며, lowValue는 값(MIN)을 가지며, highValue는 값(MAX)을 가지며, 즉 변형은 적용되지 않고, 풀 레인지가 사용되지 않는다. 특히, 다이렉트 ODelta 연산자가, 1-비트 데이터에 대하여 즉 비트-바이-비트 인코딩을 위하여 구현될 때, 이러한 연산자는 전혀 오프셋 값을 필요로 하지 않고, 그 후 단계들(100 및 110)은 항상 무시된다. 오프셋 값이 또한 단계 110에서 사용될 때, 최대 및 최소 값을 나타내는 레인지 값은 단계 110 내에서 업데이트되어야 한다. 차이 값의 수 즉, wrapValue는, 디코더(20)에 의해 또한 공지되어야 하거나 또는, 그렇지 않으면, 인코더(10)가 압축된 데이터 내에서 값을 디코더(20)에 전달해야 한다. 옵션적으로, 디폴트 wrapValue(= highValue - lowValue + 1)는 인코더에서 그리고 디코더에서 사용된다. 옵션적으로, 인코더(10) 및 디코더(20) 중 적어도 하나는, 인코딩된 데이터(D2)를 생성하기 위하여 데이터(D1)를 최적으로 압축하기 위해, 예컨대 입력 데이터(D1)를 인코딩을 위한 섹션으로 세분하는 최적의 방식을 찾기 위하여 재귀적 방식으로 동작된다. As implemented in the encoder 10, the ODelta method utilizes the steps as shown in FIG. In an optional first step 100, the input data D1 is processed to find a range of values of data elements. In an optional second step 110, from the range of values, an offset, i. E., A pre-offset, is calculated to transform the data elements into a positive regime to produce the corresponding set of deformed elements. In a third step 120, the optionally modified elements in the second step 110 are then Direct ODelta encoded to produce corresponding ODelta encoded values. In a fourth step 130 the ODelta encoded values and optionally an offset value, a low value and / or a maximum value (highValue) are used to generate the data D3 from the data D2, Are then individually encoded using length-encoded (RLE), range-coded, or Hoffman-coded. Since the offset value, the low value (lowValue), and / or the maximum value (HighValue) can not always be compressed, a value is transmitted using the appropriate amount of bits from the encoder 10 to the decoder 20. Also, the offset value, the low value (lowValue), and / or the maximum value (highValue) are optional features for the direct ODelta operator; For example, the offset value may have a value of &quot; 0 &quot; in some situations, lowValue has a value MIN, and highValue has a value MAX, i.e. no deformation is applied and full range is not used. In particular, when a direct ODelta operator is implemented for 1-bit data, i. E. For bit-by-bit encoding, this operator does not need an offset value at all and then steps 100 and 110 are always ignored do. When an offset value is also used in step 110, the range value indicating the maximum and minimum values should be updated within step 110. [ The number of difference values, i. E., WrapValue, must also be known by the decoder 20, or else the encoder 10 must pass the value to the decoder 20 in the compressed data. Optionally, the default wrapValue (= highValue - lowValue + 1) is used in the encoder and in the decoder. Optionally, at least one of the encoder 10 and the decoder 20 may be configured to compress the data D1 to optimally compress the data D1 to generate encoded data D2, In a recursive manner.

디코더(20)에서 실행되는 바와 같은 역 ODelta 방법은 도 3에 도시된 바와 같은 단계를 이용한다. 제1 단계 200에서, 데이터(D2/D3 또는 D4)는, 디코딩된 ODelta 데이터를 생성하기 위하여 전술한 단계 130에서 사용되는 데이터에 대하여 역 인코딩되며, 여기서 디코딩된 ODelta 데이터는, ODelta-인코딩된 값을 가지며, 옵션적으로 개별적인 오프셋 값을 가진다. 제2 단계 210에서, ODelta-인코딩된 값들은 데이터 요소들의 시퀀스를 생성하기 위하여 디코딩된다. 제3 단계 220에 있어서, 데이터 요소들의 시퀀스는, 디코딩된 데이터(D5)를 생성하기 위하여 옵션적인 프리-오프셋 값을 이용하여 변형되며; 어떤 상황에 있어서, 이러한 변형은“0”값으로 설정되는데, 즉 변형이 효율적으로 적용되지 않는다. 또한, 예컨대 1-비트 인코딩 즉 비트-바이-비트 인코딩을 수행할 때, 오프셋 값을 사용할 필요 없이 방법을 실행하는 것이 가능하며, 이에 의해 단계 220을 무시할 수 있다. 또한, 디코더(20)는 적절한 방식으로 수신된 데이터 요소들을 디코딩할 수 있도록 wrapValue을 알아야 한다. The inverse ODelta method as implemented in the decoder 20 uses the steps as shown in FIG. In a first step 200, the data (D2 / D3 or D4) is decoded against the data used in step 130 described above to generate decoded ODelta data, where the decoded ODelta data is converted to an ODelta-encoded value And optionally has an individual offset value. In a second step 210, the ODelta-encoded values are decoded to produce a sequence of data elements. In a third step 220, the sequence of data elements is modified using an optional pre-offset value to generate decoded data D5; In some circumstances, this variant is set to a value of &quot; 0 &quot; i.e. the variant is not applied efficiently. Also, when performing, for example, a one-bit encoding or bit-by-bit encoding, it is possible to implement a method without using an offset value, thereby ignoring step 220. In addition, the decoder 20 must know the wrapValue to be able to decode the received data elements in an appropriate manner.

단지 포지티브 값을 달성하기 위하여 오프셋을 사용함으로서, 데이터(D2 또는 D3)에서의 더욱 효율적인 데이터 압축이 달성될 수 있다. 모든 데이터 값들이 이미 포지티브 값이면, 임의의 오프셋 값을 추가할 필요가 없다. 물론, 네가티브 오프셋 값들은 옵션적으로 다음 예에 도시된 바와 같이, 이용가능한 범위를 감소시키기 위하여 사용되지만, 이는 의무사항은 아니다.By using an offset to achieve only a positive value, more efficient data compression in data D2 or D3 can be achieved. If all the data values are already positive, there is no need to add any offset value. Of course, the negative offset values are optionally used to reduce the available range, as shown in the following example, but this is not mandatory.

도 2 및 도 3의 방법들은, ODelta 코딩되는 이용가능한 값만을 이용함으로써, 옵션적으로 또한 최적화될 수 있다. 이러한 최적화는 사용된 값들이 공지되어 있어야 함을 요구한다. 예컨대, 전술한 내용의 예에 있어서, 1(=오리지널 최소)로부터 126(=오리지널 최대)까지의 값들만이 오리지널 데이터 세트(D1)에 제공된다. 그 후, 오프셋 값은 1(-> lowValue = 오리지널 최소 - 오프셋 = 1 - 1 = 0 그리고 highValue = 오리지널 최대 - 오프셋 = 126 - 1 = 125)이 된다. 프리-오프셋 값이 오리지널 데이터(D1)로부터 감소되었을 때, 이에 의해, 이하의 값들은 식 15(Eq. 15)에서 생성된다.The methods of FIGS. 2 and 3 can also be optionally optimized as well, by using only the available values that are ODelta coded. This optimization requires that the values used be known. For example, in the example of the above description, only values from 1 (= original minimum) to 126 (= original maximum) are provided in the original data set D1. The offset value is then 1 (-> lowValue = original minimum - offset = 1 - 1 = 0 and highValue = original maximum - offset = 126 - 1 = 125). When the pre-offset value is reduced from the original data D1, the following values are thereby generated in Eq. 15 (Eq. 15).

Figure 112015095377944-pct00017
식 15
Figure 112015095377944-pct00017
Equation 15

식 15(Eq. 15)로부터, 최대 값 125는, “숫자”(= 최대 델타 값 = highValue - lowValue)가 이제 125일 수 있거나, wrapValue가 최소값 126(= 숫자 + 1 = highValue - lowValue + 1)일 수 있도록 결정된다(highValue = 오리지널 max - 오프셋 = 126 - 1 = 125). 이제, 이러한 값들을 저장 및/또는 전달할 필요가 있고, 그 후 이전의 예는 아래와 같이 프로세스 값들을 변경함으로써 변형될 수 있다.From Equation 15 (Eq. 15), the maximum value 125 can be either 125 or the wrapValue is the minimum value 126 (= number + 1 = highValue - lowValue + 1) (HighValue = original max - offset = 126 - 1 = 125). Now, it is necessary to store and / or transfer these values, and then the previous example can be modified by changing the process values as follows.

Figure 112015095377944-pct00018
Figure 112015095377944-pct00018

대응하는 다이렉트 ODelta 연산자 값들이 식 16(Eq. 16)에 제공된다.Corresponding direct ODelta operator values are provided in Equation 16 (Eq. 16).

Figure 112015095377944-pct00019
식 16
Figure 112015095377944-pct00019
Equation 16

모든 “네가티브 델타 값”은 이제 2(즉 = 레인지 변경 = 128 - 126)의 인자에 의해 감소된다는 점이 인식될 것이다. 유사하게도, 디코더(20)에 있어서, 프로세스 값들은 아래와 같이 변경되어야 한다.It will be appreciated that all &quot; negative delta values &quot; are now decremented by a factor of 2 (i.e., = range change = 128 - 126). Similarly, in the decoder 20, the process values should be changed as follows.

Figure 112015095377944-pct00020
Figure 112015095377944-pct00020

대응하는 역 ODelta 값들은 아래와 같이 식 17(Eq. 17)에 제공된다.Corresponding inverse ODelta values are provided in Equation 17 (Eq. 17) as follows.

Figure 112015095377944-pct00021
식 17
Figure 112015095377944-pct00021
Equation 17

프리-오프셋 값이 식 17(Eq. 17)에 추가될 때, 식 18(Eq. 18)에서의 이하의 결과가, 아래와 같이 식 15(Eq. 15)에서의 오리지널 데이터에 대응하여 획득된다.When the pre-offset value is added to Equation 17 (Eq. 17), the following result in Equation 18 (Eq. 18) is obtained corresponding to the original data in Equation 15 (Eq. 15) as follows.

Figure 112015095377944-pct00022
식 18
Figure 112015095377944-pct00022
Equation 18

이 예에 있어서, 값들의 범위가 거의 채워지므로, 다이렉트 ODelta 연산자를 오프셋 및 최대 값(highValue)에 적용함으로써 유도되는 비교적 보통의 이익이 존재한다. 그러나, 엔트로피(E)에서의 감소는 계속해서 달성될 수 있는 데, 즉 값들이 적절하게 전달될 때, 주파수 테이블에서 또는 코드 테이블에서의 값들을 더 적게 만든다. 가장 큰 이익은, 범위가 덜 사용될 때 달성될 수 있다. In this example, there is a relatively normal benefit derived by applying the direct ODelta operator to the offset and the maximum value (highValue) since the range of values is nearly filled. However, the reduction in entropy (E) can still be achieved, i.e., making the values in the frequency table or in the code table less when the values are properly propagated. The greatest gain can be achieved when the range is used less.

실제 1-비트 다이렉트 및 역 ODelta 방법의 예시적인 실시형태 즉, 데이터를 인코딩 및 디코딩하는 방법 1 또는 방법 3이, 이제 실행 가능한 컴퓨터 소프트웨어 코드에 의해 제공되며; 이 방법은 전술한 다이렉트 및 역 ODelta 연산자 즉, 방법 1 또는 방법 3을 이용한다. 소프트웨어 코드는, 컴퓨팅 하드웨어 상에 실행될 때, 하나의 바이트 버퍼로부터 다른 바이트 버퍼로 비트를 프로세싱하기 위하여 동작될 수 있다. 소프트웨어 코드에 있어서, GetBit, SetBit 및 ClearBit 함수는 항상 HeaderBits 값을 업데이트한다. HeaderIndex 값은 또한 다음 비트가 다음 바이트 내에 있을 때 업데이트된다. 옵션적으로, 소프트웨어 코드는, 값들이 주어진 비트가 목적지 버퍼에 기록될 때에만 업데이트되도록, HeaderIndex 및 HeaderBits 값들의 하나의 세트만을 소스 및 목적지에 대하여 사용하기 위하여, 최적화될 수 있다.An exemplary embodiment of an actual 1-bit direct and inverse ODelta method, namely Method 1 or Method 3 for encoding and decoding data, is now provided by executable computer software code; This method uses the direct and inverse ODelta operators described above, Method 1 or Method 3. The software code, when executed on the computing hardware, can be operated to process bits from one byte buffer to another. In the software code, the GetBit, SetBit and ClearBit functions always update the HeaderBits value. The HeaderIndex value is also updated when the next bit is in the next byte. Optionally, the software code may be optimized to use only one set of HeaderIndex and HeaderBits values for the source and destination, so that the values are updated only when a given bit is written to the destination buffer.

Figure 112015095377944-pct00023
Figure 112015095377944-pct00023

Figure 112015095377944-pct00024
Figure 112015095377944-pct00024

전술한 다이렉트 및 역 ODelta 연산자 즉, 방법 1 또는 방법 3은, 디지털 포맷의 예컨대 비디오 데이터, 영상 데이터, 오디오 데이터, 그래픽 데이터, 지진 데이터, 의료 데이터, 측정 값, 참조 수치 및 마스크인 임의의 타입의 데이터를 압축하도록 유익하게 사용된다. 또한, 하나 이상의 아날로그 신호는 또한 예컨대 압축 이전에 ADC를 이용함으로써, 처음으로 대응하는 디지털 데이터로 변환될 때 다이렉트 ODelta 연산자를 이용하여 압축될 수도 있다. 데이터가 하나 이상의 아날로그 신호로 다시 변환되기를 원하면, 역 ODelta 연산자가 사용될 때, DAC는 연산 이후에 사용될 수 있다. 그러나, 다이렉트 ODelta 연산자 단독으로는 통상적으로 데이터를 압축하는데 유효하지 않지만, 예컨대 가변-길이 코딩(VLC), 산술 코딩, 레인지 코딩, 런-렝쓰 인코딩, SRLE, 엔트로피 모디파이어 등의 다른 인코딩 방법과 결합하여 사용될 때 효과적인 데이터 압축을 제공할 수 있다. 이러한 인코딩 방법은 다이렉트 ODelta 연산자가 인코더(10)에 사용된 이후에 데이터(D2)에 대하여 사용된다. 인코딩된 데이터(D2)는, 결과적으로 발생된 데이터가 디코더(20) 내에 구현된 역 ODelta 연산자에 전달되기 이전에 대응하여 다시 디코딩되어야 한다. ODelta 연산자는 또한 다른 타입의 엔트로피 모디파이어에 대하여 사용될 수 있다. 어떤 상황에 있어서, 다이렉트 ODelta 연산자는, 엔트로피(E)를 증가시키며, 데이터 압축 알고리즘은, 이것이 유익한 데이터 압축 성능을 제공할 때에만 예컨대, 이것이 압축되는 데이터의 본성에 기초하여 선택적으로 사용될 때, 예컨대, 전술한 바와 같이 입력 데이터(D1)의 선택된 부분들에 선택적으로 적용될 때, 데이터를 인코딩하는데 사용하기 위해 다이렉트 ODelta 연산자를 선택적으로 사용하도록 유익하게 동작될 수 있다.The direct and inverse ODelta operators described above, Method 1 or Method 3, may be applied to any type of digital data, such as video data, video data, audio data, graphics data, seismic data, medical data, measurements, And is advantageously used to compress data. In addition, the one or more analog signals may also be compressed using the direct ODelta operator, for example, when converted to corresponding digital data for the first time, e.g., by using an ADC prior to compression. If the data is to be converted back to one or more analog signals, the DAC can be used after the operation when the inverse ODelta operator is used. However, although the direct ODelta operator alone is not generally effective for compressing data, it may be used in combination with other encoding methods such as variable length coding (VLC), arithmetic coding, range coding, run-length encoding, SRLE, entropy modifiers, It can provide effective data compression when used. This encoding method is used for the data D2 after the direct ODelta operator is used in the encoder 10. [ The encoded data D2 must be decoded again correspondingly before the resulting data is passed to the inverse ODelta operator implemented in the decoder 20. [ The ODelta operator can also be used for other types of entropy modifiers. In some situations, the direct ODelta operator increases the entropy (E), and the data compression algorithm can be used only when it provides useful data compression performance, for example, when it is selectively used based on the nature of the data being compressed, May be advantageously operated to selectively use the direct ODelta operator for use in encoding the data when selectively applied to selected portions of the input data D1 as described above.

다이렉트 ODelta 연산자가, 예컨대 참조로 본원에 통합되는 미국 특허 출원 제13/584,005호에 개시된 바와 같이 블록 인코더와 결합하여 사용되도록 고안되었고, 역 ODelta 연산자는, 참조로 본원에 통합되는 미국 특허 출원 제13/584,047호에 개시된 바와 같이 블록 디코더와 결합하여 사용되도록 고안되었다. 옵션적으로, 다이렉트 ODelta 연산자 및 역 ODelta 연산자는 참조로 본원에 통합되는 미국 특허 출원 제13/657,382에 개시된 바와 같이 멀티레벨 코딩 방법과 결합하여 유익하게 사용된다. 유익하게, 바이너리 상태를 포함하는, 예컨대 데이터(D1)에 존재하는 모든 타입의 1-비트 데이터는, 대응하는 변환된 데이터를 생성하기 위하여 1-비트 버전의 다이렉트 ODelta 연산자 처리되며, 이 변환된 데이터는 그 후 인코딩된 데이터(D2 또는 D3)를 생성하기 위하여 실제 엔트로피 인코딩된다. 옵션적으로, 전술한 바와 같이, 다이렉트 ODelta 연산자는, 오리지널 데이터(D1)의 본성에 따라서 선택적으로 사용된다.A direct ODelta operator is devised for use in conjunction with a block encoder as disclosed in, for example, U.S. Patent Application No. 13 / 584,005, which is incorporated herein by reference, and the inverse ODelta operator is described in U.S. Patent Application No. 13 / 584,047, which is incorporated herein by reference in its entirety. Optionally, the direct ODelta operator and the inverse ODelta operator are advantageously used in combination with the multilevel coding method as disclosed in U.S. Patent Application No. 13 / 657,382, which is incorporated herein by reference. Advantageously, all types of 1-bit data, including binary states, for example in data D1, are processed by a 1-bit version of the Direct ODelta operator to produce the corresponding transformed data, Is then actually entropy encoded to produce the encoded data D2 or D3. Optionally, as described above, the direct ODelta operator is selectively used according to the nature of the original data D1.

옵션적으로, 다이렉트 ODelta 연산자의 이전 또는 이후에 데이터의 엔트로피를 변경하는 다른 방법들을 사용하도록 실현될 수 있다. 예컨대, 다이렉트 ODelta 연산자는, 일반화된 버전의 다이렉트 ODelta 연산자 내의 복수-비트 데이터에 대하여 직접적으로 또한 사용될 수 있다. 또한, 전술한 1-비트 버전의 다이렉트 ODelta 연산자는, 모든 사용된 비트가 먼저 비트의 직렬 시퀀스에 제공된 이후에, 유익하게도 복수-비트 데이터에 대하여 사용된다.Optionally, it can be realized using other methods of changing the entropy of the data before or after the direct ODelta operator. For example, the direct ODelta operator can also be used directly for multi-bit data in the generalized version of the direct ODelta operator. In addition, the 1-bit version of the direct ODelta operator described above is advantageously used for multi-bit data after all used bits are first provided in the serial sequence of bits.

복수의 방법들이, 인코더(10) 내의 다이렉트 ODelta 연산자와 관련하여 데이터 압축을 위하여 사용될 때, 대응하는 역 동작들이 예컨대, 디코더(20)에서 역순서로 수행된다.When a plurality of methods are used for data compression in connection with the direct ODelta operator in the encoder 10, corresponding inverse operations are performed in reverse order, e.g., at the decoder 20.

이하의 방법의 시퀀스는 인코더(10)에 사용된다.The sequence of the following method is used in the encoder 10.

Figure 112015095377944-pct00025
식 19
Figure 112015095377944-pct00025
Equation 19

이하의 방법의 역 시퀀스는 디코더(20)에 사용된다.The inverse sequence of the following method is used in the decoder 20.

Figure 112015095377944-pct00026
식 20
Figure 112015095377944-pct00026
Expression 20

여기서 “VLC”는 가변 길이 코딩을 나타내며, “EM”은 엔트로피 변경을 나타낸다. Where &quot; VLC &quot; represents variable length coding and &quot; EM &quot; represents entropy change.

앞에서 설명된 바와 같은 ODelta 연산자는 반전가능하며, 손실이 없다. 또한, ODelta 연산자는, 예컨대 비트-바이-비트 인코딩을 수행하지만, 또한 다른 데이터에 대해서도 수행할 때, 1-비트 데이터 스트림에 대하여 특별히 옵션적으로 구현될 수 있다. 유익하게도, 모든 타입의 데이터가, 다이렉트 ODelta 연산자의 일반화된 버전을 이용하여 프로세싱될 수 있다. 유익하게도, 다이렉트 ODelta 연산자는, 데이터가 압축될 때 사용되며, 대응하는 역 ODelta 연산자는 압축된 데이터가 압축 해제될 때 사용된다. 옵션적으로, ODelta 연산자가 사용될 때, 다이렉트 ODelta 연산자 및 그 대응하는 역 연산은, 역 순서로 사용되며, 다시 말해서, 역 ODelta 연산자는 오리지널 비트 스트림 상에 먼저 일시적으로 수행되고, 그 후, 오리지널 비트 스트림을 생성하기 위하여 다이렉트 ODelta 연산자가 후속된다. 하나의 ODelta 연산자는 엔트로피를 증가시키고, 다른 ODelta 연산자는 엔트로피를 감소시킨다. 다이렉트 ODelta 연산자가 전혀 엔트로피를 변경하지 않아야 하고, 그 후, 역 ODelta 연산자도 엔트로피를 변경하지 않는 것은 매우 드문 경우이다. 다이렉트 및 역 ODelta 연산자가 예컨대 방법 1에 대하여 사용될 때, 이러한 연산들의 역 순서는 방법 4의 정상 순서와 유사하다는 것에 주목해야 한다. 유사한 순서 변경이 방법 2 및 방법 3에 의해서 또한 가능하다.The ODelta operator as described above is reversible and has no loss. In addition, the ODelta operator may perform, for example, bit-by-bit encoding, but may also be optionally implemented specifically for a one-bit data stream when performing for other data as well. Advantageously, all types of data can be processed using a generalized version of the direct ODelta operator. Advantageously, the direct ODelta operator is used when the data is compressed, and the corresponding inverse ODelta operator is used when the compressed data is decompressed. Optionally, when the ODelta operator is used, the direct ODelta operator and its corresponding inverse operation are used in reverse order, in other words, the inverse ODelta operator is first temporarily performed on the original bitstream, and then the original bit A direct ODelta operator is followed to generate the stream. One ODelta operator increases entropy, and the other ODelta operator reduces entropy. It is very rare that the direct ODelta operator should not change the entropy at all and then the inverse ODelta operator does not change the entropy. It should be noted that when the direct and inverse ODelta operators are used, for example, for Method 1, the inverse order of these operations is similar to the normal order of Method 4. A similar order change is also possible by Method 2 and Method 3.

1-비트 버전에 있어서, 즉 비트-바이-비트 방식으로 데이터를 인코딩하기 위하여, 다이렉트 ODelta 연산자는 예측없이 즉, 초기 “0” 값의 예측을 디폴트로 가정하여 유익하게 개시된다. 일반화된 버전에서, ODelta 연산자는 이용가능한 데이터 범위의 절반을 나타내는 예측으로 개시되며; 예컨대, 5-비트가 데이터(D1)에서의 입력 데이터 값 즉, “0” 내지 “31”의 범위의 32개의 상이한 값에 대하여 사용되면, 예측 값은 32/2 = 16이다. 유익하게도, ODelta 연산자에는, 연산자를 이용하여 프로세싱될 데이터 요소에 대한 이용가능한 데이터 범위에 관한 정보가 제공될 필요가 있다.In the 1-bit version, that is to encode the data in a bit-by-bit manner, the direct ODelta operator is advantageously disclosed without assuming a prediction, i. In the generalized version, the ODelta operator begins with a prediction that represents half of the available data range; For example, if the 5-bit is used for 32 different values of the input data value in the data D1, that is, the range of "0" to "31", the predicted value is 32/2 = 16. Advantageously, the ODelta operator needs to be provided with information about the available data range for the data elements to be processed using the operator.

전술한 내용에 기재된 본 발명의 실시형태는, 비트 또는 임의의 디지털 값으로서 데이터(D1)에 제공되는 엔트로피(E)를 감소시킬 수 있다. 다이렉트 ODelta 연산자는 거의 항상 델타 코딩과 비교하여 개선된 엔트로피 감소를 제공한다. 델타 코딩이 바이트 랩어라운드와 함께 사용되고, 오리지널 예측(방법 1)에 대한 차이 ODelta 연산이 값 wrapValue=256, lowValue=MIN=0, 및 highValue=MAX=255을 사용하는 경우에만, 델타 디코딩 내에서 동일한 출력 결과를 생성한다. 다른 다이렉트 ODelta 방법이 사용되거나 또는 전체 데이터 범위가 입력 데이터에서 이용가능하지 않으면, ODelta 연산자는, 선택된 방법 또는 lowValue 및/또 highValue를 보냄으로써 더 나은 결과를 생성하며, 즉 이 연산자는 또한 wrapValue을 자동적으로 변경한다. 더 작은 엔트로피는, 데이터를 더 높은 데이터 압축비로 압축할 수 있게 한다. 더 높은 데이터 압축비는, 에너지 소비에서의 대응하는 감소에 대하여, 더 작은 용량 데이터 저장소를 사용할 수 있게 하고, 또한 압축된 데이터를 통신할 때 더 느린 데이터 대역폭을 사용할 수 있게 한다.The embodiments of the invention described in the foregoing description can reduce the entropy E provided to the data D1 as a bit or any digital value. The direct ODelta operator almost always provides improved entropy reduction compared to delta coding. If delta coding is used with byte wraparound and the difference ODelta operation for the original prediction (method 1) uses the values wrapValue = 256, lowValue = MIN = 0, and highValue = MAX = 255, Generate output results. If another direct ODelta method is used, or if the entire data range is not available in the input data, the ODelta operator produces better results by sending the selected method or lowValue and / or highValue, that is, . The smaller entropy allows the data to be compressed with a higher data compression ratio. The higher data compression ratio enables a smaller capacity data store to be used for a corresponding decrease in energy consumption and also allows for the use of slower data bandwidth when communicating compressed data.

전술한 내용에 있어서, 차 및 합 계산의 형태가 인코더(10)에서 실행되고, 대응하는 역 계산이 디코더(20)에서 수행된다는 것을 인식할 수 있다. 인코더(10) 내에 사용되는 다른 예측 방법을 이용하는 것이 또한 가능하며, 그 후, 대응하는 역 예측이 디코더(20)에서 수행된다. 이는 실제로 적어도 4개의 대응하는 역 ODelta 방법뿐만 아니라 적어도 4개의 상이한 다이렉트 ODelta 방법이 존재한다는 것을 의미한다. 이러한 방법의 상세하고 정확한 설명이 후속된다. 옵션적으로, 계산은, 인코딩된 데이터(D2)[또는 D3]에서 더 높은 등급의 데이터 압축을 획득하기 위하여 재귀적 방식으로 수행된다. 이러한 재귀적 계산을 실행할 때, 변경되는 숫자 범위는, 얼마나 많은 재귀적 계산이 사용되었는지에 대한 함수로서 사용된다. 예컨대, 인코더(10)에서, 이하의 계산 시퀀스는 인코딩된 데이터(D2)[또는 D3]를 생성하기 위하여 데이터(D1) 상에서 수행된다.In the foregoing, it will be appreciated that the type of difference and sum calculation is performed in the encoder 10 and the corresponding inverse calculation is performed in the decoder 20. [ It is also possible to use other prediction methods used in the encoder 10, and then a corresponding de-prediction is performed in the decoder 20. [ This actually means that there are at least four different direct ODelta methods as well as at least four corresponding inverse ODelta methods. A detailed and precise description of this method follows. Optionally, the calculation is performed in a recursive manner to obtain a higher-grade data compression in the encoded data D2 [or D3]. When performing this recursive computation, the range of numbers to be changed is used as a function of how many recursive computations are used. For example, in the encoder 10, the following calculation sequence is performed on the data D1 to generate the encoded data D2 [or D3].

Figure 112015095377944-pct00027
식 21
Figure 112015095377944-pct00027
Equation 21

그리고 대응하는 역 연산들이 디코더(20)에서 수행된다.And the corresponding inverse operations are performed in the decoder 20.

Figure 112015095377944-pct00028
식 22
Figure 112015095377944-pct00028
Equation 22

각 시간 데이터는, 식 21(방법 1에 대응하는 Eq. 21), 식 22(방법 2에 대응하는 Eq. 22), 식 23(방법 3에 대응하는 Eq. 23), 및 식 24(방법 4에 대응하는 Eq. 24)에 의해 표시되는 바와 같이, 이러한 4 개의 방법에서 연산되며, 이러한 방법들 중 하나가 다른 방법들보다 많이 프로세싱되는 데이터의 엔트로피를 감소시킬 수 있기 때문에, 모든 방법을 사용하도록 시도하는 것이 옵션적으로 가능하다. 인코더(10) 및/또는 디코더(20) 내에서의 방법들의 이용을 최적화하는 경우, 요구된 데이터 내의 정보량과 비교될 때, 많은 횟수로 동일하거나 또는 상이한 방법들을 사용하고, 그리고 선택된 방법, 또는 방법들이기만 하면, 엔트로피를 감소시키는 것이 유리하다. 이에 따라 방법 1 내지 4는 수치 값들을 인코딩하기 위하여 이용될 수 있고, 여기서 “수치 값”은, 복수-비트 값들뿐만 아니라 비트-바이-비트 방식에 의한 비트의 인코딩된 스트림에서와 같이, 그 정의 내에서 논-바이너리 숫자뿐만 아니라 1-비트 데이터를 포함한다.Each time data is represented by Equation 21 (Equation 21 corresponding to Method 1), Equation 22 (Equation 22 corresponding to Method 2), Equation 23 (Equation 23 corresponding to Method 3), and Equation 24 As indicated by Eq. 24), which corresponds to the number of times the data is processed, and since one of these methods can reduce the entropy of the data being processed much more than the other methods, It is optionally possible to try. When optimizing the use of the methods in the encoder 10 and / or the decoder 20, it is preferred to use the same or different methods a number of times when compared with the amount of information in the requested data, , It is advantageous to reduce entropy. Thus, methods 1 through 4 can be used to encode numerical values, where a "numerical value" is defined as the number of bits, as well as the multi-bit values, as in an encoded stream of bits by bit- Bit data as well as non-binary numbers within the &lt; / RTI &gt;

차 연산은 연속적인 숫자 값의 나머지를 나타내며; 이에 따라서, 합 연산은 연속적인 숫자 값의 합을 나타낸다. 인코더(10)에서 실행되는 이러한 연산들은 디코더(20)에서의 이들 자신의 대응하는 역 연산들을 가진다. 차 또는 합은, 현재 입력 값 그리고 예측 값으로서 사용되는 이전의 입력 또는 결과 값에 기초하여 계산될 수 있다. 다른 예측 값들이 또한 사용될 수 있고, 이러한 값들은, 디코더 내에서 또한 이와 같이 행하도록 반전될 수 있는 한, 예컨대 예측을 생성하기 위하여 인코더 내에서 초기에 입력 및 출력 값을 사용할 수 있다.The difference operation represents the remainder of consecutive numeric values; Accordingly, the summation operation represents the sum of consecutive numerical values. These operations performed in the encoder 10 have their corresponding inverse operations at the decoder 20. The difference or sum may be calculated based on the current input value and the previous input or result value used as the predicted value. Other prediction values may also be used, and these values may use input and output values initially in the encoder to produce, for example, predictions, as long as they can be inverted to do so in the decoder as well.

이러한 방법들 중 어느 것도 인코더(10) 및 디코더(20) 내에서 현저하게 데이터를 압축하지 않지만, 모든 방법들은, 엔트로피를 감소시키기 위하여 유익하게 사용되므로, 일부 다른 압축 방법은 그 후 엔트로피-감소된 데이터를 더욱 유효하게 압축할 수 있다. 이러한 다른 압축 방법은, 옵션적으로 호프만 코딩, 산술 코딩, 레인지 코딩, RLE 코딩, SRLE 코딩, 엔트로피 모디파이어 코딩 중 적어도 하나이다. 그러나, 모든 방법들에 대하여, 예컨대, 데이터의 손실없는 압축 및 후속의 손실없는 압축 해제가 달성되면, 연산 및 그 역 연산이 항상 정확하게 실행될 수 있는 적은 숫자 값들을 통신할 필요가 있다. 물론, 인코더(10) 및 디코더(20)는 어떤 종류의 숫자 값들이 입력 데이터(D1) 내에 포함되는 지에 관한 정보를 가진다. 유익하게도, 즉 MIN 및 MAX에 의해 규정된 숫자 범위가 공지된다고 가정된다. 원칙적으로, 방법들은 항상 기존 데이터 범위에 기초하여 직접적으로 기능할 수 있다. 연산들이 필요한 숫자 값들은, 최저 발생 숫자 값(lowValue) 및 최대 발생 숫자 값(highValue)이며; lowValue은 MIN 이상이며, highValue은 MAX 이하이다.Although none of these methods significantly compresses data in encoder 10 and decoder 20, all methods are advantageously used to reduce entropy, so that some other compression method may then be used to reduce entropy-reduced The data can be compressed more effectively. These other compression methods are optionally at least one of Hoffman coding, arithmetic coding, range coding, RLE coding, SRLE coding, and entropy modifier coding. However, for all methods, for example, if lossless compression of data and subsequent lossless decompression are achieved, then the operation and its inverse operation need to communicate small numeric values that can always be executed correctly. Of course, the encoder 10 and the decoder 20 have information as to what kind of numerical values are included in the input data D1. Advantageously, it is assumed that the numerical range defined by MIN and MAX is known. In principle, methods can always function directly based on existing data ranges. Numeric values that require operations are the lowest occurrence number value (lowValue) and the highest occurrence number value (highValue); lowValue is greater than or equal to MIN, and highValue is less than or equal to MAX.

이러한 값들에 기초하여, 다른 필요한 숫자 값들이 유도될 수 있다. 유익하게도, 이러한 값들은 다양한 형태로 통신되며, 여기서 소실된 값들이 유익하게 계산된다. 예컨대, 세트[“lowValue”, “highValue”, “숫자(number)”]로부터의 2개의 값이 알려지면, “숫자”는 [highValue - lowValue]이 되며, 그 후, 제3 값이 이로부터 계산될 수 있다. 데이터(D2) 내의 임의의 값들을 생략하고, 그 후 디코더(20)에서 이러한 값들을 유도하는 것은 데이터(D2)에서의 더 큰 데이터 압축을 제공할 수 있다. Based on these values, other necessary numerical values may be derived. Advantageously, these values are communicated in various forms, wherein the lost values are advantageously computed. For example, if two values from the set ["lowValue", "highValue", "number"] are known, the "number" becomes [highValue - lowValue], and then the third value is calculated . Eliminating any values in the data D2 and then deriving these values in the decoder 20 can provide greater data compression in the data D2.

이러한 값들에 이외에, 제1 값의 계산시에 이전의 값으로서 사용될 수 있는 숫자 P 즉 “예측”이 요구된다. “0”과 “숫자”값 사이의 값은 항상 숫자 P 즉, “예측”을 위하여 선택될 수 있다. 또한, 전술한 연산들은, 디코더(20)에서 데이터(D2/D3 또는 D4)를 디코딩할 때 회복가능하게 기능하기 위하여 즉, 연산들을 가능한한 작게 되도록 생성하는 값 범위를 감소시키기 위하여, “wrapValue”값이 제공될 필요가 있다. 그러나, 이러한 “wrapValue”은 “숫자”보다 더 크게 되어야 하며, 유익하게도, 이는 “숫자”값 +1을 가져야 한다. 옵션적으로, 데이터(D1)의 본성에 따라서, 제1 “예측”값은, 예컨대 데이터(D1)가 더 큰 값보다 더 작은 값을 포함하도록 가정되면, 전술한 바와 같이 “0”이 되도록 선택될 수 있다. 대안적으로, 제1 “예측”값은, 데이터(D1)가 더 작은 값들보다 보다 더 큰 값들을 포함하도록 가정되면, “숫자”와 동일하게 되도록 선택될 수 있다. 값들의 크기에 대하여 가정이 행해지지 않은 경우에, 그 후, “예측”값에 대하여 “(wrapValue + 1)/2 + lowValue”값을 이용하는 것이 바람직하다.In addition to these values, a number P or &quot; prediction &quot; is required that can be used as the previous value in the calculation of the first value. The value between the &quot; 0 &quot; and the &quot; number &quot; value can always be selected for the number P, i.e. &quot; prediction &quot;. In addition, the above-described operations may be performed using a &quot; wrapValue &quot; algorithm to recoverably function when decoding data (D2 / D3 or D4) at the decoder 20, Value needs to be provided. However, this &quot; wrapValue &quot; should be larger than a &quot; number &quot;, advantageously, it should have a &quot; number &quot; value of +1. Optionally, depending on the nature of the data D1, the first &quot; prediction &quot; value may be selected, for example, to be &quot; 0 &quot; as described above if the data D1 is assumed to contain a value smaller than the larger value. . Alternatively, the first &quot; prediction &quot; value may be chosen to be equal to &quot; number &quot; if the data D1 is assumed to contain larger values than smaller values. If no assumption is made about the magnitude of the values, then it is preferable to use the value &quot; (wrapValue + 1) / 2 + lowValue &quot;

이제, 본 개시의 실시형태들을 구현할 때 컴퓨팅 하드웨어에서 수행되는 동작들의 예를 설명한다. Now, an example of operations performed in the computing hardware when implementing the embodiments of the present disclosure will be described.

인코더(10)에 있어서, 제1 다이렉트 차 연산 즉, 방법 1은, 모든 데이터 값들에 대하여, 소프트웨어 루프에서 계산되는, 출력 값 즉, “결과”, 입력 값에 대응하는 것 즉, “오리지널”값에 대하여 유익하게 구현된다.In the encoder 10, a first direct difference operation, i.e., method 1, is performed for all the data values, corresponding to the output value, i.e., &quot; result &quot;, input value, / RTI &gt;

Figure 112015095377944-pct00029
Figure 112015095377944-pct00029

최종적으로, 다음 입력에 대한 예측 값은 현재 입력과 동일하게 되도록 설정된다.Finally, the predicted value for the next input is set equal to the current input.

Figure 112015095377944-pct00030
Figure 112015095377944-pct00030

디코더(20)에 있어서, 제1 역 차 연산 즉, 방법 1은, 모든 데이터 값들에 대하여, 소프트웨어 루프에서 계산되는, 출력 값 즉, “결과”, 입력 값에 대응하는 것 즉, “오리지널”값에 대하여 유익하게 구현된다.In the decoder 20, a first inverse difference operation, that is, method 1, is performed for all data values, corresponding to an output value, i.e., a result, an input value, i.e., an &quot; original & / RTI &gt;

Figure 112015095377944-pct00031
Figure 112015095377944-pct00031

최종적으로, 다음 입력에 대한 예측 값은 현재 결과와 동일하게 되도록 설정된다.Finally, the predicted value for the next input is set equal to the current result.

Figure 112015095377944-pct00032
Figure 112015095377944-pct00032

인코더(10)에 있어서, 제2 다이렉트 차 연산 즉, 방법 2는, 모든 데이터 값들에 대하여, 소프트웨어 루프에서 계산되는, 출력 값 즉, “결과”, 입력 값에 대응하는 것 즉, “오리지널”값에 대하여 유익하게 구현된다.In the encoder 10, a second direct difference operation, that is, method 2, is performed for all the data values by using an output value, i.e., a result, calculated in a software loop, corresponding to the input value, / RTI &gt;

Figure 112015095377944-pct00033
Figure 112015095377944-pct00033

최종적으로, 다음 입력에 대한 예측 값은 현재 결과와 동일하게 되도록 설정된다.Finally, the predicted value for the next input is set equal to the current result.

Figure 112015095377944-pct00034
Figure 112015095377944-pct00034

디코더(20)에 있어서, 제2 역 차 연산 즉, 방법 2는, 모든 데이터 값들에 대하여, 아래와 같이 소프트웨어 루프에서 계산되는, 출력 값 즉, “결과”, 입력 값에 대응하는 것 즉, “오리지널”값에 대하여 유익하게 구현된다.In the decoder 20, the second inverse difference operation, that is, method 2, is performed for all the data values, corresponding to the output value, that is, the "result", the input value, that is, Quot; value. &Lt; / RTI &gt;

Figure 112015095377944-pct00035
Figure 112015095377944-pct00035

최종적으로, 다음 입력에 대한 예측 값은 아래와 같이 현재 입력과 동일하게 되도록 설정된다.Finally, the predicted value for the next input is set to be equal to the current input as shown below.

Figure 112015095377944-pct00036
Figure 112015095377944-pct00036

인코더(10)에 있어서, 제1 다이렉트 합 연산 즉, 방법 3은, 모든 데이터 값들에 대하여, 아래와 같이 소프트웨어 루프에서 계산되는, 입력 값 즉, “결과”, 입력 값에 대응하는 것 즉, “오리지널”값에 대하여 유익하게 구현된다.In the encoder 10, a first direct sum operation, that is, method 3, is performed for all the data values, corresponding to input values, i.e., &quot; result &quot;, input values, Quot; value. &Lt; / RTI &gt;

Figure 112015095377944-pct00037
Figure 112015095377944-pct00037

최종적으로, 다음 입력에 대한 예측 값은 아래와 같이 현재 입력과 동일하게 되도록 설정된다.Finally, the predicted value for the next input is set to be equal to the current input as shown below.

Figure 112015095377944-pct00038
Figure 112015095377944-pct00038

디코더(20)에 있어서, 제1 역 합 연산 즉, 방법 3은, 모든 데이터 값들에 대하여, 아래와 같이 소프트웨어 루프에서 계산되는, 입력 값 즉, “결과”, 입력 값에 대응하는 것 즉, “오리지널”값에 대하여 유익하게 구현된다.In the decoder 20, a first inverse sum operation, that is, method 3, is performed for all the data values by using an input value, i.e., a result, which corresponds to the input value, i.e., &quot;Quot; value. &Lt; / RTI &gt;

Figure 112015095377944-pct00039
Figure 112015095377944-pct00039

최종적으로, 다음 입력에 대한 예측 값은 아래와 같이 현재 결과와 동일하게 되도록 설정된다.Finally, the predicted value for the next input is set to be equal to the current result as follows:

Figure 112015095377944-pct00040
Figure 112015095377944-pct00040

인코더(10)에 있어서, 제2 다이렉트 합 연산 즉, 방법 4는, 모든 데이터 값들에 대하여, 아래와 같이 소프트웨어 루프에서 계산되는, 입력 값 즉, “결과”, 입력 값에 대응하는 것 즉, “오리지널”값에 대하여 유익하게 구현된다.In the encoder 10, a second direct sum operation, that is, method 4, is performed for all the data values, corresponding to the input value, i.e., &quot; result &quot;, input value, Quot; value. &Lt; / RTI &gt;

Figure 112015095377944-pct00041
Figure 112015095377944-pct00041

최종적으로, 다음 입력에 대한 예측 값은 아래와 같이 현재 결과와 동일하게 되도록 설정된다. Finally, the predicted value for the next input is set to be equal to the current result as follows:

Figure 112015095377944-pct00042
Figure 112015095377944-pct00042

디코더(20)에 있어서, 제2 역 합 연산 즉, 방법 4는, 모드 데이터 값들에 대하여, 아래와 같이 소프트웨어 루프에서 계산되는, 입력 값 즉, “결과”, 입력 값에 대응하는 것 즉, “오리지널”값에 대하여 유익하게 구현된다.In the decoder 20, the second inverse sum operation, that is, method 4, is performed on input values, i.e., &quot; result &quot;, corresponding to the input values, i.e., &quot;Quot; value. &Lt; / RTI &gt;

Figure 112015095377944-pct00043
Figure 112015095377944-pct00043

최종적으로, 다음 입력에 대한 예측 값은 아래와 같이 현재 입력과 동일하게 되도록 설정된다. Finally, the predicted value for the next input is set to be equal to the current input as shown below.

Figure 112015095377944-pct00044
Figure 112015095377944-pct00044

이러한 합 및 차 연산, 모든 4개의 방법은, 즉, 인코더(10) 및 디코더(20)의 ODelta 버전을 구현할 때, 또한 1-비트 데이터에 즉 비트-바이-비트로 적용될 수 있다. 1-비트 데이터의 상황에서, 다음 값들은 양쪽 인코더(10) 및 디코더(20)에 의해 이미 알려져 있으며 즉, MIN = 0, MAX = 1이다. 또한, lowValue = MIN = 0, 및 highValue = MAX = 1이 유익하게 가정된다. 또한, 이러한 경우에, “숫자”는 그러므로 [highValue - lowValue = 1 - 0 = 1]이고, wrapValue은 “숫자”+ 1 = 1 + 1 = 2가 되도록 유익하게 선택된다. 유익하게, 예측 값은, lowValue = MIN = 0으로부터 개시되는 포지티브 값만을 가질 수 있는, 고려중인 1-비트 데이터만이 존재하기 때문에, “0”값이 되도록 선택된다. 1-비트 데이터에 대하여, 방법 1 및 방법 3은 서로 유사한 코딩 결과를 산출한다. 이와 유사하게, 방법 2 및 방법 4는 서로 유사한 코딩 결과를 산출한다. 이러한 지식을 가지는 것은, 여러 가지 디폴트가 가정될 수 있기 때문에, 데이터(D2)에 보내질 필요가 있는 정보를 유익하게 단순화하며, 방법 1 또는 방법 2 중 어느 하나로 그리고 선택된 예측[입력 값(방법 1)) 또는 결과 값(방법 2)]에 의해, 즉 단지 차 연산의 실행 횟수에 대한 정보를 보낼 필요가 있으므로, 디코더(20)는 디코딩된 데이터(D5)를 생성하기 위하여 데이터(D2, D3 또는 D4)를 디코딩할 때, 정확한 역 차 연산을 필요한 횟수로 실행할 수 있다. This sum and difference operation, all four methods, i.e. when implementing the ODelta version of the encoder 10 and decoder 20, can also be applied to 1-bit data, i.e. bit-by-bit. In the context of 1-bit data, the following values are already known by both encoder 10 and decoder 20, i.e. MIN = 0, MAX = 1. Also, lowValue = MIN = 0, and highValue = MAX = 1 are beneficially assumed. Also in this case the &quot; number &quot; is therefore advantageously selected to be [highValue - lowValue = 1 - 0 = 1] and the wrapValue to be a &quot; number &quot; + 1 = 1 + 1 = Advantageously, the prediction value is chosen to be a &quot; 0 &quot; value, since there is only one bit of data under consideration, which may only have a positive value starting from lowValue = MIN = 0. For 1-bit data, Method 1 and Method 3 yield similar coding results to each other. Similarly, Method 2 and Method 4 yield similar coding results to each other. Having this knowledge advantageously simplifies the information that needs to be sent to the data D2, since various defaults can be assumed, and can be used for either method 1 or method 2 and for the selected prediction [input value (method 1) (D2, D3, or D4) to generate the decoded data D5 because the decoder 20 needs to send information on the number of times of the difference operation, ), It is possible to execute the correct inverse difference operation as many times as necessary.

유사한 출력을 생성하는 방법 1 또는 방법 3을 이용함으로써 생성된 제1 예는, 또한 유사한 출력을 생성하는 방법 2 또는 방법 4 중 어느 하나를 이용함으로써 프로세싱될 수 있다. 이하에 도시된 결과는, 데이터 Eq. 1에 적용될 때 이러한 방법들에 의해 달성될 수 있다. The first example generated by using Method 1 or Method 3 to generate a similar output can also be processed by using either Method 2 or Method 4 to generate a similar output. The results shown below show that the data Eq. Lt; RTI ID = 0.0 &gt; 1, &lt; / RTI &gt;

Figure 112015095377944-pct00045
Figure 112015095377944-pct00045

이 때, 프로세싱된 데이터는 24개의 “1”그리고 13 개의 “0”가지는데, 즉 엔트로피는 제1 예에서와 동일하지만, “1” 및 “0”의 카운트는 경우에 따라서 변한다. 이는 또한 이러한 상이한 방법들 사이에서의 종종 발생하는 엔트로피 변화와는 달리, 항상 발생하지 않는다. 예컨대, 데이터의 4개의 제1 요소 이후에, 방법 1 및/또는 방법 3은 3개의 “1”과 하나의 “0”을 생성하는 반면에, 오리지널 데이터 및 방법 2 및/또는 방법 4에 의해 프로세싱되는 데이터는 2개의 “1”과 2개의 “0”을 가진다. 따라서, 방법 1 및/또는 방법 3은 이러한 경우에 방법 2 및/또는 방법 4보다 더 작고, 또한 오리지널보다 더 작은 엔트로피를 생성할 수 있다. At this time, the processed data has 24 &quot; 1 &quot; and 13 &quot; 0 &quot;, i.e. entropy is the same as in the first example, but the count of &quot; 1 &quot; This also does not always occur, unlike the often-occurring entropy changes between these different methods. For example, after four first elements of data, Method 1 and / or Method 3 generates three "1" s and one "0", while processing by original data and Method 2 and / Data has two &quot; 1 &quot; s and two &quot; 0 &quot; s. Thus, method 1 and / or method 3 may be smaller than method 2 and / or method 4 in this case, and may also produce smaller entropy than the original.

멀티-비트 구현에 있어서, 데이터(D1)가 -64 내지 +63의 범위의 값을 포함하면, MIN = -64이고 MAX = 63이다. lowValue = MIN이고 highValue = MAX라고 가정함으로써, “숫자” = 127이고 wrapValue은 128이 되도록 유익하게 선택된다. 그러나, 데이터(D1)가 랜덤으로 변할 때, “예측”값은 값[(wrapValue + 1)/2 + lowValue = 64 + -64 = 0]으로 유익하게 설정된다. In a multi-bit implementation, if the data D1 includes a value in the range of -64 to +63, MIN = -64 and MAX = 63. By assuming that lowValue = MIN and highValue = MAX, "number" = 127 and wrapValue is advantageously chosen to be 128. However, when the data D1 changes randomly, the &quot; prediction &quot; value is advantageously set to the value [(wrapValue + 1) / 2 + lowValue = 64 + -64 = 0].

제1 값이 예컨대 -1이면, 다이렉트 ODelta 방법 및/또는 방법 2으로 코딩된 제1 값은, -1 - 0 = -1이 되고, 이에 따라서, 다이렉트 ODelta 방법 3 및/또는 방법 4로 코딩된 값은, -1 + 0 = -1이 된다는 점에 주목해야 한다. 다음 값은 그 후 어떻게 데이터가 진행되는지에 따라서 변할 수 있는데, 예컨대 제2 값이 5이면, 다이렉트 ODelta 방법 1은 5 - -1 = 6을 생성하고, 다이렉트 ODelta 방법 2는 5 - -1 = 6을 생성하고, 다이렉트 ODelta 방법 3은 5 + -1 = 4을 생성하고, 다이렉트 ODelta 방법 4는 5 + -1 = 4를 생성한다. 디코더(20)는, 이 경우에 있어서, 역 ODelta 방법 1 및/또는 방법 2를 이용할 때 제1 값으로서 -1 + 0 = -1을 생성할 수 있고, 역 ODelta 방법 3 및/또는 방법 4를 이용할 때 제1 값으로서 -1 - 0 = -1을 생성할 수 있다. 이에 따라서, 역 ODelta 방법 1을 이용한 제2 값은 6 + -1 = 5이 되고, 역 ODelta 방법 2에 의해, 제2 값은 6 + -1 = 5이 되고, 역 ODelta 방법 3에 의해, 제2 값은 4 - -1 = 5이 되고, 역 ODelta 방법 4에 의해, 제2 값은 4 - -1 = 5이 된다.If the first value is, for example, -1, then the first value coded by the direct ODelta method and / or method 2 becomes -1 - 0 = -1 and accordingly, the direct ODelta method 3 and / It should be noted that the value is -1 + 0 = -1. For example, if the second value is 5, the direct ODelta method 1 produces 5 - 1 = 6 and the direct ODelta method 2 produces 5 - 1 = 6 Direct ODelta method 3 produces 5 + -1 = 4, and direct ODelta method 4 produces 5 + -1 = 4. Decoder 20 may in this case generate -1 + 0 = -1 as the first value when using the inverse ODelta method 1 and / or method 2 and use the inverse ODelta method 3 and / When used, -1 - 0 = -1 can be generated as the first value. Accordingly, the second value using the inverse ODelta method 1 becomes 6 + -1 = 5, and the second value becomes 6 + -1 = 5 by the inverse ODelta method 2. By the inverse ODelta method 3, 2 is 4 - -1 = 5, and the second value is 4 - -1 = 5 by the inverse ODelta method 4.

그 후, 이 솔루션은 숫자 범위가 실제로 -20 내지 +27 사이의 값만을 포함하면 최적화될 수 있다. 이러한 예시적인 경우에서, 예컨대 lowValue = -20 및 highValue = 27을 송신하는 것이 실현될 수 있다. 양쪽이 송신되면, 숫자 = 47이 되도록 계산하는 것이 실현될 수 있고, 그 후, wrapValue은 48이 되도록 유익하게 선택된다. 이제, 예측을 위하여 값[48/2 + -20 = 4]을 계산하는 것이 실현될 수 있다. 그 후, 이전의 예는 예컨대 ODelta 방법 1 또는 방법 2가 사용될 때 값 -1에 대하여 [-1 - 4 = -5]을 산출하며, ODelta 방법 또는 방법 4가 사용될 때 [-1 + 4 = 3]을 산출한다. 이와 유사하게, 제2 값은 ODelta 방법에 대하여 (5 - -1) = 6, (5 - -5) = 10, (5 + -1) = 4, 및 (5 + 3) = 8로서 이루어진다. 디코딩(20)은 다시 정확하게 기능하며, 방법 1 및/또는 방법 2에 대하여 -5 + 4 = -1로서 제1 값을 산출하고, 방법 3 및/또는 방법 4에 대하여 3 - 4 = -1로서 제1 값을 산출한다. 이에 따라서, 상이한 방법에 대한 제2 값은 (6 + -1) = 5, (10 + -5) = 5, (4 - -1) = 5, 및 (8 - 3) = 5로서 디코딩된다. The solution can then be optimized if the numerical range actually contains only values between -20 and +27. In this exemplary case, it can be realized to transmit, for example, lowValue = -20 and highValue = 27. If both are sent, it can be realized that the number = 47, and then the wrapValue is advantageously chosen to be 48. Now, it can be realized to calculate the value [48/2 + -20 = 4] for prediction. The previous example then computes [-1 - 4 = -5] for the value -1 when, for example, ODelta method 1 or method 2 is used and [-1 + 4 = 3 ]. Similarly, the second value is (5 - 1) = 6, (5 - 5) = 10, (5 + -1) = 4, and (5 + 3) = 8 for the ODelta method. Decoding 20 again functions correctly and calculates a first value as -5 + 4 = -1 for Method 1 and / or Method 2, and calculates 3 + 4 = -1 for Method 3 and / And calculates a first value. Accordingly, the second value for the different method is decoded as (6 + -1) = 5, (10 + -5) = 5, (4 - 1) = 5, and (8 - 3) = 5.

상기 이러한 예들에서의 모든 값은 범위 즉, -64 내지 +63 또는 -20 내지 +27 내에 있고, 이에 따라서 이러한 예시적인 값 내에 보정항을 수행할 필요가 없지만, 만일 임의의 네가티브 또는 포지티브 변화가 충분히 크면, 범위 내에 결과 값을 유지하기 위하여 데이터 값에 대한 보정이 주어진 식 21 내지 24 (Eq. 21 내지 Eq. 24)에 의해 행해져야 한다. 여기서 보정항은 랩어라운드 값을 지칭한다는 점에 주목해야 한다.All values in these examples are in the range, i.e., -64 to +63 or -20 to +27, and accordingly it is not necessary to perform the correction term in this exemplary value, but if any negative or positive change is sufficient If larger, a correction to the data value should be made by the given equations 21 to 24 (Eq. 21 to Eq. 24) in order to keep the result within the range. It should be noted here that the correction term refers to the wrap around value.

lowValue이 알려질 때, 코딩된 값들은, 인코더(10)로부터 디코더(20)까지 엔트로피 인코딩된 데이터(D3)가 보내져야 하는 코딩 테이블을 간략화하기 위하여, 0으로부터 개시하여 “숫자”값으로 종료되도록 유익하게 배치된다. 이러한 연산은 포스트-오프셋으로 지칭되며, 이러한 포스트-오프셋은, 엔트로피 디코딩 이후에 데이터(D4)에 대한 역 ODelta 연산 이전에 코딩된 데이터 값으로부터 삭제되어야 한다. When lowValue is known, the coded values are useful to start with zero and end with a &quot; number &quot; value to simplify the coding table from which the entropy encoded data D3 from the encoder 10 to the decoder 20 should be sent Respectively. Such an operation is referred to as post-offset, and this post-offset must be removed from the coded data value before the inverse ODelta operation on data D4 after entropy decoding.

전술한 바와 같이, 프리-오프셋 기능을 가진 오프셋을 구현하는 것이 또한 가능하며, 여기서 오리지널 입력 데이터(D1)는 이미 ODelta 방법의 실제 실행 이전에, 0부터 “숫자”까지의 값을 포함할 수 있는 포지티브 요소로 변환된다. 또한 이러한 상황에 있어서, 이러한 동작이 요구되는 정보 전송은, “프리-오프셋” 및 ODelta 방법이 동일한 정보를 반복적으로 송신하지 않거나 또는 일부 다른 방법 때문에 이미 알려진 것을 무시하는 이러한 방식으로 수행하는 것이 유익하다. 이러한 프리-오프셋 결과는, 적절한 D5 출력 데이터를 생성하기 위하여 역 ODelta 연산 이후에 디코딩된 데이터로부터 삭제되어야 한다.It is also possible to implement an offset with a pre-offset function, as described above, wherein the original input data D1 may already contain a value from 0 to &quot; number &quot; prior to actual execution of the ODelta method Is converted to a positive element. Also in this situation it is beneficial to carry out the information transmission in which this operation is required, in such a way that &quot; pre-offset &quot; and ODelta methods do not repeatedly transmit the same information or ignore what is already known due to some other method . This pre-offset result should be removed from the decoded data after the inverse ODelta operation to produce the appropriate D5 output data.

전술한 본 발명의 실시형태들은 첨부된 특허 청구범위에서 규정하는 본 발명의 범위로부터 벗어나지 않고 수정될 수 있다. 본 발명을 설명하고 청구하기 위해 사용되는 "포함하는", "구비하는", "통합하는", "이루어진", "가진", "...인" 등의 표현은 비 배타적 방식, 즉, 명시적으로 설명하지 않은 항목, 구성요소 또는 요소들도 또한 존재할 수 있는 것으로 해석되어야 한다. 단수형으로의 인용은 복수형과 관련이 있는 것으로 또한 해석되어야 한다. 첨부된 특허 청구범위에서 괄호 안에 포함된 번호들은 특허 청구범위의 이해를 돕기 위한 것으로 의도되고, 어떻게든 특허 청구범위에 의해 청구되는 주제를 제한하는 것으로 해석되지 않아야 한다.The above-described embodiments of the present invention can be modified without departing from the scope of the present invention as defined in the appended claims. The expressions "comprising," " including, "" integrating," "comprising," "having," It is to be understood that any item, component or element not expressly recited may also be present. Citation in singular form should also be construed as related to plural. The numbers included in parentheses in the appended claims are intended to be in the interest of understanding the scope of the claims and should not be construed as limiting the subject matter claimed in any way.

Claims (47)

대응하는 인코딩된 출력 데이터(D2 또는 D3)를 생성하기 위하여 수치 값들의 시퀀스를 포함하는 입력 데이터(D1)를 인코딩하기 위한 인코더(10)에 있어서,
상기 입력 데이터(D1)에, 하나 이상의 대응하는 인코딩된 시퀀스를 생성하기 위하여 차, 합 또는 양자의 인코딩의 형태를 적용하기 위한 데이터 프로세싱 장치를 포함하며,
상기 하나 이상의 대응하는 인코딩된 시퀀스는, 상기 인코딩된 출력 데이터(D2 또는 D3)를 생성하기 위하여, 최대 값이 랩어라운드(wrap around) 처리되거나, 최소 값이 랩어라운드 처리되거나 또는 양자 모두가 랩어라운드 처리되는 것을 특징으로 하는 인코더(10).
An encoder (10) for encoding input data (D1) comprising a sequence of numerical values to produce corresponding encoded output data (D2 or D3)
A data processing device for applying to the input data (D1) a form of encoding of a difference, sum or both to produce one or more corresponding encoded sequences,
The one or more corresponding encoded sequences may be wrapped around with a maximum value wraparound processed or both wraparound processed to produce the encoded output data D2 or D3, (10). &Lt; / RTI &gt;
제1항에 있어서, 상기 데이터 프로세싱 장치는, 상기 인코딩된 출력 데이터(D2 또는 D3)를 생성하는데 사용하기 위한 상기 하나 이상의 대응하는 인코딩된 시퀀스에 적용하기 위한 하나 이상의 오프셋 값, 최소 또는 최대 값을 계산하기 위하여 상기 입력 데이터(D1), 상기 하나 이상의 대응하는 인코딩된 시퀀스 또는 양자 모두를 분석하도록 동작될 수 있는 것을 특징으로 하는 인코더(10).2. The apparatus of claim 1, wherein the data processing apparatus further comprises: one or more offset values for applying to the one or more corresponding encoded sequences for use in generating the encoded output data (D2 or D3) And to analyze the input data (D1), the one or more corresponding encoded sequences, or both, for computation. 제2항에 있어서, 상기 하나 이상의 오프셋 값은 “0”값을 가지는 것을 특징으로 하는 인코더(10).3. The encoder (10) of claim 2, wherein the at least one offset value has a value of &quot; 0 &quot;. 제1항에 있어서, 상기 인코더(10)는 하나 이상의 1-비트 값을 포함하는 수치 값을 프로세싱하도록 동작될 수 있고, 상기 인코더(10)는 비트-바이-비트 방식으로 상기 입력 데이터(D1)를 인코딩하도록 동작될 수 있는 것을 특징으로 하는 인코더(10).The encoder (10) of claim 1, wherein the encoder (10) is operable to process a numerical value comprising one or more 1-bit values, the encoder (10) Gt; (10) &lt; / RTI &gt; 제1항에 있어서, 상기 하나 이상의 대응하는 인코딩된 시퀀스는, 상기 입력 데이터(D1)의 순차적인 값들에서의 변화를 나타내는 것을 특징으로 하는 인코더(10).2. The encoder (10) according to claim 1, wherein the one or more corresponding encoded sequences represent a change in sequential values of the input data (D1). 제1항에 있어서, 상기 인코더(10)는 상기 입력 데이터(D1)를 개별적으로 인코딩되는 복수의 데이터 섹션으로 세분하도록 동작될 수 있는 것을 특징으로 하는 인코더(10).2. The encoder (10) according to claim 1, wherein the encoder (10) is operable to subdivide the input data (D1) into a plurality of data sections that are individually encoded. 제6항에 있어서, 상기 인코더(10)는, 데이터 압축이 상기 인코딩된 출력 데이터(D2 또는 D3)에서 달성될 수 있을 때에만 인코딩을 상기 데이터 섹션에 선택적으로 적용하도록 동작될 수 있는 것을 특징으로 하는 인코더(10).7. A method according to claim 6, characterized in that the encoder (10) is operable to selectively apply an encoding to the data section only when data compression can be achieved in the encoded output data (D2 or D3) Lt; / RTI &gt; 제1항에 있어서, 상기 인코더(10)는, 상기 인코딩된 출력 데이터(D2 또는 D3)를 생성하기 위하여 사용되는 일련의 예측 값에 대하여 제1 디폴트 예측 값을 사용하도록 동작될 수 있는 것을 특징으로 하는 인코더(10). 2. The apparatus of claim 1, wherein the encoder (10) is operable to use a first default prediction value for a series of prediction values used to generate the encoded output data (D2 or D3) Lt; / RTI &gt; 제8항에 있어서, 상기 제1 디폴트 예측 값은, "0", 최소값(=lowValue), 최대값(=highValue), (최대값(highValue) + 최소값(lowValue) + 1) / 2 중 적어도 하나인 것을 특징으로 하는 인코더(10).The method of claim 8, wherein the first default prediction value is at least one of "0", a minimum value (= lowValue), a maximum value (= highValue), (maximum value (highValue) + minimum value &Lt; / RTI &gt; 제6항에 있어서, 상기 인코더(10)는, 런-렝쓰 코딩(RLE), 호프만 코딩, 가변 길이 인코딩(VLE), 레인지 코딩 또는 산술 코딩을 이용하는 인코딩에 대하여 효율적인 상호 유사한 비트들의 런-렝쓰에 따라서 상기 입력 데이터(D1)를 복수의 섹션으로 세분하도록 동작될 수 있는 것을 특징으로 하는 인코더(10).7. The apparatus of claim 6, wherein the encoder (10) is adapted to perform run-length of efficient mutually similar bits for encoding using run-length coding (RLE), Huffman coding, variable length encoding (VLE), range coding or arithmetic coding. And is thus operable to subdivide the input data (D1) into a plurality of sections. 제1항 내지 제10항 중 어느 한 항에 있어서, 상기 프로세싱 장치는, 머신 판독 가능한 데이터 저장 매체 상에 기록되는 하나 이상의 컴퓨터 프로그램을 실행하도록 동작될 수 있는 컴퓨팅 하드웨어를 이용하여 구현되는 것을 특징으로 하는 인코더(10).11. The apparatus of any one of claims 1 to 10, wherein the processing device is implemented using computing hardware operable to execute one or more computer programs recorded on a machine-readable data storage medium Lt; / RTI &gt; 대응하는 인코딩된 출력 데이터(D2 또는 D3)를 생성하기 위하여 수치 값의 시퀀스를 포함하는 입력 데이터(D1)를 인코딩하기 위한 인코더(10)를 이용하는 방법에 있어서,
(a) 하나 이상의 대응하는 인코딩된 시퀀스를 생성하기 위하여, 상기 입력 데이터(D1)에 차, 합 또는 양자의 인코딩의 형태를 적용하도록 데이터 프로세싱 장치를 이용하는 단계와,
(b) 상기 인코딩된 출력 데이터(D2 또는 D3)를 생성하기 위하여, 상기 하나 이상의 대응하는 인코딩된 시퀀스가 최대 값이 랩어라운드 처리되거나, 최소 값이 랩어라운드 처리되거나, 또는 양자 모두가 랩어라운드 처리되어지도록 하는 단계를 포함하는 것을 특징으로 하는 인코더(10)를 이용하는 방법.
A method of using an encoder (10) for encoding input data (D1) comprising a sequence of numerical values to generate corresponding encoded output data (D2 or D3)
(a) using a data processing apparatus to apply a difference, sum, or both type of encoding to the input data (D1) to generate one or more corresponding encoded sequences;
(b) in order to generate the encoded output data (D2 or D3), the one or more corresponding encoded sequences are wraparound processed to a maximum value, wrapped to a minimum value, or both wraparound processed (10). &Lt; RTI ID = 0.0 &gt; 11. &lt; / RTI &gt;
제12항에 있어서, 상기 방법은 상기 인코딩된 출력 데이터(D2 또는 D3)를 생성하는데 사용하기 위한 상기 하나 이상의 대응하는 인코딩된 시퀀스에 적용하기 위한 하나 이상의 오프셋 값, 최소 또는 최대 값을 계산하기 위하여 상기 입력 데이터(D1), 상기 하나 이상의 대응하는 인코딩된 시퀀스, 또는 양자 모두를 분석하도록 상기 데이터 프로세싱 장치를 이용하는 단계를 포함하는 것을 특징으로 하는 인코더(10)를 이용하는 방법.13. The method of claim 12, wherein the method further comprises: calculating one or more offset values for applying to the one or more corresponding encoded sequences for use in generating the encoded output data (D2 or D3) Using the data processing apparatus to analyze the input data (D1), the one or more corresponding encoded sequences, or both. 제13항에 있어서, 상기 방법은, 하나 이상의 1-비트 값을 포함하는 수치 값을 프로세싱하는 단계를 포함하며, 상기 인코더(10)는 비트-바이-비트 방식으로 상기 입력 데이터(D1)를 인코딩하도록 동작될 수 있는 것을 특징으로 하는 인코더(10)를 이용하는 방법.14. The method of claim 13, wherein the method comprises processing a numerical value comprising one or more 1-bit values, wherein the encoder (10) encodes the input data (D1) in a bit- Gt; (10) &lt; / RTI &gt; 제12항에 있어서, 상기 방법은 상기 입력 데이터(D1)를 개별적으로 인코딩되는 복수의 데이터 섹션으로 세분하도록 데이터 프로세싱 장치를 이용하는 단계를 포함하는 것을 특징으로 하는 인코더(10)를 이용하는 방법.13. The method of claim 12, wherein the method comprises using a data processing device to subdivide the input data (D1) into a plurality of data sections that are individually encoded. 제15항에 있어서, 상기 방법은 데이터 압축이 상기 인코딩된 출력 데이터(D2 또는 D3)에서 달성될 수 있을 때에만 인코딩의 형태를 상기 데이터 섹션에 선택적으로 적용하는 단계를 포함하는 것을 특징으로 하는 인코더(10)를 이용하는 방법.16. The encoder of claim 15, wherein the method comprises selectively applying a form of encoding to the data section only when data compression can be achieved in the encoded output data (D2 or D3) (10). 제12항에 있어서, 상기 방법은 상기 인코딩된 출력 데이터(D2 또는 D3)를 생성하기 위하여 사용되는 일련의 예측 값에 대하여 제1 디폴트 예측 값을 사용하는 단계를 포함하는 것을 특징으로 하는 인코더(10)를 이용하는 방법.13. The encoder (10) of claim 12, wherein the method comprises using a first default prediction value for a series of prediction values used to generate the encoded output data (D2 or D3) ). 제12항 내지 제17항 중 어느 한 항에 있어서, 상기 방법은 머신 판독 가능한 데이터 저장 매체 상에 기록되는 하나 이상의 컴퓨터 프로그램을 실행하도록 동작될 수 있는 컴퓨팅 하드웨어를 이용하여 상기 데이터 프로세싱 장치를 구현하는 단계를 포함하는 것을 특징으로 하는 인코더(10)를 이용하는 방법.18. The method of any one of claims 12 to 17, wherein the method further comprises implementing the data processing apparatus using computing hardware operable to execute one or more computer programs recorded on a machine-readable data storage medium &Lt; / RTI &gt; further comprising the step of: 대응하는 디코딩된 출력 데이터(D5)를 생성하도록 인코딩된 데이터(D2 또는 D3)를 디코딩하는 디코더(20)에 있어서,
상기 디코더(20)는,
상기 인코딩된 데이터(D2 또는 D3)의 하나 이상의 부분을 프로세싱하기 위한 데이터 프로세싱 장치를 포함하며,
상기 데이터 프로세싱 장치는, 상기 하나 이상의 부분의 하나 이상의 대응하는 인코딩된 시퀀스에 차, 합 또는 양자의 디코딩의 형태를 적용하도록 동작될 수 있고, 디코딩된 출력 데이터(D5)를 생성하기 위하여, 상기 하나 이상의 인코딩된 시퀀스는, 최대 값이 랩어라운드 처리되거나, 최소값이 랩어라운드 처리되거나 또는 양자 모두가 랩어라운드 처리되는 것을 특징으로 하는 디코더(20).
A decoder (20) for decoding encoded data (D2 or D3) to produce corresponding decoded output data (D5)
The decoder (20)
And a data processing device for processing one or more portions of the encoded data (D2 or D3)
The data processing apparatus may be operable to apply a difference, sum, or both type of decoding to one or more corresponding encoded sequences of the one or more portions, and to generate decoded output data (D5) The above encoded sequence is characterized in that the maximum value is wraparound processed, the minimum value is wraparound processed, or both are wraparound processed.
제19항에 있어서, 상기 디코더(20)는 하나 이상의 1-비트 값을 포함하는 인코딩된 데이터(D2 또는 D3)를 디코딩하도록 동작될 수 있고, 상기 디코더(20)는 비트-바이-비트 방식으로 상기 인코딩된 데이터(D2 또는 D3)를 디코딩하도록 동작될 수 있는 것을 특징으로 하는 디코더(20). 20. The apparatus of claim 19, wherein the decoder (20) is operable to decode encoded data (D2 or D3) comprising one or more 1-bit values and the decoder (20) And is operable to decode the encoded data (D2 or D3). 제19항에 있어서, 상기 데이터 프로세싱 장치는, 상기 디코딩된 출력 데이터(D5)를 생성하는데 사용하기 위한 상기 하나 이상의 인코딩된 시퀀스에 적용하기 위한 하나 이상의 오프셋 값, 최소 또는 최대 값을 수신하도록 동작될 수 있는 것을 특징으로 하는 디코더(20).20. The apparatus of claim 19, wherein the data processing apparatus is operative to receive one or more offset values, a minimum or maximum value, for applying to the one or more encoded sequences for use in generating the decoded output data (D5) Gt; (20) &lt; / RTI &gt; 제21항에 있어서, 상기 하나 이상의 오프셋 값은 “0”값을 가지는 것을 특징으로 하는 디코더(20).23. The decoder (20) of claim 21, wherein the one or more offset values have a value of &quot; 0 &quot;. 제19항에 있어서, 상기 하나 이상의 대응하는 인코딩된 시퀀스는, 상기 인코딩된 데이터(D2 또는 D3)로 인코딩된 순차적인 값에서의 변화를 나타내는 것을 특징으로 하는 디코더(20).20. The decoder (20) according to claim 19, wherein the one or more corresponding encoded sequences represent a change in a sequential value encoded with the encoded data (D2 or D3). 제19항에 있어서, 상기 데이터 프로세싱 장치는, 디코딩되는 일련의 데이터에서의 제1 예측 값의 디폴트 값을 추정하도록 동작될 수 있는 것을 특징으로 하는 디코더(20).20. The decoder (20) of claim 19, wherein the data processing device is operable to estimate a default value of a first predictor value in a series of data to be decoded. 제24항에 있어서, 상기 디폴트 값은 “0”을 가지는 것을 특징으로 하는 디코더(20).25. The decoder (20) of claim 24, wherein the default value has a &quot; 0 &quot;. 제19항 내지 제25항 중 어느 한 항에 있어서, 상기 데이터 프로세싱 장치는, 머신 판독 가능한 데이터 저장 매체 상에 기록되는 하나 이상의 컴퓨터 프로그램을 실행하도록 동작될 수 있는 컴퓨팅 하드웨어를 이용하여 구현되는 것을 특징으로 하는 디코더(20).26. A data processing apparatus according to any one of claims 19 to 25, characterized in that it is implemented using computing hardware operable to execute one or more computer programs recorded on a machine-readable data storage medium (20). 대응하는 디코딩된 출력 데이터(D5)를 생성하도록 인코딩된 데이터(D2 또는 D3)를 디코딩하는 디코더(20)를 이용하는 방법에 있어서,
상기 방법은,
상기 인코딩된 데이터(D2 또는 D3)의 하나 이상의 부분을 프로세싱하기 위한 데이터 프로세싱 장치를 이용하는 단계를 포함하며,
상기 데이터 프로세싱 장치는, 상기 하나 이상의 부분의 하나 이상의 대응하는 인코딩된 시퀀스에 차, 합 또는 양자의 디코딩의 형태를 적용하도록 동작될 수 있고, 디코딩된 출력 데이터(D5)를 생성하기 위하여, 상기 하나 이상의 인코딩된 시퀀스는, 최대 값이 랩어라운드 처리되거나 최소값이 랩어라운드 처리되거나 또는 양자 모두가 랩어라운드 처리되는 것을 특징으로 하는 디코더(20)를 이용하는 방법.
A method of using a decoder (20) for decoding encoded data (D2 or D3) to produce corresponding decoded output data (D5)
The method comprises:
Using a data processing device to process one or more portions of the encoded data (D2 or D3)
The data processing apparatus may be operable to apply a difference, sum, or both type of decoding to one or more corresponding encoded sequences of the one or more portions, and to generate decoded output data (D5) Wherein the encoded sequence is characterized in that the maximum value is wraparound processed, the minimum value is wraparound processed, or both are wraparound processed.
제27항에 있어서, 상기 방법은, 하나 이상의 1-비트 값을 포함하는 인코딩된 데이터(D2 또는 D3)를 디코딩하는 디코더(20)를 동작시키는 단계를 포함하며, 상기 디코더(20)는 상기 인코딩된 데이터(D2 또는 D3)를 비트-바이-비트 방식으로 디코딩하도록 동작될 수 있는 것을 특징으로 하는 디코더(20)를 이용하는 방법. 28. The method of claim 27, wherein the method comprises operating a decoder (20) for decoding encoded data (D2 or D3) comprising one or more 1-bit values, the decoder (20) (D2 or D3) in a bit-by-bit manner. &Lt; Desc / Clms Page number 12 &gt; 제27항에 있어서, 상기 방법은 상기 디코딩된 출력 데이터(D5)를 생성하는데 사용하기 위한 상기 하나 이상의 인코딩된 시퀀스에 적용하기 위한 하나 이상의 오프셋 값, 최소 및 최대 값을 계산하도록 상기 데이터 프로세싱 장치를 동작시키는 단계를 포함하는 것을 특징으로 하는 디코더(20)를 이용하는 방법. 28. The apparatus of claim 27, wherein the method further comprises: providing the data processing apparatus to calculate one or more offset values, a minimum and a maximum, for applying to the one or more encoded sequences for use in generating the decoded output data (D5) The method comprising the steps of: operating the decoder (20). 제27항에 있어서, 상기 방법은 디코딩되는 일련의 데이터에서의 제1 예측 값의 디폴트 값을 추정하도록 상기 데이터 프로세싱 장치를 동작시키는 단계를 포함하는 것을 특징으로 하는 디코더(20)를 이용하는 방법.28. The method of claim 27, wherein the method comprises operating the data processing apparatus to estimate a default value of a first predictor value in a series of data to be decoded. 제27항 내지 제30항 중 어느 한 항에 있어서,
상기 방법은 머신 판독 가능한 데이터 저장 매체 상에 기록되는 하나 이상의 컴퓨터 프로그램을 실행하도록 동작될 수 있는 컴퓨팅 하드웨어를 이용하여 상기 데이터 프로세싱 장치를 구현하는 단계를 포함하는 것을 특징으로 하는 디코더(20)를 이용하는 방법.
32. The method according to any one of claims 27 to 30,
The method includes implementing the data processing apparatus using computing hardware operable to execute one or more computer programs recorded on a machine-readable data storage medium Way.
코덱(30)에 있어서,
대응하는 인코딩된 데이터(D2)를 생성하기 위하여 입력 데이터(D1)를 인코딩하는 제1항에 기재된 적어도 하나의 인코더(10)와,
대응하는 디코딩된 데이터(D5)를 생성하기 위하여 인코딩된 데이터(D2 또는 D3)를 디코딩하는 제19항에 기재된 적어도 하나의 디코더(20)를 포함하는 코덱(30).
In the codec 30,
At least one encoder (10) according to claim 1 encoding the input data (D1) to generate corresponding encoded data (D2)
A codec (30) comprising at least one decoder (20) according to claim 19 for decoding encoded data (D2 or D3) to produce corresponding decoded data (D5).
컴퓨터 프로그램을 포함하는 컴퓨터 판독 가능한 기록 매체에 있어서,
상기 컴퓨터 프로그램은 제12항 내지 제17항 중 어느 한 항에 기재된 데이터 인코딩 방법을 실행하기 위한 컴퓨팅 하드웨어 상에서 실행될 수 있는 것을 특징으로 하는 컴퓨터 판독 가능한 기록 매체.
A computer-readable recording medium containing a computer program,
Wherein the computer program is executable on computing hardware to perform the data encoding method of any one of claims 12 to 17.
컴퓨터 프로그램을 포함하는 컴퓨터 판독 가능한 기록 매체에 있어서,
상기 컴퓨터 프로그램은 제27항 내지 제30항 중 어느 한 항에 기재된 데이터 디코딩 방법을 실행하기 위한 컴퓨팅 하드웨어 상에서 실행될 수 있는 것을 특징으로 하는 컴퓨터 판독 가능한 기록 매체.
A computer-readable recording medium containing a computer program,
Wherein the computer program is executable on computing hardware for carrying out the data decoding method of any one of claims 27 to 30.
삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete
KR1020157027208A 2013-03-01 2014-02-27 Encoder, decoder and method KR101610610B1 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB1303661.1A GB2511355B (en) 2013-03-01 2013-03-01 Encoder, decoder and method
GB1303661.1 2013-03-01
PCT/EP2014/000510 WO2014131517A1 (en) 2013-03-01 2014-02-27 Encoder, decoder and method

Publications (2)

Publication Number Publication Date
KR20150126890A KR20150126890A (en) 2015-11-13
KR101610610B1 true KR101610610B1 (en) 2016-04-07

Family

ID=48142238

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157027208A KR101610610B1 (en) 2013-03-01 2014-02-27 Encoder, decoder and method

Country Status (9)

Country Link
US (1) US8810439B1 (en)
EP (1) EP2962398A1 (en)
JP (1) JP6045123B2 (en)
KR (1) KR101610610B1 (en)
CN (1) CN105359418B (en)
BR (1) BR112015021204A2 (en)
GB (1) GB2511355B (en)
RU (1) RU2595916C1 (en)
WO (1) WO2014131517A1 (en)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10270590B2 (en) * 2013-12-16 2019-04-23 Mcafee, Llc Process efficient preprocessing for any encryption standard
GB2523347B (en) 2014-02-20 2016-01-13 Gurulogic Microsystems Oy Encoder, decoder and method
GB2527588B (en) 2014-06-27 2016-05-18 Gurulogic Microsystems Oy Encoder and decoder
GB2527607B (en) 2014-06-27 2016-10-05 Gurulogic Microsystems Oy Encoder, decoder and method
GB2528460B (en) * 2014-07-21 2018-05-30 Gurulogic Microsystems Oy Encoder, decoder and method
GB2539488B8 (en) 2015-06-18 2020-08-19 Gurulogic Microsystems Oy Encoder, decoder and method employing palette utilization and compression
CN109309501B (en) * 2018-09-12 2022-04-29 成都宝通天宇电子科技有限公司 High-precision multi-ring data compression method
US11410043B2 (en) 2019-05-16 2022-08-09 International Business Machines Corporation Hamming distance based robust output encoding for improved generalization
JPWO2022181096A1 (en) 2021-02-26 2022-09-01

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5864650A (en) 1992-09-16 1999-01-26 Fujitsu Limited Speech encoding method and apparatus using tree-structure delta code book

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4791483A (en) * 1987-11-20 1988-12-13 The Grass Valley Group, Inc. Adaptive differential pulse code modulation video encoder
SU1499501A1 (en) * 1987-12-03 1989-08-07 Предприятие П/Я А-7956 Delta code
SU1762411A1 (en) * 1990-10-29 1992-09-15 Самарский электротехнический институт связи Converter of adaptive delta-modulated signals with byte companding to nonlinear pulse-code modulated signals
JP3309639B2 (en) * 1995-04-27 2002-07-29 ソニー株式会社 Quantization device and quantization method
AUPR890201A0 (en) 2001-11-16 2001-12-06 Silverbrook Research Pty. Ltd. Methods and systems (npw005)
EP1320266A3 (en) * 2001-11-27 2005-09-14 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding data
ATE369687T1 (en) 2002-06-06 2007-08-15 Alcatel Lucent METHOD AND DEVICE FOR PACKET HEAD COMPRESSION
US6642874B1 (en) * 2002-10-11 2003-11-04 Realtek Semiconductor Corp. Sigma-delta data conversion employing quantization error feedback
JP4893957B2 (en) * 2006-08-07 2012-03-07 富士ゼロックス株式会社 Encoding device, decoding device, encoding method and program
CN101202548A (en) * 2007-12-28 2008-06-18 北京邮电大学 Double runs data coding method
CN101299611B (en) * 2008-06-30 2011-10-05 中国电子科技集团公司第二十八研究所 Data compression method based on set run
EP2214315A1 (en) * 2009-01-30 2010-08-04 Thomson Licensing Method and device for encoding a bit sequence

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5864650A (en) 1992-09-16 1999-01-26 Fujitsu Limited Speech encoding method and apparatus using tree-structure delta code book

Also Published As

Publication number Publication date
EP2962398A1 (en) 2016-01-06
RU2595916C1 (en) 2016-08-27
WO2014131517A1 (en) 2014-09-04
BR112015021204A2 (en) 2017-07-18
US20140247168A1 (en) 2014-09-04
GB2511355A (en) 2014-09-03
CN105359418B (en) 2018-11-09
GB2511355B (en) 2015-06-03
US8810439B1 (en) 2014-08-19
KR20150126890A (en) 2015-11-13
CN105359418A (en) 2016-02-24
GB201303661D0 (en) 2013-04-17
JP2016513436A (en) 2016-05-12
JP6045123B2 (en) 2016-12-14

Similar Documents

Publication Publication Date Title
KR101610610B1 (en) Encoder, decoder and method
KR101737294B1 (en) Methods and devices for source-coding and decoding of data involving symbol compression
RU2417518C2 (en) Efficient coding and decoding conversion units
JP2017507590A5 (en)
KR102238058B1 (en) Encoder, decoder and method
US10003356B2 (en) Devices and methods of source-encoding and decoding of data
JP4175366B2 (en) Encoding apparatus and method
RU2611249C1 (en) Entropy modifier and method to use it
RU2709656C2 (en) Encoder, decoder and method using modal symbols
EP3991303A1 (en) Features of range asymmetric number system encoding and decoding
JP2006246500A (en) Encoding apparatus and method

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant