KR20230148252A - 강화 학습을 통한 전송률 제어 신경망 트레이닝 - Google Patents

강화 학습을 통한 전송률 제어 신경망 트레이닝 Download PDF

Info

Publication number
KR20230148252A
KR20230148252A KR1020237033044A KR20237033044A KR20230148252A KR 20230148252 A KR20230148252 A KR 20230148252A KR 1020237033044 A KR1020237033044 A KR 1020237033044A KR 20237033044 A KR20237033044 A KR 20237033044A KR 20230148252 A KR20230148252 A KR 20230148252A
Authority
KR
South Korea
Prior art keywords
neural network
training
video
rate control
control neural
Prior art date
Application number
KR1020237033044A
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 KR20230148252A publication Critical patent/KR20230148252A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/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/092Reinforcement learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computational Linguistics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Neurology (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Studio Devices (AREA)
  • Feedback Control In General (AREA)
  • Measuring Pulse, Heart Rate, Blood Pressure Or Blood Flow (AREA)

Abstract

시스템 및 방법은 강화 학습을 통해 전송률 제어 신경망을 트레이닝하기 위한 것이다. 트레이닝 동안, 트레이닝 예제에 대한 보상값은 트레이닝 예제에서 비디오를 인코딩할 때 전송률 제어 신경망의 현재 성능과 트레이닝 예제에서 비디오를 인코딩할 때 전송률 제어 신경망의 과거 성능으로부터 생성된다.

Description

강화 학습을 통한 전송률 제어 신경망 트레이닝
본 명세서는 신경망을 사용하여 비디오 코덱의 전송률(rate) 제어를 수행하는 것에 관한 것이다.
신경망은 하나 이상의 비선형 단위 계층을 사용하여 수신 입력에 대한 출력을 예측하는 기계 학습 모델이다. 일부 신경망에는 출력 계층 외에 하나 이상의 은닉 계층이 포함되어 있다. 각 은닉 계층의 출력은 네트워크에 있는 다음 계층, 즉 다음 은닉 계층 또는 출력 계층의 입력으로 사용된다. 네트워크의 각 계층은 각 파라미터 세트의 현재 값에 따라 수신 입력으로부터 출력을 생성한다.
본 명세서는 비디오가 인코딩된 후 비디오를 표현하는데 사용되는 데이터 양을 제어하는데 사용되는 신경망을 트레이닝하는 하나 이상의 위치에 있는 하나 이상의 컴퓨터 상의 컴퓨터 프로그램으로 구현되는 시스템을 기술한다.
본 명세서에 설명된 주제의 특정 실시예는 다음 장점 중 하나 이상을 실현하도록 구현될 수 있다.
가변 전송률(rate) 비디오 인코더는 인코딩된 비디오의 품질을 최대화하기 위해, 즉 인코딩된 비디오의 비트 전송률은 목표 비트 전송률을 초과할 수 없다는 제약 조건에 따라 원본 비디오에 비해 상기 인코딩된 비디오로부터 생성된 재구성의 품질을 최대화하기 위해 비디오 인코딩을 시도한다.
특히, 기존의 가변 전송률 비디오 인코더는 프레임을 인코딩하는데 소비할 비트 수를 정의하기 위해 각 비디오 프레임에 전송률 제어를 적용한다. 이러한 비디오 인코더 중 다수에서, 전송률 제어는 중요한 구성 요소이며 고도로 엔지니어링되었다(즉, 복잡한 수동 엔지니어링 휴리스틱을 적용한다).
그러나, 전송률 제어는 어려운 제약적 계획 문제인데, 그 이유는 서로 다른 비디오 프레임에 대한 결정 간의 복잡한 종속성 및 비트 전송률 제약 조건이 충족되는지 여부는 비디오 끝 부분, 즉 전체 비디오가 인코딩된 후에만 명백하다는 사실 때문이다.
본 명세서에서는 강화 학습을 통해 전송률 제어 신경망을 트레이닝하고 비디오를 인코딩할 때 전송률 제어 신경망을 사용하여 전송률 제어를 수행하는 기술을 설명한다.
본 명세서에 설명된 바와 같이 트레이닝된 전송률 제어 신경망을 사용하여 전송률 제어를 수행함으로써(비디오 인코딩 시 비디오 코덱이 사용할 양자화 파라미터 값을 제안함으로써), 결과적으로 인코딩된 비디오는 수동으로 엔지니어링된 전송률 제어 모듈에 의존하거나 다른 전송률 제어 신경망을 사용하는 기존의 접근 방식에 비해 더 나은 인코딩 효율성을 달성한다. 부가적으로, 설명된 전송률 제어 신경망을 사용하면 결과적으로 인코딩된 비디오에는 제약 위반이 거의 없거나 전혀 없다. 다시 말해서, 비디오에 대한 목표 비트 전송률이 주어지면, 설명된 전송률 제어 신경망을 사용하여 인코딩된 비디오는 다른 전송률 제어 기술을 사용하여 인코딩된 비디오보다 일반적으로 PSNR(피크 신호 대 잡음비) 또는 기타 품질 측정법으로 측정된 것처럼 더 높은 품질을 달성하면서 목표를 초과하지 않는 비트 전송률을 갖을 것이다.
보다 구체적으로, 본 명세서는 주어진 트레이닝 예제에 대한 현재 성능을 이전 트레이닝 반복에 걸쳐 주어진 트레이닝 예제에 대한 과거(historical, 이력적) 성능과 비교함으로써 전송률 제어 신경망의 트레이닝에 대한 보상값을 생성하는 방법을 설명한다. 트레이닝 예제는 인코딩될 예시적인 비디오 시퀀스("트레이닝 시퀀스" 또는 "트레이닝 비디오"라고 지칭됨)와 목표 데이터 측정치(예를 들어, 인코딩된 트레이닝 시퀀스의 목표 데이터 크기)을 포함한다. 전송률 제어 네트워크는 반복적으로 트레이닝되며, 현재 성능은 현재 상태(즉, 현재 트레이닝 반복에서 신경망 파라미터의 현재 값이 주어진 경우)에서 전송률 제어 네트워크를 사용하여 트레이닝 비디오를 인코딩하는 성능이다. 따라서, 보상값은 현재 반복 이전에 대응하는 반복에서 트레이닝된 비디오가 전송률 제어 신경망에 의해 얼마나 잘 인코딩되었는지에 비해, 현재 상태에서 트레이닝된 비디오가 전송률 제어 신경망에 의해 얼마나 잘 인코딩되었는지를 나타낸다. 이러한 방식으로 보상값을 생성하면 트레이닝 초기부터 전송률 제어 신경망에 고품질 학습 신호가 제공되고 트레이닝 프로세스의 효율성이 크게 향상된다(즉, 전송률 제어 신경망을 트레이닝하는데 필요한 시간과 계산 리소스의 양이 줄어든다). 대조적으로, 보상값을 계산하기 위해 주어진 트레이닝 예제에 대한 베이스라인 정책과 현재 성능을 비교하면 최근 초기화된 전송률 제어 신경망이 베이스라인을 거의 초과하지 않을 수 있으며 따라서 트레이닝 시작 시 0이 아닌 보상을 받는 경우가 드물며, 잠재적으로 필요한 트레이닝 반복 횟수가 크게 늘어나거나 심지어 트레이닝이 수렴되지 않게 될 수도 있다. 반면에 본 명세서에 설명된 대로 보상값을 계산하면 현재 성능이 트레이닝 시작 시에도 과거 성능을 초과하는 경우가 많기 때문에 이러한 장애물을 제거한다.
일부 접근법은 라그랑지안 완화를 통해 제한된 강화 학습 목표를 해결함으로써 전송률 제어 설정에 강화 학습을 적용하려고 시도할 수 있다. 그러나 전송률 제어 설정에 적용될 때, 라그랑지안 완화 접근법은 비디오 내용에 따라 비디오마다 페널티 요소가 다를 수 있기 때문에 올바르게 조정하기가 어렵다. 반면에, 본 명세서에 설명된 보상 계산 방식을 사용하여 강화 학습을 적용하면 이러한 하이퍼파라미터를 조정할 필요가 없다(즉, 서로 다른 비디오에 대한 페널티 요소를 결정할 필요가 없다).
본 명세서에 설명된 주제의 하나 이상의 실시예의 세부 사항은 첨부 도면 및 아래 설명에 설명되어 있다. 주제의 다른 특징, 측면 및 이점은 설명, 도면 및 청구범위로부터 명백해질 것이다.
도 1은 예시적인 비디오 인코딩 시스템을 도시한다.
도 2는 예시적인 트레이닝 시스템을 도시한다.
도 3은 전송률 제어 신경망의 예시적인 아키텍처를 도시한다.
도 4는 전송률 제어 신경망을 트레이닝하기 위한 예시적인 프로세스의 흐름도이다.
도 5는 설명된 기술에 의해 달성된 오버슈트의 히스토그램을 보여준다.
도 6은 libvpx 기술과 관련하여 설명된 기술의 BD 전송률 차이의 히스토그램을 도시한다.
도 7은 표현 신경망의 보다 상세한 예시적인 아키텍처를 도시한다.
도 8은 동적 신경망의 보다 상세한 예시적인 아키텍처를 도시한다.
도 9는 정책 헤드 및 보조 태스크 헤드 세트의 보다 상세한 예시적인 아키텍처를 도시한다.
다양한 도면에서 유사한 참조 번호 및 지정은 유사한 요소를 나타낸다.
도 1은 예시적인 비디오 인코딩 시스템(100)을 도시한다. 비디오 인코딩 시스템(100)은 아래 설명된 시스템, 구성 요소 및 기술이 구현되는 하나 이상의 위치에 있는 하나 이상의 컴퓨터상의 컴퓨터 프로그램으로 구현되는 시스템의 예이다.
비디오 인코딩 시스템(100)은 비디오의 인코딩된 표현, 즉 원본 비디오보다 전송하거나 저장하는데 더 적은 데이터가 필요한 표현을 생성하기 위해 비디오, 즉 비디오 프레임의 시퀀스를 인코딩하는 시스템이다. 비디오는 예를 들어 현실 세계의 적어도 한 부분을 묘사하는 적어도 하나의 비디오 카메라에 의해 캡처된 비디오일 수 있다.
보다 구체적으로, 시스템(100)은 입력 비디오, 즉, 비디오 프레임(102A-N)의 시퀀스를 수신하고, 비디오 코덱(150)을 사용하여 입력 비디오를 인코딩하여 입력 비디오의 인코딩된 표현, 즉 인코딩된 비디오 프레임(160A-160N)의 시퀀스를 생성한다.
인코딩된 표현은 각각의 데이터 양을 사용하여 입력 비디오의 각 프레임을 나타낸다. 주어진 비디오 프레임을 표현하는데 필요한 데이터의 양은 임의의 적절한 측정 단위(예를 들어, 비트 수)로 측정될 수 있다.
비디오 코덱(150)은 비디오의 원본 데이터 형식보다 적은 데이터를 요구하는 압축된 데이터 형식으로 비디오를 표현함으로써 비디오를 압축(나중에 압축 해제)하는 소프트웨어이다.
보다 구체적으로, 비디오 코덱(150)은 상이한 양의 데이터, 예를 들어 상이한 수의 비트를 사용하여 비디오의 상이한 프레임을 인코딩하는 가변 전송률 코덱이다.
특히, 비디오 코덱(150)은 비디오 프레임에 대한 인코딩 결정을 순차적으로 내린다. 즉, 비디오의 비디오 프레임을 차례로 순차적으로 인코딩한다. 각 비디오 프레임을 인코딩하기 전에, 비디오 코덱(150)은 비디오 프레임에 대한 양자화 파라미터(QP) 값을 할당한다. QP 값은 가능한 QP 값 세트의 정수, 예를 들어 [0; 255]의 범위에 있는 정수이다.
비디오 프레임을 인코딩하는 동안, 비디오 코덱(150)은 QP 값을 엔트로피 코딩을 위한 예측 잔차를 디지털화하는데 사용되는 양자화 스텝 사이즈에 단조(monotonically) 매핑한다. QP 값에서 양자화 스텝 사이즈로의 매핑은 사전 결정될 수 있는데, 예를 들어, 스텝 사이즈는 기정의된 비례 파라미터가 있는 QP에 반비례할 수 있다. 양자화 스텝 사이즈가 작을수록 양자화 오류가 작아지지만 비디오 프레임을 인코딩하는데 사용되는 데이터 양, 예를 들어 비트 수가 많아진다. 양자화 오류가 작을수록 나중에 동일한 비디오 코덱을 사용하여 비디오 프레임을 디코딩할 때 일반적으로 재구성 오류가 작아진다.
따라서, 주어진 비디오 프레임에 대해 선택된 QP 값은 비디오 프레임이 비디오 코덱(150)에 의해 인코딩된 후 비디오 프레임을 표현하는데 필요한 데이터의 양과 비디오 프레임의 재구성 품질 모두를 결정한다.
비디오가 인코딩될 때, 이것은 초기에 예를 들어 비디오 인코더 시스템(100)에 의해 전체적으로 처리되어 각각의 프레임에 대한 통계를 생성하고, 선택적으로 하나 이상의 프레임을 "키 프레임"으로 지정하고, 그리고 선택적으로 "대체 참조 프레임"과 같은 추가 프레임을 추가할 수 있다.
특정 예로서, 비디오 인코더 시스템(100)은 먼저 비디오의 모든 프레임에 대한 통계("제1 패스(first-pass) 통계")를 계산하고(예를 들어, 프레임을 블록, 예컨대 중첩하지 않는 16×16 블록으로 분할하고), 이어서 블록별 프레임내 및 프레임간 예측 및 예측 잔차 오류의 계산을 수행함으로써 비디오를 인코딩할 수 있다. 이러한 제1 패스 통계에는 평균 모션 예측 오류, 평균 프레임내 예측 오류, 평균 모션 벡터 크기, 제로 모션 블록 비율, 노이즈 에너지 등과 같은 정보가 포함된다.
이어서 비디오 인코더 시스템(100)은 비디오 내의 키 프레임 위치를 결정하기 위해, 즉 비디오 프레임(102A-N) 중 하나를 키 프레임 위치로서 지정하기 위해 제1 패스 통계를 사용한다. 이를 위해 키프레임을 선택하기 위한 공지 기술이 사용될 수 있다. 일부 공지된 비디오 인코더는 또한 은닉 대체 참조 프레임을 삽입한다. 키 프레임과 대체 참조 프레임은 다른 프레임을 인코딩하기 위한 참조로 사용되므로 그들의 인코딩 품질은 비디오의 다른 프레임에도 영향을 미친다. 대체 참조 프레임은 그의 인코딩된 버전이 일반적으로 인코딩된 비디오에 포함되어 있지만 그 인코딩된 비디오가 디코딩되어 재생될 때 대체 참조 프레임이 디스플레이되지 않는다는 의미에서 "은닉(hidden)"된다. 비디오 인코더 시스템(100)이 대체 참조 프레임을 생성하는 경우, 이들은 비디오 인코더 시스템(100)이 QP 값을 생성하는 비디오 프레임 세트에 추가될 수 있다. 즉, 도 1에 도시된 입력 프레임(102A-N)의 세트는 이들 대체 비디오 프레임을 추가함으로써 보완된다.
이러한 결정이 내려지면, 비디오 인코더 시스템(100)은 비디오 프레임(102A-N)을 순차적으로 인코딩하기 시작한다. 전송률 제어기는 품질을 최대화하고 비트를 줄이기 위해 각 프레임(각 은닉 대체 참조 프레임 포함)에 QP를 지정함으로써 속도와 왜곡 간의 균형(trade-off, 절충점)을 조절한다. QP는 엔트로피 코딩을 위한 예측 잔차의 주파수 변환을 양자화하는데 사용되는 양자화 스텝 사이즈에 단조 매핑될 수 있는 [0, 255] 범위의 정수이다. 양자화 스텝 사이즈가 작을수록 양자화 오류는 작아지지만 프레임의 비트 사용량도 높아진다. 따라서, 위에서 지적한 바와 같이, 양자화 오류가 작다는 것은 예를 들어 평균 제곱 오차(MSE)로 측정될 수 있는 재구성 오류가 더 작다는 것을 의미한다.
비디오 코덱(150)은 비디오의 각각의 비디오 프레임에 대한 개별 QP 값을 입력으로서 수용하고 개별 QP 값에 따라 비디오 프레임을 인코딩할 수 있는 임의의 적절한 가변 전송률 비디오 코덱일 수 있다. 이러한 비디오 코덱의 예로는 VP9 및 오픈 소스 버전 libvpx가 있다. 이러한 비디오 코덱의 다른 예는 AV1 비디오 코덱이다.
일반적으로, 시스템(100)은 비디오를 인코딩하여 그 인코딩된 비디오를 표현하는데 필요한 데이터 양과 비디오 품질 사이의 원하는 균형을 충족시킨다. 특히, 임의의 주어진 비디오를 인코딩할 때, 시스템(100)은 인코딩을 위한 목표 데이터 측정치(104)를 입력으로서 수신한다.
목표 데이터 측정치(104)는 입력 비디오의 인코딩된 표현을 표현하는데 필요한 목표 데이터 양, 예를 들어, 입력 비디오의 인코딩된 표현을 표현하는데 필요할 수 있는 최대 데이터 양을 나타낸다. 목표 데이터 측정치(104)는 임의의 적절한 측정 단위를 사용하여 표현될 수 있다. 예를 들어, 목표 데이터 측정치(104)는 인코딩된 비디오에 대한 목표 비트 전송률일 수 있다. 인코딩된 비디오의 비트 전송률은 인코딩된 모든 프레임의 비트 합계를 비디오의 지속 시간(duration)으로 나눈 값과 동일하다.
이어서 시스템(100)은 목표 데이터 측정치(104)를 초과하지 않고 상기 인코딩된 표현의 품질을 최대화하기 위해 비디오를 인코딩하려고 시도한다. 인코딩된 표현의 품질은 원본 비디오와 관련하여 상기 인코딩된 표현으로부터 생성된 재구성의 품질을 측정하는 적절한 품질 측정에 의해 측정될 수 있다. 이러한 품질 측정의 한 가지 예는 비디오 품질(즉, 왜곡)을 측정하고 모든 쇼(show) 프레임(임의의 은닉 대체 참조 프레임 제외)의 평균 제곱 오차의 로그 합계에 비례하는 PSNR(피크 신호 대 잡음비)이다. 주어진 프레임의 평균 제곱 오차는 프레임 재구성과 인코딩 전 원시(raw) 프레임 간의 평균 제곱 오차이다. 사용될 수 있는 다른 품질 측정에는 SSIM 및 VMAF와 같은 다른 왜곡 메트릭(측정항목)이 포함된다.
목표 데이터 측정치(104)에 의해 부과된 제약에 따라 인코딩 품질을 최대화하기 위해, 시스템(100)은 전송률 제어 신경망(110)을 사용한다.
전송률 제어 신경망(110)은 주어진 비디오 프레임을 인코딩하기 전에, 주어진 프레임에 대한 입력 특징 세트(예를 들어, 입력 특징(106A-106N))를 입력으로 수신하여, 주어진 프레임에 대한 각각의 스코어 세트(예를 들어 개별 스코어(112A-112N))를 출력으로 생성하는 신경망이다. 입력 특징(106A-106N)에 대한 가능한 선택은 도 3을 참조하여 아래에서 논의된다. 각 스코어 세트에는 가능한 QP 값 각각에 대한 개별 스코어, 예를 들어 [0; 255] 범위 또는 가능한 QP 값의 다른 범위에 있는 각각의 정수에 대한 개별 스코어가 포함된다.
일단 전송률 제어 신경망(110)이 주어진 비디오 프레임에 대한 스코어 세트를 생성하면, 시스템(100)은 스코어 세트를 사용하여, 예를 들어 가장 높은 스코어를 갖는 QP 값을 선택하거나 점수 세트에 의해 정의된 분포로부터 샘플링함으로써 QP 값을 선택하고, 이어서 비디오 코덱(150)을 사용하여 상기 선택된 QP 값에 따라 비디오 프레임을 인코딩한다.
전송률 제어 신경망(110)에 대한 예시적인 아키텍처 및 전송률 제어 신경망(110)에 의해 처리되는 입력 특징에 관한 더 자세한 내용은 도 3을 참조하여 아래에 설명된다.
따라서, 시스템(100)은 전송률 제어 신경망(110)을 사용하여 인코딩 동안, 즉, 기존 비디오 인코더에서 수행하는 것과 같이 수동으로 설계된 휴리스틱(경험적) 기반 접근 방식을 사용하는 대신에 신경망(110)에 의해 생성된 스코어를 사용하여 각 비디오 프레임에 대한 QP 값을 선택함으로써 전송률 제어를 수행한다.
전송률 제어 신경망(110)이 QP 값을 선택하는데 효과적으로 사용될 수 있도록 하기 위해, 즉 품질과 데이터 효율성 간의 원하는 균형이 달성되는 QP 값을 선택하기 위해, 트레이닝 시스템(200)은 전송률 제어 신경망(110)이 시스템(100)에 의해 사용되기 전에 강화 학습을 통해 전송률 제어 신경망(110)을 트레이닝한다.
전송률 제어 신경망(110)의 트레이닝은 도 2 내지 도 4를 참조하여 아래에서 설명될 것이다.
일단 입력 비디오가 인코딩되면, 시스템(100)은 다양한 목적을 위해 그 인코딩된 표현을 사용할 수 있다.
일 예로서, 시스템(100)은 인코딩된 표현을 나중 재구성 및 재생을 위해 저장할 수 있으며, 이에 따라 비디오를 저장하는데 필요한 메모리 양을 줄일 수 있다.
다른 예로서, 시스템(100)은 디코딩 및 재생을 위해 데이터 통신 네트워크 예를 들어 인터넷을 통해 다른 시스템에 인코딩된 표현을 전송할 수 있으며, 이에 따라 데이터 통신 네트워크를 통해 전송되어야 하는 데이터의 양을 줄일 수 있다.
두 예 모두에서, 시스템(100)과 동일한 하나 이상의 컴퓨터 세트 또는 시스템(100)과 상이한 하나 이상의 컴퓨터의 세트에서 구현될 수 있는 디코딩 시스템은 나중에 예를 들어 메모리로부터 또는 데이터 통신 네트워크를 통해 인코딩된 표현을 수신하면 그 인코딩된 표현에 액세스할 수 있고, 비디오 코덱(150)의 다른 인스턴스를 사용하여 비디오의 재구성을 생성할 수 있다. 이어서 디코딩 시스템은 재생을 위해 비디오의 재구성을 사용자에게 제공할 수 있다.
도 2는 예시적인 트레이닝 시스템(200)을 도시한다. 트레이닝 시스템(200)은 아래에 설명된 시스템, 구성 요소 및 기술이 구현되는 하나 이상의 위치에 있는 하나 이상의 컴퓨터 상의 컴퓨터 프로그램으로 구현되는 시스템의 예이다.
전술한 바와 같이, 트레이닝 시스템(200)은 전송률 제어 신경망(110)이 비디오를 효과적으로 인코딩하는데 사용될 수 있도록, 즉, 전송률 제어 신경망(110)을 사용하여 인코딩된 비디오가 데이터 효율성과 비디오 품질 사이에서 원하는 균형을 이루도록 전송률 제어 신경망(110)을 트레이닝한다.
보다 구체적으로, 트레이닝 시스템(200)은 전송률 제어 신경망(110)이 주어진 비디오를 인코딩하는데 사용될 수 있도록 전송률 제어 신경망(110)을 트레이닝하여, 인코딩된 비디오를 표현하는데 필요한 데이터 양이 주어진 비디오에 대한 목표 데이터 측정치를 초과하지 않는다는 제약 조건에 따라 상기 인코딩된 비디오의 품질을 최대화한다.
특히, 트레이닝 시스템(200)은 전송률 제어 신경망(110)의 파라미터 값(202)을 반복적으로 업데이트함으로써 트레이닝 데이터(210)에 대해 전송률 제어 신경망(110)을 트레이닝한다.
트레이닝 데이터(210)는 다수의 트레이닝 예제(220)를 포함한다.
각 트레이닝 예제(220)에는 트레이닝 비디오(222), 즉 비디오 프레임의 시퀀스와 트레이닝 비디오(220)에 대한 목표 데이터 측정치(224)가 포함된다. 목표 데이터 측정치(224)는 트레이닝 비디오(222)를 인코딩함으로써 생성된 인코딩된 비디오를 표현하는데 필요한 최대 데이터 량을 나타낸다. 예를 들어, 목표 데이터 측정치(224)는 트레이닝 비디오(222)의 인코딩된 표현에 대한 목표 비트 전송률일 수 있다.
트레이닝 시스템(200)은 또한 각각의 트레이닝 예제(220)에 대해, 트레이닝 중 임의의 주어진 시점에서, 목표 데이터 측정치(224)에 따라 트레이닝 비디오(222)를 효과적으로 인코딩하는 전송률 제어 신경망(110)의 성능을 측정하는, 즉 전송률 제어 신경망(110)을 사용하여 생성된 트레이닝 비디오(222)의 인코딩된 표현의 품질과 목표 데이터 측정치(224)에 대한 인코딩된 표현을 표현하는데 필요한 데이터의 양을 모두 측정하는 객별 과거(historical, 이력적) 성능 데이터(230)를 유지한다.
전송률 제어 신경망(110)을 트레이닝하기 위해, 트레이닝 시스템(200)은 예를 들어 무작위로 또는 우선순위가 지정된 샘플링 방식에 따라 트레이닝 데이터(210)로부터 트레이닝 예제(220)를 반복적으로 샘플링하고, 그 샘플링된 트레이닝 예제(220)를 사용하여 파라미터 값(202)을 업데이트한다.
좀 더 구체적으로, 일단 트레이닝 예제(220)가 샘플링되면, 트레이닝 시스템(210)은 트레이닝 비디오(222) 및 목표 데이터 측정치(224)를 사용하여 트레이닝 비디오(222)의 인코딩된 표현, 즉 인코딩된 트레이닝 비디오(240)를 생성한다.
일부 구현에서, 시스템(200)은 전송률 제어 신경망(110)에 의해 생성된 스코어 세트를 직접 사용하여 트레이닝 비디오를 인코딩하기 위해 비디오 코덱에 제공되는 QP 값을 선택한다. 즉, 도 1을 참조하여 위에서 설명한 바와 같이 신경망(110)을 사용하여 비디오를 인코딩한다.
일부 다른 구현에서, 시스템(200)은 트레이닝 비디오를 인코딩하기 위해 비디오 코덱에 제공되는 QP 값을 선택하기 위해 미리보기(look-ahead) 검색을 수행하는 전송률 제어 신경망(110)을 사용한다. 트레이닝 동안 미리보기 검색을 수행하는 방법은 도 3 및 도 4를 참조하여 후술한다.
일단 인코딩된 트레이닝 비디오(240)가 생성되면, 트레이닝 시스템(200)은 트레이닝 예제(220)에 대한 현재 성능(성과) 데이터(250)를 결정한 다음, 현재 성능 데이터(250)와 과거 성능 데이터(230)로부터 트레이닝 예제(220)에 대한 보상값(260)을 결정한다.
현재 성능 데이터(250)는 인코딩된 트레이닝 비디오(240)의 품질과 인코딩된 트레이닝 비디오(240)를 표현하는데 필요한 데이터의 양을 측정한다.
따라서, 보상값(260)은 트레이닝 동안 신경망(110)이 이전에 트레이닝 예제(220)를 인코딩하는 방식에 비해 신경망(110)이 현재 인코딩된 트레이닝 비디오(240)를 생성하는데 얼마나 잘 수행했는지를 측정한다.
성능 및 보상값(260)을 결정하는 방법은 도 4를 참조하여 아래에서 더 자세히 설명된다.
이어서 시스템(200)은 보상값(260)을 사용하여 강화 학습을 통해 파라미터에 대한 업데이트(270)를 결정할 수 있다.
특히, 시스템은 전송률 제어 신경망(110)이 예상 보상값을 최대화하는 인코딩된 비디오를 생성하는 출력을 생성하도록 장려하는 임의의 적절한 강화 학습 기술을 사용하여 업데이트를 결정할 수 있다.
일 예로서, 시스템은 예를 들어 REINFORCE 또는 PPO(Proximal Policy Optimization) 기술과 같은 정책 구배(gradient) 기술을 사용하여 업데이트(270)를 결정할 수 있다.
다른 예로, 시스템이 트레이닝 중에 리미보기 검색을 수행하는 경우, 시스템은 MuZero 기술을 사용하여 업데이트(270)를 결정할 수 있다.
그러나 일반적으로, 시스템은 강화 학습 기술을 위한 목적 함수의 전송률 제어 신경망(110)의 파라미터에 대한 구배를 계산함으로써 업데이트(270)를 결정한다.
시스템은 또한 현재 품질 및 현재 데이터 측정치을 사용하여 트레이닝 예제시(220)에 대한 과거 성능 데이터(230)를 업데이트한다. 예를 들어, 과거 성능 데이터는 반복 시퀀스에 대한 품질 및 데이터 측정치의 개별 지수 이동 평균(EMA)일 수 있으며, 이는 0에서 1 사이의 평활화 요소(또는 보간 가중치)(α)로 특징지워진다.
도 3은 전송률 제어 신경망(110)의 예시적인 아키텍처를 도시한다. 즉, 도 3은 비디오를 인코딩하기 위해 시스템, 예를 들어 도 1의 비디오 인코딩 시스템(100) 또는 도 2의 트레이닝 시스템(200)에 의해 사용될 수 있는 신경망의 예시적인 아키텍처를 도시한다.
특히, 도 3에 도시된 바와 같이, 전송률 제어 신경망(110)은 현재 비디오로부터 현재 비디오 프레임에 대한 입력 특징(302)의 세트를 수신하고 그 입력 특징(302)을 처리하여 특징 표현(312)을 생성하는 표현 신경망(310)을 포함한다.
입력 특징(302) 세트는 일반적으로 현재 비디오의 프레임 각각에 대한 프레임 특징의 개별 세트를 포함한다.
보다 구체적으로, 프레임 특징에는 현재 비디오의 해당 프레임 각각에 대한 제1 패스 특징과 이미 인코딩된 프레임의 제2 패스 특징이 포함된다. 제1 패스 특징은 도 1을 참조하여 위에 설명된 바와 같이 비디오 인코더에 의해 생성된 제1 패스 통계의 일부 또는 전부를 포함할 수 있다. 따라서, 현재 프레임에 대한 프레임 특징은 현재 프레임에 대한 평균 모션 예측 오류, 평균 프레임내 예측 오류, 평균 모션 벡터 크기, 제로 모션 블록의 백분율, 노이즈 에너지 중 임의의 하나 이상을 포함할 수 있다. .
특히 이미 인코딩된 각 프레임에 대한 제2 패스 특징에는 인코딩된 프레임에 대한 데이터 측정치, 인코딩된 프레임에 대해 선택된 양자화 파라미터 값, 인코딩된 프레임에 대한 품질 측정치, 프레임 유형(예를 들어, 쇼 프레임 또는 대체 참조 프레임) 등 중 하나가 포함될 수 있다.
이미 인코딩된 프레임에 대한 각각의 프레임 특징을 생성하기 위해, 시스템은 프레임의 제1 패스 특징과 프레임의 제2 패스 특징을 연결(concatenate)할 수 있다.
아직 인코딩되지 않은 프레임에 대한 개별 프레임 특징을 생성하기 위해, 시스템은 프레임에 대한 제1 패스 특징과 사전 결정된 제2 패스 특징의 디폴트 세트, 예를 들어 모두 0이거나 다른 사전 결정된 숫자인 특징 세트를 연결할 수 있다.
입력 특징 세트(302)는 또한 현재 비디오, 현재 프레임 또는 둘 모두를 특징짓는 메타 데이터 특징을 포함할 수 있다. 메타 데이터 특징의 예에는 현재 프레임 유형(예를 들어, 현재 프레임이 키 프레임인지 대체 참조 프레임인지, 또는 키 프레임도 대체 참조 프레임도 아닌 프레임인지 여부), 현재 프레임 인덱스(예를 들어, 비디오 내 위치), 비디오의 총 프레임 수, 및 비디오의 목표 데이터 측정치가 포함될 수 있다.
표현 신경망(310)은 표현 신경망(310)이 입력 특징(302)을 특징 표현(312)에 매핑하도록 허용하는 임의의 적절한 아키텍처를 가질 수 있고 적절한 구성으로 배열된 임의의 적절한 수의 신경망 계층(예를 들어, 콘볼루션 계층, 완전 연결 계층, 정규화 계층)을 포함할 수 있다.
구체적인 예로, 표현 신경망(310)은 프레임 특징의 표현을 생성하기 위해 각각 셀프 어텐션 또는 다중 헤드 셀프 어텐션 메커니즘을 적용하는 하나 이상의 셀프 어텐션 블록을 포함하는 트랜스포머 신경망을 사용하여 개별 프레임 특징을 처리할 수 있다. 일부 경우에, 표현 신경망(310)은 메타 데이터 특징의 표현을 생성하기 위해 다층 퍼셉트론(MLP)을 사용하여 메타 데이터 특징을 처리할 수 있다. 그러면 표현 신경망(310)은 프레임 특징의 표현과 메타데이터 특징의 표현을 결합(예를 들어, 연결 또는 평균화)하여 특징 표현(312)을 생성할 수 있다. 일부 다른 경우에, 표현 신경망(310)은 메타 데이터 특징을 프레임 특징의 표현과 직접 연결할 수 있고 연결을 사용하여 특징 표현(312)을 생성할 수 있다. 예를 들어, 신경망(310)은 다층 퍼셉트론(MLP)을 통해 연결을 처리한 다음 하나 이상의 컨벌루션 계층 블록, 예를 들어 ResNet 또는 ResNet-V2 블록으로 MLP의 출력을 처리하여 특징 표현(312)을 생성할 수 있다.
특징 표현(312)은 입력 특징(302) 세트의 수치적 표현이다. 특히, 특징 표현은 숫자 값의 정렬된 모음, 예를 들어 부동 소수점 값 또는 기타 숫자 값의 벡터이다.
전송률 제어 신경망(110)은 또한 특징 표현(310)을 처리하여 양자화 파라미터의 가능한 각각의 값에 대한 개별 스코어를 포함하는 스코어 세트(322)를 생성하는 정책 신경망 헤드(320)를 포함한다.
본 명세서에서 사용되는 "신경망 헤드"는 하나 이상의 신경망 계층의 모음이다.
특정 예로서, 정책 헤드(320)는 비선형 활성화 함수 계층, 예를 들어 ReLU(Rectified Linear Unit) 계층, 정규화 계층, 예컨대 배치 정규화 계층 또는 계층 정규화 계층, 또는 무두에 의해 분리되는 일련의 선형 신경망 계층을 포함할 수 있다.
트레이닝 후, 시스템은 스코어(322)를 사용하여 현재 비디오 프레임을 인코딩하기 위해 비디오 코덱에 의해 사용되는 양자화 파라미터의 값을 선택할 수 있다. 즉, 트레이닝 후, 전송률 제어 신경망(110)은 표현 신경망(310)과 정책 헤드(320)만을 포함한다.
일부 구현에서, 트레이닝 중에, 시스템은 또한 트레이닝 프로세스의 효율성을 향상시키기 위해 하나 이상의 추가 구성 요소를 사용한다.
특히, 위에서 설명된 바와 같이, 일부 구현에서, 시스템은 비디오를 인코딩하는데 사용되는 QP 값을 보다 효과적으로 선택하기 위해 트레이닝 중에 미리보기 검색을 수행한다.
이들 구현에서, 시스템은 동적 신경망(390)을 사용하여 미리보기 검색을 수행할 수 있다.
동적 신경망(390)은 특징 표현(312)과 QP 값(388)을 입력으로 수신하고 그 QP 값(388)이 특징 표현(312)으로 표현된 현재 비디오 프레임을 인코딩하는데 사용된 경우 다음 비디오 프레임에 대해 표현 신경망(310)에 의해 생성될 예측(된) 특징 표현(392)을 출력으로 생성하도록 구성된다.
동적 신경망(390)은 신경망이 특징 표현과 QP 값을 예측 특징 표현에 매핑할 수 있도록 하는 임의의 적절한 아키텍처를 가질 수 있다. 예를 들어, 동적 신경망(390)은 다층 퍼셉트론(MLP)일 수 있다. 다른 예로서, 동적 신경망(390)은 일련의 선형 계층를 통해 QP 값(388)을 처리한 다음 결과 표현을 특징 표현(312)에 요소별로 가산(add)할 수 있다. 그러면 동적 신경망(390)은 하나 이상의 컨벌루션 계층 블록(예를 들어, ResNet 또는 ResNet-V2 블록)에 의한 요소별 가산의 출력을 처리하여 예측 특징 표현(392)을 생성할 수 있다.
미리보기 검색을 수행하기 위해 트레이닝 동안 동적 신경망(390)이 사용되는 경우, 시스템은 전송률 제어 신경망(110)과 함께 신경망(390)을 트레이닝한다.
미리보기 검색을 수행하기 위해 동적 신경망(390)을 사용하는 것 및 신경망(390)을 트레이닝하는 것은 도 4를 참조하여 후술한다.
일부 경우에, 전송률 제어 신경망(110)을 트레이닝하는데 사용되는 강화 학습 기술은 비디오 프레임과 같은 인코딩 프로세스의 현재 상태의 값, 즉 예상되는 미래 보상의 관점에서의 값을 나타내는 각 비디오 프레임에 대한 값 예측을 요구할 수 있다. 이러한 경우, 시스템은 인코딩 프로세스의 현재 상태 값의 추정치를 나타내는 값 추정치(332)를 생성하기 위해 특징 표현(312)을 처리하는 값 신경망 헤드(330)를 사용한다. 일부 경우에, 값 신경망 헤드(330)는 단일 값 추정치를 직접 출력하는 MLP일 수 있다. 일부 다른 경우에, 값 신경망 헤드(330)는 MLP에 이어 값 추정 분포의 근사치를 생성하는 암시적 분위수 네트워크(IQN) 계층을 포함할 수 있다.
또한 일부 구현에서, 시스템은 또한 강화 학습을 통해 메인 태스크에 대한 신경망(110)의 트레이닝과 함께 하나 이상의 보조 태스크에 대해 전송률 제어 신경망(110)을 트레이닝한다.
각각의 보조 태스크는 보조 태스크에 대한 출력을 생성하기 위해 대응하는 보조 신경망 헤드를 통해 특징 표현(312)을 처리하는 것을 포함한다.
보조 태스크의 일 예는 (예를 들어, 인코딩된 비디오 프레임에서 획득한 디코딩된 비디오 프레임과 원본 비디오 프레임 사이의 차이의 측정치와 같은 기정의된 품질 기준에 따라) 비디오의 각 프레임을 인코딩할 때 인코딩된 비디오의 전체 품질을 예측해야 하는 전체 품질 예측 태스크이다. 전체 품질 예측 태스크가 트레이닝의 일부로서 포함되는 경우, 시스템은 인코딩된 비디오의 전체 품질에 대한 예측인 전체 품질 추정치(342)를 생성하기 위해 특징 표현(312)을 처리하도록 구성된 전체 품질 신경망 헤드(340)를 사용한다. 일부 경우에, 헤드(340)는 단일 품질 추정치를 직접 출력하는 MLP일 수 있다. 다른 경우에, 헤드(340)는 예를 들어 분포의 분위수를 지정하는 출력을 생성함으로써 품질 추정치 분포의 근사치를 생성하는 MLP일 수 있다.
보조 태스크의 다른 예는 인코딩된 비디오를 표현하는데 필요한 전체 데이터 양, 예를 들어 인코딩된 표현의 총 비트 전송률을 예측해야 하는 전체 데이터 예측 태스크이다. 전체 데이터 예측 태스크가 트레이닝의 일부로서 포함되는 경우, 시스템은 인코딩된 비디오를 표현하는데 필요한 전체 데이터, 예를 들어 인코딩된 표현의 비트 전송률의 예측인 전체 데이터 추정치(352)를 생성하기 위해 특징 표현(312)을 처리하도록 구성된 전체 데이터 신경망 헤드(350)를 사용한다. 일부 경우에, 헤드(350)는 단일 데이터 추정치를 직접 출력하는 MLP일 수 있다. 일부 다른 경우에, 헤드(350)는 예를 들어 분포의 분위수를 지정하는 출력을 생성함으로써 데이터 추정 분포의 근사치를 생성하는 MLP일 수 있다.
보조 태스크의 또 다른 예는 이전에 인코딩된 프레임, 즉 현재 프레임 직전에 인코딩된 프레임의 품질을 예측해야 하는 이전 품질 예측 태스크이다. 이전 프레임 품질 예측 태스크가 트레이닝의 일부로서 포함되는 경우, 시스템은 이전에 인코딩된 프레임의 품질을 예측인 이전 프레임 품질 추정치(362)을 생성하기 위해 특징 표현(312)을 처리하도록 구성된 이전 프레임 품질 신경망 헤드(360)를 사용한다. 일부 경우에, 헤드(360)는 단일 품질 추정치를 직접 출력하는 MLP일 수 있다. 일부 다른 경우에, 헤드(360)는 예를 들어 분포의 분위수를 지정하는 출력을 생성함으로써 품질 추정치 분포의 근사치를 생성하는 MLP일 수 있다.
보조 태스크의 또 다른 예는 이전에 인코딩된 프레임을 표현하는데 필요한 데이터 양, 예를 들어 이전에 인코딩된 프레임을 표현하는데 필요한 비트 수 또는 비트 수의 로그를 예측해야 하는 이전 데이터 예측 태스크이다. 이전 데이터 예측 태스크가 트레이닝의 일부로서 포함되는 경우, 시스템은 이전에 인코딩된 프레임을 표현하는데 필요한 데이터 양의 예측인 이전 데이터 추정치를 생성하기 위해 특징 표현(312)을 처리하도록 구성된 이전 데이터 신경망 헤드(도 3에는 도시되지 않음)를 사용한다. 일부 경우에, 헤드는 단일 데이터 추정치를 직접 출력하는 MLP일 수 있다. 일부 다른 경우에, 헤드는 예를 들어 분포의 분위수를 지정하는 출력을 생성하여 데이터 추정 분포의 근사치를 생성하는 MLP일 수 있다.
신경망(110)의 트레이닝 동안 사용되는 각각의 보조 태스크에 대해, 목적 함수는 태스크에 대한 예측 출력과 태스크에 대한 실측 출력 사이의 오차를 측정하는 보조 태스크에 대한 각각의 항을 포함한다. 예를 들어, 태스크에 대한 예측 출력이 단일 값인 경우, 해당 항은 평균 제곱 오차 또는 L2 오차 항일 수 있다. 태스크에 대한 예측 출력이 가능한 값의 분포에 근접하는 경우, 해당 항은 IQN 손실 항 또는 분위수 회귀 손실 항과 같은 분포 오차항일 수 있다.
각 보조 태스크는 특징 표현(312)을 입력으로 취하기 때문에, 이러한 항의 기울기(gradient)는 역전파를 통해 해당 보조 헤드의 파라미터와 표현 신경망(310)의 파라미터를 업데이트하는데 사용될 수 있다. 즉, 주어진 보조항의 기울기는 해당 보조 헤드를 거쳐 표현 신경망(310)으로 역전파되어 그 표현 신경망(310)의 파라미터 값을 업데이트할 수 있다.
도 4는 전송률 제어 신경망을 트레이닝하기 위한 예시적인 프로세스(400)의 흐름도이다. 편의상, 프로세스(400)는 하나 이상의 위치에 위치한 하나 이상의 컴퓨터 시스템에 의해 수행되는 것으로 설명될 것이다. 예를 들어, 적절하게 프로그래밍된 트레이닝 시스템, 예를 들어 도 2의 트레이닝 시스템(200)은 프로세스(400)를 수행할 수 있다.
시스템은 전송률 제어 신경망의 파라미터를 반복적으로 업데이트하기 위해 트레이닝 데이터 세트로부터 샘플링된 트레이닝 예제에 대한 프로세스(400)를 반복적으로 수행할 수 있다.
시스템은 트레이닝 비디오(즉, 비디오 프레임의 시퀀스)와 트레이닝 비디오에 대한 목표 데이터 측정치을 포함하는 트레이닝 예제를 획득한다(단계 402).
시스템은 또한 트레이닝의 현재 기간, 즉 프로세스(400)의 현재 반복 기간에서 트레이닝 비디오를 인코딩할 때 전송률 제어 신경망의 효율성을 측정하는 트레이닝 비디오에 대한 과거(historical) 성능 데이터를 획득한다.
일반적으로, 과거 성능는 (i) 품질 측정(예를 들어, PSNR, SSIM, VMAF 또는 CoinVQ)에 따른 과거 품질 및 (ii) 목표 데이터 측정과 관련된 과거 데이터 효율성을 측정한다.
구체적인 예로, 과거 성능 데이터는 (i) 트레이닝 예제에 대해 이전에 계산된 품질 측정치의 지수 이동 평균 및 (ii) 트레이닝 예제에 대해 이전에 계산된 데이터 측정치 오버슈트의 지수 이동 평균을 포함할 수 있다. 특정 인코딩 실행에 대한 오버슈트는 인코딩 실행에 대한 데이터 측정치와 목표 데이터 측정치 간의 차이이다.
시스템이 아직 트레이닝을 위한 트레이닝 예제를 사용하지 않은 경우, 일부 구현에서, 시스템은 트레이닝 예제시에 대한 이동 평균을 사전 결정된 디폴트값으로 초기화할 수 있다. 예를 들어, 시스템은 오버슈트의 지수 이동 평균을 0으로 설정하면서 품질 측정치의 지수 이동 평균을 사전 결정된 양의 정수로 설정할 수 있다. 일부 다른 구현에서, 시스템은 트레이닝 비디오(목표 데이터 측정 쌍 또는 트레이닝 비디오 특징 - 목표 데이터 측정 쌍)를 처리하도록 트레이닝된 신경망을 사용하여 트레이닝 비디오(또는 트레이닝 비디오의 특징) 및 목표 데이터 측정치를 지정하는 데이터를 처리하여 각 쌍에 대해 예측된 베이스라인(기준) 품질 측정치 및 베이스라인 초과 측정치를 생성함으로써 초기 이동 평균을 생성할 수 있다. 이어서 시스템은 신경망에 의해 생성된 해당 베이스라인 측정값과 동일하도록 EMA를 초기화할 수 있다.
시스템은 전송률 제어 신경망을 사용하여 전송률 제어 신경망의 파라미터의 현재 값에 따라 트레이닝 비디오로부터 인코딩된 비디오를 생성한다(단계 404).
특히, 트레이닝 비디오의 각 비디오 프레임에 대해, 시스템은 가능한 양자화 파라미터 값 각각에 대한 개별 정책 스코어를 포함하는 정책 출력을 생성하고, 그 정책 출력을 사용하여 양자화 파라미터 값을 선택한 다음, 비디오 코덱을 사용하여 양자화 파라미터 값에 따라 비디오 프레임을 인코딩한다. 예를 들어, 시스템은 가장 높은 정책 스코어를 갖는 양자화 파라미터 값을 선택하거나 트레이닝 비디오에 대한 각각의 정책 스코어에 의해 정의된 분포에서 양자화 파라미터 값을 샘플링할 수 있다.
일부 구현에서, 주어진 프레임에 대해, 시스템은 위에서 설명한 전송률 제어 신경망을 사용하여 주어진 비디오 프레임에 대한 특징 세트를 처리하여 개별 스코어 세트를 생성한 다음 전송률 제어 신경망에 의해 생성된 스코어들을 정책 스코어로 사용한다. 즉, 전송률 제어 신경망의 출력으로부터 직접 주어진 비디오 프레임에 사용될 양자화 파라미터 값을 선택한다.
일부 다른 구현에서, 시스템은 전송률 제어 신경망에 의해 안내된 미리보기 검색을 수행하고 동적 신경망을 사용하여 정책 출력을 생성한다.
미리보기 검색을 수행할 때, 시스템은 현재 프레임의 인코딩 프로세스의 현재 상태를 나타내는 루트 노드가 있는 인코딩 프로세스의 상태를 나타내는 트리를 초기화한다. 인코딩 프로세스의 "상태"는 해당 상태에 대한 현재 프레임 이전의 모든 프레임이 인코딩되었으며 시스템이 현재 프레임에 대한 QP 값을 결정해야 하는 인코딩 프로세스의 지점(point)에 해당한다.
이어서 시스템은 다수의 계획(planning) 반복을 수행하여 정책 출력을 생성한다. 각 계획 반복에는 일반적으로 상태 트리에 있는 해당 노드-에지 쌍에 대해 컴파일된 통계에 따라 개별 QP 값을 반복적으로(즉, 각 계획 반복의 다수의 계획 단계 각각에서) 선택하기 위해 몬테카를로 트리 검색과 같은 미리보기 검색을 수행하는 것이 포함된다. 이를 통해 시스템은 현재 특징 표현으로 특징지어지는 현재 상태에서 시작하여 인코딩 프로세스의 가능한 미래 상태를 탐색할 수 있다.
보다 구체적으로 말하면, 각 계획 반복에서, 시스템은 상태 트리의 루트 노드에서 시작하여 미리보기 검색을 시작하고 상태 트리의 리프 노드에 의해 표현되는 가능한 미래 상태가 식별될 때까지 트리에 있는 노드들에 대해 컴파일되었던 통계와 동적 신경망(390)을 사용하여 미리보기 검색을 계속한다. 그런 다음 시스템은 정책 헤드(320), 값 헤드(330) 또는 둘 모두를 사용하여 리프(leaf) 노드를 확장하고 트리의 노드들에 대해 컴파일되었던 통계를 업데이트한다.
마지막 계획 반복 후, 시스템은 트리의 루트 노드에 대해 컴파일된 통계로부터 정책 출력을 생성한다.
트리 검색을 수행하는 것은 "MuZero" 기술이라고 하며, J. Schrittwieser, I. Antonoglou, T. Hubert, K. Simonyan, L. Sifre, S. Schmitt, A. Guez, E. Lockhart, 430 D. Hassabis, T. Graepel, T. P. Lillicrap 및 D. Silver. Mastering Atari, Go, Chess and Shogi에 의한 "학습 모델을 이용한 계획" (네이처, 588(7839):604?609, 2020)에 보다 상세히 기술되어 있고, 그 전체 내용은 본 명세서에 전체적으로 포함되어 있다.
시스템은 인코딩된 비디오에 대한 품질 측정치(예를 들어, PSNR 또는 다른 적절한 품질 측정치) 및 데이터 측정치(예를 들어, 비트 전송률 또는 다른 적절한 데이터 측정치)을 계산한다(단계 406).
시스템은 인코딩된 비디오에 대한 현재 성능 데이터, 즉 데이터 측정치와 현재 오버슈트로 표시된 바와 같은, 즉 현재 데이터 측정치와 목표 데이터 측정치 간의 차이를 결정한다(단계 408).
이어서 시스템은 과거 데이터와 현재 성능 데이터로부터 트레이닝 예제에 대한 보상값을 결정한다(단계 410).
시스템은 다양한 방법으로 보상값을 계산할 수 있다.
일 예로, 현재 오버슈트 또는 지수 이동 평균(EMA) 오버슈트가 0보다 큰 경우, 시스템은 현재 오버슈트가 EMA 오버슈트 이하이면 보상값을 양수값(예를 들어, 1)으로 설정하고, 그렇지 않은 경우 보상값을 음수값(예를 들어, -1)으로 설정할 수 있다. 현재 오버슈트와 EMA 오버슈트 모두 0보다 크지 않은 경우, 시스템은 현재 품질 측정이 EMA 품질 측정과 동일하거나 그 이상인 경우 보상을 양수값과 동일하게 설정할 수 있으며, 그렇지 않은 경우 보상값을 음수값으로 설정할 수 있다.
다른 예로서, 시스템은 현재 품질 측정을 품질 측정치에서 람다와 오버슈트의 곱을 뺀 것과 동일한 항("현재 성능 측정치")으로 대체하고(여기서 람다는 양수값, 예를 들어, .005 또는 .01보다 작은 다른 값) 그리고 EMA 품질 측정치를 EMA 품질 측정치에서 람다와 EMA 오버슈트의 곱을 뺀 것과 동일한 항("과거 성능 측정치")로 대체함으로써 위의 비교를 수정할 수 있다.
또 다른 예로, 시스템은 현재 성능 측정치가 과거 성능 측정값보다 제1 임계량 이상으로 큰 경우 보상값을 양수값(예를 들어, 1)으로 설정할 수 있으며, 현재 성능 측정치가 과거 성능 측정치보다 제1 임계량 이상으로 작은 경우 보상값을 음수값(예를 들어, -1)으로 설정할 수 있다.
이러한 경우 중 일부에서, 현재 성능 측정치가 과거 성능 측정값보다 크거나 작은 제1 임계량을 초과하지 않는 경우, 시스템은 보상값을 0으로 설정한다.
다른 경우에서, 현재 성능 측정치가 과거 성능 측정값보다 크거나 작은 제1 임계량을 초과하지 않는 경우, 시스템은 현재 오버슈트와 EMA 오버슈트를 사용하여 보상을 결정한다.
특히, 시스템은 EMA 오버슈트가 현재 오버슈트보다 제2 임계량 이상만큼 큰 경우 보상값을 양수값으로 설정할 수 있으며, 현재 오버슈트가 현재 오버슈트보다 제2 임계량 이상만큼 작은 경우 보상값을 음수값으로 설정하고, 그렇지 않으면 보상을 0으로 설정한다. 제1 및 제2 값은 예를 들어 시스템에 입력으로 제공되거나 기존의 하이퍼파라미터 검색 기술을 사용하여 하이퍼파라미터 스윕(sweep)을 통해 결정될 수 있다.
시스템은 또한 인코딩된 비디오에 대한 품질 측정치 및 현재 오버슈트를 사용하여 과거 성능 데이터를 업데이트한다. 예를 들어, 시스템은 현재 품질 측정치와 데이터 측정치를 통합하기 위해 즉, 보간 가중치(예를 들어, .9, .95 또는 .85)에 따라 과거 수량과 대응하는 현재 수량 사이를 보간함으로써 각각의 지수 이동 평균을 업데이트할 수 있다.
시스템은 예를 들어 강화 학습 기술에 해당하는 하나 이상의 항과 선택적으로 위에서 설명한 각각의 보조 태스크에 해당하는 개별 항을 포함하는 목적 함수의 기울기를 계산함으로써 보상값을 사용하여 전송률 제어 신경망의 모델 파라미터 값에 대한 업데이트를 결정한다(단계 412).
위에서 설명한 바와 같이, 적절한 강화 학습 알고리즘과 해당 목적 함수는 더 높은 보상값을 생성하는 QP 결정을 생성하도록 전송률 제어 신경망을 장려하는데 사용될 수 있다.
예를 들어, 위에서 설명한 MuZero 트레이닝 방식이 사용되는 경우, 트레이닝의 모든 단계에서, 시스템은 특정 수의 최신 비디오를 인코딩한 결과를 저장하는 경험 재생 버퍼로부터 상태의 배치(batch), 즉 해당 프레임이 인코딩되는 상태의 배치를 균일하게 샘플링할 수 있다. 각 상태에 대해, 시스템은 또한 후속 액션의 지정된 수(예를 들어, 5개), 즉 후속 QP 결정의 지정된 수 및 필요한 라벨(해당 보상, 미리보기 검색의 결과, 및 사용되는 경우 해당 실측 보조 태스크 출력)을 샘플링할 수 있다. 이어서 시스템은 표현 네트워크를 사용하여 상태의 임베딩을 생성하고, 동적 네트워크를 5번 펼쳐 후속 임베딩을 생성한다. 그런 다음 정책, 값 및 보조 네트워크 헤드는 현재 및 후속 상태에 대한 정책, 값 및 보조 메트릭에 대한 예측을 출력한다. 후속 액션의 특정 갯수가 5개이고 값과 보조 헤드가 각각 분포에 근접한 출력을 생성하는 경우, 사용될 수 있는 목적 함수의 한 가지 예는 샘플링된 각 상태에 대해, 다음을 충족할 수 있다.
여기서 a는 양의 상수(예를 들어, 6)이고, b는 다른 양의 상수(예를 들어, .5)이고, c는 또 다른 양의 상수(예를 들어, .1)이며, t의 범위는 샘플링된 상태인 t=0부터 t=5까지이다. 마지막 후속 상태인 LCE()는 (i) 상태가 속한 비디오를 인코딩하는 동안 미리보기 검색에 의해 생성된 정책 출력(πt)와 (ii) 정책 출력(π) 사이의 교차 엔트로피 손실이다. 상태(t)에 대한 상태 표현을 처리함으로써 정책 헤드에 의해 생성된 정책 출력() 사이의 교차 엔트로피 손실이고, LIQN()은 상태(t)가 속한 비디오에 대한 보상()과 값 헤드에 의해 생성된 값 예측()사이의 IQN 손실이고, ΣAuxiliary는 사용 중인 보조 태스크들에 대한 합계이며, LQR()은 상태(t)에 대한 해당 보조 태스크의 실측 출력()과 상태(t)에 대한 해당 보조 태스크의 예측 출력()사이의 분위수 회귀 손실이다.
선택적으로, 목적 함수는 또한 목적 함수의 다른 항에 추가되는 정규화 항, 예를 들어 L2-정규화 항을 포함할 수 있다. 예를 들어, L2-정규화 항은 를 만족할 수 있으며 여기서 θ는 트레이닝 중인 신경망의 파라미터이다.
트레이닝 데이터를 생성할 때 미리보기 검색을 사용하지 않는 등 다른 강화 기술이 사용되는 경우, 목적 함수는 예를 들어 정책 출력, 보상, 선택적으로 값 예측, 그리고 추가로 선택적으로 위에서 설명한 각 보조 태스크에 대한 개별 항에서 도출된 정책 기울기 기반 손실을 포함할 수 있다.
전술한 바와 같이, 본 명세서에 설명된 바와 같이 신경망을 트레이닝시키면 QP 값을 결정하기 위한 기존 방식에 비해 재구성 품질이 향상된다. 특정 예로서, 표 1은 설명된 기술의 2가지 변형에 대해, 기존 libvpx QP 결정을 사용하는 것과 비교하여 3가지 다른 품질 메트릭(평균 PSNR, 평균 SSIM 및 평균 VMAF)에 대한 BD- 전송률(Bjontegaard-delta 전송률) 차이를 보여준다. 비트 전송률 대 두 정책의 PSNR 곡선이 주어지면, BD-전송률은 중첩된 PSNR 범위에서 동일한 PSNR에 대한 평균 비트 전송률 차이를 계산하므로 동일한 품질로 비디오를 인코딩할 때의 평균 비트 전송률 감소를 측정한다. 여기서 MuZero-RC는 5개의 후속 액션에 대해 미리보기를 사용하는 본 발명에 따른 시스템을 의미하며, 음의 오버슈트가 있는 인코딩의 경우 보상값은 오버슈트를 고려하지 않고 PSNR 값을 기준으로 계산된다. "증강된 MuZero-RC"는 음의 오버슈트가 있는 인코딩의 경우 PSNR 값에서 0.005와 오버슈트의 곱을 뺀 값에 기초하여 보상이 계산되는 변형, 즉, PSNR을 개선할 수 없는 경우에도 에이전트가 오버슈트를 줄이도록 보상을 계산할 때 람다를 사용하는 위에서 설명한 기술이다.
[표 1]
추가적으로, 아래 표 2에서 볼 수 있는 바와 같이, 명된 기술을 사용하면 기존 libvpx QP 결정보다 대상 비트 전송률을 훨씬 덜 빈번하게 오버슈팅하게 된다.
[표 2]
따라서 설명된 기술은 비디오를 인코딩하고 재구성할 때 더 나은 재구성 품질과 더 나은 데이터 효율성을 제공한다.
이는 도 5 및 도 6에서 추가로 입증된다.
도 5는 libvpx 기술과 관련하여 설명된 기술에 의해 달성된 오버슈트의 히스토그램(502, 504, 506)을 도시한다. 히스토그램(502, 504, 506)에서 알 수 있는 바와 같이, 설명된 기술은 전체 및 개별 목표 비트 전송률 모두에 대해 libvpx 기술보다 훨씬 덜 빈번하게 오버슈트한다. 도 5에는 도시되지 않았지만, 다른 더 높은 목표 비트 전송률, 예를 들어 384, 448, 512 및 576Kbps에 대해서도 동일한 효과가 발견되었다.
도 6은 libvpx 기술과 관련하여 설명된 기술의 BD 전송률 차이의 히스토그램(602, 604, 606)을 도시한다. 히스토그램(504, 504, 506)에서 알 수 있는 바와 같이, 설명된 기술은 다양한 비디오 품질 측정에 대해 동일한 목표 비트 전송률이 주어지면 더 나은 성능을 달성한다.
도 7은 표현 신경망의 보다 상세한 예시적인 아키텍처를 도시한다.
이 네트워크는 환경에서 제공하는 특징을 입력으로 사용하고 현재 상태를 출력으로 임베딩한다. 이것은 위에서 "특징 표현"이라고도 지칭되었다. 임의의 상태에 대해, 인코딩 환경은 다음과 같은 관찰을 생성한다.
1. 비디오의 모든 쇼 프레임에 대한 제1 패스 통계 시퀀스. 예를 들어, 시스템은 "모방 학습을 이용한 비디오 인코딩을 위한 신경 속도 제어"(2020, arXiv:2012.05339)"라는 제목의 H. Mao, C. Gu, M. Wang, A. Chen, N. Lazic, N. Levine, D. Pang, R. Claus, M. Hechtman, C.-H. Chiang, C. Chen, and J. Han에 의해 사용된 제1 패스 통계 및 특징 정규화 방법 중 일부 또는 전부를 사용할 수 있다.
2. 해당 프레임의 인덱스와 함께 지금까지 비디오에서 이전에 인코딩된 모든 프레임에 대한 PSNR 시퀀스, 사용된 비트 수 및 적용된 QP.
3. 다음에 인코딩될 프레임의 인덱스 및 유형. 유형은 SimpleEncode API의 5가지 프레임 유형 중 하나일 수 있다.
4. 비디오의 지속 시간.
5. 인코딩의 목표 비트 전송률.
추가적으로, 시스템은 이전에 인코딩된 프레임 및 비디오 지속 시간에 사용된 비트를 사용하여 인코딩에서 지금까지 사용된 목표 비트 전송률의 일부를 생성할 수 있다. 시스템은 이 일부를 추가 스칼라 특징으로서 사용할 수 있다.
표현 네트워크는 프레임의 인덱스를 따라 처음 두 개의 순차적 특징을 정렬하고 특징 차원을 따라 그 정렬된 시퀀스들을 연결한다. 이 연결된 시퀀스는 일련의 4개의 프랜스포머-XL 인코더 블록을 사용하여 처리된다[Dai et al., 2019]. 이 시퀀스로부터, 다음에 인코딩될 프레임의 인덱스에 있는 항목이 추출된다. 이 항목은 나머지 스칼라 특징들과 연결되고 중간 계층 정규화를 갖춘 두 개의 피드포워드 계층를 사용하여 처리된다[Ba et al., 2016]. 네트워크는 일련의 4개 계층 정규화된 ResNet-V2 블록을 사용하여 이러한 계층들의 출력을 처리한다[He et al., 2016]. 이들 블록의 출력은 상태의 임베딩("특징 표현")이다. 시스템은 예를 들어 512개 단위의 임베딩을 사용할 수 있다. 모든 계층는 ReLU를 활성화 함수로 사용한다.
도 8은 동적 신경망의 보다 상세한 예시적인 아키텍처를 도시한다.
도 8에 도시된 바와 같이, 네트워크는 상태의 임베딩과 해당 상태에 적용될 QP를 입력으로 취한다. QP를 적용한 후 도달한 다음 상태의 임베딩을 출력으로 생성한다. 이 네트워크는 중간 계층 정규화를 갖춘 두 개의 피드포워드 계층을 사용하여 QP를 처리하여 이전 상태의 임베딩과 동일한 차원의 벡터를 출력한다. 이 벡터와 이전 상태의 임베딩의 요소별 가산을 수행하고, 일련의 4개 계층 정규화된 ResNet-V2 블록으로 그 결과를 처리한다. 이러한 블록들의 출력은 QP를 적용한 후 도달한 다음 상태의 임베딩이다. 모든 계층는 ReLU를 활성화 함수로 사용한다.
도 9는 정책 헤드, 값 헤드, 및 보조 태스크 헤드 세트의 보다 상세한 예시적인 아키텍처를 도시한다.
도 9에 도시된 바와 같이, 신경망은 상태의 임베딩을 취하여 출력으로서 정책, 값 및 여러 보조 예측을 생성한다. 정책 예측을 위해, 네트워크는 256개의 은닉 유닛이 있는 2개의 피드포워드 계층과 계층 정규화에 이어 각 QP 값에 대한 로짓(logits)을 나타내는 256개 유닛의 선형 계층을 사용하여 상태 임베딩을 처리한다. 정책 출력을 생성하기 위해 이러한 로짓에 소프트맥스 함수가 적용된다. 값 예측을 위해, 네트워크는 256개의 은닉 유닛이 있는 2개의 피드포워드 계층과 계층 정규화에 이어 64개 유닛의 선형 계층으로 상태 임베딩을 처리한다. 이 계층의 출력은 값 예측의 샘플을 생성하는 IQN 계층에 대한 임베딩으로서 사용된다. 자체 경쟁 기반 보상 메커니즘의 값은 [-1, 1]로 제한되므로 네트워크는 이러한 샘플에 tanh 함수를 적용하여 범위(-1, 1)에서 546개를 제한한다. 트레이닝 시, 시스템은 자체 경쟁 보상과 일치하도록 IQN 계층에서 8개의 샘플을 추출한다. 추론 시, 미리보기 검색이 사용되는 경우, 시스템은 샘플링 대신 예상 값을 사용할 수 있다.
각각의 보조 예측에 대해, 네트워크는 256개의 은닉 유닛이 있는 2개의 피드포워드 계층과 계층 정규화에 이어 64개 유닛의 선형 계층으로 상태 임베딩을 처리한다. 이 계층의 출력은 해당 보조 예측의 균일한 간격의 분위수(quantiles)를 나타낸다. 도 9의 예에서. 시스템은 다음 메트릭(측정항목)을 보조 예측으로서 예측한다. 1. 마지막 인코딩된 프레임의 PSNR(프레임이 인코딩되지 않은 경우 0), 2. 마지막 인코딩된 프레임에서 사용된 비트 수의 로그(프레임이 인코딩되지 않은 경우 0), 3. 인코딩되는 비디오의 예상 PSNR. 4. 인코딩되는 비디오의 예상 비트 전송률. 직관적으로, 이러한 보조 예측은 신경망이 비디오 인코딩 프로세스의 역학 (dynamics)을 "이해"하는데 도움이 되며, 이를 통해 트레이닝된 네트워크의 최종 품질을 향상시킬 수 있다. 달리 지정되지 않는 한 모든 계층은 ReLU를 활성화 함수로 사용한다.
MuZero 기술을 사용하여 전송률 제어 신경망을 트레이닝하기 위한 예시 프레임워크에 대한 설명은 다음과 같다.
시스템은 경험 재생을 통해 비동기식 분산 행위자-학습자 설정에서, 즉 여러 행위자와 선택적으로 여러 학습자를 사용하여 신경망("에이전트"라고도 지칭됨)을 트레이닝할 수 있다. 시스템은 각 [비디오, 목표 비트 전송률] 쌍에 대한 에이전트의 EMA 기반 과거 성능을 추적하기 위해 모든 행위자 간에 공유 버퍼를 유지할 수 있다. 각 행위자는 트레이닝 데이터 세트로부터 무작위로 샘플 [비디오, 목표 비트 전송률] 쌍을 처리하고, 최신 네트워크 파라미터 및 예를 들어 MuZero의 MCTS 알고리즘에 대한 200개의 시뮬레이션을 사용하여 이들을 인코딩하기 위한 QP를 생성한다. 에피소드에 대한 자체 경쟁 기반 보상은 위와 같이 계산되고 에피소드는 경험 재생 버퍼에 더해진다. 학습자 프로세스는 경험 재생 버퍼에서 전환을 샘플링하여 네트워크를 트레이닝하고, 업데이트된 파라미터를 정기적으로 행위자 프로세스로 보낸다.
구체적인 예로서, 시스템은 행위자 프로세스에 의해 생성된 50,000개의 최신 에피소드의 버퍼를 유지하고 재생 버퍼로부터 배치 크기 512의 샘플을 추출하여 학습자에게 제공할 수 있다.
위의 기술에서는 전송률 제어를 수행하도록 신경망을 트레이닝시키기 위해 강화 학습을 적용하는 방법을 설명하고 있지만, 인코딩 프로세스의 다른 양태를 수행하도록 신경망을 트레이닝하는 데에도 동일한 기술을 사용할 수 있다는 점을 이해해야 한다. 예를 들어, 설명된 기술은 블록 분할, 참조 프레임 선택 또는 둘 모두를 수행하도록 신경망을 트레이닝하는데 사용될 수 있다.
본 명세서에서는 시스템 및 컴퓨터 프로그램 구성 요소와 관련하여 "구성된"이라는 용어를 사용한다. 하나 이상의 컴퓨터로 구성된 시스템이 특정 동작이나 액션을 수행하도록 구성된다는 것은 시스템에 소프트웨어, 펌웨어, 하드웨어 또는 동작시 시스템이 그 동작이나 액션을 수행하게 하는 이들의 조합이 설치되어 있음을 의미한다. 하나 이상의 컴퓨터 프로그램이 특정 동작 또는 애션을 수행하도록 구성된다는 것은 하나 이상의 프로그램이 데이터 처리 장치에 의해 실행될 때 그 장치가 동작 또는 액션을 수행하게 하는 명령을 포함한다는 것을 의미한다.
본 명세서에 기술된 주제 및 기능적 동작의 실시예는 디지털 전자 회로, 유형으로 구현된 컴퓨터 소프트웨어 또는 펌웨어, 본 명세서에 개시된 구조 및 그 구조적 등가물을 포함하는 컴퓨터 하드웨어, 또는 이들 중 하나 이상의 조합으로 구현될 수 있다. 본 명세서에 설명된 주제의 실시예는 하나 이상의 컴퓨터 프로그램, 즉 데이터 처리 장치에 의해 실행되거나 데이터 처리 장치의 동작을 제어하기 위해 유형의 비일시적 저장 매체에 인코딩된 컴퓨터 프로그램 명령의 하나 이상의 모듈로 구현될 수 있다. 컴퓨터 저장 매체는 기계 판독 가능 저장 디바이스, 기계 판독 가능 저장 기판, 랜덤 또는 직렬 액세스 메모리 디바이스, 또는 이들 중 하나 이상의 조합일 수 있다. 대안적으로 또는 추가적으로, 프로그램 명령은 데이터 처리 장치에 의한 실행을 위해 적절한 수신기 장치로 전송하기 위한 정보를 인코딩하기 위해 생성된 인공적으로 생성된 전파 신호, 예를 들어 기계 생성 전기, 광학 또는 전자기 신호에 인코딩될 수 있다.
"데이터 처리 장치"라는 용어는 데이터 처리 하드웨어를 지칭하며, 예를 들어 프로그래밍 가능한 프로세서, 컴퓨터 또는 다중 프로세서 또는 컴퓨터를 포함하여 데이터를 처리하기 위한 모든 종류의 장치, 디바이스 및 기계를 포함한다. 장치는 또한 특수 목적 논리 회로, 예를 들어 FPGA(필드 프로그래밍 가능 게이트 어레이) 또는 주문형 집적회로(ASIC)일 수 있거나 이를 더 포함할 수 있다. 장치는 하드웨어 외에 선택적으로 컴퓨터 프로그램의 실행 환경을 생성하는 코드(예를 들어, 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제 또는 이들 중 하나 이상의 조합을 구성하는 코드)를 포함할 수 있다.
프로그램, 소프트웨어, 소프트웨어 애플리케이션, 앱, 모듈, 소프트웨어 모듈, 스크립트 또는 코드라고도 지칭되거나 설명될 수 있는 컴퓨터 프로그램은 파일된 언어나 해석된 언어, 선언적 언어나 절차적 언어를 포함한 모든 형태의 프로그래밍 언어로 작성될 수 있으며, 독립 실행형 프로그램, 모듈, 구성 요소, 서브루틴 또는 컴퓨팅 환경에서 사용하기에 적합한 기타 유닛을 포함하여 모든 형태로 배포될 수 있다. 프로그램은 파일 시스템의 파일에 해당할 수 있지만 반드시 그럴 필요는 없다. 프로그램은 다른 프로그램이나 데이터를 보유하는 파일의 일부(예를 들어, 마크업 언어 문서에 저장된 하나 이상의 스크립트), 해당 프로그램 전용 단일 파일 또는 다수의 조정된 파일(예를 들어, 하나 이상의 모듈, 하위 프로그램 또는 코드 일부를 저장하는 파일)에 저장될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터 또는 하나의 사이트에 위치하거나 다수의 사이트에 걸쳐 분산되고 데이터 통신 네트워크로 상호 연결된 다수의 컴퓨터에서 실행되도록 배포될 수 있다.
본 명세서에서, "데이터베이스"라는 용어는 임의의 데이터 모음을 지칭하는데 광범위하게 사용되며, 데이터는 특정 방식으로 구성되거나 전혀 구성될 필요가 없으며 하나 이상의 위치에 있는 저장 장치에 저장될 수 있다. 따라서, 예를 들어, 인덱스 데이터베이스에는 다수의 데이터 모음이 포함될 수 있으며, 각각의 데이터 모음은 다르게 구성되고 액세스될 수 있다.
마찬가지로, 본 명세서에서 "엔진"이라는 용어는 하나 이상의 특정 기능을 수행하도록 프로그래밍된 소프트웨어 기반 시스템, 하위 시스템 또는 프로세스를 지칭하기 위해 광범위하게 사용된다. 일반적으로, 엔진은 하나 이상의 위치에 있는 하나 이상의 컴퓨터에 설치된 하나 이상의 소프트웨어 모듈 또는 구성 요소로 구현된다. 일부 경우에, 하나 이상의 컴퓨터는 특정 엔진 전용으로 사용되고 다른 경우에서는 다수의 엔진이 동일한 컴퓨터 또는 컴퓨터들에 설치되어 실행될 수 있다.
본 명세서에 설명된 프로세스 및 논리 흐름은 입력 데이터에 대해 작동하고 출력을 생성함으로써 기능을 수행하는 하나 이상의 컴퓨터 프로그램을 실행하는 하나 이상의 프로그래밍 가능한 컴퓨터에 의해 수행될 수 있다. 프로세스 및 논리 흐름은 FPGA 또는 ASIC과 같은 특수 목적 논리 회로에 의해 수행되거나 특수 목적 논리 회로와 하나 이상의 프로그래밍된 컴퓨터의 조합에 의해 수행될 수도 있다.
컴퓨터 프로그램 실행에 적합한 컴퓨터는 범용 또는 특수 목적의 마이크로프로세서 또는 둘 다를 기반으로 하거나 다른 종류의 중앙 처리 장치를 기반으로 할 수 있다. 일반적으로, 중앙 처리 장치는 읽기 전용 메모리나 랜덤 액세스 메모리 또는 둘 다로부터 명령과 데이터를 수신한다. 컴퓨터의 구성 요소는 명령을 수행하거나 실행하는 중앙 처리 장치와 명령 및 데이터를 저장하는 하나 이상의 메모리 디바이스이다. 중앙 처리 장치와 메모리는 특수 목적 논리 회로에 의해 보완되거나 통합될 수 있다. 일반적으로, 컴퓨터는 또한 데이터를 저장하기 위한 하나 이상의 대용량 저장 디바이스, 예를 들어 자기, 광자기 디스크 또는 광 디스크로부터 데이터를 수신하거나 전송하거나 둘 모두를 포함하거나 작동 가능하게 결합될 것이다. 그러나, 컴퓨터에 이러한 디바이스들이 있을 필요는 없다. 게다가, 컴퓨터는 다른 디바이스, 예를 들어 휴대폰, PDA(Personal Digital Assistant), 모바일 오디오 또는 비디오 플레이어, 게임 콘솔, GPS(Global Positioning System) 수신기, 또는 휴대용 저장 디바이스(예를 들어, USB(범용 직렬 버스) 플래시 드라이브) 등에 내장될 수 있다.
컴퓨터 프로그램 명령 및 데이터를 저장하는데 적합한 컴퓨터 판독 가능 매체에는 예를 들어 반도체 메모리 디바이스(예를 들어, EPROM, EEPROM 및 플래시 메모리 디바이스); 자기 디스크(예를 들어, 내부 하드 디스크 또는 이동식 디스크); 광자기 디스크; CD ROM 및 DVD-ROM 디스크를 비롯하여 모든 형태의 비휘발성 메모리, 매체 및 메모리 디바이스가 포함된다. .
사용자와의 상호 작용을 제공하기 위해, 본 명세서에 설명된 주제의 실시예는 정보를 표시하기 위한 디스플레이 디바이스(예를 들어, CRT(음극선관) 또는 LCD(액정 디스플레이) 모니터)와 사용자가 컴퓨터에 입력을 제공할 수 있는 키보드 및 포인팅 디바이스(예를 들어, 마우스 또는 트랙볼)를 갖춘 컴퓨터에서 구현될 수 있다. 사용자와의 상호작용을 제공하기 위해 다른 종류의 장치도 사용될 수 있는데, 예를 들어, 사용자에게 제공되는 피드백은 시각적 피드백, 청각 피드백 또는 촉각 피드백과 같은 임의의 형태의 감각 피드백일 수 있고, 사용자로부터의 입력은 음향, 음성 또는 촉각 입력을 포함한 모든 형태로 수신될 수 있다. 더욱이, 컴퓨터는 사용자가 사용하는 디바이스와 문서를 주고받는 방식으로 사용자와 상호 작용할 수 있는데, 예를 들어, 웹 브라우저에서 받은 요청에 대한 응답으로 사용자 디바이스의 웹 브라우저로 웹 페이지를 보낸다. 또한, 컴퓨터는 문자 메시지 또는 다른 형태의 메시지를 개인 디바이스(예를 들어, 메시징 애플리케이션을 실행하는 스마트폰)로 전송하고 그 대가로 사용자로부터 응답 메시지를 수신함으로써 사용자와 상호 작용할 수 있다.
기계 학습 모델을 구현하기 위한 데이터 처리 장치는 또한 예를 들어, 기계 학습 트레이닝 또는 생산의 공통적이고 컴퓨팅 집약적인 부분, 즉 추론, 워크로드를 처리하기 위한 특수 목적 하드웨어 가속기 장치를 포함할 수 있다.
기계 학습 모델은 기계 학습 프레임워크(예를 들어, TensorFlow 프레임워크, Microsoft Cognitive Toolkit 프레임워크, Apache Singa 프레임워크 또는 Apache MXNet 프레임워크)를 사용하여 구현되고 배포될 수 있다.
본 명세서에 설명된 주제의 실시예는 백엔드 구성요소(예를 들어, 데이터 서버)를 포함하거나, 미들웨어 구성 요소(예를 들어, 애플리케이션 서버)를 포함하거나, 프런트엔드 구성 요소(예를 들어, 사용자가 본 명세서에 설명된 주제의 구현과 상호 작용할 수 있는 그래픽 사용자 인터페이스, 웹 브라우저 또는 앱을 갖춘 클라이언트 컴퓨터)를 포함하거나, 또는 백엔드, 미들웨어 또는 프런트엔드 구성 요소 중 하나 이상의 조합을 포함하는 컴퓨팅 시스템에서 구현될 수 있다. 시스템의 구성 요소는 통신 네트워크와 같은 디지털 데이터 통신의 모든 형태나 매체를 통해 상호 연결될 수 있다. 통신 네트워크의 예로는 LAN(Local Area Network) 및 WAN(Wide Area Network), 예를 들어 인터넷이 포함된다.
컴퓨팅 시스템에는 클라이언트와 서버가 포함될 수 있다. 클라이언트와 서버는 일반적으로 서로 멀리 떨어져 있으며 일반적으로 통신 네트워크를 통해 상호 작용한다. 클라이언트와 서버의 관계는 각 컴퓨터에서 실행되고 서로 클라이언트-서버 관계를 갖는 컴퓨터 프로그램으로 인해 발생한다. 일부 실시예에서, 서버는 예를 들어 클라이언트 역할을 하는 장치와 상호 작용하는 사용자에게 데이터를 디스플레이하고 사용자 입력을 수신할 목적으로 데이터(예를 들어, HTML 페이지)를 사용자 디바이스로 전송한다. 사용자 디바이스에서 생성된 데이터(예를 들어, 사용자 상호 작용의 결과)는 디바이스로부터 서버에 수신될 수 있다.
본 명세서에는 많은 구체적인 구현 세부 정보가 포함되어 있지만, 이는 임의의 발명의 범위 또는 청구될 수 있는 범위에 대한 제한으로 해석되어서는 안 되며, 오히려 특정 발명의 특정 실시예에 특정할 수 있는 특징들에 대한 설명으로 해석되어야 한다. 별도의 실시예와 관련하여 본 명세서에 설명된 특정 특징은 단일 실시예에서 조합하여 구현될 수도 있다. 반대로, 단일 실시예의 맥락에서 설명된 다양한 특징은 다수의 실시예에서 개별적으로 또는 임의의 적절한 하위 조합으로 구현될 수도 있다. 더욱이, 위에서는 특징들이 특정 조합으로 작용하는 것으로 설명될 수 있고 심지어 처음에는 그렇게 주장되었을 수도 있지만, 청구된 조합의 하나 이상의 특징은 경우에 따라 조합에서 삭제될 수 있으며, 청구된 조합은 하위 조합 또는 하위 조합의 변형과 관련될 수 있다.
마찬가지로, 동작들은 특정 순서로 도면에 묘사되고 청구범위에 기재되어 있지만, 이는 원하는 결과를 달성하기 위해 그러한 동작들이 표시된 특정 순서 또는 순차적 순서로 수행되거나 모든 설명된 동작이 수행되어야 한다고 요구하는 것으로 이해되어서는 안 된다. 특정 상황에서는 멀티태스킹과 병렬 처리가 유리할 수 있다. 더욱이, 전술한 실시예에서 다양한 시스템 모듈 및 구성요소의 분리는 모든 실시예에서 그러한 분리를 요구하는 것으로 이해되어서는 안 되며, 설명된 프로그램 구성 요소 및 시스템은 일반적으로 단일 소프트웨어 제품에 함께 통합되거나 다수의 소프트웨어 제품에 패키지될 수 있다는 점을 이해해야 한다.
주제의 특정 실시예들이 설명되었다. 다른 실시예는 다음 청구범위의 범위 내에 있다. 예를 들어, 청구범위에 인용된 동작들은 다른 순서로 수행될 수 있으며 여전히 원하는 결과를 얻을 수 있다. 일 예로서, 첨부 도면에 도시된 프로세스는 바람직한 결과를 달성하기 위해 도시된 특정 순서 또는 순차적 순서를 반드시 필요로 하는 것은 아니다. 일부 경우에는 멀티태스킹과 병렬 처리가 유리할 수 있다.

Claims (14)

  1. 비디오 프레임의 시퀀스를 인코딩하는데 사용하기 위한 전송률(rate) 제어 신경망을 트레이닝하는 방법으로서, 전송률 제어 신경망은 비디오 프레임의 입력 시퀀스를 인코딩하는 동안 시퀀스의 각 비디오 프레임에 대해, 그 비디오 프레임에 대한 입력 특징을 수신하고 입력 특징을 처리하여 복수의 가능한 양자화 파라미터 값 각각에 대한 개별 스코어를 생성하도록 구성되며, 상기 방법은,
    비디오 프레임의 트레이닝 시퀀스 및 트레이닝 시퀀스에 대한 목표 데이터 측정치를 포함하는 트레이닝 예제를 획득하는 단계와;
    트레이닝 예제에 대한 과거(historical) 성능을 획득하는 단계와;
    인코딩된 비디오 프레임의 시퀀스를 포함하는 트레이닝 시퀀스의 인코딩된 표현을 생성하는 단계와, 상기 트레이닝 시퀀스의 인코딩된 표현을 생성하는 단계는,
    트레이닝 시퀀스의 각 비디오 프레임에 대해:
    전송률 제어 신경망을 사용하여, 복수의 가능한 양자화 파라미터 값 각각에 대한 개별 정책 스코어를 포함하는 비디오 프레임에 대한 정책 출력을 생성하는 단계;
    정책 출력을 사용하여, 복수의 가능한 양자화 파라미터 값으로부터 양자화 파라미터 값을 선택하는 단계; 및
    선택된 양자화 파라미터 값에 따라 비디오 코덱을 사용하여 비디오 프레임을 인코딩하는 단계를 포함하고;
    (i) 인코딩된 표현의 품질을 측정하는 품질 측정치 및 (ii) 인코딩된 표현을 표현하는데 필요한 데이터의 양을 측정하는 데이터 측정치를 결정하는 단계를 포함하여, 트레이닝 예제에 대한 현재 성능을 결정하는 단계와;
    현재 성능과 과거 성능으로부터 보상값을 생성하는 단계와; 그리고
    강화 학습을 통해 보상값을 이용하여 전송률 제어 신경망을 트레이닝하는 단계를 포함하는 것을 특징으로 하는 전송률 제어 신경망을 트레이닝하는 방법.
  2. 제1항에 있어서,
    상기 전송률 제어 신경망을 사용하여, 복수의 가능한 양자화 파라미터 값 각각에 대한 개별 정책 스코어를 포함하는 비디오 프레임에 대한 정책 출력을 생성하는 단계는,
    복수의 가능한 양자화 파라미터 값 각각에 대한 개별 스코어를 생성하기 위해 전송률 제어 신경망을 사용하여 비디오 프레임에 대한 입력 특징을 처리하는 단계와; 그리고
    개별 스코어를 개별 정책 스코어로 사용하는 단계를 포함하는 것을 특징으로 하는 전송률 제어 신경망을 트레이닝하는 방법.
  3. 제1항에 있어서,
    상기 전송률 제어 신경망을 사용하여, 복수의 가능한 양자화 파라미터 값 각각에 대한 개별 정책 스코어를 포함하는 비디오 프레임에 대한 정책 출력을 생성하는 단계는,
    전송률 제어 신경망에 의해 안내되는 인코딩의 가능한 미래 상태에 대한 미리보기(look-ahead) 검색을 수행하는 단계를 포함하는 것을 특징으로 하는 전송률 제어 신경망을 트레이닝하는 방법.
  4. 임의의 선행하는 항에 있어서,
    상기 트레이닝 예제에 대한 과거 성능은,
    (i) 전송률 제어 신경망의 트레이닝 동안 트레이닝 예제에 대해 계산된 이전 품질 측정치의 지수 이동 평균 및 (ii) 전송률 제어 신경망의 트레이닝 동안 트레이닝 예제에 대해 계산된 목표 데이터 측정치와 이전 데이터 측정치로부터 결정된 이전 오버슈트의 지수 이동 평균으로부터 계산되는 것을 특징으로 하는 전송률 제어 신경망을 트레이닝하는 방법.
  5. 제4항에 있어서,
    (i) 인코딩된 표현의 품질을 측정하는 품질 측정치 및 (ii) 인코딩된 표현을 표현하는데 필요한 데이터 양과 목표 데이터 측정치 사이의 차이를 측정하는 데이터 측정치에 대한 오버슈트를 사용하여 과거 성능을 업데이트하는 단계를 더 포함하는 것을 특징으로 하는 전송률 제어 신경망을 트레이닝하는 방법.
  6. 제4항 또는 제5항에 있어서,
    상기 현재 성능과 과거 성능으로부터 보상값을 생성하는 단계는,
    현재 오버슈트 또는 이전 오버슈트의 지수 이동 평균이 0보다 큰지 여부를 결정하는 단계와;
    현재 오버슈트 또는 이전 오버슈트의 지수 이동 평균이 0보다 큰 경우:
    현재 오버슈트가 이전 오버슈트의 지수 이동 평균보다 작거나 같으면 보상값을 양수값으로 설정하는 단계와, 그리고
    현재 오버슈트가 이전 오버슈트의 지수 이동 평균보다 크면 보상값을 음수값으로 설정하는 단계를 포함하는 것을 특징으로 하는 전송률 제어 신경망을 트레이닝하는 방법.
  7. 제6항에 있어서,
    상기 현재 성능과 과거 성능으로부터 보상값을 생성하는 단계는,
    현재 오버슈트 또는 이전 오버슈트의 지수 이동 평균이 모두 0보다 크지 않은 경우:
    인코딩된 표현의 품질을 측정하는 품질 측정치가 이전 품질 측정치의 지수 이동 평균과 동일하거나 그 보다 나은 경우 보상값을 양수값으로 설정하는 단계와, 그리고,
    인코딩된 표현의 품질을 측정하는 품질 측정치가 이전 품질 측정치의 지수 이동 평균보다 나쁜 경우 보상값을 음수값으로 설정하는 단계를 포함하는 것을 특징으로 하는 전송률 제어 신경망을 트레이닝하는 방법.
  8. 제1항에 있어서,
    상기 현재 성능과 과거 성능으로부터 보상값을 생성하는 단계는,
    현재 성능 측정치가 과거 성능 측정치보다 제1 임계량이상으로 더 큰 경우 보상값을 양수값으로 설정하는 단계를 포함하는 것을 특징으로 하는 전송률 제어 신경망을 트레이닝하는 방법.
  9. 제8항에 있어서,
    상기 현재 성능과 과거 성능으로부터 보상값을 생성하는 단계는,
    현재 성능 측정치가 과거 성능 측정치보다 제1 임계값 이상으로 작은 경우 보상값을 음수값으로 설정하는 단계를 포함하는 것을 특징으로 하는 전송률 제어 신경망을 트레이닝하는 방법.
  10. 제1항에 있어서,
    상기 전송률 제어 신경망은,
    입력 특징을 처리하여 비디오 프레임에 대한 특징 표현을 생성하도록 구성된 표현 신경망과; 그리고
    특징 표현을 처리하여 복수의 가능한 양자화 파라미터 값 각각에 대한 개별 스코어를 생성하도록 구성된 정책 신경망 헤드를 포함하는 것을 특징으로 하는 전송률 제어 신경망을 트레이닝하는 방법.
  11. 제10항에 있어서,
    하나 이상의 보조 태스크 각각에 대해:
    보조 태스크(task)에 대한 예측 출력을 생성하기 위해 대응하는 보조 신경망 헤드를 사용하여 비디오 프레임에 대한 특징 표현을 처리하는 단계와; 그리고
    예측 출력과 보조 태스크에 대한 대응하는 실측 출력 사이의 개별 오차를 결정하는 단계를 더 포함하고,
    상기 강화 학습을 통해 보상값을 이용하여 전송률 제어 신경망을 트레이닝하는 단계는 하나 이상의 보조 태스크에 대한 개별 오차를 사용하여 전송률 제어 신경망을 트레이닝하는 단계를 포함하는 것을 특징으로 하는 전송률 제어 신경망을 트레이닝하는 방법.
  12. 비디오 프레임의 시퀀스를 인코딩하는 방법으로서, 상기 방법은,
    각 비디오 프레임에 대한 입력 특징을 생성하는 단계와;
    각각의 비디오 프레임에 대해, 각 비디오 프레임의 입력 특징을 제1항 내지 제11항 중 어느 한 항에 따른 방법에 의해 트레이닝되고 복수의 가능한 양자화 파라미터 값 각각에 대한 개별 스코어를 생성하기 위해 입력 특징을 처리하도록 구성된 전송률 제어 신경망으로 연속적으로 전송하는 단계와;
    스코어에 기초하여 비디오 프레임 각각에 대한 개별 양자화 파라미터 값을 선택하는 단계와; 그리고
    선택된 양자화 파라미터에 기초하여 각각의 비디오 프레임을 인코딩하는 단계를 포함하는 것을 특징으로 하는 비디오 프레임의 시퀀스를 인코딩하는 방법
  13. 하나 이상의 컴퓨터, 및 하나 이상의 컴퓨터에 의해 실행될 때 하나 이상의 컴퓨터로 하여금 제1항 내지 제12항 중 어느 한 항의 각각의 방법의 동작들을 수행하게 하는 명령들을 저장한 하나 이상의 저장 디바이스를 포함하는 시스템.
  14. 하나 이상의 컴퓨터에 의해 실행될 때 하나 이상의 컴퓨터로 하여금 제1항 내지 제12항 중 어느 한 항의 각각의 방법의 동작들을 수행하게 하는 명령들을 저장한 하나 이상의 컴퓨터 판독 가능 저장 매체.
KR1020237033044A 2021-05-28 2022-05-30 강화 학습을 통한 전송률 제어 신경망 트레이닝 KR20230148252A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202163194940P 2021-05-28 2021-05-28
US63/194,940 2021-05-28
PCT/EP2022/064566 WO2022248736A1 (en) 2021-05-28 2022-05-30 Training rate control neural networks through reinforcement learning

Publications (1)

Publication Number Publication Date
KR20230148252A true KR20230148252A (ko) 2023-10-24

Family

ID=82258546

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237033044A KR20230148252A (ko) 2021-05-28 2022-05-30 강화 학습을 통한 전송률 제어 신경망 트레이닝

Country Status (7)

Country Link
EP (1) EP4289138A1 (ko)
JP (1) JP7498377B2 (ko)
KR (1) KR20230148252A (ko)
CN (1) CN117044199A (ko)
BR (1) BR112023019978A2 (ko)
CA (1) CA3214193A1 (ko)
WO (1) WO2022248736A1 (ko)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100790900B1 (ko) 2006-12-14 2008-01-03 삼성전자주식회사 영상 부호화를 위한 초기 QP (QuantizationParameter) 값 예측 방법 및 장치
US10499056B2 (en) 2016-03-09 2019-12-03 Sony Corporation System and method for video processing based on quantization parameter
US10721471B2 (en) 2017-10-26 2020-07-21 Intel Corporation Deep learning based quantization parameter estimation for video encoding
TWI789581B (zh) 2019-04-23 2023-01-11 國立陽明交通大學 用於視頻編碼器的強化學習方法
CN112399176B (zh) 2020-11-17 2022-09-16 深圳市创智升科技有限公司 一种视频编码方法、装置、计算机设备及存储介质

Also Published As

Publication number Publication date
CA3214193A1 (en) 2022-12-01
BR112023019978A2 (pt) 2023-11-21
AU2022279597A1 (en) 2023-10-05
EP4289138A1 (en) 2023-12-13
CN117044199A (zh) 2023-11-10
WO2022248736A1 (en) 2022-12-01
JP2024521612A (ja) 2024-06-04
JP7498377B2 (ja) 2024-06-11

Similar Documents

Publication Publication Date Title
Mentzer et al. Conditional probability models for deep image compression
Mandhane et al. Muzero with self-competition for rate control in vp9 video compression
WO2020048389A1 (zh) 神经网络模型压缩方法、装置和计算机设备
CN109464803B (zh) 虚拟对象控制、模型训练方法、装置、存储介质和设备
US20230300354A1 (en) Method and System for Image Compressing and Coding with Deep Learning
CN116392812A (zh) 动作生成方法及虚拟人物动画生成方法
CN110941964A (zh) 双语语料筛选方法、装置及存储介质
JP7287388B2 (ja) 情報処理装置および情報処理方法
CN108898221B (zh) 基于状态特征和后继特征的特征与策略的联合学习方法
Wu et al. Paas: A preference-aware deep reinforcement learning approach for 360 video streaming
CN115209154A (zh) 基于机器学习模型的视频压缩
KR20230148252A (ko) 강화 학습을 통한 전송률 제어 신경망 트레이닝
AU2022279597B2 (en) Training rate control neural networks through reinforcement learning
US20230336739A1 (en) Rate control machine learning models with feedback control for video encoding
CN113132757B (zh) 数据处理方法和装置
KR102454420B1 (ko) 초해상화를 수행하는 인공 신경망의 가중치를 처리하는 방법 및 장치
Hajizadeh et al. Predictive compression of animated 3D models by optimized weighted blending of key‐frames
Furtuanpey et al. FrankenSplit: Efficient Neural Feature Compression with Shallow Variational Bottleneck Injection for Mobile Edge Computing
KR102663160B1 (ko) 효율적인 생성형 인공지능 모델의 압축을 위한 프루닝 방법 및 시스템
Huang et al. Elastic dnn inference with unpredictable exit in edge computing
KR102650523B1 (ko) 심층 강화 학습에 의한 종단 간 신경 압축을 위한 방법 및 장치
US20220269652A1 (en) Computation apparatus and compression method
Kleanthous et al. Making motion matching stable and fast with Lipschitz-continuous neural networks and Sparse Mixture of Experts
WO2023076108A1 (en) Systems and methods for video coding
KR20240025629A (ko) 광학 흐름를 이용한 비디오 압축