KR20220009849A - 포화 픽셀을 이용하는 이미지 압축 방법, 인코더, 및 전자 장치 - Google Patents

포화 픽셀을 이용하는 이미지 압축 방법, 인코더, 및 전자 장치 Download PDF

Info

Publication number
KR20220009849A
KR20220009849A KR1020210008910A KR20210008910A KR20220009849A KR 20220009849 A KR20220009849 A KR 20220009849A KR 1020210008910 A KR1020210008910 A KR 1020210008910A KR 20210008910 A KR20210008910 A KR 20210008910A KR 20220009849 A KR20220009849 A KR 20220009849A
Authority
KR
South Korea
Prior art keywords
pixel
pixels
image
exemplary embodiment
saturated
Prior art date
Application number
KR1020210008910A
Other languages
English (en)
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 삼성전자주식회사
Priority to US17/350,058 priority Critical patent/US20220020180A1/en
Priority to DE102021117427.9A priority patent/DE102021117427A1/de
Priority to TW110125622A priority patent/TW202209887A/zh
Priority to JP2021116303A priority patent/JP2022019646A/ja
Priority to CN202110794817.0A priority patent/CN113949878A/zh
Publication of KR20220009849A publication Critical patent/KR20220009849A/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/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/98Adaptive-dynamic-range coding [ADRC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • 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/182Methods 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 pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

이미지 처리 방법이 개시된다. 본 개시의 예시적 실시예에 따라 이미지 센서에 의해 생성된 이미지 데이터를 압축하는 이미지 압축 방법은, 수신된 상기 이미지 데이터에 포함되고, 서로 인접하며 동일한 컬러를 가지는 복수의 픽셀들인 픽셀 그룹 중 픽셀 값이 임계치를 넘는 포화 픽셀을 검출하는 단계, 상기 포화 픽셀의 위치를 나타내는 포화 플래그를 생성하는 단계, 상기 픽셀 그룹 중 상기 포화 픽셀을 제외한 적어도 하나의 비포화 픽셀과 기준 픽셀을 비교함으로써 상기 이미지 데이터를 압축하는 단계, 및 상기 포화 플래그, 압축 결과, 및 압축 방법을 포함하는 비트스트림을 출력하는 단계를 포함할 수 있다.

Description

포화 픽셀을 이용하는 이미지 압축 방법, 인코더, 및 전자 장치{IMAGE COMPRESSING METHOD, ENCODER, AND ELECTRONIC DEVICE USING SATURATION PIXEL}
본 개시의 기술적 사상은 이미지 압축 방법에 관한 것으로서, 상세하게는 포화 픽셀을 이용하는 이미지 압축 방법, 인코더 및 전자 장치에 관한 것이다.
고해상도 이미지에 대한 요구가 증대됨에 따라, 이미지 센서에 의해 생성되는 이미지 데이터의 크기는 증가하는 추세이다. 이미지 데이터의 크기는 데이터의 전송 속도와 관련되므로 이미지 데이터를 효율적으로 압축하는 방법이 요구된다.
이미지 데이터를 크기를 줄이기 위해 압축하고자 하는 대상 픽셀과 압축을 위한 기준이 되는 기준 픽셀과의 차이값에 기초해 데이터를 압축하는 방법이 이용된다. 그러나, 과도한 수광에 따른 픽셀의 포화는 큰 픽셀 값을 생성하게 되므로 차이값이 기반한 압축 방법의 압축률을 저하시키는 요인이 된다.
본 개시의 기술적 사상이 해결하려는 과제는, 포화 픽셀을 효율적으로 압축하는 방법을 제공하는 데 있다.
상기와 같은 목적을 달성하기 위하여, 본 개시의 예시적 실시예에 따라 이미지 센서에 의해 생성된 이미지 데이터를 압축하는 이미지 압축 방법은, 수신된 상기 이미지 데이터에 포함되고, 서로 인접하며 동일한 컬러를 가지는 복수의 픽셀들인 픽셀 그룹 중 픽셀 값이 임계치를 넘는 포화 픽셀을 검출하는 단계, 상기 포화 픽셀의 위치를 나타내는 포화 플래그를 생성하는 단계, 상기 픽셀 그룹 중 상기 포화 픽셀을 제외한 적어도 하나의 비포화 픽셀과 기준 픽셀을 비교함으로써 상기 이미지 데이터를 압축하는 단계, 및 상기 포화 플래그, 압축 결과, 및 압축 방법을 포함하는 비트스트림을 출력하는 단계를 포함할 수 있다.
본 개시의 예시적 실시예에 따라 이미지 센서에 의해 생성된 이미지 데이터를 처리하는 인코더는, 서로 인접하며 동일한 컬러를 가지는 복수의 픽셀들인 픽셀 그룹에서 픽셀 값이 임계치를 넘은 포화 픽셀을 검출하고, 상기 포화 픽셀의 위치를 나타내는 포화 플래그를 생성하며, 상기 픽셀 그룹 중 상기 포화 픽셀을 제외한 적어도 하나의 비포화 픽셀과 기준 픽셀을 비교함으로써 상기 이미지 데이터를 압축하도록 구성될 수 있다.
본 개시의 예시적 실시예에 따른 이미지를 촬상하는 전자 장치는, 픽셀 어레이를 포함하고, 이미지 데이터를 출력하도록 구성된 이미지 센서, 서로 인접하며 동일한 컬러를 가지는 복수의 픽셀들인 픽셀 그룹에서 픽셀 값이 임계치를 넘은 포화 픽셀을 검출하고, 상기 포화 픽셀의 위치를 나타내는 포화 플래그를 생성하며, 상기 픽셀 그룹 중 상기 포화 픽셀을 제외한 적어도 하나의 비포화 픽셀과 기준 픽셀을 비교함으로써 상기 이미지 데이터를 압축하고, 압축 결과, 포화 플래그 및 압축 방법을 포함하는 비트스트림을 출력하도록 구성된 인코더를 포함하는 이미지 신호 처리기, 및 상기 비트스트림을 해독함으로써 상기 이미지 데이터를 복원하도록 구성된 디코더를 포함하는 애플리케이션 프로세서를 포함할 수 있다.
본 개시의 기술적 사상에 따른 이미지 압축 방법은 압축률의 저하를 유발하는 포화 픽셀을 압축하지 않음으로써 비포화 픽셀에 할당되는 비트를 증대시킬수 있다. 비포화 픽셀에 할당되는 픽셀이 증대됨에 따라 화질 열화는 절감되고 압축률은 향상될 수 있다. 또한, 본 개시의 기술적 사상에 따른 이미지 압축 방법은 포화 픽셀이 많은 경우에 무손실 압축을 달성할 수 있다.
도 1은 본 개시의 예시적인 실시예에 따른 전자 장치(를 나타내는 블록도이다.
도 2은 본 개시의 예시적인 실시예에 따른 인코더를 나타내는 블록도이다.
도 3은 본 개시의 예시적인 실시예에 따른 디코더를 나타내는 블록도이다.
도 4는 본 개시의 예시적인 실시예에 따른 이미지 압축 방법을 설명하는 흐름도이다.
도 5a 및 도 5b는 본 개시의 예시적인 실시예에 따른 픽셀의 구조를 나타내는 개념도이다.
도 6는 차분 펄스 코드 부호화 방법(DPCM)에 따른 비트스트림의 구조를 나타내는 개념도이다.
도 7, 도 8, 및 도 9는 본 개시의 예시적인 실시예에 따른 포화 픽셀의 발생 개수마다 상이하게 비트 할당되는 비트스트림의 구조를 나타내는 개념도이다.
도 10은 본 개시의 예시적인 실시예에 따른 픽셀의 구조를 나타내는 개념도이다.
도 11은 차분 펄스 코드 부호화 방법(DPCM)에 따른 비트스트림의 구조를 나타내는 개념도이다.
도 12는 본 개시의 예시적인 실시예에 따른 포화 픽셀의 발생에 따라 생성되는 비트스트림의 구조를 나타내는 개념도이다.
도 13a 및 도 13b는 본 개시의 예시적 실시예에 따른 압축 정보를 설명하는 표이다.
도 14a 및 도 14b는 본 개시의 예시적 실시예에 따른 이미지 신호 처리기를 포함하는 전자 장치를 나타내는 블록도이다.
도 15는 본 개시의 예시적 실시예에 따른 전자 장치의 일부를 도시하는 블록도이다.
도 16은 도 14의 카메라 모듈을 상세하게 설명하는 블록도이다.
이하, 첨부한 도면을 참조하여 본 개시의 실시예에 대해 상세히 설명한다.
본 개시에서 '픽셀', '픽셀 그룹','컬러 픽셀'또는 '서브 픽셀'이라는, 용어는 객체를 센싱하는 광 감지 소자가 위치하는 물리적인 영역을 의미할 수 있고, 또는, 객체의 일 부분을 센싱한 광 감지 소자로부터 생성된 전기 신호에 대응되는 데이터값일 수 있다. 이미지 센서에 대한 설명을 제외하고는, '컬러 픽셀'은 광 감지 소자로부터 생성된 전기 신호에 대응되는 데이터값으로 이해될 수 있다. '픽셀'은 컬러 픽셀, 서브 픽셀 등을 포함하는 포괄적인 용어로서 이용된다.
반도체 소자의 고집적화 및 처리 속도 향상으로 인해 초당 촬영 가능한 이미지의 개수도 증가됨에 따라, 전자 장치 내에 저장되고 처리되는 이미지 데이터의 크기는 점차 증대되고 있다. 따라서 이미지 데이터를 효과적으로 처리하기 위해서 이미지 데이터를 압축하는 기술이 요구된다.
빛 신호를 전기 신호로 변환 하는 광 감지 소자의 개수가 많을 수록 고해상도 이미지를 생성하기 쉽다. 광 감지 소자의 집적도가 높아질 수록, 광 감지 소자 간의 물리적인 간격은 좁아질 수 있고, 그에 따른 크로스 토크(cross-talk) 등의 노이즈가 발생하여 화질 열화를 유발할 수 있다.
저조도에서는 광 감지 소자에 충분한 광 신호가 입력되기 어려워 고해상도 이미지를 생성하는 데에 장애 요소가 될 수 있다. 저조도에서도 고해상도 이미지를 생성하기 위해, 하나의 컬러 필터를 공유하는 컬러 픽셀을 복수 개의 서브 픽셀로 분할함으로써, 하나의 컬러 픽셀을 표현하기 위해 복수 개의 서브 픽셀들을 이용할 수 있다. 복수의 서브 픽셀들로부터 생성된 전기 신호들을 모두 합치면 충분한 광량이 확보될 수 있다. 예시적인 실시예에 따르면, 하나의 컬러 픽셀은 4개의 서브 픽셀들, 또는 9개의 서브 픽셀들로 분할될 수 있다. 그러나 개시된 숫자는 예시에 불과하고, 컬러 픽셀은 16개, 25개 등 제곱 수들로 분할되거나, m×n(m, n은 2 이상의 정수)의 행렬 형태로 분할될 수 있다.
이미지 데이터를 효과적으로 압축하기 위해서는 압축 효율이 좋으면서 데이터 손실이 크지 않을 것이 요구된다. 이미지를 압축하기 위한 하나의 방법으로서 압축하고자 하는 대상 픽셀과, 대상 픽셀과 인접하는 후보 픽셀들 중에서 하나의 참조 픽셀을 정하고, 대상 픽셀과 참조 픽셀의 픽셀 차이값에 기초해 이미지 데이터를 압축할 수 있다. 차이값에 기초한 압축 방법은 차분 펄스 코드 부호화 방법(Differential Pulse Code Modulation; DPCM)으로 지칭될 수 있다.
동일한 컬러 픽셀을 통과하도록 배치된 복수의 서브 픽셀들을 포함하는 컬러 픽셀들이 특정 컬러 패턴에 따라 배열된 베이어 이미지를 압축하는 경우에도 상기 압축 방법이 적용될 수 있다. 예시적인 실시예에서 베이어 패턴은 그린(Green), 레드(Red), 블루(Blue), 그린(Green)이 순서대로 행렬 형태로 배열된 공지의 패턴일 수 있다.
도 1은 본 개시의 예시적인 실시예에 따른 전자 장치(10)를 나타내는 블록도이다.
전자 장치(10)는 전하 결합 소자 및 금속 산화물 반도체(Complementary Metal Oxide Semiconductor, CMOS) 등의 고체 이미지 센서를 이용하여 피사체에 대한 이미지를 센싱할수 있고, 센싱된 이미지를 처리하거나 메모리에 저장할 수 있으며, 처리된 이미지를 메모리에 저장할 수 있다. 예시적인 실시예에 따르면 전자 장치(10)는 디지털 카메라, 디지털 캠코더, 모바일 폰, 또는 태블릿 컴퓨터, 또는 휴대용 전자 장치로 구현될 수 있다. 휴대용 전자 장치는, 랩탑 컴퓨터, 이동 전화기, 스마트폰, 태블릿 PC, PDA(personal digital assistant), EDA(enterprise digital assistant), 디지털 스틸 카메라, 디지털 비디오 카메라, 오디오 장치, PMP(portable multimedia player), PND(personal navigation device), MP3 플레이어, 휴대용 게임 콘솔(handheld game console), e-북(e-book), 웨어러블 기기 등을 포함할 수 있다. 또한, 전자 장치(10)는 드론(drone), 첨단 운전자 보조 시스템(Advanced Drivers Assistance System; ADAS) 등과 같은 전자 기기 또는 차량, 가구, 제조 설비, 도어, 각종 계측 기기 등에 부품으로 탑재될 수 있다.
도 1을 참조하면, 전자 장치(10)는 이미지 센서(100), 이미지 신호 처리기(Image Signal Processor; ISP)(200), 애플리케이션 프로세서(Application Processor; AP)(300) 및 메모리 서브시스템(400)을 포함할 수 있다.
이미지 센서(100)는 광학 렌즈를 통하여 입사된 피사체의 광학적 신호를 전기적 신호로 변환하고, 전기적 신호들을 기초로 이미지 데이터(IDTA)를 생성하여 출력할 수 있다. 이미지 센서(100)는 이미지 또는 광 센싱 기능을 갖는 전자 기기에 탑재될 수 있다. 예를 들어, 이미지 센서(100)는 카메라, 스마트폰, 웨어러블 기기, 사물 인터넷(Internet of Things(IoT)) 기기, 태블릿 PC(Personal Computer), PDA(Personal Digital Assistant), PMP(portable Multimedia Player), 네비게이션(navigation), 드론(drone), 첨단 운전자 보조 시스템(Advanced Drivers Assistance System; ADAS) 등과 같은 전자 기기에 탑재될 수 있다. 또한 이미지 센서(100)는 차량, 가구, 제조 설비, 도어, 각종 계측 기기 등에 부품으로서 구비되는 전자 기기에 탑재될 수 있다. 이미지 센서(100)는 이미지 신호 처리기(200), 또는 애플리케이션 프로세서(300)의 제어에 의해 렌즈(미도시)를 통해 촬상된 피사체를 센싱할 수 있다.
이미지 센서(100)는 픽셀 어레이(110)를 포함할 수 있다.
픽셀 어레이(110)는 복수의 행(row) 라인, 복수의 열(column) 라인 및 각각이 행 라인과 열 라인에 접속되며 행렬 형태로 배치된 복수의 픽셀들, 및 복수의 픽셀들 각각에 대응하도록 배열된 복수의 컬러 필터를 포함할 수 있다.
복수의 픽셀들 각각은 광 감지 소자를 포함할 수 있다. 광 감지 소자는 빛을 감지하고, 감지된 빛을 전기적 신호인 픽셀 신호로 변환할 수 있다. 예를 들어, 광 감지 소자는 포토 다이오드(photo diode), 포토 트랜지스터(photo transistor), 포토 게이트(photo gate), 핀드 포토 다이오드(pinned photo diode, PPD), 또는 이들의 조합일 수 있다. 복수의 광 감지들 소자 각각은 포토 다이오드, 전송 트랜지스터, 리셋 트랜지스터, 증폭 트랜지스터 및 선택 트랜지스터를 포함하는 4-트랜지스터 구조일 수 있다. 예시적인 실시예에 따라, 복수의 광 감지 소자들 각각은 1-트랜지스터 구조, 3-트랜지스터 구조, 4-트랜지스터 또는 5-트랜지스터 구조이거나, 복수의 픽셀들이 일부 트랜지스터를 공유하는 구조일 수 있다.
컬러 필터는 픽셀 어레이(110)의 복수의 픽셀들 각각과 상응하도록 배열될 수 있고, 광 감지 소자로 들어오는 빛 중 특정 파장만을 투과시킬 수 있다. 예시적인 실시예에서, 컬러 필터는 베이어 컬러 필터(Bayer Color Filter)의 형태로 적용될 수 있다. 베이어 패턴은 사람의 눈이 피사체의 그린 성분으로부터 루미넌스(luminance) 데이터의 대부분을 도출한다는 전제에 기초한다. 베이어 컬러 필터에 포함된 픽셀들 중 절반은 그린(Green) 신호를 검출하며, 나머지 4분의 1은 레드(Red) 신호를, 나머지 4분의 1은 블루(Blue) 신호를 검출할 수 있다. 일 실시 예에 따라, 베이어 컬러 필터(1200)는 레드(R) 픽셀, 블루(B) 픽셀, 및 2개의 그린(G) 픽셀들을 포함하는 2 Х 2 크기의 컬러 픽셀들이 반복적으로 배치되는 구성일 수 있다. 다른 실시 예에 따라, 베이어 컬러 필터(1200) 는 레드 픽셀, 블루 픽셀, 및 2개의 와이드 그린(wide green, W) 픽셀들을 포함하는 2 Х 2 크기의 컬러 픽셀들이 반복적으로 배치되는 구성일 수 있다. 예시적인 실시예에서, 4개의 픽셀들 중에서 2개의 픽셀들에는 녹색 필터가 배치되고, 나머지 2개의 픽셀에는 청색 필터와 적색 필터가 각 배치되는 RGB 컬러 필터 방식이 채택될 수 있다. 또한, RGB 컬러 필터 방식 외에도, 사이안(cyan), 옐로우(yellow), 그린(green), 마젠타(magenta)의 컬러 필터가 4개의 픽셀에 각각 배치되는 CYGM 컬러 필터 방식이 채택될 수 있다. 이 외에도, CYMK(Cyan, Yellow, Green, Key) 컬러 필터 방식이 적용될 수 있다. 복수의 컬러 필터는 하나의 컬러 필터층을 구성할 수 있다. 설명의 편의를 위해 베이어 패턴을 예시하나, 본 개시의 기술적 사상은 베이어 패턴에 국한되지 않고 화이트, 또는 옐로우를 포함하거나, 두 개 이상의 컬러 영역이 병합(merge)된 다양한 패턴일 수 있음이 이해되어야 한다.
이미지 센서(100)는 픽셀 어레이(110)에 의해 생성된 픽셀 신호를 처리하는 복수의 모듈들을 더 포함할 수 있다. 예시적인 실시예에 따르면, 복수의 모듈들은, 로우 드라이버(미도시), 램프 신호 생성기(미도시), 타이밍 생성기(미도시), 아날로그 디지털 컨버터(Analog-to-Digital Converter, 미도시) 및 리드아웃 회로(미도시) 등 광 신호를 처리하거나 이미지 센싱 감도를 향상시키기 위한 추가적인 구성들을 포함할 수 있다. 예를 들어, 리드아웃 회로는 픽셀 어레이(110)로부터 제공되는 전기적 신호를 기초로 로우 데이터(Raw data)를 생성하고, 로우 데이터 또는 배드 픽셀 제거 등의 전처리가 수행된 로우 데이터를 이미지 데이터(IDTA)로서 출력할 수 있다. 이미지 센서(100)는 픽셀 어레이(110) 및 리드아웃 회로를 포함하는 반도체 칩 또는 패키지로서 구현될 수 있다.
이미지 센서(100)는 픽셀 어레이(110)에서 생성된 픽셀 신호를 복수의 모듈들을 이용하여 처리함으로써 이미지 데이터(IDTA)를 출력할 수 있다.
이미지 데이터(IDTA)는 픽셀 신호가 복수의 모듈들(예를 들어, 램프 신호 생성기, 리드아웃 회로 등)에 의해 처리된 결과이다. 예시적인 실시예에서, 이미지 데이터(IDTA)는 이진 코드일 수 있다. 예시적인 실시예에서, 이미지 데이터(IDTA)는 객체에 대한 픽셀 정보 및 픽셀 값을 포함할 수 있다. 예를 들어, 이미지 데이터(IDTA)는 객체의 특정 부분을 센싱한 광 감지 소자의 픽셀 어레이(110) 상 위치, 픽셀의 색상(즉, 컬러 필터의 종류) 등을 픽셀 정보로 포함할 수 있다. 예시적인 실시예에서, 이미지 데이터(IDTA)는 이미지 센서(100)가 처리할 수 있는 데이터의 동적 영역(dynamic range)에 따른 픽셀 값을 포함할 수 있다. 예를 들어, 이미지 데이터(IDTA)는 개별 픽셀에 대한 동적 영역이 10비트임에 따라, 0~1023의 픽셀 값 중 센싱된 픽셀 값을 개별 픽셀에 대한 데이터로서 포함할 수 있다.
예시적인 실시예에서, 복수의 픽셀 값들의 집합은 베이어 이미지(Bayer Image)라고 명명될 수 있다. 여기에서, 베이어 이미지는 물리적으로 빛의 특정 파장을 투과시키는 기능을 하는 컬러 필터와 구분될수 있다. 예시적인 실시예에서, 베이어 이미지는 이미지 센서(100)에서 센싱된 이미지가 이미지 신호 처리기(200), 애플리케이션 프로세서(300), 또는 사용자 환경에서 인식되는 관념적 이미지 형상과 대응되는 이미지일 수 있다. 다시 말해, 베이어 이미지는 전자 장치(10) 내에서 하나의 처리 단위로서 취급되는 완성된 이미지의 픽셀 정보를 담고 있는 이미지 데이터를 의미할 수 있다. 설명의 편의를 위해 본 명세서에서는 '베이어 이미지' 용어를 사용하여 이미지 데이터를 설명하나, 본 명세서가 개시하는 기술적 사상은 베이어 패턴의 컬러 필터에 국한되지 않고 다양한 패턴을 가지는 컬러 필터가 적용될 수 있음이 이해되어야 한다.
이미지 신호 처리기(ISP)(200)는 중앙 처리 장치(CPU), 마이크로프로세서(Microprocessor), 또는 MCU(Micro Controller Unit)를 포함할 수 있다. 이미지 신호 처리기(200)가 직접 수행하는, 또는 이미지 신호 처리기(200)에 포함된 이미지 신호 처리기(200)가 수행하는 처리는, 이미지 아티팩트들(artifacts)에 대한 이미지 향상 알고리즘(Image Enhancement Algorithm)의 적용을 의미할 수 있다. 예를 들어, 이미지 신호 처리기(200)는 수신된 이미지 프레임에 대해 화이트 밸런싱(white balancing), 디노이징(denoising), 디모자이킹(demosaicking), 렌즈 쉐이딩(lens shading), 및 감마 보정(gamma corrections) 등을 수행할 수 있으나 이에 제한되지 않고 다양한 이미지 후처리를 수행할 수 있다.
이미지 신호 처리기(200)는 이미지 데이터(IDTA)에 대하여 이미지 처리(image processing)를 수행할 수 있다. 예를 들어, 이미지 신호 처리기(200)는 이미지 데이터(IDTA)에 대하여 데이터 형식을 변경하는 이미지 처리(예컨대 베이어 패턴의 이미지 데이터를 YUV 또는 RGB 형식으로 변경), 노이즈 제거, 밝기 조정, 선명도(sharpness) 조정 등의 화질 향상을 위한 이미지 처리 등을 포함할 수 있다. 이미지 신호 처리기(200)는 전자 장치(10)의 하드웨어를 구성할 수 있다. 도 1에서, 이미지 신호 처리기(200)가 이미지 센서(100)와 별도로 구성된 것으로 도시되었으나, 이에 제한되는 것은 아니며, 이미지 신호 처리기(200)는 이미지 센서(100) 내부에 위치하거나, 또는 애플리케이션 프로세서(300) 내부에 위치할 수도 있다.
본 개시의 예시적인 실시예에 따르면, 이미지 신호 처리기(200)는 이미지 센서(100)의 출력 신호인 이미지 데이터(IDTA)를 수신하고, 이미지 데이터(IDTA)를 가공 및 처리한 결과인 인코딩 데이터(ED)를 생성할 수 있다. 인코딩 데이터(ED)는 제1 인터페이스(I/F)(250)를 통해 외부에 제공될 수 있다.
이미지 신호 처리기(200)는 인코더(210), 모드 선택기(230), 및 제1 인터페이스(250)를 포함할 수 있다. 본 개시의 예시적인 실시예에 따르면, 이미지 신호 처리기(200)는 이미지 데이터(IDTA)를 수신하고, 인코딩 데이터(ED)를 출력할 수 있다.
인코더(210)는 이미지 데이터(IDTA)를 압축하여 데이터의 크기를 감소시킬 수 있고, 처리 장치(예를 들어, 애플리케이션 프로세서(300))에서 처리될 수 있도록 이미지 규격에 따라 부호화시킬 수 있다. 본 개시의 예시적인 실시예에 따르면, 인코더(210)는 이미지 데이터(IDTA)를 압축함으로써 압축 데이터(CD)를 생성하고, 모드 선택기(230)에 출력할 수 있다. 본 개시의 예시적인 실시예에 따르면, 인코더(210)는 모드 선택기(230)의 모드 신호(MODE)를 수신하고, 압축 모드에 따른 인코딩을 수행함으로써 인코딩 데이터(ED)를 수신할 수 있다.
본 개시의 예시적 실시예에 따르면, 인코더(210)는 객체를 센싱한 픽셀 값들을 포함하는 이미지 데이터(IDTA) 중, 과도하게 수광된 포화 픽셀(Saturation Pixel; SP)을 제외한 나머지 픽셀들을, 포화 픽셀과 동일한 색상 정보를 가지며 포화 픽셀과 인접한 다른 픽셀인 기준 픽셀과 비교함으로써 이미지 데이터(IDTA)를 압축할 수 있다.
본 개시의 예시적인 실시예에 따르면, 포화 픽셀(SP)은 과도한 수광에 의해 생성된 픽셀 값을 가지는 데이터에 상응할 수 있다. 본 개시의 예시적인 실시예에 따르면, 포화 픽셀(SP)은 인간의 눈으로 차이를 명확하게 식별할 수 없을 정도로 밝은 빛을 표상하는 픽셀에 대한 데이터이다. 포화 픽셀(SP)은 픽셀이 표현할 수 있는 최대 픽셀 값과 미세하게 차이가 존재할 수 있나 이미지의 해상도에는 거의 영향을 미치지 않는다.
본 예시적인 실시예에서, 포화 픽셀(SP)은 개별 픽셀이 가질 수 있는 데이터의 크기인 동적 범위(Dynamic Range) 중 임계치를 넘는 픽셀 값을 가지는 픽셀일 수 있다. 본 개시의 예시적인 실시예에 따르면, 임계치는 개별 픽셀의 동적 범위 중 상한선에 거의 근접한 픽셀 값일 수 있다. 예를 들어, 개별 픽셀의 동적 범위가 10 비트(bit)인 경우(즉, 픽셀당 10 비트의 정보를 포함), 개별 픽셀의 픽셀 값은 0~1023일 수 있고, 임계치는 1000일 수 있다. 이 때, 픽셀 값이 1000보다 크거나 같은 픽셀은 포화 픽셀(SP)로 분류될 수 있다. 예를 들어, 임계치는 개별 픽셀의 동적 범위 상한의 95%에 해당하는 값일 수 있으나, 이에 제한되지는 않는다.
임의의 픽셀을 포화 픽셀(SP)로 분류하기 위한 임계치는 개별 픽셀의 동적 범위에 따라, 촬상 환경에 따라, 또는 요구되는 해상도 따라 다양하게 변경될 수 있다.
본 개시의 예시적인 실시예에 따르면, 개별 픽셀의 동적 범위가 작을 수록, 임계치는 픽셀 값의 상한선의 축소에 비례하여 변경될 수 있다. 예를 들어, 동적 범위가 8 비트인 경우, 개별 픽셀의 동적 범위는 0~255일 수 있고, 이 때의 임계치는 230일 수 있다. 예를 들어, 동적 범위가 12 비트인 경우, 개별 픽셀의 동적 범위는 0~4191일 수 있고, 이 때의 임계치는 4000일 수 있다.
본 개시의 예시적인 실시예에 따르면, 촬상 환경이 포화 픽셀을 많이 생성하는 경우, 임계치는 상향될 수 있다. 예를 들어, 촬상 환경이 야외, 또는 역광이 많은 상황인 경우, 임계치는 1020일 수 있다. 예를 들어, 촬상 환경이 실내, 또는 역광이 거의 없는 상황인 경우, 임계치는 950일 수 있다.
본 개시의 예시적인 실시예에 따르면, 요구되는 해상도가 높은 경우, 임계치는 개별 픽셀의 동적 범위의 상한에 보다 가깝게 설정될 수 있다. 예를 들어, 고해상도가 요구되는 경우, 10 비트의 픽셀의 임계치는 1020일 수 있다. 예를 들어, 저해상도가 요구되는 경우, 10 비트의 픽셀의 임계치는 980일 수 있다.
본 개시의 기술적 사상은 전술된 임계치의 특정한 수치에 한정되지 않으며, 최적화된 압축률을 달성하기 위해 가변적으로 변경될 수 있다.
예시적인 실시예에서, 기준 픽셀은 복수의 픽셀들 중 어느 하나의 픽셀일 수 있다. 기준 픽셀은 압축하려는 대상인 대상 픽셀(Target Pixel)과 동일한 컬러를 가질 수 있다. 기준 픽셀은 대상 픽셀보다 먼저 압축될 수 있다. 기준 픽셀은 대상 픽셀보다 먼저 복원됨으로써, 대상 픽셀의 해독 시 참조될 수 있다. 기준 픽셀은 대상 픽셀로부터 미리 정해진 방향 및 거리에 위치할 수 있다.
예시적인 실시예에서, 기준 픽셀은 특정한 값을 가지는 가상의 픽셀일 수 있다. 예를 들어, 기준 픽셀은 복수의 픽셀들의 픽셀 평균 값, 또는 복수의 픽셀들 각각의 픽셀 값들을 오름차순(또는 내림차순)으로 정렬하고, 그 중 중간 값을 취하는 픽셀 중위 값을 가지는 가상의 픽셀을 지칭할 수도 있다. 기준 픽셀 및 대상 픽셀의 관계에 관하여는 도 5a 및 도 5b를 참조하여 보다 상세히 설명된다.
인코더(210)는 이미지 데이터(IDTA)를 부호화하여 인코딩 데이터(ED)를 생성할 수 있다. 인코딩 데이터(ED)는 비트스트림(Bitstream)의 형태로 출력할 수 있다. 이미지 신호 처리기(200)는 이미지 데이터(IDTA)를 부호화하는 과정에서 메모리 서브시스템(400)에 저장된 데이터에 대한 읽기 및 쓰기 동작을 수행할 수 있다.
인코더(210)는 베이어 컬러 필터를 통해 획득된 원본 픽셀 데이터들에 상응하는 이미지 데이터(IDTA)를 압축하여 베이어 이미지의 크기를 감소시킬 수 있다. 베이어 이미지는 픽셀 어레이(110) 를 통해 획득된 베이어 패턴의 픽셀 데이터들을 의미할 수 있다.
본 개시의 예시적인 실시예에 따르면, 인코더(210)는 이미지 데이터(IDTA)에서 픽셀 값이 임계치를 넘는 픽셀을 포화 픽셀(SP)로 분류할 수 있다. 본 개시의 예시적인 실시예에 따르면, 인코더(210)는 포화 픽셀(SP)과 동일한 컬러 정보를 포함하는 후보 픽셀 중 포화 픽셀과 물리적으로 인접한 기준 픽셀을 결정할 수 있다. 본 개시의 예시적인 실시예에 따르면, 인코더(210)는 압축 대상이 되는 대상 픽셀의 픽셀 값을 기준 픽셀의 픽셀 값과 비교함으로써 데이터의 양을 감축시킬 수 있다.
피사체를 촬상함에 있어서, 압축하려는 대상인 대상 픽셀과, 대상 픽셀과 위치적으로 인접한 후보 픽셀 또는 기준 픽셀간의 픽셀 값의 차이가 큰 경우가 발생할 수 있다. 픽셀 값의 차이가 큰 원인으로, 이미지 센서(100)에 센싱된 이미지가 주변의 다른 피사체에 비해 상대적으로 크기가 작으면서 밝기 또는 색상의 대비가 큰 스팟(spot) 픽셀, 이미지 센서(100)의 센싱 오류인 배드 픽셀, 베이어 이미지 상 모서리 부분인 엣지(edge) 픽셀, 촬상 환경이 역광이 많은 상황, 또는 야외 환경 등의 경우가 있다. 상기와 같은 경우가 발생할 경우 압축을 위해 참조되는 후보 픽셀이 인접한 픽셀들과의 차이가 크므로 압축률이 떨어지게 되거나, 화질 열화가 일어날 수 있다. 따라서, 대상 픽셀과, 인접한 다른 픽셀들간의 픽셀 값 차이가 큰 상황이 발생할 경우를 고려한 압축이 수행될 필요가 있고, 압축을 수행함에 있어서 플래그가 고려된다면 화질 열화를 방지할 수 있다. 대상 픽셀과 기준 픽셀을 비교(예를 들어, 차분)함으로써 데이터를 압축하는 방식은 차분 펄스 코드 부호화 방법(Differential Pulse Code Modulation)이라고 지칭된다.
이미지 데이터(IDTA)는 행마다(row-by-row), 좌측에서부터 인코딩(또는 디코딩)되기 때문에, 비교의 대상이 되는 기준 픽셀은 이미 인코딩(또는 디코딩)되어 있을 필요가 있다. 따라서, 본 개시의 예시적인 실시예에 따르면, 기준 픽셀은 대상 픽셀의 좌측, 또는 상측에 위치할 수 있다. 그러나 본 개시의 기술적 사상은 이에 제한되지는 않으며, 인코딩(또는 디코딩)되는 순서에 따라, 포화 픽셀에 인접하되, 먼저 인코딩(또는 디코딩) 처리된 영역에 존재하는 픽셀 중 어느 하나가 기준 픽셀로 결정될 수 있다. 예를 들어, 포화 픽셀(SP)과 동일한 컬러 정보를 포함하는 픽셀 중 포화 픽셀(SP)의 가장 가까운 좌측에 있는 픽셀이 기준 픽셀로 결정될 수 있다. 이때, 포화 픽셀(SP)과 기준 픽셀의 상대적 위치, 또는 대상 픽셀과 기준 픽셀의 상대적 위치가 결정될 수 있다. 기준 픽셀이 결정됨에 따라, 기준 픽셀의 대상 픽셀과의 상대적인 위치는 디코더(310)에도 공유된다. 기준 픽셀의 위치는 포화 픽셀(SP)의 위치와도 관련될 수 있다.
예시적인 실시예에 따르면, 인코더(210)는 픽셀의 집합인 픽셀 그룹 단위로 데이터를 압축할 수 있다. 본 개시의 예시적인 실시예에 따르면, 픽셀 그룹이 포화 픽셀을 포함하는 경우에, 인코더(210)는 포화 픽셀을 압축하지 않고 포화 픽셀의 위치 정보만을 생성할 수 있다. 본 개시의 예시적인 실시예에 따르면, 인코더(210)는 압축률의 저하를 유발하는 포화 픽셀을 압축하지 않고 포화 픽셀의 위치 정보만을 저장함으로써, 포화 픽셀이 저장되는 공간을 다른 픽셀이 저장되는 공간으로 재할당할 수 있다.
예시적인 실시예에 따르면, 인코더(210)는 픽셀 그룹을 압축함으로써 비트스트림을 생성할 수 있다. 본 개시의 예시적인 실시예에 따르면, 비트스트림은 압축 방법, 압축 모드, 압축률, 손실 정보 등을 나타내는 헤더, 포화 픽셀의 위치 정보를 포함하는 포화 위치 플래그, 및 압축 대상이 되는 대상 픽셀과 기준 픽셀과의 픽셀 값의 차이인 나머지(Residual) 정보를 포함할 수 있다. 본 개시의 예시적인 실시예에 따르면, 포화 픽셀과 기준 픽셀간의 픽셀 값 차이가 비트스트림에 저장되지 않음으로써, 비트스트림의 한정된 공간은 비포화 픽셀을 위해 할당될 수 있으므로, 비포화 픽셀의 데이터 손실율은 최소화될 수 있다. 비트스트림의 구조에 관하여는 도 6 내지 도 11을 참조하여 후술된다.
인코더(210)가 이미지 데이터(IDTA)를 인코딩하는 과정에 관하여는 도 2, 도 6 내지 도 12에서 보다 상세히 설명된다.
모드 선택기(230)는 압축 데이터(CD)를 수신하고, 이미지 데이터(IDTA)를 복수의 압축 모드들 중 어떤 압축 모드로 인코딩할지 결정할 수 있다. 예시적인 실시예에 따르면, 이미지 신호 처리기(200)는 압축 대상, 압축률, 에러율, 및/또는 손실 정보에 따라 서로 다른 다양한 압축 모드들을 가질 수 있다. 본 개시의 예시적인 실시예에 따르면, 모드 선택기(230)는 압축 데이터(CD)의 압축률, 에러율, 손실 정보 등을 확인하고, 다른 압축 모드들과 비교할 수 있다.
본 개시의 예시적인 실시예에 따르면, 압축 데이터(CD)가 다른 압축 모드들에 따른 결과에 비해 성능이 우수한 경우, 모드 선택기(230)는 압축 데이터(CD)를 생성한 방식에 상응하는 압축 모드로 이미지 데이터(IDTA)를 인코딩하도록 지시하는 모드 신호(MODE)를 인코더(210)로 출력할 수 있다. 예시적인 실시예에서, 압축 데이터(CD)가 다른 압축 모드들에 따른 결과에 비해 성능이 우수하지 않은 경우, 압축 데이터(CD)를 생성한 방식에 상응하는 압축 모드가 아닌, 다른 우수한 압축 방식으로 이미지 데이터(IDTA)를 인코딩하도록 지시하는 모드 신호(MODE)를 출력할 수 있다. 압축 모드로서, 픽셀 그룹 중 포화 픽셀을 압축하지 않는 포화 모드 외에도, 불량 픽셀을 탐지하는 BP(Bad Pixel) 모드가 이용될 수 있다. 복수의 압축 모드들에 관하여는 도 13a, 및 도 13b에서 상세히 설명된다.
제1 인터페이스(250)는 인코딩 데이터(ED)가 타 장치 또는 타 모듈에 적합한 규격으로 전송되도록 장치 간 인터페이싱을 지원할 수 있다. 인터페이스는 규격과 설정(configuration)이 서로 다른 장치간에 데이터 및/또는 신호 전송을 원활하게 하는 물리적 프로토콜(규약) 또는 규격이다.
예시적인 실시예에서, 제1 인터페이스(250)는, 애플리케이션 프로세서(300)로 인코딩 데이터(ED)를 전송하기 위해 애플리케이션 프로세서(300)가 지원하는 인터페이싱 방법과 동일한 인터페이싱 방법으로 데이터를 전송할 수 있다. 예시적인 실시예에서, 제1 인터페이스(250)는, 메모리 서브시스템(400)에 인코딩 데이터(ED)를 저장하기 위해, 메모리 서브시스템(400)이 지원하는 인터페이싱 방법과 동일한 인터페이싱 방법으로 데이터를 전송할 수 있다.
카메라 모듈(50)은 이미지 센서(100) 및 이미지 신호 처리기(200)를 포함할 수 있다. 카메라 모듈(50)에서 생성된 인코딩 데이터(EB)는 비트스트림의 형태로 출력된다. 인코딩 데이터(EB)는 카메라 모듈(50)과 같은 규약을 공유하는 장치(예를 들어, 디코더(310))에 의해 해독될 수 있다. 규약이란 압축 방식, 압축 순서, 압축 비트, 기준 픽셀의 위치 등 압축하는 알고리즘에 관한 원칙으로, 부호화된 원리와 동일한 원리가 적용됨으로써 복호화를 할 수 있는 상호 합의를 의미할 수 있다. 예시적인 실시예에서, 카메라 모듈(50)에 포함된 인코더(210)에 적용된 규약과 동일하기만 하면 카메라 모듈(50)에서 생성된 인코딩 데이터(EB)는 디코딩될 수 있으므로, 디코더(310)는 인코더(210)와 반드시 같은 반도체 칩에 실장될 필요가 없다. 예시적인 실시예에 따라, 카메라 모듈(50)과 애플리케이션 프로세서(300)의 생산자는 서로 상이할 수 있다.
도 1에 는 카메라 모듈(50)이 메모리를 포함하지는 않는 것으로 도시되었으나, 본 개시의 기술적 사상은 이에 제한되지 않는다. 예시적인 실시예에 따르면, 카메라 모듈(50)은 메모리 서브시스템(400)의 메모리 중 일부를 포함할 수 있다. 예를 들어, 카메라 모듈(50)은 메모리 서브시스템(400)의 메모리 중 일부로서 DRAM(Dynamic Ramdom Access Memory)을 포함할 수 있다. 그러나, 이는 예시에 불과하고, 카메라 모듈(50)은 SRAM(Static RAM) 등 빠른 속도로 데이터 접근을 지원하는 다양한 종류의 메모리 장치를 포함할 수 있다. 카메라 모듈(50)에 메모리가 포함된 경우는 3-적층(3-STACK) 구조로 지칭될 수 있다.
애플리케이션 프로세서(300)는 중앙 처리 장치(CPU), 마이크로프로세서(Microprocessor), 또는 MCU(Micro Controller Unit)일 수 있다. 애플리케이션 프로세서(300)는 디코더(310)로부터 수신된 복호화된 비트스트림에 대해 후 처리(post processing)를 수행할 수 있다. 후 처리는, 이미지 아티팩트들(artifacts)에 대한 이미지 향상 알고리즘(Image Enhancement Algorithm)의 적용을 의미할 수 있다. 예를 들어, 애플리케이션 프로세서(300)는 수신된 복호화된 비트스트림에 대해 화이트 밸런싱(white balancing), 디노이징(denoising), 디모자이킹(demosaicking), 렌즈 쉐이딩(lenz shading), 및 감마 보정(gamma corrections) 등을 수행할 수 있으나 이에 제한되지 않고 이미지의 품질을 향상시키기 위한 다양한 기능을 수행할 수 있다.
애플리케이션 프로세서(300)는 디코더(310), 및 제2 인터페이스(330)를 포함할 수 있다.
제2 인터페이스(330)는 인코더(210)로부터 생성된 비트스트림 형태의 인코딩 데이터(ED)를 수신할 수 있다. 제2 인터페이스(330)는 제1 인터페이스(250)와 동일한 규격으로서 데이터를 제공받을 수 있다. 예시적인 실시예에서, 제1 인터페이스(250) 및 제2 인터페이스(330)가 사용하는 규격은 MIPI(Mobile Industry Processor Interface Alliance)일 수 있다. MIPI는 제품 생산자 단체인 MIPI 연합이 합의한 규격으로서, 모바일 기기 제조사들이 공통적으로 인터페이스 방법 및 사양을 규정한 데이터 통신 규약이다. 그러나, 인터페이싱 방법은 이에 한정되지 않고 다양한 임의의 데이터 통신 및 신호 입출력 규약이 존재할 수 있다.
제2 인터페이스(330)는 인코딩 데이터(ED)를 애플리케이션 프로세서(300)에 적합한 데이터 통신 형식으로 인터페이싱하고, 디코더(310)에 데이터를 제공할 수 있다.
디코더(310)는 인코딩 데이터(ED)를 디코딩(복호화)할 수 있다. 예시적인 실시예에서, 디코더(310)는 인코더(210)가 이미지 데이터(IDTA)를 인코딩하기 위해 거치는 일련의 과정을 역순으로 수행함으로써, 압축된 대상 픽셀의 원본 픽셀 값을 복원할 수 있다. 다시 말해, 디코더(310)는 인코더(210)를 통해 압축된 이미지 데이터(IDTA)를 복원할 수 있다.
예시적인 실시예에서, 디코더(310)에는 인코더(210)와 동일한 규약이 적용될 수 있다. 디코더(310)는 인코더(210)에 사용된 부호화 방법에 상응하는 알고리즘에 기반한 복호화 방법을 이용할 수 있다. 본 개시의 예시적인 실시예에 따르면, 디코더(310)에는 인코더(210)에서 결정된 기준 픽셀의 대상 픽셀과의 상대적 위치가 미리 설정될 수 있다. 예를 들어, 포화 픽셀(SP)과 동일한 컬러 정보를 포함하는 픽셀 중 포화 픽셀(SP)의 가장 가까운 좌측에 있는 픽셀이 기준 픽셀로 결정됨에 따라, 디코더(310)는 복호화의 대상이 되는 대상 픽셀을 대상 픽셀과 동일한 컬러 정보를 가지되, 대상 픽셀의 좌측에 위치한 기준 픽셀의 픽셀 값에 기초하여 디코딩할 수 있다. 예시적인 실시예에 따라, 디코더(310)는 대상 픽셀과 기준 픽셀간의 상대적 위치 정보에 기초해 디코딩함으로써, 상대적으로 적은 데이터만으로도 대상 픽셀을 복원할 수 있다. 디코더(310)의 디코딩 동작에 관하여는 도 3에서 상세히 설명된다.
메모리 서브시스템(400)은 이미지 센서(100), 또는 이미지 신호 처리기(200)로부터 제공되는 이미지 데이터(IDTA), 압축 데이터(CD), 및/또는 인코딩 데이터(ED)를 저장할 수 있다. 또한, 메모리 서브시스템(400)은 인코딩 데이터(ED)를 디코딩함으로써 생성된 복원 데이터를 저장할 수 있다. 또한, 메모리 서브시스템(400)은, 저장된 데이터를 전자 장치(10)의 다른 구성들에 제공할 수 있다. 이 외에도, 메모리 서브시스템(400)은 전자 장치(10)의 구동에 필요한 각종 시스템이나 유저 데이터들을 저장할 수 있다.
메모리 서브시스템(400)은 휘발성 메모리 또는 비휘발성 메모리로 구현될 수 있다. 예를 들어, 메모리 서브시스템(400)은 각종 정보를 비휘발적으로 저장하는 비휘발성 메모리와, 전자 장치(10)의 구동과 관련하여 펌웨어 등의 정보 등이 로딩되는 휘발성 메모리 등을 포함할 수 있다. 휘발성 메모리는 DRAM(Dynamic Random Access Memory), SRAM(Static RAM) 등을 포함할 수 있으며, 비휘발성 메모리는 ROM(Read Only Memory), PROM(Programmable ROM), EPROM(Electrically Programmable ROM), EEPROM(Electrically Erasable and Programmable ROM), 플래시 메모리, PRAM(Phase-change RAM), MRAM(Magnetic RAM), RRAM(Resistive RAM), FRAM(Ferroelectric RAM) 등을 포함할 수 있다.
예시적인 실시예에서, 메모리 서브시스템(400) 중 일부는 이미지 신호 처리기(200)의 데이터를 저장할 수 있고, 메모리 서브시스템(400) 중 다른 일부는 애플리케이션 프로세서(300)의 데이터를 저장하고 캐시 메모리 기능을 제공할 수 있다. 도 1에서는 설명의 편의를 위해 하나의 메모리 서브시스템(400)이 이미지 신호 처리기(200) 및 애플리케이션 프로세서(300)를 동시에 지원하는 것처럼 도시되었으나, 이는 저장 또는 캐시 메모리 기능을 지원함을 개념적 및 기능적으로 설명하는 것이고, 하나의 반도체 칩으로 실장될 필요는 없다.
예시적인 실시예에서, 메모리 서브시스템(400) 중 일부는 이미지 신호 처리기(200)의 데이터를 저장하는 메모리 장치는 이미지 데이터(IDTA)의 적어도 일부를 임시로 저장하는 버퍼의 기능을 수행할 수 있다.
예시적인 실시예에 따르면, 메모리 서브시스템(400)은 이미지 데이터(IDTA) 중 첫 번째 행에 대응되는 데이터를 버퍼링할 수 있다. 서브 픽셀들은 매트릭스 형태로 배열될 수 있고, 인코더(210)는 픽셀의 픽셀 정보가 모두 제공된 후에야 데이터를 압축할 수 있으므로, 이미지 데이터(IDTA) 중 첫 번째 행에 대응되는 데이터는 당장 처리될 필요가 없다.
이미지 데이터(IDTA) 중 두 번째 행에 대응되는 데이터가 제공될 때, 이미지 신호 처리기(200)는 메모리 서브시스템(400)에 첫 번째 행에 대한 이미지 데이터(IDTA)를 로딩할 수 있다. 인코더(210)는 이미지 데이터(IDTA) 및 제공된 두 번째 행에 대응되는 이미지 데이터(IDTA)에 기초하여 픽셀에 대응되는 데이터를 압축할 수 있다. 압축된 데이터는 메모리 서브시스템(400)에 저장될 수 있다.
이미지 신호 처리기(200) 및 애플리케이션 프로세서(300)는 로직 회로를 포함하는 하드웨어와 같은 처리 회로로서 구현될 수 있거나, 압축 동작을 수행하는 소프트웨어를 실행하는 프로세서와 같이 하드웨어와 소프트웨어의 조합으로 구현될 수 있다. 특히, 처리 회로는 중앙 처리 장치(Central Procesing Unit; CPU), 산술 및 논리 연산, 비트 쉬프트 등을 수행하는 ALU(Arithmetic Logic Unit), DSP(Digital Signal Processor), 마이크로프로세서(microprocessor), ASIC(Application Specific Integrated Circuit) 등으로 구현될 수 있으나, 이에 제한되지 않는다.
본 개시의 기술적 사상에 따른 이미지 압축 방법은 압축률의 저하를 유발하는 포화 픽셀을 압축하지 않음으로써 비포화 픽셀에 할당되는 비트를 증대시킬수 있다. 비포화 픽셀에 할당되는 픽셀이 증대됨에 따라 화질 열화는 절감되고 압축률은 향상될 수 있다.
도 2은 본 개시의 예시적인 실시예에 따른 인코더(210)를 나타내는 블록도이다. 도 1이 함께 참조된다.
도 2를 참조하면, 인코더(210)는 탐지기(E_Detector)(211), 포화 플래그 생성기(213), 압축기(215), 재건기(E_Reconstructor)(217) 및 참조 버퍼(E_Reference Buffer)(219)를 포함할 수 있다. 인코더(210)는 탐지기(211), 참조 버퍼(219), 포화 플래그 생성기(213), 압축기(215) 및 재건기(217)를 총괄적으로 제어하는 중앙 프로세서(미도시)를 포함할 수 있다. 또는, 탐지기(211), 참조 버퍼(219), 포화 플래그 생성기(213), 압축기(215) 및 재건기(217)가 각각의 자체 프로세서(미도시)에 의해 작동되며, 프로세서(미도시)들이 상호 유기적으로 작동함에 따라 인코더(210)가 전체적으로 작동될 수도 있다. 또는, 인코더(210)의 외부 프로세서(미도시)의 제어에 따라, 탐지기(211), 참조 버퍼(219), 포화 플래그 생성기(213), 압축기(215) 및 재건기(217)가 제어될 수도 있다. 도 2에 도시된 인코더(210)에 도 1에서 설명한 인코더(210)가 적용될 수 있다. 도 1과 배치되지 않는 범위에서 중복되는 설명은 생략하기로 한다.
인코더(210)는 이미지 센서(100)로부터 입력받은 이미지 데이터(IDTA)를 압축하여 데이터 정보량을 감소시킬 수 있다. 예시적인 실시예에 따라, 인코더(210)는 베이어 이미지 상에서 압축하려는 대상인 대상 픽셀을, 대상 픽셀과 위치적으로 근접한 복수의 후보 픽셀과 비교함으로써 이미지 데이터(IDTA)를 압축할 수 있다.
탐지기(211)는 이미지 센서로부터 생성된 이미지 데이터(IDTA)를 입력받을 수 있다. 탐지기(211)는 이미지 데이터(IDTA)를 구성하는 복수의 픽셀들을 일정한 배열 및 개수로 그룹화할 수 있다. 그룹화된 픽셀들은 픽셀 그룹으로 지칭될 수 있고, 인코더(210)에서는 픽셀 그룹 단위로 데이터가 처리될 수 있다. 예를 들어, 탐지기(211)는 이미지 데이터(IDTA)를 픽셀 그룹 단위로 압축할 수 있다. 픽셀 그룹은 픽셀이 가로, 세로 각각 3개씩 배열된 3Х3 구성, 또는 5Х5 구성 등 2차원 어레이 배열일 수도 있고, 또는 하나의 행(row)에 나란히 배열된 8개 픽셀의 집합인 1Х8 구성 등의 배열일 수 있다. 픽셀 그룹의 구성인 픽셀의 가로, 세로 각각의 개수를 의미하는 3Х3, 5Х5 및/또는 1Х8 구성은 설명의 편의를 돕기 위한 예시일 뿐이며, 개시된 구성 및 수치에 한정되지 않는다.
예시적인 실시예에 따르면, 탐지기(211)는 압축하려는 대상 픽셀과, 대상 픽셀과 위치적으로 근접한 복수의 후보 픽셀들을 탐색할 수 있다. 픽셀 그룹의 구성 및 크기에 따라 한번에 탐색되는 픽셀의 개수는 가변적일 수 있다. 복수의 후보 픽셀들은 대상 픽셀의 좌측 또는 상측에 위치할 수 있으나, 인코딩 순서에 따라 달라질 수 있다.
본 개시의 예시적인 실시예에 따르면, 탐지기(211)는 픽셀 그룹에 포화 픽셀이 존재함을 탐지할 수 있다. 본 개시의 예시적인 실시예에 따르면, 탐지기(211)는 픽셀 그룹을 구성하는 픽셀들의 픽셀 값 중 임계치를 넘는 픽셀 값을 가지는 픽셀을 포화 픽셀(도 1, SP)로 결정할 수 있다. 예를 들어, 픽셀마다 10 비트가 할당될 수 있고, 픽셀의 동적 범위가 0~1023일 때, 임계치는 1000으로 결정될 수 있다. 이 경우, 탐지기(211)는 픽셀들 중 1000을 넘는 픽셀 값을 가지는 픽셀을 포화 픽셀(SP)로 결정할 수 있다. 탐지기(211)는 포화 픽셀(SP)로 판단된 픽셀들에 대해, 포화 픽셀임을 나타내는 어트리뷰트(Attribute) 정보(예를 들어, 플래그)를 태깅(tagging)할 수 있다.
본 개시의 예시적인 실시예에 따르면, 탐지기(211)는 픽셀 그룹에 포화 픽셀이 2개 이상 존재함을 탐지하고, 인코더(210)가 포화 모드로 이미지 데이터를 압축시킬 수 있다. 예를 들어, 탐지기(211)는 포화 픽셀이 2개 이상임에 따라 포화 모드로 압축하도록 지시하는 모드 신호(MODE)를 생성할 수 있다. 예를 들어, 탐지기(211)는 포화 픽셀이 2개 이상임에 따라 모드 신호9)에 무관하게 포화 모드로 동작되도록 인코더(210)에 신호를 전송할 수 있다.
예시적인 실시예에서, 탐지기(211)는 재건기(217)에서 복원되어 참조 버퍼(219)에 저장된 후보 픽셀에 관한 정보를, 이미 부호화된 대상 픽셀의 다음 대상 픽셀을 인코딩할 때 이용할 수 있다. 예시적인 실시예에 따르면 다음 대상 픽셀을 압축 또는 인코딩하기 위한 후보 픽셀로서, 이전에 인코딩된 대상 픽셀들이 이용될 수 있다.
포화 플래그 생성기(213)는 픽셀 그룹에 포함된 포화 픽셀의 위치 정보를 플래그 형태로 생성할 수 있다. 본 개시의 예시적인 실시예에 따르면, 처리 단위인 픽셀 그룹에 포화 픽셀이 포함될 경우, 포화 플래그 생성기(213)는 픽셀 그룹에서의 포화 픽셀의 위치를 비트로서 표현하는 플래그를 생성할 수 있다. 플래그는 대상 픽셀과 기준 픽셀의 방향 정보를 넘버링 또는 특정 비트와 맵핑한 값일 수 있다.
본 개시의 예시적인 실시예에 따르면, 포화 플래그 생성기(213)는 픽셀 그룹에 포함된 복수의 픽셀들 중 비포화 픽셀은 비트 0로, 포화 픽셀은 비트 1로 처리할 수 있다. 예를 들어, 픽셀 그룹에 4개의 픽셀들이 존재하고, 그 중 2번째 픽셀이 포화 픽셀인 경우, 포화 플래그 생성기(213)는 0100의 플래그를 생성할 수 있다. 그러나, 비포화 픽셀이 비트 0으로, 포화 픽셀이 비트 0으로 처리되는 것은 예시에 불과하고, 포화 플래그 생성기(213)는 다양한 방식으로 비포화 픽셀 또는 포화 픽셀을 서로 구분할 수 있다. 예를 들어, 포화 플래그 생성기(213)는 픽셀 그룹에 포함된 복수의 픽셀들 중 비포화 픽셀은 비트 1로, 포화 픽셀은 비트 0으로 각각 처리할 수 있다. 이하에서 예시되는 비포화 픽셀 및 포화 픽셀의 구분에 따른 비트 할당은 상기 설명이 동일하게 적용된다.
압축기(215)는 압축 방법, 압축 모드, 압축률, 손실 정보 등을 나타내는 헤더, 포화 픽셀의 위치 정보를 포함하는 포화 위치 플래그, 및 압축 대상이 되는 대상 픽셀과 기준 픽셀과의 픽셀 값의 차이인 나머지(Residual) 정보에 대한 인코딩(부호화)을 수행하고, 수행된 결과를 비트스트림에 포함시킬 수 있다. 비트스트림은 인코딩된 비트의 연속된 집합일 수 있다. 본 개시의 예시적인 실시예에서, 비트스트림은 헤더 정보가 저장되는 헤더 영역, 포화 플래그가 저장되는 포화 플래그 영역, 및 기준 픽셀과 대상 픽셀의 차이인 나머지 정보가 저장되는 나머지 영역을 포함할 수 있다.
이미지 데이터(IDTA)는 행마다(row-by-row), 좌측에서부터 인코딩(또는 디코딩)되기 때문에, 비교의 대상이 되는 기준 픽셀은 이미 인코딩(또는 디코딩)되어 있을 필요가 있다. 본 개시의 예시적인 실시예에 따르면, 인코더(210)는 대상 픽셀과 동일한 컬러 정보를 포함하되, 대상 픽셀과 가장 인접한 좌측, 또는 상측 픽셀을 기준 픽셀로 결정할 수 있다. 예시적인 실시예에서, 플래그를 포함하는 인코딩 데이터(ED)를 수신하는 디코더(310)는 대상 픽셀을 디코딩할 때 참조 픽셀로서 어떤 픽셀을 이용하여야 하는지를 즉각적으로 판별할 수 있다. 그러나, 본 개시의 기술적 사상은 언급된 위치 관계에 제한되지 않는다. 인코딩(또는 디코딩)되는 순서에 따라, 포화 픽셀에 인접하되, 먼저 인코딩(또는 디코딩) 처리된 영역에 존재하는 픽셀 중 어느 하나가 기준 픽셀로 결정될 수도 있음이 이해되어야 한다.
본 개시의 예시적인 실시예에서, 압축기(215)는 미리 결정된 대상 픽셀과 기준 픽셀 간의 상대적 위치 정보에 기초하여, 대상 픽셀을 압축할 수 있다. 예시적인 실시예에서, 압축기(215)는 미리 설정되거나 어트리뷰트 형태로서 픽셀 정보에 태깅된 상대적 위치 정보에 기초하여 압축의 대상이 되는 대상 픽셀을, 압축을 위한 기준값을 제공하는 기준 픽셀과 비교할 수 있다. 본 개시의 예시적인 실시예에서, 압축기(215)는 대상 픽셀의 위치로부터 미리 결정된 특정한 위치에 있는 기준 픽셀을 탐색하고, 대상 픽셀의 픽셀 값과 기준 픽셀의 픽셀 값을 비교할 수 있다. 예를 들어, 압축기(215)는 대상 픽셀의 픽셀 값을, 대상 픽셀의 바로 위에 위치하며 동일한 컬러 정보를 포함하는 기준 픽셀(RP)의 픽셀 값에 대하여 차분 연산을 수행할 수 있다. 차분 연산이 수행된 결과로서, 나머지 정보가 생성될 수 있다. 본 개시에서는 설명의 편의를 위해 비교 연산의 일 예시로 차분 연산을 들었지만, 이에 국한되지 않고 다양한 연산 방법이 적용될 수 있다. 또한, 대상 픽셀과 복수의 후보 픽셀들 각각을 비교하는 방법은 본 개시에 제안된 방법에 국한되지 않고, 복수의 후보 픽셀들 여러 개의 픽셀 값의 평균 등 다양한 비교 방법이 적용될 수 있다.
본 개시의 예시적인 실시예에 따르면, 압축기(215)는 이미지 데이터(IDTA) 중 포화 픽셀(SP)에 대하여는 차분 연산을 수행하지 않을 수 있다. 본 개시의 예시적인 실시예에 따르면, 압축기(215)는 픽셀 그룹에 포함된 복수의 픽셀들 중 비포화 픽셀에 대하여는 기준 픽셀과의 차분 연산을 수행한 결과로서 나머지 정보를 생성할 수 있으나, 픽셀 그룹에 포화 픽셀(SP)이 포함된 경우에는 포화 플래그 생성기(213)에서 생성된 포화 플래그만을 비트스트림에 포함시키고, 포화 픽셀(SP)과 기준 픽셀과의 차분 연산은 수행하지 않을 수 있다. 본 개시의 예시적인 실시예에 따르면, 포화 픽셀(SP)이 비트스트림에 포함되지 않음에 따라, 포화 픽셀(SP)의 기준 픽셀과의 차분 연산 결과에 상응하는 비트스트림의 저장 공간은 비포화 픽셀에 더 할당될 수 있다. 그에 따라, 비포화 픽셀의 나머지 정보는 포화 픽셀에 대한 나머지 정보가 포함될 ??에 비해 더 많은 공간을 이용하여 데이터를 표현할 수 있고, 비포화 픽셀의 압축에 따른 손실율은 최소화될 수 있다.
압축기(215)는 모드 신호(MODE)에 기초하여 이미지 데이터(IDTA)를 압축할 수 있다. 본 개시의 예시적인 실시예에 따르면, 모드 신호(MODE)는 압축 모드, 압축 방법, 압축률, 및/또는 손실 정보에 따라 압축기(215)가 서로 상이하게 이미지 데이터(IDTA)를 압축하도록 지시할 수 있다.
예시적인 실시예에서, 모드 신호(MODE)는 모드 선택기(230)로부터 압축 데이터(CD)의 압축률, 에러율, 손실 정보 등이 평가된 결과에 따라 생성될 수 있고, 복수의 압축 모드들 중 어느 하나를 지시할 수 있다.
본 개시의 예시적인 실시예에 따르면, 압축 방법으로서, 복수의 대상 픽셀들 각각의 픽셀 값과 기준 픽셀로부터 결정된 기준값 사이의 차분 연산에 기초하여 인코딩가 수행되는 DPCM 방법(Differential Pulse Code Modulation)과, 원본 픽셀들의 값들의 평균 값에 기초하여 부호화가 수행되는 평균 방법 등이 포함될 수 있다. DPCM 모드에서 이용되는 후보 픽셀로서 이미 부호화된 대상 픽셀이 이용되고, 부호화된 대상 픽셀로서 DPCM 모드에 이용되는 후보 픽셀에 대한 정보는 참조 버퍼(219)에 저장될 수 있다. 다양한 압축 방법들에 관하여는 도 13a, 및 도 13b에서 상세히 설명된다.
예시적인 실시예에서, 압축기(215)는 나머지 정보를 비트스트림의 압축 영역에 포함시킬 수 있다. 이 때, 압축 영역에 할당된 메모리 크기보다 나머지 정보의 데이터 크기가 더 크다면, 이미지 데이터(IDTA)를 압축함에 있어 데이터 손실, 즉 화질 열화가 발생할 수 있다. 압축기(215)는 화질 열화를 방지하기 위해 압축 영역에 포함된 나머지 정보에 대해 비트 쉬프트를 수행함으로써, 할당된 메모리 크기에 부합하도록 데이터의 크기를 조정할 수 있다.
압축기(215)는 인코딩 데이터(ED)를 비트스트림 형태로 외부로 출력할 수 있다.또한, 압축기(215)는 인코딩된 대상 픽셀을 다시 디코딩하기 위해 인코딩 데이터(ED)를 재건기(217)에 제공할 수 있다.
재건기(217)는 압축기(215)로부터 출력되는 인코딩 데이터(ED)를 복원함으로써 후보 픽셀들을 다시 생성할 수 있다. 예시적인 실시예에서, 재건기(217)는 인코딩된 대상 픽셀을 다시 복호화함으로써, 디코더(도 1, 310)에서 수행되는 디코딩과 유사한 환경을 설정할 수 있다. 인코더(210)에는 이전의 대상 픽셀에 대해, 대상 픽셀에 대한 원본 픽셀 정보와 대상 픽셀이 인코딩 및 디코딩된 픽셀 정보가 모두 존재함에 반해, 디코더(310)에는 대상 픽셀에 대한 원본 정보가 존재하지 않는다. 즉, 인코더(210)에서 후보 픽셀로서 이전의 원본 픽셀을 사용하면 디코더(310)에서는 인코더(210)에서 참조했던 이전의 대상 픽셀에 대한 원본 픽셀에 대한 정보가 없기 때문에 복원 결과에 오차가 발생하고, 따라서 인코더(210)와 디코더(310) 사이에 불일치가 발생할 수 있다. 그러므로, 이전에 부호화된 대상 픽셀들을 다시 복원한 픽셀이 후보 픽셀로서 사용될 수 있다. 재건기(217)는 복원된 픽셀을 메모리 서브시스템(400)에 저장할 수 있다. 또는 재건기(217)는 복원된 픽셀을 참조 버퍼(219)에 직접 저장할 수도 있다.
참조 버퍼(219)는 대상 픽셀들을 인코딩하기 위한 데이터로서 후보 픽셀에 대한 정보를 탐지기(2110)에 제공할 수 있다. 후보 픽셀은, 대상 픽셀의 주변에 위치한 픽셀(neighborhood pixel)로서, 대상 픽셀에 인접하나 대상 픽셀과 컬러 정보는 동일할 수 있다. 예시적인 실시 예에 따라, 참조 버퍼(219)는 대상 픽셀의 인코딩를 위해 필요한 대상 픽셀들의 주변에 취한 픽셀들의 픽셀 값들을 저장하기 위한 라인 메모리들로 구성될 수 있다. 예시적인 실시예에 따른 참조 버퍼(219)는, DRAM 또는 SRAM과 같은 휘발성 메모리로 구현될 수 있으나 이에 제한되지 않는다.
본 개시의 기술적 사상에 따른 이미지 압축 방법은 압축률의 저하를 유발하는 포화 픽셀을 압축하지 않음으로써 비포화 픽셀에 할당되는 비트를 증대시킬수 있다. 비포화 픽셀에 할당되는 픽셀이 증대됨에 따라 화질 열화는 절감되고 압축률은 향상될 수 있다. 또한, 본 개시의 기술적 사상에 따른 이미지 압축 방법은 포화 픽셀이 많은 경우에 무손실 압축을 달성할 수 있다.
도 3은 본 개시의 예시적인 실시예에 따른 디코더(310)를 나타내는 블록도이다. 도 1 및 도 2가 도 3과 함께 참조된다.
디코더(310)는 인코딩 데이터(ED)를 디코딩(복호화)할 수 있다. 예시적인 실시예에서, 디코더(310)는 인코더(도 2, 210)가 이미지 데이터(IDTA)를 인코딩하기 위해 거치는 일련의 과정을 역순으로 수행함으로써, 압축된 대상 픽셀의 원본 픽셀 값을 복원(또는 해독)할 수 있고, 이로써 디코더(310)는 인코더(210)를 통해 압축된 이미지 데이터(IDTA)를 복원할 수 있다.
예시적인 실시예에서, 디코더(310)에는 인코더(210)와 동일한 규약이 적용될 수 있다. 디코더(310)는 인코더(210)에 사용된 부호화 방법에 상응하는 알고리즘에 기반한 복호화 방법을 이용할 수 있다. 본 개시의 예시적인 실시예에 따르면, 디코더(310)에는 인코더(210)에서 결정된 기준 픽셀의 대상 픽셀과의 상대적 위치가 미리 설정될 수 있다. 예를 들어, 디코더(310)는 기준 픽셀이 위치할 것이라고 미리 결정된 특정 위치로부터 복원된 데이터를 참조함으로써 복원 대상 픽셀을 해독할 수 있다.
예시적인 실시예에서, 디코더(310)는 픽셀 그룹 단위로 압축된 이미지 데이터(IDTA)를 복원할 수 있다. 픽셀 그룹은 인코더(210)에서 사용된 처리 단위다. 예를 들어, 인코더(210)에서 하나의 행(row)에 나란히 배열된 8개 픽셀의 집합인 1×8 구성의 픽셀 그룹이 사용되었다면, 디코더(310)에서도 역시 동일한 1×8 구성의 픽셀 그룹이 사용될 수 있다.
디코더(310)는 탐지기(D_Detector, 311), 모드 결정기(313), 압축 해제기(315), 재건기(D _Reconstructor, 317) 및 참조 버퍼(D_Reference Buffer, 319)를 포함할 수 있다. 디코더(310)는 탐지기(311), 모드 결정기(313), 압축 해제기(315) 재건기(317), 및 참조 버퍼(319)를 총괄적으로 제어하는 중앙 프로세서(미도시)를 포함할 수 있다. 또는, 탐지기(311), 모드 결정기(313), 압축 해제기(315), 재건기(317) 및 참조 버퍼(319)가 각각의 자체 프로세서(미도시)에 의해 작동되며, 프로세서(미도시)들이 상호 유기적으로 작동함에 따라 디코더(310)가 전체적으로 작동될 수도 있다. 또는, 디코더(310)의 외부 프로세서(미도시)의 제어에 따라, 탐지기(311), 모드 결정기(313), 압축 해제기(315), 재건기(317) 및 참조 버퍼(319)가 제어될 수도 있다. 도 3에 도시된 디코더(310) 중 탐지기(311), 재건기(317), 및 참조 버퍼(319)는 도 2의 인코더(210)에서 설명된 탐지기(211), 재건기(217), 참조 버퍼(219)와 유사한 기능을 수행하거나, 탐지기(211), 재건기(217), 참조 버퍼(219) 각각에서 수행된 알고리즘의 역 연산을 수행하도록 구성되었으므로, 중복되는 설명은 생략하기로 한다.
탐지기(311)는 인코딩 데이터(ED) 중 인코딩 처리의 단위로 이용된 픽셀 그룹을 탐지할 수 있다. 예시적인 실시예에서, 탐지기(311)는 이진 코드의 비트스트림 형태인 인코딩 데이터(ED)를 디코딩의 단위인 픽셀 그룹 별로 탐지할 수 있다.
모드 결정기(313)는 비트스트림의 헤더를 해독하고, 압축 모드, 압축 방법, 압축률, 손실 정보를 확인할 수 있다. 본 개시의 예시적인 실시예에 따르면, 모드 결정기(313)는 헤더를 해독한 결과로서, 압축 방법은 DPCM 방식으로 수행되었으며, 압축 모드로서 포화 픽셀(도 1, SP)을 압축하지 않는 포화 모드가 이용되었음을 확인할 수 있다. 본 개시의 예시적인 실시예에서, 모드 결정기는 포화 플래그를 확인함으로써 압축 모드로 포화 모드가 이용되었음을 확인할 수도 있다. 예시적인 실시예에서, 모드 결정기(313)는 헤더로부터 비트 쉬프트 연산의 수행 횟수 및 비교 결과의 부호를 결정할 수 있고, 복원 픽셀을 생성함에 있어서 대상 픽셀과 기준 픽셀간의 비교 방법을 결정할 수도 있다.
압축 해제기(315)는 결정된 압축 모드, 압축 방법, 압축률, 손실 정보에 기초하여 대상 픽셀을 복원할 수 있다. 본 개시의 예시적인 실시예에 따르면, 압축 해제기(315)는 미리 설정된 대상 픽셀과 기준 픽셀과의 상대적 위치 정보에 기초하여 기준 픽셀의 위치를 확인하고, 나머지 정보를 기준 픽셀의 픽셀 값과 합산함으로써 대상 픽셀을 복원할 수 있다. 본 개시의 예시적인 실시예에 따른 나머지 정보는 상대적으로 많은 데이터를 포함할 수 있으므로, 대상 픽셀의 복원률은 향상될 수 있다.
본 개시의 예시적인 실시예에 따르면, 압축 해제기(315)는 인코딩 데이터(ED)에서 포화 플래그를 확인하고, 포화 픽셀(SP)의 위치를 확인할 수 있다.
본 개시의 예시적인 실시예에 따르면, 압축 해제기(315)는 픽셀 그룹 중 포화 픽셀의 위치가 아니라고 판단된 픽셀의 압축을 해제할 수 있다. 예시적인 실시예에서, 압축 해제기(315)는 비포화 픽셀에 대하여 기준 픽셀과의 합산을 통해 대상 픽셀의 복원을 수행할 수 있다. 예를 들어, 포화 플래그 중 비트 0에 해당하는 제1 픽셀에 대하여는, 제1 픽셀에 상응하는 나머지 정보에 기준 픽셀의 픽셀 값을 합산함으로써 대상 픽셀을 복원할 수 있다. 복원된 결과는 복원 데이터(RIDTA)로서 출력될 수 있다.
본 개시의 예시적인 실시예에 따르면, 압축 해제기(315)는 픽셀 그룹 중 포화 픽셀의 위치라고 판단된 픽셀에 대하여는 기준 픽셀과의 합산을 통한 대상 픽셀의 복원을 수행하지 않을 수 있다. 예를 들어, 포화 플래그 중 비트 1에 해당하는 제2 픽셀에 대하여는, 미리 정해진 포화 값을 대상 픽셀로서 복원할 수 있다. 예를 들어, 제2 픽셀은 포화 값으로서 픽셀 값이 1000인 픽셀로 복원될 수 있다.
본 개시의 예시적인 실시예에 따르면, 압축 해제기(315)는 포화 픽셀에 대하여는 미리 정해진 복원값을 픽셀 값으로서 복원시킬 수 있다. 예시적인 실시예에 따르면, 임계치는 인코더(210)에서 임의의 픽셀 중 포화 픽셀이라고 판단하기 위해 이용된 임계치와 동일할 수 있다. 예시적인 실시예에 따르면, 임계치는 인코더에서 포화 픽셀을 판단하기 위한 임계치와 개별 픽셀의 동적 범위의 최대값의 평균값일 수 있다. 이 외에도, 복원률을 극대화시키기 위한 다양한 복원값들이 이용될 수 있다.
재건기(317)는 복원 데이터(RIDTA)를 재배열함으로써 다음 복원 대상 픽셀을 복원시킬 수 있다. 예시적인 실시예에서, 재건기(317)는 N번째(N은 자연수) 행에 대한 복원 데이터(RIDTA)에 기초하여, N+1번째 행을 복원시킬 수 있다.
재건기(317)는 기준 픽셀에 상응하는 데이터를 복원 대상 픽셀보다 먼저 복원할 수 있다. 디코더(310)는 행마다 순차적으로 데이터를 복원하므로, 기준 픽셀에 상응하는 데이터는 복원 대상 데이터보다 시간적으로 먼저 복원될 필요가 있다.
참조 버퍼(319)는 이미지 데이터(IDTA)의 첫 번째 행에 대응되는 데이터를 버퍼링할 수 있다. 이미지 데이터(IDTA)의 첫 번째 행에 대응되는 데이터가 버퍼링되는 동안, 탐지기(311)는 이미지 데이터(IDTA)의 두 번째 행에 대응되는 데이터를 탐지할 수 있다. 탐지기(311)가 이미지 데이터(IDTA)의 두 번째 행에 대응되는 데이터를 처리할 때, 참조 버퍼(319)에 버퍼링된 첫 번째 행에 대응되는 데이터가 로딩됨으로써, 이미지 데이터(IDTA)의 첫 번째 행과 두 번째 행의 이미지가 함께 판단될 수 있다. 디코더(310)는 첫 번째 행에 관한 이미지 데이터를 즉각 복호화하지 않고 버퍼 처리할 수 있고, 두 번째 행에 관한 이미지 데이터를 복호화할 때 첫 번째 행과 두 번째 행에 대응되는 이미지 데이터를 한번에 복호화할 수 있으므로, 복호화에 소요되는 전력은 감축될 수 있다.
도 4는 본 개시의 예시적인 실시예에 따른 이미지 압축 방법을 설명하는 흐름도이다. 도 1이 함께 참조된다.
단계 S110에서, 인코더(도 1, 210)는 이미지 데이터(IDTA)에 포함된 픽셀 그룹 중 포화 픽셀을 검출할 수 있다. 예시적인 실시예에서, 인코더(210)는 서로 인접하며 동일한 컬러를 가지는 복수의 픽셀들인 픽셀 그룹 중 픽셀 값이 임계치를 넘는 포화 픽셀을 검출할 수 있다. 임계치는 복수의 픽셀들 각각이 가질 수 있는 픽셀 값의 동적 범위 상한의 95%일 수 있으나, 이에 제한되지는 않는다. 예를 들어, 픽셀 값으로 10비트가 할당될 때, 임계치는 1000일 수 있으나, 이에 제한되지는 않는다.
단계 S120에서, 인코더(210)는 포화 픽셀의 위치를 포화 플래그로 생성할 수 있다. 인코더(210)는 포화 픽셀의 위치는 비트 1로, 비포화 픽셀의 위치는 비트 0으로 설정할 수 있으나, 이와 반대의 비트가 설정될 수도 있다. 포화 플래그로서 4비트가 할당될 수 있으나, 이에 제한되지는 않는다.
단계 S130에서, 인코더(210)는 포화 픽셀을 제외한 나머지 픽셀들 각각과 기준 픽셀을 비교함으로써 이미지 데이터(IDTA)를 압축할 수 있다. 기준 픽셀의 위치는 미리 결정될 수 있다. 기준 픽셀은 대상 픽셀보다 먼저 압축될 수 있다. 기준 픽셀의 위치는 대상 픽셀보다 앞설 수 있다. 예를 들어, 기준 픽셀은 대상 픽셀보다 앞선 행에 위치할 수 있다. 예를 들어, 기준 픽셀은 대상 픽셀보다 좌측에 위치할 수 있다. 예를 들어, 기준 픽셀은 대상 픽셀보다 먼저 압축된 후 복원된 픽셀 값에 대응될 수 있다. 그러나, 이는 행마다, 및 좌측마다 순차적으로 압축하는 경우에 대한 것이고, 압축하는 순서 및 방향에 따라 변경될 수 있다. 비교 방법으로써, 차분 방식이 이용될 수 있으나, 이에 제한되지 않고 다양한 비교 방법이 적용될 수 있다.
비교 방법으로서, 차분 방식이 이용될 수 있다. 차분 방식은, 기준 픽셀의 픽셀 값과, 대상 픽셀의 픽셀 값의 차이 값을 산출함으로써 데이터를 압축한다. 본 개시에서는 기준 픽셀로서 복수의 픽셀들 중 어느 하나의 픽셀이 선택되는 것을 가정하고 있으나, 이에 제한되지는 않는다. 예를 들어, 기준 픽셀은 복수의 픽셀들의 픽셀 평균 값, 또는 복수의 픽셀들 각각의 픽셀 값들을 오름차순(또는 내림차순)으로 정렬하고, 그 중 중간 값을 취하는 픽셀 중위 값을 가지는 가상의 픽셀을 지칭할 수도 있다.
단계 S140에서, 인코더(210)는 포화 플래그, 압축 결과, 및 압축 정보를 포함하는 비트스트림을 출력할 수 있다. 예시적인 실시예에 따르면, 압축 정보는 비트스트림 중 헤더 영역에 포함될 수 있고, 포화 플래그는 플래그 영역에 포함될 수 있으며, 압축 결과는 나머지 영역에 포함될 수 있다.
예시적인 실시예에 따라, 비트스트림은 모드 신호(MODE)에 기초하여 출력 여부가 결정될 수 있다. 예를 들어, 포화 모드를 지시하는 모드 신호(MODE)에 따라 인코더(210)는 포화 플래그, 압축 결과, 및 포화 모드를 나타내는 압축 정보를 포함하는 비트스트림을 출력할 수 있다. 예를 들어, 포화 모드가 아닌 다른 압축 모드를 지시하는 모드 신호(MODE)에 따라, 인코더는 상이한 구조로서 비트스트림을 출력할 수 있다.
예시적인 실시예에 따라, 인코더(210)는 2개 이상의 포화 픽셀을 검출할 수 있다. 포화 픽셀이 2개 이상인 경우, 비트스트림은 모드 신호(MODE)에 무관하게 항상 포화 모드로서 비트스트림을 출력할 수 있다.
도 5a 및 도 5b는 본 개시의 예시적인 실시예에 따른 픽셀의 구조를 나타내는 개념도이다. 도 1이 함께 참조된다.
도 5a를 참조하면, 이미지 센서(도 1, 100)에서 생성된 이미지 데이터(IDTA)는 객체에 대한 픽셀 정보가 베이어 패턴으로 배열된 것에 상응할 수 있다. 베이어 패턴의 이미지 데이터를 베이어 이미지로 칭할 수 있다.
이미지 데이터(IDTA)는 베이어 픽셀(111)들을 포함할 수 있다. 베이어 픽셀(111)은 레드, 그린, 및 블루의 컬러 정보를 모두 포함하는 픽셀들의 집합일 수 있다. 베이어 픽셀(111)은 베이어 패턴으로 배열된 픽셀들의 집합일 수 있다. 베이어 픽셀(111)은 객체의 일부에 대한 컬러 정보를 디스플레이하기 위한 기본 단위일 수 있다.
베이어 픽셀(111)은 픽셀 그룹(113)을 포함할 수 있다. 예시적인 실시예에서, 베이어 픽셀(111)은 한 개의 레드 픽셀 그룹, 두 개의 그린 픽셀 그룹, 한 개의 블루 픽셀 그룹을 포함할 수 있다. 베이어 픽셀(111)은 센싱한 객체의 일부에 대한 컬러 정보를 포함하는 것일 수 있으며, 픽셀 어레이(도 1, 110)의 일부와 대응될 수 있다.
픽셀 그룹(113)은 복수의 서브 픽셀(115)들을 포함할 수 있다. 하나의 픽셀 그룹(113)에 포함된 복수의 서브 픽셀(115)들은 동일한 컬러 필터를 통과하여 생성되기 ??문에, 동일한 컬러 정보를 가질 수 있다.
복수의 서브 픽셀(115)들은 매트릭스 형태로 배열될 수 있다. 도 3에서는 서브 픽셀(115)들의 배열이 2
Figure pat00001
2 매트릭스인 것으로 예시되었지만, 이에 국한되지 않고, 복수의 서브 픽셀(115)들은 3
Figure pat00002
3 행렬 등 M
Figure pat00003
N(M, N은 자연수)의 형태로 배열될 수 있다. 예시적인 실시예에서, 그린 픽셀 그룹은 4 개의 그린 서브 픽셀들(Gr1, Gr2, Gr3, Gr4)을 포함할 수 있다. 마찬가지로, 예시적인 실시예에 따르면 블루 픽셀 그룹은 4개의 블루 서브 픽셀들(B1, B2, B3, B4)을 포함할 수 있고, 레드 픽셀 그룹은 4개의 레드 서브 픽셀들(R1, R2, R3, R4)을 포함할 수 있으며, 픽셀 그룹(113)이 베이어 패턴을 따름에 따라 2 개의 그린 픽셀을 포함할 수 있으므로 다른 그린 픽셀은 4개의 다른 그린 서브 픽셀들(Gb1, Gb2, Gb3, Gb4)을 포함할 수 있다.
하나의 베이어 픽셀(111)에 포함된 두 개의 그린 픽셀 각각은 컬러 정보가 동일하나, 물리적으로는 서로 다른 특성을 처리하도록 배열됨에 따라 실질적으로 구분될 수 있다. 예시적인 실시예에서, 베이어 픽셀(111)의 첫 번째 및 두 번째 행의 그린 픽셀(Gr1~Gr4)은 레드 픽셀의 특성과 관련될 수 있고, 세 번째 및 네 번째 행의 그린 픽셀(Gb1~Gb4)은 블루 픽셀의 특성과 관련될 수 있으나, 이에 제한되지는 않는다.
복수의 서브 픽셀(115)들이 동일한 컬러에 대한 서브 픽셀 신호들을 생성함에 따라, 전자 장치(도 1, 10)는 서브 픽셀 신호들을 합산함으로써 낮은 조도에서도 광 센싱의 결과인 전기 신호를 충분히 생성할 수 있다.
도 5b를 참조하면, 베이어 픽셀(111)의 첫 번째 및 두 번째 행의 그린 픽셀(Gr1~Gr4)은 기준 픽셀(RP)일 수 있고, 베이어 픽셀(111)의 세 번째 및 네 번째 행의 그린 픽셀(Gb1~Gb4)은 압축 대상인 대상 픽셀(TP)일 수 있다.
예시적인 실시예에서, 기준 픽셀(RP)의 위치는 미리 결정될 수 있다. 인코더(도 1, 210)에 미리 설정된 기준 픽셀(RP)의 위치는 및 디코더(도 1, 310)에 미리 설정된 기준 픽셀(RP)의 위치와 동일할 수 있다. 디코더(310)는 기준 픽셀(RP)의 위치에 해당하는 데이터를 참조함으로써 대상 픽셀(TP)을 복원할 수 있다.
기준 픽셀(RP)은 대상 픽셀(TP)보다 먼저 압축될 수 있고, 기준 픽셀(RP)의 위치는 대상 픽셀(TP)보다 논리적, 시간적으로 앞설 수 있다. 예를 들어, 기준 픽셀(RP)은 대상 픽셀(TP)보다 좌측에 위치할 수 있다. 예를 들어, 기준 픽셀은 대상 픽셀보다 먼저 압축된 후 복원된 픽셀 값에 대응될 수 있다.예를 들어, 기준 픽셀은 대상 픽셀보다 앞선 행에 위치할 수 있다. 그러나, 이는 행마다, 및 좌측마다 순차적으로 압축하는 경우에 대한 것이고, 압축하는 순서 및 방향에 따라 변경될 수 있다.
도 5b에서는 기준 픽셀(RP)로서 복수의 픽셀들 중 어느 하나의 픽셀(예를 들어, 픽셀 그룹(113))이 선택되는 것을 가정하고 있으나, 이에 제한되지는 않는다. 예를 들어, 기준 픽셀(RP)은 픽셀 그룹을 구성하는 서브 픽셀들의 픽셀 평균 값인 가상의 픽셀일 수 있다. 예를 들어, 기준 픽셀(RP)은 픽셀 그룹을 구성하는 서브 픽셀들 각각의 픽셀 값들을 오름차순(또는 내림차순)으로 정렬하고, 그 중 중간 값인 픽셀 중위 값을 가지는 가상의 픽셀일 수도 있다.
본 개시의 예시적인 실시예에 따르면, 대상 픽셀(TP)은 포화 픽셀(SP)을 포함할 수 있다. 포화 픽셀(SP)은 서브 픽셀들 각각이 가질 수 있는 데이터의 크기인 동적 범위 중 임계치를 넘는 픽셀 값을 가지는 픽셀이다. 예를 들어, 대상 픽셀(TP) 중 서브 픽셀(Gb2) 및 서브 픽셀(Gb3)이 임계치를 넘는 픽셀 값을 가질 수 있다.
본 개시의 예시적인 실시예에 따르면, 서브 픽셀(Gb2), 및 서브 픽셀(Gb3)의 픽셀 값들 각각과 기준 픽셀(RP)의 픽셀 값이 비교됨으로써, 픽셀 값은 압축될 수 있다. 예를 들어, 인코더(210)는, 서브 픽셀(Gb2)의 픽셀 값과 기준 픽셀(RP)의 픽셀 값의 차이 값을 산출할 수 있고, 서브 픽셀(Gb3)의 픽셀 값과 기준 픽셀(RP)의 픽셀 값의 차이 값을 산출할 수 있으며, 차이 값들만을 압축 결과로서 비트스트림의 형태로 출력할 수 있다.
도 6는 차분 펄스 코드 부호화 방법(DPCM)에 따른 비트스트림의 구조를 나타내는 개념도이다. 도 6는 도 4의 압축 방법에 따른 비트스트림일 수 있다. 도 6은 10비트로 데이터를 표현하는 픽셀 4개의 압축에 따른 비트스트림을 가정한다.
도 6를 도 1 및 도 4와 함께 참조하면, 비트스트림은 헤더 영역(HEADER), 기준 영역(REFERENCE), 및 나머지 영역(RESIDUAL)을 포함할 수 있다. 예시적 실시예에 따라, 4 비트가 헤더 정보로서 헤더 영역에 할당될 수 있다. 헤더 정보는 압축 방법(예를 들어, DPCM 방법, PCM 방법 등 압축된 알고리즘에 대한 정보)을 포함하는, 부호화된 비트 집합이다. 헤더 정보에 4 비트가 할당된 결과로서, 2^4(=16) 개의 압축 정보가 헤더 정보를 통해 전달될 수 있다. 예시적인 실시예에 따라, 디코더(310)는 헤더 정보를 통해 서브 픽셀들의 압축 방법을 참조하고, 동일한 압축 방법을 이용하여 비트스트림을 복호화(해독)할 수 있다.
예시적인 실시예에 따르면, 인코더(도 1, 210)는 미리 결정된 위치의 픽셀 그룹 또는 서브 픽셀을 기준 픽셀(RP)로 설정할 수 있다. 기준 픽셀(RP)은 픽셀 값 그 자체거나, 픽셀 그룹을 구성하는 서브 픽셀들의 픽셀 평균 값, 또는 픽셀 중위 값일 수 있다. 기준 픽셀(RP)은 데이터를 압축하기 위한 비교 기준일 수 있다.
예시적인 실시예에 따라, 4 비트가 기준 픽셀(RP)에 대해 할당될 수 있다. 기준 픽셀(RP)은 10 비트의 픽셀 값을 포함할 수 있는데 비해, 할당된 데이터 공간은 4 비트이기 때문에 데이터 공간이 부족할 수 있다. 따라서, 인코더(210)는 기준 픽셀(RP)의 데이터 중 일부를 제거할 수 있다. 예시적인 실시예에 따라, 인코더(210)는 기준 픽셀(RP)의 10 비트 중 하위 6 비트를 제거하고, 상위 4 비트만을 비트스트림의 참조 영역(REFERENCE)에 포함시킬 수 있다. 인코더(210)에 요구되는 성능(압축률, 데이터 손실률, 전력 등)에 따라, 임의의 수의 하위 비트가 제거될 수 있다.
예시적인 실시예에 따라, 3 비트가 하나의 나머지 영역(RESIDUAL)에 대해 할당될 수 있다. 하나의 픽셀 그룹(도 5a, 113)은 4 개의 서브 픽셀(도 5a, 115)들을 포함할 수 있고, 하나의 픽셀 그룹(113)에 대한 데이터를 전송하는 비트스트림에는 총 4개의 서브 픽셀(115)들에 대한 공간이 총 12 비트(3bit_1, 3bit_2, 3bit_3, 3bit_4)만큼 할당될 수 있다. 나머지 영역에 포함되는 데이터는 기준 픽셀(RP)의 픽셀 값과 대상 픽셀(TP)의 픽셀 값의 차이 값일 수 있다.
결과적으로, 4 개의 서브 픽셀(115)들의 총 데이터 량인 40 비트는 16 비트로 압축될 수 있다. 압축 정보를 포함하는 헤더에 4 비트가 할당된 것이 더해진다면, 종전의 40 비트는 20 비트로 압축될 수 있고, 압축률은 50%를 달성할 수 있다. 설명의 편의를 위해 압축된 데이터의 크기가 20 비트인 것으로 가정되나, 이에 제한되지 않고 요구되는 성능(압축률, 데이터 손실률, 전력 등)에 따라 10 비트(압축률 75%), 30 비트(압축률 25%) 등 다양한 크기로 데이터가 압축될 수 있다.
도 7, 도 8 및 도 9는 본 개시의 예시적인 실시예에 따른 포화 픽셀(SP)의 발생 개수마다 상이하게 비트 할당되는 비트스트림의 구조를 나타내는 개념도이다. 도 7 내지 도 9는 10비트로 데이터를 표현하는 픽셀 4개의 압축에 따른 비트스트림을 가정한다. 4개의 픽셀(P1, P2, P3 및 P4) 각각은 서브 픽셀이거나, 픽셀 그룹의 픽셀 평균 값 또는 픽셀 중위 값일 수 있다.
도 7을 도 1 및 도 5b와 함께 참조하면, 인코더(도 1, 210)는 제1 픽셀(P1), 제2 픽셀(P2), 제3 픽셀(P3), 및 제4 픽셀(P4)을 인코딩할 수 있다. 인코더(210)의 압축 목표는 50%일 수 있고, 압축 결과인 비트스트림의 데이터양은 총 20 비트를 달성할 수 있다.
인코더(210)는 제4 픽셀(P4)을 포화 픽셀(도 1, SP)로 판정할 수 있다. 포화 픽셀(SP)은과도한 수광에 따라 임계치를 넘는 픽셀 값을 가지는 픽셀이다.
인코더(210)는 대상 픽셀(도 5b, TP)과 기준 픽셀(도 5b, RP)을 비교함으로써 이미지 데이터(도 1, IDTA)를 압축할 수 있다. 본 개시의 예시적인 실시예에 따르면, 인코더(210)는 픽셀 그룹 중 포화 픽셀(P4)을 제외한 비포화 픽셀(P1, P2, P3) 각각을 기준 픽셀(RP)과 비교할 수 있다. 예를 들어, 인코더(210)는 비포화 픽셀(P1, P2, P3)의 픽셀 값과 기준 픽셀(RP)의 차이 값을 산출할 수 있다.
인코더(210)는 압축 방법을 4 비트만큼 할당된 헤더(HEADER)에 포함시킬 수 있다. 예를 들어, 헤더는 비트 0111로 표현될 수 있다.
인코더(210)는 포화 픽셀(P4)의 위치를 4 비트만큼 할당된 포화 플래그 영역(SATURATION FLAG)에 포함시킬 수 있다. 예를 들어, 포화 플래그는 제4 픽셀(P4)만이 포화 픽셀(SP)이므로 비트 0001로 표현될 수 있다.
인코더(210)는 압축 결과(예를 들어, 차이 값)을 4 비트만큼 할당된 나머지 공간(RESIDUAL)에 포함시킬 수 있다. 예를 들어, 제1 픽셀(P1)의 압축 결과는 4 비트의 나머지 공간(P1_1)에, 제2 픽셀(P2)의 압축 결과는 4 비트의 나머지 공간(P2_1)에, 제3 픽셀(P3)의 압축 결과는 4 비트의 나머지 공간(P3_1)에 각각 포함될 수 있다.
본 개시의 예시적인 실시예에 따르면, 인코더(210)는 포화 픽셀(P4)을 기준 픽셀(RP)과 비교하지 않음으로써 픽셀 그룹(113) 중 비포화 픽셀(P1, P2 및 P3)의 압축 결과만을 나머지 영역에 포함시킬 수 있다. 따라서, 인코더(210)는, 도 6이 나머지 영역에 4 개의 픽셀에 대한 데이터를 포함하는 것에 비해, 비포화 픽셀(P1, P2, 또는 P3)이 표현할 수 있는 데이터양을 3 비트에서 4 비트로 증가시킬 수 있다(동적 범위 증가). 이에 따라, 압축 과정에서 유발되는 데이터 손실로 인한 화질 열화는 최소화될 수 있다. 또한, 같은 압축률을 가지는 압축 방법에 비해, 고해상도의 영상을 획득할 수 있다.
도 8을 도 1 및 도 5b와 함께 참조하면, 인코더(210)는 제1 픽셀(P1), 제2 픽셀(P2), 제3 픽셀(P3), 및 제4 픽셀(P4)을 인코딩할 수 있다. 인코더(210)의 압축 목표는 50%일 수 있고, 압축 결과인 비트스트림의 데이터양은 총 20 비트를 달성할 수 있음은 도 7과 같다. 도 7과 중복되는 설명은 생략된다.
인코더(210)는 제3 픽셀(P3) 및 제4 픽셀(P4)을 포화 픽셀(SP)로 판정할 수 있다. 인코더(210)는 대상 픽셀(TP)과 기준 픽셀(RP)을 비교함으로써 이미지 데이터(IDTA)를 압축할 수 있다.
본 개시의 예시적인 실시예에 따르면, 인코더(210)는 픽셀 그룹 중 포화 픽셀들(P3 및 P4)을 제외한 비포화 픽셀들(P1 및 P2) 각각을 기준 픽셀(RP)과 비교할 수 있다. 예를 들어, 인코더(210)는 비포화 픽셀들(P1 및 P2)의 픽셀 값과 기준 픽셀(RP)의 차이 값을 산출할 수 있다.
인코더(210)는 포화 픽셀들(P3 및 P4)의 위치를 4 비트만큼 할당된 포화 플래그 영역(SATURATION FLAG)에 포함시킬 수 있다. 예를 들어, 포화 플래그는 제3 픽셀(P3) 및 제4 픽셀(P4)이 포화 픽셀(SP)이므로 비트 0011 로 표현될 수 있다.
인코더(210)는 압축 결과(예를 들어, 차이 값)을 6 비트만큼 할당된 나머지 공간(RESIDUAL)에 포함시킬 수 있다. 예를 들어, 제1 픽셀(P1)의 압축 결과는 6 비트의 나머지 공간(P1_2)에, 제2 픽셀(P2)의 압축 결과는 6 비트의 나머지 공간(P2_2)에 각각 포함될 수 있다.
본 개시의 예시적인 실시예에 따르면, 인코더(210)는 포화 픽셀들(P3 및 P4)을 기준 픽셀(RP)과 비교하지 않음으로써 픽셀 그룹(113) 중 비포화 픽셀들(P1 및 P2)의 압축 결과만을 나머지 영역에 포함시킬 수 있다. 따라서, 인코더(210)는, 도 7이 나머지 영역에 3 개의 픽셀에 대한 데이터를 포함하는 것에 비해, 비포화 픽셀들(P1 및 P2)이 표현할 수 있는 데이터양을 4 비트에서 6 비트로 증가시킬 수 있다(동적 범위 증가). 이에 따라, 압축 과정에서 유발되는 데이터 손실로 인한 화질 열화는 최소화될 수 있다. 또한, 같은 압축률을 가지는 압축 방법에 비해, 고해상도의 영상을 획득할 수 있다.
본 개시의 예시적인 실시예에 따르면, 포화 픽셀(SP)이 보다 많이 검출될수록, 압축률은 개선될 수 있고, 화질 열화는 더욱 최소화될 수 있다.
도 9를 도 1 및 도 5b와 함께 참조하면, 인코더(210)는 제1 픽셀(P1), 제2 픽셀(P2), 제3 픽셀(P3), 및 제4 픽셀(P4)을 인코딩할 수 있다. 인코더(210)의 압축 목표는 50%일 수 있고, 압축 결과인 비트스트림의 데이터양은 총 20 비트를 달성할 수 있음은 도 7과 같다. 도 7과 중복되는 설명은 생략된다.
인코더(210)는 제2 픽셀(P2), 제3 픽셀(P3) 및 제4 픽셀(P4)을 포화 픽셀(SP)로 판정할 수 있다. 인코더(210)는 대상 픽셀(TP)과 기준 픽셀(RP)을 비교함으로써 이미지 데이터(IDTA)를 압축할 수 있다.
본 개시의 예시적인 실시예에 따르면, 인코더(210)는 픽셀 그룹 중 포화 픽셀들(P2, P3 및 P4)을 제외한 비포화 픽셀(P1)을 기준 픽셀(RP)과 비교할 수 있다. 예를 들어, 인코더(210)는 비포화 픽셀(P1)의 픽셀 값과 기준 픽셀(RP)의 차이 값을 산출할 수 있다.
인코더(210)는 포화 픽셀들(P2, P3 및 P4)의 위치를 4 비트만큼 할당된 포화 플래그 영역(SATURATION FLAG)에 포함시킬 수 있다. 예를 들어, 포화 플래그는 제2 픽셀(P2), 제3 픽셀(P3) 및 제4 픽셀(P4)이 포화 픽셀(SP)이므로 비트 0111 로 표현될 수 있다.
인코더(210)는 압축 결과(예를 들어, 차이 값)을 12 비트만큼 할당된 나머지 공간(RESIDUAL)에 포함시킬 수 있다. 예를 들어, 제1 픽셀(P1)의 압축 결과는 12 비트의 공간 중 10 비트의 나머지 공간(P1_3)에 포함될 수 있다. 2 비트만큼 더 저장할 수 있는 데이터 영역은 압축에 이용되지 않는 더미 영역(DUMMY)다.
본 개시의 예시적인 실시예에 따르면, 인코더(210)는 포화 픽셀들(P2, P3 및 P4)을 기준 픽셀(RP)과 비교하지 않음으로써 픽셀 그룹(113) 중 비포화 픽셀(P1)의 압축 결과만을 나머지 영역에 포함시킬 수 있다. 따라서, 인코더(210)는, 도 8이 나머지 영역에 2 개의 픽셀에 대한 데이터를 포함하는 것에 비해, 비포화 픽셀(P1)이 표현할 수 있는 데이터양을 6 비트에서 10 비트로 증가시킬 수 있다(동적 범위 증가). 이에 따라, 압축 과정에서 데이터 손실은 유발되지 않는, 이른바 무손실 압축이 달성될 수 있다. 본 개시의 예시적인 실시예에 따르면, 포화 픽셀(SP)이 보다 많이 검출될수록, 압축률은 개선될 수 있고, 화질 열화는 더욱 최소화될 수 있다.
도 10은 본 개시의 예시적인 실시예에 따른 픽셀의 구조를 나타내는 개념도이다.
도 10을 참조하면, 이미지 데이터(도 1, IDTA)는 레드, 그린, 및 블루의 컬러 정보를 모두 포함하는 픽셀들의 집합인 베이어 픽셀(112)을 포함할 수 있다. 베이어 픽셀(111)은 객체의 일부에 대한 컬러 정보를 디스플레이하기 위한 기본 단위일 수 있다.
베이어 픽셀(112)은 픽셀 그룹(114)을 포함할 수 있다. 예시적인 실시예에서, 베이어 픽셀(112)은 한 개의 레드 픽셀 그룹, 두 개의 그린 픽셀 그룹, 한 개의 블루 픽셀 그룹을 포함할 수 있다. 베이어 픽셀(112)은 센싱한 객체의 일부에 대한 컬러 정보를 포함하는 것일 수 있으며, 픽셀 어레이(도 1, 110)의 일부와 대응될 수 있다.
픽셀 그룹(114)은 복수의 서브 픽셀(116)들을 포함할 수 있다. 하나의 픽셀 그룹(114)에 포함된 복수의 서브 픽셀(116)들은 동일한 컬러 필터를 통과하여 생성되기 ??문에, 동일한 컬러 정보를 가질 수 있다.
복수의 서브 픽셀(116)들은 매트릭스 형태로 배열될 수 있다. 도 5a에서와 달리, 도 10에서는 3
Figure pat00004
3 행렬로 배열됨이 예시되나, 이에 제한되지 않고 M
Figure pat00005
N(M, N은 자연수)의 형태로 배열될 수 있음이 이해되어야 한다.
예시적인 실시예에서, 그린 픽셀 그룹은 9개의 그린 서브 픽셀들(Gr1, Gr2, Gr3, Gr4, Gr5, Gr6, Gr7, Gr8 및 Gr9)을 포함할 수 있다. 마찬가지로, 예시적인 실시예에 따르면 블루 픽셀 그룹은 9개의 블루 서브 픽셀들(B1, B2, B3, B4, B5, B6, B7, B8 및 B9)을 포함할 수 있고, 레드 픽셀 그룹은 9개의 레드 서브 픽셀들(R1, R2, R3, R4, R5, R6, R7, R8 및 R9)을 포함할 수 있으며, 픽셀 그룹(113)이 베이어 패턴을 따름에 따라 2 개의 그린 픽셀을 포함할 수 있으므로 다른 그린 픽셀은 9개의 다른 그린 서브 픽셀들(Gb1, Gb2, Gb3, Gb4, Gb5, Gb6, Gb7, Gb8 및 Gb9)을 포함할 수 있다.
이하에서, 그린 서브 픽셀들(Gr1, Gr2, Gr3, Gr4, Gr5, Gr6, Gr7, Gr8 및 Gr9)을 포함하는 제1 그린 픽셀 그룹은 기준 픽셀(RP`)로 가정되고, 다른 그린 서브 픽셀들(Gb1, Gb2, Gb3, Gb4, Gb5, Gb6, Gb7, Gb8 및 Gb9)을 포함하는 제2 그린 픽셀 그룹은 대상 픽셀(TP`)로 가정된다.
도 11은 차분 펄스 코드 부호화 방법(DPCM)에 따른 비트스트림의 구조를 나타내는 개념도이다. 도 11은 도 10의 픽셀의 구조에 따른 비트스트림을 설명한다. 도 11은 10비트로 데이터를 표현하는 픽셀 9개의 압축에 따른 비트스트림을 가정한다. 본 개시에서는 설명의 편의를 위해 하나의 서브 픽셀에 담긴 데이터는 10 비트인 것으로 예시되었으나, 이에 제한되지 않고, 하나의 서브 픽셀은 8 비트, 11 비트, 또는 12 비트 등 다양한 비트의 데이터를 포함할 수 있다.
인코더(210)는 9개의 픽셀이 포함하는 90 비트의 데이터를 45 비트로 압축하기 위해 비트스트림의 데이터 공간을 할당할 수 있다. 90 비트의 데이터가 45 비트의 데이터로 압축된다면 압축률은 50%이다.
도 11을 도 1 및 도 10와 함께 참조하면, 비트스트림은 헤더 영역(HEADER), 기준 영역(REFERENCE), 및 나머지 영역(RESIDUAL)을 포함할 수 있다.
예시적 실시예에 따라, 4 비트가 헤더(HEADER)에 할당될 수 있다. 헤더 정보는 압축 방법(예를 들어, DPCM 방법, PCM 방법 등 압축된 알고리즘에 대한 정보)을 포함하는, 부호화된 비트 집합이며, 헤더 정보에 4 비트가 할당된 결과로서, 2^4(=16) 개의 압축 정보가 헤더 정보를 통해 전달될 수 있음은 전술한 바와 같다.
픽셀 그룹(114)을 구성하는 복수의 서브 픽셀들 중 어느 하나, 또는 복수의 서브 픽셀들의 픽셀 값들에 기초한 가상 픽셀이 기준 픽셀로 결정될 수 있다. 예를 들어, 인코더(210)는 평균값(Average) 또는 중위값(Median)을 가지는 서브 픽셀(116)을 기준 픽셀(RP)로 결정할 수 있거나, 복수의 서브 픽셀들 중 미리 결정된 어느 하나의 서브 픽셀(116)을 기준 픽셀(도 10, RP`)로 결정할 수 있다.
예시적인 실시예에 따라, 5 비트가 기준 픽셀(RP`)을 위해 기준 영역에 할당될 수 있다. 기준 픽셀(RP`)은 10 비트의 픽셀 값을 포함할 수 있는데 비해, 할당된 데이터 공간은 5 비트이므로 데이터 공간이 부족할 수 있다. 이를 해결하기 위해, 인코더(210)는 기준 픽셀(RP)의 데이터 중 일부를 제거할 수 있다. 예시적인 실시예에 따라, 인코더(210)는 기준 픽셀(RP`)의 10 비트 중 하위 5 비트를 제거하고, 상위 5 비트만을 비트스트림에 담을 수 있다. 제거되는 서브 픽셀의 데이터는 이에 제한되지 않음은 전술한 바와 같다.
예시적인 실시예에 따라, 픽셀 그룹(114) 중 압축 대상인 대상 픽셀(도 10, TP`)의 압축 결과가 나머지 영역(RESIDUAL)에 포함될 수 있다. 대상 픽셀(TP`)은 9 개의 서브 픽셀들(Gb1, Gb2, Gb3, Gb4, Gb5, Gb6, Gb7, Gb8 및 Gb9)을 포함할 수 있다. 비트스트림에는 45 비트를 포함할 수 있는데, 헤더에 4비트, 기준 픽셀(RP`)에 5비트가 각각 할당됨으로써, 나머지 영역에는 36비트가 할당될 수 있다.
예시적인 실시예에 따르면, 대상 픽셀(TP`)은 9 개의 서브 픽셀들(Gb1, Gb2, Gb3, Gb4, Gb5, Gb6, Gb7, Gb8 및 Gb9)을 포함하므로, 서브 픽셀들 각각에는 4 비트(4bit_1, 4bit_2, ??, 4bit_9)가 각각 할당될 수 있다. 예를 들어, 제1 서브 픽셀(Gb1)의 압축 결과는 제1 나머지 영역(RESIDUAL1)에, 제2 서브 픽셀(Gb2)의 압축 결과는 제2 나머지 영역(RESIDUAL2)에, 제9 서브 픽셀(Gb9)의 압축 결과는 제9 나머지 영역(RESIDUAL9)에 각각 포함될 수 있다.
결과적으로, 9개의 서브 픽셀(116)들의 총 데이터 량인 90 비트는 41 비트로 압축될 수 있다. 압축 정보를 포함하는 헤더에 4 비트가 할당된 것이 더해진다면, 종전의 90 비트는 45 비트로 압축될 수 있고, 압축률은 50%를 달성할 수 있다. 설명의 편의를 위해 압축된 데이터의 크기가 45 비트인 것으로 가정되나, 이에 제한되지 않고 요구되는 성능(압축률, 데이터 손실률, 전력 등)에 따라 다양한 크기로 데이터가 압축될 수 있다.
도 12는 본 개시의 예시적인 실시예에 따른 포화 픽셀의 발생에 따라 생성되는 비트스트림의 구조를 나타내는 개념도이다.
도 12를 도 10, 도 11a 및 도 11b와 함께 참조하면, 인코더(도 1, 210)는 제1 픽셀(P1), 제2 픽셀(P2), 제3 픽셀(P3), 제4 픽셀(P4), 제5 픽셀(P5), 제6 픽셀(P6), 제7 픽셀(P7), 제8 픽셀(P8) 및 제9 픽셀(P9)을 인코딩할 수 있다. 인코더(210)의 압축 목표는 50%일 수 있고, 압축 결과인 비트스트림의 데이터양은 총 45 비트를 달성할 수 있다.
인코더(210)는 제2 픽셀(P2) 내지 제8 픽셀(P8)을 포화 픽셀(도 1, SP)로 판정할 수 있다. 포화 픽셀(SP)은과도한 수광에 따라 임계치를 넘는 픽셀 값을 가지는 픽셀이다.
인코더(210)는 대상 픽셀(도 10, TP`)과 기준 픽셀(도 10, RP`)을 비교함으로써 이미지 데이터(도 1, IDTA)를 압축할 수 있다. 본 개시의 예시적인 실시예에 따르면, 인코더(210)는 픽셀 그룹 중 포화 픽셀들(P2~P8)을 제외한 비포화 픽셀들(P1 및 P9) 각각을 기준 픽셀(RP)과 비교할 수 있다. 예를 들어, 인코더(210)는 비포화 픽셀들(P1 및 P9)의 픽셀 값과 기준 픽셀(RP`)의 차이 값을 산출할 수 있다.
인코더(210)는 압축 방법을 4 비트만큼 할당된 헤더(HEADER)에 포함시킬 수 있다. 예를 들어, 헤더는 비트 0111 로 표현될 수 있다.
인코더(210)는 포화 픽셀들(P2~P8)의 위치를 9 비트만큼 할당된 포화 플래그 영역(SATURATION FLAG)에 포함시킬 수 있다. 예를 들어, 포화 플래그는 비트 011111110 으로 표현될 수 있다.
인코더(210)는 압축 결과(예를 들어, 차이 값)을 32 비트만큼 할당된 나머지 공간(RESIDUAL)에 포함시킬 수 있다. 예를 들어, 제1 픽셀(P1)의 압축 결과는 10 비트의 나머지 공간(P4_1)에, 제9 픽셀(P9)의 압축 결과는 10 비트의 나머지 공간(P4_9)에 각각 포함될 수 있다. 12 비트만큼 더 저장할 수 있는 데이터 영역은 압축에 이용되지 않는 더미 영역(DUMMY)다.
본 개시의 예시적인 실시예에 따르면, 인코더(210)는 포화 픽셀들(P2~P8)을 기준 픽셀(RP`)과 비교하지 않음으로써 픽셀 그룹(114) 중 비포화 픽셀들(P1 및 P9)의 압축 결과만을 나머지 영역에 포함시킬 수 있다. 따라서, 인코더(210)는, 도 11이 나머지 영역에 9 개의 픽셀에 대한 데이터를 포함하는 것에 비해, 비포화 픽셀(P1 또는 P9)이 표현할 수 있는 데이터양을 4 비트에서 10 비트로 증가시킬 수 있다(동적 범위 증가). 이에 따라, 압축 과정에서 데이터 손실은 유발되지 않는, 이른바 무손실 압축이 달성될 수 있다. 본 개시의 예시적인 실시예에 따르면, 포화 픽셀(SP)이 보다 많이 검출될수록, 압축률은 개선될 수 있고, 화질 열화는 더욱 최소화될 수 있다.
도 13a 및 도 13b는 본 개시의 예시적 실시예에 따른 압축 정보를 설명하는 표이다. 도 13a 및 도 13b는 MIPI(Mobile Industry Processor Interface) 연합이 제시하는 표준에 따른 압축 모드(압축 방법)을 설명한다. 도 1이 함께 참조된다.
도 13a를 참조하면, 베이어 패턴의 이미지 데이터(도 1, IDTA)가 다양한 압축 모드에 따라 압축될 수 있다. 압축 모드로서, PD(Pixel-based Directional Differential) 모드, DGD(DiaGonal Direction-based Differential) 모드, eSHV(extended Slanted Horizontal or Vetical Direction-based Differential) 모드, OUT(OUTlier compensation) 모드, FNR(Fixed quantization and No-Refeence) 모드가 이용된다.
PD 모드는 베이어 패턴의 이미지 데이터(IDTA)에 대해 DPCM을 수행할 수 있다. PD 모드는 세부적인 구현 알고리즘에 따라, MODE0, MODE1, MODE2, MODE3, MODE12, MODE13으로 구분될 수 있다. 압축 방법을 나타내는 헤더에 4 비트가 할당될 수 있으므로, 16개의 압축 모드들은 각기 상이한 비트로서 헤더 정보를 표현할 수 있다. 예를 들어, MODE0은 비트 0000으로, MODE1은 비트 0001로, MODE2는 비트 0010으로, MODE3은 비트 0011로, MODE12는 비트 1100으로, MODE 13은 비트 1101로 각각 표현될 수 있다.
DGD 모드는 대각선 구조(diagonal)의 이미지 데이터(IDTA)에 대해 DPCM을 수행할 수 있다. DGD 모드는 세부적인 구현 알고리즘에 따라, MODE4(비트 0100), MODE5(비트 0101), MODE8(비트 1000), MODE9(비트 1001), MODE10(비트 1010), MODE11(비트 1011)으로 구분될 수 있다.
이와 유사하게, eSHV 모드는 MODE14(비트 1110) 및 MODE15(1111)를 포함할 수 있고, OUT 모드는 MODE7(비트 0111)을 포함할 수 있으며, FNR 모드는 MODE6(비트 01110)을 포함할 수 있다. 본 개시의 예시적인 실시예에 따르면, MODE7은 배드 픽셀을 처리하는 BP 모드를 포함하는 OUT 모드, 또는 포화 모드를 지칭할 수 있으나, 동작 환경에 따라 두 개의 모드(포화 모드, 또는 OUT 모드) 중 어느 하나가 선택될 수 있다.
예시적인 실시예에서, 모드 선택기(도 1, 230)는 PD 모드, DGD 모드, HL 모드, SAT 모드, FNR 모드를 순차적으로 평가할 수 있고, 압축률, 손실 정보 등 압축 평가 지표에 따라 최적의 모드를 선택할 수 있다. 그러나, 본 개시의 기술적 사상은 제시된 모드 평가 순서에 제한되지는 않는다.
도 13b를 참조하면, 베이어 패턴(도 5a, 111) 중 하나의 픽셀 그룹(도 5a, 113)이 복수의 서브 픽셀들(예를 들어, 4개의 서로 인접한 2x2 행렬 형태의 서브 픽셀들)을 포함하는 이미지 데이터(IDTA)가 다양한 압축 모드에 따라 압축될 수 있다. 압축 모드로서, AD(Average-based Directional Differential) 모드, eHVD(extended Horizontal or Vertial Direction-based Differential) 모드, OD(Oblique Direction-based Differential) 모드, eMPD(extended Multi-Pixel-based Differential) 모드, eHVA(extended Horizontal or Vertical Average-based Differential) 모드, eOUT(extended OUTlier compensation) 모드, 및 FNR 모드가 이용된다.
AD 모드는 베이어 패턴을 구성하는 하나의 픽셀 그룹(113)이 복수의 서브 픽셀들을 포함하는 이미지 데이터(IDTA)에 대해 DPCM을 수행할 수 있다. AD 모드는 세부적인 구현 알고리즘에 따라, MODE0, MODE1, MODE2, MODE3으로 구분될 수 있다. 압축 방법을 나타내는 헤더에 4 비트가 할당될 수 있으므로, 16개의 압축 모드들은 각기 상이한 비트로서 헤더 정보를 표현할 수 있다. 예를 들어, MODE0은 비트 0000으로, MODE1은 비트 0001로, MODE2는 비트 0010으로, MODE3은 비트 0011로 각각 표현될 수 있다.
OD 모드는 대각선 구조(diagonal)의 이미지 데이터(IDTA)에 대해 압축할 수 있다. OD 모드는 세부적인 구현 알고리즘에 따라, MODE4(비트 0100), MODE5(비트 0101)로 구분될 수 있다.
이와 유사하게, eMPD 모드는 MODE8(비트 1000), MODE9(비트 1001), MODE10(비트 1010) 및 MODE11(비트 1011)를 포함할 수 있고, eHVD 모드는 MODE12(비트 1100) 및 MODE 13(비트 1101)를 포함할 수 있으며, eHVA 모드는 MODE14(비트 1110)를 포함할 수 있고, (e)OUT 모드(eOUT 모드 또는 OUT 모드)는 MODE15(1111) 및 MODE7(0111)을 포함할 수 있고, FNR 모드는 MODE6(비트 01110)을 포함할 수 있다. 본 개시의 예시적인 실시예에 따르면, MODE7은 배드 픽셀을 처리하는 BP 모드를 포함하는 (e)OUT 모드, 또는 포화 모드를 지칭할 수 있으나, 동작 환경에 따라 두 개의 모드(포화 모드, 또는 (e)OUT 모드) 중 어느 하나가 선택될 수 있다.
예시적인 실시예에서, 모드 선택기(230)는 AD 모드, eHVD 모드, OD 모드, eMPD 모드, eHVA 모드, eOUT 모드, 및 FNR 모드를 순차적으로 평가할 수 있고, 압축률, 손실 정보 등 압축 평가 지표에 따라 최적의 모드를 선택할 수 있다. 그러나, 본 개시의 기술적 사상은 제시된 모드 평가 순서에 제한되지는 않는다.
도 14a 및 도 14b는 본 개시의 예시적 실시예에 따른 이미지 신호 처리기(20a 또는 20b)를 포함하는 전자 장치(1a 또는 1b)를 나타내는 블록도이다. 도 14a 및 도 14b에는 도 1에서 설명된 전자 장치(10)가 적용될 수 있다.
도 14a를 참조하면, 본 개시의 예시적 실시예에 따른 전자 장치(1a)는 이미지 센서(10a), 이미지 신호 처리기(20a), 디스플레이 장치(50a), 애플리케이션 프로세서(30a), 워킹 메모리(40a), 스토리지(60a), 유저 인터페이스(70a) 및 무선 송수신부(80a)를 포함할 수 있으며, 이미지 신호 처리기(20a)는 애플리케이션 프로세서(30a)와는 별개의 집적 회로로 구현될 수 있다. 도 1의 이미지 센서(100)가 도 15a의 이미지 센서(10a)로 동작할 수 있고, 도 2의 이미지 신호 처리기(200)가 도 15a의 이미지 신호 처리기(20a)로서 적용될 수 있다.
이미지 센서(10a)는 수신되는 광 신호를 기초로 이미지 데이터, 예컨대 원시 이미지 데이터를 생성하고 이진 데이터를 이미지 신호 처리기(20a)에 제공할 수 있다. 애플리케이션 프로세서(30a)는 전자 장치(1a)의 전반적인 동작을 제어하며 응용 프로그램, 운영 체제 등을 구동하는 시스템 온 칩(SoC)으로 제공될 수 있다. 애플리케이션 프로세서(30a)는 이미지 신호 처리기(20a)의 동작을 제어할 수 있으며, 이미지 신호 처리기(20a)에서 생성되는 변환된 이미지 데이터를 디스플레이 장치(50a)에 제공하거나 또는 스토리지(60a)내에 저장할 수 있다.
디스플레이 장치(50a)는 이미지를 출력할 수 있는 모든 장치를 포함할 수 있다. 예컨대, 디스플레이 장치(50a)는 컴퓨터, 휴대폰 및 기타 이미지 출력 단말을 포함할 수 있다. 디스플레이 장치(50a)는 출력 장치의 예시일 수 있다. 출력 장치의 다른 예들은 그래픽스들/디스플레이 장치, 컴퓨터 스크린, 알람 시스템, CAD/CAM(Computer Aided Design/Computer Aided Machining) 시스템, 비디오 게임 스테이션, 스마트폰 디스플레이 스크린 또는 임의의 다른 타입의 데이터 출력 장치를 포함한다.
워킹 메모리(40a)는 애플리케이션 프로세서(30a)가 처리 또는 실행하는 프로그램들 및/또는 데이터를 저장할 수 있다. 스토리지(60a)는 NAND 플래시, 저항성 메모리 등의 비휘발성 메모리 장치로 구현될 수 있으며, 예컨대 스토리지(60a)는 메모리 카드(MMC, eMMC, SD, micro SD) 등으로 제공될 수 있다. 스토리지(60a)는 이미지 신호 처리기(20a)의 이미지 처리 동작을 제어하는 실행 알고리즘에 대한 데이터 및/또는 프로그램을 저장할 수 있으며, 이미지 처리 동작이 수행될 때 데이터 및/또는 프로그램이 워킹 메모리(40a)로 로딩될 수 있다.
유저 인터페이스(70a)는 키보드, 커튼 키 패널, 터치 패널, 지문 센서, 마이크 등 사용자 입력을 수신할 수 있는 다양한 장치들로 구현될 수 있다. 유저 인터페이스(70a)는 사용자 입력을 수신하고, 수신된 사용자 입력에 대응하는 신호를 애플리케이션 프로세서(30a)에 제공할 수 있다. 무선 송수신부(80a)는 모뎀(81a), 트랜시버(82a), 및 안테나(83a)를 포함할 수 있다.
도 14b를 참조하면, 본 개시의 예시적 실시예에 따른 전자 장치(1b)는 이미지 센서(10b), 이미지 신호 처리기(20b), 디스플레이 장치(50b), 애플리케이션 프로세서(30b), 워킹 메모리(40b), 스토리지(60b), 유저 인터페이스(70b) 및 무선 송수신부(80b)를 포함할 수 있으며, 도 1의 이미지 센서(100)가 도 15b의 이미지 센서(10a)로 동작할 수 있고, 도 1의 이미지 신호 처리기(200)가 도 15b의 이미지 신호 처리기(20a)로서 적용될 수 있다.
애플리케이션 프로세서(30b)는 이미지 신호 처리기(ISP)(20b)를 포함할 수 있다. 이미지 신호 처리기(20b)는 별도의 하드웨어 또는 하드웨어와 소프트웨어의 결합으로 구성되지 않고, 애플리케이션 프로세서(30b)의 하부 구성으로서 존재할 수도 있다. 도 14b의 다른 구성은 도 14a와 유사하므로 중복되는 설명은 생략하기로 한다.
도 15은 본 개시의 예시적 실시예에 따른 전자 장치(20)의 일부를 도시하는 도면이다. 도 16은 도 15의 카메라 모듈(1100b)의 상세 블록도이다.
도 15는 설명의 편의를 위해 도 14a에 도시된 전자 장치(1a) 또는 도 14b에 도시된 전자 장치(1b)의 일부가 전자 장치(20)로서 도시되었으나, 도 14a 또는 도 14b와 비교하여 도 15에 생략된 구성들은 전자 장치(20)에 포함될 수 있고, 포함된 일체로서 본 개시의 기술적 사상을 달성할 수 있다.
도 15를 참조하면, 전자 장치(20)는 멀티 카메라 모듈(1100), AP(4000) 및 메모리(1400)를 포함할 수 있다. 메모리(1400)는 도 14a에 도시된 워킹 메모리(40a) 또는 도 14b에 도시된 메모리(40b)와 동일한 기능을 수행할 수 있는 바, 중복되는 설명은 생략한다.
전자 장치(20)는 CMOS 이미지 센서를 이용하여 피사체에 대한 이미지를 캡쳐 및/또는 저장할 수 있고, 모바일 폰, 태블릿 컴퓨터, 또는 휴대용 전자 장치로 구현될 수 있다. 휴대용 전자 장치는, 랩탑 컴퓨터, 이동 전화기, 스마트폰, 태블릿 PC, 웨어러블 기기 등을 포함할 수 있다. 이러한 전자 장치(20)는 하나 이상의 카메라 모듈 및 하나 이상의 카메라 모듈로부터 생성된 이미지 데이터를 처리하는 AP를 포함할 수 있다.
멀티 카메라 모듈(1100)은 제1 카메라 모듈(1100a), 제2 카메라 모듈(1100b), 제3 카메라 모듈(1100c)을 포함할 수 있다. 멀티 카메라 모듈(1100)은 도 2의 카메라 모듈(50)과 동일한 기능을 수행할 수 있다. 설명의 편의를 위해 3 개의 카메라 모듈(1100a 내지 1100c)이 도시되었으나, 이에 제한되지 않고 다양한 수의 카메라 모듈들이 멀티 카메라 모듈(1100)에 포함될 수 있다.
이하, 도 16을 참조하여, 카메라 모듈(1100b)의 상세 구성에 대해 보다 구체적으로 설명할 것이나, 이하의 설명은 실시예에 따라 다른 카메라 모듈들(1100a, 1100c)에 대해서도 동일하게 적용될 수 있다.
도 16을 참조하면, 제2 카메라 모듈(1100b)은 프리즘(1105), 광학 경로 폴딩 요소(Optical Path Folding Element, 이하, ˝OPFE˝)(1110), 액츄에이터(1130), 이미지 센싱 장치(1140), 인코더(1145) 및 저장부(1150)를 포함할 수 있다.
프리즘(1105)은 광 반사 물질의 반사면(1107)을 포함하여 외부로부터 입사되는 광(L)의 경로를 변형시킬 수 있다.
예시적 실시예에 따르면, 프리즘(1105)은 제1 방향(X)으로 입사되는 광(L)의 경로를 제1 방향(X)에 수직인 제2 방향(Y)으로 변경시킬 수 있다. 또한, 프리즘(1105)은 광 반사 물질의 반사면(1107)을 중심축(1106)을 중심으로 A방향으로 회전시키거나, 중심축(1106)을 B방향으로 회전시켜 제1 방향(X)으로 입사되는 광(L)의 경로를 수직인 제2 방향(Y)으로 변경시킬 수 있다. 이때, OPFE(1110)도 제1 방향(X)및 제2 방향(Y)과 수직인 제3 방향(Z)로 이동할 수 있다.
예시적 실시예에서, 도시된 것과 같이, 프리즘(1105)의 A방향 최대 회전 각도는 플러스(+) A방향으로는 15도(degree) 이하이고, 마이너스(-) A방향으로는 15도보다 클 수 있으나, 실시예들이 이에 제한되는 것은 아니다.
예시적 실시예에서, 프리즘(1105)은 플러스(+) 또는 마이너스(-) B방향으로 20도 내외, 또는 10도에서 20도, 또는 15도에서 20도 사이로 움직일 수 있고, 여기서, 움직이는 각도는 플러스(+) 또는 마이너스(-) B방향으로 동일한 각도로 움직이거나, 1도 내외의 범위로 거의 유사한 각도까지 움직일 수 있다.
예시적 실시예에서, 프리즘(1105)은 광 반사 물질의 반사면(1107)을 중심축(1106)의 연장 방향과 평행한 제3 방향(예를 들어, Z방향)으로 이동할 수 있다.
OPFE(1110)는 예를 들어 m(여기서, m은 자연수)개의 그룹으로 이루어진 광학 렌즈를 포함할 수 있다. m개의 렌즈는 제2 방향(Y)으로 이동하여 카메라 모듈(1100b)의 광학 줌 배율(optical zoom ratio)을 변경할 수 있다. 예를 들어, 카메라 모듈(1100b)의 기본 광학 줌 배율을 Z라고할 때, OPFE(1110)에 포함된 m개의 광학 렌즈를 이동시킬 경우, 카메라 모듈(1100b)의 광학 줌 배율은 3Z 또는 5Z, 또는 그 이상의 광학 줌 배율로 변경될 수 있다.
액츄에이터(1130)는 OPFE(1110) 또는 광학 렌즈(이하, 광학 렌즈로 지칭)를 특정 위치로 이동시킬 수 있다. 예를 들어 액츄에이터(1130)는 정확한 센싱을 위해 이미지 센서(1142)가 광학 렌즈의 초점 거리(focal length)에 위치하도록 광학 렌즈의 위치를 조정할 수 있다.
이미지 센싱 장치(1140)는 이미지 센서(1142), 제어 로직(1144), 인코더(1145) 및 메모리(1146)를 포함할 수 있다. 이미지 센서(1142)는 광학 렌즈를 통해 제공되는 광(L)을 이용하여 센싱 대상의 이미지를 센싱할 수 있다. 도 17의 이미지 센서(1142)는 도 2의 이미지 센서(100)와 기능적으로 유사할 수 있으므로, 중복되는 설명은 생략한다. 제어 로직(1144)은 제2 카메라 모듈(1100b)의 전반적인 동작을 제어할 수 있다. 예를 들어, 제어 로직(1144)은 제어 신호 라인(CSLb)을 통해 제공된 제어 신호에 따라 제2 카메라 모듈(1100b)의 동작을 제어할 수 있다.
인코더(1145)는 센싱된 이미지 데이터를 인코딩할 수 있다. 인코더(1145)는 도 1 내지 도 14를 통해 설명된 인코더(210)와 동일한 기능을 수행할 수 있는 바, 중복되는 설명은 생략된다. 도 16에 도시된 인코더(1145)는 도 1에 도시된 인코더(210)와 달리, 이미지 신호 처리기(도 1의 200)에 포함되지 않고, 카메라 모듈(예를 들어, 1100b)에 포함될 수 있다. 설명의 편의를 위해 인코더(1145)는 다른 기능부와 다른 개별적 기능부로 도시되었으나, 이에 제한되지 않고, 제어 로직(1144)에 의해 실행됨으로써 이미지 데이터를 압축하고 부호화할 수 있다.
메모리(1146)는 캘리브레이션 데이터(1147)와 같은 제2 카메라 모듈(1100b)의 동작에 필요한 정보를 저장할 수 있다. 캘리브레이션 데이터(1147)는 제2 카메라 모듈(1100b)이 외부로부터 제공된 광(L)을 이용하여 이미지 데이터를 생성하는데 필요한 정보를 포함할 수 있다. 캘리브레이션 데이터(1147)는 예를 들어, 앞서 설명한 회전도(degree of rotation)에 관한 정보, 초점 거리(focal length)에 관한 정보, 광학 축(optical axis)에 관한 정보 등을 포함할 수 있다. 제2 카메라 모듈(1100b)이 광학 렌즈의 위치에 따라 초점 거리가 변하는 멀티 스테이트(multi state) 카메라 형태로 구현될 경우, 캘리브레이션 데이터(1147)는 광학 렌즈의 각 위치별(또는 스테이트별) 초점 거리 값과 오토 포커싱(auto focusing)과 관련된 정보를 포함할 수 있다.
저장부(1150)는 이미지 센서(1142)를 통해 센싱된 이미지 데이터를 저장할 수 있다. 저장부(1150)는 이미지 센싱 장치(1140)의 외부에 배치될 수 있으며, 이미지 센싱 장치(1140)를 구성하는 센서 칩과 스택된(stacked) 형태로 구현될 수 있다. 예시적 실시예에서, 저장부(1150)는 EEPROM(Electrically Erasable Programmable Read-Only Memory)으로 구현될 수 있으나 실시예들이 이에 제한되는 것은 아니다.
도 15와 도 16을 함께 참조하면, 예시적 실시예에서, 복수의 카메라 모듈(1100a, 1100b, 1100c) 중 하나의 카메라 모듈(예를 들어, 제1 카메라 모듈(1100a))은 하나의 컬러 픽셀에 4개의 동일한 컬러 정보를 공유하는 서로 인접한 서브 픽셀들(즉, TETRA 셀)을 포함할 수 있고, 다른 하나의 카메라 모듈(예를 들어, 제2 카메라 모듈(1100b))은 하나의 컬러 픽셀에 9개의 동일한 컬러 정보를 공유하는 서로 인접한 서브 픽셀들(즉, NONA 셀)을 포함할 수 있으나, 실시예들이 이에 제한되는 것은 아니다.
예시적 실시예에서, 복수의 카메라 모듈(1100a, 1100b, 1100c) 각각은 액츄에이터(1130)를 포함할 수 있다. 이에 따라, 복수의 카메라 모듈(1100a, 1100b, 1100c) 각각은 그 내부에 포함된 액츄에이터(1130)의 동작에 따른 서로 동일하거나 서로 다른 캘리브레이션 데이터(1147)를 포함할 수 있다.
예시적 실시예에서, 복수의 카메라 모듈(1100a, 1100b, 1100c) 중 하나의 카메라 모듈(예를 들어, 제2 카메라 모듈(1100b))은 앞서 설명한 프리즘(1105)과 OPFE(1110)를 포함하는 폴디드 렌즈(folded lens) 형태의 카메라 모듈이고, 나머지 카메라 모듈들(예를 들어, 1100a, 1100b)은 프리즘(1105)과 OPFE(1110)가 포함되지 않은 버티칼(vertical) 형태의 카메라 모듈일 수 있으나, 실시예들이 이에 제한되는 것은 아니다.
예시적 실시예에서, 복수의 카메라 모듈(1100a, 1100b, 1100c) 중 하나의 카메라 모듈(예를 들어, 제3 카메라 모듈(1100c))은 예를 들어, IR(Infrared Ray)을 이용하여 깊이(depth) 정보를 추출하는 버티컬 형태의 깊이 카메라(depth camera)일 수 있다. 이 경우, AP(4000)는 이러한 깊이 카메라로부터 제공받은 이미지 데이터와 다른 카메라 모듈(예를 들어, 제1 카메라 모듈(1100a) 또는 제2 카메라 모듈(1100b))로부터 제공받은 이미지 데이터를 병합(merge)하여 3차원 깊이 이미지(3D depth image)를 생성할 수 있다.
예시적 실시예에서, 복수의 카메라 모듈(1100a, 1100b, 1100c) 중 적어도 두 개의 카메라 모듈(예를 들어, 제1 카메라 모듈(1100a) 또는 제2 카메라 모듈(1100b))은 서로 다른 관측 시야(Field of View, 시야각)를 가질 수 있다. 이 경우, 예를 들어, 복수의 카메라 모듈(1100a, 1100b, 1100c) 중 적어도 두 개의 카메라 모듈(예를 들어, 제1 카메라 모듈(1100a) 또는 제2 카메라 모듈(1100b))의 광학 렌즈가 서로 다를 수 있으나, 이에 제한되는 것은 아니다. 예를 들어, 복수의 카메라 모듈(1100a, 1100b, 1100c) 중 제1 카메라 모듈(1100a)은 제2 및 제3 카메라 모듈(1100b, 1100c)보다 관측 시야(FOV)가 작을 수 있다. 그러나 이에 제한되지 않고, 멀티 카메라 모듈(1100)은 본래 사용되던 카메라 모듈(1100a, 1100b, 1100c)보다 관측 시야(FOV)가 큰 카메라 모듈을 더 포함할 수도 있다.
또한, 몇몇 실시예에서, 복수의 카메라 모듈(1100a, 1100b, 1100c) 각각의 시야각은 서로 다를 수 있다. 이 경우, 복수의 카메라 모듈(1100a, 1100b, 1100c) 각각에 포함된 광학 렌즈 역시 서로 다를 수 있으나, 이에 제한되는 것은 아니다.
몇몇 실시예에서, 복수의 카메라 모듈(1100a, 1100b, 1100c) 각각은 서로 물리적으로 분리되어 배치될 수 있다. 즉, 하나의 이미지 센서(1142)의 센싱 영역을 복수의 카메라 모듈(1100a, 1100b, 1100c)이 분할하여 사용하는 것이 아니라, 복수의 카메라 모듈(1100a, 1100b, 1100c) 각각의 내부에 독립적인 이미지 센서(1142)가 배치될 수 있다.
AP(1300)는 복수의 서브 프로세서들(1311, 1312, 1313), 디코더(1320), 카메라 모듈 컨트롤러(1330), 메모리 컨트롤러(1340) 및 내부 메모리(1350)를 포함할 수 있다.
AP(1300)는 복수의 카메라 모듈들(1100a, 1100b, 1100c)과 분리되어 구현될 수 있다. 예를 들어, AP(1300)와 복수의 카메라 모듈(1100a, 1100b, 1100c)은 별도의 반도체 칩으로 서로 분리되어 구현될 수 있다.
각각의 카메라 모듈(1100a, 1100b, 1100c)로부터 생성된 이미지 데이터는 서로 분리된 이미지 신호 라인(ISLa, ISLb, ISLc)를 통해 대응되는 서브 프로세서들(1311, 1312, 1313)에 제공될 수 있다. 예를 들어, 제1 카메라 모듈(1100a)로부터 생성된 이미지 데이터는 제1 이미지 신호 라인(ISLa)을 통해 제1 서브 프로세서(1311)에 제공될 수 있고, 제2 카메라 모듈(1100b)로부터 생성된 이미지 데이터는 제2 이미지 신호 라인(ISLb)을 통해 제2 서브 프로세서(1312)에 제공되고, 제3 카메라 모듈(1100c)로부터 생성된 이미지 데이터는 제3 이미지 신호 라인(ISLc)을 통해 제3 서브 프로세서(1313)에 제공될 수 있다. 이러한 이미지 데이터 전송은 예를 들어, MIPI(Mobile Industry Processor Interface)에 기반한 카메라 직렬 인터페이스(CSI; Camera Serial Interface)를 이용하여 수행될 수 있으나, 실시예들이 이에 제한되는 것은 아니다.
예시적 실시예에서, 하나의 서브 프로세서가 복수의의 카메라 모듈에 대응되도록 배치될 수도 있다. 예를 들어, 제1 서브 프로세서(1311) 및 제3 서브 프로세서(1313)가 도시된 것처럼 서로 분리되어 구현되는 것이 아니라 하나의 서브 프로세서로 통합되어 구현되고, 카메라 모듈(1100a)과 카메라 모듈(1100c)로부터 제공된 이미지 데이터는 선택 소자(예를 들어, 멀티플렉서) 등을 통해 선택된 후, 통합된 서브 이미지 프로세서에 제공될 수 있다.
디코더(1320)는 서브 프로세서들(1311, 1312, 1313)에 제공된 비트스트림을 디코딩할 수 있다. 도 16의 디코더(1320)는 도 1의 디코더(310)와 유사한 기능을 수행할 수 있으므로, 중복되는 설명은 생략한다. 설명의 편의를 위해 디코더(1320)와 서브 프로세서들(1311, 1312, 1313)은 서로 별개의 기능부인 것으로 도시되었으나, 이에 제한되지 않고, 서브 프로세서들(1311, 1312, 1313) 내부에 디코더(1320)가 포함되는 경우도 존재할 수 있다. 즉, 디코더(1320)는 서브 프로세서들(1311, 1312, 1313) 내부에서 비트스트림을 디코딩할 수도 있다.
카메라 모듈 컨트롤러(1330)는 각각의 카메라 모듈(1100a, 1100b, 1100c)에 제어 신호를 제공할 수 있다. 카메라 모듈 컨트롤러(1216)로부터 생성된 제어 신호는 서로 분리된 제어 신호 라인(CSLa, CSLb, CSLc)를 통해 대응되는 카메라 모듈(1100a, 1100b, 1100c)에 제공될 수 있다.
복수의 카메라 모듈(1100a, 1100b, 1100c) 중 어느 하나는 줌 신호를 포함하는 이미지 생성 정보 또는 모드 신호에 따라 마스터(master) 카메라(예를 들어, 카메라 모듈(1100b))로 지정되고, 나머지 카메라 모듈들(예를 들어, 1100a, 1100c)은 슬레이브(slave) 카메라로 지정될 수 있다. 이러한 정보는 제어 신호에 포함되어, 서로 분리된 제어 신호 라인(CSLa, CSLb, CSLc)를 통해 대응되는 카메라 모듈(1100a, 1100b, 1100c)에 제공될 수 있다.
카메라 모듈 컨트롤러(1330)의 제어 하에, 마스터 및 슬레이브로서 동작하는 카메라 모듈들(1100a, 1100b, 1100c)이 변경될 수 있다. 예를 들어, 제1 카메라 모듈(1100a)의 시야각이 제2 카메라 모듈(1100b)의 시야각보다 넓고, 줌 팩터가 낮은 줌 배율을 나타낼 경우, 제2 카메라 모듈(1100b)이 마스터로서 동작할 수 있고, 제1 카메라 모듈(1100a)이 슬레이브로서 동작할 수 있다. 반대로, 줌 팩터가 높은 줌 배율을 나타낼 경우, 제1 카메라 모듈(1100a)이 마스터로서 동작하고, 제2 카메라 모듈(1100b)이 슬레이브로서 동작할 수 있다.
예시적 실시예에서, 카메라 모듈 컨트롤러(1330)로부터 각각의 카메라 모듈(1100a, 1100b, 1100c)에 제공되는 제어 신호는 싱크 인에이블 신호(sync enable) 신호를 포함할 수 있다. 예를 들어, 제2 카메라 모듈(1100b)이 마스터 카메라이고, 제1 및 제3 카메라 모듈들(1100a, 1100c)이 슬레이브 카메라인 경우, 카메라 모듈 컨트롤러(1330)는 제2 카메라 모듈(1100b)에 싱크 인에이블 신호를 전송할 수 있다. 이러한 싱크 인에이블 신호를 제공받은 제2 카메라 모듈(1100b)은 제공받은 싱크 인에이블 신호를 기초로 싱크 신호(sync signal)를 생성하고, 생성된 싱크 신호를 싱크 신호 라인(SSL)을 통해 제1 및 제3 카메라 모듈들(1100a, 1100c)에 제공할 수 있다. 제1 카메라 모듈(1100b)과 제2 및 제3 카메라 모듈들(1100a, 1100c)은 이러한 싱크 신호에 동기화되어 이미지 데이터를 AP(1300)에 전송할 수 있다.
AP(1300)는 인코딩된 이미지 데이터를 내부 메모리(1350) 또는 AP(1300) 외부의 메모리(1400)에 저장하고, 이후, 내부 메모리(1350) 또는 메모리(1400)로부터 인코딩된 이미지 신호를 독출하여 디코딩하고, 디코딩된 이미지 신호에 기초하여 생성되는 이미지 데이터를 디스플레이할 수 있다. 메모리 컨트롤러(1340)는 이미지 데이터가 내부 메모리(1350)와 메모리(1400) 사이에서 저장되거나 로딩될 수 있도록 내부 메모리(1350) 및 메모리(1400)를 전반적으로 제어할 수 있다.
이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (10)

  1. 이미지 센서에 의해 생성된 이미지 데이터를 압축하는 이미지 압축 방법에 있어서,
    수신된 상기 이미지 데이터에 포함되고, 서로 인접하며 동일한 컬러를 가지는 복수의 픽셀들인 픽셀 그룹 중 픽셀 값이 임계치를 넘는 포화 픽셀을 검출하는 단계;
    상기 포화 픽셀의 위치를 나타내는 포화 플래그를 생성하는 단계;
    상기 픽셀 그룹 중 상기 포화 픽셀을 제외한 적어도 하나의 비포화 픽셀과 기준 픽셀을 비교함으로써 상기 이미지 데이터를 압축하는 단계; 및
    상기 포화 플래그, 압축 결과, 및 압축 방법을 포함하는 비트스트림을 출력하는 단계를 포함하는 이미지 압축 방법.
  2. 제1항에 있어서,
    상기 포화 플래그를 생성하는 단계는,
    상기 포화 픽셀의 위치를 비트 1로 설정하는 단계; 및
    상기 적어도 하나의 비포화 픽셀의 위치를 비트 0으로 설정하는 단계를 포함하는 것을 특징으로 하는 이미지 압축 방법.
  3. 제1항에 있어서,
    상기 이미지 데이터를 압축하는 단계는,
    상기 적어도 하나의 비포화 픽셀의 비포화 픽셀 값과 상기 기준 픽셀의 기준 픽셀 값과의 차이 값을 산출하는 단계를 포함하는 것을 특징으로 하는 이미지 압축 방법.
  4. 제3항에 있어서,
    상기 기준 픽셀 값은
    서로 인접하며 동일한 컬러를 가지는 픽셀들의 평균 픽셀 값인 것을 특징으로 하는 이미지 압축 방법.
  5. 제1항에 있어서,
    상기 임계치는,
    상기 복수의 픽셀들 각각이 나타내는 정보량의 95% 이상인 것을 특징으로 하는 이미지 압축 방법.
  6. 제1항에 있어서,
    상기 비트스트림을 출력하는 단계는,
    상기 포화 픽셀을 제외하고 상기 이미지 데이터를 압축하도록 지시하는 모드 신호에 기초하여 상기 포화 플래그 및 상기 압축 결과의 출력 여부를 결정하는 단계를 포함하는 것을 특징으로 하는 이미지 압축 방법.
  7. 이미지 센서에 의해 생성된 이미지 데이터를 처리하는 인코더에 있어서,
    서로 인접하며 동일한 컬러를 가지는 복수의 픽셀들인 픽셀 그룹에서 픽셀 값이 임계치를 넘은 포화 픽셀을 검출하고, 상기 포화 픽셀의 위치를 나타내는 포화 플래그를 생성하며, 상기 픽셀 그룹 중 상기 포화 픽셀을 제외한 적어도 하나의 비포화 픽셀과 기준 픽셀을 비교함으로써 상기 이미지 데이터를 압축하도록 구성된 인코더.
  8. 이미지를 촬상하는 전자 장치에 있어서,
    픽셀 어레이를 포함하고, 이미지 데이터를 출력하도록 구성된 이미지 센서;
    서로 인접하며 동일한 컬러를 가지는 복수의 픽셀들인 픽셀 그룹에서 픽셀 값이 임계치를 넘은 포화 픽셀을 검출하고, 상기 포화 픽셀의 위치를 나타내는 포화 플래그를 생성하며, 상기 픽셀 그룹 중 상기 포화 픽셀을 제외한 적어도 하나의 비포화 픽셀과 기준 픽셀을 비교함으로써 상기 이미지 데이터를 압축하고, 압축 결과, 포화 플래그 및 압축 방법을 포함하는 비트스트림을 출력하도록 구성된 인코더를 포함하는 이미지 신호 처리기; 및
    상기 비트스트림을 해독함으로써 상기 이미지 데이터를 복원하도록 구성된 디코더를 포함하는 애플리케이션 프로세서를 포함하는 전자 장치.
  9. 제8항에 있어서,
    상기 디코더는,
    미리 정해진 상기 기준 픽셀의 위치에 복원된 데이터를 참조함으로써 상기 비포화 픽셀을 해독하는 것을 특징으로 하는 전자 장치.
  10. 제8항에 있어서,
    상기 디코더는,
    상기 포화 픽셀을 미리 정해진 포화 값으로 복원하는 것을 특징으로 하는 전자 장치.
KR1020210008910A 2020-07-16 2021-01-21 포화 픽셀을 이용하는 이미지 압축 방법, 인코더, 및 전자 장치 KR20220009849A (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
US17/350,058 US20220020180A1 (en) 2020-07-16 2021-06-17 Image compression method using saturated pixel, encoder, and electronic device
DE102021117427.9A DE102021117427A1 (de) 2020-07-16 2021-07-06 Bildkompressionsverfahren unter Verwendung eines gesättigten Pixels, Kodierer und elektronische Vorrichtung
TW110125622A TW202209887A (zh) 2020-07-16 2021-07-13 影像壓縮方法、編碼器和電子裝置
JP2021116303A JP2022019646A (ja) 2020-07-16 2021-07-14 飽和ピクセルを用いるイメージ圧縮方法、エンコーダ、及び電子装置
CN202110794817.0A CN113949878A (zh) 2020-07-16 2021-07-14 使用饱和像素的图像压缩方法、编码器和电子装置

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020200088453 2020-07-16
KR20200088453 2020-07-16

Publications (1)

Publication Number Publication Date
KR20220009849A true KR20220009849A (ko) 2022-01-25

Family

ID=80049327

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210008910A KR20220009849A (ko) 2020-07-16 2021-01-21 포화 픽셀을 이용하는 이미지 압축 방법, 인코더, 및 전자 장치

Country Status (1)

Country Link
KR (1) KR20220009849A (ko)

Similar Documents

Publication Publication Date Title
US11818369B2 (en) Image sensor module, image processing system, and image compression method
TW202209876A (zh) 影像感測器模組和影像壓縮方法
US11770541B2 (en) Image encoder, image decoder, and image processing method
CN113170061A (zh) 图像传感器、成像装置、电子设备、图像处理系统及信号处理方法
US11627250B2 (en) Image compression method, encoder, and camera module including the encoder
EP4102828A1 (en) Image sensor including image signal processor and operating method of the image sensor
KR20070056534A (ko) 여유 데이터가 부가된 화소 데이터 출력 방법 및 장치
KR20220009849A (ko) 포화 픽셀을 이용하는 이미지 압축 방법, 인코더, 및 전자 장치
US11350045B2 (en) Image sensing apparatus and image binning method thereof
US9544559B2 (en) Device and method for processing images
US20220020180A1 (en) Image compression method using saturated pixel, encoder, and electronic device
US11823417B2 (en) Camera module, image processing system and image compression method
US11570479B2 (en) Camera module, image processing device and image compression method
KR20220009854A (ko) 이미지 센서 모듈, 이미지 처리 시스템 및 이미지 압축 방법
KR20220009853A (ko) 이미지 센서 모듈, 이미지 처리 시스템 및 이미지 압축 방법
US20240098387A1 (en) Image sensor, mobile device, and image sensor operation method for reducing data transmission latency
US20240163578A1 (en) Image signal processor, image sensor, and operating method of the image sensor
KR20220009843A (ko) 카메라 모듈, 이미지 처리 시스템 및 이미지 압축 방법
KR20220161124A (ko) 이미지 신호 프로세서를 포함하는 이미지 센서 및 이의 동작 방법
KR20150063614A (ko) 이미지 시그널 프로세서의 이미지 데이터 출력 장치
JP2016187149A (ja) 車載カメラ画像処理装置
KR20240068414A (ko) 이미지 신호 프로세서, 이미지 센서 및 이미지 센서의 동작 방법