KR101012618B1 - 이미징 시스템 내의 이미지들의 프로세싱 - Google Patents

이미징 시스템 내의 이미지들의 프로세싱 Download PDF

Info

Publication number
KR101012618B1
KR101012618B1 KR1020087020188A KR20087020188A KR101012618B1 KR 101012618 B1 KR101012618 B1 KR 101012618B1 KR 1020087020188 A KR1020087020188 A KR 1020087020188A KR 20087020188 A KR20087020188 A KR 20087020188A KR 101012618 B1 KR101012618 B1 KR 101012618B1
Authority
KR
South Korea
Prior art keywords
image
data
formatted data
block
blocks
Prior art date
Application number
KR1020087020188A
Other languages
English (en)
Other versions
KR20080095880A (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 KR20080095880A publication Critical patent/KR20080095880A/ko
Application granted granted Critical
Publication of KR101012618B1 publication Critical patent/KR101012618B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/41Bandwidth or redundancy reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/60Rotation of whole images or parts thereof
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/32Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
    • H04N1/333Mode signalling or mode changing; Handshaking therefor
    • H04N1/33307Mode signalling or mode changing; Handshaking therefor prior to start of transmission, input or output of the picture signal only
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/32Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
    • H04N2201/333Mode signalling or mode changing; Handshaking therefor
    • H04N2201/33307Mode signalling or mode changing; Handshaking therefor of a particular mode
    • H04N2201/33342Mode signalling or mode changing; Handshaking therefor of a particular mode of transmission mode
    • H04N2201/33357Compression mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/32Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
    • H04N2201/333Mode signalling or mode changing; Handshaking therefor
    • H04N2201/33307Mode signalling or mode changing; Handshaking therefor of a particular mode
    • H04N2201/33378Type or format of data, e.g. colour or B/W, halftone or binary, computer image file or facsimile data

Landscapes

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

Abstract

이미징 시스템은 이미지에 대한 원시 이미지 데이터를, 이미지에 대한 포맷팅된 데이터를 압축하는 것과 동시에, 포맷팅된 데이터로 변환한다. 예시적인 이미징 시스템은 포맷팅된 데이터의 블록들을 원시 이미지 데이터로부터 생성하는 이미지 프로세서를 포함한다. 예시적은 이미징 시스템은 포맷팅된 데이터의 블록들을 압축하는 이미지 압축기도 포함한다. 압축기는 이미지 프로세서가 포맷팅된 데이터의 하나 이상의 블록들을 생성하는 동안, 하나 이상의 블록들을 압축한다.
이미지, 비트스트림 세그먼트, 압축

Description

이미징 시스템 내의 이미지들의 프로세싱{PROCESSING OF IMAGES IN IMAGING SYSTEMS}
35 U.S.C.§119에 따른 우선권 주장
"지연이 적고 메모리 효율적인 이미지 캡쳐 및 JPEG 인코딩 시스템(Low Latency and Memory Efficient Image Capture and JPEG Encoding System )" 의 명칭으로 2006 년 1 월 18 일자로 출원된 가출원 제 60/759,840 호를 우선권 주장하며, 이 출원은 본원의 양수인에게 양도되어 있고 본 명세서에 참조로 명백히 포함된다.
본 발명은 이미징 시스템에 일반적으로 관련되며, 이미징 시스템에서 이미지 데이터를 프로세싱하는데 특히 관련된다.
디지털 카메라와 같은 이미징 디바이스는 원시 이미지 (raw image) 데이터를 생성하는 이미지 센서를 일반적으로 포함한다. 이미징 디바이스는 원시 이미지 데이터를 YCbCr 포맷과 같은 포맷으로 변환한다. 그 후 포맷팅된 데이터는 저장하기에 적절한 사이즈로 압축된다. 포맷팅된 및 압축하는 프로세스는 이미징 디바이스에 의해 찍힐 수 있는 사진들 사이의 지연의 원인이다. 예를 들어, 카메라는 첫번째 이미지를 위한 데이터를 프로세싱하기 때문에 두번째 이미지를 종종 찍을 수 없다. 결과적으로, 이미지 데이터의 개선된 프로세싱이 필요하다.
요약
이미징 시스템은 이미지에 대한 포맷팅된 데이터를 압축하는 것과 동시에 이미지에 대한 원시 데이터를 포맷팅된 데이터로 변환한다. 예시적인 이미징 시스템은 원시 이미지 데이터로부터 포맷팅된 데이터의 블록을 생성하는 이미지 프로세서를 포함한다. 예시적인 이미징 시스템은 포맷팅된 데이터의 블록들을 압축하는 이미지 압축기도 포함한다. 압축기는, 이미지 프로세서가 하나 이상의 포맷팅된 데이터의 블록들을 생성하는 동안 하나 이상의 블록들을 압축한다.
이미징 시스템의 실시형태는 이미지에 대한 원시 이미지를 YCbCr 데이터의 블록들로 포맷팅하고, YCbCr 데이터의 블록들을 메모리로 순차적으로 기록하도록 구성된다. 각 YCbCr 데이터의 블록들은 복수의 최소 코드 유닛 (minimum code unit;MCU) 들로 분할된다. 시스템은 YCbCr 데이터의 블록들을 메모리로부터 순차적으로 판독하도록 구성된 JPEG 인코더를 포함한다. JPEG 인코더는 블록 내의 최소 코드 유닛 (MCU) 들을 인코딩하여, 재시작 마커 및 하나 이상의 유닛 비트스트림을 각각 포함하는 하나 이상의 비트스트림 세그먼트들을 생성한다. 각 유닛 비트스트림은 블록 내의 최소 코드 유닛 (MCU) 들 중 하나에 대한 JPEG 인코딩된 비트스트림이다. 블록 내의 최소 코드 유닛들은 이미지 회전 변화의 원하는 정도로 변화하는 시퀀스로 압축한다. 또한, 최소 코드 유닛들은 원시 데이터가 포맷팅되는 것과 동시에 JPEG 인코딩된다. 시스템은 이미지가 재생성될 수 있는 이미지 비트스트림으로부터 비트스트림 세그먼트를 어셈블링하는 전자장비 도 포함한다.
도 1 은 예시적인 실시형태에 따른 이미징 시스템의 블록 다이어그램이다.
도 2 는 이미지가 회전하지 않았을 때, 이미징 시스템을 통한 이미지 데이터 공정을 도시한다.
도 3 은 이미지가 90 °회전했을 때, 이미징 시스템을 통한 이미지 데이터 공정을 도시한다.
도 4 은 이미지가 180 °회전했을 때, 이미징 시스템을 통한 이미지 데이터 공정을 도시한다.
도 5 는 이미지 데이터를 프로세싱하는 방법을 도시하는 플로우 다이어그램이다.
도 6 은 시간에 걸처 이미징 시스템에서의 컴포넌트들의 가능한 할당을 도시한다.
도 7 은 이미징 시스템에서의 이미지 데이터를 프로세싱하는 로직 모듈들을 보여주는 로직 플로우 다이어그램이다.
예시적인 실시형태에 따라, 이미징 시스템은 이미지에 대한 원시 데이터를 포맷팅된 데이터의 블록들로 포맷팅하도록 구성된 이미지 프로세서를 포함한다. 시스템은 데이터의 블록을 순차적으로 압축하도록 구성된 압축기도 포함한다. 데이터의 블록을 순차적으로 압축하는 능력은 압축기가 압축하기 전에 전체 이미지보다 포맷팅을 적게 하도록 한다. 결과적으로 압축기는 이미지 프로세서가 데이터의 블록을 포맷팅함과 동시에 데이터의 블록들을 압축할 수 있다. 데이터의 포맷팅과 동시에 포맷팅된 데이터의 블록을 압축하는 능력은 이미지의 생성 간의 지연을 감소시킨다. 디지털 카메라와 같은 이미징 시스템에서, 이미지 데이터의 포맷팅과 동시에 이미지 데이터를 압축하는 것은 사진이 찍힐 때의 시간 간격을 감소시킨다.
이미징 시스템은 초상화나 풍경화 어플리케이션과 같은 목적을 위한 이미지를 종종 회전시킨다. 포맷팅된 데이터의 블록들을 압축하는 것은 이미지 회전도 지원할 수 있다. 포맷팅된 데이터의 블록들은 JPEG 압축에서 사용되는 최소 코드 유닛 (MCU) 들과 같은 유닛들로 분할될 수도 있다. 블록 내의 유닛들을 압축하는 압축기의 시퀀스는 이미지 회전의 변화의 원하는 정도에 따라 변할 수 있다. 결과적으로, 이미지가 회전함에도 불구하고, 전체적인 이미지는 압축기가 압축을 시작하기 전까지 포맷팅할 필요가 없다.
포맷팅된 데이터의 블록들을 압축하는 것은 이미징 시스템의 메모리 요청도 감소시킬 수 있다. 예를 들어, 이미징 시스템은 이미징 프로세서가 포맷팅된 데이터 블록들을 기록하고 압축기가 포맷팅된 데이터 블록들을 판독하는 메모리를 포함할 수 있다. 메모리는 복수의 버퍼들을 갖는 핑-퐁 버퍼 (ping-pong buffer) 를 포함할 수도 있다. 이미지 프로세서는 버퍼를 각 포맷팅된 데이터 블록들을 기록하는 것으로 교체할 수 있다. 또한, 압축기는 버퍼를 각 포맷팅된 데이터 블록을 수신한 것으로부터 버퍼를 교체할 수 있다. 결과적으로, 메모리는 전체 이미지에 대한 포맷팅된 데이터보다 포맷팅된 데이터의 단 2 개의 블록들만을 홀딩 (hold) 할 수 있다. 전체적인 이미지에 대한 포맷팅된 데이터가 메모리에 기록되지 않았기 때문에, 메모리 요청은 감소될 수도 있다.
도 1 은 이미징 시스템 (10) 의 블록 다이어그램이다. 이미징 시스템 (10) 은 각각이 발광 센서 (16) 와 연관된 픽셀 (14) 들의 어레이를 갖는 이미지 센서 (12) 를 포함한다. 어떤 예에서, 픽셀 (14) 들은 행과 열의 2 차원의 어레이로 배열된다. 이미지 센서 (12) 의 예는, CMOS (Complimentary Metal Oxide Semiconductor) 센서 칩들 및 CCD (Charge Coupled Device) 센서 칩들을 포함하나, 이에 제한되지 않는다.
이미징 시스템 (10) 은 이미지 센서 (12) 와 통신하는 전자장비 (18) 를 포함한다. 이미지를 생성할 때, 전자장비 (18) 은 이미지 센서 (12) 내의 센서 (16) 들로부터 센서 값들을 수신한다. 전자장비 (18) 은 압축된 이미지 비트스트림을 생성하도록 센서 값들을 프로세싱한다. 전자장비 (18) 은 추가 메모리 (20) 및/또는 전자장비 (18) 에 포함된 메모리에 이미지 비트스트림을 저장할 수 있다. 추가 메모리 (20) 는 임의의 메모리 디바이스, 또는 이미지 또는 데이터 저장과 같은 기록 동작에 적절한 메모리 디바이스의 조합일 수 있다. 추가 메모리 (20) 가 이미징 시스템 (10) 의 일부로서 도시되었더라도, 추가 메모리 (20) 는 이미징 시스템 (10) 의 외부에 있을 수 있고, 이미징 시스템 (10) 에 제거가능하도록 커플링될 수 있다. 디지털 카메라와 함께 사용되는 메모리 스틱® 은 이미징 시스템 (10) 에 제거가능하도록 커플링되는 추가 메모리 (20) 의 예이다.
이미징 시스템 (10) 은 이미지를 재생성하도록 이미지 비트스트림을 사용할 수 있다. 이미징 시스템 (10) 은 하나 이상의 출력 디바이스 (22) 에 이미지를 디스플레이할 수 있다. 적절한 출력 디바이스 (22) 는 프린터, 송신기, 인터넷과 같은 네트워크, 및 카메라 디스플레이들, 비디오 폰 디스플레이들, 비디오 스크린들, 및 컴퓨터 스크린들과 같은 디스플레이를 포함하나, 이에 제한되지 않는다. 출력 디바이스 (22) 가 이미징 시스템 (10) 의 일부로 도시되었어도, 출력 디바이스 (22) 및/또는 추가 메모리는 이미징 시스템 (10) 의 외부에 있을 수 있고, 이미징 시스템 (10) 에 제거가능하도록 커플링될 수 있다.
전자장비 (18) 은 이미지 센서 (12) 및 메모리 (26) 와 함께 통신하는 센서 인터페이스 (24) 를 포함한다. 메모리 (26) 는 임의의 메모리 디바이스, 또는 이미지 및 이미지와 연관된 데이터를 저장하는 것과 같은 판독/기록 동작에 적절한 메모리 디바이스의 조합일 수 있다. 메모리 (26) 는 공통의 풀 메모리로서 동작할 수 있다. 카메라 인터페이스는 이미지 센서 (12) 로부터 원시 이미지 데이터를 추출하도록 구성되고, 원시 이미지 데이터를 메모리 (26) 내에 저장하도록 구성된다. 전자장비 (18) 는 메모리 (26) 와 함께 통신하는 이미지 프로세서 (28) 도 포함한다. 이미지 프로세서 (28) 는 원시 이미지 데이터를 포맷팅하도록 구성되고, 포맷팅된 데이터를 메모리(26) 로 기록하도록 구성된다. 이미지 프로세서 (28) 에 의해 사용되는 이미지 포맷의 예는 YCbCr 포맷을 포함하나, 이에 제한되지 않는다. 전자장비 (18) 는 메모리 (26) 와 함께 통신하는 압축기 (30), 출력 디바이스 (22), 및 선택적인 추가 메모리 (20) 도 포함한다. 압축기 (30) 은 이미지 비트스트림을 생성하도록 메모리 (26) 내의 저장된 포맷팅된 데이터를 압축한다. 이미지 비트스트림은 메모리 (26) 내 및/또는 추가 메모리 (20) 내에 저장될 수 있다.
이미지 프로세서 (28) 는 제 1 프로세서 (32) 를 포함하고, 압축기 (30) 은 제 2 프로세서 (34) 를 포함한다. 제 1 프로세서 (32) 및/또는 제 2 프로세서 (34) 와 같은 사용하기 적절한 프로세서들은 범용 프로세서, 디지털 신호 프로세서 (DSP), 주문형 집적 회로 (ASIC), 필드 프로그래머블 게이트 어레이 (FPGA) 또는 다른 프로그래머블 로직 디바이스, 이산 게이트 또는 트랜지스터 로직, 이산 하드웨어 컴포넌트, 또는 여기에 서술된 기능을 수행하도록 설계된 그들의 임의의 조합을 포함하나, 이에 제한되지 않는다. 일반적인 목적의 프로세서는 마이크로프로세서일 수도 있고, 선택적으로, 프로세서는 임의의 재래식 프로세서, 제어기, 마이크로제어기, 또는 상태 머신일 수도 있다. 제 1 프로세서 (32) 및/또는 제 2 프로세서 (34) 는 예를 들어, DSP 및 마이크로프로세서의 조합, 복수의 마이크로프로세서들, DSP 코어를 갖는 하나 이상의 마이크로프로세서들 또는 임의의 다른 그러한 구성과 같은 컴퓨팅 디바이스의 조합과 함께 역시 구현될 수도 있다. 제 1 프로세서 (32) 및 제 2 프로세서 (34) 는 동일한 타입의 프로세서 또는 상이한 타입의 프로세서일 수 있다. 적절한 이미지 프로세서 (28) 은 비디오 프론트 엔드 하드웨어를 포함하나, 이에 제한되지 않는다. 적절한 압축기 (30) 는 JPEG 인코더를 포함하나, 이에 제한되지 않는다.
도 1 은 제 1 신호 포함 매체 (36) 과 통신하는 제 1 프로세서 (32) 및 제 2 신호 포함 매체 (38) 과 통신하는 제 2 프로세서 (34) 를 포함한다. 제 1 프로세서 (32) 에 의해 실행되는 동작에 대한 명령은 제 1 신호 포함 매체 (36) 상으로 인코딩 될 수 있다. 제 2 프로세서 (34) 에 의해 실행되는 동작에 대한 명령은 제 2 신호 포함 매체 (38) 상으로 인코딩될 수 있다. 위에서 기재된 바와 같이, 상이한 컴포넌트들의 다양성은 제 1 프로세서 (32) 및/또는 제 2 프로세서 (34) 와 같이 서빙될 수 있다. 제 1 프로세서 (32) 및 제 2 프로세서 (34) 의 선택에 따라, 제 1 신호 포함 매체 (36) 및/또는 제 2 신호 포함 매체 (38) 는 요청되지 않을 수도 있다. 따라서, 제 1 신호 포함 매체 (36) 및/또는 제 2 신호 포함 매체 (38) 는 선택적일 수도 있다. 제 1 신호 포함 매체 (36) 및 제 2 신호 포함 매체 (38) 는 메모리 (26) 으로부터 별개로 도시되고, 메모리 (26) 는 제 1 신호 포함 매체 (36) 및/또는 제 2 신호 포함 매체 (38) 로서 서빙될 수 있다.
제 1 신호 포함 매체 (36) 또는 캡처 신호 포함 매체와 같이 사용을 위한 적절한 신호 포함 매체는 CD 와 같은 광학 디스크, 자기 저장 디스켓들, 집 디스크, 자기 테이프, RAM 들 및 ROM 들을 포함하나, 이에 제한되지 않는다. 어떤 예에서, 제 1 신호 포함 매체 (36) 및/또는 제 2 신호 포함 매체 (38) 은 이미징 시스템 (10) 의 외부에 위치한다. 예를 들어, 신호 포함 매체는 컴퓨터 네트워크 상의 서버 컴퓨터에 연결될 수 있다.
적절한 이미징 시스템 (10) 의 예는 디지털 카메라들, 비디오 카메라들, 이동 카메라 폰들, 의료 이미징 디바이스들을 포함하나, 이에 제한되지 않는다. 이미지 시스템 (10) 은 이미지 데이터를 저장하도록 구성되는 컴퓨터 시스템도 될 수 있다. 적절한 컴퓨터 시스템의 예들은 개인용 컴퓨터 및 서버들을 포함하나, 이에 제한되지 않는다. 어떤 예에서, 이미징 시스템 (10) 은 이미지 센서 (12) 를 포함하지 않는다. 예를 들어, 이미징 시스템 (10) 이 컴퓨터 시스템인 경우, 이미지 센서 (12) 는 이미징 시스템 (10) 내에 포함될 필요가 없다. 이미지 센서 (12) 가 이미징 시스템 (10) 내에 포함되지 않으면, 이미지 센서 (12) 는 이미징 시스템 (10) 으로부터 독립적일 수 있으나, 전자장비 (18) 의 센서 값들 수신을 허용하기 위해 이미징 시스템 (10) 과 통신할 수 있다.
도 2 는 도 1 의 이미징 시스템을 통한 데이터의 공정을 도시한다. 센서 인터페이스는 메모리 내의 이미지 센서로부터 원시 이미지 데이터 (40) 을 저장한다. 원시 이미지 데이터 (40) 는 이미지 센서 내의 픽셀을 갖는 이미지 센서 내의 각 센서로부터 센서 값과 연관된다. 이미지 센서 내의 하나 이상의 픽셀이 이미지 내의 픽셀과 연관되기 때문에, 원시 이미지 데이터 (40) 는 이미지 내의 픽셀과 함께 하나 이상의 센서와 효과적으로 연관된다.
이미지 프로세서는 메모리로부터 원시 이미지 데이터 (40) 를 판독하고, 압축을 위하여 원시 이미지 데이터 (40) 을 포맷팅한다. 예를 들어, 이미지 프로세서는 원시 이미지 데이터 (40) 을 YCbCr 포맷으로 변환함으로써 JPEG 압축에 대한 원시 이미지 데이터 (40) 을 포맷팅 할 수 있다. YCbCr 포맷팅에서, Y, Cb, 및 Cr 각각은 이미지의 상이한 컴포넌트들을 나타낸다. 예를 들어, Cb 및 Cr 각각이 색차 컴포넌트를 나타내는 반면, Y 는 발광 컴포넌트를 나타낸다.
포맷팅된 데이터 (42) 는 각각이 이미지 내의 복수의 픽셀들에 대한 데이터를 포함하는, 복수의 유닛들 (44) 로 분할된다. 도 2 의 다이어그램 A 는 각각이 레이블 A 에서 X 까지 주어진 복수의 유닛들 (44) 로 분할되는 포맷팅된 데이터 (42) 로 이미지를 나타낸다.
유닛들 (44) 는 JPEG 압축과 함께 사용되는 최소 코드 유닛 (MCU) 들일 수 있다. MCU 는 Hmax 및 Vmax 가 하나 이상과 동일한 정수이고, 픽셀은 이미지 내의 픽셀들인, Hmax * 8 픽셀들 X Vmax * 8 픽셀들의 차원을 갖는다. Hmax 및 Vmax 의 값은 상이한 데이터 컴포넌트에 대한 샘플링 주파수에 의해 결정된다. 예로서, YCbCr 포맷팅이 사용될 때, 이미지 내의 2 X 2 의 정사각형의 픽셀로부터의 데이터가 Y 컴포넌트에 대한 데이터가 평균이 아닌 반면, Cb 및 Cr 컴포넌트에 대해서는 종종 평균이다. Hmax 및 Vmax 가 각 상이한 컴포넌트에 대한 MCU 내의 데이터가 이미지 내의 동일한 그룹의 샘플들에 대해 생성될 때, 가장 작은 가능한 값들을 갖도록 선택된다. 따라서, 위 예에 대해, MCU 는 16 X 16 일 수도 있다. 일반적인 MCU 차원은 8 X 8, 8 X 16, 16 X 8 및 16 X 16 을 포함한다.
이미지 프로세서는 복수의 유닛들을 각각 포함하는, 블록 (46) 내의 원시 데이터를 포맷팅한다. 예를 들어, 다이어그램 C 는 각각이 8 개의 유닛들 (44) 을 포함하는 3 개의 블록들 (46) 으로 분할되는 다이어그램 A 의 이미지를 나타낸다. 이미지 프로세서는 시리즈로 각 블록 (46) 에 대한 포맷팅된 데이터 (42) 를 생성할 수 있다. 예를 들어, 이미지 프로세서는 제 1 블록 (46) 에 대한 원시 데이터를 메모리로부터 판독할 수 있고, 원시 데이터를 포맷팅된 데이터 (42) 로 변환할 수 있고, 포맷팅된 데이터 (42) 를 메모리에 기록할 수 있다. 메모리로 블록 (46) 에 대한 포맷팅된 데이터 (42) 를 기록한 후에, 이미지 프로세서는 시리즈로 그 다음의 블록 (46) 에 대한 포맷팅된 데이터 (42) 를 생성할 수 있다. 많은 카메라 내의 이미지 프로세서는 전체 이미지를 효과적으로 다룰 수 있는 입력 및 출력 용량을 충분히 갖지 못한다. 그러나, 이들 이미지 프로세서들은,전체 이미지보다 데이터의 블록들을 포맷팅하는 경우에는 효과적일 수도 있다.
압축기는 메모리로부터 블록 (46) 에 대한 포맷팅된 데이터 (42) 를 수신한다. 예를 들어, 도 2 의 다이어그램 D 은 압축기가 각 블록들 (46) 내의 유닛 (44) 들을 압축하는 시퀀스를 도시한다. 압축기는 유닛 A 에 대해, 그 후 유닛 B, 그 후 유닛 G 등의 순으로, 포맷팅된 데이터 (42) 를 압축한다. 다이어그램 B 는 유닛들 (44) 이 이미지 비트스트림 (54) 에서 나타나는 시퀀스를 도시한다. 예를 들어, 이미지 비트스트림은 유닛 A 에 대해, 유닛 B 가 뒤따르고, 유닛 C 가 뒤따르는 데이터를 포함한다. 다이어그램 B 및 다이어그램 D 의 비교는 이미지 비트스트림 (54) 내의 유닛 (44) 들의 시퀀스가 유닛 (44) 들이 압축되는 시퀀스로부터 상이함을 도시한다.
압축기는 이미지 비트스트림 (54) 내의 유닛들 (44) 의 시퀀스와 압축되려는 유닛 (44) 들의 압축 사이의 차이를 보상하는 재시작 마커 (52) 들을 사용한다. 예를 들어, 압축기는 다이어그램 D 에서 도시된 순서로 유닛들 (44) 를 압축한다. 유닛 (44) 의 압축은 유닛 비트스트림 (48) 을 가져온다. 유닛 C 에 대한 유닛 비트스트림 (48) 은 도 2 에서 BSC 로 레이블된다. 상이한 유닛들 (44) 로부터의 유닛 비트스트림 (48) 들은 다이어그램 D 에 따른 시퀀스로 정렬된 유닛 비트스트림 (48) 을 갖는 비트스트림 세그먼트 (50) 에 조합된다. 다이어그램 D 에서 특정된 시퀀스로 유닛 (44) 를 통해 공정할 때, 다이어그램 B 에서 특정된 시퀀스로부터의 변화를 가져오고, 재시작 마커가 비트스트림 (50) 에 포함된다. 예를 들어, 다이어그램 D 는 유닛 G, 그 후 H, 그 후 M 으로 압축되는 것을 특정하나, 다이어그램 B 는 유닛 G, 그 후 H, 그 후 I 로 압축하는 것을 특정한다. 다이어그램 D 에서의 시퀀스가 유닛 H 이후에 다이어그램 B 내의 시퀀스로부터 분기하기 때문에, 재시작 마커 (52) 는 유닛 H 를 위해 유닛 비트스트림 (48) 후에 위치한다. 결과적으로, 압축기는 유닛 A, 유닛 B 및 RS1 로 레이블된 첫번째 재시작 마커 (52) 에 대한 압축된 데이터를 갖는 비트스트림 세그먼트를 생성하고, 유닛 G, 유닛 H 및 RS2 로 레이블된 첫번째 재시작 마커에 대한 압축된 데이터를 갖는 비트스트림 세그먼트 (50) 를 생성한다. 재시작 마커 (52) 는 블록 (46) 내의 마지막 유닛 (44) 이 압축된 후의 비트스트림 세그먼트 (50) 도 포함한다. 예를 들어, 재시작 마커 (52) 는 유닛 T 에 대한 유닛 비트스트림 (48) 후에 위치한다. 압축기는 재시작 마커 (52) 후의 또 다른 비트스트림 세그먼트를 시작한다. 압축기는 비트스트림 세그먼트 (50) 를 메모리에 저장한다. 도 2 가 각 비트스트림 세그먼트 (50) 들이 서로 분리되어있는 것처럼 도시하나, 비트스트림 세그먼트 (50) 는 메모리에서 엔드투엔드로 위치할 수 있다. 재시작 마커 (52) 는 순차적인 번호로 레이블을 포함할 수 있어, 순차적인 프로세싱 동안 순차적으로 식별될 수 있다.
특정 압축 방법에서, 특정 유닛 (44) 에 대한 압축된 데이터는 이전의 유닛 (44) 이 도 2 의 다이어그램 B 의 숫자에 따라 결정되는 이전의 유닛 (44) 들의 함수이다. 예를 들어, 도 2 에서의 유닛 D 에 대한 JPEG 데이터는 유닛 B 에 대한 JPEG 데이터의 함수이다. 특히, JPEG 인코딩은 AC 계수 및 DC 계수로 흔히 불리는 계수들을 사용하게 한다. 유닛 C 에 대한 DC 계수는 유닛 B 와 유닛 C 에 대한 DC 컴포넌트의 차이를 나타낸다. 따라서, MCU 레이블된 C 에 대한 DC 컴포넌트의 값을 결정하기 위해, MCU 레이블된 B 에 대한 DC 컴포넌트의 값을 먼저 알아야한다. 유닛들 G, M, 및 S 에 대한 유닛 비트스트림 (48) 을 생성할 때, 압축기는 이전의 유닛들에 대한 압축된 데이터로 접근할 필요가 없다. 결과적으로, 재시작 마커 (52) 이후에 압축된 유닛 (44) 은 이미지의 제 1 유닛 (44) 으로서 취급될 수 있다. 예를 들어, 유닛 G 는 유닛 A 와 같이 동일하게 취급될 수 있다. 특히 JPEG 인코딩은 제 1 MCU 에 대한 DC 예측을 0 으로 설정한다. 따라서, 압축기는 유닛 G 에 대한 DC 예측을 0 으로 설정할 수 있다.
압축기가 블록 (46) 에 대한 각 비트스트림 세그먼트를 메모리 (50) 에 기록한 후에, 압축기는 메모리로부터 다음의 블록 (46) 에 대한 포맷팅된 데이터 (42) 를 검색한다. 압축기는 다음의 블록 (46) 내의 유닛 (44) 에 대한 포맷팅된 데이터 (42) 를 압축하고, 비트스트림 세그먼트들 (50) 을 메모리에 기록한다. 압축기는 각 블록 (46) 을 통해 진행하기 위해 위의 프로세스를 사용하고, 유닛 X 에 대한 유닛 비트스트림 (48) 후에 이미지엔드 마커 (end-of-image marker) 를 위치한다.
전체 이미지보다 데이터의 블록들을 압축하고 포맷팅하는 것이 이미징 시스템의 메모리 요청을 감소시킬 수 있다. 예를 들어, 포맷팅된 데이터 블록 (46) 은 메모리에 포함된 핑-퐁 버퍼로 기록할 수 있다. 핑-퐁 버퍼는 복수의 버퍼를 포함할 수 있고, 이미지 프로세서는 버퍼를 각 포맷팅된 데이터 블록 (46) 을 기록하는 것으로 교체할 수 있다. 또한, 압축기는 각 포맷팅된 데이터 블록 (46) 을 수신하는 것으로부터 버퍼를 교체할 수 있다. 결과적으로, 압축기는 이미지 프로세서가 다른 버퍼로 데이터를 기록하는 동안, 하나의 버퍼로부터 포맷팅된 데이터 (42) 를 판독할 수 있다. 이미지 프로세서와 압축기 사이의 포맷팅된 데이터를 전달하는 이 방법은 전체 이미지가 메모리로 기록되는 것을 요청하지 않기 때문에, 이미징 디바이스에 의해 요청되는 메모리를 감소시킬 수 있다.
압축기는 이미지 비트스트림 (54) 를 어셈블링하도록 각 비트스트림 세그먼트들 (50) 을 사용한다. 이미지 비트스트림 (54) 이 어셈블링되어, 각 유닛 (44) 에 대한 압축된 데이터가 다이어그램 B 에서 도시된 시퀀스로 정렬된다. 예를 들어, 압축기는 첫번째 재시작 마커를 발견할 수 있고, 이미지 비트스트림 (54) 를 시작하기 위한 첫번째 재시작 마커를 포함하는 비트스트림 세그먼트를 사용할 수 있다. 압축기는 5 번째 재시작 마커를 포함하는 비트스트림 세그먼트, 그 후 9 번째 재시작 마커를 포함하는 비트스트림 세그먼트를 사용하여 이미지 비트스트림 (54) 를 계속할 수 있다. 비트스트림 세그먼트 내의 재시작 마커들은 이미지 비트스트림 내에 포함될 수 있다. 재시작 마커들이 이미지 비트스트림에 포함될 때, 재시작 마커들은 이미지 비트스트림 내의 비트스트림 세그먼트들의 올바른 시퀀스를 반영하도록 다시 번호가 매겨질 수 있다. 예를 들어, 5 번째 재시작 마커를 포함하는 비트스트림 세그먼트들, RS5 는 이미지 비트스트림에서의 두번째 비트스트림 세그먼트이고, RS5 는 이미지 비트스트림 내의 2 번째 재시작 마커, RS'2 로 다시 번호가 매겨질 수 있다. 압축기 내의 제 2 프로세서는 비트스트림 세그먼트 (50) 을 어셈블링할 수 있다. 선택적으로, 압축기 또는 전자장비는 비트스트림 세그먼트 (50) 을 어셈블링하는 제 3 프로세서를 포함할 수 있다.
압축기는 상이한 방위로 이미지를 회전하기 위해 도 2 로부터의 블록 (46) 들을 사용할 수 있다. 도 3 은 90 °시계방향 회전이 요구될 때 이미징 시스템을 통해 이미지 데이터의 절차를 도시한다. 다이어그램 A 는 원래의 이미지를 도시하고, 도 2 의 다이어그램 A 와 동일하다. 다이어그램 B 는 다이어그램 B 를 90 °시계방향에 의해 도식된 이미지를 도시한다. JPEG 압축과 같은 많은 압축 방식에서, 행우선 순서로 정렬된 유닛 (44) 들을 갖는 비트스트림을 생산한다. 따라서, 다이어그램 B 에서 도시된 바와 같이 회전된 이미지를 생성하기 위해, 이들 압축 방식은 유닛 S, 그 후 유닛 M, 그 후 유닛 A, 그 후 유닛 T 등에 대한 데이터를 갖는 비트스트림을 생산한다. 다이어그램 C 는 다이어그램 A 에 적용되는 시퀀스를 나타낸다. 따라서, 다이어그램 C 는, 90 °회전을 생산하기 위해 다이어그램 A 내의 각 유닛들로부터의 데이터가 비트스트림으로 정렬되는 시퀀스를 나타낸다.
위에서 기술된 바와 같이, 이미지 프로세서는 포맷팅된 데이터 블록들 (46) 을 메모리로 기록한다. 도 3 의 다이어그램 D 는 다이어그램 A 에서 도시된 이미지에 대해 생성될 수 있는 블록들 (46) 의 예를 도시한다. 압축기는 블록 (46) 에 대한 데이터를 메모리로부터 판독하고, 블록 (46) 내의 유닛 (44) 들을 압축한다. 각 유닛 (44) 을 압축할 때, 압축은 이미지의 원하는 회전, 이 예에서는 90 °회전에 의해 유닛 (44) 내의 데이터를 회전하도록 수행된다. 기술의 다양성은 각 유닛 (44) 들을 회전하는데 사용될 수 있다. 예를 들어, 압축기는 각 유닛 (44) 내의 픽셀들의 위치를 이리저리 움직일 수 있어, 유닛 (44) 의 압축전에 원하는 양을 회전시킨다. 따라서, 유닛 비트스트림 (48) 내의 데이터는 원하는 회전에 의해 회전되는 유닛 (44) 을 위한 것이다.
다이어그램 E 는 압축기가 각 블록 (46) 에서 유닛 (44) 들을 압축하는 시퀀스를 도시한다. 위에서 기술한 바와 같이, 유닛 (44) 의 압축은 유닛 비트스트림 (48) 을 가져온다. 유닛 C 에 대한 유닛 비트스트림 (48) 은 BSC 로 레이블된다. 상이한 유닛 (44) 로부터 유닛 비트스트림 (48) 들은 다이어그램 E 에서 특정된 시퀀스로 정렬된 압축된 비트스트림을 갖는 비트스트림 세그먼트 (50) 로 조합된다. 다어어그램 E 에서 특정된 시퀀스로 유닛 (44) 들을 통해 공정할 때, 다이어그램 C 에서의 특정된 시퀀스로부터의 변화가 생기고, 재시작 마커가 비트스트림 세그먼트 (50) 에 포함된다. 재시작 마커 (52) 는 블록 (46) 내의 마지막 유닛 (44) 이 압축된 후에 비트스트림 세그먼트 (50) 도 포함된다. 이 예에서, 각 블록 (46) 내의 시퀀스는 다이어그램 C 에서 특정된 시퀀스로 대응된다. 결과적으로, 재시작 마커 (52) 들은 유닛 B 에 대한 유닛 비트스트림 (48) 후에만 오직 위치할 수 있다. 따라서, 유닛 S, M, G, A, T, N, H, 및 B 에 대한 압축된 데이터를 갖는 비트스트림 세그먼트 (50) 들을 그 순서로 생성하고, RS1 으로 레이블된 첫번째 재시작 마커를 생성한다. 압축기는 재시작 마커 (52) 이후에 또 다른 비트스트림 세그먼트 (50) 를 시작한다. 비록 도 3 이 제 1 블록 (46) 의 압축으로부터 얻어지는 하나의 비트스트림 세그먼트 (50) 을 도시하나, 블록 (46) 은 복수의 비트스트림 세그먼트 (50) 들로 나누어질 수 있다. 예를 들어, 재시작 마커 (52) 는 유닛 A 는 물론, 유닛 B 에 대한 유닛 비트스트림 (48) 후에 위치할 수 있다.
압축기가 블록에 대한 각 비트스트림 세그먼트 (50) 를 메모리로 기록한 후에, 압축기는 다음의 블록 (46) 에 대한 포맷팅된 데이터 (42) 를 메모리로부터 검색한다. 압축기는 그 다음 블록 (46) 내의 유닛 (44) 들에 대한 포맷팅된 데이터 (42) 를 압축하고, 메모리로 비트스트림 세그먼트 (50) 을 기록한다. 압축기는 각 블록 (46), 위치들, 및 유닛 F 에 대한 유닛 비트스트림 (48) 후의 이미지엔드 마커들 동안에 진행하기 위해 위의 프로세스를 사용한다.
도 3 의 다이어그램 D 내의 블록 (46) 은 도 2 내의 다이어그램 C 내의 블록 (46) 과 동일하다. 그러나, 도 3 내의 다이어그램 E 에서 도시된 시퀀스는 도 2 내의 다이어그램 내에 도시된 시퀀스와는 상이하다. 시퀀스 내의 변화는 도 3 에 도시된 프로세스로부터 나오는 이미지의 회전을 제공하나, 도 2 내에 도시된 프로세스로부터 도출되지는 않는다. 따라서, 압축기가 유닛 (44) 을 압축하는 시퀀스는 이미지 회전의 원하는 정도의 함수이다.
압축기는 이미지 비트스트림 (54) 을 어셈블링하도록 각 비트스트림 세그먼트 (50) 를 사용한다. 이미지 비트스트림 (54) 는 어셈블링되어, 각 유닛 (44) 에 대한 압축된 데이터가 다이어그램 C 에서 도시된 시퀀스 내에 정렬된다. 예를 들어, 압축기는 첫번째 재시작 마커를 찾을 수 있고, 이미지 비트스트림 (54) 를 시작하도록 첫번째 재시작 마커를 포함하는 비트스트림 세그먼트를 사용할 수 있다. 압축기는 두번째 재시작 마커 등을 포함하는 비트스트림 세그먼트를 사용하는 이미지 비트스트림 (54) 을 계속할 수 있다. 비트스트림 세그먼트들 내의 재시작 마커들은 이미지 비트스트림 내에 포함될 수 있는 비트스트림 세그먼트를 포함할 수 있다. 이미지 비트스트림 내에 재시작 마커들이 포함될 때, 재시작 마커들은 이미지 비트스트림 내의 비트스트림 세그먼트의 올바른 시퀀스를 반영하기 위해 재시작 마커들에 다시 번호가 매겨질 수 있다.
도 3 과 연관된 비트스트림 세그먼트 (50) 들은 1 번째 재시작 마커를 포함하는 비트스트림 세그먼트를 시작으로 하여, 그 뒤를 잇는, 2 번째 재시작 마커를 포함하는 비트스트림 세그먼트, 그 뒤를 잇는, 3 번째 재시작 마커를 포함하는 비트스트림 세그먼트 등으로 어셈블링된다. 반대로, 도 2 와 연관된 비트스트림 세그먼트 (50) 들은, 1 번째 재시작 마커를 포함하는 비트스트림 세그먼트, 그 뒤를 잇는, 5 번째 재시작 마커를 포함하는 비트스트림 세그먼트, 그 뒤를 잇는 9 번째 재시작 마커를 포함하는 비트스트림 세그먼트 등을 사용하여 어셈블링된다. 따라서, 비트스트림 세그먼트 (50) 가 어셈블링되는 시퀀스는 도 3 보다 도 2 에서 상이하다. 시퀀스할 때의 상이함은, 도 3 및 도 2 내의 이미지 회전의 상이함의 정도에서 도출된다. 따라서, 비트스트림 세그먼트 (50) 이 어셈블링되는 시퀀스는 이미지 회전의 원하는 정도의 함수일 수 있다.
도 4 는 이미지가 180 °로 회전될 때의 이미징 시스템을 통한 데이터의 공정을 도시한다. 다이어그램 A 는 원래의 이미지를 도시하고, 도 2 의 다이어그램 A 와 동일하다. 다이어그램 B 는 180 °시계방향으로 회전한 다이어그램 B 에 의해 도시되는 이미지를 도시한다. JPEG 압축과 같은 많은 압축 방식에서, 행우선 순위로 정렬된 유닛 (44) 을 갖는 비트스트림을 생산한다. 따라서, 다이어그램 B 내에 보여진 이미지 회전을 생산하기 위해, 이들 압축 방식은 유닛 X,W,V,T,S,R 등에 대한 데이터를 갖는 비트스트림을 그 순서대로 생산한다. 다이어그램 C 는 다이어그램 A 에 적용되는 이 시퀀스를 나타낸다. 따라서, 다이어그램 C 는, 180 °회전을 얻기 위해 이들 압축 방식 중 하나에 의해 생산된 비트스트림으로 정렬된 다이어그램 A 내의 각 유닛 (44) 에 대한 데이터인 시퀀스를 나타낸다.
위에서 기술한 바와 같이, 이미지 프로세서는 포맷팅된 데이터 블록 (46) 을 메모리로 기록한다. 도 4 내의 다이어그램 D 는 다이어그램 A 에서 도시된 이미지에 대해 생산될 수 있는 블록 (46) 들의 예를 도시한다. 압축기는 블록 (46) 에 대한 데이터를 메모리로부터 판독하고, 블록 (46) 내의 유닛 (44) 을 압축한다. 각 유닛 (44) 를 압축할 때, 압축은 이미지의 원하는 회전, 예를 들어, 180 °시계방향 회전에 의해 유닛 (44) 내의 데이터를 회전하도록 수행된다. 기술의 다양성은 각 유닛 (44) 를 회전하도록 사용될 수 있다. 예를 들어, 압축기는 각 유닛 (44) 내의 픽셀들의 위치를 이리저리 옮길 수 있어, 유닛 (44) 는 압축 유닛 (44) 이전의 원하는 양을 회전한다. 따라서, 유닛 비트스트림 (48) 내의 데이터는 원하는 회전에 의해 회전하는 유닛 (44) 에 대한 것이다.
도 4 내의 다이어그램 E 는 압축기가 각 블록 (46) 내의 유닛 (44) 을 압축하는 시퀀스를 나타낸다. 위에서 기술된 바와 같이, 유닛 (44) 의 압축은 유닛 비트스트림 (48) 을 가져온다. 유닛 C 에 대한 유닛 비트스트림 (48) 은 BSC 로 레이블된다. 도 4 내의 다이어그램 E 는 압축기가 유닛 (44) 를 압축하는 시퀀스를 나타낸다. 상이한 유닛 (44) 으로부터의 유닛 비트스트림 (48) 은 다이어그램 E 내에 특정된 시퀀스로 정렬된 압축된 비트스트림을 갖는 비트스트림 세그먼트 (50) 로 조합된다. 다이어그램 E 로 특정된 시퀀스 내의 유닛 (44) 을 통해 공정할 때, 다이어그램 C 내의 특정된 시퀀스로부터의 변화를 가져오고, 재시작 마커는 비트스트림 세그먼트 (50) 을 포함한다. 예를 들어, 다이어그램 E 는 유닛 N, 그 후 M, 그 후 H 이 압축됨을 특정하나, 다이어그램 C는 유닛 N, 그 후 M, 그 후 L 이 압축됨을 특정한다. 다이어그램 E 내의 시퀀스가 유닛 M 이후에 다이어그램 C 내의 시퀀스로부터 분기하므로, 재시작 마커 (52) 는 유닛 M 에 대한 유닛 비트스트림 (48) 이후에 위치한다. 결과적으로, 압축기는 유닛 T, 유닛 S 및 RS1 로 레이블된 첫번째 재시작 마커에 대한 압축된 데이터를 갖는 비트스트림 세그먼트 (50) 를 생성하고, 유닛 N, 유닛 M 및 RS2 로 레이블된 두번째 재시작 마커에 대한 압축된 데이터를 갖는 비트스트림 세그먼트 (50) 들을 생성한다. 재시작 마커 (52) 는 블록 (46) 내의 마지막 유닛 (44) 이 압축된 이후에 비트스트림 세그먼트 (50) 내에도 포함된다. 예를 들어, 재시작 마커 (52) 는 유닛 A 에 대한 유닛 비트스트림 (48) 후에 위치한다. 압축기는 재시작 마커 (52) 이후에 또 다른 비트스트림 세그먼트 (50) 을 시작한다. 압축기는 메모리 내에 비트스트림 세그먼트들을 저장한다. 비록 도 4 가 각 비트스트림 세그먼트 (50) 들을 또 다른 비트스트림 세그먼트들로부터 분리된 것처럼 도시하여도, 비트스트림 세그먼트 (50) 들은 메모리 내에서 엔드투엔드로 위치할 수 있다. 재시작 마커 (52) 는 순차적인 번호의 레이블을 포함할 수 있어, 그들이 순차적인 프로세싱 동안 순차적으로 식별될 수 있다.
압축기가 블록 (46) 에 대한 각 비트스트림 세그먼트 (50) 들을 메모리로 기록한 후에, 압축기는 메모리로부터 다음의 블록 (46) 에 대한 포맷팅된 데이터 (42) 를 검색한다. 압축기는 다음의 블록 (46) 내의 유닛 (44) 들에 대한 포맷팅된 데이터 (42) 를 압축하고, 비트스트림 세그먼트 (50) 를 메모리로 기록한다. 압축기는 각 블록 (46), 위치, 유닛 F 에 대한 유닛 비트스트림 (48) 후에 이미지엔드 마커 동안 진행하기 위해 위의 프로세스를 사용한다.
도 4 내의 다이어그램 D 내의 블록 (46) 들은 도 2 내의 다이어그램 C 내의 블록 (46) 과 동일하고, 도 3 내의 다이어그램 D 내의 블록 (46) 들과 동일하다. 그러나, 이들 블록 (46) 들 내의 유닛 (44) 들이 도 4 내의 다이어그램 E 에서 도시된 바와 같이 압축되는 시퀀스는 도 3 내의 다이어그램 E 에서 도시된 시퀀스로부터 상이하고, 또한 도 2 내의 다이어그램 D 내의 도시된 시퀀스로부터 상이하다. 시퀀스 내의 변화는 도 2, 도 3, 및 도 4 내의 도시된 프로세스로부터 도출되는 상이한 정도의 회전을 제공한다. 따라서, 압축기가 유닛 (44) 를 압축하는 시퀀스는 이미지 회전의 원하는 정도의 함수이다.
이미지 비트스트림 (54) 를 어셈블링하기 위해 압축기는 각 비트스트림 세그먼트 (50) 를 사용한다. 이미지 비트스트림 (54) 는 어셈블링되어, 각 유닛 (44) 에 대한 압축된 데이터는 다이어그램 C 에서 도시된 시퀀스로 정렬된다. 예를 들어, 압축기는 9 번째 재시작 마커를 발견할 수 있고, 이미지 비트스트림 (54) 의 시작으로서 9 번째 재시작 마커를 포함하는 비트스트림 세그먼트를 사용할 수 있다. 압축기는 5 번째 재시작 마커, 그 후에는 1 번째 재시작 마커를 포함하는 비트스트림 세그먼트, 그 후에는 10 번째 재시작 마커를 포함하는 비트스트림 세그먼트를 사용하는 이미지 비트스트림 (54) 를 계속할 수 있다. 비트스트림 세그먼트 내의 재시작 마커들은 이미지 비트스트림 내에 포함될 수 있다. 재시작 마커들이 이미지 비트스트림 내에 포함될 때, 재시작 마커들은 이미지 비트스트림 내의 비트스트림 세그먼트의 올바른 시퀀스를 반영하도록 다시 번호가 매겨질 수 있다. 예를 들어, 9 번째 재시작 마커, RS9 를 포함하는 비트스트림 세그먼트가 이미지 비트스트림 내의 1 번째 비트스트림이기 때문에, RS9 는 이미지 비트스트림 내의 1 번째 재시작 마커 RS'1 으로 다시 번호가 매겨질 수 있다. 또한, 5 번째 재시작 마커, RS5 는 이미지 비트스트림 내에서 2 번째 재시작 마커 RS'2 로 다시 번호가 매겨질 수 있다.
도 4 와 연관된 비트스트림 세그먼트 (50) 들은, 9 번째 재시작 마커를 포함하는 비트스트림 세그먼트를 시작으로, 그 뒤를 잇는 5 번째 재시작 마커를 포함하는 비트스트림 세그먼트, 그 뒤를 잇는 1 번째 재시작 마커를 포함하는 비트스트림 세그먼트 등으로 어셈블링된다. 반대로, 도 2 와 연관된 비트스트림 세그먼트 (50) 은, 1 번째 재시작 마커를 포함하는 유닛 비트스트림 (48) 을 시작으로, 그 뒤를 잇는 5 번째 재시작 마커를 포함하는 유닛 비트스트림 (48), 9 번째 재시작 마커를 포함하는 유닛 비트스트림 (48) 등에 의해 어셈블링된다. 따라서, 비트스트림 세그먼트 (50) 들이 어셈블링되는 시퀀스는 도 4 에 대한 것보다 도 2 에 대해 상이하다. 시퀀싱의 차이점은 도 2 및 도 4 내의 이미지의 회전의 상이한 정도로부터 나온다. 따라서, 비트스트림 세그먼트 (50) 들이 어셈블링되는 시퀀스는 이미지 회전의 원하는 정도의 함수일 수 있다.
도 5 는 이미지 데이터를 프로세싱하는 방법을 도시한다. 블록 (46) 에 대한 원시 이미지 데이터는 프로세스 블록 (100) 에서 메모리로부터 수신된다. 예를 들어, 이미지 프로세서는 메모리로부터 블록들 중 하나의 원시 이미지 데이터를 수신할 수 있다. 원시 이미지 데이터는 프로세스 블록 (102) 에서 포맷팅된다. 예를 들어, 이미지 프로세서는 원시 이미지 데이터를 YCbCr 포맷으로 변환할 수 있다. 프로세스 블록 (104) 에서, 블록에 대한 포맷팅된 데이터는 메모리로 기록된다. 예를 들어, 이미지 프로세서는 데이터의 포맷팅된 데이터를 핑-퐁 버퍼의 버퍼로 기록할 수 있다. 결정 블록 (106) 에서, 결정은 메모리로 기록된 각 블록에 대한 포맷팅된 데이터인지 여부를 결정한다. 결정이 '아니오' 인 경우, 방법은 프로세스 블록 (100) 으로 돌아가고, 결정이 긍정적인 경우, 이 방법의 이 부분은 종료한다.
프로세스 블록 (108) 에서, 메모리 내의 포맷팅된 데이터의 블록이 수신된다. 예를 들어, 압축기는 포맷팅된 데이터의 블록을 핑-퐁 버퍼 내의 버퍼로부터 수신할 수 있다. 프로세스 블록 (110) 에서, 하나 이상의 비트스트림 세그먼트들은 포맷팅된 데이터의 블록으로부터 생성된다. 예를 들어, 압축기는 포맷팅된 데이터의 블록으로부터 하나 이상의 비트스트림 세그먼트들을 생성하기 위해, 포맷팅된 데이터의 블록 내의 유닛 (44) 로 압축될 수 있다. 특히, 압축기는 하나 이상의 비트스트림 세그먼트를 생성하기 위해 포맷팅된 데이터의 블록 내의 유닛 (44) 에 JPEG 압축을 수행할 수 있다. 어떤 예에서는, 포맷팅된 데이터의 유닛 (44) 의 압축은 유닛 (44) 의 압축을 포함하여, 유닛 (44) 에 대한 압축된 데이터는 유닛 (44) 에 대한 포맷팅된 데이터에 관해 회전된 유닛 (44) 의 버전에 대한 것이다.
결정 블록 (112) 에서, 결정은 포맷팅된 데이터의 각 블록에 대해 비트스트림을 생성했는지 여부에 따라 내려진다. 결정이 '아니오' 인 경우, 방법은 프로세스 블록 (108) 으로 돌아가고, 결정이 '예' 인 경우, 방법은 프로세스 블록 (114) 으로 계속될 수 있다. 프로세스 블록 (114) 에서, 비트스트림 세그먼트들은 이미지 비트스트림으로 어셈블링된다. 이미지 비트스트림은 메모리 및/또는 추가 메모리 내에 저장될 수 있다.
도 5 에서 도시된 블록들은 방법의 실제 실행과는 상이할 수 있다. 예를 들어, 상이한 블록들은 또 다른 블록과 선택적이거나, 동시에 수행될 수 있다. 예로서, 프로세스 블록 (102 및 104) 은 동시에 또는 선택적으로 수행된다. 특히, 블록에 대한 데이터는 동일한 블록으로부터의 다른 데이터가 메모리로 기록되거나, 블록으로부터의 포맷팅된 데이터가 블록으로부터의 저장으로 교체될 수 있는 동안 포맷팅될 수 있다. 또 다른 예로서, 프로세스 블록 (108 및 110) 은 동시에 또는 선택적으로 수행된다. 예를 들어, 비트스트림 세그먼트들은 동일한 블록으로부터 추가적인 데이터를 수신하거나, 비트스트림 생성이 블록에 대한 포맷팅된 데이터의 수신으로 교체될 수 있는 동안 특정 블록에 대해 생성될 수 있다. 또한 결정 블록들은 소프트웨어 프로그래밍 내의 루프를 사용하여 실행될 수 있다.
도 5 내의 방법의 상이한 부분은 동시에 실행될 수 있다. 예를 들어, 포맷팅된 데이터의 첫번째 블록이 메모리로 기록된 후에, 비트스트림 세그먼트들은 첫번째 블록으로부터 생성될 수 있고, 메모리로 기록되는 후속의 블록들로부터 생성될 수도 있다. 추가적인 블록들은 비트스트림 세그먼트들이 첫번째 또는 후속의 블록들로부터 생성되는 동안 포맷팅될 수 있다. 예로서, 도 6 은 시간에 걸쳐 전자장비 내의 컴포넌트들의 가능한 할당을 도시한다. 이미지 프로세서는 첫번째 이미지를 포맷팅하는 것을 시작한다. 첫번째 블록을 포맷팅한 후에, 압축기는 첫번째 블록 및 후속의 블록들의 압축을 시작한다. 이미지 프로세서는 압축기가 첫번째 블록 및 후속의 블록들을 압축하는 동안에, 후속의 블록들을 포맷팅하는 것을 계속한다. 이미지 프로세서가 압축기 전의 데이터를 프로세싱하는 것을 끝내기 때문에, 이미지 프로세서는 압축기가 첫번째 이미지에 대해 압축을 계속하는 동안, 두번째 이미지에 대한 데이터를 포맷팅하기 시작한다. 결과적으로, 첫번째 이미지 및 두번째 이미지의 생성 사이에 지연이 감소된다.
도 7 은 이미지 센서로부터 데이터를 프로세싱하는 로직 모듈을 도시한다. 전자장비 (18) 은 원시 이미지 데이터 (40) 를 수신하고 저장하도록 구성된 저장 모듈 (120) 을 포함한다. 예를 들어, 저장 모듈 (120) 은 이미지 센서 (12) 로부터 원시 이미지 데이터 (40) 을 수신할 수 있고, 메모리 (26) 내의 원시 이미지 데이터 (40) 를 저장할 수 있다. 전자장비 (18) 는 포맷팅된 데이터 블록 (46) 으로 원시 이미지 데이터 (40) 를 포맷팅하도록 구성된 이미지 프로세싱 모듈 (122) 도 포함한다. 예를 들어, 이미지 프로세싱 모듈 (122) 은 메모리로부터 원시 이미지 데이터 (40) 의 일부분을 읽을 수 있고, 원시 이미지 데이터 (40) 을 포맷팅된 데이터 블록 (46) 으로 변환할 수 있고, 포맷팅된 데이터 블록 (46) 을 메모리로 기록할 수 있고, 원시 이미지 데이터 (40) 의 또 다른 부분을 메모리로부터 판독할 수 있다. 전자장비 (18) 는 포맷팅된 데이터 블록 (46) 을 비트스트림 세그먼트 (50) 들로 압축하도록 구성되는 압축 모듈 (124) 도 포함할 수 있다. 예를 들어, 압축 모듈 (124) 은 포맷팅된 데이터 블록 (46) 을 메모리로부터 판독할 수 있고, 하나 이상의 압축된 비트스트림 세그먼트 (50) 들을 생성하도록 포맷팅된 데이터 블록 (46) 을 압축하고, 하나 이상의 압축된 비트스트림 세그먼트 (50) 들을 메모리로 기록한다. 전자장비 (18) 는 이미지가 재생성될 수 있는 이미지 비트스트림으로 비트스트림 세그먼트 (50) 들을 어셈블링하도록 구성되는 비트스트림 어셈블링 모듈 (126) 도 포함한다. 예를 들어, 비트스트림 어셈블링 모듈 (126) 은 이미지 비트스트림을 어셈블링하는데 필요한 시퀀스로, 비트스트림 세그먼트 (50) 들을 메모리로부터 판독할 수 있고, 원하는 시퀀스로 유닛 비트스트림을 메모리에 기록한다. 이미지 비트스트림이 기록된 메모리는 메모리 및/또는 추가 메모리 (20) 일 수 있다.
이미징 시스템이 JPEG 이미지 압축의 컨텍스트로 개시되어 있어도, 압축은 상이한 타입의 압축일 수 있고, 압축기는 상이한 타입의 압축기일 수 있다. 이미징 시스템이 YCbCr 이미지 포맷팅의 컨텍스트로 개시되어 있어도, 이미징 시스템은 또 다른 이미지 포맷들을 사용할 수 있다.
위의 도식들이 3 개의 블록으로 나누어진 이미지를 도시하여도, 이미지는 3 개 이상의 블록들 또는 적게 예를 들어 2 개의 블록으로 분할될 수 있다. 그러나, 이미지가 2 개의 블록만으로 분할되면, 핑-퐁 버퍼내의 각 버퍼는 1/2 이미지만을 홀드하고, 전체 이미지가 메모리에 저장되는 것과 동일하게 핑-퐁 버퍼의 메모리 요청이 동일하기 때문에 실질적인 절약이 되지 않는다. 따라서, 이미지를 3 개 이상의 블록들로 분할하는 것이 요청된 메모리를 감소하는데 바람직하다.
이미지가 수직의 블록들로 분할되는 것이 도시되더라도, 이미지는 수평의 블록들로 분할될 수 있다. 선택적으로, 이미지는 모두 수직 및 수평으로 분할될 수 있다. 따라서, 방법 및 기술은 수직 및/또는 수평으로 블록들을 분할하는 이미지와 함께 사용될 수 있다.
데이터의 블록이 핑-퐁 버퍼로 기록되는 것을 서술되고, 핑-퐁 버퍼로부터 판독되는 것처럼 기술되어도, 핑-퐁 버퍼는 요구되지 않고, 또 다른 메모리 디바이스가 핑-퐁 버퍼 대신에 사용될 수 있다.
이 어플리케이션에 서술된 방법 및 동작은 하나의 이미지 컴포넌트의 컨텍스트로 서술된다. 위의 서술의 대부분은 각 이미지 컴포넌트들에 대해 반복된다. 공통 이미지 포맷은 YCbCr 포맷이다. 이 포맷은 Y 컴포넌트, Cb 컴포넌트, 및 Cr 컴포넌트를 포함한다. 위에서 서술된 각 유닛은 Y 컴포넌트, Cb 컴포넌트, 또는 Cr 컴포넌트로 특정된다. 결과적으로, 이 어플리케이션에서 서술된 방법 및 동작은 "참 색상" 이미지 또는 "참 색상 JPEG" 을 생성하기 위해 각 컴포넌트들에 대해 반복될 수 있다.
당업자는 정보 및 신호들이 다양하게 상이한 임의의 기술들 및 기법들을 사용하여 나타낼 수 있음을 알 수 있다. 예를 들어, 상술된 서술을 걸쳐 참조될 수 있는 데이터 및 명령은 전압, 전류, 전자자기 파장. 자기 필드 또는 입자. 광학 필드 또는 입자, 또는 그들의 조합에 의해 나타낼 수도 있다.
또한, 당업자는 다양한 도식적인 로직 블록들, 회로들, 모듈들, 및 여기에 개시된 실시형태와 관련되어 서술된 방법 단계가 전자적 하드웨어, 컴퓨터 소프트웨어 또는 그들의 조합으로 구현될 수 있음을 알 수 있다. 하드웨어 및 소프트웨어의 이 교환가능함을 명확히 서술하기 위해, 다양한 도식적인 컴포넌트들, 블록들, 로직, 모듈들, 회로들 및 단계가 그들의 기능의 용어로서 일반적으로 위에서 서술된다. 그러한 기능이 하드웨어 또는 소프트웨어로서 구현된 지 여부는 전체적인 시스템에서 부과된 특정 어플리케이션 및 설계 제약에 의존한다. 당업자는 각 특정 어플라케이션에 대한 다양한 방법에서 서술된 기능을 구현할 수도 있으나, 본 발명의 범주로부터 떠나서 해석되어서는 안된다.
여기에서 개시된 실시형태들과 관련하여 설명된 다양한 예시적인 논리 블록들, 모듈들, 회로들은 범용 프로세서, 디지털 신호 프로세서 (DSP), 주문형 집적회로 (ASIC), 필드 프로그래머블 게이트 어레이 신호 (FPGA), 또는 기타 프로그래머블 로직 디바이스, 별도의 게이트 또는 트랜지스터 로직, 별도의 하드웨어 컴포넌트들, 또는 여기서 설명된 기능을 수행하도록 설계되는 이들의 임의의 결합으로 구현 또는 수행될 수도 있다. 범용 프로세서는 마이크로프로세서일 수도 있지만, 다른 방법으로, 그 프로세서는 임의의 종래 프로세서, 제어기, 마이크로 제어기, 또는 상태 머신일 수도 있다. 또한, 프로세서는 컴퓨팅 디바이스들의 결합, 예를 들어, DSP 와 마이크로프로세서의 결합, 복수의 마이크로프로세서들, DSP 코어와 결합된 하나 이상의 마이크로프로세서들 또는 임의의 기타 다른 구성물로 구현될 수도 있다.
여기에 개시된 실시형태들과 관련하여 설명된 방법 또는 알고리즘의 단계는 프로세서에 의해 실행되는 하드웨어, 소프트웨어 모듈, 또는 그 2 개의 결합으로 직접 구현될 수도 있다. 소프트웨어 모듈은 RAM 메모리, 플래시 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터, 하드 디스크, 착탈형 디스크, CD-ROM, 또는 당업계에 알려진 임의의 다른 형태의 저장 매체에 상주할 수도 있다. 예시적인 저장 매체는 프로세서에 커플링되며, 그 프로세서는 저장 매체로부터 정보를 판독할 수 있고 저장 매체에 정보를 기입할 수 있다. 다른 방법으로, 저장 매체는 프로세서와 일체형일 수도 있다. 프로세서 및 저장 매체는 ASIC 내에 상주할 수도 있다. ASIC는 사용자 단말기 내에 상주할 수도 있다. 다른 방법으로, 프로세서 및 저장 매체는 사용자 단말기 내에 개별 컴포넌트로서 상주할 수도 있다.
개시되어 있는 실시형태들에 대한 상기의 설명은 당업자로 하여금 본 발명을 제조 또는 이용할 수 있도록 제공된다. 당업자는 이들 실시형태에 대한 다양한 변형들을 명백히 알 수 있으며, 여기에서 정의된 일반적인 원리들은 본 발명의 사상 또는 범위를 벗어나지 않고도 다른 실시형태들에 적용될 수도 있다. 따라서, 본 발명은 여기에서 설명된 실시형태들에 제한되는 것이 아니라, 여기에서 개시된 원리 및 신규한 특징들과 부합하는 최광의 범위를 부여하려는 것이다.

Claims (28)

  1. 이미지에 대한 원시 데이터 (raw data) 를 상기 이미지에 대한 포맷팅된 데이터로 변환하는 이미지 프로세서로서, 상기 이미지에 대한 포맷팅된 데이터는 복수의 유닛을 각각 포함하는 복수의 블록들로 분할되는, 상기 이미지 프로세서; 및
    상기 이미지에 대한 포맷팅된 데이터를 압축하는 이미지 압축기를 포함하며,
    상기 이미지 압축기가 상기 포맷팅된 데이터의 상기 블록들 중 하나의 블록의 압축을 시작함과 동시에, 상기 이미지 프로세서가 상기 블록들 중 또 다른 블록에 대한 원시 데이터를 변환하며,
    상기 이미지 압축기는, 상기 이미지의 회전을 위해 각각의 블록들의 복수의 유닛 내의 픽셀들의 위치를 이동시킴으로써 상기 각각의 블록들의 복수의 유닛을 순차적으로 압축하도록 구성되는, 이미징 시스템.
  2. 제 1 항에 있어서,
    상기 포맷팅된 데이터는, YCbCr 데이터를 포함하고,
    상기 포맷팅된 데이터를 압축하는 것은, 상기 포맷팅된 데이터를 JPEG 인코딩하는 것을 포함하는, 이미징 시스템.
  3. 삭제
  4. 제 1 항에 있어서,
    상기 포맷팅된 데이터의 각각의 블록들은, 복수의 픽셀들에 대한 포맷팅된 데이터를 포함하는, 이미징 시스템.
  5. 제 1 항에 있어서,
    상기 이미지 프로세서는, 상기 복수의 블록들을 메모리에 순차적으로 기록하며,
    상기 포맷팅된 데이터의 각각의 블록들은, 복수의 픽셀들에 대한 포맷팅된 데이터를 포함하는, 이미징 시스템.
  6. 제 1 항에 있어서,
    상기 복수의 유닛은, JPEG 인코딩과 연관된 복수의 최소 코드 유닛 (minimum code unit; MCU) 들을 포함하는, 이미징 시스템.
  7. 제 1 항에 있어서,
    상기 이미지 프로세서는, 상기 각각의 블록들에 대하여 순차적으로 상기 원시 데이터를 포맷팅된 데이터로 변환하는, 이미징 시스템.
  8. 제 5 항에 있어서,
    상기 메모리는 핑-퐁 버퍼 (ping-pong buffer) 를 포함하고, 각각의 블록들에 대한 상기 포맷팅된 데이터는 상기 핑-퐁 버퍼 내의 버퍼에 기록되는, 이미징 시스템.
  9. 제 5 항에 있어서,
    상기 이미지 압축기는, 상기 블록들 중 하나의 블록에 대한 포맷팅된 데이터를 메모리로부터 판독하고, 그 블록 내의 포맷팅된 데이터의 압축을, 상기 이미지 프로세서가 상기 블록들 중 또 다른 블록에 대한 원시 이미지 데이터를 포맷팅함과 동시에 시작하는, 이미징 시스템.
  10. 제 1 항에 있어서,
    상기 이미지 압축기는, 제 1 블록 내의 상기 포맷팅된 데이터의 압축을, 상기 이미지 프로세서가 또 다른 블록에 대한 원시 이미지 데이터를 포맷팅함과 동시에 시작하는, 이미징 시스템.
  11. 제 10 항에 있어서,
    상기 이미지 압축기는, 상기 이미지를 회전시키기 위해 상기 제 1 블록 내의 복수의 픽셀의 위치를 이동 (shuffling) 시킴으로써 상기 제 1 블록 내의 포맷팅된데이터를 압축하도록 구성되는, 이미징 시스템.
  12. 제 11 항에 있어서,
    상기 제 1 블록 내의 상기 포맷팅된 데이터를 압축하는 것은, 재시작 마커 (restart marker) 를 각각 포함하는 하나 이상의 비트스트림 세그먼트들을 생성하는 것을 포함하는, 이미징 시스템.
  13. 제 11 항에 있어서,
    상기 제 1 블록 내의 상기 포맷팅된 데이터를 압축하는 것은, 재시작 마커를 각각 포함하는 복수의 비트스트림 세그먼트들을 생성하는 것을 포함하는, 이미징 시스템.
  14. 제 4 항에 있어서,
    상기 이미지 압축기는 상기 각각의 블록들 내의 상기 포맷팅된 데이터를 압축하고, 상기 블록들 중 하나의 블록 내의 상기 포맷팅된 데이터를 압축하는 것은 재시작 마커를 각각 포함하는 하나 이상의 비트스트림 세그먼트들을 생성하는 것을 포함하는, 이미징 시스템.
  15. 제 14 항에 있어서,
    상기 이미지 압축기는, 상기 비트스트림 세그먼트들 각각을 상기 이미지가 생성될 수 있는 압축된 이미지 비트스트림으로 조합하는, 이미징 시스템.
  16. 삭제
  17. 제 1 항에 있어서,
    상기 포맷팅된 데이터의 각 유닛은, JPEG 압축에서 사용되는 최소 코드 유닛인, 이미징 시스템.
  18. 이미지에 대한 원시 데이터를 YCbCr 데이터의 블록들로 포맷팅하고, 상기 YCbCr 데이터의 블록들을 순차적으로 메모리에 기록하도록 구성된 이미지 프로세서로서, 상기 YCbCr 데이터의 블록들 각각은 복수의 최소 코드 유닛 (MCU) 들을 포함하는, 이미지 프로세서;
    재시작 마커 및 하나 이상의 유닛 비트스트림들을 각각 포함하는 하나 이상의 비트스트림 세그먼트들을 생성하도록, 상기 YCbCr 데이터의 블록들을 상기 메모리로부터 순차적으로 판독하고, 블록 내의 상기 최소 코드 유닛 (MCU) 들을 JPEG 인코딩하도록 구성되는 JPEG 인코더로서,
    상기 유닛 비트스트림 각각은 상기 블록 내의 최소 코드 유닛 (MCU) 들 중 하나에 대한 JPEG 인코딩된 비트스트림이고;
    블록 내의 상기 최소 코드 유닛 (MCU) 들은 상기 이미지를 회전시키기 위해 상기 최소 코드 유닛 (MCU) 들 내의 복수의 픽셀들의 위치를 이동시킴으로써 JPEG 인코딩되고;
    상기 최소 코드 유닛 (MCU) 들은 상기 원시 데이터가 포맷팅됨과 동시에 JPEG 인코딩되는, JPEG 인코더; 및
    상기 비트스트림 세그먼트들을 상기 이미지가 재생성될 수 있는 이미지 비트스트림으로 어셈블링하는 전자장비를 포함하는, 이미징 시스템.
  19. 제 18 항에 있어서,
    상기 메모리는, 복수의 버퍼들을 포함하고,
    상기 이미지 프로세서는, 각 블록을 상기 버퍼들에 기록하며,
    압축기는, 상기 버퍼들로부터 각 블록을 수신하는, 이미징 시스템.
  20. 포맷팅된 데이터의 블록들로 이미지에 대한 원시 데이터를 포맷팅하는 수단으로서, 상기 포맷팅된 데이터의 블록들 각각은 복수의 유닛들로 분할되는, 상기 원시 데이터를 포맷팅하는 수단; 및
    상기 포맷팅된 데이터의 유닛들을 압축하는 수단을 포함하며,
    상기 원시 데이터를 포맷팅하는 수단이 또 다른 원시 데이터를 변환함과 동시에, 상기 유닛들을 압축하는 수단이 상기 포맷팅된 데이터의 압축을 시작하며,
    상기 유닛들을 압축하는 수단은, 상기 이미지를 회전시키기 위해 상기 유닛들 내의 복수의 픽셀들의 위치를 이동시킴으로써 상기 유닛들을 압축하는, 이미징 시스템.
  21. 삭제
  22. 제 20 항에 있어서,
    상기 원시 데이터를 포맷팅하는 수단은, 포맷팅된 데이터의 각 블록을 메모리로 순차적으로 기록하고,
    상기 유닛들을 압축하는 수단은, 포맷팅된 데이터의 각 블록을 상기 메모리로부터 순차적으로 판독하는, 이미징 시스템.
  23. 제 22 항에 있어서,
    상기 메모리는, 복수의 버퍼들을 갖는 핑-퐁 버퍼를 포함하고,
    상기 원시 데이터를 포맷팅하는 수단은, 각 블록을 상기 버퍼들에 기록하고, 그리고
    상기 유닛들을 압축하는 수단은, 각 블록을 상기 버퍼들로부터 수신하는, 이미징 시스템.
  24. 제 20 항에 있어서,
    상기 유닛들을 압축하는 수단은, 각 블록에 대한 하나 이상의 비트스트림 세그먼트들을 생성하고,
    상기 비트스트림 세그먼트들 각각은 재시작 마커 및 하나 이상의 유닛 비트스트림들을 포함하고,
    상기 유닛 비트스트림들 각각은 상기 블록 내의 상기 유닛들 중 하나에 대한 압축된 비트스트림인, 이미징 시스템.
  25. 제 24 항에 있어서,
    상기 비트스트림 세그먼트들을 상기 이미지가 재생성될 수 있는 이미지 비트스트림으로 어셈블링하는 수단을 더 포함하는, 이미징 시스템.
  26. 컴퓨터 실행가능한 명령들을 포함하는 컴퓨터 판독가능 저장 매체로서,
    상기 명령들은 프로세서에 의해 실행시, 머신으로 하여금,
    이미지에 대한 원시 데이터를 상기 이미지에 대한 포맷팅된 데이터로 변환하는 것으로서, 상기 이미지에 대한 포맷팅된 데이터는 복수의 블록들로 분할되고, 상기 블록들은 메모리에 기록되는, 상기 변환하는 것;
    상기 포맷팅된 데이터의 블록들을 상기 메모리로부터 수신하는 것으로서, 블록 내의 상기 포맷팅된 데이터는 복수의 유닛들로 분할되고, 상기 블록들은 상기 메모리로부터 순차적으로 수신되는, 상기 포맷팅된 데이터의 블록들을 수신하는 것; 및
    상기 이미지를 회전시키기 위해 상기 유닛들 내의 복수의 픽셀들을 이동시킴으로써 상기 포맷팅된 데이터의 유닛들을 압축하는 것으로서, 제 1 블록에 대한 포맷팅된 데이터의 유닛들을 압축하는 것은 원시 데이터를 제 2 블록에 대한 포맷팅된 데이터로 변환하는 것과 동시에 일어나는, 상기 유닛들을 압축하는 것을 수행하도록 하는, 컴퓨터 판독가능 저장 매체.
  27. 이미지에 대한 원시 데이터를 상기 이미지에 대한 포맷팅된 데이터로 변환하는 단계로서, 상기 이미지에 대한 포맷팅된 데이터는 복수의 블록들로 분할되는, 상기 변환 단계;
    상기 블록들을 메모리에 기록하는 단계:
    포맷팅된 데이터의 상기 블록들을 상기 메모리로부터 수신하는 단계로서, 각각의 블록들 내의 상기 포맷팅된 데이터는 복수의 유닛들로 분할되고, 상기 블록들은 상기 메모리로부터 순차적으로 수신되는, 상기 수신 단계; 및
    상기 이미지를 회전시키기 위해 상기 유닛들 내의 복수의 픽셀들을 이동시킴으로써 상기 블록들 중 제 1 블록 내의 포맷팅된 데이터의 유닛들을 압축하는 단계로서, 상기 제 1 블록에 대한 포맷팅된 데이터의 유닛들을 압축하는 것은 원시 데이터를 제 2 블록에 대한 포맷팅된 데이터로 변환하는 것과 동시에 일어나는, 상기 압축 단계를 포함하는, 이미지 데이터 프로세싱 방법.
  28. 제 27 항에 있어서,
    상기 포맷팅된 데이터는 YCbCr 포맷이고,
    상기 포맷팅된 데이터의 유닛들을 압축하는 단계는 상기 YCbCr 데이터를 JPEG 인코딩하는 단계를 포함하는, 이미지 데이터 프로세싱 방법.
KR1020087020188A 2006-01-18 2007-01-17 이미징 시스템 내의 이미지들의 프로세싱 KR101012618B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US75984006P 2006-01-18 2006-01-18
US60/759,840 2006-01-18
US11/414,044 US7742644B2 (en) 2006-01-18 2006-04-27 Processing of images in imaging systems
US11/414,044 2006-04-27

Publications (2)

Publication Number Publication Date
KR20080095880A KR20080095880A (ko) 2008-10-29
KR101012618B1 true KR101012618B1 (ko) 2011-02-09

Family

ID=37903604

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087020188A KR101012618B1 (ko) 2006-01-18 2007-01-17 이미징 시스템 내의 이미지들의 프로세싱

Country Status (6)

Country Link
US (1) US7742644B2 (ko)
EP (1) EP1974539B1 (ko)
JP (4) JP2009524361A (ko)
KR (1) KR101012618B1 (ko)
CN (1) CN101371562B (ko)
WO (1) WO2007084928A1 (ko)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200726260A (en) * 2005-12-22 2007-07-01 Sunplus Technology Co Ltd Block decoding method and device capable of longitudinally decoding and outputting
JP2008053765A (ja) * 2006-08-22 2008-03-06 Sanyo Electric Co Ltd カメラ付通信端末
US8977064B2 (en) * 2008-02-13 2015-03-10 Qualcomm Incorporated Rotational transcoding for JPEG or other coding standards
US8194991B2 (en) * 2008-10-20 2012-06-05 Motorola Mobililty, Inc. Out-of-order coding
US20100104003A1 (en) * 2008-10-24 2010-04-29 Manufacturing Resources International Inc. System and method for securely transmitting video data
US8689343B2 (en) 2008-10-24 2014-04-01 Manufacturing Resources International, Inc. System and method for securely transmitting video data
US8098959B2 (en) * 2008-10-29 2012-01-17 Aptina Imaging Corporation Method and system for frame rotation within a JPEG compressed pipeline
US20100254617A1 (en) * 2009-04-01 2010-10-07 Qualcomm Incorporated Apparatus and method to rotate an image
CN101719985B (zh) * 2009-11-17 2012-12-26 无锡中星微电子有限公司 一种图像采集和处理的方法和装置
GB2496418A (en) * 2011-11-10 2013-05-15 Esaturnus Ultra low latency video communication.
US8639894B2 (en) * 2012-01-27 2014-01-28 Comcast Cable Communications, Llc Efficient read and write operations
CN104732486B (zh) * 2015-03-23 2017-10-03 海信集团有限公司 一种图片的显示方法及装置
US10319408B2 (en) 2015-03-30 2019-06-11 Manufacturing Resources International, Inc. Monolithic display with separately controllable sections
US10922736B2 (en) 2015-05-15 2021-02-16 Manufacturing Resources International, Inc. Smart electronic display for restaurants
US10269156B2 (en) 2015-06-05 2019-04-23 Manufacturing Resources International, Inc. System and method for blending order confirmation over menu board background
US10319271B2 (en) 2016-03-22 2019-06-11 Manufacturing Resources International, Inc. Cyclic redundancy check for electronic displays
CN107241302A (zh) * 2016-03-29 2017-10-10 展讯通信(上海)有限公司 图像数据传输方法、装置及终端
CN107241601B (zh) * 2016-03-29 2020-06-05 展讯通信(上海)有限公司 图像数据传输方法、装置及终端
US10313037B2 (en) 2016-05-31 2019-06-04 Manufacturing Resources International, Inc. Electronic display remote image verification system and method
WO2018031717A2 (en) 2016-08-10 2018-02-15 Manufacturing Resources International, Inc. Dynamic dimming led backlight for lcd array
JP6674701B2 (ja) * 2016-09-28 2020-04-01 ルネサスエレクトロニクス株式会社 画像処理モジュール、および半導体システム
US11729318B2 (en) * 2020-11-18 2023-08-15 Micron Technology, Inc. Directing communication of data from an image sensor
US12075073B2 (en) * 2021-05-19 2024-08-27 Pony Ai Inc. Efficient retrieval of sensor data
US11895362B2 (en) 2021-10-29 2024-02-06 Manufacturing Resources International, Inc. Proof of play for images displayed at electronic displays
CN116634167B (zh) * 2023-07-24 2023-11-07 中国科学院空天信息创新研究院 卫星成像数据存储及提取方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030215147A1 (en) * 2002-05-18 2003-11-20 Sick Ag Method for operating optoelectronic sensors and sensor
US20040027465A1 (en) * 2002-08-07 2004-02-12 Eastman Kodak Company Cameras, other imaging devices, and methods having non-uniform image remapping using a small data-set of distortion vectors
US6941019B1 (en) * 2000-05-10 2005-09-06 International Business Machines Corporation Reentry into compressed data

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5379070A (en) * 1992-10-02 1995-01-03 Zoran Corporation Parallel encoding/decoding of DCT compression/decompression algorithms
JPH09219780A (ja) * 1996-02-13 1997-08-19 Fuji Xerox Co Ltd 画像処理装置
JPH09247423A (ja) * 1996-03-04 1997-09-19 Canon Inc 画像処理装置およびその方法
JPH1075345A (ja) * 1996-06-26 1998-03-17 Fuji Xerox Co Ltd 画像処理装置
JPH1042286A (ja) * 1996-07-19 1998-02-13 Canon Inc 画像処理装置、方法及びコンピュータ可読メモリ装置
US5986672A (en) * 1997-10-14 1999-11-16 Minnesota, Mining And Manufacturing 3M Center Method and system for forming a rotated image on an imaging element using limited system resources
US6219457B1 (en) 1998-05-26 2001-04-17 Silicon Graphics, Inc. Method and system for decoding data encoded in a variable length code word
JP4281161B2 (ja) * 1999-07-28 2009-06-17 株式会社ニコン 電子カメラ
US6400471B1 (en) * 1999-02-11 2002-06-04 Flashpoint Technology, Inc. Flexible architecture for image processing
JP3661520B2 (ja) * 1999-09-10 2005-06-15 セイコーエプソン株式会社 画像処理装置、画像処理方法、画像形成装置及びプログラムを記録した記録媒体
EP1111904A3 (en) 1999-12-20 2005-03-16 Texas Instruments Incorporated Digital camera system and method
US6757439B2 (en) 2000-12-15 2004-06-29 International Business Machines Corporation JPEG packed block structure
JP2003092674A (ja) * 2001-09-18 2003-03-28 Fuji Xerox Co Ltd 画像処理装置および画像処理方法
US7149360B2 (en) 2002-01-09 2006-12-12 Hewlett-Packard Development Company, L.P. Method for using a JPEG engine to assist in efficiently constructing MPEG I-frames
JP2003299083A (ja) * 2002-03-29 2003-10-17 Minolta Co Ltd 符号化装置、データ変換装置、符号化プログラムおよびデータ変換プログラム
JP2003348355A (ja) * 2002-05-29 2003-12-05 Canon Inc 画像処理装置及びその制御方法
JP2004328571A (ja) * 2003-04-28 2004-11-18 Kyocera Mita Corp 画像処理装置
JP2005228073A (ja) * 2004-02-13 2005-08-25 Seiko Epson Corp 画像処理装置、マイクロコンピュータ及び電子機器

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6941019B1 (en) * 2000-05-10 2005-09-06 International Business Machines Corporation Reentry into compressed data
US20030215147A1 (en) * 2002-05-18 2003-11-20 Sick Ag Method for operating optoelectronic sensors and sensor
US20040027465A1 (en) * 2002-08-07 2004-02-12 Eastman Kodak Company Cameras, other imaging devices, and methods having non-uniform image remapping using a small data-set of distortion vectors

Also Published As

Publication number Publication date
JP2013055685A (ja) 2013-03-21
JP5362774B2 (ja) 2013-12-11
US7742644B2 (en) 2010-06-22
KR20080095880A (ko) 2008-10-29
CN101371562A (zh) 2009-02-18
CN101371562B (zh) 2011-11-30
EP1974539B1 (en) 2018-10-17
JP2011193530A (ja) 2011-09-29
JP2009524361A (ja) 2009-06-25
US20070165955A1 (en) 2007-07-19
JP2015165714A (ja) 2015-09-17
EP1974539A1 (en) 2008-10-01
WO2007084928A1 (en) 2007-07-26

Similar Documents

Publication Publication Date Title
KR101012618B1 (ko) 이미징 시스템 내의 이미지들의 프로세싱
EP0947954B1 (en) Image transformations in the compressed domain
US7394969B2 (en) System and method to compose a slide show
US8014597B1 (en) Method for efficient compression and decoding of single sensor color image data
US7965776B2 (en) Apparatus and method for processing and displaying pictures
US20100254617A1 (en) Apparatus and method to rotate an image
US20090290645A1 (en) System and Method for Using Coded Data From a Video Source to Compress a Media Signal
US20080137751A1 (en) Separate plane compression using plurality of compression methods including ZLN and ZLD methods
JP2010515397A (ja) ビデオハードウェアにおける画像圧縮のためのアーキテクチャ
JP5265910B2 (ja) 高速高画質連写機能を有する映像入力装置及びこれを用いた連写方法
US20110102627A1 (en) Image processing apparatus which sets a region of interest within a frame image and image pickup apparatus using the image processing apparatus
KR101577440B1 (ko) 디지털 이미지 처리 장치 및 방법
JP2010147508A (ja) 撮影装置及び再生装置
WO2004112396A1 (ja) 画像データの圧縮とサムネール画像の作成を行う電子機器、画像処理装置、データ構造
US20060275020A1 (en) Method and apparatus of video recording and output system
Parulski et al. The continuing evolution of digital cameras and digital photography systems
JP2003339003A (ja) 画像撮影配信装置および画像撮影配信方法
US20110286663A1 (en) Method And Apparatus Of Color Image Rotation For Display And Recording Using JPEG
JP2000152170A (ja) 映像信号記録再生装置及び映像信号記録再生方法
JPH01191596A (ja) 画像信号の直交変換符号化装置
JPH09326994A (ja) 電子カメラ

Legal Events

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

Payment date: 20131227

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20141230

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20151230

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20161229

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20181227

Year of fee payment: 9