KR20240025629A - 광학 흐름를 이용한 비디오 압축 - Google Patents

광학 흐름를 이용한 비디오 압축 Download PDF

Info

Publication number
KR20240025629A
KR20240025629A KR1020247002405A KR20247002405A KR20240025629A KR 20240025629 A KR20240025629 A KR 20240025629A KR 1020247002405 A KR1020247002405 A KR 1020247002405A KR 20247002405 A KR20247002405 A KR 20247002405A KR 20240025629 A KR20240025629 A KR 20240025629A
Authority
KR
South Korea
Prior art keywords
frame
video
reconstruction
video frame
residual
Prior art date
Application number
KR1020247002405A
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 KR20240025629A publication Critical patent/KR20240025629A/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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • G06N3/0455Auto-encoder networks; Encoder-decoder networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0475Generative networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0495Quantised networks; Sparse networks; Compressed networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/088Non-supervised learning, e.g. competitive learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/094Adversarial learning
    • G06T3/18
    • G06T5/60
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/182Methods 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 pixel
    • 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/513Processing of motion vectors
    • H04N19/521Processing of motion vectors for estimating the reliability of the determined motion vectors or motion vector field, e.g. for smoothing the motion vector field or for correcting motion vectors
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]

Abstract

방법, 시스템 및 장치는 비디오 데이터를 압축하기 위한 컴퓨터 저장 매체에 인코딩된 컴퓨터 프로그램을 포함한다. 일 양태에서, 방법은 프레임의 비디오 시퀀스를 수신하는 단계와; 흐름 예측 네트워크를 사용하여, 2개의 연속 프레임 사이의 광학 흐름을 생성하는 단계 - 2개의 연속 프레임은 제1 프레임 및 그 제1 프레임에 후속하는 제2 프레임을 포함함 - 와; 제1 오토인코더 신경망을 사용하여 광학 흐름으로부터, 제1 프레임과 제2 프레임 사이의 예측된 광학 흐름, 및 신뢰도 마스크를 생성하는 단계와; 예측된 광학 흐름에 따라 제1 프레임의 재구성을 워핑(warping)하고 이어서 제2 프레임의 초기 예측 재구성을 획득하기 위해 블러링 동작을 적용하는 단계를 포함한다.

Description

광학 흐름를 이용한 비디오 압축
본 명세서는 기계 학습 모델을 사용한 데이터 처리에 관한 것이다.
기계 학습 모델은 입력을 수신하고 수신된 입력에 기초하여 출력, 예를 들어 예측 출력을 생성한다. 일부 기계 학습 모델은 파라메트릭 모델이며 수신된 입력과 모델의 파라미터 값에 기초하여 출력을 생성한다.
일부 기계 학습 모델은 수신된 입력에 대한 출력을 생성하기 위해 여러 계층의 모델을 사용하는 심층 모델이다. 예를 들어, 심층 신경망은 출력 계층 및 수신된 입력에 비선형 변환을 적용하여 출력을 생성하는 하나 이상의 은닉 계층을 포함하는 심층 기계 학습 모델이다.
본 명세서는 비디오 데이터를 압축할 수 있는 하나 이상의 위치에 있는 하나 이상의 컴퓨터 상의 컴퓨터 프로그램으로 구현된 압축 시스템에 대해 설명한다.
본 명세서 전반에 걸쳐, "레이턴트(latent, 잠재변수)"는 하나 이상의 숫자값(예를 들어, 벡터, 행렬, 또는 숫자값의 기타 텐서)의 정렬된 모음(collection))을 지칭할 수 있다.
본 명세서 전반에 걸쳐, 입력 숫자값을 "양자화"한다는 것은 입력 숫자값을 가능한 숫자값의 개별 세트(집합)에서 가져온 출력 숫자값에 매핑하는 것을 의미한다. 예를 들어, 입력 숫자값은 가능한 숫자값의 개별 세트에서 가장 가까운 숫자값에 매핑될 수 있다. 가능한 숫자값의 개별 세트는 예를 들어 [0,255] 범위의 정수 값이거나 또 다른 적절한 개별 숫자값 세트일 수 있다.
본 명세서 전반에 걸쳐, 제1 비디오 프레임과 제2 비디오 프레임 사이의 광학 흐름(optical flow)은 제1 비디오 프레임의 각 픽셀에 대해, 제1 비디오 프레임과 제2 비디오 프레임 사이의 픽셀 변위(움직임)를 나타내는 흐름 벡터를 정의한다. 각 흐름 벡터는 예를 들어 비디오 프레임의 기준 프레임에 있는 2차원(2D) 벡터일 수 있다.
본 명세서에 설명된 각 신경망은 그 신경망이 설명된 기능을 수행할 수 있도록 하는 임의의 적절한 아키텍처를 가질 수 있다. 예를 들어, 각 신경망은 임의의 적절한 수(예를 들어, 5개 계층, 10개 계층 또는 20개 계층)의 임의의 적절한 유형의 신경망 계층(예를 들어, 컨볼루션 계층, 완전 연결 계층, 어텐션 계층 등)을 포함할 수 있으며 절한 구성으로(예를 들어, 계층의 선형 시퀀스로) 연결될 수 있다.
본 명세서 전반에 걸쳐, 비디오 프레임 시퀀스의 제1 비디오 프레임은 "I-프레임"으로 지칭될 수 있고, 제1 비디오 프레임 이후의 비디오 프레임은 "P-프레임"으로 지칭될 수 있다. (일우 경우에 단일 비디오는 다수의 비디오 프레임 시퀀스로 분할될 수 있고, 이러한 단일 비디오는 I-프레임으로 지정된 다수의 프레임을 가질 수 있다).
일 양태에서, 프레임의 비디오 시퀀스를 수신하는 단계를 포함하는, 데이터 처리 장치에 의해 수행되는 비디오 압축 방법이 설명된다. 방법은 특히 비디오 시퀀스의 2개의 연속 프레임을 연속적으로 처리함으로써 이전 프레임으로부터 후속(P) 프레임을 예측하기 위해 프레임의 비디오 시퀀스를 처리하는 단계를 포함할 수 있다. 2개의 연속 프레임은 비디오 시퀀스의 제1 프레임과 제1 프레임에 후속하는 비디오 시퀀스의 제2 프레임을 포함한다.
따라서, 방법은 흐름 예측 네트워크를 사용하여, 2개의 순차 프레임 사이의 광학 흐름(보다 정확하게는 광학 흐름을 나타내는 광학 흐름 데이터)을 생성하는 단계를 포함할 수 있으며, 여기서 2개의 순차 프레임은 제1 프레임과 제1 프레임에 후속하는 제2 프레임을 포함한다. 방법은 또한 흐름 인코딩 엔진으로서 작용하는 제1 오토인코더 신경망을 사용하여 광학 흐름으로부터, 제1 프레임과 제2 프레임 및 신뢰도 마스크 사이의 예측된 광학 흐름을 흐름 생성하는 단계를 포함할 수 있다. 구현에서 신뢰도 마스크는 예측된 광학 흐름과 동일한 공간 치수를 갖는 신뢰도 값 세트를 정의하는데, 예를 들어 예측된 광학 흐름의 각 픽셀에 대해 예를 들어 [0,σ_maz] 범위의 신뢰도 값(σ)를 가질 수 있다.
구현에서, 제1 오토인코더 신경망은 생성기 네트워크에 연결된(뒤에) 인코더 네트워크를 포함한다. 구현에서 인코더 신경망은 광학 흐름을 처리하여 광학 흐름을 나타내는 흐름 레이턴트를 생성한다. 생성기 네트워크는 흐름 레이턴트를 처리하여 예측된 광학 흐름(광학 흐름의 재구성)을 생성한다. 구현에서 흐름 레이턴트는 양자화되고 엔트로피 코딩될 수 있다.
방법은 예를 들어 예측된 광학 흐름에 따라 이전의 2개의 연속 프레임을 처리하는 것으로부터 제1 프레임의 재구성을 워핑하는 단계 및 후속적으로 제2 프레임의 초기 예측된 재구성을 획득하기 위해 신뢰도 마스크에 따라 블러링 동작을 적용하는 단계를 포함할 수 있다.
제1 프레임의 재구성을 워핑하는 단계는 예측된 광학 흐름을 제1 프레임의 재구성에 적용하는 것을 포함할 수 있다. 신뢰도 마스크에 따라 블러링 동작을 적용하는 단계는 제1 프레임의 워핑된 재구성에 블러링 동작을 적용하는 단계를 포함할 수 있고, 여기서 공간 위치에서 신뢰도 마스크에 의해 정의된 신뢰도 값은 블러링의 스케일(크기)을 정의한다. 예를 들어 신뢰도 값이 클수록 공간 위치에서 픽셀의 더 많은 블러링을 정의할 수 있다.
방법은 또한 잔차 인코딩 엔진으로 작동하는 제2 오토인코더 신경망을 사용하여, 제2 프레임과 그 제2 프레임의 초기 예측 재구성 간의 차이인 잔차(현재 잔차 프레임)의 예측을 생성하는 단계를 포함할 수 있다.
구현에서, 제2 오토인코더 신경망은 생성기 네트워크에 연결된(뒤에) 인코더 네트워크를 포함한다.
구현에서 인코더 신경망은 현재 잔차 프레임을 처리하여 현재 잔차 프레임을 나타내는 잔차 레이턴트를 생성한다. 생성기 네트워크는 잔차 레이턴트를 처리하여 잔차, 즉 현재 잔차 프레임 예측의 재구성을 생성한다. 구현에서 잔차 레이턴트는 양자화되고 엔트로피 코딩될 수 있다.
방법은 제2 프레임의 초기 예측 재구성과 잔차 예측을 결합하여 예측된 제2 프레임(현재 프레임의 예측 재구성)을 획득할 수 있다. 이는 비디오 시퀀스의 2개의 연속 프레임을 처리할 때 제1 프레임의 재구성으로서 사용될 수 있다.
비디오 시퀀스의 2개의 연속 프레임에 대한 압축된 비디오는 선택적으로 양자화 및/또는 엔트로피 코딩된 흐름 레이턴트 및 선택적으로 양자화 및/또는 엔트로피 코딩된 잔차 레이턴트를 포함할 수 있다. 따라서 프레임의 압축된 비디오 시퀀스는 비디오 시퀀스의 2개의 연속 프레임의 연속 세트에 대한 이러한 흐름 레이턴트 및 잔차 레이턴트의 연속을 포함할 수 있다.
일부 구현에서, 필수적이지는 않지만 제2 오토인코더 신경망의 생성기 네트워크는 생성형 적대적 신경망(GANN)의 구성요소이다. 즉, 특히 제2 오토인코더의 생성기 네트워크를 사용하여 비디오 프레임이 생성되었을 가능성을 정의하는 판별기 스코어(판별기 신경망에 의해 생성됨)에 따라 값이 달라지는 적대적 손실을 사용하여 트레이닝되었었을 수 있다.
일부 구현에서는 필수적이지는 않지만, 비디오 시퀀스의 제1 프레임은 제3 번째 오토인코더 신경망과 같은 I-프레임 압축 시스템을 사용하여 (별도로) 인코딩될 수 있다. 예를 들어, 제3 오토인코더 신경망의 인코더 네트워크는 제1 비디오 프레임을 나타내는 하나 이상의 레이턴트를 생성할 수 있고, 제3 오토인코더 신경망의 생성기 네트워크는 제1 비디오 프레임의 재구성을 생성할 수 있다. 다시 말해, 제1 비디오 프레임을 나타내는 하나 이상의 레이턴트는 양자화되고 엔트로피 코딩될 수 있다.
일 양태에 따르면, 데이터 처리 장치에 의해 수행되는 비디오 압축 방법이 제공되며, 이는 프레임의 비디오 시퀀스를 수신하는 단계와; 흐름 예측 네트워크를 사용하여, 2개의 연속 프레임 사이의 광학 흐름을 생성하는 단계 - 2개의 연속 프레임은 제1 프레임 및 그 제1 프레임에 후속하는 제2 프레임을 포함함 - 와; 제1 오토인코더 신경망을 사용하여 광학 흐름으로부터, 제1 프레임과 제2 프레임 사이의 예측된 광학 흐름, 및 신뢰도 마스크를 생성하는 단계와;
예측된 광학 흐름에 따라 제1 프레임의 재구성을 워핑하고 이어서 신뢰도 마스크에 따라 블러링 동작을 적용하여 제2 프레임의 초기 예측 재구성을 획득하는 단계와; 제2 오토인코더 신경망을 사용하여, 제2 프레임과 그 제2 프레임의 초기 예측 재구성 간의 차이인 잔차의 예측을 생성하는 단계와; 예측된 제2 프레임을 획득하기 위해 제2 프레임의 초기 예측 재구성과 잔차 예측을 결합하는 단계를 포함하고, 여기서 제1 및 제2 오토인코더 신경망 각각은 인코더 네트워크 및 생성기 네트워크를 각각 포함하고; 그리고 제2 오토인코더 신경망의 생성기 네트워크는 생성형 적대적 신경망(GANN)의 구성 요소이다.
일부 구현에서, 제1 프레임 및 제2 프레임은 제3 프레임에 후속하고, 제3 프레임은 비디오 시퀀스의 초기 프레임이고; 그리고 방법은 제2 및 제3 프레임을 처리하기 전에: 제3 오토인코더 신경망을 사용하여 제3 프레임으로부터, 제3 프레임의 예측 재구성을 생성하는 단계와; 흐름 예측 네트워크를 사용하여, 제3 프레임과 제1 프레임 사이의 광학 흐름을 생성하는 단계와; 제1 오토인코더 신경망을 사용하여 광학 흐름으로부터, 제3 프레임과 제1 프레임 사이의 예측된 광학 흐름; 및 신뢰도 마스크를 생성하는 단계와; 예측된 광학 흐름에 따라 제3 프레임의 재구성을 워핑하고 이어서 제1 프레임의 초기 예측 재구성을 획득하기 위해 신뢰도 마스크에 따라 블러링 동작을 적용하는 단계와; 제2 오토인코더 신경망을 사용하여, 제1 프레임과 제1 프레임의 초기 예측 재구성 간의 차이인 잔차의 예측을 생성하는 단계와; 그리고 예측된 제1 프레임을 획득하기 위해 제1 프레임의 초기 예측 재구성과 잔차 예측을 결합하는 단계를 더 포함하며, 여기서 제3 오토인코더 신경망은 인코더 네트워크와 생성기 네트워크를 포함하고; 제3 오토인코더 신경망의 제3 생성기 네트워크는 생성형 적대적 신경망(GANN)의 구성 요소이다.
일부 구현에서, 방법은 제2 오토인코더 신경망을 사용하여, 잔차 레이턴트를 획득하기 위해 잔차를 인코딩하는 단계와; 제3 인코더 신경망을 사용하여, 제2 프레임의 초기 예측을 인코딩함으로써 자유 레이턴트를 획득하는 단계와; 그리고 자유 레이턴트와 잔차 레이턴트를 연결하는 단계를 더 포함하고, 상기 제2 오토인코더 신경망을 사용하여, 잔차의 예측을 생성하는 단계는 자유 레이턴트와 잔차 레이턴트의 연결을 사용하여 제2 오토인코더 신경망에 의해 예측 잔차를 생성하는 단계를 포함한다.
일부 구현에서, 방법은 잔차 레이턴트의 양자화를 엔트로피 인코딩하는 단계를 더 포함하고, 잔차 레이턴트의 엔트로피 인코딩된 양자화는 비디오를 나타내는 압축된 비디오 데이터에 포함된다.
일부 구현에서, 잔차 레이턴트를 획득하기 위해 잔차를 인코딩하는 단계는 잔차 레이턴트를 생성하기 위해 제2 오토인코더 신경망의 인코더 신경망을 사용하여 잔차를 처리하는 단계를 포함한다.
일부 구현에서, 제2 프레임의 초기 예측을 인코딩함으로써 자유 레이턴트를 획득하는 단계는 인코더 신경망을 사용하여 제2 프레임의 초기 예측을 처리하여 자유 레이턴트를 생성하는 단계를 포함한다.
일부 구현에서, 잔차의 예측을 생성하는 단계는 제2 오토인코더 신경망의 생성 신경망을 사용하여 자유 레이턴트와 잔차 레이턴트의 연결을 처리하여 잔차의 예측을 생성하는 단계를 포함한다.
일부 구현에서, 예측된 제2 프레임을 획득하기 위해 제2 프레임의 초기 예측 재구성과 잔차의 예측을 결합하는 단계는 제2 프레임의 초기 예측 재구성과 잔차 예측을 합산함으로써 예측된 제2 프레임을 생성하는 단계를 포함한다.
일부 구현에서, 제1 프레임과 상기 제2 프레임 사이의 예측된 광학 흐름을 생성하는 단계는 제1 오토인코더 네트워크의 인코더 네트워크를 사용하여 흐름 예측 네트워크에 의해 생성된 광학 흐름을 처리하여 광학 흐름을 나타내는 흐름 레이턴트를 생성하는 단계와; 그리고 제1 오토인코더 신경망의 생성 신경망을 사용하여 흐름 레이턴트의 양자화를 처리하여 예측된 광학 흐름을 생성하는 단계를 포함한다.
일부 구현에서, 방법은 흐름 레이턴트의 양자화를 엔트로피 인코딩하는 단계를 더 포함하고, 흐름 레이턴트의 엔트로피 인코딩된 양자화는 비디오를 나타내는 압축된 비디오 데이터에 포함된다.
일부 구현에서, 제1 및 제2 오토인코더 신경망은 적대적 손실을 포함하는 목적 함수를 최적화하기 위해 트레이닝 비디오 세트에 대해 트레이닝되었다.
일부 구현에서, 각각의 트레이닝 비디오의 하나 이상의 비디오 프레임에 대해, 적대적 손실은 판별기 스코어에 기초하고, 상기 판별기 스코어는 판별기 신경망에 대한 입력을 생성하는 단계 - 입력은 제1 및 제2 오토인코더 신경망을 사용하여 생성된 비디오 프레임의 재구성을 포함함 - 와; 그리고 판별기 신경망에 입력을 제공하는 단계를 포함하는 동작들에 의해 생성되고, 판별기 신경망은 입력 비디오 프레임을 포함하는 입력을 수신하고; 그리고 입력을 처리하여 비디오 프레임이 제1 및 제2 오토인코더 신경망을 사용하여 생성되었을 가능성을 정의하는 출력 판별기 스코어를 생성하도록 구성된다.
다른 양태에 따르면, 하나 이상의 컴퓨터에 의해 수행되는 비디오 압축해제 방법으로서, 상기 방법은 비디오의 압축 표현을 수신하는 단계 - 비디오의 압축 표현은 비디오의 제1 비디오 프레임 이후의 각 비디오 프레임에 대해, 이전 비디오 프레임과 비디오 프레임 사이의 광학 흐름을 나타내는 양자화된 흐름 레이턴트를 정의함 -와; 그리고 비디오의 각 비디오 프레임의 재구성을 생성하는 단계를 포함하고, 상기 비디오의 각 비디오 프레임의 재구성을 생성하는 단계는 비디오의 제1 비디오 프레임 이후의 각 비디오 프레임에 대해: 비디오에서 이전 비디오 프레임의 재구성을 획득하는 단계; 이전 비디오 프레임과 비디오 프레임 사이의 광학 흐름을 생성하기 위해 흐름 생성기 신경망을 사용하여 비디오 프레임에 대한 양자화된 흐름 레이턴트를 처리하는 단계; 및 (i) 이전 비디오 프레임의 재구성, 및 (ii) 이전 비디오 프레임과 비디오 프레임 사이의 광학 흐름을 사용하여 비디오 프레임의 재구성을 생성하는 단계를 포함한다.
일부 구현에서, (i) 이전 비디오 프레임의 재구성, 및 (ii) 이전 비디오 프레임과 비디오 프레임 사이의 광학 흐름을 사용하여 비디오 프레임의 재구성을 생성하는 단계는 이전 비디오 프레임과 비디오 프레임 사이의 광학 흐름를 이용하여 이전 비디오 프레임의 재구성을 워핑함으로써 비디오 프레임의 초기 재구성을 생성하는 단계와; 그리고 비디오 프레임의 초기 재구성을 사용하여 비디오 프레임의 재구성을 생성하는 단계를 포함한다.
일부 구현에서, 비디오 프레임의 초기 재구성을 이용하여 비디오 프레임의 재구성을 생성하는 단계는 잔차 비디오 프레임의 재구성을 생성하는 단계 - 잔차 비디오 프레임은 (i) 비디오 프레임과 (ii) 비디오 프레임의 초기 재구성 사이의 차이에 의해 정의됨 -와; 그리고 잔차 비디오 프레임의 재구성과 비디오 프레임의 초기 재구성을 결합함으로써 비디오 프레임의 재구성을 생성하는 단계를 포함한다.
일부 구현에서, 비디오의 압축 표현은 비디오의 제1 비디오 프레임 이후의 각 비디오 프레임에 대해, 잔차 비디오 프레임을 나타내는 양자화된 잔차 레이턴트를 더 포함하고; 그리고 잔차 비디오 프레임의 재구성을 생성하는 단계는 잔차 생성기 신경망을 사용하여 비디오 프레임에 대한 양자화된 잔차 레이턴트를 처리하여 잔차 비디오 프레임의 재구성을 생성하는 단계를 포함한다.
일부 구현에서, 비디오의 압축 표현은 비디오의 제1 비디오 프레임을 나타내는 레이턴트를 정의하고; 그리고 상기 제1 비디오 프레임의 재구성을 생성하는 단계는 I-프레임 생성기 신경망을 사용하여 제1 비디오 프레임을 나타내는 레이턴트를 처리하여 제1 비디오 프레임의 재구성을 생성하는 단계를 포함한다.
다른 양태에 따르면, 데이터 처리 장치에 의해 실행될 때 데이터 처리 장치로 하여금 본 명세서에 설명된 방법의 동작들을 수행하게 하는 명령들을 포함하는 컴퓨터 프로그램으로 인코딩된 컴퓨터 저장 매체가 제공된다.
다른 양태에 따르면, 데이터 처리 장치; 및 컴퓨터 프로그램으로 인코딩된 컴퓨터 저장 매체를 포함하며, 프로그램은 데이터 처리 장치에 의해 실행될 때 데이터 처리 장치로 하여금 본 명세서에 설명된 방법의 동작들을 수행하게 하는 명령들을 포함한다
본 명세서에 설명된 주제의 특정 실시예는 다음 장점 중 하나 이상을 실현하도록 구현될 수 있다.
본 명세서에서 설명하는 압축 시스템은 비디오 내 비디오 프레임 간의 광학 흐름을 정의하는 광학 흐름 데이터를 생성함으로써 압축된 비디오 데이터를 생성할 수 있다. 그런 다음 압축 시스템은 비디오의 압축 표현에 광학 흐름 데이터의 압축된 표*을 포함하여 광학 흐름 데이터를 압축한다. 일부 경우 광학 흐름 데이터는 원본 비디오 프레임보다 더 효율적으로 압축될 수 있는데, 이는 예를 들어 광학 흐름 데이터의 상당 부분이 비디오 프레임 사이의 부드럽고 예측 가능한 움직임을 반영하는 일정한 값을 가질 수 있기 때문이다. 따라서 광학 흐름 측면에서 비디오 프레임을 표현하면 비디오를 보다 효율적으로 압축할 수 있다.
비디오의 비디오 프레임 사이의 광학 흐름을 나타내는 광학 흐름 데이터를 생성하는 것 외에도, 압축 시스템은 비디오의 비디오 프레임에 대응하는 잔차 비디오 프레임을 추가로 생성할 수 있다. 비디오 프레임에 대응하는 잔차 비디오 프레임("잔차")은 광학 흐름 데이터를 사용하여 생성된 비디오 프레임의 재구성에 있어서의 오차를 나타낸다. 압축 시스템은 잔차 비디오 프레임을 압축하고 비디오의 압축된 표*에 잔차 비디오 프레임의 압축 표현을 포함할 수 있다. 잔차 비디오 프레임은 일부 경우에는 원래 비디오 프레임보다 더 효율적으로 압축될 수 있는데, 이는 예를 들어 실질적으로 0에 가까운 작은 값으로 구성될 수 있기 때문이다. 따라서 광학 흐름 및 잔차 비디오 프레임 측면에서 비디오 프레임을 표현하면 비디오를 충실도 높게 재구성하는 동시에 비디오를 효율적으로 압축할 수 있다.
압축 시스템에는 적대적 손실을 사용하여 트레이닝된 신경망이 포함될 수 있다. 적대적 손실은 압축 시스템이 예를 들어 기존 시스템을 사용하여 비디오 데이터를 압축 해제할 때 자주 발생하는 부자연스러운 아티팩트가 없는 현실적인 비디오 데이터를 생성하기 위해 재구성될 수 있는 압축된 비디오 데이터를 생성하도록 장려한다.
본 명세서의 주제에 대한 하나 이상의 실시예의 세부 사항은 첨부 도면 및 아래 설명에서 설명된다. 주제의 다른 특징, 측면 및 이점은 설명, 도면 및 청구범위로부터 명백해질 것이다.
도 1은 예시적인 압축 시스템을 도시한다.
도 2는 예시적인 P-프레임 압축 시스템을 도시한다.
도 3은 비디오를 압축하기 위한 예시적인 프로세스의 흐름도이다.
도 4는 예시적인 압축 해제 시스템을 도시한다.
도 5는 예시적인 P-프레임 압축 해제 시스템을 도시한다.
도 6은 비디오를 압축 해제하기 위한 예시적인 프로세스의 흐름도이다.
도 7은 예시적인 트레이닝 시스템을 도시한다.
다양한 도면에서의 유사한 참조 번호 및 명칭은 유사한 요소를 나타낸다.
본 명세서는 비디오 데이터를 압축하기 위한 압축 시스템, 비디오 데이터를 압축 해제하기 위한 압축 해제 시스템, 및 압축 시스템과 압축 해제 시스템에 포함되는 신경망을 트레이닝하기 위한 트레이닝 시스템에 대해 설명한다. 압축 시스템은 도 1-3을 참조하여 더 자세히 설명되고, 압축 해제 시스템은 도 4-6을 참조하여 더 자세히 설명되며, 트레이닝 시스템은 도 7을 참조하여 더 자세히 설명된다.
도 1은 예시적인 압축 시스템(100)을 도시한다. 압축 시스템(100)은 아래에 설명된 시스템, 구성 요소 및 기술이 구현되는 하나 이상의 위치에 있는 하나 이상의 컴퓨터 상의 컴퓨터 프로그램으로 구현되는 시스템의 예이다.
압축 시스템(100)은 비디오 프레임(106)의 시퀀스, 예를 들어 106-A, 106-B, 106-C, 106-D 등을 포함하는 비디오(104)를 수신하도록 구성된다. 압축 시스템(100)은 비디오(104)를 처리하여 압축된 비디오 데이터(114), 즉, 원본 비디오보다 메모리에서 더 적은 공간을 차지하고(일부 경우, 한 자릿수 이상의 크기로) 원본 비디오(104)의 (대략적 또는 정확한) 재구성을 가능하게 하는 데이터를 생성한다. (일부 경우, 비디오(104)는 더 큰 비디오의 적절한 서브세트일 수 있는데, 예를 들어, 비디오(104)는 100,000개 이상의 프레임을 포함하는 더 큰 비디오의 처음 1,000개 프레임일 수 있다).
비디오는 임의의 적절한 수의 비디오 프레임(예를 들어, 10개의 비디오 프레임, 1,000개의 비디오 프레임 또는 1,000,000개의 비디오 프레임)을 가질 수 있다. 비디오의 각 비디오 프레임은 픽셀 어레이(예를 들어, 2차원(2D) 픽셀 어레이)로 표현될 수 있으며, 여기서 각 픽셀은 하나 이상의 숫자값(예를 들어, RGB(적색-녹색-청색) 값)으로 표시된다. 비디오는 임의의 적절한 소스로부터 획득될 수 있다. 예를 들어, 비디오는 압축 시스템에 의해 이용 가능하게 된 애플리케이션 프로그래밍 인터페이스(API)를 통해 사용자에 의해 압축 시스템(100)에 의해 제공될 수 있다. 또 다른 예로, 비디오는 메모리로부터 판독될 수 있다.
압축 시스템(100)에 의해 생성된 압축된 비디오 데이터(114)는 원본 비디오(104)를 재구성하기 위해 압축 해제 시스템에 의해 압축 해제될 수 있으며, 이는 도 4를 참조하여 아래에서 더 자세히 설명될 것이다. 생성된 후, 그 압축된 비디오 데이터(114)는 예를 들어 메모리에 저장되거나, 데이터 통신 네트워크(예를 들어, 인터넷)를 통해 전송되거나, 임의의 다른 적절한 목적에 사용될 수 있다.
압축 시스템(100)은 제1 비디오 프레임부터 시작하여 비디오 내의 비디오 프레임들을 순차적으로 압축함으로써 압축된 비디오 데이터(114)를 생성한다.
압축 시스템(100)은 다음에 각각 설명되는 I-프레임 압축 시스템(102), P-프레임 압축 시스템(200) 및 인코딩 엔진(112)을 포함한다.
I-프레임 압축 시스템(102)은 비디오(104)의 제1 비디오 프레임을 처리하여 (i) 제1 비디오 프레임을 나타내는 하나 이상의 레이턴트(latent)(110) 및 (ii) 제1 비디오 프레임의 재구성(108)을 생성한다. I-프레임 압축 시스템(102)에 의해 수행될 수 있는 예시적인 동작들은 도 3의 단계(302)를 참조하여 아래에서 더 자세히 설명된다.
제1 비디오 프레임 이후의 각 비디오 프레임에 대해, P-프레임 압축 시스템은 (i) 현재 비디오 프레임을 나타내는 하나 이상의 레이턴트성(110) 및 (ii) 현재 비디오 프레임의 재구성된 버전(108)을 포함하는 출력을 생성한다. P-프레임 압축 시스템(200)은 (i) 현재 비디오 프레임, (ii) 이전 비디오 프레임, 및 (iii) 이전 비디오 프레임의 재구성을 처리함으로써 출력을 생성한다. P-프레임 압축 시스템(200)의 예는 도 2를 참조하여 아래에서 더 자세히 설명된다.
인코딩 엔진(112)은 (예를 들어, 비디오의 제1 프레임에 대한) I-프레임 압축 시스템(102)과 각 (후속) 비디오 프레임(106)에 대한 P-프레임 압축 시스템(200)에 의해 생성된 각각의 레이턴트(110)를 처리하여 레이턴트(110)의 인코딩된 표현을 생성하도록 구성된다. 인코딩 엔진(112)은 엔트로피 인코딩 기술, 예를 들어 허프만 코딩 또는 산술 코딩과 같은 인코딩 기술을 사용하여 레이턴트(110)의 인코딩된 표현을 생성할 수 있다. 레이턴트(110)의 인코딩된 표현은 압축된 비디오 데이터(114)의 일부 또는 전부를 형성한다. 압축된 비디오 데이터(114)는 임의의 적절한 숫자 포맷, 예를 들어 비트 스트림, 즉 비트 시퀀스로 표현될 수 있다.
도 2는 예시적인 P-프레임 압축 시스템(200)을 도시한다. P-프레임 압축 시스템(200)은 아래에 설명된 시스템, 구성요소 및 기술이 구현되는 하나 이상의 위치의 하나 이상의 컴퓨터에 컴퓨터 프로그램으로 구현되는 시스템의 예이다.
비디오의 제1 비디오 프레임 이후의 각 비디오 프레임에 대해, P-프레임 압축 시스템(200)은 (i) 현재 비디오 프레임(220), (ii) 이전 비디오 프레임(218), 및 (iii) 이전 비디오 프레임의 재구성(212)을 포함하는 입력을 수신하도록 구성된다.
현재 비디오 프레임(220)과 이전 비디오 프레임(212)은 원본 비디오로부터 추출된다.
이전 비디오 프레임의 재구성(212)은 P-프레임 압축 시스템(200) 또는 I-프레임 압축 시스템(102)의 이전 출력으로서 획득된다. 보다 구체적으로, 현재 비디오 프레임(220)이 비디오의 제2 비디오 프레임이면, 이전 비디오 프레임의 재구성(212)은 I-프레임 압축 시스템의 이전 출력으로서 획득된다. 현재 비디오 프레임(220)이 비디오의 제2 비디오 프레임 뒤에 있으면, 이전 비디오 프레임의 재구성(212)은 P-프레임 압축 시스템(200)의 이전 출력으로서 획득된다.
P-프레임 압축 시스템(200)은 입력을 처리하여 (i) 흐름 레이턴트(206) 및 잔차(residual) 레이턴트(208)를 포함하는 현재 비디오 프레임(220)을 나타내는 레이턴트, 및 (ii) 현재 비디오 프레임의 재구성(216)을 생성한다. 현재 비디오 프레임을 나타내는 레이턴트은 도 1을 참조하여 설명된 바와 같이, 인코딩되어(예를 들어, 엔트로피 인코딩되어) 압축된 비디오 데이터의 일부를 형성한다. 현재 비디오 프레임의 재구성(216)은 다음 비디오 프레임을 나타내는 레이턴트 및 다음 비디오 프레임의 재구성을 생성할 때 사용하기 위해 P-프레임 압축 시스템(200)에 대한 입력으로서 후속적으로 제공된다.
P-프레임 압축 시스템은 다음에 설명되는 흐름 인코딩 엔진(202) 및 잔차 인코딩 엔진(112)을 포함한다.
흐름 인코딩 엔진(202)은 이전 비디오 프레임(218)과 현재 비디오 프레임(220) 사이의 광학 흐름를 정의하는 광학 흐름 데이터를 생성한다. 흐름 인코딩 엔진(202)은 광학 흐름 데이터를 처리하여 광학 흐름 데이터를 나타내는 흐름 레이턴트(206)을 생성한다. 흐름 인코딩 엔진(202)은 흐름 레이턴트(206)을 추가로 처리하여 광학 흐름 데이터("예측된 광학 흐름")의 재구성을 생성하고, 재구성된 광학 흐름 데이터를 사용하여 이전 비디오 프레임의 재구성(212)을 워핑(warp)하여 현재 프레임의 초기 재구성(210)("초기 예측 재구성")을 생성한다.
예를 들어, 현재 프레임의 흐름 레이턴트(206) 및 초기 재구성(210)을 생성하기 위해 흐름 인코딩 엔진(202)에 의해 수행될 수 있는 예시적인 동작들은 도 3을 참조하여 더 자세히 설명된다.
잔차 인코딩 엔진(112)은 (i) 현재 프레임(210)의 초기 재구성과 (ii) 현재 프레임(220) 사이의 차이로서 현재 잔차 프레임을 생성한다. 잔차 인코딩 엔진(112)은 현재 잔차 프레임(214)을 처리하여 현재 잔차 프레임(214)을 나타내는 잔차 레이턴트(208)를 생성한다. 잔차 인코딩 엔진(112)은 잔차 레이턴트를 추가로 처리하여 현재 잔차 프레임(214)의 재구성("잔차 예측")을 생성하고, 현재 잔차 프레임(214)의 재구성을 현재 프레임의 초기 재구성(210)과 결합하여 현재 프레임의 재구성(216)("예측된 재구성")을 생성하며 이는 "예측된 제2 프레임"으로 지칭될 수 있다.
예를 들어, 현재 프레임의 잔차 레이턴트(208) 및 재구성(216)을 생성하기 위해 잔차 인코딩 엔진(112)에 의해 수행될 수 있는 예시적인 동작들은 도 3을 참조하여 더 자세히 설명된다.
P-프레임 압축 시스템(200)은 인코딩될, 예를 들어 엔트로피 인코딩되고 비디오를 나타내는 압축 비디오 데이터에 포함될 흐름 레이턴트(206) 및 잔차 레이턴트(208)를 제공한다. P-프레임 압축 시스템(200)은 다음 비디오 프레임을 나타내는 레이턴트를 생성하는 것의 일부로서 처리하기 위한 현재 프레임의 재구성(216)을 제공한다.
도 3은 비디오를 압축하기 위한 예시적인 프로세스(300)의 흐름도이다. 편의상, 프로세스(300)는 하나 이상의 위치에 위치한 하나 이상의 컴퓨터 시스템에 의해 수행되는 것으로 설명될 것이다. 예를 들어, 본 명세서에 따라 적절히 프로그래밍된 압축 시스템, 예를 들어 도 1의 압축 시스템(100)이 프로세스(300)를 수행할 수 있다.
시스템은 비디오의 제1 비디오 프레임과 비디오의 제1 비디오 프레임의 재구성을 나타내는 레이턴트를 생성한다(302). 보다 구체적으로, 시스템은 편의상 I-프레임 인코더 신경망으로 지칭되는 신경망을 사용하여 비디오의 제1 비디오 프레임을 처리하여 비디오의 제1 비디오 프레임을 나타내는 레이턴트를 생성한다. 시스템은 특히 제1 비디오 프레임을 나타내는 레이턴트의 각 수치를 양자화함으로써 제1 비디오 프레임을 나타내는 레이턴트를 양자화한다. 그런 다음 시스템은 편의상 I-프레임 생성기 신경망이라고 지칭되는 신경망을 사용하여 제1 비디오 프레임을 나타내는 (양자화된) 레이턴트를 처리하여 비디오의 제1 비디오 프레임의 재구성을 생성한다. (I-프레임 인코더 신경망과 I-프레임 생성기 신경망은 오토인코더 신경망을 포괄적으로 정의하는 것으로 이해될 수 있다).
시스템은 제2 비디오 프레임부터 시작하여 비디오의 각 비디오 프레임에 대해 단계(304-312)를 순차적으로 수행한다. 편의상, 단계(304-312)는 비디오의 "현재" 비디오 프레임을 참조하여 수행되는 것으로 설명된다.
시스템은 현재 비디오 프레임에 대한 흐름 레이턴트를 생성한다(304). 보다 구체적으로, 흐름 레이턴트를 생성하기 위해, 시스템은 비디오의 이전 비디오 프레임과 현재 비디오 프레임 사이의 광학 흐름을 정의하는 광학 흐름 데이터를 생성한다. 시스템은 다양한 기술을 사용하여 광학 흐름 데이터를 생성할 수 있다. 예를 들어, 시스템은 트레이닝을 통해 구성된 편의상 흐름 예측 신경망이라고 지칭되는 신경망을 사용하여 이전 비디오 프레임과 현재 비디오 프레임을 처리하여 그 이전 비디오 프레임과 현재 비디오 프레임 사이의 광학 흐름을 정의하는 출력을 생성한다. 흐름 예측 신경망의 예는 Rico Jonschkowski 외, "비지도 광학 흐름에서 중요한 점", arXiv:2006.04902, 1(2):3, 2020을 참조하여 설명된다. 또 다른 예로서, 시스템은 Lucas-Kanade 방법을 사용하여 이전 비디오 프레임과 현재 비디오 프레임 사이의 광학 흐름을 생성할 수 있다.
이전 비디오 프레임과 현재 비디오 프레임 사이의 광학 흐름를 생성한 후, 시스템은 편의상 흐름 인코더 신경망이라고 지칭되는 신경망을 사용하여 광학 흐름을 정의하는 데이터를 처리하여 현재 비디오 프레임에 대한 잠재 흐름을 생성한다. 시스템은 특히 흐름 레이턴트의 각 수치를 양자화함으로써 또한 광학 흐름을 나타내는 흐름 레이턴트를 양자화한다.
시스템은 (양자화된) 흐름 레이턴트를 사용하여 현재 비디오 프레임의 초기 재구성을 생성한다(306). 보다 구체적으로, 시스템은 편의상 흐름 생성기 신경망이으로 지칭되는 신경망을 사용하여 흐름 레이턴트를 처리하여 이전 비디오 프레임과 현재 비디오 프레임 사이의 광학 흐름의 재구성을 생성한다. (흐름 인코더 신경망과 흐름 생성기 신경망은 오토인코더 신경망을 포괄적으로 정의하는 것으로 이해될 수 있다). 일부 구현에서, 재구성된 광학 흐름을 생성하는 것 외에도, 흐름 생성기 신경망은 신뢰도 마스크를 추가로 생성한다. 신뢰도 마스크는 이전 비디오 프레임의 각 픽셀에 대해 편의상 신뢰도 값이라고 지칭되는 개별 값을 포함한다. 직관적으로, 각 픽셀에 대해, 픽셀에 대한 신뢰도 값은 픽셀 근처에서 재구성된 광학 흐름의 정확도를 특징지을 수 있다.
시스템은 예를 들어 시스템에 의해 이전에 생성된 이전 비디오 프레임의 재구성을 획득하고, 재구성된 광학 흐름에 따라 이전 비디오 프레임의 재구성을 워핑하여 현재 비디오 프레임의 초기 재구성을 생성한다. 선택적으로, 현재 비디오 프레임의 초기 재구성을 생성하는 것의 일부로서, 시스템은 신뢰도 마스크에 따라 블러링 동작을 적용할 수 있다. 현재 비디오 프레임의 초기 재구성에서 각 픽셀에 적용되는 블러링 정도는 해당 픽셀의 신뢰도 값에으로 정의된다.
시스템은 임의의 적절한 워핑 기술을 사용하여 상기 재구성된 광학 흐름에 따라 이전 비디오 프레임의 재구성을 워핑할 수 있다. 예를 들어, 시스템은 현재 비디오 프레임의 초기 재구성을 다음과 같이 생성할 수 있다.
여기서 x'는 현재 비디오 프레임의 초기 재구성이고, x는 이전 비디오 프레임의 재구성이다. 는 재구성된 광학 흐름이고, σ는 신뢰도 마스크이고, 는 이중선형 또는 삼중선형 워핑 동작이며(예를 들어, E. Agustsson 외, "엔드-투-엔드 최적화된 비디오 압축을 위한 스케일-공간 흐름"", 컴퓨터 비전 및 패턴 인식에 관한 IEEE 회의 간행물, 페이지 8503-8512, 2020를 참조하여 설명됨), 는 신뢰도 마스크(σ)에 따라 스케일 공간 블러링 동작(즉, σ가 블러링 스케일을 정의하는 블러링 동작)을 정의한다.
시스템은 현재 비디오 프레임에 대한 잔차 레이턴트를 생성한다(308). 보다 구체적으로, 잔차 레이턴트를 생성하기 위해, 시스템은 (i) 현재 비디오 프레임과 (ii) 현재 비디오 프레임의 초기 재구성 사이의 차이(즉, 오류)로서 잔차 비디오 프레임을 생성한다. 예를 들어, 시스템은 현재 비디오 프레임의 초기 재구성으로부터 현재 비디오 프레임을 감산함으로써 잔차 비디오 프레임을 생성할 수 있다. 그런 다음, 시스템은 편의상 잔차 인코더 신경망으로 지칭되는 신경망을 사용하여 잔차 비디오 프레임을 처리하여 잔차 레이턴트를 생성한다. 시스템은 특히 잔차 레이턴트의 각 수치를 양자화함으로써 잔차 레이턴트를 양자화한다.
시스템은 현재 비디오 프레임의 재구성을 생성한다(310). 보다 구체적으로, 현재 비디오 프레임의 재구성을 생성하기 위해, 시스템은 편의상 잔차 생성기 신경망으로 지칭되는 신경망을 사용하여 현재 비디오 프레임에 대한 (양자화된) 잔차 레이턴트를 포함하는 입력을 처리하여 잔차 비디오 프레임의 재구성을 생성한다. (잔차 인코더 신경망과 잔차 생성기 신경망은 오토인코더 신경망을 포괄적으로 정의하는 것으로 이해될 수 있다).
일부 구현에서, 시스템은 편의상 현재 비디오 프레임의 초기 재구성을 나타내는 "자유" 레이턴트로 지칭되는 레이턴트를 생성한다. 예를 들어, 시스템은 인코더 신경망(예를 들어, I-프레임 인코더 신경망)을 사용하여 현재 비디오 프레임의 초기 재구성을 처리하여 자유 레이턴트를 생성할 수 있다. 그런 다음 시스템은 잔차 생성기 신경망에 의해 처리된 입력에 (i) 양자화된 잔차 레이턴트 및 (ii) 자유 레이턴트를 모두 포함하여 잔차 비디오 프레임의 재구성을 생성할 수 있다. 예를 들어, 시스템은 양자화된 잔차 레이턴트와 자유 레이턴트를 연결(concatenate)한 다음 그 연결을 잔차 생성기 신경망에 대한 입력으로 제공할 수 있다. 추가적으로 현재 비디오 프레임의 초기 재구성으로부터 추출된 자유 레이턴트를 공급하면 그 자유 레이턴트에 의해 제공되는 추가 정보 및 컨텍스트로 인해 잔차 비디오 프레임에서 합성된 세부 정보의 양이 크게 증가할 수 있다. 더욱이, 압축 해제 시스템이 현재 비디오 프레임의 초기 재구성으로부터 자유 레이턴트를 직접 계산할 수 있기 때문에 자유 레이턴트는 압축된 비디오 데이터로 인코딩될 필요가 없다(따라서 레이턴트는 "자유"이다).
재구성된 잔차 비디오 프레임을 생성한 후, 시스템은 (i) 재구성된 잔차 비디오 프레임, 및 (ii) 현재 비디오 프레임의 초기 재구성을 결합(예를 들어 합산)함으로써 현재 비디오 프레임의 재구성을 생성할 수 있다. 따라서, 재구성된 잔차 비디오 프레임은 이전 비디오 프레임의 재구성을 워핑함으로써 생성된 현재 비디오 프레임의 초기 재구성에서의 임의의 오류를 정정하는 것으로 이해될 수 있다. 현재 비디오 프레임이 마지막 비디오 프레임이 아닌 경우, 이어서 시스템은 예를 들어 단계(306)에서 설명한 바와 같이 현재 비디오 프레임의 재구성을 사용하여 다음 비디오 프레임의 초기 재구성을 생성한다.
시스템은 현재 비디오 프레임이 비디오내의 마지막 비디오 프레임인지를 결정한다(312).
현재 비디오 프레임이 비디오내의 최종 비디오 프레임이 아니라는 결정에 응답하여, 시스템은 다음 비디오 프레임으로 진행하고 단계(304)로 복귀한다.
현재 비디오 프레임이 최종 비디오 프레임이라고 결정하는 것에 응답하여, 시스템은 적어도 비디오 프레임을 나타내는 양자화된 레이턴트로부터 비디오를 나타내는 압축된 비디오 데이터를 생성한다(316). 보다 구체적으로, 시스템은 적어도 (i) 제1 비디오 프레임을 나타내는 양자화된 레이턴트, 및 (ii) 비디오의 제1 비디오 프레임 이후의 각 비디오 프레임에 대한 각각의 양자화된 흐름 레이턴트 및 양자화된 잔차 레이턴트로부터 상기 압축된 비디오 데이터를 생성한다.
예를 들어, 시스템은 엔트로피 인코딩 기술, 예를 들어 허프만 코딩 또는 산술 코딩을 사용하여 비디오 프레임을 나타내는 양자화된 레이턴트를 압축할 수 있다. 시스템은 가능한 양자화된 수치값 세트에 대해 미리 정의된 확률 분포를 사용하거나 양자화된 레이턴트에 기초하여 결정된 적응형 확률 분포를 사용하여 상기 양자화된 레이턴트를 압축할 수 있다. 엔트로피 인코딩을 위한 적응형 확률 분포를 결정하기 위한 예시적인 기술은 D. Minnen 외, "학습된 이미지 압축을 위한 공동 자동회귀 및 계층적 사전 확률", 신경 정보 처리 시스템의 발전, 페이지 10771-10780, 2018를 참조하여 설명된다. 비디오 프레임을 나타내는 양자화된 레이턴트의 엔트로피 인코딩된 표현은 비디오를 나타내는 압축된 비디오 데이터의 일부 또는 전부를 집합적으로 형성한다.
도 4는 예시적인 압축 해제 시스템(400)을 도시한다. 압축 해제 시스템(400)은 아래에 설명된 시스템, 구성요소 및 기술이 구현되는 하나 이상의 위치의 하나 이상의 컴퓨터에 컴퓨터 프로그램으로 구현되는 시스템의 예이다.
압축 해제 시스템(400)은 압축 시스템(100)에 의해 생성된 압축 비디오 데이터(114)를 처리하여 압축 비디오 데이터(114)에 의해 표현된 원본 비디오(104)를 재구성하도록 구성된다. 압축된 비디오 데이터(114)에는 도 3을 참조하여 전술한 바와 같이, 비디오내의 각 비디오 프레임에 대한 인코딩된(예를 들어, 엔트로피 인코딩된) 양자화된 레이턴트가 포함된다.
압축 해제 시스템(400)은 각각은 다음에 설명되는 디코딩 엔진(410), I-프레임 압축 해제 시스템(402) 및 P-프레임 압축 해제 시스템(404)을 포함한다.
디코딩 엔진(410)은 압축된 비디오 데이터(114)를 엔트로피 디코딩하여 비디오의 각 비디오 프레임에 대한 양자화된 레이턴트의 디코딩된 표현을 생성하도록 구성된다. 특히, 디코딩 엔진(410)은 비디오의 제1 프레임을 나타내는 I-프레임 레이턴트(408-A)와 비디오의 제1 비디오 프레임 이후의 각 비디오 프레임을 나타내는 각각의 P-프레임 레이턴트(408-B-D)를 생성한다. 비디오 프레임에 대한 P-프레임 레이턴트(408-B-D)는 도 3을 참조하여 전술한 바와 같이 흐름 레이턴트 및 잔차 레이턴트를 포함한다.
I-프레임 압축 해제 시스템(400)은 I-프레임 레이턴트(408-A)를 처리하여 비디오의 제1 비디오 프레임의 재구성(406)을 생성하도록 구성된다. 제1 비디오 프레임의 재구성을 생성하기 위해 I-프레임 압축 해제 시스템(400)에 의해 수행될 수 있는 예시적인 동작들은 도 6에 더 자세히 설명되어 있다.
비디오의 제1 비디오 프레임 이후의 각 비디오 프레임에 대해, P-프레임 압축 해제 시스템(400)은 (i) 이전 비디오 프레임의 재구성(406), 및 (ii) 현재 비디오 프레임에 대한 P-프레임 레이턴트(408-B-D)를 처리하여 현재 비디오 프레임의 재구성(406)을 생성하도록 구성된다. P-프레임 압축 해제 시스템(400)의 예는 도 5를 참조하여 더 자세히 설명된다.
비디오의 비디오 프레임의 재구성(406)은 원본 비디오(104)를 집합적으로 정의한다.
도 5는 예시적인 P-프레임 압축 해제 시스템(400)을 도시한다. P-프레임 압축 해제 시스템(400)은 아래에 설명된 시스템, 구성요소 및 기술이 구현되는 하나 이상의 위치의 하나 이상의 컴퓨터에 컴퓨터 프로그램으로 구현되는 시스템의 예이다.
P-프레임 압축 해제 시스템은 (i) 이전 비디오 프레임(512)의 재구성, 및 (ii) 현재 비디오 프레임에 대한 흐름 레이턴트(514) 및 잔차 레이턴트(516)를 처리함으로써 비디오 내의 현재 비디오 프레임의 재구성(506)을 생성하도록 구성된다.
이전 비디오 프레임의 재구성은 I-프레임 압축 해제 시스템 또는 P-프레임 압축 해제 시스템의 이전 출력으로서 획득된다. 더 구체적으로 말하면, 현재 비디오 프레임이 비디오의 제2 비디오 프레임인 경우, 이전 비디오 프레임(512)의 재구성은 I-프레임 압축 해제 시스템의 출력으로서 획득된다. 현재 비디오 프레임이 비디오의 제2 비디오 프레임 이후에 있는 경우, 이전 비디오 프레임(512)의 재구성은 P-프레임 압축 해제 시스템의 이전 출력을 획득한다.
P-프레임 압축 해제 시스템은 다음에 각각 설명되는 흐름 디코딩 엔진(502) 및 잔차 디코딩 엔진(504)을 포함한다.
흐름 디코딩 엔진(502)은 이전 비디오 프레임(512) 및 흐름 레이턴트(514)의 재구성을 처리하여 현재 비디오 프레임(508)의 초기 재구성을 생성하도록 구성된다. 보다 구체적으로, 흐름 디코딩 엔진(502)은 흐름 레이턴트를 처리하여 이전 비디오 프레임과 현재 비디오 프레임 사이의 광학 흐름의 재구성을 생성한다. 그런 다음 흐름 디코딩 엔진(502)은 광학 흐름에 따라 이전 비디오 프레임의 재구성을 워핑하여 현재 비디오 프레임(508)의 초기 재구성을 생성한다.
잔차 디코딩 엔진(504)은 잔차 레이턴트(516)를 처리하여 잔차 비디오 프레임(510)의 재구성을 생성하도록 구성된다.
그런 다음 P-프레임 압축 해제 시스템은 현재 비디오 프레임(508)의 초기 재구성을 잔차 비디오 프레임(510)의 재구성과 결합(예를 들어, 합산)하여 현재 비디오 프레임(506)의 재구성을 생성한다.
도 6은 비디오의 압축을 해제하기 위한 예시적인 프로세스(600)의 흐름도이다. 편의상, 프로세스(600)는 하나 이상의 위치에 위치한 하나 이상의 컴퓨터 시스템에 의해 수행되는 것으로 설명될 것이다. 예를 들어, 본 명세서에 따라 적절하게 프로그래밍된 압축 해제 시스템, 예를 들어 도 4의 압축 해제 시스템(400)이 프로세스(600)를 수행할 수 있다.
시스템은 비디오를 나타내는 압축된 비디오 데이터를 수신한다(602). 압축된 비디오 데이터는 예를 들어 데이터 통신 네트워크를 통해 수신되거나 예를 들어 메모리로부터 검색될 수 있다. 압축된 비디오 데이터는 예를 들어 도 3을 참조하여 설명된 바와 같이 압축 시스템에 의해 생성된다. 압축된 비디오 데이터는 비디오의 각 비디오 프레임에 대해, 비디오 프레임을 나타내는 하나 이상의 인코딩된(예를 들어, 엔트로피 인코딩된) 양자화된 레이턴트를 포함한다.
시스템은 비디오의 각 비디오 프레임에 대해, 압축된 비디오 데이터를 디코딩하여 비디오 프레임을 나타내는 하나 이상의 양자화된 레이턴트를 복구한다(604). 시스템은 예를 들어 임의의 적절한 엔트로피 디코딩 기술을 사용하여 비디오 프레임을 나타내는 양자화된 레이턴트를 디코딩할 수 있다. 제1 비디오 프레임 이후의 각 비디오 프레임에 대해 시스템은 비디오 프레임에 대해, (i) 양자화된 흐름 레이턴트 및 (ii) 양자화된 잔차 레이턴트를 디코딩한다.
시스템은 비디오의 제1 비디오 프레임의 재구성을 생성한다(606). 보다 구체적으로, 시스템은 I-프레임 생성기 신경망을 사용하여 제1 비디오 프레임을 나타내는 양자화된 레이턴트를 처리한다. I-프레임 생성기 신경망은 예를 들어 도 3의 단계 302를 참조하여 설명한 바와 같이, 압축 시스템에 의해 구현된 I-프레임 생성기 신경망과 동일한 파라미터 값을 공유한다.
시스템은 비디오의 제1 비디오 프레임 이후의 각 비디오 프레임에 대해 단계(608-612)를 수행한다. 편의상, 단계(608-612)는 "현재" 비디오 프레임을 참조하여 설명된다.
시스템은 현재 비디오 프레임에 대한 양자화된 흐름 레이턴트를 사용하여 현재 비디오 프레임의 초기 재구성을 생성한다(608). 보다 구체적으로, 시스템은 흐름 생성기 신경망을 사용하여 상기 양자화된 흐름 레이턴트를 처리하여 이전 비디오 프레임과 현재 비디오 프레임 사이의 광학 흐름의 재구성을 생성한다. 흐름 생성기 신경망은 예를 들어 도 3의 단계(306)를 참조하여 설명한 바와 같이 압축 시스템에 의해 구현된 흐름 생성기 신경망과 동일한 파라미터 값을 공유한다. 그런 다음 시스템은 재구성된 광학 흐름을 사용하여 이전 비디오 프레임의 재구성을 워핑하여 현재 비디오 프레임의 초기 재구성을 생성한다.
시스템은 현재 비디오 프레임의 초기 재구성 및 현재 비디오 프레임에 대한 잔차 레이턴트를 사용하여 현재 비디오 프레임의 재구성을 생성한다(610). 보다 구체적으로, 시스템은 잔차 생성기 신경망을 사용하여 현재 비디오 프레임에 대한 양자화된 잔차 레이턴트를 포함하는 입력을 처리하여 잔차 비디오 프레임의 재구성을 생성한다. 잔차 생성기 신경망은 예를 들어 도 3의 단계(310)를 참조하여 설명한 바와 같이, 압축 시스템에 의해 구현된 잔차 생성기 신경망과 동일한 파라미터 값을 공유한다. 일부 구현에서, 잔차 생성기 신경망에 대한 입력은 현재 비디오 프레임의 초기 재구성을 나타내는 자유 레이턴트를 더 포함한다. 시스템은 예를 들어 인코더 신경망, 예를 들어 도 3의 단계(302)를 참조하여 설명된 I-프레임 인코더 신경망을 사용하여 현재 비디오 프레임의 초기 재구성을 처리함으로써 자유 레이턴트를 생성할 수 있다.
잔차 비디오 프레임의 재구성을 생성한 후, 시스템은 (i) 잔차 비디오 프레임, 및 (ii) 현재 비디오 프레임의 초기 재구성을 사용하여 현재 비디오 프레임의 재구성을 생성한다. 예를 들어, 시스템은 잔차 비디오 프레임과 현재 비디오 프레임의 초기 재구성의 합으로 현재 비디오 프레임의 재구성을 생성할 수 있다.
시스템은 현재 비디오 프레임이 비디오의 마지막 비디오 프레임인지를 결정한다(612).
현재 비디오 프레임이 비디오의 마지막 비디오 프레임이 아닌 경우, 시스템은 다음 비디오 프레임으로 진행하고(614) 단계(608)로 복귀한다.
현재 비디오 프레임이 비디오의 마지막 비디오 프레임이인 경우, 시스템은 비디오의 각 비디오 프레임의 재구성을 포함하는 재구성된 비디오를 출력한다.
도 7은 예시적인 트레이닝 시스템(700)을 도시한다. 트레이닝 시스템(700)은 아래에 설명된 시스템, 구성요소 및 기술이 구현되는 하나 이상의 위치의 하나 이상의 컴퓨터에 컴퓨터 프로그램으로 구현되는 시스템의 예이다.
트레이닝 시스템은 목적 함수를 최적화하기 위해 트레이닝 비디오 세트에 대해 압축 시스템 및 압축 해제 시스템에 포함된 신경망을 트레이닝하도록 구성된다.
보다 구체적으로, 트레이닝 시스템은 I-프레임 인코더 신경망(EI), I-프레임 생성기 신경망(GI), 흐름 인코더 신경망(Eflow), 흐름 생성기 신경망(Gflow), 잔차 인코더 신경망(Eres) 및 잔차 생성기 신경망(Gres)을 트레이닝한다. EI, GI, Eflow, Gflow, Eres 및 Gres에 의해 수행되는 동작들은 예를 들어 도 3 및 도 6을 참조하여 위에서 설명되었으며, 이들은 도면에서 상대 크기로 표시된 용량을 갖는 컨벌루션 신경망을 사용하여 구현될 수 있다. 트레이닝 시스템은 다음에 좀 더 자세히 설명되는 바와 같이, I-프레임 판별기 신경망(DI) 및 P-프레임 판별기 신경망(DP)와 함께 압축 시스템과 압축 해제 시스템에 포함된 신경망을 공동으로 트레이닝한다. 점선으로 표시된 경로들은 디코딩 중에 활성화되지 않는데, DI와 DP는 트레이닝 중에만 활성화되고 SG는 정지 구배(gradient) 동작을 나타낸다.
비디오의 각 트레이닝에 대해, 트레이닝 시스템은 I-프레임 인코더 신경망을 사용하여 트레이닝 비디오 내의 제1 비디오 프레임을 처리하여 제1 비디오 프레임을 나타내는 양자화된 잠재성(yI)를 생성하고, 이어서 I-프레임 생성기 신경망을 사용하여 제1 비디오 프레임을 나타내는 양자화된 잠재성을 처리하여 제1 비디오 프레임의 재구성()를 생성할 수 있다. 그런 다음 트레이닝 시스템은 I-프레임 판별기 신경망을 사용하여 제1 비디오 프레임을 나타내는 레이턴트와 제1 비디오 프레임의 재구성을 처리하여 I-프레임 판별기 스코어를 생성한다. I-프레임 판별기 신경망은 비디오 프레임과 비디오 프레임을 나타내는 레이턴트를 처리하여, 입력 비디오 프레임이 I-프레임 생성기 신경망에 의해 생성되었을 가능성(likelihood, 우도)을 정의하는 I-프레임 판별기 스코어를 생성한다.
트레이닝 시스템은 I-프레임 인코더 신경망과 I-프레임 생성기 신경망을 트레이닝하여 예를 들어 다음과 같이 주어진 목적 함수를 최적화한다.
여기서 λ 및 β는 하이퍼 파라미터이고, 는 제1 비디오 프레임과 그 제1 비디오 프레임의 재구성 사이의 거리(예를 들어, L1 또는 L2 거리)를 측정하고, 는 제1 비디오 프레임의 재구성과 제1 비디오 프레임을 나타내는 레이턴트를 처리함으로써 I-프레임 판별기 신경망에 의해 생성된 I-프레임 판별기 스코어를 나타내고, R(yI)는 제1 비디오 프레임을 나타내는 레이턴트를 저장하는데 필요한 비트(비트 전송률)를 나타낸다. 판별기 스코어에 따라 달라지는 목적 함수의 항은 적대적 손실 항이라고 지칭될 수 있다. (적대적 손실이 포함된 목적 함수를 이용하여 트레이닝한 결과, I-프레임 인코더 신경망과 I-프레임 생성기 신경망은 생성형 적대적 신경망을 집합적으로 정의하는 것으로 이해될 수 있다).
트레이닝 시스템은 I-프레임 판별기 신경망을 트레이닝하여 예를 들어 다음과 같이 주어진 목적 함수를 최적화한다.
여기서 는 제1 비디오 프레임의 재구성과 제1 비디오 프레임을 나타내는 레이턴트를 처리함으로써 I-프레임 판별기 신경망에 의해 생성된 I-프레임 판별기 스코어를 나타내고, 는 제1 비디오 프레임과 제1 비디오 프레임을 나타내는 레이턴트를 처리함으로써 I-프레임 판별기 신경망에 의해 생성된 I-프레임 판별기 스코어를 나타낸다.
제1 비디오 프레임 이후의 각 비디오 프레임에 대해, 트레이닝 시스템은 (예를 들어, 흐름 예측 신경망(UFlow)을 사용하여) 현재 비디오 프레임과 이전 비디오 프레임 사이에 광학 흐름(Ft)을 생성하고, 흐름 인코더 신경망을 사용하여 광학 흐름 데이터를 처리하여 광학 흐름을 나타내는 양자화된 흐름 레이턴트(yt,f)을 생성하고, 흐름 생성기 신경망을 사용하여 양자화된 광학 흐름 잼재성을 처리하여 재구성된 광류 데이터()와 신뢰도 마스크(σt)를 생성한다. 그런 다음 트레이닝 시스템은 이전 비디오 프레임의 재구성(), 재구성된 광학 흐름 데이터, 및 적응형 블러링을 사용한 워핑 동작을 사용한 신뢰도 마스크를 처리하여 현재 비디오 프레임의 초기 재구성()를 생성한다.
트레이닝 시스템은 현재 비디오 프레임과 현재 비디오 프레임의 초기 재구성 간의 차이로서 잔차 비디오 프레임(rt)를 생성하고, 잔차 인코더 신경망을 사용하여 잔차 비디오 프레임을 처리함으로써 양자화된 잔차 레이턴트를 생성하고, 잔차 생성기 신경망을 사용하여 잔차 레이턴트를 포함하는 입력을 처리함으로써 잔차 비디오 프레임의 재구성()을 생성한다. 선택적으로, 트레이닝 시스템은 I-프레임 인코더 신경망을 사용하여 현재 비디오 프레임의 초기 재구성을 처리하여 현재 비디오 프레임의 초기 재구성을 나타내는 자유 레이턴트()를 생성하고, 잔차 생성기 신경망의 입력에 자유 레이턴트를 포함할 수 있다. 트레이닝 시스템은 현재 비디오 프레임의 초기 재구성과 잔차 비디오 프레임의 재구성을 합산함으로써 현재 비디오 프레임의 재구성()을 생성할 수 있다.
그런 다음 트레이닝 시스템은 P-프레임 판별기 신경망(DP)을 사용하여 현재 비디오 프레임의 재구성과 잔차 생성기 신경망에 대한 입력을 처리하여 P-프레임 판별기 스코어를 생성한다. P-프레임 판별기 신경망은 비디오 프레임을 포함하는 입력을 처리하여 입력 비디오 프레임이 흐름 생성기 신경망 및 잔차 생성기 신경망을 사용하여 생성되었을 가능성을 정의하는 P-프레임 판별기 스코어를 생성하도록 구성된다. 일부 구현에서는 I-프레임 판별기 신경망과 P-프레임 판별기 신경망 모두 스펙트럼 정규화를 사용할 수 있다.
트레이닝 시스템은 흐름 인코더 신경망, 흐름 생성기 신경망, 잔차 인코더 신경망 및 잔차 생성기 신경망을 트레이닝하여 다음과 같이 주어진 목적 함수를 최적화한다.
여기서 t는 제2 비디오 프레임부터 마지막 비디오 프레임까지의 비디오 프레임을 인덱싱하고, T는 비디오 프레임 수이고, λ, β, kflow 및 kTV는 하이퍼 파라미터이고, 는 t-비디오 프레임(xt) 및 t번째 비디오 프레임의 재구성() 사이의 오류를 나타내며, 는 t번째 비디오 프레임의 재구성과 그 t번째 비디오 프레임에 대한 잔차 생성기 신경망의 입력을 처리함으로써 P-프레임 판별기 신경망에 의해 생성된 P-프레임 판별기 스코어를 나타낸다. SG(σt)는 t번째 비디오 프레임에 대한 신뢰도 마스크(σt)에 작용하는 정지 구배(stop-gradient) 연산을 나타내고, 는 t번째 비디오 프레임에 대한 광학 흐름과 t번째 비디오 프레임에 대한 재구성된 광학 흐름 사이의 L2 오차를 나타내고, TV(σt)는 σt의 총 변화량을 나타내고, R(yt,r)은 비디오 프레임(xt)을 나타내는 레이턴트를 저장하는데 필요한 비트 수(비트 전송률)를 나타낸다. 판별기 스코어에 따라 달라지는 목적 함수의 항은 적대적 손실 항으로 지칭될 수 있다. (적대적 손실이 포함된 목적 함수를 사용한 트레이닝한 결과, 잔차 인코더 신경망과 잔차 생성자 신경망은 생성형 적대적 신경망을 집합적으로 정의하는 것으로 이해될 수 있다.
트레이닝 시스템은 P-프레임 판별기 신경망을 트레이닝하여 다음과 같이 주어진목적 함수를 최적화한다.
여기서 t는 제2 비디오 프레임부터 마지막 비디오 프레임까지의 비디오 프레임을 인덱싱하고, T는 비디오 프레임 수이고, 는 P-프레임 판별기 신경망을 사용하여 t번째 비디오 프레임의 재구성()과 잔차 생성기 신경망의 입력(yt,r)을 처리함으로써 생성된 P-프레임 판별기 스코어이며, 는 P-프레임 판별기 신경망을 사용하여 t번째 비디오 프레임(xt)과 잔차 생성 신경망의 입력(yt,r)을 처리함으로써 생성된 P-프레임 판별기 스코어이다.
트레이닝 시스템은 광학 흐름 예측을 수행하기 위해 흐름 예측 신경망(UFlow)을 사전 트레이닝할 수 있으며 선택적으로 압축 및 압축 해제 시스템에 포함된 다른 신경망을 트레이닝하는 동안 흐름 예측 신경망의 파라미터 값을 고정할 수 있다.
본 명세서는 시스템 및 컴퓨터 프로그램 구성 요소와 관련하여 "구성된"이라는 용어를 사용한다. 하나 이상의 컴퓨터로 구성된 시스템이 특정 동작들이나 액션들을 수행하도록 구성된다는 것은 시스템에 소프트웨어, 펌웨어, 하드웨어 또는 동작시 시스템으로 하여금 동작들이나 액션들을 수행하게 하는 이들의 조합이 설치되어 있음을 의미한다. 하나 이상의 컴퓨터 프로그램이 특정 동작들이나 액션들을 수행하도록 구성된다는 것은 하나 이상의 프로그램이 데이터 처리 장치에 의해 실행될 때 해당 장치로 하여금 동작들이나 액션들을 수행하게 하는 명령들을 포함한다는 것을 의미한다.
본 명세서에 기술된 주제 및 기능적 동작의 실시예는 디지털 전자 회로, 유형으로 구현된 컴퓨터 소프트웨어 또는 펌웨어, 본 명세서에 개시된 구조 및 그의 구조적 등가물을 포함하는 컴퓨터 하드웨어, 또는 이들 중 하나 이상의 조합으로 구현될 수 있다. 본 명세서에 설명된 주제의 실시예는 하나 이상의 컴퓨터 프로그램, 즉 데이터 처리 장치에 의해 실행되거나 데이터 처리 장치의 동작을 제어하기 위해 유형의 비-일시적 저장 매체에 인코딩된 컴퓨터 프로그램 명령의 하나 이상의 모듈로 구현될 수 있다. 컴퓨터 저장 매체는 기계 판독 가능 저장 디바이스, 기계 판독 가능 저장 기판, 랜덤 또는 직렬 액세스 메모리 디바이스, 또는 이들 중 하나 이상의 조합일 수 있다. 대안적으로 또는 추가적으로, 프로그램 명령은 데이터 처리 장치에 의한 실행을 위해 적절한 수신기 장치로 전송하기 위한 정보를 인코딩하기 위해 생성된 인공적으로 생성된 전파 신호, 예를 들어 기계 생성 전기, 광학 또는 전자기 신호에 인코딩될 수 있다.
"데이터 처리 장치"라는 용어는 데이터 처리 하드웨어를 지칭하며, 예를 들어 프로그램 가능 프로세서, 컴퓨터 또는 다중 프로세서 또는 컴퓨터를 비롯하여 데이터를 처리하기 위한 모든 종류의 장치, 디바이스 및 기계를 포함한다. 장치는 또한 특수 목적 논리 회로, 예를 들어 FPGA(필드 프로그램 가능 게이트 어레이) 또는 주문형 집적회로(ASIC)일 수 있거나 이를 더 포함할 수 있다. 장치는 하드웨어에 추가하여 컴퓨터 프로그램의 실행 환경을 생성하는 코드(예를 들어, 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제 또는 이들 중 하나 이상의 조합을 구성하는 코드)를 선택적으로 포함할 수 있다.
프로그램, 소프트웨어, 소프트웨어 애플리케이션, 앱, 모듈, 소프트웨어 모듈, 스크립트 또는 코드라고도 지칭되거나 설명될 수 있는 컴퓨터 프로그램은 컴파일된 언어나 해석된 언어, 선언적 언어나 절차적 언어를 포함한 모든 형태의 프로그래밍 언어로 작성될 수 있으며, 독립 실행형 프로그램, 모듈, 구성 요소, 서브루틴 또는 컴퓨팅 환경에서 사용하기에 적합한 기타 유닛을 포함하여 모든 형태로 배포될 수 있다. 프로그램은 파일 시스템의 파일에 해당할 수 있지만 반드시 그럴 필요는 없다. 프로그램은 다른 프로그램이나 데이터를 보유하는 파일의 일부(예를 들어, 마크업 언어 문서에 저장된 하나 이상의 스크립트), 해당 프로그램 전용 단일 파일 또는 다수의 조정된 파일(예를 들어, 하나 이상의 모듈, 하위 프로그램 또는 코드 일부를 저장하는 파일)에 저장될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터 또는 하나의 사이트에 위치하거나 다수의 사이트에 걸쳐 분산되고 데이터 통신 네트워크로 상호 연결된 다수의 컴퓨터에서 실행되도록 배포될 수 있다.
본 명세서에서 "엔진"이라는 용어는 하나 이상의 특정 기능을 수행하도록 프로그래밍된 소프트웨어 기반 시스템, 서브시스템 또는 프로세스를 지칭하는데 광범위하게 사용된다. 일반적으로, 엔진은 하나 이상의 위치에 있는 하나 이상의 컴퓨터에 설치된 하나 이상의 소프트웨어 모듈 또는 구성 요소로 구현된다. 일부 경우, 하나 이상의 컴퓨터는 특정 엔진 전용으로 사용되고 다른 경우에서는 다수의 엔진이 동일한 컴퓨터 또는 컴퓨터들에 설치되어 실행될 수 있다.
본 명세서에 설명된 프로세스 및 논리 흐름은 입력 데이터에 대해 작동하고 출력을 생성함으로써 기능을 수행하는 하나 이상의 컴퓨터 프로그램을 실행하는 하나 이상의 프로그래밍 가능한 컴퓨터에 의해 수행될 수 있다. 프로세스 및 논리 흐름은 FPGA 또는 ASIC과 같은 특수 목적 논리 회로에 의해 수행되거나 특수 목적 논리 회로와 하나 이상의 프로그래밍된 컴퓨터의 조합에 의해 수행될 수도 있다.
컴퓨터 프로그램 실행에 적합한 컴퓨터는 범용 또는 특수 목적의 마이크로프로세서 또는 둘 다를 기반으로 하거나 다른 종류의 중앙 처리 장치를 기반으로 할 수 있다. 일반적으로, 중앙 처리 유닛(장치)은 판독 전용 메모리나 랜덤 액세스 메모리 또는 둘 다로부터 명령과 데이터를 수신한다. 컴퓨터의 필수 요소는 명령을 수행하거나 실행하는 중앙 처리 유닛과 명령 및 데이터를 저장하는 하나 이상의 메모리 디바이스이다. 중앙 처리 유닛과 메모리는 특수 목적 논리 회로에 의해 보완되거나 통합될 수 있다. 일반적으로, 컴퓨터는 또한 데이터를 저장하기 위한 하나 이상의 대용량 저장 디바이스, 예를 들어 자기, 광자기 디스크 또는 광 디스크로부터 데이터를 수신하거나 전송하거나 둘 모두를 포함하거나 작동 가능하게 결합될 것이다. 그러나, 컴퓨터에 이러한 디바이스들이 있을 필요는 없다. 더욱이, 컴퓨터는 다른 디바이스, 예를 들어 휴대폰, PDA, 모바일 오디오 또는 비디오 플계층, 게임 콘솔, GPS 수신기, 또는 휴대용 저장 디바이스(예를 들어, USB(범용 직렬 버스) 플래시 드라이브) 등에 내장될 수 있다.
컴퓨터 프로그램 명령 및 데이터를 저장하는데 적합한 컴퓨터 판독 가능 매체에는 예를 들어 반도체 메모리 디바이스(예를 들어, EPROM, EEPROM 및 플래시 메모리 디바이스); 자기 디스크(예를 들어, 내부 하드 디스크 또는 이동식 디스크); 광자기 디스크; CD ROM 및 DVD-ROM 디스크를 비롯하여 모든 형태의 비휘발성 메모리, 매체 및 메모리 디바이스가 포함된다.
사용자와의 상호 작용을 제공하기 위해, 본 명세서에 설명된 주제의 실시예는 정보를 표시하기 위한 디스플레이 디바이스(예를 들어, CRT(음극선관) 또는 LCD(액정 디스플레이) 모니터)와 사용자가 컴퓨터에 입력을 제공할 수 있는 키보드 및 포인팅 디바이스(예를 들어, 마우스 또는 트랙볼)를 갖춘 컴퓨터에서 구현될 수 있다. 사용자와의 상호작용을 제공하기 위해 다른 종류의 장치도 사용될 수 있는데, 예를 들어, 사용자에게 제공되는 피드백은 시각적 피드백, 청각 피드백 또는 촉각 피드백과 같은 임의의 형태의 감각 피드백일 수 있고, 사용자로부터의 입력은 음향, 음성 또는 촉각 입력을 포함한 모든 형태로 수신될 수 있다. 더욱이, 컴퓨터는 사용자가 사용하는 디바이스와 문서를 주고받는 방식으로 사용자와 상호 작용할 수 있는데, 예를 들어, 웹 브라우저에서 받은 요청에 대한 응답으로 사용자 디바이스의 웹 브라우저로 웹 페이지를 보낸다. 또한, 컴퓨터는 문자 메시지 또는 다른 형태의 메시지를 개인 디바이스(예를 들어, 메시징 애플리케이션을 실행하는 스마트폰)로 전송하고 그 대가로 사용자로부터 응답 메시지를 수신함으로써 사용자와 상호 작용할 수 있다.
기계 학습 모델을 구현하기 위한 데이터 처리 장치는 또한 예를 들어, 기계 학습 트레이닝 또는 생산의 공통적이고 컴퓨팅 집약적인 부분, 즉 추론, 워크로드를 처리하기 위한 특수 목적 하드웨어 가속기 유닛을 포함할 수 있다.
기계 학습 모델은 기계 학습 프레임워크 예를 들어, TensorFlow 프레임워크를 사용하여 구현 및 배포될 수 있다.
본 명세서에 설명된 주제의 실시예는 백엔드 구성요소(예를 들어, 데이터 서버)를 포함하거나, 미들웨어 구성 요소(예를 들어, 애플리케이션 서버)를 포함하거나, 프런트엔드 구성 요소(예를 들어, 사용자가 본 명세서에 설명된 주제의 구현과 상호 작용할 수 있는 그래픽 사용자 인터페이스, 웹 브라우저 또는 앱을 갖춘 클라이언트 컴퓨터)를 포함하거나, 또는 백엔드, 미들웨어 또는 프런트엔드 구성 요소 중 하나 이상의 조합을 포함하는 컴퓨팅 시스템에서 구현될 수 있다. 시스템의 구성 요소는 통신 네트워크와 같은 디지털 데이터 통신의 모든 형태나 매체를 통해 상호 연결될 수 있다. 통신 네트워크의 예로는 근거리 통신망(LAN) 및 광역 통신망(WAN), 예를 들어 인터넷이 포함된다.
컴퓨팅 시스템에는 클라이언트와 서버가 포함될 수 있다. 클라이언트와 서버는 일반적으로 서로 멀리 떨어져 있으며 일반적으로 통신 네트워크를 통해 상호 작용한다. 클라이언트와 서버의 관계는 각 컴퓨터에서 실행되고 서로 클라이언트-서버 관계를 갖는 컴퓨터 프로그램으로 인해 발생한다. 일부 실시예에서, 서버는 예를 들어 클라이언트 역할을 하는 장치와 상호 작용하는 사용자에게 데이터를 디스플레이하고 사용자 입력을 수신할 목적으로 데이터(예를 들어, HTML 페이지)를 사용자 디바이스로 전송한다. 사용자 디바이스에서 생성된 데이터(예를 들어, 사용자 상호 작용의 결과)는 디바이스로부터 서버에 수신될 수 있다.
본 명세서에는 많은 구체적인 구현 세부 정보가 포함되어 있지만, 이는 임의의 발명의 범위 또는 청구될 수 있는 범위에 대한 제한으로 해석되어서는 안 되며, 오히려 특정 발명의 특정 실시예에 특정할 수 있는 특징들에 대한 설명으로 해석되어야 한다. 별도의 실시예와 관련하여 본 명세서에 설명된 특정 특징은 단일 실시예에서 조합하여 구현될 수도 있다. 반대로, 단일 실시예의 맥락에서 설명된 다양한 특징은 다수의 실시예에서 개별적으로 또는 임의의 적절한 하위 조합으로 구현될 수도 있다. 더욱이, 위에서는 특징들이 특정 조합으로 작용하는 것으로 설명될 수 있고 심지어 처음에는 그렇게 주장되었을 수도 있지만, 청구된 조합의 하나 이상의 특징은 경우에 따라 조합에서 삭제될 수 있으며, 청구된 조합은 하위 조합 또는 하위 조합의 변형과 관련될 수 있다.
유사하게, 동작들은 특정 순서로 도면에 묘사되고 청구범위에 기재되어 있지만, 이는 원하는 결과를 달성하기 위해 그러한 동작들이 표시된 특정 순서 또는 순차적 순서로 수행되거나 모든 설명된 동작이 수행되어야 한다고 요구하는 것으로 이해되어서는 안 된다. 특정 상황에서는 멀티태스킹과 병렬 처리가 유리할 수 있다. 더욱이, 전술한 실시예에서 다양한 시스템 모듈 및 구성요소의 분리는 모든 실시예에서 그러한 분리를 요구하는 것으로 이해되어서는 안 되며, 설명된 프로그램 구성 요소 및 시스템은 일반적으로 단일 소프트웨어 제품에 함께 통합되거나 다수의 소프트웨어 제품에 패키지될 수 있다는 점을 이해해야 한다.
주제의 특정 실시예들이 설명되었다. 다른 실시예는 다음 청구범위의 범위 내에 있다. 예를 들어, 청구범위에 인용된 동작들은 다른 순서로 수행될 수 있으며 여전히 원하는 결과를 얻을 수 있다. 일 예로서, 첨부 도면에 도시된 프로세스는 바람직한 결과를 달성하기 위해 도시된 특정 순서 또는 순차적 순서를 반드시 필요로 하는 것은 아니다. 일부 경우에는 멀티태스킹과 병렬 처리가 유리할 수 있다.

Claims (20)

  1. 데이터 처리 장치에 의해 수행되는 비디오 압축 방법에 있어서,
    프레임의 비디오 시퀀스를 수신하는 단계와;
    흐름 예측 네트워크를 사용하여, 2개의 연속 프레임 사이의 광학 흐름을 생성하는 단계 - 2개의 연속 프레임은 제1 프레임과 그 제1 프레임에 후속하는 제2 프레임을 포함함 - 와;
    제1 오토인코더 신경망을 사용하여 광학 흐름으로부터, 제1 프레임과 제2 프레임 사이의 예측(predicted) 광학 흐름, 및 신뢰도 마스크를 생성하는 단계와;
    예측 광학 흐름에 따라 제1 프레임의 재구성을 워핑(warping)하고 이어서 제2 프레임의 초기 예측 재구성을 획득하기 위해 신뢰도 마스크에 따라 블러링 동작을 적용하는 단계와;
    제2 오토인코더 신경망을 사용하여, 제2 프레임과 그 제2 프레임의 초기 예측 재구성 간의 차이인 잔차의 예측을 생성하는 단계와;
    제2 프레임의 초기 예측 재구성과 잔차 예측을 결합하여 예측 제2 프레임을 획득하는 단계를 포함하고,
    제1 및 제2 오토인코더 신경망 각각은 인코더 네트워크와 생성기 네트워크를 각각 포함하고; 그리고
    제2 오토인코더 신경망의 생성기 네트워크는 생성형 적대적 신경망(GANN)의 구성 요소인 것을 특징으로 하는 비디오 압축 방법.
  2. 제1항에 있어서,
    상기 제1 프레임과 제2 프레임은 제3 프레임에 후속하고, 그리고 제3 프레임은 비디오 시퀀스의 초기 프레임이고; 그리고
    제2 및 제3 프레임을 처리하기 전에:
    제3 오토인코더 신경망을 사용하여 제3 프레임으로부터, 제3 프레임의 예측 재구성을 생성하는 단계와;
    흐름 예측 네트워크를 사용하여, 제3 프레임과 제1 프레임 사이의 광학 흐름을 생성하는 단계와;
    제1 오토인코더 신경망을 사용하여 광학 흐름으로부터, 제3 프레임과 제1 프레임 사이의 예측 광학 흐름; 및 신뢰도 마스크를 생성하는 단계와;
    예측 광학 흐름에 따라 제3 프레임의 재구성을 워핑하고 이어서 제1 프레임의 초기 예측 재구성을 획득하기 위해 신뢰도 마스크에 따라 블러링 동작을 적용하는 단계와;
    제2 오토인코더 신경망을 사용하여, 제1 프레임과 그 제1 프레임의 초기 예측 재구성 간의 차이인 잔차의 예측을 생성하는 단계와; 그리고
    제1 프레임의 초기 예측 재구성과 잔차 예측을 결합하여 예측 제1 프레임을 획득하는 단계를 더 포함하고,
    제3 오토인코더 신경망은 인코더 네트워크와 생성기 네트워크를 포함하고;
    제3 오토인코더 신경망의 제3 생성기 네트워크는 생성형 적대적 신경망(GANN)의 구성 요소인 것을 특징으로 하는 비디오 압축 방법.
  3. 제1항에 있어서,
    제2 오토인코더 신경망을 사용하여, 잔차 레이턴트(residual latent)를 획득하기 위해 잔차를 인코딩하는 단계와;
    제3 인코더 신경망을 사용하여, 제2 프레임의 초기 예측을 인코딩함으로써 자유 레이턴트를 획득하는 단계와; 그리고
    자유 레이턴트와 잔차 레이턴트를 연결하는 단계를 더 포함하고;
    상기 제2 오토인코더 신경망을 사용하여 잔차의 예측을 생성하는 단계는 자유 레이턴트와 잔차 레이턴트의 연결을 사용하여 제2 오토인코더 신경망에 의해 예측 잔차를 생성하는 단계를 포함하는 것을 특징으로 하는 비디오 압축 방법.
  4. 제3항에 있어서,
    잔차 레이턴트의 양자화를 엔트로피 인코딩하는 단계를 더 포함하고, 상기 잔차 레이턴트의 엔트로피 인코딩된 양자화는 비디오를 나타내는 압축된 비디오 데이터에 포함되는 것을 특징으로 하는 비디오 압축 방법.
  5. 제3항 내지 제4항 중 어느 한 항에 있어서,
    상기 잔차 레이턴트를 획득하기 위해 잔차를 인코딩하는 단계는,
    제2 오토인코더 신경망의 인코더 신경망을 사용하여 잔차를 처리하여 잔차 레이턴트를 생성하는 단계를 포함하는 것을 특징으로 하는 비디오 압축 방법.
  6. 제3항 내지 제5항 중 어느 한 항에 있어서,
    상기 제2 프레임의 초기 예측을 인코딩함으로써 자유 레이턴트를 획득하는 단계는,
    인코더 신경망을 사용하여 제2 프레임의 초기 예측을 처리하여 자유 레이턴트를 생성하는 단계를 포함하는 것을 특징으로 하는 비디오 압축 방법.
  7. 제3항 내지 제6항 중 어느 한 항에 있어서,
    상기 잔차의 예측을 생성하는 단계는,
    제2 오토인코더 신경망의 생성 신경망을 사용하여 자유 레이턴트와 잔차 레이턴트의 연결을 처리하여 잔차의 예측을 생성하는 단계를 포함하는 것을 특징으로 하는 비디오 압축 방법.
  8. 제1항 내지 제7항 중 어느 한 항에 있어서,
    상기 제2 프레임의 초기 예측 재구성과 잔차의 예측을 결합하여 예측 제2 프레임을 획득하는 단계는,
    제2 프레임의 초기 예측 재구성과 잔차 예측을 합산함으로써 예측 제2 프레임을 생성하는 단계를 포함하는 것을 특징으로 하는 비디오 압축 방법.
  9. 제1항에 있어서,
    상기 제1 프레임과 제2 프레임 사이의 예측 광학 흐름을 생성하는 단계는,
    제1 오토인코더 네트워크의 인코더 네트워크를 사용하여 흐름 예측 네트워크에 의해 생성된 광학 흐름을 처리하여 광학 흐름을 나타내는 흐름 레이턴트를 생성하는 단계와; 그리고
    제1 오토인코더 신경망의 생성 신경망을 사용하여 흐름 레이턴트의 양자화를 처리하여 예측 광학 흐름을 생성하는 단계를 포함하는 것을 특징으로 하는 비디오 압축 방법.
  10. 제9항에 있어서,
    흐름 레이턴트의 양자화를 엔트로피 인코딩하는 단계를 더 포함하고, 상기 흐름 레이턴트의 엔트로피 인코딩된 양자화는 비디오를 나타내는 압축된 비디오 데이터에 포함되는 것을 특징으로 하는 비디오 압축 방법.
  11. 제1항 내지 제10항 중 어느 한 항에 있어서,
    상기 제1 및 제2 오토인코더 신경망은,
    적대적 손실을 포함하는 목적 함수를 최적화하기 위해 트레이닝 비디오 세트에 대해 트레이닝된 것임을 특징으로 하는 비디오 압축 방법.
  12. 제11항에 있어서,
    상기 각각의 트레이닝 비디오의 하나 이상의 비디오 프레임에 대해, 적대적 손실은 판별기 스코어에 기초하고, 상기 판별기 스코어는,
    판별기 신경망에 대한 입력을 생성하는 단계 - 입력은 제1 및 제2 오토인코더 신경망을 사용하여 생성된 비디오 프레임의 재구성을 포함함 - 와; 그리고
    판별기 신경망에 입력을 제공하는 단계를 포함하는 동작들에 의해 생성되고,
    상기 판별기 신경망은,
    입력 비디오 프레임을 포함하는 입력을 수신하고; 그리고
    입력을 처리하여 비디오 프레임이 제1 및 제2 오토인코더 신경망을 사용하여 생성되었을 가능성을 정의하는 출력 판별기 스코어를 생성하도록 구성되는 것을 특징으로 하는 비디오 압축 방법.
  13. 하나 이상의 컴퓨터에 의해 수행되는 비디오 압축해제 방법으로서, 상기 방법은,
    비디오의 압축(compressed) 표현을 수신하는 단계 - 비디오의 압축 표현은 비디오의 제1 비디오 프레임 이후의 각 비디오 프레임에 대해, 이전 비디오 프레임과 비디오 프레임 사이의 광학 흐름을 나타내는 양자화된 흐름 레이턴트를 정의함 - 와; 그리고
    비디오의 각 비디오 프레임의 재구성을 생성하는 단계를 포함하고, 상기 비디오의 각 비디오 프레임의 재구성을 생성하는 단계는,
    비디오의 제1 비디오 프레임 이후의 각 비디오 프레임에 대해:
    비디오에서 이전 비디오 프레임의 재구성을 획득하는 단계;
    이전 비디오 프레임과 비디오 프레임 사이의 광학 흐름을 생성하기 위해 흐름 생성기 신경망을 사용하여 비디오 프레임에 대한 양자화된 흐름 레이턴트를 처리하는 단계; 및
    (i) 이전 비디오 프레임의 재구성, 및 (ii) 이전 비디오 프레임과 비디오 프레임 사이의 광학 흐름을 사용하여 비디오 프레임의 재구성을 생성하는 단계를 포함하는 것을 특징으로 하는 하나 이상의 컴퓨터에 의해 수행되는 방법.
  14. 제13항에 있어서,
    상기 (i) 이전 비디오 프레임의 재구성과 (ii) 이전 비디오 프레임과 비디오 프레임 사이의 광학 흐름을 사용하여 비디오 프레임의 재구성을 생성하는 단계는,
    이전 비디오 프레임과 비디오 프레임 사이의 광학 흐름를 이용하여 이전 비디오 프레임의 재구성을 워핑함으로써 비디오 프레임의 초기 재구성을 생성하는 단계와; 그리고
    비디오 프레임의 초기 재구성을 사용하여 비디오 프레임의 재구성을 생성하는 단계를 포함하는 것을 특징으로 하는 비디오 압축해제 방법.
  15. 제14항에 있어서,
    상기 비디오 프레임의 초기 재구성을 사용하여 비디오 프레임의 재구성을 생성하는 단계는,
    잔차 비디오 프레임의 재구성을 생성하는 단계 - 잔차 비디오 프레임은 (i) 비디오 프레임과 (ii) 비디오 프레임의 초기 재구성 간의 차이에 의해 정의됨 -와; 그리고
    잔차 비디오 프레임의 재구성과 비디오 프레임의 초기 재구성을 결합함으로써 비디오 프레임의 재구성을 생성하는 단계를 포함하는 것을 특징으로 하는 비디오 압축해제 방법.
  16. 제15항에 있어서,
    상기 비디오의 압축 표현은,
    비디오의 제1 비디오 프레임 이후의 각 비디오 프레임에 대해, 잔차 비디오 프레임을 나타내는 양자화된 잔차 레이턴트를 더 포함하고; 그리고
    상기 잔차 비디오 프레임의 재구성을 생성하는 단계는,
    잔차 생성기 신경망을 사용하여 비디오 프레임에 대한 양자화된 잔차 레이턴트를 처리하여 잔차 비디오 프레임의 재구성을 생성하는 단계를 포함하는 것을 특징으로 하는 비디오 압축해제 방법.
  17. 제13항 내지 제16항 중 어느 한 항에 있어서,
    상기 비디오의 압축 표현은,
    비디오의 제1 비디오 프레임을 나타내는 레이턴트를 정의하고; 그리고
    상기 제1 비디오 프레임의 재구성을 생성하는 단계는,
    I-프레임 생성기 신경망을 사용하여 제1 비디오 프레임을 나타내는 레이턴트를 처리하여 제1 비디오 프레임의 재구성을 생성하는 단계를 포함하는 것을 특징으로 하는 비디오 압축해제 방법.
  18. 제13항 내지 제17항 중 어느 한 항에 있어서,
    비디오의 압축 표현은 제1항 내지 제12항 중 어느 한 항의 방법에 의해 생성되는 것을 특징으로 하는 비디오 압축해제 방법.
  19. 컴퓨터 프로그램으로 인코딩된 컴퓨터 저장 매체로서, 프로그램은 데이터 처리 장치에 의해 실행될 때 데이터 처리 장치로 하여금 제1항 내지 제18항 중 어느 한 항의 방법의 동작들을 수행하게 하는 명령들을 포함하는 컴퓨터 저장 매체.
  20. 시스템으로서,
    데이터 처리 장치; 그리고
    컴퓨터 프로그램으로 인코딩된 컴퓨터 저장 매체를 포함하고, 프로그램은 데이터 처리 장치에 의해 실행될 때 데이터 처리 장치로 하여금 제1항 내지 제18항 중 어느 한 항의 방법의 동작들을 수행하게 하는 명령들을 포함하는 컴퓨터 저장 매체.
KR1020247002405A 2021-07-06 2022-07-05 광학 흐름를 이용한 비디오 압축 KR20240025629A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202163218853P 2021-07-06 2021-07-06
US63/218,853 2021-07-06
PCT/US2022/036111 WO2023283184A1 (en) 2021-07-06 2022-07-05 Video compression using optical flow

Publications (1)

Publication Number Publication Date
KR20240025629A true KR20240025629A (ko) 2024-02-27

Family

ID=82702969

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020247002405A KR20240025629A (ko) 2021-07-06 2022-07-05 광학 흐름를 이용한 비디오 압축

Country Status (4)

Country Link
EP (1) EP4201064A1 (ko)
KR (1) KR20240025629A (ko)
CN (1) CN117616753A (ko)
WO (1) WO2023283184A1 (ko)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200053388A1 (en) * 2018-08-10 2020-02-13 Disney Enterprises, Inc. Machine learning based video compression

Also Published As

Publication number Publication date
EP4201064A1 (en) 2023-06-28
WO2023283184A1 (en) 2023-01-12
CN117616753A (zh) 2024-02-27

Similar Documents

Publication Publication Date Title
US11670010B2 (en) Data compression using conditional entropy models
Hu et al. Learning end-to-end lossy image compression: A benchmark
US10853447B2 (en) Bezier volume representation of point cloud attributes
US11538197B2 (en) Channel-wise autoregressive entropy models for image compression
US11869221B2 (en) Data compression using integer neural networks
CN113259676B (zh) 一种基于深度学习的图像压缩方法和装置
US11375198B2 (en) Processing signal data using an upsampling adjuster
CN113537456B (zh) 一种深度特征压缩方法
WO2019226429A1 (en) Data compression by local entropy encoding
Han et al. Toward variable-rate generative compression by reducing the channel redundancy
CN115426075A (zh) 语义通信的编码传输方法及相关设备
KR20240025629A (ko) 광학 흐름를 이용한 비디오 압축
CN117750021B (zh) 一种视频压缩方法、装置、计算机设备及存储介质
US20240020884A1 (en) Online meta learning for meta-controlled sr in image and video compression
US11936866B2 (en) Method and data processing system for lossy image or video encoding, transmission and decoding
US20230012229A1 (en) Image encoding method, image decoding method, image encoding apparatus, image decoding apparatus and program
KR20230158597A (ko) 신경 이미지 압축에서의 온라인 트레이닝 기반 인코더 튜닝
KR20230162061A (ko) 압축 도메인에서의 컴퓨터 비전 작업 신경망들의 멀티-레이트
CN115660044A (zh) 基于拉东域稀疏表征的数据重构方法及相关设备
CN117461055A (zh) 神经图像压缩中具有多模型选择的基于在线训练的编码器调谐
KR20240004777A (ko) 압축 도메인에서의 컴퓨터 비전 작업 모델들의 온라인 훈련
CN116965030A (zh) 使用稀疏表示来生成图像
CN116546224A (zh) 滤波网络的训练方法、视频编码方法、装置及电子设备
CN115802060A (zh) 语义通信视频传输方法及相关设备