KR20230152752A - 교차 성분 예측 방법 및 시스템, 그리고 컴퓨터로 판독 가능한 매체 - Google Patents

교차 성분 예측 방법 및 시스템, 그리고 컴퓨터로 판독 가능한 매체 Download PDF

Info

Publication number
KR20230152752A
KR20230152752A KR1020237034072A KR20237034072A KR20230152752A KR 20230152752 A KR20230152752 A KR 20230152752A KR 1020237034072 A KR1020237034072 A KR 1020237034072A KR 20237034072 A KR20237034072 A KR 20237034072A KR 20230152752 A KR20230152752 A KR 20230152752A
Authority
KR
South Korea
Prior art keywords
block
luma
reconstructed
dnn
chroma
Prior art date
Application number
KR1020237034072A
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 KR20230152752A publication Critical patent/KR20230152752A/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • 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
    • 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/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/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods 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 a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/59Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
    • 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

Landscapes

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

Abstract

심층 신경망(DNN) 기반 교차 성분 예측을 위한 시스템 및 방법이 제공된다. 방법은 이미지 또는 비디오의 재구축된 루마 블록을 DNN에 입력하는 단계; 및 상기 DNN이 입력되는 상기 재구축된 루마 블록에 기초하여 상기 이미지 또는 비디오의 재구축된 크로마 블록을 예측하는 단계를 포함한다. 루마 및 크로마 참조 정보 및 부가 정보도 상기 재구축된 크로마 블록을 예측하기 위해 상기 DNN에 입력될 수있다. 다운샘플링 및 변환과 같은 프로세스를 사용하여 다양한 입력이 생성될 수도 있다.

Description

DNN 기반 교차 성분 예측
관련 출원에 대한 상호 참조
본 출원은 2021년 6월 15일에 출원된 미국 가출원 제63/210,741호 및 2022년 5월 20일에 출원된 미국 출원 제17/749,730호의 우선권을 주장하며, 상기 출원들의 개시 내용은 그 전체가 인용에 의해 본 출원에 통합된다.
본 발명의 실시예는 DNN 기반 교차 성분 예측의 방법 및 시스템에 관한 것이다.
H.264/AVC(H.264/Advanced Video Coding), HEVC(High-Efficiency Video Coding) 및 VVC(Versatile Video Coding)과 같은 전통적인 비디오 코딩 표준은 인트라/인터 예측, 정수 변환, 컨텍스트 적응형 엔트로피 코딩과 같은 개별 코딩 도구를 집중적으로 수작업하여 전체 효율을 최적화하는 유사한(재귀적) 블록 기반 하이브리드 예측/변환 프레임워크에서 설계된다. 기본적으로, 시공간 픽셀 이웃은 후속 변환, 양자화 및 엔트로피 코딩을 위한 대응하는 잔차를 획득하기 위해 예측 신호 구축에 활용된다. 한편, 심층 신경망(Deep Neural Networks, DNN)의 특성은 이웃 픽셀의 수용 영역에서 시공간 정보를 분석하여 다양한 레벨의 시공간 자극을 추출하는 것이다. 높은 비선형성과 비국소적 시공간적 상관관계를 탐색하는 능력은 크게 향상된 압축 품질을 위한 유망한 기회를 제공한다.
비디오 코딩 및 디코딩의 한 가지 목적은 압축을 통해 입력 비디오 신호의 중복성을 줄이는 것일 수 있다. 압축은 앞서 언급한 대역폭 또는 저장 공간 요구 사항을 줄이는 데, 경우에 따라서는 두 자릿수 이상 줄이는 데 도움이 될 수 있다. 무손실 압축(lossless compression)과 손실 압축(lossy compress) 모두, 그리고 이들의 조합이 채용될 수 있다. 무손실 압축이란 압축된 원본 신호(original signal)에서 원본 신호의 정확한 사본(exact copy)을 재구축할 수 있는 기술을 말한다. 손실 압축을 사용하는 경우, 재구축된 신호(reconstructed signal)는 원본 신호와 동일하지 않을 수 있지만, 원본 신호와 재구축된 신호 사이의 왜곡은, 재구축된 신호가 의도된 애플리케이션에 유용할 정도로 작다. 비디오의 경우, 손실 압축이 채용된다. 용인 가능한 왜곡의 양은 애플리케이션에 따라 다를 수 있으며; 예를 들어, 특정 소비자 스트리밍 애플리케이션의 사용자는 텔레비전 기여 애플리케이션(television contribution application)의 사용자보다 더 높은 왜곡을 용인할 수 있다. 달성 가능한 압축 비율은 허용 가능한/용인 가능한 왜곡이 높을수록 압축 비율이 높아질 수 있다.
전통적인 인코더는 상이한 성분으로부터의 정보 및 다른 부가 정보를 활용하여, 다른 구성요소를 예측하여 더 나은 압축 성능을 달성할 수 있다. 그러나, 인트라 예측에서의 교차 성분 선형 예측 모드는 DNN 기반 방법에 비해 잘 작동하지 않는다. DNN의 특성은 서로 다른 높은 레벨의 자극을 추출하는 것이며 고도의 비선형성 및 비국소 상관관계를 탐색하는 능력은 높은 압축 품질에 대한 유망한 기회를 제공한다. 본 개시의 실시예는 DNN 기반 모델을 사용하여 루마 성분, 참조 성분 및 부가 정보의 임의의 형상을 처리하여 재구축된 크로마 성분을 예측하여 더 우수한 압축 성능을 달성한다.
본 발명의 실시예는 심층 신경망(Deep Neural Network, DNN)을 사용하여 인트라 예측에서의 새로운 모드로서 교차 성분 예측(Cross Component Prediction, CCP) 모델을 제공한다. 이 모델은 루마 성분, 양자화 파라미터(quantization parameter, QP) 값, 블록 깊이 등과 같이, 인코더에서 제공하는 정보를 사용하여 크로마 성분을 예측하여 더 우수한 압축 성능을 달성한다. 이전의 NN 기반 인트라 예측 접근법은 루마 성분의 예측만을 목표로 하거나 크로마 성분과 기타 추가 정보 간의 상관관계를 무시하고 세 채널 모두에 대한 예측을 생성한다.
실시예에 따르면, 적어도 하나의 프로세서에 의해 수행되는 방법이 제공된다. 상기 방법은, 이미지 또는 비디오의 재구축된 루마 블록을 획득하는 단계; 상기 재구축된 루마 블록을 DNN에 입력하는 단계; 상기 재구축된 루마 블록과 연관된 참조 성분 및 부가 정보를 획득하는 단계; 상기 참조 성분 및 상기 부가 정보를 상기 DNN에 입력하는 단계; 및 상기 DNN이 상기 재구축된 루마 블록, 상기 참조 성분 및 상기 부가 정보에 기초하여 상기 이미지 또는 비디오의 재구축된 크로마 블록을 예측하는 단계를 포함한다.
실시예에 따르면 시스템이 제공된다. 상기 시스템은 컴퓨터 프로그램 코드를 저장하도록 구성된 적어도 하나의 메모리; 및 상기 컴퓨터 프로그램 코드에 액세스하고 상기 컴퓨터 프로그램 코드에 의해 명령받은 대로 동작하도록 구성된 적어도 하나의 프로세서를 포함한다. 상기 컴퓨터 프로그램 코드는, 상기 적어도 하나의 프로세서로 하여금 이미지 또는 비디오의 재구축된 루마 블록, 상기 재구축된 루마 블록과 연관된 부가 정보 및 참조 성분을 상기 적어도 하나의 프로세서에 의해 구현되는 심층 신경망(DNN)에 입력하게 하도록 구성된 입력 코드; 및 상기 적어도 하나의 프로세서로 하여금, 상기 DNN이 입력되는 상기 재구축된 루마 블록, 상기 참조 성분 및 상기 부가 정보에 기초하여 상기 이미지 또는 비디오의 재구축된 크로마 블록을 예측하게 하도록 구성된 예측 코드를 포함한다.
실시예에 따르면, 컴퓨터 코드를 저장하는, 컴퓨터로 판독 가능한 비일시적 매체가 제공된다. 상기 컴퓨터 코드는 적어도 하나의 프로세서에 의해 실행될 때, 상기 적어도 하나의 프로세서로 하여금, 심층 신경(DNN)을 구현하게 하고; 이미지 또는 비디오의 재구축된 루마 블록, 상기 재구축된 루마 블록과 연관된 부가 정보 및 참조 성분을 심층 신경망(DNN)에 입력하게 하고; 상기 DNN이 입력되는 상기 재구축된 루마 블록, 상기 참조 성분 및 상기 부가 정보에 기초하여 상기 이미지 또는 비디오의 재구축된 크로마 블록을 예측하게 하도록 구성된다.
개시된 주제의 추가 특징, 성질 및 다양한 이점은 이하의 상세한 설명 및 첨부도면으로부터 더욱 명백해질 것이다.
도 1은 일 실시예에 따른 통신 시스템의 단순화된 블록도의 개략도이다.
도 2는 일 실시예에 따른 통신 시스템의 단순화된 블록도의 개략도이다.
도 3은 일 실시예에 따른 디코더의 단순화된 블록도의 개략도이다.
도 4는 일 실시예에 따른 인코더의 단순화된 블록도의 개략도이다.
도 5는 일 실시예에 따른 입력 생성 프로세스의 단순화된 블록도의 개략도이다.
도 6은 일 실시예에 따른 교차 성분 예측 프로세스의 단순화된 블록도의 개략도이다.
도 7은 실시예에 따른 컴퓨터 코드의 블록도이다.
도 8은 본 개시의 실시예를 구현하기에 적합한 컴퓨터 시스템의 도면이다.
도 1은 본 발명의 일 실시예에 따른 통신 시스템(100)의 단순화된 블록도를 나타낸다. 통신 시스템(100)은 네트워크(150)를 통해 상호연결된 적어도 2개의 단말기(110, 120)를 포함할 수 있다. 데이터의 단방향 송신을 위해, 제1 단말기(110)는 네트워크(150)를 통해 다른 단말기(120)에 송신하기 위해 로컬 위치에서 비디오 데이터를 코딩할 수 있다. 제2 단말기(120)는 네트워크(150)로부터 다른 단말기의 코딩된 비디오 데이터를 수신하고, 코딩된 데이터를 디코딩하여 복원된 비디오 데이터를 표시할 수 있다. 단방향 데이터 송신은 애플리케이션 등을 제공하는 미디어에서 일반적일 수 있다.
도 1은 예를 들어 화상 회의 중에 발생할 수 있는 코딩된 비디오의 양방향 송신을 지원하기 위해 제공되는 제2 단말기 쌍(130, 140)을 도시한다. 데이터의 양방향 송신을 위해, 각각의 단말기(130, 140)는 네트워크(150)를 통해 다른 단말기에 송신하기 위해 로컬 위치에서 캡처된 비디오 데이터를 코딩할 수 있다. 각각의 단말기(130, 140)는 또한 다른 단말기에 의해 송신되는 코딩된 비디오 데이터를 수신할 수 있고, 코딩된 데이터를 디코딩할 수 있고 로컬 디스플레이 디바이스에 복구된 비디오 데이터를 표시할 수 있다.
도 1에서, 단말기(110∼140)는 서버, 개인용 컴퓨터 및 스마트폰 및/또는 임의의 다른 유형의 단말기로 예시될 수 있다. 예를 들어, 단말기(110∼140)는 랩톱 컴퓨터, 태블릿 컴퓨터, 미디어 플레이어 및/또는 전용 화상 회의 장비일 수 있다. 네트워크(150)는, 예를 들어 유선 및/또는 무선 통신 네트워크를 포함한, 단말기(110∼140) 간에 코딩된 비디오 데이터를 전달하는 임의의 수의 네트워크를 나타낸다. 통신 네트워크(150)는 회선 교환(circuit-switched) 및/또는 패킷 교환(packet-switched) 채널에서 데이터를 교환할 수 있다. 대표적인 네트워크로는 전기 통신망(telecommunications networks), 근거리 통신망(local area networks), 광역 통신망(wide area networks) 및/또는 인터넷을 포함한다. 본 논의의 목적을 위해, 네트워크(150)의 아키텍처 및 토폴로지는 본 명세서에서 이하에 명시적으로 설명되지 않는 한 본 개시의 동작에 중요하지 않을 수 있다.
도 2는 개시된 주제에 대한 애플리케이션의 일례로서, 스트리밍 환경에서의 비디오 인코더 및 디코더의 배치를 나타낸다. 개시된 주제는 예를 들어, 화상 회의, 디지털 TV, CD, DVD, 메모리 스틱 등등을 포함하는 디지털 미디어상의 압축된 비디오의 저장을 포함한, 다른 비디오 지원 애플리케이션(video enabled application)에도 동일하게 적용될 수 있다.
도 2에 나타낸 바와 같이, 스트리밍 시스템(200)은 비디오 소스(video source)(201) 및 인코더(203)를 포함할 수 있는 캡처 서브시스템(capture subsystem)(513)을 포함할 수 있다. 비디오 소스(201)은, 예를 들어 디지털 카메라일 수 있고, 압축되지 않은 비디오 샘플 스트림(202)을 생성할 수 있다. 압축되지 않은 비디오 샘플 스트림(202)은 인코딩된 비디오 비트스트림과 비교할 때 높은 데이터 볼륨을 제공할 수 있고, 비디오 소스(201)에 결합된 인코더(203)에 의해 처리될 수 있다. 인코더(203)는 아래에서 더 상세히 설명되는 바와 같이 개시된 주제의 측면들을 가능하게 하거나 구현하는 하드웨어, 소프트웨어, 또는 이들의 조합을 포함할 수 있다. 인코딩된 비디오 비트스트림(504)은 샘플 스트림과 비교할 때 더 낮은 데이터 볼륨을 포함할 수 있고, 나중에 사용하기 위해 스트리밍 서버(205)에 저장될 수 있다. 하나 이상의 스트리밍 클라이언트(206)는 인코딩된 비디오 비트스트림(204)의 사본일 수 있는 비디오 비트스트림(209)을 검색하기 위해 스트리밍 서버(205)에 액세스할 수 있다.
실시예에서, 스트리밍 서버(205)는 또한 미디어 인식 네트워크 요소(Media-Aware Network Element, MANE)로서 기능할 수 있다. 예를 들어, 스트리밍 서버(205)는 잠재적으로 상이한 비트스트림을 하나 이상의 스트리밍 클라이언트(206)에 맞춤화(tailoring)하기 위해 인코딩된 비디오 비트스트림(204)을 프루닝(prune)하도록 구성될 수 있다. 실시예에서, MANE는 스트리밍 시스템(200)에서 스트리밍 서버(205)와 별개로 제공될 수 있다.
스트리밍 클라이언트(206)는 비디오 디코더(210)와 디스플레이(212)를 포함할 수 있다. 비디오 디코더(210)는, 예를 들어 인코딩된 비디오 데이터(204)의 인커밍 사본(incoming copy)인 비디오 비트스트림(209)을 디코딩하고 디스플레이(512) 또는 다른 렌더링 디바이스(도시되지 않음)에 렌더링될 수 있는 아웃고잉 비디오 샘플 스트림(outgoing video sample stream)(211)을 생성할 수 있다. 일부 스트리밍 시스템에서, 비디오 비트스트림(204, 209)은 특정 비디오 코딩/압축 표준에 따라 인코딩될 수 있다. 이러한 표준의 예로는 ITU-T Recommendation H.265을 포함할 수 있지만 이에 한정되지 않는다. 개발중인 비디오 코딩 표준은 비공식적으로 VVC(Versatile Video Coding)로 알려져 있다. 본 개시의 실시예는 VVC의 컨텍스트에서 사용될 수 있다.
도 3는 본 개시의 일 실시예에 따른 비디오 디코더(610)의 예시적인 기능 블록도를 나타낸다.
비디오 디코더(210)는 채널(312), 수신기(310), 버퍼 메모리(315), 엔트로피 디코더/파서(320), 스케일러/역변환 유닛(351), 인트라 픽처 예측 유닛(352), 움직임 보상 예측 유닛(353), 집성기(355), 루프 필터 유닛(356), 참조 픽처 메모리(357) 및 현재 픽처 메모리를 포함할 수 있다. 적어도 하나의 실시예에서, 비디오 디코더(210)는 집적 회로, 일련의 집적 회로, 및/또는 다른 전자 회로를 포함할 수 있다. 비디오 디코더(210)는 또한 부분적으로 또는 전체적으로 연관된 메모리를 갖는 하나 이상의 CPU에서 실행되는 소프트웨어로 구현될 수 있다.
이 실시예, 및 다른 실시예에서, 수신기(310)는 디코더(310)에 의해 하나의 코딩된 비디오 시퀀스가 한번에 디코딩될 하나 이상의 코딩된 비디오 시퀀스를 수신할 수 있으며, 여기서 각각의 코딩된 비디오 시퀀스의 디코딩은 다른 코딩된 비디오 시퀀스와 독립적이다. 코딩된 비디오 시퀀스는 인코딩된 비디오 데이터를 저장하는 저장 디바이스에 대한 하드웨어/소프트웨어 링크일 수 있는 채널(312)로부터 수신될 수 있다. 수신기(310)는 다른 데이터, 예를 들어 코딩된 오디오 데이터 및/또는 보조 데이터(ancillary data) 스트림과 함께, 인코딩된 비디오 데이터를 수신할 수 있으며, 이는 엔티티(도시되지 않음)를 사용하여 그 각각에 포워딩될 수 있다. 수신기(310)는 코딩된 비디오 시퀀스를 다른 데이터와 분리할 수 있다. 네트워크 지터(network jitter)를 방지하기 위해, 버퍼 메모리(315)가 수신기(310)와 엔트로피 디코더/파서(320)(이하 "파서)" 사이에 결합될 수 있다. 수신기(310)가 충분한 대역폭 및 제어성(controllability)의 저장/포워딩 디바이스로부터, 또는 등시성 네트워크(isosynchronous network)로부터 데이터를 수신하고 있을 때, 버퍼(315)는 필요하지 않거나 작을 수 있다. 인터넷과 같은 최선형 패킷 네트워크(best effort packet network)에서 사용하기 위해, 버퍼 메모리(315)가 필요할 수 있고, 비교적 클 수 있으며, 유리하게는 적응적인 크기일 수 있다.
비디오 디코더(210)는 엔트로피 코딩된 비디오 시퀀스로부터 심볼(321)을 재구축하기 위해 파서(320)를 포함할 수 있다. 이러한 심볼의 카테고리들은 비디오 디코더(210)의 동작을 관리하는 데 사용되는 정보와, 도 2에 도시된 바와 같이, 디코더의 디코더에 결합될 수 있는 디스플레이(212)와 같은 렌더링 디바이스를 제어하기 위한 잠재적인 정보를 포함한다. 렌더링 디바이스(들)에 대한 제어 정보는 보충 강화 정보(Supplemental Enhancement Information, SEI) 메시지 또는 비디오 유용성 정보(Video Usability Information, VUI) 파라미터 세트 프래그먼트(도시되지 않음)의 형태일 수 있다. 파서(320)는 수신되는 코딩된 비디오 시퀀스를 파싱/엔트로피 디코딩할 수 있다. 코딩된 비디오 시퀀스의 코딩은 비디오 코딩 기술 또는 표준을 따를 수 있으며, 가변 길이 코딩, Huffman 코딩, 컨텍스트 민감도가 있거나 없는 산술 코딩 등을 포함한, 당업자에게 잘 알려져 있는 다양한 원리를 따를 수 있다. 파서(320)는 서브그룹에 대응하는 적어도 하나의 파라미터에 기초하여, 비디오 디코더에서 픽셀의 서브그룹 중 적어도 하나에 대한 서브그룹 파라미터의 세트를 코딩된 비디오 시퀀스로부터 추출할 수 있다. 서브그룹으로는 픽처의 그룹(Group of Picture, GOP), 픽처, 타일(tile), 슬라이스(slice), 매크로블록(macroblock), 코딩 유닛(Coding Unit, CU), 블록, 변환 유닛(Transform Unit, TU), 예측 유닛(Prediction Unit, PU) 등을 포함할 수 있다. 파서(320)는 또한 코딩된 비디오 시퀀스 정보로부터 변환 계수, 양자화기 파라미터 값, 움직임 벡터 등을 추출할 수 있다.
파서(320)는 버퍼 메모리(315)로부터 수신된 비디오 시퀀스에 대해 엔트로피 디코딩/파싱 동작을 수행하여 심볼(321)을 생성할 수 있다.
심볼(321)의 재구축은 코딩된 비디오 픽처 또는 그 일부(예: 인터 및 인트라 픽처, 인터 및 인트라 블록)의 유형 및 기타 인자에 따라 다수의 다른 유닛과 관련 있을 수 있다. 어떤 유닛이 어떻게 관련되는지는 파서(320)에 의해 코딩된 비디오 시퀀스로부터 파싱된 서브그룹 제어 정보에 의해 제어될 수 있다. 파서(320)와 그 아래의 다수의 유닛 사이의 이러한 서브그룹 제어 정보의 흐름은 간결함을 위해 나타내지 않았다.
이미 언급된 기능 블록 외에, 비디오 디코더(210)는 아래에 설명된 바와 같이 개념적으로 다수의 기능 유닛으로 세분될 수 있다. 상업적 제약 하에서 동작하는 실제 구현에서, 이러한 기능 유닛 중 다수는 서로 밀접하게 상호작용하며, 적어도 부분적으로, 서로 통합될 수 있다. 그러나 개시된 주제를 설명하기 위해, 아래의 기능 유닛들로의 개념적 세분화가 적절하다.
하나의 유닛은 스케일러/역변환 유닛(351)일 수 있다. 스케일러/역변환 유닛(351)은 사용할 역변환, 블록 크기, 양자화 인자, 양자화 스케일링 행렬 등을 파서(320)로부터의 심볼(들)(321)로서 포함하는 제어 정보뿐만 아니라 양자화된 변환 계수도 수신할 수 있다. 스케일러/역변환 유닛(351)은 집성기(aggregator)(355)에 입력될 수 있는 샘플 값을 포함하는 블록을 출력할 수 있다.
경우에 따라서는, 스케일러/역변환 유닛(351)의 출력 샘플은 인트라 코딩된 블록, 즉, 이전에 재구축된 픽처로부터의 예측 정보를 사용하지 않고, 현재 픽처의 이전에 재구축된 부분으로부터의 예측 정보를 사용할 수 있는 블록과 관련이 있을 수 있다. 이러한 예측 정보는 인트라 픽처 예측 유닛(352)에 의해 제공될 수 있다. 경우에 따라서는, 인트라 픽처 예측 유닛(352)은 현재 픽처 메모리(358)로부터 현재 (부분적으로 재구축된) 픽처로부터 인출된 주변의 이미 재구축된 정보를 사용하여, 재구축중인 블록과 동일한 크기 및 모양의 블록을 생성한다. 경우에 따라서는, 집성기(355)는 인트라 예측 유닛3652)이 생성한 예측 정보를 스케일러/역변환 유닛(351)에 의해 제공되는 출력 샘플 정보에 샘플 단위로 추가할 수 있다.
다른 경우에, 스케일러/역변환 유닛(351)의 출력 샘플은 인터 코딩되고 잠재적으로 움직임 보상된 블록과 관계가 있을 수 있다. 이러한 경우, 움직임 보상 예측 유닛(353)은 인터 픽처 예측에 사용되는 샘플을 인출하기 위해 참조 픽처 메모리(357)에 액세스할 수 있다. 블록과 관계가 있는 심볼3621)에 따라 인출된 샘플을 움직임 보상한 후, 이러한 샘플은 출력 샘플 정보를 생성하기 위해 집성기(355)에 의해 스케일러/역변환 유닛(351)의 출력(이 경우에 잔차 샘플 또는 잔차 신호로 지칭됨)에 추가될 수 있다. 움직임 보상 예측 유닛이 예측 샘플을 인출하는 참조 픽처 메모리 내의 주소는 움직임 벡터에 의해 제어될 수 있다. 움직임 벡터는, 예를 들어 X, Y 및 참조 픽처 성분을 가질 수 있는 심볼(321)의 형태로 움직임 보상 유닛(353)에 사용 가능할 수 있다. 움직임 보상은 또한 서브샘플의 정확한 움직임 벡터가 사용되고 있을 때에 참조 픽처 메모리(357)로부터 인출된 샘플 값의 보간, 움직임 벡터 예측 메커니즘 등을 포함할 수 있다.
집성기(355)의 출력 샘플은 루프 필터 유닛(356)에서 다양한 루프 필터링 기술의 대상이 될 수 있다. 비디오 압축 기술은 코딩된 비트스트림에 포함된 파라미터에 의해 제어되고 파서(320)로부터의 심볼(321)로서 루프 필터 유닛(356)에 사용 가능하게 되는 인 루프(in-loop) 필터 기술을 포함할 수 있지만, 또한 코딩된 픽처 또는 코딩된 비디오 시퀀스의 이전(디코딩 순서상) 부분을 디코딩하는 동안 획득된 메타 정보에 응답할 수 있을 뿐만 아니라 이전에 재구축되고 루프 필터링된 샘플 값에 응답할 수도 있다.
루프 필터 유닛(356)의 출력은 디스플레이(212)와 같은 렌더 디바이스에 출력될 수 있을 뿐만 아니라 미래의 인터 픽처 예측에 사용하기 위해 참조 픽처 메모리(357)에 저장될 수도 있는 샘플 스트림일 수 있다.
일단 완전히 재구축된 특정 코딩된 픽처는 나중의 예측을 위한 참조 픽처로서 사용할 수 있다. 코딩된 픽처가 완전히 재구축되고 코딩된 픽처가 (예를 들어, 파서(320)에 의해) 참조 픽처로 식별되었으면, 현재 참조 픽처는 참조 픽처 메모리(357)의 일부가 될 수 있고, 다음 코딩된 픽처의 재구축을 시작하기 전에 새로운 현재 픽처 메모리가 재할당될 수 있다.
비디오 디코더(210)는 ITU-T Rec. H.265와 같은, 표준에 문서화되어 있을 수 있는 미리 정해진 비디오 압축 기술에 따라 디코딩 동작을 수행할 수 있다. 코딩된 비디오 시퀀스는 비디오 압축 기술 또는 표준, 특히 그 중의 프로파일 문서에 명시된 대로 비디오 압축 기술 또는 표준의 신택스를 준수한다는 의미에서, 사용되는 비디오 압축 기술 또는 표준에 의해 명시된 신택스를 따를 수 있다. 또한, 소정의 비디오 압축 기술 또는 표준을 준수하기 위해, 코딩된 비디오 시퀀스의 복잡도는 비디오 압축 기술 또는 표준의 레벨에 의해 정의된 범위 내에 있는 것일 수 있다. 경우에 따라서는, 레벨은 최대 픽처 크기, 최대 프레임 레이트, 최대 재구축 샘플 레이트(예를 들어 초당 메가 샘플로 측정됨), 최대 참조 픽처 크기 등을 제한한다. 레벨에 의해 설정된 제한은, 경우에 따라서는 코딩된 비디오 시퀀스에서 시그널링되는 가상 참조 디코더(Hippothetical Reference Decoder, HRD) 버퍼 관리를 위한 HRD 사양 및 메타 데이터를 통해 추가로 제한될 수 있다.
일 실시예에서, 수신기(310)는 인코딩된 비디오와 함께 추가(중복) 데이터를 수신할 수 있다. 추가 데이터는 코딩된 비디오 시퀀스(들)의 일부로서 포함될 수 있다. 추가 데이터는 데이터를 적절하게 디코딩하고/하거나 원본 비디오 데이터를 더 정확하게 재구축하기 위해 비디오 디코더(210)에 의해 사용될 수 있다. 추가 데이터는, 예를 들어 시간 계층, 공간 계층 또는 SNR 강화 계층, 중복 슬라이스(redundant slice), 중복 픽처(redundant picture), 순방향 오류 정정 코드(forward error correction code) 등의 형태일 수 있다.
도 4는 본 개시의 일 실시예에 따른 비디오 소스(201)와 연관된 비디오 인코더(203)의 예시적인 기능 블록도를 나타낸다.
비디오 인코더(203)는 예를 들어, 소스 코더(430)인 인코더, 코딩 엔진(432), (로컬) 디코더(433), 참조 픽처 메모리(434), 예측기(435), 송신기(440), 엔트로피인 인코더(445), 제어기(450) 및 채널(460)을 포함할 수 있다.
비디오 인코더(203)는 비디오 인코더(203)에 의해 코딩될 비디오 이미지(들)를 캡처할 수 있는 비디오 소스(201)(인코더의 일부가 아님)로부터 비디오 샘플을 수신할 수 있다.
비디오 소스(201)는 임의의 적절한 비트 심도(예: 8비트, 10비트, 12비트, ...), 임의의 색 공간(color space)(예: BT.601 Y CrCb, RGB, ...) 및 임의의 적절한 샘플링 구조(예: Y CrCb 4:2:0, Y CrCb 4:4:4)일 수 있는 디지털 비디오 샘플 스트림의 형태로 비디오 인코더(203)에 의해 코딩될 소스 비디오 시퀀스를 제공할 수 있다. 미디어 서빙 시스템에서, 비디오 소스(201)는 미리 준비된 비디오를 저장할 수 있는 저장 디바이스일 수 있다. 화상 회의 시스템에서, 비디오 소스(201)는 로컬 이미지 정보를 비디오 시퀀스로서 캡처하는 카메라일 수 있다. 비디오 데이터는 순차적으로 볼 때 움직임을 부여하는 복수의 개별 픽처 또는 이미지로 제공될 수 있다. 픽처 자체는 픽셀의 공간 배열(spatial array)로 구성될 수 있으며, 각각의 픽셀은 사용중인 샘플링 구조, 색 공간 등에 따라 하나 이상의 샘플을 포함할 수 있다. 당업자라면 픽셀과 샘플 사이의 관계를 쉽게 이해할 수 있을 것이다. 아래 설명은 샘플에 중점을 둔다.
일 실시예에 따르면, 비디오 인코더(203)는 소스 비디오 시퀀스의 픽처를 실시간으로 또는 애플리케이션에 의해 요구되는 임의의 다른 시간 제약하에 코딩된 비디오 시퀀스(443)로 코딩하고 압축할 수 있다. 적절한 코딩 속도를 강제하는 것이 제어기(450)의 한 가지 기능이다. 제어기(450)는 또한 후술되는 바와 같이 다른 기능 유닛을 제어할 수 있고 그러한 유닛들에 기능적으로 결합될 수 있다. 그 결합은 간결함을 위해 표시되지 않는다. 제어기(540)에 의해 설정되는 파라미터로는 레이트 제어 관련 파라미터(픽처 스킵, 양자화기, 레이트 왜곡 최적화 기술의 람다 값 ...), 픽처 크기, 픽처 그룹(group of pictures, GOP) 레이아웃, 최대 움직임 벡터 검색 범위, 등을 포함할 수 있다. 제어기(350)의 다른 기능들은 특정 시스템 설계에 최적화된 비디오 인코더(203)와 관련 있을 수 있기 때문에 당업자라면 제어기(350)의 다른 기능들을 용이하게 식별할 수 있을 것이다.
일부 비디오 인코더는 당업자가 "코딩 루프"로서 용이하게 인식할 수 있는 방식으로 동작한다. 과도하게 단순화된 설명으로서, 코딩 루프는 소스 코더(430)의 인코딩 부분(코딩될 입력 픽처에 기초하여 심볼 및 참조 픽처(들)의 생성을 담당), 및 심볼과 코딩된 비디오 비트 스트림 사이의 압축이 특정 비디오 압축 기술에서 무손실인 경우 (원격) 디코더도 생성할 샘플 데이터를 생성하기 위해 심볼을 재구축하는 인코더(203)에 내장된 (로컬) 디코더(433)으로 구성될 수 있다. 재구축된 샘플 스트림은 참조 픽처 메모리(434)에 입력될 수 있다. 심볼 스트림의 디코딩은 디코더 위치(로컬 또는 원격)와 무관하게 비트가 정확한 결과(bit-exact result)로 이어지므로, 참조 픽처 메모리 내용도 로컬 인코더와 원격 인코더 사이에 비트가 정확하다. 다시 말해, 인코더의 예측 부분은 디코딩 동안에 예측을 사용하는 경우에 디코더가 "인식하는(see)" 것과 정확히 동일한 샘플 값을 참조 픽처 샘플로서 "인식한다". 이 참조 픽처 동시성(reference picture synchronicity)의 기본 원리 (및 예를 들어 채널 오차로 인해 동시성이 유지될 수 없는 경우, 결과 드리프트)는 당업자에게 알려져 있다.
"로컬" 디코더(433)의 동작은 "원격" 디코더(210)의 동작과 동일할 수 있으며, 이는 이미 도 3과 관련하여 상세하게 설명되었다. 심볼이 이용 가능하고 엔트로피 코더(445) 및 파서(320)에 의한 코딩된 비디오 시퀀스로의 심볼의 인코딩/디코딩이 무손실일 수 있으므로, 채널(312), 수신기(310), 버퍼(315) 및 파서(320)를 포함하는, 디코더(310)의 엔트로피 디코딩 부분은 로컬 디코더(433)에서 전적으로 구현되지 않을 수 있다.
이 시점에서 관찰할 수 있는 것은 디코더에 존재하는 파싱/엔트로피 디코딩을 제외한 임의의 디코더 기술이 대응하는 인코더에, 실질적으로 동일한 기능적 형태로 존재할 필요가 있다는 것이다. 이러한 이유로, 개시된 주제는 디코더 동작에 초점을 맞춘다. 인코더 기술에 대한 설명은 포괄적으로 설명된 디코더 기술의 반대이므로 생략될 수 있다. 특정 영역에서만 더 자세한 설명이 필요하고 아래에 제공된다.
동작의 일부로서, 소스 코더(430)는 "참조 픽처"로 지정된 비디오 시퀀스로부터 하나 이상의 이전에 코딩된 픽처를 참조하여 입력 픽처를 예측적으로 코딩하는 움직임 보상된 예측 코딩을 수행할 수 있다. 이러한 방식으로, 코딩 엔진(432)은 입력 픽처에 대한 예측 참조(들)로서 선택될 수 있는 참조 픽처(들)의 픽셀 블록과 입력 프레임의 픽셀 블록 사이의 차이를 코딩한다.
로컬 디코더(433)는 소스 코더(430)에 의해 생성된 심볼에 기초하여, 참조 픽처로 지정될 수 있는 픽처의 코딩된 비디오 데이터를 디코딩할 수 있다. 코딩 엔진(432)의 동작은 유리하게는 손실 프로세스일 수 있다. 코딩된 비디오 데이터가 비디오 디코더(도 4에 도시되지 않음)에서 디코딩될 수 있는 경우, 재구축된 비디오 시퀀스는 일반적으로 약간의 오류가 있는 소스 비디오 시퀀스의 복제본(replica)일 수 있다. 로컬 디코더(433)는 참조 픽처에 대해 비디오 디코더에 의해 수행될 수 있는 디코딩 프로세스를 복제하고, 재구축된 참조 픽처가 참조 픽처 메모리(434)에 저장되도록 할 수 있다. 이러한 방식으로, 인코더(203)는 원단(far-end) 비디오 디코더(송신 오류 없음)에 의해 획득될 재구축된 참조 픽처로서 공통된 내용을 갖는 재구축된 참조 픽처의 사본을 로컬로 저장할 수 있다.
예측기(predictor)(435)는 코딩 엔진(432)에 대한 예측 검색을 수행할 수 있다. 즉, 코딩될 새로운 픽처에 대해, 예측기(435)는 참조 픽처 메모리(434)에서 새로운 픽처에 대한 적절한 예측 참조의 역할을 할 수 있는 샘플 데이터(후보 참조 픽셀 블록임), 또는 참조 픽처 움직임 벡터, 블록 모양 등과 같은 특정 메타데이터를 검색할 수 있다. 예측기(435)는 적절한 예측 참조를 찾기 위해 샘플 블록별 픽셀 블록 단위(sample block-by-pixel block basis)로 동작할 수 있다. 경우에 따라서는, 예측기(435)에 의해 획득된 검색 결과에 의해 결정되는 바와 같이, 입력 픽처는 참조 픽처 메모리(434)에 저장된 다수의 참조 픽처로부터 끌어낸 예측 참조를 가질 수 있다.
제어기(450)는, 예를 들어 비디오 데이터를 인코딩하는 데 사용되는 파라미터 및 서브그룹 파라미터의 설정을 포함한, 소스 코더(430)의 코딩 동작을 관리할 수 있다.
전술한 모든 기능 유닛의 출력은 엔트로피 코더(445)에서의 엔트로피 코딩 대상일 수 있다. 엔트로피 코더는 예를 들어 호프만(Huffman) 코딩, 가변 길이 코딩, 산술 코딩 등과 같은 당업자에게 알려져 있는 기술에 따라 심볼을 무손실 압축함으로써, 다양한 기능 유닛에 의해 생성된 심볼을 코딩된 비디오 시퀀스로 변환한다.
송신기(440)는 엔트로피 코더(445)에 의해 생성되는 코딩된 비디오 시퀀스(들)를 버퍼링하여, 인코딩된 비디오 데이터를 저장할 저장 디바이스에 대한 하드웨어/소프트웨어 링크일 수 있는 통신 채널(460)을 통한 송신을 준비할 수 있다. 송신기(440)는 소스 코더(430)로부터의 코딩된 비디오 데이터를 송신될 다른 데이터, 예를 들어 코딩된 오디오 데이터 및/또는 보조 데이터 스트림(소스는 도시되지 않음)과 병합할 수 있다.
제어기(450)는 비디오 인코더(203)의 동작을 관리할 수 있다. 코딩하는 동안, 제어기(350)는 각각의 픽처에 특정 코딩된 픽처 유형을 할당할 수 있으며, 이는 각각의 픽처에 적용될 수 있는 코딩 기술에 영향을 미칠 수 있다. 예를 들어, 픽처는 종종 인트라 픽처(Intra Picture: I 픽처), 예측 픽처(Predictive picture: P 픽처), 양 방향 예측 픽처(Bi-directionally Predictive Picture: B 픽처)로서 할당될 수 있다:
인트라 픽처(I 픽처)는 예측 소스로서 시퀀스 내의 어떤 다른 픽처도 사용하지 않고 코딩 및 디코딩될 수 있는 것일 수 있다. 일부 비디오 코덱은, 예를 들어 독립 디코더 리프레시(Independent Decoder Refresh, IDR) 픽처를 포함한, 상이한 유형의 인트라 픽처를 허용한다. 당업자는 I 픽처의 이러한 변형 및 그들 각각의 적용 및 특징을 알고 있다.
예측 픽처(P 픽처)는 각각의 블록의 샘플 값을 예측하기 위해 최대 하나의 움직임 벡터 및 참조 색인을 사용하는 인트라 예측 또는 인터 예측을 사용하여 코딩 및 디코딩될 수 있는 것일 수 있다.
양 방향 예측 픽처(B 픽처)는 각각의 블록의 샘플 값을 예측하기 위해 최대 2개의 움직임 벡터 및 참조 색인을 사용하는 인트라 예측 또는 인터 예측을 사용하여 코딩 및 디코딩될 수 있는 것일 수 있다. 유사하게, 다중 예측 픽처(multiple-predictive picture)는 단일 블록의 재구축을 위해 2개보다 많은 참조 픽처와 연관된 메타데이터를 사용할 수 있다.
소스 픽처는 일반적으로 공간적으로 복수의 샘플 블록(예: 각각 4×4, 8×8, 4×8 또는 16×16 샘플의 블록)으로 세분화되고 블록 단위로 코딩될 수 있다. 블록은 블록의 픽처 각각에 적용된 코딩 할당에 의해 결정된 대로 다른 (이미 코딩된) 블록을 참조하여 예측적으로 코딩될 수 있다. 예를 들어, I 픽처의 블록은 비 예측적으로 코딩될 수 있거나, 동일한 픽처의 이미 코딩된 블록(공간 예측 또는 인트라 예측)을 참조하여 예측적으로 코딩될 수 있다. P 픽처의 픽셀 블록은 이전에 코딩된 하나의 참조 픽처를 참조하여 공간 예측을 통해 또는 시간 예측을 통해 예측적으로 코딩될 수 있다. B 픽처의 블록은 하나 또는 2개의 이전에 코딩된 참조 픽처를 참조하여 공간 예측을 통해 또는 시간 예측을 통해 예측적으로 코딩될 수 있다.
비디오 인코더(203)는 ITU-T Rec. H.265와 같은 미리 결정된 비디오 코딩 기술 또는 표준에 따라 코딩 동작을 수행할 수 있다. 그 동작에서, 비디오 인코더(203)는 입력 비디오 시퀀스에서의 시간적 및 공간적 중복성을 이용하는 예측 코딩 동작을 포함한, 다양한 압축 동작을 수행할 수 있다. 따라서, 코딩된 비디오 데이터는 사용되는 비디오 코딩 기술 또는 표준에 의해 지정된 신택스를 따를 수 있다.
일 실시예에서, 송신기(440)는 인코딩된 비디오와 함께 추가 데이터를 송신할 수 있다. 비디오 코더(430)는 코딩된 비디오 시퀀스의 일부로서 그러한 데이터를 포함할 수 있다. 추가 데이터는 시간/공간/SNR 강화 계층, 중복 픽처 및 슬라이스와 같은 다른 형태의 중복 데이터, 보충 강화 정보(Supplementary Enhancement Information, SEI) 메시지, 시각적 유용성 정보(Visual Usability Information, VUI) 파라미터 세트 프래그먼트 등을 포함할 수 있다.
본 개시의 실시예는 DNN 기반 교차 성분 예측을 제공한다. 이하에서는 도 5 및 도 6을 참조하여 예시적인 실시예를 설명한다.
본 개시의 실시예에 따른 비디오 압축 프레임워크에 대해 설명하면 다음과 같다. 입력 비디오는 비디오의 총 프레임 수와 동일한 복수의 이미지 프레임을 포함한다고 가정한다. 프레임은 공간 블록으로 파티셔닝되며, 각 블록은 반복적으로 더 작은 블록으로 파티셔닝될 수 있다. 블록은 루마 성분(510y) 및 크로마 채널(520u, 520t)을 포함하는 크로마 성분(520) 둘 다를 포함한다. 인트라 예측 프로세스 동안, 루마 성분(510y)이 먼저 예측될 수 있고, 2개의 크로마 채널(520u, 520t)이 나중에 예측될 수 있다. 2개의 크로마 채널(520u, 520t)의 예측은 공동으로 또는 개별적으로 수행될 수 있다.
본 개시의 일 실시예에서, 재구축된 크로마 성분(520)은 인코더와 디코더 모두에서 또는 디코더에서만 DNN 기반 모델에 의해 생성된다. 2개의 크로마 채널(520u, 520t)은 단일 네트워크와 함께 생성될 수도 있고, 서로 다른 네트워크와 별개로 생성될 수 있다. 각각의 크로마 채널에 대해, 크로마 채널은 블록 크기에 기초하여 다른 네트워크를 사용하여 생성될 수 있다. 신호 처리, 공간 또는 시간 필터링, 스케일링, 가중 평균, 업/다운 샘플링, 풀링, 메모리를 사용한 재귀 처리, 선형 시스템 처리, 비선형 시스템 처리, 신경망 처리, 심층 학습 기반 처리, AI 처리, 미리 훈련된 네트워크 처리, 기계 학습 기반 처리 또는 이들의 조합이 DNN 기반 교차 성분 예측에 있어 본 개시의 실시예에서 모듈로 사용될 수 있다. 재구축된 크로마 성분(520)을 처리하기 위해, 하나의 재구축된 크로마 채널(예: 크로마 채널 520u와 520t 중 하나)은 다른 재구축된 크로마 채널(예: 크로마 채널 520u와 520t 중 다른 하나)을 생성하는 데 사용될 수 있다.
본 개시의 실시예에 따르면, 블록의 재구축된 루마 성분(510y), 참조 성분, 및 인코더에 의해 제공되는 다른 부가 정보에 기초하여, 블록의 재구축된 크로마 채널(520u, 520t)의 압축 성능을 향상시키는 DNN 기반 교차 성분 예측 모델이 제공될 수 있다. 실시예에 따르면, 4:2:0이 크로마 채널(520u, 520t)의 서브샘플링에 사용될 수 있다. 따라서 크로마 채널(520u, 520t)은 루마 성분(510y)보다 해상도가 낮다.
도 5를 참조하여, 프로세스(500)를 아래에 설명한다. 프로세스(500)는 본 개시의 실시예에 따른 일반적인 하이브리드 비디오 코딩 시스템에서의 훈련 및/또는 예측을 위한 입력 샘플(580)을 생성하는 작업 흐름을 포함한다.
재구축된 루마 성분(510y)은 2N×2M 블록인 루마 블록일 수 있으며, 여기서 2N은 루마 블록의 너비이고 2M은 루마 블록의 높이이다. 실시예에 따르면, 2N×2K 블록인 제1 루마 참조(luma reference)(512y) 및 2K×2M 블록인 제2 루마 참조(514y)도 제공될 수 있으며, 여기서 2K는 루마 참조에서의 행 또는 열의 수를 나타낸다. 루마 크기를 예측된 출력 크기와 동일하게 만들기 위해, 루마 성분(510y), 제1 루마 참조(512y) 및 제2 루마 참조(514y)에 다운샘플링 프로세스(591)가 적용된다. 다운샘플링 프로세스(530)는 바이큐빅(bicubic) 및 바이리니어(bilinear)와 같은 전통적인 방법일 수 있거나, NN 기반 다운샘플링 방법일 수 있다. 다운샘플링 후, 루마 성분(510y)은 N×M의 블록 크기를 갖는 다운샘플링된 루마 성분(530y)이 될 수 있고, 제1 루마 참조(512y)는 N×K의 블록 크기를 갖는 다운샘플링된 제1 루마 참조(532y)가 될 수 있고, 제2 루마 참조(514y)는 K×M의 블록 크기를 갖는 다운샘플링된 제2 루마 참조(534y)가 될 수 있다. 다운샘플링된 제1 루마 참조(532y) 및 다운샘플링된 제2 루마 참조(534y)은 각각 다운샘플링된 루마 성분(530y)의 크기(루마 블록이라고도 함)와 일치하는 제1 변환된 루마 참조(552y) 및 제2 변환된 루마 참조(554y)가 되도록 (단계 592에서) 변환될 수 있고, 제1 변환된 루마 참조(552y), 제2 변환된 루마 참조(554y) 및 다운샘플링된 루마 성분(530y)은 (단계 592에서) 함께 연결될 수 있다. 예를 들어, 변환은 다운샘플링된 제1 루마 참조(532y)와 다운샘플링된 제2 루마 참조(534y)의 값을 그 크기가 출력 블록 크기(예: 다운샘플링된 루마 성분(530y)의 크기)와 같아질 때까지 여러 번 복제함으로써 수행될 수 있다.
크로마 성분(520)을 예측하기 위해, 크로마 성분(520)의 인접 참조(예: 제1 크로마 참조(522) 및 제2 크로마 참조(524))가 또한 더 우수한 크로마 성분을 생성하기 위한 선택적 참조로서 추가될 수 있다. 도 5를 참조하면, 크로마 성분(520)은 크기 N×M의 블록일 수 있으며, 이는 본 개시의 실시예에서 생성/예측될 수 있는 재구축된 크로마 블록이다. 크로마 성분(520)은 2개의 크로마 채널(520u, 520t)을 갖고, 두 채널(520u, 520t)이 모두 공동으로 사용될 수 있다. 제1 크로마 참조(522) 및 제2 크로마 참조(524)가 (단계 593에서) 획득될 수 있으며, 각각 N×K과 K×M의 블록 크기를 가질 수 있다. 실시예에 따르면, 제1 크로마 참조(522) 및 제2 크로마 참조(524)은 각각 2개의 크로마 채널(520u, 520t)에 대응하여 두 번 획득될 수 있다. 제1 크로마 참조(522)와 제2 크로마 참조(524)는 (단계 594에서) 각각 N×M 크기에 매칭되는 제1 변환된 크로마 참조(542)과 제2 변환된 크로마 참조(544)으로 변환될 수 있다. 모든 이미지 기반 정보(예: 다운샘플링된 루마 성분(530y), 제1 변환된 루마 참조(552y), 제2 변환된 루마 참조(554y), 제1 변환된 크로마 참조(542), 및 제2 변환된 크로마 참조(544)를 (단계 595에서) 함께 연결하여 DNN의 훈련을 위한 및/또는 DNN을 사용한 예측을 위한 입력 샘플(580)을 획득한다. 루마 및 크로마 성분 외에도 신경망의 훈련 및/또는 예측을 위한 입력에 부가 정보를 추가할 수 있다. 예를 들어, QP 값 및 블록 파티션 깊이 정보는 N×M 크기의 특징 맵을 생성하는 데 사용될 수 있고, 이미지 기반 특징 맵(예: 다운샘플링된 루마 성분(530y), 제1 변환된 루마 참조(552y), 제2 변환된 루마 참조(554y), 제1 변환된 크로마 참조(542) 및 제2 변환된 크로마 참조(544))과 (단계 595에서) 함께 연결되어 훈련 및/또는 예측을 위한 입력 샘플(580)을 생성할 수 있다.
도 6을 참조하여 아래에 일반적인 하이브리드 비디오 코딩 시스템에서 프로세스(600)의 작업 흐름을 설명한다.
재구축된 루마 블록(610)(루마 성분이라고도 함), 부가 정보(612), 루마 블록(610)에 인접한 루마 참조(614), 및 재구축될 크로마 블록에 인접한 크로마 참조(616)의 세트가 DNN(620)의 입력으로 사용될 수 있으므로, 본 발명의 실시예의 모델은 훈련 및 예측을 모두 수행할 수 있다. DNN(620)의 출력(630)은 예측된 크로마 성분일 수 있으며, 두 개의 크로마 채널이 서로 다른 DNN 모델 또는 동일한 DNN 모델을 사용하여 예측될 수 있다.
실시예에 따르면, DNN(620)에 대한 입력은 도 5를 참조하여 설명한 입력 샘플(580)일 수 있다. 예를 들어, 재구축된 루마 블록(610)은 다운샘플링된 루마 성분(530y)일 수 있고, 인접한 루마 참조(614)는 제1 변환된 루마 참조(552y)와 제2 변환된 루마 참조(554y) 중 하나 이상일 수 있고, 인접 크로마 참조(616)는 (크로마 채널(520u, 520t) 중 하나 또는 둘 모두에 대해) 제1 변환된 크로마 참조(542)와 제2 변환된 크로마 참조(544) 중 하나 이상일 수 있다. 실시예에 따르면, 부가 정보는 예를 들어, QP 값 및 블록 파티션 깊이 정보를 포함할 수 있다.
재구축된 루마 블록(610), 부가 정보(612), 인접 루마 참조(614) 및 인접 크로마 참조(616)가 입력으로 사용되는 방법의 조합, 연결 또는 순서는 다양하게 변경될 수 있다. 실시예에 따르면, 부가 정보(612), 인접 루마 참조(614) 및/또는 인접 크로마 참조(616)는 본 개시의 실시예의 코딩 시스템에 의한 결정(들)에 기초한, DNN(620)에 대한 선택적 입력일 수 있다.
실시예에 따르면, 본 발명의 코딩 시스템은, 예를 들어 DNN(620)의 출력(630)(예: 예측된 크로마 성분)을 원본 크로마 블록(660)과 비교하고, 다른 예측 모드로부터의 하나 이상의 크로마 블록을 원본 크로마 블록(660)과 비교함으로써(단계 650), 재구축 품질을 계산할 수 있다(단계 640). 출력(630)(예: 예측된 크로마 성분) 및 다른 예측 모드로부터의 하나 이상의 크로마 블록(단계 650) 중에서 하나가 가장 높은 재구축 품질(예: 원본 크로마 블록(660)에 가장 근접함)을 갖는다는 결정에 기초하여, 그러한 블록(또는 모드)가 재구축된 크로마 블록(670)이 되도록 코딩 시스템에 의해 선택될 수 있다.
실시예에 따르면, 컴퓨터 프로그램 명령어를 저장하는 적어도 하나의 프로세서 및 메모리가 제공될 수 있다. 컴퓨터 프로그램 명령어는 적어도 하나의 프로세서에 의해 실행될 때, 본 개시에 기술된 임의의 수의 기능을 수행하는 시스템을 구현할 수 있다. 예를 들어, 도 7을 참조하면, 적어도 하나의 프로세서는 시스템(700)을 구현할 수 있다. 시스템(700)은 DNN(들) 및 DNN의 적어도 하나의 모델을 포함할 수 있다. 컴퓨터 프로그램 명령어는 예를 들어, DNN 코드(710), 입력 생성 코드(720), 입력 코드(730), 예측 코드(740), 재구축 품질 코드(750) 및 이미지 획득 코드(760)를 포함할 수 있다.
DNN 코드(710)는 본 개시의 실시예에 따라 적어도 하나의 프로세서로 하여금 DNN(들) (및 그 모델)을 구현하게 하도록 구성될 수 있다.
입력 생성 코드(720)는 본 개시의 실시예에 따라 적어도 하나의 프로세서로 하여금 DNN(들)에 대한 입력을 생성하게 하도록 구성될 수 있다(예: 도 5의 설명 참조). 예를 들어, 입력 생성 코드(720)는 도 5을 참조하여 설명된 프로세스가 수행되게 할 수 있다.
입력 코드(730)는 본 개시의 실시예에 따라 적어도 하나의 프로세서로 하여금 DNN(들)에 입력을 입력하게 하도록 구성될 수 있다(예: 도 6에 도시된 DNN(620)에의 입력에 대한 설명 참조). 예를 들어, 도 6을 참조하면, 입력은 재구축된 루마 블록(610), 부가 정보(612), 루마 참조(614) 및/또는 크로마 참조(616)를 포함할 수 있다.
예측 코드(740)는 본 개시의 실시예에 따라, 적어도 하나의 프로세서로 하여금 DNN(들)에 의해, 재구축된 크로마 블록을 예측하게 하도록 구성될 수 있다(예: 도 6에 도시된 출력(630)의 설명 참조).
재구축 품질 코드(750)는 본 개시의 실시예에 따라, 적어도 하나의 프로세서로 하여금 DNN에 의해 예측되는 재구축된 크로마 블록, 및 다른 예측 모드(들)을 사용하여 예측되는 다른 재구축된 크로마 블록(들)의 재구축 품질을 계산하게 하도록 구성될 수 있다(예: 도 6에 도시된 단계 640 및 단계 650의 설명 참조).
이미지 획득 코드(760)는 본 개시의 실시예에 따라, 적어도 하나의 프로세서로 하여금 DNN에 의해 예측되는 재구축된 크로마 블록, 또는 다른 모드(들)을 사용하여 예측되는 다른 재구축된 크로마 블록(들)을 사용하여 이미지를 획득하게 하도록 구성될 수 있다(예: 도 6에 도시된 단계 640 및 재구축된 크로마 블록(670)의 설명 참조). 예를 들어, 이미지 획득 코드(760)는 적어도 하나의 프로세서로 하여금 가장 높은 계산된 재구축 품질을 갖는 것에 기초하여, 재구축된 크로마 블록 및 다른 재구축된 크로마 블록 중에서 하나를 선택하고, 그러한 재구축된 크로마를 사용하여 이미지를 획득하게 하도록 구성될 수 있다. 실시예에 따르면, 이미지 획득 코드(760)는 적어도 하나의 프로세서로 하여금 계산되고 및/또는 재구축된 크로마 블록들 사이에서 선택에 사용되는 재구축 품질 없이 DNN에 의해 예측되는 재구축된 크로마 블록을 사용하여 이미지를 획득하게 하도록 구성될 수 있다. 실시예에 따르면, 재구축된 루마 블록은 이미지를 획득하는 데도 사용될 수 있다.
인트라 예측 모드에서의 이전의 교차 성분 예측 방법과 비교할 때, 본 개시의 실시예는 다양한 이점을 제공한다. 예를 들어, 본 개시의 실시예는 다양한 모양의 재구축된 블록을 수용하는 유연하고 일반적인 프레임워크를 제공한다. 또한, 본 개시의 실시예는 다양한 입력 정보를 갖는 변환 메커니즘을 활용하여 DNN 모델의 학습 능력을 최적화하여 코딩 효율을 향상시키는 측면을 포함한다. 또한 부가 정보를 DNN과 함께 사용하여 예측 결과를 향상시킬 수 있다.
전술한 본 개시의 실시예의 기술은 컴퓨터로 판독가능 명령어를 사용하여 컴퓨터 소프트웨어로서 구현될 수 있고 하나 이상의 컴퓨터로 판독 가능한 매체에 물리적으로 저장될 수 있다. 예를 들어, 도 8은 개시된 주제의 실시예를 구현하기에 적합한 컴퓨터 시스템(900)을 도시한다.
컴퓨터 소프트웨어는 임의의 적절한 기계 코드 또는 컴퓨터 언어를 사용하여 코딩될 수 있으며, 이는 컴퓨터 중앙 처리 유닛(central processing unit, CPU), 그래픽 처리 유닛(Graphics Processing Unit, GPU), 등에 의해 어셈블링(assembly), 편집(compilation), 링크(linking), 또는 유사 메커니즘을 거쳐 직접적으로 또는 해석, 마이크로 코드 실행(, micro-code execution) 등을 통해 실행될 수 있는 명령어를 포함하는 코드를 생성할 수 있다.
명령어는 예를 들어 개인용 컴퓨터, 태블릿 컴퓨터, 서버, 스마트폰, 게이밍 디바이스, 사물 인터넷 디바이스 등을 포함한, 다양한 유형의 컴퓨터 또는 그 구성요소에서 실행될 수 있다.
도 8에 도시된 컴퓨터 시스템(900)의 구성요소는 본질적으로 예시적인 것이며, 본 개시의 실시예를 구현하는 컴퓨터 소프트웨어의 사용 또는 기능의 범위에 대한 어떠한 한정도 시사하려는 것은 아니다. 구성요소의 구성은 컴퓨터 시스템(900)의 예시적인 실시예에 나타낸 구성요소 중 어느 하나 또는 조합과 관련된 임의의 종속성 또는 요건을 가지는 것으로 해석되어서는 안 된다.
컴퓨터 시스템(900)은 특정 휴먼 인터페이스 입력 디바이스(human interface input device)를 포함할 수 있다. 이러한 휴먼 인터페이스 입력 디바이스는 한 명 이상의 인간 사용자에 의한 입력, 예를 들어 촉각 입력(예: 키 누름(keystroke), 스와이프(swip), 데이터 장갑 움직임), 오디오 입력(예: 음성, 박수), 시각적 입력(예: 제스처), 후각 입력(도시되지 않음)에 입력에 응답할 수 있다. 휴먼 인터페이스 디바이스는 또한 오디오(예: 음성, 음악, 주변 소리), 이미지(예: 스캔된 이미지, 정지 이미지 카메라로부터 획득한 픽처 이미지), 비디오(예: 2차원 비디오, 입체 비디오(stereoscopic video)를 포함한 3차원 비디오)와 같은, 사람에 의한 의식적 입력과 반드시 직접 관련이 있는 것은 아닌 특정 미디어를 캡처하는 데 사용될 수도 있다.
입력 휴먼 인터페이스 디바이스는 키보드(901), 마우스(902), 트랙 패드(903), 터치 스크린(910), 데이터 장갑, 조이스틱(905), 마이크로폰(906), 스캐너(907), 카메라(908) 중 하나 이상(각각 하나만 표시됨)을 포함할 수 있다.
컴퓨터 시스템(900)은 또한 특정 휴먼 인터페이스 출력 디바이스를 포함할 수 있다. 이러한 휴먼 인터페이스 출력 디바이스는 예를 들어 촉각 출력, 소리, 빛 및 냄새/맛을 통해, 한 명 이상의 인간 사용자의 감각을 자극할 수 있다. 이러한 휴먼 인터페이스 출력 디바이스는 촉각 출력 디바이스(예: 터치 스크린(910), 데이터 장갑, 또는 조이스틱(905)에 의한 촉각 피드백이지만, 입력 기기의 역할을 하지 않는 촉각 피드백 기기도 있을 수 있음)를 포함할 수 있다. 예를 들어, 이러한 디바이스 오디오 출력 디바이스(예: 스피커(909), 헤드폰(도시되지 않음)), 시각적 출력 디바이스(예: 각각 터치 스크린 입력 능력이 있거나 없는, 각각 촉각 피드백 기능이 있거나 없는, CRT 스크린, LCD 스크린, 플라즈마 스크린, OLED 스크린을 포함한, 스크린(910) - 그 일부는 스테레오그래픽 출력(stereographic), 가상 현실 안경(virtual-reality glasses)(도시되지 않음), 홀로그래픽 디스플레이(holographic display) 및 연기 탱크(smoke tank)(도시되지 않음)와 같은 수단을 통해 2차원 시각적 출력 또는 3차원 이상의 출력을 할 수 있음 -), 및 프린터(도시되지 않음)를 포함할 수 있다.
컴퓨터 시스템(900)은 또한 CD/DVD 등의 매체(921)를 갖는 CD/DVD ROM RW(920)을 포함한 광학 매체, 썸 드라이브(thumb-drive)(922), 탈착 가능한 하드 드라이브 또는 솔리드 스테이트 드라이브(923), 테이프 및 플로피 디스크(도시되지 않음)와 같은 레거시 자기 매체, 보안 동글(security dongle)(도시되지 않음)과 같은 특수한 ROM/ASIC/PLD 기반 디바이스 등의 인간이 액세스 가능할 수 있는 저장 기기 및 그 연관 매체를 포함할 수도 있다.
당업자는 또한 현재 개시된 주제와 관련하여 사용된 바와 같이 컴퓨터로 판독 가능한 매체"라는 용어가 송신 매체, 반송파(carrier wave) 또는 기타 일시적인 신호를 포함하지 않는다는 것을 이해해야 한다.
컴퓨터 시스템(900)은 또한 하나 이상의 통신 네트워크에 대한 인터페이스를 포함할 수 있다. 네트워크는 예를 들어 무선, 유선, 광 등의 네트워크일 수 있다. 네트워크는 또한 로컬, 광역, 대도시, 차량 및 산업, 실시간, 지연 허용 등의 네트워크일 수 있다. 네트워크의 예로는 이더넷, 무선 LAN, GSM, 3G, 4G, 5G, LTE, 등을 포함하는 셀룰러 네트워크, 케이블 TV, 위성 TV, 및 지상파 방송 TV를 포함하는 TV 유선 또는 무선 광역 디지털 네트워크, CANbus를 포함하는 차량 및 산업용, 등을 포함한다. 특정 네트워크는 일반적으로 특정 범용 데이터 포트 또는 주변 버스(949)(예: 컴퓨터 시스템(900)의 USB 포트)에 부착된 외부 네트워크 인터페이스 어댑터)를 필요로 하며; 다른 것은 일반적으로 이하에 설명하는 바와 같이 시스템 버스에 부착함으로써 컴퓨터 시스템(900)의 코어에 통합된다(예: PC 컴퓨터 시스템에의 이더넷 인터페이스 또는 스마트폰 컴퓨터 시스템에의 셀룰러 네트워크 인터페이스). 이러한 네트워크 중 임의의 것을 사용하여, 컴퓨터 시스템(900)은 다른 네트워크와 통신할 수 있다. 이러한 통신은 단방향, 수신 전용(예: TV 방송), 단방향 전송 전용(예: CANbus에서 특정 CANbus 기기로) 또는 양방향(예: 로컬 또는 광역 디지털 네트워크를 사용하여 다른 컴퓨터 시스템으로)일 수 있다. 이러한 통신은 클라우드 컴퓨팅 환경(955)에 대한 통신을 포함할 수 있다. 특정 프로토콜 및 프로토콜 스택이 전술한 바와 같은 네트워크 및 네트워크 인터페이스 각각에 사용될 수 있다.
전술한 휴먼 인터페이스 디바이스, 인간이 액세스 가능한 저장 디바이스 및 네트워크 인터페이스(954)는 컴퓨터 시스템(900)의 코어(940)에 부착될 수 있다.
코어(940)는 하나 이상의 중앙 처리 유닛(CPU)(941), 그래픽 처리 유닛(GPU)(942), 필드 프로그래머블 게이트 어레이(Field Programmable Gate Area, FPGA)(943) 형태의 특화된 프로그램 가능한 처리 유닛, 특정 태스크를 위한 하드웨어 가속기(944) 등을 포함할 수 있다. 판독 전용 메모리(Read-only memory, ROM)(945), 랜덤 액세스 메모리(946), 사용자가 액세스할 수 없는 내부 하드 드라이브, SSD 등의 내부 대용량 저장장치(947)와 함께, 이러한 디바이스는 시스템 버스(948)을 통해 연결될 수 있다. 일부 컴퓨터 시스템에서, 시스템 버스(948)는 추가적인 CPU, GPU 등에 의한 확장을 가능하게 하는 하나 이상의 물리 플러그의 형태로 액세스 가능할 수 있다. 주변 디바이스는 코어의 시스템 버스(948)에 직접 연결되거나 주변 버스(949)를 통해 연결될 수 있다. 주변 버스를 위한 아키텍처로는 PCI, USB 등을 포함한다. 그래픽 어댑터(950)는 코어(940)에 포함될 수 있다.
CPU(941), GPU(942), FPGA(943) 및 가속기(944)는, 조합하여, 전술한 컴퓨터 코드를 구성할 수 있는 특정 명령어를 실행할 수 있다. 그 컴퓨터 코드는 ROM(945) 또는 RAM(946)에 저장될 수 있다. 이행 데이터(transitional data)는 RAM(946)에도 저장될 수 있는 반면, 영구 데이터는 예를 들어, 내부 대용량 저장장치(947)에 저장될 수 있다. 메모리 소자 중 어느 것에 대한 빠른 저장 및 검색은, 하나 이상의 CPU(941), GPU(942), 대용량 저장장치(947), ROM(945), RAM(946) 등과 밀접하게 연관될 수 있는 캐시 메모리의 사용을 통해 가능해질 수 있다.
컴퓨터로 판독 가능한 매체는 다양한 컴퓨터로 구현되는 동작(computer-implemented operation)을 수행하기 위한 컴퓨터 코드를 가질 수 있다. 매체 및 컴퓨터 코드는 본 개시의 목적을 위해 특별히 설계되고 구축된 것일 수 있거나, 컴퓨터 소프트웨어 분야의 당업자에게 잘 알려져 있고 이용 가능한 종류일 수 있다.
한정이 아닌 예로서, 아키텍처(900), 구체적으로 코어(940)를 갖는 컴퓨터 시스템은 하나 이상의 유형의 컴퓨터로 판독 가능한 매체에 구현된 소프트웨어 실행하는 프로세서(들)(CPU, GPU, FPGA, 가속기 등을 포함)의 결과로서 기능을 제공할 수 있다. 이러한 컴퓨터로 판독 가능한 매체는 위에서 소개한 바와 같이 사용자가 액세스할 수 있는 대용량 저장장치와 연관된 매체일 수 있을 뿐만 아니라 코어 내부 대용량 저장장치(947) 또는 ROM(945)과 같은, 비일시적인 성질의 코어(940)의 특정 저장장치일 수 있다. 본 개시의 다양한 실시예를 구현하는 소프트웨어는 이러한 기기에 저장되고 코어(940)에 의해 실행될 수 있다. 컴퓨터로 판독 가능한 매체는 구체적인 필요에 따라, 하나 이상의 메모리 소자 또는 칩을 포함할 수 있다. 소프트웨어는 코어(940) 및 특히 내부의 프로세서(CPU, GPU, FPGA 등 포함)로 하여금 RAM(946)에 저장된 데이터 구조를 정의하고 소프트웨어에 의해 정의된 프로세스에 따라 이러한 데이터 구조를 수정하는 것을 포함하여, 여기에 설명된 특정 프로세스 또는 특정 프로세스의 특정 부분을 실행하도록 할 수 있다. 추가로 또는 대안으로서, 컴퓨터 시스템은 여기에 설명된 특정 프로세스 또는 특정 프로세스의 특정 부분을 실행하기 위해 소프트웨어 대신 또는 소프트웨어와 함께 작동할 수 있는, 논리 배선(logic hardwired)의 결과로서 그렇지 않으면 회로(예: 가속기(944))에 다른 방식으로 구현되는 기능을 제공할 수 있다. 소프트웨어에 대한 언급은 논리를 포함할 수 있으며, 적절한 경우 그 반대도 마찬가지이다. 컴퓨터로 판독 가능한 매체에 대한 언급은 실행을 위한 소프트웨어를 저장하는 회로(예: 집적 회로(IC)), 실행을 위한 논리를 구현하는 회로, 또는 적절한 경우 둘 다를 포함할 수 있다. 본 개시는 하드웨어와 소프트웨어의 임의의 적절한 조합을 포함한다.
본 개시는 몇몇 비한정적 예시적인 실시예를 설명했지만, 본 개시의 범위 내에 속하는 변경, 순열 및 다양한 대체 등가물이 있다. 따라서, 당업자는 본 명세서에 명시적으로 도시되지 않거나 설명되지 않았지만, 본 개시의 원리를 구현하고 따라서 본 개의 사상 및 범위 내에 있는 수많은 시스템 및 방법을 고안할 수 있다는 것을 이해할 것이다.

Claims (20)

  1. 적어도 하나의 프로세서에 의해 수행되는 방법으로서,
    이미지 또는 비디오의 재구축된 루마 블록을 획득하는 단계;
    상기 재구축된 루마 블록을 심층 신경망(deep neural network, DNN)에 입력하는 단계;
    상기 재구축된 루마 블록과 연관된 참조 성분 및 부가 정보를 획득하는 단계;
    상기 참조 성분 및 상기 부가 정보를 상기 DNN에 입력하는 단계; 및
    상기 DNN이 상기 재구축된 루마 블록, 상기 참조 성분 및 상기 부가 정보에 기초하여 상기 이미지 또는 비디오의 재구축된 크로마 블록을 예측하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서,
    상기 참조 성분은 상기 재구축된 루마 블록의 인접 루마 참조와 예측 대상인 상기 재구축된 크로마 블록의 인접 크로마 참조 중에서 적어도 하나를 포함하고,
    상기 예측하는 단계는, 상기 DNN이 상기 재구축된 루마 블록, 및 입력되는 상기 인접 루마 참조와 상기 인접 크로마 참조 중에서 적어도 하나에 기초하여 상기 재구축된 크로마 블록을 예측하는 단계를 더 포함하는, 방법.
  3. 제1항에 있어서,
    상기 참조 성분은 상기 재구축된 루마 블록의 인접 루마 참조와 예측 대상인 상기 재구축된 크로마 블록의 인접 크로마 참조를 포함하고,
    상기 예측하는 단계는, 상기 DNN이 입력되는 상기 재구축된 루마 블록, 상기 인접 루마 참조 및 상기 인접 크로마 참조에 기초하여 상기 재구축된 크로마 블록을 예측하는 단계를 더 포함하는, 방법.
  4. 제1항에 있어서,
    상기 부가 정보에 기초하여 특징 맵을 생성하고 생성된 특징 맵을 DNN 훈련을 위한 다른 이미지 기반 특징 맵과 연결하는 단계를 더 포함하는 방법.
  5. 제1항에 있어서,
    상기 부가 정보는 양자화 파라미터(quantization parameter, QP) 값과 블록 분할 깊이 정보 중에서 적어도 하나를 포함하는, 방법.
  6. 제1항에 있어서,
    상기 DNN에 의해 예측되는 상기 재구축된 크로마 블록의 재구축 품질, 및 다른 예측 모드를 사용하여 예측되는 다른 재구축된 크로마 블록의 재구축 품질을 계산하는 단계; 및
    계산된 상기 재구축 품질 중에서 가장 높은 것에 기초하여, 상기 DNN에 의해 예측되는 상기 재구축된 크로마 블록 및 상기 다른 예측 모드를 사용하여 예측되는 상기 다른 재구축된 크로마 블록 중에서 하나를 사용하여 상기 이미지 또는 비디오를 획득하는 단계를 더 포함하는 방법.
  7. 제1항에 있어서,
    상기 DNN의 입력을 생성하는 단계를 더 포함하며,
    상기 예측하는 단계는, 상기 DNN이 상기 입력에 기초하여 상기 이미지 또는 비디오의 재구축된 크로마 블록을 예측하는 단계를 포함하고,
    상기 생성하는 단계는,
    루마 블록을 재구축하고 상기 루마 블록의 인접 루마 참조를 획득하는 단계;
    상기 루마 블록을 다운샘플링하여 상기 재구축된 루마 블록을 상기 입력 중 하나로 획득하는 단계;
    상기 루마 블록의 인접 루마 참조를 다운샘플링하는 단계; 및
    다운샘플링되는 상기 인접 루마 참조를 다운샘플링되는 상기 루마 블록과 동일한 크기를 갖도록 변환하는 단계를 포함하고,
    상기 DNN의 입력은 다운샘플링되는 루마 블록 및 변환되는 인접 루마 참조를 포함하는, 방법.
  8. 제7항에 있어서,
    상기 루마 블록은 2N×2M 블록이고, 상기 인접 루마 참조는 2N×2K 제1 루마 참조 블록 및 2K×2M 제2 루마 참조 블록을 포함하며, N, K, M은 정수이고, 2N은 너비이고, 2M은 높이이고, 2K는 루마 참조의 행 또는 열의 수인, 방법.
  9. 제8항에 있어서,
    상기 루마 블록을 다운샘플링하여 획득되는 상기 재구축된 루마 블록의 크기는 N×M이고,
    상기 인접 루마 참조를 다운샘플링한 후, 상기 제1 루마 참조 블록의 크기는 N×K이고, 상기 제2 참조 루마 블록의 크기는 K×M인, 방법.
  10. 제7항에 있어서,
    상기 생성하는 단계는 예측될 상기 재구축된 크로마 블록의 인접 크로마 참조를 다운샘플링되는 상기 루마 블록과 동일한 크기를 갖도록 변환하는 단계를 더 포함하고,
    상기 DNN의 입력은 다운샘플링되는 상기 루마 블록, 변환되는 상기 인접 루마 참조 및 변환되는 상기 인접 크로마 참조를 포함하는, 방법.
  11. 시스템으로서,
    컴퓨터 프로그램 코드를 저장하도록 구성된 적어도 하나의 메모리; 및
    상기 컴퓨터 프로그램 코드에 액세스하고 상기 컴퓨터 프로그램 코드에 의해 명령받은 대로 동작하도록 구성된 적어도 하나의 프로세서를 포함하고,
    상기 컴퓨터 프로그램 코드는,
    상기 적어도 하나의 프로세서로 하여금 이미지 또는 비디오의 재구축된 루마 블록, 상기 재구축된 루마 블록과 연관된 부가 정보 및 참조 성분을 상기 적어도 하나의 프로세서에 의해 구현되는 심층 신경망(DNN)에 입력하게 하도록 구성된 입력 코드; 및
    상기 적어도 하나의 프로세서로 하여금, 상기 DNN이 입력되는 상기 재구축된 루마 블록, 상기 참조 성분 및 상기 부가 정보에 기초하여 상기 이미지 또는 비디오의 재구축된 크로마 블록을 예측하게 하도록 구성된 예측 코드
    를 포함하는, 시스템.
  12. 제11항에 있어서,
    상기 참조 성분은 상기 재구축된 루마 블록의 인접 루마 참조와 예측 대상인 상기 재구축된 크로마 블록의 인접 크로마 참조 중에서 적어도 하나를 포함하고,
    상기 예측 코드는 추가로, 상기 적어도 하나의 프로세서로 하여금, 상기 DNN이 상기 재구축된 루마 블록, 및 입력되는 상기 인접 루마 참조와 상기 인접 크로마 참조 중에서 적어도 하나에 기초하여 상기 재구축된 크로마 블록을 예측하게 하도록 구성되는, 시스템.
  13. 제11항에 있어서,
    상기 참조 성분은 상기 재구축된 루마 블록의 인접 루마 참조와 예측 대상인 상기 재구축된 크로마 블록의 인접 크로마 참조를 포함하고,
    상기 예측 코드는 추가로, 상기 적어도 하나의 프로세서로 하여금, 상기 DNN이 입력되는 상기 재구축된 루마 블록, 상기 인접 루마 참조 및 상기 인접 크로마 참조에 기초하여 상기 재구축된 크로마 블록을 예측하게 하도록 구성되는, 시스템.
  14. 제11항에 있어서,
    상기 컴퓨터 프로그램 코드는 상기 적어도 하나의 프로세서로 하여금 상기 부가 정보에 기초하여 특징 맵을 생성하고 생성된 특징 맵을 DNN 훈련을 위한 다른 이미지 기반 특징 맵과 연결하게 하도록 구성된 입력 생성 코드를 더 포함하는, 시스템.
  15. 제11항에 있어서,
    상기 부가 정보는 양자화 파라미터(QP) 값과 블록 분할 깊이 정보 중에서 적어도 하나를 포함하는, 시스템.
  16. 제11항에 있어서,
    상기 컴퓨터 프로그램 코드는,
    상기 적어도 하나의 프로세서로 하여금 상기 DNN에 의해 예측되는 상기 재구축된 크로마 블록의 재구축 품질, 및 다른 예측 모드를 사용하여 예측되는 다른 재구축된 크로마 블록의 재구축 품질을 계산하게 하도록 구성된 재구축 품질 코드; 및
    상기 적어도 하나의 프로세서로 하여금 계산된 상기 재구축 품질 중에서 가장 높은 것에 기초하여, 상기 DNN에 의해 예측되는 상기 재구축된 크로마 블록 및 상기 다른 예측 모드를 사용하여 예측되는 상기 다른 재구축된 크로마 블록 중에서 하나를 사용하여 상기 이미지 또는 비디오를 획득하게 하도록 구성된 이미지 획득 코드를 더 포함하는, 시스템.
  17. 제11항에 있어서,
    상기 컴퓨터 프로그램 코드는,
    상기 적어도 하나의 프로세서로 하여금 상기 DNN의 입력을 생성하게 하도록 구성된 입력 생성 코드를 더 포함하며,
    상기 예측 코드는 추가로, 상기 적어도 하나의 프로세서로 하여금 상기 DNN이 상기 입력에 기초하여 상기 이미지 또는 비디오의 재구축된 크로마 블록을 예측하게 하도록 구성되고,
    상기 입력 생성 코드는 상기 적어도 하나의 프로세서로 하여금,
    루마 블록을 재구축하고 상기 루마 블록의 인접 루마 참조를 획득하게 하고;
    상기 루마 블록을 다운샘플링하여 상기 재구축된 루마 블록을 상기 입력 중 하나로 획득하게 하고;
    상기 루마 블록의 인접 루마 참조를 다운샘플링하게 하고;
    다운샘플링되는 상기 인접 루마 참조를 다운샘플링되는 상기 루마 블록과 동일한 크기를 갖도록 변환하게 하도록 함으로써 상기 적어도 하나의 프로세서로 하여금 상기 DNN의 입력을 생성하게 하도록 구성되고,
    상기 DNN의 입력은 다운샘플링되는 루마 블록 및 변환되는 인접 루마 참조를 포함하는, 시스템.
  18. 제17항에 있어서,
    상기 루마 블록은 2N×2M 블록이고, 상기 인접 루마 참조는 2N×2K 제1 루마 참조 블록 및 2K×2M 제2 루마 참조 블록을 포함하며, N, K, M은 정수이고, 2N은 너비이고, 2M은 높이이며, 2K는 루마 참조의 행 또는 열의 수인, 시스템.
  19. 제18항에 있어서,
    상기 루마 블록을 다운샘플링하여 획득되는 상기 재구축된 루마 블록의 크기는 N×M이고,
    상기 인접 루마 참조를 다운샘플링한 후, 상기 제1 루마 참조 블록의 크기는 N×K이고, 상기 제2 참조 루마 블록의 크기는 K×M인, 시스템.
  20. 컴퓨터 코드를 저장하는, 컴퓨터로 판독 가능한 비일시적 매체로서,
    상기 컴퓨터 코드는 적어도 하나의 프로세서에 의해 실행될 때, 상기 적어도 하나의 프로세서로 하여금,
    심층 신경(DNN)을 구현하게 하고;
    이미지 또는 비디오의 재구축된 루마 블록, 상기 재구축된 루마 블록과 연관된 부가 정보 및 참조 정보를 심층 신경망(DNN)에 입력하게 하고;
    상기 DNN이 입력되는 상기 재구축된 루마 블록, 상기 참조 성분 및 상기 부가 정보에 기초하여 상기 이미지 또는 비디오의 재구축된 크로마 블록을 예측하게 하도록 구성되는,
    컴퓨터로 판독 가능한 비일시적 매체.
KR1020237034072A 2021-06-15 2022-05-31 교차 성분 예측 방법 및 시스템, 그리고 컴퓨터로 판독 가능한 매체 KR20230152752A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202163210741P 2021-06-15 2021-06-15
US63/210,741 2021-06-15
US17/749,730 US11909956B2 (en) 2021-06-15 2022-05-20 DNN-based cross component prediction
US17/749,730 2022-05-20
PCT/US2022/031506 WO2022265847A1 (en) 2021-06-15 2022-05-31 Dnn-based cross component prediction

Publications (1)

Publication Number Publication Date
KR20230152752A true KR20230152752A (ko) 2023-11-03

Family

ID=84390728

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237034072A KR20230152752A (ko) 2021-06-15 2022-05-31 교차 성분 예측 방법 및 시스템, 그리고 컴퓨터로 판독 가능한 매체

Country Status (6)

Country Link
US (2) US11909956B2 (ko)
EP (1) EP4133417A4 (ko)
JP (1) JP2023542333A (ko)
KR (1) KR20230152752A (ko)
CN (1) CN116601945A (ko)
WO (1) WO2022265847A1 (ko)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9288500B2 (en) 2011-05-12 2016-03-15 Texas Instruments Incorporated Luma-based chroma intra-prediction for video coding
US10728546B2 (en) * 2016-02-05 2020-07-28 Apple Inc. Sample adaptive offset systems and methods
US11689726B2 (en) * 2018-12-05 2023-06-27 Google Llc Hybrid motion-compensated neural network with side-information based video coding
KR102612765B1 (ko) 2019-06-28 2023-12-13 바이트댄스 아이엔씨 변환 스킵 모드에서 양자화 파라미터를 수정하는 기술
CN110602491B (zh) 2019-08-30 2022-07-19 中国科学院深圳先进技术研究院 帧内色度预测方法、装置、设备及视频编解码系统
CN114946182A (zh) 2019-10-11 2022-08-26 交互数字Vc控股法国有限公司 生成边信息的深度帧内预测器

Also Published As

Publication number Publication date
US11909956B2 (en) 2024-02-20
EP4133417A4 (en) 2023-08-23
US20220400249A1 (en) 2022-12-15
EP4133417A1 (en) 2023-02-15
US20240155112A1 (en) 2024-05-09
WO2022265847A1 (en) 2022-12-22
CN116601945A (zh) 2023-08-15
JP2023542333A (ja) 2023-10-06

Similar Documents

Publication Publication Date Title
JP7295210B2 (ja) 高速dst-7
US11394983B2 (en) Method and apparatus for merge mode with additional middle candidates in video coding
KR102646839B1 (ko) 비디오 코딩을 위한 방법 및 장치
US10523963B1 (en) Method and apparatus for merge mode in video coding
JP7362876B2 (ja) 簡略化された最確モードリスト生成スキーム
KR20200125733A (ko) 비디오 코딩을 위한 방법 및 장치
KR102637503B1 (ko) 비디오 시퀀스의 디코딩 또는 인코딩을 위한 인트라-인터 예측 모드를 제어하기 위한 방법 및 장치
US11949856B2 (en) Intra mode selection in intra prediction
US20240031605A1 (en) Reducing context models for entropy coding of transform coefficients
KR20220085836A (ko) 비디오 코딩 방법 및 장치
KR20220100726A (ko) 비디오 코딩을 위한 방법 및 장치
JP7423132B2 (ja) ビデオ符号化のための方法および装置
JP2023547170A (ja) 改善されたイントラ予測のための方法および装置
US20190373279A1 (en) Methods and apparatus for inter prediction with a reduced above line buffer in video coding
US11909956B2 (en) DNN-based cross component prediction
US20220408098A1 (en) Block-wise entropy coding method in neural image compression
KR20240065141A (ko) 시간적 예측 기반 정점 위치 압축
KR20220070476A (ko) 시간적 필터링의 단순화 방법들

Legal Events

Date Code Title Description
A201 Request for examination