KR20100112654A - Jpeg 또는 다른 코딩 표준들을 위한 회전 트랜스코딩 - Google Patents

Jpeg 또는 다른 코딩 표준들을 위한 회전 트랜스코딩 Download PDF

Info

Publication number
KR20100112654A
KR20100112654A KR1020107020458A KR20107020458A KR20100112654A KR 20100112654 A KR20100112654 A KR 20100112654A KR 1020107020458 A KR1020107020458 A KR 1020107020458A KR 20107020458 A KR20107020458 A KR 20107020458A KR 20100112654 A KR20100112654 A KR 20100112654A
Authority
KR
South Korea
Prior art keywords
mcus
image
encoded image
coefficient values
image data
Prior art date
Application number
KR1020107020458A
Other languages
English (en)
Other versions
KR101241243B1 (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 KR20100112654A publication Critical patent/KR20100112654A/ko
Application granted granted Critical
Publication of KR101241243B1 publication Critical patent/KR101241243B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • 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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/18Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/40Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/48Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using compressed domain processing techniques other than decoding, e.g. modification of transform coefficients, variable length coding [VLC] data or run-length data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/59Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding

Landscapes

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

Abstract

본 발명은 JPEG 표준에 따라 인코딩된 이미지와 같은 인코딩된 이미지를 회전시키기 위한 기술들을 기술한다. 일례에서, 인코딩된 이미지를 회전시키기 위한 방법은 인코딩된 이미지의 특정 회전에 따라 인코딩된 이미지의 최소 코딩된 유닛(MCU)들을 재정렬(reorder)시키는 단계; 특정 회전에 따라 MCU들내의 이미지 데이터를 회전시키는 단계; 및 재정렬된 MCU들 및 MCU들내의 회전된 이미지 데이터를 포함하는, 인코딩된 이미지의 회전된 버전을 생성하는 단계를 포함한다.

Description

JPEG 또는 다른 코딩 표준들을 위한 회전 트랜스코딩{ROTATIONAL TRANSCODING FOR JPEG OR OTHER CODING STANDARDS}
본 발명은 이미지 처리, 특히 인코딩된 이미지들을 회전시키기 위한 기술들에 관한 것이다.
디지털 카메라들은 일반적으로 다양한 장치들에 통합된다. 이러한 개시에서, 디지털 카메라 장치는 정지 이미지(still image)들을 캡처(capture)할 수 있는 장치들 및 비디오를 기록하기 위하여 이미지들의 시퀀스들을 캡처할 수 있는 장치들을 포함하는, 하나 이상의 디지털 이미지들을 캡처할 수 있는 임의의 장치를 지칭한다. 예로서, 디지털 카메라 장치들은 스탠드-얼론(stand-alone) 디지털 카메라들 또는 디지털 비디오 캠코더들, 모바일, 셀룰라 또는 위성 무선 전화들과 같은 카메라-장착 무선 통신 장치 핸드셋들, 카메라-장착 개인휴대단말(PDA)들, 소위 "웹-캠(web-cam)들"과 같은 카메라들을 포함하는 컴퓨터 장치들, 또는 디지털 이미징 또는 비디오 능력들을 가진 임의의 장치들을 포함할 수 있다.
JPEG는 일반적으로 사용되는 이미지 압축 방법이다. 명칭 JPEG는 Joint Photographic Experts Group, 즉 표준을 만든 위원회의 명칭을 의미한다. JPEG 인코딩 프로세스는 여러 단계들을 포함한다. 첫째, 이미지의 화소들은 적색, 녹색 및 청색(RGB)으로부터 YCbCr로 변환될 수 있으며, YCbCr는 명도(brightness)를 나타내는 하나의 루마 성분(Y) 및 색을 나타내는 2개의 크로마 성분들(Cb 및 Cr)을 포함한다.
다음으로, 크로마 데이터의 해상도(resolution)는 명도 디테일(detail)들을 정제(fine)하는 것보다 색 디테일들을 정제하는 것이 인간의 눈에 덜 민감하다는 사실을 반영하기 위하여 예컨대 보통 인자 2만큼 감소될 수 있다. 다음으로, 이미지는 8x8 화소들의 블록들로 분할되며, 각각의 블록에 대하여 Y, Cb 및 Cr 데이터의 각각은 이산 코사인 변환(DCT)을 받는다. 다음으로, 주파수 성분들의 진폭들은 양자화된다. 인간의 시력이 고주파수 명도 변화들의 세기보다 넓은 영역들에 걸친 색 또는 명도의 변화들에 더 민감하기 때문에, 고주파수 성분의 크기(magnitude)는 저주파수 성분들보다 덜 정밀하게 저장될 수 있다. 인코더의 품질 세팅(quality setting)은 각각의 주파수 성분에 대한 해상도의 정도를 제어하기 위하여 조절될 수 있다. 만일 지나치게 낮은 품질 세팅이 사용되면, 고주파수 성분들은 함께 폐기될 수 있다.
DCT 프로세스 후에, 모든 8x8 블록들에 대한 결과적인 데이터는 예컨대 지그-재그 스캐닝(zig-zag scanning), 허프만 코딩(Huffman coding), 런-길이 코딩(run-length coding), 가변 길이 코딩(VLC: variable length coding) 방법들, 코딩된 블록 패턴(CBP: coded block pattern)들의 애플리케이션 등과 같은 엔트로피 코딩 기술들 및 차분 코딩(differential coding) 기술들을 사용하여 추가로 압축된다. 디코딩 프로세스는 디스플레이를 구동시키는데 사용될 수 있는 화소 값들의 어레이를 재생시키기 위하여 상이한 JPEG 코딩 단계들을 반대로 한다.
많은 이미징 애플리케이션들에서는 이미지의 회전(rotation)이 바람직하다. 예컨대, 만일 이미지가 90도 회전되는 카메라에 의하여 캡처되면, 이미지가 디스플레이상에서 출력될때 이미지가 회전되지 않도록 이미지 데이터를 회전시키는 것이 바람직할 수 있다. 통상적으로, 인코딩된 JPEG 이미지는 이미지를 디코딩하고 화소 도메인에서 디코딩된 이미지를 회전시킨후 회전된 이미지를 재-인코딩함으로써 회전된다. 이러한 통상적인 기술은 비압축된 이미지의 하나 이상의 복사본들의 일시적 저장과 회전 전 및 후에 압축된 이미지의 저장을 필요로 하기 때문에 매우 메모리 집약적(memory-intensive)이다.
본 발명은 JPEG 표준에 따라 인코딩된 이미지와 같은 인코딩된 이미지를 회전시키기 위한 기술들을 제시한다. 인코딩된 이미지는 다수의 최소 코딩된 유닛(MCU)들을 포함할 수 있다. 일례에서, MCU들은 이산 코사인 변환(DCT)을 통해 화소들의 8x8 블록들로부터 코딩된 이산 코사인 변환(DCT) 계수들의 블록들을 포함할 수 있다. 본 발명에 따르면, 이미지는 DCT 도메인으로부터 화소 도메인으로 MCU들을 완전하게 디코딩하지 않고 회전된다. 특히, 이미지는 DCT 도메인에서 회전될 수 있으며, 본 발명은 DCT 도메인에서의 이러한 회전을 용이하게 하는 프로세스들을 제안한다. 임의의 경우들에서, 차분 디코딩은 MCU들 각각의 저주파수(DC) 성분에 대하여 적용될 수 있으나, 이러한 경우에 MCU들의 고주파수(AC) 성분들은 데이터가 회전될때 DCT 도메인에 남는다.
본 발명에 따르면, 우선, MCU들은 MCU들이 원래의 인코딩된 이미지에 대하여 회전된 순서로 배치되도록 재정렬(reorder)될 수 있다. 다음으로, MCU들 각각내의 데이터가 회전될 수 있다. 이러한 방식에서, 인코딩된 이미지의 회전된 버전은 DCT 계수들의 모두를 화소 포맷으로 다시 디코딩하지 않고 생성된다. MCU들을 인덱싱하기 위한 기술들이 또한 제시되며, 이는 MCU들의 재정렬을 단순화시킬 수 있다. 게다가, 예컨대 인코딩된 이미지에 파일 크기 제약조건(constraint)들을 적용할 기회로서 이미지 회전 프로세스를 사용하는 추가적인 기술들이 제시된다. 이러한 경우에, 원래의 이미지는 파일 크기 제약조건들 없이 코딩될 수 있으며, 회전된 이미지는 파일 크기 제약조건들을 가지고 코딩될 수 있다. 일반적으로, 여기에 기술된 이미지 회전 프로세스는 파일 크기 제약조건들의 애플리케이션과 같은 다수의 추가 코딩 단계들을 수행할 기회를 제공할 수 있다.
일례에서, 본 발명은 인코딩된 이미지를 회전(rotate)시키기 위한 방법을 제공하는데, 상기 방법은 인코딩된 이미지의 특정 회전에 따라 상기 인코딩된 이미지의 MCU들을 재정렬(reorder)시키는 단계; 특정 회전에 따라 MCU들내의 이미지 데이터를 회전시키는 단계; 및 재정렬된 MCU들 및 MCU들내의 회전된 이미지 데이터를 포함하는, 인코딩된 이미지의 회전된 버전을 생성하는 단계를 포함한다.
다른 예에서, 본 발명은 인코딩된 이미지를 저장하는 메모리; 및 메모리로부터 인코딩된 이미지를 수신하고, 인코딩된 이미지의 특정 회전에 따라 인코딩된 이미지의 MCU들을 재정렬(reorder)시키며, 특정 회전에 따라 MCU들내의 이미지 데이터를 회전시키며, 그리고 재정렬된 MCU들 및 MCU들내의 회전된 이미지 데이터를 포함하는, 인코딩된 이미지의 회전된 버전을 생성하는 회전 트랜스코더(rotational transcoder)를 포함하는 장치를 제공한다.
또 다른 예에서, 본 발명은 인코딩된 이미지의 특정 회전에 따라 인코딩된 이미지의 MCU들을 재정렬시키기 위한 수단; 특정 회전에 따라 MCU들내의 이미지 데이터를 회전시키기 위한 수단; 및 재정렬된 MCU들 및 MCU들내의 회전된 이미지 데이터를 포함하는, 인코딩된 이미지의 회전된 버전을 생성하기 위한 수단을 포함하는 장치를 제공한다.
여기에서 제시된 이들 및 다른 기술들은 하드웨어, 소프트웨어, 펌웨어 또는 이들의 임의의 조합으로 구현될 수 있다. 소프트웨어로 구현되는 경우에, 소프트웨어는 범용 마이크로프로세서, 디지털 신호 프로세서(DSP), 주문형 집적회로(ASIC), 필드 프로그램가능 게이트 어레이(FPGA), 또는 다른 타입의 프로세서와 같은 프로세서에서 실행될 수 있다. 이러한 소프트웨어는 초기에 컴퓨터-판독가능 매체에 저장될 수 있으며, 인코딩된 이미지의 회전을 용이하게 하기 위하여 프로세서에 로딩되어 실행될 수 있다.
따라서, 또한, 본 발명은, 실행시 프로세서가, 인코딩된 이미지의 특정 회전에 따라 인코딩된 이미지의 MCU들을 재정렬시키며, 특정 회전에 따라 MCU들내의 이미지 데이터를 회전시키며, 그리고 재정렬된 MCU들 및 MCU들내의 회전된 이미지 데이터를 포함하는, 인코딩된 이미지의 회전된 버전을 생성하도록 하는 명령들을 포함하는 컴퓨터-판독가능 매체를 제공한다.
하나 이상의 실시예들의 세부사항들은 첨부 도면들 및 이하의 상세한 설명에서 제시된다. 다른 특징들, 목적들 및 장점들은 상세한 설명 및 도면들로부터 그리고 청구범위로부터 명백하게 될 것이다.
도 1은 본 발명의 기술들을 구현할 수 있는 예시적인 이미징 장치를 예시한 블록도이다.
도 2 및 도 3은 이미지를 회전시키기 위하여 사용될 수 있는 컴포넌트들을 예시한 블록도들이다.
도 4 및 도 5는 본 발명의 기술들에 따라 이미지를 회전시키기 위하여 사용될 수 있는 컴포넌트들을 예시한 블록도들이다.
도 6 및 도 7은 본 발명에 따라 이미지를 회전시키기 위한 기술들을 예시한 흐름도들이다.
도 8은 MCU들에 따라 인덱싱된 이미지를 도시한 개념도이다.
도 9는 본 발명에 따라 이미지를 회전시키기 위한 기술을 예시한 다른 흐름도이다.
본 발명은 인코딩된 이미지를 회전시키기 위한 기술들을 제시한다. 예로서, 인코딩된 이미지는 비록 본 발명의 기술들이 다른 이미지 압축 표준들에 적용가능할 수 있을지라도 JPEG(Joint Photographic Experts Group) 표준에 따라 인코딩된 이미지를 포함할 수 있다. 본 발명의 기술들은 정지 이미지들, 또는 비디오 시퀀스의 프레임들을 포함하는 인코딩된 이미지들을 회전시키기 위하여 사용될 수 있다. 사용자가 카메라 장치를 수평으로 할 것인지(landscape-orientation) 또는 수직으로 할 것인(portrait-orientation)인지에 관계없이 이미지 데이터가 동일한 스캔-라인 순서(scan-line order)로 생성되는 디지털 카메라 장치들에서 종종 회전이 필요하다. 이들 방위(orientation)들 중 적어도 하나의 방위에 있어서, 90 도, 180도 또는 270 도 회전이 바람직할 수 있다.
인코딩된 이미지는 다수의 최소 코딩된 유닛(MCU)들을 포함할 수 있다. MCU들은 이산 코사인 변환(DCT) 프로세스를 통해 인코딩되는 데이터의 블록들과 같은 인코딩된 데이터의 블록들을 포함할 수 있다. 이러한 경우에, MCU들은 이미지의 화소들의 블록들로부터 코딩되는 DCT 계수들의 블록들을 포함할 수 있다. 본 발명은 이러한 MCU들을 DCT 도메인으로부터 화소 도메인으로 다시 디코딩할 필요성 없이 이미지 회전을 용이하게 하는 기술들을 제공한다. 예컨대, 이미지는 DCT 도메인에서 회전될 수 있으며, 본 발명은 이러한 회전을 용이하게 할 수 있는 효율적은 프로세스들을 제안한다. 임의의 경우들에서, 만일 차분 코딩이 주어진 MCU의 저주파수(소위 "DC") 성분에 대하여 사용되면, DC 성분에 대한 이러한 차분 코딩은 디코딩될 수 있다. 그러나, 이러한 경우에, AC 계수들은 화소 도메인으로 디코딩되지 않으며, 이미지 회전은 DCT 도메인에 남아있는 AC 계수들에 대하여 발생한다.
본 발명에 따르면, MCU들은 MCU들이 원래의 인코딩된 이미지에 대하여 회전된 순서로 배치되도록 특정 회전에 따라 재정렬될 수 있다. MCU들의 이러한 재정렬을 용이하게 하기 위하여, 본 발명은 인덱싱 방식(indexing scheme)을 사용할 수 있다. 예컨대, JPEG 표준에 따르면, 인코딩된 이미지와 연관된 재시작 마커 값(restart marker value)은 1로 세팅될 수 있다. 이는 JPEG 이미지의 독립적으로 디코딩가능한 유닛을 형성하는 각각의 DCT 코딩된 MCU를 발생시킬 수 있다. 각각의 MCU는 인덱싱될 수 있고 MCU들은 이 인덱싱에 기초하여 재정렬된 방식으로 페치될 수 있어서, MCU들은 원래의 인코딩된 이미지에 대하여 회전된 순서로 배치된다. 다음으로, MCU들 각각 내의 데이터는 특정 회전에 따라 회전된다. 이러한 방식에서, DCT 기술들을 통해 코딩되는 MCU들을 포함하는 인코딩된 이미지는 DCT 계수들의 일부 또는 모두를 다시 화소 포맷으로 디코딩하지 않고 회전될 수 있다. 제시된 기술들은 이미지 회전과 연관된 메모리 요건(memory requirement)들을 현저하게 감소시킬 수 있다. 게다가, 예컨대 인코딩된 이미지에 파일 크기 제약조건들을 적용할 기회로서 이미지 회전 프로세스를 사용하는 추가 기술들이 여기에 개시된다. 이러한 경우에, 원래의 인코딩된 이미지는 파일 크기 제약조건들없이 코딩될 수 있으며, 회전된 이미지는 파일 크기 제약조건들을 가지고 코딩될 수 있다. 파일 크기 제약조건들의 애플리케이션은 원래의 인코딩된 이미지에 대하여 회전된 이미지의 압축을 야기할 수 있다.
도 1은 본 발명의 기술들을 구현하는 예시적인 디지털 카메라 장치(2)를 예시한 블록도이다. 예로서, 디지털 카메라 장치(2)는 스탠드-얼론 디지털 카메라, 디지털 비디오 캠코더, 셀룰라 또는 위성 무선 전화와 같은 카메라-장착 무선 통신 장치 핸드셋, 카메라-장착 개인휴대단말(PDA), 디지털 카메라, 웹-캠 등을 장착한 컴퓨터 장치, 또는 이미징 또는 비디오 능력들을 가진 임의의 다른 장치를 포함할 수 있다. 본 발명의 기술들은 예컨대 메모리가 제한되고 전력 소비가 중요한 카메라-장착 무선 통신 장치 핸드셋들의 무선 애플리케이션들에 대부분 적용가능하다. 도 1에 도시된 바와같이, 장치(2)는 이미지를 캡처(capture)하는 카메라(12)를 포함한다. 캡처된 이미지는 스틸 포토(still photo) 또는 비디오 시퀀스의 이미지 프레임을 포함할 수 있다. 후자의 경우에, 본 발명의 기술들은 비디오 시퀀스의 각각의 이미지 프레임에 대하여 연속적으로 사용될 수 있다. JPEG 코더(14)는 인코더 또는 결합된 인코더-디코더(CODEC)를 포함할 수 있다. JPEG 코더(14)는 JPEG 압축 표준에 따라 실시간으로 캡처된 이미지를 인코딩할 수 있다. 이러한 방식에서, JPEG 코더(14)는 캡처된 이미지에 기초하여 인코딩된 이미지를 생성하며, 여기서 인코딩된 이미지는 JPEG 표준에 따라 압축된다.
메모리(16)는 인코딩된 이미지를 저장한다. 원하는 경우에, 디스플레이(20)는 사용자에게 이미지의 디코딩된 버전을 디스플레이할 수 있다. JPEG 코더(14)는 또한 화소 데이터가 디스플레이(20)에 의하여 표시(present)될 수 있도록 인코딩된 이미지의 디코딩을 용이하게 할 수 있다. 디스플레이(20)는 음극선관(CRT), 액정 디스플레이(LCD), 플라즈마 디스플레이 또는 사용자에게 이미지들을 표시할 수 있는 임의의 디스플레이와 같은 임의의 타입의 디스플레이를 포함할 수 있다. 임의의 예들에서, 디스플레이(20)는 장치(2)의 뷰파인더 디스플레이를 포함할 수 있다. 데이터 통신 버스(15)는 장치(2)의 상이한 컴포넌트들간의 데이터 전송을 용이하게 한다. 그러나, 임의의 경우들에서, 카메라(12)는 전용 버스를 통해 JPEG 인코더(14)에 연결될 수 있으며, JPEG 인코더(14)는 이미지들이 수신될때 "인-라인(in-line)" 인코딩을 수행할 수 있다. 이러한 경우에, 여기에서 제시된 회전 트랜스코딩은 또한 이미지 회전을 언제든지 자동적으로 실행하는 인-라인 프로세스가 필요할때 고려될 수 있다. 이러한 회전은 사용자 입력에 기초하여 또는 가능한 경우에 이미지 캡처동안 카메라(12)의 방위에 기초하여 필요에 따라 결정될 수 있다.
장치(2)는 또한 많은 다른 컴포넌트들을 포함할 수 있다. 예컨대, 만일 장치(2)가 이동 전화 핸드셋과 같은 무선 통신 장치이면, 장치(2)는 이러한 무선 통신들을 용이하게 하기 위하여 안테나, 송신기, 수신기, 및 변조기와 같은 다양한 컴포넌트들을 포함할 수 있다. 그러나, 이들 추가 컴포넌트들은 간략화를 위하여 그리고 설명을 용이하게 하기 위하여 도 1로부터 생략된다.
본 발명에 따르면, 장치(2)는 본 발명에 따라 이미지 회전을 용이하게 하는 회전 트랜스코더(18)를 포함한다. 이를 수행하기 위하여, 회전 트랜스코더(18)는 인코딩된 이미지의 MCU들을 재정렬시키고 MCU들내의 이미지 데이터를 회전시키며, 따라서 MCU의 재정렬 및 이미지 데이터의 회전은 인코딩된 이미지의 회전된 버전을 생성한다. 인코딩된 이미지의 회전된 버전을 생성한 후에, 회전 트랜스코더(18)는 인코딩된 이미지의 회전된 버전을 메모리(16)에 출력시킬 수 있다. MCU들은 JPEG 표준에 따라 코딩되는 DCT 계수들의 블록들을 포함할 수 있다.
회전 트랜스코더(18)는 메모리(16)로부터 인코딩된 이미지를 페치할 수 있으며, 여기서 인코딩된 이미지는 하나 이상의 엔트로피 코딩 기술들을 통해 코딩된다. 회전 트랜스코더(18)는 MCU들을 재정렬시키기 전에 MCU들을 생성하기 위하여 인코딩된 이미지를 엔트로피 디코딩하며(entropy decode), 인코딩된 이미지의 회전된 버전을 출력하기전에 하나 이상의 엔트로피 코딩 기술들에 따라 인코딩된 이미지의 회전된 버전을 엔트로피 인코딩한다(entropy encode). 이러한 방식에서, 회전 트랜스코더(18)는 엔트로피 코딩을 제거하기 위하여 인코딩된 이미지의 부분 디코드(partial decode)를 수행할 수 있으나, 인코딩된 이미지의 DCT를 디코딩하지 않는다. 대신에, 회전 트랜스코더(18)는 DCT 도메인에서 인코딩된 이미지를 실질적으로 회전시킨후 회전된 이미지에 엔트로피 코딩을 재적용한다. 만일 차분 코딩이 DCT 계수들의 저주파수(DC) 성분에 대하여 사용되면, 회전 트랜스코더(18)는 차분 코딩이 제거될 수 있도록 DCT 계수들의 DC 성분을 디코딩할 수 있다. 그러나, 이러한 경우에, 주어진 MCU와 연관된 DCT 계수들의 AC 성분들은 이미지 회전 프로세스를 위하여 DCT 도메인에서 남아 있을 수 있다.
임의의 경우들에서, 재정렬된 MCU들을 처리할때, 회전 트랜스코더(18)는 파일 크기 제어 파라미터들을 적용할 수 있다. 이러한 경우에, 인코딩된 이미지의 회전된 버전은 파일 크기 제어 파라미터들을 따른다. 예컨대, 인코딩된 이미지의 회전된 버전은 파일 크기 제어 파라미터들에 따르기 위하여 원래 인코딩된 이미지(originally encoded image)에 비하여 압축될 수 있다. 파일 크기 제어 파라미터들의 애플리케이션은 통상적으로 초기 JPEG 코딩 프로세스 이후에 제 2 코딩 프로세스를 필요로 한다. 본 발명의 기술들은 회전 트랜스코딩의 부분으로서 파일 크기 제어 파라미터들을 적용하기 위한 변화를 제공할 수 있다. 이는 파일 크기 제어 파라미터들을 적용하는데 다른 방법으로 필요한 개별 코딩 프로세스를 제거할 수 있다. 대신에, 본 발명은 이미지의 회전을 수행하고 파일 크기 제어 파라미터들을 이미지에 적용하기 위하여 (초기 JPEG 인코딩 프로세스 후에) 단일 코딩 프로세스를 사용할 수 있다.
회전 트랜스코더(18)는 인코딩된 이미지에 1의 재시작 마커 값을 할당하고 재시작 마커 값에 기초하여 MCU들을 인덱싱하며 이 인덱싱에 기초하여 MCU들을 재정렬시킴으로써 MCU들을 재정렬시킬 수 있다. JPEG에 따른 재시작 마커 값은 JPEG 파일들을 더 탄력성있게(resilient) 만들기 위하여 할당되는 값을 지칭한다. 재시작 마커 값을 정의함으로써, MCU들의 세트들은 독립적으로 디코딩될 수 있으며, 따라서 만일 MCU들의 한 세트에서 에러가 발생하면 이러한 에러들은 MCU들의 다른 세트들로 전파되지 않을 것이다. 인코딩된 이미지에 1의 재시작 마커 값을 할당함으로써, 각각의 DCT 코딩된 MCU는 JPEG 이미지의 독립적으로 디코딩가능한 유닛을 형성한다. 각각의 MCU는 인덱싱될 수 있고 회전 트랜스코더(18)는 이 인덱싱에 기초하여 재정렬된 방식으로 MCU들을 페치하여, MCU들은 원래 인코딩된 이미지에 대하여 회전된 순서로 배치된다. 다음으로, 회전 트랜스코더(18)는 MCU들 각각내의 데이터를 회전시킨다. 인코딩된 이미지의 회전된 버전은 MCU들 각각에 대한 회전된 데이터를 가진 재정렬된 MCU들을 포함한다.
회전 트랜스코더(18)는 MCU들내의 이미지 데이터를 회전시킬때 2개 이상의 연산들을 수행할 수 있다. 예컨대, 회전 트랜스코더(18)는 MCU들의 계수 값들에 대하여 수직 플립 연산(vertical flip operation)을 수행할 수 있고, MCU들의 수직으로 플립된 계수 값들에 대하여 전치 연산(transpose operation)을 수행할 수 있다. 이는 90도 시계방향 이미지 회전을 야기할 수 있다. 다른 예에서, 회전 트랜스코더(18)는 MCU들의 계수 값들에 대하여 수직 플립 연산을 수행할 수 있고, MCU들의 수직으로 플립된 계수 값들에 대하여 수평 플립 연산을 수행할 수 있다. 이는 180도 시계방향 이미지 회전을 야기할 수 있다.
다른 예에서, 회전 트랜스코더(18)는 MCU들의 계수 값들에 대하여 수평 플립 연산을 수행할 수 있고, MCU들의 수평으로 플립된 계수 값들에 대하여 수직 플립 연산을 수행할 수 있다. 이는 180도 시계반대 방향 이미지 회전을 야기할 수 있다. 다른 예에서, 회전 트랜스코더(18)는 MCU들의 계수 값들에 대하여 전치 연산을 수행할 수 있고, MCU들의 전치된 계수 값들에 대하여 수직 플립 연산을 수행할 수 있다. 이는 279도 시계방향 이미지 회전을 야기할 수 있다. 회전 트랜스코더(18)는 특정 회전 레벨에 기초하여 원하는 이미지 회전량을 수행할 수 있으며, 특정 회전 레벨은 카메라(12)와 연관된 이미지 캡처 조건(condition)들에 기초하여 자동적으로 결정될 수 있거나 또는 장치(2)의 입력 유닛(도시안됨)을 통해 입력으로서 사용자로부터 수신될 수 있다.
도 2는 이미지를 회전시키기 위하여 사용될 수 있는 컴포넌트들을 예시한 블록도이다. 도 2에 도시된 바와같이, 카메라(22A)는 이미지를 캡처하며, 카메라(22A)의 판독(24A)은 JPEG 표준에 따라 이미지를 인코딩하는 JPEG 인코더(26A)에 제공된다. 메모리(28A)는 이미지의 인코딩된 JPEG 파일(30A)을 저장한다. 다음으로, JPEG 디코더(32A)는 JPEG 파일을 디코딩하고 메모리(28A)에 디코딩된 파일(34A)을 저장한다. 회전 및 복사 유닛(36A)은 메모리(28A)에 저장되는, 디코딩된 파일의 회전된 버전(38A)을 생성하기 위하여 디코딩된 파일(34A)에 대하여 회전 및 복사 연산들을 수행한다. 다음으로, JPEG 인코더(26A)는 디코딩된 파일의 회전된 버전(38A)을 인코딩하고, 메모리(28A)에 회전된 이미지(40A)의 인코딩된 JPEG 파일을 기록한다.
도 2의 컴포넌트들에 의하여 실행되는 프로세스에 따르면, 이미지는 JPEG 인코딩되고, 디코딩되며, 회전된후, 재인코딩된다. 불행하게도, 도 2의 컴포넌트들에 의하여 실행되는 프로세스는 매우 메모리 집약적이다. 특히, 메모리(28A)는 JPEG 파일(30A), 및 이미지의 2개의 디코딩된 버전들(34A, 38A)을 저장하는데 필요하다. 더욱이, 메모리(28A)는 또한 JPEG 파일(40A)을 저장한다. 게다가, 다수의 인코딩 및 디코딩 단계들이 이미지를 회전시키는 프로세스에 바람직하지 않은 지연(latency)을 추가할 수 있다. 본 발명의 기술들은 도 2의 컴포넌트들에 의하여 실행되는 프로세스에 따라 이미지 회전과 연관된 이러한 메모리 요건들을 감소시킬 수 있으며, 화소 포맷으로 이미지의 비압축된 디코딩된 버전들을 저장할 필요성을 방지할 수 있다.
도 3은 이미지를 회전시키기 위하여 사용될 수 있는 컴포넌트들을 예시한 다른 블록도이다. 도 3에 도시된 바와같이, 카메라(22B)는 이미지를 캡처하고, 파일(34B)에 대하여 임의의 JPEG 인코딩을 수행하지 않고 메모리(28B)에 카메라(22B)의 판독(24B)을 제공한다. 회전 및 복사 유닛(36B)은 메모리(28B)에 저장되는, 파일의 회전된 버전(38B)을 생성하기 위하여 파일(34B)에 대하여 회전 및 복사 연산을 수행한다. 다음으로, JPEG 인코더(26B)는 디코딩된 파일의 회전된 버전(38B)을 인코딩하고, 메모리(28B)에 회전된 이미지(40B)의 인코딩된 JPEG 파일을 저장한다. 도 3의 컴포넌트들에 의하여 수행되는 프로세스는 도 2의 컴포넌트들에 의하여 실행되는 프로세스보다 덜 메모리 집약적이고 덜 계산 집약적이다. 특히, 도 3의 컴포넌트들에 의하여 수행되는 프로세스에서는 도 2의 컴포넌트들에 의하여 실행되는 프로세스와 비하여 하나의 JPEG 인코딩 단계(26B) 및 하나의 JPEG 디코딩 단계(32B)가 제거된다. 또한, 메모리(28B)에 JPEG 파일(30B)을 저장할 필요성이 존재하지 않는다. 도 2에 비하여 도 3에서 제거된 유닛들은 점선으로 도시되고 엘리먼트들(50)로서 총칭된다. 그럼에도 불구하고, 도 3의 컴포넌트들에 의하여 실행되는 프로세스는 아직 매우 메모리 집약적이어서, 이미지 파일의 비압축된 버전들(34B, 38B)의 저장을 필요로 한다. 본 발명의 기술들은 도 2 및 도 3에 도시된 각각의 컴포넌트들에 의하여 실행되는 프로세스들에 비하여 이미지 회전과 연관된 메모리 요건들을 감소시킬 수 있다.
도 4는 본 발명에 따라 이미지를 회전시키기 위하여 사용될 수 있는 컴포넌트들을 예시한 블록도이다. 도 3에 도시된 바와같이, 카메라(22C)는 이미지를 캡처하고, 카메라(22C)의 판독(24C)은 JPEG 인코더(26C)에 제공된다. 도시된 바와같이, JPEG 인코더(26C)는 1의 재시작 마커 간격을 적용한다. 재시작 마커 값을 1로 세팅함으로써, 인코딩된 JPEG 파일(30C)의 각각의 MCU는 개별적으로 디코딩가능한 유닛이다. 이러한 경우에, 엔트로피 코딩은 단지 주어진 MCU에 적용될 수 있으며, 각각의 MCU가 그 자체적으로 독립적으로 디코딩가능하기 때문에 MCU들간에 확장되지 않을 수 있다. 인코딩된 JPEG 파일(30C)은 메모리(28C)에 저장된다.
본 발명에 따르면, 회전 트랜스코더(60C)는 JPEG 파일(30C)에 대하여 회전 트랜스코딩을 수행한다. 특히, 회전 트랜스코더(60C)는 JPEG 파일(30C)의 MCU들을 재정렬시킨다. 다음으로, 회전 트랜스코더(60C)는 MCU들내의 이미지 데이터를 회전시킨다. MCU들의 재정렬 및 회전 트랜스코더(60C)에 의한 MCU들내의 이미지 데이터의 회전은 인코딩된 이미지의 회전된 버전을 생성하며, 이는 메모리(28C)에 출력될 수 있고 회전된 이미지(40C)의 JPEG 파일로서 메모리에 저장될 수 있다.
회전 트랜스코더(60C)는 메모리(28C)로부터 인코딩된 JPEG 파일(30C)을 페치할 수 있으며, 여기서 인코딩된 이미지는 하나 이상의 엔트로피 코딩 기술들을 통해 코딩된다. 회전 트랜스코더(60C)는 MCU들을 재정렬 및 처리하기 전에 MCU들을 생성하기 위하여 인코딩된 이미지를 엔트로피 디코딩할 수 있으며, 인코딩된 이미지의 회전된 버전을 출력하기 전에 하나 이상의 엔트로피 코딩 기술들에 따라 인코딩된 이미지의 회전된 버전을 엔트로피 인코딩할 수 있다. 아러한 방식에서, 회전 트랜스코더(60C)는 엔트로피 코딩을 제거하기 위하여 인코딩된 이미지의 부분 디코딩을 수행할 수 있으나, 인코딩된 이미지의 DCT 코딩된 정보를 완전하게 디코딩하지 않는다. 대신에, 회전 트랜스코더(60C)는 DCT 도메인에서 인코딩된 이미지를 실질적으로 회전시킨후, 회전된 이미지에 엔트로피 코딩을 적용한다. 임의의 경우들에서, 만일 차분 코딩이 DCT 계수들의 저주파수(DC) 성분에 대하여 사용되면, 회전 트랜스코더(60C)는 이러한 차분 코딩을 제거하기 위하여 DCT 계수들의 DC 성분을 디코딩할 수 있다. 그러나, 이러한 경우에, DCT 계수들의 AC 성분들은 DCT 도메인에 남아 있을 수 있다.
도 4의 컴포넌트들에 의하여 실행되는 프로세스는 도 2 및 도 3의 컴포넌트들에 의하여 실행되는 프로세스들보다 훨씬 덜 메모리 집약적이다. 도 4의 컴포넌트들에 의하여 실행되는 프로세스에서는 메모리(28C)에 이미지의 디코딩된 버전들(34C, 38C)을 저장할 필요성이 제거될 수 있으며 회전 및 복사 유닛(36C)이 회전 트랜스코더(60C)에 의하여 대체된다. JPEG 인코더(26C')와 연관된 추가 단계가 또한 제거될 수 있다. 도 2의 유닛들에 비하여 도 4에서 제거된 유닛들은 점선들로 도시되며 엘리먼트들(52)로 총칭된다.
도 5는 본 발명에 따라 이미지를 회전시키기 위한 프로세스를 예시한 다른 블록도이다. 도 5에 도시된 바와같이, 카메라(22D)는 이미지를 캡처하며, 카메라(22D)의 판독(24D)은 JPEG 인코더(26D)에 제공된다. 도 4와 유사하게, 도 5의 JPEG 인코더(26D)는 1의 재시작 마커 간격을 적용한다. 다시, 1로 재시작 마커 값을 세팅함으로써, 인코딩된 JPEG 파일(30D)의 각각의 MCU는 개별적으로 디코딩가능한 유닛이다. 인코딩된 JPEG 파일(30D)은 메모리(28D)에 저장된다. 도 5에서, JPEG 인코더(26D)는 파일 크기 제어 파라미터들을 생성하고, 이들 파일 크기 제어 파라미터들을 회전 트랜스코더(60D)에 의한 애플리케이션을 위하여 포워딩한다. 파일 크기 제어 파라미터들은 인코딩된 JPEG 파일의 크기를 제한하기 위하여 사용될 수 있는 하나 이상의 파라미터들을 포함할 수 있다. 이러한 파라미터들은 데이터를 압축하기 위하여 DCT 계수들의 고주파수 AC 성분들의 감소 또는 제거를 야기할 수 있다. 일반적으로, 여기에 기술된 이미지 회전 프로세스는 파일 크기 제어 파라미터들 또는 다른 타입들의 파라미터들의 애플리케이션과 같은 다수의 추가 코딩 단계들을 수행할 기회를 제공할 수 있다.
회전 트랜스코더(60D)는 JPEG 파일(30D)에 대하여 회전 트랜스코딩을 수행한다. 게다가, 도 5의 예에서, 회전 트랜스코더(60D)는 JPEG 파일의 회전된 버전(파일 40D)이 크기 제한들 및/또는 제약조건들을 가지고 인코딩되도록 파일 크기 제어 파라미터들을 적용한다. 다시, 회전 트랜스코딩에서, 회전 트랜스코더(60D)는 JPEG 파일(30D)의 MCU들을 재정렬시키고, MCU들내의 이미지 데이터를 회전시킨다. MCU들의 재정렬 및 MCU들내의 이미지 데이터의 회전은 예컨대 사용자 입력으로서 수신되거나 또는 카메라(22D)의 방위에 기초하여 자동적으로 생성되는 특정 레벨 회전에 기초할 수 있다. 회전 트랜스코딩동안, 파일 크기 파라미터들은 인코딩된 JPEG 파일(40D)이 특정 크기 제한들내에 있도록 하기 위하여 회전 트랜스코더(60D)에 의하여 적용될 수 있다. 다시, 이러한 파라미터들은 파라미터들에 의하여 특정된 파일 크기 제약조건들 하에서 데이터를 압축하기 위하여 회전 트랜스코더(60D)가 DCT 계수들의 하나 이상의 고주파수 AC 성분들을 감소시키거나 또는 제거하도록 할 수 있다. 인코딩된 이미지의 회전된 버전은 메모리(28D)에 출력되고, 크기 제한들을 가진 회전된 이미지의 JPEG 파일(40D)로서 메모리에 저장된다.
앞서 언급된 바와같이, 회전 트랜스코더(60D)는 메모리(28D)로부터 인코딩된 JPEG 파일(30D)을 페치할 수 있으며, 여기서 인코딩된 이미지는 하나 이상의 엔트로피 코딩 기술들을 통해 코딩된다. 회전 트랜스코더(60D)는 MCU들을 재정렬시키기 전에 MCU들을 생성하기 위하여 인코딩된 이미지를 엔트로피 디코딩하는 엔트로피 디코딩 컴포넌트들을 포함할 수 있다. 더욱이, 회전 트랜스코더(60D)는 예컨대 인코딩된 이미지의 회전된 버전을 출력하기 전에 하나 이상의 엔트로피 코딩 기술들에 따라 인코딩된 이미지의 회전된 버전을 엔트로피 인코딩하기 위한 엔트로피 인코딩 컴포넌트들을 포함할 수 있다. 이러한 방식에서, 회전 트랜스코더(60D)는 엔트로피 코딩을 제거하기 위하여 인코딩된 이미지의 부분 디코딩을 수행할 수 있으나, 인코딩된 이미지의 DCT를 디코딩하지 않는다. 대신에, 회전 트랜스코더(60D)는 DCT 도메인에서 인코딩된 이미지를 실질적으로 회전시킨후, 회전된 이미지에 임의의 엔트로피 코딩을 재적용한다. 그러나, 임의의 경우에, 만일 차분 코딩이 DCT 계수들의 저주파수(DC) 계수에 대하여 사용되면, 회전 트랜스코더(60D)는 이러한 차분 코딩이 제거될 수 있도록 DC 계수를 디코딩할 수 있다. 이러한 경우에, DCT 계수들의 고주파수(AC) 계수들은 DCT 도메인에 남아 있을 수 있다.
파일 크기 파라미터들의 애플리케이션은 MCU들내의 소위 고주파수 DCT 계수 값들을 감소시키거나 또는 제거할 수 있다. 고주파수 값들은 전체 MCU의 평균 강도(average intensity)를 나타내는 저주파수 "DC" 값과 대조적으로 때때로 AC 값들로 불린다. 도 5에 따르면, 회전 트랜스코더(60D)는 이미지를 회전시킬 뿐만아니라, 파일 크기 파라미터들에 의하여 명령되는 크기 제한들을 가지는 JPEG 파일(40D)을 생성하기 위하여 파일 크기 파라미터들을 적용하는데 사용될 수 있다. 일반적으로, 여기에 기술된 이미지 회전 프로세스는 파일 크기 제어 파라미터들 또는 통상적으로 초기 JPEG 인코딩 패스(pass) 후에 제 2 코딩 패스를 통해 적용될 수 있는 다른 타입들의 파라미터들의 애플리케이션과 같은 다수의 추가 코딩 단계들을 수행할 기회를 제공할 수 있다.
도 4의 컴포넌트들에 의하여 실행되는 프로세스와 유사하게, 도 5의 컴포넌트들에 의하여 실행되는 프로세스는 도 2 및 도 3의 컴포넌트들에 의하여 실행되는 프로세스들보다 훨씬 덜 메모리 집약적이다. 도 5의 컴포넌트들에 의하여 실행되는 프로세스에서는 메모리(28D)에 이미지의 디코딩된 버전들(34D, 38D)을 저장할 필요성이 제거될 수 있으며 회전 및 복사 유닛(36D)이 회전 트랜스코더(60D)에 의하여 대체될 수 있다. JPEG 인코더(26D')에 의하여 수행되는 추가 단계가 또한 제거될 수 있다. 도 2의 컴포넌트들에 비하여 도 5에서 제거된 컴포넌트들은 점선들로 도시되며 엘리먼트들(54)로서 총칭된다.
도 6은 본 발명에 따른 기술을 예시한 흐름도이다. 도 6은 도 1의 장치(2)의 관점에서 기술될 것이다. 도 6에 도시된 바와같이, 장치(2)의 회전 트랜스코더(18)는 MCU들을 생성하기 위하여 인코딩된 파일과 연관된 이미지 데이터를 부분적으로 디코딩한다(61). 예로서, 인코딩된 파일은 DCT 인코딩 및 엔트로피 인코딩 모두를 포함하는 JPEG 파일을 포함할 수 있다. 부분적 디코딩 프로세스(61)는 엔트로피 디코딩을 포함할 수 있으나, 화소 도메인으로 DCT 계수들을 다시 완전하게 디코딩하지 않는다.
회전 트랜스코더(18)는 MCU들을 재정렬시킨다(62). 예컨대, MCU들은 MCU들이 원래의 이미지에 대하여 회전된 방식으로 표시되도록 재정렬될 수 있다. 다음으로, 회전 트랜스코더(18)는 MCU들 각각내의 이미지 데이터를 회전시키기 위하여 MCU들 각각 내의 이미지 데이터를 처리한다(63). 따라서, 회전 트랜스코더는 먼저 MCU들을 재정렬시킨 후(62), MCU들 각각내의 이미지 데이터를 회전시킨다(63). 단계(62) 및 단계(63)는 이미지의 회전된 버전을 생성한다. 즉, 회전 트랜스코더(18)는 재정렬된 MCU들 및 MCU들내의 회전된 이미지 데이터를 포함하는 이미지의 회전된 버전을 생성한다(64). 그러나, 단계(62) 및 단계(63)는 임의의 실시예들에서 뒤 바뀔 수 있다.
재정렬된 MCU들 및 MCU들내의 회전된 이미지 데이터를 포함하는 이미지의 회전된 버전을 생성한후(64), 회전 트랜스코더(18)는 MCU들을 재인코딩한다(65). 이러한 재인코딩 프로세스 단계(65)는 부분적 디코딩 프로세스 단계(61)의 반대이다. 따라서, 단계(61)가 엔트로피 디코딩을 포함하는 예에서, 단계(65)는 MCU들을 엔트로피 인코딩하는 단계를 포함할 수 있다. 다음으로, 회전 트랜스코더(18)는 이미지 데이터의 회전된 버전, 예컨대 회전된 JPEG 파일을 메모리(16)에 출력한다(66).
도 7은 본 발명에 따른 예시적인 회전 트랜스코딩 프로세스를 예시한 다른 흐름도이다. 도 7은 도 1의 예시적인 장치(2)의 관점에서 기술될 것이다. 도 7에 도시된 바와같이, 장치(2)의 메모리(16)는 JPEG 인코더(14)에 의하여 인코딩될 수 있는 이미지(80)의 JPEG 비트스트림을 오리지날로(originally) 저장할 수 있다. 회전 트랜스코더(18)는 JPEG 비트스트림의 MCU들을 인덱싱하기 위하여 재시작(RST) 마커들을 사용한다(71). 특히, 1의 재시작 마커 값을 선택함으로써, MCU들의 각각은 개별적으로 디코딩가능한 유닛을 포함할 수 있다. 이미지(82)는 1의 재시작 마커들을 가진 MCU들로 분리된 이미지의 예를 예시한다.
다음으로, 회전 트랜스코더(18)는 회전 순서로 MCU 비트스트림을 페치한다(72). 이는 MCU들을 재정렬시킨다. 예컨대, 이미지(84)에 도시된 바와같이, MCU들은 이미지(82)의 MCU들에 대하여 MCU들의 회전을 야기하는 순서로 페치될 수 있다. 예컨대, 90도 회전에 대하여, 페치된 제 1 MCU는 이미지(84)의 하부 좌측 코너의 MCU일 수 있으며, 페치된 마지막 MCU는 이미지(84)의 상부 우측 코너의 MCU일 수 있다. MCU들은 이미지(84)내에 예시된 화살표들에 의하여 도시된 순서대로 페치될 수 있다.
회전 트랜스코더(18)는 MCU들의 각각을 허프만 디코딩 그리고 역 지그-재그 스캔한다(73). 허프만 디코딩 및 역 지그-재그 스캐닝의 이러한 프로세스는 엔트로피 디코딩으로서 여기에서 지칭될 수 있다. 다음으로, 회전 트랜스코더(18)는 단지 각각의 MCU의 DC 계수를 디코딩할 수 있으며 각각의 MCU에 DC 차분 디코딩을 적용할 수 있다(74). DC 차분 디코딩 단계(74)는 DCT 계수들의 DC 계수에 적용된 임의의 차분 코딩을 제거할 수 있다. 이를 수행하기 위해서는 적어도 각각의 MCU의 DC 계수의 부분적 디코딩을 필요로 할 수 있으나, 이 경우에 AC 계수들은 DCT 도메인에서 계속 코딩된다.
회전 트랜스코더(18)는 양자화된 DCT 계수들을 회전시킨다(75). 이미지(84)에 도시된 MCU 페칭의 예에서, 이러한 회전은 90도 회전일 수 있다. 그러나, 180도 회전 또는 270도 회전이 또한 수행될 수 있다. 90도, 180도 또는 270도 회전을 위하여 MCU들에 적용될 수 있는 예시적인 매트릭스 변환 수식들은 도 7의 단계(75) 다음에 리스트된다. 특히, 90도 회전은 다음과 같은 수식을 적용함으로써 달성될 수 있다.
Figure pct00001
180도 회전은 다음과 수식을 적용함으로써 달성될 수 있다.
Figure pct00002
270도 회전은 다음과 같은 수식을 적용함으로써 달성될 수 있다.
Figure pct00003
일단 MCU들의 계수들이 회전되면, 회전 트랜스코더(18)는 MCU들을 지그-재그 스캔 및 허프만 인코딩한다(76). 이러한 지그-재그 스캐닝 및 허프만 인코딩 프로세스는 엔트로피 인코딩으로 여기에서 지칭될 수 있다. 회전 트랜스코더(18)는 회전된 이미지(86)의 JPEG 비트스트림을 메모리(16)에 출력할 수 있다.
(MCU들의 재정렬후에) MCU들 각각내의 DCT 계수들을 회전시키기 위하여, 회전 트랜스코더(18)는 이하의 계산들 중 하나 이상의 계산을 수행할 수 있다. 예컨대,
Figure pct00004
로 한다.
여기서 C는 DCT 커널이고, x는 화소 값들의 매트릭스를 나타내며, X는 DCT 값들의 매트릭스를 나타낸다. C 및 x의 예들은 이하에 도시된다.
Figure pct00005
Figure pct00006
만일 화소 매트릭스(x)가 화소 도메인에서 전치(transpose)되면, 대응하는 DCT 매트릭스(X)는 다음과 같은 연산에 따라 전치된다.
Figure pct00007
공간 도메인 수직 플립 연산은 다음과 같이 주어질 수 있다.
Figure pct00008
Figure pct00009
여기서,
Figure pct00010
는 MCU의 화소 값들의 원래의 매트릭스를 나타내며,
Figure pct00011
는 수직으로 플립되는 매트릭스를 나타낸다.
DCT 도메인에서 수직 플립 연산에 대한 등가 연산은 다음과 같이 주어진다.
Figure pct00012
유사하게, DCT 도메인에서 수평 플립 연산을 위한 연산은 다음과 같이 주어질 수 있다.
Figure pct00013
공간 도메인에서, 90도 시계방향 회전은 2개의 연산들, 즉 수직 플립 연산과 이 수직 플립 연산 후 전치 연산으로 분할될 수 있다. 전치 연산은 매트릭스 연산 T를 지칭하며, 여기서 임의의 매트릭스 A는 특성
Figure pct00014
을 가진다. DCT 도메인에서 90도 회전을 위한 DCT 연산들은 수직 플립 및 이 다음의 전치의 조합에 의하여 주어질 수 있으며, 이는 다음과 같이 총괄하여 표현될 수 있다.
Figure pct00015
180도 시계방향 회전이 또한 2개의 연산들, 즉 수직 플립 및 수평 플립으로 분할될 수 있다. 따라서, DCT 도메인에서 180도 회전을 위한 DCT 연산들은 다음과 같이 주어질 수 있다.
Figure pct00016
270도 시계방향 회전이 또한 2개의 연산들, 즉 전치 및 이 다음의 수직 플립으로 분할될 수 있다. 따라서, DCT 도메인에서 270도 회전을 위한 DCT 연산들은 다음과 같이 주어질 수 있다.
Figure pct00017
임의의 경우들에서, DCT 도메인에서의 이미지 회전에는 DCT 양자화 및 지그-재그 스캔 연산들이 포함될 수 있거나 또는 결합될 수 있다. 원하는 회전에 기초하여, 양자화 파라미터들의 부호(sign)들이 앞의 수식들에 의하여 기술된 바와같이 변경될 수 있다. 유사하게, 만일 전치 연산이 필요하면, 전치 연산은 DCT 변환 연산들과 결합될 수 있거나 또는 회전 트랜스코딩동안 적용되는 지그-재그 스캔 테이블에 결합될 수 있다. 따라서, 회전 트랜스코더(18)에 의하여 수행되는 회전 연산들은 개별 연산들로서 적용될 필요가 없으나, 여기에서 논의된 엔트로피 디코딩 또는 엔트로피 인코딩 단계들과 결합될 수 있다.
도 8은 MCU들에 따라 인덱싱되는 이미지를 도시한 개념도이다. 특히, JPEG 파일의 재시작 마커 값을 1로 할당함으로써, JPEG 파일의 각각의 MCU는 개별적으로 디코딩가능한 유닛을 포함할 수 있다. 이는 임의의 엔트로피 코딩이 각각의 MCU내에서 수행될 필요가 있다는 것을 의미하며, 엔트로피 코딩은 MCU들간에 확장되지 않는다. 게다가, 각각의 MCU는 도 8에 도시된 바와같이 래스터 순서로 자동적으로 인덱싱될 수 있다. 일단 이러한 인덱싱이 수행되면, 회전 트랜스코더(18)(도 1)는 특정 회전에 따라 메모리(16)로부터 MCU들을 페치할 수 있다. 예컨대, 90도 회전을 위하여, 회전 트랜스코더(18)는 도 7에 도시된 인덱스 번호들에 따라 다음과 같은 순서(85, 73, 61, 49, 37, 25, 13, 1, 86, 74, 62 등)로 MCU들을 페치할 수 있다. 180도 회전을 위하여, 회전 트랜스코더(18)는 역순서(96, 95, 94, 93, 92, 91, 90, 89, 88, 87, 86, 85, 84, 83 등)로 MCU들을 페치할 수 있다. 279도 회전을 위하여, 회전 트랜스코더(18)는 도 7에 도시된 인덱스 번호들에 따라 다음과 같은 순서(12, 24, 36, 48, 60, 72, 84, 96, 11, 23, 35 등)로 MCU들을 페치할 수 있다. 이러한 방식에서, 인덱싱은 이미지 회전을 가능하게 하는 방식으로 데이터를 처리하기 위하여 메모리 페치들을 용이하게 한다. 주어진 MCU을 페치할때, 그 MCU내의 데이터는 여기에서 어드레싱되는 바와같이 회전된다. 재정렬된 MCU들내의 데이터의 재정렬 및 회전은 예컨대 MCU들이 화소 도메인으로 다시 완전하게 디코딩될 것을 필요로 하지 않고 이미지의 회전된 버전을 집합적으로 생성한다.
도 9는 본 발명에 따라 이미지를 회전시키기 위한 기술을 예시한 또 다른 흐름도이다. 도 9는 도 1의 장치(2)의 관점으로부터 기술될 것이다. 도 9에 도시된 바와같이, 장치(2)의 회전 트랜스코더(18)는 MCU들을 생성하기 위하여 인코딩된 파일과 연관된 이미지 데이터를 부분적으로 디코딩한다(91). 예로서, 인코딩된 파일은 DCT 인코딩 및 엔트로피 인코딩 모두를 포함하는 JPEG 파일을 포함할 수 있다. 부분적 디코딩 프로세스(91)는 엔트로피 디코딩을 포함할 수 있으나, 화소 도메인으로 다시 DCT 계수들을 완전하게 디코딩하지 않는다. 논의된 바와같이, 임의의 경우들에서, 저주파수 DC 계수는 차분 코딩을 제거하기 위하여 디코딩될 수 있는 반면에, 고주파수 AC 계수들은 DCT 도메인에 남는다.
회전 트랜스코더(18)는 MCU들을 재정렬시킨다(92). 예컨대, MCU들은 MCU들이 원래의 이미지에 대하여 회전된 방식으로 표시되도록 재정렬될 수 있다. 다음으로, 회전 트랜스코더(18)는 파일 크기 파라미터들을 적용하고 MCU들 각각 내의 이미지 데이터를 회전시키기 위하여 MCU들 각각 내의 이미지 데이터를 처리한다(93). 따라서, 회전 트랜스코더는 우선 MCU들을 재정렬시키고(92), 그 다음에 MCU들 각각내의 이미지 데이터를 회전시킨다(93). 단계(92) 및 단계(93)는 파일 크기 제약조건들에 따르는 이미지의 회전된 버전의 생성을 야기한다. 즉, 회전 트랜스코더(18)는 재정렬된 MCU들 및 MCU들내의 회전된 이미지 데이터를 포함하는 이미지의 회전된(가능한 경우에 압축된) 버전을 생성한다(94). 회전된 이미지 데이터는 파일 크기 제약조건들에 기초하여 압축될 수 있다. 예컨대, 파일 크기 파라미터들은 파일 크기 제한들을 특정할 수 있으며, 회전 트랜스코더(18)는 회전된 이미지가 파일 크기 제약조건들을 초과하지 않도록 (예컨대, 고주파수 DCT 성분들과 연관된 값들을 감소시키거나 또는 제거함으로써) 데이터를 압축시킬 수 있다. 단계(92) 및 단계(93)는 임의의 실시예들에서 뒤바뀔 수 있다.
재정렬된 MCU들 및 MCU들내의 회전된 이미지 데이터를 포함하는 이미지의 회전된(그리고 가능한 경우 압축된) 버전을 생성한후에(94), 회전 트랜스코더(18)는 MCU들을 재인코딩한다(95). 단계(95)의 이러한 재인코딩 프로세스는 단계(91)의 부분적 디코딩 프로세스의 반대이다. 따라서, 단계(91)가 엔트로피 디코딩을 포함하는 예에서, 단계(95)는 MCU들을 엔트로피 인코딩하는 단계를 포함할 수 있다. 다음으로, 회전 트랜스코더(18)는 메모리(16)에 이미지 데이터의 회전된 버전, 예컨대 회전된 JPEG 파일을 출력한다(96).
여기에서 제시된 기술들은 하드웨어, 소프트웨어, 펌웨어 또는 이들의 임의의 조합으로 구현될 수 있다. 기술된 유닛들, 모듈들 또는 컴포넌트들의 일부는 집적 논리 장치로 함께 구현될 수 있거나 또는 개별적이나 상호 정보 교환 가능한 장치들로서 개별적으로 구현될 수 있다. 만일 소프트웨어로 구현되면, 기술들은 실행될때 앞서 기재된 기술들 중 하나 이상의 기술들을 수행하는 명령들을 포함하는 컴퓨터-판독가능 매체에 의하여 적어도 부분적으로 실현될 수 있다. 컴퓨터-판독가능 매체는 패키징 자료들을 포함할 수 있는 컴퓨터 프로그램 제품의 부분을 형성할 수 있다. 컴퓨터 판독가능 매체는 동기식 동적 랜덤 액세스 메모리(SDRAM)와 같은 랜덤 액세스 메모리(RAM), 판독-전용 메모리(ROM), 비휘발성 랜덤 액세스 메모리(NVRAM), 전기적 소거가능 프로그램가능 판독-전용 메모리(EEPROM), FLASH 메모리, 자기적 또는 광학적 데이터 저장 매체 등을 포함할 수 있다. 부가적으로 또는 대안적으로, 기술들은 명령들 또는 데이터 구조들을 반송(carry)하거나 또는 통신하며 컴퓨터에 의하여 액세스되고 판독되며 및/또는 실행될 수 있는 컴퓨터-판독가능 통신 매체에 의하여 적어도 부분적으로 실현될 수 있다.
명령들은 하나 이상의 디지털 신호 프로세서(DSP)들, 범용 마이크로프로세서들, 주문형 집적회로(ASIC)들, 필드 프로그램가능 논리 어레이(FPGA)들, 또는 다른 균등한 집적 또는 개별 논리 회로와 같은 하나 이상의 프로세서들에 의하여 실행될 수 있다. 따라서, 여기에서 사용된 용어 "프로세서"는 전술한 구조 또는 여기에서 제시된 기술들의 구현에 적합한 임의의 다른 구조의 일부를 지칭할 수 있다. 더욱이, 임의의 경우들에서, 여기에 기술된 기능은 전용 소프트웨어 모듈들, 하드웨어 모듈들, 또는 이들의 임의의 조합내에 제공될 수 있다.
만일 하드웨어로 구현되거나 또는 하드웨어 및 소프트웨어의 조합으로 구현되면, 여기에서 제시된 기술들은 도 1에 도시된 회전 트랜스코더(18) 또는 가능한 경우에 도 1에 도시된 컴포넌트들의 조합을 포함할 수 있는, 장치, 디바이스 또는 집적회로에 내장될 수 있다. 예컨대, 집적회로는 여기에서 제시된 기술들중 하나 이상의 기술을 수행하도록 구성될 수 있다. 이 경우에, 집적회로는 인코딩된 이미지의 MCU들을 재정렬시키고, 인코딩된 이미지의 회전된 버전을 생성하기 위하여 MCU들내의 이미지 데이터를 회전시키도록 재정렬된 MCU들을 처리하며, 인코딩된 이미지의 회전된 버전을 출력하도록 구성될 수 있다.
이들 및 다른 예들은 이하의 청구범위내에 있다.

Claims (43)

  1. 인코딩된 이미지를 회전(rotate)시키기 위한 방법으로서,
    상기 인코딩된 이미지의 특정 회전에 따라 상기 인코딩된 이미지의 최소 코딩된 유닛(MCU)들을 재정렬(reorder)시키는 단계;
    상기 특정 회전에 따라 상기 MCU들내의 이미지 데이터를 회전시키는 단계; 및
    재정렬된 MCU들 및 상기 MCU들내의 회전된 이미지 데이터를 포함하는, 상기 인코딩된 이미지의 회전된 버전(version)을 생성하는 단계를 포함하는,
    인코딩된 이미지를 회전시키기 위한 방법.
  2. 제 1항에 있어서, 상기 MCU들은 JPEG(Joint Photographic Experts Group) 표준에 따라 코딩된 이산 코사인 변환(DCT) 계수들의 블록들을 포함하는, 인코딩된 이미지를 회전시키기 위한 방법.
  3. 제 1항에 있어서, 상기 인코딩된 이미지를 페치(fetch)하는 단계 ― 상기 인코딩된 이미지는 하나 이상의 엔트로피 코딩 기술들을 통해 코딩됨 ―;
    상기 MCU들을 재정렬시키고 상기 MCU들내의 이미지 데이터를 회전시키기 전에 상기 MCU들을 생성하기 위하여 상기 인코딩된 이미지를 엔트로피 디코딩하는 단계; 및
    상기 하나 이상의 엔트로피 코딩 기술들에 따라 상기 인코딩된 이미지의 회전된 버전을 엔트로피 인코딩하는 단계를 더 포함하는, 인코딩된 이미지를 회전시키기 위한 방법.
  4. 제 1항에 있어서, 이미지를 캡처(capture)하는 단계; 및
    캡처된 이미지에 기초하여 상기 인코딩된 이미지를 생성하는 단계를 더 포함하는, 인코딩된 이미지를 회전시키기 위한 방법.
  5. 제 1항에 있어서, 상기 MCU들을 처리하는 단계는 파일 크기 제어 파라미터들을 적용하는 단계를 포함하며, 상기 인코딩된 이미지의 회전된 버전은 상기 파일 크기 제어 파라미터들에 따르는, 인코딩된 이미지를 회전시키기 위한 방법.
  6. 제 1항에 있어서, 상기 MCU들을 재정렬시키는 단계는,
    상기 인코딩된 이미지에 1의 재시작 마커 값(restart marker value)을 할당하는 단계;
    상기 재시작 마커 값에 기초하여 상기 MCU들을 인덱싱(indexing)하는 단계; 및
    상기 인덱싱에 기초하여 상기 MCU들을 재정렬시키는 단계를 포함하는,
    인코딩된 이미지를 회전시키기 위한 방법.
  7. 제 1항에 있어서, 상기 MCU들내의 이미지 데이터를 회전시키는 단계는,
    상기 MCU들의 계수 값들에 대하여 수직 플립 연산(vertical flip operation)을 수행하는 단계; 및
    상기 MCU들의 수직으로 플립된 계수 값들에 대하여 전치 연산(transpose operation)을 수행하는 단계를 포함하는, 인코딩된 이미지를 회전시키기 위한 방법.
  8. 제 1항에 있어서, 상기 MCU들내의 이미지 데이터를 회전시키는 단계는,
    상기 MCU들의 계수 값들에 대하여 수직 플립 연산을 수행하는 단계; 및
    상기 MCU들의 수직으로 플립된 계수 값들에 대하여 수평 플립 연산(horizontal flip operation)을 수행하는 단계를 포함하는, 인코딩된 이미지를 회전시키기 위한 방법.
  9. 제 1항에 있어서, 상기 MCU들내의 이미지 데이터를 회전시키는 단계는,
    상기 MCU들의 계수 값들에 대하여 수평 플립 연산을 수행하는 단계; 및
    상기 MCU들의 수평으로 플립된 계수 값들에 대하여 수직 플립 연산을 수행하는 단계를 포함하는, 인코딩된 이미지를 회전시키기 위한 방법.
  10. 제 1항에 있어서, 상기 MCU들내의 이미지 데이터를 회전시키는 단계는,
    상기 MCU들의 계수 값들에 대하여 전치 연산을 수행하는 단계; 및
    상기 MCU들의 전치된(transposed) 계수 값들에 대하여 수직 플립 연산을 수행하는 단계를 포함하는, 인코딩된 이미지를 회전시키기 위한 방법.
  11. 인코딩된 이미지를 저장하는 메모리; 및
    상기 메모리로부터 상기 인코딩된 이미지를 수신하고, 상기 인코딩된 이미지의 특정 회전에 따라 상기 인코딩된 이미지의 최소 코딩된 유닛(MCU)들을 재정렬시키며, 상기 특정 회전에 따라 상기 MCU들내의 이미지 데이터를 회전시키며, 그리고 재정렬된 MCU들 및 상기 MCU들내의 회전된 이미지 데이터를 포함하는, 상기 인코딩된 이미지의 회전된 버전을 생성하는 회전 트랜스코더(rotational transcoder)를 포함하는,
    장치.
  12. 제 11항에 있어서, 상기 MCU들은 JPEG(Joint Photographic Experts Group) 표준에 따라 코딩된 이산 코사인 변환(DCT) 계수들의 블록들을 포함하는, 장치.
  13. 제 11항에 있어서, 상기 회전 트랜스코더는,
    상기 메모리로부터 상기 인코딩된 이미지를 페치하며 ― 상기 인코딩된 이미지는 하나 이상의 엔트로피 코딩 기술들을 통해 코딩됨 ―;
    상기 MCU들을 재정렬시키고 상기 MCU들내의 이미지 데이터를 회전시키기 전에 상기 MCU들을 생성하기 위하여 상기 인코딩된 이미지를 엔트로피 디코딩하며; 그리고
    상기 하나 이상의 엔트로피 코딩 기술들에 따라 상기 인코딩된 이미지의 회전된 버전을 엔트로피 인코딩하는, 장치.
  14. 제 11항에 있어서, 이미지를 캡처하는 카메라; 및
    캡처된 이미지에 기초하여 상기 인코딩된 이미지를 생성하는 인코더를 더 포함하는, 장치.
  15. 제 11항에 있어서, 상기 회전 트랜스코더는 파일 크기 제어 파라미터들을 적용하며, 상기 인코딩된 이미지의 회전된 버전은 상기 파일 크기 제어 파라미터들에 따르는, 장치.
  16. 제 11항에 있어서, 상기 회전 트랜스코더는,
    상기 인코딩된 이미지에 1의 재시작 마커 값을 할당하며;
    상기 재시작 마커 값에 기초하여 상기 MCU들을 인덱싱하며; 그리고
    상기 인덱싱에 기초하여 상기 MCU들을 재정렬시키는,
    장치.
  17. 제 11항에 있어서, 상기 회전 트랜스코더는,
    상기 MCU들의 계수 값들에 대하여 수직 플립 연산을 수행하며; 그리고
    상기 MCU들의 수직으로 플립된 계수 값들에 대하여 전치 연산을 수행하는, 장치.
  18. 제 11항에 있어서, 상기 회전 트랜스코더는,
    상기 MCU들의 계수 값들에 대하여 수직 플립 연산을 수행하며; 그리고
    상기 MCU들의 수직으로 플립된 계수 값들에 대하여 수평 플립 연산을 수행하는, 장치.
  19. 제 11항에 있어서, 상기 회전 트랜스코더는,
    상기 MCU들의 계수 값들에 대하여 수평 플립 연산을 수행하며; 그리고
    상기 MCU들의 수평으로 플립된 계수 값들에 대하여 수직 플립 연산을 수행하는, 장치.
  20. 제 11항에 있어서, 상기 회전 트랜스코더는,
    상기 MCU들의 계수 값들에 대하여 전치 연산을 수행하며; 그리고
    상기 MCU들의 전치된 계수 값들에 대하여 수직 플립 연산을 수행하는, 장치.
  21. 제 11항에 있어서, 상기 장치는 무선 핸드셋을 포함하는, 장치.
  22. 제 11항에 있어서, 상기 장치는 집적회로를 포함하는, 장치.
  23. 명령들을 포함하는 컴퓨터-판독가능 매체로서,
    상기 명령들은, 실행시 프로세서가,
    인코딩된 이미지의 특정 회전에 따라 상기 인코딩된 이미지의 최소 코딩된 유닛(MCU)들을 재정렬시키며;
    상기 특정 회전에 따라 상기 MCU들내의 이미지 데이터를 회전시키며; 그리고
    재정렬된 MCU들 및 상기 MCU들내의 회전된 이미지 데이터를 포함하는, 상기 인코딩된 이미지의 회전된 버전을 생성하도록 하는
    컴퓨터-판독가능 매체.
  24. 제 23항에 있어서, 상기 MCU들은 JPEG(Joint Photographic Experts Group) 표준에 따라 코딩된 이산 코사인 변환(DCT) 계수들의 블록들을 포함하는, 컴퓨터-판독가능 매체.
  25. 제 23항에 있어서, 상기 프로세서가,
    상기 인코딩된 이미지를 페치하며 ― 상기 인코딩된 이미지는 하나 이상의 엔트로피 코딩 기술들을 통해 코딩됨 ―;
    상기 MCU들을 재정렬시키고 상기 MCU들내의 이미지 데이터를 회전시키기 전에 상기 MCU들을 생성하기 위하여 상기 인코딩된 이미지를 엔트로피 디코딩하며; 그리고
    상기 하나 이상의 엔트로피 코딩 기술들에 따라 상기 인코딩된 이미지의 회전된 버전을 엔트로피 인코딩하도록 하는,
    명령들을 더 포함하는, 컴퓨터-판독가능 매체.
  26. 제 23항에 있어서, 상기 프로세서가,
    캡처된 이미지를 수신하고, 그리고
    상기 캡처된 이미지에 기초하여 상기 인코딩된 이미지를 생성하도록 하는,
    명령들을 더 포함하는, 컴퓨터-판독가능 매체.
  27. 제 23항에 있어서, 상기 프로세서가 파일 크기 제어 파라미터들을 적용하도록 하는 명령들을 더 포함하며, 상기 인코딩된 이미지의 회전된 버전은 상기 파일 크기 제어 파라미터들에 따르는, 컴퓨터-판독가능 매체.
  28. 제 23항에 있어서, 상기 프로세서가,
    상기 인코딩된 이미지에 1의 재시작 마커 값을 할당하며;
    상기 재시작 마커 값에 기초하여 상기 MCU들을 인덱싱하며; 그리고
    상기 인덱싱에 기초하여 상기 MCU들을 재정렬시키도록 하는,
    명령들을 더 포함하는, 컴퓨터-판독가능 매체.
  29. 제 23항에 있어서, 상기 프로세서가,
    적어도 상기 MCU들의 계수 값들에 대한 수직 플립 연산과 상기 MCU들의 수직으로 플립된 계수 값들에 대한 전치 연산을 수행함으로써 상기 MCU들내의 이미지 데이터를 회전시키도록 하는,
    명령들을 더 포함하는, 컴퓨터-판독가능 매체.
  30. 제 23항에 있어서, 상기 프로세서가,
    적어도 상기 MCU들의 계수 값들에 대한 수직 플립 연산과 상기 MCU들의 수직으로 플립된 계수 값들에 대한 수평 플립 연산을 수행함으로써 상기 MCU들내의 이미지 데이터를 회전시키도록 하는,
    명령들을 더 포함하는, 컴퓨터-판독가능 매체.
  31. 제 23항에 있어서, 상기 프로세서가,
    적어도 상기 MCU들의 계수 값들에 대한 수평 플립 연산과 상기 MCU들의 수평으로 플립된 계수 값들에 대한 수직 플립 연산을 수행함으로써 상기 MCU들내의 이미지 데이터를 회전시키도록 하는,
    명령들을 더 포함하는, 컴퓨터-판독가능 매체.
  32. 제 23항에 있어서, 상기 프로세서가,
    적어도 상기 MCU들의 계수 값들에 대한 전치 연산과 상기 MCU들의 전치된 계수 값들에 대한 수직 플립 연산을 수행함으로써 상기 MCU들내의 이미지 데이터를 회전시키도록 하는,
    명령들을 더 포함하는, 컴퓨터-판독가능 매체.
  33. 인코딩된 이미지의 특정 회전에 따라 상기 인코딩된 이미지의 최소 코딩된 유닛(MCU)들을 재정렬시키기 위한 수단;
    상기 특정 회전에 따라 상기 MCU들내의 이미지 데이터를 회전시키기 위한 수단; 및
    재정렬된 MCU들 및 상기 MCU들내의 회전된 이미지 데이터를 포함하는, 상기 인코딩된 이미지의 회전된 버전을 생성하기 위한 수단을 포함하는,
    장치.
  34. 제 33항에 있어서, 상기 MCU들은 JPEG(Joint Photographic Experts Group) 표준에 따라 코딩된 이산 코사인 변환(DCT) 계수들의 블록들을 포함하는, 장치.
  35. 제 33항에 있어서, 상기 인코딩된 이미지를 페치하기 위한 수단 ― 상기 인코딩된 이미지는 하나 이상의 엔트로피 코딩 기술들을 통해 코딩됨 ―;
    상기 MCU들을 재정렬시키고 상기 MCU들내의 이미지 데이터를 회전시키기 전에 상기 MCU들을 생성하기 위하여 상기 인코딩된 이미지를 엔트로피 디코딩하기 위한 수단; 및
    상기 하나 이상의 엔트로피 코딩 기술들에 따라 상기 인코딩된 이미지의 회전된 버전을 엔트로피 인코딩하기 위한 수단을 더 포함하는, 장치.
  36. 제 33항에 있어서, 이미지를 캡처하기 위한 수단; 및
    캡처된 이미지에 기초하여 상기 인코딩된 이미지를 생성하기 위한 수단을 더 포함하는, 장치.
  37. 제 33항에 있어서, 상기 생성하기 위한 수단은 파일 크기 제어 파라미터들을 적용하기 위한 수단을 포함하며, 상기 인코딩된 이미지의 회전된 버전은 상기 파일 크기 제어 파라미터들에 따르는, 장치.
  38. 제 33항에 있어서, 상기 MCU들을 재정렬시키기 위한 수단은,
    상기 인코딩된 이미지에 1의 재시작 마커 값을 할당하기 위한 수단;
    상기 재시작 마커 값에 기초하여 상기 MCU들을 인덱싱하기 위한 수단; 및
    상기 인덱싱에 기초하여 상기 MCU들을 재정렬시키기 위한 수단을 포함하는,
    장치.
  39. 제 33항에 있어서, 상기 이미지 데이터를 회전시키기 위한 수단은,
    상기 MCU들의 계수 값들에 대하여 수직 플립 연산을 수행하기 위한 수단; 및
    상기 MCU들의 수직으로 플립된 계수 값들에 대하여 전치 연산을 수행하기 위한 수단을 포함하는, 장치.
  40. 제 33항에 있어서, 상기 이미지 데이터를 회전시키기 위한 수단은,
    상기 MCU들의 계수 값들에 대하여 수직 플립 연산을 수행하기 위한 수단; 및
    상기 MCU들의 수직으로 플립된 계수 값들에 대하여 수평 플립 연산을 수행하기 위한 수단을 포함하는, 장치.
  41. 제 33항에 있어서, 상기 이미지 데이터를 회전시키기 위한 수단은,
    상기 MCU들의 계수 값들에 대하여 수평 플립 연산을 수행하기 위한 수단; 및
    상기 MCU들의 수평으로 플립된 계수 값들에 대하여 수직 플립 연산을 수행하기 위한 수단을 포함하는, 장치.
  42. 제 33항에 있어서, 상기 이미지 데이터를 회전시키기 위한 수단은,
    상기 MCU들의 계수 값들에 대하여 전치 연산을 수행하기 위한 수단; 및
    상기 MCU들의 전치된 계수 값들에 대하여 수직 플립 연산을 수행하기 위한 수단을 포함하는, 장치.
  43. 제 33항에 있어서, 상기 재정렬시키기 위한 수단, 상기 회전시키기 위한 수단 및 상기 생성하기 위한 수단은 공동으로(collectively) 회전 트랜스코더를 포함하는, 장치.
KR1020107020458A 2008-02-13 2009-02-13 Jpeg 또는 다른 코딩 표준들을 위한 회전 트랜스코딩 KR101241243B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/030,826 2008-02-13
US12/030,826 US8977064B2 (en) 2008-02-13 2008-02-13 Rotational transcoding for JPEG or other coding standards
PCT/US2009/034126 WO2009103002A1 (en) 2008-02-13 2009-02-13 Rotational transcoding for jpeg or other coding standards

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020127029049A Division KR101344889B1 (ko) 2008-02-13 2009-02-13 Jpeg 또는 다른 코딩 표준들을 위한 회전 트랜스코딩

Publications (2)

Publication Number Publication Date
KR20100112654A true KR20100112654A (ko) 2010-10-19
KR101241243B1 KR101241243B1 (ko) 2013-03-14

Family

ID=40750976

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020107020458A KR101241243B1 (ko) 2008-02-13 2009-02-13 Jpeg 또는 다른 코딩 표준들을 위한 회전 트랜스코딩
KR1020127029049A KR101344889B1 (ko) 2008-02-13 2009-02-13 Jpeg 또는 다른 코딩 표준들을 위한 회전 트랜스코딩

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020127029049A KR101344889B1 (ko) 2008-02-13 2009-02-13 Jpeg 또는 다른 코딩 표준들을 위한 회전 트랜스코딩

Country Status (7)

Country Link
US (1) US8977064B2 (ko)
EP (1) EP2091019A1 (ko)
JP (3) JP2011515039A (ko)
KR (2) KR101241243B1 (ko)
CN (1) CN101911114B (ko)
TW (1) TW200947351A (ko)
WO (1) WO2009103002A1 (ko)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8908774B2 (en) * 2010-02-11 2014-12-09 Mediatek Inc. Method and video receiving system for adaptively decoding embedded video bitstream
JP2011244031A (ja) * 2010-05-14 2011-12-01 Fujifilm Corp 画像データ伸張装置および画像データ圧縮装置,ならびにそれらの動作制御方法
US9042440B2 (en) 2010-12-03 2015-05-26 Qualcomm Incorporated Coding the position of a last significant coefficient within a video block based on a scanning order for the block in video coding
US8976861B2 (en) 2010-12-03 2015-03-10 Qualcomm Incorporated Separately coding the position of a last significant coefficient of a video block in video coding
US20120163456A1 (en) 2010-12-22 2012-06-28 Qualcomm Incorporated Using a most probable scanning order to efficiently code scanning order information for a video block in video coding
CN102568442B (zh) * 2010-12-29 2013-09-25 无锡华润矽科微电子有限公司 一种数字图像旋转方法
US10397577B2 (en) 2011-03-08 2019-08-27 Velos Media, Llc Inverse scan order for significance map coding of transform coefficients in video coding
US9106913B2 (en) 2011-03-08 2015-08-11 Qualcomm Incorporated Coding of transform coefficients for video coding
US9167253B2 (en) 2011-06-28 2015-10-20 Qualcomm Incorporated Derivation of the position in scan order of the last significant transform coefficient in video coding
JP2013046281A (ja) * 2011-08-25 2013-03-04 Sony Corp 画像符号化装置と画像符号化方法およびプログラム
US20130287310A1 (en) * 2012-04-27 2013-10-31 Heon-Mo Koo Concurrent image decoding and rotation
CN103778631B (zh) * 2014-01-16 2017-01-18 西安理工大学 基于jpeg文件流的图片分割方法
US10356440B2 (en) * 2014-10-01 2019-07-16 Qualcomm Incorporated Scalable transform hardware architecture with improved transpose buffer
EP4254946A1 (en) * 2022-03-28 2023-10-04 Beijing Xiaomi Mobile Software Co., Ltd. Encoding/decoding video picture data

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09247423A (ja) 1996-03-04 1997-09-19 Canon Inc 画像処理装置およびその方法
US5867598A (en) * 1996-09-26 1999-02-02 Xerox Corporation Method and apparatus for processing of a JPEG compressed image
US6298166B1 (en) * 1998-03-30 2001-10-02 Seiko Epson Corporation Image transformations in the compressed domain
US6208429B1 (en) * 1998-05-29 2001-03-27 Flashpoint Technology, Inc. Method and system for band printing of rotated digital image data
JP4041245B2 (ja) 1999-05-14 2008-01-30 京セラ株式会社 画像符号化装置
JP2001223878A (ja) 2000-02-09 2001-08-17 Casio Comput Co Ltd 画像変換装置、画像変換方法及び記録媒体
US7146053B1 (en) * 2000-05-10 2006-12-05 International Business Machines Corporation Reordering of compressed data
US6941019B1 (en) * 2000-05-10 2005-09-06 International Business Machines Corporation Reentry into compressed data
US7224840B2 (en) * 2000-10-26 2007-05-29 International Business Machines Corporation Method, system, and program for error recovery while decoding compressed data
KR100357437B1 (ko) * 2000-12-27 2002-10-19 한국전자통신연구원 네트워크상에서의 영상 부분 전송 장치 및 그 방법
JP2004112345A (ja) * 2002-09-18 2004-04-08 Ricoh Co Ltd 画像処理装置、画像処理方法、及び画像処理プログラム
TWI259968B (en) * 2003-09-04 2006-08-11 Lite On It Corp Apparatus and method for image processing
EP2713619A3 (en) * 2003-11-18 2015-01-07 Mobile Imaging in Sweden AB Method for processing a digital image and image representation format
JP2005223538A (ja) * 2004-02-04 2005-08-18 Toshiba Corp 画像処理回路
JP2005228073A (ja) 2004-02-13 2005-08-25 Seiko Epson 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
JP2006304243A (ja) * 2005-03-23 2006-11-02 Seiko Epson Corp 画像処理装置、印刷装置、および、画像処理方法
JP4742642B2 (ja) 2005-03-29 2011-08-10 セイコーエプソン株式会社 画像処理装置、印刷装置、画像処理方法、および、画像処理プログラム
JP2006303716A (ja) 2005-04-18 2006-11-02 Canon Inc 画像データ処理装置、画像データ処理方法、プログラム、及び記憶媒体
JP2006325186A (ja) * 2005-04-20 2006-11-30 Seiko Epson Corp 画像処理装置
JP4769477B2 (ja) * 2005-04-21 2011-09-07 キヤノン株式会社 符号化データ変換方法および符号化データ変換装置
JP4713957B2 (ja) 2005-06-15 2011-06-29 オリンパスイメージング株式会社 画像処理装置
JP4273426B2 (ja) * 2005-12-07 2009-06-03 ソニー株式会社 画像処理方法、画像処理装置、画像処理方法のプログラム及び画像処理方法のプログラムを記録した記録媒体
US7742644B2 (en) * 2006-01-18 2010-06-22 Qualcomm Incorporated Processing of images in imaging systems
JP4666261B2 (ja) 2006-06-01 2011-04-06 富士ゼロックス株式会社 画像処理装置及びプログラム
US7747097B2 (en) * 2006-06-16 2010-06-29 Seiko Epson Corporation Method for simple hardware implementation of JPEG size limiter
US8098959B2 (en) * 2008-10-29 2012-01-17 Aptina Imaging Corporation Method and system for frame rotation within a JPEG compressed pipeline

Also Published As

Publication number Publication date
JP2011515039A (ja) 2011-05-12
US8977064B2 (en) 2015-03-10
KR101241243B1 (ko) 2013-03-14
JP2013138450A (ja) 2013-07-11
CN101911114B (zh) 2013-03-27
KR20120126135A (ko) 2012-11-20
TW200947351A (en) 2009-11-16
CN101911114A (zh) 2010-12-08
WO2009103002A1 (en) 2009-08-20
US20090202158A1 (en) 2009-08-13
KR101344889B1 (ko) 2013-12-26
EP2091019A1 (en) 2009-08-19
JP2014239473A (ja) 2014-12-18

Similar Documents

Publication Publication Date Title
KR101241243B1 (ko) Jpeg 또는 다른 코딩 표준들을 위한 회전 트랜스코딩
US8467617B2 (en) Compressing high resolution images in a low resolution video
US7856147B2 (en) Method and apparatus for processing a compressed image in an order other than the order of which it was compressed
JP4348768B2 (ja) 画像変換方法
US8009740B2 (en) Method and system for a parametrized multi-standard deblocking filter for video compression systems
US20060002611A1 (en) Method and apparatus for encoding high dynamic range video
CN107852513A (zh) 对输入视频序列的像素进行编码
JP2011523235A (ja) 水平対称性および垂直対称性に基づくフィルタ係数のビデオ符号化
TW201725905A (zh) 用於非4:4:4色度子採樣之顯示串流壓縮(dsc)之熵寫碼技術
US20160044314A1 (en) System and method for reusing transform structure for multi-partition transform
US8948529B1 (en) Multi-pass encoding
CN111491163B (zh) 基于对图像块的像素域预处理操作的图像块编码
US7738718B2 (en) Block decoding method and apparatus capable of decoding and outputting data in a longitudinal direction
US8233729B2 (en) Method and apparatus for generating coded block pattern for highpass coefficients
CN115362678A (zh) 动态范围调整参数信令和使能可变位深度支持
CN114430904A (zh) 利用环内子图像级可控噪声生成进行的视频压缩
JP2005005925A (ja) 画像圧縮装置及び画像処理システム
US11463716B2 (en) Buffers for video coding in palette mode
US20240040125A1 (en) Tracking sample completion in video coding
US6459452B1 (en) System, method, and apparatus for decoding digital video sequences
WO2005104560A1 (en) Method of processing decoded pictures.
JPH11205793A (ja) 画像圧縮装置、画像逆圧縮装置およびデジタルスチルカメラ

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
J201 Request for trial against refusal decision
A107 Divisional application of patent
AMND Amendment
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20151230

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20161229

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20171228

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20190107

Year of fee payment: 7