KR20240121036A - 전자 장치 및 그 영상 처리 방법 - Google Patents

전자 장치 및 그 영상 처리 방법 Download PDF

Info

Publication number
KR20240121036A
KR20240121036A KR1020230013786A KR20230013786A KR20240121036A KR 20240121036 A KR20240121036 A KR 20240121036A KR 1020230013786 A KR1020230013786 A KR 1020230013786A KR 20230013786 A KR20230013786 A KR 20230013786A KR 20240121036 A KR20240121036 A KR 20240121036A
Authority
KR
South Korea
Prior art keywords
image
layer
processing network
domain
image quality
Prior art date
Application number
KR1020230013786A
Other languages
English (en)
Inventor
김상훈
한선범
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020230013786A priority Critical patent/KR20240121036A/ko
Priority to PCT/KR2023/019991 priority patent/WO2024162589A1/ko
Publication of KR20240121036A publication Critical patent/KR20240121036A/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
    • 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
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0464Convolutional networks [CNN, ConvNet]
    • 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/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
    • G06T5/00Image enhancement or restoration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/73Deblurring; Sharpening
    • 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/20016Hierarchical, coarse-to-fine, multiscale or multiresolution image processing; Pyramid transform
    • 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/20081Training; Learning
    • 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)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (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

전자 장치가 개시된다. 전자 장치는, 적어도 하나의 명령어를 저장하는 메모리 및 메모리와 연결되어 전자 장치를 제어하는 하나 이상의 프로세서를 포함하며, 하나 이상의 프로세서는, 입력 영상이 수신되면, 복수의 영상 처리 도메인 중 입력 영상의 화질 처리에 요구되는 화질 처리 네트워크에 대응되는 영상 처리 도메인을 식별하고, 식별된 영상 처리 도메인에 기초하여 복수의 단위 연산 모듈 중 화질 처리 네트워크에 포함된 복수의 레이어 각각에서 이용되는 적어도 하나의 단위 연산 모듈을 식별하고, 복수의 레이어 중 제1 레이어에 대응되는 적어도 하나의 단위 연산 모듈로 제1 레이어의 정보가 입력되고 제1 레이어의 출력이 복수의 레이어 중 제2 레이어에 대응되는 적어도 하나의 단위 연산 모듈로 입력되도록 제어하여 화질 처리 네트워크를 부유형(floating)으로 구현하고, 구현된 화질 처리 네트워크를 이용하여 입력 영상을 처리할 수 있다. 이를 통해 기존 화질 처리 네트워크에 따른 구조적 제약을 탈피하여 고효율/고성능의 화질 처리 결과를 획득할 수 있게 된다.

Description

전자 장치 및 그 영상 처리 방법 { Electronic apparatus and image processing method thererof }
본 개시는 전자 장치 및 그 영상 처리 방법에 관한 것으로, 더욱 상세하게는 화질 처리를 수행하는 전자 장치 및 그 영상 처리 방법에 관한 것이다.
전자 기술의 발달에 힘입어 다양한 유형의 전자 기기가 개발 및 보급되고 있다. 특히, 가정, 사무실, 공공 장소 등 다양한 장소에서 이용되는 전자 장치는 최근 수년 간 지속적으로 발전하고 있다.
최근에는 고해상도 영상 서비스에 대한 요구가 크게 증가하고 있다. 이러한 요구로 인해 super resolution 처리, style transfer 처리 등 deep learning 기반 기술이 영상 처리에 이용되고 있다. 예를 들어, Super Resolution 처리는 저해상도의 입력 영상을 일련의 미디어 처리를 통해 고해상도의 영상으로 복원하는 기술이다. 예를 들어, deep learning 기반의 복수의 레이어를 포함하는 CNN 모델을 이용하여 저해상도의 입력 영상을 가로/세로 방향으로 스케일링하여 고해상도의 영상으로 복원할 수 있다.
일 실시 예에 따른 전자 장치는, 적어도 하나의 명령어를 저장하는 메모리 및 상기 메모리와 연결되어 상기 전자 장치를 제어하는 하나 이상의 프로세서;를 포함하며, 상기 하나 이상의 프로세서는, 입력 영상이 수신되면, 복수의 영상 처리 도메인 중 상기 입력 영상의 화질 처리에 요구되는 화질 처리 네트워크에 대응되는 영상 처리 도메인을 식별하고, 상기 식별된 영상 처리 도메인에 기초하여 복수의 단위 연산 모듈 중 상기 화질 처리 네트워크에 포함된 복수의 레이어 각각에서 이용되는 적어도 하나의 단위 연산 모듈을 식별하고, 상기 복수의 레이어 중 제1 레이어에 대응되는 적어도 하나의 단위 연산 모듈로 상기 제1 레이어의 정보가 입력되고 상기 제1 레이어의 출력이 상기 복수의 레이어 중 제2 레이어에 대응되는 적어도 하나의 단위 연산 모듈로 입력되도록 제어하여 상기 화질 처리 네트워크를 부유형(floating)으로 구현하고, 상기 구현된 화질 처리 네트워크를 이용하여 상기 입력 영상을 처리한다. 여기서, 상기 복수의 영상 처리 도메인은 상이한 해상도의 영상을 처리하는 영상 처리 도메인일 수 있다.
일 예에 따르면, 상기 복수의 단위 연산 모듈은, 컨벌루션(convolution) 연산을 위한 상이한 타입의 연산자들로 구성된 연산 모듈이며, 상기 전자 장치는, 적어도 하나의 화질 처리 네트워크의 도메인 위치에 따라 각 레이어에서 이용되는 복수의 단위 연산 모듈이 집합된 컨벌루션 뱅크(convoultion bank)를 포함할 수 있다. 상기 하나 이상의 프로세서는, 상기 컨벌루션 뱅크에 포함된 상기 복수의 단위 연산 모듈 중 상기 화질 처리 네트워크에 포함된 복수의 레이어 각각에서 이용되는 적어도 하나의 단위 연산 모듈을 식별하여 상기 화질 처리 네트워크를 부유형으로 구현할 수 있다.
일 예에 따르면, 상기 하나 이상의 프로세서는, 상기 입력 영상에 기초하여 상기 화질 처리 네트워크가 제1 해상도에 대응되는 제1 도메인에 위치하는 것으로 식별되면, 상기 스케쥴링 정보에 기초하여 상기 컨벌루션 뱅크에 포함된 상기 복수의 단위 연산 모듈 중 상기 제1 해상도의 화질 처리 네트워크에 대응되는 복수의 레이어 각각에서 이용되는 적어도 하나의 제1 단위 연산 모듈을 식별하고, 상기 입력 영상에 기초하여 상기 화질 처리 네트워크가 제2 해상도에 대응되는 제2 도메인에 위치하는 것으로 되면, 상기 스케쥴링 정보에 기초하여 상기 컨벌루션 뱅크에 포함된 상기 복수의 단위 연산 모듈 중 상기 제2 해상도의 화질 처리 네트워크에 대응되는 복수의 레이어 각각에서 이용되는 적어도 하나의 제2 단위 연산 모듈을 식별할 수 있다.
일 예에 따르면, 상기 메모리는, 영상 처리 도메인 별로 각 레이어에서 이용되는 복수의 단위 연산 모듈이 스케쥴링된 스케쥴링 정보를 저장할 수 있다. 상기 하나 이상의 프로세서는, 상기 화질 처리 네트워크에 대응되는 영상 처리 도메인이 식별되면, 상기 메모리에 저장된 상기 스케쥴링 정보에 기초하여 상기 화질 처리 네트워크에 포함된 복수의 레이어 각각에서 이용되는 적어도 하나의 단위 연산 모듈을 식별하여 상기 화질 처리 네트워크를 부유형으로 구현할 수 있다.
일 예에 따르면, 상기 하나 이상의 프로세서는, 상기 입력 영상의 해상도 정보 및 특성 정보 중 적어도 하나에 기초하여 상기 복수의 영상 처리 도메인 중 상기 화질 처리 네트워크에 대응되는 영상 처리 도메인을 식별할 수 있다.
일 예에 따르면, 상기 화질 처리 네트워크에 포함된 상기 복수의 레이어는, 헤드(head) 레이어, 코어(core) 레이어 및 테일(tail) 레이어를 포함하며, 상기 화질 처리 네트워크가 제1 도메인에 위치하는 경우 상기 화질 처리 네트워크는 제1 헤드 레이어, 제1 코어 레이어 및 제1 테일 레이어를 포함할 수 있다. 상기 화질 처리 네트워크가 제2 도메인에 위치하는 경우 상기 화질 처리 네트워크는 제2 헤드 레이어, 제2 코어 레이어 및 제2 테일 레이어를 포함할 수 잇다. 여기서, 상기 제1 헤드 레이어 및 상기 제1 테일 레이어는, 상기 제1 도메인에 대응되도록 학습된 레이어이고, 상기 제2 헤드 레이어 및 상기 제2 테일 레이어는, 상기 제2 도메인에 대응되도록 학습된 레이어일 수 있다. 또한, 상기 제1 코어 레이어 및 상기 제2 코어 레이어는, 상기 제1 도메인 및 상기 제2 도메인에서 공통적으로 이용되도록 학습된 공통 레이어일 수 있다.
일 예에 따르면, 상기 화질 처리 네트워크는, 상기 헤드 레이어의 전단에 입력 셔플(input shuffle)을 수행하고 상기 테일 레이어 후단에서 출력 셔플(output shuffle)을 수행하도록 구성되며, 상기 입력 셔플에 의해 영상의 해상도는 감소되고 채널 수는 증가되며, 상기 출력 셔플에 의해 영상의 해상도는 증가되고 상기 채널 수는 감소될 수 있다.
일 예에 따르면, 상기 화질 네트워크는, 상기 코어 레이어로 입력되는 영상 데이터가 상기 코어 레이어에서 기 학습된 기 설정된 제1 해상도를 가지도록 상기 입력 셔플을 적어도 한 번 이상 수행하고, 상기 화질 처리 네트워크로부터 출력되는 영상 데이터가 기 설정된 제2 해상도를 가지도록 상기 출력 셔플을 적어도 한 번 이상 수행할 수 있다. 여기서, 상기 기 설정된 제1 해상도 및 상기 기 설정된 제2 해상도는, 상기 화질 처리 네트워크의 타입에 따라 동일하거나 상이할 수 있다.
일 예에 따르면, 상기 하나 이상의 프로세서는, 상기 화질 네트워크에 포함된 복수의 코어 레이어 중 적어도 일부 코어 레이어에 네트워크 프루닝(network pruning)을 적용하고, 상기 네트워크 프루닝에 의해 제거된 연산을 상기 헤드 레이어 및 상기 테일 레이어 중 적어도 하나에 할당하여 상기 화질 네트워크의 도메인 위치에 따른 컨벌루션 연산 양을 유지시킬 수 있다.
일 예에 따르면, 상기 화질 처리 네트워크는, 초해상도(super resolution) 처리 네트워크, 선명도 처리 네트워크, 텍스처(texture) 처리 네트워크 및 에지(edge) 처리 네트워크 중 적어도 하나를 포함할 수 있다.
일 실시 예에 따르면, 전자 장치의 영상 처리 방법은, 입력 영상이 수신되면, 복수의 영상 처리 도메인 중 상기 입력 영상의 화질 처리에 요구되는 화질 처리 네트워크에 대응되는 영상 처리 도메인을 식별하는 단계, 상기 식별된 영상 처리 도메인에 기초하여 복수의 단위 연산 모듈 중 상기 화질 처리 네트워크에 포함된 복수의 레이어 각각에서 이용되는 적어도 하나의 단위 연산 모듈을 식별하는 단계, 상기 복수의 레이어 중 제1 레이어에 대응되는 적어도 하나의 단위 연산 모듈로 상기 제1 레이어의 정보가 입력되고 상기 제1 레이어의 출력이 상기 복수의 레이어 중 제2 레이어에 대응되는 적어도 하나의 단위 연산 모듈로 입력되도록 제어하여 상기 화질 처리 네트워크를 부유형(floating)으로 구현하는 단계 및, 상기 구현된 화질 처리 네트워크를 이용하여 상기 입력 영상을 처리하는 단계를 포함할 수 있다. 여기서, 상기 복수의 영상 처리 도메인은, 상이한 해상도의 영상을 처리하는 영상 처리 도메인일 수 있다.
일 실시 예에 따르면, 전자 장치의 프로세서에 의해 실행되는 경우 상기 전자 장치가 동작을 수행하도록 하는 컴퓨터 명령을 저장하는 비일시적 컴퓨터 판독 가능 매체에 있어서, 상기 동작은, 입력 영상이 수신되면, 복수의 영상 처리 도메인 중 상기 입력 영상의 화질 처리에 요구되는 화질 처리 네트워크에 대응되는 영상 처리 도메인을 식별하는 단계, 상기 식별된 영상 처리 도메인에 기초하여 복수의 단위 연산 모듈 중 상기 화질 처리 네트워크에 포함된 복수의 레이어 각각에서 이용되는 적어도 하나의 단위 연산 모듈을 식별하는 단계, 상기 복수의 레이어 중 제1 레이어에 대응되는 적어도 하나의 단위 연산 모듈로 상기 제1 레이어의 정보가 입력되고 상기 제1 레이어의 출력이 상기 복수의 레이어 중 제2 레이어에 대응되는 적어도 하나의 단위 연산 모듈로 입력되도록 제어하여 상기 화질 처리 네트워크를 부유형(floating)으로 구현하는 단계 및, 상기 구현된 화질 처리 네트워크를 이용하여 상기 입력 영상을 처리하는 단계를 포함한다. 여기서, 상기 복수의 영상 처리 도메인은, 상이한 해상도의 영상을 처리하는 영상 처리 도메인일 수 있다.
도 1a 내지 도 1c는 본 개시의 일 실시 예에 따른 전자 장치의 구현 예를 설명하기 위한 도면들이다.
도 2a는 일 실시 예에 따른 전자 장치의 구성을 나타내는 블럭도이다.
도 2b는 일 실시 예에 따른 전자 장치의 구성을 구체적으로 나타내는 블럭도이다.
도 3은 일 실시 예에 따른 전자 장치의 영상 처리 방법을 설명하기 위한 흐름도이다.
도 4a 및 도 4b는 일 실시 예에 따른 단위 연산 모듈의 구현 예를 설명하기 위한 도면들이다.
도 5는 일 실시 예에 따른 컨벌루션 뱅크의 구현 예를 설명하기 위한 도면이다.
도 6은 일 실시 예에 따른 전자 장치의 영상 처리 방법을 설명하기 위한 흐름도이다.
도 7a 내지 도 7c는 일 실시 예에 따른 스케쥴링 정보를 설명하기 위한 도면들이다.
도 8a 및 도 8b는 일 실시 예에 따른 부유형 화질 네트워크 구현 예를 설명하기 위한 도면들이다.
도 9는 일 실시 예에 따라 도메인에 따라 상이한 부유형 화질 네트워크를 구현하기 위한 일 예를 설명하기 위한 도면이다.
도 10은 일 실시 예에 따른 화질 처리 네트워크의 구현 예를 설명하기 위한 도면이다.
도 11a 및 도 11b는 일 실시 예에 따른 셔플 방법을 설명하기 위한 도면들이다.
이하에서는 첨부 도면을 참조하여 본 개시를 상세히 설명한다.
본 명세서에서 사용되는 용어에 대해 간략히 설명하고, 본 개시에 대해 구체적으로 설명하기로 한다.
본 개시의 실시 예에서 사용되는 용어는 본 개시에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 개시의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 개시에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다.
본 명세서에서, "가진다," "가질 수 있다," "포함한다," 또는 "포함할 수 있다" 등의 표현은 해당 특징(예: 수치, 기능, 동작, 또는 부품 등의 구성요소)의 존재를 가리키며, 추가적인 특징의 존재를 배제하지 않는다.
A 또는/및 B 중 적어도 하나라는 표현은 "A" 또는 "B" 또는 "A 및 B" 중 어느 하나를 나타내는 것으로 이해되어야 한다.
본 명세서에서 사용된 "제1," "제2," "첫째," 또는 "둘째,"등의 표현들은 다양한 구성요소들을, 순서 및/또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다.
어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "(기능적으로 또는 통신적으로) 연결되어((operatively or communicatively) coupled with/to)" 있다거나 "접속되어(connected to)" 있다고 언급된 때에는, 어떤 구성요소가 다른 구성요소에 직접적으로 연결되거나, 다른 구성요소(예: 제3 구성요소)를 통하여 연결될 수 있다고 이해되어야 할 것이다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "구성되다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
본 개시에서 "모듈" 혹은 "부"는 적어도 하나의 기능이나 동작을 수행하며, 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다. 또한, 복수의 "모듈" 혹은 복수의 "부"는 특정한 하드웨어로 구현될 필요가 있는 "모듈" 혹은 "부"를 제외하고는 적어도 하나의 모듈로 일체화되어 적어도 하나의 프로세서(미도시)로 구현될 수 있다.
이하 첨부된 도면들을 참조하여 본 개시의 일 실시 예를 보다 상세하게 설명한다.
도 1a 내지 도 1c는 본 개시의 일 실시 예에 따른 전자 장치의 구현 예를 설명하기 위한 도면들이다.
전자 장치(100)는 TV 또는 set-top box 로 구현될 수 있으나, 이에 한정되는 것은 아니며 스마트 폰, 태블릿 PC, 노트북 PC, HMD(Head mounted Display), NED(Near Eye Display), LFD(large format display), Digital Signage(디지털 간판), DID(Digital Information Display), 비디오 월(video wall), 프로젝터 디스플레이, 카메라, 캠코더, 프린터 등과 같이 영상 처리 및/또는 디스플레이 기능을 갖춘 장치라면 한정되지 않고 적용 가능하다.
전자 장치(100)는 다양한 압축 영상 또는 다양한 해상도의 영상을 수신할 수 있다. 예를 들어, 전자 장치(100)는 MPEG(Moving Picture Experts Group)(예를 들어, MP2, MP4, MP7 등), JPEG(joint photographic coding experts group), AVC(Advanced Video Coding), H.264, H.265, HEVC(High Efficiency Video Codec) 등으로 압축된 형태로 영상을 수신할 수 있다. 또는 전자 장치(100)는 SD(Standard Definition), HD(High Definition), Full HD, Ultra HD 영상 또는 그 이상 해상도의 영상 중 어느 하나의 영상을 수신할 수 있다.
일 실시 예에 따르면, 전자 장치(100)는 화질 처리 네트워크를 이용하여 입력 영상에 대한 영상 처리를 수행할 수 있다. 여기서, 화질 처리 네트워크는, 초해상도(super resolution) 처리 네트워크, 선명도 처리 네트워크, 텍스처(texture) 처리 네트워크 및 에지(edge) 처리 네트워크 중 적어도 하나를 포함할 수 있으나 이에 한정되는 것은 아니다. 다만, 이하에서는 설명의 편의를 위하여 화질 처리 네트워크가 초해상도 처리 네트워크로 구현되는 경우를 상정하여 설명하도록 한다.
도 1a는 일반적인 초해상도 처리 네트워크의 구조를 설명하기 위한 도면이다.
도 1a에 도시된 일반적인 8K 디스플레이를 위한 화질 처리 pipeline에 따르면, 다양한 해상도의 입력에 대해 상이한 영상 처리 흐름이 진행될 수 있다.
예를 들어, 2K 이하의 작은 해상도의 영상이 입력되면, 2K의 정형화된 사이즈로 scale-up 한 뒤 화질 처리를 진행하고, 이를 다시 4K의 정형화된 사이즈로 scale-up 한 뒤 화질 처리를 진행한다. 이 후, 8K로 scale-up 한 뒤 화질 처리를 진행하는 흐름으로 영상 처리가 진행될 수 있다. 반면, 4K 해상도의 영상이 입력되면, 앞 단은 4K 영상을 처리할 수 없게 설계되어 있으므로 바로 4K 화질 처리부터 진행하게 된다. 이 경우, 특정 화질 처리 네트워크는 특정 위치에 고정되어 화질 처리를 수행하게 되므로 구조적인 성능 제약 또는 구조적 효율(설계 비용당 화질 향상 정도) 감소를 피할 수 없다는 문제가 있다.
예를 들어, 특정 화질 처리 네트워크가 PQ enhancement @2K(이하, 2K 도메인(domin)(또는 존(zone)))에 위치한 경우 및 PQ enhancement @8K(이하, 8K 도메인(domain))에 위치한 경우를 비교하여 설명하도록 한다.
화질 처리 네트워크가 2K 도메인에 위치한 경우 4K, 8K 입력 영상은 해당 네트워크를 통과하지 않기 때문에 해당 네트워크를 통한 network를 통한 화질 개선이 불가능하다는 구조적 성능 제약이 있을 수 있다. 또한, 해당 네트워크를 통과할 수 있는 2K 이하의 해상도 영상이라 하더라도 네트워크는 최대 2K 주파수 도메인에서의 데이터만 생성할 수 있기 때문에 이후 해당 영상이 8K로 scale-up 된 경우, 2K~8K에 해당하는 주파수의 데이터는 2K 도메인의 네트워크로는 생성이 불가능하다는 구조적 성능 제약이 있을 수 있다.
반면, 화질 처리 네트워크가 8K 도메인에 위치한 경우, 해당 네트워크는 모든 해상도의 입력 영상을 처리할 수 있으며, 최대 8K 주파수 도메인까지의 데이터를 생성할 수 있다는 점에서 구조적 성능 제약은 없게 된다. 단, 이 경우 2K 도메인에 비해서 16배 증가한 픽셀 데이터(pixel data)를 처리해야 한다. 즉, cost가 16배 증가하거나 동일 cost에서는 화질 향상 성능이 감소하는 것을 피할 수 없게 된다는 구조적 효율 감소가 발생될 수 있다. 즉, 화질 처리 네트워크가 4K 도메인에 위치할 경우, 2K 도메인에 비해서 구조적 효율 감소를, 8K 도메인에 비해서 구조적 성능 제약을 가지게 된다.
도 1b 및 도 1c는 본 개시의 일 실시 예에 따른 초해상도 처리 네트워크의 구조를 설명하기 위한 도면들이다.
도 1b 및 도 1c에 도시된 바와 같이 일 실시 예에 따른 화질 처리 네트워크는 입력 영상의 해상도 및/또는 특징에 따라 최적의 화질 처리 위치로 이동 가능하도록 구현될 수 있다. 이를 통해 입력 영상의 해상도 및/또는 특징에 따라 구조적 성능 제약 및 구조적 효율 감소를 최소화할 수 있다.
예를 들어, 도 1b에 도시된 바와 같이 8K 영상이 입력되면, 화질 처리 네트워크를 8K 도메인에 위치시켜 효율성은 다소 감소하더라도 구조적 성능 제약 없이 최적의 성능을 낼 수 있다.
또한, 4K 영상이 입력되면 영상의 특성에 따라 화질 처리 네트워크를 상이한 위치에 위치시킬 수 있다. 예를 들어, 고화질 4K 영상의 경우 주파수 도메인에서 분석하면 4K 도메인에서는 화질을 더 개선시킬 여지가 거의 없기에 8K 도메인에 화질 처리 네트워크를 위치시켜 8K 주파수 도메인의 데이터를 생성시킬 수 있다. 반면, 저화질 4K 영상의 경우 4K 도메인에서도 화질을 개선시킬 여지가 많이 있고 화질 처리 네트워크의 효율을 최대화하는 것이 중요할 수 있다(이 경우, 화질 네트워크에 cost가 무한대로 투입되어 모든 영상을 8K 도메인에서 원하는 수준으로 개선할 수 있는 경우는 고려 대상에서 제외하기로 한다). 이 경우 해당 네트워크를 4K 도메인에 위치시켜 8K 도메인보다 향상된 효율로 고화질 4K 영상을 생성하는 것이 더 효율적일 수 있다.
유사하게, 2K 영상이 입력되면, 화질 처리 네트워크를 8K 도메인에 위치시켜 효율을 기하급수적으로 감소시키기 보다는, 도 1c에 도시된 바와 같이 화질 처리 네트워크를 4K 도메인에 위치시켜 적절한 효율을 유지하며 구조적 성능 제약을 최소화시키는 것이 적합할 수 있다. 또는 화질 처리 네트워크를 2K 도메인에 위치시켜 최고의 효율을 유지하는 것이 적합할 수도 있다.
이에 따라 이하에서는, 입력 영상의 해상도 및/또는 특징에 기초하여 화질 처리 네트워크를 실시간으로 최적의 위치에서 동작시킬 수 있는 부유형 네트워크를 제공하는 다양한 실시 예에 대해 설명하도록 한다.
도 2a는 일 실시 예에 따른 전자 장치의 구성을 나타내는 블럭도이다.
도 2a에 따르면 전자 장치(100)은 디스플레이(110), 메모리(120) 및 하나 이상의 프로세서(130)를 포함한다.
디스플레이(110)는 자발광 소자를 포함하는 디스플레이 또는, 비자발광 소자 및 백라이트를 포함하는 디스플레이로 구현될 수 있다. 예를 들어, LCD(Liquid Crystal Display), OLED(Organic Light Emitting Diodes) 디스플레이, LED(Light Emitting Diodes), 마이크로 LED(micro LED), Mini LED, PDP(Plasma Display Panel), QD(Quantum dot) 디스플레이, QLED(Quantum dot light-emitting diodes) 등과 같은 다양한 형태의 디스플레이로 구현될 수 있다. 디스플레이(110) 내에는 a-si TFT, LTPS(low temperature poly silicon) TFT, OTFT(organic TFT) 등과 같은 형태로 구현될 수 있는 구동 회로, 백라이트 유닛 등도 함께 포함될 수 있다. 일 예에 따라 디스플레이(110)는 평면(flat) 디스플레이, 커브드(curved) 디스플레이, 폴딩(folding) 또는/및 롤링(rolling) 가능한 플렉서블 디스플레이 등으로 구현될 수 있다. 다만, 경우에 따라 전자 장치(100)는 디스플레이(110)를 구비하지 않을 수 있으며, 이 경우 최종 획득된 출력 영상을 디스플레이를 구비하는 외부 장치로 전송할 수 있다.
메모리(120)는 다양한 실시 예를 위해 필요한 데이터를 저장할 수 있다. 메모리(120)는 데이터 저장 용도에 따라 전자 장치(100')에 임베디드된 메모리 형태로 구현되거나, 전자 장치(100)에 탈부착이 가능한 메모리 형태로 구현될 수도 있다. 예를 들어,전자 장치(100)의 구동을 위한 데이터의 경우 전자 장치(100')에 임베디드된 메모리에 저장되고, 전자 장치(100)의 확장 기능을 위한 데이터의 경우 전자 장치(100)에 탈부착이 가능한 메모리에 저장될 수 있다. 한편, 전자 장치(100)에 임베디드된 메모리의 경우 휘발성 메모리(예: DRAM(dynamic RAM), SRAM(static RAM), 또는 SDRAM(synchronous dynamic RAM) 등), 비휘발성 메모리(non-volatile Memory)(예: OTPROM(one time programmable ROM), PROM(programmable ROM), EPROM(erasable and programmable ROM), EEPROM(electrically erasable and programmable ROM), mask ROM, flash ROM, 플래시 메모리(예: NAND flash 또는 NOR flash 등), 하드 드라이브, 또는 솔리드 스테이트 드라이브(solid state drive(SSD)) 중 적어도 하나로 구현될 수 있다. 또한, 전자 장치(100')에 탈부착이 가능한 메모리의 경우 메모리 카드(예를 들어, CF(compact flash), SD(secure digital), Micro-SD(micro secure digital), Mini-SD(mini secure digital), xD(extreme digital), MMC(multi-media card) 등), USB 포트에 연결가능한 외부 메모리(예를 들어, USB 메모리) 등과 같은 형태로 구현될 수 있다.
일 예에 따라 메모리(120)는 화질 처리 네트워크에 대한 정보를 저장할 수 있다. 여기서, 화질 처리 네트워크에 대한 정보란 feature, coefficient와 같은 레이어 구성 정보일 수 있다. 또한, 메모리(120)를 후술하는 부유형 네트워크를 구현하기 위한 스케쥴링 정보를 저장할 수 있다.
하나 이상의 프로세서(130)는 전자 장치(100)의 동작을 전반적으로 제어한다. 구체적으로, 하나 이상의 프로세서(130)는 전자 장치(100)의 각 구성과 연결되어 전자 장치(100)의 동작을 전반적으로 제어할 수 있다. 예를 들어, 하나 이상의 프로세서(130)는 디스플레이(110) 및 메모리(120)와 전기적으로 연결되어 전자 장치(100)의 전반적인 동작을 제어할 수 있다. 하나 이상의 프로세서(130)는 하나 또는 복수의 프로세서로 구성될 수 있다.
하나 이상의 프로세서(130)는 메모리(120)에 저장된 적어도 하나의 인스트럭션(instruction)을 실행함으로써, 다양한 실시 예에 따른 전자 장치(100)의 동작을 수행할 수 있다.
본 개시에 따른 인공 지능과 관련된 기능은 전자 장치의 프로세서와 메모리를 통해 동작된다.
하나 이상의 프로세서(130)는 하나 또는 복수의 프로세서로 구성될 수 있다. 이때, 하나 또는 복수의 프로세서는 CPU(Central Processing Unit), GPU(Graphic Processing Unit), NPU(Neural Processing Unit) 중 적어도 하나를 포함할 수 있으나 전술한 프로세서의 예시에 한정되지 않는다.
CPU는 일반 연산뿐만 아니라 인공 지능 연산을 수행할 수 있는 범용 프로세서로서, 다계층 캐시(Cache) 구조를 통해 복잡한 프로그램을 효율적으로 실행할 수 있다. CPU는 순차적인 계산을 통해 이전 계산 결과와 다음 계산 결과의 유기적인 연계가 가능하도록 하는 직렬 처리 방식에 유리하다. 범용 프로세서는 전술한 CPU로 명시한 경우를 제외하고 전술한 예에 한정되지 않는다.
GPU는 그래픽 처리에 이용되는 부동 소수점 연산 등과 같은 대량 연산을 위한 프로세서로서, 코어를 대량으로 집적하여 대규모 연산을 병렬로 수행할 수 있다. 특히, GPU는 CPU에 비해 컨볼루션(Convolution) 연산 등과 같은 병렬 처리 방식에 유리할 수 있다. 또한, GPU는 CPU의 기능을 보완하기 위한 보조 프로세서(co-processor)로 이용될 수 있다. 대량 연산을 위한 프로세서는 전술한 GPU로 명시한 경우를 제외하고 전술한 예에 한정되지 않는다.
NPU는 인공 신경망을 이용한 인공 지능 연산에 특화된 프로세서로서, 인공 신경망을 구성하는 각 레이어를 하드웨어(예로, 실리콘)로 구현할 수 있다. 이때, NPU는 업체의 요구 사양에 따라 특화되어 설계되므로, CPU나 GPU에 비해 자유도가 낮으나, 업체가 요구하기 위한 인공 지능 연산을 효율적으로 처리할 수 있다. 한편, 인공 지능 연산에 특화된 프로세서로, NPU는 TPU(Tensor Processing Unit), IPU(Intelligence Processing Unit), VPU(Vision processing unit) 등과 같은 다양한 형태로 구현 될 수 있다. 인공 지능 프로세서는 전술한 NPU로 명시한 경우를 제외하고 전술한 예에 한정되지 않는다.
또한, 하나 이상의 프로세서(130)는 SoC(System on Chip)으로 구현될 수 있다. 이때, SoC에는 하나 이상의 프로세서(130)는 이외에 메모리(120), 및 프로세서(130)와 메모리(120) 사이의 데이터 통신을 위한 버스(Bus)등과 같은 네트워크 인터페이스를 더 포함할 수 있다.
전자 장치(100)에 포함된 SoC(System on Chip)에 복수의 프로세서가 포함된 경우, 전자 장치(100)는 복수의 프로세서 중 일부 프로세서를 이용하여 인공 지능과 관련된 연산(예를 들어, 인공 지능 모델의 학습(learning)이나 추론(inference)에 관련된 연산)을 수행할 수 있다. 예를 들어, 전자 장치는 복수의 프로세서 중 컨볼루션 연산, 행렬 곱 연산 등과 같은 인공 지능 연산에 특화된 GPU, NPU, VPU, TPU, 하드웨어 가속기 중 적어도 하나를 이용하여 인공 지능과 관련된 연산을 수행할 수 있다. 다만, 이는 일 실시예에 불과할 뿐, CPU 등과 범용 프로세서를 이용하여 인공 지능과 관련된 연산을 처리할 수 있음은 물론이다.
또한, 전자 장치(100)는 하나의 프로세서에 포함된 멀티 코어(예를 들어, 듀얼 코어, 쿼드 코어 등)를 이용하여 인공 지능과 관련된 기능에 대한 연산을 수행할 수 있다. 특히, 전자 장치는 프로세서에 포함된 멀티 코어를 이용하여 병렬적으로 컨볼루션 연산, 행렬 곱 연산 등과 같은 인공 지능 연산을 수행할 수 있다.
하나 이상의 프로세서(130)는, 메모리(120)에 저장된 기정의된 동작 규칙 또는 인공 지능 모델에 따라, 입력 데이터를 처리하도록 제어한다. 기정의된 동작 규칙 또는 인공 지능 모델은 학습을 통해 만들어진 것을 특징으로 한다.
여기서, 학습을 통해 만들어진다는 것은, 다수의 학습 데이터들에 학습 알고리즘을 적용함으로써, 원하는 특성의 기정의된 동작 규칙 또는 인공 지능 모델이 만들어짐을 의미한다. 이러한 학습은 본 개시에 따른 인공 지능이 수행되는 기기 자체에서 이루어질 수도 있고, 별도의 서버/시스템을 통해 이루어 질 수도 있다.
인공 지능 모델은, 복수의 신경망 레이어들로 구성될 수 있다. 적어도 하나의 레이어는 적어도 하나의 가중치(weight values)을 갖고 있으며, 이전(previous) 레이어의 연산 결과와 적어도 하나의 정의된 연산을 통해 레이어의 연산을 수행한다. 신경망의 예로는, CNN(Convolutional Neural Network), RNN(Recurrent Neural Network), DNN(Deep Neural Network), RBM(Restricted Boltzmann Machine), DBN(Deep Belief Network), BRDNN(Bidirectional Recurrent Deep Neural Network) 및 심층 Q-네트워크(Deep Q-Networks), Transformer가 있으며, 본 개시에서의 신경망은 명시한 경우를 제외하고 전술한 예에 한정되지 않는다.
학습 알고리즘은, 다수의 학습 데이터들을 이용하여 소정의 대상 기기(예컨대, 로봇)을 훈련시켜 소정의 대상 기기 스스로 결정을 내리거나 예측을 할 수 있도록 하는 방법이다. 학습 알고리즘의 예로는, 지도형 학습(supervised learning), 비지도형 학습(unsupervised learning), 준지도형 학습(semi-supervised learning) 또는 강화 학습(reinforcement learning)이 있으며, 본 개시에서의 학습 알고리즘은 명시한 경우를 제외하고 전술한 예에 한정되지 않는다.
한편, 일 실시 예에 따른 화질 처리 네트워크는 상술한 인공 지능 모델의 일 구현 예일 수 있다.
이하에서는 설명의 편의를 위하여 하나 이상의 프로세서(130)를 프로세서(130)로 명명하도록 한다.
도 2b는 일 실시 예에 따른 전자 장치의 구성을 구체적으로 나타내는 블럭도이다.
도 2b에 따르면, 전자 장치(100')은 디스플레이(110), 메모리(120), 하나 이상의 프로세서(130), 통신 인터페이스(140), 사용자 인터페이스(150), 스피커(160) 및 카메라(170)를 포함할 수 있다. 도 2b에 도시된 구성 중 도 2a에 도시된 구성과 중복되는 구성에 대해서는 자세한 설명을 생략하도록 한다.
통신 인터페이스(140)는 전자 장치(100')의 구현 예에 따라 다양한 통신 방식을 지원할 수 있다. 예를 들어 통신 인터페이스(140)는 블루투스(Bluetooth), AP 기반의 Wi-Fi(와이파이, Wireless LAN 네트워크), 지그비(Zigbee), 유/무선 LAN(Local Area Network), WAN(Wide Area Network), 이더넷(Ethernet), IEEE 1394, HDMI(High-Definition Multimedia Interface), USB(Universal Serial Bus), MHL(Mobile High-Definition Link), AES/EBU(Audio Engineering Society/ European Broadcasting Union), 옵티컬(Optical), 코액셜(Coaxial) 등과 같은 통신 방식을 통해 외부 장치, 외부 저장 매체(예를 들어, USB 메모리), 외부 서버(예를 들어 클라우드 서버) 등과 통신을 수행할 수 있다.
사용자 인터페이스(150)는 버튼, 터치 패드, 마우스 및 키보드와 같은 장치로 구현되거나, 상술한 디스플레이 기능 및 조작 입력 기능도 함께 수행 가능한 터치 스크린으로 구현될 수 있다. 일 실시 예에 따라 사용자 인터페이스(150)는 리모콘 송수신부로 구현되어 원격 제어 신호를 수신할 수 있다. 리모콘 송수신부는 적외선 통신, 블루투스 통신 또는 와이파이 통신 중 적어도 하나의 통신 방식을 통해 외부 원격 제어 장치로부터 리모콘 신호를 수신하거나, 리모콘 신호를 송신할 수 있다.
스피커(160)는 음향 신호를 출력한다. 예를 들어, 스피커(160)는 프로세서(130)에서 처리된 디지털 음향 신호를 아날로그 음향 신호로 변환하고 증폭하여 출력할 수 있다.
카메라(170)는 기 설정된 이벤트에 따라 턴 온 되어 촬영을 수행할 수 있다. 카메라(170)는 촬상된 영상을 전기적인 신호로 변환하고 변환된 신호에 기초하여 영상 데이터를 생성할 수 있다.
그 밖에 전자 장치(100')는 구현 예에 따라 마이크(미도시), 센서(미도시), 튜너(미도시) 및 복조부(미도시) 등을 포함할 수 있다.
마이크(미도시)는 사용자 음성이나 기타 소리를 입력받아 오디오 데이터로 변환하기 위한 구성이다. 다만, 다른 실시 예에 따라 전자 장치(100')는 외부 장치를 통해 입력된 사용자 음성을 통신 인터페이스(140)를 통해 수신할 수 있다.
센서(미도시)는 터치 센서, 근접 센서, 가속도 센서, 지자기 센서, 자이로 센서, 압력 센서, 위치 센서, 조도 센서 등과 같은 다양한 유형의 센서를 포함할 수 있다.
튜너(미도시)는 안테나를 통해 수신되는 RF(Radio Frequency) 방송 신호 중 사용자에 의해 선택된 채널 또는 기 저장된 모든 채널을 튜닝하여 RF 방송 신호를 수신할 수 있다.
복조부(미도시)는 튜너에서 변환된 디지털 IF 신호(DIF)를 수신하여 복조하고, 채널 복호화 등을 수행할 수도 있다.
도 3은 일 실시 예에 따른 전자 장치의 영상 처리 방법을 설명하기 위한 흐름도이다.
도 3에 도시된 일 실시 예에 따르면, 프로세서(130)는 복수의 영상 처리 도메인 중, 입력 영상의 화질 처리에 요구되는 화질 처리 네트워크에 대응되는 영상 처리 도메인을 식별할 수 있다(S310). 일 예에 따라 화질 처리 네트워크는 CNN(Convolutional Neural Network)으로 구현될 수 있다. 복수의 영상 처리 도메인은 상이한 해상도의 영상을 처리하는 영상 처리 도메인일 수 있다. 예를 들어, 복수의 영상 처리 도메인은 2K 도메인, 4K 도메인, 8K 도메인을 포함할 수 있다. 다만, 제품의 사양에 따라 일부 도메인이 생략되거나, 추가될 수 있으며 반드시 이에 한정되는 것은 아니다.
일 예에 따라 프로세서(130)는 입력 영상의 해상도 정보 및/또는 특성 정보(또는 특징 정보)에 기초하여 화질 처리 네트워크에 대응되는 도메인을 식별할 수 있다. 입력 영상의 해상도 정보는 2K, 4K, 8K 등의 해상도를 나타내는 정보이고, 특성 정보는 입력 영상의 화질 정보(예를 들어 고화질 또는 저화질)을 나타낼 수 있는 노이즈 관련 정보, 에지 관련 정보, 텍스처 관련 정보, 콘트라스트 관련 정보 등으로 입력 영상을 분석(예를 들어, 전처리를 통한 분석)하여 획득되거나, 입력 영상과 함께 수신(예를 들어, 메타 데이터의 형태)될 수 있다.
화질 처리 네트워크는, 초해상도(super resolution) 처리 네트워크, 선명도 처리 네트워크, 텍스처(texture) 처리 네트워크 및 에지(edge) 처리 네트워크 중 적어도 하나를 포함할 수 있다. 다만, 이하에서는 설명의 편의를 위하여 화질 처리 네트워크가 초해상도 처리 네트워크로 구현되는 경우를 주요 실시 예로 설명하도록 한다. 한편, 화질 처리 네트워크에 대응되는 도메인을 식별하는 동작은 복수의 영상 처리 도메인(예를 들어, 2K 도메인, 4K 도메인, 8K 도메인) 중 하나를 식별하는 동작이며, 도 1b 및 도 1c에 도시된 바와 같이 복수의 영상 처리 도메인은 일련의 순서에 따라 위치되는 경우 도메인의 위치를 식별하는 동작과 동일/유사한 의미로 이용될 수 있다.
이어서, 프로세서(130)는 S310 단계에서 식별된 영상 처리 도메인에 기초하여 복수의 단위 연산 모듈 중 화질 처리 네트워크에 포함된 복수의 레이어 각각에서 이용되는 적어도 하나의 단위 연산 모듈을 식별할 수 있다(S320). 일 예에 따라 화질 처리 네트워크가 복수의 영상 처리 도메인 중 어느 도메인에 위치하는지에 따라 화질 처리 네트워크의 구조가 달라질 수 있다. 이 경우, 화질 처리 네트워크의 상이한 구조에 따라 각 레이어에 대응되는 연산 모듈의 구성, 개수, 연결 관계 등이 상이할 수 있기 때문에 복수의 레이어 각각에서 이용되는 적어도 하나의 단위 연산 모듈을 식별하는 동작이 필요하게 된다.
이어서, 프로세서(130)는 S320 단계에서 적어도 하나의 연산 모듈에 기초하여 복수의 레이어 중 제1 레이어에 대응되는 적어도 하나의 단위 연산 모듈로 제1 레이어의 정보가 입력되고 제1 레이어의 출력이 복수의 레이어 중 제2 레이어에 대응되는 적어도 하나의 단위 연산 모듈로 입력되도록 제어하여 부유형 화질 처리 네트워크를 구현할 수 있다(S330). 여기서, 레이어의 정보는 feature, coefficient와 같은 레이어 구성 정보일 수 있다.
이 후, 프로세서(130)는 구현된 부유형 화질 처리 네트워크를 이용하여 입력 영상을 처리할 수 있다(S340).
도 4a 및 도 4b는 일 실시 예에 따른 단위 연산 모듈의 구현 예를 설명하기 위한 도면들이다.
일 실시 예에 따르면, 단위 연산 모듈(또는 베이직 연산 모듈)은 컨벌루션(convolution) 연산을 위한 상이한 타입의 하드웨어 연산자(operator)들로 구성될 수 있다. 여기서, 상이한 타입의 연산자들은 곱셈기, 덧셈기, FlipFlop 등을 포함할 수 있으나, 반드시 이에 한정되는 것은 아니다.
일 예에 따라 단위 연산 모듈은 도 4a에 도시된 바와 같은 곱셈기 및 덧셈기를 포함하는 트리 구조나 해당 트리 구조의 일부로 구현될 수 있다. 예를 들어, 도 4a에 도시된 구조에서 필터 사이즈에 따라 곱셈기의 개수 N이 정해질 수 있다. 예를 들어, 3x3convolution의 경우 곱셈기의 개수 N은 9가 될 수 있다.
다른 예에 따라 단위 연산 모듈은 도 4b에 도시된 바와 같은 곱셈기, 덧셈기 및 FlipFlop을 포함하는 MAC 구조로 구현될 수 있다.
일 실시 예에 따르면, 전자 장치(100)는 적어도 하나의 화질 처리 네트워크의 도메인 위치에 따라 각 레이어에서 이용되는 복수의 단위 연산 모듈이 집합된 컨벌루션 뱅크(convoultion bank)를 포함할 수 있다.
도 5는 일 실시 예에 따른 컨벌루션 뱅크의 구현 예를 설명하기 위한 도면이다.
일 예에 따르면, 도 5에 도시된 바와 같이 컨벌루션 뱅크(500)는 도 4a 및 도 4b에 도시된 바와 같은 구조의 단위 연산 모듈 즉, basic module을 전자 장치(100)에서 필요한 화질 처리 네트워크를 구성하는데 필요한 만큼 집합된 형태일 수 있다. 예를 들어 전자 장치(100)에서 필요한 화질 처리 네트워크가 초해상화 처리 네트워크인 경우, 컨벌루션 뱅크(500)는 각 영상 처리 도메인 별로 대응되는 초해상화 처리 네트워크를 구성하기 위해 필요한 basic module들이 집합된 형태일 수 있다. 예를 들어, 종래와 같이 화질 처리 네트워크의 각 레이어에 대응되는 하드웨어가 미리 설계되어 있지 않고, 화질 처리 네트워크에 대해 예상되는 최대 개수의 곱셈기 및 덧셈기를 미리 예측하여 복수의 단위 연산 모듈로 구현하고 실시간으로 필요한 단위 연산 모듈을 선택하여 부유형 화질 처리 네트워크를 구현할 수 있다.
한편, 전자 장치(100)에서 필요한 화질 처리 네트워크가 복수의 상이한 타입의 네트워크인 경우, 컨벌루션 뱅크는 각 영상 처리 도메인 별로 복수의 화질 처리 네트워크를 구성하기 위해 필요한 basic module들이 집합된 형태일 수 있다. 이 경우, 컨벌루션 뱅크는 복수의 화질 처리 네트워크 별로 필요한 basic module들이 모두 집합된 하나의 컨벌루션 뱅크 형태이거나, 복수의 화질 처리 네트워크 별로 basic module들이 각각 집합된 복수의 컨벌루션 뱅크로 구현될 수 있다.
다만, 이하에서는 설명의 편의를 위하여 컨벌루션 뱅크가 하나의 화질 처리 네트워크를 영상 처리 도메인 별로 구현하기 위한 basic module들이 집합된 형태로 구현된 경우를 상정하기로 한다.
일 실시 예에 따라 프로세서(130)는 컨벌루션 뱅크(500)에 포함된 복수의 단위 연산 모듈 중에서 입력 영상에 대응되는 영상 처리 도메인에 따른 복수의 레이어 각각에서 이용되는 적어도 하나의 단위 연산 모듈을 식별하여 해당 영상 처리 도메인에 대응되는 부유형 화질 처리 네트워크를 구현(또는 구성)할 수 있다. 예를 들어, 동일한 하드웨어 cost를 가지는 네트워크라도 다른 영상 처리 도메인에 위치하게 되면 각 위치에 맞게 구조가 달라져야 하고 달라지는 구조에 맞는 상이한 하드웨어로 설계되어야 한다. 이를 위해, CNN(Convolutional Neural Network) 기반의 모든 네트워크에 사용되는 컨벌루션 수행을 위한 곱셈기, 덧셈기 등의 하드웨어 연산자를 모두 모아 컨버루션 뱅크(500)의 개념으로 배치할 수 있다. 여기서, CNN 기반의 모든 네트워크는 전자 장치(100)의 구현 예에 따라 전자 장치(100)에서 필요한 화질 처리 네트워크를 포함할 수 있다. 다만, 이에 한정되는 것은 아니며 CNN 기반의 모든 네트워크는 이 후 전자 장치(100)의 업데이트 등에 따라 필요할 수 있는 화질 처리 네트워크도 포함할 수 있다.
도 6은 일 실시 예에 따른 전자 장치의 영상 처리 방법을 설명하기 위한 흐름도이다.
도 6에 도시된 일 실시 예에 따르면, 프로세서(130)는 입력 영상의 해상도 정보 및 특성 정보 중 적어도 하나에 기초하여 화질 처리 네트워크가 제1 해상도에 대응되는 제1 도메인에 위치하는 것으로 식별되면(S610), 스케쥴링 정보에 기초하여 컨벌루션 뱅크(500)에 포함된 복수의 단위 연산 모듈 중 제1 해상도의 화질 처리 네트워크에 대응되는 복수의 레이어 각각에서 이용되는 적어도 하나의 제1 단위 연산 모듈을 식별할 수 있다(S620). 여기서, 스케쥴링 정보란 영상 처리 도메인에 따라 각 레이어에서 이용되는 복수의 단위 연산 모듈이 스케쥴링된 정보를 의미할 수 있다. 즉, 스케쥴링된 정보는 영상 처리 도메인에 따라 각 레이어에서 이용되는복수의 단위 연산 모듈의 식별 정보, 입출력 정보, 입출력 순서 등의 정보를 포함할 수 있다. 일 예에 따라 스케쥴링 정보는 메모리(120)에 저장될 수 있으나, 이에 한정되는 것은 아니다. 예를 들어, 스케쥴링 정보는 입력 영상에 따라 화질 처리 네트워크의 도메인 위치가 식별되면 하드웨어적으로 먹스(Mux)를 선택(또는 제어)함에 따라 획득될 수 있다. 예를 들어, 도메인 위치에 따라 먹스(Mux)를 통해 레이어의 정보들이 대응되는 basic module들로 입력될지 선택하고, basic module들의 출력을 어느 레이어로 연결할지 선택하여 실시간으로 스케쥴링 정보를 획득할 수 있다.
이어서, 프로세서(130)는 스케쥴링 정보에 기초하여 복수의 레이어 중 제1 레이어에 대응되는 적어도 하나의 제1 단위 연산 모듈로 제1 레이어의 정보가 입력되고 제1 레이어의 출력이 복수의 레이어 중 제2 레이어에 대응되는 적어도 하나의 제1 단위 연산 모듈로 입력되도록 제어하여 제1 부유형 화질 처리 네트워크를 구현할 수 있다(S630).
이 후, 프로세서(130)는 스케쥴링 정보에 기초하여 구현된 제1 부유형 화질 처리 네트워크를 이용하여 입력 영상을 처리할 수 있다(S640). 예를 들어, 프로세서(130)는 제1 부유형 화질 처리 네트워크로 입력 영상을 입력하여 화질 처리가 수행되도록 제어할 수 있다.
또한, 프로세서(130)는 입력 영상의 해상도 정보 및 특성 정보 중 적어도 하나에 기초하여 화질 처리 네트워크가 제2 해상도에 대응되는 제2 도메인에 위치하는 것으로 식별되면(S650:Y), 스케쥴링 정보에 기초하여 컨벌루션 뱅크(500)에 포함된 복수의 단위 연산 모듈 중 제2 해상도의 화질 처리 네트워크에 대응되는 복수의 레이어 각각에서 이용되는 적어도 하나의 제2 단위 연산 모듈을 식별할 수 있다(S660).
이어서, 프로세서(130)는 스케쥴링 정보에 기초하여 복수의 레이어 중 제1 레이어에 대응되는 적어도 하나의 제2 단위 연산 모듈로 제1 레이어의 정보가 입력되고 제1 레이어의 출력이 복수의 레이어 중 제2 레이어에 대응되는 적어도 하나의 제2 단위 연산 모듈로 입력되도록 제어하여 제2 부유형 화질 처리 네트워크를 구현할 수 있다(S670).
이 후, 프로세서(130)는 스케쥴링 정보에 기초하여 구현된 제2 부유형 화질 처리 네트워크를 이용하여 입력 영상을 처리할 수 있다(S680).
도 7a 내지 도 7c는 일 실시 예에 따른 스케쥴링 정보를 설명하기 위한 도면들이다.
일 실시 예에 따르면, 화질 처리 네트워크가 위치하는 도메인에 따라 각 레이어에서 이용하게 되는 단위 연산 모듈들을 미리 스케쥴링한 스케쥴링 정보를 이용하여 실시간으로 필요한 부유형 네트워크를 구현할 수 있다.
일 예에 따라, 도 7a 내지 도 7c에 도시된 바와 같이 화질 처리 네트워크가 위치하는 도메인에 따라 어느 basic module들이 각 도메인에서의 Layer0에 이용될지 미리 스케쥴링되어 있을 수 있다. 예를 들어, 도 7a에 도시된 바와 같이 컨벌루션 뱅크(500)에 포함된 basic module들 중 2K 도메인의 Layer0에서 이용될 basic module들(510)이 미리 스케쥴링되어 있을 수 있다. 또한, 도 7b에 도시된 바와 같이 컨벌루션 뱅크(500)에 포함된 basic module들 중 4K 도메인의 Layer0에서 이용될 basic module들(520)이 미리 스케쥴링되어 있을 수 있다. 또한, 도 7c에 도시된 바와 같이 컨벌루션 뱅크(500)에 포함된 basic module들 중 8K 도메인의 Layer0에서 이용될 basic module들(530)이 미리 스케쥴링되어 있을 수 있다.
도 8a 및 도 8b는 일 실시 예에 따른 부유형 화질 네트워크 구현 예를 설명하기 위한 도면들이다.
일 실시 예에 따르면, 도 8a에 도시된 바와 같이 각 레이어(821, 822, 823, 824, ...)는 컨트롤러(810) 및 컨벌루션 뱅크(500)와 연계되어 네트워크 연산을 수행할 수 있다. 여기서, 컨트롤러(810)는 상술한 프로세서(130)의 일 구현 예일 수 있다.
일 예에 따라 컨트롤러(810)는 스케쥴링 정보에 기초하여 화질 처리 네트워크가 위치하는 도메인에 따라 컨벌루션 뱅크(500) 내의 적어도 일부의 basic module 각각에 어느 레이어의 정보를 입력할지 선택하며, 각 basic module의 출력이 어느 레이어의 입력이 될지 선택할 수 있다. 즉, 후자의 경우 컨트롤러(810)는 각 basic module의 출력이 어느 레이어의 basic module로 입력될지 선택할 수 있다. 여기서, 레이어의 정보는 feature, coefficient와 같은 레이어 구성 정보일 수 있다.
일 실시 예에 따르면, 도 8b에 도시된 바와 같이 각 레이어(821, 822, 823, 824, ...)는 Feeding 모듈, 모델 메모리(Model Memory), 피쳐 메모리(Feature Memory)를 포함할 수 있다. 예를 들어, Layer0(821)는 제1 Feeding 모듈(821-1), 제1 모델 메모리(Model Memory)(821-2), 제1 피쳐 메모리(Feature Memory)(821-3)을 포함할 수 있다. 또한, LayerN(824)은 제N Feeding 모듈(821-1), 제N 모델 메모리(Model Memory)(821-2), 제N 피쳐 메모리(Feature Memory)(821-3)을 포함할 수 있다. 각 레이어에서의 동작은 동일/유사하므로 Layer0(821)를 예를 들어 설명하도록 한다.
일 예에 따라 제1 Feeding 모듈(821-1)은 메모리 컨트롤러(Memory Controller)를 이용하여 제1 모델 메모리(Model Memory)(821-2)에 액세스하여 제1 모델 메모리(Model Memory)(821-2)에 저장된 모델 정보를 획득할 수 있다. 또한, 제1 Feeding 모듈(821-1)은 메모리 컨트롤러(Memory Controller)를 이용하여 제1 피쳐 메모리(Feature Memory)(821-3)에 액세스하여 제1 피쳐 메모리(Feature Memory)(821-3)에 저장된 피쳐 정보를 획득할 수 있다. 여기서, 제1 모델 메모리(Model Memory)(821-2) 및 제1 피쳐 메모리(Feature Memory)(821-3)에 액세스하는 메모리 컨트롤러가 별개로 구현되는 것으로 도시하였으나, 반드시 이에 한정되는 것은 아니며 동일한 메모리 컨트롤러를 이용하여 제1 모델 메모리(Model Memory)(821-2) 및 제1 피쳐 메모리(Feature Memory)(821-3)에 액세스할 수도 있다. 예를 들어, 모델 정보는 컨벌루션을 위한 필터들의 coefficient 정보를 포함하고, 피쳐 정보는 직전 컨벌루션의 출력 또는 최초 입력인 피쳐 맵의 feature 정보를 포함할 수 있다.
일 예에 따라 컨트롤러(810)는 제1 Feeding 모듈(821-1)을 이용하여 모델 정보 및 피쳐 정보를 컨벌루션 뱅크(500)로 제공하고, 컨벌루션 뱅크(500)로부터 제공된 컨벌루션 연산의 출력을 수신하여 이를 처리하고 다음 레이어에 넘겨주는 과정을 반복하면서 특정 도메인에 대응되는 부유형 화질 처리 네트워크를 구현할 수 있게 된다.
도 9는 일 실시 예에 따라 도메인에 따라 상이한 부유형 화질 네트워크를 구현하기 위한 일 예를 설명하기 위한 도면이다.
일 실시 예에 따라 도 9에 도시된 바와 같이 컨벌루션 뱅크(500) 내의 일부 asic module들이 도메인에 따라 Layer0 또는 Layer1로 변경되는 경우, 컨트롤러(810)는 해당 basic module들에 입력되는 정보(예를 들어, 모델 정보 및 피쳐 정보)를 도메인 정보에 따라 선택하고 basic module들의 출력을 어느 레이어로 연결할지 선택하도록 구현될 수 있다. 예를 들어, 도메인 정보에 따라 먹스(Mux)를 통해 레이어의 정보들의 대응되는 basic module들로 입력되도록 하고, basic module들의 출력을 어느 레이어로 연결할지 선택하도록 구현될 수 있다.
일 예에 따르면, 컨벌루션 출력에 더해질 수 있는 활성화 함수나 bias 값은 컨트롤러(810) 또는 각 레이어(821, 822, 823, 824, ...) 중 적어도 하나에서 상황에 적절히 배치될 수 있다.
도 10은 일 실시 예에 따른 화질 처리 네트워크의 구현 예를 설명하기 위한 도면이다.
일 실시 예에 따르면, 화질 처리 네트워크(1000)는 도 10에 도시된 바와 같이 복수의 레이어를 포함할 수 있고, 복수의 레이어는 헤드(head) 레이어, 코어(core) 레이어 및 테일(tail) 레이어를 포함할 수 있다. 일 예에 따르면, 화질 처리 네트워크가 제1 도메인에 위치하는 경우 화질 처리 네트워크는 제1 헤드 레이어, 제1 코어 레이어 및 제1 테일 레이어를 포함하도록 구현될 수 있고, 제2 도메인에 위치하는 경우 화질 처리 네트워크는 제2 헤드 레이어, 제2 코어 레이어 및 제2 테일 레이어를 포함하도록 구현될 수 있다. 이 경우, 제1 헤드 레이어 및 제1 테일 레이어는, 제1 도메인에 대응되도록 학습된 레이어이고, 제2 헤드 레이어 및 제2 테일 레이어는, 제2 도메인에 대응되도록 학습된 레이어일 수 있다. 또한, 제1 코어 레이어 및 제2 코어 레이어는, 제1 도메인 및 제2 도메인에서 공통적으로 이용되도록 학습된 공통 레이어일 수 있다.
일 예에 따라 각 도메인의 위치에 따라 화질 처리 네트워크를 개별적으로 학습시키는 경우 학습에 투입되는 비용 및 시간이 크게 증가할 수 있게 된다. 이에 따라 학습 네트워크를 wrapper(헤드 레이어 및 테일 레이어) 및 코어 레이어로 구별하여 각 도메인의 위치에 따라 헤드 레이어 및 테일 레이어만 재학습시킬 수 있다. 이 경우, 학습 필요 비용, 인원 및 시간 감소 뿐만 아니라 서로 다른 도메은 위치에서도 화질 처리 네트워크의 구조적인 변경을 최소화하여 화질의 일관성을 쉽게 유지할 수 있게 된다.
각 도메인의 위치에 따라 헤드 레이어 및 테일 레이어만 재학습시키기 위하여, 화질 처리 네트워크는 헤드 레이어의 전단에 입력 셔플(input shuffle)을 수행하고 테일 레이어 후단에서 출력 셔플(output shuffle)을 수행하도록 구현될 수 있다.
도 11a 및 도 11b는 일 실시 예에 따른 셔플 방법을 설명하기 위한 도면들이다.
일 실시 예에 따르면, 화질 처리 네트워크(1000)는 입력 셔플에 의해 영상의 해상도를 감소시키고 채널 수는 증가시켜며, 출력 셔플에 의해 영상의 해상도는 증가시키고 채널 수는 감소시키도록 구현될 수 있다. 여기서, 셔플은 일반적인 컨벌루션 레이어와 달리 연산 없이 데이터의 순서와 형태(shape)만 변경하는 기능을 할 수 있다.
일 예에 따라 도 11a에 도시된 바와 같이 입력 셔플은 채널 수를 4배로 증가시키고, 해상도를 1/2배로 감소시키도록 수행될 수 있다. 또한, 도 11b에 도시된 바와 같이 출력 셔플은 채널 수를 1/4배로 감소시키고, 해상도를 2배로 증가시키도록 수행될 수 있다. 다만, 이는 일 예일 뿐이며, 입력 셔플 및 출려 셔플이 반드시 도 11a 및 도 11b에 도시된 바와 같은 형태로 수행되는 것은 아니다.
일 실시 예에 따라 화질 처리 네트워크는 코어 레이어로 입력되는 영상 데이터가 코어 레이어에서 기 학습된 기 설정된 제1 해상도를 가지도록 입력 셔플을 적어도 한 번 이상 수행하고, 화질 처리 네트워크로부터 출력되는 영상 데이터가 기 설정된 제2 해상도를 가지도록 출력 셔플을 적어도 한 번 이상 수행할 수 있다. 여기서, 기 설정된 제1 해상도 및 상기 기 설정된 제2 해상도는 화질 처리 네트워크의 타입에 따라 동일하거나 상이할 수 있다.
일 예에 따라 입력 셔플 및 출려 셔플이 반드시 도 11a 및 도 11b에 도시된 바와 같이 구현되는 경우, 다양한 입력 해상도에 대해서 입력 셔플을 적절히 반복하면 코어 해상도까지 해상도를 감소시킬 수 있다. 예를 들어, 입력 해상도가 8K이고, 코어 해상도가 FHD인 경우에는 입력 셔플을 2회 반복하면 16채널의 코어 해상도 데이터를 획득할 수 있다. 이 후, 코어 레어어를 통과한 데이터에 대해 출력 셔플을 2회 반복하면 출력 해상도인 8K 데이터를 획득할 수 있게 된다. 이에 따라 입력 해상도에 상관없이 코어 해상도가 유지되는 코어 구조를 구현할 수 있게 된다.
상술한 입력 셔플 및 출력 셔플을 이용하여 코어 구조는 유지하고 네트워크의 도메인 위치에 따라 헤드 레이어 및 테일 레이어만 재학습시킬 수 있다. 이 경우, 영상의 해상도 및 특성은 헤드 레이어 및 테일 레이어에 반영되며, 코어 레이어는 원하는 화질 향상(예를 들어, 텍스처 생성, 에지 세선화, 선명도 증가 등)에 기여할 수 있게 된다.
한편, 일 실시 예에 따르면, 프로세서(130)는 화질 네트워크에 포함된 복수의 코어 레이어 중 적어도 일부 코어 레이어에 네트워크 프루닝(network pruning)을 적용할 수 있다. 이 경우, 프로세서(130)는 네트워크 프루닝에 의해 제거된 연산을 헤드 레이어 및 일 레이어 중 적어도 하나에 할당하여 화질 네트워크의 도메인 위치에 따른 컨벌루션 연산 양(또는 연산 숫자)을 유지시킬 수 있다. 여기서, 네트워크 프루닝이란 인공 신경망에서 중요하지 않은 가중치를 제거하여 해당 부분에서의 신경망을 경량화하는 것을 의미한다. 즉, 총 컨벌루션 연산 양(또는 cost)를 유지하기 위하여 코어 레이어에 네트워크 프루닝 기법을 적용하여 영향력이 상대적으로 적은(예를 들어, 영향력이 가장 적은) 컨벌루션 레이어의 가중치를 감소시키고 이를 헤드 레이어 또는 테일 레이어 중 적어도 하나에 할당할 수 있다.
상술한 다양한 실시 예에 따르면, 하나의 화질 처리 네트워크를 입력 영상의 해상도 및 특성 등에 따라 실시간으로 최적의 도메인 위치에서 동작시켜 구조적 성능 제약 및 효율 감소를 해소할 수 있게 된다. 또한, 네트워크를 구성하는 레이어를 core 레이어 및 wrapper 레이어로 구분하여 wrapper 레이어 만 학습하는 방법을 통해 학습에 소요되는 시간을 최소화할 수 있게 된다.
한편, 상술한 본 개시의 다양한 실시 예들에 따른 방법들은, 기존 전자 장치에 설치 가능한 어플리케이션 형태로 구현될 수 있다.
또한, 상술한 본 개시의 다양한 실시 예들에 따른 방법들은, 기존 전자 장치에 대한 소프트웨어 업그레이드, 또는 하드웨어 업그레이드 만으로도 구현될 수 있다.
또한, 상술한 본 개시의 다양한 실시 예들은 전자 장치에 구비된 임베디드 서버, 또는 전자 장치의 외부 서버를 통해 수행되는 것도 가능하다.
한편, 본 개시의 일시 예에 따르면, 이상에서 설명된 다양한 실시 예들은 기기(machine)(예: 컴퓨터)로 읽을 수 있는 저장 매체(machine-readable storage media)에 저장된 명령어를 포함하는 소프트웨어로 구현될 수 있다. 기기는, 저장 매체로부터 저장된 명령어를 호출하고, 호출된 명령어에 따라 동작이 가능한 장치로서, 개시된 실시 예들에 따른 전자 장치(예: 전자 장치(A))를 포함할 수 있다. 명령이 프로세서에 의해 실행될 경우, 프로세서가 직접, 또는 프로세서의 제어 하에 다른 구성요소들을 이용하여 명령에 해당하는 기능을 수행할 수 있다. 명령은 컴파일러 또는 인터프리터에 의해 생성 또는 실행되는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장 매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, '비일시적'은 저장매체가 신호(signal)를 포함하지 않으며 실재(tangible)한다는 것을 의미할 뿐 데이터가 저장매체에 반영구적 또는 임시적으로 저장됨을 구분하지 않는다.
또한, 본 개시의 일 실시 예에 따르면, 이상에서 설명된 다양한 실시 예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 온라인으로 배포될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
또한, 상술한 다양한 실시 예들에 따른 구성 요소(예: 모듈 또는 프로그램) 각각은 단수 또는 복수의 개체로 구성될 수 있으며, 전술한 해당 서브 구성 요소들 중 일부 서브 구성 요소가 생략되거나, 또는 다른 서브 구성 요소가 다양한 실시 예에 더 포함될 수 있다. 대체적으로 또는 추가적으로, 일부 구성 요소들(예: 모듈 또는 프로그램)은 하나의 개체로 통합되어, 통합되기 이전의 각각의 해당 구성 요소에 의해 수행되는 기능을 동일 또는 유사하게 수행할 수 있다. 다양한 실시 예들에 따른, 모듈, 프로그램 또는 다른 구성 요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱하게 실행되거나, 적어도 일부 동작이 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.
이상에서는 본 개시의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 개시는 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 개시의 요지를 벗어남이 없이 당해 개시에 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 개시의 기술적 사상이나 전망으로부터 개별적으로 이해되어서는 안될 것이다.
100: 전자 장치 110: 통신 모듈
120: 메모리 130: 하나 이상의 프로세서

Claims (20)

  1. 전자 장치에 있어서,
    적어도 하나의 명령어를 저장하는 메모리; 및
    상기 메모리와 연결되어 상기 전자 장치를 제어하는 하나 이상의 프로세서;를 포함하며,
    상기 하나 이상의 프로세서는,
    입력 영상이 수신되면, 복수의 영상 처리 도메인 중 상기 입력 영상의 화질 처리에 요구되는 화질 처리 네트워크에 대응되는 영상 처리 도메인을 식별하고,
    상기 식별된 영상 처리 도메인에 기초하여 복수의 단위 연산 모듈 중 상기 화질 처리 네트워크에 포함된 복수의 레이어 각각에서 이용되는 적어도 하나의 단위 연산 모듈을 식별하고,
    상기 복수의 레이어 중 제1 레이어에 대응되는 적어도 하나의 단위 연산 모듈로 상기 제1 레이어의 정보가 입력되고 상기 제1 레이어의 출력이 상기 복수의 레이어 중 제2 레이어에 대응되는 적어도 하나의 단위 연산 모듈로 입력되도록 제어하여 상기 화질 처리 네트워크를 부유형(floating)으로 구현하고,
    상기 구현된 화질 처리 네트워크를 이용하여 상기 입력 영상을 처리하며,
    상기 복수의 영상 처리 도메인은,
    상이한 해상도의 영상을 처리하는 영상 처리 도메인인, 전자 장치.
  2. 제1항에 있어서,
    상기 복수의 단위 연산 모듈은,
    컨벌루션(convolution) 연산을 위한 상이한 타입의 연산자들로 구성된 연산 모듈이며,
    상기 전자 장치는,
    적어도 하나의 화질 처리 네트워크의 도메인 위치에 따라 각 레이어에서 이용되는 복수의 단위 연산 모듈이 집합된 컨벌루션 뱅크(convoultion bank)를 포함하며,
    상기 하나 이상의 프로세서는,
    상기 컨벌루션 뱅크에 포함된 상기 복수의 단위 연산 모듈 중 상기 화질 처리 네트워크에 포함된 복수의 레이어 각각에서 이용되는 적어도 하나의 단위 연산 모듈을 식별하여 상기 화질 처리 네트워크를 부유형(floating)으로 구현하는, 전자 장치.
  3. 제2항에 있어서,
    상기 하나 이상의 프로세서는,
    상기 입력 영상에 기초하여 상기 화질 처리 네트워크가 제1 해상도에 대응되는 제1 도메인에 위치하는 것으로 식별되면, 상기 스케쥴링 정보에 기초하여 상기 컨벌루션 뱅크에 포함된 상기 복수의 단위 연산 모듈 중 상기 제1 해상도의 화질 처리 네트워크에 대응되는 복수의 레이어 각각에서 이용되는 적어도 하나의 제1 단위 연산 모듈을 식별하고,
    상기 입력 영상에 기초하여 상기 화질 처리 네트워크가 제2 해상도에 대응되는 제2 도메인에 위치하는 것으로 되면, 상기 스케쥴링 정보에 기초하여 상기 컨벌루션 뱅크에 포함된 상기 복수의 단위 연산 모듈 중 상기 제2 해상도의 화질 처리 네트워크에 대응되는 복수의 레이어 각각에서 이용되는 적어도 하나의 제2 단위 연산 모듈을 식별하는, 전자 장치.
  4. 제1항 또는 제2항에 있어서,
    상기 메모리는,
    영상 처리 도메인 별로 각 레이어에서 이용되는 복수의 단위 연산 모듈이 스케쥴링된 스케쥴링 정보를 저장하며,
    상기 하나 이상의 프로세서는,
    상기 화질 처리 네트워크에 대응되는 영상 처리 도메인이 식별되면, 상기 메모리에 저장된 상기 스케쥴링 정보에 기초하여 상기 화질 처리 네트워크에 포함된 복수의 레이어 각각에서 이용되는 적어도 하나의 단위 연산 모듈을 식별하여 상기 화질 처리 네트워크를 부유형(floating)으로 구현하는, 전자 장치.
  5. 제1항 또는 제2항에 있어서,
    상기 하나 이상의 프로세서는,
    상기 입력 영상의 해상도 정보 및 특성 정보 중 적어도 하나에 기초하여 상기 복수의 영상 처리 도메인 중 상기 화질 처리 네트워크에 대응되는 영상 처리 도메인을 식별하는, 전자 장치.
  6. 제1항 또는 제2항에 있어서,
    상기 화질 처리 네트워크에 포함된 상기 복수의 레이어는,
    헤드(head) 레이어, 코어(core) 레이어 및 테일(tail) 레이어를 포함하며,
    상기 화질 처리 네트워크가 제1 도메인에 위치하는 경우 상기 화질 처리 네트워크는 제1 헤드 레이어, 제1 코어 레이어 및 제1 테일 레이어를 포함하고,
    상기 화질 처리 네트워크가 제2 도메인에 위치하는 경우 상기 화질 처리 네트워크는 제2 헤드 레이어, 제2 코어 레이어 및 제2 테일 레이어를 포함하고,
    상기 제1 헤드 레이어 및 상기 제1 테일 레이어는, 상기 제1 도메인에 대응되도록 학습된 레이어이고,
    상기 제2 헤드 레이어 및 상기 제2 테일 레이어는, 상기 제2 도메인에 대응되도록 학습된 레이어이고,
    상기 제1 코어 레이어 및 상기 제2 코어 레이어는,
    상기 제1 도메인 및 상기 제2 도메인에서 공통적으로 이용되도록 학습된 공통 레이어인, 전자 장치.
  7. 제6항에 있어서,
    상기 화질 처리 네트워크는,
    상기 헤드 레이어의 전단에 입력 셔플(input shuffle)을 수행하고 상기 테일 레이어 후단에서 출력 셔플(output shuffle)을 수행하도록 구성되며,
    상기 입력 셔플에 의해 영상의 해상도는 감소되고 채널 수는 증가되며,
    상기 출력 셔플에 의해 영상의 해상도는 증가되고 상기 채널 수는 감소되는, 전자 장치.
  8. 제7항에 있어서,
    상기 화질 네트워크는,
    상기 코어 레이어로 입력되는 영상 데이터가 상기 코어 레이어에서 기 학습된 기 설정된 제1 해상도를 가지도록 상기 입력 셔플을 적어도 한 번 이상 수행하고,
    상기 화질 처리 네트워크로부터 출력되는 영상 데이터가 기 설정된 제2 해상도를 가지도록 상기 출력 셔플을 적어도 한 번 이상 수행하며,
    상기 기 설정된 제1 해상도 및 상기 기 설정된 제2 해상도는,
    상기 화질 처리 네트워크의 타입에 따라 동일하거나 상이한, 전자 장치.
  9. 제8항에 있어서,
    상기 하나 이상의 프로세서는,
    상기 화질 네트워크에 포함된 복수의 코어 레이어 중 적어도 일부 코어 레이어에 네트워크 프루닝(network pruning)을 적용하고,
    상기 네트워크 프루닝에 의해 제거된 연산을 상기 헤드 레이어 및 상기 테일 레이어 중 적어도 하나에 할당하여 상기 화질 네트워크의 도메인 위치에 따른 컨벌루션 연산 양을 유지시키는, 전자 장치.
  10. 제1항 또는 제2항에 있어서,
    상기 화질 처리 네트워크는,
    초해상도(super resolution) 처리 네트워크, 선명도 처리 네트워크, 텍스처(texture) 처리 네트워크 및 에지(edge) 처리 네트워크 중 적어도 하나를 포함하는, 전자 장치.
  11. 전자 장치의 영상 처리 방법에 있어서,
    입력 영상이 수신되면, 복수의 영상 처리 도메인 중 상기 입력 영상의 화질 처리에 요구되는 화질 처리 네트워크에 대응되는 영상 처리 도메인을 식별하는 단계;
    상기 식별된 영상 처리 도메인에 기초하여 복수의 단위 연산 모듈 중 상기 화질 처리 네트워크에 포함된 복수의 레이어 각각에서 이용되는 적어도 하나의 단위 연산 모듈을 식별하는 단계;
    상기 복수의 레이어 중 제1 레이어에 대응되는 적어도 하나의 단위 연산 모듈로 상기 제1 레이어의 정보가 입력되고 상기 제1 레이어의 출력이 상기 복수의 레이어 중 제2 레이어에 대응되는 적어도 하나의 단위 연산 모듈로 입력되도록 제어하여 상기 화질 처리 네트워크를 부유형(floating)으로 구현하는 단계; 및
    상기 구현된 화질 처리 네트워크를 이용하여 상기 입력 영상을 처리하는 단계;를 포함하며,
    상기 복수의 영상 처리 도메인은, 상이한 해상도의 영상을 처리하는 영상 처리 도메인인, 영상 처리 방법.
  12. 제11항에 있어서,
    상기 복수의 단위 연산 모듈은,
    컨벌루션(convolution) 연산을 위한 상이한 타입의 연산자들로 구성된 연산 모듈이며,
    상기 전자 장치는,
    적어도 하나의 화질 처리 네트워크의 도메인 위치에 따라 각 레이어에서 이용되는 복수의 단위 연산 모듈이 집합된 컨벌루션 뱅크(convoultion bank)를 포함하며,
    상기 상기 화질 처리 네트워크를 부유형으로 구현하는 단계는,
    상기 컨벌루션 뱅크에 포함된 상기 복수의 단위 연산 모듈 중 상기 화질 처리 네트워크에 포함된 복수의 레이어 각각에서 이용되는 적어도 하나의 단위 연산 모듈을 식별하여 상기 화질 처리 네트워크를 부유형(floating)으로 구현하는 단계;를 포함하는, 영상 처리 방법.
  13. 제12항에 있어서,
    상기 적어도 하나의 단위 연산 모듈을 식별하는 단계는,
    상기 입력 영상에 기초하여 상기 화질 처리 네트워크가 제1 해상도에 대응되는 제1 도메인에 위치하는 것으로 식별되면, 상기 스케쥴링 정보에 기초하여 상기 컨벌루션 뱅크에 포함된 상기 복수의 단위 연산 모듈 중 상기 제1 해상도의 화질 처리 네트워크에 대응되는 복수의 레이어 각각에서 이용되는 적어도 하나의 제1 단위 연산 모듈을 식별하는 단계; 및
    상기 입력 영상에 기초하여 상기 화질 처리 네트워크가 제2 해상도에 대응되는 제2 도메인에 위치하는 것으로 되면, 상기 스케쥴링 정보에 기초하여 상기 컨벌루션 뱅크에 포함된 상기 복수의 단위 연산 모듈 중 상기 제2 해상도의 화질 처리 네트워크에 대응되는 복수의 레이어 각각에서 이용되는 적어도 하나의 제2 단위 연산 모듈을 식별하는 단계;를 포함하는, 영상 처리 방법.
  14. 제11항 또는 제12항에 있어서,
    상기 적어도 하나의 단위 연산 모듈을 식별하는 단계는,
    상기 화질 처리 네트워크에 대응되는 영상 처리 도메인이 식별되면, 영상 처리 도메인 별로 각 레이어에서 이용되는 복수의 단위 연산 모듈이 스케쥴링된 스케쥴링 정보에 기초하여 상기 화질 처리 네트워크에 포함된 복수의 레이어 각각에서 이용되는 적어도 하나의 단위 연산 모듈을 식별하는 단계;를 포함하는, 영상 처리 방법.
  15. 제11항 또는 제12항에 있어서,
    상기 영상 처리 도메인을 식별하는 단계는,
    상기 입력 영상의 해상도 정보 및 특성 정보 중 적어도 하나에 기초하여 상기 복수의 영상 처리 도메인 중 상기 화질 처리 네트워크에 대응되는 영상 처리 도메인을 식별하는 단계;를 포함하는, 영상 처리 방법.
  16. 제11항 또는 제12항에 있어서,
    상기 화질 처리 네트워크에 포함된 상기 복수의 레이어는,
    헤드(head) 레이어, 코어(core) 레이어 및 테일(tail) 레이어를 포함하며,
    상기 화질 처리 네트워크가 제1 도메인에 위치하는 경우 상기 화질 처리 네트워크는 제1 헤드 레이어, 제1 코어 레이어 및 제1 테일 레이어를 포함하고,
    상기 화질 처리 네트워크가 제2 도메인에 위치하는 경우 상기 화질 처리 네트워크는 제2 헤드 레이어, 제2 코어 레이어 및 제2 테일 레이어를 포함하고,
    상기 제1 헤드 레이어 및 상기 제1 테일 레이어는, 상기 제1 도메인에 대응되도록 학습된 레이어이고,
    상기 제2 헤드 레이어 및 상기 제2 테일 레이어는, 상기 제2 도메인에 대응되도록 학습된 레이어이고,
    상기 제1 코어 레이어 및 상기 제2 코어 레이어는,
    상기 제1 도메인 및 상기 제2 도메인에서 공통적으로 이용되도록 학습된 공통 레이어인, 영상 처리 방법.
  17. 제16항에 있어서,
    상기 화질 처리 네트워크는,
    상기 헤드 레이어의 전단에 입력 셔플(input shuffle)을 수행하고 상기 테일 레이어 후단에서 출력 셔플(output shuffle)을 수행하도록 구성되며,
    상기 입력 셔플에 의해 영상의 해상도는 감소되고 채널 수는 증가되며,
    상기 출력 셔플에 의해 영상의 해상도는 증가되고 상기 채널 수는 감소되는, 영상 처리 방법.
  18. 제17항에 있어서,
    상기 화질 네트워크는,
    상기 코어 레이어로 입력되는 영상 데이터가 상기 코어 레이어에서 기 학습된 기 설정된 제1 해상도를 가지도록 상기 입력 셔플을 적어도 한 번 이상 수행하고,
    상기 화질 처리 네트워크로부터 출력되는 영상 데이터가 기 설정된 제2 해상도를 가지도록 상기 출력 셔플을 적어도 한 번 이상 수행하며,
    상기 기 설정된 제1 해상도 및 상기 기 설정된 제2 해상도는,
    상기 화질 처리 네트워크의 타입에 따라 동일하거나 상이한, 영상 처리 방법.
  19. 제18항에 있어서,
    상기 화질 네트워크에 포함된 복수의 코어 레이어 중 적어도 일부 코어 레이어에 네트워크 프루닝(network pruning)을 적용하는 단계; 및
    상기 네트워크 프루닝에 의해 제거된 연산을 상기 헤드 레이어 및 상기 테일 레이어 중 적어도 하나에 할당하여 상기 화질 네트워크의 도메인 위치에 따른 컨벌루션 연산 양을 유지시키는 단계;를 더 포함하는, 영상 처리 방법.
  20. 전자 장치의 프로세서에 의해 실행되는 경우 상기 전자 장치가 동작을 수행하도록 하는 컴퓨터 명령을 저장하는 비일시적 컴퓨터 판독 가능 매체에 있어서,
    상기 동작은,
    입력 영상이 수신되면, 복수의 영상 처리 도메인 중 상기 입력 영상의 화질 처리에 요구되는 화질 처리 네트워크에 대응되는 영상 처리 도메인을 식별하는 단계;
    상기 식별된 영상 처리 도메인에 기초하여 복수의 단위 연산 모듈 중 상기 화질 처리 네트워크에 포함된 복수의 레이어 각각에서 이용되는 적어도 하나의 단위 연산 모듈을 식별하는 단계;
    상기 복수의 레이어 중 제1 레이어에 대응되는 적어도 하나의 단위 연산 모듈로 상기 제1 레이어의 정보가 입력되고 상기 제1 레이어의 출력이 상기 복수의 레이어 중 제2 레이어에 대응되는 적어도 하나의 단위 연산 모듈로 입력되도록 제어하여 상기 화질 처리 네트워크를 부유형(floating)으로 구현하는 단계; 및
    상기 구현된 화질 처리 네트워크를 이용하여 상기 입력 영상을 처리하는 단계;를 포함하며,
    상기 복수의 영상 처리 도메인은, 상이한 해상도의 영상을 처리하는 영상 처리 도메인인, 비일시적 컴퓨터 판독 가능 매체.
KR1020230013786A 2023-02-01 2023-02-01 전자 장치 및 그 영상 처리 방법 KR20240121036A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020230013786A KR20240121036A (ko) 2023-02-01 2023-02-01 전자 장치 및 그 영상 처리 방법
PCT/KR2023/019991 WO2024162589A1 (ko) 2023-02-01 2023-12-06 전자 장치 및 그 영상 처리 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020230013786A KR20240121036A (ko) 2023-02-01 2023-02-01 전자 장치 및 그 영상 처리 방법

Publications (1)

Publication Number Publication Date
KR20240121036A true KR20240121036A (ko) 2024-08-08

Family

ID=92147016

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020230013786A KR20240121036A (ko) 2023-02-01 2023-02-01 전자 장치 및 그 영상 처리 방법

Country Status (2)

Country Link
KR (1) KR20240121036A (ko)
WO (1) WO2024162589A1 (ko)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6818798B2 (ja) * 2018-04-10 2021-01-20 キヤノン株式会社 画像処理装置および画像処理方法、ならびに撮像装置
US20230215152A1 (en) * 2020-06-03 2023-07-06 Nec Corporation Learning device, trained model generation method, and recording medium
KR102471288B1 (ko) * 2020-08-27 2022-11-28 한국전자기술연구원 송신, 수신 장치 및 방법
KR102185909B1 (ko) * 2020-09-11 2020-12-02 엘아이지넥스원 주식회사 다중 파장 대역 시각적 관심 지도를 이용한 딥러닝 기반 적응적 초해상도 방법
KR102454335B1 (ko) * 2020-12-08 2022-10-14 한양대학교 산학협력단 자기지도학습 기반 저화질 영상 데이터의 고해상도 복원 방법

Also Published As

Publication number Publication date
WO2024162589A1 (ko) 2024-08-08

Similar Documents

Publication Publication Date Title
JP6978542B2 (ja) 電子装置及びその制御方法
KR102708715B1 (ko) 영상 처리 장치 및 그 동작방법
US11836890B2 (en) Image processing apparatus and image processing method thereof
KR102410907B1 (ko) 영상 처리 장치 및 그 영상 처리 방법
CN116823593A (zh) 风格化输入图像
CN112887728B (zh) 电子装置、电子装置的控制方法以及系统
JP2020184300A (ja) 電子装置及びその映像処理方法
EP3719741B1 (en) Image processing apparatus and image processing method thereof
DE102022112157A1 (de) Echtzeit-verbesserung für streaming-inhalt
US11451721B2 (en) Interactive augmented reality (AR) based video creation from existing video
US20230386057A1 (en) Electronic apparatus and image processing method thereof
CN116348905A (zh) 电子设备及其控制方法
KR20240121036A (ko) 전자 장치 및 그 영상 처리 방법
US11436442B2 (en) Electronic apparatus and control method thereof
KR20240009108A (ko) 화질 개선을 수행하는 신경망 모델을 학습시키는 전자 장치 및 그 제어 방법
WO2024110799A1 (ko) 전자 장치 및 그 제어 방법
KR20210108027A (ko) 전자 장치 및 그 제어 방법
KR20240077363A (ko) 전자 장치 및 그 제어 방법
KR20240114171A (ko) 전자 장치 및 그 영상 처리 방법
US20230114954A1 (en) Display device and operating method of the same