KR102266903B1 - 영상 처리 장치 및 그 동작방법 - Google Patents

영상 처리 장치 및 그 동작방법 Download PDF

Info

Publication number
KR102266903B1
KR102266903B1 KR1020190057605A KR20190057605A KR102266903B1 KR 102266903 B1 KR102266903 B1 KR 102266903B1 KR 1020190057605 A KR1020190057605 A KR 1020190057605A KR 20190057605 A KR20190057605 A KR 20190057605A KR 102266903 B1 KR102266903 B1 KR 102266903B1
Authority
KR
South Korea
Prior art keywords
image
value
pixels
pixel
index
Prior art date
Application number
KR1020190057605A
Other languages
English (en)
Other versions
KR20200132306A (ko
Inventor
안일준
이태미
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020190057605A priority Critical patent/KR102266903B1/ko
Priority to PCT/KR2020/004596 priority patent/WO2020231006A1/ko
Priority to US17/293,806 priority patent/US20220375027A1/en
Publication of KR20200132306A publication Critical patent/KR20200132306A/ko
Application granted granted Critical
Publication of KR102266903B1 publication Critical patent/KR102266903B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4046Scaling of whole images or parts thereof, e.g. expanding or contracting using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/10Machine learning using kernel methods, e.g. support vector machines [SVM]
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4053Scaling of whole images or parts thereof, e.g. expanding or contracting based on super-resolution, i.e. the output image resolution being higher than the sensor resolution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/254Analysis of motion involving subtraction of images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20212Image combination
    • G06T2207/20224Image subtraction

Landscapes

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

Abstract

영상 처리 장치에 관한 것으로, 하나 이상의 인스트럭션들을 저장하는 메모리 및 메모리에 저장된 하나 이상의 인스트럭션들을 실행하는 프로세서를 포함하고, 프로세서는, 제1 영상에 포함되는 픽셀들과 제2 영상에 포함되는 픽셀들의 상대적인 위치 관계 및 상기 제1 영상에 포함되는 픽셀들의 값에 기초하여, 위치 변환 특징 정보를 획득하며, 위치 변환 특징 정보와 커널과의 컨볼루션 연산을 수행함으로써, 제1 영상을 k배 업 스케일한 제2 영상을 생성하며, 상기 k는 실수인 영상 처리 장치가 개시된다.

Description

영상 처리 장치 및 그 동작방법{Image processing apparatus and operating method for the same}
다양한 실시예들은 영상을 업 스케일하는 디컨볼루션을 수행하는 영상 처리 장치 및 그 동작방법에 관한 것이다.
컴퓨터 기술의 발달과 함께 데이터 트래픽이 지수함수 형태로 증가하면서 인공지능은 미래 혁신을 주도하는 중요한 트랜드로 자리잡았다. 인공지능은 사람의 사고방식을 모방하는 방식이기 때문에 사실상 전 산업에 무한하게 응용이 가능하다. 인공지능의 대표적인 기술로는 패턴 인식, 기계 학습, 전문가 시스템, 뉴럴 네트워크, 자연어 처리 등이 있다.
뉴럴 네트워크는 인간의 생물학적 신경 세포의 특성을 수학적 표현에 의해 모델링한 것으로, 인간이 가지고 있는 학습이라는 능력을 모방한 알고리즘을 이용한다. 이 알고리즘을 통하여, 뉴럴 네트워크는 입력 데이터와 출력 데이터 사이의 사상(mapping)을 생성할 수 있고, 이러한 사상을 생성하는 능력은 뉴럴 네트워크의 학습 능력이라고 표현될 수 있다. 또한, 뉴럴 네트워크는 학습된 결과에 기초하여, 학습에 이용되지 않았던 입력 데이터에 대하여, 올바른 출력 데이터를 생성할 수 있는 일반화 능력을 가진다.
컨볼루션 뉴럴 네트워크(CNN: Convolution Neural Network) 등에서, 입력 영상의 크기보다 큰 출력 영상을 생성하기 위해 디컨볼루션 레이어가 이용될 수 있다. 그러나, 디컨볼루션 레이어를 이용하여 영상을 비 정수배 업 스케일하는 경우, 디컨볼루션 연산에 적용되는 커널의 개수가, 정수 배 업 스케일의 경우보다 많아지게 된다. 이에 따라, 디컨볼루션 연산에 필요한 메모리가 증가하며, 병렬 처리를 할 수 없게 되어, 연산량이 증가하고, 연산의 속도가 느려지는 문제점이 있다.
다양한 실시예들은, 비-정수 배 업 스케일을 위한 디컨볼루션 수행 시, 필요한 연산량 및 메모리를 감소시킬 수 있는 영상 처리 장치 및 그 동작방법을 제공할 수 있다.
일 실시예에 따른 영상 처리 장치는 하나 이상의 인스트럭션들을 저장하는 메모리 및 상기 메모리에 저장된 상기 하나 이상의 인스트럭션들을 실행하는 프로세서를 포함하고, 상기 프로세서는, 제1 영상에 포함되는 픽셀들과 제2 영상에 포함되는 픽셀들의 상대적인 위치 관계 및 상기 제1 영상에 포함되는 픽셀들의 값에 기초하여, 위치 변환 특징 정보를 획득하며, 상기 위치 변환 특징 정보와 커널과의 컨볼루션 연산을 수행함으로써, 상기 제1 영상을 k배 업 스케일한 제2 영상을 생성하며, 상기 k는 실수이다.
일 실시예에 따른 k는 정수가 아닌 실수일 수 있다.
일 실시예에 따른 커널에 포함되는 가중치 값들은, 상기 컨볼루션 연산이 수행되는 상기 위치 변환 특징 정보에 포함되는 샘플 값들의 위치에 따라, 변하지 않는다.
일 실시예에 따른 프로세서는, 상기 제1 영상에 포함되는 복수의 픽셀들 중 n개의 픽셀들의 값을 이용하여, 상기 제2 영상에서의 하나의 픽셀 값을 획득하며, 상기 하나의 픽셀의 위치에 대한 상기 n개의 픽셀들의 상대적인 위치 관계에 기초하여, 상기 위치 변환 특징 정보를 획득할 수 있다.
일 실시예에 따른 제1 영상과 상기 제2 영상을 동일한 크기로 가정하여, 상기 제1 영상에 포함되는 픽셀들의 위치를 인덱스 i(i= 정수)로 나타내고, 상기 제2 영상에 포함되는 픽셀들의 위치를 인덱스 j(j=실수)로 나타내며, 상기 프로세서는, 상기 하나의 픽셀이 나타내는 인덱스 값에 버림 연산을 수행하여, kj(kj=정수)를 결정하고, 상기 j와 kj의 차이 값인 uj를 결정하고, 상기 kj와 uj에 기초하여, 상기 위치 변환 특징 정보를 획득할 수 있다.
일 실시예에 따른 제1 영상에 포함되는 인접하는 픽셀들 사이의 거리는 1일 수 있다.
일 실시예에 따른 n개의 픽셀들은, 상기 하나의 픽셀이 나타내는 인덱스 j값에 기초하여, 결정될 수 있다.
일 실시예에 따른 위치 변환 특징 정보에 포함되는 샘플 값들은, 상기 u에 대한 선형식으로 표현될 수 있다.
일 실시예에 따른 커널에 포함되는 가중치들의 개수는, 상기 n의 값에 기초하여 결정될 수 있다.
일 실시예에 따른 영상 처리 장치의 동작방법은, 제1 영상에 포함되는 픽셀들과 제2 영상에 포함되는 픽셀들의 상대적인 위치 관계 및 상기 제1 영상에 포함되는 픽셀들의 값에 기초하여, 위치 변환 특징 정보를 획득하는 단계, 및 상기 위치 변환 특징 정보와 커널과의 컨볼루션 연산을 수행함으로써, 상기 제1 영상을 k배 업 스케일한 제2 영상을 생성하는 단계를 포함하며, 상기 k는 실수이다.
일 실시예에 따른 영상 처리 장치는, 비-정수 배 업 스케일을 위한 디컨볼루션 연산에 필요한 커널들의 개수를 감소시킬 수 있다.
일 실시예에 따른 영상 처리 장치는, 비-정수배 업 스케일을 위한 디컨볼루션 수행 시 필요한 연산량 및 메모리를 감소할 수 있으며, 연산 속도를 빠르게 할 수 있다.
일 실시예에 따른 영상 처리 장치는, 비-정수 배 업 스케일을 위한 디컨볼루션 연산을 수행함으로써, 다양한 크기(해상도)로 영상을 업 스케일할 수 있다.
일 실시예에 따른 영상 처리 장치는, 비-정수 배 업 스케일을 위한 디컨볼루션 연산을 수행함으로써, 고품질의 업 스케일된 영상을 생성할 수 있다.
도 1은 일 실시예에 따른 영상 처리 장치가 디컨볼루션 연산을 이용하여 영상을 생성하는 방법을 나타내는 도면이다.
도 2는 일 실시예에 따라 영상을 비 정수 배 업 스케일하는 경우를 설명하기 위한 도면이다.
도 3은 일 실시예에 따른 제1 영상을 정수 배 업 스케일하는 경우와 정수가 아닌 실수 배로 업 스케일하는 경우를 나타내는 도면이다.
도 4는 일 실시예에 따른 제1 영상을 업 스케일하기 위한 디컨볼루션에 적용되는 커널에 포함되는 가중치들의 경향성을 결정하는 방법을 설명하기 위한 도면이다.
도 5는 일 실시예에 따른 제1 영상을 업 스케일하기 위한 디컨볼루션에 적용되는 커널을 모델링하는 방법을 설명하기 위한 도면이다.
도 6은, 일 실시예에 따른 제1 영상을 비-정수 배 업 스케일하기 위한 디컨볼루션을 나타내는 도면이다.
도 7은 일 실시예에 따른 영상 처리 장치가 제1 영상을 업 스케일하기 위해 디컨볼루션을 수행하는 과정을 설명하기 위한 도면이다.
도 8은, 일 실시예에 따른, 변환 특징 정보들을 생성하는 방법을 설명하기 위한 도면이다.
도 9 및 도 10은, 일 실시예에 따른 영상 처리 장치가 제1 영상을 업 스케일하기 위하여, 도 7의 디컨볼루션과 다른 디컨볼루션을 수행하는 과정을 설명하기 위한 도면들이다.
도 11은 일 실시예에 따른 영상 처리 장치의 동작방법을 나타내는 흐름도이다.
도 12는 일 실시예에 따른 영상 처리 장치의 구성을 나타내는 블록도이다.
본 명세서에서 사용되는 용어에 대해 간략히 설명하고, 본 발명에 대해 구체적으로 설명하기로 한다.
본 발명에서 사용되는 용어는 본 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 발명에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 발명의 전반에 걸친 내용을 토대로 정의되어야 한다.
명세서 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 명세서에 기재된 "...부", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.
아래에서는 첨부한 도면을 참고하여 실시예들에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
도 1은 일 실시예에 따른 영상 처리 장치가 디컨볼루션 연산을 이용하여 영상을 생성하는 방법을 나타내는 도면이다.
도 1을 참조하면, 일 실시예에 따른 영상 처리 장치(100)는 뉴럴 네트워크(Neural Network)(30)를 이용하여, 영상을 생성할 수 있다. 영상 처리 장치(100)는 뉴럴 네트워크(30)를 이용하여, 제1 영상(10, input)에 대한 특징 정보를 추출하고, 추출된 특징 정보에 기초하여, 제2 영상(20, output)을 생성할 수 있다.
뉴럴 네트워크(30)는 하나 이상의 디컨볼루션(deconvolution) 레이어들을 포함할 수 있으며, 디컨볼루션 레이어들 각각에서는, 디컨볼루션 레이어에 입력된 영상(input)과 커널(kernel)의 디컨볼루션(deconvolution) 연산을 수행할 수 있으며, 디컨볼루션 연산 결과, 출력 영상(output)을 생성할 수 있다.
디컨볼루션 연산은, 컨볼루션 뉴럴 네트워크(CNN: Convolution Neural Network)에서, 일반적으로 입력 영상을 업 스케일하기 위해 이용될 수 있으며, 예를 들어, 초 해상도(super-resoultion) 영상 생성, 자동-엔코더(auto-encoder), 스타일 변환(style transfer) 등 다양한 분야에 이용될 수 있다. 다만, 이에 한정되지 않는다.
디컨볼루션 연산 결과 생성된 업 스케일된 제2 영상(20, output)의 크기는 제1 영상(10, input)의 크기보다 크다.
한편, 제1 영상을 정수 배가 아닌 실수 배(비-정수 배) 업 스케일하고자 하는 경우가 발생할 수 있다.
도 2는 일 실시예에 따라 영상을 비 정수 배 업 스케일하는 경우를 설명하기 위한 도면이다.
도 2를 참조하면, 영상이 표시되는 디스플레이는 모듈 단위로 구성될 수 있으며, 이때, 모듈을 조합하는 방법에 따라 디스플레이의 크기가 다양하게 결정될 수 있다. 예를 들어, 모듈 하나(201)의 크기가 9.8인치, 480x270의 해상도를 가지는 경우, 8 x 8 모듈들을 포함하는 Ultra-HD(4K) 해상도를 가지는 제1 디스플레이(210)를 구성할 수 있다. 또는, 9 x 9 모듈들을 포함하는 4320 x 2430의 해상도(예를 들어, 약 4.5K 해상도)를 가지는 제2 디스플레이(220)를 구성할 수 있다.
이때, 제1 디스플레이(210)에 출력할 수 있는, 4K 해상도를 가지는 영상을 제2 디스플레이(220)에 출력하고자 하는 경우, 4K 해상도를 가지는 영상을 9/8배 업 스케일할 필요가 있다.
이와 같이, 디컨볼루션 연산을 이용하여, 영상을 정수 배가 아닌 실수 배(비-정수 배)로 업 스케일하는 경우, 디컨볼루션 연산에 필요한 커널의 개수는 정수 배로 업 스케일하는 경우보다 증가할 수 있다. 이에 대해서는, 도 3을 참조하여 설명하기로 한다.
도 3은 일 실시예에 따른 제1 영상을 정수 배 업 스케일하는 경우와 정수가 아닌 실수 배로 업 스케일하는 경우를 나타내는 도면이다.
도 3의 (a)는, 제1 영상(LR)을 정수 배(예를 들어, 2배)로 업 스케일하는 경우를 나타낸다. 도 3의 (a)를 참조하면, 제1 영상을 2배로 업 스케일하여 생성된 제2 영상(HR)에 포함되는 픽셀들의 개수는, 제1 영상에 포함된 픽셀들의 개수보다 2배 증가한다.
예를 들어, 제1 영상에 포함되는 제1 픽셀(P1) 값과 제2 픽셀(P2) 값에 기초하여, 제2 영상에 포함되는 제4 픽셀(P4) 값이 결정되며, 제1 픽셀(P1) 값과 제2 픽셀(P2) 값에 제1 커널(K0)을 적용하여, 컨볼루션 연산함으로써, 제4 픽셀(P4) 값이 계산될 수 있다. 이때, 제1 커널(K0)은, 제1 픽셀(P1) 값과 제2 픽셀(P2) 값에 적용되는 가중치 값들을 포함하며, 가중치 값들은 제4 픽셀(P4)에 대한 제1 픽셀(P1) 및 제2 픽셀(P2)의 상대적인 위치들에 기초하여 결정될 수 있으나, 이에 한정되지 않는다.
또한, 제1 영상에 포함되는 제1 내지 제3 픽셀(P1, P2, P3) 값들에 기초하여, 제2 영상에 포함되는 제5 픽셀(P5) 값이 결정되며, 제1 내지 제3 픽셀(P1, P2, P3) 값들에 제2 커널(K1)을 적용하여 컨볼루션 연산함으로써, 제5 픽셀(P5) 값이 계산될 수 있다. 이때, 제2 커널(K1)은 제1 내지 제3 픽셀(P1, P2, P3) 값들에 적용되는 가중치 값들을 포함하며, 가중치 값들은 제 5 픽셀(P5)에 대한 제1 내지 제3 픽셀들(P1, P2, P3)의 상대적인 위치들에 기초하여, 결정될 수 있으나, 이에 한정되지 않는다.
한편, 도 3의 (a)를 참조하면, 제4 픽셀, 제6 픽셀, 및 제8 픽셀들(P4, P6, P8) 각각은, 해당 픽셀 값을 계산하기 위해 이용되는 픽셀들(제1 영상에서의 픽셀, 입력 데이터)과 해당 픽셀과의 상대적인 위치가 동일하다. 따라서, 입력 데이터에 동일한 가중치들(커널, 예를 들어, K0)을 적용하여, 제4 픽셀, 제6 픽셀 및 제8 픽셀들(P4, P6, P8)의 값을 계산할 수 있다.
이와 동일하게, 제5 픽셀 및 제7 픽셀들(P5, P7) 각각도, 해당 픽셀 값을 계산하기 위해 이용되는 픽셀들과, 해당 픽셀과의 상대적인 위치가 동일하며, 따라서, 제5 픽셀(P5)을 계산하기 위해 적용되는 커널(예를 들어, K1)과 제7 픽셀(P7)을 계산하기 위해 적용되는 커널(예를 들어, K1)은 동일하다.
이에 따라, 제1 영상을 2배 업 스케일하는 경우, 필요한 커널의 개수는 2가 되며, 제1 영상을 k1(k1은 정수) 배 업 스케일하는 경우, 필요한 커널의 개수는 k1가 된다.
반면에 도 3의 (b)는 제1 영상을 비-정수 배(예를 들어, 7/3배)로 업 스케일하는 경우를 나타낸다.
예를 들어 제1 영상(LR)에 포함되는 제1 픽셀(P1) 값과 제2 픽셀(P2) 값에 기초하여, 제2 영상에 포함되는 제9 픽셀(P9) 값이 결정되며, 제1 픽셀(P1) 값과 제2 픽셀(P2) 값에 제3 커널(K'i)을 적용하여, 컨볼루션 연산함으로써, 제9 픽셀(P9) 값이 계산될 수 있다. 이때, 제3 커널(K'i)은 제1 픽셀(P1) 값과 제2 픽셀(P2) 값에 적용되는 가중치 값들을 포함하며, 가중치 값들은 제9 픽셀(P9)에 대한 제1 픽셀(P1) 및 제2 픽셀(P2)의 상대적인 위치들에 기초하여 결정될 수 있다.
또한, 제1 영상(LR)에 포함되는 제1 픽셀(P1) 값과 제2 픽셀(P2) 값에 제4 커널(K'i +1)을 적용하여, 컨볼루션 연산함으로써, 제10 픽셀(P10) 값이 계산될 수 있으며, 이때, 제4 커널(K'i +1)에 포함되는 가중치 값들은, 제10 픽셀(P10)에 대한 제1 픽셀(P1) 및 제2 픽셀(P2)의 상대적인 위치들에 기초하여 결정될 수 있다.
한편, 도 3의 (b)를 참조하면, 제9 픽셀 내지 제15 픽셀들(P9, P10, P11, P12, P13, P14, P15) 각각은, 해당 픽셀 값을 계산하기 위해 이용되는 픽셀들(제1 영상에서의 픽셀들)과 해당 픽셀과의 상대적인 위치가 모두 다르다. 따라서, 입력 데이터에 동일한 가중치들을 적용할 수 없으며, 따라서, 제9 픽셀 내지 제15 픽셀들(P9, P10, P11, P12, P13, P14, P15)의 값을 결정하기 위해서는, 서로 다른 7개의 커널이 필요하다. 즉, 제1 영상을 k2(k2는 정수가 아닌 실수, k2 = A/B(A와 B는 서로소))배 업 스케일하는 경우, A개의 커널이 필요하다.
예를 들어, 제1 영상을 1001/1000 배 업 스케일하는 경우, 디컨볼루션 연산에 필요한 커널의 개수는 1001개가 되고, 이에 따라, 디컨볼루션 연산에 필요한 메모리 및 연산량이 매우 증가하게 되며, 연산속도가 느려지게 된다.
도 4는 일 실시예에 따른 제1 영상을 업 스케일하기 위한 디컨볼루션에 적용되는 커널에 포함되는 가중치들의 경향성을 결정하는 방법을 설명하기 위한 도면이다.
도 4는 일 실시예에 따른 제2 영상의 픽셀 값을 계산할 때, 제2 영상의 픽셀의 위치에 따라, 제1 영상의 픽셀 값에 적용되는 가중치들의 경향성을 찾기 위하여, 큐빅 B-스플라인 보간법을 적용한 예를 나타낸다.
도 4를 참조하면, 제1 그래프(410)는, 제1 영상의 4개의 픽셀 값들(xi-1, xi, xi+1, xi+2)을 이용하여, 제2 영상의 픽셀 값을 계산하는 경우에, 4개의 픽셀 값들(xi-1, xi, xi+1, xi+2) 각각에 적용되는 가중치를 나타내는 곡선들(B0(u), B1(u), B2(u), B3(u))을 포함한다. 이때, 곡선들(B0(u), B1(u), B2(u), B3(u))은, 큐빅 B 스플라인 곡선들이며, 도 4에 도시된 바와 같이, B0(u), B1(u), B2(u), B3(u)는 u에 대한 함수로 나타난다. 변수 u의 의미는 이하에서 자세히 설명하기로 한다.
예를 들어, 제1 영상과 제2 영상을 동일한 크기로 가정하고, 제1 영상에 포함되는 인접하는 픽셀들의 거리를 1로 하면, 제1 영상의 픽셀들의 위치는 정수로 표현되고, 제2 영상의 픽셀들의 위치는 실수로 표현될 수 있다. 예를 들어, 제1 영상의 픽셀들은, xi(i=0, 1, 2, 3,.., n)으로 표현될 수 있으며, 인덱스 i는 해당 픽셀의 좌표 값(위치)을 나타낼 수 있다. 제2 영상의 픽셀들은, yj(j = 실수)로 표현될 수 있으며, j는 해당 픽셀의 좌표 값(위치)을 나타낼 수 있다.
한편, 도 4를 참조하면, 제2 영상에 포함되는 픽셀(yj)의 값은, j에 버림 연산을 수행하여, 정수 i를 결정하고, 제1 영상에 포함되는 픽셀들 중 4개의 픽셀들(xi-1, xi, xi+1, xi+2)에 기초하여, 결정될 수 있다.
예를 들어, yj =B0(u)*xi-1+B1(u)*xi+B2(u)*xi+1+B3(u)*xi+2로 나타낼 수 있다.
이때, u는 제1 영상과 제2 영상을 동일한 크기로 가정하였을 때, 제2 영상에 포함된 픽셀 yj에 대응하는 지점이, 제1 영상의 픽셀들 xi와 xi+1 사이에 위치할 때, 픽셀 xi와 픽셀 yj에 대응하는 지점 사이의 거리로 나타낼 수 있다. 이에 따라, u의 값은 0 이상 1미만이다. 도 4를 참조하면, u는 j를 버림한 값(예를 들어, 정수 i)과 j의 차이(j-i)로 표현될 수 있다.
한편, 곡선들(B0(u), B1(u), B2(u), B3(u))은, 도 4에 도시된 바와 같이, 행렬 B(u)로 나타낼 수 있으며, 제1 영상의 4개의 픽셀들(xi-1, xi, xi+1, xi+2)은 행렬 I로 나타낼 수 있다. 이에 따라, 픽셀 yj의 값은 다음과 같은 수학식 1에 의해 결정될 수 있다.
Figure 112019050282214-pat00001
이때, 기호 <A, B>F의 연산은 컨볼루션 연산을 의미한다. 즉, 행렬 A와 행렬 B에서 동일한 위치의 원소들끼리 곱한 값들을 합하는 연산을 의미한다.
한편, 도 4의 행렬 B는, 입력 I에 적용되는 가중치들의 경향성을 찾기 위하여, B-큐빅 스플라인 곡선들을 적용한 것으로, 도 4의 행렬 B에서 u에 대한 행렬을 제외한 나머지 부분(430, 예를 들어, 계수(1/6)와 행렬 B'의 엘리먼트들)은 훈련을 통하여, 적절한 값으로 결정될 수 있다.
도 5는 일 실시예에 따른 제1 영상을 업 스케일하기 위한 디컨볼루션에 적용되는 커널을 모델링하는 방법을 설명하기 위한 도면이다.
도 5를 참조하면, 도 4의 행렬 B에서 u에 대한 행렬을 제외한 나머지 부분(430, 예를 들어, 계수(1/6)와 행렬 B'의 엘리먼트들)은, 도 5에 도시된 바와 같이, 훈련 가능한 값인 θij로 표현되도록 모델링할 수 있다. 이에 따라, 도 5의 행렬 K는, 제1 영상을 업 스케일하기 위한 디컨볼루션에 적용되는 훈련 가능한 커널을 나타내며, 훈련 가능한 행렬 θ(510)와 행렬 U의 곱으로 표현될 수 있다. 예를 들어, 행렬 K는 다음의 수학식 2와 같이 나타낼 수 있다.
Figure 112019050282214-pat00002
이때, 행렬 θ와 행렬 U는 각각 도 5에 도시된 바와 같이 표현될 수 있다.
또한, 제1 영상을 업 스케일하기 위한 디컨볼루션 연산은, 다음의 수학식 3과 같이 표현될 수 있다.
Figure 112019050282214-pat00003
수학식 3에서, 행렬 Ii는 제2 영상에 포함되는 픽셀 값 yj를 계산하기 위해 이용되는, 제1 영상의 픽셀 값들을 나타낸다. 또한, 행렬 Uj는, 행렬 θ와 연산되는 대신에, 행렬 Ii와 연산되도록 행렬 Uj의 위치가 변경될 수 있다.
이에 따라, 행렬 Kj(=θUj)는 uj의 함수로 나타나는 행렬로, uj의 값에 따라 변하는(space-varient) 행렬이었으나, 행렬 θ는 uj의 값에 따라 변하지 않는(space-invarient) 행렬이 된다. 또한, 컨볼루션 연산에서 순서는 바뀔 수 있으므로, 제2 영상의 픽셀 값 yj는 다음의 수학식 4와 같이 나타낼 수 있다.
Figure 112019050282214-pat00004
수학식 4에서 파라미터들의 의미는, 이하, 도 6을 참조하여 자세히 설명하기로 한다.
도 6은, 일 실시예에 따른 제1 영상을 비-정수 배 업 스케일하기 위한 디컨볼루션을 나타내는 도면이다.
도 6을 참조하면, x는 제1 영상을 나타내며, y는 x를 비-정수 배 업 스케일한 제2 영상을 나타낸다. 또한, i는 제1 영상에 포함되는 픽셀들의 인덱스를 나타내는 값으로, x와 y를 동일한 크기로 나타내고, 제1 영상에 포함되는 인접하는 픽셀들 사이의 거리를 1로 하였을 때, x에 포함되는 픽셀들의 위치를 나타내는 값이다. i는 0, 1, ..., n의 정수 값으로 표현될 수 있다. 또한, j는 제2 영상에 포함되는 픽셀들의 인덱스를 나타내는 값으로, 제2 영상에 포함되는 픽셀들의 위치를 나타내는 값이다. 제1 영상의 픽셀들의 위치(예를 들어, 좌표)가 정수로 표현되면, 제2 영상의 픽셀들의 위치(예를 들어, 좌표)는 실수로 표현될 수 있다. 따라서, j는 실수 값으로 표현될 수 있다.
도 5에서 설명한 바와 같이, 제2 영상에 포함되는 픽셀(yj)의 값은
Figure 112019050282214-pat00005
로 나타낼 수 있으며, 이때, 행렬 Uj는 uj에 대한 함수로 표현되며, uj값에 따라 결정된다. 이때, uj값은 픽셀 yj와 제1 영상의 픽셀 xi의 상대적인 거리에 따라, 결정되는 값이며, uj의 값은 0 이상 1 미만이다. 또한, 픽셀 xi의 인덱스 i 는, 픽셀 yj의 인덱스 j에 버림 연산을 수행한 값으로 결정된다.
예를 들어, 픽셀 y1 . 2 의 값을 구하는 경우, j는 1.2이므로, 1.2에 버림 연산을 수행한 값 1이 i값이 되며, xi는 x1이 된다. 또한, u1 .2는 0.2가 된다. 따라서, 행렬 Uj는 계산하고자 하는 픽셀 값 yj의 인덱스 j에 따라 다르게 결정된다.
또한, 행렬 Ii도 yj의 인덱스 j에 따라 다르게 결정된다. 예를 들어, 인덱스 j에 따라 인덱스 i 값이 결정되며, 인덱스 i에 따라, 행렬 Ii=[xi-1, xi, xi+1, xi+2]가 결정된다. 예를 들어, 인덱스 j가 1.2이고 인덱스 i가 1인 경우, 행렬 I1=[x0, x1, x2, x3]으로 결정될 수 있다. 다만, 행렬 Ii에 포함되는 엘리먼트들의 개수에 따라 행렬 Ii는 다르게 구성될 수 있다.
한편, 행렬 θ는 훈련에 의해 결정되는 값으로, 계산하고자 하는 픽셀 값 yj의 인덱스 j 또는, uj와 상관없이 동일하게 적용될 수 있다.
도 7은 일 실시예에 따른 영상 처리 장치가 제1 영상을 업 스케일하기 위해 디컨볼루션을 수행하는 과정을 설명하기 위한 도면이다.
일 실시예에 따른 영상 처리 장치(100)는 제1 영상(710)에 포함되는 픽셀들과 제2 영상(720)에 포함되는 픽셀들의 상대적인 위치 관계 및 제1 영상(710)에 포함되는 픽셀들의 값에 기초하여, 위치 변환 특징 정보들(740)을 획득할 수 있다.
예를 들어, 영상 처리 장치(100)는 제1 영상에 포함되는 픽셀 값들을 이용하여, 변환 특징 정보들(730)을 생성할 수 있다. 도 7에 도시된 바와 같이, 변환 특징 정보들은 n개일 수 있으며, 이때, n은, 제2 영상에 포함되는 하나의 픽셀 값을 계산하기 위해 이용되는 제1 영상에 포함되는 픽셀들의 개수와 동일하다. 도 7에서는, 제1 영상에 포함되는 4개의 픽셀 값들을 이용하여, 제2 영상의 하나의 픽셀 값을 계산하는 경우를 도시한다.
일 실시예에 따른 변환 특징 정보들(730)은, 4개의 변환 특징 정보들(제1 변환 특징 정보(Xk -1), 제2 변환 특징 정보(Xk), 제3 변환 특징 정보(Xk +1) 및 제4 변환 특징 정보(Xk +2))을 포함할 수 있다. 변환 특징 정보들(730)을 생성하는 방법에 대해서는 도 8을 참조하여, 자세히 설명하기로 한다.
도 8은, 일 실시예에 따른, 변환 특징 정보들을 생성하는 방법을 설명하기 위한 도면이다.
도 8을 참조하면, 제1 영상(710)과 제2 영상(720)을 동일한 크기로 가정하고, 제1 영상(710)에 포함되는 인접하는 픽셀들의 거리를 1로 하면, 제1 영상의 픽셀들의 위치는 정수로 표현되고, 제2 영상의 픽셀들의 위치는 실수로 표현될 수 있다. 예를 들어, 제1 영상(710)의 픽셀들은, xi(i=0, 1, 2, 3,.., n)으로 표현될 수 있으며, 인덱스 i는 해당 픽셀의 좌표 값(위치)을 나타낼 수 있다. 제2 영상의 픽셀들은, yj(j = j0, j1, j2,..., jm, j는 실수)로 표현될 수 있으며, j는 해당 픽셀의 좌표 값(위치)을 나타낼 수 있다.또한, 제1 영상에 포함되는 픽셀 값은 xi= x0, x1, x2,..., xn으로 나타낼 수 있으며, 제2 영상에 포함되는 픽셀 값은 yj=yj0, yj1, yj2,..., yjm으로 나타낼 수 있다.
변환 특징 정보들(730)은, 제2 영상(720)과 동일한 크기를 가지도록 생성될 수 있다. 예를 들어, 제2 영상의 크기가 W X H이면, 변환 특징 정보들의 크기도 W x H일 수 있다.
변환 특징 정보들(730) 각각에 포함되는 샘플 값들은, 샘플들 각각에 대응하는 제2 영상(720)의 픽셀의 위치(인덱스)에 기초하여 결정될 수 있다. 예를 들어, 제2 영상(720)의 제1 픽셀(840)은 인덱스 j0 값을 가지며, j0에 버림 연산을 수행한 값 k0를 결정할 수 있다. 따라서, 제1 픽셀(840)에 대응하는 위치의 샘플 값들(S11, S21, S31, S41)은, k0 값에 기초하여 결정된다.
예를 들어, 제1 변환 특징 정보(831)의 제1 샘플 값(S11)은, k0-1을 인덱스로 가지는 제1 영상의 픽셀 값(xk0 -1)으로 결정되고, 제2 변환 특징 정보(832)의 제2 샘플 값(S21)은 k0을 인덱스로 가지는 제1 영상의 픽셀 값(xk0)으로 결정되며, 제3 변환 특징 정보(833)의 제3 샘플 값(S31)은 k0+1을 인덱스로 가지는 제1 영상의 픽셀 값(xk0 +1)으로 결정되고, 제4 변환 특징 정보(834)의 제4 샘플 값(S41)은 k0+2를 인덱스로 가지는 제1 영상의 픽셀 값 (xk0 +2)으로 결정된다.
영상 처리 장치(100)는, 이와 동일한 방식으로, 제2 영상과 동일한 크기를 가지는 제1 내지 제4 변환 특징 정보들(831, 832, 833, 834)를 획득할 수 있다.
다시 도 7을 참조하면, 영상 처리 장치(100)는 제1 내지 제4 변환 특징 정보들(730)에 uj 3, uj 2, uj 1, uj 0을 각각 곱하여, 위치 변환 특징 정보들(740)을 생성할 수 있다.
또한, 영상 처리 장치(100)는 위치 변환 특징 정보들(740)과 커널(750)의 컨볼루션 연산을 수행함으로써, 제1 영상(710)이 비-정수 배 업 스케일된 제2 영상(720)을 획득할 수 있다. 이때, 커널(750)에 포함되는 가중치 값들은, 컨볼루션 연산이 수행되는 위치 변환 특징 정보들(740)에 포함되는 샘플 값들의 위치에 따라, 변하지 않는다. 또한, 커널에 포함되는 가중치들의 개수는, 제2 영상에 포함되는 하나의 픽셀 값을 계산하기 위해 이용되는 제1 영상에 포함되는 픽셀들의 개수 n에 기초하여 결정될 수 있다.
예를 들어, 제1 영상(710)에, 도 7의 디컨볼루션 연산이 수행되어 업 스케일된 제2 영상(720)의 픽셀 yj0의 값은, 다음의 수학식 5와 같이 나타낼 수 있다.
Figure 112019050282214-pat00006
도 9 및 도 10은, 일 실시예에 따른 영상 처리 장치가 제1 영상을 업 스케일하기 위하여, 도 7의 디컨볼루션과 다른 디컨볼루션을 수행하는 과정을 설명하기 위한 도면들이다.
도 9를 참조하면, yj를 계산할 때, uj이외에, vj, pj, qj의 변수를 추가로 이용하여, yj를 계산할 수 있다.
변수 vj , pj, qj 는 다음의 수학식 6과 같이, uj에 대한 함수로 나타낼 수 있으며, uj에 대한 비선형적 함수로 나타낼 수 있다.
Figure 112019050282214-pat00007
이때, WS는, 제1 영상의 크기를 의미하며, WT는 제2 영상의 크기를 의미한다.
예를 들어, 수학식 6의 변수 vj , pj, qj 와 uj 의 관계를 이용하면, 수학식 5는 다음의 수학식 7과 같이 변형될 수 있다.
Figure 112019050282214-pat00008
또한, vj , pj, qj 는 다음과 같은 수학식 8로 표현될 수 있다.
Figure 112019050282214-pat00009
수학식 7 및 수학식 8을 이용하여, yj + 1를 일반적인 식으로 표현하면, 다음의 수학식 9와 같이 나타낼 수 있다.
Figure 112019050282214-pat00010
도 10은, 수학식 9의 연산 과정을 나타내는 도면이며, 도 10에 도시된 변환 특징 정보(1030)는, 도 7의 4개의 변환 특징 정보들(730) 중 제2 변환 특징 정보(832)일 수 있다.
영상 처리 장치(100)는 제1 영상(1010)으로부터 변환 특징 정보(1030)에 uj 3, uj 2, uj 1, uj 0을 각각 곱하여, 위치 변환 특징 정보들(1040)을 생성할 수 있다. 또한, 영상 처리 장치(100)는 위치 변환 특징 정보들(1040)과 커널(1050)의 컨볼루션 연산을 수행함으로써, 제1 영상(1010)이 비-정수 배 업 스케일된 제2 영상(1020)을 획득할 수 있다. 이때, 커널(1050)에 포함되는 가중치 값들은, 컨볼루션 연산이 수행되는 위치 변환 특징 정보들(1040)에 포함되는 샘플 값들의 위치에 따라, 변하지 않는다. 또한, 커널에 포함되는 가중치들의 개수는, 제2 영상에 포함되는 하나의 픽셀 값을 계산하기 위해 이용되는 제1 영상에 포함되는 픽셀들의 개수 n에 기초하여 결정될 수 있다.
예를 들어, 제1 영상(1010)에, 도 10의 디컨볼루션 연산이 수행되어 업 스케일된 제2 영상(1020)의 픽셀 yj1의 값은, 다음의 수학식 10과 같이 나타낼 수 있다.
Figure 112019050282214-pat00011
도 11은 일 실시예에 따른 영상 처리 장치의 동작방법을 나타내는 흐름도이다.
도 11을 참조하면, 일 실시예에 따른 영상 처리 장치(100)는 제1 영상에 포함되는 픽셀들과 제2 영상에 포함되는 픽셀들의 상대적인 위치 관계를 획득하고, 획득한 위치 관계 및 제1 영상에 포함되는 픽셀들의 값에 기초하여, 위치 변환 특징 정보를 획득할 수 있다.
일 실시예에 따른, 영상 처리 장치(100)는 제1 영상에 포함되는 복수의 픽셀들 중 n개의 픽셀들의 값을 이용하여, 제2 영상에서의 하나의 픽셀 값을 획득한다. 이때, 제2 영상에서의 하나의 픽셀의 위치에 대한 제1 영상에서의 n개의 픽셀들의 상대적인 위치 관계를 획득할 수 있다.
예를 들어, 제1 영상과 제2 영상을 동일한 크기로 가정하여, 제1 영상에서 인접하는 픽셀들 사이의 거리를 1로 하고, 제1 영상에 포함되는 픽셀들의 위치를 인덱스 i(i=정수)로 나타내며, 제2 영상에 포함되는 픽셀들의 위치를 인덱스 j(j=실수)로 나타낼 수 있다. 예를 들어, x0, x1은 각각 제1 영상에서 좌표 0과 좌표 1에 위치하는 픽셀 값을 의미하고, y0 .2는 제2 영상에서 좌표 0.2에 위치하는 픽셀 값을 의미할 수 있다.
영상 처리 장치(100)는 제2 영상에 포함되는 픽셀이 나타내는 인덱스 j값에 버림 연산을 수행하여 k를 결정할 수 있으며, 픽셀이 나타내는 인덱스 j와 kj의 차이 값인 uj를 결정할 수 있다. 예를 들어, y0 .2의 경우, kj는 0으로, uj는 0.2로 결정할 수 있다.
일 실시예에 따른 영상 처리 장치(100)는 제2 영상의 하나의 픽셀 값을 획득하기 위해 이용되는 제1 영상의 픽셀들의 개수와, kj, uj에 기초하여, 위치 변환 특징 정보를 획득할 수 있다. 위치 변환 특징 정보를 획득하는 방법에 대해서는, 도 7 내지 10에서 자세히 설명하였으므로, 구체적인 설명은 생략하기로 한다.
또한, 영상 처리 장치(100)는 위치 변환 특징 정보와 커널과의 컨볼루션 연산을 수행함으로써, 제1 영상을 k(k는 실수)배 업 스케일한 제2 영상을 생성할 수 있다.
이때, k는 정수가 아닌 실수를 의미할 수 있으며, 커널의 크기(예를 들어, 커널에 포함되는 가중치들의 개수)는, 제2 영상에서의 하나의 픽셀 값을 획득하기 위하여, 이용되는 제1 영상에서의 픽셀들의 개수 n에 기초하여 결정될 수 있다. 또한, 커널에 포함되는 가중치 값들은, 컨볼루션 연산이 수행되는 위치 변환 특징 정보에 포함되는 샘플 값들의 위치에 따라 변하지 않으며, 일정하다.
도 12는 일 실시예에 따른 영상 처리 장치의 구성을 나타내는 블록도이다.
도 12를 참조하면, 일 실시예에 따른 영상 처리 장치(100)는 프로세서(120) 및 메모리(130)를 포함할 수 있다.
일 실시예에 따른 프로세서(120)는 영상 처리 장치(100)를 전반적으로 제어할 수 있다. 일 실시예에 따른 프로세서(120)는 메모리(130)에 저장되는 하나 이상의 프로그램들을 실행할 수 있다.
일 실시예에 따른 메모리(130)는 영상 처리 장치(100)를 구동하고 제어하기 위한 다양한 데이터, 프로그램 또는 어플리케이션을 저장할 수 있다. 메모리(130)에 저장되는 프로그램은 하나 이상의 인스트럭션들을 포함할 수 있다. 메모리(130)에 저장된 프로그램(하나 이상의 인스트럭션들) 또는 어플리케이션은 프로세서(120)에 의해 실행될 수 있다.
일 실시예에 따른 프로세서(120)는 제1 영상에 포함되는 픽셀들과 제2 영상에 포함되는 픽셀들의 상대적인 위치 관계를 획득하고, 획득한 위치 관계 및 제1 영상에 포함되는 픽셀들의 값에 기초하여, 위치 변환 특징 정보를 획득할 수 있다.
일 실시예에 따른, 프로세서(120)는 제1 영상에 포함되는 복수의 픽셀들 중 n개의 픽셀들의 값을 이용하여, 제2 영상에서의 하나의 픽셀 값을 획득한다. 이때, 제2 영상에서의 하나의 픽셀의 위치에 대한 제1 영상에서의 n개의 픽셀들의 상대적인 위치 관계를 획득할 수 있다. 예를 들어, 제1 영상과 제2 영상을 동일한 크기로 가정하여, 제1 영상에서 인접하는 픽셀들 사이의 거리를 1로 하고, 제1 영상에 포함되는 픽셀들의 위치를 인덱스 i(i=정수)로 나타내며, 제2 영상에 포함되는 픽셀들의 위치를 인덱스 j(j=실수)로 나타낼 수 있다.
프로세서(120)는 제2 영상에 포함되는 픽셀이 나타내는 인덱스 j값에 버림 연산을 수행하여 k를 결정할 수 있으며, 픽셀이 나타내는 인덱스 j와 kj의 차이 값인 uj를 결정할 수 있다. 예를 들어, y0 .2의 경우, kj는 0으로, uj는 0.2로 결정할 수 있다.
일 실시예에 따른 프로세서(120)는 제2 영상의 하나의 픽셀 값을 획득하기 위해 이용되는 제1 영상의 픽셀들의 개수와, kj, uj에 기초하여, 위치 변환 특징 정보를 획득할 수 있다. 위치 변환 특징 정보를 획득하는 방법에 대해서는, 도 7 내지 10에서 자세히 설명하였으므로, 구체적인 설명은 생략하기로 한다.
또한, 프로세서(120)는 위치 변환 특징 정보와 커널과의 컨볼루션 연산을 수행함으로써, 제1 영상을 k(k는 실수)배 업 스케일한 제2 영상을 생성할 수 있다. 이때, k는 정수가 아닌 실수를 의미할 수 있으며, 커널의 크기(예를 들어, 커널에 포함되는 가중치들의 개수)는, 제2 영상에서의 하나의 픽셀 값을 획득하기 위하여, 이용되는 제1 영상에서의 픽셀들의 개수 n에 기초하여 결정될 수 있다. 또한, 커널에 포함되는 가중치 값들은, 컨볼루션 연산이 수행되는 위치 변환 특징 정보에 포함되는 샘플 값들의 위치에 따라 변하지 않으며, 일정하다.
또한, 일 실시예에 따른 커널에 포함되는 가중치 값들은, 훈련되어 결정되는 값이며, 훈련되어 결정된 가중치 값들은, 메모리(130)에 저장될 수 있다.
한편, 도 12에 도시된 영상 처리 장치(100)의 블록도는 일 실시예를 위한 블록도이다. 블록도의 각 구성요소는 실제 구현되는 영상 처리 장치(100)의 사양에 따라 통합, 추가, 또는 생략될 수 있다. 즉, 필요에 따라 2 이상의 구성요소가 하나의 구성요소로 합쳐지거나, 혹은 하나의 구성요소가 2 이상의 구성요소로 세분되어 구성될 수 있다. 또한, 각 블록에서 수행하는 기능은 실시예들을 설명하기 위한 것이며, 그 구체적인 동작이나 장치는 본 발명의 권리범위를 제한하지 아니한다.
일 실시예에 따른 영상 처리 장치의 동작방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
또한, 개시된 실시예들에 따른 영상 처리 장치 및 영상 처리 장치의 동작방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다.
컴퓨터 프로그램 제품은 S/W 프로그램, S/W 프로그램이 저장된 컴퓨터로 읽을 수 있는 저장 매체를 포함할 수 있다. 예를 들어, 컴퓨터 프로그램 제품은 전자 장치의 제조사 또는 전자 마켓(예, 구글 플레이 스토어, 앱 스토어)을 통해 전자적으로 배포되는 S/W 프로그램 형태의 상품(예, 다운로더블 앱)을 포함할 수 있다. 전자적 배포를 위하여, S/W 프로그램의 적어도 일부는 저장 매체에 저장되거나, 임시적으로 생성될 수 있다. 이 경우, 저장 매체는 제조사의 서버, 전자 마켓의 서버, 또는 SW 프로그램을 임시적으로 저장하는 중계 서버의 저장매체가 될 수 있다.
컴퓨터 프로그램 제품은, 서버 및 클라이언트 장치로 구성되는 시스템에서, 서버의 저장매체 또는 클라이언트 장치의 저장매체를 포함할 수 있다. 또는, 서버 또는 클라이언트 장치와 통신 연결되는 제3 장치(예, 스마트폰)가 존재하는 경우, 컴퓨터 프로그램 제품은 제3 장치의 저장매체를 포함할 수 있다. 또는, 컴퓨터 프로그램 제품은 서버로부터 클라이언트 장치 또는 제3 장치로 전송되거나, 제3 장치로부터 클라이언트 장치로 전송되는 S/W 프로그램 자체를 포함할 수 있다.
이 경우, 서버, 클라이언트 장치 및 제3 장치 중 하나가 컴퓨터 프로그램 제품을 실행하여 개시된 실시예들에 따른 방법을 수행할 수 있다. 또는, 서버, 클라이언트 장치 및 제3 장치 중 둘 이상이 컴퓨터 프로그램 제품을 실행하여 개시된 실시예들에 따른 방법을 분산하여 실시할 수 있다.
예를 들면, 서버(예로, 클라우드 서버 또는 인공 지능 서버 등)가 서버에 저장된 컴퓨터 프로그램 제품을 실행하여, 서버와 통신 연결된 클라이언트 장치가 개시된 실시예들에 따른 방법을 수행하도록 제어할 수 있다.
이상에서 실시예들에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속한다.

Claims (19)

  1. 제1 영상을 업 스케일한 제2 영상을 생성하는 영상 처리 장치에 있어서,
    하나 이상의 인스트럭션들을 저장하는 메모리; 및
    상기 메모리에 저장된 상기 하나 이상의 인스트럭션들을 실행하는 프로세서를 포함하고,
    상기 프로세서는,
    상기 제1 영상과 상기 제2 영상을 동일한 크기로 가정하여, 상기 제1 영상에 포함되는 픽셀들의 위치를 인덱스 i(i=정수)로 나타내고, 상기 제2 영상에 포함되는 픽셀들의 위치를 인덱스 j(j=실수)로 나타내며, 상기 인덱스 j 값에 버림 연산을 수행하여, kj(kj=정수)를 결정하고, 상기 j와 kj의 차이 값인 uj를 결정하며,
    상기 uj 및 상기 제1 영상에 포함되는 픽셀들의 값에 기초하여, 위치 변환 특징 정보를 획득하며,
    상기 위치 변환 특징 정보와 커널과의 컨볼루션 연산을 수행함으로써, 상기 제1 영상을 k배 업 스케일한 상기 제2 영상을 생성하며, 상기 k는 실수인, 영상 처리 장치.
  2. 제1항에 있어서,
    상기 k는 정수가 아닌 실수인, 영상 처리 장치.
  3. 제1항에 있어서,
    상기 커널에 포함되는 가중치 값들은, 상기 컨볼루션 연산이 수행되는 상기 위치 변환 특징 정보에 포함되는 샘플 값들의 위치에 따라, 변하지 않는, 영상 처리 장치.
  4. 제1항에 있어서,
    상기 프로세서는,
    상기 제1 영상에 포함되는 복수의 픽셀들 중 n개의 픽셀들의 값을 이용하여, 상기 제2 영상에서의 하나의 픽셀 값을 획득하는, 영상 처리 장치.
  5. 삭제
  6. 제1항에 있어서,
    상기 제1 영상에 포함되는 인접하는 픽셀들 사이의 거리는 1인, 영상 처리 장치.
  7. 제4항에 있어서,
    상기 n개의 픽셀들은, 상기 하나의 픽셀이 나타내는 인덱스 j값에 기초하여, 결정되는, 영상 처리 장치.
  8. 제1항에 있어서,
    상기 위치 변환 특징 정보에 포함되는 샘플 값들은, 상기 uj에 대한 선형식으로 표현되는, 영상 처리 장치.
  9. 제4항에 있어서,
    상기 커널에 포함되는 가중치들의 개수는, 상기 n의 값에 기초하여 결정되는, 영상 처리 장치.
  10. 제1 영상을 업 스케일한 제2 영상을 생성하는 영상 처리 장치의 동작방법에 있어서,
    상기 제1 영상과 상기 제2 영상을 동일한 크기로 가정하여, 상기 제1 영상에 포함되는 픽셀들의 위치를 인덱스 i(i= 정수)로 나타내고, 상기 제2 영상에 포함되는 픽셀들의 위치를 인덱스 j(j=실수)로 나타내며, 상기 인덱스 j값에 버림 연산을 수행하여, kj(kj=정수)를 결정하고, 상기 j와 kj의 차이 값인 uj를 결정하는 단계;
    상기 uj 및 상기 제1 영상에 포함되는 픽셀들의 값에 기초하여, 위치 변환 특징 정보를 획득하는 단계; 및
    상기 위치 변환 특징 정보와 커널과의 컨볼루션 연산을 수행함으로써, 상기 제1 영상을 k배 업 스케일한 제2 영상을 생성하는 단계를 포함하며, 상기 k는 실수인, 영상 처리 장치의 동작방법.
  11. 제10항에 있어서,
    상기 k는 정수가 아닌 실수인, 영상 처리 장치의 동작방법.
  12. 제10항에 있어서,
    상기 커널에 포함되는 가중치 값들은, 상기 컨볼루션 연산이 수행되는 상기 위치 변환 특징 정보에 포함되는 샘플 값들의 위치에 따라, 변하지 않는, 영상 처리 장치의 동작방법.
  13. 제10항에 있어서,
    상기 위치 변환 특징 정보를 획득하는 단계는,
    상기 uj 및 상기 제2 영상에 포함되는 하나의 픽셀의 위치에 대한 상기 제1 영상에 포함되는 n개의 픽셀들의 값에 기초하여, 상기 위치 변환 특징 정보를 획득하는 단계를 포함하고,
    상기 n개의 픽셀들은, 상기 하나의 픽셀 값을 획득하기 위하여, 이용되는, 픽셀들인, 영상 처리 장치의 동작방법.
  14. 삭제
  15. 제10항에 있어서,
    상기 제1 영상에 포함되는 인접하는 픽셀들 사이의 거리는 1인, 영상 처리 장치의 동작방법.
  16. 제13항에 있어서,
    상기 n개의 픽셀들은, 상기 하나의 픽셀이 나타내는 인덱스 j값에 기초하여, 결정되는, 영상 처리 장치의 동작방법.
  17. 제10항에 있어서,
    상기 위치 변환 특징 정보에 포함되는 샘플 값들은, 상기 uj에 대한 선형식으로 표현되는, 영상 처리 장치의 동작방법.
  18. 제13항에 있어서,
    상기 커널에 포함되는 가중치들의 개수는, 상기 n의 값에 기초하여 결정되는, 영상 처리 장치의 동작방법.
  19. 제1 영상과 상기 제1 영상을 업 스케일한 제2 영상을 동일한 크기로 가정하여, 상기 제1 영상에 포함되는 픽셀들의 위치를 인덱스 i(i= 정수)로 나타내고, 상기 제2 영상에 포함되는 픽셀들의 위치를 인덱스 j(j=실수)로 나타내며, 상기 인덱스 j값에 버림 연산을 수행하여, kj(kj=정수)를 결정하고, 상기 j와 kj의 차이 값인 uj를 결정하는 단계;
    상기 uj 및 상기 제1 영상에 포함되는 픽셀들의 값에 기초하여, 위치 변환 특징 정보를 획득하는 단계; 및
    상기 위치 변환 특징 정보와 커널과의 컨볼루션 연산을 수행함으로써, 상기 제1 영상을 k배 업 스케일한 제2 영상을 생성하는 단계를 수행하도록 하는 프로그램이 저장된 하나 이상의 컴퓨터로 읽을 수 있는 기록매체.
KR1020190057605A 2019-05-16 2019-05-16 영상 처리 장치 및 그 동작방법 KR102266903B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020190057605A KR102266903B1 (ko) 2019-05-16 2019-05-16 영상 처리 장치 및 그 동작방법
PCT/KR2020/004596 WO2020231006A1 (ko) 2019-05-16 2020-04-03 영상 처리 장치 및 그 동작방법
US17/293,806 US20220375027A1 (en) 2019-05-16 2020-04-03 Image processing device and operation method therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190057605A KR102266903B1 (ko) 2019-05-16 2019-05-16 영상 처리 장치 및 그 동작방법

Publications (2)

Publication Number Publication Date
KR20200132306A KR20200132306A (ko) 2020-11-25
KR102266903B1 true KR102266903B1 (ko) 2021-06-18

Family

ID=73290205

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190057605A KR102266903B1 (ko) 2019-05-16 2019-05-16 영상 처리 장치 및 그 동작방법

Country Status (3)

Country Link
US (1) US20220375027A1 (ko)
KR (1) KR102266903B1 (ko)
WO (1) WO2020231006A1 (ko)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060221245A1 (en) 2005-03-30 2006-10-05 Kuo-Ching Liang Methods and apparatus for re-scaling image by variable re-scaling factor using B-spline interpolator
KR101522260B1 (ko) * 2015-01-27 2015-05-26 주식회사 칩스앤미디어 해상도 변환 방법 및 그 장치
JP2016139980A (ja) * 2015-01-28 2016-08-04 セイコーエプソン株式会社 画像処理装置、画像処理方法および表示装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5954141B2 (ja) * 2012-11-29 2016-07-20 株式会社Jvcケンウッド 画像拡大装置、画像拡大方法、及び画像拡大プログラム
KR101526321B1 (ko) * 2014-01-02 2015-06-11 주식회사 칩스앤미디어 해상도 변환 방법 및 그 장치
US9342894B1 (en) * 2015-05-01 2016-05-17 Amazon Technologies, Inc. Converting real-type numbers to integer-type numbers for scaling images
KR102631381B1 (ko) * 2016-11-07 2024-01-31 삼성전자주식회사 컨볼루션 신경망 처리 방법 및 장치
US10701394B1 (en) * 2016-11-10 2020-06-30 Twitter, Inc. Real-time video super-resolution with spatio-temporal networks and motion compensation
CN107767343B (zh) * 2017-11-09 2021-08-31 京东方科技集团股份有限公司 图像处理方法、处理装置和处理设备
US20190295228A1 (en) * 2018-03-21 2019-09-26 Nvidia Corporation Image in-painting for irregular holes using partial convolutions

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060221245A1 (en) 2005-03-30 2006-10-05 Kuo-Ching Liang Methods and apparatus for re-scaling image by variable re-scaling factor using B-spline interpolator
KR101522260B1 (ko) * 2015-01-27 2015-05-26 주식회사 칩스앤미디어 해상도 변환 방법 및 그 장치
JP2016139980A (ja) * 2015-01-28 2016-08-04 セイコーエプソン株式会社 画像処理装置、画像処理方法および表示装置

Also Published As

Publication number Publication date
US20220375027A1 (en) 2022-11-24
KR20200132306A (ko) 2020-11-25
WO2020231006A1 (ko) 2020-11-19

Similar Documents

Publication Publication Date Title
JP2018073393A (ja) 深度マップからの現実の物体の3d再構築
EP3454302A1 (en) Approximating mesh deformation for character rigs
US11562166B2 (en) Generating shift-invariant neural network feature maps and outputs
KR102570562B1 (ko) 영상 처리 장치 및 그 동작방법
US11954755B2 (en) Image processing device and operation method thereof
US11775817B2 (en) Reinforcement learning-based techniques for training a natural media agent
KR20200067631A (ko) 영상 처리 장치 및 그 동작방법
KR20200144398A (ko) 클래스 증가 학습을 수행하는 장치 및 그의 동작 방법
US11875257B2 (en) Normalization method for machine-learning and apparatus thereof
US11961207B2 (en) Image processing apparatus performing a deconvolution operation and operation method thereof
KR20200132305A (ko) 전자 장치가 뉴럴 네트워크 내의 소정 레이어에서 컨볼루션 연산을 수행하는 방법 및 그 방법을 수행하는 전자 장치
US10824944B2 (en) Method for feature data recalibration and apparatus thereof
KR102266903B1 (ko) 영상 처리 장치 및 그 동작방법
US20220284545A1 (en) Image processing device and operating method thereof
Bricman et al. CocoNet: A deep neural network for mapping pixel coordinates to color values
US20230069072A1 (en) Image processing apparatus and operation method thereof
EP3855388B1 (en) Image processing device and operation method thereof
US20230169752A1 (en) Image processing apparatus and operating method thereof
US20230214971A1 (en) Image processing device and operating method therefor
US20230169748A1 (en) Image processing apparatus and operating method thereof
KR20220125127A (ko) 영상 처리 장치 및 그 동작방법
US20220284555A1 (en) Image processing apparatus and operation method thereof
KR20230034127A (ko) 영상 처리 장치 및 그 동작 방법
KR20220125124A (ko) 영상 처리 장치 및 그 동작방법
KR20230157220A (ko) 영상 처리 장치 및 그 동작 방법

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant