KR20210092588A - 영상 처리 장치 및 방법 - Google Patents
영상 처리 장치 및 방법 Download PDFInfo
- Publication number
- KR20210092588A KR20210092588A KR1020200006160A KR20200006160A KR20210092588A KR 20210092588 A KR20210092588 A KR 20210092588A KR 1020200006160 A KR1020200006160 A KR 1020200006160A KR 20200006160 A KR20200006160 A KR 20200006160A KR 20210092588 A KR20210092588 A KR 20210092588A
- Authority
- KR
- South Korea
- Prior art keywords
- macroblock
- frame
- lookup table
- unit
- image processing
- Prior art date
Links
- 238000012545 processing Methods 0.000 title claims abstract description 101
- 238000000034 method Methods 0.000 title claims description 44
- 238000013528 artificial neural network Methods 0.000 claims description 104
- 238000004891 communication Methods 0.000 claims description 37
- 238000003672 processing method Methods 0.000 claims description 9
- 230000004044 response Effects 0.000 claims description 8
- 238000010586 diagram Methods 0.000 description 24
- 238000012549 training Methods 0.000 description 22
- 230000008569 process Effects 0.000 description 20
- 238000011156 evaluation Methods 0.000 description 19
- 238000013527 convolutional neural network Methods 0.000 description 15
- 230000006835 compression Effects 0.000 description 13
- 238000007906 compression Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 10
- 238000011176 pooling Methods 0.000 description 10
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 6
- 238000013473 artificial intelligence Methods 0.000 description 6
- 239000000284 extract Substances 0.000 description 5
- 238000007781 pre-processing Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000011017 operating method Methods 0.000 description 3
- 238000013139 quantization Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000000306 recurrent effect Effects 0.000 description 2
- 230000002787 reinforcement Effects 0.000 description 2
- 230000003321 amplification Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000010409 thin film Substances 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/136—Incoming video signal characteristics or properties
- H04N19/137—Motion inside a coding unit, e.g. average field, frame or block difference
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/167—Position within a video image, e.g. region of interest [ROI]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/002—Image coding using neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/02—Digital function generators
- G06F1/03—Digital function generators working, at least partly, by table look-up
-
- G06K9/00624—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
- G06T3/4046—Scaling of whole images or parts thereof, e.g. expanding or contracting using neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/60—Type of objects
- G06V20/64—Three-dimensional objects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/20—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Mathematical Physics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Databases & Information Systems (AREA)
- Medical Informatics (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
영상 처리 장치가 개시된다. 영상 처리 장치는 영상 시퀀스로부터 프레임을 획득하는 복호화부, 하나 이상의 인스트럭션을 저장하는 메모리 및 메모리에 저장된 하나 이상의 인스트럭션을 실행하는 프로세서를 포함하고, 프로세서는 하나 이상의 인스트럭션을 실행함으로써, 영상 시퀀스에 포함된 매크로블록의 타입 정보를 이용하여, 프레임에서 소정 영역을 식별할 수 있다.
Description
개시된 다양한 실시 예들은 영상 처리 장치 및 그 동작 방법에 관한 것으로서, 보다 상세하게는 압축 영상의 부호화 정보를 이용하여 객체 인식을 수행할 영역을 식별하고, 식별된 영역에서 객체 인식이 수행되도록 하는 영상 처리 장치 및 방법에 관한 것이다.
비디오 신호는 픽쳐(Picture)로 구성되어 있으며, 각 픽쳐들은 블록(Block)과 같은 소정의 영역으로 분할된다. 분할된 블록은 부호화 방법에 따라 크게 인트라 블록(Intra Block)과 인터 블록(Inter Block)으로 분류된다. 부호화된 영상 데이터는 각 비디오 코덱에서 규정한 소정 포맷에 따라 비트스트림으로 생성되어 디코딩 장치로 전송된다. 디코딩 장치는 영상 시퀀스를 복호화하여 영상 데이터를 출력한다.
인공지능(Artificial Intelligence, 이하, AI) 시스템은 기계가 스스로 학습(training)하고 판단하며 목적하는 결과를 도출하거나 목적하는 동작을 수행하는 시스템이다.
다양한 실시 예들은 압축 영상의 부호화 정보를 이용하여 객체 인식을 수행할 영역을 식별하는 영상 처리 장치 및 방법을 제공하기 위한 것이다.
다양한 실시 예들은 식별된 영역에서 객체 인식을 수행하는 영상 처리 장치 및 방법을 제공하기 위한 것이다.
일 실시 예에 따른 영상 처리 장치는 영상 시퀀스로부터 프레임을 획득하는 복호화부, 하나 이상의 인스트럭션을 저장하는 메모리 및 상기 메모리에 저장된 상기 하나 이상의 인스트럭션을 실행하는 프로세서를 포함하고, 상기 프로세서는 상기 하나 이상의 인스트럭션을 실행함으로써, 상기 영상 시퀀스에 포함된 매크로블록의 타입 정보를 이용하여, 상기 프레임에서 소정 영역을 식별할 수 있다.
실시 예에서, 상기 프로세서는 상기 매크로블록의 상기 타입 정보를 이용하여 상기 프레임의 픽셀 별로 1 또는 0 중 하나의 값을 가지는 룩업 테이블을 생성하여 상기 프레임에서 상기 소정 영역을 식별할 수 있다.
실시 예에서, 상기 프로세서는 뉴럴 네트워크를 이용하여 상기 프레임의 상기 식별된 소정 영역에서 객체 인식 연산을 수행하고, 상기 식별된 소정 영역 외의 영역에서 상기 객체 인식 연산 수행을 생략할 수 있다.
실시 예에서, 상기 프로세서는 상기 프레임의 픽셀들 중 상기 룩업 테이블 값이 1인 픽셀들의 수가 소정 개수 이상인 것에 기반하여, 상기 뉴럴 네트워크가 상기 프레임의 상기 식별된 소정 영역에서 상기 객체 인식 연산을 수행하도록 할 수 있다.
실시 예에서, 상기 영상 처리 장치는 뉴럴 네트워크와 통신하는 통신부를 더 포함하고, 상기 통신부는 상기 프레임과 상기 룩업 테이블을 상기 뉴럴 네트워크로 전송하여, 상기 뉴럴 네트워크가 상기 프레임의 상기 식별된 소정 영역에서 객체 인식 연산을 수행하도록 하고 상기 식별된 소정 영역 외의 영역에서 상기 객체 인식 연산 수행을 생략하도록 할 수 있다.
실시 예에서, 상기 프로세서는 상기 타입 정보로부터 식별된 상기 매크로블록이 스킵 매크로블록인 것에 상응하여, 상기 스킵 매크로블록의 픽셀에 대한 룩업 테이블 값이 0이 되도록 할 수 있다.
실시 예에서, 상기 프로세서는 연속된 스킵 매크로블록의 개수를 식별하고, 상기 식별된 개수만큼 연속된 스킵 매크로블록의 픽셀에 대한 룩업 테이블 값이 0이 되도록 할 수 있다.
실시 예에서, 상기 프로세서는 상기 타입 정보로부터 식별된 상기 매크로블록이 인트라 매크로블록인 것에 상응하여, 상기 인트라 매크로블록의 픽셀에 대한 룩업 테이블 값이 1이 되도록 할 수 있다.
실시 예에서, 상기 프로세서는 상기 타입 정보로부터 식별된 상기 매크로블록이 인터 매크로블록인 것에 상응하여, 상기 인터 매크로블록의 움직임 정보가 소정 기준을 만족하는지에 따라 상기 인터 매크로블록의 픽셀에 대한 룩업 테이블 값이 1 또는 0 중 하나가 되도록 할 수 있다.
실시 예에서, 상기 프로세서는 상기 움직임 정보에 포함된 모션 벡터의 크기가 기준 값 이하인 것에 상응하여 상기 인터 매크로블록의 픽셀에 대한 룩업 테이블 값이 0이 되도록 할 수 있다.
일 실시 예에 따른 영상 처리 방법은, 영상 시퀀스를 디코딩하여 프레임을 획득하는 단계, 상기 영상 시퀀스에 포함된 매크로블록의 타입 정보를 이용하여, 상기 프레임에서 소정 영역을 식별하는 단계 및 뉴럴 네트워크를 이용하여 상기 프레임의 상기 식별된 소정 영역에서 객체 인식 연산을 수행하고, 상기 식별된 소정 영역 외의 영역에서 상기 객체 인식 연산 수행을 생략하는 단계를 포함할 수 있다.
실시 예에서, 상기 프레임의 상기 소정 영역을 식별하는 단계는 상기 매크로블록의 상기 타입 정보를 이용하여 상기 프레임의 픽셀 별로 1 또는 0 중 하나의 값을 가지는 룩업 테이블을 생성하는 단계 및 상기 룩업 테이블을 이용하여 상기 프레임의 상기 소정 영역을 식별하는 단계를 포함할 수 있다.
실시 예에서, 상기 객체 인식 연산을 수행하는 단계는 상기 뉴럴 네트워크를 이용하여 상기 룩업 테이블 값이 1인 픽셀들의 영역을 상기 소정 영역으로 식별하는 단계를 포함할 수 있다.
실시 예에서, 상기 식별된 소정 영역에서 객체 인식 연산을 수행하는 단계는, 상기 프레임의 픽셀들 중 상기 룩업 테이블 값이 1인 픽셀들의 수가 소정 개수 이상인 것에 기반하여 상기 식별된 소정 영역에서 객체 인식 연산을 수행하는 단계를 포함할 수 있다.
실시 예에서, 상기 룩업 테이블을 생성하는 단계는 상기 타입 정보로부터 식별된 상기 매크로블록이 스킵 매크로블록인 것에 상응하여, 상기 스킵 매크로블록의 픽셀에 대한 룩업 테이블 값이 0이 되도록 하는 단계를 포함할 수 있다.
실시 예에서, 영상 처리 방법은 연속된 스킵 매크로블록의 개수를 식별하는 단계를 더 포함하고, 상기 스킵 매크로블록의 픽셀에 대한 룩업 테이블 값을 0으로 설정하는 단계는 상기 식별된 개수만큼 연속된 스킵 매크로블록의 픽셀에 대한 룩업 테이블 값이 0이 되도록 하는 단계를 포함할 수 있다.
실시 예에서, 상기 룩업 테이블을 생성하는 단계는 상기 타입 정보로부터 식별된 상기 매크로블록이 인트라 매크로블록인 것에 상응하여, 상기 인트라 매크로블록의 픽셀에 대한 룩업 테이블 값이 1이 되도록 하는 단계를 포함할 수 있다.
실시 예에서, 상기 룩업 테이블을 생성하는 단계는 상기 타입 정보로부터 식별된 상기 매크로블록이 인터 매크로블록인 것에 상응하여, 상기 인터 매크로블록의 움직임 정보가 소정 기준을 만족하는지에 따라 상기 인터 매크로블록의 픽셀에 대한 룩업 테이블 값이 1 또는 0 중 하나가 되도록 하는 단계를 포함할 수 있다.
실시 예에서, 상기 룩업 테이블을 생성하는 단계는 상기 움직임 정보에 포함된 모션 벡터의 크기가 기준 값 이하인 것에 상응하여, 상기 인터 매크로블록의 픽셀에 대한 룩업 테이블 값이 0이 되도록 하는 단계를 포함할 수 있다.
일 실시 예에 따른 컴퓨터로 판독 가능한 기록 매체는 영상 시퀀스를 디코딩하여 프레임을 획득하는 단계, 상기 영상 시퀀스에 포함된 매크로블록의 타입 정보를 이용하여, 상기 프레임에서 소정 영역을 식별하는 단계 및 뉴럴 네트워크를 이용하여 상기 프레임의 상기 식별된 소정 영역에서 객체 인식 연산을 수행하고, 상기 식별된 소정 영역 외의 영역에서 상기 객체 인식 연산 수행을 생략하는 단계를 포함하는 영상 처리 방법을 구현하기 위한 프로그램이 기록된 컴퓨터로 판독 가능한 기록 매체일 수 있다.
일 실시 예에 따른 영상 처리 장치 및 방법은, 압축 영상의 비트스트림으로부터 획득한 부호화 정보를 이용하여 객체 인식을 수행할 영역을 식별할 수 있다.
일 실시 예에 따른 영상 처리 장치 및 방법은, 식별된 영역에 대해서만 객체 인식을 수행하여, 객체 인식 수행에 소요되는 시간 및 연산량을 줄일 수 있다.
도 1은 일 실시 예에 따른 영상 처리 장치(100)의 내부 블록도이다.
도 2는 실시 예에 따른 영상 시퀀스 압축 포맷의 한 예를 도시한다.
도 3은 일 실시 예에 따른 영상 처리 장치(300)의 내부 블록도이다.
도 4는 실시 예에 따른 영역 정보 생성부(400)의 내부 블록도이다.
도 5는 실시 예에 따른 영상 처리 장치(500)의 내부 블록도이다.
도 6은 실시 예에 따른 영상 처리 장치(600)의 내부 블록도이다.
도 7은 실시 예에 따른 영상 처리 장치(700)의 내부 블록도이다.
도 8은 실시 예에 따른 영상 처리 장치(800)의 내부 블록도이다.
도 9는 실시 예에 따라 객체 인식을 수행하는 뉴럴 네트워크를 설명하기 위한 일 도면이다.
도 10은 실시 예에 따라 뉴럴 네트워크가 컨볼루션 레이어에서 컨볼루션 연산을 수행하는 과정을 단순화시켜 설명하기 위한 도면이다.
도 11은 실시 예에 따른 룩업 테이블 생성 과정을 도시한 순서도이다.
도 12는 실시 예에 따른 룩업 테이블 생성 과정을 도시한 순서도이다.
도 13은 실시 예에 따라 객체 인식을 수행하는 과정을 도시한 순서도이다.
도 14는 실시 예에 따른 컴퓨팅 장치(1400)의 구성을 나타내는 블록도이다.
도 15는 일 실시예에 따른 데이터 학습부(1410)의 블록도이다.
도 16은 일 실시예에 따른 데이터 인식부(1420)의 구성을 나타내는 블록도이다.
도 2는 실시 예에 따른 영상 시퀀스 압축 포맷의 한 예를 도시한다.
도 3은 일 실시 예에 따른 영상 처리 장치(300)의 내부 블록도이다.
도 4는 실시 예에 따른 영역 정보 생성부(400)의 내부 블록도이다.
도 5는 실시 예에 따른 영상 처리 장치(500)의 내부 블록도이다.
도 6은 실시 예에 따른 영상 처리 장치(600)의 내부 블록도이다.
도 7은 실시 예에 따른 영상 처리 장치(700)의 내부 블록도이다.
도 8은 실시 예에 따른 영상 처리 장치(800)의 내부 블록도이다.
도 9는 실시 예에 따라 객체 인식을 수행하는 뉴럴 네트워크를 설명하기 위한 일 도면이다.
도 10은 실시 예에 따라 뉴럴 네트워크가 컨볼루션 레이어에서 컨볼루션 연산을 수행하는 과정을 단순화시켜 설명하기 위한 도면이다.
도 11은 실시 예에 따른 룩업 테이블 생성 과정을 도시한 순서도이다.
도 12는 실시 예에 따른 룩업 테이블 생성 과정을 도시한 순서도이다.
도 13은 실시 예에 따라 객체 인식을 수행하는 과정을 도시한 순서도이다.
도 14는 실시 예에 따른 컴퓨팅 장치(1400)의 구성을 나타내는 블록도이다.
도 15는 일 실시예에 따른 데이터 학습부(1410)의 블록도이다.
도 16은 일 실시예에 따른 데이터 인식부(1420)의 구성을 나타내는 블록도이다.
아래에서는 첨부한 도면을 참조하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 개시의 실시 예를 상세히 설명한다. 그러나 본 개시는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다.
본 개시에서 사용되는 용어는, 본 개시에서 언급되는 기능을 고려하여 현재 사용되는 일반적인 용어로 기재되었으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 다양한 다른 용어를 의미할 수 있다. 따라서 본 개시에서 사용되는 용어는 용어의 명칭만으로 해석되어서는 안되며, 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 해석되어야 한다.
또한, 본 개시에서 사용된 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것이며, 본 개시를 한정하려는 의도로 사용되는 것이 아니다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다.
본 명세서, 특히, 특허 청구 범위에서 사용된 “상기” 및 이와 유사한 지시어는 단수 및 복수 모두를 지시하는 것일 수 있다. 또한, 본 개시에 따른 방법을 설명하는 단계들의 순서를 명백하게 지정하는 기재가 없다면, 기재된 단계들은 적당한 순서로 행해질 수 있다. 기재된 단계들의 기재 순서에 따라 본 개시가 한정되는 것은 아니다.
본 명세서에서 다양한 곳에 등장하는 "일부 실시 예에서" 또는 "일 실시 예에서" 등의 어구는 반드시 모두 동일한 실시 예를 가리키는 것은 아니다.
본 개시의 일부 실시 예는 기능적인 블록 구성들 및 다양한 처리 단계들로 나타내어질 수 있다. 이러한 기능 블록들의 일부 또는 전부는, 특정 기능들을 실행하는 다양한 개수의 하드웨어 및/또는 소프트웨어 구성들로 구현될 수 있다. 예를 들어, 본 개시의 기능 블록들은 하나 이상의 마이크로프로세서들에 의해 구현되거나, 소정의 기능을 위한 회로 구성들에 의해 구현될 수 있다. 또한, 예를 들어, 본 개시의 기능 블록들은 다양한 프로그래밍 또는 스크립팅 언어로 구현될 수 있다. 기능 블록들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다. 또한, 본 개시는 전자적인 환경 설정, 신호 처리, 및/또는 데이터 처리 등을 위하여 종래 기술을 채용할 수 있다. “매커니즘”, “요소”, “수단” 및 “구성”등과 같은 용어는 넓게 사용될 수 있으며, 기계적이고 물리적인 구성들로서 한정되는 것은 아니다.
또한, 도면에 도시된 구성 요소들 간의 연결 선 또는 연결 부재들은 기능적인 연결 및/또는 물리적 또는 회로적 연결들을 예시적으로 나타낸 것일 뿐이다. 실제 장치에서는 대체 가능하거나 추가된 다양한 기능적인 연결, 물리적인 연결, 또는 회로 연결들에 의해 구성 요소들 간의 연결이 나타내어질 수 있다.
또한, 명세서에 기재된 "...부", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.
또한, 명세서에서 “사용자”라는 용어는 영상 처리 장치를 이용하여 영상 처리 장치의 기능 또는 동작을 제어하는 사람을 의미하며, 시청자, 관리자 또는 설치 기사를 포함할 수 있다.
이하 첨부된 도면을 참고하여 본 개시를 상세히 설명하기로 한다.
도 1은 일 실시 예에 따른 영상 처리 장치(100)의 내부 블록도이다. 도 1을 참조하면, 실시 예에 따른 영상 처리 장치(100)는 디코딩부(110), 영역 정보 생성부(120) 및 객체 인식부(130)를 포함할 수 있다.
실시 예에서, 영상 처리 장치(100)는 압축된 영상을 복호화하여 출력할 수 있는 전자 장치일 수 있다. 영상 처리 장치(100)는 고정형 또는 이동형일 수 있다. 영상 처리 장치(100)는 압축 영상을 복호화할 수 있는, 데스크탑, 디지털 TV, 스마트 폰(smartphone), 태블릿 PC(tablet personal computer), 이동 전화기(mobile phone), 화상전화기, 전자북 리더기(e-book reader), 랩탑 PC(laptop personal computer), 넷북 컴퓨터(netbook computer), 디지털 카메라, PDA(Personal Digital Assistants), PMP(Portable Multimedia Player), 캠코더, 네비게이션, 웨어러블 장치(wearable device), 스마트 와치(smart watch), 홈네트워크 시스템, 보안 시스템, 의료 장치 중 적어도 하나를 포함할 수 있으나, 이에 한정되는 것은 아니다.
비디오, 오디오 등을 포함하는 멀티미디어 데이터는 그 양이 방대하여 전송 시에 넓은 대역폭을 필요로 한다. 예컨대, 4K 이상 해상도의 무 압축 영상은 중장거리 전송이 불가능할 수준으로 높은 대역폭을 필요로 한다. UHD 방송 표준 해상도인 3840x2160해상도를 가진 4K 60FPS 무압축 영상은, 초당 11,384Bbps라는 매우 높은 대역폭을 필요로 한다. 이러한 대용량 데이터 전송을 위해서는 압축 코딩 기법을 사용하는 것이 필수적이므로, 대부분의 영상 처리 장치는 압축된 데이터를 디코딩하는 디코더를 포함하여, 디코더에서 입력된 압축 영상을 복호화한다.
도 1에서, 디코딩부(110)는 압축 영상 시퀀스로부터 프레임을 획득할 수 있다. 디코딩부(110)는 압축 영상 시퀀스를 파싱(parsing)하여 부호화 단위 블록으로 분할 할 수 있다. 부호화 단위는 인트라 예측 및/또는 인터 예측을 위해 분할되는 기본 단위일 수 있다. 실시 예에서, 부호화 단위는 매크로블록일 수 있다. 매크로블록의 크기는 고정될 수도 있으나, 가변 크기일 수도 있다. 디코딩부(110)는 부호화 정보를 이용하여 부호화 단위 별로 부호화된 영상 데이터를 복호화하고, 복호화된 영상 데이터를 모아 프레임을 생성할 수 있다. 부호화 정보는, 동영상을 부호화하는데 사용되는 정보로, 디코딩부(110)에서는 부호화 정보를 이용하여 동영상을 복호화할 수 있다. 영상 처리 장치(100)는 복호화된 프레임을 디스플레이(미도시)를 통해 출력할 수 있다. 또는 실시 예에서, 영상 처리 장치(100)는 복호화된 프레임을 객체 인식부(130)로 보낼 수 있다.
객체 인식부(130)는 프레임에서 객체 인식을 수행할 수 있다. 다만, 이는 하나의 실시 예로, 객체 인식부(130)는 씬(scene) 또는 GOP(Group Of Picture) 등에서 객체 인식을 수행할 수도 있다. 이하에서는, 설명의 편의 상, 디코딩부(110)가 출력하는 프레임에서 객체 인식을 수행하는 경우를 예로 들어 설명하도록 하나, 이에 한정되는 것은 아니다.
객체 인식부(130)는 프레임에 의미가 있는 객체가 포함되어 있는지, 및/또는 해당 객체가 움직임이 있는지 등을 식별하고 식별된 객체에 대한 정보를 획득할 수 있다.
일반적으로, 객체 인식은 프레임의 전체 영역을 스캔하여 수행된다. 이 경우, 객체를 인식하는데 소요되는 시간이 길어지고 연산량 또한 과도하다는 문제가 있다.
실시 예에서, 객체 인식부(130)는 객체 인식을 수행할 때, 디코딩부(110)로부터 받은 복호화된 프레임의 전체 영역을 스캔하여 객체 인식을 수행하는 대신, 프레임 간에 차이가 있는 영역만을 스캔하여 객체 인식을 수행할 수 있다. 이를 위해, 영상 처리 장치(100)는 영역 정보 생성부(120)를 이용하여 영역 정보를 생성하고 이를 객체 인식부(130)가 이용하도록 함으로써, 객체 인식부(130)가 소정 영역에서만 객체 인식 연산을 수행하도록 할 수 있다.
실시 예에서, 영상 처리 장치(100)는 압축 영상을 복호화하는 과정에서 획득되는 여러 부호화 정보를 이용하여, 프레임 간에 차이가 있는 영역을 표시하는 영역 정보를 생성할 수 있다. 실시 예에서, 영역 정보는 프레임에서 식별할 영역의 좌표 정보를 포함할 수 있다. 실시 예에서, 영역 정보는 프레임에서 식별할 영역과 그렇지 않은 영역을 각각 1 및 0의 이진(binary) 데이터로 표시하는 룩업 테이블일 수 있다.
객체 인식부(130)는 디코딩부(110)로부터 프레임을 수신하고, 영역 정보 생성부(120)로부터 영역 정보를 수신하여, 프레임에서 객체 인식을 수행할 영역을 식별할 수 있다. 객체 인식부(130)는 전체 프레임이 아닌, 영역 정보에 의해 식별되는 영역에서만 객체 인식을 수행할 수 있다.
실시 예에서, 객체 인식부(130)는 하나 이상의 뉴럴 네트워크를 이용하여, 영역 정보로부터 식별되는 소정 영역에서 객체 인식을 수행할 수 있다.
이와 같이, 실시 예에 의하면, 영상 처리 장치(100)는 부호화 정보를 이용하여 프레임 간에 차이가 있는 영역을 표시하는 영역 정보를 생성할 수 있다. 영상 처리 장치(100)는 프레임의 모든 영역을 스캔하여 객체 인식 연산을 수행하지 않고, 소정 영역에서만 객체 인식을 수행함으로써, 객체 인식 연산을 수행하는데 소요되는 시간 및 연산량이 감소될 수 있다.
도 2는 실시 예에 따른 영상 시퀀스 압축 포맷의 한 예를 도시한다. 도 2는 여러 압축 포맷 중, H.264/AV의 압축 포맷에 따른 영상 시퀀스를 도시한다. 다만, 이는 하나의 실시 예로, 영상 처리 장치(100)가 수신하는 영상 시퀀스는 도 2와는 다른 압축 포맷, 예컨대 HEVC 압축 포맷에 따른 영상 시퀀스이거나 또는 다른 압축 포맷에 따른 영상 시퀀스일 수도 있음은 물론이다.
도 2를 참조하면, 영상 시퀀스는 VCL NAL Units들을 포함하는 압축 비트스트림일 수 있다. 도 2에서와 같이, H.264/AVC 표준 압축 포맷은 동영상 부호화 처리를 다루는 VCL(Video Coding Layer, 비디오 부호화 계층)과 부호화된 정보를 전송하고 저장하는 하위 시스템과의 사이에 있는 NAL(Network Abstraction Layer, 네트워크 추상 계층) 계층이 분리된 구조로 구성된다.
NAL에는 슬라이스(Slice)가 포함될 수 있다. 슬라이스는 부호화의 기본 단위로, 슬라이스에는 슬라이스 헤더와 슬라이드 데이터가 포함될 수 있다. 슬라이스 데이터에는 스킵 인디케이션(skip indication)(210)과 매크로블록이 포함될 수 있다.
일반적으로, 동영상 압축 표준 기술은 블록 기반으로 압축이 수행될 수 있다. 인코딩 장치(미도시)는 입력 영상을 N x N 크기의 블록으로 분할하고, 블록 별로 압축을 수행할 수 있다. 이 때, N x N 크기의 블록은 매크로블록일 수 있다.
인코딩 장치는 스킵할 매크로블록이 있는 경우, 해당 매크로블록을 표시하는 정보를 생성할 수 있다. 이 때 스킵되는 매크로블록을 이하, 스킵 매크로블록이라 부르기로 한다.
스킵 매크로블록은 모션 벡터가 없는 인터 매크로블록일 수 있다. 스킵 매크로블록은 인코딩 장치와 디코딩부(110) 사이의 미리 정해진 약속에 따른 블록으로, 프레임 사이의 매크로블록 정보에 중복(redundancy)이 있을 때 코딩하고자 하는 해당 매크로블록의 정보가 전송되지 않고 스킵 플래그만이 전송되는 매크로블록이다.
인코딩 장치는 스킵 매크로블록을 표시하는 스킵 인디케이션(210)을 슬라이스에 포함시킬 수 있다. 스킵 인디케이션(210)은 연속된 스킵 매크로블록의 개수를 표시하는 정보일 수 있다. 즉, 스킵 인디케이션(210)은 현재 인덱스의 매크로블록으로부터 몇 개의 매크로블록을 스킵할 것인지에 대한 정보를 포함할 수 있다. 예컨대, 스킵 인디케이션(210)이 skip=3인 경우, 이는 현재 인덱스의 매크로블록부터 세 개의 매크로블록을 스킵하라는 것을 의미할 수 있다.
디코딩부(110)는 슬라이스 데이터에 포함된 매크로블록을 순차적으로 읽고, 이 순서로 매크로블록을 식별하게 된다. 디코딩부(110)는 매크로블록을 읽다가, 스킵 인디케이션(210)을 읽게 되면, 해당 매크로블록이 스킵 매크로블록이라는 것과 해당 매크로블록부터 몇 개의 매크로블록을 스킵할지를 식별할 수 있게 된다. 디코딩부(110)는 스킵 인디케이션이 가리키는 갯수 만큼의 스킵 매크로블록을 스킵하게 된다.
매크로블록은 압축 방식에 따라 인트라(intra) 매크로블록과 인터(inter) 매크로블록으로 나뉠 수 있다. 도 2에서와 같이, 매크로블록은 해당 매크로블록이 인트라 매크로블록인지, 또는 인터 매크로블록인지를 나타내는 정보(Type, 220)를 포함할 수 있다.
인트라 매크로블록은 다른 영상을 참조하지 않고, 현재 영상 내에서 독립적으로 부호화된 매크로블록이다. 즉, 인트라 매크로블록은 화면 내 부호화 방식으로 압축되므로 현재 영상에 포함된 현재의 매크로블록과 이웃하는 주위 픽셀들을 이용하여 생성된다.
인터 매크로블록은 참조 영상에서 현재 매크로블록과 유사한 예측 블록을 참조하여 부호화된 블록이다. 인코딩 장치는 이전 영상 및/또는 이후 영상 등의 참조 영상에서 현재 블록과 가장 유사한 블록을 찾아 이를 예측 블록으로 정하고, 현재 블록과 예측 블록 간의 위치의 차이를 움직임(Motion)으로 표현하여 움직임 정보를 생성할 수 있다. 움직임 정보는 어느 참조 영상을 참조했는지를 나타내는 참조 프레임 인덱스(reference frames), 예측을 과거 픽쳐에서 했는지 또는 미래 픽쳐에서 했는지를 알려주는 예측방향 플래그, 예측 블록의 위치를 나타내는 모션 벡터 (Motion Vector)(230) 중 하나 이상을 포함할 수 있다.
실시 예에서, 영역 정보 생성부(120)는 디코딩부(110)가 비트스트림으로부터 획득한 부호화 정보를 이용하여, 프레임 중 어느 영역에서 객체 인식 연산을 수행할지를 식별하는 영역 정보를 생성할 수 있다.
실시 예에서, 부호화 정보는 매크로블록이 스킵 매크로블록인지, 인트라 매크로블록인지, 인터 매크로블록인지를 표시하는 정보를 포함할 수 있다. 이하, 매크로블록의 타입을 표시하는 정보, 즉, 매크로블록이 스킵 매크로블록인지, 인트라 매크로블록인지, 인터 매크로블록인지를 표시하는 정보를 타입 정보로 부르기로 한다. 타입 정보는 도 2에 표기된 스킵 인디케이션(210) 및 타입(220) 중 하나 이상을 포함할 수 있다.
영역 정보 생성부(120)는 타입 정보 중 스킵 인디케이션(210)을 읽는 경우, 현재 매크로블록부터 소정 개수만큼의 매크로블록이 스킵 매크로블록임을 식별하고, 프레임에 포함된 픽셀 중 스킵 매크로블록에 해당하는 픽셀에서는 객체 인식 연산을 수행하지 않도록 하는 영역 정보를 생성할 수 있다.
실시 예에서, 영역 정보 생성부(120)는 타입 정보로부터 매크로블록의 타입이 인트라 매크로블록임을 식별하는 경우, 인트라 매크로블록에 대응하는 픽셀에서는 객체 인식 연산을 수행하도록 하는 영역 정보를 생성할 수 있다. 인트라 매크로블록은 다른 프레임을 참조하지 않고 독립적으로 부호화된 블록이므로, 이전 프레임과는 차이가 있는 영역을 가지고 있기 때문이다.
실시 예에서, 영역 정보 생성부(120)는 타입 정보로부터 매크로블록이 인터 매크로블록임을 식별하는 경우, 인터 매크로블록에 대응하는 픽셀에서 객체 인식 연산을 수행하도록 하는 영역 정보를 생성할 수 있다. 인터 매크로블록은 이전 프레임이나 또는 이후 프레임과 같은 참조 프레임에서 현재의 매크로블록과 유사한 매크로블록을 참조하는 매크로블록이므로, 이전 프레임에서 인터 매크로블록과 동일한 위치에 있는 매크로블록과는 차이가 있을 가능성이 높기 때문이다.
다른 실시 예에서, 영역 정보 생성부(120)는 매크로블록이 인터 매크로블록인 경우, 인터 매크로블록의 움직임 정보에 포함된 모션 벡터(230)를 획득하고, 모션 벡터(230)의 스칼라 값을 기준으로, 인터 매크로블록에 대응하는 픽셀에서 객체 인식 연산을 수행하도록 할 것인지 또는 객체 인식 연산을 수행하지 않도록 할 것인지를 판단할 수 있다.
이와 같이, 실시 예에 따르면, 영상 처리 장치(100)는 영상 시퀀스에 포함된 부호화 정보를 이용하여, 객체 인식 연산을 수행할 영역을 식별하고 식별된 영역을 표시하는 영역 정보를 생성할 수 있다.
도 3은 일 실시 예에 따른 영상 처리 장치(300)의 내부 블록도이다. 도 3을 참조하면, 영상 처리 장치(300)는 엔트로피 복호화부(310), 역 양자화부(320), 역 변환부(340), 프레임 메모리(340), 움직임 예측부(350), 가산부(360) 및 영역 정보 생성부(370)를 포함할 수 있다.
도 3에서, 엔트로피 복호화부(310), 역 양자화부(320), 역 변환부(340), 프레임 메모리(340), 움직임 예측부(350) 및 가산부(360)는 입력된 비트스트림을 디코딩하는 디코딩부의 역할을 수행할 수 있다.
엔트로피 복호화부(310)는 입력된 비트스트림을 복호화하여 양자화된 변환 블록을 추출한다. 엔트로피 복호부화(310)는 비트스트림으로부터 추출된 비트열을 복호화하고 역 스캐닝하여 양자화된 변환 계수를 가지는 양자화된 변환 블록을 복원할 수 있다. 변환 블록은 잔차 블록이 변환된 블록을 의미할 수 있다. 잔차 블록은 현재 블록과 예측 블록 간의 차를 의미할 수 있다. 엔트로피 복호화부(310)는 양자화된 변환 블록을 역 양자화부(320)로 보낸다.
또한, 엔트로피 복호화부(310)는 비트스트림에 포함된 매크로블록이 인터 매크로블록인 경우, 비트스트림으로부터 현재 매크로블록의 움직임 정보를 획득할 수 있다. 움직임 정보는 참조 프레임 인덱스, 예측방향 플래그, 모션 벡터 중 하나 이상을 포함할 수 있다. 구체적으로, 엔트로피 복호화부(310)는 비트스트림으로부터 부호화된 차분 벡터를 추출하고 이를 복호화하여 복호화된 차분 벡터를 획득할 수 있다. 또한, 엔트로피 복호화부(310)는 비트스트림으로부터 참조 프레임 인덱스 및/또는 예측 방향 플래그 등을 추출하고, 추출된 인덱스로 식별되는 위치에 해당되는 매크로블록의 움직임 벡터를 예측 움직임벡터로 복원할 수 있다. 엔트로피 복호화부(310)는 복원된 예측 움직임벡터와 복호화된 차분 벡터를 합산하여 복원하고자 하는 현재 블록의 모션 벡터를 복원할 수 있다. 엔트로피 복호화부(310)는 복원된 모션 벡터를 움직임 예측부(350)로 보낸다.
역 양자화부(320) 엔트로피 복호화부(310)로부터 수신한, 양자화된 변환 블록을 역 양자화한다. 역 변환부(330는 역 양자화부(320)로부터 수신한, 역 양자화된 변환 블록의 변환 계수를 역 변환하여 복원된 잔차 신호를 가지는 잔차 블록을 복원한다. 움직임 예측부(350)는 엔트로피 복호화부(310)로부터 수신한 움직임 정보를 이용하여, 프레임 메모리(340)에 저장된 프레임 중에서 예측 블록을 획득할 수 있다. 가산부(360)는 움직임 예측부(350)가 획득한 예측 블록과, 역 변환부(330)로부터 수신한 잔차 블록을 이용하여 현재의 인터 매크로블록을 획득할 수 있다. 또한, 가산부(360)는 현재 매크로블록이 인트라 매크로블록인 경우, 화면내 예측 모드 값을 이용하여 인트라 매크로블록을 획득할 수 있다.
영상 처리 장치(300)는 인터 매크로블록, 인트라 매크로블록, 스킵 매크로블록 중 하나 이상을 포함하는 슬라이스를 구성하고, 복수의 슬라이스를 포함하는, 복호화된 프레임을 획득할 수 있다.
실시 예에서, 영역 정보 생성부(370)는 엔트로피 복호화부(310)에 의해 복호화된 비트스트림으로부터 부호화 정보를 획득할 수 있다. 실시 예에서, 부호화 정보는, 타입 정보를 포함할 수 있다. 영역 정보 생성부(370)는 타입 정보를 획득하고 이를 기반으로 현재 매크로블록의 타입을 식별할 수 있다. 타입 정보는 매크로블록이 스킵 매크로블록인지, 인트라 매크로블록인지, 또는 인터 매크로블록인지를 나타내는 정보일 수 있다.
또는, 실시 예에서, 부호화 정보는 타입 정보 외에, 인터 매크로블록의 모션 벡터를 더 포함할 수 있다.
실시 예에서, 영역 정보 생성부(370)는 부호화 정보를 이용하여 영역 정보를 생성할 수 있다. 실시 예에서, 영역 정보는 프레임 간에 차이가 있는 영역을 식별하기 위한 정보일 수 있다. 다른 실시 예에서, 영역 정보는 프레임 간에 차이가 소정 기준치 이상인 영역을 식별하기 위한 정보일 수 있다.
영역 정보 생성부(370)는 프레임의 각 픽셀 중 객체 인식을 수행할 영역과 그렇지 않은 영역을 구분하는 정보를 영역 정보로 생성할 수 있다.
실시 예에서, 영역 정보는 객체 인식을 수행할 영역, 또는 객체 인식이 불필요한 영역을 표시하는 좌표 값일 수 있다. 영역 정보 생성부(370)는 매크로블록의 타입을 이용하여 복호화된 프레임에서 객체 인식을 수행할 영역의 좌표 값을 영역 정보로 생성하고 이를 출력할 수 있다.
실시 예에서, 영역 정보는 프레임에 포함된 픽셀들에 대응하는 룩업 테이블일 수 있다. 즉, 영역 정보는 프레임에 포함된 픽셀들 중 객체 인식을 수행할 영역의 픽셀에 대응하는 룩업 테이블 값과 객체 인식을 수행하지 않는 영역의 픽셀에 대응하는 룩업 테이블 값을 서로 다른 값으로 가지고 있는 룩업 테이블일 수 있다. 영역 정보 생성부(370)는 매크로블록의 타입을 이용하여 복호화된 프레임의 각 픽셀에 대응하는 룩업 테이블을 생성하고, 룩업 테이블의 값이 픽셀 별로 1 또는 0 중 하나의 값이 되도록 할 수 있다.
실시 예에서, 영역 정보 생성부(370)가 비트스트림에 포함된 매크로블록 타입을 읽어, 현재 매크로블록이 인터 매크로블록임을 식별한 경우, 영역 정보 생성부(370)는 인터 매크로블록에 대한 모션 벡터를 획득할 수 있다. 영역 정보 생성부(370)는 모션 벡터의 스칼라 값이 소정 값 이상인지 여부에 따라 인터 매크로블록의 픽셀에 대한 룩업 테이블 값이 1 또는 0이 되도록 할 수 있다.
영역 정보 생성부(370)는 매크로블록들에 대한 룩업 테이블을 모아 전체 하나의 프레임에 대응하는 룩업 테이블을 생성하고, 이를 영역 정보로 출력할 수 있다.
도 4는 실시 예에 따른 영역 정보 생성부(400)의 내부 블록도이다. 도 4를 참조하면, 영역 정보 생성부(400)는 타입 식별부(410) 및 영역 표시부(420)를 포함할 수 있다. 영역 표시부(420)는 룩업 테이블 생성부(421) 및 프레임 스킵 정보 생성부(423)를 포함할 수 있다.
디코딩부(110)는 부호화된 영상 시퀀스를 복호화하여 프레임을 획득하는데, 이 과정에서 부호화 정보를 획득할 수 있다.
타입 식별부(410)는 디코딩부(110)가 획득한 부호화 정보를 입력 받고(IN), 이를 이용하여 매크로블록의 타입을 식별할 수 있다. 타입 식별부(410)는 부호화 정보에 포함된 타입 정보로부터, 현재 매크로블록이 스킵 매크로블록인지, 인트라 매크로블록인지 또는 인터 매크로블록인지를 식별할 수 있다. 예컨대 타입 식별부(410)가 스킵 인디케이션(210)을 획득하는 경우, 타입 식별부(410)는 현재 매크로블록부터 소정 개수만큼의 매크로블록이 스킵 매크로블록임을 식별할 수 있다. 타입 식별부(410)는 현재 매크로블록으로부터 매크로블록 타입을 획득하고, 이로부터 현재의 매크로블록이 인터 매크로블록인지 또는 인트라 매크로블록인지를 식별할 수 있다. 타입 식별부(410)는 식별된 현재 매크로블록의 타입을 영역 표시부(420)로 전송한다.
영역 표시부(420)는 타입 식별부(410)가 식별한 매크로블록의 타입에 따라 프레임의 소정 영역을 식별하는 영역 정보를 생성할 수 있다. 영역 정보는 프레임에 포함된 픽셀을 표시하는 좌표 값으로 표시될 수 있다.
또는 영역 정보는 프레임에 포함된 픽셀에 대응하는 룩업 테이블로 표시될 수도 있다. 이하, 도 4에서는 영역 정보가 룩업 테이블을 포함하는 경우에 대해 설명하기로 하나, 실시 예가 이에 한정되는 것은 아니다.
룩업 테이블 생성부(421)는 프레임의 픽셀에 대응하는 룩업 테이블을 생성할 수 있다. 룩업 테이블은 프레임에 포함된 각 픽셀 별로 각각의 값을 가지고 있거나, 또는 프레임에 포함된 복수의 픽셀들의 묶음에 대해 하나의 값을 가지고 있을 수 있다. 복수의 픽셀들의 묶음은 예컨대 매크로블록 단위일 수 있다.
프레임의 룩업 테이블 값은 0으로 초기화되어 있을 수 있다. 룩업 테이블 생성부(421)는 타입 식별부(410)로부터 수신한 매크로블록의 타입에 따라, 프레임에 포함된 각각의 픽셀 또는 복수의 픽셀들의 묶음에 대해, 1 또는 0의 값을 가지는 룩업 테이블을 생성할 수 있다.
룩업 테이블 생성부(421)는 타입 식별부(410)로부터 현재 매크로블록이 스킵 매크로블록이라는 정보를 수신하면, 프레임에 포함된 픽셀 중 스킵 매크로블록에 해당하는 픽셀에서는 객체 인식 연산을 수행하지 않도록 하는 영역 정보를 생성할 수 있다. 실시 예에서, 룩업 테이블 생성부(421)는 스킵 매크로블록의 픽셀에 대한 룩업 테이블 값을 0으로 유지할 할 수 있다.
프레임에 스킵 매크로블록이 연속하여 포함되는 경우, 타입 식별부(410)는 연속된 스킵 매크로블록의 개수를 식별하고 이를 룩업 테이블 생성부(421)에 알려줄 수 있다. 룩업 테이블 생성부(421)는 식별된 개수만큼 연속된 스킵 매크로블록의 픽셀에 대한 룩업 테이블 값을 0으로 유지할 수 있다.
룩업 테이블 생성부(421)는 타입 식별부(410)로부터 현재의 매크로블록이 인트라 매크로블록이라는 정보를 수신하면, 프레임에 포함된 픽셀 중 인트라 매크로블록에 대응하는 픽셀들에 대한 룩업 테이블 값을 모두 1로 변경하여, 인트라 매크로블록에서 객체 인식 연산이 필요하다는 것을 표시할 수 있다.
룩업 테이블 생성부(421)는 타입 식별부(410)로부터 현재의 매크로블록이 인터 매크로블록이라는 정보를 수신하면, 프레임에 포함된 픽셀 중 인터 매크로블록에 대응하는 픽셀에서 객체 인식 연산을 수행하도록 하는 영역 정보를 생성할 수 있다. 실시 예에서, 룩업 테이블 생성부(421)는 인터 매크로블록의 픽셀들에 대한 룩업 테이블 값을 모두 1로 변경할 수 있다.
다른 실시 예에서, 타입 식별부(410)는 현재의 매크로블록이 인터 매크로블록이라고 판단하면, 인터 매크로블록의 움직임 정보에 포함된 모션 벡터를 획득할 수 있다. 타입 식별부(410)는 인터 매크로블록의 모션 벡터의 크기가 기준 값보다 큰지 여부를 판단하고 이를 룩업 테이블 생성부(421)에 알려줄 수 있다.
룩업 테이블 생성부(421)는 타입 식별부(410)로부터 현재의 매크로블록이 인터 매크로블록이고, 인터 매크로블록의 모션 벡터의 크기가 소정의 기준 값보다 큰지 또는 작은지를 나타내는 정보를 수신하면, 모션 벡터의 크기에 따라 인터 매크로블록의 픽셀에 대한 룩업 테이블 값을 0으로 유지하거나 또는 1로 변경하는 것 중 하나를 수행할 수 있다. 즉, 룩업 테이블 생성부(421)는 모션 벡터의 크기가 기준 값보다 큰 경우, 인터 매크로블록의 픽셀에 대한 룩업 테이블 값을 1로 변경하여 저장할 수 있다. 인터 매크로블록의 모션 벡터 값이 소정 기준 값보다 크다는 것은, 현재의 매크로블록과 이웃 프레임에서의 동일 위치에 있는 매크로블록 간에 유사성이 떨어질 가능성이 높다는 것을 의미할 수 있다. 따라서 룩업 테이블 생성부(421)는 인터 매크로블록에 대응하는 픽셀에서 객체 인식 연산을 수행하도록 인터 매크로블록의 픽셀에 대한 룩업 테이블 값을 1로 저장할 수 있다.
반면, 인터 매크로블록의 모션 벡터 값이 소정 기준 값 이하인 경우, 이는 현재의 매크로블록과 이웃하는 프레임에서의 동일 위치에 있는 매크로블록 간에 유사성이 클 가능성이 높다는 것을 의미할 수 있다. 따라서 룩업 테이블 생성부(421)는 모션 벡터의 크기가 기준 값 이하인 경우, 인터 매크로블록의 픽셀에 대한 룩업 테이블 값을 0으로 유지할 수 있다.
룩업 테이블 생성부(420)는 룩업 테이블 생성부(420) 내부의 메모리(미도시)에 각각의 매크로블록 별로 룩업 테이블 값을 저장하고, 복수의 매크로블록들의 룩업 테이블 값을 모아서 하나의 프레임에 대응하는 최종 룩업 테이블을 생성할 수 있다. 룩업 테이블 생성부(420)는 하나의 프레임에 대응하는 최종 룩업 테이블을 영역 정보(OUT)로 출력할 수 있다.
프레임 스킵 정보 생성부(423)는 룩업 테이블 생성부(420)가 생성한 최종 룩업 테이블을 이용하여 현재 프레임에서 객체 인식을 수행할 픽셀들의 수가 기준 값보다 적은 경우에는 현재 프레임에서 객체 인식 수행을 스킵하도록 하는 프레임 스킵 정보를 생성할 수 있다. 즉, 현재 프레임과 이웃 프레임 간의 차이가, 객체 인식에 영향을 끼치지 않을 만큼 작은 경우, 프레임 스킵 정보 생성부(423)는 그 프레임에 대해서는 객체 인식 연산을 생략하도록 하는 정보를 생성할 수 있다.
프레임 스킵 정보 생성부(423)는 현재 프레임에 포함된 픽셀들 중 최종 룩업 테이블의 값이 1인 픽셀들의 수가 소정 개수 이상인지를 판단하고, 그 수가 소정 개수보다 작은 경우, 프레임 스킵 정보를 생성하여 이를 출력(OUT)할 수 있다. 프레임 스킵 정보 생성부(423)는 프레임 스킵 정보를 출력(OUT)하는 경우, 룩업 테이블 생성부(423)가 최종 룩업 테이블을 출력하지 못하도록 제어할 수 있다. 프레임 스킵 정보는 스킵할 프레임을 식별하는 정보 및 해당 프레임에 대한 객체 인식 연산을 수행하지 않을 것을 표시하는 플래그를 포함할 수 있다.
프레임 스킵 정보 생성부(423)는 룩업 테이블의 값이 1인 픽셀들의 수가 소정 개수 이상인 경우에는 프레임 스킵 정보를 생성하지 않고, 현재 프레임에 대한 최종 룩업 테이블만이 출력되도록 할 수 있다.
영역 표시부(423)는 룩업 테이블 및 프레임 스킵 정보 중 하나 이상을 포함하는 영역 정보를 출력(OUT)할 수 있다.
이와 같이, 실시 예에 따르면, 매크로블록의 타입에 따라 프레임에서 객체 인식을 수행할 영역을 표시하는 룩업 테이블을 생성하고 이를 출력할 수 있다.
또한, 실시 예에 따르면, 프레임에서 객체 인식을 수행할 픽셀이 소정 개수 이하인 경우에는 해당 프레임에서 객체 인식을 수행하지 않도록 하는 프레임 스킵 정보를 생성하고 이를 출력할 수 있다.
도 5는 실시 예에 따른 영상 처리 장치(500)의 내부 블록도이다. 도 5를 참조하면, 영상 처리 장치(500)는 프로세서(510), 메모리(520) 및 디코딩부(530)를 포함할 수 있다.
영상 처리 장치(500)는 압축 영상을 복호화하고, 복호화된 영상으로부터 객체 인식을 수행할 수 있는 다양한 전자 장치로 구현될 수 있다.
실시 예에서, 디코딩부(530)는 입력 영상을 복호화하여 복원 영상을 획득할 수 있다. 디코딩부(530)는 입력 비트스트림을 복호화하여 양자화된 변환 블록을 추출하고 양자화된 변환 블록을 역양자화하고, 역양자화된 변환 블록을 역변환하여 잔차 블록을 복원한다. 디코딩부(530)는 매크로블록이 인터 매크로블록인 경우, 비트스트림으로부터 현재 블록의 움직임 벡터를 추출하고 잔차 블록과 예측 영상을 이용하여 매크로블록을 복원할 수 있다. 또한, 디코딩부(530)는 매크로블록이 인트라 매크로블록인 경우, 비트스트림으로부터 화면 내 예측 모드 관련 정보를 획득하고 이를 이용하여 인트라 매크로블록을 복원할 수 있다. 디코딩부(530)는 복원된 매크로블록들을 이용하여 프레임을 복원할 수 있다.
실시 예에 따른 메모리(520)는, 적어도 하나의 인스트럭션을 저장할 수 있다. 메모리(520)는 프로세서(510)가 실행하는 적어도 하나의 프로그램을 저장하고 있을 수 있다. 또한 메모리(520)는 영상 처리 장치(500)로 입력되거나 영상 처리 장치(500)로부터 출력되는 데이터를 저장할 수 있다.
메모리(520)는 영상 처리 장치(500)로 입력되는 압축 영상을 복호화하기 위한 각종 프로그램과 데이터를 저장할 수 있다.
실시 예에서, 메모리(520)는 프로세서(510)가 생성한 프레임 별 룩업 테이블을 저장할 수 있다.
메모리(520)는 플래시 메모리 타입(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), 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있다.
프로세서(510)는 영상 처리 장치(500)의 전반적인 동작을 제어한다. 프로세서(510)는 메모리(520)에 저장된 하나 이상의 인스트럭션을 실행함으로써, 영상 처리 장치(500)가 기능하도록 제어할 수 있다.
실시 예에서, 프로세서(510)는 하나 이상의 인스트럭션을 실행함으로써, 디코딩부(530)가 복호화한 비트스트림으로부터 부호화 정보를 획득할 수 있다. 부호화 정보는 비트스트림에 포함되어, 동영상 데이터를 압축하는데 사용되는 정보일 수 있다. 디코딩부(530)는 부호화 정보를 이용하여 동영상 데이터를 복호화할 수 있다.
부호화 정보는 매크로블록의 타입 정보를 포함할 수 있다. 타입 정보는 스킵 인디케이션 및 매크로블록이 인트라인지 인터인지를 표시하는 정보를 포함할 수 있다. 또한 부호화 정보는 인터 매크로블록의 움직임 정보를 포함할 수 있다.
실시 예에서, 프로세서(510)는 부호화 정보에 포함된 매크로블록의 타입 정보를 이용하여, 프레임에서 소정 영역을 식별할 수 있다. 실시 예에서, 프로세서(510)는 매크로블록의 타입 정보를 이용하여 프레임의 픽셀 별로 1 또는 0 중 하나의 값을 가지는 룩업 테이블을 생성하고, 이를 이용하여 프레임에서 소정 영역을 식별할 수 있다.
실시 예에서, 프로세서(510)는 타입 정보로부터 식별된 매크로블록이 스킵 매크로블록인 것에 상응하여, 스킵 매크로블록의 픽셀에 대한 룩업 테이블 값이 0이 되도록 할 수 있다. 실시 예에서, 프로세서(510)는 연속된 스킵 매크로블록의 개수를 식별하고, 식별된 개수만큼 연속된 스킵 매크로블록의 픽셀에 대한 룩업 테이블 값이 0이 되도록 할 수 있다.
실시 예에서, 프로세서(510)는 타입 정보로부터 식별된 매크로블록이 인트라 매크로블록인 것에 상응하여, 인트라 매크로블록의 픽셀에 대한 룩업 테이블 값이 1이 되도록 할 수 있다.
실시 예에서, 프로세서(510)는 타입 정보로부터 식별된 매크로블록이 인터 매크로블록인 것에 상응하여, 인터 매크로블록의 움직임 정보가 소정 기준을 만족하는지에 따라 인터 매크로블록의 픽셀에 대한 룩업 테이블 값이 1 또는 0 중 하나가 되도록 할 수 있다. 실시 예에서, 프로세서(510)는 움직임 정보에 포함된 모션 벡터의 크기가 기준 값 이하인 것에 상응하여 인터 매크로블록의 픽셀에 대한 룩업 테이블 값이 0이 되도록 하고, 모션 벡터의 크기가 기준 값보다 큰 것에 상응하여 인터 매크로블록의 픽셀에 대한 룩업 테이블 값이 1이 되도록 할 수 있다.
실시 예에서, 프로세서(510)는 하나 이상의 뉴럴 네트워크(neural network)를 이용한 학습 모델을 이용하여, 디코딩부(530)가 복호화한 프레임으로부터 객체를 인식할 수 있다. 뉴럴 네트워크는, 인공지능(Artificial Intelligence)에 기초하여 뉴럴 네트워크에 입력된 소정의 이미지로부터 객체를 인식하는 방법을 학습하는 알고리즘의 집합일 수 있다. 예를 들어, 뉴럴 네트워크는, 소정의 이미지를 입력 값으로 하는 지도 학습(supervised learning), 별다른 지도 없이 이미지로부터 객체를 인식하기 위해 필요한 데이터의 종류를 스스로 학습함으로써, 이미지로부터 객체를 인식하기 위한 패턴을 발견하는 비지도 학습(unsupervised learning)에 기초하여, 이미지로부터 객체를 인식하는 방법을 학습할 수 있다. 또한, 예를 들어, 뉴럴 네트워크는, 학습에 따라 객체를 인식한 결과가 올바른 지에 대한 피드백을 이용하는 강화 학습(reinforcement learning)을 이용하여, 이미지로부터 객체를 인식하는 방법을 학습할 수 있다.
또한, 뉴럴 네트워크는 인공 지능(AI) 기술에 따른 추론 및 예측을 위한 연산을 수행할 수 있다. 즉, 뉴럴 네트워크는 복수의 계층들을 통한 연산을 수행하는 딥 뉴럴 네트워크(DNN: Deep Neural Network)가 될 수 있다. 뉴럴 네트워크는 연산을 수행하는 내부의 계층(layer)의 개수에 따라서 계층의 개수가 복수일 경우, 즉 연산을 수행하는 뉴럴 네트워크의 심도(depth)가 증가하는 경우, 딥 뉴럴 네트워크(DNN)로 분류될 수 있다. 또한, 딥 뉴럴 네트워크(DNN) 연산은 컨볼루션 뉴럴 네트워크(CNN: Convolution Neural Network) 연산 등을 포함할 수 있다.
프로세서(510)는 뉴럴 네트워크를 통하여 객체를 인식하기 위한 데이터 인식 모델을 구현하고, 구현된 데이터 인식 모델을 학습 데이터를 이용하여 학습시킬 수 있다.
실시 예에서, 프로세서(510)는, 하나 이상의 뉴럴 네트워크를 이용한 학습 모델을 이용하여, 디코딩부(530)가 압축된 비트스트림으로부터 복호화한 프레임에 대해 객체 인식을 수행할 수 있다. 프로세서(510)는 학습된 데이터 인식 모델을 이용하여 입력되는 프레임의 이미지를 분석 또는 분류하여, 이미지 내에 포함되는 객체가 무엇인지를 분석 및 분류할 수 있다.
예컨대, 프로세서(510)는 딥 뉴럴 네트워크를 통한 연산을 수행하여, 프레임에 포함된 하나 이상의 객체, 예를 들어, 사람의 얼굴이나, 사물을 인식할 수 있다. 또한, 프로세서(510)는 학습 모델을 이용하여, 프레임에 포함된 객체 외에도 프레임에 등장하는 배경 또는 장소를 인식할 수 있다. 프로세서(510)가 인식하는 것은 프레임에 포함되고 사용자가 독립된 객체로 인지할 수 있는 것을 포함할 수 있으며, 전술한 예에 한정되지 않는다.
실시 예에서, 프로세서(510)는 프레임 전체에서 객체 인식을 수행하는 것이 아니고, 프레임에서 식별된 소정 영역에서만 객체 인식 연산을 수행할 수 있다. 즉, 프로세서(510)는 프레임에서 객체 인식 연산을 수행할 대상을 미리 룩업 테이블로 만들어 소정 영역을 식별하는 전처리 동작을 수행하고, 뉴럴 네트워크를 이용하여 프레임의 픽셀들 중 소정 영역에서만 객체 인식을 수행할 수 있다. 프로세서(510)는 프레임에서, 룩업 테이블 값이 1로 기재된 픽셀 영역을 식별하고, 식별된 영역에서만 뉴럴 네트워크를 이용하여 객체 인식 연산을 수행하고, 식별되지 않은 영역, 즉, 룩업 테이블 값이 0인 픽셀 영역에서는 객체 인식 연산 수행을 생략할 수 있다. 따라서, 뉴럴 네트워크가 처리할 데이터 연산량을 줄일 수 있고, 그에 따라 처리 속도 또한 빨라질 수 있다.
실시 예에서, 프로세서(510)는 룩업 테이블 값이 1인 픽셀들의 수가 소정 개수 이상인 경우에만 해당 프레임의 식별된 영역에서 뉴럴 네트워크를 이용하여 객체 인식 연산을 수행할 수 있다. 즉, 프로세서(510)는 룩업 테이블 값이 1인 픽셀들의 수가 소정 개수보다 적은 경우, 해당 프레임에서 뉴럴 네트워크가 객체 인식 연산을 수행하지 않도록 함으로써, 뉴럴 네트워크가 처리할 연산량을 줄일 수 있다.
도 6은 실시 예에 따른 영상 처리 장치(600)의 내부 블록도이다. 도 6를 참조하면, 영상 처리 장치(600)는 프로세서(610), 메모리(620), 디코딩부(630) 및 통신부(640)를 포함할 수 있다.
도 6의 영상 처리 장치(600)에 포함된 메모리(610) 및 디코딩부(630)는 도 5의 영상 처리 장치(500)에 포함된 메모리(510) 및 디코딩부(530)와 수행하는 기능이 거의 동일하다. 따라서, 도 5에서 설명한 내용과 동일한 내용에 대한 설명은 생략한다.
프로세서(610)는 영상 처리 장치(600)의 전반적인 동작을 제어하여 메모리(620)에 저장된 하나 이상의 인스트럭션을 실행함으로써, 영상 처리 장치(600)가 기능하도록 제어할 수 있다. 프로세서(610)는 디코딩부(630)가 압축 영상을 복호화하여 획득한 비트스트림으로부터 부호화 정보를 획득하고, 이를 이용하여 디코딩부(630)에 의해 복원된 프레임에서 소정 영역을 식별하고, 그 영역을 표시하는 영역 정보를 생성할 수 있다.
프로세서(610)는 도 5의 영상 처리 장치(500)에 포함된 프로세서(510)와 마찬가지로 부호화 정보에 포함된 매크로타입의 타입 정보를 이용하여 프레임의 픽셀 별로 1 또는 0 중 하나의 값을 가지는 룩업 테이블을 생성할 수 있다.
실시 예에서, 프로세서(610)는 프레임의 픽셀에 대응하는 룩업 테이블의 값 중 1의 개수가 소정 개수 이하인 경우, 해당 프레임에서 객체 인식 연산을 스킵하라는 프레임 스킵 정보를 생성할 수 있다.
프로세서(610)는 프레임 별로 소정 영역을 나타내는 룩업 테이블과, 특정 프레임에서는 객체 인식 연산을 스킵하라는 프레임 스킵 정보를 포함하는 영역 정보를 생성할 수 있다.
도 6의 프로세서(610)는 도 5의 프로세서(510)와 달리, 프로세서(610)가 객체 인식 연산을 직접 수행하지 않는다. 대신, 영상 처리 장치(600)는 통신부(640)를 통해 영역 정보 및 복호화된 프레임을 외부의 컴퓨팅 장치에 전송하고, 외부의 컴퓨팅 장치가 뉴럴 네트워크를 이용하여 복호화된 프레임에서 영역 정보에 의해 식별되는 영역에서 객체 인식 연산을 수행하도록 할 수 있다.
통신부(640)는 유무선의 네트워크를 통하여 외부 장치(미도시)들과 통신할 수 있다. 구체적으로, 통신부(640)는 프로세서(610)의 제어에 따라서 유무선의 네트워크를 통하여 연결되는 외부 장치와 신호를 송수신할 수 있다. 외부 장치는 통신부(640)와 데이터를 송수신하는 데이터를 처리하는 서버, 서버 시스템, 서버 기반의 장치 등을 포함할 수 있다.
통신부(640)는 적어도 하나의 통신 모듈을 포함할 수 있다. 통신 모듈은 통신 규격을 따르는 네트워크를 통하여 데이터 송수신을 수행할 수 있는 통신 모듈을 포함할 수 있다.
실시 예에서, 통신부(640)는 뉴럴 네트워크를 이용하여 이미지에서 객체 인식 연산을 수행하는 컴퓨팅 장치(미도시)와 통신을 수행할 수 있다.
컴퓨팅 장치는 적어도 하나의 뉴럴 네트워크를 이용하여 영상 처리 장치(600)로부터 수신한 프레임에서 객체 인식을 수행할 수 있다. 이 때, 컴퓨팅 장치는 프레임 전체에서 객체 인식을 수행하지 않고 영상 처리 장치(600)가 전송한 영역 정보에 의해 식별되는 영역에서만 객체 인식 연산을 수행할 수 있다. 즉, 컴퓨팅 장치는 프레임에서, 룩업 테이블 값이 1로 기재된 픽셀 영역에서만 뉴럴 네트워크를 이용하여 객체 인식 연산을 수행하고, 식별되지 않은 영역, 즉, 룩업 테이블 값이 0인 픽셀 영역에서는 객체 인식 연산 수행을 생략할 수 있다. 또한, 컴퓨팅 장치는 프레임 스킵 정보를 이용하여 소정 프레임에 대해서는 객체 인식 연산 수행을 생략할 수 있다.
이와 같이, 실시 예에 따르면, 객체 인식을 수행할 영역 정보를 생성하고 이를 외부의 컴퓨팅 장치로 전송함으로써, 외부의 컴퓨팅 장치가 수행하는 연산량 및 복잡도 등을 감소시킬 수 있다.
도 7은 실시 예에 따른 영상 처리 장치(700)의 내부 블록도이다. 도 7을 참조하면, 영상 처리 장치(700)는 프로세서(710), 메모리(720), 디코딩부(730) 및 뉴럴 네트워크 프로세서(740)를 포함할 수 있다.
도 7의 영상 처리 장치(700)에 포함된 메모리(710) 및 디코딩부(730)는 도 5의 영상 처리 장치(500)에 포함된 메모리(510) 및 디코딩부(530)와 수행하는 기능이 거의 동일하다. 따라서, 도 5에서 설명한 내용과 동일한 내용에 대한 설명은 생략한다.
도 7의 영상 처리 장치(700)는 도 5의 영상 처리 장치(500)에 비하여 뉴럴 네트워크 프로세서(740)을 더 포함할 수 있다. 즉, 도 7의 영상 처리 장치(700)는 도 5의 영상 처리 장치(500)와 달리, 뉴럴 네트워크를 통하여 객체 인식 연산을 수행하는 것을 프로세서(710)와는 별도의 프로세서인 뉴럴 네트워크 프로세서(740)를 통하여 수행할 수 있다.
프로세서(710)는 부호화 정보를 이용하여 프레임에서 객체 인식 연산을 수행할 대상을 미리 룩업 테이블로 생성할 수 있다. 프로세서(710)는 프레임에서 객체 인식을 수행할 픽셀의 수가 소정 개수 이하인 경우, 해당 프레임에서 객체 인식을 스킵하라는 프레임 스킵 정보를 생성할 수 있다. 프로세서(710)는 프레임 단위로, 룩업 테이블과 프레임 스킵 정보 중 하나 이상을 포함하는 영역 정보를 뉴럴 네트워크 프로세서(740)로 전송할 수 있다.
뉴럴 네트워크 프로세서(740)는 메모리(720)에 저장된, 또는 뉴럴 네트워크 프로세서(740) 내부 메모리(미도시)에 저장된 하나 이상의 인스트럭션을 실행하여 뉴럴 네트워크를 통한 객체 인식 연산을 수행할 수 있다.
실시 예에서, 뉴럴 네트워크 프로세서(740)는, 하나 이상의 뉴럴 네트워크를 이용한 학습 모델을 이용하여, 디코딩부(730)가 복호화한 프레임에서 객체 인식을 수행할 수 있다. 뉴럴 네트워크 프로세서(740)는 뉴럴 네트워크를 통하여 객체를 인식하기 위한 데이터 인식 모델을 구현하고, 구현된 데이터 인식 모델을 학습 데이터를 이용하여 학습하고, 학습된 데이터 인식 모델을 이용하여, 입력되는 프레임의 이미지를 분석 또는 분류하여, 이미지 내에 포함되는 객체가 무엇인지를 분석 및 분류할 수 있다. 뉴럴 네트워크 프로세서(740)는 딥 뉴럴 네트워크를 통한 연산을 수행하여, 프레임에서 사용자가 독립된 객체로 인지할 수 있는 객체나 배경 또는 장소 등을 인식할 수 있다.
실시 예에서, 뉴럴 네트워크 프로세서(740)는 프로세서(710)로부터 룩업 테이블을 수신하는 경우, 룩업 테이블을 이용하여 프레임에서 소정 영역을 식별하고, 프레임의 픽셀들 중 소정 영역에서만 객체 인식을 수행할 수 있다. 뉴럴 네트워크 프로세서(740)는 프로세서(710)로부터 프레임 스킵 정보를 수신하는 경우, 프레임 스킵 정보가 식별하는 프레임에서 객체 인식 연산 수행을 스킵할 수 있다.
도 8은 실시 예에 따른 영상 처리 장치(800)의 내부 블록도이다. 도 8을 참조하면, 영상 처리 장치(800)는 프로세서(510), 메모리(520) 외에 튜너부(810), 통신부(820), 감지부(830), 입/출력부(840), 비디오 처리부(850), 비디오 출력부(855), 오디오 처리부(860), 오디오 출력부(870), 및 사용자 인터페이스(880)를 포함할 수 있다.
도 8의 영상 처리 장치(800)는 도 5의 영상 처리 장치(500)의 구성 요소를 포함할 수 있다. 따라서, 프로세서(510) 및 메모리(520)에 대하여, 도 5에서 설명한 내용과 동일한 내용은 생략한다. 또한, 도 5의 디코딩부(530)는 튜너부(810)에 포함되거나, 비디오 처리부(850)에 포함되어 압축 영상을 디코딩하는 기능을 수행할 수 있다.
튜너부(810)는 유선 또는 무선으로 수신되는 방송 컨텐츠 등을 증폭(amplification), 혼합(mixing), 공진(resonance)등을 통하여 많은 전파 성분 중에서 영상 처리 장치(800)에서 수신하고자 하는 채널의 주파수만을 튜닝(tuning)시켜 선택할 수 있다. 튜너부(810)를 통해 수신된 컨텐츠는 디코딩되어 오디오, 비디오 및/또는 부가 정보로 분리된다. 분리된 오디오, 비디오 및/또는 부가 정보는 프로세서(510)의 제어에 의해 메모리(520)에 저장될 수 있다.
통신부(820)는, 근거리 통신 모듈, 유선 통신 모듈, 이동 통신 모듈, 방송 수신 모듈 등과 같은 적어도 하나의 통신 모듈을 포함할 수 있다. 여기서, 적어도 하나의 통신 모듈은 방송 수신을 수행하는 튜너, 블루투스, WLAN(Wireless LAN)(Wi-Fi), Wibro(Wireless broadband), Wimax(World Interoperability for Microwave Access), CDMA, WCDMA 등과 같은 통신 규격을 따르는 네트워크를 통하여 데이터 송수신을 수행할 수 있는 통신 모듈을 뜻한다.
통신부(820)는 프로세서(510)의 제어에 의해 영상 처리 장치(800)를 외부 장치나 서버와 연결할 수 있다. 영상 처리 장치(800)는 통신부(820)를 통해 외부 장치나 서버 등으로부터 영상 처리 장치(800)가 필요로 하는 프로그램이나 어플리케이션(application)을 다운로드하거나 또는 웹 브라우징을 할 수 있다.
통신부(820)는 영상 처리 장치(800)의 성능 및 구조에 대응하여 무선 랜(821), 블루투스(822), 및 유선 이더넷(Ethernet)(823) 중 하나를 포함할 수 있다. 또한, 통신부(820)는 무선랜(821), 블루투스(822), 및 유선 이더넷(Ethernet)(823)의 조합을 포함할 수 있다. 통신부(820)는 프로세서(510)의 제어에 의해 리모컨 등과 같은 제어 장치(미도시)를 통한 제어 신호를 수신할 수 있다. 제어 신호는 블루투스 타입, RF 신호 타입 또는 와이파이 타입으로 구현될 수 있다. 통신부(820)는 블루투스(822) 외에 다른 근거리 통신(예를 들어, NFC(near field communication, 미도시), BLE(bluetooth low energy, 미도시)를 더 포함할 수 있다. 실시 예에 따라, 통신부(820)는 블루투스(822)나 BLE와 같은 근거리 통신을 통하여 외부 장치 등과 연결 신호를 송수신할 수도 있다.
감지부(830)는 사용자의 음성, 사용자의 영상, 또는 사용자의 인터랙션을 감지하며, 마이크(831), 카메라부(832), 및 광 수신부(833)를 포함할 수 있다. 마이크(831)는 사용자의 발화(utterance)된 음성을 수신할 수 있고 수신된 음성을 전기 신호로 변환하여 프로세서(510)로 출력할 수 있다. 카메라부(832)는 센서(미도시) 및 렌즈(미도시)를 포함하고, 화면에 맺힌 이미지를 촬영할 수 있다. 광 수신부(833)는, 광 신호(제어 신호를 포함)를 수신할 수 있다. 광 수신부(833)는 리모컨이나 핸드폰 등과 같은 제어 장치(미도시)로부터 사용자 입력(예를 들어, 터치, 눌림, 터치 제스처, 음성, 또는 모션)에 대응되는 광 신호를 수신할 수 있다. 수신된 광 신호로부터 프로세서(510)의 제어에 의해 제어 신호가 추출될 수 있다.
입/출력부(840)는 프로세서(510)의 제어에 의해 영상 처리 장치(800) 외부의 기기 등으로부터 비디오(예를 들어, 동영상 신호나 정지 영상 신호 등), 오디오(예를 들어, 음성 신호나, 음악 신호 등) 및 부가 정보(예를 들어, 컨텐트에 대한 설명이나 컨텐트 타이틀, 컨텐트 저장 위치) 등을 수신할 수 있다. 입/출력부(840)는 HDMI 포트(High-Definition Multimedia Interface port, 841), 컴포넌트 잭(component jack, 842), PC 포트(PC port, 843), 및 USB 포트(USB port, 844) 중 하나를 포함할 수 있다. 입/출력부(840)는 HDMI 포트(841), 컴포넌트 잭(842), PC 포트(843), 및 USB 포트(844)의 조합을 포함할 수 있다.
비디오 처리부(850)는, 디스플레이(830)에 의해 표시될 영상 데이터를 처리하며, 영상 데이터에 대한 디코딩, 렌더링, 스케일링, 노이즈 필터링, 프레임 레이트 변환, 및 해상도 변환 등과 같은 다양한 영상 처리 동작을 수행할 수 있다.
비디오 출력부(855)는 방송국으로부터 수신하거나 외부 서버, 또는 외부 저장 매체 등으로부터 수신한 컨텐츠 또는 HDMI 포트(841)를 통해 수신한 비디오 신호를 화면에 표시할 수 있다. 컨텐츠는 미디어 신호로, 비디오 신호, 텍스트 신호 등을 포함할 수 있다.
비디오 출력부(855)가 터치 스크린으로 구현되는 경우, 비디오 출력부(855)는 출력 장치 이외에 입력 장치로 사용될 수 있다. 비디오 출력부(855)는 액정 디스플레이(liquid crystal display), 박막 트랜지스터 액정 디스플레이(thin film transistor-liquid crystal display), 유기 발광 다이오드(organic light-emitting diode), 플렉서블 디스플레이(flexible display), 3차원 디스플레이(3D display), 전기 영동 디스플레이(electrophoretic display) 중에서 적어도 하나를 포함할 수 있다. 그리고, 영상 처리 장치(800)의 구현 형태에 따라, 영상 처리 장치(800)는 비디오 출력부(855)를 2개 이상 포함할 수 있다.
오디오 처리부(860)는 오디오 데이터에 대한 처리를 수행한다. 오디오 처리부(860)에서는 오디오 데이터에 대한 디코딩이나 증폭, 노이즈 필터링 등과 같은 다양한 처리가 수행될 수 있다.
오디오 출력부(870)는 프로세서(510)의 제어에 의해 튜너부(810)를 통해 수신된 컨텐트에 포함된 오디오, 통신부(820) 또는 입/출력부(840)를 통해 입력되는 오디오, 메모리(820)에 저장된 오디오를 출력할 수 있다. 오디오 출력부(870)는 스피커(871), 헤드폰 출력 단자(872) 또는 S/PDIF(Sony/Philips Digital Interface: 출력 단자(873) 중 적어도 하나를 포함할 수 있다.
사용자 인터페이스(880)는 영상 처리 장치(800)를 제어하기 위한 사용자 입력을 수신할 수 있다. 사용자 인터페이스(880)는 사용자의 터치를 감지하는 터치 패널, 사용자의 푸시 조작을 수신하는 버튼, 사용자의 회전 조작을 수신하는 휠, 키보드(key board), 및 돔 스위치 (dome switch), 음성 인식을 위한 마이크, 모션을 센싱하는 모션 감지 센서 등을 포함하는 다양한 형태의 사용자 입력 디바이스를 포함할 수 있으나 이에 제한되지 않는다. 또한, 영상 처리 장치(800)가 원격 제어 장치(remote controller)(미도시)에 의해서 조작되는 경우, 사용자 인터페이스(880)는 원격 제어 장치로부터 수신되는 제어 신호를 수신할 수도 있을 것이다.
도 9는 실시 예에 따라 객체 인식을 수행하는 뉴럴 네트워크를 설명하기 위한 일 도면이다. 도 9는, 실시 예에서 이용되는 뉴럴 네트워크를 예시적으로 도시한다.
프로세서(510)는 CNN(Convolution Neural Network), DCNN(Deep Convolution Neural Network) 또는 캡스넷(Capsnet) 신경망(미도시) 등을 이용하여, 출력 데이터를 생성할 수 있다. DCNN, 및 캡스넷 또한 CNN 기반의 신경망일 수 있다.
CNN 기반 신경망은 이미지에 포함되는 정보들끼리의 상관 관계가 지역적(local)한 경우, 특정 지역만을 비추는 필터의 개념을 도입하고 이 필터 내에서의 정보들을 컨볼루션(convolution)하여 출력 데이터를 생성할 수 있다.
도 9는 CNN 기반의 신경망(900)을 도시한다. 구체적으로, 도 9는 복수개의 계층들을 포함하여 복수의 심도(depth)를 갖는 DCNN(Deep Convolution Neural Network)(900)을 도시한다. 프로세서(510)는 CNN 기반의 신경망(900)을 통하여 프레임에서 객체를 인식하고 그 결과를 출력할 수 있다.
실시 예에서, CNN 기반의 신경망(900)의 입력층(input layer)(910)으로 압축 영상으로부터 복원된 프레임이 입력될 수 있다. 이때 CNN 기반의 신경망(900)의 입력층(910)으로 입력되는 프레임은, 프레임 전체가 아니고, 룩업 테이블에 의해 식별된 소정 영역의 픽셀 값들만이 입력될 수 있다. CNN 기반의 신경망(900)은 컨볼루션 계층(convolution layer)과 풀링 계층(pooling layer)이 번갈아 가면서 배치되며, 각 계층 필터(filter)의 심도(depth)는 왼쪽에서 오른쪽으로 갈수록 증가하게 된다. 또한, CNN 기반의 신경망(900)의 최종 단은 완전 연결 계층(fully connected layer)로 형성될 수 있다.
실시 예에서, CNN 기반의 신경망(900)은 프레임에 대한 룩업 테이블을 참조하여 프레임에서 객체 인식 연산을 수행할 영역을 미리 식별하고, 식별된 영역에 대해서만 필터를 적용할 수 있다. 따라서 CNN 기반의 신경망(900)은 입력되는 프레임 전체의 픽셀에 대해 연산을 수행하지 않고, 식별된 영역에 대해서만 컨볼루션 연산을 수행할 수 있다.
컨볼루션 계층(convolution layer)은 컨볼루션 연산에 따라서 생성되는 데이터들의 계층이며, 풀링 계층(pooling layer)은 서브 샘플링(subsampling) 또는 풀링이라는 연산을 통하여 데이터의 숫자 또는 크기를 줄이기 위한 계층이다. 컨볼루션 계층(convolution layer)과 풀링 계층(pooling layer)을 통과하면서, 입력된 프레임의 특징을 나타내는 데이터들(예를 들어, feature map)이 생성되게 된다. 그리고, 이러한 컨볼루션 계층 및 풀링 계층을 통과하여 생성된 데이터들을 완전 연결 계층(fully connected layer)으로 형성되는 숨겨진 계층(hidden layer)을 통하여 특징들로부터 인식되는 객체에 대한 결과 데이터를 출력할 수 있다.
예를 들어, CNN 기반의 신경망(900)은 입력층(input layer)(910), 제1 컨볼루션 계층(convolution layer)(920), 제1 풀링 계층(pooling layer)(930), 제2 컨볼루션 계층(convolution layer)(940), 제2 풀링 계층(pooling layer)(950), 숨겨진 계층(hidden layer)(960) 및 출력 계층(output layer)(970)을 포함할 수 있다. 여기서, 컨볼루션 계층 및 풀링 계층의 심도(depth)는 가변될 수 있으며, 숨겨진 계층(hidden layer)의 심도도 가변될 수 있다. 또한, 컨볼루션 계층 및 풀링 계층의 심도(depth)가 깊어질수록 보다 정확한 출력 데이터가 획득될 수 있다. 이는 컨볼루션 계층 및 풀링 계층의 심도(depth)가 깊어질수록 입력된 이미지의 특징들을 나타내는 정보들이 더욱 구체적인 형태를 가지기 때문에 해당 특징들로부터 인식되는 객체 또한 보다 정확히 인식될 수 있기 때문이다. 또한, 신경망(900)의 심도 및 형태는 결과의 정확도, 결과의 신뢰도, 프로세서의 연산 처리 속도 및 용량 등을 고려하여 매우 다양하게 설계될 수 있다.
도 10은 실시 예에 따라 뉴럴 네트워크가 컨볼루션 레이어에서 컨볼루션 연산을 수행하는 과정을 단순화시켜 설명하기 위한 도면이다. 도 10을 참조하면, 컨볼루션 레이어의 입력 데이터(Input)(1000)는 8*8의 크기를 가지는 것으로 가정한다. 입력 데이터(1000)에 적용되는 커널의 크기는 3*3 (가로*세로)이며, 커널의 개수는 n인 것으로 가정한다.
도 10을 참조하면, 뉴럴 네트워크는 입력 데이터(1000)의 좌측 상단으로부터 우측 하단까지 커널(Kernal)(1010)을 적용하여, 입력 데이터의 특징을 추출하게 된다. 예를 들어, 뉴럴 네트워크는 입력 데이터(1000)의 좌측 상단 3*3 영역(1001)에 포함되는 픽셀들에 커널(1010)을 적용하여 컨볼루션 연산을 수행할 수 있다. 뉴럴 네트워크는, 좌측 상단 3*3영역(1001)에 포함되는 픽셀 값들과 커널 (1010)에 포함되는 가중치 값들을 곱하여 합산함으로써, 좌측 상단 3*3 영역(1001)에 매핑되는 하나의 픽셀 값(1021)을 생성할 수 있다.
또한, 뉴럴 네트워크는 입력 데이터(1000)의 좌측 상단 3*3 영역(1001)에서 우측으로 한 픽셀 이동한 3*3 영역(1002)에 포함되는 픽셀 값들과 커널(1010)에 포함되는 가중치 값들을 곱하여 합산함으로써, 3*3 영역(1002)에 매핑되는 하나의 픽셀값(6022)을 생성할 수 있다.
동일한 방식으로, 뉴럴 네트워크는 입력 데이터(1000) 내에서 컨볼루션 연산의 대상을 좌측에서 우측으로, 상단에서 하단으로 한 픽셀씩 스캔하면서, 커널(1010)에 포함되는 가중치 값들을 곱하여 합산함으로써, 픽셀 값들을 생성할 수 있다. 이에 따라, 6*6의 특징 맵(Output)(1020)이 출력될 수 있다.
실시 예에서, 뉴럴 네트워크는 입력 데이터(1000) 전체에 포함된 픽셀들을 하나씩 스캔하면서 결과 값을 출력하는 대신, 룩업 테이블을 참조하여 객체 인식을 수행할 영역을 획득하고, 그 영역에서만 컨볼루션 연산을 수행할 수 있다. 즉, 뉴럴 네트워크는 입력 데이터(1000)의 픽셀들 중 룩업 테이블에서 1로 표시된 픽셀들에 대해서만 컨볼루션 연산을 수행하고, 룩업 테이블에서 0으로 표시된 픽셀들에 대해서는 컨볼루션 연산을 스킵할 수 있다. 예컨대, 도 10에서 뉴럴 네트워크는 입력 데이터(1000)의 소정 3*3 영역에 포함되는 픽셀 값들과 커널(1010)에 포함되는 가중치 값들을 곱하여 합산함으로써 출력 데이터를 획득하는 과정에서, 입력 데이터(1000)의 소정 3*3 영역에 포함되는 픽셀 값들 중 스킵해야 할 픽셀들이 있는 경우, 해당 픽셀 값을 0으로 처리하여 연산을 수행하게 된다. 따라서, 입력 데이터(1000)에서 스킵할 픽셀을 알고 해당 픽셀에 대한 연산을 스킵하는 경우, 컨볼루션 연산에 소요되는 연산량과 시간 등이 상당히 감소하게 된다.
컨볼루션 연산의 대상이 되는 데이터는 한 픽셀씩 이동하면서 스캔될 수도 있으나, 2개 픽셀 또는 그 이상의 픽셀 개수만큼 이동하면서 스캔될 수도 있다. 스캔 과정에서 입력 데이터가 이동하는 픽셀의 개수를 스트라이드(stride)라고 하며, 스트라이드의 크기에 따라 출력되는 특징 맵의 크기가 결정될 수 있다.
도 10을 참조하면, 입력 데이터(1000)는 8*8의 크기를 가지나, 출력 데이터(1020)는 6*6의 크기를 가지고 있어, 출력 데이터(1020)의 크기가 입력 데이터(1000)의 크기보다 작아진 것을 알 수 있다. 컨볼루션 뉴럴 네트워크는 여러 개의 컨볼루션 레이어들을 포함하며, 여러 개의 컨볼루션 레이어들을 통과하면서, 데이터의 크기가 계속해서 작아지게 된다. 이때, 특징이 충분하게 추출되기 전에 데이터의 크기가 작아지는 경우 입력 데이터의 특징이 유실될 수 있어, 이를 방지하기 위하여 패딩(padding)이 수행될 수도 있다.
도 10에서는 하나의 커널(1010)에 대한 컨볼루션 연산 결과만 도시하였지만, n개의 커널에 대해서 컨볼루션 연산을 수행하는 경우, n개의 특징 맵이 출력될 수 있다. 즉, 커널의 개수(n)에 따라, 출력 데이터의 채널의 개수가 결정되며, 이에 따라, 다음 레이어에서의 입력 데이터의 채널의 개수도 결정될 수 있다.
도 11은 실시 예에 따른 룩업 테이블 생성 과정을 도시한 순서도이다. 도 11을 참조하면, 도 1의 디코딩부(110)는 압축 영상으로부터 복호화한 비트스트림으로부터 부호화 정보를 획득할 수 있다. 실시 예에서, 영역 정보 생성부(120)는 디코딩부(110)가 획득한 부호화 정보 중 일부를 이용하여 영역 정보를 생성할 수 있다.
영역 정보 생성부(120)는 부호화 정보로부터 각 매크로블록의 타입 정보를 획득할 수 있다(단계 1110). 매크로블록의 타입 정보는 현재 매크로 블록이 스킵 매크로블록인지, 인터 매크로블록인지, 또는 인트라 매크로블록인지를 표시하는 정보일 수 있다.
영역 정보 생성부(120)는 타입 정보에 스킵 인디케이션이 포함되어 있는 경우, 현재 매크로블록이 스킵 매크로블록이라고 판단할 수 있다(단계 1120). 영역 정보 생성부(120)는 현재 매크로블록이 스킵 매크로블록인 경우 스킵 매크로블록 픽셀의 룩업 테이블 값을 0으로 설정할 수 있다(단계 1130).
영역 정보 생성부(120)는 현재 매크로블록이 스킵 매크로블록이 아닌 경우, 매크로블록에 포함된 타입을 읽고, 해당 매크로블록이 인트라 매크로블록인지 판단할 수 있다(단계 1140). 영역 정보 생성부(120)는 현재 매크로블록이 인트라 매크로블록인 경우, 인트라 매크로블록 픽셀의 룩업 테이블 값을 1로 설정할 수 있다(단계 1150).
영역 정보 생성부(120)는 현재 매크로블록이 인트라 매크로블록이 아닌, 인터 매크로블록인 경우, 인터 매크로블록에 대한 모션 벡터를 획득할 수 있다. 영역 정보 생성부(120)는 인터 매크로블록에 대한 모션 벡터 크기가 기준 값 이상인지를 판단할 수 있다(단계 1160).
영역 정보 생성부(120)는 모션 벡터 크기가 기준 값 이상인 경우, 인터 매크로블록 픽셀의 룩업 테이블 값을 1로 설정할 수 있다(단계 1170).
영역 정보 생성부(120)는 모션 벡터 크기가 기준 값보다 작은 경우, 인터 매크로블록 픽셀의 룩업 테이블 값을 0으로 설정할 수 있다(단계 1180).
영역 정보 생성부(120)는 스킵 매크로블록, 인트라 매크로블록, 인터 매크로블록 중 하나 이상을 포함하는 룩업 테이블을 생성할 수 있다. 영역 정보 생성부(120)는 하나의 프레임 단위로, 해당 프레임에 대한 최종 룩업 테이블을 생성할 수 있다(단계 1190).
도 12는 실시 예에 따른 룩업 테이블 생성 과정을 도시한 순서도이다. 도 12를 참조하면, 영역 정보 생성부(120)는 프레임 단위로 룩업 테이블을 생성할 수 있다(단계 1210). 영역 정보 생성부(120)는 도 11에서 설명한 과정에 따라 룩업 테이블을 생성할 수 있다.
영역 정보 생성부(120)는 프레임 단위로 생성된 룩업 테이블에서 1로 표시된 픽셀 수가 소정 개수 이상인지를 판단할 수 있다(단계 1220). 영역 정보 생성부(120)는 룩업 테이블에서 1로 표시된 픽셀 수가 소정 개수 이상인 경우, 룩업 테이블을 포함하는 영역 정보를 생성할 수 있다(단계 1230).
영역 정보 생성부(120)는 룩업 테이블에서 1로 표시된 픽셀 수가 소정 개수 이상이 아닌 경우, 프레임 스킵 정보를 생성할 수 있다(단계 1240). 프레임 스킵 정보는 현재 프레임에 대해 객체 인식을 수행할 필요가 없음을 표시하는 식별자일 수 있다. 프레임 스킵 정보는 스킵할 프레임을 식별하는 정보 및 해당 프레임에 대한 객체 인식 연산을 수행하지 않을 것을 표시하는 플래그를 포함할 수 있으나, 이에 한정되는 것은 아니다. 영역 정보 생성부(120)는 프레임 스킵 정보를 포함하는 영역 정보를 생성할 수 있다(단계 1250).
영역 정보 생성부(120)는 생성된 영역 정보를 객체 인식부(130)로 전송할 수 있다. 보다 구체적으로, 영역 정보 생성부(120)는 영역 정보를 객체 인식부(130)에 포함된 뉴럴 네트워크로 전송할 수 있다(단계 1260).
도 13은 실시 예에 따라 객체 인식을 수행하는 과정을 도시한 순서도이다. 도 13을 참조하면, 뉴럴 네트워크는 객체 인식을 수행할 프레임과, 해당 프레임에 대한 영역 정보를 수신할 수 있다(단계 1310).
실시 예에서, 뉴럴 네트워크는 도 1의 객체 인식부(130), 도 5의 프로세서(510) 및 도 7의 뉴럴 네트워크 프로세서(740)에 포함될 수 있다. 또한 뉴럴 네트워크는 도 6에서 통신부(640)를 통해 외부에 위치한 컴퓨팅 장치(미도시)에 포함될 수도 있다.
실시 예에서, 영역 정보는 객체 인식을 수행할 영역을 표시하는 정보로, 룩업 테이블 및 프레임 스킵 정보 중 하나 이상을 포함할 수 있다.
뉴럴 네트워크는 영역 정보에 프레임 스킵 정보가 포함되어 있는지를 판단할 수 있다(단계 1320). 영역 정보에 소정 프레임에 대한 프레임 스킵 정보가 포함되어 있는 경우, 뉴럴 네트워크는 해당 프레임에서 객체 인식 연산 수행을 생략할 수 있다(단계 1330).
뉴럴 네트워크는 영역 정보에 소정 프레임에 대한 프레임 스킵 정보가 포함되어 있지 않은 경우, 그 프레임에 대한 룩업 테이블을 획득하고, 룩업 테이블 값이 1인 픽셀을 식별할 수 있다(단계 1340). 뉴럴 네트워크는 룩업 테이블 값이 1인 영역에서 객체 인식 연산을 수행할 수 있다(단계 1350).
뉴럴 네트워크는 룩업 테이블 값이 0인 영역이 있는 경우, 그 영역에서는 객체 인식 연산 수행을 생략할 수 있다(단계 1360).
이와 같이, 실시 예에 의하면, 뉴럴 네트워크는 객체 인식 연산을 수행할 때 프레임의 전체 영역을 다 스캔하여 객체 인식 연산을 수행하는 대신, 영역 정보에 의해 식별되는 영역에서만 객체 인식을 수행하거나, 또는 특정 프레임 전체에 대해 객체 인식 연산을 생략함으로써 객체 인식을 적은 연산량으로 보다 빠른 속도로 처리할 수 있다.
도 14는 실시 예에 따른 컴퓨팅 장치(1400)의 구성을 나타내는 블록도이다. 도 14의 컴퓨팅 장치(1400)는 뉴럴 네트워크를 이용하여 객체 인식 연산을 수행하는 장치일 수 있다.
데이터 학습부(1410)는 프레임으로부터 객체를 인식하기 위한 기준을 학습할 수 있다. 데이터 학습부(1410)는 프레임에서 객체를 판단하기 위해 이미지의 어떤 정보를 이용하는지에 관한 기준을 학습할 수 있다. 또한, 데이터 학습부(1410)는 이미지의 정보를 이용하여 객체를 어떻게 인식하는지에 관한 기준을 학습할 수 있다. 데이터 학습부(1410)는 학습에 이용될 데이터를 획득하고, 획득된 데이터를 데이터 인식부(1420)에 적용할 수 있다.
데이터 인식부(1420)는 프레임으로부터 하나 이상의 객체를 인식하고, 인식된 결과를 출력할 수 있다. 데이터 인식부(1420)는 학습된 데이터 인식 모델을 이용하여, 소정의 프레임으로부터 하나 이상의 객체를 인식할 수 있다. 데이터 인식부(1420)는 학습에 의한 기 설정된 기준에 따라 객체에 대한 데이터를 획득하고, 획득된 데이터를 입력 값으로 하는 데이터 인식 모델을 이용할 수 있다. 데이터 인식부(1420)는 데이터 인식 모델을 이용함으로써, 프레임에서 하나 이상의 객체를 인식할 수 있다. 또한, 획득된 객체에 대한 정보를 입력 값으로 하여 데이터 인식 모델에 의해 출력된 결과 값은, 데이터 인식 모델을 업데이트하는데 이용될 수 있다.
데이터 학습부(1410) 및 데이터 인식부(1420) 중 적어도 하나는, 적어도 하나의 하드웨어 칩 형태로 제작되어 전자 장치에 탑재될 수 있다. 예를 들어, 데이터 학습부(1410) 및 데이터 인식부(1420) 중 적어도 하나는 인공 지능(AI; artificial intelligence)을 위한 전용 하드웨어 칩 형태로 제작될 수도 있고, 또는 기존의 범용 프로세서(예: CPU 또는 application processor) 또는 그래픽 전용 프로세서(예: GPU)의 일부로 제작되어 전술한 각종 전자 장치에 탑재될 수도 있다.
이 경우, 데이터 학습부(1410) 및 데이터 인식부(1420)는 하나의 전자 장치에 탑재될 수도 있으며, 또는 별개의 전자 장치들에 각각 탑재될 수도 있다. 예를 들어, 데이터 학습부(1410) 및 데이터 인식부(1420) 중 하나는 전자 장치에 포함되고, 나머지 하나는 서버에 포함될 수 있다. 또한, 데이터 학습부(1410) 및 데이터 인식부(1420)는 유선 또는 무선으로 통하여, 데이터 학습부(1410)가 구축한 모델 정보를 데이터 인식부(1420)로 제공할 수도 있고, 데이터 인식부(1420)로 입력된 데이터가 추가 학습 데이터로서 데이터 학습부(1410)로 제공될 수도 있다.
한편, 데이터 학습부(1410) 및 데이터 인식부(1420) 중 적어도 하나는 소프트웨어 모듈로 구현될 수 있다. 데이터 학습부(1410) 및 데이터 인식부(1420) 중 적어도 하나가 소프트웨어 모듈(또는, 인스트럭션(instruction) 포함하는 프로그램 모듈)로 구현되는 경우, 소프트웨어 모듈은 컴퓨터로 읽을 수 있는 판독 가능한 비일시적 판독 가능 기록매체(non-transitory computer readable media)에 저장될 수 있다. 또한, 이 경우, 적어도 하나의 소프트웨어 모듈은 OS(Operating System)에 의해 제공되거나, 소정의 애플리케이션에 의해 제공될 수 있다. 또는, 적어도 하나의 소프트웨어 모듈 중 일부는 OS(Operating System)에 의해 제공되고, 나머지 일부는 소정의 애플리케이션에 의해 제공될 수 있다.
도 15는 일 실시예에 따른 데이터 학습부(1410)의 블록도이다.
도 15를 참조하면, 일 실시예에 따른 데이터 학습부(1410)는 데이터 획득부(1411), 전처리부(1412), 학습 데이터 선택부(1413), 모델 학습부(1414) 및 모델 평가부(1415)를 포함할 수 있다.
데이터 획득부(1411)는 프레임에서 객체를 인식하기 위한 학습을 위해 필요한 데이터를 획득할 수 있다. 데이터 획득부(1411)는 소셜 네트워크 서버(social network server), 클라우드 서버(cloud server) 또는 콘텐트 제공 서버 등의 외부 서버로부터 데이터를 획득할 수 있다.
데이터 획득부(1411)는, 프레임으로부터 객체를 인식하기 위한 학습을 위해 필요한 이미지를 획득할 수 있다. 예를 들어, 데이터 획득부(1411)는, 네트워크를 통해 연결된 적어도 하나의 외부 장치로부터 이미지를 획득할 수 있으며, 영상 처리 장치(500)가 디스플레이하는 컨텐츠로부터 하나 이상의 장면을 추출하여 이미지를 획득할 수도 있다.
전처리부(1412)는 프레임에서 하나 이상의 객체를 인식하기 위한 학습에 데이터가 이용될 수 있도록, 획득된 데이터를 전처리할 수 있다. 전처리부(1412)는 후술할 모델 학습부(1414)가 프레임에서 하나 이상의 객체를 인식하는 학습을 위하여 획득된 데이터를 이용할 수 있도록, 획득된 데이터를 기 설정된 포맷으로 가공할 수 있다. 예를 들어, 전처리부(1412)는, 획득한 이미지를 분석하여, 이미지의 속성 정보를 검출할 수 있으나, 이에 한정되지 않는다.
학습 데이터 선택부(1413)는 전처리된 데이터 중에서 학습에 필요한 데이터를 선택할 수 있다. 선택된 데이터는 모델 학습부(1414)에 제공될 수 있다. 학습 데이터 선택부(1413)는 이미지로부터 객체를 인식하기 위한 기 설정된 기준에 따라, 전처리된 데이터 중에서 학습에 필요한 데이터를 선택할 수 있다. 또한, 학습 데이터 선택부(1413)는 후술할 모델 학습부(1414)에 의한 학습에 의해 기 설정된 기준에 따라 데이터를 선택할 수도 있다.
모델 학습부(1414)는, 이미지로부터 객체를 인식하기 위하여, 어떤 학습 데이터를 이용해야 하는지에 대한 기준을 학습할 수 있다. 예를 들어, 모델 학습부(1414)는, 이미지로부터 객체를 인식하는데 이용되는 이미지 속성들의 종류, 개수, 또는 수준 등을 학습할 수 있다.
또한, 모델 학습부(1414)는, 이미지로부터 하나 이상의 객체를 식별하기 위해 이용되는 데이터 인식 모델을 학습 데이터를 이용하여 학습시킬 수 있다. 이 경우, 데이터 인식 모델은 미리 구축된 모델일 수 있다. 예를 들어, 데이터 인식 모델은 기본 학습 데이터(예를 들어, 샘플 이미지 등)을 입력 받아 미리 구축된 모델일 수 있다.
데이터 인식 모델은, 인식 모델의 적용 분야, 학습의 목적 또는 장치의 컴퓨터 성능 등을 고려하여 구축될 수 있다. 데이터 인식 모델은, 예를 들어, 신경망(Neural Network)을 기반으로 하는 모델일 수 있다. 예컨대, DNN(Deep Neural Network), RNN(Recurrent Neural Network), BRDNN(Bidirectional Recurrent Deep Neural Network)과 같은 모델이 데이터 인식 모델로서 사용될 수 있으나, 이에 한정되지 않는다.
다양한 실시예에 따르면, 모델 학습부(1414)는 미리 구축된 데이터 인식 모델이 복수 개가 존재하는 경우, 입력된 학습 데이터와 기본 학습 데이터의 관련성이 큰 데이터 인식 모델을 학습할 데이터 인식 모델로 결정할 수 있다. 이 경우, 기본 학습 데이터는 데이터의 타입 별로 기 분류되어 있을 수 있으며, 데이터 인식 모델은 데이터의 타입 별로 미리 구축되어 있을 수 있다. 예를 들어, 기본 학습 데이터는 학습 데이터가 생성된 지역, 학습 데이터가 생성된 시간, 학습 데이터의 크기, 학습 데이터의 장르, 학습 데이터의 생성자, 학습 데이터 내의 오브젝트의 종류 등과 같은 다양한 기준으로 기 분류되어 있을 수 있다.
또한, 모델 학습부(1414)는, 예를 들어, 오류 역전파법(error back-propagation) 또는 경사 하강법(gradient descent)을 포함하는 학습 알고리즘 등을 이용하여 데이터 인식 모델을 학습시킬 수 있다.
또한, 모델 학습부(1414)는, 예를 들어, 학습 데이터를 입력 값으로 하는 지도 학습(supervised learning) 을 통하여, 데이터 인식 모델을 학습시킬 수 있다. 또한, 모델 학습부(1414)는, 예를 들어, 별다른 지도 없이 사용자의 상태를 판단하기 위해 필요한 데이터의 종류를 스스로 학습함으로써, 사용자의 상태를 판단하기 위한 기준을 발견하는 비지도 학습(unsupervised learning)을 통하여, 데이터 인식 모델을 학습시킬 수 있다. 또한, 모델 학습부(1414)는, 예를 들어, 학습에 따라 사용자의 상태를 판단한 결과가 올바른지에 대한 피드백을 이용하는 강화 학습(reinforcement learning)을 통하여, 데이터 인식 모델을 학습시킬 수 있다.
또한, 데이터 인식 모델이 학습되면, 모델 학습부(1414)는 학습된 데이터 인식 모델을 저장할 수 있다. 이 경우, 모델 학습부(1414)는 학습된 데이터 인식 모델을 데이터 인식부(1420)를 포함하는 장치의 메모리에 저장할 수 있다. 또는, 모델 학습부(1414)는 학습된 데이터 인식 모델을 후술할 데이터 인식부(1420)를 포함하는 장치의 메모리에 저장할 수 있다. 또는, 모델 학습부(1414)는 학습된 데이터 인식 모델을 전자 장치와 유선 또는 무선 네트워크로 연결되는 서버의 메모리에 저장할 수도 있다.
이 경우, 학습된 데이터 인식 모델이 저장되는 메모리는, 예를 들면, 장치의 적어도 하나의 다른 구성요소에 관계된 명령 또는 데이터를 함께 저장할 수도 있다. 또한, 메모리는 소프트웨어 및/또는 프로그램을 저장할 수도 있다. 프로그램은, 예를 들면, 커널, 미들웨어, 어플리케이션 프로그래밍 인터페이스(API) 및/또는 어플리케이션 프로그램(또는 "어플리케이션") 등을 포함할 수 있다.
모델 평가부(1415)는 데이터 인식 모델에 평가 데이터를 입력하고, 평가 데이터로부터 출력되는 인식 결과가 소정 기준을 만족하지 못하는 경우, 모델 학습부(1414)로 하여금 다시 학습하도록 할 수 있다. 이 경우, 평가 데이터는 데이터 인식 모델을 평가하기 위한 기 설정된 데이터일 수 있다.
예를 들어, 모델 평가부(1415)는 평가 데이터에 대한 학습된 데이터 인식 모델의 인식 결과 중에서, 인식 결과가 정확하지 않은 평가 데이터의 개수 또는 비율이 미리 설정된 임계치를 초과하는 경우 소정 기준을 만족하지 못한 것으로 평가할 수 있다. 예컨대, 소정 기준이 비율 2%로 정의되는 경우, 학습된 데이터 인식 모델이 총 1000개의 평가 데이터 중의 20개를 초과하는 평가 데이터에 대하여 잘못된 인식 결과를 출력하는 경우, 모델 평가부(1415)는 학습된 데이터 인식 모델이 적합하지 않은 것으로 평가할 수 있다.
한편, 학습된 데이터 인식 모델이 복수 개가 존재하는 경우, 모델 평가부(1415)는 각각의 학습된 데이터 인식 모델에 대하여 소정 기준을 만족하는지를 평가하고, 소정 기준을 만족하는 모델을 최종 데이터 인식 모델로서 결정할 수 있다. 이 경우, 소정 기준을 만족하는 모델이 복수 개인 경우, 모델 평가부(1415)는 평가 점수가 높은 순으로 미리 설정된 어느 하나 또는 소정 개수의 모델을 최종 데이터 인식 모델로서 결정할 수 있다.
한편, 데이터 학습부(1410) 내의 데이터 획득부(1411), 전처리부(1412), 학습 데이터 선택부(1413), 모델 학습부(1414) 및 모델 평가부(1415) 중 적어도 하나는, 적어도 하나의 하드웨어 칩 형태로 제작되어 전자 장치에 탑재될 수 있다. 예를 들어, 데이터 획득부(1411), 전처리부(1412), 학습 데이터 선택부(1413), 모델 학습부(1414) 및 모델 평가부(1415) 중 적어도 하나는 인공 지능(AI; artificial intelligence)을 위한 전용 하드웨어 칩 형태로 제작될 수도 있고, 또는 기존의 범용 프로세서(예: CPU 또는 application processor) 또는 그래픽 전용 프로세서(예: GPU)의 일부로 제작되어 전술한 각종 전자 장치에 탑재될 수도 있다.
또한, 데이터 획득부(1411), 전처리부(1412), 학습 데이터 선택부(1413), 모델 학습부(1414) 및 모델 평가부(1415)는 하나의 전자 장치에 탑재될 수도 있으며, 또는 별개의 전자 장치들에 각각 탑재될 수도 있다. 예를 들어, 데이터 획득부(1411), 전처리부(1412), 학습 데이터 선택부(1413), 모델 학습부(1414) 및 모델 평가부(1415) 중 일부는 전자 장치에 포함되고, 나머지 일부는 서버에 포함될 수 있다.
또한, 데이터 획득부(1411), 전처리부(1412), 학습 데이터 선택부(1413), 모델 학습부(1414) 및 모델 평가부(1415) 중 적어도 하나는 소프트웨어 모듈로 구현될 수 있다. 데이터 획득부(1411), 전처리부(1412), 학습 데이터 선택부(1413), 모델 학습부(1414) 및 모델 평가부(1415) 중 적어도 하나가 소프트웨어 모듈(또는, 인스트럭션(instruction) 포함하는 프로그램 모듈)로 구현되는 경우, 소프트웨어 모듈은 컴퓨터로 읽을 수 있는 판독 가능한 비일시적 판독 가능 기록매체(non-transitory computer readable media)에 저장될 수 있다. 또한, 이 경우, 적어도 하나의 소프트웨어 모듈은 OS(Operating System)에 의해 제공되거나, 소정의 애플리케이션에 의해 제공될 수 있다. 또는, 적어도 하나의 소프트웨어 모듈 중 일부는 OS(Operating System)에 의해 제공되고, 나머지 일부는 소정의 애플리케이션에 의해 제공될 수 있다.
도 16은 일 실시예에 따른 데이터 인식부(1420)의 구성을 나타내는 블록도이다.
도 16을 참조하면, 일부 실시예에 따른 데이터 인식부(1420)는 데이터 획득부(1421), 전처리부(1422), 인식 데이터 선택부(1423), 인식 결과 제공부(1424) 및 모델 갱신부(1425)를 포함할 수 있다.
데이터 획득부(1421)는 이미지로부터 객체를 인식하는데 필요한 데이터를 획득할 수 있으며, 전처리부(1422)는 이미지로부터 객체를 인식하기 위해 획득된 데이터가 이용될 수 있도록, 획득된 데이터를 전처리할 수 있다. 전처리부(1422)는 후술할 인식 결과 제공부(1424)가 이미지로부터 객체를 인식하기 위하여 획득된 데이터를 이용할 수 있도록, 획득된 데이터를 기 설정된 포맷으로 가공할 수 있다.
인식 데이터 선택부(1423)는 전처리된 데이터 중에서 이미지로부터 객체를 인식하기 위해 필요한 데이터를 선택할 수 있다. 선택된 데이터는 인식 결과 제공부(1424)에게 제공될 수 있다. 인식 데이터 선택부(1423)는 이미지로부터 객체를 인식하기 위한 기 설정된 기준에 따라, 전처리된 데이터 중에서 일부 또는 전부를 선택할 수 있다.
인식 결과 제공부(1424)는 선택된 데이터를 데이터 인식 모델에 적용하여 이미지로부터 객체를 인식할 수 있다. 인식 결과 제공부(1424)는 데이터의 인식 목적에 따른 인식 결과를 제공할 수 있다. 인식 결과 제공부(1424)는 인식 데이터 선택부(1423)에 의해 선택된 데이터를 입력 값으로 이용함으로써, 선택된 데이터를 데이터 인식 모델에 적용할 수 있다. 또한, 인식 결과는 데이터 인식 모델에 의해 결정될 수 있다.
인식 결과 제공부(1424)는, 이미지로부터 인식된 하나 이상의 객체를 나타내는 식별 정보를 제공할 수 있다. 예를 들어, 인식 결과 제공부(1424)는, 식별된 객체가 포함되는 카테고리, 식별된 객체가 사람인 경우 식별된 사람의 특징에 관한 정보를 제공할 수 있다.
모델 갱신부(1425)는 인식 결과 제공부(1424)에 의해 제공되는 인식 결과에 대한 평가에 기초하여, 데이터 인식 모델이 갱신되도록 할 수 있다. 예를 들어, 모델 갱신부(1425)는 인식 결과 제공부(1424)에 의해 제공되는 인식 결과를 모델 학습부(1414)에게 제공함으로써, 모델 학습부(1414)가 데이터 인식 모델을 갱신하도록 할 수 있다.
한편, 데이터 인식부(1420) 내의 데이터 획득부(1421), 전처리부(1422), 인식 데이터 선택부(1423), 인식 결과 제공부(1424) 및 모델 갱신부(1425) 중 적어도 하나는, 적어도 하나의 하드웨어 칩 형태로 제작되어 전자 장치에 탑재될 수 있다. 예를 들어, 데이터 획득부(1421), 전처리부(1422), 인식 데이터 선택부(1423), 인식 결과 제공부(1424) 및 모델 갱신부(1425) 중 적어도 하나는 인공 지능(AI; artificial intelligence)을 위한 전용 하드웨어 칩 형태로 제작될 수도 있고, 또는 기존의 범용 프로세서(예: CPU 또는 application processor) 또는 그래픽 전용 프로세서(예: GPU)의 일부로 제작되어 전술한 각종 전자 장치에 탑재될 수도 있다.
또한, 데이터 획득부(1421), 전처리부(1422), 인식 데이터 선택부(1423), 인식 결과 제공부(1424) 및 모델 갱신부(1425)는 하나의 전자 장치에 탑재될 수도 있으며, 또는 별개의 장치들에 각각 탑재될 수도 있다. 예를 들어, 데이터 획득부(1421), 전처리부(1422), 인식 데이터 선택부(1423), 인식 결과 제공부(1424) 및 모델 갱신부(1425) 중 일부는 전자 장치에 포함되고, 나머지 일부는 서버에 포함될 수 있다.
또한, 데이터 획득부(1421), 전처리부(1422), 인식 데이터 선택부(1423), 인식 결과 제공부(1424) 및 모델 갱신부(1425) 중 적어도 하나는 소프트웨어 모듈로 구현될 수 있다. 데이터 획득부(1421), 전처리부(1422), 인식 데이터 선택부(1423), 인식 결과 제공부(1424) 및 모델 갱신부(1425) 중 적어도 하나가 소프트웨어 모듈(또는, 인스트럭션(instruction) 포함하는 프로그램 모듈)로 구현되는 경우, 소프트웨어 모듈은 컴퓨터로 읽을 수 있는 판독 가능한 비일시적 판독 가능 기록매체(non-transitory computer readable media)에 저장될 수 있다. 또한, 이 경우, 적어도 하나의 소프트웨어 모듈은 OS(Operating System)에 의해 제공되거나, 소정의 애플리케이션에 의해 제공될 수 있다. 또는, 적어도 하나의 소프트웨어 모듈 중 일부는 OS(Operating System)에 의해 제공되고, 나머지 일부는 소정의 애플리케이션에 의해 제공될 수 있다.
일부 실시 예에 따른 영상 처리 장치 및 그 동작 방법은 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행 가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 모두 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다. 통신 매체는 전형적으로 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈, 또는 반송파와 같은 변조된 데이터 신호의 기타 데이터, 또는 기타 전송 메커니즘을 포함하며, 임의의 정보 전달 매체를 포함한다.
또한, 본 명세서에서, “부”는 프로세서 또는 회로와 같은 하드웨어 구성(hardware component), 및/또는 프로세서와 같은 하드웨어 구성에 의해 실행되는 소프트웨어 구성(software component)일 수 있다.
또한, 전술한 본 개시의 실시 예에 따른 영상 처리 장치 및 그 동작 방법은 영상 시퀀스를 디코딩하여 프레임을 획득하는 단계, 영상 시퀀스에 포함된 매크로블록의 타입 정보를 이용하여, 프레임에서 소정 영역을 식별하는 단계 및 뉴럴 네트워크를 이용하여 프레임의 식별된 소정 영역에서 객체 인식 연산을 수행하고, 식별된 소정 영역 외의 영역에서 객체 인식 연산 수행을 생략하는 단계를 포함하는, 영상 처리 방법을 수행하도록 하는 프로그램이 저장된 기록매체를 포함하는 컴퓨터 프로그램 제품으로 구현될 수 있다.
전술한 설명은 예시를 위한 것이며, 발명이 속하는 기술분야의 통상의 지식을 가진 자는 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시 예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
Claims (20)
- 영상 처리 장치에 있어서,
영상 시퀀스로부터 프레임을 획득하는 복호화부;
하나 이상의 인스트럭션을 저장하는 메모리; 및
상기 메모리에 저장된 상기 하나 이상의 인스트럭션을 실행하는 프로세서를 포함하고,
상기 프로세서는 상기 하나 이상의 인스트럭션을 실행함으로써, 상기 영상 시퀀스에 포함된 매크로블록의 타입 정보를 이용하여, 상기 프레임에서 소정 영역을 식별하는, 영상 처리 장치. - 제1 항에 있어서, 상기 프로세서는 상기 매크로블록의 상기 타입 정보를 이용하여 상기 프레임의 픽셀 별로 1 또는 0 중 하나의 값을 가지는 룩업 테이블을 생성하여 상기 프레임에서 상기 소정 영역을 식별하는, 영상 처리 장치.
- 제2 항에 있어서, 상기 프로세서는 뉴럴 네트워크를 이용하여 상기 프레임의 상기 식별된 소정 영역에서 객체 인식 연산을 수행하고, 상기 식별된 소정 영역 외의 영역에서 상기 객체 인식 연산 수행을 생략하는, 영상 처리 장치.
- 제3 항에 있어서, 상기 프로세서는 상기 프레임의 픽셀들 중 상기 룩업 테이블 값이 1인 픽셀들의 수가 소정 개수 이상인 것에 기반하여, 상기 뉴럴 네트워크를 이용하여 상기 프레임의 상기 식별된 소정 영역에서 상기 객체 인식 연산을 수행하는, 영상 처리 장치.
- 제2 항에 있어서, 뉴럴 네트워크와 통신하는 통신부를 더 포함하고,
상기 통신부는 상기 프레임과 상기 룩업 테이블을 상기 뉴럴 네트워크로 전송하여, 상기 뉴럴 네트워크가 상기 프레임의 상기 식별된 소정 영역에서 객체 인식 연산을 수행하도록 하고 상기 식별된 소정 영역 외의 영역에서 상기 객체 인식 연산 수행을 생략하도록 하는, 영상 처리 장치. - 제2 항에 있어서, 상기 프로세서는 상기 타입 정보로부터 식별된 상기 매크로블록이 스킵 매크로블록인 것에 상응하여, 상기 스킵 매크로블록의 픽셀에 대한 룩업 테이블 값이 0이 되도록 하는, 영상 처리 장치.
- 제6 항에 있어서, 상기 프로세서는 연속된 스킵 매크로블록의 개수를 식별하고, 상기 식별된 개수만큼 연속된 스킵 매크로블록의 픽셀에 대한 룩업 테이블 값이 0이 되도록 하는, 영상 처리 장치.
- 제2 항에 있어서, 상기 프로세서는 상기 타입 정보로부터 식별된 상기 매크로블록이 인트라 매크로블록인 것에 상응하여, 상기 인트라 매크로블록의 픽셀에 대한 룩업 테이블 값이 1이 되도록 하는, 영상 처리 장치.
- 제2 항에 있어서, 상기 프로세서는 상기 타입 정보로부터 식별된 상기 매크로블록이 인터 매크로블록인 것에 상응하여, 상기 인터 매크로블록의 움직임 정보가 소정 기준을 만족하는지에 따라 상기 인터 매크로블록의 픽셀에 대한 룩업 테이블 값이 1 또는 0 중 하나가 되도록 하는, 영상 처리 장치.
- 제9 항에 있어서, 상기 프로세서는 상기 움직임 정보에 포함된 모션 벡터의 크기가 기준 값 이하인 것에 상응하여 상기 인터 매크로블록의 픽셀에 대한 룩업 테이블 값이 0이 되도록 하는, 영상 처리 장치.
- 영상 시퀀스를 디코딩하여 프레임을 획득하는 단계;
상기 영상 시퀀스에 포함된 매크로블록의 타입 정보를 이용하여, 상기 프레임에서 소정 영역을 식별하는 단계; 및
뉴럴 네트워크를 이용하여 상기 프레임의 상기 식별된 소정 영역에서 객체 인식 연산을 수행하고, 상기 식별된 소정 영역 외의 영역에서 상기 객체 인식 연산 수행을 생략하는 단계를 포함하는, 영상 처리 방법. - 제11 항에 있어서, 상기 프레임의 상기 소정 영역을 식별하는 단계는
상기 매크로블록의 상기 타입 정보를 이용하여 상기 프레임의 픽셀 별로 1 또는 0 중 하나의 값을 가지는 룩업 테이블을 생성하는 단계; 및
상기 룩업 테이블을 이용하여 상기 프레임의 상기 소정 영역을 식별하는 단계를 포함하는, 영상 처리 방법. - 제12 항에 있어서, 상기 객체 인식 연산을 수행하는 단계는 상기 뉴럴 네트워크를 이용하여 상기 룩업 테이블 값이 1인 픽셀들의 영역을 상기 소정 영역으로 식별하는 단계를 포함하는 영상 처리 방법.
- 제12 항에 있어서, 상기 식별된 소정 영역에서 객체 인식 연산을 수행하는 단계는, 상기 프레임의 픽셀들 중 상기 룩업 테이블 값이 1인 픽셀들의 수가 소정 개수 이상인 것에 기반하여 상기 식별된 소정 영역에서 객체 인식 연산을 수행하는 단계를 포함하는, 영상 처리 방법.
- 제12 항에 있어서, 상기 룩업 테이블을 생성하는 단계는 상기 타입 정보로부터 식별된 상기 매크로블록이 스킵 매크로블록인 것에 상응하여, 상기 스킵 매크로블록의 픽셀에 대한 룩업 테이블 값이 0이 되도록 하는 단계를 포함하는, 영상 처리 방법.
- 제15 항에 있어서, 연속된 스킵 매크로블록의 개수를 식별하는 단계를 더 포함하고,
상기 스킵 매크로블록의 픽셀에 대한 룩업 테이블 값을 0으로 설정하는 단계는 상기 식별된 개수만큼 연속된 스킵 매크로블록의 픽셀에 대한 룩업 테이블 값이 0이 되도록 하는 단계를 포함하는, 영상 처리 방법. - 제12 항에 있어서, 상기 룩업 테이블을 생성하는 단계는 상기 타입 정보로부터 식별된 상기 매크로블록이 인트라 매크로블록인 것에 상응하여, 상기 인트라 매크로블록의 픽셀에 대한 룩업 테이블 값이 1이 되도록 하는 단계를 포함하는, 영상 처리 방법.
- 제12 항에 있어서, 상기 룩업 테이블을 생성하는 단계는 상기 타입 정보로부터 식별된 상기 매크로블록이 인터 매크로블록인 것에 상응하여, 상기 인터 매크로블록의 움직임 정보가 소정 기준을 만족하는지에 따라 상기 인터 매크로블록의 픽셀에 대한 룩업 테이블 값이 1 또는 0 중 하나가 되도록 하는 단계를 포함하는, 영상 처리 방법.
- 제18 항에 있어서, 상기 룩업 테이블을 생성하는 단계는 상기 움직임 정보에 포함된 모션 벡터의 크기가 기준 값 이하인 것에 상응하여, 상기 인터 매크로블록의 픽셀에 대한 룩업 테이블 값이 0이 되도록 하는 단계를 포함하는, 영상 처리 방법.
- 영상 시퀀스를 디코딩하여 프레임을 획득하는 단계;
상기 영상 시퀀스에 포함된 매크로블록의 타입 정보를 이용하여, 상기 프레임에서 소정 영역을 식별하는 단계; 및
뉴럴 네트워크를 이용하여 상기 프레임의 상기 식별된 소정 영역에서 객체 인식 연산을 수행하고, 상기 식별된 소정 영역 외의 영역에서 상기 객체 인식 연산 수행을 생략하는 단계를 포함하는 영상 처리 방법을 구현하기 위한 프로그램이 기록된 컴퓨터로 판독 가능한 기록 매체.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200006160A KR20210092588A (ko) | 2020-01-16 | 2020-01-16 | 영상 처리 장치 및 방법 |
EP21151393.2A EP3852368A1 (en) | 2020-01-16 | 2021-01-13 | Image processing apparatus and method |
US17/150,642 US11893761B2 (en) | 2020-01-16 | 2021-01-15 | Image processing apparatus and method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200006160A KR20210092588A (ko) | 2020-01-16 | 2020-01-16 | 영상 처리 장치 및 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20210092588A true KR20210092588A (ko) | 2021-07-26 |
Family
ID=74181031
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200006160A KR20210092588A (ko) | 2020-01-16 | 2020-01-16 | 영상 처리 장치 및 방법 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11893761B2 (ko) |
EP (1) | EP3852368A1 (ko) |
KR (1) | KR20210092588A (ko) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI749676B (zh) | 2020-08-03 | 2021-12-11 | 緯創資通股份有限公司 | 影像品質評估裝置及其影像品質評估方法 |
TWI743919B (zh) * | 2020-08-03 | 2021-10-21 | 緯創資通股份有限公司 | 視訊處理裝置及視訊串流的處理方法 |
CN113947747B (zh) * | 2021-09-02 | 2022-08-26 | 武汉未来幻影科技有限公司 | 一种车辆的监控图像的处理方法、装置以及设备 |
CN113824967B (zh) * | 2021-11-23 | 2022-02-15 | 环球数科集团有限公司 | 一种基于深度学习的视频压缩方法 |
CN114885094B (zh) * | 2022-03-25 | 2024-03-29 | 北京旷视科技有限公司 | 一种图像处理方法、图像处理器、图像处理模组及设备 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0727543B2 (ja) * | 1988-04-28 | 1995-03-29 | インターナシヨナル・ビジネス・マシーンズ・コーポレーション | 文字認識装置 |
AU2001271326A1 (en) * | 2000-06-16 | 2001-12-24 | Lockheed Martin Mission Systems | Scaleable object recognition with a belief model |
US9215467B2 (en) * | 2008-11-17 | 2015-12-15 | Checkvideo Llc | Analytics-modulated coding of surveillance video |
KR102173123B1 (ko) * | 2013-11-22 | 2020-11-02 | 삼성전자주식회사 | 전자장치에서 이미지 내의 특정 객체를 인식하기 위한 방법 및 장치 |
US9916010B2 (en) * | 2014-05-16 | 2018-03-13 | Visa International Service Association | Gesture recognition cloud command platform, system, method, and apparatus |
WO2016013893A1 (en) * | 2014-07-25 | 2016-01-28 | Samsung Electronics Co., Ltd. | Displaying method, animation image generating method, and electronic device configured to execute the same |
US9953216B2 (en) * | 2015-01-13 | 2018-04-24 | Google Llc | Systems and methods for performing actions in response to user gestures in captured images |
KR102351496B1 (ko) * | 2015-07-24 | 2022-01-14 | 삼성전자주식회사 | 영상 처리 장치 및 그 동작 방법 |
US11025942B2 (en) * | 2018-02-08 | 2021-06-01 | Samsung Electronics Co., Ltd. | Progressive compressed domain computer vision and deep learning systems |
KR102532230B1 (ko) | 2018-03-30 | 2023-05-16 | 삼성전자주식회사 | 전자 장치 및 그 제어 방법 |
KR101980551B1 (ko) | 2018-11-08 | 2019-05-21 | 주식회사 다누시스 | 기계학습 객체검출을 이용한 실시간 지능형 cctv 영상 분석 행위 탐지 시스템 및 기계학습 객체검출을 이용한 실시간 지능형 cctv 영상 분석 행위 탐지 방법 |
-
2020
- 2020-01-16 KR KR1020200006160A patent/KR20210092588A/ko unknown
-
2021
- 2021-01-13 EP EP21151393.2A patent/EP3852368A1/en active Pending
- 2021-01-15 US US17/150,642 patent/US11893761B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
EP3852368A1 (en) | 2021-07-21 |
US11893761B2 (en) | 2024-02-06 |
US20210225040A1 (en) | 2021-07-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20210092588A (ko) | 영상 처리 장치 및 방법 | |
CN111868751B (zh) | 在视频代码化的机器学习模型中使用应用于量化参数的非线性函数 | |
US20200329233A1 (en) | Hyperdata Compression: Accelerating Encoding for Improved Communication, Distribution & Delivery of Personalized Content | |
WO2021050007A1 (en) | Network-based visual analysis | |
WO2018150083A1 (en) | A method and technical equipment for video processing | |
TWI806199B (zh) | 特徵圖資訊的指示方法,設備以及電腦程式 | |
US10764588B2 (en) | Deep quality enhancement of adaptive downscaled coding for image compression | |
CN103581665A (zh) | 转码视频数据 | |
US11310514B2 (en) | Encoding method and apparatus using non-encoding region, block-based encoding region, and pixel-based encoding region | |
US20220124376A1 (en) | Joint termination of bidirectional data blocks for parallel coding | |
CN116965029A (zh) | 使用卷积神经网络对图像进行译码的装置和方法 | |
CN116233445B (zh) | 视频的编解码处理方法、装置、计算机设备和存储介质 | |
CN116918329A (zh) | 一种视频帧的压缩和视频帧的解压缩方法及装置 | |
US20130223525A1 (en) | Pixel patch collection for prediction in video coding system | |
CN116524186A (zh) | 图像处理方法及装置、电子设备、存储介质 | |
US20240314390A1 (en) | Electronic device, system, and method for intelligent horizontal-vertical image transform | |
KR20230156625A (ko) | 영상 처리 장치 및 그 동작 방법 | |
CN114642002B (zh) | 显示装置及其操作方法 | |
WO2022155818A1 (zh) | 图像编码、解码方法及装置、编解码器 | |
CN117897736A (zh) | 用于机器视频编码(vcm)的编码器和解码器 | |
US11589038B2 (en) | Methods for video encoding and video decoding | |
JP4714102B2 (ja) | 画像符号化装置、方法およびシステム | |
CN110868615B (zh) | 一种视频处理方法、装置、电子设备以及存储介质 | |
US20240013441A1 (en) | Video coding using camera motion compensation and object motion compensation | |
US20240364925A1 (en) | Low-latency machine learning-based stereo streaming |