KR20240038779A - 인코딩 및 디코딩 방법, 및 장치 - Google Patents

인코딩 및 디코딩 방법, 및 장치 Download PDF

Info

Publication number
KR20240038779A
KR20240038779A KR1020247006406A KR20247006406A KR20240038779A KR 20240038779 A KR20240038779 A KR 20240038779A KR 1020247006406 A KR1020247006406 A KR 1020247006406A KR 20247006406 A KR20247006406 A KR 20247006406A KR 20240038779 A KR20240038779 A KR 20240038779A
Authority
KR
South Korea
Prior art keywords
feature map
resolution
neural network
picture
output
Prior art date
Application number
KR1020247006406A
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 KR20240038779A publication Critical patent/KR20240038779A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • 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/0464Convolutional networks [CNN, ConvNet]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression

Landscapes

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

Abstract

본 출원은 인코딩 및 디코딩 방법 및 장치를 제공한다. 본 출원의 디코딩 방법은: 제 1 피쳐 맵을 획득하도록 코드 스트림을 디코딩하는 단계 - 상기 제 1 피쳐 맵의 분해능은 원본 이미지의 분해능보다 작음 -; 및 재구성된 이미지를 획득하도록 제 1 신경망에 따라서 제 2 피쳐 맵을 재구성하는 단계를 포함하고, 제 2 피쳐 맵 및 재구성된 이미지의 분해능이 목표 분해능이며, 목표 분해능은 원본 이미지의 분해능보다 작고, 제 2 피쳐 맵은 제 1 피쳐 맵이거나 제 2 피쳐 맵은 제 2 신경망을 이용하여 제 1 피쳐 맵을 처리함으로써 획득되는 피쳐 맵이다. 본 출원은 재구성된 이미지를 획득하는 효율을 개선시킬 수 있고, 이를 통하여 원본 이미지의 썸네일이 디지털 비디오 애플리케이션에 의하여 디스플레이되는 속도를 개선한다.

Description

인코딩 및 디코딩 방법, 및 장치
본 출원은 2021 년 7 월 31 일에 중국 지식재산권국에 출원되고 발명의 명칭이 "ENCODING AND DECODING METHOD, AND APPARATUS"이며 그 전체 내용이 본 명세서에서 원용에 의해 통합되는 중국 특허 원 번호 제 202110877277.2에 대한 우선권을 주장한다.
본 출원의 실시형태들은 데이터 압축 기술의 분야에, 그리고, 특히 인코딩 및 디코딩 방법, 및 장치에 관한 것이다.
비디오 인코딩 및 디코딩(video encoding and decoding)은 디지털 비디오 애플리케이션, 예를 들어 브로드캐스트 디지털 텔레비전 상에서의 비디오 송신, 비디오 채팅, 및 비디오 화상회의와 같은 실시간 세션 애플리케이션, 인터넷, 앨범, 및 모바일 네트워크, 디지털 다기능 디스크(Digital Versatile Disc, DVD), 블루-레이 디스크, 비디오 콘텐츠 캡쳐 및 편집 시스템, 및 휴대용 카메라의 보안 애플리케이션에 광범위하게 적용된다.
비디오는 보통 많은 데이터량을 가진다. 제한된 대역폭 용량을 가지는 네트워크에서는, 다른 방식으로 비디오 데이터를 전송하거나 비디오 데이터를 송신하는 것이 어려울 수 있다. 그러므로, 비디오 데이터는 보통 현대의 원격 통신 네트워크 내에서 송신되기 이전에 압축될 필요가 있다. 제한된 메모리 리소스가 존재할 수 있기 때문에, 비디오가 저장 디바이스 내에 저장될 때에 비디오의 크기도 문제가 될 수 있다. 소스측에서, 송신 또는 저장되기 이전에 비디오 데이터를 인코딩하기 위하여 비디오 압축 디바이스의 소프트웨어 및/또는 하드웨어가 보통 사용되어, 디지털 비디오 데이터를 표현하기 위하여 요구되는 데이터량을 줄인다. 그러면, 압축된 비디오 데이터가 목적지측에서 비디오 압축해제 디바이스에 의하여 수신된다. 제한된 네트워크 리소스가 있고 더 높은 비디오 품질에 대한 요구 사항이 연속적으로 증가하는 경우, 압축 및 압축해제 기술이 개선될 필요가 있다. 개선된 기술은 픽쳐 품질에는 거의 영향을 주지 않으면서 압축률을 개선시킬 수 있다.
디지털 비디오 애플리케이션의 일부 동작 중에, 많은 양의 픽쳐들을 디스플레이 인터페이스 내에 디스플레이하기 위해서 원본 픽쳐의 썸네일이 디스플레이될 필요가 있다. 종래의 기술에서는, 원본 픽쳐의 수신된 비트스트림이 우선 디코딩되고 재구성되어 원본 픽쳐를 획득한다. 그러면, 원본 픽쳐의 분해능이 감소되어, 원본 픽쳐의 썸네일을 획득한다. 그러나, 원본 픽쳐의 썸네일을 획득하는 앞선 방식은 복잡하고 긴 시간 기간을 소모한다; 결과적으로, 디지털 비디오 애플리케이션이 원본 픽쳐의 썸네일을 디스플레이하는 속도가 영향받게 된다.
본 출원은 재구성된 픽쳐를 획득하는 효율을 개선시키고, 디지털 비디오 애플리케이션이 원본 픽쳐의 썸네일을 디스플레이하는 속도를 개선시키기 위한 인코딩 및 디코딩 방법, 및 장치를 제공한다.
제 1 양태에 따르면, 본 출원은 디코딩 방법을 제공한다. 이러한 방법은: 제 1 피쳐 맵을 획득하도록 비트스트림을 디코딩하는 단계 - 상기 제 1 피쳐 맵의 분해능은 원본 픽쳐의 분해능보다 낮음 -; 및 재구성된 픽쳐를 획득하도록 제 1 신경망에 기반하여 제 2 피쳐 맵을 재구성하는 단계를 포함하고, 상기 제 2 피쳐 맵의 분해능 및 상기 재구성된 픽쳐의 분해능 각각은 목표 분해능이며, 상기 목표 분해능은 상기 원본 픽쳐의 분해능보다 낮고, 상기 제 2 피쳐 맵은 상기 제 1 피쳐 맵이거나, 상기 제 2 피쳐 맵은 제 2 신경망에 기반하여 상기 제 1 피쳐 맵을 처리함으로써 획득된 피쳐 맵이다.
피쳐 맵은 합성곱 신경망 내의 합성곱 계층(convolutional layer), 활성화 계층(activation layer), 풀링 계층(pooling layer), 및 배치 정규화 계층(batch normalization layer)과 같은 층들에 의해 출력되는 3-차원 데이터이고, 피쳐 맵의 세 차원들은 각각 폭(Width), 높이(Height), 및 채널(Channel)이라고 불린다. 피쳐 맵은 M x W x H일 수 있고, 이것은 피쳐 맵이 M 개의 채널이고 그 분해능이 W x H인 2-차원 피쳐 맵을 포함한다는 것을 표시한다. 본 명세서에서, W는 폭을 나타내고, H는 높이를 나타낸다.
제 1 신경망에 의해 출력된 재구성된 픽쳐의 분해능 및 입력 제 2 피쳐 맵의 분해능은 동일하고, 각각은 목표 분해능이다. 제 2 피쳐 맵이 제 1 피쳐 맵인 경우, 목표 분해능은 제 1 피쳐 맵의 분해능과 동일하다. 제 2 피쳐 맵이 제 2 신경망에 기반하여 상기 제 1 피쳐 맵을 처리함으로써 획득된 피쳐 맵인 경우, 목표 분해능은 제 1 피쳐 맵의 분해능보다 높다.
제 2 신경망은 제 1 피쳐 맵을 처리하여 제 2 피쳐 맵을 획득하도록 구성된다. 이러한 처리는 합성곱 연산(deconvolution operation) 및/또는 역합성곱 연산(deconvolution operation)을 포함할 수 있다. 더 나아가, 이러한 처리는 정규화 연산(normalization operation)을 더 포함할 수 있다.
디코딩 방법에서, 디코더는 비트스트림을 디코딩하여 제 1 피쳐 맵을 획득하고, 그 후에 제 1 신경망에 기반하여 제 2 피쳐 맵을 재구성함으로써 재구성된 픽쳐를 획득한다. 제 2 피쳐 맵의 분해능 및 재구성된 픽쳐의 분해능은 각각 목표 분해능이고, 목표 분해능은 원본 픽쳐의 분해능보다 낮다. 제 2 피쳐 맵은 제 1 피쳐 맵을 포함하거나, 제 2 피쳐 맵은 제 2 신경망에 기반하여 원본 픽쳐의 피쳐 맵을 처리함으로써 획득된 피쳐 맵이다. 디코딩 및 재구성을 통하여 획득된 재구성된 픽쳐의 분해능은 원본 픽쳐의 분해능보다 낮다. 재구성된 픽쳐를 획득하는 프로세스 중에, 원본 픽쳐는 재구성을 통하여 최초로 획득될 필요가 없다; 그 대신에, 재구성된 픽쳐는 직접적으로 획득되어 재구성된 픽쳐를 획득하는 효율을 개선하고, 디지털 비디오 애플리케이션이 원본 픽쳐의 썸네일을 디스플레이하는 속도를 개선한다.
일 예에서 하나의 제 1 신경망이 존재하는 경우, 제 2 신경망은 적용될 필요가 없고, 제 1 신경망은 독립적으로 존재할 수 있다. 이러한 경우에는 제 2 피쳐 맵이 제 1 피쳐 맵이 되고, 제 1 신경망은 하나의 분해능만을 가지는 재구성된 픽쳐만을 출력할 수 있으며, 분해능은 제 1 피쳐 맵의 분해능이다.
다른 예에서, 제 1 신경망은 제 2 신경망의 입력단에 연결되고 및/또는 하나 이상의 출력 노드에 연결될 수 있다. 이러한 경우에, 제 2 피쳐 맵은 제 1 피쳐 맵 또는 제 2 신경망에 기반하여 제 1 피쳐 맵을 처리함으로써 획득된 피쳐 맵이고, 제 1 신경망은 하나 이상의 분해능을 가지는 재구성된 픽쳐를 출력할 수 있다.
복수 개의 제 1 신경망이 존재하는 경우, 제 2 신경망의 입력단 및/또는 각각의 출력 노드는 제 1 신경망에 연결된다. 이러한 경우에, 제 2 피쳐 맵은 제 1 피쳐 맵 또는 제 2 신경망에 기반하여 제 1 피쳐 맵을 처리함으로써 획득된 피쳐 맵이고, 제 1 신경망은 복수 개의 분해능을 가지는 재구성된 픽쳐를 출력할 수 있다.
가능한 구현형태에서, 제 2 피쳐 맵이 상기 제 2 신경망에 기반하여 상기 제 1 피쳐 맵을 처리함으로써 획득된 피쳐 맵인 경우, 상기 제 2 신경망은 하나 이상의 출력 노드 및 복수 개의 합성곱 계층(convolutional layer)을 포함하고, 상기 출력 노드는 상기 제 1 합성곱 계층의 출력단 및 최종 합성곱 계층의 입력단 사이에 위치되며, 상기 출력 노드는 상기 제 1 신경망의 입력단에 연결되고, 상기 방법은: 상기 제 2 신경망의 목표 출력 노드에 의해 출력된 제 2 피쳐 맵을 획득하도록, 상기 제 1 피쳐 맵을 상기 제 2 신경망에 입력하는 단계 - 상기 목표 출력 노드는 상기 하나 이상의 출력 노드에 속함 -를 더 포함하며, 상기 재구성된 픽쳐를 획득하도록 제 1 신경망에 기반하여 제 2 피쳐 맵을 재구성하는 단계는: 상기 제 1 신경망에 의해 출력된 재구성된 픽쳐를 획득하도록, 상기 목표 출력 노드에 의해 출력된 제 2 피쳐 맵을 상기 제 1 신경망에 입력하는 것을 포함한다.
제 2 신경망은 종래의 기술에서 인코딩 및 디코딩을 위해서 사용되는 네트워크 내의 현존하는 신경망이고, 원본 분해능을 가지는 재구성된 픽쳐를 생성하기 위해서 사용된다. 출력 노드는 제 2 신경망의 상이한 위치에 배치되고, 복수 개의 목표 분해능을 가지는 재구성된 픽쳐들이 출력 노드 및 존재하는 제 2 신경망을 사용함으로써 생성될 수 있다. 이러한 프로세스에서, 제 2 신경망은 제 1 피쳐 맵을 처리하기 위하여 사용된다. 상이한 목표 분해능을 가지는 재구성된 픽쳐를 생성하는 프로세스에서, 모든 출력 노드는 제 2 신경망 내의 계층을 공유한다. 이러한 방식으로, 재구성된 픽쳐를 생성하기 위하여 사용되는 신경망(제 1 신경망 및 제 2 신경망을 포함함)의 크기가 감소될 수 있고, 디코더의 공간이고 재구성된 픽쳐를 생성하기 위하여 사용되는 신경망에 의해서 점유되는 저장 공간이 감소되어, 디코더 내에서 재구성된 픽쳐를 생성하기 위하여 사용되는 신경망의 실행 오버헤드 및 실행 복잡도가 감소된다.
가능한 구현형태에서, 하나의 제 1 신경망이 존재하는 경우, 목표 출력 노드에 의해 출력된 제 2 피쳐 맵이 네트워크에 직접적으로 입력되어, 신경망에 의해 출력되는 재구성된 픽쳐를 획득한다. 복수 개의 제 1 신경망이 존재하는 경우, 상기 제 1 신경망에 의해 출력된 재구성된 픽쳐를 획득하도록, 상기 목표 출력 노드에 의해 출력된 제 2 피쳐 맵을 상기 제 1 신경망에 입력하는 것은: 상기 목표 출력 노드에 연결된 제 1 신경망에 의해 출력된 재구성된 픽쳐를 획득하도록, 상기 제 2 피쳐 맵을 상기 목표 출력 노드에 연결된 제 1 신경망에 입력하는 것을 포함한다.
가능한 구현형태에서, 복수 개의 목표 분해능 및 복수 개의 목표 출력 노드가 존재하는 경우, 상기 제 2 신경망의 목표 출력 노드에 의해 출력된 제 2 피쳐 맵을 획득하도록, 상기 제 1 피쳐 맵을 상기 제 2 신경망에 입력하는 단계는: 복수 개의 분해능을 가지고 상기 제 2 신경망의 복수 개의 목표 출력 노드에 의해 출력되는 제 2 피쳐 맵을 획득하도록, 상기 제 1 피쳐 맵을 상기 제 2 신경망에 입력하는 것을 포함하고, 상기 제 1 신경망에 의해 출력된 재구성된 픽쳐를 획득하도록, 상기 목표 출력 노드에 의해 출력된 제 2 피쳐 맵을 상기 제 1 신경망에 입력하는 것은: 복수 개의 분해능을 가지고 상기 복수 개의 목표 출력 노드에 각각 연결된 제 1 신경망에 의해 출력되는 재구성된 픽쳐를 획득하도록, 상기 각각의 목표 출력 노드에 의해 출력된 제 2 피쳐 맵을 상기 목표 출력 노드에 연결된 제 1 신경망에 입력하는 것을 포함한다.
출력 노드는 제 2 피쳐 맵들을 병렬로 또는 직렬로 출력할 수 있다. 제 2 피쳐 맵들이 병렬로 출력되는 경우, 재구성된 픽쳐를 획득하는 효율이 개선될 수 있다. 제 2 피쳐 맵들이 직렬로 출력되는 경우, 출력 노드에 의해 출력된 제 2 피쳐 맵들이 공유될 수 있다. 이러한 방식으로, 제 2 신경망의 연산 시간의 양이 감소될 수 있고, 제 2 신경망의 연산 오버헤드가 더 감소된다.
가능한 구현형태에서, 상기 제 2 신경망이 복수 개의 출력 노드를 포함하는 경우, 각각의 출력 노드는 하나의 출력 분해능에 대응하고, 상기 방법은: 목표 분해능을 결정하는 단계; 및 그 출력 분해능이 목표 분해능인 출력 노드가 목표 출력 노드라고 결정하는 단계를 더 포함한다.
목표 분해능은 디코더에 의하여 결정될 수 있고, 또는 디코더 외부에 의해서 결정될 수 있으며, 예를 들어 디코더 또는 인코더의 외부 애플리케이션 계층에 의하여 결정될 수 있다. 외부 애플리케이션 계층에 대해서는,디지털 비디오 애플리케이션, 예를 들어 비디오 플레이어, 앨범, 또는 웹페이지를 참조한다.
예를 들어, 목표 분해능은 썸네일의 분해능에 기반하여 결정될 수 있다. 예를 들어, 제 1 신경망에 의하여 출력될 수 있는 후보 분해능들 안에 있고 썸네일의 분해능에 가장 가까운 분해능이 목표 분해능으로 결정된다. 다른 예를 들자면, 목표 분해능은 각각의 후보 분해능을 가지는 재구성된 픽쳐를 획득하는 프로세스의 복잡도 및/또는 전력 소모 제약에 기반하여 결정될 수 있다.
가능한 구현형태에서, 제 1 신경망은 적어도 하나의 합성곱 계층을 포함하고, 상기 적어도 하나의 합성곱 계층의 합성곱 스트라이드(convolution stride)는 1이다.
가능한 구현형태에서, 상기 비트스트림은 M1 개의 채널들의 2-차원 피쳐 맵에 대응하고, 상기 제 1 피쳐 맵을 획득하도록 비트스트림을 디코딩하는 단계는: 상기 제 1 피쳐 맵을 획득하도록 상기 M1 개의 채널 내의 M2 개의 채널들의 2-차원 피쳐 맵에 대응하는 비트스트림을 디코딩하는 것을 포함하며, M2<M1이고, 상기 제 1 피쳐 맵은 상기 M2 개의 채널들의 2-차원 피쳐 맵을 포함한다.
디코더는 M1 개의 채널 내의 처음 M2 개의 채널의 2-차원 피쳐 맵에 대응하는 비트스트림을 디코딩할 수 있다. 이러한 방식으로, M2 개의 채널들의 2-차원 피쳐 맵에 대응하는 비트스트림이 디코딩된 이후에 후속 재구성 프로시저가 실행될 수 있고, 전체 비트스트림이 디코딩된 이후에 후속 재구성 프로시저를 실행할 필요가 없어서, 제 3 피쳐 맵을 획득하는 것의 효율을 개선시키고, 재구성된 픽쳐를 획득하는 것의 효율을 개선시킨다.
가능한 구현형태에서, 상기 방법은: 제 1 픽쳐를 획득하도록 상기 재구성된 픽쳐에 업샘플링 처리를 수행하는 단계를 더 포함하고, 상기 제 1 픽쳐의 분해능은 상기 원본 픽쳐의 분해능과 동일하다.
예를 들어, 업샘플링 처리는 이중선형 보간 업샘플링(bilinear interpolation upsampling), 또는 이웃하는 위치에 픽셀 값을 직접적으로 채움으로써 수행되는 업샘플링, 또는 그 스트라이드가 1보다 큰 합성곱 계층에서 역합성곱 연산을 수행함으로써 수행되는 업샘플링을 포함할 수 있다.
전체 비트스트림을 디코딩함으로써 획득되는 피쳐 맵이 재구성되면, 원본 분해능을 가지는 재구성된 픽쳐를 생성하기 위하여, 원본 분해능을 가지는 픽쳐의 분해능은 높고, 생성 프로세스는 긴 시간 기간을 소모한다. 이것이 디지털 비디오 애플리케이션이 원본 분해능을 가지는 픽쳐를 디스플레이하는 속도에 영향을 주고, 사용자가 원본 분해능을 가지는 픽쳐를 브라우징할 때에 프레임 멈춤(frame freezing)이 발생한다. 본 출원의 이러한 실시형태에서는, 재구성된 픽쳐를 획득하는 프로세스 중에 비트스트림 중 부분적인 비트스트림만이 디코딩되어, 재구성된 픽쳐의 데이터량이 작아지고 재구성된 픽쳐를 획득하는 것의 효율이 높아진다. 이러한 방식으로, 제 1 픽쳐가 재구성된 픽쳐에 기반하여 획득되는 경우, 제 1 픽쳐를 획득하는 것의 효율이 개선되어, 제 1 픽쳐를 획득하는 프로세스 중에 소모되는 시간을 감소시키고, 디지털 비디오 애플리케이션이 원본 분해능을 가지는 픽쳐를 디스플레이하는 속도를 개선한다.
전술된 구현형태를 참조하면, 상기 비트스트림은 최초 피쳐 맵의 비트스트림이고, 상기 최초 피쳐 맵은 상기 원본 픽쳐에 피쳐 추출(feature extraction)을 수행함으로써 획득되며, 상기 방법은: 제 3 피쳐 맵을 획득하도록 상기 M1 개의 채널 내의 M2 개의 채널이 아닌 채널의 2-차원 피쳐 맵에 대응하는 비트스트림을 디코딩하는 단계 - 상기 제 3 피쳐 맵은 M1-M2 개의 채널의 2-차원 피쳐 맵을 포함함 -; 및 제 2 픽쳐를 획득하도록 상기 제 2 신경망에 기반하여 상기 제 1 피쳐 맵 및 제 3 피쳐 맵을 처리하는 단계 - 상기 제 2 픽쳐의 분해능은 상기 원본 픽쳐의 분해능과 동일함 -를 더 포함한다.
제 2 픽쳐는 제 1 피쳐 맵 및 제 3 피쳐 맵이 재구성된 이후에 생성되고, 제 2 픽쳐의 데이터량은 제 1 픽쳐의 데이터량보다 크며, 제 2 픽쳐의 픽쳐 품질은 제 1 픽쳐의 픽쳐 품질보다 높다. 제 2 픽쳐의 재구성 프로세스가 긴 시간 기간을 소모하기 때문에, 저품질의 제 1 픽쳐가 우선 디스플레이를 위하여 신속하게 생성되고, 고품질의 제 2 픽쳐가 재구성을 통하여 획득된다. 이러한 방식으로, 디지털 비디오 애플리케이션이 원본 분해능을 가지는 픽쳐를 디스플레이할 때에 프레임 멈춤이 생기지 않고, 원본 분해능을 가지는 픽쳐의 디스플레이 효과가 개선된다.
가능한 구현형태에서, 상기 제 2 피쳐 맵은 복수 개의 채널들의 2-차원 피쳐 맵을 포함하고, 상기 재구성된 픽쳐를 획득하도록 제 1 신경망에 기반하여 제 2 피쳐 맵을 재구성하는 단계 이전에, 상기 방법은: 상기 제 2 피쳐 맵에 채널 감축 처리(channel reduction processing)를 수행하는 단계를 더 포함하며, 상기 재구성된 픽쳐를 획득하도록 제 1 신경망에 기반하여 제 2 피쳐 맵을 재구성하는 단계는: 상기 재구성된 픽쳐를 획득하도록, 상기 제 1 신경망에 기반하여, 채널 감축 처리를 통하여 획득된 제 2 피쳐 맵을 재구성하는 것을 포함한다.
가능한 구현형태에서, 상기 제 1 피쳐 맵은 복수 개의 채널들의 2-차원 피쳐 맵을 포함하고, 상기 방법은: 상기 제 1 피쳐 맵에 채널 감축 처리를 수행하는 상기 제 1 신경망에 기반하여, 채널 감축 처리를 통하여 획득된 제 2 피쳐 맵을 재구성하는 것을 더 포함하며, 상기 제 2 피쳐 맵은 채널 감축 처리를 통하여 획득된 제 1 피쳐 맵이거나, 상기 제 2 피쳐 맵은, 채널 감축 처리를 통하여 획득된 제 1 피쳐 맵을 상기 제 2 신경망에 기반하여 처리함으로써 획득되는 피쳐 맵이다.
채널 감축 처리가 제 2 피쳐 맵 및/또는 제 1 피쳐 맵에 수행되어, 후속 재구성 프로세스의 복잡도 및 재구성 프로세스의 효율을 감소시킨다.
제 2 양태에 따르면, 본 출원은 디코딩 방법으로서, 제 1 피쳐 맵을 획득하도록 비트스트림을 디코딩하는 단계; 및 제 1 신경망에 기반하여, 제 1 분해능을 가지는 제 2 피쳐 맵을 재구성하여 제 2 분해능을 가지는 재구성된 픽쳐를 획득하는 단계를 포함하고, 제 2 분해능은 제 1 분해능과 다르고, 제 2 분해능이 원본 픽쳐의 분해능보다 낮으며, 제 2 피쳐 맵이 제 1 피쳐 맵을 포함하거나, 제 2 피쳐 맵이 제 2 신경망에 기반하여 제 1 피쳐 맵을 처리함으로써 획득된 피쳐 맵인, 디코딩 방법을 제공한다.
제 1 신경망에 의해 출력되는 재구성된 픽쳐의 분해능 및 입력 제 2 피쳐 맵의 분해능은 다르다. 제 2 신경망에 의해 출력될 수 있는 복수 개의 분해능의 값들이 고정되기 때문에, 제 2 신경망의 하나 이상의 출력 노드에 연결된 제 1 신경망에 의해 출력되는 분해능의 값이 고정된다. 이러한 방법에서, 제 1 신경망은 입력 피쳐 맵의 분해능을 변경하는 기능을 더 가진다. 이러한 방식으로, 다양한 값을 가지는 분해능이 상이한 구조의 제 1 신경망에 기반하여 출력될 수 있다. 그러면 디코더 내에서 재구성된 픽쳐를 생성하기 위하여 사용되는 신경망의 실행 오버헤드 및 실행 복잡도가 감소되고, 재구성된 픽쳐를 생성하는 유연성이 개선된다.
제 3 양태에 따르면, 본 출원은 인코딩 방법을 제공한다. 이러한 방법은: 최초 피쳐 맵을 획득하도록 원본 픽쳐 상에 피쳐 추출을 수행하는 단계 - 상기 최초 피쳐 맵은 복수 개의 채널들의 2-차원 피쳐 맵을 포함하고, 상기 최초 피쳐 맵의 분해능은 상기 원본 픽쳐의 분해능보다 낮음 -; 및 비트스트림을 획득하도록, 인코딩될 피쳐 맵(to-be-encoded feature map)을 인코딩하는 단계를 포함하고, 상기 인코딩될 피쳐 맵은 최초 피쳐 맵이거나, 상기 최초 피쳐 맵 내의 일부 채널들의 2-차원 피쳐 맵이다.
인코딩될 피쳐 맵이 최초 피쳐 맵 내의 일부 채널의 2-차원 피쳐 맵을 포함하는 경우, 후속하여 인코딩된 비트스트림의 데이터량이 감소될 수 있고, 비트스트림을 디코더측으로 송신하는 통신 오버헤드가 감소될 수 있다.
제 4 양태에 따르면, 본 출원은 디코딩 장치를 제공한다. 디코딩 장치는: 제 1 피쳐 맵을 획득하도록 비트스트림을 디코딩하도록 구성된 처리 모듈 - 상기 제 1 피쳐 맵의 분해능은 원본 픽쳐의 분해능보다 낮음 -; 및 재구성된 픽쳐를 획득하도록 제 1 신경망에 기반하여 제 2 피쳐 맵을 재구성하도록 구성된 재구성 모듈을 포함하고, 상기 제 2 피쳐 맵의 분해능 및 상기 재구성된 픽쳐의 분해능 각각은 목표 분해능이고, 상기 목표 분해능은 상기 원본 픽쳐의 분해능보다 낮으며, 상기 제 2 피쳐 맵은 상기 제 1 피쳐 맵이거나, 상기 제 2 피쳐 맵은 제 2 신경망에 기반하여 상기 제 1 피쳐 맵을 처리함으로써 획득된 피쳐 맵이다.
가능한 구현형태에서, 제 2 피쳐 맵이 상기 제 2 신경망에 기반하여 상기 제 1 피쳐 맵을 처리함으로써 획득된 피쳐 맵인 경우, 상기 제 2 신경망은 하나 이상의 출력 노드 및 복수 개의 합성곱 계층(convolutional layer)을 포함하고, 상기 출력 노드는 상기 제 1 합성곱 계층의 출력단 및 최종 합성곱 계층의 입력단 사이에 위치되며, 상기 출력 노드는 상기 제 1 신경망의 입력단에 연결되고, 재구성 모듈은 제 2 신경망의 목표 출력 노드에 의해 출력된 제 2 피쳐 맵을 획득하도록 상기 제 1 피쳐 맵을 상기 제 2 신경망에 입력하도록 더 구성되며, 상기 목표 출력 노드는 하나 이상의 출력 노드에 속하고; 재구성 모듈은 특히, 제 1 신경망에 의해 출력된 재구성된 픽쳐를 획득하도록, 상기 목표 출력 노드에 의하여 출력되는 제 2 피쳐 맵을 상기 제 1 신경망에 입력하도록 구성된다.
가능한 구현형태에서, 복수 개의 제 1 신경망이 존재하는 경우, 재구성 모듈은 특히, 제 2 피쳐 맵을 상기 목표 출력 노드에 연결된 제 1 신경망에 입력하여, 목표 출력 노드에 연결된 제 1 신경망에 의해 출력된 재구성된 픽쳐를 획득하도록 구성된다.
가능한 구현형태에서, 복수 개의 목표 분해능 및 복수 개의 목표 출력 노드가 존재하는 경우, 재구성 모듈은 특히: 제 1 피쳐 맵을 제 2 신경망에 입력하여, 복수 개의 분해능을 가지고 상기 제 2 신경망의 복수 개의 목표 출력 노드에 의해 출력되는 제 2 피쳐 맵을 획득하고; 상기 각각의 목표 출력 노드에 의해 출력된 제 2 피쳐 맵을 상기 목표 출력 노드에 연결된 제 1 신경망에 입력하여, 복수 개의 분해능을 가지고 상기 복수 개의 목표 출력 노드에 각각 연결된 제 1 신경망에 의해 출력되는 재구성된 픽쳐를 획득하도록 구성된다.
가능한 구현형태에서, 상기 제 2 신경망이 복수 개의 출력 노드를 포함하는 경우, 각각의 출력 노드는 하나의 출력 분해능에 대응하고, 상기 재구성 모듈은: 목표 분해능을 결정하고; 그 출력 분해능이 목표 분해능인 출력 노드가 목표 출력 노드라고 결정하도록 더 구성된다.
가능한 구현형태에서, 제 1 신경망은 적어도 하나의 합성곱 계층을 포함하고, 상기 적어도 하나의 합성곱 계층의 합성곱 스트라이드(convolution stride)는 1이다.
가능한 구현형태에서, 상기 비트스트림은 M1 개의 채널들의 2-차원 피쳐 맵에 대응하고, 상기 처리 모듈은 특히, 상기 제 1 피쳐 맵을 획득하도록 상기 M1 개의 채널 내의 M2 개의 채널들의 2-차원 피쳐 맵에 대응하는 비트스트림을 디코딩하도록 구성되며, M2<M1이고, 상기 제 1 피쳐 맵은 상기 M2 개의 채널들의 2-차원 피쳐 맵을 포함한다.
가능한 구현형태에서, 상기 재구성 모듈은, 제 1 픽쳐를 획득하도록 상기 재구성된 픽쳐에 업샘플링 처리를 수행하도록 더 구성되고, 상기 제 1 픽쳐의 분해능은 상기 원본 픽쳐의 분해능과 동일하다.
가능한 구현형태에서, 상기 비트스트림은 최초 피쳐 맵의 비트스트림이고, 상기 최초 피쳐 맵은 상기 원본 픽쳐에 피쳐 추출(feature extraction)을 수행함으로써 획득되며, 상기 처리 모듈은 제 3 피쳐 맵을 획득하도록 상기 M1 개의 채널 내의 M2 개의 채널이 아닌 채널의 2-차원 피쳐 맵에 대응하는 비트스트림을 디코딩하게끔 더 구성되고, 상기 제 3 피쳐 맵은 M1-M2 개의 채널의 2-차원 피쳐 맵을 포함하며; 상기 재구성 모듈은 제 2 픽쳐를 획득하도록 상기 제 2 신경망에 기반하여 상기 제 1 피쳐 맵 및 제 3 피쳐 맵을 처리하게끔 더 구성되며, 상기 제 2 픽쳐의 분해능은 상기 원본 픽쳐의 분해능과 동일하다.
가능한 구현형태에서, 제 2 피쳐 맵은 복수 개의 채널들의 2-차원 피쳐 맵을 포함하고, 상기 처리 모듈은 상기 제 2 피쳐 맵에 채널 감축 처리를 수행하도록 더 구성되며; 상기 재구성 모듈은 특히, 상기 제 1 신경망에 기반하여, 채널 감축 처리를 통하여 획득된 제 2 피쳐 맵을 재구성하여, 재구성된 픽쳐를 획득하도록 더 구성된다.
가능한 구현형태에서, 제 1 피쳐 맵은 복수 개의 채널들의 2-차원 피쳐 맵을 포함하고, 재구성 모듈은 제 1 피쳐 맵에 채널 감축 처리를 수행하도록 더 구성된다. 제 2 피쳐 맵은 채널 감축 처리를 통하여 획득된 제 1 피쳐 맵이거나, 제 2 피쳐 맵은 제 2 신경망에 기반하여, 채널 감축 처리를 통하여 획득된 제 1 피쳐 맵을 처리함으로써 획득되는 피쳐 맵이다.
제 5 양태에 따르면, 본 출원은 인코딩 장치를 제공한다. 인코딩 장치는: 최초 피쳐 맵을 획득하도록 원본 픽쳐 상에 피쳐 추출을 수행하도록 구성된 처리 모듈 - 상기 최초 피쳐 맵은 복수 개의 채널들의 2-차원 피쳐 맵을 포함하고, 상기 최초 피쳐 맵의 분해능은 상기 원본 픽쳐의 분해능보다 낮음 -; 및 비트스트림을 획득하도록, 인코딩될 피쳐 맵(to-be-encoded feature map)을 인코딩하도록 구성된 인코딩 모듈을 포함하고, 상기 인코딩될 피쳐 맵은 최초 피쳐 맵이거나, 상기 최초 피쳐 맵 내의 일부 채널들의 2-차원 피쳐 맵이다.
제 6 양태에 따르면, 본 출원은 하나 이상의 프로세서; 및 하나 이상의 컴퓨터 프로그램 또는 명령을 저장하도록 구성된 저장소를 포함하는 전자 디바이스를 제공한다. 하나 이상의 컴퓨터 프로그램 또는 명령이 하나 이상의 프로세서에 의하여 실행될 때, 하나 이상의 프로세서는 제 1 양태 내지 제 3 양태 중 임의의 하나에 따른 방법을 구현하도록 이네이블된다.
제 7 양태에 따르면, 본 출원은 제 1 양태 내지 제 3 양태 중 임의의 하나에 따른 방법을 수행하도록 구성된, 프로세서를 포함하는 전자 디바이스를 제공한다.
제 8 양태에 따르면, 본 출원은 컴퓨터 프로그램 또는 명령을 포함하는 컴퓨터-판독가능 저장 매체를 제공한다. 컴퓨터 프로그램 또는 명령이 컴퓨터에서 실행될 때, 컴퓨터는 제 1 양태 내지 제 3 양태 중 임의의 하나에 따른 방법을 수행하도록 이네이블된다.
도 1은 본 출원의 일 실시형태에 따른 디코딩 시스템(10)의 예시적인 블록도이다;
도 2는 본 출원의 일 실시형태에 따른 딥러닝-기반 비디오 인코딩 및 디코딩 네트워크의 개략도이다;
도 3a 및 도 3b는 본 출원의 일 실시형태에 따른 딥러닝-기반 단대단(end-to-end) 비디오 인코딩 및 디코딩 네트워크 구조의 개략도이다;
도 4는 본 출원의 일 실시형태에 따른 인코딩 및 디코딩 방법의 프로세스(400)의 개략적인 흐름도이다;
도 5는 본 출원의 일 실시형태에 따른 제 1 신경망의 구조 및 제 2 신경망의 구조의 개략도이다;
도 6은 본 출원의 일 실시형태에 따른 제 1 신경망의 다른 구조 및 제 2 신경망의 다른 구조의 개략도이다;
도 7은 본 출원의 일 실시형태에 따른 채널 감축 프로시저의 개략도이다;
도 8은 본 출원의 일 실시형태에 따른 다른 인코딩 및 디코딩 방법의 프로세스(500)의 개략적인 흐름도이다;
도 9a 및 도 9b는 본 출원의 일 실시형태에 따른 또 다른 인코딩 및 디코딩 방법의 프로세스(600)의 개략적인 흐름도이다;
도 10은 본 출원의 일 실시형태에 따른 또 다른 인코딩 및 디코딩 방법의 프로세스(700)의 개략적인 흐름도이다;
도 11은 본 출원의 일 실시형태에 따른 신경망의 구조의 개략도이다;
도 12는 본 출원의 일 실시형태에 따른 다른 신경망의 구조의 개략도이다;
도 13은 본 출원의 일 실시형태에 따른 다른 채널 감축 프로시저의 개략도이다;
도 14는 본 출원의 일 실시형태에 따른 인코딩 및 디코딩 프로시저의 개략도이다;
도 15는 본 출원의 일 실시형태에 따른 피쳐 추출 모듈의 네트워크 구조의 개략도이다;
도 16은 본 출원의 일 실시형태에 따른 재구성 모듈의 네트워크 구조의 개략도이다;
도 17은 본 출원의 일 실시형태에 따른 디코더측에서의 프로시저의 개략도이다;
도 18은 본 출원의 일 실시형태에 따른 재구성 네트워크의 구조의 개략도이다;
도 19는 본 출원의 일 실시형태에 따른 다른 재구성 네트워크의 구조의 개략도이다;
도 20은 본 출원의 일 실시형태에 따른 채널 감축 프로시저의 개략도이다;
도 21은 본 출원의 일 실시형태에 따른 다른 채널 감축 프로시저의 개략도이다;
도 22는 본 출원의 일 실시형태에 따른 또 다른 채널 감축 프로시저의 개략도이다;
도 23은 본 출원의 일 실시형태에 따른 디코딩 장치의 블록도이다; 그리고
도 24는 본 출원의 일 실시형태에 따른 전자 디바이스의 구조의 개략도이다.
후속하는 내용은 본 출원의 실시형태들에서의 기술적 솔루션들을 본 출원의 실시형태들에서의 첨부 도면을 참조하여 명확하고 완전히 설명한다. 설명된 실시형태들은 본 출원의 전부는 아닌 일부 실시형태라는 것이 명백하다. 본 출원의 실시형태에 기초하여 창의적 노력이 없이 당업자에 의하여 획득되는 모든 다른 실시형태도 본 출원의 보호 범위 내에 속할 것이다.
본 명세서에서 용어 "및/또는"은 연관된 대상물들을 설명하기 위한 연관 관계만을 기술하고, 세 가지 관계들이 존재할 수 있다는 것을 나타낸다. 예를 들어, A 및/또는 B는 다음 세 가지 경우를 나타낼 수 있다: A만이 존재하는 것, A 및 B 양자 모두가 존재하는 것, 및 B만이 존재하는 것.
본 출원의 실시형태들의 상세한 설명과 청구항에서, "제 1" 및 "제 2"와 같은 용어는 상이한 대상들을 구별하기 위한 것이고, 대상들의 특정 순서를 표시하지 않는다. 예를 들어, 제 1 범위, 제 2 범위 등은 상이한 범위들을 구별하기 위해 사용되고, 범위들의 특정 순서를 기술하기 위해서 사용되지 않는다.
본 출원의 실시형태들에서, "일 예에서", "예", 또는 "예를 들어"와 같은 단어는 하나의 예, 예시, 또는 설명을 제공하는 것을 나타내기 위해서 사용된다. 본 출원의 실시형태들에서 "일 예에서", "예", 또는 "예를 들어"와 같이 기술된 임의의 실시형태 또는 디자인 솔루션은 다른 실시형태 또는 디자인 솔루션보다 더 선호되거나 더 많은 장점을 가지는 것으로 설명되어서는 안 된다. 정확하게 말하면, "일 예에서", "예", 또는 "예를 들어"와 같은 단어를 사용하는 것은 관련된 개념을 특정 방식으로 제공하기 위한 것이다.
본 출원의 실시형태들의 설명에서, 다르게 규정되지 않는 한, "적어도 하나"는 하나 이상을 의미하고, "복수"는 두 개 이상을 의미한다. 예를 들어, 복수 개의 처리 유닛은 두 개 이상의 처리 유닛이고, 복수 개의 시스템은 두 개 이상의 시스템이다.
본 출원의 일 실시형태는 인공 지능(artificial intelligence, AI)-기반 비디오 압축/압축해제 기술을 제공한다; 특히, 신경망-기반 비디오 압축/압축해제 기술을 제공한다; 그리고 특히 인코딩 및 디코딩 기술을 제공한다. 인코딩 및 디코딩 기술은 엔트로피 인코딩 및 디코딩 기술을 포함할 수 있다.
비디오 인코딩 및 디코딩은 두 가지 부분인 비디오 인코딩 및 비디오 디코딩을 포함한다. 비디오 인코딩은 소스측(또는 보통 인코더측 이라고 불림)에서 수행되고, 보통 원본 픽쳐를 처리하여 원본 픽쳐를 표현하기 위해 요구되는 데이터량을 감소시키는 것을 포함한다(더 효율적인 저장 및/또는 송신을 위함). 비디오 디코딩은 목적지측(또는 보통 디코더측 이라고 불림)에서 수행되고, 보통 인코더측에 대해 역처리를 수행하여 원본 픽쳐를 재구성하는 것을 포함한다. 실시형태들에서 비디오의 "인코딩 및 디코딩" 은 비디오의 "인코딩" 또는 "디코딩"이라고 이해되어야 한다.
비디오 인코딩 및 디코딩은 비디오 또는 비디오 시퀀스를 형성하는 픽쳐 시퀀스를 보통 처리하고 있다. 비디오 인코딩 및 디코딩 필드 내에서, 용어 "픽쳐(picture)", "프레임(frame)", 및 "이미지(image)"는 동의어로서 사용될 수 있다.
도 1은 본 출원의 일 실시형태에 따른 디코딩 시스템, 예를 들어 본 출원의 기술이 사용될 수 있는 비디오 디코딩 시스템(10)(또는 간단히 디코딩 시스템(10)이라고 불림)의 예시적인 블록도이다. 비디오 디코딩 시스템(10) 내의 비디오 인코더(20)(또는 간단히 인코더(20 이라고 불림) 및 비디오 디코더(30)(또는 간단히 디코더(30 이라고 불림)는 본 출원에서 설명된 다양한 예에 기반한 기술을 실행하도록 구성될 수 있는 디바이스를 나타낸다.
도 1에 도시된 바와 같이, 디코딩 시스템(10)은 소스 디바이스(12)를 포함한다. 소스 디바이스(12)는 인코딩된 픽쳐와 같은 인코딩된 픽쳐 데이터(21)를 인코딩된 픽쳐 데이터(21)를 디코딩하도록 구성된 목적지 디바이스(14)로 제공하도록 구성된다.
소스 디바이스(12)는 인코더(20)를 포함하고, 추가적으로, 즉 선택적으로, 픽쳐 소스(16), 전처리기(또는 전처리 유닛)(18), 예를 들어 픽쳐 전처리기, 및 통신 인터페이스(또는 통신 유닛)(22)를 포함할 수 있다.
픽쳐 소스(16)는 캡쳐 실세계 픽쳐 또는 기타 등등을 캡쳐하기 위한 임의의 타입의 픽쳐 캡쳐 디바이스, 및/또는 임의의 타입의 픽쳐 생성 디바이스, 예를 들어 컴퓨터-에니메이션 픽쳐를 생성하기 위한 컴퓨터-그래픽 프로세서, 또는 실세계 픽쳐, 컴퓨터-생성 픽쳐(예를 들어, 스크린 콘텐츠, 가상 현실(virtual reality, VR) 픽쳐) 및/또는 이들의 임의의 조합(예를 들어, 증강된 현실(augmented reality, AR) 픽쳐)을 획득 및/또는 제공하기 위한 임의의 타입의 디바이스를 포함할 수 있거나 그러한 디바이스일 수 있다. 픽쳐 소스는 전술된 픽쳐들 중 임의의 것을 저장하는 임의의 타입의 메모리 또는 저장소일 수 있다.
전처리기(또는 전처리 유닛)(18)에서 수행되는 처리와 구별하여, 픽쳐(또는 픽쳐 데이터)(17)는 원본 픽쳐(또는 원본 픽쳐 데이터)(17)라고도 불릴 수 있다.
전처리기(18)는: 원본 픽쳐 데이터(17)를 수신하고, 원본 픽쳐 데이터(17)를 전처리하여 전처리된 픽쳐(전처리된 픽쳐 데이터)(19)를 획득하도록 구성된다. 예를 들어, 전처리기(18)에 의해 수행되는 전처리는 트리밍, 색상 포맷 변환(예를 들어, RGB를 YCbCr로), 색상 그레이딩(grading), 또는 노이즈-제거(de-noising)를 포함할 수 있다. 전처리 유닛(18)이 선택적인 컴포넌트일 수 있다는 것이 이해될 수 있다.
비디오 인코더(또는 인코더)(20)는: 전처리된 픽쳐 데이터(19)를 수신하고, 인코딩된 픽쳐 데이터(21)를 제공하도록 구성된다.
소스 디바이스(12)의 통신 인터페이스(22)는: 인코딩된 픽쳐 데이터(21)를 수신하고, 인코딩된 픽쳐 데이터(21)(또는 임의의 다른 처리된 버전)를 통신 채널(13)을 통하여, 저장 또는 직접적인 재구성을 위하여 다른 디바이스, 예를 들어 목적지 디바이스(14) 또는 임의의 다른 디바이스로 전송하도록 구성될 수 있다.
소스 디바이스(12)는 저장소(도 1에는 미도시)를 더 포함할 수 있다. 저장소는 후속하는 데이터 중 적어도 하나의 타입을 저장하도록 구성될 수 있다: 원본 픽쳐 데이터(17), 전처리된 픽쳐(또는 전처리된 픽쳐 데이터)(19), 및 인코딩된 픽쳐 데이터(21).
목적지 디바이스(14)는 디코더(30)를 포함하고, 추가적으로, 즉 선택적으로, 통신 인터페이스(또는 통신 유닛)(28), 후처리기(또는 후처리 유닛)(32), 및 디스플레이 디바이스(34)를 포함할 수 있다.
목적지 디바이스(14)의 통신 인터페이스(28)는 인코딩된 픽쳐 데이터(21)(또는 임의의 다른 처리된 버전)를 소스 디바이스(12) 또는 임의의 다른 소스 디바이스, 예를 들어 저장 디바이스로부터 직접적으로 수신하도록 구성된다. 예를 들어, 저장 디바이스는 인코딩된 픽쳐 데이터 저장 디바이스이고, 인코딩된 픽쳐 데이터(21)를 디코더(30)로 제공한다.
통신 인터페이스(22) 및 통신 인터페이스(28)는 인코딩된 픽쳐 데이터(또는 인코딩된 데이터)(21)를 소스 디바이스(12) 및 목적지 디바이스(14) 사이의 직접 통신 링크, 예를 들어 지향 유선 또는 무선 연결을 통하여, 또는 임의의 타입의 네트워크, 예를 들어 유선 네트워크, 무선 네트워크, 또는 이들의 임의의 조합, 또는 임의의 타입의 사설 네트워크 및 공용 네트워크, 또는 임의의 타입의 이들의 조합을 통하여 전송 또는 수신하도록 구성될 수 있다.
예를 들어, 통신 인터페이스(22)는: 인코딩된 픽쳐 데이터(21)를 적합한 포맷, 예를 들어 패킷으로 패키징하고, 및/또는 인코딩된 픽쳐 데이터를 임의의 타입의 송신 인코딩 또는 처리를 통하여 처리하여 통신 링크 또는 통신 네트워크 상에서의 송신을 수행하도록 구성될 수 있다.
통신 인터페이스(28)는 통신 인터페이스(22)에 대응하고, 예를 들어: 송신 데이터를 수신하고, 송신 데이터를 임의의 타입의 대응하는 송신 디코딩 또는 처리 및/또는 디-패키징(de-packaging)을 통하여 처리하여, 인코딩된 픽쳐 데이터(21)를 획득하도록 구성될 수 있다.
통신 인터페이스(22) 및 통신 인터페이스(28) 양자 모두는, 도 1에서 통신 채널(13)에 대응하고 소스 디바이스(12)로부터 목적지 디바이스(14)를 가리키는 화살표에 의해 표시된 단방향성 통신 인터페이스, 또는 양방향성 통신 인터페이스로서 구성될 수 있고, 메시지 또는 기타 등등을 전송 및 수신하여 연결을 설립하고, 통신 링크 및/또는 데이터 송신, 예를 들어 인코딩된 픽쳐 데이터 송신에 관련된 임의의 다른 정보를 확인 및 교환하도록 구성될 수 있다.
비디오 디코더(또는 디코더)(30)는: 인코딩된 픽쳐 데이터(21)를 수신하고, 디코딩된 픽쳐 데이터(또는 재구성된 픽쳐 데이터)(31)(추가적인 설명이 도 3a 및 도 3b 또는 기타 등등에 기반하여 다음에 제공됨)를 제공하도록 구성된다.
후처리기(32)는 디코딩된 픽쳐 데이터(31)(또한 재구성된 픽쳐 데이터라고 불림), 예를 들어 디코딩된 픽쳐를 후처리하여 후처리된 픽쳐 데이터(33), 예를 들어 후처리된 픽쳐를 획득하도록 구성된다. 후처리 유닛(32)에 의해 수행되는 후처리는, 예를 들어 색상 포맷 변환(예를 들어, YCbCr로부터 RGB로), 색상 그레이딩, 트리밍, 또는 리샘플링, 또는 디스플레이 디바이스(34) 또는 기타 등등에 의핸 디스플레이를 위한 디코딩된 픽쳐 데이터(31)를 생성하기 위한 임의의 다른 처리를 포함할 수 있다.
디스플레이 디바이스(34)는 후처리된 픽쳐 데이터(33)를 수신하고, 이러한 픽쳐를 사용자 또는 시청자 또는 기타 등등에게 디스플레이하도록 구성된다. 디스플레이 디바이스(34)는 재구성된 픽쳐를 표현하기 위한 임의의 타입의 디스플레이, 예를 들어 통합형 또는 외부 디스플레이 또는 모니터일 수 있거나 이들을 포함할 수 있다. 예를 들어, 디스플레이는 액정 디스플레이(liquid crystal display, LCD), 유기 발광 다이오드(organic light emitting diode, OLED) 디스플레이, 플라즈마 디스플레이, 프로젝터, 마이크로 LED 디스플레이, 액정 온 실리콘(liquid crystal on silicon, LCoS), 디지털 광 프로세서(digital light processor, DLP), 또는 임의의 타입의 다른 디스플레이를 포함할 수 있다.
목적지 디바이스(14)는 저장소(도 1에는 미도시)를 더 포함할 수 있다. 저장소는 후속하는 데이터 중 적어도 하나의 타입을 저장하도록 구성될 수 있다: 인코딩된 픽쳐 데이터(21), 디코딩된 픽쳐 데이터(31), 및 후처리된 픽쳐 데이터(33).
디코딩 시스템(10)은 훈련 엔진(25)을 더 포함한다. 훈련 엔진(25)은 입력 픽쳐, 픽쳐 구역, 또는 픽쳐 블록을 처리하여, 입력 픽쳐, 픽쳐 구역, 또는 픽쳐 블록의 피쳐 맵을 획득하고, 피쳐 맵의 추정된 확률 분포를 획득하며, 피쳐 맵을 추정된 확률 분포에 기반하여 인코딩하게끔 인코더(20)를 훈련시키도록 구성된다.
훈련 엔진(25)은 비트스트림의 추정된 확률 분포를 획득하고, 비트스트림을 추정된 확률 분포에 기반하여 디코딩해서 피쳐 맵을 획득하며, 피쳐 맵을 재구성하여 재구성된 픽쳐를 획득하도록 디코더(30)를 훈련시키도록 더 구성된다.
비록 도 1 이 소스 디바이스(12) 및 목적지 디바이스(14)를 별개의 디바이스로 도시하지만, 디바이스 실시형태들은 대안적으로 소스 디바이스(12) 및 목적지 디바이스(14) 양자 모두를 포함하거나, 소스 디바이스(12) 및 목적지 디바이스(14) 양자 모두의 기능을 포함할 수 있고, 다르게 말하면, 소스 디바이스(12) 또는 대응하는 기능 및 목적지 디바이스(14) 또는 대응하는 기능 양자 모두를 포함할 수 있다. 이러한 실시형태에서, 소스 디바이스(12) 또는 대응하는 기능 및 목적지 디바이스(14) 또는 대응하는 기능은 동일한 하드웨어 및/또는 소프트웨어 또는 별개의 하드웨어 및/또는 소프트웨어 또는 이들의 임의의 조합을 사용함으로써 구현될 수 있다.
이러한 설명에 기반하여, 도 1에 도시되는 소스 디바이스(12) 및/또는 목적지 디바이스(14)의 상이한 유닛 또는 기능의 존재 및 이들의 (정확한) 분할은 실제 디바이스 및 애플리케이션에 기반하여 변할 수 있다. 이것은 당업자에게 명백하다.
최근 몇 년 동안에, 비디오 인코딩 및 디코딩 분야에 딥러닝(deep learning)을 적용하는 것이 점점 하나의 트렌드가 되고 있다. 딥러닝은 머신 러닝 알고리즘에 기반하여 상이한 추상화 레벨(abstract level)에서 다층 학습을 수행하는 것이다. 딥러닝-기반 비디오 인코딩 및 디코딩은 AI-기반 비디오 인코딩 및 디코딩 또는 신경망-기반 비디오 인코딩 및 디코딩이라고도 불릴 수 있다. 본 출원의 실시형태들이 신경망을 적용하는 것에 관련되기 때문에, 쉽게 이해하기 위해서 다음 내용은 본 출원의 실시형태들에서 사용되는 일부 명사들 또는 용어들을 우선 설명하고 기술한다. 명사 또는 용어들은 본 발명의 콘텐츠의 일부로서도 사용된다.
(1) 신경망(neural network, NN)
신경망은 머신 러닝 모델이다. 신경망은 신경 유닛을 포함할 수 있다. 신경 유닛은 x s 및 1의 절편(intercept)이 입력으로서 사용되는 연산 유닛일 수 있다. 연산 유닛의 출력은 다음과 같을 수 있다:
(1-1)
본 명세서에서, s=1, 2,..., 또는 n이고, n은 1보다 큰 자연수이며, W s x s 의 가중치이고, b는 신경 유닛의 바이어스이며, f는 신경 유닛의 활성화 함수(activation function)이고, 비선형 피쳐를 신경망에 도입하여 신경 유닛 내의를 출력 신호로 변환하기 위해 사용된다. 활성화 함수의 출력 신호는 다음 합성곱 계층의 입력으로서의 역할을 할 수 있다. 활성화 함수는 시그모이드 함수(sigmoid function)일 수 있다. 신경망은 많은 단일 신경 유닛들을 서로 연결함으로써 형성된 네트워크이다. 구체적으로 말하자면, 하나의 신경 유닛의 출력은 다른 신경 유닛의 입력일 수 있다. 각각의 신경 유닛의 입력은 로컬 수용 필드(local receptive field)의 피쳐를 추출하기 위하여 이전의 계층의 로컬 수용 필드에 연결된다. 로컬 수용 필드는 여러 신경 유닛을 포함하는 구역일 수 있다.
(2) 심층 신경망
심층 신경망(deep neural network, DNN)(다층 신경망이라고도 불림)은 복수 개의 은닉 계층을 포함하는 신경망이라고 이해될 수 있다. 본 명세서에서 "많은(many)"에 대한 특별한 메트릭 표준은 존재하지 않는다. DNN은 상이한 계층들의 위치에 기반하여 분할되고, DNN 내의 신경망은 다음 세 가지 타입으로 분할될 수 있다: 입력 계층, 은닉 계층, 및 출력 계층. 보통, 제 1 계층은 입력 계층이고, 최종 계층은 출력 계층이며, 중간 계층은 은닉 계층이다. 계층들은 완전 연결된다(fully connected). 구체적으로 말하자면, i번째 계층에 있는 임의의 뉴런은 반드시 (i+1)번째 계층에 있는 임의의 뉴런에 연결된다. DNN이 복잡해 보이지만, DNN은 각각의 계층에서의 작업에 관해서는 실제로 복잡하지 않고, 다음의 선형 관계식으로 간단하게 표현된다: . 본 명세서에서, 는 입력 벡터이고, 는 출력 벡터이며, 는 오프셋 벡터이고, 는 가중치 매트릭스(또한 계수라고 불림)이며, 는 활성화 함수이다. 각각의 계층에서는, 이러한 간단한 연산이 입력 벡터 에 수행되어, 출력 벡터 를 얻는다. DNN이 많은 양의 계층을 포함하기 때문에, 많은 양의 계수 및 많은 양의 오프셋 벡터 가 역시 존재한다. 이러한 파라미터들은 DNN에서 다음과 같이 규정된다: 계수 가 일 예로서 사용된다. 3-층 DNN에서, 두 번째 계층의 4번째 뉴런으로부터 3번째 계층의 2번째 뉴런까지의 선형 계수가 라고 규정된다는 것이 가정된다. 위첨자 3은 계수 에 대응하는 층의 번호를 나타내고, 아래첨자는 제 3 계층의 출력 인덱스 2 및 제 2 계층의 입력 인덱스 4에 대응한다. 결론적으로, (L-1)번째 계층의 k번째 뉴런으로부터 L번째 계층의 j번째 뉴런까지의 계수는 라고 규정된다. 입력 계층에 대해서는 파라미터 가 존재하지 않는다는 것에 주의해야 한다. 심층 신경망에서는, 은닉 계층이 많을수록 네트워크가 실세계에서의 복잡한 경우를 더 양호하게 기술할 수 있게 된다. 이론적으로, 더 많은 파라미터를 가진 모델은 더 높은 복잡도 및 더 큰 "용량(capacity)"을 가지고, 이러한 모델이 더 복잡한 학습 태스크를 완료할 수 있다는 것을 의미한다. 훈련 심층 신경망은 가중치 매트릭스를 학습하는 과정이고, 심층 신경망을 훈련시키는 최종 목적은 훈련된 심층 신경망의 모든 계층의 가중치 매트릭스(복수 개의 계층에 대한 벡터 W를 포함하는 가중치 매트릭스)를 획득하는 것이다.
(3) 합성곱 신경망(convolutional neural network, CNN)
합성곱 신경망은 딥러닝 아키텍처이고, 픽쳐 처리 및 분석 분야에서는 통상적인 방법이다. 합성곱 신경망은 적어도 하나의 합성곱 계층을 포함하고, 활성화 계층, 풀링 계층(Pooling Layer), 배치 정규화 계층(Batch Normalization Layer, BN), 또는 완전 연결 계층(Fully Connected Layer, FC)과 같은 다른 기능성 모듈을 더 포함할 수 있다. 활성화 계층은 정류된 선형 유닛(Rectified Linear Unit, ReLU), 파라메트릭 정류된 선형 유닛(Parametric Rectified Linear Unit, PReLU) 또는 기타 등등일 수 있다. 통상적인 합성곱 신경망은, 예를 들어 LeNet, AlexNet, 고분해능 테스트 시퀀스 네트워크(visual geometry group network, VGGNet), 심층 잔차 네트워크(Deep residual network, ResNet), Yolo(You Only Look Once), 고속 RCNN(Region with CNN feature), 마스크 RCNN(Mask RCNN), 및 ASLFeat를 포함한다.
기본적인 합성곱 신경망은 백본 네트워크(Backbone Network) 및 헤드 네트워크(Head Network), 예를 들어 사물 인식(Object Recognition)에서의 AlexNet을 포함할 수 있다. 목표 검출 분야에서 피쳐 피라미드 구조를 가지는 고속 RCNN과 같은 일부 복잡한 CNN은 여러 부분 네트워크인 백본 네트워크, 넥 네트워크(Neck Network), 및 헤드 네트워크를 포함한다.
백본 네트워크는 합성곱 신경망의 첫 번째 부분이고, 백본 네트워크의 기능은 입력 픽쳐로부터 복수 개의 스케일의 피쳐 맵을 추출하는 것이다. 백본 네트워크는 합성곱 계층, 풀링 계층, 활성화 계층 등을 보통 포함하고, 완전 연결 계층은 포함하지 않는다. 보통, 백본 네트워크에서는, 입력 픽쳐에 가까운 계층에 의해 출력된 피쳐 맵은 큰 분해능(폭 및 높이)을 가지지만, 적은 양의 채널을 가진다. 통상적인 백본 네트워크는 VGG-16, ResNet-50, ResNet-101 등을 포함한다. 백본 네트워크는 두 개의 부분인 백본 네트워크의 전면 부분 및 백본 네트워크의 코어 부분으로 하위분할될 수 있다. 백본 네트워크의 전면 부분, 즉 백본 네트워크 내에서 입력에 가까운 여러 계층은 스템(stem)이라고도 불린다. 스템은 적은 양의 합성곱 계층을 보통 포함하고, 풀링 계층과 같은 다른 형태의 계층을 더 포함할 수 있다. 스템은 입력 신호를 예비적으로 처리하여, 공간 분해능을 감소시키고 채널의 양을 증가시킨다. 예를 들어, ResNet-50 내의 입력측은 7x7 합성곱 커널을 가지는 합성곱 계층 및 최대 풀링 계층(Max Pool)을 포함하는 구조이다. 백본 네트워크의 전면 부분 이외의 부분은 백본 네트워크의 코어 부분이다. 백본 네트워크의 코어 부분은 많은 양의 합성곱 계층, 및 직렬로 연결되고 동일하거나 유사한 구조, 예를 들어 ResNet 내의 잔차 블록 구조(Resblock)를 가지는 일부 네트워크 서브모듈을 보통 포함한다.
넥 네트워크는 합성곱 신경망의 중간 부분이고, 넥 네트워크의 기능은 백본 네트워크에 의해 생성된 피쳐 맵을 추가적으로 통합하고 처리하여 새로운 피쳐 맵을 획득하는 것이다. 공통적인 넥 네트워크는, 예를 들어 피쳐 피라미드 네트워크(Feature Pyramid Networks, FPN)를 포함한다.
헤드 네트워크는 합성곱 신경망의 최종 부분이고, 헤드 네트워크의 기능은 피쳐 맵을 처리하여 신경망에 의해 출력되는 예측 결과를 획득하는 것이다. 공통 헤드 네트워크는 완전 연결 계층, 정규화된 지수 함수(Softmax) 모듈 등을 포함한다.
보틀넥 구조(Bottleneck Structure)는 다층 네트워크 구조이다. 네트워크의 입력 데이터는 우선 하나 이상의 신경망 계층을 통과하여 중간 데이터를 획득하고, 그 후에 중간 데이터가 하나 이상의 신경망 계층을 통과하여 출력 데이터를 획득한다. 중간 데이터의 데이터량(즉, 채널의 폭, 높이, 및 양의 곱)은 입력 데이터의 양 및 출력 데이터의 양보다 적다.
피쳐 맵은 합성곱 신경망 내의 합성곱 계층(convolutional layer), 활성화 계층(activation layer), 풀링 계층(pooling layer), 및 배치 정규화 계층(batch normalization layer)과 같은 층들에 의해 출력되는 3-차원 데이터이고, 피쳐 맵의 세 차원들은 각각 폭(Width), 높이(Height), 및 채널(Channel)이라고 불린다. 피쳐 맵은 M x W x H일 수 있고, 이것은 피쳐 맵이 M 개의 채널이고 그 분해능이 W x H인 2-차원 피쳐 맵을 포함한다는 것을 표시한다. 본 명세서에서, W는 폭을 나타내고, H는 높이를 나타낸다. 예를 들어, 원본 픽쳐가 RGB 포맷이면, R은 적색(Red)을 표현하고, G는 녹색(Green)을 표현하며, B는 청색(Blue)을 표현한다. 피쳐 맵은 세 개의 채널인 R, G, 및 B를 포함할 수 있다. 원본 픽쳐가 YUV 포맷(예를 들어, YUV444 포맷)이면, Y는 휘도(Luminance)를 표현하고, U는 색차(Chrominance)를 표현하며, V는 색도(hue)를 표현하고, V는 포화도(saturation)를 포함한다. 피쳐 맵은 세 개의 채널인 Y, U, 및 V를 포함할 수 있다.
합성곱 계층은, 합성곱 신경망이고 합성곱 처리가 입력 신호에 수행되는 뉴런 계층이다. 합성곱 계층은 복수 개의 합성곱 연산자를 포함할 수 있다. 합성곱 연산자는 커널 이라고도 불린다. 픽쳐 처리 도중에, 합성곱 연산자는 입력 픽쳐 매트릭스로부터 특정 정보(specific information)를 추출하는 필터로서의 기능을 한다. 합성곱 연산자는 본질적으로 가중치 매트릭스이고, 가중치 매트릭스는 보통 미리 정의된다. 픽쳐에 합성곱 연산을 수행하는 프로세스 중에, 가중치 매트릭스는 보통 입력 픽쳐에서 픽셀들을 수평 방향으로 하나씩(또는 스트라이드(stride)의 값에 의존하여 두 개씩 등으로) 처리하여, 픽쳐로부터 특정 피쳐(specific feature)를 추출한다. 가중치 매트릭스의 크기는 픽쳐의 크기에 관련될 필요가 있다. 가중치 매트릭스의 깊이 차원(depth dimension)이 입력 픽쳐의 깊이 차원과 같다는 것에 주의해야 한다. 합성곱 연산 프로세스에서, 가중치 매트릭스는 입력 픽쳐의 전체 깊이까지 확장된다. 그러므로, 단일 깊이 차원의 합성곱 출력은 단일 가중치 매트릭스와의 합성곱을 통하여 생성된다. 그러나, 대부분의 경우에, 단일 가중치 매트릭스는 사용되지 않고, 동일한 크기(행 x 열)를 가지는 복수 개의 가중치 매트릭스들, 즉 복수 개의 동일-타입 매트릭스들이 적용된다. 모든 가중치 매트릭스들의 출력이 스택되어 합성곱 픽쳐의 깊이 차원을 형성한다. 본 명세서에서 차원은 앞서 사용된 "복수 개(plurality of)"에 기반하여 결정되는 것으로 이해될 수 있다. 픽쳐로부터 상이한 피쳐를 추출하기 위해서 상이한 가중치 매트릭스들이 사용될 수 있다. 예를 들어, 하나의 가중치 매트릭스가 픽쳐의 에지 정보를 추출하기 위하여 사용되고, 다른 가중치 매트릭스가 픽쳐의 특정 색상을 추출하기 위하여 사용되며, 또 다른 가중치 매트릭스가 픽쳐 내의 불필요한 노이즈를 블러링하기 위하여 사용된다. 복수 개의 가중치 매트릭스들은 동일한 크기(행 x 열)를 가지고, 동일한 크기를 가지는 복수 개의 가중치 매트릭스들로부터 추출된 피쳐 맵들은 동일한 크기를 가진다. 그러면, 동일한 크기를 가지는 복수 개의 추출된 합성곱 피쳐 맵들이 결합되어 합성곱 연산의 출력을 형성한다. 이러한 가중치 매트릭스들 내의 가중치 값들은 실제 애플리케이션에서의 방대한 훈련을 통하여 획득될 필요가 있다. 합성곱 신경망이 정확한 예측을 수행하도록, 훈련을 통해 획득된 가중치 값들을 포함하는 각각의 가중치 매트릭스가 입력 픽쳐로부터 정보를 추출하기 위하여 사용될 수 있다. 합성곱 신경망이 복수 개의 합성곱 계층을 포함하는 경우, 최초 합성곱 계층은 보통 많은 양의 일반적 피쳐(general features)를 추출한다. 일반적 피쳐는 저레벨 피쳐(low-level feature)라고도 불릴 수 있다. 합성곱 신경망의 깊이가 증가함에 따라서, 더 많은 후속 합성곱 계층이 더 복잡한 피쳐, 예를 들어 고레벨 의미론(high-level semantics)을 가지는 피쳐를 추출한다. 더 높은 의미론을 가지는 피쳐일수록 해결되어야 할(to-be-solved) 문제에 더 잘 적용될 수 있다.
훈련 파라미터들의 양이 보통 감소될 필요가 있기 때문에, 풀링 계층이 보통 합성곱 계층 이후에 주기적으로 도입될 필요가 있다. 하나의 합성곱 계층에는 하나의 풀링 계층이 따라올 수 있고, 또는 복수 개의 합성곱 계층에는 하나 이상의 풀링 계층이 따라올 수 있다. 픽쳐 처리 프로시저에서, 풀링 계층은 픽쳐의 공간 크기를 감소시키기 위해서만 사용된다. 입력 픽쳐에 샘플링을 수행하여 작은 크기를 가지는 픽쳐를 획득하기 위하여, 풀링 계층은 평균 풀링 연산자 및/또는 최대 풀링 연산자를 포함할 수 있다. 평균 풀링 연산자는 픽쳐 내의 픽셀 값을 특정 범위 내에서 연산하여 평균 값을 생성하기 위해서 사용될 수 있다. 평균 값이 평균 풀링 결과로서 사용된다. 최대 풀링 연산자는 특정 범위 내의 최대 값을 가지는 픽셀을 최대 풀링 결과로서 선택하기 위하여 사용될 수 있다. 추가적으로, 합성곱 계층에서의 가중치 매트릭스의 크기는 픽쳐의 크기에 관련된 필요가 있는 것과 유사하게, 풀링 계층에서의 연산자도 픽쳐의 크기에 관련된 필요가 있다. 풀링 계층에서의 처리 이후에 출력되는 픽쳐의 크기는 풀링 계층으로 들어가는 픽쳐 입력의 크기보다 작을 수 있다. 풀링 계층에 의해 출력되는 픽쳐 내의 각각의 픽셀은 풀링 계층으로 들어가는 픽쳐의 대응하는 서브-구역의 평균 값 또는 최대 값을 나타낸다.
합성곱 계층/풀링 계층에서 처리가 수행된 이후에, 합성곱 신경망은 여전히 요구된 출력 정보를 출력할 수 없다. 전술된 바와 같이, 합성곱 계층/풀링 계층에서는 피쳐만이 추출되고, 입력 픽쳐에 의해 운반되는 파라미터들이 감소된다. 그러나, 최종 출력 정보(요구된 클래스 정보 또는 다른 관련된 정보)를 생성하기 위하여, 합성곱 신경망은 하나의 요구된 클래스 또는 이들의 그룹의 양의 출력을 신경망 계층을 사용함으로써 생성할 필요가 있다. 그러므로, 신경망 계층은 복수 개의 은닉 계층(예를 들어, 활성화 계층, BN 계층, 및/또는 FC 계층)을 포함할 수 있다. 복수 개의 은닉 계층에 포함된 파라미터는 특정 태스크 타입의 관련된 훈련 데이터에 기반한 사전-훈련을 통하여 획득될 수 있다. 예를 들어, 태스크 타입은 픽쳐 인식, 픽쳐 분류, 및 고-분해능 픽쳐 재구성을 포함할 수 있다.
선택적으로, 신경망 계층에서는 복수 개의 은닉 계층 이후에 전체 합성곱 신경망의 출력 계층이 따라온다. 출력 계층은 카테고리컬 교차 엔트로피(categorical cross entropy)와 유사한 손실 함수를 가지고, 손실 함수는 특히 예측 오차를 연산하기 위하여 사용된다. 전체 합성곱 신경망의 순방향 전파가 완료되게 되면, 가중치 값 및 앞서 언급된 각각의 계층의 편차를 업데이트하기 위하여 역전파가 시작되어, 합성곱 신경망의 손실 및 출력 계층을 사용함으로써 합성곱 신경망에 의해 출력된 결과와 이상적인 결과 사이의 오차를 줄인다.
신경망은 신경망의 각각의 계층의 파라미터를 훈련을 통하여 결정할 필요가 있다. 훈련 프로세스에서, 순방향 손실 연산 및 역방향 구배 전파가 신경망 내의 훈련가능한 파라미터를 업데이트하기 위하여 사용된다. 파라미터는 여러 번에 걸쳐 업데이트 되어, 신경망의 각각의 계층의 파라미터가 더 양호한 분석 정밀도에 수렴하게 한다. 훈련이 완료된 이후에, 네트워크의 각각의 계층의 파라미터는 고정되고, 입력 신호가 신경망을 통과하여 결과를 획득한다. 신경망을 실제로 사용하는 이러한 프로세스는 "추론"이라고 불린다.
(4) 순환 신경망
순환 신경망(Recurrent neural network, RNN)은 시퀀스 데이터를 처리하기 위하여 사용된다. 종래의 신경망 모델은 입력 계층으로 시작하여 은닉 계층으로 가고, 그 후에 출력 계층으로 가며, 계층들은 완전 연결된 반면에 각각의 계층에서의 노드들은 연결되지 않는다. 이러한 보통 신경망이 많은 문제를 해결하지만, 이것은 많은 문제에 대해서는 여전히 역부족이다. 예를 들어, 문장 내의 단어가 예측되어야 하면, 이전의 단어가 보통 사용될 필요가 있는데, 그 이유는 문장 내의 인접한 단어들은 독립적이지 않기 때문이다. RNN이 순환 신경망이라고 불리는 이유는, 시퀀스의 현재 출력이 시퀀스의 이전의 출력에도 관련되기 때문이다. 특정한 표현 형태는 네트워크가 이전의 정보를 기억하고 이전의 정보를 현재 출력을 연산하는 데에 적용하는 것이다. 구체적으로 말하자면, 은닉 계층에 있는 노드들은 더 이상 미연결 상태가 아니고 연결되게 되며, 은닉 계층의 입력은 입력 계층의 출력뿐만 아니라 이전의 모멘트에서의 은닉 계층의 출력도 포함한다. 이론적으로, RNN은 임의의 길이의 시퀀스 데이터를 처리할 수 있다. RNN에 대한 훈련은 종래의 CNN 또는 DNN에 대한 훈련과 동일하다. 오차 역전파 알고리즘도 역시 사용되지만, 다음의 차이가 있다: RNN이 확장되면, RNN의 W와 같은 파라미터가 공유된다. 이것은 앞선 예에서 설명된 종래의 신경망들과 다르다. 추가적으로, 구배 하강(gradient descent) 알고리즘을 사용하는 동안에, 각각의 단계에서의 출력은 현재 단계에서의 네트워크에만 의존하는 것이 아니라, 이전의 여러 단계들에서의 네트워크 상태에도 의존한다. 이러한 학습 알고리즘은 시간을 통한 역전파(Back propagation Through Time, BPTT) 알고리즘이라고 불린다.
(5) 손실 함수
심층 신경망을 훈련하는 프로세스 중에, 심층 신경망의 출력이 실제로 기대된 예측 값과 가능한 가까운 것이 기대되기 때문에, 네트워크의 현재 예측 값 및 실제로 기대되는 목표 값이 비교될 수 있고, 그러면 신경망의 각각의 계층의 가중치 벡터가 예측 값 및 목표 값 사이의 차이에 기반하여 업데이트된다(물론, 첫 번째 업데이트 이전에 보통 초기화 프로세스가 존재하고, 구체적으로 말하자면, 파라미터들은 심층 신경망의 모든 계층에 대해서 미리 구성된다). 예를 들어, 네트워크의 예측 값이 크면, 가중치 벡터는 예측 값을 감소시키기 위해서 조절되고, 이러한 조절이 심층 신경망이 실제로 기대된 목표 값 또는 실제로 기대된 목표 값에 가까운 값을 예측할 수 있을 때까지 연속적으로 수행된다. 그러므로, "예측된 값과 목표 값 사이의 차이를 비교를 통하여 어떻게 획득할지(how to obtain the difference between the predicted value and the target value through comparison)"가 미리 정의될 필요가 있다. 이것은 손실 함수(loss function) 또는 목적 함수(objective function)이다. 손실 함수 및 목적 함수는 예측 값 및 목표 값 사이의 차이를 측정하기 위한 중요한 수학식이다. 일 예로서 손실 함수가 사용된다. 손실 함수의 출력 값(손실)이 크다는 것은 차이가 크다는 것을 표시한다. 그러므로, 심층 신경망의 훈련은 손실을 가능한 많이 최소화시키는 프로세스이다.
(6) 역전파 알고리즘
훈련 프로세스 중에, 합성곱 신경망은 초기 고분해능 모델 내의 파라미터의 값을 오차 역전파(back propagation, BP) 알고리즘에 기반하여 정정할 수 있어서, 고분해능 모델을 재구성하는 오차 손실이 작아지게 한다. 구체적으로 설명하면, 입력 신호는 출력 내에 오차 손실이 생성될 때까지 순방향으로 전달되고, 최초 고분해능 모델 내의 파라미터는 오차 손실에 대한 정보의 역전파를 통하여 업데이트되어, 오차 손실을 수렴시킨다. 역전파 알고리즘은 오차-손실-중심 역전파 동작이고, 최적 고분해능 모델의 파라미터, 예를 들어 가중치 매트릭스를 획득하는 것을 목적으로 한다.
(7) 생성형 대립 신경망
생성형 대립 신경망(generative adversarial network, GAN)은 모델이다. 이러한 델은 적어도 두 개의 모듈을 포함한다. 한 모듈은 생성 모델(Generative Model)이고, 다른 모듈은 판별 모델(Discriminative Model)이다. 두 모듈은 서로의 경쟁을 통하여 학습되어 더 양호한 출력을 생성한다. 생성 모델 및 판별 모델 양자 모두는 신경망들일 수 있고, 구체적으로 설명하면 심층 신경망 또는 합성곱 신경망일 수 있다. GAN의 기본적인 원리는 다음과 같다: 이미지를 생성하기 위한 GAN이 일 예로서 사용된다. 두 개의 네트워크인 G(Generator) 및 D(Discriminator)가 존재한다는 것이 가정된다. G는 이미지를 생성하기 위한 네트워크이다. G는 랜덤 노이즈 z를 수신하고, 노이즈에 기반하여 이미지를 생성하며, 픽쳐는 G(z)로 표시된다. D는 판별 네트워크이고 이미지가 "실제"인지 여부를 결정하기 위하여 사용된다. D의 입력 파라미터는 x이고, x는 이미지를 표현하며, 출력 D(x)는 x가 실제 이미지일 확률을 나타낸다. D(x)의 값이 1이면, 이것은 픽쳐가 100% 실제라는 것을 표시한다. D(x)의 값이 0이면, 이것은 이미지가 실제 이미지일 수 없다는 것을 표시한다. 생성형 대립 신경망을 훈련하는 프로세스 중에, 생성 네트워크(G)의 목적은 판별 네트워크(D)를 속이기 위해 가능한 실제인 이미지를 생성하는 것이고, 판별 네트워크(D)의 목적은 G에 의해 생성된 이미지 및 실제 이미지를 가능한 많이 구별하는 것이다. 이러한 방식으로, 동적 "게이밍(gaming)" 프로세스, 구체적으로 말하자면, "생성형 대립 신경망"의 "대립(adversary)"이 G 및 D 사이에 존재한다. 최종 게이밍 결과는, 이상적인 상태에서는 G가 실제 이미지와 어렵게 구별될 이미지 G(z)를 생성할 수 있고, D가 G에 의해 생성된 이미지가 실제인지 여부를 결정하기가 어려워지는 것, 구체적으로 말하자면, D(G(z))=0.5인 것이다. 이러한 방식으로, 훌륭한 생성형 모델(G)이 획득되고, 이미지를 생성하기 위하여 사용될 수 있다.
도 2는 본 출원의 일 실시형태에 따른 딥러닝-기반 비디오 인코딩 및 디코딩 네트워크의 개략도이다. 도 2에서, 엔트로피 인코딩 및 디코딩이 설명을 위하여 일 예로서 사용된다. 네트워크는 피쳐 추출 모듈, 피쳐 양자화 모듈, 엔트로피 인코딩 모듈, 엔트로피 디코딩 모듈, 피쳐 양자화해제 모듈, 및 피쳐 디코딩(또는 픽쳐 재구성) 모듈을 포함한다.
인코더측에서, 원본 픽쳐가 피쳐 추출 모듈로 입력되고, 피쳐 추출 모듈은 합성곱의 복수 개의 계층을 비선형 매핑 활성화 함수와 조합하여 쌓아올림으로써 원본 픽쳐의 추출된 피쳐 맵을 출력한다. 피쳐 양자화 모듈은 피쳐 맵 내의 부동 소수점 숫자의 피쳐 값을 양자화하여, 양자화된 피쳐 맵을 획득한다. 비트스트림을 획득하기 위하여 양자화된 피쳐 맵에 엔트로피 인코딩이 수행된다.
디코더측에서는, 엔트로피 디코딩 모듈이 비트스트림을 파싱하여 양자화된 피쳐 맵을 획득한다. 피쳐 양자화해제 모듈은 양자화된 피쳐 맵 내에서 정수인 피쳐 값을 양자화해제하여 양자화해제된 피쳐 맵을 획득한다. 양자화해제된 피쳐 맵이 피쳐 디코딩 모듈에 의해 재구성된 이후에, 재구성된 픽쳐가 획득된다.
네트워크는 피쳐 양자화 모듈 및 피쳐 양자화해제 모듈을 포함하지 않을 수도 있다. 이러한 경우에, 네트워크는 그 피쳐 맵이 부동 소수점 숫자인 피쳐 맵에 일련의 처리를 직접적으로 수행할 수 있다. 대안적으로, 피쳐 추출 모듈에 의해 출력된 피쳐 맵 내의 모든 피쳐 값들이 정수가 되도록 네트워크에 정수화(integration) 처리가 수행될 수도 있다.
도 3a 및 도 3b는 본 출원의 일 실시형태에 따른 딥러닝-기반 단대단(end-to-end) 비디오 인코딩 및 디코딩 네트워크 구조의 개략도이다. 도 3a 및 도 3b에서는 설명을 위하여 엔트로피 인코딩 및 디코딩이 예로서 사용된다. 신경망은 피쳐 추출 모듈 ga, 양자화 모듈 Q, 에지 정보 추출 모듈 ha, 엔트로피 인코딩 모듈, 엔트로피 디코딩 모듈, 확률 추정 네트워크 hs, 및 재구성 모듈 gs를 포함한다. 엔트로피 인코딩은 오토인코더(Autoencoder, AE)일 수 있고, 엔트로피 디코딩은 오토디코더(Autodecoder, AD)일 수 있다.
본 명세서에서, ga는 인터리빙되고 연쇄된 네 개의 합성곱 계층 및 세 개의 정규화 계층을 포함하고, 정규화 계층은 GDN(generalized divisive normalization) 계층을 포함할 수 있다. ga에서, 네 개의 합성곱 계층의 합성곱 커널은 모두 5 x 5이고, 스트라이드는 모두 2이다. 제 1 합성곱 계층으로부터 제 3 합성곱 계층까지의 출력 채널들의 양은 N이고, 최종 합성곱 계층의 출력 채널들의 양은 M이다. 본 출원의 이러한 실시형태에서는, 합성곱 계층으로 입력되는 픽쳐 또는 피쳐 맵의 분해능을 제어하기 위해서 스트라이드가 사용된다. 스트라이드가 1이면, 합성곱 계층은 입력 픽쳐 또는 피쳐 맵의 분해능이 변하지 않고 유지되게 제어한다. 스트라이드가 1보다 크면, 합성곱 계층은 스트라이드를 샘플링 레이트로서 사용함으로써 입력 픽쳐 또는 피쳐 맵에 업샘플링 또는 다운샘플링을 수행한다. ga에서, 각각의 합성곱 계층은 입력 픽쳐 또는 피쳐 맵의 분해능에 2x 다운샘플링을 수행하도록 구성된다. 추가적으로, 출력 채널들의 양이 합성곱 계층에 의해 출력되는 픽쳐 또는 피쳐 맵의 채널들의 양을 제어하기 위하여 사용되고, 원본 픽쳐의 것이고 ga에 의해 출되는 피쳐 맵의 채널들의 양은 M이다.
ha는 인터리빙되고 연쇄된 세 개의 합성곱 계층, 두 개의 활성화 계층, 및 하나의 추상화 계층(abs layer)을 포함한다. ha에서, 제 1 합성곱 계층의 합성곱 커널은 3 x 3이고, 스트라이드는 1이며, 출력 채널들의 양은 N이다. ha에서, 제 2 합성곱 계층 및 제 3 합성곱 계층의 합성곱 커널은 양자 모두 5 x 5이고, 스트라이드는 양자 모두 2이며, 및 출력 채널들의 양은 양자 모두 N이다. hs는 인터리빙되고 연쇄된 세 개의 합성곱 계층 및 세 개의 활성화 계층을 포함한다. hs에서, 제 1 합성곱 계층 및 제 2 합성곱 계층의 합성곱 커널들은 양자 모두 5 x 5이고, 스트라이드는 양자 모두 2이며, 출력 채널들의 양은 양자 모두 N이다. hs에서, 제 3 합성곱 계층의 합성곱 커널은 3 x 3이고, 스트라이드는 1이며, 출력 채널들의 양은 M이다. gs는 인터리빙되고 연쇄된 네 개의 합성곱 계층 및 세 개의 역정규화 계층을 포함한다. 역정규화 계층은 IGDN 계층을 포함할 수 있다. ga에서, 네 개의 합성곱 계층의 합성곱 커널들은 모두 5 x 5이고, 스트라이드는 모두 2이며, 제 1 합성곱 계층 내지 제 3 합성곱 계층의 출력 채널들의 양은 N이며, 및 최종 합성곱 계층의 출력 채널들의 양은 3이다.
인코더측에서, 원본 픽쳐 x가 ga로 입력되고, ga는 원본 픽쳐의 피쳐 맵 y를 출력한다. 피쳐 맵 y는 Q로 입력되고, Q는 양자화된 피쳐 맵을 출력하며, 양자화된 피쳐 맵이 엔트로피 인코딩 모듈로 입력된다. 추가적으로, 피쳐 맵 y가 ha로 입력되고, ha는 에지 정보 z를 출력한다. 에지 정보 z는 Q로 입력되고, Q는 양자화된 에지 정보를 출력한다. 양자화된 에지 정보는 엔트로피 인코딩 모듈을 통과하여 에지 정보의 비트스트림을 획득하고, 그 후에 비트스트림이 엔트로피 디코딩 모듈을 통과하여 디코딩된 에지 정보를 획득한다. 디코딩된 에지 정보는 hs로 입력되고, hs는 양자화된 피쳐 맵 내의 각각의 피쳐 요소의 확률 분포를 출력하며, 각각의 피쳐 요소의 확률 분포를 엔트로피 인코딩 모듈로 입력한다. 엔트로피 인코딩 모듈은 각각의 피쳐 요소의 확률 분포에 기반하여 각각의 입력 피쳐 요소에 엔트로피 인코딩을 수행하여, 하이퍼 이전 비트스트림(hyper prior bitstream)을 획득한다.
에지 정보 z는 피쳐 정보이고, 3-차원 피쳐 맵으로서 표현된다. 에지 정보 z 내에 포함된 피쳐 요소의 양은 피쳐 맵 y의 그것보다 적다. 피쳐 맵 y의 채널의 양 양자화된 피쳐 맵의 채널의 양은 양자 모두 M이고, 분해능은 양자 모두 W x H이다. M은 ga 내의 최종 합성곱 계층의 출력 채널들의 양과 같다. W 및 H는 원본 픽쳐의 폭 및 높이 및 ga 내의 각각의 합성곱 계층의 스트라이드에 관련된다. 도 3a 및 도 3b에 도시된 바와 같이, ga는 원본 픽쳐에 2의 레이트로 네 번 다운샘플링을 수행한다. 피쳐 맵 y의 분해능 또는 양자화된 피쳐 맵의 분해능이 W x H라고 가정하면, 원본 픽쳐의 분해능은 24W x 24H이다.
디코더측에서, 엔트로피 디코딩 모듈은 에지 정보의 비트스트림을 파싱하여 에지 정보를 획득하고, 에지 정보를 hs에 입력하고, hs는 디코딩될(to-be-decode) 심볼 내의 각각의 피쳐 요소의 확률 분포를 출력한다. 각각의 피쳐 요소의 확률 분포가 엔트로피 디코딩 모듈로 입력된다. 엔트로피 디코딩 모듈은 각각의 피쳐 요소의 확률 분포에 기반하여 각각의 피쳐 요소에 엔트로피 디코딩을 수행하여 디코딩된 피쳐 맵을 획득하고, 디코딩된 피쳐 맵을 gs로 입력하며, gs는 재구성된 픽쳐를 출력한다.
추가적으로, 일부 변형 오토인코더(Variational Auto Encoder, VAE)의 확률 추정 네트워크 내에서, 현재 피쳐 요소 주위의 인코딩되거나 디코딩된 피쳐 요소가 현재 피쳐 요소의 확률 분포를 더 정확하게 추정하기 위해서 추가적으로 사용된다.
도 2 및 도 3a 및 도 3b에 도시된 네트워크 구조가 설명을 위한 단순한 예라는 것에 주의해야 한다. 네트워크 내에 포함된 모듈 및 이러한 모듈의 구조는 본 출원의 실시형태들에서 제한되지 않는다.
디지털 비디오 애플리케이션의 일부 동작 중에, 많은 양의 픽쳐들을 디스플레이 인터페이스 내에 디스플레이하기 위해서 원본 픽쳐의 썸네일이 디스플레이될 필요가 있다. 종래의 기술에서는, 원본 픽쳐의 수신된 비트스트림이 우선 디코딩되고 재구성되어 원본 픽쳐를 획득한다. 그러면, 원본 픽쳐의 분해능이 감소되어, 원본 픽쳐의 썸네일을 획득한다. 다르게 말하면, 썸네일을 획득하는 프로세스에서, 원본 분해능을 가지는 픽쳐가 우선 재구성을 통해서 획득될 필요가 있고, 원본 분해능을 가지고 재구성을 통해 획득되는 픽쳐의 복잡도는 높다. 결과적으로, 원본 픽쳐의 썸네일을 획득하는 방식은 오랜 시간 기간을 소모하고, 디지털 비디오 애플리케이션이 원본 픽쳐의 썸네일을 디스플레이하는 속도가 영향받게 된다. 예를 들어, 앨범 애플리케이션의 경우, 복수 개의 픽쳐의 썸네일이 동시에 디스플레이될 필요가 있다. 결과적으로, 디스플레이 인터페이스는 시기적절한 방식으로 리프레시될 수 없고, 앨범 애플리케이션의 디스플레이 효과가 영향받게 된다.
본 출원의 일 실시형태는 인코딩 및 디코딩 방법을 제공한다. 도 4는 본 출원의 일 실시형태에 따른 인코딩 및 디코딩 방법의 프로세스(400)의 개략적인 흐름도이다. 프로세스(400)는 전자 디바이스(인코더 및 디코더를 포함함)에 의해서 실행될 수 있다. 구체적으로 설명하면, 프로세스(400)는 신경망 모델을 호출함으로써 전자 디바이스에 의해 실행될 수 있다. 프로세스(400)는 일련의 동작으로서 설명된다. 프로세스(400)가 다양한 시퀀스로 및/또는 동시에 수행될 수 있다는 것과, 도 4에 도시되는 시퀀스로 제한되지 않는다는 것이 이해되어야 한다. 프로세스(400)는 다음 프로시저를 포함할 수 있다:
401: 인코더가 원본 픽쳐에 피쳐 추출을 수행하여 최초 피쳐 맵을 획득하는데, 최초 피쳐 맵의 분해능은 원본 픽쳐의 분해능보다 낮다.
인코더는 원본 픽쳐를 딥러닝-기반 네트워크 내의 피쳐 추출 모듈로 입력할 수 있고, 피쳐 추출 모듈은 비선형 매핑 활성화 함수와 조합하여 합성곱의 복수 개의 계층을 적층함으로써 추출된 최초 피쳐 맵을 출력한다.
선택적으로, 피쳐 추출 모듈의 경우, 도 2 및 도 3a 및 도 3b를 참조한다. 도 3a 및 도 3b는 일 예로서 사용된다. 피쳐 추출 모듈은 인터리빙되고 연쇄된 네 개의 합성곱 계층 및 세 개의 정규화 계층을 포함할 수 있다. 각각의 합성곱 계층의 합성곱 커널의 크기는 5 x 5이고, 스트라이드는 2 이다. 구체적으로 말하자면, 각각의 합성곱 계층은 입력 원본 픽쳐 또는 피쳐 맵의 분해능에 2x 다운샘플링을 수행한다(2x 다운샘플링은 폭 및 높이 각각에 수행됨). 처음 세 개의 합성곱 계층의 출력 채널들의 양은 N이고, 최종 합성곱 계층의 출력 채널들의 양은 M이다.
원본 픽쳐의 분해능이 W x H라고 가정된다. 원본 픽쳐가 피쳐 추출 모듈에 입력된 이후에, 제 1 합성곱 계층은 원본 픽쳐의 분해능에 2x 다운샘플링을 수행하고, 그 채널들의 양이 N이고 분해능이 W/2 x H/2인 피쳐 맵을 출력한다. 제 2 합성곱 계층은 제 1 합성곱 계층에 의해 출력된 피쳐 맵의 분해능에 2x 다운샘플링을 수행하고, 그 출력 채널들의 양이 N이고 분해능이 W/4 x H/4인 피쳐 맵을 출력한다. 제 3 합성곱 계층은 제 2 합성곱 계층에 의해 출력된 피쳐 맵의 분해능에 2x 다운샘플링을 수행하고, 그 채널들의 양이 N이고 분해능이 W/8 x H/8인 피쳐 맵을 출력한다. 최종 합성곱 계층은 제 3 합성곱 계층에 의해 출력된 피쳐 맵의 분해능에 2x 다운샘플링을 수행하고, 그 채널들의 양이 M이고 분해능이 W/16 x H/16인 최초 피쳐 맵을 출력한다. 다르게 말하면, 최초 피쳐 맵은 M 개의 채널을 가지고 그 분해능이 W/16 x H/16인 2-차원 피쳐 맵을 포함한다.
도 3a 및 도 3b에 도시된 피쳐 추출 모듈이 설명을 위한 단순한 예라는 것에 주의해야 한다. 피쳐 추출 모듈의 구조, 계층들 사이의 연결 관계, 합성곱 계층의 양, 및 임의의 합성곱 계층의 스트라이드, 합성곱 커널, 및 출력 채널들의 양 등은 본 출원의 이러한 실시형태에서 특정되게 제한되지 않는다. 추가적으로, 임의의 두 개의 합성곱 계층의 후속하는 파라미터들 중 적어도 하나는 동일할 수 있다: 스트라이드, 합성곱 커널, 및 출력 채널들의 양. 예를 들어, 임의의 합성곱 계층의 합성곱 커널은 대안적으로 3 x 3, 7 x 7, 9 x 9 또는 기타 등등일 수 있고, 스트라이드는 대안적으로 1, 1.5, 3, 3.2, 4, 5 또는 기타 등등일 수 있으며, 출력 채널들의 양은 1, 2, 5, 8 또는 기타 등등일 수 있다. 피쳐 추출 모듈은 정규화 계층을 포함하지 않을 수도 있고 또는 피쳐 추출 모듈은 적어도 하나의 활성화 계층, 풀링 계층, 및/또는 기타 등등을 포함할 수도 있다.
402: 인코더는 제 1 피쳐 맵을 인코딩하여 비트스트림을 획득하는데 제 1 피쳐 맵은 최초 피쳐 맵이거나, 제 1 피쳐 맵은 최초 피쳐 맵 내의 일부 채널의 2-차원 피쳐 맵을 포함한다.
최초 피쳐 맵은 복수 개의 채널들의 2-차원 피쳐 맵을 포함한다. 제 1 피쳐 맵이 최초 피쳐 맵 내의 일부 채널의 2-차원 피쳐 맵을 포함하면, 인코더는 최초 피쳐 맵 내의 모든 채널의 2-차원 피쳐 맵을 인코딩할 필요가 없다. 이러한 방식으로, 후속하여 인코딩된 비트스트림의 데이터량이 감소될 수 있고, 비트스트림을 디코더측으로 송신하는 통신 오버헤드가 감소될 수 있다.
예를 들어, 최초 피쳐 맵이 M 개의 채널들의 2-차원 피쳐 맵을 포함하고, 제 1 피쳐 맵이 M1 개의 채널들의 2-차원 피쳐 맵을 포함할 수 있다는 것이 가정되는데, M1≤M이다. M1<M인 경우, 제 1 피쳐 맵은 M 개의 채널 내의 임의의 M1 개의 채널의 2-차원 피쳐 맵을 포함할 수 있거나, M 개의 채널 내의 처음 M1 개의 채널 또는 최종 M1 개의 채널의 2-차원 피쳐 맵을 포함할 수 있다. 이것은 본 출원의 이러한 실시형태에서 제한되지 않는다.
제 1 피쳐 맵은 복수 개의 피쳐 요소를 포함하고, 인코더는 각각의 피쳐 요소를 인코딩하여 비트스트림을 획득한다. 선택적으로, 제 1 피쳐 맵은 확률 분포 모델에 기반하여 인코딩될 수 있거나, 제 1 피쳐 맵은 하이퍼 이전(hyper prior) 엔트로피 인코딩 방식으로 인코딩될 수 있다.
일 구현형태에서, 제 1 피쳐 맵은 확률 분포 모델에 기반하여 인코딩된다. 모델링이 확률 분포 모델에 기반하여 우선 수행되고, 그 후에 인코딩될 피쳐 요소의 콘텍스트 정보가 획득된다. 인코딩될 피쳐 요소의 확률 분포는 콘텍스트 정보에 기반하여 획득되고, 그 후에 인코딩될 피쳐 요소가 인코딩될 피쳐 요소의 확률 분포에 기반하여 인코딩된다. 앞선 프로시저를 제 1 피쳐 맵 내의 각각의 피쳐 요소에 수행함으로써 비트스트림이 획득된다. 콘텍스트 정보는 제 1 피쳐 맵 내의 인코딩될 피쳐 요소에 인접한 인코딩된 피쳐 요소를 포함할 수 있다.
확률 분포 모델은 다음 중 적어도 하나를 포함한다: 가우시안 단일 모델(Gaussian single model, GSM), 비대칭 가우시안 모델, 가우시안 혼합 모델(Gaussian mixture model, GMM), 및 라플라시안 분포 모델(Laplace distribution).
인코더는 신경망 모델을 호출하여, 제 1 피쳐 맵을 확률 분포 모델에 기반하여 인코딩할 수 있다. 예를 들어, 콘텍스트 정보는 확률 추정 네트워크에 입력될 수 있고, 확률 추정 네트워크는 인코딩될 피쳐 요소의 모델 파라미터를 출력한다. 모델 파라미터는 확률 분포 모델에 입력되고, 확률 분포 모델은 인코딩될 피쳐 요소의 확률 분포를 출력한다. 확률 추정 네트워크는 딥러닝-기반 신경망, 예를 들어 RNN 또는 CNN을 포함할 수 있다.
제 2 구현형태에서, 제 1 피쳐 맵은 하이퍼 이전 엔트로피 인코딩 스킴(hyper prior entropy encoding scheme)을 사용함으로써 인코딩된다. 에지 정보가 우선 제 1 피쳐 맵으로부터 추출되고, 양자화 처리가 추출된 에지 정보에 수행되며, 그 후에 엔트로피 인코딩 및 엔트로피 디코딩이 양자화된 에지 정보에 순차적으로 수행되어 디코딩된 에지 정보를 획득한다. 인코딩될 피쳐 요소의 확률 분포가 디코딩된 에지 정보에 기반하여 획득되고, 그러면 엔트로피 인코딩이 인코딩될 피쳐 요소의 확률 분포에 기반하여 인코딩될 피쳐 요소에 수행된다. 앞선 프로시저를 제 1 피쳐 맵 내의 각각의 피쳐 요소에 수행함으로써 비트스트림이 획득된다.
인코더는 신경망 모델을 호출하여, 하이퍼 이전 엔트로피 인코딩 스킴을 사용함으로써 제 1 피쳐 맵을 인코딩할 수 있다. 선택적으로, 제 1 피쳐 맵이 에지 정보 추출 모듈에 입력될 수 있고, 에지 정보 추출 모듈은 에지 정보를 추출한다. 에지 정보는 확률 추정 네트워크에 입력되고, 확률 추정 네트워크는 인코딩될 피쳐 요소의 모델 파라미터를 출력한다. 에지 정보 추출 모듈 및 확률 추정 네트워크에 대해서, 도 3a 및 도 3b에 대응한설명을 참조한다. 세부사항들은 본 명세의 본 출원의 이러한 실시형태에서 다시 설명되지 않는다.
제 1 피쳐 맵이 인코딩되기 이전에, 양자화 처리가 우선 제 1 피쳐 맵에 수행될 수 있어서, 양자화된 제 1 피쳐 맵을 획득한다. 그러면, 양자화된 제 1 피쳐 맵이 인코딩되어 비트스트림을 획득한다. 도 2 또는 도 3a 및 도 3b에 도시된 바와 같이, 양자화 처리는 양자화 모듈을 사용함으로써 제 1 피쳐 맵에 수행될 수 있다.
예를 들어, 양자화 처리 프로시저는 다음을 포함한다: 제 1 피쳐 맵 내의 각각의 피쳐 요소(또는 피쳐 값 이라고 불림)를 양자화하는 것, 및 부동 소수점 숫자인 피쳐 요소에 정수 처리를 수행하여 정수인 피쳐 요소를 획득하는 것. 선택적으로, 부동 소수점 숫자인 피쳐 요소는 반올림되어 정수인 피쳐 요소를 획득할 수 있다; 또는 부동 소수점 숫자인 피쳐 요소가 버림처리되어(truncated) 정수인 피쳐 요소를 획득한다; 또는 정수인 피쳐 요소가 미리 설정된 양자화 스트라이드에 기반하여 획득된다. 양자화 처리 프로시저는 본 출원의 이러한 실시형태에서 제한되지 않는다.
403: 인코더는 비트스트림을 디코더로 전송한다.
앞선 실시형태에서 설명된 바와 같이, 인코더 및 디코더는 그 사이에서 통신 연결이 구축되는 통신 인터페이스를 가지고, 인코더는 통신 인터페이스를 통하여 비트스트림을 디코더의 통신 인터페이스로 전송할 수 있다.
404: 디코더는 비트스트림을 디코딩하여 제 1 피쳐 맵을 획득한다.
비트스트림은 제 1 피쳐 맵에 대응한다. 구체적으로 말하자면, 비트스트림은 복수 개의 채널을 가지고 제 1 피쳐 맵 내에 포함되는 2-차원 피쳐 맵에 대응한다. 디코더는 복수 개의 채널 내에 포함된 각각의 피쳐 요소에 대응하는 비트스트림을 디코딩하여, 제 1 피쳐 맵을 획득할 수 있다.
디코딩 프로세스는 인코딩 프로세스에 대응한다. 앞선 확률 분포 모델-기반 인코딩 방식에 대응하여, 디코더는 디코딩될 피쳐 요소에 대응하는 비트스트림의 콘텍스트 정보를 획득하고, 콘텍스트 정보에 기반하여, 디코딩될 피쳐 요소에 대응하는 비트스트림의 확률 분포를 획득하며, 그 후에 확률 분포에 기반하여, 디코딩될 피쳐 요소에 대응하는 비트스트림을 디코딩한다. 앞선 프로시저를 복수 개의 채널 내의 각각의 피쳐 요소에 대응하는 비트스트림에 수행함으로써 제 1 피쳐 맵이 획득된다.
인코더가 신경망 모델을 호출하여 제 1 피쳐 맵을 확률 분포 모델에 기반하여 인코딩할 경우, 디코더도 역시 신경망 모델을 호출하여 비트스트림을 디코딩할 수 있다. 예를 들어, 디코딩될 피쳐 요소에 대응하는 비트스트림의 콘텍스트 정보가 인코더측에서와 동일한 확률 추정 네트워크에 입력될 수 있고, 확률 추정 네트워크는 디코딩될 피쳐 요소에 대응하는 비트스트림의 모델 파라미터를 출력한다. 모델 파라미터는 인코더측에서와 동일한 확률 분포 모델에 입력되고, 확률 분포 모델은 디코딩될 피쳐 요소에 대응하는 비트스트림의 확률 분포를 출력한다. 확률 분포 모델 및 확률 추정 네트워크 양자 모두에 대해서, 프로세스(402)를 참조한다. 세부사항은 본 명세서에서 설명되는 본 출원의 이러한 실시형태에서 설명되지 않는다.
앞선 하이퍼 이전 엔트로피 인코딩 스킴에 대응하여, 디코더는 우선 에지 정보의 비트스트림에 엔트로피 디코딩을 수행하여 에지 정보를 획득하고, 엔트로피 디코딩을 통하여 획득된 에지 정보에 기반하여, 디코딩될 피쳐 요소에 대응하는 비트스트림의 확률 분포를 획득하며, 그 후에 확률 분포에 기반하여, 디코딩될 피쳐 요소에 대응하는 비트스트림에 엔트로피 디코딩을 수행한다. 앞선 프로시저를 복수 개의 채널 내의 각각의 피쳐 요소에 대응하는 비트스트림에 수행함으로써 제 1 피쳐 맵이 획득된다.
인코더가 신경망 모델을 호출하여 제 1 피쳐 맵에 하이퍼 이전 엔트로피 인코딩 스킴을 사용함으로써 엔트로피 인코딩을 수행하는 경우, 디코더도 역시 신경망 모델을 호출하여 비트스트림에 엔트로피 디코딩을 수행할 수 있다. 예를 들어, 엔트로피 디코딩을 통해 획득된 에지 정보는 인코더측에서와 동일한 확률 추정 네트워크에 입력될 수 있고, 확률 추정 네트워크는 디코딩될 피쳐 요소에 대응하는 비트스트림의 확률 분포를 출력한다. 확률 추정 네트워크에 대해서는 프로세스(402)를 참조한다. 세부사항은 본 명세서에서 설명되는 본 출원의 이러한 실시형태에서 설명되지 않는다.
405: 디코더는 제 2 피쳐 맵을 제 1 신경망에 기반하여 재구성하여 재구성된 픽쳐를 획득하는데, 제 2 피쳐 맵의 분해능 및 재구성된 픽쳐의 분해능 각각은 목표 분해능이며, 목표 분해능은 원본 픽쳐의 분해능보다 낮으며, 제 2 피쳐 맵은 제 1 피쳐 맵이거나, 제 2 피쳐 맵은 제 2 신경망에 기반하여 제 1 피쳐 맵을 처리함으로써 획득된 피쳐 맵이다.
제 1 신경망에 의해 출력된 재구성된 픽쳐의 분해능 및 입력 제 2 피쳐 맵의 분해능은 동일하고, 각각은 목표 분해능이다. 제 2 피쳐 맵이 제 1 피쳐 맵인 경우, 목표 분해능은 제 1 피쳐 맵의 분해능과 동일하다. 제 2 피쳐 맵이 제 2 신경망에 기반하여 상기 제 1 피쳐 맵을 처리함으로써 획득된 피쳐 맵인 경우, 목표 분해능은 제 1 피쳐 맵의 분해능보다 높다.
선택적으로, 제 1 신경망은 적어도 하나의 합성곱 계층을 포함할 수 있고, 적어도 하나의 합성곱 계층의 합성곱 스트라이드는 1이다. 제 1 신경망은 입력 피쳐 맵의 채널들의 양을 변환하기 위하여 사용되고, 하나 이상의 제 1 신경망이 존재할 수 있다. 복수 개의 제 1 신경망이 존재하는 경우, 임의의 두 개의 제 1 신경망의 구조들은 동일하거나 상이할 수 있다. 이것은 본 출원의 이러한 실시형태에서 제한되지 않는다.
제 2 신경망은 제 1 피쳐 맵을 처리하여 제 2 피쳐 맵을 획득하도록 구성된다. 이러한 처리는 합성곱 연산(deconvolution operation) 및/또는 역합성곱 연산(deconvolution operation)을 포함할 수 있다. 더 나아가, 이러한 처리는 정규화 연산(normalization operation)을 더 포함할 수 있다. 선택적으로, 제 2 신경망은 하나 이상의 출력 노드 및 복수 개의 합성곱 계층을 포함할 수 있고, 출력 노드는 제 1 합성곱 계층의 출력단 및 최종 합성곱 계층의 입력단 사이에 위치되며, 출력 노드는 제 1 신경망의 입력단에 연결된다. 합성곱 계층은 입력 피쳐 맵에 합성곱 연산 및/또는 역합성곱 연산을 수행하도록 구성된다. 제 1 신경망은 적어도 하나의 정규화 계층을 더 포함할 수 있고, 정규화 계층은 입력 피쳐 맵에 정규화 연산을 수행하도록 구성된다.
프로세스(401)에서 설명된 바와 같이, 인코더측의 피쳐 추출 모듈은 원본 픽쳐에 피쳐 추출을 수행하여 최초 피쳐 맵을 획득하도록 구성된다. 제 1 피쳐 맵이 최초 피쳐 맵인 경우, 제 2 신경망은 제 1 피쳐 맵을 재구성하여 원본 분해능을 가지는 재구성된 픽쳐를 획득할 수 있다. 그러므로, 제 2 신경망의 구조는 인코더측의 피쳐 추출 모듈의 구조에 대응한다. 제 1 피쳐 맵을 위한 제 2 신경망에 포함된 합성곱 계층의 총 업샘플링 레이트는 도 3a 및 도 3b에 도시된 원본 픽쳐를 위한 피쳐 추출 모듈에 포함된 합성곱 계층의 총 다운샘플링 레이트와 동일하다. 다르게 말하면, 제 2 신경망 내에 포함된 합성곱 계층이 제 1 피쳐 맵의 분해능을 증가시키는 총 배수(total multiple)는 도 3a 및 도 3b에 도시된 피쳐 추출 모듈에 포함된 합성곱 계층이 원본 픽쳐의 분해능을 감소시키는 총 배수와 동일하다. 추가적으로, 제 2 신경망의 최종 합성곱 계층의 출력 채널의 양은 원본 픽쳐의 채널들의 실제 양과 같다. 이러한 방식으로, 제 2 신경망은 재구성을 통하여, 원본 분해능을 가지는 재구성된 픽쳐를 획득할 수 있다.
일 예에서 하나의 제 1 신경망이 존재하는 경우, 제 2 신경망은 적용될 필요가 없고, 제 1 신경망은 독립적으로 존재할 수 있다. 이러한 경우에는 제 2 피쳐 맵이 제 1 피쳐 맵이 되고, 제 1 신경망은 하나의 분해능만을 가지는 재구성된 픽쳐만을 출력할 수 있으며, 분해능은 제 1 피쳐 맵의 분해능이다.
다른 예에서, 제 1 신경망은 제 2 신경망의 입력단에 연결되고 및/또는 하나 이상의 출력 노드에 연결될 수 있다. 이러한 경우에, 제 2 피쳐 맵은 제 1 피쳐 맵 또는 제 2 신경망에 기반하여 제 1 피쳐 맵을 처리함으로써 획득된 피쳐 맵이고, 제 1 신경망은 하나 이상의 분해능을 가지는 재구성된 픽쳐를 출력할 수 있다.
복수 개의 제 1 신경망이 존재하는 경우, 제 2 신경망의 입력단 및/또는 각각의 출력 노드는 제 1 신경망에 연결된다. 이러한 경우에, 제 2 피쳐 맵은 제 1 피쳐 맵 또는 제 2 신경망에 기반하여 제 1 피쳐 맵을 처리함으로써 획득된 피쳐 맵이고, 제 1 신경망은 복수 개의 분해능을 가지는 재구성된 픽쳐를 출력할 수 있다.
제 2 신경망은 제 1 피쳐 맵을 처리하여 제 2 피쳐 맵을 획득하기 위하여 사용되고, 제 2 피쳐 맵은 출력 노드에 의하여 출력되고 출력 노드에 연결된 제 1 신경망에 입력된다.
후속하는 내용은 하나 이상의 제 1 신경망이 존재하고, 복수 개의 출력 노드가 존재하며, 제 2 신경망의 입력단 및 각각의 출력 노드 각각이 하나의 제 1 신경망의 입력단에 연결되는 예를 사용함으로써 설명을 제공한다.
각각의 출력 노드는 하나의 출력 분해능에 대응하고, 제 1 신경망에 의해 출력된 재구성된 픽쳐의 분해능은 각각의 출력 노드에 대응하는 출력 분해능 및 제 1 피쳐 맵의 분해능을 포함할 수 있다. 쉽게 설명하기 위하여, 제 1 신경망에 의해 출력될 수 있는 재구성된 픽쳐의 모든 분해능은 이하에서 후보 분해능 이라고 불린다. 디코더는 우선 목표 분해능을 결정할 수 있다. 목표 분해능이 제 1 피쳐 맵의 분해능과 같으면, 디코더는 제 1 피쳐 맵을 제 2 신경망의 입력단에 연결된 제 1 신경망에 직접적으로 입력하여, 제 1 신경망에 의해 출력된 재구성된 픽쳐를 획득할 수 있다. 목표 분해능이 제 1 피쳐 맵의 분해능과 같지 않으면, 디코더는 그 출력 분해능이 목표 분해능인 출력 노드가 목표 입력 노드라고 결정할 수 있다. 그러면, 제 1 피쳐 맵이 제 2 신경망에 입력되어, 제 2 신경망의 목표 출력 노드에 의해 출력된 제 2 피쳐 맵을 획득하고, 목표 출력 노드에 의해 출력된 제 2 피쳐 맵이 제 1 신경망에 입력되어, 제 1 신경망에 의해 출력된 재구성된 픽쳐를 획득한다.
하나의 제 1 신경망이 존재하는 경우, 목표 출력 노드에 의해 출력된 제 2 피쳐 맵이 네트워크에 직접적으로 입력되어, 신경망에 의해 출력되는 재구성된 픽쳐를 획득한다. 복수 개의 제 1 신경망이 존재하는 경우, 제 2 피쳐 맵이 목표 출력 노드에 연결된 제 1 신경망에 입력되어, 목표 출력 노드에 연결된 제 1 신경망에 의해 출력된 재구성된 픽쳐를 획득한다.
목표 분해능은 디코더에 의하여 결정될 수 있고, 또는 디코더 외부에 의해서 결정될 수 있으며, 예를 들어 디코더 또는 인코더의 외부 애플리케이션 계층에 의하여 결정될 수 있다. 외부 애플리케이션 계층에 대해서는, 디지털 비디오 애플리케이션, 예를 들어 비디오 플레이어, 앨범, 또는 웹페이지를 참조한다.
일 예에서 목표 분해능이 디코더에 의해 결정되는 경우, 디코더는 목표 분해능을 썸네일의 분해능에 기반하여 결정할 수 있다. 예를 들어, 본 출원의 이러한 실시형태를 참조하면, 디코더는 후보 분해능 중 썸네일의 분해능에 가장 가까운 분해능이 목표 분해능이라고 결정할 수 있다. 썸네일의 분해능은 디코더의 외부 애플리케이션 계층에서 최종적으로 디스플레이되는 썸네일의 분해능이고, 목표 분해능과 동일하거나 다를 수 있다.
선택적으로, 썸네일의 분해능은 외부 애플리케이션 계층 또는 인코더에 의해 표시될 수 있다. 외부 애플리케이션 계층 또는 인코더는 썸네일의 분해능을 표시하는 식별자를 디코더로 전송할 수 있다. 인코더가 썸네일의 분해능을 표시하는 식별자를 디코더로 전송하는 경우, 썸네일의 분해능의 식별자는 별개로 전송되거나 비트스트림 내에서 운반될 수 있다. 디코더가 썸네일의 분해능을 결정하는 방식은 본 출원의 이러한 실시형태에서 제한되지 않는다.
다른 예에서, 디코더는 각각의 후보 분해능을 가지는 재구성된 픽쳐를 획득하는 프로세스의 복잡도 및/또는 전력 소모 제약에 기반하여 목표 분해능을 결정할 수 있다. 예를 들어, 디코더는 최소 복잡도를 가지는 재구성된 픽쳐 획득 프로세스에 대응하는 후보 분해능이 목표 분해능이라고 결정하거나; 또는 외부 애플리케이션 계층이 취할 수 있는 최대 복잡도에 가장 가까운 복잡도를 가지는 재구성된 픽쳐 획득 프로세스에 대응하는 후보 분해능이 목표 분해능이라고 결정할 수 있다.
일 예에서 목표 분해능이 디코더의 외부에서 결정되는 경우, 목표 분해능은 외부 애플리케이션 계층에 의해 결정되고 디코더로 전송된다. 외부 애플리케이션 계층은 목표 분해능을 표시하는 식별자를 디코더로 전송할 수 있고, 디코더는 목표 분해능의 식별자에 기반하여 목표 분해능을 결정한다. 외부 애플리케이션 계층은 후보 분해능 및 썸네일의 분해능에 기반하여 목표 분해능을 결정할 수 있고, 또는 각각의 후보 분해능을 가지는 재구성된 픽쳐를 획득하는 프로세스의 복잡도 및/또는 전력 소모 제약에 기반하여 목표 분해능을 결정할 수도 있다. 후보 분해능은 디코더에 의해 전송되는 비트스트림 내에 추가 향상 정보(Supplemental Enhancement Information, SEI)를 사용함으로써 위치될 수 있거나, 외부 애플리케이션 계층이 후보 분해능을 획득하도록 애플리케이션 계층에서 파일 포맷 내에 위치될 수도 있다. 목표 분해능을 결정하는 프로세스에 대해서는, 디코더가 목표 분해능을 결정하는 앞선 프로세스를 참조한다. 세부사항은 본 명세서에서 설명되는 본 출원의 이러한 실시형태에서 설명되지 않는다.
다른 예에서, 목표 분해능은 인코더에 의해 결정되고 디코더로 전송된다. 인코더는 목표 분해능을 표시하는 식별자를 디코더로 전송할 수 있고, 디코더는 목표 분해능의 식별자에 기반하여 목표 분해능을 결정한다. 목표 분해능의 식별자는 별개로 전송되거나 비트스트림 내에서 운반될 수 있다. 목표 분해능을 결정하는 프로세스에 대해서는, 디코더가 목표 분해능을 결정하는 앞선 프로세스를 참조한다. 세부사항은 본 명세서에서 설명되는 본 출원의 이러한 실시형태에서 설명되지 않는다.
예를 들어, 도 5는 본 출원의 일 실시형태에 따른 제 1 신경망의 구조 및 제 2 신경망의 구조의 개략도이다. 도 5에서, 복수 개의 제 1 신경망이 존재하는 예를 사용함으로써 설명이 제공된다. 도 5의 제 2 신경망의 구조는 도 3a 및 도 3b에 도시된 피쳐 추출 모듈의 구조에 대응할 수 있다. 도 5에 도시된 바와 같이, 제 2 신경망은 인터리빙되고 연쇄된 네 개의 합성곱 계층 및 세 개의 정규화 계층을 포함한다. 각각의 합성곱 계층의 합성곱 커널의 크기는 도 3a 및 도 3b에 도시된 피쳐 추출 모듈 내의 합성곱 계층의 합성곱 커널의 크기와 같고, 5 x 5이며, 스트라이드는 2이다. 구체적으로 말하자면, 각각의 합성곱 계층은 입력 피쳐 맵의 분해능에 2x 업샘플링을 수행한다(2x 업샘플링은 폭 및 높이 각각에 수행됨). 처음 세 개의 합성곱 계층의 출력 채널들의 양은 N이고, 최종 합성곱 계층의 출력 채널들의 양은 3이다. 제 2 신경망은 세 개의 출력 노드(a1 내지 a3)를 포함하는데, a1은 제 1 합성곱 계층의 출력단에 위치되고, a2는 제 2 합성곱 계층의 출력단에 위치되며, a3는 제 3 합성곱 계층의 출력단에 위치된다.
도 5는 네 개의 제 1 신경망(b1 내지 b4)을 도시한다. b1의 입력단은 제 2 신경망의 입력단에 연결되고, b2의 입력단은 a1에 연결되며, b3의 입력단은 a2에 연결되고, b4의 입력단은 a3에 연결된다.
도 5에서, b1 및 b2가 동일한 구조를 가지고, b1, b3, 및 b4가 상이한 구조를 가지는 예를 사용함으로써 설명이 제공된다. b1 및 b2는 두 개의 합성곱 계층을 각각 포함하고, 두 개의 합성곱 계층 각각의 합성곱 커널은 5 x 5이며, 두 개의 합성곱 계층 각각의 스트라이드는 1이다. 두 개의 합성곱 계층 내의 제 1 합성곱 계층의 출력 채널들의 양은 N1이고, 최종 합성곱 계층의 출력 채널들의 양은 P이다. 예를 들어, P는 1, 3 또는 기타 등등일 수 있다. P가 1인 경우, 출력 재구성된 픽쳐는 그레이스케일 픽쳐이다. P가 3인 경우, 출력 재구성된 픽쳐는 3-채널 컬러 픽쳐이다. N1>P이다. N1의 값이 크면, 최종 합성곱 계층이 양호한 품질을 가지는 출력 재구성된 픽쳐를 출력할 수 있도록, 더 많은 피쳐 요소가 최종 합성곱 계층에 입력되고 더 많은 정보가 최종 합성곱 계층에 대해서 제공될 수 있다는 것을 표시한다. b3는 세 개의 합성곱 계층을 포함하고, 세 개의 합성곱 계층 각각의 합성곱 커널은 5 x 5이며, 세 개의 합성곱 계층 각각의 스트라이드는 1이다. b3에서, 제 1 합성곱 계층의 출력 채널들의 양은 N2이고, 제 2 합성곱 계층의 출력 채널들의 양은 N3이며, 제 3 합성곱 계층의 출력 채널들의 양은 P이다. b4는 두 개의 합성곱 계층을 각각 포함하고, 두 개의 합성곱 계층 각각의 합성곱 커널은 5 x 5이며, 두 개의 합성곱 계층 각각의 스트라이드는 1이다. b4에서, 제 1 합성곱 계층의 출력 채널들의 양은 N4이고, 제 2 합성곱 계층의 출력 채널들의 양은 P이다. 도 5에 도시되는 제 1 신경망의 구조 및 제 2 신경망의 구조로부터, 임의의 두 개의 신경망의 입력단에서 입력되는 피쳐 맵 입력의 분해능들이 다르다는 것이 학습될 수 있다.
도 5에서 b1에 의하여 출력되는 분해능은 제 1 피쳐 맵의 분해능이다. b2에 의해 출력되는 분해능은 제 1 피쳐 맵이 제 2 신경망에 입력된 이후에 제 1 합성곱 계층에 의해 출력되는 피쳐 맵의 분해능이다. b3에 의해 출력되는 분해능은 제 1 피쳐 맵이 제 2 신경망에 입력된 이후에 제 2 합성곱 계층에 의해 출력되는 피쳐 맵의 분해능이다. b4에 의해 출력되는 분해능은 제 1 피쳐 맵이 제 2 신경망에 입력된 이후에 제 3 합성곱 계층에 의해 출력되는 피쳐 맵의 분해능이다. 제 1 피쳐 맵의 분해능이 W/16 x H/16이라고 가정하면, b1 내지 b4의 출력 분해능은 각각 W/16 x H/16, W/8 x H/8, W/4 x H/4, 및 W/2 x H/2이다.
제 1 피쳐 맵의 채널들의 양이 M1이고, 분해능은 W/16 x H/16라고 가정된다. 결정된 목표 분해능이 제 1 피쳐 맵의 분해능인 경우, 제 1 피쳐 맵은 b1으로 직접적으로 입력되고, b1의 제 1 합성곱 계층은 제 1 피쳐 맵의 변경되지 않은 분해능을 유지하며, 제 1 피쳐 맵의 채널들의 양을 변환하여 그 채널들의 양이 N1이고 분해능이 W/16 x H/16인 피쳐 맵을 출력한다. b1의 제 2 합성곱 계층은 입력 피쳐 맵의 변경되지 않은 분해능을 유지하고, 입력 피쳐 맵의 채널들의 양을 변환하여, 채널들의 양이 P이고 분해능이 W/16 x H/16인 피쳐 맵을 출력한다.
목표 분해능에 기반하여 결정된 목표 출력 노드가 a1인 경우, 제 1 피쳐 맵은 제 2 신경망에 입력되고, 제 2 신경망의 제 1 합성곱 계층은 제 1 피쳐 맵의 분해능에 2x 업샘플링을 수행하며, a1으로부터, 그 채널들의 양이 N이고 분해능이 W/8 x H/8인 제 2 피쳐 맵을 출력한다. 제 2 피쳐 맵은 a1에 연결된 b2에 입력되고, b2의 제 1 합성곱 계층 및 제 2 합성곱 계층은 입력 피쳐 맵의 변경되지 않은 분해능을 유지하며, 입력 피쳐 맵의 채널들의 양을 순차적으로 변환하여, 최종적으로 그 채널들의 양이 P이고 분해능이 W/8 x H/8인 재구성된 픽쳐를 출력한다. b2 내의 각각의 합성곱 계층의 출력에 대해서는 b1을 참조한다. 세부사항은 본 명세서에서 설명되는 본 출원의 이러한 실시형태에서 설명되지 않는다.
목표 분해능에 기반하여 결정된 목표 출력 노드가 a2인 경우, 제 1 피쳐 맵이 제 2 신경망에 입력되고, 제 2 신경망의 제 1 합성곱 계층 및 제 2 합성곱 계층은 제 1 피쳐 맵의 분해능에 2x 업샘플링을 순차적으로 수행하며, 그 채널들의 양이 N이고 분해능이 W/4 x H/4인 제 2 피쳐 맵을 a2로부터 출력한다. 제 2 피쳐 맵은 a2에 연결된 b3에 입력되고, b3의 제 1 합성곱 계층 내지 제 3 합성곱 계층은 입력 피쳐 맵의 변경되지 않은 분해능을 유지하며, 입력 피쳐 맵의 양을 순차적으로 변환하여, 최종적으로 그 채널들의 양이 P이고 분해능이 W/4 x H/4인 재구성된 픽쳐를 출력한다. b33 내의 각각의 합성곱 계층의 출력에 대해서는 b1을 참조한다. 세부사항은 본 명세서에서 설명되는 본 출원의 이러한 실시형태에서 설명되지 않는다.
목표 분해능에 기반하여 결정된 목표 출력 노드가 a3인 경우, 제 1 피쳐 맵이 제 2 신경망에 입력되고, 제 2 신경망의 제 1 합성곱 계층 내지 제 3 합성곱 계층은 제 1 피쳐 맵의 분해능에 2x 업샘플링을 순차적으로 수행하며, 그 채널들의 양이 N이고 분해능이 W/2 x H/2인 제 2 피쳐 맵을 출력한다. 제 2 피쳐 맵은 a3에 연결된 b4에 입력되고, b4의 제 1 합성곱 계층 및 제 2 합성곱 계층은 입력 피쳐 맵의 변경되지 않은 분해능을 유지하며, 입력 피쳐 맵의 양을 순차적으로 변환하여, 최종적으로 그 채널들의 양이 P이고 분해능이 W/2 x H/2인 재구성된 픽쳐를 출력한다.
하나 이상의 목표 분해능이 존재할 수 있다는 것에 주의해야 한다. 복수 개의 목표 분해능이 존재하고 복수 개의 출력 노드가 복수 개의 목표 분해능에 기반하여 결정되는 경우, 제 1 피쳐 맵이 제 2 신경망에 입력되어 복수 개의 분해능을 가지고 제 2 신경망의 복수 개의 목표 출력 노드에 의해 출력되는 제 2 피쳐 맵을 획득할 수 있다. 그러면, 각각의 목표 출력 노드에 의해 출력된 제 2 피쳐 맵이 목표 출력 노드에 연결된 제 1 신경망에 연결되어, 복수 개의 분해능을 가지고 복수 개의 목표 출력 노드에 각각 연결된 제 1 신경망에 의해 출력되는 재구성된 픽쳐를 획득한다.
출력 노드는 제 2 피쳐 맵들을 병렬로 또는 직렬로 출력할 수 있다. 제 2 피쳐 맵들이 직렬로 출력되는 경우, 출력 노드에 의해 출력된 제 2 피쳐 맵들이 공유될 수 있다. 도 5에 도시된 바와 같이, 결정된 목표 출력 노드가 a1, a2, 및 a3를 포함한다고 가정하면, 제 1 피쳐 맵이 제 1 신경망에 세 번 순차적으로 입력될 수 있어서, a1, a2, 및 a3가 제 1 신경망의 입력단으로부터 입력된 제 1 피쳐 맵에 기반하여 대응하는 제 2 피쳐 맵을 병렬적으로 출력하게 한다. 이러한 방식으로, 재구성된 픽쳐를 획득하는 효율이 개선될 수 있다.
대안적으로, 제 1 피쳐 맵은 제 1 신경망에 한 번 입력될 수도 있다. a1이 제 1 신경망의 입력단으로부터 입력된 제 1 피쳐 맵에 기반하여 제 2 피쳐 맵을 출력한 이후에, a2는 a1에 의해 출력된 제 2 피쳐 맵에 기반하여 제 2 피쳐 맵을 출력하고, a1이 제 2 피쳐 맵을 출력한 이후에 a3는 a1에 의해 출력된 제 2 피쳐 맵에 기반하여 제 2 피쳐 맵을 출력할 수 있거나, a2가 제 2 피쳐 맵을 출력한 이후에 a2에 의해 출력된 제 2 피쳐 맵에 기반하여 제 2 피쳐 맵을 출력할 수 있다. 이러한 방식으로, 제 2 신경망의 연산 시간의 양이 감소될 수 있고, 제 2 신경망의 연산 오버헤드가 더 감소된다.
도 5의 제 1 신경망의 구조, 제 2 신경망의 구조, 및 제 1 신경망 및 제 2 신경망 사이의 연결 관계는 모두 설명을 위한 예들이다. 이것은 본 출원의 이러한 실시형태에서 제한되지 않는다. 예를 들어, 도 5에 기반하여, 임의의 신경망 브랜치는 하나 이상의 합성곱 계층을 더 포함할 수 있고, 복수 개의 합성곱 계층은 동일하거나 다를 수 있다.
예를 들어, 도 6은 본 출원의 일 실시형태에 따른 제 1 신경망의 다른 구조 및 제 2 신경망의 다른 구조의 개략도이다. 도 6에서, 하나의 제 1 신경망이 존재하는 예를 사용하여 설명이 제공된다. 제 2 신경망은 두 개의 합성곱 계층을 각각 포함하고, 두 개의 합성곱 계층 각각의 합성곱 커널은 5 x 5이며, 두 개의 합성곱 계층 각각의 스트라이드는 1이다. 제 2 신경망의 구조에 대해서는 도 5 및 신경망 브랜치의 앞선 설명을 참조한다. 세부사항은 본 명세서에서 설명되는 본 출원의 이러한 실시형태에서 설명되지 않는다. 두 개의 합성곱 계층 내의 제 1 합성곱 계층의 출력 채널들의 양은 N1이고, 최종 합성곱 계층의 출력 채널들의 양은 P이다. 제 1 신경망의 관련된 설명에 대해서는 도 5에 대응하는 설명을 참조한다. 세부사항은 본 명세서에서 설명되는 본 출원의 이러한 실시형태에서 설명되지 않는다.
도 6에 도시된 바와 같이, 제 2 신경망은 세 개의 출력 노드(c1 내지 c3)를 포함하는데, c1은 제 1 정규화 계층의 출력단에 위치되고, c2는 제 2 합성곱 계층의 출력단에 위치되며, c3는 제 3 정규화 계층의 출력단에 위치된다. c1 내지 c3 모두는 제 1 신경망의 입력단에 연결되고, 제 2 신경망의 입력단은 제 1 신경망의 입력단에 더 연결된다.
도 6에서 제 1 신경망에 의해 출력되는 분해능은 제 1 피쳐 맵의 분해능, 제 1 피쳐 맵이 제 2 신경망에 입력된 이후에 제 1 정규화 계층에 의해 출력된 피쳐 맵의 분해능, 제 1 피쳐 맵이 제 2 신경망에 입력된 이후에 제 2 합성곱 계층에 의해 출력된 피쳐 맵 력의 분해능, 및 제 1 피쳐 맵이 제 2 신경망에 입력된 이후에 제 3 정규화 계층에 의해 출력된 피쳐 맵의 분해능을 포함한다. 제 1 피쳐 맵의 분해능이 W/16 x H/16이라고 가정하면, 제 1 신경망에 의해 출력된 분해능은 각각 W/16 x H/16, W/8 x H/8, W/4 x H/4, 및 W/2 x H/2를 포함한다.
제 1 피쳐 맵의 채널들의 양이 M1이고 분해능은 W/16 x H/16라고 가정된다. 결정된 목표 분해능이 제 1 피쳐 맵의 분해능인 경우, 제 1 피쳐 맵이 제 1 신경망에 직접적으로 입력되고, 제 1 신경망의 제 1 합성곱 계층 및 제 2 합성곱 계층은 입력 피쳐 맵의 변경되지 않은 분해능을 유지하며, 입력 피쳐 맵의 양을 순차적으로 변환하여, 그 채널들의 양이 P이고 분해능이 W/16 x H/16인 재구성된 픽쳐를 최종적으로 출력한다.
목표 분해능에 기반하여 결정된 목표 출력 노드가 c1인 경우, 제 1 피쳐 맵은 제 2 신경망에 입력되고, 제 2 신경망의 제 1 합성곱 계층은 제 1 피쳐 맵의 분해능에 2x 업샘플링을 수행하며, c1으로부터, 그 채널들의 양이 N이고 분해능이 W/8 x H/8인 제 2 피쳐 맵을 출력한다. 제 2 피쳐 맵은 제 1 신경망에 입력되고, 제 1 신경망은 그 채널들의 양이 P이고 분해능이 W/8 x H/8인 재구성된 픽쳐를 최종적으로 출력한다. 제 1 신경망이 입력 피쳐 맵을 처리하는 프로세스에 대해서는 앞선 설명을 참조한다. 세부사항은 본 명세서에서 설명되는 본 출원의 이러한 실시형태에서 설명되지 않는다.
목표 분해능에 기반하여 결정된 목표 출력 노드가 c2인 경우, 제 1 피쳐 맵이 제 2 신경망에 입력되고, 제 2 신경망의 제 1 합성곱 계층 및 제 2 합성곱 계층은 제 1 피쳐 맵의 분해능에 2x 업샘플링을 순차적으로 수행하며, 그 채널들의 양이 N이고 분해능이 W/4 x H/4인 제 2 피쳐 맵을 c2로부터 출력한다. 제 2 피쳐 맵은 제 1 신경망에 입력되고, 제 1 신경망은 그 채널들의 양이 P이고 분해능이 W/4 x H/4인 재구성된 픽쳐를 출력한다. 제 1 신경망이 입력 피쳐 맵을 처리하는 프로세스에 대해서는 앞선 설명을 참조한다. 세부사항은 본 명세서에서 설명되는 본 출원의 이러한 실시형태에서 설명되지 않는다.
목표 분해능에 기반하여 결정된 목표 출력 노드가 c3인 경우, 제 1 피쳐 맵이 제 2 신경망에 입력되고, 제 2 신경망의 제 1 합성곱 계층 내지 제 3 합성곱 계층은 제 1 피쳐 맵의 분해능에 2x 업샘플링을 순차적으로 수행하며, 그 채널들의 양이 N이고 분해능이 W/2 x H/2인 제 2 피쳐 맵을 c3로부터 출력한다. 제 2 피쳐 맵은 제 1 신경망에 입력되고, 제 1 신경망은 그 채널들의 양이 P이고 분해능이 W/2 x H/2인 재구성된 픽쳐를 출력한다. 제 1 신경망이 입력 피쳐 맵을 처리하는 프로세스에 대해서는 앞선 설명을 참조한다. 세부사항은 본 명세서에서 설명되는 본 출원의 이러한 실시형태에서 설명되지 않는다.
제 2 신경망은 종래의 기술에서 인코딩 및 디코딩을 위해서 사용되는 네트워크 내의 현존하는 신경망이고, 원본 분해능을 가지는 재구성된 픽쳐를 생성하기 위해서 사용된다는 것에 주의해야 한다. 출력 노드는 제 2 신경망의 상이한 위치에 배치되고, 복수 개의 목표 분해능을 가지는 재구성된 픽쳐들이 출력 노드 및 존재하는 제 2 신경망을 사용함으로써 생성될 수 있다. 이러한 프로세스에서, 제 2 신경망은 제 1 피쳐 맵을 처리하기 위하여 사용된다. 상이한 목표 분해능을 가지는 재구성된 픽쳐를 생성하는 프로세스에서, 모든 출력 노드는 제 2 신경망 내의 계층을 공유한다. 이러한 방식으로, 재구성된 픽쳐를 생성하기 위하여 사용되는 신경망(제 1 신경망 및 제 2 신경망을 포함함)의 크기가 감소될 수 있고, 디코더의 공간이고 재구성된 픽쳐를 생성하기 위하여 사용되는 신경망에 의해서 점유되는 저장 공간이 감소되어, 디코더 내에서 재구성된 픽쳐를 생성하기 위하여 사용되는 신경망의 실행 오버헤드 및 실행 복잡도가 감소된다.
선택적으로, 본 출원의 이러한 실시형태에서는, 목표 분해능을 가지는 피쳐 맵이 재구성되기 이전에, 제 1 피쳐 맵 및/또는 제 2 피쳐 맵의 채널들이 추가적으로 감소될 수 있어서, 후속 재구성 프로세스의 복잡도를 감소시키고 재구성 프로세스의 효율을 개선한다.
예를 들어, 제 2 피쳐 맵은 복수 개의 채널들의 2-차원 피쳐 맵을 포함하고, 채널 감축 처리가 제 2 피쳐 맵에 수행될 수 있다. 그러면, 채널 감축 처리를 통하여 획득된 제 2 피쳐 맵이 재구성되어 재구성된 픽쳐를 획득한다. 일부 채널의 2-차원 피쳐 맵이, 복수 개의 채널을 가지고 제 2 피쳐 맵 내에 포함되는 2-차원 피쳐 맵으로부터 무작위로 추출될 수 있거나, 복수 개의 채널 내의 처음 수 개의 채널의 2-차원 피쳐 맵이 추출될 수 있거나, 복수 개의 채널 내의 마지막 수 개의 채널의 2-차원 피쳐 맵이 추출될 수 있다. 채널 감축 처리 방식은 본 출원의 이러한 실시형태에서 제한되지 않는다.
예를 들어, 도 7은 본 출원의 일 실시형태에 따른 채널 감축 프로시저의 개략도이다. 도 7에서, 채널 감축 처리가 도 5에 도시되는 제 1 신경망 및 제 2 신경망에 기반하여 수행되는 예를 사용하여 설명이 제공된다. 채널 감축 처리는 각각의 제 1 신경망 내의 제 2 피쳐 맵에 수행된다. 도 7에 도시된 바와 같이, 제 2 피쳐 맵의 채널들의 양은 b1 내에서 M1으로부터 S1으로 감소되고, 제 2 피쳐 맵의 채널들의 양은 b2 내에서 N으로부터 S2로 감소되며, 제 2 피쳐 맵의 채널들의 양은 b3 내에서 N으로부터 S3로 감소되고, 제 2 피쳐 맵의 채널들의 양은 b4 내에서 N으로부터 S4로 감소된다. S1은 M1보다 작고, S2, S3, 및 S4 각각은 N보다 작다. a1이 일 예로서 사용된다. S1 개의 채널들의 2-차원 피쳐 맵이 M1 개의 채널들의 2-차원 피쳐 맵으로부터 무작위로 추출될 수 있거나, M1 개의 채널 중 처음 S1 개의 채널의 2-차원 피쳐 맵이 추출될 수 있다. b1 내에서 제 2 피쳐 맵은 제 1 피쳐 맵이고, M1은 제 1 피쳐 맵의 채널들의 양을 나타낸다.
다른 예를 들자면, 제 1 피쳐 맵은 복수 개의 채널들의 2-차원 피쳐 맵을 포함하고, 채널 감축 처리가 제 1 피쳐 맵에 수행될 수 있다. 제 2 피쳐 맵은 채널 감축 처리를 통하여 획득된 제 1 피쳐 맵이거나, 제 2 피쳐 맵은 제 2 신경망에 기반하여, 채널 감축 처리를 통하여 획득된 제 1 피쳐 맵을 처리함으로써 획득되는 피쳐 맵이다. 도 7에 도시된 바와 같이, 제 1 피쳐 맵가 제 2 신경망 또는 b1에 입력되기 이전에 채널 감축 처리가 제 1 피쳐 맵에 수행될 수 있다. 이러한 프로세스에 대해서는 앞선 예를 참조한다. 세부사항은 본 명세서에서 설명되는 본 출원의 이러한 실시형태에서 설명되지 않는다.
더 나아가, 본 출원의 이러한 실시형태에서는, 재구성된 픽쳐가 획득된 이후에, 목표 분해능을 가지는 재구성된 픽쳐가 직접적으로 출력되고 외부 애플리케이션 계층에 디스플레이될 수 있다. 대안적으로, 목표 분해능 및 썸네일의 분해능이 비교될 수 있고, 추가적인 처리가 비교 결과에 기반하여 수행된다.
선택적으로, 목표 분해능이 썸네일의 분해능과 같으면, 목표 분해능을 가지는 재구성된 픽쳐가 직접적으로 출력되고 디스플레이된다. 목표 분해능이 썸네일의 분해능과 다르면, 스케일링-업/다운 연산이 재구성된 픽쳐에 수행됨으로써, 목표 분해능이 썸네일의 분해능과 같아지게 하고, 그 후에 스케일링-업/다운 연산을 통해 획득된 재구성된 픽쳐가 출력되고 디스플레이된다. 스케일링-업/다운 연산은 다운샘플링 연산 및 업샘플링 연산을 포함한다. 목표 분해능이 썸네일의 분해능보다 낮으면, 업샘플링 연산이 재구성된 픽쳐에 수행될 수 있다. 목표 분해능이 썸네일의 분해능보다 높으면, 다운샘플링 연산이 재구성된 픽쳐에 수행될 수 있다. 예를 들어, 업샘플링 연산은 이중선형 보간 업샘플링(bilinear interpolation upsampling), 또는 이웃하는 위치에 픽셀 값을 직접적으로 채움으로써 수행되는 업샘플링, 또는 그 스트라이드가 1보다 큰 합성곱 계층에서 역합성곱 연산을 수행함으로써 수행되는 업샘플링을 포함할 수 있다. 다운샘플링 연산은 이중선형 보간 다운샘플링, 일부 픽셀 값을 직접적으로 제거함으로써 수행된 다운샘플링, 또는 그 스트라이드가 1보다 적은 합성곱 계층에서 합성곱 연산을 수행함으로써 구현된 다운샘플링을 포함할 수 있다. 재구성된 픽쳐의 분해능이 목표 분해능으로부터 썸네일의 분해능으로 증가되거나 감소될 수 있다면, 업샘플링 방식 및 다운샘플링 방식은 본 출원의 이러한 실시형태에서 제한되지 않는다.
여전히 선택적으로, 목표 분해능 및 썸네일의 분해능 사이의 차이가 차분 임계보다 낮으면, 목표 분해능을 가지는 재구성된 픽쳐가 직접적으로 출력되고 디스플레이된다. 목표 분해능 및 썸네일의 분해능 사이의 차이가 차분 임계보다 높으면, 스케일링-업/다운 연산이 재구성된 픽쳐에 수행됨으로써, 목표 분해능 및 썸네일의 분해능 사이의 차이가 차분 임계보다 낮아지게 하고, 그러면 스케일링-업/다운 연산을 통해서 획득된 재구성된 픽쳐가 출력되고 디스플레이된다. 스케일링-업/다운 연산에 대해서는, 앞선 설명을 참조한다. 세부사항은 본 명세서에서 설명되는 본 출원의 이러한 실시형태에서 설명되지 않는다.
목표 분해능 및 썸네일의 분해능이 비교되고 추가적인 처리가 비교 결과에 기반하여 수행되는 처리가 디코더에 의해서 실행될 수 있거나, 디코더의 외부 모듈에 의해서 실행될 수 있다는 것에 주의해야 한다. 이것은 본 출원의 이러한 실시형태에서 제한되지 않는다.
결론적으로, 본 출원의 이러한 실시형태에서 제공된 인코딩 및 디코딩 방법에서, 인코더는 원본 픽쳐에 피쳐 추출을 수행하여 최초 피쳐 맵을 획득하고, 제 1 피쳐 맵을 인코딩하여 비트스트림을 획득하며, 비트스트림을 디코더로 전송한다. 디코더는 비트스트림을 디코딩하여 제 1 피쳐 맵을 획득하고, 그 후에 제 1 신경망에 기반하여 제 2 피쳐 맵을 재구성함으로써 재구성된 픽쳐를 획득한다. 제 2 피쳐 맵의 분해능 및 재구성된 픽쳐의 분해능은 각각 목표 분해능이고, 목표 분해능은 원본 픽쳐의 분해능 보다 낮다. 제 2 피쳐 맵은 제 1 피쳐 맵을 포함하거나, 제 2 피쳐 맵은 제 2 신경망에 기반하여 원본 픽쳐의 피쳐 맵을 처리함으로써 획득된 피쳐 맵이다. 디코딩 및 재구성을 통하여 획득된 재구성된 픽쳐의 분해능은 원본 픽쳐의 분해능보다 낮다. 재구성된 픽쳐를 획득하는 프로세스 중에, 원본 픽쳐는 재구성을 통하여 최초로 획득될 필요가 없다; 그 대신에, 재구성된 픽쳐는 직접적으로 획득되어 재구성된 픽쳐를 획득하는 효율을 개선하고, 디지털 비디오 애플리케이션이 원본 픽쳐의 썸네일을 디스플레이하는 속도를 개선한다.
추가적으로, 제 2 신경망은 하나 이상의 출력 노드를 포함하고, 각각의 출력 노드는 하나의 출력 분해능에 대응한다. 복수 개의 목표 분해능을 가지는 재구성된 픽쳐는 출력 노드 및 제 2 신경망을 사용함으로써 생성될 수 있다. 이러한 프로세스에서, 제 2 신경망은 제 1 피쳐 맵을 처리하기 위하여 사용된다. 상이한 목표 분해능을 가지는 재구성된 픽쳐를 생성하는 프로세스에서, 모든 출력 노드는 제 2 신경망 내의 계층을 공유한다. 이러한 방식으로, 재구성된 픽쳐를 생성하기 위하여 사용되는 신경망(제 1 신경망 및 제 2 신경망을 포함함)의 크기가 감소될 수 있고, 디코더의 공간이고 재구성된 픽쳐를 생성하기 위하여 사용되는 신경망에 의해서 점유되는 저장 공간이 감소되어, 디코더 내에서 재구성된 픽쳐를 생성하기 위하여 사용되는 신경망의 실행 오버헤드 및 실행 복잡도가 감소된다.
본 출원의 이러한 실시형태에서 제공된 방법의 시퀀스는 적합하게 조절될 수 있고, 또는 프로세스들이 상황에 기반하여 대응하도록 추가되거나 감축될 수 있다. 변형을 통해서 획득되고 본 출원에 개시된 기술적 범위에 속하는 당업자에 의해 용이하게 도출되는 임의의 방법은 본 출원의 보호 범위에 속한다. 이것은 본 출원의 이러한 실시형태에서 제한되지 않는다.
본 출원의 일 실시형태는 다른 인코딩 및 디코딩 방법을 제공한다. 도 8은 본 출원의 일 실시형태에 따른 다른 인코딩 및 디코딩 방법의 프로세스(500)의 개략적인 흐름도이다. 프로세스(500)는 전자 디바이스(인코더 및 디코더를 포함함)에 의해서 실행될 수 있다. 구체적으로 설명하면, 프로세스(500)는 신경망 모델을 호출함으로써 전자 디바이스에 의해 실행될 수 있다. 프로세스(500)는 일련의 동작으로서 설명된다. 프로세스(500)가 다양한 시퀀스로 및/또는 동시에 수행될 수 있다는 것과, 도 8에 도시되는 시퀀스로 제한되지 않는다는 것이 이해되어야 한다. 프로세스(500)는 다음 프로시저를 포함할 수 있다:
501: 인코더가 원본 픽쳐에 피쳐 추출을 수행하여 최초 피쳐 맵을 획득하는데, 최초 피쳐 맵의 분해능은 원본 픽쳐의 분해능보다 낮다.
이러한 프로세스에 대해서는 프로세스(401)를 참조한다. 세부사항은 본 명세서에서 설명되는 본 출원의 이러한 실시형태에서 설명되지 않는다.
502: 인코더는 제 1 피쳐 맵을 인코딩하여 비트스트림을 획득하는데 제 1 피쳐 맵은 최초 피쳐 맵이거나, 제 1 피쳐 맵은 최초 피쳐 맵 내의 일부 채널의 2-차원 피쳐 맵을 포함한다.
이러한 프로세스에 대해서는 프로세스(402)를 참조한다. 세부사항은 본 명세서에서 설명되는 본 출원의 이러한 실시형태에서 설명되지 않는다.
503: 인코더는 비트스트림을 디코더로 전송한다.
이러한 프로세스에 대해서는 프로세스(403)를 참조한다. 세부사항은 본 명세서에서 설명되는 본 출원의 이러한 실시형태에서 설명되지 않는다.
504: 디코더는 비트스트림을 디코딩하여 제 1 피쳐 맵을 획득한다.
이러한 프로세스에 대해서는 프로세스(404)를 참조한다. 세부사항은 본 명세서에서 설명되는 본 출원의 이러한 실시형태에서 설명되지 않는다.
505: 디코더는 제 1 신경망에 기반하여, 제 1 분해능을 가지는 제 2 피쳐 맵을 재구성하여 제 2 분해능을 가지는 재구성된 픽쳐를 획득하는데, 제 2 분해능은 제 1 분해능과 다르고, 제 2 분해능은 원본 픽쳐의 분해능보다 낮으며, 제 2 피쳐 맵은 제 1 피쳐 맵을 포함하거나, 제 2 피쳐 맵은 제 2 신경망에 기반하여 제 1 피쳐 맵을 처리함으로써 획득된 피쳐 맵이다.
이러한 프로세스 및 프로세스(405) 사이의 차이는, 프로세스(405)에서는 제 1 신경망이 제 2 피쳐 맵의 변경되지 않은 분해능을 유지하여 재구성된 픽쳐를 생성하는 반면에, 프로세스(505)에서는 제 1 신경망이 제 2 피쳐 맵의 분해능을 변경할 수 있다는 것이다.
제 1 신경망에 의해 출력되는 재구성된 픽쳐의 분해능 및 입력 제 2 피쳐 맵의 분해능은 다르다. 선택적으로, 제 1 신경망은 적어도 하나의 합성곱 계층을 포함할 수 있고, 그 스트라이드가 1이 아닌 합성곱 계층이 적어도 하나의 합성곱 계층에 존재한다. 제 1 신경망은 그 스트라이드가 1이 아닌 합성곱 계층에서 입력 제 2 피쳐 맵의 분해능에 업샘플링 또는 다운샘플링을 수행하여, 입력 제 2 피쳐 맵의 분해능을 변경할 수 있다.
예를 들어, 도 5에 도시된 바와 같이, b1 내의 제 2 합성곱 계층의 스트라이드는 1.3일 수 있고, 1.3x 다운샘플링이 제 2 피쳐 맵의 분해능에 수행된다. 도 6에 도시된 바와 같이, 제 1 신경망의 제 1 합성곱 계층의 스트라이드는 1.6일 수 있고, 1.6x 업샘플링이 제 2 피쳐 맵의 분해능에 수행된다.
제 2 신경망에 의해 출력될 수 있는 복수 개의 분해능의 값들이 고정되기 때문에, 제 2 신경망의 하나 이상의 출력 노드에 연결된 제 1 신경망에 의해 출력되는 분해능의 값이 고정된다. 프로세스(505)에서, 제 1 신경망은 입력 피쳐 맵의 분해능을 변경하는 기능을 더 가진다. 이러한 방식으로, 다양한 값을 가지는 분해능이 상이한 구조의 제 1 신경망에 기반하여 출력될 수 있다. 그러면 디코더 내에서 재구성된 픽쳐를 생성하기 위하여 사용되는 신경망의 실행 오버헤드 및 실행 복잡도가 감소되고, 재구성된 픽쳐를 생성하는 유연성이 개선된다.
프로세스(505)에서의 제 1 신경망 및 제 2 신경망의 관련된 설명에 대해서는 프로세스(405)를 참조한다. 세부사항은 본 명세서에서 설명되는 본 출원의 이러한 실시형태에서 설명되지 않는다.
결론적으로, 본 출원의 이러한 실시형태에서 제공된 인코딩 및 디코딩 방법에서, 인코더는 원본 픽쳐에 피쳐 추출을 수행하여 최초 피쳐 맵을 획득하고, 제 1 피쳐 맵을 인코딩하여 비트스트림을 획득하며, 비트스트림을 디코더로 전송한다. 디코더는 비트스트림을 디코딩하여 제 1 피쳐 맵을 획득하고, 그 후에 제 1 신경망에 기반하여 제 1 분해능을 가지는 제 2 피쳐 맵을 재구성하여 제 2 분해능을 가지는 재구성된 픽쳐를 획득한다. 제 2 분해능은 제 1 분해능과 다르고, 제 2 분해능은 원본 픽쳐의 분해능보다 낮으며, 제 2 피쳐 맵은 제 1 피쳐 맵을 포함하거나, 제 2 피쳐 맵은 제 2 신경망에 기반하여 제 1 피쳐 맵을 처리함으로써 획득된 피쳐 맵이다. 디코딩 및 재구성을 통하여 획득된 재구성된 픽쳐의 분해능은 원본 픽쳐의 분해능보다 낮다. 재구성된 픽쳐를 획득하는 프로세스 중에, 원본 픽쳐는 재구성을 통하여 최초로 획득될 필요가 없다; 그 대신에, 재구성된 픽쳐는 직접적으로 획득되어 재구성된 픽쳐를 획득하는 효율을 개선하고, 디지털 비디오 애플리케이션이 원본 픽쳐의 썸네일을 디스플레이하는 속도를 개선한다.
추가적으로, 제 1 신경망은 입력 피쳐 맵의 분해능을 변경하는 기능을 더 가진다. 이러한 방식으로, 다양한 값을 가지는 분해능이 상이한 구조의 제 1 신경망에 기반하여 출력될 수 있다. 그러면 디코더 내에서 재구성된 픽쳐를 생성하기 위하여 사용되는 신경망의 실행 오버헤드 및 실행 복잡도가 감소되고, 재구성된 픽쳐를 생성하는 유연성이 개선된다.
본 출원의 이러한 실시형태에서 제공된 방법의 시퀀스는 적합하게 조절될 수 있고, 또는 프로세스들이 상황에 기반하여 대응하도록 추가되거나 감축될 수 있다. 변형을 통해서 획득되고 본 출원에 개시된 기술적 범위에 속하는 당업자에 의해 용이하게 도출되는 임의의 방법은 본 출원의 보호 범위에 속한다. 이것은 본 출원의 이러한 실시형태에서 제한되지 않는다.
본 출원의 일 실시형태는 또 다른 인코딩 및 디코딩 방법을 제공한다. 도 9a 및 도 9b는 본 출원의 일 실시형태에 따른 또 다른 인코딩 및 디코딩 방법의 프로세스(600)의 개략적인 흐름도이다. 프로세스(600)는 전자 디바이스(인코더 및 디코더를 포함함)에 의해서 실행될 수 있다. 구체적으로 설명하면, 프로세스(600)는 신경망 모델을 호출함으로써 전자 디바이스에 의해 실행될 수 있다. 프로세스(600)는 일련의 동작으로서 설명된다. 프로세스(600)가 다양한 시퀀스로 및/또는 동시에 수행될 수 있다는 것과, 도 8에 도시되는 시퀀스로 제한되지 않는다는 것이 이해되어야 한다. 프로세스(600)는 다음 프로시저를 포함할 수 있다:
601: 인코더가 원본 픽쳐에 피쳐 추출을 수행하여 최초 피쳐 맵을 획득하는데, 최초 피쳐 맵의 분해능은 원본 픽쳐의 분해능보다 낮으며, 최초 피쳐 맵의 채널들의 양은 M이다.
이러한 프로세스에 대해서는 프로세스(401)를 참조한다. 세부사항은 본 명세서에서 설명되는 본 출원의 이러한 실시형태에서 설명되지 않는다.
602: 인코더는 인코딩될 피쳐 맵을 인코딩하여 비트스트림을 획득하는데, 비트스트림은 최초 피쳐 맵 내의 M1 개의 채널들의 2-차원 피쳐 맵에 대응하고, M1≤M이다.
이러한 프로세스에 대해서는 프로세스(402)를 참조한다. 인코딩될 피쳐 맵은 프로세스(402)에서의 제 1 피쳐 맵과 등가이다. 세부사항은 본 명세서에서 설명되는 본 출원의 이러한 실시형태에서 설명되지 않는다.
603: 인코더는 비트스트림을 디코더로 전송한다.
이러한 프로세스에 대해서는 프로세스(403)를 참조한다. 세부사항은 본 명세서에서 설명되는 본 출원의 이러한 실시형태에서 설명되지 않는다.
604: 디코더는 M1 개의 채널 내의 M2 개의 채널들의 2-차원 피쳐 맵에 대응하는 비트스트림을 디코딩하여 제 1 피쳐 맵을 획득하고, 여기에서 M2<M1이고, 제 1 피쳐 맵은 M2 개의 채널들의 2-차원 피쳐 맵을 포함한다.
비트스트림은 M1 개의 채널들의 2-차원 피쳐 맵에 대응하고, M1 개의 채널들의 2-차원 피쳐 맵들에 대응하는 비트스트림들이 차례대로 배열된다. 디코더는 M1 개의 채널 내의 처음 M2 개의 채널의 2-차원 피쳐 맵에 대응하는 비트스트림을 디코딩할 수 있다. 이러한 방식으로, M2 개의 채널들의 2-차원 피쳐 맵에 대응하는 비트스트림이 디코딩된 이후에 후속 재구성 프로시저가 실행될 수 있고, 전체 비트스트림이 디코딩된 이후에 후속 재구성 프로시저를 실행할 필요가 없어서, 제 3 피쳐 맵을 획득하는 것의 효율을 개선시키고, 재구성된 픽쳐를 획득하는 것의 효율을 개선시킨다.
M1 개의 채널 내의 M2 개의 채널들의 2-차원 피쳐 맵에 대응하는 비트스트림을 디코딩하는 프로세스에 대해서는, 프로세스(404)를 참조한다. 세부사항은 본 명세서에서 설명되는 본 출원의 이러한 실시형태에서 설명되지 않는다.
605: 디코더는 제 2 피쳐 맵을 제 1 신경망에 기반하여 재구성하여 재구성된 픽쳐를 획득하는데, 제 2 피쳐 맵의 분해능 및 재구성된 픽쳐의 분해능 각각은 목표 분해능이며, 목표 분해능은 원본 픽쳐의 분해능보다 낮으며, 제 2 피쳐 맵은 제 1 피쳐 맵이거나, 제 2 피쳐 맵은 제 2 신경망에 기반하여 제 1 피쳐 맵을 처리함으로써 획득된 피쳐 맵이다.
이러한 프로세스에 대해서는 프로세스(405)를 참조한다. 세부사항은 본 명세서에서 설명되는 본 출원의 이러한 실시형태에서 설명되지 않는다.
606: 디코더는 재구성된 픽쳐에 업샘플링 처리를 수행하여 제 1 픽쳐를 획득하고, 제 1 픽쳐의 분해능은 원본 픽쳐의 분해능과 동일하다.
예를 들어, 업샘플링 처리는 이중선형 보간 업샘플링(bilinear interpolation upsampling), 또는 이웃하는 위치에 픽셀 값을 직접적으로 채움으로써 수행되는 업샘플링, 또는 그 스트라이드가 1보다 큰 합성곱 계층에서 역합성곱 연산을 수행함으로써 수행되는 업샘플링을 포함할 수 있다.
전체 비트스트림을 디코딩함으로써 획득되는 피쳐 맵이 재구성되면, 원본 분해능을 가지는 재구성된 픽쳐를 생성하기 위하여, 원본 분해능을 가지는 픽쳐의 분해능은 높고, 생성 프로세스는 긴 시간 기간을 소모한다. 이것이 디지털 비디오 애플리케이션이 원본 분해능을 가지는 픽쳐를 디스플레이하는 속도에 영향을 주고, 사용자가 원본 분해능을 가지는 픽쳐를 브라우징할 때에 프레임 멈춤(frame freezing)이 발생한다. 본 출원의 이러한 실시형태에서는, 재구성된 픽쳐를 획득하는 프로세스 중에 비트스트림 중 부분적인 비트스트림만이 디코딩되어, 재구성된 픽쳐의 데이터량이 작아지고 재구성된 픽쳐를 획득하는 것의 효율이 높아진다. 이러한 방식으로, 제 1 픽쳐가 재구성된 픽쳐에 기반하여 획득되는 경우, 제 1 픽쳐를 획득하는 것의 효율이 개선되어, 제 1 픽쳐를 획득하는 프로세스 중에 소모되는 시간을 감소시키고, 디지털 비디오 애플리케이션이 원본 분해능을 가지는 픽쳐를 디스플레이하는 속도를 개선한다.
프로세스(602)로부터, 비트스트림이 최초 피쳐 맵의 비트스트림일 수 있다는 것(즉, M1=M), 또는 비트스트림이 최초 피쳐 맵 내의 일부 채널의 2-차원 피쳐 맵에 대응한다는 것(즉, M1<M)이 학습될 수 있다. M1=M인 경우, 원본 분해능을 가지는 고품질 픽쳐가 재구성을 통하여 획득될 수 있다. 다르게 말하면, 후속 프로세스(607 및 608)가 실행될 수 있다. M1<M인 경우, 후속 프로세스(607 및 608)가 실행될 필요가 없다.
607: 디코더는 M1 개의 채널 중 M2 개의 채널이 아닌 채널의 2-차원 피쳐 맵에 대응하는 비트스트림을 디코딩하여 제 3 피쳐 맵을 획득하는데, 제 3 피쳐 맵은 M1-M2 개의 채널의 2-차원 피쳐 맵을 포함한다.
디코딩 프로세스에 대해서는 프로세스(404)를 참조한다. 세부사항은 본 명세서에서 설명되는 본 출원의 이러한 실시형태에서 설명되지 않는다.
608: 디코더는 제 2 신경망에 기반하여 제 1 피쳐 맵 및 제 3 피쳐 맵을 처리하여 제 2 픽쳐를 획득하는데, 여기에서 제 2 픽쳐의 분해능은 원본 픽쳐의 분해능과 동일하다.
제 1 피쳐 맵 및 제 3 피쳐 맵은 M1 개의 채널들의 2-차원 피쳐 맵을 형성한다(즉, 최초 피쳐 맵을 형성함). 제 2 픽쳐는 제 2 신경망의 최종 출력이다. 제 2 신경망의 구조 및 처리 프로시저에 대해서는 프로세스(405)를 참조한다. 세부사항은 본 명세서에서 설명되는 본 출원의 이러한 실시형태에서 설명되지 않는다.
제 2 픽쳐는 제 1 피쳐 맵 및 제 3 피쳐 맵이 재구성된 이후에 생성되고, 제 2 픽쳐의 데이터량은 제 1 픽쳐의 데이터량보다 크며, 제 2 픽쳐의 픽쳐 품질은 제 1 픽쳐의 픽쳐 품질보다 높다. 프로세스(607) 및 프로세스(608)는 프로세스(606)와 동시에 실행될 수 있다. 구체적으로 말하자면, 저품질 제 1 픽쳐가 프로세스(606)에서 신속하게 생성됨으로써, 저품질 제 1 픽쳐가 디지털 비디오 애플리케이션에 의해 우선 디스플레이되게 하고, 고품질 제 2 픽쳐가 프로세스(607) 및 프로세스(608)에서 재구성을 통하여 획득된다. 제 2 픽쳐의 재구성 프로세스가 긴 시간 기간을 소모하기 때문에, 저품질의 제 1 픽쳐가 우선 디스플레이를 위하여 신속하게 생성되고, 고품질의 제 2 픽쳐가 재구성을 통하여 획득된다. 이러한 방식으로, 디지털 비디오 애플리케이션이 원본 분해능을 가지는 픽쳐를 디스플레이할 때에 프레임 멈춤이 생기지 않고, 원본 분해능을 가지는 픽쳐의 디스플레이 효과가 개선된다.
결론적으로, 본 출원의 이러한 실시형태에서 제공된 인코딩 및 디코딩 방법에서, 인코더는 원본 픽쳐에 피쳐 추출을 수행하여 최초 피쳐 맵을 획득하고, 최초 피쳐 맵의 채널들의 양은 M이며, 제 1 피쳐 맵을 인코딩하여 비트스트림을 획득하고, 비트스트림을 디코더로 전송한다. 비트스트림은 최초 피쳐 맵 내의 M1 개의 채널의 2-차원 피쳐 데이터에 대응하고, M1≤M이다. 디코더는 M1 개의 채널 내의 M2 개의 채널들의 2-차원 피쳐 맵에 대응하는 비트스트림을 디코딩하여 제 1 피쳐 맵을 획득하고, 제 2 피쳐 맵을 제 1 신경망에 기반하여 재구성하여 재구성된 픽쳐를 획득한다. 제 2 피쳐 맵의 분해능 및 재구성된 픽쳐의 분해능 각각은 목표 분해능이고, 목표 분해능은 원본 픽쳐의 분해능보다 낮으며, 제 2 피쳐 맵은 제 1 피쳐 맵이거나, 제 2 피쳐 맵은 제 2 신경망에 기반하여 제 2 피쳐 맵을 처리함으로써 획득된 피쳐 맵이다. 디코딩 및 재구성을 통하여 획득된 재구성된 픽쳐의 분해능은 원본 픽쳐의 분해능보다 낮다. 재구성된 픽쳐를 획득하는 프로세스 중에, 원본 픽쳐는 재구성을 통하여 최초로 획득될 필요가 없다; 그 대신에, 재구성된 픽쳐는 직접적으로 획득되어 재구성된 픽쳐를 획득하는 효율을 개선하고, 디지털 비디오 애플리케이션이 원본 픽쳐의 썸네일을 디스플레이하는 속도를 개선한다.
추가적으로, 재구성된 픽쳐가 획득된 이후에, 업샘플링 처리가 재구성된 픽쳐에 추가적으로 수행될 수 있어서, 제 1 픽쳐를 획득한다. 제 1 픽쳐의 분해능은 원본 픽쳐의 분해능과 동일하다. 추가적으로, M1 개의 채널 내의 M2 개의 채널이 아닌 채널의 2-차원 피쳐 맵에 대응하는 비트스트림이 디코딩되어 제 3 피쳐 맵을 획득한다. 제 3 피쳐 맵은 M1-M2 개의 채널의 2-차원 피쳐 맵을 포함한다. 제 1 피쳐 맵 및 제 3 피쳐 맵은 제 2 신경망에 기반하여 처리되어 제 2 픽쳐를 획득한다. 제 2 픽쳐의 분해능은 원본 픽쳐의 분해능과 동일하다. 제 2 픽쳐의 데이터량은 제 1 픽쳐의 데이터량보다 크며, 제 2 픽쳐의 픽쳐 품질은 제 1 픽쳐의 픽쳐 품질보다 높다. 제 2 픽쳐의 재구성 프로세스가 긴 시간 기간을 소모하기 때문에, 저품질의 제 1 픽쳐가 우선 디스플레이를 위하여 신속하게 생성되고, 고품질의 제 2 픽쳐가 재구성을 통하여 획득된다. 이러한 방식으로, 디지털 비디오 애플리케이션이 원본 분해능을 가지는 픽쳐를 디스플레이할 때에 프레임 멈춤이 생기지 않고, 원본 분해능을 가지는 픽쳐의 디스플레이 효과가 개선된다.
본 출원의 이러한 실시형태에서 제공된 방법의 시퀀스는 적합하게 조절될 수 있고, 또는 프로세스들이 상황에 기반하여 대응하도록 추가되거나 감축될 수 있다. 예를 들어, 비트스트림이 최초 피쳐 맵 내의 일부 채널의 2-차원 피쳐 맵에 대응하는 경우, 프로세스(607 및 608)는 수행되지 않을 수도 있다. 변형을 통해서 획득되고 본 출원에 개시된 기술적 범위에 속하는 당업자에 의해 용이하게 도출되는 임의의 방법은 본 출원의 보호 범위에 속한다. 이것은 본 출원의 이러한 실시형태에서 제한되지 않는다.
본 출원의 일 실시형태는 또 다른 인코딩 및 디코딩 방법을 제공한다. 도 10은 본 출원의 일 실시형태에 따른 또 다른 인코딩 및 디코딩 방법의 프로세스(700)의 개략적인 흐름도이다. 프로세스(700)는 전자 디바이스(인코더 및 디코더를 포함함)에 의해서 실행될 수 있다. 구체적으로 설명하면, 프로세스(700)는 신경망 모델을 호출함으로써 전자 디바이스에 의해 실행될 수 있다. 프로세스(700)는 일련의 동작으로서 설명된다. 프로세스(700)가 다양한 시퀀스로 및/또는 동시에 수행될 수 있다는 것과, 도 10에 도시되는 시퀀스로 제한되지 않는다는 것이 이해되어야 한다. 프로세스(700)는 다음 프로시저를 포함할 수 있다:
701: 인코더가 원본 픽쳐에 피쳐 추출을 수행하여 최초 피쳐 맵을 획득하는데, 최초 피쳐 맵의 분해능은 원본 픽쳐의 분해능보다 낮다.
이러한 프로세스에 대해서는 프로세스(401)를 참조한다. 세부사항은 본 명세서에서 설명되는 본 출원의 이러한 실시형태에서 설명되지 않는다.
702: 인코더는 원본 픽쳐의 피쳐 맵을 인코딩하여 비트스트림을 획득하는데, 여기에서 원본 픽쳐의 피쳐 맵은 최초 피쳐 맵이거나, 원본 픽쳐의 피쳐 맵은 최초 피쳐 맵 내의 일부 채널의 2-차원 피쳐 맵을 포함한다.
이러한 프로세스에 대해서는 프로세스(402)를 참조한다. 세부사항은 본 명세서에서 설명되는 본 출원의 이러한 실시형태에서 설명되지 않는다.
703: 인코더는 비트스트림을 디코더로 전송한다.
이러한 프로세스에 대해서는 프로세스(403)를 참조한다. 세부사항은 본 명세서에서 설명되는 본 출원의 이러한 실시형태에서 설명되지 않는다.
704: 디코더는 비트스트림을 디코딩하여 원본 픽쳐의 피쳐 맵을 획득한다.
이러한 프로세스에 대해서는 프로세스(404)를 참조한다. 세부사항은 본 명세서에서 설명되는 본 출원의 이러한 실시형태에서 설명되지 않는다.
705: 디코더는 신경망에 기반하여 원본 픽쳐의 피쳐 맵을 재구성하여 목표 분해능을 가지는 재구성된 픽쳐를 획득하는데, 여기에서 목표 분해능은 원본 픽쳐의 피쳐 맵의 분해능 이하이다.
신경망에 의해 출력된 재구성된 픽쳐의 분해능 및 입력 피쳐 맵의 분해능은 동일하거나 다르다.
하나 이상의 신경망이 존재할 수 있다. 하나의 신경망이 존재하는 경우, 디코더는 원본 픽쳐의 피쳐 맵을 신경망에 직접적으로 입력하여 신경망에 의해 출력된 재구성된 픽쳐를 획득할 수 있다. 이러한 경우에, 신경망은 하나의 분해능을 가지는 재구성된 픽쳐만을 출력할 수 있다.
복수 개의 신경망이 존재하는 경우, 임의의 두 개의 신경망의 구조들은 동일하거나 상이할 수 있다. 이것은 본 출원의 이러한 실시형태에서 제한되지 않는다. 디코더는 복수 개의 신경망 중에서 목표 신경망을 결정할 수 있다. 그러면, 원본 픽쳐의 피쳐 맵이 목표 신경망에 입력되어, 목표 신경망에 의해 출력된 재구성된 픽쳐를 획득한다.
각각의 신경망은 적어도 하나의 합성곱 계층을 포함하고, 합성곱 계층은 입력 원본 픽쳐의 피쳐 맵을 처리하도록 구성된다. 각각의 신경망은 하나의 출력 분해능에 대응하고, 임의의 신경망의 출력 분해능은 원본 픽쳐의 피쳐 맵이 임의의 신경망에 입력된 이후에 임의의 신경망 내의 최종 합성곱 계층에 의해 출력된 피쳐 맵의 분해능이다. 디코더는 우선 목표 분해능을 결정하고, 그 후에 그 입력 분해능이 목표 분해능인 신경망이 목표 신경망이라고 결정할 수 있다. 목표 분해능을 결정하기 위한 방법에 대해서는 프로세스(405)를 참조한다. 세부사항은 본 명세서에서 설명되는 본 출원의 이러한 실시형태에서 설명되지 않는다.
예를 들어, 도 11은 본 출원의 일 실시형태에 따른 신경망의 구조의 개략도이다. 도 11은 네 개의 신경망(d1 내지 d4)을 도시한다. d1은 두 개의 합성곱 계층을 포함하고, d1 내의 두 개의 합성곱 계층 각각의 합성곱 커널의 크기는 5 x 5이며, 두 개의 합성곱 계층 각각의 스트라이드는 1이다. d1에서, 제 1 합성곱 계층의 출력 채널들의 양은 N1이고, 최종 합성곱 계층의 출력 채널들의 양은 P이다. d2는 세 개의 합성곱 계층을 포함하고, d2 내의 세 개의 합성곱 계층의 합성곱 커널의 크기 각각은 5 x 5이다. d2 내의 제 1 합성곱 계층의 스트라이드는 2이고, 출력 채널들의 양은 N이다; d2 내의 제 2 합성곱 계층의 스트라이드 및 최종 합성곱 계층의 스트라이드 각각은 1이고, d2 내의 제 2 합성곱 계층의 출력 채널들의 양은 N1이며, d2 내의 최종 합성곱 계층의 출력 채널들의 양은 P이다. d3는 네 개의 합성곱 계층을 포함하고, d3 내의 제 1 합성곱 계층의 스트라이드 및 제 2 합성곱 계층의 스트라이드 각각은 2이며, 출력 채널들의 양은 각각 N이다; d3 내의 제 3 합성곱 계층의 스트라이드 및 최종 합성곱 계층의 스트라이드 각각은 1이고, d3 내의 제 3 합성곱 계층의 출력 채널들의 양은 N1이며, 최종 합성곱 계층의 출력 채널들의 양은 P이다. d4는 다섯 개의 합성곱 계층을 포함하고, d4 내의 제 1 합성곱 계층의 스트라이드, 제 2 합성곱 계층의 스트라이드, 및 제 3 합성곱 계층의 스트라이드 각각은 2이며, 출력 채널들의 양은 각각 N이다; d4 내의 제 4 합성곱 계층의 스트라이드 및 최종 합성곱 계층의 스트라이드 각각은 1이고, d4 내의 제 4 합성곱 계층의 출력 채널들의 양은 N1이며, 최종 합성곱 계층의 출력 채널들의 양은 P이다.
원본 픽쳐의 피쳐 맵의 채널들의 양은 M이고, 분해능은 W/16 x H/16이며, 및 네 개의 신경망(d1 내지 d4)의 출력 분해능은 각각 W/16 x H/16, W/8 x H/8, W/4 x H/4, 및 W/2 x H/2라고 가정된다.
목표 신경망이 d1인 경우, 원본 픽쳐의 피쳐 맵은 d1으로 입력되고, d1의 제 1 합성곱 계층 및 제 2 합성곱 계층은 입력 피쳐 맵의 변경되지 않은 분해능을 유지하며, 입력 피쳐 맵의 양을 순차적으로 변환하여, 그 채널들의 양이 P이고 분해능이 W/16 x H/16인 재구성된 픽쳐를 최종적으로 출력한다.
목표 신경망이 d2인 경우, 원본 픽쳐의 피쳐 맵이 d2로 입력되고, d2의 제 1 합성곱 계층은 피쳐 맵의 분해능에 2x 업샘플링을 수행하며, 그 채널들의 양이 N이고 분해능이 W/8 x H/8인 피쳐 맵을 출력한다. d2의 제 2 합성곱 계층 및 제 3 합성곱 계층은 입력 피쳐 맵의 변경되지 않은 분해능을 유지하고, 입력 피쳐 맵의 양을 순차적으로 변환하여, 그 채널들의 양이 P이고 분해능이 W/8 x H/8인 재구성된 픽쳐를 최종적으로 출력한다.
목표 신경망이 d3인 경우, 원본 픽쳐의 피쳐 맵이 d3로 입력되고, d3의 제 1 합성곱 계층 및 제 2 합성곱 계층은 원본 픽쳐의 피쳐 맵의 분해능에 2x 업샘플링을 수행하며, 채널들의 양이 N이고 분해능이 W/4 x H/4인 피쳐 맵을 출력한다. d3의 제 3 합성곱 계층 및 제 4 합성곱 계층은 입력 피쳐 맵의 변경되지 않은 분해능을 유지하고, 입력 피쳐 맵의 양을 순차적으로 변환하여, 그 채널들의 양이 P이고 분해능이 W/4 x H/4인 재구성된 픽쳐를 최종적으로 출력한다.
목표 신경망이 d4인 경우, 원본 픽쳐의 피쳐 맵이 d4로 입력되고, d4의 제 1 합성곱 계층, 제 2 합성곱 계층, 및 제 3 합성곱 계층은 원본 픽쳐의 피쳐 맵의 분해능에 2x 업샘플링을 수행하며, 채널들의 양이 N이고 분해능이 W/2 x H/2인 피쳐 맵을 출력한다. d4의 제 4 합성곱 계층 및 제 5 합성곱 계층은 입력 피쳐 맵의 변경되지 않은 분해능을 유지하고, 입력 피쳐 맵의 양을 순차적으로 변환하여, 그 채널들의 양이 P이고 분해능이 W/2 x H/2인 재구성된 픽쳐를 최종적으로 출력한다.
예를 들어, 도 12는 본 출원의 일 실시형태에 따른 다른 신경망의 구조의 개략도이다. 도 12 도시한다 네 개의 신경망(e1 내지 e4)을 도시한다. e1은 두 개의 합성곱 계층을 포함하고, e1 내의 두 개의 합성곱 계층 각각의 합성곱 커널의 크기는 5 x 5이며, 두 개의 합성곱 계층 각각의 스트라이드는 1이다. e1에서, 제 1 합성곱 계층의 출력 채널들의 양은 N1이고, 최종 합성곱 계층의 출력 채널들의 양은 P이다. e2는 하나의 합성곱 계층을 포함하고, e2 내의 하나의 합성곱 계층의 합성곱 커널의 크기는 5 x 5이며, 스트라이드는 2이고, 출력 채널들의 양은 P이다. e3는 두 개의 합성곱 계층을 포함하고, e3 내의 제 1 합성곱 계층의 스트라이드 및 제 2 합성곱 계층의 스트라이드 각각은 2이며, e3 내의 제 1 합성곱 계층의 출력 채널들의 양은 N이고, d3 내의 제 2 합성곱 계층의 출력 채널들의 양은 P이다. e4는 세 개의 합성곱 계층을 포함하고, e4 내의 제 1 합성곱 계층의 스트라이드, 제 2 합성곱 계층의 스트라이드, 및 제 3 합성곱 계층의 스트라이드는 각각 2이며, e4 내의 제 1 합성곱 계층 및 제 2 합성곱 계층의 출력 채널들의 양은 각각 N이고, e4 내의 제 3 합성곱 계층의 출력 채널들의 양은 P이다.
원본 픽쳐의 피쳐 맵은 M x W/16 x H/16이고, 및 네 개의 신경망(e1 내지 e4)의 출력 분해능은 각각 W/16 x H/16, W/8 x H/8, W/4 x H/4, 및 W/2 x H/2라는 것이 가정된다. 다르게 말하면, 목표 신경망이 각각 e1 내지 e4인 경우, 출력 재구성된 픽쳐는 각각 P x W/16 x H/16, P x W/8 x H/8, P x W/4 x H/4, 및 P x W/2 x H/2이다.
하나 이상의 목표 분해능이 존재할 수 있고, 대응하도록, 하나 이상의 목표 신경망이 존재할 수 있다는 것에 주의해야 한다. 복수 개의 목표 신경망이 존재하는 경우, 복수 개의 목표 신경망은 대응하는 목표 분해능을 가지는 재구성된 픽쳐를 동시에 출력할 수 있다. 각각의 목표 신경망의 재구성 프로세스에 대해서는 앞선 설명을 참조한다. 세부사항은 본 명세서에서 설명되는 본 출원의 이러한 실시형태에서 설명되지 않는다.
도 11 및 도 12에서의 신경망의 구조는 설명을 위한 예들이다. 이것은 본 출원의 이러한 실시형태에서 제한되지 않는다. 예를 들어, 도 11 또는 도 12에 기반하여, 임의의 신경망은 하나 이상의 합성곱 계층을 더 포함할 수 있고, 복수 개의 합성곱 계층은 동일하거나 다를 수 있다.
선택적으로, 본 출원의 이러한 실시형태에서는, 원본 픽쳐의 피쳐 맵이 재구성되거나 신경망의 최종 합성곱 계층이 재구성된 픽쳐를 출력하기 이전에, 채널 감축이 원본 픽쳐의 피쳐 맵 및/또는 합성곱 계층에 의해 출력된 중간 피쳐 맵에 추가적으로 수행될 수 있어서, 후속 재구성 프로세스의 복잡도를 감소시키고 재구성 프로세스의 효율을 개선한다. 이러한 프로세스에 대해서는 프로세스(405)를 참조한다. 세부사항은 본 명세서에서 설명되는 본 출원의 이러한 실시형태에서 설명되지 않는다.
도 13은 본 출원의 일 실시형태에 따른 다른 채널 감축 프로시저의 개략도이다. 도 13에서, 채널 감축이 도 11에 도시되는 신경망에 기반하여 수행되고, 채널 감축이 중간 피쳐 맵에 수행되는 예를 사용하여 설명이 제공된다. 즉, 합성곱 계층의 출력 채널들의 양은 각각의 신경망에서 감소된다. 도 13에 도시된 바와 같이, 원본 픽쳐의 피쳐 맵의 채널들의 양은 d1 내에서 M1으로부터 T1으로 감소되고, 제 1 합성곱 계층에 의해 출력된 중간 피쳐 맵의 채널들의 양은 d2 내에서 N으로부터 T2로 감소되며, 제 2 합성곱 계층에 의해 출력된 중간 피쳐 맵의 채널들의 양은 d3 내에서 N으로부터 T3로 감소되고, 제 3 합성곱 계층에 의해 출력된 중간 피쳐 맵의 채널들의 양은 d4 내에서 N으로부터 T4로 감소된다. T1은 M1보다 작고, T2, T3, 및 T4 각각은 N보다 작다.
프로세스(705)에 대해서는 프로세스(405)를 참조한다. 세부사항은 본 명세서에서 설명되는 본 출원의 이러한 실시형태에서 설명되지 않는다.
결론적으로, 본 출원의 이러한 실시형태에서 제공된 인코딩 및 디코딩 방법에서, 인코더는 원본 픽쳐에 피쳐 추출을 수행하여 원본 픽쳐의 피쳐 맵을 획득하고, 원본 픽쳐의 피쳐 맵을 인코딩하여 비트스트림을 획득하며, 비트스트림을 디코더로 전송한다. 디코더 비트스트림을 디코딩하여 원본 픽쳐의 피쳐 맵을 획득하고, 그 후에 원본 픽쳐의 피쳐 맵을 재구성하여 목표 분해능을 가지는 재구성된 픽쳐를 획득한다. 목표 분해능은 원본 픽쳐의 피쳐 맵의 분해능 이하이다. 디코딩 및 재구성을 통하여 획득된 재구성된 픽쳐의 분해능은 원본 픽쳐의 분해능보다 낮다. 재구성된 픽쳐를 획득하는 프로세스 중에, 원본 픽쳐는 재구성을 통하여 최초로 획득될 필요가 없다; 그 대신에, 재구성된 픽쳐는 직접적으로 획득되어 재구성된 픽쳐를 획득하는 효율을 개선하고, 디지털 비디오 애플리케이션이 원본 픽쳐의 썸네일을 디스플레이하는 속도를 개선한다.
추가적으로, 원본 픽쳐의 피쳐 맵은 신경망에 기반하여 재구성될 수 있어서, 재구성된 픽쳐를 획득한다. 신경망은 복수 개의 하부 신경망(neural subnetwork)을 포함하고, 각각의 하부 신경망은 하나의 출력 분해능에 대응한다. 목표 분해능은 썸네일의 요구된 분해능에 기반하여 결정될 수 있고, 그 출력 분해능이 목표 분해능인 하부 신경망이 목표 신경 서브넷(neural subnet)으로서 결정되며, 재구성된 픽쳐가 목표 신경 서브넷에 기반하여 획득된다. 재구성된 픽쳐를 획득하는 프로세스에서, 매칭된 하부 신경망이 결정된 목표 분해능에 기반하여 선택될 수 있고, 복수 개의 목표 분해능을 가지는 재구성된 픽쳐가 획득될 수 있어서, 재구성된 픽쳐를 획득하는 유연성을 개선한다.
본 출원의 이러한 실시형태에서 제공된 방법의 시퀀스는 적합하게 조절될 수 있고, 또는 프로세스들이 상황에 기반하여 대응하도록 추가되거나 감축될 수 있다. 변형을 통해서 획득되고 본 출원에 개시된 기술적 범위에 속하는 당업자에 의해 용이하게 도출되는 임의의 방법은 본 출원의 보호 범위에 속한다. 이것은 본 출원의 이러한 실시형태에서 제한되지 않는다.
선택적으로, 본 출원의 실시형태는 후속하는 다섯 개의 실시형태를 더 포함할 수 있다:
실시형태 1
이러한 실시형태의 주 흐름도가 도 14에 도시된다.
도 14는 본 출원의 일 실시형태에 따른 인코딩 및 디코딩 프로시저의 개략도이다. 인코더측에서, 원본 픽쳐가 피쳐 추출 모듈에 입력되어 피쳐 맵 을 출력하고, 피쳐 맵 이 양자화 모듈에 입력되어 양자화된 피쳐 맵 을 획득한다. 엔트로피 인코딩 모듈은 피쳐 맵 에 엔트로피 인코딩을 수행하여 압축된 비트스트림을 획득한다. 인코더측에서의 기술적 솔루션은 다음과 같이 설명된다:
단계 1: 3-차원 피쳐 맵 y를 획득한다.
원본 픽쳐 가 피쳐 추출 모듈에 입력되어 3-차원 피쳐 픽쳐 를 출력한다. 피쳐 추출 모듈은 신경망-기반 방식으로 구현된다. 도 15는 본 출원의 일 실시형태에 따른 피쳐 추출 모듈의 네트워크 구조의 개략도이다. 피쳐 추출 모듈은 인터리빙되고 연쇄된 네 개의 합성곱 계층 및 세 개의 GDN 계층을 주로 포함한다. 각각의 합성곱 계층의 합성곱 커널의 크기는 5 x 5이고, 최종 합성곱 계층의 출력 피쳐 맵의 채널들의 양은 M이며, 및 각각의 합성곱 계층의 스트라이드(stride)는 2이고, 이것은 2x 다운샘플링이 입력 픽쳐 또는 피쳐 맵의 폭 및 높이에 수행된다는 것을 표시한다. 그러므로, 그 크기가 W x H인 원본 픽쳐가 피쳐 추출 네트워크네 입력된 이후에, 그 크기가 M x W/16 x H/16인 3-차원 피쳐 맵 y가 출력된다. 피쳐 맵 y가 M 개의 채널로 이루어지고 그 분해능이 W/16 x H/16인 2-차원 피쳐 맵을 포함한다는 것이 이해될 수 있다.
제 1 합성곱 계층(conv N x 5 x 5/2↓)이 일 예로서 사용된다. 이것은 합성곱 커널이 5 x 5이라는 것을 표시하고, N은 제 1 계층의 합성곱 커널의 출력 피쳐 맵의 채널들의 양이 N이라는 것을 표시하며, 숫자 2는 스트라이드가 2라는 것을 표시한다. 2x 다운샘플링 연산이 입력 픽쳐의 폭 및 높이 양자 모두에 수행된다는 것이 이해된다. 그러므로, 제 1 합성곱 계층에 의해 출력되는 피쳐 맵의 크기는 N x W/2 x H/2이다.
이와 유사하게, 제 2 합성곱 계층의 채널들의 양이 N이고 스트라이드가 2이면, 출력 피쳐 맵의 크기는 N x W/4 x H/4이다. 도 15에 도시되는 네 개의 계층에서 합성곱 연산이 수행된 이후에, 출력 피쳐 맵 y의 크기는 M x W/16 x H/16이다.
이러한 단계에서, 피쳐 추출 네트워크의 구조는 특정하게 제한되지 않고, 합성곱 계층들의 양도 제한되지 않으며, GDN이 포함되는지 여부도 제한되지 않고, 다른 활성화 함수가 존재하는지 여부도 제한되지 않으며, 합성곱 커널의 크기도 제한되지 않고, 3 x 3, 5 x 5, 7 x 7, 또는 다른 크기일 수 있으며, 인코더/디코더측의 특정한 네트워크 디자인에 의해서 결정된다는 것에 주의해야 한다. 이것은 본 출원에서 제한되지 않는다. 본 출원에서는 5 x 5이 설명을 위한 예로서 사용된다.
단계 2: 피쳐 맵 y를 양자화 모듈에 입력하여 양자화된 피쳐 맵 y0를 획득한다.
피쳐 양자화 모듈은 피쳐 맵 내의 각각의 피쳐 값(또는 피쳐 요소)을 양자화하고, 양자화된 피쳐 맵 y0를 획득하기 위하여, 부동 소수점 숫자의 피쳐 값을 반올림하여 정수 피쳐 값을 획득한다. 피쳐 맵 y0는 M x W/16 x H/16인 3-차원의 정수 피쳐 맵이다.
특정한 양자화 방법이 본 출원에서 제한되지 않는다는 것, 그리고 대안적으로: 부동 소수점 숫자의 피쳐 값을 저림으로써 정수 피쳐 값을 획득하는 것일 수도 있다는 것에 주의해야 한다. 대안적으로, 양자화된 피쳐 값이 미리 설정된 양자화 스트라이드에 기반하여 양자화 연산을 수행함으로써 획득될 수 있다.
단계 3: 엔트로피 인코딩이 피쳐 맵 y0에 엔트로피 인코딩을 수행하여 압축된 비트스트림을 획득한다.
엔트로피 인코딩이 피쳐 맵 y0 내의 각각의 피쳐 요소에 수행되는 경우, 이러한 처리는 후속하는 방법 중 하나로 수행될 수 있다. 이것은 본 명세서에서 제한되지 않는다.
방법 1: 확률 모델-기반 엔트로피 인코딩 방법: 엔트로피 인코딩이 피쳐 맵 y0 내의 각각의 피쳐 요소에 수행될 경우, 확률 분포 모델을 사용함으로써 모델링이 우선 수행되고, 현재 피쳐 요소의 콘텍스트 정보가 확률 추정 네트워크에 입력되어 모델 파라미터를 획득하며, 모델 파라미터가 확률 분포 모델로 치환되어 현재 피쳐 요소의 확률 분포를 획득하고, 엔트로피 인코딩이 확률 분포에 기반하여 수행된다. 확률 분포 모델은 가우시안 단일 모델(Gaussian single model, GSM), 비대칭 가우시안 모델, 가우시안 혼합 모델(Gaussian mixture model, GMM), 및 라플라스 분포 모델(Laplace distribution)일 수 있다. 확률 추정 네트워크는 딥러닝-기반 네트워크, 예를 들어 순환 신경망(Recurrent Neural Network, RNN) 또는 합성곱 신경망(Convolutional Neural Network, PixelCNN)일 수 있다. 이것은 본 명세서에서 제한되지 않는다.
방법 2: 하이퍼 이전(hyper prior) 엔트로피 인코딩 방법:
피쳐 맵 이 에지 정보 추출 모듈을 통과하고, 에지 정보 z가 출력된다. 에지 정보 z는 양자화되어 를 획득한다. 엔트로피 인코딩이 에 수행되고, 이 비트스트림 내에 기록된다. 인코더측은 엔트로피 디코딩 동작을 수행하고 디코딩된 를 획득하고, 를 확률 추정 네트워크에 입력하여 피쳐 맵 y0 내의 각각의 피쳐 요소의 확률 분포를 출력한다(엔트로피 인코딩이 에 수행되고 그 후에 디코딩이 수행되어, 인코딩 및 디코딩의 동기화를 보장함). 엔트로피 인코딩 모듈은 피쳐 맵 내의 각각의 피쳐 요소에 내의 각각의 피쳐 요소의 확률 분포에 기반하여 엔트로피 인코딩을 수행하여, 압축된 비트스트림을 획득한다. 에지 정보 도 역시 피쳐 정보이고, 3-차원 피쳐 맵으로서 표현된다. 에지 정보 내에 포함된 피쳐 요소의 양은 피쳐 맵 내의 피쳐 요소의 양보다 적다.
도 14의 흐름도에 도시된 바와 같이, 디코더측에서는 피쳐 맵 y0가 압축된 비트스트림을 파싱함으로써 획득되고, y0가 재구성 모듈에 입력되어 재구성된 픽쳐를 획득한다. 재구성된 픽쳐는 저분해능의 재구성된 픽쳐를 포함하고, 원본 분해능을 가지는 재구성된 픽쳐를 더 포함할 수 있다. 단-대-단 픽쳐 인코딩 및 디코딩 솔루션에서는, 디코더측의 재구성 모듈의 구조는 보통 인코더측의 피쳐 추출 모듈의 구조에 대응한다. 구체적으로 설명하면, 도 15의 인코더측의 피쳐 추출 모듈의 네트워크 구조에 대응하여, 도 16은 본 출원의 일 실시형태에 따른 재구성 모듈의 네트워크 구조의 개략도이다. 원분-분해능 재구성 네트워크는 원본 분해능을 가지는 재구성된 픽쳐를 출력할 수 있고, 하나 이상의 상이한 저분해능 재구성 네트워크 브랜치들이 존재할 수 있으며, 상이한 분해능을 가지는 저분해능의 재구성된 픽쳐들을 대응하도록 출력할 수 있다.
본 출원의 주된 혁신 포인트는 재구성 모듈에 존재하고, 디코더측의 기술적 솔루션이 다음과 같이 설명된다:
단계 1: 압축된 비트스트림에 엔트로피 디코딩을 수행하여 3-차원 피쳐 맵 y0를 획득하는데, 여기에서 y0는 M 개의 채널을 가지고 그 분해능이 W/k x H/k인 2-차원 피쳐 맵을 포함한다.
k의 값은 인코더측의 피쳐 추출 네트워크의 네트워크 구조에 의하여 결정된다. 구체적으로 설명하면, k의 값은 피쳐 추출 네트워크 내의 합성곱 계층들의 양 및 각각의 합성곱 계층의 스트라이드에 관련된다. 인코더측에 대응하여, 이러한 실시형태에서는 k=16이고, 이러한 실시형태에서는 k=16에 기반하여 설명이 제공된다.
엔트로피 디코딩 방법은 인코더측에 대응한다. 엔트로피 인코딩이 피쳐 맵 y0 내의 각각의 피쳐 요소에 수행되는 경우, 이러한 처리는 후속하는 방법 중 하나로 수행될 수 있다. 이것은 다음과 같이 간략하게 설명된다:
방법 1: 현재 피쳐 요소의 콘텍스트 정보가 인코더측에 있는 것과 같은 확률 추정 네트워크에 입력되어 모델 파라미터를 획득하고, 모델 파라미터가 확률 분포 모델 내로 치환되어 현재 피쳐 요소의 확률 분포를 획득하며, 엔트로피 디코딩이 확률 분포에 기반하여 수행되어 피쳐 요소의 값을 획득한다.
방법 2: 우선, 에지 정보 가 디코딩을 통하여 획득되고, 에지 정보 가 인코더측에 있는 것과 같은 확률 추정 네트워크에 입력되며, 현재 피쳐 요소의 확률 분포가 출력된다. 산술적 인코딩이 현재 피쳐 요소의 확률 분포에 기반하여 현재 피쳐 요소에 수행되어, 현재 피쳐 요소의 값을 획득한다.
단계 2: 제 1 분해능을 획득하는데, 여기에서 제 1 분해능은 원본 픽쳐의 분해능 W x H보다 낮다.
제 1 분해능을 획득하기 위한 방법은 후속하는 방법들 중 하나일 수 있다. 제 1 분해능이 디코더의 외부에 의해서 규정되면, 디코더는 대응하는 재구성 브랜치를 규정된 제 1 분해능에 기반하여 선택하여, 픽쳐 재구성 동작을 수행한다. 이러한 경우에, 디코더는 제 1 분해능을 획득하는 단계를 포함하지 않을 수 있고, 단계 3이 직접적으로 수행될 수 있다.
제 1 분해능이 복수 개의 분해능일 수 있다는 것에 주의해야 한다. 복수 개의 분해능이 디코더의 외부에 의하여 규정되면, 디코더는 복수 개의 분해능을 가지는 재구성된 픽쳐들을 동시에 출력할 수 있다.
방법 1: 디코더의 외부가 제 1 분해능을 규정한다. 이러한 경우에, 디코더의 외부 애플리케이션 계층은 디코더의 능력, 다르게 말하면, 디코더에 의해 출력될 수 있는 픽쳐의 특정 분해능을 학습할 필요가 있다. 비트스트림에서 출력될 수 있는 픽쳐의 특정한 분해능(후보 분해능)을 표시하는 정보는 SEI를 사용함으로써 비트스트림 내에서 운반될 수 있거나, 애플리케이션 계층에서 직접적으로 운반될 수도 있다(파일 포맷으로). 플레이어는 모든 후보 분해능을 읽어내고, 목표 분해능에 기반하여 제 1 분해능을 결정하며, 디코더에게 제 1 분해능에 대한 정보를 통지한다. 이러한 실시형태에서는, 후보 분해능이 W/16 x H/16, W/8 x H/8, W/4 x H/4 및 W/2 x H/2를 포함한다. 애플리케이션 계층은 비디오 플레이어, 앨범, 웹페이지 등을 포함한다.
방법 2: 디코더의 내부가 애플리케이션 계층이 디코더에게 목표 분해능을 통지한다고 결정하고, 디코더는 목표 분해능에 가장 가까운 후보 분해능을 찾으며, 발견된 후보 분해능을 제 1 분해능으로서 사용한다. 후보 분해능은 디코더의 내부 구조에 의하여 결정된다. 이러한 실시형태에서는, 후보 분해능이 W/16 x H/16, W/8 x H/8, W/4 x H/4 및 W/2 x H/2를 포함한다.
방법 3: 제 1 분해능이 디코더의 복잡도/전력 소모 제약에 기반하여 결정된다. 구체적으로 설명하면, 대응하는 복잡도 표시자가 디코더의 각각의 재구성 브랜치에 대해서 연산될 수 있고, 복잡도 표시자가 상위 계층(애플리케이션 계층)에서 학습될 수 있다. 애플리케이션 계층은 대응하는 분해능을 복잡도 표시자에 기반하여 선택한다.
방법 4: 목표 분해능이 인코더측에 의해 규정되고 디코더측으로 송신된다. 디코더측은 비트스트림을 직접적으로 디코딩하여 제 1 분해능을 획득한다. 예를 들어, 인코더측은 목표 분해능을 표시하기 위한 제 1 식별자를 직접적으로 송신하고, 디코더측은 제 1 식별자의 값을 파싱하여 목표 분해능을 획득한다. 디코더측은 후보 분해능으로부터, 목표 분해능에 가장 가까운 후보 분해능을 목표 분해능에 기반하여 찾아내고, 이러한 후보 분해능을 제 1 분해능으로서 사용한다.
단계 3: 대응하는 재구성 네트워크 브랜치를 제 1 분해능에 기반하여 선택하고, 피쳐 맵 y0를 재구성 모듈에 입력하여 제 1 분해능을 가지는 재구성된 픽쳐를 획득한다.
이러한 실시형태에서는, 재구성 모듈이 복수 개의 저분해능 재구성된 픽쳐를 동시에 출력할 수 있거나, 하나의 저분해능 재구성된 픽쳐만을 출력할 수도 있다. 특정한 출력 결과가 애플리케이션 계층의 요구 사항에 기반하여 결정된다. 애플리케이션 계층에 의해 규정된 제 1 분해능이 복수 개의 분해능을 포함한다면, 복수 개의 저분해능 재구성된 픽쳐들이 이러한 단계에서 출력될 수 있다. 이러한 실시형태에서는, 저분해능의 재구성된 픽쳐가 출력되는 예를 사용하여 설명이 제공된다.
구체적으로 설명하면, 도 16에 도시된 바와 같이, 인코더측에 대응하여, 피쳐 맵 y0가 재구성 모듈의 원분-분해능 재구성 네트워크에 입력되고, 원본 분해능을 가지는 재구성된 픽쳐가 출력된다. 추가적으로, 상이한 브랜치가 원본-분해능 재구성 네트워크의 구조로부터 도출될 수 있고, 상이한 합성곱 계층들이 원본-분해능 재구성 네트워크의 구조를 변경하지 않고서 추가되어, 상이한 저분해능의 재구성된 픽쳐들을 출력한다. 도 16을 참조하면, 특정한 설명은 다음과 같다: 제 1 합성곱 계층의 채널들의 양, 제 2 합성곱 계층의 채널들의 양, 및 제 3 합성곱 계층의 채널들의 양 각각은 N이고 스트라이드는 2이다.
제 1 분해능이 W/16 x H/16이면, 피쳐 맵 이 브랜치 1 내의 재구성 네트워크에 직접적으로 입력되어, 그 크기가 P x W/16 x H/16인 재구성된 픽쳐 A1을 획득한다. 브랜치 1 내의 재구성 네트워크는 제 1 역합성곱 계층이고, 제 1 역합성곱 계층의 출력 채널들의 양은 P이며, 스트라이드는 1이다. 브랜치 1 내의 재구성 네트워크는 제 2 역합성곱 네트워크를 더 포함할 수 있고, 제 2 역합성곱 네트워크는 하나 이상의 역합성곱 계층을 포함하며, 역합성곱 계층의 스트라이드는 1이고, 출력 채널은 N1이며, 복수 개의 역합성곱 계층의 N1의 값들은 동일하거나 다를 수 있다. P는 최종적으로 출력된 재구성된 픽쳐 A1의 채널들의 양을 표시하고, 값은 보통 3 또는 1이다. 3-채널 컬러 픽쳐가 출력될 필요가 있으면, P의 값은 3이다. 그레이스케일 픽쳐가 출력될 필요가 있으면, P의 값은 1이다. N1의 값은 제한되지 않는다.
제 1 분해능이 W/8 x H/8이면, 피쳐 맵 이 원본-분해능 재구성 네트워크에 입력되며, 제 1-계층 역합성곱 연산이 수행되어 그 크기가 N x W/8 x H/8인 피쳐 맵 Q2를 획득하고, 피쳐 맵 Q2가 브랜치 2 내의 재구성 네트워크 내로 입력되어 그 크기가 P x W/8 x H/8인 재구성된 픽쳐 A2를 획득한다. 브랜치 2에 대응하는 네트워크 구조는 브랜치 1에 대응하는 네트워크 구조와 동일하거나 다를 수 있다.
제 1 분해능이 W/4 x H/4이면, 피쳐 맵 이 원본-분해능 재구성 네트워크에 입력되고, 제 1-계층 역합성곱 연산(devolution operation) 및 제 2-계층 역합성곱 연산이 수행되어 그 크기가 N x W/4 x H/4인 피쳐 맵 Q3를 획득하며, 피쳐 맵 Q3가 브랜치 3 내의 재구성 네트워크에 입력되어 그 크기가 P x W/4 x H/4인 재구성된 픽쳐 A3를 획득한다. 브랜치 3에 대응하는 네트워크 구조는 브랜치 1 또는 브랜치 2에 대응하는 네트워크 구조와 동일하거나 다를 수 있다.
제 1 분해능이 W/2 x H/2이면, 피쳐 맵 이 원본-분해능 재구성 네트워크에 입력되고, 제 1-계층 역합성곱 연산, 제 2-계층 역합성곱 연산, 및 제 3-계층 역합성곱 연산이 수횅되어 그 크기가 N x W/2 x H/2인 피쳐 맵 Q4를 획득하며, 피쳐 맵 Q4가 브랜치 4 내의 재구성 네트워크에 입력되어 그 크기가 P x W/2 x H/2인 재구성된 픽쳐 A4를 획득한다. 브랜치 4에 대응하는 네트워크 구조는 브랜치 1, 브랜치 2, 또는 브랜치 3에 대응하는 네트워크 구조와 동일하거나 다를 수 있다.
단계 4: 제 1 분해능을 가지는 재구성된 픽쳐를 처리하여 목표 분해능을 가지는 재구성된 픽쳐를 획득한다.
제 1 분해능 및 목표 분해능이 비교된다. 제 1 분해능 및 목표 분해능이 동일하면, 처리가 수행될 필요가 없고, 제 1 분해능을 가지는 재구성된 픽쳐가 출력 및 디스플레이를 위하여, 목표 분해능을 가지는 재구성된 픽쳐로서 직접 사용된다.
제 1 분해능 및 목표 분해능이 다르면, 목표 분해능과 같은 분해능을 가지는 재구성된 픽쳐를 획득하고, 그 후에 재구성된 픽쳐를 출력하기 위하여, 대응하는 스케일링-업/다운 연산, 업샘플링, 또는 다운샘플링 연산이 더 수행될 필요가 있다.
이러한 단계가 디코더 외부의 플레이어의 픽쳐 스케일링-업/다운 모듈에 의해서 완료될 수 있다는 것에 주의해야 한다. 그러므로, 디코더측의 솔루션은 이러한 단계를 포함하지 않을 수 있다.
실시형태 2
인코더측에서의 솔루션은 제 1 실시형태와 동일하다. 세부사항은 본 명세서에서 다시 설명되지 않는다. 도 17은 본 출원의 일 실시형태에 따른 디코더측에서의 프로시저의 개략도이다. 구체적인 단계들은 다음과 같다: 단계 3만이 실시형태 1에서와 다르고, 단계 3만이 본 명세서에서 자세하게 설명된다.
단계 3: 대응하는 재구성 네트워크 브랜치를 제 1 분해능에 기반하여 선택하고, 피쳐 맵 y0를 재구성 모듈에 입력하여 제 1 분해능을 가지는 재구성된 픽쳐를 획득한다.
도 18은 본 출원의 일 실시형태에 따른 재구성 네트워크의 구조의 개략도이다. 제 1 분해능이 W/16 x H/16이면, 피쳐 맵 이 제 1 재구성 네트워크(도 18a에 도시된 바와 같음)에 입력되어 제 1 분해능을 가지는 목표 픽쳐 A1을 획득한다. 제 1 재구성 네트워크는 제 1 역합성곱 네트워크를 포함하고, 제 1 역합성곱 네트워크의 출력 채널들의 양은 P이며, 스트라이드는 1이다. 제 1 재구성 네트워크는 그 스트라이드가 1인 하나 이상의 제 2 역합성곱 네트워크를 더 포함할 수 있고, 복수 개의 제 2 역합성곱 네트워크의 출력 채널들 N1은 동일하거나 다를 수 있다.
제 1 분해능이 W/8 x H/8이면, 피쳐 맵 이 제 2 재구성 네트워크(도 18b에 도시된 바와 같음)에 입력되어 제 1 분해능을 가지는 목표 픽쳐 A2를 획득한다. 제 2 재구성 네트워크는 제 3 역합성곱 네트워크를 포함한다. 제 3 역합성곱 네트워크의 채널들의 양은 N이고, 스트라이드는 2이다. 제 2 재구성 네트워크는 제 1 역합성곱 네트워크 및 제 2 역합성곱 네트워크를 더 포함한다.
제 1 분해능이 W/4 x H/4이면, 피쳐 맵 이 제 3 재구성 네트워크(도 18c에 도시된 바와 같음)에 입력되어, 제 1 분해능을 가지는 목표 픽쳐 A3를 획득한다. 제 3 재구성 네트워크는 제 3 역합성곱 네트워크를 포함하고, 제 3 역합성곱 네트워크의 채널들의 양은 N이며, 스트라이드는 2이다. 제 3 재구성 네트워크는 제 2 재구성 네트워크의 구조를 더 포함한다.
제 1 분해능이 W/2 x H/2이면, 피쳐 맵 이 제 4 재구성 네트워크(도 18d에 도시된 바와 같음)에 입력되어 제 1 분해능을 가지는 목표 픽쳐 A4를 획득한다. 제 4 재구성 네트워크는 제 4 역합성곱 네트워크를 포함하고, 제 4 역합성곱 네트워크의 채널들의 양은 N이며, 스트라이드는 2이다. 제 4 재구성 네트워크는 제 3 재구성 네트워크의 구조를 더 포함한다.
다른 구현형태에서, 도 19는 본 출원의 일 실시형태에 따른 다른 재구성 네트워크의 구조의 개략도이다. 제 1 재구성 네트워크, 제 2 재구성 네트워크, 제 3 재구성 네트워크, 및 제 4 재구성 네트워크는 도 19에 도시되는 네트워크 구조를 사용하여 대안적으로 구현될 수 있다. 이것은 본 명세서에서 제한되지 않는다.
단계 2.3: 제 1 분해능을 가지는 재구성된 픽쳐를 처리하여 목표 분해능을 가지는 픽쳐를 획득한다.
실시형태 3
이러한 실시형태와 실시형태 1 사이의 차이는, 피쳐 맵의 채널들의 양이 입력 피쳐 맵이 재구성되기 이전에 감소되거나, 재구성 프로세스에서 하나의 계층 또는 복수 개의 계층의 역합성곱 연산을 수행함으로써 획득된 피쳐 맵의 채널들의 양이 감소되어, 디코딩 복잡도를 감소시킨다는 점에 있다.
디코더측에서의 방법은 다음과 같다:
실시형태 1에 기반하여, 이러한 실시형태에서 단계 3만이 실시형태 1에서와 다르고, 단계 3 만이 본 명세서에서 자세하게 설명된다.
가능한 구현형태에서, 도 20은 본 출원의 일 실시형태에 따른 채널 감축 프로시저의 개략도이다. 피쳐 맵 y0가 재구성 네트워크에 입력되기 이전에, 피쳐 맵 y0의 채널의 양 M은 S로 감축되고, S 개의 채널을 가지는 피쳐 맵 y1만이 입력된다. S는 피쳐 맵 y0의 채널의 양 M보다 작다. 이러한 구현형태에서는 복수 개의 상이한 저분해능의 재구성된 픽쳐들이 동시에 출력될 수 없다. 재구성 네트워크는 실시형태 1 및 실시형태 2의 방식으로 구현될 수 있다.
가능한 구현형태에서, 실시형태 2를 참조하여 설명이 제공된다. 도 21은 본 출원의 일 실시형태에 따른 다른 채널 감축 프로시저의 개략도이다. S1, S2, S3, 및 S4 각각은 피쳐 맵 y0의 채널들의 양 M보다 작다. 제 1 분해능이 W/8 x H/8이면, 피쳐 맵 이 제 2 재구성 네트워크에 입력되어 목표 픽쳐 A2를 획득하는 예를 사용하여 설명이 제공된다. 이러한 구현형태에서는, 복수 개의 상이한 저분해능의 재구성된 픽쳐들이 be 동시에 출력될 수 있다. 제 1 분해능이 W/8 x H/8이면, 피쳐 맵 이 제 2 재구성 네트워크에 입력되고, 그 채널들의 양이 N이고 스트라이드는 2인 역합성곱 계층을 통과하며, 그 채널들의 양이 N인 피쳐 맵 y1이 출력되고, y1의 채널들의 양이 감소되어 그 채널들의 양이 S2인 피쳐 맵을 획득하며, 목표 픽쳐 A2가 출력될 때까지 피쳐 맵이 역합성곱 네트워크의 다음 레벨에 입력된다. 특정한 감축 방법은 S2 개의 채널의 피쳐 맵 데이터를 무작위로 추출하거나, N 개의 채널 내의 처음 S2 개의 채널의 피쳐 맵 데이터를 추출하는 것이다. 이것은 본 명세서에서 제한되지 않는다.
다른 가능한 구현형태에서, 실시형태 1을 참조하여 설명이 제공된다. 도 22는 본 출원의 일 실시형태에 따른 또 다른 채널 감축 프로시저의 개략도이다. 도 22에서, 합성곱 계층에 의해 출력된 피쳐 맵의 채널들의 양은 재구성 네트워크에서 감소되고, S1, S2, S3, 및 S4 각각은 피쳐 맵 y0의 채널들의 양 M보다 작다. 제 1 분해능이 W/8 x H/8인 것이 설명을 위하여 사용된다. 이러한 구현형태에서는, 복수 개의 상이한 저분해능의 재구성된 픽쳐들이 be 동시에 출력될 수 있다. 제 1 분해능이 W/8 x H/8이면, 피쳐 맵 이 원본-분해능 재구성 네트워크에 입력되고, 합성곱 연산의 제 1 계층이 수행되어 그 크기가 N x W/8 x H/8인 피쳐 맵 Q2를 획득하며, 피쳐 맵 Q2의 채널들의 양은 감소되어 그 채널들의 양이 S2인 피쳐 맵을 획득하며, 피쳐 맵이 브랜치 2 내의 재구성 네트워크에 입력되어 그 크기가 P x W/8 x H/8인 재구성된 픽쳐 A2를 획득한다. 특정한 감축 방법은 S2 개의 채널의 피쳐 맵 데이터를 무작위로 추출하거나, N 개의 채널 내의 처음 S2 개의 채널의 피쳐 맵 데이터를 추출하는 것이다. 이것은 본 명세서에서 제한되지 않는다.
실시형태 4
단계 1: 메인 비트스트림의 피쳐 맵을 디코딩하여 모든 N 개의 채널 중 처음 M 개의 채널(M<N)의 피쳐 맵을 획득한다(분해능은 W/K x H/K이고, K=16임).
단계 2: M 개의 채널의 피쳐 맵을 재구성 네트워크 1에 입력하여 저분해능 픽쳐 A1을 획득한다(A1의 분해능은 원본 픽쳐의 분해능 W x H보다 낮음).
방법 1: 저분해능 재구성된 픽쳐 A1에 픽쳐 업샘플링 연산을 수행하여 목표 분해능을 가지는 픽쳐 B1을 획득한다.
M 개의 채널의 피쳐 맵을 재구성 네트워크 1에 입력하여 저분해능 픽쳐 A1을 획득하기 위한 방법은 실시형태 1에서와 같고, 저분해능은 실시형태 1에서의 제 1 분해능에 대응한다. 목표 분해능을 설정하기 위한 방법은 본 명세서에서 제한되지 않고, 예를 들어 애플리케이션측에 의해 규정될 수 있다.
픽쳐 업샘플링 연산은, 예를 들어 이중선형 보간 업샘플링, 또는 이웃하는 위치에 픽셀 값을 직접적으로 채움으로써 수행되는 업샘플링이다.
방법 2: 저분해능 재구성된 픽쳐 A1에 픽쳐 업샘플링 연산을 수행하여 원본 분해능을 가지는 픽쳐 B3를 획득한다.
업샘플링 연산은: 픽쳐 업샘플링 연산, 예를 들어 이중선형 보간 업샘플링, 또는 이웃하는 위치에 픽셀 값을 직접적으로 채움으로써 수행되는 업샘플링을 포함한다. 대안적으로, 그 스트라이드는 1보다 큰 역합성곱 계층이 구현을 위해서 사용된다.
B3의 분해능은 W x H이다.
단계 3: 메인 비트스트림의 피쳐 맵을 디코딩하여, 잔여 N-M 개의 채널의 피쳐 맵을 회극하고, 모든 N 개의 채널의 피쳐 맵을 재구성 네트워크 2에 입력하여 원본 분해능을 가지는 픽쳐 B2를 획득한다.
유용한 효과: 작은 엔트로피 디코딩 지연 및 작은 픽쳐 재구성 지연이 점유되고 저품질 픽쳐가 신속하게 생성되도록 단계 1 및 단계 2가 수행된다. 큰 지연을 가지고 고품질 (표준-규격) 픽쳐를 획득하도록 단계 3 및 단계 2는 병렬적으로 수행될 수 있다.
처음 세 개의 실시형태와 비교하면:
(1) 저품질 픽쳐 재구성이 일부 채널의 피쳐 맵들이 디코딩된 이후에 시작될 수 있다.
(2) 업샘플링을 구현하기 위하여, 재구성 네트워크는 그 스트라이드가 1보다 큰 역합성곱 계층을 포함할 수 있다.
(3) 두 개의 재구성 브랜치들만이 포함된다.
실시형태 5
다른 가능한 구현형태에서, 실시형태 1 내지 실시형태 4에서의 전체 디코딩 솔루션이 후속하는 두 개의 단계로 단순화될 수 있다:
단계 1: 압축된 비트스트림에 엔트로피 디코딩을 수행하여 3-차원 피쳐 맵 y0를 획득하는데, 여기에서 y0는 M 개의 채널을 가지고 그 분해능이 W/k x H/k인 2-차원 피쳐 맵을 포함한다.
단계 2: 3-차원 피쳐 맵 y0를 재구성 네트워크에 입력하여, 제 1 분해능을 가지는 재구성된 픽쳐를 획득한다. 제 1 분해능은 원본 픽쳐의 분해능 W x H보다 낮다.
앞선 실시형태에서의 프로세스들이 무작위로 조합될 수 있다는 것에 주의해야 한다. 예를 들어, 단계 605은 다음과 같이 같을 수도 있다: 디코더는 제 2 신경망에 기반하여, 제 1 분해능을 가지는 제 3 피쳐 맵을 재구성하여 제 2 분해능을 가지는 재구성된 픽쳐를 획득하는데, 여기에서 제 2 분해능은 제 1 분해능과 다르고, 제 2 분해능은 원본 픽쳐의 분해능보다 낮으며, 제 3 피쳐 맵은 제 2 피쳐 맵 및/또는 제 2 신경망에 기반하여 제 2 피쳐 맵을 처리함으로써 획득된 피쳐 맵을 포함한다. 이것은 본 출원의 이러한 실시형태에서 제한되지 않는다.
앞선 내용은 본 출원의 실시형태들에서 제공된 인코딩 및 디코딩 방법을 디바이스들 사이의 상호작용의 관점으로부터 주로 설명한다. 앞선 기능을 구현하기 위하여, 디바이스가 그러한 기능들에 대응하는 하드웨어 구조 및/또는 소프트웨어 모듈을 포함한다는 것이 이해될 수 있다. 당업자는, 본 명세서에 개시된 실시형태들에서에 설명된 예들에서의 알고리즘 및 단계들과 조합하여, 본 출원이 하드웨어 또는 하드웨어 및 컴퓨터 소프트웨어의 조합에 의해서 구현될 수 있다는 것을 쉽게 이해할 것이다. 어떤 기능이 하드웨어 또는 컴퓨터 소프트웨어에 의해 구동되는 하드웨어에 의해 수행되는지 여부는 특정 애플리케이션 및 기술적 솔루션의 디자인 제약에 의존한다. 당업자는 각각의 특정 애플리케이션에 대하여 설명된 기능을 구현하기 위하여 상이한 방법을 사용할 수 있지만, 이러한 구현형태가 본 출원의 범위를 벗어나는 것으로 여겨져서는 안 된다.
본 출원의 실시형태들에서, 각각의 디바이스는 앞선 방법의 예들에 기반하여 기능성 모듈들로 분할될 수 있다. 예를 들어, 각각의 기능에 대응하는 각각의 기능성 모듈이 분할을 통하여 획득될 수 있거나, 두 개 이상의 기능들이 하나의 처리 모듈 내에 통합될 수도 있다. 통합된 모듈은 하드웨어의 형태로 구현될 수 있고, 또는 소프트웨어 기능성 모듈의 형태로 구현될 수도 있다. 본 출원의 실시형태들에서, 모듈들로 분할되는 것은 한 예이고, 단순히 논리적인 기능 분할이며, 실제 구현형태에서는 다른 분할일 수 있다는 것에 주의해야 한다.
도 23은 본 출원의 일 실시형태에 따른 디코딩 장치의 블록도이다. 디코딩 장치(800)는 전자 디바이스에 적용될 수 있고(예를 들어, 디코더), 전자 디바이스 내의 칩 또는 기능성 모듈일 수 있다. 각각의 기능성 모듈이 각각의 대응하는 기능에 기반한 분할을 통하여 획득되는 경우, 디코딩 장치(800)는 처리 모듈(801) 및 재구성 모듈(802)을 포함하고, 송수신기 모듈(803)(도면에서는 미도시)을 더 포함한다. 송수신기 모듈(803)은 도 4, 도 8, 도 9a 및 도 9b, 또는 도 10에 도시된 실시형태에서의 디코더에 의해 수행되는 전송 및 수신 동작을 수행하도록 각각 구성된 전송 모듈 및/또는 수신 모듈을 포함할 수 있다.
처리 모듈(801)은 비트스트림을 디코딩하여 제 1 피쳐 맵을 획득하도록 구성되고, 제 1 피쳐 맵의 분해능은 원본 픽쳐의 분해능보다 낮다.
재구성 모듈(802)은 제 1 신경망에 기반하여 제 2 피쳐 맵을 재구성하여, 재구성된 픽쳐를 획득하도록 구성된다. 제 2 피쳐 맵의 분해능 및 재구성된 픽쳐의 분해능 각각은 목표 분해능이고, 목표 분해능은 원본 픽쳐의 분해능보다 낮으며, 제 2 피쳐 맵은 제 1 피쳐 맵이거나, 제 2 피쳐 맵은 제 2 신경망에 기반하여 제 1 피쳐 맵을 처리함으로써 획득된 피쳐 맵이다.
앞선 솔루션을 참조하면, 제 2 피쳐 맵이 상기 제 2 신경망에 기반하여 상기 제 1 피쳐 맵을 처리함으로써 획득된 피쳐 맵인 경우, 상기 제 2 신경망은 하나 이상의 출력 노드 및 복수 개의 합성곱 계층(convolutional layer)을 포함하고, 상기 출력 노드는 상기 제 1 합성곱 계층의 출력단 및 최종 합성곱 계층의 입력단 사이에 위치되며, 상기 출력 노드는 상기 제 1 신경망의 입력단에 연결되고, 재구성 모듈(802)은 제 2 신경망의 목표 출력 노드에 의해 출력된 제 2 피쳐 맵을 획득하도록 상기 제 1 피쳐 맵을 상기 제 2 신경망에 입력하도록 더 구성되며, 상기 목표 출력 노드는 하나 이상의 출력 노드에 속하고; 재구성 모듈(802)은 특히, 제 1 신경망에 의해 출력된 재구성된 픽쳐를 획득하도록, 상기 목표 출력 노드에 의하여 출력되는 제 2 피쳐 맵을 상기 제 1 신경망에 입력하도록 구성된다.
앞선 솔루션을 참조하면복수 개의 제 1 신경망이 존재하는 경우, 재구성 모듈(802)은 특히, 제 2 피쳐 맵을 상기 목표 출력 노드에 연결된 제 1 신경망에 입력하여, 목표 출력 노드에 연결된 제 1 신경망에 의해 출력된 재구성된 픽쳐를 획득하도록 구성된다.
앞선 솔루션을 참조하면, 복수 개의 목표 분해능 및 복수 개의 목표 출력 노드가 존재하는 경우, 재구성 모듈(802)은 특히: 제 1 피쳐 맵을 제 2 신경망에 입력하여, 복수 개의 분해능을 가지고 상기 제 2 신경망의 복수 개의 목표 출력 노드에 의해 출력되는 제 2 피쳐 맵을 획득하고; 상기 각각의 목표 출력 노드에 의해 출력된 제 2 피쳐 맵을 상기 목표 출력 노드에 연결된 제 1 신경망에 입력하여, 복수 개의 분해능을 가지고 상기 복수 개의 목표 출력 노드에 각각 연결된 제 1 신경망에 의해 출력되는 재구성된 픽쳐를 획득하도록 구성된다.
앞선 솔루션을 참조하면, 상기 제 2 신경망이 복수 개의 출력 노드를 포함하는 경우, 각각의 출력 노드는 하나의 출력 분해능에 대응하고, 상기 재구성 모듈(802)은: 목표 분해능을 결정하고; 그 출력 분해능이 목표 분해능인 출력 노드가 목표 출력 노드라고 결정하도록 더 구성된다.
앞선 솔루션을 참조하면, 제 1 신경망은 적어도 하나의 합성곱 계층을 포함하고, 상기 적어도 하나의 합성곱 계층의 합성곱 스트라이드(convolution stride)는 1이다.
앞선 솔루션을 참조하면, 상기 비트스트림은 M1 개의 채널들의 2-차원 피쳐 맵에 대응하고, 상기 처리 모듈(801)은 특히, 상기 제 1 피쳐 맵을 획득하도록 상기 M1 개의 채널 내의 M2 개의 채널들의 2-차원 피쳐 맵에 대응하는 비트스트림을 디코딩하도록 구성되며, M2<M1이고, 상기 제 1 피쳐 맵은 상기 M2 개의 채널들의 2-차원 피쳐 맵을 포함한다.
앞선 솔루션을 참조하면, 상기 재구성 모듈(802)은, 제 1 픽쳐를 획득하도록 상기 재구성된 픽쳐에 업샘플링 처리를 수행하도록 더 구성되고, 상기 제 1 픽쳐의 분해능은 상기 원본 픽쳐의 분해능과 동일하다.
앞선 솔루션을 참조하면, 상기 비트스트림은 최초 피쳐 맵의 비트스트림이고, 상기 최초 피쳐 맵은 상기 원본 픽쳐에 피쳐 추출(feature extraction)을 수행함으로써 획득되며, 상기 처리 모듈(801)은 제 3 피쳐 맵을 획득하도록 상기 M1 개의 채널 내의 M2 개의 채널이 아닌 채널의 2-차원 피쳐 맵에 대응하는 비트스트림을 디코딩하게끔 더 구성되고, 상기 제 3 피쳐 맵은 M1-M2 개의 채널의 2-차원 피쳐 맵을 포함하며; 상기 재구성 모듈(802)은 제 2 픽쳐를 획득하도록 상기 제 2 신경망에 기반하여 상기 제 1 피쳐 맵 및 제 3 피쳐 맵을 처리하게끔 더 구성되며, 상기 제 2 픽쳐의 분해능은 상기 원본 픽쳐의 분해능과 동일하다.
앞선 솔루션을 참조하면, 제 2 피쳐 맵은 복수 개의 채널들의 2-차원 피쳐 맵을 포함하고, 제 2 피쳐 맵이 재구성된 픽쳐를 획득하도록 제 1 신경망에 기반하여 재구성되기 이전에, 상기 처리 모듈(801)은 상기 제 2 피쳐 맵에 채널 감축 처리를 수행하도록 더 구성되며; 상기 처리 모듈(802)은 특히, 상기 제 1 신경망에 기반하여, 채널 감축 처리를 통하여 획득된 제 2 피쳐 맵을 재구성하여, 재구성된 픽쳐를 획득하도록 더 구성된다.
앞선 솔루션을 참조하면, 제 1 피쳐 맵은 복수 개의 채널들의 2-차원 피쳐 맵을 포함하고, 재구성 모듈(802)은 제 1 피쳐 맵에 채널 감축 처리를 수행하도록 더 구성된다. 제 2 피쳐 맵은 채널 감축 처리를 통하여 획득된 제 1 피쳐 맵이거나, 제 2 피쳐 맵은 제 2 신경망에 기반하여, 채널 감축 처리를 통하여 획득된 제 1 피쳐 맵을 처리함으로써 획득되는 피쳐 맵이다.
인코딩 장치의 구조에 대해서는 도 23에 도시되는 디코딩 장치의 구조를 참조한다. 인코딩 장치는 전자 디바이스에 적용될 수 있고(예를 들어, 인코더), 전자 디바이스 내의 칩 또는 기능성 모듈일 수 있다. 각각의 기능성 모듈이 각각의 대응하는 기능에 기반한 분할을 통하여 획득되는 경우, 인코딩 장치는 처리 모듈 및 인코딩 모듈을 포함하고, 송수신기 모듈을 더 포함할 수 있다. 송수신기 모듈은 도 4, 도 8, 도 9a 및 도 9b, 또는 도 10에 도시된 실시형태에서의 인코더에 의해 수행되는 전송 및 수신 동작을 수행하도록 각각 구성된 전송 모듈 및/또는 수신 모듈을 포함한다.
처리 모듈은 원본 픽쳐에 피쳐 추출을 수행하여 최초 피쳐 맵을 획득하도록 구성되는데, 여기에서 최초 피쳐 맵은 복수 개의 채널들의 2-차원 피쳐 맵을 포함하고, 최초 피쳐 맵의 분해능은 원본 픽쳐의 분해능보다 낮다.
인코딩 모듈은 인코딩될 피쳐 맵을 인코딩하여 비트스트림을 획득하도록 구성된다. 인코딩될 피쳐 맵은 최초 피쳐 맵이거나, 최초 피쳐 맵 내의 일부 채널의 2-차원 피쳐 맵이다.
송수신기 모듈은 비트스트림을 디코딩 장치로 전송하도록 구성된다.
도 24는 본 출원의 일 실시형태에 따른 전자 디바이스의 구조의 개략도이다. 전자 디바이스(900)는 인코더 내의 칩 또는 기능성 모듈일 수 있거나, 디코더 내의 칩 또는 기능성 모듈일 수 있다. 도 24에 도시된 바와 같이, 전자 디바이스(900)는 프로세서(901), 송수신기(902), 및 통신 라인(903)을 포함한다.
프로세서(901)는 도 4, 도 8, 도 9a 및 도 9b, 및 도 10에 도시되는방법 실시형태에서 인코더 또는 디코더에 의해 수행되는 임의의 단계를 수행하도록 구성된다. 획득하는 것과 같은 데이터 송신이 수행되면, 송수신기(902) 및 통신 라인(903)은 대응하는 동작을 완료하게끔 호출되도록 선택될 수 있다.
더 나아가, 전자 디바이스(900)는 저장소(904)를 더 포함할 수 있다. 프로세서(901), 저장소(904), 및 송수신기(902)는 통신 라인(903)을 통해서 연결될 수 있다.
프로세서(901)는 중앙 처리 유닛(central processing unit, CPU), 범용 프로세서, 네트워크 프로세서(network processor, NP), 디지털 신호 프로세서(digital signal processor, DSP), 마이크로프로세서, 마이크로콘트롤러, 프로그래밍가능 로직 디바이스(programmable logic device, PLD), 또는 이들의 임의의 조합이다. 대안적으로, 프로세서(901)는 처리 기능을 가지는 다른 장치, 예를 들어 회로, 컴포넌트, 또는 소프트웨어 모듈일 수 있다. 이것은 제한되지 않는다.
송수신기(902)는 다른 디바이스와 통신하도록 구성된다. 송수신기(902)는 통신을 구현할 수 있는 모듈, 회로, 송수신기, 또는 임의의 장치일 수 있다.
송수신기(902)는 픽쳐 또는 비트스트림과 같은 데이터를 수신 및 전송하도록 주로 구성되고, 데이터를 전송 및 수신하도록 각각 구성되는 송신기 및 수신기를 포함할 수 있다. 데이터 수신 및 전송 이외의 동작, 예를 들어 데이터 처리 및 연산은 프로세서에 의해 구현된다.
통신 라인(903)은 전자 디바이스(900) 내에 포함된 컴포넌트들 사이에서 정보를 송신하도록 구성된다.
소정 디자인에서, 프로세서는 로직 회로로서 여겨질 수 있고, 송수신기는 인터페이스 회로로서 여겨질 수 있다.
저장소(904)는 명령을 저장하도록 구성된다. 명령은 컴퓨터 프로그램일 수 있다.
저장소(904)는 휘발성 메모리 또는 비휘발성 메모리일 수 있거나, 휘발성 메모리 및 비휘발성 메모리 양자 모두를 포함할 수 있다. 비휘발성 메모리는 판독-전용 메모리(read-only memory, ROM), 프로그래밍가능 판독-전용 메모리(programmable ROM, PROM), 소거가능 프로그래밍가능한 판독-전용 메모리(erasable PROM, EPROM), 전기적 소거가능 프로그래밍가능한 판독-전용 메모리(electrically EPROM, EEPROM), 또는 플래시 메모리일 수 있다. 휘발성 메모리는 랜덤 액세스 메모리(random access memory, RAM)일 수 있고, 외부 캐시로서 사용된다. 예들이 한정적인 설명은 아니지만, 많은 형태의 RAM들, 예를 들어 정적 랜덤 액세스 메모리(static RAM, SRAM), 동적 랜덤 액세스 메모리(dynamic RAM, DRAM), 동기식 동적 랜덤 액세스 메모리(synchronous DRAM, SDRAM), 이중 데이터 레이트 동기식 동적 랜덤 액세스 메모리(double data rate SDRAM, DDR SDRAM), 향상된 동기식 동적 랜덤 액세스 메모리(enhanced SDRAM, ESDRAM), 동기 링크 동적 랜덤 액세스 메모리(synchlink DRAM, SLDRAM), 및 직접 램버스 동적 랜덤 액세스 메모리(direct rambus RAM, DR RAM)가 사용될 수 있다. 저장소(904)는 판독-전용 디스크(compact disc read-only memory, CD-ROM) 또는 다른 광디스크 저장소, 광디스크 저장소(콤팩트 디스크, 레이저 디스크, 광디스크, 디지털 다기능 디스크, 블루-레이 디스크 또는 기타 등등을 포함함), 자기 디스크 저장소 매체, 다른 자기 저장 디바이스 또는 기타 등등일 수도 있다. 본 명세서에서 설명된 시스템 및 방법 내의 저장소가 이러한 메모리 및 다른 적합한 타입의 임의의 저장소를 포함하지만 이들로 제한되는 것은 아니라는 것에 주의해야 한다.
저장소(904)가 프로세서(901)와 독립적으로 존재할 수 있거나, 프로세서(901)와 통합될 수 있다는 것에 주의해야 한다. 저장소(904)는 명령, 프로그램 코드, 일부 데이터 또는 기타 등등을 저장하도록 구성될 수 있다. 저장소(904)는 전자 디바이스(900) 내부에 위치될 수 있거나, 전자 디바이스(900) 외부에 위치될 수 있다. 이것은 제한되지 않는다. 프로세서(901)는 저장소(904) 내에 저장된 명령을 실행하여, 본 출원의 앞선 실시형태에서 제공된 방법을 수행하도록 구성된다.
일 예에서, 프로세서(901)는 도 24에서 CPU 0 및 CPU 1과 같은 하나 이상의 CPU를 포함할 수 있다.
선택적인 구현형태에서, 전자 디바이스(900)는 복수 개의 프로세서를 포함한다. 예를 들어, 도 24의 프로세서(901)에 추가하여, 프로세서(907)가 더 포함될 수 있다.
선택적인 구현형태에서, 전자 디바이스(900)는 출력 디바이스(905) 및 입력 디바이스(906)를 더 포함한다. 예를 들어, 입력 디바이스(906)는 디바이스, 예를 들어 키보드, 마우스, 마이크로폰, 또는 조이스틱이고, 출력 디바이스(905)는 디바이스, 예를 들어 디스플레이, 또는 스피커(speaker)이다.
본 출원에서 설명된 프로세서 및 송수신기는 집적 회로(integrated circuit, IC), 아날로그 IC, 무선 주파수 집적 회로, 하이브리드 신호 IC, 주문형 집적회로(application-specific integrated circuit, ASIC), 인쇄 회로 보드(printed circuit board, PCB), 전자 디바이스 또는 기타 등등 상에 구현될 수 있다. 대안적으로, 프로세서 및 송수신기는 다양한 IC 기술, 예를 들어 상보적 금속 산화물 반도체(complementary metal oxide semiconductor, CMOS), N-타입 금속-산화물-반도체(n-type Metal-oxide-semiconductor, NMOS), 양 채널 금속 산화물 반도체(positive channel metal oxide semiconductor, PMOS), 바이폴라 정션 트랜지스터(Bipolar Junction Transistor, BJT), 바이폴라 CMOS(bipolar CMOS, BiCMOS), 실리콘 게르마늄(SiGe), 및 갈륨 비소(GaAs)를 사용함으로써 구현될 수도 있다.
전자 디바이스(900)가 임의의 타입의 핸드헬드 또는 고정식 디바이스, 예를 들어 노트북 또는 랩탑 컴퓨터, 모바일 폰, 스마트 폰, 태블릿 또는 태블릿 컴퓨터, 카메라, 데스크탑 컴퓨터, 셋-톱 박스, 텔레비전, 디스플레이 디바이스, 디지털 미디어 플레이어, 비디오 게임 콘솔, 비디오 스트리밍 디바이스(예를 들어, 콘텐츠 서비스 서버 또는 콘텐츠 분포 서버), 브로드캐스트 수신 디바이스, 브로드캐스트 송신 디바이스, 및 모니터링 디바이스일 수 있고, 임의의 타입의 운영 체제를 사용하지 않거나 사용할 수 있다는 것에 주의해야 한다. 대안적으로, 전자 디바이스(900)는 클라우드 컴퓨팅 시나리오 내의 디바이스, 예를 들어 클라우드 컴퓨팅 시나리오 내의 가상 머신일 수도 있다. 일부 경우에, 전자 디바이스(900)에는 무선 통신을 위해 사용되는 컴포넌트가 제공될 수 있다. 그러므로, 전자 디바이스(900)는 무선 통신 디바이스이거나, 도 15의 구조와 유사한 구조를 가진 디바이스일 수 있다. 추가적으로, 도 24에 도시되는 조합 구조는 전자 디바이스(900)에 대해 제한을 구성하지 않는다. 도 24에 도시되는 컴포넌트에 추가하여, 전자 디바이스(900)는 도 24에 도시되는 것 이외에 더 많거나 적은 컴포넌트를 포함하거나, 일부 컴포넌트들을 조합하거나, 상이한 컴포넌트 구성을 가질 수 있다.
대안적으로, 전자 디바이스(900)는 칩 시스템일 수 있다. 칩 시스템은 칩을 포함할 수 있거나, 칩 및 다른 이산 디바이스를 포함할 수 있다.
추가적으로, 본 출원의 실시형태에서 동작들, 용어들 등등은 서로를 가리킨다. 세부사항은 제한되지 않는다. 본 출원의 실시형태에서, 디바이스들 사이에서 교환되는 메시지의 명칭, 메시지 또는 기타 등등 내의 파라미터의 명칭은 단순히 예일 뿐이다. 대안적으로, 다른 명칭이 특정한 구현형태에서 사용될 수도 있다. 세부사항은 제한되지 않는다.
또 다른 가능한 구현형태에서, 도 23의 송수신기 모듈(803)은 도 24의 송수신기(902)로 대체될 수 있고, 송수신기 모듈(803)의 기능은 송수신기(902)로 통합될 수도 있다. 처리 모듈(801)은 프로세서(907)로 대체될 수 있고, 처리 모듈(801)의 기능은 프로세서(907)에 통합될 수도 있다. 더 나아가, 도 23에 도시되는 디코딩 장치(800)는 저장소(도면에서는 미도시)를 더 포함할 수 있다. 송수신기 모듈(803)이 송수신기로 대체되고, 처리 모듈(801)이 프로세서로 대체되면, 본 출원의 이러한 실시형태에서 디코딩 장치(800) 또는 인코딩 장치는 도 24에 도시되는 전자 디바이스(900)일 수 있다.
본 출원의 실시형태들에서 제공된 방법에 따르면, 본 출원은 컴퓨터 프로그램 제품을 더 제공한다. 컴퓨터 프로그램 제품은 컴퓨터 프로그램 코드를 포함한다. 컴퓨터 프로그램 코드가 컴퓨터 상에서 실행될 때, 컴퓨터는 본 출원의 실시형태들의 방법 중 임의의 하나를 수행하도록 이네이블된다.
본 출원의 일 실시형태는 칩을 더 제공한다. 칩은 적어도 하나의 프로세서, 저장소, 및 인터페이스 회로를 포함한다. 저장소, 송수신기, 및 적어도 하나의 프로세서는 라인을 통하여 상호연결된다. 적어도 하나의 저장소가 컴퓨터 프로그램을 저장한다. 컴퓨터 프로그램이 프로세서에 의해 실행될 때, 본 출원의 실시형태들의 방법 중 임의의 하나가 구현된다.
본 출원의 일 실시형태는 컴퓨터-판독가능 저장 매체를 더 제공한다. 방법 실시형태에서의 프로시저 중 전부 또는 일부는 관련된 하드웨어를 제어하기 위한 컴퓨터 프로그램 또는 명령을 실행함으로써 정보 처리 능력을 가지는 컴퓨터 또는 장치에 의해서 완료될 수 있다. 컴퓨터 프로그램 또는 명령은 컴퓨터-판독가능 저장 매체 내에 저장될 수도 있다. 컴퓨터 프로그램 또는 명령이 실행될 때, 방법 실시형태 내의 프로시저가 실행될 수 있다. 컴퓨터-판독가능 저장 매체는 앞선 실시형태 중 임의의 하나인 전자 디바이스(인코더 및/또는 디코더를 포함함)의 내부 저장 유닛, 예를 들어 전자 디바이스의 하드 디스크 또는 메모리일 수 있다. 대안적으로, 컴퓨터-판독가능 저장 매체는 전자 디바이스의 외부 저장 디바이스, 예를 들어 플러그-연결 하드 디스크, 스마트 미디어 카드(smart media card, SMC), 시큐어 디지털(secure digital, SD) 카드, 플래시 카드(플래시 카드) 또는 전자 디바이스를 위하여 제공된 기타 등등일 수 있다. 더 나아가, 컴퓨터-판독가능 저장 매체는 대안적으로, 전자 디바이스의 내부 저장 유닛 및 외부 저장 디바이스 양자 모두를 포함할 수 있다. 컴퓨터-판독가능 저장 매체는 전자 디바이스에 의하여 요구되는 컴퓨터 프로그램 또는 명령 및 다른 프로그램 및 데이터를 저장하도록 구성된다. 컴퓨터-판독가능 저장 매체는 출력되었거나 출력될 데이터를 일시적으로 저장하도록 더 구성될 수 있다.
당업자는, 본 명세서에서 개시된 실시형태들에서 설명된 예들과 조합하여, 유닛 및 알고리즘 단계가 전자 하드웨어 또는 컴퓨터 소프트웨어 및 전자 하드웨어의 조합에 의하여 구현될 수 있다는 것을 이해할 것이다. 기능들이 하드웨어 또는 소프트웨어에 의해 수행되는지 여부는 특정 애플리케이션 및 기술적 솔루션의 디자인 제약에 의존한다. 당업자는 각각의 특정 애플리케이션에 대하여 설명된 기능을 구현하기 위하여 상이한 방법을 사용할 수 있지만, 이러한 구현형태가 본 출원의 범위를 벗어나는 것으로 여겨져서는 안 된다.
당업자는, 편리하고 간략한 설명을 위하여, 앞선 시스템, 장치, 및 유닛의 상세한 동작 프로세스가 방법 실시형태에서의 대응하는 프로세스를 가리킨다는 것을 명백하게 이해할 수 있다. 세부사항은 본 명세서에서 다시 설명되지 않는다.
본 출원에서 제공된 여러 실시형태에서, 개시된 시스템, 장치, 및 방법이 다른 방식으로 구현될 수도 있다는 것이 이해되어야 한다. 예를 들어, 설명된 장치 실시형태들은 단순히 예일 뿐이다. 예를 들어, 유닛들로 분할하는 것은 단순히 논리적인 기능 분할이고, 실제 구현형태에서는 다른 분할일 수도 있다. 예를 들어, 복수 개의 유닛들 또는 컴포넌트들이 조합되거나 다른 시스템과 통합될 수도 있고, 또는 일부 피쳐들은 무시되거나 수행되지 않을 수도 있다. 추가적으로, 디스플레이되거나 논의된 상호 커플링 또는 직접 커플링 또는 통신 연결은 일부 인터페이스를 사용함으로써 구현될 수 있다. 장치 또는 유닛 사이의 간접 커플링 또는 통신 연결은 전자식, 기계식, 또는 다른 형태로 구현될 수 있다.
별개의 부분으로서 설명된 설명된들은 물리적으로 별개이거나 그렇지 않을 수 있고, 유닛으로서 디스플레이된 부품들은 물리적 유닛이거나 그렇지 않을 수 있으며, 즉, 하나의 위치에 위치될 수 있거나, 복수 개의 네트워크 유닛에 분산될 수도 있다. 유닛들 중 일부 또는 전부는 실시형태들의 솔루션의 목적을 달성하기 위한 실제 요구 사항에 기반하여 선택될 수 있다.
추가적으로, 본 출원의 실시형태에서의 기능성 유닛들은 하나의 처리 유닛으로 통합될 수 있고, 유닛들 각각은 물리적으로 따로 존재할 수 있거나, 두 개 이상의 유닛들이 하나의 유닛에 통합된다.
기능들이 소프트웨어 기능성 유닛의 형태로 구현되고, 독립적인 제품으로서 판매되고 사용되는 경우, 기능들은 컴퓨터-판독가능 저장 매체에 저장될 수 있다. 이러한 이해에 기반하여, 본 출원의 본질적인 기술적 솔루션, 또는 종래의 기술에 기여하는 부분, 또는 기술적 솔루션 중 일부는 소프트웨어 제품의 형태로 구현될 수 있다. 컴퓨터 소프트웨어 제품은 저장 매체에 저장되고, 본 출원의 실시형태들에서 설명된 방법의 단계들 중 전부 또는 일부를 수행하도록 컴퓨터 디바이스(개인용 컴퓨터, 서버, 네트워크 디바이스 또는 기타 등등)에게 명령하기 위한 여러 명령을 포함한다. 앞선 저장 매체는 프로그램 코드를 저장할 수 있는 임의의 매체, 예를 들어 USB 플래시 드라이브, 착탈식 하드 디스크, ROM, RAM, 자기 디스크, 또는 광디스크를 포함한다.
앞선 설명은 단순히 본 출원의 특정한 구현형태일 뿐이고, 본 출원의 보호 범위는 이것으로 제한되지 않는다. 본 출원에서 개시된 기술적 범위에 속하는 당업자에 의해서 쉽게 도출가능한 임의의 변형 또는 교체는 본 출원의 보호 범위에 속한다. 그러므로, 본 출원의 보호 범위는 청구항들의 보호 범위에 따라야 한다.

Claims (17)

  1. 디코딩 방법으로서,
    제 1 피쳐 맵을 획득하도록 비트스트림을 디코딩하는 단계 - 상기 제 1 피쳐 맵의 분해능은 원본 픽쳐의 분해능보다 낮음 -; 및
    재구성된 픽쳐를 획득하도록 제 1 신경망에 기반하여 제 2 피쳐 맵을 재구성하는 단계를 포함하고,
    상기 제 2 피쳐 맵의 분해능 및 상기 재구성된 픽쳐의 분해능 각각은 목표 분해능이고, 상기 목표 분해능은 상기 원본 픽쳐의 분해능보다 낮으며,
    상기 제 2 피쳐 맵은 상기 제 1 피쳐 맵이거나, 상기 제 2 피쳐 맵은 제 2 신경망에 기반하여 상기 제 1 피쳐 맵을 처리함으로써 획득된 피쳐 맵인, 디코딩 방법.
  2. 제 1 항에 있어서,
    상기 제 2 피쳐 맵이 상기 제 2 신경망에 기반하여 상기 제 1 피쳐 맵을 처리함으로써 획득된 피쳐 맵인 경우, 상기 제 2 신경망은 하나 이상의 출력 노드 및 복수 개의 합성곱 계층(convolutional layer)을 포함하고, 상기 출력 노드는 상기 제 1 합성곱 계층의 출력단 및 최종 합성곱 계층의 입력단 사이에 위치되며, 상기 출력 노드는 상기 제 1 신경망의 입력단에 연결되고,
    상기 방법은,
    상기 제 2 신경망의 목표 출력 노드에 의해 출력된 제 2 피쳐 맵을 획득하도록, 상기 제 1 피쳐 맵을 상기 제 2 신경망에 입력하는 단계 - 상기 목표 출력 노드는 상기 하나 이상의 출력 노드에 속함 -를 더 포함하며,
    상기 재구성된 픽쳐를 획득하도록 제 1 신경망에 기반하여 제 2 피쳐 맵을 재구성하는 단계는,
    상기 제 1 신경망에 의해 출력된 재구성된 픽쳐를 획득하도록, 상기 목표 출력 노드에 의해 출력된 제 2 피쳐 맵을 상기 제 1 신경망에 입력하는 것을 포함하는, 디코딩 방법.
  3. 제 2 항에 있어서,
    복수 개의 제 1 신경망이 존재하는 경우, 상기 제 1 신경망에 의해 출력된 재구성된 픽쳐를 획득하도록, 상기 목표 출력 노드에 의해 출력된 제 2 피쳐 맵을 상기 제 1 신경망에 입력하는 것은,
    상기 목표 출력 노드에 연결된 제 1 신경망에 의해 출력된 재구성된 픽쳐를 획득하도록, 상기 제 2 피쳐 맵을 상기 목표 출력 노드에 연결된 제 1 신경망에 입력하는 것을 포함하는, 디코딩 방법.
  4. 제 2 항에 있어서,
    복수 개의 목표 분해능 및 복수 개의 목표 출력 노드가 존재하는 경우, 상기 제 2 신경망의 목표 출력 노드에 의해 출력된 제 2 피쳐 맵을 획득하도록, 상기 제 1 피쳐 맵을 상기 제 2 신경망에 입력하는 단계는,
    복수 개의 분해능을 가지고 상기 제 2 신경망의 복수 개의 목표 출력 노드에 의해 출력되는 제 2 피쳐 맵을 획득하도록, 상기 제 1 피쳐 맵을 상기 제 2 신경망에 입력하는 것을 포함하고,
    상기 제 1 신경망에 의해 출력된 재구성된 픽쳐를 획득하도록, 상기 목표 출력 노드에 의해 출력된 제 2 피쳐 맵을 상기 제 1 신경망에 입력하는 것은,
    복수 개의 분해능을 가지고 상기 복수 개의 목표 출력 노드에 각각 연결된 제 1 신경망에 의해 출력되는 재구성된 픽쳐를 획득하도록, 상기 각각의 목표 출력 노드에 의해 출력된 제 2 피쳐 맵을 상기 목표 출력 노드에 연결된 제 1 신경망에 입력하는 것을 포함하는, 디코딩 방법.
  5. 제 2 항 내지 제 4 항 중 어느 한 항에 있어서,
    상기 제 2 신경망이 복수 개의 출력 노드를 포함하는 경우, 각각의 출력 노드는 하나의 출력 분해능에 대응하고,
    상기 방법은,
    목표 분해능을 결정하는 단계; 및
    그 출력 분해능이 목표 분해능인 출력 노드가 목표 출력 노드라고 결정하는 단계를 더 포함하는, 디코딩 방법.
  6. 제 1 항 내지 제 5 항 중 어느 한 항에 있어서,
    상기 제 1 신경망은 적어도 하나의 합성곱 계층을 포함하고, 상기 적어도 하나의 합성곱 계층의 합성곱 스트라이드(convolution stride)는 1인, 디코딩 방법.
  7. 제 1 항 내지 제 6 항 중 어느 한 항에 있어서,
    상기 비트스트림은 M1 개의 채널들의 2-차원 피쳐 맵에 대응하고,
    상기 제 1 피쳐 맵을 획득하도록 비트스트림을 디코딩하는 단계는,
    상기 제 1 피쳐 맵을 획득하도록 상기 M1 개의 채널 내의 M2 개의 채널들의 2-차원 피쳐 맵에 대응하는 비트스트림을 디코딩하는 것을 포함하며,
    M2<M1이고, 상기 제 1 피쳐 맵은 상기 M2 개의 채널들의 2-차원 피쳐 맵을 포함하는, 디코딩 방법.
  8. 제 7 항에 있어서,
    상기 방법은,
    제 1 픽쳐를 획득하도록 상기 재구성된 픽쳐에 업샘플링 처리를 수행하는 단계를 더 포함하고,
    상기 제 1 픽쳐의 분해능은 상기 원본 픽쳐의 분해능과 동일한, 디코딩 방법.
  9. 제 8 항에 있어서,
    상기 비트스트림은 최초 피쳐 맵의 비트스트림이고, 상기 최초 피쳐 맵은 상기 원본 픽쳐에 피쳐 추출(feature extraction)을 수행함으로써 획득되며,
    상기 방법은,
    제 3 피쳐 맵을 획득하도록 상기 M1 개의 채널 내의 M2 개의 채널이 아닌 채널의 2-차원 피쳐 맵에 대응하는 비트스트림을 디코딩하는 단계 - 상기 제 3 피쳐 맵은 M1-M2 개의 채널의 2-차원 피쳐 맵을 포함함 -; 및
    제 2 픽쳐를 획득하도록 상기 제 2 신경망에 기반하여 상기 제 1 피쳐 맵 및 제 3 피쳐 맵을 처리하는 단계 - 상기 제 2 픽쳐의 분해능은 상기 원본 픽쳐의 분해능과 동일함 -
    를 더 포함하는, 디코딩 방법.
  10. 제 1 항 내지 제 8 항 중 어느 한 항에 있어서,
    상기 제 2 피쳐 맵은 복수 개의 채널들의 2-차원 피쳐 맵을 포함하고,
    상기 재구성된 픽쳐를 획득하도록 제 1 신경망에 기반하여 제 2 피쳐 맵을 재구성하는 단계 이전에, 상기 방법은,
    상기 제 2 피쳐 맵에 채널 감축 처리(channel reduction processing)를 수행하는 단계를 더 포함하며,
    상기 재구성된 픽쳐를 획득하도록 제 1 신경망에 기반하여 제 2 피쳐 맵을 재구성하는 단계는,
    상기 재구성된 픽쳐를 획득하도록, 상기 제 1 신경망에 기반하여, 채널 감축 처리를 통하여 획득된 제 2 피쳐 맵을 재구성하는 것을 포함하는, 디코딩 방법.
  11. 제 1 항 내지 제 10 항 중 어느 한 항에 있어서,
    상기 제 1 피쳐 맵은 복수 개의 채널들의 2-차원 피쳐 맵을 포함하고,
    상기 방법은,
    상기 제 1 피쳐 맵에 채널 감축 처리를 수행하는 상기 제 1 신경망에 기반하여, 채널 감축 처리를 통하여 획득된 제 2 피쳐 맵을 재구성하는 것을 더 포함하며,
    상기 제 2 피쳐 맵은 채널 감축 처리를 통하여 획득된 제 1 피쳐 맵이거나, 상기 제 2 피쳐 맵은, 채널 감축 처리를 통하여 획득된 제 1 피쳐 맵을 상기 제 2 신경망에 기반하여 처리함으로써 획득되는 피쳐 맵인, 디코딩 방법.
  12. 인코딩 방법으로서,
    최초 피쳐 맵을 획득하도록 원본 픽쳐 상에 피쳐 추출을 수행하는 단계 - 상기 최초 피쳐 맵은 복수 개의 채널들의 2-차원 피쳐 맵을 포함하고, 상기 최초 피쳐 맵의 분해능은 상기 원본 픽쳐의 분해능보다 낮음 -; 및
    비트스트림을 획득하도록, 인코딩될 피쳐 맵(to-be-encoded feature map)을 인코딩하는 단계를 포함하고,
    상기 인코딩될 피쳐 맵은 최초 피쳐 맵이거나, 상기 최초 피쳐 맵 내의 일부 채널들의 2-차원 피쳐 맵인, 인코딩 방법.
  13. 디코딩 장치로서,
    제 1 피쳐 맵을 획득하도록 비트스트림을 디코딩하도록 구성된 처리 모듈 - 상기 제 1 피쳐 맵의 분해능은 원본 픽쳐의 분해능보다 낮음 -; 및
    재구성된 픽쳐를 획득하도록 제 1 신경망에 기반하여 제 2 피쳐 맵을 재구성하도록 구성된 재구성 모듈을 포함하고,
    상기 제 2 피쳐 맵의 분해능 및 상기 재구성된 픽쳐의 분해능 각각은 목표 분해능이고, 상기 목표 분해능은 상기 원본 픽쳐의 분해능보다 낮으며,
    상기 제 2 피쳐 맵은 상기 제 1 피쳐 맵이거나, 상기 제 2 피쳐 맵은 제 2 신경망에 기반하여 상기 제 1 피쳐 맵을 처리함으로써 획득된 피쳐 맵인, 디코딩 장치.
  14. 인코딩 장치로서,
    최초 피쳐 맵을 획득하도록 원본 픽쳐 상에 피쳐 추출을 수행하도록 구성된 처리 모듈 - 상기 최초 피쳐 맵은 복수 개의 채널들의 2-차원 피쳐 맵을 포함하고, 상기 최초 피쳐 맵의 분해능은 상기 원본 픽쳐의 분해능보다 낮음 -; 및
    비트스트림을 획득하도록, 인코딩될 피쳐 맵(to-be-encoded feature map)을 인코딩하도록 구성된 인코딩 모듈을 포함하고,
    상기 인코딩될 피쳐 맵은 최초 피쳐 맵이거나, 상기 최초 피쳐 맵 내의 일부 채널들의 2-차원 피쳐 맵인, 인코딩 장치.
  15. 전자 디바이스로서,
    하나 이상의 프로세서; 및
    하나 이상의 컴퓨터 프로그램 또는 명령을 저장하도록 구성된 저장소를 포함하고,
    상기 하나 이상의 컴퓨터 프로그램 또는 명령이 상기 하나 이상의 프로세서에 의하여 실행될 때, 상기 하나 이상의 프로세서는 제 1 항 내지 제 12 항 중 어느 한 항에 따르는 방법을 구현하도록 이네이블되는, 전자 디바이스.
  16. 전자 디바이스로서,
    제 1 항 내지 제 12 항 중 어느 한 항에 따른 방법을 실행하도록 구성된 프로세서를 포함하는, 전자 디바이스.
  17. 컴퓨터 프로그램 또는 명령을 포함하는 컴퓨터-판독가능 저장 매체로서,
    상기 컴퓨터 프로그램 또는 명령이 컴퓨터 상에서 실행될 때, 상기 컴퓨터는 1 항 내지 제 12 항 중 어느 한 항에 따른 방법을 수행하도록 이네이블되는, 컴퓨터-판독가능 저장 매체.
KR1020247006406A 2021-07-31 2022-05-31 인코딩 및 디코딩 방법, 및 장치 KR20240038779A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN202110877277.2 2021-07-31
CN202110877277.2A CN115700771A (zh) 2021-07-31 2021-07-31 编解码方法及装置
PCT/CN2022/096354 WO2023010981A1 (zh) 2021-07-31 2022-05-31 编解码方法及装置

Publications (1)

Publication Number Publication Date
KR20240038779A true KR20240038779A (ko) 2024-03-25

Family

ID=85120771

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020247006406A KR20240038779A (ko) 2021-07-31 2022-05-31 인코딩 및 디코딩 방법, 및 장치

Country Status (6)

Country Link
EP (1) EP4369300A1 (ko)
KR (1) KR20240038779A (ko)
CN (1) CN115700771A (ko)
AU (1) AU2022321528A1 (ko)
CA (1) CA3227676A1 (ko)
WO (1) WO2023010981A1 (ko)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110300301B (zh) * 2018-03-22 2023-01-13 华为技术有限公司 图像编解码方法和装置
US20210074036A1 (en) * 2018-03-23 2021-03-11 Memorial Sloan Kettering Cancer Center Deep encoder-decoder models for reconstructing biomedical images
CN110033003B (zh) * 2019-03-01 2023-12-15 华为技术有限公司 图像分割方法和图像处理装置
CN111311704A (zh) * 2020-01-21 2020-06-19 上海联影智能医疗科技有限公司 图像重建方法、装置、计算机设备和存储介质

Also Published As

Publication number Publication date
CN115700771A (zh) 2023-02-07
EP4369300A1 (en) 2024-05-15
AU2022321528A1 (en) 2024-02-15
CA3227676A1 (en) 2023-02-09
WO2023010981A1 (zh) 2023-02-09

Similar Documents

Publication Publication Date Title
US20230209096A1 (en) Loop filtering method and apparatus
US20230336776A1 (en) Method for chroma subsampled formats handling in machine-learning-based picture coding
CN111800629A (zh) 视频解码方法、编码方法以及视频解码器和编码器
US20240105193A1 (en) Feature Data Encoding and Decoding Method and Apparatus
US20230336736A1 (en) Method for chroma subsampled formats handling in machine-learning-based picture coding
CN113660486A (zh) 图像编码、解码、重建、分析方法、系统及电子设备
US20240037802A1 (en) Configurable positions for auxiliary information input into a picture data processing neural network
WO2023193629A1 (zh) 区域增强层的编解码方法和装置
KR20240038779A (ko) 인코딩 및 디코딩 방법, 및 장치
TW202318265A (zh) 基於注意力的圖像和視訊壓縮上下文建模
CN114554205B (zh) 一种图像编解码方法及装置
WO2022211658A1 (en) Independent positioning of auxiliary information in neural network based picture processing
US20240161488A1 (en) Independent positioning of auxiliary information in neural network based picture processing
US20240078414A1 (en) Parallelized context modelling using information shared between patches
KR20240064698A (ko) 특징 맵 인코딩 및 디코딩 방법 및 장치
EP4231644A1 (en) Video frame compression method and apparatus, and video frame decompression method and apparatus
AU2022348742A1 (en) Feature map encoding and decoding method and apparatus
WO2023091040A1 (en) Generalized difference coder for residual coding in video compression
WO2024002496A1 (en) Parallel processing of image regions with neural networks – decoding, post filtering, and rdoq
JP2023548823A (ja) サブネットワークを含むニューラルネットワークを用いてピクチャを符号化又は復号する方法及び機器
WO2024002497A1 (en) Parallel processing of image regions with neural networks – decoding, post filtering, and rdoq
JP2024500744A (ja) ニューラルネットワークによりピクチャを符号化又は復号する方法及び装置