KR101422424B1 - 동영상 배포 서버, 동영상 재생 장치, 동영상 배포 서버의 제어 방법, 동영상 재생 장치의 제어 방법, 및 컴퓨터 판독 가능한 기록 매체 - Google Patents

동영상 배포 서버, 동영상 재생 장치, 동영상 배포 서버의 제어 방법, 동영상 재생 장치의 제어 방법, 및 컴퓨터 판독 가능한 기록 매체 Download PDF

Info

Publication number
KR101422424B1
KR101422424B1 KR1020137004834A KR20137004834A KR101422424B1 KR 101422424 B1 KR101422424 B1 KR 101422424B1 KR 1020137004834 A KR1020137004834 A KR 1020137004834A KR 20137004834 A KR20137004834 A KR 20137004834A KR 101422424 B1 KR101422424 B1 KR 101422424B1
Authority
KR
South Korea
Prior art keywords
screen
moving picture
block
rendering
distribution server
Prior art date
Application number
KR1020137004834A
Other languages
English (en)
Other versions
KR20130036357A (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 가부시키가이샤 스퀘어.에닉스.홀딩스
Publication of KR20130036357A publication Critical patent/KR20130036357A/ko
Application granted granted Critical
Publication of KR101422424B1 publication Critical patent/KR101422424B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/161Encoding, multiplexing or demultiplexing different image signal components
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/91Television signal processing therefor
    • H04N5/93Regeneration of the television signal or of selected parts thereof
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/20Perspective computation
    • G06T15/205Image-based rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/107Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/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/176Methods 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 block, e.g. a macroblock
    • 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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/65Transmission of management data between client and server
    • H04N21/654Transmission by server directed to the client
    • 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/80Special adaptations for executing a specific game genre or game mode
    • A63F13/822Strategy games; Role-playing games
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/53Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing
    • A63F2300/538Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing for performing operations on behalf of the game client, e.g. rendering
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/66Methods for processing data by generating or executing the game program for rendering three dimensional images
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/66Methods for processing data by generating or executing the game program for rendering three dimensional images
    • A63F2300/6661Methods for processing data by generating or executing the game program for rendering three dimensional images for changing the position of the virtual camera
    • A63F2300/6676Methods for processing data by generating or executing the game program for rendering three dimensional images for changing the position of the virtual camera by dedicated player input
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/66Methods for processing data by generating or executing the game program for rendering three dimensional images
    • A63F2300/6661Methods for processing data by generating or executing the game program for rendering three dimensional images for changing the position of the virtual camera
    • A63F2300/6684Methods for processing data by generating or executing the game program for rendering three dimensional images for changing the position of the virtual camera by dynamically adapting its position to keep a game object in its viewing frustrum, e.g. for tracking a character or a ball
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/80Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game specially adapted for executing a specific type of game
    • A63F2300/807Role playing or strategy games

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Geometry (AREA)
  • Computer Graphics (AREA)
  • Computing Systems (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Processing Or Creating Images (AREA)
  • Image Generation (AREA)
  • Television Signal Processing For Recording (AREA)

Abstract

동영상 배포 서버는 제1 화면에 대한 후속 스테이지의 렌더링 처리의 실행중에 적어도 하나의 채널의 중간값 맵을 선택하고, 각 세트 블록마다, 제1 화면 이전에 렌더링된 제2 화면에 대해 생성된 대응하는 중간값 맵을 참조하여, 프레임간 부호화를 수행할지의 여부를 결정한다. 동영상 배포 서버는 그 결정 결과에 따라 부호화를 수행하고, 제1 화면에 대한 후속 스테이지의 렌더링 처리가 종료된 후에, 부호화 동영상 데이터를 외부 디바이스에 송신한다. 그 결정 결과는 제1 화면의 부호화 동영상 데이터의 생성이 완료되기 전에 외부 디바이스에 송신된다.

Description

동영상 배포 서버, 동영상 재생 장치, 동영상 배포 서버의 제어 방법, 동영상 재생 장치의 제어 방법, 및 컴퓨터 판독 가능한 기록 매체{MOVING IMAGE DISTRIBUTION SERVER, MOVING IMAGE REPRODUCTION APPARATUS, CONTROL METHOD OF MOVING IMAGE DISTRIBUTION SERVER, CONTROL METHOD OF MOVING IMAGE REPRODUCTION APPARATUS, AND COMPUTER-READABLE RECORDING MEDIUM}
본 발명은 동영상 배포 서버, 동영상 재생 장치, 제어 방법, 프로그램, 및 기록 매체에 관한 것이며, 더 구체적으로는 부호화 동영상 데이터 스트리밍 배포 기술에 관한 것이다.
네트워크 접속이 가능한 개인용 컴퓨터(PC) 등의 클라이언트 디바이스가 보급되고 있다. 이들 디바이스의 사용이 확대됨에 따라, 인터넷의 네트워크 인구도 증가하고 있다. 최근 인터넷을 이용한 각종 서비스가 네트워크 사용자를 위해 개발되고 있으며, 게임 등의 엔터테인먼트 서비스도 제공되고 있다.
네트워크 사용자를 위한 이들 서비스 중 하나가 MMORPG(Massively Multiplayer Online Role-Playing Game) 등의 멀티유저 온라인 네트워크 게임이다. 멀티유저 온라인 네트워크 게임에 있어서, 사용자는 자신이 사용하는 클라이언트 디바이스를 게임을 제공하는 서버에 접속함으로써, 서버에 접속된 다른 클라이언트 디바이스를 사용하는 다른 사용자와 매치업 플레이(match-up play) 또는 팀 플레이를 한다.
일반적인 멀티유저 온라인 네트워크 게임에서는, 각 클라이언트 디바이스가 게임 렌더링에 필요한 데이터를 서버에 대하여 송수신한다. 클라이언트 디바이스는 수신 데이터를 이용하여 렌더링에 필요한 렌더링 처리를 실행하고 생성된 게임 화면을 클라이언트 디바이스에 접속된 디스플레이 디바이스에 보냄으로써, 게임 화면을 사용자에게 제공한다. 사용자가 입력 인터페이스를 조작하여 입력한 정보는 서버에 송신되어, 서버에서 연산 처리에 이용되거나 서버에 접속된 다른 클라이언트 디바이스에 전송된다.
그러나, 클라이언트 디바이스로 하여금 렌더링 처리를 실행하게 하는 일부 네트워크 게임의 경우, 사용자는 렌더링 성능이 충분한 PC 또는 전용 게임 머신을 사용해야 한다. 이 때문에, 네트워크 게임(1 컨텐츠)의 사용자의 수는 그 컨텐츠가 요구하는 클라이언트 디바이스의 성능에 좌우된다. 고성능 디바이스는 고가이므로, 당연한 말이지만 디바이스를 소유할 수 있는 사용자 수는 제한적이다. 즉, 높은 렌더링 성능을 필요로 하는 게임, 예컨대 훌륭한 그래픽을 제공하는 게임의 사용자 수를 증가시키기가 어렵다.
그런데, 최근, 클라이언트 디바이스의 렌더링 성능과 같은 처리 능력에 의존하지 않고도 사용자가 플레이할 수 있는 게임들도 제공되고 있다. 국제 공개 제2009/138878호에 개시되어 있는 게임의 경우, 서버는 클라이언트 디바이스에서 발생하는 조작의 정보를 취득하고, 그 정보를 이용해 렌더링 처리를 실행함으로써 얻어지는 게임 화면을 그 클라이언트 디바이스에 제공한다.
전술한 국제 공개 제2009/138878호의 게임에서는, 서버에 의해 클라이언트 디바이스에 제공된 게임 화면은 송신 정보량을 줄이기 위해 부호화 동영상 데이터(coded moving image data)의 형식으로 제공된다. MPEG 표준 등의 일반적인 동영상 부호화 타입은 하나의 프레임 화상을 분할하여 얻어진 각 블록마다 모션 보상을 포함하지 않는 인트라 부호화(프레임내 부호화)를 수행하거나 또는 프레임간 예측에 의한 모션 보상을 포함하는 인터 부호화(프레임간 부호화)를 수행하는데, 이것은 채택된 부호화 타입에 따라 변한다. 각 부호화 타입마다, 높은 압축 효율이라는 목표가 존재한다. 일반적으로, 각 블록마다 인트라 부호화와 인터 부호화를 수행함으로써 블록(i블록과 p블록)이 생성되고, 압축 효율이 높은 블록이 부호화 데이터에 포함된다.
인트라 부호화에서는, DCT, 런렝스(run-length) 부호화 등을 압축 타깃의 미처리 블록 화상에 적용함으로써, 화상을 압축한다. 한편, 인터 부호화에서는, 압축 타깃의 블록 화상과 그 블록과 대응하며 이전 프레임 화상으로부터 추출된 참조 화상 사이의 차분 화상이 생성된다. 그런 다음, DCT, 런렝스 부호화 등을 그 화상에 적용하여 그것을 압축한다. 이러한 이유로, 인터 부호화는 이전 프레임 화상에서, 압축 타깃 블록 화상과의 상관이 가장 높은 영역을 특정하는 처리를 포함한다. 가장 높은 상관을 갖는 영역의 검출과 연계된 처리에서는, 이전 프레임 화상에서 평가 영역을 이동시키면서 압축 타깃 블록 화상과의 유사도 및 거리를 산출함으로써 분석이 이루어진다. 그러므로, 이 분석 처리에는 시간이 걸릴 수 있다.
특히, 예를 들면 사용자 입력에 기초해, 상호 작용하여 렌더링된 컨텐츠를 변경하는 게임에서는, 실시간 렌더링, 즉 입력에 대한 초고속 응답이 필요하므로, 동영상 부호화 처리에 요구되는 시간이 제한적이다. 이 경우, 각 블록의 부호화 처리와, 인트라 부호화 또는 인터 부호화를 수행할 것인지를 결정하는 처리를 신속하게 수행하는 것이 필요하다. 그러나, 렌더링된 화면의 동영상 부호화를 신속하고 효율적으로 수행하는 상세한 방법에 대해 아직까지 개시된 적이 없다.
본 발명은 전술한 종래 기술의 과제를 감안하여 이루어진 것이다. 본 발명은 렌더링 처리로써 얻어진 화면의 동영상 부호화를 신속하고 효율적으로 수행하기 위한 동영상 배포 서버, 동영상 재생 장치, 제어 방법, 프로그램, 및 기록 매체를 제공한다.
제1 양태에 따른 본 발명은, 렌더링될 화면을 결정하기 위한 뷰포인트 정보를 순차적으로 취득하는 취득 수단과, 상기 취득 수단에 의해 취득된 뷰포인트 정보를 이용하여, 적어도 2 단계의 렌더링 처리로써 배포 화면을 렌더링하는 렌더링 수단으로서, 선행 스테이지의 렌더링 처리에서, 후속 스테이지의 렌더링 처리에서 참조될 특정 채널의 중간값 맵을 생성하고, 후속 스테이지의 렌더링 처리에서, 상기 중간값 맵을 참조하여 배포 화면을 렌더링하는 렌더링 수단과, 제1 화면에 대한 후속 스테이지의 렌더링 처리의 실행중에, 상기 제1 화면에 대해 생성된 적어도 하나의 채널의 중간값 맵을 취득하고 그 중간값 맵을 복수의 블록으로 분할하는 분할 수단과, 상기 복수의 블록 각각마다, 상기 제1 화면 이전에 렌더링된 제2 화면에 대해 생성된 동일한 채널의 중간값 맵 상에서 그 블록에 대응하는 영역을 특정하는 특정 수단과, 상기 제1 화면에 대한 후속 스테이지의 렌더링 처리의 종료 후에, 상기 제1 화면을 부호화하여 부호화 동영상 데이터를 생성하는 부호화 수단으로서, 상기 복수의 블록 중에서, 상기 특정 수단에 의해 특정된 대응 영역과의 유사도가 임계값 이상인 블록에 대해, 상기 제1 화면의 블록의 화상과 상기 제2 화면의 대응 영역의 화상 사이의 프레임간 부호화(inter-frame coding)를 수행하고, 상기 복수의 블록 중에서, 상기 특정 수단에 의해 특정된 대응 영역과의 유사도가 임계값 미만인 블록에 대해, 상기 제1 화면의 블록의 화상의 프레임내 부호화(intra-frame coding)를 수행하는 부호화 수단과, 외부 디바이스에 데이터를 송신하는 송신 수단을 포함하고, 상기 송신 수단은 상기 부호화 수단이 상기 제1 화면의 각 블록의 부호화 동영상 데이터의 생성을 완료하기 전에, 상기 대응 영역과의 유사도가 임계값 이상인 블록에 대해, 그 블록과, 그 블록에 대한 대응 영역을 특정하기 위한 특정 정보를 상기 외부 디바이스에 송신하며, 상기 부호화 수단이 상기 제1 화면의 각 블록의 부호화 동영상 데이터의 생성을 완료한 후에, 그 부호화 동영상 데이터를 상기 외부 디바이스에 송신하는 것인 동영상 배포 서버를 제공한다.
본 발명의 추가 특징은 (첨부하는 도면을 참조하여)이하의 예시적인 실시형태에 대한 설명으로부터 분명해질 것이다.
도 1은 본 발명의 실시형태에 따른 동영상 배포 시스템의 시스템 구성을 도시하는 도면이다.
도 2는 본 발명의 실시형태에 따른 PC(100)의 기능적 구성을 도시하는 블록도이다.
도 3은 본 발명의 실시형태에 따른 동영상 배포 서버(200)의 기능적 구성을 도시하는 블록도이다.
도 4는 본 발명의 실시형태에 따른 동영상 배포 서버(200)의 동영상 배포 처리를 나타내는 흐름도이다.
도 5는 본 발명의 실시형태에 따른 렌더링 오브젝트의 데이터 구조를 도시하는 도면이다.
도 6은 본 발명의 실시형태에 따른 동영상 배포 서버(200)의 부호화 처리를 나타내는 흐름도이다.
도 7은 본 발명의 실시형태에 따른 PC(100)의 동영상 재생 처리를 나타내는 흐름도이다.
도 8은 본 발명의 실시형태에 따른 PC(100)의 복호화 전처리를 나타내는 흐름도이다.
도 9는 본 발명의 실시형태에 따른 동영상 배포 시스템의 전체 처리를 나타내는 흐름도이다.
도 10은 본 발명의 변형예에 따른 동영상 배포 서버(200)의 동영상 배포 처리를 나타내는 흐름도이다.
도 11은 본 발명의 변형예에 따른, 가장 높은 상관을 갖는 것으로 기대되는 영역을 추정하는 방법을 설명하기 위한 도면이다.
이하, 첨부 도면을 참조하여 본 발명의 예시적인 실시형태에 관해 상세하게 설명한다. 이하의 실시형태에서는, 동영상 재생 장치로서 기능하는 PC(100) 및 동영상 배포 서버(200)에 본 발명이 적용되는 동영상 배포 시스템의 일례를 설명한다.
〈동영상 배포 시스템의 구성〉
도 1은 본 발명의 실시형태에 따른 동영상 배포 시스템의 시스템 구성을 도시하는 도면이다.
도 1에 도시하는 바와 같이, PC(100)와 동영상 배포 서버(200)는 인터넷 등의 네트워크(300)를 통해 접속되어 있다. 본 실시형태에 있어서, PC(100)는 동영상 배포 컨텐츠의 예인, 동영상 배포 서버(200)에서 실행되는 게임 컨텐츠의 게임 화면을 부호화 동영상 데이터로서 수신한다. 본 실시형태에서, 동영상 배포 서버(200)는 PC(100)에서 발생하는 조작(사용자 입력)을 수신하고, 그 조작에 대응하는 게임 화면을 프레임 단위로 렌더링한다. 그리고 나서, 동영상 배포 서버(200)는 렌더링된 게임 화면을 부호화하고 그래서 얻어진 부호화 동영상 데이터를 PC(100)에 배포한다. 동영상 배포 서버(200)로부터 부호화 동영상 데이터를 수신하면, PC(100)는 부호화 동영상 데이터를 복호화하여 재생함으로써 게임 화면을 사용자에게 제공한다.
본 실시형태에서는, 동영상 배포 서버(200)에서 실행된 게임 프로그램에 의해 렌더링된 게임 화면을 네트워크(300)를 통해 제공하는 컨텐츠에 관해, 동영상 배포 컨텐츠를 예로 들어 설명한다. 그러나, 본 발명의 실시는 이것에 한정되지 않는다. 동영상 배포 서버(200)는 배포 목적지에 제공될 동영상 배포 컨텐츠의 1 프레임을 렌더링하기 위한 렌더링 처리를 수행하고 각 프레임마다 수행된 처리를 부호화하여 얻어진 부호화 동영상 데이터를 배포하도록 구성되어 있으면 된다. 1 프레임의 화면의 렌더링은 반드시 동영상 배포 서버(200)에서만 실행될 필요는 없으며, 예컨대 외부 렌더링 서버에 의해 실행될 수도 있다.
본 실시형태에서는, PC(100)를, 동영상 배포 서버(200)에 접속된 클라이언트 디바이스로서 설명할 것이다. 그러나, 본 발명의 실시는 이것에 한정되지 않는다. 동영상 배포 서버(200)에 접속된 클라이언트 디바이스는 동영상 배포 서버(200)로부터 수신된 부호화 동영상 데이터를 복호화하여 재생할 수 있는, 예컨대 가정용 게임기, 휴대용 게임기, 휴대 전화기, PDA 또는 태블릿 등의 기타 디바이스일 수도 있다.
〈PC(100)의 구성〉
도 2는 본 발명의 실시형태에 따른 PC(100)의 기능적 구성을 도시하는 블록도이다.
CPU(101)는 PC(100)의 각 블록의 동작을 제어한다. 더 구체적으로, CPU(101)는 예컨대 ROM(102) 또는 기록 매체에 기록된 동영상 재생 처리의 동작 프로그램을 판독하고 그 프로그램을 RAM(103) 상에 전개하여 실행함으로써 각 블록의 동작을 제어한다.
ROM(102)은 예컨대 재기록 가능한 비휘발성 메모리이다. ROM(102)은 동영상 재생 처리의 동작 프로그램 등과 함께, PC(100)의 각 블록의 동작에 필요한 정수 등의 정보를 저장한다.
RAM(103)은 휘발성 메모리이다. RAM(103)은 동작 프로그램의 전개 영역으로서 뿐만 아니라 PC(100)의 각 블록의 동작에서 출력된 중간 데이터 등을 일시적으로 저장하기 위한 저장 영역으로서도 기능한다.
복호화 유닛(104)은 후술하는 통신 유닛(105)에 의해 수신된 부호화 동영상 데이터의 복호화 처리를 수행하여 1 프레임의 게임 화면을 생성한다. 부호화 동영상 데이터의 복호화 처리 전에, 복호화 유닛(104)은 복호화 처리에서 이용될 참조 데이터를 준비하는 복호화 전처리를 수행한다. 복호화 유닛(104)에 의해 실행된 복호화 전처리 및 복호화 처리는 후술하는 동영상 재생 처리와 관련하여 상세하게 설명한다.
통신 유닛(105)은 PC(100)에 설치된 통신 인터페이스이다. 통신 유닛(105)은 네트워크(300)를 통해 접속된 동영상 배포 서버(200) 등의 다른 디바이스에 대해 데이터를 송수신한다. 데이터 송신 시에, 통신 유닛(105)은 데이터를 네트워크(300) 또는 송신 목적지의 디바이스에 대해 미리 결정된 데이터 전송 포맷으로 변환하고 그 데이터를 송신 목적지의 디바이스에 송신한다. 데이터 수신 시에, 통신 유닛(105)은 네트워크(300)를 통해 수신된 데이터를 PC(100)에 의해 판독 가능한 임의의 데이터 포맷으로 변환하고 그 데이터를, 예컨대 RAM(103)에 저장한다.
본 실시형태에서는, PC(100)와 동영상 배포 서버(200)가 네트워크(300)를 통해 접속되어 있다고 상정하여 설명한다. 그러나, PC(100)와 동영상 배포 서버(200)는 쉽게 알 수 있는 것처럼 케이블을 이용해서 직접 접속될 수도 있다.
표시 유닛(106)은 PC(100)에 접속된 LCD 모니터 등의 디스플레이 디바이스이다. 표시 유닛(106)은 디스플레이 영역에 수신 게임 화면을 표시하도록 표시 제어를 수행한다. 표시 유닛(106)은 랩톱 PC 등의 PC(100)에 내장된 디스플레이 디바이스일 수도 케이블을 이용해 PC(100)에 외부로 접속된 디스플레이 디바이스일 수도 있다.
조작 입력 유닛(107)은 PC(100) 상에 제공된 마우스, 키보드 또는 게임 패드 등의 사용자 인터페이스이다. 사용자 인터페이스의 조작이 발생한 것을 검출하면, 조작 입력 유닛(107)은 그 조작에 대응하는 제어 신호를 CPU(101)에 출력한다.
〈동영상 배포 서버(200)의 구성〉
도 3은 본 발명의 실시형태에 따른 동영상 배포 서버(200)의 기능적 구성을 도시하는 블록도이다.
서버 CPU(201)는 동영상 배포 서버(200)의 각 블록의 동작을 제어한다. 더 구체적으로, 서버 CPU(201)는, 예컨대 서버 ROM(202)에 기록된 동영상 배포 처리의 동작 프로그램을 판독하고 그 프로그램을 서버 RAM(203) 상에 전개하여 실행함으로써 각 블록의 동작을 제어한다.
서버 ROM(202)은 예컨대 재기록 가능한 비휘발성 메모리이다. 서버 ROM(202)은 동영상 재생 처리의 동작 프로그램 등과 함께, 동영상 배포 서버(200)의 각 블록의 동작에 필요한 정수 등의 정보를 저장한다.
서버 RAM(203)은 휘발성 메모리이다. 서버 RAM(203)은 동작 프로그램의 전개 영역으로서 뿐만 아니라 동영상 배포 서버(200)의 각 블록의 동작에서 출력된 중간 데이터 등을 일시적으로 저장하기 위한 저장 영역으로서도 기능한다.
서버 GPU(204)은 PC(100)의 표시 유닛(106) 상에 표시될 게임 화면을 생성한다. 서버 VRAM(205)은 서버 GPU(204)에 접속된다. 서버 CPU(201)로부터 렌더링 명령 및 게임 화면의 렌더링에 이용될 카메라의 위치 및 방향의 정보(뷰포인트 정보)를 수신하면, 서버 GPU(204)는, 예컨대 후술하는 서버 기록 매체(207)로부터 렌더링 명령에 관한 렌더링 오브젝트를 판독하고 그것을 GPU 메모리에 저장한다. 접속된 서버 VRAM(205) 상에서의 렌더링 시에, 서버 GPU(204)는 렌더링 오브젝트를 캐시 메모리에 전개한 다음 전개된 렌더링 오브젝트를 서버 VRAM(205)에 기록한다.
게임 화면을 생성하는 렌더링 처리에서, 본 실시형태의 서버 GPU(204)는 소위 디퍼드 렌더링(Deferred Rendering) 방법을 이용한다.
종래의 렌더링 방법에서는, 다음의 처리를 수행함으로써, 게임 화면에 포함된 각 렌더링 오브젝트가 순차적으로 선택되어 렌더링된다.
1. 버텍스 쉐이더(vertex shader)에 의한 이동/회전 처리
2. 지오메트리 쉐이더에 의한 버텍스 처리
3. 픽셀 쉐이더에 의한 픽셀 단위의 쉐도우 처리를 포함하는 이펙트 처리
즉, 종래의 렌더링 방법은 각 렌더링 오브젝트마다 프로시저 "쉐도우 처리→렌더링"을 수행하는 소위 포워드 렌더링(Forward Rendering) 방법이다. 포워드 렌더링에서는, 오브젝트가 순차적으로 처리된다. 그러므로, 하나의 오브젝트의 렌더링된 컨텐츠는 픽셀에 따라 카메라에 더 가깝게 위치한(해당 오브젝트보다 더 가깝게 위치한) 다른 오브젝트의 렌더링된 컨텐츠에 의해 덮어쓰기 될 수 있다. 이 경우, 쉐도우 처리는 먼저 렌더링된 오브젝트의 일부 영역에 무용하게 적용되는데, 이것은 나중에 렌더링된 오브젝트에 의해 어클루션(occulsion)되기 때문이다. 또한, 예를 들어, 렌더링된 장면에 존재하는 광원은 그 장면에 존재하는 모든 오브젝트에 공통된다. 그러나, 포워드 렌더링에 있어서, 하나의 오브젝트를 렌더링하기 위한 공통의 계산 내용을, 다른 오브젝트를 렌더링하는데 재사용하는 것이 곤란하다. 이러한 이유로, 포워드 렌더링은 특히 복잡한 쉐도우 처리를 포함하는 게임 화면 렌더링에서는 비효율적이다.
한편, 디퍼드 렌더링에서는, 포워드 렌더링과 달리, 쉐도우 처리에 이용될 지오메트리가 먼저 연산되고, 모든 렌더링 오브젝트의 쉐도우 처리는 나중에 한번에 수행된다. 즉, 렌더링 처리는 프로시저 "지오메트리 렌더링→쉐도우 처리→렌더링"을 포함하는 2 단계로 실행된다. 디퍼드 렌더링의 경우, 지오메트리는, 선행 스테이지의 렌더링에서 조명 없이 쉐도우 처리에 이용될 파라미터와 함께 렌더링됨으로써, 쉐도우 처리에 이용될 중간값을 나타내는 복수의 중간값 맵(산란 맵, 심도 맵, 법선 맵, 반사 맵, 확산 맵 등)을 생성한다. 후속 스테이지의 렌더링에서는, 생성된 복수의 중간값 맵을 적용하면서 광원을 이용해 쉐도우 처리를 수행함으로써 화면이 렌더링된다.
서버 부호화 유닛(206)은 서버 GPU(204)에 의해 서버 VRAM(205) 상에 생성된 게임 화면의 부호화 처리를 수행한다. 서버 부호화 유닛(206)은 부호화 타깃의 게임 화면을 블록으로 분할하고 각 블록의 인트라 부호화(프레임내 부호화) 또는 인터 부호화(프레임간 부호화)를 수행한다. 부호화 처리의 상세한 내용에 대해서는 후술한다. 본 실시형태에 있어서, 서버 부호화 유닛(206)은 YCbCr의 각 컬러 채널마다 각 블록의 DCT(Discrete Cosine Transform)를 수행한 후, 런렝스 부호화로써 각 블록을 압축한다. 본 실시형태에서는, 서버 부호화 유닛(206)이 게임 화면의 부호화 처리를 수행하기 위한 단일 블록으로서 존재한다고 상정하여 설명한다. 그러나, 부호화 처리는 서버 GPU(204)에 의해 실행될 수도 있다.
서버 기록 매체(207)는 동영상 배포 서버(200)에 탈착 가능하게 접속되는 HDD 등의 기록 디바이스이다. 본 실시형태에서, 서버 기록 매체(207)는 각 렌더링 오브젝트의 데이터, 화면 상에 표현된 3차원 장면에 배치된 광원의 정보 등을 기록하며, 이들은 화면 렌더링 처리에 이용된다.
서버 통신 유닛(208)은 동영상 배포 서버(200)에 설치된 통신 인터페이스이다. 본 실시형태에서, 서버 통신 유닛(208)은 네트워크(300)를 통해 접속된 PC(100) 등의 다른 디바이스에 대해 데이터를 송수신한다. 서버 통신 유닛(208)은 통신 유닛(105)과 마찬가지로, 통신 사양에 기초하여 데이터 포맷 변환을 수행한다.
〈동영상 배포 처리〉
전술한 구성을 갖는 실시형태에 따른 동영상 배포 시스템의 동영상 배포 서버(200)에 의해 실행되는 동영상 배포 처리에 대해 도 4의 흐름도를 참조하여 상세하게 설명한다. 이 흐름도에 대응하는 처리는 서버 CPU(201)로 하여금, 예컨대 서버 ROM(200)에 기록된 대응하는 처리 프로그램을 판독하게 하고 그것을 서버 RAM(203) 상에 전개하여 실행하게 함으로써 구현될 수 있다. 본 설명에서는, 동영상 배포 서버(200)에 의해 제공된 게임 컨텐츠에 대한 배포 요청이 PC(100)로부터 수신된 것을 서버 CPU(201)가 검출할 때에 동영상 배포 처리가 시작되어 게임의 각 프레임마다 반복적으로 실행된다고 상정한다.
본 실시형태에서, 동영상 배포 서버(200)는 디퍼드 렌더링 방법을 이용하여 3차원 장면을 렌더링함으로써 생성된 게임 화면을 부호화 동영상 데이터의 형태로 PC(100)에 제공한다. 그러나, 동영상 배포 서버(200)에 의해 배포될 컨텐츠는 전술한 바와 같이 이것에 한정되지 않고, 적어도 2 단계로 3차원 화면을 렌더링함으로써 얻어진 화면을 제공하는 것이라면 어떤 임의의 컨텐츠일 수도 있다.
단계 S401에서, 서버 CPU(201)는 다음에 렌더링될 게임 화면의 뷰포인트 정보를 업데이트한다. 더 구체적으로, 서버 CPU(201)는 예컨대 PC(100) 상에서 사용자에 의해 발생하며 서버 통신 유닛(208)에 의해 수신되는 게임과 관련된 조작 입력의 정보를 참조하여, 다음에 렌더링될 게임 화면의 뷰포인트 정보를 업데이트한다. 뷰포인트 정보를 업데이트시킬 수 있는 사용자 조작은, 예컨대 사용자의 조작 타깃이 되는 캐릭터의 이동 또는 뷰포인트 위치/방향 변경 조작에 해당한다. 게임 화면을 렌더링하는데 이용될 뷰포인트 정보는 PC(100) 상에서 발생한 사용자 조작뿐만 아니라 예컨대 게임의 진행에 따라서도 변경될 수 있는 것이다.
단계 S402에서, 서버 CPU(201)는 서버 GPU(204)로 하여금, 단계 S401에서 업데이트된 뷰포인트 정보에 대응하는 게임 화면에 대한 선행 스테이지의 렌더링 처리를 실행하게 함으로써, 후속 스테이지의 렌더링 처리에서 이용될 다양한 종류의 중간값 맵을 생성한다. 더 구체적으로, 서버 CPU(201)는 렌더링될 게임 화면에 포함된 렌더링 오브젝트를 특정하고, 각 렌더링 오브젝트의 데이터를 렌더링 순서에 따라 서버 GPU(204)에 전송한다. 서버 GPU(204)는 전송된 렌더링 오브젝트의 데이터를 GPU 메모리에 저장한다. 각 렌더링 오브젝트의 데이터는 예컨대 도 5에 도시하는 바와 같은 구조를 갖는다. 본 실시형태에서는, 각 데이터가 오브젝트 ID에 따라 모델 데이터(또는 버텍스 데이터 및 접속 데이터), 텍스처 데이터 및 위치/회전 정보를 포함한다. 텍스처 데이터는 그 패턴 등을 표현하기 위해 3차원 모델에 적용된(붙여진) 일반적인 화상 텍스처(10진수 텍스처)뿐만 아니라 3차원 모델의 쉐도우 처리 및 질감 표현에 이용될 다양한 종류의 맵도 포함하는 것이다.
서버 GPU(204)는 렌더링 명령에 의해 렌더링될 렌더링 오브젝트의 위치/회전 정보의 파라미터에 기초하여, GPU 메모리에 저장된 모델 데이터를 이동 및 회전시킨다. 그 후에, 서버 GPU(204)는 광원 효과(쉐도우 처리 및 쉐도잉)를 적용하는 일없이 서버 VRAM(205) 상에서 오브젝트를 렌더링한다. 이 때, 최종적으로 PC(100)에 제공될 게임 화면에 대응하는 복수 종류의 중간값 맵이 서버 VRAM(205) 상에 생성된다. 복수 종류의 중간값 맵은 후술하는 후속 스테이지의 렌더링 처리에 포함된 쉐도우 처리에서 참조되며, 본 실시형태에서는, 적어도
·산란 맵(Albedo Map)
·심도 맵(Depth Map)
·법선 맵(Normal Map)
·반사 맵(Specular Map)
·확산 맵(Diffuse Map)
을 포함한다.
심도 맵을 제외한 중간값 맵은 렌더링될 게임 화면의 뷰포인트 정보에 기초하여, 렌더링될 게임 화면에 포함된 모든 렌더링 오브젝트의 데이터에 포함된 텍스처 데이터 또는 모델 데이터에 대응하는 각각의 다각형의 정보를 변환함으로써 생성되는 것이다. 즉, 포워드 렌더링에서는, 그 텍스처 데이터를 고려하여 각 렌더링 오브젝트마다 쉐도우 처리가 실행되는 반면, 디퍼드 렌더링의 선행 스테이지의 렌더링 처리에서는, 렌더링될 전체 게임 화면을 1 렌더링 오브젝트로서 간주함으로써 중간값 맵이 생성된다. 이로써, 후속 스테이지의 렌더링 처리에서 전체 게임 화면에 대한 쉐도우 처리를 수행하여 연산 중복을 줄일 수 있다.
심도 맵은 중간값 맵 생성시 각 렌더링 오브젝트를 렌더링할 때 이전 또는 후속 렌더링 오브젝트에 의한 각 픽셀의 어클루션(occlusion)을 고려하여 종래의 방법으로 생성되는 것이다.
그렇게 하여 선행 스테이지의 렌더링 처리가 완료될 경우, 서버 CPU(201)는 단계 S403∼S407의 처리와 단계 S408∼S411의 처리를 동시에 실행한다.
단계 S403에서, 서버 CPU(201)는 렌더링 프레임(현재 프레임)을 식별하기 위한 프레임 ID와 연계시켜 중간값 맵을 서버 RAM(203)에 저장한다. PC(100)에 제공될 부호화 동영상 데이터의 각 프레임마다, 본 실시형태의 동영상 배포 서버(200)는 렌더링된 게임 화면을 생성하는데 이용된 중간값 맵을 서버 RAM(203)에 저장하고 적어도 다음 프레임의 부호화 처리가 완료될 때까지 그것을 유지한다.
단계 S404에서, 서버 CPU(201)는 부호화 결정을 위해 복수 종류의 중간값 맵 중 적어도 하나를 선택하고, 부호화 결정을 위한 중간값 맵(결정용 중간값 맵)을, 각각 미리 정해진 개수의 픽셀(예컨대, 16 픽셀×16 픽셀)을 갖는 블록으로 분할한다. 전술한 바와 같이, 각 중간값 맵은 PC(100)에 최종적으로 제공될 게임 화면에 대응하며, 제공될 게임 화면의 각 블록의 동영상 부호화에서 프레임간 예측을 수행할 것인지의 여부를 결정하는데 이용될 수 있다.
본 실시형태에서는, 산란 맵, 심도 맵, 법선 맵, 반사 맵 및 확산 맵 중 적어도 하나가 결정용 중간값 맵으로서 선택된다. 생성된 중간값 맵 중에서, 원리적으로는 법선 맵도 부호화 결정에 이용될 수 있다. 그런데, 이 맵은 픽셀값에 따른 법선 방향을 나타낸다. 이러한 이유로, 렌더링 오브젝트가 예컨대 불균일한 상태가 아니라 패터닝된 상태의 표면을 포함한다면, 그 표면의 모든 픽셀은 같은 값을 갖는다. 그러므로, 후술하는 부호화 결정이 법선 맵만 이용해서 이루어질 경우에, 바람직한 데이터 압축이 반드시 구현되는 것은 아니다. 이에, 본 실시형태에서는, 선행 스테이지의 렌더링 처리에 의해 생성된 복수 종류의 중간값 맵 중에서, 법선 맵 이외의 맵이 부호화 결정에 이용된다.
단계 S405에서, 결정용 중간값 맵의 각 블록마다, 서버 CPU(201)는 현재 프레임의 직전 프레임(이전 프레임)의 게임 화면에 대한 선행 스테이지의 렌더링 처리에서 생성된 대응하는 중간값 맵에 있어서 가장 높은 상관을 갖는 영역을 특정한다. 더 구체적으로, 서버 CPU(201)는 서버 RAM(203)으로부터, 이전 프레임의 게임 화면에 대한 선행 스테이지의 렌더링 처리에 의해 생성된 중간값 맵 중에서, 단계 S404에서 결정용 중간값 맵으로서 선택된 맵에 대응하는(같은 종류의) 맵(결정용 과거의 중간값 맵)을 판독한다. 그런 다음, 서버 CPU(201)는 각 블록마다 가장 높은 상관을 갖는 영역에 대해 결정용 과거의 중간값 맵을 검색한다.
이 때, 서버 CPU(201)는 부호화 결정이 행해질 블록의 화상을 참조 화상으로서 설정하고, 결정용 과거의 중간값 맵으로부터 그 참조 화상과 같은 수의 픽셀을 갖는 결정 타깃 영역을 설정하며, 예컨대 화상 간의 유클리드 거리를 산출함으로써 유사도를 취득한다. 결정 타깃 영역의 설정은, 결정용 과거의 중간값 맵에서 픽셀 단위로 또는 1/2 픽셀 단위로 영역을 시프트하면서 행해진다. 서버 CPU(201)는 참조 화상과의 최단의 유클리드 거리를 갖는(유사도가 가장 높은) 영역의 위치를, 가장 높은 상관을 갖는 영역의 위치로서 최종적으로 특정한다.
후술하는 부호화 처리에서 프레임간 부호화를 수행할 경우, 본 실시형태의 동영상 배포 서버(200)는 현재 프레임의 직전 프레임으로부터 취득된 참조 데이터를 이용하여, 현재 프레임 화상과 참조 데이터 간의 차분 화상을 부호화한다. 이러한 이유로, 본 설명에서는 부호화 결정도 현재 프레임의 직전 프레임에 대해 행해진다고 상정한다. 그러나, 프레임간 부호화에 참조된 과거 프레임은 현재 프레임의 직전 프레임에 한정되지 않으며, 현재 프레임 이전이라면 어떤 프레임도 이용할 수 있다.
단계 S406에서, 서버 CPU(201)는 결정용 중간값 맵의 각 블록마다 프레임내 부호화 또는 프레임간 부호화를 수행할 것인지의 여부를 결정한다(부호화 결정). 더 구체적으로, 서버 CPU(201)는 각 블록과의 상관이 가장 높은 결정용 과거의 중간값 맵의 영역에 대해 산출된 유사도(예컨대, 유클리드 거리의 역수)가 미리 설정된 임계값 이상인지의 여부를 판정한다. 서버 CPU(201)는 가장 높은 상관을 갖는 영역과의 유사도가 임계값 이상인 블록에 대해 프레임간 부호화를 수행하거나, 유사도가 임계값 미만인 블록에 대해 프레임내 부호화를 수행하도록 결정한다.
단계 S407에서, 서버 CPU(201)는 결정용 과거의 중간값 맵의 블록 중에서, 프레임간 부호화를 수행하기로 결정된 각 블록에 대해 가장 높은 상관을 갖는 결정용 과거의 중간값 맵의 영역으로부터 모션 벡터를 산출한다. 프레임간 부호화를 수행하기로 결정된 블록을 특정하기 위한 특정 정보과 연계시켜, 서버 CPU(201)는 그 블록에 대한 모션 벡터의 정보를 서버 통신 유닛(208)에 전송하여 그 유닛으로 하여금 그 정보를 전처리용 정보로서 PC(100)에 송신하게 한다.
한편, 단계 S403∼S407의 처리와 병행하는 처리에 있어서, 서버 CPU(201)는 단계 S408에서, 서버 GPU(204)로 하여금, 단계 S401에서 업데이트된 뷰포인트 정보에 대응하는 게임 화면에 대한 후속 스테이지의 렌더링 처리를 실행하게 함으로써, PC(100)에 최종적으로 제공될 게임 화면(배포용 게임 화면)을 생성한다. 더 구체적으로, 서버 CPU(201)는 렌더링된 게임 화면의 3차원 장면에 적용될 광원을 특정하고, 그 광원의 속성, 세기 등의 정보를 서버 GPU(204)에 전송한다. 서버 GPU(204)는 선행 스테이지의 렌더링 처리에서 생성된 다양한 종류의 중간값 맵을 이용하여 다양한 종류의 광원의 쉐도우 처리를 한번에 수행하면서(광원 효과를 적용하면서) 게임 화면에 포함된 렌더링 오브젝트를 다시 렌더링함으로써, 서버 VRAM(205)의 프레임 버퍼 상에 배포용 게임 화면을 생성한다.
단계 S409에서, 서버 CPU(201)는 단계 S406에 있어서의 현재 프레임에 대한 부호화 결정 처리가 완료되었는지의 여부를 판정한다. 부호화 결정 처리가 완료되었다고 판정하면, 서버 CPU(201)는 프로세스를 단계 S410로 진행시킨다. 부호화 결정 처리가 완료되지 않았다고 판정하면, 단계 S409의 처리가 반복된다.
단계 S410에서, 서버 CPU(201)는 단계 S404에 있어서의 블록 분할과 같이 배포용 게임 화면을 블록으로 분할하고, 부호화 처리를 실행하여 부호화 동영상 데이터를 생성한다.
(부호화 처리)
도 6을 참조하여, 본 실시형태의 동영상 배포 서버(200)에서 실행되는 부호화 처리의 상세한 내용에 대해서 설명한다.
단계 S601에서, 서버 CPU(201)는 배포용 게임 화면의 블록 중에서 무부호화 블록을 선택한다.
단계 S602에서, 서버 CPU(201)는 선택된 블록에 대해 프레임간 부호화를 실행할 것인지의 여부를, 결정용 중간값 맵에 대해 수행된 부호화 결정의 결과를 참조하여 결정한다. 선택된 블록에 대해 프레임간 부호화를 수행한다고 결정하면, 서버 CPU(201)는 프로세스를 단계 S603으로 진행시킨다. 프레임간 부호화를 실행하지 않는다고 결정하면, 서버 CPU(201)는 프로세스를 단계 S605로 진행시킨다.
단계 S603에서, 서버 CPU(201)는 현재 프레임의 직전 프레임에서 렌더링된 게임 화면(이전 게임 화면) 중, 선택된 블록에 대응하는 영역의 화상으로부터 프레임간 프레임 부호화에 이용될 참조 화상(참조 데이터)을 생성한다. 더 구체적으로, 먼저 서버 CPU(201)는 예를 들면 서버 RAM(203)으로부터 이전 프레임에 있어서 PC(100)에 제공된 게임 화면(과거의 게임 화면)을 판독한다. 서버 CPU(201)는 과거의 게임 화면으로부터, 가장 높은 상관을 갖는 영역과 대응하여, 선택된 블록에 대해 특정된 영역의 화상을 추출한다.
단계 S604에서, 서버 CPU(201)는 선택된 블록의 화상과 참조 화상 간의 차분을 차분 화상으로서 생성하여 그것을 부호화 타깃 화상으로서 설정한다. 더 구체적으로, 서버 CPU(201)는 선택된 블록의 대응 픽셀의 픽셀값으로부터 참조 화상의 각 픽셀의 픽셀값을 감산하여 차분 화상(p블록)을 생성한다.
한편, 단계 S602에서 프레임간 부호화를 수행하지 않는다고 결정하면, 서버 CPU(201)는 단계 S605에서, 선택된 블록의 화상을 부호화 타깃 화상으로서 설정한다.
단계 S606에서, 서버 CPU(201)는 부호화 타깃 화상을 서버 부호화 유닛(206)에 전송하여, 그 유닛으로 하여금 그 화상을 주파수 도메인 상의 데이터로 변환하는 DCT 처리를 실행하게 한다. 서버 CPU(201)는 또한, 서버 뷰호화 유닛(206)으로 하여금 변환에 의해 얻어진 주파수 도메인 상의 데이터의 런렝스 부호화를 수행하게 함으로써, 선택된 블록의 부호화 데이터를 생성한다.
단계 S607에서, 서버 CPU(201)는 렌더링된 게임 화면의 모든 블록이 단계 S602∼S606의 처리를 수행했는지의 여부를 판정한다. 미처리 블록이 존재한다고 판정하면, 서버 CPU(201)는 프로세스를 단계 S601로 리턴한다. 미처리 블록이 존재하지 않는다고 판정하면, 부호화 처리가 완료된다.
렌더링된 게임 화면으로부터 부호화 동영상 데이터가 생성된 후에, 서버 CPU(201)는 부호화 동영상 데이터를 서버 통신 유닛(208)에 전송하여, 그 유닛으로 하여금 단계 S411에서 그 데이터를 PC(100)에 송신하게 하고, 현재 프레임의 동영상 배포 처리를 완료한다.
전술한 바와 같이, PC(100)에 제공될 게임 화면이 멀티스테이지 렌더링 처리에 의해 생성된다는 사실을 이용하면, 본 실시형태에 따른 동영상 배포 서버(200)는 선행 스테이지의 렌더링 처리에 의해 생성된 중간값 맵을 이용하여, 최종 게임 화면을 렌더링하기 위해 후속 스테이지의 렌더링 처리중에 게임 화면의 각 블록마다 부호화 방법을 결정할 수 있다. 최종 게임 화면이 렌더링된 후에 부호화 방법을 결정하지 않고서 부호화 처리를 개시할 수 있기 때문에, PC(100)에 게임 화면을 제공하는데 필요한 시간이 단축될 수 있다.
〈동영상 재생 처리〉
도 7의 흐름도를 참조하여, 본 실시형태의 PC(100)에 의해 실행되는 동영상 재생 처리의 상세한 내용에 대해서 설명한다. 이 흐름도에 대응하는 처리는 CPU(101)로 하여금 예컨대 ROM(102)에 기록된 대응하는 처리 프로그램을 판독하고 그것을 RAM(103)에 전개하여 실행시킴으로써 구현될 수 있다. 본 설명에서는, 예컨대 동영상 배포 서버(200)에 의해 제공된 게임 컨텐츠를 수신하기 위한 애플리케이션이 PC(100) 상에서 실행될 때에 동영상 재생 처리가 개시되어 그 게임의 각 프레임마다 반복 실행된다고 상정한다.
단계 S701에서, CPU(101)는 통신 유닛(105)이 동영상 배포 서버(200)로부터 전처리 정보를 수신했는지의 여부를 판정한다. 동영상 배포 서버(200)로부터 전처리 정보를 수신했다고 판정하면, CPU(101)는 프로세스를 단계 S702로 진행시킨다. 그 정보가 수신되지 않았다고 판정하면, 단계 S701의 처리가 반복된다.
단계 S702에서, CPU(101)는 전처리 정보를 참조하여 현재 프레임의 게임 화면을 복호화하는데 필요한 참조 데이터를 준비하는 복호화 전처리를 실행한다.
(복호화 전처리)
도 8의 흐름도를 참조하여, 본 실시형태의 PC(100)에 의해 실행되는 복호화 전처리의 상세한 내용에 대해서 설명한다.
단계 S801에서, CPU(101)는 현재 프레임에서 수신된 게임 화면의 블록 중에서, 이용된 부호화 타입 결정을 수행하지 않은 블록을 선택한다.
단계 S802에서, CPU(101)는 전처리 정보를 참조하여, 선택된 블록에 대해 프레임간 부호화가 행해졌는지의 여부를 판정한다. 더 구체적으로, CPU(101)는 전처리 정보가 선택 블록을 특정하기 위한 정보를 포함하고 있는지를 판정한다. 선택된 블록에 대해 프레임간 부호화가 행해졌다고 판정하면, CPU(101)는 프로세스를 단계 S803으로 진행시킨다. 프레임간 부호화가 행해지지 않았다고 판정하면, CPU(101)는 프로세스를 단계 S804로 진행시킨다.
단계 S803에서, CPU(101)는 현재 프레임의 직전 프레임에서 복호화된 게임 화면(이전 프레임 화면)으로부터 선택 블록을 복호화하는데 이용될 참조 화상(참조 데이터)를 추출한다. 더 구체적으로, CPU(101)는 선택 블록과 연계되며 전처리 정보에 포함된 모션 벡터를 참조함으로써 이전 프레임 화면에서 선택 블록을 복호화하는데 참조될 영역을 특정하고 그 영역의 화상을 참조 화상으로서 추출한다.
단계 S804에서, CPU(101)는 현재 프레임에서 수신된 게임 화면의 모든 블록이 단계 S802와 S803의 처리를 수행했는지의 여부를 판정한다. 미처리 블록이 존재한다고 판정하면, CPU(101)는 프로세스를 단계 S801로 리턴한다. 미처리 블록이 존재하지 않는다고 판정하면, 복호화 처리가 완료된다.
전술한 바와 같이, 부호화 동영상 데이터의 수신 후에 실행될 복호화 처리 이전에, 본 실시형태의 PC(100)는 부호화 동영상 데이터 이전에 수신된 전처리 정보를 참조하여 복호화 처리에 이용될 참조 데이터를 준비할 수 있다.
단계 S703에서, CPU(101)는 통신 유닛(105)이 동영상 배포 서버(200)로부터 부호화 동영상 데이터를 수신하였는지의 여부를 판정한다. 부호화 동영상 데이터가 동영상 배포 서버(200)로부터 수신되었다고 판정하면, CPU(101)는 프로세스를 단계 S704로 진행시킨다. 그 데이터가 수신되지 않았다고 판정하면, 단계 S703의 처리가 반복된다.
단계 S704에서, CPU(101)는 수신된 부호화 동영상 데이터를 복호화 유닛(104)에 전송하고, 그 유닛으로 하여금 부호화 처리를 실행하게 하여 게임 화면을 생성한다. 더 구체적으로, 부호화 유닛(104)은 부호화 동영상 데이터의 각 블록마다 런렝스 부호화 데이터의 복호화 및 역 DCT 처리를 수행함으로써, 현재 프레임의 게임 화면의 블록 데이터를 생성한다. 프레임간 부호화를 수행한 블록에 대해, 복호화 유닛(104)은 전술한 복호화 전처리에 의해 생성된 참조 데이터를 부가함으로써, 현재 프레임의 게임 화면을 생성한다.
단계 S705에서, CPU(101)는 단계 S704에서 생성된 현재 프레임의 게임 화면을 표시 유닛(106)에 전송하여, 그 유닛으로 하여금 대응하는 디스플레이 영역에 게임 화면을 표시하게 하고, 현재 프레임의 동영상 재생 처리를 완료한다.
전술한 바와 같이, 본 실시형태의 동영상 배포 시스템에 있어서의 동영상 배포 서버(200)는 부호화 동영상 데이터가 생성되어 배포되기 전에 부호화 방법 정보를 PC(100)에 전송할 수 있다. 더 구체적으로, 부호화 동영상 데이터의 수신 전에, 전처리로써 참조 화상을 준비할 수 있기 때문에, 부호화 동영상 데이터의 수신 후에 실행된 부호화 처리의 시간을 단축할 수 있다. 즉, 본 실시형태의 동영상 배포 방법은, 수신된 부호화 동영상 데이터에 포함된 모션 벡터를 참조하여, 프레임간 부호화를 수행한 블록을 복호화하는데 이용될 참조 화상을 이전 프레임으로부터 생성하는 종래 방법과 비교할 때, 복호화 동영상의 재생까지 필요한 시간을 단축할 수 있다.
즉, 동영상 배포 시스템은 도 9에 나타내는 처리 프로시저를 총괄하여 이용한다. 본 발명을 적용함으로써, 동영상 배포 서버(200)에서의 효율적인 동영상 부호화 처리와 PC(100)에서의 효율적인 동영상 복호화 처리를 모두 구현할 수 있다.
전술한 동영상 배포 처리에서는, 현재 프레임의 화면의 모든 블록에 대해 부호화 결정이 실행된 이후에 전처리 정보가 PC(100)에 송신된다고 상정하였다. 그러나, 쉽게 예상할 수 있는 바와 같이, 전처리 정보의 송신 타이밍은 이것에 한정되지 않는다. 더 구체적으로, 각 블록에 대해 프레임간 부호화를 수행할 것인지의 여부를 결정함으로써 결과가 얻어질 때마다, 서버 CPU(201)는 모든 블록의 결정 결과를 대기하지 않고 블록의 전처리 정보를 PC(100)에 송신할 수 있다. 이 경우, PC(100)의 CPU(101)가 전처리 정보를 수신하고 그 전처리 정보에 의해 특정된 블록의 참조 화상을 생성할 때에, 동영상 배포 처리가 더 효율적일 것으로 기대할 수 있다.
본 실시형태에 있어서, 결정용 중간값 맵의 블록 중에서 프레임간 부호화를 수행하도록 결정된 블록에 대해, 가장 높은 상관을 갖고 그 블록과 같은 수의 픽셀을 포함하는, 결정용 과거의 중간값 맵의 영역이 부호화 시에 참조 데이터로서 검색된다. 본 설명에서는, 영역을 나타내는 모션 벡터(2차원 벡터)가 PC(100)에 송신된다고 상정하였다. 그러나, 프레임간 부호화 시에 참조 데이터로서 역할하는 영역은 반드시 같은 수의 픽셀을 포함하는 영역일 필요는 없다. 예컨대, 결정용 과거의 중간값 맵의 부분 영역을 확대/축소시킴으로써 얻어진 화상이 부호화 타깃 블록과의 가장 높은 상관을 갖는다면, 확대된/축소된 화상을 참조 데이터로서 이용할 수 있다. 대안적으로, 예컨대 결정용 과거의 중간값 맵의 부분 영역을 회전 또는 투영(변형)시킴으로써 얻어진 화상이 부호화 타깃 블록과의 가장 높은 상관을 갖는다면, 회전된 또는 투영된 화상을 참조 데이터로서 이용할 수 있다. 이 경우, 참조 데이터로서 이용될 이전 프레임 화면의 영역을 특정하기 위해, 예컨대 확대/축소 파라미터 또는 회전/투영을 위한 변환 행렬이 3차원 모션 벡터 또는 2차원 모션 벡터와 함께 PC(100)에 송신될 수 있다. 참조 데이터로서 이용될 이전 프레임 화면의 영역을 특정하기 위한 정보는 이것에 한정되지 않는 것이다. 영역을 특정할 수 있는 그외 다른 형태의 정보, 예컨대 그 영역의 정점 좌표를 직접 특정하기 위한 정보도 이용할 수 있다.
전술한 바와 같이, 본 실시형태의 동영상 배포 서버는 렌더링 처리로써 얻어진 화면의 동영상 부호화를 신속하고 효율적으로 수행할 수 있다. 더 구체적으로, 동영상 배포 서버는 렌더링될 화면을 결정하기 위한 뷰포인트 정보를 이용하여 적어도 2 단계의 렌더링 처리로써 배포 화면을 렌더링한다. 선행 스테이지의 렌더링 처리에 의해 생성된 특정 채널의 중간값 맵을 참조하여 후속 스테이지의 렌더링 처리에서 배포 화면을 렌더링하는 방식으로 렌더링 처리가 수행된다. 동영상 배포 서버는 제1 화면에 대한 후속 스테이지의 렌더링 처리의 실행중에 적어도 하나의 채널의 중간값 맵을 선택하고, 각 세트 블록마다, 제1 화면 이전에 렌더링된 제2 화면에 대해 생성된 대응하는 중간값 맵을 참조하여 프레임간 부호화를 수행할 것인지의 여부를 결정한다. 제1 화면에 대한 후속 스테이지의 렌더링 처리가 종료된 후에, 동영상 배포 서버는 그 결정 결과에 따라 부호화를 수행하고, 부호화 동영상 데이터를 외부 디바이스에 송신한다. 결정 결과는 제1 화면의 부호화 동영상 데이터의 생성이 완료되기 전에 외부 디바이스에 송신된다.
[변형예]
전술한 실시형태에서는, 대응하는 맵의 각 부호화 블록과의 가장 높은 상관을 갖는 영역을, 선행 스테이지의 렌더링 처리에 의해 생성된 복수 종류의 중간값 맵 중 적어도 하나를 이용한 유클리드 거리 산출 등의 상관 연산으로써 이전 프레임에서 특정하는 것으로 상정하여 설명하였다. 일반적으로, 상관 연산은 연산 타깃 영역을 변경하면서 무작위(brute-force) 검색과 같이 수행되기 때문에 가장 높은 상관을 갖는 영역을 특정하는 처리의 경우 계산량이 많다. 즉, 서버 CPU(201)는 후속 스테이지의 렌더링 처리중에, 모든 부호화 블록의 상관 연산을 완료할 수 있는 연산 능력을 구비해야 하기 때문에, 동영상 배포 서버(200)의 도입 비용이 상승할 수 있다. 본 변형예에서는, 가장 높은 상관을 갖는 영역을 추정하여, 모든 부호화 블록에 대한 상관 연산을 무작위 검색처럼 수행하지 않지 않고 그 영역의 상관 레벨을 산출하는 방법에 대해서 설명한다.
〈동영상 배포 처리〉
도 10의 흐름도를 참조하여, 전술한 바와 같은 구성을 갖는 변형예에 따른 동영상 배포 서버(200)에 의해 실행되는 상세한 동영상 배포 처리에 대해서 설명한다. 본 변형예의 동영상 배포 처리에서는, 전술한 실시형태의 동영상 배포 처리에서와 같은 프로세스를 수행하는 단계에 동일한 단계 번호를 부여하며, 그에 대한 설명은 생략한다. 변형예의 특징적인 프로세스를 수행하기 위한 단계만 이하에 설명한다.
단계 S402에서 선행 스테이지의 렌더링 처리가 완료된 후에, 병행 프로세스 중 하나인 단계 S1001에서, 서버 CPU(201)는 단계 S401에서 업데이트된 뷰포인트 정보(렌더링 뷰포인트 정보)와 연계시켜, 생성된 중간값 맵을 서버 RAM(203)에 저장한다.
단계 S1002에서, 서버 CPU(201)는 부호화 결정을 위한 복수 종류의 중간값 맵 중 하나로서 심도 맵을 선택하고 그 맵을 블록으로 분할한다.
단계 S1003에서, 서버 CPU(201)는 심도 맵의 각 블록마다, 이전 프레임의 게임 화면에서 가장 높은 상관을 갖는 것으로 기대되는 영역을 추정한다.
먼저, 서버 CPU(201)는 타깃 블록의 네 코너 좌표에서 렌더링되는 렌더링 오브젝트(블록 특정 오브젝트)의 3차원 좌표값을 특정한다. 더 구체적으로, 서버 CPU(201)는 타깃 블록의 네 코너 각각의 좌표에서의 심도 값을 심도 버퍼로부터 취득한다. 다음으로, 서버 CPU(201)는 타깃 블록의 네 코너의 좌표와 렌더링 뷰포인트 정보에 기초하여 블록 특정 오브젝트의 방향(블록의 센터를 향한 방향)을 특정한다. 서버 CPU(201)는 렌더링 뷰포인트 정보, 블록 특정 오브젝트에 대한 특정 방향, 및 심도 값에 기초하여, 블록 특정 오브젝트의 3차원 좌표를 특정한다.
그런 다음, 서버 CPU(201)는 이전 프레임의 게임 화면을 렌더링하는데 이용된 뷰포인트 정보(과거의 뷰포인트 정보)를 이용하여, 블록 특정 오브젝트의 3차원 좌표를 이전 프레임의 게임 화면 상에서의 화면 좌표로 변환한다. 이로 말미암아 이전 프레임의 게임 화면에서 가장 높은 상관을 갖는 것으로 기대되는 영역의 네 코너의 좌표를 특정할 수 있다. 즉, 본 변형예에 있어서, 타깃 블록에서와 같은 렌더링 오브젝트가 표현되는 영역, 즉 높은 확률에서 높은 상관으로 렌더링된 컨텐츠를 갖는 영역을, 도 11에 도시하는 바와 같이, 3차원 장면에의 역변환에 의해 특정할 수 있다.
단계 S1004에서, 서버 CPU(201)는 단계 S1003에서 가장 높은 상관을 갖는 것으로 추정된 영역에 대해 상관 레벨을 산출한다. 더 구체적으로, 서버 CPU(201)는 이전 프레임에 대한 선행 스테이지의 렌더링 처리에 의해 생성된 심도 맵(과거의 심도 맵)을 서버 RAM(203)으로부터 판독한다. 서버 CPU(201)는 과거의 심도 맵으로부터 가장 높은 상관을 갖는 것으로 추정된 영역의 화상을 추출하고, 그 화상을, 예컨대 과거의 뷰포인트 정보와 렌더링 뷰포인트 정보로부터 생성된 변환 행렬과 곱함으로써, 타깃 블록과 같은 수의 픽셀을 갖는 참조 화상을 생성한다. 서버 CPU(201)는 타깃 블록의 화상과 참조 화상 간의 상관 레벨을 산출하고 프로세스를 단계 S406으로 진행시킨다.
전술한 바와 같이, 본 변형예의 동영상 배포 서버(200)는 선행 스테이지의 렌더링 처리에 의해 생성된 심도 맵을 이용한 좌표 변환에 의해, 부호화된 블록과의 가장 높은 상관을 갖는 것으로 기대되는 영역을 추정할 수 있다. 이러한 이유로, 가장 높은 상관을 갖는 것으로 기대되는 영역을, 무작위 검색과 같이 상관 레벨을 산출하여 특정할 필요가 없기 때문에, 후속 스테이지의 렌더링 처리중에, 모든 부호화 블록에 대한 상관 연산의 계산량을 줄일 수 있다.
본 변형예에서는, 이전 프레임의 게임 화면 상에서의 화면 좌표가 타깃 블록에서 렌더링된 렌더링 오브젝트마다 엄격하게 특정되는 것과, 그 화상이 타깃 블록과 같은 수의 픽셀을 갖는 화상으로 변형됨으로써 상관 레벨을 결정하는 것을 상정하여 설명하였다. 그러나, 본 발명의 실시는 이것에 한정되지 않는다. 예컨대, 이전 프레임의 게임 화면 상에서의 화면 좌표는 타깃 블록의 센터에서 렌더링된 렌더링 오브젝트에 대해 연산될 수 있다. 센터로서 역할하는 좌표 상에 설정된 타깃 블록과 같은 수의 픽셀을 갖는 영역은 가장 높은 상관을 갖는 것으로 기대되는 영역으로서 설정될 수 있다.
예시적인 실시형태를 참조하여 본 발명을 설명하였지만, 본 발명은 개시된 예시적인 실시형태에 한정되지 않는다. 이하의 특허청구범위의 범위는 그러한 모든 변형예와 등가의 구조 및 기능을 포함하도록 가장 넓은 해석이 이루어질 수 있는 것이다.
본 출원은 2011년 8월 17일 출원한 미국 특허 가출원 제61/524,460호와, 2012년 1월 31일에 출원한 일본 특허 출원 제2012-019239호에 대해 우선권을 주장하며, 이들 특허 출원은 여기에서의 인용에 의해 그 전체가 본 명세서에 원용된다.

Claims (11)

  1. 동영상 배포 서버에 있어서,
    렌더링될 화면을 결정하기 위한 뷰포인트 정보를 순차적으로 취득하는 취득 수단과,
    상기 취득 수단에 의해 취득된 뷰포인트 정보를 이용하여 적어도 2 단계의 렌더링 처리로써 배포 화면을 렌더링하는 렌더링 수단으로서, 선행 스테이지의 렌더링 처리에서, 후속 스테이지의 렌더링 처리에서 참조될 특정 채널의 중간값 맵을 생성하고, 후속 스테이지의 렌더링 처리에서, 상기 중간값 맵을 참조하여 배포 화면을 렌더링하는 렌더링 수단과,
    제1 화면에 대한 후속 스테이지의 렌더링 처리의 실행중에, 상기 제1 화면에 대해 생성된 적어도 하나의 채널의 중간값 맵을 취득하고, 그 중간값 맵을 복수의 블록으로 분할하는 분할 수단과,
    복수의 블록 각각마다, 상기 제1 화면 이전에 렌더링된 제2 화면에 대해 생성된 동일한 채널의 중간값 맵 상에서 그 블록에 대응하는 영역을 특정하는 특정 수단과,
    상기 제1 화면에 대한 후속 스테이지의 렌더링 처리의 종료 후에, 상기 제1 화면을 부호화하여 부호화 동영상 데이터를 생성하는 부호화 수단으로서, 상기 복수의 블록 중에서, 상기 특정 수단에 의해 특정된 대응 영역과의 유사도가 임계값 이상인 블록에 대해, 상기 제1 화면의 블록의 화상과 상기 제2 화면의 대응 영역의 화상 사이의 프레임간 부호화(inter-frame coding)를 수행하고, 상기 복수의 블록 중에서, 상기 특정 수단에 의해 특정된 대응 영역과의 유사도가 임계값 미만인 블록에 대해, 상기 제1 화면의 블록의 화상의 프레임내 부호화(intra-frame coding)를 수행하는 부호화 수단과,
    외부 디바이스에 데이터를 송신하는 송신 수단
    을 포함하고,
    상기 송신 수단은,
    상기 부호화 수단이 상기 제1 화면의 각 블록의 부호화 동영상 데이터의 생성을 완료하기 전에, 상기 대응 영역과의 유사도가 임계값 이상인 블록에 대해, 그 블록과, 그 블록에 대한 대응 영역을 특정하기 위한 특정 정보를 상기 외부 디바이스에 송신하며,
    상기 부호화 수단이 상기 제1 화면의 각 블록의 부호화 동영상 데이터의 생성을 완료한 후에, 그 부호화 동영상 데이터를 상기 외부 디바이스에 송신하는 것인 동영상 배포 서버.
  2. 제1항에 있어서, 상기 적어도 하나의 채널의 중간값 맵은 산란 맵(Albedo Map), 심도 맵(Depth Map), 반사 맵(Specular Map), 및 확산 맵(Diffuse Map) 중 하나인 것인 동영상 배포 서버.
  3. 제1항에 있어서, 상기 특정 수단은 상기 복수의 블록 각각에 대한 대응 영역으로서 상기 제2 화면에서 가장 높은 유사도를 갖는 영역을 특정하는 것인 동영상 배포 서버.
  4. 제2항에 있어서, 상기 특정 수단은,
    상기 복수의 블록 각각마다, 상기 제1 화면을 렌더링하는데 이용된 제1 뷰포인트 정보, 및 상기 제1 화면에 대해 생성된 심도 맵에 기초하여, 그 블록의 정점에서 렌더링된 렌더링 오브젝트의 3차원 좌표를 산출하는 제1 산출 수단과,
    상기 복수의 블록 각각마다, 상기 제2 화면을 렌더링하는데 이용된 제2 뷰포인트 정보를 이용하여, 상기 제1 산출 수단에 의해 산출된 3차원 좌표를 상기 제2 화면 상에서의 화면 좌표로 변환하고 대응 영역을 특정하는 변환 수단
    을 포함하는 것인 동영상 배포 서버.
  5. 동영상 배포 서버로부터, 1 프레임의 화면을 부호화하여 얻어진 부호화 동영상 데이터를 순차적으로 취득하고 그 부호화 동영상 데이터를 복호화하여 재생하기 위한 동영상 재생 장치에 있어서,
    제1 화면을 부호화하여 얻어진 제1 부호화 동영상 데이터에 대해, 프레임간 부호화를 수행한 블록과, 그 블록을 복호화하는데 이용될 참조 데이터를 특정하기 위한 특정 정보를 수신하는 제1 수신 수단과,
    상기 제1 부호화 동영상 데이터 이전에 취득된 제2 부호화 동영상 데이터를 복호화하여 얻어진 제2 화면으로부터, 상기 제1 수신 수단에 의해 수신된 특정 정보에 기초하여, 상기 프레임간 부호화를 수행한 각 블록마다 상기 제1 부호화 동영상 데이터를 복호화하는데 이용될 참조 데이터를 생성하는 복호화 전처리 수단과,
    상기 동영상 배포 서버로부터 상기 제1 부호화 동영상 데이터를 수신하는 제2 수신 수단과,
    상기 프레임간 부호화를 수행한 각 블록마다 상기 복호화 전처리 수단에 의해 생성된 참조 데이터를 이용해서, 상기 제2 수신 수단에 의해 수신된 제1 부호화 동영상 데이터를 복호화하여 재생하는 복호화 수단
    을 포함하는 동영상 재생 장치.
  6. 제5항에 있어서, 상기 제1 수신 수단에 의한 특정 정보의 수신은 상기 제2 수신 수단에 의한 제1 부호화 동영상 데이터의 수신 전에 이루어지는 것인 동영상 재생 장치.
  7. 동영상 배포 서버의 제어 방법에 있어서,
    상기 동영상 배포 서버의 취득 수단으로 하여금, 렌더링될 화면을 결정하기 위한 뷰포인트 정보를 순차적으로 취득하게 하는 취득 단계와,
    상기 동영상 배포 서버의 렌더링 수단으로 하여금, 상기 취득 단계에서 취득된 뷰포인트 정보를 이용하여, 적어도 2 단계의 렌더링 처리로써 배포 화면을 렌더링하게 하는 렌더링 단계로서, 상기 렌더링 수단은 선행 스테이지의 렌더링 처리에서, 후속 스테이지의 렌더링 처리에서 참조될 특정 채널의 중간값 맵을 생성하고, 후속 스테이지의 렌더링 처리에서, 상기 중간값 맵을 참조하여 배포 화면을 렌더링하는 것인 렌더링 단계와,
    상기 동영상 배포 서버의 분할 수단으로 하여금, 제1 화면에 대한 후속 스테이지의 렌더링 처리의 실행중에, 상기 제1 화면에 대해 생성된 적어도 하나의 채널의 중간값 맵을 취득하게 하고, 그 중간값 맵을 복수의 블록으로 분할하게 하는 분할 단계와,
    상기 동영상 배포 서버의 특정 수단으로 하여금, 복수의 블록 각각마다, 상기 제1 화면 이전에 렌더링된 제2 화면에 대해 생성된 동일한 채널의 중간값 맵 상에서 그 블록에 대응하는 영역을 특정하게 하는 특정 단계와,
    상기 동영상 배포 서버의 부호화 수단으로 하여금, 상기 제1 화면에 대한 후속 스테이지의 렌더링 처리의 종료 후에, 상기 제1 화면을 부호화하여 부호화 동영상 데이터를 생성하게 하는 부호화 단계로서, 상기 부호화 수단은, 상기 복수의 블록 중에서, 상기 특정 단계에서 특정된 대응 영역과의 유사도가 임계값 이상인 블록에 대해, 상기 제1 화면의 블록의 화상과 상기 제2 화면의 대응 영역의 화상 사이의 프레임간 부호화를 수행하고, 상기 복수의 블록 중에서, 상기 특정 단계에서 특정된 대응 영역과의 유사도가 임계값 미만인 블록에 대해, 상기 제1 화면의 블록의 화상의 프레임내 부호화를 수행하는 것인 부호화 단계와,
    상기 동영상 배포 서버의 송신 수단으로 하여금, 외부 디바이스에 데이터를 송신하게 하는 송신 단계
    를 포함하고,
    상기 송신 단계에서, 상기 송신 수단은,
    상기 부호화 단계에서 상기 제1 화면의 각 블록의 부호화 동영상 데이터의 생성이 완료되기 전에, 상기 대응 영역과의 유사도가 임계값 이상인 블록에 대해, 그 블록과, 그 블록에 대한 대응 영역을 특정하기 위한 특정 정보를 상기 외부 디바이스에 송신하며,
    상기 부호화 단계에서 상기 제1 화면의 각 블록의 부호화 동영상 데이터의 생성이 완료된 후에, 그 부호화 동영상 데이터를 상기 외부 디바이스에 송신하는 것인 동영상 배포 서버의 제어 방법.
  8. 동영상 배포 서버로부터, 1 프레임의 화면을 부호화하여 얻어진 부호화 동영상 데이터를 순차적으로 취득하고 그 부호화 동영상 데이터를 복호화하여 재생하기 위한 동영상 재생 장치의 제어 방법에 있어서,
    상기 동영상 재생 장치의 제1 수신 수단으로 하여금, 제1 화면을 부호화하여 얻어진 제1 부호화 동영상 데이터에 대해, 프레임간 부호화를 수행한 블록과, 그 블록을 복호화하는데 이용될 참조 데이터를 특정하기 위한 특정 정보를 수신하게 하는 제1 수신 단계와,
    상기 동영상 재생 장치의 복호화 전처리 수단으로 하여금, 상기 제1 부호화 동영상 데이터 이전에 취득된 제2 부호화 동영상 데이터를 복호화하여 얻어진 제2 화면으로부터, 상기 제1 수신 단계에서 수신된 특정 정보에 기초하여, 상기 프레임간 부호화를 수행한 각 블록마다 상기 제1 부호화 동영상 데이터를 복호화하는데 이용될 참조 데이터를 생성하게 하는 복호화 전처리 단계와,
    상기 동영상 재생 장치의 제2 수신 수단으로 하여금, 상기 동영상 배포 서버로부터 상기 제1 부호화 동영상 데이터를 수신하게 하는 제2 수신 단계와,
    상기 동영상 재생 장치의 복호화 수단으로 하여금, 상기 프레임간 부호화를 수행한 각 블록마다 상기 복호화 전처리 단계에서 생성된 참조 데이터를 이용해서, 상기 제2 수신 단계에서 수신된 제1 부호화 동영상 데이터를 복호화하여 재생하게 하는 복호화 단계
    를 포함하는 동영상 재생 장치의 제어 방법.
  9. 컴퓨터로 하여금, 제1항 내지 제4항 중 어느 한 항에 기재된 동영상 배포 서버의 각 수단으로서 기능하게 하는 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체.
  10. 컴퓨터로 하여금, 제5항 또는 제6항에 기재된 동영상 재생 장치의 각 수단으로서 기능하게 하는 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체.
  11. 삭제
KR1020137004834A 2011-08-17 2012-06-27 동영상 배포 서버, 동영상 재생 장치, 동영상 배포 서버의 제어 방법, 동영상 재생 장치의 제어 방법, 및 컴퓨터 판독 가능한 기록 매체 KR101422424B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201161524460P 2011-08-17 2011-08-17
US61/524,460 2011-08-17
JPJP-P-2012-019239 2012-01-31
JP2012019239A JP5155462B2 (ja) 2011-08-17 2012-01-31 動画配信サーバ、動画再生装置、制御方法、プログラム、及び記録媒体
PCT/JP2012/067026 WO2013024640A1 (en) 2011-08-17 2012-06-27 Moving image distribution server, moving image reproduction apparatus, control method, program, and recording medium

Publications (2)

Publication Number Publication Date
KR20130036357A KR20130036357A (ko) 2013-04-11
KR101422424B1 true KR101422424B1 (ko) 2014-07-22

Family

ID=47889866

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137004834A KR101422424B1 (ko) 2011-08-17 2012-06-27 동영상 배포 서버, 동영상 재생 장치, 동영상 배포 서버의 제어 방법, 동영상 재생 장치의 제어 방법, 및 컴퓨터 판독 가능한 기록 매체

Country Status (7)

Country Link
US (2) US8873636B2 (ko)
EP (1) EP2596474A4 (ko)
JP (2) JP5155462B2 (ko)
KR (1) KR101422424B1 (ko)
CN (1) CN103329526B (ko)
CA (1) CA2803956C (ko)
WO (1) WO2013024640A1 (ko)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103392189B (zh) * 2012-02-23 2017-10-31 史克威尔·艾尼克斯控股公司 动态图像传输服务器、动态图像播放装置以及控制方法
KR101536501B1 (ko) 2012-04-12 2015-07-13 신라 테크놀로지스, 인크. 동화상 배포 서버, 동화상 재생 장치, 제어 방법, 기록 매체, 및 동화상 배포 시스템
JP5731566B2 (ja) * 2013-04-23 2015-06-10 株式会社スクウェア・エニックス 情報処理装置、制御方法、及び記録媒体
CN105100886B (zh) * 2014-04-22 2019-03-15 腾讯科技(北京)有限公司 网络媒介信息的发布控制方法、及装置、服务器和系统
JP6379673B2 (ja) * 2014-05-26 2018-08-29 凸版印刷株式会社 描画システム、描画装置、計算装置、描画プログラム、及び描画プロセッサ基盤
US10832374B2 (en) * 2015-01-16 2020-11-10 Disney Enterprises, Inc. Image decomposition and path-space motion estimation
CN105551072B (zh) * 2015-12-11 2018-11-30 网易(杭州)网络有限公司 实现角色模型局部实时运动的方法及系统
CA3059740A1 (en) 2017-04-21 2018-10-25 Zenimax Media Inc. Systems and methods for game-generated motion vectors
GB2576286B (en) 2017-04-21 2022-09-07 Zenimax Media Inc Systems and methods for deferred post-processes in video encoding
DE112018002561B3 (de) 2017-04-21 2022-01-05 Zenimax Media Inc. Systeme und Verfahren zur Spielereingabe-Bewegungskompensation in einem Client-Server-Videospiel
TWI669954B (zh) 2017-04-21 2019-08-21 美商時美媒體公司 用於編碼器導引自適應性品質演現的系統及方法
DE112018002112T5 (de) 2017-04-21 2020-01-16 Zenimax Media Inc. Systeme und verfahren zum rendern & vorkodierte lastschätz-basierte codierer-ansprech-bezogene anwendungen
CN110969683A (zh) * 2018-09-30 2020-04-07 北京奇虎科技有限公司 一种动画生成方法、装置及电子设备
CN109445760B (zh) * 2018-10-08 2022-08-23 武汉联影医疗科技有限公司 图像渲染方法和系统
CN110582021B (zh) * 2019-09-26 2021-11-05 深圳市商汤科技有限公司 信息处理方法及装置、电子设备和存储介质
CN111260760B (zh) * 2020-01-10 2023-06-20 腾讯科技(深圳)有限公司 图像处理方法、装置、电子设备及存储介质
CN111563027B (zh) * 2020-04-30 2023-09-01 北京视博云信息技术有限公司 一种应用的运行监测方法、装置及系统
DE102020113454A1 (de) 2020-05-19 2021-11-25 Carl Zeiss Microscopy Gmbh Mikroskop und Verfahren zum Erzeugen eines aus mehreren mikroskopischen Einzelbildern zusammengesetzten Bildes

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007251543A (ja) * 2006-03-15 2007-09-27 Seiko Epson Corp 表示制御装置、その制御方法、情報再生装置及び電子機器

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2821792B2 (ja) 1990-04-04 1998-11-05 鹿島建設株式会社 型枠装置
JP2676975B2 (ja) 1990-04-20 1997-11-17 株式会社豊田自動織機製作所 無人車の運行制御装置
CA2144253C (en) * 1994-04-01 1999-09-21 Bruce F. Naylor System and method of generating compressed video graphics images
JP3287977B2 (ja) 1995-04-28 2002-06-04 松下電器産業株式会社 動きベクトル検出方法および装置と動画像符号化方法および装置
US6868191B2 (en) * 2000-06-28 2005-03-15 Telefonaktiebolaget Lm Ericsson (Publ) System and method for median fusion of depth maps
FI109633B (fi) * 2001-01-24 2002-09-13 Gamecluster Ltd Oy Menetelmä videokuvan pakkauksen nopeuttamiseksi ja/tai sen laadun parantamiseksi
US6741259B2 (en) * 2001-03-30 2004-05-25 Webtv Networks, Inc. Applying multiple texture maps to objects in three-dimensional imaging processes
JP2002369205A (ja) 2001-06-06 2002-12-20 Matsushita Electric Ind Co Ltd 動画像生成装置
US20040012600A1 (en) * 2002-03-22 2004-01-22 Deering Michael F. Scalable high performance 3d graphics
US6975329B2 (en) * 2002-12-09 2005-12-13 Nvidia Corporation Depth-of-field effects using texture lookup
AU2003292490A1 (en) * 2003-01-17 2004-08-13 Koninklijke Philips Electronics N.V. Full depth map acquisition
US20090027383A1 (en) * 2003-11-19 2009-01-29 Lucid Information Technology, Ltd. Computing system parallelizing the operation of multiple graphics processing pipelines (GPPLs) and supporting depth-less based image recomposition
JP4044069B2 (ja) * 2004-04-23 2008-02-06 株式会社ソニー・コンピュータエンタテインメント テクスチャ処理装置、テクスチャ処理方法および画像処理装置
JP4242318B2 (ja) 2004-04-26 2009-03-25 任天堂株式会社 3次元画像生成装置および3次元画像生成プログラム
US7558428B2 (en) 2004-09-13 2009-07-07 Microsoft Corporation Accelerated video encoding using a graphics processing unit
JP4735471B2 (ja) * 2006-08-16 2011-07-27 ソニー株式会社 復号処理装置及び復号処理方法並びに復号処理プログラム
JP4931223B2 (ja) 2007-03-30 2012-05-16 株式会社バンダイナムコゲームス 動きベクトル探索プログラム、情報記憶媒体、動きベクトル探索装置、及び、ネットワークシステム
WO2009058600A1 (en) * 2007-11-02 2009-05-07 Symbol Technologies, Inc. Efficient encoding and decoding of mixed data strings in rfid tags and other media
EP2364190B1 (en) 2008-05-12 2018-11-21 GameFly Israel Ltd. Centralized streaming game server
US8264493B2 (en) 2008-05-12 2012-09-11 Playcast Media Systems, Ltd. Method and system for optimized streaming game server
US8154553B2 (en) 2008-05-22 2012-04-10 Playcast Media System, Ltd. Centralized streaming game server
CN101291415B (zh) 2008-05-30 2010-07-21 华为终端有限公司 一种三维视频通信的方法、装置及系统
CN102257818B (zh) * 2008-10-17 2014-10-29 诺基亚公司 3d视频编码中运动向量的共享
EP2184713A1 (en) * 2008-11-04 2010-05-12 Koninklijke Philips Electronics N.V. Method and device for generating a depth map
EP2384001A1 (en) 2010-04-29 2011-11-02 Alcatel Lucent Providing of encoded video applications in a network environment
US9565449B2 (en) * 2011-03-10 2017-02-07 Qualcomm Incorporated Coding multiview video plus depth content
JP5076132B1 (ja) 2011-05-25 2012-11-21 株式会社スクウェア・エニックス・ホールディングス 描画制御装置、その制御方法、プログラム、記録媒体、描画サーバ、及び描画システム
US9044677B2 (en) 2011-07-11 2015-06-02 Roblox Corporation System for optimizing processing capacity for a group of gaming appliances engaged in play of an online game
WO2013072484A1 (en) * 2011-11-18 2013-05-23 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Multi-view coding with efficient residual handling
WO2013107931A1 (en) * 2012-01-19 2013-07-25 Nokia Corporation An apparatus, a method and a computer program for video coding and decoding
KR101536501B1 (ko) * 2012-04-12 2015-07-13 신라 테크놀로지스, 인크. 동화상 배포 서버, 동화상 재생 장치, 제어 방법, 기록 매체, 및 동화상 배포 시스템
WO2014044908A1 (en) * 2012-09-21 2014-03-27 Nokia Corporation Method and apparatus for video coding

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007251543A (ja) * 2006-03-15 2007-09-27 Seiko Epson Corp 表示制御装置、その制御方法、情報再生装置及び電子機器

Also Published As

Publication number Publication date
WO2013024640A1 (en) 2013-02-21
CN103329526B (zh) 2016-11-09
US20150002626A1 (en) 2015-01-01
EP2596474A4 (en) 2015-05-27
US8873636B2 (en) 2014-10-28
CA2803956A1 (en) 2013-02-17
EP2596474A1 (en) 2013-05-29
KR20130036357A (ko) 2013-04-11
JP2013042539A (ja) 2013-02-28
US9008187B2 (en) 2015-04-14
JP5155462B2 (ja) 2013-03-06
US20130263199A1 (en) 2013-10-03
CN103329526A (zh) 2013-09-25
CA2803956C (en) 2016-04-05
JP2013041568A (ja) 2013-02-28
JP5775051B2 (ja) 2015-09-09

Similar Documents

Publication Publication Date Title
KR101422424B1 (ko) 동영상 배포 서버, 동영상 재생 장치, 동영상 배포 서버의 제어 방법, 동영상 재생 장치의 제어 방법, 및 컴퓨터 판독 가능한 기록 매체
US9491433B2 (en) Moving image distribution server, moving image playback apparatus, control method, and recording medium
KR101536501B1 (ko) 동화상 배포 서버, 동화상 재생 장치, 제어 방법, 기록 매체, 및 동화상 배포 시스템
US9665334B2 (en) Rendering system, rendering server, control method thereof, program, and recording medium
TWI532005B (zh) An animation distribution server, an animation reproduction apparatus, a control method, a program, and a recording medium
TWI523673B (zh) 動畫配信伺服器、動畫播放裝置、控制方法、程式、及記錄媒體

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20170707

Year of fee payment: 4