KR20150095825A - 차동 전송을 이용한 무손실 이미지 압축 - Google Patents

차동 전송을 이용한 무손실 이미지 압축 Download PDF

Info

Publication number
KR20150095825A
KR20150095825A KR1020157018600A KR20157018600A KR20150095825A KR 20150095825 A KR20150095825 A KR 20150095825A KR 1020157018600 A KR1020157018600 A KR 1020157018600A KR 20157018600 A KR20157018600 A KR 20157018600A KR 20150095825 A KR20150095825 A KR 20150095825A
Authority
KR
South Korea
Prior art keywords
image
coefficients
image data
data
tile
Prior art date
Application number
KR1020157018600A
Other languages
English (en)
Other versions
KR101775522B1 (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 KR20150095825A publication Critical patent/KR20150095825A/ko
Application granted granted Critical
Publication of KR101775522B1 publication Critical patent/KR101775522B1/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/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/37Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability with arrangements for assigning different transmission priorities to video input data or to video coded data
    • 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
    • H04N19/107Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
    • 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/115Selection of the code volume for a coding unit prior to coding
    • 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/137Motion inside a coding unit, e.g. average field, frame or block difference
    • 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/146Data rate or code amount at the encoder output
    • H04N19/15Data rate or code amount at the encoder output by monitoring actual compressed data size at the memory before deciding storage at the transmission buffer
    • 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/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • 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/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/547Motion estimation performed in a transform domain

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

차동 전송들을 이용한 무손실 이미지 압축은 이미지들의 시퀀스에서의 이미지에 대한 이미지 데이터를 수신하고 적어도 몇몇의 이미지 타일들에 대한 이미지 데이터가 리소스 제한들로 인해 손실성 압축을 이용하여 전송되도록 이미지 데이터를 전송하는 이미지 압축 유닛을 필요로 할 수도 있다. 그 다음, 이미지 압축 유닛은 시퀀스에서의 후속 이미지에 대한 이미지 데이터를 수신하고 적어도 몇몇의 타일들에 대한 이미지 데이터가 이전 이미지의 대응하는 타일들에 대한 이미지 데이터에 대해 변하지 않는다는 것을 결정할 수도 있다. 그 다음, 이미지 압축 유닛은 손실적으로 압축된 이미지 데이터가 이전에 전송되었던 타일들의 무손실 버전들을 생성하기에 충분한 방식으로 이미지 데이터를 전송할 수도 있다.

Description

차동 전송을 이용한 무손실 이미지 압축{LOSSLESS IMAGE COMPRESSION USING DIFFERENTIAL TRANSFER}
전자 디바이스에 의해 캡쳐되고/되거나 디스플레이되는 비주얼 이미지들은 종종 유의한 메모리 풋프린트(significant memory footprint)(즉, 이미지를 표현하는 데이터를 저장하는 데 소모되는 메모리의 양)에 의해 특징지어진다. 이미지들의 해상도가 증가함에 따라, 이미지의 메모리 풋프린트도 증가한다. 다양한 전자 디바이스들이 이러한 이미지들을 프로세싱할 수 있을 것으로 예상된다. 예를 들면, 모바일폰들 및 개인 휴대용 정보 단말들과 같은 모바일 전자 디바이스들은 스틸 사진들, 또는 심지어 비디오를 찍기 위해 카메라들을 종종 구비한다. 이러한 디바이스들에 포함되는 현재의 이미지 캡쳐 센서들이 주로 약 2-4 메가픽셀들을 처리할 수 있지만, 신규의 폰들에 포함되는 센서들은 해상도가 계속 증가할 것이다. 추가적으로, 이러한 디바이스들은 더 높은 해상도의 화면들을 구비하고 있고, 따라서 디스플레이를 위한 이미지들의 풋프린트도 또한 증가한다. 이러한 디바이스들은 고해상도의 이미지들/비디오를 외부 디바이스로 출력하도록 또한 설계될 수도 있고, 고해상도 이미지들의 풋프린트는 크다.
시간이 지남에 따라 이러한 디바이스들에서의 메모리의 사이즈도 또한 증가하고 있지만, 메모리의 사이즈는 이미지 해상도 및/또는 사이즈와 동일한 레이트로 증가하지 못할 수도 있다. 추가적으로, 이러한 디바이스들은 다른 목적들을 위해 중요한 기능성을 점점 더 제공하고 있다. 예를 들면, 스마트폰들은, 폰 상에서 동시에 실행하는 다수의 애플리케이션들을 지원하기 위해, 다중 스레드 프로세싱을 제공하기 시작하고 있다. 각각의 애플리케이션은 그 애플리케이션에 대해 실행되고 있는 코드 및 조작되고 있는 데이터에 대해 메모리를 소비하며, 이것은 메모리 용량에 추가적인 부담(pressure)을 가하게 된다. 또한, 애플리케이션들은 메모리에 대한 액세스들(예를 들면, 대역폭)에 대해 경쟁하며, 이것은 메모리와 메모리 컨트롤러 사이의, 그리고 메모리 컨트롤러와 시스템 내의 다른 디바이스들 예컨대 프로세서들, 그래픽 디바이스들, 디스플레이 컨트롤러들 등 사이의 인터커넥트에 대해 부담을 줄 수도 있다.
이미지들은 압축된 형태로 전송되어 저장될 수 있다. 그러나, 이미지 캡쳐 및 디스플레이 동안, 이미지들을 압축하고 압축해제하기 위한 시간과 하드웨어 요건들은 금지될 수도 있다.
본원에서 설명되는 시스템들 및 방법들은 차동 전송들을 이용한 무손실 이미지 압축에 대한 다양한 기술들을 설명한다. 무손실 이미지 압축은, 본원에서 설명되는 바와 같이, 이미지(또는 이미지의 일부)가 다수의 프레임들(또는 이미지들의 다른 시퀀스들)에 걸쳐 변하지 않는 경우들을 활용하는 것을 수반할 수도 있다. 대역폭(또는 다른 리소스) 제한들로 인해, 이미지의 근사 버전만을 표현하는 이미지 데이터가 전송되어야 할 수도 있다. 다음 프레임이 프로세싱되고 있는 동안, 이미지가 변하지 않으면, 이미지의 완전한 버전이 생성되는 것을 허용하는 추가적인 이미지 정보가 전송될 수도 있다. 따라서, 차동 전송들을 이용한 무손실 이미지 압축은, 대역폭 제한들로 인해 이미지에 대한 완전한 데이터가 전송되지 못할 수도 있을 때(심지어 압축된 경우에도), 이미지의 완전한 버전이 생성되는 것을 허용할 수도 있다.
예를 들면, 비디오의 한 프레임에 대한 이미지 데이터는 대역폭 또는 공간적 제약들로 인해 손실성 압축을 이용하여 압축될 수도 있다. 일단 전송되면, 손실적으로 압축된 이미지 데이터는 프레임의 근사(또는 손실성) 버전만을 표현할 수도 있다. 다음 프레임이 프로세싱될 때, 그 프레임이 변하지 않으면(또는 크게 변하지 않으면) 그 프레임의 완전한(또는 무손실) 버전의 생성을 허용하는 이미지 데이터가 전송될 수도 있다. 따라서, 변하지 않는 이미지가 데이터 레이트(또는 다른 리소스) 제한들로 인해 무손실로 전송되지 않으면, 2개 이상의 프레임들 이후에 완전히 무손실의 결과를 생성하도록, 후속하는 차동 전송들이, 수신되는 이미지 데이터를 완성시킬 수도 있다.
비디오와 같은 이미지들의 시퀀스를 압축하고 전송할 때, 이미지 프레임의 모든 부분이 다수의 프레임들에 걸쳐 동시에 또는 동일한 레이트로 변하지 않을 수도 있다. 따라서, 이미지의 한 부분에 대해 (리소스/대역폭 제한들로 인해) 압축된 이미지 데이터를 손실적으로 전송한 이후, 이미지의 그 부분은 다음 프레임에서 변경되지 않을 수도 있다. 이미지의 특정 부분이 후속 프레임에서 변하지 않는다는 사실을 활용함으로써, 이미지의 그 부분에 대한 무손실 이미지 데이터의 생성을 허용하는 방식으로 이미지의 그 부분에 대한 추가 이미지 데이터가 전송될 수도 있다.
도 1은 압축 및 압축해제를 이용하는 일반적인 데이터 소스 및 데이터 타겟의 일 실시형태의 블록도를 예시하는, 일 실시형태에 따른 논리적 블록도이다.
도 2는, 본원에서 설명되는 바와 같이, 차동 전송들을 이용한 무손실 이미지 압축을 수행하기 위한 방법의 일 실시형태를 예시하는 순서도이다.
도 3은, 일 실시형태에 따른, 차동 전송들을 이용한 무손실 이미지 압축을 이용하여 압축되는 이미지 타일을 예시하는 논리적 블록도이다.
도 4는, 본원에서 설명되는 바와 같이, 차동 전송들을 이용한 무손실 이미지 압축을 수행할 수 있는 이미지 압축 유닛의 일 실시형태를 예시하는 논리적 블록도이다.
도 5는 차동 전송들을 이용한 무손실 이미지 압축을 이용하기 위한 방법의 일 실시형태를 예시하는 순서도이다.
도 6은, 본원에서 설명되는 바와 같이, 계수들의 양자화를 포함하는 차동 전송들을 이용한 무손실 이미지 압축을 위한 방법의 일 실시형태를 예시하는 순서도이다.
도 7은 차동 전송들을 이용한 무손실 이미지 압축을 위한 방법의 일 실시형태를 예시하는 순서도이다.
도 8은, 일 실시형태에 따른, 이미지 압축해제 유닛을 예시하는 논리적 블록도이다.
도 9는 차동 전송들을 이용한 무손실 이미지 압축을 위한 방법의 일 실시형태를 예시하는 순서도이다.
도 10은 차동 전송들을 이용한 무손실 이미지 압축을 위한 방법의 일 실시형태를 예시하는 순서도이다.
도 11은, 본원에서 설명되는 바와 같이 차동 전송들을 이용한 무손실 이미지 압축을 수행할 수 있는 컴퓨터 시스템을 예시하는, 일 실시형태에 따른 논리적 블록도이다.
여러 실시형태들 및 예시적인 도면들에 대한 예를 통해 다양한 실시형태들이 본원에서 설명되지만, 설명되는 실시형태들 또는 도면들로 실시형태들이 한정되지 않는다는 것을 당업자들은 알 수 있을 것이다. 도면들과 도면들에 대한 상세한 설명은 실시형태들을 개시되는 특정 형태로 한정하도록 의도된 것이 아니며, 반대로, 본 발명은 본 개시의 취지와 범위 내에 있는 모든 수정예들, 등가예들 및 대안예들을 포괄하도록 의도된 것이 이해되어야 한다. 본원에서 사용되는 임의의 표제(heading)들은 구성 상의 목적(organizational purpose)들만을 위한 것이며 그 설명의 범위를 제한하기 위해 사용되도록 의미된 것은 아니다. 본원 전체에 걸쳐 이용되는 바와 같이, "~수도 있다(may)"라는 단어는 강제적인 의미(즉, 해야 함(must)을 의미함)가 아닌 허용적인 의미(즉, ~에 대한 가능성을 가짐을 의미함)로 이용된 것이다. 유사하게, "포함한다(include)", "포함하는(including)" 및 "포함한다(includes)"라는 단어들은 포함하지만 이에 한정되지는 않음을 의미한다.
몇몇 실시형태들에 따르면, 차동 전송들을 이용한 무손실 압축은, 본원에서 설명되는 바와 같이, 리소스 제한들로 인해, 최초, 손실성 압축을 이용하여 이미지 데이터를 전송하지만, 후속하여, 무손실 이미지 데이터를 생성할 정도의 그러한 방식으로 이미지 데이터를 전송하는 것을 포함할 수도 있다.
본원에서 설명되는 바와 같이, 차동 전송들을 이용한 무손실 이미지 압축은 이미지 압축 유닛 및 호환성이 있는(compatible) 이미지 압축해제 유닛에 의해 구현될 수도 있다. 이미지 압축 유닛은 낮은 레이턴시와 비교적 적은 하드웨어로 이미지들의 압축을 수행할 수도 있다. 마찬가지로, 이미지 압축해제 유닛은 낮은 레이턴시와 적은 하드웨어로 이미지들을 압축해제할 수도 있다. 차동 전송들을 이용한 무손실 이미지 압축은 이미지들을 처리하는 디바이스들/모듈들과 메모리 사이의 인터커넥트에 대한 대역폭 부담뿐만 아니라, 이미지 데이터와 다른 데이터 스토리지 사이의 메모리 공간에 대한 경쟁을 경감시킬 수도 있다.
이미지들은 일련의 이미지 타일들로서 프로세싱(분석, 압축, 전송, 압축해제 등등)될 수도 있다. 각각의 타일은 균일한 사이즈를 가질 수도 있고 전체 이미지의 일부를 나타낼 수도 있다. 따라서, 비디오 시퀀스에서의 각각의 이미지 프레임은, 함께 디스플레이될 때 전체 시간의 프레임을 형성하는 타일의 세트로서 프로세싱될 수도 있다. 차동 전송들을 이용한 무손실 이미지 압축은, 본원에서 설명되는 바와 같이, 이미지들의 시퀀스(예를 들면, 비디오)에서의 이미지들(예를 들면, 프레임들)의 개개의 타일들에 적용될 수도 있다.
예를 들면, 이미지 압축 유닛은 제한된 대역폭(예컨대 메모리와 디스플레이 컨트롤러 사이의 제한 또는 다른 리소스 제한들)으로 인해 이미지 프레임의 타일들 중 하나(또는 그 이상)에 대한 이미지 데이터의 일부만을 전송할 수도 있다. 부분적 이미지 데이터는 그 이미지 타일의 근사(예를 들면, 손실성) 버전을 생성하는 데 이용가능할 수도 있다. 그 다음, 그 타일의 콘텐츠(예를 들면, 이미지/그래픽)가 다음 프레임에서 변하지 않으면, 이미지 압축 유닛은 그 타일의 정확한(예를 들면, 무손실) 버전이 생성되는 것을 허용하는 그 타일에 대한 이미지 데이터를 전송할 수도 있다. 예를 들면, 일 실시형태에서, 다음 프레임을 프로세싱할 때, 이미지 압축 유닛은, 이전에 전송된 이미지 데이터와 결합될 때 이미지 타일의 완전한 버전이 생성될 수도 있도록 그 타일에 대한 이미지 데이터의 나머지를 전송할 수도 있다.
차동 전송들을 이용한 무손실 이미지 압축은, 이미지들의 면에서 그리고 이미지들에 기초한 예들을 이용하여 본원에서 설명되지만, 이미지들 이외의 데이터 및/또는 정보에 적용될 수도 있음을 유의해야 한다. 예를 들면, 시퀀스 프레임들로서 분석될 수 있는 데이터의 임의의 세트는 본원에서 설명되는 시스템들, 방법들 및 기술들을 이용하여 전송될 수 있다.
하기의 상세한 설명에서, 청구되는 주제의 완전한 이해를 제공하기 위해 다양하고 특정한 상세가 설명된다. 그러나, 청구되는 주제는 이들 특정한 상세 없이도 실시될 수도 있음이 당업자에 의해 이해될 것이다. 다른 경우들에서, 청구되는 주제를 모호하게 하지 않기 위해, 방법들, 장치들 또는 시스템들은 하기에 상세히 설명되지 않는데, 당업자가 이들을 알고 있기 때문이다.
후속하는 상세한 설명 중 몇몇 부분들은, 특정 장치 또는 특수한 목적의 컴퓨팅 디바이스 또는 플랫폼의 메모리 내에 저장된 이진 디지털 신호들에 대한 심볼적 표현(symbolic representation)들 또는 알고리즘들의 면에서 제시된다. 이 특정한 명세의 맥락에서, 용어 특정의 장치(term specific apparatus) 등은, 범용 컴퓨터가 프로그램 소프트웨어로부터의 명령에 따라 특정 기능들을 수행하도록 프로그래밍되면 그 범용 컴퓨터를 포함한다. 알고리즘적 설명 또는 심볼적 표현은, 신호 프로세싱 또는 관련 기술들에서의 당업자들이 자신들의 연구의 내용을 그 기술분야의 다른 당업자에게 전달하기 위해 이용하는 기술들의 예들이다. 여기에서, 그리고 일반적으로, 알고리즘은, 소망의 결과를 이끄는 동작들 또는 유사한 신호 프로세싱의 일관성 있는 시퀀스인 것으로 간주된다. 이러한 맥락에서, 동작들 또는 프로세싱은 물리적인 양들의 물리적 처리를 수반한다. 필수적인 것은 아니지만 통상적으로, 이러한 양들은 저장, 전송, 결합, 비교 또는 다르게 처리될 수 있는 전기 또는 자기 신호들의 형태를 취할 수도 있다. 주로 공통의 사용의 이유들 때문에, 이러한 신호들을 비트들, 데이터, 값들, 엘리먼트들, 심볼들, 문자들, 항들(terms), 수들(numbers), 숫자들(numerals) 등으로 지칭하는 것이 가끔은 편리하다는 것이 증명되었다. 그러나, 이들 또는 유사한 용어들 모두는 적절한 물리적 양들과 관련되어야 하고 단지 편의적인 명명(label)이라는 것이 이해되어야 한다.
명시적으로 달리 언급되지 않는 한, 하기의 논의로부터 명백한 바와 같이, "프로세싱", "컴퓨팅", "계산하는", "결정하는" 등과 같은 용어들을 활용하는 논의들은 본 명세서에 전체에 걸쳐 특정 장치, 예컨대 특수한 목적의 컴퓨터 또는 유사한 특수한 목적의 전자 컴퓨팅 디바이스의 액션들 또는 프로세스들을 지칭한다는 것을 알 수 있다. 따라서, 본 명세서의 맥락에서, 특수한 목적의 컴퓨터 또는 유사한 특수한 목적의 전자 컴퓨팅 디바이스는, 메모리들, 레지스터들, 또는 다른 정보 저장 디바이스들, 전송 디바이스들, 또는 특수한 목적의 컴퓨터 또는 유사한 특수한 목적의 전자 컴퓨팅 디바이스의 디스플레이 디바이스들 내에서 물리적인 전자적 또는 자기적 양들로서 통상 표현되는 신호들을 처리하거나 변환할 수 있다.
이제 도 1을 참조하면, 적어도 하나의 대역폭 제한된 및/또는 공간 제한된 리소스를 포함하는 채널(150)을 통해 커플링된 일반적인 이미지 데이터 소스(110) 및 일반적인 이미지 데이터 타겟(140)의 블록도가 도시된다. 이미지 데이터 소스(110)는 이미지 압축 유닛(120)을 포함하고, 이미지 데이터 타겟(140)은 이미지 압축해제 유닛(130)을 포함한다.
일반적으로, 이미지 데이터 소스(110)는 데이터를 채널(150)을 통해 이미지 데이터 타겟(140)으로 전송하도록 구성될 수도 있다. 이미지 데이터 소스(110)는 데이터를 생성할 수도 있거나(예를 들면, 이미지 데이터 소스(110)는 그래픽 이미지들을 위한 카메라와 같은 센서일 수도 있음), 또는 다른 회로부(circuitry)로부터 데이터를 수신할 수도 있고, 옵션적으로는, 데이터를 몇몇 정의된 형태로 변환하도록 데이터를 프로세싱할 수도 있다. 그 다음, 이미지 데이터 소스(110)는 이미지 압축 유닛(120)을 이용하여 데이터를 압축할 수도 있다. 일반적으로, 몇몇 실시형태들에 따르면, 압축은 변환에서 데이터의 사이즈를 감소시키는 데이터의 변환일 수도 있다.
압축은 무손실성이거나 손실성일 수도 있다. 무손실 압축에 의하면, 압축 및 후속하는 압축해제 이후에 원래의 데이터가 그 정확한 형태로 복원될 수도 있다. 따라서, 무손실 압축 알고리즘들은 원래의 데이터에서 용장성(redundancy)을 제거하는 것 및 데이터를 더 효율적이지만 모든 정보 콘텐츠를 유지하는 형태로 인코딩하는 것에 초점을 맞출 수도 있다. 예를 들면, 데이터에서 동일한 값의 긴 연속적인 스트링은, 그 값 자체의 하나의 인스턴스에 의해 후속되는 그 값의 인스턴스들의 수의 카운트와 같은 더 효율적인 코딩으로 대체될 수 있다. 손실성 압축에서, 압축해제된 데이터(원래의 데이터를 압축하고 압축된 데이터를 압축해제하는 것으로부터 유래됨)는 원래 데이터의 근사이다. 특히, 그래픽 이미지들에서는, 손실성 압축은, 압축해제된 이미지들이 그 이미지를 나타내는 콘텐츠의 일부를 상실한 경우에도, 사람의 눈으로 봤을 때 원래의 이미지와 실질적으로 구분불가능한 압축해제된 이미지들을 생성할 수도 있다. 다르게는, 손실성 압축은 원래의 이미지와는 눈에 띄는 차이들을 갖는 압축해제된 이미지들로 귀결될 수도 있지만, 그 차이들은 뷰어에게는 허용가능한 것으로 간주될 수도 있다.
데이터를 압축하고 압축된 데이터를 채널(150)을 통해 전송함으로써, 이미지 데이터 소스(110)는 채널(150)에서 더 적은 가용 대역폭 및/또는 저장 공간을 소비할 수도 있다. 예를 들면, 채널(150)은 데이터가 전송되는 하나 이상의 인터커넥트를 포함할 수도 있다. 각각의 인터커넥트는 최대 대역폭을 가질 수도 있고, 인터커넥트 대역폭들 중 적어도 일부는 비압축 데이터(uncompressed data)의 "실시간" 전송을 지원하기에는 불충분할 수도 있다. 즉, 비압축 데이터는 이미지 데이터 소스(110)에 의해 특정 레이트로 생성되거나 수신될 수도 있다. 이미지 데이터 소스(110)가 이용가능한 대역폭이 그 레이트보다 적은 경우, 비압축 데이터는 데이터 생성/수신 레이트를 실속시키거나(stalling), 또는 역으로 압력을 가하지(back-pressuring) 않고는 전송될 수 없다. 몇몇 경우들에서, 데이터 생성/수신 레이트를 실속시키는 것이 허용되지 않을 수도 있다. 예를 들면, 이미지 데이터 소스(110)가 카메라 센서이면, 이미지를 나타내는 데이터는 센서가 다음 이미지를 캡쳐하기 이전에 전송되어야만 한다. 이미지 데이터 소스(110)가 비디오를 제공하고 있으면, 이미지들은 특정한 프레임 레이트에서 전송되고 있으며 실속은 프레임 누락으로 이어지게 된다.
대역폭 제한들 외에, 비압축 데이터를 전송하는 데 공간 제한들이 문제들을 제기할 수도 있다. 예를 들면, 채널(150)은, 이미지 데이터 소스(110) 및 이미지 데이터 타겟(140)을 포함하는 디바이스의 메인 메모리 시스템 및/또는 로컬 메모리 버퍼들을 포함할 수도 있다. 메모리에서의 데이터의 사이즈(메모리의 "풋프린트")는 모든 가용 메모리, 또는 다른 데이터가 메모리 밖으로 밀려나간 메모리의 충분히 큰 부분을 소비할 수도 있다.
채널(150)의 대역폭 및 공간 특성들이 비압축 데이터를 핸들링하기에 충분한 경우들에서, 채널(150)에 대한 이미지 데이터 소스(110)의 부하를 줄이는 것에 의해 시스템 전반적으로(여기서는 채널(150)에 대한 액세스를 필요로 할 수도 있는 이미지 데이터 소스(110)로부터 이미지 데이터 타겟(140)으로의 데이터 전송을 넘어서는 다른 액티비티들이 수행되고 있음) 더 높은 성능이 달성될 수도 있다.
이미지 압축해제 유닛(130)은 이미지 압축 유닛(120)의 동작을 반대로 하도록 구성되어, 원래의 비압축 데이터 또는 그 근사를 생성한다. 즉, 이미지 압축해제 유닛(130)은 이미지 압축 유닛(120)에 의해 이용되는 압축 알고리즘을 인식한 상태에서 설계된다. 추가적으로, 압축 알고리즘의 파라미터들이 프로그램가능하면, 이미지 압축 유닛(120) 및 이미지 압축해제 유닛(130) 둘 다는, 이미지 압축해제 유닛(130)이 수신되는 데이터를 적절히 해석하는 것을 보장하기 위해, 동일한 형식으로 프로그래밍될 수도 있다.
추가적으로, 이미지 데이터 소스 및 이미지 데이터 타겟은 차동 데이터가 인코딩되는 것을 허용하는 참조 버퍼(reference buffer)들을 포함할 수도 있다. 따라서, 몇몇 실시형태들에서, 이미지 압축 유닛(120)은 전송된 이미지 데이터를 참조 버퍼에 저장하도록, 미래의 이미지 데이터를 참조 버퍼에 저장된 것과 비교하도록, 그리고 그 둘 사이의 차이를 나타내는 이미지 데이터를 전송하도록 구성될 수도 있다. 마찬가지로, 몇몇 실시형태들에서, 이미지 압축해제 유닛(130)은 수신된 이미지 데이터의 참조 버퍼를 유지하도록 그리고, 완전한 이미지 데이터를 생성하기 위해, 새롭게 수신되는 차동 이미지 데이터를 참조 버퍼 내의 것과 비교하도록 구성될 수도 있다.
이미지 데이터의 경우, 이미지를 나타내는 데이터의 프레임은 공간적 관계를 가질 수도 있다. 데이터의 프레임은, 예를 들면, 2차원 포맷으로 정렬된 픽셀들의 세트의 색상들을 나타낼 수도 있다. 프레임 내에서는, 픽셀들의 서브셋을 포함하는 타일이 정의될 수도 있다. 타일의 사이즈, 예를 들면, 픽셀들의 수는 구성가능할(configurable) 수도 있다. 압축 유닛(120)/압축해제 유닛(130)의 일 구현예는 타일당 약 1000 내지 2000 픽셀들에 대해 양호한 이미지 결과들을 갖는 양호한 압축비들을 제공할 수도 있다. 따라서, 예를 들면, 수평의 32 픽셀들 곱하기 수직의 32 픽셀들(32x32)의 타일들이 정의될 수도 있고 이러한 타일들은 1024 픽셀들을 포함한다. 추가적으로, 타일의 형상은 다양한 실시형태들에서 변할 수도 있다. 예를 들면, 정사각형 또는 직사각형 타일들이 정의될 수도 있다. 따라서, 1024 픽셀의 타일은 32x32, 64x16, 128x8, 256x4 등일 수도 있다. 타일 기반의 구현예에서, 각각의 타일은 단위로서 압축될 수도 있고 압축된 타일은 전송되어 압축해제될 수도 있다. 다른 구현예에서, 양호한 압축 결과들은 더 작은 타일들 (예를 들면, 16x4 배치의 64 픽셀 타일들)로 달성될 수도 있다. 다른 구현예들에서는 더 큰 타일들(예를 들면, 2000 픽셀들보다 많은 픽셀들을 갖는 타일들)이 또한 이용될 수도 있다.
데이터의 타일에 압축 알고리즘을 적용하는 것은, 변환된 데이터의 적어도 일부가 0 또는 거의 0이 되는 형태로 데이터를 변환하는, 데이터에 적용되는 하나 이상의 변환들을 포함할 수도 있다. 예를 들면, 몇몇 실시형태들에서, 하나 이상의 웨이브릿 변환(wavelet transform)들이 이용될 수도 있다. 일 구현예에서, 계수들 [1], [1]을 갖는 Haar 웨이브릿이 적용될 수도 있다. 다른 구현예에서, 예를 들면 다음을 포함하는 다수의 웨이브릿들이 연속적으로 적용될 수도 있다: 계수들 [1,1], [-1,9,9,-1]을 갖는 Deslauriers-Dubuc (9,7); 계수들 [1,1], [1,1]을 갖는 LeGall(5,3); 계수들 [-1,9,9,-1], [-1,9,9,-1]를 갖는 Deslauriers-Dubuc (13,7); 및 계수들 [1], [1]을 갖는 Haar. 1과 9의 계수들에서, 9를 1과 8로 취급하면, 이미지 압축 유닛(120)과 이미지 압축해제 유닛(130)에서 승산기(multiplier)들은 불필요할 수도 있다. 즉, 계산들은 시프터(shifter)들과 가산기(adder)들을 이용하여 수행될 수도 있다. 다른 실시형태들은 임의의 다른 변환들 또는 변환들의 조합을 구현할 수도 있다. 예를 들면, 이산 코사인 변환(또는 그 정수 변환)이 이용될 수도 있다. 하기에 논의되는 RGB에서 YUV로의 변환이 이용될 수도 있다.
몇몇 실시형태들에 따르면, 색공간 변환들은 필터링 하드웨어 및/또는 소프트웨어에 의해 필터링될 수도 있는 색 성분들의 수를 줄이는 데 이용될 수도 있다. 예를 들면, 각 픽셀의 레드-그린-블루(RGB) 표현은 픽셀의 YUV 표현으로 변환될 수도 있다. 이미지 정보의 대부분은, 필터링될 수도 있는 Y 성분에 놓일 수도 있다. 그 다음, 필터링된 Y 성분과 필터링되지 않은 U 및 V 성분들은 다시 RGB 표현으로 변환될 수도 있는데, 이것은 R, G, 및 B 성분들의 각각을 필터링한 결과에 가깝게 근사될 수도 있다. 다른 실시형태에서, 베이어(Bayer) 센서 출력은 YUVW 포맷으로 변환될 수도 있다(그리고 Y 성분은 필터링될 수도 있다).
하나 이상의 변환들을 통해 비압축 데이터를 변환하는 것으로부터 유래되는 데이터는 계수들로서 칭해질 수도 있다. 계수는 0에 대한 계수의 크기에 기초한 관련 유의성(associated significance)을 가질 수도 있다. 예를 들면, 위에서 논의된 웨이브릿 변환들로부터 유래되는 계수들은 양의 부호를 가진 정수들일 수도 있다. 따라서, 계수에서의 최상위 설정 비트(most significant set bit)는 계수의 유의성의 척도로서 보일 수도 있다. 동일한 비트 위치에서 그들의 최상위 설정 비트들을 갖는 다수의 계수들은 유의성 그룹(significance group)으로서 칭해질 수도 있다. 제2 계수가 자신의 최상위 설정 비트를 갖는 비트 위치보다 더 상위의 비트 위치에서 제1 계수가 자신의 최상위 설정 비트를 가지면, 제1 계수는 제2 계수보다 더 유의한 것으로 칭해질 수도 있다. 대안적으로, 양과 음의 부호의 정수들 둘 다가 계수들에 포함될 수도 있다. 이러한 경우, 최상위 설정 비트는 그 정수가 양이면(부호 비트가 0임) 유의성 그룹을 나타낼 수도 있다. 정수가 음이면(부호 비트가 1임), 2개 이상의 최상위 비트들이 설정될 수도 있다. 동일한 필드의 최상위 설정 비트들을 갖는 계수들은 이러한 실시형태들에서 동일한 유의성 그룹에 포함될 수도 있다.
이미지 압축 유닛(120)은 유의한 계수들을 가질 확률이 높은 데이터의 영역들에 따라 계수들의 순서를 매길 수도 있고, 순서화된 리스트로 나타나게 된다. 그 다음, 이미지 압축 유닛(120)은 순서화된 리스트를 스캔(scan)하여, 가장 유의한 계수들(즉, 그 계수들은 최상위 비트를 설정함)을 검색할 수도 있고 가장 유의한 계수들을 이미지 데이터 타겟(140)으로 전송할 수도 있다. 추가적으로, 스캔 동안, 이미지 압축 유닛(120)은 각각의 다른 유의성 그룹에 대해 계수들의 링크된 리스트들을 생성할 수도 있다. 즉, 계수들에서의 각각의 비트에 대해, 그 비트를 구비하는 계수들에 대한 포인터들을 최상위 설정 비트로서 갖는 링크된 리스트가 생성되어, 유의성 그룹들을 각각의 링크된 리스트의 멤버들로서 형성할 수도 있다. 따라서, 일 실시형태에서, 각각의 계수는 단지 하나의 유의성 그룹에만 포함될 수도 있다. 본원에서는 계수들의 링크된 리스트들을 이용하여 설명되지만, 몇몇 실시형태들에서는, 계수들의 유의성 그룹들이 링크된 리스트들 이외의 데이터 구조들(예를 들면, 어레이들)을 이용하여 생성될 수도 있음에 유의해야 한다.
이런 방식에서, 계수들의 리스트는 한 번만 완전히 스캔될 수도 있다. 각각의 다른 유의성 그룹에 대한 계수들의 리스트는 트래버스되어(traversed), 각각의 나머지 값의 방문을 1회로 제한할 수도 있다. 따라서, 리스트 전체의 스캔들의 횟수는 2회 미만일 수도 있고, 1에 가까울 수도 있다. 예를 들면, 한 실시형태에서, 모든 계수들을 전송하기에, 리스트의 약 1과 1/4의 스캔들이 충분할 수도 있다. 구체적으로는, 일 실시형태에서, 더 유의한 계수들은 압축된 타일의 한 영역에 밀집될 수도 있고, 더 적은 횟수 나타나는 다른 유의한 계수들은 다른 영역들에 밀집될 수도 있다.
계수의 값에 의해 후속되는 계수의 위치를 (예를 들면, 부호가 있는 정수로서) 전송하는 것에 의해, 계수는 이미지 압축 유닛(120)에 의해 "전송"될 수도 있다. 예를 들면, 계수 리스트에서의 계수의 어드레스는 위치(또는, 제1 계수 이후의 각각의 계수에 대한, 이전에 전송된 어드레스와의 어드레스에서의 차이(본원에서 "델타 어드레스"로 칭해짐))로서 전송될 수도 있다. 다른 실시형태들은 다른 방식들에서 위치를 (예를 들면, 타일 내의 또는 이미지 내의 픽셀 어드레스로서) 식별할 수도 있다. 일 실시형태에서, 계수 리스트 델타 어드레스는 지수 골룸(Golomb) 코드와 같은 지수 코딩을 이용하여 전송될 수도 있다. 몇몇 실시형태들에 따르면, 지수 골룸 코드는 작은 크기의 수들(0 근처)을 효율적으로, 그러나 더 큰 크기의 수들은 비효율적을 전송한다. 계수 리스트 델타 어드레스가 작기 때문에, 지수 골룸 코드는 그 어드레스들을 효율적으로 전송할 수도 있다.
일 실시형태에서, 이미지 압축 유닛(120)은 계수들의 초기 2진법의 2의 보수 표현을 부호가 있는 크기 계수들로 변환하도록 구성될 수도 있다. 모든 계수들이 전송되거나 또는 예컨대 (예를 들면 수신 버퍼에서의) 공간 또는 시간의 부족으로 인해 전송이 조기 종료될 때까지, 가장 유의한 계수들이 먼저 전송되고, 후속하여 덜 유의한 계수들이 전송된다. 한 실시형태에서, 계수 값의 최상위 비트는 그것이 항상 설정될 수도 있기 때문에(즉, 이진수 '1'), 전송되지 않는다. 나머지 비트들은 각각의 계수 값에 대해 전송될 수도 있다. 일 실시형태에서, 부호 비트는 그것이 존재하는 경우 각각의 계수 값에 대해 전송될 수도 있다. 대안적으로, 음의 계수 값들은 별개의 유의성 그룹으로서 전송될 수도 있다. 예를 들면, 한 실시형태에서, 음의 유의한 그룹은, 양의 값들로 이루어진 등가의 유의성 그룹 이후에(또는 이전에) 전송될 수도 있다. 이러한 실시형태에서, 부호는 암시적일 수도 있다.
도 2는 차동 전송들을 이용한 무손실 이미지 압축을 위한 방법의 일 실시형태를 예시하는 순서도이다. 블록 200에서 예시된 바와 같이, 일 실시형태에 따르면, 이미지 압축 유닛(120)과 같은 이미지 압축 유닛이 이미지들의 시퀀스에서의 이미지에 대한 이미지 데이터를 수신할 수도 있다. 예를 들면, 이미지 데이터 소스(110)는 카메라를 나타낼 수도 있고 이미지 데이터를 이미지 압축 유닛(120)으로 전송할 수도 있다. 일 실시형태에서, 이미지 데이터 소스(110)는, 예를 들면, 이미지들(예를 들면, 각각의 이미지에 대한 이미지 데이터)을 이미지 압축 유닛(120)으로 순차 방식으로 연속적으로 전송하도록 구성된 비디오 카메라일 수도 있다.
그 다음, 블록 210에 도시된 바와 같이, 이미지 압축 유닛(120)은, 이미지의 적어도 몇몇 타일들에 대한 이미지 데이터가 리소스 제약들로 인해 손실성 압축을 이용하여 전송되도록, 이미지 데이터를 전송할 수도 있다. 예를 들면, 위에서 언급된 바와 같이, 이미지 압축 유닛(120)은 이미지 데이터 소스(110)로부터 수신되는 이미지 데이터를 압축하여 이미지 데이터 타겟(140)으로 전송하도록 구성될 수도 있다. 또한, 채널(150)과 같은 하나 이상의 접속들 또는 채널들의 제한적 본질로 인해, 이미지 압축 유닛(120)은 이미지의 하나 이상의 타일들을 손실적 방식으로(예를 들면, 손실성 압축을 이용하여) 압축하고 그 다음 손실적으로 압축된 이미지 데이터를 (어쩌면 다른 타일들에 대한 손실적으로 압축된 이미지 데이터와 함께) 전송할 수도 있다. 위에서 언급된 바와 같이, 몇몇 실시형태들에 따르면, 이미지 압축 유닛(120)은 임의의 다양한 무손실 및 손실성 압축 기술들을 이용하도록 구성될 수도 있다.
현재의 이미지에 대한 이미지 데이터를 송신한 이후, 블록 220에 도시된 바와 같이, 이미지 압축 유닛(120)은 이미지들의 시퀀스에서의 후속 이미지에 대한 이미지 데이터를 수신할 수도 있다. 그 다음, 블록 230에 예시된 바와 같이, 이미지 압축 유닛(120)은, 후속 이미지의 적어도 몇몇 타일들에 대한 이미지 데이터가 이전 이미지의 대응하는 타일들에 대한 이미지 데이터에 대해 변하지 않는지를 결정할 수도 있다. 예를 들면, 이미지 압축 유닛(120)은, 현재 프레임의 하나 이상의 타일들이 이전 프레임 이후 변하지 않았다고 결정하도록 구성될 수도 있다. 이것은, 예를 들면, 이미지 데이터 소스(110)가 정적인 배경을 갖는 이미지를 캡쳐하는 비디오 카메라인 경우, 또는 카메라의 시야 내에서의 모션이 순간적일지라도 정지하는 경우, 발생할 수도 있다. 따라서, 후속하는 프레임에서의 타일에 대한 이미지 데이터는 이전 이미지(예를 들면, 프레임)에서의 바로 그 타일에 대해 변하지 않을 수도 있다.
상이한 실시형태들에 따르면, 이미지 압축 유닛(120)은 2개의 이미지들 사이에서 타일들이 변했는지의 여부를 임의의 다양한 기술들을 이용하여 결정하도록 구성될 수도 있음에 유의해야 한다. 예를 들면, 일 실시형태에서, 이미지 압축 유닛(120)은 2개의 프레임들 사이에서 타일에 대한 이미지 데이터를 비교하도록 구성될 수도 있다. 다른 실시형태에서, 이미지 압축 유닛(120)은, 2개의 연속하는 이미지들(예를 들면, 프레임들) 사이에서 타일이 변했는지의 여부를 결정할 때 이미지 데이터의 변환된 또는 압축된 버전들을 비교하도록 구성될 수도 있다. 또 다른 실시형태에서, 이미지 압축 유닛(120)은 타일들이 변했는지에 관한 추가 정보(또는 메타데이터)에 의존하도록 구성될 수도 있다. 예를 들면, 이미지 데이터 소스(110)는 이미지 변화 정보를 이미지 데이터와 함께 이미지 압축 유닛(120)으로 전송하도록 구성될 수도 있다.
블록 240에 도시된 바와 같이, 일 실시형태에 따르면, 이미지 압축 유닛(120)은, 손실적으로 압축된 이미지 데이터가 이전에 전송되었던 타일들의 무손실 버전들을 생성하기에 충분한 방식으로, 이미지 데이터를 전송하도록 구성될 수도 있다. 예를 들면, 이미지 압축 유닛(120)은 제1 이미지에 대한 이미지 데이터를 그 이미지 내의 특정 타일에 대해 손실성 압축을 이용하여 압축하고 그 손실적으로 압축된 이미지 데이터를 이미지 압축해제 유닛(130)으로 전송할 수도 있다. 예를 들면, 이미지 압축 유닛(120)은 이미지 데이터를 계수들로 변환하지만, 그 계수들의 절반만을, 예컨대 가장 유의한 계수들만을 이미지 압축해제 유닛(130)으로 전송할 수도 있다. 따라서, 이미지 압축해제 유닛(130)은 (예를 들면, 이미지 압축해제 유닛(130)이 계수들의 절반만을 수신했기 때문에) 그 특정 이미지 타일의 무손실 버전을 구축하지 못할 수도 있다. 그러나, 후속 이미지를 프로세싱할 때, 이미지 압축 유닛(120)은 그 특정 타일에 대한 이미지 데이터가 변하지 않았는지를 결정할 수도 있다. 타일이 변하지 않았다는 결정에 응답하여, 그 다음, 이미지 압축 유닛(120)은 이미지 압축해제 유닛(130)(및/또는 이미지 데이터 타겟(140))이 타일의 무손실 버전을 구축하는 것을 허용하는 이미지 데이터를 전송할 수도 있다.
예를 들면, 타일에 대한 손실적으로 압축된 이미지 데이터를 전송할 때, 이미지 압축 유닛(120)은 채널(150) 상에서의/내에서의 제한된 리소스들로 인해 변환 계수들의 절반만을 전송했을 수도 있다. 그 다음, 후속 이미지에서의 대응하는 타일을 프로세싱할 때, 이미지 압축 유닛(120)은 그 계수들의 나머지 절반을 이미지 압축해제 유닛(130)으로 전송할 수도 있다. 따라서, 후속 이미지(예를 들면, 프레임)에서 대응하는 타일에 대한 이미지 데이터를 수신한 이후, 이미지 압축해제 유닛(130)(및/또는 이미지 데이터 타겟(140))은 그 타일의 무손실 버전을 구축하는 데 필요한 모든 정보를 구비할 수도 있다. 예를 들면, 이미지 압축해제 유닛(130)은 (이미지 압축해제 유닛(130)이 이제 모든 계수들을 가지고 있기 때문에) 새롭게 수신된 계수들을 이전에 수신된 계수들과 결합하여 타일의 무손실 버전을 구축할 수도 있다.
상이한 실시형태들에서, 이미지 압축 유닛(120) 및 이미지 압축해제 유닛(130)은 후속 프레임들과 함께 이용하기 위한 다양한 타입들의 데이터/정보를 기억하도록 및/또는 저장하도록 구성될 수도 있다. 예를 들면, 이미지 압축해제 유닛(130)은 제1 이미지(예를 들면, 손실적으로 압축된 버전)와 함께 수신된 계수들을, 그들을 후속 이미지들과 함께 수신되는 계수들과 결합할 수 있도록 하기 위해, 저장하도록 구성될 수도 있다. 또한, 이미지 압축 유닛(120)은 전송되고 있는 압축된 이미지 데이터의 타입에 관한 정보를 포함하도록 구성될 수도 있다. 예를 들면, 이미지 압축 유닛(120)은, 전송되고 있는 이미지 데이터가 손실적으로 또는 무손실적으로 압축되었는지의 여부 및/또는 전송되고 있는 이미지 데이터가 이전에 전송된 이미지 데이터와 연계하여 고려되어야 하는지의 여부를 나타내는 플래그 또는 필드를 포함할 수도 있다. 또한, 이미지 압축 유닛(120)은, 몇몇 실시형태들에서, 이미지 변화 정보를 압축된 이미지 데이터와 함께 전송할 수도 있다.
상기에서는, 2개의 연속하는 이미지들 또는 프레임들 사이에서 변하지 않았던 타일들을 주로 참조하여 설명되었지만, 몇몇 실시형태들에서는, 이미지 압축 유닛(120)은, 타일에 대한 이미지 데이터가 2개의 연속하는 이미지들 사이에서 얼마나 많이 변하는지를 그리고 그 타일이 소정량 미만으로만 변했는지를 결정하도록 구성될 수도 있고, 이미지 압축 유닛(120)은, 손실적으로 압축된 데이터가 이전에 전송되었던 타일에 대한 무손실 버전을 생성하기에 충분한 방식으로, 타일에 대한 이미지 데이터를 전송할 수도 있다. 따라서, 몇몇 실시형태들에서, 타일에 대한 이미지 데이터가 후속 프레임에서 변하는 경우에도, 이미지 압축 유닛(120)은 무손실 버전의 생성을 허용하는 타일에 대한 이미지 데이터를 전송할 수도 있다. 예를 들면, 이미지 압축 유닛(120)은 이전에 전송되지 않았던 나머지 계수들뿐만 아니라, 2개의 연속하는 프레임들 사이에서의 타일에 대한 차이들을 나타내는 정보도 전송하도록 구성될 수도 있다.
추가적으로, 몇몇 실시형태들에서, 이미지 압축 유닛(120)은 타일의 무손실 버전을 생성하는 데 필요한 완전한 이미지 데이터를 건네주기 위해, (원래의 손실적으로 압축된 프레임 외에) 2개 이상의 연속 프레임들을 이용하도록 구성될 수도 있다. 예를 들면, 이미지 압축 유닛(120)은 초기 프레임 동안 타일에 대한 변환 계수들 중 일부만을 전송할 수도 있고 그 타일이 다음 프레임 동안 변하지 않으면 나머지 계수들 중 일부를 전송할 수도 있다. 그 다음, 제2 프레임과 제3 프레임 사이에서 타일이 다시 변하지 않으면, 이미지 압축 유닛(120)은 나머지 계수를 전송하도록 구성될 수도 있다. 따라서, 이미지 압축해제 유닛(130)은, 타일 또는 타일의 무손실 버전을 생성하기 위해, 2개 이상의 프레임들에 걸쳐 전송된 정보를 활용할 수도 있다.
도 3은 이미지 타일(300)의 일 실시형태의 블록도이다. 이미지 타일(300)에 대해 변환(예를 들면, 웨이브릿)을 적용하는 것은 변환된 타일(310)을 생성할 수도 있다. 변환된 타일(310)은 각각 LL, HL, LH, 및 HH로 라벨링되는 4개의 4분면(quadrant)들(320A-320D)로 분할된다. 일반적으로 LL 사분면(320A)은 가장 유의한 계수들을 가질 수도 있다. HL, LH, 및 HH 사분면들(320B-320D)은, 이미지의 색상들 사이의 에지를 형성하는 픽셀들에 통상적으로 대응하는 유의한 계수들로 성기게 채워진다. 이들 사분면들에서 나머지 계수들은 통상적으로 0이거나 거의 0이다. HH 사분면(320D)은 유의한 계수들로 가장 성기게 채워지는 경향이 있을 수도 있다. L 및 H는 일반적으로 변환에서의 저주파 성분들 및 고주파 성분들을 가리킬 수도 있다. 처음의 "L" 또는 "H"는 수평 방향을 가리키고 두 번째 "L" 또는 "H"는 수직 방향을 가리킨다.
변환은 사분면(320A)에 대해 다시 적용되어, 사분면들(330A-330D)을 생성할 수도 있다. 사분면들(320A-320D)과 마찬가지로, 사분면들(330A-330D)은 각각 LL, HL, LH 및 HH로 라벨링된다. 변환의 이전의 적용으로부터 유래되는 LL 사분면의 변환은 필요에 따라 자주 반복될 수도 있다. 몇몇 지점에서, HL, LH, 및 HH 사분면들은 유의한 계수들로 덜 성기게(더 조밀하게) 채워지게 된다. 따라서, 변환을 적용하는 반복들의 횟수는, 추가적인 반복들이 제공할 감소된 압축 리턴에 기초하여 캐핑될(capped) 수도 있다. 한 실시형태에서는 4번의 반복들의 캡이 선택될 수도 있지만, 다른 실시형태들에서는 더 많은 또는 더 적은 반복들이 이용될 수도 있다. 또한, 반복들의 횟수는, 각각의 반복 이후에 HL, LH, 및 HH 사분면들에서 나타나는 유의한 계수들의 수에 기초하여 동적으로 변할 수도 있다.
도 3이 이미지 타일(300), 변환된 타일(310), 및 (사분면들(330A-330D)로서의) 변환된 사분면(320A)을 별개로 예시하지만, 몇몇 실시형태들에 따르면, 변환은 동일한 메모리 위치들 내에서 수행되어, 타일 내의 원래의 데이터에 덮어쓰기 할 수도 있다.
이제 도 4를 참조하면, 압축 유닛(16)의 일 실시형태의 블록도가 도시된다. 도 4의 실시형태에서, 이미지 압축 유닛(120)은 데이터 버퍼(410), 포맷 컨버터 회로(400), 변환 회로(430), 압축 및 전송 제어 회로(450), 계수 포인터 레지스터들(455A-455B), 계수 링크들 메모리(440) 및 참조 버퍼(460)를 포함한다. 데이터 버퍼(410)는 포맷 컨버터 회로(400)를 통해 변환될 수도 있는 압축될 데이터(예를 들면, 데이터의 타일)를 수신하도록 커플링되고, 변환 회로(430)와 압축 및 전송 제어 회로(450)에 커플링된다. 압축 및 전송 제어 회로(450)는 송신을 위한 압축된 데이터를 제공하도록 커플링되고, 계수 링크들 메모리(440), 계수 포인터 레지스터들(455A-455B) 및 참조 버퍼(460)에 커플링된다. 레지스터들(455A-455B)의 각각은 도 4에서 S0 내지 Sn-1로 라벨링된 여러 필드들을 포함할 수도 있다(여기서 n은 계수에서의 비트들의 수임). 필드는 대응하는 유의성의 계수를 갖는 계수 링크들 메모리(440)에서의 엔트리에 대한 포인터를 저장할 수도 있다. 예를 들면, 일 실시형태에서, 가장 유의한 계수 포인터는 필드(Sn-1)에 있을 수도 있다. 두 번째로 덜 유의한 계수 포인터는 필드(S1)에 있을 수도 있고, 가장 덜 유의한 계수 포인터는 필드(S0)에 있을 수도 있다. 레지스터들(455A-455B)은 포인터들에 대한 스토리지를 제공하기 위해 필요로 되는 한에서 하나 이상의 레지스터들을 포함할 수도 있다.
계수 링크들 메모리(440)에서의 각각의 엔트리는 압축된 이미지를 형성하는 계수들의 리스트에서의 계수에 대응한다. 그 리스트는 가장 안쪽의 압축의 LL 사분면으로(그리고 행 우선(row-major) 또는 열 우선(column-major)과 같은, 사분면 내에서의 LL 계수들의 미리 정의된 순서로) 시작하고, 가장 안쪽에서 가장 바깥쪽으로 각각의 압축의 다른 사분면들을 통해 진행하여, 가장 바깥쪽 압축의 HH 사분면에 도달하는 순서일 수도 있다. 그 리스트는 리스트의 논리적 구조를 나타내기 위해 도 4에서 계수 링크들 메모리(440) 바로 옆에 점선 형태로 예시된다. 그러나, 계수 리스트는, 예를 들면, 도 3에 관해 설명된 바와 같이, 변환 회로(430)에 의해 수행되는 변환들이 원래의 데이터를 변환된 데이터로 덮어쓰기 한 이후 버퍼에 물리적으로 저장될 수도 있다.
이미지 압축 유닛(120)의 동작(및 더 구체적으로는 적절히 변환 회로(430)와 압축 및 전송 제어 회로(450))이 도 5 내지 도 7에 예시된 순서도와 관련하여 더 상세히 설명될 것이다. 블록들이 이해의 용이성을 위해 특정 순서로 도시되지만, 다른 순서들도 이용될 수도 있다. 블록들은 이미지 압축 유닛(120)에서 조합 로직(combinatorial logic)에서 병렬로 수행될 수도 있다. 블록들, 블록들의 조합들, 및/또는 순서도들은 전체적으로 다수의 클록 싸이클들에 걸쳐 파이프라인식으로 연결될 수도 있다. 이미지 압축 유닛(120)은 순서도들에 의해 예시되는 동작을 구현하도록 구성될 수도 있다.
이제 도 5를 참조하면, 차동 전송들을 이용한 무손실 이미지 압축을 위한 방법의 일 실시형태를 예시하는 순서도가 도시된다. 블록 500에서 예시된 바와 같이, 이미지 압축 유닛은 이미지들의 시퀀스에서의 다음 이미지에 대한 이미지 데이터를 수신하는 것을 개시할 수도 있다. 예를 들면, 위에서 언급된 바와 같이, 이미지 압축 유닛은, 다른 것들 중에서도, 비디오 카메라, 시간에 걸쳐 다수의 이미지들을 찍는 스틸 카메라, 또는 네트워크화된 스크린 공유 디바이스들과 같은 다양한 이미지 데이터 소스들로부터 이미지 데이터를 수신할 수도 있다. 이미지들의 시퀀스 중 특정 이미지 또는 프레임에 대한 이미지 데이터를 수신하는 경우, 이미지 압축 유닛은 그 프레임 내의 다수의 타일들의 각각에 대한 이미지 데이터를 수신할 수도 있다. 따라서, 블록 510에 도시된 바와 같이, 이미지 압축 유닛은 이미지의 다음 타일에 대한 이미지 데이터를 수신할 수도 있다.
그 다음, 결정 블록 520에서 예시된 바와 같이, 이미지 압축 유닛은, 타일에 대한 이미지 데이터가 이전 이미지(즉, 프레임)에서의 대응하는 타일에 대해 변하였는지의 여부를 결정할 수도 있다. 결정 블록 520으로부터의 긍정의 출력에 의해 나타내어진 바와 같이, 현재 타일에 대한 이미지 데이터가 이전 이미지에서의 대응하는 타일에 대해 변했다면, 블록 530에 의해 나타내어진 바와 같이, 이미지 압축 유닛은 그 타일에 대한 이미지 데이터에 대해 데이터 변환들을 적용하여 계수들의 세트를 생성할 수도 있다. 예를 들면, 일 실시형태에 따르면, 이미지 압축 유닛(120)은 이미지 데이터에 대해 하나 이상의 웨이브릿 변환들을 적용하여, 웨이브릿 계수들의 세트를 생성하도록 구성될 수도 있다. 다른 실시형태들에서는, 본원에서 설명되는 바와 같이, 상이한 전송들을 이용한 무손실 이미지 압축을 수행할 때 상이한 타입(또는 다수의 타입들)의 변환들이 이미지 데이터에 적용될 수도 있다.
그 다음, 블록 540에서 예시된 바와 같이, 이미지 압축 유닛은 계수들을 유의성 그룹들로 분류하고 계수들을 저장할 수도 있다. 위에서 언급된 바와 같이, 몇몇 실시형태들에 따르면, 자신들의 가장 유의하게 설정된 비트들을 동일한 비트 위치에 갖는 다수의 계수들은 유의성 그룹으로서 칭해질 수도 있다. 따라서, 이미지 압축 유닛(120)은 계수들을 하나 이상의 유의성 그룹들로 분류하도록 구성될 수도 있고, 위에서 설명된 바와 같이, 계수들을 예컨대 참조 버퍼(460)에 추가로 저장할 수도 있다. 몇몇 실시형태들에서는 이미지 압축 유닛(120)은 계수들을 유의성 그룹들에 저장하도록 구성될 수도 있지만, 다른 실시형태들에서는 이미지 압축 유닛(120)은 데이터의 몇몇 다른 포맷 또는 배치를 이용하여 계수들을 저장할 수도 있다.
일 실시형태에 따르면, 계수들을 분류하여 저장한 이후, 이미지 압축 유닛은, 리소스 제한들로 인해, 계수들 중 일부만을 전송할 수도 있고, 가장 유의한 것부터 가장 덜 유의한 것으로의 유의성 그룹들의 순서로 그들을 전송할 수도 있다. 예를 들면, 공간 제한된 리소스(150)와 같은 공간 제한된 리소스를 통해 전송하는 경우, 이미지 압축 유닛(120)은 계수들 중 일부만을 전송하도록 구성될 수도 있는데, 모든 이미지 타일들에 대한 모든 계수들을 전송하는 데 이용가능한 충분한 대역폭이 없을 수도 있기 때문이다. 따라서, 이미지 압축 유닛(120)은, 가장 유의한 것부터 가장 덜 유의한 것으로의 유의성 그룹의 순서로 계수들 중 일부를 전송할 수도 있다. 따라서, 더 유의한 계수들을 전송하는 것에 의해, 이미지 압축 유닛(120)은 이미지 타일의 손실성 버전(예를 들면, 근사)을 생성하는 데 이용될 수도 있는 계수들을 전송할 수도 있다.
도 5의 결정 블록 570에 의해 예시된 바와 같이, 계수들(중 일부만)의 전송 이후에, 이미지 압축 유닛은 프레임의 나머지 타일들의 프로세싱을 계속할 수도 있다. 따라서, 이미지 압축 유닛(120)은, 이미지들의 시퀀스에서의 다음 프레임(예를 들면, 이미지)에 대한 이미지 데이터의 수신을 시작하기 이전에, 한 프레임(예를 들면, 이미지)의 타일들에 대한 모든 이미지 데이터를 수신하여 프로세싱할 수도 있다.
결정 블록 520으로 돌아가서, 결정 블록 520으로부터의 부정의 출력에 의해 나타내어지는 바와 같이, 타일에 대한 이미지 데이터가 이전 이미지(예를 들면, 프레임)에서의 대응하는 타일에 대해 변하지 않았다면, 블록 560에 의해 예시되는 바와 같이, 이미지 압축 유닛은 이전에 전송되지 않은 계수들 중 적어도 몇몇을 전송하도록 구성될 수도 있다. 블록 560에서 도시된 바와 같이, 몇몇 실시형태들에 따르면, 이미지 압축 유닛은, 이미지 데이터 타겟의 타일에 대해 계수들의 향상된 세트를 생성하는 방식으로 계수들을 전송할 수도 있다. 예를 들면, 타일에 대한 이미지 데이터가 이전 프레임에 대해 변하지 않았다면, 이미지 압축 유닛(120)은 이전에 전송되지 않은 계수들 중 추가적인 계수들을 전송하도록 구성될 수도 있다. 따라서, 이미지 압축 유닛(120)은 이전에 저장된 계수들을 예컨대 참조 버퍼(460)로부터 판독하고, 이전에 전송되지 않은 계수들의 일부 또는 모두를 전송할 수도 있다. 그 다음 데이터 이미지 타겟은, 예컨대 새롭게 전송된 계수들을 이전에 전송된 것들과 이미지 압축 유닛에 의해 결합하는 것에 의해, 타일에 대한 계수들의 향상된 세트를 생성할 수 있을 수도 있다.
몇몇 실시형태들에서, 이미지 압축 유닛(120)은 두 번째 전송에서(예를 들면, 다음 프레임을 프로세싱할 때) 나머지 계수들 모두를 전송할 수도 있지만, 몇몇 실시형태들에서는, 이미지 압축 유닛(120)은, 예컨대 제한된 리소스들로 인해, 한 번의 전송에서 나머지 계수 모두를 전송하지 못할 수도 있다. 따라서, 몇몇 실시형태들에서는, 이미지 압축 유닛(120)은 다음 프레임을 프로세싱할 때 나머지 계수들 중 일부만을 전송할 수도 있고 타일에 대한 이미지 데이터가 후속 프레임에서 변하지 않으면, 이미지 압축 유닛(120)은 나머지 계수들을 전송할 수도 있다. 다시 말하면, 타일 또는 타일에 대한 이미지 데이터가 변하지 않는 한, 이미지 압축 유닛(120)은, 모든 계수들이 전송될 때까지, 계수들의 부분 세트들을 다수의 프레임들에 걸쳐 (예를 들면, 유의성 그룹들의 순서들로) 전송하도록 구성될 수도 있다. 따라서, 이미지 데이터 타겟은 이미지 타일의 무손실 버전을 구축하기 위해, 순서가 흩어진 방식으로 다수의 프레임들에 걸쳐 계수들의 완전한 세트를 수신할 수도 있다.
이미지 압축 유닛(120)이 이미지 타일에 대한 계수들 중 부분적 세트를 먼저 전송하지만, 후속 프레임에서 이미지 압축 유닛(120)이 모든 계수들을 전송하기 이전에 그 타일에 대한 이미지 데이터가 변하면, 이미지 압축 유닛(120)은 이전의 계수들을 버리고 (예컨대 데이터 변환들을 적용하여 분류하고, 계수들을 저장 및 전송하는 것에 의해) 그 타일에 대해 새롭게 변한 이미지 데이터 프로세싱을 시작할 수도 있다.
몇몇 실시형태들에 따르면, 계수들 중 일부만을 전송하는 동안, 도 5에 관해 위에서 설명된 바와 같이, 이미지 압축 유닛은 전송되는 그들 계수들의 전체 사본들을 전송할 수도 있다. 다른 실시형태들에서, 이미지 압축 유닛은 제한된 리소스를 통해 계수들을 전송할 때 계수들을 추가적으로 압축하거나, 변환하거나 또는 근사하도록 구성될 수도 있다. 이제 도 6을 참조하면, 차동 전송들을 이용한 무손실 이미지 압축의 일부로서 계수들을 전송할 때 계수들을 추가적으로 프로세싱하기 위한 방법의 일 실시형태가 예시된다.
몇몇 실시형태들에 따르면, 블록 600에 예시된 바와 같이, 이미지 압축 유닛은 이미지의 타일에 대한 이미지 데이터에 대해 하나 이상의 데이터 변환들을 적용하여 계수들을 생성할 수도 있다. 예를 들면, 이미지 압축 유닛(120)은, 위에서 설명된 바와 같이, 이미지 데이터에 대해 하나 이상의 웨이브릿 변환들을 적용하도록 구성될 수도 있다. 그러나, 결과적으로 생기는 계수들 전체를 전송하는 대신, 몇몇 실시형태들에서는, 블록 610에서 예시된 바와 같이, 이미지 압축 유닛은 계수들을 양자화하고 결과적으로 양자화된 계수들을 전송할 수도 있다. 따라서, 몇몇 실시형태들에서, 이미지 압축 유닛은 계수들을 이미지 데이터 타겟으로 전송하기 이전에 계수들의 전체 사이즈를 줄이기 위한 하나 이상의 추가적인 방법들을 적용하도록 구성될 수도 있다. 그 다음, 몇몇 실시형태들에서는, 양자화된 계수들은 이미지 타겟 데이터에 대한 타일의 손실성(예를 들면, 근사) 버전을 생성하는 데 이용될 수도 있다.
그 다음, 타일에 대한 이미지 데이터가 후속 프레임에서 변하지 않으면, 블록 620에서 예시된 바와 같이, 이미지 압축 유닛은 양자화되지 않은 계수들과 양자화된 계수들 사이의 차이 중 적어도 몇몇을 전송하여 타일에 대한 계수들의 향상된 세트를 생성할 수도 있다. 예를 들면, 일 실시형태에서, 이미지 압축 유닛(120)은, 예컨대 각각의 계수에서의 전체 사이즈(예를 들면, 비트들의 수)를 줄이기 위해, 계수들을 양자화하도록 구성될 수도 있다. 따라서, 양자화된 계수들은 타일의 손실성(예를 들면, 근사) 버전을 나타낼 수도 있다. 후속 프레임에서, 타일이 (이전 프레임에 대해) 변하지 않으면, 이미지 압축 유닛(120)은 각각의 양자화되지 않은 계수와 이전에 전송된 대응하는 양자화된 계수 사이의 차이를 전송할 수도 있다.
예를 들면, 일 실시형태에서, 이미지 압축 유닛은 각각의 계수의 최하위 4비트들을 잘라 내는 것에 의한(그리고 어쩌면 결과를 반올림하는 것에 의한) 간단한 양자화를 적용할 수도 있다. 따라서, 양자화된 계수들의 세트는 이미지 타일의 근사(예를 들면, 손실적으로 압축된) 버전을 나타낼 수도 있다. 타일이 다음 프레임에서 변하지 않으면, 이미지 압축 유닛은 각각의 계수의 그들 최하위 비트들을 (그리고 어쩌면 어떤 반올림이 발생했다는 표시를) 이미지 데이터 타겟으로 전송하여, 전송되었던 계수들의 완전한 버전들을 생성할 수도 있다. 다양한 실시형태들에서, 이미지 압축 유닛에 의해 상이한(또는 다수의) 타입들의 양자화가 계수들에 적용될 수도 있음을 유의해야 한다.
추가적으로, 몇몇 실시형태들에 따르면, 도 5 및 도 6에 관해 위에서 설명된 기술들은, 상이한 전송들을 이용한 무손실 이미지 압축을 구현할 때 결합될 수도 있다. 따라서, 몇몇 실시형태들에서는, 위에서 설명된 바와 같이, 이미지 압축 유닛(120)은 타일에 대한 이미지 데이터에 대해 데이터 변환들을 적용하여 계수들의 세트를 생성하고, 그들 계수들을 유의성 그룹들에 따라 분류하고 그들 계수들을 양자화할 수도 있다. 압축된 이미지 데이터를 이미지 데이터 타겟으로 전송할 때, 이미지 압축 유닛(120)은 양자화된 성분들 중 일부만을 전송할 수도 있다. 그 다음, 타일이 후속 이미지에서 변하지 않으면, 이미지 압축 유닛(120)은 이미 전송된 양자화된 계수들과 그들의 대응하는 양자화되지 않은 포맷들 사이의 차이들을 전송할 수도 있다. 또한, 이미지 압축 유닛(120)은 이전에 전송되지 않은 계수들의 추가적인 양자화되지 않은 버전들을 또한 전송할 수도 있다. 따라서, 몇몇 실시형태들에서는, 대역폭 제한된 또는 공간 제한된 리소스를 통해 이미지 데이터를 전송할 때 손실성 압축으로서 계수들의 전체 수를 양자화하고 그 일부만을 전송하는 것의 조합이 이용될 수도 있다.
위에서 설명된 바와 같이 이미지 타일에 대한 이미지 데이터를 압축하여 전송하는 것에 추가하여, 몇몇 실시형태들에서는, 이미지 압축 유닛(120)은 이미지 타일의 2개의 연속하는 버전들 사이의 차이들을 결정하도록 구성될 수도 있다. 몇몇 실시형태들에서, 이 차이결정(differencing)은 데이터 변환들이 이미지 데이터에 적용된 이후 수행될 수도 있다. 앞서 언급된 바와 같이, 이미지 압축 유닛(120)은 후속 이미지/프레임에서의 대응하는 타일을 프로세싱할 때 이용하기 위해 이미지 타일에 대한 생성된 계수들을 저장할 수도 있다.
몇몇 실시형태들에서, 타일들의 무손실 버전들을 생성하기 위해 전송되고 있는 이미지 데이터는 특정 타일들이 프로세싱되고 있는 때 이외의 시간들에서 전송될 수도 있다. 예를 들면, 이미지 압축 유닛(120)은 타일이 이전 프레임에 대해 변하지 않았다는 것을 결정하도록 구성될 수도 있고 그 타일에 대해 전송되어야 할 필요가 있는 추가 이미지 데이터가 존재하지 않으면(즉, 이미지 데이터 타겟이 이미 그 타일의 무손실 버전을 가지고 있으면), 이미지 압축 유닛(120)은, 이미지 데이터가 이전에 손실성 압축을 이용하여 전송되었던 상이한 타일에 대해 추가 이미지 데이터를 전송할 수도 있다. 다시 말하면, 몇몇 실시형태들에 따르면, 타일이 변하지 않았다는 것이 결정될 때, 그 타일에 대해 전송되어야 하는 이미지 데이터가 존재하지 않으면, 다른 타일에 대한 이미지 데이터(예를 들면, 추가적인 계수들)가, 대역폭이 허용한다면, 전송될 수도 있다. 추가적으로, 이미지 압축 유닛(120)은 이미지 데이터가 순서에서 벗어나 있다는 것을 이미지 압축해제 유닛(130)에게 경고하고 이미지 데이터가 속하는 타일을 식별하는 정보를 또한 전송할 수도 있다. 또한, 이미지 압축해제 유닛(130)은, 몇몇 실시형태들에서는, 순서에서 벗어난 타일에 대한 이미지 데이터를 수신하고 그 타일에 대한 무손실 이미지 데이터를 생성하도록 구성될 수도 있다.
이제 도 7을 참조하면, 블록 710에 도시된 바와 같이, 이미지 압축 유닛은 이미지 데이터에 대해 데이터 변환들을 적용하여 타일에 대한 새로운 계수들을 생성할 수도 있다. 예를 들면, 이미지 압축 유닛(120)은 이미지 데이터에 대해 하나 이상의 웨이브릿 변환들을 적용하여 계수들의 세트를 생성하도록 구성될 수도 있다. 그 다음, 블록 720에서 예시된 바와 같이, 이미지 압축 유닛은 새로운 계수들을 이전에 전송된 계수들의 참조 버퍼에 대해 비교하여 차이가 결정된 계수(differenced coefficient)들을 생성할 수도 있다. 예를 들면, 이미지 압축 유닛(120)은 새로운 계수들을 참조 버퍼(460)에 저장된 계수들에 대해 비교하여 계수들의 두 세트들 사이의 차이들을 결정할 수도 있다. 이때, 계수들의 세트는 타일의 두 버전들 사이의 차이를 나타낼 수도 있다. 따라서, 이미지 압축 유닛(120)은 원시(raw) 이미지 데이터를 비교하는 대신 변환된 이미지 데이터를 비교하는 것에 의해(예를 들면, "변환 공간"에서 비교하는 것에 의해) 이미지 타이의 두 버전들 사이의 차이들을 결정하도록 구성될 수도 있다.
그 다음, 몇몇 실시형태들에서는, 이미지 압축 유닛이 계수들의 두 세트들 사이의 차이들을 전송할 수도 있지만, 다른 실시형태들에서는 이미지 압축 유닛은 (예를 들면, 송신되는 데이터 사이즈의 면에서) 차이들을 전송하는 것이 효율적일지 또는 새로운 계수들 그 자체를 전송하는 것이 효율적일지의 여부를 결정하도록 구성될 수도 있다. 따라서, 이미지 압축 유닛은, 블록 730에 도시된 바와 같이, 새로운 계수들을 압축하고, 블록 740에 도시된 바와 같이, 차이가 결정된 계수들을 압축하고, 블록 750에 도시된 바와 같이, 두 개 중 더 적은 것을 전송할 수도 있다. 다시 말하면, 몇몇 실시형태에서, 이미지 압축 유닛(120)은, 단지, 이미지 타일에 대한 이전의 이미지 데이터와 새로운 이미지 데이터 사이의 차이들 대신, (예를 들면, 압축된 이후) 새로운 이미지 데이터를 전송하는 것이 (송신되는 데이터의 사이즈의 면에서) 더 효율적일 수도 있는지의 여부를 결정하도록 구성될 수도 있다.
새로운 이미지 데이터를 전송하든지 또는 차이가 결정된 이미지 데이터를 전송하든지 간에, 전송되는 데이터는 본원에서 설명된 기술들 중 임의의 것을 이용하여 전송될 수도 있음에 유의해야 한다. 다시 말하면, 차이가 결정된 계수들을 전송할 때, 이미지 압축 유닛(120)은 하나의 이미지 프레임을 프로세싱하는 경우에는 (예를 들면, 제한된 대역폭으로 인해) 그들 중 일부만을 전송하도록 그리고 후속 프레임을 프로세싱하는 경우에는(예를 들여, 타일이 변하지 않으면) 차이가 결정된 계수들의 나머지를 전송하도록 구성될 수도 있다.
도 8은 이미지 압축해제 유닛(130)의 일 실시형태의 블록도이다. 위에서 설명된 바와 같이, 이미지 압축해제 유닛(130)은 이미지 압축 유닛(120)의 동작을 반대로 하여, 원래의 비압축 데이터 또는 그 근사를 생성하도록 구성될 수도 있다. 다시 말하면, 이미지 압축해제 유닛(130)은 이미지 압축 유닛(120)에 의해 이용되는 압축 알고리즘을 인식한 상태에서 설계될 수도 있다. 추가적으로, 압축 알고리즘의 파라미터들이 프로그램가능하면(또는 구성가능하면), 이미지 압축 유닛(120) 및 이미지 압축해제 유닛(130) 둘 다는, 이미지 압축해제 유닛(130)이 수신되는 데이터를 적절히 해석하는 것을 보장하기 위해, 동일한 형식으로 프로그래밍될 수도 있다(또는 구성될 수도 있다).
도 8의 실시형태에서, 이미지 압축해제 유닛(130)은 버퍼(810), 수신 제어 회로(820), 역변환 회로(830), 포맷 컨버터(800) 및 참조 버퍼(840)를 포함한다. 수신 제어 회로(820)는 압축된 데이터를 수신하도록 커플링되고 버퍼(810) 및 역변환 회로(830)에 커플링된다. 역변환 회로(380) 및 포맷 컨버터(800)는 버퍼(810)에 커플링될뿐만 아니라, 포맷 컨버터(800)는 압축해제된 데이터를 출력하도록 커플링된다.
버퍼(810)는, 다양한 실시형태들에서, 데이터의 하나 이상의 타일들을 저장하도록 구성될 수도 있다. 최초, 버퍼(810)는 수신 제어 회로(820)에 의해 수신되는 계수들의 리스트를 저장할 수도 있고, 후속하여 데이터는 원래의 타일 데이터(또는 손실성 압축의 경우, 그 근사)로 다시 변환될 수도 있다. 따라서, 수신 제어 회로(820)는 압축해제를 수행할 수도 있다. 수신 제어 회로(820)는 압축된 데이터를 (예를 들면, 계수 리스트 어드레스들 및 계수 값들의 형태로) 수신할 수도 있고 변환된 타일을 버퍼(810)에서 재구축할 수도 있다. 역변환 회로(830)는 이미지 압축 유닛(120)에 의해 데이터에 적용된 변환들의 역을, 변환들이 하나 이상 이용된 경우 변환들이 적용되었던 역순서로, 적용하도록 구성될 수도 있다. 포맷 컨버터(800)는 데이터를 YUV로부터 RGB 포맷으로 변환하도록 구성될 수도 있는데, 몇몇 실시형태들에서는, 옵션적일 수도 있고 포맷 변환이 수행되지 않으면 포함되지 않을 수도 있다.
이제, 도 9를 참조하면, 차동 전송들을 이용한 무손실 이미지 압축에 따라 데이터를 수신하기 위한 방법의 일 실시형태가 예시된다. 블록 900에 도시된 바와 같이, 이미지 압축해제 유닛(130)과 같은 이미지 압축해제 유닛은 이미지들의 시퀀스에서의 이미지에 대한 압축된 이미지 데이터를 수신하도록 구성될 수도 있는데, 이 경우 그 이미지의 타일들 중 적어도 몇몇에 대한 이미지 데이터는 손실성 압축을 이용하여 전송되었다. 그 다음, 이미지 압축해제 유닛은, 손실성 압축을 이용하여 이전에 전송되었던 타일들의 무손실 버전들을 생성할 정도의 그러한 방식으로, 후속 이미지에 대한 압축된 이미지 데이터를 수신할 수도 있다.
예를 들면, 이미지 압축해제 유닛(130)은 이미지 타일에 대한 손실적으로 압축된 이미지 데이터를 수신하고 그 다음 후속하여 (예를 들면, 다음 이미지의 일부로서) 이미지 압축해제 유닛(130)은 그 타일의 무손실 버전이 생성되는 것을 허용하는 그 타일에 대한 추가 이미지 데이터를 수신할 수도 있다.
다른 예에서, 이미지 압축해제 유닛(130)은 이미지 타일에 대한 양자화된 계수들의 세트로 구성되는 이미지 데이터를 수신할 수도 있고 후속하여 이전에 전송된 양자화된 계수들과 전체 양자화되지 않은 계수들 사이의 차이를 수신하여 이미지 타일의 무손실 버전의 생성을 허용할 수도 있다.
따라서, 이미지 압축해제 유닛(130)은 다수의 이미지 프레임들에 걸쳐 이미지 타일에 대한 이미지 데이터를 수신하도록 구성될 수도 있는데, 여기서 타일에 대한 이미지 데이터의 제1 세트는 손실성 압축을 이용하여 전송되고 후속 이미지 데이터는 타일의 무손실 버전의 생성을 허용하는 방식으로 전송된다.
도 10은, 본원에서 설명되는 바와 같이, 차동 전송들을 이용한 무손실 이미지 압축에 따라 압축된 이미지 데이터를 수신하기 위한 방법의 일 실시형태를 예시하는 순서도이다. 블록 1000에 도시된 바와 같이, 이미지 압축해제 유닛은 이미지들의 시퀀스에서의 이미지의 타일에 대한 압축된 웨이브릿 변환 계수들을 수신할 수도 있는데, 여기서 웨이브 계수들은 타일에 대한 전체 계수들 중 일부만을 포함한다. 그 다음, 이미지 압축해제 유닛은 수신되는 계수들을 압축해제하고 저장하여 이미지 타일에 대한 손실성 이미지 데이터를 생성한다. 예를 들면, 이미지 압축(120)은 이미지 타일의 웨이브릿 계수들 중 일부만을 전송할 수도 있고 이미지 압축해제 유닛(130)은 그들 웨이브 계수들을 수신 및 저장하여 타일에 대한 손실성 이미지 데이터를 생성할 수도 있다.
예를 들면, 이미지 압축해제 유닛(130)은 이미지 압축 유닛(120)으로부터 타일에 대한 웨이브릿 변환 계수들의 세트를 수신할 수도 있지만, 그들 계수들은 타일에 대한 전체 계수들 중 일부일 뿐일 수도 있다. 따라서, 이미지 압축해제 유닛(130)은 계수들을 수신, 압축해제 및 저장할 수도 있다. 계수들이 타일에 대한 계수들의 전체 세트보다 적기 때문에, 웨이브릿 변환(들)의 역을 행하는 것으로부터 유래되는 이미지 데이터는 타일에 대한 손실성 이미지 데이터를 생성할 수도 있다.
그 다음, 블록 1020에 도시된 바와 같이, 이미지 압축해제 유닛은 시퀀스에서의 후속 이미지의 동일한 타일에 대한 새로운 압축된 웨이브릿 변환 계수들을 수신할 수도 있는데, 여기서 그 계수들은 이미지 타일에 대해 이전에 전송되지 않은 계수들을 포함한다. 따라서, 후속 이미지 프레임을 프로세싱할 때, 이미지 압축해제 유닛(130)은 계수들의 나머지(예를 들면, 계수들의 이전의, 부분적인, 세트에서 전송되지 않은 계수들)를 수신할 수도 있다. 그 다음, 이미지 압축해제 유닛은, 블록 1030에 도시된 바와 같이, 새로운 계수들을 압축해제하고, 블록 1040에 도시된 바와 같이, 새로운 계수들을 저장된 계수들과 결합하여 이미지 타일에 대한 무손실 이미지 데이터를 생성할 수도 있다. 따라서, 이미지 압축해제 유닛(130)은, 몇몇 실시형태들에서는, 다수의 이미지 프레임들에 걸쳐 수신되는 계수들의 2개의(또는 그 이상의) 세트들을 결합하여 이미지 타일에 대한 무손실 이미지 데이터를 생성하도록 구성될 수도 있다.
단일의 이미지 타일 및 2개의 잇따른 이미지 프레임들에 관해 상기에서 설명되었지만, 도 10의 순서도에서 예시되는 방법은 다수의 이미지 타일들 및 다수의 이미지 프레임들에 걸친 데이터의 전송에 적용될 수도 있음을 유의해야 한다. 예를 들면, 이미지 타일이 변하지 않으면, 이미지 압축해제 유닛(130)은 3개의 세트들(각각이 3개의 이미지 프레임들의 각각을 가짐)로서 수신되는 계수들을 결합하여 타일에 대한 무손실 이미지 데이터를 생성할 수도 있다.
또한, 도 9 및 도 10에 관해 설명된 기술들 대신, 또는 그 기술들과 연계하여 손실성 압축의 임의의 다양한 방법들이 이용될 수도 있다.
차동 전송들을 이용한 무손실 이미지 압축에 대해 본원에서 설명되는 기술들은 임의의 아주 다양한 컴퓨팅 디바이스들 상에서 구현될 수도 있다. 도 11은, 본원에서 설명되는 바와 같이 그리고 다양한 실시형태들에 따라, 차동 전송들을 이용한 무손실 이미지 압축을 구현하도록 구성되는 예시적인 컴퓨팅 시스템을 예시한다. 컴퓨터 시스템(1100)은, 퍼스널 컴퓨터 시스템, 데스크탑 컴퓨터, 랩탑 또는 노트북 컴퓨터, 메인프레임 컴퓨터 시스템, 핸드헬드 컴퓨팅 디바이스, 셀룰러폰, 스마트폰, 모바일폰, 워크스테이션, 네트워크 컴퓨터, 소비자 디바이스, 애플리케이션 서버, 저장 디바이스, 지능형 디스플레이, 주변장치 디바이스 예컨대 스위치, 모뎀, 라우터 등, 또는 일반적인 임의의 타입의 컴퓨팅 디바이스를 포함하지만 이들에 제한되지 않는 임의의 다양한 타입들의 컴퓨팅 디바이스일 수도 있다.
몇몇 실시형태에서, 본원에서 설명되는 방법들은 컴퓨터 프로그램 제품, 또는 소프트웨어에 의해 구현될 수도 있다. 몇몇 실시형태에서, 비일시적 컴퓨터 판독가능 저장 매체는, 본원에서 설명되는 기술들 중 일부 또는 모두를 수행하도록 컴퓨터 시스템(또는 다른 전자 디바이스들)을 프로그래밍하기 위해 이용될 수도 있는 명령들을 저장할 수도 있다. 컴퓨터 판독가능 저장 매체는 머신(예를 들면, 컴퓨터)에 의해 판독가능한 형태(예를 들면, 소프트웨어, 프로세싱 애플리케이션)로 정보를 저장하기 위한 임의의 메커니즘을 포함할 수도 있다. 머신 판독가능 매체는 자기 저장 매체(예를 들면, 플로피 디스켓); 광학식 저장 매체(예를 들면, CD-ROM); 광자기 저장 매체; 판독 전용 메모리(read only memory; ROM); 랜덤 액세스 메모리(random access memory; RAM); 소거가능한 프로그램가능 메모리(예를 들면, EPROM 및 EEPROM); 플래시 메모리; 프로그램 명령들을 저장하기에 적합한 전기적, 또는 다른 타입들의 매체를 포함할 수도 있지만, 이들에 한정되는 것은 아니다. 또한, 프로그램 명령들은 광학적, 음향적 또는 다른 형태의 전파 신호(예를 들면, 반송파들, 적외선 신호들, 디지털 신호들 등)를 이용하여 통신할 수도 있다.
컴퓨터 시스템(1100)은, 이미지 압축 유닛(120) 및/또는 이미지 압축해제 유닛(130)과 같은 하나 이상의 모듈들을 실행하도록 구성될 수도 있는 프로세서 유닛(1170)(아마도 다수의 프로세서들, 단일 쓰레드 프로세서, 다중 쓰레드 프로세서, 다중 코어 프로세서 등을 포함함)을 포함할 수도 있는데, 하나 이상의 모듈들은 동일한 컴퓨터 시스템(1100)의 메모리(1110)에 저장된 프로그램 명령들(1120) 내에 존재할 수도 있거나 또는 컴퓨터 시스템(1100)과 유사하거나 상이한 다른 컴퓨터 시스템의 메모리 내에 저장된 프로그램 명령들 내에 존재할 수도 있다. 몇몇 실시형태들에서, 컴퓨터 시스템(1100)은 이미지 압축 유닛(120)을 포함할 수도 있고, 한편, 다른 실시형태들에서, 컴퓨터 시스템(1100)은 이미지 압축해제 유닛(130)을 포함할 수도 있다. 또 다른 실시형태들에서, 컴퓨터 시스템(1110)은 이미지 압축 유닛(120) 및 이미지 압축해제 유닛(130) 둘 다를 포함할 수도 있다.
컴퓨터 시스템(1100)은 하나 이상의 시스템 메모리들(1110)(예를 들면, 캐시, SRAM DRAM, RDRAM, EDO RAM, DDR RAM, SDRAM, 램버스 RAM, EEPROM, 등 중 하나 이상), 시스템 인터커넥트(1040)(예를 들면, LDT, PCI, ISA, 등), 네트워크 인터페이스(1150)(예를 들면, ATM 인터페이스, 이더넷 인터페이스, 프레임 릴레이 인터페이스 등), 및 하나 이상의 저장 디바이스(들)(1160)(예를 들면, 광학 스토리지, 자기 스토리지 등)를 포함할 수도 있다. 메모리 매체는 다른 타입들의 메모리뿐만 아니라, 그 조합들도 포함할 수도 있다.
다른 실시형태들에서, 컴퓨터 시스템(1100)은 도 11에 예시된 것들보다 더 많거나, 더 적거나, 또는 도 11에 예시된 것들과는 상이한 컴포넌트들(예를 들면, 비디오 카드들, 오디오 카드들, 추가적인 네트워크 인터페이스들, 주변장치 디바이스들 등)을 포함할 수도 있다. 예를 들면, 일 실시형태에서, 컴퓨터 시스템(1100)은 네트워크 인터페이스(1150)를 포함하지 않을 수도 있다. 프로세서(들)(1170), 저장 디바이스(들)(1160), 네트워크 인터페이스(1150) 및 시스템 메모리(1110)는 시스템 인터커넥트(1140)에 커플링될 수도 있다.
시스템 메모리들(1110) 중 하나 이상은, (본원에서 설명되는 실시형태들 중 임의의 것에 따라) 차동 전송들을 이용한 무손실 이미지 압축을 위해 본원에서 설명되는 기술들 중 일부 또는 전체를 구현하도록 구성되는 프로그램 명령들(1120)을 포함할 수도 있다. 예를 들면, 일 실시형태에 따르면, 시스템 메모리들(1110) 중 하나 이상은 이미지 압축 유닛(120) 및/또는 이미지 압축해제 유닛(130)을 구현 및/또는 실행하기 위한 코드를 포함할 수도 있다.
다양한 실시형태들에서, 프로그램 명령들(1120), 이미지 압축 유닛(120), 이미지 압축해제 유닛(130), 및/또는 이들 컴포넌트들의 개개의 서브모듈들 각각은 임의의 다양한 프로그래밍 언어들 또는 방법들에서 구현될 수도 있다. 예를 들면, 일 실시형태에서, 이미지 압축 유닛(120) 및/또는 이미지 압축해제 유닛(130)은 자바 기반일 수도 있고, 한편, 다른 실시형태에서, 이미지 압축 유닛(120) 및/또는 이미지 압축해제 유닛(130)은 C 또는 C++ 프로그래밍 언어들을 이용하여 쓰일 수도 있다. 또한, 몇몇 실시형태들에서, 이미지 압축 유닛(120), 이미지 압축해제 유닛(130) 및 이들의 다양한 서브모듈들은 동일한 프로그래밍 언어를 이용하여 구현되지 않을 수도 있다.
특정 실시형태들을 참조로 그리고 그 특정 실시형태들의 맥락에서 다양한 시스템들 및 방법들이 본원에서 설명되었지만, 이들 실시형태들은 예시적인 것이며 또한 본 개시의 범위는 이들 특정 실시형태들로 한정되지 않는다는 것이 이해되어야 할 것이다. 많은 변형예들, 수정예들, 추가예들, 및 향상예들이 가능하다. 예를 들면, 설명에서 식별된 블록들 및 로직 유닛들은 설명되는 실시형태들을 이해하기 위한 것이고 본 개시를 제한하려는 의미는 아니다. 본원에서 설명되는 또는 상이한 용어로 설명되는 시스템들 및 방법들의 다양한 실현예들에서, 기능성은 블록들에서 상이하게 분리되거나 결합될 수도 있다.
이들 실시형태들은 예시적인 의미이지 제한하려는 의미는 아니다. 따라서, 본원에서 단일의 인스턴스로서 설명되는 컴포넌트들에 대해 복수의 인스턴스들이 제공될 수도 있다. 다양한 컴포넌트들, 동작들 및 데이터 저장소들 사이의 경계들은 다소 임의적이며, 특정한 동작들은 특정한 예시적 구성들의 맥락에서 예시된다. 기능성의 다른 할당들이 예견되며 하기의 청구범위의 범위 내에 있을 것이다. 최종적으로, 예시적인 구성들에서 별개의 컴포넌트들로서 제시되는 구조들 및 기능성은 결합된 구조 또는 컴포넌트로서 구현될 수도 있다. 이들 및 다른 변형예들, 수정예들, 추가예들, 및 향상예들은 하기의 청구범위에서 정의되는 바와 같은 본 개시의 범위 내에 있을 수도 있다.
상기에 실시형태들이 상세히 설명되었지만, 상기의 본 개시를 충분히 음미하면, 다수의 변형예들 및 수정예들이 명확해질 것이다. 이하의 청구범위는 모든 그러한 변형예들 및 수정예들을 포괄하도록 해석되어야 하는 것으로 의도된다.

Claims (20)

  1. 시스템으로서,
    이미지 압축 유닛을 포함하는 이미지 데이터 소스; 및
    이미지 압축해제 유닛을 포함하는 이미지 데이터 타겟을 포함하고,
    상기 이미지 압축 유닛은:
    이미지들의 시퀀스에서의 제1 이미지에 대한 이미지 데이터를 수신하도록;
    손실적으로 압축된 원래의 이미지 데이터 - 상기 원래의 이미지 데이터는 상기 이미지들의 시퀀스에서의 상기 제1 이미지의 이미지 타일에 대응함 - 를 상기 이미지 압축해제 유닛으로 전송하도록;
    상기 이미지들의 시퀀스에서의 후속 이미지에 대한 이미지 데이터를 수신하도록;
    상기 이미지들의 시퀀스에서의 후속 이미지의 대응하는 이미지 타일에 대한 추가 이미지 데이터가 상기 원래의 이미지 데이터에 대해 변하지 않은 것을 결정하도록; 그리고
    손실적으로 압축된 원래의 이미지 데이터가 이전에 전송되었던 상기 이미지 타일의 무손실 버전을 생성하기에 충분한 방식으로, 추가 이미지 데이터를 상기 이미지 압축해제 유닛에 전송하도록 구성되는, 시스템.
  2. 제1항에 있어서, 상기 이미지 압축해제 유닛은:
    상기 압축된 원래의 이미지 데이터를 압축해제하도록 - 상기 압축해제된 원래의 이미지 데이터는 상기 이미지 타일의 손실성 버전에 대응함 -; 그리고
    상기 추가 이미지 데이터에 적어도 부분적으로 기초하여 상기 후속 이미지의 상기 이미지 타일의 무손실 버전을 생성하도록 더 구성되는, 시스템.
  3. 제2항에 있어서, 상기 후속 이미지의 상기 이미지 타일의 상기 무손실 버전을 생성하기 위해, 상기 이미지 압축해제 유닛은 상기 복수의 데이터 변환 계수들에 대해 하나 이상의 역 웨이브릿 변환들을 적용하도록 구성되는, 시스템.
  4. 제1항에 있어서, 상기 이미지 압축 유닛은:
    상기 제1 이미지의 상기 이미지 타일에 대한 비압축의 원래의 이미지 데이터에 대해 하나 이상의 웨이브릿 변환들을 적용하여 복수의 데이터 변환 계수들을 생성하도록; 그리고
    상기 복수의 계수들 중 일부만을 상기 손실적으로 압축된 원래의 이미지 데이터로서 전송하도록 구성되는, 시스템.
  5. 제1항에 있어서, 상기 이미지 압축 유닛은:
    상기 이미지들의 시퀀스에서의 중간 이미지 - 상기 중간 이미지는 상기 이미지들의 시퀀스에서 상기 제1 이미지에 후행하고 상기 후속 이미지에 선행함 - 에 대한 이미지 데이터를 전송하도록; 그리고
    상기 추가 이미지 데이터의 적어도 일부를 상기 중간 이미지에 대한 상기 이미지 데이터와 함께 전송하도록 더 구성되는, 시스템.
  6. 방법으로서,
    컴퓨팅 디바이스에 의해:
    이미지들의 시퀀스 - 상기 시퀀스에서의 각각의 이미지는 복수의 이미지 타일들을 포함함 - 에서의 제1 이미지에 대한 이미지 데이터를 수신하는 것;
    상기 제1 이미지에 대한 상기 이미지 데이터를 전송하는 것 - 상기 전송하는 것은 리소스 제약들로 인해 손실성 압축을 이용하여 상기 제1 이미지의 복수의 타일들 중 적어도 몇몇에 대한 이미지 데이터를 전송하는 것을 포함함 -;
    상기 이미지들의 시퀀스에서의 후속 이미지에 대한 이미지 데이터를 수신하는 것;
    상기 후속 이미지의 복수의 타일들 중 적어도 몇몇에 대한 상기 이미지 데이터가 상기 제1 이미지의 대응하는 타일들에 대한 이미지 데이터에 대해 미리 결정된 양보다 더 많이 변하지 않는다는 것을 결정하는 것;
    손실적으로 압축된 데이터가 이전에 전송되었던 타일들의 무손실 버전들을 생성하기에 충분한 방식으로, 추가 이미지 데이터를 전송하는 것을 수행하는 단계를 포함하는, 방법.
  7. 제6항에 있어서, 상기 제1 이미지에 대한 상기 이미지 데이터에 대해 하나 이상의 데이터 변환들을 적용하여 복수의 데이터 변환 계수들을 생성하는 단계를 더 포함하는, 방법.
  8. 제7항에 있어서, 상기 리소스 제약들로 인해 손실성 압축을 이용하여 상기 제1 이미지의 복수의 타일들 중 적어도 몇몇에 대한 이미지 데이터를 전송하는 것은, 상기 복수의 계수들 중 일부만을 전송하는 것을 포함하는, 방법.
  9. 제8항에 있어서,
    상기 복수의 계수들을 복수의 유의성 그룹들로 분류하는 단계를 더 포함하고, 주어진 유의성 그룹에서의 각각의 계수는 동일한 최상위 설정 비트 또는 비트들을 가지며, 상기 계수들의 서브셋은 가장 유의한 것으로부터 가장 덜 유의한 것으로의 상기 복수의 유의성 그룹들의 순서로 상기 복수의 계수들의 제1 부분을 포함하며;
    상기 복수의 계수들 중 일부만을 전송하는 것은, 가장 유의한 것으로부터 가장 덜 유의한 것으로의 상기 유의성 그룹들의 순서로 상기 복수의 계수들의 상기 일부를 전송하는 것을 포함하는, 방법.
  10. 제8항에 있어서, 상기 후속 이미지에 대한 상기 이미지 데이터를 전송하는 것은, 상기 복수의 계수들의 나머지 중 적어도 몇몇을 전송하는 것을 포함하고, 상기 계수들의 나머지는 이전에 전송되지 않았던, 방법.
  11. 제7항에 있어서,
    상기 리소스 제약들로 인해 손실성 압축을 이용하여 상기 제1 이미지의 복수의 타일들 중 적어도 몇몇에 대한 이미지 데이터를 전송하는 것은:
    상기 복수의 계수들을 양자화하여 대응하는 복수의 양자화된 계수들을 생성하는 것; 및
    상기 복수의 양자화된 계수들을 전송하는 것을 포함하고;
    상기 후속 이미지에 대한 상기 이미지 데이터를 전송하는 것은:
    상기 복수의 계수들을 상기 복수의 양자화된 계수들과 비교하여 복수의 계수 차분(differential)들을 생성하는 것; 및
    상기 복수의 계수 차분들을 전송하는 것을 포함하는, 방법.
  12. 제7항에 있어서, 상기 하나 이상의 데이터 변환들은 하나 이상의 웨이브릿 변환들을 포함하는, 방법.
  13. 제7항에 있어서, 상기 하나 이상의 데이터 변환들은 하나 이상의 색공간 변환들을 포함하는, 방법.
  14. 제7항에 있어서,
    상기 복수의 데이터 변환 계수들을 복수의 이전에 전송된 계수들과 비교하여 복수의 차이가 결정된(differenced) 계수들을 생성하는 단계;
    상기 복수의 데이터 변환 계수들을 압축하여 복수의 압축된 데이터 변환 계수들을 생성하는 단계;
    상기 복수의 차이가 결정된 계수들을 압축하여 복수의 압축된 차이가 결정된 계수들을 생성하는 단계를 더 포함하고,
    상기 제1 이미지에 대한 상기 이미지 데이터를 전송하는 것은, 상기 복수의 압축된 데이터 변환 계수들 또는 상기 복수의 압축된 차이가 결정된 계수들 중 더 적은 것을 전송하는 것을 포함하는, 방법.
  15. 제6항에 있어서, 상기 후속 이미지의 복수의 타일들의 각각에 대해, 상기 각각의 타일이 상기 제1 이미지의 복수의 타일들 중 대응하는 타일에 대해 변하는지의 여부를 나타내는 이미지 변화 정보를 수신하는 단계를 더 포함하고, 상기 후속 이미지의 복수의 타일들 중 적어도 몇몇에 대한 상기 이미지 데이터가 변하지 않는다는 상기 결정은, 상기 수신되는 이미지 변화 정보에 적어도 부분적으로 기초하는, 방법.
  16. 제6항에 있어서, 상기 후속 이미지의 복수의 타일들 중 적어도 몇몇에 대한 상기 이미지 데이터가 미리 결정된 양보다 더 많이 변하지 않는다는 상기 결정은, 상기 후속 이미지의 복수의 타일들 중 적어도 몇몇에 대한 상기 이미지 데이터가 상기 제1 이미지의 대응하는 타일들에 대한 상기 이미지 데이터에 대해 전혀 변하지 않는다고 결정하는 것을 포함하는, 방법.
  17. 제6항에 있어서,
    상기 제1 이미지에 대한 상기 손실적으로 압축된 이미지 데이터를 수신하는 단계; 및
    상기 추가 이미지 데이터를 수신하는 단계를 더 포함하고,
    상기 추가 이미지 데이터는 상기 이미지들의 시퀀스에서의 후속 이미지에 대한 압축된 이미지 데이터이고;
    상기 압축된 이미지 데이터는 상기 후속 이미지의 타일들 중 하나 이상의 무손실 버전들을 생성하기에 충분한 정보를 포함하고, 상기 후속 이미지의 타일들 중 하나 이상의 각각은, 손실성 압축을 이용하여 이미지 데이터가 전송되었던 상기 제1 이미지의 복수의 이미지 타일들 중 적어도 몇몇의 각각의 이미지 타일에 대응하는, 방법.
  18. 제17항에 있어서,
    상기 제1 이미지의 상기 이미지 타일에 대한 복수의 압축된 웨이브릿 변환 계수들 및 상기 제1 이미지의 상기 이미지 타일에 대응하는 상기 후속 이미지의 이미지 타일에 대한 추가적인 하나 이상의 압축된 웨이브릿 변환 계수들에 기초하여, 상기 후속 이미지의 상기 이미지 타일의 무손실 버전을 생성하는 단계를 더 포함하고,
    상기 제1 이미지에 대한 압축된 이미지 데이터를 수신하는 것은, 상기 제1 이미지의 이미지 타일에 대한 상기 복수의 압축된 웨이브릿 변환 계수들을 수신하는 것을 포함하고, 상기 복수의 압축된 웨이브릿 변환 계수들은 상기 이미지 타일에 대한 웨이브릿 변환 계수들의 전체 수 중 일부만을 나타내고;
    상기 후속 이미지에 대한 압축된 이미지 데이터를 수신하는 것은, 상기 추가적인 하나 이상의 압축된 웨이브릿 변환 계수들을 수신하는 것을 포함하고, 상기 추가적인 압축된 웨이브릿 변환 계수들은 상기 제1 이미지의 상기 이미지 타일에 대한 상기 복수의 압축된 웨이브릿 변환 계수들의 일부가 아닌 계수들을 포함하는, 방법.
  19. 제18항에 있어서, 상기 후속 이미지의 상기 이미지 타일의 무손실 버전을 생성하는 것은:
    상기 제1 이미지의 상기 이미지 타일에 대한 상기 복수의 압축된 웨이브릿 변환 계수들을 압축해제하는 것;
    상기 후속 이미지의 상기 이미지 타일에 대한 상기 추가적인 압축된 웨이브릿 변환 계수들을 압축해제하는 것; 및
    상기 제1 이미지의 상기 이미지 타일에 대한 상기 압축해제된 웨이브릿 변환 계수들을 상기 후속 이미지의 상기 이미지 타일에 대한 상기 압축해제된 추가적인 웨이브릿 변환 계수들과 결합하는 것을 포함하는, 방법.
  20. 제17항에 있어서, 상기 후속 이미지의 타일들 중 하나 이상의 무손실 버전들을 생성하기에 충분한 상기 정보는:
    손실성 압축을 이용하여 이미지 데이터가 전송되었던 상기 제1 이미지의 복수의 이미지 타일들 중 하나 이상의 무손실 버전들을 생성하기에 충분한 정보; 및
    상기 후속 이미지의 대응하는 타일들의 무손실 버전들을 생성하기에 충분한 상기 제1 이미지의 복수의 이미지 타일들 중 하나 이상에 대한 변화들을 나타내는 정보를 포함하는 델타 정보를 포함하는, 방법.
KR1020157018600A 2012-12-12 2013-12-11 차동 전송을 이용한 무손실 이미지 압축 KR101775522B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201261736462P 2012-12-12 2012-12-12
US61/736,462 2012-12-12
US14/035,682 2013-09-24
US14/035,682 US9386318B2 (en) 2012-12-12 2013-09-24 Lossless image compression using differential transfer
PCT/US2013/074432 WO2014093510A1 (en) 2012-12-12 2013-12-11 Lossless image compression using differential transfer

Publications (2)

Publication Number Publication Date
KR20150095825A true KR20150095825A (ko) 2015-08-21
KR101775522B1 KR101775522B1 (ko) 2017-09-06

Family

ID=50881035

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157018600A KR101775522B1 (ko) 2012-12-12 2013-12-11 차동 전송을 이용한 무손실 이미지 압축

Country Status (6)

Country Link
US (1) US9386318B2 (ko)
EP (2) EP3386197A1 (ko)
KR (1) KR101775522B1 (ko)
CN (1) CN104838653B (ko)
AU (1) AU2013359365B2 (ko)
WO (1) WO2014093510A1 (ko)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2831698C (en) 2007-04-11 2015-11-03 Red.Com, Inc. Video camera
US8237830B2 (en) 2007-04-11 2012-08-07 Red.Com, Inc. Video camera
JP2016508700A (ja) 2013-02-14 2016-03-22 レッド.コム,インコーポレイテッド ビデオカメラ
CN103152573A (zh) * 2013-03-15 2013-06-12 惠州Tcl移动通信有限公司 一种移动终端与智能电视间图像帧传输的方法及系统
EP3167611A4 (en) * 2014-07-09 2017-12-27 Numeri Ltd. An universal video codec
US9626733B2 (en) * 2014-11-24 2017-04-18 Industrial Technology Research Institute Data-processing apparatus and operation method thereof
KR102268596B1 (ko) * 2014-12-08 2021-06-23 한화테크윈 주식회사 메타데이터 기반 비디오 데이터의 전송조건 변경장치 및 방법
ES2619190T3 (es) * 2014-12-30 2017-06-23 Matthias Auchmann Método y sistema para la visualización segura de información relevante para la seguridad
US9762912B2 (en) * 2015-01-16 2017-09-12 Microsoft Technology Licensing, Llc Gradual updating using transform coefficients for encoding and decoding
CN104796572A (zh) * 2015-04-22 2015-07-22 深圳市美贝壳科技有限公司 照片投射显示方法
US9996894B2 (en) * 2016-05-18 2018-06-12 Realtek Singapore Pte Ltd Image processing device, video subsystem and video pipeline
US9967465B2 (en) 2016-05-18 2018-05-08 Realtek Singapore Pte Ltd Image frame processing method
US10897635B2 (en) * 2016-09-06 2021-01-19 Apple Inc. Memory compression systems and methods
CN107318021B (zh) * 2017-06-22 2020-10-27 长沙市极云网络科技有限公司 一种远程显示的数据处理方法及系统
CN107318020B (zh) * 2017-06-22 2020-10-27 长沙市极云网络科技有限公司 远程显示的数据处理方法及系统
WO2019010233A1 (en) 2017-07-05 2019-01-10 Red. Com, Llc PROCESSING VIDEO IMAGE DATA IN ELECTRONIC DEVICES
US10498793B2 (en) 2017-07-31 2019-12-03 Microsoft Technology Licensing, Llc System and method for digital compression for streaming data
CN107665128B (zh) * 2017-09-13 2021-11-19 深信服科技股份有限公司 图像处理方法、系统、服务器及可读存储介质
CN109819178B (zh) * 2017-11-21 2022-07-08 虹软科技股份有限公司 一种用于帧处理的方法和装置
GB2569544B (en) * 2017-12-19 2022-07-20 Displaylink Uk Ltd Transmission of a reverse video feed
CN108694735B (zh) * 2018-05-11 2022-04-15 歌尔科技有限公司 穿戴设备及模拟表盘指针图片压缩存储、重绘方法、设备

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5610657A (en) 1993-09-14 1997-03-11 Envistech Inc. Video compression using an iterative error data coding method
US5838377A (en) 1996-12-20 1998-11-17 Analog Devices, Inc. Video compressed circuit using recursive wavelet filtering
US6947486B2 (en) * 2001-03-23 2005-09-20 Visioprime Method and system for a highly efficient low bit rate video codec
US7466867B2 (en) * 2004-11-26 2008-12-16 Taiwan Imagingtek Corporation Method and apparatus for image compression and decompression
EP2082332B1 (en) 2006-10-10 2012-08-22 Zoran (France) Method and apparatus for spatio-temporal subband video enhancement with small time delay
US7796825B2 (en) * 2007-02-16 2010-09-14 Cisco Technology, Inc. Losslessly improving compression of compressed image data
KR101349239B1 (ko) * 2007-11-26 2014-01-10 삼성전기주식회사 영상 계조 압축 장치 및 방법
JP2009290552A (ja) 2008-05-29 2009-12-10 Fujifilm Corp 動画圧縮装置および動画圧縮プログラム
US8520734B1 (en) * 2009-07-31 2013-08-27 Teradici Corporation Method and system for remotely communicating a computer rendered image sequence
US9075560B2 (en) * 2009-12-10 2015-07-07 Microsoft Technology Licensing, Llc Real-time compression with GPU/CPU
US8428110B2 (en) * 2011-03-25 2013-04-23 International Business Machines Corporation Pipelining and sub-rate operation for memory links
US9578336B2 (en) * 2011-08-31 2017-02-21 Texas Instruments Incorporated Hybrid video and graphics system with automatic content detection process, and other circuits, processes, and systems

Also Published As

Publication number Publication date
CN104838653B (zh) 2021-04-27
KR101775522B1 (ko) 2017-09-06
AU2013359365A1 (en) 2015-07-02
WO2014093510A1 (en) 2014-06-19
EP3386197A1 (en) 2018-10-10
US9386318B2 (en) 2016-07-05
AU2013359365B2 (en) 2016-07-21
EP2932719A1 (en) 2015-10-21
CN104838653A (zh) 2015-08-12
US20140161367A1 (en) 2014-06-12

Similar Documents

Publication Publication Date Title
KR101775522B1 (ko) 차동 전송을 이용한 무손실 이미지 압축
US8378859B2 (en) Memory compression technique with low latency per pixel
US8989509B2 (en) Streaming wavelet transform
CN105474642A (zh) 使用频域差对图像集合进行重新编码
US20230336776A1 (en) Method for chroma subsampled formats handling in machine-learning-based picture coding
KR20140021388A (ko) 그래픽 프로세스 유닛 기반 jpeg2000 인코딩/디코딩 장치 및 방법
US20230336736A1 (en) Method for chroma subsampled formats handling in machine-learning-based picture coding
CN103246499A (zh) 图像并行化处理装置和方法
Otair et al. Improved near-lossless technique using the Huffman coding for enhancing the quality of image compression
WO2022022176A1 (zh) 一种图像处理方法以及相关设备
CN114761968B (zh) 用于频域静态通道滤波的方法、系统和存储介质
US6766341B1 (en) Faster transforms using scaled terms
CN114501031B (zh) 一种压缩编码、解压缩方法以及装置
CN114501032A (zh) 视频编码装置及方法、视频解码装置及方法和编解码系统
CN1949878A (zh) 在译码器上实施转换领域的舍入方法及其视讯译码器
WO2023246655A1 (zh) 一种图像编码、解码方法及编码、解码装置
US8411971B1 (en) Method and apparatus for normalizing perceptual quality in media compression
WO2024032075A1 (zh) 图像处理网络的训练、编解码方法及电子设备
WO2023000182A1 (zh) 图像编解码及处理方法、装置及设备
CA2480442A1 (en) Repetition coded compression for highly correlated image data
Shah et al. FPGA Implementation of Image Compression Algorithm Using Bottom-up Approach of Quad Tree Technique
CN118318441A (en) Feature map encoding and decoding method and device
Singh et al. COMPARATIVE STUDIES OF VARIOUS TECHNIQUES FOR IMAGE COMPRESSION ALGORITHM
CN117856794A (zh) 多压缩算法模式下的自适应选优的装置及方法
Mietens et al. New dct computation algorithm for video quality scaling

Legal Events

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