KR101536501B1 - 동화상 배포 서버, 동화상 재생 장치, 제어 방법, 기록 매체, 및 동화상 배포 시스템 - Google Patents

동화상 배포 서버, 동화상 재생 장치, 제어 방법, 기록 매체, 및 동화상 배포 시스템 Download PDF

Info

Publication number
KR101536501B1
KR101536501B1 KR1020137026595A KR20137026595A KR101536501B1 KR 101536501 B1 KR101536501 B1 KR 101536501B1 KR 1020137026595 A KR1020137026595 A KR 1020137026595A KR 20137026595 A KR20137026595 A KR 20137026595A KR 101536501 B1 KR101536501 B1 KR 101536501B1
Authority
KR
South Korea
Prior art keywords
moving image
screen
rendering
block
image distribution
Prior art date
Application number
KR1020137026595A
Other languages
English (en)
Other versions
KR20130138824A (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 KR20130138824A publication Critical patent/KR20130138824A/ko
Application granted granted Critical
Publication of KR101536501B1 publication Critical patent/KR101536501B1/ko

Links

Images

Classifications

    • A63F13/12
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • 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/25Output arrangements for video game devices
    • 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
    • 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/31Communication aspects specific to video games, e.g. between several handheld game devices at close range
    • 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/33Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using wide area network [WAN] connections
    • A63F13/335Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using wide area network [WAN] connections using Internet
    • 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
    • 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
    • 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/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/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
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • 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
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/162User input
    • 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/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • 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

Landscapes

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

Abstract

렌더링할 화면을 결정하는 시점 정보를 이용하여, 적어도 2단계의 렌더링 처리에 의해 제공 화면을 렌더링한다. 이 렌더링 처리에 있어서, 후단의 렌더링 처리에서는, 전단의 렌더링 처리에서 생성된 심도 맵을 참조하여 제공 화면의 렌더링이 이루어진다. 동화상 배포 서버는, 제1 화면의 후단의 렌더링 처리의 실행중에 심도 맵을 부호화 판단용으로 선택하고, 설정된 블록마다 제1 화면보다 전에 렌더링된 제2 화면에 대해서 생성된 심도 맵을 참조하여 프레임간 부호화를 행할지의 여부를 판단한다. 동화상 배포 서버는 제1 화면의 후단의 렌더링 처리의 종료후, 그 판단 결과에 따라 부호화를 행하여 외부 장치에 부호화 동화상 데이터를 송신한다. 또한 이 판단 결과는 제1 화면의 부호화 동화상 데이터의 생성이 완료되기 전에 외부 장치에 송신된다.

Description

동화상 배포 서버, 동화상 재생 장치, 제어 방법, 기록 매체, 및 동화상 배포 시스템{MOVING IMAGE DISTRIBUTION SERVER, MOVING IMAGE REPRODUCTION APPARATUS, CONTROL METHOD, RECORDING MEDIUM, AND MOVING IMAGE DISTRIBUTION SYSTEM}
본 발명은 동화상 배포 서버, 동화상 재생 장치, 제어 방법, 프로그램, 및 기록 매체에 관한 것으로, 특히 부호화 동화상 데이터의 스트리밍 배포 기술에 관한 것이다.
네트워크 접속 가능한 퍼스널 컴퓨터(PC) 등의 클라이언트 기기가 보급되어 있다. 이러한 기기의 보급에 의해, 인터넷에 있어서의 네트워크 인구는 증가하고 있다. 최근에는, 네트워크 사용자에 대한, 인터넷을 이용한 여러가지 서비스가 전개되고 있으며, 게임 등의 엔터테인먼트 서비스도 제공되고 있다.
네트워크 사용자에 대한 서비스의 하나로서, MMORPG(Massively Multiplayer Online Role-Playing Game) 등의 다인수(多人數) 동시 참가형 네트워크 게임이 있다. 다인수 동시 참가형 네트워크 게임에서는, 사용자는 사용하는 클라이언트 기기를, 게임을 제공하는 서버 기기에 접속함으로써, 그 서버 기기에 접속되어 있는 클라이언트 기기를 사용하는 사용자와의 대전 플레이나 협력 플레이를 행할 수 있다.
일반적인 다인수 참가형 네트워크 게임에서는, 클라이언트 기기는 서버 기기와의 사이에서 게임의 렌더링에 필요한 데이터를 송수신한다. 클라이언트 기기는 수신된 렌더링에 필요한 데이터를 이용하여 렌더링 처리를 실행하고, 생성한 게임 화면을 클라이언트 기기에 접속된 표시 장치에 제시함으로써, 사용자에게 게임 화면을 제공한다. 또한, 사용자가 입력 인터페이스를 조작함으로써 입력된 정보는 서버 기기에 송신되어, 서버 기기에 있어서의 연산 처리에 사용되거나, 서버 기기에 접속된 다른 클라이언트 기기에 전송되거나 한다.
그러나, 이러한 클라이언트 기기에서 렌더링 처리를 행하는 네트워크 게임 중에는, 충분한 렌더링 성능을 갖는 PC나 전용 게임기를 사용자가 사용하는 것이 필요한 경우가 있다. 이 때문에, 네트워크 게임(1 콘텐츠)의 사용자수는, 콘텐츠가 요구하는 클라이언트 기기의 성능에 의존해 버린다. 고성능 기기는 당연히 고가이며, 이 기기를 소유할 수 있는 사용자도 한정된다. 즉, 예컨대 미려한 그래픽을 제공하는 게임 등의 높은 렌더링 성능이 요구되는 게임에서는, 사용자수를 증가시키기 어렵다.
반면, 최근에는 클라이언트 기기의 렌더링 성능 등의 처리 능력에 의존하지 않고, 사용자가 플레이할 수 있는 게임도 제공되고 있다. 특허문헌 1과 같은 게임에서는, 서버 기기는 클라이언트 기기에 있어서 이루어진 조작 정보를 취득하고, 그 정보를 이용하여 렌더링 처리를 실행하여 얻어진 게임 화면을 클라이언트 기기에 대하여 제공하고 있다.
국제 공개 제2009/138878호 명세서
전술한 특허문헌 1과 같은 게임에서는, 서버 기기가 클라이언트 기기에 대하여 제공하는 게임 화면은, 송신하는 정보량을 삭감하기 위해, 부호화된 동화상 데이터의 형태로 제공된다. 채용되는 부호화 방식에도 따르지만, 예컨대 MPEG 규격과 같이 일반적인 동화상 부호화 방식에 있어서는, 1 프레임의 화상을 분할한 각 블록에 대해서 움직임 보상을 수반하지 않는 인트라 부호화(프레임내 부호화), 혹은 프레임 간 예측에 의한 움직임 보상을 수반하는 인터 부호화(프레임간 부호화)가 행해진다. 각각의 부호화 방식에는 압축 효율이 좋은 피사체가 존재하고 있으며, 일반적으로는 각 블록에 대해서 인트라 부호화 및 인터 부호화를 각각 행한 블록(iblock, pblock)을 생성하여, 압축 효율이 높은 블록을 부호화 데이터에 포함시킨다.
인트라 부호화는 압축 대상인 블록의 화상을 가공하지 않고서 DCT 변환 및 런렝스 부호화 등을 적용하여 압축한다. 한편, 인터 부호화는 압축 대상인 블록의 화상과, 전(前) 프레임의 화상으로부터 추출된 이 블록에 대응하는 참조 화상과의 차분 화상을 생성하여, DCT 변환 및 런렝스 부호화 등을 적용하여 압축한다. 이 때문에, 인터 부호화에 있어서는, 전프레임의 화상에 대해서, 압축 대상인 블록의 화상과의 상관이 가장 높은 영역을 특정하는 처리가 포함된다. 이러한 상관이 가장 높은 영역의 검출에 따른 처리는, 전프레임의 화상에 대해서 평가 영역을 이동시키면서, 압축 대상인 블록의 화상의 유사도 및 거리를 산출하여 해석하기 때문에, 해석 처리에 시간이 걸리는 경우가 있다.
특히, 사용자의 입력에 따라 인터랙티브하게 렌더링 내용이 변화하는 게임 등에서는, 리얼 타임성, 즉 입력에 대한 고속의 리스폰스가 요구되어, 동화상 부호화 처리에 요하는 시간이 제한된다. 이러한 경우, 각 블록에 대한 부호화 처리, 및 인트라 부호화 및 인터 부호화 중 어느 것을 행할 것인지의 판단 처리를 고속으로 행하는 것이 요구된다. 그러나, 렌더링한 화면을 고속으로 그리고 효율적으로 동화상 부호화하는 구체적인 방법에 대해서는, 지금까지 개시되어 있지 않았다.
본 발명은 전술한 문제점을 감안하여 이루어진 것으로, 렌더링 처리에 의해 얻어진 화면을 고속으로 그리고 효율적으로 동화상 부호화하는 동화상 배포 서버, 동화상 재생 장치, 제어 방법, 프로그램, 및 기록 매체를 제공하는 것을 목적으로 한다.
전술한 목적을 달성하기 위해, 본 발명의 동화상 배포 서버는 이하의 구성을 포함한다.
렌더링할 화면을 결정하는 시점(視點) 정보를 순차 취득하는 취득 수단과, 취득 수단에 의해 취득된 시점 정보를 이용하여, 적어도 2단계의 렌더링 처리에 의해 제공 화면을 렌더링하는 렌더링 수단으로서, 전단의 렌더링 처리에서는, 후단의 렌더링 처리에서 참조되며, 심도 맵을 포함하는 특정 채널의 중간값 맵을 생성하고, 후단의 렌더링 처리에서는 그 중간값 맵을 참조하여 제공 화면을 렌더링하는 렌더링 수단과, 제1 화면의 후단의 렌더링 처리의 실행중에, 제1 화면에 대해서 생성된 중간값 맵 중 심도 맵을 취득하여, 복수의 블록으로 분할하는 분할 수단과, 복수의 블록의 각각에 대해서, 제1 화면보다 전에 렌더링된 제2 화면의 심도 맵에 있어서의 그 블록에 대응하는 영역을 특정하는 특정 수단과, 제1 화면의 후단의 렌더링 처리의 종료후, 복수의 블록 중, 특정 수단에 의해 특정된 대응하는 영역과의 유사도가 임계값 이상인 블록에 대해서는, 제1 화면의 그 블록의 화상과 제2 화면의 대응하는 영역의 화상 사이에서 프레임간 부호화를 행하고, 특정 수단에 의해 특정된 대응하는 영역과의 유사도가 임계값 미만인 블록에 대해서는, 제1 화면의 그 블록의 화상을 프레임내 부호화를 행함으로써, 부호화 동화상 데이터를 생성하는 부호화 수단과, 외부 장치에 대하여 데이터를 송신하는 송신 수단을 가지며, 송신 수단은, 부호화 수단에 의한 제1 화면의 각 블록의 부호화 동화상 데이터의 생성이 완료되기 전에, 복수의 블록 중, 대응하는 영역과의 유사도가 임계값 이상인 블록에 대해서, 그 블록 및 그 블록에 대한 대응하는 영역을 특정하는 특정 정보를 외부 장치에 송신하고, 부호화 수단에 의한 제1 화면의 각 블록의 부호화 동화상 데이터의 생성이 완료된 후에 그 부호화 동화상 데이터를 외부 장치에 송신하는 것을 특징으로 한다.
전술한 목적을 달성하기 위해, 본 발명의 동화상 재생 장치는 이하의 구성을 포함한다.
1 프레임의 화면이 부호화된 부호화 동화상 데이터를 동화상 배포 서버로부터 순차 취득하고, 복호하여 재생하는 동화상 재생 장치로서, 제1 화면이 부호화된 제1 부호화 동화상 데이터에 대해서, 프레임간 부호화가 행해진 블록 및 그 블록의 복호에 이용되는 참조 데이터를 특정하는 특정 정보를 수신하는 제1 수신 수단과, 제1 수신 수단에 의해 수신된 특정 정보에 기초하여, 제1 부호화 동화상 데이터의 복호에 이용되며, 프레임간 부호화가 행해진 각 블록에 대한 참조 데이터를, 제1 부호화 동화상 데이터보다 전에 취득된 제2 부호화 동화상 데이터를 복호하여 얻어진 제2 화면으로부터 생성하는 복호 전처리 수단과, 특정 정보의 수신후, 제1 부호화 동화상 데이터를 동화상 배포 서버로부터 수신하는 제2 수신 수단과, 제2 수신 수단에 의해 수신된 제1 부호화 동화상 데이터를, 복호 전처리 수단에 의해 생성된 프레임간 부호화가 행해진 각 블록에 대한 참조 데이터를 이용해서 복호하여 재생하는 복호 수단을 갖는 것을 특징으로 한다.
이러한 구성에 의해 본 발명에 따르면, 렌더링 처리에 의해 얻어진 화면을 고속으로 그리고 효율적으로 동화상 부호화하는 것이 가능해진다.
본 발명의 그 외의 특징 및 이점은 첨부 도면을 참조로 한 이하의 설명에 의해 명확해질 것이다. 또한, 첨부 도면에 있어서는, 동일 혹은 유사 구성에는 동일한 참조 번호를 붙인다.
첨부 도면은 명세서에 포함되며, 그 일부를 구성하고, 본 발명의 실시형태를 나타내며, 그 기술과 함께 본 발명의 원리를 설명하기 위해 이용된다.
도 1은 본 발명의 실시형태 1에 따른 동화상 배포 시스템의 시스템 구성을 도시한 도면이다.
도 2는 본 발명의 실시형태에 따른 PC(100)의 기능 구성을 도시한 블록도이다.
도 3은 본 발명의 실시형태에 따른 동화상 배포 서버(200)의 기능 구성을 도시한 블록도이다.
도 4는 본 발명의 실시형태에 따른 동화상 배포 서버(200)의 동화상 배포 처리를 예시한 흐름도이다.
도 5는 본 발명의 실시형태에 따른 렌더링 오브젝트의 데이터 구조를 예시한 도면이다.
도 6은 본 발명의 실시형태에 따른 동화상 배포 서버(200)의 부호화 처리를 예시한 흐름도이다.
도 7은 본 발명의 실시형태에 따른 PC(100)의 동화상 재생 처리를 예시한 흐름도이다.
도 8은 본 발명의 실시형태에 따른 PC(100)의 복호 전처리를 예시한 흐름도이다.
도 9는 본 발명의 실시형태에 따른 동화상 배포 시스템의 전체 처리를 예시한 흐름도이다.
도 10은 본 발명의 실시형태에 따른 가장 상관이 높다고 생각되는 영역의 추정 방법을 설명하기 위한 도면이다.
도 11은 본 발명의 실시형태 2에 따른 동화상 배포 시스템의 시스템 구성을 도시한 도면이다.
도 12는 본 발명의 실시형태 2에 따른 중앙 서버의 기능 구성을 도시한 블록도이다.
도 13은 본 발명의 실시형태 2에 따른 PC(100)의 개시시 처리를 예시한 흐름도이다.
도 14는 본 발명의 실시형태 2에 따른 중앙 서버(1100)의 제공 서버 결정 처리를 예시한 흐름도이다.
[실시형태 1]
이하, 본 발명의 예시적인 실시형태에 대해서, 도면을 참조하여 상세하게 설명한다. 또한, 이하에 설명하는 일실시형태는, 동화상 배포 시스템의 일례로서의, 동화상 재생 장치인 PC(100)와, 동화상을 배포하는 동화상 배포 서버(200)에 본 발명을 적용한 예를 설명한다.
《동화상 배포 시스템의 구성》
도 1은 본 발명의 실시형태에 따른 동화상 배포 시스템의 시스템 구성을 도시한 도면이다.
도시되는 바와 같이, PC(100)와 동화상 배포 서버(200)는 인터넷 등의 네트워크(300)를 통해 접속되어 있다. 본 실시형태에서는 PC(100)는, 동화상 배포 콘텐츠의 일례로서, 동화상 배포 서버(200)에서 실행되는 게임 콘텐츠에 따른 게임 화면을 부호화 동화상 데이터로서 수신한다. 본 실시형태에서는 동화상 배포 서버(200)는 PC(100)에서 이루어진 조작(사용자 입력)을 수신하고, 이 조작에 따른 게임 화면을 1 프레임마다 렌더링한다. 그리고 동화상 배포 서버(200)는 렌더링한 게임 화면을 부호화하고, 얻어진 부호화 동화상 데이터를 PC(100)에 배포한다. 또한 PC(100)는 동화상 배포 서버(200)로부터 부호화 동화상 데이터를 수신하면, 이 부호화 동화상 데이터를 복호하여 재생함으로써, 사용자에 대하여 게임 화면을 제공할 수 있다.
또한, 본 실시형태에서는 동화상 배포 콘텐츠의 일례로서, 네트워크(300) 상의 동화상 배포 서버(200)에서 실행되는 게임 프로그램에 의해 렌더링된 게임 화면을 제공하는 콘텐츠를 설명하지만, 본 발명의 실시는 이것에 한정되지 않는다. 동화상 배포 서버(200)는 배포처에 제공하는 동화상 배포 콘텐츠의 1 프레임을 렌더링 처리에 의해 렌더링하고, 각 프레임에 대해서 행해진 부호화 처리에 의해 얻어진 부호화 동화상 데이터를 배포하는 구성이면 된다. 또한, 1 프레임에 따른 화면의 렌더링은 반드시 동화상 배포 서버(200)에서 실행될 필요는 없고, 예컨대 외부의 렌더링 서버에 의해 실행되어도 좋다.
또한, 본 실시형태에서는 동화상 배포 서버(200)에 접속하는 클라이언트 기기로서, PC(100)를 이용하여 설명하지만, 본 발명의 실시는 이것에 한정되지 않는다. 예컨대 동화상 배포 서버(200)와 접속하는 클라이언트 기기는 가정용 게임기, 휴대 게임기, 휴대 전화, PDA, 태블렛 등의, 동화상 배포 서버(200)로부터 수신된 부호화 동화상 데이터를 복호하여 재생할 수 있는 기기이면 된다.
〈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)는, 예컨대 LCD 모니터 등의 PC(100)에 접속된 표시 장치이다. 표시부(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)에 표시하는 게임 화면을 생성한다. 서버 GPU(204)에는, 서버 VRAM(205)이 접속된다. 서버 GPU(204)는 서버 CPU(201)로부터 렌더링 명령 및 게임 화면의 렌더링에 이용하는 카메라의 위치 및 방향의 정보(시점 정보)를 수신하면, 이 렌더링 명령에 따른 렌더링 오브젝트를 예컨대 후술하는 서버 기록 매체(207)로부터 판독하여, GPU 메모리에 저장한다. 서버 GPU(204)는 접속된 서버 VRAM(205)에 대하여 렌더링을 행하는 경우, 렌더링 오브젝트를 캐시 메모리에 전개한 후, 이 전개후의 렌더링 오브젝트를 서버 VRAM(205)에 기록한다.
또한, 본 실시형태의 서버 GPU(204)는 게임 화면의 생성에 따른 렌더링 처리에 있어서, 소위 지연 렌더링(Deferred Rendering)이라고 하는 방법을 이용한다.
종래의 렌더링 방법은 게임 화면에 포함되는 렌더링 오브젝트의 각각을 순서대로 선택하고, 이 렌더링 오브젝트에 대해서
1. 버텍스 셰이더(vertex shader)에 의한 이동·회전 처리
2. 지오메트리 셰이더에 의한 정점 처리
3. 픽셀 셰이더에 의한 픽셀 단위의 음영 처리를 포함하는 이펙트 처리
를 행하여 렌더링한다. 즉, 각 렌더링 오브젝트에 대해서, 음영 처리→렌더링의 흐름을 갖는, 소위 Forward Rendering이었다. Forward Rendering에서는, 각 오브젝트가 축차 처리되기 때문에, 픽셀에 따라서는 하나의 오브젝트가 렌더링된 후, 보다 카메라에 대하여 가까운 위치에 있는(이 오브젝트보다 앞쪽에 있는) 다른 오브젝트의 렌더링에 의해, 렌더링 내용이 덮어쓰기되어 버리는 케이스가 있다. 이 경우, 뒤에 렌더링된 오브젝트에 의해 차폐되는, 먼저 렌더링된 오브젝트의 일부의 영역에 대해서는, 적용한 음영 처리가 소용없는 것으로 되어 버린다. 또한 예컨대 렌더링하는 씬(scene)에 존재하는 광원 등은 씬에 존재하는 오브젝트에 대하여 공통적이지만, Forward Rendering에서는 하나의 오브젝트를 렌더링할 때의 공통의 계산 내용을, 다른 오브젝트의 렌더링을 위해 재이용하는 것이 어려웠다. 이 때문에, 특히 복잡한 음영 처리를 행하는 게임 화면의 렌더링에 있어서는, Forward Rendering은 효율적이지 않았다.
한편 Deferred Rendering에서는, Forward Rendering과는 달리, 음영 처리에 이용하는 지오메트리의 계산을 먼저 행하고, 모든 렌더링 오브젝트에 대한 음영 처리를 후에 통합하여 행한다. 즉, 지오메트리 렌더링→음영 처리→렌더링의 흐름을 갖는 2단계의 렌더링 처리를 행한다. Deferred Rendering에서는, 전단의 렌더링에 있어서, 라이팅(lighting)을 행하지 않고 음영 처리에 이용하는 파라미터와 함께 지오메트리의 렌더링 처리를 행하여, 음영 처리에서 사용되는 중간값을 나타내는 복수의 중간값 맵(산란 맵, 심도 맵, 법선 맵, 반사 맵, 확산 맵 등)을 생성한다. 그리고 후단의 렌더링 처리에 있어서, 생성된 복수의 중간값 맵을 이용하면서, 광원을 적용하여 음영 처리를 행한 화면을 렌더링한다.
서버 부호화부(206)는 서버 GPU(204)에 의해 서버 VRAM(205)에 생성된 게임 화면에 대한 부호화 처리를 행한다. 서버 부호화부(206)는 부호화 대상의 게임 화면을 블록으로 분할하고, 각 블록을 인트라 부호화(프레임내 부호화) 혹은 인터 부호화(프레임간 부호화)한다. 부호화 처리의 세부사항은 후술하지만, 본 실시형태에서는 서버 부호화부(206)는 각 블록을 YCbCr의 색 채널마다 이산 코사인 변환(DCT)한 후, 런렝스 부호화에 의해 압축한다. 또한, 본 실시형태에서는 게임 화면에 대한 부호화 처리를 행하는 블록으로서 서버 부호화부(206)가 단체(單體)로 존재하는 것으로서 설명하지만, 부호화 처리는 서버 GPU(204)가 실행하여도 좋다.
서버 기록 매체(207)는, 예컨대 HDD 등의, 동화상 배포 서버(200)에 착탈 가능하게 접속되는 기록 장치이다. 본 실시형태에서는 서버 기록 매체(207)에는, 화면의 렌더링 처리에서 이용되며, 각 렌더링 오브젝트의 데이터나, 화면에 표현되는 3차원 씬에 배치된 광원 정보 등이 기록되어 있는 것으로 한다.
서버 통신부(208)는 동화상 배포 서버(200)가 갖는 통신 인터페이스이다. 본 실시형태에서는 서버 통신부(208)는 네트워크(300)를 통해 접속한 PC(100) 등의, 다른 기기와의 사이에서 데이터를 송수신한다. 또한, 서버 통신부(208)는 통신부(105)와 마찬가지로, 통신 사양에 따라 데이터 형식을 변환한다.
《동화상 배포 처리》
이러한 구성을 갖는 본 실시형태의 동화상 배포 시스템의 동화상 배포 서버(200)에서 실행되는 동화상 배포 처리에 대해서, 도 4의 흐름도를 이용하여 구체적인 처리를 설명한다. 이 흐름도에 대응하는 처리는, 서버 CPU(201)가, 예컨대 서버 ROM(202)에 기억된 대응하는 처리 프로그램을 판독하여, 서버 RAM(203)에 전개해 실행함으로써 실현할 수 있다. 또한, 본 동화상 배포 처리는, 예컨대 동화상 배포 서버(200)가 제공하는 게임 콘텐츠의 제공 요구를 PC(100)로부터 수신한 것을, 서버 CPU(201)가 검출하였을 때에 개시되며, 게임의 1 프레임마다 반복 실행되는 것으로서 설명한다.
또한, 본 실시형태에서는 동화상 배포 서버(200)는, 3차원 씬을 Deferred Rendering의 방법을 이용하여 렌더링한 게임 화면을 부호화 동화상 데이터의 형태로 PC(100)에 제공하는 것으로서 설명한다. 그러나, 전술한 바와 같이 동화상 배포 서버(200)가 배포하는 콘텐츠는 이것에 한정되지 않고, 3차원 씬을 적어도 2단계로 렌더링 처리하여 렌더링한 화면을 제공하는 임의의 콘텐츠이면 된다.
S401에서, 서버 CPU(201)는 다음에 렌더링할 게임 화면의 시점 정보를 갱신한다. 구체적으로는 서버 CPU(201)는, 예컨대 서버 통신부(208)가 수신한, PC(100)에서 사용자에 의해 이루어진, 게임에 관한 조작 입력의 정보를 참조하여, 다음에 렌더링할 게임 화면의 시점 정보를 갱신한다. 시점 정보의 갱신이 생길 수 있는 사용자에 의한 조작에는, 예컨대 시점 위치 및 방향의 변경 조작, 혹은 사용자의 조작 대상의 캐릭터의 이동 등이 해당한다. 또한, 게임 화면의 렌더링에 이용되는 시점 정보는 PC(100)에서 이루어진 사용자 조작으로만 갱신되는 것이 아니며, 예컨대 게임의 진행 상황에 따라 변경되는 것이어도 좋다.
S402에서, 서버 CPU(201)는, S401에서 갱신된 시점 정보에 대응하는 게임 화면에 대해서, 서버 GPU(204)에 전단의 렌더링 처리를 실행시키고, 후단의 렌더링 처리에서 이용하는 각종 중간값 맵을 생성시킨다. 구체적으로는 서버 CPU(201)는 렌더링되는 게임 화면에 포함되는 렌더링 오브젝트를 특정하고, 각 렌더링 오브젝트의 데이터를 렌더링 순서에 따라 서버 GPU(204)에 전송한다. 서버 GPU(204)는 전송된 렌더링 오브젝트의 데이터를 GPU 메모리에 저장한다. 렌더링 오브젝트의 데이터는, 예컨대 도 5에 나타내는 것 같은 구성이며, 본 실시형태에서는 오브젝트 식별 ID에 관련되는, 모델 데이터(혹은 정점 데이터 및 결선 데이터), 텍스쳐 데이터, 및 위치·회전 정보가 포함된다. 또한, 텍스쳐 데이터는 3차원 모델에 적용(붙여넣기)되는, 이 3차원 모델의 모양 등을 표현하는 일반적인 화상 텍스쳐[데칼 텍스쳐(decal texture)]뿐만 아니라, 이 3차원 모델의 음영 처리나 질감 표현에 이용되는 각종 맵이 포함된다.
서버 GPU(204)는 렌더링 명령을 받은 렌더링 오브젝트에 대한 위치·회전 정보의 파라미터에 따라 GPU 메모리에 저장된 모델 데이터를 이동 및 회전시킨 후, 광원 이펙트(음영 처리, 셰이딩)를 적용하는 일없이, 서버 VRAM(205)에의 렌더링을 행한다. 이때 서버 VRAM(205)에는, 최종적으로 PC(100)에 대하여 제공하는 게임 화면에 대응하는 복수 종류의 중간값 맵이 생성된다. 이 복수 종류의 중간값 맵은 후술하는 후단의 렌더링 처리에 포함된 음영 처리에서 참조되는 맵이며, 본 실시형태에서는 적어도
·산란 맵(Albedo map)
·심도 맵(Depth map)
·법선 맵(Normal map)
·반사 맵(Specular map)
·확산 맵(Diffuse map)
을 포함한다. 또한, 심도 맵 이외의 중간값 맵은 렌더링할 게임 화면에 포함되는 전체 렌더링 오브젝트의 데이터의 각각에 포함되는 대응하는 텍스쳐 데이터나 모델 데이터의 각 폴리곤의 정보 등을, 렌더링할 게임 화면의 시점 정보에 따라 변환함으로써 생성된다. 즉, Forward Rendering에서는 각 렌더링 오브젝트에 대해서 이 렌더링 오브젝트의 텍스쳐 데이터를 고려하여 하나하나에 음영 처리를 실행하는 데 반해, Deferred Rendering의 전단의 렌더링 처리에서는, 렌더링할 게임 화면의 전체를 하나의 렌더링 오브젝트로서 파악한 중간값 맵을 생성함으로써, 후단의 렌더링 처리에서 게임 화면의 전체를 대상으로 하여 음영 처리를 행할 수 있어, 연산의 중복을 저감할 수 있다.
또한, 심도 맵에 대해서는, 중간값 맵의 생성에 있어서 각 렌더링 오브젝트의 렌더링 시에, 픽셀 단위로 렌더링 오브젝트의 전후 관계에 의한 차폐(오클루젼)를 고려하여 종래의 방법으로 생성된다.
이와 같이 전단의 렌더링 처리가 완료되면, 서버 CPU(201)는 S403 내지 S408의 처리와, S409 내지 S412의 처리를 병행하여 실행한다.
S403에서, 서버 CPU(201)는 전단의 렌더링 처리에서 생성된 중간값 맵을, 렌더링하고 있는 프레임(현프레임)을 식별하는 프레임 ID, 및 S401에서 갱신된 시점 정보(렌더링 시점 정보)에 관련시켜 서버 RAM(203)에 저장한다. 본 실시형태의 동화상 배포 서버(200)는 PC(100)에 제공하는 부호화 동화상 데이터의 각 프레임에 대해서, 렌더링한 게임 화면의 생성에 이용된 심도 맵을 서버 RAM(203)에 저장하고, 적어도 다음 프레임의 부호화 처리가 완료될 때까지 유지하는 것으로 한다.
S404에서, 서버 CPU(201)는 복수 종류의 중간값 맵 중 심도 맵을 부호화 판단용으로 선택하고, 정해진 화소수(예컨대 16 픽셀×16 픽셀)의 블록으로 분할한다. 전술한 바와 같이 중간값 맵의 각각은 최종적으로 PC(100)에 제공하는 게임 화면에 대응한다. 이 때문에 본 실시형태에서는, 제공하는 게임 화면의 각 블록의 동화상 부호화에 있어서 프레임간 예측을 행할지의 여부를 판단하기 위해, 복수 종류의 중간값 맵 중 심도 맵을 이용한다.
S405에서, 서버 CPU(201)는 심도 맵의 각 블록에 대해서 현프레임의 하나 앞의 프레임(전프레임)의 게임 화면에 따른 전단의 렌더링 처리에서 생성된 심도 맵으로부터, 가장 상관이 높다고 생각되는 영역을 특정한다.
우선 서버 CPU(201)는 대상 블록의 4 코너의 좌표에 렌더링되어 있는 렌더링 오브젝트(블록 특정 오브젝트)의 3차원 좌표를 특정한다. 구체적으로는 서버 CPU(201)는 심도 버퍼로부터 대상 블록의 4 코너의 좌표의 각각에 있어서의 심도값을 취득한다. 다음에 서버 CPU(201)는 렌더링 시점 정보와 대상 블록의 4 코너의 좌표로부터, 블록 특정 오브젝트에의 방향을 특정한다. 그리고 서버 CPU(201)는 렌더링 시점 정보, 특정한 블록 특정 오브젝트에의 방향, 및 심도값으로부터, 블록 특정 오브젝트의 3차원 좌표를 특정한다.
다음에 서버 CPU(201)는 블록 특정 오브젝트의 3차원 좌표를, 전프레임의 게임 화면의 렌더링에 이용된 시점 정보(과거 시점 정보)를 이용하여, 전프레임의 게임 화면에 있어서의 스크린 좌표로 변환한다. 이와 같이 함으로써, 전프레임의 게임 화면에 있어서의 가장 상관이 높다고 생각되는 영역의 4 코너의 좌표를 특정할 수 있다. 즉, 본 실시형태에서는, 도 10에 도시되는 바와 같이 대상 블록과 동일한 렌더링 오브젝트가 표현되어 있는 영역, 즉 상관이 높은 렌더링 내용일 가능성이 높은 영역을 3차원 씬으로 역변환하여 특정할 수 있다.
S406에서, 서버 CPU(201)는 S305에서 추정된 가장 상관이 높다고 생각되는 영역에 대해서, 상관도를 산출한다. 구체적으로는 서버 CPU(201)는 전프레임의 전단의 렌더링 처리에서 생성된 심도 맵(과거 심도 맵)을 서버 RAM(203)으로부터 판독한다. 그리고 서버 CPU(201)는 추정된 가장 상관이 높다고 생각되는 영역의 화상을 그 과거 심도 맵으로부터 추출하고, 이 화상에 대해 예컨대 과거 시점 정보와 렌더링 시점 정보로부터 생성된 변환 매트릭스를 곱함으로써, 대상 블록과 동일한 화소수의 참조 화상을 생성한다. 그리고 서버 CPU(201)는, 예컨대 화상간의 유클리드 거리를 산출함으로써, 상기 참조 화상과 대상 블록의 화상과의 상관도를 산출한다.
또한, 본 실시형태의 동화상 배포 서버(200)에서는 후술하는 부호화 처리에서 프레임간 부호화를 행하는 경우에 현프레임의 하나 앞의 프레임으로부터 취득한 참조 데이터를 사용하여, 현프레임의 화상과 참조 데이터와의 차분 화상을 부호화한다. 이 때문에, 부호화 판단도 현프레임의 하나 앞의 프레임에 대해서 행하는 것으로서 설명하지만, 프레임간 부호화에서 참조되는 과거의 프레임은 현프레임의 하나 앞의 프레임에 한정되지 않고, 현프레임보다 전의 프레임이 이용되어도 된다.
S407에서, 서버 CPU(201)는 부호화 판단용의 심도 맵의 각 블록에 대해서 프레임내 부호화를 행할지, 혹은 프레임간 부호화를 행할지를 결정한다(부호화 판단). 구체적으로는 서버 CPU(201)는 각 블록과 가장 상관이 높다고 생각되는 과거 심도 맵의 영역에 대해서 산출된 유사도(예컨대 유클리드 거리의 역수)가 미리 설정된 임계값 이상인지의 여부를 판단한다. 그리고 서버 CPU(201)는 가장 상관이 높다고 생각되는 영역과의 유사도가 임계값 이상인 블록에 대해서는 프레임간 부호화를 행하는 것으로서 결정하고, 유사도가 임계값 미만인 블록에 대해서는 프레임내 부호화를 행하는 것으로서 결정한다.
S408에서, 서버 CPU(201)는 부호화 판단용의 심도 맵의 각 블록 중, 프레임간 부호화를 행하는 것으로서 결정된 블록에 대해서, 과거 심도 맵의 가장 상관이 높다고 생각되는 영역으로부터의 움직임 벡터를 산출한다. 그리고 서버 CPU(201)는 이 프레임간 부호화를 행하는 것으로서 결정된 블록을 특정하는 특정 정보에 관련시켜, 이 블록에 대한 움직임 벡터의 정보를 서버 통신부(208)에 전송하여, 전처리 정보로서 PC(100)에 대하여 송신시킨다.
또한, 본 단계에서 산출되는 움직임 벡터는, 전프레임으로부터의 시점의 이동 방향에 따라서는 2차원의 움직임 벡터가 되는 것에 한정되는 것은 아니다. 즉, 예컨대 특정한 렌더링 오브젝트에 대하여 근접하는, 혹은 멀리 떨어뜨리는 방향으로 시점이 이동한 경우에는, 2차원의 벡터에 더하여, 확대/축소하는 배율의 정보가 포함되어 있어도 좋다. 또한 예컨대 시점이 롤 방향으로 회전한 경우에는, 2차원의 벡터에 더하여 회전용 매트릭스가 포함되어 있어도 좋다. 또한 예컨대 시점이 피치 방향 혹은 요(yaw) 방향으로 회전한 경우에는, 2차원의 벡터가 아니라 3차원의 벡터가 움직임 벡터로서 이용되어도 좋다. 또한, 참조 데이터로서 이용하는 전프레임 화면의 영역을 특정하는 정보는 이것에 한정되지 않으며, 예컨대 직접 영역의 정점 좌표를 지정하는 정보 등, 영역을 특정할 수 있는 정보이면 어떠한 형식이어도 좋다.
한편, 서버 CPU(201)는 S403 내지 S408의 처리와 병행하여 실행하는 처리에서는, S409에서 서버 GPU(204)에, S401에서 갱신된 시점 정보에 대응하는 게임 화면에 대한 후단의 렌더링 처리를 실행시키고, 최종적으로 PC(100)에 제공하는 게임 화면(제공 게임 화면)을 생성시킨다. 구체적으로는 서버 CPU(201)는 렌더링되는 게임 화면에 대한 3차원 씬에 적용되는 광원을 특정하고, 상기 광원의 속성이나 강도 등의 정보를 서버 GPU(204)에 전송한다. 서버 GPU(204)는 전단의 렌더링 처리에서 생성된 각종 중간값 맵을 이용해서, 각종 광원을 통합하여 음영 처리(광원 이펙트의 적용)하면서, 재차 게임 화면에 포함되는 렌더링 오브젝트를 렌더링하고, 제공 게임 화면을 서버 VRAM(205)의 프레임 버퍼에 생성한다.
S410에서, 서버 CPU(201)는 S407의 처리인 현프레임에 대한 부호화 판단 처리가 완료되었는지의 여부를 판단한다. 서버 CPU(201)는 부호화 판단 처리가 완료되었다고 판단한 경우에는 처리를 S411로 이행시키고, 완료되지 않았다고 판단한 경우에는 본 단계의 처리를 반복한다.
S411에서, 서버 CPU(201)는 제공 게임 화면을 S404에서의 블록 분할과 마찬가지로 블록 분할해서, 부호화 처리를 실행하여 부호화 동화상 데이터를 생성한다.
〈부호화 처리〉
여기서, 본 실시형태의 동화상 배포 서버(200)에서 실행되는 부호화 처리에 대해서, 도 6을 참조하여 상세하게 설명한다.
S601에서, 서버 CPU(201)는 제공 게임 화면의 블록 중, 부호화가 이루어져 있지 않은 블록을 선택한다.
S602에서, 서버 CPU(201)는 부호화 판단용의 심도 맵에 대해서 행해진 부호화 판단 처리의 결과를 참조하여, 선택 블록에 대해서 프레임간 부호화를 행할지의 여부를 판단한다. 서버 CPU(201)는 선택 블록에 대해서 프레임간 부호화를 행한다고 판단한 경우에는 처리를 S603으로 이행시키고, 프레임간 부호화를 행하지 않는다고 판단한 경우에는 처리를 S605로 이행시킨다.
S603에서, 서버 CPU(201)는 현프레임의 하나 앞의 프레임에서 렌더링된 게임 화면(전프레임 화면) 내의 선택 블록에 대응하는 영역의 화상으로부터, 프레임간 부호화에 사용하는 참조 화상(참조 데이터)을 생성한다. 구체적으로는 서버 CPU(201)는 우선, 전프레임에서 PC(100)에 제공된 게임 화면(과거 게임 화면)을 예컨대 서버 RAM(203)으로부터 판독한다. 그리고 서버 CPU(201)는 선택 블록에 대해서 특정된 가장 상관이 높은 영역에 대응하는 영역의 화상을, 참조 화상으로서 과거 게임 화면으로부터 추출한다.
S604에서, 서버 CPU(201)는 선택 블록의 화상과 참조 화상간의 차분을 차분 화상으로서 생성하여, 부호화 대상 화상으로서 설정한다. 구체적으로는 서버 CPU(201)는 선택 블록의 화상의 각 화소값으로부터, 참조 화상의 대응하는 화소의 화소값을 감산함으로써 차분 화상(pblock)을 생성한다.
한편, S602에서 프레임간 부호화를 행하지 않는다고 판단한 경우, 서버 CPU(201)는 S605에서, 선택 블록의 화상을 부호화 대상 화상으로서 설정한다.
S606에서, 서버 CPU(201)는 부호화 대상 화상을 서버 부호화부(206)에 전송하고, DCT 처리를 실행시켜 주파수 영역의 데이터로 변환시킨다. 또한 서버 CPU(201)는 변환에 의해 얻어진 주파수 영역의 데이터에 대하여 서버 부호화부(206)에 런렝스 부호화를 행하게 함으로써, 선택 블록의 부호화 데이터를 생성시킨다.
S607에서, 서버 CPU(201)는 렌더링된 게임 화면의 모든 블록에 대해서 S602 내지 S606의 처리를 실행하였는지의 여부를 판단한다. 서버 CPU(201)는 아직 처리가 실행되지 않은 블록이 존재한다고 판단한 경우에는 처리를 S601로 복귀시키고, 존재하지 않는다고 판단한 경우에는 본 부호화 처리를 완료한다.
서버 CPU(201)는 렌더링된 게임 화면으로부터 부호화 동화상 데이터를 생성한 후, S412에서 이 부호화 동화상 데이터를 서버 통신부(208)에 전송하여 PC(100)에 대하여 송신시키고, 현프레임의 동화상 배포 처리를 완료한다.
이와 같이, 본 실시형태의 동화상 배포 서버(200)에서는, PC(100)에 대하여 제공하는 게임 화면의 생성이 다단의 렌더링 처리에 의해 행해지는 것을 이용하며, 최종적인 게임 화면의 렌더링이 행해지는 후단의 렌더링 처리중에, 전단의 렌더링 처리에서 생성된 심도 맵을 이용하여, 부호화 블록과 가장 상관이 높다고 생각되는 영역을 좌표 변환에 의해 추정할 수 있다. 이 때문에, 최종적인 게임 화면을 렌더링한 후에 부호화 방법을 결정하는 일없이 부호화 처리로 이행시킬 수 있기 때문에, 게임 화면의 PC(100)에의 제공에 요하는 시간을 단축할 수 있다. 또한, 무작위식으로 상관도를 산출하여 가장 상관이 높다고 생각되는 영역을 특정할 필요가 없어, 후단의 렌더링 처리중에 전체 부호화 블록에 대한 상관 연산에 따른 연산량을 저감할 수 있다.
《동화상 재생 처리》
다음에, 본 실시형태의 PC(100)에서 실행되는 동화상 재생 처리에 대해서, 도 7의 흐름도를 이용하여 구체적인 처리를 설명한다. 이 흐름도에 대응하는 처리는 CPU(101)가, 예컨대 ROM(102)에 기억된 대응하는 처리 프로그램을 판독하고, RAM(103)에 전개하여 실행함으로써 실현시킬 수 있다. 또한, 본 동화상 재생 처리는, 예컨대 PC(100)에 있어서 동화상 배포 서버(200)가 제공하는 게임 콘텐츠를 수신하는 애플리케이션이 실행되었을 때에 개시되며, 게임의 1 프레임마다 반복 실행되는 것으로서 설명한다.
S701에서, CPU(101)는 통신부(105)가 동화상 배포 서버(200)로부터 전처리 정보를 수신하였는지의 여부를 판단한다. CPU(101)는 동화상 배포 서버(200)로부터 전처리 정보를 수신하였다고 판단한 경우에는 처리를 S702로 이행시키고, 수신하지 않았다고 판단한 경우에는 본 단계의 처리를 반복한다.
S702에서, CPU(101)는 전처리 정보를 참조하여, 현프레임의 게임 화면의 복호에 필요한 참조 데이터를 준비하는 복호 전처리를 실행한다.
〈복호 전처리〉
여기서, 본 실시형태의 PC(100)에서 실행되는 복호 전처리에 대해서, 도 8의 흐름도를 이용하여 상세하게 설명한다.
S801에서, CPU(101)는 현프레임에서 수신하는 게임 화면의 블록 중, 사용된 부호화 방식이 판정되지 않은 블록을 선택한다.
S802에서, CPU(101)는 전처리 정보를 참조하여, 선택 블록에 대해서 프레임간 부호화가 이루어질지의 여부를 판단한다. 구체적으로는 CPU(101)는 선택 블록을 특정하는 정보가 전처리 정보에 포함될지의 여부를 판단한다. CPU(101)는 선택 블록에 대해서 프레임간 부호화가 이루어졌다고 판단한 경우에는 처리를 S803으로 이행시키고, 이루어지지 않았다고 판단한 경우에는 처리를 S804로 이행시킨다.
S803에서, CPU(101)는 현프레임의 하나 앞의 프레임에서 복호한 게임 화면(전프레임 화면)으로부터, 선택 블록에 대한 복호에 사용하는 참조 화상(참조 데이터)을 추출한다. 구체적으로는 CPU(101)는 전처리 정보에 포함되는 선택 블록에 대해서 관련시키진 움직임 벡터를 참조하여, 전프레임 화면에 있어서의 선택 블록의 복호에서 참조되는 영역을 특정하여, 이 영역의 화상을 참조 화상으로서 추출한다.
S804에서, CPU(101)는 현프레임에서 수신하는 게임 화면의 모든 블록에 대해서 S802 내지 S803의 처리를 실행하였는지의 여부를 판단한다. 서버 CPU(201)는 아직 처리가 실행되지 않은 블록이 존재한다고 판단한 경우에는 처리를 S801로 복귀시키고, 존재하지 않는다고 판단한 경우에는 본 복호 전처리를 완료한다.
이와 같이 본 실시형태의 PC(100)에서는, 부호화 동화상 데이터 전에 수신한 전처리 정보를 참조함으로써, 부호화 동화상 데이터의 수신 후에 행해지는 복호 처리에 앞서, 복호 처리에서 이용되는 참조 데이터를 준비할 수 있다.
S703에서, CPU(101)는 통신부(105)가 동화상 배포 서버(200)로부터 부호화 동화상 데이터를 수신하였는지의 여부를 판단한다. CPU(101)는 동화상 배포 서버(200)로부터 부호화 동화상 데이터를 수신하였다고 판단한 경우에는 처리를 S704로 이행시키고, 수신하지 않았다고 판단한 경우에는 본 단계의 처리를 반복한다.
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단계의 렌더링 처리에 의해 제공 화면을 렌더링한다. 이 렌더링 처리는 후단의 렌더링 처리에 있어서, 전단의 렌더링 처리에서 생성된 심도 맵을 참조하여 제공 화면의 렌더링이 이루어진다. 동화상 배포 서버는 제1 화면의 후단의 렌더링 처리의 실행중에 심도 맵을 부호화 판단용으로 선택하고, 설정된 블록마다 제1 화면보다 전에 렌더링된 제2 화면에 대해서 생성된 심도 맵을 참조하여 프레임간 부호화를 행할지의 여부를 판단한다. 동화상 배포 서버는 제1 화면의 후단의 렌더링 처리의 종료후, 그 판단 결과에 따라 부호화를 행하여 외부 장치에 부호화 동화상 데이터를 송신한다. 또한 이 판단 결과는 제1 화면의 부호화 동화상 데이터의 생성이 완료되기 전에 외부 장치에 송신된다.
[실시형태 2]
그런데, 실제로 전술한 바와 같이 통신을 통해 게임 콘텐츠를 제공하는 경우, 제공에 요하는 인프라 배치에는 정해진 비용이 필요하게 된다. 이것은 콘텐츠를 제공하는 동화상 배포 서버(200)의 고장이나 접속 단말수의 증가에 따른 제공 품질의 저하 등의 리스크를 상정하여, 내장해성 및 내응답성의 관점에서 복수의 동화상 배포 서버(200)가 설치되는 것에 따른 것이다. 또한, 일반적으로 클라이언트 기기에 대하여 가장 지연이 적은, 즉 리스폰스가 적합한 서버는 전송로의 관점에서 지리적으로 가장 가까운 서버라고 생각된다. 이러한 점에 있어서, 특히 월드 와이드한 콘텐츠 제공을 행하는 경우, 제공 서버는 복수의 나라에, 또한 타임 존의 존재를 생각하면 복수의 서버를 하나의 나라에, 데이터 센터로서 배치하는 것을 생각할 수 있다. 즉, 인프라 배치에는 많은 비용이 상정되기 때문에, 데이터 센터의 제공은 콘텐츠마다 행하는 것은 아니며, 복수의 콘텐츠에서 데이터 센터의 리소스를 공용할 수 있도록 설계되는 것이 현실적이다.
한편으로, 이러한 서비스의 이용에 한정되지 않고, 네트워크 이용이 집중되는 시간대는 각국에서 동일한 경향이 있다. 구체적으로는, 일본에 있어서의 네트워크 이용의 트래픽 피크는 19시부터 23시의 사이에 존재한다. 즉, 전술한 바와 같이 타임 존을 고려하여 데이터 센터를 배치하였다고 해도, 트래픽이 증대하는 시간대에서는, 이 타임 존에 존재하는 클라이언트 기기가 지리적으로 가장 가까운 데이터 센터에 집중하는 것을 생각할 수 있다.
본 실시형태에서는, 제공하는 콘텐츠에 대해서 요구되는 리얼 타임성, 및 콘텐츠에 대해 실시형태 1과 같은 적어도 2단계의 렌더링 처리를 행할지의 여부에 따라, 적합하게 데이터 센터 사이의 로드 밸런싱을 행하는 방법에 대해서 설명한다.
《동화상 배포 시스템의 구성》
도 11은 본 실시형태의 동화상 배포 시스템의 시스템 구성을 도시한 도면이다. 또한, 본 실시형태의 동화상 배포 시스템에 있어서, PC(100) 및 동화상 배포 서버(200)의 각각의 구성은 전술한 실시형태 1과 동일한 것으로서, 설명을 생략하는 것으로 한다.
본 실시형태의 동화상 배포 시스템은 중앙 서버(1100)를 포함한다. 중앙 서버(1100)는 네트워크(300)를 통해 적어도 PC(100)와 통신 가능하게 접속된다. 중앙 서버(1100)는 PC(100)의 각각이 콘텐츠 제공시에 접속하여야 할 동화상 배포 서버(200)를 결정하고, 이 서버의 정보를 대응하는 PC(100)에 제공한다. 또한 본 실시형태에서는, 중앙 서버(1100)는 접속하여야 할 데이터 센터로서 하나의 동화상 배포 서버(200)를 특정하는 정보를 PC(100)에 제공하는 것으로서 설명하지만, 본 발명의 실시는 이것에 한정되는 것은 아니다. 예컨대, 데이터 센터가 복수의 동화상 배포 서버(200)를 가지고 구성되는 경우에는, 중앙 서버(1100)는 그 중 하나의 동화상 배포 서버(200)를 특정하는 정보를 제공하는 구성이어도 좋고, 단순히 데이터 센터[동일 로케이션에 존재하는 동화상 배포 서버(200)를 통합 관리하는 단위]를 특정하는 정보를 제공하는 구성이어도 좋다. 후자의 경우, 예컨대 데이터 센터에는, 콘텐츠 제공 요구에 대해, 제공을 행하는 센터 내의 적절한 동화상 배포 서버(200)를 할당하여, 대응하는 PC(100)를 접속시키는 관리 장치를 갖고 있으면 좋다.
〈중앙 서버(1100)의 구성〉
도 12는 본 실시형태에 따른 중앙 서버(1100)의 기능 구성을 도시한 블록도이다.
중앙 CPU(1101)는 중앙 서버(1100)가 갖는 각 블록의 동작을 제어한다. 구체적으로는 중앙 CPU(1101)는 중앙 ROM(1102)에 기억되어 있는 각 블록의 동작 프로그램을 판독하고, 중앙 RAM(1103)에 전개하여 실행함으로써 각 블록의 동작을 제어한다.
중앙 ROM(1102)은, 예컨대 재기록 가능한 비휘발성 메모리이다. 중앙 ROM(1102)은 중앙 서버(1100)가 갖는 각 블록의 동작 프로그램과 함께, 각 블록의 동작에 필요한 파라미터 등을 저장한다. 또한 본 실시형태에서는 중앙 ROM(1102)은 네트워크(300) 상의 동화상 배포 서버(200)가 제공할 수 있는 복수의 게임 콘텐츠의 각각에 대해서, 적어도
·콘텐츠에 대해서 요구되는, 사용자의 조작 입력에 대한 리스폰스 성능의 정보
·콘텐츠의 렌더링에 있어서 Deferred Rendering이 사용되는지의 여부의 정보
를 관리 정보로서 기억한다. 중앙 RAM(1103)은 휘발성 메모리이다. 중앙 RAM(1103)은 각 블록의 동작 프로그램의 전개 영역으로서 뿐만 아니라, 각 블록의 동작에 있어서 출력된 중간 데이터 등을 일시적으로 저장하는 저장 영역으로서도 이용된다.
중앙 통신부(1104)는 중앙 서버(1100)가 갖는 통신 인터페이스이다. 중앙 통신부(1104)는 네트워크(300)를 통해 접속한, PC(100) 등의 다른 기기와의 사이에서 데이터를 송수신한다. 통신부(105) 및 서버 통신부(208)와 마찬가지로, 중앙 통신부(1104)는 데이터의 송수신 시에 필요한 데이터 변환 등을 행한다.
《개시시 처리》
이하, 게임 콘텐츠의 제공 요구를 개시할 때에, 본 실시형태의 PC(100)에서 실행되는 개시시 처리에 대해서, 도 13의 흐름도를 참조하여 상세하게 설명한다. 또한, 본 개시시 처리는, 예컨대 PC(100)에 있어서 복수의 게임 콘텐츠 서비스 제공을 받을 수 있는 포털 애플리케이션이 실행되었을 때에 개시되는 것으로서 설명한다.
S1301에서, CPU(101)는 게임 콘텐츠를 제공하는 동화상 배포 서버(200)에 접속하기 위한 정보인 접속처 정보를 중앙 서버(1100)에 요구한다. 접속처 정보는, 예컨대 서비스 제공을 행하는 동화상 배포 서버(200)의 IP 어드레스 리스트여도 좋고, 미리 중앙 서버(1100)가 중앙 ROM(1102)에 유지하고 있는 정보여도 좋다.
S1302에서, CPU(101)는 접속처 정보의 제공 요구에 따라 수신한 접속처 정보를 참조하여, 네트워크(300) 상에 존재하는 복수의 동화상 배포 서버(200)의 각각에 대하여 접속 테스트를 실행한다. 접속 테스트에서는, CPU(101)는 대상인 동화상 배포 서버(200)와의 통신에서 생기는 통신 지연량을 계측하고, 이 서버의 식별 정보에 관련시켜 통신 지연량의 정보를 리스트로서 RAM(103)에 기억한다. CPU(101)는 접속처 정보에 포함되는 동화상 배포 서버(200)에 대해서 통신 지연량의 계측이 종료되면, 처리를 S1303으로 이행시킨다.
S1303에서, CPU(101)는 제공 요구를 개시하는 게임 콘텐츠의 선택이 이루어졌는지의 여부를 판단한다. 구체적으로는 CPU(101)는 사용자가 제공을 원하는 게임 콘텐츠를 선택함으로써 출력되는 제어 신호를 조작 입력부(107)로부터 수신하였는지의 여부에 따라 판단한다. CPU(101)는 제공 요구를 개시하는 게임 콘텐츠의 선택이 이루어졌다고 판단한 경우에는 처리를 S1304로 이행시키고, 이루어지지 않았다고 판단한 경우에는 본 단계의 처리를 반복한다.
S1304에서, CPU(101)는 제공 요구하는 게임 콘텐츠를 지정하는 정보와, S1302에서 생성된 동화상 배포 서버(200)마다의 통신 지연량의 리스트를 중앙 서버(1100)에 송신한다.
S1305에서, CPU(101)는 중앙 서버(1100)로부터, 게임 콘텐츠를 제공하는 동화상 배포 서버(200)를 지정하는 서버 지정 정보를 수신하였는지의 여부를 판단한다. 서버 지정 정보는 중앙 서버(1100)에 있어서 후술하는 제공 서버 결정 처리가 실행됨으로써 생성된다. CPU(101)는 지정 정보를 수신하였다고 판단한 경우에는 처리를 S1306으로 이행시키고, 수신하지 않았다고 판단한 경우에는 본 단계의 처리를 반복한다.
S1306에서, CPU(101)는 서버 지정 정보에 의해 지정되는 동화상 배포 서버(200)에 대하여, 선택된 게임 콘텐츠의 제공 요구를 송신함으로써, 동화상 배포 처리를 동화상 배포 서버(200)에 개시시킬 수 있다.
《제공 서버 결정 처리》
다음에, 본 실시형태의 중앙 서버(1100)에서 실행된다, PC(100)에서 지정된 게임 콘텐츠를 제공하는 동화상 배포 서버(200)를 결정하는 제공 서버 결정 처리에 대해서, 도 14의 흐름도를 참조하여 상세하게 설명한다. 또한, 본 제공 서버 결정 처리는 중앙 서버(1100)가 기동되었을 때에 개시되는 것으로서 설명한다.
S1401에서, 중앙 CPU(1101)는 네트워크(300) 상의 PC(100)로부터, 제공 요구하는 게임 콘텐츠를 지정하는 정보(콘텐츠 지정 정보)와, 이 PC(100)와 각 동화상 배포 서버(200)의 통신 지연량의 리스트를 수신하였는지의 여부를 판단한다. 중앙 CPU(1101)는 콘텐츠 지정 정보 및 통신 지연량 리스트를 수신하였다고 판단한 경우에, 이 정보를 송신한 PC(100)(대상 PC)를 식별하는 정보와 함께 중앙 RAM(1103)에 저장하고, 처리를 S1402로 이행시킨다. 정보를 송신한 PC(100)를 식별하는 정보는, 예컨대 이 PC의 IP 어드레스여도 좋다. 또한 중앙 CPU(1101)는 콘텐츠 지정 정보 및 통신 지연량 리스트를 수신하지 않았다고 판단한 경우에는 본 단계의 처리를 반복한다.
S1402에서, 중앙 CPU(1101)는 콘텐츠 지정 정보에 의해 지정되는 콘텐츠(지정 콘텐츠)가, 사용자의 조작 입력에 대하여 리스폰스가 높은 것이 요구되는 리얼 타임성이 높은 콘텐츠로서 지정되어 있는지의 여부를 판단한다. 구체적으로는 중앙 CPU(1101)는 중앙 ROM(1102)에 기억되어 있는 관리 정보를 참조하여, 지정 콘텐츠가 리얼 타임성이 높은 콘텐츠로서 지정되어 있는지의 여부를 판단한다. 중앙 CPU(1101)는 지정 콘텐츠가 리얼 타임성이 높은 콘텐츠로서 지정되어 있다고 판단한 경우에는 처리를 S1403으로 이행시키고, 지정되어 있지 않다고 판단한 경우에는 처리를 S1406으로 이행시킨다.
S1403에서, 중앙 CPU(1101)는 관리 정보를 참조하여, 지정 콘텐츠가 Deferred Rendering을 사용하여 제공 화면을 렌더링하는 콘텐츠인지의 여부를 판단한다. 중앙 CPU(1101)는 지정 콘텐츠가 Deferred Rendering을 사용하여 제공 화면을 렌더링하는 콘텐츠라고 판단한 경우에는 처리를 S1405로 이행시키고, 사용하지 않고 제공 화면을 렌더링하는 콘텐츠라고 판단한 경우에는 처리를 S1404로 이행시킨다.
S1404에서, 중앙 CPU(1101)는 수신한 통신 지연량 리스트를 참조하여, 대상 PC와의 데이터 통신에 있어서의 통신 지연량이 정해진 임계값(제1 임계값)보다 낮은 하나의 동화상 배포 서버(200)를 선택한다. 그리고 중앙 CPU(1101)는 선택한 동화상 배포 서버(200)를 특정하는 정보를 지정 정보로서 대상 PC에 송신하고, 처리를 S1401로 복귀시킨다.
한편, S1403에서 지정 콘텐츠가 Deferred Rendering을 사용하여 제공 화면을 렌더링하는 콘텐츠라고 판단한 경우, 중앙 CPU(1101)는 S1405에서, 수신한 통신 지연량 리스트를 참조하여, 통신 지연량이 정해진 임계값(제2 임계값)보다 낮으며, 제1 임계값보다 높은 하나의 동화상 배포 서버(200)를 선택한다. 이것은, 영향 화면의 생성에 Deferred Rendering이 사용되는 경우에는, 실시형태 1에서 설명한 바와 같이 전단의 렌더링 처리에서 생성된 심도 버퍼를 이용함으로써 부호화 및 복호에 요하는 처리 시간을 단축할 수 있는 것에 따른 것이다. 즉, 리얼 타임성이 요구되는 콘텐츠라도, 적어도 2단계의 렌더링 처리를 행하여 제공 화면이 생성되는 경우에는 처리의 단축을 기대할 수 있기 때문에, 1단계의 렌더링 처리를 행하는 콘텐츠보다는 통신 지연량을 허용할 수 있다. 중앙 CPU(1101)는 이와 같이 하여 선택한 동화상 배포 서버(200)를 특정하는 정보를 지정 정보로서 대상 PC에 송신하고, 처리를 S1401로 복귀시킨다.
또한 S1402에서 지정 콘텐츠가 리얼 타임성이 높은 콘텐츠로서 지정되어 있지 않다고 판단한 경우, 중앙 CPU(1101)는 S1406에서, 수신한 통신 지연량 리스트를 참조하여, 통신 지연량이 정해진 임계값(제3 임계값)보다 낮으며, 제2 임계값보다 큰 하나의 동화상 배포 서버(200)를 선택한다. 그리고 중앙 CPU(1101)는 선택된 동화상 배포 서버(200)를 특정하는 정보를 지정 정보로서 대상 PC에 송신하고, 처리를 S1401로 복귀시킨다.
또한, 제1 임계값 및 제2 임계값은 콘텐츠에 대해서 요구되는 리얼 타임성을 만족시키도록, 또한 제3 임계값은 허용 가능한 통신 지연량에 기초하여 결정된다. 3개의 임계값은 콘텐츠마다 정해지는 것이어도 좋고, 콘텐츠에 상관없이 공통으로 정해지는 것이어도 좋다. 또한 3개의 임계값은 대상 PC가 존재하는 지리적인 위치에 따라 정해지는 것이어도 좋다.
이와 같이, 본 실시형태의 동화상 배포 시스템에서는, PC(100)에서 선택된 콘텐츠를 제공하는 동화상 배포 서버(200)를, 서버와의 통신 지연량 및 콘텐츠에 요구되는 리얼 타임성에 따라 결정할 수 있다. 또한, 콘텐츠가 적어도 2단계의 렌더링 처리에 의해 제공 화면을 생성하는 콘텐츠인지의 여부에 따라, 적합한 동화상 배포 서버(200)를 선택함으로써, 효율적으로 로드 밸런싱을 행할 수 있다.
또한, 본 실시형태에서는 서버와의 통신 지연량 및 콘텐츠에 요구되는 리얼 타임성에 따라, 콘텐츠를 제공하는 서버를 결정하는 것으로서 설명하였지만, 본 발명의 실시는 이것에 한정되는 것이 아니다. 예컨대, 콘텐츠의 제공 요구를 송신한 클라이언트 기기 및 서버의 지리적인 위치에 따라 결정 기준을 좁히는 등, 복합적인 조건을 더 조합하여 동화상 배포 서버(200)를 결정하는 구성이어도 좋다.
본 발명은 상기실시의 형태에 제한되는 것이 아니며, 본 발명의 정신 및 범위에서 이탈하는 일없이, 여러가지 변경 및 변형이 가능하다. 따라서, 본 발명의 범위를 공표하기 위해, 이하의 청구항을 첨부한다.
본원은 2012년 4월 12일 제출한 일본 특허 출원 제2012-091357호를 기초로 하여 우선권을 주장하는 것이며, 그 기재 내용의 전부를 여기에 원용한다.

Claims (13)

  1. 렌더링될 화면을 결정하기 위해 시점 정보를 순차 취득하는 취득 수단;
    상기 취득 수단에 의해 취득된 상기 시점 정보를 이용하여, 적어도 2단계의 렌더링 처리에 의해 배포(distribution) 화면을 렌더링하는 렌더링 수단으로서, 상기 렌더링 수단은, 상기 적어도 2단계의 렌더링 처리 중 어느 하나인 선행 단계의 렌더링 처리에서는, 상기 적어도 2단계의 렌더링 처리 중 상기 선행 단계의 렌더링 처리에 후속하는 후속 단계의 렌더링 처리에서 참조될 심도 맵(Depth map)을 포함하는 특정 채널의 중간값 맵을 생성하고, 상기 후속 단계의 렌더링 처리에서는, 그 중간값 맵을 참조하여 상기 배포 화면을 렌더링하는 것인, 상기 렌더링 수단;
    제1 화면에 대한 상기 후속 단계의 렌더링 처리의 실행 중에, 상기 제1 화면에 대해 생성된 상기 중간값 맵 중 상기 심도 맵을 취득하여, 상기 심도 맵을 복수의 블록으로 분할하는 분할 수단;
    상기 복수의 블록 각각에 대해서, 상기 제1 화면보다 전에 렌더링된 제2 화면에 대해 생성된 심도 맵 상의 블록에 대응하는 영역을 특정하는 특정 수단;
    상기 제1 화면에 대한 상기 후속 단계의 렌더링 처리의 종료 후, 상기 제1 화면을 부호화하여 부호화 동화상 데이터를 생성하는 부호화 수단으로서, 상기 복수의 블록 중, 상기 특정 수단에 의해 특정된 상기 대응하는 영역과의 유사도가 임계값 이상인 블록에 대해서는, 상기 부호화 수단이 상기 제1 화면의 그 블록의 화상과 상기 제2 화면의 상기 대응하는 영역의 화상 사이에서 프레임간 부호화(inter-frame coding)를 행하며, 상기 복수의 블록 중, 상기 특정 수단에 의해 특정된 상기 대응하는 영역과의 유사도가 임계값 미만인 블록에 대해서는, 상기 부호화 수단이 상기 제1 화면의 그 블록의 화상을 프레임내 부호화(intra-frame coding)를 행하는 것인, 상기 부호화 수단;
    데이터를 외부 장치에 송신하는 송신 수단
    을 포함하고,
    상기 송신 수단은,
    상기 부호화 수단이 상기 제1 화면의 각 블록의 부호화 동화상 데이터의 생성을 완료하기 전에, 상기 대응하는 영역과의 유사도가 임계값 이상인 블록에 대해서, 그 블록 및 그 블록에 대한 상기 대응하는 영역을 특정하는 특정 정보를 상기 외부 장치에 송신하며,
    상기 부호화 수단이 상기 제1 화면의 각 블록의 부호화 동화상 데이터의 생성을 완료한 후에, 그 부호화 동화상 데이터를 상기 외부 장치에 송신하는 것인, 동화상 배포 서버.
  2. 제1항에 있어서, 상기 특정 수단은,
    상기 복수의 블록 각각에 대해서, 상기 제1 화면의 렌더링에 이용된 제1 시점 정보와 상기 제1 화면에 대해 생성된 심도 맵에 기초하여, 그 블록의 정점(vertex)에 렌더링된 렌더링 오브젝트의 3차원 좌표를 산출하는 제1 산출 수단; 및
    상기 복수의 블록 각각에 대해서, 상기 제2 화면의 렌더링에 이용된 제2 시점 정보를 이용하여, 상기 제1 산출 수단에 의해 산출된 3차원 좌표를 상기 제2 화면 상의 스크린 좌표로 변환하여, 상기 대응하는 영역을 특정하는 변환 수단
    을 포함하는 것인, 동화상 배포 서버.
  3. 제1항 또는 제2항에 있어서, 상기 특정 정보는 3차원 벡터인 것인, 동화상 배포 서버.
  4. 동화상 배포 서버로부터 1 프레임의 화면이 부호화된 부호화 동화상 데이터를 순차 취득하고, 복호(decoding)하여 재생하는 동화상 재생 장치에 있어서,
    제1 화면이 부호화된 제1 부호화 동화상 데이터에 대해서, 프레임간 부호화가 행해진 블록 및 그 블록의 복호에 이용될 참조 데이터를 특정하는 특정 정보를 수신하는 제1 수신 수단;
    상기 제1 수신 수단에 의해 수신된 상기 특정 정보에 기초하여, 상기 프레임간 부호화가 행해진 각 블록에 대한 상기 제1 부호화 동화상 데이터의 복호에 이용될 상기 참조 데이터를, 상기 제1 부호화 동화상 데이터보다 전에 취득된 제2 부호화 동화상 데이터를 복호하여 얻어진 제2 화면으로부터 생성하는 복호 전처리 수단;
    상기 특정 정보의 수신 후, 상기 제1 부호화 동화상 데이터를 상기 동화상 배포 서버로부터 수신하는 제2 수신 수단; 및
    상기 프레임간 부호화가 행해진 각 블록에 대해 상기 복호 전처리 수단에 의해 생성된 상기 참조 데이터를 이용해서, 상기 제2 수신 수단에 의해 수신된 상기 제1 부호화 동화상 데이터를 복호하여 재생하는 복호 수단
    을 포함하는, 동화상 재생 장치.
  5. 제4항에 있어서, 상기 제1 수신 수단에 의한 상기 특정 정보의 수신은, 상기 제2 수신 수단에 의한 상기 제1 부호화 동화상 데이터의 수신보다 전에 행해지는 것인, 동화상 재생 장치.
  6. 동화상 배포 서버의 제어 방법에 있어서,
    상기 동화상 배포 서버의 취득 수단이, 렌더링될 화면을 결정하는 시점 정보를 순차 취득하는 취득 단계;
    상기 동화상 배포 서버의 렌더링 수단이, 상기 취득 단계에서 취득된 상기 시점 정보를 이용하여, 적어도 2단계의 렌더링 처리에 의해 배포 화면을 렌더링하는 렌더링 단계로서, 상기 렌더링 수단은, 상기 적어도 2단계의 렌더링 처리 중 어느 하나인 선행 단계의 렌더링 처리에서는, 상기 적어도 2단계의 렌더링 처리 중 상기 선행 단계의 렌더링 처리에 후속하는 후속 단계의 렌더링 처리에서 참조될 심도 맵을 포함하는 특정 채널의 중간값 맵을 생성하고, 상기 후속 단계의 렌더링 처리에서는, 그 중간값 맵을 참조하여 상기 배포 화면을 렌더링하는 것인, 상기 렌더링 단계;
    상기 동화상 배포 서버의 분할 수단이, 제1 화면에 대한 상기 후속 단계의 렌더링 처리의 실행 중에, 상기 제1 화면에 대해 생성된 상기 중간값 맵 중 상기 심도 맵을 취득하여, 복수의 블록으로 분할하는 분할 단계;
    상기 동화상 배포 서버의 특정 수단이, 상기 복수의 블록 각각에 대해서, 상기 제1 화면보다 전에 렌더링된 제2 화면에 대해 생성된 심도 맵 상의 블록에 대응하는 대응 영역을 특정하는 특정 단계;
    상기 동화상 배포 서버의 부호화 수단이, 상기 제1 화면에 대한 상기 후속 단계의 렌더링 처리의 종료 후, 상기 제1 화면을 부호화하여 부호화 동화상 데이터를 생성하는 부호화 단계로서, 상기 복수의 블록 중, 상기 특정 단계에서 특정된 상기 대응 영역과의 유사도가 임계값 이상인 블록에 대해서는, 상기 부호화 수단이, 상기 제1 화면의 그 블록의 화상과 상기 제2 화면의 상기 대응 영역의 화상 사이에서 프레임간 부호화를 행하며, 상기 복수의 블록 중, 상기 특정 단계에서 특정된 상기 대응 영역과의 유사도가 임계값 미만인 블록에 대해서는, 상기 부호화 수단이 상기 제1 화면의 그 블록의 화상을 프레임내 부호화를 행하는 것인, 상기 부호화 단계; 및
    상기 동화상 배포 서버의 송신 수단이, 데이터를 외부 장치에 송신하는 송신 단계
    를 포함하고,
    상기 송신 수단은, 상기 송신 단계에서,
    상기 부호화 단계에서 상기 제1 화면의 각 블록의 부호화 동화상 데이터의 생성이 완료되기 전에, 상기 복수의 블록 중, 상기 대응 영역과의 유사도가 임계값 이상인 블록에 대해서, 그 블록 및 그 블록에 대한 상기 대응 영역을 특정하는 특정 정보를 상기 외부 장치에 송신하며,
    상기 부호화 단계에서 상기 제1 화면의 각 블록의 부호화 동화상 데이터의 생성이 완료된 후에 그 부호화 동화상 데이터를 상기 외부 장치에 송신하는 것인, 동화상 배포 서버의 제어 방법.
  7. 동화상 배포 서버로부터 1 프레임의 화면이 부호화된 부호화 동화상 데이터를 순차 취득하고, 복호하여 재생하는 동화상 재생 장치의 제어 방법에 있어서,
    상기 동화상 재생 장치의 제1 수신 수단이, 제1 화면을 부호화하여 얻어진 제1 부호화 동화상 데이터에 대해서, 프레임간 부호화가 행해진 블록 및 그 블록의 복호에 이용될 참조 데이터를 특정하는 특정 정보를 수신하는 제1 수신 단계;
    상기 동화상 재생 장치의 복호 전처리 수단이, 상기 제1 수신 단계에서 수신된 상기 특정 정보에 기초하여, 상기 프레임간 부호화가 행해진 각 블록에 대한 상기 제1 부호화 동화상 데이터의 복호에 이용될 상기 참조 데이터를, 상기 제1 부호화 동화상 데이터보다 전에 취득된 제2 부호화 동화상 데이터를 복호하여 얻어진 제2 화면으로부터 생성하는 복호 전처리 단계;
    상기 동화상 재생 장치의 제2 수신 수단이, 상기 제1 부호화 동화상 데이터를 상기 동화상 배포 서버로부터 수신하는 제2 수신 단계; 및
    상기 동화상 재생 장치의 복호 수단이, 상기 프레임간 부호화가 행해진 각 블록에 대해 상기 복호 전처리 단계에서 생성된 상기 참조 데이터를 이용해서, 상기 제2 수신 단계에서 수신된 상기 제1 부호화 동화상 데이터를 복호하여 재생하는 복호 단계
    를 포함하는, 동화상 재생 장치의 제어 방법.
  8. 컴퓨터로 하여금 제6항에 기재된 동화상 배포 서버의 제어 방법을 수행하게 하는 프로그램이 기록된 컴퓨터 판독 가능한 기록 매체.
  9. 컴퓨터로 하여금 제7항에 기재된 동화상 재생 장치의 제어 방법을 수행하게 하는 프로그램이 기록된 컴퓨터 판독 가능한 기록 매체.
  10. 렌더링된 1 프레임의 배포 화면이 부호화된 부호화 동화상 데이터를 송신하는 동화상 배포 서버와, 그 부호화 동화상 데이터를 순차 취득하고, 복호하여 재생하는 동화상 재생 장치를 갖는 동화상 배포 시스템에 있어서,
    상기 동화상 배포 서버는,
    렌더링될 화면을 결정하는 시점 정보를 순차 취득하는 취득 수단;
    상기 취득 수단에 의해 취득된 상기 시점 정보를 이용하여, 적어도 2단계의 렌더링 처리에 의해 상기 배포 화면을 렌더링하는 렌더링 수단으로서, 상기 렌더링 수단은, 상기 적어도 2단계의 렌더링 처리 중 어느 하나인 선행 단계의 렌더링 처리에서는, 상기 적어도 2단계의 렌더링 처리 중 상기 선행 단계의 렌더링 처리에 후속하는 후속 단계의 렌더링 처리에서 참조될 심도 맵을 포함하는 특정 채널의 중간값 맵을 생성하며, 상기 후속 단계의 렌더링 처리에서는, 그 중간값 맵을 참조하여 상기 배포 화면을 렌더링하는 것인, 상기 렌더링 수단;
    제1 화면에 대한 상기 후속 단계의 렌더링 처리의 실행 중에, 상기 제1 화면에 대해 생성된 상기 중간값 맵 중 상기 심도 맵을 취득하여, 복수의 블록으로 분할하는 분할 수단;
    상기 복수의 블록 각각에 대해서, 상기 제1 화면보다 전에 렌더링된 제2 화면의 심도 맵 내의 블록에 대응하는 대응 영역을 특정하는 특정 수단;
    상기 제1 화면에 대한 상기 후속 단계의 렌더링 처리의 종료 후, 상기 복수의 블록 중, 상기 특정 수단에 의해 특정된 상기 대응 영역과의 유사도가 임계값 이상인 블록에 대해서는, 상기 제1 화면의 그 블록의 화상과 상기 제2 화면의 상기 대응 영역의 화상 사이에서 프레임간 부호화를 행하며, 상기 복수의 블록 중, 상기 특정 수단에 의해 특정된 상기 대응 영역과의 유사도가 임계값 미만인 블록에 대해서는, 상기 제1 화면의 그 블록의 화상을 프레임내 부호화를 행함으로써, 제1 부호화 동화상 데이터를 생성하는 부호화 수단;
    데이터를 상기 동화상 재생 장치에 송신하는 송신 수단
    을 포함하고,
    상기 동화상 재생 장치는,
    제1 부호화 동화상 데이터에 대해서, 프레임간 부호화가 행해진 블록 및 그 블록의 복호에 이용될 참조 데이터를 특정하는 특정 정보를 수신하는 제1 수신 수단;
    상기 제1 수신 수단에 의해 수신된 상기 특정 정보에 기초하여, 상기 프레임간 부호화가 행해진 각 블록에 대한 상기 제1 부호화 동화상 데이터의 복호에 이용될 상기 참조 데이터를, 상기 제1 부호화 동화상 데이터보다 전에 상기 동화상 배포 서버로부터 취득된 제2 부호화 동화상 데이터를 복호하여 얻어진 상기 제2 화면으로부터 생성하는 복호 전처리 수단;
    상기 특정 정보의 수신 후, 상기 제1 부호화 동화상 데이터를 상기 동화상 배포 서버로부터 수신하는 제2 수신 수단; 및
    상기 프레임간 부호화가 행해진 각 블록에 대해 상기 복호 전처리 수단에 의해 생성된 상기 참조 데이터를 이용해서, 상기 제2 수신 수단에 의해 수신된 상기 제1 부호화 동화상 데이터를 복호하여 재생하는 복호 수단
    을 포함하며,
    상기 송신 수단은,
    상기 부호화 수단에 의한 상기 제1 화면의 각 블록의 부호화가 완료되기 전에, 상기 복수의 블록 중, 상기 특정 수단에 의해 특정된 상기 대응 영역과의 유사도가 임계값 이상인 블록에 대해서, 그 블록 및 그 블록에 대한 상기 대응 영역을 특정하는 특정 정보를 상기 동화상 재생 장치에 송신하고,
    상기 부호화 수단에 의한 상기 제1 화면의 각 블록의 부호화가 완료된 후에, 상기 부호화 동화상 데이터를 상기 동화상 배포 서버에 송신하는 것인, 동화상 배포 시스템.
  11. 제10항에 있어서, 상기 동화상 배포 서버는 복수의 상이한 종류의 콘텐츠의 상기 배포 화면을 생성할 수 있고,
    상기 동화상 배포 시스템은, 복수의 상기 동화상 배포 서버와, 상기 배포 화면을 상기 동화상 재생 장치에 송신하는 상기 동화상 배포 서버 중 하나를 결정하는 선택 장치를 포함하며,
    상기 선택 장치는,
    상기 동화상 재생 장치로부터 상기 복수의 동화상 배포 서버 각각에 대한 통신 지연량의 정보와, 제공이 요구될 콘텐츠를 특정하는 특정된 콘텐츠의 정보를 수신하는 정보 수신 수단;
    상기 통신 지연량의 정보 및 상기 특정된 콘텐츠의 정보에 기초하여, 상기 동화상 배포 서버 중 하나를 결정하는 결정 수단; 및
    상기 결정 수단에 의해 결정된 상기 동화상 배포 서버 중 하나를 특정하는 정보를 상기 동화상 재생 장치에 송신하는 통지 수단
    을 포함하고,
    상기 결정 수단은,
    상기 특정된 콘텐츠가, 요구되는 응답성이 높다고 정해진 콘텐츠인 경우에, 통신 지연량이 제1 임계값보다 작은 동화상 배포 서버를 상기 동화상 배포 서버 중 하나로서 결정하며,
    상기 특정된 콘텐츠가, 요구되는 응답성이 높다고 정해진 콘텐츠가 아닌 경우에, 통신 지연량이 상기 제1 임계값보다 큰 동화상 배포 서버를 상기 동화상 배포 서버 중 하나로서 결정하고,
    상기 제1 및 제2 수신 수단은, 상기 통지 수단에 의해 통지된 상기 동화상 배포 서버 중 하나로부터 상기 특정 정보 또는 상기 제1 부호화 동화상 데이터를 수신하는 것인, 동화상 배포 시스템.
  12. 제11항에 있어서, 상기 결정 수단은, 상기 특정된 콘텐츠가, 요구되는 응답성이 높다고 정해진 콘텐츠인 경우에,
    적어도 2단계의 렌더링 처리에 의해 상기 배포 화면의 렌더링이 행해지는 콘텐츠인 경우에는, 통신 지연량이 상기 제1 임계값보다는 작고, 상기 제2 임계값보다는 큰 동화상 배포 서버를 상기 동화상 배포 서버 중 하나로서 결정하고,
    적어도 2단계의 렌더링 처리에 의해 상기 배포 화면의 렌더링이 행해지는 콘텐츠가 아닌 경우에는, 통신 지연량이 상기 제2 임계값보다 작은 동화상 배포 서버를 상기 동화상 배포 서버 중 하나로서 결정하는 것인, 동화상 배포 시스템.
  13. 삭제
KR1020137026595A 2012-04-12 2013-04-04 동화상 배포 서버, 동화상 재생 장치, 제어 방법, 기록 매체, 및 동화상 배포 시스템 KR101536501B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2012091357 2012-04-12
JPJP-P-2012-091357 2012-04-12
PCT/JP2013/002340 WO2013153787A1 (ja) 2012-04-12 2013-04-04 動画配信サーバ、動画再生装置、制御方法、プログラム、及び記録媒体

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR20147034479A Division KR20150003406A (ko) 2012-04-12 2013-04-04 동화상 배포 서버, 동화상 재생 장치, 제어 방법, 기록 매체, 및 동화상 배포 시스템

Publications (2)

Publication Number Publication Date
KR20130138824A KR20130138824A (ko) 2013-12-19
KR101536501B1 true KR101536501B1 (ko) 2015-07-13

Family

ID=49327372

Family Applications (2)

Application Number Title Priority Date Filing Date
KR20147034479A KR20150003406A (ko) 2012-04-12 2013-04-04 동화상 배포 서버, 동화상 재생 장치, 제어 방법, 기록 매체, 및 동화상 배포 시스템
KR1020137026595A KR101536501B1 (ko) 2012-04-12 2013-04-04 동화상 배포 서버, 동화상 재생 장치, 제어 방법, 기록 매체, 및 동화상 배포 시스템

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR20147034479A KR20150003406A (ko) 2012-04-12 2013-04-04 동화상 배포 서버, 동화상 재생 장치, 제어 방법, 기록 매체, 및 동화상 배포 시스템

Country Status (7)

Country Link
US (3) US8897373B2 (ko)
EP (1) EP2674916B1 (ko)
JP (2) JP5404971B1 (ko)
KR (2) KR20150003406A (ko)
CN (1) CN103650001B (ko)
CA (1) CA2828359C (ko)
WO (1) WO2013153787A1 (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5155462B2 (ja) * 2011-08-17 2013-03-06 株式会社スクウェア・エニックス・ホールディングス 動画配信サーバ、動画再生装置、制御方法、プログラム、及び記録媒体
CN103392189B (zh) 2012-02-23 2017-10-31 史克威尔·艾尼克斯控股公司 动态图像传输服务器、动态图像播放装置以及控制方法
KR20150003406A (ko) 2012-04-12 2015-01-08 가부시키가이샤 스퀘어.에닉스.홀딩스 동화상 배포 서버, 동화상 재생 장치, 제어 방법, 기록 매체, 및 동화상 배포 시스템
WO2015097726A1 (ja) * 2013-12-26 2015-07-02 株式会社スクウェア・エニックス 描画システム、制御方法、プログラム、及び記録媒体
WO2015104847A1 (en) * 2014-01-09 2015-07-16 Square Enix Holdings Co., Ltd. Online game server architecture using shared rendering
US20150338648A1 (en) * 2014-01-09 2015-11-26 Square Enix Holdings Co., Ltd., Methods and systems for efficient rendering of game screens for multi-player video game
US20150339275A1 (en) * 2014-05-20 2015-11-26 Yahoo! Inc. Rendering of on-line content
EP3029940B1 (en) * 2014-12-04 2017-03-15 Axis AB Method and device for post processing of a video stream
JP2019149122A (ja) * 2018-02-28 2019-09-05 ソニー株式会社 情報処理装置、情報処理方法、及び、プログラム
JP7278850B2 (ja) * 2018-05-04 2023-05-22 株式会社ユビタス ビデオランダムアクセスメモリにおけるマルチソースメディアをオーバーレイするシステム及び方法
CN110870976B (zh) * 2018-09-03 2023-04-07 网易(杭州)网络有限公司 一种数据处理的方法及装置
US20210275908A1 (en) * 2020-03-05 2021-09-09 Advanced Micro Devices, Inc. Adapting encoder resource allocation based on scene engagement information

Citations (4)

* 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 表示制御装置、その制御方法、情報再生装置及び電子機器
WO2009138878A2 (en) * 2008-05-12 2009-11-19 Playcast Media Systems, Ltd. Centralized streaming game server
JP2010157867A (ja) * 2008-12-26 2010-07-15 Visionere Corp 動画再生コード生成装置、動画配信システム、実行形式プログラム、同プログラムを記録した記録媒体、サーバー、及び動画再生コード生成方法
EP2384001A1 (en) * 2010-04-29 2011-11-02 Alcatel Lucent Providing of encoded video applications in a network environment

Family Cites Families (53)

* 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 松下電器産業株式会社 動きベクトル検出方法および装置と動画像符号化方法および装置
US6167088A (en) 1998-04-03 2000-12-26 Sarnoff Corporation Method and apparatus for performing adaptive encoding rate control of a video information stream including 3:2 pull-down video information
US6257982B1 (en) * 1999-06-01 2001-07-10 Mark Rider Motion picture theater interactive gaming system
US20020032905A1 (en) 2000-04-07 2002-03-14 Sherr Scott Jeffrey Online digital video signal transfer apparatus and method
US7024466B2 (en) 2000-04-07 2006-04-04 Movielink, Llc Network configured for delivery of content for download to a recipient
CA2405489C (en) * 2000-04-07 2012-07-03 Movielink, Llc Secure digital content licensing system and method
US7155415B2 (en) 2000-04-07 2006-12-26 Movielink Llc Secure digital content licensing system and method
US20020154157A1 (en) 2000-04-07 2002-10-24 Sherr Scott Jeffrey Website system and process for selection and delivery of electronic information on a network
US20020073033A1 (en) 2000-04-07 2002-06-13 Sherr Scott Jeffrey Online digital video signal transfer apparatus and method
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 動画像生成装置
CN1656465B (zh) * 2002-03-22 2010-05-26 迈克尔·F·迪林 用于由多个互连节点执行渲染计算来渲染图形的方法和系统
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
GB2406184B (en) 2003-09-17 2006-03-15 Advanced Risc Mach Ltd Data processing system
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
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 ソニー株式会社 復号処理装置及び復号処理方法並びに復号処理プログラム
JP2008182411A (ja) * 2007-01-24 2008-08-07 Fujitsu Ltd 情報配信プログラム、情報配信装置、情報配信方法
JP4357537B2 (ja) * 2007-02-26 2009-11-04 富士通株式会社 配信経路制御装置
JP4931223B2 (ja) 2007-03-30 2012-05-16 株式会社バンダイナムコゲームス 動きベクトル探索プログラム、情報記憶媒体、動きベクトル探索装置、及び、ネットワークシステム
KR100918862B1 (ko) 2007-10-19 2009-09-28 광주과학기술원 참조영상을 이용한 깊이영상 생성방법 및 그 장치, 생성된깊이영상을 부호화/복호화하는 방법 및 이를 위한인코더/디코더, 그리고 상기 방법에 따라 생성되는 영상을기록하는 기록매체
US8063800B2 (en) * 2007-11-02 2011-11-22 Symbol Technologies, Inc. Efficient encoding and decoding of mixed data strings in RFID tags and other media
US8154553B2 (en) 2008-05-22 2012-04-10 Playcast Media System, 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
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
US8429269B2 (en) * 2009-12-09 2013-04-23 Sony Computer Entertainment Inc. Server-side rendering
WO2012070239A1 (ja) 2010-11-26 2012-05-31 パナソニック株式会社 画像符号化方法、画像復号方法、画像符号化装置、画像復号装置、プログラム、及び集積回路
CN102158733B (zh) * 2011-01-28 2015-08-19 华为技术有限公司 辅助视频补充信息承载方法、处理方法、装置与系统
US9565449B2 (en) * 2011-03-10 2017-02-07 Qualcomm Incorporated Coding multiview video plus depth content
EP2712126A4 (en) * 2011-05-18 2014-04-30 Huawei Device Co Ltd NETWORKING PROCESS, SERVER DEVICE, CLIENT TERMINAL AND NETWORK SYSTEM
JP5076132B1 (ja) 2011-05-25 2012-11-21 株式会社スクウェア・エニックス・ホールディングス 描画制御装置、その制御方法、プログラム、記録媒体、描画サーバ、及び描画システム
MX347117B (es) 2011-06-24 2017-04-11 Mitsubishi Electric Corp Dispositivo de codificación de imagen, dispositivo de decodificación de imagen, método de codificacion de imagen, metodo de decodificación de imagen, y dispositivo de predicción de imagen.
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
JP5155462B2 (ja) * 2011-08-17 2013-03-06 株式会社スクウェア・エニックス・ホールディングス 動画配信サーバ、動画再生装置、制御方法、プログラム、及び記録媒体
US9137737B2 (en) * 2011-08-29 2015-09-15 Qualcomm Incorporated Systems and methods for monitoring of background application events
TW201320716A (zh) 2011-11-01 2013-05-16 Acer Inc 動態景深調整裝置及其方法
US9014190B2 (en) * 2011-11-11 2015-04-21 Itron, Inc. Routing communications based on node availability
EP3739886A1 (en) 2011-11-18 2020-11-18 GE Video Compression, LLC Multi-view coding with efficient residual handling
US8797378B1 (en) * 2012-01-17 2014-08-05 Google Inc. Distributed communications
WO2013107931A1 (en) 2012-01-19 2013-07-25 Nokia Corporation An apparatus, a method and a computer program for video coding and decoding
CN103392189B (zh) 2012-02-23 2017-10-31 史克威尔·艾尼克斯控股公司 动态图像传输服务器、动态图像播放装置以及控制方法
KR20150003406A (ko) 2012-04-12 2015-01-08 가부시키가이샤 스퀘어.에닉스.홀딩스 동화상 배포 서버, 동화상 재생 장치, 제어 방법, 기록 매체, 및 동화상 배포 시스템
JP6787667B2 (ja) 2012-09-21 2020-11-18 ノキア テクノロジーズ オサケユイチア ビデオコーディングのための方法と装置
US9838286B2 (en) * 2014-11-20 2017-12-05 Telefonaktiebolaget L M Ericsson (Publ) Passive performance measurement for inline service chaining

Patent Citations (4)

* 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 表示制御装置、その制御方法、情報再生装置及び電子機器
WO2009138878A2 (en) * 2008-05-12 2009-11-19 Playcast Media Systems, Ltd. Centralized streaming game server
JP2010157867A (ja) * 2008-12-26 2010-07-15 Visionere Corp 動画再生コード生成装置、動画配信システム、実行形式プログラム、同プログラムを記録した記録媒体、サーバー、及び動画再生コード生成方法
EP2384001A1 (en) * 2010-04-29 2011-11-02 Alcatel Lucent Providing of encoded video applications in a network environment

Also Published As

Publication number Publication date
JP5973409B2 (ja) 2016-08-23
JP5404971B1 (ja) 2014-02-05
CN103650001A (zh) 2014-03-19
CA2828359C (en) 2016-05-24
JP2014064291A (ja) 2014-04-10
KR20150003406A (ko) 2015-01-08
EP2674916B1 (en) 2018-06-27
WO2013153787A1 (ja) 2013-10-17
US8897373B2 (en) 2014-11-25
EP2674916A4 (en) 2014-09-17
US20180099221A1 (en) 2018-04-12
CN103650001B (zh) 2017-04-26
US10004983B2 (en) 2018-06-26
US20130335523A1 (en) 2013-12-19
US20150045120A1 (en) 2015-02-12
EP2674916A1 (en) 2013-12-18
JPWO2013153787A1 (ja) 2015-12-17
US9868060B2 (en) 2018-01-16
KR20130138824A (ko) 2013-12-19
CA2828359A1 (en) 2013-10-12

Similar Documents

Publication Publication Date Title
KR101536501B1 (ko) 동화상 배포 서버, 동화상 재생 장치, 제어 방법, 기록 매체, 및 동화상 배포 시스템
JP5155462B2 (ja) 動画配信サーバ、動画再生装置、制御方法、プログラム、及び記録媒体
CA2853212C (en) System, server, and control method for rendering an object on a screen
JP5833599B2 (ja) プログラム、記録媒体及び符号化方式決定方法
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
A107 Divisional application of patent
E701 Decision to grant or registration of patent right
N231 Notification of change of applicant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20180628

Year of fee payment: 4