KR20180075220A - 멀티미디어 신호의 프로세싱 방법, 장치 및 시스템 - Google Patents

멀티미디어 신호의 프로세싱 방법, 장치 및 시스템 Download PDF

Info

Publication number
KR20180075220A
KR20180075220A KR1020160179310A KR20160179310A KR20180075220A KR 20180075220 A KR20180075220 A KR 20180075220A KR 1020160179310 A KR1020160179310 A KR 1020160179310A KR 20160179310 A KR20160179310 A KR 20160179310A KR 20180075220 A KR20180075220 A KR 20180075220A
Authority
KR
South Korea
Prior art keywords
kernel
multimedia signal
processing
processor
patterned
Prior art date
Application number
KR1020160179310A
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 KR1020160179310A priority Critical patent/KR20180075220A/ko
Priority to PCT/KR2017/015188 priority patent/WO2018124624A1/en
Priority to EP17887811.2A priority patent/EP3529776B1/en
Priority to US15/854,568 priority patent/US10963728B2/en
Publication of KR20180075220A publication Critical patent/KR20180075220A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/20Image enhancement or restoration using local operators
    • 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/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/003Navigation within 3D models or images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/60Image enhancement or restoration using machine learning, e.g. neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/44Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
    • G06V10/443Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components by matching or filtering
    • G06V10/449Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters
    • G06V10/451Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters with interaction between the filter responses, e.g. cortical complex cells
    • G06V10/454Integrating the filters into a hierarchical structure, e.g. convolutional neural networks [CNN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/50Extraction of image or video features by performing operations within image blocks; by using histograms, e.g. histogram of oriented gradients [HoG]; by summing image-intensity values; Projection analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/04Indexing scheme for image data processing or generation, in general involving 3D image data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • 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/20021Dividing image into blocks, subimages or windows
    • 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)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Biodiversity & Conservation Biology (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • Image Processing (AREA)

Abstract

멀티미디어 신호의 프로세싱 방법에 있어서, 멀티미디어 신호를 획득하는 단계; 획득된 멀티미디어 신호의 프로세싱을 위해 이용되는 적어도 하나의 커널을 결정하는 단계; 획득된 커널의 구조에 따라 커널의 근사화를 수행하는 단계; 및 근사화된 커널을 이용하여 획득된 멀티미디어 신호의 프로세싱을 수행하는 단계를 포함하는 이미지 프로세싱 방법이 개시된다.

Description

멀티미디어 신호의 프로세싱 방법, 장치 및 시스템{Method, Device and System for Processing of Multimedia signal}
본 발명은 멀티미디어 신호를 프로세싱 하는 방법, 장치 및 시스템에 관한 것이다.
디바이스의 성능의 뛰어난 발전으로 인해 다양한 디바이스를 이용하여 사용자에게 3차원 입체 영상 및 가상 현실과 같은 새로운 멀티미디어를 제공할 수 있게 되었다.
일반적으로, 3차원 입체 영상 및 가상 현실과 같은 새로운 멀티미디어는 기존의 멀티미디어 신호의 프로세싱을 기반으로 생성된다. 멀티미디어 신호의 프로세싱이라 함은, 멀티미디어 신호의 필터링을 의미할 수 있다. 즉, 멀티미디어의 신호의 프로세싱이라 함은 소정의 연산을 통해 멀티미디어의 신호의 특징을 추출하거나, 멀티미디어 신호를 분류하거나, 멀티미디어 신호를 변환하는 등을 의미할 수 있다.
특히, 최근에는 급속도로 발전하고 있는 학습이 가능한 인공지능(Artificial Intelligence) 분야에서 사용되는 뉴럴 네트워크(Neural Network)를 통해 멀티미디어 신호를 프로세싱하는 방법을 사용하고 있다. 뉴럴 네트워크는 인간의 신경망과 유사한 구조로 가지는 네트워크로써, 입력된 신호를 복수의 계층을 통해 연산하고, 연산된 결과 값들에 기초하여 학습을 수행하며, 학습 결과에 따라 오차 범위를 줄임으로써, 빠르고 다양한 형태의 멀티미디어 프로세싱이 가능하게 되었다.
다만, 뉴럴 네트워크를 통한 멀티미디어 신호의 프로세싱은 전력 소모가 크고 메모리 사용 횟수가 빈번하여 웨어러블 디바이스 같은 소형화된 디바이스에서 사용하기 어렵다는 문제점이 존재한다.
본 발명에서는 전력 소모가 적고, 메모리 사용 효율이 좋은 멀티미디어 신호의 프로세싱 방법을 제공하고자 한다.
상기와 같은 종래 기술의 문제를 해결하기 위한 일부 실시예는, 멀티미디어 신호의 프로세싱 방법에 있어서, 멀티미디어 신호를 획득하는 단계; 상기 획득된 멀티미디어 신호의 프로세싱을 위해 이용되는 적어도 하나의 커널을 결정하는 단계; 상기 획득된 커널의 구조에 따라 커널의 근사화를 수행하는 단계; 및 상기 근사화된 커널을 이용하여 상기 획득된 멀티미디어 신호의 프로세싱을 수행하는 단계를 포함할 수 있다.
상기 커널을 근사화하는 단계는, 상기 획득된 커널의 구조에 따라 적어도 하나의 미니 커널로 분할하는 단계를 포함하며, 상기 분할하는 단계는, 상기 획득된 커널 내의 공간적 연결성에 기초하여 상기 획득된 커널의 내부의 패턴 타입 및 패턴 위치를 판단하는 단계; 및상기 판단 결과에 기초하여 상기 획득된 커널을 적어도 하나의 미니 커널로 분할하는 단계를 포함할 수 있다.
상기 분할하는 단계는, 상기 분할된 적어도 하나의 미니 커널 각각을 패턴화된 커널 및 가중치로 변환할 수 있다.
상기 프로세싱을 수행하는 단계는, 상기 멀티미디어 신호에 상기 각각의 패턴화된 커널 및 가중치를 적용하는 단계; 및 상기 각각의 패턴화된 커널 및 가중치가 적용된 결과 값을 합산하는 단계를 더 포함할 수 있다.
상기 방법은, 상기 획득한 멀티미디어 신호에 커널이 포함할 수 있는 적어도 하나의 패턴 타입 각각을 적용한 복수의 결과 배열들을 포함하는 부분 합 테이블을 생성하는 단계를 더 포함할 수 있다.
상기 멀티미디어 신호의 프로세싱을 수행하는 방법은, 상기 패턴화된 커널의 패턴 타입에 기초하여, 상기 부분 합 테이블 내의 복수의 결과 배열들을 선택하는 단계; 및 상기 선택된 복수의 결과 배열들에 기초하여 프로세싱을 수행하는 단계를 포함할 수 있다.
상기 선택된 복수의 결과 배열에 기초하여 프로세싱을 수행하는 단계는, 상기 패턴화된 커널 각각과 대응하는 가중치를 상기 선택된 배열들 각각에 적용하는 단계; 및 상기 가중치가 적용된 복수의 배열들을 합산하는 단계를 포함할 수 있다.
상기 부분 합 테이블 내의 적어도 하나의 배열을 선택하는 단계는, 상기 적어도 하나의 분할된 커널 내의 패턴 위치에 기초하여 상기 선택된 복수의 배열 내의 일부 또는 전부의 값을 선택하는 단계를 더 포함할 수 있다.
상기 방법은, 상기 프로세싱된 멀티미디어 신호로부터 특징을 추출하는 단계를 더 포함하고, 상기 커널은 상기 멀티미디어 신호에 추출하고자 하는 특징에 기초하여 결정될 수 있다.
상기 결정하는 단계는, 상기 획득된 커널과 상기 미니 커널들의 합의 차이가 최소화되도록 패턴 타입 및 패턴 위치를 결정할 수 있다.
상기 프로세싱 하는 단계는, 상기 멀티미디어 신호 및 상기 근사화된 커널을 이용하여 소정의 연산을 수행하는 단계를 포함할 수 있다.
상기 프로세싱 하는 단계는, 추가적인 커널을 이용하여 상기 프로세싱된 멀티미디어 신호에 추가적인 프로세싱을 수행하는 단계; 및 상기 획득된 커널 이외의 커널을 이용하여 병렬적으로 상기 멀티미디어 신호의 프로세싱을 수행하는 단계를 더 포함할 수 있다.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로써, 본 개시의 일부 실시예는 상기 방법을 구현하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다.
상기와 같은 종래 기술의 문제를 해결하기 위한 일부 실시예는, 멀티미디어 신호의 프로세싱 장치에 있어서, 멀티미디어 신호를 획득하는 신호 획득부; 및 기 획득된 멀티미디어 신호의 프로세싱을 위해 이용되는 적어도 하나의 커널을 결정하고, 상기 획득된 커널의 구조에 따라 커널의 근사화를 수행하며, 상기 근사화된 커널을 이용하여 상기 획득된 멀티미디어 신호의 프로세싱을 수행하는 프로세서를 포함할 수 있다.
본 발명에서는 전력 소모가 적고, 메모리 사용 효율이 좋은 멀티미디어 신호의 프로세싱 방법을 제공한다.
도 1은 멀티미디어 신호의 프로세싱을 설명하기 위한 도면이다.
도 2 및 도 3은 뉴럴 네트워크를 통한 멀티미디어 신호의 프로세싱 시스템에 대해 도시한다.
도 4는 일부 실시예에 멀티미디어 신호의 프로세싱 방법의 순서도를 도시한다.
도 5는 일부 실시예에 따른 커널의 패턴 타입 및 패턴 위치를 설명하기 위한 도면이다.
도 6은 일부 실시예에 따른 근사화한 커널을 이용한 멀티미디어 프로세싱 방법의 순서도이다.
도 7은 일부 실시예에 따른 부분 합 테이블을 생성하는 방법을 도시한다.
도 8 내지 도 11은 근사화한 커널을 이용한 따른 멀티미디어 신호 프로세싱 방법과 컨볼루션 방식의 멀티미디어 신호 프로세싱 방법을 설명하기 위한 도면이다.
도 12 및 도 13은 일부 실시예에 따른 커널 근사화를 도식적으로 표현한 도면이다.
도 14는 일부 실시예에 따른 3차원 커널의 근사화를 설명하기 위한 도면이다.
도 15는 일부 실시예에 따른 멀티미디어 신호를 프로세싱 하는 디바이스의 블록도이다.
도 16은 일부 실시예에 따른 멀티미디어 신호를 프로세싱 하는 디바이스의 프로세서의 구조를 도시한다.
도 17은 일부 실시예에 따른 멀티미디어 신호를 프로세싱 하는 디바이스의 세부 블록도이다.
본 발명에서 사용되는 용어는 본 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 발명에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 발명의 전반에 걸친 내용을 토대로 정의되어야 한다.
어떤 부분이 다른 부분과 연결되어 있다고 할 때, 이는 직접적으로 연결되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 전기적으로 연결되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 포함한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서에 기재된 "...부", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 프로세싱하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.
명세서 전체에서 장치 또는 디바이스라 함은, 퍼스널 컴퓨터(Personal Computer), 휴대폰(Cellular Phone), 스마트 폰, TV, 타블렛, 노트북, PDA(Personal Digital Assistants), PMP(Portable Multimedia Player), 네비게이션, MP3 플레이어, 디지털 카메라, 냉장고, 세탁기, 청소기, 센서, 자동차 탑재 디바이스를 포함할 수 있고, 상기 예시에 제한되지 않으며, 다양한 디바이스를 포함할 수 있다.
명세서 전체에서, 커널이란 신호를 프로세싱 하기 위해 사용되는 가중치를 가지는 행렬을 의미할 수 있다. 커널의 일 예로는 노이즈를 제거하는 low-pass 커널, 모서리를 무디게 하는 Gaussian 커널, 모서리를 날카롭게 하는 high-pass 커널들을 들 수 있으며, 커널은 필터, 마스크라고도 할 수 있다.
하나의 커널은 커널 구조에 따라 적어도 하나의 미니 커널들로 분할될 수 있다, 명세서 전체에서 커널의 근사화란, 하나의 커널을 커널 구조에 따라 적어도 하나의 미니 커널로 분할하는 것을 의미할 수 있다. 분할된 적어도 하나의 미니 커널들을 모두 합산하는 경우 분할 이전의 커널과 동일하거나 소정 범위 내의 오차를 가질 수 있다.
명세서 전체에서 미니 커널이란 하나의 커널이 적어도 하나의 또는 복수개의 커널로 분할된 커널을 의미할 있다. 하나의 커널은 커널 구조에 따라 적어도 하나의 미니 커널들로 분할될 수 있으며, 미니 커널은 각각 패턴화된 커널과 가중치로 변경될 수 있다.
명세서 전체에서 패턴화된 커널은 소정의 패턴을 가지는 커널로써 또는 미니 커널에서 가중치 및 0 값을 제외한 커널을 의미할 수 있다.
명세서 전체에서 커널 구조란, 커널 내의 값들의 배치가 어떻게 구성되어 있는지를 의미할 수 있다. 또한 패턴 타입이란, 패턴화된 커널들의 구조(패턴)을 패턴 타입이라 할 수 있다.
명세서 전체에서 패턴 위치란 커널 내의 패턴화된 커널의 위치를 의미한다. 예를 들면, 1x2(1행 2열) 구조의 패턴화된 커널은 커널 구조 상 커널 내의 여러 부분에 위치할 수 있다.
도 1은 멀티미디어 신호의 프로세싱을 설명하기 위한 도면이다.
도 1의 경우 입력 신호(11)가 이미지인 경우를 도시한다. 디바이스는 적어도 하나의 픽셀을 포함하는 이미지 데이터를 획득하고, 획득한 이미지 데이터를 커널을 이용하여 프로세싱한다. 신호 프로세싱의 목적은 입력된 신호를 프로세싱 함으로써 소정의 결과를 획득하거나, 디바이스가 입력된 신호에 기초하여 소정의 판단을 수행하기 위한 입력된 신호의 특징(Feature)을 추출하거나 특징 맵(Feature map)을 생성하기 위한 것이다. 소정의 판단이라 사물의 인식, 방향 판단 등을 포함할 수 있으며 상기 예시에 제한되지 않는다.
도 1을 참조하면, 이미지 내의 소정의 픽셀은 주변을 둘러싼 픽셀에 의해 영향을 받는다. 따라서, 디바이스는 프로세싱을 위해 컨볼루션 연산을 수행한다. 컨볼루션 연산이란, 가중치를 가진 행렬인 커널(11)을 이미지 픽셀에 적용하는 것을 의미할 수 있다. 예를 들면, 컨벌루션 연산이란 소정의 픽셀 값및 소정의 픽셀 주위의 픽셀 값에 각각 커널의 가중치를 곱하고, 커널 내의 각각 대응하는 셀들의 결과 값(M행 N열의 값)들을 모두 합산하는 연산일 수 있다.
도 1에서는 1/9의 가중치를 3x3 크기의 커널(11)을 입력 신호(10)에 적용한다. 입력 신호 내의 2 의 크기를 가지는 제 1 픽셀(100)에 커널을 적용하면 커널의 크기에 따라 제 1 픽셀(111) 주위의 픽셀인 나머지 8개의 픽셀 또한 함께 연산된다. 커널을 적용한 연산은 아래와 같다
(1/9)x2+(1/9)x2+(1/9)x4+(1/9)x6+(1/9)x2+(1/9)x5+(1/9)x5+(1/9)x5+(1/9)x5 = 4
따라서 출력 신호(12)는 입력 신호(10)의 제 1 픽셀(100)의 값이 2에서 4로 변경된 신호이며, 다른 픽셀 또한 동일한 방식으로 연산될 수 있다. 다시 말해서, 출력 신호(12)는 입력 신호(10)를 커널(11)로 훑어서(sweep) 변형된 신호를 의미할 수 있다. 즉, 컨볼루션이란 주위(예를 들면, 특정 픽셀의 주변 픽셀)의 값들을 반영해 중앙(예를 들면, 특정 픽셀)의 값을 변화시키는 것을 의미할 수 있다. 또한 일부 실시예에 따르면, 출력신호(12)는 입력 신호(10)로부터 생성된 특징 맵일 수 있다.
도 2 및 도 3은 뉴럴 네트워크를 통한 멀티미디어 신호의 프로세싱 시스템에 대해 도시한다.
디바이스가 신호 프로세싱을 통해 정확도가 높은 판단 결과 또는 정확도가 높은 결과를 얻기 위해 최근에는 뉴럴 네트워크(Artificial Neural Network)를 사용하고 있다. 뉴럴 네트워크는 인간의 신경망과 유사한 구조로 가지는 네트워크로써, 뉴럴 네트워크의 일 예로는 컨볼루션 뉴럴 네트워크를 꼽을 수 있다.
도 2를 참조하면, 디바이스는 뉴럴 네트워크(200)에 입력 신호들(10)을 입력할 수 있다. 입력 신호들(10)은 이미지들일 수 있으며, 각 입력 신호들은 복수의 채널들을 포함할 수 있다.
뉴럴 네트워크(200)은 복수의 계층들을 포함할 수 있다. 각 계층(21)에서는 입력된 신호에 가중치(13)를 포함한 커널을 적용하여 특징 맵을 생성하는 과정이 수행된다. 각 계층에서 특징 맵은 적어도 하나가 생성될 수 있고, 각 계층에서는 입력 신호들(10)에 복수 개의 커널(11)이 적용될 수 있다. 각 커널(11)들이 포함하는 가중치(13)는 뉴럴 네트워크의 학습에 의해 업데이트 될 수 있다.
일부 실시예에 따르면, 뉴럴 네트워크의 첫번째 계층에서는 커널과 입력 신호를 컨볼루션함으로써 첫번째 특징 맵을 생성할 수 있고, 뉴럴 네트워크의 두번째 계층에서는 첫번째 만들어진 특징 맵과 커널을 컨볼루션 함으로써, 두번째 특징 맵을 생성할 수 있다.
즉, 뉴럴 네트워크(200)는 판단 시 정확도를 높이기 위해 또는 목적하는 작업의 성공율을 높이기 위해 입력 신호를 프로세싱할 수 있다. 디바이스는 뉴럴 네트워크(200)는 복수의 계층을 통과하여 출력된 프로세싱 결과(210)에 의해 더 정확한 판단을 수행할 수 있다. 추가적으로 뉴럴 네트워크(200)는 출력 신호를 출력하기 전, 출력 신호를 단순화 하는 풀링(Pooling) 동작을 수행할 수도 있다.
도 3은 뉴럴 네트워크를 통한 입력 신호의 프로세싱을 다른 형태로 도식화 한 도면이다. 앞서 설명한 바와 같이 뉴럴 네트워크에서는 입력 신호에 커널을 적용한다. 도 3에 도시된 바와 같이 뉴럴 네트워크에서는 입력 신호에 복수의 커널을 병렬적으로 적용할 수 있다.
제 1 계층(301)에서는 입력 신호에 4개의 커널을 적용하여 4개의 출력 신호를 출력한다. 제 2 계층(302)에서는 4개의 출력 신호 중 적어도 하나를 선택하여 복수의 커널 각각을 적용할 수 있다. 출력된 신호는 커널에 의해 변경된 신호로써, 예를 들면, 원본 이미지에 블러 효과가 적용된 이미지일 수 있다. 또한 출력 신호는 앞서 설명한 특징 맵 일수 있다.
도 4는 일부 실시예에 멀티미디어 신호의 프로세싱 방법의 순서도를 도시한다.
단계 401에서 디바이스는, 멀티미디어 신호를 획득할 수 있다. 멀티미디어 신호는 카메라, 마이크로폰과 같은 신호 입력부로부터 수신할 수도 있고, 서버와 같은 외부 디바이스로부터 수신할 수도 있다. 물론 디바이스는 멀티미디어 신호를 메모리로부터 획득할 수도 있다. 물론 상기 예시에 제한되지 않는다.
일부 실시예에 따르면 멀티미디어 신호는 적어도 하나의 픽셀을 포함하는 이미지일 수 있다. 물론 상기 예시에 제한되지 않으며, 멀티미디어 신호는 음성을 포함할 수 있다.
단계 403에서 디바이스는, 획득된 멀티미디어 신호의 프로세싱을 위해 이용되는 적어도 하나의 커널을 결정할 수 있다.
일부 실시예에 따르면, 커널은 상기 멀티미디어 신호에 추출하고자 하는 특징에 기초하여 결정될 수 있다. 예를 들면, 입력된 신호가 이미지 신호인 경우, 이미지 내의 테두리 부분을 추출 할 때와 이미지 내의 흰색 부분을 추출하기 위해 이미지 신호에 각각 상이한 커널이 적용될 수 있다.
단계 405에서 디바이스는, 획득된 커널의 구조에 따라 커널의 근사화를 수행할 수 있다. 앞서 설명한 바와 같이 커널의 근사화란, 하나의 커널을 커널 구조에 따라 적어도 하나의 미니 커널로 분할하는 것을 의미할 수 있다.
일부 실시예에 따르면, 디바이스는 획득된 커널 내의 공간적 연결성에 기초하여 상기 획득된 커널의 내부의 패턴 타입 및 패턴 위치를 판단할 수 있으며, 판단 결과에 기초하여 획득된 커널을 적어도 하나의 미니 커널로 분할할 수 있다. 공간적 연결성이라 함은 커널 내의 값들이 어떤 패턴 타입에 의해 서로 연결될 수 있는지에 대한 정보를 포함할 수 있다. 즉, 커널 내의 존재하는 패턴들의 연결 구조에 대한 정보를 포함할 수 있다.
일부 실시예에 따르면, 디바이스는 획득된 커널과 분할된 미니 커널들의 합의 차이가 최소화되도록 획득된 커널 내에 포함된 패턴 타입 및 패턴 위치를 결정할 수 있다. 디바이스는 동일한 커널이라도 여러가지의 패턴 타입으로 분할할 수 있다.
또한 일부 실시예에 따르면, 디바이스는 여러가지 패턴 타입 중 획득된 커널과 가장 오차가 적은 패턴으로 분할 할 수 있다. 예를 들면, 디바이스는 Exhastive Search 와 같은 검색 방식을 이용함으로써 모든 경우의 수를 고려하여 획득한 커널이 분리될 수 있는 경우의 수를 검색하고, 검색 결과에 따라 분할된 미니 커널들의 합이 획득된 커널과 가장 미니 오차를 가지도록 커널을 분할할 수 있다. 물론 검색 방식은 상기 예시에 제한되지 않는다.
또한 일부 실시예에 따르면, 디바이스는 분할된 적어도 하나의 미니 커널 각각을 패턴화된 커널 및 가중치로 변환할 수 있다. 패턴화된 커널은 0 값과 1 바이너리 형태의 커널에서 0값을 제외한 커널을 의미할 수 있다.
일부 실시예에 따르면, 바이너리 형태의 커널에서 0값을 제외한 커널이라 함은 0을 제외하고 재구성한 커널을 의미할 수 있다. 예를 들어, 3x3의 구조를 가진 바이너리 커널에서 1행 1열에만 1이 존재하고 나머지 값은 0인 경우에는, 디바이스는 1x1 구조를 가진 커널로 재구성할 수 있다. 재구성된 커널은 패턴화된 커널일 수 있다.
단계 407에서 디바이스는, 근사화된 커널을 이용하여 획득된 멀티미디어 신호의 프로세싱을 수행할 수 있다.
일부 실시예에 따르면, 디바이스는 멀티미디어 신호 및 근사화된 커널을 이용하여 소정의 연산을 수행할 수 있다. 예를 들면, 디바이스는 멀티미디어 신호에 각각의 패턴화된 커널 및 가중치를 적용하고, 각각의 패턴화된 커널 및 가중치가 적용된 결과 값을 합산할 수 있다. 즉, 디바이스는 각각의 커널을 패턴화된 커널 및 가중치로 나누고, 각각의 패턴화된 커널을 멀티미디어 신호와 컨볼루션 한 후에 가중치를 적용함으로써, 곱셈 연산의 숫자를 줄일 수 있다.
또한 일부 실시예에 따르면, 디바이스는 획득한 멀티미디어 신호에 커널이 포함할 수 있는 적어도 하나의 패턴 타입 각각을 적용한 복수의 결과 배열들을 포함하는 부분 합 테이블을 생성할 수도 있다. 또한 디바이스는 생성한 부분 합 테이블을 저장할 수 있다.
예를 들면, 3x3 커널이 포함할 수 있는 패턴 타입이 1x1, 1x2, 1x3, 2x1, 2x2, 2x3, 3x1, 3x2, 3x3의 패턴이라 가정하면, 디바이스는 멀티미디어 신호에 각각 타입이 1x1, 1x2, 1x3, 2x1, 2x2, 2x3, 3x1, 3x2, 3x3의 패턴화된 커널을 적용하고, 적용 결과인 결과 값들을 테이블로 저장할 수 있다. 일부 실시예에 따르면, 테이블 내의 각각의 결과 값들은 배열(array)일 수 있다.
즉, 부분 합 테이블이란 멀티미디어 신호에 적어도 하나의 패턴 타입을 가지는 커널을 각각을 적용한 결과 값들을 저장한 테이블일 수 있다. 일부 실시예에 따르면, 디바이스는 부분 합 테이블을 생성한 이후, 획득된 커널의 패턴 타입, 패턴 위치 및 가중치에 따라 에 따라 부분 합 테이블 내의 적어도 일부의 값을 선택할 수 있다. 디바이스는 선택된 값에 가중치를 적용한 후, 가중치가 적용된 선택된 값들을 합산함으로써, 각각의 커널에 대해 매번 컨벌루션 연산을 수행하는 대신 덧셈 연산을 수행함으로써, 메모리 접속 횟수를 줄이고, 전력 소모를 줄일 수 있다.
일부 실시예에 따르면, 디바이스는 추가적인 커널을 이용하여 프로세싱된 멀티미디어 신호에 추가적인 프로세싱을 수행할 수 있다. 또한 일부 실시예에 따르면, 획득된 커널 이외의 커널을 이용하여 병렬적으로 멀티미디어 신호의 프로세싱을 수행할 수도 있다. 즉, 단계 401 내지 단계 405는 뉴럴 네트워크의 하나의 계층에서 수행되는 멀티미디어 신호의 프로세싱 방법일 수 있으며, 추가적으로 뉴럴 네트워크의 다른 계층에서도 단계 401 내지 405에서의 멀티미디어 신호의 프로세싱 방법에 사용될 수 있고, 단계 401 내지 단계 405의 계층의 멀티미디어 신호의 프로세싱 방법이 병렬적으로 사용될 수 있다.
도 5는 일부 실시예에 따른 커널의 패턴 타입 및 패턴 위치를 설명하기 위한 도면이다.
도 5를 참조하면, 커널(501)은 다양한 패턴 타입들을 가질 수 있다. 다시 말해서, 커널은 다양한 패턴화된 커널로 분할될 수 있다. 커널(501) 내의 값에 따라 가질 수 있는 패턴 타입이 상이해질 수 있으며, 커널(501)의 크기에 따라 가질 수 있는 패턴 타입이 상이해질 수 있다. 예를 들면, 3x3 커널은 1x1, 1x2, 1x3, 2x1, 2x2, 2x3, 3x1, 3x2, 3x3의 패턴을 가질 수 있으며, 커널 내의 값에 따라 적어도 하나의 패턴화된 커널 및 가중치로 분할될 수 있다.
또한 도 5에서 도시된 바와 같이 동일한 패턴이라도 커널 내의 위치가 상이할 수 있다. 도시된 예와 같이, 3x3의 커널 내에는 1x3 패턴이 3곳에 위치할 수 있다. 따라서, 상이한 커널이라도 동일한 패턴화된 커널을 포함할 수 있다.
도 6은 일부 실시예에 따른 근사화한 커널을 이용한 멀티미디어 프로세싱 방법의 순서도이다.
단계 601에서, 디바이스는 멀티미디어 신호를 획득할 수 있다.
단계 603에서, 디바이스는 획득된 멀티미디어 신호의 프로세싱을 위해 이용되는 적어도 하나의 커널을 결정할 수 있다. 단계 601 및 단계 603은 앞서 설명한 바와 대응되므로 자세한 설명은 생략한다.
단계 605에서, 디바이스는 획득된 커널 내의 공간적 연결성에 기초하여 획득된 커널 내부의 패턴 타입 및 패턴 위치를 판단할 수 있다.
일부 실시예에 따르면, 디바이스는 획득한 커널 내에 어떤 패턴이 포함되어 있는지 판단할 수 있다. 즉, 디바이스는 공간적 연결성이라 함은 커널 내의 존재하는 패턴들의 연결 구조에 대한 정보를 포함할 수 있으므로, 디바이스는 커널이 가질 수 있는 다양한 패턴 타입 및 패턴의 위치를 기초로 어떻게 커널을 분할할 지 결정할 수 있다.
단계 607에서, 디바이스는 판단 결과에 기초하여 획득한 커널을 적어도 하나의 미니 커널로 분할할 수 있다. 디바이스가 수행하는 커널의 근사화란 획득한 커널을 적어도 하나의 미니 커널로 분할하는 것을 의미할 수 있다. 분할된 적어도 하나의 미니 커널의 합은 획득한 커널과 동일하거나 소정 범위 내의 오차를 가질 수 있다.
단계 609에서, 디바이스는 분할된 적어도 하나의 미니 커널을 각각 패턴화된 커널 및 가중치로 변환할 수 있다. 예를 들면, 디바이스는 분할된 미니 커널 중 하나들을 각각 가중치 2와 2x2 구조를 가진 패턴화된 커널 및 가중치 3과 1x2 구조를 가진 패턴화된 커널로 변환할 수 있다.
단계 611에서, 디바이스는 적어도 하나의 패턴화된 커널 및 가중치를 멀티미디어 신호에 적용할 수 있다. 일부 실시예에 따르면, 디바이스는 적어도 하나의 패턴화된 커널을 멀티미디어 신호와 컨볼루션한 후, 가중치를 곱할 수 있다. 패턴화된 커널은 1로만 구성된 커널로써, 멀티미디어 신호 값과 컨볼루션을 수행할 때 곱셈 연산이 필요 없으며, 가중치를 곱할 때만 곱셈 연산이 수행될 수 있다.
또한 일부 실시예에 따르면, 디바이스는 부분 합 테이블에 기초하여 적어도 하나의 패턴화된 커널 및 가중치를 멀티미디어 신호에 적용할 수도 있다. 앞서 설명한 바와 같이 디바이스는 획득한 멀티미디어 신호에 커널이 포함할 수 있는 적어도 하나의 패턴 타입 각각을 적용한 복수의 결과 배열들을 포함하는 부분 합 테이블을 생성할 수 있다.
일부 실시예에 따르면, 디바이스는 패턴화된 커널에 기초하여 생성된 부분 합 테이블 중 전부 또는 일부 배열을 선택하고, 선택한 배열 내의 일부 또는 전부 의 영역을 선택하고, 선택한 영역 내의 값들에 가중치를 곱할 수 있다. 디바이스는 선택한 영역 내의 값들에 가중치를 곱한 후, 각각 대응되는 값들을 합산 할 수 있다.
또한 일부 실시예에 따르면, 디바이스는 패턴화된 커널이 커널 내에 위치하는 패턴 위치에 기초하여 부분 합 테이블에서 선택된 배열 내의 일부 또는 전부의 값을 선택할 수 있다. 즉, 앞서 설명한 바와 같이 커널 내의 패턴 위치는 각각 상이할 수 있으며, 패턴 위치에 따라 부분 합 테이블의 배열 내에서 사용되는 값들이 상이할 수 있다.
단계 613에서, 디바이스는 적용된 결과 값을 합산할 수 있다. 일부 실시예에 따르면, 합산한 결과가 멀티미디어 신호를 프로세싱한 결과일 수 있다. 즉, 디바이스는 패턴화된 커널 및 가중치를 각각 멀티미디어 신호에 적용한 결과 값을 모두 합산함으로써, 획득한 커널 하나를 멀티미디어 신호에 적용한 결과 값과 동일 또는 소정 범위 내의 오차를 가지는 결과 값을 획득할 수 있다.
도 7은 일부 실시예에 따른 부분 합 테이블을 생성하는 방법을 도시한다.
앞서 설명한 바와 같이 디바이스는 입력 신호(710)를 획득할 수 있다. 또한 디바이스는 입력 신호를 프로세싱하기 위한 커널들인 제 1 커널(701), 제 2 커널(702) 및 제 3 커널(703)을 획득할 수 있다.
또한 디바이스는 각 커널들(701 내지 703)의 패턴 타입(705)과 패턴 위치(706)를 분석 및 판단하고, 커널들을 분리하여 패턴화된 커널과 가중치로 분할할 수 있다.
예를 들어, 도 7을 참조하면. 제 1 커널(701)은 두 개의 미니 커널로 분할될 수 있으며, 각각의 미니 커널은 가중치 1 및 3행 2열의 구조를 가지는 패턴화된 커널인 제 1 미니 커널(731)과 가중치 2 및 2행 1열의 구조를 가지는 패턴화된 커널인 제 2 미니 커널(732)로 분리될 수 있다. 또한 제 1 미니 커널(731)은 2행 1열에 패턴화된 커널이 위치하며, 제 2 미니 커널(732)은 3행 1열에 패턴화된 커널이 위치한다.
일부 실시예에 따르면, 디바이스는 입력 신호(710)에 커널이 포함할 수 있는 적어도 하나의 패턴 타입 각각을 적용한 복수의 결과 배열들을 포함하는 부분 합 테이블(714)을 생성할 수 있다. 도 7을 참조하면, 3x3 커널이 포함할 수 있는 패턴 타입은 1x1, 1x2, 1x3, 2x1, 2x2, 2x3, 3x1, 3x2, 3x3이므로, 디바이스는 1x1, 1x2, 1x3, 2x1, 2x2, 2x3, 3x1, 3x2, 3x3 구조의 패턴화된 커널 각각과 입력 신호를 컨볼루션 함으로써, 부분 합 테이블(714)을 생성할 수 있다. 예를 들면, 도 7에서는 1x1의 패턴화된 커널은 하나의 1값만을 포함하는 1행 1열 구조의 커널로써, 입력 신호와 컨볼루션 연산을 수행하면 입력 신호와 동일한 배열이 결과 값으로 생성되며, 생성된 배열은 1x1의 패턴화된 커널과 대응되는 배열로써 부분 합 테이블(714)에 저장된다.
일부 실시예에 따르면, 디바이스는 패턴화된 커널 및 커널 내의 패턴 위치에 기초하여 부분 합 테이블(714)에서 적어도 일부 배열을 선택할 수 있다. 앞서 설명한 바와 같이 제 1 커널(701)은 가중치 1 및 3행 2열의 구조를 가지는 패턴화된 커널과 가중치 2 및 2행 1열의 구조를 가지는 패턴화된 커널로 분리될 수 있다. 디바이스는 부분 합 테이블(714) 중 3x2 구조의 패턴화된 커널과 대응하는 배열과 2x1 구조의 패턴화된 커널과 대응하는 배열을 선택할 수 있다.
또한 일부 실시예에 따르면, 디바이스는 선택한 배열에 각각 가중치를 곱할 수 있다. 즉, 디바이스는 3x2 구조의 패턴화된 커널과 대응하는 배열에는 1의 가중치를 곱하고, 2x1 구조의 패턴화된 커널과 대응하는 배열에는 2의 가중치를 곱할 수 있다.
추가적으로, 일부 실시예에 따르면 디바이스는 선택된 배열 중 패턴 위치에 따라 일부 영역 또는 일부 셀만을 선택할 수 있다. 즉, 디바이스는 선택된 배열 중 일부의 영값만을 선택할 수 있다.
예를 들면, 분할된 미니 커널에 0 값이 위치하고 있었던 부분의 경우, 연산이 불필요하므로, 디바이스는 배열 내의 전체 값들 중 분할된 미니 커널에 0값이 위치하고 있던 부분과 대응되는 영역을 선택하지 않을 수 있다. 디바이스는 선택된 배열 중 패턴 위치에 따라 선택한 일부 값들만을 합산할 수 있다.
도 7을 참조하면. 제 1 미니 커널(731)의 2행 1열에 패턴화된 커널이 위치하며, 제 2 미니 커널(732)의 3행 1열에 패턴화된 커널이 위치한다. 즉, 제 1 미니 커널(701)은 2행 1열의 위치에서 3행 2열짜리 패턴을 가지므로, 1행 1열에는 0값만이 존재한다. 따라서, 디바이스는 부분 합 테이블 내의 배열의 1열 값은 연산될 필요가 없으므로 선택하지 않을 수 있다(표시한 영역 이외의 부분). 동일한 이유로 디바이스는 제 2 미니 커널(702)과 대응하는 배열 값 중 1열 및 2열, 6행의 값은 선택하지 않을 수 있다.
일부 실시예에 따르면 디바이스는 배열 내의 선택한 값들을 각각 합산하여 출력 신호를 출력할 수 있다. 즉, 디바이스는 제 1 커널(701)을 이용하여 입력 신호(710)를 프로세싱한 제 1 출력 신호(711)를 생성할 수 있다. 디바이스는 제 2 입력신호(710)과 제 2 커널(702) 및 제 3 커널(703)을 이용하여 각각 앞서 설명한 바와 대응되는 절차를 수행함으로써, 출력 신호(712) 및 제 3 출력 신호(713) 를 생성할 수 있다
도 8 내지 도 11은 근사화한 커널을 이용한 따른 멀티미디어 신호 프로세싱 방법과 컨볼루션 방식의 멀티미디어 신호 프로세싱 방법을 설명하기 위한 도면이다.
도 8은 입력 신호(810) 및 커널(811)을 바로 컨볼루션하는 방법을 도시한다. 즉, 디바이스는 커널(811)을 근사화 하지 않고 입력 신호(810)에 적용할 수 있다. 도 8을 참조하면, 디바이스는 입력 신호(810)에 커널(811)을 적용할 수 있다. 입력 신호(810)는 4x4 구조의 행렬이며, 커널(811)은 3x3 구조를 가지는 행렬이다. 입력 신호(810)와 커널(811)의 컨볼루션 결과는 2x2 구조를 가지는 행렬이며, 제 1 결과 값(851)은 도 8에 도시된 바와 같다.
도 8을 참조하면 입력 신호(810)와 커널(811)을 컨볼루션 하는 경우, 곱셈은 36회 수행되며, 누적되는 연산은 36회이다. 또한 디바이스가 연산 시 매번 메모리에 접속해야 하므로, 메모리 접속 횟수는 계산되는 각 숫자의 개수와 같이 72번이 필요하다.
도 9 내지 도 11은 일부 실시예에 따른 커널 근사화에 따른 프로세싱 방법을 도시한다. 디바이스는 커널 구조를 분석하여, 커널 내에 어떤 타입의 패턴이 존재하는지 판단할 수 있다.
디바이스는 판단 결과에 기초하여 커널(811)을 근사화할 수 있다. 예를 들면, 디바이스는 커널(811)을 제 1 미니 커널(911), 제 2 미니 커널(912) 및 제 3 미니 커널(913)으로 분할 할 수 있다. 제 1 미니 커널(911)은 제 1 가중치(921) 및 3행 2열의 제 1 패턴화된 커널(931)로 변환될 수 있고, 제 2 미니 커널(912)는 제 2 가중치(922) 및 2행 3열의 구조를 가지는 제 2 패턴화된 커널(932)로 변환될 수 있으며, 제 3 미니 커널(913)은 제 3 가중치(923) 및 2행 1열의 구조를 가지는 제 3 패턴화된 커널(933)로 변환될 수 있다. 또한 각 미니 커널(911 내지 913)의 패턴의 위치는 도 9에 도시된 바와 같다.
도 10을 참조하면, 디바이스는 입력 신호(810)에 제 1 패턴화된 커널(931) 내지 제 3 패턴화된 커널(933)을 각각 적용함으로써 부분 합 테이블을 생성할 수 있다. 즉, 디바이스는 입력 신호(810)와 제 1 패턴화된 커널(931)을 컨볼루션 하고, 입력 신호(810)과 제 2 패턴화된 커널(932)을 컨볼루션 하고, 입력 신호(810)과 제 3 패턴화된 커널(933)을 컨볼루션 할 수 있다.
일부 실시예에 따르면, 디바이스는 커널(811)내에 포함된 패턴화된 커널들(931 내지 933) 이외에 다른 패턴화된 커널과 입력신호(810)을 컨볼루션 하여 부분 합 테이블에 저장할 수도 있다.
도 11을 참조하면, 디바이스는 부분 합 테이블(1101) 내에서 제 1 패턴화된 커널(931)과 대응되는 제 1 배열(1131), 제 2 패턴화된 커널(932)과 대응되는 제 2 배열(1132) 및 제 3 패턴화된 커널(933)과 대응되는 제 3 배열(1133)을 선택할 수 있다.
또한 디바이스는 미니 커널들(911 내지 913)내의 0 값들의 위치에 따라 제 1 배열(1131) 내지 제 3 배열(1133) 중 연산이 불필요한 부분을 제외할 수 있다. 예를 들면, 디바이스는 제 1 배열(1131) 내의 제 1 영역(1141)만을 선택하고, 제 2 배열(1132) 내의 제 2 영역(1142)만을 선택하며, 제 3 배열(1133) 내의 제 3 영역(1143)만을 선택할 수 있다.
이후, 디바이스는 각 선택된 영역들(1141 내지 1143) 내의 값에 각각 대응되는 가중치들(921 내지 923)을 곱할 수 있다. 물론 일부 실시예에 따르면, 제 1 배열 내지 제 3 배열(1131 내지 1143)에 각각 대응되는 가중치들(921 내지 923)을 곱한 후에 제 1 영역 내지 제 3 영역(1141 내지 1143)을 선택할 수도 있다.
디바이스는 선택한 영역 내의 값들을 합산할 수 있다. 즉, 각 영역 내의 1행 1열의 값들을 모두 합산하고, 1행 2열의 값들을 모두 합산할 수 있다. 디바이스 또한 2행 1열 및 2행 2열또한 동일한 방식으로 합산할 수 있다. 즉, 디바이스는 각 영역 내의 각 셀들의 값들을 모두 합산할 수 있다. 제 2 결과 값(1151)은 도 11에 도시된 바와 같다.
도 8의 제 1 결과 값(851)과 도 11의 제 2 결과 값(1151)은 동일하다. 그러나 도 9 내지 도 11의 방법에 따르면, 곱셈은 12번만 수행된다. 누적되는 연산 또한 14회로 계속적으로 증가하는 도 8의 방식과는 대비된다. 또한 디바이스는 부분 합 테이블을 생성해 놓기 때문에, 가중치만 곱해서 프로세싱을 수행할 수 있으므로, 메모리 접속 횟수는 26회에 불과하다. 즉, 커널 근사화에 따라 곱셈 횟수, 누적되는 연산의 횟수, 및 메모리 접속 횟수가 크게 감소한다.
특히 디바이스는 부분 합 테이블을 생성하여 저장하면, 동일한 입력 신호에 대해 상이한 복수의 커널들을 적용할 때 커널들이 각각 포함하는 패턴 타입 및 패턴 위치에 대응하는 부분 합 테이블 내의 배열들을 선택하여 가중치를 곱하기만 하면 되므로, 복수의 커널들이 적용될 때 더욱 효과가 증대된다.
도 12 및 도 13은 일부 실시예에 따른 커널 근사화를 도식적으로 표현한 도면이다.
일부 실시예에 따르면, 디바이스는 커널(1210)의 구조를 분석하여 근사화할 수 있다. 도 12에 도시된 커널(1210)은 NxM 크기의 커널이며, 일부 영역에만 값이 존재하는 구조를 가진 커널이다.
일부 실시예에 따르면 디바이스는 커널(1210)의 구조를 분석함으로써, 패턴의 타입 및 패턴의 커널(121)을 가중치(1211) 및 패턴화된 커널(1212)로 분할함으로써, 패턴을 근사화할 수 있다. 참고적으로, 미니커널에서 가중치를 뺀 나머지 커널은 바이너리 형태의 미니커널(1213)이라 할 수 있다. 즉, 바이너리 형태의 미니커널(1213)이란 미니 커널에서 가중치를 제외함으로써 0과 1로만 구성된 바이너리 형태의 커널을 의미한다.
도 13 또한 도 12의 커널 근사화를 다른 방식으로 도시한 도면이다. 입력 신호(1301)에 소정의 커널(1310)을 적용할 때, 커널(1310) 내의 영역의 각 셀(1315)에 대응하는 값들을 부분 합 테이블 내의 배열 내의 대응되는 셀의 값들로 합산하고 가중치를 곱함으로써, 프로세싱 된 출력 신호(1320)를 획득할 수 있다.
도 14는 일부 실시예에 따른 3차원(3-Dimension: 3D) 커널의 근사화를 설명하기 위한 도면이다. 앞서 2차원(2-Dimension: 2D) 커널에 대해서만 예시를 들었으나, 도 1 내지 도 13에서 설명한 방법과 동일한 방법으로 3차원 커널 또한 근사화가 가능하다.
일부 실시예에 따르면, 디바이스는 3차원 커널의 구조를 분석할 수 있다. 3차원 커널의 구조를 분석하여 패턴 타입 및 패턴 위치를 결정할 수 있다. 즉, 앞서 설명한 바와 같이 디바이스는 커널이 가질 수 있는 패턴 타입 및 위치의 조합들 중 오차가 가장 적은 최적의 패턴 타입 및 패턴 위치를 결정하고, 결정에 기초하여 커널을 분할할 수 있다.
또한 일부 실시예에 따르면, 디바이스는 복수의 2차원 커널을 하나의 3차원 커널로 그룹화한 후, 3차원 커널을 근사화 할 수도 있다.
도 15는 일부 실시예에 따른 멀티미디어 신호를 프로세싱 하는 디바이스의 블록도이다.
도 15에 도시된 바와 같이 일부 실시예에 따른 멀티미디어 신호를 프로세싱 하는 디바이스(1700)는 신호 획득부(1501), 프로세서(1503) 및 메모리(1505)를 포함할 수 있다. 그러나 도 15에 도시된 구성 요소가 모두 멀티미디어 신호를 프로세싱 하는 디바이스(1500)의 필수 구성 요소인 것은 아니다. 도 15에 도시된 구성 요소보다 많은 구성 요소에 의해 멀티미디어 신호를 프로세싱 하는 디바이스(1500)가 구현될 수도 있고, 도 15에 도시된 구성 요소보다 적은 구성 요소에 의해 멀티미디어 신호를 프로세싱 하는 디바이스(1500)가 구현될 수도 있다.
일부 실시예에 따르면, 신호 획득부(1501)는 멀티미디어 신호를 획득할 수 있다. 멀티미디어 신호는 이미지 신호 및 오디오 신호를 포함하며 상기 예시에 제한되지 않는다. 또한 일부 실시예에 따르면 이미지 신호는 적어도 하나의 픽셀을 포함할 수 있다.
일부 실시예에 따르면, 프로세서(1503)는 통상적으로 멀티미디어 신호를 프로세싱 하는 디바이스(1500)의 전반적인 동작을 제어한다. 예를 들어, 프로세서(1401)는 디바이스(1500)에 저장된 프로그램을 실행함으로써, 디바이스(1500)가 포함하는 구성요소들을 전반적으로 제어할 수 있다.
일부 실시예에 따르면, 프로세서(1503)는 신호 획득부(1501)에서 획득된 멀티미디어 신호의 프로세싱을 위해 이용되는 적어도 하나의 커널을 결정할 수 있다. 또한 프로세서(1503)는 획득된 커널의 구조에 따라 커널의 근사화를 수행하고, 근사화된 커널을 이용하여 획득된 멀티미디어 신호의 프로세싱을 수행할 수 있다.
일부 실시예에 따르면, 멀티미디어 신호의 프로세싱이라 함은, 멀티미디어 신호에 커널을 적용하는 동작을 의미할 수 있으며, 멀티미디어 신호에 커널을 적용한다는 의미는 멀티미디어 신호와 커널을 이용하여 연산을 수행하는 것을 의미할 수 있다. 또한 일부 실시예에 따르면, 커널의 근사화는 획득된 커널의 구조에 따라 적어도 하나의 미니 커널로 분할하는 구성을 포함할 수 있다.
일부 실시예에 따르면, 프로세서(1503)는, 획득된 커널 내의 공간적 연결성에 기초하여 상기 획득된 커널의 내부의 패턴 타입 및 패턴 위치를 판단할 수 있다. 또한 프로세서(1503)는 획득된 커널의 내부 패턴 타입 및 패턴 위치를 판단하여 획득된 커널을 적어도 하나의 미니 커널로 분할할 수 있다.
또한 일부 실시예에 따르면, 프로세서(1503)는 분할된 적어도 하나의 미니 커널 각각을 패턴화된 커널 및 가중치로 변환할 수 있다. 프로세서(1503)는 멀티미디어 신호에 각각의 패턴화된 커널 및 가중치를 적용하고, 각각의 패턴화된 커널 및 가중치가 적용된 결과 값을 합산할 수 있다.
일부 실시예에 따르면, 프로세서(1503)는, 획득한 멀티미디어 신호에 커널이 포함할 수 있는 적어도 하나의 패턴 타입 각각을 적용한 복수의 결과 배열들을 포함하는 부분 합 테이블을 생성할 수 있다. 또한 프로세서(1503)는 패턴화된 커널의 패턴 타입에 기초하여, 부분 합 테이블 내의 복수의 결과 배열들을 선택하고, 선택된 복수의 결과 배열들에 기초하여 프로세싱을 수행할 수 있다.
또한 일부 실시예에 따르면, 프로세서(1503)는 패턴화된 커널 각각과 대응하는 가중치를 선택된 배열들 각각에 적용하고, 가중치가 적용된 복수의 배열들을 합산할 수 있다. 또한 프로세서(1503)는 적어도 하나의 분할된 커널 내의 패턴 위치에 기초하여 선택된 복수의 배열 내의 일부 또는 전부의 값을 선택할 수 있다. 예를 들면, 프로세서(1503)는 복수의 배열 내의 일부 영역 및 전부 영역을 선택하고, 선택한 영역 내의 셀들의 값만을 이용할 수 있다.
일부 실시예에 따르면 프로세서(1503)는 프로세싱된 멀티미디어 신호로부터 특징을 추출할 수 있다. 예를 들면, 프로세서(1503)는 프로세싱된 멀티미디어 신호에 기초하여 특징 맵을 생성하거나, 소정의 판단을 수행할 수 있다. 또한 커널은 상기 멀티미디어 신호에 추출하고자 하는 특징에 기초하여 결정될 수 있다.
또한 일부 실시예에 따르면, 프로세서(1503)는 획득된 커널과 미니 커널들의 합의 차이가 최소화되도록 패턴 타입 및 패턴 위치를 결정할 수 있다. 앞서 설명한 바와 같이 획득된 커널이 포함할 수 있는 패턴 타입은 복수 개 일 수 있으므로, 프로세서(1503)는 획득된 커널과 근사화한 커널(예를 들면, 미니 커널들의 합)의 차이가 최소화 되도록 획득한 커널을 분할할 수 있다.
일부 실시예에 따르면, 프로세서(1503)는 추가적인 커널을 이용하여 프로세싱된 멀티미디어 신호에 추가적인 프로세싱을 수행할 수 있다. 즉, 프로세서(1503)는 프로세싱을 수행하여 출력된 멀티미디어 신호를 추가적으로 프로세싱할 수 있다. 또한 프로세서(1503)는 병렬적으로 멀티미디어 신호의 프로세싱을 수행할 수 있다. 예를 들면, 프로세서(1503)는 제 1 커널을 이용한 멀티미디어 신호의 프로세싱과 제 2 커널을 이용한 멀티미디어 신호의 프로세싱을 병렬적으로 수행할 수 있다.
일부 실시예에 따르면, 메모리(1505)는 신호 입력부(1501) 또는 프로세서(1503)의 제어를 위한 프로그램을 저장할 수 있고, 디바이스(1500)로 입력되거나 디바이스(1500)로부터 출력되는 데이터를 저장할 수도 있다. 또한 일부 실시예에 따르면, 메모리(1505)는 프로세서(1503)가 생성한 부분 합 테이블을 저장할 수 있다. 또한 신호 입력부(1501)는 메모리(1505)에 저장된 데이터로부터 멀티미디어 신호를 획득할 수도 있다.
도 16은 일부 실시예에 따른 멀티미디어 신호를 프로세싱 하는 디바이스의 프로세서의 구조를 도시한다.
도 16에 도시된 바와 같이 프로세서(1503)는 어플리케이션 실행 프로세서(1601)과 신호 프로세싱 프로세서(1605)를 포함할 수 있다. 그러나 도 16에 도시된 구성 요소가 모두 프로세서(1503)의 필수 구성 요소인 것은 아니다. 도 16에 도시된 구성 요소보다 많은 구성 요소에 의해 프로세서(1503)가 구현될 수도 있고, 도 16에 도시된 구성 요소보다 적은 구성 요소에 의해 프로세서(1503)가 구현될 수도 있다.
일부 실시예에 따르면 어플리케이션 실행 프로세서(1601)는 다양한 어플리케이션을 실행할 수 있다. 어플리케이션 프로세서(1601)는 메모리(1505) 또는 다른 저장부 또는 외부 디바이스로부터 수신한 어플리케이션, 프로그램들을 실행할 수 있다.
또한 일부 실시예에 따르면, 어플리케이션 실행 프로세서(1601)는 SISD(Single Input Single Data) 프로세서(1603)를 포함할 수 있다. SISD 프로세서(1603)는 한번에 하나씩 명령어로 하나의 데이터를 처리할 수 있는 프로세서를 포함할 수 있다. 물론 어플리케이션 실행 프로세서(1601)는 복수의 SISD 프로세서를 포함할 수도 있고, 적어도 하나의 SIMD 프로세서를 포함할수도 있으며, 상기 예시에 제한되지 않는다.
일부 실시예에 따르면 신호 프로세싱 프로세서(1605)는 멀티미디어 신호를 프로세싱 할 수 있다. 즉, 신호 프로세싱 프로세서(1605)는 커널을 이용하여 획득한 멀티미디어 신호를 프로세싱할 수 있다. 또한 신호 프로세싱 프로세서(1605)는 GPU(Graphic Processing Unit)을 포함할 수 있따.
또한 일부 실시예에 따르면, 신호 프로세싱 프로세서(1605)는 제 1 SIMD(Single Input Multi Data) 프로세서(1607), 제 2 SIMD 프로세서(1609) 및 제 3 SIMD 프로세서(1611)를 포함할 수 있다. SIMD 프로세서는 하나의 명령어로 복수의 데이터를 처리할 수 있는 프로세서를 포함할 수 있다. 즉, 신호 프로세싱 프로세서(1605)는 병렬적으로 멀티미디어 신호를 프로세싱할 수 있다. 또한 신호 프로세싱 프로세서(1605)가 포함할 수 있는 SIMD 프로세서의 개수는 제한이 없으며, 적어도 하나의 SISD 프로세서를 포함할 수도 있다. 물론 상기 예시에 제한되지 않는다.
도 17은 일부 실시예에 따른 멀티미디어 신호를 프로세싱 하는 디바이스의 세부 블록도이다.
도 17에 도시된 바와 같이 일부 실시예에 따른 멀티미디어 신호를 프로세싱 하는 디바이스(1700)는 신호 획득부(1501), 프로세서(1503), 메모리(1505)외에도 사용자 입력부(1700), 통신부(1730) 및 출력부(1710)를 포함할 수 있다. 그러나 도 17에 도시된 구성 요소가 모두 멀티미디어 신호를 프로세싱 하는 디바이스(1500)의 필수 구성 요소인 것은 아니다. 도 17에 도시된 구성 요소보다 많은 구성 요소에 의해 멀티미디어 신호를 프로세싱 하는 디바이스(1500)가 구현될 수도 있고, 도 17에 도시된 구성 요소보다 적은 구성 요소에 의해 멀티미디어 신호를 프로세싱 하는 디바이스(1500)가 구현될 수도 있다.
일부 실시예에 따르면 신호 입력부(1501)는 카메라(1731) 및 음향 입력부(1732)를 더 포함할 수 있다. 카메라(1731)는 이미지 센서를 통해 정지영상 또는 동영상 등의 이미지 신호를 얻을 수 있다. 이미지 센서를 통해 획득한 이미지 신호는 프로세서(1503) 통해 프로세싱될 수 있다. 카메라(1731)에 의해 획득되어 프로세싱된 이미지 신호는 메모리(1505)에 저장되거나 통신부(1703)를 통하여 외부로 송신될 수 있다. 카메라(1731)는 디바이스(1500)의 구성 태양에 따라 적어도 하나 이상 구비될 수도 있다.
음향 입력부(1732)는, 외부의 음향 신호를 입력 받을 수 있다. 일부 실시예에 따르면, 음향 입력부(1732)는 마이크로폰일 수 있으며, 상기 예시에 제한되지 않는다. 음향 입력부(1732)은 외부 디바이스, 서버 또는 사용자로부터 음향 신호를 수신할 수 있다. 음향 입력부(1732)를 통해 획득한 음향 신호는 프로세서(1503) 통해 프로세싱될 수 있다. 카메라(1731)에 의해 획득되어 프로세싱된 이미지 신호는 메모리(1505)에 저장되거나 통신부(1703)를 통하여 외부로 송신될 수 있다. 음향 입력부 (1732)에 의해 획득되어 프로세싱된 음향 신호는 메모리(1505)에 저장되거나 통신부(1703)를 통하여 외부로 송신될 수 있다.
프로세서(1503)의 동작은 앞서 설명한 바와 대응되므로 자세한 설명은 생략한다.
메모리(1505)는 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램(RAM, Random Access Memory) SRAM(Static Random Access Memory), 롬(ROM, Read-Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory), 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있다.
일부 실시예에 따르면 메모리(1505)에 저장된 프로그램들은 그 기능에 따라 복수 개의 모듈들로 분류할 수 있는데, 예를 들어, UI 모듈(1741), 터치 스크린 모듈(1742), 알림 모듈(1743) 등으로 분류될 수 있다.
UI 모듈(17411)은, 애플리케이션 별로 디바이스(1500)와 연동되는 특화된 UI, GUI 등을 제공할 수 있다. 터치 스크린 모듈(1742)은 사용자의 터치 스크린 상의 터치 제스처를 감지하고, 터치 제스처에 관한 정보를 프로세서(1503)로 전달할 수 있다. 일부 실시예에 따른 터치 스크린 모듈(1742)은 터치 코드를 인식하고 분석할 수 있다. 터치 스크린 모듈(1742)은 컨트롤러를 포함하는 별도의 하드웨어로 구성될 수도 있다.
알림 모듈(1743)은 디바이스(1500)의 이벤트 발생을 알리기 위한 신호를 발생할 수 있다. 디바이스(1500)에서 발생되는 이벤트의 예로는 키 신호 입력, 알림 등이 있다. 알림 모듈(1742)은 디스플레이부(1717)를 통해 비디오 신호 형태로 알림 신호를 출력할 수도 있고, 음향 출력부(1718)를 통해 오디오 신호 형태로 알림 신호를 출력할 수도 있다. 메모리(1505)가 수행하는 동작은 앞서 설명한 내용과 대응되므로 자세한 설명은 생략한다.
사용자 입력부(1700)는 사용자가 디바이스(1500)를 제어하기 위한 데이터를 입력하는 수단을 의미한다. 예를 들어, 사용자 입력부(1100)에는 키 패드(key pad), 돔 스위치 (dome switch), 터치 패드(접촉식 정전 용량 방식, 압력식 저항막 방식, 적외선 감지 방식, 표면 초음파 전도 방식, 적분식 장력 측정 방식, 피에조 효과 방식 등), 조그 휠, 조그 스위치 등이 있을 수 있으나 이에 한정되는 것은 아니다.
일부 실시예에 따르면, 사용자 입력부(1700)를 통해 사용자는 커널 근사화를 위한 알고리즘을 디바이스(1500)에 입력할 수 있다. 또한 사용자 입력부(1700)는 사용자로부터 어떤 기준에 따라 커널 근사화를 수행할 지에 대한 정보를 수신할 수 있다. 예를 들면, 사용자 입력부(1700)는 사용자로부터 커널 근사화 시 수용 가능한 오차 범위에 대한 정보를 수신할 수 있다. 또한 일부 실시예에 따르면, 사용자 입력부(1700)는 사용자로부터 커널을 분할할 때 기준이 될 수 있는 패턴 타입 및 패턴 위치에 대한 정보를 획득할 수 있다.
통신부(1703)는 디바이스(1500)가 외부 디바이스와 통신을 하게 하는 하나 이상의 구성요소를 포함할 수 있다. 예를 들어, 통신부(1500)는 통신 인터페이스(1705)를 포함할 수 있다.
통신 인터페이스(1705)는 블루투스 통신 모듈, BLE(Bluetooth Low Energy) 통신 모듈, 근거라 자기장 통신 모듈(Near Field Communication), WLAN(와이파이) 통신 모듈, 지그비(Zigbee) 통신 모듈, 적외선(IrDA, infrared Data Association) 통신모듈, WFD(Wi-Fi Direct) 통신 모듈, UWB(ultra wideband) 통신 모듈 등을 포함할 수 있으나, 이에 한정되는 것은 아니다. 각 통신 모듈들의 기능은 그 명칭으로부터 당업자가 직관적으로 추론할 수 있으므로, 구체적인 설명은 생략하기로 한다.
출력부(1707)는, 오디오 신호 또는 비디오 신호 출력할 수 있으며, 진동 신호 또한 출력할 수 있다. 출력부(1707)는 디스플레이부(1717) 및 음향 출력부(1718)을 포함할 수 있다.
디스플레이부(1717)는 디바이스(1500)에서 프로세싱 된 신호를 표시 및 출력할 수 있다. 한편, 디스플레이부(1717)와 터치패드가 레이어 구조를 이루어 터치 스크린으로 구성되는 경우, 디스플레이부(1717)는 출력 장치 이외에 입력 장치로도 사용될 수 있다. 디스플레이부(1717)는 액정 디스플레이(liquid crystal display), 박막 트랜지스터 액정 디스플레이(thin film transistor-liquid crystal display), 유기 발광 다이오드(organic light-emitting diode), 플렉시블 디스플레이(flexible display), 3차원 디스플레이(3D display), 전기영동 디스플레이(electrophoretic display) 중에서 적어도 하나를 포함할 수 있다. 그리고 디바이스(1500)의 구현 형태에 따라 디바이스(1500)는 디스플레이부(1717)를 2개 이상 포함할 수도 있다. 이때, 2개 이상의 디스플레이부(1717)는 힌지(hinge)를 이용하여 마주보게 배치될 수 있다.
음향 출력부(1718)는 통신부(1703)로부터 수신되거나 메모리(6003)에 저장된 오디오 신호 또는 프로세싱된 오디오 신호 출력할 수 있다. 또한, 음향 출력부(1718)는 디바이스(1500)에서 수행되는 기능과 관련된 음향 신호를 출력한다. 이러한 음향 출력부(1718)에는 스피커(speaker), 버저(Buzzer) 등이 포함될 수 있으며 상기 예시에 제한되지 않는다.
또한 일부 실시예에 따르면, 출력부(1707)는 진동 모터를 더 포함할 수도 있다.
센싱부(1720)는 디바이스(1500)의 상태 또는 디바이스(1500) 주변의 상태를 감지하고, 감지된 정보를 프로세서(1503)로 전달할 수 있다. 또한 센싱부(1720)는 신호 입력부(1501)와 함께 멀티미디어 신호를 획득할 수도 있다.
센싱부(1720)는, 지자기 센서(Magnetic sensor), 가속도 센서(Acceleration sensor), 온/습도 센서, 적외선 센서, 자이로스코프 센서, 위치 센서(예컨대, GPS), 기압 센서, 근접 센서 및 광센서(illuminance sensor) 중 적어도 하나를 포함할 수 있으나, 이에 한정되는 것은 아니다. 각 센서들의 기능은 그 명칭으로부터 당업자가 직관적으로 추론할 수 있으므로, 구체적인 설명은 생략하기로 한다.
본 발명에 따른 장치는 프로세서, 프로그램 데이터를 저장하고 실행하는 메모리, 디스크 드라이브와 같은 영구 저장부(permanent storage), 외부 장치와 통신하는 통신 포트, 터치 패널, 키(key), 버튼 등과 같은 사용자 인터페이스 장치 등을 포함할 수 있다. 소프트웨어 모듈 또는 알고리즘으로 구현되는 방법들은 상기 프로세서상에서 실행 가능한 컴퓨터가 읽을 수 있는 코드들 또는 프로그램 명령들로서 컴퓨터가 읽을 수 있는 기록 매체 상에 저장될 수 있다. 여기서 컴퓨터가 읽을 수 있는 기록 매체로 마그네틱 저장 매체(예컨대, ROM(read-only memory), RAM(random-access memory), 플로피 디스크, 하드 디스크 등) 및 광학적 판독 매체(예컨대, 시디롬(CD-ROM), 디브이디(DVD: Digital Versatile Disc)) 등이 있다. 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템들에 분산되어, 분산 방식으로 컴퓨터가 판독 가능한 코드가 저장되고 실행될 수 있다. 매체는 컴퓨터에 의해 판독가능하며, 메모리에 저장되고, 프로세서에서 실행될 수 있다.
본 발명에서 인용하는 공개 문헌, 특허 출원, 특허 등을 포함하는 모든 문헌들은 각 인용 문헌이 개별적으로 및 구체적으로 병합하여 나타내는 것 또는 본 발명에서 전체적으로 병합하여 나타낸 것과 동일하게 본 발명에 병합될 수 있다.
본 발명의 이해를 위하여, 도면에 도시된 바람직한 실시 예들에서 참조 부호를 기재하였으며, 본 발명의 실시 예들을 설명하기 위하여 특정 용어들을 사용하였으나, 특정 용어에 의해 본 발명이 한정되는 것은 아니며, 본 발명은 당업자에 있어서 통상적으로 생각할 수 있는 모든 구성 요소들을 포함할 수 있다.
본 발명은 기능적인 블록 구성들 및 다양한 프로세싱 단계들로 나타내어질 수 있다. 이러한 기능 블록들은 특정 기능들을 실행하는 다양한 개수의 하드웨어 또는/및 소프트웨어 구성들로 구현될 수 있다. 예를 들어, 본 발명은 하나 이상의 마이크로프로세서들의 제어 또는 다른 제어 장치들에 의해서 다양한 기능들을 실행할 수 있는, 메모리, 프로세싱, 로직(logic), 룩업 테이블(look-up table) 등과 같은 직접 회로 구성들을 채용할 수 있다. 본 발명에의 구성 요소들이 소프트웨어 프로그래밍 또는 소프트웨어 요소들로 실행될 수 있는 것과 유사하게, 본 발명은 데이터 구조, 프로세스들, 루틴들 또는 다른 프로그래밍 구성들의 조합으로 구현되는 다양한 알고리즘을 포함하여, C, C++, 자바(Java), 어셈블러(assembler) 등과 같은 프로그래밍 또는 스크립팅 언어로 구현될 수 있다. 기능적인 측면들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다. 또한, 본 발명은 전자적인 환경 설정, 신호 프로세싱, 및/또는 데이터 프로세싱 등을 위하여 종래 기술을 채용할 수 있다. 매커니즘’, ‘요소’, ‘수단’, ‘구성’과 같은 용어는 넓게 사용될 수 있으며, 기계적이고 물리적인 구성들로서 한정되는 것은 아니다. 상기 용어는 프로세서 등과 연계하여 소프트웨어의 일련의 프로세싱들(routines)의 의미를 포함할 수 있다.
본 발명에서 설명하는 특정 실행들은 일 실시 예들로서, 어떠한 방법으로도 본 발명의 범위를 한정하는 것은 아니다. 명세서의 간결함을 위하여, 종래 전자적인 구성들, 제어 시스템들, 소프트웨어, 상기 시스템들의 다른 기능적인 측면들의 기재는 생략될 수 있다. 또한, 도면에 도시된 구성 요소들 간의 선들의 연결 또는 연결 부재들은 기능적인 연결 및/또는 물리적 또는 회로적 연결들을 예시적으로 나타낸 것으로서, 실제 장치에서는 대체 가능하거나 추가의 다양한 기능적인 연결, 물리적인 연결, 또는 회로 연결들로서 나타내어질 수 있다. 또한, ‘필수적인’, ‘중요하게’ 등과 같이 구체적인 언급이 없다면 본 발명의 적용을 위하여 반드시 필요한 구성 요소가 아닐 수 있다.
본 발명의 명세서(특히 특허청구범위에서)에서 ‘상기’의 용어 및 이와 유사한 지시 용어의 사용은 단수 및 복수 모두에 해당하는 것일 수 있다. 또한, 본 발명에서 범위(range)를 기재한 경우 상기 범위에 속하는 개별적인 값을 적용한 발명을 포함하는 것으로서(이에 반하는 기재가 없다면), 발명의 상세한 설명에 상기 범위를 구성하는 각 개별적인 값을 기재한 것과 같다. 마지막으로, 본 발명에 따른 방법을 구성하는 단계들에 대하여 명백하게 순서를 기재하거나 반하는 기재가 없다면, 상기 단계들은 적당한 순서로 행해질 수 있다. 반드시 상기 단계들의 기재 순서에 따라 본 발명이 한정되는 것은 아니다. 본 발명에서 모든 예들 또는 예시적인 용어(예들 들어, 등등)의 사용은 단순히 본 발명을 상세히 설명하기 위한 것으로서 특허청구범위에 의해 한정되지 않는 이상 상기 예들 또는 예시적인 용어로 인해 본 발명의 범위가 한정되는 것은 아니다. 또한, 당업자는 다양한 수정, 조합 및 변경이 부가된 특허청구범위 또는 그 균등물의 범주 내에서 설계 조건 및 팩터에 따라 구성될 수 있음을 알 수 있다.

Claims (25)

  1. 멀티미디어 신호의 프로세싱 방법에 있어서,
    멀티미디어 신호를 획득하는 단계;
    상기 획득된 멀티미디어 신호의 프로세싱을 위해 이용되는 적어도 하나의 커널을 결정하는 단계;
    상기 획득된 커널의 구조에 따라 커널의 근사화를 수행하는 단계; 및
    상기 근사화된 커널을 이용하여 상기 획득된 멀티미디어 신호의 프로세싱을 수행하는 단계를 포함하는 이미지 프로세싱 방법.
  2. 제 1 항에 있어서,
    상기 커널을 근사화하는 단계는,
    상기 획득된 커널의 구조에 따라 적어도 하나의 미니 커널로 분할하는 단계를 포함하며,
    상기 분할하는 단계는,
    상기 획득된 커널 내의 공간적 연결성에 기초하여 상기 획득된 커널의 내부의 패턴 타입 및 패턴 위치를 판단하는 단계; 및
    상기 판단 결과에 기초하여 상기 획득된 커널을 적어도 하나의 미니 커널로 분할하는 단계를 포함하는 방법.
  3. 제 2 항에 있어서,
    상기 분할하는 단계는,
    상기 분할된 적어도 하나의 미니 커널 각각을 패턴화된 커널 및 가중치로 변환하는 단계를 더 포함하는 방법.
  4. 제 3 항에 있어서,
    상기 프로세싱을 수행하는 단계는,
    상기 멀티미디어 신호에 상기 각각의 패턴화된 커널 및 가중치를 적용하는 단계;
    상기 각각의 패턴화된 커널 및 가중치가 적용된 결과 값을 합산하는 단계를 더 포함하는 방법.
  5. 제 3 항에 있어서,
    상기 방법은,
    상기 획득한 멀티미디어 신호에 커널이 포함할 수 있는 적어도 하나의 패턴 타입 각각을 적용한 복수의 결과 배열들을 포함하는 부분 합 테이블을 생성하는 단계를 더 포함하는 방법.
  6. 제 5 항에 있어서,
    상기 멀티미디어 신호의 프로세싱을 수행하는 방법은,
    상기 패턴화된 커널의 패턴 타입에 기초하여, 상기 부분 합 테이블 내의 복수의 결과 배열들을 선택하는 단계; 및
    상기 선택된 복수의 결과 배열들에 기초하여 프로세싱을 수행하는 단계를 포함하는 것을 특징으로 하는 방법.
  7. 제 6 항에 있어서,
    상기 선택된 복수의 결과 배열에 기초하여 프로세싱을 수행하는 단계는,
    상기 패턴화된 커널 각각과 대응하는 가중치를 상기 선택된 배열들 각각에 적용하는 단계; 및
    상기 가중치가 적용된 복수의 배열들을 합산하는 단계를 포함하는 방법.
  8. 제 6 항에 있어서,
    상기 부분 합 테이블 내의 적어도 하나의 배열을 선택하는 단계는,
    상기 적어도 하나의 분할된 커널 내의 패턴 위치에 기초하여 상기 선택된 복수의 배열 내의 일부 또는 전부의 값을 선택하는 단계를 더 포함하는 방법.
  9. 제 1 항에 있어서,
    상기 방법은,
    상기 프로세싱된 멀티미디어 신호로부터 특징을 추출하는 단계를 더 포함하고,
    상기 커널은 상기 멀티미디어 신호에 추출하고자 하는 특징에 기초하여 결정되는 것을 특징으로 하는 방법.
  10. 제 2 항에 있어서,
    상기 결정하는 단계는,
    상기 획득된 커널과 상기 미니 커널들의 합의 차이가 최소화되도록 패턴 타입 및 패턴 위치를 결정하는 것을 특징으로 하는 방법.
  11. 제 1항에 있어서,
    상기 프로세싱 하는 단계는,
    상기 멀티미디어 신호 및 상기 근사화된 커널을 이용하여 소정의 연산을 수행하는 단계를 포함하는 것을 특징으로 하는 방법.
  12. 제 6 항에 있어서,
    상기 프로세싱 하는 단계는,
    추가적인 커널을 이용하여 상기 프로세싱된 멀티미디어 신호에 추가적인 프로세싱을 수행하는 단계; 및
    상기 획득된 커널 이외의 커널을 이용하여 병렬적으로 상기 멀티미디어 신호의 프로세싱을 수행하는 단계를 더 포함하는 방법.
  13. 멀티미디어 신호의 프로세싱 장치에 있어서,
    멀티미디어 신호를 획득하는 신호 획득부; 및
    상기 획득된 멀티미디어 신호의 프로세싱을 위해 이용되는 적어도 하나의 커널을 결정하고, 상기 획득된 커널의 구조에 따라 커널의 근사화를 수행하며, 상기 근사화된 커널을 이용하여 상기 획득된 멀티미디어 신호의 프로세싱을 수행하는 프로세서를 포함하는 이미지 프로세싱 장치.
  14. 제 13 항에 있어서,
    상기 커널의 근사화는 상기 획득된 커널의 구조에 따라 적어도 하나의 미니 커널로 분할하는 것을 포함하며,
    상기 프로세서는, 상기 획득된 커널 내의 공간적 연결성에 기초하여 상기 획득된 커널의 내부의 패턴 타입 및 패턴 위치를 판단하고, 상기 판단 결과에 기초하여 상기 획득된 커널을 적어도 하나의 미니 커널로 분할하는 것을 특징으로 하는 장치.
  15. 제 14 항에 있어서,
    상기 프로세서는, 상기 분할된 적어도 하나의 미니 커널 각각을 패턴화된 커널 및 가중치로 변환하는 것을 특징으로 하는 장치.
  16. 제 15 항에 있어서,
    상기 프로세서는, 상기 멀티미디어 신호에 상기 각각의 패턴화된 커널 및 가중치를 적용하고, 상기 각각의 패턴화된 커널 및 가중치가 적용된 결과 값을 합산하는 것을 특징으로 하는 장치.
  17. 제 16 항에 있어서,
    상기 프로세서는,
    상기 획득한 멀티미디어 신호에 커널이 포함할 수 있는 적어도 하나의 패턴 타입 각각을 적용한 복수의 결과 배열들을 포함하는 부분 합 테이블을 생성하는 것을 특징으로 하는 장치.
  18. 제 17 항에 있어서,
    상기 프로세서는,
    상기 패턴화된 커널의 패턴 타입에 기초하여, 상기 부분 합 테이블 내의 복수의 결과 배열들을 선택하고, 상기 선택된 복수의 결과 배열들에 기초하여 프로세싱을 수행하는 것을 특징으로 하는 장치.
  19. 제 18 항에 있어서,
    상기 프로세서는, 상기 패턴화된 커널 각각과 대응하는 가중치를 상기 선택된 배열들 각각에 적용하고, 상기 가중치가 적용된 복수의 배열들을 합산하는 것을 특징으로 하는 장치.
  20. 제 18 항에 있어서,
    상기 프로세서는, 상기 적어도 하나의 분할된 커널 내의 패턴 위치에 기초하여 상기 선택된 복수의 배열 내의 일부 또는 전부의 값을 선택하는 것을 특징으로 하는 장치.
  21. 제 13 항에 있어서,
    상기 프로세서는, 상기 프로세싱된 멀티미디어 신호로부터 특징을 추출하고, 상기 커널은 상기 멀티미디어 신호에 추출하고자 하는 특징에 기초하여 결정되는 것을 특징으로 하는 장치.
  22. 제 14 항에 있어서,
    상기 프로세서는,
    상기 획득된 커널과 상기 미니 커널들의 합의 차이가 최소화되도록 패턴 타입 및 패턴 위치를 결정하는 것을 특징으로 하는 장치.
  23. 제 13 항에 있어서,
    상기 프로세서는,
    상기 멀티미디어 신호 및 상기 근사화된 커널을 이용하여 소정의 연산을 수행하는 것을 특징으로 하는 장치.
  24. 제 18 항에 있어서,
    상기 프로세서는,
    추가적인 커널을 이용하여 상기 프로세싱된 멀티미디어 신호에 추가적인 프로세싱을 수행하며,
    상기 획득된 커널 이외의 커널을 이용하여 병렬적으로 상기 멀티미디어 신호의 프로세싱을 수행하는 것을 특징으로 하는 장치.
  25. 제 1 항 내지 제 12 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
KR1020160179310A 2016-12-26 2016-12-26 멀티미디어 신호의 프로세싱 방법, 장치 및 시스템 KR20180075220A (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020160179310A KR20180075220A (ko) 2016-12-26 2016-12-26 멀티미디어 신호의 프로세싱 방법, 장치 및 시스템
PCT/KR2017/015188 WO2018124624A1 (en) 2016-12-26 2017-12-21 Method, device, and system for processing multimedia signal
EP17887811.2A EP3529776B1 (en) 2016-12-26 2017-12-21 Method, device, and system for processing multimedia signal
US15/854,568 US10963728B2 (en) 2016-12-26 2017-12-26 Method, device, and system for processing multimedia signal

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160179310A KR20180075220A (ko) 2016-12-26 2016-12-26 멀티미디어 신호의 프로세싱 방법, 장치 및 시스템

Publications (1)

Publication Number Publication Date
KR20180075220A true KR20180075220A (ko) 2018-07-04

Family

ID=62629816

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160179310A KR20180075220A (ko) 2016-12-26 2016-12-26 멀티미디어 신호의 프로세싱 방법, 장치 및 시스템

Country Status (4)

Country Link
US (1) US10963728B2 (ko)
EP (1) EP3529776B1 (ko)
KR (1) KR20180075220A (ko)
WO (1) WO2018124624A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102548718B1 (ko) * 2017-06-07 2023-06-28 삼성전자주식회사 전자 장치 및 그 제어 방법
US20200250842A1 (en) * 2019-01-31 2020-08-06 Samsung Electronics Co., Ltd. Method and apparatus with convolution neural network processing
JP7370158B2 (ja) * 2019-04-03 2023-10-27 株式会社Preferred Networks 情報処理装置および情報処理方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013089155A1 (ja) 2011-12-12 2013-06-20 株式会社 日立メディコ X線ct装置および散乱x線補正方法
US9064299B2 (en) * 2012-08-17 2015-06-23 Karl P. Sims Filters and functions using exponential decay
US9330332B2 (en) * 2012-10-05 2016-05-03 Raytheon Bbn Technologies Corp. Fast computation of kernel descriptors
US8917952B2 (en) * 2012-10-22 2014-12-23 Siemens Medical Solutions Usa, Inc. Parallel image convolution processing with SVD kernel data
JP6071144B2 (ja) 2013-07-31 2017-02-01 富士フイルム株式会社 放射線画像解析装置および方法並びにプログラム
US9252980B2 (en) * 2013-11-11 2016-02-02 Verizon Patent And Licensing Inc. Cloud services for wearable and snappable devices
CN105469363B (zh) * 2014-09-05 2018-05-18 华为技术有限公司 基于模糊图像生成清晰图像的方法和装置
US10157309B2 (en) * 2016-01-14 2018-12-18 Nvidia Corporation Online detection and classification of dynamic gestures with recurrent convolutional neural networks
US20170316578A1 (en) * 2016-04-29 2017-11-02 Ecole Polytechnique Federale De Lausanne (Epfl) Method, System and Device for Direct Prediction of 3D Body Poses from Motion Compensated Sequence
US10157462B2 (en) * 2016-06-27 2018-12-18 University Of Central Florida Research Foundation, Inc. System and method for image-based quantification of white and brown adipose tissue at the whole-body, organ and body-region levels
US10402697B2 (en) * 2016-08-01 2019-09-03 Nvidia Corporation Fusing multilayer and multimodal deep neural networks for video classification
US10089556B1 (en) * 2017-06-12 2018-10-02 Konica Minolta Laboratory U.S.A., Inc. Self-attention deep neural network for action recognition in surveillance videos

Also Published As

Publication number Publication date
EP3529776B1 (en) 2021-10-20
WO2018124624A1 (en) 2018-07-05
US20180181829A1 (en) 2018-06-28
EP3529776A1 (en) 2019-08-28
EP3529776A4 (en) 2019-10-30
US10963728B2 (en) 2021-03-30

Similar Documents

Publication Publication Date Title
EP3496008A1 (en) Method and apparatus for processing convolution operation in neural network
US20210019633A1 (en) System and method for shift-based information mixing across channels for shufflenet-like neural networks
JP2022500754A (ja) 画像セグメンテーション方法、装置、コンピュータ機器およびコンピュータプログラム
KR20190051697A (ko) 뉴럴 네트워크의 디컨벌루션 연산을 수행하는 장치 및 방법
EP3674987A1 (en) Method and apparatus for processing convolution operation in neural network
CN111860485B (zh) 图像识别模型的训练方法、图像的识别方法、装置、设备
JP7417631B2 (ja) 畳み込みニューラルネットワークベースのランドマークトラッカ
KR20220028057A (ko) 신경망에 대한 카운터 기반 곱셈 및 누산 회로
KR20180075220A (ko) 멀티미디어 신호의 프로세싱 방법, 장치 및 시스템
US20170161942A1 (en) Method and device for processing graphics data in graphics processing unit
JP2022541721A (ja) 効率的な乗算のための代替数字形式をサポートするシステムおよび方法
JP6902811B2 (ja) 視差推定システムと方法、電子機器及びコンピュータ可読記憶媒体
CN112990053B (zh) 图像处理方法、装置、设备及存储介质
EP4181092A1 (en) Method and apparatus with face landmark coordinate prediction
US20220058026A1 (en) Efficient multiply-accumulation based on sparse matrix
JP2022540301A (ja) 逆畳み込みのための最適化
TW202219831A (zh) 圖像處理方法、電子設備和電腦可讀儲存介質
CN111133457A (zh) 电子设备及其控制方法
EP3690757A1 (en) Method and apparatus with convolution neural network processing
CN112115900A (zh) 图像处理方法、装置、设备及存储介质
CN108875574B (zh) 行人检测误报结果的检测方法、装置、系统和存储介质
CN113724191A (zh) 图像识别方法、装置、设备及存储介质
KR20230018375A (ko) 구조화된 콘볼루션들 및 연관된 가속
KR20200056898A (ko) 프로세싱 장치 및 프로세싱 장치에서 덧셈 연산을 처리하는 방법
WO2022196060A1 (ja) 情報処理装置、情報処理方法及び非一時的なコンピュータ可読媒体

Legal Events

Date Code Title Description
E902 Notification of reason for refusal