KR20210113681A - 다중 이미지에 대한 압축 - Google Patents

다중 이미지에 대한 압축 Download PDF

Info

Publication number
KR20210113681A
KR20210113681A KR1020217026201A KR20217026201A KR20210113681A KR 20210113681 A KR20210113681 A KR 20210113681A KR 1020217026201 A KR1020217026201 A KR 1020217026201A KR 20217026201 A KR20217026201 A KR 20217026201A KR 20210113681 A KR20210113681 A KR 20210113681A
Authority
KR
South Korea
Prior art keywords
images
media content
storage
codewords
user
Prior art date
Application number
KR1020217026201A
Other languages
English (en)
Inventor
샤라드 라마스와미
Original Assignee
구글 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 구글 엘엘씨 filed Critical 구글 엘엘씨
Publication of KR20210113681A publication Critical patent/KR20210113681A/ko

Links

Images

Classifications

    • 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/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • 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/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/42Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory
    • 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/124Quantisation
    • 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
    • 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/177Methods 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 group of pictures [GOP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/625Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]
    • 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/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • 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/93Run-length coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Discrete Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Abstract

다수의 이미지(122)에 대한 압축 방법(400)이 제공된다. 이 방법은 저장 디바이스에 있는 복수의 이미지를 수신하는 단계를 포함한다. 복수의 이미지의 각 이미지에 대해, 방법은 손실 압축을 사용하여 코드워드를 생성하는 단계(312)를 포함하며, 각 코드워드는 비트 문자열로 정의된다. 방법은 복수의 이미지의 각 이미지에 대해 생성된 코드워드들에 기초하여 엔트로피 코딩 테이블(322)을 생성하는 단계 및 생성된 엔트로피 코딩 테이블을 사용하여 복수의 이미지를 엔트로피 인코딩하는 단계를 더 포함한다.

Description

다중 이미지에 대한 압축
본 개시는 다중 이미지에 대한 압축에 관한 것이다.
오늘날 기술은 사람들이 본질적으로 어디에서나 미디어 컨텐츠(예를 들어, 이미지 및 비디오)를 생성할 수 있게 한다. 예를 들어, 모바일 디바이스에는 사람들이 자신의 경험을 사진이나 비디오로 찍을 수 있도록 하는 카메라가 표준으로 제공되는 경우가 많다. 이 기술의 용이성과 소셜 미디어 플랫폼의 인기로 인해 사람들은 추억을 캡처하거나 순간을 공유하기 위해 미디어 컨텐츠를 생성할 수 있다. 사람들이 생성하는 미디어 컨텐츠의 양이 증가함에 따라 미디어 컨텐츠를 저장하기 위한 저장소로 종종 저장 공간이 필요하다. 결과적으로, 이러한 저장 요구 중 일부를 충족하기 위해 일반적으로 원격 서버와 백업 저장 기능에 액세스할 수 있게 되었다. 그러나 요구가 계속 증가함에 따라 저장 디바이스는 저장 효율성 및/또는 미디어 저장 기술 개선이 필요하게 되었다.
본 개시의 일 양태는 다수의 이미지에 대한 압축 방법을 제공한다. 이 방법은 데이터 처리 하드웨어에서, 저장 디바이스의 복수의 이미지를 수신하는 단계를 포함한다. 복수의 이미지의 각각의 이미지에 대해, 방법은 또한 데이터 처리 하드웨어에 의해, 손실 압축을 사용하여 코드워드들을 생성하는 단계를 포함하며, 각 코드워드는 비트 문자열로 정의된다. 방법은 데이터 처리 하드웨어에 의해, 복수의 이미지의 코드워드에 기초하여 엔트로피 코딩 테이블을 생성하는 단계를 더 포함한다. 방법은 또한 데이터 처리 하드웨어에 의해, 생성된 엔트로피 코딩 테이블에 따라 복수의 이미지를 엔트로피 인코딩하는 단계를 포함한다.
본 개시의 구현은 다음의 선택적인 특징들 중 하나 이상을 포함할 수 있다. 일부 구현에서, 코드워드들을 생성하는 단계는 복수의 이미지의 각 이미지를 픽셀 블록으로 분할하는 단계와; 각 픽셀 블록을 변환 계수로 변환하는 단계와; 양자화 인덱스들을 형성하도록 변환 계수를 양자화하는 단계와; 각 양자화 인덱스를 개별 비트 문자열로 표현하는 단계와; 그리고 개별 비트 문자열에 가변 길이 코드를 할당하는 단계를 포함한다, 여기서, 가변 길이 코드는 복수의 이미지 내에서 개별 비트 문자열의 발생이 증가할 때 감소하는 비트 길이를 포함한다. 변환 계수는 이산 코사인 변환(DCT) 계수를 포함할 수 있다. 각 코드워드는 양자화된 변환 계수의 고정 길이 비트 문자열일 수 있다. 손실 압축은 JPEG 압축일 수 있다.
일부 예에서, 엔트로피 인코딩 테이블을 생성하는 단계는 발생 빈도로 코드워드들을 컴파일하는 단계 및 코드워드들의 발생 빈도에 기초하여 각 코드워드에 가변 길이 비트 코드를 할당하는 단계를 포함한다. 예를 들어, 발생 빈도는 각 코드워드가 복수의 이미지에 존재하는 횟수를 나타낸다. 여기서, 제1 가변 길이 코드는 제1 코드워드에 할당되고, 제2 가변 길이 코드는 제2 코드워드에 할당된다. 제1 가변 길이 코드는 제2 가변 길이 코드보다 적은 비트를 포함할 수 있다. 제1 코드워드는 제2 코드워드보다 더 큰 발생 빈도를 포함할 수 있다. 일부 구현에서, 코드워드들의 발생 빈도에 기초하여 각 컴파일된 코드워드에 가변 길이 비트 코드를 할당하는 단계는 모든 컴파일된 코드워드에 대한 가변 길이 비트 코드의 합을 최적화하는 단계를 포함한다.
일부 구성에서, 저장 디바이스는 사용자 디바이스와 통신하는 분산 시스템의 원격 서버를 포함한다. 복수의 이미지를 수신하는 단계는 사용자 디바이스로부터의 업로드에 응답하여 발생하고, 업로드는 사용자 디바이스의 미디어 컨텐츠에 대한 백업 기능과 연관된다. 수신된 복수의 이미지는 고품질 포멧을 가지며, 복수의 이미지의 엔트로피 인코딩은 수신된 복수의 이미지를 더 낮은 저장 공간 포맷으로 압축할 수 있다.
일부 예에서, 복수의 이미지의 각 이미지는 공통 특성을 가지며, 공통 특성은 특정 사용자, 사용자 계정, 미디어 컨텐츠 앨범, 또는 물리적 저장 위치와 연관된다. 복수의 이미지를 수신하는 단계는 복수의 이미지 및 저장 디바이스에서의 저장을 위한 다른 복수의 이미지를 포함하는 미디어 컨텐츠를 수신하는 단계와; 그리고 복수의 이미지가 공통 특성을 갖는다고 결정하는 단계를 포함하고, 상기 공통 특성은 특정 사용자, 사용자 계정, 미디어 컨텐츠 앨범, 또는 물리적 저장 위치와의 연관된다. 부가적으로 또는 대안적으로, 방법은 생성된 엔트로피 코딩 테이블을 사용하여 엔트로피 인코딩된 복수의 이미지를 저장 디바이스에 있는 다른 복수의 이미지와 별도의 위치에 저장하는 단계를 더 포함할 수 있다.
선택적으로, 복수의 이미지를 수신하는 단계는 저장 디바이스와 통신하는 저장 애플리케이션을 실행하는 사용자 디바이스에서의 미디어 컨텐츠의 생성 또는 수신을 검출하는 단계와 사용자 디바이스에 대한 프롬프트를 생성하는 단계를 포함하고, 프롬프트는 사용자 디바이스의 사용자가 검출된 미디어 컨텐츠를 저장 디바이스에 백업하거나 전송하기를 원하는지 질의한다. 사용자가 검출된 미디어 컨텐츠를 저장 디바이스에 백업하거나 전송하기로 선택하는 경우, 방법은 엔트로피 인코딩을 위해 미디어 컨텐츠 내의 복수의 이미지를 식별하는 단계를 포함한다.
일부 예에서, 복수의 이미지는 사용자 디바이스에 의한 미디어 컨텐츠의 업로드로부터의 이미지의 제1 서브세트에 대응한다. 여기서, 미디어 컨텐츠의 업로드는 이미지의 제1 서브세트 및 이미지의 제2 서브세트를 포함한다. 이미지의 제1 서브세트는 더 낮은 저장 풋프린트 포맷으로의 압축을 위해 지정된 제1 미디어 컨텐츠 포맷을 갖는다. 이미지의 제2 서브세트는 더 낮은 저장 풋프린트 포맷으로의 압축을 바이패스한다.
본 개시의 다른 양태는 다수의 이미지에 대한 압축을 위한 시스템을 제공한다. 시스템은 데이터 처리 하드웨어 및 그 데이터 처리 하드웨어와 통신하는 메모리 하드웨어를 포함한다. 메모리 하드웨어는 데이터 처리 하드웨어에서 실행될 때 데이터 처리 하드웨어로 하여금 동작들을 수행하게 하는 명령들을 저장한다. 동작들은 저장 디바이스에서 복수의 이미지를 수신하는 동작을 포함한다. 복수의 이미지의 각 이미지에 대해, 동작들은 또한 손실 압축을 사용하여 코드워드들을 생성하는 동작을 포함하고, 각 코드워드는 비트 문자열로 정의된다. 동작들은 복수의 이미지의 각 이미지에 대해 생성된 코드워드들에 기초하여 엔트로피 코딩 테이블을 생성하는 동작 및 생성된 엔트로피 코딩 테이블에 따라 복수의 이미지를 엔트로피 인코딩하는 동작을 더 포함한다.
이 양태는 다음의 하나 이상의 선택적 특징을 포함할 수 있다. 일부 구현에서, 코드워드들을 생성하는 동작은 복수의 이미지의 각 이미지를 픽셀 블록으로 분할하는 동작과; 각 픽셀 블록을 변환 계수로 변환하는 동작과; 양자화 인덱스들을 형성하도록 변환 계수를 양자화하는 동작과; 각 양자화 인덱스를 개별 비트 문자열로 표현하는 동작과; 그리고 개별 비트 문자열에 가변 길이 코드를 할당하는 동작을 포함한다. 여기서, 가변 길이 코드는 복수의 이미지 내에서 개별 비트 문자열의 발생이 증가할 때 감소하는 비트 길이를 포함한다. 변환 계수는 이산 코사인 변환(DCT) 계수를 포함할 수 있다. 각 코드워드는 양자화된 뱐환 계수의 고정 길이 비트 문자열일 수 있다. 손실 압축은 JPEG 압축일 수 있다.
일부 예에서, 엔트로피 인코딩 테이블을 생성하는 동작은 발생 빈도로 코드워드들을 컴파일하는 동작 및 코드워드들의 컴파일된 빈도에 기초하여 각 코드워드에 가변 길이 비트 코드를 할당하는 동작을 포함한다. 예를 들어, 발생 빈도는 각 코드워드가 복수의 이미지에 존재하는 횟수를 나타낸다. 여기서, 제1 가변 길이 코드는 제1 코드워드에 할당되고, 제2 가변 길이 코드는 제2 코드워드에 할당된다. 제1 가변 길이 코드는 제2 가변 길이 코드보다 적은 비트를 포함할 수 있으며, 제1 코드워드는 제2 코드워드보다 더 큰 발생 빈도를 포함할 수 있다. 일부 구현에서, 코드워드들의 발생 빈도에 기초하여 각 컴파일된 코드워드에 가변 길이 비트 코드를 할당하는 단계는 모든 컴파일된 코드워드에 대한 가변 길이 비트 코드의 합을 최적화하는 단계를 포함한다.
일부 구성에서, 저장 디바이스는 사용자 디바이스와 통신하는 분산 시스템의 원격 서버를 포함한다. 복수의 이미지를 수신하는 동작은 사용자 디바이스로부터의 업로드에 응답하여 발생하고, 업로드는 사용자 디바이스의 미디어 컨텐츠에 대한 백업 기능과 연관된다. 수신된 복수의 이미지는 고품질 포멧을 가지며, 복수의 이미지의 엔트로피 인코딩은 수신된 복수의 이미지를 더 낮은 저장 공간 포맷으로 압축할 수 있다.
일부 예에서, 복수의 이미지의 각 이미지는 공통 특성을 가지며, 공통 특성은 특정 사용자, 사용자 계정, 미디어 컨텐츠 앨범, 또는 물리적 저장 위치와 연관된다. 복수의 이미지를 수신하는 동작은 복수의 이미지 및 저장 디바이스에서의 저장을 위한 다른 복수의 이미지를 포함하는 미디어 컨텐츠를 수신하는 동작과; 그리고 복수의 이미지가 공통 특성을 갖는다고 결정하는 동작을 포함하고, 상기 공통 특성은 특정 사용자, 사용자 계정, 미디어 컨텐츠 앨범, 또는 물리적 저장 위치와의 연관된다. 부가적으로 또는 대안적으로, 시스템은 생성된 엔트로피 코딩 테이블을 사용하여 엔트로피 인코딩된 복수의 이미지를 저장 디바이스에 있는 다른 복수의 이미지와 별도의 위치에 저장하는 동작을 더 포함할 수 있다.
선택적으로, 복수의 이미지를 수신하는 동작은 저장 디바이스와 통신하는 저장 애플리케이션을 실행하는 사용자 디바이스에서의 미디어 컨텐츠의 생성 또는 수신을 검출하는 동작과 사용자 디바이스에 대한 프롬프트를 생성하는 동작을 포함하고, 프롬프트는 사용자 디바이스의 사용자가 검출된 미디어 컨텐츠를 저장 디바이스에 백업하거나 전송하기를 원하는지 질의한다. 사용자가 검출된 미디어 컨텐츠를 저장 디바이스에 백업하거나 전송하기로 선택하는 경우, 시스템은 엔트로피 인코딩을 위해 미디어 컨텐츠 내의 복수의 이미지를 식별하는 동작을 포함한다.
일부 예에서, 복수의 이미지는 사용자 디바이스에 의한 미디어 컨텐츠의 업로드로부터의 이미지의 제1 서브세트에 대응한다. 여기서, 미디어 컨텐츠의 업로드는 이미지의 제1 서브세트 및 이미지의 제2 서브세트를 포함한다. 이미지의 제1 서브세트는 더 낮은 저장 풋프린트 포맷으로의 압축을 위해 지정된 제1 미디어 컨텐츠 포맷을 갖는다. 이미지의 제2 서브세트는 더 낮은 저장 풋프린트 포맷으로의 압축을 바이패스한다.
본 개시의 하나 이사의 구현의 세부 사항은 첨부된 도명 및 아래의 설명에서 기술된다. 다른 양태, 측징 및 이점은 설명 및 도면 및 청구 범위로부터 명백할 것이다.
도 1은 예시적인 미디어 저장 환경의 개략도이다.
도 2는 도 1의 미디어 저장 환경의 예시적인 압축기의 개략도이다.
도 3은 도 1의 미디어 저장 환경의 예시적인 엔트로피 인코더의 개략도이다.
도 4는 미디어 저장 환경의 저장 시스템에 대한 이미지 압축을 구현하는 방법에 대한 예시적인 동작 배열의 흐름도이다.
도 5는 본 명세서에 설명된 시스템 및 방법을 구현하는데 사용될 수 있는 예시적인 컴퓨팅 디바이스의 개략도입니다.
다양한 도면에서 동일한 참조 부호는 동일한 요소를 나타낸다.
미디어 컨텐츠 저장(storage)은 멀티미디어 압축 기술의 광범위한 채택을 이끌었다. 이러한 기술은 이미지 및/또는 비디오의 크기를 줄이기 위해 거의 모든 유형의 하드웨어 및 소프트웨어 시스템에 사용될 수 있다. 스토리지 제공자는 종종 미디어 컨텐츠 사용자 또는 미디어 컨텐츠 소유자에게 비용 효율적인 저장 솔루션을 제공하기 위해 압축 기술을 사용한다. 압축 기술은 일반적으로 어느 정도 품질을 유지하면서 미디어 컨텐츠(예를 들어, 이미지 또는 비디오) 조각의 크기를 줄이려고 한다. 미디어 컨텐츠 사용자 또는 미디어 컨텐츠 소유자는 자신의 미디어 컨텐츠에 대한 최상의 품질을 유지하는데 관심이 있을 수 있기 때문에 이러한 관심은 많은 양의 저장 공간을 요구할 수 있다. 불행히도, 이러한 관심은 미디어 컨텐츠 저장 비용을 최소화하면서 자신의 저장 공간을 효과적으로 활용하기를 원하는 스토리지 제공자와 전적으로 일치하지 않는다. 다시 말해, 대형 고품질 미디어 컨텐츠는 저장하는데 비용이 많이 들 수 있고 스토리지 제공자에 투자하는 고객(예를 들어, 미디어 컨텐츠 사용자 또는 미디어 컨텐츠 소유자)의 수를 줄일 수 있다. 결과적으로, 스토리지 제공자는 자신의 전체 저장 공간 또는 저장 공간의 일부에 대해 스토리지를 최적화하기를 원한다. 그러나 압축 기술은 이미지당 또는 비디오 기준당 컨텐츠 압축을 최적화하기 위해 역사적으로 개발되어 이러한 기술은 더 큰 규모의 다중 이미지 또는 비디오를 잘 고려하지 못한다. 여기에서 이 문제를 해결하기 위해, 압축 기술은 압축 과정동안 다중 이미지 또는 비디오를 고려한다.
도 1은 미디어 저장 환경(100)의 예이다. 미디어 저장 환경(100)은 사용자(10)가 사용자 디바이스(110)를 통해 통신하여 사진(예를 들어, 이미지(122, 122a-n)) 또는 비디오와 같은 미디어 컨텐츠(120)를 저장하는 환경이다. 사용자(10)는 미디어 컨텐츠(120)의 업로드(112)를 생성하여 미디어 컨텐츠(120)를 네트워크(130)를 통해 저장 시스템(140)으로 전송할 수 있다. 네트워크(130)는 사용자 디바이스(110)와 저장 시스템(140) 사이에서 데이터를 라우팅하도록 구성된 임의의 유형의 통신 네트워크일 수 있다. 도 1-3은 예시적인 목적을 위해 이미지(122)로서 미디어 컨텐츠(120)를 묘사할 수 있지만, 미디어 저장 환경(100) 내의 미디어 컨텐츠(120)는 이미지(예를 들어, 라이브 사진, 모션 사진, 스마트 버스트 사진 등) 또는 비디오를 포함하지만 이에 한정되지 않는 임의의 유형의 미디어 컨텐츠(120)일 수 있다.
사용자(10)는 다양한 이유로 미디어 컨텐츠(120)를 저장 시스템(140)에 저장하도록 선택할 수 있다. 하나의 가능성 있는 이유는 사용자(10)가 사용자 디바이스(110)에 대해 리소스-의식적일 수 있다는 것이다. 다시 말해서, 사용자(10)는 미디어 컨텐츠(120)에 의해 점유되는 사용자 디바이스(110)의 리소스 공간을 통합하거나 최소화하기 위해 저장 시스템(140)에 미디어 컨텐츠(120)를 저장하도록 선택할 수 있다. 예를 들어, 사용자 디바이스(110)는 한정된 양의 저장 공간으로 구성된다. 사용자 디바이스(110)(예를 들어, 데이터 처리 하드웨어(114) 및/또는 메모리 하드웨어(116))의 컴퓨팅 자원에 따라, 사용자(10)는 미디어 컨텐츠(120)를 저장하는 것보다 오히려 사용자 디바이스(110)의 애플리케이션 또는 다른 기능을 실행하기 위해 컴퓨팅 리소스를 할당할 수 있다. 따라서, 사용자(10)는 사용자 디바이스(110)가 아닌 저장 시스템(140)과 같은 원격 위치에 미디어 컨텐츠(120)를 저장하도록 선택할 수 있다.
사용자(10)가 미디어 컨텐츠(120)를 저장하기 위해 저장 시스템(140)을 사용할 수 있는 다른 이유는 저장 시스템(140)과 연관된 미디어 컨텐츠 서비스를 사용하기 위한 것일 수 있다. 저장 시스템(140)의 이러한 미디어 컨텐츠 서비스는 예를 들어 미디어 컨텐츠 애플리케이션(예를 들어, 클라우드 기반 애플리케이션)에 의해 제공될 수 있다. 클라우드 기반 애플리케이션은 일반적으로 원격 시스템의 컴퓨팅 리소스 또는 스토리지 리소스를 사용하거나 액세스하는 애플리케이션을 지칭한다. 예를 들어, 미디어 컨텐츠 애플리케이션은 사용자(10)가 (예를 들어, 사용자 디바이스(110)를 통해) 저장 시스템(140)에 액세스할 수 있도록 구성된다. 일부 구현에서, 미디어 컨텐츠 애플리케이션은 사용자 디바이스(110)의 리소스(예를 들어, 데이터 처리 하드웨어(114) 및/또는 메모리 하드웨어(116))에 액세스하는 사용자 디바이스(110)에서 실행되는 애플리케이션(20)이다. 사용자 디바이스(110)의 리소스에 대한 액세스로, 애플리케이션(20)은 사용자 디바이스(110)상에 위치한 미디어 컨텐츠(120)를 저장 시스템(140)으로 전달할 수 있다. 미디어 컨텐츠 애플리케이션은 저장 시스템(140)으로의 전송 전, 전송 중 또는 전송 후에 미디어 컨텐츠(120)에 대한 미디어 컨텐츠 서비스를 제공할 수 있다. 미디어 컨텐츠 서비스의 일부 예로는 미디어 구성(예를 들어, 사진 앨범, 타임라인, 지오-태깅, 메타데이터 생성/편집), 미디어 편집, 미디어 공유 기능(예를 들어, P2P 미디어 공유), 미디어 저장 등이 있다. 추가적으로 또는 대안적으로, 이러한 미디어 컨텐츠 애플리케이션 중 일부는 다양한 압축 기술 또는 스토리지 관리를 기반으로 하는 스토리지를 전문으로 할 수 있다.
일부 예에서, 미디어 컨텐츠 애플리케이션은 사용자 디바이스(110)의 미디어 컨텐츠(120)에 대한 백업 기능을 제공한다. 이 백업 기능은 자동, 수동 또는 사용자(10)에 의해 맞춤화될 수 있다. 사용자 디바이스(110)가 미디어 컨텐츠 생성 또는 획득(즉, 미디어 컨텐츠(120) 수신)이 가능할 수 있기 때문에, 백업 기능은 사용자(10)가 미디어 컨텐츠(120)를 보존하도록 할 수 있다. 더욱이, 저장 시스템(140)은 백업 기능을 제공함으로써 사용자(10)를 위한 미디어 컨텐츠 관리를 단순화할 수 있다. 예를 들어, 저장 시스템(140)은 미디어 컨텐츠(120)를 앨범(즉, 이미지(122a-n) 또는 비디오의 그룹) 또는 미디어 컨텐츠(120)의 메타데이터(예를 들어, 타임스탬프)에 저장하여 사용자(10)가 미디어 컨텐츠(120)에 편리하게 액세스하거나 탐색할 수 있도록 한다. .
사용자 디바이스(110)는 캡처된 미디어 컨텐츠(120)를 네트워크(130) 및/또는 저장 시스템(140)으로 전달할 수 있는 임의의 컴퓨팅 디바이스 또는 데이터 처리 하드웨어일 수 있다. 예를 들어, 사용자 디바이스(110)는 모바일 폰, 랩탑, 태블릿, PDA(Personal Digital Assistant), 스마트 웨어러블(예를 들어, 스마트워치) 등과 같은 모바일 디바이스이다. 일부 예에서, 사용자 디바이스(110)는 데이터 처리 하드웨어(114), 메모리 하드웨어(116), 및 적어도 하나의 이미지 캡처 디바이스(118)를 포함한다. 다른 예들에서, 사용자 디바이스(110)는 사용자 디바이스(110)가 미디어 컨텐츠(120)를 전송 및 수신할 수는 있지만 미디어 컨텐츠(120)를 생성할 수는 없도록 이미지 캡처 디바이스(118)가 없는 데이터 처리 하드웨어(114) 및 메모리 하드웨어(116)를 포함한다. 이미지 캡처 디바이스(118)는 이미지(122) 또는 이미지 시퀀스(122a-n)(예를 들어, 비디오)를 캡처할 수 있다. 예를 들어, 이미지 캡처 디바이스(118)는 비디오 컨텐츠를 형성하기 위해 특정 주파수에서 단일 이미지(122) 또는 다중 이미지(122a-n)를 캡처하도록 구성된 카메라이다. 이미지(122) 또는 이미지 시퀀스(122a-n)를 캡처함으로써, 이미지 캡처 디바이스(118)는 미디어 컨텐츠(120)를 생성한다.
저장 시스템(140)(저장 디바이스로도 지칭됨)은 일반적으로 미디어 컨텐츠(120)를 저장하도록 구성된 사용자(10) 및/또는 사용자 디바이스(110)로부터 멀리 떨어진 네트워크로 연결된 시스템을 지칭한다. 여기서, 사용자(10)는 저장 시스템(140)에 대한 물리적 액세스 권한이 없지만 네트워크(130)에 대한 네트워크 연결을 통해 사용자 디바이스(110)를 통해 원격 액세스할 수 있다. 저장 시스템(140)은 하나 이상의 네트워크 주소를 갖는 하나 이상의 워크스테이션 및/또는 서버일 수 있다. 저장 시스템(140)은 데이터 처리 하드웨어(144), 메모리 하드웨어(146), 및 소프트웨어 리소스(148)와 같은 리소스(142)를 포함한다. 일부 예에서, 저장 시스템(140)은 리소스들(142)이 다수의 컴퓨팅 시스템에 걸쳐 공유될 수 있는 분산 시스템(예를 들어, 클라우드 환경)이다.
도 1을 더 상세히 참조하면, 사용자(10)는 사용자 디바이스(110)상에 위치한 미디어 컨텐츠(120)를 백업하기로 결정할 수 있다. 미디어 컨텐츠(120)를 백업하기 위해, 사용자(10)는 미디어 컨텐츠(120)(예를 들어, 적어도 하나의 이미지(122))를 저장 시스템(140)에 업로드할 수 있다. 여기서, 도 1은 사용자 디바이스(110)에서 사용자(10)에 의해 업로드된 복수의 이미지(122a-n)를 도시한다. 일부 예에서, 사용자(10)는 미디어 컨텐츠(120)(예를 들어, 이미지(122a-n))의 업로드(112)를 수동으로 생성한다. 다른 예에서, 사용자 디바이스(110)상에서 실행되는 애플리케이션(20)은 미디어 컨텐츠(120)(예를 들어, 이미지(122a-n))의 업로드(112)를 자동으로 생성한다. 예를 들어, 애플리케이션(20)은 미디어 컨텐츠(120)(예를 들어, 이미지(122))의 업로드(112)를 생성하는 자동 백업 프로세스(예를 들어, 미디어 컨텐츠(120)의 저장 및/또는 생성의 특정 시간 또는 특정 임계값에서)를 개시한다. 일부 구성에서, 애플리케이션(20)은 사용자 디바이스(110)에서 (예를 들어, 이미지 캡처 디바이스(118)에 의해) 미디어 컨텐츠(120)의 생성 또는 수신을 검출하도록 구성된다. 애플리케이션(20)이 미디어 컨텐츠(120)의 생성(또는 수신)을 검출하면, 애플리케이션(20)은 생성된 미디어 컨텐츠(120)를 백업(예를 들어, 복사)하고 및/또는 그 미디어 컨텐츠(120)를 저장 시스템(140)으로 전송하도록 사용자 디바이스(110)의 사용자(10)에게 프롬프트할 수 있다. 애플리케이션(20)은 애플리케이션(20)이 사용자 디바이스(110)에서 미디어 컨텐츠 생성을 검출할 때 생성된 미디어 컨텐츠를 자동으로 백업 및/또는 자동으로 전송하도록 구성될 수 있다.
도 1은 이미지(122a-n)와 같은 미디어 컨텐츠(120)가 저장 시스템(140)으로 전달될 때, 압축기(200) 및 엔트로피 인코더(300)가 미디어 컨텐츠(120)를 저장을 위해 (예를 들어, 압축된 이미지(302, 302a-n)로 도시된 바와같이) 압축된 미디어 컨텐츠로 처리하는 것을 도시한다. 압축기(200)와 엔트로피 인코더(300)는 저장 시스템(140) 상의 소프트웨어 리소스들(148)에 대응할 수 있다. 일부 예에서, 저장 시스템(140)은 미디어 컨텐츠(120)(예를 들어, 이미지(122a-n))를 수신한 다음 그 미디어 컨텐츠(120)를 압축기(200)와 엔트로피 인코더(300)로 전달한다. 이미지(122a-n)인 미디어 컨텐츠(120)의 예로서, 사용자(10)는 고품질 포맷(예를 들어, 원시 포맷)으로 이미지(122a-n)를 업로드할 수 있고, 저장 시스템(140)은 업로드된 이미지(122a-n)를 압축기(200) 및 엔트로피 인코더(300)를 사용하여 (예를 들어, JPEG 포멧으로) 후속적으로 재압축할 수 있다. 다른 예에서, 압축기(200)와 엔트로피 인코더(300)는 사용자 디바이스(110)가 미디어 컨텐츠(120)를 저장 시스템(140)에 업로드하기 전에 미디어 컨텐츠(120)를 처리한다. 여기서, 압축기(200)와 엔트로피 인코더(300)의 기능은 사용자 디바이스(110)에서 실행되는 애플리케이션(20)을 통해 사용자 디바이스(110)상에서 실행될 수 있다. 예를 들어, 일단 미디어 컨텐츠(120)(예를 들어, 이미지(122a-n))가 사용자 디바이스(110)에서의 업로드를 위해 (예를 들어, 애플리케이션(20)을 통해) 사용자 디바이스(110)에 의해 지정되면, 압축기(200)와 엔트로피 인코더(300)는 미디어 컨텐츠(120)를 업로드하기 전에 미디어 컨텐츠(120)를 처리할 수 있다. 압축기(200)와 엔트로피 인코더(300)가 저장 시스템(140)으로의 업로드(112)를 위해 지정된 미디어 컨텐츠(120)(예를 들어, 이미지(122a-n))를 처리할 때, 사용자 디바이스(110)는 압축된 크기로 미디어 컨텐츠(120)를 업로드(112)할 수 있고, 이에 의해 업로드(112) 동안 더 적은 대역폭을 요구하면서 더 빠른 업로드 시간을 가능하게 할 수 있다. 미디어 컨텐츠(120)가 업로드(112)를 위해 지정되었는지 여부 또는 업로드가 완료되었는지 여부에 관계없이, 압축기(200)와 엔트로피 인코더(300)는 미디어 컨텐츠(120)(예를 들어, 이미지(122a-n))를 처리하여 저장 시스템(140)상에 저장하기 위한 압축된 미디어 컨텐츠(예를 들어, 압축된 이미지(302a-n)로 도시됨)를 생성하도록 구성된다.
압축기(200)와 엔트로피 인코더(300)에 의해 미디어 컨텐츠(120)를 대응하는 압축된 미디어 컨텐츠(120)로 처리하지 않고, 미디어 컨텐츠(120)(예컨대, 이미지(122a-n))의 저장은 사용자(10)가 고품질 포맷으로 미디어 컨텐츠(120)를 지정하고 업로드할 수 있기 때문에 저장 시스템(140)의 스토리지 제공자에게 비용이 많이 들 수 있다. 특히, 사용자(10)가 미디어 컨텐츠(120)를 고화질 포맷으로 지정하여 업로드하는 경우, 스토리지 제공자는 저장 시스템(140)에 저장하기 전에 상기 미디어 컨텐츠(120)가 상기 대응하는 압축된 미디어 컨텐츠(120)(예컨대, 압축된 이미지(302a-n))로 압축되는 경우보다 더 많은 공간을 차지하는 미디어 컨텐츠(120)를 저장하도록 강제될 수 있다. 따라서, 사용자 디바이스(110)의 점점 더 많은 사용자(10)가 자신의 미디어 컨텐츠(120)를 저장하기 위해 저장 시스템(140)을 사용함에 따라, 스토리지 제공자는 압축기(200) 및 엔트로피 인코더(300)를 이용하여 비용 효율적인 저장 솔루션을 제공할 수 있다. 예를 들어, 압축기(200)와 엔트로피 인코더(300)를 이용하여, 고품질 포멧의 미디어 컨텐츠(120)(예컨대, 이미지(122a-n))는 저장 시스템(140)에서 저장 요구사항을 줄이기 위해 더 낮은 저장 공간 (storage footprint) 포멧의 압축된 미디어 컨텐츠(예컨대, 이미지(302a-n))로 압축될 수 있다. 더욱이, 미디어 컨텐츠(120)가 저장 시스템(140)으로 업로드되기 전에 압축기(200)와 엔트로피 인코더(300)에 의해 압축되는 경우, 업로드 시간 및 대역폭 요구사항이 감소된다.
압축기(200)가 미디어 컨텐츠(120)를 수신할 때, 압축기(200)는 손실 압축을 수행하고 양자화 인덱스들(222)의 출력을 생성하도록 구성된다. 여기서, 엔트로피 인코더(300)는 양자화 인덱스(222)의 출력을 수신하고, 하나 이상의 엔트로피 코딩 테이블(322)(예를 들어, 도 3에 도시됨)에 따라 미디어 컨텐츠(120)를 무손실 프로세스로 엔트로피 인코딩하여 압축된 미디어 컨텐츠(120)(예를 들어, 압축 이미지(302, 302a-n)로 도시됨)를 형성하도록 구성된다. 일부 예에서, 압축기(200)와 엔트로피 인코더(300)는 별도의 컴포넌트(예를 들어, 별도의 소프트웨어 프로그램)이다. 별도의 컴포넌트로서, 압축기(200)와 엔트로피 인코더(300)는 서로 통신하도록 구성되지만, 미디어 저장 환경(100) 내의 상이한 위치에서 구현될 수 있다. 일부 구현에서, 도 1에서 점선 박스로 도시된 바와 같이, 압축기(200)와 엔트로피 인코더(300)는 단일 유닛을 포함한다. 예를 들어, 압축기(200)와 엔트로피 인코더(300)는 저장 시스템(140)과 연관된 미디어 저장 애플리케이션상에서 실행되는 단일 프로그램의 일부이다. 다시 말해, 미디어 저장 애플리케이션은 빌트-인 기능으로서 압축기(200)와 엔트로피 인코더(300)를 포함하는 사용자 디바이스(110)와 통신하는데 사용되는 저장 시스템(140)의 소프트웨어 리소스(148)일 수 있다.
도 2는 압축기(200)의 예이다. 압축기(200)는 업로드(112)로부터 미디어 컨텐츠(120)(예를 들어, 복수의 이미지(122a-n)로 도시됨)의 손실 압축(예를 들어, JPEG 압축)을 수행하도록 구성된다. 손실 압축은 미디어 컨텐츠(120)를 나타내는 데 필요한 데이터의 양을 줄이기 위해 미디어 컨텐츠(예를 들어, 이미지(122))를 처리하는 미디어 압축의 한 형태이다. 미디어 컨텐츠(120)를 표현하는데 필요한 데이터의 양을 줄이기 위해, 손실 압축은 종종 중복(redundant) 정보 또는 압축 기술이 미디어 컨텐츠(120)의 표현에 불필요한 것으로 지정하는 정보를 제거한다. 중복 정보는 코딩 중복, 픽셀 간 중복 또는 심리-시각적 중복일 수 있다. 중복성을 제거함으로써, 손실 압축은 압축 이전의 미디어 컨텐츠(120)(예컨대, 이미지(122))의 원래 형태보다 적은(즉, 압축된) 데이터를 포함하지만 종종 사용자(10)에게 감지할 수 없는 품질 손실을 포함하는 미디어 컨텐츠(120)(예컨대, 압축된 이미지(302))를 형성한다. 이는 압축 알고리즘이 인간 눈에 의한 품질의 실제 인식(즉, 사람의 눈으로 감지할 수 없는 정보)을 고려하여 중복성을 줄이기 때문이다. 예를 들어, 인간 눈은 색차보다 휘도에 더 민감하므로 압축 기술은 종종 색차 정보를 폐기한.
압축기(200)는 일반적으로 변환기(210) 및 양자화기(220)를 포함한다. 일부 예에서, 압축기(200)는 압축기(200)에서 발생하는 손실 압축의 유형에 따라 추가적 또는 대안적인 컴포넌트를 포함한다. 변환기(210)는 사용자 디바이스(110)의 업로드(112)로부터 미디어 컨텐츠(120)(예컨대, 이미지(122a-n)로 도시됨)를 수신하도록 구성된다. 도 2를 참조하면, 각 이미지(122)에 대해, 변환기(210)는 동작(212)에서, 이미지(122)를 서브-블록(예를 들어, 픽셀 블록)(213)으로 파티션/분할한다. 예를 들어, 변환기(210)는 이미지(122)를 8×8 픽셀 블록(213)으로 파티션/분할한다. 각 서브-블록(213)을 통해, 동작(214)에서, 변환기(210)는 서브-블록(213)을 변환하여 (예를 들어, 이산 코사인 변환(DCT)에 의해) 대응하는 변환 계수(216)를 생성한다. 예를 들어, 8×8 서브 블록을 통해, 서브 블록(213)은 2개의 공간 차원에서 효과적으로 64-포인트 이산 신호이다. 이와 같이 8×8 서브블록(213)의 DCT 변환의 경우, DCT 변환은 64-포인트 이산 신호를 64개의 공간 주파수의 분해로 변환하여 변환 계수(216)로서 64개의 신호 진폭 세트를 출력한다. 이러한 변환 계수(216)는 두 차원 모두에서 주파수가 0인 일부 계수(DC 계수라고도 함) 및 주파수가 0이 아닌 일부 계수(AC 계수라고도 함)를 가질 수 있다. 여기서, 낮은 숫자의 계수는 저주파 색상 변화(즉, 영역 전체의 점진적인 색상 변화)를 나타내는 반면 높은 숫자의 계수는 고주파 색상 변화(즉, 한 블록 내에서 한 픽셀에서 다른 픽셀로의 급격한 변화)를 나타낸다. 일부 예에서, 변환 계수들(216)은 미디어 컨텐츠(120)(예컨대, 이미지(122))를 나타내는 심볼들의 비-양자화 형태이다. 변환 계수(216)를 생성함으로써, 변환기(210)는 엔트로피 인코더(300)에 의한 중복 이미지 데이터의 제거를 돕기 위해 중복 이미지 데이터와 비중복 이미지 데이터를 상관시킬 수 있다. 일부 구현에서, 변환 계수들(216)은 또한 엔트로피 인코더(300)가 코드워드 생성을 돕기 위해 0이 아닌 분산을 갖는 변환 서브-블록(213)당 계수들의 수를 쉽게 결정할 수 있게 한다. 일단 변환기(210)가 변환 계수(216)를 생성하면, 변환기(210)는 그 변환 계수(216)를 양자화기(220)로 전달한다.
일부 예에서, 변환기(210)는 추가 동작들을 수행한다. 이러한 동작에는 미디어 컨텐츠 준비가 포함될 수 있다. 일부 구성에서, 미디어 컨텐츠 준비의 동작들은 변환기(210)가 동작(212)에서 미디어 컨텐츠(120)를 서브-블록(213)으로 분할하기 전에 발생한다. 미디어 컨텐츠 준비를 위해, 변환기(210)는 미디어 컨텐츠(120)를 색 공간의 성분(예를 들어, 휘도(Y), 청색 색차(U), 적색 색차(V))으로 분리할 수 있다. 변환기(210)가 미디어 컨텐츠(120)(예컨대, 이미지(122))를 색 공간 성분으로 분리하는 경우, 변환기(210)는 추가로 색 공간 성분(예를 들어, 색차 성분)을 픽셀 영역별로 서브샘플링할 수 있다.
양자화기(220)는 변환 계수(216)를 수신하고 변환 계수(216)에 기초하여 양자화 프로세스(예를 들어, 스칼라 양자화)를 수행하도록 구성된다. 양자화 프로세스는 일반적으로 입력 파라미터를 출력 값의 더 작은 데이터 세트로 변환한다. 양자화 프로세스는 아날로그에서 디지털로 변환될 수 있지만, 여기서 양자화 프로세스는 변환된 디지털 미디어 컨텐츠의 디지털 컨텐츠를 처리한다. 양자화 프로세스를 사용함으로써 데이터가 압축될 수 있지만, 더 작은 데이터 세트는 더 크거나 연속적인 데이터 세트(즉, 손실 프로세스)의 축소이기 때문에 데이터 손실의 일부 측면을 희생해야 한다. 양자화기(220)는 변환기(210)로부터의 각 서브-블록(213)의 변환 계수(216)를 양자화 인덱스들(222)로 양자화(예를 들어, 스칼라 양자화)한다. 예로서, 양자화기(220)는 각각의 변환 계수(216)를 대응하는 양자화기 스텝 사이즈로 나눈 다음 결과값을 가장 가까운 정수로 반올림하여 양자화 인덱스들(222)을 형성할 수 있다. 여기서, 양자화 인덱스(222)는 코드워크 형성 및 엔트로피 인코딩을 위해 엔트로피 인코더(300)로 전달된다. 일부 예에서, 변환 계수들(216)의 스칼라 양자화에 의한 양자화는 중복 미디어 컨텐츠 데이터(예를 들어, 인코딩 동안 제거될 수 있는 데이터)를 가치있는 미디어 컨텐츠 데이터(예를 들어, 제거되어서는 안 되는 데이터)와 대조하기 위해 압축기(200)에서의 손실 압축 프로세스가 각 변환 계수(216)를 스케일링하도록 할 수 있다.
일부 예에서, 양자화 테이블은 양자화기(220)에 대한 양자화기 스텝 사이즈를 특정한다. 양자화 테이블은 압축 포맷(예를 들어, 원하는 품질 설정)에 기초한 디폴트 양자화 테이블 또는 손실 압축의 목적(즉, 압축 애플리케이션)에 기초한 커스텀 양자화 테이블일 수 있다. 일부 구성에서, 양자화기 스텝 사이즈는 변환 계수(216)가 미세 양자화 및/또는 거친 양자화를 수신하는지, 또는 일부 경우에 어느 변환 계수(216)가 미세 양자화를 수신하고 어느 것이 거친 양자화를 수신하는지 여부를 지시한다. 미세 양자화는 종종 원래 이미지와 더 유사하지만 거친 양자화는 원래 이미지의 덜 정확한 유사성을 형성한다. 양자화 테이블은 상이한 압축 애플리케이션에 대해 상이할 수 있기 때문에, 압축된 미디어 컨텐츠(예컨대, 압축된 이미지(302))는 압축 해제를 가능하게 하기 위해 양자화 동안 사용된 양자화 테이블을 저장할 수 있다.
도 3을 참조하면, 엔트로피 인코더(300)는 압축기(200)로부터, 손실 압축으로부터의 복수의 이미지(122a-n)에 대한 양자화 인덱스(222)를 수신한다. 미디어 컨텐츠(120)(예를 들어, 복수의 이미지(122a-n))에 대한 양자화 인덱스(222)를 사용하여, 엔트로피 인코더(300)는 미디어 컨텐츠(120)를 대응하는 압축(된) 미디어 컨텐츠(예를 들어, 압축(된) 이미지(302a-n)로 도시됨)로 인코딩하도록 구성된다. 도 3에 도시된 바와 같이, 엔트로피 인코더(300)는 일반적으로 코더(310), 코딩 테이블 생성기(320) 및 인코더(330)를 포함한다. 코더(310)는 양자화 인덱스(222)에 기초하여 코드워드들(312)을 생성하도록 구성된다. 코드워드(312)는 데이터의 심볼(예를 들어, 비트, 바이트, 변환 계수, 양자화된 변환 계수, 양자화 인덱스, 벡터 등)을 표현하는데 사용되는 비트 문자열을 지칭한다. 다시 말해, 이들 심볼은 압축기(200)로부터의 압축 기반 데이터를 나타낼 수 있다. 일부 구현에서, 코더(310)는 실행-길이(run-length 인코딩(RLE)을 수행하기 위해 양자화 인덱스들(222)을 정렬한다. 예를 들어, 코더(310)는 (예를 들어, 순차 인코딩에서) 지그재그 시퀀스를 사용하여 양자화 인덱스들(222)을 정렬한 다음, 지그재그 시퀀스에 대한 실행-길이 코딩 알고리즘을 사용하여 심볼을 생성할 수 있다. 예를 들어, RLE는 양자화 인덱스(222) 행렬의 선형 변환을 수행하여 양자화 인덱스를 벡터 형태를 갖는 심볼로 벡터화한다. 8×8 서브-블록(213)을 설명하기 위해, 코드워드(312)의 심볼은 지그재그 시퀀스에 따라 정렬된 64개의 양자화 인덱스(222)를 나타내는 벡터에 대응한다. 다른 예에서, 코더(310)는 순차 패턴(예를 들어, 지그재그 시퀀스) 대신에 코더(310)가 심볼을 생성하기 위해 배치(batch)에서 유사한 위치의 양자화 인덱스(222)를 스캔하는 프로그레시브 인코딩(예를 들어, 프로그레시브 JPEG에 대응하는 프로그레시브 인코딩)의 일부 또는 전부를 사용한다.
일부 구성에서, RLE 동안, 코더(310)는 연속적인 0 양자화 인덱스(222)를 통합하고 0이 아닌 양자화 인덱스(222)를 코딩함으로써 양자화 인덱스들(222)을 나타내는 코드워드들(312)을 생성한다. 예를 들어, 각각의 코드워드(312)는 2개의 심볼, 즉 제1 심볼 및 제2 심볼의 조합으로 형성된다. 제1 심볼은 실행-길이(즉, 0이 아닌 양자화 인덱스(222) 이전의 양자화 인덱스(222)에서 0의 수) 및 0 양자화 인덱스(222)의 실행-길이에 뒤따르는 0이 아닌 양자화 인덱스(222)를 나타내는 비트 수에 대응하는 사이즈)를 나타낸다. 제2 심볼은 제1 심볼의 0이 아닌 양자화 인덱스(222)에 대응하는 크기(amplitude)를 나타낸다. 설명하기 위해, 8×8 서브블록(213)에 대한 64개의 양자화 인덱스(222)를 나타내는 벡터를 통해, 벡터는 (41, 0, 0, 0, 67,...)과 같은 양자화 인덱스(222)의 시퀀스를 포함할 수 있다. 여기서, 41의 0이 아닌 양자화 인덱스(222) 앞에 0 양자화 인덱스(222)가 없고 67의 0이 아닌 양자화 인덱스(222) 앞에 3개의 0 양자화 인덱스(222)가 있기 때문에 코더(310)는 이 시퀀스를 (0, 41); (3, 67)로 표현할 수 있다. 양자화 인덱스(222)에 대한 심볼을 사용하여, 코더(310)는 비트 문자열로 정의된 코드워드들(312)을 형성한다. 일부 예에서, 코더(310)는 각각의 코드워드가 양자화 인덱스들(222)(예를 들어, 양자화된 변환 계수들)을 나타내는 고정 길이 비트 문자열인 코드워드들(312)을 형성한다. 예를 들어, 각 코드워드(312)는 4비트 값으로 코딩된다. 일부 예에서, 블록의 끝(예를 들어, 블록 마커의 끝) 또는 고정 길이 비트 문자열에 대한 0의 최대 실행-길이에 대응하는 특수 코드워드(312)가 있다. 예를 들어, 4비트 값의 경우, 최대 실행-길이 특수 코드워드(312)는 16개의 연속 0에 해당한다. 코더(310)에 의해 생성된 코드워드들(312)은 각각의 심볼(예를 들어, 실행-길이 표현, 또는 0이 아닌 양자화 인덱스(222) 표현)에 대응할 수 있다. 일단 코더(310)가 코드워드들을 생성하면, 코드워드들(312)은 코딩 테이블 생성기(320)로 전달될 수 있다.
코딩 테이블 생성기(320)는 코더(310)로부터 수신된 코드워드들(312)에 기초하여 하나 이상의 엔트로피 코딩 테이블(322)을 생성한다. 전통적으로, 손실 압축(예를 들어, JPEG 압축)에 기반한 엔트로피 인코딩 동안, 엔트로피 인코딩은 표준 엔트로피 코딩 테이블 또는 미디어 컨텐츠(120)의 단일 요소에 최적화된 엔트로피 코딩 테이블을 사용한다. 예를 들어, 손실 압축은 단일 이미지에 대한 코드워드들을 생성하고 엔트로피 인코더(300)는 단일 이미지로부터 생성된 코드워드들에만 기초하여 인코딩한다. 이 프로세스는 손실 압축과 엔트로피 인코딩을 결합하여 미디어 컨텐츠를 압축할 수 있지만 불행하게도 이 압축 프로세스는 모든 미디어 컨텐츠(예를 들어, 업 로드(112)로부터의 이미지(122a-n) 또는 이미지(122a-n) 세트)에 걸쳐 전체 저장을 위한 최적화가 없고(lack) 및/또는 미디어 컨텐츠의 다수의 요소의 특정 세트에 대한 특정 최적화가 없다. 보다 구체적으로, 일반적으로 엔트로피 코딩 테이블은 미디어 컨텐츠의 다수의 요소를 고려하지 않는다(즉, 다수의 이미지에 대해 엔트로피 코딩 테이블을 생성함). 표준 엔트로피 코딩 테이블이 특정 비트 정밀도를 가진 큰 이미지 세트의 평균 통계에 기초할 수 있지만, 이러한 테이블은 예를 들어 특정 복수의 이미지(122a-n)(예를 들어, 저장 시스템(140)에 저장될 특정 이미지 세트(122a-n))에 고유하지 않으며, 따라서 스토리지 제공자에게 저장 비효율성을 유발할 수 있다. 엔트로피 코딩 테이블을 생성할 때 저장 시스템(140)에 결정적으로 저장되거나 저장될 미디어 컨텐츠(120)의 다수의 요소(예를 들어, 다수의 이미지(122a-n))를 고려함으로써, 압축기(200)와 엔트로피 인코더(300)는 스토리지 제공자를 위해 미디어 컨텐츠 저장을 최적화할 수 있고, 따라서 잠재적으로 저장 비용을 줄이거나 사용자(10)의 저장 비용을 안정화한다.
일부 예에서, 압축기(200) 및/또는 엔트로피 인코더(300)는 미디어 컨텐츠(120)의 상이한 컬렉션(모음) 또는 세트에 대해 스토리지를 최적화하도록 구성된다. 이러한 예에서, 미디어 컨텐츠(120)는 공통 특성을 공유할 수 있다. 예를 들어, 압축기(200) 및/또는 엔트로피 인코더(300)는 하나 이상의 사용자(10)(예를 들어, 애플리케이션(20) 및/또는 저장 시스템(140)를 갖는 사용자(10)의 사용자 계정)와 연관된 미디어 컨텐츠(120)를 위한 스토리지를 최적화하도록 구성된다. 다른 규모에서, 압축기(200) 및/또는 엔트로피 인코더(300)는 미디어 컨텐츠 앨범 또는 주어진 메타데이터 특성을 공유하는 미디어 컨텐츠의 컬렉션과 같은 미디어 컨텐츠(120)의 하나 이상의 서브세트에 걸쳐 스토리지를 최적화하도록 구성될 수 있다. 일부 구성에서, 애플리케이션(20) 및/또는 저장 시스템(140)은 압축기(200) 및/또는 엔트로피 인코더(300)를 사용하여 저장 시스템(140)의 일부(예를 들어, 특정 물리적 저장 위치) 또는 전체(예를 들어, 전체 원격 시스템 또는 데이터 센터)에 대해 스토리지를 최적화한다. 시스템 또는 데이터 센터). 애플리케이션(20) 및/또는 저장 시스템(140)은 미디어 컨텐츠의 공통 특성(예를 들어, 미디어 컨텐츠(120)의 유형 또는 미디어 컨텐츠(120)의 지정된 저장 위치)을 식별하고, 식별이 압축기(200) 및/또는 또는 엔트로피 인코더(300)를 이용할 것인지 여부를 결정한다. 예를 들어, 애플리케이션(20) 및/또는 저장 시스템(140)은 업로드된 미디어 컨텐츠의 일부 또는 전부가 공통 특성을 공유함을 식별하고, 그 공통 특성을 갖는 미디어 컨텐츠를 압축기(200) 및/또는 엔트로피 인코더(300)로 전달할 수 있다.
일부 구성에서, 업로드(112)의 미디어 컨텐츠(120)는 복수의 이미지(122a-n)가 업로드(112)의 이미지(122a-n)의 서브세트에 대응할 수 있도록 상이한 품질 포맷을 갖는 미디어 컨텐츠 요소를 포함한다. 예를 들어, 압축기(200) 및/또는 엔트로피 인코더(300)에 대한 복수의 이미지(122a-n)를 정의하는 이미지(122a-n)의 서브세트는 큰(예를 들어, 고) 품질 포멧을 갖는 업로드(112)의 이미지에 대응한다. 이 구성에서, 압축기(200) 및/또는 엔트로피 인코더(300)는 미디어 컨텐츠(120)의 품질 차이를 식별하여 처리될 이미지(122a-n)의 서브세트를 결정할 수 있다. 즉, 업로드(112)의 일부 미디어 컨텐츠(120)는 식별되지 않은 미디어 컨텐츠(120)가 (예를 들어, 압축기(200) 및/또는 엔트로피 인코더(300)에 의한 처리 없이) 저장 시스템(140)에 저장되는 동안 더 낮은 저장 포멧(예를 들어, 이미지(122a-n)의 식별된 서브세트)으로 압축될 수 있다.
추가적으로 또는 대안적으로, 저장 시스템(140) 및/또는 애플리케이션(20)의 스토리지 제공자는 압축기(200) 및/또는 엔트로피 인코더(300)에 의해 처리될 미디어 컨텐츠 포맷을 지정한다. 예를 들어, 애플리케이션(20)(또는 압축기(200) 및 엔트로피 인코더(300))은 더 낮은 저장 공간 포맷으로 압축될 최소 파일 크기를 나타내는 파일 사이즈 임계값으로 프로그래밍될 수 있다. 일부 예에서, 애플리케이션(20)은 압축기(200) 및/또는 엔트로피 인코더(300)에 의해 압축될 미디어 컨텐츠 포멧을 더 낮은 저장 공간 포맷으로 카테고리적으로 지정하도록 구성된다.
계속해서 도 3의 엔트로피 인코더(300)를 참조하면, 코딩 테이블 생성기(320)는 복수의 이미지(122a-n)(예를 들어, 업로드(112)의 미디어 컨텐츠(120))에 대한 코드워드들(312)을 수신한다. 일부 예에서, 코딩 테이블 생성기(320)는 더 많은 미디어 컨텐츠(120)가 저장 시스템(140)으로 전달될 때마다 저장 시스템(140)이 모든 저장된 미디어 컨텐츠에 걸쳐 저장 효율성을 유지하도록 스토리지 제공자 또는 저장 시스템(140)에 대한 엔트로피 코딩 테이블(322)을 재생성한다. 일부 구현들에서, 코딩 테이블 생성기(320)는 (예를 들어, 업로드(112)에 의해) 압축기(200) 및/또는 엔트로피 인코더(300)에 함께 전송된 복수의 이미지들(122a-n)에 대해서만 코딩 테이블(322)을 생성한다.
일부 예에서, 엔트로피 코딩 테이블(322)은 하나 이상의 코드워드(312), 각각의 코드워드(312)에 대한 발생 빈도, 및 각 코드워드(312)에 매핑된 가변 길이 비트 문자열(예를 들어, 가변 코드(324)로 도시됨)을 포함하는 비트 문자열 맵이다. 일부 구성에서, 발생 빈도는 특정 코드워드(312)가 미디어 컨텐츠(120)(예를 들어, 복수의 이미지(122a-n))에 존재하여 코딩 테이블 생성기(320)가 대응하는 발생 빈도로 각 코드워드(312)를 컴파일하는 횟수의 카운트에 대응한다. 예를 들어, 도 3은 가장 빈번한(4.2) 빈도에서 빈도가 가장 낮은(1.1) 빈도로 정렬된 코드워드(312a-n)를 도시한다. 일부 예에서, 가변 길이 비트 문자열은 고정 길이 비트 문자열에 맵핑되어 더 큰 빈도를 갖는 코드워드(312)가 더 적은 비트를 갖는 가변 길이 비트 문자열에 맵핑된다. 예를 들어, 코드워드(312)가 다른 코드워드(312)에 비해 가장 큰 빈도로 나타날 때, 코딩 테이블 생성기(320)는 가변 길이 비트 문자열(예를 들어, 도 3에서 가변 코드(324)로 도시됨)을 최소 비트량으로 할당한다. 즉, 코딩 테이블 생성기(320)가 제1 코드워드(312a)에 제1 가변 길이 코드(324a)를 할당하고, 제2 코드워드(312b)에 제2 가변 길이 코드(324b)를 할당하는 경우, 제 가변 길이 코드(324b)는 제1 코드워드(312a)가 제2 코드워드(312b)보다 더 큰 발생 빈도를 갖기 때문에 제2 가변 길이 코드(324b)보다 적은 비트를 포함한다. 일부 예에서, 빈도의 범위는 2개의 코드워드(312)(예를 들어, 제1 코드워드(312a) 및 제2 코드워드(312b))가 상이한 빈도을 갖더라도, 이들 코드워드(312a-n) 각각이 상이한 비트의 대응하는 가변 길이 코드(324a-n)를 갖지만 동일한 가변 길이 비트 문자열을 갖을 수 있도록 특정 가변 길이 비트 문자열에 할당될 수 있다. 고정 길이 비트 문자열(예를 들어, 코드워드(312))에 대한 발생 빈도에 비례하는 비트량으로 가변 길이 비트 문자열(예를 들어, 가변 길이 코드(324))을 할당함으로써, 코딩 테이블 생성기(320)는 가변 길이 비트 문자열에 따른 미디어 컨텐츠(120)(예컨대, 이미지(122))의 표현이 압축 미디어 컨텐츠(예를 들어, 압축 이미지(302))를 형성하는데 필요한 비트 수를 감소시킬 가능성이 있음을 보장할 수 있다. 즉, 가변 길이 비트 문자열의 비트 길이의 합이 최적화될 수 있다.
인코더(330)는 코딩 테이블 생성기(320)에 의해 생성된 엔트로피 코딩 테이블(322)을 사용하여 미디어 컨텐츠(120)의 압축 버전(예를 들어, 압축 이미지(302a-n))을 생성하는 엔트로피 인코딩을 수행한다. 엔트로피 인코딩은 엔트로피 인코딩을 통해 압축된 데이터로부터 원본 데이터를 완벽하게 재구성할 수 있기 때문에 무손실 데이터 압축 프로세스로 지칭될 수 있다. 인코더(330)는 미디어 컨텐츠(120)(예컨대, 이미지(122a-n)) 및 엔트로피 코딩 테이블(322)에 대한 코드워드들(312)을 수신하고, 미디어 컨텐츠(120)(예컨대, 이미지(122a-n)) 내의 각 코드워드(312)를 엔트로피 코딩 테이블(322)에 의해 지정된 대응하는 가변 길이 코드(324a-n)로 대체한다. 이 프로세스를 위해, 인코더(330)는 엔트로피 코딩 테이블(들)(322)과 함께, 허프만 코딩 또는 산술 코딩과 같은 엔트로피 인코딩 기술을 사용할 수 있다. 이러한 엔트로피 인코딩 기술은 엔트로피 코딩 테이블(들)(322)에 의해 표시된 바와 같이 (예를 들어, 빈도에 따라) 코드워드(312)에 매핑될 가변 길이 코드(324)의 사이즈를 정의할 수 있다.
도 4는 압축된 미디어 컨텐츠가 압축 이미지(302, 302a-n)인 저장 시스템(140)에서의 저장을 위해 압축 미디어 컨텐츠를 생성하기 위한 예시적인 방법(400)의 흐름도이다. 동작(402)에서, 방법(400)은 저장 디바이스(예를 들어, 저장 시스템(140)(예를 들어, 저장 시스템(140)의 메모리 하드웨어(146)))에서 복수의 이미지(122, 122a-n)를 수신한다. 동작(404)에서, 복수의 이미지(122)의 각각의 이미지(122)에 대해, 방법(400)은 손실 압축을 사용하여 코드워드들(312)을 생성한다. 여기서, 각 코드워드(312)는 비트열로 정의된다. 동작(406)에서, 방법(400)은 복수의 이미지(122)의 코드워드(312)에 기초하여 엔트로피 코딩 테이블(322)을 생성한다. 동작(408)에서, 방법(400)은 생성된 엔트로피 코딩 테이블(322)을 사용하여 복수의 이미지(122)를 엔트로피 인코딩한다. 일부 구현에서, 사용자 디바이스(110)는 사용자 디바이스(110) 상의 압축기(200) 및/또는 엔트로피 인코더(300)의 기능을 구현하도록 구성된 애플리케이션(20)을 실행한다. 이러한 구현에서, 사용자 디바이스(110)는 복수의 이미지(122)를 로컬로 저장하고 복수의 이미지들(122)을 로컬로 인코딩하기 위해 동작들(404, 406, 408)을 로컬로 수행한다. 이어서 사용자 디바이스(110)는 저장 디바이스(예를 들어, 저장 시스템(140))에 저장하기 위해 압축 이미지(302)로서 인코딩된 이미지를 업로드할 수 있다.
일부 구현에서, 복수의 이미지(122a-n)는 특히 복수의 이미지(122a-n)의 컬렉션에 기초한 엔트로피 코딩 테이블(322)에 따라 엔트로피 인코딩될 미디어 컨텐츠(120)의 부분을 나타낸다. 다시 말해서, 복수의 이미지(122a-n)는 미디어 컨텐츠(120)의 서브세트로서 형성될 수 있지만, 복수의 이미지(122a-n)는 엔트로피 인코딩을 바이패스하는 복수의 이미지(122a-n)의 단일 이미지가 없도록 집합적으로 모두 엔트로피 인코딩된다.
도 5는 문 문서에 설명된 시스템(예를 들어, 사용자 디바이스(110), 저장 시스템(140), 압축기(200), 및/또는 엔트로피 인코더(300)) 및 방법(예를 들어, 방법(400))을 구현하는데 사용될 수 있는 예시적인 컴퓨팅 디바이스(500)의 개략도이다. 컴퓨팅 디바이스(500)는 랩탑, 데스크탑, 워크스테이션, PDA, 서버, 블레이드 서버, 메인프레임 및 기타 적절한 컴퓨터와 같은 다양한 형태의 디지털 컴퓨터를 나타내도록 의도된다. 본 명세서에 도시된 컴포넌트, 이들의 연결 및 관계, 및 이들의 기능은 예시일 뿐이며, 본 문서에서 설명 및/또는 청구된 발명의 구현을 제한하려는 것은 아니다.
컴퓨팅 디바이스(500)는 프로세서(510)(예컨대, 데이터 처리 하드웨어), 메모리(520)(예컨대, 메모리 하드웨어), 저장 디바이스(530), 메모리(520) 및 고속 확장 포트(550)에 연결되는 고속 인터페이스/컨트롤러(540), 및 저속 버스(570) 및 저장 디바이스(530)에 연결되는 저속 인터페이스/컨트롤러(560)를 포함한다. 각 컴포넌트(510, 520, 530, 540, 550, 560)는 다양한 버스를 사용하여 상호 연결되며, 공통 마더보드에 장착되거나 적절한 다른 방식으로 장착될 수 있다. 프로세서(510)는 고속 인터페이스(540)에 연결된 디스플레이(580)와 같은 외부 입/출력 디바이스에 그래픽 사용자 인터페이스(GUI)에 대한 그래픽 정보를 표시하기 위해 메모리(520) 또는 저장 디바이스(530)에 저장된 명령들을 포함하여 컴퓨팅 디바이스(500) 내에서 실행하기 위한 명령들을 처리할 수 있다. 다른 구현에서, 다중 프로세서 및/또는 다중 버스가 다수의 메모리 및 다수 유형의 메모리와 함께 적절하게 사용될 수 있다. 또한, 다수의 컴퓨팅 디바이스(500)는 필요한 동작들의 일부를 제공하는 각 디바이스(예를 들어, 서버 뱅크, 블레이드 서버 그룹 또는 다중 프로세서 시스템)와 연결될 수 있다.
메모리(520)는 정보를 컴퓨팅 디바이스(500) 내에 비-일시적으로 저장한다. 메모리(520)는 컴퓨터 판독가능 매체, 휘발성 메모리 유닛(들), 또는 비-휘발성 메모리 유닛(들)일 수 있다. 비-일시적 메모리(520)는 컴퓨팅 디바이스(500)에 의한 사용을 위해 임시 또는 영구적으로 프로그램(예를 들어, 명령 시퀀스) 또는 데이터(예를 들어, 프로그램 상태 정보)를 저장하는데 사용되는 물리적 디바이스일 수 있다. 비-휘발성 메모리의 예에는 플래시 메모리 및 판독 전용 메모리(ROM)/프로그램 가능 판독 전용 메모리(PROM)/소거 가능한 프로그램 가능 판독 전용 메모리(EPROM)/전자적으로 소거 가능한 프로그램 가능 판독 전용 메모리(EEPROM)(예를 들어, 일반적으로 부팅 프로그램과 같은 펌웨어에 사용됨)를 포함하지만 이에 한정되지 않는다. 휘발성 메모리의 예에는 RAM, DRAM, SRAM(Static Random Access Memory), PCM(Phase Change Memory) 및 디스크 또는 테이프가 포함되지만 이에 한정되지 않는다.
저장 디바이스(530)는 컴퓨팅 디바이스(500)를 위한 대용량 저장 디바이스를 제공할 수 있다. 일부 구현에서, 저장 디바이스(530)는 컴퓨터 판독 가능 매체이다. 다양한 상이한 구현에서, 저장 디바이스(530)는 플로피 디스크 디바이스, 하드 디스크 디바이스, 광 디스크 디바이스, 또는 테이프 디바이스, 플래시 메모리 또는 다른 유사한 고체 상태 메모리 디바이스, 또는 저장 영역 네트워크 또는 다른 구성에서의 디바이스들을 포함하는 디바이스 어레이일 수 있다. 추가 구현에서, 컴퓨터 프로그램 제품은 정보 매체(carrier)에 유형적으로 구현된다. 컴퓨터 프로그램 제품은 실행될 때 전술한 것과 같은 하나 이상의 방법을 수행하는 명령들을 포함한다. 정보 매체는 메모리(520), 저장 디바이스(530), 또는 프로세서(510) 상의 메모리와 같은 컴퓨터 판독 가능 또는 기계 판독 가능 매체이다.
고속 제어기(540)는 컴퓨팅 디바이스(500)에 대한 대역 집약적 동작을 관리하는 반면, 저속 제어기(560)는 더 낮은 대역 집약적 동작을 관리한다. 이러한 직무 할당은 예시일 뿐이다. 일부 구현에서, 고속 컨트롤러(540)는 메모리(520), 디스플레이(580)(예를 들어, 그래픽 프로세서 또는 가속기를 통해), 및 다양한 확장 카드(미도시)를 수용할 수 있는 고속 확장 포트(550)에 연결된다. 일부 구현에서, 저속 컨트롤러(560)는 저장 디바이스(530) 및 저속 확장 포트(590)에 연결된다. 다양한 통신 포트(예를 들어, USB, 블루투스, 이더넷, 무선 이더넷)를 포함할 수 있는 저속 확장 포트(590)는 하나 이상의 입/출력 디바이스(예를 들어, 키보드, 포인팅 디바이스, 스캐너) 또는 예를 들어, 네트워크 어댑터를 통해 스위치 또는 라우터와 같은 네트워킹 디바이스에 연결될 수 있다.
컴퓨팅 디바이스(500)는 도면에 도시된 바와 같이 다수의 상이한 형태로 구현될 수 있다. 예를 들어, 표준 서버(500a)로서 또는 이러한 서버(500a)의 그룹에서 랩톱 컴퓨터(500b)로서 또는 랙 서버 시스템(500c)의 일부로서 여러 번 구현될 수 있다.
본 명세서에 기술된 시스템 및 기술의 다양한 구현은 디지털 전자 및/또는 광 회로, 집적 회로, 특별히 설계된 ASIC, 컴퓨터 하드웨어, 펌웨어, 소프트웨어, 및/또는 이들의 조합으로 실현될 수 있다. 이러한 다양한 구현은 저장 시스템, 적어도 하나의 입력 디바이스 및 적어도 하나의 출력 디바이스로부터 데이터 및 명령을 수신하고 이들로 데이터 및 명령을 전송하기 위해 결합된 특수 또는 범용일 수 있는 적어도 하나의 프로그램 가능한 프로세서를 포함하는 프로그램 가능한 시스템에서 실행 가능 및/또는 해석 가능한 하나 이상의 컴퓨터 프로그램에서의 구현을 포함할 수 있다.
이러한 컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 애플리케이션 또는 코드로도 알려짐)은 프로그램 가능한 프로세서에 대한 기계 명령을 포함하고, 고급 절차 및/또는 객체 지향 프로그래밍 언어 및 어셈블리/기계어로 구현될 수 있다. 본 명세서에서 사용되는 "기계 판독 가능 매체" 및 "컴퓨터 판독 가능 매체"라는 용어는 기계 판독 가능 신호로서 기계 명령을 수신하는 기계 판독 가능 매체를 포함하여 프로그램 가능한 프로세서에 기계 명령 및/또는 데이터를 제공하는데 사용되는 임의의 컴퓨터 프로그램 제품, 비-일시적 컴퓨터 판독 가능 매체, 장치 및/또는 디바이스(예를 들어, 자기 디스크, 광 디스크, 메모리, 프로그램 가능 논리 디바이스(PLD))를 지칭한다.
본 명세서에 설명된 프로세스 및 논리 흐름은 입력 데이터에 대해 동작하고 출력을 생성함으로써 기능을 수행하기 위해 하나 이상의 컴퓨터 프로그램을 실행하는 하나 이상의 프로그램 가능한 프로세서에 의해 수행될 수 있다. 프로세스 및 논리 흐름은 FPGA(필드 프로그래밍 가능 게이트 어레이) 또는 ASIC(애플리케이션 특정 집적 회로)와 같은 특수 목적 논리 회로에 의해 수행될 수도 있다. 컴퓨터 프로그램의 실행에 적합한 프로세서는 예를 들어 범용 및 특수 목적 마이크로프로세서, 및 임의의 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서를 포함한다. 일반적으로, 프로세서는 판독 전용 메모리나 랜덤 액세스 메모리 또는 둘 다에서 명령과 데이터를 수신한다. 컴퓨터의 필수 요소는 명령을 수행하기 위한 프로세서와 명령 및 데이터를 저장하기 위한 하나 이상의 메모리 디바이스이다. 일반적으로, 컴퓨터는 또한 데이터를 저장하기 위한 하나 이상의 대용량 저장 디바이스, 예를 들어 자기, 광자기 디스크, 또는 광 디스크로부터 데이터를 수신하거나 이들로 데이터를 전송하거나 둘 모두를 포함하거나 작동 가능하게 연결된다. 그러나, 컴퓨터에는 그러한 디바이스가 필요하지 않다. 컴퓨터 프로그램 명령 및 데이터를 저장하기에 적합한 컴퓨터 판독 가능 매체는 예를 들어 반도체 메모리 디바이스(에컨대, EPROM, EEPROM 및 플래시 메모리 디바이스); 자기 디스크(예컨대, 내부 하드 디스크 또는 이동식 디스크); 자기 광 디스크; 및 CD ROM 및 DVD-ROM 디스크를 포함하여 모든 형태의 비-휘발성 메모리, 매체 및 메모리 디바이스를 포함한다. 프로세서와 메모리는 특수 목적 논리 회로에 의해 보완되거나 통합될 수 있다.
사용자와의 상호작용을 제공하기 위해, 본 개시의 하나 이상의 양태는 사용자에게 정보를 디스플레이하기 위한 디스플레이 디바이스(예를 들어, CRT(음극선관), LCD(액정 디스플레이) 모니터, 또는 터치 스크린) 및 선택적으로 사용자가 컴퓨터에 입력을 제공할 수 있는 키보드 및 포인팅 디바이스(예를 들어, 마우스 또는 트랙볼)을 갖는 컴퓨터상에서 구현될 수 잇다. 다른 종류의 디바이스도 사용자와의 상호 작용을 제공하는데 사용할 수 있는데, 예를 들어, 사용자에게 제공되는 피드백은 시각적 피드백, 청각적 피드백 또는 촉각적 피드백과 같은 임의의 형태의 감각적 피드백일 수 있고, 사용자로부터의 입력은 음향, 음성 또는 촉각 입력을 포함한 모든 형태로 수신될 수 있다. 또한, 컴퓨터는 예를 들어, 웹 브라우저에서 수신된 요청에 대한 응답으로 사용자 클라이언트 디바이스의 웹 브라우저로 웹 페이지를 전송함으로써 사용자가 사용하는 디바이스로 문서를 보내고 문서를 수신하여 사용자와 상호 작용할 수 있다.
다수의 구현이 설명되었다. 그럼에도 불구하고, 본 개시의 정신 및 범위를 벗어나지 않고 다양한 수정이 이루어질 수 있음이 이해될 것이다. 따라서, 다른 구현은 다음 청구항의 범위 내에 있다.

Claims (24)

  1. 방법(400)으로서,
    저장(storage) 디바이스(140)의 데이터 처리 하드웨어(144)에서, 복수의 이미지(122)를 수신하는 단계;
    복수의 이미지(122)의 각 이미지(122)에 대해, 데이터 처리 하드웨어(144)에 의해, 손실 압축을 사용하여 코드워드들(312)을 생성하는 단계, 각 코드워드(312)는 비트 문자열로 정의되고;
    데이터 처리 하드웨어(144)에 의해, 복수의 이미지(122)의 각 이미지(122)에 대해 생성된 코드워드들(312)에 기초하여 엔트로피 코딩 테이블(322)을 생성하는 단계; 및
    데이터 처리 하드웨어(144)에 의해, 생성된 엔트로피 코딩 테이블(322)을 사용하여 복수의 이미지(122)를 엔트로피 인코딩하는 단계를 포함하는 방법(400).
  2. 제1항에 있어서,
    코드워드들(312)을 생성하는 단계는,
    복수의 이미지(122)의 각 이미지(122)를 픽셀 블록(213)으로 분할하는 단계;
    각 픽셀 블록(213)을 변환 계수로 변환하는 단계;
    양자화 인덱스들(222)을 형성하도록 변환 계수를 양자화하는 단계;
    각 양자화 인덱스를 개별 비트 문자열로 표현하는 단계; 및
    개별 비트 문자열에 가변 길이 코드를 할당하는 단계를 더 포함하고, 상기 가변 길이 코드는 복수의 이미지 내에서 개별 비트 문자열의 발생이 증가할 때 감소하는 비트 길이를 포함하는 것을 특징으로 하는 방법(400).
  3. 제2항에 있어서,
    변환 계수는 이산 코사인 변환(DCT) 계수를 포함하는 것을 특징으로 하는 방법(400).
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    손실 압축은 JPEG 압축을 포함하는 것을 특징으로 하는 방법(400)..
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    엔트로피 인코딩 테이블(322)을 생성하는 단계는,
    코드워드들(312)의 발생 빈도에 기초하여 복수의 이미지(122)의 각 이미지(122)에 대해 생성된 코드워드들(312)을 컴파일하는 단계와, 상기 발생 빈도는 각 코드워드(312)가 복수의 이미지(122에 존재하는 횟수를 나타내고; 그리고
    코드워드들(312)의 발생 빈도에 기초하여 각 컴파일된 코드워드(312)에 가변 길이 비트 코드를 할당하는 단계를 포함하는 것을 특징으로 하는 방법(400).
  6. 제5항에 있어서,
    코드워드들(312)의 발생 빈도에 기초하여 각 컴파일된 코드워드(312)에 가변 길이 비트 코드를 할당하는 단계는,
    모든 컴파일된 코드워드(312)에 대한 가변 길이 비트 코드의 합을 최적화하는 단계를 포함하는 것을 특징으로 하는 방법(400).
  7. 제1항 내지 제6항 중 어느 한 항에 있어서,
    복수의 이미지(122)를 수신하는 단계는,
    사용자 디바이스(110)로부터의 업로드(112)에 응답하여 발생하고, 상기 업로드(112)는 사용자 디바이스(110)의 미디어 컨텐츠(120)에 대한 백업 기능과 연관되는 것을 특징으로 하는 방법(400).
  8. 제1항 내지 제7항 중 어느 한 항에 있어서,
    복수의 이미지(122)의 각 이미지(122)는 공통 특성을 가지며, 상기 공통 특성은 특정 사용자, 사용자 계정, 미디어 컨텐츠 앨범, 또는 물리적 저장 위치와 연관되는 것을 특징으로 하는 방법(400).
  9. 제1항 내지 제8항 중 어느 한 항에 있어서,
    복수의 이미지(122)를 수신하는 단계는,
    복수의 이미지(122) 및 저장 디바이스(140)에서의 저장을 위한 다른 복수의 이미지(122)를 포함하는 미디어 컨텐츠(120)를 수신하는 단계와; 그리고
    복수의 이미지(122)가 공통 특성을 갖는다고 결정하는 단계를 포함하고, 상기 공통 특성은 특정 사용자, 사용자 계정, 미디어 컨텐츠 앨범, 또는 물리적 저장 위치와의 연관되는 것을 특징으로 하는 방법(400).
  10. 제9항에 있어서,
    데이터 처리 하드웨어(144)에 의해, 생성된 엔트로피 코딩 테이블(322)을 사용하여 엔트로피 인코딩된 복수의 이미지(122)를 저장 디바이스(140)에 있는 다른 복수의 이미지(122)와 별도의 위치에 저장하는 단계를 더 포함하는 것을 특징으로 하는 방법(400).
  11. 제1항 내지 제10항 중 어느 한 항에 있어서,
    복수의 이미지(122)를 수신하는 단계는,
    저장 디바이스(140)와 통신하는 저장 애플리케이션(20)을 실행하는 사용자 디바이스(110)에서의 미디어 컨텐츠(120)의 생성 또는 수신을 검출하는 단계와;
    사용자 디바이스(110)에 대한 프롬프트를 생성하는 단계와, 상기 프롬프트는 사용자 디바이스(110)의 사용자가 검출된 미디어 컨텐츠(120)를 저장 디바이스 (140)에 백업하거나 전송하기를 원하는지 묻고; 그리고
    사용자가 검출된 미디어 컨텐츠(120)를 저장 디바이스(140)에 백업하거나 전송하기로 선택할 때, 엔트로피 인코딩을 위해 미디어 컨텐츠(120) 내의 복수의 이미지(122)를 식별하는 단계를 포함하는 것을 특징으로 하는 방법(400).
  12. 제1항 내지 제11항 중 어느 한 항에 있어서,
    복수의 이미지(122)는 사용자 디바이스(120)에 의한 미디어 컨텐츠(120)의 업로드(112)로부터의 이미지(122)의 제1 서브세트에 대응하고, 미디어 컨텐츠의 업로드(112)는 이미지(122)의 제1 서브세트 및 이미지(122)의 제2 서브세트를 포함하고, 이미지(122)의 제1 서브세트는 더 낮은 저장 공간 포맷으로의 압축을 위해 지정된 제1 미디어 컨텐츠(120) 포맷을 갖고, 이미지(122)의 제2 서브세트는 더 낮은 저장 풋프린트 포맷으로의 압축을 바이패스하는 것을 특징으로 하는 방법(400).
  13. 시스템(100)으로서:
    저장 디바이스(140)의 데이터 처리 하드웨어(144); 그리고
    데이터 처리 하드웨어(144)와 통신하는 메모리 하드웨어(146)를 포함하고, 상기 메모리 하드웨어(146)는 데이터 처리 하드웨어(144)에서 실행될 때 데이터 처리 하드웨어(144)로 하여금 동작들을 수행하게 하는 명령들을 저장하고, 상기 동작들은:
    저장 디바이스(140)에서 복수의 이미지(122)를 수신하는 동작과;
    복수의 이미지(122)의 각 이미지(122)에 대해, 손실 압축을 사용하여 코드워드들(312)을 생성하는 동작과, 각 코드워드(312)는 비트 문자열로 정의되고;
    복수의 이미지(122)의 각 이미지(122)에 대해 생성된 코드워드들(312)에 기초하여 엔트로피 코딩 테이블(322)을 생성하는 동작과; 그리고
    생성된 엔트로피 코딩 테이블(322)을 사용하여 복수의 이미지(122)를 엔트로피 인코딩하는 동작을 포함하는 것을 특징으로 하는 시스템(100).
  14. 제13항에 있어서,
    코드워드들(312)을 생성하는 동작은,
    복수의 이미지(122)의 각 이미지(122)를 픽셀 블록(213)으로 분할하는 동작;
    각 픽셀 블록(213)을 변환 계수로 변환하는 동작;
    양자화 인덱스들(222)을 형성하도록 변환 계수를 양자화하는 동작;
    각 양자화 인덱스를 개별 비트 문자열로 표현하는 동작; 및
    개별 비트 문자열에 가변 길이 코드를 할당하는 동작을 더 포함하고, 상기 가변 길이 코드는 복수의 이미지 내에서 개별 비트 문자열의 발생이 증가할 때 감소하는 비트 길이를 포함하는 것을 특징으로 하는 시스템(100).
  15. 제14항에 있어서,
    변환 계수는 이산 코사인 변환(DCT) 계수를 포함하는 것을 특징으로 하는 시스템(100).
  16. 제13항 내지 제15항 중 어느 한 항에 있어서,
    손실 압축은 JPEG 압축을 포함하는 것을 특징으로 하는 시스템(100)..
  17. 제13항 내지 제16항 중 어느 한 항에 있어서,
    엔트로피 인코딩 테이블(322)을 생성하는 동작은,
    코드워드들(312)의 발생 빈도에 기초하여 복수의 이미지(122) 각각에 대해 생성된 코드워드들(312)을 컴파일하는 동작과, 상기 발생 빈도는 각 코드워드(312)가 복수의 이미지(122에 존재하는 횟수를 나타내고; 그리고
    코드워드들(312)의 발생 빈도에 기초하여 각 컴파일된 코드워드(312)에 가변 길이 비트 코드를 할당하는 동작을 포함하는 것을 특징으로 하는 시스템(100).
  18. 제17항에 있어서,
    코드워드들(312)의 발생 빈도에 기초하여 각 컴파일된 코드워드(312)에 가변 길이 비트 코드를 할당하는 동작은,
    모든 컴파일된 코드워드(312)에 대한 가변 길이 비트 코드의 합을 최적화하는 동작을 포함하는 것을 특징으로 하는 시스템(100).
  19. 제13항 내지 제18항 중 어느 한 항에 있어서,
    복수의 이미지(122)를 수신하는 동작은,
    사용자 디바이스(110)로부터의 업로드(112)에 응답하여 발생하고, 상기 업로드(112)는 사용자 디바이스(110)의 미디어 컨텐츠(120)에 대한 백업 기능과 연관되는 것을 특징으로 하는 시스템(100).
  20. 제13항 내지 제19항 중 어느 한 항에 있어서,
    복수의 이미지(122)의 각 이미지(122)는 공통 특성을 가지며, 상기 공통 특성은 특정 사용자, 사용자 계정, 미디어 컨텐츠 앨범, 또는 물리적 저장 위치와 연관되는 것을 특징으로 하는 시스템(100).
  21. 제13항 내지 제20항 중 어느 한 항에 있어서,
    복수의 이미지(122)를 수신하는 동작은,
    복수의 이미지(122) 및 저장 디바이스(140)에서의 저장을 위한 다른 복수의 이미지(122)를 포함하는 미디어 컨텐츠(120)를 수신하는 동작과; 그리고
    복수의 이미지(122)가 공통 특성을 갖는다고 결정하는 동작을 포함하고, 상기 공통 특성은 특정 사용자, 사용자 계정, 미디어 컨텐츠 앨범, 또는 물리적 저장 위치와의 연관되는 것을 특징으로 하는 시스템(100).
  22. 제21항에 있어서,
    동작들은,
    생성된 엔트로피 코딩 테이블(322)을 사용하여 엔트로피 인코딩된 복수의 이미지(122)를 저장 디바이스(140)에 있는 다른 복수의 이미지(122)와 별도의 위치에 저장하는 동작을 더 포함하는 것을 특징으로 하는 시스템(100).
  23. 제13항 내지 제22항 중 어느 한 항에 있어서,
    복수의 이미지(122)를 수신하는 동작은,
    저장 디바이스(140)와 통신하는 저장 애플리케이션(20)을 실행하는 사용자 디바이스(110)에서 미디어 컨텐츠(120)의 생성 또는 수신을 검출하는 동작과;
    사용자 디바이스(110)에 대한 프롬프트를 생성하는 동작과, 상기 프롬프트는 사용자 디바이스(110)의 사용자가 검출된 미디어 컨텐츠(120)를 저장 디바이스 (140)에 백업하거나 전송하기를 원하는지 묻고; 그리고
    사용자가 검출된 미디어 컨텐츠(120)를 저장 디바이스(140)에 백업하거나 전송하기로 선택할 때, 엔트로피 인코딩을 위해 미디어 컨텐츠(120) 내의 복수의 이미지(122)를 식별하는 동작을 포함하는 것을 특징으로 하는 시스템(100).
  24. 제13항 내지 제23항 중 어느 한 항에 있어서,
    복수의 이미지(122)는 사용자 디바이스(120)에 의한 미디어 컨텐츠(120)의 업로드(112)로부터의 이미지(122)의 제1 서브세트에 대응하고, 미디어 컨텐츠의 업로드(112)는 이미지(122)의 제1 서브세트 및 이미지(122)의 제2 서브세트를 포함하고, 이미지(122)의 제1 서브세트는 더 낮은 저장 공간 포맷으로의 압축을 위해 지정된 제1 미디어 컨텐츠(120) 포맷을 갖고, 상기 이미지(122)의 제2 서브세트는 더 낮은 저장 풋프린트 포맷으로의 압축을 바이패스하는 것을 특징으로 하는 시스템(100).
KR1020217026201A 2019-02-22 2019-11-10 다중 이미지에 대한 압축 KR20210113681A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/282,418 2019-02-22
US16/282,418 US10687062B1 (en) 2019-02-22 2019-02-22 Compression across multiple images
PCT/US2019/060664 WO2020171860A1 (en) 2019-02-22 2019-11-10 Compression across multiple images

Publications (1)

Publication Number Publication Date
KR20210113681A true KR20210113681A (ko) 2021-09-16

Family

ID=68835287

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217026201A KR20210113681A (ko) 2019-02-22 2019-11-10 다중 이미지에 대한 압축

Country Status (6)

Country Link
US (1) US10687062B1 (ko)
EP (1) EP3928515A1 (ko)
JP (1) JP7147075B2 (ko)
KR (1) KR20210113681A (ko)
CN (1) CN113454995A (ko)
WO (1) WO2020171860A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3777156A1 (en) * 2018-03-29 2021-02-17 FRAUNHOFER-GESELLSCHAFT zur Förderung der angewandten Forschung e.V. Transform coefficient block coding

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5333212A (en) 1991-03-04 1994-07-26 Storm Technology Image compression technique with regionally selective compression ratio
US5157488A (en) * 1991-05-17 1992-10-20 International Business Machines Corporation Adaptive quantization within the jpeg sequential mode
US5398066A (en) 1993-07-27 1995-03-14 Sri International Method and apparatus for compression and decompression of digital color images
US5471207A (en) * 1994-02-23 1995-11-28 Ricoh Company Ltd. Compression of palettized images and binarization for bitwise coding of M-ary alphabets therefor
US5552832A (en) * 1994-10-26 1996-09-03 Intel Corporation Run-length encoding sequence for video signals
JP2951861B2 (ja) * 1994-12-28 1999-09-20 シャープ株式会社 画像符号化装置及び画像復号装置
US5682152A (en) 1996-03-19 1997-10-28 Johnson-Grace Company Data compression using adaptive bit allocation and hybrid lossless entropy encoding
US6314208B1 (en) 1998-07-21 2001-11-06 Hewlett-Packard Company System for variable quantization in JPEG for compound documents
US20020087546A1 (en) * 2000-01-31 2002-07-04 Michael Slater Apparatus, methods, and systems for digital photo management
JP2002044662A (ja) * 2000-07-24 2002-02-08 Sony Corp データ符号化装置及び符号化方法並びにデータ復号化装置及び復号化方法
US6701020B2 (en) 2001-03-15 2004-03-02 Hewlett-Packard Development Company, L.P. JADE-JPEG based adaptive document compression engine
US7092578B2 (en) * 2001-10-23 2006-08-15 Agilent Technologies, Inc. Signaling adaptive-quantization matrices in JPEG using end-of-block codes
US7840892B2 (en) * 2003-08-29 2010-11-23 Nokia Corporation Organization and maintenance of images using metadata
US7724827B2 (en) * 2003-09-07 2010-05-25 Microsoft Corporation Multi-layer run level encoding and decoding
US20050111746A1 (en) * 2003-11-26 2005-05-26 Kumar Bharath S. Progressive medical image volume navigation
US7702781B2 (en) * 2006-03-03 2010-04-20 Teoco Corporation System and method of storing data files at a remote storage facility
US7884742B2 (en) 2006-06-08 2011-02-08 Nvidia Corporation System and method for efficient compression of digital data
US7860328B2 (en) * 2008-07-31 2010-12-28 Hiroshima University Compression processing apparatus and compression processing method
CN101778284A (zh) 2010-02-02 2010-07-14 杭州电子科技大学 一种多焦点多光子显微镜成像数据的有损压缩方法
JP2011205521A (ja) * 2010-03-26 2011-10-13 Seiko Epson Corp バックアップ制御装置
WO2012060172A1 (ja) * 2010-11-04 2012-05-10 シャープ株式会社 動画像符号化装置、動画像復号装置、動画像伝送システム、動画像符号化装置の制御方法、動画像復号装置の制御方法、動画像符号化装置制御プログラム、動画像復号装置制御プログラム、および記録媒体
CN102647541B (zh) 2012-04-28 2014-08-20 大连民族学院 一种基于有损压缩链码的图像编码方法
GB2523348B (en) * 2014-02-20 2016-03-30 Gurulogic Microsystems Oy Encoder, decoder and method
US9331712B1 (en) 2015-05-11 2016-05-03 Qualcomm Incorporated Compressed caching in a virtual memory system
US10303402B2 (en) * 2016-08-02 2019-05-28 Seagate Technology Llc Data compression using partial statistics
US10291911B2 (en) * 2016-11-29 2019-05-14 Motorola Mobility Llc Classes of tables for use in image compression

Also Published As

Publication number Publication date
US10687062B1 (en) 2020-06-16
EP3928515A1 (en) 2021-12-29
JP7147075B2 (ja) 2022-10-04
CN113454995A (zh) 2021-09-28
WO2020171860A1 (en) 2020-08-27
JP2022510733A (ja) 2022-01-27

Similar Documents

Publication Publication Date Title
US11074723B2 (en) Lossless compression of fragmented image data
US6301392B1 (en) Efficient methodology to select the quantization threshold parameters in a DWT-based image compression scheme in order to score a predefined minimum number of images into a fixed size secondary storage
RU2613031C2 (ru) Способ кодирования данных, способ декодирования данных, кодер, декодер и кодек
RU2503138C2 (ru) Кодирование встраиваемой графики для изображений с разреженными гистограммами
JP2002281444A (ja) 画像処理方法及び装置及び記憶媒体
WO2013185237A1 (en) Methods and systems for automatically and efficiently categorizing, transmitting, and managing multimedia contents
WO2021064413A1 (en) Use of embedded signalling for backward-compatible scaling improvements and super-resolution signalling
US8351693B2 (en) Image compression apparatus and computer-readable recording medium recorded with image compression program
US20130251261A1 (en) Method And Apparatus For Image Data Compression
US10812832B2 (en) Efficient still image coding with video compression techniques
US9324162B2 (en) Image processing apparatus, method, and program
US20130044961A1 (en) Real-time image compression
RU2394391C2 (ru) Управление скоростью масштабируемо кодированных изображений
CN103841424A (zh) 随机存取存储器中压缩数据的系统及方法
KR102238091B1 (ko) 3d 모델 압축 및 압축해제 시스템 및 방법
JP2020102704A (ja) 画像符号化装置及びその制御方法及びプログラム
JP7147075B2 (ja) 複数の画像全体の圧縮
US20170201759A1 (en) Method and device for image encoding and image decoding
US7733249B2 (en) Method and system of compressing and decompressing data
Nandi et al. Fractal image compression by using loss-less encoding on the parameters of affine transforms
WO2020255940A1 (ja) 画像処理装置および画像処理方法
US20100277612A1 (en) Memory management in an image storage device
JPH11122614A (ja) 画像の反復変換符号化装置及び方法、復号化装置及び方法、並びに記録媒体

Legal Events

Date Code Title Description
A201 Request for examination