KR102617595B1 - 게임-생성된 모션 벡터들을 위한 시스템들 및 방법들 - Google Patents

게임-생성된 모션 벡터들을 위한 시스템들 및 방법들 Download PDF

Info

Publication number
KR102617595B1
KR102617595B1 KR1020227028903A KR20227028903A KR102617595B1 KR 102617595 B1 KR102617595 B1 KR 102617595B1 KR 1020227028903 A KR1020227028903 A KR 1020227028903A KR 20227028903 A KR20227028903 A KR 20227028903A KR 102617595 B1 KR102617595 B1 KR 102617595B1
Authority
KR
South Korea
Prior art keywords
per
pixel
engine
graphics
motion vectors
Prior art date
Application number
KR1020227028903A
Other languages
English (en)
Other versions
KR20220123141A (ko
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 제니맥스 미디어 인크.
Priority to KR1020237043929A priority Critical patent/KR20240001278A/ko
Publication of KR20220123141A publication Critical patent/KR20220123141A/ko
Application granted granted Critical
Publication of KR102617595B1 publication Critical patent/KR102617595B1/ko

Links

Classifications

    • EFIXED CONSTRUCTIONS
    • E05LOCKS; KEYS; WINDOW OR DOOR FITTINGS; SAFES
    • E05BLOCKS; ACCESSORIES THEREFOR; HANDCUFFS
    • E05B77/00Vehicle locks characterised by special functions or purposes
    • E05B77/54Automatic securing or unlocking of bolts triggered by certain vehicle parameters, e.g. exceeding a speed threshold
    • 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/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • EFIXED CONSTRUCTIONS
    • E05LOCKS; KEYS; WINDOW OR DOOR FITTINGS; SAFES
    • E05BLOCKS; ACCESSORIES THEREFOR; HANDCUFFS
    • E05B79/00Mounting or connecting vehicle locks or parts thereof
    • E05B79/10Connections between movable lock parts
    • E05B79/20Connections between movable lock parts using flexible connections, e.g. Bowden cables
    • EFIXED CONSTRUCTIONS
    • E05LOCKS; KEYS; WINDOW OR DOOR FITTINGS; SAFES
    • E05BLOCKS; ACCESSORIES THEREFOR; HANDCUFFS
    • E05B83/00Vehicle locks specially adapted for particular types of wing or vehicle
    • E05B83/16Locks for luggage compartments, car boot lids or car bonnets
    • E05B83/24Locks for luggage compartments, car boot lids or car bonnets for car bonnets
    • EFIXED CONSTRUCTIONS
    • E05LOCKS; KEYS; WINDOW OR DOOR FITTINGS; SAFES
    • E05BLOCKS; ACCESSORIES THEREFOR; HANDCUFFS
    • E05B85/00Details of vehicle locks not provided for in groups E05B77/00 - E05B83/00
    • E05B85/20Bolts or detents
    • E05B85/24Bolts rotating about an axis
    • E05B85/243Bolts rotating about an axis with a bifurcated bolt
    • EFIXED CONSTRUCTIONS
    • E05LOCKS; KEYS; WINDOW OR DOOR FITTINGS; SAFES
    • E05BLOCKS; ACCESSORIES THEREFOR; HANDCUFFS
    • E05B85/00Details of vehicle locks not provided for in groups E05B77/00 - E05B83/00
    • E05B85/20Bolts or detents
    • E05B85/24Bolts rotating about an axis
    • E05B85/26Cooperation between bolts and detents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • 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/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/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
    • 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/517Processing of motion vectors by encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/527Global motion vector estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/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/56Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search
    • 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/587Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal sub-sampling or interpolation, e.g. decimation or subsequent interpolation of pictures in a video sequence
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness
    • EFIXED CONSTRUCTIONS
    • E05LOCKS; KEYS; WINDOW OR DOOR FITTINGS; SAFES
    • E05BLOCKS; ACCESSORIES THEREFOR; HANDCUFFS
    • E05B81/00Power-actuated vehicle locks
    • E05B81/12Power-actuated vehicle locks characterised by the function or purpose of the powered actuators
    • E05B81/16Power-actuated vehicle locks characterised by the function or purpose of the powered actuators operating on locking elements for locking or unlocking action
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F16ENGINEERING ELEMENTS AND UNITS; GENERAL MEASURES FOR PRODUCING AND MAINTAINING EFFECTIVE FUNCTIONING OF MACHINES OR INSTALLATIONS; THERMAL INSULATION IN GENERAL
    • F16HGEARING
    • F16H59/00Control inputs to control units of change-speed-, or reversing-gearings for conveying rotary motion
    • F16H59/02Selector apparatus
    • F16H59/08Range selector apparatus
    • F16H59/10Range selector apparatus comprising levers
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F16ENGINEERING ELEMENTS AND UNITS; GENERAL MEASURES FOR PRODUCING AND MAINTAINING EFFECTIVE FUNCTIONING OF MACHINES OR INSTALLATIONS; THERMAL INSULATION IN GENERAL
    • F16HGEARING
    • F16H63/00Control outputs from the control unit to change-speed- or reversing-gearings for conveying rotary motion or to other devices than the final output mechanism
    • F16H63/02Final output mechanisms therefor; Actuating means for the final output mechanisms
    • F16H63/30Constructional features of the final output mechanisms
    • F16H63/34Locking or disabling mechanisms
    • F16H63/36Interlocking devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/53Multi-resolution motion estimation; Hierarchical motion estimation

Abstract

통합 그래픽스 렌더링을 위한 시스템들 및 방법들이 개시된다. 특정 실시예들에서, 시스템들 및 방법들은 네트워크를 통해 그래픽스를 렌더링하기 위해, 그래픽스 엔진, 비디오 인코딩 엔진 및 원격 클라이언트 코딩 엔진을 사용한다. 시스템들 및 방법들은 픽셀 당 모션 벡터들의 생성을 포함하고, 이들은 그래픽스 엔진에서 블록 당 모션 벡터들로 변환된다. 그래픽스 엔진은 이러한 블록 당 모션 벡터들을 비디오 인코딩 엔진에 주입하고, 따라서, 비디오 인코딩 엔진은 원격 클라이언트 코딩 엔진으로의 전송을 위해, 이러한 벡터들을 인코딩된 비디오 데이터로 변환할 수 있다.

Description

게임-생성된 모션 벡터들을 위한 시스템들 및 방법들{SYSTEMS AND METHODS FOR GAME-GENERATED MOTION VECTORS}
본 출원은 2017년 4월 21일 출원된 미국 임시출원 제62/488,526호 및 2017년 12월 8일에 출원된 미국 임시출원 제62/596,325호의 이익을 주장한다.
서버 측 게임이 클라이언트 측 플레이어(player)에 의해 제어되는 원격 게이밍(gaming) 어플리케이션들은 기존의 또는 맞춤화된(customized) 인코더들을 사용하여, 실시간으로 3-차원(3D) 그래픽스 엔진(graphics engine)으로부터의 비디오 출력을 인코딩하도록 시도하였다. 그러나, 비디오 게임들의 대화형 특성, 특히 비디오 출력과 플레이어 입력 사이의 플레이어 피드백 루프(player feedback loop)는 게임 비디오 스트리밍을 전통적인 비디오 스트리밍 보다 대기 시간(latency)에 훨씬 더 민감하게 만든다. 기존의 비디오 코딩 방법들은 인코딩 시간의 감소를 위해, 계산 능력(computational power)을 교환할 수 있으며, 그 밖의 다른 것은 없다. 인코딩 프로세스를 비디오 렌더링 프로세스에 통합하기 위한 새로운 방법들은 인코딩 시간의 현저한 감소를 제공할 수 있으면서, 계산 능력을 낮추고, 인코딩된 비디오의 품질을 개선하며, 기존의 하드웨어 디바이스들의 상호 운용성을 유지하기 위해 오리지널 비트스트림 데이터 형식(original bitstream data format)을 유지할 수 있다.
기존의 비디오 코딩 표준들은, 비디오 인코딩 시간, 사이즈 또는 품질을 향상시키기 위해, 이미지 시퀀스들에 포함된 컬러 및 시간 정보 만을 갖는다. MPEG 표준 시리즈와 같은 몇몇의 코딩 표준들은, 비디오에 포함된 컬러 데이터를 기반으로 객체 이동(object movement)을 근사화하기 위해, 계산 집약적 블록 기반 모션 추정 방법을 사용한다. 이러한 블록 기반 모션 추정 방법들은 역사적으로 인코딩된 비디오의 사이즈를 크게 줄였지만, 실시간 비디오 스트리밍 환경들에서 상당한 대기 시간의 원인이다.
인코딩 프로세스를 비디오 렌더링 프로세스에 통합하는 것은, 인코딩 향상을 위해 활용될 수 있는 추가 데이터 소스들로의 액세스(access)를 제공한다. 예를 들면, 게임 엔진에 포함된 것과 같은 몇몇의 3D 그래픽스 엔진들은 이미 각 비디오 프레임에서 각 픽셀의 이동을 완벽하게 설명하는 모션 벡터(motion vector)들을 생성할 수 있다. 최종 렌터링된 프레임을 제공하고, 적절하게 포맷된(formatted) 모션 벡터 데이터를 인코더에 주입함으로써, 비디오 인코더에서 가장 계산적으로 복잡하고 시간 소모적인 단계인 모션 추정이 각 인터(inter) 프레임 마다 스킵(skip)될 수 있다. 추가적으로, 그래픽스 엔진에 의해 공급되는 모션 벡터들은 블록 기반 모션 추정 알고리즘에 의해 근사화된 것 보다 더 정확할 것이며, 이는 인코딩된 비디오의 품질을 향상시킬 것이다.
이러한 두 개의 도메인(domain)들, 즉 비디오 인코딩 및 실시간 그래픽스 렌더링은 일반적으로 분리되어 독립적으로 운영되어 왔다. 각각의 장점들을 활용하기 위해 그래픽스 엔진과 인코더를 통합함으로써, 인코딩 시간이 대기 시간에 매우 민감한 스트리밍 어플리케이션들을 지원하기에 충분하게 단축될 수 있다.
본 발명의 이들 및 다른 수반되는 이점들은 후술되는 기술들의 결함을 고려하여 명백해질 것이다.
예를 들어, 미국 특허 출원 공개 제2015/0228106 A1호("'106 공개")는 비디오 이미지의 디코딩된 블록들의 시퀀스를 생성하기 위해 비디오 데이터 디코딩에 관한 기술을 개시하고 있다. 이 기술은, 디코딩된 블록이 코덱 엔진(codec engine)에 의해 생성될 때, 비디오 이미지의 각각의 디코딩된 블록을 기하학적(geometric) 표면의 대응하는 다각형(polygon)들에 대한 별도의 텍스처(texture)로서 사용할 수 있게 한다. '106 공개 기술은, 매핑될 비디오 이미지를 생성하기 위해 인코딩된 비디오 데이터를 디코딩하는 코덱 엔진과 비디오 이미지의 기하학적 표면으로의 텍스처 매핑을 수행함으로써 부분적으로 디스플레이 픽처(display picture)를 렌더링하는 3D 그래픽스 엔진 간의 통합을 기술하고 있다. 그러나, 이러한 기술은, 적어도 비디오 코덱 엔진으로의 주입을 위해 최종 렌더링된 프레임과 적절하게 포맷된 모션 벡터 데이터를 둘 다 제공하는 그래픽스 엔진을 개시하거나 사용하지 않기 때문에, 본 발명과 비교하여 부족하고, 따라서, 비디오 코덱 엔진은 원격 클라이언트 코딩 엔진으로 인코딩된 비디오 데이터를 전송하기 전에, 어떤 모션 추정을 수행할 필요가 없다. 대조적으로, 본 발명의 컴퓨터 기술에 대한 개선은 인코딩 시간과 계산 능력의 감소들, 인코딩된 비디오의 품질에 있어서의 향상을 제공하고, 상호 운용성을 유지하기 위해 오리지널 비트스트림 데이터 형식을 유지한다.
미국 특허 출원 공개 제2011/0261885 A1호("'885 공보")는 모션 추정 및 매크로블록(macro block) 인코딩의 통합을 통한 대역폭 감소에 관한 시스템들 및 방법들을 개시하고 있다. 이러한 시스템에서, 모션 추정은 모션 벡터들을 포함하는 모션 추정 관련 정보를 생성하기 위해, 페치된(fetched) 비디오 데이터를 사용하여 수행될 수 있다. 이러한 모션 벡터들은 버퍼에 캐싱된(cashed) 대응하는 비디오 데이터를 사용하여, 현재의 매크로블록에 대응할 수 있다. 다시 말해, '885 공개 기술은, 적어도 비디오 코덱 엔진으로의 주입을 위해 최종 렌더링된 프레임과 적절하게 포맷된 모션 벡터 데이터를 둘 다 제공하는 그래픽스 엔진을 개시하거나 사용하지 않기 때문에, 본 발명과 비교하여 부족하고, 따라서, 비디오 코덱 엔진은 원격 클라이언트 코딩 엔진으로 인코딩된 비디오 데이터를 전송하기 전에, 어떤 모션 추정을 수행할 필요가 없다. 따라서, '885 공보의 기술은 인코딩 시간과 계산 능력의 동일한 감소들 및 본 발명이 제공하는 인코딩된 비디오의 품질에 있어서의 향상을 제공하지 않는다.
이러한 기술에서의 최신 기술에 대한 상기한 기술로부터 명백한 바와 같이, 이 기술 분야에서 게임 환경들에서의 비디오 인코딩과 관련된 현재의 컴퓨터 기술에 대한 개선이 필요하다.
따라서, 본 문서에 개시된 예시적인 실시예들의 목적은, 해당 기술 분야에서의 과제들을 해결하고, 인코딩된 비디오 데이터를 전송하기 위해, 그래픽스 엔진, 비디오 코덱 엔진 및 원격 클라이언트 코딩 엔진을 실행하는 네트워크 서버 아키텍처를 사용하고, 이로 인해 그래픽스 엔진이 비디오 코덱 엔진으로의 주입을 위해 최종 렌더링된 프레임과 적절하게 포맷된 모션 벡터 데이터를 둘 다 제공하는, 그래픽스 생성을 위한 시스템들 및 방법들을 제공하는 데 있다.
본 발명의 다른 목적은, 비디오 코덱 엔진이 원격 클라이언트 코딩 엔진으로 인코딩된 비디오 데이터를 전송하기 전에, 어떤 모션 추정을 수행할 필요가 없는, 그래픽스 생성을 위한 시스템들 및 방법들을 제공하는 데 있다.
본 발명의 또 다른 목적은, 그래픽스 엔진이 픽셀 당(per-pixel) 모션 벡터들을 블록 당(per-block) 모션 벡터들로 변환하는, 그래픽스 생성을 위한 시스템들 및 방법들을 제공하는 데 있다.
본 발명의 또 다른 목적은, 픽셀 당 결과를 획득하기 위해 픽셀 당 모션 벡터들을 카메라 속도(camera velocity)에 추가하도록, 픽셀 당 모션 벡터들이 컴퓨팅 쉐이더(compute shader)를 사용하여 생성되고, 픽셀 당 결과가 모션 벡터 버퍼에 저장되는, 그래픽스 생성을 위한 시스템들 및 방법들을 제공하는 데 있다.
본 발명의 또 다른 목적은, 블록 당 모션 벡터 데이터가 크로마 서브샘플링된(chroma subsampled) 비디오 프레임과 동시에, 그래픽스 엔진에 의해 비디오 인코딩 엔진에 실시간으로 주입되는 그래픽스 생성을 위한 시스템들 및 방법들을 제공하는 데 있다.
첨부된 도면과 관련하여 고려될 때, 후술되는 상세한 설명을 참조하여 보다 잘 이해될 수 있으므로, 본 발명의 완전한 이해 및 그에 따른 많은 이점이 쉽게 얻어질 것이다.
도 1은 인코딩 및 클라이언트로의 전송을 위해 비디오를 렌더링하는 3D 그래픽스 엔진을 도시하는 블록도이다;
도 2는 3D 그래픽스 엔진에 의해 생성된 모션 벡터들의 도 4의 수정된 인코딩 프로세스에의 주입에 의한 대기 시간 감소를 위해 필요한 단계들을 나타내는 흐름도이다;
도 3은 인코딩 엔진으로의 주입을 위한 그래픽스 엔진에서 생성된 픽셀 당 모션 벡터들의 매크로블록 당 모션 벡터들로의 변환을 도시하는 도면이다; 그리고
도 4는 도 1에서 사용된 비디오 인코딩 프로세스에 요구되는 변경들을 도시하는 흐름도이다.
도면에 도시된 본 발명의 바람직한 실시예들을 기술함에 있어서, 명확화를 위하여, 특정 용어에 의존될 것이다. 그러나, 본 발명은 이렇게 선택된 특정 용어로 한정되도록 의도되지 않으며, 각각의 특정 용어는 유사한 목적을 달성하기 위해 유사한 방식으로 작동하는 모든 기술적 등가물들을 포함하는 것으로 이해되어야 한다. 본 발명의 몇몇 바람직한 실시예들은 예시의 목적으로 기술되지만, 본 발명은 도면에 구체적으로 도시되지 않은 다른 형태들로 구현될 수 있는 것으로 이해되어야 한다.
3D 그래픽스 엔진이 인코딩되어 실시간으로 전송될 비디오를 렌더링하는 어플리케이션들에서, 그래픽스 엔진과 인코더는 전체 계산 시간과 계산 오버헤드를 줄이기 위해 더 긴밀하게 결합될 수 있다. 인코딩 프로세스의 가장 복잡하고 계산 집약적 단계인 모션 추정 단계를 피하기 위해, 각 비디오 프레임에 대해 그래픽스 엔진에 의해 이미 생성된 픽셀 당 모션 벡터 데이터는 블록 당 모션 벡터 데이터로 변환되어, 코덱 엔진에 주입될 수 있다. 플로저블(plausible) 모션 블러 방법을 위한 재구성 필터를 사용하는 그래픽스 엔진에서, 픽셀 당 모션 벡터들은 각 비디오 프레임에 대해 이미 계산되었을 수 있다. 픽셀 당 모션 벡터들로부터 블록 당 모션 벡터들로의 변환은, 16x16 픽셀들의 각 매크로블록에 대한 평균 벡터(mean vector)를 찾음으로써, 수행될 수 있다. 변환은 3D 그래픽스 엔진에서 수행되므로, 오리지널 모션 벡터 데이터의 일부만이 3D 그래픽스 엔진으로부터 코딩 엔진으로 전달될 필요가 있다. 또한, 이는, 그래픽스 엔진과 코딩 엔진이 메모리를 공유하지 않는 경우에, 메모리 대역폭 소비를 줄이는 데 도움이 될 것이다. 블록 당 모션 벡터들은, 인코딩 프로세스의 나머지를 크게 수정하지 않고, 모션 추정 단계를 완전히 스킵하여, 코덱 엔진에 주입된다.
도 1 내지 4는, 3D 그래픽스 엔진이 비디오 프레임을 렌더링하는 프로세스에서 수반되는 모션 벡터 데이터를 생성하는 비디오 스트리밍 어플리케이션들에서 비디오 인코딩의 개선을 위한 예시적인 기술을 도시하고 있다.
도 1은, 비디오가 원격 클라이언트(116)로의 전송을 위해 렌더링되고 인코딩되는 예시적인 시스템을 도시하고 있다. 몇몇의 서버 아키텍처(120)의 메모리(106)에서 실행되는 3D 그래픽스 엔진(100) 은, 비디오 및 렌더링된 비디오 프레임에 대한 보충(supplemental) 모션 벡터 정보를 클라이언트 컴퓨터 시스템(116)으로의 전송을 위해 인코딩된 비트스트림(108)을 생성하는 코덱 엔진(본 문서에서, 코덱 또는 인코더로 지칭됨)(102)으로 전달한다. 서버 아키텍처(120)는 그래픽스 엔진과 코덱 엔진 둘 다의 기능들을 지원할 수 있는 하드웨어 또는 소프트웨어의 어떤 조합이다. 주어진 예시에서, 그래픽스 엔진(100)은, 예를 들어 컴퓨터 판독 가능 메모리(106)에 로딩되는 비디오 게임 소프트웨어(104)를 실행하는 GPU로서 구현될 수 있는 한편, 코덱 엔진(102)은 비디오 인코딩 소프트웨어를 실행하는 CPU로서 구현될 수 있다. 코딩 엔진(102)은 원격 코딩 엔진(코덱)(110)을 포함하는 몇몇의 원격 클라이언트 컴퓨터 시스템(116)으로의 전송을 위한 인코딩된 비디오 데이터(108)를 생성하고, 원격 코딩 엔진(코덱)(110)은 디스플레이 컨트롤러(112)에 의해 구동되는 디스플레이(114)에서 재생을 위한 비트스트림을 디코딩한다. 원격 클라이언트 컴퓨터 시스템(116)은 인코딩된 비트스트림(108)의 디코딩 및 디스플레이를 가능하게 하는 하드웨어, 디바이스 또는 소프트웨어의 어떤 조합이다.
도 2는 비디오 인코딩 프로세스에서 렌더링 프로세스로부터 기존의 보충 데이터를 재사용함으로써 더 빠른 인코딩 시간들을 달성하기 위해 요구되는 단계들을 도시하고 있다. 단계(202)에서, 보충 데이터는 먼저 서버(120)에 위치되는 그래픽스 엔진(100)의 정상적인 동작 특징으로서 생성되어야 한다. GPU들이 더 강력해지고 보편적으로 됨에 따라, 실시간 픽셀 당 모션 벡터 생성은 현재의 비디오 게임 엔진들의 공통적인 특징이 되었다. 3D 씬(scene)으로부터 2D 비디오 프레임의 렌더링 동안, 3D 그래픽스 엔진은, 이후 포스트-프로세스 패스(pass)들을 위한 입력들로서 사용되도록, 컬러 생성 프로세스 동안 보조(ancillary) 출력들을 생성할 수 있다. 보조 출력들은 축적, 컬러 또는 속도 버퍼들에 대해 기록된 정보, 각각 픽셀 깊이, 픽셀 컬러 및 픽셀 이동에 대한 정보의 임시 저장을 위해 할당된 세 개의 메모리 위치들을 포함할 수 있다.
일반적으로 사용되는, 플로저블(plausible) 모션 블러를 위한 재구성 필터로서 지칭되는, 모션 블러의 구현에서, 속도 버퍼로부터의 픽셀 당 속도들은 먼저 더 적은 수의 타일(tile)들로 다운샘플링되고, 여기서 각 타일은 픽셀 그룹에서 최대 속도를 가정한다. 그런 다음, 타일들은 축적 버퍼에서 픽셀 당 깊이들을 사용하여 마스킹되고(masked), 그 결과가 모션 블러를 생성하기 위해 컬러 버퍼에서 픽셀 당 컬러들에 적용된다. 정확도(fidelity), 성능, 또는 둘 다를 향상시키는 재구성 필터 방법에 대한 여러 변형들이 있지만, 개념들은 유사하게 유지되고, 속도 버퍼는 두 개의 인접한 프레임들 사이의 픽셀 당 모션을 포함한다. '속도'는 그래픽스 엔진 기술에 사용되는 용어이고, '모션 벡터'는 비디오 인코딩 기술에 사용되는 용어이지만, 이 용어들은 기능적으로 동일하고, 픽셀 당 속도는 픽셀 당 모션 벡터와 동일한 것이다. 속도 버퍼는 비디오 인코딩 프로세스에서 재사용될 픽셀 당 모션 벡터들의 형태로 보충 데이터를 포함한다.
단계(204)에서, 서버(120)에 위치되는 그래픽스 엔진(100)은 인코딩에 사용될 매크로블록 사이즈를 기반으로, 픽셀 당 모션 벡터들을 블록 당 모션 벡터들로 변환한다. H.264 코덱은 디폴트(default)로 16x16 픽셀 매크로블록들을 사용하고, 더 세분화하기 위한 옵션(option)을 갖는다. 256 개의 픽셀 당 모션 벡터들은 블록 당 모션 벡터로서 기능할 단일 평균 벡터를 제공하기 위해 함께 평균화될 수 있다. 이러한 프로세스는 도 3과 관련하여 더 상세하게 설명된다.
단계(206)에서, 매크로블록 당 모션 벡터 정보는, 모션 추정 단계를 우회하여, 서버(120)에 위치된 코딩 엔진/인코더(102)에 주입된다. 인코더의 소프트웨어 구현들에서, 모션 추정 단계는 완전히 비활성될 수 있고, 이는 CPU 계산 시간에 큰 절약을 제공한다. CPU 에서의 시간 절약은, GPU에서 평균 벡터들을 계산하고(단계(204)에서), CPU로 이들을 전송하는 데 요구되는 추가 시간을 상쇄하는 것 이상이어야 한다.
단계(208)에서, 그래픽스 엔진(100)에 의해 공급되는 블록 당 모션 벡터들은 일반적인 모션 추정 단계에서 계산되는 것들과 상호 교환 가능하기 때문에, 인코딩은 모션 보상 단계부터 시작한다(단계(208)). 비디오 인코딩 프로세스의 나머지는, 도 4와 관련하여 더 상세하게 설명되는 바와 같이, 모션 추정 기술들을 사용하는 인코딩 표준에 의해 수행되는, 일반적인 모션 보상, 잔차 계산 및 인코딩 단계들과 크게 다르지 않음이 분명하다.
도 3은 그래픽스 엔진(100)에서 일어나는, 픽셀 당 모션 벡터들로부터 매크로블록 당 모션 벡터들로의 변환을 더 상세하게 도시하고 있다. 컬러 생성 페이즈(phase) 동안, 서버(120)에 위치되는 3D 그래픽스 엔진(100)은 픽셀 당 모션 벡터들을 생성하고, 서버(120)에 위치되는 속도 버퍼(300)에 데이터를 저장할 것이다. 속도 버퍼(300)는, 플레이어(player)-카메라 이동에 의해 부여된 모션 정보를 제외하고, 동적 객체들에 대한 데이터만을 포함할 수 있다. 이미지 공간에서 각 픽셀에 대한 모션 벡터 정보를 얻기 위해, 컴퓨팅 쉐이더(compute shader)는 속도 버퍼(300)의 속도들을 속도 버퍼에 아직 포함되지 않은 모든 정적 객체들에 대한 카메라 속도와 결합하고, 모션 속도 버퍼(304)에 픽셀 당 결과를 저장할 것이다. 카메라 속도는 프레임 동안 회전 및 병진(translational) 카메라 이동의 2D 투영(projection)이다. 특정 그래픽스 엔진들은 전체 스크린 공간에 대해 이러한 픽셀 당 모션 벡터들을 계산하기 위한 약간 다른 방법들을 사용할 수 있지만, 개념들은 동일하게 유지된다.
H.264 인코더는 16x16의 디폴트 매크로블록 사이즈를 사용하지만, 4x4 까지 더 작은 사이즈들로 세분화될 수 있다. 도 3의 예시에서, 4x4 매크로블록(306)은 단순화된 경우로 사용되지만, 그 방법은 인코더에서 사용되는 매크로블록 사이즈와 일치하도록 추론되어야(extrapolated) 한다. 4x4 캐므로 블록(306)의 경우, 모션 벡터 버퍼(304)에 16 개의 픽셀 당 모션 벡터(308)들이 저장되어 있다. 이러한 픽셀 당 모션 벡터(308)들은, 도 4에 도시된 모션 보상에서의 사용을 위해 인코더에 주입될 수 있는 단일 매크로블록 당 모션 벡터(310)로 변환(312)될 필요가 있다. 픽셀 당 벡터(308)들 세트의 산술 평균(arithmetic mean)은, 낮은 계산 복잡도와 짧은 계산 시간을 갖는 변환(312) 방법이다.
추가적인 계산 복잡도 또는 능력의 대가로 품질을 향상시키기 위해, 산술 평균 변환(312)에 대한 선택적 수정들이 이루어질 수 있다. 예를 들면, 매크로 블록 당 모션 벡터(310)가 매크로블록(306)에서 대부분의 픽셀들을 나타내는 것을 보장하기 위해, 산술 평균 계산 전에 매크로블록의 벡터 필드(vector field)에서 불연속성을 제거하도록, 벡터 중앙값 필터링(vector median filtering) 기술이 적용될 수 있다. 결과적인 매크로블록 당 모션 벡터는, 알려진 객체 이동 데이터를 기반으로 본래 계산된 픽셀-완전(perfect) 모션 벡터들로부터 도출되기 때문에, 이러한 매크로블록 당 모션 벡터들은, 픽셀 컬러 데이터를 기반으로 이동(movement)만을 도출할 수 있는 기존의 블록 기반 모션 추정 알고리즘들에 의해 계산된 것 보다 항상 더 정확한 표현일 것이다. 제한하지 않는 예시적인 실시예에서, 픽셀-완전한 모션 벡터는, 픽셀 당 모션 벡터들(308)의 각각에 대한 2차원의 픽셀 차이 (n, m)으로 예시적으로 도시된 바와 같이, 매크로블록(306)의 픽셀 그리드에서 하나의 전체 픽셀(entire pixel)로부터 다른 전체 픽셀로의 모션 벡터를 지칭할 수 있다. 구체적으로, 픽셀-완전한 모션 벡터는 픽셀 그리드의 격자점들 사이의 정수 단위 기반의(integer-pel) 모션 벡터를 지칭할 수 있다.
도 4는 도 1의 서버(120)의 그래픽스 엔진(100)에서 생성된 모션 벡터들을 도 1의 서버(120)의 코딩 엔진(102)에 주입함으로써, 계산적으로 복잡한 모션 추정 프로세스를 스킵하기 위한 방법을 도시하고 있다. 후술되는 바와 같이, 인코딩된 비디오 데이터(108)의 결과 비트 스트림은 원격 클라이언트 컴퓨터 시스템(116)으로 전송된다. 도 4에 도시된 방법은 단일 인터(inter)-프레임, 특히 비디오 코덱 표준들의 MPEG 패밀리(family)에 의해 정의된 바와 같은 P-프레임을 위한 인코딩 프로세스를 도시하고 있다. 모션 보상(406)은 인트라(intra)-프레임(I-프레임) 생성에서 수행되지 않으므로, I-프레임은 변경되지 않을 것이다. 크로마 서브샘플링된(chroma subsampled) 비디오 프레임(402) 및 블록 당 모션 벡터 데이터(404)는 이용 가능한 즉시 그래픽스 엔진(100)으로부터 전송될 것이다. 게임-생성된(game-generated) 모션 벡터(404)들은, H.264/MPEG-4 AVC 표준에 서술된 바와 같이, 일반적인 모션 추정(426) 단계에서 일어날 모션 벡터 생성을 피하는 데 사용된다. 모션 추정(426) 단계는 스킵될 것이고, 코딩 엔진의 소프트웨어 구현에서 비활성화될 수 있따. 블록 기반 모션 추정(426) 단계를 스킵하는 것은, 인코딩 시간에서의 상당한 감소를 제공할 것이고, 이는 도 3과 관련하여 설명되는 바와 같이 속도 버퍼 데이터를 적절한 형식으로 변환하는 데 걸리는 시간을 상쇄하는 것 이상일 것이다.
적절한 매크로블록 사이즈로 이미 변환된 모션 벡터(404)들은 모션 보상(406)에 대한 어떤 변경 없이 즉시 사용될 수 있다. 모션 보상(406)의 결과는 입력된 크로마 서브샘플링된 비디오 프레임(402)과 결합되어, 기존의 하드웨어 또는 소프트웨어 비디오 인코더들 내에서 일반적으로 일어나는 잔차 변환 및 스케일링(408), 양자화(410) 및 스캐닝(412)에 의해 처리되는 잔차 이미지(430)를 형성한다.
디블로킹(deblocking) 단계들은, 구현에서 선택된 디코딩 표준이 요구하면, 수행되어야 한다. 디블로킹 설정(420)들과 디블로킹된 이미지(428)는 역 양자화(414), 역 변환 및 스케일링(416), 이어서 디블로킹(418)에 대한 코딩 표준의 알고리즘들을 적용함으로써 계산된다. 스캐닝된 계수(coefficient)(412)들은, 비트스트림(108)으로서, 원격 클라이언트 컴퓨터 시스템의 코덱(110)에서의 디코딩을 위해 원격 클라이언트 컴퓨터 시스템(116)으로 전송되기 전에, 디블로킹 설정(420)들과 결합되고, 엔트로피 코더(entropy coder)(422)에서 인코딩된다. 디블로킹된 이미지(428)는, 다음 프레임의 모션 보상(406)을 위한 입력이 된다. 비트스트림(인코딩된 비디오 데이터를 포함함)(108)은 H.264/MPEG-4 AVC와 같은 구현에서 사용되는 인코딩 표준에 의해 정의되는 바와 같은 동일한 형식을 유지한다. 이러한 예시는 H.264/MPEG-4 AVC 표준에 고유하며, 일반적으로 모션 추정(426)과 모션 보상(406) 기술들을 사용하는 유사한 코딩 표준들을 위해 사용될 수 있다.
예시 1: 인코딩 시간에서의 감소를 보여주는 벤치마킹 테스트
전통적인 H.264 호환 코딩에서 모션 추정 단계는 일반적으로 가장 계산적으로 복잡하고 시간 소모적인 단계이다. 본 문서에 개시되는 바와 같이, 게임-생성된 모션 벡터들을 재상용하는 것은, 인코딩 시간에서의 상당한 감소들을 생성할 수 있다.
테스트 환경에서, 그래픽스 엔진은 초 당 60 프레임들에서 1280x720의 해상도로 출력을 생성했다. 인코딩 시간들은 단일-스레드(threaded)를 실행하는 x264 인코더로부터 캡처되었다(captured). 인코더가 단일 스레드를 실행하는 것은, 실제 사용 보다 더 긴 인코딩 시간들을 생성할 것이지만, 한 코어(core)로 측정값들을 정규화하여, 그들이 서로 직접 비교 가능할 것이다. 인코딩 시간들은 먼저 인코더 내에서 수정되지 않은 모션 추정을 사용하여 측정된 다음, 활성화된 게임-생성된 모션 추정 특징을 사용하여 동일한 환경에서 재측정되었다.
저 모션 영역(low motion area)이 플레이어의 손, 무기 및 고정 벽의 1 인칭 플레이어 뷰(first-person player view)를 포함하여 선택되었다. 상대적으로 적은 양의 스페이스 공간에서 적은 양의 픽셀 모션을 생성하기 위해, 플레이어의 손과 무기는 약간의 “보빙(bobbing)” 애니메이션을 통해 순환한다(cycle). 이러한 테스트의 결과는 하기 표 1에 나타나며, 이는 본 문서에서 설명된 게임-생성된 모션 추정 기술들의 유무에 따른 대기 시간 결과를 나타낸다. 게임-생성된 모션 추정이 비활성화된 낮은 강도에서, 수정되지 않은 인코딩 시간은 12 ms였다. 게임-생성된 모션 추정이 활성화되었을 때, 인코딩 시간은 9 ms의 인코딩 시간으로 3 ms 만큼 감소되었다. 유사한 대기 시간 감소들이 평균 및 높은 모션 강도 시나리오들에서 나타났고, 평균 모션 강도 시나리오들에서 17.6 %의 대기 시간 감소들 및 높은 대기 시간 시나리오들에서 15 % 내지 30 % 사이의 대기 시간 감소들이 나타났다. 이러한 결과는, 게임-생성된 모션 추정이 활성화될 때, 대기 시간에서의 현저하게 큰 감소를 보여준다.
모션 강도 x264 모션 추정 게임-생성된 모션 추정 % 변화
낮은 강도 12 ms 9 ms 25%
평균 강도 17 ms 14 ms 17.6%
높은 강도 20 ms - 27 ms 17 ms - 19 ms 15% - 30%
표 1: 다양한 모션 강도에서의 대기 시간 결과
또한, 테스트 환경은 게임-생성된 픽셀 당 모션 벡터들을 인코더를 위한 매크로블록 당 모션 벡터들로 변환할 때 추가 비용이 있음을 밝혀냈다. 그러나, 이러한 비용은 이전의 섹션에서 설명된 인코딩 시간 감소들 보다 훨씬 적다. 1280x720의 해상도로 비디오를 생성하는 그래픽스 엔진을 통해, 픽셀 당으로부터 매크로블록 당으로 모션 벡터 변환에 0.02 ms가 소요되었다. 측정된 인코딩 시간 절약들은 인코딩을 위해 게임-생성된 모션 벡터를 사용하여 추가된 비용 보다 3 배나 더 크다.
전술된 설명 및 도면은 본 발명의 원리를 단지 예시하는 것으로 간주되어야 한다. 본 발명은 바람직한 실시예에 의해 제한되도록 의도되지 않고, 해당 기술 분야에서 통상의 지식을 가진 자에게 명백한 다양한 방식들로 구현될 수 있다. 본 발명의 다수의 응용들이 해당 기술 분야에서 통상의 지식을 가진 자에게 용이하게 일어날 것이다. 따라서, 개시된 특정 예시들 또는 도시되고 설명된 정확한 구성과 동작으로 본 발명을 제한하는 것은 바람직하지 않다. 오히려, 모든 적합한 수정들 및 균등물들이 본 발명의 범주 내에 속하는 것으로 의지될 수 있다.

Claims (35)

  1. 서버에 의해 수행되는 단계들을 포함하는 컴퓨터로 구현된 그래픽스를 생성하기 위한 방법에 있어서,
    상기 서버의 그래픽스 엔진에서, 알려진 객체 이동 데이터를 기반으로 계산되는 하나 이상의 픽셀 당 모션 벡터(per-pixel motion vector)들을 생성하는 단계 - 각 픽셀 당 모션 벡터는 각 대응 픽셀에 대한 하나의 모션 벡터를 나타내고, 각 픽셀 당 모션 벡터가 픽셀 그리드에서 하나의 온전한 픽셀로부터 다른 온전한 픽셀을 가리키도록 상기 하나 이상의 픽셀 당 모션 벡터들은 픽셀-완전(pixel-perfect)함 -;
    상기 그래픽스 엔진에서, 상기 하나 이상의 픽셀 당 모션 벡터들을 하나 이상의 블록 당 모션 벡터(per-block motion vector)들로 변환하는 단계 - 각 블록 당 모션 벡터는 각 대응 매크로블록에 대한 하나의 모션 벡터를 나타냄 -; 및
    상기 하나 이상의 블록 당 모션 벡터들을 상기 그래픽스 엔진으로부터 상기 서버의 비디오 인코딩 엔진에 주입하는 단계
    를 포함하고,
    상기 비디오 인코딩 엔진은, 원격 클라이언트 디코딩 엔진으로의 전송을 위해 상기 그래픽스 엔진으로부터 주입된 상기 하나 이상의 블록 당 모션 벡터들을 인코딩된 비디오 데이터로 변환하고, 블록 기반 모션 추정은 스킵되는, 컴퓨터로 구현된 그래픽스를 생성하기 위한 방법.
  2. 제1 항에 있어서,
    상기 하나 이상의 픽셀 당 모션 벡터들은,
    변환 전에, 속도 버퍼(velocity buffer)에 저장되는, 컴퓨터로 구현된 그래픽스를 생성하기 위한 방법.
  3. 제1 항에 있어서,
    상기 하나 이상의 픽셀 당 모션 벡터들의 생성은,
    픽셀 당 결과를 획득하기 위해, 컴퓨팅 쉐이더(compute shader)에서, 상기 하나 이상의 픽셀 당 모션 벡터들을 카메라 속도(camera velocity)에 결합하는 단계; 및
    상기 픽셀 당 결과를 모션 벡터 버퍼에 저장하는 단계
    를 포함하는, 컴퓨터로 구현된 그래픽스를 생성하기 위한 방법.
  4. 제1 항에 있어서,
    그래픽스 엔진은,
    블록 당 모션 벡터 데이터를 하나 이상의 크로마 서브샘플링된(chroma subsampled) 비디오 프레임들과 동시에, 상기 비디오 인코딩 엔진에 실시간으로 주입하는, 컴퓨터로 구현된 그래픽스를 생성하기 위한 방법.
  5. 제1 항에 있어서,
    상기 인코딩된 비디오 데이터는,
    i) 역 양자화(inverse quantization),
    ii) 역 변환 및 스케일링(inverse transform and scale), 및
    iii) 디블로킹(deblocking)
    중 적어도 하나에 대한 하나 이상의 알고리즘들을 적용함으로써 상기 원격 클라이언트 디코딩 엔진으로의 전송을 위해 준비되는, 컴퓨터로 구현된 그래픽스를 생성하기 위한 방법.
  6. 제1 항에 있어서,
    상기 하나 이상의 픽셀 당 벡터들은,
    산술 평균(arithmetic mean)을 적용하는 변환 방법을 사용하여, 하나 이상의 블록 당 모션 벡터들로 변환되는, 컴퓨터로 구현된 그래픽스를 생성하기 위한 방법.
  7. 하나 이상의 그래픽스 엔진 및 비디오 코덱 엔진을 포함하는, 컴퓨터로 구현된 그래픽스 생성 시스템에 있어서,
    상기 하나 이상의 그래픽스 엔진은,
    알려진 객체 이동 데이터를 기반으로 계산되는 하나 이상의 픽셀 당 모션 벡터들 - 각 픽셀 당 모션 벡터는 각 대응 픽셀에 대한 하나의 모션 벡터를 나타내고, 각 픽셀 당 모션 벡터가 픽셀 그리드에서 하나의 온전한 픽셀로부터 다른 온전한 픽셀을 가리키도록 상기 하나 이상의 픽셀 당 모션 벡터들은 픽셀-완전함 - 을 생성하고,
    상기 하나 이상의 픽셀 당 모션 벡터들을 하나 이상의 블록 당 모션 벡터들로 변환 - 각 블록 당 모션 벡터는 각 대응 매크로블록에 대한 하나의 모션 벡터를 나타냄 - 하고, 그리고
    상기 하나 이상의 블록 당 모션 벡터들을 상기 비디오 코덱 엔진에 직접 주입하도록 구성되고,
    상기 비디오 코덱 엔진은,
    상기 하나 이상의 그래픽스 엔진으로부터 직접 주입된 상기 하나 이상의 블록 당 모션 벡터들을 인코딩된 비디오 데이터로 변환하고, 그리고
    상기 인코딩된 비디오 데이터를 원격 클라이언트 컴퓨터 시스템에서 실행되는 원격 클라이언트 디코딩 엔진으로 전송 - 블록 기반 모션 추정은 스킵됨 - 하도록 구성되는, 컴퓨터로 구현된 그래픽스 생성 시스템.
  8. 제7 항에 있어서,
    상기 하나 이상의 픽셀 당 모션 벡터들은,
    변환 전에, 속도 버퍼에 저장되는, 컴퓨터로 구현된 그래픽스 생성 시스템.
  9. 제7 항에 있어서,
    상기 하나 이상의 픽셀 당 모션 벡터들은,
    픽셀 당 결과를 획득하기 위해, 컴퓨팅 쉐이더에서, 상기 하나 이상의 픽셀 당 모션 벡터들을 카메라 속도에 추가하고, 상기 픽셀 당 결과를 모션 벡터 버퍼에 저장함으로써 생성되는, 컴퓨터로 구현된 그래픽스 생성 시스템.
  10. 제7 항에 있어서,
    상기 그래픽스 엔진은,
    블록 당 모션 벡터 데이터를 하나 이상의 크로마 서브샘플링된 비디오 프레임들과 동시에, 상기 비디오 코덱 엔진으로 실시간으로 주입하는, 컴퓨터로 구현된 그래픽스 생성 시스템.
  11. 제7 항에 있어서,
    상기 비디오 코덱 엔진은,
    상기 하나 이상의 블록 당 모션 벡터들을 인코딩된 비디오 데이터로 변환하기 위해, 모션 보상 및 잔차 변환을 수행하는, 컴퓨터로 구현된 그래픽스 생성 시스템.
  12. 제7 항에 있어서,
    상기 인코딩된 비디오 데이터는,
    디코딩되어, 디스플레이 컨트롤러(display controller)에 의해 구동되는 디스플레이에서 재생되도록 구성되는, 컴퓨터로 구현된 그래픽스 생성 시스템.
  13. 서버에 의해 수행되는 단계들을 포함하는 컴퓨터로 구현된 그래픽스를 생성하기 위한 방법에 있어서,
    상기 서버의 그래픽스 엔진에서, 알려진 객체 이동 데이터를 기반으로 계산되는 하나 이상의 픽셀 당 모션 벡터들을 하나 이상의 블록 당 모션 벡터들로 변환하는 단계 - 각 픽셀 당 모션 벡터는 각 대응 픽셀에 대한 하나의 모션 벡터를 나타내고, 각 블록 당 모션 벡터는 각 대응 매크로블록에 대한 하나의 모션 벡터를 나타내고, 블록 당 모션 벡터 데이터는 수신되면 상기 서버의 코덱 엔진으로 전송됨 -; 및
    상기 그래픽스 엔진에서, 하나 이상의 크로마 서브샘플링된 비디오 프레임들을 수신하는 단계 - 상기 크로마 서브샘플링된 비디오 프레임들은 수신되면 상기 코덱 엔진으로 전송됨 -
    를 포함하고,
    상기 코덱 엔진은,
    원격 클라이언트 컴퓨터 시스템으로의 전송을 위해 비디오 데이터를 인코딩하기 위해, 상기 그래픽스 엔진으로부터 전송된 상기 블록 당 모션 벡터 데이터와 상기 크로마 서브샘플링된 비디오 프레임들을 결합하고,
    인터(inter) 프레임들을 위한 모션 추정 계산들은 상기 비디오 데이터의 인코딩 동안 비활성(disable)되는, 컴퓨터로 구현된 그래픽스를 생성하기 위한 방법.
  14. 제13 항에 있어서,
    상기 결합된 블록 당 모션 벡터 데이터와 크로마 서브샘플링된 비디오 프레임들은,
    잔차 이미지(residual image)를 형성하는, 컴퓨터로 구현된 그래픽스를 생성하기 위한 방법.
  15. 제13 항에 있어서,
    역 양자화, 역 변환 및 스케일링을 계산하는 단계; 및
    잔차 이미지를 디블로킹하는 단계
    를 더 포함하는, 컴퓨터로 구현된 그래픽스를 생성하기 위한 방법.
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
  34. 삭제
  35. 삭제
KR1020227028903A 2017-04-21 2018-04-20 게임-생성된 모션 벡터들을 위한 시스템들 및 방법들 KR102617595B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020237043929A KR20240001278A (ko) 2017-04-21 2018-04-20 게임-생성된 모션 벡터들을 위한 시스템들 및 방법들

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US201762488526P 2017-04-21 2017-04-21
US62/488,526 2017-04-21
US201762596325P 2017-12-08 2017-12-08
US62/596,325 2017-12-08
PCT/US2018/028544 WO2018195405A1 (en) 2017-04-21 2018-04-20 Systems and methods for game-generated motion vectors
KR1020217038338A KR20210148381A (ko) 2017-04-21 2018-04-20 게임-생성된 모션 벡터들을 위한 시스템들 및 방법들

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020217038338A Division KR20210148381A (ko) 2017-04-21 2018-04-20 게임-생성된 모션 벡터들을 위한 시스템들 및 방법들

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020237043929A Division KR20240001278A (ko) 2017-04-21 2018-04-20 게임-생성된 모션 벡터들을 위한 시스템들 및 방법들

Publications (2)

Publication Number Publication Date
KR20220123141A KR20220123141A (ko) 2022-09-05
KR102617595B1 true KR102617595B1 (ko) 2023-12-22

Family

ID=63854345

Family Applications (4)

Application Number Title Priority Date Filing Date
KR1020237043929A KR20240001278A (ko) 2017-04-21 2018-04-20 게임-생성된 모션 벡터들을 위한 시스템들 및 방법들
KR1020197033912A KR20200019854A (ko) 2017-04-21 2018-04-20 게임-생성된 모션 벡터들을 위한 시스템들 및 방법들
KR1020227028903A KR102617595B1 (ko) 2017-04-21 2018-04-20 게임-생성된 모션 벡터들을 위한 시스템들 및 방법들
KR1020217038338A KR20210148381A (ko) 2017-04-21 2018-04-20 게임-생성된 모션 벡터들을 위한 시스템들 및 방법들

Family Applications Before (2)

Application Number Title Priority Date Filing Date
KR1020237043929A KR20240001278A (ko) 2017-04-21 2018-04-20 게임-생성된 모션 벡터들을 위한 시스템들 및 방법들
KR1020197033912A KR20200019854A (ko) 2017-04-21 2018-04-20 게임-생성된 모션 벡터들을 위한 시스템들 및 방법들

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020217038338A KR20210148381A (ko) 2017-04-21 2018-04-20 게임-생성된 모션 벡터들을 위한 시스템들 및 방법들

Country Status (15)

Country Link
US (5) US10567788B2 (ko)
EP (1) EP3613015A4 (ko)
JP (1) JP7135067B2 (ko)
KR (4) KR20240001278A (ko)
CN (1) CN110959169A (ko)
AU (2) AU2018254550B2 (ko)
BR (1) BR112019022007A2 (ko)
CA (2) CA3173525A1 (ko)
DE (1) DE112018002110T5 (ko)
GB (1) GB2576846A (ko)
MX (1) MX2021004095A (ko)
RU (2) RU2735241C1 (ko)
TW (3) TWI691199B (ko)
WO (1) WO2018195405A1 (ko)
ZA (2) ZA201907680B (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9589366B2 (en) 2014-06-27 2017-03-07 Samsung Electronics Co., Ltd. Dithered sampling patterns for temporal color averaging
US11049269B2 (en) 2014-06-27 2021-06-29 Samsung Electronics Co., Ltd. Motion based adaptive rendering
US11736822B1 (en) 2020-02-28 2023-08-22 Apple Inc. Controlling an image sensor based on GPU temporal processing values
US11833419B2 (en) 2020-03-16 2023-12-05 Tencent America LLC Method and apparatus for cloud gaming
JP2022041553A (ja) * 2020-09-01 2022-03-11 ヤマハ株式会社 通信制御方法
CN113794887A (zh) * 2021-08-17 2021-12-14 镕铭微电子(济南)有限公司 一种游戏引擎中视频编码的方法及相关设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120213278A1 (en) * 2009-10-20 2012-08-23 Yukinobu Yasugi Moving image coding device, moving image decoding device, moving image coding/decoding system, moving image coding method and moving image decoding method
US20150379727A1 (en) * 2014-06-27 2015-12-31 Samsung Electronics Co., Ltd. Motion based adaptive rendering
US20160150231A1 (en) * 2014-11-20 2016-05-26 Citrix Systems, Inc. Layer-based video decoding

Family Cites Families (69)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4501980A (en) 1982-06-04 1985-02-26 Motornetics Corporation High torque robot motor
JPH06129865A (ja) 1992-10-20 1994-05-13 Sumitomo Electric Ind Ltd シングルモ−ドファイバ型デポラライザとその製造方法及び光ファイバジャイロ
US5778190A (en) * 1995-07-21 1998-07-07 Intel Corporation Encoding video signals using multi-phase motion estimation
US5886741A (en) 1995-08-18 1999-03-23 Texas Instruments Incorporated Method and apparatus for improved video coding using a zero block predictor module
GB9623573D0 (en) * 1996-11-13 1997-01-08 Philips Electronics Nv Image segmentation
US6687405B1 (en) * 1996-11-13 2004-02-03 Koninklijke Philips Electronics N.V. Image segmentation
JP2001506820A (ja) 1996-11-27 2001-05-22 プリンストン ビデオ イメージ,インコーポレイテッド 画像テクスチャーテンプレートを用いた動き追跡
EP1075147A1 (en) 1999-08-02 2001-02-07 Koninklijke Philips Electronics N.V. Motion estimation
US6850571B2 (en) 2001-04-23 2005-02-01 Webtv Networks, Inc. Systems and methods for MPEG subsample decoding
AU2003208477A1 (en) * 2002-03-01 2003-09-16 T5 Labs Ltd Centralised interactive graphical application server
WO2004004359A1 (en) 2002-07-01 2004-01-08 E G Technology Inc. Efficient compression and transport of video over a network
US6903662B2 (en) 2002-09-19 2005-06-07 Ergodex Computer input device with individually positionable and programmable input members
US8054880B2 (en) 2004-12-10 2011-11-08 Tut Systems, Inc. Parallel rate control for digital video encoder with multi-processor architecture and picture-based look-ahead window
EP1507415A3 (en) * 2003-07-16 2005-05-04 Samsung Electronics Co., Ltd. Video encoding/decoding apparatus and method for color image
US20050094729A1 (en) * 2003-08-08 2005-05-05 Visionflow, Inc. Software and hardware partitioning for multi-standard video compression and decompression
US20050047504A1 (en) 2003-09-03 2005-03-03 Sung Chih-Ta Star Data stream encoding method and apparatus for digital video compression
US7724827B2 (en) 2003-09-07 2010-05-25 Microsoft Corporation Multi-layer run level encoding and decoding
US7408984B2 (en) 2003-09-17 2008-08-05 International Business Machines Corporation Method and system for multiple pass video coding
US20060230428A1 (en) 2005-04-11 2006-10-12 Rob Craig Multi-player video game system
DE602006015650D1 (de) * 2005-07-08 2010-09-02 Tag Networks Inc Videospielsystem mit vorcodierten makroblöcken
JP4178480B2 (ja) 2006-06-14 2008-11-12 ソニー株式会社 画像処理装置、画像処理方法、撮像装置および撮像方法
KR100919886B1 (ko) * 2006-12-06 2009-09-30 한국전자통신연구원 영상 복호기에서 움직임 벡터 특성을 이용한 움직임 보상스킵 제어 장치 및 그 방법
US20080195664A1 (en) 2006-12-13 2008-08-14 Quickplay Media Inc. Automated Content Tag Processing for Mobile Media
JP4931223B2 (ja) 2007-03-30 2012-05-16 株式会社バンダイナムコゲームス 動きベクトル探索プログラム、情報記憶媒体、動きベクトル探索装置、及び、ネットワークシステム
US8069258B1 (en) 2007-09-11 2011-11-29 Electronic Arts Inc. Local frame processing to apparently reduce network lag of multiplayer deterministic simulations
US8127233B2 (en) 2007-09-24 2012-02-28 Microsoft Corporation Remote user interface updates using difference and motion encoding
BRPI0906824A2 (pt) 2008-01-09 2015-07-14 Mitsubishi Electric Corp Dispositivo de codificação de imagem, dispositivo de decodificação de imagem, método de codificação de imagem e método de decodificação de imagem
US8154553B2 (en) 2008-05-22 2012-04-10 Playcast Media System, Ltd. Centralized streaming game server
EP2364190B1 (en) 2008-05-12 2018-11-21 GameFly Israel Ltd. Centralized streaming game server
US8208065B2 (en) 2008-07-30 2012-06-26 Cinnafilm, Inc. Method, apparatus, and computer software for digital video scan rate conversions with minimization of artifacts
US8678929B1 (en) 2008-08-01 2014-03-25 Electronics Arts Inc. Client-side prediction of a local game object to reduce apparent network lag of multiplayer simulations
US8854376B1 (en) 2009-07-30 2014-10-07 Lucasfilm Entertainment Company Ltd. Generating animation from actor performance
US8171154B2 (en) * 2009-09-29 2012-05-01 Net Power And Light, Inc. Method and system for low-latency transfer protocol
US9338523B2 (en) 2009-12-21 2016-05-10 Echostar Technologies L.L.C. Audio splitting with codec-enforced frame sizes
GB2480422B (en) * 2010-02-25 2014-07-09 Imagination Tech Ltd Object tracking using graphics engine derived vectors in a motion estimation system
US20110261885A1 (en) 2010-04-27 2011-10-27 De Rivaz Peter Francis Chevalley Method and system for bandwidth reduction through integration of motion estimation and macroblock encoding
US8427583B2 (en) * 2010-09-30 2013-04-23 Sharp Laboratories Of America, Inc. Automatic parameter control for spatial-temporal filter
KR20120088488A (ko) * 2011-01-31 2012-08-08 한국전자통신연구원 시간적 움직임 벡터 저장 방법 및 그 장치
JP5155462B2 (ja) 2011-08-17 2013-03-06 株式会社スクウェア・エニックス・ホールディングス 動画配信サーバ、動画再生装置、制御方法、プログラム、及び記録媒体
US8872895B2 (en) * 2011-09-30 2014-10-28 Deutsche Telekom Ag Real-time video coding using graphics rendering contexts
RU2487489C2 (ru) * 2011-10-18 2013-07-10 Федеральное государственное автономное образовательное учреждение высшего профессионального образования "Национальный исследовательский университет "МИЭТ" Способ поиска векторов перемещений в динамических изображениях
US10027982B2 (en) * 2011-10-19 2018-07-17 Microsoft Technology Licensing, Llc Segmented-block coding
JP5977023B2 (ja) 2011-11-07 2016-08-24 株式会社スクウェア・エニックス・ホールディングス 描画システム、プログラム、及び記録媒体
EP2850831A1 (en) 2012-05-14 2015-03-25 Luca Rossato Encoding and decoding based on blending of sequences of samples along time
EP2898689B1 (en) 2012-09-21 2020-05-06 Nokia Technologies Oy Method and apparatus for video coding
KR102137266B1 (ko) 2012-09-28 2020-07-23 삼성전자주식회사 움직임 벡터와 변이 벡터를 예측하는 영상 처리 방법 및 장치
US9984504B2 (en) * 2012-10-01 2018-05-29 Nvidia Corporation System and method for improving video encoding using content information
WO2014078068A1 (en) * 2012-11-13 2014-05-22 Intel Corporation Content adaptive transform coding for next generation video
CN104885470B (zh) 2013-01-30 2018-08-07 英特尔公司 用于下一代视频的预测和编码的内容自适应划分
US9661351B2 (en) 2013-03-15 2017-05-23 Sony Interactive Entertainment America Llc Client side frame prediction for video streams with skipped frames
US9521425B2 (en) 2013-03-19 2016-12-13 Qualcomm Incorporated Disparity vector derivation in 3D video coding for skip and direct modes
CN105246567B (zh) 2013-05-31 2016-09-14 英派尔科技开发有限公司 受缓存影响的视频游戏
US9313493B1 (en) * 2013-06-27 2016-04-12 Google Inc. Advanced motion estimation
US20150071357A1 (en) 2013-09-12 2015-03-12 Qualcomm Incorporated Partial intra block copying for video coding
US9648332B2 (en) 2013-10-28 2017-05-09 Qualcomm Incorporated Adaptive inter-color component residual prediction
KR101586125B1 (ko) * 2013-12-17 2016-02-02 세종대학교산학협력단 영상의 복호화/부호화 방법 및 장치
US9749642B2 (en) 2014-01-08 2017-08-29 Microsoft Technology Licensing, Llc Selection of motion vector precision
US20150228106A1 (en) 2014-02-13 2015-08-13 Vixs Systems Inc. Low latency video texture mapping via tight integration of codec engine with 3d graphics engine
US9762919B2 (en) 2014-08-28 2017-09-12 Apple Inc. Chroma cache architecture in block processing pipelines
US9830888B2 (en) * 2014-11-10 2017-11-28 Dell Products, Lp Gaze driven display front of screen performance
US10063866B2 (en) 2015-01-07 2018-08-28 Texas Instruments Incorporated Multi-pass video encoding
WO2016119046A1 (en) 2015-01-29 2016-08-04 Ecole De Technologie Superieure Methods and systems for determining motion vectors in a motion estimation process of a video encoder
CN107548556A (zh) 2015-04-21 2018-01-05 Vid拓展公司 基于艺术意图的视频译码
JP6910130B2 (ja) 2015-11-06 2021-07-28 三星電子株式会社Samsung Electronics Co.,Ltd. 3dレンダリング方法及び3dレンダリング装置
US10163183B2 (en) 2016-01-13 2018-12-25 Rockwell Collins, Inc. Rendering performance using dynamically controlled samples
US9705526B1 (en) 2016-03-17 2017-07-11 Intel Corporation Entropy encoding and decoding of media applications
US10109100B2 (en) 2016-03-25 2018-10-23 Outward, Inc. Adaptive sampling of pixels
US20180054613A1 (en) * 2016-08-22 2018-02-22 Mediatek Inc. Video encoding method and apparatus with in-loop filtering process not applied to reconstructed blocks located at image content discontinuity edge and associated video decoding method and apparatus
US10402932B2 (en) * 2017-04-17 2019-09-03 Intel Corporation Power-based and target-based graphics quality adjustment

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120213278A1 (en) * 2009-10-20 2012-08-23 Yukinobu Yasugi Moving image coding device, moving image decoding device, moving image coding/decoding system, moving image coding method and moving image decoding method
US20150379727A1 (en) * 2014-06-27 2015-12-31 Samsung Electronics Co., Ltd. Motion based adaptive rendering
US20160150231A1 (en) * 2014-11-20 2016-05-26 Citrix Systems, Inc. Layer-based video decoding

Also Published As

Publication number Publication date
BR112019022007A2 (pt) 2020-05-12
US10567788B2 (en) 2020-02-18
CN110959169A (zh) 2020-04-03
JP2020518209A (ja) 2020-06-18
US11381835B2 (en) 2022-07-05
US20200141162A1 (en) 2020-05-07
TWI797550B (zh) 2023-04-01
US20190230375A1 (en) 2019-07-25
AU2020267252A1 (en) 2020-12-10
GB201916979D0 (en) 2020-01-08
US10701388B2 (en) 2020-06-30
CA3059740A1 (en) 2018-10-25
RU2760974C2 (ru) 2021-12-02
ZA201907680B (en) 2021-04-28
AU2018254550A1 (en) 2019-12-12
US11503326B2 (en) 2022-11-15
KR20210148381A (ko) 2021-12-07
TW202025757A (zh) 2020-07-01
RU2735241C1 (ru) 2020-10-29
AU2020267252B2 (en) 2022-01-27
RU2020134091A (ru) 2020-11-17
RU2020134091A3 (ko) 2021-05-18
US20230089232A1 (en) 2023-03-23
TWI691199B (zh) 2020-04-11
KR20240001278A (ko) 2024-01-03
TWI721816B (zh) 2021-03-11
DE112018002110T5 (de) 2020-01-09
WO2018195405A1 (en) 2018-10-25
MX2021004095A (es) 2021-06-08
EP3613015A1 (en) 2020-02-26
ZA202007051B (en) 2022-04-28
AU2018254550B2 (en) 2020-09-24
US20200404317A1 (en) 2020-12-24
JP7135067B2 (ja) 2022-09-12
KR20200019854A (ko) 2020-02-25
CA3173525A1 (en) 2018-10-25
GB2576846A (en) 2020-03-04
EP3613015A4 (en) 2021-02-24
TW201844002A (zh) 2018-12-16
TW202131688A (zh) 2021-08-16
US20180310016A1 (en) 2018-10-25
KR20220123141A (ko) 2022-09-05

Similar Documents

Publication Publication Date Title
KR102617595B1 (ko) 게임-생성된 모션 벡터들을 위한 시스템들 및 방법들
US9872018B2 (en) Random access point (RAP) formation using intra refreshing technique in video coding
US10013746B2 (en) High dynamic range video tone mapping
US11509896B2 (en) Picture quality oriented rate control for low-latency streaming applications
KR20200088830A (ko) 비디오 인코더에 직접 렌더링하는 게임 엔진 애플리케이션
US20110261885A1 (en) Method and system for bandwidth reduction through integration of motion estimation and macroblock encoding
US10334262B2 (en) Moving-picture decoding processing apparatus, moving-picture coding processing apparatus, and operating method of the same
Zhao et al. GPU_CPU based parallel architecture for reduction in power consumption

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
A107 Divisional application of patent
GRNT Written decision to grant