KR101344889B1 - Jpeg 또는 다른 코딩 표준들을 위한 회전 트랜스코딩 - Google Patents
Jpeg 또는 다른 코딩 표준들을 위한 회전 트랜스코딩 Download PDFInfo
- Publication number
- KR101344889B1 KR101344889B1 KR1020127029049A KR20127029049A KR101344889B1 KR 101344889 B1 KR101344889 B1 KR 101344889B1 KR 1020127029049 A KR1020127029049 A KR 1020127029049A KR 20127029049 A KR20127029049 A KR 20127029049A KR 101344889 B1 KR101344889 B1 KR 101344889B1
- Authority
- KR
- South Korea
- Prior art keywords
- mcus
- image
- encoded image
- flip operation
- rotating
- Prior art date
Links
- 238000000034 method Methods 0.000 claims abstract description 127
- 239000003550 marker Substances 0.000 claims description 20
- 238000012545 processing Methods 0.000 claims description 4
- 230000008569 process Effects 0.000 description 47
- 238000010586 diagram Methods 0.000 description 10
- 239000011159 matrix material Substances 0.000 description 9
- 238000004891 communication Methods 0.000 description 7
- 230000006835 compression Effects 0.000 description 4
- 238000007906 compression Methods 0.000 description 4
- 238000003384 imaging method Methods 0.000 description 4
- 230000008707 rearrangement Effects 0.000 description 4
- 230000017105 transposition Effects 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 2
- 238000013139 quantization Methods 0.000 description 2
- 241000023320 Luma <angiosperm> Species 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000005022 packaging material Substances 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/132—Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/60—Rotation of whole images or parts thereof
- G06T3/602—Rotation of whole images or parts thereof by block rotation, e.g. by recursive reversal or rotation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/41—Bandwidth or redundancy reduction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/176—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/18—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/40—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/48—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/59—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods 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
본 발명은 이미지 처리, 특히 인코딩된 이미지들을 회전시키기 위한 기술들에 관한 것이다.
디지털 카메라들은 일반적으로 다양한 장치들에 통합된다. 이러한 개시에서, 디지털 카메라 장치는 정지 이미지(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는 본 발명에 따라 이미지를 회전시키기 위한 기술을 예시한 다른 흐름도이다.
도 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도 회전은 다음과 같은 수식을 적용함으로써 달성될 수 있다.
180도 회전은 다음과 수식을 적용함으로써 달성될 수 있다.
270도 회전은 다음과 같은 수식을 적용함으로써 달성될 수 있다.
일단 MCU들의 계수들이 회전되면, 회전 트랜스코더(18)는 MCU들을 지그-재그 스캔 및 허프만 인코딩한다(76). 이러한 지그-재그 스캐닝 및 허프만 인코딩 프로세스는 엔트로피 인코딩으로 여기에서 지칭될 수 있다. 회전 트랜스코더(18)는 회전된 이미지(86)의 JPEG 비트스트림을 메모리(16)에 출력할 수 있다.
여기서 C는 DCT 커널이고, x는 화소 값들의 매트릭스를 나타내며, X는 DCT 값들의 매트릭스를 나타낸다. C 및 x의 예들은 이하에 도시된다.
만일 화소 매트릭스(x)가 화소 도메인에서 전치(transpose)되면, 대응하는 DCT 매트릭스(X)는 다음과 같은 연산에 따라 전치된다.
공간 도메인 수직 플립 연산은 다음과 같이 주어질 수 있다.
DCT 도메인에서 수직 플립 연산에 대한 등가 연산은 다음과 같이 주어진다.
유사하게, DCT 도메인에서 수평 플립 연산을 위한 연산은 다음과 같이 주어질 수 있다.
공간 도메인에서, 90도 시계방향 회전은 2개의 연산들, 즉 수직 플립 연산과 이 수직 플립 연산 후 전치 연산으로 분할될 수 있다. 전치 연산은 매트릭스 연산 T를 지칭하며, 여기서 임의의 매트릭스 A는 특성 을 가진다. DCT 도메인에서 90도 회전을 위한 DCT 연산들은 수직 플립 및 이 다음의 전치의 조합에 의하여 주어질 수 있으며, 이는 다음과 같이 총괄하여 표현될 수 있다.
180도 시계방향 회전이 또한 2개의 연산들, 즉 수직 플립 및 수평 플립으로 분할될 수 있다. 따라서, DCT 도메인에서 180도 회전을 위한 DCT 연산들은 다음과 같이 주어질 수 있다.
270도 시계방향 회전이 또한 2개의 연산들, 즉 전치 및 이 다음의 수직 플립으로 분할될 수 있다. 따라서, DCT 도메인에서 270도 회전을 위한 DCT 연산들은 다음과 같이 주어질 수 있다.
임의의 경우들에서, 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)
- 인코딩된 이미지를 회전시키기 위한 방법으로서,
상기 인코딩된 이미지의 특정된 회전에 따라 상기 인코딩된 이미지의 최소 코딩된 유닛들(minimum coded units; MCUs)을 재정렬하는 단계 ― 상기 MCU들은 다른 MCU를 참조하지 않고 디코딩되는 개별적으로 디코딩가능한 유닛들임 ―;
상기 MCU들의 계수 값들에 대하여 플립(flip) 연산을 수행하는 것을 포함하는 상기 특정된 회전에 따라 상기 MCU들 내의 이미지 데이터를 회전시키는 단계;
상기 재정렬된 MCU들 및 상기 MCU들 내의 회전된 이미지 데이터를 포함하는 상기 인코딩된 이미지의 회전된 버전을 생성하는 단계를 포함하는,
인코딩된 이미지를 회전시키기 위한 방법. - 제 1 항에 있어서,
상기 MCU들은 JPEG(Joint Photographic Experts Group) 표준에 따라 코딩되는 이산 코사인 변환(discrete cosine transform; DCT) 계수들을 포함하는, 인코딩된 이미지를 회전시키기 위한 방법. - 제 1항에 있어서, 상기 인코딩된 이미지를 페치(fetch)하는 단계 ― 상기 인코딩된 이미지는 하나 이상의 엔트로피 코딩 기술들을 통해 코딩됨 ―;
상기 MCU들을 재정렬시키고 상기 MCU들 내의 이미지 데이터를 회전시키기 전에 상기 MCU들을 생성하기 위하여 상기 인코딩된 이미지를 엔트로피 디코딩하는 단계; 및
상기 하나 이상의 엔트로피 코딩 기술들에 따라 상기 인코딩된 이미지의 회전된 버전을 엔트로피 인코딩하는 단계를 더 포함하는, 인코딩된 이미지를 회전시키기 위한 방법. - 제 1항에 있어서, 이미지를 캡처(capture)하는 단계; 및
상기 캡처된 이미지에 기초하여 상기 인코딩된 이미지를 생성하는 단계를 더 포함하는, 인코딩된 이미지를 회전시키기 위한 방법. - 제 1항에 있어서, 상기 MCU들을 처리하는 단계는 파일 크기 제어 파라미터들을 적용하는 단계를 포함하며, 상기 인코딩된 이미지의 회전된 버전은 상기 파일 크기 제어 파라미터들에 따르는, 인코딩된 이미지를 회전시키기 위한 방법.
- 제 1 항에 있어서,
상기 MCU들을 재정렬하는 단계는,
상기 인코딩된 이미지에 재시작 마커 값 1을 할당하는 단계;
상기 재시작 마커 값에 기초하여 상기 MCU들을 인덱싱하는 단계; 및
상기 인덱싱에 기초하여 상기 MCU들을 재정렬하는 단계를 포함하는, 인코딩된 이미지를 회전시키기 위한 방법. - 제 1항에 있어서, 상기 MCU들 내의 이미지 데이터를 회전시키는 단계는,
상기 MCU들의 플립된 계수 값들에 대하여 전치 연산(transpose operation)을 수행하는 단계를 포함하는, 인코딩된 이미지를 회전시키기 위한 방법. - 제 1항에 있어서, 상기 플립 연산은 수직 플립 연산을 포함하고, 상기 MCU들 내의 이미지 데이터를 회전시키는 단계는,
상기 MCU들의 수직으로 플립된 계수 값들에 대하여 수평 플립 연산(horizontal flip operation)을 수행하는 단계를 포함하는, 인코딩된 이미지를 회전시키기 위한 방법. - 제 1항에 있어서, 상기 플립 연산은 수평 플립 연산을 포함하고, 상기 MCU들 내의 이미지 데이터를 회전시키는 단계는,
상기 MCU들의 수평으로 플립된 계수 값들에 대하여 수직 플립 연산을 수행하는 단계를 포함하는, 인코딩된 이미지를 회전시키기 위한 방법. - 제 1항에 있어서, 상기 MCU들 내의 이미지 데이터를 회전시키는 단계는,
상기 MCU들의 계수 값들에 대하여 전치 연산을 수행하는 단계; 및
상기 MCU들의 전치된(transposed) 계수 값들에 대하여 플립 연산을 수행하는 단계를 포함하는, 인코딩된 이미지를 회전시키기 위한 방법. - 인코딩된 이미지를 회전시키기 위한 장치로서,
인코딩된 이미지를 저장하는 메모리; 및
상기 메모리로부터 상기 인코딩된 이미지를 수신하고, 상기 인코딩된 이미지의 특정된 회전에 따라 상기 인코딩된 이미지의 최소 코딩된 유닛들(MCUs)을 재정렬하고, 상기 특정된 회전에 따라 상기 MCU들 내의 이미지 데이터를 회전시키고, 상기 MCU들의 계수 값들에 대하여 플립(flip) 연산을 수행하고, 상기 재정렬된 MCU들 및 상기 MCU들 내의 회전된 이미지 데이터를 포함하는 상기 인코딩된 이미지의 회전된 버전을 생성하는 회전 트랜스코더(rotational transcoder) ― 상기 MCU들은 다른 MCU를 참조하지 않고 디코딩되는 개별적으로 디코딩가능한 유닛들임 ― 를 포함하는, 인코딩된 이미지를 회전시키기 위한 장치. - 제 11 항에 있어서, 상기 MCU들은 JPEG 표준에 따라 코딩되는 이산 코사인 변환(DCT) 계수들을 포함하는, 인코딩된 이미지를 회전시키기 위한 장치.
- 제 11항에 있어서, 상기 회전 트랜스코더는,
상기 메모리로부터 상기 인코딩된 이미지를 페치하며 ― 상기 인코딩된 이미지는 하나 이상의 엔트로피 코딩 기술들을 통해 코딩됨 ―;
상기 MCU들을 재정렬시키고 상기 MCU들 내의 이미지 데이터를 회전시키기 전에 상기 MCU들을 생성하기 위하여 상기 인코딩된 이미지를 엔트로피 디코딩하며; 그리고
상기 하나 이상의 엔트로피 코딩 기술들에 따라 상기 인코딩된 이미지의 회전된 버전을 엔트로피 인코딩하는, 인코딩된 이미지를 회전시키기 위한 장치. - 제 11항에 있어서, 이미지를 캡처하는 카메라; 및
상기 캡처된 이미지에 기초하여 상기 인코딩된 이미지를 생성하는 인코더를 더 포함하는, 인코딩된 이미지를 회전시키기 위한 장치. - 제 11항에 있어서, 상기 회전 트랜스코더는 파일 크기 제어 파라미터들을 적용하며, 상기 인코딩된 이미지의 회전된 버전은 상기 파일 크기 제어 파라미터들에 따르는, 인코딩된 이미지를 회전시키기 위한 장치.
- 제 11 항에 있어서,
상기 회전 트랜스코더는:
상기 인코딩된 이미지에 재시작 마커 값 1을 할당하고;
상기 재시작 마커 값에 기초하여 상기 MCU들을 인덱싱하고; 그리고
상기 인덱싱에 기초하여 상기 MCU들을 재정렬하는, 인코딩된 이미지를 회전시키기 위한 장치. - 제 11항에 있어서, 상기 플립 연산은 수직 플립 연산을 포함하고, 그리고, 상기 회전 트랜스코더는,
상기 MCU들의 수직으로 플립된 계수 값들에 대하여 전치 연산을 수행하는, 인코딩된 이미지를 회전시키기 위한 장치. - 제 11항에 있어서, 상기 플립 연산은 수직 플립 연산을 포함하고, 상기 회전 트랜스코더는,
상기 MCU들의 수직으로 플립된 계수 값들에 대하여 수평 플립 연산을 수행하는, 인코딩된 이미지를 회전시키기 위한 장치. - 제 11항에 있어서, 상기 플립 연산은 수평 플립 연산을 포함하고, 상기 회전 트랜스코더는,
상기 MCU들의 수평으로 플립된 계수 값들에 대하여 수직 플립 연산을 수행하는, 인코딩된 이미지를 회전시키기 위한 장치. - 제 11항에 있어서, 상기 회전 트랜스코더는,
상기 MCU들의 계수 값들에 대하여 전치 연산을 수행하며; 그리고
상기 플립 연산은 상기 MCU들의 상기 전치된 계수 값들에 대한 플립 연산을 포함하는, 인코딩된 이미지를 회전시키기 위한 장치. - 제 11항에 있어서, 상기 장치는 무선 핸드셋을 포함하는, 인코딩된 이미지를 회전시키기 위한 장치.
- 제 11항에 있어서, 상기 장치는 집적회로를 포함하는, 인코딩된 이미지를 회전시키기 위한 장치.
- 명령들을 포함하는 인코딩된 이미지를 회전하기 위한 컴퓨터-판독가능 매체로서,
상기 명령들은, 실행시 프로세서가,
상기 인코딩된 이미지의 특정된 회전에 따라 상기 인코딩된 이미지의 최소 코딩된 유닛들(MCUs)을 재정렬하고 ― 상기 MCU들은 다른 MCU를 참조하지 않고 디코딩되는 개별적으로 디코딩가능한 유닛들임 ―;
상기 MCU들의 계수 값들에 대하여 플립 연산을 수행하는 것을 포함하는 상기 특정된 회전에 따라 상기 MCU들 내의 이미지 데이터를 회전시키고; 그리고
상기 재정렬된 MCU들 및 상기 MCU들 내의 회전된 이미지 데이터를 포함하는 상기 인코딩된 이미지의 회전된 버전을 생성하도록 하는,
컴퓨터-판독가능 매체. - 제 23항에 있어서, 상기 MCU들은 JPEG 표준에 따라 코딩되는 이산 코사인 변환(DCT) 계수들을 포함하는, 컴퓨터-판독가능 매체.
- 제 23항에 있어서, 상기 프로세서가,
상기 인코딩된 이미지를 페치하며 ― 상기 인코딩된 이미지는 하나 이상의 엔트로피 코딩 기술들을 통해 코딩됨 ―;
상기 MCU들을 재정렬시키고 상기 MCU들 내의 이미지 데이터를 회전시키기 전에 상기 MCU들을 생성하기 위하여 상기 인코딩된 이미지를 엔트로피 디코딩하며; 그리고
상기 하나 이상의 엔트로피 코딩 기술들에 따라 상기 인코딩된 이미지의 회전된 버전을 엔트로피 인코딩하도록 하는,
명령들을 더 포함하는, 컴퓨터-판독가능 매체. - 제 23항에 있어서, 상기 프로세서가,
캡처된 이미지를 수신하고, 그리고
상기 캡처된 이미지에 기초하여 상기 인코딩된 이미지를 생성하도록 하는,
명령들을 더 포함하는, 컴퓨터-판독가능 매체. - 제 23항에 있어서, 상기 프로세서가 파일 크기 제어 파라미터들을 적용하도록 하는 명령들을 더 포함하며, 상기 인코딩된 이미지의 회전된 버전은 상기 파일 크기 제어 파라미터들에 따르는, 컴퓨터-판독가능 매체.
- 제 23 항에 있어서, 상기 프로세서로 하여금
상기 인코딩된 이미지에 재시작 마커 값 1을 할당하고;
상기 재시작 마커 값에 기초하여 상기 MCU들을 인덱싱하고; 그리고
상기 인덱싱에 기초하여 상기 MCU들을 재정렬하도록 하는 명령들을 더 포함하는, 컴퓨터-판독가능 매체. - 제 23항에 있어서, 상기 플립 연산은 수직 플립 연산을 포함하고, 상기 매체는 상기 프로세서가,
적어도 상기 MCU들의 수직으로 플립된 계수 값들에 대하여 전치 연산을 수행함으로써 상기 MCU들 내의 이미지 데이터를 회전시키도록 하는,
명령들을 더 포함하는, 컴퓨터-판독가능 매체. - 제 23항에 있어서, 상기 플립 연산은 수직 플립 연산을 포함하고, 상기 매체는 상기 프로세서가,
적어도 상기 MCU들의 수직으로 플립된 계수 값들에 대하여 수평 플립 연산을 수행함으로써 상기 MCU들 내의 이미지 데이터를 회전시키도록 하는,
명령들을 더 포함하는, 컴퓨터-판독가능 매체. - 제 23항에 있어서, 상기 플립 연산은 수평 플립 연산을 포함하고, 상기 매체는 상기 프로세서가,
적어도 상기 MCU들의 수평으로 플립된 계수 값들에 대하여 수직 플립 연산을 수행함으로써 상기 MCU들 내의 이미지 데이터를 회전시키도록 하는,
명령들을 더 포함하는, 컴퓨터-판독가능 매체. - 제 23항에 있어서, 상기 플립 연산은 수직 플립 연산을 포함하고, 상기 매체는 상기 프로세서가,
적어도 상기 MCU들의 계수 값들에 대하여 전치 연산을 수행함으로써 상기 MCU들 내의 이미지 데이터를 회전시키도록 하는,
명령들을 더 포함하는, 컴퓨터-판독가능 매체. - 인코딩된 이미지를 회전시키기 위한 디바이스로서,
상기 인코딩된 이미지의 특정된 회전에 따라 상기 인코딩된 이미지의 최소 코딩된 유닛들(MCUs)을 재정렬하기 위한 수단 ― 상기 MCU들은 다른 MCU를 참조하지 않고 디코딩되는 개별적으로 디코딩가능한 유닛들임 ―;
상기 MCU들의 계수 값들에 대하여 플립 연산을 수행하는 것을 포함하는 상기 특정된 회전에 따라 상기 MCU들 내의 이미지 데이터를 회전시키기 위한 수단;
상기 재정렬된 MCU들 및 상기 MCU들 내의 회전된 이미지 데이터를 포함하는 상기 인코딩된 이미지의 회전된 버전을 생성하기 위한 수단을 포함하는,
인코딩된 이미지를 회전시키기 위한 디바이스. - 제 33 항에 있어서,
상기 MCU들은 JPEG 표준에 따라 코딩되는 이산 코사인 변환(DCT) 계수들을 포함하는, 인코딩된 이미지를 회전시키기 위한 디바이스. - 제 33항에 있어서, 상기 인코딩된 이미지를 페치하기 위한 수단 ― 상기 인코딩된 이미지는 하나 이상의 엔트로피 코딩 기술들을 통해 코딩됨 ―;
상기 MCU들을 재정렬시키고 상기 MCU들 내의 이미지 데이터를 회전시키기 전에 상기 MCU들을 생성하기 위하여 상기 인코딩된 이미지를 엔트로피 디코딩하기 위한 수단; 및
상기 하나 이상의 엔트로피 코딩 기술들에 따라 상기 인코딩된 이미지의 회전된 버전을 엔트로피 인코딩하기 위한 수단을 더 포함하는, 인코딩된 이미지를 회전시키기 위한 디바이스. - 제 33항에 있어서, 이미지를 캡처하기 위한 수단; 및
상기 캡처된 이미지에 기초하여 상기 인코딩된 이미지를 생성하기 위한 수단을 더 포함하는, 인코딩된 이미지를 회전시키기 위한 디바이스. - 제 33항에 있어서, 상기 생성하기 위한 수단은 파일 크기 제어 파라미터들을 적용하기 위한 수단을 포함하며, 상기 인코딩된 이미지의 회전된 버전은 상기 파일 크기 제어 파라미터들에 따르는, 인코딩된 이미지를 회전시키기 위한 디바이스.
- 제 33항에 있어서,
상기 MCU들을 재정렬하기 위한 수단은:
상기 인코딩된 이미지에 재시작 마커 값 1을 할당하기 위한 수단;
상기 재시작 마커 값에 기초하여 상기 MCU들을 인덱싱하기 위한 수단; 및
상기 인덱싱에 기초하여 상기 MCU들을 재정렬하기 위한 수단을 포함하는, 인코딩된 이미지를 회전시키기 위한 디바이스. - 제 33항에 있어서, 상기 플립 연산은 수직 플립 연산을 포함하고 상기 이미지 데이터를 회전시키기 위한 수단은,
상기 MCU들의 수직으로 플립된 계수 값들에 대하여 전치 연산을 수행하기 위한 수단을 포함하는, 인코딩된 이미지를 회전시키기 위한 디바이스. - 제 33항에 있어서, 상기 플립 연산은 수직 플립 연산을 포함하고 상기 이미지 데이터를 회전시키기 위한 수단은,
상기 MCU들의 수직으로 플립된 계수 값들에 대하여 수평 플립 연산을 수행하기 위한 수단을 포함하는, 인코딩된 이미지를 회전시키기 위한 디바이스. - 제 33항에 있어서, 상기 플립 연산은 수평 플립 연산을 포함하고, 상기 이미지 데이터를 회전시키기 위한 수단은,
상기 MCU들의 수평으로 플립된 계수 값들에 대하여 수직 플립 연산을 수행하기 위한 수단을 포함하는, 인코딩된 이미지를 회전시키기 위한 디바이스. - 제 33항에 있어서, 상기 이미지 데이터를 회전시키기 위한 수단은,
상기 MCU들의 계수 값들에 대하여 전치 연산을 수행하기 위한 수단을 포함하는, 인코딩된 이미지를 회전시키기 위한 디바이스. - 제 33항에 있어서, 상기 재정렬시키기 위한 수단, 상기 회전시키기 위한 수단 및 상기 생성하기 위한 수단은 공동으로(collectively) 회전 트랜스코더를 포함하는, 인코딩된 이미지를 회전시키기 위한 디바이스.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/030,826 US8977064B2 (en) | 2008-02-13 | 2008-02-13 | Rotational transcoding for JPEG or other coding standards |
US12/030,826 | 2008-02-13 | ||
PCT/US2009/034126 WO2009103002A1 (en) | 2008-02-13 | 2009-02-13 | Rotational transcoding for jpeg or other coding standards |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020107020458A Division KR101241243B1 (ko) | 2008-02-13 | 2009-02-13 | Jpeg 또는 다른 코딩 표준들을 위한 회전 트랜스코딩 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20120126135A KR20120126135A (ko) | 2012-11-20 |
KR101344889B1 true KR101344889B1 (ko) | 2013-12-26 |
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 Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020107020458A KR101241243B1 (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)
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 | 画像データ伸張装置および画像データ圧縮装置,ならびにそれらの動作制御方法 |
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 |
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 |
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 | 无锡华润矽科微电子有限公司 | 一种数字图像旋转方法 |
US9338449B2 (en) | 2011-03-08 | 2016-05-10 | Qualcomm Incorporated | Harmonized scan order for coding 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)
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 |
KR101089489B1 (ko) * | 2003-11-18 | 2011-12-02 | 스칼라도 아베 | 디지털 이미지 처리 방법 및 이미지 표현 포맷 |
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 |
-
2008
- 2008-02-13 US US12/030,826 patent/US8977064B2/en active Active
- 2008-03-31 EP EP20080006448 patent/EP2091019A1/en not_active Ceased
-
2009
- 2009-02-13 KR KR1020107020458A patent/KR101241243B1/ko active IP Right Grant
- 2009-02-13 CN CN2009801015798A patent/CN101911114B/zh not_active Expired - Fee Related
- 2009-02-13 TW TW98104728A patent/TW200947351A/zh unknown
- 2009-02-13 WO PCT/US2009/034126 patent/WO2009103002A1/en active Application Filing
- 2009-02-13 KR KR1020127029049A patent/KR101344889B1/ko active IP Right Grant
- 2009-02-13 JP JP2010546932A patent/JP2011515039A/ja not_active Withdrawn
-
2013
- 2013-01-25 JP JP2013011940A patent/JP2013138450A/ja not_active Withdrawn
-
2014
- 2014-07-17 JP JP2014146951A patent/JP2014239473A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
EP2091019A1 (en) | 2009-08-19 |
JP2014239473A (ja) | 2014-12-18 |
KR20100112654A (ko) | 2010-10-19 |
JP2011515039A (ja) | 2011-05-12 |
CN101911114B (zh) | 2013-03-27 |
TW200947351A (en) | 2009-11-16 |
WO2009103002A1 (en) | 2009-08-20 |
KR101241243B1 (ko) | 2013-03-14 |
KR20120126135A (ko) | 2012-11-20 |
JP2013138450A (ja) | 2013-07-11 |
US20090202158A1 (en) | 2009-08-13 |
CN101911114A (zh) | 2010-12-08 |
US8977064B2 (en) | 2015-03-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101344889B1 (ko) | Jpeg 또는 다른 코딩 표준들을 위한 회전 트랜스코딩 | |
US8467617B2 (en) | Compressing high resolution images in a low resolution video | |
JP4348768B2 (ja) | 画像変換方法 | |
US7856147B2 (en) | Method and apparatus for processing a compressed image in an order other than the order of which it was compressed | |
US8009740B2 (en) | Method and system for a parametrized multi-standard deblocking filter for video compression systems | |
US7483486B2 (en) | Method and apparatus for encoding high dynamic range video | |
CN107852513A (zh) | 对输入视频序列的像素进行编码 | |
JP2011523235A (ja) | 水平対称性および垂直対称性に基づくフィルタ係数のビデオ符号化 | |
TW201725905A (zh) | 用於非4:4:4色度子採樣之顯示串流壓縮(dsc)之熵寫碼技術 | |
US20060088106A1 (en) | Method and apparatus for improved increased bit-depth display from a transform decoder by retaining additional inverse transform bits | |
CN111491163B (zh) | 基于对图像块的像素域预处理操作的图像块编码 | |
CN114430904A (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 | |
US12063367B2 (en) | Tracking sample completion in video coding | |
JP2005005925A (ja) | 画像圧縮装置及び画像処理システム | |
US20240357121A1 (en) | Tracking sample completion in video coding | |
US11528491B2 (en) | Image encoding/decoding method and device using color coordinate axis conversion | |
US6459452B1 (en) | System, method, and apparatus for decoding digital video sequences | |
Dwivedi | Design of JPEG Compressor | |
JPH11205793A (ja) | 画像圧縮装置、画像逆圧縮装置およびデジタルスチルカメラ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A107 | Divisional application of patent | ||
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20161125 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 |