KR20210004702A - Ai 프로세서 및 이의 신경망 연산 수행 방법 - Google Patents

Ai 프로세서 및 이의 신경망 연산 수행 방법 Download PDF

Info

Publication number
KR20210004702A
KR20210004702A KR1020190081524A KR20190081524A KR20210004702A KR 20210004702 A KR20210004702 A KR 20210004702A KR 1020190081524 A KR1020190081524 A KR 1020190081524A KR 20190081524 A KR20190081524 A KR 20190081524A KR 20210004702 A KR20210004702 A KR 20210004702A
Authority
KR
South Korea
Prior art keywords
neural network
image
image data
processor
units
Prior art date
Application number
KR1020190081524A
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 KR1020190081524A priority Critical patent/KR20210004702A/ko
Priority to PCT/KR2020/007185 priority patent/WO2021006484A1/en
Priority to US16/892,357 priority patent/US11495037B2/en
Priority to EP20182359.8A priority patent/EP3767477B1/en
Priority to CN202010600420.9A priority patent/CN112183736B/zh
Publication of KR20210004702A publication Critical patent/KR20210004702A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0284Multiple user address space allocation, e.g. using different base addresses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0207Addressing or allocation; Relocation with multidimensional access, e.g. row/column, matrix
    • 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
    • G06N3/0454
    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1028Power efficiency
    • 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/048Activation functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/59Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

본 개시에 따른 AI 프로세서는, 적어도 하나의 메모리, 영상을 처리하는 복수 개의 신경망 연산부들, 및 상기 적어도 하나의 메모리 및 상기 복수 개의 신경망 연산부들을 제어하는 제어부를 포함한다. 상기 제어부는, 입력된 영상 데이터가 상기 적어도 하나의 메모리에 저장되도록 제어하고, 상기 영상의 크기 및 상기 복수 개의 신경망 연산부들의 데이터 처리 능력에 기반하여 분할된 영상 데이터를 대상으로 상기 복수 개의 신경망 연산부들 중 일부 신경망 연산부들을 통해 신경망 연산을 수행하여 업스케일링된 영상 데이터를 출력하도록 제어한다.

Description

AI 프로세서 및 이의 신경망 연산 수행 방법{ARTIFICIAL INTELLIGENCE PROCESSOR AND PERFORMING NEURAL NETWORK OPERATION THEREOF}
본 개시는 영상 처리 분야에 관한 것이다. 보다 구체적으로, 영상 처리를 수행하는 AI 프로세서 분야, 및 AI 프로세서를 이용한 영상 처리 분야에 관한 것이다.
인공 지능(artificial intelligence, AI) 기술에 대한 관심이 높아지면서, 이 기술을 텔레비전(TV)이나 스마트폰과 같은 단말 장치 등의 제품에 임베디드 방식으로 적용하여, 온디바이스 환경에서 동작하도록 하는 시도가 이루어지고 있다.
특히, 인공 지능 기술은 영상 처리 분야에서도 다양하게 응용되고 있으며, 다층 구조의 인공 신경망(artificial neural network)을 이용하여 영상 처리를 수행하는 기술이 지속 개발되고 있다. 예로, 인공 신경망을 이용하여 영상을 품질을 향상시키거나, 영상의 크기를 확대시키거나, 영상에서 누락된 영역을 예측하여 복원하는 등과 같은 다양한 영상 처리를 수행하기 위한 기술들이 개발되고 있다.
영상 처리 분야에서 인공 신경망을 이용하는 경우, 인공 신경망을 이용한 영상 처리를 위하여 많은 연산량이 요구된다. 특히, 영상의 크기가 점점 대형화되거나 영상을 실시간으로 처리할 필요가 있는 경우, 이러한 영상을 처리하기 위한 하드웨어의 리소스와 전력 소모도 더욱 증가할 수 있다. 게다가, 영상 처리가 서버가 아닌 단말 장치의 온디바이스 환경에서 동작하는 경우, 단말 장치의 하드웨어의 리소스 및 전력 소모를 줄이는 기술은 더욱 중요해진다.
이에, 본 개시의 실시예들에 따른 AI 프로세서 및 이의 신경망 연산 수행 방법은 영상 처리에 필요한 단말 장치의 하드웨어의 리소스 또는 전력 소모를 줄이기 위한 것을 기술적 과제로 한다.
또한, 본 개시의 실시예들은, 다양한 영상 크기에 대해 적응적으로 동작할 수 있는 AI 프로세서, 신경망 연산 수행 방법, 및 신경망 연산 플랫폼을 제공하는 것을 기술적 과제로 한다.
본 개시의 실시예들에 따른 AI 프로세서는, 적어도 하나의 메모리, 영상을 처리하는 복수 개의 신경망 연산부들 및 상기 적어도 하나의 메모리 및 상기 복수 개의 신경망 연산부들을 제어하는 제어부를 포함한다. 상기 제어부는 입력된 영상 데이터가 상기 적어도 하나의 메모리에 저장되도록 제어하고, 상기 영상의 크기 및 상기 복수 개의 신경망 연산부들의 데이터 처리 능력에 기반하여 분할된 영상 데이터를 대상으로 상기 복수 개의 신경망 연산부들 중 일부 신경망 연산부들을 통해 신경망 연산을 수행하여 업스케일링된 영상 데이터를 출력하도록 제어하는 것을 특징으로 한다.
본 개시의 실시예들에 따른 AI 프로세서가 신경망 연산을 수행하는 방법은, 영상에 대한 영상 데이터를 입력 받아 적어도 하나의 메모리에 저장하는 동작, 상기 영상의 크기 및 상기 복수 개의 신경망 연산부들의 데이터 처리 능력에 기반하여 상기 메모리에 저장된 영상 데이터를 분할하는 동작, 상기 분할된 영상 데이터를 대상으로 상기 복수 개의 신경망 연산부들 중 일부 신경망 연산부들을 통해 신경망 연산을 수행하는 동작, 및 상기 일부 신경망 연산들을 통한 신경망 연산의 수행 결과로서 업스케일링된 영상 데이터를 출력하는 동작을 포함한다.
본 개시의 실시예들에 따른 AI 프로세서는 영상의 크기에 따라 복수 개의 신경망 연산부들 중 일부를 이용하여 영상 데이터에 대한 신경망 연산을 수행하여, AI 프로세서의 신경망 연산에 필요한 전력 소모를 절감할 수 있다.
또한, 본 개시의 실시예들에 따른 AI 프로세서는 영상의 크기에 따라 복수 개의 신경망 연산부들의 클럭 주파수를 변환하여, AI 프로세서의 신경망 연산에 필요한 전력 소모를 절감할 수 있다.
또한, 본 개시의 실시예들에 따른 AI 프로세서는 일정 크기의 영상이 아닌 8K, 4K, 2K 등을 대상으로 적응적으로 복수 개의 신경망 연산부들을 운용함에 따라, 신경망 연산 플랫폼이 다양한 영상 크기를 대상으로 재활용될 수 있다.
일 실시예에 따른 AI 프로세서가 달성할 수 있는 효과는 이상에서 언급한 것들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있다.
본 명세서에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1은 본 개시의 일 실시예에 따른 AI 부호화 과정 및 AI 복호화 과정을 설명하기 위한 도면이다.
도 2는 본 개시의 일 실시예에 따른 AI 복호화 장치의 구성을 도시하는 블록도이다.
도 3은 본 개시의 일 실시예에 따른 디스플레이 장치의 구성을 도시하는 블록도이다.
도 4는 본 개시의 일 실시예에 따른 AI 프로세서의 구성을 도시하는 블록도이다.
도 5는 본 개시의 일 실시예에 따른 복수 개의 신경망 연산부들을 포함하는 AI 프로세서의 구성을 도시하는 블록도이다.
도 6은 본 개시의 일 실시예에 따른 신경망 연산을 설명하는 도면이다.
도 7은 본 개시의 일 실시예에 따른 영상의 크기에 기반하여 신경망 연산을 수행하는 과정을 나타내는 도면이다.
도 8은 본 개시의 일 실시예에 따른 영상의 크기에 기반하여 신경망 연산을 수행하는 AI 프로세서의 블록도이다.
도 9는 본 개시의 일 실시예에 따른 복수 개의 신경망 연산부들에서 영상 데이터를 처리하는 과정을 나타내는 도면이다.
도 10는 본 개시의 다른 일 실시예에 따른 복수 개의 신경망 연산부들에서 영상 데이터를 처리하는 과정을 나타내는 도면이다.
도 11은 본 개시의 또 다른 일 실시예에 따른 복수 개의 신경망 연산부들에서 영상 데이터를 처리하는 과정을 나타내는 도면이다.
도 12는 본 개시의 일 실시예에 따른 AI 프로세서의 신경망 연산 수행 방법을 설명하는 흐름도이다.
본 개시는 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고, 이를 상세한 설명을 통해 상세히 설명하고자 한다. 그러나, 이는 본 개시의 실시 형태에 대해 한정하려는 것이 아니며, 본 개시는 여러 실시예들의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
실시예를 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 개시의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 명세서의 설명 과정에서 이용되는 숫자(예를 들어, 제1, 제2 등)는 하나의 구성요소를 다른 구성요소와 구분하기 위한 식별기호에 불과하다.
또한, 본 명세서에서, 일 구성요소가 다른 구성요소와 "연결된다" 거나 "접속된다" 등으로 언급된 때에는, 상기 일 구성요소가 상기 다른 구성요소와 직접 연결되거나 또는 직접 접속될 수도 있지만, 특별히 반대되는 기재가 존재하지 않는 이상, 중간에 또 다른 구성요소를 매개하여 연결되거나 또는 접속될 수도 있다고 이해되어야 할 것이다.
또한, 본 명세서에서 '~부(유닛)', '모듈' 등으로 표현되는 구성요소는 2개 이상의 구성요소가 하나의 구성요소로 합쳐지거나 또는 하나의 구성요소가 보다 세분화된 기능별로 2개 이상으로 분화될 수도 있다. 또한, 이하에서 설명할 구성요소 각각은 자신이 담당하는 주기능 이외에도 다른 구성요소가 담당하는 기능 중 일부 또는 전부의 기능을 추가적으로 수행할 수도 있으며, 구성요소 각각이 담당하는 주기능 중 일부 기능이 다른 구성요소에 의해 전담되어 수행될 수도 있음은 물론이다.
또한, 본 명세서에서, '영상(image)'은 비디오의 정지영상(또는, 영상 프레임), 복수의 연속된 정지영상으로 구성된 동영상, 또는 비디오를 나타낼 수 있다.
도 1은 본 개시의 일 실시예에 따른 AI(artificial intelligence) 부호화 과정 및 AI 복호화 과정을 설명하기 위한 도면이다.
도 1에 도시된 바와 같이, 본 개시의 일 실시예에 따르면 해상도가 큰 원본 영상(예로, 8K 영상)(105)을 AI 다운스케일(110)하여 제1 영상(예: 4K 영상)(115)을 생성할 수 있다. 이 경우, 상대적으로 작은 해상도의 제1 영상(115)을 대상으로 하여 제1 부호화(120) 및 제1 복호화(130)가 수행됨으로, 원본 영상(105)을 대상으로 하여 제1 부호화(120) 및 제1 복호화(130)를 수행하는 경우에 비하여 처리되는 비트레이트가 크게 감소될 수 있다.
도 1의 AI 부호화 과정에서는 원본 영상(105)을 AI 다운스케일(110)하여 제1 영상(115)을 생성하고, 생성된 제1 영상(115)을 제1 부호화(220)한다. AI 복호화 과정에서는 AI 부호화 결과 생성된 AI 데이터와 영상 데이터를 포함하는 AI 부호화 데이터를 수신하고, 제1 복호화(130)를 통해 제2 영상(예: 4K 영상)(135)을 생성하고, 제2 영상(135)을 AI 업스케일(140)하여 제3 영상(예: 8K 영상)(145)을 생성한다.
AI 부호화 과정을 좀 더 상세히 살펴보면, 원본 영상(105)을 입력 받으면, 소정 해상도 또는 소정 화질의 제1 영상(115)을 생성하기 위해 원본 영상(105)을 AI 다운스케일(110)한다. 이때, AI 다운스케일(110)은 AI 기반으로 수행되는데, AI 다운스케일(110)을 위한 AI는 제2 영상(135)의 AI 업스케일(140)을 위한 AI와 연계되어 훈련되어야(trained connectively) 한다. 왜냐하면, AI 다운스케일(110)을 위한 AI와 AI 업스케일(140)을 위한 AI가 분리되어 훈련되는 경우, AI 부호화 대상인 원본 영상(105)과 AI 복호화를 통해 복원된 제3 영상(145) 사이의 차이가 커지게 되기 때문이다.
AI 부호화 과정과 AI 복호화 과정에서 이러한 연계 관계를 유지하기 위해서는, AI 데이터를 이용할 수 있다. AI 부호화 과정을 통해 생성된 AI 데이터는 업스케일 타겟을 나타내는 정보를 포함한다. 이 경우, AI 복호화 과정에서는 AI 데이터에 기초하여 확인되는 업스케일 타겟에 따라 제2 영상(135)을 AI 업스케일(140)할 수 있다.
AI 다운스케일(110)을 위한 AI 및 AI 업스케일(140)을 위한 AI는, 신경망 모델(예: DNN(deep neural network))로 구현될 수 있다. AI 다운스케일(110)에 이용되는 신경망 모델 및 AI 업스케일(140)에 이용되는 신경망 모델은 소정 타겟 하에 손실 정보의 공유를 통해 연계 훈련되므로, AI 부호화 장치는 연계 훈련할 때 이용된 타겟 정보를 AI 복호화 장치로 제공하고, AI 복호화 장치는 제공받은 타겟 정보에 기초하여 제2 영상(135)을 타겟하는 해상도로 AI 업스케일(140)할 수 있다.
도 1의 제1 부호화(120) 및 제1 복호화(130)에 대해 좀더 상세히 설명하면, 원본 영상(105)으로부터 AI 다운스케일(110)된 제1 영상(115)은 제1 부호화(120)를 통해 정보량이 감축될 수 있다. 제1 부호화(120)는, 제1 영상(115)을 예측하여 예측 데이터를 생성하는 과정, 제1 영상(115)과 예측 데이터 사이의 차이에 해당하는 잔차 데이터를 생성하는 과정, 공간 영역 성분인 잔차 데이터를 주파수 영역 성분으로 변환(transformation)하는 과정, 주파수 영역 성분으로 변환된 잔차 데이터를 양자화(quantization)하는 과정 및 양자화된 잔차 데이터를 엔트로피 부호화하는 과정 등을 포함할 수 있다. 이와 같은 제1 부호화 과정(120)은 MPEG-2, H.264 AVC(Advanced Video Coding), MPEG-4, HEVC(High Efficiency Video Coding), VC-1, VP8, VP9 및 AV1(AOMedia Video 1) 등 주파수 변환을 이용한 영상 압축 방법 중의 하나를 통해 구현될 수 있다.
제1 영상(115)에 대응하는 제2 영상(135)은 영상 데이터의 제1 복호화(130)를 통해 복원될 수 있다. 제1 복호화(130)는, 영상 데이터를 엔트로피 복호화하여 양자화된 잔차 데이터를 생성하는 과정, 양자화된 잔차 데이터를 역양자화하는 과정, 주파수 영역 성분의 잔차 데이터를 공간 영역 성분으로 변환하는 과정, 예측 데이터를 생성하는 과정 및 예측 데이터와 잔차 데이터를 이용하여 제1 영상(135)을 복원하는 과정 등을 포함할 수 있다. 이와 같은 제1 복호화(130) 과정은 제1 부호화(120) 과정에서 사용된 MPEG-2, H.264, MPEG-4, HEVC, VC-1, VP8, VP9 및 AV1 등 주파수 변환을 이용한 영상 압축 방법 중의 하나에 대응되는 영상 복원 방법을 통해 구현될 수 있다.
AI 부호화 과정을 통해 생성된 AI 부호화 데이터는, 제1 영상(115)의 제1 부호화(120) 결과 생성된 부호화 데이터 및 원본 영상(105)의 AI 다운스케일(110)과 관련된 AI 데이터를 포함할 수 있다. 부호화 데이터는 제1 복호화(130) 과정에서 이용될 수 있으며, AI 데이터는 AI 업스케일(140) 과정에서 이용될 수 있다.
부호화 데이터는 비트스트림 형태로 전송될 수 있다. 부호화 데이터는 제1 영상(115) 내 픽셀 값들에 기초하여 생성되는 데이터, 예를 들어, 제1 영상(115)과 제1 영상(115)의 예측 데이터 사이의 차이인 잔차 데이터를 포함할 수 있다. 또한, 부호화 데이터는 제1 영상(115)의 제1 부호화(120) 과정에서 이용된 정보들을 포함할 수 있다. 예를 들어, 부호화 데이터는 제1 영상(115)을 제1 부호화(120)하는데 이용된 모드(mode) 정보(예를 들어, 예측 모드 정보, 움직임 정보 등) 및 제1 부호화(120)에서 이용된 양자화 파라미터 관련 정보 등을 포함할 수 있다. 부호화 데이터는 MPEG-2, H.264 AVC, MPEG-4, HEVC, VC-1, VP8, VP9 및 AV1 등 주파수 변환을 이용하는 영상 압축 방법 중 제1 부호화(120) 과정에서 이용된 영상 압축 방법의 규칙, 예를 들어, 신택스(syntax)에 따라 생성될 수 있다.
AI 데이터는 신경망 연산에 기반한 AI 업스케일(140)에 이용된다. 전술한 바와 같이, AI 다운스케일(110)에 이용되는 신경망 모델 및 AI 업스케일에 이용되는 신경망 모델은 연계 훈련되기 때문에, AI 데이터는 제2 영상(135)의 정확한 AI 업스케일(140)이 수행될 수 있게 하는 정보를 포함한다. AI 복호화 과정에서는 AI 데이터에 기반하여 제2 영상(135)을 타겟하는 해상도 또는 화질로 AI 업스케일(140)할 수 있다. AI 데이터는 비트스트림의 형태로 부호화 데이터와 함께 전송될 수 있다. 구현 예에 따라, AI 데이터는 프레임이나 패킷 형태로 부호화 데이터와 구분되어 전송될 수도 있다. AI 부호화 결과 생성된 부호화 데이터와 AI 데이터는 동종 네트워크 또는 이종 네트워크를 통해 전송될 수 있다.
도 2는 본 개시의 일 실시예에 따른 AI 복호화 장치(200)의 구성을 도시하는 블록도이다.
도 2를 참조하면, 일 실시예에 따른 AI 복호화 장치(200)는 통신부(212), 파싱부(214) 및 AI 복호화부(220)를 포함할 수 있다. AI 복호화부(220)는 제1 복호화부(222) 및 AI 업스케일부(224)를 포함할 수 있다.
통신부(212)는 네트워크를 통해 AI 부호화 결과 생성된 AI 부호화 데이터를 수신한다. AI 부호화 결과 생성된 AI 부호화 데이터는 전술한 부호화 데이터와 AI 데이터를 포함한다. 부호화 데이터와 AI 데이터는 동종 네트워크 또는 이종 네트워크를 통해 수신될 수 있다.
파싱부(214)는 통신부(212)를 통해 수신된 AI 부호화 데이터를 전달받아 파싱(parsing)하여 부호화 데이터와 AI 데이터로 구분한다. 예를 들어, 통신부(212)로부터 획득된 데이터의 헤더를 읽어, 해당 데이터가 부호화 데이터인지 또는 AI 데이터인지를 구분할 수 있다. 일 예로, 파싱부(214)는 통신부(212)를 통해 수신된 데이터의 헤더를 통해 부호화 데이터와 AI 데이터를 구분하여 제1 복호화부(222) 및 AI 업스케일부(224)로 각각 전달한다..
일 실시예로, 파싱부(214)가 파싱하는 AI 부호화 데이터는, 저장 매체로부터 획득될 수 있으며, 통신부(212)를 통해 수신되는 것으로 한정되지 않는다. 예를 들면, AI 부호화 데이터는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium) 등을 포함하는 데이터 저장 매체로부터 획득된 것일 수도 있다.
제1 복호화부(222)는 부호화 데이터에 기초하여 제1 영상(115)에 대응하는 제2 영상(135)을 복원한다. 제1 복호화부(222)에 의해 생성된 제2 영상(135)은 AI 업스케일부(224)로 제공된다. 구현 예에 따라서는, 부호화 데이터에 포함된 모드 정보(예를 들어, 예측 모드 정보, 움직임 정보 등), 양자화 파라미터 정보 등의 제1 복호화 관련 정보가 AI 업스케일부(224)로 더 제공될 수 있다.
AI 데이터를 수신한 AI 업스케일부(224)는 AI 데이터에 기초하여 제2 영상(135)을 AI 업스케일한다. 구현 예에 따라서, AI 업스케일부(224)는 부호화 데이터에 포함된 모드 정보, 양자화 파라미터 정보 등의 제1 복호화 관련 정보를 더 이용하여 제2 영상(135)을 AI 업스케일 할 수 있다.
AI 업스케일부(224)로 제공되는 AI 데이터는, 제2 영상(135)을 AI 업스케일할 수 있게 하는 정보들을 포함한다.
AI 데이터에 포함된 정보를 구체적으로 예시하면, 원본 영상(105)의 해상도와 제1 영상(115)의 해상도의 차이 정보 또는 제1 영상(115) 관련 정보 중 적어도 하나를 포함할 수 있다.
차이 정보는, 원본 영상(105) 대비 제1 영상(115)의 해상도 변환 정도에 대한 정보(예를 들어, 해상도 변환률 정보)로 표현될 수 있다. 또한, 복원된 제2 영상(135)의 해상도를 통해 제1 영상(115)의 해상도를 알게 되고 이를 통해 해상도 변환 정도를 확인할 수 있기 때문에, 차이 정보는 원본 영상(105)의 해상도 정보만으로 표현될 수도 있다. 여기서 해상도 정보는 영상의 가로/세로 크기로 표현될 수도 있고, 비율(16:9, 4:3 등)과 한 축의 크기로 표현될 수도 있다. 또한, 기 설정된 해상도 정보가 있는 경우는 인덱스 또는 플래그의 형태로 표현될 수도 있다.
제1 영상(115) 관련 정보는, 제1 영상(115)의 제1 부호화 결과 생성된 부호화 데이터의 비트레이트, 제1 영상(115)의 제1 부호화시 이용된 코덱 타입 또는 AI 업스케일부(224)의 온/오프 플래그 정보 중 적어도 하나에 대한 정보를 포함할 수 있다.
차이 정보와 제1 영상(115) 관련 정보는 하나의 AI 데이터로 전달될 수도 있고, 필요에 따라 각각 전달되어 처리될 수도 있다.
AI 업스케일부(224)는 AI 데이터에 포함된 차이 정보 또는 제1 영상(115) 관련 정보 중 적어도 하나에 기초하여 제2 영상(135)의 업스케일 타겟을 결정할 수 있다. 업스케일 타겟은 예를 들어, 제2 영상(135)을 어느 정도의 해상도로 업스케일하여야 하는지를 나타낼 수 있다. AI 업스케일부(224)는 업스케일 타겟이 결정되면, 업스케일 타겟에 대응하는 제3 영상(145)을 생성하기 위해 신경망 연산에 의하여 제2 영상(135)을 AI 업스케일한다.
일 실시예에서, 통신부(212), 파싱부(214) 및 AI 복호화부(220)는 개별적인 장치로 설명되었으나, 하나의 프로세서를 통해 구현될 수 있다. 이 경우, 전용 프로세서로 구현될 수도 있고, AP(Application processor) 또는 CPU(Central processing unit), GPU(Graphic processing unit)와 같은 범용 프로세서와 S/W의 조합을 통해 구현될 수도 있다. 또한, 통신부(212), 파싱부(214) 및 AI 복호화부(220)는 하나 이상의 프로세서로 구성될 수도 있다. 이 경우, 전용 프로세서들의 조합으로 구현될 수도 있고, AP 또는 CPU, GPU와 같은 다수의 범용 프로세서들과 S/W의 조합을 통해 구현될 수도 있다. 마찬가지로 AI 업스케일부(224)와 제1 복호화부(222)도 하나의 프로세서를 통해 구현되거나, 각각 서로 다른 프로세서로 구현될 수 있다.
도 3은 본 개시의 일 실시예에 따른 디스플레이 장치의 구성을 도시하는 블록도이다.
일 실시예에 따르면, 전술한 도 2의 AI 복호화 장치(200)는 도 3과 같은 디스플레이 장치(300)일 수 있다. 디스플레이 장치(300)는 영상공급 장치(100)로부터 영상을 공급받을 수 있다. 영상공급 장치(100)는 예로, 방송국이나, 미디어사업자, 서비스 업체, SI(system Integrtor) 업체, 어플리케이션 마켓, 웹 사이트 등의 다양한 서버를 포함할 수 있다. 영상공급 장치(100)가 공급하는 영상의 종류는 예로, 방송 컨텐트, 미디어 컨텐트, 어플리케이션 등을 포함할 수 있으며, 일 실시예로, 미디어 컨텐트는 VOD 서비스의 형태로, 네트워크를 통한 실시간 스트리밍에 따른 파일 형태의 비디오 스트림으로서 제공될 수 있다.
디스플레이 장치(300)는 영상공급 장치(100)로부터 수신된 AI 부호화 데이터를 복호화하여 복원된 영상을 디스플레이할 수 있다. 일 예로, 디스플레이 장치(300)는 방송국의 송출 장비로부터 수신되는 방송 신호, 방송 정보 또는 방송데이터 중 적어도 하나를 처리하는 텔레비젼(TV)일 수 있다. .
디스플레이 장치(300)는 제어 프로세서(310), 비디오 프로세서(320), 디스플레이(330), 통신부(340), 사용자 입력부(350) 및 메모리(360)를 포함하나, 디스플레이 장치(300)의 구성은 도시된 바에 한정되지 않는다.
제어 프로세서(310)는 디스플레이 장치(300)의 제반 구성들이 동작하기 위한 제어를 수행한다. 제어 프로세서(310)는 제어 프로그램이 설치된 비휘발성의 메모리로부터 제어 프로그램의 적어도 일부를 휘발성의 메모리로 로드하고, 로드된 제어 프로그램을 실행하는 적어도 하나의 범용 프로세서를 포함할 수 있다. 예로, 제어 프로세서(310)는 CPU(General Processing Unit), AP(Application Processor) 또는 마이크로프로세서(micro-processor)로 구현될 수 있다. 제어 프로세서(310)에는 싱글 코어, 듀얼 코어, 쿼드 코어 또는 그 배수로 이루진 하나 이상의 코어가 탑재될 수 있다. 제어 프로세서(310)는 복수의 프로세서를 포함할 수 있다. 예로, 제어 프로세서(310)는 메인 프로세서(main processor), 및 슬립 모드(sleep mode; 예로, 대기 전원만 공급되고 디스플레이 장치로서 동작하지 않는 모드)에서 동작하는 서브 프로세서(sub processor)를 포함할 수 있다.
비디오 프로세서(320)는 영상 데이터에 대하여 기 설정된 다양한 영상 처리를 수행할 수 있다. 비디오 프로세서(320)는 이러한 영상 처리들을 수행하여 생성 또는 결합한 출력 신호를 디스플레이(330)로 출력함으로써 디스플레이(330)에 영상 데이터에 대응되는 영상이 표시되게 한다.
비디오 프로세서(320)는 제1 복호화부(222) 및 AI 업스케일부(224)를 포함할 수 있다. 제1 복호화부(222) 및 AI 업스케일부(224)는 전술한 도 2의 제1 복호화부(222) 및 AI 업스케일부(224)에 각각 대응될 수 있다.
그 밖에, 비디오 프로세서(320)는 예로, 인터레이스(interlace) 방식의 방송 신호를 프로그레시브(progressive) 방식으로 변화하는 디이터레이싱(de-interlacing), 영상 화질 개선을 위한 노이즈 감소(noise reduction), 디테일 강화(detail enhancement), 프레임 리프레시 레이트(frame refresh rate) 변환 또는 라인 스캐닝(line scanning) 등 다양한 영상 처리를 수행하기 위한 적어도 하나의 모듈을 더 포함할 수 있다.
비디오 프로세서(320)는 GPU와 같은 전용 프로세서로 구현될 수도 있고, CPU 또는 AP와 같은 범용 프로세서와 S/W의 조합을 통하여 구현될 수도 있다. 또한, 제1 복호화부(222) 및 AI 업스케일부(224)는 각각의 서로 다른 프로세서로 구현될 수도 있다. AI 업스케일부(224)가 전용 프로세서로 구현되는 경우, 상기 전용 프로세서는 온 디바이스(on-device) 기반의 AI로서 동작하도록 구현될 수 있다. 이하, AI 업스케일부(224)의 기능을 수행하는 전용 프로세서를, AI 프로세서로 칭한다. AI 프로세서의 구성은 도 4 이하에서 상세히 후술된다.
비디오 프로세서(320)에서 처리된 영상 신호는 디스플레이(330)로 출력된다. 디스플레이(330)는 비디오 프로세서(320)로부터 수신된 영상 신호에 대응되는 영상을 표시할 수 있다.
디스플레이(330)의 구현 방식은 한정되지 않으며 예로, 액정(liquid crystal), 플라즈마(plasma), 발광 다이오드(light-emitting diode), 유기발광 다이오드(organic light-emitting diode), 면전도 전자총(surface-conduction electron-emitter), 탄소 나노 튜브(carbon nano-tube), 나노 크리스탈(nano-crystal) 등의 다양한 디스플레이 방식으로 구현될 수 있다. 일 실시예에서, 디스플레이(330)는 영상을 표시하는 디스플레이 패널을 포함하며, 그 구현 방식에 따라서 부가적인 구성, 예를 들면 구동부(driver)를 더 포함할 수 있다.
통신부(340)는 적어도 하나의 외부 장치와 유선 또는 무선 통신 방식을 사용하여 통신 가능하게 마련된다. 통신부(340)는 소정의 통신 프로토콜에 대응하는 유선 및/또는 무선 통신 모듈(S/W module, chip 등)을 포함하는 통신 회로(communication circuitry)로서 구현될 수 있다. 예로, 통신부(340)는 튜너(342), 접속부(344), 네트워크부(344)를 포함할 수 있다.
통신부(340)는 외부로부터 영상 신호를 수신할 수 있다. 예로, 통신부(340)는 도 2의 AI 부호화 데이터에 대응되는 영상 신호를 수신할 수 있다. 수신되는 신호의 규격은 디스플레이 장치(300)의 구현 형태에 대응하여 다양한 방식으로 구성될 수 있다.
예로, 통신부(340)는 방송국으로부터 송출되는 RF 신호를 무선으로 수신할 수 있다. 이 경우, 통신부(340)는 방송국으로부터 송출되는 방송 신호를 채널 별로 튜닝하기 위한 튜너(342)를 포함한다. 튜너(342)는 튜닝된 특정 채널의 방송 신호를 복조하여 트랜스포트 스트림(transport stream) 형태의 신호로 출력하는 디모듈레이터를 포함할 수 있다. 튜너와 디모듈레이터는 통합된 형태의 단일 칩으로 설계되거나, 상호 분리된 2개의 칩으로 각각 구현될 수 있다.
또한, 통신부(340)는 컴포지트 비디오, 컴포넌트 비디오, 슈퍼 비디오, SCART, HDMI, 디스플레이 포트(DP) 규격 등에 의한 신호를 유선으로 수신할 수 있다. 이 경우, 통신부(340)는 디스플레이 장치(300)가 외부의 영상 소스와 유선 연결되도록 하는 접속부(344)를 포함한다. 접속부(344)는 예로, HDMI 케이블을 통하여 영상 소스와 접속할 수 있다. 일 예로, 디스플레이 장치(300)는 접속부(344)를 통하여 셋탑박스와 같은 영상 소스로부터 컨텐트와 관련된 영상 신호를 제공받을 수 있다. 접속부(344)는 기본적으로 영상 소스로부터 신호를 수신하지만, 양“‡항으로 신호를 송수신 가능하게 마련될 수도 있다. 다른 예로, 디스플레이 장치(300)는 접속부(344)를 통하여 셋탑박스 뿐만 아니라 모바일 장치와 유선 연결되어 영상 신호를 제공받을 수도 있다.
통신부(340)는 다양한 주변 장치와 연결되어 인터넷 등과 같은 네트워크를 통해 수신되는 데이터로부터 기인한 영상 신호를 제공받을 수도 있다. 이 경우, 통신부(340)는 네트워크부(346)를 통하여 영상 신호를 수신할 수 있다. 네트워크부(346)는 무선랫 유닛, 무선 통신 모듈, 유선 통신 모듈 중 하나 또는 2 이상의 조합으로 구성될 수 있다. 무선랜 유닛은 제어 프로세서(310)의 제어에 따라 AP(access point)를 통해 적어도 하나의 외부 장치와 무선으로 통신을 수행할 수 있다. 무선랜 유닛은 와이파이(Wi-Fi) 통신 모듈을 포함한다. 무선 통신 모듈은 AP 없이 무선으로 디스플레이 장치(300)와 적어도 하나의 외부 장치 간에 다이렉트로 무선 통신을 수행할 수 있다. 다이렉트 통신 모듈은, 블루투스(bluetooth), 블루투스 저에너지(bluetooth low energy), RF(radio frequency) 통신, 와이파이 다이렉트(Wi-Fi Direct), 지그비(zigbee), UWB(Ultra Wideband), NFC(Near Field Communication), 적외선 통신(IrDA, infrared data association) 등과 같은 통신 모듈을 포함할 수 있다. 또한, 통신부(340)는 이더넷(Ethernet) 등과 같은 유선 통신 모듈을 더 포함할 수 있다.
사용자 입력부(350)는 사용자 입력을 수신한다. 사용자 입력부(350)는 디스플레이 장치(300)의 전면, 측면, 또는 후면의 일 영역에 설치되며, 전원 키, 메뉴 키 등의 버튼으로 구성된 키패드(또는, 입력 패널), 터치패드, 터치스크린, 조그, 다이얼, 트랙볼 등으로 구현되어 사용자 입력을 수신할 수 있다. 또는, 사용자 입력부(340)는 원격 제어 장치(예로, 리모컨(remote control), 마우스, 키보드, 디스플레이 장치(300)를 원격 제어 가능한 어플리케이션이 설치된 스마트폰 등)로부터 커맨드/데이터/정보/신호를 수신하는 통신 회로나, 마이크(microphone)와 같이 사용자로부터 발화된 음성 및 사운드를 수신하는 음성 입력부를 더 포함할 수 있다.
메모리(360)는 디스플레이 장치(300)의 다양한 데이터를 저장하도록 구성된다. 일 예로, 메모리(360)는 디스플레이 장치(300)에 공급되는 전원이 차단되더라도 데이터들이 남아있고, 변동사항을 반영할 수 있도록 쓰기 가능한 비휘발성 메모리(writable memory)로 구비될 수 있다. 메모리(360)는 하드디스크(HDD), 플래쉬 메모리(flash memory), EPROM 또는 EEPROM 중 적어도 하나를 포함할 수 있다. 다른 예로, 메모리(360)는 RAM과 같은 휘발성 메모리(volatile memory)로 구비될 수도 있다. 휘발성 메모리는 디스플레이 장치(300)의 읽기 또는 쓰기 속도가 비휘발성 메모리에 비해 빠른 DRAM 또는 SRAM을 포함할 수 있다. 메모리(360)에 저장되는 데이터는 예로, 디스플레이 장치(300)의 구동을 위한 운영체제를 비롯하여, 이 운영체제 상에서 실행 가능한 다양한 어플리케이션, 영상 데이터, 부가 데이터 등을 포함한다. 또한, 메모리(360)는 제어 프로세서(310)의 제어에 따라 각 구성요소들의 동작에 대응되게 입/출력되는 신호 또는 데이터를 저장할 수 있다. 메모리(360)는 디스플레이 장치(300)의 제어를 위한 프로그램, 제조사에서 제공되거나 외부로부터 다운로드 받은 어플리케이션과 관련된 UI, UI를 제공하기 위한 이미지들, 사용자 정보, 문서, 데이터베이스들 또는 관련 데이터들을 저장할 수 있다. 여기서, 메모리(360)에 저장된 어플리케이션은 미리 수행된 학습에 기반하여 동작하는 머신 러닝 어플리케이션 또는 딥러닝 어플리케이션을 포함할 수 있다.
도 4는 본 개시의 일 실시예에 따른 AI 프로세서의 구성을 도시하는 블록도이다.
도 4는, 전술한 도 3의 AI 업스케일부(224)의 역할을 수행하는 AI 프로세서(400)를 나타낸다
AI 프로세서(400)는 범용 프로세서, 디지털 신호 프로세서(DSP, disital signal processor), ASIC(Application specific integrated circuit), FPGA(Field programmable gate array), 다른 프로그램 가능 로직 디바이스(PLD, programmable logic device), 개별 게이트 또는 트랜지스터 로직, 개별 하드웨어 컴퍼넌트, 프로세서에 의해 실행되는 소프트웨어 모듈 또는 이들의 결합 형태로 구현될 수 있다. 일 실시예에 따르면, AI 프로세서(400)는 칩셋 형태의 특수 목적 로직 회로로 구현될 수 있고, 예를 들면, 전용 ASIC, 전용 FPGA, 또는 전용 로직 회로와 범용 프로세서의 결합 형태 등으로 구현될 수 있으나, 전술한 구현 방식 제한되지 않는다.
AI 프로세서(400)는 신경망 모델에 의하여 입력되는 영상 데이터를 영상 처리할 수 있다. 예로, AI 프로세서(400)는 제2 영상(135)에 대한 영상 데이터를 입력 받아 신경망 연산을 수행하여 업스케일링된 제3 영상(145)에 대한 영상 데이터를 출력할 수 있다.
AI 프로세서(400)는 제어부(또는, 프로세서 제어부)(410), 연산부(420) 및 메모리(430)를 포함할 수 있다. 제어부(410)는 연산부(420)의 연산에 필요한 파라미터를 세팅하는 역할을 수행할 수 있다. 연산부(420)는 세팅된 파라미터에 기반한 신경망 연산을 수행할 수 있다.
예로, 영상 프레임 별로 각각 다른 파라미터가 신경망 연산에 요구될 수 있다. '파라미터'는 각 신경망 레이어의 연산 과정에서 이용되는 복수 개의 가중치 값들을 포함할 수 있다. 일 예로, 파라미터는 매트릭스 형태로 표현될 수도 있다. 파라미터는 훈련의 결과로 설정되는 값으로서, 필요에 따라 별도의 훈련 데이터(training data)를 통해 갱신될 수 있다.
제어부(410)는 복수 개의 가중치 값들을 포함하는 파라미터를 대표하는 파라미터 식별자를 제공 받을 수 있다. 제어부(410)는 제공 받은 파라미터 식별자에 기반하여, 파라미터를 구성하는 가중치 값들을 획득할 수 있다. 예로, 제어부(410)는 외부 메모리(360)로부터 파라미터 식별자에 기반한 가중치 값들을 획득할 수도 있고, AI 프로세서(400)의 메모리(430)로부터 파라미터 식별자에 기반한 가중치 값들을 획득할 수도 있다. 파라미터가 획득되면, 제어부(410)는 획득된 가중치 값들을 연산부(420)에 포함된 신경망 연산부들 각각에 대응되는 레지스터들에 등록할 수 있다. 예로, 일 신경망 연산부가 3*3*8 개의 필터 커널을 이용하여 영상 데이터에 대한 컨벌루션 처리를 수행하는 경우, 3*3*8 개의 가중치 값들이 상기 일 신경망 연산부에 대응되는 레지스터에 등록될 수 있다.
연산부(420)는 복수 개의 신경망 연산부들로 구성되며, 제어부(410)의 제어에 의하여 복수 개의 신경망 연산부들 중 적어도 일부를 이용하여 영상 데이터를 대상으로 신경망 연산을 수행할 수 있다. 일 예로, 일 신경망 연산부는 레지스터에 등록된 가중치 값들이 적용된 필터 커널을 이용하여 영상 데이터를 대상으로 컨벌루션 처리를 수행할 수 있다. 연산부(420)에서 신경망 연산을 수행하는 과정은 도 5 이하에서 상세히 후술된다.
메모리(430)는 복수의 N라인 메모리(N line-memory)들을 포함할 수 있다. N라인 메모리는 영상의 수평 방향의 화소열(라인) 단위로 영상 데이터를 일시적으로 기억하기 위한 메모리로서 예로, SRAM으로 구현될 수 있다. N라인 메모리는 하나 이상의 화소열의 영상 데이터를 일시적으로 기록하기 위하여 하나 이상의 라인 메모리로 구성될 수 있다.
메모리(430)는 연산부(420)를 구성하는 복수 개의 신경망 연산부들 각각에 대응되는 복수 개의 N라인 메모리들을 포함하여, 복수 개의 신경망 연산부들의 신경망 연산에 필요한 연산 값, 연산의 중간 값 또는 최종 값 중 적어도 하나를 저장할 수 있다.
또한, 메모리(430)는 영상 데이터를 입력 받아 복수 개의 신경망 연산부들로 분배하거나, 복수 개의 신경망 연산부들로부터 영상 처리가 수행된 영상 데이터를 취합하는 버퍼 역할을 수행하는 N라인 메모리들을 포함할 수 있다.
일 실시예로, AI 프로세서(400)의 제어부(410)는 입력된 영상 데이터가 메모리(430)에 저장되도록 제어할 수 있다. 또한, 제어부(410)는 영상의 크기 및 복수 개의 신경망 연산부들의 데이터 처리 능력에 기반하여 분할된 영상 데이터를 대상으로 복수 개의 신경망 연산부들 중 일부 신경망 연산부들을 통해 신경망 연산을 수행하여 업스케일링된 영상 데이터를 출력하도록 제어할 수 있다.
일 실시예로, 복수 개의 신경망 연산부들 중 일부 신경만 연산부들이 분할된 영상 데이터들에 대한 신경망 연산 처리를 수행하는 경우, 제어부(410)는 복수 개의 신경망 연산부들 중에서, 분할된 영상 데이터를 대상으로 신경망 연산 처리를 수행하지 않는 다른 일부 신경망 연산부들은 비활성화시킬 수 있다.
일 실시예로, 제어부(410)는 영상의 가로 크기 및 복수 개의 신경망 연산부들의 데이터 처리 단위에 기반하여 영상 데이터를 분할할 수 있다.
일 실시예로, 제어부(410)는 영상의 크기 및 상기 복수 개의 신경망 연산부들의 개수에 기반하여 분할된 영상 데이터를 대상으로 복수 개의 신경망 연산부들을 통하여 신경망 연산을 수행하여 업스케일링된 영상 데이터를 출력하도록 제어할 수 있다.
일 실시예로, 제어부(410)는 영상의 크기에 기반하여, 복수 개의 신경망 연산부들의 클럭 주파수의 속도를 변환할 수 있다.
일 실시예로, 제어부(410)는 영상 데이터의 신경망 연산에 요구되는 예상 전략 소모량에 기반하여, 복수 개의 신경망 연산부들의 상기 데이터 처리 능력에 기반하여 영상 데이터를 분할할지 또는 복수 개의 신경망 연산부들의 개수에 기반하여 상기 영상 데이터를 분할할지 결정할 수 있다. 여기서 복수 개의 신경망 연산부들의 데이터 처리 능력은 각 신경망 연산부에서 소정의 클럭 동안 처리 가능한 최대 데이터 크기를 나타낸다.
일 실시예로, 제어부(410)는, 영상의 프레임에 대응되는 파라미터를 획득하여, 복수 개의 신경망 연산부들 각각에 대응되는 레지스터들에 등록할 수 있다.
일 실시예로, 제어부(410)는 영상의 프레임 별로 서로 다른 파라미터를 적용하여, 영상 데이터를 대상으로 신경망 연산을 수행할 수 있다.
도 5는 본 개시의 일 실시예에 따른 복수 개의 신경망 연산부들을 포함하는 AI 프로세서의 구성을 도시하는 블록도이다.
도 5는 AI 프로세서(400)의 일부로서 영상 데이터를 대상으로 신경망 연산에 필요한 구성을 포함한다.
AI 프로세서(400)는 데이터 언페커(DATA_UNPACKER)(411), 복수 개의 신경망 연산부들(421~424), 데이터 패커(DATA_PACKER)(412) 및 복수 개의 N라인 메모리들(431~433)을 포함할 수 있다. 여기서, 데이터 언패커(411) 및 데이터 패커(412)는 도 4의 제어부(410)에 포함될 수 있으며, 복수 개의 신경망 연산부들(421~424)은 도 4의 연산부(420)에 포함될 수 있다.
도 5에서, 제1 N라인 메모리(431)는 데이터 언패커(411)에 대응되는 메모리로서 예로, 래스터(raster) 방식을 따르는 영상 데이터를 외부에서 입력 받아 복수 개의 신경망 연산부들(421~424)로 분배하기 위한 버퍼 역할을 수행할 수 있다. 이 경우, 제1 N라인 메모리(431)는 신경망 연산부들(421~424)로 연산에 필요한 영상 데이터를 제공하면서 동시에 외부에서 영상 데이터를 입력 받기 때문에, 입력되는 영상 데이터의 약 2배수의 저장 용량을 가질 수다.
제2 N라인 메모리(432)는 복수 개의 신경망 연산부들(421~424) 각각에 대응되는 복수의 N라인 메모리들로 구성될 수 있다. 제2 N라인 메모리(432)는 신경망 연산에 필요한 입력 값, 연산의 중간 값 또는 최종 값 중 적어도 하나를 저장할 수 있다.
제3 N라인 메모리(433)는 데이터 패커(412)에 대응되는 메모리로서, 복수 개의 신경망 연산부들(421~424)의 연산 결과를 취합하여 외부로 데이터를 출력하기 위한 버퍼 역할을 수행할 수 있다. 이 경우, 제3 N라인 메모리(433)는 신경망 연산부들(421~424)로부터 연산 결과를 취합하면서 동시에 외부로 영상 처리된 영상 데이터를 제공하기 때문에, 출력되는 영상 데이터의 약 2배수의 저장 용량을 가질 수 있다.
제1 N라인 메모리(431), 제2 N라인 메모리(432), 및 제3 N라인 메모리(433)는 메모리(430) 내에서 할당될 수 있다. 제어부(410)는 제1 N라인 메모리(431), 제2 N라인 메모리(432), 및 제3 N라인 메모리(433)에 대응하는 저장 공간을 메모리(430) 내에 할당할 수 있다. 제어부(410)는 입력 영상의 크기, 또는 분할된 영상 데이터의 크기에 기초하여, 제1 N라인 메모리(431), 제2 N라인 메모리(432), 및 제3 N라인 메모리(433) 각각의 저장 공간의 크기를 결정할 수 있다.
AI 프로세서(400)가 신경망 연산을 수행하는 구체적인 과정을 설명하면, 먼저, 영상 데이터가 입력되면, 데이터 언패커(411)는 입력된 영상 데이터를 언패킹하여, 복수 개의 신경망 연산부(421~424) 각각으로 분배될 수 있도록 영상 데이터를 분할할 수 있다. 데이터 언패커(411)는 분할된 영상 데이터로서, 복수 개의 서브 영상 데이터들 각각을 복수 개의 신경망 연산부들(421~424) 각각으로 제공할 수 있다(이하, 분할된 영상 데이터는 복수 개의 서브 영상 데이터들을 의미한다). 복수 개의 신경망 연산부들(421~424) 각각은 제공받은 서브 영상 데이터를 대상으로 신경망 연산에 따른 영상 처리를 수행할 수 있다. 데이터 패커(412)는 서브 영상 데이터들 각각에 대한 영상 처리 결과를 취합하여 업스케일링된 영상 데이터를 출력할 수 있다.
일 실시예로, 데이터 언패커(411)는 복수 개의 신경망 연산부들(421~424)에 영상 데이터를 분할하여 제공하기 위하여, 1라인 픽셀에 대응되는 영상 데이터를 독취하여 제1 N 라인 메모리(431)에 기록할 수 있다.
구체적으로, 입력 영상이 4K 영상인 경우, 데이터 언패커(411)는 영상 프레임의 일 라인인 3840*1 픽셀을 업스케일링 하기 위하여, 3840*1 픽셀에 대응되는 영상 데이터를 독취하여 제1 N라인 메모리(431)에 기록할 수 있다. 데이터 언패커(411)는 영상의 크기 및 복수 개의 신경망 연산부들(421~424)의 데이터 처리 능력에 기반하여, 메모리(430)에 저장된 3840*1 픽셀에 대응되는 영상 데이터를 분할할 수 있다. 예로, 복수 개의 신경망 연산부들(421~424) 각각의 처리 단위가 960*1 픽셀에 대응되는 영상 데이터인 경우, 데이터 언패커(411)는 영상 데이터를 (3840)/(960)의 결과인 4개로 분할하여, 4개의 서브 영상 데이터들 각각을 복수 개의 신경망 연산부들(421~424) 각각에 대응되는 제2 N라인 메모리(432)로 제공할 수 있다.
일 실시예로, 데이터 언패커(411)는 신경망 연산부들이 이용하는 필터 커널의 크기를 고려하여, 분할된 영상 데이터의 경계 영역에 대응되는 영상 데이터를 더 획득하여, 복수 개의 신경망 연산부들(421~424) 각각에 대응되는 제2 N라인 메모리(432)로 제공할 수도 있다.
복수 개의 신경망 연산부들(421~424) 각각은 제2 N라인 메모리(432)에 저장된 서브 영상 데이터들을 대상으로 업스케일링 영상 처리를 수행할 수 있다. 일 예로, 일 신경망 연산부는 제공받은 서브 영상 데이터를 대상으로 컨벌루션 연산, 비선형 연산(Non-linear) 및 업스케일러 연산을 수행할 수 있다. 또한, 복수 개의 신경망 연산부들(421~424) 각각은 화소를 표현하는 Y, Cb, Cr에 각각에 대하여 업스케일링 영상 처리를 수행할 수 있다. 예로, 복수 개의 신경망 연산부들(421~424) 각각은 루마 성분인 Y를 대상으로 컨벌루션 연산, 비선형 연산(Non-linear) 및 업스케일러 연산을 수행하고, 크로마 성분인 Cb, Cr에 대하여는 업스케일 연산(예: 바이큐빅(bicubic) 스케일)을 수행할 수 있다.
도 6은 본 개시의 일 실시예에 따른 신경망 연산을 설명하는 도면이다.
도 6은 신경망 연산부의 예시적인 동작을 설명한다. 도 6의 각 처리 블록(612, 614, 616, 618, 620, 622, 및 624)는 인공 신경망 모델의 적어도 하나의 레이어 또는 적어도 하나의 노드에 대응될 있다. 각 처리 블록(612, 614, 616, 618, 620, 622, 및 624)은 신경망 연산부에 할당된 적어도 하나의 레지스터, 프로세서, 또는 메모리 중 적어도 하나 또는 이들의 조합에 대응될 수 있다.
도 6을 참조하면, 일 신경망 연산부는 입력 데이터(601)를 연계 데이터 및 추론 데이터로 구분하여, 연계 데이터를 대상으로 컨벌루션 연산, 비선형 연산 및 업스케일러 연산을 수행하고, 추론 데이터를 대상으로 업스케일러 연산을 수행할 수 있다. 이때, 연계 데이터는 AI 기반으로 AI 다운스케일을 위한 AI와 AI 업스케일을 위한 AI 간에 연계된 훈련(trained connectively)에 기반한 데이터이고, 추론 데이터는 이러한 연계된 훈련에 이용되지 않은 데이터일 수 있다.
일 신경망 연산부는 서브 영상 데이터(601) 중 연계 데이터를 제1 컨벌루션 레이어(612)로 입력시켜 컨벌루션 처리를 수행할 수 있다. 예로, 신경망 연산부는 3*3 크기의 8개의 필터 커널을 이용하여 서브 영상 데이터에 대하여 컨벌루션 처리를 수행할 수 있다. 신경망 연산부는 컨벌루션 처리 결과 8개의 필터 커널에 의하여 생성된 8개의 특징 맵을 각각 제1 활성화 레이어(614)로 입력시킬 수 있다.
제1 활성화 레이어(614)는 각각의 특징 맵에 대해 비선형(Non-linear) 특성을 부여할 수 있다. 제1 활성화 레이어(614)는 시그모이드 함수(sigmoid function), Tanh 함수, ReLU(Rectified Linear Unit) 함수 등을 포함할 수 있으나, 이에 한정되는 것은 아니다. 제1 활성화 레이어(614)에서 비선형 특성을 부여하는 것은, 제1 컨볼루션 레이어(612)를 통한 출력인, 특징 맵의 일부 샘플 값을 변경하여 출력하는 것을 의미한다. 이때, 변경은 비선형 특성을 적용하여 수행된다.
신경망 연산부는 제1 활성화 레이어(614)의 출력을 제2 컨볼루션 레이어(616)로 입력시킬 수 있다. 신경망 연산부는 3*3 크기의 8개의 필터 커널을 이용하여 입력 데이터에 대하여 컨벌루션 처리를 수행할 수 있다. 제2 컨볼루션 레이어(616)의 출력은 제2 활성화 레이어(618)로 입력될 수 있다. 제2 활성화 레이어(618)는 입력 데이터에 대해 비선형 특성을 부여할 수 있다.
신경망 연산부는 제2 활성화 레이어(618)의 출력에 대하여 스케일러(620)에 의한 연산을 수행할 수 있다. 신경망 연산부는 예로, 바이리니어(bilinear) 스케일, 바이큐빅(bicubic) 스케일, 란조스(lanczos) 스케일, 또는 스테어 스탭(stair step) 스케일 중 적어도 하나의 스케일 연산에 의하여 출력에 대한 스케일러(620)를 수행할 수 있다.
신경망 연산부는 스케일러(620)의 출력을 제3 컨볼루션 레이어(622)로 입력시켜, 3 x 3의 크기의 1개의 필터 커널을 이용하여 1개의 출력 영상을 만들기 위한 컨볼루션 처리를 수행할 수 있다. 제3 컨볼루션 레이어(622)의 출력은 제3 활성화 레이어(624)로 입력되고, 제3 활성화 레이어(624)는 입력 데이터에 대해 비선형 특성을 부여하여 업스케일링된 연계 데이터를 획득할 수 있다.
또한, 신경망 연산부는 서브 영상 데이터(601) 중 추론 데이터에 대하여 스케일러(630)에 의한 연산을 수행하여 업스케일링된 추론 데이터를 획득할 수 있다. 신경망 연산부는 예로, 바이리니어 스케일, 바이큐빅 스케일, 란조스 스케일, 또는 스테어 스탭 스케일 중 적어도 하나의 스케일 연산에 의한 스케일러(630)를 수행할 수 있다.
신경망 연산부는 업스케일링된 연계 데이터 및 업스케일링된 추론 데이터를 결합하여 출력 데이터(602)으로서 업스케일링된 서브 영상 데이터를 획득할 수 있다.
도 6에서, 일 신경망 모델은 세 개의 컨볼루션 레이어(612, 616, 622), 세 개의 활성화 레이어(614, 618, 624) 및 스케일러(620)를 포함하고 있는 것으로 도시하고 있으나, 이는 하나의 예시일 뿐이며, 구현 예에 따라서, 컨볼루션 레이어 및 활성화 레이어의 개수는 다양하게 변경될 수 있다. 또한, 구현 예에 따라서, 신경망 연산부는 DNN(deep neural network) 뿐만 아니라 RNN(recurrent neural network)을 통해 구현될 수도 있다.
도 5의 데이터 패커(412)는 복수 개의 신경망 연산부들(421~424) 각각으로부터 업스케일링된 서브 영상 데이터들을 취합하여, 입력된 영상 데이터에 대응되는 업스케일링된 영상 데이터를 최종 출력할 수 있다. 예로, 데이터 패커(412)는 영상 프레임의 일 라인인 3840*1 픽셀에 대한 업스케일링 결과로서, 3840*2 픽셀에 대응되는 업스켈링된 영상 데이터를 출력할 수 있다.
도 7은 본 개시의 일 실시예에 따른 영상의 크기에 기반하여 신경망 연산을 수행하는 과정을 나타내는 도면이다.
도 7에 도시된 바와 같이, AI 프로세서(400)는 입력 데이터(701)로서 입력 영상에 대한 영상 데이터가 입력되면, 상기 입력된 영상의 크기를 결정(712)할 수 있다. 예로, AI 프로세서(400)는 영상 데이터를 분석하여 영상의 크기를 결정하거나, 외부로부터 영상의 크기에 관한 정보를 입력 받을 수 있다. 이 경우, 영상의 크기에 관한 정보는 도 1에서 전술한 AI 데이터 또는 부호화 데이터에 포함되어 전송될 수 있다. 영상의 크기는 일반적으로, 일 프레임의 가로 크기일 수 있으나, 전술한 예에 제한되지 않고, 영상의 해상도 정보, 영상의 비율 정보 또는 일 프레임의 세로 크기일 수도 있다.
입력 영상의 크기가 결정되면, AI 프로세서(400)는 영상의 크기 및 복수 개의 신경망 연산부들의 데이터 처리 능력에 기반하여, 영상 데이터를 분할하여 분할된 영상 데이터를 복수 개의 신경망 연산부들에게 할당(714)할 수 있다. 복수 개의 신경망 연산부들 각각은 할당 받은 서브 영상 데이터를 대상으로 신경망 연산 처리(716)를 수행할 수 있다.
AI 프로세서(400)는 복수 개의 신경망 연산부들 각각에 의한 신경망 연산 결과로서, 라인 단위의 영상 데이터들을 취합(718)하여, 출력 데이터(702)로서 업스케일링된 영상 데이터를 출력할 수 있다. 즉, AI 프로세서(400)는 복수 개의 신경망 연산부들로부터 출력된 라인 단위의 영상 데이터들을 병합하여 순차 주사 방식에 따라 병합된 영상 데이터를 출력할 수 있다.
도 7의 각 처리 블록(712, 714, 716, 및 718)은 적어도 하나의 컴퓨터 프로그램 명령에 의해 수행되는 소프트웨어 처리 단위에 대응되거나, 소정의 동작에 할당된 하드웨어 리소스(프로세서, 레지스터, 메모리 등)에 대응될 수 있다. 일 실시예에 따르면, 영상의 크기 결정(712), 분할된 영상 데이터 할당(714), 및 라인 영상 데이터 취합(718) 동작은 제어부(430)에 의해 수행되고, 신경망 연산 처리(716)는 연산부(420)의 복수의 신경망 연산부를 통해 수행될 수 있다.
도 8은 본 개시의 일 실시예에 따른 영상의 크기에 기반하여 신경망 연산을 수행하는 AI 프로세서(400)의 기능 블록도이다.
도 8에서, AI 프로세서(400)는 입력 데이터 제어부(812), 복수 개의 신경망 연산부들(822~826), 복수 개의 신경망 연산부들(822~826) 각각에 대응되는 복수 개의 N라인 메모리들(832~836) 및 출력 데이터 제어부(842)를 포함할 수 있다. 입력 데이터 제어부(812) 및 출력 데이터 제어부(842)는 도 4의 제어부(410)에 포함될 수 있다. 또한, 입력 데이터 제어부(812)는 도 5의 데이터 언패커(411)에 대응되고, 출력 데이터 제어부(842)는 도 5의 데이터 패커(412)에 대응될 수 있다.
입력 데이터 제어부(812)는 영상의 픽셀에 대응되는 영상 데이터 및 영상의 크기(예: 영상의 가로 크기)에 관한 정보를 입력 받을 수 있다. 다른 예로, 입력 데이터 제어부(812)는 영상 데이터를 분석하여 영상의 크기를 결정할 수도 있다.
입력 데이터 제어부(812)는 영상의 크기 및 복수 개의 신경망 연산부들(822, 824, 826)의 데이터 처리 능력에 기반하여, 영상 데이터를 분할하여 분할된 영상 데이터인 서브 영상 데이터들 각각의 적어도 일부를 복수 개의 신경망 연산부들(822, 824, 826) 중 적어도 하나에게 동시에 전달할 수 있다. 적어도 하나의 신경망 연산부들은 제공받은 영상 데이터를 대상으로 신경망 연산을 수행하여 연산 결과를 출력할 수 있다.
일 실시예에 따르면, 복수의 신경망 연산부들(822, 824, 및 826)은 병렬적으로 동작할 수 있다. 또한, 복수의 N라인 메모리(832, 834, 836)와 복수의 신경망 연산부들(822, 824, 및 826) 사이에 할당된 리소스에 따라, 분할된 영상 데이터가 복수의 N라인 메모리(832, 834, 836)와 복수의 신경망 연산부들(822, 824, 및 826) 사이에서 직렬적으로 전달되거나 병렬적으로 전달될 수 있다.
도 9 내지 도 11은 본 개시의 실시예들에 따라, 영상 데이터의 크기에 따라 복수 개의 신경망 연산부들(822, 824, 및 826)에서 분할된 영상 데이터를 처리하는 과정을 나타내는 도면들이다. 도 9 내지 도 11에서, AI 프로세서(400)는 N개(N은 자연수)의 복수 개의 신경망 연산부들(822, 824, 및 826)을 포함하고, 복수 개의 신경망 연산부들(822, 824, 및 826)의 최대 처리 단위는 max_width 이며, 복수 개의 신경망 연산부들(822, 824, 및 826) 각각의 처리 단위는 max_width/N인 것을 가정한다. 신경망 연산부들(822, 824, 및 826)의 처리 단위는 예를 들면, 픽셀 수, 데이터 크기(bit, byte 등) 등으로 정의될 수 있다.
이 경우, 입력 영상 제어부(812)는 입력되는 영상 데이터를 복수 개의 신경망 연산부들(822, 824, 및 826) 각각의 처리 단위로 분할할 수 있다.
일 예로, 도 9에서는, 입력 영상의 영상 데이터의 크기가 M1이고, 복수 개의 신경망 연산부들(822, 824, 및 826)의 영상 데이터의 처리 단위가 max_width/N일 수 있다.
영상 데이터의 크기 M1이 복수 개의 신경망 연산부들(822, 824, 및 826) 전체의 처리량인 max_width와 동일하거나 또는 배수의 처리량을 갖는 경우, 입력 영상 제어부(812)는 영상 데이터를 M1/max_width = N개로 동일한 크기로 분할할 수 있다. 입력 영상 제어부(812)는 N개로 분할된 영상 데이터들을 복수 개의 신경망 연산부들(822, 824, 및 826)에게 각각 전달할 수 있다.
복수 개의 신경망 연산부들(822, 824, 및 826) 각각은 동일하게 분할된 영상 데이터를 대상으로 신경망 연산을 수행할 수 있다. 예로, 복수 개의 신경망 연산부들(822, 824, 및 826) 각각이 분할된 영상 데이터를 처리하는 연산 시간 길이는 동일할 수 있으며, 복수 개의 신경망 연산부들(822, 824, 및 826) 각각은 동일한 시간에 AI 업스케일 처리를 수행하여 업스케일링 영상 데이터를 출력할 수 있다.
다른 예로, 도 10에서는, 영상 데이터의 크기가 M2이고, 복수 개의 신경망 연산부들(822, 824, 및 826)의 영상 데이터의 처리 단위가 max_width/N일 수 있다.
영상 데이터의 크기 M2가 복수 개의 신경망 연산부들(822, 824, 및 826) 전체의 영상 데이터 처리량인 max_width보다 작으나, (max_width/N)*(N-1)보다는 큰 경우, 입력 영상 제어부(812)는 영상 데이터를 N개로 분할할 수 있다. 이 때, N번째의 영상 데이터의 크기는 다른 영상 데이터의 크기보다 작을 수 있다. 이에, N번째의 영상 데이터를 처리하는 제N 신경망 연산부(826)의 연산 시간은 타 신경망 연산부들의 연산 시간보다 짧을 수 있다. 이 경우, N번째의 영상 데이터를 처리하는 제N 신경망 연산부(826)는 자신에게 할당된 영상 데이터를 먼저 처리하고, 타 신경망 연산부들(822, 824)이 영상 데이터를 처리하는 동안에 대기할 수 있고, 또는 영상 데이터의 처리 후 유휴시간 동안 다른 작업을 수행할 수도 있다.
또 다른 예로, 도 11에서는, 영상 데이터의 크기가 M3이고, 복수 개의 신경망 연산부들(822, 824, 및 826)의 영상 데이터의 처리 단위는 max_width/N일 수 있다. 이 경우, 영상 데이터의 크기 M3는 복수 개의 신경망 연산부들(822, 824, 및 826) 중 일부 신경망 연산부(822,824)의 영상 데이터 처리 단위보다 적을 수 있다. 입력 영상 제어부(812)는 최소 개수의 신경망 연산부만을 이용하여 영상 데이터를 처리하도록, 영상 데이터를 영상 데이터 처리 단위로 분할할 수 있다. 예로, 도 11에서 입력 영상 제어부(812)는 일부 신경망 연산부(822,824)만 이용할 수 있도록 영상 데이터를 두 개로 분할 수 있다.
도 11에서, 영상 입력 제어부(812)는 복수 개의 신경망 연산부들(822, 824, 및 826) 중 영상 데이터에 대한 신경망 연산 처리를 수행하지 않는 제N 신경망 연산부(826)는 비활성화시킬 수 있다. 이 때, 신경망 연산부를 비활성화시킨다는 것은, 신경망 연산부에 전원이 인가되지 않도록 오프시키거나, 활성화 신호(enable signal, trigger signal 등)를 인가하지 않거나, 클럭 주파수를 인가하지 않거나, 대기 상태 또는 슬립 모드로 전환시키는 것을 포함할 수 있다. 영상 데이터의 처리를 수행하지 않는 신경망 연산부가 비활성화되면, AI 프로세서(400)의 전력 소모가 크게 절감될 수 있다.
다시, 도 8을 참조하면, 복수 개의 신경망 연산부들(822, 824, 및 826) 중 적어도 하나의 신경망 연산부에 의하여 신경망 연산이 수행되면, 출력 데이터 제어부(842)는 신경망 연산을 수행한 적어도 하나의 신경망 연산부 각각으로부터 연산 결과인 업스케일링된 분할 데이터들을 취합할 수 있다. 업스케일링된 분할 데이터들이 취합되면, 출력 데이터 제어부(842)는 출력 데이터(802)로서 업스케일링된 영상 데이터를 출력할 수 있다.
다른 실시예로, 입력 데이터 제어부(812)는 영상의 크기를 복수 개의 신경망 연산부들(822, 824, 및 826)의 개수에 기반하여 영상 데이터를 분할할 수 있다. 그리고 분할된 영상 데이터인 서브 영상 데이터들 각각을 복수 개의 신경망 연산부들(822, 824, 및 826) 각각으로 전달할 수 있다. 예로, 입력 영상의 영상 데이터의 크기가 M4이고, 복수 개의 신경망 연산부들(822, 824, 및 826)의 개수가 N개인 경우, 입력 데이터 제어부(812)는 입력 영상의 영상 데이터를 M4/N의 동일한 크기의 N개의 서브 영상 데이터들로 분할 수 있다. 입력 데이터 제어부(812)는 N개로 분할된 영상 데이터들 각각을 복수 개의 신경망 연산부들(822, 824, 및 826) 각각으로 전달할 수 있다. 복수 개의 신경망 연산부들(822, 824, 및 826) 각각은 동일한 크기의 영상 데이터를 대상으로 신경망 연산을 수행할 수 있다. 복수 개의 신경망 연산부들(822, 824, 및 826) 각각은 분할된 영상 데이터에 대하여 AI 업스케일 처리를 수행하여 업스케일링 영상 데이터를 출력할 수 있다.
다른 실시예로, AI 프로세서(400)는 AI 프로세서(400)의 동작 속도인 클럭 주파수에 기반하여 운영될 수 있다. AI 프로세서(400)는 특정 클럭 주파수를 AI 프로세서(400)를 구성하는 각 모듈에 대하여 공통적으로 이용하거나 또는 모듈 별로 서로 다른 클럭 주파수를 이용할 수도 있다. 클럭 주파수는 예로, 100MHz 내지 800MHz 사이 중 하나 이상의 값이 될 수 있으나, 전술한 범위에 제한되지 않는다.
이 경우, AI 프로세서(400)는 영상의 크기에 기반하여 복수 개의 신경망 연산부들(822, 824, 및 826)의 클럭 주파수의 속도를 변환할 수 있다. 예로, 영상의 크기가 작은 경우, 복수 개의 신경망 연산부들(822, 824, 및 826)은 낮은 속도의 클럭 주파수를 이용하여 신경망 연산을 수행할 수 있다. 반면에, 영상의 크기가 큰 경우, 복수 개의 신경망 연산부들(822, 824, 및 826)은 높은 속도의 클럭 주파수를 이용하여 신경망 연산을 수행할 수 있다. 본 실시예에 따르면, AI 프로세서(400)는 신경망 연산부들(822, 824, 및 826)의 클럭 주파수를 입력 영상의 크기에 따라 조절하여, 입력 영상의 크기가 작은 경우 전력 소모를 감소시킬 수 있는 효과가 있다.
다른 실시예로, AI 프로세서(400)는 영상 데이터의 신경망 연산 요구되는 예상 전력 소모량에 기반하여, 복수 개의 신경망 연산부들(822, 824, 및 826)의 데이터 처리 능력에 기반하여 영상 데이터를 분할할지 또는 복수 개의 신경망 연산부들(822, 824, 및 826)의 개수에 기반하여 상기 영상 데이터를 분할할지 결정할 수 있다. 예로, 복수 개의 신경망 연산부들(822, 824, 및 826)에 소모되는 전력에는 클럭 주파수가 인가된 상태에서 소모되는 다이나믹(dynamic) 전력과, 클럭 주파수가 인가되지 않은 상태에서 소모되는 스태틱(static) 전력이 존재할 수 있다. 스태틱 파워는, 클럭 주파수가 인가되지 않은 상황에서도 AI 프로세서(400)가 캐패시턴스 역할을 수행함에 따라 누설되는 누설(leakage) 전력을 의미할 수 있다.
이 경우, AI 프로세서(400)는 입력 영상의 영상 데이터의 크기 및 복수 개의 신경망 연산부들(822, 824, 및 826)의 데이터 처리 능력에 기반하여 영상 데이터를 처리하는 상황에서 일부 신경망 연산부를 오프시켜서 스태틱 전력 자체를 줄이는 정책과, 영상 데이터에 크기 및 복수 개의 신경망 연산부들(822, 824, 및 826)의 개수에 기반하여 영상 데이터를 처리하는 상황에서 클럭 주파수를 변경하여 다이나믹 전력을 줄이는 정책 중에서 어느 정책이 더 전력 소모에 효과적인지 예측할 수 있다. 예를 들면, AI 프로세서(400)는 소비 전력 중 스태틱 파워의 기여도가 높은 경우 일부 신경망 연산부를 오프시키는 정책을 선택하고, 스태틱 파워의 기여도가 낮은 경우 클럭 주파수를 변경하여 다이나믹 전력을 줄이는 정책을 선택할 수 있다. 다른 예로서, AI 프로세서(400)는 입력 영상의 영상 데이터 크기가 소정 크기 이하인 경우 일부 신경망 연산부를 오프시키는 정책을 선택하고, 영상 데이터 크기가 소정 크기를 초과하는 경우 클럭 주파수를 변경하는 정책을 선택할 수 있다. AI 프로세서(400)는 클럭 주파수, 전압, 전류, 칩 셀의 크기, 칩 셀의 특성 중 적어도 하나에 기반하여 정책을 결정할 수 있으며, 전력 소모에 효과적인 정책이 결정되면, AI 프로세서(400)는 결정된 정책에 따라 복수 개의 신경망 연산부들(822, 824, 및 826) 중 적어도 하나를 이용하여 영상 데이터에 대한 신경망 연산을 수행할 수 있다.
도 12는 본 개시의 일 실시예에 따른 AI 프로세서의 신경망 연산 수행 방법을 설명하는 흐름도이다.
본 개시의 신경망 연산 수행 방법의 각 단계들은 프로세서 및 메모리를 구비하고, 인공 신경망 모델을 이용하는 다양한 형태의 전자 장치에 의해 수행될 수 있다. 본 명세서는 본 개시의 실시예들에 따른 AI 프로세서(400)를 포함하는 장치가 신경망 연산 방법을 수행하는 실시예를 중심으로 설명한다. 따라서 AI 프로세서(400)에 대해 설명된 실시예들은 신경망 연산 수행 방법에 대한 실시예들에 적용 가능하고, 반대로 신경망 연산 수행 방법에 대해 설명된 실시예들은 AI 프로세서(400)에 대한 실시예들에 적용 가능하다. 개시된 실시예들에 따른 신경망 연산 수행 방법은 본 명세서에 개시된 AI 프로세서(400)에 의해 수행되는 것으로 그 실시예가 한정되지 않고, 다양한 형태의 전자 장치에 의해 수행될 수 있다.
도 12의 1201에서, AI 프로세서(400)는 입력 영상에 대한 영상 데이터를 입력 받아 적어도 하나의 메모리에 저장한다.
도 12의 1203에서, AI 프로세서(400)는 영상의 크기 및 복수 개의 신경망 연산부들의 데이터 처리 능력에 기반하여 메모리에 저장된 영상 데이터를 분할한다. 예로, AI 프로세서(400)는 영상의 가로 크기 및 복수 개의 신경망 연산부들의 데이터 처리 단위에 기반하여 영상 데이터를 분할할 수 있다.
도 12의 1205에서, AI 프로세서(400)는 분할된 영상 데이터를 대상으로 복수 개의 신경망 연산부들 중 적어도 일부 신경망 연산부들을 통해 신경망 연산을 수행한다. AI 프로세서(400)는 실시예에 따라 복수 개의 신경망 연산부들 중 일부 또는 전부를 이용할 수 있다. 또한, AI 프로세서(400)는 실시예에 따라 이용되는 신경망 연산부들의 개수를 조절할 수 있다. 이 경우, AI 프로세서(400)는 복수 개의 신경망 연산부들 중에서, 분할된 영상 데이터에 대한 신경망 연산 처리를 수행하지 않는 다른 일부 신경망 연산부들은 비활성화시킬 수 있다.
도 12의 1207에서, AI 프로세서(400)는 일부 신경망 연산부들을 통한 신경망 연산의 수행 결과로서 업스케일링된 영상 데이터를 출력한다.
다른 실시예로, AI 프로세서(400)는 영상의 크기 및 복수 개의 신경망 연산부들의 개수에 기반하여 영상 데이터를 분할할 수 있다. AI 프로세서(400)는 분할된 영상 데이터를 대상으로 복수 개의 신경망 연산부들을 통해 신경망 연산을 수행할 수 있다. 이 경우, AI 프로세서(400)는 영상의 크기에 기반하여, 복수 개의 신경망 연산부들의 클럭 주파수의 속도를 변환할 수 있다.
다른 실시예로, AI 프로세서(400)는 영상 데이터의 신경망 연산에 요구되는 예상 전략 소모량에 기반하여, 복수 개의 신경망 연산부들의 데이터 처리 능력에 기반하여 영상 데이터를 분할할지 또는 복수 개의 신경망 연산부들의 개수에 기반하여 영상 데이터를 분할할지 결정할 수도 있다.
한편, 상술한 본 개시의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램 또는 인스트럭션으로 작성가능하고, 작성된 프로그램 또는 인스트럭션은 매체에 저장될 수 있다.
매체는 컴퓨터로 실행 가능한 프로그램 또는 인스트럭션을 계속 저장하거나, 실행 또는 다운로드를 위해 임시 저장하는 것일 수도 있다. 또한, 매체는 단일 또는 수개 하드웨어가 결합된 형태의 다양한 기록수단 또는 저장수단일 수 있는데, 어떤 컴퓨터 시스템에 직접 접속되는 매체에 한정되지 않고, 네트워크 상에 분산 존재하는 것일 수도 있다. 매체의 예시로는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등을 포함하여 프로그램 명령어가 저장되도록 구성된 것이 있을 수 있다. 또한, 다른 매체의 예시로, 애플리케이션을 유통하는 앱 스토어나 기타 다양한 소프트웨어를 공급 내지 유통하는 사이트, 서버 등에서 관리하는 기록매체 내지 저장매체도 들 수 있다.
한편, 상술한 신경망 모델은, 소프트웨어 모듈로 구현될 수 있다. 소프트웨어 모듈(예를 들어, 명령어(instruction)를 포함하는 프로그램 모듈)로 구현되는 경우, DNN 모델은 컴퓨터로 읽을 수 있는 판독 가능한 기록매체에 저장될 수 있다. 또한, 신경망 모델은 하드웨어 칩 형태로 집적되어 전술한 AI 복호화 장치(200) 또는 디스플레이 장치(300)의 일부가 될 수도 있다. 예를 들어, 신경망 모델은 인공 지능을 위한 전용 하드웨어 칩 형태로 제작될 수도 있고, 또는 기존의 범용 프로세서(예를 들어, CPU 또는 애플리케이션 프로세서) 또는 그래픽 전용 프로세서(예를 들어, GPU)의 일부로 제작될 수도 있다.
또한, 신경망 모델은 다운로드 가능한 소프트웨어 형태로 제공될 수도 있다. 컴퓨터 프로그램 제품은 제조사 또는 전자 마켓을 통해 전자적으로 배포되는 소프트웨어 프로그램 형태의 상품(예를 들어, 다운로드 가능한 애플리케이션)을 포함할 수 있다. 전자적 배포를 위하여, 소프트웨어 프로그램의 적어도 일부는 저장 매체에 저장되거나, 임시적으로 생성될 수 있다. 이 경우, 저장 매체는 제조사 또는 전자 마켓의 서버, 또는 중계 서버의 저장매체가 될 수 있다.
이상, 본 개시의 기술적 사상을 바람직한 실시예를 들어 상세하게 설명하였으나, 본 개시의 기술적 사상은 상기 실시예들에 한정되지 않고, 본 개시의 기술적 사상의 범위 내에서 당 분야에서 통상의 지식을 가진 자에 의하여 여러가지 변형 및 변경이 가능하다.
200: AI 복호화 장치 300: 디스플레이 장치
400: AI 프로세서 410: 제어부
420: 연산부 430: 메모리

Claims (20)

  1. AI 프로세서 있어서,
    적어도 하나의 메모리;
    영상을 처리하는 복수 개의 신경망 연산부들; 및
    상기 적어도 하나의 메모리 및 상기 복수 개의 신경망 연산부들을 제어하는 제어부를 포함하고,
    상기 제어부는, 입력된 영상 데이터가 상기 적어도 하나의 메모리에 저장되도록 제어하고,
    상기 영상의 크기 및 상기 복수 개의 신경망 연산부들의 데이터 처리 능력에 기반하여 분할된 영상 데이터를 대상으로 상기 복수 개의 신경망 연산부들 중 일부 신경망 연산부들을 통해 신경망 연산을 수행하여 업스케일링된 영상 데이터를 출력하도록 제어하는 것을 특징으로 하는,
    AI 프로세서.
  2. 제1항에 있어서,
    상기 제어부는,
    상기 복수 개의 신경망 연산부들 중에서, 상기 분할 영상 데이터를 대상으로 신경망 연산 처리를 수행하지 않는 다른 일부 신경망 연산부들은 비활성화시키는,
    AI 프로세서.
  3. 제1항에 있어서,
    상기 제어부는,
    상기 영상의 가로 크기 및 상기 복수 개의 신경망 연산부들의 데이터 처리 단위에 기반하여 상기 영상 데이터를 분할하는,
    AI 프로세서.
  4. 제1항에 있어서,
    상기 적어도 하나의 메모리는,
    상기 복수 개의 신경망 연산부들 각각에 대응되는 복수 개의 N라인 메모리들을 포함하며,
    상기 복수 개의 N라인 메모리들은, 상기 복수 개의 신경망 연산부들의 신경망 연산에 필요한 연산 값, 연산의 중간 값 또는 최종 값 중 적어도 하나를 포함하는,
    AI 프로세서.
  5. 제1항에 있어서,
    상기 제어부는,
    상기 영상의 크기 및 상기 복수 개의 신경망 연산부들의 개수에 기반하여 분할된 상기 영상 데이터를 대상으로 상기 복수 개의 신경망 연산부들을 통하여 신경망 연산을 수행하여 업스케일링된 영상 데이터를 출력하도록 제어하는 것을 특징으로 하는,
    AI 프로세서.
  6. 제5항에 있어서,
    상기 제어부는,
    상기 영상의 크기에 기반하여, 상기 복수 개의 신경망 연산부들의 클럭 주파수의 속도를 변환하는 것을 특징으로 하는,
    AI 프로세서.
  7. 제5항에 있어서,
    상기 제어부는,
    상기 영상 데이터의 신경망 연산에 요구되는 예상 전략 소모량에 기반하여, 상기 복수 개의 신경망 연산부들의 상기 데이터 처리 능력에 기반하여 상기 영상 데이터를 분할할지 또는 상기 복수 개의 신경망 연산부들의 개수에 기반하여 상기 영상 데이터를 분할할지 결정하는 것을 특징으로 하는,
    AI 프로세서.
  8. 제1항에 있어서,
    상기 복수 개의 신경망 연산부들은,
    컨벌루션 신경망 연산, 비선형 연산 및 업스케일러 연산을 수행하는,
    AI 프로세서.
  9. 제1항에 있어서,
    상기 영상 데이터는 AI 다운스케일을 위한 AI와 AI 업스케일을 위한 AI 간에 연계된 훈련에 기반한 연계 데이터를 포함하는,
    AI 프로세서.
  10. 제1항에 있어서,
    상기 제어부는,
    상기 영상의 프레임에 대응되는 파라미터를 획득하여, 상기 복수 개의 신경망 연산부들 각각에 대응되는 레지스터들에 등록하는,
    AI 프로세서.
  11. 제1항에 있어서,
    상기 복수 개의 신경망 연산부들은,
    상기 영상의 프레임 별로 서로 다른 파라미터를 적용하여, 상기 영상 데이터를 대상으로 신경망 연산을 수행하는,
    AI 프로세서.
  12. 제1항에 있어서,
    상기 영상 데이터는,
    상기 영상이 프레임인 경우, 상기 프레임의 1라인의 픽셀에 대응되는 영상 데이터를 포함하는,
    AI 프로세서.
  13. AI 프로세서가 신경망 연산을 수행하는 방법에 있어서,
    영상에 대한 영상 데이터를 입력 받아 적어도 하나의 메모리에 저장하는 동작;
    상기 영상의 크기 및 복수 개의 신경망 연산부들의 데이터 처리 능력에 기반하여 상기 메모리에 저장된 영상 데이터를 분할하는 동작;
    상기 분할된 영상 데이터를 대상으로 상기 복수 개의 신경망 연산부들 중 일부 신경망 연산부들을 통해 신경망 연산을 수행하는 동작; 및
    상기 일부 신경망 연산들을 통한 신경망 연산의 수행 결과로서 업스케일링된 영상 데이터를 출력하는 동작을 포함하는,
    신경망 연산 수행 방법.
  14. 제13항 있어서,
    상기 방법은,
    상기 복수 개의 신경망 연산부들 중에서, 상기 분할된 영상 데이터를 대상으로 신경망 연산 처리를 수행하지 않는 다른 일부 신경망 연산부들은 비활성화시키는 동작을 더 포함하는,
    신경망 연산 수행 방법.
  15. 제13항에 있어서,
    상기 메모리에 저장된 영상 데이터를 분할하는 동작은,
    상기 영상의 가로 크기 및 상기 복수 개의 신경망 연산부들의 데이터 처리 단위에 기반하여 상기 영상 데이터를 분할하는,
    신경망 연산 수행 방법.
  16. 제13항에 있어서,
    상기 방법은,
    상기 영상의 크기 및 상기 복수 개의 신경망 연산부들의 개수에 기반하여 상기 영상 데이터를 분할하는 동작; 및
    상기 분할된 영상 데이터를 대상으로 상기 복수 개의 신경망 연산부들을 통해 신경망 연산을 수행하는 동작을 더 포함하는,
    신경망 연산 수행 방법.
  17. 제16항에 있어서,
    상기 방법은,
    상기 영상의 크기에 기반하여, 상기 복수 개의 신경망 연산부들의 클럭 주파수의 속도를 변환하는 동작을 더 포함하는,
    신경망 연산 수행 방법.
  18. 제16항에 있어서,
    상기 방법은,
    상기 영상 데이터의 신경망 연산에 요구되는 예상 전략 소모량에 기반하여, 상기 복수 개의 신경망 연산부들의 상기 데이터 처리 능력에 기반하여 상기 영상 데이터를 분할할지 또는 상기 복수 개의 신경망 연산부들의 개수에 기반하여 상기 영상 데이터를 분할할지 결정하는 동작을 더 포함하는,
    신경망 연산 수행 방법.
  19. 제13항에 있어서,
    상기 복수 개의 신경망 연산부들은,
    컨벌루션 신경망 연산, 비선형 연산 및 업스케일러 연산을 수행하는,
    신경망 연산 수행 방법.
  20. 제1항에 있어서,
    상기 영상 데이터는 AI 다운스케일을 위한 AI와 AI 업스케일을 위한 AI 간에 연계된 훈련에 기반한 연계 데이터를 포함하는,
    AI 프로세서.
KR1020190081524A 2019-07-05 2019-07-05 Ai 프로세서 및 이의 신경망 연산 수행 방법 KR20210004702A (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020190081524A KR20210004702A (ko) 2019-07-05 2019-07-05 Ai 프로세서 및 이의 신경망 연산 수행 방법
PCT/KR2020/007185 WO2021006484A1 (en) 2019-07-05 2020-06-03 Artificial intelligence processor and method of performing neural network operation thereof
US16/892,357 US11495037B2 (en) 2019-07-05 2020-06-04 Artificial intelligence processor and method of performing neural network operation thereof
EP20182359.8A EP3767477B1 (en) 2019-07-05 2020-06-25 Artificial intelligence processor and method of performing neural network operation thereof
CN202010600420.9A CN112183736B (zh) 2019-07-05 2020-06-28 人工智能处理器及其执行神经网络运算的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190081524A KR20210004702A (ko) 2019-07-05 2019-07-05 Ai 프로세서 및 이의 신경망 연산 수행 방법

Publications (1)

Publication Number Publication Date
KR20210004702A true KR20210004702A (ko) 2021-01-13

Family

ID=71170339

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190081524A KR20210004702A (ko) 2019-07-05 2019-07-05 Ai 프로세서 및 이의 신경망 연산 수행 방법

Country Status (4)

Country Link
US (1) US11495037B2 (ko)
EP (1) EP3767477B1 (ko)
KR (1) KR20210004702A (ko)
WO (1) WO2021006484A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113010119B (zh) * 2021-04-27 2022-09-30 宏图智能物流股份有限公司 一种通过主备方式实现语音数据分布式存储的方法
CN116897537A (zh) * 2022-02-08 2023-10-17 辉达公司 使用神经网络的图像生成
CN117077161B (zh) * 2023-07-31 2024-05-03 上海交通大学 基于动态规划求解的隐私保护深度模型构建方法与系统

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008143157A1 (ja) * 2007-05-17 2008-11-27 Sony Corporation 情報処理装置および方法
KR101499498B1 (ko) 2008-10-08 2015-03-06 삼성전자주식회사 초고해상도 비디오 처리 장치 및 방법
KR102166335B1 (ko) * 2013-04-19 2020-10-15 삼성전자주식회사 Sao 파라미터를 시그널링하는 비디오 부호화 방법 및 그 장치, 비디오 복호화 방법 및 그 장치
US10055434B2 (en) * 2013-10-16 2018-08-21 University Of Tennessee Research Foundation Method and apparatus for providing random selection and long-term potentiation and depression in an artificial network
GB2548749B (en) 2015-02-19 2017-12-13 Magic Pony Tech Limited Online training of hierarchical algorithms
EP3259920A1 (en) * 2015-02-19 2017-12-27 Magic Pony Technology Limited Visual processing using temporal and spatial interpolation
US10474627B2 (en) 2015-10-08 2019-11-12 Via Alliance Semiconductor Co., Ltd. Neural network unit with neural memory and array of neural processing units that collectively shift row of data received from neural memory
KR101974261B1 (ko) * 2016-06-24 2019-04-30 한국과학기술원 Cnn 기반 인루프 필터를 포함하는 부호화 방법과 장치 및 복호화 방법과 장치
US10546211B2 (en) * 2016-07-01 2020-01-28 Google Llc Convolutional neural network on programmable two dimensional image processor
CN109997168B (zh) * 2017-02-24 2023-09-12 渊慧科技有限公司 用于生成输出图像的方法和系统
KR20180100976A (ko) 2017-03-03 2018-09-12 한국전자통신연구원 딥 신경망 기반 블러 영상 학습을 이용한 영상 부호화/복호화 방법 및 장치
WO2018189613A1 (ja) 2017-04-11 2018-10-18 株式会社半導体エネルギー研究所 半導体装置、撮像装置及び表示システム
US11775313B2 (en) 2017-05-26 2023-10-03 Purdue Research Foundation Hardware accelerator for convolutional neural networks and method of operation thereof
KR102285737B1 (ko) 2017-07-06 2021-08-05 삼성전자주식회사 영상을 부호화/복호화 하는 방법 및 그 장치
CN107992486A (zh) 2017-10-30 2018-05-04 上海寒武纪信息科技有限公司 一种信息处理方法及相关产品
CN110087084B (zh) * 2018-01-25 2022-03-18 联咏科技股份有限公司 视频处理装置及视频处理方法

Also Published As

Publication number Publication date
EP3767477B1 (en) 2023-12-27
WO2021006484A1 (en) 2021-01-14
US20210004653A1 (en) 2021-01-07
EP3767477C0 (en) 2023-12-27
EP3767477A1 (en) 2021-01-20
CN112183736A (zh) 2021-01-05
US11495037B2 (en) 2022-11-08

Similar Documents

Publication Publication Date Title
US11495037B2 (en) Artificial intelligence processor and method of performing neural network operation thereof
US9734557B2 (en) Method and apparatus for generating 3K-resolution display image for mobile terminal screen
CN112889283A (zh) 编码方法及其设备以及解码方法及其设备
TWI733986B (zh) 用以編碼和解碼視頻資料之方法、設備及系統
KR102500761B1 (ko) 영상의 ai 부호화 및 ai 복호화 방법, 및 장치
TW201424397A (zh) 可調式視訊解碼、編碼方法及其裝置與非暫時性電腦可讀記錄體
CN103596008A (zh) 编码器及编码方法
US10999599B2 (en) System and method for non-uniform video coding
KR20200084516A (ko) 디스플레이장치, 영상공급장치, 및 그 제어방법
GB2504068A (en) Independently Decodable Enhancement Layers in Block-Based Scalable Video Coding Based on RoI Base Layer Blocks
CN112715029A (zh) Ai编码设备及其操作方法和ai解码设备及其操作方法
US11270469B2 (en) Method and apparatus for performing artificial intelligence encoding and artificial intelligence decoding
US11825157B2 (en) Display apparatus and operating method thereof
CN112183736B (zh) 人工智能处理器及其执行神经网络运算的方法
JP2010206847A (ja) 画像処理装置
WO2023092404A1 (zh) 视频编解码方法、设备、系统、及存储介质
EP3026913A1 (en) Scalable encoding and decoding methods and corresponding devices with combined intraprediction and interlayer prediction
KR20240002346A (ko) Ai 부호화/복호화를 이용하여 영상을 처리하는 전자 장치 및 그 제어 방법
KR20240005485A (ko) Ai 부호화/복호화를 이용하여 영상을 처리하는 전자 장치 및 그 제어 방법
CN117241054A (zh) 跨网直播系统、方法、电子设备及存储介质
WO2023059689A1 (en) Systems and methods for predictive coding
JP2009033763A (ja) 画像処理装置

Legal Events

Date Code Title Description
A201 Request for examination