KR20230031797A - 피처 맵 압축을 위한 방법, 장치 및 기록 매체 - Google Patents

피처 맵 압축을 위한 방법, 장치 및 기록 매체 Download PDF

Info

Publication number
KR20230031797A
KR20230031797A KR1020220107125A KR20220107125A KR20230031797A KR 20230031797 A KR20230031797 A KR 20230031797A KR 1020220107125 A KR1020220107125 A KR 1020220107125A KR 20220107125 A KR20220107125 A KR 20220107125A KR 20230031797 A KR20230031797 A KR 20230031797A
Authority
KR
South Korea
Prior art keywords
feature
frame
feature map
map
maps
Prior art date
Application number
KR1020220107125A
Other languages
English (en)
Inventor
도지훈
권형진
김동현
김연희
김종호
이주영
임웅
정세윤
최진수
이태진
이성배
김규헌
김준식
Original Assignee
한국전자통신연구원
경희대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원, 경희대학교 산학협력단 filed Critical 한국전자통신연구원
Priority to US17/896,958 priority Critical patent/US20230070216A1/en
Publication of KR20230031797A publication Critical patent/KR20230031797A/ko

Links

Images

Classifications

    • 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/129Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
    • 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
    • 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
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • 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/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/172Methods 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 picture, frame or field
    • 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

Landscapes

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

Abstract

피처 맵 처리를 위한 방법, 장치 및 기록 매체가 제공된다. 피처 맵에 대한 부호화 방법은 피처 맵에 대한 피처 프레임을 구성하는 단계 및 피처 프레임에 대한 부호화를 수행함으로써 부호화된 정보를 생성하는 단계를 포함한다. 피처 맵에 대한 복호화 방법은 부호화된 정보에 대한 복호화를 수행함으로써 피처 프레임을 복원하는 단계 및 피처 프레임을 사용하여 피처 맵을 복원하는 단계를 포함한다. 피처 맵들을 사용하여 피처 프레임이 구성되고, 피처 프레임에 대해 비디오 압축 코덱 또는 딥러닝 기반 영상 압축 방법을 사용하는 압축이 적용된다.

Description

피처 맵 압축을 위한 방법, 장치 및 기록 매체{METHOD, APPARATUS AND RECORDING MEDIUM FOR COMPRESSING FEATURE MAP}
본 발명은 피처 맵 처리를 위한 방법, 장치 및 기록 매체에 관한 것이다. 구체적으로, 본 발명은 피처 맵 압축을 위한 방법, 장치 및 기록 매체를 제공한다.
최근 저장 장치 및 계산 장치의 발전에 의해 인공 지능(Artificial Intelligence; AI) 시스템이 빠르게 발전하고 있다.
딥러닝(deep learning) 네트워크 기술은 인공 지능을 구현하기 위한 요소 기술이다.
컨볼루션 신경망에 기반하는 딥러닝 네트워크는 입력 데이터의 피처(feature)를 스스로 분류하고, 피처에 대한 학습을 수행함으로써 태스크(task) 성능을 향상시키는 시스템이다.
딥러닝 네트워크 기술의 성능이 발전함에 따라 개인/클라이언트 디바이스에서 딥러닝 네트워크를 저장, 학습 및 실행하고자 하는 사람들이 증가하고 있다.
그러나, 딥러닝 네트워크를 구성하기 위해서는 수백만 개, 수천만 개 또는 그 이상의 변수들 및 연산 과정들이 요구되기 때문에, 부족한 메모리 및 연산 능력을 갖는 개인/클라이언트 디바이스에서 딥러닝 네트워크를 저장, 학습 및 실행하기에는 어려움이 있다.
이에, 기계를 위한 부호화 기술(Video Coding for Machine; VCM)에서는 딥러닝 네트워크의 전체를 개인/클라이언트 디바이스에서 저장, 학습 및 사용하지는 않고, 딥러닝 네트워크의 피처 추출부는 메모리 및 연산 성능이 보장되는 서버에 위치시키고, 나머지 부분인 태스크(task)를 수행하는 네트워크만을 개인/클라이언트 디바이스에 위치시키는 구조가 제안되었다.
이때, 서버에서는 개인/클라이언트 디바이스로 피처 맵(feature map)을 전송하고, 개인/클라이언트 디바이스에서는 서버로부터 전송받은 피처 맵을 활용하여 딥러닝 네트워크의 태스크를 수행한다. 이러한 전송 및 수행을 통해, 부족한 메모리 및 연산 능력을 갖는 개인/클라이언트 디바이스에서도 딥러닝 네트워크 기술이 활용될 수 있다.
그러나 개인/클라이언트 디바이스로 전송되는 피처 맵들은 입력 데이터의 특징을 담은 2차원 데이터이며, 하나의 레이어(layer)에서 채널(channel)의 개수만큼 생성되기 때문에, 큰 용량을 갖는 피처 맵들이 개인/클라이언트 디바이스로 전송되어야 한다는 제한이 있다.
일 실시예는 딥러닝 네트워크를 활용하는 인공 지능 시스템 및 이러한 인공 지능 시스템의 응용에 관한 장치, 방법 및 기록 매체를 제공할 수 있다.
일 실시예는 컨볼루션 신경망(Convolution Neural Network; CNN)에 기반하는 딥러닝 네트워크에서 생성되는 다채널(multi-channel) 피처 맵(feature map)을 압축하는 장치, 방법 및 기록 매체를 제공할 수 있다.
일 실시예는 딥러닝 네트워크의 피처 맵을 효율적으로 압축하는 장치, 방법 및 기록 매체를 제공할 수 있다.
일 실시예는, 피처 프레임을 구성하고, 구성된 피처 프레임을 압축함으로써 보다 높은 압축 대비 성능을 보이는 피처 맵 압축 장치, 방법 및 기록 매체를 제공할 수 있다.
일 측에 있어서, 피처 맵에 대한 피처 프레임을 구성하는 단계; 및 피처 프레임에 대한 부호화를 수행함으로써 부호화된 정보를 생성하는 단계를 포함하는 부호화 방법이 제공된다.
상기 부호화 방법은, 딥러닝 네트워크로부터 상기 피처 맵을 추출하는 단계를 더 포함할 수 있다.
딥러닝 네트워크의 레이어로부터 상기 피처 맵이 추출될 수 있다.
피처 맵에 대한 정규화를 수행함으로써 정규화된 피처 맵이 생성될 수 있다.
상기 피처 프레임은 다중 피처 프레임들일 수 있다.
상기 피처 맵의 가로 크기, 상기 피처 맵의 세로 크기 및 채널들의 개수에 기반하여 상기 피처 맵을 사용하여 단일 피처 프레밍 및 상기 다중 피처 프레임들 중 어느 것이 구성될 것인가가 결정될 수 있다.
상기 다중 피처 프레임들이 생성되기로 결정된 경우, 상기 피처 맵에 대한 정렬을 수행할지 여부가 결정될 수 있다.
상기 피처 맵의 크기에 기반하여 상기 정렬이 수행될지 여부가 결정될 수 있다.
상기 정렬은 피처 맵들의 평균 밝기들 또는 지역 밝기들을 기준으로 정렬될 수 있다.
상기 피처 맵들은 상기 피처 맵을 축소함으로써 생성된 축소된 피쳐 맵의 상기 평균 밝기를 기준으로 정렬될 수 있다.
상기 다중 피처 프레임들을 생성함에 있어서 정렬된 피처 맵들이 특정 순서에 따라 스캔될 수 있다.
상기 다중 피처 프레임들은 컨볼루션 신경망의 복수의 계층들의 각 계층에 대하여 독립적으로 구성될 수 있다.
상기 피처 프레임을 압축용 포맷으로 변환함으로써 변환된 피처 프레임 정보가 생성될 수 있다.
비디오 압축 코덱 또는 딥러닝 기반 영상 압축 방법을 사용하여 상기 변환된 피처 프레임 정보에 대한 압축을 수행함으로써 압축된 피처 프레임 정보가 생성될 수 있다.
다른 일 측에 있어서, 부호화된 정보에 대한 복호화를 수행함으로써 피처 프레임을 복원하는 단계; 및 상기 피처 프레임을 사용하여 피처 맵을 복원하는 단계를 포함하는 복호화 방법이 제공된다.
상기 피처 프레임은 다중 피처 프레임들일 수 있다.
상기 피처 프레임을 복원함에 있어서 상기 피처 맵에 대하여 대한 복원 정렬이 필요한지 여부가 판단될 수 있다.
상기 피처 프레임을 분할하여 피처 맵들이 생성될 수 있다.
상기 피처 맵들을 생성함에 있어서 스캔 순서 정보가 사용될 수 있다.
상기 스캔 순서 정보는 상기 피처 맵들 간의 순서를 특정할 수 있다.
상기 부호화된 정보는 압축된 피처 프레임 정보를 포함할 수 있다.
상기 압축된 피처 프레임 정보에 대한 압축해제를 수행함으로써 피처 프레임 정보가 생성될 수 있다.
상기 피처 프레임 정보를 사용하여 상기 피처 프레임이 복원될 수 있다.
상기 압축해제는 비디오 압축 코덱 또는 딥러닝 기반 영상 압축해제 방법을 사용하여 수행될 수 있다.
또 다른 일 측에 있어서, 복호화를 위한 비트스트림을 저장하는 컴퓨터 판독 가능한 기록 매체에 있어서, 상기 비트스트림은, 부호화된 정보를 포함하고, 부호화된 정보에 대한 복호화를 수행함으로써 피처 프레임이 복원되고, 상기 피처 프레임을 사용하여 피처 맵이 복원되는 컴퓨터 판독 가능한 기록매체가 제공된다.
딥러닝 네트워크를 활용하는 인공 지능 시스템 및 이러한 인공 지능 시스템의 응용에 관한 장치, 방법 및 기록 매체가 제공된다.
컨볼루션 신경망(Convolution Neural Network; CNN)에 기반하는 딥러닝 네트워크에서 생성되는 다채널(multi-channel) 피처 맵(feature map)을 압축하는 장치, 방법 및 기록 매체가 제공된다.
딥러닝 네트워크의 피처 맵을 효율적으로 압축하는 장치, 방법 및 기록 매체가 제공된다.
피처 프레임을 구성하고, 구성된 피처 프레임을 압축함으로써 보다 높은 압축 대비 성능을 보이는 피처 맵 압축 장치, 방법 및 기록 매체가 제공된다.
도 1은 일 실시예에 따른 컨볼루션 신경망의 동작을 나타낸다.
도 2는 일 예에 따른 딥러닝 네트워크가 클라이언트 단에 위치하는 모델을 나타낸다.
도 3은 일 예에 따른 딥러닝 네트워크가 서버 단에 위치하는 모델을 나타낸다.
도 4는 딥러닝 네트워크가 서버 단 및 개인/클라이언트 디바이스 단으로 분할되고, 분할된 딥러닝 네트워크가 서버 및 개인/클라이언트 디바이스에 각각 위치하는 모델을 나타낸다.
도 5는 일 예에 따른 분할 학습을 나타낸다.
도 6은 일 예에 따른 서버 및 개인/클라이언트 디바이스가 분할된 딥러닝 네트워크들을 갖는 구조에서 서버가 개인/클라이언트 디바이스로 전송해야 하는 데이터에 대한 크기 제한을 나타낸다.
도 7은 일 예에 따른 컨볼루션 신경망을 기반으로 한 딥러닝 네트워크의 설계 구조에 따라서 되어야 하는 다채널 피처 맵이 다수의 계층(hierarchy)들에서 생성되는 경우를 나타낸다.
도 8은 일 실시예에 따른 VCM을 나타낸다.
도 9는 일 실시예에 따른 부호화 장치의 구조도이다.
도 10은 일 실시예에 따른 부호화 방법의 흐름도이다.
도 11은 일 실시예에 따른 복호화 장치의 구조도이다.
도 12는 일 실시예에 따른 복호화 방법의 흐름도이다.
도 13은 일 실시예에 따른 피처 맵 추출부의 동작을 나타낸다.
도 14는 일 실시예에 따른 피처 프레임 구성부의 동작을 나타낸다.
도 15는 일 예에 따른 단일 피처 프레임의 생성을 나타낸다.
도 16은 일 예에 따른 피처 맵의 정렬을 나타낸다.
도 17은 일 실시예에 따른 피처 맵의 평균 밝기를 기준으로 피처 맵을 정렬하는 방법을 나타낸다.
도 18은 일 예에 따른 다채널 피처 맵의 지역 밝기를 기준으로 피처 맵을 정렬하는 방법을 나타낸다.
도 19는 일 실시예에 따른 축소된 다채널 피처 맵의 평균 밝기를 기준으로 정렬하는 방법을 나타낸다.
도 20는 본 발명에서 다중 피처 프레임을 구성하는 피처 맵들의 개수에 따른 압축률을 나타낸다.
도 21은 본 발명에서 다중 피처 프레임을 구성하는 피처 맵들의 개수에 따른 PSNR의 결과를 나타낸다.
도 22는 일 예에 따른 정렬된 다채널 피처 맵을 사용하여 다중 피처 프레임들을 생성하는 제1 방법을 나타낸다.
도 23은 일 예에 따른 정렬된 다채널 피처 맵을 사용하여 다중 피처 프레임들을 생성하는 제2 방법을 나타낸다.
도 24는 일 예에 따른 정렬된 다채널 피처 맵을 사용하여 다중 피처 프레임들을 생성하는 제3 방법을 나타낸다.
도 25는 일 예에 따른 정렬된 다채널 피처 맵을 사용하여 다중 피처 프레임들을 생성하는 제4 방법을 나타낸다.
도 26은 일 예에 따른 정렬된 다채널 피처 맵을 사용하여 다중 피처 프레임들을 생성하는 제5 방법을 나타낸다.
도 27은 일 예에 따른 정렬된 다채널 피처 맵을 사용하여 다중 피처 프레임들을 생성하는 제6 방법을 나타낸다.
도 28은 일 실시예에 따른 본 발명의 다중 피처 프레임들을 나타낸다.
도 29는 일 예에 따른 피처 맵들의 정렬 순서를 나타낸다.
도 30은 일 예에 따른 공간적 우선 할당을 나타낸다.
도 31은 일 예에 따른 시간적 우선 할당을 나타낸다.
도 32는 컨볼루션 신경망의 다수의 계층들에서 다채널 피처 맵들이 생성되는 경우에 다중 피처 프레임들을 생성하는 방법을 나타낸다.
도 33은 일 실시예에 따른 부호화부의 동작을 나타낸다.
도 34는 일 예에 따른 SEI 메시지를 나타낸다.
도 35는 일 예에 따른 피처 맵에 대한 SEI 메시지의 신택스를 나타낸다.
도 36은 일 예에 따른 fmq_type의 값을 나타낸다.
도 37은 일 예에 따른 피처 맵에 대한 맞춤 SEI 메시지의 신택스를 나타낸다.
도 38은 일 예에 따른 fma_align_type의 값들을 나타낸다.
도 39는 일 실시예에 따른 복호화부의 동작을 나타낸다.
도 40은 일 실시예에 따른 피처 맵 복원부의 동작을 나타낸다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
후술하는 예시적 실시예들에 대한 상세한 설명은, 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시예는 당업자가 실시예를 실시할 수 있기에 충분하도록 상세히 설명된다. 다양한 실시예들은 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들면, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시예에 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다. 또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 실시예의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 예시적 실시예들의 범위는, 적절하게 설명된다면, 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다.
도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다. 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다.
본 발명에서 제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들면, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. "및/또는"이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함할 수 있다.
어떤 구성요소(component)가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 상기의 2개의 구성요소들이 서로 간에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있으나, 상기의 2개의 구성요소들의 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소(component)가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 상기의 2개의 구성요소들의 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
실시예들에서 나타나는 구성요소들은 서로 다른 특징적인 기능들을 나타내기 위해 독립적으로 도시되는 것으로, 각 구성요소들이 분리된 하드웨어나 하나의 소프트웨어 구성단위로 이루어짐을 의미하지 않는다. 즉, 각 구성요소는 설명의 편의상 각각의 구성요소로 나열하여 포함한 것으로 각 구성요소 중 적어도 두 개의 구성요소가 합쳐져 하나의 구성요소로 이루어지거나, 하나의 구성요소가 복수 개의 구성요소로 나뉘어져 기능을 수행할 수 있고 이러한 각 구성요소의 통합된 실시예 및 분리된 실시예도 본 발명의 본질에서 벗어나지 않는 한 본 발명의 권리범위에 포함된다.
실시예들에서 사용된 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 실시예들에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다. 즉, 실시예들에서 특정 구성을 "포함"한다고 기술하는 내용은 해당 구성 이외의 구성을 배제하는 것이 아니며, 추가적인 구성 또한 본 발명의 실시 또는 본 발명의 기술적 사상의 범위에 포함될 수 있음을 의미한다.
실시예들에서 용어 "적어도 하나(at least one)"는 1, 2, 3 및 4와 같은 1 이상의 개수들 중 하나를 의미할 수 있다. 실시예들에서 용어 "복수(a plurality of)"는 2, 3 및 4와 같은 2 이상의 개수들 중 하나를 의미할 수 있다.
실시예들의 일부의 구성요소는 본 발명에서 본질적인 기능을 수행하는 필수적인 구성요소는 아니고 단지 성능을 향상시키기 위한 선택적 구성요소일 수 있다. 실시예들은, 단지 성능 향상을 위해 사용되는 구성요소가 제외된, 실시예들의 본질을 구현함에 있어 필수적인 구성요소만을 포함하여 구현될 수 있다. 단지 성능 향상을 위해 사용되는 선택적인 구성요소가 제외된 필수적인 구성요소만을 포함하는 구조도 실시예들의 권리범위에 포함된다.
이하에서는, 기술분야에서 통상의 지식을 가진 자가 실시예들을 용이하게 실시할 수 있도록 하기 위하여, 첨부된 도면을 참조하여 실시 형태에 대하여 구체적으로 설명한다. 실시예들을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 명세서의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다. 또한, 도면 상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고, 동일한 구성요소에 대한 중복된 설명은 생략한다.
이하에서, 영상은 비디오(video)를 구성하는 하나의 픽처(picture)를 의미할 수 있으며, 비디오 자체를 나타낼 수도 있다. 예를 들면, "영상의 부호화 및/또는 복호화"는 "비디오의 부호화 및/또는 복호화"를 의미할 수 있으며, "비디오를 구성하는 영상들 중 하나의 영상의 부호화 및/또는 복호화"를 의미할 수도 있다.
이하에서, 용어들 "비디오(video)" 및 "동영상(motion picture(s))"은 동일한 의미로 사용될 수 있으며, 서로 교체되어 사용될 수 있다.
이하에서, 대상 영상은 부호화의 대상인 부호화 대상 영상 및/또는 복호화의 대상인 복호화 대상 영상일 수 있다. 또한, 대상 영상은 부호화 장치로 입력된 입력 영상일 수 있고, 복호화 장치로 입력된 입력 영상일 수 있다. 또한, 대상 영상은 현재 부호화 및/또는 복호화의 대상인 현재 영상일 수 있다. 예를 들면, 용어들 "대상 영상" 및 "현재 영상"은 동일한 의미로 사용될 수 있으며, 서로 교체되어 사용될 수 있다.
이하에서, 용어들 "영상(image)", "픽처(picture)", "프레임(frame)" 및 "스크린(screen)"은 동일한 의미로 사용될 수 있으며, 서로 교체되어 사용될 수 있다.
실시예들에서 언급되는 태스크 수행은 객체 검출(object detection), 객체 추적(object tracking) 및 씬 시맨틱(scene semantic) 등과 같은 인간처럼 행동하는 기술과, 슈퍼 레졸루션(super resolution) 및 영상 압축(image compression) 등과 같은 활용 기술을 모두 포함할 수 있다.
실시예들은, VCM을 지원하는 요소 기술로써, 서버로부터 개인/클라이언트 디바이스로 전송되는 피처 맵을 압축하는 기술에 관한 것일 수 있다.
일반적으로, 데이터를 압축함에 의해 데이터 손실이 발생하기 때문에, 압축된 피처 맵을 사용함에 따라 딥러닝 네트워크의 태스크 성능이 저하되는 문제가 있다. 따라서, 압축된 피처 맵이 사용되더라도 딥러닝 네트워크의 태스크 성능의 저하가 크게 발생하지 않게 하는 피처 맵 압축 기술이 요구된다.
실시예들에서는, 전체의 딥러닝 네트워크를 개인/클라이언트 디바이스에 저장하지 않고, 전체의 딥러닝 네트워크 중 뒤에 위치하는 일부의 네트워크 또는 태스크를 수행하는 부분만을 개인/클라이언트 디바이스에 저장함으로써, 딥러닝 네트워크의 태스크를 수행하는 과정에서 딥러닝 네트워크의 태스크 성능을 크게 저하시키지 않게 하는 다채널 피처 맵 압축 방법을 제공한다.
실시예들에서는 컨볼루션 신경망으로부터 추출된 다채널 피처 맵에 피처 프레임 구성 방법을 적용함으로써 다채널 피처 맵이 압축될 수 있다. 이하에서는 이러한 구성, 추출 및 압축에 대해 설명된다.
도 1은 일 실시예에 따른 컨볼루션 신경망의 동작을 나타낸다.
도 1에서는, 컨볼루션 신경망의 피처 맵, 피처 맵에 대한 컨볼루션 연산 과정 및 피처 맵을 사용하는 딥러닝 네트워크의 태스크 수행이 도시되었다.
컨볼루션 신경망에 기반하는 딥러닝 네트워크는 입력 데이터의 피처를 스스로 분류하고, 피처에 대한 학습을 수행함으로써 태스크 성능을 향상시키는 시스템일 수 있다.
딥러닝 네트워크는 수많은 레이어(layer)들로 구성될 수 있다. 각 레이어에서의 피처 맵은 이전 레이어의 입력 데이터(또는, 피처 맵) 및 커널들에 대한 컨볼루션 연산으로서 정의될 수 있다.
다시 말해서, 현재 레이어에서의 피처 맵 및 커널들은 컨볼루션 연산의 입력일 수 있고, 상기의 컨볼루션 연산의 출력(즉, 컨볼루션 연산의 결과 값)이 다음 레이어의 피처 맵으로서 정의될 수 있다.
이때, 컨볼루션 연산의 과정에서 스트라이드(stride)가 활용될 수 있으며, 컨볼루션 연산의 결과 값에 대하여 풀링(pooling) 및 활성화 함수(activation function) 등과 같은 다양한 처리들이 활용될 수 있다.
앞서 설명된 것과 같이, 입력 데이터로부터 마지막 레이어까지의 피처 맵들을 순차적으로 생성하는 과정이 순방향 전파(forward propagation)라고 정의될 수 있다. 순방향 전파는 입력 데이터의 특징을 활용하는 컨볼루션 신경망의 기본 절차일 수 있다.
이러한 컨볼루션 신경망의 특성으로 인해, 마지막 레이어의 피처 맵들은 입력 데이터의 중요한 특징(feature)들을 포함할 수 있다. 마지막 레이어의 피처 맵들이 입력 데이터의 중요한 특징들을 포함함에 따라, 딥러닝 네트워크의 태스크 수행부는 마지막 레이어에서 생성된 피처 맵을 활용하여 인식, 추적 및 이해 등과 같은 다양한 요소 기술들을 수행할 수 있다.
도 2, 도 3 및 도 4는 일 예에 따른 딥러닝 네트워크의 서비스 모델을 설명한다.
도 2, 도 3 및 도 4가 나타내는 딥러닝 네트워크의 서비스 모델들은 딥러닝 네트워크의 위치에 따라서 구분될 수 있다.
도 2는 일 예에 따른 딥러닝 네트워크가 클라이언트 단에 위치하는 모델을 나타낸다.
도 2에서 도시된 것과 같이, 딥러닝 네트워크가 클라이언트 단(end)에 위치한 경우에는, 개인/클라이언트 디바이스에서 딥러닝 네트워크가 학습, 저장 및 실행될 수 있다.
도 2에서 도시된 것과 같은 모델 또는 구조는, 서버와 무관하게 개인/클라이언트 디바이스에서 딥러닝 네트워크가 학습, 저장 및 실행되기 때문에, 데이터 전송에 따른 시간 지연 및 오류가 나타나지 않으며, 개인/클라이언트 디바이스에서 딥러닝 네트워크를 즉각적으로 활용할 수 있다는 장점들을 가질 수 있다.
이러한 모델 또는 구조는 전술된 장점들에 따라서 자율 주행과 같은 서비스에서의 활용될 수 있다.
그러나, 딥러닝 네트워크에서는 일반적으로 수백만 개, 수천만 개 또는 그 이상의 변수들 및 연산 과정들이 요구될 수 있다. 따라서, 개인/클라이언트 디바이스가 이러한 모델 또는 구조에 따라 딥러닝 네트워크를 학습, 저장 및 실행하기 위해서는, 개인/클라이언트 디바이스가 고성능을 갖추어야 한다는 제한이 있을 수 있다.
도 3은 일 예에 따른 딥러닝 네트워크가 서버 단에 위치하는 모델을 나타낸다.
도 3에서 도시된 것과 같이, 서버에 딥러닝 네트워크가 위치하는 모델은 서버에서 딥러닝 네트워크를 학습, 저장 및 실행하고, 이러한 학습, 저장 및 실행의 결과만을 개인/클라이언트 디바이스로 전송하는 구조를 가질 수 있다. 이러한 구조는 개인/클라이언트 디바이스의 성능 제한에 의해 개인/클라이언트 디바이스가 딥러닝 네트워크를 학습, 저장 및 실행하지 못한다는 제한을 극복할 수 있다.
이러한 모델 또는 구조는, 딥러닝 네트워크가 서버에 존재하고, 딥러닝 네트워크의 결과만이 개인/클라이언트에 전송되기 때문에, 개인/클라이언트 디바이스의 성능의 제한이라는 문제로부터 자유로울 수 있다.
그러나, 서버로부터 전송되는 딥러닝 네트워크의 태스크 수행의 결과는 서버에 의해 사전에 규정된 결과 값이기 때문에, 개인/클라이언트 디바이스가 이러한 결과 값을 다양하게 활용하는 것이 제한될 수 있다. 또한, 개인/클라이언트 디바이스가 특정 활용을 위해 서버에게 새로운 결과 값을 요청하더라도 서버는 이러한 요청에 대해 늦게 대응할 수 있다.
현 시점에서 컨볼루션 신경망을 활용하는 기술은 사물에 대한 검출, 인식 또는 추적 등과 같은 단일 태스크만을 수행하기 때문에 개인/클라이언트 디바이스가 서버로부터 전송된 결과를 통해 태스크를 수행하더라도 큰 제약이 가해지지 않을 수 있다. 그러나, 향후 딥러닝 기술의 발달로 개인/클라이언트 디바이스가 여러 태스크들을 동시에 수행하는 경우에는, 서버로부터 결과 값만이 전달되는 모델 또는 구조는 개인/클라이언트 디바이스가 다양한 태스크들을 수행하기에는 적합하지 않을 수 있다.
도 4는 딥러닝 네트워크가 서버 단 및 개인/클라이언트 디바이스 단으로 분할되고, 분할된 딥러닝 네트워크가 서버 및 개인/클라이언트 디바이스에 각각 위치하는 모델을 나타낸다.
도 4에서 도시된 것과 같은 딥러닝 네트워크의 분산 구조에서는 서버 및 개인/클라이언트 디바이스가 분할된 딥러닝 네트워크들을 각각 가질 수 있다.
딥러닝 네트워크가 서버 및 개인/클라이언트 디바이스로 분할됨에 따라, 이러한 모델 또는 구조에서는 1) 개인/클라이언트 디바이스가 딥러닝을 학습, 저장 및 수행하기 위해 요구되는 메모리 및 계산 성능이 감소될 수 있고, 2) 개인/클라이언트 디바이스에서 활용하고자 하는 태스크가 용이하게 설정될 수 있다.
도 5는 일 예에 따른 분할 학습을 나타낸다.
도 5에서 도시된 것과 같은 분할 학습 기술은 앞서 참조된 도 4에서 설명된 서버 및 개인/클라이언트 디바이스가 분할된 딥러닝 네트워크들을 갖는 모델의 구체적인 일 예에 해당할 수 있다.
이러한 모델은 서버 및 개인/클라이언트 디바이스가 서로 데이터를 공유하면서 학습을 진행하는 구조로 현출될 수 있다.
이러한 모델 또는 구조에서는, 다수의 개인/클라이언트 디바이스들이 자신이 보유한 데이터를 사용하여 개별적으로 학습들을 진행하고, 이러한 학습들의 결과가 서버에서 통합되기 때문에, 서버 및 개인/클라이언트 디바이스 중 오직 하나에서만 학습이 진행되는 것에 비해, 다양한 데이터를 사용하여 딥러닝 네트워크의 학습이 수행될 수 있다.
또한, 이러한 모델 또는 구조에 따르면, 개인/클라이언트 디바이스에는 딥러닝 네트워크의 태스크 수행부만이 배치되고, 개인/클라이언트 디바이스가 서버로부터 전송된 피처 맵을 활용하는 응용도 가능해질 수 있다.
그러나 도 4 및 도 5를 참조하여 설명된 절차들을 지원하기 위해서는, 서버에 위치한 딥러닝 네트워크에서 계산된 중간 결과들을 개인/클라이언트 디바이스로 전송하는 과정이 요구될 수 있다. 이 때, 전송되는 데이터의 용량은 상당히 클 수 있다. 따라서, 이러한 모델 또는 구조는 큰 용량의 데이터가 서버로부터 개인/클라이언트 디바이스로 전송되어야 한다는 제한을 가질 수 있다.
도 6은 일 예에 따른 서버 및 개인/클라이언트 디바이스가 분할된 딥러닝 네트워크들을 갖는 구조에서 서버가 개인/클라이언트 디바이스로 전송해야 하는 데이터에 대한 크기 제한을 나타낸다.
도 6에서 도시된 것과 같이, 입력 영상이 딥러닝 네트워크에서 활용되는 경우, 각 레이어에서 생성되는 피처 맵들의 개수는 상기 레이어의 채널들의 개수와 동일할 수 있다.
또한, 각 피처 맵은 자신의 이전의 피처 맵 및 커널을 사용하는 컨볼루션 연산을 통해서 가로 크기 및 세로 크기가 정의되는 2차원 데이터이기 때문에, 서버로부터 개인/클라이언트 디바이스로 전송되는 다채널 피처 맵들의 총 데이터 크기는 하나의 입력 영상을 전송하기 위한 데이터 크기에 비해 상당히 더 클 수 있다.
도 7은 일 예에 따른 컨볼루션 신경망을 기반으로 한 딥러닝 네트워크의 설계 구조에 따라서 되어야 하는 다채널 피처 맵이 다수의 계층(hierarchy)들에서 생성되는 경우를 나타낸다.
도 7에서 도시된 것과 같이, 컨볼루션 신경망에 기반하는 딥러닝 네트워크의 설계 구조에 따라서, 하나의 계층이 아닌 다수의 계층들에서 생성된 다채널 피처 맵들의 모두 전송되어야 할 수 있다.
이러한 특징에 따라서, 딥러닝 네트워크를 서버 및 개인/클라이언트 디바이스로 분할하고, 서버 및 개인/클라이언트 디바이스가 분할된 딥러닝 네트워크들을 활용하기 위해서는 대용량의 피처 맵 데이터를 효율적으로 압축하는 기술이 요구될 수 있다.
도 8은 일 실시예에 따른 VCM을 나타낸다.
딥러닝 네트워크를 서버 및 개인/클라이언트 디바이스로 분할하고, 분할된 딥러닝 네트워크들을 활용하는 구조에서 전송되어야 하는 피처 맵의 데이터가 크다는 제한을 극복하기 위해, 실시예의 VCM은 피처 맵 또는 피처 맵에 대한 정보를을 압축할 수 있다.
도 8에서 도시된 것과 같이, VCM은 피처 맵을 압축하기 위하여 입력 영상에 대한 피처 추출, 포맷 변환 및 비디오 인코딩의 과정들을 수행할 수 있고, 압축된 피처 맵을 전송할 수 있다.
개인/클라이언트 디바이스에서는 전송된 비트스트림에 대한 비디오 디코딩 및 포맷 복원의 과정들을 수행함으로써 딥러닝 네트워크의 태스크 수행부를 활용할 수 있다.
후술될 실시예에서는 딥러닝 네트워크가 서버 및 개인/클라이언트 디바이스로 분할되고, 서버 및 개인/클라이언트 디바이스가 분할된 딥러닝 네트워크들을 활용하는 구조에서 서버로부터 개인/클라이언트 디바이스로 전송되는 피처 맵을 압축하는 방법을 개시할 수 있다. 도 8을 참조하여 설명된 VCM에서의 절차는 후술될 실시예들에도 적용될 수 있다.
도 9는 일 실시예에 따른 부호화 장치의 구조도이다.
부호화 장치(100)는 딥러닝 네트워크에서 추출된 피처 맵을 압축하고, 압축된 피처 맵에 대한 정보를 포함하는 비트스트림을 생성하는 장치일 수 있다.
부호화 장치(100)는 피처 맵 추출부(110), 피처 프레임 구성부(120), 부호화부(130) 및 전송부(140)를 포함할 수 있다.
피처 맵 추출부(110), 피처 프레임 구성부(120), 부호화부(130) 및 전송부(140)의 동작들 및 기능들에 대해서 아래에서 더 상세하게 설명된다.
도 10은 일 실시예에 따른 부호화 방법의 흐름도이다.
단계(210)에서, 피처 맵 추출부(110)는 딥러닝 네트워크로부터 피처 맵을 추출할 수 있다.
단계(220)에서, 피처 프레임 구성부(120)는 추출된 피처 맵에 대한 피처 프레임을 구성할 수 있다.
단계(230)에서, 부호화부(130)는 피처 프레임애 대한 부호화를 수행함으로써 부호화된 정보를 생성할 수 있다.
부호화부(130)는 복원 정보를 생성할 수 있다. 비트스트림 또는 부호화된 정보는 복원 정보를 포함할 수 있다. 복원 정보는 피처 프레임 및 피처 맵을 복원하기 위해 사용되는 정보일 수 있다.
부호화부(130)는 부호화된 정보를 포함하는 비트스트림을 생성할 수 있다.
단계(240)에서, 전송부(140)는 부호화된 정보를 포함하는 비트스트림을 복호화 장치(300)와 같은 다른 장치로 전송할 수 있다.
전송부(140)는 부호화된 정보를 포함하는 비트스트림을 컴퓨터 판독 가능한 기록 매체에 저장할 수 있다.
도 11은 일 실시예에 따른 복호화 장치의 구조도이다.
복호화 장치(300)는 전송된 비트스트림으로부터 피처 맵을 복원하고, 복원된 피처 맵을 사용하여 태스크를 수행하는 장치일 수 있다.
복호화 장치(300)는 수신부(310), 복호화부(320), 피처 맵 복원부(330) 및 태스크 수행부(340)를 포함할 수 있다.
수신부(310), 복호화부(320), 피처 맵 복원부(330) 및 태스크 수행부(340)의 동작들 및 기능들에 대해서 아래에서 더 상세하게 설명된다.
도 12는 일 실시예에 따른 복호화 방법의 흐름도이다.
단계(410)에서, 수신부(310)는 부호화 장치(100)와 같은 다른 장치로부터 부호화된 정보를 포함하는 비트스트림을 수신할 수 있다.
또는, 수신부(310)는 컴퓨터 판독 가능한 기록 매체에 저장된 비트스트림으로부터 부호화된 정보를 독출할 수 있다.
단계(420)에서, 복호화부(320)는 비트스트림의 부호화된 정보에 대한 복호화를 수행함으로써 피처 프레임을 복원할 수 있다.
비트스트림 또는 부호화된 정보는 복원 정보를 포함할 수 있다. 복원 정보는 피처 프레임 및/또는 피처 맵을 복원하기 위해 사용되는 정보일 수 있다.
단계(430)에서, 피처 맵 복원부(330)는 복원된 피처 프레임을 사용하여 피처 맵을 복원할 수 있다.
단계(440)에서, 태스크 수행부(340)는 복원된 피처 맵을 사용하여 태스크를 수행할 수 있다.
도 13은 일 실시예에 따른 피처 맵 추출부의 동작을 나타낸다.
피처 맵 추출부(110)는 딥러닝 네트워크 구성 단계(111), 피처 맵 추출 단계(112) 및 피처 맵 정규화 단계(113)를 수행할 수 있다.
단계(111)에서, 피처 맵 추출부(110)는 딥러닝 네트워크의 구성을 수행할 수 있다.
단계(111)에서의 딥러닝 네트워크는 부호화 장치(100)의 동작을 위해 현재 활용되는 딥러닝 네트워크를 의미할 수 있다.
딥러닝 네트워크의 구성은 딥러닝 네트워크의 학습을 포함할 수 있다.
또는, 단계(110)는 딥러닝 네트워크의 학습 또는 구성이 완료되었고, 딥러닝 네트워크가 준비되었음을 의미할 수 있다.
단계(112)에서, 피처 맵 추출부(110)는 딥러닝 네트워크의 대상 레이어로부터 다채널 피처 맵을 추출할 수 있다.
실시예들에서, 피처 맵은 다채널 피처 맵 또는 다채널 피처 맵의 일부를 의미할 수 있으며, 다채널 피처 맵들 중 하나의 피처 맵을 의미할 수 있다. 실시예들에서, 용어 "다채널 피처 맵" 및 "피처 맵"은 서로 교체되어 사용될 수 있다.
대상 레이어는 딥러닝 네트워크의 복수의 레이어들 중 다채널 피처 맵이 추출되는 하나 이상의 레이어들일 수 있다. 말하자면, 대상 레이어는 피처 맵 추출부(110)가 추출하고자 하는 다채널 피처 맵을 가진 레이어일 수 있다.
대상 레이어는 복수일 수 있다. 실시예들에서 설명되는 레이어와 관련된 처리는 복수의 대상 레이어들의 각 대상 레이어에 대해 개별적으로 수행될 수 있다.
단계(113)에서, 피처 맵 추출부(110)는 다채널 피처 맵에 대한 정규화를 수행함으로써 정규화된 다채널 피처 맵을 생성할 수 있다.
다채널 피처 맵에 대한 정규화는 실수(real number)들로 구성된 다채널 피처 맵을 양자화 크기에 따라 정수들로 구성된 다채널 피처 맵으로 변환하는 과정일 수 있다.
양자화 크기는 양자화 비트깊이(bitdepth)를 의미할 수 있다. 부호화를 위해 설정되는 양자화 비트깊이에 따라서, 2bitdepth 개 만큼의 양자화 수(quantization number)들이 구분될 수 있다.
예를 들면, 아래의 수학식 1에서 나타나는 것과 같이, 변환 전 피처 맵(Forigin)은 피처 맵의 '최대 값 및 최소 값의 범위 값(Rangemax)'으로 나뉘어질 수 있다. 상기의 나눔의 결과에 '최대 양자화 값(2bitdepth - 1)'이 곱해질 수 있다. 상기의 곱셈의 결과에 반올림(Round)이 적용될 수 있다. 마지막으로, 반올림의 결과에 '2bitdepth - 1'를 더함으로써 정규화된 피처 맵(Fconvert)이 생성될 수 있다.
[수학식 1]
Figure pat00001
정규화된 피처 맵의 모든 값들은 양수(positive number)로 정규화된 값들일 수 있다.
이때, 피처 맵 내의 0 보다 더 작은 값은 0으로 설정될 수 있다. 피처 맵 내의 '최대 양자화 값(2bitdepth - 1)' 보다 더 큰 값은 '2bitdepth - 1'로 설정될 수 있다. 이러한 설정들의 이후에, 피처 맵 내의 모든 값들은 0의 이상이고, '2bitdepth - 1'의 이하일 수 있다.
다른 일 실시예에서, 피처 맵에 대한 정규화는 수학식 1에서 설명된 방식으로만 제한되지 않을 수 있다. 예를 들면, 아래의 수학식 2에서 나타나는 것과 같이 다채널 피처 맵에서의 최소 값(min(F)) 및 최대 값(max(F))을 활용하여 정규화 과정을 진행하는 것과 같은 다양한 정규화 방법이 피처 맵에 대한 정규화를 위해 활용될 수 있다.
[수학식 2]
Figure pat00002
실시예들에서, 피처 맵은 단계(113)에 의해 생성된 정규화된 피처 맵을 의미할 수 있다.
도 14는 일 실시예에 따른 피처 프레임 구성부의 동작을 나타낸다.
피처 프레임 구성부(120)는 단일 피처 프레임 확인 단계(121), 단일 피처 프레임 구성 단계(122), 피처 맵 정렬(sorting) 확인 단계(123), 피처 맵 정렬 단계(124) 및 다중 피처 프레임들 구성 단계(125)를 수행할 수 있다.
단계(121)에서, 피처 프레임 구성부(120)는 단계(113)에서 생성된 정규화된 다채널 피처 맵을 사용하여 단일 피처 프레임 및 다중 피처 프레임들 중 어느 것을 생성할 것인가를 결정할 수 있다.
단일 피처 프레임은 하나의 영상에 대응할 수 있다. 다중 피처 프레임들은 복수의 영상들에 대응할 수 있다. 말하자면, 다중 피처 프레임들은 비디오 또는 비디오의 일부에 대응할 수 있다. 다중 피처 프레임들은 복수의 피처 프레임들일 수 있다.
피처 맵은 (정규화된) 다채널 피처 맵을 의미할 수 있다.
피처 프레임 구성부(120)는 피처 맵의 가로 크기, 피처 맵의 세로 크기 및 피처 맵의 채널들의 개수에 기반하여 피처 맵을 사용하여 단일 피처 프레임 및 다중 피처 프레임들 중 어느 것을 구성할 것인가를 결정할 수 있다.
피처 맵을 사용하여 단일 피처 프레임을 구성한다는 것은 다채널 피처 맵들을 하나의 피처 프레임으로 변환한다는 것을 의미할 수 있다.
피처 맵을 사용하여 다중 피처 프레임들을 구성한다는 것은 다채널 피처 맵들을 다중 피처 프레임들로 변환한다는 것을 의미할 수 있다.
단일 피처 프레임 및 다중 피처 프레임들 중 어느 것을 생성할 것인가에 대한 결정은 아래의 수학식 3, 수학식 4 및 수학식 5에 기반하여 수행될 수 있다.
[수학식 3]
Figure pat00003
[수학식 4]
Figure pat00004
[수학식 5]
Figure pat00005
수학식 3에서, Wf는 피처 맵의 가로 크기를 나타낼 수 있다. Wth는 기정의된 제1 크기일 수 있다.
수학식 4에서, Hf는 피처 맵의 세로 크기를 나타낼 수 있다. Hth는 기정의된 제2 크기일 수 있다.
수학식 3, 4 및 5에서, n1은 피처 프레임의 구성에 있어서 피처 프레임의 가로 방향으로 할당되는 피처 맵들의 개수를 나타낼 수 있다. n2은 피처 프레임의 구성에 있어서 피처 프레임의 세로 방향으로 할당되는 피처 맵들의 개수를 나타낼 수 있다. 말하자면, 피처 프레임은 n1 * n2 개의 피처 맵들을 포함할 수 있고, 피처 프레임의 가로의 길이는 피처 맵의 가로의 길이의 n1 배일 수 있고, 피처 프레임의 세로의 길이는 피처 맵의 세로의 길이의 n2 배일 수 있다. 또는, n1은 피처 프레임 내의 피처 맵들의 열들의 개수를 나타낼 수 있다. n2은 피처 프레임 내의 피처 맵들의 행들의 개수를 나타낼 수 있다.
수학식 5에서, C는 다채널 피처 맵들의 개수 또는 채널들의 개수를 나타낼 수 있다. 실시예들에서, 다채널 피처 맵들의 개수 및 채널들의 개수는 서로 교체되어 사용될 수 있다.
수학식 3은 피처 맵의 가로 크기(Wf)가 '기정의된 제1 크기(Wth)/ 2n'보다 더 큰지 여부를 확인하는 과정을 나타낼 수 있다. n은 수학식 5에서의 n1일 수 있다.
수학식 4는 피처 맵의 세로 크기(Hf)가 '기정의된 제2 크기(Hth) / 2n''보다 더 큰지 여부를 확인하는 과정을 나타낼 수 있다. n'은 수학식 5에서의 n2일 수 있다.
수학식 5는 피처 프레임의 구성에 있어서 피처 프레임의 가로 방항으로 할당되는 피처 맵들의 개수 n1 및 피처 프레임의 세로 방향으로 할당되는 피처 맵들의 개수 n2의 곱이 피처 맵들의 개수 C에 의해 제한됨을 나타낼 수 있다. n1 및 n2는 다채널 피처 맵들의 개수 C에 의해 결정될 수 있다.
'기정의된 제1 크기 Wth'및 '기정의된 제2 크기 Hth'는 피처 맵을 압축하는 압축기의 특성에 따라서 정의될 수 있다. 실시예들에서, 압축기는 압축 부호화기(encoder)를 의미할 수 있다.
실시예들에서의 압축기는 에이치이브이씨(High Efficiency Video Coding; HEVC) 및 브이브이씨(Versatile Video Coding; VVC) 등과 같은 일반적인 비디오 압축 코덱(codec)를 포함하며, 딥러닝 기반 영상 압축 기술에 따른 압축기를 포함한다.
단계(121)에서의 피처 프레임의 구성을 결정하는 방식은 전술된 방식으로 제한되지 않을 수 있다. 예를 들면, 실험적으로 계산된 피처 프레임 구성에 대한 크기에 따른 압축 대비 성능의 결과에 기반하여 단일 피처 프레임 및 다중 피처 프레임들 중 하나가 선택될 수 있다.
피처 프레임 플래그는 단일 피처 프레임 및 다중 피처 프레임들 중 어느 것을 생성할 것인가를 나타낼 수 있다.
피처 프레임 구성부(120)는 단일 피처 프레임 및 다중 피처 프레임들 중 어느 것을 생성할 것인가에 따라서 피처 프레임 플래그의 값을 설정할 수 있다. 피처 프레임 플래그는 단일 피처 프레임 및 다중 피처 프레임들 중 어느 것이 생성되었는가를 나타낼 수 있다.
부호화 장치(100)에 의해 생성되는 비트스트림은 피처 프레임 플래그 또는 피처 프레임 플래그를 나타내는 정보를 포함할 수 있다.
복원 정보는 피처 프레임 플래그를 포함할 수 있다.
단계(121)에서 단일 피처 프레임이 생성되기로 결정된 경우, 단계(122)가 수행될 수 있다.
단계(122)에서 피처 프레임 구성부(120)는 단일 피처 프레임을 구성할 수 있다.
단계(121)에서 다중 피처 프레임들이 생성되기로 결정된 경우, 단계(123)가 수행될 수 있다.
단계(123)에서, 피처 프레임 구성부(120)는 피처 맵에 대한 정렬을 수행할지 여부를 결정할 수 있다.
단계(123)에서 피처 맵에 대한 정렬을 수행하기로 결정된 경우, 단계(124)가 수행될 수 있다.
단계(123)에서 피처 맵에 대한 정렬을 수행하지 않기로 결정된 경우, 단계(125)가 수행될 수 있다.
피처 프레임 구성부(120)는 피처 맵에 대한 정렬을 수행할지 여부에 따라서 정렬 플래그의 값을 설정할 수 있다.
정렬 플래그는 피처 맵에 대한 정렬이 수행되는지 여부를 나타낼 수 있다. 또는, 정렬 플래그는 피처 맵에 대하여 정렬에 대응하는 복원 정렬이 요구되는지 여부를 나타낼 수 있다.
복원 정보는 정렬 플래그를 포함할 수 있다.
단계(124)에서, 피처 프레임 구성부(120)는 피처 맵에 대한 정렬을 수행할 수 있다.
피처 프레임 구성부(120)는 피처 맵에 대한 정렬을 수행함으로써 정렬된 피처 맵을 생성할 수 있다.
피처 프레임 구성부(120)는 정렬 순서 정보를 생성할 수 있다. 정렬 순서 정보는 피처 맵들이 어떻게 정렬되었는가를 나타내는 정보일 수 있다.
복원 정보는 정렬 순서 정보를 포함할 수 있다.
정렬 순서 정보는 정렬로 인한 복수의 피처 맵들의 위치들의 변경을 나타내는 정보일 수 있다.
예를 들면, 정렬 순서 정보는 복수의 피처 맵들의 각 피처 맵의 정렬 이전의 번호(또는, 인덱스) 및 정렬 이후의 번호(또는, 인덱스)를 포함할 수 있다.
예를 들면, 정렬 순서 정보는 복수의 피처 맵들의 각 피처 맵의 정렬 이전의 번호(또는, 인덱스)를 나타낼 수 있다.
또는, 정렬 순서 정보는 정렬된 피처 맵을 정렬 전의 순서로 복원하기 위해 사용되는 정보일 수 있다.
단계(125)에서, 피처 프레임 구성부(120)는 다중 피처 프레임들을 구성할 수 있다.
피처 프레임 구성부(120)는 단계(124)를 거지치 않은 (정렬이 적용되지 않은) 피처 맵을 사용하여 다중 피처 프레임들을 구성할 수 있다. 또는, 피처 프레임 구성부(120)는 단계(124)를 거친 정렬된 피처 맵을 사용하여 다중 피처 프레임들을 구성할 수 있다.
단계(126)에서, 피처 프레임 구성부(120)는 단계(122)에서 생성된 단일 피처 프레임 또는 단계(125)에서 생성된 다중 피처 프레임들을 출력할 수 있다.
도 15는 일 예에 따른 단일 피처 프레임의 생성을 나타낸다.
단일 피처 프레임을 구성하는 단계(122)는 앞선 단일 피처 프레임 확인 단계(121)에서 단일 피처 프레임이 선택되었을 경우에 단일 피처 프레임을 생성하는 과정을 나타낼 수있다.
도 15에서 도시된 것과 같이, 피처 프레임 구성부(120)는 가로 방향으로 n1 개, 세로 방향으로 n2 개의 피처 맵들을 격자(grid) 형태로 배치함으로써 단일 피처 프레임을 생성할 수 있다. 말하자면, 단일 피처 프레임은 복수의 피처 맵들을 포함할 수 있으며, 피처 프레임 내의 복수의 피처 맵들은 n1 개의 열들 및 n2 개의 행들을 구성할 수 있다.
이 때, n1 및 n2의 곱은 다채널 피처 맵들의 총 개수와 동일해야 할 수 있다. 또한, 기본적으로 n1 및 n2 간의 차이의 절대 값이 최소가 되도록 순서 쌍 (n1 및 n2)가 선택될 수 있다. 말하자면, n1 및 n2는 동일할 수 있다. 기본적으로 정사각형에 가까운 모양을 갖는 단일 피처 프레임이 선호될 수 있다.
피처 맵 정렬 확인 단계(123)는 단일 피처 프레임 확인 단계(121)에서 다중 피처 프레임들이 선택된 경우, 다중 피처 프레임들을 생성하는 과정에서 정렬(sorting)의 적용 여부를 결정하는 과정을 나타낼 수 있다.
일반적으로, 정렬된 다채널 피처 맵들을 사용하여 생성된 피처 프레임에 대한 압축은, 정렬이 적용되지 않은 다채널 피처 맵들을 사용하여 생성된 피처 프레임에 대한 압축에 비해, 더 높은 압축 성능을 보일 수 있다.
반면, 다채널 피처 맵들에 대한 정렬이 사용되는 경우에는, 피처 맵들 간의 순서를 저장하는 변수가 요구되며, 이러한 변수를 위한 추가적인 메모리 할당이 요구된다. 따라서, 다채널 피처 맵들에 대하여 정렬을 사용하는 것이 항상 더 큰 압축 성능을 보장하지는 않을 수 있다.
따라서, 실시예들에서, 다채널 피처 맵들에 대한 정렬은 선택적으로 수행될 수 있다. 예를 들면, 다채널 피처 맵들에 대한 정렬은 더 높은 압축 성능이 도출 또는 보장되는 경우에만 선택적으로 수행될 수 있다.
피처 프레임 구성부(120)는 피처 맵의 크기에 기반하여 피처 맵들에 대해 정렬을 적용할 지 여부를 판단할 수 있다.
또는, 피처 프레임 구성부(120)는 사용자의 통계적 경험에 따른 특정 규칙에 따라 피처 맵들에 대해 정렬을 적용할 지 여부를 판단할 수 있다.
예를 들면, 피처 프레임 구성부(120)는 정렬이 적용된 피처 맵들에 대한 제1 다중 피처 프레임들 및 정렬이 적용되지 않은 피처 맵들에 대한 제2 다중 피처 프레임들을 생성할 수 있고, 제1 다중 피처 프레임들 및 제2 다중 피처 프레임들 중 하나를 선택할 수 있다.
부호화 장치(100) 또는 피처 프레임 구성부(120)는 제1 다중 피처 프레임들을 사용하는 제1 부호화의 제1 결과 및 제2 다중 피처 프레임들을 사용하는 제2 부호화의 제2 결과를 비교할 수 있고, 제1 결과 및 제2 결과의 비교에 따라 제1 다중 피처 프레임들 및 제2 다중 피처 프레임들 중 하나를 선택할 수 있다.
예를 들면, 부호화 장치(100) 또는 피처 프레임 구성부(120)는 제1 다중 피처 프레임들 및 제2 다중 피처 프레임들 중 부호화부(130)에 의해 부호화되었을 때 더 높은 부호화 효율을 보이는 피처 프레임들을 다시 선택할 수 있다.
도 16은 일 예에 따른 피처 맵의 정렬을 나타낸다.
피처 맵 정렬 확인 단계(123)에서 다채널 피처 맵에 대한 정렬이 효율적이라고 판단된 경우, 피처 맵 정렬 단계(124)에서 다채널 피처 맵에 대한 특정 기준에 따른 정렬이 수행될 수 있다.
도 16에서 도시된 것과 같이, 다채널 피처 맵은 특정 정렬 규칙에 따라서 정렬될 수 있다.
실시예들에서, 특정 기준에 따른 정렬을 수행하는 목적은 도 16에서 나타나는 것과 같이 유사한 피처 맵들이 군집(cluster)되도록 피처 맵을 정렬함으로써 부호화 단계(230)에서의 압축 효율을 향상시키는 것일 수 있다. 이러한 측면에서, 실시예들의 정렬 방법은 특정 방법으로 제한되지 않고, 다채널 피처 맵에 대한 정렬을 위해 다양한 정렬 방법들이 활용될 수 있다.
예를 들면, 피처 프레임 구성부(120)는 피처 맵들의 평균 밝기들을 기준으로 피처 맵들을 정렬할 수 있다. 여기에서, 기준은 오름차순 또는 내림차순을 의미할 수 있다.
예를 들면, 피처 프레임 구성부(120)는 피처 맵들의 지역 밝기들을 기준으로 피처 맵들을 정렬할 수 있다.
예를 들면, 피처 프레임 구성부(120)는 피처 맵들의 평균 밝기들을 기준으로 피처 맵들을 정렬할 수 있다.
이 외에도, 예를 들면, 피처 프레임 구성부(120)는 실시예들에서 설명된 피처 맵들의 특정 특징들을 기준으로 피처 맵들을 정렬할 수 있다.
도 17은 일 실시예에 따른 피처 맵의 평균 밝기를 기준으로 피처 맵을 정렬하는 방법을 나타낸다.
피처 프레임 구성부(120)는 피처 맵들의 평균 밝기들을 기준으로 피처 맵들을 정렬할 수 있다.
다채널 피처 맵의 평균 밝기를 기준으로 정렬하는 방법에 있어서, 아래의 수학식 6은 피처 맵의 평균 밝기를 계산하는 방법을 나타낸다.
[수학식 6]
Figure pat00006
f는 피처 맵을 나타낼 수 있다.
X는 피처 맵의 가로 크기일 수 있다.
Y는 피처 맵의 세로 크기일 수 있다.
f(i, j)는 피처 맵의 좌표들 (i, j)에서의 밝기일 수 있다.
Avggrad는 피처 맵의 평균 밝기를 나타낼 수 있다.
도 17에서 도시된 것과 같이, 피처 프레임 구성부(120)는 피처 맵의 평균 밝기(Avggrad)가 계산되면, 피처 맵들의 평균 밝기들을 비교함으로써 피처 맵들을 평균 밝기들을 기준으로 정렬할 수 있다.
도 18은 일 예에 따른 다채널 피처 맵의 지역 밝기를 기준으로 피처 맵을 정렬하는 방법을 나타낸다.
피처 프레임 구성부(120)는 피처 맵들의 지역 밝기들을 기준으로 피처 맵들을 정렬할 수 있다.
다채널 피처 맵의 지역 밝기를 기준으로 정렬하는 방법에 있어서, 아래의 수학식 7에서 설명된 것과 같이 피처 맵의 지역 밝기가 계산될 수 있다.
[수학식 7]
Figure pat00007
가로 크기가 X이고, 세로 크기가 Y인 피처 맵 f는 가로 크기가 N이고, 세로 크기가 M인 K 개의 영역들로 분할될수 있다.
Ai는 K 개의 영역들 중 i 번째 영역의 평균 밝기 Avggrad일 수 있다. 수학식 6을 참조하여 전술된 것과 같이, 피처 프레임 구성부(120)는 피쳐 맵의 분할된 영역의 평균 밝기를 계산할 수 있다.
αi Ai에 대한 가중치를 나타낼 수 있다. 말하자면, αi는 i 번째 영역의 중요도 가중치일 수 있다.
Locgrad는 피처 맵의 지역 밝기일 수 있다. Locgrad는 K 개의 영역들의 평균 밝기들의 가중치가 부여된 합(weighted sum)일 수 있다.
피처 프레임 구성부(120)는 피처 맵들의 지역 밝기들을 기준으로 피처 맵들을 정렬할 수 있다. 여기에서, 기준은 오름차순 또는 내림차순을 의미할 수 있다.
예를 들면, 도 13에서 도시된 것과 같이, 피처 프레임 구성부(120)는 하나의 피처 맵을 9 개의 영역들로 분할할 수 있고, 분할된 영역들의 지역 밝기들을 도출할 수 있다. 피처 맵이 A1 내지 A9의 9 개의 영역들로 분할되는 경우, Locgrad는 α1A1 + α2A2 + α3A3 + α4A4 + α5A5 + α6A6 + α7A7 + α8A8 + α9A9일 수 있다.
여기에서, αi들 간의 차이가 더 작을수록 피처 맵들은 도 17를 참조하여 전술된 피처 맵의 평균 밝기를 기준으로 정렬하는 방법과 유사하게 정렬될 수 있다. αi들 간의 차이가 더 크고, 분할되는 영역들의 개수가 더 많을수록 피처 맵이 더 명확하게 분류될 수 있다.
피처 프레임 구성부(120)는 피처 맵의 평균 밝기를 사용하는 정렬 및 피처 맵의 지역 밝기를 사용하는 정렬을 조합할 수 있다. 피처 프레임 구성부(120)는 우선 피처 맵들의 평균 밝기들을 사용하여 피처 맵들에 대한 1차 정렬을 수행할 수 있다. 피처 맵들이 1차로 정렬되면, 피처 프레임 구성부(120)는 정렬된 피쳐 맵들 중 동일한 평균 밝기를 가진 피처 맵들에 대하여 지역 밝기를 사용하는 2차 정렬을 수행할 수 있다. 여기에서, 앞서 수행된 1차 정렬에 대한 2차 정렬의 유용성을 위해, 상대적으로 크게 차이나는 αi들이 2차 정렬에서 사용될 수 있다.
도 19는 일 실시예에 따른 축소된 다채널 피처 맵의 평균 밝기를 기준으로 정렬하는 방법을 나타낸다.
피처 프레임 구성부(120)는 피처 맵들을 축소함으로써 축소된 피처 맵들을 생성할 수 있고, 축소된 피처 맵들의 평균 밝기들을 기준으로 피처 맵들을 정렬할 수 있다.
축소된 피처 맵의 평균 밝기를 기준으로 정렬하는 방법에 있어서, 아래의 수학식 8에서 설명된 것과 같이 축소된 피처 맵의 평균 밝기가 계산될 수 있다.
[수학식 8]
Figure pat00008
가로 크기가 X이고, 세로 크기가 Y인 피처 맵 f는 가로 크기가 V 배로 축소되고, 세로 크기가 U 배로 축소될 수 있다.
수학삭 8에서 설명된 것과 같이, 가로 방향으로 U 개, 세로 방향으로 V 개인 U * V 개의 픽셀들에 대한 축소된 평균 픽셀 S가 계산될 수 있다. 말하자면, S는 U * V 개의 픽셀들의 밝기들의 평균일 수 있다.
i 는 축소된 평균 픽셀 Sij의 x 좌표일 수 있다. j는 축소된 평균 픽셀 Sij의 y 좌표일 수 있다.
축소된 피처 맵의 픽셀들의 밝기들이 계산되면, 축소된 평균 픽셀들로 구성된 축소된 피쳐 맵의 평균 밝기가 계산될 수 있다. 축소된 피쳐 맵의 평균 밝기를 계산함에 있어서 전술된 수학식 6이 사용될 수 있다.
예를 들면 도 19에서 도시된 것과 같이, 피처 맵 A를 가로로 2 배, 세로로 2 배로 축소함으로써 축소된 피처 맵 B가 생성될 수 있고, 축소된 피처 맵 B에 대한 평균 밝기가 계산될 수 있다. 축소된 피처 맵 B의 평균 밝기가 피처 맵 A에 대한 정렬의 기준으로 사용될 수 있다.
도 20는 본 발명에서 다중 피처 프레임을 구성하는 피처 맵들의 개수에 따른 압축률을 나타낸다.
도 21은 본 발명에서 다중 피처 프레임을 구성하는 피처 맵들의 개수에 따른 PSNR의 결과를 나타낸다.
도 20에서는, 가로 방향의 할당된 피처 맵들의 개수 및 세로 방향의 할당된 피처 맵들의 개수에 따른 압축률이 도시되었다.
도 21에서는, 가로 방향의 할당된 피처 맵들의 개수 및 세로 방향의 할당된 피처 맵들의 개수에 따른 피크 신호 대 잡음 비(Peak Signal-to-Noise Ratio; PSNR)가 도시되었다.
다중 피처 프레임들 구성 단계(125)에서, 피처 프레임 구성부(120)는 정렬된 다채널 피처 맵 또는 정렬되지 않은 다채널 피처 맵을 사용하여 피처 프레임을 생성할 수 있다.
여기에서, 피처 맵은 복수일 수 있다. 생성되는 피처 프레임은 다중 피처 프레임들일 수 있다.
다중 피처 프레임들에 있어서, 피처 프레임들의 개수는 아래의 수학식 9에 따라서 계산될 수 있다.
[수학식 9]
Figure pat00009
Nframe는 피처 프레임들의 개수를 나타낼 수 있다.
C는 피처 맵들의 총 개수일 수 있다.
n1은 피처 프레임의 구성에 있어서 피처 프레임의 가로 방향으로 할당되는 피처 맵들의 개수를 나타낼 수 있다. n2은 피처 프레임의 구성에 있어서 피처 프레임의 세로 방향으로 할당되는 피처 맵들의 개수를 나타낼 수 있다. 말하자면, 피처 프레임은 n1 * n2 개의 피처 맵들을 포함할 수 있고, 피처 프레임의 가로의 길이는 피처 맵의 가로의 길이의 n1 배일 수 있고, 피처 프레임의 세로의 길이는 피처 맵의 세로의 길이의 n2 배일 수 있다. 또는, n1은 피처 프레임 내의 피처 맵들의 열들의 개수를 나타낼 수 있다. n2은 피처 프레임 내의 피처 맵들의 행들의 개수를 나타낼 수 있다.
예를 들면, 다채널 피처 맵들이 모두 256 개일 때, 하나의 피처 프레임을 구성하는데 가로 방향으로 4 개의 피처 맵들이 할당되고, 세로 방향으로 4 개의 피처 맵들이 할당되는 경우, 16 개의 피처 프레임들이 요구될 수 있다.
도 20 및 도 21에서 도시된 것과 같이, 다중 피처 프레임들을 구성하는 피처 맵의 할당 개수를 어떻게 설정하느냐에 따라서 압축기에서 압축 성능이 변할 수 있다. 피처 맵의 할당 개수는 n1 및 n2를 의미할 수 있고, 순서 쌍 (n1, n2)으로서 표현될 수 있다.
피처 프레임 구성부(120)는 피처 맵의 크기에 기반한 사용자의 통계적 경험에 기반하여 피처 프레임을 구성하는 피처 맵의 할당 개수를 설정할 수 있다.
피처 프레임 구성부(120)는 복수의 할당 개수들을 사용하여 복수의 피처 프레임들을 생성하고, 복수의 피처 프레임들 중 하나를 선택할 수 있다. 복수의 할당 개수들은 복수의 순서 쌍 (n1, n2)들일 수 있다.
선택의 기준은 부호화 효율일 수 있다. 피처 프레임 구성부(120)는 복수의 피처 프레임들 중 가장 높은 부호화 효율을 보이는 피처 프레임을 선택할 수 있다.
예를 들면, 피처 프레임 구성부(120)는 복수의 할당 개수들을 사용하여 복수의 피처 프레임들을 생성할 수 있다. 부호화 장치(100) 또는 피처 프레임 구성부(120)는 서로 다른 할당 개수들에 대한 복수의 피처 프레임들 중 부호화부(130)에 의해 부호화되었을 때 가장 높은 부호화 효율을 보이는 피처 프레임을 다시 선택할 수 있다.
피처 프레임 구성부(120)는 복수의 순서 쌍 ( n1, n2 )들의 각 순서 쌍에 대하여, 상기의 순서 쌍에 따른 개수만큼의 피처 맵들을 포함하는 피처 프레임을 개별적으로 생성할 수 있고, 부호화부(130)는 피처 프레임에 대한 부호화를 수행할 수 있다. 부호화 장치(100) 또는 피처 프레임 구성부(120)는 복수의 순서 쌍들에 대해 생성된 피처 프레임들 중 가장 높은 부호화 효율을 보이는 피처 프레임을 선택할 수 있다.
도 22, 도 23, 도 24, 도 25, 도 26 및 도 27은 일 예에 따른 정렬된 다채널 피처 맵을 사용하여 다중 피처 프레임들을 생성하는 방법들을 나타낸다.
도 22는 일 예에 따른 정렬된 다채널 피처 맵을 사용하여 다중 피처 프레임들을 생성하는 제1 방법을 나타낸다.
도 23은 일 예에 따른 정렬된 다채널 피처 맵을 사용하여 다중 피처 프레임들을 생성하는 제2 방법을 나타낸다.
도 24는 일 예에 따른 정렬된 다채널 피처 맵을 사용하여 다중 피처 프레임들을 생성하는 제3 방법을 나타낸다.
도 25는 일 예에 따른 정렬된 다채널 피처 맵을 사용하여 다중 피처 프레임들을 생성하는 제4 방법을 나타낸다.
도 26은 일 예에 따른 정렬된 다채널 피처 맵을 사용하여 다중 피처 프레임들을 생성하는 제5 방법을 나타낸다.
도 27은 일 예에 따른 정렬된 다채널 피처 맵을 사용하여 다중 피처 프레임들을 생성하는 제6 방법을 나타낸다.
단계(125)에서, 피처 프레임 구성부(120)는 정렬된 다채널 피처 맵들을 사용하여 다중 피처 프레임들을 구성할 수 있다. 이러한 경우, 정렬되지 않은 다채널 피처 맵들로 단일 피처 프레임을 구성할 경우와는 달리, 피처 프레임 구성부(120)는 도 22 내지 도 27에서 예시된 여러 스캔 순서들을 사용하여 피처 맵들을 피처 프레임 내에 할당함으로써 다중 피처 프레임들을 생성할 수 있다.
피처 프레임 구성부(120)는 다중 피처 프레임들을 생성함에 있어서 정렬된 피처 맵들을 특정 순서에 따라 스캔할 수 있다.
도 22 내지 도 27에서, 화살표가 붙은 선은 스캔에 있어서 피처 맵들의 스캔 순서를 나타낼 수 있다. 예를 들면, 도 22 내지 도 27에서, 선이 출발하는 위치의 피처 맵이 가장 먼저 스캔될 수 있고, 선이 최종적으로 도달하는 위치의 피처 맵이 가장 나중에 스캔될 수 있다.
선의 화살표들은 피처 맵들의 순서들 또는 스캔의 진행 방향을 나타낼 수 있다. 피처 맵들은 선의 화살표들이 가리키는 순서들에 따라 스캔될 수 있다. 피처 맵들에 대한 스캔들은 화살표가 향하는 방향으로 도시된 선을 따라가면서 진행될 수 있다. 예를 들면, 화살표가 향하는 방향의 피처 맵은 반대의 방향의 피처 맵이 스캔된 이후에 스캔될 수 있다.
상기의 제1 방법 내지 제6 방법은 피처 맵들에 대한 스캔 순서들을 예시적으로 나타낼 수 있다.
예를 들면, 제1 방법에서, 피처 프레임 구성부(120)는 정렬된 피처 맵들을 수평 우선 스캔 순서 또는 수평 스캔 순서에 따라 스캔하여 피처 프레임을 생성할 수 있다.
예를 들면, 제2 방법에서, 피처 프레임 구성부(120)는 정렬된 피처 맵들을 순방향 및 역방향이 교체되는 수평 우선 스캔 순서 또는 순방향 및 역방향이 교체되는 수평 스캔 순서에 따라 스캔하여 피처 프레임을 생성할 수 있다.
또한, 제3 방법 내지 제6 방법에서, 피처 프레임 구성부(120)는 정렬된 피처 맵들을 도시된 특정 스캔 순서에 따라 스캔함으로써 피처 프레임을 생성할 수 있다.
도 22 내지 도 27을 참조하여 설명된 스캔 순서들은 다중 피처 프레임들을 구성하기 위한 스캔 순서들의 예들일 수 있다. 다중 피처 프레임들을 구성하기 위한 스캔 순서는 도 22 내지 도 27을 참조하여 설명된 스캔 순서들로 제한되지 않을 수 있다.
스캔 순서 정보는 다중 피처 프레임들을 구성하기 위해 사용된 특정 스캔 순서를 나타낼 수 있다. 또는, 스캔 순서 정보는 피처 프레임을 생성하기 위해 사용된 피처 맵들 간의 순서를 나타낼 수 있다.
복원 정보는 스캔 순서 정보를 포함할 수 있다.
도 28은 일 실시예에 따른 본 발명의 다중 피처 프레임들을 나타낸다.
다중 피처 프레임들은 후술될 피처 맵들에 대한 공간적 우선 할당 또는 시간적 우선 할당을 통해 생성될 수 있다.
예를 들면, 피처 맵들이 512 개이고, 피처 맵의 할당 개수가 (8, 8)일 때(말하자면, 피처 프레임의 가로 방향으로 8 개의 피처 맵들이 할당되고, 피처 프레임의 세로 방향으로 8 개의 피처 맵들이 할당될 때), 모두 8 개의 다중 피처 프레임들이 생성될 수 있다.
다중 피처 프레임들을 생성하는 구체적인 방법들이 아래에서 더 상세하게 설명된다.
도 29는 일 예에 따른 피처 맵들의 정렬 순서를 나타낸다.
도 29에서 도시된 것과 같이, 전체의 피처 맵들은 특정 순서에 따라 정렬될 수 있다. 정렬 후, 피처 맵들의 순서에 따라 각 피처 맵에 정렬 번호가 부여될 수 있다. 피처 맵의 정렬 번호는 정렬의 이후의 피처 맵의 순서를 나타낼 수 있다.
도 30은 일 예에 따른 공간적 우선 할당을 나타낸다.
공간적 우선 할당은 하나의 피처 프레임을 구성하는 피처 맵들 간의 유사성을 높이기 위한 방법일 수 있다.
공간적 우선 할당은 정렬된 피처 맵들을 설정된 스캔 순서에 따라 피처 프레임에 할당함으로써 다중 피처 프레임들을 차례대로 생성하는 방법일 수 있다. 피처 프레임 구성부(120)는 피처 맵들을 설정된 스캔 오더에 따라 피처 프레임에 할당함으로써 다중 피처 프레임들을 차례대로 생성할 수 있다.
공간적 우선 할당이 사용될 때, 다중 피처 프레임들 중 하나의 피처 프레임에 대한 피처 맵들의 할당이 완료되면, 다음 피처 프레임에 대하여 피처 맵들이 할당될 수 있다.
따라서, 공간적 우선 할당을 통해서 생성된 피처 프레임의 내부의 피처 맵들은 연속된 정렬 순서들을 가질 수 있다.
도 31은 일 예에 따른 시간적 우선 할당을 나타낸다.
시간적 우선 할당은 정렬된 피처 맵들을 다중 피처 프레임들 내의 동일한 위치들에 연속적으로 할당함으로써 다중 피처 프레임들을 생성하는 방법일 수 있다. 여기에서, 다중 피처 프레임들 내의 동일한 위치들은 스캔 순서에 따른 위치일 수 있다.
시간적 우선 할당이 사용될 때, 피처 프레임 구성부(120)는 피처 맵들을 다중 피처 프레임들 내의 동일한 위치들에 연속적으로 할당함으로써 다중 피처 프레임들을 생성할 수 있다. 다중 피처 프레임들 내의 하나의 위치에 대한 피처 맵들의 할당이 완료되면, 다중 피처 프레임들 내의 다음 위치에 대하여 피처 맵들이 할당될 수 있다.
따라서, 시간적 우선 할당을 통해서 생성된 다중 피처 프레임들 내의 동일한 위치들의 피처 맵들은 연속된 정렬 순서들을 가질 수 있다.
피처 프레임 구성부(120)는 공간적 우선 할당 및 시간적 우선 할당 중에서 후술될 압축 부호화 단계(132)에서의 압축 프로세스에 더 적합한 우선 할당을 사용하여 피처 프레임을 생성할 수 있다. 이러한 선택 및 생성을 통해 높은 압축 성능이 제공될 수 있다.
할당 정보는 피처 프레임을 구성하기 위해 사용된 피처 맵들에 대한 할당 방법을 나타낼 수 있다. 예를 들면, 할당 정보는 시간적 우선 할당 및 공간적 우선 할당 중 하나를 나타낼 수 있다.
복원 정보는 할당 정보를 포함할 수 있다.
도 32는 컨볼루션 신경망의 다수의 계층들에서 다채널 피처 맵들이 생성되는 경우에 다중 피처 프레임들을 생성하는 방법을 나타낸다.
컨볼루션 신경망은 복수의 계층들을 포함할 수 있다. 컨볼루션 신경망의 구조로 인해 복수의 계층들에서 다채널 피처 맵들이 각각 생성되는 경우, 다중 피처 프레임들은 아래에서 설명되는 방식에 따라 구성될 수 있다.
피처 프레임 구성부(120)는 복수의 계층들의 각 계층으로부터 추출된 다채널 피처 맵들을 사용하여 각 계층에 대하여 독립적인 다중 피처 프레임들을 구성할 수 있다. 말하자면, 복수의 계층들로부터 다채널 피처 맵들이 추출되면, 피처 프레임 구성부(120)는 추출된 다채널 피처 맵들을 사용하여 각 계층에 대하여 독립적으로 다중 피처 프레임들을 구성할 수 있다. 말하자면, 다중 피처 프레임들은 컨볼루션 신경망의 복수의 계층로 중 하나의 계층으로부터 추출된 피처 맵을 사용하여 독립적으로 구성될 수 있다.
피처 프레임 구성부(120)는 복수의 계층들의 각 계층에서의 피처 맵의 가로 크기 및 세로 크기를 고려하여 상기의 계층의 피처 프레임을 구성하는 피처 맵들의 개수를 독립적으로 설정할 수 있다. 상기의 계층의 다중 피처 프레임들에 대하여 설정된 피처 맵들의 개수가 적용될 수 있다.
이러한 방식에 따라, 계층에 따라서 다중 피처 프레임들의 각 피처 프레임을 구성하는 피처 맵들의 개수가 변하기 때문에, 도 32에서 도시된 것과 같은 계층 별로 적용되는 다중 피처 프레임들의 구성들의 조합에 따라 압축 대비 성능이 변할 수 있다.
도 33은 일 실시예에 따른 부호화부의 동작을 나타낸다.
부호화부(130)는 영상 포맷 변환 단계(131), 압축 부호화 단계(132) 및 성능 예측 단계(133)를 수행할 수 있다.
단계(131)에서, 부호화부(130)는 피처 프레임을 압축기에서 요구되는 압축 용 포맷으로 변환함으로써 압축을 위한 포맷으로 변환된 피처 프레임 정보를 생성할 수 있다. 여기에서, 압축을 위한 포맷은 파일 포맷일 수 있다.
변환된 피처 프레임 정보 또는 피처 프레임 정보는 피처 프레임을 나타나는 정보로서, 압축을 위한 포맷을 갖는 정보일 수 있다.
단일 피처 프레임이 변환되는 경우, 변환된 피처 프레임 정보는 변환된 단일 피처 프레임 정보일 수 있다.
다중 피처 프레임들이 변환되는 경우, 변환된 피처 프레임 정보는 변환된 다중 피처 프레임들 정보일 수 있다.
단계(132)에서, 부호화부(130)는 변환된 피처 프레임 정보에 대한 압축을 수행함으로써 압축된 피처 프레임 정보를 생성할 수 있다. 부호화된 정보는 압축된 피처 프레임 정보를 포함할 수 있다.
변환된 피처 프레임 정보에 대한 압축은 일반적인 비디오 압축 코덱인 HEVC 및 VVC 등을 사용하여 수행될 수 있으며, 딥러닝 기반 영상 압축 방법을 사용하려 수행될 수 있다.
단계(131)에서의 처리의 목적은 피처 프레임을 압축기에서 지원되는 파일 포맷으로 변환하는 것일 수 있다. 따라서, 압축을 위한 포맷은 비디오 압축 코덱 및 딥러닝 기반 영상 압축 방법에서 제공되는 포맷들을 포함할 수 있고, 특정 포맷으로 제한되지 않는다.
예를 들면, HEVC 및 VVC와 같은 비디오 압축 코덱이 압축을 위해 사용된 경우, 와이유브이(YUV)의 포맷이 변환을 위해 사용되도록 설정될 수 있다.
예를 들면, 딥러닝 기반 비디오 압축 기술이 압축을 위해 사용된 경우, 알지비(RGB), 비엠피(BMP), 제이피지(JPG) 및 피엔지(PNG) 등과 같은 다양한 포맷들이 변환을 위해 사용되도록 설정될 수 있다.
단계(132)에서, 부호화부(130)는 영상을 압축하는 방법을 사용하여 변환된 피처 프레임 정보에 대한 압축을 수행함으로써 압축된 피처 프레임 정보를 생성할 수 있다.
(변환된) 단일 피처 프레임 정보가 압축되는 경우, 압축된 피처 프레임 정보는 압축된 단일 피처 프레임 정보일 수 있다.
(변환된) 다중 피처 프레임들 정보가 압축되는 경우, 압축된 피처 프레임 정보는 압축된 다중 피처 프레임들 정보일 수 있다.
부호화부(130)는 정지 영상(still image)을 압축하는 방법을 사용하여 단일 피처 프레임 또는 변환된 단일 피처 프레임 정보에 대한 압축을 수행함으로써 압축된 단일 피처 프레임 정보를 생성할 수 있다.
부호화부(130)는 동영상(motion image)을 압축하는 방법을 사용하여 다중 피처 프레임들 또는 변환된 다중 피처 프레임들 정보에 대한 압축을 수행함으로써 압축된 다중 피처 프레임들 정보를 생성할 수 있다.
부호화된 정보는 압축된 피처 프레임 정보를 포함할 수 있다.
단계(132)에서 압축된 피처 프레임은 딥러닝 네트워크에 의한 태스크 수행에 활용될 수 있도록 피처 맵으로 다시 복원될 수 있어야 할 수 있다.
따라서, 부호화부(130)는 피처 맵에 대한 복원을 지원하기 위한 복원 정보를 생성할 수 있다. 비트스트림 또는 부호화된 정보는 복원 정보를 포함할 수 있다.
복원 정보는 HEVC 및 VVC 등과 같은 기존의 비디오 코덱에서 활용되는 보충 향상 정보(Supplymental Enhancement Information; SEI) 메시지일 수 있다. 또는, 복원 정보는 SEI 메시지 내에 포함될 수 있다.
복원 정보는 전술된 정렬 플래그 및 정렬 순서 정보를 포함할 수 있다.
복원 정보의 적어도 일부는 비트스트림의 파일 명 또는 비트스트림 내의 특정 파일의 파일 명에 대응할 수 있다.
예를 들면, 정렬 플래그의 값은 비트스트림 내의 특정 파일의 파일 명의 특정 위치의 문자가 어떤 것인가에 따라서 결정될 수 있다. 또는, 정렬 플래그의 값은 비트스트림 내의 특정 파일의 파일 명의 특정 위치의 문자를 결정할 수 있다.
단계(133)에서, 부호화부(130)는 피처 프레임 구성부(120)에서 생성된 피처 프레임의 압축 대비 성능을 확인할 수 있다.
부호화부(130)는 피처 프레임 구성부(120)에서 생성된 피처 프레임이 요구되는 압축 대비 성능을 나타내는지 여부를 확인할 수 있다.
이러한 확인은 다양한 방법들을 통해 이루어질 수 있다.
예를 들면, 피처 맵 추출부(110)에 의해 수행되는 딥러닝 네트워크 구성 단계(111)에서의 딥러닝 네트워크의 태스크 수행부가 활용되는 경우, 압축률 대비 성능이 수치적으로 표현될 수 있다.
딥러닝 네트워크 구성 단계(111)에서의 딥러닝 네트워크가 인스턴스 세그멘테이션(instance segmentation)을 수행하는 경우, 테스크의 성능은 평균 정밀도(mean Average Precision; mAP)로 표현될 수 있고, 압축 성능은 픽셀 당 비트들(Bits Per Pixel; BPP)로 표현될 수 있다. 이때, BPP 대비 mAP 값은 피처 프레임 구성부(120)에 전달될 수 있다, 피처 프레임 구성부(120)는 전달된 BPP 대비 mAP 값을 피처 프레임을 구성할 때 사용할 수 있다.
도 34는 일 예에 따른 SEI 메시지를 나타낸다.
도 35는 일 예에 따른 피처 맵에 대한 SEI 메시지의 신택스를 나타낸다.
SEI 메시지는 전술된 복원 정보일 수 있고, 복원 정보를 포함할 수 있다.
실시예들에서 활용되는 SEI 메시지는, 피처 맵 양자화 정보, 피처 맵 맞춤 정보 및 피처 프레임 구성 정보 등을 포함할 수 있다.
SEI 메시지는 피처 맵 양자화 정보 및 피처 맵 맞춤(align) 정보를 포함할 수 있다.
피처 맵 양자화 정보는 피처 맵에 대한 양자화 방법을 나타낼 수 있다. 피처 맵 양자화 정보는 양자화 크기를 나타낼 수 있다.
피처 맵 맞춤 정보는 피처 맵에 대한 맞춤(alignment) 방법을 나타낼 수 있다.
피처 프레임 구성 정보는 피처 프레임을 구성하는 방법을 나타낼 수 있다.
예를 들면, 피처 맵 양자화 정보는 후술될 피처에 대한 fmq_type 정보 및 fmq_bitdepth 정보를 포함할 수 있다.
도 36은 일 예에 따른 fmq_type의 값을 나타낸다.
fmq_type은 피처 맵에 적용된 양자화의 타입을 나타내는 정보일 수 있다. fmq_type의 값은 피처 맵에 적용된 양자화의 타입에 따라 결정될 수 있다.
fmq_type의 값이 0인 것은 피처 맵에 대하여 양자화가 사용되지 않음을 나타낼 수 있다.
fmq_type의 값이 1인 것은 피처 맵에 대하여 최소(min)-최대(max) 양자화가 사용됨을 나타낼 수 있다. fmq_type의 값이 1일 때, 피처 맵 양자화 정보는 fmq_min 및 fmq_max를 포함할 수 있다. fmq_min은 최소-최대 양자화에서의 최소 값을 나타내는 정보일 수 있다. fmq_max은 최소-최대 양자화에서의 최대 값을 나타내는 정보일 수 있다.
fmq_type의 값이 2인 것은 피처 맵에 대하여 최대-범위(max-range) 양자화가 사용됨을 나타낼 수 있다. fmq_type의 값이 2일 때, 피처 맵 양자화 정보는 fmq_max_range를 포함할 수 있다. fmq_max_range는 최대-범위를 나타낼 수있다.
fmq_type의 값이 3인 것은 피처 맵에 대하여 기정의된 양자화가 사용됨을 나타낼 수 있다. fmq_type의 값이 3일 때, 피처 맵 양자화 정보는 fmq_num_parameters 및 fmq_parameter를 포함할 수 있다. fmq_num_parameters는 양자화 계수들의 개수를 나타내는 정보일 수 있다. fmq_parameter는 양자화 계수들을 나타내는 정보일 수 있다.
도 37은 일 예에 따른 피처 맵에 대한 맞춤 SEI 메시지의 신택스를 나타낸다.
도 37에서 도시된 feature_map_align는 피처 맵 맞춤 정보일 수 있다.
feature_map_align는 피처 맵에 대한 맞춤과 관련된 정보일 수 있다. feature_map_align는 fma_num_maps_width_minus1, fma_num_maps_height_minus1, fma_sorting_flag 및 fma_type 등을 포함할 수 있다.
fma_num_maps_width_minus1는 피처 프레임 내의 맞춰진 피처 맵들의 수평 방향의 개수(말하자면, 열들의 개수)를 나타내는 정보일 수 있다. 예를 들면, fma_num_maps_width_minus1는 피처 맵들의 개수에서 1이 감해진 값일 수 있다. 피처 맵들의 개수는 피처 프레임의 너비에서의 피처 맵들의 개수를 의미할 수 있다. 도 14를 참조하면, fma_num_maps_width_minus1는 'n1 - 1'일 수 있다.
fma_num_maps_height_minus1는 피처 프레임 내의 맞춰진 피처 맵들의 수직 방향의 개수(말하자면, 행들의 개수)를 나타내는 정보일 수 있다. 예를 들면, fma_num_maps_height_minus1는 피처 맵들의 개수에서 1이 감해진 값일 수 있다. 피처 맵들의 개수는 피처 프레임의 높이에서의 피처 맵들의 개수를 의미할 수 있다. 도 14를 참조하면, fma_num_maps_height_minus1는 'n2 - 1'일 수 있다.
fma_sorting_flag는 전술된 정렬 플래그일 수 있다. fma_sorting_flag는 피처 맵에 대하여 정렬이 수행되었는지 여부를 나타내는 정보일 수 있다. 피처 맵이 수행될 때 정렬이 수행된 경우, feature_map_align는 fma_num_sorted_frames 및 fma_pre_idx를 포함할 수 있다.
fma_num_sorted_frames는 정렬이 적용된 피처 프레임들의 개수를 나타내는 정보일 수있다.
fma_pre_idx[i][u][v]는 i+1 번째 피처 프래임 내의 u+1 열 v+1 행에 위치하는 피처 맵의 정렬이 적용되기 전의 인덱스를 나타내는 정보일 수 있다. i, u 및 v는 0에서 시작할 수 있다. 정렬 순서 정보는 fma_pre_idx[i][u][v]를 포함할 수 있다.
fma_align_type은 정렬된 피처 맵에 대한 맞춤 방법을 나타내는 정보일 수 있다.
도 38은 일 예에 따른 fma_align_type의 값들을 나타낸다.
fma_align_type의 값이 0인 것은 다채널 피처 맵들이 하나의 피처 프레임으로 구성된 것을 나타낼 수 있다.
fma_align_type의 값이 1인 것은 다채널 피처 맵들이 전술된 실시예들에 따라 다중 피처 프레임들로 구성된 것을 나타낼 수 있다.
다중 피처 프레임들이 구성된 경우, 여러 개의 다중 피처 프레임들이 특정 다채널 피처 맵들을 나타낼 수 있다. 이러한 경우, feature_map_align는 다중 피처 프레임들에 대한 fma_multi_channel_feature_map_idx를 포함할 수 있다.
다중 피처 프레임들에 대한 fma_multi_channel_feature_map_idx는 다중 피처 프레임들이 어떤 다채널 피처 맵들에 대응하는지를 나타내는 정보일 수 있다.
도 39는 일 실시예에 따른 복호화부의 동작을 나타낸다.
복호화부(320)는 압축해제 복호화 단계(321) 및 피처 프레임 복원 단계(322)를 수행할 수 있다.
비트스트림은 부호화된 정보 및 복원 정보를 포함할 수 있고, 부호화된 정보는 압축된 피처 프레임 정보 등을 포함할 수 있다. 복원 정보는 전술된 부호화에 관련된 정보들을 포함할 수 있다.
단게(321)에서, 복호화부(320)는 비트스트림의 압축된 피처 프레임 정보에 대한 압축해제를 수행함으로써 피처 프레임 정보를 생성할 수 있다. 여기에서, 피처 프레임 정보는 단계(131)에서 생성된 변환된 피처 프레임 정보에 대응할 수 있다. 말하자면, 피처 프레임 정보는 피처 프레임을 압축기에서 요구되는 압축 용 포맷으로 변환함으로써 생성된 정보일 수 있다.
압축된 피처 프레임 정보에 대한 압축해제는 일반적인 비디오 압축 코덱인 HEVC 및 VVC 등을 사용하여 수행될 수 있으며, 딥러닝 기반 영상 압축해제 방법을 사용하려 수행될 수 있다.
여기에서,단계(321)의 동작은 전술된 단계(132)의 동작의 역동작일 수 있다. 단계(132)에서 압축에 대해 설명된 내용은, 단계(321)의 압축해제에 대해서도 적용될 수 있다. 단계(132)에서의 입력 및 출력은 단계(321)에서는 출력 및 입력으로 간주될 수 있다.
단계(322)에서, 복호화부(320)는 피처 프레임 정보를 사용하여 피처 프레임을 복원할 수 있다.
복호화부(320)는 비트스트림의 복원 정보를 사용하여 피처 프레임을 복원함으로써 (복원된) 피쳐 프레임을 생성할 수 있다.
복원된 프레임은 단일 피처 프레임 또는 다중 피처 프레임일 수 있다.
복호화부(320)는 비트스트림의 복원 정보를 사용하여 단일 피처 프레임 및 다중 피처 프레임들 중 어느 것을 복원할 것인가를 결정할 수 있다.
복호화부(320)는 피처 맵의 가로 크기, 피처 맵의 세로 크기 및 피처 맵의 채널들의 개수에 기반하여 피처 맵을 사용하여 단일 피처 프레임 및 다중 피처 프레임들 중 어느 것을 복원할 것인가를 결정할 수 있다.
복호화부(320)는 피처 프레임 플래그를 사용하여 단일 피처 프레임 및 다중 피처 프레임들 중 어느 것을 생성할 것인가를 결정할 수 있다.
단계(322)의 피처 프레임의 복원은 단계(131)의 변환의 역동작일 수 있다. 단계(131)에서 변환에 대해 설명된 내용은 단계(322)의 복원에 대해서도 적제공될 수 있다.용될 수 있다. 단계(131)에서의 입력 및 출력은 단계(322)에서는 출력 및 입력으로 간주될 수 있다.
도 40은 일 실시예에 따른 피처 맵 복원부의 동작을 나타낸다.
피처 맵 복원부(330)는 피처 맵 복원 정렬 확인 단계(331), 피처 맵 복원 정렬 단계(332), 피처 프레임 분할 단계(333), 피처 맵 역양자화 단계(334) 및 딥러닝 네트워크 피처 맵 설정 단계(335)를 수행할 수 있다.
단계(331)에서, 피처 맵 복원부(330)는 부호화 장치(100)가 피처 프레임을 생성하는 과정에서 피처 맵에 대한 정렬이 사용되었는지 여부를 확인할 수 있다. 또는, 피처 맵 복원부(330)는 피처 프레임을 복원함에 있어서 피처 맵에 대하여 부호화 장치(100)에서 수행된 정렬에 대응하는 복원 정렬이 요구되는지 여부를 판단할 수 있다.
복원 정렬은 부호화 장치(100)에서 수행되는 정렬에 대한 역동작일 수 있다. 또는, 복원 정렬은 부호화 장치(100)에서 수행되는 정렬에 의한 재순서(reordering) 대한 역재순서(inverse-reordering)일 수 있다.
예를 들면, 피처 맵 복원부(330)는 피처 맵의 크기에 기반하여 피처 맵들에 대해 복원 정렬을 적용할 지 여부를 판단할 수 있다.
또는, 피처 맵 복원부(330)는 사용자의 통계적 경험에 따른 특정 규칙에 따라 피처 맵들에 대해 복원 정렬을 적용할 지 여부를 판단할 수 있다.
피처 맵 복원부(330)는 정렬 플래그를 사용하여 피처 프레임을 생성하는 과정에서 피처 맵에 대한 정렬이 사용되었는지 여부를 확인할 수 있고, 피처 프레임을 복원함에 있어서 정렬 플래그를 사용하여 피처 맵에 대하여 부호화 장치(100)에서 수행된 정렬에 대응하는 복원 정렬이 요구되는지 여부를 판단할 수 있다.
정렬 플래그가 피처 맵에 대한 정렬이 수행됨을 나타내는 경우(또는, 정렬 플래그가 피처 맵에 대하여 정렬에 대응하는 복원 정렬이 요구됨을 나타내는 경우), 피처 맵 복원부(330)는 피처 프레임에 대한 복원 정렬을 수행할 수 있고, 단계(332)가 수행될 수 있다.
정렬 플래그가 피처 맵에 대한 정렬이 수행되지 않았음 나타내는 경우(또는, 정렬 플래그가 피처 맵에 대한 복원 정렬이 필요하지 않음을 나타내는 경우), 피처 맵 복원부(330)는 피처 프레임에 대한 복원 정렬을 수행하지 않을 수 있고, 단계(333)가 수행될 수 있다.
단계(332)에서, 피처 맵 복원부(330)는 정렬 순서 정보를 사용하여 피처 프레임의 피처 맵을 원래의 순서로 복원할 수 있다.
여기에서, 피처 맵의 원래의 순서는 부호화 장치(100) 또는 피처 프레임 구성부(120)에 의해 피처 맵에 적용되었던 정렬의 이전의 피처 맵의 순서일 수 있다.
단계(333)에서, 피처 맵 복원부(330)는 피처 프레임을 분할하여 다채널 피처 맵들을 생성할 수 있다. 여기에서, 피처 프레임은 피처 맵에 대한 정렬이 사용되지 않고 생성된 피처 프레임 또는 단계(332)를 통해 생성된 복원 정렬이 적용된 피처 프레임일 수 있다.
여기에서, 피처 프레임은 다중 피처 프레임들일 수 있고, 다중 피처 프레임들의 각 프레임일 수 있다.
피처 맵 복원부(330)는 피처 프레임을 분할하여 다채널 피처 맵들을 생성함에 있어서 스캔 순서 정보를 사용할 수 있다.
스캔 순서 정보는 분할된 다채널 피처 맵들 간의 순서를 특정할 수 있다.
단계(333)에서, 피처 맵 복원부(330)는 피처 프레임으로부터 피처 맵을 분할할 수 있다. 피처 맵 복원부(330)는 부호화 장치(100) 또는 피처 프레임 구성부(120)에서 피처 프레임이 구성될 때의 피처 맵들 간의 순서와 동일한 순서로 피처 프레임으로부터 피처 맵들을 분할할 수 있다. 즉, 피처 맵 복원부(330)는 피처 맵들 간의 순서를 복원할 수 있다.
또는, 피처 맵 복원부(330)는 피처 프레임을 피처 맵들로 분할할 수 있다.
피처 맵 복원부(330)는 피처 프레임으로부터 피처 맵들을 분할함으로써 다채널 피처 맵을 생성할 수 있다.
여기에서, 다채널 피처 맵은 부호화 장치(100)의 피처 맵 추출부(110)에 의해 생성된 다채널 피처 맵에 대응할 수 있다.
단계(334)에서, 피처 맵 복원부(330)는 다채널 피처 맵에 대한 역양자화를 수행함으로써 역양자화된 다채널 피처 맵을 생성할 수 있다.
단계(334)에서의 역양자화는 단계(113)에서의 정규화의 역동작일 수 있다. 단계(113)에서 정규화에 대해 설명된 내용은, 단계(334)의 역양자화에 대해서도 적용될 수 있다. 단계(113)에서의 입력 및 출력은 단계(334)에서는 출력 및 입력으로 간주될 수 있다.
피처 맵 복원부(330)는 정수들로 구성된 정규화된 다채널 피처 맵을 양자화 크기에 따라 실수들로 구성된 (역양자화된) 다채널 피처 맵으로 변환할 수 있다.
실시예들에서, 피처 맵은 단계(334)에서 생성된 역양자화된 피처 맵을 의미할 수 있다.
단계(335)에서, 피처 맵 복원부(330)는 역양자화된 피처 맵을 사용하여 딥러닝 네트워크의 피처 맵을 설정할 수 있다.
단계(335)에서의 피처 맵의 설정은 단계(112)에서의 피처 맵의 추출에 대응할 수 있다. 단계(112)에서 피처 맵의 추출에 대해 설명된 내용은, 단계(335)에서의 피처 맵의 설정에 대해서도 적용될 수 있다. 단계(112)에서의 입력 및 출력은 단계(335)에서는 출력 및 입력으로 간주될 수 있다.
피처 맵 복원부(330)는 역양자화된 피처 맵을 딥러닝 네트워크의 대상 레이어에 설정할 수 있다. 여기에서, 대상 레이어는 단계(112)에서 피처 맵이 추출된 레이어일 수 있다. 말하자면, 역양자화된 피처 맵은 단계(112)에서 피처 맵이 추출된 레이어에 설정될 수 있다. 이러한 설정을 통해, 딥러닝 네트워크의 대상 레이어의 피처 맵이 복원될 수 있다.
전술된 절차들을 통해 딥러닝 네트워크의 피처 맵들이 초기화되면, 태스크 수행부(340)는 딥러닝 네트워크를 사용하여 태스크를 수행할 수 있다.
실시예들에 의하면, 딥러닝 네트워크에서 생성된 다량의 다채널 피처 맵 데이터을 사용하여 피처 프레임이 구성될 수 있고, 구성된 피처 프레임에 대한 압축이 수행될 수 있다.
실시예들에 따라, 딥러닝 네트워크를 저장, 학습 및 실행하기에는 부족한 메모리 및 연산 능력을 갖는 개인/클라이언트 디바이스도 압축된 피처 맵 데이터를 사용하여 딥러닝 네트워크를 활용할 수 있다.
실시예들에 의하면, 특정 레이어(Layer)에서 추출된 다채널 피처 맵만이 아닌 모든 레이어들의 다채널 피처 맵들에 대하여 동일한 방법으로 압축이 지원될 수 있고, 이러한 지원에 의해 분산 학습에서 활용될 수 있다.
상술된 실시예들에서, 특정된 대상에 특정된 처리를 적용함에 있어서, 특정된 조건이 요구될 수 있으며, 특정된 결정 하에 상기의 특정된 처리가 처리되는 것으로 설명된 경우, 특정된 코딩 파라미터에 기반하여 특정된 조건이 충족되는지 여부가 결정되거나, 특정된 코딩 파라미터에 기반하여 특정된 결정이 이루어지는 것으로 설명되었으면, 상기의 특정된 코딩 파라미터는 다른 코딩 파라미터로 대체될 수 있는 것으로 해석될 수 있다. 말하자면, 특정된 조건 또는 특정된 결정에 영향을 미치는 코딩 파라미터는 단지 예시적인 것으로 간주될 수 있으며, 명시된 코딩 파라미터 외에도 하나 이상의 다른 코딩 파라미터들의 결합이 상기의 명시된 코딩 파라미터의 역할을 수행하는 것으로 이해될 수 있다.
상술된 실시예들에서, 방법들은 일련의 단계 또는 유닛으로서 순서도를 기초로 설명되고 있으나, 본 발명은 단계들의 순서에 한정되는 것은 아니며, 어떤 단계는 상술한 바와 다른 단계와 다른 순서로 또는 동시에 발생할 수 있다. 또한, 당해 기술 분야에서 통상의 지식을 가진 자라면 순서도에 나타난 단계들이 배타적이지 않고, 다른 단계가 포함되거나, 순서도의 하나 또는 그 이상의 단계가 본 발명의 범위에 영향을 미치지 않고 삭제될 수 있음을 이해할 수 있을 것이다.
상술된 실시예들은 다양한 양태의 예시들을 포함한다. 다양한 양태들을 나타내기 위한 모든 가능한 조합이 기술될 수는 없지만, 해당 기술 분야의 통상의 지식을 가진 자는 명시적으로 기술된 조합 외에도 다른 조합이 가능함을 인식할 수 있을 것이다. 따라서, 본 발명은 이하의 특허청구범위 내에 속하는 모든 다른 교체, 수정 및 변경을 포함한다고 할 것이다.
이상 설명된 본 발명에 따른 실시예들은 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수도 있다.
컴퓨터 판독 가능한 기록 매체는 본 발명에 따른 실시예들에서 사용되는 정보를 포함할 수 있다. 예를 들면, 컴퓨터 판독 가능한 기록 매체는 비트스트림을 포함할 수 있고, 비트스트림은 본 발명에 따른 실시예들에서 설명된 정보를 포함할 수 있다.
비트스트림은 컴퓨터 실행 가능한(computer-executable) 코드 및/또는 프로그램을 포함할 수 있다. 컴퓨터 실행 가능한(computer-executable) 코드 및/또는 프로그램은 실시예들에서 설명된 정보들을 포함할 수 있으며, 실시예들에서 설명된 구문 요소들(syntax elements)을 포함할 수 있다. 말하자면, 실사예에서 설명된 정보들 및 구문 요소들은 비트스트림 내의 컴퓨터 실행 가능한 코드로 간주될 수 있으며, 비트스트림으로 표현된 컴퓨터 실행 가능한 코드 및/또는 프로그램의 적어도 일부로 간주될 수 있다.컴퓨터 판독 가능한 기록 매체는 비-일시적 컴퓨터 판독 가능한 매체(non-transitory computer-readable medium)를 포함할 수 있다.
컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 상기의 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상에서 본 발명이 구체적인 구성요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나, 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명이 상기의 실시예들에 한정되는 것은 아니며, 본 발명이 속하는 기술분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형을 꾀할 수 있다.
따라서, 본 발명의 사상은 상기의 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등하게 또는 등가적으로 변형된 모든 것들은 본 발명의 사상의 범주에 속한다고 할 것이다.

Claims (20)

  1. 피처 맵에 대한 피처 프레임을 구성하는 단계; 및
    피처 프레임에 대한 부호화를 수행함으로써 부호화된 정보를 생성하는 단계
    를 포함하는 부호화 방법.
  2. 제1항에 있어서,
    딥러닝 네트워크로부터 상기 피처 맵을 추출하는 단계
    를 더 포함하는 부호화 방법.
  3. 제2항에 있어서,
    딥러닝 네트워크의 레이어로부터 상기 피처 맵이 추출되고,
    피처 맵에 대한 정규화를 수행함으로써 정규화된 피처 맵이 생성되는 부호화 방법.
  4. 제1항에 있어서,
    상기 피처 프레임은 다중 피처 프레임들인 부호화 방법.
  5. 제4항에 있어서,
    상기 피처 맵의 가로 크기, 상기 피처 맵의 세로 크기 및 채널들의 개수에 기반하여 상기 피처 맵을 사용하여 단일 피처 프레밍 및 상기 다중 피처 프레임들 중 어느 것이 구성될 것인가가 결정되는 부호화 방법.
  6. 제4항에 있어서,
    상기 다중 피처 프레임들이 생성되기로 결정된 경우, 상기 피처 맵에 대한 정렬을 수행할지 여부가 결정되는 부호화 방법.
  7. 제6항에 있어서,
    상기 피처 맵의 크기에 기반하여 상기 정렬이 수행될지 여부가 결정되는 부호화 방법.
  8. 제6항에 있어서,
    상기 정렬은 피처 맵들의 평균 밝기들 또는 지역 밝기들을 기준으로 정렬되는 부호화 방법.
  9. 제6항에 있어서,
    상기 피처 맵들은 상기 피처 맵을 축소함으로써 생성된 축소된 피쳐 맵의 상기 평균 밝기를 기준으로 정렬되는 부호화 방법.
  10. 제6항에 있어서,
    상기 다중 피처 프레임들을 생성함에 있어서 정렬된 피처 맵들이 특정 순서에 따라 스캔되는 부호화 방법.
  11. 제4항에 있어서,
    상기 다중 피처 프레임들은 컨볼루션 신경망의 복수의 계층들의 각 계층에 대하여 독립적으로 구성되는 부호화 방법.
  12. 제1항에 있어서,
    상기 피처 프레임을 압축용 포맷으로 변환함으로써 변환된 피처 프레임 정보가 생성되고,
    비디오 압축 코덱 또는 딥러닝 기반 영상 압축 방법을 사용하여 상기 변환된 피처 프레임 정보에 대한 압축을 수행함으로써 압축된 피처 프레임 정보가 생성되는 부호화 방법.
  13. 부호화된 정보에 대한 복호화를 수행함으로써 피처 프레임을 복원하는 단계; 및
    상기 피처 프레임을 사용하여 피처 맵을 복원하는 단계
    를 포함하는 복호화 방법.
  14. 제13항에 있어서,
    상기 피처 프레임은 다중 피처 프레임들인 복호화 방법.
  15. 제13항에 있어서,
    상기 피처 프레임을 복원함에 있어서 상기 피처 맵에 대하여 대한 복원 정렬이 필요한지 여부가 판단되는 복호화 방법.
  16. 제13항에 있어서,
    상기 피처 프레임을 분할하여 피처 맵들이 생성되는 복호화 방법.
  17. 제16항에 있어서,
    상기 피처 맵들을 생성함에 있어서 스캔 순서 정보가 사용되고,
    상기 스캔 순서 정보는 상기 피처 맵들 간의 순서를 특정하는 복호화 방법.
  18. 제10항에 있어서,
    상기 부호화된 정보는 압축된 피처 프레임 정보를 포함하고,
    상기 압축된 피처 프레임 정보에 대한 압축해제를 수행함으로써 피처 프레임 정보가 생성되고,
    상기 피처 프레임 정보를 사용하여 상기 피처 프레임이 복원되는 복호화 방법.
  19. 제18항에 있어서,
    상기 압축해제는 비디오 압축 코덱 또는 딥러닝 기반 영상 압축해제 방법을 사용하여 수행되는 복호화 방법.
  20. 복호화를 위한 비트스트림을 저장하는 컴퓨터 판독 가능한 기록 매체에 있어서, 상기 비트스트림은,
    부호화된 정보
    를 포함하고,
    부호화된 정보에 대한 복호화를 수행함으로써 피처 프레임이 복원되고,
    상기 피처 프레임을 사용하여 피처 맵이 복원되는 컴퓨터 판독 가능한 기록매체.
KR1020220107125A 2021-08-27 2022-08-25 피처 맵 압축을 위한 방법, 장치 및 기록 매체 KR20230031797A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US17/896,958 US20230070216A1 (en) 2021-08-27 2022-08-26 Method, apparatus, and storage medium for compressing feature map

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR1020210114157 2021-08-27
KR20210114157 2021-08-27
KR1020210130172 2021-09-30
KR20210130172 2021-09-30

Publications (1)

Publication Number Publication Date
KR20230031797A true KR20230031797A (ko) 2023-03-07

Family

ID=85513170

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220107125A KR20230031797A (ko) 2021-08-27 2022-08-25 피처 맵 압축을 위한 방법, 장치 및 기록 매체

Country Status (1)

Country Link
KR (1) KR20230031797A (ko)

Similar Documents

Publication Publication Date Title
CN113424547B (zh) 点云属性编解码的方法和装置
US11190784B2 (en) Method for encoding/decoding image and device therefor
KR102301232B1 (ko) 다채널 특징맵 영상을 처리하는 방법 및 장치
US10986356B2 (en) Method for encoding/decoding image and device therefor
CN113455007B (zh) 帧间点云属性编解码的方法和装置
CN113454691A (zh) 自适应点云属性编解码的方法和装置
CN104641643A (zh) 在分层层级中信号编码、解码和重构期间残差数据的分解
JP2013517670A (ja) 大きいサイズの変換単位を用いた映像符号化、復号化方法及び装置
CN114424247A (zh) 用于点云编码的方法及装置
KR102269034B1 (ko) 화질 관련 ai 메타 데이터를 이용하는 장치 및 방법
US10972749B2 (en) Systems and methods for reconstructing frames
US11636626B2 (en) Apparatus and method of using AI metadata related to image quality
EP3343446A1 (en) Method and apparatus for encoding and decoding lists of pixels
CN113795870A (zh) 用于点云属性编解码的信道间预测和变换的技术和装置
Fan et al. Deep geometry post-processing for decompressed point clouds
CN115880381A (zh) 图像处理方法、图像处理装置、模型训练方法
KR20210070944A (ko) 픽셀-공간 예측을 이용하는 종단 간 압축을 위한 방법, 장치 및 기록 매체
US20230326086A1 (en) Systems and methods for image and video compression
KR20230031797A (ko) 피처 맵 압축을 위한 방법, 장치 및 기록 매체
US20220224914A1 (en) Parameter map for machine-learned video compression
US20230070216A1 (en) Method, apparatus, and storage medium for compressing feature map
US11259005B1 (en) Method for compressing light-field data
US20220245863A1 (en) Information processing device and method
CN111108747B (zh) 获得信号的时间样本的目标表示
KR101581131B1 (ko) 영상 정보를 전달하는 방법, 영상 부호기 및 영상 복호기