KR20230124503A - 특징맵 압축 방법 및 장치 - Google Patents

특징맵 압축 방법 및 장치 Download PDF

Info

Publication number
KR20230124503A
KR20230124503A KR1020230021564A KR20230021564A KR20230124503A KR 20230124503 A KR20230124503 A KR 20230124503A KR 1020230021564 A KR1020230021564 A KR 1020230021564A KR 20230021564 A KR20230021564 A KR 20230021564A KR 20230124503 A KR20230124503 A KR 20230124503A
Authority
KR
South Korea
Prior art keywords
tensor
neural network
symbol
coding
layer
Prior art date
Application number
KR1020230021564A
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 인텔렉추얼디스커버리 주식회사
Publication of KR20230124503A publication Critical patent/KR20230124503A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/002Image coding using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods 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/17Methods 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/176Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]

Landscapes

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

Abstract

본 발명의 실시예에 따른 신경망 기반의 영상 처리 방법 및 장치는, 복수의 신경망 레이어들을 포함하는 제1 신경망을 이용하여 입력 영상으로부터 특징 텐서(feature tensor)을 획득하고, 상기 획득된 특징 텐서에 대하여 양자화를 수행함으로써 심볼 텐서(symbol tensor)를 획득하고, 상기 심볼 텐서에 기초하여 엔트로피 부호화를 수행함으로써 비트스트림을 생성할 수 있다.

Description

특징맵 압축 방법 및 장치{FEATURE MAP COMPRESSION METHOD AND APPARATUS}
본 발명은 특징맵(feature map) 압축 방법 및 장치에 관한 것으로, 보다 상세하게는 비디오 압축을 이용하여 특징맵을 압축하기 위한 방법 및 장치에 관한 것이다.
비디오 영상은 시공간적 중복성 및 시점 간 중복성을 제거하여 압축 부호화되며, 이는 통신 회선을 통해 전송되거나 저장 매체에 적합한 형태로 저장될 수 있다.
본 발명은 생략 코딩을 이용하여 신경망의 중간 결과물인 특징 텐서를 압축하는 방법 및 장치를 제안한다.
본 발명은 다양한 계층 구조를 가지는 분할 구조를 이용하여 특징 데이터를 코딩 하는 방법 및 장치를 제안한다.
상기 과제를 해결하기 위하여 신경망을 이용하여 추론 및 영상 부/복호화를 수행하는 방법 및 장치를 제공한다. 또한, 상기 과제를 해결하기 위하여 비디오 압축을 이용한 추론 방법 및 장치를 제공한다.
본 발명의 일 실시예에 따른 신경망 기반의 영상 처리 방법 및 장치는, 복수의 신경망 레이어들을 포함하는 제1 신경망을 이용하여 입력 영상으로부터 특징 텐서(feature tensor)을 획득하고, 상기 획득된 특징 텐서에 대하여 양자화를 수행함으로써 심볼 텐서(symbol tensor)를 획득하고, 상기 심볼 텐서에 기초하여 엔트로피 부호화를 수행함으로써 비트스트림을 생성할 수 있다.
본 발명의 일 실시예에 따른 신경망 기반의 영상 처리 방법 및 장치는, 상기 심볼 텐서에 대하여 생략 부호화를 적용함으로써 상기 엔트로피 부호화를 선택적으로 수행할 수 있다.
본 발명의 일 실시예에 따른 신경망 기반의 영상 처리 방법 및 장치에 있어서, 상기 심볼 텐서에 대하여 상기 생략 부호화가 적용되는 경우, 상기 심볼 텐서에 포함된 복수의 심볼들의 전부 또는 일부에 대한 엔트로피 부호화가 생략될 수 있다.
본 발명의 일 실시예에 따른 신경망 기반의 영상 처리 방법 및 장치는, 상기 심볼 텐서에 대하여 상기 생략 부호화를 적용할지 여부를 결정할 수 있다.
본 발명의 일 실시예에 따른 신경망 기반의 영상 처리 방법 및 장치에 있어서, 상기 생략 부호화의 적용 여부는 상기 제1 신경망의 구조, 상기 특징 텐서가 출력된 제1 레이어의 타입, 부호화 순서를 기준으로 상기 제1 레이어의 다음 레이어를 나타내는 제2 레이어의 타입 또는 상기 심볼 텐서에 포함된 심볼에 기초하여 결정될 수 있다.
본 발명의 일 실시예에 따른 신경망 기반의 영상 처리 방법 및 장치에 있어서, 상기 생략 부호화의 적용 여부는, 상기 제2 레이어의 타입이 합산 레이어인 경우, 상기 심볼 텐서에 대하여 적용하는 것으로 결정될 수 있다.
본 발명의 일 실시예에 따른 신경망 기반의 영상 처리 방법 및 장치에 있어서, 상기 생략 부호화의 적용 여부는, 상기 제1 레이어의 타입이 업샘플링 레이어가 아니고 상기 제2 레이어의 타입이 합산 레이어인 경우, 상기 심볼 텐서에 대하여 적용하는 것으로 결정될 수 있다.
본 발명의 일 실시예에 따른 신경망 기반의 영상 처리 방법 및 장치에 있어서, 상기 생략 부호화의 적용 여부는 복수의 신경망 레이어를 포함하는 제2 신경망을 이용하여 결정될 수 있다.
본 발명의 일 실시예에 따른 신경망 기반의 영상 처리 방법 및 장치는, 상기 심볼 텐서에 포함된 복수의 채널들 각각에 대하여 상기 생략 부호화를 적용할지 여부를 결정될 수 있다.
본 발명의 일 실시예에 따른 신경망 기반의 영상 처리 방법 및 장치에 있어서, 상기 심볼 텐서에 포함된 복수의 채널 중 현재 채널에 대하여 상기 생략 부호화가 적용되는 것으로 결정되는 경우, 상기 현재 채널에 상기 생략 부호화가 적용됨을 지시하는 생략 부호화 플래그에 대한 엔트로피 부호화가 수행될 수 있다.
본 발명의 일 실시예에 따른 신경망 기반의 영상 처리 방법 및 장치는, 상기 현재 채널에 대하여 상기 생략 부호화가 적용되지 않는 것으로 결정되는 경우, 상기 현재 채널에 포함된 복수의 블록들 각각에 대하여 상기 생략 부호화를 적용할지 여부를 결정할 수 있다.
본 발명의 일 실시예에 따른 신경망 기반의 영상 처리 방법 및 장치에 있어서, 상기 현재 채널에 포함된 복수의 블록들은 미리 정의된 고정된 크기를 가질 수 있다.
본 발명의 일 실시예에 따른 신경망 기반의 영상 처리 방법 및 장치에 있어서, 상기 특징 텐서는 부동 소수점(floating-point)으로 표현되는 데이터를 나타내고, 상기 심볼 텐서는 고정 소수점(fixed-point)으로 표현되는 데이터를 나타낼 수 있다.
본 발명의 일 실시예에 따른 신경망 기반의 영상 처리 방법 및 장치에 있어서, 상기 특징 텐서는 미리 정의된 분할 구조에 기초하여 복수의 처리 유닛으로 분할되고, 상기 미리 정의된 분할 구조는 옥트트리 분할 구조, 포인트 단위 분할 구조, 채널 단위 분할 구조 또는 계층 분할 구조 중 적어도 하나를 포함할 수 있다.
본 발명에 따른 특징맵 압축 방법 및 장치를 통해 비디오 신호 코딩 효율을 향상시킬 수 있다.
또한, 본 발명에서 제안하는 특징 텐서 생략 코딩 방법을 적용함으로써 특징맵 압축의 부호화 효율을 향상시킬 수 있다.
또한, 본 발명에서 제안하는 다양한 계층 구조를 이용한 특징 분할 방법을 사용함으로써 부호화 효율을 향상시킬 수 있다.
도 1은 본 개시의 일 실시예에 따른 신경망 기반 추론기의 일 예를 나타내는 블록도이다.
도 2는 본 개시의 일 실시예에 따른 특징 텐서 부호화기 및 복호화기의 일 예를 나타내는 블록도이다.
도 3은 본 개시의 일 실시예에 따른 생략 부호화를 사용하는 특징 텐서 부호화기 및 복호화기의 일 예를 나타내는 블록도이다.
도 4는 본 개시의 일 실시예에 따른 생략 부호화부의 일 예를 나타내는 블록도이다.
도 5는 본 개시의 일 실시예에 따른 채널 생략 부호화부의 일 예를 도시한다.
도 6는 본 개시의 일 실시예에 따른 블록 생략 부호화부의 일 예를 도시한다.
도 7은 본 개시의 일 실시예에 따른 텐서 부호화기/복호화기를 사용한 추론기의 일 예를 나타내는 블록도이다.
도 8은 본 개시의 일 실시예에 따른 텐서 부호화부의 일 예를 도시한다.
도 9는 본 개시의 일 실시예에 따른 특징 텐서의 형태의 일 예를 도시한다.
도 10은 본 개시의 일 실시예에 따른 특징 텐서의 계층적 옥트 트리 분할의 일 예를 도시한다.
도 11은 본 개시의 일 실시예에 따른 특징 텐서의 포인트 단위 분할의 일 예를 도시한다.
도 12는 본 개시의 일 실시예에 따른 특징 텐서의 채널 단위 분할의 일 예를 도시한다.
도 13은 본 개시의 일 실시예에 따른 텐서 부호화부의 일 예를 도시한다.
도 14는 본 개시의 일 실시예에 따른 채널축 균등 분할 구조 및 옥트트리 분할 구조 기반 특징 텐서 분할 방법의 일 예를 도시한다.
도 15는 본 개시의 일 실시예에 따른 채널 단위 분할 구조 및 쿼드트리 분할 구조 기반 특징 텐서 분할 방법의 일 예를 도시한다.
도 16은 본 개시의 일 실시예에 따른 채널 단위 분할 구조 및 균등 분할 구조 기반 특징 텐서 분할 방법의 일 예를 도시한다.
도 17은 본 개시의 일 실시예에 따른 텐서 복호화부의 일 예를 나타내는 블록도이다.
도 18은 본 개시의 일 실시예에 따른 신경망 구조 기반 특징 텐서 분할 방법의 흐름도를 도시한다.
본 명세서에 첨부된 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
본 명세서 전체에서, 어떤 부분이 다른 부분과 '연결'되어 있다고 할 때, 이는 직접적으로 연결되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 전기적으로 연결되어 있는 경우도 포함한다.
또한, 본 명세서 전체에서 어떤 부분이 어떤 구성요소를 '포함'한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것을 의미한다.
또한, 제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 이용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 이용된다.
또한, 본 명세서에서 설명되는 장치 및 방법에 관한 실시예에 있어서, 장치의 구성 일부 또는, 방법의 단계 일부는 생략될 수 있다. 또한 장치의 구성 일부 또는, 방법의 단계 일부의 순서가 변경될 수 있다. 또한 장치의 구성 일부 또는, 방법의 단계 일부에 다른 구성 또는, 다른 단계가 삽입될 수 있다.
또한, 본 발명의 제1 실시예의 일부 구성 또는, 일부 단계는 본 발명의 제2 실시예에 부가되거나, 제2 실시예의 일부 구성 또는, 일부 단계를 대체할 수 있다.
덧붙여, 본 발명의 실시예에 나타나는 구성부들은 서로 다른 특징적인 기능들을 나타내기 위해 독립적으로 도시되는 것으로, 각 구성부들이 분리된 하드웨어나 하나의 소프트웨어 구성단위로 이루어짐을 의미하지 않는다. 즉, 각 구성부는 설명의 편의상 각각의 구성부로 나열하여 기술되고, 각 구성부 중 적어도 두 개의 구성부가 합쳐져 하나의 구성부로 이루어지거나, 하나의 구성부가 복수 개의 구성부로 나뉘어져 기능을 수행할 수 있다. 이러한 각 구성부의 통합된 실시예 및 분리된 실시예도 본 발명의 본질에서 벗어나지 않는 한 본 발명의 권리 범위에 포함된다.
먼저, 본 출원에서 이용되는 용어를 간략히 설명하면 다음과 같다.
이하에서 후술할 복호화 장치(Video Decoding Apparatus)는 민간 보안 카메라, 민간 보안 시스템, 군용 보안 카메라, 군용 보안 시스템, 개인용 컴퓨터(PC, Personal Computer), 노트북 컴퓨터, 휴대형 멀티미디어 플레이어(PMP, Portable MultimediaPlayer), 무선 통신 단말기(Wireless Communication Terminal), 스마트 폰(Smart Phone), TV 응용 서버와 서비스 서버 등 서버 단말기에 포함된 장치일 수 있으며, 각종 기기 등과 같은 이용이자 단말기, 유무선 통신망과 통신을 수행하기 위한 통신 모뎀 등의 통신 장치, 영상을 복호화하거나 복호화를 위해 화면 간 또는, 화면 내 예측하기 위한 각종 프로그램과 데이터를 저장하기 위한 메모리, 프로그램을 실행하여 연산 및 제어하기 위한 마이크로프로세서 등을 구비하는 다양한 장치를 의미할 수 있다.
또한, 부호화기에 의해 비트스트림(bitstream)으로 부호화된 영상은 실시간 또는, 비실시간으로 인터넷, 근거리 무선 통신망, 무선랜망, 와이브로망, 이동통신망 등의 유무선 통신망 등을 통하거나 케이블, 범용 직렬 버스(USB, Universal Serial Bus)등과 같은 다양한 통신 인터페이스를 통해 영상 복호화 장치로 전송되어 복호화되어 영상으로 복원되고 재생될 수 있다. 또는, 부호화기에 의해 생성된 비트스트림은 메모리에 저장될 수 있다. 상기 메모리는 휘발성 메모리와 비휘발성 메모리를 모두 포함할 수 있다. 본 명세서에서 메모리는 비트스트림을 저장한 기록 매체로 표현될 수 있다.
통상적으로 동영상은 일련의 픽쳐(Picture)들로 구성될 수 있으며, 각 픽쳐들은 블록(Block)과 같은 코딩 유닛(coding unit)으로 분할될 수 있다. 또한, 이하에 기재된 픽쳐라는 용어는 영상(Image), 프레임(Frame) 등과 같은 동등한 의미를 갖는 다른 용어로 대치되어 이용될 수 있음을 본 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 이해할 수 있을 것이다. 그리고 코딩 유닛이라는 용어는 단위 블록, 블록 등과 같은 동등한 의미를 갖는 다른 용어로 대치되어 이용될 수 있음을 본 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 이해할 수 있을 것이다.
이하, 첨부한 도면들을 참조하여, 본 발명의 실시예를 보다 상세하게 설명하고자 한다. 본 발명을 설명함에 있어 동일한 구성 요소에 대해서 중복된 설명은 생략한다.
도 1은 본 개시의 일 실시예에 따른 신경망 기반 추론기의 일 예를 나타내는 블록도이다.
본 개시의 일 실시예에 따르면, 신경망 기반 추론기(이하, 추론기로 지칭될 수 있음)는 영상을 입력 받아 추론 결과를 출력할 수 있다. 이때, 입력 영상은 이미지, 비디오, 포인트 클라우드(Point Cloud), 메시(mesh)와 같은 데이터일 수 있고, 추론기에 입력되기 전에 전처리가 수행된 영상일 수도 있다. 마찬가지로, 추론 결과는 이미지, 비디오, 포인트 클라우드, 메시와 같은 데이터일 수 있다. 일 예로서, 추론 결과는 이미지, 비디오 분류 결과일 수 있다. 또는, 일 예로서, 추론 결과는 이미지, 비디오 내부 객체의 위치 정보 또는 크기 정보일 수 있다.
도 1을 참조하면, 추론기는 하나 이상의 신경망을 포함할 수 있다. 일 예로서, 도 1의 예시와 같이, 추론기는 제1 신경망 및 제2 신경망을 포함할 수 있다. 도 1에 도시된 추론기는 일 예로서, 본 개시의 실시예가 이에 제한되는 것은 아니다. 예를 들어, 추론기는 제1 신경망 및 제2 신경망 외에 추가적으로 다른 신경망 또는 다른 처리부를 포함할 수 있다. 또한, 제1 신경망 및 제2 신경망은 별개의 독립적인 구성으로 도시되나 단일 구성으로 구현될 수도 있다.
각 신경망은 다수개의 신경망 레이어를 포함할 수 있다. 이때, 신경망 레이어는 컨볼루션 레이어(convolution layer), 디컨볼루션 레이어(deconvolution layer), 전치된 컨볼루션 레이어(transposed convolution layer), 확장된 컨볼루션 레이어(dilated convolution layer), 그룹화된 컨볼루션 레이어(grouped convolution layer), 그래프 컨볼루션 레이어(graph convolution layer), 평균 풀링 레이어(average pooling layer), 최대 풀링 레이어(max pooling layer), 업샘플링 레이어(up sampling layer), 다운샘플링 레이어(down sampling layer), 픽셀 셔플 레이어(pixel shuffle layer), 채널 셔플 레이어(channel shuffle layer), 배치 정규화 레이어(batch normalization layer), 가중치 정규화 레이어(weight normalization layer) 또는 일반화된 정규화 레이어(generalized normalization layer) 중 적어도 하나를 포함할 수 있다.
일 예로서, 신경망 레이어는 컨볼루션 레이어, 전치된 컨볼루션 레이어, 그룹화된 컨볼루션 레이어, 그래프 컨볼루션 레이어 등과 같이 합성 곱 연산을 수행하는 레이어일 수 있다. 또는, 신경망 레이어는 sigmoid, ReLU(Rectified Linear Unit) 등과 같은 활성 함수를 의미할 수 있다. 또는, 신경망 레이어는 합산, 차분, 곱셈 등 일반 연산을 수행하는 레이어일 수 있다. 또는, 신경망 레이어는 텐서를 정규화하는 배치 정규화 레이어, 가중치 정규화 레이어, 일반화 정규화 레이어일 수 있다. 또는, 신경망 레이어는 업샘플링, 다운샘플링과 같은 레이어일 수 있다. 또는, 신경망 레이어는 풀링(pooling) 레이어, 활성 레이어일 수 있다.
제1 신경망은 영상을 입력 받아 특징 텐서를 출력할 수 있다. 여기서, 특징 텐서는 신경망으로부터 생성된 1차원 이상의 데이터를 의미할 수 있다. 또한, 하나 또는 다수개의 특징 텐서가 출력될 수 있다. 본 개시에서 특징 텐서는 특징 맵을 나타낼 수 있다. 또는, 신경망으로부터 출력되는 하나 이상의 특징 텐서는 특징 맵으로 지칭될 수 있다. 이때, 다수개의 특징 텐서는 서로 다른 공간 해상도를 가질 수 있다. 또는, 서로 다른 공간 해상도의 같은 채널을 가지는 다수개의 특징 텐서를 생성할 수 있다. 생성된 하나 이상의 특징 텐서는 제2 신경망에 전달될 수 있다.
제2 신경망은 하나 또는 다수개의 특징 텐서를 입력 받아 추론 결과를 출력할 수 있다. 일 예로서, 추론 결과는 복원된 영상일 수 있다. 또는, 일 예로서, 추론 결과는 객체 탐지의 결과와 같은 2차원 또는 3차원 공간 상의 사각 박스(또는 블록)의 위치일 수 있다. 또는, 추론 결과는 2차원 공간 상의 객체 영역을 의미하는 마스크일 수 있다. 또는, 추론 결과는 다수개의 객체에 대한 확률 값을 의미할 수 있다. 또는, 추론 결과는 일반적으로 머신 비전을 위해 사용되는 다양한 결과들을 의미할 수 있다.
신경망은 일반적으로 영상 분류, 영상 복원, 영상 분할, 객체 인식, 객체 추적 등과 같은 다양한 여러 응용에 사용될 수 있다. 따라서, 본 실시예에 따른 신경망은 영상을 입력 받아 각 응용에 맞는 결과를 추론하도록 학습되어 있을 수 있다.
본 발명의 일 실시예에서, 제1 신경망 및/또는 제2 신경망은 그래프 컨볼루션 레이어(graph convolution layer)를 포함할 수 있다. 컨볼루션 레이어는 이미지의 특징들을 추출하고, 추출된 특징들을 기반으로 특징맵을 생성(또는 업데이트)할 수 있다. 그래프 컨볼루션 레이어는 그래프 데이터를 기반으로 특징을 추출하는 컨볼루션 레이어를 나타낼 수 있다. 그래프 데이터는 복수의 노드 정보(꼭지점 정보) 및/또는 복수의 노드간 연결 정보(에지 정보)를 포함할 수 있다. 실시예로서, 그래프 컨볼루션 레이어에서 웨이블릿 변환(wavelet transform)이 이용될 수 있다. 일 예로서, 그래프 컨볼루션 레이어에서 그래프 기반의 웨이블릿 변환이 이용될 수 있다. 그래프 기반의 웨이블릿 변환은 리프팅 변환(lifting transform)으로 지칭될 수 있다. 일 예로서, 제1 신경망은 웨이블릿 변환, 리프팅 변환을 이용할 수 있고, 제2 신경망은 웨이블릿 역변환(inverse wavelet transform), 리프팅 역변환(inverse lifting transform)을 이용할 수 있다.
도 2는 본 개시의 일 실시예에 따른 특징 텐서 부호화기 및 복호화기의 일 예를 나타내는 블록도이다.
도 2를 참조하면, 특징 텐서 부호화기는 특징 텐서를 입력 받아 비트스트림을 출력할 수 있다. 특징 텐서 부호화기는 양자화부, 엔트로피 부호화부를 포함할 수 있다. 도 2에 도시된 특징 텐서 부호화기는 일 예로서, 본 개시의 실시예가 이에 제한되는 것은 아니다. 예를 들어, 특징 텐서 부호화기는 양자화부, 엔트로피 부호화부 외에 추가적으로 다른 처리부 또는 다른 구성을 포함할 수 있다. 또한, 양자화부, 엔트로피 부호화부는 별개의 독립적인 구성으로 도시되나 단일 구성으로 구현될 수도 있다.
양자화부는 특징 텐서를 입력 받아 양자화하여 심볼 텐서를 생성할 수 있다. 이때, 특징 텐서는 부동 소수점(floating-point), 심볼 텐서는 고정 소수점(fixed-point)으로 표현된 데이터일 수 있다. 여기서, 양자화를 위한 양자화 크기(또는 양자화 스텝 크기)는 미리 정의된 고정된 값일 수도 있고, 시그날링될 수도 있다. 또는, 양자화 크기는 사용자로부터 입력 받을 수도 있다. 일 예로, 양자화 크기는 엔트로피 부호화를 통해 비트스트림을 통해 전달될 수 있다. 또는, 양자화부와 역양자화부 사이 약속에 따라 고정된 양자화 크기가 사용될 수 있다.
또는, 일 예로서, 양자화 크기는 부호화 정보에 기초하여 결정될 수 있다. 상기 부호화 정보는 특징 텐서(또는 특징맵)의 크기, 특징 텐서에 포함된 채널의 개수, 특징 텐서의 압축 방법, 특징 텐서가 출력되는 현재 레이어의 레이어 구조(또는 타입), 상기 현재 레이어의 이전 레이어의 레이어 구조, 상기 현재 레이어의 다음 레이어의 레이어 구조 또는 비트 레이트 중 적어도 하나를 포함할 수 있다.
또는, 특징 텐서가 다수개인 경우에 특징 텐서별로 서로 다른 양자화 크기를 이용하여 양자화를 수행할 수 있다. 또한, 일 예로서, 복수의 특징 텐서에 대한 그룹핑이 수행되고, 특징 텐서 그룹 별로 동일한 양자화 크기를 적용하여 양자화를 수행할 수 있다. 특징 텐서 그룹은 복수의 특징 텐서를 포함할 수 있다. 일 예로서, 특징 텐서 그룹은 특정 개수의 특징 텐서를 포함할 수 있다. 상기 특정 개수는 미리 정의된 고정된 값일 수도 있고, 비트스트림을 통해 부호화되는 값일 수도 있다. 또한, 일 예로서, 특징 텐서의 그룹핑은 상술한 부호화 정보에 기초하여 수행될 수 있다. 이때, 각 양자화 크기는 엔트로피 부호화를 통해 비트스트림에 포함되어 이후 단계에 전달될 수 있다.
엔트로피 부호화부는 입력 받은 심볼 텐서를 엔트로피 부호화하여 비트스트림을 생성할 수 있다. 엔트로피 부호화부에서는 엔트로피 부호화를 위하여 다수개의 심볼을 이용하는 산술 부호화기가 사용될 수 있다. 또는, 심볼 텐서를 이진화하여 이진 산술 부호화기를 통해 비트스트림이 생성될 수 있다. 생성된 비트스트림은 특징 텐서 복호화기로 전달될 수 있다.
특징 텐서 복호화기는 비트스트림을 입력 받아 복원된 특징 텐서를 생성할 수 있다. 특징 텐서 복호화기는 엔트로피 복호화부, 역양자화부를 포함할 수 있다. 도 2에 도시된 특징 텐서 복호화기는 일 예로서, 본 개시의 실시예가 이에 제한되는 것은 아니다. 특징 텐서 복호화기는 엔트로피 복호화부, 역양자화부 외에 추가적으로 다른 처리부 또는 다른 구성을 포함할 수 있다. 또한, 복호화부, 역양자화부 별개의 독립적인 구성으로 도시되나 단일 구성으로 구현될 수도 있다.
엔트로피 복호화부는 비트스트림을 입력 받아 복원된 심볼 텐서를 생성할 수 있다. 엔트로피 복호화부에 의해 생성된 복원된 심볼 텐서는 역양자화부에 전달될 수 있다.
역양자화부는 복원된 심볼 텐서를 입력 받아 역양자화를 수행하여 복원된 특징 텐서를 생성할 수 있다.
도 3은 본 개시의 일 실시예에 따른 생략 부호화를 사용하는 특징 텐서 부호화기 및 복호화기의 일 예를 나타내는 블록도이다.
도 3을 참조하면, 특징 텐서 부호화기는 양자화부, 생략 부호화부, 엔트로피 부호화부를 포함할 수 있다. 특징 텐서 복호화기는 엔트로피 복호화부, 생략 복호화부, 역양자화부를 포함할 수 있다. 도 3에 도시된 특징 텐서 부호화기 및 복호화기는 일 예로서, 본 개시의 실시예가 이에 제한되는 것은 아니다. 예를 들어, 특징 텐서 부호화기는 양자화부, 생략 부호화부, 엔트로피 부호화부 외에 추가적으로 다른 처리부 또는 다른 구성을 포함할 수 있다. 또한, 양자화부, 생략 부호화부, 엔트로피 부호화부는 별개의 독립적인 구성으로 도시되나 전부 또는 일부 구성이 단일 구성으로 구현될 수도 있다. 마찬가지로, 특징 텐서 복호화기는 엔트로피 복호화부, 생략 복호화부, 역양자화부 외에 추가적으로 다른 처리부 또는 다른 구성을 포함할 수 있다. 또한, 엔트로피 복호화부, 생략 복호화부, 역양자화부는 별개의 독립적인 구성으로 도시되나 전부 또는 일부 구성이 단일 구성으로 구현될 수도 있다.
특징 텐서 부호화기는 특징 텐서를 입력 받아 비트스트림을 출력할 수 있다. 출력된 비트스트림은 특징 텐서 복호화기로 전송될 수 있다.
구체적으로, 양자화부는 특징 텐서를 입력 받고, 특징 텐서를 양자화하여 심볼 텐서를 생성할 수 있다. 양자화부에 의해 출력되는 심볼 텐서는 양자화된 특징 텐서, 양자화된 특징맵으로 지칭될 수도 있다. 생성된 심볼 텐서는 생략 부호화부에 전달될 수 있다. 도 3의 양자화부는 앞서 도 2에서 설명한 바와 같을 수 있으며, 관련하여 중복되는 설명은 생략한다.
본 개시의 일 실시예에 따르면, 심볼 텐서는 선택적으로 또는 계층적으로 부호화될 수 있다. 다시 말해, 심볼 텐서에 대한 엔트로피 부호화는 선택적으로 또는 계층적으로 수행될 수 있다. 본 개시에서, 생략 부호화와 생략 복호화는 생략 코딩(skip coding)으로 통칭될 수 있다. 또한, 생략 코딩은 그 명칭에 제한되지 않으며, 압축 코딩, 선택 압축 코딩, 계층 압축 코딩, 우회 코딩(bypass coding) 등으로 지칭될 수도 있다.
생략 부호화부는 심볼 텐서에 대한 생략 부호화 수행 여부에 따라, 심볼 텐서로부터 압축된 정보를 엔트로피 부호화부로 전달할 수도 있고, 입력 받은 심볼 텐서를 압축하지 않고 엔트로피 부호화부로 전달할 수도 있다.
구체적으로, 생략 부호화가 수행되는 경우, 생략 부호화부는 심볼 텐서를 입력 받아 생략 부호화를 수행하여 심볼 텐서로부터 다수개의 심볼들을 생성할 수 있다. 이때, 다수개의 심볼은 생략 플래그 또는 심볼 텐서 값들을 포함할 수 있다. 생성된 심볼들은 엔트로피 부호화부로 전달될 수 있다.
또는, 생략 부호화가 수행되지 않는 경우, 생략 부호화부는 생략 부호화를 수행하지 않고 입력 받은 심볼 텐서를 엔트로피 부호화부로 전달할 수 있다. 이때, 생략 부호화 수행 여부에 대한 정보가 엔트로피 부호화부를 통해 복호화기로 부가적으로 전달될 수 있다.
생략 부호화 수행 여부는 다양한 여러 부호화 정보에 기초하여 결정될 수 있다. 일 예로서, 신경망 구조에 따라 생략 부호화의 수행 여부가 결정될 수 있다. 또는, 신경망 레이어의 구조 또는 종류(또는 유형)에 따라 생략 부호화의 수행 여부가 결정될 수 있다. 예를 들어, 다음 레이어의 종류에 따라 생략 부호화의 수행 여부가 결정될 수 있다. 여기서, 다음 레이어는 부호화 프로세스를 기준으로 현재 레이어의 다음 순서의 레이어를 나타내며, 현재 레이어는 현재 특징 텐서가 출력된 레이어를 나타낸다. 그리고, 현재 특징 텐서에 대한 양자화를 통해 생략 부호화의 수행 여부 결정 대상이 되는 현재 심볼 텐서가 생성될 수 있다.
또는, 예를 들어, 현재 레이어 및/또는 다음 레이어의 종류에 따라 생략 부호화의 수행 여부가 결정될 수 있다. 일 예로서, 현재 레이어 및 다음 레이어의 종류에 따라 생략 부호화의 수행 여부가 미리 정의될 수 있다.
예를 들어, 현재 심볼 텐서가 생성된 레이어의 다음 레이어의 종류가 합산 레이어인 경우 생략 부호화가 수행될 수 있다. 또 다른 예로서, 현재 심볼 텐서가 생성된 레이어가 업샘플링 레이어가 아니며, 다음 레이어의 종류가 합산 레이어인 경우 생략 부호화가 수행될 수 있다. 위 두 경우의 심볼 텐서는 의미적으로 잔차 텐서일 수 있으며 대부분의 심볼 값이 0일 수 있다. 이러한 경우에는 생략 부호화의 부호화 효율이 좋기 때문에 생략 부호화를 수행하도록 결정할 수 있다. 또는, 일 예로서, 다음 레이어가 합산 레이어가 아닌 경우에는, 생략 부호화는 수행되지 않는 것으로 결정될 수 있다. 또는, 일 예로서, 현재 레이어가 업샘플링 레이어인 경우, 생략 부호화는 수행되지 않는 것으로 결정될 수 있다.
다른 일 예로서, 생략 부호화 수행 여부 결정을 위해 신경망을 사용할 수 있다. 예를 들어, 심볼 텐서를 입력 받고 다수개의 신경망 레이어를 포함하는 신경망을 통해 생략 부호화 수행 여부 결정을 위한 텐서를 생성하고 텐서의 값들을 바탕으로 생략 부호화 수행 여부를 결정할 수 있다. 다시 말해, 신경망에 의해 입력된 심볼 텐서로부터 생략 부호화 수행 여부 결정을 위한 텐서(또는 중간 결과물, 중간 텐서, 임시 텐서, 특징 텐서, 임시 특징 텐서, 중간 특징 텐서)가 생성될 수 있고, 생성된 텐서에 기초하여 생략 부호화 수행 여부가 결정될 수 있다. 또한, 일 예로서, 생략 부호화 수행 여부 결정을 위한 신경망의 텐서(중간 결과물)도 부호화될 수 있으며, 복호화기에서는 부호화된 텐서를 복호화하고, 신경망 레이어를 통해 부호하기와 동일한 생략 부호화 수행 여부 결정을 위한 텐서를 생성하고, 이를 이용하여 생략 부호화 수행 여부를 결정할 수 있다.
또는, 생략 부호화 수행 여부는 사용자로부터 정보를 입력 받아 결정할 수 있다.
엔트로피 부호화부는 심볼들을 전달받아 엔트로피 부호화하여 비트스트림을 생성할 수 있다. 이때, 심볼들의 종류에 따라서 서로 다른 확률 테이블을 사용하여 엔트로피 부호화할 수 있다. 생성된 비트스트림은 특징 텐서 부호화기로 전달될 수 있다.
특징 텐서 복호화기는 비트스트림을 입력 받아 복원된 특징 텐서를 생성할 수 있다.
엔트로피 복호화부는 비트스트림을 입력 받아 복원된 심볼들을 생성할 수 있다. 생성된 복원된 심볼들은 생략 복호화부에 전달될 수 있다.
생략 복호화부는 전달받은 심볼들을 이용하여 심볼 텐서를 복원할 수 있다. 복원된 심볼 텐서는 역양자화부로 전달될 수 있다.
역양자화부는 복원된 심볼 텐서를 입력 받아 역양자화를 수행하여 복원된 특징 텐서를 생성할 수 있다.
도 4는 본 개시의 일 실시예에 따른 생략 부호화부의 일 예를 나타내는 블록도이다.
도 4를 참조하면, 생략 부호화부는 심볼 텐서를 입력 받아 하나 또는 다수개의 심볼을 생성할 수 있다. 도 3에서의 생략 부호화부에 관한 설명은 본 실시예에서도 동일하게 적용될 수 있다. 관련하여 중복되는 설명은 생략한다. 즉, 도 4에 도시된 생략 부호화부는 도 3의 생략 부호화부의 일 예일 수 있다.
생략 부호화부는 도 4에 도시된 바와 같이, 채널 생략 부호화부, 블록 생략 부호화부, 블록 부호화부를 포함할 수 있다. 본 개시의 일 실시예에 따르면, 심볼 텐서에 대하여 계층적으로 생략 부호화가 수행될 수 있다. 심볼 텐서에 대한 적용 여부는 계층적으로 결정될 수 있다.
채널 생략 부호화부는 입력 받은 심볼 텐서를 채널 별로 특징맵을 분석하여 부호화를 수행할 채널과 생략할 채널을 분류하고 이를 기반으로 채널 별로 부호화 여부에 대한 심볼을 생성할 수 있다. 또는, 채널 생략 부호화부는 심볼 텐서의 채널 별로 생략 부호화 적용 여부를 결정할 수 있고, 생략 부호화 적용 여부에 대하 심볼을 생성할 수 있다. 생성된 심볼은 엔트로피 부호화부로 전달될 수 있다. 또한, 부호화를 수행해야 하는 채널의 특징맵(또는 심볼 텐서)은 블록 생략 부호화부로 전달될 수 있다.
블록 생략 부호화부는 입력 받은 특징맵을 다수개의 블록으로 분할하고 각 블록 별로 분석하여 부호화 수행할 블록과 그렇지 않은 블록을 분류하여 부호화 수행 여부에 대한 심볼을 생성할 수 있다. 생성된 심볼은 엔트로피 부호화부로 전달될 수 있다. 또한, 부호화를 수행해야 하는 블록으로 분류된 블록들은 블록 부호화부로 전달될 수 있다.
일 예로서, 블록 부호화부는 입력 받은 블록 내부의 샘플 또는 심볼 값 각각에 대하여 하나 또는 다수개의 구간로 나누어 심볼화할 수 있다. 예를 들어, 심볼 값 별로 0인 경우, 0보다 크고 2보다 작은 경우, 2 보다 크고 4보다 작은 경우 등과 같이 다수개의 심볼이 생성될 수 있다. 또는, 블록 부호화부에서 기존의 이미지, 비디오 코덱에서 사용하는 블록 단위 부호화가 수행될 수 있다. 또는, 블록 부호화부에서 신경망 기반 코덱이 사용될 수 있다. 생성된 심볼들은 엔트로피 부호화부로 전달될 수 있다.
도 5는 본 개시의 일 실시예에 따른 채널 생략 부호화부의 일 예를 도시한다.
도 5는 생략 부호화부에서 입력 받은 심볼 텐서에 대하여 채널 생략 부호화를 수행하여 일부 채널을 CCF(Channel Coded Flag)로 표현한 예시이다.
도 5를 참조하면, 심볼 텐서는 하나 이상의 채널로 구성될 수 있다. 도 5에서, 음영 처리되지 않은 채널은 해당 채널의 값이 모두 0 인 채널을 의미하며, 음영 처리된 채널은 하나 이상의 0이 아닌 값을 갖는 채널을 의미한다. 상기 음영 처리되지 않은 채널은 CCF 값이 0으로 결정될 수 있고, 상기 음영 처리된 채널은 CCF 값이 1로 결정될 수 있다.
신경망에서는 입력 받은 영상을 다수개의 신경망 레이어를 통해 특징 들을 분석하고 분류하여 다수개의 채널을 갖는 특징 텐서를 생성할 수 있다. 이때, 분류된 각 채널은 서로 다른 특징을 의미할 수 있다. 입력된 영상에 따라서 특정 특징들은 영상에 존재하지 않을 수 있으며, 그에 따라서 특징 텐서의 활성화 정도가 낮을 수 있다. 이때, 활성화 정도가 낮은 값들이 모두 0으로 양자화될 수 있다. 따라서, 다수개의 채널 중 일부 채널은 심볼 값이 모두 0인 채널이 존재할 수 있다.
생략 부호화부는 각 채널별로 해당 채널 내부에 심볼 값 존재 여부를 확인하고 이를 CCF로 심볼화할 수 있다. 심볼 값이 모두 0인 채널은 CCF를 0으로 표현하고, 심볼 값이 하나라도 0이 아닌 값을 갖는 채널은 1로 표현할 수 있다. 다시 말해, 심볼 값이 모두 0인 채널은 CCF가 0으로 설정되고, 0이 아닌 심볼을 포함하는 채널은 CCF가 1로 설정될 수 있다.
또한, 본 개시의 일 실시예에 따르면, 생략 부호화부는 텐서에 포함된 복수의 채널 중 미리 결정된 하나 이상의 채널에 대하여 CCF를 미리 정의된 값으로 설정할 수 있다. 실시예로서, 생략 부호화부는 복수의 채널 중 미리 결정된 하나 이상의 채널의 CCF를 0으로 설정할 수 있다. 상기 미리 결정된 하나 이상의 채널의 CCF는 비트스트림을 통해 개별적으로 시그날링될 수도 있고, 별도의 시그날링 없이 부호화 장치와 복호화 장치가 동일하게 유도할 수도 있다. 후자의 경우, 상기 미리 결정된 하나 이상의 채널은 부호화 장치와 복호화 장치간 약속에 의해 결정 또는 정의된 채널일 수 있다.
상기 미리 결정된 하나 이상의 채널은 다양한 여려 방법에 의해 결정될 수 있다. 일 예로서, 상기 미리 결정된 하나 이상의 채널은 복수의 채널 중 미리 정의된 개수의 채널을 제외한 나머지 채널들로 결정될 수 있다. 다시 말해, 복수의 채널 중 미리 정의된 개수의 후순위 채널들의 CCF는 1로 설정될 수 있다. 예를 들어, 텐서에 포함된 채널의 개수가 256개인 경우라고 가정하면, 선순위의 128개의 채널에 대해서는 부호화 프로세스가 수행되고, 128개의 채널을 제외한 후순위의 128개의 채널은 부호화가 생략되어 모두 CCF 값이 0으로 설정될 수 있다. 부호화가 수행되는 선순위 채널의 개수 또는 생략 부호화되는 후순위 채널의 개수는 부호화 장치와 복호화 장치에 고정되는 값일 수도 있고, 부호화 장치로부터 복호화 장치로 시그날링되는 값일 수도 있다.
또한, 텐서에 포함된 복수의 채널들간 순서(또는 채널의 우선 순위)는 신경망(또는 신경망 레이어)의 출력에 의해 결정될 수 있다. 일 예로, 상기 순서는 부호화/복호화 순서일 수 있다. 신경망은 채널에 포함된 데이터(또는 심볼, 계수)의 상대적인 중요도, 주파수, 에너지 압축(compaction)을 고려하여 텐서에 포함된 채널들을 정렬하도록 학습될 수 있다. 이와 같이 학습된 신경망을 기반으로 텐서에 포함된 채널(또는 특징맵)을 정렬하고, 정렬된 순서를 기준으로 특정 개수의 후순위 채널들에 대한 부호화/복호화를 생략함으로써, 시그날링 오버헤드를 현저하게 줄이고 압축 효율을 높일 수 있다.도 6는 본 개시의 일 실시예에 따른 블록 생략 부호화부의 일 예를 도시한다.
본 개시의 일 실시예에 따르면, 심볼 텐서에 대한 생략 부호화 계층적으로 수행될 수 있다. 심볼 텐서의 채널 별로 생략 부호화 여부를 지시하는 CCF가 결정될 수 있다. CCF가 1인 채널은 채널의 하위 계층인 블록 단위로 생략 부호화 적용 여부가 결정될 수 있다. 다시 말해, 심볼 텐서의 CCF가 1인 채널에 대하여 블록 생략 부호화가 수행될 수 있다.
도 6을 참조하면, 심볼 텐서의 한 채널은 특징맵으로 지칭될 수 있다. 즉, 심볼 텐서는 3차원 데이터일 수 있고, 복수의 2차원 데이터의 채널을 포함할 수 있다. 특징맵은 도 6에 도시된 바와 같이 가로, 세로의 길이가 각각 W, H인 영역일 수 있다.
일 실시예에서, 블록 생략 부호화를 위하여 특징맵은 미리 고정된 크기의 블록 단위로 분할될 수 있다. 상기 미리 정의된 크기의 블록은 가로, 세로 길이가 각각 WB, HB인 블록일 수 있다. 일 예로서, 만약 특징 맵의 가로 또는 세로 크기가 상기 미리 정의된 블록의 가로 또는 세로 크기로 나누어 떨어지지 않는 경우, 각 수직 또는 수평 방향에서 마지막 블록은 WB, HB 보다 작은 크기의 가로 및 세로 크기를 갖는 블록일 수 있다.
또는, 블록 생략 부호화를 위하여 특징맵은 트리 구조 기반으로 분할될 수 있다. 트리 구조는 쿼드 트리, 바이너리 트리, 트리플 트리 구조를 포함할 수 있다. 트리 구조 기반으로 분할되는 경우, 각각의 노드에서 해당 블록에 포함된 심볼들의 값에 기초하여 추가 분할 여부가 결정될 수 있다. 또는, 트리 구조 기반으로 분할되는 경우, 미리 정의된 깊이까지 분할될 수 있다. 트리 구조의 리프 노드에서 심볼 값이 모두 0인지 여부를 지시하는 정보(또는 플래그)가 시그널링될 수 있다.
도 6에서 음영 처리되지 않은 블록은 블록 내부의 심볼(또는 계수, 샘플) 값이 모두 0인 블록을 나타낼 수 있고, 음영 처리된 블록은 블록 내부에 하나 이상의 0이 아닌 값이 존재하는 블록을 의미할 수 있다.
분할된 각 블록 별로 블록 내부에 심볼 값 존재 유무를 표현하는 CBF(Coded Block Flag)를 생성하여 부호화할 수 있다. CBF는 엔트로피 부호화부로 전달되어 엔트로피 부호화되어 복호화기로 전송될 수 있다.
즉, 심볼 텐서는 채널 별로 생략 부호화 수행 여부가 결정될 수 있다. 채널 내 0이 아닌 심볼(또는 계수, 샘플)이 존재하지 않는 경우, 채널 생략 부호화 플래그(즉, CCF)는 해당 채널에 대한 생략 부호화가 수행됨을 지시하도록 설정되고, 엔트로피 부호화부에 의해 엔트로피 부호화될 수 있다. 채널 내 0이 아닌 심볼이 존재하는 경우, 채널 생략 부호화 플래그는 해당 채널에 대한 생략 부호화가 수행되지 않음을 지시하도록 설정되고, 상위 계층인 채널의 하위 계층인 블록 단위로 생략 부호화가 수행되는지 결정될 수 있다. 블록 내 0이 아닌 심볼이 존재하지 않는 경우, 블록 생략 부호화 플래그(즉, CBF)는 해당 블록에 대한 생략 부호화가 수행됨을 지시하도록 설정되고, 엔트로피 부호화부에 의해 엔트로피 부호화될 수 있다. 블록 내 0이 아닌 심볼이 존재하는 경우, 블록 생략 부호화 플래그는 해당 블록에 대한 생략 부호화가 수행되지 않음을 지시하도록 설정되고, 블록 부호화부에 의해 블록 내 심볼 단위로 개별적으로 부호화될 수 있다.
실시예로서, 하나의 신경망과 이에 인접하는 신경망 사이에서는, 스칼라 값(scalar value), 벡터(vector), 텐서(tensor), 이미지(image), 비디오(video), 비트스트림(bitstream) 등의 다양한 형태로 표현되는 데이터가 전달될 수 있다. 일 예로서, 인접한 신경망 사이에서 상기 데이터는 3차원 데이터인 텐서의 형태로 전달될 수 있다. 또한, 일 예로서, 상기 텐서는 앞서 도 1 내지 도 6에서 설명한 특징 텐서 또는 심볼 텐서일 수도 있다. 이하에서는, 압축 효율을 높이기 위한 다양한 여러 분할 구조 기반 텐서 분할 방법을 설명하도록 한다.
도 7은 본 개시의 일 실시예에 따른 텐서 부호화기/복호화기를 사용한 추론기의 일 예를 나타내는 블록도이다.
도 7을 참조하면, 텐서 부/복호화기를 사용하는 추론기는 영상을 입력 받아 추론 결과를 생성할 수 있다. 텐서 부/복호화기를 사용하는 추론기는 제1 신경망, 텐서 부호화부, 텐서 복호화부, 제2 신경망을 포함할 수 있다. 도 7에 도시된 추론기는 일 예로서, 본 개시의 실시예가 이에 제한되는 것은 아니다. 예를 들어, 추론기는 제1 신경망, 텐서 부호화부, 텐서 복호화부, 제2 신경망 외에 추가적으로 다른 신경망 또는 다른 처리부를 포함할 수도 있고, 일부 구성이 생략될 수도 있다. 또한, 제1 신경망, 텐서 부호화부, 텐서 복호화부, 제2 신경망은 별개의 독립적인 구성으로 도시되나 전부 또는 일부 구성이 결합된 구성으로 구현될 수도 있다.
이때, 제1 신경망과 제2 신경망은 하나의 신경망이 2개의 신경망으로 분할된 것일 수 있다. 여기서, 각 신경망은 하나 또는 다수개의 신경망 레이어를 포함할 수 있다. 이때, 신경망 레이어는 합성곱, 합산, 차분, 곱셈, 나눗셈 등과 같은 연산을 수행하는 레이어일 수 있다. 또는, 신경망 레이어는 활성화 함수인 sigmoid, ReLU, leakyReLU, GDN을 포함한 모든 활성화 함수 레이어 중 하나일 수 있다. 또는, 신경망 레이어는 텐서를 정규화하는 배치 정규화(Batch normalization), 일반화 정규화(Generalized normalization) 레이어일 수 있다. 또는. 신경망 레이어는 업샘플링 또는 다운샘플링과 같은 레이어일 수 있다. 또는, 신경망 레이어는 풀링(pooling) 레이어, 활성 레이어일 수 있다.
제1 신경망은 영상을 입력 받아 특징 텐서를 생성할 수 있다. 생성된 특징 텐서는 텐서 부호화부로 전달될 수 있다. 실시예로서, 특징 텐서는 신경망으로부터 출력된 결과물일 수 있다. 특징 텐서는 신경망으로부터 출력된 중간 결과물일 수도 있고, 최종 결과물일 수도 있다.
텐서 부호화부는 특징 텐서를 입력 받아 부호화하여 비트스트림을 생성할 수 있다. 생성된 비트스트림은 텐서 복호화부로 전달될 수 있다.
텐서 복호화부는 비트스트림을 입력 받아 복호화를 수행하여 특징 텐서를 복원할 수 있다. 복원된 특징 텐서는 제2 신경망에 전달될 수 있다.
제2 신경망은 복원된 특징 텐서를 입력 받아 추론 결과를 생성할 수 있다.
도 8은 본 개시의 일 실시예에 따른 텐서 부호화부의 일 예를 도시한다.
도 8을 참조하면, 텐서 부호화부는 텐서 분할부, 코딩 유닛 부호화부, 엔트로피 부호화부를 포함할 수 있다. 도 8에 도시된 텐서 부호화부는 일 예로서, 본 개시의 실시예가 이에 제한되는 것은 아니다. 예를 들어, 텐서 부호화부는 텐서 분할부, 코딩 유닛 부호화부, 엔트로피 부호화부 외에 추가적으로 다른 구성을 포함할 수도 있고, 일부 구성이 생략될 수도 있다. 또한, 텐서 분할부, 코딩 유닛 부호화부, 엔트로피 부호화부는 별개의 독립적인 구성으로 도시되나 전부 또는 일부 구성이 결합된 구성으로 구현될 수도 있다.
텐서 분할부는 특징 텐서를 입력 받아 하나 또는 다수개의 코딩 유닛(또는 처리 유닛)으로 분할할 수 있다. 본 개시의 일 실시예에 따르면, 텐서의 분할 방법으로 다양한 여러 방법이 정의될 수 있다. 일 예로서, 텐서의 분할 방법은 옥트트리 분할, 포인트 단위 분할, 채널 단위 분할을 포함할 수 있다. 옥트트리 분할(또는 계층적 옥트리 분할)은 도 10에서 후술하며, 포인트 단위 분할은 도 11에서 후술하며, 채널 단위 분할은 도 12에서 후술한다.
분할에 사용된 정보는 엔트로피 부호화부로 전달될 수 있다. 분할된 하나 또는 다수개의 코딩 유닛은 코딩 유닛 부호화부로 전달될 수 있다.
코딩 유닛 부호화부는 전달받은 코딩 유닛을 부호화하여 다수개의 심볼을 생성할 수 있다. 생성된 심볼들은 엔트로피 부호화부로 전달될 수 있다.
엔트로피 부호화부는 전달받은 분할 정보와 심볼들을 엔트로피 부호화하여 비트스트림을 생성할 수 있다.
도 9는 본 개시의 일 실시예에 따른 특징 텐서의 형태의 일 예를 도시한다.
전술한 바와 같이, 특징 텐서는 1차원 이상의 데이터일 수 있으며, 일반적으로 부동 소수점(floating-point)으로 표현된 데이터일 수 있다. 또한, 특징 텐서는 다수개의 신경망 레이어를 통해 생성된 특징 값들일 수 있다. 그리고, 같은 채널의 값들은 같은 성질의 특징을 갖는 것으로 해석할 수 있다.
도 9를 참조하면, 일 실시예에서, 특징 텐서는 도 9에 도시된 바와 같이 가로, 세로, 채널의 길이가 각각 W, H, C인 3차원 데이터로 표현될 수 있다. 일 예에서, W, H는 입력 받은 영상의 가로 및 세로 크기보다 작을 수 있다. 또한, 채널 수 C는 W, H보다 상대적으로 큰 값을 가질 수 있다.
도 10은 본 개시의 일 실시예에 따른 특징 텐서의 계층적 옥트 트리 분할의 일 예를 도시한다.
도 10을 참조하면, 3차원 데이터인 특징 텐서는 도 10에 도시된 바와 같이 옥트트리 구조로 재귀적으로 8-분할될 수 있다. 상위 노드로부터 분할된 옥트트리의 하위 노드는 다시 옥트트리 구조로 계층적으로 분할될 수 있다.
일 실시예에서, 각 계층에서 각 노드에 포함된 샘플 값이 모두 0인 경우에는 추가적으로 분할되지 않을 수 있다. 즉, 하위 노드 내에 0이 아닌 데이터가 존재하지 않는 경우, 추가 분할이 수행되지 않을 수 있다.
또는, 일 실시예에서, 각 계층의 노드인 분할된 텐서의 특징(또는 타입)을 분석하여 분할 여부가 결정될 수 있다. 예를 들어, 각 계층의 노드의 가로, 세로, 채널수 중 어느 하나가 미리 정의된 임계값보다 작은 경우, 옥트트리가 아닌 다른 미리 정의된 구조의 분할 구조를 이용하여 분할될 수 있다. 또는, 각 계층의 노드의 가로, 세로, 채널수 중 어느 하나가 미리 정의된 임계값보다 작은 경우, 추가적인 분할이 수행되지 않는 것으로 결정될 수 있다. 미리 정의된 임계값은 1, 2, 4 또는 1 보다 큰 정수일 수 있다.
이때, 분할 여부, 분할 깊이를 포함하는 분할 정보가 엔트로피 부호화부를 통해 비트스트림에 포함되어 복호화기로 전달될 수 있다. 계층적으로 분할된 마지막 노드, 즉, 트리 구조의 최하위 노드는 부호화 단위인 코딩 유닛으로 결정될 수 있고, 코딩 유닛 부호화부로 전달될 수 있다.
도 11은 본 개시의 일 실시예에 따른 특징 텐서의 포인트 단위 분할의 일 예를 도시한다.
도 11을 참조하면, 3차원 데이터인 특징 텐서는 공간적으로 가로, 세로, 채널 길이가 W, H, C일 수 있다.
본 개시의 일 실시예에 따르면, 특징 텐서 부호화를 위하여 특징 텐서는 포인트 단위로 분할이 수행될 수 있다. 포인트 단위 분할은 도 11에 도시된 바와 같이, 공간적으로 1x1의 크기에 채널 길이인 C의 길이를 갖는 벡터 단위로 분할하는 방법일 수 있다.
분할된 각 벡터는 하나의 코딩 유닛이 되어 코딩 유닛 단위 부호화가 수행될 수 있다.
도 12는 본 개시의 일 실시예에 따른 특징 텐서의 채널 단위 분할의 일 예를 도시한다.
도 12를 참조하면, 특징 텐서는 가로, 세로, 채널이 각각 W, H, C의 길이를 가지는 3차원 데이터일 수 있다. 특징 텐서의 각각의 채널은 서로 다른 특징(또는 특징맵)을 의미할 수 있다. 따라서, 동일한 특징 별로 부호화/복호화를 수행하여 부호화 효율을 향상시킬 수 있다.
본 개시의 일 실시예에 따르면, 특징 텐서는 채널 별로 분할될 수 있다. 3차원 데이터는 2차원 평면 단위로 분할될 수 있다. 분할된 채널의 특징맵을 하나의 코딩 유닛으로 결정하고, 이를 기반으로 부/복호화를 수행할 수 있다.
도 13은 본 개시의 일 실시예에 따른 텐서 부호화부의 일 예를 도시한다.
도 13을 참조하면, 텐서 부호화부는 제1 텐서 분할부, 제2 텐서 분할부, 코딩 유닛 부호화부, 엔트로피 부호화부를 포함할 수 있다. 도 13에 도시된 텐서 부호화부는 일 예로서, 본 개시의 실시예가 이에 제한되는 것은 아니다. 예를 들어, 텐서 부호화부는 제1 텐서 분할부, 제2 텐서 분할부, 코딩 유닛 부호화부, 엔트로피 부호화부 외에 추가적으로 다른 구성을 포함할 수도 있고, 일부 구성이 생략될 수도 있다. 또한, 제1 텐서 분할부, 제2 텐서 분할부, 코딩 유닛 부호화부, 엔트로피 부호화부는 별개의 독립적인 구성으로 도시되나 전부 또는 일부 구성이 결합된 구성으로 구현될 수도 있다.
본 개시의 일 실시예에 따르면, 텐서는 계층 구조로 분할될 수 있다. 일 예로서, 제1 분할 구조로 텐서 분할이 수행된 후, 제1 분할 구조로 분할된 텐서에 대하여 제2 분할 구조로 텐서 분할이 수행될 수 있다.
구체적으로, 제1 텐서 분할부는 특징 텐서를 입력 받고, 입력된 특징 텐서를 제1 분할 구조에 기초하여 하나 또는 다수개의 분할된 특징 텐서로 분할할 수 있다. 실시예로서, 제1 분할 구조는 채널 축을 기준으로 하는 채널 균등 분할 구조, 채널 별로 분할하는 채널 단위 분할 구조 중 적어도 하나를 포함할 수 있다. 제1 분할 구조가 채널 균등 분할인 경우는 도 14에서, 제1 분할 구조가 채널 단위 분할 구조인 경우는 도 15, 16에서 후술한다.
제1 분할 구조에 관한 분할 정보는 엔트로피 부호화부로 전달될 수 있다. 또는, 제1 분할 구조에 관한 분할 정보는 부호화 정보에 기초하여 유도될 수도 있다. 분할된 하나 또는 다수개의 분할된 특징 텐서는 제2 텐서 분할부로 전달될 수 있다.
제2 텐서 분할부는 입력 받은 분할된 특징 텐서를 제2 분할 구조에 기초하여 하나 또는 다수개로 분할할 수 있다. 제2 분할 구조의 하위 노드의 분할된 텐서는 코딩 유닛(또는 처리 유닛)으로 결정될 수 있다.
실시예로서, 제2 분할 구조는 옥트리 분할 구조, 쿼드트리 분할, 공간적으로 균등 분할 중 적어도 하나를 포함할 수 있다. 또는, 제2 분할 구조는 제1 분할 구조에 따라 의존적으로 결정될 수 있다. 예를 들어, 제1 텐서 분할부에서 채널축 균등 분할이 수행되었다면, 제2 텐서 분할부에서는 옥트트리 분할로 결정될 수 있다. 또는, 제1 텐서 분할부에서 채널 단위 분할이 수행되었다면, 제2 텐서 분할부에서는 쿼드 트리 분할로 결정될 수 있다. 또는, 제1 텐서 분할부에서 채널 단위 분할이 수행되었다면, 제2 텐서 분할부에서는 공간 균등 분할로 결정될 수 있다. 결정된 분할 정보는 엔트로피 부호화부를 통해 비트스트림에 포함되어 복호화기로 전달될 수 있다. 또는, 제2 분할 구조에 관한 분할 정보는 부호화 정보에 기초하여 유도될 수도 있다.
생성된 코딩 유닛들은 코딩 유닛 부호화부로 전달될 수 있다.
코딩 유닛 부호화부는 전달받은 코딩 유닛을 부호화하여 다수개의 심볼을 생성할 수 있다. 생성된 심볼들은 엔트로피 부호화부로 전달될 수 있다.
엔트로피 부호화부는 전달받은 분할 정보와 심볼들을 엔트로피 부호화하여 비트스트림을 생성할 수 있다.
도 14는 본 개시의 일 실시예에 따른 채널축 균등 분할 구조 및 옥트트리 분할 구조 기반 특징 텐서 분할 방법의 일 예를 도시한다.
도 14를 참조하면, 계층 분할 중 제1 분할 구조는 채널축 균등 분할 구조이고, 제2 분할 구조는 옥트트리 분할 구조인 경우를 전제로 설명한다. 채널축 균등 분할이 수행되는 경우, 특징 텐서는 채널 축을 기준으로 특정 단위(또는 길이)로 동일 크기의 채널 수를 갖는 텐서로 분할될 수 있다. 그리고, 분할된 각 특징 텐서는 추가적으로 옥트트리 구조로 계측 적으로 분할될 수 있다.
옥트트리 구조의 노드들은 하나의 코딩 유닛으로서 코딩 유닛 부호화기로 전달될 수 있다. 일 실시예에서, 옥트트리 노드들을 서로 다른 크기를 가질 수 있다. 따라서, 옥트트리로 분할되는 과정에서 각 노드별로 분할 여부가 결정될 수 있다. 분할 여부 결정은 각 노드를 분석하여 분석된 결과에 기반하여 분할 여부가 결정될 수 있다. 예를 들면, 노드의 모든 값이 0인 경우에는 추가로 분할되지 않도록 결정될 수 있다. 또는, 노드 내부의 모든 값들이 서로 동일 또는 유사한 값을 가진 경우에 분할되지 않을 수 있다. 또는, 사용자 파라미터로 주어진 옥트트리 깊이를 기반으로 결정될 수 있다.
옥트트리 분할 구조에 관련된 정보는 엔트로피 부호화기를 통해 복호화기로 전달될 수 있다.
도 15는 본 개시의 일 실시예에 따른 채널 단위 분할 구조 및 쿼드트리 분할 구조 기반 특징 텐서 분할 방법의 일 예를 도시한다.
도 15를 참조하면, 제1 텐서 분할부에서 특징 텐서는 채널 단위로 분할될 수 있다. 2차원 분할된 특징 텐서는 특징맵일 수 있다. 제1 분할 구조는 채널 단위 분할 구조일 수 있다. 특징맵은 제2 텐서 분할부에서 추가로 쿼드트리 구조로 분할될 수 있다. 즉, 제2 분할 구조는 쿼드트리 분할 구조일 수 있다.
일 실시예에서, 쿼드 트리 분할은 최소 코딩 유닛의 크기가 정해질 수도 있고, 분할 깊이가 미리 정의될 수도 있다. 예를 들어, 쿼드트리 분할은 노드의 크기가 1x1까지 분할 될 수 있다. 또는, 사용자로부터 입력을 받은 깊이 파라미터에 의해 분할 깊이가 결정되어 깊이를 기반으로 분할될 수 있다. 또는, 쿼드트리로 분할하는 과정에서 각 노드의 특징맵을 분석하여 분할 여부가 결정될 수 있다.
또한, 쿼드트리 분할 구조에 관련된 정보는 엔트로피 부호화기를 통해 복호화기로 전달될 수 있다.
도 16은 본 개시의 일 실시예에 따른 채널 단위 분할 구조 및 균등 분할 구조 기반 특징 텐서 분할 방법의 일 예를 도시한다.
도 16을 참조하면, 제1 분할 구조는 채널 단위 분할 구조이고, 제2 분할 구조는 공간 균등 분할 구조인 경우를 가정한다. 제1 텐서 분할부에서 채널 단위로 분할된 특징맵은 제2 텐서 분할부에서 추가적으로 공간 균등 분할될 수 있다. 이때, 균등 분할을 위해 특징맵에 대한 패딩이 수행될 수 있다.
균등 분할 크기는 미리 정의된 크기로 결정될 수도 있고, 부호화 장치에서 복호화 장치로 시그날링되는 값일 수 있다.
분할된 특징 맵들은 코딩 유닛 부호화기로 전달될 수 있다.
도 17은 본 개시의 일 실시예에 따른 텐서 복호화부의 일 예를 나타내는 블록도이다.
도 17을 참조하면, 텐서 복호화부는 비트스트림을 입력 받아 특징 텐서를 복호화하여 복원된 특징 텐서를 생성할 수 있다. 텐서 복호화부는 엔트로피 복호화부, 텐서 분할부, 코딩 유닛 복호화부를 포함할 수 있다. 도 17에 도시된 텐서 복호화부는 일 예로서, 본 개시의 실시예가 이에 제한되는 것은 아니다. 예를 들어, 텐서 복호화부는 엔트로피 복호화부, 텐서 분할부, 코딩 유닛 복호화부 외에 추가적으로 다른 구성을 포함할 수도 있고, 일부 구성이 생략될 수도 있다. 또한, 엔트로피 복호화부, 텐서 분할부, 코딩 유닛 복호화부는 별개의 독립적인 구성으로 도시되나 전부 또는 일부 구성이 결합된 구성으로 구현될 수도 있다.
엔트로피 복호화부는 입력 받은 비트스트림을 복호화하여 심볼들을 복원할 수 있다. 복원된 심볼 중 텐서 분할부에 관련된 심볼들은 텐서 분할부로, 코딩 유닛 복호화에 관련된 심볼들은 코딩 유닛 복호화부로 전달될 수 있다.
텐서 분할부는 입력 받은 심볼들을 이용하여 텐서를 분할하고 코딩 유닛들을 생성할 수 있다. 텐서 분할부는 도 8 및/또는 도 13의 텐서 분할부와 동일한 동작을 수행할 수 있다. 관련하여 중복되는 설명은 생략한다.
생성된 코딩 유닛들은 코딩 유닛 복호화부로 전달될 수 있다.
코딩 유닛 복호화부는 전달받은 코딩 유닛과 복원된 심볼들을 이용하여 코딩 유닛들을 복원하여 복원된 특징 텐서를 생성할 수 있다.
도 18은 본 개시의 일 실시예에 따른 신경망 구조 기반 특징 텐서 분할 방법의 흐름도를 도시한다.
본 개시의 일 실시예에 따르면, 특징 텐서 분할 방법은 신경망 구조에 따라서 적응적으로 사용될 수 있다. 본 실시예에 따른 특징 텐서 분할 방법이 복호화 장치에 의해 수행되는 경우를 위주로 설명하나, 본 발명이 이에 제한되는 것은 아니다. 즉, 복호화 장치에 의해서도 실질적으로 동일한 방법으로 적용될 수 있다. 도 18의 특징 텐서 분할 방법은 일 예로서, 일부 단계가 생략될 수도 있고, 다른 단계가 추가될 수도 있다.
일 실시예로서, 현재 특징 텐서가 생성된 현재 레이어 및/또는 이전 레이어의 레이어 타입에 기초하여 분할 방법이 적응적으로 결정될 수 있다. 예를 들면, 현재 부/복호화하고자하는 특징 텐서가 생성된 현재 레이어 및/또는 현재 레이어와 연결된 이전 레이어 중 컨볼루션 레이어의 그룹 수(일 예로, 가장 최근의 컨볼루션 레이어의 그룹 수)에 따라서 분할 방법이 결정될 수 있다. 일 예로서, 현재 레이어에 포함된 컨볼루션 레이어의 개수 또는 그룹의 수에 따라 분할 구조 또는 분할 방법이 결정될 수 있다. 일 예로, 그룹 수가 1이면, 제1 텐서 분할부에서는 채널 단위 분할이 사용될 수 있다.
또한, 일 예로, 컨볼루션 레이어의 그룹 수가 1보다 크고, 채널 수보다 작은 경우 제1 텐서 분할부에서는 채널 수를 그룹의 수로 나눈 길이를 단위로 하는 채널축 균등 분할이 사용될 수 있다. 또는, 컨볼루션 레이어의 그룹의 수가 특징 텐서의 채널 길이와 같은 경우에는 제1 텐서 분할부에서는 분할이 수행되지 않을 수 있다. 그룹 컨볼루션이 경우, 각 그룹에 동일한 신경망 필터를 사용하여 특징 텐서를 생성할 수 있다.
도 18을 참조하면, 복호화 장치는 신경망 구조에 대한 정보를 획득할 수 있다(S1800).
이때, 상술한 바와 같이, 복호화 장치는 이전 컨볼루션 레이어에서 사용된 그룹 수를 확인할 수 있다(S1810).
복호화 장치는 그룹 수에 따른 제1 분할 방법 결정하고, 결정된 방법에 따라 분할을 수행할 수 있다(S1820).
복호화 장치는 신경망 전체 구조가 오토인코더 구조인지 확인할 수 있다(S1830). 일 실시예로서, 제2 텐서 분할부는 신경망의 전체 구조에 따라 분할 방법을 결정할 수 있다. 예를 들면, 전체 신경망이 오토인코더 구조를 사용하여 입력 영상과 유사하거나 다른 특징을 가지지만 영상을 생성한다면, 공간적 위치에 따른 중요도가 서로 다를 수 있기 때문에 제2 텐서 분할부에서 쿼드트리 분할이 사용될 수 있다.
복호화 장치는 신경망 전체 구조에 따른 제2 분할 방법을 결정하고, 결정된 방법에 따라 분할을 수행할 수 있다(S1840).
복호화 장치는 분할된 특징 텐서 복호화 수행할 수 있다(S1850).
생성된 특징 텐서를 해당 그룹에 맞도록 분할을 하고 부/복호화를 수행함으로써 부호화 효율이 향상될 수 있다. 또한, 엔트로피 부호화부에서 분할된 특징 텐서 단위로 엔트로피 부호화부에서 사용하는 확률 테이블 또는 컨텍스트를 업데이트해 사용하기 때문에 부/복호화 순서상 이전의 분할된 특징 텐서의 확률 값을 참조하여 현재 분할된 특징 텐서의 엔트로피 부/복호화를 수행할 수 있다.
또 다른 예로서, 전체 신경망이 영상 인식 또는 객체 인식을 위한 신경망이라면, 신경망 레이어의 깊이가 깊어질 수록 공간적 해상도가 점점 줄어들고 공간상의 위치 개념이 점점 약해져 공간적 위치에 따른 중요도가 균일 할 수 있기 때문에 공간 균등 분할이 수행될 수 있다. 즉, 신경망의 종류에 따라 분할 방법이 결정될 수 있다.
또는, 현재 부/복호화 하고자하는 특징 텐서가 생성된 현재 레이어의 깊이와 전체 신경망의 깊이의 비율에 따라 분할 방법이 결정될 수 있다. 예를 들면, 현재 레이어 깊이가 전체 깊이의 0.5 미만이라면 쿼드트리 분할이 수행되고, 0.5 이상이라면 균등 분할이 수행될 수 있다.
이상에서 설명된 실시예들은 본 발명의 구성요소들과 특징들이 소정 형태로 결합된 것들이다. 각 구성요소 또는, 특징은 별도의 명시적 언급이 없는 한 선택적인 것으로 고려되어야 한다. 각 구성요소 또는, 특징은 다른 구성요소나 특징과 결합되지 않은 형태로 실시될 수 있다. 또한, 일부 구성요소들 및/또는, 특징들을 결합하여 본 발명의 실시예를 구성하는 것도 가능하다. 본 발명의 실시예들에서 설명되는 동작들의 순서는 변경될 수 있다. 어느 실시예의 일부 구성이나 특징은 다른 실시예에 포함될 수 있고, 또는, 다른 실시예의 대응하는 구성 또는, 특징과 교체될 수 있다. 특허청구범위에서 명시적인 인용 관계가 있지 않은 청구항들을 결합하여 실시예를 구성하거나 출원 후의 보정에 의해 새로운 청구항으로 포함시킬 수 있음은 자명하다.
본 발명에 따른 실시예는 다양한 수단, 예를 들어, 하드웨어, 펌웨어(firmware), 소프트웨어 또는, 그것들의 결합 등에 의해 구현될 수 있다. 하드웨어에 의한 구현의 경우, 본 발명의 일 실시예는 하나 또는, 그 이상의 ASICs(application specific integrated circuits), DSPs(digital signal processors), DSPDs(digital signal processing devices), PLDs(programmable logic devices), FPGAs(field programmable gate arrays), 프로세서, 콘트롤러, 마이크로 콘트롤러, 마이크로 프로세서 등에 의해 구현될 수 있다.
또한, 펌웨어나 소프트웨어에 의한 구현의 경우, 본 발명의 일 실시예는 이상에서 설명된 기능 또는, 동작들을 수행하는 모듈, 절차, 함수 등의 형태로 구현되어, 다양한 컴퓨터 수단을 통하여 판독 가능한 기록매체에 기록될 수 있다. 여기서, 기록매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는, 조합하여 포함할 수 있다. 기록매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 예컨대 기록매체는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(Magnetic Media), CD-ROM(Compact Disk Read Only Memory), DVD(Digital Video Disk)와 같은 광 기록 매체(Optical Media), 플롭티컬 디스크(Floptical Disk)와 같은 자기-광 매체(Magneto-Optical Media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치를 포함한다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 이러한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
아울러, 본 발명에 따른 장치나 단말은 하나 이상의 프로세서로 하여금 앞서 설명한 기능들과 프로세스를 수행하도록 하는 명령에 의하여 구동될 수 있다. 예를 들어 그러한 명령으로는, 예컨대 JavaScript나 ECMAScript 명령 등의 스크립트 명령과 같은 해석되는 명령이나 실행 가능한 코드 혹은 컴퓨터로 판독 가능한 매체에 저장되는 기타의 명령이 포함될 수 있다. 나아가 본 발명에 따른 장치는 서버 팜(Server Farm)과 같이 네트워크에 걸쳐서 분산형으로 구현될 수 있으며, 혹은 단일의 컴퓨터 장치에서 구현될 수도 있다.
또한, 본 발명에 따른 장치에 탑재되고 본 발명에 따른 방법을 실행하는 컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 어플리케이션, 스크립트 혹은 코드로도 알려져 있음)은 컴파일 되거나 해석된 언어나 선험적 혹은 절차적 언어를 포함하는 프로그래밍 언어의 어떠한 형태로도 작성될 수 있으며, 독립형 프로그램이나 모듈, 컴포넌트, 서브루틴 혹은 컴퓨터 환경에서 사용하기에 적합한 다른 유닛을 포함하여 어떠한 형태로도 전개될 수 있다. 컴퓨터 프로그램은 파일 시스템의 파일에 반드시 대응하는 것은 아니다. 프로그램은 요청된 프로그램에 제공되는 단일 파일 내에, 혹은 다중의 상호 작용하는 파일(예컨대, 하나 이상의 모듈, 하위 프로그램 혹은 코드의 일부를 저장하는 파일) 내에, 혹은 다른 프로그램이나 데이터를 보유하는 파일의 일부(예컨대, 마크업 언어 문서 내에 저장되는 하나 이상의 스크립트) 내에 저장될 수 있다. 컴퓨터 프로그램은 하나의 사이트에 위치하거나 복수의 사이트에 걸쳐서 분산되어 통신 네트워크에 의해 상호 접속된 다중 컴퓨터나 하나의 컴퓨터 상에서 실행되도록 전개될 수 있다.
본 발명은 본 발명의 필수적 특징을 벗어나지 않는 범위에서 다른 특정한 형태로 구체화될 수 있음은 당업자에게 자명하다. 따라서, 상술한 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니 되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.

Claims (15)

  1. 신경망 기반의 영상 처리 방법에 있어서,
    복수의 신경망 레이어들을 포함하는 제1 신경망을 이용하여 입력 영상으로부터 특징 텐서(feature tensor)을 획득하는 단계;
    상기 획득된 특징 텐서에 대하여 양자화를 수행함으로써 심볼 텐서(symbol tensor)를 획득하는 단계; 및
    상기 심볼 텐서에 기초하여 엔트로피 부호화를 수행함으로써 비트스트림을 생성하는 단계를 포함하는, 신경망 기반 영상 처리 방법.
  2. 제1항에 있어서,
    상기 비트스트림을 생성하는 단계는,
    상기 심볼 텐서에 대하여 생략 부호화를 적용함으로써 상기 엔트로피 부호화를 선택적으로 수행하는 단계를 포함하는, 신경망 기반 영상 처리 방법.
  3. 제2항에 있어서,
    상기 심볼 텐서에 대하여 상기 생략 부호화가 적용되는 경우, 상기 심볼 텐서에 포함된 복수의 심볼들의 전부 또는 일부에 대한 엔트로피 부호화가 생략되는, 신경망 기반 영상 처리 방법.
  4. 제2항에 있어서,
    상기 비트스트림을 생성하는 단계는,
    상기 심볼 텐서에 대하여 상기 생략 부호화를 적용할지 여부를 결정하는 단계를 더 포함하는, 신경망 기반 영상 처리 방법.
  5. 제4항에 있어서,
    상기 생략 부호화의 적용 여부는 상기 제1 신경망의 구조, 상기 특징 텐서가 출력된 제1 레이어의 타입, 부호화 순서를 기준으로 상기 제1 레이어의 다음 레이어를 나타내는 제2 레이어의 타입 또는 상기 심볼 텐서에 포함된 심볼에 기초하여 결정되는, 신경망 기반 영상 처리 방법.
  6. 제5항에 있어서,
    상기 생략 부호화의 적용 여부는, 상기 제2 레이어의 타입이 합산 레이어인 경우, 상기 심볼 텐서에 대하여 적용하는 것으로 결정되는, 신경망 기반 영상 처리 방법.
  7. 제5항에 있어서,
    상기 생략 부호화의 적용 여부는, 상기 제1 레이어의 타입이 업샘플링 레이어가 아니고 상기 제2 레이어의 타입이 합산 레이어인 경우, 상기 심볼 텐서에 대하여 적용하는 것으로 결정되는, 신경망 기반 영상 처리 방법.
  8. 제4항에 있어서,
    상기 생략 부호화의 적용 여부는 복수의 신경망 레이어를 포함하는 제2 신경망을 이용하여 결정되는, 신경망 기반 영상 처리 방법.
  9. 제2항에 있어서,
    상기 비트스트림을 생성하는 단계는,
    상기 심볼 텐서에 포함된 복수의 채널들 각각에 대하여 상기 생략 부호화를 적용할지 여부를 결정하는 단계를 더 포함하는, 신경망 기반 영상 처리 방법.
  10. 제9항에 있어서,
    상기 심볼 텐서에 포함된 복수의 채널 중 현재 채널에 대하여 상기 생략 부호화가 적용되는 것으로 결정되는 경우, 상기 현재 채널에 상기 생략 부호화가 적용됨을 지시하는 생략 부호화 플래그에 대한 엔트로피 부호화가 수행되는, 신경망 기반 영상 처리 방법.
  11. 제10항에 있어서,
    상기 비트스트림을 생성하는 단계는,
    상기 현재 채널에 대하여 상기 생략 부호화가 적용되지 않는 것으로 결정되는 경우, 상기 현재 채널에 포함된 복수의 블록들 각각에 대하여 상기 생략 부호화를 적용할지 여부를 결정하는 단계를 더 포함하는, 신경망 기반 영상 처리 방법.
  12. 제11항에 있어서,
    상기 현재 채널에 포함된 복수의 블록들은 미리 정의된 고정된 크기를 가지는, 신경망 기반 영상 처리 방법.
  13. 제1항에 있어서,
    상기 특징 텐서는 부동 소수점(floating-point)으로 표현되는 데이터를 나타내고, 상기 심볼 텐서는 고정 소수점(fixed-point)으로 표현되는 데이터를 나타내는, 신경망 기반 영상 처리 방법.
  14. 제1항에 있어서,
    상기 특징 텐서는 미리 정의된 분할 구조에 기초하여 복수의 처리 유닛으로 분할되고,
    상기 미리 정의된 분할 구조는 옥트트리 분할 구조, 포인트 단위 분할 구조, 채널 단위 분할 구조 또는 계층 분할 구조 중 적어도 하나를 포함하는, 신경망 기반 영상 처리 방법.
  15. 신경망 기반의 영상 처리 장치에 있어서,
    상기 영상 처리 장치를 제어하는 프로세서; 및
    상기 프로세서와 결합되고, 데이터를 저장하는 메모리를 포함하되,
    상기 프로세서는,
    복수의 신경망 레이어들을 포함하는 제1 신경망을 이용하여 입력 영상으로부터 특징 텐서(feature tensor)을 획득하고,
    상기 획득된 특징 텐서에 대하여 양자화를 수행함으로써 심볼 텐서(symbol tensor)를 획득하고,
    상기 심볼 텐서에 기초하여 엔트로피 부호화를 수행함으로써 비트스트림을 생성하는, 신경망 기반 영상 처리 장치.
KR1020230021564A 2022-02-18 2023-02-17 특징맵 압축 방법 및 장치 KR20230124503A (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR20220021743 2022-02-18
KR20220021744 2022-02-18
KR1020220021743 2022-02-18
KR1020220021744 2022-02-18

Publications (1)

Publication Number Publication Date
KR20230124503A true KR20230124503A (ko) 2023-08-25

Family

ID=87578628

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020230021564A KR20230124503A (ko) 2022-02-18 2023-02-17 특징맵 압축 방법 및 장치

Country Status (2)

Country Link
KR (1) KR20230124503A (ko)
WO (1) WO2023158267A1 (ko)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019164793A (ja) * 2018-03-19 2019-09-26 エスアールアイ インターナショナル ディープニューラルネットワークの動的適応
US10904532B2 (en) * 2019-05-20 2021-01-26 Samsung Display Co., Ltd. Differential prefix coding for high throughput entropy coder in display compression
WO2021140275A1 (en) * 2020-01-07 2021-07-15 Nokia Technologies Oy High level syntax for compressed representation of neural networks
KR20210136476A (ko) * 2020-05-07 2021-11-17 삼성전자주식회사 쿼드 트리 방법의 파라미터들을 이용하여 압축하는 장치 및 방법
US20210397965A1 (en) * 2020-06-22 2021-12-23 Nokia Technologies Oy Graph Diffusion for Structured Pruning of Neural Networks

Also Published As

Publication number Publication date
WO2023158267A1 (ko) 2023-08-24

Similar Documents

Publication Publication Date Title
CN108028941B (zh) 用于通过超像素编码和解码数字图像的方法和装置
US20220191520A1 (en) Information processing apparatus and method
US9349072B2 (en) Local feature based image compression
JPWO2020012967A1 (ja) 画像処理装置および方法
TWI834087B (zh) 用於從位元流重建圖像及用於將圖像編碼到位元流中的方法及裝置、電腦程式產品
CN112771582B (zh) 图像处理设备和方法
EP3590194B1 (en) Methods and apparatuses for encoding and decoding superpixel borders
US12088804B2 (en) Method and device for encoding/decoding video signal by using optimized conversion based on multiple graph-based model
WO2021010200A1 (ja) 情報処理装置および方法
KR20230107869A (ko) 신경망 특징맵 양자화 방법 및 장치
WO2023203509A1 (en) Image data compression method and device using segmentation and classification
US8798383B1 (en) Method of adaptive structure-driven compression for image transmission over ultra-low bandwidth data links
WO2022145214A1 (ja) 情報処理装置および方法
Bairagi et al. Texture-based medical image compression
JP2024505798A (ja) 点群符号化・復号化方法及びシステム、点群符号器並びに点群復号器
TW202420815A (zh) 使用神經網路進行圖像區域的並行處理-解碼、後濾波和rdoq
KR20230124503A (ko) 특징맵 압축 방법 및 장치
WO2023172703A1 (en) Geometry point cloud coding
CN118715772A (zh) 特征图压缩方法和装置
US20220245863A1 (en) Information processing device and method
US20230229894A1 (en) Method and apparatus for compression and training of neural network
Zhao et al. Image and Graphics: 10th International Conference, ICIG 2019, Beijing, China, August 23–25, 2019, Proceedings, Part III
CN114097242A (zh) 信息处理装置和方法
KR20230136572A (ko) 신경망 기반 특징 텐서 압축 방법 및 장치
KR20240042459A (ko) 비디오 압축을 이용한 추론 방법 및 장치