KR20210047070A - 이미지 처리 장치 및 이미지 처리 방법 - Google Patents

이미지 처리 장치 및 이미지 처리 방법 Download PDF

Info

Publication number
KR20210047070A
KR20210047070A KR1020190130677A KR20190130677A KR20210047070A KR 20210047070 A KR20210047070 A KR 20210047070A KR 1020190130677 A KR1020190130677 A KR 1020190130677A KR 20190130677 A KR20190130677 A KR 20190130677A KR 20210047070 A KR20210047070 A KR 20210047070A
Authority
KR
South Korea
Prior art keywords
data
image
processing unit
resolution
bayer
Prior art date
Application number
KR1020190130677A
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 KR1020190130677A priority Critical patent/KR20210047070A/ko
Priority to PCT/KR2020/007738 priority patent/WO2020251337A1/ko
Priority to JP2021572932A priority patent/JP2022536327A/ja
Priority to TW109120316A priority patent/TW202105028A/zh
Priority to EP20823426.0A priority patent/EP3985961A4/en
Priority to US17/617,832 priority patent/US20220253978A1/en
Priority to CN202080057178.3A priority patent/CN114270799B/zh
Publication of KR20210047070A publication Critical patent/KR20210047070A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/80Camera processing pipelines; Components thereof
    • H04N5/23229
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06T5/002
    • G06T5/003
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/70Denoising; Smoothing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/73Deblurring; Sharpening
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/50Constructional details
    • H04N23/54Mounting of pick-up tubes, electronic image sensors, deviation or focusing coils
    • H04N5/2253
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/64Circuits for processing colour signals
    • H04N9/73Colour balance circuits, e.g. white balance circuits or colour temperature control

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Biomedical Technology (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Image Processing (AREA)

Abstract

일 실시예에 따른 이미지 처리 장치는 이미지 센서를 포함하는 카메라 모듈, 및 카메라 모듈로부터 출력되는 제1 출력 데이터를 수신하는 AP 모듈을 포함하고, 제1 출력 데이터는 이미지 센서로부터 출력되는 제1 베이어 데이터이고, AP 모듈은 제1 처리부와 제2 처리부를 포함하고, 제1 처리부는 제1 해상도의 제1 베이어 데이터를 이용하여 제2 해상도의 제2 베이어 데이터를 생성하고, 제2 처리부는, 제1 처리부로부터 출력되는 제2 출력 데이터를 수신하여 이미지 처리를 수행한다.

Description

이미지 처리 장치 및 이미지 처리 방법{Image Processing Apparatus and Image Processing Method}
본 발명은 이미지 처리 장치에 관한 것으로, 보다 구체적으로 카메라 모듈 및 AP 모듈의 ISP와 별도로 형성되는 프로세서를 이용하여 심층 학습(Deep Learning) 알고리즘을 기반으로 이미지 전처리를 수행하는 이미지 처리 장치 및 이미지 처리 방법에 관한 발명이다.
스마트폰 카메라에 종래의 방송장비 및 고가의 디지털 카메라와 같은 고해상도 영상에 대한 요구가 늘어나고 있다. 또한 디스플레이 기술의 발달로 고해상도 디스플레이 장치에서 출력할 수 있는 고해상도 콘텐츠 및 기존 해상도 영상의 고해상도화 기술이 요구되고 있다.
이러한 요구사항에 맞추어 센서 제조 업체에서는 DSLR과 같은 고가 카메라 센서 기술들을 모바일로 채용하여 고해상도 기술을 구현하고 있으며, TV 디스플레이 장치에서는 선명하고 생생한 고객 경험을 위해 슈퍼 레졸루션(SR, Super Resolution)과 같은 소프트웨어 알고리즘을 구현하고 있다.
기존 스마트폰의 SR 기술은 영상의 블러(blur) 및 에일리어싱(aliasing) 등 아티팩트(artifact)를 야기하며 광학 줌 대비 해상력이 현저하게 떨어지는 문제가 있다. 이러한 현상은 고배율로 갈수록 두드러지게 나타난다.
광학렌즈를 이용한 줌 기술은 모듈의 사이즈를 증가시킬 뿐만 아니라 가격 상승도 불가피하여 프리미엄 급 제품에만 주로 적용되고 있다. 광학 줌은 해상력 관점에서는 성능 향상의 이점이 있지만 일반 배율에서 사용하는 렌즈와 줌 렌즈의 서로 다른 특성으로 인해 영상 간의 색상 차 등이 존재한다.
이러한 방법 이외에도, 보이스 코일 모터(VCM, Voice Coil Motor) 또는 MEMS(Micro-Electro Mechanical Systems) 기술로 센서를 흔드는 센서 시프트(Shift) 기술, 렌즈를 VCM 등으로 흔들어서 픽셀 정보를 얻는 OIS(Optical Image Stabilizer) 기술, 센서와 렌즈 사이의 필터(Filter)를 흔드는 기술 등 카메라 내부의 부품을 움직이는 방식으로 픽셀 정보를 더 많이 생성하여 고해상도 이미지를 구현하는 기술들이 존재한다.
그러나 이러한 기술들의 단점은 여러 시차의 데이터를 합성하기 때문에 움직이는 물체를 촬영한 경우, 모션 블러(Motion Blur)나, 아티팩트(Artifact)와 같은 현상들이 발생할 수 있어 이로 인해 이미지의 화질을 저하시키는 문제가 발생할 수 있다.
또한, 이를 구현하기 위한 복잡한 장치가 카메라 내부가 삽입됨에 따라 카메라 모듈의 크기가 커지게 되고, 부품을 흔드는 방법으로 구현을 하기 때문에 카메라가 설치된 차량에서는 사용하기 힘들고, 고정적인 환경에서만 사용이 가능한 문제가 존재한다.
반면, TV에서 일반적으로 사용되고 있는 소프트웨어 알고리즘을 이용한 고해상도 구현 기술은 싱글 프레임 SR (Single-Frame Super Resolution) 또는 멀티 프레임 SR(Multi-frame Super Resolution) 기술 등이 존재한다.
이러한 기술의 경우 아티팩트(Artifact) 문제는 발생하지는 않지만, 모바일, 차량, IoT 등 소형 카메라 모듈이 적용될 수 있는 장치에는 적용하기 어려운 알고리즘이며, 또한 이러한 기술을 구현하기 위해서는 별도의 이미지 프로세서가 장착되지 없으면 AP의 ISP가 단독으로 수행하기에는 어려움이 있다.
본 발명이 해결하고자 하는 기술적 과제는, 딥 러닝 네트워크를 기반으로 베이어 데이터에 대한 전처리를 최적화하는 이미지 처리 장치를 제공하는 것이다.
상기 기술적 과제를 해결하기 위하여, 본 발명의 일 실시예에 따른 이미지 처리 장치는 이미지 센서를 포함하는 카메라 모듈; 및 상기 카메라 모듈로부터 출력되는 제1 출력 데이터를 수신하는 AP 모듈을 포함하고, 상기 제1 출력 데이터는 상기 이미지 센서로부터 출력되는 제1 베이어 데이터이고, 상기 AP 모듈은 제1 처리부와 제2 처리부를 포함하고, 상기 제1 처리부는 제1 해상도의 상기 제1 베이어 데이터를 이용하여 제2 해상도의 제2 베이어 데이터를 생성하고, 상기 제2 처리부는, 상기 제1 처리부로부터 출력되는 제2 출력 데이터를 수신하여 이미지 처리를 수행하는 것을 특징으로 한다.
또한, 상기 제1 처리부는, 상기 제2 처리부와 구분되는 칩 형태로 구현될 수 있다.
또한, 상기 제1 처리부는, 상기 AP 모듈 상에 상기 제2 처리부와 구분되는 IP 블록 형태로 구현될 수 있다.
또한, 상기 제1 처리부는, 딥 러닝을 수행하여 상기 제1 베이어 데이터로부터 상기 제2 베이어 데이터를 생성할 수 있다.
또한, 상기 제1 처리부는, 상기 제2 베이어 데이터를 전처리할 수 있다.
또한, 상기 제1 처리부는, 딥 러닝을 수행하여 상기 제2 베이어 데이터를 전처리할 수 있다.
또한, 상기 제1 처리부는, 상기 제2 베이터 데이터를 전처리하여 RGB 이미지 또는 ycbcr 이미지를 생성할 수 있다.
또한, 상기 제1 처리부는, 화이트 발란스(white balance), 디노이징(de-nosing), 디포커스(de-focus), 디블러(de-blur), 디모자이크(di-mosaic) 중 적어도 하나 이상을 수행할 수 있다.
상기 기술적 과제를 해결하기 위하여, 본 발명의 다른 실시예에 따른 이미지 처리 장치는 이미지 센서를 포함하는 카메라 모듈; 상기 카메라 모듈로부터 출력되는 제1 해상도의 제1 베이어 데이터를 이용하여 제2 해상도의 제2 베이어 데이터를 생성하는 베이어 데이터 처리모듈; 및 상기 베이어 데이터 처리모듈로부터 출력되는 출력 데이터를 수신하여 이미지 처리를 수행하는 AP 모듈을 포함한다.
또한, 상기 베이어 데이터 처리모듈은, 상기 AP모듈과 구분되는 별도의 칩 형태로 구현될 수 있다.
또한, 상기 베이어 데이터 처리모듈은, 딥 러닝을 수행하여 상기 제1 베이어 데이터로부터 상기 제2 베이어 데이터를 생성할 수 있다.
또한, 상기 베이어 데이터 처리모듈은, 상기 제2 베이어 데이터를 전처리하는 전처리부를 포함할 수 있다.
또한, 상기 전처리부는, 딥 러닝을 수행하여 상기 제2 베이어 데이터를 전처리함으로써, 제3 베이어 데이터, RGB 이미지, 또는 ycbcr 이미지 중 어느 하나를 생성할 수 있다.
본 발명의 실시예들에 따르면, 고해상도의 RGB 이미지를 생성함에 있어서, 이미지 처리가 수행된 데이터가 아닌 로우(Raw) 데이터인 베이어 데이터의 해상도를 높여 디지털 줌을 수행하는 바, 이미지 처리가 수행된 데이터를 이용하여 해상도를 높이는 경우보다, 정보량이 많아 화질이 높은 고해상도 이미지를 획득할 수 있다.
또한, ISP에서 처리해야 하는 전처리 과정을 딥 러닝 네트워크 모듈 상에서 처리함으로써 ISP의 연산량을 감소시킬 수 있다.
또한, 저해상도 베이어 데이터를 입력 받아 처리하므로 MIPI 대역폭에 대한 고려나 카메라 센서와의 별도 제어 신호에 대한 추가적인 작업이 필요하지 않다.
또한, 몇 개의 라인 버퍼(Line Buffer)만을 사용하는 방식으로 고해상도를 구현하고 네트워크 구성은 최적화시키는 방식으로 고해상도 이미지를 생성하므로 비교적 크기가 작은 소형 칩(Chip)으로 구현할 수 있고, 이를 통해, 탑재되는 장치의 사용 목적에 따라 다양한 위치에 다양한 방식으로 탑재될 수 있어, 설계의 자유도가 증가할 수 있다. 또한, 기존의 딥 러닝 방식의 알고리즘을 수행하기 위해 고가의 프로세서가 필요하지 않아 보다 경제적으로 고해상도 이미지를 생성할 수 있다.
또한, 이미지 센서 모듈, 카메라 모듈, AP 모듈 어느 위치에나 탑재 가능한 방식으로 본 기술의 실시가 가능하므로, 줌 기능이 없는 카메라 모듈 또는 특정 배율에 대한 고정 줌만 지원하는 카메라 모듈과 같이, 다양한 기존 모듈에 본 기술을 적용시켜 연속 줌 기능을 사용할 수 있다.
또한, 특정 배율에 대해 광학적으로 연속 줌만 지원하는 카메라 모듈에서도 본 기술을 적용시켜 더 넓은 배율 구간에서 연속 줌 기능을 활용할 수 있는 효과가 존재한다.
도 1은 본 발명의 일 실시예에 따른 이미지 처리 장치의 블록도이다.
도 2는 본 발명의 일 실시예에 따른 이미지 처리 장치에 포함되는 카메라 모듈의 블록도이다.
도 3은 본 발명의 일 실시예에 따른 이미지 처리 장치의 구성이 적용된 모바일 장치의 블록도이다.
도 4는 본 발명의 다른 실시예에 따른 이미지 처리 장치의 블록도이다.
도 5는 본 발명의 다른 실시예에 따른 이미지 처리 장치의 구성이 적용된 모바일 장치의 블록도이다.
도 6은 본 발명의 실시예에 따른 이미지 처리 장치에서 이미지를 처리하는 과정을 설명하기 위한 도면이다.
도 7 내지 도 11은 베이어 데이터 해상도를 높이는 과정을 설명하기 위한 도면이다.
도 12는 본 발명의 또 다른 실시예에 따른 이미지 처리 장치의 블록도이다.
도 13은 본 발명의 일 실시예에 따른 이미지 처리 방법의 흐름도이다.
도 14는 본 발명의 다른 실시예에 따른 이미지 처리 방법의 흐름도이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명한다.
다만, 본 발명의 기술 사상은 설명되는 일부 실시 예에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있고, 본 발명의 기술 사상 범위 내에서라면, 실시 예들간 그 구성 요소들 중 하나 이상을 선택적으로 결합 또는 치환하여 사용할 수 있다.
또한, 본 발명의 실시예에서 사용되는 용어(기술 및 과학적 용어를 포함)는, 명백하게 특별히 정의되어 기술되지 않는 한, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 일반적으로 이해될 수 있는 의미로 해석될 수 있으며, 사전에 정의된 용어와 같이 일반적으로 사용되는 용어들은 관련 기술의 문맥상의 의미를 고려하여 그 의미를 해석할 수 있을 것이다.
또한, 본 발명의 실시예에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다.
본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함할 수 있고, "A 및(와) B, C 중 적어도 하나(또는 한 개 이상)"로 기재되는 경우 A, B, C로 조합할 수 있는 모든 조합 중 하나 이상을 포함할 수 있다.
또한, 본 발명의 실시 예의 구성 요소를 설명하는데 있어서, 제1, 제2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성요소의 본질이나 차례 또는 순서 등으로 한정되지 않는다.
그리고, 어떤 구성 요소가 다른 구성 요소에 '연결', '결합', 또는 '접속'된다고 기재된 경우, 그 구성 요소는 그 다른 구성 요소에 직접적으로 '연결', '결합', 또는 '접속'되는 경우뿐만 아니라, 그 구성 요소와 그 다른 구성 요소 사이에 있는 또 다른 구성 요소로 인해 '연결', '결합', 또는 '접속'되는 경우도 포함할 수 있다.
또한, 각 구성 요소의 "상(위)" 또는 "하(아래)"에 형성 또는 배치되는 것으로 기재되는 경우, "상(위)" 또는 "하(아래)"는 두 개의 구성 요소들이 서로 직접 접촉되는 경우뿐만 아니라, 하나 이상의 또 다른 구성 요소가 두 개의 구성 요소들 사이에 형성 또는 배치되는 경우도 포함한다. 또한, "상(위)" 또는 "하(아래)"로 표현되는 경우 하나의 구성 요소를 기준으로 위쪽 방향뿐만 아니라 아래쪽 방향의 의미도 포함될 수 있다.
도 1은 본 발명의 일 실시예에 따른 이미지 처리 장치(130)의 블록도이다. 본 발명의 일 실시예에 따른 이미지 처리 장치(130)는 카메라 모듈(110) 및 AP 모듈(120)로 구성되고, AP 모듈(120)은 제1 처리부(121) 및 제2 처리부(122)로 구성된다. 또한, 하나 이상의 프로세서를 더 포함하거나, 하나 이상의 메모리 또는 통신부를 더 포함할 수 있다. 이미지 처리 장치(130)는 이미지를 처리하는 기능을 포함하는 장치를 의미하며, 이미지를 처리하는 모듈부터 이미지 처리부를 포함하는 이동 단말과 같이, 전자 장치 중 어느 하나를 의미할 수 있다.
카메라 모듈(110)은 이미지 센서를 포함한다.
보다 구체적으로, 카메라 모듈(110)은 이미지 센서에서 제1 해상도의 베이어 데이터를 출력한다. 카메라 모듈(110)은 도 2와 같이 렌즈(111), 이미지 센서(112), 이미지 센서(112)가 실장되는 센서 보드(113), 및 외부와 데이터를 송수신하는 커넥터(114)로 구성될 수 있다. 상기 구성들이 하나의 모듈로 형성될 수 있다. 즉, 카메라 모듈 이외의 구성들과 구별되는 하나의 독립적인 장치로, 다른 모듈과는 데이터를 송수신하는 형태로 구현될 수 있다.
렌즈(120)는 유리와 같이 투명한 물질의 면을 구면으로 곱게 갈아 물체로부터 오는 빛을 모으거나 발산시켜 광학적 상을 맺게 하는 장치로서, 카메라 모듈(110)에 사용되는 일반적인 렌즈(111)는 복수 개의 서로 다른 특징을 가지는 렌즈를 구비할 수 있다. 렌즈(111) 상부에는 외부로부터 유입되는 빛을 선택적으로 차단하는 역할을 하는 필터가 형성될 수 있다.
이미지 센서(112)는 이미지 센서(110)는 카메라 모듈의 렌즈를 통해 들어오는 빛을 전기 신호로 변화하는 CMOS(Complementary Metal Oxide Semiconductor) 또는 CCD(Charge Coupled Device)와 같은 이미지 센서를 포함할 수 있다. 이미지 센서(112)는 획득한 이미지를 컬러 필터를 통해 베이어 패턴(Bayer Pattern)의 정보를 포함하는 베이어 데이터를 생성할 수 있다. 베이어 데이터는 이미지 센서(112)의 스펙 또는 해당 이미지를 생성시 설정된 줌 배율에 따라 제1 해상도를 가질 수 있다. 이미지 센서(112)는 센서 보드(113)상에 형성될 수 있다. 렌즈(111)도 센서 보드(113) 상에 형성될 수 있다.
렌즈(111)를 통해 전달되는 광 신호는 R, G, B 색상을 검출할 수 있는 이미지 센서(112)에 배치된 각 화소를 통해 전기 신호로 변환될 수 있다. 만약 카메라 모듈(110)의 사양이 500만 화소라고 한다면, R, G, B 색상을 감지할 수 있는 화소가 500만 개 포함된 이미지 센서(112)가 포함되어 있다고 생각할 수 있다. 화소 수가 500만 개이지만, 실제로 각각의 색(color)을 감지하는 것이 아니라 흑백의 밝기만을 감지하는 단색(monochrome) 화소가 R, G, B 필터 중 어느 하나와 결합된 형태로 볼 수 있다. 즉, 이미지 센서(112)는 화소수 만큼 배열된 단색 화소 셀들 위에 R, G, B 색상 필터들이 특정한 패턴을 가지고 배치되어 있다. 따라서, R, G, B 색상 패턴이 사용자(즉, 인간)의 시각 특성에 따라 교차하며 배치되는데 이를 베이어 패턴(Bayer Pattern)이라고 부른다. 일반적으로 베이어 패턴은 이미지 형태의 데이터보다 데이터의 양이 작다. 따라서, 고사양의 프로세서를 가지고 있지 않은 카메라 모듈(110)이 장착된 장치라 하더라도 이미지 형태의 데이터보다 비교적 빠르게 베이어 패턴의 이미지 정보를 전송하고 수신할 수 있으며, 이를 기초로 다양한 해상도의 이미지로 변환시킬 수 있는 장점이 존재한다.
일 예로, 카메라 모듈(110)이 차량에 탑재되어, 카메라 모듈(110)이 100 Mbit/s의 전이중(Full-duplex) 전송 속도를 가지는 저전압 차등 신호 방식(LVDS)이 이용되는 환경 내에서도 이미지 처리를 하는데 많은 프로세서가 필요하지 않아 과부하가 걸리지 않아 차량을 이용하는 운전자 또는 운전자의 안전에 위해가 되지 않을 수 있다. 또한, 차량 내 통신망에 의해 전달되는 데이터의 크기를 줄일 수 있어 자율 주행 차량에 적용하더라도 차량에 배치된 복수의 카메라의 작동에 따른 통신 방식, 통신 속도 등에 의해 발생하는 문제를 제거할 수 있는 효과가 존재한다.
또한, 이미지 센서(112)는 제1 처리부(121)에 베이어 패턴의 베이어 데이터를 송신함에 있어, 베이어 패턴 형태의 프레임을 1/n 크기로 다운 샘플링한 후의 데이터를 송신할 수 있다. 다운샘플링 이전에 수신된 베이어 패턴의 데이터에 대해 가우시안 필터(Gaussian Filter) 등을 통한 스무딩(smoothing)을 수행한 뒤, 다운 샘플링을 수행할 수 있다. 이후, 다운 샘플링된 영상 데이터를 기반으로 프레임 패킷을 생성한 후, 완성된 프레임 패킷을 제1 처리부(121)로 송신할 수 있다. 다만, 이러한 기능은 이미지 센서가 아닌 제1 처리부(121)에서 수행될 수도 있다.
또한, 이미지 센서(112)는 저전압 차등 시그널링 방식(LVDS)와 같은 시리얼 통신 방식으로 베이어 데이터를 송신하기 위해 베이어 패턴을 직렬 데이터로 변환하는 시리얼라이져(Serializer, 미도시)를 포함할 수 있다. 시리얼라이저는 통상적으로 데이터를 일시적으로 저장하는 버퍼 및 송신되는 데이터의 주기를 형성하는 위상동기루프(PLL)를 포함하거나 함께 구현될 수 있다.
커넥터(114)는 카메라 모듈(110)에서 생성된 데이터들을 외부로 출력하거나, 외부로부터 데이터를 수신한다. 커넥터(114)는 통신부로 형성될 수 있고, 통신 라인 또는 데이터 라인으로 형성될 수 있다. 커넥터(114)는 이미지 센서(112)에서 생성되어 출력되는 베이어 데이터를 제1 처리부(121)로 전달할 수 있다. 여기서, 외부와 연결되는 라인으로 형성되는 커넥터(114)는 MIPI(Mobile Industry Processor Interface)로 구현될 수 있다. MIPI는 모바일 기기를 구성하는 각각의 구성 요소들 사이의 인터페이스로, 재사용성 및 호환성이 강화된 인터페이스로 DSI(Display Serial Interface) 및 CSI(Camera Serial Interface) 등을 포함한다. 카메라 모듈(110)의 커넥터(114)는 CSI로 구현될 수 있다.
카메라 모듈(110)은 드라이버 IC 및 액츄에이터를 더 포함할 수 있다.
드라이버 IC(Driver IC)는 화면에 문자나 영상 이미지가 표시되도록 패널에 구동신호 및 데이터를 전기신호로 제공하는 반도체(IC)를 의미하며, 이동 단말 장치의 다양한 위치에 배치될 수 있다. 또한, 드라이버 IC는 액츄에이터를 구동할 수 있다. 액츄에이터는 렌즈 또는 렌즈를 포함하는 경통의 위치를 조절하여 초점을 조절할 수 있다. 예를 들어 액츄에이터는 VCM(Voice Coil Motor) 방식일 수 있다. 이때, 렌즈는 가변 초점 렌즈를 포함할 수도 있다. 가변 초점 렌즈를 포함하는 경우 드라이버 IC는 가변 초점 렌즈를 구동할 수 있다. 예를 들어 렌즈는 액체를 포함하는 액체 렌즈를 포함할 수 있으며 이 경우 드라이버 IC는 액체 렌즈의 액체를 조절하여 초점을 조절할 수 있다.
AP 모듈(120)은 카메라 모듈(110)로부터 출력되는 제1 출력 데이터를 수신한다.
보다 구체적으로, AP 모듈(120)은 이미지 센서(112)로부터 출력되는 제1 베이어 데이터를 카메라 모듈(110)로부터 수신한다. AP(Application Processor 120)는 모바일용 메모리 칩으로 이미지 처리 장치(130)가 모바일 장치인 경우, 모바일 장치에서의 각종 어플리케이션 작동과 그래픽 처리를 담당하는 핵심 반도체를 의미한다. AP 모듈(120)은 컴퓨터의 중앙처리장치(CPU)의 기능과 메모리, 하드디스크, 그래픽 카드 등 기타 장비의 연결을 제어하는 칩셋의 기능을 모두 포함하고 있는 SoC(System on Chip) 형태로 구현될 수 있다.
AP 모듈(120)은 제1 처리부(121) 및 제2 처리부(122)를 포함한다.
제1 처리부(121)는 제1 해상도의 상기 제1 베이어 데이터를 이용하여 제2 해상도의 제2 베이어 데이터를 생성한다.
보다 구체적으로, 제1 처리부(121)는 이미지 센서(112)에서 생성되어 출력되는 이미지 데이터인 베이어 데이터의 해상도를 높인다. 즉, 제1 해상도의 제1 베이어 데이터로부터 제2 해상도의 제2 베이어 데이터를 생성한다. 여기서, 제2 해상도는 제1 해상도와 다른 해상도 값을 가지는 해상도를 의미하며, 제2 해상도는 제1 해상도보다 높을 수 있다. 제1 해상도는 카메라 모듈(110)이 출력하는 베이어 데이터의 해상도일 수 있고, 제2 해상도는 사용자의 설정에 따라 달라지거나, 미리 설정된 해상도일 수 있다. 여기서, 이미지 센서(112)는 RGB 이미지 센서일 수 있다.
이미지 처리 장치(130)는 사용자로부터 해상도에 대한 정보를 입력받는 입력부(미도시)를 더 포함할 수 있다. 사용자는 입력부를 통해 제1 처리부(121)에서 생성하고자 하는 제2 해상도에 대한 정보를 입력할 수 있다. 예를 들어, 사용자는 해상도가 높은 이미지를 얻고 싶은 경우, 제2 해상도를 제1 해상도와 차이가 많은 해상도로 설정할 수 있으며, 비교적 빠른 시간 내에 새로운 이미지를 취득하고 싶은 경우, 제1 해상도와 차이가 많이 나지 않은 해상도로 제2 해상도를 설정할 수 있다.
제1 처리부(121)는 슈퍼 레졸루션(SR, Super Resolution)을 수행하기 위하여, 제1 해상도의 제1 베이어 데이터로부터 제2 해상도의 제2 베이어 데이터를 생성할 수 있다. 슈퍼 레졸루션은 저해상도 이미지에 기초하여 고해상도 이미지를 생성하는 과정으로, 물리적인 광학 줌이 아닌 이미지 처리를 통해 저해상도 이미지로부터 고해상도 이미지를 생성하는 디지털 줌의 기능을 한다. 슈퍼 레졸루션은 압축 또는 다운 샘플링된 이미지의 품질을 개선하는 데 이용되거나, 장치적 한계에 따른 해상도의 이미지의 품질을 향상시키는데 이용될 수 있다. 이외에도 다양한 분야에서 이미지의 해상도를 높이는 데 이용될 수 있다.
슈퍼 레졸루션과 같이, 해상도를 높이는 과정을 수행함에 있어서, RGB 이미지가 아닌 베이어 데이터를 이용하여 해상도를 높이는 과정을 수행함으로써, 해상도를 높인 결과의 품질을 높일 수 있다. 베이어 데이터는 이미지 센서(112)가 생성하여 출력한 로우(Raw) 데이터인 바, 이미지 처리를 수행하여 생성된 RGB 이미지에 비해 많은 정보를 포함하고 있다.
RGB 데이터도 10-bit 이상으로 처리할 가능성도 있으나, 현재는 디스플레이 등에만 적용되고 있으며, 기존 RGB 데이터를 이용하는 경우, 각 채널당 8-bit의 데이터를 가지고 있다. 또한, ISP 단에서 수행되는 demosaic 등에 의해서 정보가 손실되기도 한다. 하지만, 이에 반해, 베이어 데이터는 가공되지 않은 현재 모바일에서 사용되는 포맷상에서 10-bit 데이터를 가지고 있다. 12-bit 또는 14-bit 형태의 베이어 데이터도 가능하다. 이와 같이, 베이어 데이터를 이용하는 경우, 슈퍼 레졸루션에 사용될 입력의 정보량이 RGB 데이터 대비 많아지므로, 베이어 데이터를 이용하여 해상도를 높이는 것이, RGB 이미지를 이용하여 해상도를 높이는 것에 비해 처리 품질이 우수하다.
제1 처리부(121)는 베이어 데이터뿐만 아니라 IR 데이터의 해상도를 높일 수도 있다. 이미지 센서(112)가 ToF 센서인 경우, ToF 센서가 생성하여 카메라 모듈(110)이 출력하는 제3 해상도의 IR 데이터를 이용하여 제4 해상도의 IR 데이터를 생성할 수 있다. 제3 해상도는 ToF 센서(120)가 출력하는 IR 데이터의 해상도일 수 있고, 제4 해상도는 사용자의 설정에 따라 달라지거나, 미리 설정된 해상도일 수 있다. 제4 해상도는 제2 해상도와 동일한 해상도 값을 가지는 해상도일 수 있다. IR 데이터로부터 생성되는 IR 이미지를 이용하여 베이어 데이터로부터 생성되는 RGB 이미지의 화질을 개선하는 경우, IR 이미지와 RGB 이미지의 크기, 즉 해상도가 동일하도록 IR 데이터가 가지는 제4 해상도가 제2 베이어 데이터가 가지는 제2 해상도와 동일하도록 IR 데이터를 생성할 수 있다.
제2 처리부(122)는 제1 처리부(121)로부터 출력되는 제2 출력 데이터를 수신하여 이미지 처리를 수행한다.
보다 구체적으로, 제2 처리부(122)는 제1 처리부(121)로부터 출력되는 제2 출력 데이터에 대한 이미지 신호 처리(ISP, Image Signal Processing)를 수행하여 이미지를 생성한다. 제2 처리부(122)는 ISP 프로세서(Image Signal Processor)일 수 있다. MIPI(Mobile Industry Processor Interface) 통신을 이용하여 제1 처리부(121)가 출력한 제2 출력 데이터를 수신하고 이미지 신호 처리 과정을 수행할 수 있다.
제2 처리부(122)는 제2 출력 데이터가 제2 베이어 데이터일 때, 제2 베이어 데이터로부터 RGB 이미지를 생성할 수 있다. 이때, 제2 처리부(122)는 영상 신호를 처리하면서 복수의 서브 과정을 수행할 수 있다. 예를 들어, 수신한 영상에 대해 감마값 보정(gamma correction), 색채 보정(color correction), 자동 노출(auto exposure correction), 자동 화이트값 보정(auto white balance) 과정 중에서 어느 하나 이상을 수행할 수 있다.
제1 처리부(121)가 베이어 데이터뿐만 아니라 IR 데이터를 출력하는 경우, 제2 처리부(122)는 제1 처리부(121)의 제2 출력 데이터인 베이어 데이터로부터 생성되는 RGB 이미지 및 IR 데이터로부터 생성되는 IR 이미지를 연산하여 화질이 개선된 RGB 이미지를 생성할 수 있다. 저조도 환경에서 베이어 데이터만으로 생성되는 RGB 이미지는 밝기가 낮거나, 잡음이 심해서 화질이 많이 저하된다. 베이어 데이터만으로 RGB 이미지를 생성하는데 발생할 수 있는 화질 저하를 개선하기 위하여, IR 이미지를 이용할 수 있다. 즉, RGB 이미지 및 IR 이미지를 연산하여 화질이 개선된 제2 RGB 이미지를 생성할 수 있다. RGB 이미지 센서 및 ToF 이미지 센서를 포함하는 카메라 모듈(110)을 이용하여 각 데이터의 해상도를 높이는 줌 기능뿐만 아니라 고해상도 IR 데이터를 이용하여 RGB 이미지의 저조도를 개선할 수 있다. 베이어 데이터 또는 IR 데이터는 해상도를 높이는 과정을 통해 고해상도 RGB 이미지, 고해상도 IR 이미지, 및 고해상도 깊이 이미지를 생성할 수 있다. 또한, IR 이미지는 RGB 이미지보다 해상도가 매우 낮기 때문에 (1Mp이하) IR 데이터를 고해상도로 처리하는 처리부는 칩(chip) 형태로 구현하기 적합하다. 소형화 칩을 만들기 위해서는 알고리즘 로직(logic)과 연산시 필요한 데이터 메모리를 최소화하는 것이 중요한데, 카메라 장치의 해상도가 메모리와 연산량에 직결되기 때문이다. IR 데이터의 해상도를 높이는 과정은 베이어 데이터의 해상도를 높이는 제1 처리부(121)의 칩을 이용할 수도 있다. 제1 처리부(121) 칩의 일부를 사용하면서, IR 데이터의 해상도를 높이도록 학습된 weight 값들만 스위칭해주면 된다. 이렇게 해상도가 개선된 IR 이미지를 이용하여 저조도 상황에서의 RGB 이미지를 개선하게 되면 더 높은 개선 효과가 나타날 수 있고, 깊이 영상과 연산(fusion)을 통해 다양한 어플리케이션(예, 얼굴 인식, 물체 인식, 크기 인식 등)에 적용하면 인식률이 향상된다.
제1 처리부(121)는 딥 러닝을 수행하여 상기 제1 베이어 데이터로부터 상기 제2 베이어 데이터를 생성할 수 있다. 딥 러닝 이외의 해상도를 높이는 알고리즘을 이용하여 제1 베이어 데이터로부터 제2 베이어 데이터를 생성할 수도 있다. 슈퍼 레졸루션(SR)에 이용되는 다양한 알고리즘을 이용할 수 있음은 당연하다. 제1 처리부(121)가 제1 출력 데이터의 해상도를 높이는 과정은 이후에 도 6 내지 도 11을 참조하여 자세히 설명하도록 한다.
제1 처리부(121)는 제2 처리부(122)와 구분되는 칩 형태로 구현될 수 있다. 제1 베이어 데이터로부터 제2 베이어 데이터를 생성하는 제1 처리부(121)와 이미지 신호 처리를 수행하는 제2 처리부(122)를 별도의 칩으로 구현할 수 있다. 제1 처리부(121)를 소형 칩으로 형성하여 AP 모듈 상에 적용함으로써 ISP 인 제2 처리부(122)와 같은 AP 모듈의 기존 구성들을 변경하지 않고, 베이어 데이터의 해상도를 높이는 구성만을 AP 모듈 상에 추가할 수 있다.
도 3과 같이, 이미지 처리 장치(130)가 모바일 장치인 경우, 카메라 모듈(110)은 모바일 장치에 포함되는 카메라 장치일 수 있고, 모바일 장치의 각종 어플리케이션을 처리하는 AP 모듈(120)이 형성되며, 제1 처리부(121)는 AP 모듈 상에 ISP 프로세서인 제2 처리부(122)와 구분되는 별도의 칩 형태로 구현될 수 있다.
카메라 모듈(110)에서 생성되어 출력되는 제1 출력 데이터인 베이어 데이터는 가공되지 않은 로우(Raw) 데이터일 수 있고, 이때, 베이어 데이터는 베이어 로우 데이터(Bayer raw data)로 나타낼 수 있다. 베이어 데이터는 MIPI 통신을 통해 AP 모듈 상에 칩 형태로 형성되는 제1 처리부(121)가 수신한다. 제1 처리부(121)는 딥 러닝을 수행하여 제1 베이어 데이터로부터 제2 베이어 데이터를 생성한다. 제1 처리부(121)는 딥 러닝 네트워크 칩(Deep Learning Network Chip)으로 나타낼 수 있다. 제1 처리부(121)가 저해상도 베이어 로우 데이터를 수신하여 처리함으로써 MIPI 대역폭에 대한 고려나 카메라 모듈과의 별도의 제어 신호에 대한 추가적인 작업이 필요하지 않다. 따라서, 기존의 장치들을 그대로 이용할 수 있어, 호환성이 높고, 설계의 자유도도 높아진다.
제1 처리부(121)는 딥 러닝을 수행하여 제1 베이어 데이터를 이용하여 제2 베이어 데이터를 생성하고, 제1 처리부(121)에서 출력되는 제2 출력 데이터는 제2 처리부(122)가 수신하여 이미지 신호 처리를 수행하여 이미지를 생성한다.
제1 처리부(121)는 상기 AP 모듈 상에 상기 제2 처리부와 구분되는 IP 블록 형태로 구현될 수도 있다.
IP(intellectual property) 블록이란 재사용 가능한 로직 유닛, 셀, 또는 칩 레이아웃 설계를 지칭하며, 특정 당사자의 지적 재산으로 고려되는 블록을 의미한다. IP 블록은 IP 코어일 수 있다. IP 블록들은 설계에 존재하는 라이센스된 및/또는 자신 소유의 지적 재산 (예컨대, 특허들, 소스 코드 저작권들, 영업 비밀들, 노하우 등)을 갖는 당사자들에 의해 IC 설계들 내에서 빌딩 블록들로서 사용될 수 있다. IP 블록은 AP 모듈과 같은 칩의 설계를 위하여, 해당 칩에 적용될 수 있는 설계 블록으로, IP 블록을 이용함으로써 칩 설계를 용이하게 할 수 있다. 복수의 IP 블록을 이용함으로써 SoC와 같은 칩 설계를 할 수 있다.
AP 모듈에는 모바일 장치에서 기능을 수행하는 다양한 어플리케이션의 IP 블록들을 포함한다. LTE modem, Graphic Processing Unit (GPU), Wi-Fi, Display Processing Unit (DPU), Video Processing Unit (VPU), Digital Signal Processor (DSP), Hexagon Vector eXtensions (HVX), All-Ways Aware, Audio, Central Processing Unit(CPU), Location, Security 등 모바일 장치에 필요한 기능들을 수행하는 어플리케이션의 IP 블록과 카메라 장치로부터 수신하는 이미지 신호에 대해 이미지 신호 처리를 수행하는 제2 처리부(122)에 해당하는 Camera Image Signal Processor(ISP)를 포함할 수 있다.
제1 처리부(121) 및 제2 처리부(122)는 도 4와 같이, AP 모듈의 IP 블록으로 구현될 수 있다. 제2 처리부(122)는 이미지 신호 처리(ISP) IP 블록일 수 있다. 제1 베이어 데이터로부터 제2 베이어 데이터를 생성하는 제1 처리부(121)를 IP 블록으로 구성하여 AP 모듈의 기존 칩 상에 추가할 수 있다. 이때, 제1 처리부(121)의 IP 블록은 제2 처리부인 이미지 신호 처리 IP 블록과 구분되도록 형성될 수 있다.
제1 처리부(121)가 상기 AP 모듈 상에 제2 처리부와 구분되는 IP 블록 형태로 형성되는 경우, 도 5와 같이, 카메라 모듈(110)로부터 출력되는 제1 출력 데이터인 베이어 데이터는 AP 모듈의 IP 블록으로 형성된 제1 처리부(121)가 수신한다. 이후, 제1 처리부(121) IP 블록에서 제1 베이어 데이터를 이용하여 제2 베이어 데이터를 생성하고, 제1 처리부(121) IP 블록에서 출력되는 제2 출력 데이터는 제2 처리부(122) IP 블록이 수신하여 이미지 신호 처리를 수행하여 이미지를 생성한다.
제1 처리부(121)는 도 6과 같이, 제1 해상도의 제1 베이어 데이터로부터 제2 해상도의 베이어 데이터를 생성하는 딥 러닝 네트워크(Deep Learning Network, 121-1)를 포함하고, 제1 해상도의 제1 베이어 데이터로부터 제2 해상도의 베이어 데이터를 생성하는데 이용되는 딥 러닝 파라미터인 베이어 파라미터(121-2)를 저장할 수 있다. 딥 러닝 파라미터(121-2)는 메모리 상에 저장되어 있을 수 있다. 제1 처리부(121)는 칩(chip)의 형태로 구현되어 제1 베이어 데이터로부터 제2 베이어 데이터를 생성할 수 있다.
제1 처리부(121)는 하나 이상의 프로세서를 포함할 수 있고, 프로세서를 통해 실행되는 적어도 하나의 프로그램 명령은 하나 이상의 메모리에 저장될 수 있다. 메모리는 S램, D랩 등의 휘발성 메모리를 포함할 수 있다. 다만, 이에 한정되는 것은 아니며, 경우에 따라서 메모리(115)는 플래시 메모리, 롬(Read Only Memory), 이피롬(Erasable Programmable Read Only Memory: EPROM), 이이피롬(Electrically Erasable Programmable Read Only Memory: EEPROM) 등의 비휘발성 메모리를 포함할 수도 있다.
통상적인 카메라 장치 혹은 카메라 모듈(110)은 이미지 센서로부터 베이어 패턴을 전달받아 색을 입히는 과정(색 보간 과정, Color Interpolation 혹은 Demosaic)을 거쳐 이미지 형태의 데이터를 출력하는데, 이미지에서 베이어 패턴(Bayer Pattern) 정보를 포함하고 있는 정보를 추출하고 추출된 정보를 포함하는 데이터를 외부로 송신할 수 있다. 여기서 베이어 패턴은 카메라 장치 또는 카메라 모듈(110)에 포함된 광 신호를 전기 신호로 변환하는 이미지 센서가 출력하는 가공되지 않은 데이터(Raw Data)를 포함할 수 있다.
제1 처리부(121)에 적용되는 딥 러닝 알고리즘(모델)은, 입력된 이미지 데이터의 해상도보다 더 높은 해상도의 이미지 데이터를 생성하는 알고리즘으로서, 딥 러닝 트레이닝(training)을 통해 학습을 반복적으로 수행하여 생성된 최적의 알고리즘을 의미할 수 있다.
딥 러닝이란, 심층 학습으로 표현되기도 하는데, 여러 비선형 변환기법의 조합을 통해 높은 수준의 추상화(abstractions, 다량의 데이터나 복잡한 자료들 속에서 핵심적인 내용 또는 기능을 요약하는 작업)를 시도하는 기계 학습(machine learning)에 관한 알고리즘의 집합을 의미한다.
구체적으로, 딥 러닝은 어떠한 학습 데이터를 컴퓨터가 이해할 수 있는 형태(예를 들어 이미지의 경우는 픽셀(Pixel)정보를 열 벡터로 표현하는 등)로 표현(Representation)하고 이를 학습에 적용하기 위한 모델을 도출하는(어떻게 하면 더 좋은 표현기법을 만들고 또 어떻게 이것들을 학습할 모델을 만들 지에 대한) 학습 기법으로, DNN(Deep Neural Networks) 및 DBN(Deep Belief Networks)등의 학습 기법을 포함할 수 있다.
제1 처리부(121)는 딥 러닝을 수행하여 제1 베이어 데이터로부터 제2 베이어 데이터를 생성한다. 제1 해상도의 제1 베이어 데이터로부터 딥 러닝을 수행하여 제2 해상도의 제2 베이어 데이터를 생성하는 방법의 일예로 도 7의 딥 러닝 모델을 이용할 수 있다.
도 7의 딥 러닝 모델은 심층 신경망(Deep Neural Network, DNN) 알고리즘이 적용된 딥 러닝 모델로서, DNN 알고리즘이 적용됨에 따라 새로운 해상도의 데이터를 생성하는 과정을 도시한 도면이다.
심층 신경망(DNN)은 입력층(input layer)과 출력층(output layer) 사이에 다중의 은닉층(hidden layer)이 존재하는 심층(deep) 신경망, 동물의 시각 피질의 구조와 유사하게 뉴런 사이의 연결 패턴을 형성하는 컨볼루션(convolutional) 신경망, 시간에 따라 매 순간마다 신경망을 쌓아 올리는 재귀(recurrent) 신경망으로 구체화될 수 있다.
구체적으로 DNN은 컨볼루션(Convolution)과 서브 샘플링(Sub-Sampling)을 반복하여 데이터의 양을 줄이고, 왜곡시켜 신경망을 분류한다. 즉, DNN은 특징 추출과 분류 행위를 통해 분류 결과를 출력하는데, 주로 이미지를 분석하는데 사용되며, 컨볼루션은 영상 필터링을 의미한다.
도 7을 참조하여 DNN 알고리즘이 적용된 제1 처리부(121)가 딥 러닝을 수행하는 과정을 설명하면, 제1 처리부(121)는 제1 해상도의 베이어 데이터(10)를 기초로 배율을 높이고자 하는 영역에 대해 컨볼루션과 서브 샘플링(Sub-Sampling)을 수행한다.
배율을 높인다는 것은, 제1 베이어 데이터 중에서 특정 부분만을 확대하는 것을 의미한다. 따라서, 사용자에 의해 선택되지 않은 부분은 사용자가 관심이 없어 하는 부분이므로 해상도를 높이는 과정을 수행할 필요가 없으므로 사용자에 의해 선택된 부분에 대해서만 컨볼루션과 서브 샘플링 과정을 수행할 수 있다. 이를 통해, 불필요한 연산을 수행하지 않음으로써, 연산량을 줄일 수 있어 처리 속도를 높일 수 있다.
서브 샘플링은 이미지의 크기를 줄이는 과정을 의미한다. 이때, 서브 샘플링은 맥스-풀(Max Pool) 방법 등을 사용할 수 있다. 맥스-풀은 해당 영역에서 최대치를 선택하는 기법인데 뉴런이 가장 큰 신호에 반응하는 것과 유사하다. 서브 샘플링은 노이즈를 감소시키고, 학습의 속도를 증가시킬 수 있는 장점이 존재한다.
컨볼루션과 서브 샘플링이 수행되면, 도 7에 도시된 바와 같이 복수 개의 이미지 데이터(20)가 출력될 수 있다. 여기서, 복수 개의 이미지 데이터(20)은 특징 맵일 수 있다. 그 후 복수 개의 이미지 데이터들을 기초로 업 스케일(Up Scale) 방식으로 이용하여 서로 다른 특징을 가지는 복수 개의 이미지 데이터를 출력시킬 수 있다. 업 스케일 방식은 서로 다른 r^2개의 필터를 이용하여 이미지를 r*r 배로 스케일을 높이는 것을 의미한다.
업 스케일에 따라 복수 개의 이미지 데이터가 도 7에 도시된 바와 같이 출력되면(30), 제1 처리부(121)는 이러한 이미지 데이터들을 기초로 재조합을 하여 최종적으로 제2 해상도의 제2 베이어 데이터(40)를 출력할 수 있다.
제1 처리부(121)가 딥 러닝을 수행하여 제1 베이어 데이터로부터 제2 베이어 데이터를 생성하는데 이용하는 딥 러닝 파라미터는 딥 러닝 트레이닝을 통해 도출될 수 있다.
딥 러닝은 트레이닝(Training)과 인퍼런스(inference)로 나눌 수 있다. 트레이닝은 입력 데이터를 통해 딥 러닝 모델을 학습하는 과정을 의미하고, 인퍼런스는 학습된 딥 러닝 모델로 이미지 처리 등을 수행하는 과정을 의미한다. 즉, 트레이닝을 통해 도출되는 딥 러닝 모델의 파라미터들을 적용한 딥 러닝 모델을 이용하여 이미지를 처리한다.
딥 러닝을 수행하여 제1 베이어 데이터로부터 제2 베이어 데이터를 생성하기 위해서, 베이어 데이터 처리에 필요한 제1 딥 러닝 파라미터를 트레이닝을 통해 도출해야 한다. 트레이닝을 통해 제1 딥 러닝 파라미터가 도출되면, 해당 베이어 파라미터를 적용한 딥 러닝 모델을 이용하여 딥 러닝을 수행함으로써 제1 베이어 데이터로부터 제2 베이어 데이터를 생성하는 인퍼런스를 수행할 수 있다. 따라서, 딥 러닝을 수행하기 위한 파라미터를 도출하기 위한 트레이닝 과정이 이루어져야 한다.
딥 러닝 트레이닝 과정은 도 8과 같이 반복적인 학습을 통해 수행될 수 있다. 서로 상이한 해상도를 갖는 제1 샘플 데이터(X)와 제2 샘플 데이터(Z)를 입력 받은 후 이를 기초로 딥 러닝 트레이닝을 수행할 수 있다.
구체적으로, 제1 샘플 데이터(X)를 입력 데이터로 하여 딥 러닝 트레이닝을 수행한 제1 출력 데이터(Y)와 제2샘플 데이터(Z)를 비교하고 분석하여 생성된 파라미터를 기초로 더 높은 해상도의 베이어 데이터를 생성하는 알고리즘을 생성할 수 있다.
여기서 제1 출력 데이터(Y)는 실제 딥 러닝을 수행하여 출력된 데이터이고, 제2 샘플 데이터(Z)는 사용자가 입력하는 데이터로서, 제1 샘플 데이터(X)를 알고리즘에 입력하였을 때, 가장 이상적으로 출력될 수 있는 데이터를 의미할 수 있다. 여기서, 제1 샘플 데이터(X)는 제2 샘플 데이터(Z)를 다운 샘플링하여 해상도를 낮춘 데이터일 수 있다. 이때, 다운 샘플링 정도는, 딥 러닝을 통해 확대할 비율, 즉 디지털 줌을 수행할 줌 비율에 따라 달라질 수 있다. 예를 들어, 딥 러닝을 통해 수행될 줌 비율이 3 배이고, 제2 샘플 데이터(Z)의 해상도가 9MP(Mega Pixel)인 경우, 제1 샘플링 데이터(X)의 해상도가 1MP이어야, 딥 러닝을 수행하여 해상도가 3 배 커진 제1 출력 데이터(Y)의 해상도 9MP이 되는 바, 9M의 제2 샘플 데이터(Z)를 1/9로 다운 샘플링하여 1MP의 제1 샘플 데이터(Y)를 생성할 수 있다.
제1 샘플 데이터(X)의 입력에 따른 딥 러닝 수행을 통해 출력되는 제1 출력 데이터(Y)와 제2 샘플 데이터(Z)를 비교하고 분석하여 두 데이터 간 차이를 산출하고, 두 데이터 간 차이를 줄이는 방향으로 딥 러닝 모델의 파라미터에 피드백을 줄 수 있다. 이때, 두 데이터 간 차이는 손실 함수 중 하나인 평균 제곱 오차인 MSE(Mean Squared Error) 방식을 통해 산출될 수 있다. 이외에 CEE(Cross Entropy Error) 등 다양한 손실함수를 이용할 수 있다.
구체적으로, 출력 데이터에 영향을 주는 파라미터를 분석한 후, 파리미터를 변경하거나 삭제 또는 새로운 파라미터를 생성하는 방식으로 피드백을 주어 제2 샘플 데이터(Z)와 실제 출력 데이터인 제1 출력 데이터(Y)의 차이가 없도록 할 수 있다.
도 8에 도시된 바와 같이 알고리즘에 영향을 주는 레이어가 총 3개이고(L1, L2, L3) 각각의 레이어에 총 8개의 파라미터(P11, P12, P13, P21, P22, P31, P32)가 존재한다고 가정할 수 있다. 이러한 경우, P22 파라미터의 값을 증가시키는 방향으로 파라미터를 변경하였더니 제1 출력 데이터(Y)와 제2 샘플 데이터(Z)의 차이가 증가한다면, 피드백은 P22 파라미터를 감소시키는 방향으로 알고리즘을 변경할 수 있다. 이와 반대로, P33 파라미터의 값을 증가시키는 방향으로 파라미터를 변경하였더니 제1 출력 데이터(Y)와 제2 샘플 데이터(Z)의 차이가 감소하였다면, 피드백은 P33 파라미터를 증가시키는 방향으로 알고리즘을 변경할 수 있다.
즉, 이러한 방법을 통해 딥 러닝이 적용된 알고리즘은 제1 출력 데이터(Y)가 제2 샘플 데이터(Z)와 유사하게 출력되도록 파라미터를 도출할 수 있다. 이때, 제2 샘플 데이터(Z)의 해상도는 제1 출력 데이터(Y)의 해상도와 동일하거나 높을 수 있으며, 제2 샘플 데이터(Z)의 해상도는 제1 출력 데이터(Y)의 해상도와 동일할 수 있다.
딥 러닝 트레이닝은 도 8과 같이, 출력 결과와 비교 대상이 존재하고, 비교 대상과의 비교를 통해 학습을 수행하는 경우뿐만 아니라, 보상치를 이용하여 트레이닝을 수행할 수도 있다. 이 경우, 먼저 주변 환경을 인지하고 현재 환경 상태를 딥 러닝 트레이닝을 수행하는 프로세서에 전달할 수 있다. 프로세서는 이에 맞는 행동(Action)을 수행하고 환경은 다시 그 행동에 따른 보상치를 프로세서에게 알려준다. 그리고 프로세서는 보상치를 최대로 하는 행동을 택하게 된다. 이러한 과정에 통해 학습을 반복적으로 진행함으로써 트레이닝을 수행할 수 있다. 이외에도 다양한 딥 러닝 트레이닝 방법을 이용하여 딥 러닝 트레이닝을 수행할 수 있다.
일반적으로, 딥 러닝을 할 수 있는 프로세서를 소형의 칩으로 구현하기 위해서는 딥 러닝의 프로세스와 메모리 게이트(gate) 수가 최소화가 되어야 하는데, 여기서 게이트 수에 가장 크게 영향을 주는 요소는 알고리즘 복잡도와 클럭(Clock) 당 처리되는 데이터 양이며, 프로세서가 처리하는 데이터의 양은 입력 해상도에 따라 달라진다.
따라서, 일 실시예에 따른 프로세서(220)는 게이트의 수를 줄이기 위해 입력 해상도를 줄인 후에 나중에 업 스케일링(Up Scailing) 하는 방식으로 고배율의 이미지를 생성하므로 보다 빠르게 이미지를 생성할 수 있는 장점이 존재한다.
예를 들어, 입력 해상도가 8Mp(Mega Pixel)인 이미지를 2배 줌을 해야 한다면 1/4 영역 (2Mp)을 기초로 가로와 세로를 각각 2배씩 업 스케일링(Up scailing) 하여 2배 줌을 한다. 그리고 1/4영역(2Mp)을 1/4 다운 스케일링(down scaling) 하여 해상도가 0.5Mp인 이미지를 딥 러닝 처리 입력 데이터로 사용한 후에, 생성된 이미지를 기초로 가로와 세로를 각각 4배씩 업 스케일링(Up scailing) 하는 방식으로 4배 줌을 하면 2배줌을 한 것과 동일한 영역의 줌 영상을 생성할 수 있다.
따라서, 입력 해상도 손실에 따른 성능 저하를 방지하기 위해 딥 러닝이 해상도 손실에 대응되는 배율만큼 학습을 시켜서 이미지를 생성하므로, 성능 저하를 최소화할 수 있는 장점이 존재한다.
또한, 고해상도의 이미지를 구현하기 위한 딥 러닝 기반의 알고리즘들은 일반적으로 프레임 버퍼(Frame Buffer)를 사용하는데, 프레임 버퍼의 경우 일반 PC 및 서버에서는 그 특성상 실시간 구동이 어려울 수 있다.
그러나, 본 발명의 일 실시예에 따른 제1 처리부(121)는 딥 러닝을 통해 이미 생성되어 있는 알고리즘 적용하므로 저사양 카메라 모듈 및 이를 포함하는 여러 장치들에서 쉽게 적용이 가능하며, 이러한 알고리즘을 구체적으로 적용함에 있어서 몇 개의 라인 버퍼(Line Buffer)만을 사용하는 방식으로 고해상도를 구현하므로, 비교적 크기가 작은 소형 칩(Chip)으로 프로세서를 구현할 수 있는 효과 또한 존재한다.
제1 처리부(121)는 상기 제1 베이터 데이터를 라인별로 저장하는 적어도 하나의 라인 버퍼를 포함하고, 상기 라인 버퍼에 소정 개수 라인의 제1 베이어 데이터가 저장된 경우, 상기 라인 버퍼에 저장된 제1 베이어 데이터에 대한 제2 베이어 데이터 생성을 수행할 수 있다. 제1 처리부(121)는 제1 베이어 데이터를 라인별로 나누어 수신하는데, 라인별로 수신하는 제1 베이어 데이터를 라인 버퍼에 저장한다. 제1 처리부(121)는 모든 라인의 제1 베이어 데이터를 수신한 후, 제2 베이어 데이터를 생성하지 않고, 일정 개수 라인의 제1 베이어 데이터가 저장된 경우, 상기 라인 버퍼에 저장된 제1 베이어 데이터에 대한 제2 베이어 데이터 생성을 수행할 수 있다. 해상도를 9배 즉, 3 배 줌에 해당하는 해상도를 높이려는 경우, 3 개 라인의 제1 베이어 데이터가 라인 버퍼에 저장된 경우, 저장된 3 개 라인의 제1 베이어 데이터에 대한 제2 베이어 데이터를 생성한다. 라인 버퍼가 형성되는 구체적인 구성은 도 9를 참조하여 설명하도록 한다.
도 9를 참조하면, 제1 처리부(121)는 제1 베이어 데이터를 수신하는 복수 개의 라인 버퍼(11), 라인 버퍼를 통해 출력된 제1 베이어 데이터를 파장대역 별로 배열하는 제1 배열 데이터를 생성하는 제1 데이터 정렬부(221), 딥 러닝을 수행하는 딥 러닝 프로세서(222), 딥 러닝 프로세서(222)를 통해 출력된 제2 배열 데이터를 베이어 패턴으로 배열하여 제2 베이어 데이터를 생성하는 제2 데이터 정렬부(223) 및 제2 데이터 정렬부(223)를 통해 출력된 제2 베이어 데이터를 출력하는 복수 개의 라인 버퍼(12)를 포함할 수 있다.
제1 베이어 데이터는 앞서 설명한 베이어 패턴을 포함하고 있는 정보로서, 도 9에서 배이어 데이터로 기술하였지만, 베이어 이미지 또는 베이어 패턴으로 정의될 수도 있다.
또한, 도 9에서는 제1 데이터 정렬부(221)와 제2 데이터 정렬부(223)를 편의상 별개의 구성요소로 도시하였지만 이에 한정되는 것은 아니고, 딥러닝 프로세서(222)가 후술할 제1 데이터 정렬부(221)와 제2 데이터 정렬부(223)가 수행하는 기능을 수행할 수도 있다.
도 9를 참고하면, 제1 해상도의 제1 베이어 데이터는 사용자에 의해 선택된 영역에 대한 이미지 정보를 (n+1)개의 라인 버퍼(11a, 11b, ~ 11n. 11n+1)로 전송될 수 있다. 앞서 설명한 바와 같이 사용자에 의해 선택된 영역에 대해서만 제2 해상도의 베이어 이미지를 생성하므로 사용자에 의해 선택되지 않은 영역에 대한 이미지 정보는 라인 버퍼(11)로 송신되지 않는다.
구체적으로, 제1 베이어 데이터는 복수 개의 행 데이터를 포함하고 있고, 이러한 복수 개의 행 데이터는 복수 개의 라인 버퍼(11)를 통해 제1데이터 정렬부(221)로 송신될 수 있다.
예를 들어, 딥 러닝 프로세서(222)에 의해 딥 러닝을 수행해야 하는 영역이 3 X 3 영역이라면 총 3개의 라인이 제1 데이터 정렬부(221) 또는 딥 러닝 프로세서(222)로 동시에 송신되어야 딥 러닝을 수행할 수 있다. 따라서, 3 개의 라인 중 첫 번째 라인에 대한 정보는 제1 라인버퍼(11a)로 송신된 후, 제1 라인버퍼(11a) 저장되며, 3개의 라인 중 두 번째 라인에 대한 정보는 제2 라인버퍼(11b)로 송신된 후, 제2 라인버퍼(11b) 저장될 수 있다.
그 후 세 번째 라인의 경우, 이후로 수신되는 라인에 대한 정보가 없으므로 라인 버퍼(11)에 저장되지 않고 바로 딥 러닝 프로세서(222) 또는 제1 데이터 정렬부(221)로 송신될 수 있다.
이때, 제1 데이터 정렬부(221) 또는딥 러닝 프로세서(222)는 3개의 라인에 대한 정보를 동시에 수신해야 하므로 제1 라인 버퍼(11a)와 제2 라인 버퍼(11b)에 저장되어 있는 첫 번째 라인에 대한 정보와 두 번째 라인에 대한 정보도 동시에 딥 러닝 프로세서(222) 또는 제1 이미지 정렬부(219)로 송신될 수 있다.
이와 반대로, 딥 러닝 프로세서(222)에 의해 딥 러닝을 수행해야 하는 영역이 (N+1) x (N+1) 영역이라면 총 (N+1)개의 라인이 제1 데이터 정렬부(221) 또는 딥 러닝 프로세서(222)로 동시에 송신되어야 딥 러닝을 수행할 수 있다. 따라서, (N+1)개의 라인 중 첫 번째 라인에 대한 정보는 제1 라인버퍼(11a)로 송신된 후, 제1 라인버퍼(11a) 저장되며, (N+1) 개의 라인 중 두 번째 라인에 대한 정보는 제2 라인버퍼(11b)로 송신된 후, 제2 라인버퍼(11b) 저장될 수 있으며, (N+1) 개의 라인 중 N 번째 라인에 대한 정보는 제N 라인버퍼(11n)로 송신된 후, 제N 라인버퍼(11n) 저장될 수 있다.
그 후 (N+1) 번째 라인의 경우, 이후로 수신되는 라인에 대한 정보가 없으므로 라인 버퍼(11)에 저장되지 않고 바로 딥 러닝 프로세서(222) 또는 제1 데이터 정렬부(221)로 송신될 수 있으며, 앞서 설명한 바와 같이 이때, 제1 데이터 정렬부(221) 또는 딥 러닝 프로세서(222)는 N+1개의 라인에 대한 정보를 동시에 수신해야 하므로 라인 버퍼(11a~11n)에 저장되어 있는 첫 번째 라인부터 n번째 라인에 대한 정보도 동시에 딥 러닝 프로세서(222) 또는 제1 이미지 정렬부(219)로 송신될 수 있다.
제1 이미지 정렬부(219)는 라인 버퍼(11)로부터 베이어 데이터를 수신한 후 베이어 데이터를 파장대역 별로 배열하여 제1 배열 데이터를 생성한 후, 생성된 제1 배열 데이터를 딥 러닝 프로세서(222)로 송신할 수 있다.
제1 이미지 정렬부(219)는 수신한 정보를 특정 파장 또는 특정 색상별(Red, Green, Blue)로 분류하여 배열한 제1 배열 데이터를 생성할 수 도 있다.
그 후, 딥 러닝 프로세서(222)는 제1 이미지 정렬부(219)를 통해 수신한 제1배열 데이터를 기초로 딥 러닝을 수행하여 제2 배열 데이터를 생성할 수 있다.
따라서, 딥 러닝 프로세서(222)는 제1 이미지 정렬부(219)를 통해 수신한 제1 배열 데이터를 기초로 딥 러닝을 수행하여 제1 해상보다 높은 해상도의 제2 해상도의 제2 배열 데이터를 생성할 수 있다.
예를 들어, 앞서 설명한 바와 같이 3 x 3 영역에 대해 제1 배열 데이터를 수신하면 3 x 3 영역에 대해서 딥 러닝을 수행하고, (n+1) x (n+1) 영역에 대해 제1배열 데이터를 수신하면 (n+1) x (n+1) 영역에 대해서 딥 러닝을 수행할 수 있다.
그 후, 딥 러닝 프로세서(222)에 의해 생성된 제2 배열 데이터는 제2 데이터 정렬부(223)로 송신되며, 제2 데이터 정렬부(223)는 제2 배열 데이터를 베이어 패턴을 가지는 제2 베이어 데이터로 변환시킬 수 있다.
그 후 변환된 제2 베이어 데이터는 복수 개의 라인 버퍼(12a)를 통해 외부로 출력되며, 출력된 제2 베이어 데이터는 또 다른 과정의 의해 제1 해상도보다 높은 해상도인 제2 해상도를 가지고 있는 베이어 데이터로 생성할 수 있다.
도 10 및 도 11은 제1 처리부(121)에 의해 제1 해상도의 제1 베이어 데이터의 이미지가 제2 해상도의 제2 베이어 데이터로 변환된 이미지를 도시한 도면이다.
제1 해상도의 베이어 데이터(10)에서 사용자가 특정 영역을 선택한 경우, 그 영역에 대해 제1 처리부(121)는 해상도를 변환하는 딥 러닝을 수행하고, 그 결과 도 10 및 도 11에 도시된 바와 같이 제2 해상도의 베이어 데이터(40)가 생성될 수 있다.
제1 처리부(121)는 상기 제2 베이어 데이터를 전처리할 수 있다. 제1 처리부(121)는 제1 해상도의 제1 베이어 데이터를 이용하여 제2 해상도의 제2 베이어 데이터를 생성하고, 생성된 제2 베이어 데이터에 대한 전처리를 수행할 수 있다. 이때, 제1 처리부(121)는 화이트 발란스(white balance), 디노이징(de-nosing), 디포커스(de-focus), 디블러(de-blur), 디모자이크(di-mosaic) 중 적어도 하나 이상을 수행할 수 있다. 이외에도, 전처리에 해당하는 다양한 전처리를 수행할 수 있다.
제1 처리부(121)에서 베이어 데이터의 해상도를 높이는 슈퍼 레졸루션뿐만 아니라, 제2 처리부(122)에서 처리할 수 있는 이미지 전처리를 수행함으로써 제2 처리부(122)의 연산량을 줄일 수 있다. 즉, 제2 처리부(122)의 전처리 기능을 제1 처리부(121)가 수행하여 기능을 분담하여, ISP의 부담을 줄일 수 있다. 제1 처리부(121)는 전처리를 수행하는 전처리부를 더 포함할 수도 있다.
이때, 제1 처리부(121)는 딥 러닝을 수행하여 상기 제2 베이어 데이터를 전처리할 수 있다. 제1 처리부(121)가 수행하는 전처리 과정 중 베이어 데이터의 해상도를 높이는 과정과 동일한 딥 러닝 네트워크를 이용하여 처리할 수 있는 전처리 과정이 있는 경우, 해당 전처리 과정에 대한 딥 러닝 파라미터를 저장하고, 해당 딥 러닝 파라미터를 이용하여 전처리 과정을 수행할 수 있다. 하나 이상의 전처리 과정에 대한 별도의 딥 러닝 네트워크 및 해당 딥 러닝 파라미터들을 저장하는 메모리를 포함할 수도 있다.
제1 처리부(121)는 상기 제2 베이터 데이터를 전처리하여 RGB 이미지 또는 ycbcr 이미지를 생성할 수 있다. 제2 해상도를 가지는 제2 베이어 데이터에 대해 전처리를 수행함으로써 전처리된 제3 베이어 데이터를 생성하거나, 나아가, 전처리를 통해 RGB 이미지 또는 RGB 이미지에서 변환된 ycbcr 이미지를 생성할 수 있다. 제1 처리부(121)는 복수의 전처리 과정을 수행하되, 수행되는 전처리 과정에 따라 다양한 데이터를 출력할 수 있다. 즉, 제2 베이어 데이터로부터 RGB 이미지 이전에 해당하는 제3 베이어 데이터를 생성할 수 있다. 제3 베이어 데이터는 RGB 이미지는 아니나, 화이트 발란스와 같은 전처리를 통해, 화이트 발란스가 수행된 베이어 데이터인 제3 베이어 데이터를 생성할 수 있다. 또는, 제2 베이어 데이터에 대해 RGB 이미지를 생성하기 위한 전처리 과정들을 수행하여 RGB 이미지를 생성할 수 있다. 나아가, 상기와 같이 생성된 RGB 이미지를 ycbcr 변환을 통해 ycbcr 이미지를 생성할 수 있다. RGB 이미지에서 ycbcr 이미지로 변환한 경우, 디스플레이 상에 바로 ycbcr 이미지를 표시할 수 있다.
제1 처리부(121)에서 수행되는 전처리과정은 사용자의 설정, 사용환경, 또는 제2 처리부(122)인 ISP의 작업상태에 따라 달라질 수 있다. 제1 처리부(121)는 전처리를 수행하여 제2 처리부(122)인 ISP의 기능을 분담하고, 이는 사용자의 설정에 따라 어떤 전처리 과정을 제1 처리부(121)에서 수행할지 설정될 수 있다. 또는, 사용환경이나, ISP의 현재 작업상황에 따라 ISP 기능의 분담이 필요한 경우 제1 처리부(121)에서 어떤 전처리 과정을 수행할지 설정될 수 있다. 이는 하나 이상의 프로세서에서 환경 정보들을 수신하여 제1 처리부(121)에서의 전처리 수행 설정값을 결정할 수 있다. 또는, 룩업 테이블(LUT)로 환경 정보 등에 따른 설정값들을 저장하여, 제1 처리부(121)에서의 전처리 수행 설정값을 적용할 수 있다.
본 발명의 다른 실시예에 따른 이미지 처리 장치(1100)는 도 12와 같이, 카메라 모듈(1110), 베이어 데이터 처리모듈(1120), 및 AP 모듈(1130)로 구성될 수 있다. 도 1 또는 도 4의 이미지 처리 장치(130)의 제1 처리부(121)를 AP 모듈 내가 아닌 별도의 모듈인 베이어 데이터 처리모듈(1120)로 구성할 수 있다. 베이어 데이터 처리모듈(1120)을 AP 모듈(1130)과 별도의 모듈로 구현하는 것 이외에는 도 12의 이미지 처리 장치(1100)에서 수행되는 이미지 처리 과정은 도 1의 이미지 처리 장치(130)에서 수행되는 이미지 처리 과정과 대응되는바, 이하, 도 12의 이미지 처리 장치(1100)에 대해 도 1의 이미지 처리 장치(130)에서 수행되는 이미지 처리 과정과 중복되는 설명은 생략하여 간략하게 설명하도록 한다.
카메라 모듈(1110)은 이미지 센서를 포함하고, 베이어 데이터 처리모듈(1120)은 카메라 모듈(1110)로부터 출력되는 제1 해상도의 제1 베이어 데이터를 이용하여 제2 해상도의 제2 베이어 데이터를 생성한다. 베이어 데이터 처리모듈(1120)은, AP 모듈(1130)과 구분되는 별도의 칩 형태로 구현될 수 있다.
베이어 데이터 처리모듈(1120)은 딥 러닝을 수행하여 상기 제1 베이어 데이터로부터 상기 제2 베이어 데이터를 생성할 수 있고, 베이어 데이터 처리모듈(1120)은, 상기 제2 베이어 데이터를 전처리하는 전처리부를 포함할 수 있다. 이때, 전처리부는 딥 러닝을 수행하여 상기 제2 베이어 데이터를 전처리함으로써, 제3 베이어 데이터, RGB 이미지, 또는 ycbcr 이미지 중 어느 하나를 생성할 수 있다.
AP 모듈(1130)은 베이어 데이터 처리모듈(1120)로부터 출력되는 출력 데이터를 수신하여 이미지 처리를 수행한다.
본 발명의 또 다른 실시예에 따른 이미지 처리 장치는 제1 해상도의 제1 베이어 데이터를 이용하여 제2 해상도의 제2 베이어 데이터를 생성하는 제1 처리부를 포함하되, 상기 제1 처리부는 AP 모듈에 형성되는 이미지 신호 처리부와 구분되어 형성될 수 있다. 여기서, 제1 처리부(121)는 도 1 또는 도 4의 이미지 처리 장치(130)의 제1 처리부(121), 도 12의 이미지 처리 장치(1100)의 베이어 데이터 처리모듈(1120)에 대응되는 구성으로, 본 발명의 또 다른 실시예에 따른 이미지 처리 장치는 제1 처리부를 포함할 수 있고, 제1 처리부는 딥 러닝을 수행하여 상기 제1 베이어 데이터로부터 상기 제2 베이어 데이터를 생성할 수 있고, 상기 제2 베이어 데이터를 전처리하는 전처리부를 포함할 수 있다. 이때, 전처리부는 딥 러닝을 수행하여 상기 제2 베이어 데이터를 전처리함으로써, 제3 베이어 데이터, RGB 이미지, 또는 ycbcr 이미지 중 어느 하나를 생성할 수 있다.
도 13은 본 발명의 일 실시예에 따른 이미지 처리 방법의 흐름도이고, 도 14는 본 발명의 다른 실시예에 따른 이미지 처리 방법의 흐름도이다. 도 13 내지 도 14의 각 단계에 대한 상세한 설명은 도 1 내지 도 12의 이미지 처리 장치에 대한 상세한 설명에 대응되는바, 이하, 중복되는 설명은 생략하도록 한다.
본 발명의 일 실시예에 따른 이미지 처리 방법은 하나 이상의 프로세서를 포함하는 이미지 처리 장치에서 이미지를 처리하는 방법에 관한 것이다.
S11 단계에서, 제1 해상도를 가지는 제1 베이어 데이터를 수신하고, S12 단계에서 딥 러닝을 수행하여 S13 단계에서 제2 해상도를 가지는 제2 베이어 데이터를 생성한다.
S13 단계 이후, S21 단계에서 제2 베이어 데이터에 대해 전처리를 수행할 수 있고, 전처리를 수행한 이후, S22 단계에서 제3 베이어 데이터, RGB 이미지 또는 ycbcr 이미지 중 어느 하나를 생성하는 단계를 더 포함할 수 있다. 이후, 이미지 신호 처리를 통해 디스플레이에 출력될 수 있는 이미지를 생성할 수 있는 단계를 더 포함할 수 있다.
한편, 본 발명의 실시예들은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다.
컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고 본 발명을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술 분야의 프로그래머들에 의하여 용이하게 추론될 수 있다.
이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.
100, 1100: 이미지 처리 장치
110, 1110: 카메라 모듈
111: 렌즈
112: 이미지 센서
113: 센서 보드
114: 커넥터
120, 1130: AP 모듈
121: 제1 처리부
122: 제2 처리부
1120: 베이어 데이터 처리모듈

Claims (13)

  1. 이미지 센서를 포함하는 카메라 모듈; 및
    상기 카메라 모듈로부터 출력되는 제1 출력 데이터를 수신하는 AP 모듈을 포함하고,
    상기 제1 출력 데이터는 상기 이미지 센서로부터 출력되는 제1 베이어 데이터이고,
    상기 AP 모듈은 제1 처리부와 제2 처리부를 포함하고,
    상기 제1 처리부는 제1 해상도의 상기 제1 베이어 데이터를 이용하여 제2 해상도의 제2 베이어 데이터를 생성하고,
    상기 제2 처리부는, 상기 제1 처리부로부터 출력되는 제2 출력 데이터를 수신하여 이미지 처리를 수행하는 것을 특징으로 하는 이미지 처리 장치.
  2. 제1항에 있어서,
    상기 제1 처리부는,
    상기 제2 처리부와 구분되는 칩 형태로 구현되는 것을 특징으로 하는 이미지 처리 장치.
  3. 제1항에 있어서,
    상기 제1 처리부는,
    상기 AP 모듈 상에 상기 제2 처리부와 구분되는 IP 블록 형태로 구현되는 것을 특징으로 하는 이미지 처리 장치.
  4. 제1항에 있어서,
    상기 제1 처리부는,
    딥 러닝을 수행하여 상기 제1 베이어 데이터로부터 상기 제2 베이어 데이터를 생성하는 것을 특징으로 하는 이미지 처리 장치.
  5. 제1항에 있어서,
    상기 제1 처리부는,
    상기 제2 베이어 데이터를 전처리하는 것을 특징으로 하는 이미지 처리 장치.
  6. 제5항에 있어서,
    상기 제1 처리부는,
    딥 러닝을 수행하여 상기 제2 베이어 데이터를 전처리하는 것을 특징으로 하는 이미지 처리 장치.
  7. 제5항에 있어서,
    상기 제1 처리부는,
    상기 제2 베이터 데이터를 전처리하여 RGB 이미지 또는 ycbcr 이미지를 생성하는 것을 특징으로 하는 이미지 처리 장치.
  8. 제5항에 있어서,
    상기 제1 처리부는,
    화이트 발란스(white balance), 디노이징(de-nosing), 디포커스(de-focus), 디블러(de-blur), 디모자이크(di-mosaic) 중 적어도 하나 이상을 수행하는 것을 특징으로 하는 이미지 처리 장치.
  9. 이미지 센서를 포함하는 카메라 모듈;
    상기 카메라 모듈로부터 출력되는 제1 해상도의 제1 베이어 데이터를 이용하여 제2 해상도의 제2 베이어 데이터를 생성하는 베이어 데이터 처리모듈; 및
    상기 베이어 데이터 처리모듈로부터 출력되는 출력 데이터를 수신하여 이미지 처리를 수행하는 AP 모듈을 포함하는 이미지 처리 장치.
  10. 제9항에 있어서,
    상기 베이어 데이터 처리모듈은,
    상기 AP 모듈과 구분되는 별도의 칩 형태로 구현되는 것을 특징으로 하는 이미지 처리 장치.
  11. 제9항에 있어서,
    상기 베이어 데이터 처리모듈은,
    딥 러닝을 수행하여 상기 제1 베이어 데이터로부터 상기 제2 베이어 데이터를 생성하는 것을 특징으로 하는 이미지 처리 장치.
  12. 제9항에 있어서,
    상기 베이어 데이터 처리모듈은,
    상기 제2 베이어 데이터를 전처리하는 전처리부를 포함하는 이미지 처리 장치.
  13. 제12항에 있어서,
    상기 전처리부는,
    딥 러닝을 수행하여 상기 제2 베이어 데이터를 전처리함으로써, 제3 베이어 데이터, RGB 이미지, 또는 ycbcr 이미지 중 어느 하나를 생성하는 것을 특징으로 하는 이미지 처리 장치.
KR1020190130677A 2019-06-13 2019-10-21 이미지 처리 장치 및 이미지 처리 방법 KR20210047070A (ko)

Priority Applications (7)

Application Number Priority Date Filing Date Title
KR1020190130677A KR20210047070A (ko) 2019-10-21 2019-10-21 이미지 처리 장치 및 이미지 처리 방법
PCT/KR2020/007738 WO2020251337A1 (ko) 2019-06-13 2020-06-15 카메라 장치 및 카메라 장치의 이미지 생성 방법
JP2021572932A JP2022536327A (ja) 2019-06-13 2020-06-15 カメラ装置及びカメラ装置のイメージ生成方法
TW109120316A TW202105028A (zh) 2019-06-13 2020-06-15 相機裝置及相機裝置之影像產生方法
EP20823426.0A EP3985961A4 (en) 2019-06-13 2020-06-15 CAMERA DEVICE AND METHOD FOR GENERATING CAMERA DEVICE IMAGES
US17/617,832 US20220253978A1 (en) 2019-06-13 2020-06-15 Camera device and image generation method of camera device
CN202080057178.3A CN114270799B (zh) 2019-06-13 2020-06-15 相机装置以及相机装置的图像生成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190130677A KR20210047070A (ko) 2019-10-21 2019-10-21 이미지 처리 장치 및 이미지 처리 방법

Publications (1)

Publication Number Publication Date
KR20210047070A true KR20210047070A (ko) 2021-04-29

Family

ID=75728217

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190130677A KR20210047070A (ko) 2019-06-13 2019-10-21 이미지 처리 장치 및 이미지 처리 방법

Country Status (1)

Country Link
KR (1) KR20210047070A (ko)

Similar Documents

Publication Publication Date Title
US11983846B2 (en) Machine learning based image adjustment
CN103428427B (zh) 影像尺寸重新调整方法以及影像尺寸重新调整装置
EP4030379A1 (en) Image processing method, smart device, and computer-readable storage medium
KR20180126362A (ko) 동영상의 초해상 처리 방법 및 이를 위한 영상 처리 장치
CN115004680A (zh) 图像处理装置和图像处理方法
KR102242939B1 (ko) 카메라 장치 및 카메라 장치의 이미지 생성 방법
US7212214B2 (en) Apparatuses and methods for interpolating missing colors
KR102494123B1 (ko) 이미지 센서, 카메라 모듈 및 카메라 모듈을 포함하는 광학 기기
KR20210047070A (ko) 이미지 처리 장치 및 이미지 처리 방법
EP4013039A1 (en) Image sensor, camera module, and optical device comprising camera module
JP5171287B2 (ja) データ処理装置
US20220253978A1 (en) Camera device and image generation method of camera device
US20220417428A1 (en) Camera device and image generation method of camera device
KR102371944B1 (ko) 카메라 장치 및 카메라 장치의 이미지 생성 방법
CN109309788A (zh) 多镜头图像拼接装置及方法
JP4293261B2 (ja) 画像撮影装置
KR20210044648A (ko) 영상 처리 장치 및 이를 포함하는 광학 기기
US20240119561A1 (en) Image processing device and image processing method
US11363209B1 (en) Systems and methods for camera zoom
KR20220159853A (ko) 이미지 센서
US20240013362A1 (en) Image processing method, image processing apparatus, learning apparatus, manufacturing method of learned model, and storage medium
KR20240035992A (ko) 현저성에 기초한 초해상도

Legal Events

Date Code Title Description
E902 Notification of reason for refusal