KR101336127B1 - 이미지를 회전시키기 위한 장치 및 방법 - Google Patents

이미지를 회전시키기 위한 장치 및 방법 Download PDF

Info

Publication number
KR101336127B1
KR101336127B1 KR1020117025973A KR20117025973A KR101336127B1 KR 101336127 B1 KR101336127 B1 KR 101336127B1 KR 1020117025973 A KR1020117025973 A KR 1020117025973A KR 20117025973 A KR20117025973 A KR 20117025973A KR 101336127 B1 KR101336127 B1 KR 101336127B1
Authority
KR
South Korea
Prior art keywords
image
block
mcu
image data
value
Prior art date
Application number
KR1020117025973A
Other languages
English (en)
Other versions
KR20120016078A (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 KR20120016078A publication Critical patent/KR20120016078A/ko
Application granted granted Critical
Publication of KR101336127B1 publication Critical patent/KR101336127B1/ko

Links

Images

Classifications

    • 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
    • G06T3/602Rotation of whole images or parts thereof by block rotation, e.g. by recursive reversal or rotation
    • 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

Landscapes

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

Abstract

이미지 프로세싱 시스템 및 방법이 개시된다. 특정 실시형태에서, 이미지의 이미지 데이터를 수신하는 단계를 포함하는 방법이 개시된다. 이미지 데이터를 복수의 이미지 블록들을 포함한다. 방법은 또한, 이미지의 제 1 행의 제 1 블록의 제 1 DC 계수 값을 이미지의 제 2 행의 제 1 블록의 제 2 DC 계수 값과 비교함으로써 이미지의 회전 동작 동안 제 1 차분 DC 값을 계산하는 단계를 더 포함한다. 방법은, 회전 동작을 완료하기 전에 제 1 차분 DC 값을 메모리에 저장하는 단계를 더 포함한다.

Description

이미지를 회전시키기 위한 장치 및 방법{APPARATUS AND METHOD TO ROTATE AN IMAGE}
본 개시물은 일반적으로 이미지를 회전시키기 위한 장치 및 방법에 관한 것이다.
기술에서의 진보는 보다 작고 보다 강력한 컴퓨팅 디바이스를 초래하고 있다. 예를 들어, 현재 작고, 경량이며 사용자에 의해 용이하게 운반되는 다양한 휴대용 개인 컴퓨팅 디바이스들, 예컨대 개인 휴대 정보 단말기 (PDA), 무선 전화기, 및 페이징 디바이스가 존재한다. 휴대용 무선 전화기, 예컨대 셀룰러 전화기 및 인터넷 프로토콜 (IP) 전화기는 무선 네트워크들을 통해 음성 및 데이터 패킷들과 통신할 수 있다. 또한, 많은 이러한 무선 전화기는 본원에 포함되는 다른 유형의 디바이스들을 포함한다. 예를 들어, 무선 전화기는 또한, 디지털 스틸 카메라, 디지털 비디오 카메라, 디지털 리코더, 및 오디오 파일 플레이어를 포함할 수도 있다. 이러한 무선 전화기는 소프트웨어 애플리케이션, 예컨대 웹 브라우저 애플리케이션의 명령들을 실행시켜 인터넷에 접속할 수 있다. 따라서, 무선 전화기는 상당한 컴퓨팅 능력들을 포함할 수 있다.
디지털 카메라들을 포함하고 또는 디지털 카메라에 의해 캡처된 이미지 또는 비디오 데이터를 디스플레이하는 휴대용 개인 컴퓨팅 디바이스들에서 디지털 신호 프로세서 (DSP) 들, 이미지 프로세서들, 및 다른 프로세싱 디바이스들이 빈번하게 이용된다. 이러한 프로세싱 디바이스들은 비디오 및 오디오 기능들을 제공하고, 캡처된 이미지 데이터와 같은 수신된 데이터를 프로세싱하고, 또는 다른 기능들을 수행하기 위해 이용될 수 있다.
많은 이미징 애플리케이션에서, 이미지를 회전시키는 것이 바람직할 수도 있다. 예를 들어, 사용자에 의해 풍경 배향으로 주로 홀딩되지만 사용자가 카메라를 90 도 회전시켜 인물 사진 배향에서 이미지를 캡처할 수도 있도록 구성되는 카메라에 의해 이미지가 캡처된다. 일단 인물 사진 배향에서 이미지가 캡처되면, 이미지 데이터를 반대 방향으로 90 도 회전시키는 것이 바람직할 수도 있다. 이미지를 회전시키기 위해 이용된 종래의 회전 기술들은, 이 기술들이 회전 전후에 압축되지 않은 이미지의 하나 이상의 카피들의 일시적인 스토리지 및 압축된 이미지의 스토리지를 포함할 수도 있기 때문에, 메모리 집약적일 수도 있다.
본 개시물의 실시형태들은 이미지를 형성하기 위해 블록들 각각이 인코딩될 때 이미지의 블록들 또는 개별적인 유닛들을 회전시킴으로써 캡처된 이미지의 회전을 제공한다. 따라서, 오리지널 이미지 및 회전된 이미지의 적어도 일부분들이 동시에 저장될 것이기 때문에, 프로세싱 집약적이고 또한 메모리를 소모하는, 완전한 이미지를 캡처 및 인코딩하고 그 다음에 이미지를 회전시키는 대신에, 본 개시물의 실시형태들은 이미지가 인코딩될 때 단일의, 회전된 이미지를 생성한다. 회전된 이미지를 형성하도록 회전된 비트 스트림이 배열된다. 몇몇 실시형태에서, JPEG (Joint Photographic Expert Group) 인코더에 의해 회전 순서로 차분 인코딩이 수행된다. 다른 실시형태들에서, JPEG 재시작 (RST) 마커들은, 트랜스코더에 의한 효율적인 차분 인코딩을 인에이블하도록 패딩 비트들의 수를 표시하도록 오버라이팅된다.
특정 실시형태에서, 이미지 데이터가 복수의 이미지 블록들을 포함하는 이미지의 이미지 데이터를 수신하는 단계를 포함하는 방법이 개시된다. 방법은, 이미지의 제 1 행의 제 1 블록의 제 1 DC 계수 값을 이미지의 제 2 행의 제 1 블록의 제 2 DC 계수 값과 비교함으로써 이미지의 회전 동작 동안 제 1 차분 DC 값을 계산하는 단계를 더 포함한다. 방법은, 회전 동작을 완료하기 전에 제 1 차분 DC 값을 메모리에 저장하는 단계를 더 포함한다.
다른 특정 실시형태에서, 장치가 개시된다. 장치는 이미지의 이미지 데이터를 수신하도록 구성된 블록 회전 모듈을 포함한다. 이미지 데이터는 복수의 이미지 블록들을 포함한다. 장치는 또한, 블록 회전 모듈에 커플링되고, 이미지의 제 1 부분의 제 1 블록의 제 1 DC 계수 값을 이미지의 제 2 부분의 제 1 블록의 제 2 DC 계수 값과 비교함으로써 이미지의 회전 동작 동안 차분 DC 값을 계산하도록 구성된 차분 DC 계산 모듈을 포함한다.
다른 특정 실시형태에서, 장치가 개시된다. 장치는 이미지 블록을 갖는 이미지의 이미지 데이터를 수신하기 위한 수단을 포함한다. 장치는, 이미지의 제 1 부분의 제 1 블록의 제 1 DC 계수 값을 이미지의 제 2 부분의 제 1 블록의 제 2 DC 계수 값과 비교함으로써 이미지의 회전 동작 동안 제 1 차분 DC 값을 계산하기 위한 수단을 더 포함한다. 제 1 차분 DC 값을 계산하기 위한 수단은 이미지 데이터를 수신하기 위한 수단에 커플링된다.
다른 특정 실시형태에서, 컴퓨터 판독 가능 저장 매체가 개시된다. 컴퓨터 판독 가능 저장 매체는 이미지의 회전 동안 이미지의 제 1 부분의 제 1 블록의 제 1 DC 계수 값을 저장하도록 컴퓨터에 의해 실행 가능한 코드를 저장한다. 컴퓨터 판독가능 저장 매체는, 제 1 차분 DC 값을 계산하기 위해 이미지의 제 2 부분의 제 1 블록의 제 2 DC 계수 값을 제 1 DC 계수 값과 비교하도록 컴퓨터에 의해 실행 가능한 코드를 더 포함한다. 컴퓨터 판독가능 저장 매체는, 회전 동작을 완료하기 전에 제 1 차분 DC 값을 저장하도록 컴퓨터에 의해 실행 가능한 코드를 더 포함한다.
이미지를 회전시키기 위한 장치 및 방법의 실시형태들에 의해 제공된 하나의 특정 이점은 메모리의 보다 효율적인 이용이다.
도 1 은 회전 순서 차분 인코딩을 이용하도록 동작 가능한 회전 동작 모듈을 갖는 이미지 프로세싱 시스템을 포함하는 시스템의 특정 예시적인 실시형태의 블록도이다.
도 2 는 이미지 회전 시스템의 제 1 특정 실시형태의 블록도이다.
도 3 은 도 2 의 이미지 회전 시스템의 일부분의 블록도이다.
도 4 는 이미지 회전 시스템의 제 2 특정 실시형태의 블록도이다.
도 5 는 이미지 회전 시스템의 제 3 특정 실시형태의 블록도이다.
도 6 은 이미지 회전 시스템의 제 4 특정 실시형태의 블록도이다.
도 7 은 이미지 회전 시스템의 제 5 특정 실시형태의 블록도이다.
도 8 은 각종 이미지 회전각에 대한 블록 스캔 순서 및 블록 프로세스 순서의 특정 실시형태를 나타내는 도면이다.
도 9 는 수평 및 수직 이미지 플립에 대한 블록 스캔 순서 및 블록 프로세스 순서의 특정 실시형태를 나타내는 도면이다.
도 10 은 이미지를 회전하는 방법의 제 1 예시적인 실시형태의 흐름도이다.
도 11 은 이미지를 회전하는 방법의 제 2 예시적인 실시형태의 흐름도이다.
도 12 는 회전 순서 차분 인코딩을 이용하는 회전 동작 모듈을 포함하는 휴대용 통신 디바이스의 블록도이다.
도 13 은 회전 순서 차분 인코딩을 이용하는 회전 동작 모듈을 포함하는 이미지 센서 디바이스의 특정 실시형태의 블록도이다.
많은 이미징 애플리케이션에서 이미지의 회전이 바람직하다. 종래의 회전 기술들은 메모리 집약적일 수도 있고, 회전 전후에 압축된 이미지의 스토리지 및 압축되지 않은 이미지의 하나 이상의 카피들의 임시적인 스토리지를 포함할 수도 있다. 본원의 실시형태에 의해 개시된 회전 동작 동안 회전 순서 차분 인코딩을 이용함으로써, 보다 효율적인 메모리의 사용이 실현될 수도 있다. 예를 들어, 90 도 회전에 대한 이미지 블록들의 리오더링 (re-ordering) 은 회전된 이미지의 열을 형성하는 오리지널 이미지의 행을, 그리고 회전된 이미지의 행을 형성하는 오리지널 이미지의 열을 초래할 수도 있다. 회전 동작 동안 회전 순서로 (즉, 행을 따르기 보다는 열을 따라) 이미지 데이터를 차분으로 인코딩함으로써, 블록 리오더링 후에 이후의 차분 인코딩 동작이 수행될 필요가 없다. 따라서, 예컨대 트랜스코더에 의해, 인코딩 및 메모리에 저장한 후에 DC 계수들을 디코딩 및 검색하기 위한 추가의 프로세싱이 방지될 수도 있다.
도 1 을 참조하면, 회전 순서 차분 인코딩을 이용하는 회전 동작 모듈을 갖는 이미지 프로세싱 시스템을 포함하는 시스템의 특정 예시적인 실시형태가 도시되고, 일반적으로 100 으로 표기된다. 시스템 (100) 은 이미징 프로세싱 시스템 (130) 에 커플링된 이미지 캡처 디바이스 (101) 를 포함한다. 이미지 프로세싱 시스템 (130) 은 이미지 스토리지 디바이스 (140) 에 커플링된다. 이미지 프로세싱 시스템 (130) 은 이미지 캡처 디바이스 (101) 로부터 이미지 데이터 (109) 를 수신하고, 이미지 데이터 (109) 에 의해 표현된 이미지를 회전시키기 위한 회전 동작을 수행하도록 구성된다. 특정 실시형태에서, 시스템 (100) 은 제한된 프로세싱 리소스들을 이용하여 실시간 이미지 프로세싱을 수행하도록 구성된 휴대용 전자 디바이스에서 구현된다.
특정 실시형태에서, 이미지 캡처 디바이스 (101) 는 카메라, 예컨대 비디오 카메라 또는 스틸 카메라이다. 이미지 캡처 디바이스 (101) 는 오토 포커스 모듈 (104) 및 오토 노출 모듈 (106) 에 반응하는 렌즈 (102) 를 포함한다. 센서 (108) 는 렌즈 (102) 를 통해 광을 수신하고, 렌즈 (102) 를 통해 수신된 이미지에 응답하여 이미지 데이터 (109) 를 생성하도록 커플링된다. 오토 포커스 모듈 (104) 은 센서 (108) 에 반응하고, 렌즈 (102) 의 포커싱을 자동으로 제어하도록 구성된다. 오토 노출 모듈 (106) 은 또한, 센서 (108) 에 반응하고, 이미지의 노출을 제어하도록 구성된다. 특정 실시형태에서, 센서 (108) 는, 인접한 검출기들이 상이한 컬러의 광을 검출하도록 배열되는 다수의 검출기들을 포함한다. 예를 들어, 수신된 광은, 각각의 검출기가 레드, 그린, 또는 블루 인커밍 광을 수신하도록 필터링될 수도 있다.
이미지 캡처 디바이스 (101) 는 이미지 프로세싱 시스템 (130) 의 입력 (131) 에 이미지 데이터 (109) 를 제공하도록 커플링된다. 이미지 프로세싱 시스템 (130) 은 이미지 데이터 (109) 에 반응하고, 디모자이크 (demosaic) 모듈 (110) 을 포함한다. 이미지 프로세싱 시스템 (130) 은 또한, 감마 모듈 (112) 을 포함하여 디모자이크 모듈 (110) 로부터 수신되는 데이터로부터 감마 보정된 데이터를 생성한다. 컬러 캘리브레이션 모듈 (114) 은 감마 보정된 데이터 상에서 캘리브레이션을 수행하도록 커플링된다. 컬러 스페이스 전환 모듈 (116) 은 컬러 캘리브레이션 모듈 (114) 의 출력을 컬러 스페이스로 전환하도록 커플링된다. 압축 및 저장 모듈 (120) 은 컬러 스페이스 전환 모듈 (116) 의 출력을 수신하고, 압축된 출력 데이터 (121) 를 이미지 스토리지 디바이스 (140) 에 저장하도록 커플링된다. 회전 동작 모듈 (122) 은 회전 순서 차분 인코딩을 이용하여 이미지 데이터 (109) 를 통해 수신된 이미지 상에서 회전 동작을 수행하도록 커플링된다.
이미지 스토리지 디바이스 (140) 는 출력 (132) 에 커플링되고, 압축된 출력 데이터 (121) 를 수신 및 저장하도록 구성된다. 이미지 스토리지 디바이스 (140) 는 임의의 유형의 스토리지 매체, 예컨대 하나 이상의 디스플레이 버퍼, 레지스터, 캐시, 플래지 메모리 엘리먼트, 하드 디스크, 임의의 다른 스토리지 디바이스, 또는 이들의 임의의 조합을 포함할 수도 있다.
동작 동안, 회전 동작 모듈 (122) 은 입력 이미지 데이터 (109) 의 회전을 효율적으로 수행할 수도 있다. 예를 들어, 회전 동작 모듈 (122) 은 도 2 내지 도 10 에 대하여 설명될 이미지 회전을 수행할 수도 있다. 회전 동작 모듈 (122) 은 인코더에 의해 인코딩된 이미지의 최소 코딩된 유닛 (MCU) 들을 리오더링하고, MCU 의 리오더링 및 이미지 데이터의 회전이 인코딩된 이미지의 회전된 버전을 생성하도록 MCU 내의 이미지 데이터를 회전시킬 수도 있다. 인코딩된 이미지의 회전된 버전을 생성한 후에, 회전 동작 모듈 (122) 은 인코딩된 이미지의 회전된 버전을 이미지 스토리지 디바이스 (140) 로 출력할 수도 있다. MCU 들은 JPEG (Joint Photographic Expert Group) 표준에 따라 코딩된 이산 코사인 변환 (DCT) 의 블록들을 포함할 수도 있다.
회전 동작 모듈 (122) 은 복수의 이미지 블록들을 포함하는 이미지 데이터를 수신할 수도 있다. 회전 동작 모듈 (122) 은 제 1 차분 DC 값을 계산하도록 구성된다. 예를 들어, 회전 동작 모듈 (122) 은, 이미지의 회전 동작 동안 이미지의 제 1 부분의 제 1 블록의 제 1 DC 계수 값을 이미지의 제 2 부분의 제 1 블록의 제 2 DC 계수 값과 비교하고, 회전 동작을 완료하기 전에 제 1 차분 DC 값을 저장할 수도 있다. 일 특정 예시적인 실시형태에서, 이미지 데이터 (109) 의 제 1 부분 및 제 2 부분은 이미지 데이터 (109) 의 제 1 행 및 제 2 행을 각각 포함할 수도 있다. 다르게는, 제 1 부분 및 제 2 부분은 이미지 데이터 (109) 의 제 1 열 및 제 2 열, 또는 이미지 데이터 (109) 의 몇몇 다른 계층 또는 세그먼트를 포함할 수도 있다.
도 2 를 참조하면, 회전 동작을 수행하도록 구성된 인코더를 포함하는 시스템의 특정 예시적인 실시형태가 도시되고, 일반적으로 200 으로 표기된다. 시스템 (200) 은 인코더 (202) 에 커플링된 센서 (210) 를 포함한다. 인코더 (202) 는 메모리 (216) 에 커플링된다. 인코더 (202) 는 또한, 버퍼, 예컨대 행 버퍼 (204) 에 커플링된다. 특정 실시형태에서, 인코더 (202) 는 도 1 의 회전 동작 모듈 (122) 의 일부이고, 회전된 이미지를 생성하기 위해 이미지에서 블록들을 리오더링하기 위한 트랜스코딩 동작을 수행하도록 구성된다.
인코더 (202) 는 이산 코사인 변환 (DCT) 모듈 (212), 블록 회전 모듈 (213), 행 버퍼 파퓰레이트 (populate) 모듈 (206), 차분 DC 계산 로직 모듈 (208), 엔트로피 인코더 모듈 (214), 및 배향 로직 모듈 (218) 을 포함한다. 배향 로직 모듈 (218) 은 센서 (210) 에 커플링된다. DCT 모듈 (212) 은 블록 회전 모듈 (213) 에 커플링된다. 행 버퍼 파퓰레이트 모듈 (206) 은 블록 회전 모듈 (213) 에 커플링된다. 차분 DC 계산 로직 모듈 (208) 은 행 버퍼 파퓰레이트 모듈 (206) 에 커플링된다. 행 버퍼 (204) 는 행 버퍼 파퓰레이트 모듈 (206) 에 커플링되고, 차분 DC 계산 로직 모듈 (208) 에 커플링된다. 엔트로피 인코더 (214) 는 차분 DC 계산 로직 모듈 (208) 에 커플링된다. 전술된 바와 같이, 회전될 이미지 데이터의 일부분들은 이미지 데이터의 행, 열, 또는 다른 부분들을 포함할 수도 있다. 그러나, 본 설명의 목적을 위해, 일부분들이 이미지 데이터의 행들을 구성하는 예가 이용될 것이다. 따라서, 차분 DC 계산 로직 모듈 (208) 은 열 버퍼 파퓰레이트 모듈 또는 다른 버퍼 파퓰레이트 모듈 보다는, 행 버퍼 파퓰레이트 모듈 (206) 에 커플링된다.
인코더 (202) 는 센서 (210) 로부터 이미지 데이터 (209) 를 수신하고, 이미지 데이터 (209) 로서 수신된 이미지를 회전시키기 위해 회전 동작을 수행하도록 구성된다. 전술된 바와 같이, 회전은, 사용자가 풍경 또는 인물 사진 배향으로 카메라 디바이스를 배향시키는지 여부에 관계 없이 이미지 데이터가 동일한 스캔-라인 순서로 생성되는 디지털 카메라 디바이스들에서 유리할 수도 있다. 이들 배향들 중 적어도 하나에 있어서, 캡처된 이미지의 구십 (90) 도, 백팔십 (1800 도, 또는 이백칠십 (270) 도 회전은 이미지를 저장하기 전에 바람직할 수도 있다.
특정 실시형태에서, 인코더 (202) 는 JPEG (Joint Photographic Expert Group) 인코더이다. 인코더 (202) 는 배향 로직 모듈 (218) 을 포함한다. 배향 로직 모듈 (218) 은 센서 (210) 의 배향을 결정하고, 회전 신호 (220) 를 생성하도록 구성된다. 센서 (210) 는 회전 신호 (220) 에 반응하여, 이미지 데이터 (209) 를 생성하기 위한 스캔 순서를 조정할 수도 있고, 회전 신호 (220) 는 또한, 인코더 (202) 의 입력에서 수신된 이미지 데이터 (209) 와 함께 포함될 수도 있다.
특정 실시형태에서, 이미지 데이터 (209) 는 복수의 최소 코딩된 유닛 (MCU) 들을 포함한다. DCT 모듈 (212) 은 DCT 계수들의 블록들을 생성하도록 구성된다. MCU 는 이산 코사인 변환을 통해 이미지의 픽셀들의 블록들로부터 코딩된 DCT 계수들의 블록들을 포함할 수도 있다. DCT 계수들의 블록들은, 도 3 에 대하여 설명될 루마 (Y) 블록들 및 크로마 (Cr, Cb) 블록들을 포함할 수도 있다. 블록 회전 모듈 (213) 은 DCT 계수들의 블록들을 수신하고, 블록 회전된 데이터를 생성하도록 구성된다. 행 버퍼 파퓰레이트 모듈 (206) 은 블록 회전된 데이터를 이용하여 행 버퍼 파퓰레이트 동작을 수행하도록 구성된다. 행 버퍼 (204) 는 행 버퍼 파퓰레이트 모듈 (206) 의 출력을 수신하도록 구성된다. 엔트로피 인코더 모듈 (214) 은 차분 DC 계산 로직 모듈 (208) 의 출력을 압축하도록 커플링된다. 메모리 (216) 는, 제 1 차분 DC 값을 갖는 제 1 블록 및 제 2 차분 DC 값을 갖는 제 2 블록을 포함하는, 엔트로피 인코더 모듈 (214) 에 의해 생성된 엔트로피 인코딩된 블록들을 저장하도록 구성된다.
특정 실시형태에서, 행 버퍼 파퓰레이트 모듈 (206), 행 버퍼 (204), 및 차분 DC 계산 모듈 (209) 은 이미지의 각각의 특정 열에 대해 가장 최근에 코딩된 DC 계수 정보를 저장하도록 상호동작한다. 각 열에 대해 가장 최근에 코딩된 DC 계수 정보는 차분 DC 계산 모듈 (208) 에 의해 검색되고, 열의 새로운 MCU 가 센서 (210) 의 스캔 순서에 따라 수신될 때 행 버퍼 파퓰레이트 모듈 (206) 에 의해 업데이트된다. 행 버퍼 파퓰레이트 모듈, 행 버퍼 (204), 및 차분 DC 계산 로직 모듈 (208) 의 동작의 예가 도 3 에 도시된다.
이미지의 각 열에 대한 이전의 DC 계수 값을 저장하기 위해 행 버퍼 (204) 를 이용함으로써, 인코더 (202) 는 구십 (90) 도 또는 이백칠십 (270) 도 회전에 대해 회전 순서 차분 인코딩을 수행할 수 있다. 예를 들어, 스캔 순서 차분 인코딩 동작은 특정 행의 다음 블록의 차분 값 (differential value) 을 결정하기 위해 특정 행의 이전 블록의 DC 값을 이용할 수도 있는 한편, 구십 (90) 도 및 이백칠십 (270) 도 회전에 대한 회전 순서 차분 인코딩 동작은 특정 블록과 동일한 열의 이전 블록에 기초하여 차분 값들을 생성한다. 따라서, 행 버퍼 (204) 는 이미지의 각 열의 가장 최근에 인코딩된 블록에 대응하는 데이터를 유지하여 이미지의 각 열을 따른 차분 인코딩을 인에이블한다.
예를 들어, 시스템 (200) 이 풍경 배향으로 사용자에 의해 주로 홀딩되도록 구성된 카메라에서 구현되지만 사용자가 이미지를 캡처하기 위해 인물 사진 배향으로 카메라를 구십 (90) 도 회전시키는 실시형태에서, 오리지널 이미지의 이미지 블록들 (250) 의 다수의 행 및 다수의 열은 구십 (90) 도 회전될 수도 있다. 특정 실시형태에서, 사용자가 카메라의 뷰파인더를 통해 보는 이미지의 일부분이 이미지 블록 (250) 으로서 나타날 수도 있다. 카메라가 구십 (90) 도 회전될 때, 센서 (210) 에서 캡처된 이미지는, 이미지 블록 (252) 에 의해 나타난 바와 같이 오리지널 이미지의 행들이 회전된 이미지의 열들을 형성하도록 구십 (90) 도 회전될 수도 있다. 회전 동작 동안 회전 순서 (즉, 행을 따르기 보다는 열을 따라) 로 이미지를 차분으로 인코딩한 후에, 이미지 블록 (260) 에 의해 도시된 바와 같이 이미지는 오리지널 이미지 순서로 리오더링될 수도 있다.
예시의 목적을 위해 그리고 특정 실시형태에서, 회전 이전의 오리지널 이미지의 이미지 블록들 (250) 의 행 (1) 의 이미지 블록들은 A1A2A3 일 수도 있다. 행 (2) 의 이미지 블록들은 B1B2B3 일 수도 있다; 행 (3) 의 이미지 블록들은 C1C2C3 일 수도 있다; 그리고 행 (4) 의 이미지 블록들은 D1D2D3 일 수도 있다. 설명의 편의를 위해 "이미지 블록들" 로서 도시 및 설명되었으나, 다른 실시형태들에서 각각의 "이미지 블록" 은 이미지의 하나 이상의 블록들을 나타낼 수도 있다. 예를 들어, JPEG 인코딩을 이용하는 실시형태에서, 각각의 "이미지 블록" 은 도 3 에 대하여 논의된 바와 같이 루마 (Y) 블록들 및 크로마 (Cr, Cb) 블록들과 같은 다수의 블록들을 포함하는 MCU 를 나타낼 수도 있다. 구십 (90) 도 회전에 대한 이미지 블록들 (252) 의 리오더링은 회전된 이미지의 열들을 형성하는 오리지널 이미지의 행들, 및 회전된 이미지의 행들을 형성하는 오리지널 이미지의 열들을 초래할 수도 있다. 예를 들어, 회전된 이미지의 행 (1) 의 이미지 블록들은 A1B1C1D1 일 수도 있다; 회전된 이미지의 행 (2) 의 이미지 블록들은 A2B2C2D2 일 수도 있다; 그리고 행 (3) 의 이미지 블록들은 A3B3C3D3 일 수도 있다. 구십 (90) 도 회전에 대한 이미지 블록들의 결과의 회전된 순서가 260 에서 도시된다.
전술된 바와 같이 인코더 (202) 에 의해 수행된 바와 같은, 트랜스코딩 동작 (258) 후에, 이미지 블록들은 오리지널 이미지 순서로 리오더링될 수도 있고, 차분으로 인코딩된 데이터 (즉, 행 1: A1Adiff12Adiff23; 행 2: B1Bdiff12Bdiff23; 행 3 : C1Cdiff12Cdiff23; 행 4: D1Ddiff12Ddiff23) 를 포함할 수도 있다. 예를 들어, Adiff12 는 제 1 행의 제 1 블록 (A1) 의 하나 이상의 DC 계수 값들과 제 2 행의 제 1 블록 (A2) 의 하나 이상의 DC 계수 값들 간의 차이에 대응한다; Adiff23 은 제 2 행의 제 1 블록 (A1) 의 하나 이상의 DC 계수 값들과 제 2 행의 제 1 블록 (A3) 의 하나 이상의 DC 계수 값들 간의 차이에 대응한다. 예시하기 위해서, DC 계수 값들은, 도 3 에 대하여 논의된 바와 같이, 제 1 행의 제 1 이미지 블록 (A1) 내의 특정 루마 및 크로마 블록들, 및 제 2 행의 제 1 이미지 블록 (A2) 내의 특정 루마 및 크로마 블록들의 DC 계수 값들에 대응할 수도 있다.
회전 동작 동안 회전 순서로 (즉, 행을 따르기 보다는 열을 따라) 이미지 데이터를 차분으로 인코딩함으로써, 블록 리오더링 후에 이후의 차분 인코딩 동작이 수행될 필요가 없다. 따라서, 인코딩 및 메모리에 저장한 후에 DC 계수들을 디코딩 및 검색하기 위한 추가의 프로세싱이 방지될 수도 있다. 특정 실시형태에서, 트랜스코딩 동작 (258) 은 인코더 (202) 에 의해 수행된다. 다른 특정 실시형태에서, 트랜스코딩 동작 (258) 은 별개의 트랜스코더 모듈에 의해 수행될 수도 있다.
도 3 을 참조하면, 도 2 의 이미지 회전 시스템의 일부분의 특정 실시형태가 도시되고, 일반적으로 300 으로 표기된다. 시스템 (300) 은 블록 회전 모듈 (213), 행 버퍼 파퓰레이트 모듈 (206), 행 버퍼 (204), 및 차분 DC 계산 로직 모듈 (208) 을 포함한다. 블록 회전 모듈 (213), 행 버퍼 (204), 및 차분 DC 계산 모듈 (208) 의 콘텐츠들은 구십 (90) 도 이미지 회전에 대해 도시된다.
블록 회전 모듈 (213) 은 수신된 MCU 의 각 블록 내의 픽셀 변환 데이터를 회전시킨다. 블록 회전 모듈 (213) 은, MCUi , j 로서 나타난 바와 같이, 이미지의 i 번째 행 및 j 번째 열에 대응하는 데이터를 포함하는 것으로 도시된다. 특정 실시형태에서, MCUi ,j 는, 4 개의 루마 (Y) 블록들 Y0 (302), Y1 (304), Y2 (306), Y3 (308), 및 2 개의 크로마 블록들 Cr (310) 및 Cb (312) 을 포함하는, 복수의 블록들을 포함한다.
행 버퍼 (204) 는 이미지의 복수의 특정 열들에 대한 가장 최근에 코딩된 DC 계수 값들을 포함한다. 도시된 바와 같이, 행 버퍼 (204) 는 MCUi -1,j-i (320), MCUi -1,j (322), 및 MCUi -1,j+1 (324) 로 표시된, MCUi ,j 에 대한 이미지의 이전 행의 이전, 동일한, 및 다음 열들의 MCU 들에 대한 가장 최근에 코딩된 DC 계수 값들을 포함한다. 예를 들어, 행 버퍼 엔트리 MCUi -1,j-1 (320) 는 MCU (320) 의 마지막 프로세싱된 루마 블록 (Yi -1,j-1 DC) 의 DC 계수 값, 마지막 프로세싱된 크로마 레드 블록 (Cri-1,j-1DC) 의 DC 계수 값, 및 마지막 프로세싱된 크로마 블루 블록 (Cbi-1,j-1DC) 의 DC 계수 값을 포함한다. 행 버퍼 엔트리 MCUi -1,j (322) 는 MCU (322) 의 마지막 프로세싱된 루마 블록 (Yi -1, jDC) 의 DC 계수 값, 마지막 프로세싱된 크로마 레드 블록 (Cri -1, jDC) 의 DC 계수 값, 및 마지막 프로세싱된 크로마 블루 블록 (Cbi -1, jDC) 의 DC 계수 값을 포함한다. 행 버퍼 엔트리 MCUi -1,j+1 (324) 는 MCU (324) 의 마지막 프로세싱된 루마 블록 (Yi -1,j+1 DC) 의 DC 계수 값, 마지막 프로세싱된 크로마 레드 블록 (Cri -1,j+1 DC) 의 DC 계수 값, 및 마지막 프로세싱된 크로마 블루 블록 (Cbi -1,j+1DC) 의 DC 계수 값을 포함한다.
차분 DC 계산 모듈 (208) 은 회전 순서로 각각의 MCU 의 DC 계수 값들을 차분으로 인코딩하도록 구성된다. 예를 들어, 차분 DC 계산 모듈 (208) 은 행 버퍼 (204) 에 저장된 특정 열에 대한 이전 MCU 의 DC 계수 값들을 액세스하여 열의 현재 MCU 에 대한 제 1 차분 DC 값을 인코딩하도록 구성된다. 도시된 바와 같이, 차분 DC 계산 모듈 (208) 은 루마 블록들 (340, 342, 344, 346) 및 크로마 블록들 (348 및 350) 을 포함하는, 블록 회전 모듈 (213) 로부터 MCUi , j 의 차분으로 코딩된 버전을 포함한다.
동작 동안, 행 버퍼 파퓰레이트 모듈 (206), 행 버퍼 (204), 및 차분 DC 계산 모듈 (208) 은 각각의 이미지의 특정 열에 대해 Y, Cr, 및 Cb 의 가장 최근에 코딩된 DC 계수를 저장하도록 상호동작한다. 각 열에 대해 가장 최근에 코딩된 DC 계수는 차분 DC 계산 모듈 (208) 에 의해 검색되고, 열의 새로운 MCU 가 이미지 센서 (미도시) 의 스캔 순서에 따른 수신되기 때문에 행 버퍼 파퓰레이트 모듈 (206) 에 의해 업데이트된다.
예를 들어, 특정 MCU 의 블록들의 블록 프로세싱 순서는 도 8 에 도시된 바와 같은 회전각에 기초할 수도 있다. 이미지 센서가 회전되지 않을 때 (예를 들어, 영 (0) 도 회전), MCUi , j 의 블록들을 차분으로 인코딩하기 위한 블록 프로세싱 순서는 다음과 같이 좌측-우측, 상부-하부일 수도 있고: Y3last -> Y0 -> Y1 -> Y2 -> Y3 -> Y0next; Crlast -> Cr -> Crnext; Cblast -> Cb -> Cbnext, 여기서 마지막 및 다음은 이미지의 동일한 행을 따라 각각 이전 MCU 및 다음 MCU 를 가리킨다.
구십 (90) 도 회전에 있어서, 루마 및 크로마 (예를 들어, Y, Cr, Cb) 에 대한 블록 프로세싱 순서는 도 8 에 도시된 바와 같이, 상부-하부, 우측-좌측일 수도 있다. 차분 DC 값은 구십 (90) 도 회전에 대한 블록 프로세싱 순서에 따라 특정 MCU 의 블록들 각각에 대해 계산된다. 예를 들어, 구십 (90) 도에 대한 블록 프로세싱 순서는 Y2last -> Y1 -> Y3 -> Y0 -> Y2 -> Y1next 이다.
영 (0) 도 회전 및 구십 (90) 도 회전에 대해 전술된 스캔 순서는 개별적으로 인코딩되는 각각의 루마 및 크로마 블록에 적용된다. 다른 실시형태에서, 루마 및 크로마 블록은 인터리빙된 방식으로 인코딩될 수도 있다. 예를 들어, 2 개의 수평 블록 2 개의 수직 블록 (H2V2) MCU 에서의 영 (0) 도 회전은 다음과 같이 인코딩될 수도 있다: Y0, Y1, Y2, Y3, Cb, Cr, Y0next, Y1next, Y2next, Y3next, Cbnext, Crnext 등.
MCUi , j 의 루마 블록들 (340, 342, 344, 및 346) 에 대한 결과의 차분 DC 값들은 다음과 같다: 루마 블록 (342) 에 대해, Y1 의 DC 값에서 열의 이전 MCU (예를 들어, 이전 행) 의 마지막 Y 블록의 DC 계수 값을 차감함으로써 차분 DC 값이 계산된다. 열의 이전 MCU 의 마지막 Y 블록은 행 버퍼 (204) 의 MCUi -1,j (322) 이다. 구십 (90) 도 회전에 대해, 루마 블록 (342) 에 대한 차분 DC 값은 Y1, 또는 Y1diff = Y1DC - Yi -i,jDC DC 계수 값에서 차감된 (i-1) 번째 행, j 번째 열의 Y2 블록의 DC 계수 값이다. 루마 블록 (346) 에 대한 차분 DC 값은 Y1, 또는 Y3diff = Y3DC - Y1DC DC 계수 값에서 차감된 Y3 의 DC 계수 값을 차감함으로써 계산된다. 루마 블록 (340) 에 대한 차분 DC 값은 Y0, 또는 Y0diff = Y0DC - Y3DC DC 계수 값에서 Y3 의 DC 계수 값을 차감함으로써 계산된다. 루마 블록 (344) 에 대한 차분 DC 값은 Y0, 또는 Y2diff = Y2DC - Y0DC DC 계수 값에서 Y2 의 DC 계수 값을 차감함으로써 계산된다. 크로마 레드 (Cr) 블록 (348) 에 대한 차분 DC 값은 Cr, 또는 Crdiff = Cr - Cri -1, jDC 의 DC 계수 값에서 열의 이전 MCU (예를 들어, 이전 행) 의 Cr 블록의 DC 계수를 차감함으로써 계산된다. 크로마 블루 (Cb) 블록 (350) 에 대한 차분 DC 값은 Cb, 또는 Cbdiff = Cb - Cbi -1, jDC 의 DC 계수 값에서 열의 이전 MCU (예를 들어, 이전 행) 의 마지막 Cb 블록의 DC 계수를 차감함으로써 계산된다.
인코딩 후에, 행 버퍼 파퓰레이트 모듈 (206) 은 MCUi , j 로부터 DC 계수 값들을 갖는 행 버퍼 (204) 를 파퓰레이팅한다. 구십 (90) 도 회전에 대해 도시된 바와 같이, 마지막 프로세싱된 블록들의 DC 계수 값들, 예컨대 Y2 (306) 의 DC 계수 값, Cr (310) 의 DC 계수 값, 및 Cb (312) 의 DC 계수 값은 MCUi -1,j (322) 의 값들을 대체할 수도 있다. 행 버퍼 (204) 는 따라서, 이미지가 회전 순서 차분 인코딩을 인에이블하도록 프로세싱될 때 업데이트될 수도 있다.
회전 동작 동안 회전 순서로 (즉, 행을 따르기보다는 열을 따라) 이미지 데이터를 차분으로 인코딩함으로써, 블록 리오더링 후에 나중의 차분 인코딩 동작이 수행될 필요가 없다. 따라서, 인코딩 및 메모리에 저장 후에 DC 계수들을 디코딩 및 검색하기 위한 추가의 프로세싱이 방지될 수도 있다.
구십 (90) 도 회전에 대한 예가 전술되었으나, 회전 동안 회전 순서로 이미지 데이터를 차분으로 인코딩하는 것은 또한, 도 8 및 도 9 에 도시된 바와 같이, 백팔십 (180) 도 회전에 대해, 이백칠십 (270) 도 회전에 대해, 뿐만 아니라 이미지의 수직 또는 수평 플립들에 대해 이용될 수도 있다.
도 4 를 참조하면, 이미지 회전 시스템의 특정 실시형태가 도시되고, 일반적으로 400 으로 표기된다. 시스템 (400) 은 JPEG 인코더 (408) 에 커플링된 이미지 캡처 디바이스 (402), JPEG 인코더 (408) 에 커플링된 메모리 (410), 및 메모리 (410) 에 커플링된 회전 트랜스코더 (414) 를 포함한다. 이미지 캡처 디바이스 (402) 는 이미지를 캡처하도록 구성된 이미지 센서 (404) 를 포함한다. 이미지 캡처 디바이스 (402) 의 리드아웃 (readout; 406) 이 JPEG 인코더 (408) 에 제공된다.
JPEG 인코더 (408) 는, 독립적으로 디코딩가능한 압축된 데이터의 피스들을 분리하기 위해 코드들을 삽입함으로써 캡처된 이미지의 회전된 영역들을 독립적으로 디코딩 가능한 압축된 데이터의 피스 또는 최소의 코딩된 유닛 (MCU) 들의 피스로 인코딩한다. JPEG 인코딩된 이미지 데이터에 있어서, 이들 코드들은 재시작 (RST) 마커이다. JPEG 이미지는 마커들의 시퀀스를 포함하고, 마커들 각각은 OxFF 바이트 다음에 어느 종류의 마커인지를 나타내는 바이트로 시작한다. RST 마커는 식별 가능한 비트 패턴, 예컨대 OxFFDn 를 포함할 수도 있다. RST 마커에서, 블록-블록 예측 변수들이 리셋되고, 비트 스트림은 바이트 바운더리로 동기화된다.
압축된 회전된 이미지 데이터는 순서가 뒤바뀌어 저장될 수도 있고, 그 다음에 리오더 프로세스는, 전통적인 디코더가 회전된 이미지 데이터를 정확하게 재구성하고, 정확하게 오더링된 압축된 이미지 데이터를 출력하도록 독립적으로 디코딩가능한 피스들을 정확한 순서로 오더링할 수도 있다. 도 4 에 도시된 바와 같이, JPEG 인코더 (408) 는 1 의 RST 마커 간격을 적용한다. RST 값을 1 로 설정함으로써, 인코딩된 JPEG 파일 (412) 에서의 각각의 MCU 는 별개의 디코딩 가능한 유닛이다. 인코딩된 JPEG 파일 (412) 이 메모리 (410) 에 저장된다.
동작 동안, JPEG 인코더 (408) 는 JPEG 인코더 (408) 에 의해 생성된 MCU 를 회전시키지만, MCU 순서를 변화시키지 않는다. JPEG 인코더 (408) 의 출력은 JPEG 파일 (412) 로서 메모리 (410) 에 저장된다. JPEG 파일 (412) 은 엔트로피 인코딩될 수도 있다. 회전 트랜스코더 (414) 는 JPEG 파일 (412) 의 MCU 들을 회전 순서로 리오더링하고, 이 결과를 회전된 이미지 (416) 의 JPEG 파일로서 메모리 (410) 에 저장한다.
특정 실시형태에서, JPEG 인코더 (408) 및 회전 트랜스코더 (414) 는 MCU 들 내의 이미지 데이터 및 MCU 들의 순서를 각각 회전시킨다. MCU 내의 이미지 데이터의 회전 및 MCU 의 리오더링은 인코딩된 이미지의 회전된 버전을 생성한다. 인코딩된 이미지의 회전된 버전은 회전된 이미지 (416) 의 JPEG 파일로서 메모리 (410) 에 저장될 수 있다. 회전 트랜스코더 (414) 는 메모리 (410) 로부터 인코딩된 JPEG 파일 (412) 을 페치 (fetch) 할 수도 있고, 인코딩된 이미지는 엔트로피 코딩 기술을 통해 코딩될 수도 있다.
RST 마커들이 MCU 회전을 이용하는 결과의 JPEG 비트 스트림에서 식별 가능하기 때문에, 회전 트랜스코더 (414) 는 각각의 MCU 를 개별적으로 위치시킬 수 있다. 각각의 MCU 는 그 다음에 인덱싱될 수 있고, MCU 들은, MCU 들이 오리지널 인코딩된 이미지에 대하여 회전된 순서로 위치하도록 인덱싱에 기초하여 리오더링된 방식으로 페치될 수 있다.
도 5 를 참조하면, 이미지 회전 시스템의 다른 특정 실시형태가 도시되고, 일반적으로 500 으로 표기된다. 시스템 (500) 은 인코더, 예컨대 트랜스코더 (509) 에 커플링된 JPEG 인코더 (508) 를 포함한다. 트랜스코더 (509) 는 리오더링 모듈 (514) 에 커플링된 인덱스 모듈 (512) 을 포함한다. JPEG 인코더를 이용하는 특정 실시형태에서, 인덱스 모듈 (512) 은 RST 를 이용하여 JPEG 인코더 (508) 로부터 수신된 JPEG 비트 스트림의 MCU 들을 인덱싱하고, 리오더링 모듈 (514) 은 메모리 (미도시) 로부터의 MCU 비트 스트림을 회전 순서로 페치한다.
JPEG 인코더 (508) 는 이미지 데이터 (501) 를 수신한다. JPEG 인코더 (508) 및 트랜스코더 (509) 에 의한 MCU 들 내의 이미지 데이터의 회전 및 MCU 들의 리오더링은 이미지 데이터 (501) 에서 인코딩된 이미지의 회전된 버전을 생성하고, 회전된 버전은 메모리로 출력될 수 있다.
RST 마커들은 MCU 회전 (515) 을 갖는 결과의 JPEG 비트 스트림에서 식별 가능하기 때문에, 트랜스코더 (509) 는 각각의 MCU 를 개별적으로 위치시킬 수 있다. 각각의 MCU 가 그 다음에 인덱싱될 수 있고, 오리지널 인코딩된 이미지에 대하여 회전된 순서로 MCU 들이 위치하도록 이 인덱싱에 기초하여 리오더링된 방식으로 MCU 들이 페치될 수 있다. 따라서, MCU 들이 입력 데이터 스트림에서 나타나는 순서에 따라 MCU 들을 단순하고 순차적으로 프로세싱하기 보다는, MCU 들이 출력 데이터 스트림에서 나타날 순서에 따라 압축된 이미지의 상이한 부분들로부터 MCU 들이 추출된다. 이 방법에서, DCT 기술을 통해 코딩된 MCU 들을 포함하는 인코딩된 이미지는 DCT 계수들의 일부 또는 전부를 디코딩하지 않고 회전될 수 있다.
예를 들어, 동작 동안, JPEG 인코더 (508) 는 이미지 데이터 (501) 를 수신한다. JPEG 인코더 (508) 는, 각각의 MCU 가 회전되는 이미지 데이터 (501) 의 JPEG 비트 스트림을 생성할 수도 있다. 특정 실시형태에서, 회전된 MCU 들은 여전히 이미지 데이터 (501) 의 오리지널 순서로 있다. 회전된 MCU 를 갖는 이미지 데이터는 회전된 이미지 블록 (510) 으로서 그리고 2 블록 바이 3 블록 (2×3) 이미지 (519) 의 각 블록의 90 도 회전을 나타내는 MCU 회전을 갖는 JPEG 비트 스트림 (515) 으로서 도시된다. JPEG 인코더 (508) 는, 비트 스트림의 인덱싱 및 리오더링 동안 이용될 모든 MCU 다음에 RST 마커들을 갖는 수신 순서로 JPEG 비트 스트림을 생성할 수도 있다. 트랜스코더 (509) 는 JPEG 인코더 (508) 로부터 JPEG 비트 스트림을 수신하고, 인덱스 모듈 (512) 에서의 인덱싱 및 리오더링 모듈 (514) 에서의 리오더링 후에, JPEG 인코더에 의해 수행된 회전 순서가 종래의 JPEG 디코더에 의해 정확하게 디코딩 가능하도록, JPEG 비트 스트림이 오더링된다. 회전된 이미지의 JPEG 비트 스트림은 516 에서 예시적으로 517 에서 개략적으로 도시된다.
인덱싱 및 리오더링은 트랜스코더 (509) 내에서 발생하는 것으로 전술되었으나, 다른 실시형태에서 인덱싱, 리오더링, 또는 인덱싱 및 리오더링 양자 모두는 인코더 (508) 내에서 발생할 수도 있다.
도 6 을 참조하면, 이미지 회전 시스템의 다른 특정 실시형태가 도시되고, 일반적으로 600 으로 표기된다. 시스템 (600) 은 트랜스코더 (609) 에 커플링된 JPEG 인코더 (608) 를 포함한다. 트랜스코더 (609) 는 리오더링 모듈 (614) 에 커플링된 인덱스 모듈 (612) 을 포함한다. 리오더링 모듈 (614) 은 디코드 모듈 (611) 에 커플링된다. 특정 실시형태에서, 디코드 모듈 (611) 은 허프만 (Huffman) 디코드 모듈이다. 디코드 모듈 (611) 은 차분 코딩 모듈 (613) 에 커플링된다.
JPEG 인코더 (608) 는 이미지 데이터 (601) 를 수신한다. JPEG 인코더 (608) 및 트랜스코더 (609) 에 의한 MCU 들 내의 이미지 데이터의 회전 및 MCU 들의 리오더링은 이미지 데이터 (601) 에서 인코딩된 이미지의 회전된 버전을 생성하고, 회전된 버전은 메모리로 출력될 수 있다. 특정 실시형태에서, 트랜스코더 (609) 는 리드아웃 순서로 인코딩된 이미지 블록을 검색한다. 인덱스 모듈 (612) 은 RST 마커들을 이용하여 JPEG 비트 스트림의 MCU 들을 인덱싱하고, 리오더링 모듈 (614) 은 MCU 비트 스트림을 회전 순서로 페치하고, 디코드 모듈 (611) 은 DC 계수들을 추출하며, 차분 코딩 모듈 (613) 은 추출된 DC 계수들을 디코딩하고 차분 코딩을 적용한다.
예를 들어, 트랜스코더 (609) 는 JPEG 인코더 (608) 에 의해 인코딩될 수도 있는 이미지 (601) 의 JPEG 비트 스트림을 수신할 수도 있다. 인덱스 모듈 (612) 은 RST 마커들을 이용하여 JPEG 비트 스트림의 MCU 들을 인덱싱한다. 다음으로, 리오더링 모듈 (614) 은 MCU 비트 스트림을 회전 순서로 페치한다. 이것은 MCU 들을 리오더링한다. 디코드 모듈 (611) 은 MCU 들 각각을 허프만 디코딩하고 역 지그재그 스캔한다. 허프만 디코딩 및 역 지그재그 스캐닝의 프로세스는 엔트로피 디코딩으로서 지칭될 수도 있다. 다음으로, 차분 코딩 모듈 (613) 은 각각의 MCU 의 DC 계수만을 디코딩하고, 각각의 MCU 에 DC 차분 디코딩을 적용할 수도 있다. DC 차분 디코딩은, DCT 계수들의 DC 계수에 적용될 수도 있는 임의의 차분 코딩을 제거할 수도 있다. 그렇게 하기 위해서, 각각의 MCU 의 DC 계수의 적어도 부분 디코드를 필요로할 수도 있으나, 이 경우에서 DCT 도메인에서 AC 계수들이 여전히 코딩된다.
특정 실시형태에서, 이러한 디코딩은, RST 마커들에서와 같이, 재시작 필드에 저장된 데이터를 오버라이팅함으로써 도움받을 수도 있다. MCU 회전을 갖는 JPEG 비트 스트림 (616) 의 분해부 (630) 에서 도시된 바와 같이, 패딩 비트들 (634) 은 각각의 MCU, 예컨대 MCU4 (632) 와 다음의 바이트 바운더리 (644) 사이에 삽입되고, RST 마커 (636) 는 바이트 바운더리 (644) 에 정렬된다. 패딩 비트들 (634) 은 RST 마커를 바이트 바운더리에 정렬하도록 이용된다. MCU4 (632) 는 패딩 비트들 (634) 이전의 마지막 데이터 엘리먼트로서 DC 계수 (640) 를 포함할 수도 있다. JPEG 인코더 (608) 는 패딩 비트들 (634) 의 수를 나타내기 위해, 값 N (642) 으로서 도시된, RST 마커 (636) 의 데이터의 일부를 오버라이팅할 수도 있다. 특정 실시형태에서, JPEG 인코더 (608) 는, 특정 JPEG 구현에 따른 RST 마커의 4-비트 부분과 같은, 디폴트 카운터 값을 오버라이팅할 수도 있다. 값 N (642) 은 마지막 MCU (632) 의 비트 스트림의 엔드와 RST 마커 (636) 사이의 패딩 비트들의 수를 표시할 수도 있다. RST 마커 (636) 에서 인코딩된 패딩 비트들의 수는, RST 마커 (636) 및 패딩 비트들 (634) 이 제거된 후에 순차적인 MCU 들 (632 및 648) 이 연결될 수 있도록, 이전 MCU 비트 스트림의 엔드를 보다 용이하게 식별되도록 인에이블한다. 또한, MCU (648) 에서의 최종 블록에 있어서 루마 (Y) 및 크로마 (Cb, Cr) 에 대한 DC 예측 값들 (646) 은 다음의 RST 마커 (636) 에 삽입될 수 있다. DC 예측 값들 (646) 은, RST 마커들이 비트 스트림의 부분들을 디코딩하지 않고 제거될 수 있도록 MCU 바운더리에 걸쳐 차분 코딩을 적용하기 위해 이용될 수도 있다.
MCU 들은, MCU 들이 오리지널 인코딩된 이미지에 대하여 회전된 순서로 위치하도록, 지정된 회전에 따라 리오더링될 수도 있다. 이 MCU 들의 리오더링을 용이하게 하기 위해서, JPEG 인코더 (608) 는 인덱싱 스킴을 이용할 수도 있다. 예를 들어, JPEG 표준에 따르면, 인코딩된 이미지와 연관된 RST 마커 값은 1 로 설정될 수도 있다. RST 마커들은, 이미지 데이터가 재시작될 수 있고 이에 따라 독립적으로 인코딩 또는 디코딩될 수 있는 곳을 표시할 수도 있다. 이는, JPEG 이미지의 독립적으로 디코딩가능한 유닛을 형성하는 각각의 DCT 코딩된 MCU 를 초래할 수도 있다.
RST 마커들은 MCU 회전 (615) 을 갖는 결과의 JPEG 비트 스트림에서 식별 가능하기 때문에, 트랜스코더 (609) 는 각각의 MCU 를 개별적으로 위치시킬 수 있다. 각각의 MCU 가 그 다음에 인덱싱될 수 있고, 오리지널 인코딩된 이미지에 대하여 회전된 순서로 MCU 들이 위치하도록 이 인덱싱에 기초하여 리오더링된 방식으로 MCU 들이 페치될 수 있다. 따라서, MCU 들이 입력 데이터 스트림에서 나타나는 순서에 따라 MCU 들을 단순하고 순차적으로 프로세싱하기 보다는, MCU 들이 출력 데이터 스트림에서 나타날 순서에 따라 압축된 이미지의 상이한 부분들로부터 MCU 들이 추출된다. 이 방법에서, DCT 기술을 통해 코딩된 MCU 들을 포함하는 인코딩된 이미지는 DCT 계수들의 일부 또는 전부를 디코딩하지 않고 회전될 수 있다.
예를 들어, 동작 동안, JPEG 인코더 (608) 는 이미지 데이터 (601) 를 수신한다. JPEG 인코더 (608) 는, 각각의 MCU 가 회전되는 이미지 데이터 (601) 의 JPEG 비트 스트림을 생성할 수도 있다. 특정 실시형태에서, 회전된 MCU 들은 여전히 이미지 데이터 (601) 의 오리지널 순서로 있다. 회전된 MCU 를 갖는 이미지 데이터는 회전된 이미지 블록 (610) 으로서 그리고 MCU 회전을 갖는 JPEG 비트 스트림 (615) 으로서 도시된다. JPEG 인코더 (608) 는, 비트 스트림의 인덱싱 및 리오더링 동안 이용될 모든 MCU 다음에 RST 마커들을 갖는 수신 순서로 JPEG 비트 스트림을 생성할 수도 있다. 트랜스코더 (609) 는 JPEG 인코더 (608) 로부터 JPEG 비트 스트림을 수신하고, 인덱스 모듈 (612) 에서의 인덱싱, 리오더 모듈 (614) 에서의 리오더링, 디코더 모듈 (611) 에서의 디코딩, 및 회전 순서에 따른 차분 코딩 모듈 (613) 에서의 차분 코딩 후에, JPEG 인코더에 의해 수행된 회전 순서가 종래의 JPEG 디코더에 의해 디코딩 가능하도록, JPEG 비트 스트림이 오더링된다.
특정 실시형태에서, 트랜스코더 (609) 에 의해 회전된 이미지의 JPEG 비트 스트림 (617) 으로부터 RST 마커들이 제거된다. 트랜스코더 (609) 는 RST 마커들을 제거하기 위해 차분 코딩에 대한 DC 계수들을 추출하도록 허프만 디코딩을 수행한다. 회전된 이미지의 JPEG 비트 스트림은 616 에서 예시적으로 도시된다.
전술된 특정 예시적인 실시형태에서, 인덱싱, 리오더링, 디코딩, 및 차분 코딩은 트랜스코더 (609) 내에서 발생하는 것으로 전술된다. 그러나, 다른 실시형태에서, 각각의 동작은 개별적으로 또는 이들의 임의의 조합으로 인코더 (608) 내에서 발생할 수도 있다.
도 7 을 참조하면, 이미지 회전 시스템의 다른 특정 실시형태가 도시되고, 일반적으로 700 으로 표기된다. 시스템 (700) 은 트랜스코더 (709) 에 커플링된 JPEG 인코더 (708) 를 포함한다. 트랜스코더 (709) 는 리오더링 모듈 (714) 에 커플링된 인덱스 모듈 (712) 을 포함한다. 특정 실시형태에서, 인덱스 모듈 (712) 은 RST 마커들을 이용하여 JPEG 비트 스트림의 MCU 들을 인덱싱하고, 리오더링 모듈 (714) 은 MCU 비트 스트림을 회전 순서로 페치한다.
JPEG 인코더 (708) 는 이미지 데이터 (701) 를 수신한다. JPEG 인코더 (708) 및 트랜스코더 (709) 에 의한 MCU 들 내의 이미지 데이터의 회전 및 MCU 들의 리오더링은 이미지 데이터 (701) 에서 인코딩된 이미지의 회전된 버전을 생성한다.
RST 마커들은 MCU 회전 (715) 으로 결과의 JPEG 비트 스트림에서 식별 가능하기 때문에, 트랜스코더 (709) 는 각각의 MCU 를 개별적으로 위치시킬 수 있다. 각각의 MCU 가 그 다음에 인덱싱될 수 있고, 오리지널 인코딩된 이미지에 대하여 회전된 순서로 MCU 들이 위치하도록 이 인덱싱에 기초하여 리오더링된 방식으로 MCU 들이 페치될 수 있다.
예를 들어, 동작 동안, JPEG 인코더 (708) 는 이미지 데이터 (701) 를 수신한다. JPEG 인코더 (708) 는, 도 2 에 대하여 설명된 바와 같이, 회전 순서로 차분으로 인코딩되고 회전된 각각의 MCU 를 갖는 이미지 데이터 (701) 의 JPEG 비트 스트림을 생성할 수도 있다. 특정 실시형태에서, 회전된 MCU 들은 여전히 이미지 데이터 (701) 의 오리지널 순서로 있다. 회전된 MCU 들을 갖는 이미지 데이터는 회전된 이미지 블록 (710) 으로서 그리고 MCU 회전 (715) 을 갖는 JPEG 비트 스트림으로서 개략적으로 도시된다. JPEG 인코더 (708) 는, 비트 스트림의 인덱싱 및 리오더링 동안 이용될 모든 MCU 다음에 RST 마커들을 갖는 수신 순서로 JPEG 비트 스트림을 생성할 수도 있다. 트랜스코더 (709) 는 JPEG 인코더 (708) 로부터 JPEG 비트 스트림을 수신하고, 인덱싱 모듈 (712) 에서의 인덱싱 및 리오더링 모듈 (714) 에서의 리오더링 후에, JPEG 인코더 (708) 에 의해 수행된 회전 순서에서의 차분 코딩이 종래의 JPEG 디코더에 의해 디코딩 가능하도록, JPEG 비트 스트림이 오더링된다. 따라서, 이미지의 각각의 행의 시작을 표시하는 RST 마커들이 유지되고, 회전된 이미지 (717) 의 JPEG 비트 스트림으로부터 나머지 RST 마커들이 제거된다. 회전된 이미지의 JPEG 비트 스트림은 716 에서 예시적으로 도시된다.
인덱싱 및 리오더링은 트랜스코더 내에서 발생하는 것으로서 전술되었으나, 다른 실시형태에서 인덱싱, 리오더링, 및 인덱싱과 리오더링 양자 모두가 인코더 (708) 내에서 발생할 수도 있다.
도 8 을 참조하면, 각종 이미지 회전각에 대한 블록 스캔 순서 및 블록 프로세스 순서를 나타내는 특정 실시형태가 도시되고, 일반적으로 800 으로 표기된다. 예를 들어, 0 도 회전 (즉, 종래의 인코딩) 에서 2×2 루미넌스 블록들을 갖는 2 개의 수평 블록 2 개의 수직 블록 (H2V2) MCU 에서의 루미넌스 (Y) 데이터의 블록 프로세스 순서는 래스터 스캔 (raster scan) 순서 (상부 좌측, 상부 우측, 하부 좌측, 하부 우측) 이다. 0 도 회전에서 2×1 루미넌스 블록을 갖는 2 개의 수평 블록 및 1 개의 수직 블록 (H2V1) MCU 에 있어서, 블록 프로세스 순서는 또한 좌측, 우측의 래스터 스캔 순서이다. 루미넌스 및 크로마 (Cr, Cb) 블록들의 일반적인 구성에 대한 블록 스캔 순서는 영 (0) 도 회전에 대해 도시된다.
90 도 회전에서 2×2 루미넌스 블록들을 갖는 H2V2 MCU 에서의 Y 데이터의 블록 프로세스 순서는 래스터 스캔 순서 (상부 우측, 하부 우측, 상부 좌측, 하부 좌측) 이다. 90 도 회전에서 2×1 루미넌스 블록을 갖는 H2V1 MCU 에 있어서, 블록 프로세스 순서는 또한 상부, 하부의 래스터 스캔 순서이다. 루미넌스 및 크로마 (Cr, Cb) 블록들의 일반적인 구성에 대한 블록 스캔 순서는 구십 (90) 도 회전에 대해 도시된다.
백팔십 (180) 도 회전에서 2×2 루미넌스 블록들을 갖는 H2V2 MCU 에서의 Y 데이터의 블록 프로세스 순서는 래스터 스캔 순서 (하부 우측, 하부 좌측, 상부 우측, 상부 좌측) 이다. 180 도 회전에서 2×1 루미넌스 블록을 갖는 H2V1 MCU 에 있어서, 블록 프로세스 순서는 또한 우측, 좌측의 래스터 스캔 순서이다. 루미넌스 및 크로마 (Cr, Cb) 블록들의 일반적인 구성에 대한 블록 스캔 순서는 백팔십 (180) 도 회전에 대해 도시된다.
이백 칠십 (270) 도 회전에서 2×2 루미넌스 블록들을 갖는 H2V2 MCU 에서의 Y 데이터의 블록 프로세스 순서는 래스터 스캔 순서 (하부 좌측, 상부 좌측, 하부 우측, 상부 우측) 이다. 270 도 회전에서 2×1 루미넌스 블록을 갖는 H2V1 MCU 에 있어서, 블록 프로세스 순서는 또한 하부, 상부의 래스터 스캔 순서이다. 루미넌스 및 크로마 (Cr, Cb) 블록들의 일반적인 구성에 대한 블록 스캔 순서는 이백 칠십 (270) 도 회전에 대해 도시된다.
도 9 를 참조하면, 이미지의 수평 및 수직 천이에 대한 블록 스캔 순서 및 블록 프로세스 순서를 나타내는 특정 실시형태가 도시되고, 일반적으로 900 으로 표기된다. 회전되지 않은 이미지에 있어서, 각각의 MCU 에 대한 블록 스캔 순서 및 블록 프로세스 순서는 도 8 에 도시된 영 (0) 도 회전에 대해 도시된 순서에 매칭된다.
수직 천이 또는 플립에서 2×2 루미넌스 블록들을 갖는 H2V2 MCU 에서의 Y 데이터의 블록 프로세스 순서는 래스터 스캔 순서 (하부 좌측, 하부 우측, 상부 좌측, 상부 우측) 이다. 수직 천이에서 2×1 루미넌스 블록을 갖는 H2V1 MCU 에 있어서, 블록 프로세스 순서는 또한 좌측, 우측의 래스터 스캔 순서이다.
수평 천이 또는 플립에서 2×2 루미넌스 블록들을 갖는 H2V2 MCU 에서의 Y 데이터의 블록 프로세스 순서는 래스터 스캔 순서 (상부 우측, 상부 좌측, 하부 우측, 하부 좌측) 이다. 수직 천이에서 2×1 루미넌스 블록을 갖는 H2V1 MCU 에 있어서, 블록 프로세스 순서는 또한 우측, 좌측의 래스터 스캔 순서이다.
도 10 을 참조하면, 이미지를 회전시키는 방법의 제 1 특정 예시적인 실시형태의 흐름도가 도시되고, 일반적으로 1000 으로 도시된다. 일반적으로, 이미지 회전 방법 (1000) 은 도 1 내지 도 7 에 도시된 시스템들 중 하나 이상에 의해, 다른 이미지 프로세싱 시스템들 또는 디바이스들, 또는 이들의 임의의 조합에 의해 수행될 수도 있다. 1002 에서, 이미지에 대응하는 이미지 데이터가 수신된다. 이미지 데이터는 복수의 이미지 블록들을 포함한다. 1004 에서, 이미지의 제 1 행의 제 1 블록의 제 1 DC 계수 값을 이미지의 제 2 행의 제 1 블록의 제 2 DC 계수 값과 비교함으로써 이미지의 회전 동작 동안 제 1 차분 DC 값이 계산된다. 특정 실시형태에서, 제 1 차분 DC 값은 도 2 의 차분 DC 계산 로직 모듈 (208) 에 의해 계산될 수도 있다. 1006 에서, 회전 동작을 완료하기 전에 제 1 차분 DC 값은 메모리, 예컨대 도 1 의 이미지 스토리지 (140) 에 저장된다. 예를 들어, 이미지 데이터 (209) 의 다른 블록들이 인코더 (202) 의 블록 회전 모듈 (213) 에 의해 계속해서 프로세싱될 때, 인코딩된 MCU 는 도 2 의 메모리 (216) 에 저장될 수도 있다.
상이한 행들에서의 블록들의 DC 계수 값들을 비교하는 것에 기초하여, 즉, 스캔 순서보다는 회전 순서로, 회전 동작 동안 제 1 차분 DC 값을 계산함으로써, 인코더는, 이미지 블록들이 회전 순서로 배열된 후에 디코더에 의해 판독 가능하도록 차분으로 인코딩되는 이미지 블록들의 출력을 생성할 수도 있다. 예를 들어, 90 도 회전에 대한 이미지 블록들의 리오더링은 회전된 이미지의 열들을 형성하는 오리지널 이미지의 행들, 및 회전된 이미지의 행들을 형성하는 오리지널 이미지의 열들을 초래할 수도 있다. 회전 동작 동안 회전 순서로 (즉, 행 보다는 열을 따라) 이미지 데이터를 차분으로 인코딩함으로써, 블록 리오더링 후에 이후의 차분 인코딩 동작이 수행될 필요가 없다. 따라서, 트랜스코더와 같이, 인코딩 및 메모리에 저장한 후에 DC 계수들을 디코딩 및 검색하기 위한 추가의 프로세싱이 방지될 수도 있다.
도 11 을 참조하면, 이미지를 회전시키는 방법의 제 2 특정 예시적인 실시형태의 흐름도가 도시되고, 일반적으로 1100 으로 표기된다. 일반적으로, 이미지 회전 방법 (1100) 은, 도 1 내지 도 7 에 도시된 시스템들 중 하나 이상에 의해, 다른 이미지 프로세싱 시스템 또는 디바이스들, 또는 이들의 조합에 의해 수행될 수도 있다. 예를 들어, 카메라를 갖는 휴대용 전자 디바이스는, 이미지를 회전시키는 방법 (1100) 을 수행하기 위해, 휴대용 전자 디바이스의 프로세서와 같은 컴퓨터에 의해 실행 가능한 명령 코드를 저장하는, 메모리와 같은 컴퓨터 판독가능 매체를 포함할 수도 있다.
1102 에서, 하드웨어 JPEG (Joint Photographic Expert Group) 인코더의 입력에서 회전 신호가 수신될 수도 있다. 특정 실시형태에서, 회전 신호는 도 2 의 회전 신호 (220) 일 수도 있다. 특정 실시형태에서, 이미지 캡처 디바이스의 이미지 센서가 회전 신호에 반응할 수도 있다. 이미지 캡처 디바이스에서 스캐닝 순서를 변경하기 위해 회전 신호 (220) 에 기초하여 하드웨어 JPEG 인코더로부터 이미지 캡처 디바이스로 스캔 순서 신호가 전송될 수도 있다. 1104 에서, 이미지에 대응하는 이미지 데이터가 수신된다. 이미지 데이터는 복수의 이미지 블록들을 포함한다. 이미지 데이터는 이미지의 제 1 행 바로 다음에 이미지의 제 2 행으로서 수신될 수도 있다. 1106 에서, 제 1 행의 제 1 블록의 제 1 DC 계수 값이 행 버퍼에 저장될 수도 있다. 특정 실시형태에서, 행 버퍼는 도 2 의 행 버퍼 (204) 일 수도 있다. 1108 에서, 이미지의 회전 동작 동안 이미지의 제 1 행의 제 1 블록의 제 1 DC 계수 값을 이미지의 제 2 행의 제 1 블록의 제 2 DC 계수 값과 비교함으로써 제 1 차분 DC 값이 계산된다. 1110 에서, 제 2 행의 제 1 블록의 제 2 DC 계수 값이 행 버퍼에 저장될 수도 있다. 회전 동작을 완료하기 전에, 1112 에서, 제 1 차분 DC 값은 메모리, 예컨대 도 1 의 이미지 스토리지 (140) 또는 도 2 의 메모리 (216) 에 저장된다.
1114 에서, 이미지의 제 1 행의 제 2 블록의 제 3 DC 계수 값이 저장될 수도 있다. 제 2 차분 DC 값은 이미지의 제 2 행의 제 2 블록의 제 4 DC 계수 값을 이미지의 제 1 행의 제 2 블록의 제 3 DC 계수 값과 비교함으로써 계산될 수도 있다. 제 2 차분 DC 값은, 도 1 의 이미지 스토리지 (140) 또는 도 2 의 메모리 (216) 와 같은 메모리에 저장될 수도 있다.
RST 마커 및 DC 계수를 포함하는 인코딩된 JPEG 데이터가 수신될 수도 있고, 마지막 MCU 의 비트 스트림의 엔드와 RST 마커 간의 패딩 (padding) 비트들의 수를 표기하도록 RST 마커에서의 데이터가 오버라이팅 (overwrite) 될 수도 있다. 패딩 비트들의 수는 이전 MCU 비트 스트림의 엔드가 보다 용이하게 식별되는 것을 가능하게 하고, 이는 루마 (Y) 및 크로마 (Cb, Cr) 에 대한 DC 예측 값들이 RST 마커 옆의 MCU 에서의 최종 블록에 대해 삽입되는 것을 가능하게 한다. DC 예측 값들은, RST 마커들이 비트 스트림의 일부를 디코딩하지 않고 제거될 수 있도록 MCU 바운더리에 걸쳐 차분 코딩을 적용하도록 이용될 수도 있다. 트랜스코더에서, 1118 에서, 패딩 비트들의 수를 판독하고, RST 마커를 제거하며, MCU 의 JPEG 데이터 스트림을 디코딩하지 않고 DC 계수를 판독하기 위해, RST 마커에서의 데이터가 판독될 수도 있다. 따라서 몇몇 실시형태에서, 트랜스코더는 저장된 JPEG 비트 스트림에서의 DC 계수들을 차분 DC 값들로 보다 효율적으로 대체할 수 있다.
도 12 를 참조하면, 회전 순서 차분 인코딩을 이용하는 회전 동작 모듈을 포함하는 무선 통신 디바이스의 특정 예시적인 실시형태가 도시되고, 일반적으로 1200 으로 표기된다. 디바이스 (1200) 는 메모리 (1232) 에 커플링되고, 또한 회전 순서 차분 인코딩을 이용하는 회전 동작 모듈 (1264) 에 커플링된 프로세서 (1210), 예컨대 일반 프로세서, 디지털 신호 프로세서 (DSP), 또는 이미지 프로세서를 포함한다. 예시적인 예에서, 회전 동작 모듈 (1264) 은 메모리 (1232) 에 저장되고 프로세서 (1210) 에 의해 실행 가능한 프로그램 명령들을 이용하여 실행 가능하다. 다른 실시형태들에서, 회전 동작 모듈 (1264) 은 하드웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수도 있고, 도 1 내지 도 11 에 도시된 실시형태들 중 하나 이상에 따라 동작할 수도 있다.
예를 들어, 회전 동작을 수행하기 위한 하드웨어 및/또는 펌웨어는 임의의 프로그래머블 또는 하드코딩된 로직, 예컨대 필드 프로그래머블 게이트 어레이 (FPGA), 트랜지스터-트랜지스터-로직 (TTL), 또는 주문형 집적 회로 (ASIC) 에 의해 완전히 또는 부분적으로 구현될 수도 있다.
카메라 (1270) 는 카메라 인터페이스 (1268) 를 통해 프로세서 (1210) 에 커플링된다. 카메라 (1270) 는 스틸 카메라, 비디오 카메라, 또는 이들의 임의의 조합을 포함할 수도 있다. 카메라 인터페이스 (1268) 는 캡처 및 프로세싱된 이미지 데이터 (1280) 를 메모리 (1232) 에 저장하는 것을 포함하는, 카메라 (1270) 의 동작을 제어하도록 구성된다.
도 12 는 또한, 프로세서 (1210) 및 디스플레이 (1228) 에 커플링되는 디스플레이 제어기 (1226) 를 나타낸다. 코더/디코더 (CODEC)(1234) 가 또한 프로세서 (1210) 에 커플링될 수 있다. 스피커 (1236) 및 마이크로폰 (1238) 이 CODEC (1234) 에 커플링될 수 있다.
도 12 는 또한, 무선 인터페이스 (1240) 가 프로세서 (1210) 및 무선 안테나 (1242) 에 커플링될 수 있는 것을 나타낸다. 특정 실시형태에서, 프로세서 (1210), 디스플레이 제어기 (1226), 메모리 (1232), CODEC (1234), 무선 인터페이스 (1240), 카메라 인터페이스 (1268), 및 회전 동작 모듈 (1264) 은 시스템-인-패키지 또는 시스템-온-칩 디바이스 (1222) 에 포함된다. 특정 실시형태에서, 입력 디바이스 (1230) 및 전력 공급기 (1244) 는 시스템-온-칩 디바이스 (1222) 에 커플링된다. 또한, 특정 실시형태에서, 도 12 에 도시된 바와 같이, 디스플레이 (1228), 입력 디바이스 (1230), 스피커 (1236), 마이크로폰 (1238), 무선 안테나 (1242), 카메라 (1270), 및 전력 공급기 (1244) 는 시스템-온-칩 디바이스 (1222) 외부에 있다. 그러나, 디스플레이 (1228), 입력 디바이스 (1230), 스피커 (1236), 마이크로폰 (1238), 무선 안테나 (1242), 카메라 (1270), 및 전력 공급기 (1244) 는 시스템-온-칩 디바이스 (1222) 의 컴포넌트, 예컨대 인터페이스 또는 제어기에 커플링될 수 있다.
도 13 을 참조하면, 회전 순서 차분 인코딩을 이용하는 회전 동작 모듈을 포함하는 시스템의 특정 예시적인 실시형태의 블록도가 도시되고, 일반적으로 300 으로 표기된다. 시스템 (1300) 은 렌즈 (1368) 에 커플링되고, 또한 휴대용 멀티미디어 디바이스의 애플리케이션 프로세서 칩세트 (1370) 에 커플링되는 이미지 센서 디바이스 (1322) 를 포함한다. 이미지 센서 디바이스 (1322) 는, 예컨대, 도 1, 도 2, 도 7 또는 도 13 의 시스템들 중 하나 이상을 구현함으로써, 도 4 내지 도 6 또는 도 8 내지 도 11 의 실시형태들 중 어느 하나, 또는 이들의 임의의 조합에 따라 동작함으로써, 애플리케이션 프로세서 칩세트 (1370) 에 이미지 데이터를 제공하기 전에 이미지 데이터를 회전시키기 위해 회전 순서 차분 인코딩을 이용하는 회전 동작 모듈 (1364) 을 포함한다.
회전 동작 모듈 (1364) 은, 예컨대 이미지 어레이 (1366) 의 출력을 수신하고 이미지 데이터를 회전 동작 모듈 (1364) 에 제공하도록 커플링되는 아날로그-디지털 변환기 (1326) 를 통해, 이미지 어레이 (1366) 로부터 이미지 데이터를 수신하도록 커플링된다.
이미지 센서 디바이스 (1322) 는 또한, 프로세서 (1310) 를 포함할 수도 있다. 특정 실시형태에서, 프로세서 (1310) 는 회전 순서 차분 인코딩 기능을 이용하여 회전 동작을 구현하도록 구성된다. 다른 실시형태에서, 회전 동작 모듈 (134) 은 별개의 이미지 프로세싱 회로로서 구현된다.
프로세서 (1310) 는 또한, 추가의 이미지 프로세싱 동작들, 예컨대 도 1 의 모듈들 (112-120) 에 의해 수행된 동작들 중 하나 이상을 수행하도록 구성될 수도 있다. 프로세서 (1310) 는 추가의 프로세싱, 송신, 저장, 디스플레이, 또는 이들의 임의의 조합을 위해 애플리케이션 프로세서 칩세트 (1370) 에 프로세싱된 이미지 데이터를 제공할 수도 있다.
당업자는, 본원에 개시된 예들와 관련되어 설명된 각종 예시의 논리 블록들, 구성들, 모듈들, 회로들, 및/또는 알고리즘 단계들이 전자 하드웨어, 컴퓨터 소프트웨어, 또는 이둘의 조합으로서 구현될 수도 있음을 알 것이다. 각종 예시의 컴포넌트들, 블록들, 모듈들, 회로들, 및/또는 단계들은 일반적으로 그 기능성의 관점에서 전술되었다. 이러한 기능성이 일부 실시형태에서는 하드웨어로서 또는 다른 실시형태에서는 소프트웨어로서 구현되는지 여부는 전체 시스템에 부과된 설계 제약들 및 특정 애플리케이션에 의존한다. 당업자는 각각의 특정 애플리케이션의 방법들을 변경하는데 있어서 설명된 기능성을 구현할 수도 있으나, 이러한 구현 결정은 본 개시물의 범위 또는 사상으로부터 벗어나는 것으로 해석되어서는 안된다.
본원에 개시된 실시형태들과 관련되어 설명된 방법 또는 알고리즘의 단계들은 하드웨어에서, 프로세서에 의해 실행된 소프트웨어 모듈에서, 또는 이 둘의 조합에서 직접 구현될 수도 있다. 소프트웨어 모듈은 랜덤 액세스 메모리 (RAM), 플래시 메모리, 판독 전용 메모리 (ROM), 프로그래머블 판독 전용 메모리 (PROM), 소거가능한 프로그래머블 판독 전용 메모리 (EPROM), 전기적으로 소거가능한 프로그래머블 판독 전용 메모리 (EEPROM), 레지스터, 하드 디스크, 착탈형 디스크, 컴팩트 디스크 판독 전용 메모리 (CD-ROM), 또는 당업계에 공지된 저장 매체의 임의의 다른 형태에 상주할 수도 있다. 예시적인 저장 매체는, 프로세서가 저장 매체로부터 정보를 판독하고, 저장 매체에 정보를 기입하도록 프로세서에 커플링된다. 다르게는, 저장 매체는 프로세서에 통합될 수도 있다. 프로세서 및 저장 매체는 주문형 집적 회로 (ASIC) 에 상주할 수도 있다. ASIC 는 컴퓨팅 디바이스 또는 사용다 단말기에 상주할 수도 있다. 다르게는, 프로세서 및 저장 매체는 컴퓨팅 디바이스 또는 사용자 단말기에서 이산 컴포넌트로서 상주할 수도 있다.
개시된 양태들의 이전 설명은 당업자가 본 개시물을 제조 또는 이용하게 하도록 제공된다. 이들 양태들에 대한 각종 변형들이 당업자에게 자명할 것이고, 본원에 정의된 일반적 원리들은 개시물의 사상 또는 범위로부터 벗어남 없이 다른 양태들에 적용될 수도 있다. 따라서, 본 개시물은 본원에 도시된 실시형태들에 제한되지 않고, 다음의 청구범위에 의해 정의된 바와 같은 원리들 및 신규한 특성들에 따르는 가능한 최광의 범위를 따르도록 의도된다.

Claims (28)

  1. 하나 이상의 프로세서들에 의해 이미지 데이터의 회전 동작을 수행하는 방법으로서,
    상기 하나 이상의 프로세스들을 이용하여 이미지를 표현하는 이미지 데이터를 수신하는 단계로서, 상기 이미지 데이터는 복수의 이미지 블록들을 포함하는, 상기 이미지 데이터를 수신하는 단계;
    상기 이미지 데이터를 회전시키는 단계;
    상기 이미지 블록들의 제 1 행의 제 1 블록의 제 1 DC 계수 값을 상기 이미지 블록들의 제 2 행의 제 1 블록의 제 2 DC 계수 값과 비교함으로써 상기 이미지 데이터의 상기 회전 동작 동안 제 1 차분 DC 값을 계산하는 단계;
    상기 회전 동작을 완료하기 전에 상기 제 1 차분 DC 값을 메모리에 저장하는 단계;
    복수의 최소 코딩된 유닛 (Minimum Coded Unit, MCU) 들의 각각이 회전된 상기 이미지 데이터의 비트 스트림을 생성하는 단계; 및
    각각의 회전된 MCU 다음에 코드를 삽입함으로써, 상기 회전된 MCU들을 독립적으로 디코딩가능한 압축된 데이터의 피스들로 인코딩하는 단계를 포함하고,
    상기 코드는 각각의 MCU가 개별적으로 위치하고, 인덱싱되고, 상기 MCU들이 출력 데이터 스트림에서 나타날 순서에 따라 비트 스트림으로부터 추출되는 것을 허용하는, 방법.
  2. 제 1 항에 있어서,
    상기 제 2 행은 상기 제 1 행 바로 뒤에 수신되는, 방법.
  3. 제 1 항에 있어서,
    상기 제 1 DC 계수 값을 버퍼에 저장하는 단계를 더 포함하는, 방법.
  4. 제 3 항에 있어서,
    상기 제 1 DC 계수 값은 제 1 최소 코딩된 유닛 (minimum coded unit; MCU) 의 루마 블록에 대응하고,
    상기 제 1 MCU 에 대응하는 제 1 크로마 레드 DC 계수 값 및 제 1 크로마 블루 DC 계수 값을 상기 버퍼에 저장하는 단계를 더 포함하는, 방법.
  5. 제 3 항에 있어서,
    상기 제 2 DC 계수 값을 상기 버퍼에 저장하는 단계를 더 포함하는, 방법.
  6. 제 1 항에 있어서,
    상기 이미지 블록들의 상기 제 1 행의 제 2 블록의 제 3 DC 계수 값을 저장하는 단계;
    상기 이미지 블록들의 상기 제 2 행의 제 2 블록의 제 4 DC 계수 값을 상기 이미지 블록들의 상기 제 1 행의 상기 제 2 블록의 상기 제 3 DC 계수 값과 비교하여, 제 2 차분 DC 값을 계산하는 단계; 및
    상기 제 2 차분 DC 값을 상기 메모리에 저장하는 단계를 더 포함하는, 방법.
  7. 제 1 항에 있어서,
    상기 복수의 블록들의 각 블록은 상기 이미지의 최소 코딩된 유닛 (MCU) 내의 복수의 블록들 중 하나인, 방법.
  8. 제 7 항에 있어서,
    상기 MCU 는 4 개의 루마 블록들 및 2 개의 크로마 블록들을 포함하는, 방법.
  9. 제 1 항에 있어서,
    하드웨어 인코더의 입력에서 회전 신호를 수신하는 단계; 및
    상기 회전 신호에 기초하여 상기 하드웨어 인코더로부터 이미지 캡처 디바이스로 스캔 순서 신호를 전송하여, 상기 이미지 캡처 디바이스에서의 스캐닝 순서를 변경하는 단계를 더 포함하는, 방법.
  10. 제 9 항에 있어서,
    상기 하드웨어 인코더는 하드웨어 JPEG (Joint Photographic Experts Group) 인코더를 포함하는, 방법.
  11. 제 9 항에 있어서,
    상기 회전 신호는 이미지 센서의 배향을 나타내는, 방법.
  12. 제 1 항에 있어서,
    상기 제 1 차분 값은 JPEG (Joint Photographic Experts Group) 인코딩에서 이용되고,
    상기 방법은,
    재시작 (RST) 마커 및 DC 계수를 포함하는 인코딩된 JPEG 데이터를 수신하는 단계; 및
    상기 RST 마커에 데이터를 오버라이팅하여, 마지막 최소 코딩된 유닛 (MCU) 의 엔드와 상기 RST 마커 간의 패딩 비트들의 수를 나타내는 단계를 더 포함하는, 방법.
  13. 제 12 항에 있어서,
    상기 DC 계수는 상기 RST 마커에 인접하여 삽입되고,
    트랜스코더에서, 상기 RST 마커 내의 상기 데이터를 판독하여 상기 패딩 비트들의 수를 판독하고, 상기 RST 마커를 제거하며, 상기 MCU 의 JPEG 데이터 스트림을 디코딩하지 않고 상기 DC 계수를 판독하는 단계를 더 포함하는, 방법.
  14. 제 1 항에 있어서,
    상기 제 1 차분 DC 값은 엔트로피 인코딩된 값으로서 저장되는, 방법.
  15. 장치로서,
    이미지를 표현하는 이미지 데이터를 수신하고 상기 이미지 데이터에 대해 회전 동작을 수행하도록 구성된 블록 회전 모듈로서, 상기 이미지 데이터는 복수의 이미지 블록들을 포함하는, 상기 이미지 데이터를 수신하도록 구성된 블록 회전 모듈;
    상기 블록 회전 모듈에 커플링되고, 상기 이미지 블록들의 제 1 행의 제 1 블록의 제 1 DC 계수 값을 상기 이미지 블록들의 제 2 행의 제 1 블록의 제 2 DC 계수 값과 비교함으로써 상기 이미지 데이터의 상기 회전 동작 동안 제 1 차분 DC 값을 계산하도록 구성된 차분 DC 계산 모듈; 및
    복수의 최소 코딩된 유닛 (Minimum Coded Unit, MCU) 들의 각각이 회전된 상기 이미지 데이터의 비트 스트림을 생성하도록 구성되고, 각각의 회전된 MCU 다음에 코드를 삽입함으로써, 상기 회전된 MCU들을 독립적으로 디코딩가능한 압축된 데이터의 피스들로 인코딩하도록 구성되는 인코더를 포함하며,
    상기 코드는 각각의 MCU가 개별적으로 위치하고, 인덱싱되고, 상기 MCU들이 출력 데이터 스트림에서 나타날 순서에 따라 비트 스트림으로부터 추출되는 것을 허용하는, 장치.
  16. 제 15 항에 있어서,
    상기 차분 DC 계산 모듈에 커플링된 버퍼를 더 포함하고,
    상기 제 1 DC 계수 값은 상기 버퍼에 저장되고, 상기 제 2 DC 계수 값은 상기 버퍼에 저장되는, 장치.
  17. 제 16 항에 있어서,
    상기 제 1 DC 계수 값은 제 1 최소 코딩된 유닛 (minimum coded unit; MCU) 의 루마 블록에 대응하고,
    상기 제 1 MCU 에 대응하는 제 1 크로마 레드 DC 계수 값 및 제 1 크로마 블루 DC 계수 값을 상기 버퍼에 저장하는 것을 더 포함하는, 장치.
  18. 제 15 항에 있어서,
    상기 제 1 차분 값은 JPEG (Joint Photographic Experts Group) 인코딩에서 이용되고,
    상기 장치는,
    상기 차분 DC 계산 모듈에 커플링된 트랜스코더를 더 포함하고,
    상기 트랜스코더는 재시작 (RST) 마커 및 DC 계수를 포함하는 인코딩된 JPEG 데이터를 수신하고, 상기 RST 마커에 데이터를 오버라이팅하여, 마지막 최소 코딩된 유닛 (MCU) 의 엔드와 상기 RST 마커 간의 패딩 비트들의 수를 나타내도록 구성되는, 장치.
  19. 제 18 항에 있어서,
    상기 이미지를 캡처하는 카메라; 및
    상기 인코딩된 JPEG 데이터를 생성하도록 구성된 인코더를 더 포함하는, 장치.
  20. 제 18 항에 있어서,
    상기 인코딩된 DC 계수는 상기 RST 마커 전에 수신되는, 장치.
  21. 장치로서,
    이미지를 나타내는 이미지 데이터를 수신하기 위한 수단으로서, 상기 이미지 데이터는 복수의 이미지 블록들을 포함하는, 상기 이미지 데이터를 수신하기 위한 수단;
    상기 이미지 데이터에 대해 회전 동작을 수행하기 위한 수단;
    상기 이미지 블록들의 제 1 행의 제 1 블록의 제 1 DC 계수 값을 상기 이미지 블록들의 제 2 행의 제 1 블록의 제 2 DC 계수 값과 비교함으로써 상기 이미지 데이터의 상기 회전 동작 동안 제 1 차분 DC 값을 계산하기 위한 수단; 및
    복수의 최소 코딩된 유닛 (Minimum Coded Unit, MCU) 들의 각각이 회전된 상기 이미지 데이터의 비트 스트림을 생성하고, 각각의 회전된 MCU 다음에 코드를 삽입함으로써, 상기 회전된 MCU들을 독립적으로 디코딩가능한 압축된 데이터의 피스들로 인코딩하는 수단을 포함하고,
    상기 코드는 각각의 MCU가 개별적으로 위치하고, 인덱싱되고, 상기 MCU들이 출력 데이터 스트림에서 나타날 순서에 따라 비트 스트림으로부터 추출되는 것을 허용하며,
    상기 제 1 차분 DC 값을 계산하기 위한 수단은 상기 이미지 데이터를 수신하기 위한 수단에 커플링되는, 장치.
  22. 제 21 항에 있어서,
    상기 수신된 이미지 데이터를 인코딩하기 위한 수단으로서, 상기 이미지 데이터는 회전을 겪도록 상기 이미지의 래스터 스캔에 대응하고, 상기 이미지는 이미지 블록들의 다수의 행들 및 다수의 열들을 갖는, 상기 수신된 이미지 데이터를 인코딩하기 위한 수단;
    이미지 블록을 인코딩하여 인코딩된 이미지 블록으로 회전된 이미지 데이터를 표현하는 이미지 블록을 인코딩하기 위한 수단;
    상기 이미지의 회전에 기초하여 리드아웃 (readout) 순서로 상기 인코딩된 이미지 블록의 리드아웃 위치를 결정하기 위한 수단;
    상기 리드아웃 위치에 따라 상기 인코딩된 이미지 블록의 차분 DC 값을 생성하기 위한 수단; 및
    상기 인코딩된 이미지 블록을 저장하기 위한 수단을 더 포함하는, 장치.
  23. 제 21 항에 있어서,
    상기 제 1 차분 값은 JPEG (Joint Photographic Experts Group) 인코딩에서 이용되고,
    상기 장치는,
    재시작 (RST) 마커 및 DC 계수를 포함하는 인코딩된 JPEG 데이터를 수신하기 위한 수단, 및
    상기 RST 마커에 데이터를 오버라이팅하여, 마지막 최소 코딩된 유닛 (MCU) 의 엔드와 상기 RST 마커 간의 패딩 비트들의 수를 나타내기 위한 수단을 더 포함하는, 장치.
  24. 제 22 항에 있어서,
    상기 리드아웃 순서로 상기 인코딩된 이미지 블록을 검색하기 위한 수단을 더 포함하는, 장치.
  25. 컴퓨터 실행 가능한 코드를 저장한 컴퓨터 판독가능 저장 매체로서,
    이미지의 이미지 데이터를 판독하도록 컴퓨터에 의해 실행 가능한 코드로서, 상기 이미지 데이터는 복수의 이미지 블록들을 포함하는, 컴퓨터에 의해 실행 가능한 코드;
    이미지를 표현하는 이미지 데이터에 대해 회전 동작을 수행하도록 컴퓨터에 의해 실행 가능한 코드;
    상기 이미지 데이터의 회전 동작 동안 상기 이미지 데이터의 제 1 행의 제 1 블록의 제 1 DC 계수 값을 저장하도록 상기 컴퓨터에 의해 실행 가능한 코드;
    상기 이미지 데이터의 제 2 행의 제 1 블록의 제 2 DC 계수 값을 상기 제 1 DC 계수 값과 비교하여 제 1 차분 DC 값을 계산하도록 상기 컴퓨터에 의해 실행 가능한 코드;
    상기 회전 동작을 완료하기 전에 상기 제 1 차분 DC 값을 저장하도록 상기 컴퓨터에 의해 실행 가능한 코드; 및
    복수의 최소 코딩된 유닛 (Minimum Coded Unit, MCU) 들의 각각이 회전된 상기 이미지 데이터의 비트 스트림을 생성하고, 각각의 회전된 MCU 다음에 코드를 삽입함으로써, 상기 회전된 MCU들을 독립적으로 디코딩가능한 압축된 데이터의 피스들로 인코딩하도록 컴퓨터에 의해 실행가능한 코드를 포함하며,
    상기 코드는 각각의 MCU가 개별적으로 위치하고, 인덱싱되고, 상기 MCU들이 출력 데이터 스트림에서 나타날 순서에 따라 비트 스트림으로부터 추출되는 것을 허용하는, 컴퓨터 판독가능 저장 매체.
  26. 제 25 항에 있어서,
    상기 이미지 데이터의 상기 제 1 행의 제 2 블록의 제 3 DC 계수 값을 저장하도록 상기 컴퓨터에 의해 실행 가능한 코드;
    상기 이미지 데이터의 상기 제 2 행의 제 2 블록의 제 4 DC 계수 값을 상기 이미지 데이터의 상기 제 1 행의 상기 제 2 블록과 비교하여, 제 2 차분 DC 값을 계산하도록 상기 컴퓨터에 의해 실행 가능한 코드; 및
    상기 제 2 차분 DC 값을 저장하도록 상기 컴퓨터에 의해 실행 가능한 코드를 더 포함하는, 컴퓨터 판독가능 저장 매체.
  27. 제 25 항에 있어서,
    하드웨어 JPEG (Joint Photographic Experts Group) 인코더의 입력에서 회전 신호를 수신하도록 상기 컴퓨터에 의해 실행 가능한 코드; 및
    상기 회전 신호에 기초하여 상기 하드웨어 JPEG 인코더로부터 이미지 캡처 디바이스로 스캔 순서 신호를 전송하여, 상기 이미지 캡처 디바이스에서의 스캐닝 순서를 변경하도록 상기 컴퓨터에 의해 실행 가능한 코드를 더 포함하는, 컴퓨터 판독가능 저장 매체.
  28. 제 25 항에 있어서,
    재시작 (RST) 마커 및 DC 계수를 포함하는 인코딩된 JPEG 데이터를 수신하도록 상기 컴퓨터에 의해 실행 가능한 코드; 및
    상기 RST 마커에 데이터를 오버라이팅하여, 마지막 최소 코딩된 유닛 (MCU) 의 엔드와 상기 RST 마커 간의 패딩 비트들의 수를 나타내도록 상기 컴퓨터에 의해 실행 가능한 코드를 더 포함하는, 컴퓨터 판독가능 저장 매체.
KR1020117025973A 2009-04-01 2010-03-31 이미지를 회전시키기 위한 장치 및 방법 KR101336127B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/416,850 US20100254617A1 (en) 2009-04-01 2009-04-01 Apparatus and method to rotate an image
US12/416,850 2009-04-01
PCT/US2010/029366 WO2010114884A1 (en) 2009-04-01 2010-03-31 Apparatus and method to rotate an image

Publications (2)

Publication Number Publication Date
KR20120016078A KR20120016078A (ko) 2012-02-22
KR101336127B1 true KR101336127B1 (ko) 2013-12-04

Family

ID=42225035

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117025973A KR101336127B1 (ko) 2009-04-01 2010-03-31 이미지를 회전시키기 위한 장치 및 방법

Country Status (7)

Country Link
US (1) US20100254617A1 (ko)
EP (1) EP2415014A1 (ko)
JP (1) JP5502988B2 (ko)
KR (1) KR101336127B1 (ko)
CN (1) CN102369554B (ko)
TW (1) TW201119370A (ko)
WO (1) WO2010114884A1 (ko)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8934729B2 (en) 2006-09-30 2015-01-13 Texas Instruments Incorporated Method and apparatus for frame coding in vertical raster scan order for HEVC
GB2475721B (en) * 2009-11-27 2015-03-11 British Broadcasting Corp Picture encoding and decoding
JP5649338B2 (ja) * 2010-06-16 2015-01-07 キヤノン株式会社 画像処理装置及び画像処理方法
US10165276B2 (en) 2010-09-30 2018-12-25 Texas Instruments Incorporated Method and apparatus for frame coding in vertical raster scan order for HEVC
WO2012121744A1 (en) * 2011-03-10 2012-09-13 Vidyo, Inc Adaptive picture rotation
EP2684294A4 (en) 2011-03-10 2014-08-20 Vidyo Inc RENDERING ORIENTATION DATA IN A VIDEO DATA BIT TRAIN
US8947551B2 (en) * 2011-07-29 2015-02-03 Aptina Imaging Corporation Method and apparatus for frame rotation in the JPEG compressed domain
JP2013046281A (ja) * 2011-08-25 2013-03-04 Sony Corp 画像符号化装置と画像符号化方法およびプログラム
US9299166B2 (en) * 2012-12-13 2016-03-29 Qualcomm Incorporated Image compression method and apparatus for bandwidth saving
US9547083B2 (en) * 2014-09-12 2017-01-17 Qualcomm Incorporated Determining whether a target object was present during a scanning operation
CN104732486B (zh) * 2015-03-23 2017-10-03 海信集团有限公司 一种图片的显示方法及装置
US10123031B2 (en) * 2015-07-02 2018-11-06 Cisco Technology, Inc. MPEG-2 video watermarking technique
US20170372452A1 (en) * 2016-06-22 2017-12-28 Qualcomm Incorporated Image rotation method and apparatus
US10284838B2 (en) * 2016-08-19 2019-05-07 Titan Medical Inc. Method and apparatus for transmitting images captured by first and second image sensors
JP2020507094A (ja) * 2017-12-25 2020-03-05 歌爾科技有限公司GoerTek Technology Co., Ltd. レーザビーム走査式ディスプレイ機器及び拡張現実メガネ
CN113326818B (zh) * 2021-08-02 2021-09-24 湖南高至科技有限公司 视频编码的海量人脸识别方法、系统、设备和介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060228030A1 (en) * 2005-04-08 2006-10-12 Hadady Craig E Method and system for image compression for use with scanners

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5327248A (en) * 1992-03-23 1994-07-05 Ricoh Company, Ltd. Compressed image virtual editing system
US5751865A (en) * 1996-09-26 1998-05-12 Xerox Corporation Method and apparatus for image rotation with reduced memory using JPEG compression
US6298166B1 (en) * 1998-03-30 2001-10-02 Seiko Epson Corporation Image transformations in the compressed domain
US6148149A (en) * 1998-05-26 2000-11-14 Microsoft Corporation Automatic image rotation in digital cameras
US6941019B1 (en) * 2000-05-10 2005-09-06 International Business Machines Corporation Reentry into compressed data
US7146053B1 (en) * 2000-05-10 2006-12-05 International Business Machines Corporation Reordering of compressed data
KR100357437B1 (ko) * 2000-12-27 2002-10-19 한국전자통신연구원 네트워크상에서의 영상 부분 전송 장치 및 그 방법
KR101142584B1 (ko) * 2003-11-18 2012-05-10 스칼라도 아베 디지털 이미지 처리 방법 및 이미지 표현 포맷
JP2005223538A (ja) * 2004-02-04 2005-08-18 Toshiba Corp 画像処理回路
US7643694B2 (en) * 2004-12-31 2010-01-05 Zoran Corporation Method and apparatus for processing a compressed image in an order other than the order in which it was compressed
JP2006325186A (ja) * 2005-04-20 2006-11-30 Seiko Epson Corp 画像処理装置
US7742644B2 (en) * 2006-01-18 2010-06-22 Qualcomm Incorporated Processing of images in imaging systems
JP4666261B2 (ja) * 2006-06-01 2011-04-06 富士ゼロックス株式会社 画像処理装置及びプログラム
US8098959B2 (en) * 2008-10-29 2012-01-17 Aptina Imaging Corporation Method and system for frame rotation within a JPEG compressed pipeline

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060228030A1 (en) * 2005-04-08 2006-10-12 Hadady Craig E Method and system for image compression for use with scanners

Also Published As

Publication number Publication date
JP5502988B2 (ja) 2014-05-28
CN102369554A (zh) 2012-03-07
EP2415014A1 (en) 2012-02-08
WO2010114884A1 (en) 2010-10-07
CN102369554B (zh) 2015-01-14
TW201119370A (en) 2011-06-01
US20100254617A1 (en) 2010-10-07
JP2012523046A (ja) 2012-09-27
KR20120016078A (ko) 2012-02-22

Similar Documents

Publication Publication Date Title
KR101336127B1 (ko) 이미지를 회전시키기 위한 장치 및 방법
US7742644B2 (en) Processing of images in imaging systems
US8098959B2 (en) Method and system for frame rotation within a JPEG compressed pipeline
US8098941B2 (en) Method and apparatus for parallelization of image compression encoders
US8634663B2 (en) DVC as generic file format for plenoptic camera
KR101607295B1 (ko) 압축 파일 생성 방법 및 장치, 이와 관련된 카메라 모듈 및 이를 포함하는 단말기
US7821548B2 (en) Temporal image buffer for image processor using compressed raw image
US20090046160A1 (en) Camera shake correcting device
US20130222645A1 (en) Multi frame image processing apparatus
TW200844634A (en) Compressed domain image summation apparatus, systems, and methods
CN111510643B (zh) 全景图和特写图的拼接系统及方法
US8482633B2 (en) Apparatus and method for image processing using security function
CN111510717B (zh) 图像拼接方法和装置
JP2009194760A (ja) 画像符号化装置、画像復号化装置、画像符号化プログラム及び画像復号化プログラム
US20090167888A1 (en) Methods of processing imaging signal and signal processing devices performing the same
KR100935541B1 (ko) 이미지 신호의 처리 방법 및 이를 수행하는 신호 처리 장치
JP6702792B2 (ja) 画像処理装置およびその制御方法
KR101666927B1 (ko) 압축 파일 생성 방법 및 장치, 이를 포함하는 단말기
JP4921265B2 (ja) 撮像装置及び画像処理方法
JP2006333299A (ja) 符号化装置および符号化方法並びに画像形成装置
JP2006254333A (ja) 符号化装置と符号化方法とデジタルカメラ
KR100771138B1 (ko) 촬영 장치 및 영상 보정 방법
CN115811616A (zh) 一种视频编码、解码方法及装置
JP2006129295A (ja) 画像データ結合装置、画像データ結合方法、画像データ結合プログラム
JPH03136470A (ja) 電子カメラの画像データ処理装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20161028

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170929

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20180928

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20190924

Year of fee payment: 7