KR20230088454A - 클라우드 게임을 위한 컨텐츠 적응형 신호 대 잡음비 가이드식 2-패스 비디오 인코딩 - Google Patents

클라우드 게임을 위한 컨텐츠 적응형 신호 대 잡음비 가이드식 2-패스 비디오 인코딩 Download PDF

Info

Publication number
KR20230088454A
KR20230088454A KR1020237016478A KR20237016478A KR20230088454A KR 20230088454 A KR20230088454 A KR 20230088454A KR 1020237016478 A KR1020237016478 A KR 1020237016478A KR 20237016478 A KR20237016478 A KR 20237016478A KR 20230088454 A KR20230088454 A KR 20230088454A
Authority
KR
South Korea
Prior art keywords
frame
noise ratio
encoding
signal
peak
Prior art date
Application number
KR1020237016478A
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 KR20230088454A publication Critical patent/KR20230088454A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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
    • 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/149Data rate or code amount at the encoder output by estimating the code amount by means of a model, e.g. mathematical model or statistical model
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • A63F13/355Performing operations on behalf of clients with restricted processing capabilities, e.g. servers transform changing game scene into an encoded video stream for transmitting to a mobile phone or a thin client
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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
    • 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/15Data rate or code amount at the encoder output by monitoring actual compressed data size at the memory before deciding storage at the transmission buffer
    • 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/154Measured or subjectively estimated visual quality after decoding, e.g. measurement of distortion
    • 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/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/192Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding the adaptation method, adaptation tool or adaptation type being iterative or recursive
    • H04N19/194Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding the adaptation method, adaptation tool or adaptation type being iterative or recursive involving only two passes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

기술은 실시간 클라우드 게임용 게임 컨텐츠를 인코딩하기 위한 것으로 특히 이전 프레임에서 현재 프레임까지의 이동 윈도우에서 적응형 통계 모델을 사용하여, 선택된 피크 신호 대 잡음비(PSNR) 목표에 해당하는 양자화 파라미터(QP)의 하한을 적응적으로 계산하기 위한 것이다. 이 PSNR 가이드식 인코딩의 결과는 인코딩된 프레임의 크기를 크게 줄인다(즉, PSNR을 가이드로 사용하는 해당 프레임에 주관적인 품질 손실이 없는 경우 목표 비트 레이트를 언더슈팅한다). 이러한 감소는 전송되는 비트가 적을수록 네트워크 전송 및 디코딩 속도가 빨라지고 플랫폼 오버헤드가 줄어들기 때문에 대역폭 문제를 완화하고 전반적인 사용자 경험을 개선한다.

Description

클라우드 게임을 위한 컨텐츠 적응형 신호 대 잡음비 가이드식 2-패스 비디오 인코딩
다양한 클라우드 게임 플랫폼은 인코딩 동작을 사용하여 인터넷 상에서 사용자 디바이스로 전달되는 비디오 스트림에 실시간으로 게임 컨텐츠를 압축한다. 일반적으로, 인코더는 양자화 파라미터(QP)를 사용하여 게임 컨텐츠가 인코딩되는 방법과 특히 인코딩 동작 중에 보존되는 정보의 양을 제어한다. 일부 인코더는 프레임 크기에 따라 각 프레임(미디어 프레임, 비디오 프레임, 이미지 등이라고도 함)에 대한 QP를 선택한다. 이와 같이, 이러한 인코더는 목표 비트 레이트(즉, 프레임 크기)을 충족하기 위해 QP를 선택한다. 그러나, 이러한 인코더로 인해 게임 컨텐츠에 대한 인코딩 동작이 발생하여 인코더(또는 인코더와 관련된 디바이스)에 불필요한 대역폭 사용이 추가되고 경우에 따라 종단간 레이턴시(대기시간)가 증가하여 사용자 경험에 부정적인 영향을 미친다.
본 발명은 특히 결정된 피크 신호 대 잡음비(PSNR)에 기초하여 프레임에서 미디어 컨텐츠를 인코딩하는 것에 관한 것이다. 예를 들어, 제안된 솔루션은 PSNR 목표에 해당하는 양자화 파라미터(QP)의 하한을 적응적으로 계산하기 위해 이전 프레임으로부터 현재 프레임까지의 이동 윈도우에서 적응형 통계 모델을 사용하는 것을 포함할 수 있다. 해당 PSNR 가이드식(PSNR-guided) 인코딩의 결과는 인코딩된 프레임의 크기를 크게 줄일 수 있다(즉, PSNR을 가이드로 사용하는 해당 프레임에 주관적인 품질 손실이 없는 경우 목표 비트 레이트를 언더슈팅한다). 이러한 감소는 전송되는 비트가 적을수록 네트워크 전송 및 디코딩 속도가 빨라지고 플랫폼 오버헤드가 줄어들기 때문에 대역폭 문제를 완화하고 전반적인 사용자 경험을 개선한다.
일 양태에 따르면, 실시간 클라우드 게이밍을 위한 비디오 인코딩 방법은 제1 인코딩 패스(pass)에서 프레임 스트림의 각 프레임의 다운스케일링된 버전을 인코딩하는 것과 관련된 피크-신호-대-잡음비(PSNR)를 결정하는 단계; 및 제1 인코딩 패스에 응답하여, 피크-신호-대-잡음비에 기초하여 제2 인코딩 패스에서 프레임 스트림의 각 프레임을 인코딩하는 단계를 포함한다.
방법은 또한 통계 선형 회귀 모델에 기초하여 프레임 스트림의 각 프레임을 인코딩하기 위한 선택된 목표 피크-신호-대-잡음비와 관련된 최소 양자화 파라미터(QP)를 결정하는 단계를 포함할 수 있다. 일부 구현에서, 프레임 스트림의 프레임을 인코딩하는 단계는 선택된 타겟 피크-신호-대-잡음비를 만족시키기 위해 상기 인코딩된 프레임에 대한 최소 양자화 파라미터에 기초한다.
방법은 또한 양방향(double-ended) 큐의 이전 프레임의 이동 윈도우에서 피크-신호-대-잡음비 및 양자화 파라미터의 쌍을 선형 곡선에 맞춤으로써 각 프레임에 대한 피크-신호-대-잡음비로부터 최소 양자화 파라미터로의 선형 매핑을 결정하는 단계를 포함할 수 있다. 일부 실시예에서, 선형 매핑은 각 프레임의 제2 인코딩 패스 후에 업데이트된다.
방법은 또한 선택된 목표 PSNR 및 프레임 스트림과의 각 프레임에 대한 업데이트된 선형 매핑에 기초하여 최소 QP의 하한값을 결정하는 단계를 포함할 수 있다.
방법은 또한 이전 프레임의 이동 윈도우에 기초하여 PSNR로부터 최소 QP로의 선형 매핑의 교차점 및 기울기를 결정하는 단계를 포함할 수 있다.
방법은 또한 PSNR 및 QP의 쌍과 관련된 이전 프레임의 이동 윈도우의 크기를 유지하는 단계를 포함할 수 있다.
방법은 또한 프레임 스트림의 각 프레임과 관련된 PSNR에 기초하여 통계 모델을 업데이트하는 단계를 포함할 수 있으며, 상기 프레임 스트림의 각 프레임을 인코딩하는 단계는 통계 모델로부터의 최소 QP에 기초한다.
방법은 또한 인코더에 의해 압축되지 않은 프레임과 제1 인코딩 패스의 재구성된 프레임 사이의 프레임 스트림의 각 프레임과 관련된 PSNR을 계산하는 단계; 및 인코더에 의해 압축되지 않은 프레임과 제2 인코딩 패스의 재구성된 프레임 사이의 프레임 스트림의 각 프레임과 관련된 PSNR을 계산하는 단계를 포함할 수 있다.
일부 실시예에서, 통계 모델은 PSNR 및 QP의 쌍에 기초한 선형 회귀 모델을 포함한다.
방버은 또한 목표 PSNR 임계값을 결정하는 단계를 포함할 수 있으며, 상기 프레임 스트림의 각각의 프레임을 인코딩하는 단계는 목표 PSNR 임계값에 기초한다.
방법은 또한 다운 샘플링 파라미터에 기초하여 프레임 스트림의 각 프레임을 다운 샘플링하는 단계; 및 다운 샘플링에 응답하여, 목표 비트 레이트 파라미터에 기초하여 프레임 스트림의 상기 다운샘플링된 프레임을 인코딩하는 단계를 포함할 수 있다.
다른 양태에 따르면, 실시간 클라우드 게임용 비디오 인코딩 장치는 하나 이상의 프로세서; 하나 이상의 프로세서에 연결된 메모리; 및 선택된 목표 피크-신호-대-잡음비(PSNR)에 기초하여 최소 양자화 파라미터(QP)를 결정하고, 그리고 최소 QP에 기초하여 프레임 스트림의 각 프레임을 인코딩하기 위해 하나 이상의 프로세서에 의해 실행 가능한 명령들을 포함한다.
일부 실시예에서, 명령들은 프레임 스트림의 각 프레임과 관련된 피크-신호-대-잡음비에 기초하여 통계 모델을 업데이트하기 위해 하나 이상의 프로세서에 의해 추가로 실행 가능하다.
일부 실시예에서, 통계 모델은 선형 회귀 모델을 포함한다. 부 다른 실시예에서, 선형 회귀 모델은 PSNR 및 QP의 하나 이상의 쌍에 기초한다.
일부 실시예에서, 명령들은 다운 샘플링 파라미터에 기초하여 프레임 스트림의 각 프레임을 다운 샘플링하고; 그리고 다운 샘플링에 응답하여, 목표 비트 레이트 파라미터에 기초하여 프레임 스트림의 상기 다운샘플링된 프레임을 인코딩하기 위해 하나 이상의 프로세서에 의해 추가로 실행 가능하다.
또 다른 측면에 따르면, 비-일시적 컴퓨터 판독 가능 매체는 디바이스에서 실시간 클라우드 게임용 게임 컨텐츠를 인코딩하기 위한 코드를 저장하고, 그 코드는 선택된 목표 피크-신호-대-잡음비(PSNR)에 기초하여 최소 양자화 파라미터(QP)를 결정하고; 그리고 최소 양자화 파라미터에 기초하여 프레임 스트림의 각 프레임을 인코딩하기 위해 디바이스의 프로세서에 의해 실행 가능한 명령들을 포함한다.
일부 실시예에서, 명령들은 프레임 스트림의 각 프레임과 관련된 PSNR에 기초하여 통계 모델을 업데이트하기 위해 디바이스의 프로세서에 의해 추가로 실행 가능하다. 통계 모델은 선형 회귀 모델을 포함한다.
선형 회귀 모델은 피크-신호-대-잡음비 및 양자화 파라미터의 하나 이상의 쌍을 기반으로 한다.
본 개시는 첨부된 도면을 참조함으로써 당업자에게 더 잘 이해될 수 있고, 그의 수많은 특징 및 이점이 명백해진다. 다른 도면에서 동일한 참조 기호를 사용하면 유사하거나 동일한 항목을 나타낸다.
도 1은 일부 실시예에 따른 실시간 게임 컨텐츠 인코딩을 지원하는 클라우드 기반 게임 시스템의 블록도이다.
도 2는 일부 실시예에 따른 적응형 컨텐츠 인코딩을 지원하는 도 1의 시스템의 디바이스의 블록도이다.
도 3은 일부 실시예에 따른 적응형 PSNR 가이드식 게임 컨텐츠 인코딩 방법의 흐름도이다.
도 4는 일부 실시예에 따른 PSNR-대-QP 매핑을 위한 통계 모델을 포함하는 도 3의 방법의 추가 양태를 도시하는 흐름도이다.
최종 사용자들이 게임 애플리케이션에 액세스하고 경험할 수 있는 클라우드 기반 게임 시스템은 원래 휴대용 클라이언트 디바이스(예를 들어, 랩탑, 스마트폰)와 같은 원격 디바이스에서 비-휴대용 디바이스(예를 들어, 개인용 컴퓨터 또는 게임 콘솔 설정)용으로 종종 구성된다. 클라우드 기반 게임 시스템에서, 네트워크 디바이스(예를 들어, 게임 서버)는 통신 네트워크에 대한 게임 컨텐츠의 그래픽 렌더링, 캡처, 인코딩 및 스트리밍과 같은 동작들을 수행한다. 휴대용 클라이언트 디바이스는 통신 네트워크를 통해 게임 컨텐츠의 인코딩된 비트스트림을 수신하고, 그 인코딩된 비트스트림을 디코딩하고, 결과 이미지를 사용자에게 디스플레이한다.
사용자 경험을 향상시키기 위해서는, 클라우드 기반 게임 시스템이 클라이언트 디바이스에 고해상도의 높은 프레임 레이트 비디오 스트림을 생성하고 제공하는 것이 때때로 바람직하다. 그러나, 이러한 고품질 비디오 스트림은 많은 양의 네트워크 대역폭과 인코딩 자원을 소비한다. 예를 들어, 특정 코덱을 사용하는 1080p 프레임(예를 들어, 1080p 비디오)의 60FPS(초당 프레임 수) 스트림은 게임 컨텐츠의 열화를 방지하기 위해 25Mbps 이상의 일관된 대역폭 데이터 레이트를 제공하는 네트워크 대역폭이 필요하다. 게다가, 네트워크 대역폭은 특정 네트워크 연결을 지원하는 기본 기술과 같은 여러 요인에 기초하여 달라질 수 있다. 예를 들어, 디지털 가입자 회선(DSL) 연결은 10~25Mbps의 데이터 레이트를 제공하고, 케이블 연결은 50-100Mbps의 데이터 레이트를 제공하고, 광섬유 연결은 100+Mbps의 데이터 레이트를 제공하며, 위성 연결은 15-25Mbps의 데이터 레이트를 제공한다. 따라서, 특정 네트워크 연결에 기초하여, 특정 코덱은 성능이 저하되어 게임 컨텐츠 품질이 저하되고 따라서 사용자 경험에 부정적인 영향을 미칠 수 있다.
대역폭 요구 사항을 충족하고 저-레이턴시 비디오 스트리밍을 유지하기 위해, 일부 게임 시스템은 다양한 클라우드 기반 플랫폼에서 하드웨어 가속 인코더를 사용한다. 이러한 클라우드 기반 애플리케이션용 인코더는 목표 대역폭을 가능한 한 가깝게 충족하기 위해 객관적인 게임 품질을 최대화하는데 중점을 둔다. 엄격한 종단간 레이턴시 요구 사항으로 인해, 일반적으로 이러한 클라우드 게임 시스템에서는 모든 프레임에 대해 목표 프레임 크기가 오버슈팅(overshooting)되는 것을 방지하는 것이 최우선 순위이다. 그러나, 인간 시각 시스템은 인코딩된 게임 컨텐츠의 객관적인 비디오 품질이 임계값을 초과할 때 임의의 추가적인 주관적 품질 이득에 훨씬 덜 민감하다. 즉, 피크 신호 대 잡음비(PSNR)로 측정된 객관적인 비디오 품질과 평균 의견(opinion) 스코어(MOS)로 측정된 주관적인 비디오 품질은 특정 PSNR 레벨 이상에서 주관적인 비디오 품질이 최대화됨을 나타낸다.
본 개시의 다양한 양태는 게임 컨텐츠의 적응형 인코딩을 위한 기술, 특히 게임 컨텐츠의 피크 신호 대 잡음비(PSNR) 가이드식(guided) 인코딩에 관한 것이다. 예를 들어, 인코더는 게임 컨텐츠와 관련된 프레임 스트림을 수신하고 네트워크(예를 들어, 인터넷)를 통해 스트리밍할 그 프레임 스트림의 인코딩된 버전을 출력한다. 인코더는 다운 샘플링될 수 있는 입력 프레임을 수신하고 인코딩하여 제1 인코딩 패스 정보를 획득한다. 이를 통해 인코더는 제2 인코딩 패스(즉, 최종 인코딩 단계)에서 인코딩되기 전에 현재의 PSNR을 정확하게 예측할 수 있다. 인코더는 선택된 PSNR 목표에 해당하는 QP(MIN QP)의 하한을 데시벨 단위로 적응적으로 계산하기 위해 현재 프레임까지 이전 프레임의 이동 윈도우에서 컨텐츠 적응형 통계 모델(예를 들어, 선형 회귀 모델)을 사용하고, 현재 프레임을 인코딩하기 위해 레이트-제어 프로세스에 대한 하한 OP를 사용한다. 이 PSNR 가이드식 인코딩의 결과는 인코딩된 프레임의 크기를 줄이는 동시에 PSNR이 해당 프레임에 주관적인 품질 손실이 없을 가능성이 있음을 나타낼 때 목표 비트 레이트를 언더슈팅(undershooting)한다. 이러한 감소는 전송되는 비트가 적을수록 게임 스트림의 전반적인 품질을 유지하면서 네트워크 전송 속도와 디코딩 속도가 빨라지고 플랫폼 오버헤드가 훨씬 줄어들기 때문에 대역폭 문제를 완화하고 전반적인 게임 성능을 향상시킨다.
도 1은 일부 실시예에 따른 실시간 게임 컨텐츠 인코딩을 지원하는 클라우드 기반 게임 시스템(100)의 블록도이다. 클라우드 기반 게임 시스템(100)은 클라이언트 디바이스(102), 서버(104) 및 데이터베이스(106)를 포함한다. 클라우드 기반 게임 시스템(100)이 단일 클라이언트 디바이스(102), 단일 서버(104), 단일 데이터베이스(106) 및 단일 네트워크(108)를 도시하지만, 본 개시는 하나 이상의 디바이스(102), 서버(104), 데이터베이스(106) 및 네트워크(108)를 갖는 임의의 클라우드 기반 게임 시스템 아키텍처에 적용된다. 클라이언트 디바이스(102), 서버(104) 및 데이터베이스(106)는 하나 이상의 통신 링크(예를 들어, 무선 연결, 유선 연결)를 사용하여 네트워크(108)를 통해 서로 통신한다.
서버(104)는 데이터 서버, 클라우드 서버, 게임 구독 제공자와 관련된 서버, 프록시 서버, 웹 서버, 애플리케이션 서버 또는 이들의 임의의 조합일 수 있다. 일부 실시예에서 서버(104)는 클라우드 게임 플랫폼(110)을 포함한다. 클라우드-게임 플랫폼(110)은 클라이언트 디바이스(102)가 하나 이상의 통신 링크를 사용하여 네트워크(108)를 통해 서버에 렌더링되는 동적 게임 컨텐츠(112), 또는 네트워크(108)를 통한 실시간 디지털 배포에 의해 데이터베이스(106)에 저장된 정적 게임 컨텐츠(112)를 검색, 브라우징, 공유 및 스트리밍할 수 있게 한다. 이와 같이, 디지털 배포는 물리적 매체를 사용하지 않고 인터넷과 같은 온라인 전달 매체를 통해 오디오, 비디오, 이미지와 같은 일부 정적 게임 컨텐츠(112)를 전달하는 형태일 수 있다.
데이터베이스(106)는 명령 또는 커맨드(예를 들어, 게임 관련 정보)와 같은 다양한 정보를 저장할 수 있다. 예를 들어, 데이터베이스(106)는 게임 컨텐츠(112)를 저장할 수 있다. 클라이언트 디바이스(102)는 하나 이상의 통신 링크를 사용하여 네트워크(108)를 통해 데이터베이스(106)로부터 게임 컨텐츠(112)를 검색할 수 있다. 네트워크(108)는 암호화, 액세스 승인, 추적, 인터넷 프로토콜(IP) 연결 및 기타 액세스, 계산, 수정 및/또는 기능을 제공할 수 있다. 네트워크(108)의 예는 클라우드 네트워크, 근거리 통신망(LAN), 광역 통신망(WAN), 가상 사설 통신망(VPN), 무선 네트워크(예를 들어, 802.11 사용), 셀룰러 네트워크(3세대(3G), 4세대(4G), LTE(long-term evolved) 또는 NR(new radio) 시스템(예를 들어, 5세대(5G) 사용)의 임의의 조합을 포함할 수 있다. 네트워크(108)는 인터넷을 포함할 수 있다.
클라우드 기반 게임 시스템(100)에 도시된 하나 이상의 통신 링크는 클라이언트 디바이스(102)로부터 서버(104) 및 데이터베이스(106)로의 업링크 전송 및/또는 서버(104) 및 데이터베이스(106)로부터 클라이언트 디바이스(102)로의 다운링크 전송을 포함한다. 이러한 통신 링크는 양방향 통신 및/또는 단방향 통신을 전송할 수 있다. 일부 실시예에서, 통신 링크는 유선 연결 또는 무선 연결, 또는 둘 다일 수 있다. 예를 들어, 통신 링크에는 Wi-Fi, 블루투스, 블루투스 저에너지(BLE), 셀룰러, Z-WAVE, 802.11, 피어-투-피어, LAN, 무선 근거리 통신망(WLAN), 이더넷, FireWire, 광섬유, 및/또는 무선 통신 시스템과 관련된 기타 연결 유형을 포함하여 하나 이상의 연결을 포함할 수 있지만 이에 한정되지 않는다.
일부 실시예에서 클라이언트 디바이스(102)는 h.264, vp9 또는 HEVC를 포함하는 다양한 유형의 비디오 코덱을 지원하는 휴대폰, 스마트폰, 태블릿 컴퓨터, 랩탑 컴퓨터, 디스플레이 디바이스(예를 들어, 모니터)이다. 일부 실시예에서, 서버(104) 및 클라이언트 디바이스(102)는 함께 클라이언트 디바이스(102)의 사용자를 위한 클라우드 게임 세션을 구현한다. 예를 들어, 서버(104)는 게임 프로그램(114)으로 구현된 게임의 게임 상태에 기초하여 프레임(116)(이미지)의 스트림을 생성하는 게임 프로그램(114)을 실행한다. 클라이언트 디바이스(102)는 서버(104)로부터 프레임의 스트림을 수신할 수 있고 사용자 인터페이스(예를 들어, 게임 컨트롤러, 터치스크린 등 또는 이들의 임의의 조합)를 통해 사용자로부터 입력 데이터를 수신할 수 있는 게임 애플리케이션(118)을 실행한다. 클라이언트 디바이스(102)는 서버(104)에 입력 데이터를 제공하고, 서버는 게임 프로그램(114)의 게임 상태를 업데이트하고 업데이트된 게임 상태에 기초하여 프레임의 스트림을 위한 더 많은 프레임을 생성한다.
각각의 프로그램을 실행하고 게임 세션을 구현하기 위해, 클라이언트 디바이스(102)와 서버(104) 각각은 범용 프로세서, 디지털 신호 프로세서(DSP), 이미지 신호 프로세서(ISP), 중앙 처리 장치(CPU), 그래픽 처리 장치(GPU), 마이크로컨트롤러, 주문형 집적회로(ASIC), FPGA(Field-Programmable Gate Array), 이산 게이트 또는 트랜지스터 논리 컴포넌트, 개별 하드웨어 컴포넌트, 또는 이들의 조합, 또는 기타 프로그램 가능 논리 디바이스, 개별 게이트 또는 트랜지스터 로직, 개별 하드웨어 컴포넌트, 또는 본 개시에 기술된 기능을 수행하도록 설계된 이들의 임의의 조합 중 하나 이상을 포함한다. 예를 들어, 클라이언트 디바이스(102)는 서버(104)로부터 스트리밍되는 인코딩된 게임 컨텐츠(112)(예를 들어, 이미지 데이터, 비디오 데이터, 오디오 데이터)를 디코딩할 수 있다.
서버(104)는 또한 게임 컨텐츠(112)에 대한 다른 기능 중에서 강화, 복원, 분석 및 합성을 제공하도록 구성될 수 있다. 예를 들어, 서버(104)는 화이트 밸런싱, 발췌(cropping), 스케일링(예를 들어, 게임 압축), 해상도 조정, 스티칭, 색상 처리, 공간 게임 필터링, 아티팩트 제거, 프레임 레이트 조정 등을 수행할 수 있다. 추가 예로서, 서버(104)는 본 명세서에 설명된 기술에 따라 게임 컨텐츠(112)를 처리하여 게임 컨텐츠(112)의 적응형 인코딩을 지원할 수 있다.
예를 들어, 게임 세션 동안, 서버(104)는 프레임(116)의 스트림과 관련된 입력 프레임을 수신 및 인코딩할 수 있으며, 이는 제2 인코딩 패스(즉, 최종 인코딩 단계)에서 인코딩되기 전에 프레임 스트림(116)의 현재 또는 후속 프레임의 PSNR을 정확하게 예측하는 것을 돕기 위해 제1 인코딩 패스 정보를 얻도록 다운 샘플링될 수 있다. 서버(104)는 선택된 PSNR 목표에 해당하는 QP의 하한을 적응적으로 계산하기 위해 현재 프레임까지 이전 프레임의 이동 윈도우에서 컨텐츠 적응형 통계 모델(예를 들어, 선형 회귀 모델)을 사용한다. 이 PSNR 가이드식 인코딩의 결과는 PSNR을 가이드로 사용하는 해당 프레임에 주관적인 품질 손실이 없다고 결정하는 것에 응답하여 목표 비트 레이트를 언더슈팅할 때 인코딩된 프레임의 크기를 크게 줄이다. 이러한 감소는 전송되는 비트가 적을수록 더 빠른 네트워크 전송, 더 빠른 디코딩 및 훨씬 적은 플랫폼 오버헤드가 발생하기 때문에 대역폭 문제를 완화하고 전반적인 게임 성능을 향상시킨다.
도 2는 일부 실시예에 따른 적응형 게임 컨텐츠 인코딩을 지원하는 도 1의 시스템의 디바이스(200)의 블록도이다. 일부 실시예에서, 디바이스(200)는 도 1에 설명된 바와 같은 클라우드 기반 게임 시스템(100)의 양태를 구현한다. 예를 들어, 디바이스(200)는 도 1에서 설명된 바와 같은 서버(104)의 예일 수 있다. 디바이스(200)는 게임 컨텐츠(236)를 인코딩하기 위한 컴포넌트(구성요소)를 포함하는 양방향 통신을 위한 하나 이상의 소프트웨어 및 하드웨어 컴포넌트를 포함한다. 일부 실시예에서, 디바이스(200)는 데스크탑 컴퓨터, 서버, 게임 콘솔 등을 포함하는 게임 컨텐츠(236)의 인코딩을 지원하는 전자 디바이스의 일부이다. 도 2의 예에서, 디바이스(200)는 적어도 프로세서(202), 메모리(204) 및 모뎀(206)을 포함한다. 이러한 구성 요소는 하나 이상의 인터페이스(예를 들어, 버스(228))를 통해 전자 통신한다.
프로세서(202)는 일반적으로 디바이스(200)를 대신하여 지정된 태스크를 수행하기 위해 명령 세트(예를 들어, 컴퓨터 프로그램)의 실행을 지원하는 처리 디바이스(예를 들어, 범용 프로세서, CPU, GPU, ASIC, FPGA 등)의 실행을 지원하는 처리 디바이스(예를 들어, 범용 프로세서, CPU, GPU, ASIC, FPGA 등)이다. 일부 실시예에서, 프로세서(202)는 프로세서(202)에 통합된 메모리 컨트롤러를 사용하여 메모리(204)와 인터페이스하도록 구성된다. 메모리(204)는 RAM) 및 ROM을 포함한다. 일부 실시예에서, 메모리(204)는 실행될 때 프로세서(202)가 본 명세서에 기술된 다양한 기능을 수행하게 하는 명령을 포함하는 컴퓨터 판독 가능, 컴퓨터 실행 가능 코드를 저장한다. 일부 실시예에서, 메모리(204)는 다른 특징들 중에서도 디바이스(200)의 주변 컴포넌트와의 상호 작용과 같은 기본적인 하드웨어 또는 소프트웨어 동작을 제어하는 기본 입/출력 시스템(BIOS)을 포함한다. 코드는 시스템 메모리 또는 기타 유형의 메모리로서 비-일시적 컴퓨터 판독 가능 매체에 저장된다. 일부 다른 실시예에서, 메모리(204)는 본 명세서에 기술된 바와 같이 게임 컨텐츠(236)의 인코딩 성능을 향상시키는 것과 관련된 통계 모델(230)을 추가적으로 또는 대안적으로 저장한다. 본 명세서에 기술된 통계 모델(230)은 대응하는 PSNR 값을 대응하는 QP 값에 매핑할 수 있는 선형 회귀 모델을 포함할 수 있다.
모뎀(206)은 하나 이상의 안테나, 유선 또는 무선 통신 링크(예를 들어, Wi-Fi 통신 링크, 셀룰러 통신 링크)를 통해 양방향으로 통신한다. 일부 실시예에서, 모뎀(206)은 인코딩된 게임 컨텐츠를 전달하는 패킷을 변조하고, 전송을 위해 변조된 패킷을 안테나에 제공하고, 안테나로부터 수신된 인코딩된 게임 컨텐츠를 전달하는 패킷을 복조하도록 구성된다. 일부 실시예에서, 모뎀(206)은 도 1에 설명된 바와 같이 클라이언트 디바이스(102) 또는 서버(104)와 같은 다른 디바이스와 양방향으로 통신하도록 구성된 무선 트랜시버를 나타낸다.
도시된 실시예에서, 프로세서(202)는 게임 컨텐츠 모듈(208), 프레임 생성기 모듈(210), 프레임 분석 모듈(212) 및 인코더(214)를 포함한다. 일부 실시예에서, 게임 컨텐츠 모듈(208)은 모뎀(206)을 통해 다른 컴퓨팅 디바이스와 통신하기 위해 인코더(214)를 대신하여 게임 컨텐츠(236)(예를 들어, 이미지, 비디오, 오디오)를 생성하도록 구성된다. 예를 들어, 일부 실시예에서, 게임 컨텐츠 모듈(208)은 다른 디바이스와의 통신을 위해 게임 컨텐츠를 생성하는 프로세서(202)에서 실행되는 프로그램이다.
게임 컨텐츠(236)를 생성하기 위해, 게임 컨텐츠 모듈(208)은 게임 컨텐츠(236)(예를 들어, 이미지, 비디오, 오디오)와 관련된 하나 이상의 프레임(216)을 생성하기 위해 제어 신호(226)를 통해 프레임 생성기 모듈(210)에 시그널링한다. 예를 들어, 게임 컨텐츠 모듈(208)은 제어 신호(226)를 통해 프레임 생성기 모듈(210)에 신호를 보내 클라우드 기반 게임 등과 관련된 하나 이상의 프레임을 생성한다. 프레임 생성기 모듈(210)은 프로세서(202) 또는 디바이스(200)의 다른 컴포넌트에 의해 구현된다. 프레임 생성기 모듈(210)은 제어 신호(226)를 통해, 하나 이상의 생성된 프레임(216)을 인코더(214)에 시그널링한다.
인코더(214)는 프로세서(202) 또는 디바이스(200)의 다른 컴포넌트에 의해 구현된다. 일부 실시예에서, 인코더(214)는 하나 이상의 생성된 프레임(216)을 코덱이라고 지칭되는 지정된 인코딩 기술에 따라 인코딩된 프레임 스트림(232)으로 인코딩한다. 일부 실시예에서, 인코더(214)는 인코딩된 프레임 스트림(232)을 예를 들어 다른 디바이스(예컨대, 도 1에 설명된 바와 같은 클라이언트 디바이스(102) 또는 서버(104))로 전송하기 위해 모뎀(206)으로 포워딩하도록 구성된다. 예를 들어, 인코더(214)는 (예를 들어, 도 1에 기술된 바와 같이 서버(104)의) GPU 렌더러(renderer)로부터 압축되지 않은 비디오 스트림일 수 있는 프레임 스트림(232)을 생성하고 모뎀(206)을 통하여 인터넷을 통해 스트리밍하기 위해 인코딩된 비디오 스트림을 출력한다.
프로세서(202) 또는 디바이스(200)의 다른 컴포넌트는 게임 컨텐츠(236)의 적응형 인코딩을 지원하기 위해 게임 컨텐츠(236)(예를 들어, 이미지, 비디오, 오디오)와 관련된 하나 이상의 프레임(216)을 분석하기 위해 제어 신호(226)를 통해 프레임 생성기 모듈(210)에 신호를 보낸다. 프레임 분석 모듈(212)은 프레임 스트림(232)과 관련된 하나 이상의 프레임(216)을 분석하는 것과 관련된 하나 이상의 파라미터를 초기화한다. 이들 파라미터는 PSNR 파라미터(218), MIN QP(220), 비트 레이트 파라미터(222) 또는 프레임 크기 파라미터(224) 또는 이들의 조합 중 하나 이상을 포함한다.
일부 실시예에서, 프레임 분석 모듈(212)은 하나 이상의 요인에 기초하여 목표 PSNR 임계값을 결정한다. 예를 들어, 프레임 분석 모듈(212)은 특정 네트워크 연결(예를 들어, DSL, 케이블, 광섬유, 위성 등)을 지원하는 기본 기술에 기초하여 목표 PSNR 임계값을 45데시벨(dB)로 결정하고 이 값을 목표 PSNR 파라미터(218)에 저장한다. 추가적으로 또는 대안적으로, 프레임 분석 모듈(212)은 도 1에 기술된 바와 같이 게임 애플리케이션과 관련된 디폴트 구성(예를 들어, 게임 설정)에 기초하여 목표 PSNR 임계값을 45dB로 결정하고 이 값을 목표 PSNR 파라미터(218)에 저장한다. 일부 실시예에서, 프레임 분석 모듈(212)은 Mbps 단위로 목표 비트레이트를 결정한다. 예를 들어, 프레임 분석 모듈(212)은 타겟 비트 레이트를 28Mbps로 결정하고 이 값을 비트율 파라미터(222)에 저장한다. 일부 실시예에서, 프레임 분석 모듈(212)은 목표 프레임 크기(예를 들어, 비트 단위)를 결정한다. 프레임 분석 모듈(212)은 타겟 비트 레이트 또는 프레임 레이트, 또는 이들의 조합에 기초하여 타겟 프레임 크기를 결정할 수 있다. 부가적으로 또는 대안적으로, 목표 프레임 크기는 도 1에 설명된 바와 같이, 게임 애플리케이션과 연관된 디폴트 구성(예를 들어, 게임 설정)과 관련된 고정 해상도에 기초할 수 있다. 프레임 분석 모듈(212)은 목표 프레임 크기의 값을 프레임 크기 파라미터(224)에 저장한다.
인코더(214)는 일부 실시예에서 프레임(216-1)을 인코딩하고 인코딩 정보를 프레임 분석 모듈(212)에 제공한다. 인코딩 정보는 프레임(216-1)의 프레임 크기 및 프레임(216-1)과 연관된 PSNR(예를 들어, 루마(luma) 평면의 PSNR)을 포함할 수 있다. 일부 실시예에서, 프레임 분석 모듈(212) 또는 인코더(214)는 프레임(216-1)을 원래 해상도의 일부로 다운스케일링(축소)한다. 인코더(214)는 현재 프레임을 인코딩하기 전에 PSNR 추정치를 제공할 수 있는 타겟 비트 레이트를 사용하여 상기 다운스케일링된 프레임(216-1)을 인코딩한다.
프레임 분석 모듈(212)은 프레임(216-1)에 대한 MIN QP(220)를 선택한다. 예를 들어, 일부 실시예에서, 프레임 분석 모듈(212)은 추정된 프레임(216-1) PSNR을 타겟 PSNR과 비교한다. 프레임(216-1)의 PSNR이 선택된 목표 PSNR보다 큰 경우, 프레임 분석 모듈(212)은 수학식 1에 따라 선형 매핑을 사용하여 하한 QP를 계산한다.
QP = f(PSNR) = slope(기울기) * PSNR + intersection(교차점) (1)
아래에서 더 설명되는 바와 같이 통계 모델(230)에 기초하여, 그 결과를 MIN QP(220)에 대한 하한값으로 할당한다. 따라서 선형 매핑은 PSNR의 함수이다. 일부 실시예에서, 기울기의 값은 초기화에 기초하여 시전 정의될 수 있다. 예를 들어, 기울기의 값은 처음에 0으로 설정될 수 있다. 일부 실시예에서, 교차점 값은 초기화에 기초하여 사전 정의될 수 있다. 예를 들어 교차점 값은 처음에 0으로 설정될 수 있다. 일부 실시예에서, 프레임 분석 모듈(212)은 표시(indication)를 제공하거나 인코더(214)에 대한 MIN QP(220)를 설정한다.
일부 실시예에서, 프레임 분석 모듈(212)은 목표 비트 레이트를 달성하기 위해 인코더(214)와 연관된 인코더 파라미터를 조정하기 위해 레이트 제어를 지원할 수 있다. 일부 실시예에서, 프레임(216)의 인코딩은 본질적으로 손실 프로세스일 수 있다. 예를 들어, 인코더(214)는 프레임 스트림(232)(비트스트림)으로부터 진정한 중복 정보를 제거함으로써 뿐만 아니라 최소한으로 인지할 수 있도록 의도된 방식으로 약간의 품질 타협을 함으로써 압축을 달성할 수 있다. MIN QP(220)은 레이트 제어가 사용할 수 있는 QP의 하한을 제공한다. MIN QP(220)가 매우 작은 경우, 레이트 제어는 거의 모든 디테일을 유지할 수 있다. MIN QP(220)이 증가함에 따라, 해당 세부 정보 중 일부가 집계되어 비트 레이트가 떨어지지만, PSRN 목표가 충분히 높게 선택될 수 있기 때문에 객관적인 왜곡이 약간 증가하고 주관적인 품질 손실을 최소화하면서 객관적인 품질이 약간 손실된다. 프레임 분석 모듈(212)은 프레임(216)의 PSNR 추정치에 기초하여 MIN QP(220)를 동적으로 변경할 수 있어서, 각각의 프레임(216)은 대상 품질을 최대화하기 위해 적절한 비트 할당을 갖는다. 따라서, MIN QP가 높은 목표 PSNR에 의해 결정되기 때문에, 주관적인 품질 손실이 최소화된다.
예를 들어, 프레임 분석 모듈(212)은 이어서 프레임(216-2)을 수신하고, 프레임(216-2)을 인코딩하는 것과 관련된 레이트 제어를 수행하고, 그에 의해 인코딩된 프레임(216-2)의 품질을 관리할 수 있다. 일부 실시예에서, 프레임 분석 모듈(212)은 프레임(216-1)과 관련된 인코딩 정보에 기초하여 프레임(216-2)에 대한 MIN QP(220)를 선택한다. 일부 다른 실시예에서, 프레임 분석 모듈(212)은 프레임(216-2)을 포함하는 프레임의 현재 윈도우에 대한 MIN QP(220)를 나타낼 수 있는 통계 모델(230)에 기초하여 프레임(216-2)에 대한 MIN QP(220)를 선택한다. 프레임 분석 모듈(212)은 프레임(216-2)에 대한 상기 선택된 MIN QP(220)에 기초하여 프레임(216-2)을 인코딩하는 인코더(214)에 상기 선택된 MIN QP(220)를 시그널링한다. 인코더(214)는 예를 들어 프레임(216-2)과 연관된 PSNR과 같은 프레임(216-2)과 관련된 인코딩 정보를 결정하고 이를 현재 프레임이 인코딩된 후 프레임 분석 모듈(212)로 전달할 수 있다.
인코더(214)는 프레임(216-2)과 관련된 PSNR을 프레임 분석 모듈(212)에 제공하고, 프레임 분석 모듈(212)은 프레임(216-2)에 대한 상기 선택된 QP를 포함하는 인코딩 정보로 통계 선형 회귀 모델(230)을 업데이트한다. 예를 들어, 프레임 분석 모듈(212)은 인코딩 정보를 사용하여 선형 회귀 모델에서 선형 곡선을 프레임 스트림(232)과 연관된 프레임의 현재 윈도우에 맞추는데(fit), 이는 도 4에서 더 상세히 설명된다. 인코더(214)와 프레임 분석 모듈(212)은 프레임 스트림(232)과 관련된 모든 프레임(216)에 대해 위의 동작들을 반복할 수 있다. 따라서 프레임 분석 모듈(210)은 현재 프레임에 대한 MIN QP를 결정하여 해당 PSNR을 목표 PSNR 임계값으로 제한한다. 이로써, 디바이스(200)는 게임 컨텐츠(236)의 적응형 인코딩을 지원하기 위해 PSNR로부터 QP로의 기능 매핑을 지원한다.
따라서, 위에서 설명한 바와 같이, 디바이스(200)의 인코더(214)는 선택된 타겟 PSNR 파라미터(218)에 대응하는 MIN QP(220)를 적응적으로 계산하기 위해 이전 프레임(216)에서 현재 프레임(216)까지의 이동 윈도우에서 컨텐츠 적응형 선형 회귀 모델을 사용한다. 이러한 PSNR 가이드식 2-패스 인코더의 결과는 PSNR을 가이드로 사용하는 해당 프레임에 주관적인 품질 손실이 없을 때 목표 비트 레이트를 언더슈팅함으로써 많은 경우에 인코딩된 프레임(216)의 크기를 크게 줄인다. 이러한 비트 레이트 감소는 대역폭 문제를 완화할 뿐만 아니라 전반적인 성능도 향상시킨다.
도 3은 일부 실시예에 따른 적응형 게임 컨텐츠 인코딩 방법의 흐름도이다. 일부 실시예에서, 방법은 도 1을 참조하여 설명된 바와 같이 인코더 또는 그의 컴포넌트에 의해 구현된다. 예를 들어, 인코더는 레이턴시를 줄이고 게임 컨텐츠 인코딩의 신뢰성을 높이기 위해 클라우드 기반 게임 애플리케이션에서의 게임 컨텐츠 인코딩을 개선하는 방법을 수행하도록 구현 또는 구성된다. 일부 실시예에서, 인코더는 아래에 설명된 동작들을 수행하기 위해 인코더의 기능 요소를 제어하기 위한 명령 세트를 실행한다. 추가적으로 또는 대안적으로, 인코더는 특수 목적 하드웨어를 사용하여 아래에 설명된 동작들의 양태를 수행한다.
도 3의 예에서, 인코더는 하나 이상의 초기화 동작 및 제1 인코딩 동작을 수행한다. 초기화 단계의 일부로서, 일부 실시예에서, 디폴트 목표 PSNR 또는 디폴트 초기 MIN QP, 또는 둘 모두를 결정한다. 일부 다른 실시예에서, 인코더는 또한 프레임 범위에 대한 최대 프레임 수를 결정한다. 다른 실시예에서, 인코더는 목표 PSNR 임계값(예를 들어, 45dB), 목표 비트 레이트 파라미터(예를 들어, 28Mbps) 또는 타겟 프레임 크기 파라미터, 또는 이들의 임의의 조합을 결정한다. 인코더는 또한 적응형 게임 컨텐츠 인코딩을 위한 방법의 초기화 동작의 일부로서 위의 파라미터들 중 하나 이상으로 미리 구성될 수 있다.
제1 인코딩 단계의 일부로서, 블록(302)에서, 인코더는 예를 들어 클라우드 기반 게임 애플리케이션과 관련된 프레임 스트림으로부터 현재 프레임을 수신한다. 블록(304)에서, 인코더는 현재 프레임을 다운스케일링(축소)한다. 예를 들어 인코더는 현재 프레임의 원래 해상도의 일부 비율로 현재 프레임을 다운스케일링한다. 일부 실시예에서, 인코더는 현재 프레임을 원래 해상도의 1/2로 다운스케일링한다. 일부 다른 실시예에서, 인코더는 현재 프레임을 원래 해상도의 1/4로 다운스케일링한다. 다른 실시예에서, 인코더는 현재 프레임 원래 해상도의 다른 비율로 다운스케일링한다. 블록(306)에서, 인코더는 제1 인코딩 패스 동안 다운스케일링된 현재 프레임을 인코딩한다. 일부 실시예에서, 인코더는 타겟 비트 레이트에 기초하여 제1 인코딩 패스 동안 상기 다운스케일링된 현재 프레임을 인코딩한다.
블록(308)에서, 인코더는 인코더의 디폴트 설정 또는 구성에 기초하여 목표 비트 레이트를 결정한다. 일부 실시예에서, 인코더는 인코더의 디폴트 설정 또는 구성에 기초하여 28Mbps와 같은 Mbps 단위로 표현될 수 있는 목표 비트 레이트를 결정한다. 인코더는 28Mbps의 목표 비트 레이트에 기초하여 제1 인코딩 패스 동안 상기 다운스케일링된 현재 프레임을 인코딩한다. 일부 실시예에서, 인코더는 타겟 비트 레이트의 일부 비율(예를 들어, 타겟 비트 레이트의 1/4)에 기초하여 제1 인코딩 패스 동안 상기 다운스케일링된 현재 프레임을 인코딩한다. 예를 들어, 인코더는 28Mbps(예를 들어, 7Mbps)의 타겟 비트 레이트의 비율에 기초하여 제1 인코딩 패스 동안 상기 축소된 현재 프레임을 인코딩한다. 블록(310)에서, 인코더는 추가적으로 또는 대안적으로 제1 인코딩 패스에 기초하여 현재 프레임의 프레임 크기를 결정한다. 블록(312)에서, 인코더는 제1 인코딩 패스에 기초한 추정에 의해 현재 프레임의 PSNR을 결정한다. 예를 들어, 인코더는 특수 목적의 하드웨어 및 소프트웨어 기술을 사용하여 현재 프레임의 제1 인코딩 패스 동안 루마 평면의 PSNR을 결정한다.
도 4는 일부 실시예에 따른 도 3의 방법의 추가 양태를 도시하는 흐름도이다. 일부 실시예에서, 방법은 도 1을 참조하여 설명된 바와 같이 인코더 또는 그의 컴포넌트에 의해 구현된다. 일부 실시예에서, 인코더는 아래에 설명된 동작들을 수행하기 위해 인코더의 기능 요소를 제어하기 위한 명령 세트를 실행한다. 추가적으로 또는 대안적으로, 인코더는 특수 목적 하드웨어를 사용하여 아래에 설명된 동작들을의 양태를 수행한다.
도 4의 예에서, 인코더는 인코딩 동작을 수행하는데, 이는 2-패스 인코딩 동작의 제2 인코딩 동작일 수 있다. 블록(402)에서, 인코더는 제2 인코딩 패스 동안 현재 프레임을 인코딩한다. 제2 인코딩 패스 동안의 인코딩은 하나 이상의 파라미터(예를 들어, 최소 양자화 파라미터, 타겟 비트 레이트 파라미터)에 기초할 수 있다. 블록(404)에서, 인코더는 타겟 비트 레이트를 결정한다. 블록(406)에서, 인코더는 이전 프레임 정보를 결정한다. 블록(408)에서, 인코더는 이전 PSNR 정보를 결정한다. 따라서, 제2 인코딩 패스 동안 현재 프레임의 인코딩은 목표 비트 레이트, 이전 프레임 정보, 또는 이전 PSNR 정보, 또는 제1 인코딩 패스로부터의 추정된 PSNR 또는 이들의 임의의 조합에 기초할 수 있다.
블록(410)에서, 인코더는 제2 인코딩 패스에 기초하여 현재 프레임의 프레임 크기를 결정한다. 블록(412)에서, 제2 인코딩 패스 이후에, 인코더는 현재 프레임의 PSNR을 결정한다. 블록(414)에서, 인코더는 QP = f(PSNR) = 기울기 * PSNR + 교차점의 매핑을 계산하기 위해 {현재 psnr, 현재 qp} 쌍을 기반으로 하는 선형 회귀 모델과 같은 통계 모델을 업데이트한다.
인코더는 현재 프레임까지 이전 프레임의 이동 윈도우에서 {PSNR, QP} 쌍의 양방향 큐(double-ended queue)를 유지한다. 현재 프레임의 제2 인코딩 패스 후, 현재 프레임의 {PSNR, QP} 쌍이 큐(대기열)의 꼬리로 푸시된다. 큐의 크기가 인코더의 초기화 단계에서 결정되는 최대 크기에 도달하는 경우, 블록(414)은 아래 식에 의해 정의된 선형 곡선을 {PSNR,QP} 쌍의 현재 큐에 피팅한(맞춘)다.
Figure pct00001
여기서 a는 교차점이고 b는 기울기이다. 일부 실시예에서, 평균 PSNR 및 평균 QP가 큐에 대해 계산된다. 큐에 있는 각 쌍의 {PSNR,QP}에 대해, 평균 PSNR과 PSNR 간의 차이가 제곱된 다음 그 결과가 s_xx에 누적된다. 마찬가지로, 평균 QP와 QP간의 차이에 평균 PSNR간의 차이가 곱해진 다음 s_xy에 누적된다. 일부 실시예에서, 선형 곡선의 교차점(b) 및 기울기(a)는 다음 공식에 의해 결정된다.
Figure pct00002
일부 실시예에서, 인코더는 마지막으로 큐 앞에 있는 {PSNR,QP} 쌍을 제거한다.
일부 실시예에서, 전술한 기술의 특정 양태는 소프트웨어를 실행하는 처리 시스템의 하나 이상의 프로세서에 의해 구현될 수 있다. 이 소프트웨어는 비-일시적 컴퓨터 판독 가능 저장 매체에 저장되거나 유형적으로 구현된 하나 이상의 실행 가능한 명령 세트를 포함한다. 소프트웨어는 하나 이상의 프로세서에 의해 실행될 때 하나 이상의 프로세서를 조작하여 위에서 설명한 기술의 하나 이상의 양태를 수행하는 명령 및 특정 데이터를 포함할 수 있다. 비-일시적 컴퓨터 판독 가능 저장 매체는 예를 들어 자기 또는 광학 디스크 저장 디바이스, 플래시 메모리와 같은 솔리드 스테이트 저장 디바이스, 캐시, RAM 또는 기타 비휘발성 메모리 디바이스 또는 디바이스들을 포함할 수 있다. 비-일시적 컴퓨터 판독 가능 저장 매체에 저장된 실행 가능 명령들은 소스 코드, 어셈블리 언어 코드, 객체 코드, 또는 하나 이상의 프로세서에 의해 해석되거나 실행 가능한 기타 명령 형식일 수 있다.
컴퓨터 판독 가능 저장 매체는 명령 및/또는 데이터를 컴퓨터 시스템에 제공하기 위해 사용하는 동안 컴퓨터 시스템에 의해 액세스 가능한 임의의 저장 매체 또는 저장 매체의 조합을 포함할 수 있다. 이러한 저장 매체에는 광 매체(예를 들어, CD(compact disc), DVD(digital Versatile Disc), Blu-Ray 디스크), 자기 매체(예를 들어, 플로피 디스크, 자기 테이프 또는 자기 하드 드라이브), 휘발성 메모리(예를 들어, RAM 또는 캐시), 비휘발성 메모리(예를 들어, ROM 또는 플래시 메모리), 또는 MEMS(Microelectromechanical System) 기반 저장 매체가 포함될 수 있지만 이에 한정되지 않는다. 컴퓨터 판독 가능 저장 매체는 컴퓨팅 시스템(예를 들어, 시스템 RAM 또는 ROM)에 내장되거나, 컴퓨팅 시스템(예를 들어, 자기 하드 드라이브)에 고정적으로 부착되거나, 컴퓨팅 시스템(예를 들어, 광 디스크 또는 USB(Universal Serial Bus) 기반 플래시 메모리)에 제거 가능하게 부착되거나, 유선 또는 무선 네트워크(예를 들어, NAS(Network Accessible Storage))를 통해 컴퓨터 시스템에 결합될 수 있다.
일반적인 설명에서 위에서 기술한 모든 활동 또는 요소가 필요한 것은 아니며 특정 활동 또는 디바이스의 일부가 필요하지 않을 수 있으며 하나 이상의 추가 활동이 수행되거나 요소가 포함될 수 있다. 또한 활동들이 나열되는 순서가 반드시 수행되는 순서는 아니다. 또한, 개념은 구체적인 실시예를 참조하여 설명되었다. 그러나, 당업자라면 하기 청구범위에 기재된 본 발명의 범위를 벗어나지 않고 다양한 수정 및 변경이 이루어질 수 있음을 이해할 것이다. 따라서, 명세서 및 도면은 제한적인 의미가 아닌 예시적인 것으로 간주되어야 하며, 이러한 모든 변형은 본 개시의 범위 내에 포함되도록 의도된다.
문제에 대한 이점, 장점 및 솔루션이 특정 실시예와 관련하여 위에서 설명되었다. 하지만, 문제에 대한 이점, 장점 및 솔루션 및 이점, 장점 또는 솔루션을 발생시키거나 더 뚜렷하게 만들 수 있는 임의의 특징(들)은 일부 또는 모든 청구의 중요하거나 필수이거나 필수적인 특징으로 해석되어서는 안된다. 더욱이, 개시된 특정 실시예는 단지 설명을 위한 것일 뿐이며, 개시된 주제는 상이하지만 본 명세서의 교시의 혜택을 받는 당업자에게 명백한 동등한 방식으로 수정 및 실시될 수 있다. 아래의 청구 범위에 기술된 것 외에 본 명세서에 도시된 구성 또는 설계의 세부 사항에 대한 제한은 없다.
따라서, 위에 개시된 특정 실시예가 변경되거나 수정될 수 있고 이러한 모든 변형이 개시된 주제의 범위 내에서 고려된다는 것이 명백하다. 따라서, 본 명세서에서 추구하는 보호는 아래의 청구범위에 설명된 바와 같다.

Claims (20)

  1. 실시간 클라우드 게임용 비디오 인코딩 방법으로서,
    제1 인코딩 패스에서 프레임 스트림의 각 프레임의 다운스케일링된 버전을 인코딩하는 것과 관련된 피크-신호-대-잡음비를 결정하는 단계; 및
    제1 인코딩 패스에 응답하여, 피크-신호-대-잡음비에 기초하여 제2 인코딩 패스에서 프레임 스트림의 각 프레임을 인코딩하는 단계를 포함하는 것을 특징으로 하는 비디오 인코딩 방법.
  2. 제1항에 있어서,
    통계 선형 회귀 모델에 기초하여 프레임 스트림의 각 프레임을 인코딩하기 위한 선택된 목표 피크-신호-대-잡음비와 관련된 최소 양자화 파라미터를 결정하는 단계를 더 포함하고; 그리고
    프레임 스트림의 프레임을 인코딩하는 단계는 선택된 타겟 피크-신호-대-잡음비를 만족시키기 위해 상기 인코딩된 프레임에 대한 최소 양자화 파라미터에 기초하는 것을 특징으로 하는 비디오 인코딩 방법.
  3. 제2항에 있어서,
    양방향 큐의 이전 프레임의 이동 윈도우에서 피크-신호-대-잡음비 및 양자화 파라미터의 쌍을 선형 곡선에 맞춤으로써 각 프레임에 대한 피크-신호-대-잡음비로부터 최소 양자화 파라미터로의 선형 매핑을 결정하는 단계를 더 포함하고, 상기 선형 매핑은 각 프레임의 제2 인코딩 패스 후에 업데이트되는 것을 특징으로 하는비디오 인코딩 방법.
  4. 제3항에 있어서,
    선택된 목표 목표 피크-신호-대-잡음비에 및 프레임 스트림과의 각 프레임에 대한 업데이트된 선형 매핑에 기초하여 최소 양자화 파라미터의 하한값을 결정하는 단계를 더 포함하는 것을 특징으로 하는 비디오 인코딩 방법.
  5. 제3항에 있어서,
    이전 프레임의 이동 윈도우에 기초하여 피크-신호-대-잡음비로부터 최소 양자화 파라미터로의 선형 매핑의 교차점 및 기울기를 결정하는 단계를 더 포함하는 것을 특징으로 하는 비디오 인코딩 방법.
  6. 제5항에 있어서,
    피크-신호-대-잡음비 및 양자화 파라미터의 쌍과 관련된 이전 프레임의 이동 윈도우의 크기를 유지하는 단계를 더 포함하는 것을 특징으로 하는 비디오 인코딩 방법.
  7. 제2항에 있어서,
    프레임 스트림의 각 프레임과 관련된 피크-신호-대-잡음비에 기초하여 통계 모델을 업데이트하는 단계를 더 포함하고,
    상기 프레임 스트림의 각 프레임을 인코딩하는 단계는 통계 모델로부터의 최소 양자화 파라미터에 기초하는 것을 특징으로 하는 비디오 인코딩 방법.
  8. 제1항 내지 제7항 중 어느 한 항에 있어서,
    인코더에 의해 압축되지 않은 프레임과 제1 인코딩 패스의 재구성된 프레임 사이의 프레임 스트림의 각 프레임과 관련된 피크-신호-대-잡음비를 계산하는 단계; 및 인코더에 의해 압축되지 않은 프레임과 제2 인코딩 패스의 재구성된 프레임 사이의 프레임 스트림의 각 프레임과 관련된 피크-신호-대-잡음비를 계산하는 단계를 더 포함하는 것을 특징으로 하는 비디오 인코딩 방법.
  9. 제7항에 있어서,
    상기 통계 모델은,
    피크-신호-대-잡음비 및 양자화 파라미터의 쌍에 기초한 선형 회귀 모델을 포함하는 것을 특징으로 하는 비디오 인코딩 방법.
  10. 제1항 내지 제7항 중 어느 한 항에 있어서,
    목표 피크-신호-대-잡음비 임계값을 결정하는 단계를 더 포함하고,
    상기 프레임 스트림의 각각의 프레임을 인코딩하는 단계는 목표 피크-신호-대-잡음비 임계값에 기초하는 것을 특징으로 하는 비디오 인코딩 방법.
  11. 제1항 내지 제7항 중 어느 한 항에 있어서,
    다운 샘플링 파라미터에 기초하여 프레임 스트림의 각 프레임을 다운 샘플링하는 단계; 및
    다운 샘플링에 응답하여, 목표 비트 레이트 파라미터에 기초하여 프레임 스트림의 상기 다운샘플링된 프레임을 인코딩하는 단계를 더 포함하는 것을 특징으로 하는 비디오 인코딩 방법.
  12. 실시간 클라우드 게임용 비디오 인코딩 장치로서,
    하나 이상의 프로세서;
    하나 이상의 프로세서에 연결된 메모리; 및
    선택된 목표 피크-신호-대-잡음비에 기초하여 최소 양자화 파라미터를 결정하고, 그리고
    최소 양자화 파라미터에 기초하여 프레임 스트림의 각 프레임을 인코딩하기 위해,
    하나 이상의 프로세서에 의해 실행 가능한 명령들을 포함하는 것을 특징으로 하는 비디오 인코딩 장치.
  13. 제12항에 있어서,
    상기 명령들은,
    프레임 스트림의 각 프레임과 관련된 피크-신호-대-잡음비에 기초하여 통계 모델을 업데이트하기 위해 하나 이상의 프로세서에 의해 추가로 실행 가능한 것을 특징으로 하는 비디오 인코딩 장치.
  14. 제13항에 있어서,
    상기 통계 모델은,
    선형 회귀 모델을 포함하는 것을 특징으로 하는 비디오 인코딩 장치.
  15. 제13항 또는 제14항에 있어서,
    상기 선형 회귀 모델은,
    피크-신호-대-잡음비 및 양자화 파라미터의 하나 이상의 쌍에 기초하는 것을 특징으로 하는 비디오 인코딩 장치.
  16. 제12항에 있어서,
    상기 명령들은,
    다운 샘플링 파라미터에 기초하여 프레임 스트림의 각 프레임을 다운 샘플링하고; 그리고
    다운 샘플링에 응답하여, 목표 비트 레이트 파라미터에 기초하여 프레임 스트림의 상기 다운샘플링된 프레임을 인코딩하기 위해 하나 이상의 프로세서에 의해 추가로 실행 가능한 것을 특징으로 하는 비디오 인코딩 장치.
  17. 디바이스에서 실시간 클라우드 게임용 게임 컨텐츠를 인코딩하기 위한 코드를 저장하는 비-일시적 컴퓨터 판독 가능 매체로서, 상기 코드는,
    선택된 목표 피크-신호-대-잡음비에 기초하여 최소 양자화 파라미터를 결정하고; 그리고
    최소 양자화 파라미터에 기초하여 프레임 스트림의 각 프레임을 인코딩하기 위해 디바이스의 프로세서에 의해 실행 가능한 명령들을 포함하는 것을 특징으로 하는 비-일시적 컴퓨터 판독 가능 매체.
  18. 제17항에 있어서,
    상기 명령들은,
    프레임 스트림의 각 프레임과 관련된 피크-신호-대-잡음비에 기초하여 통계 모델을 업데이트하기 위해 디바이스의 프로세서에 의해 추가로 실행 가능한 것을 특징으로 하는 비-일시적 컴퓨터 판독 가능 매체.
  19. 제18항에 있어서,
    상기 통계 모델은,
    선형 회귀 모델을 포함하는 것을 특징으로 하는 비-일시적 컴퓨터 판독 가능 매체.
  20. 제18항 또는 제19항에 있어서,
    상기 선형 회귀 모델은,
    피크-신호-대-잡음비 및 양자화 파라미터의 하나 이상의 쌍에 기초하는 것을 특징으로 하는 비-일시적 컴퓨터 판독 가능 매체.
KR1020237016478A 2020-11-25 2020-11-25 클라우드 게임을 위한 컨텐츠 적응형 신호 대 잡음비 가이드식 2-패스 비디오 인코딩 KR20230088454A (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2020/062161 WO2022115102A1 (en) 2020-11-25 2020-11-25 Content-adaptive signal-to noise-ratio-guided two-pass video encoding for cloud gaming

Publications (1)

Publication Number Publication Date
KR20230088454A true KR20230088454A (ko) 2023-06-19

Family

ID=73856334

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237016478A KR20230088454A (ko) 2020-11-25 2020-11-25 클라우드 게임을 위한 컨텐츠 적응형 신호 대 잡음비 가이드식 2-패스 비디오 인코딩

Country Status (6)

Country Link
US (1) US20230396766A1 (ko)
EP (1) EP4218236A1 (ko)
JP (1) JP2023550642A (ko)
KR (1) KR20230088454A (ko)
CN (1) CN116391354A (ko)
WO (1) WO2022115102A1 (ko)

Also Published As

Publication number Publication date
EP4218236A1 (en) 2023-08-02
US20230396766A1 (en) 2023-12-07
JP2023550642A (ja) 2023-12-04
CN116391354A (zh) 2023-07-04
WO2022115102A1 (en) 2022-06-02

Similar Documents

Publication Publication Date Title
US10523947B2 (en) Server-based encoding of adjustable frame rate content
CN108769693B (zh) 质量感知视频优化中的宏块级自适应量化
AU2010208597B2 (en) Multiple bit rate video encoding using variable bit rate and dynamic resolution for adaptive video streaming
US8270473B2 (en) Motion based dynamic resolution multiple bit rate video encoding
KR102525577B1 (ko) 데이터 스트리밍 방법 및 장치
US20210195262A1 (en) Method and system for low latency high frame rate streaming
JP5745175B2 (ja) 適応的な量子化パラメータ差分値を用いた映像の符号化及び復号化方法と装置
US10003626B2 (en) Adaptive real-time transcoding method and streaming server therefor
WO2017031692A1 (zh) 视频下载方法、装置及系统
JP2005538606A (ja) ビデオシーケンスのレートを制御する方法及び装置並びにビデオ符号化装置
CN107135411B (zh) 一种调整视频码率的方法及电子设备
EP3941069A1 (en) Apparatus and method for accelerating super-resolution in real-time video streaming
US20180184089A1 (en) Target bit allocation for video coding
KR102611940B1 (ko) 콘텐츠 적응적 양자화 강도 및 비트 레이트 모델링
KR20150062745A (ko) 가상화 서비스 장치 및 방법
US11202116B2 (en) Systems, methods, and devices for optimizing streaming bitrate based on variations in processor load
EP4152755A1 (en) Methods, systems, and apparatuses for adaptive bitrate ladder construction based on dynamically adjustable neural networks
JP7265622B2 (ja) 低遅延ビデオ符号化のための効率的な量子化パラメータ予測方法
KR20230088454A (ko) 클라우드 게임을 위한 컨텐츠 적응형 신호 대 잡음비 가이드식 2-패스 비디오 인코딩
JP2017028622A (ja) 画質制御装置、画質制御方法、画質制御システム及び画質制御用プログラム
EP4213485A1 (en) Method for dynamic computational resource management and apparatus for implementing the same
Gao et al. A method to improve perceptual quality of intra-refresh-enabled low-latency video coding
CN117714729A (zh) 直播视频编码方法、装置、计算机设备及存储介质
JP2024075512A (ja) 短待ち時間の双方向体験のための場面変更におけるビデオ圧縮
JP2024514060A (ja) ストリーミングアプリケーションにおけるビデオデータの微調整