KR20210141304A - Image processing apparatus and operating method for the same - Google Patents

Image processing apparatus and operating method for the same Download PDF

Info

Publication number
KR20210141304A
KR20210141304A KR1020200159100A KR20200159100A KR20210141304A KR 20210141304 A KR20210141304 A KR 20210141304A KR 1020200159100 A KR1020200159100 A KR 1020200159100A KR 20200159100 A KR20200159100 A KR 20200159100A KR 20210141304 A KR20210141304 A KR 20210141304A
Authority
KR
South Korea
Prior art keywords
image
pieces
blocks
processing apparatus
size
Prior art date
Application number
KR1020200159100A
Other languages
Korean (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 PCT/KR2021/005888 priority Critical patent/WO2021230624A1/en
Publication of KR20210141304A publication Critical patent/KR20210141304A/en
Priority to US17/987,574 priority patent/US20230071417A1/en

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/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness
    • 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
    • G06T9/00Image coding
    • G06T9/002Image coding using neural networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • 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]

Landscapes

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

Abstract

The present invention relates to an image processing apparatus. The apparatus includes: a memory for storing one or more instructions; and a processor for executing the one or more instructions stored in the memory. The processor uses one or more neural networks to extract n pieces of first feature information from a first image based on positions of pixels included in the first image, and generates n pieces of second feature information by performing a convolution operation on each of the n pieces of first feature information and n kernels. The second image is an image from which a compression artifact included in the first image is removed.

Description

영상 처리 장치 및 그 동작방법{Image processing apparatus and operating method for the same}Image processing apparatus and operating method for the same

다양한 실시예들은 뉴럴 네트워크를 이용하여, 영상의 아티팩트를 제거하는 영상 처리 장치 및 그 동작방법에 관한 것이다.Various embodiments relate to an image processing apparatus for removing artifacts from an image using a neural network, and an operating method thereof.

컴퓨터 기술의 발달과 함께 데이터 트래픽이 지수함수 형태로 증가하면서 인공지능은 미래 혁신을 주도하는 중요한 트랜드로 자리잡았다. 인공지능은 사람의 사고방식을 모방하는 방식이기 때문에 사실상 전 산업에 무한하게 응용이 가능하다. 인공지능의 대표적인 기술로는 패턴 인식, 기계 학습, 전문가 시스템, 뉴럴 네트워크, 자연어 처리 등이 있다.As data traffic increases exponentially with the development of computer technology, artificial intelligence has become an important trend driving future innovation. Since artificial intelligence is a method that imitates human thinking, it can be applied to virtually all industries infinitely. Representative technologies of artificial intelligence include pattern recognition, machine learning, expert systems, neural networks, and natural language processing.

뉴럴 네트워크는 인간의 생물학적 신경 세포의 특성을 수학적 표현에 의해 모델링한 것으로, 인간이 가지고 있는 학습이라는 능력을 모방한 알고리즘을 이용한다. 이 알고리즘을 통하여, 뉴럴 네트워크는 입력 데이터와 출력 데이터 사이의 사상(mapping)을 생성할 수 있고, 이러한 사상을 생성하는 능력은 뉴럴 네트워크의 학습 능력이라고 표현될 수 있다. 또한, 뉴럴 네트워크는 학습된 결과에 기초하여, 학습에 이용되지 않았던 입력 데이터에 대하여, 올바른 출력 데이터를 생성할 수 있는 일반화 능력을 가진다.A neural network models the characteristics of human biological nerve cells by mathematical expressions, and uses an algorithm that mimics the ability of learning that humans have. Through this algorithm, the neural network can generate a mapping between input data and output data, and the ability to generate this mapping can be expressed as the learning ability of the neural network. In addition, the neural network has a generalization ability to generate correct output data for input data that has not been used for learning, based on the learned result.

기존 컨볼루션 뉴럴 네트워크(CNN: Convolution Neural Network) 에서는, 입력 영상 내에 모든 픽셀에 대하여 동일한 커널을 사용하는 것이 일반적이다. 이에 따라, 기존 컨볼루션 뉴럴 네트워크를 이용하여 영상을 처리하는 경우, 블록 경계에서 나타나는 압축 아티팩트(예를 들어, 블록킹 아티팩트(blocking artifact)나 링잉 아티팩트(rigning artifact))를 효과적으로 제거할 수 없다는 문제점이 있다.In a conventional convolutional neural network (CNN), it is common to use the same kernel for all pixels in an input image. Accordingly, when an image is processed using an existing convolutional neural network, compression artifacts (eg, blocking artifacts or ringing artifacts) appearing at block boundaries cannot be effectively removed. have.

또한, 블록 경계에서 룰(rule)에 따라 서로 다른 필터를 사용하여, 아티팩트를 제거하는 방법은, 컨볼루션 뉴럴 네트워크를 이용한 구현이 어려우며, 병렬 처리에 적합하지 않은 문제점이 있다.In addition, a method of removing artifacts by using different filters according to rules at the block boundary is difficult to implement using a convolutional neural network, and is not suitable for parallel processing.

다양한 실시예들은, 컨볼루션 뉴럴 네트워크를 이용하여, 압축 아티팩트를 효과적으로 감소시킬 수 있는 영상 처리 장치 및 그 동작방법을 제공할 수 있다.Various embodiments may provide an image processing apparatus capable of effectively reducing compression artifacts using a convolutional neural network and an operating method thereof.

일 실시예에 따른 영상 처리 장치는 하나 이상의 인스트럭션들을 저장하는 메모리, 및 상기 메모리에 저장된 상기 하나 이상의 인스트럭션들을 실행하는 프로세서를 포함하고, 상기 프로세서는, 하나 이상의 뉴럴 네트워크를 이용하여, 제1 영상에 포함되는 픽셀들의 위치에 기초하여, 상기 제1 영상으로부터 n개의 제1 특징 정보들을 추출하고, 상기 n개의 제1 특징 정보들 각각과 n개의 커널들 각각과의 컨볼루션 연산을 수행함으로써, n개의 제2 특징 정보들을 생성하며, 상기 n개의 제2 특징 정보들에 기초하여, 제2 영상을 생성하고, 상기 제2 영상은 상기 제1 영상에 포함되는 압축 아티팩트가 제거된 영상일 수 있다.An image processing apparatus according to an embodiment includes a memory that stores one or more instructions, and a processor that executes the one or more instructions stored in the memory, wherein the processor uses one or more neural networks to generate a first image. Based on the positions of the included pixels, n pieces of first feature information are extracted from the first image, and a convolution operation is performed between each of the n pieces of first feature information and each of the n kernels. Second feature information may be generated, and a second image may be generated based on the n pieces of second feature information, and the second image may be an image from which compression artifacts included in the first image are removed.

일 실시예에 따른 프로세서는, 상기 제1 영상을 기 설정된 크기를 가지는 블록들로 나누고, 상기 블록들 각각에서 동일한 위치를 가지는 픽셀들을 동일한 그룹으로 나누어 상기 n 개의 제1 특징 정보들을 추출할 수 있다.The processor according to an embodiment may divide the first image into blocks having a preset size, and divide pixels having the same position in each of the blocks into the same group to extract the n pieces of first feature information .

일 실시예에 따른 상기 블록들 각각은 상기 n개의 픽셀들을 포함하고, 상기 n은 상기 블록들의 기 설정된 크기에 기초하여 결정될 수 있다.Each of the blocks according to an embodiment may include the n pixels, and n may be determined based on a preset size of the blocks.

일 실시예에 따른 프로세서는, 상기 제2 영상을 상기 기 설정된 크기를 가지는 블록들로 나누고, 상기 제2 특징 정보들 중 하나의 제2 특징 정보에 포함되는 픽셀 값들을 상기 블록들 각각에서 동일한 위치의 픽셀 값들로 결정할 수 있다.The processor according to an embodiment divides the second image into blocks having the preset size, and places pixel values included in one second characteristic information among the second characteristic information at the same location in each of the blocks. It can be determined by the pixel values of .

일 실시예에 따른 프로세서는, 스트라이드 크기 L을 적용하여, 상기 제1 영상과 제2 커널과의 컨볼루션 연산을 수행함으로써, 상기 n개의 제1 특징 정보들을 추출할 수 있다.The processor according to an embodiment may extract the n pieces of first feature information by performing a convolution operation between the first image and the second kernel by applying a stride size L.

일 실시예에 따른 상기 제1 특징 정보들의 개수 n은 상기 스트라이드 크기 L에 기초하여 결정될 수 있다.The number n of the first characteristic information according to an embodiment may be determined based on the stride size L.

일 실시예에 따른 상기 n개의 커널들은 서로 상이한 커널들일 수 있다.The n kernels according to an embodiment may be different kernels.

일 실시예에 따른 제1 영상과 상기 제2 영상의 크기는 동일할 수 있다.The size of the first image and the second image according to an embodiment may be the same.

일 실시예에 따른 하나 이상의 뉴럴 네트워크를 이용하여, 영상 처리를 수행하는 영상 처리 장치의 동작방법은, 제1 영상에 포함되는 픽셀들의 위치에 기초하여, 상기 제1 영상으로부터 n개의 제1 특징 정보들을 추출하는 단계, 상기 n개의 제1 특징 정보들 각각과 n개의 커널들 각각과의 컨볼루션 연산을 수행함으로써, n개의 제2 특징 정보들을 생성하는 단계, 및 상기 n개의 제2 특징 정보들에 기초하여, 제2 영상을 생성하는 단계를 포함하고, 상기 제2 영상은 상기 제1 영상에 포함되는 압축 아티팩트가 제거된 영상일 수 있다.According to an embodiment, the method of operating an image processing apparatus performing image processing using one or more neural networks includes n pieces of first feature information from a first image based on positions of pixels included in a first image. extracting , generating n pieces of second feature information by performing a convolution operation with each of the n pieces of first feature information and each of the n kernels, and adding to the n pieces of second feature information based on the method, generating a second image, wherein the second image may be an image from which compression artifacts included in the first image are removed.

일 실시예에 따른 영상 처리 장치는, 영상에 포함되는 픽셀들의 블록 내에서의 위치에 기초하여, 유사한 특성을 가지는 픽셀들끼리 그룹핑함으로써, 1차적으로 특징 정보들을 추출하고, 추출된 특징 정보들에 서로 다른 커널을 적용하여 컨볼루션을 수행함으로써, 압축 아티팩트를 효과적으로 제거할 수 있다.An image processing apparatus according to an exemplary embodiment may primarily extract feature information by grouping pixels having similar characteristics based on positions within a block of pixels included in an image, and then add the extracted feature information to the extracted feature information. By performing convolution by applying different kernels, compression artifacts can be effectively removed.

일 실시예 따른 영상 처리 장치는 아티팩트 제거 네트워크를 이용함으로써, 압축 아티팩트를 제거하는 영상 처리를 병렬로 수행할 수 있다.The image processing apparatus according to an embodiment may perform image processing for removing compression artifacts in parallel by using the artifact removal network.

도 1은 일 실시예에 따른 영상 처리 장치가 아티팩트 제거 네트워크를 이용하여 영상을 처리하는 방법을 나타내는 도면이다.
도 2는 일 실시예에 따른 하나의 컨볼루션 레이어를 나타내는 도면이다.
도 3은 일 실시예에 따른 픽셀 샘플링부의 동작을 설명하기 위해 참조되는 도면이다.
도 4는 일 실시예에 따른 픽셀 샘플링 주기의 예시를 나타내는 도면이다.
도 5는 일 실시예에 따른 컨볼루션부의 동작을 설명하기 위해 참조되는 도면이다.
도 6은 일 실시예에 따른 픽셀 합성부의 동작을 설명하기 위해 참조되는 도면이다.
도 7은 다른 실시예에 따른 도 1의 하나의 컨볼루션 레이어를 나타내는 도면이다.
도 8은 도 7의 컨볼루션 레이어에서 수행되는 동작을 설명하기 위해 참조되는 도면이다.
도 9는 일 실시예에 따른 특징 추출부가 컨볼루션 연산을 수행하는 동작을 설명하기 위해 참조되는 도면이다.
도 10은 일 실시예에 따른 영상 처리 장치의 동작방법을 나타내는 흐름도이다.
도 11은 일 실시예에 따른 영상 처리 장치의 구성을 나타내는 블록도이다.
1 is a diagram illustrating a method of an image processing apparatus processing an image using an artifact removal network according to an exemplary embodiment.
2 is a diagram illustrating one convolutional layer according to an embodiment.
3 is a reference diagram for describing an operation of a pixel sampling unit according to an exemplary embodiment.
4 is a diagram illustrating an example of a pixel sampling period according to an embodiment.
5 is a diagram referenced to describe an operation of a convolution unit according to an embodiment.
6 is a reference diagram for describing an operation of a pixel combining unit according to an exemplary embodiment.
7 is a diagram illustrating one convolutional layer of FIG. 1 according to another embodiment.
FIG. 8 is a diagram referenced to describe an operation performed in the convolution layer of FIG. 7 .
9 is a diagram referenced to describe an operation of a feature extractor performing a convolution operation according to an embodiment.
10 is a flowchart illustrating a method of operating an image processing apparatus according to an exemplary embodiment.
11 is a block diagram illustrating a configuration of an image processing apparatus according to an exemplary embodiment.

본 명세서에서 사용되는 용어에 대해 간략히 설명하고, 본 발명에 대해 구체적으로 설명하기로 한다.Terms used in this specification will be briefly described, and the present invention will be described in detail.

본 발명에서 사용되는 용어는 본 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 발명에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 발명의 전반에 걸친 내용을 토대로 정의되어야 한다. The terms used in the present invention have been selected as currently widely used general terms as possible while considering the functions in the present invention, but these may vary depending on the intention or precedent of a person skilled in the art, the emergence of new technology, and the like. In addition, in a specific case, there is a term arbitrarily selected by the applicant, and in this case, the meaning will be described in detail in the description of the corresponding invention. Therefore, the term used in the present invention should be defined based on the meaning of the term and the overall content of the present invention, rather than the name of a simple term.

명세서 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 명세서에 기재된 "...부", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.When a part "includes" a certain element throughout the specification, this means that other elements may be further included, rather than excluding other elements, unless otherwise stated. In addition, terms such as "...unit" and "module" described in the specification mean a unit that processes at least one function or operation, which may be implemented as hardware or software, or a combination of hardware and software. .

아래에서는 첨부한 도면을 참고하여 실시예들에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.Hereinafter, embodiments will be described in detail with reference to the accompanying drawings so that those of ordinary skill in the art to which the present invention pertains can easily implement them. However, the present invention may be embodied in many different forms and is not limited to the embodiments described herein. And in order to clearly explain the present invention in the drawings, parts irrelevant to the description are omitted, and similar reference numerals are attached to similar parts throughout the specification.

도 1은 일 실시예에 따른 영상 처리 장치가 아티팩트 제거 네트워크를 이용하여 영상을 처리하는 방법을 나타내는 도면이다.1 is a diagram illustrating a method of an image processing apparatus processing an image using an artifact removal network according to an exemplary embodiment.

도 1을 참조하면, 일 실시예에 따른 아티팩트 제거 네트워크(30)는 입력 영상(10)을 입력 받아, 입력 영상(10)을 처리함으로써, 출력 영상(20)을 생성할 수 있다.Referring to FIG. 1 , an artifact removal network 30 according to an embodiment may receive an input image 10 and process the input image 10 to generate an output image 20 .

일 실시예에 따른, 입력 영상(10)은 압축 아티팩트(compression artifact)를 포함할 수 있다. 압축 아티팩트는 영상을 압축하는 과정에서 발생하는 아티팩트로, 블록킹 아티팩트(blocking artifact), 링잉 아티팩트(ringing artifact) 등을 포함할 수 있다. 일반적으로 영상 또는 비디오를 압축하고, 압축 해제하는 과정에서 압축 아티팩트가 발생하게 된다.According to an embodiment, the input image 10 may include compression artifacts. Compression artifacts are artifacts generated in the process of compressing an image, and may include blocking artifacts, ringing artifacts, and the like. In general, compression artifacts occur in the process of compressing and decompressing an image or video.

영상 또는 비디오 압축은, 영상 또는 비디오에 포함된 픽셀들을, 하나의 블록이 소정 개수의 픽셀들을 포함하도록, 복수의 블록들로 나누어, 블록 단위로 수행될 수 있다. 이에 따라, 압축 아티팩트는 블록의 경계에서 주로 발생하게 되며, 일정한 주기를 가지고 발생하게 된다.The image or video compression may be performed in units of blocks by dividing pixels included in the image or video into a plurality of blocks such that one block includes a predetermined number of pixels. Accordingly, the compression artifact is mainly generated at the boundary of the block, and is generated with a certain period.

일 실시예에 따른 영상 처리 장치(100)는 아티팩트 제거 네트워크(Artifact Removal Network)(30)를 이용하여, 입력 영상(10)을 영상 처리함으로써, 아티팩트가 제거된 출력 영상(20)을 생성할 수 있다. The image processing apparatus 100 according to an embodiment may generate an output image 20 from which artifacts are removed by image processing the input image 10 using an Artifact Removal Network 30 . have.

일 실시예에 따른 아티팩트 뉴럴 네트워크(30)는 하나 이상의 컨볼루션 레이어들(210, 220, ..., 290)을 포함할 수 있으며, 컨볼루션 레이어들 각각에서는 픽셀 샘플링, 컨볼루션 연산, 픽셀 합성 등이 수행될 수 있다.The artifact neural network 30 according to an embodiment may include one or more convolutional layers 210, 220, ..., 290, and in each of the convolutional layers, pixel sampling, convolution operation, and pixel synthesis. etc. may be performed.

컨볼루션 레이어들 각각에서 수행되는 영상 처리에 대해서는 이하 도면들을 참조하여 자세히 설명하기로 한다.Image processing performed in each of the convolutional layers will be described in detail with reference to the drawings below.

도 2는 일 실시예에 따른 하나의 컨볼루션 레이어를 나타내는 도면이다.2 is a diagram illustrating one convolutional layer according to an embodiment.

도 2를 참조하면, 일 실시예에 따른 하나의 컨볼루션 레이어(200)는 픽셀 샘플링부(300), 컨볼루션부(400), 및 픽셀 합성부(500)를 포함할 수 있다. 하나의 컨볼루션 레이어(200)는 도 1의 제1 내지 제N 컨볼루션 레이어들(210, 220,..., 290) 중 어느 하나일 수 있다. 예를 들어, 제1 내지 제N 컨볼루션 레이어들(210, 220, ..., 290) 각각은 픽셀 샘플링부(300), 컨볼루션부(400), 및 픽셀 합성부(500)를 포함할 수 있다. 일 실시예에 따른 컨볼루션 레이어(200)는 제1 영상(F_in)을 입력 받아, 제2 영상(F_out)을 출력하는 구조를 포함할 수 있으며, 제1 영상(F_in)과 제2 영상(F_out)의 크기는 동일할 수 있으나, 이에 한정되지 않는다.Referring to FIG. 2 , one convolutional layer 200 according to an embodiment may include a pixel sampling unit 300 , a convolution unit 400 , and a pixel combining unit 500 . One convolutional layer 200 may be any one of the first to N-th convolutional layers 210 , 220 , ..., 290 of FIG. 1 . For example, each of the first to Nth convolutional layers 210 , 220 , ..., 290 may include a pixel sampling unit 300 , a convolution unit 400 , and a pixel combining unit 500 . can The convolutional layer 200 according to an embodiment may include a structure in which a first image F_in is received and a second image F_out is output, and the first image F_in and the second image F_out are included. ) may be the same size, but is not limited thereto.

이하, 도 3 내지 도 6을 참조하여, 하나의 컨볼루션 레이어에서 수행되는 동작을 구체적으로 설명하기로 한다.Hereinafter, an operation performed in one convolutional layer will be described in detail with reference to FIGS. 3 to 6 .

도 3은 일 실시예에 따른 픽셀 샘플링부의 동작을 설명하기 위해 참조되는 도면이다.3 is a reference diagram for describing an operation of a pixel sampling unit according to an exemplary embodiment.

일 실시예에 따른 픽셀 샘플링부(300)는 제1 영상(F_in)에 포함되는 픽셀들의 위치 정보에 기초하여, 픽셀들을 그룹핑함으로써, n개의 샘플링 특징들을 생성할 수 있다. 이때, 제1 영상은 도 1의 입력 영상(10) 또는 이전 컨볼루션 레이어에서 출력된 특징 정보일 수 있다. 예를 들어, 현재 컨볼루션 레이어(200)가 제1 컨볼루션 레이어(Conv_1)인 경우, 제1 영상은 입력 영상(10)일 수 있으며, 현재 컨볼루션 레이어(200)가 제2 내지 제N 컨볼루션 레이어들(Conv_2,..., Conv_N) 중 하나인 경우, 제1 영상(F_in)은 이전 컨볼루션 레이어에서 출력되는 특징 정보일 수 있다. 또는 이전 컨볼루션 레이어에서 출력된 특징 정보에 소정의 연산이나 처리가 수행된 특징 정보일 수도 있다. 다만, 이에 한정되지 않는다.The pixel sampler 300 according to an embodiment may generate n sampling features by grouping pixels based on position information of pixels included in the first image F_in. In this case, the first image may be the input image 10 of FIG. 1 or feature information output from a previous convolutional layer. For example, when the current convolution layer 200 is the first convolution layer Conv_1 , the first image may be the input image 10 , and the current convolution layer 200 includes the second to N-th convolutions. In the case of one of the convolution layers Conv_2, ..., Conv_N, the first image F_in may be feature information output from a previous convolution layer. Alternatively, it may be feature information in which a predetermined operation or processing is performed on feature information output from a previous convolutional layer. However, the present invention is not limited thereto.

일 실시예에 따른 제1 영상(F_in)은 W x H x Cin의 크기를 가진다. 이때, W는 제1 영상(F_in)의 너비를 나타내고, H는 제1 영상(F_in)의 높이를 나타내며, Cin는 제1 영상(F_in)의 채널 수를 나타낸다.The first image F_in according to an embodiment has a size of W x H x Cin. In this case, W denotes the width of the first image F_in, H denotes the height of the first image F_in, and Cin denotes the number of channels of the first image F_in.

픽셀 샘플링부(300)는 수학식 1과 같이, 제1 영상에 포함된 픽셀들을 너비 방향 및 높이 방향으로 각각 주기 L을 가지고 샘플링 함으로써, 복수의 샘플링 특징들을 생성할 수 있다. 예를 들어, 픽셀 샘플링부(300)는 제1 영상(F_in)을 기 설정된 크기(L x L)의 블록들로 나누고, 블록들 각각에서 동일한 위치를 가지는 픽셀들을 동일한 그룹으로 샘플링할 수 있다.As shown in Equation 1, the pixel sampling unit 300 may generate a plurality of sampling features by sampling pixels included in the first image with a period L in the width direction and the height direction, respectively. For example, the pixel sampling unit 300 may divide the first image F_in into blocks having a preset size (L x L) and sample pixels having the same position in each of the blocks as the same group.

[수학식 1][Equation 1]

F_inu,v = F_in[u:L:W-1, v:L:H-1, 0:1:C-1]F_in u,v = F_in[u:L:W-1, v:L:H-1, 0:1:C-1]

수학식 1에서, F_inu,v 는 샘플링 특징을 나타내고, F_in은 제1 영상을 나타낸다. F_in[]는 제1 영상(F_in)을 너비 방향, 높이 방향, 채널 방향으로 픽셀들을 샘플링하는 연산을 나타낸다. u:L:W-1은 제1 영상(F_in)의 너비 방향으로 u 지점에 위치한 픽셀에서 시작하여, W-1지점에 위치한 픽셀까지 L의 주기로 픽셀들을 샘플링하는 것을 의미한다. v:L:H-1은 제1 영상(F_in)의 높이 방향으로 v 지점에 위치한 픽셀에서 시작하여, H-1지점에 위치한 픽셀까지 L의 주기로 픽셀들을 샘플링하는 것을 의미한다. 0:1:C-1은 제1 영상(F_in)의 채널 방향으로 0 지점에 위치한 픽셀부터, C-1 지점에 위치한 픽셀까지 모든 픽셀들을 샘플링하는 것을 의미한다. 즉, 제1 영상(F_in)에 포함된 픽셀들 중 너비 방향의 위치 및 높이 방향의 위치가 동일하고, 서로 다른 채널에 위치한 픽셀들은 동일한 그룹으로 샘플링될 수 있다.In Equation 1, F_in u,v denotes a sampling characteristic, and F_in denotes a first image. F_in[] represents an operation of sampling pixels of the first image F_in in a width direction, a height direction, and a channel direction. u:L:W-1 means that pixels are sampled in a period of L starting from the pixel positioned at the u point in the width direction of the first image F_in and up to the pixel positioned at the W-1 point. v:L:H-1 means that pixels are sampled with a period of L starting from the pixel located at the point v in the height direction of the first image F_in and up to the pixel located at the point H-1. 0:1:C-1 means that all pixels are sampled from the pixel positioned at point 0 to the pixel positioned at point C-1 in the channel direction of the first image F_in. That is, among the pixels included in the first image F_in, a position in a width direction and a position in a height direction are the same, and pixels located in different channels may be sampled into the same group.

이하에서는, 제1 영상(F_in)에 포함되는 하나의 채널 영상(제1 채널 영상, 310)이 16 x 16의 크기를 가지며, L=8인 경우를 예로 들어, 복수의 샘플링 특징들을 생성하는 방법을 설명하기로 한다.Hereinafter, a case in which one channel image (first channel image, 310 ) included in the first image F_in has a size of 16×16 and L=8 is taken as an example, and a method of generating a plurality of sampling features to be explained.

제1 영상(F_in)은 8 x 8 크기의 블록들로 분할될 수 있으며, 픽셀 샘플링부(300)는 블록들 각각에서 동일한 위치를 가지는 픽셀들을 하나의 그룹으로 샘플링할 수 있다. 예를 들어, 제1 채널 영상(310)이 8 x 8 크기의 블록들로 분할되면, 제1 채널 영상(310)은 4개의 블록들(제1 내지 제4 블록들(B1, B2, B3, B4))로 분할될 수 있다. 또한, 제1 영상(F_in)의 제1 채널 영상(310)에 포함되는 픽셀들이 위치에 따라, 순서대로 P 0,0,0 부터 P 15,15,0 으로 인덱싱되면, P 0,0,0(P0), P 0,8,0(P1), P 8,0,0(P2), P 8,8,0(P3) 은 제1 블록 내지 제4 블록들 (B1, B2, B3, B4)각각에서, 동일한 위치를 가지게 된다. 픽셀 샘플링부(300)는 P 0,0,0(P0), P 0,8,0(P1), P 8,0,0(P2), P 8,8,0(P3)를 제1 그룹으로 샘플링 할 수 있다. 또한, 채널 방향으로는 샘플링 주기가 1이므로, 제2 내지 제C-1 채널 영상들에 대해서도 제1 채널 영상과 동일하게, 동일한 위치의 픽셀들(P 0,0,1, P 0,8,1, P 8,0,1, P 8,8,1,..., P 0,0,C-1, P 0,8,C-1, P 8,0,C-1, P 8,8,C-1)을 제1 그룹으로 샘플링할 수 있다. 픽셀 샘플링부(300)는 제1 그룹으로 샘플링된 픽셀들에 기초하여, 제1 샘플링 특징(F_in0,0)이 생성할 수 있으며, 제1 샘플링 특징(F_in0,0)은 2 X 2 X C의 크기를 가진다.The first image F_in may be divided into blocks having a size of 8×8, and the pixel sampling unit 300 may sample pixels having the same position in each of the blocks as a group. For example, when the first channel image 310 is divided into blocks having a size of 8 x 8, the first channel image 310 is divided into four blocks (first to fourth blocks B1, B2, B3, B4)). Also, if pixels included in the first channel image 310 of the first image F_in are indexed from P 0,0,0 to P 15,15,0 in order according to positions, P 0,0,0 (P0), P 0,8,0 (P1), P 8,0,0 (P2) , P 8,8,0 (P3) has the same position in each of the first to fourth blocks B1, B2, B3, and B4. The pixel sampling unit 300 receives P 0,0,0 (P0), P 0,8,0 (P1), P 8,0,0 (P2) , P 8,8,0 (P3) The first group can be sampled. In addition, since the sampling period is 1 in the channel direction, the pixels (P 0,0,1 , P 0,8, P 0,8, 1 , P 8,0,1, P 8,8,1 ,..., P 0,0,C-1 , P 0,8,C-1 , P 8,0,C-1 , P 8,8,C-1 ) may be sampled as the first group. The pixel sampling unit 300 may generate a first sampling feature (F_in 0,0 ) based on the pixels sampled into the first group, and the first sampling feature (F_in 0,0 ) is 2 X 2 XC has the size of

또한, 픽셀 샘플링부(300)는 동일한 방식으로 제1 채널 영상(310)에서, 제1 내지 제4 블록들(B1, B2, B3, B4) 각각에서 동일한 위치를 가지는 P 1,0,0(P4), P 9,0,0(P5), P 1,8,0(P6), P 9,8,0(P7)을 제2 그룹으로 샘플링하고, 제2 내지 제 C-1 채널 영상들에 대해서도 제1 채널 영상(310)과 동일하게, 동일한 위치의 픽셀들(P 1,0,1, P 9,0,1, P 1,8,1, P 9,8,1,..., P 1,0,C-1, P 9,0,C-1, P 1,8,C-1, P 9,8,C-1)을 제2 그룹으로 샘플링할 수 있다. 픽셀 샘플링부(300)는 제2 그룹으로 샘플링된 픽셀들에 기초하여, 제2 샘플링 특징(F_in1,0)을 생성할 수 있으며, 제2 샘플링 특징(F_in1,0)은 2 X 2 X C의 크기를 가진다.Also, in the first channel image 310 in the same manner, the pixel sampling unit 300 may perform P 1,0,0 ( P4), P 9,0,0 (P5), P 1,8,0 (P6) , and P 9,8,0 (P7) are sampled into the second group, and second to C-1 channel images In the same manner as in the first channel image 310 for , pixels P 1,0,1 , P 9,0,1 , P 1,8,1 , P 9,8,1 , ... , P 1,0,C-1 , P 9,0,C-1 , P 1,8,C-1 , P 9,8,C-1 ) may be sampled as a second group. The pixel sampling unit 300 may generate a second sampling characteristic F_in 1,0 based on the pixels sampled into the second group, and the second sampling characteristic F_in 1,0 is 2 X 2 XC has the size of

또한, 픽셀 샘플링부(300)는 동일한 방식으로 제1 채널 영상(310)에서, 제1 내지 제4 블록들 (B1, B2, B3, B4) 각각에서, 동일한 위치를 가지는 P 7,7,0(P8), P 7,15,0(P9), P 15,7,0(P10), P 15,15,0(P11) 를 제64 그룹으로 샘플링하고, 제2 내지 제 C-1 채널 영상들에 대해서도 제1 채널 영상(310)과 동일하게, 동일한 위치의 픽셀들(P 7,7,1, P 7,15,1, P 15,7,1, P 15,15,1,..., P 7,7,C-1, P 7,15,C-1, P 15,7,C-1, P 15,15,C-1)을 제 64 그룹으로 샘플링할 수 있다. 픽셀 샘플링부(300)는 제64그룹으로 샘플링된 픽셀들에 기초하여, 제64 샘플링 특징을 생성할 수 있으며, 제64 샘플링 특징(F_in7,7)은 2 X 2 X C의 크기를 가진다.In addition, in the first channel image 310 in the same manner, the pixel sampling unit 300 may have the same position in each of the first to fourth blocks B1, B2, B3, and B4 P 7, 7, 0 (P8), P 7,15,0 (P9), P 15,7,0 (P10) , P 15,15,0 (P11) is sampled into the 64th group, and the pixels P 7,7,1 , P 7,15,1 at the same position as the first channel image 310 also for the second to C-1 channel images. , P 15,7,1, P 15,15,1 ,..., P 7,7,C-1 , P 7,15,C-1 , P 15,7,C-1 , P 15,15 ,C-1 ) may be sampled as the 64th group. The pixel sampling unit 300 may generate a 64th sampling feature based on pixels sampled into the 64th group, and the 64th sampling feature F_in 7,7 has a size of 2 X 2 XC.

상기에서는 설명의 편의를 위해, W=H=16이고, L=8인 것을 예로 들어 설명하였으나, 이에 한정되지 않는다. 상기에서 설명한 방법으로 샘플링을 수행하면, 픽셀 샘플링부(300)는 L x L 개의 샘플링 특징들(F_in0,0, F_in1,0,...,F_inL-1,L-1))을 생성할 수 있으며, 샘플링 특징들 각각은 WF x HF x Cin의 크기를 가질 수 있다. 이때, WF 는 제1 영상의 너비(W)와 너비 방향으로의 샘플링 주기 L에 기초하여 결정될 수 있으며, HF 는 제1 영상의 높이(H)와 높이 방향으로의 샘플링 주기 L에 기초하여 결정될 수 있다.In the above description, for convenience of description, W=H=16 and L=8 have been described as examples, but the present invention is not limited thereto. When sampling is performed by the method described above, the pixel sampling unit 300 generates L x L sampling features (F_in 0,0 , F_in 1,0 ,...,F_in L-1,L-1 )). and each of the sampling features may have a size of W F x H F x Cin. In this case, W F may be determined based on the width (W) of the first image and the sampling period L in the width direction, and H F is the height (H) of the first image and the sampling period L in the height direction. can be decided.

도 4는 일 실시예에 따른 픽셀 샘플링 주기의 예시를 나타내는 도면이다.4 is a diagram illustrating an example of a pixel sampling period according to an embodiment.

도 4는 일 실시예에 따른 제1 영상(F_in)에 포함되는 8 x 8 크기의 블록을 나타낸다.4 illustrates an 8×8 block included in the first image F_in according to an exemplary embodiment.

도 4를 참조하면, 일 실시예에 따른 픽셀 샘플링부(300)는 너비 방향으로 Lw=4, 높이 방향으로 Lh=4의 주기로 제1 영상(F_in)을 샘플링하여, 4 x 4 개의 샘플링 특징들(F_in0,0, F_in1,0,..., F_in3,3)을 생성할 수 있으며, 샘플링 특징들(F_in0,0, F_in1,0,..., F_in3,3) 각각은 W/4 x H/4 x Cin의 크기를 가질 수 있다.Referring to FIG. 4 , the pixel sampling unit 300 according to an exemplary embodiment samples the first image F_in at a period of Lw=4 in the width direction and Lh=4 in the height direction to obtain 4×4 sampling features. (F_in 0,0 , F_in 1,0 ,..., F_in 3,3 ), each of the sampling features (F_in 0,0 , F_in 1,0 ,..., F_in 3,3 ) may have a size of W/4 x H/4 x Cin.

또한, 픽셀 샘플링부(300)는 너비 방향으로 Lw=4, 높이 방향으로 Lh=1의 주기로 제1 영상(F_in)을 샘플링하여, 4 x 1개의 샘플링 특징들(F_in0,0, F_in1,0,..., F_in3,0)을 생성할 수 있다. 이때, 샘플링 특징들 각각은 W/4 x H x Cin의 크기를 가질 수 있다.In addition, the pixel sampling unit 300 samples the first image F_in with a period of Lw=4 in the width direction and Lh=1 in the height direction, so that 4 x 1 sampling features F_in 0,0 , F_in 1 , 0 ,..., F_in 3,0 ) can be created. In this case, each of the sampling features may have a size of W/4 x H x Cin.

또한, 픽셀 샘플링부(300)는 너비 방향으로 Lw=8, 높이 방향으로 Lh=2의 주기로 제1 영상(F_in)을 샘플링하여, 8 x 2 개의 샘플링 특징들(F_in0,0, F_in1,0,..., F_in7,1)을 생성할 수 있다. 이때, 샘플링 특징들 각각은 W/8 x H/2 x Cin의 크기를 가질 수 있다.In addition, the pixel sampling unit 300 samples the first image F_in with a period of Lw=8 in the width direction and Lh=2 in the height direction, so that 8 x 2 sampling features F_in 0,0 , F_in 1 , 0 ,..., F_in 7,1 ) can be created. In this case, each of the sampling features may have a size of W/8 x H/2 x Cin.

또한, 픽셀 샘플링부(300)는 너비 방향으로 Lw=8, 높이 방향으로 Lh=1의 주기로 제1 영상(F_in)을 샘플링하여, 8 x 1 개의 샘플링 특징들(F_in0,0, F_in1,0,..., F_in8,0)을 생성할 수 있다. 이때, 샘플링 특징들 각각은 W/8 x H x Cin의 크기를 가질 수 있다.In addition, the pixel sampling unit 300 samples the first image F_in with a period of Lw=8 in the width direction and Lh=1 in the height direction, so that 8 x 1 sampling features F_in 0,0 , F_in 1 , 0 ,..., F_in 8,0 ) can be created. In this case, each of the sampling features may have a size of W/8 x H x Cin.

일 실시예에 따른 픽셀 샘플링부(300)는 영상 처리 시스템의 복잡도, 메모리, 라인 프로세싱(line processing) 수행 여부, 디인터레이싱(deinteracing) 수행 여부, 인코딩 정보(예를 들어, 압축 파라미터 등) 등에 기초하여, 너비 방향 및 높이 방향의 샘플링 주기를 결정할 수 있다. 또한, 일 실시예에 따른 샘플링 주기는 도 4에 도시된 샘플링 주기에 한정되지 않으며, 다양한 샘플링 주기를 포함할 수 있다.The pixel sampling unit 300 according to an exemplary embodiment may be configured based on the complexity of the image processing system, memory, whether line processing is performed, whether deinterlacing is performed, encoding information (eg, compression parameter, etc.), etc. , the sampling period in the width direction and the height direction may be determined. In addition, the sampling period according to an exemplary embodiment is not limited to the sampling period illustrated in FIG. 4 , and may include various sampling periods.

도 5는 일 실시예에 따른 컨볼루션부의 동작을 설명하기 위해 참조되는 도면이다.5 is a diagram referenced to describe an operation of a convolution unit according to an embodiment.

도 5를 참조하면, 컨볼루션부(400)는 픽셀 샘플링부(300)에서 생성한 n개의 샘플링 특징들 각각과 n개의 커널들 각각과의 컨볼루션(그룹 컨볼루션)을 수행할 수 있으며, 컨볼루션 연산은 수학식 2로 나타낼 수 있다. Referring to FIG. 5 , the convolution unit 400 may perform convolution (group convolution) with each of n sampling features generated by the pixel sampling unit 300 and each of n kernels, The solution operation can be expressed by Equation (2).

[수학식 2][Equation 2]

F_outu,v=Conv2D(input=F_inu,v, kernel=Ku,v, stride=1)F_out u,v =Conv2D(input=F_in u,v , kernel=K u,v , stride=1)

수학식 2에서, F_inu,v는 n개의 샘플링 특징들 중 하나를 나타내며, Ku,v는 입력되는 샘플링 특징에 대응하는 커널을 나타내며, 스트라이드의 크기는 1임을 나타낸다. 스트라이트의 크기가 1이면, 입력된 샘플링 특징에 포함되는 픽셀들을 한 픽셀씩 이동하면서 컨볼루션 연산을 수행한다는 의미이다.In Equation 2, F_in u,v represents one of n sampling features, K u,v represents a kernel corresponding to the input sampling feature, and the size of the stride represents 1. If the size of the stride is 1, it means that the convolution operation is performed while moving pixels included in the input sampling feature one by one.

도 5및 수학식 2를 참조하면, n개의 샘플링 특징들 각각에는 서로 다른 커널들이 적용될 수 있다. 예를 들어, 컨볼루션부(400)는 제1 샘플링 특징(F_in0,0)에 제1 커널(K0,0)을 적용하여, 제1 샘플링 특징(F_in0,0)과 제1 커널(K0,0)과의 컨볼루션 연산을 수행함으로써, 제1 출력 특징(F_out0,0)을 생성할 수 있다.5 and Equation 2, different kernels may be applied to each of the n sampling features. For example, the convolution unit 400 is the first sampling characterized by applying the first kernel (K 0,0) to (0,0 F_in), the first sampling features (F_in 0,0) with the first kernel ( By performing a convolution operation with K 0,0 ), the first output feature F_out 0,0 may be generated.

또한, 제1 커널(K0,0)은 Cout개의 서브 커널들을 포함할 수 있으며, 하나의 서브 커널은 WK x HK x Cin의 크기를 가질 수 있다. 하나의 서브 커널의 채널 수(Cin)는 샘플링 특징의 채널 수(Cin)와 동일할 수 있다.Also, the first kernel K 0,0 may include Cout sub-kernels, and one sub-kernel may have a size of W K x H K x Cin. The number of channels (Cin) of one sub-kernel may be the same as the number of channels (Cin) of the sampling feature.

또한, 컨볼루션부(400)는 제2 샘플링 특징(F_in1,0)에 제2 커널(K1,0)을 적용하여, 제2 샘플링 특징(F_in1,0)과 제2 커널(K1,0)과의 컨볼루션 연산을 수행함으로써, 제2 출력 특징(F_out1,0)을 생성할 수 있다. 또한, 컨볼루션부(400)는 제n 샘플링 특징(F_inL-1,L-1)에 제n 커널(KL-1,L-1)을 적용하여, 제n 샘플링 특징(F_inL-1,L-1)과 제n커널(KL-1,L-1)과의 컨볼루션 연산을 수행함으로써, 제n 출력 특징(F_outL-1,L-1)을 생성할 수 있다. 또한, 제2 내지 제 n커널들 각각은 Cout개의 서브 커널들을 포함할 수 있으며, 하나의 서브 커널은 WK x HK x Cin의 크기를 가질 수 있다.Also, the convolution unit 400 is the second sampling characterized by applying a second kernel (K 1,0) to (1,0 F_in), the second sampling features (F_in 1,0) with the second kernel (K 1 ,0 ), the second output feature F_out 1,0 may be generated. In addition, the convolution unit 400 applies the n -th kernel (K L-1,L-1 ) to the n-th sampling feature (F_in L-1,L-1 ), and the n-th sampling feature (F_in L-1) ,L-1 ) and the n -th kernel K L-1,L-1 are convolved to generate an n-th output feature F_out L-1,L-1. In addition, each of the second to nth kernels may include Cout sub-kernels, and one sub-kernel may have a size of W K x H K x Cin.

이때, 컨볼루션 연산 결과 출력되는 특징들(F_out0,0, F_out1,0,..., F_outL-1,L-1) 각각의 너비와 높이는 샘플링 특징들과 동일하며, 출력되는 특징들의 채널 수는 하나의 커널에 포함되는 서브 커널들의 개수에 기초하여 결정될 수 있다. 예를 들어, 일 실시예에 따른 샘플링 특징들 각각이 WF x HF x Cin 크기를 가지고, 하나의 커널에 포함되는 서브 커널들의 개수가 Cout이면, 출력되는 n개의 특징들 각각은 WF x HF x Cout의 크기를 가질 수 있다.At this time, the width and height of each of the features output as a result of the convolution operation (F_out 0,0 , F_out 1,0 ,..., F_out L-1,L-1 ) are the same as the sampling features, and The number of channels may be determined based on the number of sub-kernels included in one kernel. For example, if each of the sampling features according to an embodiment has a size of W F x H F x Cin and the number of sub-kernels included in one kernel is Cout, each of the output n features is W F x It may have a size of H F x Cout.

일 실시예에 따른 n개의 샘플링 특징들은 픽셀들의 블록 내에서의 위치 별로 샘플링된 특징들로, 하나의 샘플링 특징은, 아티팩트가 발생할 확률이 유사한 픽셀들끼리 샘플링 된 정보일 수 있다. 또한, 도 5에서 설명한 바와 같이, n개의 샘플링 특징들 각각에는 서로 다른 커널들이 적용되므로, 아티팩트가 발생할 확률에 따라 서로 다른 커널들이 적용되게 된다. 이에 따라, 블록 경계에서 주로 발생하는 압축 아티팩트를 효과적으로 제거할 수 있다.According to an embodiment, the n sampling features are features sampled for each position in a block of pixels, and one sampling feature may be information sampled between pixels having a similar probability of occurrence of an artifact. Also, as described with reference to FIG. 5 , different kernels are applied to each of the n sampling features, so that different kernels are applied according to the probability of occurrence of artifacts. Accordingly, it is possible to effectively remove compression artifacts mainly occurring at block boundaries.

도 6은 일 실시예에 따른 픽셀 합성부의 동작을 설명하기 위해 참조되는 도면이다.6 is a reference diagram for describing an operation of a pixel combining unit according to an exemplary embodiment.

도 6을 참조하면, 픽셀 합성부(500)는 컨볼루션부(400)에서 출력된 n개의 특징들(F_out0,0, F_out1,0, ..., F_outL-1,L-1)을 합성하여, 제2 영상(F_out)을 생성할 수 있다. 이때, 제2 영상(F_out)의 너비와 높이는 제1 영상(F_in)과 동일하며, 제2 영상(F_out)의 채널 수는 컨볼루션부(400)에서 출력된 n 개의 특징들(F_out0,0, F_out1,0, ..., F_outL-1,L-1) 각각의 채널 수(Cout)와 동일하게 결정될 수 있다.Referring to FIG. 6 , the pixel synthesizing unit 500 includes n features (F_out 0,0, F_out 1,0, ..., F_out L-1,L-1 ) output from the convolution unit 400 . may be synthesized to generate a second image F_out. In this case, the width and height of the second image F_out are the same as those of the first image F_in, and the number of channels of the second image F_out is the number of n features F_out 0,0 output from the convolution unit 400 . , F_out 1,0, ..., F_out L-1,L-1 ) may be determined to be the same as the number of channels Cout of each.

픽셀 합성부(500)는 픽셀 샘플링부(300)가 픽셀을 샘플링한 주기에 기초하여, 제2 영상(F_out)을 생성할 수 있다. 픽셀 합성부(500)는 수학식 3과 같이, 컨볼루션부(400)에서 출력된 n 개의 특징들(F_out0,0, F_out1,0, ..., F_outL-1,L-1)에 기초하여, 제2 영상(F_out)을 생성할 수 있다.The pixel synthesizing unit 500 may generate the second image F_out based on a period in which the pixel sampling unit 300 samples the pixels. As shown in Equation 3, the pixel synthesizing unit 500 includes n features (F_out 0,0, F_out 1,0, ..., F_out L-1,L-1 ) output from the convolution unit 400 . Based on , the second image F_out may be generated.

[수학식 3][Equation 3]

F_out[u:L:W-1, v:L:H-1, 0:1:Cout-1]=F_outu,v F_out[u:L:W-1, v:L:H-1, 0:1:Cout-1]=F_out u,v

예를 들어, 픽셀 합성부(500)는 픽셀 샘플링부(300)에서 제1 영상(F_in)이 너비 방향으로 L의 주기로, 높이 방향으로 L의 주기로 샘플링된 경우, 제2 영상(F_out)을 L x L 크기의 블록들로 나누고, 출력 특징들(F_out0,0, F_out1,0, ..., F_outL-1,L-1) 각각에 포함된 픽셀 값들을 블록들 각각에서 동일한 위치를 가지는 픽셀들의 픽셀 값들로 결정할 수 있다.For example, when the first image F_in is sampled with a period of L in the width direction and a period of L in the height direction by the pixel sampling unit 300 , the pixel combining unit 500 sets the second image F_out to L It is divided into blocks of size x L, and the pixel values included in each of the output features (F_out 0,0, F_out 1,0, ..., F_out L-1,L-1 ) are located at the same position in each of the blocks. It can be determined by pixel values of the pixels.

이하에서는, 설명의 편의를 위하여, 출력 특징들(F_out0,0, F_out1,0, ..., F_outL-1,L-1) 각각은 2 X 2 X Cout의 크기를 가지고, 제2 영상은 16 X 16 X Cout 의 크기를 가지며, L=8인 경우를 예로 들어, 출력 특징들을 합성하는 방법을 설명하기로 한다.Hereinafter, for convenience of description, each of the output features F_out 0,0, F_out 1,0, ..., F_out L-1,L-1 has a size of 2 X 2 X Cout, and the second An image has a size of 16 X 16 X Cout and a method of synthesizing output features will be described by taking the case of L=8 as an example.

이때, 채널들 각각에서 특징들을 합성하는 방법은 동일하므로, 하나의 채널 영상을 기준으로 설명하기로 한다. 도 6을 참조하면, 제1 내지 제n 출력 특징들(F_out0,0, F_out1,0, ..., F_outL-1,L-1) 각각에 포함된 제1 채널 영상들(F_out0,0,0, F_out1,0,0, ..., F_outL-1,L-1,0)은 2 x 2의 크기를 가지고, 제2 영상(F_out)에 포함된 제1 채널 영상(610)은 16 x 16의 크기를 가진다. 또한, L=8이므로, 제2 영상(F_out)의 제1 채널 영상(610)은 8 x 8 크기의 블록들(제1 내지 제4 블록들)로 나눠질 수 있다.In this case, since the method of synthesizing features in each of the channels is the same, the description will be made based on a single channel image. Referring to FIG. 6 , the first channel images F_out 0 included in each of the first to nth output features F_out 0,0, F_out 1,0, ..., F_out L-1,L-1 . ,0,0, F_out 1,0,0, ..., F_out L-1,L-1,0 ) has a size of 2 x 2, and the first channel image ( 610) has a size of 16 x 16. Also, since L=8, the first channel image 610 of the second image F_out may be divided into 8×8 blocks (first to fourth blocks).

픽셀 합성부(500)는 제1 출력 특징(F_out0,0)의 제1 채널 영상(F_out0,0,0)에 포함된 픽셀 값들을 제2 영상(F_out)의 제1 채널 영상(610)에 포함된 제1 내지 제4 블록들(B1, B2, B3, B4) 각각에서 (0, 0) 위치를 가지는 픽셀들(P0, P1, P2, P3)의 픽셀 값들로 결정할 수 있다. 또한, 제2 출력 특징(F_out1,0)의 제1 채널 영상(F_out1,0,0)에 포함된 픽셀 값들을 제1 채널 영상(610)의 제1 내지 제4 블록들(B1, B2, B3, B4) 각각에서 (0, 1) 위치를 가지는 픽셀들(P4, P5, P6, P7)의 픽셀 값들로 결정할 수 있다. 또한, 제n 출력 특징(F_outL-1,L-1)의 제1 채널 영상(F_outL-1,L-1,0)에 포함된 픽셀 값들을 제1 채널 영상(610)의 제1 내지 제4 블록들(B1, B2, B3, B4) 각각에서 (7, 7) 위치를 가지는 픽셀들(P8, P9, P10, P11)의 픽셀 값들로 결정할 수 있다. 이와 같이, 픽셀 합성부(500)는 제1 내지 제 n 출력 특징들(F_out0,0, F_out1,0, ..., F_outL-1,L-1) 각각에 포함된 제1 채널 영상들(F_out0,0,0, F_out1,0,0, ..., F_outL-1,L-1,0)의 픽셀 값들을 이용하여, 제2 영상(F_out)의 제1 채널 영상(610)을 생성할 수 있다. 또한, 동일한 방식으로 제2 영상(F_out)의 제2 내지 제 Cout 채널 영상들을 생성할 수 있다.The pixel synthesizer 500 combines pixel values included in the first channel image F_out 0,0,0 of the first output feature F_out 0,0 to the first channel image 610 of the second image F_out. It may be determined as pixel values of the pixels P0, P1, P2, and P3 having a position (0, 0) in each of the first to fourth blocks B1, B2, B3, and B4 included in . In addition, pixel values included in the first channel image F_out 1,0,0 of the second output feature F_out 1,0 are applied to the first to fourth blocks B1 and B2 of the first channel image 610 . , B3, B4) may be determined as pixel values of pixels P4, P5, P6, and P7 having positions (0, 1), respectively. In addition, pixel values included in the first channel image F_out L-1,L-1,0 of the n-th output feature F_out L-1,L-1 are applied to the first to first channel images 610 of the first channel image 610 . It may be determined as pixel values of the pixels P8, P9, P10, and P11 having positions (7, 7) in each of the fourth blocks B1, B2, B3, and B4. As such, the pixel synthesizing unit 500 includes the first channel image included in each of the first to nth output features F_out 0,0, F_out 1,0, ..., F_out L-1,L-1. The first channel image ( F_out) of the second image F_out using pixel values of the fields F_out 0,0,0, F_out 1,0,0, ..., F_out L-1,L-1,0 610) can be created. Also, second to Cout channel images of the second image F_out may be generated in the same manner.

한편, 도 2 내지 도 6에서 도시하고 설명한 픽셀 샘플링부(300), 컨볼루션부(400), 및 픽셀 합성부(500) 중 적어도 하나는, 하드웨어 칩 형태로 제작되어 영상 처리 장치(100)에 탑재될 수 있다. 예를 들어, 픽셀 샘플링부(300), 컨볼루션부(400) 및 픽셀 합성부(500)중 적어도 하나는, 인공 지능(AI;artificial intelligence)을 위한 전용 하드웨어 칩 형태로 제작될 수도 있고, 또는 기존의 범용 프로세서(예: CPU 또는 application processor) 또는 그래픽 전용 프로세서(예: GPU)의 일부로 제작되어 일 실시예에 따른 영상 처리 장치(100)에 탑재될 수도 있다.Meanwhile, at least one of the pixel sampling unit 300 , the convolution unit 400 , and the pixel synthesis unit 500 illustrated and described with reference to FIGS. 2 to 6 is manufactured in the form of a hardware chip to be installed in the image processing apparatus 100 . can be mounted. For example, at least one of the pixel sampling unit 300, the convolution unit 400, and the pixel synthesis unit 500 may be manufactured in the form of a dedicated hardware chip for artificial intelligence (AI), or It may be manufactured as a part of an existing general-purpose processor (eg, CPU or application processor) or graphics-only processor (eg, GPU) and mounted on the image processing apparatus 100 according to an embodiment.

또한, 픽셀 샘플링부(300), 컨볼루션부(400), 및 픽셀 합성부(500) 중 적어도 하나는, 소프트웨어 모듈로 구현될 수 있다. 픽셀 샘플링부(300), 컨볼루션부(400), 및 픽셀 합성부(500) 중 적어도 하나가 소프트웨어 모듈(또는, 인스터력션(instruction) 포함하는 프로그램 모듈)로 구현되는 경우, 소프트웨어 모듈은 컴퓨터로 읽을 수 있는 판독 가능한 비일시적 판독 가능 기록매체(non-transitory computer readable media)에 저장될 수 있다. 또한, 이 경우, 적어도 하나의 소프트웨어 모듈은 OS(Operating System)에 의해 제공되거나, 소정의 애플리케이션에 의해 제공될 수 있다. 또는, 적어도 하나의 소프트웨어 모듈 중 일부는 OS(Operating System)에 의해 제공되고, 나머지 일부는 소정의 애플리케이션에 의해 제공될 수 있다.Also, at least one of the pixel sampling unit 300 , the convolution unit 400 , and the pixel synthesis unit 500 may be implemented as a software module. When at least one of the pixel sampling unit 300, the convolution unit 400, and the pixel synthesis unit 500 is implemented as a software module (or a program module including an instruction), the software module is a computer It may be stored in a readable non-transitory computer readable medium that can be read by a user. Also, in this case, at least one software module may be provided by an operating system (OS) or may be provided by a predetermined application. Alternatively, a part of the at least one software module may be provided by an operating system (OS), and the other part may be provided by a predetermined application.

도 7은 다른 실시예에 따른 도 1의 하나의 컨볼루션 레이어를 나타내는 도면이다.7 is a diagram illustrating one convolutional layer of FIG. 1 according to another embodiment.

도 7을 참조하면, 다른 실시예에 따른 하나의 컨볼루션 레이어(700)는 특징 추출부(710), 컨볼루션부(720) 및 픽셀 합성부(730)를 포함할 수 있다. 도 7의 컨볼루션부(720) 및 픽셀 합성부(730)는 도 2의 컨볼루션부(400) 및 픽셀 합성부(500)와 동일하므로, 구체적인 설명은 생략하기로 한다.Referring to FIG. 7 , one convolutional layer 700 according to another embodiment may include a feature extraction unit 710 , a convolution unit 720 , and a pixel synthesis unit 730 . Since the convolution unit 720 and the pixel combining unit 730 of FIG. 7 are the same as the convolution unit 400 and the pixel combining unit 500 of FIG. 2 , a detailed description thereof will be omitted.

또한, 도 7의 컨볼루션 레이어(700)는 도 1의 제1 내지 제N 컨볼루션 레이어들(210, 220,..., 290) 중 어느 하나일 수 있다.Also, the convolutional layer 700 of FIG. 7 may be any one of the first to Nth convolutional layers 210 , 220 , ..., 290 of FIG. 1 .

이하, 도 8 및 도 9를 참조하여, 도 7의 컨볼루션 레이어에서 수행되는 동작을 구체적으로 설명하기로 한다.Hereinafter, an operation performed in the convolutional layer of FIG. 7 will be described in detail with reference to FIGS. 8 and 9 .

도 8은 도 7의 컨볼루션 레이어에서 수행되는 동작을 설명하기 위해 참조되는 도면이다.FIG. 8 is a diagram referenced to describe an operation performed in the convolution layer of FIG. 7 .

도 8을 참조하면, 일 실시예에 따른 특징 추출부(710)는 제1 영상(F_in)과 커널(P0,0, P1,0,...,PL-1,L-1)과의 컨볼루션을 수행함으로써, n개의 히든 특징들을 생성할 수 있다.Referring to FIG. 8 , the feature extraction unit 710 according to an embodiment includes a first image F_in and a kernel P 0,0 , P 1,0 ,...,P L-1,L-1 . By performing convolution with , it is possible to generate n hidden features.

일 실시예에 따른 제1 영상(F_in)은 W x H x Cin의 크기를 가진다. 이때, W는 제1 영상(F_in)의 너비를 나타내고, H는 제1 영상(F_in)의 높이를 나타내며, Cin는 제1 영상(F_in)의 채널 수를 나타낸다.The first image F_in according to an embodiment has a size of W x H x Cin. In this case, W denotes the width of the first image F_in, H denotes the height of the first image F_in, and Cin denotes the number of channels of the first image F_in.

특징 추출부(710)는 다음의 수학식 4와 같이, 제1 영상(F_in)과 커널(P0,0, P1,0,...,PL-1,L-1)과의 컨볼루션 연산을 수행할 수 있다.The feature extraction unit 710 is a convolution between the first image F_in and the kernel P 0,0 , P 1,0 ,...,P L-1,L-1 as shown in Equation 4 below. You can perform a solution operation.

[수학식 4][Equation 4]

F_hiddenu,v=Conv2D(input=F_in[u:1:W-1, v:1:H-1,0:1:Cin-1], kernel=Pu,v, stride=L)F_hidden u,v =Conv2D(input=F_in[u:1:W-1, v:1:H-1,0:1:Cin-1], kernel=Pu,v, stride=L)

수학식 4에서 F_hiddenu,v 는 컨볼루션 연산을 통해 추출된 히든 특징을 나타내고, Conv2D (input, kernel, stride = L)는, input과 kernel을 스트라이트 크기 L로 컨볼루션 연산을 수행함을 나타낸다. 이때, F_in은 제1 영상을 나타내며, F_in[]는 제1 영상(F_in)에 포함되는 픽셀들 중 입력 영상(input)에 포함시킬 픽셀들을 샘플링하는 연산을 나타낸다. u:1:W-1은 제1 영상(F_in)의 너비 방향으로 u 지점에 위치하는 픽셀에서 시작하여, W-1지점에 위치하는 픽셀까지 한 픽셀씩 이동하여 샘플링하는 것을 의미하는 것으로, 제1 영상(F_in)의 너비 방향으로 u 지점에 위치한 픽셀부터 W-1지점에 위치한 픽셀까지의 모든 픽셀들이 입력 영상에 포함된다.In Equation 4, F_hidden u,v represents a hidden feature extracted through a convolution operation, and Conv2D (input, kernel, stride = L) represents that a convolution operation is performed on input and kernel with stride size L. In this case, F_in represents the first image, and F_in[] represents an operation of sampling pixels to be included in the input image, among pixels included in the first image F_in. u:1:W-1 means that sampling is performed by moving one pixel at a time from the pixel positioned at the u point in the width direction of the first image F_in to the pixel positioned at the W-1 point. 1 In the width direction of the image F_in, all pixels from the pixel located at the u point to the pixel located at the W-1 point are included in the input image.

또한, v:1:H-1은 제1 영상(F_in)의 높이 방향으로 v 지점에 위치하는 픽셀에서 시작하여, H-1지점에 위치하는 픽셀까지 한 픽셀씩 이동하여 샘플링하는 것을 의미하는 것으로, 제1 영상(F_in)의 높이 방향으로 v 지점에 위치하는 픽셀부터, H-1지점에 위치한 픽셀까지의 모든 픽셀들이 입력 영상에 포함된다. 또한, 0:1:C-1은 제1 영상의 채널 방향으로 0 지점에 위치한 픽셀부터, C-1 지점에 위치한 픽셀까지 모든 픽셀들을 샘플링하는 것을 의미한다.In addition, v:1:H-1 means sampling by moving one pixel at a time from the pixel located at the point v in the height direction of the first image F_in to the pixel located at the point H-1. , all pixels from the pixel positioned at the point v in the height direction of the first image F_in to the pixel positioned at the point H-1 are included in the input image. Also, 0:1:C-1 means sampling all pixels from a pixel located at point 0 to a pixel located at point C-1 in the channel direction of the first image.

특징 추출부(710)가 입력 영상(input)과 커널(kernel)과의 컨볼루션 연산을 수행할 때, 입력 영상(input) 내에서 컨볼루션 연산의 대상이 되는 데이터(픽셀 값)는 스트라이드의 크기만큼 이동하면서 스캔될 수 있다. 예를 들어, 특징 추출부(710)는 스트라이드의 크기가 L인 경우, 입력 영상(input)내에서 L개의 픽셀만큼 데이터를 이동시키면서 커널과의 컨볼루션 연산을 수행할 수 있다.When the feature extraction unit 710 performs a convolution operation between the input image (input) and the kernel (kernel), data (pixel values) that are the target of the convolution operation in the input image (input) is the size of the stride It can be scanned while moving as much as possible. For example, when the size of the stride is L, the feature extractor 710 may perform a convolution operation with the kernel while moving data by L pixels in the input image.

특징 추출부(710)가 컨볼루션 연산을 수행하여, 히든 특징을 생성하는 방법에 대해서는 도 9를 참조하여 자세히 설명하기로 한다.A method in which the feature extraction unit 710 performs a convolution operation to generate a hidden feature will be described in detail with reference to FIG. 9 .

도 9는 일 실시예에 따른 특징 추출부가 컨볼루션 연산을 수행하는 동작을 설명하기 위해 참조되는 도면이다.9 is a diagram referenced to describe an operation of a feature extractor performing a convolution operation according to an embodiment.

도 9에서는, 설명의 편의를 위해, 제1 영상(F_in)에 포함되는 하나의 채널 영상이 16 x 16의 크기를 가지며, L=8인 경우를 예로 들어, 복수의 히든 특징들을 생성하는 방법을 설명하기로 한다.In FIG. 9 , for convenience of explanation, a method of generating a plurality of hidden features is illustrated by taking the case where one channel image included in the first image F_in has a size of 16 x 16 and L = 8 as an example. to explain

도 9를 참조하면, 입력 데이터(910)는 제1 영상(F_in)의 제1 채널 영상(910)을 나타내며, 특징 추출부(710)는 입력 데이터(910)의 좌측 상단 8 x 8 영역(915)에 포함되는 픽셀들에 커널(920, P0,0)을 적용하여 컨볼루션 연산을 수행할 수 있다. 즉, 좌측 상단 8 x 8 영역(915)에 포함되는 픽셀 값들과 커널(920)에 포함되는 가중치 값들을 곱하여 합산함으로써, 좌측 상단 8 x 8 영역에 매핑되는 하나의 픽셀값(931)을 생성할 수 있다.Referring to FIG. 9 , the input data 910 represents a first channel image 910 of the first image F_in, and the feature extractor 710 includes an upper left 8×8 area 915 of the input data 910 . ), a convolution operation may be performed by applying the kernel 920, P 0,0 to pixels included in the . That is, by multiplying and summing pixel values included in the upper left 8 x 8 region 915 by weight values included in the kernel 920 , one pixel value 931 mapped to the upper left 8 x 8 region is generated. can

또한, 입력 데이터(910)의 좌측 상단 8 x 8 영역(915)에서 너비 방향(우측)으로 8픽셀들만큼 이동시킨 8 x 8 영역(925)에 포함되는 픽셀 값들과 커널(920)에 포함되는 가중치 값들을 곱하여 합산함으로써, 8 x 8 영역(925)에 매핑되는 하나의 픽셀 값(932)을 생성할 수 있다. In addition, pixel values included in the 8×8 region 925 moved by 8 pixels from the upper left 8×8 region 915 of the input data 910 in the width direction (right) and included in the kernel 920 By multiplying and summing the weight values, one pixel value 932 mapped to the 8×8 area 925 may be generated.

동일한 방식으로, 입력 데이터(910) 내에서 컨볼루션 연산의 대상을 좌측에서 우측으로(너비 방향으로), 상단에서 하단으로(높이 방향으로), 8 픽셀들만큼 이동시키면서, 커널(920)에 포함되는 가중치 값들을 곱하여 합산함으로써, 픽셀 값들(예를 들어, 제3 픽셀 값, 제4 픽셀 값)을 생성할 수 있다. 이에 따라, 입력 데이터(910)에 대응하여, 2 x 2의 히든 특징(F_hidden0,0,0)이 출력될 수 있다.In the same manner, the object of the convolution operation in the input data 910 is moved from left to right (in the width direction) and from the top to the bottom (in the height direction) by 8 pixels, and included in the kernel 920 By multiplying and summing the weighted values, pixel values (eg, a third pixel value and a fourth pixel value) may be generated. Accordingly, in response to the input data 910 , a 2×2 hidden feature F_hidden 0,0,0 may be output.

도 9에서는 설명의 편의를 위하여, 제1 영상(F_in)의 하나의 채널 영상에 대해서만 설명하였으나, 다른 채널 영상들 각각에 대해서도 도 9에서 설명한 방식과 동일한 방식으로 컨볼루션을 수행할 수 있다. In FIG. 9 , for convenience of explanation, only one channel image of the first image F_in has been described, but convolution may be performed on each of the other channel images in the same manner as described in FIG. 9 .

또한, 도 9에서는 설명의 편의를 위해, W=H=16이고, L=8인 것을 예로 들어 설명하였으나, 이에 한정되지 않으며, 도 9에서 설명한 방법으로 컨볼루션 연산을 수행하면, L x L 개의 히든 특징들(F_hidden0,0, F_ hidden 1,0,...,F_ hidden L-1,L-1)을 생성할 수 있으며, 히든 특징들 각각은 WF x HF x Cin의 크기를 가질 수 있다. 이때, WF 는 제1 영상의 너비(W)와 너비 방향으로의 스트라이드 크기 L에 기초하여 결정될 수 있으며, HF 는 제1 영상의 높이(H)와 높이 방향으로의 스트라이드 크기 L에 기초하여 결정될 수 있다.In addition, for convenience of explanation, in FIG. 9 , W=H=16 and L=8 have been described as examples, but the present invention is not limited thereto. Hidden features (F_hidden 0,0 , F_hidden 1,0 ,..., F_hidden L-1,L-1 ) can be generated, and each of the hidden features has a size of W F x H F x Cin. can have In this case, W F may be determined based on the width (W) of the first image and the stride size L in the width direction, and H F is the height (H) of the first image and the stride size L in the height direction. can be decided.

일 실시예에 따른 히든 특징들(F_hidden0,0, F_ hidden 1,0,...,F_ hidden L-1,L-1)은 제1 영상(F_in)과 커널(P0,0, P1,0,...,PL-1,L-1)과의 컨볼루션 연산을 수행함으로써 생성된 특징들로, 타겟이 되는 픽셀의 주변 픽셀들의 특징이 함께 반영된 정보일 수 있다.The hidden features F_hidden 0,0 , F_hidden 1,0 ,..., F_hidden L-1,L-1 according to an embodiment include the first image F_in and the kernel P 0,0 , P 1,0 ,...,P L-1,L-1 ), the features are generated by performing a convolution operation, and may be information in which features of neighboring pixels of a target pixel are also reflected.

다시, 도 8을 참조하면, 컨볼루션부(720)는 특징 추출부(710)에서 생성한 n개의 히든 특징들(F_hidden0,0, F_ hidden 1,0,...,F_ hidden L-1,L-1)과 커널들과의 컨볼루션을 수행할 수 있으며, 컨볼루션 연산은 수학식 5로 나타낼 수 있다.Again, referring to FIG. 8 , the convolution unit 720 includes the n hidden features F_hidden 0,0 , F_hidden 1,0 ,..., F_hidden L-1 generated by the feature extraction unit 710 . , L-1 ) and the kernels can be convolved, and the convolution operation can be expressed by Equation (5).

[수학식 5][Equation 5]

F_outu,v=Conv2D(input=F_hiddenu,v, kernel=Ku,v, stride=1)F_out u,v =Conv2D(input=F_hidden u,v , kernel=K u,v , stride=1)

수학식 5에서 F_hiddenu,v 는 n개의 히든 특징들 중 하나를 나타내며, Ku,v는 입력되는 히든 특징에 대응하는 커널을 나타내며, 스트라이드의 크기는 1임을 나타낸다.In Equation 5, F_hidden u,v represents one of n hidden features, K u,v represents a kernel corresponding to the input hidden feature, and the size of the stride is 1.

예를 들어, 컨볼루션부(720)는 제1 히든 특징(F_hidden0,0)에 제1 커널(K0,0)을 적용하여, 제1 히든 특징(F_hidden0,0)과 제1 커널(K0,0)과의 컨볼루션 연산을 수행함으로써, 제1 출력 특징(F_out0,0)을 생성할 수 있다. 또한, 제1 커널(K0,0)은 Cout개의 서브 커널들을 포함할 수 있으며, 하나의 서브 커널은 WK x HK x Cin의 크기를 가질 수 있다. 하나의 서브 커널의 채널 수는 히든 특징의 채널 수(Cin)와 동일할 수 있다.For example, a convolution unit 720, a first hidden characterized by applying the first kernel (K 0,0) to (0,0 F_hidden), the first hidden features (F_hidden 0,0) with the first kernel ( By performing a convolution operation with K 0,0 ), the first output feature F_out 0,0 may be generated. Also, the first kernel K 0,0 may include C out sub-kernels, and one sub-kernel may have a size of W K x H K x C in . The number of channels of one sub-kernel may be equal to the number of channels (Cin) of the hidden feature.

또한, 컨볼루션부(720)는 제2 히든 특징(F_hidden1,0)에 제2 커널(K1,0)을 적용하여, 제2 히든 특징(F_hidden1,0)과 제2 커널(K1,0)과의 컨볼루션 연산을 수행함으로써, 제2 출력 특징(F_out1,0)을 생성할 수 있다. 또한, 컨볼루션부(720)는 제n 히든 특징(F_hiddenL-1,L-1)에 제n 커널(KL-1,L-1)을 적용하여, 제n 히든 특징(F_hiddenL-1,L-1)과 제n 커널(KL-1,L-1)과의 컨볼루션 연산을 수행함으로써, 제n 출력 특징(F_outL-1,L-1)을 생성할 수 있다. 또한, 제2 내지 제 n 커널들(K1,0,..., KL-1,L-1) 각각은 Cout개의 서브 커널들을 포함할 수 있으며, 하나의 서브 커널은 WK x HK x Cin의 크기를 가질 수 있다.Also, the convolution unit 720, a second hidden characterized by applying a second kernel (K 1,0) to (1,0 F_hidden), the second hidden features (F_hidden 1,0) with the second kernel (K 1 ,0 ), the second output feature F_out 1,0 may be generated. In addition, the convolution unit 720 applies the n -th kernel (K L-1,L-1 ) to the n-th hidden feature (F_hidden L-1,L-1 ), and the n-th hidden feature (F_hidden L-1) ,L-1 ) and the n -th kernel (K L-1,L-1 ) are convolved to generate an n-th output feature (F_out L-1,L-1). In addition, each of the second to nth kernels K 1,0 ,..., K L-1,L-1 may include Cout sub-kernels, and one sub-kernel is W K x H K x Cin.

이때, 컨볼루션 연산 결과 출력되는 특징들(F_out0,0, F_out1,0,..., F_outL-1,L-1) 각각의 너비와 높이는 히든 특징과 동일하며, 출력되는 특징의 채널 수는 하나의 커널에 포함되는 서브 커널들의 개수에 기초하여 결정될 수 있다. 예를 들어, 일 실시예에 따른 히든 특징들 각각이 WF x HF x Cin 크기를 가지고, 하나의 커널에 포함되는 서브 커널들의 개수가 Cout이면, 출력되는 N개의 특징들 각각은 WF x HF x Cout의 크기를 가질 수 있다.At this time, the width and height of each of the features output as a result of the convolution operation (F_out 0,0 , F_out 1,0 ,..., F_out L-1,L-1 ) are the same as the hidden feature, and the channel of the output feature The number may be determined based on the number of sub-kernels included in one kernel. For example, if each of the hidden features according to an embodiment has a size of W F x H F x C in and the number of sub-kernels included in one kernel is Cout, each of the output N features is W F It may have a size of x H F x Cout.

또한, 일 실시예에 따른 픽셀 합성부(730)는 컨볼루션부(720)에서 출력된 n개의 특징들을 합성하여, 제2 영상(F_out)을 생성할 수 있다. 픽셀 합성부(730)는 특징 추출부(710)가 히든 특징들(F_hidden0,0, F_ hidden 1,0,...,F_ hidden L-1,L-1)을 생성하기 위해 수행한 컨볼루션 연산에 적용되는 스트라이드의 크기 L에 기초하여, 제2 영상(F_out)을 생성할 수 있다. 픽셀 합성부(730)는 수학식 3에 기초하여, 제2 영상(F_out)을 생성할 수 있다.Also, the pixel synthesizer 730 according to an embodiment may synthesize the n features output from the convolution unit 720 to generate the second image F_out. The pixel combining unit 730 performs the convolution performed by the feature extracting unit 710 to generate the hidden features F_hidden 0,0 , F_hidden 1,0 ,..., F_hidden L-1,L-1 ). The second image F_out may be generated based on the size L of the stride applied to the solution operation. The pixel synthesizer 730 may generate the second image F_out based on Equation 3 .

예를 들어, 픽셀 합성부(730)는 특징 추출부(710)에서 제1 영상(F_in)과 커널(P0,0, P1,0,...,PL-1,L-1)과의 컨볼루션 연산 수행 시, 스트라이트 크기를 L로 한 경우, 제2 영상(F_out)을 L x L 크기의 블록들로 나누고, 출력 특징들(F_out0,0, F_out1,0, ..., F_outL-1,L-1) 각각에 포함된 픽셀 값들을 블록들 각각에서 동일한 위치를 가지는 픽셀들의 픽셀 값들로 결정할 수 있다. 이에 대해서는 도 6에서 자세히 설명하였으므로 구체적인 설명은 생략하기로 한다.For example, the pixel synthesizer 730 performs the first image F_in and the kernel P 0,0 , P 1,0 ,...,P L-1,L-1 in the feature extraction unit 710 . When performing a convolution operation with and, if the stride size is L, the second image F_out is divided into blocks of size L x L, and output features F_out 0,0, F_out 1,0, .. ., F_out L-1, L-1 ) may be determined as pixel values of pixels having the same position in each of the blocks. Since this has been described in detail with reference to FIG. 6 , a detailed description thereof will be omitted.

한편, 도 7 내지 도 9에서 도시하고 설명한 특징 추출부(710), 컨볼루션부(720), 및 픽셀 합성부(730) 중 적어도 하나는, 하드웨어 칩 형태로 제작되어 영상 처리 장치에 탑재될 수 있다. 예를 들어, 특징 추출부(710), 컨볼루션부(720), 및 픽셀 합성부(730) 중 적어도 하나는, 인공 지능(AI;artificial intelligence)을 위한 전용 하드웨어 칩 형태로 제작될 수도 있고, 또는 기존의 범용 프로세서(예: CPU 또는 application processor) 또는 그래픽 전용 프로세서(예: GPU)의 일부로 제작되어 일 실시예에 따른 영상 처리 장치(100)에 탑재될 수도 있다.Meanwhile, at least one of the feature extraction unit 710 , the convolution unit 720 , and the pixel synthesis unit 730 illustrated and described in FIGS. 7 to 9 may be manufactured in the form of a hardware chip and mounted in an image processing apparatus. have. For example, at least one of the feature extraction unit 710, the convolution unit 720, and the pixel synthesis unit 730 may be manufactured in the form of a dedicated hardware chip for artificial intelligence (AI), Alternatively, it may be manufactured as a part of an existing general-purpose processor (eg, CPU or application processor) or graphics-only processor (eg, GPU) and mounted on the image processing apparatus 100 according to an embodiment.

또한, 특징 추출부(710), 컨볼루션부(720), 및 픽셀 합성부(730) 중 적어도 하나는, 소프트웨어 모듈로 구현될 수 있다. 특징 추출부(710), 컨볼루션부(720), 및 픽셀 합성부(730) 중 적어도 하나가 소프트웨어 모듈(또는, 인스터력션(instruction) 포함하는 프로그램 모듈)로 구현되는 경우, 소프트웨어 모듈은 컴퓨터로 읽을 수 있는 판독 가능한 비일시적 판독 가능 기록매체(non-transitory computer readable media)에 저장될 수 있다. 또한, 이 경우, 적어도 하나의 소프트웨어 모듈은 OS(Operating System)에 의해 제공되거나, 소정의 애플리케이션에 의해 제공될 수 있다. 또는, 적어도 하나의 소프트웨어 모듈 중 일부는 OS(Operating System)에 의해 제공되고, 나머지 일부는 소정의 애플리케이션에 의해 제공될 수 있다.In addition, at least one of the feature extraction unit 710 , the convolution unit 720 , and the pixel synthesis unit 730 may be implemented as a software module. When at least one of the feature extraction unit 710 , the convolution unit 720 , and the pixel synthesis unit 730 is implemented as a software module (or a program module including instructions), the software module is It may be stored in a readable non-transitory computer readable medium that can be read by a user. Also, in this case, at least one software module may be provided by an operating system (OS) or may be provided by a predetermined application. Alternatively, a part of the at least one software module may be provided by an operating system (OS), and the other part may be provided by a predetermined application.

도 10은 일 실시예에 따른 영상 처리 장치의 동작방법을 나타내는 흐름도이다.10 is a flowchart illustrating a method of operating an image processing apparatus according to an exemplary embodiment.

도 10을 참조하면, 일 실시예에 따른 영상 처리 장치(100)는 제1 영상에 포함되는 픽셀들의 위치에 기초하여, 제1 영상으로부터 n개의 제1 특징 정보들을 추출할 수 있다(S1010).Referring to FIG. 10 , the image processing apparatus 100 according to an embodiment may extract n pieces of first characteristic information from the first image based on positions of pixels included in the first image ( S1010 ).

예를 들어, 영상 처리 장치(100)는 제1 영상에 포함되는 픽셀들의 위치 정보에 기초하여, 픽셀들을 그룹핑함으로써, n개의 샘플링 특징들을 생성할 수 있다. 영상 처리 장치(100)는 제1 영상을 기 설정된 크기(L x L)의 블록들로 나누고 블록들 각각에서 동일한 위치를 가지는 픽셀들을 동일한 그룹으로 샘플링함으로써, n개의 샘플링 특징들을 생성할 수 있다. 이때, 블록의 기 설정된 크기(너비 방향 및 높이 방향으로의 샘플링 주기)는 다양하게 설정될 수 있다. n개의 샘플링 특징들을 생성하는 방법에 대해서는 도 3에서 자세히 설명하였으므로, 동일한 설명은 생략하기로 한다.For example, the image processing apparatus 100 may generate n sampling features by grouping pixels based on position information of pixels included in the first image. The image processing apparatus 100 may generate n sampling features by dividing the first image into blocks of a preset size (L x L) and sampling pixels having the same position in each of the blocks into the same group. In this case, the preset size (sampling period in the width direction and the height direction) of the block may be variously set. Since the method of generating the n sampling features has been described in detail with reference to FIG. 3 , the same description will be omitted.

또는, 영상 처리 장치(100)는 스트라이드 크기 L을 적용하여, 제1 영상과 커널들과의 컨볼루션 연산을 수행함으로써, n개의 히든 특징들을 생성할 수 있다. n개의 히든 특징들을 생성하는 방법에 대해서는 도 8 및 9에서 자세히 설명하였으므로 동일한 설명은 생략하기로 한다.Alternatively, the image processing apparatus 100 may generate n hidden features by applying a stride size L and performing a convolution operation between the first image and kernels. Since the method of generating the n hidden features has been described in detail with reference to FIGS. 8 and 9 , the same description will be omitted.

일 실시예에 따른 영상 처리 장치(100)는 n개의 제1 특징 정보들 각각과 n개의 커널들 각각과의 컨볼루션 연산을 수행함으로써, n개의 제2 특징 정보들을 생성할 수 있다(S1020).The image processing apparatus 100 according to an embodiment may generate n pieces of second characteristic information by performing a convolution operation on each of the n pieces of first characteristic information and each of the n kernels ( S1020 ).

예를 들어, 영상 처리 장치(100)는 1010단계(S1010)에서 생성된 n개의 샘플링 특징들 각각과 n개의 커널들 각각과의 컨볼루션(그룹 컨볼루션)을 수행함으로써, n개의 출력 특징들을 생성할 수 있다. 이때, n개의 커널들 각각은 Cout개(출력 특징의 채널 수)의 서브 커널들을 포함할 수 있으며, 하나의 서브 커널은 WK x HK x Cin(샘플링 특징의 채널 수)의 크기를 가질 수 있다.For example, the image processing apparatus 100 generates n output features by performing convolution (group convolution) between each of the n sampling features generated in step S1010 and each of the n kernels. can do. In this case, each of the n kernels may include Cout (the number of channels of the output feature) sub-kernels, and one sub-kernel may have a size of W K x H K x Cin (the number of channels of the sampling feature). have.

또는, 영상 처리 장치(100)는 1010단계(S1020)에서 생성된 n개의 히든 특징들 각각과 n개의 커널들 각각과의 컨볼루션(그룹 컨볼루션)을 수행함으로써, n개의 출력 특징들을 생성할 수 있다. 이때, n개의 커널들 각각은 Cout개(출력 특징의 채널 수)의 서브 커널들을 포함할 수 있으며, 하나의 서브 커널은 WK x HK x Cin(히든 특징의 채널 수)의 크기를 가질 수 있다.Alternatively, the image processing apparatus 100 may generate n output features by performing convolution (group convolution) between each of the n hidden features generated in step S1020 and each of the n kernels. have. In this case, each of the n kernels may include Cout (the number of channels of the output feature) sub-kernels, and one sub-kernel may have a size of W K x H K x Cin (the number of channels of the hidden feature). have.

컨볼루션 연산을 수행하는 방법에 대해서는 도 5에서 자세히 설명하였으므로 동일한 설명은 생략하기로 한다.Since the method of performing the convolution operation has been described in detail with reference to FIG. 5 , the same description will be omitted.

일 실시예에 따른 영상 처리 장치(100)는 n개의 제2 특징 정보들에 기초하여, 제2 영상을 생성할 수 있다(S1030).The image processing apparatus 100 according to an embodiment may generate a second image based on n pieces of second characteristic information (S1030).

예를 들어, 영상 처리 장치(100)는 1010단계(S1010)에서 제1 영상에 포함된 픽셀들을 샘플링 할 때 이용한 너비 방향 및 높이 방향으로의 샘플링 주기 L에 기초하여, 제2 영상을 생성할 수 있다.For example, the image processing apparatus 100 may generate the second image based on the sampling period L in the width and height directions used when sampling pixels included in the first image in step S1010 ( S1010 ). have.

또는, 영상 처리 장치(100)는 1010단계(S1010)에서 히든 특징들을 생성하기 위해 수행한 컨볼루션 연산에 적용되는 스트라이드 크기 L에 기초하여, 제2 영상을 생성할 수 있다.Alternatively, the image processing apparatus 100 may generate the second image based on the stride size L applied to the convolution operation performed to generate the hidden features in operation S1010 ( S1010 ).

영상 처리 장치(100)는 제2 영상을 L x L크기의 블록들로 나누고, 1020단계(S1020)에서 생성된 n개의 출력 특징들 각각에 포함된 픽셀 값들을 블록들 각각에서 동일한 위치를 가지는 픽셀들의 픽셀 값들로 결정할 수 있다.The image processing apparatus 100 divides the second image into blocks having a size of L x L, and sets pixel values included in each of the n output features generated in operation S1020 ( S1020 ) to pixels having the same position in each of the blocks. can be determined by the pixel values of

제2 영상을 생성하는 방법에 대해서는 도 6에서 자세히 설명하였으므로 동일한 설명은 생략하기로 한다.Since the method of generating the second image has been described in detail with reference to FIG. 6 , the same description will be omitted.

도 11은 일 실시예에 따른 영상 처리 장치의 구성을 나타내는 블록도이다.11 is a block diagram illustrating a configuration of an image processing apparatus according to an exemplary embodiment.

도 11을 참조하면, 일 실시예에 따른 영상 처리 장치(100)는 프로세서(120) 및 메모리(130)를 포함할 수 있다.Referring to FIG. 11 , the image processing apparatus 100 according to an embodiment may include a processor 120 and a memory 130 .

일 실시예에 따른 프로세서(120)는 영상 처리 장치(100)를 전반적으로 제어할 수 있다. 일 실시예에 따른 프로세서(120)는 메모리(130)에 저장되는 하나 이상의 프로그램들을 실행할 수 있다.The processor 120 according to an embodiment may control the image processing apparatus 100 as a whole. The processor 120 according to an embodiment may execute one or more programs stored in the memory 130 .

일 실시예에 따른 메모리(130)는 영상 처리 장치(100)를 구동하고 제어하기 위한 다양한 데이터, 프로그램 또는 어플리케이션을 저장할 수 있다. 메모리(130)에 저장되는 프로그램은 하나 이상의 인스트럭션들을 포함할 수 있다. 메모리(130)에 저장된 프로그램(하나 이상의 인스트럭션들) 또는 어플리케이션은 프로세서(120)에 의해 실행될 수 있다.The memory 130 according to an embodiment may store various data, programs, or applications for driving and controlling the image processing apparatus 100 . A program stored in the memory 130 may include one or more instructions. A program (one or more instructions) or an application stored in the memory 130 may be executed by the processor 120 .

일 실시예에 따른 프로세서(120)는 CPU(Cetral Processing Unit), GPU (Graphic Processing Unit) 및 VPU(Video Processing Unit) 중 적어도 하나를 포함할 수 있다. 또는, 실시예에 따라, CPU, GPU 및 VPU 중 적어도 하나를 통합한 SoC(System On Chip) 형태로 구현될 수 있다. 또는, 프로세서()는 NPU(Neural Processing Unit)를 더 포함할 수 있다.The processor 120 according to an embodiment may include at least one of a central processing unit (CPU), a graphic processing unit (GPU), and a video processing unit (VPU). Alternatively, according to an embodiment, it may be implemented in the form of a system on chip (SoC) in which at least one of a CPU, a GPU, and a VPU is integrated. Alternatively, the processor ( ) may further include a Neural Processing Unit (NPU).

일 실시예에 따른 프로세서(120)는 하나 이상의 컨볼루션 뉴럴 네트워크를 포함하는 아티팩트 제거 네트워크를 이용하여, 압축 아티팩트가 포함된 제1 영상으로부터 압축 아티팩트가 제거된 제2 영상을 생성할 수 있다.The processor 120 according to an embodiment may generate a second image from which compression artifacts are removed from the first image including compression artifacts by using an artifact removal network including one or more convolutional neural networks.

예를 들어, 프로세서(120)는 도 2 내지 도 6에서 도시하고 설명한 픽셀 샘플링부(300), 컨볼루션부(400), 및 픽셀 합성부(500)의 동작들 중 적어도 하나를 수행할 수 있으며, 도 7 내지 도 9에서 도시하고 설명한 특징 추출부(710), 컨볼루션부(720), 및 픽셀 합성부(930)의 동작들 중 적어도 하나를 수행할 수 있다. 프로세서(120)는 제1 영상에 포함되는 픽셀들의 위치에 기초하여, n개의 제1 특징 정보들을 추출할 수 있다. 예를 들어, 프로세서(120)는 제1 영상을 기 설정된 크기(L x L)의 블록들로 나누고, 블록들 각각에서 동일한 위치를 가지는 픽셀들을 하나의 샘플링 특징으로 추출할 수 있다. 이에 따라, n(= L x L)개의 샘플링 특징들을 생성할 수 있다. 또는, 프로세서(120)는 스트라이드 크기 L을 적용하여, 제1 영상과 커널들과의 컨볼루션 연산을 수행함으로써, n개의 히든 특징들을 생성할 수 있다.For example, the processor 120 may perform at least one of the operations of the pixel sampling unit 300 , the convolution unit 400 , and the pixel synthesis unit 500 illustrated and described with reference to FIGS. 2 to 6 . , at least one of the operations of the feature extraction unit 710 , the convolution unit 720 , and the pixel synthesis unit 930 illustrated and described with reference to FIGS. 7 to 9 may be performed. The processor 120 may extract n pieces of first characteristic information based on positions of pixels included in the first image. For example, the processor 120 may divide the first image into blocks of a preset size (L x L) and extract pixels having the same position from each of the blocks as one sampling feature. Accordingly, n (= L x L) sampling features can be generated. Alternatively, the processor 120 may generate n hidden features by applying the stride size L and performing a convolution operation between the first image and the kernels.

또한, 프로세서(120)는 n개의 제1 특징 정보들 각각과 n개의 커널들 각각과의 컨볼루션 연산을 수행함으로써, n개의 제2 특징 정보들을 생성할 수 있다.Also, the processor 120 may generate n pieces of second characteristic information by performing a convolution operation with each of the n pieces of first characteristic information and each of the n kernels.

또한, 프로세서(120)는 n개의 제2 특징 정보들에 기초하여, 압축 아티팩트가 제거된 제2 영상을 생성할 수 있다. 프로세서(120)는 제2 영상을 L x L크기의 블록들로 나누고, 생성된 n개의 제2 특징 정보들 각각에 포함된 픽셀 값들을 블록들 각각에서 동일한 위치를 가지는 픽셀들의 픽셀 값들로 결정할 수 있다.Also, the processor 120 may generate a second image from which compression artifacts are removed, based on the n pieces of second characteristic information. The processor 120 may divide the second image into blocks having a size of L x L, and determine pixel values included in each of the generated n pieces of second characteristic information as pixel values of pixels having the same position in each of the blocks. have.

한편, 일 실시예에 따른 아티팩트 제거 네트워크(30)는, 서버 또는 외부 장치에 의해 훈련된 네트워크일 수 있다. 외부 장치는 훈련 데이터에 기초하여, 아티팩트 제거 네트워크(30)를 학습시킬 수 있다. 이때, 훈련 데이터는 압축 아티팩트가 포함된 영상 데이터와 압축 아티팩트가 제거된 영상 데이터를 포함하는 복수의 데이터 세트들을 포함할 수 있다.Meanwhile, the artifact removal network 30 according to an embodiment may be a network trained by a server or an external device. The external device may train the de-artifacting network 30 based on the training data. In this case, the training data may include a plurality of data sets including image data including compression artifacts and image data from which compression artifacts are removed.

서버 또는 외부 장치는 아티팩트 제거 네트워크(30)에 포함된 복수의 컨볼루션 레이어들 각각에서 이용되는 커널들에 포함되는 가중치 값들을 결정할 수 있다. 예를 들어, 서버 또는 외부 장치는 아티팩트 제거 네트워크(30)에 의해 생성된 영상 데이터와 훈련 데이터로써의 압축 아티팩트가 제거된 영상 데이터의 차이(손실 정보)를 최소화하는 방향으로 가중치 값들을 결정할 수 있다.The server or the external device may determine weight values included in kernels used in each of a plurality of convolutional layers included in the de-artifacting network 30 . For example, the server or external device may determine the weight values in a direction that minimizes the difference (loss information) between the image data generated by the de-artifacting network 30 and the image data from which compression artifacts are removed as training data. .

일 실시예에 따른 영상 처리 장치(100)는 서버 또는 외부 장치로부터 훈련이 완료된 아티팩트 제거 네트워크(30)를 수신하여, 메모리(130)에 저장할 수 있다. 예를 들어, 메모리(130)는 일 실시예에 따른 아티팩트 제거 네트워크(30)의 구조 및 가중치 값들을 저장할 수 있으며, 프로세서(120)는 메모리(130)에 저장된 가중치 값들을 이용하여, 일 실시예에 따른 제1 영상으로부터 압축 아티팩트가 제거된 제2 영상을 생성할 수 있다.The image processing apparatus 100 according to an embodiment may receive the trained artifact removal network 30 from a server or an external device and store it in the memory 130 . For example, the memory 130 may store the structure and weight values of the de-artifact network 30 according to an embodiment, and the processor 120 uses the weight values stored in the memory 130, according to an embodiment. A second image from which compression artifacts are removed may be generated from the first image according to .

한편, 도 11에 도시된 영상 처리 장치(100)의 블록도는 일 실시예를 위한 블록도이다. 블록도의 각 구성요소는 실제 구현되는 영상 처리 장치(100)의 사양에 따라 통합, 추가, 또는 생략될 수 있다. 즉, 필요에 따라 2 이상의 구성요소가 하나의 구성요소로 합쳐지거나, 혹은 하나의 구성요소가 2 이상의 구성요소로 세분되어 구성될 수 있다. 또한, 각 블록에서 수행하는 기능은 실시예들을 설명하기 위한 것이며, 그 구체적인 동작이나 장치는 본 발명의 권리범위를 제한하지 아니한다.Meanwhile, a block diagram of the image processing apparatus 100 illustrated in FIG. 11 is a block diagram for an exemplary embodiment. Each component of the block diagram may be integrated, added, or omitted according to specifications of the image processing apparatus 100 that are actually implemented. That is, two or more components may be combined into one component, or one component may be subdivided into two or more components as needed. In addition, the function performed in each block is for describing the embodiments, and the specific operation or device does not limit the scope of the present invention.

일 실시예에 따른 영상 처리 장치의 동작방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.The method of operating an image processing apparatus according to an embodiment may be implemented in the form of a program command that can be executed through various computer means and recorded in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, etc. alone or in combination. The program instructions recorded on the medium may be specially designed and configured for the present invention, or may be known and available to those skilled in the art of computer software. Examples of the computer-readable recording medium include magnetic media such as hard disks, floppy disks and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic such as floppy disks. - includes magneto-optical media, and hardware devices specially configured to store and carry out program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine language codes such as those generated by a compiler, but also high-level language codes that can be executed by a computer using an interpreter or the like.

또한, 개시된 실시예들에 따른 영상 처리 장치 및 영상 처리 장치의 동작방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다.Also, the image processing apparatus and the method of operating the image processing apparatus according to the disclosed embodiments may be included in a computer program product and provided. Computer program products may be traded between sellers and buyers as commodities.

컴퓨터 프로그램 제품은 S/W 프로그램, S/W 프로그램이 저장된 컴퓨터로 읽을 수 있는 저장 매체를 포함할 수 있다. 예를 들어, 컴퓨터 프로그램 제품은 전자 장치의 제조사 또는 전자 마켓(예, 구글 플레이 스토어, 앱 스토어)을 통해 전자적으로 배포되는 S/W 프로그램 형태의 상품(예, 다운로더블 앱)을 포함할 수 있다. 전자적 배포를 위하여, S/W 프로그램의 적어도 일부는 저장 매체에 저장되거나, 임시적으로 생성될 수 있다. 이 경우, 저장 매체는 제조사의 서버, 전자 마켓의 서버, 또는 SW 프로그램을 임시적으로 저장하는 중계 서버의 저장매체가 될 수 있다.The computer program product may include a S/W program and a computer-readable storage medium in which the S/W program is stored. For example, computer program products may include products (eg, downloadable apps) in the form of S/W programs distributed electronically through manufacturers of electronic devices or electronic markets (eg, Google Play Store, App Store). have. For electronic distribution, at least a portion of the S/W program may be stored in a storage medium or may be temporarily generated. In this case, the storage medium may be a server of a manufacturer, a server of an electronic market, or a storage medium of a relay server temporarily storing a SW program.

컴퓨터 프로그램 제품은, 서버 및 클라이언트 장치로 구성되는 시스템에서, 서버의 저장매체 또는 클라이언트 장치의 저장매체를 포함할 수 있다. 또는, 서버 또는 클라이언트 장치와 통신 연결되는 제3 장치(예, 스마트폰)가 존재하는 경우, 컴퓨터 프로그램 제품은 제3 장치의 저장매체를 포함할 수 있다. 또는, 컴퓨터 프로그램 제품은 서버로부터 클라이언트 장치 또는 제3 장치로 전송되거나, 제3 장치로부터 클라이언트 장치로 전송되는 S/W 프로그램 자체를 포함할 수 있다.The computer program product, in a system consisting of a server and a client device, may include a storage medium of the server or a storage medium of the client device. Alternatively, when there is a third device (eg, a smart phone) that is communicatively connected to the server or the client device, the computer program product may include a storage medium of the third device. Alternatively, the computer program product may include the S/W program itself transmitted from the server to the client device or the third device, or transmitted from the third device to the client device.

이 경우, 서버, 클라이언트 장치 및 제3 장치 중 하나가 컴퓨터 프로그램 제품을 실행하여 개시된 실시예들에 따른 방법을 수행할 수 있다. 또는, 서버, 클라이언트 장치 및 제3 장치 중 둘 이상이 컴퓨터 프로그램 제품을 실행하여 개시된 실시예들에 따른 방법을 분산하여 실시할 수 있다.In this case, one of the server, the client device and the third device may execute the computer program product to perform the method according to the disclosed embodiments. Alternatively, two or more of a server, a client device, and a third device may execute a computer program product to distribute the method according to the disclosed embodiments.

예를 들면, 서버(예로, 클라우드 서버 또는 인공 지능 서버 등)가 서버에 저장된 컴퓨터 프로그램 제품을 실행하여, 서버와 통신 연결된 클라이언트 장치가 개시된 실시예들에 따른 방법을 수행하도록 제어할 수 있다.For example, a server (eg, a cloud server or an artificial intelligence server) may execute a computer program product stored in the server to control a client device communicatively connected with the server to perform the method according to the disclosed embodiments.

이상에서 실시예들에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속한다.Although the embodiments have been described in detail above, the scope of the present invention is not limited thereto, and various modifications and improvements by those skilled in the art using the basic concept of the present invention as defined in the following claims are also included in the scope of the present invention. belongs to

Claims (17)

영상 처리 장치에 있어서,
하나 이상의 인스트럭션들을 저장하는 메모리; 및
상기 메모리에 저장된 상기 하나 이상의 인스트럭션들을 실행하는 프로세서를 포함하고,
상기 프로세서는, 하나 이상의 뉴럴 네트워크를 이용하여,
제1 영상에 포함되는 픽셀들의 위치에 기초하여, 상기 제1 영상으로부터 n개의 제1 특징 정보들을 추출하고, 상기 n개의 제1 특징 정보들 각각과 n개의 커널들 각각과의 컨볼루션 연산을 수행함으로써, n개의 제2 특징 정보들을 생성하며, 상기 n개의 제2 특징 정보들에 기초하여, 제2 영상을 생성하고,
상기 제2 영상은 상기 제1 영상에 포함되는 압축 아티팩트가 제거된 영상인 영상 처리 장치.
In the image processing apparatus,
a memory storing one or more instructions; and
a processor executing the one or more instructions stored in the memory;
The processor, using one or more neural networks,
Based on the positions of pixels included in the first image, n pieces of first feature information are extracted from the first image, and a convolution operation is performed between each of the n pieces of first feature information and each of the n kernels. By doing so, n pieces of second characteristic information are generated, and a second image is generated based on the n pieces of second characteristic information,
The second image is an image from which compression artifacts included in the first image are removed.
제1항에 있어서,
상기 프로세서는,
상기 제1 영상을 기 설정된 크기를 가지는 블록들로 나누고, 상기 블록들 각각에서 동일한 위치를 가지는 픽셀들을 동일한 그룹으로 나누어 상기 n 개의 제1 특징 정보들을 추출하는, 영상 처리 장치.
According to claim 1,
The processor is
and dividing the first image into blocks having a preset size, and dividing pixels having the same position in each of the blocks into the same group to extract the n pieces of first characteristic information.
제2항에 있어서,
상기 블록들 각각은 상기 n개의 픽셀들을 포함하고,
상기 n은 상기 블록들의 기 설정된 크기에 기초하여 결정되는, 영상 처리 장치.
3. The method of claim 2,
each of the blocks includes the n pixels,
The n is determined based on a preset size of the blocks.
제2항에 있어서,
상기 프로세서는,
상기 제2 영상을 상기 기 설정된 크기를 가지는 블록들로 나누고,
상기 제2 특징 정보들 중 하나의 제2 특징 정보에 포함되는 픽셀 값들을 상기 블록들 각각에서 동일한 위치의 픽셀 값들로 결정하는, 영상 처리 장치.
3. The method of claim 2,
The processor is
dividing the second image into blocks having the preset size;
and determining pixel values included in one piece of second characteristic information among the second characteristic information as pixel values at the same position in each of the blocks.
제1항에 있어서,
상기 프로세서는,
스트라이드 크기 L을 적용하여, 상기 제1 영상과 제2 커널과의 컨볼루션 연산을 수행함으로써, 상기 n개의 제1 특징 정보들을 추출하는, 영상 처리 장치.
According to claim 1,
The processor is
An image processing apparatus for extracting the n pieces of first feature information by performing a convolution operation between the first image and a second kernel by applying a stride size L.
제5항에 있어서,
상기 제1 특징 정보들의 개수 n은 상기 스트라이드 크기 L에 기초하여 결정되는, 영상 처리 장치.
6. The method of claim 5,
The image processing apparatus, wherein the number n of the first characteristic information is determined based on the stride size L.
제1항에 있어서,
상기 n개의 커널들은 서로 상이한 커널들인, 영상 처리 장치.
According to claim 1,
The n kernels are different kernels from each other.
제1항에 있어서,
상기 제1 영상과 상기 제2 영상의 크기는 동일한, 영상 처리 장치.
According to claim 1,
The image processing apparatus of claim 1 , wherein the size of the first image and the size of the second image are the same.
하나 이상의 뉴럴 네트워크를 이용하여, 영상 처리를 수행하는 영상 처리 장치의 동작방법에 있어서,
제1 영상에 포함되는 픽셀들의 위치에 기초하여, 상기 제1 영상으로부터 n개의 제1 특징 정보들을 추출하는 단계;
상기 n개의 제1 특징 정보들 각각과 n개의 커널들 각각과의 컨볼루션 연산을 수행함으로써, n개의 제2 특징 정보들을 생성하는 단계; 및
상기 n개의 제2 특징 정보들에 기초하여, 제2 영상을 생성하는 단계를 포함하고,
상기 제2 영상은 상기 제1 영상에 포함되는 압축 아티팩트가 제거된 영상인, 동작방법.
A method of operating an image processing apparatus for performing image processing using one or more neural networks, the method comprising:
extracting n pieces of first feature information from the first image based on positions of pixels included in the first image;
generating n pieces of second feature information by performing a convolution operation with each of the n pieces of first feature information and each of the n pieces of kernels; and
generating a second image based on the n pieces of second characteristic information;
The second image is an image from which compression artifacts included in the first image are removed.
제9항에 있어서,
상기 n개의 제1 특징 정보들을 추출하는 단계는,
상기 제1 영상을 기 설정된 크기를 가지는 블록들로 나누고, 상기 블록들 각각에서 동일한 위치를 가지는 픽셀들을 동일한 그룹으로 나누어 상기 n 개의 제1 특징 정보들을 추출하는 단계를 포함하는, 영상 처리 장치의 동작방법.
10. The method of claim 9,
The step of extracting the n pieces of first characteristic information includes:
and extracting the n pieces of first characteristic information by dividing the first image into blocks having a preset size and dividing pixels having the same position in each of the blocks into the same group Way.
제10항에 있어서,
상기 블록들 각각은 상기 n개의 픽셀들을 포함하고,
상기 n은 상기 블록들의 기 설정된 크기에 기초하여 결정되는, 영상 처리 장치의 동작방법.
11. The method of claim 10,
each of the blocks includes the n pixels,
and n is determined based on a preset size of the blocks.
제10항에 있어서,
상기 제2 영상을 생성하는 단계는,
상기 제2 영상을 상기 기 설정된 크기를 가지는 블록들로 나누고, 상기 제2 특징 정보들 중 하나의 제2 특징 정보에 포함되는 픽셀 값들을 상기 블록들 각각에서 동일한 위치의 픽셀 값들로 결정하는 단계를 포함하는, 영상 처리 장치의 동작방법.
11. The method of claim 10,
The generating of the second image comprises:
dividing the second image into blocks having the preset size, and determining pixel values included in one piece of second characteristic information among the second characteristic information as pixel values at the same position in each of the blocks; Including, an operating method of an image processing apparatus.
제9항에 있어서,
상기 n개의 제1 특징 정보들을 추출하는 단계는,
스트라이드 크기 L을 적용하여, 상기 제1 영상과 제2 커널과의 컨볼루션 연산을 수행함으로써, 상기 n개의 제1 특징 정보들을 추출하는 단계를 포함하는, 영상 처리 장치의 동작방법.
10. The method of claim 9,
The step of extracting the n pieces of first characteristic information includes:
and extracting the n pieces of first feature information by performing a convolution operation between the first image and the second kernel by applying a stride size L.
제13항에 있어서,
상기 제1 특징 정보들의 개수 n은 상기 스트라이드 크기 L에 기초하여 결정되는, 영상 처리 장치의 동작방법.
14. The method of claim 13,
The method of operating an image processing apparatus, wherein the number n of the first characteristic information is determined based on the stride size L.
제9항에 있어서,
상기 n개의 커널들은 서로 상이한 커널들인, 영상 처리 장치의 동작방법.
10. The method of claim 9,
The n kernels are different kernels from each other, the operating method of the image processing apparatus.
제9항에 있어서,
상기 제1 영상과 상기 제2 영상의 크기는 동일한, 영상 처리 장치의 동작방법.
10. The method of claim 9,
and sizes of the first image and the second image are the same.
제9항의 방법을 수행하도록 하는 프로그램이 저장된 하나 이상의 컴퓨터로 읽을 수 있는 기록매체를 포함하는 컴퓨터 프로그램 제품.
A computer program product comprising one or more computer-readable recording media in which a program for performing the method of claim 9 is stored.
KR1020200159100A 2020-05-15 2020-11-24 Image processing apparatus and operating method for the same KR20210141304A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/KR2021/005888 WO2021230624A1 (en) 2020-05-15 2021-05-11 Image processing device and operation method thereof
US17/987,574 US20230071417A1 (en) 2020-05-15 2022-11-15 Image processing device and operation method thereof

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20200058333 2020-05-15
KR1020200058333 2020-05-15

Publications (1)

Publication Number Publication Date
KR20210141304A true KR20210141304A (en) 2021-11-23

Family

ID=78695273

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200159100A KR20210141304A (en) 2020-05-15 2020-11-24 Image processing apparatus and operating method for the same

Country Status (1)

Country Link
KR (1) KR20210141304A (en)

Similar Documents

Publication Publication Date Title
US10740865B2 (en) Image processing apparatus and method using multi-channel feature map
CN108268885B (en) Feature point detection method, device, and computer-readable storage medium
DE112020003128T5 (en) DILATED CONVOLUTION WITH SYSTOLIC ARRAY
US11562166B2 (en) Generating shift-invariant neural network feature maps and outputs
KR102452951B1 (en) Method and apparatus for performing convolution operation in neural network
KR20200067631A (en) Image processing apparatus and operating method for the same
US11875257B2 (en) Normalization method for machine-learning and apparatus thereof
DE112020005799T5 (en) Efficient use of a processing element array
US11954755B2 (en) Image processing device and operation method thereof
KR20200095300A (en) Method and apparatus for processing convolution operation of neural network
KR20200132304A (en) Image processing apparatus and operating method for the same
KR102553146B1 (en) Image processing apparatus and operating method for the same
DE102021121514A1 (en) Device and method for an artificial neural network
KR20190136891A (en) Electronic apparatus and control method thereof
KR20210141304A (en) Image processing apparatus and operating method for the same
US20230071417A1 (en) Image processing device and operation method thereof
US20220327811A1 (en) System and method for composite training in machine learning architectures
CN112766277A (en) Channel adjustment method, device and equipment of convolutional neural network model
US20220284555A1 (en) Image processing apparatus and operation method thereof
KR20220037764A (en) Image processing apparatus and operating method for the same
US11842273B2 (en) Neural network processing
CN112132253A (en) 3D motion recognition method and device, computer readable storage medium and equipment
KR20230034127A (en) Image processing apparatus and operating method for the same
US20230169748A1 (en) Image processing apparatus and operating method thereof
WO2024058682A1 (en) Data processing method and device

Legal Events

Date Code Title Description
A201 Request for examination