KR20240027791A - 비디오 코딩을 위한 네트워크 기반 이미지 필터링 - Google Patents

비디오 코딩을 위한 네트워크 기반 이미지 필터링 Download PDF

Info

Publication number
KR20240027791A
KR20240027791A KR1020247003491A KR20247003491A KR20240027791A KR 20240027791 A KR20240027791 A KR 20240027791A KR 1020247003491 A KR1020247003491 A KR 1020247003491A KR 20247003491 A KR20247003491 A KR 20247003491A KR 20240027791 A KR20240027791 A KR 20240027791A
Authority
KR
South Korea
Prior art keywords
offset
input
step size
qpmap
encoder
Prior art date
Application number
KR1020247003491A
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 KR20240027791A publication Critical patent/KR20240027791A/ko

Links

Classifications

    • 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/0495Quantised networks; Sparse networks; Compressed 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
    • 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
    • G06N3/0455Auto-encoder networks; Encoder-decoder networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0464Convolutional networks [CNN, ConvNet]
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/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
    • H04N19/436Methods 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 using parallelised computational arrangements
    • 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/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
    • 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

Landscapes

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

Abstract

신경망을 사용하여 비디오 코딩에서 이미지 필터링을 수행하기 위한 방법 및 장치가 제공된다. 방법은: 하나 이상의 양자화 파라미터(quantization parameter, QP) 맵(QpMap) 채널의 복수의 QpMap 값을 신경망에 로딩하는 단계와; 입력 프레임과 관련된 복수의 입력 QP 값을 조정하여 QP 스케일링 팩터를 획득하는 단계; 및 QP 스케일링 팩터에 따라, 신경망에 입력 프레임을 학습하고 필터링하도록 신경망에 대한 복수의 QpMap 값을 조정하는 단계를 포함한다.

Description

비디오 코딩을 위한 네트워크 기반 이미지 필터링
관련 출원에 대한 교차 참조
본 출원은 2021년 7월 5일 출원된 "비디오 코딩을 위한 신경망 기반 이미지 필터링(Neural network based Image filtering for Video coding)"이라는 명칭의 미국 가출원 제63/218,485에 대한 우선권을 주장하며, 이 출원의 전체 내용이 모든 목적을 위해 참조로 포함된다.
본 개시는 비디오 코딩에 관한 것으로, 특히 신경망 기반 모델 필터링을 이용하는 비디오 코딩에 대한 방법 및 장치에 관한 것이지만 이에 국한되지는 않는다.
비디오 데이터를 압축하기 위해 다양한 비디오 코딩 기술이 사용될 수 있다. 비디오 코딩은 하나 이상의 비디오 코딩 표준에 따라 수행된다. 예를 들어 비디오 코딩 표준에는 다목적 비디오 코딩(Versatile Video coding, VVC), 공동 탐사 테스트 모델(Joint Explore Test Model, JEM), 고효율 비디오 코딩(H.265/HEVC), 고급 비디오 코딩(H.264/AVC), 동영상 전문가 그룹(moving picture expert group, MPEG) 코딩 등이 있다. 비디오 코딩은 일반적으로 비디오 이미지 또는 시퀀스에 존재하는 중복성(redundancy)을 활용하는 예측 방법(예를 들어, 인터-예측(inter-prediction), 인트라-예측(intra-prediction) 등)을 사용한다. 비디오 코딩 기술의 중요한 목표는 비디오 품질 저하를 피하거나 최소화하면서 더 낮은 비트 전송률을 사용하는 형태로 비디오 데이터를 압축하는 것이다.
HEVC 표준의 첫 번째 버전은 2013년 10월에 확정되었는데, 이는 이전 세대 비디오 코딩 표준인 H.264/MPEG AVC에 비해 약 50%의 비트 전송률 절감 또는 동등한 지각 품질(perceptual quality)을 제공한다. HEVC 표준은 이전 표준보다 상당한 코딩 개선을 제공하지만, 추가 코딩 도구를 사용하면 HEVC보다 뛰어난 코딩 효율성을 달성할 수 있다는 증거가 있다. 이를 기반으로, VCEG와 MPEG는 미래의 비디오 코딩 표준화를 위한 새로운 코딩 기술 탐사 작업을 시작했다. 코딩 효율성을 실질적으로 향상시킬 수 있는 고급 기술에 대한 중요한 연구를 시작하기 위해 2015년 10월 ITU-T VECG와 ISO/IEC MPEG에 의해 공동 비디오 탐사 팀(Joint Video Exploration Team, JVET)이 구성되었다. JVET는 HEVC 테스트 모델(HM) 위에 몇 가지 추가 코딩 도구를 통합하여 공동 탐사 모델(joint exploration model, JEM)이라고 하는 하나의 참조 소프트웨어를 유지 관리했다.
ITU-T와 ISO/IEC에서는 HEVC를 뛰어넘는 비디오 압축 기능에 대한 공동 제안 요청서(call for proposal, CfP)를 발행하였다. 제 10차 JVET 회의에서 23개의 CfP 응답이 접수 및 평가되었으며, 이는 HEVC에 비해 압축 효율성이 약 40% 향상되었음을 입증했다. 이러한 평가 결과를 기반으로 JVET는 다목적 비디오 코딩(Versatile Video coding, VVC)이라고 명명된 차세대 비디오 코딩 표준을 개발하기 위한 새로운 프로젝트를 시작했다. VVC 표준의 참조 구현형태을 시연하기 위해 VVC 테스트 모델(VVC test model, VTM)이라는 하나의 참조 소프트웨어 코드베이스가 확립되었다.
본 개시는 신경망 기반 모델 필터링을 이용하여 비디오 코딩 효율을 향상시키는 것과 관련된 기술의 예를 제공한다.
본 개시의 제 1 양태에 따르면, 신경망을 사용하여 비디오 코딩에서 이미지 필터링을 수행하기 위한 방법이 제공된다. 방법은: 하나 이상의 QpMap 채널에서 복수의 양자화 파라미터(quantization parameter; QP) 맵(QpMap) 값을 신경망에 로딩 로딩하는 단계와; 입력 프레임(input frame)과 관련된 복수의 입력 QP 값을 조정하여 QP 스케일링 팩터(scaling factor)를 획득하는 단계; 및 QP 스케일링 팩터에 따라, 신경망에 입력 프레임을 학습하고 필터링하도록 신경망에 대한 복수의 QpMap 값을 조정하는 단계를 포함한다.
본 개시의 제 2 양태에 따르면, 신경망을 사용하여 비디오 코딩에서 이미지 필터링을 수행하기 위한 장치가 제공된다. 장치는 하나 이상의 프로세서 및 하나 이상의 프로세서에 결합되고 하나 이상의 프로세서에 의해 실행 가능한 명령을 저장하도록 구성된 메모리를 포함한다. 또한, 하나 이상의 프로세서는 명령의 실행시 제 1 양태에 따른 방법을 수행하도록 구성된다.
본 개시의 제 3 양태에 따르면, 하나 이상의 컴퓨터 프로세서에 의해 실행될 때, 하나 이상의 컴퓨터 프로세서로 하여금 제 2 양태에 따른 방법을 수행하도록 하는 컴퓨터 실행 가능 명령을 저장하는 비일시적 컴퓨터 판독 가능 저장 매체가 제공된다.
본 개시의 실시예에 대한 보다 구체적인 설명은 첨부된 도면에 도시된 특정 실시예를 참조하여 제공될 것이다. 이들 도면은 단지 일부 실시예만을 도시하며, 따라서 범위에 제한을 두는 것으로 간주되지 않는다는 점을 고려하여, 실시예는 첨부 도면을 사용하여 부가적인 구체성과 자세한 내용을 통해 기술되고 설명될 것이다.
도 1은 본 개시의 일부 구현형태에 따른 블록 기반 비디오 인코더를 도시하는 블록도이다.
도 2는 본 개시의 일부 구현형태에 따른 블록 기반 비디오 디코더를 도시하는 블록도이다.
도 3A는 본 개시의 일부 구현형태에 따른 사진 분할 트리 분리 모드(quaternary partitioning tree splitting mode)를 도시하는 개략도이다.
도 3B는 본 개시의 일부 구현형태에 따른 수직 이진 분할 트리 분리 모드(vertical binary partitioning tree splitting mode)를 도시하는 개략도이다.
도 3C는 본 개시의 일부 구현형태에 따른 수평 이진 분할 트리 분리 모드를 도시하는 개략도이다.
도 3D는 본 개시의 일부 구현형태에 따른 수직 삼진 분할 트리 분리 모드를 도시하는 개략도이다.
도 3E는 본 개시의 일부 구현형태에 따른 수평 삼진 분할 트리 분리 모드를 도시하는 개략도이다.
도 4는 본 개시의 일부 구현형태에 따른 입력층, 출력층 및 복수의 은닉층(hidden layer)으로 구성된 간단한 FC-NN을 도시한다.
도 5A는 본 개시의 일부 구현형태에 따른 두 개의 은닉층을 갖는 FC-NN을 도시한다.
도 5B는 본 개시의 일부 구현형태에 따라 두 번째 은닉층의 차원이 [W, H, 깊이]인 CNN의 예를 도시한다.
도 6은 본 개시의 일부 구현형태에 따라 입력 이미지에 공간 필터(spatial filter)를 적용하는 예를 도시한다.
도 7A는 본 개시의 일부 구현형태에 따라 항등 연결(identity connection)에 의해 입력과 함께 요소별로 추가되는 ResNet의 요소인 잔차 블록(residual block)을 포함하는 단일 이미지 초해상도(ResNet)를 도시한다.
도 7B는 본 개시의 일부 구현형태에 따라 잔차 모듈(residual module)을 적층하는 ResNet의 예를 도시한다.
도 8A는 본 개시의 일부 구현형태에 따라 전역 항등 연결(Global identity connection)이 적용된 복수의 잔차 블록을 포함하는 ResNet의 예를 도시한다.
도 8B는 본 개시의 일부 구현형태에 따라 비디오 코딩 효율성을 더욱 향상시키기 위해 복수의 잔차 블록을 적층하는 ResNet의 또 다른 예를 도시한다.
도 8C는 본 개시의 일부 구현형태에 따라 잔차 블록의 출력을 집계함으로써 단일 이미지 초해상도(single-image super-resolution, SISR)를 다루는 ResNet의 또 다른 예를 도시한다.
도 9는 본 개시의 일부 구현형태에 따른 비디오 코딩을 위한 이미지 필터링을 수행하기 위한 전형적인 신경망 기반 모델을 도시한다.
도 10은 본 개시의 일부 구현형태에 따른 영역 기반 특성 맵 해상도 제어를 도시한다.
도 11은 본 개시의 일부 구현형태에 따른 전형적인 QP-독립적 신경망 모델을 도시한다.
도 12A는 본 개시의 일부 구현형태에 따른 병치된(collocated) QpMap 채널 및 YUV 채널의 레이아웃의 예를 도시한다.
도 12B는 본 개시의 일부 구현형태에 따른 병치된 QpMap 채널 및 YUV 채널의 레이아웃의 예를 도시한다.
도 13은 본 개시의 일부 구현형태에 따른 신경망의 영역 2에서의 크로마 업-샘플링(Chroma up-sampling)을 도시한다.
도 14는 본 개시의 일부 구현형태에 따른 신경망의 영역 2에서의 루마 다운-샘플링(Luma down-sampling)을 도시한다.
도 15는 본 개시의 일부 구현형태에 따른 신경망의 영역 1에서의 루마 다운-샘플링을 도시한다.
도 16A는 본 개시의 일부 구현형태에 따른 병치된 QpMap 채널 및 YUV 채널의 레이아웃의 또 다른 예를 도시한다.
도 16B는 본 개시의 일부 구현형태에 따른 병치된 QpMap 채널 및 YUV 채널의 레이아웃의 또 다른 예를 도시한다.
도 17은 본 개시의 일부 구현형태에 따라 각각의 잔차 블록에서 수행되는 요소별 스케일링의 예를 도시한다.
도 18은 본 개시의 일부 구현형태에 따른 신경망을 사용하여 비디오 코딩에서 이미지 필터링을 수행하기 위한 장치를 도시하는 블록도이다.
도 19는 본 개시의 일부 구현형태에 따른 신경망을 사용하여 비디오 코딩에서 이미지 필터링을 수행하기 위한 프로세스를 도시하는 흐름도이다.
도 20은 본 개시의 일부 실시예에 따라 비디오 블록을 인코딩하고 디코딩하기 위한 시스템을 도시하는 블록도이다.
이제 특정 구현형태에 대해 자세히 언급할 것이며, 그 예는 첨부 도면에 도시되어 있다. 다음의 상세한 설명에서는 본원에 제시된 주제를 이해하는 데 도움이 되도록 수많은 비제한적인 특정 세부 사항이 제시된다. 그러나 다양한 대안이 사용될 수 있음이 본 기술 분야의 숙련자에게 명백할 것이다. 예를 들어, 본원에 제시된 주제가 디지털 비디오 기능을 갖는 다양한 유형의 전자 장치에서 구현될 수 있음이 본 기술 분야의 숙련자에게 명백할 것이다.
본 명세서 전반에 걸쳐 "일 실시형태", "실시형태", "실시예", "일부 실시형태", "일부 실시예" 또는 유사한 언어에 대한 언급은 기술된 특정 특징, 구조 또는 특성이 적어도 하나의 실시형태에 또는 실시예에 포함된다는 것을 의미한다. 하나 또는 일부 실시형태와 관련하여 기술된 특징, 구조, 요소 또는 특성은 명시적으로 달리 지정하지 않는 한 다른 실시형태에도 적용될 수 있다.
본 개시 전반에 걸쳐, "제 1", "제 2", "제 3" 등의 용어는 모두 명시적으로 달리 지정하지 않는 한 공간적이거나 시간적 순서를 암시하지 않고 관련된 요소, 예를 들어 장치, 구성요소, 구성, 단계 등을 언급하기 위한 명명법으로 사용된다. 예를 들어, "제 1 장치" 및 "제 2 장치"는 별도로 형성된 두 개의 장치, 또는 동일한 장치의 두 개의 부분, 구성요소, 작동 상태 등을 의미할 수 있으며 임의로 명명될 수 있다.
"모듈", "서브 모듈", "회로", "서브 회로", "회로망", "서브 회로망", "유닛" 또는 "서브 유닛"이라는 용어는 하나 이상의 프로세서에서 실행될 수 있는 코드 또는 명령을 저장하는 메모리(공유, 전용, 또는 그룹)를 포함할 수 있다. 모듈은 코드 또는 명령이 저장되어 있어가 저장되어 있지 않은 하나 이상의 회로를 포함할 수 있다. 모듈 또는 회로는 직접 또는 간접적으로 연결된 하나 이상의 구성요소를 포함할 수 있다. 이러한 구성요소는 서로 물리적으로 부착되어 있을 수 있거나 인접해 있을 수도 있고 그렇지 않을 수도 있다.
본원에서 사용된 "~하는 경우(if)" 또는 "~할 때(when)"라는 용어는 문맥에 따라 "~ 시(upon)" 또는 "~에 응답하여(in response to)"를 의미하는 것으로 이해될 수 있다. 이러한 용어는, 청구항에 나타날 때, 관련된 한계 또는 특징이 조건부 또는 선택적임을 나타내는 것을 아닐 수 있다. 예를 들어, 방법은 i) 조건 X가 존재하는 경우 기능 또는 동작 X'가 수행되는 단계, 및 ii) 조건 Y가 존재하는 경우 기능 또는 동작 Y'가 수행되는 단계를 포함할 수 있다. 방법은 기능 또는 동작 X'를 수행하는 능력 및 기능 또는 동작 Y'를 수행하는 능력 모두로 구현될 수 있다. 따라서 기능 X' 및 Y'는 방법을 여러 번 실행할 때 상이한 시간에 수행될 수 있다.
유닛 또는 모듈은 순수하게 소프트웨어로, 순수하게 하드웨어로, 또는 하드웨어와 소프트웨어의 조합으로 구현될 수 있다. 예를 들어, 순수 소프트웨어 구현에서 유닛 또는 모듈은 특정 기능을 수행하기 위해 함께 직접 또는 간접적으로 연결된 기능적으로 관련된 코드 블록 또는 소프트웨어 구성요소를 포함할 수 있다.
도 20은 본 개시의 일부 구현형태에 따라 비디오 블록을 병렬로 인코딩하고 디코딩하기 위한 예시적인 시스템(10)을 도시하는 블록도이다. 도 20에 도시된 바와 같이, 시스템(10)은 목적 장치(destination device, 14)에 의해 나중에 디코딩될 비디오 데이터를 생성하고 인코딩하는 소스 장치(source device, 12)를 포함한다. 소스 장치(12)와 목적 장치(14)는 데스크톱 또는 랩톱 컴퓨터, 태블릿 컴퓨터, 스마트폰, 셋톱 박스, 디지털 텔레비전, 카메라, 디스플레이 장치, 디지털 미디어 플레이어, 비디오 게임 콘솔, 비디오 스트리밍 장치 등을 포함하는 다양한 전자 장치 중 임의의 것을 포함할 수 있다. . 일부 구현형태에서, 소스 장치(12)와 목적 장치(14)는 무선 통신 기능을 구비하고 있다.
일부 구현형태에서, 목적 장치(14)는 링크(16)를 통해 디코딩될 인코딩된 비디오 데이터를 수신할 수 있다. 링크(16)는 인코딩된 비디오 데이터를 소스 장치(12)로부터 목적 장치(14)로 이동시킬 수 있는 임의의 유형의 통신 매체 또는 장치를 포함할 수 있다. 하나의 예로서, 링크(16)는 소스 장치(12)가 인코딩된 비디오 데이터를 실시간으로 목적 장치(14)에 직접 전송할 수 있도록 하는 통신 매체를 포함할 수 있다. 인코딩된 비디오 데이터는 무선 통신 프로토콜과 같은 통신 표준에 따라 변조되어 목적 장치(14)로 전송될 수 있다. 통신 매체는 무선 주파수(RF) 스펙트럼 또는 무선 주파수(RF) 스펙트럼 또는 하나 이상의 물리적 전송 라인과 같은 임의의 무선 또는 유선 통신 매체를 포함할 수 있다. 통신 매체는 근거리 통신망, 광역 통신망, 또는 인터넷과 같은 글로벌 네트워크와 같은 패킷 기반 네트워크의 일부를 형성할 수 있다. 통신 매체는 소스 장치(12)로부터 목적 장치(14)로의 통신을 원활하게 하는 데 유용할 수 있는 라우터, 스위치, 기지국, 또는 임의의 다른 장비를 포함할 수 있다.
일부 다른 구현형태에서, 인코딩된 비디오 데이터는 출력 인터페이스(22)로부터 저장 장치(32)로 전송될 수 있다. 이어서, 저장 장치(32) 내의 인코딩된 비디오 데이터는 입력 인터페이스(28)를 통해 목적 장치(14)에 의해 액세스될 수 있다. 저장 장치(32)는 하드 드라이브, 블루레이 디스크, 디지털 다기능 디스크(Digital Versatile Disk, DVD), 콤팩트 디스크 읽기 전용 메모리(Compact Disc Read-Only Memory, CD-ROM), 플래시 메모리, 휘발성 또는 비휘발성 메모리, 또는 인코딩된 비디오 데이터를 저장하기 위한 기타 적합한 디지털 저장 매체와 같은 다양한 분산형 또는 국소적으로 액세스되는 데이터 저장 매체 중 임의의 것을 포함할 수 있다. 또 다른 예로서, 저장 장치(32)는 소스 장치(12)에 의해 생성된 인코딩된 비디오 데이터를 보유할 수 있는 파일 서버 또는 다른 중간 저장 장치에 해당할 수 있다. 목적 장치(14)는 저장 장치(32)로부터 스트리밍 또는 다운로드를 통해 저장된 비디오 데이터에 액세스할 수 있다. 파일 서버는 인코딩된 비디오 데이터를 저장하고 인코딩된 비디오 데이터를 목적 장치(14)로 전송할 수 있는 임의 유형의 컴퓨터일 수 있다. 예시적인 파일 서버는 웹 서버(예를 들어, 웹사이트용), 파일 전송 프로토콜(File Transfer Protocol, FTP) 서버, 네트워크 결합 스토리지(Network Attached Storage, NAS) 장치 또는 로컬 디스크 드라이브를 포함한다. 목적 장치(14)는 무선 채널(예를 들어, 무선 충실도(Wireless Fidelity, Wi-Fi) 연결), 유선 연결(예를 들어, 디지털 가입자 회선(Digital Subscriber Line, DSL), 케이블 모뎀, 등) 또는 파일 서버에 저장된 인코딩된 비디오 데이터에 액세스하는 데 적합한 이 둘의 조합을 포함하는 임의의 표준 데이터 연결을 통해 인코딩된 비디오 데이터에 액세스할 수 있다. 저장 장치(32)로부터의 인코딩된 비디오 데이터의 전송은 스트리밍 전송, 다운로드 전송, 또는 이 둘의 조합일 수 있다.
도 20에 도시된 바와 같이, 소스 장치(12)는 비디오 소스(18)와, 비디오 인코더(20) 및 출력 인터페이스(22)를 포함한다. 비디오 소스(18)는 비디오 캡처 장치, 예를 들어 비디오 카메라, 이전에 캡처된 비디오를 포함하는 비디오 아카이브(video archive), 비디오 콘텐츠 제공자로부터 비디오를 수신하기 위한 비디오 공급 인터페이스, 및/또는 소스 비디오인 컴퓨터 그래픽 데이터를 생성하기 위한 컴퓨터 그래픽 시스템, 또는 이러한 소스의 조합과 같은 소스를 포함할 수 있다. 하나의 예로서, 비디오 소스(18)가 보안 감시 시스템의 비디오 카메라인 경우, 소스 장치(12)와 목적 장치(14)는 카메라 폰 또는 비디오 폰을 형성할 수 있다. 그러나, 본 출원에서 기술된 구현형태는 일반적인 비디오 코딩에 적용될 수 있고, 무선 및/또는 유선 응용에 적용될 수 있다.
캡처된, 미리 캡처된, 또는 컴퓨터로 생성된 비디오는 비디오 인코더(20)에 의해 인코딩될 수 있다. 인코딩된 비디오 데이터는 소스 장치(12)의 출력 인터페이스(22)를 통해 목적 장치(14)로 직접 전송될 수 있다. 인코딩된 비디오 데이터는 또한 (또는 대안으로) 디코딩 및/또는 재생을 위해 목적 장치(14) 또는 다른 장치에 의한 이후의 액세스를 위해 저장 장치(32)에 저장될 수 있다. 출력 인터페이스(22)는 모뎀 및/또는 송신기를 더 포함할 수 있다.
목적 장치(14)는 입력 인터페이스(28)와, 비디오 디코더(30) 및 디스플레이 장치(34)를 포함한다. 입력 인터페이스(28)는 수신기 및/또는 모뎀을 포함할 수 있고 링크(16)를 통해 인코딩된 비디오 데이터를 수신할 수 있다. 링크(16)를 통해 전달되거나 저장 장치(32)에 제공되는 인코딩된 비디오 데이터는 비디오 데이터를 디코딩할 때 비디오 디코더(30)에 의한 사용을 위해 비디오 인코더(20)에 의해 생성된 다양한 구문 요소를 포함할 수 있다. 이러한 구문 요소는 통신 매체를 통해 전송되거나, 저장 매체에 저장되거나, 파일 서버에 저장되는 인코딩된 비디오 데이터 내에 포함될 수 있다.
일부 구현형태에서, 목적 장치(14)는 통합 디스플레이 장치일 수 있는 디스플레이 장치(34) 및 목적 장치(14)와 통신하도록 구성되는 외부 디스플레이 장치를 포함할 수 있다. 디스플레이 장치(34)는 디코딩된 비디오 데이터를 사용자에게 디스플레이하고, 액정 디스플레이(LCD), 플라즈마 디스플레이, 유기 발광 다이오드(OLED) 디스플레이, 또는 또 다른 유형의 디스플레이 장치와 같은 임의의 다양한 디스플레이 장치를 포함할 수 있다.
비디오 인코더(20)와 비디오 디코더(30)는 VVC, HEVC, MPEG-4, Part 10, AVC, 또는 이러한 표준의 확장과 같은 독점 또는 산업 표준에 따라 작동할 수 있다. 본 출원은 특정 비디오 인코딩/디코딩 표준에 제한되지 않으며 다른 비디오 인코딩/디코딩 표준에도 적용될 수 있다는 것을 이해해야 한다. 일반적으로 소스 장치(12)의 비디오 인코더(20)는 현재 또는 미래 표준 중 임의의 표준에 따라 비디오 데이터를 인코딩하도록 구성될 수 있을 것으로 고려된다. 마찬가지로, 목적 장치(14)의 비디오 디코더(30)는 현재 또는 미래 표준 중 임의의 표준에 따라 비디오 데이터를 디코딩하도록 구성될 수 있을 것으로 고려된다.
비디오 인코더(20)와 비디오 디코더(30)는 각각 하나 이상의 마이크로프로세서, 디지털 신호 프로세서(Digital Signal Processor, DSP), 주문형 집적 회로(Application Specific Integrated Circuit, ASIC), 필드 프로그래머블 게이트 어레이(Field Programmable Gate Array, FPGA), 이산 로직, 소프트웨어, 하드웨어, 펌웨어 또는 이들의 임의의 조합과 같은 다양한 적합한 인코더 및/또는 디코더 회로 중 임의의 것으로 구현될 수 있다. 부분적으로 소프트웨어로 구현되는 경우, 전자 장치는 해당 소프트웨어에 대한 명령을 적합한 비일시적 컴퓨터 판독 가능 매체에 저장하고, 본 개시에 개시된 비디오 인코딩/디코딩 동작을 수행하기 위해 하나 이상의 프로세서를 사용하여 하드웨어에서 명령을 실행할 수 있다. 비디오 인코더(20)와 비디오 디코더(30)는 각각 하나 이상의 인코더 또는 디코더에 포함될 수도 있고, 이들 중 어느 하나는 조합된 인코더/디코더(combined encoder/decoder, CODEC)의 일부로서 각각의 장치에 통합될 수도 있다.
HEVC와 마찬가지로, VVC는 블록 기반 하이브리드 비디오 코딩 프레임워크를 기반으로 구축된다. 도 1은 본 개시의 일부 구현형태에 따른 블록 기반 비디오 인코더를 도시하는 블록도이다. 인코더(100)에서, 입력 비디오 신호는 블록별로 처리되는데, 이를 코딩 유닛(coding unit, CU)이라고 한다. 인코더(100)는 도 20에 도시된 바와 같은 비디오 인코더(20)일 수 있다. VTM-1.0에서, CU는 최대 128x128픽셀까지 가능하다. 그러나 쿼드-트리(quad-tree)만을 기반으로 블록을 분할하는 HEVC와 달리, VVC에서는 쿼드/이진/삼진 트리를 기반으로 다양한 로컬 특성에 적응하기 위해 하나의 코딩 트리 유닛(coding tree unit, CTU)이 CU로 분할된다. 또한 HEVC에서의 다중 파티션 유닛 유형의 개념이 제거된다, 즉 VVC에서는 코딩 유닛(CU), 예측 유닛(prediction unit, PU) 및 변환 유닛(transform unit, TU)의 분리가 더 이상 존재하지 않는다. 대신에, 각각의 CU는 추가 분할 없이 항상 예측과 변환 모두의 기본 유닛으로 사용된다. 다중-유형 트리 구조에서, 하나의 CTU가 먼저 쿼드-트리 구조로 분할된다. 그런 다음 각각의 쿼드-트리 리프 노드(quad-tree leaf node)가 이진 및 삼진 트리 구조로 더 분할될 수 있다.
도 3A 내지 도 3E는 본 개시의 일부 구현형태에 따른 다중-유형 트리 분리 모드를 도시하는 개략도이다. 도 3A 내지 도 3E는 각각 사진 분할(도 3A), 수직 이진 분할(도 3B), 수평 이진 분할(도 3C), 수직 삼진 분할(도 3D) 및 수평 삼진 분할(도 3E)을 포함하는 다섯 가지 분할 유형을 나타낸다.
주어진 각각의 비디오 블록에 대해, 공간 예측(spatial prediction) 및/또는 시간 예측(temporal prediction)이 수행될 수 있다. 공간 예측(또는 "인트라 예측")은 동일한 비디오 픽처/슬라이스 내의 이미 코딩된 이웃 블록 샘플(참조 샘플이라고 함)의 픽셀을 사용하여 현재 비디오 블록을 예측한다. 공간 예측은 비디오 신호에 내재된 공간 중복성을 줄인다. 시간 예측("인터 예측" 또는 "움직임 보상 예측(motion compensated prediction)"이라고도 함)은 이미 코딩된 비디오 픽처에서 재구성된 픽셀을 사용하여 현재 비디오 블록을 예측한다. 시간 예측은 비디오 신호에 내재된 시간 중복성을 줄인다. 주어진 CU에 대한 시간 예측 신호는 일반적으로 하나 이상의 움직임 벡터(motion vector, MV)에 의해 표현되며, 이는 현재 CU와 시간적 참조 간의 움직임의 양과 방향을 나타낸다. 또한, 복수의 참조 픽처가 지원되는 경우, 하나의 참조 픽처 인덱스(reference picture index)가 추가로 전송되는데, 이는 참조 픽처 저장소의 어느 참조 픽처에서 시간 예측 신호가 나오는지 식별하는 데 사용된다.
공간 및/또는 시간 예측 이후, 인코더(100)의 인트라/인터 모드 결정 회로(121)는 예를 들어 율-왜곡 최적화(rate-distortion optimization) 방법을 기반으로 최상의 예측 모드를 선택한다. 그런 다음, 블록 예측기(120)는 현재 비디오 블록에서 빼지고; 생성된 예측 잔차는 변환 회로(102)와 양자화 회로(104)를 사용하여 비상관화(de-correlate)된다. 생성된 양자화된 잔차 계수(residual coefficient)는 역-양자화 회로(inverse quantization circuitry, 116)에 의해 역-양자화되고 역-변환 회로(inverse transform circuitry, 118)에 의해 역-변환되어 재구성된 잔차를 형성하는데, 이는 이후 예측 블록에 다시 추가되어 CU의 재구성된 신호를 형성한다. 또한, 디블로킹 필터(deblocking filter), 샘플 적응형 오프셋(sample adaptive offset, SAO), 및/또는 적응형 인-루프 필터(adaptive in-loop filter, ALF)와 같은 인-루프 필터링(115)이 픽처 버퍼(117)의 참조 픽처 저장소에 저장되기 전에 재구성된 CU에 적용되어 향후 비디오 블록을 코딩하는 데 사용될 수 있다. 출력 비디오 비트스트림(114)을 형성하기 위해, 코딩 모드(인터 또는 인트라), 예측 모드 정보, 모션 정보 및 양자화된 잔차 계수는 모두 엔트로피 코딩 유닛(entropy coding unit, 106)으로 전송되어 추가로 압축되고 패킹되어 비트스트림을 형성한다.
예를 들어, 디블로킹 필터는 AVC, HEVC 및 최신 버전의 VVC에서도 사용 가능하다. HEVC에서는 코딩 효율성을 더욱 향상시키기 위해 SAO라고 하는 추가적인 인-루프 필터가 정의되어 있다. 현재 버전의 VVC 표준에서는 ALF라고 하는 또 다른 인-루프 필터가 활발히 연구 중에 있으며, 최종 표준에 포함될 가능성이 높다.
이러한 인-루프 필터 작업은 선택 사항이다. 이러한 작업을 수행하면 코딩 효율성과 시각적 품질을 향상시키는 데 도움이 된다. 이러한 작업은 또한 계산 복잡도(computational complexity)를 줄이기 위해 인코더(100)에 의한 결정에 따라 비활성화될 수 있다.
인트라-예측은 일반적으로 필터링되지 않은 재구성된 픽셀을 기반으로 하는 반면, 인터 예측은 이러한 필터 옵션이 인코더(100)에 의해 활성화되는 경우 필터링된 재구성된 픽셀을 기반으로 한다는 점에 주목해야 한다.
도 2는 많은 비디오 코딩 표준과 함께 사용될 수 있는 블록 기반 비디오 디코더(200)를 도시하는 블록도이다. 이 디코더(200)는 도 1의 인코더(100)에 존재하는 재구성 관련 섹션과 유사하다. 블록 기반 비디오 디코더(200)는 도 1에 도시된 바와 같은 비디오 디코더(30)일 수 있다. 디코더(200)에서, 입력 비디오 비트스트림(201)이 먼저 엔트로피 디코딩(202)을 통해 디코딩되어 양자화된 계수 레벨 및 예측 관련 정보를 도출한다. 그런 다음, 양자화된 계수 레벨은 역-양자화(204) 및 역-변환(206)을 통해 처리되어 재구성된 예측 잔차를 획득한다. 인트라/인터 모드 선택기(212) 내에 구현된 블록 예측기 메커니즘은 디코딩된 예측 정보를 기반으로 인트라-예측(208) 또는 움직임 보상(210)을 수행하도록 구성된다. 역-변환(206)으로부터 재구성된 예측 잔차 및 합산기(summer, 214)를 사용하여 블록 예측기 메커니즘에 의해 생성된 예측 출력을 합산함으로써 필터링되지 않은 재구성된 픽셀 세트가 획득된다.
재구성된 블록은 참조 픽처 저장소로 기능하는 픽처 버퍼(213)에 저장되기 전에 인-루프 필터(209)를 더 거칠 수 있다. 픽처 버퍼(213)의 재구성된 비디오는 디스플레이 장치를 구동하기 위해 전송될 수 있을 뿐만 아니라, 미래 비디오 블록을 예측하는 데에도 사용될 수 있다. 인-루프 필터(209)가 활성화되어 있는 상황에서는 재구성된 픽셀에 대해 필터링 작업이 수행되어 최종 재구성된 비디오 출력(222)을 도출한다.
본 개시는 상기한 비디오 코딩 표준 또는 기술의 이미지 필터링 설계를 개선하기 위한 것이다. 본 개시에서 제안된 필터링 방법은 신경망 기반으로서, 이는 인-루프 필터링의 일부로서, 예를 들어 디블로킹 필터와 샘플 적응형 오프셋(SAO) 사이에서, 또는 현재 비디오 코딩 기술을 개선하기 위한 포스트-루프 필터링의 일부로서, 또는 현재 비디오 코딩 기술 이후의 후처리 필터링의 일부로서 적용될 수 있다.
완전 연결 신경망(fully connected neural network, FC-NN), 합성곱 신경망(convolutional neural network, CNN), 장단기 기억망(long short-term memory network, LSTM)과 같은 신경망 기술은 이미 컴퓨터 비전 및 비디오 이해(video understanding)를 포함한 많은 연구 분야에서 상당한 성공을 달성했다.
완전 연결 신경망(FC-NN)
도 4는 본 개시의 일부 구현형태에 따른 입력층(input layer), 출력층(output layer) 및 복수의 은닉층(hidden layer)으로 구성된 간단한 FC-NN을 도시하고 있다. k번째 층에서, 출력 fk (xk-1,Wk,Bk)는 다음과 같이 생성된다:
(1)
(2)
여기서 xk-1∈RM은 (k-1)번째 층의 출력이고, Wk∈RM*N과 Bk∈RN은 k번째 층에서의 가중치와 편향이다. δ(·)는 활성화 함수, 예를 들어 방정식 (3)에 정의된 정류된 선형 유닛(Rectified Linear Unit, ReLU) 함수이다.
(3)
따라서 K-층 FC-NN의 일반적인 형태는 다음과 같이 표현된다:
(4), 여기서 1 ≤ k ≤ K임.
보편적 근사 가설과 방정식 (4)에 따르면, 임의의 연속 함수 g(x)와 일부 ε>0이 주어지면, 비선형성의 합리적인 선택, 예를 들어 ReLU를 갖는 신경망 f(x)가 존재하여, 가 성립된다. 따라서 많은 실증적 연구에서는 표면 아래에서 설명 가능한 특징을 추출하기 위해 은닉 변수(hidden variable)가 있는 모델을 모방하는 근사치로서 신경망을 적용했다. 예를 들어, 이미지 인식에 적용하면, FC-NN은 연구자들이 단일 픽셀뿐만 아니라 점점 더 깊고 복잡한 하위 구조, 예를 들어 에지, 질감, 기하학적 모양 및 객체를 이해하는 시스템을 구축하는 데 도움이 된다.
합성곱 신경망(CNN)
도 5A는 본 개시의 일부 구현형태에 따른 두 개의 은닉층을 갖는 FC-NN을 도시하고 있다. 이미지 또는 비디오 응용에 널리 사용되는 인기 있는 신경망 아키텍처인 CNN은 도 5A에 도시된 FC-NN과 매우 유사하며, 여기에는 가중치와 편향 지표가 있다. CNN은 신경망의 3D 버전으로 볼 수 있다. 도 5B는 본 개시의 일부 구현형태에 따라 두 번째 은닉층의 차원이 [W, H, 깊이]인 CNN의 예를 도시하고 있다. 도 5B에서, 뉴런은 3차원 구조(폭, 높이, 깊이)로 배치되어 CNN을 형성하고, 두 번째 은닉층이 시각화된다. 이 예에서, 입력층은 입력 이미지 또는 비디오 프레임을 보유하고, 따라서 폭과 높이가 입력 데이터와 동일하다. 이미지 또는 비디오 응용에 적용하기 위해, CNN의 각각의 뉴런은 입력에 맞춰 확장된 깊이를 갖는 공간 필터 요소이다. 예를 들어 입력 이미지에 세 개의 색상 성분이 있는 경우 깊이는 3이다.
도 6은 본 개시의 일부 구현형태에 따라 입력 이미지에 공간 필터를 적용하는 예를 도시하고 있다. 도 6에 도시된 바와 같이, CNN의 기본 요소의 차원은 [Filterwidth,Filterheight,Inputdepth,Outputdepth]로 정의되고, 이 예에서는 [5, 5, 3, 4]로 설정된다. 각각의 공간 필터는 입력 이미지에 대해 5*5*3 가중치를 사용하여 2차원 공간 합성곱(spatial convolution)을 수행한다. 입력 이미지는 64x64x3 이미지일 수 있다. 그러면 네 개의 합성곱 결과가 출력된다. 따라서 경계를 추가적인 두 개의 픽셀로 패딩(padding)하면, 필터링된 결과의 차원은 [64+4, 64+4, 4]가 된다.
잔차 네트워크(ResNet)
이미지 분류에서는 신경망의 깊이가 증가할수록 정확도가 포화되고 급속하게 저하된다. 더 구체적으로 말하면, 심층 신경망에 더 많은 층을 추가하면 더 높은 훈련 오류를 초래하는데, 기울기가 신경망을 따라 점진적으로 사라지고 마지막에는 기울기가 0에 가까워지기 때문이다. 이후 잔차 블록으로 구성된 ResNet은 항등 연결을 도입함으로써 성능 저하 문제를 해결하게 된다.
도 7A는 본 개시의 일부 구현형태에 따라 항등 연결에 의해 입력과 함께 요소별로 추가되는 ResNet의 요소인 잔차 블록을 포함하는 ResNet을 도시하고 있다. 도 7A에 도시된 바와 같이, ResNet의 기본 모듈은 잔차 블록과 항등 연결로 구성된다. 보편적 근사 가설에 따르면, 입력 x가 주어지면 잔차 블록 내의 활성화 함수(activation function)가 있는 가중 층들은 출력 H(x)=F(x)+x가 아닌 은닉 함수(hidden function) F(x)를 근사한다.
비선형 다층 신경망을 적층함으로써, 잔차 블록은 입력 이미지의 국소적 특성을 나타내는 특징을 탐색한다. 추가적인 파라미터와 계산 복잡도를 도입하지 않고도, 항등 연결은 도 7A에 도시된 바와 같이 하나 이상의 비선형 가중 층을 건너뛰어 딥 러닝 네트워크를 훈련 가능하게 만드는 것으로 입증되었다. 가중 층을 건너뛰면 잔차 층들의 차동 출력(differential output)은 다음과 같이 표현될 수 있다:
(5)
따라서 미분항(differential term) 이 0을 향해 점진적으로 감소하더라도 항등항(identity term)은 0의 기울기에 갇히고 정보 전파를 차단하는 대신에 계속해서 입력을 다음 층으로 전달할 수 있다. 뉴런이 다음 뉴런으로 정보를 전파할 수 없으면 죽은 뉴런으로 간주되며, 이는 신경망에서 훈련 불가능한 요소이다. 추가 이후, 또 다른 비선형 활성화 함수를 적용할 수도 있다. 도 7B는 본 개시의 일부 구현형태에 따라 잔차 모듈을 적층하는 ResNet의 예를 도시하고 있다. 도 7B에 도시된 바와 같이, 잔차 특징은 다음 모듈로 전파되기 전에 항등 특징(identity feature)과 융합된다.
ResNet의 변형
도 8A 및 도 8B에는 단일 이미지 초해상도(SISR)를 위한 복원된 이미지 품질을 개선하고 이미지 분류의 정확도를 높이기 위해 ResNet의 여러 변형이 제안되어 있다. 도 8A는 본 개시의 일부 구현형태에 따라 전역 항등 연결이 적용된 복수의 잔차 블록을 포함하는 ResNet의 예를 도시하고 있다. 도 8A에는 업-샘플링된 이미지의 시각적 품질을 향상시키기 위해 ResNet의 변형이 제안되어 있다. 구체적으로, 훈련 과정의 수렴을 용이하게 하기 위해 첫 번째 잔차 블록의 입력부터 마지막 잔차 블록의 출력까지 전역 항등 연결이 적용된다.
도 8B는 본 개시의 일부 구현형태에 따라 비디오 코딩 효율성을 더욱 향상시키기 위해 복수의 잔차 블록을 적층하는 ResNet의 또 다른 예를 도시하고 있다. 각각의 잔차 블록은 연결 작업을 통해 직접 자신의 입력을 다음 유닛으로 전파한다. 다시 말해서, 동일한 연결을 통해 다중 계층 정보가 흐를 수 있으므로 각각의 중간 블록은 이전 유닛으로부터 다중 계층 정보를 수신할 수 있다. 도 8B의 각각의 잔차 블록의 파라미터는 연결 작업으로 인해 층의 수가 증가함에 따라 선형적으로 증가한다.
도 8A 및 도 8B에서, 잔차 정보가 나중의 모듈로 전파되기 전에 잔차 특징은 하나 또는 여러 모듈을 거쳐야 한다. 항등 연결로 인해 이러한 잔차 특징은 특정 계층에서 신속하게 항등 특징과 결합되어 이후 모듈로 전파되지 않을 수 있다. 따라서 이전 두 변형의 잔차 특징은 국부적으로 제한되어 성능 저하를 일으킬 수 있다.
도 8C는 본 개시의 일부 구현형태에 따라 잔차 블록의 출력을 집계함으로써 단일 이미지 초해상도(SISR)를 다루는 ResNet의 또 다른 예를 도시하고 있다. 도 8C에서, 마지막 잔차 블록의 출력이 이전의 세 개 모듈의 모든 출력과 연결된다. 첫 번째 잔차 블록의 입력과 함께 요소별 추가를 적용하기 전에, 연결된 계층적 특징은 합성곱 연산에 의해 융합된다. 처음 두 가지 변형과 달리, 집계된 ResNet은 마지막 잔차 모듈에 비-국소적 특징을 적용할 수 있도록 하고, 따라서 계층 정보가 다음 블록에 전파되어 더욱 차별적인 방식으로 특징 표현이 달성될 수 있다.
본 개시에서는 현재 하이브리드 비디오 코딩의 코딩 효율을 더욱 향상시키기 위해 신경망 기반 영상 필터링과 관련된 방법 및 장치가 제안된다. 제안된 방법 및 장치는 인-루프 필터링의 일부로서, 예를 들어 도 2에 도시된 바와 같이 디블로킹 필터와 샘플 적응형 오프셋(SAO) 사이에서, 또는 현재 비디오 코딩 기술을 개선하기 위한 포스트-루프 필터링의 일부로서, 또는 현재 비디오 코딩 기술 이후의 후처리 필터링의 일부로서 적용될 수 있다.
도 9는 본 개시의 일부 구현형태에 따른 비디오 코딩을 위한 이미지 필터링을 수행하기 위한 전형적인 신경망 기반 모델을 도시하고 있다. YUV 성분은 신경망 모델에 병렬로 제공될 수 있다. 이러한 YUV 성분의 병렬 입력은 처리 지연을 줄이는 것뿐만 아니라 신경망 모델이 병치된 YUV 정보, 예를 들어 교차 성분 필터링 및/또는 루마 유도 크로마 필터링(luma guided chroma filtering) 간의 상관 관계를 학습하는 데에도 유용할 수 있다. 이러한 신경망 모델 기반 필터의 온/오프 제어는 제어 세분성(control granularity)과 시그널링 오버헤드(signaling overhead) 사이의 합리적인 균형을 위해 코딩 트리 유닛(CTU) 수준에서 수행될 수 있다. YUV 성분에 대한 신경망 기반 필터의 온/오프 제어는 동일하거나 다른 세분성에서 수행될 수 있다. 예를 들어, Y 성분에 대한 신경망 모델 기반 필터의 온/오프 제어는 CTU 레벨에서 수행될 수 있는 반면, U 및 V 성분에 대한 온/오프 제어는 예를 들어 CTU 레벨 플래그 시그널링 오버헤드를 줄이기 위해 프레임 레벨에서 수행될 수 있다.
특성 맵 해상도 정렬
CTU 레벨의 YUV 정보가 도 9에 도시된 바와 같이 신경망 모델 필터에 제공되면, YUV CTU 패치의 해상도는 동일할 수도 있고 동일하지 않을 수도 있다. 예를 들어, 인코딩된 비디오 콘텐츠가 YUV420인 경우, 세 개의 병치된 YUV 패치의 해상도는 동일하지 않을 수 있다. 이 경우 해상도 정렬이 필요하다. 더 쉽게 설명하기 위해, 본 개시에서 제안된 모든 방법 및 장치는 비디오 콘텐츠가 YUV420이라고 가정하고 있다. YUV422, YUV444와 같은 다른 콘텐츠 형식의 경우에는 제안된 방법을 쉽게 확장할 수 있다.
일부 예에서, YUV 패치가 신경망에 진입하기 전에 해상도 정렬이 수행될 수 있다.
일부 예에서, 하나의 128x128 Y 패치가 하나의 64x64 패치 또는 네 개의 64x64 패치로 다운-샘플링될 수 있다. 네 개의 64x64 패치가 생성되면 원본 128x128 패치의 모든 정보가 유지되고 네 개의 패치에 분산될 수 있다. 원본 128x128 패치의 정보 분산에 사용되는 방법은 파티션 기반일 수 있다. 예를 들어 하나의 64x64 패치는 원본 128x128 패치의 왼쪽 상단에서 나올 수 있고 다른 64x64 패치는 원본 128x128 패치의 오른쪽 상단에서 나올 수 있다. 대안으로, 원본 128x128 패치의 정보 분산에 사용되는 방법은 인터리브(interleave) 기반일 수 있다. 예를 들어 원본 128x128 패치의 모든 네 개의 인접한 샘플은 네 개의 64x64 패치에 균등하게 분산된다.
일부 예에서는 하나의 64x64 U 또는 V 패치가 하나의 128x128 패치로 업-샘플링될 수 있다.
일부 예에서, YUV 패치가 신경망에 입력된 후에 해상도 정렬이 수행될 수 있다. 하나의 예로서, Y 입력 해상도를 감소시켜 UV 입력과 일치시킬 수 있다. 이를 달성하는 한 가지 방법은 UV 입력에 비해 두 배의 스트라이드 크기(stride size)를 갖는 합성곱 계층을 사용하는 것이다. 이 예에서는 신경망 끝에서 모델의 출력이 입력과 동일한 해상도를 갖도록 Y 콘텐츠를 확대하기 위해 해상도 증가 계층이 필요하다. 이를 달성하는 한 가지 방법은 픽셀 셔플 레이어(pixel shuffle layer)를 사용하여 Y 해상도를 확대하는 것이다. 다른 예에서, UV 입력 해상도를 증가시켜 Y 입력과 일치시킬 수 있다. 이를 달성하는 한 가지 방법은 픽셀 셔플 레이어를 사용하여 신경망 시작 부분에서 UV를 확대하고, 이후 신경망 끝 부분에서 축소하는 것이다.
특성 맵 해상도 제어
특성 맵 해상도는 신경망 처리 오버헤드에 비례적으로 영향을 미치지만 신경망의 성능에는 비례적으로 영향을 미치지 않을 수 있다. 모델 필터링의 계산 복잡도를 제어하기 위해, 잔차 블록의 수, 각각의 잔차 블록에서 합성곱 계층의 입력 및 출력 채널의 수와 같은 다양한 솔루션을 사용할 수 있다. 합성곱 계층의 특성 맵의 해상도 제어는 계산 복잡도를 제어하기 위한 또 다른 효과적인 옵션이다.
도 10은 본 개시의 일부 구현형태에 따른 영역 기반 특성 맵 해상도 제어를 도시하고 있다. 도 10에 도시된 바와 같이, 계산 복잡도 제어를 위해 특성 맵 해상도를 조절하기 위해 세 개의 영역이 사용될 수 있다(이를 영역 기반 특성 맵 해상도 제어라고도 할 수 있다). 영역 1에서는 입력 YUV 패치의 해상도가 결정되고 해당 확대/축소 작업이 수행된다. 예를 들어, "특성 맵 해상도 정렬"에서 소개된 업/다운-샘플링 방법이다. 이에 대한 예가 도 15에 도시되어 있다.
도 15는 본 개시의 일부 구현형태에 따른 신경망의 영역 1에서의 루마 다운-샘플링을 도시하고 있다. 도 15에 도시된 바와 같이, 원래 Y 패치는 신경망에 입력되기 전에 영역 1에서 네 개의 다운-샘플링된 Y 패치로 다운-샘플링된다. 예를 들어, 하나의 128x128 Y 패치가 네 개의 64x64 Y 패치로 다운-샘플링될 수 있다. 업-샘플링과 같은 역연산(inverse operation)은 신경망 처리가 완료된 후 영역 1에서 수행된다. 도 15에 도시된 바와 같이, 신경망에 의해 출력된 네 개의 다운-샘플링된 Y 패치가 하나의 원본 Y 패치로 업-샘플링된다. 예를 들어, 네 개의 64x64 Y 패치가 하나의 128x128 Y 패치로 업-샘플링될 수 있다.
영역 2에서는 YUV 연결 전에 입력 YUV 패치의 해상도가 결정되고 해당 확대/축소 작업이 수행된다. 이 영역은 신경망의 시작 부분에 위치하므로, 축소 작업이 수행될 경우, 입력 정보가 크게 손실될 수 있으며 모델 훈련 후의 전반적인 성능이 저하될 수 있다. 두 가지 예가 각각 도 13 및 14에 도시되어 있다.
도 13은 본 개시의 일부 구현형태에 따른 신경망의 영역 2에서의 크로마 업-샘플링을 도시하고 있다. 도 13에 도시된 바와 같이, UV 패치는 신경망에 입력된 후 신경망의 영역 2에서 해당하는 합성곱 블록 또는 계층에 의해 확대된다. 도 13에 도시된 바와 같이, 영역 3의 마지막 잔차 블록에 의해 출력된 해당 UV 패치에 대해 역연산, 예를 들어 축소 작업이 수행된다.
도 14는 본 개시의 일부 구현형태에 따른 신경망의 영역 2에서의 루마 다운-샘플링을 도시하고 있다. 도 14에 도시된 바와 같이, Y 패치는 신경망에 입력된 후 신경망의 영역 2에서 해당하는 합성곱 블록 또는 계층에 의해 축소된다. 도 14에 도시된 바와 같이, 영역 3의 마지막 잔차 블록에 의해 출력된 해당 Y 패치에 대해 역연산, 즉 축소 작업이 수행된다.
영역 3에서는 입력 YUV 패치의 해상도가 이전의 잔차 블록에서 확대/축소될 수 있고, 이후의 잔차 블록에서는 역연산, 예를 들어 축소/확대 작업이 수행될 수 있다. 이 영역은 YUV 연결 이후에 위치하므로, 축소 작업이 수행될 경우, 입력 정보가 영역 2보다는 훨씬 적게 손실될 수 있는데, 대부분의 입력 정보가 정보 학습에 충분한 깊이를 가진 이전의 합성곱 계층에서 이미 캡처되었거나 학습되었기 때문이다. 예를 들어, 영역 2 이후에는 UV가 최대 128x128로 확대된 세 채널의 YUV 콘텐츠가 생성된다. 이 영역은 신경망의 시작 부분에 위치하므로, 축소 작업이 수행될 경우, 입력 정보가 크게 손실될 수 있으며 모델 훈련 후의 전반적인 성능이 저하될 수 있다. 두 가지 예가 각각 도 13 및 14에 도시되어 있다. Y 입력 정보는 연결 전에 이미 이전 합성곱 계층에서 학습/추출 및 분산/복제되었을 수 있다. 대안으로, 첫 번째 잔차 블록 이후에 축소 작업이 수행될 수 있는데, 첫 번째 잔차 블록이 Y 입력 정보 특징을 학습/추출하기에 충분한 채널을 가질 수 있기 때문이다.
QP 독립적 신경망 모델
제안된 신경망 모델 필터링의 더 쉬운 배치를 가능하게 하기 위해, 신경망 모델에서 입력 양자화 파라미터(QP) 종속성을 제거하는 것이 바람직하다. 따라서, 비디오 코딩에 사용되는 입력 QP와 관계없이 영상 필터링에는 단일 신경망 모델이 사용될 수 있다.
도 11은 본 개시의 일부 구현형태에 따른 전형적인 QP-독립적 신경망 모델을 도시하고 있다. 일반적인 비디오 코딩 시스템의 경우, 예측 잔차 양자화/역-양자화를 위한 양자화 스텝 크기를 계산하기 위해 QP 값이 사용된다. 따라서 상이한 QP 값은 상이한 수준의 비디오 품질을 나타낸다. 상이한 입력 QP와 품질을 갖는 상이한 비디오 프레임을 처리하기 위해 신경망에 QpMap이 제공된다. QpMap은 상이한 수준의 비디오 품질(예를 들어, 입력 Qp)을 포함할 수 있는 제공된 YUV 입력을 학습하고 적응적으로 필터링하기 위해 신경망에 또 다른 차원의 정보를 추가한다. HEVC, VVC 또는 AVS와 같은 일부 일반적인 비디오 코딩 표준에서는, 입력 Qp 값을 예측 잔차 양자화를 위한 Qp 스텝 크기로 변환할 때 일반적으로 미리 정의된 관계식(예를 들어, Qstep=2(QP-4)/6)이 사용된다. 더 쉽게 설명하기 위해, 입력 Qp 값 또는 Qp 스텝 크기 값을 포함하는 QpMap을 사용하여 아래와 같이 제안된 아이디어를 도입한다.
QpMap 값의 동적 범위 제어
도 11은 본 개시의 일부 구현형태에 따라 비디오 코딩을 위한 이미지 필터링을 수행하기 위한 전형적인 QP-독립적 신경망 기반 모델을 도시하고 있다. QpMap은 YUV 입력 채널과 연결된다. 각각의 QpMap 채널은 상이한 좌표에 동일한 값을 포함할 수 있다. 그리고 각각의 QpMap 채널은 관련된 입력 채널과 동일한 해상도를 가질 수 있다. 즉, Y 입력에 대한 QpMap 채널은 Y 입력 채널과 동일한 해상도를 가지며, QpMap의 각각의 값은 Y 입력 채널 내의 모든 샘플이 동일한 Qp 값을 갖는 것을 나타낸다.
각각의 비디오 프레임/이미지의 입력 QP 값은 직접적으로 QpMap 값을 생성하는 데 사용될 수 있다. 대안으로, 각각의 비디오 프레임/이미지의 입력 QP 값은 먼저 Qp 스텝 크기, 예를 들어 Qstep=2(QP-4)/6로 변환되어 QpMap 값을 생성할 수 있다. 본 개시의 일부 예에서, Qp 스텝 크기 Qstep은 때때로 QPstep으로 지칭될 수 있다.
QpMap 값이 입력 QP 또는 Qp 스텝 크기에서 생성될 때 QpMap 값의 동적 범위는 다음 세 가지 의미에서 합리적인 것이 바람직하다.
첫째, 상이한 QpMap 값이 상이한 입력 Qp 또는 Qp 스텝 크기를 표현/구별하기 위해 쉽게 사용될 수 있도록 범위는 충분히 커야 한다. 다시 말해서, 두 개의 입력 Qp 값이 주어지면 해당 QpMap 값은 서로 가까워서는 안 된다.
둘째, 상이한 QpMap 값이 범위의 상이한 위치에 고르게 분산될 수 있도록 범위는 충분히 균형을 이루어야 한다.
셋째, 범위는 관련된 YUV 샘플 값의 동적 범위와 일치해야 한다. 예를 들어, Pmax(여기서 Pmax=2bitlength-1))을 분할함으로써 YUV 샘플 값이 [0, 1]로 정규화될 경우, QpMap 값도 유사한 범위에서 정규화되어야 한다.
따라서 QpMap이 동적 범위에 매핑될 때, 최대 또는 최소 입력 Qp 또는 Qp 스텝 크기를 분할 요소(dividing factor)로 사용하지 않는 것을 제안한다. 그렇지 않으면 분할은 생성된 QpMap 값을 동적 범위의 한쪽으로 밀어 넣는데, 이는 QpMap 값의 동적 범위를 줄이는 것과 같아진다.
예를 들어, 최대 QpStep 크기 912(최대 입력 Qp 63에 해당함)를 사용하는 경우 이론적 동적 범위는 (0, 1)이지만, 입력 Qp 스텝 크기가 일반적으로 45(입력 Qp 37에 해당함) 미만인 경우 유효한 동적 범위는 (0, 0.05)에 불과하며, 이는 대부분의 경우 QpMap 값이 0에 가깝다는 것을 의미한다.
대신에, 생성된 QpMap 값이, 예를 들어 [0.5, 1.5]와 같이, 동적 범위의 양쪽에 분산될 수 있도록 중간/중앙 입력 Qp 또는 Qp 스텝 크기를 사용하여 정규화를 수행하는 것을 제안한다. 하나의 예시로 선택된 중간/중앙 입력 Qp 값은 Qp 32이고, Qp-Qstep(Qp 스텝 크기) 방정식(예를 들어, Qstep=2(QP -4)/6)에 따라 Qp 스텝 크기로 변환되면 대략 25.5이다. 따라서 어떤 입력 Qp 값이든 먼저 해당 Qp 스텝 크기로 변환되고, 이후 선택된 Qp 스텝 크기 25.5로 분할된다.
정규화 분할을 위해 선택된 입력 Qp 또는 Qp 스텝 크기는 실제 입력 Qp 범위를 기반으로 유연하게 결정될 수 있다. 예를 들어, 실제 Qp 범위가 [22, 42]인 경우, Qp 37 또는 해당 Qp 스텝 크기는 분할 요소로서 선택될 수 있는데, 이에 따라 실제 Qp 범위 내의 더 낮은 Qps의 정규화된 값은 0에 너무 가깝지 않는 반면, 더 높은 Qps의 정규화된 값은 1.0을 초과하지 않는다. 대안으로, 실제 입력 QP 범위의 최대값(예를 들어, 실제 Qp 범위 [22, 42]의 42) 또는 해당 Qp 스텝 크기는 최대값이 최소값보다 너무 크지 않은 경우(예를 들어, 두 배 크기 이내) 분할 요소로서 선택될 수 있다.
QpMap 값의 예측 기반 조정
위에서 설명한 바와 같이, QpMap 값은 입력 Qp 값에 의해 직접 생성될 수도 있고, 입력 Qp 값과 Qp 스텝 크기 간의 매핑 관계에 따라 Qp 스텝 크기 값에 의해 생성될 수도 있다. 더 쉽게 설명하기 위해, 아래 설명에서는 QpMap 값이 입력 Qp 값에 의해 직접 생성된다고 가정한다. Qp 스텝 크기 값에 의해 QpMap 값이 생성되는 경우, 제안된 아이디어/방법도 유사하게 확장될 수 있다.
인터-예측된 비디오 프레임/이미지의 경우, 프레임/이미지의 대부분의 블록/CTU는 작거나 거의 없는 잔차로 인터-예측될 수 있다, 예를 들어, 스킵 모드. 이 경우 유효한 입력 Qp 값은 해당 참조 프레임/이미지에 따라 결정되어야 한다.
일부 예에서, 해당 참조 프레임/이미지의 입력 Qp 값은 움직임 보상 과정 동안 현재 이미지가 재구성될 때 저장되어 획득될 수 있다. 각각의 현재 프레임의 입력 QP 값은 알려져 있다. 그러나 이 프레임이 현재 프레임이 아니고 이 프레임이 또 다른 프레임에 대한 참조 프레임인 경우 이 프레임의 입력 Qp 값은 알 수 없게 된다. 따라서 나중에 Qp 값을 얻으려면 Qp 값을 저장해야 한다.
일부 예에서, 해당 참조 프레임/이미지의 입력 Qp 값은 인터-코딩된 현재 프레임의 QP 값에서 특정 값을 빼서 도출될 수 있으며, 여기서 특정 값은 인터-코딩된 현재 프레임의 시간 계층 인덱스(temporal layer index)를 확인함으로써 획득될 수 있다
일부 다른 예에서, 참조 프레임/이미지가 참조 이미지들의 연속체(참조 프레임/이미지의 참조 프레임/이미지)인 경우, 이 정보는 시그널링으로부터 상속되거나 전달될 수 있다.
간단한 해결책으로, 인터-예측된 비디오 프레임/이미지의 경우, 유효한 Qp 스텝 크기는 현재 프레임의 Qp 스텝 크기로부터 0.5와 같은 일정한 스케일링 팩터에 의해 도출될 수 있으며, 이는 6의 값을 갖는 입력 Qp 차이에 해당한다. 이러한 스케일링 작업은 참조 프레임/이미지 입력 Qp 또는 Qp 스텝 크기에 대한 근사치이다.
Qp 스텝 크기와 입력 Qp 간의 일반적인 매핑 관계식(예를 들어, Qstep=2(QP-4)/6)으로 인해, Qp 스텝 크기의 스케일링 작업은 입력 Qp 값의 뺄셈/덧셈 연산과 동일하다. 즉, 입력 Qp 값의 뺄셈/덧셈 연산을 적용하여 Qp 스텝 크기의 스케일링 작업이 구현될 수 있다.
시그널링 오버헤드와 예측 기반 조정 정확도 간의 트레이드오프에 따라, Qp 스텝 크기의 스케일링 또는 입력 Qp 값의 뺄셈/덧셈은 상이한 정밀도 및/또는 상이한 세분성에서 표현될 수 있다. 더 쉽게 설명하기 위해, 아래 제안된 아이디어/방법에서는 QpMap 값의 예측 기반 조정을 위해 QpStep 크기의 스케일링이 사용된다고 가정한다. 입력 Qp 값의 뺄셈/덧셈이 QpMap 값의 예측 기반 조정에 사용되는 경우, 제안된 아이디어/방법은 간단하게 확장될 수 있다.
하나 이상의 예에서, 이후의 인터-예측 프레임에 사용되는 일정한 스케일링 팩터의 부정확성을 보상하기 위해 Qp 스텝 크기의 스케일링이 인트라-예측된 프레임/이미지에도 적용될 수 있다.
또 다른 예에서, Qp 스케일링 팩터는 다음과 같은 상이한 방법을 사용하여 유연하게 도출될 수 있다.
첫 번째 방법에서, Qp 스케일링 팩터는 한 세트의 값으로부터 인코더에 의해 선택될 수 있다. 스케일링 팩터 세트는 시퀀스 기반이거나 이미지/슬라이스 기반일 수 있는데, 이는 세트가 픽처 헤더 또는 시퀀스 파라미터 세트 내에 코딩될 수 있음을 의미한다. 스케일링 팩터 세트 내의 선택된 Qp 스케일링 팩터의 인덱스는 이미지 품질과 시그널링 오버헤드 사이의 적절한 균형을 위해, 상이한 세분성으로 인코더 측에서, 예를 들어 픽처 레벨 인덱스 선택, CTU 레벨 인덱스 선택, 블록 레벨 선택(예를 들어, 픽처는 쿼드-트리 분리를 기반으로 서로 상이한 블록으로 분할될 수 있음)과 같은 율-왜곡 최적화 알고리즘을 기반으로 선택될 수 있다.
두 번째 방법에서, Qp 스케일링 팩터는 QP 오프셋/조정으로 변환될 수 있다. QP 오프셋/조정은 QpMap 값을 계산하기 전에 입력 Qp 값 또는 Qp 스텝 크기에 적용될 수 있다.
하나의 예로서, 조정된 입력 Qp 값은 Qp_new=Qp_old-Qp_offset_stepsize×(lower_bound-offset_index)와 같이 표현될 수 있고, 여기서 Qp_old는 현재 슬라이스 또는 CTU에 대한 원래 Qp 값이고, Qp_new는 조정 후의 새로운 Qp 값이고, Qp_offset_stepsize는 각각의 Qp 조정에 대한 스텝 크기고, lower_bound는 최대 Qp 감소를 결정하는 정수 값이고, offset_index는 신호화된 인덱스 값(예를 들어 [0, 3] 범위의 값)이다. offset_index는 인코더 측에서 결정되고 디코더 측에서 분석/사용된다. 주목할 점은 Qp_offset_stepsize 및 lower_bound는 미리 정의된 상수 값이거나 시그널링될 수도 있다는 것이다.
예를 들어, Qp_offset_stepsize는 4와 같은 상수 값일 수 있고, lower_bound가 2이고 시그널링된 offset_index가 1인 경우, 디코더는 현재 Qp 값 32를 28로 조정할 수 있다, 여기서 28 = 32 - 4*(2-1)이다.
세 번째 방법에서, 현재 CTU/픽처/블록에 대해, Qp 스케일링 팩터는 인접한 CTU/픽처/블록(예를 들어, 공간 도메인에서 왼쪽 또는 위쪽 CTU/블록 또는 시간 도메인에서 참조 블록/CTU)으로부터 상속되어 시그널링 오버헤드를 줄일 수 있다.
네 번째 방법에서, 시그널링이나 상속 대신에, Qp 스케일링 팩터는 현재 CTU/블록과 참조 CTU/블록의 Qp 차이에 의해 디코더 측에서 계산될 수 있다. 현재 CTU/블록에 대응하는 참조 CTU/블록이 다수인 경우, Qp 스케일링 팩터의 평균값이 계산될 수 있다. 참조 CTU/블록이 참조 체인에 포함되어 있는 경우, 참조 깊이는 제한될 수 있으며 Qp 스케일링 팩터는 제한된 참조 깊이의 최대치까지 부모 참조 CTU/블록에 따라 계산될 수 있다.
다섯 번째 방법에서, 복잡도를 낮추기 위해 상이한 구성요소의 Qp 스케일링 팩터가 공동으로 시그널링/선택/계산될 수 있다. 대안으로, 상이한 구성요소의 Qp 스케일링 팩터는 별도로 시그널링/선택/계산될 수 있다. 대안으로, 루마 및 크로마의 Qp 스케일링 팩터는 별도로 시그널링/선택/계산될 수 있다.
여섯 번째 방법에서, 위의 방법들의 임의의 조합이 하이브리드 방식으로 사용될 수 있다.
또한, 위의 두 번째 방법에서, 도출 과정의 일 실시형태는 다음과 같이 도입될 수 있다:
일반적으로 채널 CH에 대한 위치 (x, y)에서의 QpMap 값(QMCH(x, y))은 다음과 같이 계산될 수 있다:
(6)
여기서 αCH는 채널 CH에 대한 시그널링된 QP 스케일링 팩터이고, 는 위치 (x, y)에서 정규화된 QP 단계 값으로 다음과 같이 계산할 수 있다:
(7)
VVC에서, QP와 양자화 단계 Qstep 사이의 관계는 QPstep=2(QP-4)/6으로 주어진다. 따라서 방정식 (7)은 다음과 같이 다시 표현될 수 있다:
(8)
일 실시형태에서, 방정식(8)의 경우, QP는 채널 의존적인 현재 프레임의 입력 QP이다. QPmax는 VVC에서 63과 동일한 최대 허용 입력 QP이다. 방정식 (7)과 방정식 (8)을 사용하여, 방정식 (6)은 다음과 같이 다시 표현될 수 있다:
(9)
방정식 (9)에서 모든 항은 채널에 따라 다르거나 상수 값이라는 것을 알 수 있다. 따라서 품질 맵의 각각의 채널에 대해 상이한 위치의 값들은 동일하다.
보다 쉬운 구현을 위해, 방정식 (9)에는 두 가지 수정이 추가로 이루어질 수 있다. 첫 번째 수정은 VVC의 실제 값 63 대신에 QPmax로서 상수 값 QPselected를 사용하는 것이다. 이 동기는 매우 작은 품질 맵 값으로 인해 발생하는 기울기 소실(gradient vanishing) 문제를 방지하기 위한 것이다. 주목할 점은 QPselected는 "QpMap 값의 동적 범위 제어" 섹션에서 이미 소개된 QpMap 값의 동적 범위를 제어하는 것과 동일하다는 것이다. 두 번째 수정은 스케일링 팩터 αCH 대신 QP 오프셋 값을 시그널링하는 것이다. 이 경우 방정식 (9)는 다음과 같이 다시 표현될 수 있다:
(10)
수학식 10을 수학식 9와 비교하면, 이는 새로 시그널링된 QP 오프셋 값 QPoffset의 닫힌 형태 표현으로 αCH를 나타내는 것과 동일하다. 일 실시형태에서, QPoffset은 입력 비디오 블록마다 결정되어야 하는데, 그 이유는 해당 참조 블록이 독립적으로 선택된 시간 참조 픽처로부터 나오기 때문이다. 또 다른 실시형태에서, QPoffset은 시그널링 비트(signaling bit)를 줄이기 위해 프레임 레벨에서 결정되고 시그널링되는데, 이는 동일한 비디오 프레임 내의 모든 CTU가 동일한 QPoffset 값을 공유한다는 것을 의미한다.
하나의 예로서, QPoffset은 룩업테이블(look up table; LUT)로 구현된다. 표 1에 나타낸 같이, QP 오프셋 값을 직접 시그널링하는 대신, 미리 정의된 코드 워드가 정의될 수 있다. 비트스트림 내의 수신된 코드 워드를 기반으로, 방정식 (10)에 사용된 실제 QP 오프셋 값은 표 1에 나타낸 LUT에서 검색될 수 있다. 예를 들어, 디코더 측에서 코딩 워드 "01"이 수신되면, 표 1에 나타낸 예에서 QP 오프셋 값 8이 도출될 수 있다. 주목할 점은 표 1에서 매핑된 QP 오프셋은 4에서 일정한 스텝 크기를 갖고, 스텝 크기가 5인 또 다른 예시적인 LUT가 표 2에 정의될 수 있다는 것이다.
스케일링 팩터를 시그널링하는 데 사용되는 예시적인 LUT를 도시한다.
시그널링된 코드 워드 대응하는 QP 오프셋
00 12
01 8
10 4
11 0
스케일링 팩터를 시그널링하는 데 사용되는 다른 예시적인 LUT를 도시한다.
시그널링된 코드 워드 대응하는 QP 오프셋
00 15
01 10
10 5
11 0
QPoffset의 LUT 기반 구현은 상이한 세분성, 예를 들어 시퀀스 레벨, 프레임 레벨 등으로 정의될 수 있다. 상이한 LUT에 대해, LUT 차이가 시그널링될 수 있거나, LUT 스텝 크기 차이가 시그널링될 수 있다. 예를 들어, 표 1과 표 2의 LUT의 스텝 크기 차이는 1(5-4=1)과 같다.
QpMap 값 기반 샘플 값 스케일링
QP-독립적 신경망 모델은 네트워크 내에 QpMap 채널을 명시적으로 포함하지 않을 수 있다. 예를 들어, 도 11에 도시된 바와 같이, 각각의 YUV 채널에 대해 생성된 QpMap 값은 YUV 채널과 연결된다. 대안으로, 네트워크에 공급되는 QpMap 값은 각각의 YUV 채널의 샘플 값을 직접 스케일링하는 데 사용될 수 있다. 이러한 방식으로 QpMap 채널은 YUV 채널과 연결되지 않는데, 이는 네트워크에서 QpMap을 암시적으로 사용하는 것을 나타낸다.
QpMap 채널이 네트워크에 입력되어 YUV 채널과 연결되면, 도 11에 도시된 것과 유사하게, 샘플 값 스케일링, 즉 YUV 채널에서의 샘플 값의 스케일링이 요소별 곱셈을 통해 직접적으로 수행될 수 있다. 예를 들어, Y 성분에 대한 QpMap 채널의 각각의 요소는 Y 채널의 해당 요소와 곱해지고, U 또는 V 성분에 대한 QpMap 채널의 각각의 요소는 U 또는 V 채널의 해당 요소와 곱해진다. 주목할 점은 QpMap 채널의 해상도는 해당 성분 채널의 해상도와 이미 정렬되어 있을 수 있다는 것이다.
또 다른 예에서, 요소별 스케일링은 각각의 잔차 블록에서 수행될 수도 있다. 도 17은 본 개시의 일부 구현형태에 따른 각각의 잔차 블록에서 수행되는 요소별 스케일링의 예를 도시하고 있다. 도 17에서, QpMap 채널은 YUV 해상도가 정렬된 후 먼저 YUV 채널과 연결된다. 그런 다음 QpMap 채널은 첫 번째 잔차 블록에 대한 입력 특징 맵으로 사용될 뿐만 아니라 각각의 잔차 블록에서의 샘플 값 스케일링 팩터로도 사용된다.
주목할 점은 위의 두 가지 샘플 스케일링 메커니즘은 단독으로 사용되거나 결합될 수 있다는 것이다. 다시 말해서, 도 11과 같이 연결 전에 YUV 샘플에 직접 적용된 샘플 스케일링 및 도 17과 같이 각각의 잔차 블록에 적용된 샘플 스케일링은 모두 동일한 신경망에서 사용될 수도 있고, 상이한 신경망에서 별도로 사용될 수도 있다.
QpMap을 암시적으로 사용하는 일부 예에서, QpMap 데이터는 네트워크에 공급되지 않을 수 있으며, 각각의 YUV 채널에서의 샘플 값의 스케일링은 신경망 이전에 수행된다.
신경망 기반 모델 필터링과 기타 인-루프 필터 간의 상호작용
QpMap 채널이 신경망에 제공되어 상이한 품질의 비디오 콘텐츠를 필터링하는 경우, QpMap 채널은 하나 이상의 구성요소로부터 얻은 Qp 정보를 포함할 수 있다.
도 12A는 본 개시의 일부 구현형태에 따른 병치된 QpMap 채널 및 YUV 채널의 레이아웃의 예를 도시하고 있다. 도 12B는 본 개시의 일부 구현형태에 따른 병치된 QpMap 채널 및 YUV 채널의 레이아웃의 또 다른 예를 도시하고 있다. 도 12A 및 도 12B에서, 블록 Map-Y는 Y 채널에 대한 QpMap 채널을 나타내고, 블록 Map-U는 U 채널에 대한 QpMap 채널을 나타내며, 블록 Map-V는 V 채널에 대한 QpMap 채널을 나타낸다. 블록 Y, 블록 U 및 블록 V는 각각 Y 채널, U 채널, V 채널을 나타낸다.
YUV420 콘텐츠가 주어지면, UV 성분은 먼저 업-샘플링될 수 있으며, 그런 다음 YUV는 도 12A에 도시된 바와 같이 해당 QpMap 채널과 함께 병치되고 인터리브된다. 또는 Y 채널이 먼저 네 개의 더 작은 Y 채널로 다운-샘플링된 다음 YUV가 도 12B에 도시된 바와 같이 QpMap 채널과 함께 병치되고 인터리빙될 수 있다. 일부 예에서, 업-샘플링 또는 다운-샘플링은 네트워크 내부, 예를 들어 도 10의 영역 2 및 영역 3에서 수행되거나, 네트워크 외부, 예를 들어 도 10의 영역 1에서 수행된다.
도 16A는 본 개시의 일부 구현형태에 따른 병치된 QpMap 채널 및 YUV 채널의 레이아웃의 또 다른 예를 도시하고 있다. 도 16B는 본 개시의 일부 구현형태에 따른 병치된 QpMap 채널 및 YUV 채널의 레이아웃의 또 다른 예를 도시하고 있다. 도 16A 및 도 16B에서, 블록 Map-Y는 Y 채널에 대한 QpMap 채널을 나타내고, 블록 Map-U는 U 채널에 대한 QpMap 채널을 나타내며, 블록 Map-V는 V 채널에 대한 QpMap 채널을 나타낸다. 블록 Y, 블록 U 및 블록 V는 각각 Y 채널, U 채널, V 채널을 나타낸다. 복수의 QpMap 채널은 도 16A 및 도 16B에 도시된 바와 같이 먼저 내부적으로 연결된 다음 YUV 채널과 연결될 수 있다.
하나의 구성요소의 하나 이상의 QpMap 채널만이 신경망에 제공되는 경우, 하나 이상의 QpMap 채널은 YUV 채널의 한쪽에 위치할 수 있는데, 이는 QpMap이 추가되기 전에 YUV 채널이 연결되어, YUV 채널이 인접하게 병치되는 것을 나타낸다.
또 다른 예에서, 상이한 구성요소로부터의 QpMap 채널 외에도, 상이한 유형의 훈련 데이터에 대한 추가 QpMap 채널이 필요할 수 있다. 예를 들어, 훈련 데이터가 I 프레임, B 프레임, P 프레임에서 자른 것이라면, 프레임 유형 정보를 포함하는 QpMap이 생성되어 연결될 수 있다. I 프레임은 인트라 코딩된 프레임이고, B 프레임은 양방향 예측 프레임이며, P 프레임은 예측 프레임이다.
신경망 모델 기반 필터 출력의 필터링 오프셋 또는 스케일링
일반화를 위해, 품질, 동작 및 조명 환경의 상이한 수준을 갖는 상이한 비디오 콘텐츠에 대해 통합된 신경망 모델 기반 필터가 사용될 수 있다. 신경망 모델 기반 필터의 출력은 더 나은 코딩 효율성을 위해 인코더 측에서 오프셋 또는 스케일링의 형태로 약간 조정될 수 있다.
필터링 오프셋 또는 스케일링 값은 한 세트의 값으로부터 인코더에 의해 적응적으로 선택될 수 있다. 오프셋 또는 스케일링 세트는 시퀀스 기반이거나 이미지/슬라이스 기반일 수 있는데, 이는 세트가 픽처/슬라이스 헤더 또는 시퀀스 파라미터 세트 내에 코딩될 수 있음을 의미한다. 세트 내의 선택된 오프셋 또는 스케일링 값의 인덱스는 이미지 품질과 시그널링 오버헤드 사이의 적절한 균형을 위해, 서로 상이한 세분성으로 인코더 측에서, 예를 들어 픽처 레벨 인덱스 선택, CTU 레벨 인덱스 선택, 블록 레벨 선택(예를 들어, 픽처는 쿼드-트리 분리를 기반으로 상이한 블록으로 분할될 수 있음)과 같은 율-왜곡 최적화 알고리즘을 기반으로 선택될 수 있다.
적응형 필터링 오프셋 또는 스케일링 값의 선택은 콘텐츠 평활도(content smoothness) 또는 방향성 기울기의 히스토그램과 같은 특정 분류 알고리즘을 기반으로 할 수 있다. 각각의 카테고리의 적응형 필터링 오프셋 또는 스케일링 값은 인코더에서 계산되고 선택되며, 샘플 왜곡을 효과적으로 줄이기 위해 디코더에 명시적으로 시그널링되는 반면, 각각의 샘플의 분류는 부가 정보를 크게 절약하기 위해 인코더와 디코더 모두에서 수행된다.
적응형 필터링 오프셋 또는 스케일링 값의 선택은 상이한 구성요소에 대해 공동으로 또는 개별적으로 수행될 수 있다, 예를 들어 YUV는 상이한 적응형 필터링 오프셋 또는 스케일링 값을 갖는다.
훈련 데이터 생성 및 훈련 과정
신경망 기반 필터 모델을 훈련시킬 때, 훈련 데이터 준비 및 훈련 과정은 서로 상이한 방식으로 수행될 수 있다.
일부 예에서 모델은 정지 이미지만 포함된 데이터 세트를 기반으로 훈련될 수 있다. 이 데이터 세트는 신경망 기반 필터가 사용되는 비디오 코딩 도구의 모든 I 프레임으로 인코딩될 수 있다.
일부 예에서 모델은 2-경로 프로세스를 기반으로 훈련될 수 있다. 첫 번째 경로에서는 데이터 세트가 모든 I 프레임으로 인코딩될 수 있으며 모델 A는 모든 I 프레임을 기반으로 훈련될 수 있다. 두 번째 경로에서는 동일한 데이터 세트 또는 새로운 데이터 세트가 상이한 비율(포함된 I, B 및 P 프레임의 개수 비율)을 갖는 I, B 및 P 프레임의 조합으로 인코딩될 수 있다. 일부 예에서, 생성된 I/B/P 프레임은 첫 번째 경로에서 훈련된 모델 A를 적용하여 인코딩된다. 새로 생성된 I/B/P 프레임을 기반으로 새로운 모델 B가 훈련될 수 있다.
모델 B를 훈련시킬 때, 모델 A는 미리 훈련된 모델로 로딩되어, 모델 B가 모델 A에서 시작된 개선된 모델이 될 수 있다. 또 다른 예로, 모델 A와 상이한 모델이 미리 훈련된 포인트로 로딩될 수 있다.
대안으로, 모델 B를 처음부터 훈련시킬 수 있다.
일부 예에서 모델은 2-경로 이상의 다중 경로로 훈련될 수 있다. 첫 번째 경로에서 모델 A는 I 프레임을 기반으로 훈련될 수 있다. 두 번째 경로에서는 모델 A를 인코더에 적용할 때 I/B/P 프레임의 조합을 기반으로 모델 A에 대해 모델 B가 훈련되거나 개선될 수 있다. 주목할 점은 이 두 번째 트레이닝 경로 동안 B/P 프레임의 선택된 조합은 낮은 시간 계층에서만 나올 수 있다는 것이다. 세 번째 경로 또는 추가 경로에서, 모델 C는 B/P 프레임의 높은 시간 계층을 기반으로 모델 B에 대해 훈련되거나 개선될 수 있다. B/P 프레임의 높은 시간 계층이 생성되고 선택되면, 모델 B 또는/및 모델 A가 인코더 측에 적용될 수 있다.
네트워크 훈련 전에 훈련 데이터를 생성해야 한다. 이 다중 경로 방법에서, 훈련 데이터는 세 가지 경로를 통해 생성된다: 첫 번째 경로는 모델 A를 훈련하는 데 사용되는 I 프레임만 생성하는 것이고; 모델 A가 준비되면 인코더는 모델 A를 로딩하거나 로딩하지 않을 수 있으며 낮은 시간 계층 B/P 프레임을 생성할 수 있는데, 이를 두 번째 경로라고 한다. 이렇게 생성된 낮은 시간 계층 B/P 프레임은 새로운 훈련을 통해 또는 모델 A를 기반으로 개선됨으로써 모델 B를 훈련시키는데 사용된다.
또한, 모델 B가 준비되면 인코더는 모델 A와 모델 B를 로딩할 수도 있고 로딩하지 않을 수도 있으며 높은 시간 계층 B/P 프레임을 생성할 수 있는데, 이를 세 번째 경로라고 한다. 이렇게 생성된 높은 시간 계층 B/P 프레임은 새로운 훈련을 통해 또는 모델 A 및/또는 모델 B를 기반으로 개선됨으로써 모델 C를 훈련시키는데 사용된다.
신경망 기반 모델 필터링과 기타 인-루프 필터 간의 상호작용
신경망 기반 모델 필터링이 CTU 레벨이나 프레임 레벨에서 활성화되도록 시그널링되면, 불필요한 계산이나 과도한 평활화를 피하기 위해 디블로킹 필터링을 건너뛸 수 있다. 대안으로, 시각적 품질 목적을 위해 디블로킹 필터링이 계속 수행될 수도 있다.
신경망 기반 모델 필터링이 CTU 레벨이나 프레임 레벨에서 활성화되도록 시그널링되면, ALF, 교차 성분 적응형 루프 필터 (Cross Component Adaptive Loop Filter, CCALF) 및 SAO와 같은 일부 다른 인-루프 필터가 비활성화될 수 있다.
신경망 기반 모델 필터링이 CTU 레벨 또는 프레임 레벨에서 활성화되도록 시그널링되면, 다른 인-루프 필터는 CTU 레벨이나 프레임 레벨에서 선택적으로 활성화되거나 비활성화될 수 있다. 예를 들어, 신경망 기반 모델 필터링에 대해 인트라-프레임 또는 인트라-프레임 CTU가 활성화되는 경우, 현재의 인트라-프레임 또는 현재의 인트라-프레임 CTU에 대해 디블로킹 필터링 또는/및 ALF, 또는/및 CCALF 또는/및 SAO와 같은 다른 인-루프 필터가 비활성화된다.
도 18은 본 개시의 일부 구현형태에 따른 신경망을 사용하여 비디오 코딩에서 이미지 필터링을 수행하기 위한 장치를 도시하는 블록도이다. 장치(1800)는 휴대폰, 태블릿 컴퓨터, 디지털 방송 단말기, 태블릿 장치, 또는 개인 휴대용 단말기와 같은 단말기일 수 있다.
도 18에 도시된 바와 같이, 장치(1800)는 다음 구성요소 중 하나 이상을 포함할 수 있다: 처리 구성요소(1802), 메모리(1804), 전원 공급 구성요소(1806), 멀티미디어 구성요소(1808), 오디오 구성요소(1810), 입력/출력(I/O) 인터페이스(1812), 센서 구성요소(1814), 및 통신 구성요소(1816).
처리 구성요소(1802)는 일반적으로 디스플레이, 전화 통화, 데이터 통신, 카메라 작동 및 녹음 작업과 같은 장치(1800)의 전반적인 작동을 제어한다. 처리 구성요소(1802)는 상기 방법의 모든 단계 또는 일부 단계를 완료하기 위해 명령을 실행하는 하나 이상의 프로세서(1820)를 포함할 수 있다. 또한, 처리 구성요소(1802)는 처리 구성요소(1802)와 다른 구성요소 간의 상호작용을 용이하게 하는 하나 이상의 모듈을 포함할 수 있다. 예를 들어, 처리 구성요소(1802)는 멀티미디어 구성요소(1808)와 처리 구성요소(1802) 간의 상호작용을 용이하게 하는 멀티미디어 모듈을 포함할 수 있다.
메모리(1804)는 장치(1800)의 작동을 지원하기 위해 상이한 유형의 데이터를 저장하도록 구성된다. 이러한 데이터의 예로는 장치(1800)에서 작동하는 임의의 애플리케이션 또는 방법에 대한 명령, 연락처 데이터, 전화번호부 데이터, 메시지, 사진, 비디오 등이 있다. 메모리(1804)는 임의 유형의 휘발성 또는 비휘발성 저장 장치 또는 이들의 조합으로 구현될 수 있으며, 메모리(1804)는 정적 랜덤 액세스 메모리(Static Random Access Memory, SRAM), 전기적으로 소거 가능하고 프로그램 가능한 읽기 전용 메모리(Electrically Erasable Programmable Read-Only Memory, EEPROM), 소거 가능하고 프로그램 가능한 읽기 전용 메모리(Erasable Programmable Read-Only Memory, EPROM), 프로그램 가능한 읽기 전용 메모리(Programmable Read-Only Memory, PROM), 읽기 전용 메모리(Read-Only Memory, ROM), 자기 메모리, 플래시 메모리, 자기 디스크 또는 컴팩트 디스크일 수 있다.
전원 공급 구성요소(1806)는 장치(1800)의 상이한 구성요소에 전원을 공급한다. 전원 공급 구성요소(1806)는 전원 관리 시스템, 하나 이상의 전원 공급 장치, 및 장치(1800)에 대한 전원을 생성하고, 관리하며 분배하는 것과 관련된 기타 구성요소를 포함할 수 있다.
멀티미디어 구성요소(1808)는 장치(1800)와 사용자 간의 출력 인터페이스를 제공하는 스크린을 포함한다. 일부 예에서, 스크린은 액정 디스플레이(LCD) 및 터치 패널(TP)을 포함할 수 있다. 스크린이 터치 패널을 포함하는 경우, 스크린은 사용자로부터 입력 신호를 수신하는 터치 스크린으로 구현될 수 있다. 터치 패널은 터치 패널에 대한 터치, 슬라이드, 제스처 등을 감지하는 하나 이상의 터치 센서를 포함할 수 있다. 터치 센서는 터치 또는 슬라이딩 동작의 경계를 감지할 수 있을 뿐만 아니라 터치 또는 슬라이딩 동작과 관련된 지속 시간 및 압력도 감지할 수 있다. 일부 예에서, 멀티미디어 구성요소(1808)는 전면 카메라 및/또는 후면 카메라를 포함할 수 있다. 장치(1800)가 촬영 모드, 동영상 모드 등의 작동 모드에 있을 때, 전면 카메라 및/또는 후면 카메라는 외부 멀티미디어 데이터를 수신할 수 있다.
오디오 구성요소(1810)는 오디오 신호를 출력 및/또는 입력하도록 구성된다. 예를 들어, 오디오 구성요소(1810)는 마이크(MIC)를 포함한다. 장치(1800)가 통화 모드, 녹음 모드, 음성 인식 모드 등의 작동 모드에 있을 때, 마이크는 외부 오디오 신호를 수신하도록 구성된다. 수신된 오디오 신호는 메모리(1804)에 추가로 저장되거나 통신 구성요소(1816)를 통해 전송될 수 있다. 일부 예에서, 오디오 구성요소(1810)는 오디오 신호를 출력하기 위한 스피커를 더 포함한다.
I/O 인터페이스(1812)는 처리 구성요소(1802)와 주변 인터페이스 모듈 간의 인터페이스를 제공한다. 상기 주변 인터페이스 모듈은 키보드, 클릭 휠, 버튼 등일 수 있다. 이러한 버튼은 홈 버튼, 볼륨 버튼, 시작 버튼 및 잠금 버튼을 포함할 수 있지만 이에 국한되지는 않는다.
센서 구성요소(1814)는 장치(1800)에 대한 상이한 측면에서 상태 평가를 제공하기 위한 하나 이상의 센서를 포함한다. 예를 들어, 센서 구성요소(1814)는 장치(1800)의 온/오프 상태 및 구성요소의 상대적인 위치를 검출할 수 있다. 예를 들어, 구성요소는 장치(1800)의 디스플레이 및 키패드이다. 센서 구성요소(1814)는 또한 장치(1800) 또는 장치(1800) 구성요소의 위치 변화, 장치(1800)에 대한 사용자의 접촉 유무, 장치(1800)의 방향 또는 가속도/감속도 및 온도를 검출할 수 있다. 센서 구성요소(1814)는 어떠한 물리적 터치 없이 근처 객체의 존재를 검출하도록 구성된 근접 센서를 포함할 수 있다. 센서 구성요소(1814)는 이미징 애플리케이션에 사용되는 CMOS 또는 CCD 이미지 센서와 같은 광학 센서를 더 포함할 수 있다. 일부 예에서, 센서 구성요소(1814)는 가속도 센서, 자이로스코프 센서, 자기 센서, 압력 센서 또는 온도 센서를 더 포함할 수 있다.
통신 구성요소(1816)는 장치(1800)와 다른 장치 간의 유선 또는 무선 통신을 용이하게 하도록 구성된다. 장치(1800)는 Wi-Fi, 4G 또는 이들의 조합과 같은 통신 표준을 기반으로 무선 네트워크에 액세스할 수 있다. 예를 들어, 통신 구성요소(1816)는 방송 채널을 통해 외부 방송 관리 시스템으로부터 방송 신호 또는 방송 관련 정보를 수신한다. 예를 들어, 통신 구성요소(1816)는 단거리 통신을 촉진하기 위한 근거리 자기장 통신(Near Field Communication, NFC) 모듈을 더 포함할 수 있다. 예를 들어, NFC 모듈은 무선 주파수 인식(Radio Frequency Identification, RFID) 기술, 적외선 통신(Infrared Data Association, IrDA) 기술, 초광대역(Ultra-Wide Band, UWB) 기술, 블루투스(Bluetooth, BT) 기술 및 기타 기술을 기반으로 구현될 수 있다.
예를 들어, 장치(1800)는 상기 방법을 수행하기 위해 주문형 집적 회로(Application Specific Integrated Circuit, ASIC), 디지털 신호 프로세서(Digital Signal Processor, DSP), 디지털 신호 처리 장치(Digital Signal Processing Device, DSPD), 프로그램 가능 논리 장치(Programmable Logic Device, PLD), 필드 프로그래머블 게이트 어레이(Field Programmable Gate Array, FPGA), 컨트롤러, 마이크로컨트롤러, 마이크로프로세서 또는 기타 전자 요소 중 하나 이상으로 구현될 수 있다. 비일시적 컴퓨터 판독 가능 저장 매체는 예를 들어, 하드 디스크 드라이브(Hard Disk Drive, HDD), 솔리드 스테이트 드라이브(Solid-State Drive, SSD), 플래시 메모리, 하이브리드 드라이브 또는 솔리드 스테이트 하이브리드 드라이브(Solid-State Hybrid Drive, SSHD), 읽기 전용 메모리(Read-Only Memory, ROM), 콤팩트 디스크 읽기 전용 메모리(Compact Disc Read-Only Memory, CD-ROM), 자기 테이프, 플로피 디스크 등일 수 있다.
도 19는 본 개시의 일부 구현형태에 따른 신경망을 사용하여 비디오 코딩에서 이미지 필터링을 위한 프로세스를 도시하는 흐름도이다.
단계 1901에서, 프로세서(1820)는 하나 이상의 QpMap 채널의 복수의 QpMap 값을 신경망에 로딩한다. 도 11에 도시된 바와 같이, 복수의 QpMap 채널은 연결 블록 이전의 세 개의 합성곱 블록 또는 계층 후에 해당 YUV 채널과 각각 결합된다.
예를 들어, QpMap은 YUV에 대해 각각 QP-Y, QP-U, QP-V의 세 가지 채널을 가질 수 있다. 왜냐하면 YUV는 상이한 QP 값을 가질 수 있기 때문이다.
단계 1902에서, 프로세서(1820)는 입력 프레임과 관련된 복수의 입력 QP 값을 조정하여 QP 스케일링 팩터를 획득한다. 예를 들어, “QpMap 값의 예측 기반 조정” 섹션의 제 2 방법에서 논의된 바와 같이, Qp 오프셋/조정은 QpMap 값을 계산하기 전에 입력 Qp 값 또는 Qp 스텝 크기에 적용될 수 있다. 본 개시에서, 약어 “QP”는 “Qp”와 동일하다.
단계 1903에서, 프로세서(1820)는 QP 스케일링 팩터에 따라 신경망에 입력 프레임을 학습하고 필터링하기 위해 신경망에 대한 복수의 QpMap 값을 조정한다.
일부 예에서, 프로세서(1820)는 QP 오프셋 스텝 크기(offset step size), 하한(lower bound), 및 오프셋 인덱스(offset index)를 기반으로 QP 오프셋을 획득할 수 있으며, 여기서 QP 오프셋 스텝 크기는 각각의 입력 QP 값을 조정하기 위한 스텝 크기일 수 있고, 하한은 최대 QP 값 감소를 결정하는 정수 값일 수 있으며, 오프셋 인덱스는 시그널링된 인덱스 값일 수 있다. 또한, 프로세서(1820)는 입력 QP 값에서 QP 오프셋을 뺄 수 있다. 예를 들어, “QpMap 값의 예측 기반 조정” 섹션의 제 2 방법에서 논의된 바와 같이, 조정된 입력 Qp 값은 Qp_new=Qp_old-Qp_offset_stepsize×(lower_bound-offset_index)와 같이 표현될 수 있다.
일부 예에서, 인코더는 QP 오프셋 스텝 크기, 하한 및 오프셋 인덱스를 시그널링할 수 있으며, 여기서 오프셋 인덱스는 0 내지 3 사이의 정수일 수 있고, QP 오프셋 스텝 크기와 하한은 각각 미리 정의된 상수 값일 수 있다.
일부 예에서, 인코더는 QP 오프셋 스텝 크기와 하한을 미리 정의할 수 있다. 인코더는 0 내지 3 사이의 정수일 수 있는 오프셋 인덱스를 추가로 시그널링할 수 있다. 예를 들어, QP 오프셋 스텝 크기와 하한은 상수 값으로 미리 정의될 수 있다. 이 경우 QP 오프셋 스텝 크기와 하한을 시그널링할 필요가 없다. QP 오프셋 스텝 크기와 하한이 상수 값이 아닌 경우 시그널링이 필요하다.
일부 예에서, 프로세서(1820)는 QP 오프셋을 획득하여 QP 스케일링 팩터를 획득할 수 있고, 입력 QP 값에서 QP 오프셋을 빼서 복수의 QpMap 값을 조정할 수 있다.
일부 예에서, QP 스케일링 팩터는 방정식 (9) 및 방정식 (10)에 도시된 바와 같이 방정식 을 사용하여 획득될 수 있으며, 여기서 αCH는 QP 스케일링 팩터를 나타내고 QPoffset은 QP 오프셋을 나타낸다.
일부 예에서, QP 오프셋은 입력 비디오 블록마다 결정될 수 있다.
일부 예에서, QP 오프셋은 프레임 레벨에서 시그널링될 수 있다.
일부 예에서, 프로세서(1820)는 LUT를 미리 정의할 수 있으며, 여기서 LUT는 표 1 또는 표 2에 나타낸 바와 같이 복수의 코드 워드 및 복수의 코드 워드에 대응하는 복수의 QP 오프셋을 포함할 수 있다.
일부 예에서, 프로세서(1820)는 디코더가 LUT를 기반으로 코드 워드에 대응하는 QP 오프셋을 검색하도록 코드 워드를 더 시그널링할 수 있다.
일부 예에서, 프로세서(1820)는 복수의 LUT를 상이한 세분성으로 미리 정의하고, 디코더가 상이한 세분성의 복수의 LUT를 기반으로 코드 워드에 대응하는 QP 오프셋을 검색하도록 코드 워드를 시그널링할 수 있다.
예를 들어, 동일한 프레임의 모든 비디오 블록이 동일한 LUT를 갖고 인코더가 코드 워드만 시그널링하면 되도록 LUT는 프레임 레벨에서 미리 정의될 수 있다. 디코더는 시그널링된 코드 워드를 수신하고, 수신된 코드 워드와 동일한 LUT를 기반으로 대응하는 QP 오프셋을 검색할 수 있다.
일부 예에서, 프로세서(1820)는 복수의 LUT를 상이한 세분성으로 미리 정의하고, 디코더가 코드 워드와 LUT 스텝 크기 차이를 기반으로 코드 워드에 대응하는 QP 오프셋을 검색하도록 코드 워드와 LUT 스텝 크기 차이를 시그널링할 수 있는데, 여기서 LUT 스텝 크기 차이는 제 1 스텝 크기와 제 2 단계 스텝 크기의 차이이고, 표 1과 표 2에 나타낸 바와 같이, 제 1 스텝 크기는 제 1 LUT에서 두 개의 인접한 QP 오프셋 간의 차이이고, 제 2 스텝 크기는 제 2 LUT에서 두 개의 인접한 QP 오프셋 간의 차이이다.
예를 들어, 표 1 및 표 2에 나타난 바와 같이, 표 1의 제 1 스텝 크기는 4이고, 표 2의 두 번째 스텝 크기는 5이며, LUT 스텝 크기 차이는 1(=5-4)이다. 일부 예에서, 인코더는 모든 LUT를 디코더에 전송할 필요가 없고, 디코더가 LUT 스텝 크기 차이 및 이전에 디코더에 저장된 LUT를 기반으로 대응하는 QP 오프셋을 찾을 수 있도록 LUT 스텝 크기 차이만 전송하면 된다.
일부 다른 예에서, 명령이 저장되어 있는 비일시적 컴퓨터 판독 가능 저장 매체(1804)가 제공된다. 명령이 하나 이상의 프로세서(1820)에 의해 실행될 때, 명령은 프로세서로 하여금 도 19 및 위에 기술된 임의의 방법을 수행하도록 한다.
본 개시의 설명은 예시의 목적으로 제시되었으며, 본 개시를 총망라하거나 제한하기 위한 것은 아니다. 상기한 설명 및 관련 도면에 제시된 교시의 이점을 갖는 본 기술 분야의 숙련자에게는 많은 수정, 변형 및 대안적인 구현형태가 명백할 것이다.
본 개시의 원리를 설명하고, 본 기술 분야의 숙련자가 다양한 구현형태에 대한 개시를 이해할 수 있도록 그리고 고려된 특정 용도에 적합한 다양한 수정을 통해 기본 원칙과 다양한 구현을 가장 효과적으로 활용할 수 있도록, 상기한 예들이 선택되고 기술되었다. 따라서, 본 개시의 범위는 개시된 구현형태의 특정 예에 국한되어서는 안 되며, 수정 및 다른 구현도 본 개시의 범위 내에 포함되는 것을 이해해야 한다.

Claims (13)

  1. 비디오 코딩에서 이미지 필터링을 수행하기 위한 방법으로서,
    하나 이상의 QpMap 채널에서 복수의 양자화 파라미터(QP) 맵(QpMap) 값을 신경망에 로딩 로딩하는 단계와;
    입력 프레임과 관련된 복수의 입력 QP 값을 조정하여 QP 스케일링 팩터(scaling factor)를 획득하는 단계; 및
    QP 스케일링 팩터에 따라, 신경망에 입력 프레임을 학습하고 필터링하도록 신경망에 대한 복수의 QpMap 값을 조정하는 단계를 포함하는, 방법.
  2. 제 1 항에 있어서,
    입력 프레임과 관련된 복수의 입력 QP 값을 조정하는 단계는:
    QP 오프셋 스텝 크기(offset step size), 하한, 및 오프셋 인덱스(offset index)를 기반으로 QP 오프셋을 획득하는 단계로서, QP 오프셋 스텝 크기는 각각의 입력 QP 값을 조정하기 위한 스텝 크기이고, 하한은 최대 QP 값 감소를 결정하는 정수 값이며, 오프셋 인덱스는 시그널링된 인덱스 값인, 단계; 및
    입력 QP 값에서 QP 오프셋을 빼는 단계를 포함하는, 방법.
  3. 제 2 항에 있어서,
    인코더에 의해, QP 오프셋 스텝 크기, 하한, 및 오프셋 인덱스를 시그널링하는 단계로서, 오프셋 인덱스는 0 내지 3 사이의 정수인, 단계를 더 포함하는, 방법.
  4. 제 2 항에 있어서,
    인코더에 의해, QP 오프셋 스텝 크기와 하한을 미리 정의하는 단계; 및
    인코더에 의해, 오프셋 인덱스를 시그널링하는 단계로서, 오프셋 인덱스는 0 내지 3 사이의 정수인, 단계를 더 포함하는, 방법.
  5. 제 1 항에 있어서,
    QP 스케일링 팩터를 획득하는 단계는 QP 오프셋을 획득하는 단계를 포함하고; 그리고
    복수의 QpMap 값을 조정하는 단계는 입력 QP 값에서 QP 오프셋을 빼는 단계를 포함하는, 방법.
  6. 제 1 항에 있어서,
    QP 스케일링 팩터를 획득하는 단계는:
    QP 오프셋을 획득하는 단계; 및
    다음 연산을 사용하여 QP 스케일링 팩터를 획득하는 단계를 포함하고:

    여기서, αCH는 QP 스케일링 팩터를 나타내고, QPoffset은 QP 오프셋을 나타내는, 방법.
  7. 제 6 항에 있어서,
    입력 비디오 블록마다 QP 오프셋을 결정하는 단계를 더 포함하는, 방법.
  8. 제 6 항에 있어서,
    인코더에 의해, 프레임 레벨에서 QP 오프셋을 시그널링하는 단계를 더 포함하는, 방법.
  9. 제 5 항에 있어서,
    인코더에 의해, 룩업테이블(look up table; LUT)을 미리 정의하는 단계로서, LUT는 복수의 코드 워드 및 복수의 코드 워드에 대응하는 복수의 QP 오프셋을 포함하는, 단계; 및
    인코더에 의해, 디코더가 LUT를 기반으로 코드 워드에 대응하는 QP 오프셋을 검색하도록 코드 워드를 시그널링하는 단계를 더 포함하는, 방법.
  10. 제 9 항에 있어서,
    인코더에 의해, 상이한 세분성(granularity)에서 복수의 룩업테이블(LUT)을 미리 정의하는 단계; 및
    인코더에 의해, 디코더가 상이한 세분성에서 복수의 LUT를 기반으로 코드 워드에 대응하는 QP 오프셋을 검색하도록 코드 워드를 시그널링하는 단계를 더 포함하는, 방법.
  11. 제 9 항에 있어서,
    인코더에 의해, 상이한 세분성에서 복수의 룩업테이블(LUT)을 미리 정의하는 단계; 및
    인코더에 의해, 디코더가 코드 워드 및 LUT 스텝 크기 차이를 기반으로 코드 워드에 대응하는 QP 오프셋을 검색하도록 코드 워드 및 LUT 스텝 크기 차이를 시그널링하는 단계로서, LUT 스텝 크기 차이는 제 1 스텝 크기 및 제 2 스텝 크기 사이의 차이이고, 제 1 스텝 크기는 제 1 LUT에서 두 개의 인접한 QP 오프셋 간의 차이이고, 제 2 스텝 크기는 제 2 LUT에서 두 개의 인접한 QP 오프셋 간의 차이인, 단계를 더 포함하는, 방법.
  12. 신경망을 사용하여 비디오 코딩에서 이미지 필터링을 위한 장치로서,
    하나 이상의 프로세서; 및
    하나 이상의 프로세서에 결합되고, 하나 이상의 프로세서에 의해 실행 가능한 명령을 저장하도록 구성된 메모리를 포함하고,
    하나 이상의 프로세서는 명령의 실행시 제 1 항 내지 제 11 항 중 어느 한 항에 따른 방법을 수행하도록 구성되는, 장치.
  13. 하나 이상의 컴퓨터 프로세서에 의해 실행될 때, 하나 이상의 컴퓨터 프로세서가 제 1 항 내지 제 11 항 중 어느 한 항에 따른 방법을 수행하도록 하는 컴퓨터 실행 가능 명령을 저장하는, 비일시적 컴퓨터 판독 가능 저장 매체.
KR1020247003491A 2021-07-05 2022-07-05 비디오 코딩을 위한 네트워크 기반 이미지 필터링 KR20240027791A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202163218485P 2021-07-05 2021-07-05
US63/218,485 2021-07-05
PCT/US2022/036146 WO2023283202A1 (en) 2021-07-05 2022-07-05 Network based image filtering for video coding

Publications (1)

Publication Number Publication Date
KR20240027791A true KR20240027791A (ko) 2024-03-04

Family

ID=84800924

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020247003491A KR20240027791A (ko) 2021-07-05 2022-07-05 비디오 코딩을 위한 네트워크 기반 이미지 필터링

Country Status (5)

Country Link
EP (1) EP4367881A4 (ko)
JP (1) JP2024524533A (ko)
KR (1) KR20240027791A (ko)
CN (1) CN117643053A (ko)
WO (1) WO2023283202A1 (ko)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019148977A1 (en) * 2018-02-01 2019-08-08 Mediatek Inc. Methods and apparatuses of video encoding or decoding with adaptive quantization of video data
US11265540B2 (en) * 2018-02-23 2022-03-01 Sk Telecom Co., Ltd. Apparatus and method for applying artificial neural network to image encoding or decoding
JP7139144B2 (ja) * 2018-05-14 2022-09-20 シャープ株式会社 画像フィルタ装置
WO2020080827A1 (en) * 2018-10-19 2020-04-23 Samsung Electronics Co., Ltd. Ai encoding apparatus and operation method of the same, and ai decoding apparatus and operation method of the same
WO2021091214A1 (ko) * 2019-11-05 2021-05-14 엘지전자 주식회사 크로마 양자화 파라미터 오프셋 관련 정보를 코딩하는 영상 디코딩 방법 및 그 장치

Also Published As

Publication number Publication date
EP4367881A1 (en) 2024-05-15
EP4367881A4 (en) 2024-05-29
WO2023283202A1 (en) 2023-01-12
JP2024524533A (ja) 2024-07-05
CN117643053A (zh) 2024-03-01

Similar Documents

Publication Publication Date Title
US11765383B2 (en) Video decoder and methods
CN112889281B (zh) 对图像中的块进行帧内预测的方法、设备和存储介质
CN113841405B (zh) 用于帧间预测的局部光照补偿的方法和设备
JP7508645B2 (ja) モードおよびサイズに依存したブロックレベル制限の方法および装置
CN113196748B (zh) 帧内预测方法及相关装置
US20240064296A1 (en) Network based image filtering for video coding
EP3649777A1 (en) Division-free bilateral filter
US20230345003A1 (en) Network based image filtering for video coding
CN113170100A (zh) 用于帧内预测的方法和装置
AU2019397944B2 (en) Inter-frame prediction method and device
WO2022120285A1 (en) Network based image filtering for video coding
KR20240027791A (ko) 비디오 코딩을 위한 네트워크 기반 이미지 필터링
CN115883831A (zh) 编解码方法和装置
US20240205436A1 (en) Network based image filtering for video coding
US11553208B2 (en) Method and system of video coding using a subset of available intra prediction modes for multiple reference lines
US11877013B2 (en) Method and apparatus of interpolation filtering for predictive coding

Legal Events

Date Code Title Description
A201 Request for examination