KR20160033714A - 보간을 이용한 연산 방법, 인코더, 및 디코더 - Google Patents
보간을 이용한 연산 방법, 인코더, 및 디코더 Download PDFInfo
- Publication number
- KR20160033714A KR20160033714A KR1020167003289A KR20167003289A KR20160033714A KR 20160033714 A KR20160033714 A KR 20160033714A KR 1020167003289 A KR1020167003289 A KR 1020167003289A KR 20167003289 A KR20167003289 A KR 20167003289A KR 20160033714 A KR20160033714 A KR 20160033714A
- Authority
- KR
- South Korea
- Prior art keywords
- data
- encoded
- encoding
- interpolation
- value
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 266
- 238000013144 data compression Methods 0.000 claims description 11
- 238000012795 verification Methods 0.000 claims description 9
- 238000013500 data storage Methods 0.000 claims description 7
- 230000008569 process Effects 0.000 claims description 6
- 238000013213 extrapolation Methods 0.000 claims description 5
- 239000003607 modifier Substances 0.000 claims description 5
- 238000007906 compression Methods 0.000 description 7
- 230000006835 compression Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000005070 sampling Methods 0.000 description 3
- 150000001875 compounds Chemical class 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000015654 memory Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000000737 periodic effect Effects 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 238000000844 transformation Methods 0.000 description 2
- 244000025254 Cannabis sativa Species 0.000 description 1
- 230000002730 additional effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000002716 delivery method Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 229920001606 poly(lactic acid-co-glycolic acid) Polymers 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000000153 supplemental effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/132—Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/60—General implementation details not specific to a particular type of compression
- H03M7/6064—Selection of Compressor
- H03M7/6082—Selection strategies
- H03M7/6088—Selection strategies according to the data type
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/46—Conversion to or from run-length codes, i.e. by representing the number of consecutive digits, or groups of digits, of the same kind by a code word and a digit indicative of that kind
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/117—Filters, e.g. for pre-processing or post-processing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/124—Quantisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/46—Embedding additional information in the video signal during the compression process
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/46—Embedding additional information in the video signal during the compression process
- H04N19/463—Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/80—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
Abstract
인코더(20)에서 데이터(D1)를 인코딩하여 대응하는 인코딩 데이터(E2)를 생성하는 방법이 제공되며, 이 방법은, (a) 인코딩될 데이터(D1)를 수신하고, 상기 인코딩될 데이터(D1)의 하위부를 분석하여 이 하위부를 인코딩하는데 적용되는 하나 이상의 인코딩 알고리즘을 결정하는 단계로서, 상기 하나 이상의 인코딩 알고리즘은 적어도 하나의 보간 알고리즘을 포함하는 것인, 상기 단계와, (b) 상기 적어도 하나의 보간 알고리즘에 의해 인코딩될 상기 데이터(D1)의 하위부의 데이터 값을 나타내는, 상기 적어도 하나의 보간 알고리즘에 대한 하나 이상의 보간 파라미터를 산출하는 단계와, (c) 하나 이상의 인코딩 알고리즘을 이용하여, 인코딩될 상기 데이터(D1)의 하위부의 나머지를 인코딩하는 단계와, (d) (b)와 (c)에서 생성된 데이터를 조합하여 인코딩 데이터(E2)를 생성하는 단계를 포함한다. 또한, 디코더(30)에서 인코딩 데이터(E2)를 디코딩하여 대응하는 디코딩 데이터(D3)를 생성하는 대응하는 디코딩 방법은, (i) 인코딩 데이터(E2)를 분석하여 상기 인코딩 데이터(E2)에 포함된 하나 이상의 인코딩 파라미터와, 이들 파라미터와 관련되는 하나 이상의 코딩 알고리즘을 결정하는 단계로서, 상기 코딩 알고리즘 중 적어도 하나는 적어도 하나의 보간 알고리즘을 포함하는 것인, 상기 단계와, (ii) 상기 인코딩 데이터(E2)에 존재하는 상기 하나 이상의 파라미터 및 이들의 연관된 데이터에 역알고리즘(inverse algorithm)을 적용하여 상기 인코딩 데이터(E2)의 하위부의 데이터 값을 산출하는 단계와, (iii) 상기 하위부의 산출 데이터 값을 조합하여 디코딩 데이터(D3)를 생성하는 단계를 포함한다. 이들 방법은 인코더에, 디코더에, 그리고 코덱에 채택될 수 있다. 또한, 이들 방법은 컴퓨팅 하드웨어 상에서, 하나 이상의 소프트웨어 제품을 실행하여 유리하게 구현되며, 이 소프트웨어 제품은 이들 방법을 구현하도록 구성된다.
Description
본 개시내용은 데이터(D1)를 인코딩하여 대응하는 인코딩 데이터(encoded data)(E2)를 생성하는 방법에 관한 것으로서, 이 방법은 강화된 데이터 압축 및/또는 개선된 인코딩 정확도를 달성하기 위해 데이터 값을 보간하는 것을 수반한다. 또한, 본 개시내용은 인코딩 데이터(E2)를 디코딩하여 대응하는 디코딩 데이터(decoded data)(D3)를 생성하는 방법에도 관련되며, 이 디코딩 방법은 인코딩 데이터(E2)로 인코딩된 보간 파라미터로부터 디코딩 데이터(D3)를 생성하는 것을 수반한다. 더욱이, 본 개시내용은 전술한 방법들을 이용하도록 동작 가능한 인코더, 디코더, 및 코덱에 관한 것이다. 부가적으로, 본 개시내용은 비일시적 머신 판독 가능한 데이터 저장 매체 상에 기록된 소프트웨어 제품에 관련되며, 이 소프트웨어 제품은 전술한 방법을 구현하도록 컴퓨팅 하드웨어 상에서 실행 가능하다.
동시대의 데이터 통신 네트워크를 통해, 예컨대 인터넷 및 무선 전화망을 통해 통신되는 데이터량은 시간의 함수에 따라, 예컨내 3D 비디오와 HD 비디오가 더욱 보편화됨에 따라 점진적으로 증가하고 있다. 알려진 이미지 및 비디오 코딩 방법, 예컨대 표 1에 제시되는 JPEG, JPEG2000, WebP, H.264, WebM 및 VC-1은 자연 이미지 성분(natural image content)을 압축하기에는 효율적이지만, 다른 유형의 데이터 성분을 압축하기에는, 예컨대 데스크탑 이미지, 애니메이션, 그래픽, 또는 데이터 값에 지역적 또는 전체적 변형을 포함하는 자연 성분을 압축하기에는 그다지 적합하지 않다.
[표 1] 참조로 본 명세서에 포함되는 알려진 데이터 코딩 방법
GIF 및 PNG 인코딩 방법[추가 상세내용에 대해서는 앞의 표 1을 참조]은 소정 유형의 데이터에 대해서는 효율적인 인코딩을 제공하는 것도 가능하지만, 인코딩될 주어진 이미지가 다수의 상이한 유형의 성분 또는 대량의 상호 유사한 성분을 포함하고 있다면, 덜 적절하며, 또한 이들 인코딩 방법은 디코더에서의 후속 디코딩시에 데이터 복원에 있어서 상당히 비효율적이거나 에러를 많이 일으킨다. 특히, 주어진 이미지가 몇몇 자연적 객체(natural object)를 포함하면, GIF(Graphics Interchange Format) 방법은 상당한 에러 아티팩트를 생성하고, PNG(Portable Networks Graphics) 방법은 "노이즈", 예컨대 주어진 이미지의 공간적으로 랜덤한 텍스쳐 부분을 인코딩하는 데에 대량의 비트를 이용한다. DCT(Discrete Cosine Transform) 및 웨이브렛(wavelet) 등의 개체 변환에 기초한 방법도 구조화된 성분에는 특히 적합하지 않다.
RLE(Run Length Encoding)은 인접한 다수의 유사한 데이터 값을 효율적으로 코딩하는 것은 가능하지만, 이 RLE 방법은 연관된 한계 및/또는 문제, 예컨대 주기적인 데이터 값에 대한 최적화에 연관된 과제를 갖고 있다. 오직 RLE와 DE(Delta encoding)를 조합함으로써, 간단한 선형 1D 데이터 블록에 대해 채택하기에는 RLE가 효율적이지만, 복잡한 ID 블록에는 그렇지 않으며, 복잡한 2D 또는 복잡한 3D 데이터 블록에서는 전혀 만족스럽게 작동하지 않는다.
다수의 알려진 동시대적 방법들은 전체 이미지 또는 이미지 채널을 인코딩 전에 축소(scaling down)시킨 다음, 복원된 이미지 또는 이미지 채널을 다시 원래의 분해능으로, 예컨대 이미지/비디오 인코딩에 사용된 동시대적 YUV420/YUV422 포맷에 준하여 보간하는 것을 수반한다. 이들 알려진 동시대적 방법은, 주어진 양의 데이터를 블록 기반 방식(block-wise manner)으로 처리하지 못하기 때문에, 다수의 동시대적 상황에는 여전히 적합하지 않다. 또한, 알려진 방법들은 모든 경우에 유사한 방식으로 보간을 이용하여, 모든 이미지 디테일에 심각하게 부정적인 영향을 미치고 순조로운 부분(smooth area)에 대해 비효율적인 압축을 행한다. 또한, 이들 방법은 축소된 데이터 값에 추가 압축을 행하기 위한 다른 코딩 방법을 필요로 한다.
한 공개문헌 "Scanned Compound Document Encoding Using Multiscale Recurrent Patterns," by Francisco, N.C.; Rodrigues, N. M. M.; da Silva, E.A.B.; de Carvalho, M.B.; De Faria, S. M. M.; da Silva, E.A.B.; Image Processing, IEEE Transactions on, vol. 19, no. 10, pp.2712, 2724, Oct. 2010 (2013년 4월 26일 액세스), URL:
http://ieeexplore.ieee.org/xpl/login.jsp?reload=true&tp=&arnumber=5454328&url=http%3A%2F%2Fieeexplore.ieee.org%2Fiel5%2F83%2F5577553%2F05454328.pdf%3Farnumber%3D5454328
에는, 데이터 인코딩 방법이 기재되어 있는데, 이 방법은 추후 사용을 위해 멀티스케일 딕셔너리에 저장되어 있는 앞서 코딩된 패턴의 활용을 가능하게 하는 스캐닝 복합 문서와 관련된다.
전술한 알려진 방법들은 데이터의 블록 기반 코딩에 사실상 적합하지 않아, 그러한 블록 데이터를 인코딩하는 개선된 방법을 제공할 필요가 있다. 다수의 상이한 코딩 방법들을 이용할 수 있지만, 이들 가용 방법 중 어느 것도 다수의 상이한 이미지 데이터, 비디오 데이터, 오디오 데이터, 그래픽 데이터, 유니코드 데이터나 바이너리 데이터, 또는 종종 만나게 되는 유사한 데이터 포맷 및 유형에 대해 완벽하지 못하다. 이러한 이유에서, 모든 종류의 데이터를 효율적으로 압축할 수 있도록 다양한 코딩 방법을 보충하는 새로운 방법이 필요하다. 예를 들어, 다음과 같은 15개의 값:
(7, 8, 10, 14, 22, 38, 70, 134, 70, 38, 22, 14, 10, 8, 7)
을 포함하는 데이터 블록을 인코딩하는데 이용 가능한 고속의 효율적인 방법은 없는데, 이 데이터 블록에서는 연속된 데이터 값들이 미리 정해진 방식으로, 예컨대 그 연속된 데이터 값들의 중앙부 쪽으로 증가한 다음 연속 값들의 시작단과 종단 쪽으로 감소하는 식으로, 또는 연속된 데이터 값들의 양끝 쪽으로 상이하게 증가한다.
[표 2] 본 개시내용에서 채택하는 두문자어
본 발명은 데이터(D1)를 인코딩하여 대응하는 인코딩 데이터(E2)를 생성하는 개선된 방법을 제공하는 것을 목적으로 한다.
본 발명은 또한 전술한 개선된 데이터(D1) 인코딩 방법을 채택하도록 동작 가능한 개선된 인코더를 제공하는 것을 목적으로 한다.
본 발명은 전술한 개선된 데이터 인코딩 방법에 의해 생성된 인코딩 데이터(E2)을 디코딩하는 개선된 방법을 제공하는 것을 목적으로 한다.
본 발명은 전술한 개선된 인코딩 데이터(E2) 디코딩 방법을 채택하는 개선된 디코더를 제공하는 것을 목적으로 한다.
제1 양태에 따르면, 첨부하는 청구항 1에서 청구하는 데이터 인코딩 방법을 제공하고, [청구항 1]은 인코더에서 데이터(D1)를 인코딩하여 대응하는 인코딩 데이터(E2)를 생성하는 데이터 인코딩 방법을 제공하며, 이 방법은,
(a) 인코딩될 데이터(D1)를 수신하고, 상기 인코딩될 데이터(D1)의 하위부를 분석하여 이 하위부를 인코딩하는데 적용되는 하나 이상의 인코딩 알고리즘을 결정하는 단계로서, 상기 하나 이상의 인코딩 알고리즘은 적어도 하나의 보간 알고리즘을 포함하는 것인, 상기 단계와,
(b) 상기 적어도 하나의 보간 알고리즘에 의해 인코딩될 상기 데이터(D1)의 하위부의 데이터 값을 나타내는, 상기 적어도 하나의 보간 알고리즘에 대한 하나 이상의 보간 파라미터를 산출하는 단계와,
(c) 하나 이상의 다른 인코딩 알고리즘을 이용하여, 인코딩될 상기 데이터(D1)의 하위부의 나머지를 인코딩하는 단계와,
(d) (b)와 (c)에서 생성된 데이터를 조합하여 인코딩 데이터(E2)를 생성하는 단계를 포함하는 것을 특징으로 한다.
본 발명은, 적어도 하나의 보간 알고리즘이, 개선된 유형의 보간 알고리즘을 이용해서, 인코딩하기에 어려운 데이터 블록 및/또는 데이터 패킷을 인코딩할 수 있다는 점에서 효과적이다.
또한, 본 발명은, 소정 유형의 이미지 데이터, 비디오 데이터, 오디오 데이터, 그래픽 데이터, 텍스트 데이터, ASCII 데이터 및 유니코드 문자 데이터, 바이너리 블록 데이터 또는 데이터 패킷을 인코딩하기 위해 매우 효율적인 인코딩 방법을 제공할 수 있다는 점에서 효과적이다. 또한, 매우 효율적인 인코딩 방법은 다수의 변형을 내포하는 데이터에 대해 연산시 매우 높은 압축비를 제공하는 것이 가능하지만, 그 데이터의 주파수 성분은 가능한 최고치가 아니다. 매우 효율적인 방법을 이용하여 인코딩하기 위한 이러한 데이터는 연관되는 선택된 보간 방법과 함께 소량의 값 및/또는 파라미터로 용이하게 기술된다.
또, 매우 효율적인 방법은 예컨대 디코더에서의 인코딩 데이터(E2)의 로스레스(lossless) 및 로시(lossy) 복원 둘다를 가능하게 하며, 예컨대 로스레스 복원 데이터에 이용된 로시 복원 데이터 또는 비트에 대해 RD 값을 최적화하기 위해 다른 방법과의 조합에 유리하게 이용된다. 이 방법은 값들을 양자화하여, 말하자면 비트레이트 감소 목적으로 용이한 품질 스케일링을 제공하며, 그럼에도 예컨대 디코더에서의 복원된 데이터에 객관적 또는 주관적 에러를 일으키지 않는다. 주변 패킷 또는 블록 데이터 값으로부터의 예측치가, 주어진 블록 또는 패턴의 데이터 보간에 이용되지 않는다면, 그 주어진 데이터 패킷 또는 데이터 블록은 다른 데이터 블록 또는 데이터 패킷과는 완전히 독립적이며, 그에 따라 더 간단한 병렬 처리 구현을 실행하여, 인코딩 데이터(E2)의 디코딩시에 저감된 에러 전파의 추가 효과를 제공할 수 있다.
선택사항으로서, 데이터(D1) 인코딩 방법에 있어서, 적어도 하나의 보간 알고리즘은, 슬라이드 방법, 스케일 방법, 피라미드 방법, 다항식 방법, 계단식(piece-wise constant) 방법, 4포인트 스케일 방법, 5포인트 피라미드 방법, 힐(hill) 방법, 9포인트 스케일 방법 중 적어도 하나를 포함한다.
선택사항으로서, 상기 방법은 상기 인코딩 데이터(E2)를 생성하기 위해 단계 (d)에서 조합된 데이터에 대해 하나 이상의 데이터 압축 처리를 받게 하는 단계를 포함하고, 상기 하나 이상의 데이터 압축 처리는, SRLE, RLE, PCM, DPCM, ODelta, EM(Entropy modifier), VLC, 레인지 코딩(Range coding), 산술 코딩(Arithmetic coding), 허프만 코딩(Huffman coding), DCT, 웨이브렛 변환(wavelet transform), 팔레트(palette), VQ, 데이터베이스, DC, 슬라이드, 멀티레벨, 스케일, 라인, 외삽(extrapolation) 및 보간(interpolation) 중 적어도 하나를 포함한다.
선택사항으로서, 상기 방법은 단계 (c)에서, DCT 인코딩, 웨이브렛 인코딩, 팔레트 인코딩, VQ 인코딩, 데이터베이스 인코딩, PCM, DPCM 인코딩, DC 인코딩, 레인지, RLE, 슬라이드, 멀티레벨 인코딩, 스케일, 라인 인코딩, 및 외삽 인코딩 중 적어도 하나를 이용하는 단계를 포함한다.
선택사항으로서, 상기 방법은 인코딩될 데이터(D1)에 포함된 데이터와, 단계 (d)에서 인코딩 데이터(E2)로부터 생성된 복원 데이터 사이에서, 에러, 에컨대 델타 에러를 산출하는 단계를 포함하고, 상기 방법은 인코딩 데이터(E2)로의 인코딩의 유무에 관계없이 에러 데이터를 추가 및/또는 전달하는 단계를 포함한다. 또 선택사항으로서, 상기 방법은 주어진 데이터 블록 또는 주어진 데이터 패킷 내에 포함된 성분의 특성에 따라, 주어진 데이터 블록 또는 주어진 데이터 패킷 단위로 에러를 인코딩 데이터(E2)에 보간하는 단계를 포함한다. 또 선택사항으로서, 상기 방법은 인코딩될 데이터(D1)를 인코딩하기 위해 하나 이상의 알고리즘을 선택하는 단계를 포함하고, 상기 인코딩될 데이터(D1)는, 1차원(1D) 데이터, 오디오 데이터, ECG 데이터, 진동성 데이터(seismic data), 2차원 데이터(2D), 이미지 데이터, 2D 비디오 데이터, 2D 그래픽 데이터, 3차원(3D) 이미지 데이터, 3D 비디오 데이터, 3D 그래픽 데이터 중 적어도 하나를 포함한다.
선택사항으로서, 상기 방법은 단계 (d)에서, 데이터 값, 구배 값, 보간 방법, 예측 검증 비트, 데이터 값 위치, 델타 값, 스캐닝 순서(scanning order), 코딩 방법 중 적어도 하나에 관한 정보를 인코딩 데이터(E2)에 포함시키는 단계를 수반한다. 또 선택적으로, 상기 방법은 인코딩 데이터(D2) 내의 하나 이상의 파라미터를 이들 자신의 압축된 데이터 스트림으로서 전송하는 단계를 포함한다. 또 선택적으로, 상기 방법은 인코딩 데이터(E2)의 개선된 데이터 압축을 제공하기 위해 하나 이상의 파라미터 중 적어도 하나를 양자화하는 단계를 포함한다.
제2 양태에 따르면, 디코더에서 인코딩 데이터(E2)를 디코딩하여 대응하는 디코딩 데이터(D3)를 생성하는 데이터 디코딩 방법을 제공하며, 이 방법은,
(a) 인코딩 데이터(E2)를 분석하여 상기 인코딩 데이터(E2)에 포함된 하나 이상의 인코딩 파라미터와, 이들 파라미터와 관련되는 하나 이상의 코딩 알고리즘을 결정하는 단계로서, 상기 코딩 알고리즘 중 적어도 하나는 적어도 하나의 보간 알고리즘을 포함하는 것인, 상기 단계와,
(b) 상기 인코딩 데이터(E2)에 존재하는 상기 하나 이상의 파라미터 및 이들의 연관된 데이터에 역알고리즘(inverse algorithm)을 적용하여 상기 인코딩 데이터(E2)의 하위부의 데이터 값을 산출하는 단계와,
(c) 상기 하위부의 산출 데이터 값을 조합하여 디코딩 데이터(D3)를 생성하는 단계를 포함하는 것을 특징으로 한다.
선택사항으로서, 이 방법은, 슬라이드 방법, 스케일 방법, 피라미드 방법, 다항식 방법, 계단식(piece-wise constant) 방법, 4포인트 스케일 방법, 5포인트 피라미드 방법, 힐(hill) 방법, 9포인트 스케일 방법 중 적어도 하나의 역알고리즘을 이용하는 단계를 포함한다.
선택사항으로서, 상기 방법은 상기 단계 (a)에서, SRLE, RLE, PCM, DPCM, ODelta, EM(Entropy modifier), VLC, 레인지 코딩(Range coding), 산술 코딩(Arithmetic coding), 허프만 코딩(Huffman coding), DCT, 웨이브렛 변환(wavelet transform), 팔레트(palette), VQ, 데이터베이스, DC, 슬라이드, 멀티레벨, 스케일, 라인, 외삽(extrapolation) 및 보간(interpolation) 중 적어도 하나의 적어도 역(inverse)을 이용하여 상기 인코딩 데이터(E2)를 압축해제하는 단계를 포함한다.
제3 양태에 따라, 데이터(D1)를 인코딩하여 대응하는 인코딩 데이터(E2)를 생성하는 인코더를 제공하며, 이 인코더는 인코딩될 데이터(D1)를 인코딩하여 인코딩 데이터(E2)를 생성하는 제1 양태에 따른 방법을 채택하도록 동작 가능한 것을 특징으로 한다.
제4 양태에 따라, 인코딩 데이터(E2)를 디코딩하여 대응하는 디코딩 데이터(D3)를 생성하는 디코더를 제공하며, 이 디코더는 인코딩 데이터(E2)를 디코딩하여 대응하는 디코딩 데이터(D3)를 생성하는 제2 양태에 따른 방법을 채택하도록 동작 가능한 것을 특징으로 한다.
제5 양태에 따라, 제3 양태에 따른, 인코딩 데이터(E2)를 생성하는 적어도 하나의 인코더와, 제4 양태에 따른, 인코딩 데이터(E2)를 디코딩하는 적어도 하나의 디코더를 포함하는 코덱을 제공하다.
제6 양태에 따라, 비일시적인 데이터 저장 매체 상에 기록된 소프트웨어 제품을 제공하며, 이 소프트웨어 제품은 제1 양태 및/또는 제2 양태에 따른 방법을 구현하기 위해 컴퓨팅 하드웨어 상에서 실행 가능한 것을 특징으로 한다.
본 발명의 특징들은 첨부하는 청구범위에 의해 정해지는 발명의 범주로부터 벗어나지 않고서 다앙한 조합으로 조합될 수도 있음은 물론이다.
이하, 본 개시내용의 실시형태들에 대해 다음의 도면을 참조하여 예시적으로만 설명한다.
도 1은 인코더 및 대응하는 디코더, 총칭하여 코덱을 도시하는 도면이며, 이 인코더와 디코더는 데이터 처리시에 본 개시내용에 따른 방법을 실행하도록 동작 가능하다.
도 2는 서로 상이한 보간 알고리즘을 활용하는 서로 상이한 보간 방법의 예를 도시하는 도면이다.
도 3은 본 개시내용의 슬라이드 방법을 이용하여 산출된 예측 값을 도시하는 도면이다.
도 4는 보간에 이용되는 샘플들이 부족하게 제공되는 데이터 값 보간을 도시하는 도면이다.
첨부하는 도면에 있어서, 밑줄 있는 도면부호는 그 도면부호가 위치하는 아이템 또는 그 도면부호에 인접한 아이템을 나타내는데 이용된다. 밀줄 없는 도면부호는 그 도면부호를 아이템까지 연결하는 선으로 식별되는 그 아이템에 관한 것이다. 도면부호에 밑줄이 없고 연관 화살표를 수반하는 경우, 그 밑줄 없는 도면부호는 화살표가 가리키는 일반적인 아이템을 식별하는데 이용된다.
도 1은 인코더 및 대응하는 디코더, 총칭하여 코덱을 도시하는 도면이며, 이 인코더와 디코더는 데이터 처리시에 본 개시내용에 따른 방법을 실행하도록 동작 가능하다.
도 2는 서로 상이한 보간 알고리즘을 활용하는 서로 상이한 보간 방법의 예를 도시하는 도면이다.
도 3은 본 개시내용의 슬라이드 방법을 이용하여 산출된 예측 값을 도시하는 도면이다.
도 4는 보간에 이용되는 샘플들이 부족하게 제공되는 데이터 값 보간을 도시하는 도면이다.
첨부하는 도면에 있어서, 밑줄 있는 도면부호는 그 도면부호가 위치하는 아이템 또는 그 도면부호에 인접한 아이템을 나타내는데 이용된다. 밀줄 없는 도면부호는 그 도면부호를 아이템까지 연결하는 선으로 식별되는 그 아이템에 관한 것이다. 도면부호에 밑줄이 없고 연관 화살표를 수반하는 경우, 그 밑줄 없는 도면부호는 화살표가 가리키는 일반적인 아이템을 식별하는데 이용된다.
개관하자면, 본 개시내용은 인코딩 및 디코딩 목적으로 고속의 효율적인 보간 방법에 연관된다. 이 방법을 "보간 방법"이라고 칭하는데, 보간 연산에 채택되는 비교적 소수의 파라미터를 이용하여 그 비교적 소수의 파리미터에 의해 정해지는 데이터 사이에 있는 중간 값을 재생성하기 때문이다. 또한, 다른 명칭, 예컨대 "슬라이드 방법", "스케일 방법", " 피라미드 방법" 등이 그 방법의 특정 버전에 이용될 수 있다. 그 방법의 예에 대해 이하에 기술한다. 또한, 상기 방법은 소정 유형의 데이터 블록에 최적으로 전용되는데, 이 방법에서는 데이터 포인트 값의 세트를, 원하는 1D, 2D 또는 3D 데이터 값을 산출하기 위해 보간하며, 이 방법에 대한 고차원성(high dimensionality)도 실행 가능하다. 더욱이, 본 발명의 방법은 구형의 코딩 방법, 예컨대 DCT, 웨이브렛, DPCM, 및 유사한 유형의 이전에 알려진 방법을 대체하기 위해 이미지 데이터, 비디오 데이터, 그래픽 데이터 및 오디오 데이터에 용이하게 최적으로 이용될 수 있다.
본 개시내용에 있어서, 이미지 데이터, 비디오 데이터, 그래픽 데이터, 오디오 데이터, 텍스트 데이터, ECG 측정 데이터, 진동성 데이터(seismic data), ASCII 데이터와 유니코드 문자 데이터, 바이너리 파일 데이터와 스트림 등을 압축할 때에 실현 가능한 코딩 효율성을 향상시킬 수 있는, 예컨대 인코더 및 디코더에 각각 이용되는 데이터(D1)를 인코딩하는 방법, 인코딩 데이터(E2)를 디코딩하는 방법이 기술된다. 본 방법은 데이터 블록 또는 데이터 패킷의 성분을 압축하기 더 쉬운 형태로 변형하는 것을 포함한다. 또한, 다른 코딩 방법도 예컨대 이미지 데이터 또는 오디오 데이터의 인코딩의 경우에 본 개시내용의 방법과 조합으로 또는 동시에, 다른 데이터 블록 또는 데이터 패킷에 이용될 수 있다. 본 개시내용의 방법은 보간 연산을 활용하여 데이터 포인트 값의 세트로부터 1D, 2D 또는 3D 데이터 블록의 데이터 값을 추정하는 것을 수반한다.
선택사항으로서, 보간 연산, 예컨대 최근접식(nearest), 선형식(linear), 다항식(polynomial), 및 스플라인(spline) 중 하나 이상이, 주어진 데이터 블록 내의 성분의 특성에 따라 선택될 수 있으며, 연관된 선택 결정이 인코더로부터 대응하는 디코더로, 예컨대 총칭하여 코덱으로서 구성된 것에 전달될 수 있다. 선택사항으로서, 보간 목적을 위해, 추가 정보와 함께, 예컨대 스케일 방법, 슬라이드 방법, 프리셋(preset) 5포인트, 및 6포인트로부터 이용된 데이터 값의 위치도 디코더에 전달될 수 있다. 선택사항으로서, 성공적인 예측을 나타내는 검증 비트, 적어도 데이터 포인트 값의 일부, 및 예측을 위한 선택적인 델타 값도 디코더에 전달될 수 있다. 예측이 성공적이지 못한 경우에는, 그 데이터 포인트에 대한 오리지널 값이, 델타 코딩의 유무에 관계없이, 디코더에 유리하게 전달된다.
상이한 압축 방법들, 예컨대 SRLE, RLE, PCM, DPCM, ODelta, EM(Entropy modifier), VLC, 레인지 코딩(Range coding), 산술 코딩(Arithmetic coding), 허프만 코딩(Huffman coding) 중 하나 이상이, 필요한 정보, 예컨대 방법 선택, 데이터 값, 구배 값(gradient value), 보간 방법, 예측 검증 비트, 데이터 값 위치, 델타 값, 스캐닝 순서, 및 코딩 방법을 압축하는데 이용될 수 있다. 인코더로부터 디코더로의 인코딩 데이터(E2)의 전달은, 예컨대 파일로 정렬, 디코더로의 스트리밍, 그러나 이들에 한정되지 않는 모든 전달 메커니즘을 포함한다.
본 개시내용의 일 실시형태에 따른 코딩 방법은 다른 코딩 방법, 예컨대 DCT, 웨이브렛, 팔레트, VQ, 데이터베이스, DPCM, DC, 멀티레벨, 라인, 및 외삽과 함께 이용될 수 있다. 본 개시내용에 따른 코딩 방법을 채택할 때에, 주어진 이미지, 비디오, 오디오 및/또는 그래픽의 각각의 데이터 시퀀스 또는 데이터 블록은 이러한 종류의 데이터 시퀀스 또는 데이터 블록을 인코딩하기에 가장 적합한 것으로 선택된 코딩 방법으로 코딩된다. 이미지, 비디오, 오디오 및/또는 그래픽 내의 주어진 데이터 블록의 사이즈는 그것의 성분의 함수에 따라 변할 수 있다. 앞의 예의 경우에 있어서, 본 개시내용의 실시형태를 구현할 때에 데이터 시퀀스 또는 데이터 블록에 대한 더 높은 차원이 실행될 수 있더라도, 데이터 블록의 데이터 시퀀스는 선택적으로 1차원(1D), 예컨대 오디오 데이터, ECG 데이터 또는 진동성 데이터일 수 있거나, 다차원, 예컨대 2차원(2D) 이미지, 2D 비디오, 2D 그래픽, 3차원(3D) 이미지, 3D 비디오 및 3D 그래픽일 수 있다.
특히, 데이터 블록 내에서 또는 데이터 패킷 내에서 지역적으로 또는 전체적으로 변하는 자연 데이터 또는 그래픽, 데스크탑 이미지, 애니매이션은 동시대의 알려진 코딩 방법으로 압축하기가 곤란하며, 이러한 이유에서, 본 개시내용의 실시형태는 압축하기 어려운 성분을 압축하기에 최적화된 코딩 방법에 관련된다. 물론, 코딩 및 압축되는 데이터는 오리지널 데이터일 수도 있고, 또는 그 데이터는 몇몇 예측 방법, 예컨대 DPCM, 델타, 모션 추정 또는 다른 시간 예측, 공간 예측을 이용하여 형성된 예측 에러 데이터일 수도 있다.
도 1을 참조하면, 전체적으로 도면부호 10으로 나타내는 코덱을 도시하고 있다. 코덱(10)은 인코딩될 데이터(D1)를 수신하고 그 데이터(D1)을 인코딩하여 대응하는 인코딩 데이터(encoded data)(E2)를 생성하도록 동작 가능한 인코더(20)를 포함한다. 또한, 코덱(10)은 인코딩 데이터(E2)를 수신하고 그 인코딩 데이터(E2)을 디코딩하여 대응하는 디코딩 데이터(decoded data)(D3)를 생성하도록 동작 가능한 하나 이상의 디코더(30)를 포함한다. 선택사항으로서, 디코딩 데이터(D3)은 인코딩될 데이터(D1)의 실질적으로 로스레스 재현물(reproduction)이다. 인코더(20)와 하나 이상의 디코더(30)는, 하나 이상의 데이터 메모리(30, 70)에 각각 선택적으로 연결되는 데이터 프로세서(40, 50)를 각각 포함한다. 데이터 프로세서(40, 50)는 비일시적인 머신 판독 가능한 데이터 저장 장치, 즉 데이터 캐리어 상에 기록된 하나 이상의 소프트웨어 제품을 실행하도록 동작 가능한 배선접속된(hardwired) 디지털 하드웨어 및/또는 컴퓨팅 하드웨어로서 구현되는 것이 유리하다. 선택사항으로서, 인코딩 데이터(E2)는 데이터 통신 네트워크(80)를 통해 인코더(20)로부터 하나 이상의 디코더(30)로 전달되고, 대안적으로, 인코딩 데이터(E2)는 공유 데이터 메모리, 예컨대 공유 데이터베이스, 또는 물리적 데이터 저장 매체, 예컨대 광학적으로 판독 가능한 데이터 저장 디스크에 의해 인코더(20)로부터 하나 이상의 디코더(30)로 전송된다.
선택사항으로서, 인코딩될 데이터(D1)는 데이터 프로세서(40)에 공급되기 전에 프리프로세서(pre-processor)(100)에서 사전 처리된다. 선택사항으로서, 데이터 프로세서(40)에 의해 생성되는 인코딩 데이터는 인코딩 데이터(E2)를 생성하도록 포스트프로세서(post-processor)(110)에서 후처리되는데, 예컨대 RLE, EM, 허프만 코딩 등의 추가 압축 방법의 처리를 받는다.
선택사항으로서, 인코딩 데이터(E2)는 데이터 프로세서(50)에 공급되기 전에 프리프로세서(120)에서 사전 처리를 받는다. 선택사항으로서, 데이터 프로세서(50)에서 생성되는 디코딩 데이터는 디코딩 데이터(D3)를 생성하도록 포스트프로세서(130)에서 후처리된다.
동작에 있어서, 인코딩될 데이터(D1)는 예컨대 상이한 방식으로 하나 이상의 데이터 블록으로 세분된다. 그런 다음, 하나 이상의 데이터 블록은 개별적인 하나 이상의 데이터 블록을 인코딩하기에 가장 적합한 방법을 찾기 위해 개별적으로 분석된다. 가장 적합한 방법은 하나 이상의 데이터 블록 내에 포함된 데이터 성분에 종속될 것이다. 이러한 적합한 한 방법이 본 개시내용에 따른 보간 방법이며, 이 보간 방법에 대해 이하에서 상세하게 설명한다. 다른 적합한 방법은 알려진 종래의 방법을 포함할 수 있는데, 주어진 데이터 블록의 데이터 성분은 이 알려진 방법을 이용하여 가장 적절하게 인코딩된다. 인코딩 데이터(E2)는 하나 이상의 데이터 블록과, 이 하나 이상의 데이터 블록을 인코딩하기 위해 데이터 프로세서(40)에서 선택된 대응하는 하나 이상의 방법을 식별하는 정보를 포함한다. 디코더(30)에서는, 하나 이상의 데이터 블록에 대응하는 인코딩 데이터와, 그 하나 이상의 데이터 블록을 인코딩하기 위해 데이터 프로세서에 채택되는 방법을 분석하기 위해 인코딩 데이터(E2)를 연산할 수 있으며, 데이터 프로세서(50)는 디코딩 데이터(D3)를 생성하는데 이용되는, 디코딩 데이터를 생성하기 위해 선택된 적합한 방법의 역방법(inverse)를 하나 이상의 데이터 블록에 적용하도록 동작 가능하다.
이에, 본 개시내용에 따른 보간 방법은 데이터 프로세서(40)에서의 다수의 다른 방법, 및 데이터 프로세서(50)에서의 그 역방법과 함께 이용되며, 이러한 이유로 코딩 방법의 선택이 인코딩 데이터 파일에 또는 데이터 스트림에, 예컨대 각각의 코딩된 데이터 블록에 대해, 디코더(30)에 공급되는 인코딩 데이터(E2) 내에 저장될 필요가 있다. 데이터 블록의 사이즈가 변할 수 있다면 데이터 사이즈가 얼마나 큰지, 또 인코딩될 데이터(D1) 내에 그 블록이 어떻게 위치하는지를 나타내는 정보가 몇몇 방식으로 디코더(30)에 전달될 필요가 있다. 이것은 예컨대 영국 특허 출원 GB1214414.3과 균등한 미국 특허 출원 US13/584005("Encoder") 및 영국 특허 출원 GB1214400.2와 균등한 미국 특허 출원 US 13/584,047("Decoder")에 개시된 방법을 이용하여 수행될 수 있으며, 이들 특허 출원의 내용은 본 명세서에 참조로 포함되며, 대응하는 유럽 특허 출원 번호 EP13002521.6("Encoder") 및 EP13002520.8("Decoder")의 개시내용도 본 명세서에 참조로 포함된다.
본 개시내용에 따른 코딩 방법에 의해 코딩되는 데이터 블록 또는 데이터 패킷의 사이즈는 원하는 어떤 사이즈일 수도 있지만, 사이즈가 5 내지 100000 값의 범위에 있는 것이 바람직하다. 보간에 이용되는 데이터 값의 양은 원하는 임의의 수일 수 있지만, 보간에 이용되는 데이터 값의 양은 1 내지 1000 값의 범위 내에 있는 것이 바람직하다. 더 많은 값이 필요하다면, 통상적으로 주어진 데이터 블록 또는 데이터 패킷을 분할한 다음 이들에 상이한 방법 또는 상이한 파라미터를 이용하는 것이 더 좋다.
보간에 이용되는 데이터 값은 예컨대 포스트프로세서(110)에서 구현되는, 상이한 압축 방법, 예컨대 PCM, DPCM, VLC, RLE, DCT, 및 데이터베이스 방법을 이용하여 인코딩될 수 있다. 다수의 선택을 이용할 수 있다면, 그 선택이 디코더(30)에 전달된다. 데이터 값의 스캐닝 순서는, 예컨대 상단 또는 하단으로부터 좌우로, 왼쪽 또는 오른쪽으로부터 상하로, 지그재그로, U자로, C자로, 그리고 Z자로 변할 수 있다. 다수의 스캐닝 순서를 이용할 수 있다면, 그 선택이 디코더(30)에 전달된다.
본 개시내용에 따른, 즉 보간 알고리즘에 기초한 방법은 강화된 데이터 압축을 제공하기 위해 인코딩시에 더 많은 바이트를 줄일 수 있고, 이에, 알려진 종래의 방법이 채택될 경우에, 주어진 블록의 데이터 값을 모두 코딩하는 것과 대조적으로, 본 개시내용에 따른 방법을 이용할 경우는 주어진 데이터 블록 내의 데이터 포인트 값의 한 세트만이 코딩되기 때문에, 일반적으로 사용되는 복잡하고 전력 소모적인 알려진 종래의 방법보다 전기 및 처리 시간을 줄일 수 있다. 대개, 데이터 포인트의 세트를 인코딩할 때에, 그 값들은 데이터 블록으로부터 선택되고, 선택적으로 압축되어 디코더(30)에 전달되며, 디코더에서는 데이터 포인트가 수신되고, 선택적으로 압축되며, 주어진 데이터 블록의 데이터 블록 값을 복원하기 위해 보간에 이용된다.
전달된 데이터 값과, 선택적으로 전달된 구배 값이 보간에 이용될 수 있다. 본 개시내용에 따른, 가능한 보간 방법은 데이터 값이 연속적이고, 순조롭고(smooth), 주기적 등일 수 있다는 가정에 기초할 수 있다. 보간은 알려진 값에 기초하여 구배의 변화를 추정할 수도 있다. 채택 가능한 상이한 보간 방법은, 예컨대
(a) 계단식(piecewise constant)(최근접식)
(b) 선형식
(c) 다항식
(d) 스플라인 보간을 포함한다.
또한, 예컨대 상이한 양의 데이터, 또는 상이한 위치의 데이터 값에 대해 이용되는 보간의 상이한 버전, 예컨대 4포인트 스케일 또는 슬라이드 방법, 5포인트 피라미드 또는 힐 방법, 및 9포인트 스케일 방법도 있을 수 있다.
본 개시내용에 따른 보간 방법은 미리 선택될 수 있거나, 그 선택은 예컨대 인코딩될 주어진 데이터 블록 또는 데이터 패킷에 대한 데이터 성분 또는 RD 최적화에 기초할 수 있다. 다수의 대안들 중에서 보간 방법이 선택되면, 그 방법의 선택도 전술한 바와 같이 디코딩 목적으로 디코더(30)에 전달되어야 한다. 데이터 블록 또는 데이터 패킷에 대해 이용된 방법, 예컨대 보간 방법 대 다른 방법의 선택은 통상, 상이한 방법에 기초하여 산출될 수 있는 RD 값에 기초하여 행해진다. 그 방법의 선택도 종종 디코딩 목적으로 디코더(30)에 전달되어야 한다. 종종 방법 선택 및 보간 방법 선택은 예컨대 인코딩 데이터(E2)에서 데이터 압축을 더 많이 달성하기 위해 함께 조합될 수 있다.
통상 상기 방법은, 주어진 데이터 블록 내의 데이터 값에 기초한 전달되는 값을 이용하지만, 추가적으로 이들 값이 이용 가능하다면 데이터 블록 외부의 예측 값도, 즉 추가 정보의 유무에 관계없이 이용할 수 있다. 인코더(20)로부터 디코더(30)로 인코딩 데이터(E2) 내에서 전달되는 모든 값마다 별개의 검증 비트가 있을 수 있다. 선택사항으로서, 인코딩 데이터(E2) 내에서 다수의 비트를 송신하는 일 없이 모든 예측 값을 한 번에 검증하는데 1 비트가 이용될 수 있다. 이 선택적 1 비트가 예측 데이터 값 전부를 검증하지 못하면, 매 값마다 개별 비트가 선택적으로 필요하다. 이것은 데이터 블록 경계 내에 변화가 발생할 때에 예측 값의 일부만을 활용하거나 상이한 값들을 이용할 수 있는 솔루션을 가능하게 한다. 이들 예측된, 그리고 선택적으로 검증된 블록 경계 값이 보간 목적으로 하나 이상의 다른 데이터 포인트 값들과 함께 이용될 수 있다.
보간 활용 방법은 개별 데이터 블록 또는 데이터 패킷을 인코딩하는데 유리하게 이용된다. 또한, 이것은 서로 유사하거나 서로 상이한 방법을 채택하여 데이터의 다른 부분이 인코딩될 수 있음을 의미한다. 보간 방법은 임의 사이즈의 데이터 및 임의 형태의 데이터, 즉 임의 차원의 데이터 블록 또는 데이터 패킷에 이용될 수 있다. 예컨대 이하에서 더욱 상세하게 설명하겠지만, 이 보간 방법을 구현할 수 있는 다수의 방식이 있다. 또한, 전달되어 복원, 즉 예컨대 인코딩 데이터(E2)의 디코딩시에 디코더(30)에서의 복원용 보간에 이용되는 값들을 생성하기 위해 이용되는 데이터 포인트 값들에 대한 여러 선택 기준 및/또는 산출식(calculation formula)이 있다. 보간 방법, 예컨대 계단식, 선형식, 큐빅, 및 스플라인 보간을 실행할 때에 이용될 수 있는 상이한 유형의 보간 알고리즘이 있다. 또한, 이하에 상세하게 설명하겠지만, 데이터 값들의 위치들도 변할 수 있다.
도 2에는, 4x4 데이터 블록에 대해 스케일 방법, 슬라이드 방법 또는 힐 방법을 구현하기 위해 2x2 및 2x2+1 데이터 값이 이용되는 예가 도시된다. 도 2의 이 예는 방법에 대한 보간 알고리즘이 선택된 보간 방법들 사이에서 얼마나 변할 수 있는지도 도시하지만, 이 변화는 선택적이며, 이들 모든 방법은 본 개시내용의 실시형태의 구현시에 상이한 보간 알고리즘 전체와 함께 이용될 수 있다. 도 2의 동그라미는 상이한 보간 방법들에서 전달된 4개 또는 5개 데이터 값에 대한 데이터 위치로서 유리하게 이용되는 선택적 위치를 표시한다. 이 예는 본 발명을 제한하지 않으며, 통상 스케일링 비도 실제로는 더 큰데, 이것은 예컨대 2x2 데이터 값이 더 큰 데이터 블록을, 예컨대 4x4 데이터 블록보다 큰 블록을 코딩하는데 이용되는 것을 의미한다.
디코더(30)에서, 디코딩 데이터(D3)로서 인코딩 데이터(E2)의 복원에 대한 품질 요건이 매우 높다면, 예컨대 도 2의 우측에 도시하는 바와 같이, 복원 에러 데이터도 상이한 코딩 방법으로 코딩되고, 인코딩 데이터(E2)에 포함되며, 디코딩 데이터(D3)에 대해 개선(refinement)을 행하기 위해 디코더(30)에 채택될 수 있다. 이것은 다수의 실용적인 용도에서는 통상 필요하지 않으며, 아마도 초고품질 정지 이미지, 예컨대 항공 감시 이미지, 위성 이미지 등에만 필요하다. 전술한 다양한 구현에서의 보간 방법이 충분히 좋지 못하면, 인코더(20)에서 데이터 블록 또는 데이터 패킷을 인코딩할 때에 일부 다른 방법이 선택될 수 있거나, 또는 유사한 방법은, 인코딩 데이터(E2) 내의 전달된 데이터 값에 대해 더 우수한 정확도를 가능하게 하는 더 작은 블록 사인즈의 경우에만 이용되지만 데이터(D1)에 비해 인코딩 데이터(E2)의 데이터 압축비가 약간 더 낮다는 패널티가 있다.
다음으로 도 3을 참조하면, 코딩되는 블록 주위에, 인코더(20)에서 이미 인코딩되고 또 디코더(30)에서 디코딩된 이용 가능한 데이터 값들이 있다면, 이들 값은 인코더(20)로부터 디코더(30)로 전달되어야 하는 데이터 값을 예측하는 데에 이용될 수도 있다. 또한, 예측된 값이 충분히 좋다면, 이 값은 예측 방식에 이용될 수 있다. 더욱이, 값들 중 일부가 예측될 수 있는 것을 가능하게 하도록 검증 정보도 선택적으로 인코더(20)로부터 디코더(30)에 전달되지만, 다른 값들은 적절한 데이터 값으로서 또는 적절한 값과 예측 값 사이의 델타 값으로서 전달될 수 있다. 도 3에는, 주변의 데이터 값들을 이용할 수 있는 예를 도시하고 있으며, 이 주변 값들 중 일부는 충분히 좋은 예측 값을 생성하지만, 다른 주변 값들은 충분히 좋은 예측 값을 생성하지 못한다. 이러한 상황에서, 인코더(20)는 본 개시내용에 따른 보간 알고리즘이 만족스럽게 정확한 예측을 제공하는 것으로 알려질 때까지 데이터 블록 또는 데이터 패킷의 인코딩시에 몇몇 서로 상이한 보간 알고리즘을 시도하도록 동작 가능하다. 인코더(20)에서의 보간 알고리즘 중 어느 것도 충분한 정확도로 주어진 데이터 블록 또는 데이터 패킷을 인코딩할 수 없는 경우에, 인코더(20)는 대안적 방법을 찾고/찾거나 그 인코딩 정확도를 개선하기 위해 주어진 데이터 블록을 세분하고/하거나 주어진 데이터 블록을 하나 이상의 이웃하는 데이터 블록과 조합하는 것을 이행하여, 조합 블록(composite block)을 형성한 다음, 예컨대 고차 다항식 보간 알고리즘을 이용함으로써 인코딩한다. 도 3의 이 예는 본 발명을 한정하지 않는다.
본 개시내용의 실시형태를 구현할 경우, 인코딩될 데이터(D1)를 인코딩하여 대응하는 인코딩 데이터(E2)를 생성할 때에 인코더(20)에서 이용 가능한 다수의 상이한 예측 방법과, 또 인코딩 데이터(E2)를 디코딩하여 디코딩 데이터(D3)를 생성하기 위한 디코더(30)에서의 대응하는 디코딩 방법이 있는 것이 유리하며, 예측 방법은 값을 예측하기 위해, 예를 들어, 예컨대 보간 또는 유사한 어프로치에 의해 예측을 수행하는 소수의 파라미터에 기초하여 주어진 데이터 블록에 대한 값을 예측하는데 이용될 수 있다. 그러나, 인코더(20)로부터 디코더(30)로의 데이터 값 전달의 외식(explanation)을 가능하게 하는 두가지 간단한 방법에 대해 후술한다. 그러한 예측은 선택적으로, 바로 가장 가까운 주변 데이터 값보다 더욱 쓸모있는 값들도 이용할 수 있다.
도 3에서, 슬라이드 방법에 대한 좌측 상단 값이, 3개의 주변 데이터 값, 즉 상단 값, 좌측 값, 및 좌측 상단 값을 이용하여 예측될 수 있다. 수학식 1(식 1)로부터 값을 예측하는 방법을 이용하여, 상당히 양호한 예측 결과를 얻을 수 있다.
예측 값 = (상단 값)+(좌측 값)-(좌측 상단 값) = 12+11-11 = 12
(식 1)
즉, 상당히 정확하게 예측된 값.
우측 상단 값이 예컨대 3개의 주변 데이터 값으로부터 예측될 수 있지만, 이 경우에, 예측은 상단 값으로부터 바로 -> 예측 값 = 30으로 산출될 수 있으며, 이 값은 정확하지 않은 예측 값이다("불량값"). 또한, 좌측 하단 값이 품질 요건에 따라, 예컨대, 좌측 값으로부터 -> 예측 값 = 11, 즉 "양호값" 또는 "불량값"으로 예측될 수 있으며, 도 3의 예에서는, 이 예측된 값이 "양호값"인 것으로, 즉 보다 정확한 값으로 선택되었다.
우측 하단 값은 이용 가능한 주변 픽셀 값이 없다. 그 값은 결코 예측되지 않거나, 예컨대 3개의 예측 값, 또는 보간에 이용되는 3개 값을 이용하여 예측되는 것이 가능하며, 코덱(10)에 속하는 품질 요건에 따라, 좌측 상단 값을 예측하는데 채택된 것과 유사한 수식이 이용되어 -> 예측 값 = 30 + 11 - 12 = 29, 즉 비교적 부정확한 "불량값", 또는 예측 값 = 15 + 11 - 12 = 14, 즉 정확한 "양호값" 또는 부정확한 "불량값"으로 예측된다. 도 3의 예에서는, 이 때, 산출된 값이 정확한 "양호값"으로 선택된다. 또한, 이 예는, 예측이 실행되면, 우측 하단 픽셀의 예측이 행해졌을 때 보정 없이 단지 예측된 값보다는 보간에 이용될 값을 선택하는 것이 통상적으로 더 좋은 것을 나타내고 있다.
다음으로, 데이터 값의 전달에 대해 기술하며, 두가지 상이한 방법, 즉 제1 방법과 제2 방법을 설명한다. 제1 방법은 우측 하단 값을 결코 예측하지 않으며, 제2 방법은 보간에 이용되는 3개의 값을 이용하여 예측을 행한다. 제1 방법은 1, 0, 1의 검증 비트를 전달하고, 빠진 데이터 값은 15와 15로서 전달된다. 데이터 값이 전달될 때에 델타 코딩이 선택적으로 이용될 수 있다. 제2 방법은 1, 0, 1, 1의 검증 비트를 전달하고, 빠진 데이터 값은 15로서 전달된다.
이전의 예에서는 더 많은 값을 필요로 하지 않는 방법에 대한 예측 값을 설명하고 있다. 더 많은 값이 필요하다면, 데이터 값의 부정확한 "불량" 예측이 동작시에 발생한 후에 추가 값과, 선택사항으로서, 예컨대 최상의 정확도를 확보하기 위해 결코 예측하지 않는 데이터 값이 전달될 수 있다. 또한, 델타 코딩 및 다른 압축 방법이 선택적으로, 예컨대 하나 이상의 데이터 스트림으로서 전달되는 인코딩 데이터(E2)를 인코더(20)로부터 디코더(30)로 전달할 때에 이용된다.
다음으로, 효율적으로 1D 데이터를 인코딩하기 위해 실행 가능한 방법을 예시하는 예를 설명한다. 이 예는 매우 간단하며, 전달될 값을 3개만, 즉 값 7, 134, 7과, 부가적으로, 2개의 값의 파워(power)를 이용해서 보간을 실행하는 정보를 필요로 한다. 그러나, 값이 보다 복잡한 방식으로 변한다면, 예컨대 끝에서부터 두가지의 값들이 감소하는 (7, 8, 10, 14, 22, 38, 70, 134, 70, 38, 22, 14, 10)에서, 만족스러운 보간을 달성하기 위해서는 더 많은 정보가 인코더(20)로부터 인코더(30)에 제공되어야 하며, 다시 말해 인코더(20)로부터 디코더(30)로 약간 더 많은 정보를 전달할 필요가 있다.
이 때, 전달되는 데이터 값 3개는 7, 134, 10이다. 또한, 이용된 중심 값이 7의 위치에 있는 정보가, 즉 인덱싱이 값 0에서 시작할 때에 전달된다. 또한, 2개 값의 파워를 채택하여 보간 방법이 실행될 것이다. 인코더(20)와 디코더(30) 둘다에는, 예컨대 인코더(20)와 디코더(30)가 블록 디코더와 블록 인코더로 각각 구현될 때에, 수신되는 다른 정보 때문에, 데이터 길이를 나타내는 정보가 제공되며, 이 정보는 선택된 방법과 함께 다시 전달될 필요는 없다. 이 예는 첨부하는 청구범위에서 정해지는 본 발명을 제한하지 않는다.
선택사항으로서, 인코더(20)에서 이용 가능한 다른 방법들이 있을 수 있으며, 이 다른 방법들은 샘플이 어떻게 선택되어 디코더(30)에 전달되는지, 이용 가능한 샘플이 어떻게 보간되어 디코더(30)에서 데이터 블록 값을 복원하는지에 관해 구별된다. 또한, 샘플링은 예컨대 규칙적인 구조, 낮은 데이터 값과 높은 데이터 값, 그리고 경계 값에 기초할 수 있다. 도 4의 다음 예는 규칙적인 샘플링을 이용하지 않는 경우에 데이터 값이 선택될 수 있는 방법에 관한 예시를 제공한다. 샘플링이 규칙적이지 않거나 달리 알려지지 않은 경우에도, 선택적으로, 인코더(20)로부터 디코더(30)로 전달될 샘플 값들의 위치를 정하는 것이 바람직하다.
도 4의 좌측 데이터 블록은 예컨대, 상세한 하늘(sky details), 22°대각선 방향의 몇몇 라인, 및 바닥 풀밭의 슬라이딩을 포함하는 이미지로부터 도출된다. 10개의 데이터 값이 예시되며, 성분, 즉 전체 8x8 데이터 블록에 대한 데이터 값이 만족스럽게 보간될 수 있다. 도 4의 우측 블록은 하나의 언덕과 하나의 골짜리를 포함하는 컬러 슬라이딩을 포함하며, 이들 6개 값으로 전체 8x8 데이터 블록에 대한 성분 및 데이터 값이 디코더(30)에서 만족스럽게 보간될 수 있다.
본 개시내용의 실시형태에 있어서, 인코더(20)로부터 디코더(30)로 데이터 값을 전달하기 위해 선택적으로 다수의 기술이 채택된다. 그 한가지 기술은 전술한 슬라이드 방법을, 추가 값, 그 양 및 스캐닝 순서 인덱스를 비롯한 보충 정보와 함께 활용하여 데이터 블록에 대해 코너 데이터 값을 전달하는 것을 수반하며, 이러한 코너 데이터 값 및/또는 보충 정보는 델타의 유무에 관계없이 선택적으로 전달된다. 예컨대, 도 4에서, 우측 블록에 대한 추가 정보는,
2(=추가 데이터 값의 양),
21, 34(-> 추가 데이터 값의 인덱스)
이며, 좌측 상단 코너에 대한 인덱스는 0이고, 스캐닝은 좌측 상단 코너로부터 왼쪽에서 오른쪽으로 행마다 실행된다. 그러면 도 4의 예의 경우 전달되는 데이터 값은 10, 20, 20, 30, 5, 40이 된다. 또한, 채택되는 실제 스캐닝 순서를 고려할 경우 데이터 값을 10, 20, 5, 40, 20, 30으로 정렬하는 것도 가능하며, 모든 슬라이딩 코너는 선택적으로 제1 값으로서 전송되지 않는다.
선택사항으로서, 다른 순서 및 전달 방법이 이용될 수 있다. 도 4를 참조하면, 좌측 데이터 블록에 대한 값은 선택적으로 예컨대 110, 114, 9, 99, 10, 10, 10, 97, 46, 189으로서 전달된다. 또한, 좌측 상단 코너로부터 하향으로 시작해서 데이터 블록 경계 값만 전달되도록 인코더(20)로부터 디코더(30)로 데이터를 보내는 것이 필요하다. 인코더(20)로부터 디코더(30)에 전달되는 데이터 값은 데이터 스트림 또는 데이터 워드로 기술된다.
1000111100000010001111000000
선택사항으로서, 예컨대 1, 3, 4, 6, 1, 3, 4, 6으로 연속되는 동일한 정보가 추가적으로 또는 대안적으로 인코더(20)로부터 데코더(30)로 전달될 수 있으며, 이 예에서 제1 값은 이용 가능한 값의 연속(run)을 나타내도록 정의된다.
본 개시내용의 실시형태의 전술한 예에 있어서, 보간 알고리즘을 활용할 수 있는 몇몇 대안적 방법들과, 또 인코더(20)로부터 디코더(30)로 데이터 값을 전달할 수 있는 대안적 방식들이 있다. 코덱(10)의 실제 구현에서는, 인코딩될 데이터(D1) 내에 존재하는 데이터 성분과 그것의 특성이, 인코딩 데이터(E2)를 생성하기 위한 인코더(20)에서 다수의 대안적 방법들이 어떻게 선택되는지를 정의 또는 결정하는데, 대안적 방법은 블록 단위(block-by-block basis)로, 및/또는 데이터 패킷 단위(data packet-by-data packet basis)로 선택되는 것이 유리하며, 선택사항으로서, 예컨대 달성 가능한 데이터 압축 및/또는 인코딩 정확도의 면에서 가장 효율적으로 인코딩이 이루어지는 방식으로 인코더(20)에서 인코딩될 데이터(D1)로부터 데이터 블록 및/또는 데이터 패킷이 세분된다. 전술한 바와 같이, 디코더(30)에는 인코딩 데이터(E2)로 인코딩된 데이터 블록 및/또는 데이터 패킷의 형태를 나타내는 데이터와 함께, 인코더(20)에서 채택되는 방법을 나타내는 정보가 제공된다. 선택된 모든 방법의 대안이 다른 가능한 인코딩 방법과 함께 이용되며, 본 개시내용에 따른 보간 방법이 선택될 때에, 필요한 모든 파라미터는 다수의 상이한 엔트로피 코딩 방법, 예컨대 SRLE, RLE, PCM, DPCM, ODelta, EM, VLC, 레인지, 허프만 코딩 및 산술 코딩을 이용해서 인코딩되며, 선택적으로 코딩 방법은 이들에 한정되지 않는다.
이에, 통상적으로 상이한 파라미터 값 전부, 예컨대 방법 선택, 데이터 값, 구배 값, 보간 방법, 예측 검증 비트, 데이값 위치, 델타 값, 스캐닝 순서, 및 코딩 방법은 가장 가능성 있는 압축 효율이 달성될 수 있도록 인코딩 데이터(E2)의 인코딩 비트 스트림 내부에서 그들 자신의 압축 데이터로서 전송된다. 필요하다면, 인코딩 데이터(E2)에서 달성 가능한 데이터 얍축 정도를 향상시키기 위해 모든 데이터 값이 양자화될 수 있다. 실제 데이터 인코딩 방식에 있어서, 본 개시내용에 따라, 보간 방법은 코덱(10)을 통해 전달될 데이터 블록 및/또는 데이터 패킷 내의 데이터 값들 중, 통상 절반보다 더 많은, 주요 부분을 보간하는데 채택된다.
이상에서 설명한 본 개시내용의 방법은 병렬 처리를 이용해, 예컨대 시간적으로 동시에 데이터 블록 및/또는 데이터 패킷을 처리하도록 동작 가능한 프로세서 어레이를 채택해서 유리하게 구현된다. 데이터 값 예측이 실행되지 않을 때에, 모든 데이터 블록은 독립적으로 그리고 병렬로 처리될 수 있다. 인코더(20)에서의 데이터 스트림의 압축이, 인코딩될 데이터 전체가 적절한 순서로 놓여진 것을 필요할 경우만이, 인코더(20)에 채택하기에 덜 적절한 병렬 처리이다. 마찬가지로, 디코더(30)는 선택적으로, 또한 예컨대 상이한 방법들이 이용될 때에 적어도, 다수의 병렬 프로세서를 통해 수신된 인코딩 데이터(E2)를 처리하도록 동작 가능하다. 하나 이상의 예측치가 인코딩 데이터(E2)에 그리고 후속 디코딩에 이용될 때에, 인코딩 데이터(E2)를, 독립적이며 별도로 처리되는 "내부(init)" 블록 또는 "내부" 패킷으로 분할하는 것도 가능하다. 이 경우에, 상이한 내부 블록 또는 내부 패킷으로부터의 데이터도 별도로 코딩될 수 있으며, 이것은 코덱(10) 내에서의 데이터 전달을 훨씬 더 높은 정도로 단순화하게 하며, 디코더(30)의 구현도 간단하게 한다.
인코더(20)와 디코더(30)는 다음 중, 스마트폰, 퍼스널 컴퓨터, 패블릿(phablet), 태블릿 컴퓨터, 비디오 장치, 감시 장치, 과학 장치, 오디오 고충실도 장치, 텔레비전 장치, 그러나 이들에 한정되지 않는 것들의 하나 이상으로 실제로 유리하게 구현된다. 본 개시내용의 방법은 컴퓨팅 하드웨어를 통해 유리하게 규현되며, 컴퓨팅 하드웨어는 비일시적인 머신 판독 가능한 데이터 저장 장치 상에 기록된 하나 이상의 소프트웨어 제품을 실행하도록 동작 가능하다. 대안적으로 또는 추가적으로, 본 개시내용의 실시형태들은 전용 디지털 하드웨어, 예컨대 고객이 설계한 전자 집적 회로, PLGA(field-programmable logic gate array) 및 동류를 이용해 적어도 부분적으로 구현된다. 또한, 인코딩 데이터(E2)는 물리적 데이터 캐리어, 예컨대 CD, 광디스크, 자기 디스크, 반도체 데이터 메모리 디바이스를 통해 전달될 수 있거나, 데이터 통신 네트워크, 예컨대 인터넷, 무선 전화망 등을 통해 스트리밍될 수 있다.
이상에서 설명한 본 발명의 실시형태에 대한 변형이, 첨부하는 청구범위에 의해 정해지는 발명의 범주로부터 일탈하지 않고서 가능할 수 있다. 본 발명을 기술하고 청구하는데 사용되는 "포함하는", "구비하는", "통합하는", "이루어지는", "갖는", "~인"은 비배타적으로 해석되도록, 즉 존재하는 것으로 명시적으로 설명하지 않는 아이템, 구성요소 또는 소자들에도 허용되게 의도된다. 또한, 단수로 칭해지더라도 복수에 관련되는 것으로 해석되어야 한다. 첨부하는 청구범위 내에서 괄호 안의 숫자는 청구범위의 이해를 돕기 위한 것으로 이들 청구범위에 의해 정해지는 발명의 대상을 어떤 식으로도 제한하는 것으로 해석되어서는 안된다.
Claims (19)
- 인코더(20)에서 데이터(D1)를 인코딩하여 대응하는 인코딩 데이터(encoded data)(E2)를 생성하는 데이터 인코딩 방법에 있어서,
(a) 인코딩될 입력 데이터(D1)를 수신하고, 인코딩될 상기 입력 데이터(D1)의 하위부(sub-portion)를 분석하여 이 하위부를 인코딩하는데 적용되는 하나 이상의 인코딩 알고리즘을 결정하는 단계로서, 상기 하나 이상의 인코딩 알고리즘은 적어도 하나의 보간 알고리즘을 포함하는 것인, 상기 단계와,
(b) 상기 적어도 하나의 보간 알고리즘에 의해 인코딩될 상기 데이터(D1)의 하위부의 데이터 값을 나타내는, 상기 적어도 하나의 보간 알고리즘에 대한 하나 이상의 보간 파라미터를 산출하는 단계와,
(c) 상기 하나 이상의 다른 인코딩 알고리즘을 이용하여, 인코딩될 상기 데이터(D1)의 하위부의 나머지를 인코딩하는 단계와,
(d) (b)와 (c)에서 생성된 데이터를 조합하여 인코딩 데이터(E2)를 생성하는 단계
를 포함하는 것을 특징으로 하는 데이터 인코딩 방법. - 제1항에 있어서, 상기 적어도 하나의 보간 알고리즘은, 슬라이드 방법, 스케일 방법, 피라미드 방법, 다항식 방법, 계단식(piece-wise constant) 방법, 4포인트 스케일 방법, 5포인트 피라미드 방법, 힐(hill) 방법, 9포인트 스케일 방법 중 적어도 하나를 포함하는 것을 특징으로 하는 데이터 인코딩 방법.
- 제1항에 있어서, 상기 방법은, 상기 인코딩 데이터(E2)를 생성하기 위해 단계 (d)에서 조합된 데이터에 대해 하나 이상의 데이터 압축 처리를 받게 하는 단계를 포함하고, 상기 하나 이상의 데이터 압축 처리는, SRLE, RLE, PCM, DPCM, ODelta, EM(Entropy modifier), VLC, 레인지 코딩(Range coding), 산술 코딩(Arithmetic coding), 허프만 코딩(Huffman coding), DCT, 웨이브렛 변환(wavelet transform), 팔레트(palette), VQ, 데이터베이스, DC, 슬라이드, 멀티레벨, 스케일, 라인, 외삽(extrapolation) 및 보간(interpolation) 중 적어도 하나를 포함하는 것을 특징으로 하는 데이터 인코딩 방법.
- 제1항에 있어서, 상기 방법은, 단계 (c)에서, DCT 인코딩, 웨이브렛 인코딩, 팔레트 인코딩, VQ 인코딩, 데이터베이스 인코딩, PCM, DPCM 인코딩, DC 인코딩, 레인지, RLE, 슬라이드, 멀티레벨 인코딩, 스케일, 라인 인코딩, 및 외삽 인코딩 중 적어도 하나를 이용하는 단계를 포함하는 것을 특징으로 하는 데이터 인코딩 방법.
- 제1항에 있어서, 인코딩에 채택되는 상기 적어도 하나의 보간 알고리즘은, 데이터베이스로부터 제공된 정보에 기초하여 보간을 수행하는 것을 포함하는 것을 특징으로 하는 데이터 인코딩 방법.
- 제1항에 있어서, 상기 방법은 인코딩될 데이터(D1)에 포함된 데이터와, 단계 (d)에서 데이터로부터 생성된 복원 데이터 사이에서, 에러를 산출하는 단계를 포함하고, 상기 방법은 상기 인코딩 데이터(E2)로의 인코딩의 유무에 관계없이 에러 데이터를 추가 및/또는 전달하는 단계를 포함하는 것을 특징으로 하는 데이터 인코딩 방법.
- 제6항에 있어서, 상기 방법은 주어진 데이터 블록 또는 주어진 데이터 패킷 내에 포함된 성분(content)의 특성에 따라, 상기 주어진 데이터 블록 또는 주어진 데이터 패킷 단위로 상기 에러를 상기 인코딩 데이터(E2)에 보간하는 단계를 포함하는 것을 특징으로 하는 데이터 인코딩 방법.
- 제7항에 있어서, 상기 방법은 상기 데이터(D1)를 인코딩하기 위해 상기 하나 이상의 알고리즘을 선택하는 단계를 포함하고, 인코딩될 상기 데이터(D1)는, 1차원(1D) 데이터, 오디오 데이터, ECG 데이터, 진동성 데이터(seismic data), 2차원 데이터(2D), 이미지 데이터, 2D 비디오 데이터, 2D 그래픽 데이터, 3차원(3D) 이미지 데이터, 3D 비디오 데이터, 3D 그래픽 데이터 중 적어도 하나를 포함하는 것을 특징으로 하는 데이터 인코딩 방법.
- 제1항에 있어서, 상기 방법은 단계 (d)에서, 데이터 값, 구배 값(gradient value), 보간 방법, 예측 검증 비트, 데이터 값 위치, 델타 값, 스캐닝 순서(scanning order), 코딩 방법 중 적어도 하나에 관한 정보를 상기 인코딩 데이터(E2)에 포함시키는 단계를 수반하는 것을 특징으로 하는 데이터 인코딩 방법.
- 제9항에 있어서, 상기 방법은 상기 인코딩 데이터(D2) 내의 하나 이상의 파라미터를 이들 자신의 압축된 데이터 스트림으로서 전송하는 단계를 포함하는 것을 특징으로 하는 데이터 인코딩 방법.
- 제9항에 있어서, 상기 방법은 상기 인코딩 데이터(E2)의 개선된 데이터 압축을 제공하기 위해 하나 이상의 파라미터 중 적어도 하나를 양자화하는 단계를 포함하는 것을 특징으로 하는 데이터 인코딩 방법.
- 디코더(30)에서 인코딩 데이터(encoded data)(E2)를 디코딩하여 대응하는 디코딩 데이터(decoded data)(D3)를 생성하는 데이터 디코딩 방법에 있어서,
(a) 상기 인코딩 데이터(E2)를 분석하여 상기 인코딩 데이터(E2)에 포함된 하나 이상의 인코딩 파라미터와, 이들 파라미터와 관련되는 하나 이상의 코딩 알고리즘을 결정하는 단계로서, 상기 코딩 알고리즘 중 적어도 하나는 적어도 하나의 보간 알고리즘을 포함하는 것인, 상기 단계와,
(b) 상기 인코딩 데이터(E2)에 존재하는 상기 하나 이상의 파라미터 및 이들의 연관된 데이터에 역알고리즘(inverse algorithm)을 적용하여 상기 인코딩 데이터(E2)의 하위부의 데이터 값을 산출하는 단계와,
(c) 상기 하위부의 산출 데이터 값을 조합하여 디코딩 데이터(D3)를 생성하는 단계
를 포함하는 것을 특징으로 하는 데이터 디코딩 방법. - 제12항에 있어서, 상기 방법은, 슬라이드 방법, 스케일 방법, 피라미드 방법, 다항식 방법, 계단식(piece-wise constant) 방법, 4포인트 스케일 방법, 5포인트 피라미드 방법, 힐(hill) 방법, 9포인트 스케일 방법 중 적어도 하나의 역알고리즘(inverse algorithm)을 이용하는 단계를 포함하는 것을 특징으로 하는 데이터 디코딩 방법.
- 제12항에 있어서, 상기 방법은, 상기 단계 (a)에서, SRLE, RLE, PCM, DPCM, ODelta, EM(Entropy modifier), VLC, 레인지 코딩(Range coding), 산술 코딩(Arithmetic coding), 허프만 코딩(Huffman coding), DCT, 웨이브렛 변환(wavelet transform), 팔레트(palette), VQ, 데이터베이스, DC, 슬라이드, 멀티레벨, 스케일, 라인, 외삽(extrapolation) 및 보간(interpolation) 중 적어도 하나의 적어도 역(inverse)을 이용하여 상기 인코딩 데이터(E2)를 압축해제하는 단계를 포함하는 것을 특징으로 하는 데이터 디코딩 방법.
- 제12항에 있어서, 디코딩에 채택되는 상기 적어도 하나의 보간 알고리즘은, 데이터베이스로부터 제공된 정보에 기초하여 보간을 수행하는 것을 포함하는 것을 특징으로 하는 데이터 디코딩 방법.
- 인코딩될 데이터(D1)를 인코딩하여 대응하는 인코딩 데이터(E2)를 생성하기 위한 인코더(20)에 있어서, 상기 인코더(20)는 인코딩될 상기 데이터(D1)를 인코딩하여 인코딩 데이터(E2)를 생성하는 제1항에 기재된 방법을 채택하도록 동작 가능한 것을 특징으로 하는 인코더(20).
- 인코딩 데이터(E2)를 디코딩하여 대응하는 디코딩 데이터(E3)를 생성하기 위한 디코더(30)에 있어서, 상기 디코더(30)는 상기 인코딩 데이터(E2)를 디코딩하여 대응하는 디코딩 데이터(D3)를 생성하는 제12항에 기재된 방법을 채택하도록 구성 가능한 것을 특징으로 하는 디코더(30).
- 인코딩 데이터(E2)를 생성하기 위한 제16항에 기재된 적어도 하나의 인코더(20)와, 상기 인코딩 데이터(E2)를 디코딩하기 위한 제17항에 기재된 적어도 하나의 디코더(30)를 포함하는 코덱(10).
- 비일시적 데이터 저장 매체(60, 70) 상에 기록된 소프트웨어 제품에 있어서, 상기 소프트웨어 제품은 제1항에 기재된 방법 및/또는 제12항에 기재된 방법을 실행하기 위해 컴퓨팅 하드웨어(40, 50) 상에서 실행 가능한 것을 특징으로 하는 소프트웨어 제품.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1312818.6A GB2516426B (en) | 2013-07-17 | 2013-07-17 | Encoder, decoder and method of operation using interpolation |
GB1312818.6 | 2013-07-17 | ||
PCT/EP2014/001950 WO2015007390A1 (en) | 2013-07-17 | 2014-07-17 | Encoder, decoder and method of operation using interpolation |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20160033714A true KR20160033714A (ko) | 2016-03-28 |
KR102113904B1 KR102113904B1 (ko) | 2020-05-22 |
Family
ID=49081434
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020167003289A KR102113904B1 (ko) | 2013-07-17 | 2014-07-17 | 보간을 이용한 연산 방법, 인코더, 및 디코더 |
Country Status (7)
Country | Link |
---|---|
US (1) | US10178388B2 (ko) |
EP (1) | EP3022844A1 (ko) |
KR (1) | KR102113904B1 (ko) |
CN (1) | CN105794116A (ko) |
GB (1) | GB2516426B (ko) |
RU (1) | RU2683614C2 (ko) |
WO (1) | WO2015007390A1 (ko) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2552223B (en) | 2016-07-15 | 2020-01-01 | Gurulogic Microsystems Oy | Encoders, decoders and methods employing quantization |
DE102016123731B4 (de) * | 2016-12-07 | 2019-03-21 | Pixelrunner GmbH | Roboter zum Drucken von Bildern auf Bodenflächen |
WO2018225593A1 (ja) * | 2017-06-05 | 2018-12-13 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 符号化装置、復号装置、符号化方法および復号方法 |
US11503311B2 (en) * | 2019-03-08 | 2022-11-15 | Sony Group Corporation | Hybrid palette-DPCM coding for image compression |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101547742B1 (ko) * | 2011-01-05 | 2015-08-26 | 퀄컴 인코포레이티드 | 적응적 탭 사이즈를 갖는 저 복잡도 보간 필터링 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2003237279A1 (en) * | 2002-05-29 | 2003-12-19 | Pixonics, Inc. | Classifying image areas of a video signal |
US8824553B2 (en) * | 2003-05-12 | 2014-09-02 | Google Inc. | Video compression method |
US7606429B2 (en) | 2005-03-25 | 2009-10-20 | Ati Technologies Ulc | Block-based image compression method and apparatus |
KR100772390B1 (ko) * | 2006-01-23 | 2007-11-01 | 삼성전자주식회사 | 방향 보간 방법 및 그 장치와, 그 보간 방법이 적용된부호화 및 복호화 방법과 그 장치 및 복호화 장치 |
CN101098473B (zh) * | 2006-06-30 | 2012-05-09 | 联想(北京)有限公司 | 一种图像编码方法及装置 |
US8233738B2 (en) * | 2007-07-30 | 2012-07-31 | Dolby Laboratories Licensing Corporation | Enhancing dynamic ranges of images |
RU2477577C2 (ru) | 2008-04-10 | 2013-03-10 | Квэлкомм Инкорпорейтед | Подобная интерполяции фильтрация положений целочисленных пикселей при видеокодировании |
WO2010063881A1 (en) * | 2008-12-03 | 2010-06-10 | Nokia Corporation | Flexible interpolation filter structures for video coding |
KR20110068792A (ko) * | 2009-12-16 | 2011-06-22 | 한국전자통신연구원 | 적응적 영상 부호화 장치 및 방법 |
JP2011151682A (ja) * | 2010-01-22 | 2011-08-04 | Sony Corp | 画像処理装置および方法 |
CN102098507B (zh) * | 2010-06-08 | 2013-12-25 | 同济大学 | 图像统合压缩方法及装置 |
EP2597957A2 (en) * | 2010-07-30 | 2013-06-05 | Bioworks, Inc. | Growth enhancement and control of bacterial and fungal plant diseases with streptomyces scopuliridis |
US9258573B2 (en) * | 2010-12-07 | 2016-02-09 | Panasonic Intellectual Property Corporation Of America | Pixel adaptive intra smoothing |
US9313519B2 (en) | 2011-03-11 | 2016-04-12 | Google Technology Holdings LLC | Interpolation filter selection using prediction unit (PU) size |
-
2013
- 2013-07-17 GB GB1312818.6A patent/GB2516426B/en active Active
-
2014
- 2014-07-17 RU RU2016101046A patent/RU2683614C2/ru active
- 2014-07-17 US US14/905,000 patent/US10178388B2/en active Active
- 2014-07-17 KR KR1020167003289A patent/KR102113904B1/ko active IP Right Grant
- 2014-07-17 WO PCT/EP2014/001950 patent/WO2015007390A1/en active Application Filing
- 2014-07-17 EP EP14766393.4A patent/EP3022844A1/en not_active Withdrawn
- 2014-07-17 CN CN201480051371.0A patent/CN105794116A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101547742B1 (ko) * | 2011-01-05 | 2015-08-26 | 퀄컴 인코포레이티드 | 적응적 탭 사이즈를 갖는 저 복잡도 보간 필터링 |
Also Published As
Publication number | Publication date |
---|---|
US20160142712A1 (en) | 2016-05-19 |
GB2516426A (en) | 2015-01-28 |
GB2516426B (en) | 2015-10-07 |
US10178388B2 (en) | 2019-01-08 |
EP3022844A1 (en) | 2016-05-25 |
RU2016101046A3 (ko) | 2018-06-09 |
RU2683614C2 (ru) | 2019-03-29 |
RU2016101046A (ru) | 2017-08-22 |
GB201312818D0 (en) | 2013-08-28 |
CN105794116A (zh) | 2016-07-20 |
KR102113904B1 (ko) | 2020-05-22 |
WO2015007390A1 (en) | 2015-01-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9258389B2 (en) | Encoder and method | |
US10333547B2 (en) | Encoder and method for encoding input data using a plurality of different transformations or combinations of transformations | |
CN106851271B (zh) | 动图像编码装置以及动图像编码方法 | |
JP6245888B2 (ja) | エンコーダおよび符号化方法 | |
JP5065272B2 (ja) | 画像圧縮に関する変換係数の予測 | |
TWI590662B (zh) | 解碼器及解碼方法 | |
US20100177819A1 (en) | Method and an apparatus for processing a video signal | |
CN104641643A (zh) | 在分层层级中信号编码、解码和重构期间残差数据的分解 | |
US20170070752A1 (en) | Decoder and method | |
RU2567988C2 (ru) | Кодер, способ кодирования данных, декодер, способ декодирования данных, система передачи данных, способ передачи данных и программный продукт | |
KR102113904B1 (ko) | 보간을 이용한 연산 방법, 인코더, 및 디코더 | |
US10244260B2 (en) | Encoder and decoder, and method of operation | |
KR20160034914A (ko) | 비변환 코딩을 위한 스캐닝 순서 조정 기법 | |
JP2015019364A (ja) | 画像圧縮装置及び方法 | |
US10536697B2 (en) | Method for re-encoding image and apparatus therefor | |
JP6846134B2 (ja) | 映像符号化装置及び映像復号装置 | |
EP2698996A2 (en) | Decoder and method | |
CN115474041A (zh) | 点云属性的预测方法、装置及相关设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right |