KR20220088503A - 비디오 코딩을 위해 가상 참조 영상을 이용한 인터-픽처 예측 방법 및 장치 - Google Patents

비디오 코딩을 위해 가상 참조 영상을 이용한 인터-픽처 예측 방법 및 장치 Download PDF

Info

Publication number
KR20220088503A
KR20220088503A KR1020227019415A KR20227019415A KR20220088503A KR 20220088503 A KR20220088503 A KR 20220088503A KR 1020227019415 A KR1020227019415 A KR 1020227019415A KR 20227019415 A KR20227019415 A KR 20227019415A KR 20220088503 A KR20220088503 A KR 20220088503A
Authority
KR
South Korea
Prior art keywords
picture
reference picture
virtual reference
virtual
prediction
Prior art date
Application number
KR1020227019415A
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 KR20220088503A publication Critical patent/KR20220088503A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • 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/109Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
    • 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/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/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/423Methods 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 characterised by memory arrangements
    • 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/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/527Global motion vector estimation
    • 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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/537Motion estimation other than block-based

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

비디오 시퀀스의 현재 픽처의 인터-픽처 예측 수행 방법은 적어도 하나의 프로세서에 의해 수행되며, 상기 방법은: 상기 현재 픽처가 가상 참조 픽처를 사용하는지를 판정하는 단계; 상기 가상 참조 픽처를 사용하는 것으로 판정되는 현재 픽처에 기초하여, 상기 현재 픽처에 대해, 상기 가상 참조 픽처에 가장 가까운 이웃인 이웃 참조 픽처로부터 상기 가상 참조 픽처를 생성하는 단계; 상기 생성된 가상 참조 픽처를 디코딩된 픽처 버퍼에 저장하는 단계; 및 상기 생성된 가상 참조 픽처를 활성 참조 픽처 목록에 추가하는 단계를 포함한다. 상기 방법은 상기 가상 참조 픽처가 추가된 상기 활성 참조 픽처 목록에 기초하여, 상기 현재 픽처의 인터 픽처 예측을 수행하는 단계를 더 포함한다.

Description

비디오 코딩을 위해 가상 참조 영상을 이용한 인터-픽처 예측 방법 및 장치
본 출원은 미국 특허상표청에 2020년 9월 24일에 출원된 미국 가특허출원 제63/082,784호, 2020년 9월 25일에 출원된 미국 가특허출원 제63/083,527호 및 2021년 5월 25일에 출원된 미국 특허출원 제17/329,751호로부터 우선권을 주장하며, 상기 문헌들은 그 전문이 여기에 참조로 포함된다.
실시예에 따른 방법 및 장치는 비디오 코딩에 관한 것으로, 보다 상세하게는 비디오 코딩을 위한 가상 참조 픽처를 사용한 인터-픽처 예측을 위한 방법 및 장치에 관한 것이다.
모션 보상과 함께 인터-픽처 예측을 사용하는 비디오 코딩 및 디코딩은 수십 년 동안 알려져 왔다. 압축되지 않은 디지털 비디오는 일련의 픽처로 구성될 수 있으며, 각 픽처는 예를 들어 1920 x 1080 휘도 샘플 및 관련 색차 샘플의 공간 차원을 갖는다. 일련의 픽처는 예를 들어 초당 60개의 픽처 또는 60Hz의 고정 또는 가변 픽처 레이트(비공식적으로는 프레임 레이트라고도 함)를 가질 수 있다. 압축되지 않은 비디오에는 상당한 비트 전송률 요구 사항이 있다. 예를 들어 샘플당 8비트의 1080p60 4:2:0 비디오(60Hz 프레임 속도에서 1920x1080 휘도 샘플 해상도)에는 1.5Gbit/s에 가까운 대역폭이 필요하다. 이러한 비디오 1시간에는 600GB 이상의 저장 공간이 필요하다.
비디오 코딩 및 디코딩의 한 가지 목적은 압축을 통해 입력 비디오 신호의 중복성을 줄이는 것일 수 있다. 압축은 앞서 언급한 대역폭 또는 저장 공간 요구 사항을 줄이는 데 도움이 될 수 있으며 경우에 따라 2배 이상이다. 무손실 및 손실 압축은 물론 이들의 조합도 사용할 수 있다. 무손실 압축은 압축된 원본 신호에서 원본 신호의 정확한 복사본을 재구성할 수 있는 기술을 나타낸다. 손실 압축을 사용할 때 재구성된 신호는 원래 신호와 동일하지 않을 수 있지만 원래 신호와 재구성된 신호 사이의 왜곡은 재구성된 신호를 의도한 애플리케이션에 유용하게 할 만큼 충분히 작을 수 있다. 비디오의 경우 손실 압축이 널리 사용된다. 허용되는 왜곡의 양은 애플리케이션에 따라 다르다. 예를 들어 소비자 스트리밍 애플리케이션의 사용자는 텔레비전 기여 애플리케이션의 사용자보다 더 높은 왜곡을 허용할 수 있다. 달성 가능한 압축 비율은 다음을 반영할 수 있다. 허용/허용 가능한 왜곡이 높을수록 압축 비율이 높아질 수 있다.
비디오 인코더 및 디코더는 예를 들어 모션 보상, 변환, 양자화 및 엔트로피 코딩을 포함하는 여러 광범위한 범주의 기술을 활용할 수 있으며, 그 중 일부는 아래에 소개된다.
실시예에 따라, 비디오 시퀀스의 현재 픽처의 인터-픽처 예측 수행 방법이 적어도 하나의 프로세서에 의해 수행되며, 상기 방법은: 상기 현재 픽처가 가상 참조 픽처를 사용하는지를 판정하는 단계; 상기 가상 참조 픽처를 사용하는 것으로 판정되는 현재 픽처에 기초하여, 상기 현재 픽처에 대해, 상기 가상 참조 픽처에 가장 가까운 이웃인 이웃 참조 픽처로부터 상기 가상 참조 픽처를 생성하는 단계; 상기 생성된 가상 참조 픽처를 디코딩된 픽처 버퍼에 저장하는 단계; 및 상기 생성된 가상 참조 픽처를 활성 참조 픽처 목록에 추가하는 단계를 포함한다. 상기 방법은 상기 가상 참조 픽처가 추가된 상기 활성 참조 픽처 목록에 기초하여, 상기 현재 픽처의 인터 픽처 예측을 수행하는 단계를 더 포함한다.
실시예에 따라, 비디오 시퀀스의 현재 픽처의 인터-픽처 예측 수행 장치는 컴퓨터 프로그램 코드를 저장하도록 구성된 적어도 하나의 메모리; 및 상기 적어도 하나의 메모리에 액세스하고 상기 컴퓨터 프로그램 코드에 따라 동작하도록 구성된 적어도 하나의 프로세서를 포함한다. 상기 컴퓨터 프로그램 코드는: 상기 적어도 하나의 프로세서로 하여금 상기 현재 픽처가 가상 참조 픽처를 사용하는지를 판정하게 하도록 구성된 제1 판정 코드; 상기 적어도 하나의 프로세서로 하여금 상기 가상 참조 픽처를 사용하는 것으로 판정되는 현재 픽처에 기초하여, 상기 현재 픽처에 대해, 상기 가상 참조 픽처에 가장 가까운 이웃인 이웃 참조 픽처로부터 상기 가상 참조 픽처를 생성하게 하도록 구성된 생성 코드; 상기 적어도 하나의 프로세서로 하여금 상기 생성된 가상 참조 픽처를 디코딩된 픽처 버퍼에 저장하게 하도록 구성된 저장 코드; 상기 적어도 하나의 프로세서로 하여금 상기 생성된 가상 참조 픽처를 활성 참조 픽처 목록에 추가하게 하도록 구성된 추가 코드; 및 상기 적어도 하나의 프로세서로 하여금 상기 가상 참조 픽처가 추가된 상기 활성 참조 픽처 목록에 기초하여, 상기 현재 픽처의 인터 픽처 예측을 수행하게 하도록 구성된 수행 코드를 포함한다.
실시예에 따라, 명령을 저장하는 비 일시적 컴퓨터 판독 가능형 저장 매체가 제공되며, 상기 명령은 비디오 시퀀스의 현재 픽처의 인터-픽처 예측 수행 방법을 수행하기 위해 적어도 하나의 프로세서에 의해 실행될 때, 상기 적어도 하나의 프로세서로 하여금: 상기 현재 픽처가 가상 참조 픽처를 사용하는지를 판정하고; 상기 가상 참조 픽처를 사용하는 것으로 판정되는 현재 픽처에 기초하여: 상기 현재 픽처에 대해, 상기 가상 참조 픽처에 가장 가까운 이웃인 이웃 참조 픽처로부터 상기 가상 참조 픽처를 생성하고, 상기 생성된 가상 참조 픽처를 디코딩된 픽처 버퍼에 저장하고, 상기 생성된 가상 참조 픽처를 활성 참조 픽처 목록에 추가하게 한다. 상기 명령은 적어도 하나의 프로세서에 의해 실행될 때, 상기 적어도 하나의 프로세서로 하여금 상기 가상 참조 픽처가 추가된 상기 활성 참조 픽처 목록에 기초하여, 상기 현재 픽처의 인터 픽처 예측을 수행하게 한다.
도 1은 일 실시예에 따른 통신 시스템의 간략화된 블록도의 개략도이다.
도 2는 일 실시예에 따른 스트리밍 시스템의 단순화된 블록도의 개략도이다.
도 3은 일 실시예에 따른 디코더의 단순화된 블록도의 개략도이다.
도 4는 일 실시예에 따른 인코더의 단순화된 블록도의 개략도이다.
도 5a는 일 실시예에 따른 가상 참조 픽처 생성 및 참조 픽처 목록로의 삽입의 개략도이다.
도 5b는 일 실시예에 따른 가상 참조 픽처 생성 프로세스의 개략도이다.
도 6a는 일 실시예에 따른 가상 참조 픽처로 코딩된 비디오 스트림을 디코딩하는 방법의 흐름도이다.
도 6b는 일 실시예에 따른 가상 참조 서브픽처로 코딩된 비디오 스트림을 디코딩하는 방법의 흐름도이다.
도 7은 일 실시예에 따른 컴퓨터 시스템의 개략도이다.
도 8은 일 실시예에 따른 아핀 예측 모드의 개략도이다.
도 9는 일 실시예에 따른 디코더 측 모션 벡터 리파인먼트의 개략도이다.
원시 비디오 데이터가 압축될 때, 코딩된 비트스트림에서 중복 데이터를 감소시키기 위해 인터-상관/인트라-상관이 이용된다. 특히, 인터-픽처 예측 기술은 모션 추정 및 보상과 함께 인터-픽처 중복성을 제거하기 위해 널리 사용되어 왔다. 물체와 배경의 움직임을 보정하여 보다 정확한 예측을 통해 잔여 데이터의 엔트로피를 줄일 수 있다. 더 많은 순방향 또는 역방향 참조 픽처를 활용하여 다양한 비디오 코딩 프레임워크 및 표준에서 보다 효율적인 압축을 제공하였다. 그러나 모션 보상을 포함하는 많은 효율적인 알고리즘이 코딩 효율을 향상시켰지만 일반적으로 인터 예측 후 여전히 잔여 데이터가 남아 코딩된 비트 크기를 증가시킨다. 본 개시에서는, 잔여 데이터를 감소시키고 코딩 효율을 향상시키기 위해, 다른 디코딩된 참조 픽처로부터 보다 정확한 참조 픽처를 생성한다. 뛰어난 알고리즘 또는 신경망 처리의 도움으로 생성된 참조 사진은 비디오 압축에 대한 보다 정확한 예측을 가져올 수 있다.
도 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)은 서버, 개인용 컴퓨터 및 스마트폰으로 예시될 수 있지만, 본 개시의 원리는 이에 제한되지 않을 수 있다. 본 개시의 실시예는 랩톱 컴퓨터, 태블릿 컴퓨터, 미디어 플레이어 및/또는 전용 화상 회의 장비를 사용한 애플리케이션을 찾는다. 네트워크(150)는 예를 들어 유선 및/또는 무선 통신 네트워크를 포함하여 단말(110-140) 사이에서 코딩된 비디오 데이터를 전달하는 임의의 수의 네트워크를 나타낸다. 통신 네트워크(150)는 회선 교환 및/또는 패킷 교환 채널에서 데이터를 교환할 수 있다. 대표적인 네트워크는 통신 네트워크, 근거리 통신망, 광역 통신망 및/또는 인터넷을 포함한다. 본 논의의 목적을 위해, 네트워크(150)의 아키텍처 및 토폴로지는 이하에서 설명되지 않는 한 본 개시의 동작에 중요하지 않을 수 있다.
도 2는 일 실시예에 따른 스트리밍 시스템(200)의 단순화된 블록도의 개략도이다.
도 2는 개시된 주제에 대한 애플리케이션에 대한 예로서, 스트리밍 환경에서 비디오 인코더 및 디코더의 배치를 예시한다. 개시된 주제는 예를 들어 화상 회의, 디지털 TV, CD, DVD, 메모리 스틱 등을 포함하는 디지털 미디어에 압축된 비디오 저장 등을 포함하는 다른 비디오 가능 애플리케이션에 동일하게 적용될 수 있다.
스트리밍 시스템은 예를 들어 압축되지 않은 비디오 샘플 스트림(202)을 생성하는, 예를 들어 디지털 카메라와 같은 비디오 소스(201)를 포함할 수 있는 캡처 서브시스템(213)을 포함할 수 있다. 인코딩된 비디오 비트스트림과 비교할 때 높은 데이터 볼륨을 강조하기 위해 굵은 선으로 표시된 해당 샘플 스트림(202)은 카메라(201)에 연결된 인코더(203)에 의해 처리될 수 있다. 인코더(203)는 하드웨어, 소프트웨어, 또는 이들의 조합을 포함하여 아래에서 더 상세히 설명되는 바와 같이 개시된 주제의 관점을 가능하게 하거나 구현할 수 있다. 샘플 스트림과 비교할 때 더 낮은 데이터 볼륨을 강조하기 위해 가는 선으로 묘사된 인코딩된 비디오 비트스트림(204)은 향후 사용을 위해 스트리밍 서버(205)에 저장될 수 있다. 하나 이상의 스트리밍 클라이언트(206, 208)는 스트리밍 서버(205)에 액세스하여 인코딩된 비디오 비트스트림(204)의 사본(207, 209)을 검색할 수 있다. 클라이언트(206)는 인코딩된 비디오 비트스트림(207)의 인커밍 사본을 디코딩하고 디스플레이(212) 또는 다른 렌더링 장치(도시되지 않음)에서 렌더링될 수 있는 아웃고잉 비디오 샘플 스트림(211)을 생성하는 비디오 디코더(210)를 포함할 수 있다. 일부 스트리밍 시스템에서 비디오 비트스트림(204, 207, 209)은 비디오 코딩/압축 표준에 따라 인코딩될 수 있다. 개발 중인 비디오 코딩 표준은 비공식적으로 Versatile Video Coding 또는 VVC로 알려져 있다. 개시된 주제는 VVC의 맥락에서 사용될 수 있다.
도 3은 일 실시예에 따른 디코더(210)의 단순화된 블록도의 개략도이다.
수신기(310)는 디코더(210)에 의해 디코딩될 하나 이상의 코덱 비디오 시퀀스를 수신할 수 있고; 동일한 또는 다른 실시예에서, 각각의 코딩된 비디오 시퀀스의 디코딩은 다른 코딩된 비디오 시퀀스들과 독립적인, 한번에 하나의 코딩된 비디오 시퀀스를 수신할 수 있다. 코딩된 비디오 시퀀스는 인코딩된 비디오 데이터를 저장하는 저장 장치에 대한 하드웨어/소프트웨어 링크일 수 있는 채널(312)로부터 수신될 수 있다. 수신기(310)는 다른 데이터와 함께 인코딩된 비디오 데이터, 예를 들어 코딩된 오디오 데이터 및/또는 보조 데이터 스트림을 수신할 수 있으며, 이는 엔티티(도시되지 않음)를 사용하여 각각에 포워딩될 수 있다. 수신기(310)는 코딩된 비디오 시퀀스를 다른 데이터로부터 분리할 수 있다. 네트워크 지터를 방지하기 위해 버퍼 메모리(315)가 수신기(310)와 엔트로피 디코더/파서(320)(이하 "파서") 사이에 결합될 수 있다. 수신기(310)가 충분한 대역폭 및 제어 가능성의 저장/전달 장치 또는 등시성 네트워크로부터 데이터를 수신하는 경우 버퍼(315)가 필요하지 않거나 작을 수 있다. 인터넷과 같은 최선형 패킷 네트워크에서 사용하기 위해 버퍼(315)가 필요할 수 있고, 비교적 클 수 있고 유리하게는 적응형 크기일 수 있다.
비디오 디코더(210)는 엔트로피 코딩된 비디오 시퀀스로부터 심볼(321)을 재구성하기 위한 파서(320)를 포함할 수 있다. 이러한 심볼의 카테고리에는 디코더(210)의 동작을 관리하는 데 사용되는 정보와 디코더의 필수 부분은 아니지만 디코더에 결합될 수 있는 디스플레이(212)와 같은 렌더링 장치를 제어하기 위한 잠재적 정보가 포함된다. 렌더링 장치(들)에 대한 제어 정보는 SEI(Supplementary Enhancement Information) 메시지 또는 VUI(Video Usability Information) 파라미터 세트 조각(도시되지 않음)의 형태일 수 있다. 파서(320)는 수신된 코딩된 비디오 시퀀스를 파싱/엔트로피 디코딩할 수 있다. 코딩된 비디오 시퀀스의 코딩은 비디오 코딩 기술 또는 표준에 따를 수 있고 가변 길이 코딩, 허프만 코딩, 문맥 감도가 있거나 없는 산술 코딩 등을 포함하는 당업계의 숙련자에게 잘 알려진 원리를 따를 수 있다. 파서(320)는 그룹에 대응하는 적어도 하나의 파라미터에 기초하여, 비디오 디코더에서 픽셀의 서브그룹 중 임의의 하나 또는 임의의 조합에 대한 서브그룹 파라미터의 세트를 코딩된 비디오 시퀀스로부터 추출할 수도 있다. 서브그룹은 GOP(Groups of Picture), 픽처, 타일, 슬라이스, 매크로블록, 코딩 단위(Coding Unit, CU), 블록, 변환 단위(Transform Unit, TU), 예측 단위(Prediction Unit, PU) 등을 포함할 수 있다. 엔트로피 디코더/파서는 또한 변환 계수, 양자화기 파라미터 값, 모션 벡터 등과 같은 코딩된 비디오 시퀀스 정보로부터 추출할 수도 있다.
파서(320)는 버퍼(315)로부터 수신된 비디오 시퀀스에 대해 엔트로피 디코딩/파싱 동작을 수행하여 심볼(321)을 생성할 수 있다.
심볼(321)의 재구성은 코딩된 비디오 픽처의 유형 또는 그 일부(예를 들어, 인터 및 인트라 픽처, 인터 및 인트라 블록), 및 기타 요인에 따라 다수의 상이한 단위를 포함할 수 있다. 어떤 유닛이 그리고 어떻게 관련되는지, 파서(320)에 의해 코딩된 비디오 시퀀스로부터 파싱된 서브그룹 제어 정보에 의해 제어될 수 있다. 파서(320)와 아래의 다중 유닛 사이의 이러한 서브그룹 제어 정보의 흐름은 명확성을 위해 도시되지 않는다.
이미 언급된 기능 블록을 넘어, 디코더(210)는 개념적으로 후술하는 바와 같이 다수의 기능 유닛으로 세분될 수 있다. 상업적 제약 조건에서 작동하는 실제 구현에서 이러한 장치 중 많은 부분이 서로 밀접하게 상호 작용하고 적어도 부분적으로 서로 통합될 수 있다. 그렇지만, 개시된 주제를 설명하기 위해 아래의 기능 단위로의 개념적 세분화가 적절하다.
제1 유닛은 스케일러/역변환 유닛(351)이다. 스케일러/역변환 유닛(351)은 사용할 변환을 포함하는 제어 정보, 블록 크기, 양자화 인자, 양자화 스케일링 행렬 등뿐만 아니라 양자화된 변환 계수를 파서(320)로부터 심볼(들)(321)로서 수신한다. 집계기(aggregator)(355)에 입력할 수 있는 샘플 값을 포함하는 블록을 출력할 수 있다.
일부 경우에, 스케일러/역변환 유닛(351)의 출력 샘플은 인트라 코딩된 블록에 속할 수 있고; 즉, 이전에 재구성된 픽처로부터 예측 정보를 사용하지 않지만 현재 픽처의 이전에 재구성된 부분으로부터 예측 정보를 사용할 수 있는 블록이다. 이러일 예측 정보는 인트라 픽처 예측 유닛(352)에 의해 제공될 수 있다. 일부 경우에, 인트라 픽처 예측 유닛(352)은 현재(부분적으로 재구성된) 픽처(356)로부터 페치된 주변의 이미 재구성된 정보를 사용하여 재구성 중인 블록과 동일한 크기 및 형태의 블록을 생성한다. 집계기(355)는 일부 경우에 샘플 단위로 인트라 픽처 예측 유닛(352)이 생성일 예측 정보를 스케일러/역변환 유닛(351)에 의해 제공되는 출력 샘플 정보에 추가한다.
다른 경우에, 스케일러/역변환 유닛(351)의 출력 샘플은 인터 코딩되고 잠재적으로 모션 보상된 블록에 속할 수 있다. 그러한 경우에, 모션 보상 예측 유닛(353)은 예측에 사용되는 샘플들을 페치하기 위해 참조 픽처 메모리(357)에 액세스할 수 있다. 블록에 속하는 심볼(321)에 따라 페치된 샘플을 모션 보상한 후, 이러한 샘플은 집계기(355)에 의해 스케일러/역변환 단위의 출력에 추가되어(이 경우 잔차 샘플 또는 잔차 신호) 출력 샘플 정보를 생성할 수 있다. 모션 보상 유닛이 예측 샘플을 페치하는 참조 픽처 메모리 형태 내의 주소는 모션 벡터에 의해 제어될 수 있으며, 예를 들어 X, Y 및 참조 픽처 성분을 가질 수 있는 심볼(321)의 형태로 모션 보상 유닛에 이용 가능하다. 모션 보상은 또한 서브-샘플 정확한 모션 벡터가 사용 중일 때 참조 픽처 메모리로부터 페치된 샘플 값의 보간, 모션 벡터 예측 메커니즘 등을 포함할 수 있다.
집계기(355)의 출력 샘플은 루프 필터 유닛(358)에서 다양한 루프 필터링 기술의 대상이 될 수 있다. 비디오 압축 기술은 코딩된 비디오 비트스트림에 포함된 파라미터에 의해 제어되고 파서(320)로부터의 심볼(321)로서 루프 필터 유닛(358)에 이용 가능하게 되는 인-루프 필터 기술을 포함할 수 있지만, 이전에 재구성되고 루프 필터링된 샘플 값에 응답할 뿐만 아니라 코딩된 픽처 또는 코딩된 비디오 시퀀스의 (디코딩 순서로) 이전 부분을 디코딩하는 동안 획득된 메타 정보에 응답할 수 있는 인-루프 필터 기술을 포함할 수 있다.
루프 필터 유닛(358)의 출력은 렌더 장치(212)에 출력될 뿐만 아니라 미래의 인터-픽처 예측에 사용하기 위해 참조 픽처 메모리(357)에 저장될 수 있는 샘플 스트림일 수 있다.
일단 완전히 재구성된 코딩된 픽처는 미래 예측을 위한 참조 픽처로 사용될 수 있다. 코딩된 픽처가 완전히 재구성되고 코딩된 픽처가 (예를 들어, 파서(320)에 의해) 참조 픽처로 식별되면, 현재 참조 픽처(356)는 참조 픽처 버퍼(357)의 일추가 될 수 있으며, 새로운 현재 픽처 메모리는 다음 코딩된 픽처의 재구성을 시작하기 전에 재할당될 수 있다.
비디오 디코더(320)는 표준에 문서화될 수 있는 미리 판정된 비디오 압축 기술에 따라 디코딩 동작을 수행할 수 있다. 코딩된 비디오 시퀀스는 비디오 압축 기술 문서 또는 표준 및 그 안의 프로필 문서에 지정된 바와 같이, 비디오 압축 기술 또는 표준의 신택스를 준수한다는 의미에서, 비디오 압축 기술 또는 사용 중인 표준에 의해 지정된 신택스를 준수할 수 있다. 또한, 규정 준수를 위해 필요한 것은 코딩된 비디오 시퀀스의 복잡성이 비디오 압축 기술 또는 표준의 수준에 의해 정의된 범위 내에 있어야 한다는 것이다. 어떤 경우에는 레벨이 최대 픽처 크기, 최대 프레임 속도, 최대 재구성 샘플 속도(예를 들어, 초당 메가샘플로 측정됨), 최대 참조 픽처 크기 등을 제한한다. 레벨에 의해 설정된 제한은 경우에 따라 코딩된 비디오 시퀀스에서 시그널링되는 가설 참조 디코더(Hypothetical Reference Decoder, HRD)) 사양 및 HRD 버퍼 관리를 위한 메타데이터를 통해 추가로 제한될 수 있다.
일 실시예에서, 수신기(310)는 인코딩된 비디오와 함께 추가(중복) 데이터를 수신할 수 있다. 추가 데이터는 코딩된 비디오 시퀀스(들)의 일부로 포함될 수 있다. 추가 데이터는 비디오 디코더(210)에 의해 데이터를 적절하게 디코딩하고/하거나 원래의 비디오 데이터를 더 정확하게 재구성하는 데 사용될 수 있다. 추가 데이터는 예를 들어 시간, 공간 또는 SNR 향상 계층, 중복 슬라이스, 중복 화상, 순방향 오류 정정 코드 등의 형태일 수 있다.
도 4는 일 실시예에 따른 인코더(203)의 단순화된 블록도의 개략도이다.
인코더(203)는 인코더(203)에 의해 코딩될 비디오 이미지(들)를 캡처할 수 있는 비디오 소스(201)(인코더의 일추가 아님)로부터 비디오 샘플을 수신할 수 있다.
비디오 소스(201)는 임의의 적절한 비트 깊이(예를 들어, 8비트, 10비트, 12비트, ...), 모든 색상 공간(예를 들어, BT.601 Y CrCB, RGB, ...) 및 임의의 적절한 샘플링 구조(예를 들어, Y CrCb 4:2:0, Y CrCb 4:4:4)일 수 있는 디지털 비디오 샘플 스트림의 형태로 인코더(203)에 의해 코딩될 소스 비디오 시퀀스를 제공할 수 있다. 미디어 서빙 시스템에서 비디오 소스(201)는 미리 준비된 비디오를 저장하는 저장 장치일 수 있다. 화상 회의 시스템에서, 비디오 소스(201)는 비디오 시퀀스로서 로컬 이미지 정보를 캡처하는 카메라일 수 있다. 비디오 데이터는 순서대로 볼 때 움직임을 부여하는 복수의 개별 픽처로 제공될 수 있다. 픽처 자체는 사용 중인 샘플링 구조, 색 공간 등에 따라 각 픽셀이 하나 이상의 샘플을 포함할 수 있는 픽셀의 공간 어레이로 구성될 수 있다. 당업자는 픽셀과 샘플 간의 관계를 쉽게 이해할 수 있다. 아래 설명은 샘플에 중점을 둔다.
일 실시예에 따르면, 인코더(203)는 실시간으로 또는 애플리케이션에 의해 요구되는 임의의 다른 시간 제약 하에서 소스 비디오 시퀀스의 픽처를 코딩된 비디오 시퀀스(443)로 코딩 및 압축할 수 있다. 적절한 코딩 속도를 적용하는 것은 Controller(450)의 기능 중 하나이다. 컨트롤러는 아래에 설명된 대로 다른 기능 장치를 제어하고 이러한 장치에 기능적으로 연결된다. 연결은 명확성을 위해 표시되지 않는다. 컨트롤러에 의해 설정되는 파라미터에는 속도 제어 관련 파라미터(픽처 건너뛰기, 양자화기, 속도 왜곡 최적화 기술의 람다 값 등), 픽처 크기, 픽처 그룹(group of picture, GOP) 레이아웃, 최대 모션 벡터 검색 범위 등이 포함될 수 있다. 당업자는 시스템 설계에 최적화된 비디오 인코더(203)와 관련될 수 있으므로 제어기(450)의 다른 기능을 쉽게 식별할 수 있다.
일부 비디오 인코더는 당업자가 "코딩 루프"로 쉽게 인식하는 방식으로 작동한다. 지나치게 단순화된 설명으로서, 코딩 루프는 인코더(430)(이후 "소스 코더")의 인코딩 부분(코딩될 입력 픽처 및 참조 픽처(들)을 기반으로 심볼 생성을 담당함) 및 심볼을 재구성하여 샘플 데이터를 생성하는 인코더(203)에 내장된 (로컬) 디코더(433)(심볼과 코딩된 비디오 비트스트림 간의 압축은 비디오 압축 기술에서 무손실이기 때문에 공개된 주제에서 고려됨)으로 구성될 수 있고, (개시된 주제에서 고려되는 비디오 압축 기술에서 심볼과 코딩된 비디오 비트스트림 간의 압축은 무손실이기 때문에) (원격) 디코더 역시 샘플 데이터를 생성할 것이다. 심볼 스트림의 디코딩은 디코더 위치(로컬 또는 원격)에 관계없이 정확한 비트 결과를 가져오기 때문에 참조 픽처 버퍼 콘텐츠도 로컬 인코더와 원격 인코더 사이에서 비트가 정확하다. 다시 말해, 인코더의 예측 부분은 디코딩 동안 예측을 사용할 때 디코더가 "보는" 것과 정확히 동일한 샘플 값을 참조 픽처 샘플로 "보는" 것이다. 참조 픽처 동기화(예를 들어 채널 오류로 인해 동기화가 유지될 수 없는 경우 결과적인 드리프트)의 기본 원리는 당업자에게 잘 알려져 있다.
"로컬" 디코더(433)의 동작은 "원격" 디코더(210)의 동작과 동일할 수 있으며, 이는 도 3과 관련하여 위에서 이미 상세하게 설명되었다. 도 3을 간단히 참조하면, 그렇지만, 심볼이 이용 가능하고 엔트로피 코더(445) 및 파서(320)에 의한 코딩된 비디오 시퀀스에 대한 심볼의 엔/디코딩이 무손실일 수 있기 때문에, 채널(312)을 포함하는 디코더(210)의 엔트로피 디코딩 부분은, 수신기(310), 버퍼(315), 및 파서(320)는 로컬 디코더(433)에서 완전히 구현되지 않을 수 있다.
이 시점에서 관찰될 수 있는 관찰은 디코더에 존재하는 파싱/엔트로피 디코딩을 제외한 임의의 디코더 기술이 또한 대응하는 인코더에 실질적으로 동일한 기능 형태로 존재할 필요가 있을 수도 있다는 것이다. 이러한 이유로, 개시된 주제는 디코더 동작에 초점을 맞춘다. 인코더 기술에 대한 설명은 포괄적으로 설명된 디코더 기술의 역이기 때문에 축약될 수 있다. 영역에서만 더 자세한 설명이 필요할 수 있으며 아래에 제공된다.
그 동작의 일부로서, 소스 코더(430)는 "참조 프레임으로 지정된 비디오 시퀀스로부터의 하나 이상의 이전에 코딩된 프레임을 참조하여 예측적으로 입력 프레임을 코딩하는 모션 보상된 예측 코딩"을 수행할 수 있다". 이러한 방식으로, 코딩 엔진(432)은 입력 프레임의 픽셀 블록과 입력 프레임에 대한 예측 참조(들)로서 선택될 수 있는 참조 프레임(들)의 픽셀 블록 간의 차이를 코딩한다.
로컬 비디오 디코더(433)는 소스 코더(430)에 의해 생성된 심볼에 기초하여 참조 프레임으로 지정될 수 있는 프레임의 코딩된 비디오 데이터를 디코딩할 수 있다. 코딩 엔진(432)의 동작은 유리하게는 손실 프로세스일 수 있다. 코딩된 비디오 데이터가 비디오 디코더에서 디코딩될 수 있을 때, 재구성된 비디오 시퀀스는 일부 오류가 있는 소스 비디오 시퀀스의 사본일 수 있다. 로컬 비디오 디코더(433)는 참조 프레임에 대해 비디오 디코더에 의해 수행될 수 있는 디코딩 프로세스를 복제하고 재구성된 참조 프레임이 참조 픽처 캐시(434)에 저장되게 할 수 있다. 이러한 방식으로, 인코더(203)는 원단 비디오 디코더(전송 오류 없음)에 의해 획득될 재구성된 참조 프레임으로서 공통 콘텐츠를 갖는 재구성된 참조 프레임의 사본을 국부적으로 저장할 수 있다.
예측기(435)는 코딩 엔진(432)에 대한 예측 검색을 수행할 수 있다. 즉, 코딩될 새로운 프레임에 대해 예측기(435)는 샘플 데이터(후보 참조 픽셀 블록으로서) 또는 참조 픽처 모션 벡터, 블록 모양 등과 같은 메타데이터에 대해 참조 픽처 메모리(434)를 검색할 수 있고, 이는 새로운 픽처에 대한 적절일 예측 참조 역할을 할 수 있다. 예측기(435)는 적절일 예측 참조를 찾기 위해 샘플 블록 단위로 동작할 수 있다. 몇몇 경우에, 예측기(435)에 의해 획득된 검색 결과에 의해 판정된 바와 같이, 입력 픽처는 참조 픽처 메모리(434)에 저장된 다수의 참조 픽처로부터 도출된 예측 참조를 가질 수 있다.
제어기(450)는 예를 들어 비디오 데이터를 인코딩하는데 사용되는 파라미터 및 서브그룹 파라미터의 설정을 포함하는 비디오 코더(430)의 코딩 동작을 관리할 수 있다.
전술한 모든 기능 유닛의 출력은 엔트로피 코더(445)에서 엔트로피 코딩될 수 있다. 엔트로피 코더는 예를 들어 허프만 코딩, 가변 길이 코딩, 산술 코딩 등과 같이 당업자에게 알려진 기술에 따라 심볼을 무손실 압축함으로써 다양한 기능 유닛에 의해 생성된 심볼을 코딩된 비디오 시퀀스로 변환한다.
송신기(440)는 엔트로피 코더(445)에 의해 생성될 때 코딩된 비디오 시퀀스(들)를 버퍼링하여 이를 통신 채널(460)을 통한 전송을 준비할 수 있고, 이러한 통신 채널은 인코딩된 비디오 데이터를 저장하는 저장 장치에 대한 하드웨어/소프트웨어 링크일 수 있다. 송신기(440)는 비디오 코더(430)로부터의 코딩된 비디오 데이터를 전송될 다른 데이터, 예를 들어 코딩된 오디오 데이터 및/또는 보조 데이터 스트림과 병합할 수 있다.
제어기(450)는 인코더(203)의 동작을 관리할 수 있다. 코딩 동안, 제어기(450)는 각각의 픽처에 적용될 수 있는 코딩 기술에 영향을 미칠 수 있는 코딩된 픽처 유형을 각각의 코딩된 픽처에 할당할 수 있다. 예를 들어, 사진은 종종 다음 프레임 유형 중 하나로 할당될 수 있다.
인트라 픽처(I 픽처)는 예측의 소스로서 시퀀스의 임의의 다른 프레임을 사용하지 않고 코딩 및 디코딩될 수 있는 것일 수 있다. 일부 비디오 코덱은 예를 들어 독립 디코더 리프레시 픽처(Independent Decoder Refresh Pictures)를 포함하여 다양한 유형의 인트라 픽처를 허용한다. 당업자는 I 픽처의 이러한 변형 및 각각의 애플리케이션 및 특징을 알고 있다.
예측 픽처(P 픽처)는 각 블록의 샘플 값을 예측하기 위해 최대 하나의 모션 벡터 및 참조 인덱스를 사용하는 인트라 예측 또는 인터 예측을 사용하여 코딩 및 디코딩될 수 있는 것일 수 있다.
양방향 예측 픽처(B Picture)는 각 블록의 샘플 값을 예측하기 위해 최대 2개의 모션 벡터 및 참조 인덱스를 사용하는 인트라 예측 또는 인터 예측을 사용하여 코딩 및 디코딩될 수 있는 것일 수 있다. 유사하게, 다중 예측 픽처는 단일 블록의 재구성을 위해 2개 이상의 참조 픽처 및 관련 메타데이터를 사용할 수 있다.
소스 픽처는 공간적으로 복수의 샘플 블록(예를 들어, 각각 4x4, 8x8, 4x8 또는 16x16 샘플의 블록)으로 세분화되고 블록 단위로 코딩될 수 있다. 블록은 블록의 각각의 픽처에 적용된 코딩 할당에 의해 판정된 바와 같이 다른 (이미 코딩된) 블록을 참조하여 예측적으로 코딩될 수 있다. 예를 들어, I 픽처의 블록은 비예측적으로 코딩될 수 있거나 동일한 픽처의 이미 코딩된 블록을 참조하여 예측적으로 코딩될 수 있다(공간 예측 또는 인트라 예측). P 픽처의 픽셀 블록은 하나의 이전에 코딩된 참조 픽처를 참조하여 공간적 예측을 통해 또는 시간적 예측을 통해 비예측적으로 코딩될 수 있다. B 픽처의 블록은 하나 또는 2개의 이전에 코딩된 참조 픽처를 참조하여 공간적 예측을 통해 또는 시간적 예측을 통해 비예측적으로 코딩될 수 있다.
전통적인 아핀 모션 모델은 6개의 파라미터로 구성된다. 주어진 아핀 모드를 사용하여 위치 (x, y)에 있는 각 픽셀에 대해 모션 벡터(MV)(vx, vy)는 도 8의 (a) 부분에 도시된 바와 같이, 3개의 모서리 제어점 모션 벡터에 의해 선형으로 보간될 수 있다. 아핀 모드의 단순화된 버전도 고려되며, 도 8의 (b) 부분에 도시된 바와 같이, 아핀 객체의 모션을 설명하기 위해 4개의 파라미터(또는 2개의 제어 포인트 위치에서 등가 모션 벡터)만이 필요하다. 이 경우, (x, y) 위치에서의 모션 벡터는 식 (1)과 같이 좌상단과 우상단의 모션 벡터를 이용하여 표현할 수 있다. 이 공식에 따르면 현재 블록 내 각 픽셀의 모션 벡터는 2개(또는 6-파라미터의 경우 3개)의 모서리 제어점 모션 벡터의 가중 평균으로 계산된다. VVC 표준에서 CU 레벨 플래그는 4-파라미터 아핀 모드와 6-파라미터 아핀 모드 사이를 전환하는 데 사용된다.
Figure pct00001
(1)
아핀 코딩된 블록의 각 샘플은 위의 공식을 사용하여 자체 모션 벡터를 유도할 수 있지만, 실제로 VVC 표준의 아핀 모션 보상은 구현의 복잡성을 줄이기 위해 서브블록 기반으로 동작한다. 즉, 현재 코딩 단위의 각 4x4 휘도 영역은 전체 단위로 간주되어(이 서브블록의 중심 위치를 대표 위치로 사용하여) 해당 서브블록 모션 벡터를 유도한다. 아핀 모션 보상의 정밀도를 향상시키기 위해 1/16-pel 휘도 MV 해상도와 1/32-색차 MV 해상도가 사용된다. 아핀 코딩된 블록의 경우, 제어 포인트 모션 벡터(CPMV)는 인접 아핀 코딩된 블록으로부터 유도하여 예측할 수 있다. 인접 블록과 현재 블록이 동일한 아핀 객체에 있다고 가정하면 현재 블록의 CPMV는 인접 블록의 CPMV에 이들 사이의 거리를 더한 값을 사용하여 도출할 수 있다. 이 예측을 유도된 아핀 예측(derived affine prediction)이라고 한다. 아핀 코딩된 블록의 CPMV는 또한 각 모서리의 공간적 인접 코딩된 블록의 MV에 의해 예측될 수 있다. 이 예측을 구성된 아핀 예측(constructed affine prediction)이라고 한다. 예측 후, 현재 블록의 각 CPMV에 대해 예측 차이는 일반 인터 모션 벡터 방향(Inter Motion Vector Direction, MVD) 코딩과 동일한 방식으로 엔트로피 코딩의 대상이 된다. 아핀의 경우 각 예측 목록에 대해 참조 목록당 최대 3개의 MV 차이가 코딩된다. 시그널링된 MV 차이가 있는 아핀 모드와 두 파생 예측의 후보를 사용하는 아핀 병합 모드가 모두 지원된다.
병합 모드의 MV의 정확도를 증가시키기 위해, 양방향 매칭(BM) 기반 디코더 측 모션 벡터 리파인먼트가 VVC 소프트웨어의 현재 초안에 적용된다. 양방향 예측 동작에서는 참조 픽처 목록 L0 및 참조 픽처 목록 L1에서 초기 MV를 중심으로 정제된 MV를 검색한다. BM 방법은 참조 픽처 목록 L0과 목록 L1의 두 후보 블록 사이의 왜곡을 계산한다. 도 9에 도시된 바와 같이, 초기 MV 주변의 각 MV 후보를 기반으로 블랙 블록 간의 절대 차이의 합(Sum of Absolute Difference, SAD)가 계산된다. SAD가 가장 낮은 MV 후보는 정제된 MV가 되어 양방향 예측 신호를 생성하는 데 사용된다. 디코더 측 모션 벡터 리파인먼트(decoder-side motion vector refinement, DMVR) 프로세스에 의해 유도된 정제된 MV는 인터 예측 샘플을 생성하는 데 사용되며 미래의 픽처 코딩을 위한 시간적 모션 벡터 예측에도 사용된다. 원래 MV는 디블록킹 프로세스에 사용되며 미래 CU 코딩을 위한 공간 모션 벡터 예측에도 사용된다.
비디오 인코더(203)는 ITU-T Rec H.265.와 같은 미리 판정된 비디오 코딩 기술 또는 표준에 따라 코딩 동작을 수행할 수 있다. 그 동작에서, 비디오 인코더(203)는 입력 비디오 시퀀스에서 시간적 및 공간적 중복성을 이용하는 예측 코딩 동작을 포함하는 다양한 압축 동작을 수행할 수 있다. 따라서, 코딩된 비디오 데이터는 사용되는 비디오 코딩 기술 또는 표준에 의해 지정된 구문을 따를 수도 있다.
일 실시예에서, 송신기(440)는 인코딩된 비디오와 함께 추가 데이터를 전송할 수 있다. 비디오 코더(430)는 코딩된 비디오 시퀀스의 일부로서 그러한 데이터를 포함할 수 있다. 추가 데이터에는 시간/공간/SNR 향상 계층, 중복 픽처 및 슬라이스와 같은 다른 형식의 중복 데이터, 보조 강화 정보(Supplementary Enhancement Information, SEI) 메시지, 시각적 이용 정보(Visual Usability Information, VUI) 파라미터 세트 조각 등이 포함될 수 있다.
개시된 주제의 관점을 더 상세히 설명하기 전에, 이 설명의 나머지 부분에서 언급될 몇 가지 용어가 도입될 필요가 있다.
이후 서브-픽처는 의미론적으로 그룹화되고 변경된 해상도로 독립적으로 코딩될 수 있는 샘플, 블록, 매크로블록, 코딩 단위 또는 유사한 엔티티의 직사각형 배열을 일부 경우에 나타낸다. 하나 이상의 하위 픽처는 픽처에 사용할 수 있다. 하나 이상의 코딩된 서브-픽처는 코딩된 픽처를 형성할 수 있다. 하나 이상의 서브 픽처는 하나의 픽처로 조합될 수 있고, 하나 이상의 서브 픽처는 픽처로부터 추출될 수 있다. 환경에서, 하나 이상의 코딩된 서브-픽처는 샘플 레벨로 코딩된 픽처로 트랜스코딩하지 않고 압축된 도메인에서 조립될 수 있고, 동일하거나 다른 경우에, 하나 이상의 코딩된 서브-픽처는 압축된 도메인에서 코딩된 픽처로부터 추출될 수 있다,
VVC 또는 다른 비디오 코딩 프레임워크 또는 표준에서, 디코딩된 픽처는 참조 픽처 목록(RPL)에 포함될 수 있고 참조 픽처로서의 모션 보상 예측 및 인코딩 또는 디코딩 순서에서 다음 픽처를 코딩하기 위한 다른 파라미터 예측에 사용될 수 있거나, 또는 현재 픽처의 상이한 영역 또는 블록을 코딩하기 위한 인트라 예측 또는 인트라 블록 복사에 사용될 수 있다.
일 실시예에서, 하나 이상의 가상 참조가 생성되어 인코더 및 디코더 모두에서, 또는 디코더에서만 RPL에 포함될 수 있다. 가상 참조 픽처는 신호 처리, 공간 또는 시간 필터링, 스케일링, 가중 평균화, 업/다운 샘플링, 풀링, 메모리를 사용한 재귀 처리, 선형 시스템 처리, 비선형 시스템 처리, 신경망 처리, 딥 러닝 기반 처리, AI 처리, 사전 훈련된 네트워크 처리, 기계 학습 기반 처리, 온라인 훈련 네트워크 처리, 컴퓨터 비전 기반 처리 또는 이들의 조합을 포함하는 하나 이상의 프로세스에 의해 생성될 수 있다. 가상 참조(들)를 생성하기 위한 처리를 위해 출력/디스플레이 순서와 인코딩/디코딩 순서 모두에서 현재 픽처보다 선행하는 0개 이상의 순방향 참조 픽처와 현재 픽처 다음에 오는 0개 이상의 역방향 참조 픽처 둘 다 출력/표시 순서로 있지만 인코딩/디코딩 순서로 현재 픽처보다 먼저 입력 데이터로 사용된다. 프로세싱의 출력은 새로운 참조 픽처로 사용될 가상/생성된 픽처이다.
도 5a는 일 실시예에 따른 가상 참조 픽처 생성 및 참조 픽처 목록로의 삽입의 개략도이다.
동일한 실시예에서, 도 5a는 가상 참조 픽처 생성 및 참조 픽처 목록로의 삽입의 예를 도시한다. 도 5a의 계층적 GOP 구조(510)가 주어지면, 현재 픽처가 3과 동일한 픽처 순서 카운트(picture order count, POC)를 가질 때, 일반적으로 0, 2, 4 또는 8과 동일한 POC를 갖는 디코딩된 픽처는 디코딩된 픽처 버퍼에 저장될 수 있고 이들 중 일부는 현재 픽처(POC 3)를 디코딩하기 위한 참조 픽처 목록(520)에 포함된다. 예로서, POC가 2 또는 4인 최근접 디코딩된 픽처는 입력 데이터로서 가상 참조 생성 프로세서(530)에 공급될 수 있다. 가상 참조 픽처는 하나 이상의 프로세스를 통해 생성될 수 있다. 생성된 가상 참조 픽처는 디코딩 픽처 버퍼에 저장되어 현재 픽처 또는 적어도 하나의 미래 픽처의 참조 픽처 목록(520)에 디코딩 순서에 따라 포함될 수 있다. 가상 참조 픽처가 현재 픽처의 참조 픽처 목록(520)에 포함된 경우, 가상 참조 픽처의 생성된 픽셀 데이터는 가상 참조 픽처가 사용되는 참조 인덱스에 의해 가상 참조임을 나타내는 경우 모션 보상 예측에 참조 데이터로 사용될 수 있다.
동일한 또는 다른 실시예에서, 전체 가상 참조 생성 프로세스는 하나 이상의 사전 훈련된 신경망 모델 또는 임의의 사전 정의된 파라미터를 갖는 하나 이상의 시그널링 처리 모듈을 포함할 수 있다. 예를 들어, 전체 가상 참조 생성 프로세스는 도 5a에 도시된 바와 같이 광 흐름 추정 모듈(540), 가상 참조 데이터의 광 흐름 보상 모듈(550) 및 상세 향상 모듈(detail enhancement module)(560)로 구성될 수 있다.
다른 예에서, 전체 가상 참조 생성 프로세스는 특징 흐름 추정, 대략적인 중간 프레임 합성 및 상세 향상 프로세스로 구성될 수 있다.
일 실시예에서, 가상 참조 생성 프로세스는 하나 이상의 신경망(들)로 구성될 수 있다.
도 5b는 일 실시예에 따른 가상 참조 픽처 생성 프로세스의 개략도이다.
도 5b는 3개의 하위 프로세스: 특징 흐름 추정, 거친 중간 프레임 합성 및 자세한 내용 향상 프로세스로 구성된 가상 참조 생성 프로세스의 예를 도시한다. 기본적으로, 하나 이상의 순방향 참조 픽처와 하나 이상의 역방향 참조 픽처가 입력되는 반면, 하나의 출력 화상은 비디오 코딩을 위해 생성된 가상 참조 픽처로 사용된다. 선택적으로, 인코더 구성 또는 인접 컨텍스트(예를 들어, GOP 구조)에 의해 2개 이상의 순방향 참조 픽처가 입력 데이터로 사용되거나 2개 이상의 역방향 참조 픽처가 입력 데이터로 사용된다.
동일한 실시예에서, 도 5b에 도시된 바와 같이, 광 흐름 추정 모듈(540)은 에지 검출기(565), 특징 추출기(570), 및 각 참조 프레임에 대한 에지 맵 및 특징 맵을 갖는 특징 흐름 추정기(575)를 포함한다. 예를 들어, 특징 흐름 추정기(575)에 참조 데이터가 입력되면, 미리 훈련된 에지 검출 신경망 또는 미리 정의된 알고리즘으로 참조 픽처의 에지를 검출한다. 에지 맵은 4번째 채널로 연결되어 역동적인 장면의 구조적 정보를 강화한다. 일단 에지, 경계 또는 특징이 획득되면, 하나 이상의 특징/흐름 맵이 특징 흐름 예측기(580)에 공급되도록 계산될 것이다. 광학 흐름 추정 프로세스의 출력은 둘 이상의 깊이 특징 맵이다.
동일한 실시예에서, 도 5b에 도시된 바와 같이, 거친 중간 프레임 합성 프로세스는 오프셋 보상을 포함하는 워핑 과정과 가중치 특징을 혼합하는 과정으로 구성된다. 광학 흐름 보상 모듈(550)은 특징 흐름 예측기(580) 및 블렌더(585)를 포함한다. 입력으로서 대응하는 에지 맵을 갖는 2개 이상의 참조 픽처로, 특징 흐름 예측기(580)는 변형 가능한 컨볼루션을 위한 오프셋 맵을 생성하여 뒤틀린 특징(warped feature)을 생성한다. 각 픽셀 또는 특징은 획득된 오프셋 맵으로 공간적으로 이동된다. 때때로 하나 이상의 플로우 오프셋이 참조 픽처에서 중간 가상 참조 픽처로 1-N 픽셀(1-to-N pixels)을 연결하기 때문에 생성된 가상 참조 픽처에 구멍 채우기(예를 들어, 인페인팅)가 적용될 수 있다. 다중 주의 예측기(multi-attention predictor)는 래핑된 기능에 대한 가중치 맵을 얻기 위해 기능에도 적용된다. 2개 이상의 중간 가상 참조 픽처가 다중 입력 참조 픽처로부터 생성되는 경우, 블렌더(585)는 이러한 중간 프레임을 가중 평균 또는 조합으로 하나의 가상 참조 픽처로 혼합하거나 합성한다. 대략적인 중간 프레임이 합성되면, 세 개의 프레임 모두가 상세 향상 모듈(560)에 공급되어 시간 공간 정보의 더 많은 융합으로 중간 프레임 품질을 향상시킬 것이다.
동일한 실시예에서, 각각의 중간 참조 픽처에 대한 블렌딩의 가중치는 다중 기술에 의해 계산될 수 있다. 일 예에서, 현재 픽처와 가상 참조 픽처 생성 모듈의 입력인 디코딩된 참조 픽처 사이의 시간적 거리(POC 값으로 구함)에 대해 가중치를 계산하는 경우를 들 수 있다. 또 다른 예는 가중치 값이 각 픽셀, 영역 또는 픽처의 이미지 품질을 기반으로 (로컬) 계산된다는 것이다. 참조 픽처를 생성하기 위해 어느 영역이 좋은 품질 또는 나쁜 품질을 갖는지를 판정하기 위해 임의의 측정 메트릭이 사용될 수 있다. 다른 예에서, 가중치는 주의를 고려하여 미리 훈련된 하나 이상의 신경망의 추론 과정의 출력으로 획득될 수 있다.
동일한 또는 다른 실시예에서, 하나 또는 다수의 컨볼루션 네트워크 모델이 사용될 수 있다. 예는 각 특징 픽셀에 대한 오프셋 값을 가질 수 있는 변형 가능한 컨볼루션 네트워크 모델이다. 로컬에서 보다 유연한 병진 이동을 허용하는 변형 가능한 컨볼루션 네트워크 모델은 오프셋 흐름을 추정하고 보상할 수 있다. 또 다른 예는 공간 적응형 수평 또는 수직 모션을 효율적으로 나타낼 수 있는 분리 가능한 컨볼루션 네트워크 모델이다. 여러 네트워크 모델의 조합은 네트워크 추론의 성능을 향상시킬 수 있다.
동일한 또는 다른 실시예에서, 비트스트림의 코딩된 모션 벡터는 광 흐름의 사전 추정을 위해 사용될 수 있다. 따라서, 코딩된 모션 벡터는 거친 분해능을 갖는 광 흐름의 초깃값으로 사용될 수 있고, 임의의 신경망 추론 프로세스는 광 흐름의 해상도 및 정확도를 향상시킬 수 있다. 다른 파라미터 또는 코딩된 계수보다 먼저 모션 벡터를 파싱 및 디코딩하는 것을 가능하게 하기 위해, 모션 벡터 예측 지시기(motion vector prediction indicator)를 갖는 모션 벡터 또는 모션 벡터 델타 값은 각각의 코딩된 픽처(예를 들어, 픽처 헤더, 슬라이스 헤더 또는 픽처의 제1 슬라이스)의 초기 위치에서 코딩될 수 있다.
동일한 또는 다른 실시예에서, 임의의 디코더 측 모션 벡터 또는 광학 흐름 추정기(예를 들어, DMVR)가 광학 흐름의 초깃값을 추정하기 위해 사용될 수 있다. 두 개 이상의 디코더 측 모션 벡터 추정기와 신경망 추론 프로세스를 결합하거나 조화시켜 광학 흐름의 광학 값을 찾을 수 있다.
동일한 또는 다른 실시예에서, 광 흐름 추정 및 보상 프로세스를 통해 가상 참조 픽처가 생성될 때, 가상 참조 픽처의 이미지 품질은 포스트-프로세싱, 2개 이상의 입력 참조 픽처 및 그것들의 미리 얻은 에지 및 기능 데이터 활용으로 향상될 수 있다. 일반적으로 광 흐름 추정 및 보상을 통해 생성된 참조 픽처는 2개 이상의 픽처가 평활화(smoothing) 프로세스를 거쳐 블렌딩되기 때문에 흐릿해질 수 있다. 하나 이상의 사전 훈련 또는 사전 정의된 에지 향상, 복원, 흐림 제거, 노이즈 제거, 디블로킹, 압축 노이즈 감소, 위너 필터링, 초고해상도 재구성, 선명하게 하기, 색상 복원 또는 향상, 주관적 품질 향상을 들 수 있다.
동일한 실시예에서, 각각의 (입력) 디코딩된 참조 픽처로부터 획득된 각각의 얕은 에지 또는 특징은 사전 훈련된 네트워크 모듈로 공간적으로 보상되거나 시프트되고 자세한 내용을 향상시키기 위해 생성된 가상 참조 픽처와 다시 혼합될 수 있다.
동일한 또는 다른 실시예에서, 가상 참조 픽처를 생성하기 위한 처리는 프레임-와이즈, 정사각형 또는 정사각형이 아닌 로컬 영역(예를 들어, 타일, 타일 그룹 또는 서브픽처) 또는 작은 블록-와이즈(예를 들어, 코딩 단위 또는 코딩 트리 단위)로 처리될 수 있다. 가상 참조 데이터의 생성을 프레임 단위로 처리할지 영역/블록 단위로 처리할지 여부는 인코더 측에서 인코더 선택, 사용자 입력 데이터, 사전 훈련된 네트워크 또는 임의의 판정 알고리즘에 의해 판정될 수 있다.
동일한 실시예에서, 프로세스가 전체 프레임 또는 하나 이상의 영역/블록에 적용되는지를 나타내는 하나 이상의 신택스 요소, 지시기 또는 플래그는 코딩된 비트스트림의 하이 레벨 신택스 구조(예를 들어, SPS, PPS, APS, SEI 메시지 또는 메타데이터 상자)로 시그널링될 수 있다.
동일한 또는 다른 실시예에서, 기존 가상 참조 픽처는 현재 픽처 디코딩의 완료 후에 부분적으로 업데이트될 수 있다. 일 예에서, 기존 가상 참조 픽처의 영역 또는 영역들은 상기와 유사한 생성 프로세스로 대체될 수 있지만 디코딩된 현재 픽처를 추가 입력 데이터로 취한다. 영역(들)을 현재 디코딩된 픽처의 배치된 부분(들)으로 교체하는 것과 같은 다른 방법에 의해 부분적으로 업데이트될 수 있다.
동일한 실시예에서, 기존 가상 참조 픽처의 부분 업데이트의 옵션 및 파라미터는 현재 디코딩된 픽처와 연관된 픽처 헤더, PPS 또는 슬라이스 헤더와 같은 하이 레벨 신택스 구조로 표시될 수 있다. 파라미터는 영역 위치, 크기, 가상 참조 픽처를 업데이트하기 위한 방법 선택을 포함할 수 있다.
동일한 또는 다른 실시예에서, 프로세스가 전체 프레임 또는 하나 이상의 영역/블록에 적용되는지를 나타내는 하나 이상의 내부 변수는 다른 시그널링된 신택스 요소/파라미터/메타데이터, 인접 시퀀스/프레임/블록의 정보, 사전 정의된 추론 규칙 또는 신경망 처리를 포함한 모든 자동 처리로부터 추론되거나 코딩될 수 있다.
일 실시예에서, 하나 이상의 가상 참조 픽처가 참조 픽처 목록에 포함될 때, 각 CU에 대해 명시적으로 시그널링되거나 이전에 코딩된 컨텍스트 정보(예를 들어, 이웃 CU와 같은 이전에 코딩된 CU, 둘 중 적어도 하나의 원래 후보가 가상 참조 픽처를 사용하여 코딩된 생성된 쌍별 평균 모션 정보, 히스토리 기반 모션 버퍼에 저장된 엔트리 등)로부터 암시적으로 유도되는 참조 픽처 지시기가 가상 참조 픽처를 지시하면, 상술한 처리를 통해 생성된 참조 픽셀 데이터는 인터 모드에 대한 예측 데이터로 사용될 수 있다.
VVC에서와 같은 종래의 비디오 코딩 시스템에서, 모션 벡터, 참조 픽처 인덱스, 참조 픽처 목록를 포함하는 모션 파라미터는 명시적(AMVP) 또는 암시적(병합 또는 스킵) 방식으로 시그널링될 수 있다. AMVP 모드가 사용되는 경우 참조 픽처 인덱스는 인터 예측을 위한 0개 이상의 가상 참조 픽처를 나타낼 수 있다. 병합 모드가 사용되는 경우 참조 픽처 인덱스 정보는 이전에 코딩된 일부 CU(예를 들어, 인접 CU, 생성된 쌍별 평균 모션 정보, 히스토리 기반 모션 버퍼에 저장된 항목 등)에서 코딩된 후보 중 하나에서 복사된다. VVC의 일 예에서 병합 후보 목록은 다음 5가지 유형: 공간 인접 CU의 공간 MVP, 배치된 CU의 시간 MVP, FIFO 테이블의 히스토리 기반 MVP, 쌍별 평균 MVP, 0 MV의 후보를 순서대로 포함하여 구성된다. 일 실시예에서 추가 병합 모드 후보가 목록에 삽입될 수 있다. 추가 병합 모드는 현재 픽처가 참조 픽처 목록에 적어도 하나의 가상 참조 픽처가 있는 경우에만 활성화된다. 병합 모드는 가상 참조 픽처의 콜로케이션 블록(collocated block)(모션이 0인)의 픽셀 데이터를 인터 예측 데이터로 사용할 수 있다.
동일한 실시예에서, 가상 참조 픽처를 갖는 새로운 후보를 포함하는 병합 후보의 순서는 하이 레벨 신택스 구조의 임의의 명시적 시그널링 또는 이전에 코딩된 컨텍스트 정보(예를 들어, 후보자 병합)에 의해 다시 정해질 수 있다.
다른 실시예에서, 가상 참조 픽처는 아핀 모션 보상과 같은 서브블록 기반 모션 보상을 수행하는 데 사용될 수 있다. 아핀 파라미터에 대한 제어 포인트 MV(CPMV)는 예측을 사용하지 않고 직접 시그널링으로부터 유도될 수 있다. CPMV는 이전에 코딩된 일부 아핀 블록 모델을 부분적으로 또는 전체적으로 참조하여 파생될 수도 있다. 예를 들어, 가상 참조 픽처를 사용하는 현재 블록의 상단 좌측 CPMV는 시그널링되거나 0인 것으로 가정될 수 있고, 블록의 다른 CPMV(들)는 이전에 코딩된 아핀 블록으로부터 아핀 모델을 사용하여 유도될 수 있다.
다른 실시예에서, 가상 참조 픽처는 DMVR 또는 MV 유도를 위한 템플릿 매칭과 같은 디코딩된 사이드 모션 벡터 유도 기술을 수행하는 데 사용될 수도 있다. 일 예에서, 가상 참조 픽처는 DMVR 모드에서 2개의 참조 픽처 중 하나로 사용될 수 있다. 다른 예에서, 가상 참조 픽처로부터의 예측 블록은 두 참조 픽처로부터의 (양방향 모션 벡터 쌍에 의해 지시된) 두 예측 블록을 비교함으로써 생성되는, DMVR 모드에서 원래 제시된 SAD 메커니즘을 사용하는 대신, DMVR 모드에서 디코더 검색을 수행하는 대상 블록으로서 사용될 수 있다. 이 예에서, 가상 참조 픽처로부터의 예측 블록은 DMVR 검색에서 수정된 MV로부터의 예측기의 새로운 쌍과 비교하기 위해 사용될 수 있다. 가상 참조 픽처의 예측기와 비교할 때 SAD가 최소화된 쌍은 정제로 간주될 수 있다.
동일한 또는 다른 실시예에서, 가상 참조 픽처로부터 생성된 샘플 예측기는 인터 또는 인트라 예측 방법에 의해 샘플 예측기(들)와 함께 사용될 수 있다. 일 예에서, 최종 예측 블록의 모든 샘플에 대해 인터 또는 인터 예측기와 함께 가중 평균화될 수 있다. 다른 예에서, 블록의 샘플 위치는 가상 참조 예측기와 인터 또는 인트라 예측기(들) 사이의 가중치를 판정하는 데 사용될 수 있다.
동일한 또는 다른 실시예에서, 가상 참조 픽처가 영역별로 생성된 것으로 인코더 구성 또는 묵시적 판정에 의해 판정되는 경우, 가상 참조 픽처는 2개 이상의 가상 서브-픽처로 분할될 수 있다. 각각의 가상 서브픽처는 전술한 과정을 통해 독립적으로 생성된다. 이러한 가상 서브픽처의 파티셔닝 레이아웃은 하나 이상의 하이 레벨 신택스 구조(예를 들어, VPS, SPS, PPS, SEI 메시지)로 시그널링될 수 있다. 일반적으로 가상 서브픽처의 너비와 높이는 타일(존재하는 경우) 또는 CTU 크기의 정수배일 수 있다. 도 6b는 아래의 가상 서브픽처 분할을 통한 전체 프로세스를 요약한다.
동일한 실시예에서, 가상 참조 픽처가 다중 가상 참조 픽처로 분할되는 이유 중 하나는 메모리 또는 컴퓨팅 파워의 한계로 인해 가상 참조를 생성하기 위한 신경망 추론 프로세스의 영역별 독립 프로세스의 필요성일 수 있다. 또 다른 이유는 4K 또는 8K와 같은 대규모 시퀀스를 여러 CPU 또는 GPU로 병렬 처리하기 때문이다. 또 다른 이유는 뷰포트 종속 VR360 스트리밍 또는 클라우드 게임 콘텐츠 스트리밍을 위한 지역별 독립 다운로드 또는 스트리밍이다.
동일한 실시예에서, 코딩된 픽처가 다중 서브픽처로 분할될 때, 상위 레벨 신택스 구조의 플래그는 가상 서브픽처 레이아웃이 서브픽처 레이아웃과 동일한지를 나타낼 수 있다. 정렬된 경우, 가상 서브픽처 레이아웃은 명시적으로 시그널링되지 않지만 서브픽처 파티셔닝 레이아웃과 동일한 것으로 추론된다.
동일한 또는 다른 실시예에서, 가상 참조 픽처가 복수의 가상 서브 픽처로 분할되고 각각의 가상 서브 픽처가 상술한 과정을 통해 독립적으로 생성되는 경우, 일반적으로 생성된 전체 가상 참조는 가상 서브 픽처의 경계에 블로킹 아티팩트가 있을 수 있다. 블로킹 아티팩트는 코딩 성능을 저하시킬 수 있다. 가상 참조 픽처의 아티팩트를 벗어나기 위해 모든 평활화 필터/처리가 경계에 적용될 수 있다. 필터 계수는 사전 훈련되거나 사전 정의된 코딩된 비트스트림에서 시그널링될 수 있다. 시그널링될 때, 하나 이상의 계수 세트는 하이 레벨 신택스 구조로 시그널링될 수 있고 각각의 가상 참조 픽처 또는 서브픽처는 인덱스를 시그널링함으로써 그들 중 하나를 선택할 수 있다.
동일한 실시예에서, VVC와 같은 비디오 코딩 시스템에 대한 기존의 디블록킹 프로세스는 블록킹 아티팩트를 효율적으로 완화하기 위해 적용될 수 있다. 이 경우, 경계 강도(Boundary Strength, BS) 값은 디폴트로 미리 정의된 값(예를 들어, 1)과 동일하게 설정될 수 있다.
동일한 실시예에서, 디블록킹 프로세스의 BS 값은 다음 값 중 하나 이상으로부터 유도된다: 1) 인접한 가상 참조 서브픽처 간의 광학 흐름의 차이(광학 흐름의 큰 차이는 강한 경계 아티팩트를 나타낼 수 있다), 2) 현재 픽처 또는 다른 참조 픽처에서 콜로케이션 블록(또는 CU)의 BS 값 또는 기타 코딩 파라미터, 3) 가상 참조 픽처 생성 프로세스의 에지 또는 특징 정보 또는 4) 다른 옵션을 사용할 수 없을 때의 기본값.
동일한 또는 다른 실시예에서, 서브픽처가 독립적으로 코딩되고 경계 패딩 처리된 픽처로서 처리될 때, 가상 참조 픽처는 현재 픽처의 서브픽처와 동일한 분할 레이아웃을 갖는 복수의 가상 참조 서브픽처로 분할될 수 있다. 이 경우 가상 서브픽처 경계를 가로지르는 필터링 프로세스는 허용되지 않는다.
동일한 또는 다른 실시예에서, 가상 참조 서브픽처가 디코더 측에서 인터 예측을 위해 사용되지 않는 경우, 가상 참조 서브픽처는 전술한 프로세스로부터 유도되지 않는다. 대신, 존재하는 경우 하나 이상의 기본값으로 채울 수 있다.
동일한 실시예 또는 다른 실시예에서, 생성 프로세스가 프레임 단위로 처리될 때, 전체 참조 픽처가 생성되고 RPL에 추가될 수 있다. 생성된 프레임은 다른 디코딩된 참조 프레임과 유사하게 디코딩된 픽처 버퍼(DPB)에서 참조 픽처로 저장 및 처리될 수 있다.
동일한 또는 다른 실시예에서, 가상 참조 픽처는 기본적으로 출력 및 표시되지 않을 수 있다. 그러나 내부 변수(들), 시그널링된 신택스 요소(들), 알고리즘, 추론 규칙 또는 미리 정의된 규칙의 값은 생성된 가상 참조 화면을 출력하고 표시할 수 있다. 이는 디스플레이 측에서 프레임 속도를 증가시키거나 시스템 수준에서 오류 은닉 또는 안정적인 디코더 관리를 위해 손실된 사진을 대체할 수 있다.
동일한 또는 다른 실시예에서, 가상 참조 픽처에는 상이한 목적을 위해 POC 번호가 할당될 수 있다. 디스플레이 측의 프레임 속도를 높이기 위해 POC 번호는 두 개의 기존 출력 픽처 사이에 있을 수 있다. 예를 들어, 두 개의 기존 픽처는 POC 값 N 및 N+2를 가질 수 있고, 가상 참조 픽처는 두 개의 픽처 사이에 표시될 수 있도록 N+1과 동일한 POC 번호가 할당될 수 있다. 다른 예에서, 두 개의 기존 픽처는 POC 값 N 및 N+1을 가질 수 있고 가상 참조 픽처는 N+0.5(이 경우 정수가 아닌 값)와 동일한 POC 번호로 할당될 수 있으므로 두 픽처 사이에 표시된다. 오류 은닉 또는 안정적인 디코더 관리를 위해 손실된 픽처를 교체할 목적으로 가상 참조 픽처에는 손실된 픽처와 동일한 POC 번호가 할당될 수 있다.
동일한 또는 다른 실시예에서, 가상 참조 픽처가 출력될 때, 가상 참조 픽처에 크롭 및 범핑 아웃 프로세스가 적용될 수 있으며, 이는 다른 디코딩된 참조 픽처(들)과 유사하다. 가상 참조 픽처에 대한 크로핑 윈도우의 값(들)은 하나 이상의 하이 레벨 신택스 요소(예를 들어, 파라미터 세트 또는 SEI 메시지)에서 시그널링될 수 있다. 자르기 윈도우 정보(cropping window information)가 코딩된 비트스트림에서 명시적으로 시그널링되지 않는 경우, 미리 정의된 기본값이 자르기에 사용되거나 자르기가 적용되지 않을 수 있다.
동일한 또는 다른 실시예에서, 가상 참조 픽처(들)가 현재 픽처의 인코딩/디코딩에 사용될 수 있는 경우, 가상 참조 픽처(들)는 현재 픽처의 활성 참조 픽처 목록에 포함될 수 있다.
동일한 또는 다른 실시예에서, 가상 참조 픽처(들)가 현재 픽처를 인코딩/디코딩에 사용되지 않고, 디코딩 순서에 따라 하나 이상의 다음 픽처를 인코딩/디코딩하는 데 사용되는 경우, 가상 참조 픽처(들)는 현재 픽처의 비활성 참조 픽처 목록에 포함될 수 있다.
동일한 또는 다른 실시예에서, 활성 또는 비활성 참조 픽처 목록(들)은 하나 이상의 하이 레벨 신택스 구조(예를 들어, 파라미터 세트, 픽처 헤더, 슬라이스 헤더 또는 SEI 메시지)로 명시적으로 시그널링될 수 있거나, 사전 정의된 알고리즘/규칙을 사용하여 다른 신택스 요소/파라미터/내부 변수에서 암시적으로 파생될 수 있다.
도 6a는 일 실시예에 따른 가상 참조 픽처로 코딩된 비디오 스트림을 디코딩하는 방법의 흐름도이다.
동일한 또는 다른 실시예에서, 도 6a는 현재 또는 미래 픽처를 디코딩하기 위한 가상 참조 픽처(들)를 생성 및 관리하기 위한 블록도를 도시한다. 일부 신택스 요소가 파싱되거나 일부 관련 파라미터가 해석되면(동작 605), 디코더는 현재 픽처가 인터 예측 또는 모션 보상을 위해 하나 이상의 가상 참조 픽처를 사용하는지를 확인할 수 있다(동작 610). 사용하면 가상 참조 픽처를 생성하고(동작 615), 활성 참조 픽처 목록에 삽입한다(동작 620). 현재 픽처에 대해 사용되지 않는 경우, 디코더는 현재 픽처에 대해 생성된 가상 참조 픽처가 디코딩 순서에 따라 다음 픽처에 사용될 수 있는지를 다시 확인할 수 있다(625). 임의의 미래 픽처에 사용되는 경우, 가상 참조 픽처가 생성되고(동작 630) 비활성 참조 픽처 목록에 포함된다(동작 635). 그렇지 않으면 현재 픽처에 대한 가상 참조 픽처가 생성되지 않는다(동작 640).
동일한 실시예에서, 기존 가상 참조 픽처(들)가 현재 픽처, 임의의 후속 픽처 또는 기타 데이터를 인코딩/디코딩하기 위해 더 이상 사용되지 않는 경우, 가상 참조 픽처(들)는 참조 픽처 목록(들)에 포함되지 않을 수 있고 디코딩된 픽처 버퍼에서 제거될 것이다.
동일한 실시예에서, 디코딩된 픽처 버퍼로부터 가상 참조 픽처(들)의 픽처 제거 시간은 높은 레벨의 신택스 구조(파라미터 세트, SEI 메시지)에서 명시적으로 시그널링되거나 다른 신택스 요소/파라미터/내부 변수로부터 암시적으로 유도될 수 있다.
동일한 또는 다른 실시예에서, 하나 이상의 디코딩된 참조 픽처 및 하나 이상의 가상 참조 픽처를 포함하는 참조 픽처 목록는 고품질 및 높은 적중률을 갖는 참조 픽처가 목록의 초기 위치에 위치할 수 있도록 수정될 수 있다. RPL에서 참조 픽처의 최적 순서는 사전 인코딩, 미리 판정된 알고리즘/규칙, 사전 훈련된 신경망 추론 처리 또는 GoP 구조와 같은 인접 컨텍스트로부터의 임의의 추론 규칙에 의해 판정될 수 있다.
동일한 실시예에서, 고품질은 픽처/슬라이스 헤더에 표시되는 QP 값과 같은 픽처에 사용된 QP 정보에 의해 평균으로 측정될 수 있다. 높은 적중률은 하나의 참조 픽처가 이전 픽처를 디코딩하는데 사용되었을 때의 블록 레벨 사용 빈도로 측정될 수 있다. 블록 레벨 사용은 이 참조 픽처를 참조하는 블록의 수, 이 참조 픽처를 참조하는 샘플의 수 등과 같은 통계를 포함할 수 있다.
동일한 또는 다른 실시예에서, 가상 참조 픽처가 생성될 때, 이 참조 픽처의 POC 값은 현재 픽처와 동일하게 설정될 수 있다.
동일한 또는 다른 실시예에서, 가상 참조 픽처가 생성될 때, 이 참조 픽처의 레이어 ID 값은 현재 픽처와 동일하게 설정될 수 있다.
동일한 또는 다른 실시예에서, 가상 참조 픽처는 POC 기반 MV 스케일링이 가상 참조 픽처에 적용되지 않도록 RPL에서 "장기 참조(long-term reference)"로 표시될 수 있다.
동일한 또는 다른 실시예에서, 가상 참조 픽처가 시간적 모션 벡터 예측기(들)를 유도하기 위한 참조로서 지칭될 때, 시간적 MV 예측을 위한 가상 참조 픽처와 연관된 MV 값(들)은 0과 동일하게 설정될 수 있다.
동일한 또는 다른 실시예에서, 플래그 또는 다른 신택스 요소가 SPS에 존재할 수 있다. 플래그 또는 신택스 요소가 1일 때, 하나 이상의 가상 참조 픽처가 생성되어 SPS를 참조하는 코딩된 비디오 시퀀스의 픽처를 인코딩/디코딩하는 데 사용될 수 있다. 플래그 또는 신택스 요소가 0과 같을 때, 가상 참조 픽처는 생성되지 않고 SPS를 참조하는 코딩된 비디오 시퀀스의 픽처를 인코딩/디코딩하는 데 사용된다.
동일한 또는 다른 실시예에서, 플래그 또는 다른 신택스 요소가 PPS에 존재할 수 있다. 플래그 또는 신택스 요소가 1인 경우, 하나 이상의 가상 참조 픽처가 생성되어 PPS를 참조하는 픽처를 인코딩/디코딩하기 위해 사용될 수 있다. 플래그 또는 신택스 요소가 0일 때, 가상 참조 픽처가 생성되지 않고 PPS를 참조하는 픽처를 인코딩/디코딩하기 위해 사용된다.
동일한 또는 다른 실시예에서, 플래그 또는 다른 신택스 요소가 APS에 존재할 수 있다. 플래그 또는 신택스 요소가 1일 때, 하나 이상의 가상 참조 픽처가 생성되어 APS를 참조하는 슬라이스를 인코딩/디코딩하기 위해 사용될 수 있다. 플래그 또는 신택스 요소가 0일 때, 가상 참조 픽처가 생성되지 않고 APS를 참조하는 슬라이스를 인코딩/디코딩하기 위해 사용될 수 있다.
동일한 또는 다른 실시예에서, 플래그 또는 다른 신택스 요소가 픽처 헤더에 존재할 수 있다. 플래그 또는 신택스 요소가 1일 때, 하나 이상의 가상 참조 픽처가 생성되어 픽처 헤더와 연관된 픽처를 인코딩/디코딩하기 위해 사용될 수 있다. 플래그 또는 신택스 요소가 0과 같을 때, 가상 참조 픽처가 생성되지 않고 픽처 헤더와 연관된 픽처를 인코딩/디코딩하기 위해 사용될 수 있다.
동일한 또는 다른 실시예에서, 플래그 또는 다른 신택스 요소가 슬라이스 헤더에 존재할 수 있다. 플래그 또는 신택스 요소가 1과 같을 때, 하나 이상의 가상 참조 픽처가 생성되어 슬라이스 헤더와 연관된 슬라이스를 인코딩/디코딩하기 위해 사용될 수 있다. 플래그 또는 신택스 요소가 0과 같을 때, 가상 참조 픽처가 생성되지 않고 슬라이스 헤더와 연관된 슬라이스를 인코딩/디코딩하기 위해 사용될 수 있다.
동일한 또는 다른 실시예에서, 하이 레벨 신택스 구조의 하나 이상의 신택스 요소는 어느 시간적 서브레이어 픽처가 인코딩/디코딩을 위해 가상 참조 픽처를 사용할 수 있는지를 표시한다. 예를 들어, i번째 시간 서브레이어 또는 i와 동일한 시간 ID를 갖는 픽처가 인코딩/디코딩을 위해 가상 참조 픽처를 사용하는지를 나타내는 하나 이상의 신택스 요소 virtual_ref_use_temporal_id_flag[i]는 SPS, PPS, APS 또는 PH로 시그널링될 수 있다.
동일한 또는 다른 실시예에서, 화상 구조의 그룹, 다른 신택스 요소, 파라미터, 또는 내부 변수를 참조할 수 있는 임의의 미리 정의된 규칙 또는 알고리즘은 어느 시간 서브레이어(temporal sublayer)가 인코딩/디코딩을 위한 가상 참조 픽처를 사용할 수 있는지 사용할 수 없는지를 판정할 수 있다. 예를 들어, 가장 높은 시간 서브레이어를 갖는 픽처만이 인터 예측을 위해 하나 이상의 가상 참조 픽처를 사용할 수 있는 반면, 다른 픽처는 가상 참조 픽처(들)를 사용하지 않는다.
동일한 또는 다른 실시예에서, 가상 참조 픽처를 생성하기 위한 하나 이상의 방법, 모듈, 신경망 모델 또는 기술이 미리 정의되거나 미리 훈련될 수 있다. 영역, 슬라이스, 타일, 서브픽처, 픽처, 시간적 서브레이어 또는 픽처 그룹에 대해 인코더는 사전 인코딩, 레이트 왜곡 기반 판정 또는 임의의 알고리즘으로 가상 참조 픽처를 생성하기 위한 방법/모델을 선택할 수 있다. 하이 레벨 신택스 구조에서 시그널링된 하나 이상의 신택스 요소는 각 영역, 슬라이스, 타일, 서브픽처, 픽처, 시간적 서브레이어 또는 픽처 그룹에 대해 어떤 방법/모델이 사용되는지를 나타낼 수 있다.
동일한 또는 다른 실시예에서, 가상 참조 픽처 생성 방법/모델의 전부 또는 일부 및 이들의 파라미터, 계수, 가중치 또는 오프셋은 인코더와 디코더 사이에서 미리 정의되고 승인되거나, 임의의 문서에 명시적으로 설명되거나, 외부 표준 참조의 임의의 목록에 등록된다.
동일한 또는 다른 실시예에서, 가상 참조 픽처 생성 방법/모델의 전부 또는 일부 및 이들의 파라미터, 계수, 가중치 또는 오프셋은 코딩된 비디오 스트림에 명시적으로 코딩되거나, 파일 형식의 임의의 박스에 시그널링되거나, 코딩된 스트림에 첨부된 임의의 보충 문서에 기록된다.
도 6b는 일 실시예에 따른 가상 참조 서브픽처로 코딩된 비디오 스트림을 디코딩하는 방법의 흐름도이다.
도 6b에 도시된 바와 같이, 디코더(210)는 동작 645에서 신택스 요소를 파싱하거나 코딩된 비트스트림의 파라미터를 해석한다.
동작 650에서, 디코더(210)는 현재 픽처가 가상 참조 픽처를 사용하는지를 판정한다. 현재 픽처가 가상 참조 픽처를 사용하지 않는 것으로 판정되면 동작 655로 진행하고, 그렇지 않은 경우 동작 660으로 진행한다.
동작 655에서, 디코더(210)는 현재 픽처를 DPB에 저장된 참조 픽처로 디코딩한다.
동작 660에서, 디코더(210)는 가상 참조 픽처가 복수의 가상 서브 픽처로 분할되었는지 판정한다. 가상 참조 픽처가 복수의 가상 서브 픽처로 분할되지 않은 것으로 판정된 것에 기초하여, 방법은 동작 665에서 계속된다. 그렇지 않으면, 방법은 동작 675에서 계속된다.
동작 665에서, 디코더(210)는 주변 참조 픽처들로부터 가상 참조 픽처를 생성한다.
동작 670에서, 디코더(210)는 생성된 가상 참조 픽처를 DPB에 저장하고, 현재 픽처를 DPB에 저장된 참조 픽처로 디코딩한다.
동작 675에서, 디코더(210)는 주변 참조 픽처들로부터 가상 참조 서브 픽처를 생성하고, 생성된 가상 참조 서브 픽처의 경계를 평활화한다.
동작 680에서, 디코더(210)는 경계가 평활화된 가상 참조 서브픽처를 기반으로 가상 참조 픽처를 합성하고, 합성된 가상 참조 픽처를 DPB에 저장하고, DPB에 저장된 참조 픽처로 현재 픽처를 디코딩한다.
도 7은 일 실시예에 따른 컴퓨터 시스템(700)의 개략도이다.
위에서 설명된 가상 참조 픽처와의 상호 예측을 위한 기술은 컴퓨터 판독 가능 명령을 사용하여 컴퓨터 소프트웨어로서 구현될 수 있고 하나 이상의 컴퓨터 판독 가능형 매체에 물리적으로 저장될 수 있다. 예를 들어, 도 7은 개시된 주제의 실시예를 구현하기에 적합한 컴퓨터 시스템(700)을 도시한다.
컴퓨터 소프트웨어는 어셈블리, 컴파일, 링크, 또는 유사한 메커니즘의 대상이 될 수 있는 임의의 적절한 기계 코드 또는 컴퓨터 언어를 사용하여 코딩되어, 직접 실행될 수 있거나 또는 컴퓨터 중앙 처리 장치(CPU), 그래픽 처리 장치(GPU) 등에 의한 분석, 마이크로-코드 실행 등을 통해 실행될 수 있는 명령을 포함하는 코드를 생성할 수 있다.
명령은 예를 들어 개인용 컴퓨터, 태블릿 컴퓨터, 서버, 스마트폰, 게임 장치, 사물 인터넷 장치 등을 포함하는 다양한 유형의 컴퓨터 또는 그 구성요소에서 실행될 수 있다.
도 7에 도시된 구성요소는 컴퓨터 시스템(700)은 본질적으로 예시이고 본 개시의 실시예를 구현하는 컴퓨터 소프트웨어의 사용 또는 기능의 범위에 대한 어떠한 제한도 제안하도록 의도되지 않는다. 구성요소의 구성도 컴퓨터 시스템(700)의 실시예에 예시된 구성요소 중 어느 하나 또는 조합과 관련된 임의의 종속성 또는 요구사항을 갖는 것으로 해석될 수 없다.
컴퓨터 시스템(700)은 또한 특정 휴먼 인터페이스 출력 장치를 포함할 수 있다. 이러한 휴먼 인터페이스 출력 장치는 예를 들어 촉각 출력, 소리, 빛 및 냄새/미각을 통해 한 명 이상의 인간 사용자의 감각을 자극할 수 있다. 이러한 휴먼 인터페이스 출력 장치는 촉각 출력 장치(예를 들어, 터치 스크린(710), 데이터 글러브(도시되지 않음) 또는 조이스틱(705)에 의한 촉각 피드백, 그러나 입력 장치로서 서비스를 제공하지 않는 촉각 피드백 장치도 있을 수 있다), 오디오 출력 장치(예를 들어, 스피커(709), 헤드폰(도시되지 않음)), 시각 출력 장치(예를 들어, CRT 화면, LCD 화면, 플라즈마 화면, OLED 화면을 포함하는 화면(710), 각각은 터치 스크린 입력 기능이 없는 것이 있고, 각각은 각각 촉각 피드백 기능이 있거나 없는 것이 있고 - 이 중 일부는 입체 출력, 가상 현실 안경(도시되지 않음), 홀로그램 디스플레이 및 스모크 탱크(도시되지 않음) 및 프린터(도시되지 않음)와 같은 수단을 통해 2D 시각적 출력 또는 3D 이상 출력이 가능할 수 있다)를 포함할 수 있다.
컴퓨터 시스템(700)은 또한 CD/DVD 또는 이와 유사한 매체(721)가 있는 CD/DVD ROM/RW(2020), 썸-드라이브(722), 이동식 하드 드라이브 또는 솔리드 스테이트 드라이브(723), 테이프 및 플로피 디스크(도시되지 않음)와 같은 레거시 자기 미디어, 보안 동글(도시되지 않음)과 같은 특수 ROM/ASIC/PLD 기반 장치 등을 포함하는 광학 매체와 같은 인간 액세스 가능한 저장 장치 및 관련 매체를 포함할 수 있다.
당업자는 또한 현재 개시된 주제와 관련하여 사용되는 용어 "컴퓨터 판독 가능형 매체"가 전송 매체, 반송파, 또는 다른 일시적 신호를 포함하지 않는다는 것을 이해해야 한다.
컴퓨터 시스템(700)은 또한 하나 이상의 통신 네트워크에 대한 인터페이스를 포함할 수 있다. 네트워크는 예를 들어 무선, 유선, 광이 될 수 있다. 네트워크는 또한 로컬, 광역, 대도시, 차량 및 산업, 실시간, 지연 허용 등이 될 수 있다. 네트워크의 예로는 이더넷, 무선 LAN, GSM, 3G, 4G, 5G, LTE 등을 포함하는 셀룰러 네트워크, 케이블 TV, 위성 TV 및 지상파 방송을 포함하는 TV 유선 또는 무선 광역 디지털 네트워크, CANBus 등을 포함하는 차량 및 산업 등이 있다. 특정 네트워크는 일반적으로 특정 범용 데이터 포트 또는 주변 버스(749)(예를 들어, 컴퓨터 시스템(700)의 USB 포트)에 연결된 외부 네트워크 인터페이스 어댑터를 필요로 한다. 다른 것들은 일반적으로 아래에 설명된 시스템 버스에 연결하여 컴퓨터 시스템(700)의 코어에 통합된다(예를 들어, PC 컴퓨터 시스템에 대한 이더넷 인터페이스 또는 스마트폰 컴퓨터 시스템에 대한 셀룰러 네트워크 인터페이스). 이러한 네트워크 중 하나를 사용하여 컴퓨터 시스템(700)은 다른 개체와 통신할 수 있다. 이러한 통신은 단방향, 수신 전용(예를 들어, 방송 TV), 단방향 전송 전용(예를 들어, CANbus에서 특정 CANbus 장치로) 또는 양방향(예를 들어, 로컬 또는 광역 영역을 사용하는 다른 컴퓨터 시스템)일 수 있다. 디지털 네트워크. 특정 프로토콜 및 프로토콜 스택은 위에서 설명한 대로 각 네트워크 및 네트워크 인터페이스에서 사용할 수 있다.
컴퓨터 시스템(700)의 코어(740)에는 전술한 휴먼 인터페이스 장치, 사람이 액세스할 수 있는 저장 장치 및 네트워크 인터페이스가 부착될 수 있다.
코어(740)는 하나 이상의 중앙 처리 장치(CPU)(741), 그래픽 처리 장치(GPU)(742), 필드 프로그래머블 게이트 어레이(Field Programmable Gate Areas, FPGA)(743), 특정 작업을 위한 하드웨어 가속기(744) 등의 형태의 전문화된 프로그램 가능 처리 장치를 포함할 수 있다. 이러한 장치는 읽기 전용 메모리(ROM)(745), 랜덤 액세스 메모리(746), 사용자가 액세스할 수 없는 내부 하드 드라이브와 같은 내부 대용량 저장 장치(747)와 함께 시스템 버스(748)를 통해 연결될 수 있다. 일부 컴퓨터 시스템에서, 시스템 버스(748)는 추가 CPU, GPU 등에 의한 확장을 가능하게 하는 하나 이상의 물리적 플러그의 형태로 액세스할 수 있다. 주변 장치는 코어의 시스템 버스(748)에 직접 연결하거나 주변 장치 버스(749)를 통해 연결할 수 있다. 주변기기 버스를 위한 아키텍처에는 PCI, USB 등이 포함된다.
CPU(741), GPU(742), FPGA(743) 및 가속기(744)는 조합되어 전술한 컴퓨터 코드를 구성할 수 있는 특정 명령을 실행할 수 있다. 해당 컴퓨터 코드는 ROM(745) 또는 RAM(746)에 저장할 수 있다. 임시 데이터는 RAM(746)에도 저장할 수 있는 반면 영구 데이터는 예를 들어 내부 대용량 저장소(747)에 저장할 수 있다. 하나 이상의 CPU(741), GPU(742), 대용량 저장소(747), ROM(745), RAM(746) 등과 밀접하게 연관될 수 있는 캐시 메모리를 사용하여 임의의 메모리 장치에 대한 빠른 저장 및 검색을 인에이블할 수 있다.
컴퓨터 판독 가능형 매체는 다양한 컴퓨터 구현 동작을 수행하기 위한 컴퓨터 코드를 가질 수 있다. 매체 및 컴퓨터 코드는 본 개시의 목적을 위해 특별히 설계되고 구성된 것일 수 있거나, 컴퓨터 소프트웨어 기술 분야의 숙련자에게 잘 알려져 있고 이용 가능한 종류일 수 있다.
제한이 아닌 예로서, 아키텍처(700), 특히 코어(740)를 갖는 컴퓨터 시스템은 하나 이상의 유형의 컴퓨터 판독 가능형 매체에 구현된 소프트웨어를 실행하는 프로세서(들)(CPU, GPU, FPGA, 가속기, 등)의 결과로서 기능을 제공할 수 있다. 이러한 컴퓨터 판독 가능형 매체는 위에서 소개한 사용자 액세스 가능한 대용량 저장 장치와 관련된 미디어일 수 있을 뿐만 아니라 코어 내부 대용량 저장 장치(747) 또는 ROM(745)과 같은 비일시적 특성을 갖는 코어(740)의 특정 저장소일 수 있다. 본 발명의 다양한 실시예를 구현하는 소프트웨어는 이러한 장치에 저장되어 코어(740)에 의해 실행될 수 있다. 컴퓨터 판독 가능형 매체는 특정 요구에 따라 하나 이상의 메모리 장치 또는 칩을 포함할 수 있다. 소프트웨어는 코어(740) 및 특히 내부의 프로세서(CPU, GPU, FPGA 등 포함)가 RAM(746)에 저장된 데이터 구조를 정의하는 것과 소프트웨어에서 정의한 프로세스에 따라 이러한 데이터 구조를 수정하는 것을 포함하여 여기에 설명된 특정 프로세스 또는 특정 프로세스의 특정 부분을 실행하게 할 수 있다. 추가로 또는 대안으로서, 컴퓨터 시스템은 특정 프로세스를 실행하기 위해 소프트웨어 대신 또는 함께 작동할 수 있는 회로(예를 들어, 가속기(744))에 내장되거나 달리 구현된 논리의 결과로 기능을 제공할 수 있고, 이것은 여기에 설명된 특정 프로세스의 특정 부분 중 특정 프로세스 또는 특정 부분을 실행하는 소프트웨어와 함께 또는 그 대신에 작동할 수 있다. 소프트웨어에 대한 참조는 논리를 포함할 수 있으며 해당되는 경우 그 반대의 경우도 마찬가지이다. 컴퓨터 판독 가능형 매체에 대한 참조는 적절한 경우 실행을 위한 소프트웨어를 저장하는 회로(예를 들어, 집적 회로(IC)), 실행을 위한 로직을 구현하는 회로, 또는 둘 다를 포함할 수 있다. 본 개시는 하드웨어 및 소프트웨어의 임의의 적절한 조합을 포함한다.
본 개시는 몇몇 예시적인 실시예를 설명하였지만, 개시의 범위 내에 속하는 변경, 순열 및 다양한 대체 균등물이 있다. 따라서, 당업자는 본 명세서에 명시적으로 도시되거나 설명되지는 않았지만 본 개시의 원리를 구현하고 따라서 본 발명의 사상 및 범위 내에 있는 수많은 시스템 및 방법을 고안할 수 있음을 이해할 것이다.

Claims (20)

  1. 비디오 시퀀스의 현재 픽처의 인터-픽처 예측 수행 방법으로서,
    상기 인터-픽처 예측 수행 방법은 적어도 하나의 프로세서에 의해 수행되며, 상기 인터-픽처 예측 수행 방법은:
    상기 현재 픽처가 가상 참조 픽처를 사용하는지를 판정하는 단계;
    상기 가상 참조 픽처를 사용하는 것으로 판정되는 현재 픽처에 기초하여:
    상기 현재 픽처에 대해, 상기 가상 참조 픽처에 가장 가까운 이웃인 이웃 참조 픽처로부터 상기 가상 참조 픽처를 생성하는 단계,
    상기 생성된 가상 참조 픽처를 디코딩된 픽처 버퍼에 저장하는 단계,
    상기 생성된 가상 참조 픽처를 활성 참조 픽처 목록에 추가하는 단계, 및
    상기 가상 참조 픽처가 추가된 상기 활성 참조 픽처 목록에 기초하여, 상기 현재 픽처의 인터 픽처 예측을 수행하는 단계
    를 포함하는 인터-픽처 예측 수행 방법.
  2. 제1항에 있어서,
    상기 현재 픽처가 가상 참조 픽처를 사용하지 않는 것으로 판정된 것에 기초하여, 상기 현재 픽처에 대해 생성되는 상기 가상 참조 픽처가 미래 픽처에 사용되는지를 판정하는 단계
    를 더 포함하는 인터-픽처 예측 수행 방법.
  3. 제2항에 있어서,
    상기 가상 참조 픽처가 미래 픽처에 사용되는 것으로 판정된 것에 기초하여:
    상기 미래 픽처에 대해, 상기 이웃 참조 픽처로부터 상기 가상 참조 픽처를 생성하는 단계;
    상기 생성된 가상 참조 픽처를 디코딩된 픽처 버퍼에 저장하는 단계; 및
    상기 생성된 가상 참조 픽처를 비활성 참조 픽처 목록에 추가하는 단계
    를 더 포함하는 인터-픽처 예측 수행 방법.
  4. 제2항에 있어서,
    상기 가상 참조 픽처가 미래 픽처에 사용되지 않는 것으로 판정된 것에 기초하여, 상기 활성 참조 픽처 목록에 하나 이상의 디코딩된 참조 픽처만을 추가하는 단계
    를 더 포함하는 인터-픽처 예측 수행 방법.
  5. 제1항에 있어서,
    상기 현재 픽처가 가상 참조 픽처를 사용하지 않는 것으로 판정된 것에 기초하여, 상기 디코딩된 픽처 버퍼에 저장된 하나 이상의 디코딩된 참조 픽처로 현재 픽처를 디코딩하는 단계
    를 더 포함하는 인터-픽처 예측 수행 방법.
  6. 제1항에 있어서,
    상기 현재 픽처가 가상 참조 픽처를 사용하는 것으로 판정된 것에 기초하여, 상기 현재 픽처에 대해 생성된 가상 참조 픽처가 복수의 가상 서브픽처로 분할되는지를 판정하는 단계
    를 더 포함하는 인터-픽처 예측 수행 방법.
  7. 제6항에 있어서,
    상기 가상 참조 픽처가 복수의 가상 서브픽처로 분할되지 않는 것으로 판정된 것에 기초하여:
    상기 현재 픽처에 대해, 상기 이웃 참조 픽처로부터 가상 참조 픽처를 생성하는 단계;
    상기 생성된 가상 참조 픽처를 디코딩된 픽처 버퍼에 저장하는 단계; 및
    상기 디코딩된 픽처 버퍼에 저장된 하나 이상의 디코딩된 참조 픽처로 현재 픽처를 디코딩하는 단계
    를 더 포함하는 인터-픽처 예측 수행 방법.
  8. 제6항에 있어서,
    상기 가상 참조 픽처가 복수의 가상 서브픽처로 분할되는 것으로 판정된 것에 기초하여:
    상기 현재 픽처에 대해, 상기 이웃 참조 픽처로부터 가상 참조 서브픽처를 생성하는 단계;
    상기 생성된 가상 참조 서브픽처의 경계를 평활화하는 단계;
    상기 경계가 평활화된 가상 참조 서브픽처에 기초하여 가상 참조 픽처를 합성하는 단계;
    상기 합성된 가상 참조 픽처를 상기 디코딩된 픽처 버퍼에 저장하는 단계; 및
    상기 디코딩된 픽처 버퍼에 저장된 하나 이상의 디코딩된 참조 픽처로 현재 픽처를 디코딩하는 단계
    를 더 포함하는 인터-픽처 예측 수행 방법.
  9. 제1항에 있어서,
    상기 현재 픽처에 대해, 상기 가상 참조 픽처를 생성하는 단계는:
    상기 이웃 참조 픽처에서 광 흐름을 추정하는 단계;
    상기 이웃 참조 픽처에서 상기 추정된 광 흐름을 보상하는 단계; 및
    상기 가상 참조 픽처를 생성하기 위해 상기 광 흐름이 보상된 이웃 참조 픽처의 세부 사항을 향상시키는 단계
    를 포함하는, 인터-픽처 예측 수행 방법.
  10. 비디오 시퀀스의 현재 픽처의 인터-픽처 예측 수행 장치로서,
    컴퓨터 프로그램 코드를 저장하도록 구성된 적어도 하나의 메모리; 및
    상기 적어도 하나의 메모리에 액세스하고 상기 컴퓨터 프로그램 코드에 따라 동작하도록 구성된 적어도 하나의 프로세서
    를 포함하며, 상기 컴퓨터 프로그램 코드는:
    상기 적어도 하나의 프로세서로 하여금 상기 현재 픽처가 가상 참조 픽처를 사용하는지를 판정하게 하도록 구성된 제1 판정 코드;
    상기 적어도 하나의 프로세서로 하여금 상기 가상 참조 픽처를 사용하는 것으로 판정되는 현재 픽처에 기초하여, 상기 현재 픽처에 대해, 상기 가상 참조 픽처에 가장 가까운 이웃인 이웃 참조 픽처로부터 상기 가상 참조 픽처를 생성하게 하도록 구성된 생성 코드;
    상기 적어도 하나의 프로세서로 하여금 상기 생성된 가상 참조 픽처를 디코딩된 픽처 버퍼에 저장하게 하도록 구성된 저장 코드;
    상기 적어도 하나의 프로세서로 하여금 상기 생성된 가상 참조 픽처를 활성 참조 픽처 목록에 추가하게 하도록 구성된 추가 코드; 및
    상기 적어도 하나의 프로세서로 하여금 상기 가상 참조 픽처가 추가된 상기 활성 참조 픽처 목록에 기초하여, 상기 현재 픽처의 인터 픽처 예측을 수행하게 하도록 구성된 수행 코드
    를 포함하는, 인터-픽처 예측 수행 장치.
  11. 제10항에 있어서,
    상기 적어도 하나의 프로세서로 하여금 상기 현재 픽처가 가상 참조 픽처를 사용하지 않는 것으로 판정된 것에 기초하여, 상기 현재 픽처에 대해 생성되는 상기 가상 참조 픽처가 미래 픽처에 사용되는지를 판정하게 하도록 구성된 제2 판정 코드
    를 더 포함하는 인터-픽처 예측 수행 장치.
  12. 제11항에 있어서,
    상기 생성 코드는 상기 적어도 하나의 프로세서로 하여금 상기 가상 참조 픽처가 미래 픽처에 사용되는 것으로 판정된 것에 기초하여, 상기 미래 픽처에 대해, 상기 이웃 참조 픽처로부터 상기 가상 참조 픽처를 생성하게 하도록 추가로 구성되고,
    상기 저장 코드는 상기 적어도 하나의 프로세서로 하여금 상기 생성된 가상 참조 픽처를 디코딩된 픽처 버퍼에 저장하게 하도록 추가로 구성되며, 그리고
    상기 추가 코드는 상기 적어도 하나의 프로세서로 하여금 상기 생성된 가상 참조 픽처를 비활성 참조 픽처 목록에 추가하게 하도록 추가로 구성되는, 인터-픽처 예측 수행 장치.
  13. 제11항에 있어서,
    상기 추가 코드는 상기 적어도 하나의 프로세서로 하여금 상기 가상 참조 픽처가 미래 픽처에 사용되지 않는 것으로 판정된 것에 기초하여, 상기 활성 참조 픽처 목록에 하나 이상의 디코딩된 참조 픽처만을 추가하게 하도록 추가로 구성되는, 인터-픽처 예측 수행 장치.
  14. 제10항에 있어서,
    상기 적어도 하나의 프로세서로 하여금 상기 현재 픽처가 가상 참조 픽처를 사용하지 않는 것으로 판정된 것에 기초하여, 상기 디코딩된 픽처 버퍼에 저장된 하나 이상의 디코딩된 참조 픽처로 현재 픽처를 디코딩하게 하도록 구성된 디코딩 코드
    를 더 포함하는 인터-픽처 예측 수행 장치.
  15. 제10항에 있어서,
    상기 적어도 하나의 프로세서로 하여금 상기 현재 픽처가 가상 참조 픽처를 사용하는 것으로 판정된 것에 기초하여, 상기 현재 픽처에 대해 생성된 가상 참조 픽처가 복수의 가상 서브픽처로 분할되는지를 판정하게 하도록 구성된 제2 판정 코드
    를 더 포함하는 인터-픽처 예측 수행 장치.
  16. 제15항에 있어서,
    상기 생성 코드는 상기 적어도 하나의 프로세서로 하여금 상기 가상 참조 픽처가 복수의 가상 서브픽처로 분할되지 않는 것으로 판정된 것에 기초하여, 상기 현재 픽처에 대해, 상기 이웃 참조 픽처로부터 가상 참조 픽처를 생성하게 하도록 추가로 구성되고.
    상기 저장 코드는 상기 적어도 하나의 프로세서로 하여금 상기 생성된 가상 참조 픽처를 디코딩된 픽처 버퍼에 저장하게 하도록 추가로 구성되며, 그리고
    상기 컴퓨터 프로그램 코드는 상기 적어도 하나의 프로세서로 하여금 상기 디코딩된 픽처 버퍼에 저장된 하나 이상의 디코딩된 참조 픽처로 현재 픽처를 디코딩하게 하도록 구성된 디코딩 코드
    를 더 포함하는, 인터-픽처 예측 수행 장치.
  17. 제15항에 있어서,
    상기 생성 코드는 상기 적어도 하나의 프로세서로 하여금 상기 가상 참조 픽처가 복수의 가상 서브픽처로 분할되는 것으로 판정된 것에 기초하여, 상기 현재 픽처에 대해, 상기 이웃 참조 픽처로부터 가상 참조 서브픽처를 생성하게 하도록 추가로 구성되고,
    상기 컴퓨터 프로그램 코드는:
    상기 적어도 하나의 프로세서로 하여금 상기 생성된 가상 참조 서브픽처의 경계를 평활화하게 하도록 구성된 평활화 코드; 및
    상기 적어도 하나의 프로세서로 하여금 상기 경계가 평활화된 가상 참조 서브픽처에 기초하여 가상 참조 픽처를 합성하게 하도록 구성된 합성 코드
    를 더 포함하며,
    상기 저장 코드는 상기 적어도 하나의 프로세서로 하여금 상기 합성된 가상 참조 픽처를 상기 디코딩된 픽처 버퍼에 저장하게 하도록 추가로 구성되며, 그리고
    상기 컴퓨터 프로그램은 상기 적어도 하나의 프로세서로 하여금 상기 디코딩된 픽처 버퍼에 저장된 하나 이상의 디코딩된 참조 픽처로 현재 픽처를 디코딩하게 하도록 구성된 디코딩 코드
    를 더 포함하는, 인터-픽처 예측 수행 장치.
  18. 제10항에 있어서,
    상기 생성 코드는 상기 적어도 하나의 프로세서로 하여금:
    상기 이웃 참조 픽처에서 광 흐름을 추정하고;
    상기 이웃 참조 픽처에서 상기 추정된 광 흐름을 보상하며; 그리고
    상기 가상 참조 픽처를 생성하기 위해 상기 광 흐름이 보상된 이웃 참조 픽처의 세부 사항을 향상시키도록 추가로 구성되는, 인터-픽처 예측 수행 장치.
  19. 비 일시적 컴퓨터 판독 가능형 저장 매체로서,
    비디오 시퀀스의 현재 픽처의 인터-픽처 예측을 수행하기 위해 적어도 하나의 프로세서에 의해 실행될 때, 상기 적어도 하나의 프로세서로 하여금:
    상기 현재 픽처가 가상 참조 픽처를 사용하는지를 판정하고;
    상기 가상 참조 픽처를 사용하는 것으로 판정되는 현재 픽처에 기초하여:
    상기 현재 픽처에 대해, 상기 가상 참조 픽처에 가장 가까운 이웃인 이웃 참조 픽처로부터 상기 가상 참조 픽처를 생성하고,
    상기 생성된 가상 참조 픽처를 디코딩된 픽처 버퍼에 저장하고,
    상기 생성된 가상 참조 픽처를 활성 참조 픽처 목록에 추가하며, 그리고
    상기 가상 참조 픽처가 추가된 상기 활성 참조 픽처 목록에 기초하여, 상기 현재 픽처의 인터 픽처 예측을 수행하게 하는
    명령을 저장하는 비 일시적 컴퓨터 판독 가능형 저장 매체.
  20. 제19항에 있어서,
    상기 명령은 적어도 하나의 프로세서에 의해 실행될 때, 상기 적어도 하나의 프로세서로 하여금 상기 현재 픽처가 가상 참조 픽처를 사용하지 않는 것으로 판정된 것에 기초하여, 상기 현재 픽처에 대해 생성되는 상기 가상 참조 픽처가 미래 픽처에 사용되는지를 추가로 판정하게 하는, 비 일시적 컴퓨터 판독 가능형 저장 매체.
KR1020227019415A 2020-09-24 2021-06-15 비디오 코딩을 위해 가상 참조 영상을 이용한 인터-픽처 예측 방법 및 장치 KR20220088503A (ko)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US202063082784P 2020-09-24 2020-09-24
US63/082,784 2020-09-24
US202063083527P 2020-09-25 2020-09-25
US63/083,527 2020-09-25
US17/329,751 2021-05-25
US17/329,751 US11503323B2 (en) 2020-09-24 2021-05-25 Method and apparatus for inter-picture prediction with virtual reference picture for video coding
PCT/US2021/037395 WO2022066252A1 (en) 2020-09-24 2021-06-15 Method and apparatus for inter-picture prediction with virtual reference picture for video coding

Publications (1)

Publication Number Publication Date
KR20220088503A true KR20220088503A (ko) 2022-06-27

Family

ID=80741039

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227019415A KR20220088503A (ko) 2020-09-24 2021-06-15 비디오 코딩을 위해 가상 참조 영상을 이용한 인터-픽처 예측 방법 및 장치

Country Status (6)

Country Link
US (1) US11503323B2 (ko)
EP (1) EP4038579A4 (ko)
JP (1) JP7504999B2 (ko)
KR (1) KR20220088503A (ko)
CN (1) CN114787870A (ko)
WO (1) WO2022066252A1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11159811B2 (en) * 2019-03-15 2021-10-26 Tencent America LLC Partitioning of coded point cloud data
CN116194957A (zh) * 2020-09-28 2023-05-30 现代自动车株式会社 基于可变系数深度学习的帧间预测方法
US11490078B2 (en) * 2020-12-29 2022-11-01 Tencent America LLC Method and apparatus for deep neural network based inter-frame prediction in video coding
US11570465B2 (en) * 2021-01-13 2023-01-31 WaveOne Inc. Machine-learned in-loop predictor for video compression
WO2022155799A1 (en) * 2021-01-19 2022-07-28 Alibaba Group Holding Limited Neural network based in-loop filtering for video coding
US12120346B2 (en) * 2022-07-13 2024-10-15 Tencent America LLC Method and apparatus for boundary filtering for intrabc and intraTMP modes
WO2024177965A1 (en) * 2023-02-24 2024-08-29 BAE Systems Imaging Solutions Inc. Techniques for image data compression automation

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FI120125B (fi) 2000-08-21 2009-06-30 Nokia Corp Kuvankoodaus
US9264717B2 (en) 2011-10-31 2016-02-16 Qualcomm Incorporated Random access with advanced decoded picture buffer (DPB) management in video coding
WO2014109563A1 (ko) 2013-01-09 2014-07-17 엘지전자 주식회사 비디오 신호 처리 방법 및 장치
US11019355B2 (en) * 2018-04-03 2021-05-25 Electronics And Telecommunications Research Institute Inter-prediction method and apparatus using reference frame generated based on deep learning
US10958869B1 (en) * 2019-11-14 2021-03-23 Huawei Technologies Co., Ltd. System, device and method for video frame interpolation using a structured neural network

Also Published As

Publication number Publication date
CN114787870A (zh) 2022-07-22
JP7504999B2 (ja) 2024-06-24
US20220094962A1 (en) 2022-03-24
JP2023504418A (ja) 2023-02-03
EP4038579A1 (en) 2022-08-10
US11503323B2 (en) 2022-11-15
EP4038579A4 (en) 2023-04-26
WO2022066252A1 (en) 2022-03-31

Similar Documents

Publication Publication Date Title
KR102668128B1 (ko) 비디오 인코딩 또는 디코딩을 위한 방법 및 장치
JP7524387B2 (ja) ビデオ符号化又は復号の方法及び装置並びにコンピュータプログラム
JP7358464B2 (ja) ビデオ符号化のための方法及び機器
JP7504999B2 (ja) ビデオコーディングに関して仮想参照ピクチャを用いたインターピクチャ予測のための方法及び機器
JP7250143B2 (ja) ビデオ復号化の方法並びにその、装置及びコンピュータプログラム
JP7490843B2 (ja) イントラピクチャブロック補償のための予測候補リストサイズシグナリングのための方法および装置
JP7343668B2 (ja) Vvcにおける色変換のための方法及び機器
KR20210145794A (ko) 비디오 코딩을 위한 방법 및 장치
KR102506416B1 (ko) 다중 라인 인트라 예측을 위한 인트라 보간 필터
WO2020247592A1 (en) Method and apparatus for video coding
KR20210049930A (ko) 비디오 디코딩을 위한 방법 및 장치
JP2023164443A (ja) ビデオコーディングのための方法、装置、およびプログラム
KR20210069720A (ko) 작은 코딩 블록들에 대한 단순화된 병합 리스트 구성
JP2023522704A (ja) ビデオコーディングのための方法および装置、およびコンピュータプログラム
JP2023520594A (ja) ビデオ・コーディングのための方法及び装置
US20230283796A1 (en) Determining applicability of intra block copy in semi-decoupled partitioning
KR102544105B1 (ko) 멀티-라인 인트라 예측을 위한 모드 리스트 생성
JP7514325B2 (ja) ビデオコーディングのための方法、装置、非一時的コンピュータ可読記憶媒体およびコンピュータプログラム
KR20230097129A (ko) 교차-컴포넌트 변환 계수 레벨 재구성에서의 오프셋 도출
JP7562856B2 (ja) 参照フレームの適応的な並べ替えのための方法および装置
RU2782435C1 (ru) Способ и устройство кодирования или декодирования видео
JP2024539787A (ja) 動きベクトル差分のジョイント・シグナリング方法
JP2024147698A (ja) ビデオ符号化又は復号の方法及び装置並びにコンピュータプログラム
KR20240122849A (ko) 인접한 공간 모션 벡터 예측기 후보 개선

Legal Events

Date Code Title Description
A201 Request for examination