KR20230046310A - 특징 맵 데이터의 시그널링 - Google Patents

특징 맵 데이터의 시그널링 Download PDF

Info

Publication number
KR20230046310A
KR20230046310A KR1020237007294A KR20237007294A KR20230046310A KR 20230046310 A KR20230046310 A KR 20230046310A KR 1020237007294 A KR1020237007294 A KR 1020237007294A KR 20237007294 A KR20237007294 A KR 20237007294A KR 20230046310 A KR20230046310 A KR 20230046310A
Authority
KR
South Korea
Prior art keywords
feature map
bitstream
region
decoding
side information
Prior art date
Application number
KR1020237007294A
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 KR20230046310A publication Critical patent/KR20230046310A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/002Image coding using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/40Scenes; Scene-specific elements in video content
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/154Measured or subjectively estimated visual quality after decoding, e.g. measurement of distortion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/167Position within a video image, e.g. region of interest [ROI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/36Scalability techniques involving formatting the layers as a function of picture distortion after decoding, e.g. signal-to-noise [SNR] scalability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/59Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Data Mining & Analysis (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Molecular Biology (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

본 개시는 신경망을 사용하는 시스템을 위한 특징 맵 정보의 효율적인 시그널링에 관한 것이다. 구체적으로는, 디코더측에서, 존재 지시자가 비트스트림으로부터 파싱된 정보에 기초하여 획득된다. 획득된 존재 지시자의 값에 기초하여, 특징 맵 영역과 관련된 추가 데이터가 파싱되거나 파싱이 바이패스된다. 존재 지시자는, 예를 들어 특징 맵 데이터가 비트스트림에 포함되어 있는지 여부를 지시하는 영역 존재 지시자일 수 있거나, 또는 특징 맵 데이터와 관련된 사이드 정보가 비트스트림에 포함되어 있는지 여부를 지시하는 사이드 정보 존재 지시자일 수 있다. 마찬가지로, 인코딩 방법은 물론 인코딩 및 디코딩 장치가 제공된다. 따라서, 바이패싱을 적용하여 전송되는 데이터의 수량을 줄이는 것은 물론 디코딩 복잡도를 줄이는 등 특징 맵 데이터가 보다 효율적으로 처리될 수 있다.

Description

특징 맵 데이터의 시그널링
본 개시의 실시예는 일반적으로 특징 맵(feature map) 또는 기타 사이드(side) 정보와 같은 신경망 처리와 관련된 시그널링 정보 분야에 관한 것이다.
하이브리드 이미지 및 비디오 코덱은 수십 년 동안 이미지 및 비디오 데이터를 압축하는 데 사용되어 왔다. 이러한 코덱에서, 신호는 일반적으로 블록을 예측함으로써 그리고 원래 블록과 예측 그의 예측 사이의 차이만을 추가로 코딩함으로써 블록 단위로 인코딩된다. 특히, 이러한 코딩은 일반적으로 일부 엔트로피 코딩을 일부 포함하여, 변환, 양자화 및 비트스트림 생성을 포함할 수 있다. 일반적으로, 하이브리드 코딩 방법의 세 가지 컴포넌트 ― 변환, 양자화, 엔트로피 코딩 ―은 개별적으로 최적화된다. 고효율 비디오 코딩(High-Efficiency Video Coding, HEVC), 다목적 비디오 코딩(Versatile Video Coding, VVC) 및 필수 비디오 코딩(Essential Video Coding, EVC)과 같은 최신 비디오 압축 표준은 또한 예측 후 잔차 신호를 코딩하기 위해 변환된 표현을 사용한다.
최근, 머신 학습이 이미지 및 비디오 코딩에 적용되고 있다. 일반적으로, 머신 학습은 이미지 및 비디오 코딩에 다양한 방식으로 적용될 수 있다. 예를 들어, 종단간 최적화된 이미지 또는 비디오 코딩 방식이 논의되고 있다. 또한, 머신 학습은 예측 파라미터의 선택 또는 압축 등과 같은 종단간 코딩의 일부분을 결정하거나 최적화하는 데 사용되었다. 이러한 애플리케이션은 인코더와 디코더 간에 전달될 일부 특징 맵 데이터를 생성한다는 공통점을 갖는다. 비트스트림의 효율적인 구조는 이미지/비디오 소스 신호를 인코딩하는 비트 수량을 줄이는 데 크게 기여할 수 있다.
특징 맵 데이터의 효율적인 시그널링은 다른 머신 학습 애플리케이션이나 분산되어 있을 수 있는 머신 학습 시스템의 레이어 간에 특징 맵 데이터 또는 관련 정보를 전달하는 데에도 유용하다.
협업 지능은 모바일 클라우드 인프라 전반에 걸쳐 심층 신경망을 효율적으로 배포하기 위한 몇 가지 새로운 패러다임 중 하나이다. 예를 들어, (모바일) 장치와 클라우드 간에 네트워크를 분할함으로써, 시스템의 전체 에너지 및/또는 지연 시간이 최소화되도록 계산 워크로드를 분산할 수 있다. 일반적으로, 계산 워크로드를 분산하면 자원이 제한된 장치가 신경망 배포에서 사용될 수 있다. 또한, 컴퓨터 비전 작업이나 머신용 이미지/비디오 코딩은 애플리케이션으로, 이는 또한 분산 방식으로 작동할 수 있으며 협업 지능을 활용할 수 있다.
신경망은 일반적으로 2개 이상의 레이어를 포함한다. 특징 맵은 레이어의 출력이다. 장치들 사이, 예를 들어, 장치와 클라우드 사이 또는 상이한 장치들 사이에 분할되는 신경망에서, 분할되는 장소(예를 들어, 제1 장치)의 출력의 특징 맵이 압축되어 신경망의 나머지 레이어(예를 들어, 제2 장치)로 전송된다.
전송되는 데이터의 양을 줄이는 것이 바람직하면서도 여전히 품질과 관련된 다양한 요구사항을 지원하는 구성을 제공할 수 있도록 전송 자원은 일반적으로 제한되어 있다.
본 발명은 신경망에서 사용되는 데이터를 압축하는 방법 및 장치에 관한 것이다. 이러한 데이터는 특징(예를 들어, 특징 맵)을 포함할 수 있지만 이에 제한되지 않는다.
본 발명은 독립 청구항의 범위에 의해 정의된다. 종속 청구범위에서 유리한 실시예 중 일부가 제공된다.
특히, 본 개시의 일부 실시예는 신경망에 의해 사용 가능한 특징 맵의 데이터를 시그널링하는 것과 관련이 있다. 비트스트림 구조의 신중한 설계에 의해 효율이 향상될 수 있다. 특히, 존재 지시자(presence indicator)는 특징 맵 데이터 또는 일반적으로 사이드(side) 정보의 존재 유무를 지시하기 위해 시그널링된다. 존재 지시자에 따라, 특징 맵 또는 해당 영역의 인코딩 및/또는 디코딩이 수행되거나 스킵(skip)된다.
측면에 따르면, 비트스트림에 기초하여 신경망에 의한 처리를 위한 특징 맵을 디코딩하는 방법이 제공되며, 이 방법은, 특징 맵의 영역에 대해, 비트스트림으로부터의 정보에 기초하여 영역 존재 지시자를 획득하는 단계, 영역을 디코딩하는 단계 ― 영역을 디코딩하는 단계는, 영역 존재 지시자가 제1 값을 갖는 경우 영역을 디코딩하기 위해 비트스트림으로부터 데이터를 파싱(parsing)하는 단계, 및 영역 존재 지시자가 제2 값을 갖는 경우 영역을 디코딩하기 위해 비트스트림으로부터의 데이터 파싱을 바이패스(bypass)하는 단계를 포함함 ―를 포함한다.
일부 실시예에서, 영역 존재 지시자는 비트스트림으로부터 디코딩된다.
일부 실시예에서, 영역 존재 지시자는 비트스트림에서 시그널링되는 정보에 기초하여 도출된다. 예를 들어, 영역 존재 지시자가 제2 값을 갖는 경우, 영역을 디코딩하는 단계는 미리 결정된 규칙에 따라 영역을 설정하는 단계를 더 포함한다. 특징 맵 데이터의 부재 시 특징 맵 데이터 부분을 채우는 규칙이 있으면 디코더가 시그널링되지 않은 데이터를 적절히 보상할 수 있다.
예를 들어, 미리 결정된 규칙은 영역의 특징을 상수로 설정하는 것을 지정한다. 상수 채우기는 모든 특징 요소의 엔트로피 디코딩을 포함하지 않고도 누락된 부분을 채울 수 있는 계산적으로 간단하고 효율적인 방법이다. 일부 실시예에서, 상수는 0이다.
이 방법은 비트스트림에서 상기 상수를 디코딩하는 단계를 포함할 수 있다. 상수를 시그널링하면 유연성이 제공되고 재구성된 결과가 향상될 수 있다.
예시적인 구현에서, 이 방법은 비트스트림으로부터 서아두 정보 존재 지시자를 획득하는 단계, 사이드 정보 존재 지시자가 제3 값을 갖는 경우 비트스트림으로부터 사이드 정보를 파싱하는 단계, 및 사이드 정보 존재 지시자가 제4 값을 갖는 경우 비트스트림으로부터 사이드 정보의 파싱을 바이패스하는 단계를 포함하며, 사이드 정보는 영역의 엔트로피 디코딩에서의 사용을 위한 추정 확률 모델을 획득하기 위해 영역 존재 지시자 및 신경망에 의해 처리되기 위한 정보 중 적어도 하나를 더 포함할 수 있다. 추가 사이드 정보는 보다 정교한 설정이 가능할 수 있다. 사이드 정보에 대한 존재 지시자는 코딩 모드를 효율적으로 만들 수 있다.
예를 들어, 사이드 정보 존재 지시자가 제4 값을 갖는 경우, 이 방법은 사이드 정보를 미리 결정된 사이드 정보 값으로 설정하는 단계를 포함한다. 사이드 정보를 채우면 누락된(시그널링되지 않은) 데이터에 대응할 수 있다.
일부 실시예에서, 영역 존재 지시자는 제1 값 및 제2 값에 의해 형성되는 2개의 값 중 하나만을 취할 수 있는 플래그이다. 이진 플래그는 특히 레이트-효율적인 지시를 제공한다.
일부 실시예에서, 영역은 특징 맵의 채널이다. 채널 수준은 자연스러운 레이어 입도이다. 채널이 이미 개별적으로(분리 가능) 사용 가능하므로, 더 이상의 분할이 필요하지 않다. 따라서, 채널 단위 입도를 활용하는 것이 레이트와 왜곡을 확장하는 효율적인 방법이다. 그러나, 채널의 영역은 채널의 서브 영역 또는 유닛, 서브 영역 또는 유닛의 동일한 공간 위치에 대응하는 다른 채널의 값, 특징 맵의 단일 값, 다른 채널의 동일한 공간 위치에 있는 값 등 다른 입도를 가질 수 있다는 것이 이해된다.
이 방법은 특징 맵의 복수의 채널의 중요도(significance)를 지시하는 중요도 순서를 획득하는 단계, 최종 중요 채널 지시자를 획득하는 단계, 및 최종 중요 채널 지시자에 기초하여 영역 존재 지시자를 획득하는 단계를 더 포함할 수 있다. 채널 또는 특징 맵의 일반적인 영역에 순서를 지정하면 영역 존재의 시그널링을 단순화하는 데 도움이 될 수 있다. 일부 실시예에서, 최종 중요 채널의 지시는 중요도 순서 내에서 최종 중요 채널의 인덱스에 대응한다. 영역별 시그널링 플래그 대신에, 비트스트림에서 사이드 정보로서 전송되는 최종 중요 영역의 시그널링이 더 효율적일 수 있다.
최종 중요 채널의 지시는 비트스트림에서 디코딩된 품질 지시자에 대응할 수 있으며, 특징 맵의 영역 압축으로 인해 코딩된 특징 맵의 품질을 지시할 수 있다. 따라서, 품질이 일반적으로 다른 목적을 위해 비트스트림의 사이드 정보로서 지시되기 때문에, 영역 채널 존재는 추가 시그널링 없이 도출될 수 있다.
예를 들어, 중요도 순서를 획득하는 단계는 비트스트림에서 중요도 순서의 지시를 디코딩하는 단계를 포함한다. 명시적 시그널링은 순서를 설정/구성하는 데 완전한 유연성을 제공할 수 있다. 그러나, 본 개시는 중요도 순서의 명시적 시그널링에 한정되지 않다.
예시적인 구현에서, 중요도 순서를 획득하는 단계는 특징 맵이 생성된 소스 데이터에 관해 이전에 디코딩된 정보(또는 사이드 정보)에 기초하여 중요도 순서를 도출하는 단계를 포함한다. 이러한 구현의 장점 중 하나는 추가 시그널링 오버헤드가 적다는 것이다.
예를 들어, 중요도 순서를 획득하는 단계는 특징 맵이 생성된 소스 데이터의 유형에 관해 이전에 디코딩된 정보에 기초하여 중요도 순서를 도출하는 단계를 포함한다. 소스 데이터의 유형은 데이터의 목적과 특성의 양호한 지시를 제공하므로, 그들의 재구성에 필요한 품질에 대한 정보를 제공할 수 있다.
예를 들어, 비트스트림에서 최상위부터 최종 중요 채널까지 중요도 순서에 따라 비트스트림 내에서 정렬된 채널을 디코딩하는 단계를 포함한다. 이렇게 하면 원하는 품질 수준에 따라 가장 중요도가 낮은 채널을 폐기(잘라내기)함으로써 재인코딩하지 않고도 비트레이트를 낮출 수 있는 비트레이트 확장성 특징을 사용할 수 있다.
예시적인 구현에서, 이 방법은 비트스트림으로부터, 특징 맵의 영역을 유닛으로 분할하는 것을 지시하는 영역 분할 정보를 디코딩하는 단계, 및 분할 정보에 따라, 특징 맵 데이터가 영역의 유닛을 디코딩하기 위해 비트스트림으로부터 파싱되어야 하는지 여부를 지시하는 유닛 존재 지시를 디코딩하거나 또는 디코딩하지 않는 단계를 더 포함할 수 있다. 채널과 같은 영역을 유닛(파티션)으로 추가로 분할(파티셔닝)하면 이들 유닛의 존재를 지시하는 더 세밀함 입도를 제공할 수 있어서 오버헤드를 더 유연하게 확장할 수 있다.
예를 들어, 영역에 대한 영역 분할 정보는 비트스트림이 영역의 유닛의 치수 및/또는 위치를 지정하는 유닛 정보를 포함하는지 여부를 지시하는 플래그를 포함하고, 이 방법은 영역의 유닛당 유닛 존재 지시를 비트스트림으로부터 디코딩하는 단계; 및 유닛에 대한 유닛 존재 지시 값에 따라, 유닛에 대한 특징 맵 데이터를 비트스트림으로부터 파싱하거나 파싱하지 않는 단계를 포함한다. 분할의 파라미터를 시그널링함으로써, 레이트 및 왜곡 관계는 추가적인 자유도로 제어될 수 있다.
일부 실시예에서, 유닛 정보는 쿼드 트리, 이진 트리, 삼진 트리 또는 삼각 분할 중 적어도 하나를 포함하는 영역의 계층적 분할을 지정한다. 이러한 분할은 예를 들어 하이브리드 코덱을 위해 개발된 바와 같이 개발된 효율적인 시그널링의 이점을 제공한다.
일부 예시적인 구현에서, 비트스트림으로부터 영역을 디코딩하는 단계는, 영역의 계수 중 최종 계수의 위치를 지시하는 최종 중요 계수 지시자를 비트스트림으로부터 추출하는 단계, 영역의 중요 계수를 비트스트림으로부터 디코딩하는 단계, 미리 정의된 규칙에 따라 최종 중요 계수 지시자 다음의 계수를 설정하는 단계, 및 영역의 계수를 역변환하여 영역의 특징 데이터를 획득하는 단계를 포함한다. 변환의 적용 및 변환 후 계수의 코딩으로 인해 일반적으로 하위 인덱스 계수 영역에 위치하기 때문에 중요 계수를 쉽게 식별할 수 있다. 이는 시그널링 효율을 더욱 높일 수 있다.
예를 들어, 역변환은 역 이산 코사인 변환, 역 이산 사인 변환, 또는 역 이산 코사인 변환이나 역 이산 코사인 변환을 수정하여 획득되는 역변환, 또는 컨벌루션 신경망 변환이다. 이러한 예시적인 변환은 이미 잔차 코딩 목적으로 사용되어 왔으며, 예를 들어 기존의 하드웨어/소프트웨어/알고리즘 접근 방식을 통해 효율적으로 구현할 수 있다.
이 방법은 비트스트림으로부터 비트스트림이 상기 특징 맵에 대한 임의의 사이드 정보를 포함하는지 여부를 지시하는 사이드 정보 존재 플래그를 디코딩하는 단계를 더 포함할 수 있으며, 여기서 사이드 정보는 특징 맵의 엔트로피 디코딩에서의 사용을 위한 추정 확률 모델을 획득하기 위해 신경망에 의해 처리되기 위한 정보를 포함한다. 사이드 정보에 대한 존재 지시는 특징 맵 영역 존재 지시와 유사하게 보다 효율적인 시그널링을 제공할 수 있다.
예를 들어, 영역 존재 지시자의 디코딩은 컨텍스트 적응형 엔트로피 디코더에 의한 디코딩을 포함한다. 적응형 엔트로피 코딩으로 인코딩/디코딩을 추가로 수행하면 비트스트림이 더욱 압축된다.
일 측면에 따르면, 비트스트림으로부터 신경망에 의한 처리를 위한 특징 맵을 디코딩하는 방법이 제공되며, 이 방법은, 비트스트림으로부터 특징 맵에 관한 사이드 정보 지시자를 획득하는 단계; 특징 맵을 디코딩하는 단계 ― 특징 맵을 디코딩하는 단계는, 사이드 정보 지시자가 제5 값을 갖는 경우, 비트스트림으로부터 특징 맵을 디코딩하기 위한 사이드 정보를 파싱하는 단계, 및 사이드 정보 지시자가 제6 값을 갖는 경우, 비트스트림으로부터 특징 맵을 디코딩하기 위한 사이드 정보의 파싱을 바이패스(bypass)하는 단계를 포함함 ―를 포함한다.
이 방법은 엔트로피 디코딩을 포함할 수 있으며, 여기서 엔트로피 디코딩은 신경망에 의해 처리된 디코딩된 특징 맵을 기반으로 한다. 이를 통해 엔트로피 코더를 컨텐츠에 효율적으로 적용할 수 있다.
예를 들어, 사이드 정보 지시자가 제6 값을 갖는 경우, 이 방법은, 사이드 정보를 미리 결정된 사이드 정보 값으로 설정하는 단계를 포함한다. 따라서, 사이드 정보 값의 시그널링이 생략되어 레이트 향상으로 이어질 수 있다. 예를 들어, 미리 결정된 사이드 정보 값은 0이다.
일부 실시예에서, 이 방법은 비트스트림으로부터 상기 미리 결정된 사이드 정보 값을 디코딩하는 단계를 포함한다. 기본값으로 사용될 값을 제공하면 설정의 유연성이 증가된다.
일 측면에 따르면, 비트스트림으로부터 신경망에 의한 처리를 위한 특징 맵을 디코딩하는 상기 설명된 방법 중 임의의 방법에 따른 방법; 및 디코딩된 특징 맵을 신경망으로 처리하는 것을 포함하는 디코딩된 이미지를 획득하는 단계를 포함하는 이미지 디코딩 방법이 제공된다. 머신 학습 기반 이미지 또는 비디오 코딩에 상기 방법을 적용하면 이러한 코딩의 효율성을 상당히 향상시킬 수 있다. 예를 들어, 특징 맵은 코딩된 이미지 데이터, 및/또는 이미지 데이터의 디코딩을 위한 코딩된 사이드 정보를 나타낸다.
또 다른 측면에서, 상기 설명된 방법 중 어느 하나에 따른 방법; 및 디코딩된 특징 맵을 신경망으로 처리하는 것을 포함하는 컴퓨터 비전 작업을 수행하는 단계를 포함하는 컴퓨터 비전을 위한 방법이 제공된다. 머신 비전 작업에 상기 방법을 적용하면, 특히 분산 방식으로 구혀되는 경우에 신경망과 같은 머신 학습 기반 모델 내에서 정보 전송에 필요한 레이트를 줄이는 데 도움이 될 수 있다. 예를 들어, 컴퓨터 비전 작업은 객체 검출, 객체 분류 및/또는 객체 인식이다.
일 측면에 따르면, 신경망에 의한 처리를 위한 특징 맵을 비트스트림으로 인코딩하는 방법이 제공되며, 이 방법은, 특징 맵의 영역에 대해 영역 존재 지시자를 획득하는 단계, 특징 맵의 획득된 영역 존재 지시자에 기초하여 결정하는 단계: 영역 존재 지시자가 제1 값을 갖는 경우, 특징 맵의 영역을 인코딩하는 단계; 영역 존재 지시자가 제2 값을 갖는 경우,특징 맵의 영역의 인코딩을 바이패스하는 단계를 포함한다.
일부 실시예에서, 영역 존재 지시자는 비트스트림에서 지시된다.
일부 실시예에서, 영역 존재 지시자는 바이스트림에서 이미 시그널링된 정보에 기초하여 도출된다.
여기에서 언급된 인코딩 방법은 특정 구조를 갖는 비트스트림을 제공하며, 이는 대응하는 디코딩 방법에 대해 위에서 전술한 이점을 가능하게 한다.
예를 들어, 결정하는 단계(또는 영역 존재 지시자를 획득하는 단계)는 영역의 특징의 값을 평가하는 단게를 포함한다. 시그널링의 컨텍스트/컨텐츠 기반 적응을 통해 특정 상관 관계를 활용하고 그에 따라 코딩된 스트림의 레이트를 줄일 수 있다. 이러한 방식으로, 결정하는 단계(또는 영역 존재 지시자를 획득하는 단계)는 영역의 컨텍스트 값을 평가하는 단계, 즉 특징 맵의 영역에 공간적으로 이웃한 값을 평가하는 단계를 포함할 수 있다.
일부 실시예에서, 결정하는 단계는 상기 신경망 처리 결과의 품질에 대한 영역의 영향에 기초하다. 이러한 결정은 정보의 절단으로 인한 왜곡에 민감한 레이트의 감소로 이어진다.
예시적인 구현에 따르면, 결정하는 단계는, 특징 맵의 전송에 필요한 비트의 합을 최상위 영역의 비트부터 시작하여 중요도를 감소시키는 영역으로 계속하여 합이 미리 구성된 임계값을 초과할 때까지 증분적으로 결정하는 단계, 합이 미리 구성된 임계값을 초과하지 않는 영역과 인코딩된 영역에 대한 제1 값을 갖는 영역 존재 지시자를 인코딩하는 단계, 및 인코딩되지 않은 영역에 대해 상기 제2 값을 갖는 영역 존재 지시자를 인코딩하는 단계를 포함한다.
일 측면에 따르면, 신경망에 의한 처리를 위한 특징 맵을 비트스트림으로 인코딩하는 방법이 제공되며, 이 방법은, 특징 맵을 획득하는 단계; 특징 맵에 관하여 비트스트림에서 지시하는 사이드 정보를 지시할지 여부를 결정하는 단계 ― 사이드 정보는 비트스트림에서, 제3 값 및 사이드 정보를 지시하는 사이드 정보 지시자, 또는 사이드 정보 없이 제4 값을 지시하는 사이드 정보 지시자 중 어느 하나를 지시함 ―를 포함하다. 따라서, 인코딩은 필요한 품질/레이트를 달성하는 데 효과적으로 필요한 정보만을 시그널링할 수 있다.
일부 실시예에서, 영역 존재 지시자 및/또는 사이드 정보 지시자는 제1 값 및 제2 값에 의해 형성된 2개의 값 중 하나만을 취할 수 있는 플래그이다. 이진 플래그는 특히 레이트 효율적인 지시를 제공한다. 일부 실시예에서, 영역은 특징 맵의 채널이다.
특징 맵의 영역은 상이한 입도, 예를 들어 채널의 서브 영역 또는 유닛, 서브 영역 또는 유닛의 동일한 공간 위치에 대응하는 다른 채널의 값, 특징 맵의 단일 값, 다른 채널의 동일한 공간 위치의 값 등을 가질 수 있다는 것이 이해된다.
이 방법은 특징 맵의 복수의 채널의 중요도를 지시하는 중요도 순서를 획득하는 단계, 최종 중요 채널 지지사를 획득하는 단계, 및 최종 중요 채널 지시자에 기초하여 영역 존재 지시자를 획득하는 단계를 더 포함할 수 있다. 일부 실시예에서, 최종 중요 채널의 지시는 중요도 순서 내에서 최종 중요 채널의 인덱스에 대응한다.
최종 중요 채널의 지시는 사이드 정보로서 비트스트림에 인코딩(삽입)된 품질 지시자에 대응할 수 있으며 특징 맵 영역의 압축으로 인해 코딩된 특징 맵의 품질을 지시할 수 있다.
예를 들어, 중요도 순서 지시는 사이드 정보로서 비트스트림에 삽입(인코딩)된다.
예시적인 구현에서, 중요도 순서를 획득하는 단계는 특징 맵이 생성된 소스 데이터에 관해 이전에 인코딩된 정보에 기초하여 중요도 순서를 도출하는 단계를 포함한다. 예를 들어, 중요도 순서를 획득하는 단계는, 특징 맵이 생성된 소스 데이터의 유형에 관해 이전에 인코딩된 정보에 기초하여 중요도 순서를 도출하는 단계를 포함한다.
예를 들어, 최상위부터 최종 중요 채널까지 중요도 순서에 따라 비트스트림 내에서 정렬된 채널을 비트스트림으로 디코딩하는 단계를 포함한다.
예시적인 구현에서, 이 방법은, 특징 맵의 영역을 유닛으로 분할하는 것을 지시하는 영역 분할 정보를 비트스트림으로 인코딩하는 단계, 및 분할에 따라, 특징 맵 데이터가 영역의 유닛을 디코딩하기 위해 비트스트림에 포함되는지 여부를 지시하는 유닛 존재 지시를 인코딩(비스트트림으로 삽입)하거나 인코딩(비트스트림으로 삽입)하지 않는 단계를 더 포함한다.
예를 들어, 영역에 대한 영역 분할 정보는 비트스트림이 영역의 유닛의 치수 및/또는 위치를 지정하는 유닛 정보를 포함하는지 여부를 지시하는 플래그를 포함하며, 이 방법은 영역의 유닛 당 유닛 존재 지시를 비트스트림으로부터 디코딩하는 단게; 및 유닛에 대한 유닛 존재 지시의 값에 따라, 유닛에 대한 특징 맵 데이터를 비트스트림으로부터 파싱하거나 파싱하지 않는 단계를 포함한다. 분할의 파라미터를 시그널링함으로써, 레이트와 왜곡 관계가 츠가적인 자유도로 제어될 수 있다.
일부 실시예에서, 유닛 정보는 쿼드 트리, 이진 트리, 삼진 트리 또는 삼각 분할 중 적어도 하나를 포함하ms 영역의 계층적 분할을 지정한다.
일부 예시적인 구현에서, 영역을 비트스트림으로 인코딩하는 단계는, 영역의 계수 중 최종 계수의 위치를 지시하는 최종 중요 계수 지시자를 비트스트림 내에 포함하는 단계, 영역의 중요 계수를 비트스트림으로 인코딩하는 단계, 및 변환에 의한 영역의 특징 데이터를 변환함으로써 영역의 계수를 획득하는 단계를 포함한다.
예를 들어, 역변환은 역 이산 코사인 변환, 역 이산 사인 변환, 또는 역 이산 코사인 변환이나 역 이산 코사인 변환을 수정하여 획득되는 역변환, 또는 컨벌루션 신경망 변환이다.
이 방법은 비트스트림이 상기 특징 맵에 대한 임의의 사이드 정보를 포함하는지 여부를 지시하는 사이드 정보 존재 플래그를 비트스트림으로부터 인코딩하는 단계를 더 포함할 수 있으며, 사이드 정보는 특징 맵의 엔트로피 디코딩에서의 사용을 위한 추정 확률 모델을 획득하기 위해 신경망에 의해 처리되기 위한 정보를 포함한다.
예를 들어, 영역 존재 지시자 및/또는 사이드 정보 지시자의 인코딩은 컨텍스트 적응형 엔트로피 인코더에 의한 인코딩을 포함한다.
일 측면에 따르면, 신경망에 의해 처리를 위한 특징 맵을 비트스트림으로 인코딩하는 방법이 제공되며, 이 방법은, 특징 맵에 관한 사이드 정보 지시자를 비트스트림으로 포함하는 단계; 특징 맵을 인코딩하는 단계 ― 특징 맵을 인코딩하는 단계는, 사이드 정보 지시자의 제5 값을 비트스트림 내로 삽입하는 단계, 사이드 정보는 특징 맵을 디코딩하기 위한 것이며 사이드 정보를 비트스트림에 포함하거나, 또는 사이드 정보 지시자의 제6 값을 비트스트림에 포함하고 특징 맵 영역에 대한 사이드 정보를 비트스트림에 삽입하지 않는 단계를 포함함 ―를 포함한다.
이 방법은 엔트로피 인코딩을 포함할 수 있으며, 여기서 엔트로피 인코딩은 신경망에 의해 처리되는 인코딩된 특징 맵에 기초한다.
예를 들어, 사이드 정보 지시자가 제6 값을 갖는 경우, 인코더는 디코더에서 사이드 정보를 미리 결정된 사이드 정보 값으로 설정하는 것을 제어한다. 일부 실시예에서, 이 방법은 상기 미리 결정된 사이드 정보 값을 비트스트림으로 인코딩하는 단계를 포함한다.
일 측면에 따르면, 입력 이미지를 신경망으로 처리하여 인코딩된 이미지를 획득하는 단계 ― 입력 이미지를 신경망으로 처리하여 인코딩된 이미지를 획득함으로써 특징 맵을 획득함 ―; 및 특징 맵을 비트스트림으로 인코딩하는 상기 설명된 방법 중 임의의 방법에 따른 방법을 포함하는 이미지 인코딩 방법이 제공된다. 예를 들어, 특징 맵은 코딩된 이미지 데이터 및/또는 이미지 데이터를 디코딩하기 위한 코딩된 사이드 정보를 나타낸다.
다른 측면에서, 신경망에 의해 처리된 특징 맵을 비트스트림으로 인코딩하는 전술한 방법 중 임의의 방법에 따른 방법; 및 컴퓨터 비전 작업을 수행하기 위한 특징 맵을 디코더에게 제공하기 위해 이미지를 처리하여 신경망으로 특징 맵을 획득하는 단계를 포함하는 컴퓨터 비전을 위한 방법이 제공된다. 예를 들어, 컴퓨터 비전 작업은 객체 검출, 객체 분류 및/또는 객체 인식이다.
일 측면에 따르면, 컴퓨터 프로그램은 하나 이상의 프로세서에서 실행될 때 상기 제시된 방법 중 임의의 단계가 수행되는 코드를 포함하는 비일시적 매체에 저장된다.
일 측면에 따르면, 비트스트림에 기초한 신경망에 의한 처리를 위한 특징 맵을 디코딩하는 장치가 제공되며, 이 장치는, 특징 맵의 영역에 대해, 비트스트림으로부터의 정보에 기초하여 영역 존재 지시자를 획득하도록 구성된 영역 존재 지시자 획득 모듈, 영역을 디코딩하도록 구성된 디코딩 모듈 ― 디코딩 모듈은, 영역 존재 지시자가 제1 값을 갖는 경우 영역을 디코딩하기 위해 비트스트림으로부터 데이터를 파싱하고, 영역 존재 지시자가 제2 값을 갖는 경우 영역을 디코딩하기 위해 비트스트림으로부터의 데이터 파싱을 바이패스함 ―을 포함한다.
일 측면에 따르면, 비트스트림으로부터 신경망에 의한 처리를 위한 특징 맵을 디코딩하는 장치가 제공되며, 이 장치는, 비트스트림으로부터 특징 맵에 관한 사이드 정보 지시자를 획득하도록 구성된 사이드 정보 지시자 획득 모듈; 특징 맵을 디코딩하도록 구성된 디코딩 모듈 ― 디코딩 모듈은, 사이드 정보 지시자가 제5 값을 갖는 경우, 비트스트림으로부터 특징 맵을 디코딩하기 위한 사이드 정보를 파싱하고, 사이드 정보 지시자가 제6 값을 갖는 경우, 비트스트림으로부터 특징 맵을 디코딩하기 위한 사이드 정보의 파싱을 바이패스함 ―을 포함한다.
일 측면에 따르면, 신경망에 의한 처리를 위한 특징 맵을 비트스트림으로 인코딩하는 장치가 제공되며, 이 장치는, 특징 맵을 획득하도록 구성된 특징 맵 획득 모듈, 획득된 특징 맵에 기초하여 영역 존재 지시자를 획득하고, 획득된 영역 존재 지시자에 기초하여: 영역 존재 지시자가 특징 맵의 영역을 인코딩하는 제1 값을 갖는 경우; 또는 영역 존재 지시자가 특징 맵의 영역의 인코딩을 바이패스하는 제2 값을 갖는 경우를 결정하도록 구성된 인코딩 제어 모듈을 포함한다.
일 측면에 따르면, 신경망에 의한 처리를 위한 특징 맵을 비트스트림으로 인코딩하는 장치가 제공되며, 이 장치는, 특징 맵을 획득하도록 구성된 특징 맵 획득 모듈; 특징 맵에 관하여 비트스트림에서 지시하는 사이드 정보를 지시할지 여부를 결정하도록 구성된 인코딩 제어 모듈 ― 사이드 정보는 비트스트림에서, 제3 값 및 사이드 정보를 지시하는 사이드 정보 지시자, 또는 사이드 정보 없이 제4 값을 지시하는 사이드 정보 지시자 중 어느 하나를 지시함 ―을 포함한다.
일 측면에 따르면, 비트스트림에 기초하여 신경망에 의한 처리를 위한 특징 맵을 디코딩하는 장치가 제공되며, 이 장치는 상기에서 지칭된 방법 중 어느 하나에 따른 방법의 단계를 수행하도록 구성된 처리 회로를 포함한다.
일 측면에 따르면, 신경망에 의한 처리를 위한 특징 맵을 비트스트림으로 인코딩하는 장치가 제공되며, 이 장치는 상기에서 지칭된 방법 중 어느 하나에 따른 방법의 단계를 수행하도록 구성된 처리 회로를 포함한다.
일 측면에 따르면, 디코더 장치는 클라우드에 의해 구현된다. 이러한 시나리오에서, 일부 실시예는 전송에 필요한 레이트와 신경망 정확도 사이에 좋은 절충점을 제공할 수 있다.
전술한 장치 중 어느 것이라도 통합 칩에 구현될 수 있다.
전술한 실시예 및 예시적인 구현 중 어느 것이라도 결합될 수 있다.
이하, 본 발명의 실시예가 첨부된 도면을 참조하여 보다 상세히 설명된다.
도 1은 신경망 레이어에 의해 처리되는 채널을 도시한 개략도이다.
도 2는 신경망의 오토인코더 유형을 도시한 개략도이다.
도 3은 하이퍼프라이어 모델을 포함하는 네트워크 아키텍처를 도시한 개략도이다.
도 4는 머신 비전 작업과 같은 머신 기반 작업을 위한 클라우드 기반 해결수단의 구조를 도시한 블록도이다.
도 5는 종단간 훈련 가능한 비디오 압축 프레임워크의 구조를 도시한 블록도이다.
도 6은 모션 벡터(MV) 압축을 위한 네트워크를 도시한 블록도이다.
도 7은 모션 보상을 위한 네트워크를 도시한 블록도이다.
도 8은 이미지 영역에 대한 특징 맵 데이터를 디코딩하는 예시적인 방법을 보여주는 흐름도이다.
도 9는 이미지 영역에 대한 특징 맵 데이터를 인코딩하는 예시적인 방법을 도시한 흐름도이다.
도 10은 기본값 설정을 포함하여 이미지 영역에 대한 특징 맵 데이터를 디코딩하는 예시적인 방법을 도시한 흐름도이다.
도 11은 이미지 영역에 대한 특징 맵 데이터를 인코딩하는 예시적인 방법을 도시한 흐름도이다.
도 12는 중요도에 기초하고 속도 조건 하에서 특징 맵 데이터를 인코딩하는 예시적인 방법을 도시한 흐름도이다.
도 13은 사이드 정보를 포함하는 이미지 영역에 대한 특징 맵 데이터를 디코딩하는 예시적인 방법을 도시한 흐름도이다.
도 14는 사이드 정보를 포함하는 이미지 영역에 대한 특징 맵 데이터를 인코딩하는 예시적인 방법을도시한 흐름도이다.
도 15는 최후의 중요 채널 표시자를 포함하는 비트스트림에 기초하여 특징 데이터를 디코딩하는 예시적인 방법을 도시한 흐름도이다.
도 16은 품질 수준과 채널의 설계 순서 및 품질 파라미터 사이의 암시적 관계를 도시한 개략도이다.
도 17은 최후의 중요 채널 표시자 및 중요도 순서를 포함하는 비트스트림에 기초하여 특징 데이터를 디코딩하는 예시적인 방법을 도시한 흐름도이다.
도 18은 채널의 중요도 순서와 설계 순서 및 품질 파라미터 사이의 명시적인 관계를 도시한 개략도이다.
도 19는 중요도의 순서로 저장된 채널 정보를 포함하는 비트스트림 구조와 품질 확장성 수준을 도시한 개략도이다.
도 20은 쿼드트리 방식으로 분할된 특징 맵 유닛과 특징 맵 데이터를 포함하는 유닛을 도시한 개략도이다.
도 21은 최종 중요 계수 위치의 디코딩을 포함한 특징 데이터의 디코딩을 위한 예시적인 방법을 도시한 흐름도이다.
도 22는 최종 중요 계수 위치의 코딩을 포함한 특징 데이터의 인코딩을 위한 예시적인 방법을 도시한 흐름도이다.
도 23은 특징 맵 데이터를 디코딩 및 인코딩하는 예시적인 장치를 도시한 블록도이다.
도 24는 사이드 정보 데이터를 디코딩 및 인코딩하는 예시적인 장치를 도시한 블록도이다.
도 25는 본 발명의 실시예를 구현하도록 구성된 비디오 코딩 시스템의 예를 도시한 블록도이다.
도 26은 본 발명의 실시예를 구현하도록 구성된 비디오 코딩 시스템의 다른 예를 도시한 블록도이다.
도 27은 인코딩 장치 또는 디코딩 장치의 예를 도시한 블록도이다.
도 28은 인코딩 장치 또는 디코딩 장치의 다른 예를 도시한 블록도이다.
이하의 설명에서, 본 개시의 일부를 구성하고, 본 발명의 실시예의 특정 측면 또는 본 발명의 실시예가 사용될 수 있는 특정 측면을 예시적으로 보여주는 첨부된 도면을 참조한다. 본 발명의 실시예는 다른 측면에서 사용될 수 있으며, 도면에 도시되지 않은 구조적 또는 논리적 변경을 포함할 수 있음이 이해된다. 따라서, 다음의 상세한 설명은 제한적인 의미로 받아들여져서는 안되며, 본 발명의 범위는 첨부된 청구범위에 의해 정의된다.
예를 들어, 설명된 방법과 관련된 개시는 또한 그 방법을 수행하도록 구성된 대응하는 장치 또는 시스템에 대해서도 유효할 수 있으며, 그 반대의 경우도 마찬가지인 것으로 이해된다. 예를 들어, 하나 또는 복수의 특정 방법 단계가 설명되는 경우, 대응하는 장치는 이러한 하나 또는 복수의 유닛이 도면에서 명시적으로 설명되거나 도시되지 않더라도 설명된 하나 또는 복수의 방법 단계를 수행하기 위한 하나 또는 복수의 유닛, 예를 들어 기능 유닛(예컨대, 하나 또는 복수의 단계를 수행하는 하나의 유닛, 또는 복수의 단계 중 하나 이상을 각각 수행하는 복수의 유닛)을 포함할 수 있다. 반면에, 예를 들어, 특정 장치가 하나 또는 복수의 유닛, 예컨대, 기능 유닛에 기초하여 설명되는 경우, 대응하는 방법은 이러한 하나 또는 복수의 단계는 도면에 명시적으로 설명되거나 도시되지 않더라도, 하나 또는 복수의 유닛의 기능을 수행하는 하나의 단계(예컨대, 하나 또는 복수의 유닛의 기능을 수행하는 하나의 단계, 또는 복수의 유닛 중 하나 이상의 기능을 각각 수행하는 복수의 단계)를 포함할 수 있다. 또한, 특별히 달리 언급되지 않는 한, 여기에서 설명된 다양한 예시적 실시예 및/또는 측면의 특징들이 서로 결합될 수 있음이 이해된다.
일부 실시예는 신경망에 대해 복잡도가 낮은 데이터 압축을 제공하는 것을 목표로 한다. 예를 들어, 데이터는 특징 맵 또는 가중치 또는 기타 파라미터와 같은 신경망에 사용되는 기타 데이터를 포함할 수 있다. 일부 예시적인 구현에서, 신경망을 위한 효율적인 비트스트림을 생성할 수 있는 시그널링이 제공된다. 협업 지능 패러다임에 따르면, 모바일 또는 에지 장치는 필요한 경우 클라우드로부터 피드백을 가질 수 있다. 그러나, 본 개시는 클라우드를 포함한 협업 네트워크의 프레임워크에 한정되지 않는다. 그것은 임의의 분산 신경망 시스템에서 사용될 수 있다. 또한, 그것은 반드시 분산되어 있는 것은 아닌 신경망에서도 특징 맵을 저장하는 데 사용될 수 있다.
이하, 사용되는 일부 기술 용어에 대한 개요가 제공된다.
인공 신경망
인공 신경망(Artificial neural network, ANN) 또는 연결주의(connectionist) 시스템은 동물의 두뇌를 구성하는 생물학적 신경망에서 모호하게 영감을 받은 컴퓨팅 시스템이다. 이러한 시스템은 일반적으로 작업별 규칙으로 프로그램되지 않고 예제를 고려하여 작업을 수행하도록 "학습"한다. 예를 들어, 이미지 인식에서, '고양이' 또는 '고양이 아님'으로 수동으로 레이블이 지정된 예시 이미지를 분석하고 그 결과를 사용하여 다른 이미지에서 고양이를 식별함으로써 고양이를 포함하는 이미지를 식별하도록 학습할 수 있다. 예를 들어, 고양이의 털, 꼬리, 수염, 고양이 같은 얼굴을 갖는 고양이에 대한 사전 지식이 없어도 이 작업을 수행할 수 있다. 대신에, 처리하는 예시에서 식별 특성을 자동으로 생성한다.
ANN은 생물학적 뇌의 뉴런을 느슨하게 모델링하는 인공 뉴런이라고 하는 연결된 단위 또는 노드의 모음을 기반으로 한다. 생물학적 뇌의 시냅스처럼 각각의 연결은 다른 뉴런에게 신호를 전송할 수 있다. 신호를 수신하는 인공 뉴런은 이를 처리하여 그것에 연결된 뉴런에게 신호를 보낼 수 있다.
ANN 구현에서, 연결의 '신호'는 실수(real number)이며, 각각의 뉴런의 출력은 입력의 합에 대한 일부 비선형 함수로 계산된다. 이러한 연결은 에지라고 한다. 뉴런과 에지는 일반적으로 학습이 진행됨에 따라 조정되는 가중치를 갖는다. 가중치는 연결에서 신호의 강도를 높이거나 낮춘다. 뉴런은 집계 신호가 해당 임계값을 넘을 때만 신호가 전송되도록 임계값을 가질 수 있다. 일반적으로, 뉴런은 레이어로 집계된다. 레이어마다 입력에 대해 서로 다른 변환을 수행할 수 있다. 신호는 제1 레이어(입력 레이어)에서 최종 레이어(출력 레이어)로 이동하며, 레이어를 여러 번 통과한 후에야 전달될 수도 있다.
ANN 접근방식의 원래 목표는 인간의 두뇌와 같은 방식으로 문제를 해결하는 것이었다. 시간이 지남에 따라, 특정 작업을 수행하는 것으로 관심이 옮겨가면서, 생물학에서 벗어나게 되었다. 컴퓨터 비전, 음성 인식, 머신 번역, 소셜 네트워크 필터링, 보드 및 비디오 게임 플레이, 의료 진단, 심지어 페인팅과 같이 전통적으로 인간의 영역으로 여겨지던 활동을 포함하여 다양한 작업에서 ANN이 사용되었다.
컨볼루션 신경망
'컨볼루션 신경망(convolutional neural network, CNN)'이라는 이름은 네트워크가 컨볼루션이라는 수학적 연산을 사용함을 지시한다. 컨볼루션은 특수한 종류의 선형 연산이다. 컨볼루션 네트워크는 단순히 신경망 레이어 중 적어도 하나에서 일반적인 행렬 곱셈 대신에 컨볼루션을 사용하는 신경망이다.
도 1은 CNN과 같은 신경망에 의한 처리의 일반적인 개념을 개략적으로 도시한다. 컨볼루션 신경망은 입력 레이어와 출력 레이어, 그리고 다수의 히든(hidden) 레이어로 구성된다. 입력 레이어는 처리를 위해 입력(도 1에 도시된 이미지의 일부와 같음)이 제공되는 레이어이다. CNN의 히든 레이어는 일반적으로 곱셈 또는 기타 내적(dot product)으로 컨볼루션하는 일련의 컨볼루션 레이어로 구성된다. 레이어의 결과는 하나 이상의 특징 맵(도 1에서의 f.maps)이며, 채널로도 지칭되기도 한다. 레이어의 일부 또는 전체에 서브샘플링이 포함될 수 있다. 결과적으로, 특징 맵은 도 1에 도시된 바와 같이, 더 작아질 수 있다. CNN의 활성화 함수는 일반적으로 정류된 선형 유닛(Rectified Linear Unit, RELU) 레이어이며, 이후 입력과 출력이 활성화 함수와 최종 컨볼루션에 의해 마스킹되므로 히든 레이어로 지칭되는 풀링(pooling) 레이어, 완전 연결 레이어, 정규화 레이어와 같은 추가 컨볼루션이 뒤따른다. 레이어가 구어체로 컨볼루션으로 지칭되지만, 이는 관례에 따른 명칭일 뿐이다. 수학적으로는, 기술적으로 슬라이딩 내적 또는 교차 상관이다. 이는 특정 인덱스 포인트에서 가중치가 결정되는 방식에 영향을 미친다는 점에서 매트릭스의 인덱스에 중요한 의미를 갖는다.
도 1에 도시된 바와 같이, 이미지 처리를 위해 CNN을 프로그램하는 경우, 입력은 형상 (이미지 개수) × (이미지 폭) × (이미지 높이) × (이미지 깊이)의 텐서(tensor)이다. 그런 다음, 컨볼루션 레이어를 통과한 후, 이미지는 형상 (이미지 개수) × (특징 맵 폭) × (특징 맵 높이) × (특징 맵 채널)을 갖는 특징 맵으로 추상화된다. 신경망 내의 컨볼루션 레이어는 다음과 같은 속성을 가져야 한다. 폭과 높이(하이퍼 파라미터)로 정의된 컨볼루션 커널. 입력 채널 및 출력 채널의 개수(하이퍼 파라미터). 컨볼루션 필터의 깊이(입력 채널)는 입력 특징 맵의 채널 개수(깊이)와 같아야 한다.
과거에는, 이미지 인식에 기존의 다층 퍼셉트론(multilayer perceptron, MLP) 모델이 사용되었다. 하지만, 노드 간의 완전한 연결로 인해, 차원이 높아지고, 고해상도 이미지로 잘 확장되지 않았다. RGB 색상 채널을 갖는 1000×1000 픽셀 이미지의 가중치는 300만 가중치로, 완전 연결을 통해 대규모로 효율적으로 처리하기에는 너무 높다. 또한, 이러한 네트워크 아키텍처는 데이터의 공간 구조를 고려하지 않아, 멀리 떨어져 있는 입력 픽셀을 서로 가까이 있는 픽셀과 같은 방식으로 처리한다. 이는 계산적으로나 의미론적으로 이미지 데이터의 참조 위치를 무시한다. 따라서, 공간적으로 로컬 입력 패턴에 의해 지배되는 이미지 인식과 같은 목적에서는 뉴런의 완전 연결이 낭비적이다.
컨볼루션 신경망은 시각 피질의 행동을 모방하도록 특별히 설계된 다층 퍼셉트론의 생물학적 영감을 받은 변형이다. 이러한 모델은 자연 이미지에 존재하는 강력한 공간적 로컬 상관관계를 활용함으로써 MLP 아키텍처의 문제를 완화한다. 컨볼루션 레이어는 CNN의 핵심 구성요소이다. 레이어의 파라미터는 학습 가능한 필터 세트(위에서 언급한 커널)로 구성되며, 이는 작은 수신 필드를 갖지만, 입력 볼륨의 전체 깊이에 걸쳐 확장된다. 순방향 패스(forward pass) 동안, 각각의 필터는 입력 볼륨의 폭과 높이에 걸쳐 컨볼루션되어, 필터의 엔트리와 입력 사이의 내적을 계산하고 해당 필터의 2차원 활성화 맵을 생성한다. 결과적으로, 네트워크는 입력의 일부 공간 위치에서 일부 특정 유형의 특징을 검출할 때 활성화되는 필터를 학습한다.
깊이 차원을 따라 모든 필터에 대한 활성화 맵을 적층하면 컨볼루션 레이어의 전체 출력 볼륨을 형성한다. 따라서, 출력 볼륨의 모든 엔트리는 또한 입력의 작은 영역을 보고 동일한 활성화 맵의 뉴런과 파라미터를 공유하는 뉴런의 출력으로 해석될 수도 있다. 특징 맵 또는 활성화 맵은 주어진 필터에 대한 출력 활성화이다. 특징 맵과 활성화는 같은 의미이다. 일부 논문에서, 이미지의 여러 부분의 활성화에 대응하는 매핑이기 때문에 활성화 맵이라고 부르기도 하고, 또한 이미지에서 특정 종류의 특징이 발견되는 위치의 매핑이기 때문에 특징 맵이라고 부르기도 한다. 활성화가 높다는 것은 특정 특징이 발견되었음을 의미한다.
CNN의 또 다른 중요한 개념은 비선형 다운 샘플링의 형태인 풀링이다. 풀링을 구현하는 비선형 함수에는 여러 가지가 있으며, 그 중 최대 풀링이 가장 일반적이다. 그것은 입력 이미지를 겹치지 않는 직사각형 세트로 분할하고, 각각의 서브 영역에 대해 최대값을 출력한다.
직관적으로, 특징의 정확한 위치는 다른 특징에 대한 대략적인 위치보다 덜 중요하다. 이것이 컨볼루션 신경망에서 풀링을 사용하는 배경이다. 풀링 레이어는 표현의 공간 크기를 점진적으로 줄여 네트워크의 파라미터 개수, 메모리 사용량, 계산량을 줄이므로, 과적합을 제어하는 역할을 한다. CNN 아키텍처에서 연속적인 컨볼루션 레이어 사이에 풀링 레이어를 주기적으로 삽입하는 것이 일반적이다. 풀링 작동은 또 다른 형태의 변환 불변성을 제공한다.
풀링 레이어는 입력의 모든 깊이 슬라이스에서 독립적으로 작동하며 공간적으로 크기를 조정한다. 가장 일반적인 형태는 폭과 높이를 따라 2씩 입력의 모든 깊이 슬라이스에서 2 다운샘플링의 스트라이드가 적용된 2×2 크기의 필터를 갖는 풀링 레이어로서 활성화의 75%를 버리는 것이다. 이 경우, 모든 최대 작동은 4개의 숫자를 초과한다. 깊이 차원은 변경되지 않는다.
최대 풀링 외에도, 풀링 유닛은 평균 풀링 또는 ℓ2-놈(norm) 풀링과 같은 다른 기능을 사용할 수 있다. 평균 풀링은 과거에는 자주 사용되었지만 최근에는 실제로 더 나은 성능을 발휘하는 최대 풀링에 비해 선호도가 떨어졌다. 표현의 크기를 적극적으로 줄임으로써, 최근에는 더 작은 필터를 사용하거나 풀링 레이어를 아예 없애는 추세이다. "관심 영역" 풀링(Region of Interest pooling)(또한 ROI 풀링이라고도 함)은 최대 풀링의 변형으로, 출력 크기가 고정되어 있고 입력 사각형이 파라미터이다. 풀링은 고속 R-CNN 아키텍처에 기반한 객체 검출을 위한 컨볼루션 신경망의 중요한 컴포넌트이다.
전술한 ReLU는 정류된 선형 유닛의 약자로, 비포화 활성화 기능을 적용한다. 활성화 맵에서 음수 값을 0으로 설정하여 효과적으로 제거한다. 컨볼루션 레이어의 수용 필드에 영향을 주지 않고 결정 함수와 전체 네트워크의 비선형 특성을 증가시킨다. 포화 쌍곡선 탄젠트 및 시그모이드 함수와 같은 다른 함수가 또한 비선형성을 높이는 데 사용된다. ReLU는 일반화 정확도에 큰 영향을 주지 않으면서 신경망을 몇 배 더 빠르게 훈련하기 때문에 다른 함수보다 선호되는 경우가 많다.
여러 컨볼루션 레이어와 최대 풀링 레이어 이후, 신경망의 높은 수준의 추론은 완전히 연결된 레이어를 통해 이루어진다. 완전히 연결된 레이어의 뉴런은 일반(비컨볼루션) 인공 신경망에서 볼 수 있듯이 이전 레이어의 모든 활성화와 연결되어 있다. 따라서, 그들의 활성화는 바이어스 오프셋(학습되거나 고정된 바이어스 항의 벡터 추가)이 뒤따르는 매트릭스 곱셈과 함께 아핀 변환으로 계산될 수 있다.
"손실 레이어"는 훈련이 예측(출력)과 실제 레이블 사이의 편차에 대해 불이익을 주는 방법을 지정하며, 일반적으로 신경망의 최종 레이어이다. 다양한 작업에 적합한 다양한 손실 함수가 사용될 수 있다. 소프트맥스 손실은 K개의 상호 배타적인 클래스의 단일 클래스를 예측하는 데 사용된다. 시그모이드 교차 엔트로피 손실은 [0, 1]에서 K개의 독립 확률 값을 예측하는 데 사용된다. 유클리드 손실은 실수값 레이블로 회귀하는 데 사용된다.
요약하면, 도 1은 일반적인 컨볼루션 신경망의 데이터 흐름을 도시한다. 먼저, 입력 이미지는 컨볼루션 레이어를 통과하여 이러한 레이어의 학습 가능한 필터 세트에 있는 필터 개수(예를 들어, 각각의 필터는 하나의 채널임)에 대응하는 여러 채널을 포함하는 특징 맵으로 추상화된다. 그런 다음, 특징 맵은 예를 들어 풀링 레이어를 사용하여 서브샘플링되며, 이는 특징 맵의 각각의 채널의 차원을 감소시킨다. 다음 데이터는 다른 컨볼루션 레이어로 오며, 이는 출력 채널 개수가 달라 특징 맵의 채널 개수가 달라질 수 있다. 전술한 바와 같이, 입력 채널과 출력 채널의 개수는 레이어의 하이퍼 파라미터이다. 네트워크의 연결을 설정하려면, 현재 레이어에 대한 입력 채널 개수가 이전 레이어의 출력 채널 개수와 같아야 하는 등 연결된 두 레이어 간에 이러한 파라미터가 동기화되어야 한다. 입력 데이터, 예를 들어 이미지를 처리하는 제1 레이어의 경우, 입력 채널 개수는 일반적으로 데이터 표현의 채널 개수, 예를 들어, 이미지 또는 비디오의 RGB 또는 YUV 표현의 경우 3채널, 또는 계조 이미지 또는 비디오 표현의 경우 1채널과 동일하다.
오토인코더(autoencoder) 및 비지도 학습
오토인코더는 비지도 방식으로 효율적인 데이터 코딩을 학습하는 데 사용되는 인공 신경망 유형이다. 그 개략도는 도 2에 도시되어 있다. 오토인코더의 목적은 신호 '잡음'을 무시하도록 네트워크를 훈련시켜서 일반적으로 차원 축소를 위해 데이터 세트에 대한 표현(인코딩)을 학습하는 것이다. 축소 측면과 함께, 재구성 측면이 학습되며, 여기서 오토인코더는 축소된 인코딩에서 가능한 한 원래 입력에 가까운 표현을 생성하려고 시도하므로, 그러한 이름을 갖는다. 가장 간단한 경우, 하나의 히든 레이어가 주어지면, 오토인코더의 인코더 단계는 입력 x를 받아서 h로 매핑한다
Figure pct00001
.
이러한 이미지 h는 일반적으로 코드, 잠재 변수 또는 잠재 표현으로 지칭된다. 여기서 σ는 시그모이드 함수 또는 정류된 선형 유닛과 같은 요소별 활성화 함수이다. W는 가중치이고, 매트릭스 b는 바이어스 벡터이다. 가중치와 바이어스는 일반적으로 무작위로 초기화된 다음, 역전파를 통해 훈련 중에 반복적으로 업데이트된다. 그 후, 오토인코더의 디코더 단계는 h를 x와 같은 형상의 재구성 x'으로 매핑한다:
Figure pct00002
여기서 디코더에 대한
Figure pct00003
, W' 및 b'는 인토더에 대해 대응하는 σ, W 및 b와 관련이 없을 수 있다.
가변 오토인코더(variational autoencoder, VAE) 모델은 잠재 변수의 분포와 관련하여 강력한 가정을 한다. 그들은 잠재 표현 학습에 변형 접근 방식을 사용하므로, 추가 손실 컴포넌트와 확률적 그라디언트 변형 베이즈(Stochastic Gradient Variational Bayes, SGVB) 추정기라는 훈련 알고리즘을 위한 특정 추정기를 발생한다. 데이터가 지시형 그래픽 모델
Figure pct00004
에 의해 생성되고, 인코더가 사후 분포
Figure pct00005
에 대한 근사값
Figure pct00006
를 학습한다고 가정하며, 여기서
Figure pct00007
와 θ는 각각 인코더(인식 모델)와 디코더(생성 모델)의 파라미터를 나타낸다. VAE의 잠재 벡터의 확률 분포는 일반적으로 표준 오토인코더보다 훨씬 더 가깝게 훈련 데이터의 확률 분포와 일치한다. VAE의 목적은 다음과 같은 형태를 갖는다:
Figure pct00008
여기서, DKL은 쿨백-라이블러(Kullback-Leibler) 발산을 나타낸다. 잠재 변수에 대한 선행은 일반적으로 중심 등방성 다변량 가우시안
Figure pct00009
으로 설정된다. 일반적으로. 변수의 형상과 가능성(likelihood) 분포는 인수 분해된 가우시안 분포가 되도록 선택된다:
Figure pct00010
여기서
Figure pct00011
Figure pct00012
는 인코더 출력이고,
Figure pct00013
Figure pct00014
는 디코더 출력이다.
최근 인공 신경망 분야, 특히 컨볼루션 신경망의 발전으로 신경망 기반 기술을 이미지 및 비디오 압축 작업에 적용하려는 연구자들의 관심이 높아지고 있다. 예를 들어, 가변 오토인코더 기반의 네트워크를 사용하는 종단간 최적화 이미지 압축이 제안되었다. 따라서, 데이터 압축은 엔지니어링 분야에서 근본적이고 잘 연구된 문제로 간주되며, 일반적으로 엔트로피를 최소화하면서 주어진 이산 데이터 앙상블에 대한 코드를 설계하는 것을 목표로 공식화된다. 이러한 해결수단은 데이터의 확률적 구조에 대한 지식에 크게 의존하므로, 이 문제는 확률적 소스 모델링과 밀접한 관련이 있다. 그러나, 모든 실제 코드는 유한 엔트로피를 가져야 하므로, 연속값 데이터(이미지 픽셀 강도 벡터와 같음)는 유한 이산값 세트로 양자화되어야 하며, 이로 인해 오류가 발생한다. 손실 압축 문제라고 하는 이러한 맥락에서, 이산화된 표현의 엔트로피(레이트(rate))와 양자화에서 발생하는 오류(왜곡)라는 두 가지 상충되는 비용을 절충해야 한다. 제한된 용량의 채널을 통한 데이터 저장 또는 전송과 같은 다양한 압축 애플리케이션은 서로 다른 레이트-왜곡 절충을 요구한다. 레이트와 왜곡의 공동 최적화는 어렵다. 추가적인 제약이 없다면, 고차원 공간에서 최적의 양자화라는 일반적인 문제는 다루기 어렵다. 이러한 이유로, 대부분의 기존 이미지 압축 방법은 데이터 벡터를 적절한 연속값 표현으로 선형 변환하고, 그 요소를 독립적으로 양자화한 다음, 무손실 엔트로피 코드를 사용하여 결과적인 이산 표현을 인코딩하는 방식으로 작동한다. 이러한 방식은 변환이 중심적인 역할을 하기 때문에 변환 코딩이라고 한다. 예를 들어, JPEG는 픽셀 블록에 이산 코사인 변환을 사용하고, JPEG 2000은 다중 스케일 직교 웨이블릿 분해를 사용한다. 일반적으로, 변환 코딩 방법의 세 가지 컴포넌트인 변환, 양자화기, 엔트로피 코드는 개별적으로 최적화된다(종종 수동 파라미터 조정을 통함). HEVC, VVC, EVC와 같은 최신 비디오 압축 표준은 또한 예측 후 잔차 신호를 코딩하기 위해 변환 표현을 사용한다. 이를 위해 이산 코사인 및 사인 변환(DCT, DST)과 저주파수 비분리형 수동 최적화 변환(low frequency non-separable manually optimized transform, LFNST) 등 여러 변환이 사용된다.
변형 이미지 압축
2016년 학습 표현에 대한 제4회 국제 컨퍼런스에서 제시된 arXiv 전자 프린트의 J. Balle, L. Valero Laparra 및 E. P. Simoncelli(2015). "일반화된 정규화 변환을 사용한 이미지의 밀도 모델링"(이하 "Balle")에서, 저자들은 비선형 변환을 기반으로 이미지 압축 모델의 종단간 최적화를 위한 프레임워크를 제안하였다. 이전에, 저자들은 지각 왜곡 측정에 최적화된 선형-비선형 블록 변환으로 구성된 모델이 평균 제곱 오차(mean squared error, MSE)에 최적화된 모델에 비해 시각적으로 우수한 성능을 보인다는 사실을 입증한 바 있다. 여기서, 저자들은 MSE에 대해 최적화되지만, 선형 컨볼루션과 비선형성의 캐스케이드로 구축된 보다 유연한 변환을 사용한다. 특히, 저자들은 생물학적 시각 시스템의 뉴런 모델에서 영감을 받아 이미지 밀도를 가우시안화하는 데 효과적인 것으로 입증된 일반화된 분할 정규화(generalized divisive normalization, GDN) 공동 비선형성을 사용한다. 이러한 캐스케이드화된 변환에 이어 균일한 스칼라 양자화(즉, 각각의 요소가 가장 가까운 정수로 반올림됨)가 수행되어, 원래 이미지 공간에서 파라메트릭 형태의 벡터 양자화를 효과적으로 구현한다. 압축된 이미지는 대략적인 파라메트릭 비선형 역변환을 사용하여 이러한 양자화된 값으로부터 재구성된다.
레이트-왜곡 곡선을 따라 원하는 포인트에 대해, 분석 및 합성 변환의 파라미터는 확률적 기울기 하강을 사용하여 공동으로 최적화된다. 양자화(거의 모든 곳에서 제로 기울기를 생성함)가 있는 경우 이를 달성하기 위해, 저자들은 확률 모델의 지속적인 완화에 기반한 프록시 손실 함수를 사용하여, 양자화 단계를 추가 균일 잡음으로 대체한다. 완화된 레이트-왜곡 최적화 문제는 일반적인 이미지 모델, 특히 가변 오토인코더를 맞추는 데 사용되는 문제와 어느 정도 유사하지만, 레이트-왜곡 곡선을 따라 이산 문제를 근사화하기 위해 저자들이 부과하는 제약 조건이 다르다. 마지막으로, 차동 또는 이산 엔트로피 추정값을 보고하는 대신, 저자들은 엔트로피 코드를 구현하고 실제 비트레이트를 사용하여 성능을 보고함으로써, 완전한 손실 압축 방법으로서 이러한 해결수단의 실현 가능성을 입증한다.
J. Balle에서, 가변 오토인코더를 기반으로 하는 이미지 압축을 위한 종단간 훈련 가능 모델에 대해 설명한다. 이 모델은 하이퍼프라이어를 통합하여 잠재 표현에서 공간 의존성을 효과적으로 포착한다. 이러한 하이퍼프라이어는 거의 모든 최신 이미지 코덱에 보편적인 개념이지만 ANN을 사용한 이미지 압축에서는 거의 다루어지지 않았던 디코딩 측으로 전송되는 사이드 정보와 관련이 있다. 기존의 오토인코더 압축 방법과 달리, 이러한 모델은 기본 오토인코더와 공동으로 사전에 복합체를 훈련한다. 저자들은 이러한 모델이 널리 사용되는 MS-SSIM 지수를 사용하여 시각적 품질을 측정할 때 최첨단 이미지 압축으로 이어지고, 제곱오차(PSNR)를 기반으로 하는 보다 전통적인 메트릭을 사용하여 평가할 때 공개된 ANN 기반 방법을 능가하는 레이트-왜곡 성능을 제공함을 입증한다.
도 3은 하이퍼프라이어 모델을 포함하는 네트워크 아키텍처를 도시한다. 좌측(
Figure pct00015
,
Figure pct00016
)은 이미지 오토인코더 아키텍처를 도시하고, 우측(ha, hs)은 하이퍼프라이어를 구현하는 오토인코더에 해당한다. 인수분해-사전(factorized-prior) 모델은 분석 및 합성 변환에 동일한 아키텍처를 사용한다(
Figure pct00017
,
Figure pct00018
). Q는 양자화를 나타내고, AE, AD는 각각 산술 인코더와 산술 디코더를 나타낸다. 인코더는 입력 이미지 x를
Figure pct00019
로 변환하여 공간적으로 다양한 표준 편차를 갖는 응답 y(잠재 표현)를 산출한다. 인코딩
Figure pct00020
는 서브샘플링과 활성화 함수로서 일반화된 분할 정규화(generalized divisive normalization, GDN)를 갖는 복수의 컨볼루션 레이어를 포함한다.
응답은 표준 편차 분포를 z로 요약한 ha로 입력되며, 그 다음 z가 양자화되고, 압축되어, 사이드 정보로서 전송된다. 그런 다음, 인코더는 양자화된 벡터
Figure pct00021
를 사용하여 산술 코딩(AE)을 위한 확률 값(또는 빈도값)을 획득하기 위해 사용되는 표준 편차의 공간 분포인
Figure pct00022
를 추정하고, 이를 압축하여 양자화된 이미지 표현
Figure pct00023
(또는 잠재 표현)을 전송한다. 디코더는 먼저 압축된 신호에서
Figure pct00024
를 복원한다. 그런 다음, hs를 사용하여
Figure pct00025
를 획득하며, 이는
Figure pct00026
를 성공적으로 복원하기 위해 정확한 확률 추정값을 제공한다. 그런 다음, 재구성된 이미지를 획득하기 위해
Figure pct00027
Figure pct00028
로 공급한다.
추가 연구에서, 하이퍼프라이어에 의한 확률 모델링은 예를 들어, L. Zhou, Zh. Sun, X. Wu, J. Wu, 어텐션 메커니즘을 사용한 종단간 최적화된 이미지 압축, CVPR 2019(이하, "Zhou"로 지칭됨)의 도 2에 도시된 것처럼 잠재 공간의 이미 디코딩된 심볼의 컨텍스트를 활용하여 디코딩될 추가 심볼의 더 나은 확률을 추정할 수 있는, 예를 들어 PixelCNN++ 아키텍처 기반의 자동 회귀 모델을 도입함으로써 더욱 개선되었다.
머신 작업을 위한 클라우드 해결수단
머신용 비디오 코딩(Video Coding for Machine, VCM)은 요즘 인기를 끌고 있는 또 다른 컴퓨터 과학 방향이다. 이러한 접근 방식의 기본 아이디어는 객체 분할, 검출 및 인식과 같은 컴퓨터 비전(computer vision, CV) 알고리즘에 의한 추가 처리를 위해 타깃화된 이미지 또는 비디오 정보의 코딩된 표현을 전송하는 것이다. 인간의 인식을 대상으로 하는 기존의 이미지 및 비디오 코딩과 달리, 품질 특성은 재구성된 품질이 아닌 컴퓨터 비전 작업의 성능, 예를 들어, 객체 검출 정확도이다. 이는 도 4에서 설명되어 있다.
머신용 비디오 코딩은 또한 협업 지능으로도 지칭되며, 모바일 클라우드 인프라 전반에 걸쳐 심층 신경망을 효율적으로 배포하기 위한 비교적 새로운 패러다임이다. 모바일과 클라우드 간에 네트워크를 분할함으로써, 시스템의 전체 에너지 및/또는 지연 시간이 최소되도록 계산 워크로드를 분산할 수 있다. 일반적으로, 협업 지능은 신경망의 처리가 2개 이상의 상이한 계산 노드, 예를 들어 장치이지만 일반적으로, 기능적으로 정의된 모든 노드 사이에 분산되는 패러다임이다. 여기서, '노드'라는 용어는 전술한 신경망 노드를 지칭하지 않는다. 오히려, 여기서 (계산) 노드는 신경망의 일부를 구현하는 (물리적으로 또는 적어도 논리적으로) 별도의 장치/모듈을 지칭한다. 이러한 장치는 서로 다른 서버, 서로 다른 최종 사용자 장치, 서버 및/또는 사용자 장치 및/또는 클라우드 및/또는 프로세서 등의 혼합일 수 있다. 즉, 계산 노드는 동일한 신경망에 속하며 신경망 내에서/신경망을 위해 코딩된 데이터를 운반하기 위해 서로 통신하는 노드로 간주될 수 있다. 예를 들어, 복잡한 계산을 수행하기 위해, 하나 이상의 레이어가 제1 장치에서 실행될 수 있고 하나 이상의 레이어가 다른 장치에서 실행될 수 있다. 그러나, 분포가 더 세분화될 수도 있고, 단일 레이어가 복수의 장치에서 실행될 수도 있다. 본 개시에서, "복수"라는 용어는 2개 이상을 지칭한다. 기존의 일부 해결수단에서, 신경망 기능의 일부가 장치(사용자 장치 또는 에지 장치 등) 또는 복수의 장치에서 실행된 후 출력(특징 맵)이 클라우드로 전달된다. 클라우드는 신경망의 일부를 작동하는 장치 외부에 위치한 처리 또는 컴퓨팅 시스템의 집합이다. 협업 지능의 개념은 모델 훈련으로도 확장되었다. 이 경우, 데이터는 훈련의 역전파 중에 클라우드에서 모바일로, 그리고 추론은 물론 훈련의 순방향 전달 중에 모바일에서 클라우드로 흐른다.
일부 연구에서는 심층 특징(deep feature)을 인코딩한 후 이를 통해 입력 이미지를 재구성함으로써 시맨틱(semantic) 이미지 압축을 제시하였다. 균일 양자화에 기초한 압축이 도시되며, H.264의 컨텍스트 기반 적응형 산술 코딩(context-based adaptive arithmetic coding, CABAC)이 그 뒤를 이었다. 일부 시나리오에서, 압축된 자연 이미지 데이터를 클라우드로 전송하는 것이 아니라 히든 레이어의 출력(심층 특징 맵)을 모바일 부분에서 클라우드로 전송하고 재구성된 이미지를 사용하여 객체 검출을 수행하는 것이 보다 효율적일 수 있다. 특징 맵의 효율적인 압축은 사람의 인식과 머신 비전 모두에서 이미지 및 비디오 압축과 재구성에 도움이 된다. 엔트로피 코딩 방법, 예를 들어 산술 코딩은 심층 특징(즉, 특징 맵)을 압축하는 데 널리 사용되는 접근 방식이다.
오늘날, 비디오 컨텐츠는 인터넷 트래픽의 80% 이상을 차지하며, 그 비율은 더욱 증가할 것으로 예상된다. 따라서, 효율적인 비디오 압축 시스템을 구축하고 주어진 대역폭 예산에서 더 높은 품질의 프레임을 생성하는 것이 중요하다. 또한, 비디오 객체 검출이나 비디오 객체 추적과 같은 대부분의 비디오 관련 컴퓨터 비전 작업은 압축된 비디오의 품질에 민감하며, 효율적인 비디오 압축은 다른 컴퓨터 비전 작업에도 이점을 가져올 수 있다. 한편, 비디오 압축 기술은 또한 동작 인식 및 모델 압축에도 유용하다. 그러나, 지난 수십 년 동안, 비디오 압축 알고리즘은 위에서 언급된 것처럼 비디오 시퀀스의 중복을 줄이기 위해 블록 기반 모션 추정 및 이산 코사인 변환(Discrete Cosine Transform, DCT)과 같은 수작업으로 제작된 모듈에 의존한다. 각각의 모듈이 잘 설계되어 있지만, 전체 압축 시스템은 종단간 최적화되어 있지는 않다. 전체 압축 시스템을 공동으로 최적화함으로써 비디오 압축 성능을 더욱 향상시키는 것이 바람직하다.
종단간(end-to-end) 이미지 또는 비디오 압축
최근, 이미지 압축을 위한 심층 신경망(deep neural network, DNN) 기반 오토인코더는 JPEG, JPEG2000 또는 BPG와 같은 기존 이미지 코덱과 비슷하거나 더 나은 성능을 달성하였다. 한 가지 가능한 설명은 DNN 기반 이미지 압축 방법이 기존 접근 방식에서는 사용되지 않는 대규모 종단간 훈련과 고도의 비선형 변환을 활용할 수 있는 것이다. 그러나, 이러한 기술을 직접 적용하여 비디오 압축을 위한 종단간 학습 시스템을 구축하는 것은 쉬운 일이 아니다. 먼저, 비디오 압축에 적합한 모션 정보를 생성하고 압축하는 방법을 학습하는 것은 여전히 미해결 문제로 남아 있다. 비디오 압축 방법은 비디오 시퀀스의 시간적 중복을 줄이기 위해 모션 정보에 크게 의존한다. 간단한 해결수단은 학습 기반 광학 흐름을 사용하여 모션 정보를 표현하는 것이다. 그러나, 현재의 학습 기반 광학 흐름 접근 방식은 가능한 한 정확한 흐름 필드를 생성하는 것을 목표로 한다. 정확한 광학 흐름은 특정 비디오 작업에 최적이 아닌 경우가 많다. 또한, 광학 흐름의 데이터 볼륨은 기존 압축 시스템의 모션 정보와 비교할 때 매우 증가하고 광학 흐름값을 압축하기 위해 기존 압축 접근 방식을 직접 적용하면 모션 정보를 저장하는 데 필요한 비트 수량이 크게 증가한다. 둘째, 잔차 정보와 모션 정보 모두에 대해 레이트 왜곡 기반 객체를 최소화함으로써 DNN 기반 영상 압축 시스템을 구축하는 방법이 불분명하다. 레이트 왜곡 최적화(rate-distortion optimization, RDO)는 압축을 위한 비트 수량(또는 비트레이트)이 주어졌을 때 재구성된 프레임의 품질(즉, 왜곡이 적음)을 높이는 것을 목표로 한다. RDO는 비디오 압축 성능에 중요하다. 학습 기반 압축 시스템을 위한 종단간 훈련의 성능을 활용하기 위해, 전체 시스템을 최적화하기 위한 RDO 전략이 필요하다.
Guo Lu, Wanli Ouyang, Dong Xu, Xiaoyun Zhang, Chunlei Cai, Zhiyong Gao; "DVC: 종단간 심층 비디오 압축 프레임워크". Proceedings of IEEE/CVF Conference on Computer Vision and Pattern Recognition(CVPR), 2019, pp. 11006-11015에서, 저자들은 모션 추정, 모션 압축, 잔차 코딩을 공동으로 학습하는 종단간 심층 비디오 압축(deep video compression, DVC) 모델을 제안하였다.
이러한 인코더는 도 5에 설명되어 있다. 특히, 도 5는 종단간 훈련 가능한 비디오 압축 프레임워크의 전체 구조를 도시한다. 모션 정보를 압축하기 위해, 광학적 흐름을 더 나은 압축에 적합한 표현으로 변환하기 위해 CNN이 지정되었다. 특히, 오토인코더 스타일 네트워크가 광학적 흐름을 압축하는 데 사용된다. 모션 벡터(motion vector, MV) 압축 네트워크는 도 6에 도시되어 있다. 네트워크 아키텍처는 도 3의
Figure pct00029
/
Figure pct00030
와 다소 유사하다. 특히, 광학 흐름은 일련의 컨볼루션 작동과 GDN 및 IGDN을 포함한 비선형 변환으로 공급된다. 컨볼루션(디컨볼루션)을 위한 출력 채널 개수는 2와 같은 최종 디컨볼루션 레이어를 제외하고 128개이다. M×N×2 크기의 광학 흐름이 주어지면, MV 인코더는 M/16×N/16×128 크기의 모션 표현을 생성한다. 그런 다음, 모션 표현이 양자화되고, 엔트로피 코딩되어 비트스트림으로 전송된다. MV 디코더는 양자화된 표현을 수신하고 MV 인코더를 사용하여 모션 정보를 재구성한다.
도 7은 모션 보상 부분의 구조를 도시한다. 여기서, 이전에 재구성된 프레임 xt-1과 재구성된 모션 정보를 사용하여 워핑(warping) 유닛이 (일반적으로, 2선형(bi-linear) 보간 필터와 같은 보간 필터의 도움으로) 워핑된 프레임을 생성한다. 그런 다음, 3개의 입력을 갖는 별도의 CNN이 예측된 픽처를 생성한다. 모션 보상 CNN의 아키텍처는 또한 도 7에 도시되어 있다.
원래 프레임과 예측된 프레임 사이의 잔차 정보는 잔차 인코더 네트워크에 의해 인코딩된다. 고도의 비선형 신경망은 잔차를 대응하는 잠재 표현으로 변환하는 데 사용된다. 기존 비디오 압축 시스템의 이산 코사인 변환에 비해, 이러한 접근 방식은 비선형 변환의 성능을 더 잘 활용하고 더 높은 압축 효율을 달성할 수 있다.
위의 개요를 통해 CNN 기반 아키텍처는 모션 추정, 모션 보상 및 잔차 코딩을 포함하는 비디오 프레임워크의 다양한 부분을 고려하여 이미지 및 비디오 압축에 모두 적용될 수 있음을 알 수 있다. 엔트로피 코딩은 데이터 압축에 널리 사용되는 방법으로 업계에서 널리 채택되고 있으며, 사람의 인식이나 컴퓨터 비전 작업을 위한 특징 맵 압축에도 적용할 수 있다.
코딩 효율 향상
채널 정보는 최종 작업에서 똑같이 중요하지는 않다. 일부 채널 정보는 최종 이미지나 비디오 재구성 품질 또는 객체 검출 정확도에 큰 영향을 주지 않으면서 디코더로 전송되지 않는 등 폐기될 수 있는 것으로 관찰되었다. 동시에, 중요하지 않은 정보를 폐기하여 절약되는 비트의 수량은 전반적인 레이트-왜곡 트레이드오프를 개선할 수 있다.
또한, 인코딩 및 디코딩 지연 시간은 실제 구현을 위한 압축 시스템의 중요한 파라미터 중 하나이다. 인공 신경망의 특성상 한 레이어 내의 작동은 병렬로 수행될 수 있으며, 전체 네트워크 지연 시간은 순차적으로 연결된 레이어의 수량에 따라 결정되는데, 이는 일반적으로 그다지 높지 않다. 대규모 병렬 처리를 지원할 수 있는 최신 그래픽 처리 장치(graphic processing unit, GPU) 또는 네트워크 처리 장치(network processing unit, NPU)를 활용하면, 허용 가능한 실행 시간이 달성될 수 있다. 그러나, 산술 코딩이나 범위 코딩과 같은 엔트로피 코딩 방법은 범위 간격 계산, 정규화 및 확률 간격 매칭에 대한 순차적 작동을 암시한다. 이러한 작동은 압축 효율을 희생하지 않고는 병렬화가 거의 불가능하다. 따라서, 엔트로피 코딩은 병목 현상이 되며, 이로 인해 전체 시스템 지연 시간을 제한할 수 있다. 엔트로피 코딩을 통해 전달되는 데이터의 수량을 줄이는 것이 바람직하다.
본 개시의 일부 실시예는 압축 효율을 향상시킬 수 있다. 또한, 이들은 CNN 기반 이미지 및 비디오 코덱의 잠재 공간에서 일부 특징 맵 데이터의 바이패스 전송 속도를 높일 수 있다. 이러한 접근 방식에 기초하여, 엔트로피 인코딩 및 디코딩 프로세스의 속도 증가가 달성될 수 있으며, 이는 실제 구현에 중요한 것으로 간주될 수 있다.
특히, 일부 특징 맵 지역 또는 채널의 정보 전송이 생략될 수 있다. 특히, 이러한 특징 맵 데이터가 생략될 수 있으며, 이러한 생략이 재구성된 품질에 큰 저하를 초래하지 않는 것으로 판단된다. 따라서, 압축 효율이 향상될 수 있다. 또한, 엔트로피 코딩 및 디코딩을 통과하는 데이터의 수량이 감소될 수 있어서 인코딩 및 디코딩 시간을 더욱 감소시키고 전반적인 종단간 압축 시스템 지연 시간을 감소시킬 수 있다.
실시예에 따르면, 비트스트림에 기반한 신경망에 의해 처리하기 위한 특징 맵을 디코딩하는 방법이 제공된다. 이 방법은 도 8에 도시되어 있다. 이 방법은 특징 맵의 영역에 대해, 비트스트림으로부터의 정보에 기초하여 영역 존재 지시자를 획득하는 단계 S110을 포함한다. 획득 단계 S110에 이어서, 영역을 디코딩하는 디코딩 단계 S150이 이어진다. 디코딩 단계 S150은 영역 존재 지시자가 제1 값을 가질 때 영역을 디코딩하기 위해 비트스트림으로부터 데이터를 파싱하는 단계 S130을 포함한다. 영역 존재 지시자가 제1 값을 갖는지 여부는 판단 단계 S120에서 결정될 수 있다. 반면에, (예를 들어, 단계 S120에서) 영역 존재 지시자가 제2 값을 갖는 경우, 디코딩 단계 S150은 영역을 디코딩하기 위해 비트스트림으로부터 데이터를 파싱하는 단계 S140을 포함할 수 있다.
영역 존재 지시자의 획득 단계 S110은 비트스트림으로부터 존재 지시자를 파싱하는 것에 대응할 수 있다. 즉, 비트스트림은 지시자를 포함할 수 있다. 또한, 획득은, 예를 들어 엔트로피 디코더에 의해 존재 지시자의 디코딩을 포함할 수 있다. 영역 존재 지시자는 제1 값과 제2 값 중 하나를 취할 수 있는 플래그일 수 있다. 예를 들어, 이는 단일 비트로 코딩될 수 있다. 그러나, 본 개시가 이에 한정되는 것은 아니다. 일반적으로, 획득 단계 S110은 비트스트림으로부터 파싱된 다른 파라미터의 값에 기초한 간접 획득에 대응할 수 있다.
디코딩 단계 S150은 비트스트림의 일반화된 처리를 지칭할 수 있으며, 이는 파싱 정보, 엔트로피-디코딩 정보, 정보의 바이패스(생략) 파싱, 이미 파싱된 정보 요소 중 하나 이상에 기초하여 추가 파싱에 사용되는 정보 도출, 또는 이와 유사한 것 중 하나 이상을 포함할 수 있다.
실시예에 따르면, 신경망에 의해 처리하기 위한 특징 맵을 비트스트림으로 인코딩하는 방법이 제공된다. 이 방법은 도 9에 도시되어 있으며, 도 8을 참조하여 설명된 디코딩 방법에 의해 쉽게 디코딩될 수 있는 비트스트림 부분을 제공할 수 있다. 이 방법은 특징 맵의 영역에 대한 영역 존재 지시자를 획득하는 단계 S160을 포함한다. 특징 맵의 영역은 신경망의 하나 이상의 레이어에 의해 생성된 특징 맵으로부터 획득될 수 있다. 특징 맵은 메모리 또는 다른 저장소에 저장될 수 있다. 또한, 이 방법은 획득된 영역 존재 지시자에 기초하여, 비트스트림에서 특징 맵의 영역을 지시할지 여부를 결정하는 단계 S170을 포함한다. 따라서, 단계 S170에서 비트스트림에 영역을 지시하기로 결정되면, 비트스트림은 특징 맵의 영역을 포함해야 한다. 비트스트림에 영역을 지시하지 않는 것으로 단계 S170에서 결정되면, 비트스트림은 특징 맵의 영역을 포함하지 않아야 한다. 단계 S170-S190은 비트스트림을 생성(또한 인코딩으로 지칭됨)하는 일반적인 단계 S165의 일부인 것으로 간주될 수 있다.
가능한 구현에서, 영역 존재 지시자는 비트스트림에서 지시된다. 따라서, 단계 S170에서, 비트스트림에서 영역을 지시하는 것으로 결정되면, 비트스트림은 제1 값을 갖는 영역 존재 지시자와 특징 맵의 영역을 포함해야 한다. 단계 S170에서, 비트스트림에서 영역을 지시하지 않는 것으로 결정되면, 비트스트림은 특징 맵의 영역 없이 제2 값을 갖는 영역 존재 지시자를 포함해야 한다.
여기서 "특정 값을 갖는 영역 존재 지시자를 포함한다"는 용어는 실질적으로 특정 값을 예를 들어 이진화되고 가능한 한 엔트로피 코딩된 형태로 비트스트림에 포함시키는 것을 지칭한다. 특정 값은 표준에 의해 정의된 시맨틱과 같은 관례에 따라 영역 존재 지시자의 의미를 부여한다.
부재 특징 맵 영역 처리
예시적인 구현에 따르면, 영역 존재 지시자가 제2 값을 갖는 경우, 영역을 디코딩하는 것은 미리 결정된 규칙에 따라 영역을 설정하는 것을 더 포함한다. 예를 들어, 미리 결정된 규칙은 영역의 특징들을 상수로 설정하는 것을 지정한다. 그러나, 본 개시는 미리 결정된 규칙이 특징이 상수로 설정되도록 지정하는 규칙인 것에 한정되지 않는다. 오히려, 규칙은 예를 들어, 이전에 디코딩된 특징 또는 비트스트림의 정보에 기초하여 특징의 결정/계산 방식을 정의할 수 있다.
도 10은 비트스트림을 디코딩하는 방법을 도시한다. 본 예에서, 특징 맵의 영역은 CNN 채널에 대응한다. 특히, 이미지 또는 비디오 정보 디코딩 방법은 대응하는 CNN 채널 정보가 비트스트림에 존재하는지 여부를 지시하는 비트스트림으로부터 신택스 요소를 파싱하는 단계를 포함한다. CNN 채널 정보는 대응하는 채널의 특징 맵 또는 특정 채널과 관련된 다른 정보를 포함할 수 있다. 도 10에 도시된 예시적인 구현에서, 디코더는 생성 모델(또는 재구성 네트워크)의 입력 채널에 대해 단계 S205를 반복한다. 각각의 반복 단계 S205에서, 채널 존재 플래그(전술한 영역 존재 플래그에 대응함)가 비트스트림으로부터 판독된다(단계 S210). 채널 존재 플래그가 참(True)이면, 대응하는 채널 정보가 비트스트림으로부터 판독된다(단계 S235). 데이터는 산술 디코더와 같은 엔트로피 디코더에 의해 추가로 디코딩될 수 있다(단계 S240). 그렇지 않으면, 채널 존재 플래그가 거짓(False)과 같으면, 판독 채널 정보는 바이패스되고 대응하는 채널 정보는 예를 들어 모든 채널값을 상수로 설정함으로써 미리 정의된 규칙에 의해 초기화된다(단계 S230). 예를 들어, 상수는 0이다. 그런 다음, 단계 S210-S240이 각각의 채널에 대해 반복된다. 그 후, 단계 S244에서, 재구성된 채널이 신경망(예를 들어, 신경망의 히든 레이어 또는 출력 레이어 중 하나일 수 있는 신경망의 적절한 레이어)에 입력된다. 그런 다음, 신경망은 입력 채널 정보를 추가로 처리한다.
아래 표에는 비트스트림 신택스의 예시적인 구현이 나와 있다:
Figure pct00031
변수 channels_num은 반복되는 채널 개수를 정의한다(도 10의 단계 S205 참조). 변수 latent_space_height 및 latent_space_width는 픽처 폭과 높이 및 생성 모델의 아키텍처(예를 들어, 재구성 네트워크)에 대한 높은 수준의 신택스 정보를 기반으로 도출될 수 있다. 동일한 로직으로 이어지는 다른 구현이 가능한다. 예를 들어, channel_presence_flag의 조건부 확인은 잠재 공간 폭과 높이를 반복하는 루프 외부에서 수행될 수 있다. 채널 데이터 판독 루프가 아닌 별도의 루프에서 입력 채널값 y_cap[i]가 초기화될 수 있다.
다르게는, 채널 존재 지시자가 예를 들어 channel_skip_flag(또는 채널 바이패스 플래그)와 같이 반대 해석을 가질 수 있으며, 이는 대응하는 채널 정보의 판독이 생략되어야 함을 지시한다. 즉, 채널(또는 일반 영역) 지시는 존재 지시 또는 부재 지시일 수 있다. 이러한 지시는 제1 값과 제2 값인 두 가지 값 중 하나를 취할 수 있다. 이들 중 하나는 채널의 존재를 지시하고, 이들 값 중 다른 하나는 채널(특징 맵) 데이터의 부재를 지시한다. 또한, 도 10에서, 채널 지시자는 전체 채널이 존재/부재를 지시하도록 시그널링된다. 그러나, 본 개시가 이에 한정되는 것은 아니며, 그 지시자는 특징 맵의 일부(영역) 또는 일부 미리 정의된 방식으로 그룹으로 구성된 채널 그룹에 대해 시그널링될 수 있다.
본 실시예의 기술적 이점 중 하나는 이미지 또는 비디오 재구성을 위해 불필요하거나 중요하지 않은 정보 또는 덜 중요한 정보의 전송을 배제함으로써 시그널링 오버헤드를 감소시킬 수 있다는 것이다. 또 다른 기술적 이점은 엔트로피 디코딩에 의해 불필요하거나 중요하지 않은 정보의 처리를 배제함으로써 이미지 및 비디오 압축 시스템의 병목 현상으로 알려진 엔트로피 디코딩 프로세스의 속도를 높일 수 있다는 것이다.
decode_latent_value() 서브 프로세스(신택스 부분에 대응하는 파싱 프로세스)는 엔트로피 디코딩을 포함할 수 있다. channel_presence_flag는 컨텍스트 적응형 엔트로피 코딩(ae(v)로 표시됨)을 사용하거나 컨텍스트 적응형 엔트로피 코딩(u(1)으로 표시됨)없이 부호가 없는 정수 1빈(bin) 플래그로서 코딩될 수 있다. 컨텍스트 적응형 엔트로피 코딩을 사용하면 channel_presence_flag로 인한 시그널링 오버헤드를 줄이고 압축 효율을 더욱 높일 수 있다.
위의 신택스에서, channel_presence_flag가 채널 데이터가 시그널링되지 않음을 지시하는 경우, 입력 채널값은 상수로 설정되며, 이는 0이다(y_cap[i][y][x] = 0). 그러나, 본 개시는 상수의 값이 0으로 제한되는 것은 아니다. 상수는 다른 값을 취할 수도 있거나, 또는 예를 들어 인코더에 의해 미리 설정된 후 비트스트림에서 시그널링될 수도 있다. 다시 말해서, 일부 실시예에서, 이 방법은 비트스트림으로부터 상기 상수를 디코딩하는 단계를 더 포함한다.
도 10을 참조하여 설명된 디코딩 방법에 대응하여, 도 11에 도시된 바와 같이 인코딩 방법이 제공될 수 있다. 인코딩 방법은 전술한 신택스를 따르는 비트스트림을 생성할 수 있다. 이에 상응하여, 이미지 또는 비디오 인코더는 대응하는 채널 정보를 수신측으로 전송할지 또는 바이패스할지를 결정하는 유닛을 포함할 수 있다. 인코딩 모델의 각각의 출력 채널(생성된 모델의 입력 채널이 될 수 있음)에 대해, 인코더는 이미지 또는 비디오 재구성 또는 머신 비전 작업에 대한 대응하는 채널의 중요도에 대한 결정을 내린다.
도 11의 이러한 인코딩 방법은 모든 채널에 대한 루프를 포함한다. 각각의 단계 S208에서, 채널이 취해지고, 채널의 존재에 대한 결정이 단계 S250에서 이루어진다. 인코더는 채널 중요도를 평가할 수 있는 선험적 지식 또는 메트릭에 기초하여 결정을 내릴 수 있다.
예를 들어, 잠재 표현에서 대응하는 채널의 특징 맵의 절대값 합은 인코더 측의 결정을 취하기 위한 메트릭으로서 사용될 수 있다:
Figure pct00032
여기서, ChannelPresenceFlagi는 비트스트림에서 i번째 CNN 채널의 존재에 대한 인코더의 결정을 나타내는 플래그이고, 이에 상응하여 w,h는 i번째 채널의 잠재 표현의 폭과 높이이며, thread는 일부 미리 정의된 값, 예를 들어 0이다. 다른 구현에서, 절대값의 합은 채널의 요소 수량에 따라 정규화될 수 있다:
Figure pct00033
다른 가능한 구현에서, 절대값의 합 대신 제곱값의 합이 사용될 수 있다. 또 다른 가능한 기준은 채널 내 특징 맵 요소의 평균값에서 채널 내 각각의 특징 맵 요소의 제곱 거리의 합을 채널 내 특징 맵 요소의 개수로 나눈 값으로 정의되는 잠재 표현에서 대응하는 채널의 특징 맵 분산일 수 있다:
Figure pct00034
여기서 μ는 채널 내 특징 맵 요소의 평균값이고 threshold_var는 임계값이다. 본 개시는 특정 결정 알고리즘 또는 메트릭에 한정되지 않는다. 추가적인 대체 구현이 가능하다.
결정 단계 S250 이후, 결정된 채널 존재 플래그가 비트스트림에 기록된다(단계 S255). 그런 다음, 채널 존재 플래그의 값에 기초하여, 채널 데이터를 비트스트림으로 기록할 지 아니면 기록하지 않을지가 단계 S260에서 결정된다. 특히, 채널 존재 플래그가 True인 경우, 단계 S270에서, 채널 데이터는 비트 스트림에 기록되며, 이는 여기에는 산술 인코더와 같은 엔트로피 인코더에 의한 채널 데이터의 인코딩(단계 S280)을 추가로 포함할 수 있다. 반면에, 채널 존재 플래그가 False이면, 단계 270에서, 채널 데이터는 비트스트림에 기록되지 않는다. 즉, 기록이 바이패스(또는 생략)된다.
도 12는 재구성된 픽처 품질에 대한 채널의 상대적 중요도에 기초하여 비트스트림에서 특정 채널의 존재에 대한 결정을 내리기 위한 인코더측 방법의 예시적인 구현을 도시한다. 인코딩 방법의 단계는 각각의 채널에 대해 수행된다. 도 12에서, 채널에 대한 루프는 다음 단계가 수행되는 채널을 설정하는 단계 S410에 의해 도시된다.
제1 단계(S420)로서, 각각의 채널에 대해 중요도 메트릭이 결정된다. 이 메트릭은 예를 들어, 채널 내 모든 특징 맵 요소의 절대값의 합 또는 채널 내 특징 맵 요소의 분산으로서 계산함으로써 결정될 수 있다. 특징 맵의 값 분포는 특징 맵이 재구성된 데이터에 미치는 영향을 나타내는 지시가 될 수 있다. 정렬을 수행하는 또 다른 가능한 메트릭은 레이트에 대응하는 채널 정보를 전송하는 데 필요한 비트의 수량(즉, 특정 채널의 특징 맵 데이터를 전송하는 데 필요한 비트의 수량)을 추정할 수 있다. 정렬을 수행할 수 있는 또 다른 가능한 메트릭은 예를 들어 dB 또는 다중 규모 구조 유사성 지수 측정(multi-scale structural similarity index measure, MS-SSIM)과 같은 다른 품질 메트릭 또는 기타 목표 또는 지각적으로 가중/설계된 메트릭에서 특정 채널의 기여를 재구성된 픽처 품질에 대한 특정 채널의 기여일 수 있다. 위에 언급된 메트릭 및 다른 메트릭이 결합될 수 있다. 예를 들어, 모든 채널 재구성 성능에서 특정 채널 재구성 성능을 제외한 모든 채널 재구성 성능을 빼고 비교함으로써 평가되는 객체 검출 정확도와 같은 머신 비전 작업에 적합한 다른 성능 기준이 있을 수 있다. 즉, 머신 비전 작업의 품질/정확도에 대한 채널 데이터의 기여도에 대한 일부 추정값이 정렬 기준으로서 사용될 수 있다.
다음 단계에서, 모든 채널은 가장 중요한(카운팅 인덱스의 시작에 따라 인덱스 = 0 또는 인덱스 = 1)에서 가장 덜 중요한으로 계산된 중요성 메트릭에 따라 정렬되거나 순위가 매겨진다.
다음 단계(S430-S470)에서, 비트스트림에 대한 각각의 채널의 기여도의 추정값(채널 특징 맵 값을 전송하는 데 필요한 비트의 수량)과 원하는 타깃 비트레이트를 입력 파라미터로 갖는 경우, 인코더는 특정 채널 정보를 비트스트림에 넣을지 여부를 결정한다. 특히, 단계 S430에서, 결과적인 비트스트림 부분의 비트 개수 numOfBits가 0으로 초기화된다. 또한, 채널 존재 플래그는 각각의 채널에 대해 0으로 초기화되어 채널이 비트스트림에 포함되지 않음을 지시한다. 그런 다음, 채널에 대한 루프가 단계 S440에서 시작된다. 루프는 가장 중요한 채널부터 덜 중요한 채널까지 순서대로 채널을 스캔한다. 루프의 각각의 채널에 대해, 단계 S450에서, 채널의 데이터를 코딩하는 데 필요한 비트 개수 channelNumOfBits가 획득되고, 전체 비트 개수 numOfBits가 채널의 데이터 channelNumOfBits를 numOfBits += channelNumOfBits (numOfBits = numOfBits + channelNumOfBits를 의미함)에 의해 코딩하는 데 필요한 획득된 비트 개수에 의해 증분된다.
루프의 단계 S460에서, 총 비트 개수 numOfBits는 필요한 비트 개수 requiredNumOfBits와 비교된다. requiredNumOfBits는 파라미터로서, 이는 원하는 레이트에 따라 설정될 수 있다. 비교 결과 numOfBits >= requiredNumOfBits가 True이면, 총 비트 개수가 필요한 비트 개수에 도달했거나 초과했음을 의미하며, 이 경우 방법이 종료된다. 즉, 현재 채널 i에 대해 채널 존재 플래그는 단계 S430에서 초기화된 대로 0으로 유지되고, 채널 데이터는 비트스트림에 포함되지 않는다. 만약 단계 S460에서 비교 결과 numOfBits >= requiredNumOfBits가 False이면, 채널 i의 데이터가 비트스트림에 추가되었을 때 총 비트 개수가 필요한 비트 개수에 도달하지 못했음을 의미한다. 따라서, 단계 S470에서, 현재 채널 i에 대한 채널 존재 플래그가 1로 설정되고 채널의 데이터가 비트스트림에 포함된다.
요약하면, 인코더는 가장 중요한 채널부터 시작하여 채널 전송에 필요한 비트의 증분 합계를 계산하고 channel_presence_flag[i]를 참(TRUE)으로 설정한다. 총 비트 개수가 필요한 비트 개수에 도달하면, 나머지 최하위 채널은 전송되지 않는 것으로 결정되고, 이러한 채널에 대해 channel_presence_flag[i]를 거짓(FALSE)으로 설정한다.
다르게는, 원하는 재구성된 픽처 품질 수준(예를 들어, dB 또는 MS-SSIM과 같은 기타 메트릭)은 전송할 채널 개수를 결정하기 위한 표준으로서 사용될 수 있다. 인코더는 최상위 채널부터 시작하여 최하위 채널의 기여도에 따라 재구성된 품질을 평가하고, 원하는 품질에 도달하면, 나머지 채널은 필요하지 않은 것으로 결정하고 대응하는 channel_presence_flag[i]는 거짓으로 설정된다. 즉, 반복 단계 S440-S470은 각각의 채널 i에 따라 증가하는 품질 카운터를 누적하고, 현재 채널 i을 추가하여 원하는 품질 수준에 도달하거나 초과하는 경우 반복을 중단함으로써 수행될 수 있다. 당업자에게 명백한 바와 같이, 비트레이트 및 품질은 단지 예시적인 것이며, 둘의 조합이 사용될 수 있거나 복잡성과 같은 추가 기준이 추가되거나 대신 사용될 수 있다.
도 12를 참조하여 설명된 방법은 단지 예시적이다. 전송할 채널을 결정하는 또 다른 대안은,
비용 = 왜곡 + 람다(Lambda)*레이트(rate), 또는
비용 = 레이트 + 베타(Beta)*왜곡
으로서 계산된 비용값을 최소화하는 레이트-왜곡 최적화(RDO) 절차를 사용하는 것이며,
여기서 람다와 베타는 제약된 최적화 방법의 라그랑주(Lagrange) 승수이다. 위에서 설명된 해결수단의 기술적 이점 중 하나는 원하는 재구성된 품질의 원하는 타깃 비트레이트에 맞출 수 있는 능력이며, 이는 압축 시스템의 실제 사용에서 중요한 측면이다.
도 10 및 도 11을 참조하여 설명된 실시예들에서, 특징 맵의 영역은 전체 특징 맵이다. 그러나, 후술하는 바와 같이, 본 개시는 그러한 데이터 세분성으로 제한되지 않는다.
사이드 정보 시그널링
도 3을 참조하여 설명된 바와 같이, Balle에서 제안된 하이퍼프라이어는 입력 신호의 잠재 표현과 함께 전송될 사이드 정보를 생성하여 산술 디코더에 필요한 확률(또는 빈도) 추정값을 획득할 수 있으며, 이를 통해 코딩 시스템은 주어진 입력 신호에 특정한 통계적 특성을 포착할 수 있다. Zhou에 의해 추가로 입증된 바와 같이, 확률 추정은 이미 디코딩된 잠재 표현 심볼에 기초하여 컨텍스트를 통합함으로써 더욱 개선될 수 있다. 도 3에서, 사이드 정보 z는 컨볼루션 레이어의 출력에 기반한다는 것을 알 수 있다. 일반적으로, 특징 맵은 그 자체로 사이드 정보를 나타내는 것으로 간주될 수 있다.
본 개시의 실시예에 따르면, 비트스트림으로부터 신경망에 의해 처리하기 위한 특징 맵을 디코딩하는 방법이 제공된다. 이 방법은 도 13에 도시되어 있으며, 비트스트림으로부터 사이드 정보가 비트스트림에 존재하는지 여부를 지시하는 사이드 정보 지시자를 획득하는 단계 S310을 포함한다. 이 방법은 특징 맵을 디코딩하는 단계 S350을 더 포함한다. 특징 맵의 디코딩 단계 S350은 사이드 정보 지시자의 값이 판단되고 이에 따라 동작되는 단계 S320을 더 포함한다. 특히, 사이드 정보 지시자가 제5 값을 갖는 경우, 이 방법은 비트스트림으로부터 특징 맵을 디코딩하기 위한 사이드 정보를 파싱하는 단계 S330을 포함한다. 그렇지 않으면, 사이드 정보 지시자가 제6 값을 갖는 경우, 이 방법은 비트스트림으로부터 특징 맵을 디코딩하기 위한 사이드 정보를 파싱하는 단계 S340을 더 포함한다. 제5 값은 비트스트림이 사이드 정보를 포함함을 지시하는 반면, 제6 값은 비트스트림이 특징 맵의 특정 부분(예컨대, 영역) 또는 전체 특징 맵 등에 대한 사이드 정보를 포함하지 않음을 지시한다.
하이퍼프라이어 모델은 이미 디코딩된 심볼을 기반으로 자동 회귀적 컨텍스트 모델링을 포함할 수 있으므로, 사이드 정보의 전송이 필요하지 않을 수 있으며, 하이퍼프라이어 네트워크는 컨텍스트만을 기반으로 효율적으로 분포를 모델링할 수 있다. 동시에, 컨텍스트 모델링의 효율은 입력 이미지 또는 비디오 컨텐츠의 통계적 특성에 따라 크게 달라진다. 일부 컨텐츠는 예측이 가능하지만, 일부 컨텐츠는 그렇지 않을 수 있다. 유연성을 위해, 입력 컨텐츠의 통계적 특성에 따라 인코더에 의해 결정될 수 있는 사이드 정보 전송 및 활용 옵션을 갖는 것이 좋다. 이것은 압축 시스템이 입력 컨텐츠 특성에 적응할 수 있는 가능성을 더욱 증가시킬 것이다.
도 13의 디코더 프로세스에 대응하여, 비트스트림의 실시예는 비트스트림에서 사이드 정보(z_cap)의 존재를 제어하는 신택스 요소 side_information_available을 포함할 수 있다. 사이드 정보가 사용할 수 없는 경우(예를 들어, 산술 코딩을 위한 심볼 확률을 획득하는 데 필요하지 않은 것으로서 인코더에 의해 결정된 경우), 디코더는 사이드 정보 값을 읽는 것을 생략하고, 하이퍼프라이어의 생성 부분(
Figure pct00035
)으로
Figure pct00036
을 전송하기 전에 일부 값, 예를 들어 0으로
Figure pct00037
을 초기화한다. 이것은 시그널링을 더욱 최적화할 수 있다. 예시적인 비트스트림은 아래와 같다.
Figure pct00038
디코딩 방법에 대응하여, 실시예에 따르면, 신경망에 의해 처리되는 특징 맵을 비트스트림으로 인코딩하는 방법이 제공된다. 이 방법은 도 14에 도시되어 있으며 특징 맵(또는 적어도 특징 맵의 영역)을 획득하는 단계 S360을 포함할 수 있다. 이 방법은 비트스트림에서 특징 맵에 관한 사이드 정보를 지시할지 여부를 결정하는 단계 S370을 포함할 수 있는 인코딩 단계 S365를 더 포함한다. 결정이 긍정적인 경우, 이 방법은 (예를 들어, 위에서 언급된 제5 값에 대응하여, 인코더와 디코더가 서로 이해할 수 있거나 동일한 시스템의 일부일 수 있도록) 제3 값과 사이드 정보를 지시하는 사이드 정보 지시자를 비트스트림으로 삽입하는 단계 S380을 더 포함할 수 있다. 결정이 긍정적인 경우, 이 방법은 (예를 들어, 위에서 언급된 제6 값에 대응하여, 인코더와 디코더가 서로 이해할 수 있거나 동일한 시스템의 일부일 수 있도록) 사이드 정보 없이 제4 값을 지시하는 사이드 정보 지시자를 비트스트림으로 삽입하는 단계 S390을 더 포함할 수 있다. 사이드 정보는 특징 맵의 영역에 대응할 수 있거나, 또는 전체 특징 맵에 대응할 수 있다.
사이드 정보는 도 3의 오토인코더를 참조하여 설명된 바와 같은 사이드 정보에 대응할 수 있다. 예를 들어, 디코딩 방법은 엔트로피 디코딩을 더 포함할 수 있으며, 여기서 엔트로피 디코딩은 신경망에 의해 처리된 디코딩된 특징 맵에 기초한다. 이에 상응하여, 인코딩 방법은 신경망에 의해 처리된 인코딩된 특징 맵에 기초한 엔트로피 인코딩을 더 포함할 수 있다. 특히, 특징 맵은 도 3에 도시된 바와 같이 하이퍼프라이어 ha/hs로부터의 특징 맵에 대응할 수 있다. 특징 맵에 기초한 사이드 정보는 z에 요약된 표준 편차의 분포에 대응할 수 있다. z는 양자화되고, 추가로 압축(예를 들어, 엔트로피 코딩)되어 사이드 정보로서 전송될 수 있다. 인코더(및 디코더)는 산술 코딩(또는 일반적으로, 다른 종류의 엔트로피 코딩)을 위한 확률값(또는 빈도값, 발생 횟수)을 획득하기 위해 실제로 사용되는 표준 편차의 공간 분포인
Figure pct00039
를 추정하기 위해 양자화된 벡터
Figure pct00040
를 사용하고, 양자화된 이미지 표현
Figure pct00041
(또는 잠재 표현)을 인코딩하는 데 사용한다. 디코더는 먼저 압축된 신호에서
Figure pct00042
를 복원하고 그에 따라 잠재 표현을 디코딩한다. 위에서 설명된 바와 같이, 분포 모델링 네트워크는 잠재 표현의 이미 디코딩된 심볼에 기초하여 컨텍스트 모델링에 의해 더욱 향상될 수 있다. 일부 경우에, z의 전송이 필요하지 않을 수 있으며 하이퍼프라이어 네트워크(hs)의 생성 부분의 입력은 규칙에 따른 값(들), 예를 들어 상수로 초기화될 수 있다.
도 3의 인코더 및 디코더는 단지 예일 뿐이다. 일반적으로, 사이드 정보는 다른 정보(
Figure pct00043
와는 다름)를 운반할 수 있다. 예를 들어, 엔트로피 코딩을 위한 확률 모델은 직접 시그널링되거나, 또는 사이드 정보에서 시그널링된 다른 파라미터로부터 유도될 수 있다. 엔트로피 코딩은 산술 코딩일 필요는 없으며, 다른 종류의 엔트로피 또는 가변 길이 코딩일 수 있으며, 이는 예를 들어 컨텍스트 적응적이고 사이드 정보에 의해 제어될 수 있다.
예시적인 구현에서, 사이드 정보 지시자가 제6 값을 갖는 경우, 디코딩 방법은 사이드 정보를 미리 결정된 사이드 정보 값으로 설정하는 단계를 포함한다. 예를 들어, 미리 결정된 사이드 정보 값은 0이다. 디코딩 방법은 비트스트림으로부터 상기 미리 결정된 사이드 정보 값을 디코딩하는 단계를 더 포함할 수 있다.
이에 상응하여, 예시적인 구현의 인코딩 방법에서, 사이드 정보 지시자가 제4 값을 갖는 경우, 인코딩 방법은 0과 같은 미리 결정된 사이드 정보 값에 기초하여 도출된 인코딩 파라미터(들)에 적용될 수 있다. 인코딩 방법은 상기 미리 결정된 사이드 정보 값을 비트스트림으로 인코딩하는 단계를 더 포함할 수 있다. 즉, 비트스트림은 예를 들어 특징 맵의 복수의 영역에 대해 또는 전체 특징 맵 또는 복수의 특징 맵에 대해 한 번 미리 결정된 사이드 정보를 운반할 수 있다. 즉, 미리 결정된 값(상수일 수 있음)은 사이드 정보 지시가보다 덜 자주 시그널링될 수 있다. 그러나, 반드시 그런 것은 아니며, 일부 실시예에서, 미리 결정된 값은 채널(특징 맵 데이터의 일부) 또는 채널 영역 등별로 개별적으로 시그널링될 수 있다.
본 개시는 대신에 표준에 의해 지정되거나 비트스트림에 포함된 일부 다른 파라미터(들)로부터 유도될 수 있는 미리 결정된 값을 시그널링하는 것으로 제한되지 않는다. 또한, 미리 결정된 값을 시그널링하는 대신에, 미리 결정된 정보가 결정되는 규칙을 지시하는 정보가 시그널링될 수 있다.
따라서, 설명된 방법은 또한 사이드 정보의 잠재 표현
Figure pct00044
의 전송을 최적화하는 데에도 적용 가능하다. 위에서 언급된 바와 같이, 사이드 정보
Figure pct00045
(도 3)는 여러 출력 채널을 포함하는 컨볼루션 레이어의 출력을 기반으로 한다. 일반적인 방식에서, 특징 맵 자체는 사이드 정보를 나타내는 것으로 간주될 수 있다. 따라서, 위에서 설명되고 도 10에 도시된 방법은 또한 사이드 정보의 시그널링 최적화에도 적용 가능하며 사이드 정보 존재 지시자와 결합될 수 있다.
아래는 이들 두 가지 방법이 결합될 수 있는 방법을 보여주는 예시적인 신택스 표이다.
Figure pct00046
비트스트림을 파싱하는 방법은 사이드 정보 존재 지시자(side_information_available)를 비트스트림으로부터 획득하는 단계를 포함할 수 있다. 이 방법은 사이드 정보 존재 지시자가 제3 값을 갖는 경우(예를 들어, side_information_available이 TRUE인 경우) 비트스트림으로부터 사이드 정보(z_cap)를 파싱하는 단계, 및 사이드 정보 존재 지시자가 제4 값을 갖는 경우(예를 들어, side_information_available이 FALSE인 경우) 비트스트림으로부터 사이드 정보를 파싱하는 것을 완전히 바이패스하는 단계를 더 포함할 수 있다. 또한, 비트스트림에서 지시되는 사이드 정보는 영역의 엔트로피 디코딩에 사용하기 위한 추정된 확률 모델을 획득하기 위해 영역 존재 지시자(예를 들어, 도 8 내지 도 11에서 전술한 신택스에서 나타낸 side_infromation_channel_presence_flag) 및 신경망에 의해 처리되기 위한 정보(z_cap) 중 적어도 하나를 포함할 수 있다. 영역 존재 지시자(side_infromation_channel_presence_flag)의 값에 따라, 특징 맵 데이터(z_cap)가 비트스트림에 포함될 수 있다.
즉, 본 예에서, 잠재 공간 y_cap에 대해 설명된 것과 유사한 방법이 채널을 포함하는 특징 맵일 수도 있는 사이드 정보 z_cap에 적용된다. z_cap은 decode_latent_value에 의해 디코딩된다. y_cap으로서 디코딩하기 위한 동일한 프로세스를 사용할 수 있지만 반드시 그런 것은 아니다.
대응하는 인코딩 방법 및 디코딩 방법은 도 8 내지 도 14를 참조하여 설명된 바와 같은 단계를 포함할 수 있다.
또한, 인코더는 하이퍼프라이어의 잠재 표현에서 값을 초기화하는 데 사용되어야 하는 상수 값을 결정할 수 있다. 이 경우, 값(side_information_init_value)은 다음의 신택스에서 예시된 것처럼 비트스트림으로 전송된다.
Figure pct00047
즉, 일부 실시예에서, 사이드 정보 존재 지시자는 제4 값을 갖고, 이 방법은 디코더에서 사이드 정보를 미리 결정된 사이드 정보 값으로 설정하는 단계를 포함한다(사이드 정보가 인코딩에서 사용되는 경우, 인코더에서도 수행될 수 있음). 위의 예시된 신택스에서, 특징 맵 값(z_cap)은 side_information_channel_presence_flag가 FALSE인 경우 0으로 설정된다(또는 미리 결정된 다른 값 또는 side_information_init_value 신택스 요소로서 비트스트림에서 전송되는 경우, 할당 이전에 미리 파싱되어야 함). 그러나, 상수 0은 예시에 불과하다. 상기 실시예에서 이미 설명된 바와 같이, 특징 맵 데이터는 표준에 의해 미리 정의될 수 있거나, 또는 비트스트림에서 시그널링될 수 있거나(예를 들어, 위의 예로부터의 side_information_init_value 신택스 요소로서, 이 경우 할당 전에 미리 파싱되어야 함), 또는 미리 정의되거나 시그널링된 규칙에 따라 유도될 수 있는 미리 결정된 특징 맵 데이터로 설정될 수 있다.
일부 실시예에서, 영역 존재 지시자는 제1 값 및 제2 값에 의해 형성된 단지 2개의 값 중 하나를 취할 수 있는 플래그이다. 일부 실시예에서, 사이드 정보 존재 지시자는 제3 값 및 제4 값에 의해 형성된 단지 2개의 값 중 하나를 취할 수 있는 플래그이다. 일부 실시예에서, 사이드 정보 존재 지시자는 제5 값 및 제6 값에 의해 형성된 단지 2개의 값 중 하나를 취할 수 있는 플래그이다. 이러한 실시예들은 하나의 비트만을 사용하여 효율적인 시그널링을 가능하게 할 수 있다.
일부 덜 중요한 심층 특징 또는 특징 맵의 전송을 생략하면 인코딩 및 디코딩의 레이트 및 복잡성 측면에서 향상된 효율을 제공할 수 있다. 스킵(skip)은 채널별 또는 채널의 영역별 등일 수 있다. 본 개시는 스킵의 임의의 특정 입도에 제한되지 않는다.
전술한 방법은 생성 모델(또는 재구성 네트워크)에 입력되어야 하는 비트스트림으로부터 전송 및 획득될 임의의 특징 맵에 적용 가능하다는 것을 더 이해해야 한다. 생성 모델은 예를 들어 이미지 재구성, 모션 정보 재구성, 잔차 정보 재구성, 산술 코딩(예를 들어, 전술한 하이퍼프라이어에 의한), 객체 검출 및 인식 또는 추가 응용을 위한 확률값(또는 빈도값) 획득을 위해 사용될 수 있다.
정렬 순서
본 개시의 또 다른 실시예는 채널의 상대적인 중요도에 따라 채널을 정렬하는 것이다. 일부 예시적인 구현에서, 비트스트림의 순서에 대한 정보를 운반하는 것이 가능하고, 시그널링을 단순화하며, 비트레이트 확장성 특징을 가능하게 한다. 즉, 본 실시예에서, 채널 중요도 정렬이 적용되고 정렬 순서는 비트스트림에서 전송되거나 미리 결정된 정보를 참조함으로써 인코더 및 디코더 양쪽 모두에서 알려져 있다.
특히, 특징 맵 데이터(채널 데이터)를 디코딩하는 방법은 특정 레이어의 복수의 채널(특징 맵 데이터의 일부)의 중요도(significance)를 지시하는 중요도 순서를 획득하는 단계를 포함할 수 있다. 여기서, 채널 중요도라는 용어는 신경망에 의해 수행되는 작업의 품질에 대한 채널의 중요도 측정을 지칭한다. 예를 들어, 작업이 비디오 코딩인 경우, 중요도는 재구성된 품질 및/또는 인코딩된 비디오의 결과적인 레이트를 측정하기 위한 측정(메트릭)일 수 있다. 작업이 객체 인식과 같은 머신 비전인 경우, 중요도는 인식 정확도 등에 대한 채널의 기여도를 측정할 수 있다. 중요도 순서의 획득은 일반적으로 임의의 수단에 의해 수행될 수 있다. 예를 들어, 중요도 순서는 비트스트림에서 명시적으로 시그널링되거나 표준 또는 기타 관례에서 미리 정의되거나, 또는 예를 들어, 다른 시그널링된 파라미터에 기초하여 암시적으로 유도될 수 있다.
이 방법은 최종 중요도 채널 지시자를 획득하는 단계 및 최종 중요도 채널 지시자에 기초하여 영역 존재 지시자를 획득하는 단계를 더 포함할 수 있다. 최종 중요 채널 지시자는 특정 레이어 또는 네트워크 부분 또는 네트워크의 채널 중 최종 중요 채널을 지시한다. "최종"이라는 용어는 중요도 순서의 맥락에서 이해되어야 한다. 일부 실시예에 따르면, 이러한 마지막 중요 채널 지시는 또한 최하위 채널 지시자로서 해석될 수 있다. 최종 중요 채널은 중요도에 따라 정렬된 채널 중 중요도가 낮은 채널이 이어지며 신경망 작업에 중요하지 않은 것으로 간주되는 채널이다. 예를 들어, 채널 1 내지 M이 중요도에 따라 내림차순으로 정렬된 경우(최상위부터 최하위까지), 채널 k+1 내지 M이 신경망 작업에 중요(significant)하지 않은 것으로 간주되는 경우 채널 k는 최종 중요 채널이다. 그런 다음, 그러한 채널 k+1 내지 M은 예를 들어 비트스트림에 포함될 필요가 없다. 이 경우, 최종 중요 채널 지시자는 인코딩/디코딩이 바이패스될 수 있도록 비트스트림으로부터 이들 채널 k+1 내지 M의 부재를 지시하는 데 사용될 수 있다. 그런 다음, 인코딩/디코딩이 수행될 수 있도록 채널 1 내지 k에 관련된 데이터가 비트스트림에서 운반된다.
하나의 예시적인 구현에서, 정렬 순서는 설계 단계 동안 미리 정의되고 전송될 필요 없이 디코더측(및 인코더측)에서 알려져 있다. 최종 중요 계수의 인덱스는 인코더에서 비트스트림에 삽입된다. 도 15는 디코더에서의 방법의 예를 도시한다. 최종 중요 계수의 인덱스는 디코더에서 비트스트림으로부터 단계 S510에서 획득된다. 최종 중요 채널 인덱스는 비트스트림에서 직접 형태로 시그널링될 수 있다. 즉, 신택스 요소 last_significant_channel_idx가 비트스트림에 포함될 수 있다(아마도 엔트로피 코딩됨). 대안적인 접근 방식과 간접 시그널링은 아래에서 논의될 것이다.
단계 S520에서, 신경망 레이어 또는 복수의 레이어의 모든 채널에 대한 루프가 수행된다. 현재 채널은 현재 반복 i의 채널, 즉 i번째 채널이다. 그 후, 각각의 i번째 채널에 대해, 디코더는 인덱스 i를 최종 중요 채널 인덱스와 비교하여(단계 S530) channel_presence_flag[i]를 결정한다. i가 최종 중요 인덱스보다 높으면, 단계 S540에서 channel_presence_flag[i]는 FALSE로 설정된다. 그렇지 않으면, channel_presence_flag[i]는 단계 S550에서 TRUE와 동일하게 설정된다. 본 실시예에서, 최종 중요 채널의 지시와 관련하여, 채널 존재 플래그는 비트스트림에 실제로 포함되는 플래그가 아니라는 점에 유의한다. 오히려, 이 경우의 채널 존재 플래그는 단계 S520-S550에서 위에서 나타낸 바와 같이 시그널링된 최종 중요 채널 인덱스로부터 도출되는 내부 변수일 뿐이다.
비트스트림 생성 및 파싱 프로세스를 모두 설명하는 대응하는 예시 신택스 표가 아래에 제공된다.
Figure pct00048
이후, 채널 정보(데이터) 파싱 단계 중에, 단계 S560에서, 디코더는 유도된 channel_presence_flag[i]를 사용하여 단계 S570에서 비트스트림으로부터 채널 정보를 파싱할지 여부(channel_presence_flag[i]=TRUE인 경우), 또는 대신에 단계 S580에서 파싱을 스킵(바이패스)할지 여부(channel_presence_flag[i]=False인 경우)를 결정한다. 이전의 실시예에서 언급된 바와 같이, 바이패스는 단계 S580에서 0과 같은 미리 정의된 값으로 채널 정보를 초기화하는 단계를 포함할 수 있다. 채널 존재 플래그의 유도를 도시한 도 15의 흐름도는 설명을 위한 것이며 단지 예를 나타낸다. 일반적으로, 단계 S530은 채널 존재 플래그의 중간 유도 없이 단계 S570 또는 단계 S580으로 진행할지 여부를 직접 결정할 수 있다. 즉, 채널 존재 플래그는 암시적으로만 도출되며, 구현에 따라 파싱 또는 시맨틱 해석 프로세스의 다른 부분에 의한 추가 사용에 유익한 경우 저장될 수 있다. 이는 위에서 언급된 신택스에도 적용된다.
본 예에서, 디코딩은 최상위에서 최종 중요 채널까지 중요도 순서에 따라 비트스트림 내에서 정렬된 채널을 비트스트림으로부터 디코딩함으로써 수행된다. 채널 정보(데이터)는 전술한 방법이 채널 데이터를 엔트로피 디코딩하는 단계 S590를 포함할 수 있는 경우에 엔트로피 디코딩될 수 있다. 모든 채널을 수집한 후, 단계 S595에서, 채널은 신경망의 대응하는 레이어로 공급된다.
그러나, 본 개시는 중요도 순서가 인코더 및 디코더측 모두에서 유도되거나 알려진 경우로 제한되지 않는다. 예시적인 구현에 따르면, 중요도 순서를 획득하는 단계는 비트스트림으로부터 중요도 순서의 지시를 디코딩하는 단계를 포함한다.
특히, 예시적인 구현에서, 디코더는 대응하는 신택스 요소를 파싱함으로써 비트스트림으로부터 중요도 순서를 획득한다. 중요도 순서는 각각의 중요도 인덱스와 채널 설계 인덱스 간의 대응 관계를 설정할 수 있도록 한다. 여기서, 채널 설계 인덱스 하에서, 모델 설계에서 채널이 인덱싱되는 인덱스가 이해된다. 예를 들어, 채널 설계 순서는 신경망 처리 중에 채널의 내용과 무관하게 미리 정의된 관례에 따라 한 레이어의 채널에 번호를 매기는 순서일 수 있다.
중요도 인덱스 대응하는 설계 인덱스를 포함하는 중요도 순서 정보의 예는 도 18, 파트 A)에서 주어진다. 도면에서 알 수 있듯이, 값이 0 내지 191인 설계 인덱스는 채널, 예를 들어 신경망의 특정 레이어의 채널을 나타낸다. 상술한 바와 같이 미리 결정된 중요도에 따라 인덱싱이 수행되는 특정 경우에 채널에 대한 인덱스의 할당은 중요도 순서로서 지칭된다. 도 18의 A)에서, 최하위 채널 인덱스는 190이며, 이는 비트스트림에서 0 내지 190까지의 191개 채널의 데이터가 시그널링되는 반면, 인덱스가 191인 192번째 채널의 데이터는 시그널링되지 않음을 의미한다.
유사하게, 도 17은 단계 S610에서, 비트스트림으로부터 최종 중요 채널 지시자가 획득되는 방법을 도시한다. 그 후, 단계 S620은 채널에 대한 루프를 나타낸다. 각각의 i번째 채널에 대해, 비트스트림으로부터 획득된 중요도에 따라, 디코더는 설계 인덱스 d를 결정하고(단계 S630), 인덱스 i와 최종 중요 채널 인덱스를 비교하여(단계 S635) 대응하는 channel_presence_flag[d]를 결정한다. i가 최종 중요 인덱스보다 크면, channel_presence_flag[d]는 단계 S645에서 FALSE와 동일하게 설정된다. 그렇지 않으면, channel_presence_flag[d]는 S640 단계에서 TRUE로 설정된다. 그런 다음, 채널 정보 파싱 단계 중에, 디코더는 channel_presence_flag[d]를 사용하여 단계 S670에서 비트스트림으로부터 채널 정보를 파싱할지 여부(channel_presence_flag[d] = TRUE인 경우) 또는 단계 S660에서 미리 정의된 값, 예를 들어 0으로 채널 정보를 초기화할지 여부(channel_presence_flag[d] = FALSE인 경우)를 정의한다. 또한, 단계 S680에서, 채널 정보는 산술 디코더 등과 같은 엔트로피 디코더에 의해 추가로 디코딩될 수 있다. 마지막으로, 단계 S690에서, 디코딩된 모든 채널의 채널 정보가 대응하는 신경망 레이어에게 제공된다.
중요도 순서가 비트스트림에서 시그널링되는 실시예에 대한 비트스트림 생성 및 파싱 프로세스를 설명하는 예시적인 신택스 표가 아래에서 제공된다:
Figure pct00049
중요도 순서 획득 요소의 예시적인 신택스는 다음과 같다.
Figure pct00050
obtain_significance_order()의 신택스에서 볼 수 있듯이, 중요도 순서는 채널 인덱스 i에 대해 반복하고 i번째로 높은 중요도를 갖는 설계 채널 인덱스 design_channel_idx를 각각의 채널 i에 할당함으로써 획득된다. 신택스는 또한 대응하는 각각의 채널의 중요도에 따라 정렬된 설계 채널 인덱스의 목록으로도 볼 수 있다. 그러나, 이러한 신택스는 예시일 뿐이며 중요도 순서가 인코더와 디코더 사이에 전달될 수 있는 방식을 제한하지 않는다는 점에 유의한다.
이러한 접근 방식(최종 중요 채널 지시자를 시그널링함)의 기술적 이점 중 하나는 컨텐츠 적응성이다. 실제로, CNN의 다른 채널은 자연 이미지 또는 비디오의 다른 특징을 나타낼 수 있다. 일반화를 위해, 설계 및 훈련 단계에서, CNN은 가능한 입력 신호의 더 넓은 가변성을 다루도록 타깃팅될 수 있다. 일부 실시예에서, 인코더는 예를 들어, 전술한 바와 같은 방법 중 하나를 사용하여 시그널링을 위한 정보의 수량을 식별하고 최적화하는 유연성을 갖는다. 중요도 순서 정보(지시자)는 다양한 입도 수준, 예를 들어, 픽처당 한 번, 픽처의 일부당 한 번, 픽처의 시퀀스 또는 그룹당 한 번으로 전송될 수 있다. 입도는 표준에 의해 미리 설정되거나 미리 정의될 수 있다. 다르게는, 인코더는 컨텐츠 속성에 기초하여 중요도 순서 정보를 시그널링하는 시기 및 빈도를 결정할 수 있는 유연성을 가질 수 있다. 예를 들어, 시퀀스에서 새로운 장면이 검출되면, 변경된 통계 속성으로 인해 중요도 순서 정보를 전송하거나 업데이트하는 것이 도움이 될 수 있다.
일부 실시예에서, 디코더에서 중요도 순서의 획득은 특징 맵이 생성된 소스 데이터에 관한 이전에 디코딩된 정보에 기초하여 중요도 순서를 도출하는 것을 포함한다. 특히, 디코더는 비트스트림으로 전송되는 인코딩된 컨텐츠의 유형에 대한 보충 정보를 사용하여 중요도를 결정할 수 있다. 예를 들어, 보충 정보는 전문적으로 생성된 컨텐츠, 사용자 생성 컨텐츠, 카메라 캡처 또는 컴퓨터 생성 컨텐츠, 비디오 게임 등을 구별할 수 있다. 다르게는 또는 추가로, 보충 정보는 YUV420, YUV422 또는 YUV444와 같은 다른 크로마 샘플링 레이트 유형을 구별할 수 있다. 정보를 설명하는 추가 소스가 추가로 또는 다르게 사용될 수 있다.
예시적인 구현에 따르면, 중요도 순서를 획득하는 것은 특징 맵이 생성된 소스 데이터의 유형에 관한 이전에 디코딩된 정보에 기초하여 중요도 순서를 도출하는 것을 포함한다.
위에서 언급된 실시예 및 구현 중 임의의 것에서, 인코딩된 비트스트림은 일부 비트레이트 확장성 지원을 제공하는 방식으로 구성될 수 있다. 이것은 예를 들어, CNN 채널 정보가 채널의 상대적 중요도에 따라 비트스트림에 배치된다는 점에서 달성될 수 있으며, 가장 중요한 채널이 먼저 오고, 가장 중요하지 않은 채널이 마지막에 온다. 비트스트림에서 채널 순서를 정의하는 상대적인 채널 중요도는 전술한 바와 같이 설계 단계 동안 정의될 수 있고, 비트스트림에서 전송될 필요가 없도록 인코더와 디코더 모두에 알려질 수 있다. 다르게는, 중요도 순서 정보는 인코딩 프로세스 동안 정의되거나 조정될 수 있고 비트스트림에 포함될 수 있다. 후자의 옵션은 컨텐츠의 특정 특징에 대해 다소 더 많은 유연성과 적응성을 제공하하여 더 나은 압축 효율을 가능하게 할 수 있다.
예시적인 구현에 따르면, 최종 중요 채널의 지시는 비트스트림으로부터 디코딩되고 특징 맵의 영역의 압축으로 인해 코딩된 특징 맵의 품질을 지시하는 품질 지시자에 대응한다. 최종 중요 채널 인덱스는 예를 들어, 비트스트림으로 전송된 품질 지시자와 원하는 품질 수준으로 픽처를 재구성하는 데 사용되는 품질 수준과 채널 간의 대응 관계를 정의하는 룩업 테이블을 사용하여 간접적인 형태로 시그널링될 수 있다. 예를 들어, 도 16의 파트 A 및 B)는 각각의 품질 수준이 대응하는 최종 중요 채널의 설계 인덱스와 연관된 룩업 테이블을 도시한다. 즉, 입력(원하는) 품질 수준에 대해, 룩업 테이블은 최종 중요 채널 인덱스를 제공한다. 따라서, 비트스트림의 품질 수준이 디코더측에서 시그널링되거나 도출 가능한 경우, 최종 중요 채널 지시는 비트스트림에서 시그널링될 필요가 없다.
품질 계조의 수량은 모델의 채널 수량에 대응하지 않을 수 있다. 예를 들어 (도 16, 파트 B)의 주어진 예에서, 품질 수준의 수량은 100(0에서 99까지)이고 채널의 수량은 192(0에서 191까지)이다. 예를 들어, 품질 수준 0에 대한 주어진 예에서, 최종 중요 채널 인덱스는 1이고, 품질 수준 98에 대해 최종 중요 채널 인덱스는 190이다.
도 18은 룩업 테이블의 추가 예를 도시한다. 전술한 바와 같이, 예를 들어 도 17을 참조하면, 최종 중요 채널 인덱스는 예를 들어, 비트스트림에서 전송되는 품질 지시자와 원하는 품질 수준으로 픽처를 재구성하는 데 사용되는 품질 수준과 채널 간의 대응 관계를 정의하는 룩업 테이블을 사용하여 비트스트림에서 직접 형태 또는 간접 형태로 시그널링될 수 있다. EH한, 도 18에서, 품질 수준의 수량은 100(0에서 99까지)이고 채널의 수량은 192(0에서 191까지)이다. 이 경우, 최종 중요 채널은 지정된(원하는) 품질 수준에 대응하는 중요도 순서의 최종 채널로 정의된다. 예를 들어, 주어진 예에서 품질 수준 0에 대해, 최종 중요 채널 인덱스는 1이고, 품질 수준 98에 대해 최종 중요 채널 인덱스는 190이다. 도 18의 파트 B)에서, 품질 수준, 중요도 인젝스 및 설계 인덱스 사이의 관계가 도시되어 있다. 알 수 있듯이, 중요도 인덱스는 설계 인덱스와 상당히 다를 수 있다.
일반적으로, 최종 중요 채널의 지시는 중요도 순서 내에서 최종 중요 채널의 인덱스에 대응한다. 즉, M개의 채널은 1부터 M까지의 중요도 순서로 정렬되고 인덱싱된다.
예를 들어, 이미지 또는 비디오 코딩을 포함하는 애플리케이션에서, 인코더에서(예를 들어, 사용자 또는 애플리케이션 등에 의해) 선택된 품질 설정이 있을 수 있다. 그런 다음, 이러한 품질 설정(지시자)은 도 16 및 도 18에 도시된 바와 같이 최종 중요 채널의 특정 값과 연관될 수 있다. 예를 들어, 재구성 후 원하는 이미지/비디오 품질이 높을수록 더 많은 채널이 시그널링된다. 즉, 더 높은 것은 (내림차순으로 중요도에 따라 정렬된 모든 채널의 인덱스 중에서) 최종 중요 채널 인덱스이다. 이들은 단지 예일 뿐이며 채널 정렬은 오름차순으로 수행될 수 있거나 또는 오름차순/내림차순 정렬이 선택 가능하고 시그널링될 수도 있다는 점에 유의한다.
예를 들어, 애플리케이션 요구사항에 의해 정의된 원하는 입도 수준에 따라, 확장성 수준은 각각의 CNN 채널에서 정의되거나 또는 도 19에서 설명된 대로 여러 채널을 하나의 확장성 수준으로 그룹화함으로써 정의될 수 있다. 이는 애플리케이션별 작업에 더 잘 맞도록 추가 유연성을 제공하여 확장성 수준에 대응하는 중요하지 않은 특징 맵 채널을 폐기함으로써 재인코딩 없이 비트레이트를 줄일 수 있다.
채널 정렬에 대한 또 다른 기준은 채널의 유사성일 수 있다. 예를 들어, 이러한 유사성은 채널 정보를 코딩하는 데 필요한 비트의 수량으로 추정될 수 있다. 채널 정보를 표현하는 데 필요한 비트의 수량은 채널 정보성의 유사한 수준으로서 간주될 수 있다. 정보의 수량은 유사한 채널을 비트스트림에 연속적으로 넣기 위해 채널을 (비트의 가장 큰 수량에서 가장 작은 수량으로 또는 가장 작은 수량에서 가장 큰 수량으로) 정렬하는 기준으로서 사용될 수 있다. 이는 심볼 디코딩과 함께 업데이트되는 확률 모델의 안정화로 인해 컨텍스트 적응형 산술 코딩(CABAC)을 사용하는 경우 추가적인 압축 효율 이점을 제공한다. 이는 모델에 의해 보다 정확한 확률 추정을 제공하여 압축 효율을 증가시킨다.
특징 맵의 일부 존재
영역 존재 지시자 및/또는 사이드 정보 존재 지시자의 시그널링은 특징 맵의 영역에 대해 수행될 수 있다. 일부 실시예에서, 영역은 특징 맵의 채널이다. 컨벌루션 레이어에 의해 생성된 특징 맵은 입력 픽처 샘플의 공간 관계와 유사하게 특징 맵 값 사이의 공간 관계를 (적어도 부분적으로) 보존할 수 있다. 따라서, 특징 맵 채널은 재구성 품질에 대해 서로 다른 중요도를 갖는 영역, 예를 들어, 객체 에지를 포함하는 평평한 영역과 평평하지 않은 영역을 가질 수 있다. 특징 맵 데이터를 유닛으로 분할하면 예를 들어, 평평한 영역의 특징 값 전송을 스킵함으로써 이러한 영역 구조를 캡처하고 압축 효율의 이점을 위해 이를 활용할 수 있다.
예시적인 구현에 따르면, 채널 특징 맵을 포함하는 채널 정보는 채널의 특정 공간 영역이 비트스트림에 존재하는지 여부를 지시하는 하나 이상의 지시자를 갖는다. 즉, CNN 영역은 CNN 채널의 임의의 영역이며, 비트스트림은 임의의 영역 정의를 위한 정보를 더 포함한다. 영역을 지정하기 위해, 알려진 2차원 공간의 분할 방법이 사용될 수 있다. 예를 들어, 쿼드트리 분할 또는 기타 계층적 트리 분할 방법이 적용될 수 있다. 쿼드트리 분할은 2차원 공간을 재귀적으로 4개의 사분면 또는 영역으로 분할함으로써 2차원 공간을 분할할 수 있는 분할 방법이다.
예를 들어, 디코딩 방법(위에서 언급한 실시예 및 예시적인 구현 중 임의의 것에 따른 방법과 같음)은 비트스트림으로부터 특징 맵의 영역을 유닛으로 분할하는 것을 지시하는 영역 분할 정보를 디코딩하고, 분할 정보에 따라, 특징 맵 데이터가 영역 유닛을 디코딩하기 위한 것이 아닌 비트스트림으로부터 파싱되어야 하는지 여부를 지시하는 유닛 존재 지시를 디코딩하거나(비트스트림으로부터의 파싱) 또는 디코딩하지 않는(파싱 바이패스) 단계를 더 포함할 수 있다.
이에 상응하여, 인코딩 방법은 특징 맵의 영역이 유닛으로 추가로 분할되어야 하는지 여부를 판단한다. 긍정이면, 특징 맵의 영역을 유닛으로 분할함을 지시하는 분할 정보가 비트스트림에 삽입된다. 그렇지 않으면, 특징 맵의 영역을 유닛으로 분할하지 않음을 지시하는 분할 정보가 비트스트림에 삽입된다. 분할 정보는 추가로 엔트로피 인코딩될 수 있는 플래그일 수 있음에 유의한다. 그러나, 본 개시는 이에 한정되지 않으며, 분할 정보는 또한 분할이 적용되는 경우 분할의 파라미터를 함께 시그널링할 수도 있다.
분할이 적용되면, 인코더는 특정 유닛이 비트스트림에 존재하는지 여부를 추가로 결정할 수 있다. 이에 상응하여, 유닛에 대응하는 특징 맵 데이터가 비트스트림에 포함되어 있는지 여부를 지시하는 유닛 존재 지시가 제공된다. 유닛 존재 지시자는 전술한 영역 존재 지시자의 특수한 경우로 간주될 수 있으며, 전술한 설명은 본 실시예에도 적용된다.
일부 실시예에서, 영역에 대한 영역 분할 정보는 비트스트림이 영역 유닛의 치수 및/또는 위치를 지정하는 유닛 정보를 포함하는지 여부를 지시하는 플래그를 포함한다. 디코딩 방법은 영역 유닛당 유닛 존재 지시를 비트스트림으로부터 디코딩하는 것을 포함한다. 유닛에 대한 유닛 존재 지시의 값에 따라, 디코딩 방법은 유닛에 대한 비트스트림 특징 맵 데이터로부터 파싱하거나 파싱하지 않는 것을 포함한다.
일부 실시예에서, 유닛 정보는 쿼드 트리, 이진 트리, 삼진 트리 또는 삼각형 분할 중 적어도 하나를 포함하는 영역의 계층적 분할을 지정한다.
쿼드트리는 각각의 내부 노드가 정확히 4개의 자식을 갖는 트리 데이터 구조이다. 쿼드트리는 2차원 공간을 재귀적으로 4개의 사분면 또는 영역으로 세분화함으로써 2차원 공간을 분할하는 데 가장 자주 사용된다. 리프(leaf) 셀과 연관된 데이터는 애플리케이션에 따라 다르지만, 리프 셀은 "흥미로운 공간 정보 유닛"을 나타낸다. 쿼드트리 분할 방법에서, 세분화된 영역은 사각형이며, 이들 각각은 4개의 자식으로 추가로 분할될 수 있다. 이진 트리 및 삼진 트리 방법은 또한 각각의 내부 노드에 대해 각각 2개 또는 3개의 자식을 갖는 직사각형 형상의 유닛을 포함할 수도 있다. 또한, 예를 들어, 삼각형 유닛 형상을 회득하기 위해 마스크 또는 기하학적 규칙을 사용하여 임의의 분할 형상이 획득될 수 있다. 이러한 데이터 구조는 분할 트리라고 한다. 분할 방법은 하나의 트리 구조에서 쿼드, 이진 및/또는 삼진 트리와 같은 서로 다른 트리의 조합을 포함할 수 있다. 서로 다른 유닛 형상과 분할 규칙을 사용하면 특징 맵 데이터의 공간 구조를 더 잘 캡처하고 비트스트림에서 가장 효율적인 방식으로 그들을 시그널링할 수 있다. 모든 형태의 분할 트리는 일부 공통된 특징을 공유한다. 그들은 공간을 적응 가능한 셀로 분해하고, 각각의 셀(또는 버킷(bucket)은 최대 용량을 가지며, 최대 용량에 도달하면, 버킷이 분할되고, 트리 디렉토리는 분할 트리의 공간 분해를 따른다.
도 20은 블록(2차원 이미지 또는 특징 맵의 유닛)(2000)의 쿼드 트리 분할을 도시한 개략도이다. 각각의 블록은 4개로 계층 분할하는 각각의 단계에서 분할될 수 있지만 반드시 분할될 필요는 없다. 제1 단계에서, 블록(2000)은 4개의 동일한 블록으로 분할되며, 그 중 하나가 2010이다. 제2 단계에서, 4개의 블록 중 2개(본 예에서 우측편에 있는 블록)가 추가로 분할되며, 이들 각각은 블록(2020)을 포함하는 다시 동일한 크기의 4개의 블록으로 분할된다. 제3 단계에서, 8개의 블록 중 하나는 블록(2030)을 포함하는 4개의 동일한 크기의 블록으로 추가된다.
이진 트리 및 삼진 트리 분할과 같은 다른 분할 방법이 사용되어 임의의 영역 정의 및 대응하는 존재 플래그의 파싱의 동일한 목적을 달성할 수 있다. 아래에서는 가능한 신택스의 구현과 대응하는 파싱 프로세스(및 대응하는 비트스트림 생성 프로세스)를 설명하는 신택스 표가 나타나 있다. 각각의 CNN 채널에 대해, 먼저 parse_quad_tree_presence 함수가 호출되어 임의 영역 정의(split_qt_flag)에 대한 정보를 읽고, 영역 크기(폭, 높이) 및 위치 (x, y)에 대한 정보를 채우며, 채널의 각각의 임의 영역에 대응하는 present_flag를 파싱한다.
동일한 결과로 이어지는 구현의 다른 변형이 가능하다는 점에 유의해야 한다. 예를 들어, 영역 존재 플래그의 파싱은 파싱 루프의 한 반복에서 채널 정보 파싱과 결합될 수 있거나 또는 영역 분할 정보는 분할 정보에 대한 시그널링 오버헤드를 줄이기 위해 모든 채널의 채널 그룹 내에서 공유될 수 있다. 즉, 영역 분할 정보는 특징 맵의 복수의(둘 이상 또는 모두) 채널(영역)의 분할에 적용되는 분할을 지정할 수 있다.
Figure pct00051
아래 신택스 표에서, 영역 분할 정보를 파싱하는 구현이 제공된다. 쿼드트리 방법이 예로서 사용된다.
Figure pct00052
다음의 신택스 표는 특징 맵의 모든 채널이 될 수도 있는 채널 그룹 내에서 영역 분할 정보(channel_regions_info)를 공유하는 예를 나타낸다.
Figure pct00053
존재 정보는 계층적으로 구성될 수 있다. 예를 들어, 특정 채널에 대한 channel_presence_flag(위에서 언급된 예 및 실시예 중 일부에서 설명됨)가 비트스트림에서 FALSE(모든 채널 관련 정보가 생략됨을 지시함)이면, 채널 관련 정보의 추가 파싱이 채널에 대해 수행되지 않는다. channel_presence_flag가 TRUE이면, 디코더는 특정 채널에 대응하는 영역 존재 정보를 파싱한 다음, 채널의 유닛과 관련될 수 있는 비트스트림에서 영역별 채널 정보를 검색한다. 이는 아래에서 나타낸 예시적인 신택스에 의해 설명된다.
Figure pct00054
다르게는, 또는 이전 실시예와 조합하여, 추가 신택스 요소가 임의의 영역 존재 시그널링 메커니즘이 활성화되어야 하는지 여부를 지시하는 데 사용될 수 있다. 특히, 활성화 플래그는 채널 분할이 활성화(허용)되었는지 여부를 시그널링하는 데 사용될 수 있다.
Figure pct00055
요소 enable_channel_regions_flag[i]는 채널이 비트스트림에 존재하는 경우(channel_presence_flag[i] 플래그에 의해 제어됨), 각각의 채널 i에 대해 시그널링되고, 유닛으로의 채널 분할이 활성화되었는지 여부를 지시한다. 분할이 활성화되면, 디코더는 parse_quad_tree_presence() 함수를 호출하여 분할 유닛에 대응하는 존재 플래그뿐만 아니라 비트스트림에서 영역 분할 정보를 파싱한다. 유닛 존재 플래그(channel_regions_info[i][n]가 획득되면 디코더는 분할 유닛의 특징 맵 요소를 반복한다. 유닛 존재 플래그가 TRUE이면, 디코더는 특징 맵 값(decode_latent_value(i, x, y))을 파싱한다. 그렇지 않으면, 특징 맵 값 y_cap[i][y][x]는 이러한 주어진 예에서 0과 같은 상수와 동일하게 설정된다.
변환의 적용
본 실시예에 따르면, 채널 정보를 나타내는 (CNN) 채널 특징 맵은 비트스트림에서 시그널링되기 전에 변환된다. 비트스트림은 최종 중요한 변환된 채널 특징 맵 계수의 위치를 정의하는 신택스 요소(들)를 더 포함한다. 변환(또한 여기에서 변환으로서 지칭됨)은 예를 들어 일부 에너지 압축을 초래할 수 있는 임의의 적절한 변환일 수 있다. 특징 맵 데이터의 순방향 변환을 완료한 후, 인코더는 변환된 계수 매트릭스의 좌측 상단 코너로부터 시작하여 최종 0이 아닌 계수에 대해 지그재그 스캔을 수행한다(좌측 상단 코너는 x = 0, y = 0인 시작점임). 다른 가능한 구현에서, 인코더는 0이 아닌 일부 계수를 덜 중요한 것으로 간주하여 폐기하도록 결정할 수 있다. 최종 중요 계수의 위치 (x, y)는 비트스트림 내에서 시그널링된다.
수신측에서, 예를 들어, 디코더는 대응하는 채널의 특징 맵의 최종 중요한 변환 계수의 위치를 정의하기 위해 대응하는 신택스 요소(들)를 파싱한다. 위치가 정의되면, 디코더는 좌측 상단 코너(x = 0, y = 0)에서 시작하는 영역에 속하는 변환된 특징 맵 데이터를 파싱하고, 최종 중요 계수 위치(x = last_significant_x, y = last_significant_y)에서 끝난다. 나머지 변환된 특징 맵 데이터는 상수 값, 예를 들어 0에 의해 초기화된다. 대응하는 CNN 채널의 변환 계수가 알려진 경우, 역변환이 수행될 수 있다. 이에 기초하여, 채널 특징 맵 데이터가 획득될 수 있다. 이러한 프로세스는 모든 입력 채널에 대해 완료될 수 있다. 그런 다음, 특징 맵 데이터는 생성 모델을 나타내는 재구성 네트워크로 공급될 수 있다.
일반적으로, 비트스트림으로부터의 영역의 디코딩은 영역이 채널인 도 21에 도시되어 있다. 특히, 단계 S710에서, 채널은 처리될 모든 채널 중에서 가져온다. 단계 S710은 처리될 채널에 대한 루프에 대응한다. 디코딩은 영역(여기서, 예시적으로 채널)의 계수 중 최종 계수의 위치를 지시하는 최종 중요 계수 지시자를 비트스트림으로부터 추출하는 단계 S720을 더 포함한다. 단계 S730은 루프 오버 계수에 대응한다. 특히, 루프는 최상위 중요 계수부터 최종 중요 계수까지 각각의 계수를 검토한다. 루프에서, 이 방법은 (단계 S710 루프의 영역에 대해) 비트스트림으로부터 중요 계수의 디코딩(파싱 단계 S750 및 가능하게는 엔트로피 디코딩 단계 S760을 포함함)을 구현하고 미리 정의된 규칙에 따라 최종 중요 계수 지시자를 따르는 계수를 설정하는 단계 S740을 구현한다. 도 21의 예시적인 흐름도에서, 미리 정의된 규칙은 중요도 순서에서 최종 중요 계수를 따르는 계수를 0으로 설정하는 것이다. 그러나, 이전에 "미리 정의된 규칙"이라는 용어에 대해 설명한 바와 같이, 규칙은 또한 계수의 설정을 다른 값으로 정의할 수도 있거나, 또는 설정될 값이 비트스트림으로부터 또는 특정 방법(이전에 사용된 값으로부터의 유도와 같음) 등에 의해 획득될 것이다. 일반적으로, 본 실시예는 임의의 특정 미리 정의된 규칙에 제한되지 않는다.
방법 단계 측면에서, 단계 S735에서, 현재 계수(루프 단계 S730에 의해 주어진 계수)가 중요 계수인지 중요하지 않은 계수인지 여부를 테스트(판단, 확인)한다. 여기서, 중요 계수는 샘플 위치가 아래에 있고 최종 중요 계수와 동일한 계수이다. 중요하지 않은 계수는 최종 중요 계수보다 높은(초과하는) 계수이다. 본 예에서, 중요도 순서는 변환 후 샘플 순서에 대응하는 것으로 가정한다. 이것은 일반적으로 DC 및 저주파수 계수가 고주파수 계수보다 더 중요하다고 가정한다. 샘플 위치는 영역 특징 맵(가능하게는 미리 1D로 스캔됨)의 1D 변환 결과 변환된 계수의 위치(인덱스)이다. 본 개시는 1D 변환의 적용 또는 임의의 특정 데이터 포맷으로 제한되지 않는다. 계수의 중요도 순서는 다른 방식으로, 예를 들어, 표준 또는 관습에 의해, 또는 심지어 비트스트림 내에서 제공되는 등으로 정의될 수 있다.
모든 계수를 획득한 후(루프 단계 S730을 종료한 후), 디코딩 방법은 영역의 계수의 역변환에 의해 영역의 특징 데이터를 획득하는 단계 S770을 포함한다. 도 21에 도시된 바와 같이, 모든 채널에 대한 데이터가 디코딩되는 경우, 디코딩 방법은 모든 채널의 데이터를 재구성 네트워크에 공급하는 단계 S780을 더 포함할 수 있다.
예시적인 구현에 따르면, 역변환은 역 이산 코사인 변환, 역 이산 사인 변환 또는, 역 이산 코사인 변환 또는 역 이산 코사인 변환을 수정하여 획득된 역변환, 또는 컨벌루션 신경망 변환이다. 예를 들어, 컨벌루션 신경망 레이어는 변환으로서 간주될 수 있으며 전술한 바아 같은 최종 중요 계수 시그널링 방법으로 훈련되면 원하는 대로 에너지 압축이 발생한다. 또한, 오토인코더의 분석 부분의 최종 레이어(잠재 공간 표현 y 생성)와 오토인코더의 생성 부분의 제1 레이어(양자화된 잠재 표현 수용)는 그에 상응하여 순방향 변환 및 역변환으로서 간주될 수 있다. 따라서, 특징 맵 코딩 단계 동안에 위에서 설명된 바와 같은 최종 중요 계수 시그널링 방법을 갖는 것은 공동 훈련 중에 획득되는 순방향 컨벌루션 레이어 변환의 원하는 에너지 압축으로 이어질 것이다. 본 개시는 이러한 종류의 변환으로 제한되지 않는다. 오히려, KLT, 푸리에, 하다마드 또는 기타 직교 및 가능하면 단일 변환과 같은 다른 변환이 사용될 수 있다.
아래에 표시된 것은 변환이 인덱스 x와 y로 표현된 차원을 갖는 2차원 채널의 특징 맵 데이터에 적용되는 경우 파싱 프로세스를 나타낸 신택스 표이다. 본 개시는 특징 맵 데이터의 임의의 특정 차원에 제한되지 않는다. 변환은 스캐닝 후 또는 미리 정의된 중요도 순서 내에서 데이터에 위치를 할당한 후에 적용될 수 있다.
Figure pct00056
위의 예에서, 최종 중요 계수 위치는 2D 특징 맵(또는 그 영역)에서 최종 중요 계수 위치의 x 및 y 좌표에 대응하는 2개의 숫자로 표시된다. 다른 가능한 구현에서, 최종 중요 계수 위치는 2D 특징 맵(그 영역)의 지그재그 스캔 순서에 대응하는 단일 숫자에 의해 신택스에서 표현될 수 있다.
도 22는 인코더측에서 수행될 수 있는 예시적인 방법을 나타낸 흐름도를 도시한다. 도 22의 인코딩은 도 21의 디코딩과 호환되므로, 도 22의 인코딩 방법에 의해 생성된 비트스트림은 도 21의 디코딩 방법에 의해 파싱/디코딩될 수 있다.
인코딩 방법은 특징 맵(예를 들어, 신경망과 같은 머신 학습 모델의 레이어에 의해 출력된 데이터)의 채널에 대한 루프 단계 S810을 포함한다. 단계 S820에서, 현재 채널(루프 단계 S810의 현재 단계의 채널)의 데이터는 순방향 변환에 의해 변환된다. 위에서 언급한 바와 같이, 순방향 변환은 여기서 채널 특징을 1D 샘플 시퀀스로 스캐닝한 다음, 이를 1D 변환으로 변환하여 계수의 1D 시퀀스를 획득하는 것을 포함할 수 있다. 이러한 1D 계수 시퀀스는 중요도 순서를 따르는 것으로 간주될 수 있다. 위에서 언급한 바와 같이, 본 예는 제한적이지 않다. 변환은 더 많은 차원을 가질 수 있으며 스캐닝 및/또는 중요도 순서가 다를 수 있다.
단계 S830에서, 최종 중요 위치가 결정된다. 최종 중요 위치의 결정은 원하는 재구성 품질 및/또는 레이트에 기초하여 수행될 수 있다. 예를 들어, 도 12를 참조하여 도시된 방법과 유사하게, 계수에 대한 품질 및/또는 레이트가 누적될 수 있고 품질 및/또는 레이트 또는 이들의 조합이 원하는 임계값을 초과하자마자, 현재 계수가 최종 중요 계수로서 간주된다. 그러나, 다른 접근 방식이 가능하다. 단계 S840에서, 단계 S830에서 결정된 최종 중요 계수의 위치(그 지시)는 비트스트림에 삽입된다. 비트스트림에 삽입하기 전에, 위치의 지시는 산술 코딩과 같은 엔트로피 코딩 또는 다른 가변 길이 코딩 방법에 의해 인코딩될 수 있다. 단계 S850은 각각의 변환된 계수에 대한 루프를 나타낸다. 계수 위치가 최종 중요 유효 계수의 위치보다 낮거나 같은 경우, 현재 계수는 단계 S880에서 비트스트림에 삽입된다(가능하게는 단계 S870에서 산술 인코더로 인코딩됨). 모든 채널의 계수를 인코딩한 후, 비트스트림은 재구성 네트워크로 공급(또는 전송)될 수 있다.
당업자에게 명백한 바와 같이, 본 실시예는 전술한 실시예 중 임의의 것과 조합될 수 있다. 즉, 최종 중요 계수 지시는 최종 중요 채널과 함께 시그널링될 수 있다. 시그널링은 채널보다 작거나 더 큰 영역에 대해 수행될 수 있다. 사이드 정보가 또한 제공될 수 있다. 일반적으로, 더 많은 유연성을 제공하기 위해 상기 언급된 실시예들이 조합될 수 있다.
더욱이, 이미 언급된 바와 같이, 본 개시는 또한 전술한 방법의 단계를 수행하도록 구성된 장치를 제공한다. 도 23은 비트스트림에 기초한 신경망에 의한 처리를 위해 특징 맵을 디코딩하는 장치(2300)를 도시한다. 이 장치는 특징 맵의 영역에 대해 비트스트림으로부터의 정보에 기초하여 영역 존재 지시자를 획득하도록 구성된 영역 존재 지시자 획득 모듈(2310)을 포함한다. 또한, 장치(2300)는 영역 존재 지시자가 제1 값을 갖는 경우 영역을 디코딩하기 위해 비트스트림으로부터 데이터를 파싱하고, 영역 존재 지시자가 제2 값을 갖는 경우 영역을 디코딩하기 위해 비트스트림으로부터 데이터를 바이패스 파싱하는 것을 포함하여 영역을 디코딩하도록 구성된 디코딩 모듈을 더 포함할 수 있다.
또한, 도 24는 비트스트림으로부터 신경망에 의한 처리를 위해 특징 맵을 디코딩하는 장치(2400)를 도시한다. 이 장치는 특징 맵에 관한 사이드 정보 지시자를 비트스트림으로부터 획득하도록 구성된 사이드 정보 지시자 획득 모듈(2410); 및 특징 맵을 디코딩하도록 구성된 디코딩 모듈(2420) ― 디코딩 모듈(2420)은, 사이드 정보 지시자가 제5 값을 갖는 경우 비트스트림으로부터 특징 맵을 디코딩하기 위한 사이드 정보를 파싱하고, 사이드 정보 지시자가 제6 값을 갖는 경우 특징 맵을 디코딩하기 위해 사이드 정보를 비트스트림으로부터 바이패스 파싱하는 것을 포함함 ―을 포함한다.
전술한 디코딩 장치(2300)에 상응하여, 장치가 신경망에 의한 처리를 위해 특징 맵을 비트스트림으로 인코딩하는 것에 대해 도 23에서 도시하고 있다. 이 장치는 특징 맵의 영역에 대한 영역 존재 지시자를 획득하도록 구성된 특징 맵 영역 존재 지시자 획득 모듈(2360)을 포함한다. 또한, 이 장치는 획득된 특징 맵 영역 존재 지시자에 기초하여 비트스트림에서 지시할지 여부, 영역 존재 지시자가 제1 값을 갖는 경우 특징 맵의 영역, 또는 영역 존재 지시자가 제2 값을 갖는 경우 특징 맵의 영역을 바이패스 지시할지 여부를 결정한다.
전술한 디코딩 장치(2400)에 상응하여, 신경망에 의한 처리를 위해 특징 맵을 비트스트림으로 인코딩하기 위한 장치(2450)가 도 24에 도시되어 있다. 이 장치는 특징 맵을 획득하도록 구성된 특징 맵 획득 모듈(2460)을 포함할 수 있다. 더욱이, 장치(2450)는 특징 맵에 관하고 비트스트림에서 지시하는 사이드 정보, 제3 값 및 사이드 정보를 지시하는 사이드 정보 지시자, 또는 사이드 정보가 없는 제4 값을 지시하는 사이드 정보 지시자를 지시할 것을 결정하도록 구성된 인코딩 제어 모듈(2470)을 더 포함할 수 있다.
이들 장치는 위에서 언급한 예시적인 구현을 포함하는 임의의 추가 특징을 수행하도록 추가로 구성될 수 있다. 예를 들어, 비트스트림에 기초한 신경망에 의해 처리하기 위해 특징 맵을 디코딩하는 장치가 제공되며, 이 장치는 위에서 논의된 임의의 디코딩 방법의 단계를 수행하도록 구성된 처리 회로를 포함한다. 마찬가지로, 신경망에 의해 비트스트림으로 처리하기 위한 특징 맵을 인코딩하기 위한 장치가 제공되며, 이 장치는 위에서 논의된 인코딩 방법 중 임의의 단계를 수행하도록 구성된 처리 회로를 포함한다.
장치(2300, 2350, 2400 및/또는 2450)를 사용하는 추가 장치가 제공될 수 있다. 예를 들어, 이미지 또는 비디오 인코딩을 위한 장치는 인코딩 장치(2400 및/또는 2450)를 포함할 수 있다. 또한, 그것은 디코딩 장치(2300 및/또는 2350)를 포함할 수 있다. 이미지 또는 비디오 인코딩을 위한 장치는 디코딩 장치(2300 및/또는 2350)를 포함할 수 있다.
요약하면, 본 개시의 일부 실시예에서, 디코더(비디오 또는 이미지 또는 특징 맵)는 비트스트림으로부터 특징 맵 데이터를 획득하도록 구성된 인공 신경망을 포함할 수 있다. 디코더는 비트스트림으로부터 영역 존재 플래그를 읽고, 영역 존재 플래그가 TRUE인 경우 영역에 대응하는 특징 맵 데이터를 읽으며, 영역 존재 플래그가 FALSE이면 미리 정의된 값(여기서 미리 정의된 값은 예시적인 0임)으로 특징 맵 데이터의 영역을 초기화하고, 획득된 특징 맵 데이터를 기반으로 데이터를 인공 신경망에게 공급하도록 구성될 수 있다. 인공 신경망은 컨벌루션 신경망일 수 있다. 영역은 컨벌루션 신경망의 채널 출력일 수 있다. 다르게는 또는 추가적으로, 영역은 컨벌루션 신경망의 채널 출력의 일부일 수 있고, 비트스트림은 영역 정의를 위한 정보(위치, 형상, 크기)를 더 포함할 수 있다. 즉, 영역 파라미터는 비트스트림에서 정의될 수 있다. 인공 신경망은 CNN일 필요가 없다. 일반적으로, 신경망은 완전히 연결된 신경망일 수 있다.
디코더는 허프만 (디)코딩, 범위 코딩, 산술 코딩, 비대칭 숫자 시스템(Asymmetric numeral system, ANS) 또는 다른 종류의 가변 길이 코드의 엔트로피와 같은 엔트로피 디코딩에 의해 특징 맵 데이터를 읽도록(비트스트림으로부터 추출) 추가로 구성될 수 있다. 영역 존재 플래그는 대응하는 확률 업데이트와 함께 컨텍스트 코딩된 빈(bin)으로서 코딩될 수 있다.
하드웨어 및 소프트웨어에서의 일부 예시적인 구현
전술한 인코더-디코더 처리 체인을 배치할 수 있는 대응하는 시스템이 도 25에 도시되어 있다. 도 25는 예시적인 코딩 시스템, 예를 들어 본 출원의 기술을 활용할 수 있는 비디오, 이미지, 오디오 및/또는 다른 코딩 시스템(또는 짧은 코딩 시스템)을 도시한 개략적인 블록도이다. 비디오 코딩 시스템(10)의 비디오 인코더(20)(또는 짧은 인코더(20)) 및 비디오 디코더(30)(또는 짧은 디코더(30))는 본 출원에서 설명된 다양한 예에 따른 기술을 수행하도록 구성될 수 있는 장치의 예를 나타낸다. 예를 들어, 비디오 코딩 및 디코딩은 분산될 수 있고 분산된 계산 노드들(2개 이상) 사이에 특징 맵을 전달하기 위해 위에서 언급한 비트스트림 파싱 및/또는 비트스트림 생성을 적용할 수 있는 도 1 내지 도 7에 도시된 것과 같은 신경망을 사용할 수 있다.
도 25에 도시된 바와 같이, 코딩 시스템(10)은 예를 들어 인코딩된 픽처 데이터(23)를 디코딩하기 위해 목적지 장치(14)로 인코딩된 픽처 데이터를 제공하도록 구성된 소스 장치(12)를 포함한다.
소스 장치(12)는 인코더(20)를 포함하고, 추가로, 즉 선택적으로, 픽처 소스(16), 전처리기(또는 저처리 유닛)(18) 예를 들어 픽처 전처리기(18) 및 통신 인터페이스 또는 통신 유닛(22)을 포함한다.
픽처 소스(16)는 임의의 종류의 픽처 캡처 장치, 예를 들어 실제 픽처를 캡처하기 위한 카메라 및/또는 임의의 종류의 픽처 생성 장치, 예를 들어 컴퓨터 애니메이션 픽처를 생성하기 위한 컴퓨터 그래픽 프로세서, 또는 실제 픽처, 컴퓨터 생성 픽처(예를 들어, 화면 컨텐츠, 가상 현실(virtual reality, VR) 픽처) 및/또는 이들의 조합(예를 들어, 증강 현실(augmented reality, AR) 픽처)를 획득 및/또는 제공하기 위한 임의의 종류의 다른 장치를 포함하거나 또는 이들일 수 있다. 픽처 소스는 전술한 픽처를 저장하는 임의의 종류의 메모리 또는 저장소일 수 있다.
전처리기(18) 및 전처리 유닛(18)에 의해 수행되는 처리와 구별하여, 픽처 또는 픽처 데이터(17)는 또한 원시 픽처 또는 원시 픽처 데이터(17)로도 지칭될 수 있다.
전처리기(18)는 (원시) 픽처 데이터(17)를 수신하고 픽처 데이터(17)에 대해 전처리를 수행하여 전처리된 픽처(19) 또는 전처리된 픽처 데이터(19)를 획득하도록 구성된다. 전처리기(18)에 의해 수행된 전처리는 예를 들어 트리밍, 색상 포맷 변환(예를 들어, RGB에서 YCbCr로), 색상 보정 또는 노이즈 제거를 포함할 수 있다. 전처리 유닛(18)은 선택적 컴포넌트일 수 있음을 이해할 수 있다. 전처리는 또한 존재 지시자 시그널링을 사용하는 신경망(도 1 내지 도 7 중 임의의 것과 같음)을 사용할 수 있다.
비디오 인코더(20)는 전처리된 픽처 데이터(19)를 수신하고 인코딩된 픽처 데이터(21)를 제공하도록 구성된다.
소스 장치(12)의 통신 인터페이스(22)는 인코딩된 픽처 데이터(21)를 수신하고 인코딩된 픽처 데이터(21)(또는 그 임의의 추가 처리된 버전)를 통신 채널(13)을 통해 다른 장치, 예를 들어 목적지 장치(14) 또는 재구성을 저장하거나 지시하기 위한 임의의 다른 장치로 전송하도록 구성될 수 있다.
목적지 장치(14)는 디코더(30)(예를 들어, 비디오 디코더(30))를 포함하고, 추가로, 즉 선택적으로, 통신 인터페이스 또는 통신 유닛(28), 후처리기(32)(또는 후처리 유닛(32)) 및 디스플레이 장치(34)를 포함할 수 있다.
목적지 장치(14)의 통신 인터페이스(28)는 예를 들어 소스 장치(12) 또는 임의의 다른 소스, 예를 들어 저장 장치, 예를 들어 인코딩된 픽처 데이터 저장 장치로부터 직접 인코딩된 픽처 데이터(21)(또는 임의의 추가 처리된 버전)를 수신하고, 인코딩된 픽처 데이터(21)를 디코더(30)에게 제공하도록 구성된다.
통신 인터페이스(22) 및 통신 인터페이스(28)는 소스 장치(12)와 목적지 장치(14) 사이의 직접 통신 링크, 예를 들어, 직접 유선 또는 무선 연결 또는 모든 종류의 네트워크를 통해, 예를 들어, 유선 또는 무선 네트워크 또는 이들의 조합, 또는 모든 종류의 사설 및 공용 네트워크, 또는 이들의 조합을 통해 인코딩된 픽처 데이터(21) 또는 인코딩된 데이터(13)를 전송 또는 수신하도록 구성될 수 있다.
통신 인터페이스(22)는 예를 들어 인코딩된 픽처 데이터(21)를 적절한 포맷, 예를 들어, 패킷으로 패키징하고 및/또는 통신 링크 또는 통신 네트워크를 통한 전송을 위한 임의의 종류의 전송 인코딩 또는 처리를 사용하여 인코딩된 픽처 데이터를 처리하도록 구성될 수 있다.
통신 인터페이스(22)의 대응관계를 형성하는 통신 인터페이스(28)는 예를 들어 전송된 데이터를 수신하고 임의의 종류의 대응하는 전송 디코딩 또는 처리 및/또는 디패키징을 사용하여 전송 데이터를 처리하여 인코딩된 픽처 데이터(21)를 획득하도록 구성될 수 있다.
통신 인터페이스(22)와 통신 인터페이스(28) 모두는 소스 장치(12)에서 목적지 장치(14)를 가리키는 도 25의 통신 채널(13)에 대한 화살표로 지시된 바와 같은 단방향 통신 인터페이스 또는 양방향 통신 인터페이스로서 구성될 수 있으며, 예를 들어 메시지를 전송하고 수신하며, 예를 들어, 연결을 설정하고, 통신 링크 및/또는 데이터 전송, 예를 들어 인코딩된 픽처 데이터 전송과 관련된 기타 정보를 확인하고 교환하도록 구성될 수 있다. 디코더(30)는 인코딩된 픽처 데이터(21)를 수신하고 디코딩된 픽처 데이터(31) 또는 디코딩된 픽처(31)를 제공하도록 구성된다(예를 들어, 도 1 내지 도 7 중 하나 이상에 기초한 신경망을 사용함)..
목적지 장치(14)의 후처리기(32)는 후처리된 픽처 데이터(33), 예를 들어 후처리된 픽처(33)를 획득하기 위해 디코딩된 픽처 데이터(31)(재구성된 픽처 데이터라고도 함), 예를 들어 디코딩된 픽처(31)를 후처리하도록 구성된다. 후처리 유닛(32)에 의해 수행되는 후처리는 예를 들어 색상 포맷 변환(예를 들어, YCbCr에서 RGB로), 색상 보정, 트리밍 또는 재샘플링 또는 예를 들어, 디스플레이, 예를 들어 디스플레이 장치(34)에 의해 디코딩된 픽처 데이터(31)를 준비하기 위한 임의의 다른 처리를 포함할 수 있다.
목적지 장치(14)의 디스플레이 장치(34)는 예를 들어 사용자 또는 뷰어(viewer)에게 픽처를 디스플레이하기 위해 후처리된 픽처 데이터(33)를 수신하도록 구성된다. 디스플레이 장치(34)는 재구성된 픽처를 나타내기 위한 임의의 종류의 디스플레이, 예를 들어 통합된 또는 외부 디스플레이 또는 모니터일 수 있거나 또는 이들을 포함할 수 있다. 디스플레이는 예를 들어 액정 디스플레이(liquid crystal display, LCD), 유기 발광 다이오드(organic light emitting diode, OLED) 디스플레이, 플라즈마 디스플레이, 프로젝터, 마이크로 LED 디스플레이, 실리콘 액정 표시 장치(liquid crystal on silicon, LCoS), 디지털 광 프로세서(digital light processor, DLP) 또는 기타 모든 종류의 디스플레이를 포함한다.
도 25가 소스 장치(12)와 목적지 장치(14)를 별개의 장치로 도시하지만, 장치의 실시예는 또한 소스 장치(12) 또는 대응하는 기능과 목적지 장치(14) 또는 대응하는 기능 모두 또는 모든 기능을 포함할 수 있다. 이러한 실시예에서, 소스 장치(12) 또는 대응하는 기능 및 목적지 장치(14) 또는 대응하는 기능은 동일한 하드웨어 및/또는 소프트웨어를 사용하거나 또는 별도의 하드웨어 및/또는 소프트웨어 또는 이들의 임의의 조합에 의해 구현될 수 있다.
설명에 기초하여 당업자에게 명백한 바와 같이, 도 25에 도시된 바와 같이 소스 장치(12) 및/또는 목적지 장치(14) 내의 상이한 유닛 또는 기능의 존재 및 (정확한) 분할은 실제 장치 및 애플리케이셔에 따라 변할 수 있다.
인코더(20)(예를 들어, 비디오 인코더(20)) 또는 디코더(30)(예를 들어, 비디오 디코더(30)) 또는 인코더(20) 및 디코더(30) 모두는 하나 이상의 마이크로프로세서, 디지털 신호 프로세서(digital signal processor, DSP), 주문형 집적 회로(application-specific integrated circuit, ASIC), 필드 프로그램 가능 게이트 어레이(field-programmable gate array, FPGA), 이산 로직, 하드웨어, 전용 비디오 코딩 또는 이들의 조합과 같은 초리 회로를 통해 구현될 수 있다. 인코더(20)는 처리 회로(46)를 통해 구현되어 도 1 내지 도 7 또는 그 일부에 도시된 것과 같은 신경망을 포함하는 다양한 모듈을 구현할 수 있다. 디코더(30)는 처리 회로(46)를 통해 구현되어 도 1 내지 도 7과 관련하여 논의된 바와 같은 다양한 모듈 및/또는 임의의 다른 디코더 시스템 또는 여기에서 설명된 서브시스템을 구현할 수 있다. 처리 회로는 나중에 논의되는 바와 같이 다양한 작동을 수행하도록 구성될 수 있다. 기술이 소프트웨어에서 부분적으로 구현되는 경우, 장치는 소프트웨어에 대한 명령어를 적절한 비일시적 컴퓨터 판독 가능 저장 매체에 저장할 수 있으며 본 개시의 기술을 수행하기 위해 하나 이상의 프로세서를 사용하여 하드웨어에서 명령어를 실행할 수 있다. 비디오 인코더(20) 및 비디오 디코더(30) 중 어느 하나는 예를 들어 도 26에 도시된 바와 같이, 단일 장치에서 결합된 인코더/디코더(CODEC)의 일부로서 통합될 수 있다.
소스 장치(12) 및 목적지 장치(14)는 임의의 종류의 핸드헬드 또는 고정 장치, 예를 들어, 노트북 또는 랩탑 컴퓨터, 휴대폰, 스마트폰, 태블릿 또는 태블릿 컴퓨터, 카메라, 데스크탑 컴퓨터, 셋탑 박스, 텔레비전, 디스플레이 장치, 디지털 미디어 플레이어, 비디오 게임 콘솔, 비디오 스트리밍 장치(컨텐츠 서비스 서버 또는 컨텐츠 전달 서버와 같음), 방송 수신기 장치, 방송 전송기 장치 등을 포함하는 광범위한 장치 중 임의의 것을 포함할 수 있으며 임의의 종류의 운영 체제를 사용하지 않거나 또는 사용할 수 있다. 일부 경우에, 소스 장치(12)와 목적지 장치(14)는 무선 통신을 위해 장착될 수 있다. 따라서, 소스 장치(12) 및 목적지 장치(14)는 무선 통신 장치일 수 있다.
일부 경우에, 도 25에 도시된 비디오 코딩 시스템(10)은 단지 예일 뿐이며 본 출원의 기술은 인코딩 장치와 디코딩 장치 사이에 임의의 데이터 통신을 반드시 포함하는 것은 아닌 비디오 코딩 설정(예를 들어, 비디오 인코딩 또는 비디오 디코딩)에 적용될 수 있다. 다른 예에서, 데이터는 로컬 메모리에서 검색되어 네트워크 등을 통해 스트리밍된다. 비디오 인코딩 장치는 데이터를 인코딩하여 메모리에 저장할 수 있고, 및/또는 비디오 디코딩 장치는 메모리에서 데이터를 검색하여 디코딩할 수 있다. 일부 예에서, 인코딩 및 디코딩은 서로 통신하지 않지만 단순히 데이터를 메모리로 인코딩하고 및/또는 메모리에서 데이터를 검색하여 디코딩하는 장치에 의해 수행된다.
도 27은 본 개시의 실시예에 따른 비디오 코딩 장치(1000)의 개략도이다. 비디오 코딩 장치(1000)는 여기에서 기술된 바와 같이 개시된 실시예를 구현하는 데 적합하다. 실시예에서, 비디오 코딩 장치(1000)는 도 25의 비디오 디코더(30)와 같은 디코더 또는 도 25의 비디오 인코더(20)와 같은 인코더일 수 있다.
비디오 코딩 장치(1000)는 데이터를 수신하기 위한 수신 포트(1010)(또는 입력 포트(1010)) 및 수신기 유닛(Rx)(1020); 데이터를 처리하는 프로세서, 로직 유닛 또는 중앙 처리 장치(central processing unit, CPU)(1030); 데이터를 전송하기 위한 전송기 유닛(Tx)(1040) 및 출구 포트(1050)(또는 출력 포트(1050)); 및 데이터를 저장하기 위한 메모리(1060)를 포함한다. 비디오 코딩 장치(1000)는 또한 광학 또는 전기 신호의 출력 또는 입력을 위한 입구 포트(1010), 수신기 유닛(1020), 전송기 유닛(1040) 및 출구 포트(1050)에 결합된 광학-전기(optical-to-electrical, OE) 컴포넌트 및 전기-광학(electrical-to-optical, EO) 컴포넌트를 포함할 수 있다.
프로세서(1030)는 하드웨어 및 소프트웨어로 구현된다. 프로세서(1030)는 하나 이상의 CPU 칩, 코어(예를 들어, 멀티 코어 프로세서), FPGA, ASIC 및 DSP로서 구현될 수 있다. 프로세서(1030)는 입구 포트(1010), 수신기 유닛(1020), 전송기 유닛(1040), 출구 포트(1050) 및 메모리(1060)와 통신한다. 프로세서(1030)는 코딩 모듈(1070)을 포함한다. 코딩 모듈(1070)은 전술한 개시된 실시예를 구현한다. 예를 들어, 코딩 모듈(1070)은 다양한 코딩 작동을 구현, 처리, 준비 또는 제공한다. 따라서, 코딩 모듈(1070)의 포함은 비디오 코딩 장치(1000)의 기능에 실질적인 개선을 제공하고 비디오 코딩 장치(1000)를 다른 상태로 변형시킨다. 다르게는, 코딩 모듈(1070)은 메모리(1060)에 저장되고 프로세서(1030)에 의해 실행되는 명령어로서 구현된다.
메모리(1060)는 하나 이상의 디스크, 테이프 드라이브 및 솔리드 스테이트 드라이브를 포함할 수 있고 오버플로우 데이터 저장 장치로서 사용되어 그러한 프로그램이 실행을 위해 선택될 때 프로그램을 저장하고 프로그램 실행 중에 판독되는 명령어 및 데이터를 저장할 수 있다. 메모리(1060)는, 예를 들어, 휘발성 및/또는 비휘발성일 수 있고, 읽기 전용 메모리(read-only memory, ROM), 랜덤 액세스 메모리(random access memory, RAM), 삼항 컨텐츠 주소지정가능 메모리(ternary content-addressable memory, TCAM) 및/또는 정적 랜덤 액세스 메모리(static random-access memory, SRAM)일 수 있다.
도 28은 예시적인 실시예에 따라 도 25로부터의 소스 장치(12) 및 목적지 장치(14) 중 하나 또는 모두로서 사용될 수 있는 장치(800)의 간략화된 블록도이다.
장치(1100)의 프로세서(1102)는 중앙 처리 장치일 수 있다. 다르게는, 프로세서(1102)는 현재 존재하거나 이후에 개발될 정보를 조작하거나 처리할 수 있는 임의의 다른 유형의 장치 또는 다중 장치일 수 있다. 개시된 구현이 도시된 바와 같은 단일 프로세서, 예를 들어 프로세서(1102)로 실행될 수 있지만, 속도 및 효율성의 이점은 하나 이상의 프로세서를 사용하여 달성될 수 있다.
장치(1100)의 메모리(1104)는 구현에서 읽기 전용 메모리(ROM) 장치 또는 랜덤 액세스 메모리(RAM) 장치일 수 있다. 임의의 다른 적합한 유형의 저장 장치가 메모리(1104)로서 사용될 수 있다. 메모리(1104)는 버스(1112)를 사용하여 프로세서(1102)에 의해 액세스되는 코드 및 데이터(1106)를 포함할 수 있다. 메모리(1104)는 운영 체제(1108) 및 애플리케이션 프로그램(1110)을 더 포함할 수 있으며, 애플리케이션 프로그램(1110)은 프로세서(1102)가 여기에 설명된 방법을 수행하도록 허용하는 적어도 하나의 프로그램을 포함한다. 예를 들어, 애플리케이션 프로그램(1110)은 여기에서 설명된 방법을 수행하는 비디오 코딩 애플리케이션을 더 포함하는 애플리케이션 1 내지 N을 포함할 수 있다.
장치(1100)는 또한 디스플레이(1118)와 같은 하나 이상의 출력 장치를 포함할 수 있다. 디스플레이(1118)는 일 예에서 터치 입력을 감지하도록 작동가능한 터치 감지 요소와 디스플레이를 결합하는 터치 감지 디스플레이일 수 있다. 디스플레이(1118)는 버스(1112)를 통해 프로세서(1102)에 결합될 수 있다.
여기서 단일 버스로 도시되어 있지만, 장치(1100)의 버스(1112)는 다중 버스로 구성될 수 있다. 또한, 2차 저장소는 장치(1100)의 다른 컴포넌트에 직접 결합될 수 있거나 또는 네트워크를 통해 액세스될 수 있으며 메모리 카드와 같은 단일 통합 유닛 또는 다중 메모리 카드와 같은 다중 유닛을 포함할 수 있다. 따라서, 장치(1100)는 폭넓은 다양한 구성으로 구현될 수 있다.
일부 수학 연산자 및 기호
본 출원에서 사용되는 예시적인 신택스 설명에서의 수학 연산자는 기존 코덱에서 신택스를 설명하는 데 사용되는 것과 유사하다. 번호 매기기 및 계산 관습은 일반적으로 0부터 시작한다. 예를 들어, "제1"은 0번째에 해당하고 "제2"는 1번째에 해당하는 식이다.
+ 덧셈
- 뺄셈(2-인수 연산자로서임) 또는 부정(단항 프리픽스 연산자)
* 매트릭스 곱셈을 포함하는 곱셈
/ 결과를 0으로 자르는 정수 나눗셈. 예를 들어, 7/4 및 -7/-4는 1로 잘려서 -7/4 및 7/-4는 -1로 잘린다.
x % y 모듈러스(Modulus). x >= 0이고 y > 0인 정수 x 및 y에 대해서만 정의된 y로 나눈 x의 나머지이다.
다음의 논리 연산자는 다음과 같이 정의된다.
x && y 불린 로직의(Boolean logical) x와 y의 "and"
x || y 불린 로직의 x와 y의 "or"
! 불린 로직의 "not"
x ? y : z x가 TRUE이거나 0이 아니면, y값으로 평가되지만, 그렇지 않으면 z값으로 평가된다.
다음의 관계 연산자는 다음과 같이 정의된다.
> 보다 큼
>= 보다 크거나 같음
< 보다 작음
<= 보다 작거나 같음
== 같음
!= 같지 않음
관계 연산자가 값 "na(not applicable)"로 할당된 신택스 요소 또는 변수에 적용되는 경우, 값 "na"는 신택스 요소 또는 변수에 대한 고유한 값으로 처리된다. 값 "na"는 다른 값과 같지 않은 것으로 간주된다.
다음의 비트 연산자는 다음과 같이 정의된다.
& 비트 단위 "and". 정수 인수에 대해 연산하는 경우, 정수 값의 2의 보수 표현에 대해 연산한다. 다른 인수보다 적은 비트를 포함하는 이진 인수에 대해 연산하는 경우, 더 짧은 인수는 0과 같은 더 많은 유효 비트를 추가하여 확장된다.
| 비트 단위 "or". 정수 인수에 대해 연산하는 경우, 정수 값의 2의 보수 표현에 대해 연산한다. 다른 인수보다 적은 비트를 포함하는 이진 인수에 대해 연산하는 경우, 더 짧은 인수는 0과 같은 더 많은 유효 비트를 추가하여 확장된다.
^ 비트 단위 "exclusive or". 정수 인수에 대해 연산하는 경우, 정수 값의 2의 보수 표현에 대해 연산한다. 다른 인수보다 적은 비트를 포함하는 이진 인수에 대해 연산하는 경우, 더 짧은 인수는 0과 같은 더 많은 유효 비트를 추가하여 확장된다.
x >> y y 이진수만큼 x의 2의 보수 정수 표현의 산술적 우측 시프트. 이러한 함수는 y의 음이 아닌 정수 값에 대해서만 정의된다. 우측 시프트의 결과로서 최상위 비트(most significant bit, MSB)로 시프트된 비트는 시프트 연산 이전의 x의 MSB와 동일한 값을 갖는다.
x << y y 이진수만큼 x의 2의 보수 정수 표현의 산술적 좌측 시프트. 이러한 함수는 y의 음이 아닌 정수 값에 대해서만 정의된다. 좌측 시프트의 결과로서 최하위 비트(least significant bit, LSB)로 시프트된 비트는 0과 같은 값을 갖는다.
다음의 산술 연산자는 다음과 같이 정의된다.
= 할당 연산자
++ 증가, 즉 x++는 x = x + 1과 같으며, 어레이 인덱스에서 사용되는 경우, 증가 연산 이전의 변수 값으로 평가된다.
-- 감소, 즉 x--는 x = x - 1과 같다. 어레이 인덱스에서 사용되는 경우, 감소 연산 이전의 변수 값으로 평가된다.
+= 지정된 양만큼 증가, 즉 x += 3은 x = x + 3과 동일하며, x += (-3)은 x = x + (-3)과 같다.
-= 지정된 양만큼 감소, 즉 x -= 3은 x = x - 3과 동일하며, x -= (-3)는 x = x - (-3)과 같다.
다음의 표기는 값의 범위를 지정하는 데 사용된다.
x = y..z x는 y에서 시작하여 z까지의 정수 값을 취하며, x, y, z는 정수이고 z는 y보다 크다.
표현식에서의 우선순위가 괄호를 사용하여 명시적으로 지시되지 않는 경우, 다음의 규칙이 적용된다.
- 높은 우선순위의 연산은 낮은 우선순위의 연산 전에 평가된다.
- 동일한 우선순위의 연산은 좌측으로부터 우측으로 순차적으로 평가된다.
아래의 표는 연산의 우선순위를 가장 높은 것에서 가장 낮은 것까지 지정하며, 표에서 더 높은 위치는 더 높은 우선순위를 지시한다.
C 프로그래밍 언어에서도 사용되는 연산자의 경우, 이러한 규격에서 사용되는 우선순위가 C 프로그래밍 언어에서 사용되는 것과 동일하다.
표는 가장 높은 것(표의 상단)에서부터 가장 낮은 것(표의 하단)까지의 우선순위 연산을 나타낸다.
Figure pct00057
텍스트에서, 다음과 같은 형태
if(조건 0)
명령문 0
else if(조건 1)
명령문 1
...
else /* 남은 조건에 대한 유익한 정보 * /
명령문 n
로 수학적으로 설명될 수 있는 바와 같은 논리 연산의 명령문은 다음의 방식
... 다음과 같이/... 다음이 적용된다.
- If 조건 0, 명령문 0
- 그렇지 않으면, if 조건 1, 명령문 1
- ...
- 그렇지 않으면(나머지 조건에 대한 유익한 정보), 명령문 n
으로 설명될 수 있다.
텍스트에서 각각의 "If ... 그렇지 않으면, if .... 그렇지 않으면, ..." 명령문은 "If ..."이 즉시 뒤 따르는 "... 다음과 같이" 또는 "... 다음이 적용된다"로 도입된다. "If ... 그렇지 않으면, if ... 그렇지 않으면, ..."의 마지막 조건은 항상 "그렇지 않으면, ..."이다. 인터리링된 "If ... 그렇지 않으면, if ... 그렇지 않으면, ..." 명령문은 "... 다음과 같이" 또는 "... 다음이 적용된다"를 끝의 "그렇지 않으면, ..."와 매칭시킴으로써 식별될 수 있다.
텍스트에서 다음과 같은 형태
if(조건 0a && 조건 0b)
명령문 0
else if(조건 1a || 조건 1b)
명령문 1
...
else
명령문 n
로 수학적으로 설명될 수 있는 바와 같은 논리 연산의 명령문은 다음의 방식
... 다음과 같이/... 다음이 적용된다
- 다음의 조건 모두가 참이면, 명령문 0:
- 조건 0a
- 조건 0b
- 그렇지 않으면, 다음의 조건 중 하나 이상이 참이면, 명령문 1
- 조건 1a
- 조건 1b
- ...
- 그렇지 않으면, 명령문 n
으로 설명될 수 있다.
텍스트에서, 다음의 형태
if (조건 0)
명령문 0
if (조건 1)
명령문 1
로 수학적으로 설명될 수 있는 바와 같은 논리 연산의 명령문은 다음의 방식
조건 0인 경우, 명령문 0
조건 1인 경우, 명령문 1
으로 설명될 수 있다.
요약하면, 본 개시는 신경망을 사용하는 시스템을 위한 특징 맵 정보의 효율적인 시그널링에 관한 것이다. 특히, 디코더 측에서, 존재 지시자는 비트스트림으로부터 파싱되거나 또는 비트스트림으로부터 파싱된 정보에 기초하여 도출된다. 파싱된 존재 지시자의 값에 기초하여, 특징 맵 영역과 관련된 추가 데이터가 파싱되거나 파싱이 바이패스된다. 존재 지시자는, 예를 들어 비트스트림에 특징 맵 데이터가 포함되어 있는지 여부를 지시하는 영역 존재 지시자일 수 있거나, 또는 비트스트림에 특징 맵 데이터와 관련된 사이드 정보가 포함되어 있는지를 지시하는 사이드 정보 존재 지시자일 수 있다. 마찬가지로, 인코딩 방법과 인코딩 및 디코딩 장치가 제공된다.

Claims (48)

  1. 비트스트림에 기초한 신경망에 의한 처리를 위한 특징 맵 디코딩 방법으로서,
    상기 특징 맵의 영역에 대해, 상기 비트스트림으로부터의 정보에 기초하여 영역 존재 지시자를 획득하는 단계(S110), 및
    상기 영역을 디코딩하는 단계(S150) ― 상기 영역을 디코딩하는 단계(S150)는,
    상기 영역 존재 지시자가 제1 값을 갖는 경우 상기 영역을 디코딩하기 위해 상기 비트스트림으로부터 데이터를 파싱(parsing)하는 단계(S130), 및
    상기 영역 존재 지시자가 제2 값을 갖는 경우 상기 영역을 디코딩하기 위해 상기 비트스트림으로부터의 데이터 파싱을 바이패스(bypass)하는 단계(S140)
    를 포함함 ―
    를 포함하는 특징 맵 디코딩 방법.
  2. 제1항에 있어서,
    상기 영역 존재 지시자가 제2 값을 갖는 경우, 상기 영역을 디코딩하는 단계(S150)는,
    미리 결정된 규칙에 따라 상기 영역을 설정하는 단계(S230)
    를 더 포함하는 특징 맵 디코딩 방법.
  3. 제2항에 있어서,
    상기 미리 결정된 규칙은 상기 영역의 특징을 상수로 설정하는 것을 지정하는,
    특징 맵 디코딩 방법.
  4. 제3항에 있어서,
    상기 상수는 0인,
    특징 맵 디코딩 방법.
  5. 제3항 또는 제4항에 있어서,
    상기 비트스트림으로부터 상기 상수를 디코딩하는 단계(S240)
    를 포함하는, 특징 맵 디코딩 방법.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서,
    상기 비트스트림은 상기 영역 존재 지시자를 포함하는,
    특징 맵 디코딩 방법.
  7. 제1항 내지 제5항 중 어느 한 항에 있어서,
    상기 비트스트림으로부터 사이드 정보를 획득하는 단계, 및 상기 사이드 정보에 기초하여 상기 영역 존재 지시자를 획득하는 단계
    를 더 포함하는 특징 맵 디코딩 방법.
  8. 제7항에 있어서,
    상기 비트스트림으로부터 사이드 정보 존재 지시자를 획득하는 단계(S310),
    상기 사이드 정보 존재 지시자가 제3 값을 갖는 경우 상기 비트스트림으로부터 상기 사이드 정보를 파싱하는 단계(S330), 및
    상기 사이드 정보 존재 지시자가 제4 값을 갖는 경우 상기 비트스트림으로부터 상기 사이드 정보 파싱을 바이패스하는 단계(S340)
    를 포함하며,
    상기 사이드 정보는 상기 영역의 엔트로피 디코딩에서의 사용을 위한 추정 확률 모델을 획득하기 위해 상기 영역 존재 지시자 및 신경망에 의해 처리되기 위한 정보 중 적어도 하나를 포함하는,
    특징 맵 디코딩 방법.
  9. 제8항에 있어서,
    상기 사이드 정보 존재 지시자가 상기 제4 값을 갖는 경우, 상기 특징 맵 디코딩 방법은 상기 사이드 정보를 미리 결정된 사이드 정보 값으로 설정하는 단계(S580)를 포함하는,
    특징 맵 디코딩 방법.
  10. 제1항 내지 제9항 중 어느 한 항에 있어서,
    상기 영역 존재 지시자는 상기 제1 값 및 상기 제2 값에 의해 형성되는 2개의 값 중 하나만을 취할 수 있는 플래그인,
    특징 맵 디코딩 방법.
  11. 제1항 내지 제10항 중 어느 한 항에 있어서,
    상기 영역은 상기 특징 맵의 채널인,
    특징 맵 디코딩 방법.
  12. 제11항에 있어서,
    상기 특징 맵의 복수의 채널의 중요도(significance)를 지시하는 중요도 순서를 획득하는 단계(S610),
    최종 중요 채널 지시자를 획득하는 단계(S630), 및
    상기 최종 중요 채널 지시자에 기초하여 상기 영역 존재 지시자를 획득하는 단계(S640, S645)
    를 더 포함하는, 특징 맵 디코딩 방법.
  13. 제12항에 있어서,
    상기 최종 중요 채널의 지시는 상기 비트스트림으로부터 디코딩되고 상기 특징 맵의 영역의 압축으로 인한 코딩된 특징 맵의 품질을 지시하는 품질 지시자에 대응하는,
    특징 맵 디코딩 방법.
  14. 제12항에 있어서,
    상기 최종 중요 채널의 지시는 상기 중요도 순서 내에서 상기 최종 중요 채널의 인덱스에 대응하는,
    특징 맵 디코딩 방법.
  15. 제12항 내지 제14항 중 어느 한 항에 있어서,
    상기 중요도 순서를 획득하는 단계는 상기 비트스트림으로부터 상기 중요도 순서의 지시를 디코딩하는 단계를 포함하는,
    특징 맵 디코딩 방법.
  16. 제12항 내지 제15항 중 어느 한 항에 있어서,
    상기 중요도 순서를 획득하는 단계(S630)는 상기 특징 맵이 생성된 소스 데이터에 관해 이전에 디코딩된 정보에 기초하여 상기 중요도 순서를 도출하는 단계를 포함하는,
    특징 맵 디코딩 방법.
  17. 제12항 내지 제16항 중 어느 한 항에 있어서,
    상기 중요도 순서를 획득하는 단계(S630)는 상기 특징 맵이 생성된 소스 데이터의 유형에 관해 이전에 디코딩된 정보에 기초하여 상기 중요도 순서를 도출하는 단계를 포함하는,
    특징 맵 디코딩 방법.
  18. 제12항 내지 제17항 중 어느 한 항에 있어서,
    상기 비트스트림으로부터, 최상위 중요 채널로부터 상기 최종 중요 채널까지 상기 중요도 순서에 따라 상기 비트스트림 내에서 정렬된 채널을 디코딩하는 단계(S680)를 더 포함하는,
    특징 맵 디코딩 방법.
  19. 제1항 내지 제18항 중 어느 한 항에 있어서,
    상기 비트스트림으로부터, 특징 맵의 영역을 유닛으로 분할하는 것을 지시하는 영역 분할 정보를 디코딩하는 단계, 및
    상기 분할 정보에 따라, 특징 맵 데이터가 상기 영역의 유닛을 디코딩하기 위해 상기 비트스트림으로부터 파싱되어야 하는지 여부를 지시하는 유닛 존재 지시를 획득하는 단계
    를 더 포함하는 특징 맵 디코딩 방법.
  20. 제18항에 있어서,
    상기 영역에 대한 영역 분할 정보는 상기 비트스트림이 상기 영역의 유닛의 치수 및/또는 위치를 지정하는 유닛 정보를 포함하는지 여부를 지시하는 플래그를 포함하며,
    상기 특징 맵 디코딩 방법은,
    상기 비트스트림으로부터의 정보에 기초하여 상기 영역의 유닛 당 유닛 존재 지시를 획득하는 단계; 및
    유닛에 대한 유닛 존재 지시의 값에 따라, 상기 유닛에 대한 특징 맵 데이터를 상기 비트스트림으로부터 파싱하거나 파싱하지 않는 단계
    포함하는, 특징 맵 디코딩 방법.
  21. 제19항 또는 제20항에 있어서,
    상기 비트스트림은 상기 유닛 존재 지시자를 포함하는,
    특징 맵 디코딩 방법.
  22. 제20항 또는 제21항에 있어서,
    상기 유닛 정보는 쿼드 트리, 이진 트리, 삼진 트리 또는 삼각 분할 중 적어도 하나를 포함하는 상기 영역(2000)의 계층적 분할을 지정하는,
    특징 맵 디코딩 방법.
  23. 제1항 내지 제22항 중 어느 한 항에 있어서,
    상기 비트스트림으로부터 상기 영역을 디코딩하는 단계는,
    · 상기 영역의 계수 중 최종 계수의 위치를 지시하는 최종 중요 계수 지시자를 상기 비트스트림으로부터 추출하는 단계(S720),
    · 상기 영역의 중요 계수를 상기 비트스트림으로부터 디코딩하는 단계(S750, S760),
    · 미리 정의된 규칙에 따라 상기 최종 중요 계수 지시자 다음의 계수를 설정하는 단계(S740), 및
    · 상기 영역의 계수를 역변환하여 상기 영역의 특징 데이터를 획득하는 단계(S770)
    를 포함하는, 특징 맵 디코딩 방법.
  24. 제23항에 있어서,
    상기 역변환(S770)은 역 이산 코사인 변환, 또는 역 이산 사인 변환, 또는 상기 역 이산 코사인 변환이나 역 이산 코사인 변환을 수정하여 획득되는 역변환, 또는 컨벌루션 신경망 변환인,
    특징 맵 디코딩 방법.
  25. 제1항 내지 제24항 중 어느 한 항에 있어서,
    상기 비트스트림이 상기 특징 맵에 대한 임의의 사이드 정보를 포함하는지 여부를 지시하는 사이드 정보 존재 플래그를 상기 비트스트림으로부터 디코딩하는 단계 ― 상기 사이드 정보는 상기 특징 맵의 엔트로피 디코딩에서의 사용을 위한 추정 확률 모델을 획득하기 위해 신경망에 의해 처리되기 위한 정보를 포함함 ―
    를 더 포함하는 특징 맵 디코딩 방법.
  26. 제1항 내지 제25항 중 어느 한 항에 있어서,
    상기 영역 존재 지시자의 디코딩은 컨텍스트 적응형 엔트로피 디코더에 의한 디코딩을 포함하는,
    특징 맵 디코딩 방법.
  27. 비트스트림으로부터 신경망에 의한 처리를 위한 특징 맵 디코딩 방법으로서,
    상기 비트스트림으로부터 상기 특징 맵에 관한 사이드 정보 지시자를 획득하는 단계(S310);
    상기 특징 맵을 디코딩하는 단계(S350) ― 상기 특징 맵을 디코딩하는 단계(350)는,
    상기 사이드 정보 지시자가 제5 값을 갖는 경우, 상기 비트스트림으로부터 상기 특징 맵을 디코딩하기 위한 사이드 정보를 파싱하는 단계(S330), 및
    상기 사이드 정보 지시자가 제6 값을 갖는 경우, 상기 비트스트림으로부터 상기 특징 맵을 디코딩하기 위한 사이드 정보의 파싱을 바이패스하는 단계(S340)
    를 포함함 ―
    를 포함하는 특징 맵 디코딩 방법.
  28. 제27항에 있어서,
    엔트로피 디코딩(S590)
    을 더 포함하며,
    상기 엔트로피 디코딩은 신경망에 의해 처리되는 디코딩된 특징 맵에 기초하는,
    특징 맵 디코딩 방법.
  29. 제28항에 있어서,
    상기 사이드 정보 지시자가 상기 제6 값을 갖는 경우, 상기 특징 맵 디코딩 방법은,
    상기 사이드 정보를 미리 결정된 사이드 정보 값으로 설정하는 단계(S580)
    를 포함하는, 특징 맵 디코딩 방법.
  30. 제29항에 있어서,
    상기 미리 결정된 사이드 정보 값은 0인,
    특징 맵 디코딩 방법.
  31. 제29항 또는 제30항에 있어서,
    상기 비트스트림으로부터 상기 미리 결정된 사이드 정보 값을 디코딩하는 단계(S590)
    를 포함하는, 특징 맵 디코딩 방법.
  32. 이미지 디코딩 방법으로서,
    비트스트림으로부터 신경망에 의한 처리를 위한 특징 맵을 디코딩하기 위한 제1항 내지 제31항 중 어느 한 항에 따른 방법; 및
    상기 신경망으로 상기 디코딩된 특징 맵을 처리하는 것을 포함하는 디코딩된 이미지를 획득하는 단계
    를 포함하는 이미지 디코딩 방법.
  33. 제32항에 있어서,
    상기 특징 맵은,
    · 코딩된 이미지 데이터, 및/또는
    · 상기 이미지 데이터를 디코딩하기 위한 코딩된 사이드 정보
    를 나타내는, 이미지 디코딩 방법.
  34. 컴퓨터 비전을 위한 방법으로서,
    비트스트림으로부터 신경망에 의한 처리를 위한 특징 맵을 디코딩하기 위한 제1항 내지 제31항 중 어느 한 항에 따른 방법; 및
    상기 신경망으로 상기 디코딩된 특징 맵을 처리하는 것을 포함하는 컴퓨터 비전 작업을 수행하는 단계
    를 포함하는 컴퓨터 비전을 위한 방법.
  35. 제32항에 있어서,
    상기 컴퓨터 비전 작업은 객체 검출, 객체 분류 및/또는 객체 인식인,
    컴퓨터 비전을 위한 방법.
  36. 신경망 처리를 위한 특징 맵을 비트스트림으로 인코딩하는 방법으로서,
    상기 특징 맵의 영역에 대해 영역 존재 지시자를 획득하는 단계(S160),
    상기 획득된 영역 존재 지시자에 기초하여 결정을 구현하는 단계(S170) ― 상기 결정은,
    상기 영역 존재 지시자가 제1 값을 갖는 경우, 상기 특징 맵의 영역을 상기 비트스트림으로 인코딩하는 결정(S180);
    또는 상기 영역 존재 지시자가 제2 값을 갖는 경우, 상기 특징 맵의 영역을 상기 비트스트림으로 인코딩하는 것을 바이패스하는 결정(S190)임 ―
    를 포함하는 특징 맵을 비트스트림으로 인코딩하는 방법.
  37. 제36항에 있어서,
    상기 영역 존재 지시자는 상기 비트스트림에서 지시되는,
    특징 맵을 비트스트림으로 인코딩하는 방법.
  38. 제36항에 있어서,
    상기 결정을 구현하는 단계(S170)는 상기 영역의 특징값을 평가하는 단계를 포함하는,
    특징 맵을 비트스트림으로 인코딩하는 방법.
  39. 제36항 내지 제38항 중 어느 한 항에 있어서,
    상기 결정을 구현하는 단계(S170)는 상기 신경망 처리 결과의 품질에 대한 상기 영역의 영향에 기초하는,
    특징 맵을 비트스트림으로 인코딩하는 방법.
  40. 제36항 내지 제39항 중 어느 한 항에 있어서,
    상기 결정을 구현하는 단계(S170)는,
    상기 특징 맵의 전송에 필요한 비트의 합을 최상위 중요 영역의 비트부터 시작하여 중요도를 감소시키는 영역으로 계속하여 상기 합이 미리 구성된 임계값을 초과할 때까지 증분적으로 결정하는 단계(S450),
    상기 합이 상기 미리 구성된 임계값을 초과하지 않는 영역과 상기 인코딩된 영역에 대한 제1 값을 갖는 상기 영역 존재 지시자를 인코딩하는 단계(S270, S280),
    인코딩되지 않은 영역에 대해 상기 제2 값을 갖는 영역 존재 지시자를 인코딩하는 단계(S470)
    를 포함하는 특징 맵을 비트스트림으로 인코딩하는 방법.
  41. 신경망에 의한 처리를 위한 특징 맵을 비트스트림으로 인코딩하는 방법으로서,
    상기 특징 맵을 획득하는 단계(S360);
    상기 특징 맵에 관하여 상기 비트스트림에서 지시하는 사이드 정보를 지시할지 여부를 결정하는 단계(S370) ― 상기 사이드 정보는 상기 비트스트림에서,
    제3 값 및 상기 사이드 정보를 지시하는 사이드 정보 지시자(S380),
    또는 상기 사이드 정보 없이 제4 값을 지시하는 사이드 정보 지시자(S390) 중 어느 하나
    를 지시함 ―
    를 포함하는 특징 맵을 비트스트림으로 인코딩하는 방법.
  42. 컴퓨터 프로그램으로서,
    하나 이상의 프로세서에서 실행될 때 제1항 내지 제41항 중 어느 한 항에 따른 방법의 단계를 수행하는 코드를 포함하는 비일시적 매체에 저장되는,
    컴퓨터 프로그램.
  43. 비트스트림에 기초한 신경망에 의한 처리를 위한 특징 맵을 디코딩하는 장치(2300)로서,
    상기 특징 맵의 영역에 대해, 상기 비트스트림으로부터의 정보에 기초하여 영역 존재 지시자를 획득하도록 구성된 영역 존재 지시자 획득 모듈(2310),
    상기 영역을 디코딩하도록 구성된 디코딩 모듈(2320) ― 상기 디코딩 모듈(2320)은,
    상기 영역 존재 지시자가 제1 값을 갖는 경우 상기 영역을 디코딩하기 위해 상기 비트스트림으로부터 데이터를 파싱하고,
    상기 영역 존재 지시자가 제2 값을 갖는 경우 상기 영역을 디코딩하기 위해 상기 비트스트림으로부터의 데이터 파싱을 바이패스함 ―
    을 포함하는 장치(2300).
  44. 비트스트림으로부터 신경망에 의한 처리를 위한 특징 맵을 디코딩하기 위한 장치(2400)로서,
    상기 비트스트림으로부터 상기 특징 맵에 관한 사이드 정보 지시자를 획득하도록 구성된 사이드 정보 지시자 획득 모듈(2410);
    상기 특징 맵을 디코딩하도록 구성된 디코딩 모듈(2420) ― 상기 디코딩 모듈(2420)은,
    상기 사이드 정보 지시자가 제5 값을 갖는 경우, 상기 비트스트림으로부터 상기 특징 맵을 디코딩하기 위한 사이드 정보를 파싱하고,
    상기 사이드 정보 지시자가 제6 값을 갖는 경우, 상기 비트스트림으로부터 상기 특징 맵을 디코딩하기 위한 사이드 정보의 파싱을 바이패스함 ―
    을 포함하는 장치(2400).
  45. 신경망에 의한 처리를 위한 특징 맵을 비트스트림으로 인코딩하는 장치(2350)로서,
    특징 맵 영역 존재 지시자를 획득하도록 구성된 특징 맵 영역 존재 지시자 획득 모듈(2360),
    상기 획득된 특징 맵 영역 존재 지시자에 기초하여 결정을 구현하도록 구성된 인코딩 제어 모듈(2370) ― 상기 인코딩 제어 모듈(2370)은,
    상기 특징 맵 영역 존재 지시자가 제1 값을 갖는 경우, 상기 특징 맵의 영역을 상기 비트스트림으로 인코딩하고,
    상기 특징 맵 영역 존재 지시자가 제2 값을 갖는 경우, 상기 특징 맵의 영역을 상기 비트스트림으로 인코딩하는 것을 바이패스함 ―
    을 포함하는 장치(2350).
  46. 신경망에 의한 처리를 위한 특징 맵을 비트스트림으로 인코딩하는 장치(2450)로서,
    상기 특징 맵을 획득하도록 구성된 특징 맵 획득 모듈(2460);
    상기 특징 맵에 관하여 상기 비트스트림에서 지시하는 사이드 정보를 지시할지 여부를 결정하도록 구성된 인코딩 제어 모듈(2470) ― 상기 사이드 정보는 상기 비트스트림에서,
    제3 값 및 상기 사이드 정보를 지시하는 사이드 정보 지시자,
    또는 상기 사이드 정보 없이 제4 값을 지시하는 사이드 정보 지시자 중 어느 하나
    를 지시함 ―
    을 포함하는 장치(2450).
  47. 비트스트림에 기초하여 신경망에 의한 처리를 위한 특징 맵을 디코딩하는 장치로서,
    제1항 내지 제31항 중 어느 한 항에 따른 방법의 단계를 수행하도록 구성된 처리 회로를 포함하는,
    장치.
  48. 신경망에 의한 처리를 위한 특징 맵을 비트스트림으로 인코딩하는 장치로서,
    제36항 내지 제41항 중 어느 한 항에 따른 방법의 단계를 수행하도록 구성된 처리 회로를 포함하는,
    장치.
KR1020237007294A 2020-10-20 2021-10-20 특징 맵 데이터의 시그널링 KR20230046310A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
RU2020000559 2020-10-20
RUPCT/RU2020/000559 2020-10-20
PCT/RU2021/050347 WO2022086376A1 (en) 2020-10-20 2021-10-20 Signaling of feature map data

Publications (1)

Publication Number Publication Date
KR20230046310A true KR20230046310A (ko) 2023-04-05

Family

ID=81290913

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237007294A KR20230046310A (ko) 2020-10-20 2021-10-20 특징 맵 데이터의 시그널링

Country Status (7)

Country Link
US (1) US20230262243A1 (ko)
EP (1) EP4197193A1 (ko)
JP (1) JP2023542876A (ko)
KR (1) KR20230046310A (ko)
CN (1) CN116917926A (ko)
TW (1) TWI806199B (ko)
WO (1) WO2022086376A1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024015639A1 (en) * 2022-07-15 2024-01-18 Bytedance Inc. Neural network-based image and video compression method with parallel processing
WO2024017173A1 (en) * 2022-07-16 2024-01-25 Douyin Vision (Beijing) Co., Ltd. Method, apparatus, and medium for visual data processing
WO2024057721A1 (ja) * 2022-09-16 2024-03-21 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 復号装置、符号化装置、復号方法、及び符号化方法
WO2024078920A1 (en) * 2022-10-12 2024-04-18 Interdigital Ce Patent Holdings, Sas Latent coding for end-to-end image/video compression
WO2024080623A1 (ko) * 2022-10-12 2024-04-18 삼성전자 주식회사 Ai에 기반한 영상 부호화 장치 및 영상 복호화 장치, 및 이들에 의한 영상의 부호화 및 복호화 방법

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9137664B2 (en) * 2007-05-01 2015-09-15 Qualcomm Incorporated Application logging interface for a mobile device
US20160358069A1 (en) * 2015-06-03 2016-12-08 Samsung Electronics Co., Ltd. Neural network suppression
WO2019009448A1 (ko) * 2017-07-06 2019-01-10 삼성전자 주식회사 영상을 부호화 또는 복호화하는 방법 및 장치
US10869036B2 (en) * 2018-09-18 2020-12-15 Google Llc Receptive-field-conforming convolutional models for video coding
CN110971901B (zh) * 2018-09-29 2022-08-02 杭州海康威视数字技术股份有限公司 卷积神经网络的处理方法、装置、设备及存储介质
US11159789B2 (en) * 2018-10-24 2021-10-26 City University Of Hong Kong Generative adversarial network based intra prediction for video coding
EP3672241A1 (en) * 2018-12-17 2020-06-24 Nokia Technologies Oy A method, an apparatus and a computer program product for video encoding and video decoding
US11019360B2 (en) * 2019-03-21 2021-05-25 Qualcomm Incorporated Generalized reference sample derivation methods for intra prediction in video coding
US11843784B2 (en) * 2019-09-25 2023-12-12 Intel Corporation Method and system of multiple channel video coding with cross-channel referencing

Also Published As

Publication number Publication date
TW202223762A (zh) 2022-06-16
CN116917926A (zh) 2023-10-20
JP2023542876A (ja) 2023-10-12
US20230262243A1 (en) 2023-08-17
WO2022086376A1 (en) 2022-04-28
TWI806199B (zh) 2023-06-21
EP4197193A1 (en) 2023-06-21

Similar Documents

Publication Publication Date Title
KR20230046310A (ko) 특징 맵 데이터의 시그널링
US20230336758A1 (en) Encoding with signaling of feature map data
US20230336759A1 (en) Decoding with signaling of segmentation information
US20230353764A1 (en) Method and apparatus for decoding with signaling of feature map data
US20230336776A1 (en) Method for chroma subsampled formats handling in machine-learning-based picture coding
US20230336736A1 (en) Method for chroma subsampled formats handling in machine-learning-based picture coding
US20240064318A1 (en) Apparatus and method for coding pictures using a convolutional neural network
TW202348029A (zh) 使用限幅輸入數據操作神經網路
TW202318265A (zh) 基於注意力的圖像和視訊壓縮上下文建模
KR20240050435A (ko) 조건부 이미지 압축
WO2023172153A1 (en) Method of video coding by multi-modal processing
WO2023177318A1 (en) Neural network with approximated activation function
WO2024005660A1 (en) Method and apparatus for image encoding and decoding
WO2023121499A1 (en) Methods and apparatus for approximating a cumulative distribution function for use in entropy coding or decoding data
WO2024005659A1 (en) Adaptive selection of entropy coding parameters
KR20240071400A (ko) 가변 보조 입력을 이용하는 트랜스포머 기반 신경망
Abbas Adapting Computer Vision Models To Limitations On Input Dimensionality And Model Complexity
WO2024083405A1 (en) Neural network with a variable number of channels and method of operating the same
TW202345034A (zh) 使用條件權重操作神經網路
TW202416712A (zh) 使用神經網路進行圖像區域的並行處理-解碼、後濾波和rdoq