KR20220166844A - 다중 품질 루프 필터를 위한 마이크로구조화된 파라미터 공유에 의한 다중 작업 신경 네트워크 - Google Patents

다중 품질 루프 필터를 위한 마이크로구조화된 파라미터 공유에 의한 다중 작업 신경 네트워크 Download PDF

Info

Publication number
KR20220166844A
KR20220166844A KR1020227039141A KR20227039141A KR20220166844A KR 20220166844 A KR20220166844 A KR 20220166844A KR 1020227039141 A KR1020227039141 A KR 1020227039141A KR 20227039141 A KR20227039141 A KR 20227039141A KR 20220166844 A KR20220166844 A KR 20220166844A
Authority
KR
South Korea
Prior art keywords
weight parameters
masks
neural network
layers
quantization parameter
Prior art date
Application number
KR1020227039141A
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 KR20220166844A publication Critical patent/KR20220166844A/ko

Links

Images

Classifications

    • G06N3/0454
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • 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
    • 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/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/146Data rate or code amount at the encoder output
    • 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/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness

Landscapes

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

Abstract

다중 작업 신경 네트워크를 사용하는 다중 품질 루프 필터에 의한 비디오 처리는 적어도 하나의 프로세서에 의해 수행되고 공유된 신경 네트워크 계층들의 제1 세트에 대해, 마스크들의 대응하는 제1 세트 및 제1 복수의 가중치 파라미터와 함께 입력 및 복수의 양자화 파라미터 값에 기초하여, 마스킹된 가중치 파라미터들의 제1 세트를 발생시키는 것, 복수의 양자화 파라미터 값에 기초하여, 제2 복수의 가중치 파라미터로 복수의 양자화 파라미터 값에 대한 작업 특정 신경 네트워크 계층들의 제2 세트를 선택하는 것, 마스킹된 가중치 파라미터들의 제1 세트 및 제2 복수의 가중치 파라미터에 기초하여, 추론 출력을 계산하는 것, 및 계산된 추론 출력을 향상된 결과로서 출력하는 것을 포함한다.

Description

다중 품질 루프 필터를 위한 마이크로구조화된 파라미터 공유에 의한 다중 작업 신경 네트워크
H.264/고도 비디오 코딩(H.264/Advanced Video Coding)(H.264/AVC), 고효율 비디오 코딩(High-Efficiency Video Coding)(HEVC) 및 다목적 비디오 코딩(Versatile Video Coding)(VVC)과 같은, 종래의 비디오 코딩 표준들은 인트라/인터 예측, 정수 변환들, 및 맥락 적응 엔트로피 코딩과 같은 개별 코딩 도구들이 전체 효율을 최적화하기 위해 집약적으로 핸드크래프트되는 유사한(재귀적) 블록 기반 하이브리드 예측/변환 프레임워크를 공유한다. 시공간 픽셀 이웃들은 후속 변환, 양자화, 및 엔트로피 코딩을 위한 대응하는 잔차들을 획득하기 위해, 예측 신호 구성에 대해 강화된다. 다른 한편, 신경 네트워크들(Neural Networks)(NN)의 본질은 이웃 픽셀들의 수용 필드로부터 시공간 정보를 분석함으로써 상이한 레벨들의 시공간 자극들을 추출하는 것이다. 높은 비선형 및 비국부적 시공간 상관들을 탐구하는 능력은 크게 개선된 압축 품질을 위한 유망한 기회를 제공한다.
손실 비디오 압축에서, 압축된 비디오는 필연적으로 압축 아티팩트들을 겪으며, 이는 체감 품질(Quality of Experience)(QoE)을 심하게 저하시킨다. 실제로 용인되는 왜곡의 양은 적용들에 의존하고, 일반적으로, 압축 비가 더 높을수록, 왜곡이 더 커진다. 압축 품질을 제어하는 많은 방식들이 있다. 예를 들어, 양자화 파라미터(Quantization Parameter)(QP)는 양자화 스텝 크기를 결정한다. QP 값이 더 클수록, 양자화 스텝 크기가 더 커지고, 왜곡이 더 커진다. 사용자들의 상이한 요청들을 수용하기 위해, 비디오 코딩 방법은 상이한 압축 품질들을 갖는 비디오들을 압축하는 능력을 필요로 한다. 예를 들어, VVC는 QP 값이 0과 63 사이에서 변화되는 것을 허용한다.
실시예들에 따르면, 마이크로구조화된 파라미터 공유에 기초하여, 마스킹된 다중 작업 신경 네트워크를 사용하는 다중 품질 루프 필터 비디오 압축의 방법은 적어도 하나의 프로세서에 의해 수행되고 신경 네트워크의 계층들의 제1 세트에 대해, 마스크들의 제1 세트 및 제1 복수의 가중치 파라미터와 함께 입력 및 복수의 양자화 파라미터 값에 기초하여, 마스킹된 가중치 파라미터들의 제1 세트를 발생시키는 단계, 복수의 양자화 파라미터 값에 기초하여, 제2 복수의 가중치 파라미터로 복수의 양자화 파라미터 값에 대한 신경 네트워크의 계층들의 제2 세트를 선택하는 단계, 및 마스킹된 가중치 파라미터들의 제1 세트 및 제2 복수의 가중치 파라미터에 기초하여, 추론 출력을 계산 및 출력하는 단계를 포함한다.
실시예들에 따르면, 마이크로구조화된 파라미터 공유에 기초하여 마스킹된 다중 작업 신경 네트워크를 사용하는 다중 품질 루프 필터 비디오 압축의 장치는 프로그램 코드를 저장하도록 구성된 적어도 하나의 메모리, 및 프로그램 코드를 판독하고 프로그램 코드에 의해 명령되는 바와 같이 동작하도록 구성된 적어도 하나의 프로세서를 포함한다. 프로그램 코드는 적어도 하나의 프로세서로 하여금 신경 네트워크의 계층들의 제1 세트에 대해, 마스크들의 제1 세트 및 제1 복수의 가중치 파라미터와 함께 입력 및 복수의 양자화 파라미터 값에 기초하여, 마스킹된 가중치 파라미터들의 제1 세트를 발생시키게 하도록 구성된 발생 코드, 적어도 하나의 프로세서로 하여금 복수의 양자화 파라미터 값에 기초하여, 제2 복수의 가중치 파라미터로 복수의 양자화 파라미터 값에 대한 신경 네트워크의 계층들의 제2 세트를 선택하게 하도록 구성된 제1 선택 코드, 적어도 하나의 프로세서로 하여금 마스킹된 가중치 파라미터들의 제1 세트 및 제2 복수의 가중치 파라미터에 기초하여, 추론 출력을 계산하게 하도록 구성된 컴퓨팅 코드; 및 적어도 하나의 프로세서로 하여금 계산된 추론 출력을 출력하게 하도록 구성된 출력 코드를 포함한다.
실시예들에 따르면, 비일시적 컴퓨터 판독가능 매체는 명령어들을 저장하며, 명령어들은 다중 작업 신경 네트워크를 사용하여 다중 품질 루프 필터에 의해 비디오를 처리하기 위해 적어도 하나의 프로세서에 의해 실행될 때, 적어도 하나의 프로세서로 하여금 신경 네트워크의 계층들의 제1 세트에 대해, 마스크들의 제1 세트 및 제1 복수의 가중치 파라미터와 함께 입력 및 복수의 양자화 파라미터 값에 기초하여, 마스킹된 가중치 파라미터들의 제1 세트를 발생시키게 하고, 복수의 양자화 파라미터 값에 기초하여, 제2 복수의 가중치 파라미터로 복수의 양자화 파라미터 값에 대한 신경 네트워크의 계층들의 제2 세트를 선택하게 하고, 마스킹된 가중치 파라미터들의 제1 세트 및 제2 복수의 가중치 파라미터에 기초하여, 추론 출력을 계산하게 하고, 계산된 추론 출력을 출력하게 한다.
도 1은 실시예들에 따라, 본원에 설명된 방법들, 장치들 및 시스템들이 구현될 수 있는 환경의 도해이다.
도 2는 도 1의 하나 이상의 디바이스의 예시적인 구성요소들의 블록도이다.
도 3은 실시예들에 따라, 테스트 스테이지 동안, 마이크로구조화된 마스크들을 사용하는 비디오 압축의 다중 품질 루프 필터(Multi-Quality Loop Filter)(MQLF) 방법을 위한 다중 작업 신경 네트워크(Multi-Task Neural Network)(MTNN)의 추론의 블록도이다.
도 4는 실시예들에 따라, 트레이닝 스테이지 동안, 마이크로구조화된 마스크들을 사용하는 다중 작업 신경 네트워크 비디오 압축을 위한 트레이닝 장치의 블록도이다.
도 5는 실시예들에 따라, 트레이닝 스테이지 동안, 도 4의 트레이닝 장치로부터의 가중치 필링 모듈의 상세 블록도이다.
도 6은 실시예들에 따라, 트레이닝 스테이지 동안, 도 4의 트레이닝 장치로부터의 마이크로구조화된 프루닝 모듈의 상세 블록도이다.
도 7은 실시예들에 따라, 공유된 다중 작업 계층들, 작업 특정 계층들 및 마이크로구조화된 마스크들과 함께, MTNN을 사용하는 MQLF에 의한 비디오 압축을 위한 방법의 흐름도이다.
도 8은 실시예들에 따라, 공유된 다중 작업 계층들, 작업 특정 계층들 및 마이크로구조화된 마스크들과 함께, MTNN을 사용하는 MQLF에 의한 비디오 압축을 위한 장치의 블록도이다.
심층 신경 네트워크(Deep Neural Network)(DNN) 기반 방법들은 비디오 잡음제거, 초해상도, 디블러링, 블록해제 등과 같은, 압축된 비디오의 시각 품질을 성공적으로 향상시키기 위해 개발되었다. 그러나, 그것은 다수의 QP를 수용하는 NN 기반 품질 향상 방법들에 대한 도전 이슈이었다. 전통적으로, 각각의 QP 값은 개별 작업으로서 처리되고 하나의 NN 모델 인스턴스는 각각의 QP 값에 대해 트레이닝되고 전개된다. 다수의 QP 값에 의해 야기되는 저장 및 계산 비용들을 감소시키는 것이 중요하다.
p개의 QP 값(qp1, ...qpp)의 세트를 고려하면, 하나의 해결책은 모든 p개의 값을 구별하지 않고 하나의 세트로서 처리하고, 따라서 상이한 QP 값들의 트레이닝 데이터를 조합함으로써 모든 p개의 값에 대한 하나의 NN 모델 인스턴스를 트레이닝하는 것이다. 개선된 해결책은 QP 값(qpi)을 NN 모델의 추가 입력으로서 사용하고 상이한 QP 값들의 조합된 트레이닝 데이터로 하나의 NN 모델 인스턴스를 트레이닝하는 것이다. QP 값들을 입력들로서 사용함으로써, NN 모델 인스턴스가 데이터 샘플들의 서브그룹들의 분포를 암시적으로 모델링하기 위해 그의 파라미터들을 조직하는 것을 자동으로 학습하는 점을 희망하며, 하나는 각각의 QP 값에 대응한다.
실시예들은 마이크로구조화된 파라미터 공유에 기초하여 다중 작업 신경 네트워크(MTNN)를 사용함으로써 다중 품질 루프 필터(MQLF) 메커니즘에 관련될 수 있다. 하나의 MTNN 모델 인스턴스는 다수의 QP 값을 수용하기 위해 사용되며, 이진 마이크로구조화된 마스크(Micro-Structured Mask)(MSM)는 그러한 QP 값에 대한 MTNN의 추론 계산을 명시적으로 가이드하기 위해 각각의 QP 값과 연관된다.
따라서, 본 개시의 실시예들은 잡음들, 블러, 및 블록 효과들과 같은 하나 이상의 유형의 아티팩트들을 감소시키기 위해 디코딩된 비디오를 처리하기 위한 다중 품질 루프 필터(MQLF) 메커니즘을 사용하는 방법 및 장치를 설명할 수 있다. 마이크로구조화된 파라미터 공유에 기초한 다중 작업 신경 네트워크(MTNN)가 제안되며, 여기서 하나의 MTNN 모델 인스턴스는 다수의 양자화 파라미터(QP) 값을 수용하기 위해 사용되고, 하나의 마이크로구조화된 마스크(MSM)는 그러한 QP 값에 대한 MTNN의 추론 계산을 명시적으로 가이드하기 위해 각각의 QP 값에 할당된다.
도 1은 실시예들에 따라, 본원에 설명된 방법들, 장치들 및 시스템들이 구현될 수 있는 환경(100)의 도해이다.
도 1에 도시된 바와 같이, 환경(100)은 사용자 디바이스(110), 플랫폼(120), 및 네트워크(130)를 포함할 수 있다. 환경(100)의 디바이스들은 유선 연결들, 무선 연결들, 또는 유선 및 무선 연결들의 조합을 통해 상호연결될 수 있다.
사용자 디바이스(110)는 플랫폼(120)과 연관된 정보를 수신, 발생, 저장, 처리, 및/또는 제공할 수 있는 하나 이상의 디바이스를 포함한다. 예를 들어, 사용자 디바이스(110)는 컴퓨팅 디바이스(예를 들어, 데스크톱 컴퓨터, 랩톱 컴퓨터, 태블릿 컴퓨터, 핸드헬드 컴퓨터, 스마트 스피커, 서버 등), 이동 전화(예를 들어, 스마트폰, 무선전화 등), 웨어러블 디바이스(예를 들어, 한 쌍의 스마트 글래스 또는 스마트 워치), 또는 유사한 디바이스를 포함할 수 있다. 일부 구현들에서, 사용자 디바이스(110)는 플랫폼(120)으로부터 정보를 수신하고/하거나 정보를 플랫폼에 송신할 수 있다.
플랫폼(120)은 본원의 다른 곳에서 설명된 바와 같이 하나 이상의 디바이스를 포함한다. 일부 구현들에서, 플랫폼(120)은 클라우드 서버 또는 클라우드 서버들의 그룹을 포함할 수 있다. 일부 구현들에서, 플랫폼(120)은 소프트웨어 구성요소들이 바꿔 넣어지거나 옮겨 비워질 수 있도록 모듈식으로 디자인될 수 있다. 그와 같이, 플랫폼(120)은 상이한 사용들을 위해 용이하게 그리고/또는 빠르게 재구성될 수 있다.
일부 구현들에서, 도시된 바와 같이, 플랫폼(120)은 클라우드 컴퓨팅 환경(122)에서 호스팅될 수 있다. 특히, 본원에 설명된 구현들이 클라우드 컴퓨팅 환경(122)에서 호스팅되는 것으로서 플랫폼(120)을 설명하지만, 일부 구현들에서, 플랫폼(120)은 클라우드 기반이 아닐 수 있거나(즉, 클라우드 컴퓨팅 환경 외부에 구현될 수 있거나) 부분적으로 클라우드 기반일 수 있다.
클라우드 컴퓨팅 환경(122)은 플랫폼(120)을 호스팅하는 환경을 포함한다. 클라우드 컴퓨팅 환경(122)은 플랫폼(120)을 호스팅하는 시스템(들) 및/또는 디바이스(들)의 물리적 위치 및 구성의 최종 사용자(예를 들어, 사용자 디바이스(110)) 지식을 필요로 하지 않는 계산, 소프트웨어, 데이터 액세스, 저장 등의 서비스들을 제공할 수 있다. 도시된 바와 같이, 클라우드 컴퓨팅 환경(122)은 컴퓨팅 자원들(124)(집합적으로 "컴퓨팅 자원들(124)"로 지칭되고 개별적으로 "컴퓨팅 자원(124)"으로 지칭됨)의 그룹을 포함할 수 있다.
컴퓨팅 자원(124)은 하나 이상의 개인용 컴퓨터, 워크스테이션 컴퓨터, 서버 디바이스, 또는 다른 유형들의 계산 및/또는 통신 디바이스들을 포함한다. 일부 구현들에서, 컴퓨팅 자원(124)은 플랫폼(120)을 호스팅할 수 있다. 클라우드 자원들은 컴퓨팅 자원(124)에서 실행되는 컴퓨트 인스턴스들, 컴퓨팅 자원(124)에서 제공되는 저장 디바이스들, 컴퓨팅 자원(124)에 의해 제공되는 데이터 전송 디바이스들 등을 포함할 수 있다. 일부 구현들에서, 컴퓨팅 자원(124)은 유선 연결들, 무선 연결들, 또는 유선 및 무선 연결들의 조합의 조합을 통해 다른 컴퓨팅 자원들(124)과 통신할 수 있다.
도 1에 추가로 도시된 바와 같이, 컴퓨팅 자원(124)은 하나 이상의 애플리케이션("APP")(124-1), 하나 이상의 가상 머신("VM")(124-2), 가상화 스토리지("VS")(124-3), 하나 이상의 하이퍼바이저("HYP")(124-4) 등과 같은, 클라우드 자원들의 그룹을 포함한다.
애플리케이션(124-1)은 사용자 디바이스(110) 및/또는 플랫폼(120)에 제공되거나 이들에 의해 액세스될 수 있는 하나 이상의 소프트웨어 애플리케이션을 포함한다. 애플리케이션(124-1)은 사용자 디바이스(110) 상에 소프트웨어 애플리케이션들을 설치하고 실행할 필요를 제거할 수 있다. 예를 들어, 애플리케이션(124-1)은 플랫폼(120)과 연관된 소프트웨어 및/또는 클라우드 컴퓨팅 환경(122)을 통해 제공될 수 있는 임의의 다른 소프트웨어를 포함할 수 있다. 일부 구현들에서, 하나의 애플리케이션(124-1)은 가상 머신(124-2)을 통해, 하나 이상의 다른 애플리케이션(124-1)으로/으로부터 정보를 송신/수신할 수 있다.
가상 머신(124-2)은 물리 머신과 같은 프로그램들을 실행하는 머신(예를 들어, 컴퓨터)의 소프트웨어 구현을 포함한다. 가상 머신(124-2)은 가상 머신(124-2)에 의한 임의의 실제 머신에의 사용 및 대응 정도에 따라, 시스템 가상 머신 또는 프로세스 가상 머신일 수 있다. 시스템 가상 머신은 완전한 운영 시스템(operating system)("OS")의 실행을 지원하는 완전한 시스템 플랫폼을 제공할 수 있다. 프로세스 가상 머신은 단일 프로그램을 실행할 수 있고, 단일 프로세스를 지원할 수 있다. 일부 구현들에서, 가상 머신(124-2)은 사용자(예를 들어, 사용자 디바이스(110))를 대신하여 실행할 수 있고, 데이터 관리, 동기화, 또는 긴 지속기간 데이터 전송들과 같은, 클라우드 컴퓨팅 환경(122)의 인프라스트럭처를 관리할 수 있다.
가상화 스토리지(124-3)는 컴퓨팅 자원(124)의 저장 시스템들 또는 디바이스들 내에 가상화 기술들을 사용하는 하나 이상의 저장 시스템 및/또는 하나 이상의 디바이스를 포함한다. 일부 구현들에서, 저장 시스템의 맥락에서, 가상화들의 유형들은 블록 가상화 및 파일 가상화를 포함할 수 있다. 블록 가상화는 저장 시스템이 물리적 스토리지 또는 이종 구조에 상관없이 액세스될 수 있도록 물리적 스토리지로부터 논리적 스토리지의 추상화(또는 분리)를 지칭할 수 있다. 분리는 관리자들이 최종 사용자들을 위한 스토리지를 관리하는 방법에서 저장 시스템 유연성을 관리자들에게 허가할 수 있다. 파일 가상화는 파일 레벨에서 액세스되는 데이터와 파일들이 물리적으로 저장되는 위치 사이의 종속성들을 제거할 수 있다. 이것은 스토리지 사용, 서버 통합, 및/또는 무중단 파일 이송 성능의 최적화를 가능하게 할 수 있다.
하이퍼바이저(124-4)는 다수의 운영 시스템(예를 들어, "게스트 운영 시스템들")이 컴퓨팅 자원(124)과 같은 호스트 컴퓨터 상에서 동시에 실행하는 것을 허용하는 하드웨어 가상화 기술들을 제공할 수 있다. 하이퍼바이저(124-4)는 가상 운영 플랫폼을 게스트 운영 시스템들에 제공할 수 있고, 게스트 운영 시스템들의 실행을 관리할 수 있다. 다양한 운영 시스템들의 다수의 인스턴스는 가상화 하드웨어 자원들을 공유할 수 있다.
네트워크(130)는 하나 이상의 유선 및/또는 무선 네트워크를 포함한다. 예를 들어, 네트워크(130)는 셀룰러 네트워크(예를 들어, 제5세대(fifth generation)(5G) 네트워크, 롱 텀 에볼루션(long-term evolution)(LTE) 네트워크, 제3세대(third generation)(3G) 네트워크, 코드 분할 다중 액세스(code division multiple access)(CDMA) 네트워크 등), 공중 육상 이동 네트워크(public land mobile network)(PLMN), 근거리 네트워크(local area network)(LAN), 광역 네트워크(wide area network)(WAN), 대도시 통신 네트워크(metropolitan area network)(MAN), 전화 네트워크(예를 들어, 공중 교환 전화 네트워크(Public Switched Telephone Network)(PSTN)), 개인 네트워크, 애드 혹 네트워크, 인트라넷, 인터넷, 광섬유 기반 네트워크 등, 및/또는 이들 또는 다른 유형들의 네트워크들의 조합을 포함할 수 있다.
도 1에 도시된 디바이스들 및 네트워크들의 수 및 배열은 일 예로서 제공된다. 실제로, 추가적인 디바이스들 및/또는 네트워크들, 보다 소수의 디바이스들 및/또는 네트워크들, 상이한 디바이스들 및/또는 네트워크들, 또는 도 1에 도시된 것들과 상이하게 배열된 디바이스들 및/또는 네트워크들이 있을 수 있다. 더욱이, 도 1에 도시된 2개 이상의 디바이스는 단일 디바이스 내에 구현될 수 있거나, 도 1에 도시된 단일 디바이스는 다수의 분산 디바이스로서 구현될 수 있다. 추가적으로, 또는 대안적으로, 환경(100)의 디바이스들(예를 들어, 하나 이상의 디바이스)의 세트는 환경(100)의 디바이스들의 다른 세트에 의해 수행되는 것으로 설명된 하나 이상의 기능을 수행할 수 있다.
도 2는 도 1의 하나 이상의 디바이스의 예시적인 구성요소들의 블록도이다.
디바이스(200)는 사용자 디바이스(110) 및/또는 플랫폼(120)에 대응할 수 있다. 도 2에 도시된 바와 같이, 디바이스(200)는 버스(210), 프로세서(220), 메모리(230), 저장 구성요소(240), 입력 구성요소(250), 출력 구성요소(260), 및 통신 인터페이스(270)를 포함할 수 있다.
버스(210)는 디바이스(200)의 구성요소들 중에서 통신을 허가하는 구성요소를 포함한다. 프로세서(220)는 하드웨어, 펌웨어, 또는 하드웨어 및 소프트웨어의 조합으로 구현된다. 프로세서(220)는 중앙 처리 유닛(central processing unit)(CPU), 그래픽 처리 유닛(graphics processing unit)(GPU), 가속 처리 유닛(accelerated processing unit)(APU), 마이크로프로세서, 마이크로컨트롤러, 디지털 신호 프로세서(digital signal processor)(DSP), 필드 프로그램가능 게이트 어레이(field-programmable gate array)(FPGA), 주문형 집적 회로(application-specific integrated circuit)(ASIC), 또는 다른 유형의 처리 구성요소이다. 일부 구현들에서, 프로세서(220)는 기능을 수행하도록 프로그래밍될 수 있는 하나 이상의 프로세서를 포함한다. 메모리(230)는 프로세서(220)에 의한 사용을 위해 정보 및/또는 명령어들을 저장한 랜덤 액세스 메모리(random access memory)(RAM), 판독 전용 메모리(read only memory)(ROM), 및/또는 다른 유형의 동적 또는 정적 저장 디바이스(예를 들어, 플래시 메모리, 자기 메모리, 및/또는 광 메모리)를 포함한다.
저장 구성요소(240)는 디바이스(200)의 동작 및 사용에 관련된 정보 및/또는 소프트웨어를 저장한다. 예를 들어, 저장 구성요소(240)는 대응하는 드라이브와 함께, 하드 디스크(예를 들어, 자기 디스크, 광 디스크, 자기-광 디스크, 및/또는 고체 상태 디스크), 콤팩트 디스크(compact disc)(CD), 디지털 다기능 디스크(digital versatile disc)(DVD), 플로피 디스크, 카트리지, 자기 테이프, 및/또는 다른 유형의 비일시적 컴퓨터 판독가능 매체를 포함할 수 있다.
입력 구성요소(250)는 디바이스(200)가 예컨대 사용자 입력(예를 들어, 터치 스크린 디스플레이, 키보드, 키패드, 마우스, 버튼, 스위치, 및/또는 마이크로폰)을 통해, 정보를 수신하는 것을 허가하는 구성요소를 포함한다. 추가적으로, 또는 대안적으로, 입력 구성요소(250)는 정보를 감지하기 위한 센서(예를 들어, 위성 위치 확인 시스템(global positioning system)(GPS) 구성요소, 가속도계, 자이로스코프, 및/또는 액추에이터)를 포함할 수 있다. 출력 구성요소(260)는 디바이스(200)(예를 들어, 디스플레이, 스피커, 및/또는 하나 이상의 발광 다이오드(light-emitting diode)(LED))로부터 출력 정보를 제공하는 구성요소를 포함한다.
통신 인터페이스(270)는 디바이스(200)가 예컨대 유선 연결, 무선 연결, 또는 유선 및 무선 연결들의 조합을 통해, 다른 디바이스들과 통신할 수 있게 하는 트랜시버 유사(transceiver-like) 구성요소(예를 들어, 트랜시버 및/또는 개별적인 수신기 및 송신기)를 포함한다. 통신 인터페이스(270)는 디바이스(200)가 다른 디바이스로부터 정보를 수신하고/하거나 정보를 다른 디바이스에 제공하는 것을 허가할 수 있다. 예를 들어, 통신 인터페이스(270)는 이더넷 인터페이스, 광 인터페이스, 동축 인터페이스, 적외선 인터페이스, 라디오 주파수(radio frequency)(RF) 인터페이스, 범용 직렬 버스(universal serial bus)(USB) 인터페이스, Wi-Fi 인터페이스, 셀룰러 네트워크 인터페이스 등을 포함할 수 있다.
디바이스(200)는 본원에 설명된 하나 이상의 프로세스를 수행할 수 있다. 디바이스(200)는 프로세서(220)가 메모리(230) 및/또는 저장 구성요소(240)와 같은, 비일시적 컴퓨터 판독가능 매체에 의해 저장된 소프트웨어 명령어들을 실행하는 것에 응답하여 이들 프로세스들을 수행할 수 있다. 컴퓨터 판독가능 매체는 본원에 비일시적 메모리 디바이스로서 정의된다. 메모리 디바이스는 단일 물리 저장 디바이스 내의 메모리 공간 또는 다수의 물리 저장 디바이스에 걸쳐 확산된 메모리 공간을 포함한다.
소프트웨어 명령어들은 다른 컴퓨터 판독가능 매체 또는 다른 디바이스로부터 통신 인터페이스(270)를 통해 메모리(230) 및/또는 저장 구성요소(240) 내로 판독될 수 있다. 실행될 때, 메모리(230) 및/또는 저장 구성요소(240)에 저장된 소프트웨어 명령어들은 프로세서(220)로 하여금 본원에 설명된 하나 이상의 프로세스를 수행하게 할 수 있다. 추가적으로, 또는 대안적으로, 하드와이어드 회로는 본원에 설명된 하나 이상의 프로세스를 수행하기 위해 소프트웨어 명령어들을 대신하여 또는 소프트웨어 명령어들과 조합하여 사용될 수 있다. 따라서, 본원에 설명된 구현들은 하드웨어 회로 및 소프트웨어의 임의의 특정 조합으로 제한되지 않는다.
도 2에 도시된 구성요소들의 수 및 배열은 일 예로서 제공된다. 실제로, 디바이스(200)는 추가적인 구성요소들, 보다 소수의 구성요소들, 상이한 구성요소들, 또는 도 2에 도시된 것들과 상이하게 배열된 구성요소들을 포함할 수 있다. 추가적으로, 또는 대안적으로, 디바이스(200)의 구성요소들(예를 들어, 하나 이상의 구성요소)의 세트는 디바이스(200)의 구성요소들의 다른 세트에 의해 수행되는 것으로 설명된 하나 이상의 기능을 수행할 수 있다.
마이크로구조화된 파라미터 공유에 기초하여 마스킹된 다중 작업 신경 네트워크를 사용하는 다중 품질 루프 필터 비디오 압축을 위한 방법 및 장치가 이제 상세하게 설명될 것이다.
전형적인 비디오 압축 프레임워크는 이하와 같이 설명될 수 있다. 입력 비디오(x)가 복수의 이미지 프레임(x1, ..., xT)으로 구성되는 것을 가정한다. 제1 모션 추정 단계에서, 프레임들은 공간 블록들로 파티션되며, 각각의 블록은 더 작은 블록들로 반복적으로 파티션될 수 있고, 현재 프레임(xt)과 이전에 재구성된 프레임들(
Figure pct00001
)의 세트 사이의 모션 벡터들(mt)의 세트는 각각의 블록에 대해 계산된다. 아래첨자 t가 현재 t번째 인코딩 사이클을 나타내며, 이는 이미지 프레임들의 타임 스탬프와 매칭하지 않을 수 있다는 점을 주목한다. 또한, 이전에 재구성된 프레임들(
Figure pct00002
)은 다수의 이전 인코딩 사이클로부터 프레임들을 포함한다. 그 다음, 제2 모션 보상 단계에서, 예측된 프레임(
Figure pct00003
)은 모션 벡터들(mt), 및 원래 프레임(xt)과 예측된 프레임(
Figure pct00004
) 사이의 잔차(rt)에 기초하여 이전에 재구성된 프레임들(
Figure pct00005
)의 대응하는 픽셀들을 카피함으로써 획득된다. 제3 단계에서, 잔차(rt)는 (전형적으로 rt의 DCT 계수들이 더 양호한 양자화 성능을 달성하기 위해 양자화되는 DCT와 같은 변환 후에) 양자화된다. 양자화 단계는 양자화된 프레임(
Figure pct00006
)을 초래한다. 모션 벡터들(mt) 및 양자화된 프레임(
Figure pct00007
) 둘 다는 엔트로피 코딩에 의해 비트 스팀들로 인코딩되며, 이는 디코더들에 송신된다. 그 다음, 디코더 측 상에서, 양자화된 프레임(
Figure pct00008
)은 복구된 잔차(
Figure pct00009
)를 획득하기 위해 (전형적으로 역양자화된 계수들을 갖는 IDCT와 같은 역 변환을 통해) 역양자화된다. 그 다음, 복구된 잔차(
Figure pct00010
)는 재구성된 프레임(
Figure pct00011
)을 획득하기 위해 예측된 프레임(
Figure pct00012
)에 다시 추가된다.
추가적인 구성요소들은 재구성된 프레임(
Figure pct00013
)의 시각 품질을 개선하기 위해 추가로 사용된다. 이하의 향상 모듈들 중 하나 또는 다수는 블록해제 필터(Deblocking Filter)(DF), 샘플 적응 오프셋(Sample-Adaptive Offset)(SAO), 적응 루프 필터(Adaptive Loop Filter)(ALF), 상호 구성요소 적응 루프 필터(Cross-Component Adaptive Loop Filter)(CCALF) 등을 포함하여, 재구성된 프레임(
Figure pct00014
)을 처리하기 위해 선택될 수 있다. 선택된 모듈들의 처리 순서는 이에 제한되지 않고 변경될 수 있다.
본 개시의 실시예들은 재구성된 프레임(
Figure pct00015
)의 시각 품질을 향상시키기 위한 MQLF를 제안한다. 타깃은 재구성된 프레임(
Figure pct00016
)에서 잡음들, 블러, 블록 효과들과 같은 아티팩트들을 감소시켜, 고품질 프레임(
Figure pct00017
)을 초래하는 것이다. 구체적으로, MTNN은 고품질 프레임(
Figure pct00018
)을 계산하기 위해 사용되며, 하나의 모델 인스턴스는 다수의 QP 값을 수용할 수 있다. 이진 MSM은 그러한 QP 값에 대한 MTNN의 추론 계산을 가이드하기 위해 각각의 QP 값에 사용된다.
제안된 MQLF는 재구성된 프레임(
Figure pct00019
)의 시각 품질을 개선하기 위해 이전에 언급된 추가적인 구성요소들(즉, DF, SAO, ALF, CCALF 등) 중 하나 또는 다수와 조합하여 사용될 수 있다. 예를 들어, 재구성된 프레임(
Figure pct00020
)은 우선 DF를 거친 다음, MQLF가 이어지고, 이어서 추가로 SAO 및 ALF가 이어질 수 있다. 이들 구성요소들이 어떻게 사용되는지의 순서는 임의로 변경될 수 있다. 하나의 예시적인 실시예에서, 제안된 방법은 또한 재구성된 프레임(
Figure pct00021
)의 시각 품질을 향상시키기 위해 모든 다른 구성요소들의 대체로서 단독으로 사용될 수 있다.
MQLF는 위에 언급된 추가적인 구성요소들(예를 들어, DF, SAO, ALF, CCALF 등) 중 하나 또는 다수와 조합하여, 프레임들 각각 상에 대한 슬라이스/CU 레벨 둘 다에 사용될 수 있다. 다시 말해, 재구성된 프레임(
Figure pct00022
)은 계층 레벨 0 프레임들을 표시하여, 슬라이스 스위치 온으로 적용되면 I 프레임과 같은 하나의 전체 프레임일 수 있다. 또한, 재구성된 프레임(
Figure pct00023
)은 계층 구조의 하위 레벨 프레임들을 표시하여, CTU 스위치 온으로 적용되면 프레임 내의 블록, 예를 들어 CTU일 수 있다. 재구성된 프레임(
Figure pct00024
)을 계산하는 특정 비디오 압축 방법들(예를 들어, HEVC, VVC)에 대한 어떠한 제한들도 없다.
도 3은 실시예들에 따라, 테스트 스테이지 동안, 다중 품질 루프 필터(MQLF) 장치(300)에 대한 마이크로구조화된 파라미터 공유에 의한 다중 작업 신경 네트워크(MTNN)의 추론의 블록도이다.
도 3에 도시된 바와 같이, 테스트 장치(300)는 MTNN 추론 모듈(310)을 포함한다.
크기(h, w, c)의 입력(
Figure pct00025
)을 고려하면, 여기서 h, w, c는 각각 채널들의 높이, 폭, 및 수이며, MQLF의 추론 작업흐름의 테스트 스테이지는 이하와 같이 설명될 수 있다.
MQLF는 2개의 부분으로 분리될 수 있는 MTNN을 사용한다: 공유된 다중 작업 계층들(Shared Multi-Task Layers)(SMTL)의 세트 및 작업 특정 계층들(Task-Specific Layers)(TSL)의 세트. SMTL의 모델 파라미터들은 상이한 QP 값들에 걸쳐 공유된다(즉, 이 값들에 대해 동일하다). TSL의 모델 파라미터들은 개별적으로 각각의 QP 값에 대한 것이다. 순서대로 순위화되는, 바람직하게는 입력 프레임(
Figure pct00026
)의 재구성 품질들에 대응하는 내림 차순으로(낮은 것에서 높은 것으로) 순위화되는 p개의 QP 값(qp1, ...,qpp)이 있는 것을 가정한다.
Figure pct00027
은 SMTL의 가중치 파라미터들의 세트를 나타내며, 각각의
Figure pct00028
은 j번째 계층의 가중치 파라미터들이다.
Figure pct00029
은 QP 값(qpi)에 대응하는 이진 마스크들의 세트를 나타내며, 각각의 이진 마스크(
Figure pct00030
)는 j번째 계층의 가중치 파라미터(
Figure pct00031
)와 동일한 형상을 갖는다. 이진 마스크(
Figure pct00032
)의 각각의 엔트리는 가중치 파라미터(
Figure pct00033
) 내의 대응하는 가중치 엔트리가 QP 값(qpi)에 대한 추론 계산에 참여하는지의 여부를 표시하는 1 또는 0이다.
Figure pct00034
는 QP 값(qpi)에 대응하는 TSL의 가중치 파라미터들의 세트를 나타내며,
Figure pct00035
는 j번째 계층의 가중치 파라미터들이다. 계층들의 유형(예를 들어, 콘벌루션, 정규화, 완전 연결 등) 및 SMTL 및 TSL 내의 계층들의 위치에 대해 어떠한 제한도 없다. 예를 들어, STML 및 TSL의 계층들은 MTNN을 형성하기 위해 인터레이스될 수 있다.
가중치 파라미터들(
Figure pct00036
또는
Figure pct00037
) 각각은 크기(c1, k1, k2, k3, c2)를 갖는 일반적인 5차원(5D) 텐서이다. 대응하는 계층의 입력은 크기(h1,w1,d1,c1)의 4차원(4D) 텐서 A이고, 출력은 크기(h2,w2,d2,c2)의 4D 텐서 B이다. 크기들(c1, k1, k2, k3, c2, h1, w1, d1, h2, w2, d2)은 1 이상인 정수들이다. 크기들(c1, k1, k2, k3, c2, h1, w1, d1, h2, w2, d2) 중 어느 것이 1과 동일할 때, 대응하는 텐서는 더 낮은 차원으로 감소된다. 각각의 텐서 내의 각각의 아이템은 부동소수점 수이다. 파라미터들(h1, w1 및 d1)은 입력(A)의 높이, 가중치 및 깊이이다. 유사하게, 파라미터들(h2, w2 및 d2)은 출력(B)의 높이, 가중치 및 깊이이다. 파라미터(c1)는 입력(A) 내의 입력 채널들의 수이다. 유사하게, 파라미터(c2)는 출력(B) 내의 출력 채널들의 수이다. 파라미터들(k1, k2 및 k3)은 높이, 가중치, 및 깊이 축들에 각각 대응하는 콘벌루션 커널의 크기이다. 출력(B)은 이용가능하면 입력(A), 가중치 파라미터들(
Figure pct00038
또는
Figure pct00039
), 및 마스크들(
Figure pct00040
)에 기초하여 콘벌루션 연산(
Figure pct00041
)을 통해 계산된다. 가중치 파라미터들(
Figure pct00042
)에 대해, 마스크(
Figure pct00043
)가 또한 그것에 연관될 수 있고, 마스크들(
Figure pct00044
)의 모든 엔트리들이 1인 것으로 설정된다는 점을 주목한다. 이러한 관점에서, 각각의 개별 QP 값에 대한 개별 모델 인스턴스를 개별 작업으로서 트레이닝하는 종래의 방법들은 본 개시에서의 제안된 방법의 특별한 경우로서 인식될 수 있으며, SMTL은 어떠한 계층들 및 마스크들도 갖지 않는 한편 TSL은 모든 계층들을 갖는다.
출력(B)은 입력(A)을 마스킹된 가중치들과 컨볼루션함으로써 획득될 수 있다:
Figure pct00045
또는
Figure pct00046
(1)
여기서, ㆍ는 산술 연산 곱셈(element-wise multiplication)이다.
도 3을 참조하여, 위에 학습된 가중치 파라미터들(
Figure pct00047
,
Figure pct00048
)(i=1, ...,p), 및 마스크들(
Figure pct00049
)(i=1, ...,p)을, 입력(
Figure pct00050
) 및 연관된 타깃 QP 값(
Figure pct00051
)과 함께 고려하면, 대응하는 마스크(
Figure pct00052
)는 SMTL에 대한 마스킹된 가중치 파라미터들(
Figure pct00053
)을 발생시키기 위해 사용되고 QP 값(
Figure pct00054
)에 대한 TSL의 대응하는 서브네트워크는 가중치 파라미터들(
Figure pct00055
)로 선택된다. 그 다음, SMTL 추론을 위한 마스킹된 가중치 파라미터들(
Figure pct00056
)을 사용하고 TSL 추론을 위한 가중치 파라미터들(
Figure pct00057
)을 사용하면, MTNN 추론 모듈(310)은 추론 출력(
Figure pct00058
)을 계산하며, 이는 향상된 고품질 결과이다.
각각의 가중치 파라미터(
Figure pct00059
)의 형상은 동일한 출력을 획득하기 위해, 재형상화된
Figure pct00060
과 재형상화된 입력의 콘벌루션에 대응하도록 변경될 수 있다. 유사하게, 각각의 마스크(
Figure pct00061
)의 형상이 또한 변경될 수 있다. 실시예들에서, 각각의 가중치 파라미터의 형상은 2개의 구성을 취할 수 있다. 첫째로, 5D 가중치 텐서는 크기
Figure pct00062
의 3D 텐서로 재형상화되며, 여기서
Figure pct00063
이다. 예를 들어, 구성은
Figure pct00064
이다. 둘째로, 5D 가중치 텐서는 크기
Figure pct00065
의 2D 행렬로 재형상화되며, 여기서
Figure pct00066
이다. 예를 들어, 일부 구성들은
Figure pct00067
,
Figure pct00068
, 또는
Figure pct00069
을 포함한다.
마스크들의 원하는 마이크로구조는 마스킹된 가중치 파라미터들을 사용한 추론 계산이 가속될 수 있도록 콘벌루션 연산이 구현되는 방법의 기본 GEMM 행렬 곱셈 프로세스와 정렬하도록 디자인된다. 실시예들에서, 블록단위 마이크로구조들은 3D 재형상화된 가중치 텐서 또는 2D 재형상화된 가중치 행렬 내의 각각의 계층의 마스크들(즉, 마스킹된 가중치 파라미터들)을 위해 사용된다. 구체적으로, 재형상화된 3D 가중치 텐서의 경우에 대해, 블록들은 크기
Figure pct00070
의 블록들로 파티션된다. 재형상화된 2D 가중치 행렬의 경우에 대해, 블록들은 크기
Figure pct00071
의 블록들로 파티션된다.
Figure pct00072
중 어느 것이 크기 1을 취할 때, 대응하는 블록은 더 낮은 차원으로 감소된다. 마스크의 블록 내의 모든 아이템들은 동일한 이진 값, 즉 1 또는 0을 갖는다. 즉, 가중치 파라미터들은 블록단위 마이크로구조화된 방식으로 마스킹 아웃된다.
실시예들에 따른 NN 모델의 트레이닝 프로세스가 이제 설명될 것이다. 제안된 다중 스테이지 트레이닝 프레임워크의 전체 작업흐름은 도 4에 도시된다. 트레이닝 스테이지의 목표는 가중치 파라미터들(
Figure pct00073
Figure pct00074
) 및 마이크로구조화된 마스크들(
Figure pct00075
)(i=1, ...,p)의 세트로 MTNN 모델 인스턴스를 학습하는 것이며, 각각의 마스크(
Figure pct00076
) 및 가중치 파라미터들(
Figure pct00077
)은 관심 QP 값(qpi)의 각각의 QP 값에서 타깃팅된다. 점진적인 다중 스테이지 트레이닝 프레임워크는 이러한 목표를 달성하기 위해 사용될 수 있다.
도 4는 실시예들에 따라, 트레이닝 스테이지 동안, 마이크로구조화된 마스크들에 의한 다중 작업 신경 네트워크 비디오 압축을 위한 트레이닝 장치(400)의 블록도이다.
도 4에 도시된 바와 같이, 트레이닝 장치(400)는 가중치 필링 모듈(410) 및 마이크로구조화된 프루닝 모듈(420)을 포함한다.
현재 작업이 QP 값(qpi)을 타깃팅하는 마스크들, 가중치들(
Figure pct00078
)을 갖는 현재 모델 인스턴스, 및 대응하는 마스크들(
Figure pct00079
)을 트레이닝하는 것을 가정한다. 또한, 현재 QP 값(qpi)은 가중치 파라미터들(
Figure pct00080
)을 갖는 대응하는 TSL이 학습되게 한다. 다시 말해, 목표는 마스크들(
Figure pct00081
) 및 업데이트된 가중치 파라미터들(
Figure pct00082
) 및 새로운 가중치 파라미터들(
Figure pct00083
)을 획득하는 것이다.
첫째로, 마스크들(
Figure pct00084
)에 의해 마스킹되는 가중치 파라미터들(
Figure pct00085
)이 고정된다. 예를 들어, 대응하는 마스크 엔트리(
Figure pct00086
)가 1인 가중치 파라미터들. 그 다음, 학습 프로세스는 SMTL에 대한
Figure pct00087
의 잔여 비고정된 가중치들 및 TSL에 대한 가중치들(
Figure pct00088
)을 채우기 위해 가중치 필링 모듈(410)을 통해 수행된다. 이것은 업데이트된 가중치 파라미터들(
Figure pct00089
Figure pct00090
)의 세트를 초래한다.
그 다음, 마이크로구조화된 프루닝 모듈(420)은 프루닝된 모델 인스턴스 및 마스크들(
Figure pct00091
,
Figure pct00092
, 및
Figure pct00093
)을 획득하기 위해, 업데이트된 가중치 파라미터들(
Figure pct00094
)의 세트, 마스크들(
Figure pct00095
), 및
Figure pct00096
에 기초하여, 마이크로구조화된 프루닝을 수행한다.
도 5는 실시예들에 따라, 트레이닝 스테이지 동안, 도 4의 가중치 필링 모듈(410)의 작업흐름이다.
도 5에 도시된 바와 같이, 가중치 필링 모듈(410)은 MTNN 추론 모듈(320), 가중치 고정 및 필링 모듈(510), 컴퓨트 손실 모듈(520), 컴퓨트 추가 손실 모듈(530), 및 역전파 & 가중치 업데이트 모듈(540)을 포함한다.
현재 가중치들(
Figure pct00097
) 및 대응하는 마스크들(
Figure pct00098
)을 고려하면,
Figure pct00099
에 의해 마스킹되는 가중치 파라미터들(
Figure pct00100
)은 가중치 고정 및 필링 모듈(510)에서 고정된다. 그 다음, 잔여 가중치 파라미터들(
Figure pct00101
)이 재초기화된다. 예를 들어, 이것은 그들을 일부 랜덤 초기 값들에 설정하거나 가중치들(
Figure pct00102
)을 갖는 제1 전체 모델과 같은 이전에 학습된 전체 모델의 대응하는 가중치들을 사용함으로써 행해질 수 있다. 이것은 가중치 파라미터들(
Figure pct00103
)을 SMTL에 제공한다. TSL의 가중치 파라미터들(
Figure pct00104
)은 또한 (예를 들어, 그들을 일부 랜덤 초기 값들에 설정하거나 현재 QP 값(qpi)에 대해 트레이닝되는 개별 전체 모델과 같은 일부 이전에 학습된 전체 모델의 대응하는 가중치들을 사용함으로써) 초기화된다. 그 후에, 트레이닝 입력(
Figure pct00105
)은 STML 추론을 위한 가중치 파라미터(
Figure pct00106
) 및 TSL 추론을 위한 가중치 파라미터(
Figure pct00107
)를 사용하여 MTNN 추론 모듈(320)에서 출력(
Figure pct00108
)을 계산하기 위해 MTNN을 통해 전달된다.
트레이닝 목적들을 위해, 각각의 트레이닝 입력(
Figure pct00109
)은 QP 값(qpi)에 대한 대응하는 그라운드 트루스(ground-truth)(
Figure pct00110
)를 갖는다. 예를 들어, 트레이닝 입력(
Figure pct00111
)은 QP 값(qpi)을 사용하는 비디오 압축 방법에 의해 그라운드 트루스(
Figure pct00112
)의 압축된 버전으로부터 재구성된다. 일반적인 트레이닝 목표는 그라운드 트루스(
Figure pct00113
)와 추정된 출력(
Figure pct00114
) 사이의 왜곡을 최소화하는 것이다. 컴퓨트 손실 모듈(520)은 그라운드 트루스(
Figure pct00115
)와 추정된 출력(
Figure pct00116
) 사이에서, MSE 또는 SSIM과 같은, 왜곡을 측정하기 위해 왜곡 손실(
Figure pct00117
)을 계산한다. 일부 예시적인 실시예들에서, 컴퓨트 추가 손실 모듈(530)은 트레이닝 프로세스를 규칙화하는 것을 돕기 위해 다른 손실들을 계산할 수 있다. 예를 들어, 지각 손실이 사용될 수 있으며, 그라운드 트루스(
Figure pct00118
) 또는 추정된 출력(
Figure pct00119
)을 입력들로서 VGG와 같은 특징 추출 NN에 전달함으로써, 특징 맵이 계산될 수 있고, 그라운드 트루스(
Figure pct00120
)에 의해 계산되는 특징 맵들 사이의 차이 및 추정된 출력(
Figure pct00121
)이 측정되고, 가중되고 왜곡 손실(
Figure pct00122
)과 조합된다. 또한, 적대적 손실이 사용될 수 있으며, 판별기는 그라운드 트루스(
Figure pct00123
) 또는 추정된 출력(
Figure pct00124
)이 원래 입력인지 또는 MTNN에 의한 발생된 입력인지를 분류하려고 시도한다. 분류 손실은 적대적 손실로서 사용되고, 가중되고 왜곡 손실(
Figure pct00125
)과 조합될 수 있다. 역전파 & 가중치 업데이트 모듈(540)은 이러한 조합된 손실(또는 어떠한 다른 손실도 사용되지 않으면
Figure pct00126
)의 기울기를 계산하고 SMTL의 비고정된 가중치 파라미터들(
Figure pct00127
) 및 TSL의 가중치 파라미터들(
Figure pct00128
)을 업데이트한다. 다수의 반복은 (예를 들어, 최대 반복 수에 도달할 때까지 또는 손실이 수렴될 때까지) 이러한 역전파 & 가중치 업데이트 모듈(540)에서 취해질 것이다.
도 6은 실시예들에 따라, 트레이닝 스테이지 동안, 도 4의 마이크로구조화된 프루닝 모듈(420)의 상세 작업흐름이다.
도 6에 도시된 바와 같이, 마이크로구조화된 프루닝 모듈(420)은 MTNN 추론 모듈(320), 컴퓨트 손실 모듈(520), 컴퓨트 추가 손실 모듈(530), 역전파 & 가중치 업데이트 모듈(540), 및 컴퓨트 프루닝 마스크 모듈(610)을 포함한다.
첫째로, 가중치 필링 모듈(410)로부터 SMTL의 업데이트된 가중치들(
Figure pct00129
) 및 TSL의 가중치들(
Figure pct00130
)뿐만 아니라, 현재 마스크들(
Figure pct00131
)을 고려하면, 컴퓨트 프루닝 마스크 모듈(610)은 프루닝 마스크들을 계산한다. 상세하게,
Figure pct00132
에 의해 마스킹되고, 잔여 비고정된 가중치 파라미터들(
Figure pct00133
)에 대해 마스킹되는 업데이트된 가중치 파라미터들(
Figure pct00134
)이 고정되고 프루닝 손실(Lp(b))(예를 들어, 블록 내의 가중치들의 L1 또는 L2 놈)은 이전에 언급된 바와 같이 각각의 마이크로구조화된 블록(b)에 대해 계산된다. 컴퓨트 프루닝 마스크 모듈(610)은 프루닝 손실(Lp(b))에 기초하여 마이크로구조화된 블록들을 오름 차순으로 순위화하고 블록들은 (즉, 프루닝된 블록들 내의 대응하는 가중치들을 0으로서 설정함으로써) 정지 기준이 도달될 때까지 순위화된 리스트로부터 하향식으로 프루닝된다. 예를 들어, 검증 데이터세트(Sval)를 고려하면, 가중치들(
Figure pct00135
Figure pct00136
)을 갖는 MTNN 모델은 왜곡 손실(Lval)을 이하와 같이 발생시킨다:
Figure pct00137
(2)
점점 더 많은 마이크로블록들이 프루닝됨에 따라, 이러한 왜곡 손실(Lval)은 점진적으로 증가한다. 정지 기준은 왜곡 손실(Lval)이 증가하는 것을 허용하는 용인가능한 백분율 임계치일 수 있다. 정지 기준은 또한 프루닝될 마이크로구조화된 블록들의 간단한 백분율(예를 들어, 50%)일 수 있다. 이진 프루닝 마스크들(
Figure pct00138
)의 세트가 발생될 수 있으며, 여기서 프루닝 마스크(
Figure pct00139
) 내의 엔트리가 1인 것은 대응하는 가중치 파라미터(
Figure pct00140
)가 프루닝되는 것을 의미한다. 그 다음, 역전파 & 가중치 업데이트 모듈(540)에서, 프루닝됨에 따라 마스크들(
Figure pct00141
)에 의해 마스킹되는 가중치들(
Figure pct00142
) 내의 추가적인 비고정된 가중치들이 고정되고, 프루닝 마스크들(
Figure pct00143
또는
Figure pct00144
)에 의해 마스킹되지 않는 잔여 가중치들(
Figure pct00145
)이 업데이트되고, 가중치들(
Figure pct00146
)이 규칙적인 역전파에 의해 업데이트되어 트레이닝 데이터에 걸쳐 조합된 손실(또는 어떠한 다른 손실도 사용되지 않으면 왜곡 손실(
Figure pct00147
))을 최적화한다. 다수의 반복은 예를 들어, 반복들의 최대 수에 도달할 때까지 또는 손실이 수렴될 때까지, 취해질 수 있다.
대응하는 마스크들(
Figure pct00148
)은 이하와 같이 계산될 수 있다:
Figure pct00149
(3)
즉,
Figure pct00150
에서 마스킹되지 않는
Figure pct00151
내의 비프루닝된 엔트리들은
Figure pct00152
에서 마스킹되지 않음에 따라 1로 추가적으로 설정된다. 또한, 위의 마이크로구조화된 가중치 프루닝 프로세스는 업데이트된 가중치들(
Figure pct00153
Figure pct00154
)을 출력한다. 위의 마이크로구조화된 프루닝 프로세스가 또한 모델 크기 및 추론 계산을 추가로 감소시키기 위해 가중치들(
Figure pct00155
)에 임의로 적용될 수 있다는 점을 주목한다. 즉, 컴퓨트 프루닝 마스크 모듈(610)은 또한 TSL의 가중치들을 마이크로구조들로 재형상화 및 파티션하고, 그들 마이크로구조들의 프루닝 손실을 계산하고, 작은 프루닝 손실로 최상위 마이크로구조들을 프루닝할 수 있다. 그것은 또한 임의로 MTNN 재구성 품질 및 저장 및 계산을 밸런싱하기 위해 그렇게 행하는 것을 선택할 수 있다.
최종적으로, 마지막 업데이트된 가중치들(
Figure pct00156
)은 MQLF를 위한 학습된 MTNN 모델 인스턴스의 SMTL에 대한 최종 출력 가중치들(
Figure pct00157
)이다.
도 7은 실시예들에 따라, 공유된 다중 작업 계층들, 작업 특정 계층들, 및 마이크로구조화된 마스크들과 함께, MTNN을 사용하는 MQLF에 의한 비디오 압축을 위한 방법(700)의 흐름도이다.
일부 구현들에서, 도 7의 하나 이상의 프로세스 블록은 플랫폼(120)에 의해 수행될 수 있다. 일부 구현들에서, 도 7의 하나 이상의 프로세스 블록은 사용자 디바이스(110)와 같은, 플랫폼(120)으로부터 분리되거나 플랫폼을 포함하는 다른 디바이스 또는 디바이스들의 그룹에 의해 수행될 수 있다.
도 7에 도시된 바와 같이, 동작(710)에서, 방법(700)은 신경 네트워크의 계층들의 제1 세트에 대해, 마스크들의 제1 세트 및 제1 복수의 가중치 파라미터와 함께 입력 및 복수의 양자화 파라미터 값에 기초하여, 마스킹된 가중치 파라미터들의 제1 세트를 발생시키는 단계를 포함한다. 마스크들의 제1 세트 내의 각각의 마스크는 제1 복수의 가중치 파라미터 중 대응하는 것이 추론 출력을 계산하기 위해 사용되는지를 표시하는 이진 값일 수 있다. 추가적으로, 마스킹된 가중치 파라미터들의 제1 세트는 제1 복수의 가중치 파라미터 및 마스크들의 제1 세트의 콘벌루션을 수행함으로써 획득될 수 있다.
동작(720)에서, 방법(700)은 복수의 양자화 파라미터 값에 기초하여, 제2 복수의 가중치 파라미터로 복수의 양자화 파라미터 값에 대한 신경 네트워크의 계층들의 제2 세트를 선택하는 단계를 포함한다. 제2 복수의 가중치 파라미터에 대응하는 마스크들의 제2 세트가 또한 선택될 수 있다.
동작(730)에서, 방법(700)은 마스킹된 가중치 파라미터들의 제1 세트 및 제2 복수의 가중치 파라미터에 기초하여, 추론 출력을 계산하는 단계를 포함한다.
동작(740)에서, 방법(700)은 계산된 추론 출력을 출력하는 단계를 포함한다.
도 7이 방법의 예시적인 블록들을 도시하지만, 일부 구현들에서, 방법은 추가적인 블록들, 보다 소수의 블록들, 상이한 블록들, 또는 도 7에 도시된 것들과 상이하게 배열된 블록들을 포함할 수 있다. 추가적으로, 또는 대안적으로, 방법의 블록들 중 2개 이상은 병렬로 수행될 수 있다.
예를 들어, 방법(700)의 동작들은 신경 네트워크를 신경 네트워크의 계층들의 제1 세트 및 신경 네트워크의 계층들의 제2 세트로 분할하는 단계를 포함할 수 있다. 신경 네트워크의 계층들의 제1 세트의 모델 파라미터들은 공유된 계층들 각각에 대한 제1 복수의 가중치 파라미터 중 대응하는 것과 상이한 양자화 파라미터 값들에 걸쳐 공유되는 공유된 계층들일 수 있다. 신경 네트워크의 계층들의 제2 세트의 모델 파라미터들은 작업 특정 계층들 각각에 대한 제2 복수의 가중치 파라미터 중 대응하는 것과 양자화 파라미터 값들 각각마다 상이한 작업 특정 계층들일 수 있다.
신경 네트워크는 입력, 추론 출력 및 각각의 양자화 파라미터 값에 기초하여 결정되는 왜곡 손실을 최소화하기 위해, 마스크들의 제1 세트에 의해 각각 마스킹되지 않는 제1 복수의 가중치 파라미터 중 하나 이상을 업데이트함으로써 트레이닝된다. 게다가, 신경 네트워크는 제1 복수의 가중치 파라미터 중 어느 것이 프루닝되는지를 표시하는 이진 프루닝 마스크들을 획득하기 위해 마스크들의 제1 세트에 의해 각각 마스킹되지 않는 제1 복수의 가중치 파라미터 중 업데이트된 하나 이상을 프루닝하고, 왜곡 손실을 최소화하기 위해, 마스크들의 제1 세트 및 획득된 이진 프루닝 마스크들에 의해 각각 마스킹되지 않는 제1 복수의 가중치 파라미터 중 적어도 하나를 업데이트함으로써 트레이닝된다.
도 8은 실시예들에 따라, 공유된 다중 작업 계층들, 작업 특정 계층들 및 마이크로구조화된 마스크들과 함께, MTNN을 사용하는 MQLF에 의한 비디오 압축을 위한 장치(800)의 블록도이다.
도 8에 도시된 바와 같이, 장치(800)는 발생 코드(810), 제1 선택 코드(820), 및 컴퓨팅 코드(830)를 포함한다.
발생 코드(810)는 적어도 하나의 프로세서로 하여금 신경 네트워크의 계층들의 제1 세트에 대해, 마스크들의 제1 세트 및 제1 복수의 가중치 파라미터와 함께 입력 및 복수의 양자화 파라미터 값에 기초하여, 마스킹된 가중치 파라미터들의 제1 세트를 발생시키게 하도록 구성된다. 마스크들의 제1 세트 내의 각각의 마스크는 제1 복수의 가중치 파라미터 중 대응하는 것이 추론 출력을 계산하기 위해 사용되는지를 표시하는 이진 값일 수 있다.
제1 선택 코드(820)는 적어도 하나의 프로세서로 하여금 복수의 양자화 파라미터 값에 기초하여, 제2 복수의 가중치 파라미터로 복수의 양자화 파라미터 값에 대한 신경 네트워크의 계층들의 제2 세트를 선택하게 하도록 구성된다.
컴퓨팅 코드(830)는 적어도 하나의 프로세서로 하여금 마스킹된 가중치 파라미터들의 제1 세트 및 제2 복수의 가중치 파라미터에 기초하여, 추론 출력을 계산하게 하도록 구성된다.
출력 코드(840)는 적어도 하나의 프로세서로 하여금 계산된 추론 출력을 출력하게 하도록 구성된다.
도 8이 장치의 예시적인 블록들을 도시하지만, 일부 구현들에서, 장치는 추가적인 블록들, 보다 소수의 블록들, 상이한 블록들, 또는 도 8에 도시된 것들과 상이하게 배열된 블록들을 포함할 수 있다. 추가적으로, 또는 대안적으로, 장치의 블록들 중 2개 이상은 조합될 수 있다.
예를 들어, 장치(800)는 적어도 하나의 프로세서로 하여금 신경 네트워크를 신경 네트워크의 계층들의 제1 세트 및 신경 네트워크의 계층들의 제2 세트로 분할하게 하도록 구성된 분할 코드를 포함할 수 있으며, 신경 네트워크의 계층들의 제1 세트의 모델 파라미터들은 공유된 계층들 각각에 대한 제1 복수의 가중치 파라미터 중 대응하는 것과 상이한 양자화 파라미터 값들에 걸쳐 공유되는 공유된 계층들이고, 신경 네트워크의 계층들의 제2 세트의 모델 파라미터들은 작업 특정 계층들 각각에 대한 제2 복수의 가중치 파라미터 중 대응하는 것과 양자화 파라미터 값들 각각마다 상이한 작업 특정 계층들이다.
신경 네트워크는 입력, 추론 출력 및 각각의 양자화 파라미터 값에 기초하여 결정되는 왜곡 손실을 최소화하기 위해, 마스크들의 제1 세트에 의해 각각 마스킹되지 않는 제1 복수의 가중치 파라미터 중 하나 이상을 업데이트하고, 제1 복수의 가중치 파라미터 중 어느 것이 프루닝되는지를 표시하는 이진 프루닝 마스크들을 획득하기 위해 마스크들의 제1 세트에 의해 각각 마스킹되지 않는 제1 복수의 가중치 파라미터 중 업데이트된 하나 이상을 프루닝하고, 왜곡 손실을 최소화하기 위해, 마스크들의 제1 세트 및 획득된 이진 프루닝 마스크들에 의해 각각 마스킹되지 않는 제1 복수의 가중치 파라미터 중 적어도 하나를 업데이트함으로써 트레이닝될 수 있다.
게다가, 장치(800)는 적어도 하나의 프로세서로 하여금 제2 복수의 가중치 파라미터에 대응하는 마스크들의 제2 세트를 선택하게 하도록 구성된 제2 선택 코드 및 적어도 하나의 프로세서로 하여금 마스킹된 가중치 파라미터들의 제1 세트를 획득하기 위해 제1 복수의 가중치 파라미터 및 마스크들의 제1 세트의 콘벌루션을 수행하게 하도록 구성된 수행 코드를 포함할 수 있다.
종래의 루프 필터링 또는 NN 기반 루프 필터링 방법들과 비교하여, 실시예들은 다수의 이진 마스크를 사용함으로써 다수의 QP 값의 압축을 수용하기 위해 하나의 MTNN 모델 인스턴스를 사용하는 것을 설명한다. 블록단위 마이크로구조화된 마스크들은 또한 개별 QP 값들의 압축 성능을 보존하고 추론 계산을 감소시킬 수 있다. 이러한 방법은 다수의 QP 값을 사용하는 압축을 위한 전개 스토리지를 크게 감소시킨다. 그것은 또한 다양한 유형들의 기본 NNLF 방법들 및 모델 아키텍처들 및 다양한 형상화된 마이크로구조들을 수용하는 유연하고 일반적인 프레임워크를 제공한다.
제안된 방법들은 개별적으로 사용되거나 임의의 순서로 조합될 수 있다. 게다가, 방법들(또는 실시예들) 각각은 처리 회로(예를 들어, 하나 이상의 프로세서 또는 하나 이상의 집적 회로)에 의해 구현될 수 있다. 일 예에서, 하나 이상의 프로세서는 비일시적 컴퓨터 판독가능 매체에 저장된 프로그램을 실행한다.
전술한 개시는 예시 및 설명을 제공하지만, 총망라하거나 구현들을 개시된 정확한 형태로 제한하도록 의도되지 않는다. 수정들 및 변화들은 위의 개시를 고려하여 가능하거나 구현들의 실시로부터 취득될 수 있다.
본원에 사용되는 바와 같이, 용어 구성요소는 하드웨어, 펌웨어, 또는 하드웨어 및 소프트웨어의 조합으로서 광범위하게 해석되는 것으로 의도된다.
본원에 설명된 시스템들 및/또는 방법들은 상이한 형태들의 하드웨어, 펌웨어, 또는 하드웨어 및 소프트웨어의 조합으로 구현될 수 있다는 점이 분명할 것이다. 이들 시스템들 및/또는 방법들을 구현하기 위해 사용되는 실제 전문화된 제어 하드웨어 또는 소프트웨어 코드는 구현들을 제한하지 않는다. 따라서, 시스템들 및/또는 방법들의 동작 및 작용은 특정 소프트웨어 코드에 대한 참조 없이 본원에 설명되었으며 - 소프트웨어 및 하드웨어는 본원에서의 설명에 기초하여 시스템들 및/또는 방법들을 구현하도록 디자인될 수 있다는 점이 이해된다.
특징들의 조합들이 청구항들에 열거되고/되거나 명세서에 개시될지라도, 이들 조합들은 가능한 구현들의 개시를 제한하는 것으로 의도되지 않는다. 실제로, 이들 특징들 중 다수는 청구항들에 구체적으로 열거되지 않고/않거나 명세서에 개시되지 않은 방식들로 조합될 수 있다. 아래에 리스트된 각각의 종속항이 하나의 청구항에만 직접 의존할 수 있지만, 가능한 구현들의 개시는 청구항 세트 내의 모든 다른 청구항과 조합하여 각각의 종속항을 포함한다.
본원에 사용되는 어떠한 요소, 액트, 또는 명령어는 그와 같이 명시적으로 설명되지 않는 한 중요하거나 필수적인 것으로 해석되지 않을 수 있다. 또한, 본원에 사용되는 바와 같이, 관사들("a" 및 "an")은 하나 이상의 아이템을 포함하는 것으로 의도되고, "하나 이상"과 교환가능하게 사용될 수 있다. 더욱이, 본원에 사용되는 바와 같이, 용어 "세트"는 하나 이상의 아이템(예를 들어, 관련 아이템들, 비관련 아이템들, 관련 및 비관련 아이템들의 조합 등)을 포함하는 것으로 의도되고, "하나 이상"과 교환가능하게 사용될 수 있다. 하나의 아이템만이 의도되는 경우, 용어 "하나의" 또는 유사한 언어가 사용된다. 또한, 본원에 사용되는 바와 같이, 용어들 "갖고 있다", "갖는다", "갖는" 등은 개방형 용어들인 것으로 의도된다. 게다가, 어구 "에 기초하여"는 달리 명시적으로 지정되지 않는 한 "에 적어도 부분적으로 기초하여"를 의미하는 것으로 의도된다.

Claims (20)

  1. 다중 작업 신경 네트워크를 사용하는 다중 품질 루프 필터에 의해 비디오를 처리하는 방법으로서, 상기 방법은 적어도 하나의 프로세서에 의해 수행되고, 상기 방법은,
    신경 네트워크의 계층들의 제1 세트에 대해, 마스크들의 제1 세트 및 제1 복수의 가중치 파라미터와 함께 입력 및 복수의 양자화 파라미터 값에 기초하여, 마스킹된 가중치 파라미터들의 제1 세트를 발생시키는 단계;
    상기 복수의 양자화 파라미터 값에 기초하여, 제2 복수의 가중치 파라미터로 상기 복수의 양자화 파라미터 값에 대한 신경 네트워크의 계층들의 제2 세트를 선택하는 단계;
    상기 마스킹된 가중치 파라미터들의 제1 세트 및 상기 제2 복수의 가중치 파라미터에 기초하여, 추론 출력을 계산하는 단계; 및
    상기 계산된 추론 출력을 출력하는 단계
    를 포함하는, 방법.
  2. 제1항에 있어서, 상기 신경 네트워크를 상기 신경 네트워크의 계층들의 제1 세트 및 상기 신경 네트워크의 계층들의 제2 세트로 분할하는 단계를 추가로 포함하며,
    상기 신경 네트워크의 계층들의 제1 세트의 모델 파라미터들은 공유된 계층들 각각에 대한 제1 복수의 가중치 파라미터 중 대응하는 것과 상이한 양자화 파라미터 값들에 걸쳐 공유되는 공유된 계층들이고,
    상기 신경 네트워크의 계층들의 제2 세트의 모델 파라미터들은 작업 특정 계층들 각각에 대한 제2 복수의 가중치 파라미터 중 대응하는 것과 양자화 파라미터 값들 각각마다 상이한 작업 특정 계층들인, 방법.
  3. 제1항에 있어서, 상기 마스크들의 제1 세트 내의 각각의 마스크는 상기 제1 복수의 가중치 파라미터 중 대응하는 것이 상기 추론 출력을 계산하기 위해 사용되는지를 표시하는 이진 값인, 방법.
  4. 제1항에 있어서, 상기 신경 네트워크는 상기 입력, 상기 추론 출력 및 각각의 양자화 파라미터 값에 기초하여 결정되는 왜곡 손실을 최소화하기 위해, 상기 마스크들의 제1 세트에 의해 각각 마스킹되지 않는 제1 복수의 가중치 파라미터 중 하나 이상을 업데이트함으로써 트레이닝되는, 방법.
  5. 제4항에 있어서, 상기 신경 네트워크는,
    상기 제1 복수의 가중치 파라미터 중 어느 것이 프루닝되는지를 표시하는 이진 프루닝 마스크들을 획득하기 위해 상기 마스크들의 제1 세트에 의해 각각 마스킹되지 않는 제1 복수의 가중치 파라미터 중 업데이트된 하나 이상을 프루닝하고;
    상기 왜곡 손실을 최소화하기 위해, 상기 마스크들의 제1 세트 및 상기 획득된 이진 프루닝 마스크들에 의해 각각 마스킹되지 않는 제1 복수의 가중치 파라미터 중 적어도 하나를 업데이트함으로써 추가로 트레이닝되는, 방법.
  6. 제1항에 있어서, 상기 제2 복수의 가중치 파라미터에 대응하는 마스크들의 제2 세트를 선택하는 단계를 추가로 포함하는, 방법.
  7. 제1항에 있어서, 상기 마스킹된 가중치 파라미터들의 제1 세트를 획득하기 위해 상기 제1 복수의 가중치 파라미터 및 상기 마스크들의 제1 세트의 콘벌루션을 수행하는 단계를 추가로 포함하는, 방법.
  8. 다중 작업 신경 네트워크를 사용하는 다중 품질 루프 필터에 의해 비디오를 처리하기 위한 장치로서,
    프로그램 코드를 저장하도록 구성된 적어도 하나의 메모리; 및
    상기 프로그램 코드를 판독하고 상기 프로그램 코드에 의해 명령되는 바와 같이 동작하도록 구성된 적어도 하나의 프로세서를 포함하며, 상기 프로그램 코드는,
    상기 적어도 하나의 프로세서로 하여금 신경 네트워크의 계층들의 제1 세트에 대해, 마스크들의 제1 세트 및 제1 복수의 가중치 파라미터와 함께 입력 및 복수의 양자화 파라미터 값에 기초하여, 마스킹된 가중치 파라미터들의 제1 세트를 발생시키게 하도록 구성된 발생 코드;
    상기 적어도 하나의 프로세서로 하여금 상기 복수의 양자화 파라미터 값에 기초하여, 제2 복수의 가중치 파라미터로 상기 복수의 양자화 파라미터 값에 대한 신경 네트워크의 계층들의 제2 세트를 선택하게 하도록 구성된 제1 선택 코드;
    상기 적어도 하나의 프로세서로 하여금 상기 마스킹된 가중치 파라미터들의 제1 세트 및 상기 제2 복수의 가중치 파라미터에 기초하여, 추론 출력을 계산하게 하도록 구성된 컴퓨팅 코드; 및
    상기 적어도 하나의 프로세서로 하여금 상기 계산된 추론 출력을 출력하게 하도록 구성된 출력 코드
    를 포함하는, 장치.
  9. 제8항에 있어서, 상기 프로그램 코드는 상기 적어도 하나의 프로세서로 하여금 상기 신경 네트워크를 상기 신경 네트워크의 계층들의 제1 세트 및 상기 신경 네트워크의 계층들의 제2 세트로 분할하게 하도록 구성된 분할 코드를 추가로 포함하며,
    상기 신경 네트워크의 계층들의 제1 세트의 모델 파라미터들은 공유된 계층들 각각에 대한 제1 복수의 가중치 파라미터 중 대응하는 것과 상이한 양자화 파라미터 값들에 걸쳐 공유되는 공유된 계층들이고,
    상기 신경 네트워크의 계층들의 제2 세트의 모델 파라미터들은 작업 특정 계층들 각각에 대한 제2 복수의 가중치 파라미터 중 대응하는 것과 양자화 파라미터 값들 각각마다 상이한 작업 특정 계층들인, 장치.
  10. 제8항에 있어서, 상기 마스크들의 제1 세트 내의 각각의 마스크는 상기 제1 복수의 가중치 파라미터 중 대응하는 것이 상기 추론 출력을 계산하기 위해 사용되는지를 표시하는 이진 값인, 장치.
  11. 제8항에 있어서, 상기 신경 네트워크는 상기 입력, 상기 추론 출력 및 각각의 양자화 파라미터 값에 기초하여 결정되는 왜곡 손실을 최소화하기 위해, 상기 마스크들의 제1 세트에 의해 각각 마스킹되지 않는 제1 복수의 가중치 파라미터 중 하나 이상을 업데이트함으로써 트레이닝되는, 장치.
  12. 제11항에 있어서, 상기 신경 네트워크는,
    상기 제1 복수의 가중치 파라미터 중 어느 것이 프루닝되는지를 표시하는 이진 프루닝 마스크들을 획득하기 위해 상기 마스크들의 제1 세트에 의해 각각 마스킹되지 않는 제1 복수의 가중치 파라미터 중 업데이트된 하나 이상을 프루닝하고;
    상기 왜곡 손실을 최소화하기 위해, 상기 마스크들의 제1 세트 및 상기 획득된 이진 프루닝 마스크들에 의해 각각 마스킹되지 않는 제1 복수의 가중치 파라미터 중 적어도 하나를 업데이트함으로써 추가로 트레이닝되는, 장치.
  13. 제8항에 있어서, 상기 적어도 하나의 프로세서로 하여금 상기 제2 복수의 가중치 파라미터에 대응하는 마스크들의 제2 세트를 선택하게 하도록 구성된 제2 선택 코드를 추가로 포함하는, 장치.
  14. 제8항에 있어서, 상기 적어도 하나의 프로세서로 하여금 상기 마스킹된 가중치 파라미터들의 제1 세트를 획득하기 위해 상기 제1 복수의 가중치 파라미터 및 상기 마스크들의 제1 세트의 콘벌루션을 수행하게 하도록 구성된 수행 코드를 추가로 포함하는, 장치.
  15. 명령어들을 저장한 비일시적 컴퓨터 판독가능 매체로서, 상기 명령어들은 다중 작업 신경 네트워크를 사용하는 다중 품질 루프 필터에 의해 비디오를 처리하기 위해 적어도 하나의 프로세서에 의해 실행될 때, 상기 적어도 하나의 프로세서로 하여금,
    신경 네트워크의 계층들의 제1 세트에 대해, 마스크들의 제1 세트 및 제1 복수의 가중치 파라미터와 함께 입력 및 복수의 양자화 파라미터 값에 기초하여, 마스킹된 가중치 파라미터들의 제1 세트를 발생시키게 하고;
    상기 복수의 양자화 파라미터 값에 기초하여, 제2 복수의 가중치 파라미터 로 상기 복수의 양자화 파라미터 값에 대한 신경 네트워크의 계층들의 제2 세트를 선택하게 하고;
    상기 마스킹된 가중치 파라미터들의 제1 세트 및 상기 제2 복수의 가중치 파라미터에 기초하여, 추론 출력을 계산하게 하고;
    상기 계산된 추론 출력을 출력하게 하는, 비일시적 컴퓨터 판독가능 매체.
  16. 제15항에 있어서, 상기 명령어들은 상기 적어도 하나의 프로세서에 의해 실행될 때, 또한 상기 적어도 하나의 프로세서로 하여금 상기 신경 네트워크를 상기 신경 네트워크의 계층들의 제1 세트 및 상기 신경 네트워크의 계층들의 제2 세트로 분할하게 하고,
    상기 신경 네트워크의 계층들의 제1 세트의 모델 파라미터들은 공유된 계층들 각각에 대한 제1 복수의 가중치 파라미터 중 대응하는 것과 상이한 양자화 파라미터 값들에 걸쳐 공유되는 공유된 계층들이고,
    상기 신경 네트워크의 계층들의 제2 세트의 모델 파라미터들은 작업 특정 계층들 각각에 대한 제2 복수의 가중치 파라미터 중 대응하는 것과 양자화 파라미터 값들 각각마다 상이한 작업 특정 계층들인, 비일시적 컴퓨터 판독가능 매체.
  17. 제15항에 있어서, 상기 마스크들의 제1 세트 내의 각각의 마스크는 상기 제1 복수의 가중치 파라미터 중 대응하는 것이 상기 추론 출력을 계산하기 위해 사용되는지를 표시하는 이진 값인, 비일시적 컴퓨터 판독가능 매체.
  18. 제15항에 있어서, 상기 신경 네트워크는,
    상기 입력, 상기 추론 출력 및 각각의 양자화 파라미터 값에 기초하여 결정되는 왜곡 손실을 최소화하기 위해, 상기 마스크들의 제1 세트에 의해 각각 마스킹되지 않는 제1 복수의 가중치 파라미터 중 하나 이상을 업데이트하고;
    상기 제1 복수의 가중치 파라미터 중 어느 것이 프루닝되는지를 표시하는 이진 프루닝 마스크들을 획득하기 위해 상기 마스크들의 제1 세트에 의해 각각 마스킹되지 않는 제1 복수의 가중치 파라미터 중 업데이트된 하나 이상을 프루닝하고;
    상기 왜곡 손실을 최소화하기 위해, 상기 마스크들의 제1 세트 및 상기 획득된 이진 프루닝 마스크들에 의해 각각 마스킹되지 않는 제1 복수의 가중치 파라미터 중 적어도 하나를 업데이트함으로써 트레이닝되는, 비일시적 컴퓨터 판독가능 매체.
  19. 제15항에 있어서, 상기 명령어들은 상기 적어도 하나의 프로세서에 의해 실행될 때, 또한 상기 적어도 하나의 프로세서로 하여금 상기 제2 복수의 가중치 파라미터에 대응하는 마스크들의 제2 세트를 선택하게 하는, 비일시적 컴퓨터 판독가능 매체.
  20. 제15항에 있어서, 상기 명령어들은 상기 적어도 하나의 프로세서에 의해 실행될 때, 또한 상기 적어도 하나의 프로세서로 하여금 상기 마스킹된 가중치 파라미터들의 제1 세트를 획득하기 위해 상기 제1 복수의 가중치 파라미터 및 상기 마스크들의 제1 세트의 콘벌루션을 수행하게 하는, 비일시적 컴퓨터 판독가능 매체.
KR1020227039141A 2021-01-11 2021-10-14 다중 품질 루프 필터를 위한 마이크로구조화된 파라미터 공유에 의한 다중 작업 신경 네트워크 KR20220166844A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202163135994P 2021-01-11 2021-01-11
US63/135,994 2021-01-11
US17/500,339 2021-10-13
US17/500,339 US20220222505A1 (en) 2021-01-11 2021-10-13 Multi-task neural network by micro-structured parameter sharing for multi-quality loop filter
PCT/US2021/055036 WO2022150082A1 (en) 2021-01-11 2021-10-14 Multi-task neural network by micro-structured parameter sharing for multi-quality loop filter

Publications (1)

Publication Number Publication Date
KR20220166844A true KR20220166844A (ko) 2022-12-19

Family

ID=82321908

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227039141A KR20220166844A (ko) 2021-01-11 2021-10-14 다중 품질 루프 필터를 위한 마이크로구조화된 파라미터 공유에 의한 다중 작업 신경 네트워크

Country Status (6)

Country Link
US (1) US20220222505A1 (ko)
EP (1) EP4101072A4 (ko)
JP (1) JP7408835B2 (ko)
KR (1) KR20220166844A (ko)
CN (1) CN115462002B (ko)
WO (1) WO2022150082A1 (ko)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019009448A1 (ko) * 2017-07-06 2019-01-10 삼성전자 주식회사 영상을 부호화 또는 복호화하는 방법 및 장치
WO2019031410A1 (ja) * 2017-08-10 2019-02-14 シャープ株式会社 画像フィルタ装置、画像復号装置、および画像符号化装置
KR101998036B1 (ko) * 2017-12-06 2019-07-08 한국과학기술원 왜곡 제거 방법 및 장치
US11457244B2 (en) * 2018-04-09 2022-09-27 Nokia Technologies Oy Apparatus, a method and a computer program for video coding and decoding

Also Published As

Publication number Publication date
US20220222505A1 (en) 2022-07-14
CN115462002A (zh) 2022-12-09
CN115462002B (zh) 2024-07-12
EP4101072A1 (en) 2022-12-14
WO2022150082A1 (en) 2022-07-14
JP7408835B2 (ja) 2024-01-05
JP2023522163A (ja) 2023-05-29
EP4101072A4 (en) 2023-06-21

Similar Documents

Publication Publication Date Title
JP7374340B2 (ja) ニューラル画像圧縮のためのタスク適応型前処理のための方法、装置およびコンピュータプログラム
JP7551206B2 (ja) イントラ予測残差を用いたマルチスケールニューラル画像圧縮のための方法および装置、およびコンピュータプログラム
JP7411113B2 (ja) 品質入力を有するループフィルタのためのマスクされたニューラルネットワークによるモデル共有
EP4082192A1 (en) Neural image compression with latent feature-domain intra-prediction
US11652994B2 (en) Neural image compression with adaptive intra-prediction
JP7408835B2 (ja) マルチタスクニューラルネットワークを使用するマルチ品質ループフィルタによるビデオ処理の方法、装置及びコンピュータプログラム
JP7438611B2 (ja) 品質適応型ニューラル・ネットワーク・ベースのループフィルタのための代替品質ファクター学習
JP7471734B2 (ja) メタ学習による滑らかな品質管理を用いた品質適応型のニューラル・ネットワーク・ベースのループフィルタ
US20230186526A1 (en) System, method, and computer program for content adaptive online training for multiple blocks based on certain patterns
US20230186081A1 (en) System, method, and computer program for iterative content adaptive online training in neural image compression
US20230186525A1 (en) System, method, and computer program for content adaptive online training for multiple blocks in neural image compression
KR20220154768A (ko) 메타 러닝에 의한 평활한 품질 제어를 갖는 적응 신경 이미지 압축
JP2023509829A (ja) 積み重ね可能な入れ子モデル構造及びマイクロ構造化された重み統一によるマルチレートニューラル画像圧縮のための方法及び装置

Legal Events

Date Code Title Description
A201 Request for examination