KR20150053830A - 인코더, 디코더 및 방법 - Google Patents

인코더, 디코더 및 방법 Download PDF

Info

Publication number
KR20150053830A
KR20150053830A KR1020130125991A KR20130125991A KR20150053830A KR 20150053830 A KR20150053830 A KR 20150053830A KR 1020130125991 A KR1020130125991 A KR 1020130125991A KR 20130125991 A KR20130125991 A KR 20130125991A KR 20150053830 A KR20150053830 A KR 20150053830A
Authority
KR
South Korea
Prior art keywords
data
encoding
encoded
decoding
portions
Prior art date
Application number
KR1020130125991A
Other languages
English (en)
Other versions
KR101687865B1 (ko
Inventor
오시 칼레보
토우마스 까르까이넨
Original Assignee
구루로직 마이크로시스템스 오이
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 구루로직 마이크로시스템스 오이 filed Critical 구루로직 마이크로시스템스 오이
Publication of KR20150053830A publication Critical patent/KR20150053830A/ko
Application granted granted Critical
Publication of KR101687865B1 publication Critical patent/KR101687865B1/ko

Links

Images

Classifications

    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/94Vector quantisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/005Statistical coding, e.g. Huffman, run length coding
    • 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/3059Digital compression and data reduction techniques where the original information is represented by a subset or similar information, e.g. lossy compression
    • 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/3066Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction by means of a mask or a bit-map
    • 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/60General implementation details not specific to a particular type of compression
    • H03M7/6017Methods or arrangements to increase the throughput
    • H03M7/6023Parallelization
    • 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/60General implementation details not specific to a particular type of compression
    • H03M7/6064Selection of Compressor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods 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/103Selection of coding mode or of prediction mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods 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/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods 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/127Prioritisation of hardware or computational resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/182Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel

Abstract

인코더(10)는 대응하는 인코딩된 데이터(70, E2)를 생성하기 위해 데이터(20, D1)를 인코딩한다. 인코더(10)는 인코딩될 데이터(20, D1)의 하나 이상의 부분(40)을 분석하고, 하나 이상의 부분(40)을 적절한 하나 이상의 인코딩 유닛(110)으로 다이렉팅하기 위한 분석 유닛(100)을 포함하고, 하나 이상의 인코딩 유닛(110)은 인코딩된 데이터(70, E2)를 생성하기 위해 거기서 하나 이상의 부분(40)을 인코딩하도록 동작 가능하다. 하나 이상의 인코딩 유닛(110)은 하나 이상의 부분(40)을 인코딩할 때 서로 상이한 인코딩 알고리즘을 채용하도록 동작 가능하다. 하나 이상의 인코딩 유닛(110) 중 적어도 하나의 인코딩 유닛[110(i)]은 거기서 수신된 각각의 부분(40) 내에 존재하는 데이터값을 컴퓨팅하고, 데이터값을 적어도 2개의 세트로 세분하고, 소정의 세트 내에 존재하는 데이터값으로부터 유도된 소정의 세트에 대한 적어도 하나의 집합체값을 컴퓨팅하도록 동작 가능하다. 부분(40)의 공간 마스크(320)를 유지하는 동안, 적어도 2개의 데이터를 위해 컴퓨팅된 집합체값을 표현하는 정보 및 공간 마스크(320)는 인코딩된 데이터(70, E2) 내에 포함된다. 인코더(10)에 의해 생성된 데이터(70)를 디코딩하기 위한 대응 디코더(25)가 인코더(10)에 채용된 인코딩 단계의 역을 실행한다. 인코더(10) 및/또는 디코더(25)는 예를 들어 맞춤형 디지털 집적 회로, 필드-프로그램 가능 게이트 어레이(FPGA) 등과 같은 전용 전자 하드웨어를 사용하여 유리하게 구현된다. 대안적으로 또는 부가적으로, 인코더(10) 및/또는 디코더(25)는 비일시적 머신 판독 가능 데이터 저장 매체 상에 저장된 하나 이상의 소프트웨어 제품을 데이터 메모리와 데이터 통신하여 결합된 컴퓨팅 하드웨어 상에서 실행함으로써 구현될 수 있다. 선택적으로, 컴퓨팅 하드웨어는 고속 축소 명령 세트(RISC) 프로세서로서 구현된다.

Description

인코더, 디코더 및 방법 {ENCODER, DECODER AND METHOD}
본 발명은 대응 인코딩된 데이터(E2)를 생성하기 위해, 예를 들어 정지 화상(still image), 비디오 콘텐트, 그래픽 콘텐트, 오디오 콘텐트, 측정 데이터 등과 같은 다양한 콘텐트에 대응하는 데이터(D1)를 인코딩하기 위한 인코더에 관한 것이다. 더욱이, 본 발명은 대응 인코딩된 데이터(E2)를 생성하기 위해, 예를 들어 정지 화상, 비디오 콘텐트, 그래픽 콘텐트, 오디오 콘텐트, 특정 데이터 등과 같은 다양한 콘텐트에 대응하는 데이터(D1)를 인코딩하는 방법에 관한 것이다. 더욱이, 본 발명은 상기 인코더에 의해 생성된 인코딩된 포맷의 데이터(E2)를 디코딩하기 위한 디코더에 관한 것이다. 부가적으로, 본 발명은 상기 인코더에 의해 생성된 데이터(E2)를 인코딩하는 방법에 관한 것이다. 또한 부가적으로, 본 발명은 비일시적 머신 판독 가능 데이터 저장 매체 상에 기록된 소프트웨어 제품에 관한 것으로서, 소프트웨어 제품은 전술된 방법을 구현하기 위한 컴퓨팅 하드웨어 상에서 실행 가능하다.
인코딩된 데이터(E2)를 생성하기 위해 데이터(D1)를 인코딩하고, 또한 디코딩된 데이터(D3)를 생성하기 위해 인코딩된 데이터(E2)를 디코딩하는 다수의 현재 공지된 방법이 존재한다. 그럼에도 불구하고, 예를 들어 정지 화상, 비디오 콘텐트, 오디오 콘텐트 또는 그래픽 데이터와 같은, 인코딩될 데이터(D1)에 의해 표현된 광범위한 콘텐트에 적합한 데이터를 인코딩하는 방법이 결여되어 있다. 이러한 인코딩은 인코딩될 대응 데이터(D1)보다 더 치밀한 인코딩된 데이터(E2)를 생성하는 것을 그 주 목적으로 한다. 더욱이, 이러한 인코딩된 데이터(E2)를 디코딩하기 위한 대응 디코더가 또한 결여되어 있다.
JPEG["Joint Photographic Experts Group(합동 사진 전문가 그룹)", 즉 손실 DCT 기반 코딩, 여기서 "DCT"는 이산 코사인 변환의 약어임], JPEG2000("Joint Photographic Experts Group", 즉 웨이블릿 기반 인코딩) 및 WebP(인코딩 중에 손실 및 무손실 압축의 모두를 채용하는 화상 포맷 인코딩)와 같은 화상 인코딩 방법은 자연 화상 콘텐트를 압축하기 위해 양호하게 적용되는 것으로 알려져 있지만, 그 컬러가 단지 몇 개의 컬러값만에 의해 묘사되고 그 콘텐트가 비교적 높은 공간 주파수 성분을 갖는 텍스트 또는 화상을 압축하는 데 덜 적합하다. 데이터를 인코딩하는 대안적인 공지의 방법은 GIF["Graphics Interchange Format(그래픽 교환 포맷)"]라 칭하고, 예를 들어 256개의 컬러값과 같은 화상을 렌더링하는 데 요구되는 비교적 적은 수의 컬러값으로 제시될 수 있는 화상을 인코딩하는 데 양호하게 적용되는 팔레트 기반 압축 알고리즘을 채용하지만, GIF 알고리즘에 의해 인코딩될 화상이 미묘한 공간 점진적인 컬러 변동을 갖는 자연 물체를 포함하면, GIF는 대응 디코딩된 GIF 화상에서 눈에 띄는 바람직하지 않은 아티팩트(artefact)를 생성한다. 공지의 현재의 PNG 인코딩["Portable Networks Graphics(휴대용 네트워크 그래픽)", 무손실 인코딩]은 일반적으로 GIF 인코딩과 유사하고 화상 데이터를 인코딩하기 위한 더 많은 옵션을 제공하지만, 그럼에도 불구하고 작은 범위의 컬러값을 포함하는 화상에 대해 양호하게 적용되지 않는다. 다른 공지의 인코딩 방법은 인코딩 문자와 조합하여 OCR["Optical Character Recognition(광학 문자 인식)"]을 사용하는 텍스트 인코딩을 채용하는 것인데, OCR은 때때로 채용하기에 적절한 방법이지만, 화상 내의 텍스트의 포지셔닝, 화상 내의 텍스트의 틸팅, 텍스트의 전방 및 또한 텍스트가 위치되어 있는 물체에 민감하고, 부가적으로 OCR은 잠재적으로 그 구현을 위해 상당한 프로세싱 전력을 요구할 수 있다.
더 최근에, 과학 출판물은 2-레벨 블록 데이터 시퀀스 포맷에 있는 데이터를 인코딩하기에 적합한 또 다른 대안적인 인코딩 방법을 제안하고 있는 데, 이들 과학 출판물의 상세가 표 1에 제공되어 있다.
2-레벨 블록 데이터 시퀀스 포맷의 데이터를 인코딩하기 위한 인코딩 방법
출판물의 제목 저자 출판 상세
"성긴 분포를 갖는 데이터 시퀀스를 인코딩하기 위한 2-레벨 블록 코딩" Li Tan 및 Jean Jiang Proceedings of the 2008 IAJC-IJME 국제 회의, International Journal of Modern Engineering(IJME), 논문 185, ENT 201.
ISBN 978-60643-379-9
"효율적인 전송 및 저장을 위한 파형 데이터의 무손실 압축" S.D. Searms, L. Tan 및 N. Magotra IEEE Transcations on Geoscience and Remote Sensing,
Vol. 31, no.3, pp 645-654,
1993년 5월
"성긴 2진 패턴을 인코딩하기 위한 블록 코딩 기술" G. Zeng 및 N. Ahmed IEEE Transactions on Acoustics, Speech and Signal Processing,
Vol.37, no.5, pp 778-780,
1989년 5월
전술된 공지의 데이터 인코딩 방법 및 이러한 인코딩된 데이터를 디코딩하는 대응하는 공지의 디코딩 방법은, 공지의 방법들이 광범위한 서로 상이한 접근법을 채용함에도 불구하고, 데이터에 의해 표현된 광범위한 콘텐트를 위해 양호하게 적용되지 않는다. 향상된 데이터 압축을 제공하기 위한 더 효율적인 인코딩 알고리즘을 진화시키기 위한 수년간에 걸친 상당한 연구, 즉 스트리밍된 비디오 콘텐트를 취급하는 통신 시스템에 대한 큰 중요성의 논점에도 불구하고, 최적의 인코딩 방법이 아직 안출되어 있지 않다.
미국 특허 US 6,151,409호["컴퓨터 시스템에서 컬러 화상을 압축하고 재구성하기 위한 방법(Methods for Compressing and Reconstructing a Color Image in a Computer System)": 출원인 - 타이완, 타이페이 소재의 National Science Council]에는, 통상의 블록 절단 코딩(block truncation coding: BTC)이 원본 화상을 인코딩하는 기능을 하는 시각적 블록 패턴 절단 코딩(VBPIC)을 채용함으로써, 컬러 화상을 압축하는 방법이 개시되어 있다. 이 방법은 인간 시각적 지각에 따라 에지 블록을 규정한다. 블록 내의 BTC의 2개의 양자화된 값들 사이의 차이가 시각적 특성에 의해 규정된 임계값보다 큰 경우에, 블록은 에지 블록으로서 식별될 것이다. 에지 블록에서, 비트맵은 블록 구배 배향을 컴퓨팅하고 블록 패턴을 정합하도록 적용된다.
이 방법은 단지 90°또는 45°의 각도에서 DC 레벨 또는 클리어 에지를 더 포함하는 단지 4×4 블록만을 포함하는 화상에만 겨우 적합하다. 더욱이, 이 방법은 노이즈를 제거하는 것이 가능하고, 또는 마스크가 타겟에 정확하게 타격하지 않을 때 상세를 제거하는 것이 가능하다. 더욱이, 이 방법은 텍스트 또는 텍스처를 코딩하기에 전혀 적합하지 않고, 직선으로 표현될 수 없는 또는 45°의 배수와는 상이한 방향을 갖는 패턴을 코딩하기에 적합하지 않다.
공개된 미국 특허 US 5,668,932호["디지털 비디오 데이터 압축 기술(Digital Video Data Compression Technique)", 출원인 - Microsoft Corporation]에는, 종래의 블록 압축 기술에 대한 향상된 압축을 제공하는 디지털 비디오 데이터를 압축하기 위한 대안적인 기술이 설명되어 있다. 대안적인 기술에서, 화상 데이터는 셀로 분해되고 반복적으로 압축된다. 셀은 셀의 콘텐트를 위해 가장 적절한 압축 포맷을 사용하여 압축된다. 셀이 이전의 프레임 내의 후속의 셀에 실질적으로 동일한지 여부에 대한 판정이 먼저 이루어진다. 셀이 이전의 프레임 내의 셀에 실질적으로 동일하면, 셀은 이전의 셀의 복제본으로서 압축된 형태로 인코딩된다. 더욱이, 솔리드 컬러(solid color) 압축 접근법 및 8색 압축 접근법이 압축 기술에 통합될 수도 있다.
따라서, 이 방법은 각각의 블록, 셀 또는 서브-블록에 대해, 프로세싱되고 있는 소정의 화소가 더 높은 값, 즉 더 밝은 화소에 속하는지 또는 더 낮은 값, 즉 더 흐린 화소인지 여부를 시사하는 비트 마스크를 사용한다. 더욱이, 방법은 전체 화상을 인코딩하려고 시도한다.
공개된 PCT 출원 WO 00/19374호["4-레벨 블록 코딩에 의한 화상 데이터의 압축 및 압축 해제(Compressing and Decompression Image Data with 4-level Block Coding)", 출원인 - Silicon Graphics Inc.]에는, 화상 데이터를 압축하고 압축 해제하기 위한 방법 및 장치가 설명되어 있다. 선택적으로, 컬러 셀을 압축하는 방법은
(i) 컬러 셀의 적어도 4개의 휘도 레벨을 규정하는 단계,
(ii) 컬러 셀을 위한 비트마스크를 생성하는 단계로서, 비트마스크는 화소의 각각의 것에 각각 대응하는 복수의 엔트리를 갖고, 각각의 엔트리는 화소의 대응하는 것과 연계된 것 또는 휘도 레벨들을 식별하는 데이터를 저장하기 위한 것인, 비트마스크 생성 단계,
(iii) 휘도 레벨들 중 첫번째 것과 연계된 화소의 제1 평균 컬러를 계산하는 단계,
(iv) 휘도 레벨들 중 두번째 것과 연계된 화소의 제2 평균 컬러를 계산하는 단계, 및
(v) 제1 평균 컬러 및 제2 평균 컬러와 연계하여 비트마스크를 저장하는 단계를 포함한다.
선택적으로, 컬러 셀은 4×4 화소의 매트릭스를 포함하고, 비트마스크는 32-비트를 포함하고, 각각의 컬러값은 16-비트를 포함하여, 화소당 4-비트의 압축율이 성취 가능하게 된다. 이 방법은 텍스처 데이터를 압축하도록 적용 가능하여, 텍스처 데이터가 텍스처 맵핑 중에 더 효율적으로 캐시되고 이동되는 것이 가능하게 되고, 휘도의 압축, 강도 및 알파 텍스처가 또한 성취 가능하게 된다.
더욱이, 전술된 공지의 코딩 방법들은 넓은 스펙트럼의 유형의 데이터에 대해 이들 방법들을 부적합하게 하는 다양한 단점을 갖는다.
본 발명은 대응하는 인코딩된 데이터(E2), 예를 들어 그 대응하는 비인코딩된 데이터(D1)에 대해 압축되는 인코딩된 데이터(E2)를 생성하기 위해 데이터(D1)를 인코딩하는 개량된 인코딩 방법을 제공하는 것을 추구한다.
더욱이, 본 발명은 또한 대응하는 인코딩된 데이터(E2), 예를 들어 그 대응하는 비인코딩된 데이터(D1)에 대해 압축되는 인코딩된 데이터(E2)를 생성하기 위해 데이터(D1)를 인코딩하는 개량된 인코딩 방법을 채용하는 인코더를 제공하는 것을 추구한다.
더욱이, 본 발명은 본 발명에 따른 인코더로부터 생성된 데이터(E2)를 디코딩하는 개량된 디코딩 방법을 제공하는 것을 추구한다.
부가적으로, 본 발명은 본 발명에 따른 인코더로부터 생성된 데이터(E2)를 디코딩하기 위한 개량된 디코더를 제공하는 것을 추구한다.
제1 양태에 따르면, 첨부된 청구항 1에 청구된 바와 같은 인코더가 제공되는 데, 대응하는 인코딩된 데이터(E2)를 생성하기 위해 데이터(D1)를 인코딩하기 위한 인코더에 있어서,
인코딩될 데이터(D1)의 하나 이상의 부분을 분석하고, 하나 이상의 부분을 적절한 하나 이상의 인코딩 유닛으로 다이렉팅(directing)하기 위한 분석 유닛으로서, 하나 이상의 인코딩 유닛은 인코딩된 데이터를 생성하기 위해 거기서 하나 이상의 부분을 인코딩하도록 동작 가능한 것인 분석 유닛을 포함하고,
하나 이상의 인코딩 유닛은 하나 이상의 부분을 인코딩할 때 서로 상이한 인코딩 알고리즘을 채용하도록 동작 가능하고,
하나 이상의 인코딩 유닛의 적어도 하나의 인코딩 유닛은 거기서 수신된 각각의 부분 내에 존재하는 데이터값을 컴퓨팅하고, 데이터값을 적어도 2개의 세트로 세분하고, 소정의 세트 내에 존재하는 데이터값으로부터 유도된 소정의 세트에 대한 적어도 하나의 집합체값을 컴퓨팅하도록 동작 가능하고, 부분의 공간 마스크를 유지하는 동안, 적어도 2개의 데이터를 위해 컴퓨팅된 집합체값을 표현하는 정보 및 공간 마스크는 인코딩된 데이터(E2) 내에 포함되는 것을 특징으로 하는 인코더가 제공된다.
본 발명은 인코더가 인코딩될 데이터(D1) 내에 존재하는 특정 유형의 콘텐트의 효율적인 인코딩을 제공하는 인코더로부터 인코딩된 데이터(E2) 내의 포함을 위해 인코딩될 데이터(D1)의 부분의 레이아웃을 규정하는 마스크 및 세트의 집합체값을 컴퓨팅하도록 동작 가능하다는 장점을 갖는다.
선택적으로, 인코더는 하나 이상의 인코딩 유닛으로부터 인코딩된 출력 데이터를 수신하고 인코더로부터 인코딩된 데이터를 생성하도록 이 인코딩된 출력 데이터를 추가로 인코딩하기 위한 출력 인코더 유닛을 포함한다.
선택적으로, 인코더는 인코딩될 데이터(D1)가 하나 이상의 부분 내에 미리 포함되어 있지 않을 때, 하나 이상의 부분을 생성하도록 인코딩될 데이터(D1)를 세분하고 그리고/또는 조합하기 위한 입력 스테이지를 더 포함한다.
선택적으로, 인코더에서, 하나 이상의 인코딩 유닛의 적어도 하나의 인코딩 유닛은 각각의 부분 내에 존재하는 데이터값을 2 내지 8개의 데이터 세트, 또는 2개 이상의 데이터 세트 범위로 세분하도록 동작 가능하다.
선택적으로, 인코더는 인코더에 의해 생성된 인코딩된 데이터(E2)를 디코딩할 때 하나 이상의 디코더에 의한 액세스를 위해 원격 데이터베이스 내의 하나 이상의 부분의 하나 이상의 마스크를 표현하는 정보를 저장하도록 동작 가능하다.
선택적으로, 인코더에서, 적어도 하나의 집합체값은 산술 평균, 불균제 평균(skewed average), 로그함수 평균, 가중 평균, 평균값, 최소값, 최대값, 모드값 또는 중간값이다. 예를 들어, 복잡한 수학적 함수의 컴퓨팅된 결과, 예를 들어 집합된 결과의 형태를 제공하는 다항식 연산과 같은 다른 유형의 연산이 또한 가능하다. 예를 들어, 다른 유형의 연산의 일 예는 최대값과 최소값의 평균값과 원래값 사이의 거리를 최소화하는 방식으로 원래 데이터 세트값을 선택하는 것을 수반한다. 이 종류의 집합체값은 데이터 세트 내의 최대 에러를 최소화하고, 종종 또한 작은 MSE를 생성한다.
제2 양태에 따르면, 대응하는 인코딩된 데이터(E2)를 생성하기 위해 데이터(D1)를 인코딩하는 데이터 인코딩 방법에 있어서,
(a) 인코딩될 데이터(D1)의 하나 이상의 부분을 분석하고, 하나 이상의 부분을 적절한 하나 이상의 인코딩 유닛으로 다이렉팅하기 위한 분석 유닛을 사용하는 것으로서, 하나 이상의 인코딩 유닛은 인코딩된 데이터(E2)를 생성하기 위해 거기서 하나 이상의 부분을 인코딩하도록 동작 가능하고, 하나 이상의 인코딩 유닛은 하나 이상의 부분을 인코딩할 때 서로 상이한 인코딩 알고리즘을 채용하도록 동작 가능한 것인, 분석 유닛을 사용하는 것과,
(b) 거기서 수신된 각각의 부분 내에 존재하는 데이터값을 컴퓨팅하고, 데이터값을 적어도 2개의 세트로 세분하고, 소정의 세트 내에 존재하는 데이터값으로부터 유도된 소정의 세트에 대한 적어도 하나의 집합체값을 컴퓨팅하기 위해 하나 이상의 인코딩 유닛의 적어도 하나의 인코딩 유닛을 사용하는 것으로서, 부분의 공간 마스크를 유지하는 동안, 적어도 2개의 데이터를 위해 컴퓨팅된 집합체값을 표현하는 정보 및 공간 마스크는 인코딩된 데이터(E2) 내에 포함되는 것인, 적어도 하나의 인코딩 유닛을 사용하는 것을 포함하는 것을 특징으로 하는 데이터 인코딩 방법이 제공된다.
선택적으로, 방법은 하나 이상의 인코딩 유닛으로부터 인코딩된 출력 데이터를 수신하고 인코딩된 데이터(E2)를 생성하도록 이 인코딩된 출력 데이터를 추가로 인코딩하기 위한 출력 인코더 유닛을 사용하는 것을 포함한다.
선택적으로, 방법은 각각의 부분 내에 존재하는 데이터값을 2 내지 8개의 데이터 세트, 또는 2개 이상의 데이터 세트 범위로 세분하기 위해 하나 이상의 인코딩 유닛의 적어도 하나의 인코딩 유닛을 사용하는 것을 포함한다.
선택적으로, 방법은 인코딩된 데이터(E2)를 디코딩할 때 하나 이상의 디코더에 의한 액세스를 위해 원격 데이터베이스 내의 하나 이상의 부분의 하나 이상의 마스크를 표현하는 정보를 저장하는 것을 포함한다.
선택적으로, 방법에서, 인코딩된 데이터(E2)는 추가로 인코딩/압축된다. 더 선택적으로, 방법에서, 추가의 인코딩 및/또는 압축은 DPCM["Differential pulse-code modulation(차등 펄스-코드 변조)"], RLE["Run-length encoding(실행-길이 인코딩)"], SRLE["Split run-length encoding(분할 실행-길이 인코딩)", 2013년 3월 1일 Gurulogic Microsystem Oy에 의해 출원된 GB1303660.3호에 개시된 방법], EM["Entropy Modifier(엔트로피 수정자)", 2013년 3월 1일 Gurulogic Microsystem Oy에 의해 출원된 GB1303658.7호에 개시된 방법], 산술 코딩, 델타 코딩, ODelta 코딩(2013년 3월 1일 Gurulogic Microsystem Oy에 의해 출원된 GB1303661.1호에 개시된 방법), VLC["Variable-length coding(가변-길이 코딩)"], 렘펠-지브(Lempel-Ziv) 코딩법(ZLIB, LZO, LZSS, LZ77), 버로우-휠러(Burrow-Wheeler) 변환 기반 코딩법(RLE, BZIP2) 및 허프만(Huffman) 코딩 중 적어도 하나를 포함한다.
제3 양태에 따르면, 대응하는 디코딩된 데이터(D3)를 생성하기 위해 인코딩된 데이터(E2)를 디코딩하기 위한 디코더에 있어서,
인코딩된 데이터(E2)의 하나 이상의 부분을 전달하고, 하나 이상의 부분을 적절한 하나 이상의 디코딩 유닛으로 다이렉팅하기 위한 전달 유닛으로서, 하나 이상의 디코딩 유닛은 디코딩된 데이터(D3)를 생성하기 위해 거기서 하나 이상의 부분(40)을 디코딩하도록 동작 가능한 것인 분석 유닛을 포함하고,
하나 이상의 디코딩 유닛의 적어도 하나는 인코딩된 데이터(E2) 내에 포함된 적어도 2개의 데이터 세트를 위한 집합체값을 표현하는 정보 및 공간 마스크를 추출하고, 세트 중 어느 세트에 요소가 마스크에 의해 규정된 바와 같이 속하는지에 따라 데이터 블록 내의 요소에 값을 할당하기 위해 동작 가능한 것을 특징으로 하는 디코더가 제공된다.
선택적으로, 디코더는 하나 이상의 디코딩 유닛으로부터 디코딩된 출력 데이터를 수신하고 디코더로부터 총 디코딩된 데이터를 생성하도록 이들 디코딩된 출력 데이터를 추가로 조합하기 위한 출력 디코더 유닛을 포함한다.
선택적으로, 디코더는 인코딩된 데이터 내에 존재하는 파라미터를 인코딩함으로써 규정된 바와 같이 하나 이상의 디코딩 유닛으로 다이렉팅하기 위해 하나 이상의 부분을 인코딩된 데이터(E2)로부터 추출하기 위한 입력 스테이지를 더 포함한다.
선택적으로, 디코더에서, 하나 이상의 디코딩 유닛 중 적어도 하나는 데이터 세트에 대응하는 마스크의 요소에 값을 할당하도록 동작 가능하고, 2 내지 8개의 데이터 세트, 또는 2개 이상의 데이터 세트 범위가 존재한다. 예를 들어, 8개의 데이터 세트가 선택적으로 8-비트 2진 데이터에 대해 사용된다.
선택적으로, 디코더는 인코더에 의해 생성된 인코딩된 데이터(E2)를 디코딩할 때 원격 데이터베이스로부터 하나 이상의 부분의 하나 이상의 마스크를 표현하는 정보를 검색하도록 동작 가능하다.
선택적으로, 디코더는, 집합체값이 산술 평균, 불균제 평균, 로그함수 평균, 가중 평균, 평균값, 최소값, 최대값, 모드값 또는 중간값 중 적어도 하나가 되도록 구현된다. 예를 들어, 복잡한 수학적 함수의 컴퓨팅된 결과, 예를 들어 집합된 결과의 형태를 제공하는 다항식 연산과 같은 다른 유형의 연산이 또한 가능하다. 예를 들어, 다른 유형의 연산의 일 예는 최대값과 최소값의 평균값과 원래값 사이의 거리를 최소화하는 방식으로 원래 데이터 세트값을 선택하는 것을 수반한다. 이 종류의 집합체값은 데이터 세트 내의 최대 에러를 최소화하고, 종종 또한 작은 MSE를 생성한다.
제4 양태에 따르면, 대응하는 디코딩된 데이터(D3)를 생성하기 위해 인코딩된 데이터(E2)를 디코딩하는 디코딩 방법에 있어서,
(a) 인코딩된 데이터(E2)의 하나 이상의 부분을 전달하고, 하나 이상의 부분을 적절한 하나 이상의 디코딩 유닛으로 다이렉팅하기 위한 전달 유닛을 사용하는 것으로서, 하나 이상의 디코딩 유닛은 디코딩된 데이터(D3)를 생성하기 위해 거기서 하나 이상의 부분을 디코딩하도록 동작 가능한 것인 분석 유닛을 사용하는 것과,
(b) 인코딩된 데이터(E2) 내에 포함된 적어도 2개의 데이터 세트에 대해 컴퓨팅된 집합체값을 표현하는 정보 및 공간 마스크를 추출하고, 세트 중 어느 세트에 요소가 마스크에 의해 규정된 바와 같이 속하는지에 따라 데이터 블록 내의 요소에 값을 할당하기 위해 하나 이상의 디코딩 유닛의 적어도 하나의 디코딩 유닛을 사용하는 것을 포함하는 것을 특징으로 하는 디코딩 방법이 제공된다.
선택적으로, 방법은 하나 이상의 디코딩 유닛으로부터 디코딩된 데이터를 수신하고 총 디코딩된 데이터(D3)를 생성하도록 이들 디코딩된 출력 데이터를 추가로 조합하기 위한 출력 디코더 유닛을 사용하는 것을 포함한다.
선택적으로, 방법은 인코딩된 데이터(E2) 내에 존재하는 파라미터를 인코딩함으로써 규정된 바와 같이 하나 이상의 디코딩 유닛으로 다이렉팅하기 위해 하나 이상의 부분을 인코딩된 데이터(E2)로부터 추출하기 위한 입력 스테이지를 사용하는 것을 더 포함한다.
선택적으로, 방법에서, 하나 이상의 디코딩 유닛의 적어도 하나의 디코딩 유닛은 데이터 세트에 대응하는 마스크의 요소에 값을 할당하도록 동작 가능하고, 2 내지 8개의 데이터 세트, 또는 2개 이상의 데이터 세트 범위가 존재한다. 이러한 예는 8-비트 2진 데이터에 유리하게 사용되지만, 추가의 16-비트, 32-비트 등의 2진 데이터가 선택적으로 사용된다.
선택적으로, 방법은 인코더에 의해 생성된 인코딩된 데이터를 디코딩할 때 원격 데이터베이스로부터 하나 이상의 부분의 하나 이상의 마스크를 표현하는 정보를 검색하는 것을 포함한다.
선택적으로, 방법을 사용할 때, 적어도 하나의 집합체값은 산술 평균, 불균제 평균, 로그함수 평균, 가중 평균, 평균값, 최소값, 최대값, 모드값 또는 중간값 중 적어도 하나이다. 예를 들어, 복잡한 수학적 함수의 컴퓨팅된 결과, 예를 들어 집합된 결과의 형태를 제공하는 다항식 연산과 같은 다른 유형의 연산이 또한 가능하다. 예를 들어, 다른 유형의 연산의 일 예는 최대값과 최소값의 평균값과 원래값 사이의 거리를 최소화하는 방식으로 원래 데이터 세트값을 선택하는 것을 수반한다. 이 종류의 집합체값은 데이터 세트 내의 최대 에러를 최소화하고, 종종 또한 작은 MSE를 생성한다.
제5 양태에 따르면, 데이터(D1)를 인코딩하고 대응하는 인코딩된 데이터(E2)를 생성하기 위한 제1 양태에 따른 적어도 하나의 인코더를 포함하고, 디코딩된 데이터(D3)를 생성하기 위해 인코딩된 데이터(E2)를 디코딩하기 위한 제3 양태에 따른 적어도 하나의 디코더를 포함하는 데이터 통신 시스템이 제공된다.
제6 양태에 따르면, 제6 양태에 따른 데이터 통신 시스템에서 데이터의 통신 방법이 제공되고, 데이터의 통신 방법은 제2 양태에 따른 방법과 제4 양태에 따른 방법의 조합을 이용한다.
제7 양태에 따르면, 비일시적 머신 판독 가능 데이터 저장 매체 상에 기록된 소프트웨어 제품에 있어서, 소프트웨어 제품은 제2 양태에 따른 방법을 실행하기 위한 컴퓨팅 하드웨어 상에서 실행 가능한 것을 특징으로 하는 소프트웨어 제품이 제공된다.
제8 양태에 따르면, 비일시적 머신 판독 가능 데이터 저장 매체 상에 기록된 소프트웨어 제품에 있어서, 소프트웨어 제품은 제4 양태에 따른 방법을 실행하기 위한 컴퓨팅 하드웨어 상에서 실행 가능한 것을 특징으로 하는 소프트웨어 제품이 제공된다.
본 발명의 특징은 첨부된 청구범위에 의해 규정된 바와 같은 발명의 범주로부터 벗어나지 않고 다양한 조합으로 조합되는 것이 가능하다는 것이 이해될 수 있을 것이다.
본 발명의 실시예가 이제 이하의 도면을 참조하여 단지 예로서만 설명될 것이다.
도 1은 인코더 및 디코더의 도면.
도 2a는 데이터를 인코딩하는 방법을 구현하기 위한 인코더의 개략도.
도 2b는 본 발명에 따라 인코딩되어 있는 데이터(E2)를 디코딩하는 방법을 구현하기 위한 디코더의 개략도.
도 3은 도 2a의 인코더의 제2 인코딩 스테이지의 개략도.
도 4는 도 2a의 인코더의 제2 인코딩 스테이지에서 인코딩을 위한, 데이터 블록, 즉 부분으로 화상 데이터를 세분하는 도면.
도 5는 도 2a의 인코더를 사용하여 인코딩될 데이터 블록의 도면.
도 6은 도 5의 데이터 블록을 표현하도록 채용된 레벨의 세트에 대한 집합체값의 연산 후에, 도 5의 데이터 블록을 위한 마스크의 도면.
도 7은 도 2a의 인코더에 의해 생성된 인코딩된 데이터로부터 유도된 재생성된 인코딩된 데이터 블록의 도면.
첨부 도면에서, 밑줄친 도면 부호는 밑줄친 도면 부호가 그 위에 위치된 아이템 또는 밑줄친 도면 부호가 그에 인접한 아이템을 표현하기 위해 채용된다. 밑줄이 없는 도면 부호는 밑줄이 없는 도면 부호를 아이템에 연결하는 라인에 의해 식별된 아이템에 관련된다. 도면 부호가 밑줄이 없고 연계된 화살표를 동반하면, 밑줄이 없는 도면 부호는 화살표가 지시하는 일반적인 아이템을 식별하는 데 사용된다.
개략적으로, 본 발명은 대응하는 인코딩된 데이터(E2)를 생성하기 위해 데이터(D1)를 인코딩하는 개량된 방법에 관련되고, 이 방법은 향상된 정도의 코딩 효율을 제공하는 것이 가능하다. 개량된 방법은 예를 들어 정지 화상, 비디오 콘텐트, 그래픽 콘텐트, 오디오 콘텐트, ECG("심전도"), 지진 데이터 등과 같은, 인코딩될 데이터(D1) 내에 표현된 광범위한 콘텐트를 효율적으로 코딩하는 것이 가능하다.
도 1을 참조하면, 본 발명에 따른 방법을 사용하여 데이터(20)(D1)를 인코딩하도록 동작 가능한 인코더(10)의 도면이 제공되어 있다. 인코더(10)는 하나 이상의 디코더(25)에서 후속의 디코딩을 위해 저장되고 그리고/또는 스트리밍될 수 있는 인코딩된 데이터(70)(E2)를 생성한다. 하나 이상의 디코더(25)가 하나 이상의 사용자에 의한 소비를 위해 대응하는 디코딩된 데이터(75)(D3)를 생성하도록 동작 가능하다. 디코딩된 데이터(75)(D3)는 선택적으로 비인코딩된 데이터(20)(D1)에 실질적으로 대응한다. 적어도 하나의 인코더(10)와 적어도 하나의 대응 디코더(25)의 조합은 일반적으로 도면 부호 5로 지시된 데이터 통신 시스템, 즉 코덱 배열을 형성한다.
도 2a를 참조하면, 본 발명에 따른 방법을 사용하여 데이터(20)(D1)를 인코딩하도록 동작 가능한 인코더(10)의 도면이 제공되어 있다. 인코더(10)는 인코딩될 데이터(20)(D1)를 데이터 블록(40)으로 분할하는 제1 스테이지(30)를 채용하고, 데이터(20)(D1)가 미리 데이터 블록 포맷에 있지 않으면, 인코딩될 데이터(20)(D1)의 이러한 분할은 선택적으로 데이터 블록(40)이 데이터 블록(40) 내에 포함된 데이터 콘텐트의 성질에 따라, 서로 상이한 크기, 즉 불균일하게 하는 데, 이는 대응하는 데이터 블록으로의 데이터(D1)의 균일한 분할을 채용하는 다수의 공지의 인코딩 알고리즘과는 구별된다. 제2 스테이지(50)에서, 인코더(10)는 분석 유닛(100) 및 다양한 유형의 인코딩 알고리즘을 채용하는 복수의 인코딩 유닛[110(1) 내지 110(n)]을 포함하고, 여기서 인코딩 알고리즘은 서로 상이하고, 인코딩 알고리즘의 일부는 공지된 알고리즘, 예를 들어 DCT일 수 있지만 이들에 한정되는 것은 아니고, 여기서 인코딩 유닛[110(1) 내지 110(n)]은 각각의 데이터 블록(40)을 프로세싱하기 위해 선택적으로 사용된다. 인코딩 유닛[110(1) 내지 110(n)]에 채용된 알고리즘의 일부는 서로 실질적으로 유사하지만, 병렬 방식으로 일시적으로 실행된다는 것이 이해될 수 있을 것이다. 인코딩 유닛[110(1) 내지 110(n)] 중 적어도 하나는 그 데이터 블록(40) 내에 존재하는 데이터를 적어도 2개의 레벨로 분류하고, 뿐만 아니라 데이터 블록(40) 내의 어느 데이터값이 어느 대응하는 레벨에 속하는지를 설명하는 마스크 또는 마스크들을 생성하고, 뿐만 아니라 각각의 레벨, 예를 들어 평균값, 평균치 등으로 분류된 데이터의 집합체값을 컴퓨팅하도록 동작 가능하다. 마스크는 유리하게는 공간 비트맵으로서 구현된다. 제3 스테이지(60)는 비트맵 뿐만 아니라 각각의 레벨을 위한 집합체값을 압축하여 인코더(10)로부터 인코딩된 데이터(70)(E2)를 생성하는 것을 수반하고, 상이한 압축 알고리즘, 예를 들어 RLE["실행 길이 인코딩"], DPCM("차등 펄스 코드 변조"], VLC("가변 길이 코딩"), SRLE, EM(엔트로피 수정자), ODelta 코딩, 레인지 코딩(Range Coding)이 선택적으로 제3 스테이지(60)에 대해 채용되지만, 다른 데이터 압축 알고리즘, 예를 들어 다단 데이터 압축이 대안적으로 또는 부가적으로 채용된다. 선택적으로, 인코더(10)는 예를 들어 DCT, 팔레트, DPCM과 같은, 인코딩된 데이터(70)(E2)를 생성하기 위해 데이터(20)(D1)의 하이브리드 인코딩을 성취하기 위해 다른 인코더와 조합하여 채용될 수 있다. 실제로, 용어 "레벨"은 색차 레벨, 휘도 레벨, 컬러값, 밝기, 진폭, 주파수, 강도 중 하나 이상에 대응할 수 있지만, "레벨"은 또한 인코딩될 데이터(20)(D1)의 성질에 따라 물리적 변수를 설명하는 다른 파라미터를 포함할 수 있다.
제1 스테이지(30)에서, 데이터 블록(40)은 인코딩될 데이터(20)(D1)에 존재하는 콘텐트의 성질에 따라 크기가 다양할 수 있다. 데이터(20)(D1)는 선택적으로 1차원, 예를 들어 오디오 콘텐트, ECG-데이터(심전도), 지진 데이터이다. 대안적으로, 데이터(20)(D1)는 다차원, 예를 들어 정지 화상, 비디오 콘텐트, 그래픽 콘텐트, 3D 화상/비디오/그래픽이다. 더욱이, 2차원 입력 데이터는 예를 들어, 정사각형, 삼각형, 원 및 유사한 요소, 즉 선택적으로 임의의 형태의 2차원 기하학적 형상을 포함한다. 더욱이, 3차원 화상 데이터는 예를 들어 입방체, 피라미드, 실린더, 구형 등인 요소를 포함한다. 인코딩될 데이터(20)(D1)가 공간적으로 높은 주파수 성분 및 데이터(20)(D1)에 표현된 공간 요소를 규정하기 위한 단지 몇 개의 레벨만을 포함할 때, 현재 공지된 인코딩 방법은 특히 비효율적이지만, 인코더(10) 내에서 효율적으로 프로세싱된다. 선택적으로, 인코더(10)는 예를 들어, DPCM, 모션 추정, 공간 예측과 같은 인코딩 전처리에 의해 형성된 또는 원래 데이터로서 데이터(20)(D1)를 인코딩하는 것이 가능하다.
전술된 바와 같이, 인코더(10)의 제2 스테이지(50)에서, 본 발명에 따른 압축 방법은 도 3에 도시되어 있는 바와 같이 채용된다. 제1 스테이지(30)로부터의 데이터 블록(40)은 데이터 블록(40)을 인코딩하기 위해 채용하기 위해 가장 적절한 인코딩 알고리즘을 결정하도록 분석 유닛(100)에서 분석되고, 분석 유닛(100)에 의해서만 또는 하나 이상의 인코딩 유닛[110(1) 내지 110(n)]의 도움으로 분석 유닛(100)에 의해 실행되는 분석에 따라, 데이터 블록은 하나 이상의 인코딩 유닛[110(1) 내지 110(n)]으로 다이렉팅(directing)되고, 여기서 정수이고 n은 제2 스테이지(50) 내에 채용된 상이한 코딩 알고리즘의 총수를 나타내고, 상이한 코딩 알고리즘의 총수는 선택적으로 예를 들어 본 발명에 따른 2-레벨 인코딩 알고리즘과 함께 공지의 인코딩 알고리즘의 조합을 포함하고, 2개의 레벨과 연계된 컴퓨팅된 값은 예를 들어 인코딩되고 있는 소정의 데이터 블록(40) 내의 데이터값에 적용된 평균, 모드, 중간 또는 평균치 연산으로부터 결정되고, 2-레벨 인코딩 알고리즘은 단지 예일 뿐이고, 다양한 다중 레벨 알고리즘이 선택적으로 채용된다는 것이 이해될 수 있을 것이다. 분석 유닛(100)은 어느 인코딩 유닛(110)이 소정의 유형의 데이터 블록(40)을 인코딩하기 위해 채용하기에 최적인지를 판정하기 위한 목적으로, 데이터 블록(40) 내에 존재하는 다수의 상이한 컬러 및 데이터 블록(40) 내에 존재하는 공간 주파수 정보를 분석한다. 인코딩 유닛(110)은 선택적으로 DC("직류") 인코딩, 슬라이드 인코딩, DCT("이산 코사인 변환"), 웨이블릿 인코딩, 팔레트 인코딩, 데이터베이스 인코딩, VQ("벡터 양자화") 인코딩, 스케일 인코딩, 라인 인코딩, 내삽법 및 외삽법 중 하나 이상을 채용할 수도 있다. 제2 스테이지(50)로부터의 인코딩된 데이터에서, 인코더 유닛(110) 중 어느 것이 임의의 소정의 데이터 블록(40)에 대해 채용되어 있는지를 지시하는 데이터가 포함되어 있다. 인코딩 유닛들(110) 중 적어도 하나의 인코딩 유닛[110(i)](여기서, 정수 i는 1 내지 n의 범위임)은 이하에 더 상세히 설명될 본 발명에 따른 코딩 알고리즘을 채용한다. 선택적으로, 데이터 블록(40)의 크기는 제1 스테이지(30)로부터 제공된 데이터 스트림에서 다양할 수 있고, 제2 스테이지(50)에 제공된 정보는 어디에서 데이터 블록(40)이 임의의 하나 이상의 소정의 화상에 포함되어 있는지를 공간적으로 지시하는 정보를 또한 포함하고, 이러한 정보는 제2 스테이지(50)로부터 제공된 인코딩된 데이터에 포함되고, 데이터를 지시하는 데이터-블록 위치의 이러한 포함은 유리하게는 US13/584005호 및 EP13002521.6호의 관련 출원인 영국 특허 출원 GB1214414.3(인코더) 및 US13/584,047호 및 EP13002520.8호의 관련 출원인 영국 특허 출원 GB1214400.2(디코더)에 설명된 바와 같이 유리하게 구현되고, 이들 출원은 본 명세서에 참조로서 합체되어 있고, 뿐만 아니라 대응 관련 외국 특허 출원도 또한 본 명세서에 참조로서 합체되어 있다. 대안적으로, 이러한 포함은 유리하게는 제3 스테이지(60)에서 구현된다. 데이터-블록의 크기는 화소로 표현된 높이×폭과 같은 수로 제시될 수 있다. 데이터-블록의 공간 위치는 화상의 코너로부터 x, y 화소와 같은 화상에 대한 좌표로서 유리하게 정의된다. 선택적으로, 분석 유닛(100) 및 제1 스테이지(30)는 하나 이상의 선택된 인코더 유닛[110(1) 내지 110(n)] 내의 가장 효율적인 데이터 압축을 제공하는 방식으로 인코딩될 데이터(20)(D1)를 데이터 블록(40)으로 분할하기 위해 반복 방식으로 동작하고, 예를 들어 데이터(20)(D1) 내의 데이터 블록(40)의 공간 위치 및 크기는 인코더(10)에 이용 가능한 상이한 인코더 유닛[110(1) 내지 110(n)]을 고려하여 선택된다. 선택적으로, 인코더 유닛[110(1) 내지 110(n)]은 적어도 부분적으로는 소프트웨어에서 구현되고, 예를 들어 인코더(10)가 상이한 유형의 데이터(20)(D1)에 탄력적인 방식으로 적응하는 것을 가능하게 하기 위해, 인코더(10)의 인코딩 성능을 점진적으로 향상시키기 위해 주기적인 기초로 업그레이드 가능하다.
도 2b를 참조하면, 인코더(10)에 대응하는 디코더(25)가 도시되어 있다. 디코더(25)는 인코딩된 데이터(70)를 수신하고 135에 의해 나타낸 중간 디코딩된 데이터를 생성하기 위해 인코더(10)의 제3 스테이지(60)에 의해 적용된 인코딩의 역을 인코딩된 데이터(70) 상에 실행하도록 동작 가능한 제1 디코딩 스테이지(130)를 포함한다. 중간 디코딩된 데이터는 어느 유형의 인코딩 유닛(110)이 소정의 데이터 블록(40)을 인코딩하기 위해 채용되었는지와 같은 정보, 데이터 블록(40)을 위한 마스크, 적절한 집합체값 등을 포함하고, 선택적으로 집합체값은 평균값, 모드값, 중간값이지만, 이들에 한정되는 것은 아니다. 디코더(25)는 전달 유닛(155) 및 하나 이상의 인코딩 유닛(110)의 역에 대응하는 하나 이상의 디코딩 유닛[160(1) 내지 160(n)]을 포함하는 제2 스테이지(150)를 더 포함하고, 중간 디코딩된 데이터(135) 내에 존재하는 인코딩된 데이터 블록은 인코더(25) 내에 데이터 블록(40)을 재생성하기 위해 제2 스테이지에 포함된 적절한 디코딩 유닛[160(1) 내지 160(n)]으로 전달 유닛(155)에 의해 다이렉팅된다. 디코더(25)는 실질적으로 데이터(20)(D1)에 대응하는 디코딩된 데이터(75)(D3) 및/또는 인코딩된 데이터(E2)를 생성하기 위해, 인코더(10)의 제1 스테이지(30)에서 수행된 동작의 역을 적용하도록 동작 가능한 제3 스테이지(170)를 더 포함한다. 부가적으로 또는 대안적으로, 데이터 블록(40)의 공간 및 크기 정보는 제1 디코딩 스테이지(130)에서 선택적으로 생성된다. 공간 및 위치 정보는 하나 이상의 디코딩 유닛[160(1) 내지 160(n)]에 채용된 방법이 크기 정보를 갖고 적절하게 동작하는 것을 가능하게 하기 위해 제2 스테이지(150)에 유리하게 더 송신되고, 적절한 공간 위치에 데이터 블록을 배치하는 것을 가능하게 하기 위해 제3 스테이지(170)에 더 송신된다.
본 발명에 따른 인코딩 알고리즘은 임의의 크기의 데이터 블록(40)을 인코딩하도록 채용되는 것이 가능하지만, 이는 예를 들어 화소와 같은 8 내지 256 요소 또는 값의 범위를 포함하는 데이터 블록(40)을 인코딩하기 위해 유리하게 채용된다. 더욱이, 코딩 알고리즘은 적절하게는 다중 레벨 코딩 방법이라 칭한다. 알고리즘의 제1 및 가장 유용한 구현예는 2개의 레벨, 예를 들어 이들에 한정되는 것은 아니지만 전술된 바와 같은 컬러를 채용하고, 단지 2개의 레벨을 포함하는 코드 명령 프롬프트, 텍스트 및 다른 콘텐트와 같은 대상물을 인코딩하도록 최적화된다. 그러나, 2개 초과의 레벨, 예를 들어 3개의 레벨, 4개의 레벨 또는 심지어 더 많은 레벨, 즉 "다중 레벨"을 인코딩하도록 알고리즘을 구현하는 것이 선택적으로 가능하고, 유리하게는 데이터 블록이 인코딩되는 레벨의 수는 유리하게는 인코딩되기 전에 데이터 블록(40) 내에 존재하는 레벨의 수보다 상당히 적은데, 예를 들어 유리하게는 적어도 3배 적고, 더 유리하게는 적어도 5배 적고, 더욱 더 유리하게는 적어도 10배 적다. 제2 스테이지(50)에서 인코딩되기 전에 데이터 블록 내에 존재하는 레벨의 수는 원래 레벨의 수라 칭하는 데, 즉 예를 들어 화상-, 비디오-, 오디오- 또는 그래픽-콘텐트를 표현하는 데이터 블록(40) 내에 존재하는 동적 레벨의 척도이다. 예를 들어, 도 4를 참조하면, 화상 필드(200)는 2차원 어레이의 1000×1000 화소점을 포함하고, 화상 필드(200)는 210으로 나타낸 100개의 데이터 블록(40)으로 인코더(10)의 제1 스테이지(30)에서 세분되고, 각각의 블록(210)은 100×100 화소, 즉 총 10,000 화소에 대응한다. 각각의 화소는 256개의 동적 범위의 레벨을 규정하는 8개의 2진 비트에 의해 컬러 및/또는 강도로 표현된다. 동적 범위는 또한 제한될 수 있고, 이어서 레벨의 수는 또한 이하의 식을 사용하여 계산될 수 있다.
레벨의 수 = 진폭값 = 최대 레벨 - 최소 레벨 + 1
레벨의 수는 또한 데이터 또는 데이터 블록 내에 사용된 상이한 레벨의 수를 사용함으로써 설명될 수 있고, 이어서 값은 진폭값과 동일하거나 작을 수 있다. 원래 레벨의 수에 대해, 모든 상이한 식이 사용될 수 있지만, 레벨의 출력수는 통상적으로 데이터 블록에 사용된 상이한 레벨의 수를 어드레스한다. 디코딩 유닛[110(i)]이 소정의 블록(210)을 인코딩할 때, 레벨의 수는 예를 들어 이하에 설명되는 바와 같이 보충 데이터와 함께 2 내지 8의 범위로 감소된다. 인코딩 유닛[110(i)]이 예를 들어 8개 초과의 레벨을 채용하는 경우에, 인코딩 유닛[110(i)]은 데이터 압축을 제공하는 데 덜 효율적이게 되어, 예를 들어 데이터가 제2 스테이지(50)에 제시되기 전에 예측 코딩 또는 델타 코딩과 같은 화상(200)의 전처리의 사용을 요구한다. 일 대안은 또한 값이 범위 내에 있는지 여부를 설명하기 위해 비트를 사용함으로써 집합체값의 레벨을 전달하는 것을 수반하고, 예를 들어 범위는 레벨을 위한 집합체값을 컴퓨팅하기 위해 사용된 최소(min) 및 최대(max) 파라미터에 의해 규정되고, 예를 들어 집합체값이 10, 12, 13, 15, 17이면, 레벨값의 전달은 10(=최소 집합체값) 및 6 내지 8(= 다음 비트의 양) 및 집합체값이 상이한 레벨을 위해 사용되는 것을 설명하기 위한 (1)011010(1)을 포함한다. 더욱이, 제1 값 10 및 최종값 17이 2개의 최초 전달값 10 및 6에 기인하여 사용되는 것으로 미리 알려져 있기 때문에, 6 비트가 이 예에서 충분하다. 델타 코딩을 갖는 실질적으로 유사한 예는 10 및 2와 같은 값을 생성하고, 1, 2, 2는 예를 들어 최소값 및 델타값을 위한 더 효율적인 엔트로피 인코딩을 가능하게 하기 위해 2개의 데이터의 스트림으로 분할될 수 있다.
인코딩 유닛[110(i)]에 채용된 인코딩 알고리즘은 선택적으로 단지 하나의 채널을 사용하는 그레이스케일 화상 또는 다른 정보를 인코딩하기 위해 채용된다. 더욱이, 인코딩 유닛[110(i)]에서 채용된 인코딩 알고리즘은 선택적으로 컬러 화상 또는 다른 다중 채널 콘텐트를 위해 채용된다. 다중 채널 콘텐트, 예를 들어 3-D 컬러 화상은 선택적으로 모든 채널이 유사하게 인코딩/압축되고, 또는 대안적으로 서로 상이한 방식으로 선택적으로 인코딩/압축되도록 선택적으로 인코딩되고, 예를 들어 오디오 채널의 데이터 블록은 선택적으로 비디오 채널의 데이터 블록에 상이한 방식으로 인코딩된다. 다중 채널은 또한 함께 또는 개별적으로, 예를 들어 24-비트 RGB 트리플렛 또는 3×8-비트(R, G, B) 컬러값으로서 코딩될 수 있다. 채널이 서로 상이한 방식으로 인코딩되는 경우에, 인코딩 유닛(110) 내의 상이한 코딩 알고리즘 및 데이터 블록(40)의 상이한 크기가 채용될 수 있는 데, 데이터 블록(40)의 크기의 선택은, 전술된 바와 같이 인코딩될 데이터(20)(D1) 내에 존재하는 콘텐트의 유형에 기초하여 선택적으로 구현된다. 데이터 블록의 크기 또는 사용된 코딩 알고리즘은 또한 채널이 유사하게 그러나 개별적으로, 예를 들어 개별 R, G 및 B 채널에서 코딩될 때 데이터 콘텐트에 기초하여 다양할 수 있다.
본 발명에 따른 다중 레벨 방법을 채용함으로써 생성된 데이터 블록값은 선택적으로 또한 데이터베이스에 전달되어, 이들 데이터 블록값이 이후에 연속적인 데이터 블록에 의해 이용될 수 있게 된다. 데이터베이스는 데이터(20)(D1)의 인코딩 중에 인코더(10)에서, 그리고 선택적으로 인코딩된 데이터(70)(E2)의 디코딩 중에 디코더(25)에서 개별적으로 생성될 수 있다. 대안적으로, 양 인코더(10) 및 디코더(25)는 이들 중 하나가 생성하고, 소정의 다른 디바이스 또는 소프트웨어 애플리케이션이 생성되어 있고 및 이들의 모두가 유사하게 이용될 수 있는 공통 데이터베이스를 사용할 수 있다. 양 경우에, 인코더(10) 및 디코더(25)가 사용하는 데이터베이스는 유리하게는 동일하고, 따라서 전송된 데이터베이스 기준은 모든 스테이지에서, 즉 인코더(10)에서의 계산시에, 인코더(10)에서의 재구성시에 및 또한 디코더(25)에서 재구성시에 유사한 데이터값을 항상 표현한다. 데이터 블록값들에 의해 또는 데이터 블록값 대신에, 또한 다중 레벨 방법에서 사용된 마스크는 데이터베이스 내로 전달될 수 있다. 양 마스크 및 데이터 블록값은 미래의 데이터 블록 또는 본 발명에 따른 다중 레벨 방법으로 코딩된 데이터 블록의 코딩 콘텐트에 사용될 데이터베이스로부터 검색될 수 있어, 이에 의해 저장될 그리고/또는 전송될 데이터의 데이터 크기를 감소시키고, 이에 의해 코덱 배열(5)에서 성취 가능한 압축비를 더 향상시킨다.
본 발명에 따른 다중 레벨 방법이 또한 데이터베이스 또는 데이터베이스 내의 개별 데이터베이스 요소를 압축하도록 이용될 수 있다. 이 방법은 무손실 및 손실 압축의 모두에 매우 양호하게 적합된다. 오디오 및 화상 또는 비디오 데이터와 같은 인코딩될 데이터(20)(D1) 내에 존재하는 다수의 유형의 데이터에 대해, 무손실 압축이 허용 가능할 뿐만 아니라, 인코딩된 데이터(70)(E2)와 관련하여 성취 가능한 압축비를 상당히 향상시킨다. 그러나, 데이터베이스, 문서 또는 2진 데이터와 같은 소정의 다른 유형의 데이터는 종종, 항상 그러한 것은 아니지만, 무손실 방식으로 압축될 필요가 있고, 따라서, 다중 레벨 방법에서 다중 레벨을 사용할 필요성이 일반적으로 발생하고, 또는 대안적으로 더 작은 데이터 블록이 코덱 배열(5)에 선택적으로 사용될 수 있다.
인코딩 유닛[110(i)]에서 채용된 인코딩 알고리즘은 이제 도 5를 참조하여 더 상세히 설명될 것이다. 도 5에서, 예시적인 원래 데이터 블록(40)은 300으로 나타낸다. 데이터 블록(300)은 도시되어 있는 바와 같이 그레이스케일값을 갖는 4×4 화소를 포함한다. 유리하게는, 데이터 블록(300)은 인코딩 중에 발생하는 작은 코딩 에러를 갖고, 본 발명에 따른 알고리즘을 사용하여 인코딩 유닛[110(i)]에서 효율적으로 인코딩되는 가능성이 있다.
알고리즘을 적용할 때, 데이터를 2개의 데이터 세트로 분할하는 값이 유리하게 먼저 규정되는 데, 예를 들어 블록(300) 내의 모든 화소 또는 요소에 대한 평균값이 수학식 1(식 1)에 따라 인코더(10)의 컴퓨팅 하드웨어 또는 전용 디지털 하드웨어에서 컴퓨팅된다.
Figure pat00001
식 1
다음에, 알고리즘은 2개의 레벨의 세트, 즉 Level_0 및 Level_1을 규정하고, 여기서 세트 Level_0은 그 값들이 MeanAll 미만인 모든 화소를 포함하고, 세트 Level_1은 그 값들이 MeanAll 이상인 모든 화소를 포함한다. 데이터 블록(300)의 화소들은 이어서 도 6의 대응 데이터 블록(320) 상에 맵핑되고, 여기서 화소의 공간 위치가 유지되지만, 이들은 이제 세트 Level_0 및 Level_1에 대응하는 단지 2개의 레벨에 의해 표현된다. 각각의 레벨의 세트, 즉 Level_0 및 Level_1에 대해, 평균값, 즉 집합체값의 예는 수학식 2(식 2) 및 수학식 3(식 3)에 따라 전술된 컴퓨팅 하드웨어 또는 전용 디지털 하드웨어에서 컴퓨팅된다.
Figure pat00002
식 2
Figure pat00003
식 3
선택적으로, 상기 괄호 내에 합산된 수들은 공간 가중 평균 레벨이 계산되어야 할 때 연계 계수로 각각 곱해진다. 인코더(10) 및 디코더(25)가 이들 계수 및 적절할 때 그 역수를 사용하는 경우에, 인코딩되고 압축될 때 데이터를 "워터마크"하고, 예를 들어 데이터의 미인증된 복사를 단념시키는 것이 가능하고, 여기서 디코더(25)는 예를 들어 규칙적인 가입 지불과 같은 지불에 대한 회답으로, 예를 들어 데이터베이스로부터 역 계수를 제공받는다. 이는 예를 들어, 데이터 콘텐트가 비용이 없는 열화된 품질로 소정의 최종 사용자에 의해 소비될 수 있게 하고, 가입 지불 또는 유사한 유형의 지불을 행하는 것에 대한 회답으로 높은 품질로 소정의 최종 사용자에 의해 소비될 수 있게 한다.
그 후, 상기 수학식 2 및 3(식 2 및 식 3)을 참조하면, 알고리즘을 실행할 때, 데이터 블록(300) 내의 화소의 공간 표현은 각각의 레벨의 세트에 대한 집합체값, 즉 MeanLevel_0 및 MeanLevel_1과 함께 화소 마스크(320)로서 저장되고, 대안적으로 데이터 메모리에 저장하는 대신에, 이러한 데이터는 인코딩 유닛[110(i)]으로부터 스트리밍된다. 기하학적 평균 연산이 알고리즘에 대해 상기에 설명되어 있지만, 예를 들어 불균제 평균, 비대칭 평균, 로그함수 평균, 최소값, 최대값, 모드값, 중간값과 같은 다른 유형의 연산이 가능하다는 것이 이해될 수 있을 것이다. 선택적으로, 각각의 레벨의 세트에 대한 값은 임의의 계산 수단을 사용하여, 그리고 소프트웨어 제품을 실행하는 전용 디지털 하드웨어 및/또는 컴퓨팅 디바이스를 사용하여 계산될 수 있다. 집합체값을 컴퓨팅하기 위한 일 예는 최대값과 최소값의 평균과 원래 데이터값 사이의 거리를 최소화하는 원래 데이터값을 선택하는 것이다. 이러한 종류의 집합체값은 데이터 세트 내의 최대 에러를 최소화하고, 종종 또한 더 작은 MSE를 생성한다. 디코더의 관점으로부터, 채용된 계산 방법은 주요 논점은 아니다. 컴퓨팅 수단의 선택적인 예는 레벨의 세트에 대한 값 및 레벨의 최적수를 발견하기 위해, "브루트 포스(brute force)" 방법, 몬테 카를로(Monte Carlo) 방법 등을 포함한다. 예시적인 최적화는 얼마나 많은 비트가 코딩 중에 사용되는지를 그리고 얼마나 많은 에러가 코딩된 정보에 대해 허용되는지를 결정하기 위해 율-왜곡(Rate-Distortion) 최적화일 수 있다. 2개의 집합체값을 방법으로부터 출력하는 대신에, 하나의 집합체값이 선택적으로 하나 이상의 다른 집합체값 및 기준값에 대한 하나 이상의 다른 집합체값에 대한 차이값, 예를 들어 9.1818 및 (172.8 - 9.1818)의 참조로부터 출력된다. 선택적으로, 상기에 컴퓨팅된 바와 같은 집합체값은, 인코딩 유닛[110(i)]으로부터 출력 데이터 내의 더 높은 데이터 압축의 정도를 얻기 위해, 예를 들어 가장 가까운 정수값으로 양자화된다. 선택적으로, 채용된 양자화의 정도는 얼마나 많은 세트가 데이터 블록(300)을 표현하는 데 요구되는지의 동적 함수이다. 상기 예에 대한 가장 가까운 정수로의 양자화는 MeanLevel_0 = 9 및 MeanLevel_1 = 173으로서 집합체값을 제공한다.
인코딩 유닛[110(i)]으로부터 인코딩된 데이터(70)(E2)를 생성할 때, 화소의 공간 표현, 즉 마스크는 지그재그 방식, 미로 등으로 예를 들어 도 6에 도시되어 있는 바와 같이 좌우로 그리고 상하로, 복수의 잠재적인 스캐닝 순서로 화소 마스크(320)에 기초하여 출력된다. 예에서, 마스크는 좌우로 그리고 상하로 출력되어, 마스크가 0000 1100 0010 0110으로서 인코딩 유닛[110(i)]으로부터 출력 데이터로 표현되게 된다.
인코더(10)가 비디오 콘텐트(D1)를 인코딩하도록 채용될 때, 화상의 시퀀스는 인코더(10)에 제시되고, 여기서 각각의 화상은 이후에 분석 유닛(100)에 의해 분석되는 바와 같은 이들의 콘텐트에 따라 적절하게 인코딩 유닛(110)을 사용하여 인코딩되는 데이터 블록(40)으로 분해되는 가능성이 있다. 유리하게는, 전술된 바와 같이, 인코더(10)는 인코딩을 위해 제2 스테이지(50)에 제시된 데이터 블록의 성질에 따라 상이한 인코딩 유닛(110) 사이에 동적으로 스위칭한다. 인코딩 유닛(110)의 선택은 전술된 바와 같이, 제2 스테이지(50)로부터 인코딩된 데이터에 기록된다. 제3 스테이지(60)는 선택적으로, 예를 들어 DPCM("차등 펄스-코드 변조"), RLE("실행-길이 인코딩"), SRLE, EM(엔트로피 수정자), 산술 코딩, 델타 코딩, ODelta 코딩, VLC("가변-길이 코딩"), 렘펠-지브 코딩법(ZLIB, LZO, LZSS, LZ77과 같은), 버로우-휠러 변환 기반 코딩법(RLE, BZIP2) 및 허프만 코딩 중 하나 이상을 사용하여 추가의 인코딩 및/또는 압축을 적용한다. 마스크의 전달, 즉 제2 스테이지(50)로부터 출력된 데이터 세트를 위한 스캐닝 순서는 유리하게는 예를 들어 본 명세서에 참조로서 합체되어 있는 미국 특허 출원 US2010/0322301호["화상 프로세서, 화상 생성기 및 컴퓨터 프로그램(Image processor, image generator and computer program)", 출원인 - Gurulogic Microsystems Oy, 발명자 - 투오마스 카르카이넨(Tuomas Karkkainen)]에 설명된 바와 같이, 데이터베이스를 경유하여 구현된다. 그에 의해 마스크가 대응 디코더에 통신되는 경로를 제공하기 위한 이러한 데이터베이스의 사용은 예를 들어 인코딩된 형태의 인코딩된 콘텐트의 미인증된 분배(즉, 미인증된 파일 공유)를 방해하기 위해, 액세스 키의 형태를 제공하는 것이 가능하다.
도 5의 데이터 블록(300)의 재생성된 디코딩된 버전은 도 7에 도시되어 있고 500으로 지시되어 있다. 이 재생성된 데이터 블록(500)은 디코더(25)로부터 제공된 디코딩된 출력 데이터(75)(D3)의 부분에 대응한다. 단지 데이터 블록(500) 내에 존재하는 정보의 최소의 손실만이 인코더(10)에 입력되는 원래 데이터 블록(40, 300)에 대해 발생한다.
다른 예는 본 발명의 다중 레벨 방법을 사용하여 또한 효율적으로 인코딩될 수 있는 측정 데이터의 17개의 샘플을 갖는다. 원래 샘플값은 이하와 같다.
평균값(=155.53)은 이들 값을 2개의 그룹으로 분할하는 데 사용될 수 있지만, 이는 데이터를 코딩하기 위한 가장 양호한 해결책은 아니다. 2개의 그룹은 이어서 이하와 같은 값을 포함한다.
저 = 122, 153, 153, 119, 148, 122, 122, 153, 120, 152, 154 (평균 = 138)
고 = 190, 198, 188, 156, 196, 198 (평균 = 187.66)
집합체값으로서 평균값을 갖는 이들 2개의 레벨(138 및 188)은 잠재적으로 높은 재구성 에러를 야기한다[절대 차이의 합(SAD) = 230].
더 양호한 분할점이 예를 들어 이하와 같이 식을 사용하여 발견될 수 있다.
(Min + Max)/2 = (119 + 198)/2 = 158.5
이어서 이들 2개의 그룹은 이하의 값을 포함한다.
저 = 122, 153, 156, 153, 119, 148, 122, 122, 153, 120, 152, 154 (평균 = 139.5)
고 = 190, 198, 188, 196, 198 (평균 = 194)
값 140 및 194를 갖는 이들 2개의 레벨은 잠재적으로 더 낮은 에러(SAD = 204)를 생성한다.
2개의 레벨 그룹(저 및 고)으로의 유사한 분할이 선택적으로 또한 다수의 다른 방식으로 컴퓨팅된다. 레벨 그룹 분할을 위한 일 유리한 해결책은 데이터의 변화가 높거나 최고일 때 데이터를 새로운 레벨 그룹으로 분할하는 해결책이다. 이러한 최고 변화는 데이터가 연계된 최적값으로부터 연계된 최고값으로 먼저 순서화될 때 용이하게 발견될 수 있다. 순서화된 데이터값은 이하와 같다.
119, 120, 122, 122, 122, 148, 152, 153, 153, 153, 154, 156, 188, 190, 196, 198, 198
그리고 데이터의 최고 변화는 값 188과 165 사이에 있다(= 32).
2개의 레벨에 의해, 재구성 에러는 여전히 매우 높고, 유사한 분할 규칙이 데이터의 변화가 최고인 그룹에 대해 계속될 수 있다. 이 경우에, 제2 분할점은 값 148과 122 사이에서 발견될 수 있다(= 26). 이제, 레벨 그룹은 이하와 같다.
그룹(0) = 119, 120, 122, 122, 122 (평균 = 121)
그룹(1) = 148, 152, 153, 153, 153, 154, 156 (평균 = 152.71)
그룹(2) = 188, 190, 196, 198, 198 (평균 = 194)
이제, 이들 3개의 레벨 및 집합체값 121, 153 및 194에 의해, SAD는 단지 (6 + 10 + 20 =) 36이다.
이들 3개의 레벨을 위한 집합체값으로서 모드 또는 모델값을 사용하는 것이 또한 가능하고, 이어서 집합체값은 이하와 같다: 122, 153 및 198. 이제, SAD는 (5 + 10 + 20 =) 35이다.
중간값을 집합체값으로서 사용하는 것은 값 122, 153 및 196을 생성할 것이다. SAD는 이제 (5 + 10 + 18 =) 33이다. 집합체값은 항상 자유롭게 선택될 수 있고, 상이한 그룹에 대한 상이한 집합체값이 선택된 에러 기준에 따라 가장 양호한 재구성을 생성하는 데 사용될 수 있다.
SAD 값(33)이 충분히 양호하지 않으면, 예를 들어 4 내지 12 레벨과 같은 더욱 더 많은 레벨을 생성하는 것이 가능하고, 또는 재구성 에러, 즉 데이터값은 예를 들어 VLC와 같은 소정의 코딩 방법을 사용하여 인코딩될 수 있다.
SAD 값(33)이 충분히 양호하면, 이들 3개의 총 레벨값(122, 153, 196)은 어느 데이터값이 어느 레벨에 속하는지를 설명하는 마스크 내에 사용된다. 이제, 레벨 1이 대부분의 값을 가지면, 이들 마스크값은 "0"으로 설정되고, 레벨 0 값은 "10"으로 설정되고, 레벨 2 값은 "11"로 설정된다. 따라서, 마스크값은 이하와 같이 제시될 수 있다.
10, 0, 11, 11, 11, 0, 0, 10, 0, 10, 10, 0, 11, 10, 11, 0, 0
상이한 레벨에 대해 데이터를 지정하는 마스크를 설명하기 위해 2개의 2진 마스크의 세트를 사용하는 것이 선택적으로 또한 가능하다. 예를 들어, 제1 2진 마스크는 낮은 값(<=156)에 대해 "0"으로서 그리고 높은 값(>=188)에 대해 "1"로서 제1 분할을 지정한다.
0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0
제2 2진 마스크는 그룹(0)(<=122)에 대한 낮은 값의 제2 분할을 "0"으로서 그리고 그룹(1)(>=148)에 대해 "1"로서 지정한다.
0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1
상이한 세트로 데이터를 분할하는 일 유리한 해결책은 항상 최고 진폭을 포함하는 세트를 분할하는 것이다, 즉 (max - min + 1). 다중 세트가 동일한 진폭을 가지면, 대부분의 데이터값을 포함하는 세트는 유리하게는 분할되도록 선택된다. 이러한 분할의 세트의 종류는 최고 진폭이 충분히 작은 한, 즉 임계값을 초과하지 않는 한 계속된다. 다음에, 집합체값은 예를 들어 모드 또는 중간값을 사용함으로써 각각의 세트에 대해 규정된다.
선택적으로, 이 때 하나의 세트를 가산하는 세트를 반복하는 것이 또한 가능하여, 항상 세트로의 새로운 분할이 실행될 때, 새로운 집합체값이 또한 생성되게 하고, 새로운 세트는 이어서 그 집합체값이 데이터값에 가장 가까운 세트로 모든 데이터값을 투입함으로써 재생성된다. 세트의 생성 및 집합체값의 정의를 위해 이용 가능한 다수의 유리한 구현예가 존재하지만, 인코딩의 최종 결과는 항상 하나 이상의 마스크(320) 및 2개 이상의 집합체값을 채용하는 것이고, 이들은 인코딩 유닛[110(i)]을 채용함으로써 구현된 방법의 출력이다.
모든 예시적인 마스크 및 집합체값은 델타, RLE, VLC, 데이터베이스 등과 같은 다수의 방법으로 더 압축될 수 있다.
인코더(10) 및/또는 디코더(25)는 유리하게는 전용 전자 하드웨어, 예를 들어 맞춤형 디지털 집적 회로, 필드 프로그램 가능 게이트 어레이(FPGA) 등을 사용하여 구현된다. 대안적으로 또는 부가적으로, 인코더(10) 및/또는 디코더(25)는 데이터 메모리와 데이터 통신하여 결합된 컴퓨팅 하드웨어 상에서, 비일시적(비과도적) 머신 판독 가능 데이터 저장 매체 상에 저장된 하나 이상의 소프트웨어 제품을 실행함으로써 구현될 수 있다. 선택적으로, 컴퓨팅 하드웨어는 고속 축소 명령 세트(RISC) 프로세서로서 구현된다. 인코딩된 데이터(70)(E2)는 선택적으로 스트리밍되는 것과, 광학적으로 판독 가능한 디스크와 같은 데이터 캐리어 상에 저장되는 것과, 데이터 메모리 내에 저장되는 것 등 중 하나 이상이다.
상기에 설명된 실시예의 수정예가 첨부된 청구범위에 의해 규정된 바와 같은 발명의 범주로부터 벗어나지 않고 가능하다. 본 발명을 설명하고 청구하는 데 사용된 "구비하는", "포함하는", "갖춘", "~로 이루어지는", "갖는", "~이다"와 같은 표현은 비배제적인 방식으로 해석되도록 의도되는 데, 즉 명시적으로 설명되지 않은 아이템, 구성 요소 또는 요소가 또한 존재할 수 있게 한다. 단수의 표현은 또한 복수에 관련되도록 해석된다. 첨부된 청구범위에서 괄호 내에 포함된 도면 부호는 청구범위의 이해를 지원하도록 의도되고, 이들 청구범위에 의해 청구된 요지를 임의의 방식으로 한정하도록 해석되어서는 안된다.
10: 인코더 20: 데이터
25: 디코더 30: 제1 스테이지
40: 데이터 블록 50: 제2 스테이지
70: 인코딩된 데이터 75: 디코딩된 데이터
100: 분석 유닛 110(1) 내지 110(n): 인코딩 유닛

Claims (22)

  1. 대응하는 인코딩된 데이터(70, E2)를 생성하기 위해 데이터(20, D1)를 인코딩하기 위한 인코더(10)에 있어서,
    인코딩될 데이터(20, D1)의 하나 이상의 부분(40)을 분석하고, 상기 하나 이상의 부분(40)을 적절한 하나 이상의 인코딩 유닛(110)에 다이렉팅(directing)하기 위한 분석 유닛(100)으로서, 상기 하나 이상의 인코딩 유닛(110)은 인코딩된 데이터(70, E2)를 생성하기 위해 거기서 상기 하나 이상의 부분(40)을 인코딩하도록 동작 가능한 것인 분석 유닛(100)을 포함하고,
    상기 하나 이상의 인코딩 유닛(110)은 상기 하나 이상의 부분(40)을 인코딩할 때 서로 상이한 인코딩 알고리즘을 채용하도록 동작 가능하고,
    상기 하나 이상의 인코딩 유닛(110) 중 적어도 하나의 인코딩 유닛[110(i)]은 거기서 수신된 각각의 부분(40) 내에 존재하는 데이터값을 컴퓨팅하고, 상기 데이터값을 적어도 2개의 세트로 세분하고, 소정의 세트 내에 존재하는 데이터값으로부터 유도된 소정의 세트에 대한 적어도 하나의 집합체값(aggregate value)을 컴퓨팅하도록 동작 가능하고, 부분(40)의 공간 마스크(spatial mask)(320)를 유지하는 동안, 적어도 2개의 데이터에 대해 컴퓨팅된 집합체값을 표현하는 정보 및 공간 마스크(320)는 인코딩된 데이터(70, E2) 내에 포함되는 것을 특징으로 하는 인코더.
  2. 제1항에 있어서, 상기 인코더(10)는 상기 하나 이상의 인코딩 유닛(110)으로부터 인코딩된 출력 데이터를 수신하고 상기 인코더(10)로부터 총 인코딩된 데이터(70, E2)를 생성하도록 이 인코딩된 출력 데이터를 추가로 인코딩하기 위한 출력 인코더 유닛(60)을 포함하는 것을 특징으로 하는 인코더.
  3. 제1항 또는 제2항에 있어서, 상기 인코더(10)는 인코딩될 데이터(20, D1)가 상기 하나 이상의 부분(40) 내에 미리 포함되어 있지 않을 때, 하나 이상의 부분(40)을 생성하도록 인코딩될 데이터(20, D1)를 세분하고 그리고/또는 조합하기 위한 입력 스테이지(30)를 더 포함하는 것을 특징으로 하는 인코더.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서, 상기 인코더(10)는 상기 인코더(10)에 의해 생성된 인코딩된 데이터(70, E2)를 디코딩할 때 하나 이상의 디코더에 의한 액세스를 위해 원격 데이터베이스 내의 하나 이상의 부분의 하나 이상의 마스크(320)를 표현하는 정보를 저장하도록 동작 가능한 것을 특징으로 하는 인코더.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서, 상기 적어도 하나의 집합체값은 산술 평균, 불균제 평균, 로그함수 평균, 가중 평균, 평균값, 최소값, 최대값, 모드값 또는 중간값인 것을 특징으로 하는 인코더.
  6. 대응하는 인코딩된 데이터(70, E2)를 생성하기 위해 데이터(20, D1)를 인코딩하는 데이터 인코딩 방법에 있어서,
    (a) 인코딩될 데이터(20, D1)의 하나 이상의 부분(40)을 분석하고, 상기 하나 이상의 부분(40)을 적절한 하나 이상의 인코딩 유닛(110)에 다이렉팅하기 위한 분석 유닛(100)을 사용하는 단계로서, 상기 하나 이상의 인코딩 유닛(110)은 인코딩된 데이터(70, E2)를 생성하기 위해 거기서 상기 하나 이상의 부분(40)을 인코딩하도록 동작 가능하고, 상기 하나 이상의 인코딩 유닛(110)은 상기 하나 이상의 부분(40)을 인코딩할 때 서로 상이한 인코딩 알고리즘을 채용하도록 동작 가능한 것인, 상기 분석 유닛(100)을 사용하는 단계; 및
    (b) 거기서 수신된 각각의 부분(40) 내에 존재하는 데이터값을 컴퓨팅하고, 상기 데이터값을 적어도 2개의 세트로 세분하고, 소정의 세트 내에 존재하는 데이터값으로부터 유도된 소정의 세트에 대한 적어도 하나의 집합체값을 컴퓨팅하기 위해 상기 하나 이상의 인코딩 유닛(110) 중 적어도 하나의 인코딩 유닛[110(i)]을 사용하는 단계로서, 부분(40)의 공간 마스크(320)를 유지하는 동안, 적어도 2개의 데이터를 위해 컴퓨팅된 집합체값을 표현하는 정보 및 상기 공간 마스크(320)는 인코딩된 데이터(70, E2) 내에 포함되는 것인, 상기 적어도 하나의 인코딩 유닛[110(i)]을 사용하는 단계를 포함하는 것을 특징으로 하는 데이터 인코딩 방법.
  7. 제6항에 있어서, 상기 방법은 상기 하나 이상의 인코딩 유닛(110)으로부터 인코딩된 출력 데이터를 수신하고, 총 인코딩된 데이터(70, E2)를 생성하도록 이 인코딩된 출력 데이터를 추가로 인코딩하기 위해 출력 인코더 유닛(60)을 사용하는 단계를 포함하는 것을 특징으로 하는 데이터 인코딩 방법.
  8. 제6항 또는 제7항에 있어서, 상기 방법은 인코딩된 데이터(70, E2)를 디코딩할 때 하나 이상의 디코더에 의한 액세스를 위해 원격 데이터베이스 내의 하나 이상의 부분의 하나 이상의 마스크(320)를 표현하는 정보를 저장하는 단계를 포함하는 것을 특징으로 하는 데이터 인코딩 방법.
  9. 제6항 내지 제8항 중 어느 한 항에 있어서, 상기 인코딩된 데이터(70, E2)는 추가로 인코딩 및/또는 압축되는 것을 특징으로 하는 데이터 인코딩 방법.
  10. 제9항에 있어서, 상기 추가의 인코딩 및/또는 압축은 DPCM("differential pulse-code modulation"), RLE("run - length encoding"), SRLE, EM(Entropy Modifier), 산술 코딩, 델타 코딩, ODelta 코딩, VLC("Variable - Length Coding"), 렘펠-지브(Lempel-Ziv) 코딩법(ZLIB, LZO, LZSS, LZ77), 버로우-휠러(Burrow-Wheeler) 변환 기반 코딩법(RLE, BZIP2) 및 허프만(Huffman) 코딩 중 적어도 하나를 포함하는 것을 특징으로 하는 데이터 인코딩 방법.
  11. 대응하는 디코딩된 데이터(75, D3)를 생성하기 위해 인코딩된 데이터(70, E2)를 디코딩하기 위한 디코더(25)에 있어서,
    인코딩된 데이터(70, E2)의 하나 이상의 부분(40)을 전달하고, 상기 하나 이상의 부분(40)을 적절한 하나 이상의 디코딩 유닛(160)으로 다이렉팅하기 위한 전달 유닛(155)으로서, 상기 하나 이상의 디코딩 유닛(160)은 디코딩된 데이터(75, D3)를 생성하기 위해 거기서 상기 하나 이상의 부분(40)을 디코딩하도록 동작 가능한 것인 전달 유닛(155)을 포함하고,
    상기 하나 이상의 디코딩 유닛(160) 중 적어도 하나의 디코딩 유닛[160(i)]은 인코딩된 데이터(70, E2) 내에 포함된 적어도 2개의 데이터 세트를 위한 집합체값을 표현하는 정보 및 공간 마스크(320)를 추출하고, 세트 중 어느 세트에 요소가 마스크(320)에 의해 규정된 바와 같이 속하는지에 따라 데이터 블록(500) 내의 요소에 값을 할당하기 위해 동작 가능한 것을 특징으로 하는 디코더.
  12. 제11항에 있어서, 상기 디코더(25)는 상기 하나 이상의 디코딩 유닛(160)으로부터 디코딩된 출력 데이터를 수신하고 상기 디코더(25)로부터 총 디코딩된 데이터(75, D3)를 생성하도록 이들 디코딩된 출력 데이터를 추가로 조합하기 위한 출력 디코더 유닛(170)을 포함하는 것을 특징으로 하는 디코더.
  13. 제11항 또는 제12항에 있어서, 상기 디코더(25)는 상기 인코딩된 데이터(70, E2) 내에 존재하는 파라미터를 인코딩함으로써 규정된 바와 같이 전달 유닛(155) 및 하나 이상의 디코딩 유닛(160)으로 다이렉팅하기 위해 하나 이상의 부분을 인코딩된 데이터(70, E2)로부터 추출하기 위한 입력 스테이지(130)를 더 포함하는 것을 특징으로 하는 디코더.
  14. 제11항 내지 제13항 중 어느 한 항에 있어서, 상기 디코더(25)는 인코더(10)에 의해 생성된 인코딩된 데이터(70, E2)를 디코딩할 때 원격 데이터베이스로부터 하나 이상의 부분의 하나 이상의 마스크(320)를 표현하는 정보를 검색하도록 동작 가능한 것을 특징으로 하는 디코더.
  15. 대응하는 디코딩된 데이터(75, D3)를 생성하기 위해 인코딩된 데이터(70, E2)를 디코딩하는 디코딩 방법에 있어서,
    (a) 인코딩된 데이터(70, E2)의 하나 이상의 부분(40)을 전달하고, 상기 하나 이상의 부분(40)을 적절한 하나 이상의 디코딩 유닛(160)으로 다이렉팅하기 위한 전달 유닛(155)을 사용하는 단계로서, 상기 하나 이상의 디코딩 유닛(160)은 디코딩된 데이터(75, D3)를 생성하기 위해 거기서 상기 하나 이상의 부분(40)을 디코딩하도록 동작 가능한 것인, 상기 전달 유닛(155)을 사용하는 단계; 및
    (b) 인코딩된 데이터(70, E2) 내에 포함된 적어도 2개의 데이터 세트에 대해 컴퓨팅된 집합체값을 표현하는 정보 및 공간 마스크(320)를 추출하고, 세트 중 어느 세트에 요소가 마스크(320)에 의해 규정된 바와 같이 속하는지에 따라 데이터 블록(500) 내의 요소에 집합체값을 할당하기 위해 상기 하나 이상의 디코딩 유닛(160) 중 적어도 하나의 디코딩 유닛[160(i)]을 사용하는 단계를 포함하는 것을 특징으로 하는 디코딩 방법.
  16. 제15항에 있어서, 상기 방법은 상기 하나 이상의 디코딩 유닛(160)으로부터 디코딩된 출력 데이터를 수신하고 총 디코딩된 데이터(75, D3)를 생성하도록 이들 디코딩된 출력 데이터를 추가로 조합하기 위해 출력 디코더 유닛(170)을 사용하는 단계를 포함하는 것을 특징으로 하는 디코딩 방법.
  17. 제15항 또는 제16항에 있어서, 상기 방법은 상기 인코딩된 데이터(70, E2) 내에 존재하는 파라미터를 인코딩함으로써 규정된 바와 같이 전달 유닛(155) 및 하나 이상의 디코딩 유닛(160)으로 다이렉팅하기 위해 하나 이상의 부분을 인코딩된 데이터(70, E2)로부터 추출하기 위한 입력 스테이지(130)를 사용하는 것을 더 포함하는 것을 특징으로 하는 디코딩 방법.
  18. 제15항 내지 제17항 중 어느 한 항에 있어서, 상기 하나 이상의 디코딩 유닛(160) 중 적어도 하나의 디코딩 유닛[160(i)]은 데이터 세트에 대응하는 마스크(320)의 요소에 값을 할당하도록 동작 가능하고, 2개 내지 8개의 데이터 세트, 또는 2개 이상의 데이터 세트 범위가 존재한다는 것을 특징으로 하는 디코딩 방법.
  19. 제15항 내지 제18항 중 어느 한 항에 있어서, 상기 방법은 인코더(10)에 의해 생성된 인코딩된 데이터를 디코딩할 때 원격 데이터베이스로부터 하나 이상의 부분의 하나 이상의 마스크(32)를 표현하는 정보를 검색하는 것을 포함하는 것을 특징으로 하는 디코딩 방법.
  20. 데이터 통신 시스템(5)에 있어서,
    데이터(20, D1)를 인코딩하고 대응하는 인코딩된 데이터(70, E2)를 생성하기 위한 제1항에 개재된 적어도 하나의 인코더(10)를 포함하고, 디코딩된 데이터(75, D3)를 생성하기 위해 인코딩된 데이터(70, E2)를 디코딩하기 위한 제11항에 기재된 적어도 하나의 디코더(25)를 포함하는 데이터 통신 시스템.
  21. 제20항에 기재된 데이터 통신 시스템(5)에서 데이터를 통신하는 방법에 있어서,
    상기 데이터를 통신하는 방법은 제6항에 기재된 방법과 제15항에 개재된 방법의 조합을 이용하는 것인 데이터를 통신하는 방법.
  22. 비일시적 머신 판독 가능 데이터 저장 매체 상에 기록된 소프트웨어 제품에 있어서,
    상기 소프트웨어 제품은 제6항 내지 제10항, 또는 제15항 내지 제19항 중 어느 한 항에 기재된 방법을 실행하기 위한 컴퓨팅 하드웨어 상에서 실행 가능한 것을 특징으로 하는 소프트웨어 제품.
KR1020130125991A 2012-10-22 2013-10-22 인코더, 디코더 및 방법 KR101687865B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
GB1218942.9 2012-10-22
GB1218942.9A GB2507127B (en) 2012-10-22 2012-10-22 Encoder, decoder and method
EP13003859.9 2013-08-02
EP13003859.9A EP2723071A1 (en) 2012-10-22 2013-08-02 Encoder, decoder and method

Publications (2)

Publication Number Publication Date
KR20150053830A true KR20150053830A (ko) 2015-05-19
KR101687865B1 KR101687865B1 (ko) 2016-12-19

Family

ID=47359259

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130125991A KR101687865B1 (ko) 2012-10-22 2013-10-22 인코더, 디코더 및 방법

Country Status (10)

Country Link
US (1) US20140112589A1 (ko)
EP (1) EP2723071A1 (ko)
JP (1) JP2014087058A (ko)
KR (1) KR101687865B1 (ko)
CN (1) CN103780909B (ko)
BR (1) BR102013027082A2 (ko)
GB (1) GB2507127B (ko)
IN (1) IN2013MU03246A (ko)
RU (1) RU2567988C2 (ko)
TW (1) TWI511528B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170035154A (ko) * 2015-09-22 2017-03-30 삼성전자주식회사 텍스쳐를 처리하는 방법 및 장치

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2528460B (en) 2014-07-21 2018-05-30 Gurulogic Microsystems Oy Encoder, decoder and method
CN107251438B (zh) * 2015-02-16 2020-10-30 三菱电机株式会社 数据压缩装置及方法、数据解压缩装置及方法和记录介质
US10275696B2 (en) * 2015-09-30 2019-04-30 Razer (Asia-Pacific) Pte. Ltd. Information encoding methods, information decoding methods, computer-readable media, information encoders, and information decoders
US10395356B2 (en) * 2016-05-25 2019-08-27 Kla-Tencor Corp. Generating simulated images from input images for semiconductor applications
US10559093B2 (en) * 2018-01-13 2020-02-11 Arm Limited Selecting encoding options
CN109768959B (zh) * 2018-12-06 2021-02-09 成都路行通信息技术有限公司 一种gnss设备高频采样下数据包压缩和解压的方法
CN109788293A (zh) * 2019-01-30 2019-05-21 郑州云海信息技术有限公司 一种视频编解码系统和方法
CN111858391A (zh) * 2020-06-16 2020-10-30 中国人民解放军空军研究院航空兵研究所 一种数据处理过程中优化压缩存储格式的方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5668932A (en) * 1993-01-29 1997-09-16 Microsoft Corporation Digital video data compression technique
WO2000019374A1 (en) * 1998-09-28 2000-04-06 Silicon Graphics, Inc. Compressing and decompressing image data with 4-level block coding
US6151409A (en) * 1998-03-13 2000-11-21 National Science Council Methods for compressing and re-constructing a color image in a computer system
US6285458B1 (en) * 1996-07-31 2001-09-04 Fuji Xerox Co., Ltd. Image processing apparatus and method

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09505188A (ja) * 1993-11-15 1997-05-20 ナショナル・セミコンダクター・コーポレイション 4分木構造walsh変換符号化
DE4421657A1 (de) * 1994-02-18 1996-02-01 Team Dr Knabe Ges Fuer Informa Verfahren zum Erzeugen einer Videoszene
JPH11164150A (ja) * 1997-11-27 1999-06-18 Ricoh Co Ltd 画像処理装置
US6816618B1 (en) * 1998-03-03 2004-11-09 Minolta Co., Ltd. Adaptive variable length image coding apparatus
SE521021C2 (sv) * 1998-06-18 2003-09-23 Ericsson Telefon Ab L M Förfarande och anordning vid överförande av bilder
US6567559B1 (en) * 1998-09-16 2003-05-20 Texas Instruments Incorporated Hybrid image compression with compression ratio control
EP1170956A3 (en) * 2000-06-06 2004-08-04 Kabushiki Kaisha Office Noa Method and system for compressing motion image information
US7206453B2 (en) * 2001-05-03 2007-04-17 Microsoft Corporation Dynamic filtering for lossy compression
US7027647B2 (en) * 2001-12-31 2006-04-11 Hewlett-Packard Development Company, L.P. Coder matched layer separation for compression of compound documents
US7606429B2 (en) * 2005-03-25 2009-10-20 Ati Technologies Ulc Block-based image compression method and apparatus
US7505624B2 (en) * 2005-05-27 2009-03-17 Ati Technologies Ulc Block-based image compression method and apparatus
JP4182442B2 (ja) * 2006-04-27 2008-11-19 ソニー株式会社 画像データの処理装置、画像データの処理方法、画像データの処理方法のプログラム及び画像データの処理方法のプログラムを記録した記録媒体
JP2007312126A (ja) * 2006-05-18 2007-11-29 Toshiba Corp 画像処理回路
CN101150719B (zh) * 2006-09-20 2010-08-11 华为技术有限公司 并行视频编码的方法及装置
JP2008283394A (ja) * 2007-05-09 2008-11-20 Matsushita Electric Ind Co Ltd 通信装置及び通信用集積回路
CN100542298C (zh) * 2007-09-29 2009-09-16 中国科学院计算技术研究所 一种柱面全景视频编码的块尺寸计算方法和传输方法
CN101615986A (zh) * 2008-06-27 2009-12-30 华为技术有限公司 一种数据传输方法、装置及通信系统
CN101420614B (zh) * 2008-11-28 2010-08-18 同济大学 一种混合编码与字典编码整合的图像压缩方法及装置
RU2420021C2 (ru) * 2009-03-24 2011-05-27 Корпорация "САМСУНГ ЭЛЕКТРОНИКС Ко., Лтд." Способ сжатия изображений и видеопоследовательностей
FI127117B (fi) * 2009-06-17 2017-11-30 Gurulogic Microsystems Oy Kuvaprosessoija ja tietokoneohjelma
CN101668160B (zh) * 2009-09-10 2012-08-29 华为终端有限公司 视频图像数据处理方法、装置及视频会议系统及终端
CN101848224B (zh) * 2010-05-26 2012-11-14 中国科学技术大学 一种对等网络流媒体网络编码方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5668932A (en) * 1993-01-29 1997-09-16 Microsoft Corporation Digital video data compression technique
US6285458B1 (en) * 1996-07-31 2001-09-04 Fuji Xerox Co., Ltd. Image processing apparatus and method
US6151409A (en) * 1998-03-13 2000-11-21 National Science Council Methods for compressing and re-constructing a color image in a computer system
WO2000019374A1 (en) * 1998-09-28 2000-04-06 Silicon Graphics, Inc. Compressing and decompressing image data with 4-level block coding

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170035154A (ko) * 2015-09-22 2017-03-30 삼성전자주식회사 텍스쳐를 처리하는 방법 및 장치

Also Published As

Publication number Publication date
TWI511528B (zh) 2015-12-01
IN2013MU03246A (ko) 2015-07-10
BR102013027082A2 (pt) 2014-10-14
US20140112589A1 (en) 2014-04-24
RU2013144665A (ru) 2015-04-20
CN103780909A (zh) 2014-05-07
KR101687865B1 (ko) 2016-12-19
EP2723071A1 (en) 2014-04-23
RU2567988C2 (ru) 2015-11-10
JP2014087058A (ja) 2014-05-12
GB201218942D0 (en) 2012-12-05
CN103780909B (zh) 2018-08-24
GB2507127B (en) 2014-10-08
GB2507127A (en) 2014-04-23
TW201417585A (zh) 2014-05-01

Similar Documents

Publication Publication Date Title
KR101687865B1 (ko) 인코더, 디코더 및 방법
US9245353B2 (en) Encoder, decoder and method
JP3978478B2 (ja) 推定画素値により固定速度のブロック単位の画像圧縮を行うための装置及び方法
JP4800571B2 (ja) 損失の無い方法でディジタル画像を符号化するための装置および方法
KR101687863B1 (ko) 인코더 및 방법
EP3262835B1 (en) Image data compression and decompression using minimize size matrix algorithm
KR20150129095A (ko) 디코더 및 방법
US11202083B2 (en) Encoder, decoder and method employing palette utilization and compression
JP2006502604A (ja) 任意形状オブジェクトの画像圧縮方法
CN1547708A (zh) 以无损方式对数字图像和音频数据解码的系统和方法
KR100944928B1 (ko) 버터플라이 프로세서를 이용하여 이산 코사인 변환을인코딩하고 계산하는 장치 및 방법
CN105556850B (zh) 编码器、解码器及其运行方法
Padmavati et al. DCT combined with fractal quadtree decomposition and Huffman coding for image compression
CN113115019B (zh) 视频编解码方法、装置、计算机设备及存储介质
CN100566419C (zh) 以无损的方式编码数字图像数据的设备和方法
Mulla et al. High-speed cluster scanning scheme for three-dimensional constellated image processing
Amaar et al. Image compression using hybrid vector quantization with DCT
Jain et al. A image comparative study using DCT, fast Fourier, wavelet transforms and Huffman algorithm
Testoni et al. Three-dimensional transforms and entropy coders for a fast embedded color video codec
Abouali Bitplanes Block Based Exact Image Compression
Mehrotra et al. Predictive hierarchical table-lookup vector quantization with quadtree encoding
Domnic et al. Fast and Low Bit-Rate AMBTC Image Compression Scheme
Mehrotra et al. Adaptive Predictive Table-Lookup Hierarchical Vector Quantization with Quadtree Encoding

Legal Events

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

Payment date: 20191126

Year of fee payment: 4