TWI528832B - 使用包括與成功接收視訊內容相關之資料之反饋的視訊壓縮方法及系統 - Google Patents

使用包括與成功接收視訊內容相關之資料之反饋的視訊壓縮方法及系統 Download PDF

Info

Publication number
TWI528832B
TWI528832B TW099108416A TW99108416A TWI528832B TW I528832 B TWI528832 B TW I528832B TW 099108416 A TW099108416 A TW 099108416A TW 99108416 A TW99108416 A TW 99108416A TW I528832 B TWI528832 B TW I528832B
Authority
TW
Taiwan
Prior art keywords
video
game
frame
user
application
Prior art date
Application number
TW099108416A
Other languages
English (en)
Other versions
TW201119404A (en
Inventor
史蒂芬G 波爾曼
德 拉安 羅傑 范
提莫西 卡特
史考特 富曼
羅伯 麥庫爾
伊恩 巴克利
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 TW201119404A publication Critical patent/TW201119404A/zh
Application granted granted Critical
Publication of TWI528832B publication Critical patent/TWI528832B/zh

Links

Classifications

    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/24Systems for the transmission of television signals using pulse code modulation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/752Media network packet handling adapting media to network capabilities
    • A63F13/12
    • 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 MPEG-stream for transmitting to a mobile phone or a thin 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/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • A63F13/358Adapting the game course according to the network or server load, e.g. for reducing latency due to different connection speeds between clients
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • H04L65/403Arrangements for multi-party communication, e.g. for conferences
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/611Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for multicast or broadcast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/765Media network packet handling intermediate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/131Protocols for games, networked simulations or virtual reality
    • 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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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
    • 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/188Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a video data packet, e.g. a network abstraction layer [NAL] unit
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • 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, manipulating MPEG-4 scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • 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, manipulating MPEG-4 scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/23439Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements for generating different versions
    • 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/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/2381Adapting the multiplex stream to a specific network, e.g. an Internet Protocol [IP] network
    • 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/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • 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/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/637Control signals issued by the client directed to the server or network components
    • H04N21/6377Control signals issued by the client directed to the server or network components directed to server
    • 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/658Transmission by the client directed to the server
    • 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/658Transmission by the client directed to the server
    • H04N21/6583Acknowledgement
    • 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/658Transmission by the client directed to the server
    • H04N21/6587Control parameters, e.g. trick play commands, viewpoint selection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/12Systems in which the television signal is transmitted via one channel or a plurality of parallel channels, the bandwidth of each channel being less than the bandwidth of the television signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/173Analogue secrecy systems; Analogue subscription systems with two-way working, e.g. subscriber sending a programme selection signal
    • 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/40Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of platform network
    • A63F2300/402Communication between platforms, i.e. physical link to protocol
    • 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/40Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of platform network
    • A63F2300/407Data transfer via internet
    • 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/535Features 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 monitoring, e.g. of user parameters, terminal parameters, application parameters, network parameters
    • 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/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/55Details of game data or player data management
    • A63F2300/552Details of game data or player data management for downloading to client devices, e.g. using OS version, hardware or software profile of the client device
    • 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/57Features 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 game services offered to the player
    • A63F2300/572Communication between players during game play of non game information, e.g. e-mail, chat, file transfer, streaming of audio and streaming of video
    • 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/57Features 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 game services offered to the player
    • A63F2300/577Features 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 game services offered to the player for watching a game played by other players
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/10Adaptations for transmission by electrical cable
    • H04N7/106Adaptations for transmission by electrical cable for domestic distribution

Description

使用包括與成功接收視訊內容相關之資料之反饋的視訊壓縮方法及系統
本發明大體而言係關於改良使用者操控及存取音訊及視訊媒體之能力的資料處理系統之領域。
本申請案主張2009年3月23日申請之題為「System And Method For Compressing Video Using Feedback」的美國臨時申請案第61/210,888號之優先權,該臨時申請案為2009年1月23日申請之題為「System And Method for Protecting Certain Types of Multimedia Data Transmitted Over A Communication Channel」的同在申請中之美國申請案第12/359,150號之部分接續申請案,且為2007年12月5日申請之題為「Hosting And Broadcasting Virtual Events Using Streaming Interactive Video」的同在申請中之美國申請案第11/999,475號之接續申請案,該接續申請案為2002年12月10日申請之題為「Apparatus and Method for Wireless Video Gaming」的申請案第10/315,460號之部分接續(CIP)申請案,其讓與給本CIP申請案之受讓人。
記錄之音訊及動畫媒體自托馬斯‧愛迪生(Thomas Edison)之時代起已成為社會之一態樣。在20世紀開始時,已廣泛散佈記錄之音訊媒體(磁柱及記錄器)及動畫媒體(五分錢劇院(nickelodeon)及電影),但該兩種技術仍處於其初期。在20世紀20年代末期,動畫大量地與音訊組合,繼而產生具有音訊之彩色動畫。收音機廣播逐漸演進成主要由廣告支援之形式的廣播大眾市場音訊媒體。在20世紀40年代中期建立電視(TV)廣播標準後,廣播電視作為廣播大眾市場媒體之形式將先前記錄之動畫或實況動畫帶入至家庭中。
到20世紀中期,大百分率的美國家庭擁有用於播放記錄之音訊媒體之唱片播放器、用以接收實況廣播音訊之收音機及用以播放實況廣播音訊/視訊(A/V)媒體之電視機。常常將此3個「媒體播放器」(唱片播放器、收音機及TV)組合在一個共用共同揚聲器之櫃子中,其成為家庭之「媒體中心」。雖然對消費者而言媒體選擇係有限的,但媒體「生態系統(ecosystem)」相當穩定。大多數消費者知道如何使用「媒體播放器」且能夠充分享受該等媒體播放器之能力。同時,媒體之發行者(主要為動畫及電視工作室,及音樂公司)能夠將其媒體散佈給劇院及家庭,而不遭受廣泛的盜版或「二次銷售」(亦即,舊媒體之轉售)問題。通常,發行者不自二次銷售得到收益,且因此,二次銷售減少發行者可能另外自新銷售的舊媒體之購買者得到之收益。雖然肯定存在於20世紀中期期間銷售的舊唱片,但此等銷售對於唱片發行者並無大的影響,因為不同於成人通常收看一次或僅幾次之動畫或視訊節目,一音樂曲目可能被收聽幾百次或甚至幾千次。因此,與動畫/視訊媒體相比,音樂媒體更不易壞(亦即,音樂媒體對於成人消費者具有保留價值)。一旦購買了一唱片,若消費者喜愛該音樂,消費者即可能長時間保留該音樂。
自20世紀中期至今,媒體生態系統已經歷了消費者及發行者之利益及損失的一系列根本變化。隨著音訊記錄器(尤其是具有高品質立體聲之卡式磁帶)之廣泛引入,消費者之便利程度無疑更高。但此亦標誌著消費型媒體之普遍慣例:盜版之開始。毫無疑問,許多消費者純粹為了便利而使用卡式磁帶對其自己的唱片錄音,但越來越多的消費者(例如,集體宿舍中準備好存取彼此之唱片收藏的學生)會作出盜版複本。此外,消費者會用磁帶錄音經由收音機播放之音樂,而非自發行者購買唱片或磁帶。
消費型VCR之出現導致更多的消費者便利,因為現在一VCR可經設定以記錄可在稍後時間觀看之TV節目,且VCR亦導致視訊租賃行業之形成,其中可按需要存取電影以及TV節目。大眾市場家庭媒體器件自20世紀80年代中期以來的快速發展已導致消費者之史無前例的選擇及便利程度,且亦已導致媒體發行市場之快速擴張。
現今,消費者面臨著過剩的媒體選擇以及過剩的媒體器件,其中之許多者受特定媒體形式或特定發行者束縛。貪心的媒體消費者在家中的各個房間中可能具有連接至TV及電腦之器件堆疊,從而導致至一或多個電視機及/或個人電腦(PC)之「鼠巢(rat's nest)」狀電纜以及一組遙控器。(在本申請案之內容背景中,術語「個人電腦」或「PC」指代適合吾人在家庭或辦公室使用的任何種類之電腦,包括桌上型電腦、Macintosh電腦或其他非Windows電腦、Windows相容器件、Unix變體、膝上型電腦等。)此等器件可包括視訊遊戲控制台、VCR、DVD播放器、音訊環繞聲處理器/放大器、衛星視訊轉換器、有線電視視訊轉換器等。且,對於貪心的消費者,由於相容性問題,可能存在多個功能類似之器件。舉例而言,消費者可能擁有HD-DVD播放器及Blu-ray DVD播放器兩者,或Microsoft Xbox視訊遊戲系統及Sony Playstation視訊遊戲系統兩者。實際上,由於一些遊戲在遊戲控制台之版本上的不相容性,故消費者可能擁有XBox與較新版本,諸如Xbox 360。消費者常常關於使用哪個視訊輸入及哪個遙控器而感到迷惑。即使在將碟片置放至正確的播放器(例如,DVD、HD-DVD、Blu-ray、Xbox或Playstation)中,為該器件選擇了視訊及音訊輸入,且找到正確的遙控器之後,消費者仍面臨技術挑戰。舉例而言,在寬螢幕DVD之情況下,使用者可能必須首先確定且接著設定其電視或監視器螢幕之正確縱橫比(例如,4:3、全螢幕(Full)、縮放(Zoom)、寬螢幕縮放(Wide Zoom)、劇院寬螢幕(Cinema Wide)等)。類似地,使用者可能必須首先確定且接著設定正確的音訊環繞聲系統格式(例如,AC-3、杜比數位(Dolby Digital)、DTS等)。消費者時常未意識到其可能並未以其電視或音訊系統之全部能力欣賞媒體內容(例如,觀看以錯誤縱橫比壓製的電影,或以立體聲而非以環繞聲收聽音訊)。
基於網際網路之媒體器件已日益地加入到該器件堆疊中。如Sonos數位音樂系統之音訊器件直接自網際網路以串流形式接收音訊。同樣地,如SlingboxTM娛樂播放器之器件記錄視訊且經由一家庭網路以串流形式接收該視訊或經由網際網路以串流形式輸出該視訊,可經由網際網路在PC上遠端地觀看該視訊。網際網路協定電視(IPTV)服務經由數位用戶線(DSL)或其他家庭網際網路連接提供類似於有線電視之服務。最近亦努力將多個媒體功能整合至單一器件中,諸如執行Windows XP媒體中心版本之Moxi媒體中心及PC。雖然此等器件中之每一者提供便利器件執行之功能的元件,但每一器件缺少存取大部分媒體之普遍存在且簡單的方法。此外,往往由於需要昂貴的處理及/或區域儲存器,此等器件之製造費用常常高達數百美元。另外,此等現代消費型電子器件通常消耗大量電力(即使在閒置時),此意謂著該等器件隨時間流逝而花費大且浪費能源資源。舉例而言,器件可在消費者忘記關閉器件或切換至不同視訊輸入的情況下繼續操作。且,因為該等器件中之任一者均非一完全解決方案,所以器件必須與家庭中之另一器件堆疊整合,其仍留給使用者鼠巢狀的電線及許多遙控器。
此外,當許多較新的基於網際網路之器件正常工作時,該等器件通常以比其可能以其他方式得到的形式更一般的形式提供媒體。舉例而言,經由網際網路以串流形式接收視訊之器件經常僅以串流形式接收視訊材料,但不以串流形式接收經常伴隨DVD之互動式「額外內容」,如視訊、遊戲之「製作」或導演解說。此歸因於以下事實:互動式材料常常以一特定器件的特定格式產生,意欲用於在本端處置互動性。舉例而言,DVD、HD-DVD及Blu-ray碟片中之每一者具有其自身的特定互動格式。可經發展以支援所有大眾化格式之任何家庭媒體器件或本端電腦需要一定程度之完善度及靈活性,其很可能使消費者之操作花費過大且太過複雜。
使問題增加的是,若稍後在未來引入一新格式,則本端器件可能不具有支援該新格式之硬體能力,此將意謂著消費者不得不購買一升級後的本端媒體器件。舉例而言,若在一稍後日子引入較高解析度視訊或立體視訊(例如,每一眼一視訊串流),則本端器件可能不具有解碼該視訊之計算能力,或本端器件可能不具有以該新格式輸出視訊之硬體(例如,假設立體視覺係經由與快門眼鏡(shuttered glasses)同步之120 fps視訊(60 fps傳遞至每一眼)達成,若消費者之視訊硬體僅可支援60 fps視訊,則此選項在未購買經升級硬體的情況下不可用)。
媒體器件之退化及複雜性問題在其遇到完善的互動式媒體(尤其是視訊遊戲)時成為一嚴重問題。
將現代視訊遊戲應用程式主要劃分成四個主要的非可攜式硬體平台:Sony PlayStation1、2及3(PS1、PS2及PS3);Microsoft Xbox及Xbox 360;及Nintendo Gamecube及WiiTM;及基於PC之遊戲。此等平台中之每一者彼此不同,因此經撰寫以在一個平台上執行之遊戲通常不能在另一平台上執行。一代器件與下一代器件之間亦可能存在相容性問題。即使大多數軟體遊戲開發者創造獨立於一特定平台而設計之軟體遊戲,以在一特定平台上執行一特定遊戲,亦需要一軟體專屬層(常常稱為「遊戲開發引擎」)以使該遊戲適合在一特定平台上使用。每一平台係作為一「控制台」(亦即,附接至一TV或監視器/揚聲器之獨立盒)銷售給消費者,或其本身為一PC。通常,該等視訊遊戲係以諸如Blu-ray DVD、DVD-ROM或CD-ROM之光學媒體銷售,其含有具體化為一完善的即時軟體應用程式之視訊遊戲。由於家庭寬頻速度已增加,故視訊遊戲越來越多地可以下載方式獲得。
歸因於高級視訊遊戲之即時性質及高計算需求,達成與視訊遊戲軟體之平台相容性的特異性需求極其嚴格。舉例而言,吾人可能希望一代視訊遊戲至下一代視訊遊戲之完全遊戲相容性(例如,自XBox至XBox 360,或自Playstation 2(「PS2」)至Playstation 3(「PS3」),就像生產力應用程式(例如,Microsoft Word)在一PC與另一具有更快處理單元或核心之PC之間存在一般相容性。然而,對於視訊遊戲情況並非如此。因為視訊遊戲製造商通常在發行一代視訊遊戲時在一給定價格點尋求最高可能效能,所以經常對系統作出顯著建築變化,使得針對上一代系統撰寫之許多遊戲不能在稍後代系統上工作。舉例而言,XBox係基於x86系列處理器,而XBox 360係基於PowerPC系列。
可利用技術來仿真一先前架構,但若視訊遊戲為即時應用程式,則在仿真中達成完全相同的行為經常難以實現。此對消費者、視訊遊戲控制台製造商及視訊遊戲軟體發行者不利。對消費者而言,其意謂著必需保持舊代及新代之視訊遊戲控制台連接至TV才能夠玩所有遊戲。對於控制台製造商,其意謂著與新控制台之仿真及較慢採用相關聯之費用。而對發行者而言,其意謂著可能不得不發行新遊戲之多個版本以獲得所有可能消費者,不僅發行針對視訊遊戲之每一品牌(例如,XBox、Playstation)的版本,而且常常發行針對一給定品牌之每一版本(例如,PS2及PS3)的版本。舉例而言,針對平台中之XBox、XBox 360、PS2、PS3、Gamecube、Wii及PC開發Electronic Arts之「Madden NFL 08」的單獨版本。
諸如蜂巢式(「行動」)電話及可攜式媒體播放器之可攜式器件亦對遊戲開發者提出挑戰。越來越多的此等器件連接至無線資料網路且能夠下載視訊遊戲。但是,市場上存在多種行動電話及媒體器件,其具有廣泛之不同顯示解析度及計算能力。此外,因為此等器件通常具有電力消耗、費用及重量約束,所以該等裝置通常缺少如圖形處理單元(「GPU」)之高級圖形加速硬體,諸如由Santa Clara,CA之NVIDIA製造之器件。因此,遊戲軟體開發者通常同時為許多不同類型之可攜式器件開發一給定遊戲標題。使用者可能發現一給定遊戲標題不能用於其特定行動電話或可攜式媒體播放器。
就家庭遊戲控制台而言,硬體平台製造商通常為了能夠在其平台上發佈一遊戲而向軟體遊戲開發者支付版稅。行動電話無線載體亦通常為了將一遊戲下載至行動電話而向遊戲發行者支付版稅。就PC遊戲而言,無需為了發行遊戲而支付版稅,但遊戲開發者通常面臨高費用,此歸因於用以支援廣泛範圍之PC組態及可能出現的安裝問題的較高用戶端服務負擔。此外,PC通常呈現對遊戲軟體之盜版的較少阻礙,因為PC容易由技術熟練者重新程式化,且遊戲可能較容易被盜版且較容易散佈(例如,經由網際網路)。因此,對軟體遊戲開發者而言,在於遊戲控制台、行動電話及PC上發佈存在費用及缺點。
對控制台及PC軟體之遊戲發行者而言,花費並未就此結束。為了經由零售渠道散佈遊戲,發行者要求零售商支付一低於銷售價格之批發價格以使其具有利潤率。發行者亦通常必須支付製造及散佈保持遊戲之實體媒體之費用。零售商亦常常要求發行者支付「價格保護費」以為可能的偶發事件(諸如,遊戲賣不掉的情況,或者遊戲降價的情況,或者零售商必須退還批發價格之部分或全部及/或自購買者回收遊戲的情況)支付費用。另外,零售商亦通常要求發行者支付費用以幫助以廣告傳單形式銷售遊戲。此外,零售商日益自玩完遊戲之使用者回購遊戲,且接著將該等遊戲作為舊遊戲(used game)銷售,其通常不與遊戲發行者共享舊遊戲收益。遊戲經常被盜版且經由網際網路散佈以供使用者下載及製作免費複本,此增加了遊戲發行者之費用負擔。
由於網際網路寬頻速度日益增加且寬頻連接在美國及世界範圍內已變得更加普遍(特別對家庭及出借連接網際網路之PC的網際網路「咖啡館」而言更是如此),故遊戲越來越多地經由下載散佈至PC或控制台。此外,寬頻連接越來越多地用於玩多人及大規模的多人線上遊戲(該兩者在本發明中均以縮寫字「MMOG」指代)。此等變化降低與零售散佈相關聯之費用及問題中之一些。下載線上遊戲解決了對遊戲發行者的不利點中之一些,因為散佈費用通常較少,且幾乎不存在未售出媒體之費用。但下載之遊戲仍遭受盜版,且由於其大小(大小經常為許多個十億位元組),下載該等遊戲可能要花相當長時間。另外,多個遊戲可填滿小型磁碟機,諸如與可攜式電腦或與視訊遊戲控制台一起銷售之磁碟機。然而,遊戲或MMOG需要一線上連接以使遊戲可玩,盜版問題得以減輕,因為通常需要使用者具有一有效的使用者帳戶。不同於可由一拍攝顯示幕之視訊之相機或一記錄來自揚聲器之音訊之麥克風複製的線性媒體(例如,視訊及音樂),每一視訊遊戲體驗係唯一的且不能使用簡單的視訊/音訊記錄來複製。因此,即使在版權法未嚴格施行且盜版猖獗之區域,亦可保護MMOG不被盜版,且因此業務可得以支援。舉例而言,Vivendi SA之「World of Warcraft」MMOG已在世界範圍內成功部署而未遭受盜版。因此,許多線上或MMOG遊戲(諸如,Linden Lab之「Second Life」MMOG)經由內建於遊戲中之經濟模型(其中資產可買賣且甚至可使用線上工具產生)而為遊戲業者產生收益。因此,可使用除習知遊戲軟體購買或訂用以外的機制來為線上遊戲之使用付費。
儘管歸因於線上或MMOG之性質常常可減少盜版,但線上遊戲業者仍面臨剩餘挑戰。許多遊戲需要實質本端(亦即,家中)處理資源以使線上或MMOG正常工作。若使用者具有低效能之本端電腦(例如,不具有GPU之電腦,諸如低端膝上型電腦),則其可能不能玩該遊戲。另外,隨著遊戲控制台變舊,其遠落後於當前技術水平且可能不能處置更高級遊戲。即使假設使用者之本端PC能夠處置一遊戲之計算需求,但常常存在安裝複雜性。可能存在驅動器不相容(例如,若下載一新遊戲,則其可安裝一圖形驅動器之一新版本,其使相依於該圖形驅動器之一舊版本之先前安裝之遊戲不可操作)。隨著越來越多的遊戲被下載,控制台可用完本端磁碟空間。隨著時間的推移,通常在發現且修正程式錯誤後,或者對該遊戲進行修改(例如,遊戲開發者發現一遊戲等級太難或太容易玩過的情況)的情況下,複雜遊戲自遊戲開發者接收下載之修補程式。此等修補程式需要新下載。但是有時,不是所有使用者都完成所有該等修補程式之下載。其他時間,該等下載之修補程式引入其他相容性或磁碟空間消耗問題。
此外,在玩遊戲期間,可能需要大量資料下載以提供圖形或行為資訊至本端PC或控制台。舉例而言,若使用者在一MMOG進入一房間,且遇到由在使用者之本端機器上不可獲得之圖形資料組成或具有在使用者之本端機器上不可獲得之行為之一場景或一角色,則必須下載該場景或角色之資料。若網際網路連接不夠快,則此可導致玩遊戲期間之一實質延遲。且,若遇到的場景或角色需要超出本端PC或控制台之儲存空間或計算能力的儲存空間或計算能力,則其可造成使用者不能繼續玩遊戲或必須以品質降低之圖形繼續玩遊戲的情形。因此,線上或MMOG遊戲常常限制其儲存及/或計算複雜性需求。另外,該等遊戲常常限制遊戲期間的資料傳送之量。線上或MMOG遊戲亦可縮小可玩該等遊戲之使用者的市場。
此外,技術熟練者日益逆向工程設計遊戲之本端複本且修改該等遊戲,使得其可作弊。作弊可像比人類可能快地重複按壓一按鈕一樣簡單(例如,以便極快速地開槍)。在支援遊戲內資產交易之遊戲中,作弊可達到一定程度之欺騙,其導致涉及具實際經濟價值之資產的詐欺交易。當一線上或MMOG經濟模型基於此等資產交易時,此可對遊戲業者造成實質不良後果。
隨著PC及控制台能夠產生不斷完善之遊戲(例如,具有更真實感化之圖形,諸如即時射線追蹤,及更真實感化之行為,諸如即時實體模擬),開發一新遊戲之費用已增長。在視訊遊戲產業之早期,視訊遊戲開發為一極類似於應用程式軟體開發之過程;亦即,與圖形、音訊及行為要素或「資產」(諸如,可針對一具有大量特殊效果之動畫開發的圖形、音訊及行為要素或「資產」)之開發相比,大部分開發費用用於軟體之開發。現今,相比於軟體開發,許多完善的視訊遊戲開發之努力更類似於富含特殊效果之動畫開發。舉例而言,許多視訊遊戲提供3D世界之模擬,且越來越多地產生相片真實感化的角色、道具及環境(亦即,似乎與以攝影方式拍攝之實景影像一樣真實感化的電腦圖形)。相片真值感化的遊戲之開發之大部分挑戰態樣之一為形成一難以與實景人臉區別的電腦產生之人臉。諸如由San Francisco,CA之Mova開發的ContourTM Reality Capture之面部擷取技術以高解析度擷取且追蹤一處於運動中的表演者之面部之精確幾何形狀。此技術允許在一PC或遊戲控制台上再現一實質上難以與一所擷取之實景面部區別的3D面部。精確地擷取及再現一「相片真實感化」的人臉在若干方面有用。首先,經常在視訊遊戲中使用非常容易辨別之名人或運動員(經常以高費用雇用),且使用者可顯而易見瑕疵,從而使得觀看體驗易分心或不愉快。常常需要一高細節程度來達成一高的相片真實感化─需要再現許多多邊形及高解析度紋理,隨著面部移動,多邊形及/或紋理可能逐圖框變化。
當具有詳細紋理之高多邊形計數之場景快速變化時,支援遊戲之PC或遊戲控制台可能不具有足夠RAM來儲存用於在遊戲片段中產生之所需數目個動畫圖框的足夠多邊形及紋理資料。此外,通常可用於PC或遊戲控制台之單一光碟機或單一磁碟機通常比RAM慢得多,且通常跟不上GPU在再現多邊形及紋理時可接受之最大資料速率。當前遊戲通常將該等多邊形及紋理之大部分載入至RAM中,此意謂著一給定場景在複雜性及持續時間上很大程度上受限於RAM之容量。舉例而言,就面部動畫而言,此可將PC或遊戲控制台限於一非相片真實感化之低解析度面部,或者限於一相片真實感化面部,其僅可在遊戲暫停且載入更多圖框之多邊形及紋理(及其他資料)之前為有限數目個圖框製作動畫。
當PC或控制台顯示一類似於「載入中」之訊息時,看著一進度列緩慢地移動通過螢幕係作為一固有缺點而為現今複雜視訊遊戲之使用者所接受。自磁碟(除非另有限定,否則本文中之「磁碟」指代非揮發性光學或磁性媒體,以及諸如半導體「快閃」記憶體之非磁碟媒體)載入下一場景時的延遲可為幾秒或甚至幾分鐘。此延遲浪費時間且對遊戲玩家而言可為相當令人沮喪的。如先前所論述,大部分或所有延遲可歸因於多邊形、紋理或其他資料自磁碟之載入時間,但其亦可為載入時間之部分用於PC或控制台中之處理器及/或GPU為場景準備資料的情況。舉例而言,一足球視訊遊戲可允許玩家在許多球員、球隊、運動場及天氣條件中進行選擇。因此,視所選擇之特定組合而定,場景可能需要不同多邊形、紋理及其他資料(共同稱為「物件」)(例如,不同球隊之制服具有不同色彩及圖案)。可能列舉各種排列中之多者或全部且提前預先計算該等物件中之多者或全部,且將該等物件儲存於用以儲存遊戲之磁碟上。但是,若排列之數目很大,則所有該等物件所需之儲存空間之量可能過大而不能裝配在磁碟上(或過於不切實際而不能下載)。因此,現有PC及控制台系統在給定場景之複雜性及遊戲持續時間兩方面通常受約束且遭受複雜場景之長載入時間。
先前技術視訊遊戲系統及應用程式軟體系統之另一顯著限制在於,該等系統越來越多地使用(例如)必須載入至PC或遊戲控制台中以進行處理之3D物件(諸如,多邊形及紋理)之大型資料庫。如上文所論述,此等資料庫在本端儲存於一磁碟上時可耗費一長時間來載入。然而,若資料庫係儲存於一遠端位置且經由網際網路存取,則載入時間通常更長。在此情形下,下載一大型資料庫可能耗時幾分鐘、幾小時或甚至幾天。此外,經常以大的開銷(例如,供遊戲、電影或歷史紀錄片中使用之詳細的裝有高桅桿之帆船的3D模型)產生此等資料庫,且打算銷售給本端終端使用者。然而,該資料庫存在風險:其一旦下載至本端使用者後即被盜版。在許多情況下,一使用者僅為了評估一資料庫以看看其是否適合該使用者之需要而想要下載該資料庫(例如,在該使用者執行一特定移動時,一遊戲角色之3D服裝具有一令人滿意之外表或外貌的情況)。長載入時間可為該使用者在決定購買之前評估該3D資料庫的障礙。
類似問題出現在MMOG中,特別是允許使用者越來越多地利用定製角色之遊戲。若一PC或遊戲控制台要顯示一角色,則其必須存取3D幾何形狀(多邊形、紋理等)以及該角色之行為(例如,若該角色具有一盾牌(shield),不管該盾牌是否足夠強以使一矛偏轉)的資料庫。通常,當使用者第一次玩一MMOG時,角色之許多資料庫已可用遊戲之初始複本獲得,該初始複本可在本端於遊戲之光碟上獲得或下載至一磁碟。但是,隨著遊戲進行,若使用者遇到資料庫不能於本端獲得的角色或物件(例如,若另一使用者已產生一定製角色),則在可顯示該角色或物件之前,必須下載其資料庫。此下載可導致遊戲之實質延遲。
給定視訊遊戲之完善度及複雜性,先前技術視訊遊戲控制台之視訊遊戲開發者及發行者的另一挑戰在於,開發一視訊遊戲經常需要2至3年的時間及幾千萬美元的費用。若新視訊遊戲控制台平台係以大致每五年一次的速率引入,則遊戲開發者必須在新遊戲控制台發行之前幾年就開始遊戲的開發工作,以使視訊遊戲在新平台發行之同時仍可用。來自競爭製造商之若干控制台有時大約在相同時間發行(例如,在一兩年內),但留待查看的是每一控制台之風行度,例如,哪個控制台會產生最高視訊遊戲軟體銷量。舉例而言,在一最近控制台循環中,Microsoft XBox 360、Sony Playstation 3及Nintendo Wii經排程以大約在大體相同的時間範圍引入。但在該等引入之前的幾年中,遊戲開發者實質上必須就哪些控制台平台會比其他平台成功「打賭」,且相應地投入其開發資源。動畫製作公司亦必須在一電影發行之前基於其對該電影之成功可能性之適當估計來分派其有限的製作資源。若視訊遊戲所需之投資等級在增長中,則遊戲製作變得越來越像動畫製作,且遊戲製作公司基於其對一特定視訊遊戲之未來成功的估計常規地投入其製作資源。但是,不同於動畫公司,此打賭不僅僅基於製作本身之成功;實情為,其以意欲用來執行遊戲的遊戲控制台之成功為基礎。同時發行多個控制台之遊戲可降低風險,但此額外努力會增加費用,且常常使遊戲之實際發行延遲。
PC上之應用程式軟體及使用者環境變得更具計算密集性、動態性及互動性,此不僅使其在視覺上對使用者更有吸引力,而且使其更有用且直觀。舉例而言,新的Windows VistaTM作業系統及Macintosh作業系統之後續版本均併有視覺動畫效果。諸如來自Autodesk, Inc.之MayaTM的高級圖形工具提供極完善之3D再現及動畫能力,該等工具增加了當前技術水平CPU及GPU之限制。然而,此等新工具之計算需求對此等產品之使用者及軟體開發者造成許多實際問題。
由於一作業系統(OS)之視覺顯示必須對廣泛類別之電腦(包括不再銷售、但仍可用新OS升級之先前代電腦)起作用,故OS圖形需求很大程度上受為OS之目標的電腦之最少共同點限制,該等電腦通常包括未包括GPU之電腦。此嚴格限制了OS之圖形處理能力。此外,由於CPU或GPU中之高計算活動通常導致較高電力消耗及較短電池壽命,故電池供電之可攜式電腦(例如,膝上型電腦)限制該視覺顯示能力。可攜式電腦通常包括在不利用處理器時自動減少處理器活動以降低電力消耗之軟體。在一些電腦模型中,使用者可手動地減少處理器活動。舉例而言,Sony之VGN-SZ280P膝上型電腦在一側具有一標記為「Stamina」之開關(適用於低效能、長電池壽命)且在另一側具有標記為「Speed」之開關(適用於高效能、短電池壽命)。即使在電腦以其一小部分峰值效能能力執行的情況下,一在一可攜式電腦上執行之OS必須能夠有效地工作。因此,OS圖形處理效能常常保持遠低於當前技術水平可用的計算能力。
常常銷售高端的計算密集型應用程式(如Maya)以期望其可在高效能PC上使用。此通常產生一高得多的效能及較昂貴且較差可攜性的最少共同點需求。因此,此等應用程式具有比通用OS(或通用生產力應用程式,如Microsoft Office)更多的有限目標受眾,且其銷售量通常比通用OS軟體或通用應用程式軟體更低。因為一預期使用者時常難以提前試用此等計算密集型應用程式,所以潛在受眾進一步受限制。舉例而言,假設一學生想要學習如何使用Maya或一已瞭解此等應用程式之潛在購買者想要在投資購買之前試用Maya(其很可能亦涉及購買一能夠執行Maya之高端電腦)。儘管該學生或該潛在購買者可以下載Maya之示範版本或得到示範版本之一實體媒體複本,但若該學生或該潛在購買者無一能夠充分執行Maya(例如,處置一複雜3D場景)之電腦,則該學生或該潛在購買者將不能獲得對該產品之基於全部可靠資訊之評定。此實質上限制了此等高端應用程式之受眾。其亦有助於一高銷售價格,因為開發費用通常在比通用應用程式少得多的購買量上攤銷。
高價格應用程式亦造成個人及企業使用應用程式軟體之盜版複本之更多誘因。結果,高端應用程式軟體遭受猖獗盜版,儘管此軟體之發行者努力經由各種技術來減少此盜版。儘管如此,即使當使用盜版的高端應用程式時,使用者仍不能避免買進昂貴的當前技術水平PC以執行盜版複本之需要。因此,雖然使用者可用軟體應用程式之實際零售價格之一小部分獲得軟體應用程式之使用,但仍需要盜版軟體之使用者購買或者獲得一昂貴PC以充分利用該應用程式。
對高效能盜版視訊遊戲之使用者同樣如此。雖然盜版者可用該等遊戲之實際價格之一小部分獲得該等遊戲,但仍需要其購買正常玩遊戲所必須之昂貴計算硬體(例如,GPU增強之PC,或如XBox 360之高端視訊遊戲控制台)。若視訊遊戲對消費者而言通常為消遣,則高端視訊遊戲系統之額外費用可具有抑制作用。此情形在工人目前之平均年收入相對於美國工人之平均年收入非常低的國家(例如,中國)更糟。結果,很小百分率的人擁有高端視訊遊戲系統或高端PC。在此等國家中,「網際網路咖啡館」(使用者在此可支付費用以使用連接至網際網路之電腦)相當普遍。此等網際網路咖啡館常常具有不具有高效能特徵(諸如,GPU)之較舊模型或低端之PC,該等高效能特徵可另外使玩家能夠玩計算密集型視訊遊戲。此係在低端PC上執行之遊戲(諸如,Vivendi之「World of Warcraft」)成功之一關鍵因素,該遊戲在中國非常成功且通常在網際網路咖啡館中玩該遊戲。與之相反,不太可能在中國的網際網路咖啡館中所安裝之PC上玩如「Second Life」之計算密集型遊戲。僅可存取網際網路咖啡館中之低效能PC之使用者實質上不能存取此等遊戲。
對於考慮購買一視訊遊戲且願意藉由經由網際網路將示範下載至其家庭電腦來先試用該遊戲之一示範版本的使用者,亦存在阻礙。一視訊遊戲示範經常為該遊戲之一完全成熟版本,但其中一些特徵被停用或對玩遊戲之量有限制。此可涉及一在可在一PC或一控制台上安裝且執行該遊戲之前下載若干個十億位元組之資料的長過程(可能有幾個小時)。在PC之情況下,該過程亦可涉及瞭解該遊戲需要哪些特殊驅動程式(例如,DirectX或OpenGL驅動程式)、下載正確版本、安裝驅動程式且接著判定該PC是否能夠玩該遊戲。此後一步驟可涉及判定該PC是否具有足夠處理(CPU及GPU)能力、足夠RAM及一相容OS(例如,一些遊戲在Windows XP上執行,但不能在Vista上執行)。因此,在一嘗試執行一視訊遊戲示範之長過程之後,使用者很可能發現,由於使用者之PC組態,可能不能玩該視訊遊戲示範。更糟的是,一旦使用者已下載了新驅動程式以試用示範,此等驅動程式版本可能與使用者通常在PC上使用的其他遊戲或應用程式不相容,因此一示範之安裝可能使先前可操作之遊戲或應用程式不可操作。此等阻礙不僅阻撓使用者,而且成為視訊遊戲軟體發行者及視訊遊戲開發者銷售其遊戲之阻礙。
導致經濟低效率之另一問題與以下事實有關:給定PC或遊戲控制台通常經設計以適應應用程式及/或遊戲之特定效能需求等級。舉例而言,一些PC具有或多或少之RAM、或慢或快之CPU,及或慢或快之GPU(若該等PC完全具有GPU)。一些遊戲或應用程式利用一給定PC或控制台之全部計算能力,而許多遊戲或應用程式不利用一給定PC或控制台之全部計算能力。若一使用者對遊戲或應用程式之選擇未達到本端PC或控制台之峰值效能能力,則該使用者可能將錢浪費在了PC或控制台之未利用特徵上。就控制台而言,控制台製造商可能支付比補貼控制台費用所必需之錢多的錢。
視訊遊戲之銷售及享受中存在的另一問題涉及:允許一使用者在提出購買該遊戲之前者觀看其他人玩遊戲。存在用於記錄視訊遊戲以在稍後時間重播的若干先前技術方法。舉例而言,美國專利第5,558,339號教示將「玩遊戲」期間之遊戲狀態資訊(包括遊戲控制器動作)記錄在視訊遊戲用戶端電腦(為相同或不同使用者所有)中。此狀態資訊可在稍後時間用以在一視訊遊戲用戶端電腦(例如,PC或控制台)上重播一些或全部的遊戲動作。此方法之一顯著缺點在於,對一觀看記錄之遊戲的使用者而言,該使用者必須擁有一能夠玩該遊戲之視訊遊戲用戶端電腦且必須能夠在該電腦上執行該視訊遊戲應用程式,使得重播記錄之遊戲狀態時遊戲玩法完全相同。除此之外,必須以在記錄之遊戲與播放之遊戲之間不存在可能的執行差異之方式撰寫該視訊遊戲應用程式。
舉例而言,通常以逐圖框方式計算遊戲圖形。對於許多遊戲,遊戲邏輯有時可用比一個圖框時間(frame time)短或長的時間來計算下一圖框所顯示之圖形,此取決於場景是否特別複雜,或是否存在使執行變慢的其他延遲(例如,在一PC上,可能正在執行佔用遊戲應用程式之CPU循環的另一處理程序)。在此遊戲中,最終可出現一在稍微小於一個圖框時間之時間(即幾個CPU時脈循環或更少)中計算出之「臨限」圖框。當再次使用完全相同的遊戲狀態資訊計算相同場景時,其可容易地耗時多於一個圖框時間的幾個CPU時脈循環(例如,若一內部CPU匯流排稍微與一外部DRAM匯流排不同相且其引入幾個CPU循環時間之延遲,即使不存在自佔用遊戲處理之若干毫秒之CPU時間的另一過程之大延遲)。因此,當播放遊戲時,在兩個圖框時間而非單一圖框時間中計算圖框。一些行為係基於遊戲計算一新圖框之頻率(例如,遊戲何時對來自遊戲控制器之輸入取樣)。當玩遊戲時,不同行為在時間參考上之此偏差不影響遊戲玩法,但該偏差可導致播放之遊戲產生一不同結果。舉例而言,若以60 fps之穩定速率計算籃球之發射特性(ballistics),但基於計算之圖框的速率對遊戲控制器輸入取樣,則計算之圖框的速率在記錄遊戲時可為53 fps,而在重播遊戲時為52 fps,此情況可造成是否阻止籃球進入籃筐之差異,從而產生一不同結果。因此,使用遊戲狀態記錄視訊遊戲需要非常仔細的遊戲軟體設計,以確保使用相同遊戲狀態資訊之重播產生完全相同的結果。
用於記錄視訊遊戲之另一先前技術方法為僅記錄一PC或視訊遊戲系統之視訊輸出(例如,記錄至一VCR、DVD記錄器,或記錄至一PC上之一視訊擷取卡)。可接著倒轉並重播該視訊,或者,通常在壓縮之後將該記錄之視訊上載至網際網路。此方法之一缺點在於,當播放一3D遊戲序列時,使用者限於僅自記錄該序列之觀看點觀看該序列。換言之,使用者不能改變場景之觀看點。
此外,當在一家庭PC或遊戲控制台上播放的記錄之遊戲序列之經壓縮之視訊可由其他使用者經由網際網路獲得時,即使該視訊以即時方式壓縮,亦可能不能即時地將該經壓縮之視訊上載至網際網路。其原因在於,世界上連接至網際網路之許多家庭具有極不對稱之寬頻連接(例如,DSL及電纜數據機通常具有遠高於上傳頻寬之下傳頻寬)。壓縮之高解析度視訊序列常常具有高於網路之上傳頻寬容量之頻寬,從而不可能即時地上載該等視訊序列。因此,在播放遊戲序列之後,在網際網路上之另一使用者能夠觀看該遊戲之前,會存在一顯著延遲(也許幾分鐘或甚至幾小時)。雖然此延遲在特定情形下(例如,觀看在一先前時間出現的遊戲玩家玩過的遊戲)可忍受,但該延遲消除觀看一實況比賽(例如,由冠軍玩家參加之一籃球競賽)之能力或具有當播放一實況比賽時「即時重播」的能力。
另一先前技術方法允許一具有一電視機之觀眾觀看實況視訊遊戲,且僅受電視製作人員控制。美國及其他國家的一些電視頻道提供視訊遊戲觀看頻道,其中電視觀眾能夠在視訊遊戲頻道上觀看特定視訊遊戲使用者(例如,參加競賽之頂級玩家)。藉由將視訊遊戲系統(PC及/或控制台)之視訊輸出饋送至電視頻道之視訊散佈及處理設備中來實現此觀看。此情況與電視頻道廣播一實況籃球比賽的情況相同,在該比賽中,若干相機提供籃球場周圍不同角度之實況饋送。電視頻道接著能夠利用其視訊/音訊處理及效果設備操縱來自各種視訊遊戲系統之輸出。舉例而言,電視頻道可將指示不同玩家之狀態的文字覆疊於來自一視訊遊戲之視訊之上(就像電視頻道可在一實況籃球比賽期間覆疊文字),且電視頻道可用一來自一可討論在比賽期間發生之動作的評論員之音訊配音。另外,可將視訊遊戲輸出與比賽之實際玩家的相機記錄視訊組合(例如,展示玩家對遊戲之情緒反應)。
該方法之一問題在於,此實況視訊饋送必須可由電視頻道之視訊散佈及處理設備以即時方式獲得以使其具有實況廣播之刺激性。然而,如先前所論述,當視訊遊戲系統在家庭中執行時,尤其是該廣播之部分包括來自一擷取遊戲玩家之真實世界視訊之相機的實況視訊時,此經常係不可能的。此外,在一競賽情況下,所關心的是家中玩遊戲者可能修改比賽且作弊,如先前所描述。出於此等原因,電視頻道上之此等視訊遊戲廣播經常安排玩家及視訊遊戲系統聚集在一共同位置(例如,聚集在一電視演播室或一競賽場),電視製作設備在該共同位置可接受來自多個視訊遊戲系統及可能的實況相機之視訊饋送。
雖然此等先前技術視訊遊戲電視頻道可將一極精彩表演提供給電視觀眾,該表演為一類似於一實況體育比賽之體驗(例如,在其在視訊遊戲世界中之動作之方面及在其在現實世界中之動作之方面,視訊遊戲玩家表現為「運動員」),但此等視訊遊戲系統經常侷限於玩家實體上彼此接近的情況。且,由於電視頻道經廣播,故每一廣播之頻道僅可展示由電視頻道之製作人員選擇的一個視訊串流。由於此等限制及廣播時間、製作設備及製作人員之高費用,此等電視頻道通常僅展示參加頂級競賽的頂級玩家。
另外,一向所有電視觀眾廣播一視訊遊戲之一全螢幕影像之給定電視頻道一次僅展示一個視訊遊戲。此嚴格限制了電視觀眾之選擇。舉例而言,電視觀眾可能對在一給定時間展示之比賽不感興趣。另一觀眾可能僅對觀看電視頻道在一給定時間未給予特別顯示之一特定玩家之遊戲玩法感興趣。在其他情況下,觀眾可能僅對觀看一老練的玩家如何處置一遊戲中之一特定等級感興趣。另外其他觀眾可能希望控制觀看視訊比賽之觀看點(該觀看點不同於由製作團隊選擇之觀看點)等。簡而言之,即使可利用若干不同電視頻道,電視觀眾亦在觀看視訊遊戲方面可能具有無數偏好,該等視訊遊戲可能並未由電視網路之特定廣播容納。出於所有前述原因,先前技術視訊遊戲電視頻道在將視訊遊戲呈現給電視觀眾方面具有顯著限制。
先前技術視訊遊戲系統及應用程式軟體系統之另一缺點在於,其複雜且常常經受錯誤、毀損及/或不欲且不當之行為(統稱為「程式錯誤」)。雖然遊戲及應用程式在發行之前通常經歷一除錯及調諧過程(常常稱為「軟體品質保證」或SQA),但幾乎不變的是,一旦遊戲或應用程式向此領域中之廣泛受眾發行,程式錯誤會突然出現。不幸的是,軟體開發者難以在發行之後識別且追蹤該等程式錯誤中之許多者。軟體開發者可能難以注意到程式錯誤。即使該等開發者知道一程式錯誤,僅可能存在有限量之資訊可供其用於識別導致該程式錯誤的原因。舉例而言,使用者可撥打一遊戲開發者之客戶服務專線且留下一訊息,其說明在玩遊戲時,螢幕開始閃爍,接著變成純藍色且PC凍結。該訊息為SQA團隊提供在追蹤一程式錯誤中有用的很少資訊。一些以線上方式連接之遊戲或應用程式有時在特定情況下可提供更多資訊。舉例而言,一「看門狗」處理程序有時可用以監視遊戲或應用程式之「毀損」。該看門狗處理程序可收集關於遊戲或應用程式處理程序在毀損時的狀態(例如,堆疊之狀態、記憶體使用之狀態、遊戲或應用程式已進行多少等)之統計資料且接著經由網際網路將該資訊上載至SQA團隊。但是,在一複雜遊戲或應用程式中,解密此資訊以準確地確定使用者在毀損時正在幹什麼可能要花很長時間。即使如此,亦可能不能確定哪一事件序列導致了毀損。
與PC及遊戲控制台相關聯之又一問題在於,其經受使消費者非常不方便的服務問題。服務問題亦影響PC或遊戲控制台之製造商,因為其通常需要發送一特殊框以安全地運送損壞PC或控制台,且若PC或控制台有服務保證,則產生修理費用。遊戲或應用程式軟體發行者亦可由於PC及/控制台處於修理狀態而受銷售損失(或線上服務使用)影響。
圖1說明一先前技術視訊遊戲系統,諸如Sony Playstation 3、Microsoft Xbox 360、Nintendo WiiTM、基於Windows之個人電腦或Apple Macintosh。此等系統中之每一者包括用於執行程式碼之一中央處理單元(CPU)(通常為用於執行高級圖形操作之一圖形處理單元(GPU)),及用於與外部器件及使用者通信的多種形式之輸入端/輸出端(I/O)。為簡單起見,將此等組件組合在一起展示為一單一單元100。亦展示包括以下各者的圖1之先前技術視訊遊戲系統:一光學媒體驅動機104(例如,DVD-ROM驅動機);用於儲存視訊遊戲程式碼及資料之一硬碟機103;用於玩多人遊戲之一網路連接105,其用於下載遊戲、修補程式、示範或其他媒體;用於儲存當前由CPU/GPU 100執行之程式碼的一隨機存取記憶體(RAM)101;用於在玩遊戲期間自使用者接收輸入命令之一遊戲控制器106;及一顯示器件102(例如,一標準清晰度電視(SDTV)/高清晰度電視(HDTV)或一電腦監視器)。
圖1中所示之先前技術系統遭受若干限制。首先,與RAM 101之存取速度相比,光碟機104及硬碟機103傾向於具有慢得多的存取速度。實務上,當直接經由RAM 101工作時,CPU/GPU 100每秒可處理之多邊形遠遠多於當直接自硬碟機103或光碟機104讀取程式碼及資料時可能處理的量,此歸因於RAM 101通常具有更高頻寬且不遭受碟片機構之相對較長搜尋延遲之事實。但是,在此等先前技術系統中僅提供有限量之RAM(例如,256-512百萬位元組)。因此,常常需要一「載入中...」序列,其中RAM 101週期性地填充以視訊遊戲之下一場景之資料。
一些系統嘗試在玩遊戲的同時重疊程式碼之載入,但此重疊僅可在存在事件之一已知序列時進行(例如,若一汽車沿著一道路行駛,則道路旁的漸近的建築物之幾何形狀可在該汽車行駛時載入)。對於複雜及/或快速的場景變化,故此類型之重疊通常不起作用。舉例而言,在使用者處於戰鬥中且RAM 101完全填滿了表示彼時看得見的物件之資料之情況下,若使用者快速地移動視野至左邊以觀看當前未載入於RAM 101中之物件,則將產生動作之不連續性,因為無足夠時間將新物件自硬碟機103或光學媒體104載入至RAM 101中。
圖1之系統之另一問題由於硬碟機103及光學媒體104之儲存容量之限制而出現。雖然可製造具有一相對大儲存容量(例如,50個十億位元組或更大容量)之磁碟儲存器件,但該等磁碟儲存器件仍不能為在當前視訊遊戲中所遇到之特定情境提供足夠儲存容量。舉例而言,如先前所提及,一足球視訊遊戲可允許使用者在世界範圍內的許多球隊、球員及運動場中選擇。對於每一球隊、每一球員及每一運動場,需要許多紋理圖及環境圖來特性化遊戲世界中之3D表面(例如,每一球隊具有一獨特球衣,且每一球衣需要一獨特紋理圖)。
一種用以解決此後一問題之技術為,一旦使用者為遊戲選定了紋理圖及環境圖,便預先計算紋理圖及環境圖。此技術可能涉及許多計算密集型處理程序,包括解壓縮影像、3D製圖、繪影(shading)、組織資料結構等。結果,當視訊遊戲執行此等計算時,使用者可能感覺到延遲。一種減小此延遲之方法原則上為在最初開發該遊戲時執行所有此等計算,包括球隊、球員名冊及運動場之每一排列。遊戲之已發行版本因而可包括儲存於光學媒體104或網際網路上之一或多個伺服器上的此預處理資料之全部,且在使用者作出一選擇後,經由網際網路將一給定球隊、球員名冊、運動場選擇之選定預處理資料下載至硬碟機103。然而,作為一實際問題,玩遊戲中可能的每個排列之此預載入資料很容易為若干太位元組之資料,此遠遠超過現今的光學媒體器件之容量。此外,一給定球隊、球員名冊、運動場選擇之資料很容易為數百個百萬位元組之資料或更多。在一比如說10 Mbps之家庭網路連接下,經由網路連接105下載此資料所用的時間將比於本端計算該資料所用的時間長。
因此,圖1中所示之先前技術遊戲架構使使用者在複雜遊戲之主要場景轉換之間遭受顯著延遲。
諸如圖1中所示之方法的先前技術方法之另一問題在於,這些年來,視訊遊戲傾向於變得更加高級且需要更高CPU/GPU處理能力。因此,即使假設一無限量之RAM,視訊遊戲硬體需求仍超出此等系統中可用之處理能力之峰值等級。結果,需要使用者每隔幾年對遊戲硬體升級以跟得上當前技術(或在較低品質等級下玩較新遊戲)。視訊遊戲不斷變高級之趨勢之一結果為供家庭使用之視訊遊戲播放機通常在經濟上效率低下,因為其費用通常由其可支援之最高效能遊戲之需求確定。舉例而言,XBox 360可用以玩一如「Gears of War」之遊戲,其要求一高效能CPU、GPU及數百個百萬位元組之RAM,或XBox 360可用以玩Pac Man,一種20世紀70年代之遊戲,其僅需要幾千位元組之RAM及一極低效能CPU。實際上,XBox 360具有足以同時代管許多同時進行的Pac Man遊戲之計算能力。
視訊遊戲機在一週中的大部分時間通常關閉。根據2006年7月之對13歲及以上之作用中玩家之Nielsen娛樂研究,作用中玩家平均每週將十四個小時或僅一週之總時間的12%用來玩視訊遊戲控制台。此意謂著平均視訊遊戲控制台在88%的時間中閒置,此係對昂貴資源之低效率使用。若視訊遊戲控制台常常由製造商補貼以降低購買價格(期望可藉由未來的視訊遊戲軟體購買之版稅賺回補貼),則此情況特別顯著。
視訊遊戲控制台亦產生與幾乎任何消費型電子器件相關聯之費用。舉例而言,該等系統之電子器件及機構必須收納在一外殼中。製造商必須提供一服務保證。銷售該系統之零售商必須自系統之銷售及/或自視訊遊戲軟體之銷售獲得利潤。所有此等因素增加視訊遊戲控制台之成本,此成本增加必須由製造商來補貼、轉嫁給消費者或其兩者。
另外,盜版為視訊遊戲產業之主要問題。實質上每個主要視訊遊戲系統上所利用之保全機制這些年來已「崩潰」,從而導致視訊遊戲之未經授權複製。舉例而言,Xbox 360保全系統在2006年7月崩潰,且使用者如今能夠以線上方式下載非法複本。可下載之遊戲(例如,PC或Mac之遊戲)特別容易受盜版侵害。在世界上盜版管制不力的某些地區,實質上不存在獨立視訊遊戲軟體之可生存市場,因為使用者可用很少的費用買到盜版複本,就像購買合法複本一樣容易。此外,在世界上的許多地方,遊戲控制台之成本占收入之很高百分率,使得即使盜版得到控制,亦很少有人能負擔起當前技術水平遊戲系統。
另外,舊遊戲市場使視訊遊戲產業之收益減少。當一使用者對一遊戲感到厭倦時,其可將該遊戲銷售給一商店,該商店將該遊戲轉售給其他使用者。此未經授權但很常見之慣例使遊戲發行者之收益顯著減少。類似地,當每幾年出現一次平台轉換時,通常出現約50%的銷量減少。此係因為使用者在其知道較新版本之平台即將發行時停止購買用於較舊平台之遊戲(例如,當Playstation 3即將發行時,使用者停止購買Playstation 2遊戲)。綜合起來,銷售損失及與新平台相關聯之增加的開發費用可對遊戲開發者之收益具有一特別重大的不良影響。
新遊戲控制台亦非常昂貴。Xbox 360、Nintendo Wii及Sony Playstation 3之零售價格全部為幾百美元。高性能個人電腦遊戲系統之價格可高達$8000。特別考慮到硬體在幾年之後變得無用及許多系統係為兒童購買的之事實,此表示使用者之一重大投資。
前述問題之一解決方法為線上遊戲,其中在一伺服器上代管遊戲程式碼及資料且視需要將其作為在一數位寬頻網路上串流之經壓縮之視訊及音訊傳遞至用戶端機器。諸如芬蘭之G-Cluster(現為日本的SOFTBANK Broadmedia之一子公司)的一些公司目前以線上方式提供此等服務。類似遊戲服務已變得可在區域網路中獲得,諸如在旅館內且由DSL及有線電視提供者提供之區域網路。此等系統之一主要缺點為延時(亦即,信號行進至遊戲伺服器及自遊戲伺服器行進所用的時間)之問題,遊戲伺服器通常位於一業者之「頭端(head-end)」。快速動作視訊遊戲(亦稱為「抽動(twitch)」視訊遊戲)在使用者用遊戲控制器執行一動作的時刻與顯示幕經更新而展示使用者動作之結果的時刻之間需要極低延時。低延時係必需的,使得使用者具有該遊戲係「立即」回應的感覺。視遊戲之類型及使用者之技能等級而定,使用者可對不同延時間隔感到滿意。舉例而言,100毫秒之延時係一緩慢休閒遊戲(如backgammon)或一慢動作角色扮演遊戲可忍受的,但在一快速動作遊戲中,超過70毫秒或80毫秒之延時可導致使用者在遊戲中表現較差且因此不可接受。舉例而言,在一需要快速反應時間之遊戲中,當延時自50毫秒增加至100毫秒時,準確度急劇下降。
當將一遊戲或應用程式伺服器安裝在一附近受控網路環境中或至使用者之網路路徑可預測及/或可容忍頻寬峰值之網路環境中時,就最大延時而言且就延時之一致性而言,很容易控制延時(例如,因此,使用者觀測來自經由網際網路串流之數位視訊之穩定運動)。可在有線電視網路頭端與有線電視用戶之家之間,或自DSL總局至DSL用戶之家,或在一伺服器或一使用者之商務辦事處區域網路(LAN)環境中達成此控制等級。此外,可能在具有保證頻寬及延時的企業之間獲得特別分級之點對點私用連接。但是,在於一連接至一般網際網路之伺服器中心中代管遊戲且接著經由一寬頻連接將經壓縮之視訊串流至使用者的遊戲或應用程式系統中,延時由許多因素引起,從而導致對先前技術系統之部署的嚴格限制。
在一典型寬頻連接家庭中,使用者可具有用於寬頻服務之DSL或電纜數據機。此等寬頻服務通常引起使用者之家與一般網際網路之間的多達25毫秒之往返延時(有時更高)。另外,存在由經由網際網路投送資料至一伺服器中心引起之往返延時。經由網際網路之延時基於給出資料之路徑及在投送資料時引起之延遲而改變。除路由延遲以外,往返延時亦由光通過互連大部分網際網路之光纖之速度引起。舉例而言,歸因於光通過光纖之速度及其他額外負擔,引起每1000哩大約22毫秒之往返延時。
歸因於串流通過網際網路之資料之資料速率,可出現額外延時。舉例而言,若一使用者具有一作為「6Mbps DSL服務」銷售之DSL服務,則實務上,該使用者最多可能得到小於5Mbps之下傳輸送量,且很可能看到:連接歸因於各種因素(諸如,數位用戶線存取多工器(DSLAM)在峰值載入時間期間的壅塞)而週期性地降級。在於環路通過鄰域之區域共用同軸電纜中或在電纜數據機系統網路中之其他地方中存在壅塞的情況下,可能出現一類似問題:用於作為「6Mbps電纜數據機服務」銷售之一連接之一電纜數據機的資料速率被減少至遠小於彼資料速率。若4Mbps之穩定速率之資料封包係以使用者資料報協定(UDP)格式經由此等連接單向地自一伺服器中心串流,若一切順利進行,則該等資料封包將通過而不引起額外延時,但若存在壅塞(或其他障礙)且僅3.5Mbps可用於將資料串流至使用者,則在典型情況下,封包將被丟棄,從而導致資料丟失,或封包將在壅塞點處排入佇列,直至可發送該等封包,藉此引入額外延時。不同壅塞點具有保持延遲之封包之不同佇列容量,因此,在一些情況下,立即丟棄不能通過壅塞之封包。在其他情況下,若干百萬位元之資料要排入佇列且最終被發送。但是,在幾乎所有情況下,壅塞點處之佇列具有容量限制,且一旦超過彼等限制,該等佇列將溢出且封包將被丟棄。因此,為了避免引起額外延時(或更糟情況,封包丟失),必須避免超過自遊戲或應用程 式伺服器至使用者之資料速率容量。
伺服器壓縮視訊及用戶端器件解壓縮視訊所需之時間亦引起延時。當一在一伺服器上執行之視訊遊戲正在計算待顯示的下一圖框時,進一步引起延時。當前可用之視訊壓縮演算法遭受高資料速率或高延時。舉例而言,運動JPEG為一以低延時為特性之僅圖框內有損壓縮演算法。視訊之每一圖框獨立於視訊之每一其他圖框而壓縮。在一用戶端器件接收到經壓縮之運動JPEG視訊之一圖框時,該用戶端器件可立即解壓縮該圖框且顯示該圖框,從而導致極低延時。但是,因為每一圖框係分開壓縮,所以該演算法不能利用連續圖框之間的相似性,且結果,僅圖框內視訊壓縮演算法遭受極高的資料速率。舉例而言,60fps(每秒圖框)之640x480運動JPEG視訊可需要40Mbps(每秒百萬位元)或更高速率之資料。在許多寬頻應用(且無疑對於大部分消費者而言,基於網際網路之應用)中,此等低解析度視訊視窗之此等高資料速率費用高得驚人。此外,因為獨立地壓縮每一圖框,所以圖框中可能由有損壓縮引起之假影可能出現在連續圖框中之不同位置。此可導致在視訊經解壓縮後呈現給觀眾的是一移動之視覺假影。
諸如MPEG2、H.264或Microsoft Corporation之VC9的其他壓縮演算法在其用於先前技術組態時可達成高壓縮比率,但高壓縮比率是以高延時為代價的。此等演算法利用圖框間以及圖框內壓縮。此等演算法週期性地對一圖框執行一僅圖框內壓縮。將此圖框稱為關鍵圖框(key frame)(通常被稱為「I」圖框)。接著,此等演算法通常比較I圖框與先前圖框及後續圖框。並非獨立地壓縮先前圖框及後續圖框,該演算法確定影像中已在I圖框與先前圖框及後續圖框之間發生的變化,且接著將彼等變化儲存為稱為「B」圖框(在I圖框之前的變化)及「P」圖框(在I圖框之後的變化)。此導致比僅圖框內壓縮低得多的資料速率。但是,該演算法通常以較高延時為代價而實現。I圖框比B或P圖框大得多(常常為其10倍),且結果,以一給定資料速率傳輸I圖框所用之時間成比例增長。
舉例而言,考慮如下情況:I圖框之大小為B圖框及P圖框的10倍,且每個單一I內圖框存在29個B圖框+30個P圖框=59個中間圖框,或每一「圖框群組」(GOP)總共有60個圖框。因此,在60 fps下,每一秒有1個60圖框之GOP。假設傳輸頻道具有一2 Mbps之最大資料速率。為了在該頻道中達成最高品質視訊,該壓縮演算法可產生一2 Mbps資料串流,且給定以上比率,此可導致每個內圖框2百萬位元(Mb)/(59+10)=30,394個位元且每個I圖框303,935個位元。當藉由解壓縮演算法接收經壓縮之視訊串流時,為了穩定地播放該視訊,必須解壓縮每一圖框且以規則間隔(例如,60 fps)顯示。為達成此結果,若任何圖框經受傳輸延時,則所有圖框必須延遲至少該延時,因此,最壞情況圖框延時將界定每個視訊圖框之延時。該等I圖框由於其最大而引入最長的傳輸延時,且整個I圖框將必須在解壓縮及顯示該I圖框(或任何相依於該I圖框之中間圖框)之前接收。若頻道資料速率為2 Mbps,則傳輸一I圖框將耗時303,935/2Mb=145毫秒。
歸因於I圖框相對於一圖框之平均大小的較大大小,一如上所述之使用傳輸頻道之頻寬的大百分率的圖框間視訊壓縮系統將經受長延時。或者,換言之,儘管先前技術圖框間壓縮演算法達成一比僅圖框內壓縮演算法低的平均每圖框資料速率(例如,2 Mbps對40 Mbps),但該等演算法由於大的I圖框而仍遭受一高峰值每圖框資料速率(例如,303,935*60=18.2 Mbps)。應記住,儘管如此,以上分析假設P圖框及B圖框均比I圖框小得多。雖然此情況通常真實,但對於具有與先前圖框不相關、高運動或場景變化之高影像複雜性的圖框並不成立。在此等情況下,P圖框或B圖框可變得與I圖框一樣大(若一P或B圖框變得大於一I圖框,則一完善之壓縮演算法通常將「強加」一I圖框且用一I圖框替代P或B圖框)。因此,I圖框大小之資料速率峰值可在任何時刻在一數位視訊串流中出現。因此,對於經壓縮之視訊,當平均視訊資料速率接近傳輸頻道之資料速率容量時(此係常見情況,給定對視訊之高資料速率要求),I圖框或大的P或B圖框之高峰值資料速率導致一高圖框延時。
當然,以上論述僅特性化由GOP中之大的B、P或I圖框造成之壓縮演算法延時。若使用B圖框,則延時會更高。其原因在於,在可顯示一B圖框之前,必須接收在該B圖框之後的所有B圖框及該I圖框。因此,在一諸如BBBBBIPPPPPBBBBBIPPPPP(其中每一I圖框之前有5個B圖框)之圖像群組(GOP)序列中,在接收到隨後B圖框及I圖框之前,第一個B圖框不能由視訊解壓縮器顯示。因此,若視訊正以60 fps(亦即,16.67毫秒/圖框)串流,則在可解壓縮第一個B圖框之前,不管頻道頻寬有多大,將耗時16.67*6=100毫秒來接收五個B圖框及該I圖框,且此僅具有5個B圖框。具有30個B圖框之經壓縮之視訊序列相當普遍。且,在低頻道頻寬(如2 Mbps)下,I圖框之大小所導致的延時影響主要附加至由等待B圖框到達引起之延時影響。因此,在一2 Mbps頻道上,對於許多B圖框,使用先前技術視訊壓縮技術很容易超過500毫秒之延時或更長的延時。若未使用B圖框(以給定品質等級之較低壓縮比率為代價),則未引起B圖框延時,但仍引起上述的峰值圖框大小所導致的延時。
許多視訊遊戲之性質使該問題惡化。利用上述GOP結構之視訊壓縮演算法已很大程度上經最佳化以供意欲用於被動觀看之實況視訊或動畫材料使用。通常,相機(不論是真實相機,還是一電腦產生之動畫情況下之一虛擬相機)及場景相對穩定,僅僅因為,若相機或場景過於顫抖地到處移動,則觀看該視訊或電影材料(a)通常令人不愉快,且(b)若正在觀看,則觀眾通常未嚴密注視相機突然顫抖時的動作(例如,若相機在拍攝一孩子吹滅生日蛋糕上之蠟燭時受衝擊且突然顫抖地離開蛋糕並復原,則觀眾通常集中在孩子及蛋糕上,且忽視了當相機突然移動時的短暫中斷)。在視訊面談或視訊電話會議之情況下,相機可固持在一固定位置且完全不移動,從而根本導致極少的資料峰值。但是,3D高動作性視訊遊戲之特性在於不斷運動(例如,考慮3D賽車,其中整個圖框在比賽之持續時間期間快速運動,或考慮第一人稱射擊者,其中虛擬相機始終顫抖地到處移動)。此等視訊遊戲可產生具有大且頻繁之峰值的圖框序列,其中使用者可能必須清楚地看到在彼等突然運動期間發生的事。因此,壓縮假影在3D高動作性視訊遊戲中較不可容忍。因此,許多視訊遊戲之視訊輸出由於其性質而產生一具有極高且頻繁之峰值的經壓縮之視訊串流。
若快速動作視訊遊戲之使用者幾乎不能容忍高延時,且給出全部的延時之以上原因,則迄今,已存在對在網際網路上串流視訊之伺服器代管之視訊遊戲的限制。此外,若在一般網際網路上代管應用程式且應用程式串流視訊,則需要一高度互動性之應用程式之使用者遭受類似限制。此等服務需要一網路組態,其中代管伺服器在一商業環境中直接設定在一頭端(電纜寬頻之情況)或總局(數位用戶線(DSL)之情況)中或在一LAN中(或在一特殊分級之私用連接上),使得自用戶端器件至伺服器之路線及距離受控制以使延時變得最小,且可適應峰值而不引起延時。具有足夠頻寬之LAN(通常具有100 Mbps-1 Gbps之速率)及租用線路通常可支援峰值頻寬需求(例如,18 Mbps之峰值頻寬為一100 Mbps LAN容量之一小部分)。
若形成特殊設施,則住宅寬頻基礎結構亦可適應峰值頻寬需求。舉例而言,在一有線電視系統上,可給予數位視訊訊務專用頻寬,其可處置諸如大型I圖框之峰值。且,在一DSL系統上,可提供一較高速度之DSL數據機,從而允許高峰值,或可提供一可處置一較高資料速率的特殊分級之連接。但是,附接至一般網際網路之習知電纜數據機及DSL基礎結構遠遠不能滿足經壓縮之視訊之峰值頻寬需求。因此,線上服務(其在距離用戶端器件很遠的伺服器中心中代管視訊遊戲或應用程式,且接著經由習知住宅寬頻連接在網際網路上串流經壓縮之視訊輸出)遭受顯著延時及峰值頻寬限制,特別相對於需要極低延時之遊戲及應用程式(例如,第一人稱射擊者及其他多使用者的互動式動作遊戲,或需要一快速回應時間之應用程式)。
自隨後的[實施方式]及自隨附圖式將更全面地理解本發明,然而,該等隨附圖式不應被認為將所揭示之標的侷限於所展示之特定實施例,而是僅用於解釋及理解。
在以下描述中,陳述諸如器件類型、系統組態、通信方法等特定細節,以提供對本發明之透徹理解。然而,一般熟習相關技術者將瞭解,可能並非必需此等特定細節來實踐所描述之實施例。
圖2a至圖2b提供兩個實施例之高階架構,其中視訊遊戲及軟體應用程式由主機代管服務210代管且由使用者場所211處之用戶端器件205經由網際網路206(或其他公眾或私用網路)以訂用服務存取(請注意,「使用者場所」意謂著使用者所處之位置,包括使用行動器件時的戶外)。用戶端器件205可為諸如基於Microsoft Windows或基於Linux之PC或Apple,Inc. Macintosh電腦之通用電腦(具有至網際網路之一有線或無線連接),其具有內部或外部顯示器件222,或者該等用戶端器件可為專用用戶端器件,諸如輸出視訊及音訊至一監視器或電視機222之視訊轉換器(具有至網際網路之有線或無線連接),或者該等用戶端器件可為行動器件,其可能具有至網際網路之無線連接。
此等器件中之任一者可具有其自身的使用者輸入器件(例如,鍵盤、按鈕、觸控螢幕、軌跡板或慣性感測棒、視訊擷取相機及/或運動追蹤相機等),或者該等器件可使用以有線或無線方式連接之外部輸入器件221(例如,鍵盤、滑鼠、遊戲控制器、慣性感測棒、視訊擷取相機及/或運動追蹤相機等)。如下文更詳細描述,主機代管服務210包括各種效能等級之伺服器,包括具有高性能CPU/GPU處理能力之伺服器。在玩主機代管服務210上之遊戲或使用主機代管服務210上之應用程式期間,家庭或辦公室用戶端器件205自使用者接收鍵盤及/或控制器輸入,且接著,該用戶端器件經由網際網路206將該控制器輸入傳輸至主機代管服務210,該主機代管服務作為回應執行遊戲程式碼且產生遊戲或應用程式軟體之視訊輸出之連續圖框(視訊影像之一序列)(例如,若使用者按壓一導向螢幕上之一角色向右移動之按鈕,則遊戲程式會接著形成展示該角色正向右移動的視訊影像之一序列)。接著使用一低延時視訊壓縮器壓縮視訊影像之此序列,且主機代管服務210接著經由網際網路206傳輸低延時視訊串流。該家庭或辦公室用戶端器件接著解碼該經壓縮之視訊串流且於一監視器或TV上再現解壓縮之視訊影像。因此,用戶端器件205之計算及圖形硬體需求顯著減少。用戶端205僅必須具有將鍵盤/控制器輸入轉發至網際網路206及解碼且解壓縮一自網際網路206接收之經壓縮之視訊串流之處理能力,實質上,現今任何個人電腦能夠在其CPU上以軟體進行此處理(例如,以大約2 GHz執行之Intel Corporation Core Duo CPU能夠解壓縮使用諸如H.264及Windows Media VC9之壓縮器編碼之720p HDTV)。且,在任何用戶端器件之情況下,專用晶片亦可比通用CPU(諸如,一現代PC可能需要之CPU)低得多的費用及少得多的電力消耗即時地執行此等標準之視訊解壓縮。值得注意,為了執行轉發控制器輸入及解壓縮視訊之功能,家庭用戶端器件205不需要任何專門圖形處理單元(GPU)、光碟機或硬碟機,諸如圖1中所示之先前技術視訊遊戲系統。
隨著遊戲及應用程式軟體變得更複雜且更相片真實感化,遊戲及應用程式可能需要較高效能之CPU、GPU、較多RAM及較大且較快之磁碟機,且可能要繼續升級主機代管服務210之計算能力,但終端使用者無需更新家庭或辦公室用戶端平台205,因為在利用給定視訊解壓縮演算法的情況下,關於顯示解析度及圖框速率,該平台之處理需求將保持恆定。因此,現今看到的硬體限制及相容性問題並不存在於圖2a至圖2b中所說明之系統中。
此外,因為遊戲及應用程式軟體僅在主機代管服務210中之伺服器中執行,所以使用者之家中或辦公室中絕不會有遊戲或應用程式軟體之複本(呈光學媒體之形式,或作為下載之軟體)(除非另有限定,否則本文中所使用之「辦公室」應包括任何非住宅環境,包括例如教室)。此顯著減小一遊戲或應用程式軟體被非法複製(被盜版)之可能性,亦可能減小一可由一遊戲或應用程式使用的有價值資料庫被盜版之可能性。實際上,若需要實際不適合家庭或辦公室使用之專門伺服器(例如,需要非常昂貴、大型或有噪音之設備)來玩遊戲或應用程式軟體,則即使獲得遊戲或應用程式軟體之盜版複本,亦不能在家中或辦公室操作其。
在一實施例中,主機代管服務210提供軟體開發工具給設計視訊遊戲之遊戲或應用程式軟體開發者(其通常指代軟體開發公司、遊戲或電影工作室,或遊戲或應用程式軟體發行者)220,使得遊戲或應用程式軟體開發者可設計能夠在主機代管服務210上執行之遊戲。此等工具允許開發者利用在一獨立PC或遊戲控制台中通常不可用的主機代管服務之特徵(例如,對複雜幾何形狀之特大資料庫之快速存取(除非另有限定,否則「幾何形狀」在本文中應用以指代多邊形、紋理、裝置裝配(rigging)、照明、行為及定義3D資料集之其他分量及參數))。
在此架構下可能存在不同企業模型。在一模型下,主機代管服務210自終端使用者收取訂用費且向開發者220支付版稅,如圖2a中所示。在一替代實施中,如圖2b中所示,開發者220直接自使用者收取訂用費且為代管遊戲或應用程式內容向主機代管服務210付費。此等基本原理不限於用於提供線上遊戲或應用程式代管之任何特定企業模型。
經壓縮之視訊之特性
如先前所論述,以線上方式提供視訊遊戲服務或應用程式軟體服務之一顯著問題為延時問題。70毫秒至80毫秒之延時(自使用者致動一輸入器件時起至一回應顯示於顯示器件上)為需要快速回應時間之遊戲及應用程式之上限。然而,歸因於許多實際及實體約束,在圖2a及圖2b中所示之架構的情況下極難達成此延時。
如圖3中所指示,當一使用者訂用一網際網路服務時,通常按照至使用者之家庭或辦公室之標稱最大資料速率301對連接定額。視提供者之策略及路由設備能力而定,該最大資料速率或多或少可受到嚴格施行,但由於許多不同原因中之一者,實際可用資料速率通常較低。舉例而言,在DSL總局或在本端電纜數據機迴路上可能存在過多網路訊務,或者電纜線上可能存在造成丟棄封包之雜訊,或者提供者可確定每個使用者每月之最大位元數。目前,電纜及DSL服務之最大下傳資料速率通常介於幾百個千位元/秒(Kbps)至30 Mbps。蜂巢式服務通常限於幾百個Kbps之下傳資料。然而,寬頻服務之速度及訂用寬頻服務的使用者之數目會隨時間急劇增加。目前,一些分析家估計33%的美國寬頻用戶具有一2 Mbps或更高的下傳資料速率。舉例而言,一些分析家預測,到2010年,85%以上的美國寬頻用戶將具有一2 Mbps或更高的資料速率。
如圖3中所指示,實際可用最大資料速率302可隨時間波動。因此,在低延時的線上遊戲或應用程式軟體之情況下,有時難以預測一特定視訊串流之實際可用資料速率。若對一特定量之場景複雜性及運動在給定解析度及給定每秒圖框數目(fps)(例如,60 fps下的640×480)下維持一給定品質等級所需之資料速率303超過實際可用最大資料速率302(如圖3中之峰值所指示),則可能出現若干問題。舉例而言,一些網際網路服務將僅丟棄封包,從而導致使用者之視訊螢幕上資料丟失及影像失真/丟失。其他服務將臨時對額外封包進行緩衝(亦即,排入佇列)且以可用資料速率將該等封包提供給用戶端,從而導致延時增加,其係許多視訊遊戲及應用程式不可接受之結果。最後,一些網際網路服務提供者將該資料速率增加看作為一惡意攻擊,諸如阻斷服務攻擊(駭客用以停用網路連接之熟知技術),且使使用者之網際網路連接中斷一規定時間段。因此,本文中所描述之實施例設法確保一視訊遊戲之所需資料速率不超過可用最大資料速率。
主機代管服務架構
圖4a說明根據一實施例之主機代管服務210之架構。主機代管服務210可位於一單一伺服器中心中,或可分散於複數個伺服器中心上(以為使用者提供較低延時連接(該等使用者至特定伺服器中心比至其他伺服器中心具有較低延時路徑),提供使用者間之負載平衡,且在一或多個伺服器中心故障之情況下提供冗餘度)。主機代管服務210最終可包括幾十萬或甚至幾百萬個伺服器402,該等伺服器伺服一極大的使用者庫。主機代管服務控制系統401提供對主機代管服務210之總體控制,且指導路由器、伺服器、視訊壓縮系統、記賬及帳戶處理系統等。在一實施例中,主機代管服務控制系統401係實施在一分散式基於Linux之處理系統上,該系統連結至用以儲存使用者資訊、伺服器資訊及系統統計資料之資料庫的獨立磁碟冗餘陣列(RAID)。在前述描述中,藉由主機代管服務控制系統401來起始及控制由主機代管服務210實施的各種動作(除非該等動作歸因於其他特定系統)。
主機代管服務210包括許多伺服器402,諸如目前可自Intel、IBM及Hewlett Packard及其他公司購得的伺服器。或者,該等伺服器402可以組件之一定製組態組裝,或最終可整合,使得整個伺服器實施為一單一晶片。雖然此圖出於說明原因而展示少量伺服器402,但在實際部署中,可能存在少則一個伺服器402,或多至上百萬個伺服器402,或更多伺服器。伺服器402可全部以相同方式組態(作為組態參數中之一些之一實例,具有相同的CPU類型及效能;具有或不具GPU,且若具有GPU,則具有相同的GPU類型及效能;具有相同數目之CPU及GPU;具有相同量之RAM及相同的RAM類型/速度;及具有相同RAM組態),或伺服器402之各種子集可具有相同組態(例如,25%的伺服器可以一特定方式組態,50%的伺服器以一不同方式組態,且25%的伺服器以另一方式組態),或每一個伺服器402可不同。
在一實施例中,伺服器402無磁碟,亦即,並非具有其本身的本端大容量儲存器(其為光學或磁性儲存器,或諸如快閃記憶體之基於半導體之儲存器,或伺服類似功能之其他大容量儲存構件),每一伺服器經由快速背板或網際網路連接存取共用大容量儲存器。在一實施例中,此快速連接為一連接至一系列獨立磁碟冗餘陣列(RAID)405之儲存區域網路(SAN)403,且器件之間的連接使用十億位元乙太網路來實施。如熟習此項技術者已知,SAN 403可用以將許多RAID陣列405組合在一起,從而導致極高頻寬,接近或可能超過自當前遊戲控制台及PC中所使用之RAM可獲得的頻寬。因此,雖然基於旋轉媒體(諸如磁性媒體)之RAID陣列常常具有顯著的搜尋時間(seek-time)存取延時,但基於半導體儲存器之RAID陣列可以低得多的存取延時來實施。在另一組態中,伺服器402中之一些或全部於本端提供其自身的大容量儲存器中之一些或全部。舉例而言,伺服器402可將頻繁存取之資訊(諸如,其作業系統及一視訊遊戲或應用程式之一複本)儲存於低延時的本端基於快閃記憶體之儲存器上,但該伺服器可利用SAN以較低頻率存取具有較高搜尋延時之基於旋轉媒體之RAID陣列405,以存取幾何形狀或遊戲狀態資訊之大型資料庫。
另外,在一實施例中,主機代管服務210使用下文將詳細描述之低延時視訊壓縮邏輯404。視訊壓縮邏輯404可以軟體、硬體或其任何組合實施(將在下文中描述該邏輯之特定實施例)。視訊壓縮邏輯404包括用於壓縮音訊以及視覺材料之邏輯。
在操作中,當經由一鍵盤、滑鼠、遊戲控制器或其他輸入器件421在使用者場所211玩視訊遊戲或使用應用程式時,用戶端415上之控制信號邏輯413將表示使用者致動之按鈕按壓(及其他類型之使用者輸入)的控制信號406a-b(通常呈UDP封包之形式)傳輸至主機代管服務210。將來自一給定使用者之控制信號投送至適當伺服器(或諸多伺服器,若多個伺服器對該使用者之輸入器件有反應)402。如圖4a中所說明,控制信號406a可經由SAN投送至伺服器402。另外或其他,控制信號406b可經由主機代管服務網路(例如,一基於乙太網路之區域網路)直接投送至伺服器402。不管控制信號係以何種方式傳輸,該或該等伺服器均回應於控制信號406a-b執行遊戲或應用程式軟體。雖然圖4a中未說明,但諸如防火牆及/或閘道器之各種網路連接組件可在主機代管服務210之邊緣(例如,在主機代管服務210與網際網路410之間)及/或在介於網際網路410與家庭或辦公室用戶端415之間的使用者場所211之邊緣處理傳入及傳出訊務。將已執行的遊戲或應用程式軟體之圖形及音訊輸出(亦即,視訊影像之新序列)提供給低延時視訊壓縮邏輯404,其根據低延時視訊壓縮技術(諸如,本文中所描述之視訊壓縮技術)壓縮視訊影像之該等序列,且經由網際網路410(或如下文所描述,經由一繞過一般網際網路之最佳化高速網路服務)將一經壓縮之視訊串流(通常具有經壓縮或未經壓縮之音訊)傳輸回至用戶端415。用戶端415上之低延時視訊解壓縮邏輯412接著解壓縮視訊串流及音訊串流且在顯示器件422上再現該經解壓縮之視訊串流且通常播放該經解壓縮之音訊串流。或者,可用與顯示器件422分離之揚聲器播放該音訊或根本不播放該音訊。請注意,儘管輸入器件421及顯示器件422在圖2a及圖2b中經展示為獨立器件之事實,但該等器件可整合在諸如可攜式電腦或行動器件之用戶端器件中。
家庭或辦公室用戶端415(先前在圖2a及圖2b中描述為家庭或辦公室用戶端205)可為一非常廉價且低功率之器件(具有極有限的計算或圖形效能)且很可能具有極有限的本端大容量儲存器或不具有本端大容量儲存器。與之相比,耦接至一SAN 403及多個RAID 405之每一伺服器402可為一格外高效能之計算系統,且實際上,若在一並行處理組態中以合作方式使用多個伺服器,則幾乎不存在對可利用的計算及圖形處理能力之量的限制。因此,由於低延時視訊壓縮404及低延時視訊解壓縮412,故使用者可感知,正將伺服器402之計算能力提供給使用者。當使用者按壓輸入器件421上之一按鈕時,顯示器422上之影像回應於按鈕按壓而更新,感覺上無大的延遲,就好像遊戲或應用程式軟體在本端執行一樣。因此,在利用為極低效能電腦或僅為實施低延時視訊解壓縮及控制信號邏輯413之廉價晶片的家庭或辦公室用戶端415的情況下,使用者有效地具備來自一遠端位置的任意計算能力,其看起來似乎可於本端獲得。此給予使用者玩最高級處理器密集型(通常為新)視訊遊戲及最高效能應用程式之能力。
圖4c展示一非常基本且廉價的家庭或辦公室用戶端器件465。此器件為來自圖4a及圖4b之家庭或辦公室用戶端415之一實施例。該器件大約2吋長。該器件具有一與具有乙太網路電源(PoE)之乙太網路電纜介接的乙太網路插口462,該乙太網路插口462自該電纜取得其電力及至網際網路之連接性。其能夠在一支援網路位址轉譯(NAT)之網路中執行NAT。在辦公室環境中,許多新型乙太網路交換器具有PoE且直接將PoE送達辦公室中之乙太網路插口。在此情形下,所需的僅為一自牆壁插口(wall jack)至用戶端465之乙太網路電纜。若可用乙太網路連接不帶電源(例如,在具有DSL或電纜數據機而無PoE之家庭中),則可以利用廉價的牆壁「磚塊」(亦即,電源供應器),其接受一無電源乙太網路電纜且輸出具有PoE之乙太網路。
用戶端465含有耦接至一藍芽無線介面之(圖4a之)控制信號邏輯413,該藍芽無線介面與藍芽輸入器件479(諸如,鍵盤、滑鼠、遊戲控制器及/或麥克風及/或頭戴式耳機)介接。此外,用戶端465之一實施例能夠以120fps輸出視訊,且與顯示器件468及一副快門眼鏡466耦接,該顯示器 件能夠支援120fps之視訊及信號(通常經由紅外線),且該快門眼鏡用每一連續圖框交替地遮蔽一隻眼,接著遮蔽另一隻眼。使用者感覺到的效果為一「跳出」顯示幕之立體3D影像。一支援此操作之此顯示器件468為Samsung HL-T5076S。由於針對每一隻眼之視訊串流為分開的,故在一實施例中,主機代管服務210壓縮兩個獨立視訊串流,該等圖框在時間上交錯,且該等圖框係作為用戶端465中之兩個獨立解壓縮處理程序而解壓縮。
用戶端465亦含有低延時視訊解壓縮邏輯412,其解壓縮傳入視訊及音訊且經由高清晰度多媒體介面(HDMI)連接器463輸出,該連接器插入至標準清晰度電視(SDTV)或高清晰度電視(HDTV)468中,從而為TV提供視訊及音訊,或插入至支援HDMI之監視器468中。若使用者之監視器468不支援HDMI,則可以使用一HDMI-to-DVI(數位視訊介面),但音訊會丟失。根據HDMI標準,顯示能力(例如,支援之解析度、圖框速率)464傳達自顯示器件468,且接著經由網際網路連接472將此資訊傳遞回至主機代管服務210,因此,該主機代管服務可以一適合於顯示器件之格式串流經壓縮之視訊。
圖4d展示一家庭或辦公室用戶端器件475,除該用戶端器件具有更多外部介面之外,其與圖4c中所示之家庭或辦公室用戶端器件465相同。此外,用戶端475可接受用PoE供電,或其可用一插入於牆壁中之外部電源供應配接器(圖中未展示)。使用用戶端475 USB輸入,視訊相機477將經壓縮之視訊提供給用戶端475,該經壓縮之視訊由用戶端475上載至主機代管服務210以用於下文所描述之用途。一利用下文所描述之壓縮技術之低延時壓縮器內建於相機477中。
除具有用於網際網路連接之一乙太網路連接器之外,用戶端475亦具有至網際網路之一802.11g無線介面。該等介面均能夠在一支援NAT之網路中使用NAT。
此外,除具有用以輸出視訊及音訊的一HDMI連接器之外,用戶端475亦具有一雙鏈路DVI-I連接器,其包括類比輸出端(且一標準配接器將提供VGA輸出端)。該用戶端亦具有用於複合視訊及S視訊之類比輸出端。
對於音訊,用戶端475具有左/右類比立體聲RCA插口,而對於數位音訊輸出,用戶端475具有一TOSLINK輸出端。
除至輸入器件479之一藍芽無線介面之外,該用戶端亦具有用以介接至輸入器件之USB插口。
圖4e展示用戶端465之內部架構之一實施例。圖中所示之該等器件之全部或一些可實施於一場可程式化邏輯陣列中,實施於一定製ASIC中,或實施於定製設計或現成的若干離散器件中。
具有PoE之乙太網路497附接至乙太網路介面481。電源499來源於具有PoE之乙太網路497且連接至用戶端465中之其他器件。匯流排480為用於器件間之通信的一共用匯流排。
執行一來自快閃記憶體476之小型用戶端控制應用程式之控制CPU483(幾乎任何小型CPU皆可勝任,諸如100 MHz之具有嵌式RAM之MIPS R4000系列CPU)實施網路之協定堆疊(亦即,乙太網路介面)且亦與主機代管服務210通信,且組態用戶端465中之所有器件。該控制CPU亦處置與輸入器件469之介面且將封包隨使用者控制器資料(其在必要時受前向錯誤更正保護)發送回至主機代管服務210。此外,控制CPU483監視封包訊務(例如,在封包丟失或延遲的情況下仍對其到達做時間戳記)。將此資訊發送回至主機代管服務210,使得其可持續監視該網路連接且相應地調整其發送內容。快閃記憶體476最初在製造時載入用於控制CPU483之控制程式且亦載入一只有特定用戶端465單元才有的序號。此序號允許主機代管服務210唯一地識別用戶端465單元。
藍芽介面484經由天線(在用戶端465內)以無線方式與輸入器件469通信。
視訊解壓縮器486為一經組態以實施本文中所描述之視訊解壓縮之低延時視訊解壓縮器。存在許多視訊解壓縮器件,其或為現成的,或為一可整合至一FPGA或一定製ASIC中之設計之智慧財產(IP)。一提供H.264解碼器之IP之公司為NSW Australia之 Ocean Logic of Manly。使用IP之優點在於,本文中所使用之壓縮技術不必符合壓縮標準。一些標準解壓縮器可足夠靈活地組態以適應本文中之壓縮技術,而一些標準解壓縮器則不能。但是,利用IP,存在按需要重新設計解壓縮器之完全靈活性。
視訊解壓縮器之輸出端耦接至視訊輸入子系統487,其將視訊耦接至HDMI介面490之視訊輸出端。
音訊解壓縮子系統488係使用一可獲得之標準音訊解壓縮器實施,或其可實施為IP,或該音訊解壓縮可在控制處理器483中實施,控制處理器483可(例如)實施Vorbis音訊解壓縮器(可自Vorbis.com獲得)。
實施音訊解壓縮之器件耦接至將音訊耦接至HDMI介面490之音訊輸出端的音訊輸出子系統489。
圖4f展示用戶端475之內部架構之一實施例。如可見,除來自一電源供應配接器之額外介面及可選外部直流電源之外,該架構與用戶端465之架構相同,該電源供應配接器插入於牆壁中且在使用其時替換可能來自乙太網路PoE 497之電源。下文將不重複與用戶端465一樣的功能性,但額外功能性描述如下。
CPU 483與該等額外器件通信且組態該等額外器件。
WiFi子系統482經由其天線提供無線網際網路存取以作為至乙太網路497之替代。WiFi子系統可自許多製造商購得,其包括Santa Clara,CA之Atheros Communications。
USB子系統485提供用於有線USB輸入器件479之藍芽通信之替代。USB子系統相當標準且容易用於FPGA及ASIC,而且常常內建於執行如視訊解壓縮之其他功能的現成器件中。
視訊輸出子系統487產生比用戶端465中之視訊輸出更廣範圍之視訊輸出。除提供HDMI 490視訊輸出之外,視訊輸出子系統487亦提供DVI-I 491、S視訊492及複合視訊493。此外,當將DVI-I 491介面用於數位視訊時,顯示能力464將自顯示器件傳遞回至控制CPU 483,使得控制CPU 483可通知主機代管服務210顯示器件478之能力。由視訊輸出子系統487提供的所有該等介面為非常標準的介面且容易以許多形式獲得。
音訊輸出子系統489經由數位介面494(S/PDIF及/或Toslink)以數位方式輸出音訊且經由立體聲類比介面495以類比形式輸出音訊。
往返延時分析
當然,為了實現之前段落之益處,使用者之使用輸入器件421之動作與在顯示器件420上看到該動作之結果之間的往返延時不應大於70毫秒至80毫秒。此延時必須考慮到自使用者場所211中之輸入器件421至主機代管服務210及再次返回至使用者場所211之顯示器件422之路徑中的所有因素。圖4b說明各種組件及網路(信號必須在網路上傳播),且在此等組件及網路之上的是一時間表,其列出在一實際實施中可能預期之例示性延時。請注意,圖4b經簡化,使得僅展示要徑路由。以下將描述用於系統之其他特徵之資料的其他路由。雙頭箭頭(例如,箭頭453)指示往返延時,且單頭箭頭(例如,箭頭457)指示單向延時,且「~」表示近似量測。應指出,會存在所列出之延時不能達成的真實世界情況,但在許多情況下,在美國,使用至使用者場所211之DSL及電纜數據機連接,可在下一段路中所描述之情況下達成此等延時。此外,請注意,雖然至網際網路之蜂巢式無線連接性肯定會配合所展示之系統,但大多數當前US蜂巢式資料系統(諸如,EVDO)引起極高延時且將不能達成圖4b中所示之延時。然而,可對可能能夠實施此延時等級之未來蜂巢式技術實施此等基本原理。此外,存在諸多遊戲及應用程式情境(例如,不需要快速使用者反應時間之遊戲,諸如國際象棋),其中經由當前蜂巢式資料系統引起之延時(儘管使用者容易看到)係該遊戲或應用程式可接受的。
自使用者場所211處之輸入器件421開始,一旦使用者致動輸入器件421,便將一使用者控制信號發送至用戶端415(其可為諸如視訊轉換器之獨立器件,或其可為在諸如PC或行動器件之另一器件中執行之軟體或硬體),且將該使用者控制信號封包化(在一實施例中以UDP格式)且給予該封包一目的地位址以到達主機代管服務210。該封包亦將含有指示該等控制信號來自哪一個使用者之資訊。接著經由防火牆/路由器/網路位址轉譯(NAT)器件443將該(該等)控制信號封包轉發至WAN介面442。WAN介面442為由使用者之網際網路服務提供者(ISP)提供給使用者場所211之介面器件。WAN介面442可為一電纜或DSL數據機、一WiMax收發器、一光纖收發器、一蜂巢式資料介面、一電力線網際網路協定介面,或至網際網路之許多介面中之任何其他介面。此外,防火牆/路由器/NAT器件443(及可能的WAN介面442)可整合至用戶端415中。此整合之一實例可為一行動電話,其包括用以實施家庭或辦公室用戶端415之功能性之軟體,以及用以經由某一標準(例如,802.11g)以無線方式路由及連接至網際網路之構件。
WAN介面442接著將該等控制信號投送至本文中應稱為使用者之網際網路服務提供者(ISP)之「網路連接點」441的介面,其為提供連接至使用者場所211之WAN傳送與一般網際網路或私用網路之間的介面之設施。網路連接點之特性將視所提供之網際網路服務之性質而改變。對於DSL,網路連接點通常應為一DSLAM所在之電話公司總局。對於電纜數據機,網路連接點通常應為一電纜多系統業者(MSO)頭端。對於蜂巢式系統,網路連接點應為一與蜂巢式塔(cellular tower)相關聯之控制室。但是,不管網路連接點之性質如何,其接著將該(該等)控制信號封包投送至一般網際網路410。該(該等)控制信號封包接著將被投送至WAN介面441,很可能經由一光纖收發器介面投送至主機代管服務210。WAN 441接著將該等控制信號封包投送至路由邏輯409(其可以許多不同方式實施,其包括乙太網路交換器及路由伺服器),路由邏輯409評估使用者之位址且將該(該等)控制信號投送至給定使用者之正確伺服器402。
伺服器402接著將該等控制信號作為正在伺服器402上執行之遊戲或應用程式軟體之輸入且使用該等控制信號處理遊戲或應用程式之下一圖框。一旦產生下一圖框,視訊及音訊即自伺服器402輸出至視訊壓縮器404。視訊及音訊可經由各種手段自伺服器402輸出至壓縮器404。首先,壓縮器404可內建於伺服器402中,因此壓縮可於本端在伺服器402中實施。或者,視訊及/或音訊可經由至一網路之一網路連接(諸如乙太網路連接)以封包化形式輸出,該網路為一介於伺服器402與視訊壓縮器404之間的私用網路,或為一共用網路(諸如,SAN 403)。或者,視訊可經由一來自伺服器402之視訊輸出連接器(諸如,一DVI或VGA連接器)輸出,且接著由視訊壓縮器404擷取。此外,音訊可作為數位音訊(例如,經由一TOSLINK或S/PDIF連接器)或作為類比音訊(其由視訊壓縮器404中之音訊壓縮邏輯數位化且編碼)自伺服器402輸出。
一旦視訊壓縮器404已自伺服器402擷取在圖框時間期間產生之視訊圖框及音訊,該視訊壓縮器即使用下文所述之技術壓縮視訊及音訊。一旦視訊及音訊被壓縮,即用一位址將視訊及音訊封包化以將其發送回至使用者之用戶端415,且將其投送至WAN介面441,WAN介面441接著經由一般網際網路410投送該等視訊及音訊封包,一般網際網路410接著將該等視訊及音訊封包投送至使用者之ISP網路連接點441,ISP網路連接點441將該等視訊及音訊封包投送至使用者場所處之WAN介面442,WAN介面442將該等視訊及音訊封包投送至防火牆/路由器/NAT器件443,防火牆/路由器/NAT器件443接著將該等視訊及音訊封包投送至用戶端415。
用戶端415解壓縮視訊及音訊,且接著在顯示器件422(或用戶端之內建顯示器件)上顯示視訊,且將音訊發送至顯示器件422或發送至單獨放大器/揚聲器或發送至建置於用戶端中之放大器/揚聲器。
為了使使用者感覺到剛才所描述之整個過程感覺上無滯後,往返延遲必須小於70毫秒或80毫秒。所述往返路徑中之延時延遲中之一些受主機代管服務210及/或使用者控制,而其他延時延遲則不受主機代管服務210及/或使用者控制。儘管如此,基於對許多真實世界情境之分析及測試,以下為近似量測結果。
用以發送控制信號451之單向傳輸時間通常小於1毫秒,通過使用者場所452之往返路由通常使用容易獲得之消費級防火牆/路由器/NAT交換器在乙太網路上在約1毫秒內實現。使用者ISP在其往返延遲453上變化很大,但對於DSL及電纜數據機提供者,吾人通常發現往返延遲介於10毫秒與25毫秒。一般網際網路410上之往返延時可視訊務之投送方式及投送中是否存在任何故障(及以下所論述之此等問題)而有很多變化,但通常,在給定了至目的地之距離的情況下,一般網際網路提供最佳路線,且延時主要由光通過光纖之速度確定。如下文進一步所論述,吾人已將1000哩確定為吾人期望主機代管服務210距離使用者場所211的大致最遠距離。在1000哩(2000哩往返)處,信號經由網際網路之實際轉送時間為大約22毫秒。主機代管服務210之WAN介面441通常為一具有可忽略延時之商業級光纖高速介面。因此,一般網際網路延時454通常介於1毫秒與10毫秒之間。經由主機代管服務210之單向路由455延時可在少於1毫秒內達成。伺服器402通常將在少於一個圖框時間(在60 fps下為16.7毫秒)內計算一遊戲或一應用程式之一新圖框,因此16毫秒為可使用的合理最大單向延時456。在本文中所描述之視訊壓縮及音訊壓縮演算法之一最佳化硬體實施中,壓縮457可在1毫秒內完成。在次最佳化版本中,壓縮可能耗時多達6毫秒(當然,更次最佳化版本將耗時更多,但此等實施會影響往返之總延時且需要其他延時較短(例如,減少通過一般網際網路之允許距離)以維持70毫秒至80毫秒之延時目標)。已考慮了網際網路454、使用者ISP 453及使用者場所路由452之往返延時,因此,剩下來要考慮的是視訊解壓縮458延時,其視視訊解壓縮458是實施於專用硬體中或是在用戶端器件415(諸如,PC或行動器件)上以軟體實施而定,該延時可視顯示器之大小及解壓縮CPU之效能改變。通常,解壓縮458耗時介於1毫秒與8毫秒之間。
因此,藉由將在實踐中見到的最壞情況延時全部加在一起,吾人可以確定圖4a中所示之系統之使用者預期可經歷之最壞情況往返延時。最壞情況延時為:1+1+25+22+1+16+6+8=80毫秒。且,實際上,實務上(在下文論述警告),此延時大致為使用圖4a中所示之系統之原型版本、使用現成Windows PC作為美國之用戶端器件及家庭DSL及電纜數據機連接所預見之往返延時。當然,比最壞情況稍好之情境可導致較短延時,但該等情境在開發廣泛使用之商業服務上不可靠。
在一般網際網路上達成圖4b中所列出之延時需要用戶端415中的來自圖4a之視訊壓縮器404及視訊解壓縮器412產生一具有非常特別特性之封包串流,以使得經由自主機代管服務210至顯示器件422之整個路徑所產生之封包序列不經受延遲或過多封包丟失,且詳言之,一貫適合使用者在使用者之經由WAN介面442及防火牆/路由器/NAT 443之網際網路連接上可獲得的頻寬之約束。此外,該視訊壓縮器必須產生一封包串流,其足夠穩固,使得其可容忍在正常網際網路及網路傳輸中出現的不可避免之封包丟失及封包重新排序。
低延時視訊壓縮
為實現前述目標,一實施例將一新方法用於視訊壓縮,該方法縮短傳輸視訊之延時及峰值頻寬需求。在描述此等實施例之前,將關於圖5及圖6a至圖6b提供對當前視訊壓縮技術之分析。當然,若使用者具備足以處置此等技術所需之資料速率之頻寬,則可根據基本原理使用此等技術。請注意,除了說明音訊壓縮與視訊壓縮同時實施且與視訊壓縮同步之外,本文中未解決音訊壓縮。存在滿足此系統之需求的先前技術音訊壓縮技術。
圖5說明一種用於壓縮視訊之特定先前技術,其中每一個別視訊圖框501-503由壓縮邏輯520使用一特定壓縮演算法壓縮以產生一系列經壓縮之圖框511-513。此技術之一實施例為「運動JPEG」,其中基於離散餘弦變換(DCT),根據一聯合圖像專家群(JPEG)壓縮演算法壓縮每一圖框。然而,可使用各種不同類型之壓縮演算法,同時仍遵守此等基本原理(例如,諸如JPEG-2000的基於小波之壓縮演算法)。
此類型壓縮法之一問題在於,其降低每一圖框之資料速率,但其未利用連續圖框之間的相似性,而降低整個視訊串流之資料速率。舉例而言,如圖5中所說明,假設一640x480x24位元/像素=640*480*24/8/1024=900千位元組/圖框(KB/圖框)之圖框速率,對於一給定品質之影像,運動JPEG僅可將該串流壓縮為原來的十分之一,從而導致一90 KB/圖框之資料串流。在60圖框/秒的速率下,此壓縮法將需要一90 KB*8 bits*60圖框/秒=42.2 Mbps之頻道頻寬,該頻寬對美國現今幾乎所有家庭網際網路連接而言為極高頻寬,且對許多辦公室網際網路連接而言為過高頻寬。實際上,若該壓縮法在此高頻寬下要求一恆定資料速率,且該壓縮法僅伺服一個使用者,則即使在一辦公室LAN環境中,該壓縮法將消耗一100 Mbps乙太網路LAN之頻寬的大百分率且為支援LAN之乙太網路交換器之沉重負擔。因此,運動視訊之壓縮與其他壓縮技術(諸如,下文所描述之壓縮技術)相比為低效率的。此外,如JPEG及JPEG-2000之使用有損壓縮演算法之單一圖框壓縮演算法產生在靜態影像中可能不明顯之壓縮假影(例如,場景中之稠密葉子中之假影可能不表現為假影,因為眼睛不準確知道稠密葉子如何出現)。但是,一旦場景運動,假影即可突出,因為眼睛偵測到假影在圖框間變化,儘管事實為假影位於假影在靜態影像中可能不明顯的場景之一區域中。此導致對圖框之序列中之「背景雜訊」之感覺,其在外觀上類似於在邊緣類比TV接收期間可見之「雪花(snow)」雜訊。當然,此類型之壓縮法仍可在本文中所描述之特定實施例中使用,但一般而言,為了避免場景中之背景雜訊,一給定感知品質需要一高資料速率(亦即,一低壓縮比率)。
其他類型之壓縮法(諸如,H.264,或Windows Media VC9、MPEG2及MPEG4)在壓縮一視訊串流時全部更有效率,因為其利用連續圖框之間的相似性。此等技術全部依賴相同一般技術來壓縮視訊。因此,雖然將描述H.264標準,但可將相同一般原理應用於各種其他壓縮演算法。許多H.264壓縮器及解壓縮器可用,包括用於壓縮H.264之x264開放原始軟體程式庫及用於解壓縮H.264之FFmpeg開放原始軟體程式庫。
圖6a及圖6b說明一例示性先前技術壓縮技術,其中一系列未經壓縮之視訊圖框501-503、559-561由壓縮邏輯620壓縮成一系列「I圖框」611、671,「P圖框」612-613,及「B圖框」670。圖6a中之垂直軸通常表示該等經編碼圖框中之每一者的所得大小(雖然該等圖框未按比例繪製)。如上所述,熟習此項技術者非常瞭解使用I圖框、B圖框及P圖框之視訊編碼。簡單地說,I圖框611為完全未經壓縮之圖框501(類似於如上所述之經壓縮之JPEG影像)的基於DCT之壓縮。P圖框612-613在大小上整體顯著小於I圖框611,因為P圖框利用先前I圖框或P圖框中之資料;亦即,P圖框含有指示先前I圖框或P圖框之間的變化之資料。除了B圖框使用之後參考圖框中之圖框以及可能使用之前參考圖框中之圖框之外,B圖框670類似於P圖框。
針對以下論述,將假設所要圖框速率為60圖框/秒,每一I圖框為大約160 Kb,平均P圖框及B圖框為16 Kb,且每秒產生一新的I圖框。根據此組參數,平均資料速率可為:160 Kb+16 Kb*59=1.1 Mbps。此資料速率肯定屬於至家庭及辦公室之許多當前寬頻網際網路連接之最大資料速率。此技術亦傾向於避免僅圖框內編碼之背景雜訊問題,因為P圖框及B圖框追蹤該等圖框之間的差異,因此,壓縮假影不容易在圖框之間出現或消失,藉此減少上述之背景雜訊問題。
先前類型之壓縮法之一問題在於,雖然平均資料速率相對較低(例如,1.1 Mbps),但單一I圖框之傳輸耗時若干圖框時間。舉例而言,使用先前技術,一2.2 Mbps網路連接(例如,具有來自圖3a之最大可用資料速率302之2.2 Mbps峰值的之DSL或電纜數據機)通常足以在1.1 Mbps下串流160 Kbps(每6個圖框一個I圖框)之視訊。可藉由在解壓縮視訊之前使解壓縮器將視訊排入佇列1秒來實現此串流。在1秒中,將傳輸1.1 Mb之資料,一2.2 Mbps最大可用資料速率容易適應此傳輸,即使假設可用資料速率可能週期性地下降多達50%。不幸的是,此先前技術方法由於接收器處之1秒視訊緩衝而導致視訊之1秒延時。此延遲對許多先前技術應用(例如,線性視訊之播放)足以勝任,但對於不能容忍多於70毫秒至80毫秒之延時的快速動作視訊遊戲為一極長延時。
若嘗試消除該1秒視訊緩衝,則仍不能導致快速動作視訊遊戲之延時之足夠縮短。舉例來說,如先前所描述,B圖框之使用需要接收在一I圖框之前的所有B圖框及該I圖框。若假設59個非I圖框大致分散在P圖框與B之間,則在可顯示任何B圖框之前,將接收至少29個B圖框及一I圖框。因此,不管頻道之可用頻寬如何,需要每六十分之一秒持續時間29+1=30個圖框之延遲,或500毫秒之延時。該延遲無疑非常長。
因此,另一方法可為消除B圖框及僅使用I圖框及P圖框。(此方法之一結果為,對於一給定品質等級,資料速率將增加,但為此實例中之一致性起見,繼續假設:每一I圖框之大小為160Kb且平均P圖框之大小為16Kb,且因此資料速率仍為1.1 Mbps)。此方法消除由B圖框引入的不可避免延時,因為每一P圖框之解碼僅依靠先前接收到的圖框。此方法之剩餘問題在於,I圖框比平均P圖框大得多,以致於在一低頻寬頻道上(如大部分家庭中及許多辦公室中典型的),I圖框之傳輸增加實質延時。在圖6b中說明此情況。除I圖框以外,視訊串流資料速率624在可用最大資料速率621以下,其中I圖框所需之峰值資料速率623遠遠超過可用最大資料速率622(及甚至額定最大資料速率621)。P圖框所需之資料速率小於可用最大資料速率。即使2.2 Mbps之可用最大資料速率峰值穩定地保持在其2.2 Mbps峰值速率,傳輸I圖框亦將耗時160 Kb/2.2 Mb=71毫秒,且若可用最大資料速率622下降50%(1.1 Mbps),則傳輸I圖框將耗時142毫秒。因此,傳輸I圖框之延時落在71毫秒與142毫秒之間的某處。此延時增加至圖4b中識別出之延時,在最壞情況下,該延時總計為70毫秒,因此,此將導致自使用者致動輸入器件421時起至一影像出現在顯示器件422上為止的141毫秒至222毫秒之極高的總往返延時。且,若可用最大資料速率降至2.2 Mbps以下,則延時將進一步增加。
亦請注意,以遠遠超過可用資料速率622之峰值資料速率623「干擾」ISP通常造成嚴重後果。不同ISP中之設備會有不同表現,但當以比可用資料速率622高得多的資料速率接收封包時,以下行為在DSL及電纜數據機中相當普遍:(a)藉由將封包排入佇列(引入延時)來延遲封包,(b)丟棄該等封包之一些或全部,(c)停用該連接一段時間(很可能因為ISP擔心其為一惡意攻擊,諸如「阻斷服務」攻擊)。因此,以全資料速率傳輸一具有諸如圖6b中所示之特性的特性之封包串流並非一可行選項。峰值623可在主機代管服務210處排入佇列且以一在可用最大資料以下的資料速率發送,從而引入之前段落中所描述的不可接受之延時。
此外,圖6b中所示之視訊串流資料速率序列624為一非常「緩和之」視訊串流資料速率序列,且為吾人期望自壓縮來自一變化不大且具有很少運動之視訊序列之視訊產生的資料速率序列種類(例如,其視訊電話會議中常見,其中相機處於固定位置且很少運動,且場景(例如,就座者在談話)中之物件展示很少運動)。
圖6c中所示之視訊串流資料速率序列634為吾人期望自具有很多動作之視訊(諸如,在動畫中或在視訊遊戲中或在某一應用程式軟體中可能產生之視訊)看到的事物所特有之序列。請注意,除I圖框峰值633之外,亦存在諸如635及636之P圖框峰值,該等圖框峰值相當大且多次超過可用最大資料速率。雖然此等P圖框峰值不如I圖框峰值大,但該等峰值仍太大而不能以全資料速率由頻道載運,且與I圖框峰值一樣,該等P圖框峰值必須緩慢傳輸(藉此導致增加的延時)。
在一高頻寬頻道(例如,一100 Mbps LAN,或一高頻寬100 Mbps私用連接)上,網路應能夠容忍諸如I圖框峰值633或P圖框峰值636之大峰值,且原則上,可維持低延時。但是,此等網路常常由許多使用者共用(例如,在辦公室環境中),且此「有峰值」之資料將影響LAN之效能,特別在網路訊務經投送至一私用共用連接的情況下(例如,自一遠端資料中心至一辦公室)。首先,應記住,此實例係關於60 fps下之640x480像素的相對低解析度視訊串流。60 fps下之1920x1080之HDTV串流容易由現代電腦及顯示器處置,且60 fps下之2560X1440解析度顯示器越來越容易獲得(例如,Apple,Inc.之30''顯示器)。為達成一合理品質等級,60 fps下之1920X1080之高動作性視訊序列可能需要4.5 Mbps(使用H.264壓縮法)。若假設I圖框峰值10倍於標稱資料速率,則此導致45 Mbps之峰值,以及較小但仍要考慮的P圖框峰值。若若干使用者正在相同的100 Mbps網路(例如,一介於一辦公室與資料中心之間的私用網路連接)上接收視訊串流,則容易看到來自若干使用者之視訊串流的峰值如何發生對齊,從而覆沒網路之頻寬且可能覆沒網路上之支援使用者的交換器之背板之頻寬。即使在一十億位元乙太網路之情況下,若足夠多使用者使足夠的峰值同時對齊,則其可覆沒網路或網路交換器。且,一旦2560X1440解析度視訊變得更常見,平均視訊串流資料速率即可為9.5 Mbps,從而可能導致一95 Mbps之峰值資料速率。不必說,一介於一資料中心與一辦公室之間的100 Mbps連接(其現今為一特別快之連接)可完全為來自一單一使用者之峰值訊務所淹沒。因此,即使LAN及私用網路連接可更能容忍有峰值之串流視訊,但具有高峰值之串流視訊並不合乎需要且可能需要辦公室之IT部門之特殊規劃及調節。
當然,對於標準線性視訊應用,此等問題不成問題,因為資料速率在傳輸點處經「平滑化」且每一圖框之資料速率在最大可用資料速率622以下,且用戶端中之一緩衝器在解壓縮圖框之前儲存I圖框、P圖框及B圖框之一序列。因此,網路上之資料速率保持接近於視訊串流之平均資料速率。不幸的是,即使未使用B圖框,此做法亦引入延時,其係需要快速回應時間之諸如視訊遊戲及應用程式之低延時應用程式不可接受的。
一種用以減少具有高峰值之視訊串流的先前技術解決方法為使用一經常稱為「固定位元速率」(CBR)編碼之技術。雖然術語CBR似乎暗示所有圖框經壓縮以具有相同位元速率(亦即,大小),但其通常指代的是一壓縮範例,其中允許特定數目個圖框(在本發明情況下為1個圖框)上之最大位元速率。舉例而言,在圖6c之情況下,若將一CBR約束應用於編碼,其將位元速率限於(例如)額定最大資料速率621之70%,則壓縮演算法將限制該等圖框中之每一者之壓縮,使得任何圖框經壓縮而具有較少位元,通常情況下該等圖框經壓縮而使用大於額定最大資料速率621之70%。此壓縮之結果為,通常需要較多位元來維持一給定品質等級之圖框將「缺乏」位元,且彼等圖框之影像品質將比不需要比額定最大資料速率621之70%多的位元之其他圖框之影像品質差。此方法可產生特定類型之經壓縮之視訊之可接受結果,在該經壓縮之視訊中,(a)預期存在很少運動或場景變化且(b)使用者可接受週期性品質降級。CBR適合之應用之一良好實例為視訊電話會議,因為存在很少峰值,且若品質短暫降級(例如,若相機被搖動,從而導致明顯的場景運動及大峰值,則在搖動期間,無足夠位元可用於高品質影像壓縮,此將導致降級之影像品質),則大部分使用者可接受。不幸的是,CBR並不十分適合具有高複雜性或大量運動之場景及/或需要相當恆定之品質等級的許多其他應用。
一實施例中所使用之低延時壓縮邏輯404使用若干不同技術,來解決關於串流低延時經壓縮之視訊,同時維持高品質的一系列問題。首先,低延時壓縮邏輯404僅產生I圖框及P圖框,藉此緩和對等待若干圖框時間以解碼每一B圖框之需要。另外,如圖7a中所說明,在一實施例中,低延時壓縮邏輯404將每一未經壓縮之圖框701-760細分成一系列「影像塊(tile)」且將每一影像塊個別編碼為一I圖框或一P圖框。本文中將經壓縮之I圖框及P圖框之群組稱為「R圖框」711-770。在圖7a中所示之特定實例中,將每一未經壓縮之圖框細分成一16個影像塊之4×4矩陣。然而,此等基本原理不限於任何特定細分方案。
在一實施例中,低延時壓縮邏輯404將視訊圖框劃分成許多影像塊,且將來自每一圖框的一個影像塊編碼(亦即,壓縮)為一I圖框(亦即,該影像塊經壓縮,就好像其為一大小為完整影像之十六分之一之單獨視訊圖框,且用於此「迷你」圖框之壓縮法為I圖框壓縮法),且將剩餘影像塊編碼(亦即,壓縮)為P圖框(亦即,用於每一「迷你」十六分之一圖框之壓縮法為P圖框壓縮法)。應將壓縮為I圖框及P圖框之影像塊分別稱為「I影像塊」及「P影像塊」。對於每一後繼視訊圖框,待編碼為I影像塊之影像塊有變化。因此,在一給定圖框時間中,視訊圖框中之該等影像塊中僅有一個影像塊為I影像塊,且該等影像塊之剩餘者為P影像塊。舉例而言,在圖7a中,將未經壓縮之圖框701之影像塊0編碼為I影像塊I0且將剩餘之影像塊1-15編碼為P影像塊P1至P15以產生R圖框711。在下一個未經壓縮之視訊圖框702中,將未經壓縮之圖框702之影像塊1編碼為I影像塊I1且將剩餘之影像塊0及2至15編碼為P影像塊P0及P2至P15以產生R圖框712。因此,影像塊之I影像塊及P影像塊在連續圖框上按時間逐漸交錯。繼續該過程,直至產生一R影像塊770,且矩陣中之最後一個影像塊經編碼為一I影像塊(亦即,I15)。該過程接著從頭開始,從而產生諸如圖框711之另一R圖框(亦即,編碼影像塊0之一I影像塊)等。雖然圖7a中未說明,但在一實施例中,R圖框之視訊序列之第一R圖框僅含有I影像塊(亦即,使得隨後P圖框具有供計算運動用之參考影像資料)。或者,在一實施例中,起動序列通常使用相同I影像塊圖案,但其不包括尚未用一I影像塊編碼之彼等影像塊之P影像塊。換言之,在第一I影像塊到達之前不用任何資料對特定影像塊進行編碼,藉此避免圖9a中之視訊串流資料速率934中的起動峰值,此將在下文進一步解釋。此外,如下文所描述,可將各種不同大小及形狀用於影像塊,而仍符合此等基本原理。
在用戶端415上執行之視訊解壓縮邏輯412好像每一影像塊為小型I圖框及P圖框之單獨視訊序列一樣的解壓縮每一影像塊,且接著將每一影像塊提供給驅動顯示器件422之圖框緩衝器。舉例而言,使用來自R圖框711至770之I0及P0解壓縮及再現視訊影像之影像塊0。類似地,使用來自R圖框711至770之I1及P1重建影像塊1,諸如此類。如上所述,I圖框及P圖框之解壓縮係此項技術中熟知的,且可藉由在用戶端415中執行一視訊解壓縮器之多個執行個體來實現I影像塊及P影像塊之解壓縮。雖然倍增的過程似乎增加了用戶端415之計算負擔,但實際上並非如此,因為影像塊本身相對於額外過程之數目按比例較少,所以所顯示的像素之數目與存在一個過程且使用習知完整大小之I圖框及P圖框的情況相同。
此R圖框技術顯著減少圖6b及圖6c中所說明之通常與I圖框相關聯之頻寬峰值,因為任何給定圖框主要由通常小於I圖框之P圖框組成。舉例而言,再次假設一典型I圖框為160Kb,則圖7a中所說明之該等圖框中之每一者之I影像塊大致為此量之1/16或10Kb。類似地,假設一典型P圖框為16Kb,則圖7a中所說明之該等影像塊中之每一者的P影像塊可為大致1Kb。最終結果為一大約10Kb+15*1Kb=25Kb之R圖框。因此,每一60圖框序列將為25Kb*60=1.5Mbps。因此,在60圖框/秒的情況下,此將需要一能夠維持一1.5Mbps之頻寬之頻道,但歸因於I影像塊散佈在60圖框間隔中,該頻道具有低得多的峰值。
請注意,在I圖框及P圖框之相同假設資料速率之先前實例中,平均資料速率為1.1Mbps。此係因為在先前實例中,每60個圖框時間僅引入一新I圖框一次,而在此實例中,組成一I圖框之16個影像塊在16個圖框時間中循環通 過,且因此,每16個圖框時間引入一I圖框之等價物,從而導致一稍微較高之平均資料速率。實務上,儘管平均資料速率增加,但較頻繁地引入I圖框並未使資料速率線性地增加。此歸因於P圖框(或P影像塊)主要對先前圖框與下一圖框之間的差異編碼之事實。因此,若先前圖框非常類似於下一圖框,則P圖框將極小,若先前圖框與下一圖框非常不同,則P圖框將極大。但是,因為P圖框主要自先前圖框導出而非自實際圖框導出,所以所得經編碼圖框可能含有比一具有足夠數目位元之I圖框多的錯誤(例如,視覺假影)。且,在一個P圖框跟在另一P圖框之後的情況下,可能發生錯誤之累積,此在存在長的P圖框序列之情況下變得更糟。現在,一完善的視訊壓縮器將偵測到如下事實:影像之品質在P圖框之一序列之後降級,且在必要時,該壓縮器將更多位元分配給隨後P圖框以提昇該品質,或在其為最有效之動作過程的情況下用一I圖框替換一P圖框。因此,當使用長的P圖框序列時(例如,如在上文之先前實例中,59個P圖框),特別當場景具有大量複雜性及/或運動時,P圖框隨著其距離一I圖框更遠而需要更多位元。
或者,自相反觀點看P圖框,緊跟在一I圖框之後的P圖框傾向於需要比距離一I圖框較遠之P圖框少的位元。因此,在圖7a中所示之實例中,P圖框距離一在其之前的I圖框不多於15個圖框,而在先前實例中,一P圖框可距離一I圖框59個圖框。因此,由於I圖框較常出現,P圖框較小。當然,準確的相對大小將基於視訊串流之性質改變,但在圖7a之實例中,若一I影像塊為10 Kb,則P影像塊在大小上平均可為僅0.75 kb,從而導致10Kb+15*0.75Kb=21.25 Kb,或在每秒60個圖框下,資料速率可為21.25Kb*60=1.3 Mbps,或比1.1 Mbps下之一具有一繼之以59個P圖框之I圖框之串流高約16%的資料速率。再次,此等兩個視訊壓縮方法之間的相對結果將視視訊序列改變,但通常,吾人已根據經驗發現,對於一給定品質等級,使用R圖框需要比使用I/P圖框序列多約20%的位元。但是,當然,R圖框顯著減少峰值,其使可使用之視訊序列具有遠小於I/P圖框序列之延時。
視視訊序列之性質、頻道之可靠性及可用資料速率,可以各種不同方式組態R圖框。在一替代實施例中,使用不同於4x4組態中之16的數目之影像塊。舉例而言,2個影像塊可用於一2x1或1x2組態中,4個影像塊可用於一2x2、4x1或1x4組態中,6個影像塊可用於一3x2、2x3、6x1或1x6組態中,或者8個影像塊可用於一4x2(如圖7b中所示)、2x4、8x1或1x8組態中。請注意,該等影像塊不必為正方形,視訊圖框不必為正方形或甚至矩形。影像塊可分解成最適合所使用之視訊串流及應用之任何形狀。
在另一實施例中,I影像塊及P影像塊之循環不鎖定影像塊之數目。舉例而言,在一8影像塊之4x2組態中,如圖7b中所說明,仍可使用一16循環序列。將順序未經壓縮之圖框721、722、723各自劃分成8個影像塊0-7且個別地壓縮每一影像塊。自R圖框731,僅將影像塊0壓縮為一I影像塊,且將剩餘影像塊壓縮為P影像塊。對於隨後R圖框732,將所有該等8影像塊壓縮為P影像塊,且接著對於隨後R圖框733,將影像塊1壓縮為I影像塊且將其他影像塊全部壓縮為P影像塊。且,因此該排序繼續針對16個圖框,且僅每隔一圖框產生一I影像塊,因此,最後一個I影像塊係在第15個圖框時間期間關於影像塊7產生(圖7b中未展示),且在第16個圖框時間期間,使用所有P影像塊壓縮R圖框780。接著,該序列再次以將影像塊0壓縮為一I影像塊且將其他影像塊壓縮為P影像塊開始。如在先前實施例中,整個視訊序列之第一個圖框通常全部為I影像塊,以為此後的P影像塊提供一參考。I影像塊及P影像塊之循環甚至不必為影像塊之數目的偶倍數。舉例而言,對於8個影像塊,在使用另一I影像塊之前,具有一I影像塊之每一圖框可繼之以具有全部P影像塊的2個圖框。在又一實施例中,若(例如)已知螢幕之特定區域更加動態而需要更頻繁的I影像塊,而其他區域更加靜態(例如,展示一遊戲之比分)而需要較不頻繁的I影像塊,則特定影像塊可經排序而比其他影像塊具有更多I影像塊。此外,雖然在圖7a至圖7b中說明每一圖框具有一單一I影像塊,但可在一單一圖框中對多個I影像塊編碼(視傳輸頻道之頻寬而定)。相反,可不用I影像塊(亦即,僅用P影像塊)來傳輸特定圖框或圖框序列。
之前段落之方法適用的原因在於,雖然未將I影像塊散佈在每個單一圖框上似乎導致大峰值,但系統之行為並不如此簡單。由於每一影像塊係與其他影像塊分開壓縮,故隨著影像塊變小,每一影像塊之編碼之效率可變低,因為用於一給定影像塊之壓縮器不能利用來自其他影像塊之類似影像特徵及類似運動。因此,將螢幕劃分成16個影像塊通常將導致不如將螢幕劃分成8個影像塊有效之一編碼。但是,若將螢幕劃分成8個影像塊且每8個圖框而非每16個圖框引入一完整I圖框之資料,則其導致一總體高得多的資料速率。因此,藉由每16個圖框而非每8個圖框引入一完整I圖框,總資料速率減小。此外,藉由使用8個較大影像塊而非16個較小影像塊,總資料速率減小,此亦使該等較大影像塊導致之資料峰值減小至某一程度。
在另一實施例中,圖7a及圖7b中之低延時視訊壓縮邏輯404控制位元至R圖框中之各種影像塊之分配,其基於待壓縮之視訊序列之已知特性而藉由設定來預先組態,或基於每一影像塊中對影像品質之一進行中分析而自動進行。舉例而言,在一些賽車視訊遊戲中,玩家汽車之前部(其在場景中相對較少運動)佔據大部分的下半部分螢幕,而上半部分螢幕完全為迎面而來的道路、建築物及風景(其幾乎總是在執行中)填滿。若壓縮邏輯404將相等數目之位元分配給每一影像塊,則圖7b中之未經壓縮之圖框721中的在下半部分螢幕上之影像塊(影像塊4-7)通常經壓縮而具有比圖7b中之未經壓縮之圖框721中的在上半部分螢幕中之影像塊(影像塊0-3)高的品質。若已知此特定遊戲或該遊戲之此特定場景具有此等特性,則主機代管服務210之業者可組態壓縮邏輯404以使分配給螢幕頂部中之影像塊的位元比分配給螢幕底部中之影像塊的位元多。或者,壓縮邏輯404可在壓縮圖框之後評估影像塊之壓縮品質(使用許多壓縮品質量度中之一或多者,諸如峰值信號與雜訊比(PNSR)),且若確定在一特定時間窗中,特定影像塊一貫地產生較佳品質結果,則該壓縮邏輯逐漸將更多位元分配給產生較低品質結果之影像塊,直至各種影像塊達到一類似品質等級。在一替代實施例中,壓縮器邏輯404分配位元以達成一特定影像塊或影像塊群組之較高品質。舉例而言,該邏輯可提供一在螢幕之中心比邊緣處具有更高品質之較佳總體感覺外觀。
在一實施例中,為了改良視訊串流之特定區域之解析度,相較於具有相對較少場景複雜性及/或運動的視訊串流之區域,視訊壓縮邏輯404使用較小影像塊編碼具有相對更多場景複雜性及/或運動的視訊串流之區域。舉例而言,如圖8中所說明,在一具有一個R圖框811之區域中之一移動角色805周圍使用較小影像塊(可能繼之以一系列具有相同影像塊大小之R圖框(圖中未展示))。接著,當角色805移動至影像之一新區域中時,在另一R圖框812中之此新區域周圍使用較小影像塊,如所說明。如上所述,可將各種不同大小及形狀用於影像塊而仍符合此等基本原理。
雖然上述之循環I/P影像塊實質上減小一視訊串流之資料速率之峰值,但其並未完全消除該等峰值,特別在快速變化或極複雜之視訊成像的情況下,諸如隨動畫、視訊遊戲及某一應用程式軟體出現的情況。舉例而言,在一突然場景轉換期間,一複雜圖框可繼之以完全不同的另一複雜圖框。即使若干I影像塊可能已領先於該場景轉換僅幾個圖框時間,該等影像塊亦對此情況無幫助,因為新圖框之材料與先前I影像塊無關。在此情況下(及在即使並非所有事物變化,但影像之大部分變化的其他情況下),視訊壓縮器404可確定P影像塊中之多者(若非全部)編碼為I影像塊更有效,且其結果為該圖框之資料速率中之極大峰值。
如先前所論述,事實很簡單,對於大多數消費級網際網路連接(及許多辦公室連接),超過圖6c中展示為622之可用最大資料速率以及額定最大資料速率621之「干擾」資料並不可行。請注意,額定最大資料速率621(例如,「6 Mbps DSL」)實質上為針對考慮購買一網際網路連接之使用者的銷售數字,但其通常並不保證效能等級。對於此應用而言,其並不相關,因為人們僅關心當經由該連接串流視訊時的可用最大資料速率622。因此,在圖9a及圖9c中,當吾人描述峰值問題之一解決方法時,圖中省略了額定最大資料速率,且僅展示可用最大資料速率922。視訊串流資料速率不能超過可用最大資料速率922。
為解決此問題,視訊壓縮器404首先要做的事為確定一峰值資料速率941,其為頻道能夠容易地處置之資料速率。此速率可藉由許多技術確定。一此技術為藉由將一資料速率越來越高的測試串流自主機代管服務210逐漸發送至用戶端415(圖4a及圖4b中),且使該用戶端將關於封包丟失等級及延時之反饋提供給該主機代管服務。當封包丟失及/或延時開始展示一急劇增加時,指示達到可用最大資料速率922。此後,主機代管服務210可逐漸減小該測試串流之資料速率,直至用戶端415報告:在一合理時間段中,該測試串流係以一可接受之封包丟失等級接收且延時接近最小。此確定一最大峰值資料速率941,其將接著用作為用於串流視訊之一峰值資料速率。峰值資料速率941將隨時間波動(例如,家庭中之另一使用者開始頻繁使用網際網路連接之情況),且用戶端415將必須持續監視資料速率以查看封包丟失或延時是否增加,從而指示可用最大資料速率922正降至該先前確定之峰值資料速率941以下,且若封包丟失或延時增加,則可用最大資料速率922降至峰值資料速率941以下。類似地,若用戶端415經過一段時間發現:封包丟失及延時保持在最佳等級,則該用戶端可請求視訊壓縮器緩慢增加資料速率以查看可用最大資料速率是否已增加(例如,家庭中之另一使用者已停止頻繁使用網際網路連接),且再次等待,直至封包丟失及/或較高延時指示已超過可用最大資料速率922,且可再次發現峰值資料速率941之一較低等級,但該等級可能高於測試一增加之資料速率之前的等級。因此,藉由使用此技術(及如同此技術之其他技術),可發現一峰值資料速率941且按需要週期性地調整該資料速率。峰值資料速率941確定可由視訊壓縮器404使用以將視訊串流至使用者之最大資料速率。用於確定峰值資料速率之邏輯可實施於使用者場所211處及/或在主機代管服務210上實施。在使用者場所211處,用戶端器件415執行用以確定峰值資料速率之計算且將此資訊傳輸回至主機代管服務210;在主機代管服務210處,該主機代管服務處之一伺服器402執行用以基於自用戶端415接收之統計資料(例如,封包丟失、延時、最大資料速率等)確定峰值資料速率之計算。
圖9a展示一具有實質場景複雜性及/或運動之實例視訊串流資料速率934,其已使用先前所描述且在圖7a、圖7b及圖8中說明之循環I/P影像塊壓縮技術而產生。視訊壓縮器404已經組態而以一在峰值資料速率941以下的平均資料速率輸出經壓縮之視訊,且請注意,在大部分時間中,視訊串流資料速率保持在峰值資料速率941以下。資料速率934與圖6c中所示之使用I/P/B或I/P圖框產生的視訊串流資料速率634之比較展示循環I/P影像塊壓縮產生一更平滑之資料速率。並且,在圖框2倍峰值952(其接近2倍峰值資料速率942)及圖框4倍峰值954(其接近4倍峰值資料速率944)處,資料速率超過峰值資料速率941,此係不可接受的。實務上,即使對於來自快速變化之視訊遊戲的高動作性視訊,超過峰值資料速率941之峰值在少於2%的圖框中出現,超過2倍峰值資料速率942之峰值很少出現,且超過3倍峰值資料速率943之峰值幾乎從未出現。但是,當該等峰值出現時(例如,在一場景轉換期間),其所需之資料速率係產生一良好品質視訊影像所必需的。
一種解決此問題之方法僅為:組態視訊壓縮器404,使得其最大資料速率輸出為峰值資料速率941。不幸的是,該等峰值圖框期間之所得視訊輸出品質不佳,因為該壓縮演算法「缺少」位元。其結果為當存在突然轉換或快速運動時出現壓縮假影,且及時地,使用者突然認識到:假影總是在存在突然變化或快速運動時突然出現,且該等假影可變得相當討厭。
雖然人類視覺系統對在突然變化或快速運動期間出現之視覺假影相當敏感,但人類視覺系統對偵測此等情況下之圖框速率減少並不特別敏感。實際上,當此等突然變化出現時,看來好像人類視覺系統全神貫注於追蹤該等變化,而其並未注意到圖框速率是否暫時自60 fps降至30 fps且接著立即返回60 fps。且,在一極顯著的轉換(如一突然場景變化)之情況下,人類視覺系統並未注意到圖框速率降至20 fps或甚至15 fps且接著立即返回60 fps。既然圖框速率減少僅很少出現,對一人類觀測者而言,看來好像視訊以60 fps連續傳播。
人類視覺系統之此特性為圖9b中所說明之技術所利用。伺服器402(來自圖4a及圖4b)以一穩定圖框速率(在一實施例中以60 fps)產生一未經壓縮之視訊輸出串流。一時間表展示每六十分之一秒輸出之每一圖框961-970。將每一未經壓縮之視訊圖框(自圖框961開始)輸出至低延時視訊壓縮器404,該視訊壓縮器在小於一圖框時間中壓縮圖框,從而產生第一圖框之經壓縮之圖框1 981。如先前所描述,視許多因素而定,為經壓縮之圖框1 981產生之資料可能較大或較小。若該資料足夠小而使其可以峰值資料速率941在一圖框時間(六十分之一秒)或更少時間中傳輸至用戶端415,則該資料係在傳輸時間(xmit時間)991期間傳輸(箭頭之長度指示傳輸時間之持續時間)。在下一圖框時間中,伺服器402產生未經壓縮之圖框2 962,將該未經壓縮之圖框壓縮成經壓縮之圖框2 982,且該經壓縮之圖框係以峰值資料速率在小於一圖框時間的傳輸時間992期間傳輸至用戶端415。
接著,在下一圖框時間中,伺服器402產生未經壓縮之圖框3 963。在視訊壓縮器404壓縮該未經壓縮之圖框後,所得經壓縮之圖框3 983具有比在一個圖框時間中以峰值資料速率941可傳輸之資料多的資料。因此,該經壓縮之圖框係在傳輸時間(2倍峰值)993期間傳輸,該傳輸時間佔據該圖框時間之全部及下一圖框時間之部分。現在,在下一圖框時間期間,伺服器402產生另一未經壓縮之圖框4 964且將其輸出至視訊壓縮器404,但忽略資料且以974說明。此係因為視訊壓縮器404經組態以忽略在該視訊壓縮器仍傳輸一先前經壓縮之圖框時到達的其他未經壓縮之視訊圖框。當然,用戶端415之視訊解壓縮器將不能接收圖框4,但該視訊解壓縮器僅繼續在顯示器件422上顯示圖框3達2個圖框時間(亦即,暫時將圖框速率自60 fps降至30 fps)。
對於下一圖框5,伺服器402輸出未經壓縮之圖框5 965,將該未經壓縮之圖框壓縮成經壓縮之圖框5 985且在傳輸時間995期間在1個圖框內傳輸該經壓縮之圖框。用戶端415之視訊解壓縮器解壓縮圖框5且將其顯示於顯示器件422上。接下來,伺服器402輸出未經壓縮之圖框6 966,視訊壓縮器404將該未經壓縮之圖框壓縮成經壓縮之圖框6 986,但此時,所得資料極大。經壓縮之圖框係以峰值資料速率941在傳輸時間(4倍峰值)996期間傳輸,但傳輸該圖框幾乎耗時4個圖框時間。在接下來的3個圖框時間期間,視訊壓縮器404忽略來自伺服器402的3個圖框,且用戶端415之解壓縮器將圖框6穩定地保持在顯示器件422上達4個圖框時間(亦即,暫時將圖框速率自60 fps降至15 fps)。接著最後,伺服器402輸出圖框10 970,視訊壓縮器404將該圖框壓縮成經壓縮之圖框10 987,且該經壓縮之圖框係在傳輸時間997期間傳輸,且用戶端415之解壓縮器解壓縮圖框10且將其顯示於顯示器件422上,且再次,該視訊以60 fps重新開始。
請注意,雖然視訊壓縮器404丟棄來自由伺服器402產生之視訊串流的視訊圖框,但該視訊壓縮器並未丟棄音訊資料,不管音訊係以何種形式傳入,該視訊壓縮器在丟棄視訊圖框時繼續壓縮音訊資料且將音訊資料傳輸至用戶端415,該用戶端繼續解壓縮音訊資料且將音訊提供給由使用者用來播放音訊之任何器件。因此,音訊在圖框被丟棄之週期期間保持不減弱。與經壓縮之視訊相比,經壓縮之音訊消耗頻寬之相對較小百分率,且因此其對總資料速率無重大影響。雖然未在資料速率圖中之任一者中說明此,但峰值資料速率941中總是存在為經壓縮之音訊串流保留之資料速率容量。
選擇剛才在圖9b中所描述之實例來說明圖框速率如何在資料速率峰值期間下降,但未說明的是:當使用先前所描述之循環I/P影像塊技術時,即使在高場景複雜性/高動作性序列(諸如,在視訊遊戲、動畫及某一應用程式軟體中出現的序列)期間,此等資料速率峰值及隨之發生的丟棄圖框係罕見的。因此,降低之圖框速率很少發生且為暫時的,且人類視覺系統不會偵測到降低之圖框速率。
若將剛才描述之圖框速率減少機制應用於圖9a中所說明之視訊串流資料速率,則在圖9c中說明所得視訊串流資料速率。在此實例中,2倍峰值952已減小至平坦化2倍峰值953,且4倍峰值955已減小至平坦化4倍峰值955,且整個視訊串流資料速率934保持在峰值資料速率941或以下。
因此,使用上述技術,一高動作性視訊串流可經由一般網際網路且經由一消費級網際網路連接以低延時傳輸。此外,在一辦公室環境中,在一LAN(例如,100 Mbs乙太網路或802.11g無線網路)上或在一私用網路(例如,介於一資料中心與一辦公室之間的100 Mbps連接)上,可傳輸一無峰值之高動作性視訊串流,使得多個使用者(例如,在4.5 Mbps下以60 fps傳輸1920x1080)可使用該LAN或共用私用資料連接而不重疊峰值,其中重疊峰值會覆沒網路或網路交換器背板。
資料速率調整
在一實施例中,主機代管服務210最初評定頻道之可用最大資料速率622及延時以確定視訊串流之適當資料速率且接著作為回應動態地調整資料速率。為了調整資料速率,主機代管服務210可(例如)修改待發送至用戶端415的視訊串流之影像解析度及/或每秒圖框數。此外,該主機代管服務可調整壓縮影像之品質等級。當改變視訊串流之解析度(例如,自1280×720解析度變為640×360)時,用戶端415上之視訊解壓縮邏輯412可按比例放大該影像以在顯示幕上維持相同影像大小。
在一實施例中,在完全放棄頻道的情況下,主機代管服務210暫停遊戲。在一多人遊戲的情況下,主機代管服務向其他使用者報告:使用者已放棄遊戲及/或暫停其他使用者之遊戲。
丟棄或延遲之封包
在一實施例中,若由於圖4a或圖4b中之視訊壓縮器404與用戶端415之間的封包丟失,或由於一到達過遲而不能解壓縮且滿足經解壓縮之圖框之延時需求的封包係非按序接收,而丟失資料,則視訊解壓縮邏輯412能夠減少視覺假影。在一串流I/P圖框實施中,若存在一丟失/延遲之封包,則整個螢幕受影響,可能使螢幕完全凍結達一時間段或展示其他寬螢幕視覺假影。舉例而言,若一丟失/延遲之封包導致一I圖框之丟失,則該解壓縮器將缺少之後的所有P圖框之一參考,直至接收到一新I圖框。若丟失一P圖框,則其將影響整個螢幕的之後的P圖框。視在一I圖框出現之前經過的時間而定,此丟失將具有一較長或較短之視覺影響。使用如圖7a及圖7b中所示之交錯的I/P影像塊,一丟失/延遲之封包較不可能影響整個螢幕,因為其僅影響受影響封包中所含有之影像塊。若每一影像塊之資料係在一個別封包中發送,則若丟失一封包,則其將僅影響一個影像塊。當然,視覺假影之持續時間將視以下各者而定:是否丟失一I影像塊封包;及若丟失一P影像塊,則在一I影像塊出現之前將耗用多少個圖框。但是,若以I圖框極頻繁地(可能每個圖框)更新螢幕上之不同影像塊,則即使螢幕上的一個影像塊受影響,其他影像塊亦可不受影響。此外,若某一事件導致若干封包同時丟失(例如,緊接一DSL線之一暫時中斷資料串流之電源尖峰),則該等影像塊中之一些比其他影像塊受到更大影響,但因為一些影像塊能用一新I影像塊迅速再新,所以該等影像塊將僅暫時受影響。此外,對於一串流I/P圖框實施,該等I圖框不僅為最關鍵圖框,該等I圖框亦非常大,因此,若存在一造成一丟棄/延遲之封包之事件,則一I圖框受影響之機率將比一小得多的I影像塊大(亦即,若一I圖框之任何部分丟失,則將不可能解壓縮該I圖框)。由於所有此等原因,當封包被丟棄/延遲時,使用I/P影像塊導致比I/P圖框少得多的視覺假影。
一實施例嘗試藉由將經壓縮之影像塊智慧地封裝在傳輸控制協定(TCP)封包或使用者資料報協定(UDP)封包中來減少丟失封包之影響。舉例而言,在一實施例中,儘可能將影像塊與封包邊界對齊。圖10a說明可將影像塊包裝在一系列封包1001-1005中而不實施此特徵之方式。具體言之,在圖10a中,影像塊跨越封包邊界且低效率地包裝,使得單一封包之丟失導致多個圖框之丟失。舉例而言,若封包1003或1004丟失,則三個影像塊將丟失,從而導致視覺假影。
與之相比,圖10b說明用於將影像塊智慧地包裝在封包中以減少封包丟失之影響的影像塊包裝邏輯1010。首先,影像塊包裝邏輯1010使影像塊與封包邊界對齊。因此,影像塊T1、T3、T4、T7及T2分別與封包1001-1005之邊界對齊。該影像塊包裝邏輯亦嘗試以最有效之可能方式將影像塊裝配於封包內,而不跨越封包邊界。基於該等影像塊中之每一者之大小,將影像塊T1與T6組合在一個封包1001中;將影像塊T3與T5組合在一個封包1002中;將影像塊T4與T8組合在一個封包1003中;將影像塊T7添加至封包1004;且將影像塊T2添加至封包1005。因此,根據此方案,一單一封包丟失將導致不多於2個影像塊(而非如圖10a中所說明的3個影像塊)之丟失。
圖10b中所示之實施例之一額外益處在於,該等影像塊係以不同於其顯示於影像中之次序的一次序傳輸。以此方式,若鄰近封包因干擾傳輸之相同事件而丟失,則其將影響在螢幕上彼此不靠近之區域,從而在顯示器上形成較不明顯的假影。
一實施例使用前向錯誤更正(FEC)技術保護視訊串流之特定部分不受頻道錯誤影響。如此項技術中熟知的,諸如里德-所羅門(Reed-Solomon)及維特比(Viterbi)之FEC技術產生錯誤更正資料資訊且將其附加至經由一通信頻道傳輸之資料。若一錯誤出現在基本資料(例如,一I圖框)中,則FEC可用以更正該錯誤。
FEC碼增加傳輸之資料速率,因此理想地,僅在最需要時使用該等FEC碼。若正在發送不導致一極明顯視覺假影之資料,則可能較佳不使用FEC碼保護該資料。舉例而言,一緊接在一丟失之I影像塊之前的P影像塊將僅在螢幕上產生六十分之一秒的視覺假影(亦即,在螢幕上之未經更新之影像塊上)。此視覺假影幾乎不可為人眼所偵測。由於多個P影像塊在一I影像塊之後很遠,故丟失一P影像塊變得愈加明顯。舉例而言,若一影像塊循環圖案為一在可再次得到一I影像塊之前繼之以15個P影像塊之I影像塊,則若緊接在一I影像塊之後的P影像塊丟失,則此將導致該影像塊展示一錯誤影像達15個圖框時間(在60 fps下,其將為250毫秒)。人眼將容易偵測到一串流中之250毫秒的中斷。因此,一P影像塊距一新I影像塊越遠(亦即,一P影像塊跟著一I影像塊越近),假影越明顯。如先前所論述,雖然如此,但一般而言,一P影像塊跟著一I影像塊越近,該P影像塊之資料越小。因此,I影像塊之後的P影像塊不僅在防止丟失方面更重要,而且該等P影像塊之大小較小。且,一般而言,需要保護之資料越小,保護資料所需之FEC碼越小。
因此,如圖11a中所說明,在一實施例中,由於I影像塊在視訊串流中之重要性,僅I影像塊具備FEC碼。因此,FEC 1101含有I影像塊1100之錯誤更正碼,且FEC 1104含有I影像塊1103之錯誤更正碼。在此實施例中,不產生P影像塊之FEC。
在圖11b中所說明之一實施例中,亦產生若丟失則很可能導致視覺假影之P影像塊之FEC碼。在此實施例中,FEC 1105提供前3個P影像塊之錯誤更正碼,但不提供之後的P影像塊之錯誤更正碼。在另一實施例中,產生資料大小最小之P影像塊之FEC碼(其將傾向於自我選擇在一I影像塊之後最快出現的P影像塊,該等P影像塊在保護方面更重要)。
在另一實施例中,並非發送一FEC碼及一影像塊,將該影像塊傳輸兩次,每一次在一不同封包中。若一個封包丟失/延遲,則使用另一封包。
在圖11c中所示之一實施例中,分別產生音訊封包1110及1112之FEC碼1111及1113,該等音訊封包係與視訊同時自主機代管服務傳輸。維持一視訊串流中之音訊之完整性特別重要,因為失真音訊(例如,滴答聲或嘶嘶聲)將導致一特別令人不快的使用者體驗。該等FEC碼幫助確保音訊內容在不失真的情況下在用戶端電腦415處再現。
在另一實施例中,並非發送一FEC碼及一音訊資料,將該音訊資料傳輸兩次,每一次在一不同封包中。若一個封包丟失/延遲,則使用另一封包。
另外,在圖11d中所說明之一實施例中,分別將FEC碼1121及1123用於自用戶端415上傳至主機代管服務210之使用者輸入命令1120及1122(例如,按鈕按壓)。此非常重要,因為錯失一視訊遊戲或一應用程式中之一按鈕按壓或一滑鼠移動可導致一令人不快的使用者體驗。
在另一實施例中,並非發送一FEC碼及使用者輸入命令資料,將該使用者輸入命令資料傳輸兩次,每一次在一不同封包中。若一個封包丟失/延遲,則使用另一封包。
在一實施例中,主機代管服務210評定與用戶端415之通信頻道之品質,以判定是否使用FEC,且若使用FEC,則判定FEC應應用於視訊、音訊及使用者命令之哪些部分。評定頻道之「品質」可包括諸如評估封包丟失、延時等之功能,如上所述。若頻道特別不可靠,則主機代管服務210可將FEC應用於所有I影像塊、P影像塊、音訊及使用者命令。相反,若頻道可靠,則主機代管服務210可僅將FEC應用於音訊及使用者命令,或可不將FEC應用於音訊或視訊,或可完全不使用FEC。可使用FEC之應用之各種其他排列,同時仍符合此等基本原理。在一實施例中,主機代管服務210繼續監視頻道之狀況且相應地改變FEC策略。
在另一實施例中,參看圖4a及圖4b,當一封包丟失/延遲,從而導致影像塊資料之丟失,或若(可能)由於一特別不利的封包丟失,FEC不能更正丟失之影像塊資料,則用戶端415評定在接收到一新I影像塊之前剩餘多少個圖框且比較其與自用戶端415至主機代管服務210之往返延時。若該往返延時小於在一將到達之新I圖框之前的圖框之數目,則用戶端415將一請求一新I影像塊之訊息發送至主機代管服務210。此訊息經投送至視訊壓縮器404,且並非產生資料已丟失之影像塊的一P影像塊,視訊壓縮器產生一I影像塊。若圖4a及圖4b中所示之系統經設計以提供一通常小於80毫秒之往返延時,則此使得一影像塊將在80毫秒內得以更正(在60 fps下,圖框具有16.67毫秒之持續時間,因此,在全圖框時間中,80毫秒之延時將使得在83.33毫秒內產生一經更正影像塊,83.33毫秒為5個圖框時間,其為一明顯中斷,但遠不如(例如)15個圖框之250毫秒中斷明顯)。當壓縮器404未以其通常循環次序產生此I影像塊時,若該I影像塊導致該圖框之頻寬超過可用頻寬,則壓縮器404將延遲其他影像塊之循環,使得其他影像塊在該圖框時間期間接收P影像塊(即使一個影像塊通常將在該圖框期間預期為一I影像塊),且接著自下一圖框開始,通常循環將繼續,且通常已接收之前圖框中之一I影像塊之影像塊將接收一I影像塊。雖然此動作暫時延遲R圖框循環之相位,但其在視覺上通常不明顯。
視訊及音訊壓縮器/解壓縮器實施
圖12說明一特定實施例,其中使用一多核心及/或多處理器1200並行地壓縮8個影像塊。在一實施例中,使用以2.66 GHz或更高頻率執行之雙處理器、四核心Xeon CPU電腦系統,且每一核心將開放原始程式碼x264 H.264壓縮器實施為一獨立處理程序。然而,可使用各種其他硬體/軟體組態,同時仍符合此等基本原理。舉例而言,可用一以FPGA實施之H.264壓縮器替換該等CPU核心中之每一者。在圖12中所示之實例中,核心1201-1208用以同時處理之I影像塊及P影像塊,以作為八個獨立執行緒。如此項技術中熟知的,當前多核心及多處理器電腦系統在與多線緒作業系統(諸如,Microsoft Windows XP專業版本(64位元或32位元版本)及Linux)整合後本質上能夠進行多線緒處理。
在圖12中所說明之實施例中,由於該8個核心中之每一者僅負責一個影像塊,故每一核心基本上獨立於其他核心操作,每一核心執行x264之一單獨執行個體。一基於快速周邊元件互連x1(PCI Express x1)之DVI擷取卡(諸如,來自Oosterhout,The Netherlands之Microtronix的Sendero視訊影像IP開發板(Sendero Video Imaging IP Development Board))用以以640x480、800x600或1280x720解析度擷取未經壓縮之視訊,且該卡上之FPGA使用直接記憶體存取(DMA)經由DVI匯流排將經擷取之視訊傳送至系統RAM中。將該等影像塊配置成一4x2配置1205(雖然將該等影像塊說明為正方形影像塊,但在此實施例中,該等影像塊具有160x240之解析度)。x264之每一執行個體經組態以壓縮8個160x240影像塊中之一者,且使該等影像塊同步,使得在一最初I影像塊壓縮之後,每一核心進入一循環,每一個圖框與另一圖框不同相,以壓縮一個I影像塊,繼之以七個P影像塊,且在圖12中說明。
在每一圖框時間中,使用先前所描述之技術將所得經壓縮之影像塊組合在一封包串流中,且接著將該等經壓縮之影像塊傳輸至一目的地用戶端415。
雖然圖12中未說明,但若組合的8個影像塊之資料速率超過一規定峰值資料速率941,則視需要暫時中止所有8個x264處理程序達多個圖框時間,直至組合的8個影像塊之資料已傳輸為止。
在一實施例中,用戶端415經實施為在PC上之執行FFmpeg之8個執行個體之軟體。一接收處理程序接收該8個影像塊,且將每一影像塊投送至一FFmpeg執行個體,其解壓縮該影像塊且將該影像塊再現於顯示器件422上之一適當影像塊位置上。
用戶端415自PC之輸入器件驅動器接收鍵盤、滑鼠或遊戲控制器輸入且將其傳輸至伺服器402。伺服器402接著應用該接收到的輸入器件資料且將該資料應用於在伺服器402上執行之遊戲或應用程式,伺服器402為一使用Intel2.16GHz Core Duo CPU執行Windows之PC。伺服器402接著產生一新圖框且經由其來自基於主機板之圖形系統之DVI輸出端或經由NVIDIA 8800GTX快速周邊元件互連(PCI Express)卡之DVI輸出端輸出該新圖框。
同時,伺服器402經由其數位音訊輸出端(例如,S/PDIF)輸出遊戲或應用程式所產生之音訊,該數位音訊輸出端耦接至實施視訊壓縮的基於雙四核Xeon之PC上之數位音訊輸入端。一Vorbis開放原始程式碼音訊壓縮器用以使用處理程序線緒可用的任何核心與視訊同步地壓縮音訊。在一實施例中,完成壓縮其影像塊之核心首先執行音訊壓縮。接著將該經壓縮之音訊與經壓縮之視訊一起傳輸,且使用一Vorbis音訊解壓縮器在用戶端415上解壓縮該經壓縮之音訊。
主機代管服務伺服器中心散佈
光在玻璃(諸如光纖)中以光在真空中之速度的一小部分行進,且因此,可確定光在光纖中之準確傳播速度。但是,實務上,考慮路由延遲之時間、傳輸低效率及其他額外負擔,吾人已觀測到,網際網路上之最佳延時反映較接近光速的50%之傳輸速度。因此,一最佳1000哩往返延時為大約22毫秒,且一最佳3000哩往返延時為約64毫秒。因此,一美國海岸上之單一伺服器可能距離太遠而不能向另一海岸上之伺服器(其可能在3000哩之外)提供所要延時。然而,如圖13a中所說明,若主機代管服務210之伺服器中心1300位於美國的中心(例如,Kansas、Nebraska等),以使得與美國大陸中之任一點的距離為大約1500哩或更少,則往返網際網路延時可低至32毫秒。參看圖4b,請注意,雖然使用者ISP 453允許之最壞情況延時為25毫秒,但通常,吾人已觀測到DSL及電纜數據機系統之較接近10毫秒至15毫秒之延時。此外,圖4b假設自使用者場所211至主機代管服務210之最大距離為1000哩。因此,在使用15毫秒之典型使用者ISP往返延時及具有一最大網際網路距離1500哩(其往返延時為32毫秒)的情況下,自一使用者致動輸入器件421且在顯示器件422上看到一回應之總往返延時為1+1+15+32+1+16+6+8=80毫秒。因此,80毫秒之回應時間通常可經由一1500哩之網際網路距離達成。此將允許美國大陸中的具有一足夠短使用者ISP延時453之任何使用者場所存取一位於中心之單一伺服器中心。
在圖13b中所說明之另一實施例中,主機代管服務210伺服器中心HS1-HS6係圍繞美國(或其他地理區域)戰略性地定位,其中某些較大主機代管服務伺服器中心接近人口密集中心定位(例如,HS2及HS5)。在一實施例中,伺服器中心HS1-HS6經由網路1301交換資訊,網路1301可為網際網路或一私用網路或兩者之組合。利用多個伺服器中心,服務可以較低延時提供給具有高使用者ISP延時453之使用者。
雖然網際網路上之距離肯定為一影響經由網際網路之往返延時之因素,但有時,基本上與延時無關之其他因素開始起作用。有時,經由網際網路將一封包串流投送至一遠方位置且送回,從而導致由長迴路引起之延時。有時,路徑上存在未正常操作之路由設備,從而導致傳輸之延遲。有時,存在一使一路徑超載之訊務,其引入延遲。且有時,存在一使使用者之ISP完全不能路由至一給定目的地之故障。因此,雖然一般網際網路通常提供自一點至另一點之具有一相當可靠且最佳路線及主要由距離(尤其是導致在使用者之局部區域外的路由之長距離連接)確定之延時的連接,但是決不保證在一般網際網路上自一使用者場所至一給定目的地之此可靠性及延時,且經常不能達成此可靠性及延時。
在一實施例中,當使用者用戶端415最初連接至主機代管服務210以玩一視訊遊戲或使用一應用程式時,該用戶端(例如,使用上述技術)在起動後與可用主機代管服務伺服器中心HS1-HS6中之每一者通信。若一特定連接之延時足夠低,則使用該連接。在一實施例中,該用戶端與該等主機代管服務伺服器中心之全部或一子集通信,且選擇一具有最低延時連接之主機代管服務伺服器中心。該用戶端可選擇具有最低延時連接之服務中心,或該等服務中心可識別具有最低延時連接之服務中心且將此資訊(例如,以一網際網路位址之形式)提供給該用戶端。
若一特定主機代管服務伺服器中心超載及/或使用者之遊戲或應用程式可容忍至另一負載較少的主機代管服務伺服器中心之延時,則可將用戶端415重新導向至另一主機代管服務伺服器中心。在此情況下,使用者正在執行之遊戲或應用程式將在使用者之超載伺服器中心處之伺服器402上暫停,且可將遊戲或應用程式狀態資料傳送至另一主機代管服務伺服器中心處之伺服器402。接著可重新開始遊戲或應用程式。在一實施例中,主機代管服務210將等待,直至遊戲或應用程式已到達一自然暫停點(例如,在一遊戲中之等級之間,或在使用者起始應用程式中之「儲存」操作之後)才進行該傳送。在又一實施例中,主機代管服務210將等待,直至使用者活動停止達一規定時間段(例如,1分鐘)且接著可在彼時起始該傳送。
如上所述,在一實施例中,主機代管服務210訂用圖14之一網際網路旁路服務(bypass service)440以嘗試將保證的延時提供給其用戶端。如本文中所使用,網際網路旁路服務為提供在網際網路上自一點至另一點之具有保證特性(例如,延時、資料速率等)之私用網路路線的服務。舉例而言,若主機代管服務210使用在San Francisco提供的AT&T之DSL服務自使用者接收大量訊務,而非投送至AT&T之San Francisco總局,則主機代管服務210可自一服務提供者(可能是AT&T本身或另一提供者)租賃一高容量私用資料連接,該私用資料連接位於San Francisco總局與主機代管服務210之伺服器中心中之一或多者之間。接著,若自所有主機代管服務伺服器中心HS1-HS6經由一般網際網路至San Francisco之一使用AT&T DSL之使用者的路線導致過高延時,則可改為使用私用資料連接。雖然私用資料連接通常比該等經由一般網際網路之路線昂貴,但只要該等路線占至使用者之主機代管服務210連接之一小百分率,則總費用影響將很低,且使用者能體驗一更穩定之服務體驗。
若發生電源故障,則伺服器中心常常具有兩組備用電源。第一組通常為來自電池(或來自一替代的立即可用之能量源,諸如保持運轉且附接至一發電機之飛輪)之備用電源,該備用電源在電源故障時立即提供電力且保持伺服器中心執行。若電源故障為暫時的且輸電線迅速恢復(例如,在一分鐘內),則電池即足以保持伺服器中心執行。但是,若電源故障持續一較長時間段,則通常啟動發電機(例如,柴油發電機),其取代電池且可在有燃料情況下運轉。此等發電機非常貴,因為其必須能夠產生與伺服器中心通常自輸電線獲得之電力一樣多的電力。
在一實施例中,主機代管服務HS1-HS5中之每一者彼此共用使用者資料,使得若一個伺服器中心發生電源故障,則其可暫停正在進行中之遊戲及應用程式,且接著將遊戲或應用程式狀態資料自每一伺服器402傳送至其他伺服器中心處之伺服器402,且接著將通知每一使用者之用戶端415將其通信導向至新伺服器402。若此等情況很少發生,則將一使用者轉接至不能提供最佳延時之一主機代管服務伺服器中心可為可接受的(亦即,該使用者僅需在電源故障的持續期間容忍較高延時),此將允許轉接使用者之更廣範圍選項。舉例而言,由於時區在美國不同,故東海岸之使用者可能在11:30PM睡覺,而西海岸之使用者在8:30PM開始使用視訊遊戲之高峰。若西海岸之一主機代管服務伺服器中心在彼時發生電源故障,則可能無足夠的其他主機代管服務伺服器中心處之西海岸伺服器402來處置所有使用者。在此情況下,使用者中之一些可轉接至東海岸之具有可用伺服器402之主機代管服務伺服器中心,且對使用者之唯一影響將為較高延時。一旦使用者已自已斷電之伺服器中心轉接,該伺服器中心即可接著開始有序地關閉其伺服器及設備,以便在電池(或其他備用的立即可用電源)耗盡之前關閉所有設備。以此方式,可避免伺服器中心之發電機之費用。
在一實施例中,在主機代管服務210之沉重負載時間期間(歸因於峰值使用者負載,或因為一或多個伺服器中心故障),使用者基於其正在使用的遊戲或應用程式之延時需求轉接至其他伺服器中心。因此,在供應有限的情況,使用需要低延時之遊戲或應用程式的使用者將優先選擇可用的低延時伺服器連接。
主機代管服務特徵
圖15說明以下特徵描述中所使用的主機代管服務210之一伺服器中心之組件之一實施例。與圖2a中所說明之主機代管服務210一樣,除非另有限定,否則此伺服器中心之該等組件由主機代管服務210控制系統401控制及協調。
將來自使用者用戶端415之入埠網際網路訊務1501導向至入埠路由1502。通常,入埠網際網路訊務1501將經由至網際網路之一高速光纖連接進入伺服器中心,但具有足夠頻寬、可靠性及低延時之任何網路連接構件將能滿足此要求。入埠路由1502為網路(該網路可實施為一乙太網路、一光纖頻道網路,或經由任何其他傳送構件實施)交換機及支援該等交換機之路由伺服器之一系統,該系統獲取達到封包且將每一封包投送至適當應用程式/遊戲(「app/game」)伺服器1521-1525。在一實施例中,一傳遞至一特定應用程式/遊戲伺服器之封包表示自用戶端接收的資料之一子集及/或可由資料中心中之其他組件(例如,諸如閘道器及路由器之網路連接組件)轉譯/改變。在一些情況下,舉例而言,若一遊戲或應用程式同時並行地在多個伺服器上執行,則一次將封包投送至一個以上伺服器1521-1525。RAID陣列1511-1512連接至入埠路由網路1502,使得應用程式/遊戲伺服器1521-1525可讀取並寫入至RAID陣列1511-1512。此外,RAID陣列1515(其可實施為多個RAID陣列)亦連接至入埠路由1502,且可自應用程式/遊戲伺服器1521-1525讀取來自RAID陣列1515之資料。入埠路由1502可:實施於許多先前技術網路架構中,該等架構包括交換機之樹狀結構,其中入埠網際網路訊務1501位於樹之根部;實施於一將所有各種器件互連之網狀結構中;或實施為一系列互連之子網路,其中相互通信之器件之間的集中訊務與其他器件之間的集中訊務隔離。網路組態之一類型為SAN,雖然其通常用於儲存器件,但其亦可用於器件之間的一般高速資料傳送。此外,應用程式/遊戲伺服器1521-1525可各自具有至入埠路由1502之多個網路連接。舉例而言,伺服器1521-1525可具有至附接至RAID陣列1511-1512之一子網路的一網路連接及至一附接至其他器件之子網路的另一網路連接。
如先前關於圖4a中所說明之實施例中之伺服器402所描述,應用程式/遊戲伺服器1521-1525可組態為完全相同、有一點不同或完全不同的伺服器。在一實施例中,每一使用者在使用主機代管服務時通常使用至少一應用程式/遊戲伺服器1521-1525。為闡述簡單起見,吾人應假設一給定使用者正在使用應用程式/遊戲伺服器1521,但一個使用者可使用多個伺服器,且多個使用者可共用一單一應用程式/遊戲伺服器1521-1525。使用者之控制輸入(如先前所描述,自用戶端415發送)係作為入埠網際網路訊務1501接收,且經由入埠路由1502投送至應用程式/遊戲伺服器1521。應用程式/遊戲伺服器1521將使用者之控制輸入用作在伺服器上執行之遊戲或應用程式之控制輸入,且計算視訊的下一圖框及與該圖框相關聯之音訊。應用程式/遊戲伺服器1521接著將未經壓縮之視訊/音訊1529輸出至共用視訊壓縮1530。應用程式/遊戲伺服器可經由任何構件(包括一或多個十億位元乙太網路連接)輸出未經壓縮之視訊,但在一實施例中,視訊係經由一DVI連接輸出,且音訊及其他壓縮及通信頻道狀態資訊係經由一通用串列匯流排(USB)連接輸出。
共用視訊壓縮1530壓縮來自應用程式/遊戲伺服器1521-1525之未經壓縮之視訊及音訊。該壓縮可全部在硬體中或在執行軟體之硬體中實施。可針對每一應用程式/遊戲伺服器1521-1525存在一專用壓縮器,或者,若該等壓縮器足夠快,則可使用一給定壓縮器壓縮來自一個以上應用程式/遊戲伺服器1521-1525之視訊/音訊。舉例而言,在60 fps下,一視訊圖框時間為16.67毫秒。若一壓縮器能夠在1毫秒內壓縮一圖框,則可使用該壓縮器藉由一個接一個地自伺服器獲取輸入來壓縮來自多達16個應用程式/遊戲伺服器1521-1525之視訊/音訊,其中該壓縮器儲存每一視訊/音訊壓縮過程之狀態且在壓縮器在來自該等伺服器之視訊串流/音訊串流之間循環時切換內容脈絡。此使得大大節省壓縮硬體之成本。由於不同伺服器將在不同時間完成圖框,故在一實施例中,該等壓縮器資源處於一具有用於儲存每一壓縮過程之狀態的共用儲存構件(例如,RAM、快閃記憶體)之共用集區1530中,且當伺服器1521-1525圖框完成且準備予以壓縮時,一控制構件確定彼時哪一壓縮資源可用,為該壓縮資源提供伺服器之壓縮過程之狀態及待壓縮的未經壓縮之視訊/音訊之圖框。
請注意,每一伺服器之壓縮過程之狀態之一部分包括關於壓縮本身之資訊(諸如,先前圖框之經解壓縮之圖框之緩衝資料,其可用作為P影像塊之參考)、視訊輸出之解析度、壓縮之品質、影像塊化結構、每個影像塊之位元分配、壓縮品質、音訊格式(例如,立體聲、環繞聲、Dolby AC-3)。但是,壓縮過程狀態亦包括通信頻道狀態資訊,其關於峰值資料速率941及目前是否正輸出一先前圖框(如圖9b中所說明)(且結果,應忽略當前圖框),及可能地,是否存在壓縮時應考慮之頻道特性(諸如,過多的封包丟失),該等頻道特性會影響關於壓縮之決策(例如,就I影像塊之使用頻率而言,等)。由於峰值資料速率941或其他頻道特性隨時間變化,如藉由支援每一使用者監視自用戶端415發送之資料之應用程式/遊戲伺服器1521-1525所確定,應用程式/遊戲伺服器1521-1525將相關資訊發送至共用硬體壓縮1530。
共用硬體壓縮1530亦使用諸如先前所描述之構件的構件將經壓縮之視訊/音訊封包化,且在適當情況下,應用FEC碼,複製特定資料或採取其他步驟,以充分確保視訊/音訊資料串流能夠由用戶端415以具有儘可能高的品質及可靠性接收並解壓縮。
諸如下文所描述之應用的一些應用需要一給定應用程式/遊戲伺服器1521-1525之視訊/音訊輸出可同時以多種解析度(或以其他多種格式)獲得。若應用程式/遊戲伺服器1521-1525因此通知共用硬體壓縮1530資源,則將以不同格式、不同解析度及/或以不同封包/錯誤更正結構同時壓縮應用程式/遊戲伺服器1521-1525之未經壓縮之視訊音訊1529。在一些情況下,一些壓縮資源可在壓縮同一視訊/音訊之多個壓縮過程之間共用(例如,在許多壓縮演算法中,存在一在壓縮之前將影像按比例調整至多個大小之步驟。若需要輸出不同大小之影像,則可使用此步驟同時伺服若干壓縮過程)。在其他情況下,每一格式需要單獨壓縮資源。在任何情況下,同時將一給定應用程式/遊戲伺服器1521-1525(其可為一個伺服器或許多伺服器)所需的所有各種解析度及格式之經壓縮之視訊/音訊1539輸出至出埠路由1540。在一實施例中,經壓縮之視訊/音訊1539之輸出為UDP格式,因此該輸出為封包之一單向串流。
出埠路由網路1540包含一系列路由伺服器及交換器,該等伺服器及交換器經由出埠網際網路訊務1599介面(其通常連接至至網際網路之一光纖介面)將每一經壓縮之視訊/音訊串流導向至(多個)所欲使用者或其他目的地,及/或送回至延遲緩衝器1515,及/或送回至入埠路由1502,及/或經由一私用網路(圖中未展示)輸出以進行視訊散佈。請注意(如下文所描述),出埠路由1540可同時將一給定視訊/音訊串流輸出至多個目的地。在一實施例中,使用網際網路協定(IP)多播實施此輸出,其中廣播一意欲同時串流至多個目的地之給定UDP串流,且該廣播由出埠路由1540中之該等路由伺服器及交換器重複。該廣播之該多個目的地可經由網際網路至多個使用者之用戶端415、經由入埠路由1502至多個應用程式/遊戲伺服器1521-1525及/或至一或多個延遲緩衝器1515。因此,將一給定伺服器1521-1522之輸出壓縮成一或多種格式,且將每一經壓縮之串流導向至一或多個目的地。
此外,在另一實施例中,若多個應用程式/遊戲伺服器1521-1525由一個使用者同時使用(例如,在用以產生一複雜場景之3D輸出之一並行處理組態中)且每一伺服器產生所得影像之一部分,則多個伺服器1521-1525之視訊輸出可由共用硬體壓縮1530組合成一組合圖框,且在此之後,如上所述地處置該組合圖框,就好像其該影像來自一單一應用程式/遊戲伺服器1521-1525一樣。
請注意,在一實施例中,將由應用程式/遊戲伺服器1521-1525產生的所有視訊之一複本(至少以使用者所觀看到的視訊之解析度或更高解析度)記錄在延遲緩衝器1515中達至少某一分鐘數(在一實施例中,為15分鐘)。此記錄允許每一使用者自每一會期「倒轉」視訊以回顧先前工作或功績(在遊戲之情況下)。因此,在一實施例中,亦可將正投送至一使用者用戶端415之每一經壓縮之視訊/音訊輸出1539串流多播至延遲緩衝器1515。在將視訊/音訊儲存於延遲緩衝器1515上之後,延遲緩衝器1515上之一目錄提供應用程式/遊戲伺服器1521-1525(其為延遲之視訊/音訊之源)之網路位址與延遲緩衝器1515上之位置(可在此發現延遲之視訊/音訊)之間的一對照參考。
實況、立即可觀看、立即可玩的遊戲
應用程式/遊戲伺服器1521-1525不僅可用於執行用於使用者之給定應用程式或視訊遊戲,而且可用於產生用於主機代管服務210之之使用者介面應用程式,其支援經由主機代管服務210之導覽及其他特徵。在圖16中展示一此使用者介面應用程式之一螢幕擷取畫面,一「Game Finder」螢幕。此特定使用者介面螢幕允許一使用者觀看其他使用者現場玩(或延遲)的15個遊戲。「縮圖」視訊視窗中之每一者(諸如1600)為一處於運動中之實況視訊視訊,其展示來自一個使用者遊戲之視訊。縮圖中所示之視圖可為使用者看到的相同視圖,或該視圖可為一延遲視圖(例如,若一使用者正在玩一戰鬥遊戲,一使用者可能不想其他使用者看到其藏在哪裡,則該使用者可選擇使其遊戲玩法之任何視圖延遲一時間段,即10分鐘)。該視圖亦可為一遊戲之相機視圖,其不同於任何使用者之視圖。經由選單選擇(此說明中圖中未展示),一使用者可基於各種準則選擇一立刻觀看遊戲之選擇。作為例示性選擇之一小樣本,使用者可選擇對遊戲(諸如圖16中所示之遊戲)進行隨機選擇,所有同一類型之遊戲(由不同玩家在玩)、僅一遊戲之頂級玩家、遊戲中之給定等級之玩家,或較低級玩家(例如,玩家在學習基本規則)、為「夥伴」(或競爭對手)之玩家、具有最多觀眾之遊戲等。
請注意,通常,每一使用者將決定來自其遊戲或應用程式之視訊是否可供其他使用者觀看,且若可以,則確定哪些其他使用者且其他使用者何時可觀看、是否僅可延遲觀看。
產生圖16中所示之使用者介面螢幕之應用程式/遊戲伺服器1521-1525藉由將一訊息發送至用於每一使用者之應用程式/遊戲伺服器1521-1525來獲取15個視訊/音訊饋送,該訊息自該每一使用者之遊戲請求視訊/音訊。該訊息係經由入埠路由1502或另一網路發送。該訊息可包括所請求之視訊/音訊之大小及格式,且將識別觀看使用者介面螢幕之使用者。一給定使用者可選擇「私密(privacy)」模式且不准許任何其他使用者觀看其遊戲之視訊/音訊(自該使用者之觀看點或自另一觀看點),或如先前段落中所描述,一使用者可選擇允許觀看來自其遊戲之視訊/音訊,但將被觀看之視訊/音訊延遲。一接收且接受一允許使用者之視訊/音訊被觀看之請求的使用者應用程式/遊戲伺服器1521-1525將照此對請求伺服器作出應答,且該伺服器亦將通知共用硬體壓縮1530關於以請求格式或螢幕大小產生一額外經壓縮之視訊串流之需要(假設該格式及螢幕大小不同於已經產生的格式及螢幕大小),且該伺服器亦將指示該經壓縮之視訊之目的地(亦即,該請求伺服器)。若僅將所請求之視訊/音訊延遲,則請求應用程式/遊戲伺服器1521-1525將得到如此通知,且該伺服器將藉由查找視訊/音訊在延遲緩衝器1515上之目錄中的位置及為延遲之視訊/音訊之源的應用程式/遊戲伺服器1521-1525之網路位址而自延遲緩衝器1515獲取延遲之視訊/音訊。一旦所有此等請求已產生且經處置,多達15個縮圖大小之實況視訊串流將自出埠路由1540投送至入埠路由1502、投送至產生使用者介面螢幕之應用程式/遊戲伺服器1521-1525,且將由該伺服器解壓縮並顯示。延遲之視訊/音訊串流之螢幕大小可能過大,且在此情況下,應用程式/遊戲伺服器1521-1525將解壓縮該等串流且將該等視訊串流按比例縮小至縮圖大小。在一實施例中,將對音訊/視訊之請求發送至一類似於圖4a之主機代管服務控制系統之中央「管理」服務(圖15中未展示)(且由其管理),該中央「管理」服務接著將該等請求重新導向至適當應用程式/遊戲伺服器1521-1525。此外,在一實施例中,可能不需要任何請求,因為該等縮圖被「推」至允許此行為的彼等使用者之用戶端。
將來自15個遊戲之音訊全部同時混合可形成一刺耳的聲音。使用者可選擇以此方式將所有聲音混合在一起(可能僅得到由觀看之所有動作產生之一「喧鬧」感覺),或者使用者可選擇一次僅收聽一個遊戲之音訊。藉由將黃色選擇方塊1601(其在圖16之黑白示意圖中表現為一黑色矩形輪廓)移動至一給定遊戲來實現對一單一遊戲之選擇(可藉由使用鍵盤上之方向鍵、藉由移動滑鼠、藉由移動搖桿或藉由推動諸如行動電話之另一器件上之方向按鈕來實現黃色選擇方塊移動)。一旦選定一單一遊戲,即播放來自該遊戲之音訊。亦展示遊戲資訊1602。在此遊戲之情況下,例如,發行者標誌(例如,「Electronic Arts」之「EA」)及遊戲標誌(例如,「Need for Speed Carbon」及一橙色水平列(在圖16中再現為一具有豎直條帶之列))在相關項中指示,在彼特定時刻玩或觀看該遊戲之人數(在此情況下,有許多人,因此該遊戲正「Hot」)。此外,提供「Stats」(亦即,統計資料),其指示有145個玩家在積極地玩「The Need for Speed Game」之80個不同執行個體(亦即,該遊戲可由個別玩家或多個玩家來玩),且有680個觀眾(此使用者為其中之一)。請注意,此等統計資料(及其他統計資料)係由主機代管服務控制系統401收集且儲存於RAID陣列1511-1512上,以用於保持主機代管服務210操作之日誌且用於適當地對使用者記賬及對提供內容之發行者付費。統計資料中之一些歸因於動作而由服務控制系統401記錄,且一些統計資料由個別應用程式/遊戲伺服器1521-1525報告給服務控制系統401。舉例而言,執行此Game Finder應用程式之應用程式/遊戲伺服器1521-1525將何時觀看遊戲(及何時將停止觀看遊戲)之訊息發送至主機代管服務控制系統401,因此伺服器可更新被觀看之遊戲之數目之統計資料。該等統計資料中之一些可用於諸如此Game Finder應用程式之使用者介面應用程式。
若使用者按一下其輸入器件上之一啟動按鈕,則其將看到黃色框中之縮圖視訊在繼續播放實況視訊之同時放大至全螢幕大小。將在圖17中之過程中展示此效應。請注意,視訊視窗1700之大小已增長。為實施此效應,應用程式/遊戲伺服器1521-1525請求執行該遊戲之應用程式/遊戲伺服器1521-1525選擇將該遊戲之一全螢幕大小的視訊串流之一複本(以使用者之顯示器件422之解析度)投送至該伺服器。執行該遊戲之應用程式/遊戲伺服器1521-1525通知共用硬體壓縮器1530:不再需要該遊戲之一縮圖大小之複本(除非另一應用程式/遊戲伺服器1521-1525需要此縮圖),且接著該伺服器指導該壓縮器將該視訊之一全螢幕大小之複本發送至縮放該視訊之應用程式/遊戲伺服器1521-1525。玩該遊戲之使用者之顯示器件422之解析度可能與放大該遊戲之使用者之顯示器件之解析度相同或不同。此外,該遊戲之其他觀眾之顯示器件422之解析度與放大該遊戲之使用者之顯示器件之解析度相同或不同(且可能具有不同的音訊播放構件,例如立體聲或環繞聲)。因此,共用硬體壓縮器1530確定是否已產生一滿足請求視訊/音訊串流之使用者之需求的合適經壓縮之視訊/音訊串流,且若存在一合適經壓縮之視訊/音訊串流,則該共用硬體壓縮器通知出埠路由1540將該串流之一複本投送至縮放該視訊之應用程式/遊戲伺服器1521-1525,且若不存在一合適經壓縮之視訊/音訊串流,則該共用硬體壓縮器壓縮適合該使用者的視訊之另一複本且指示該出埠路由將該串流發送回至入埠路由1502及縮放該視訊之應用程式/遊戲伺服器1521-1525。現在正接收選定視訊之一全螢幕版本的此伺服器將解壓縮該視訊且逐漸將該視訊放大至完整大小。
圖18說明在遊戲已完全放大至全螢幕且以使用者之顯示器件422之全解析度展示遊戲之後螢幕看上去如何,如箭頭1800所指向之影像所指示。執行game finder應用程式之應用程式/遊戲伺服器1521-1525將不再需要縮圖之訊息發送至已正提供縮圖之其他應用程式/遊戲伺服器1521-1525且將不再觀看其他遊戲之訊息發送至主機代管服務控制伺服器401。此時,伺服器產生之唯一顯示為一在螢幕頂部之覆疊圖1801,其提供資訊及選單控制給使用者。請注意,隨著此遊戲的進行,觀眾已增長至2,503位。由於觀眾如此多,將範圍限定於具有具相同或幾乎相同解析度之顯示器件422的許多觀眾(每一應用程式/遊戲伺服器1521-1525具有按比例調整視訊以適合設備之能力)。
因為所展示之遊戲為一多人遊戲,所以使用者可決定在某一點加入該遊戲。主機代管服務210可出於各種原因而允許或不允許使用者加入該遊戲。舉例而言,使用者可能必須為玩遊戲付費而因此選擇不玩,使用者可能不具有足以加入該特定遊戲之級別(例如,其與其他玩家相比不具競爭性),或使用者之網際網路連接可能不具有足夠低的延時以允許使用者玩遊戲(例如,不存在對觀看遊戲之延時約束,因此,可觀看一在遠處(實際上,在另一大陸上)玩的遊戲而不用擔心延時,但是對於一將要玩的遊戲,延時必須足夠低以使使用者(a)享受該遊戲,且(b)使其與可能具有較短延時連接之其他玩家同步調。若准許使用者參加,則已為使用者提供Game Finder使用者介面之應用程式/遊戲伺服器1521-1525將請求主機代管服務控制伺服器401起始(亦即,定位及啟動)為了玩特定遊戲而經適當組態之應用程式/遊戲伺服器1521-1525以自RAID陣列1511-1512載入該遊戲,且接著主機代管服務控制伺服器401將指示入埠路由1502將該等控制信號自使用者傳送至現在代管該遊戲之應用程式/遊戲伺服器,且其將指示共用硬體壓縮1530自壓縮來自已代管Game Finder應用程式之應用程式/遊戲伺服器之視訊/音訊切換至壓縮來自現在代管該遊戲之應用程式/遊戲伺服器之視訊/音訊。Game Finder應用程式/遊戲服務與代管該遊戲之新應用程式/遊戲伺服器之垂直同步不同步,且結果,該兩個同步之間可能存在一時差。因為共用視訊壓縮硬體1530將在應用程式/遊戲伺服器1521-1525完成一視訊圖框後開始壓縮視訊,所以來自該新伺服器之第一圖框可在舊伺服器之一全圖框時間之前完成,其可在先前經壓縮之圖框完成其傳輸之前(例如,考慮圖9b之傳輸時間992:若未經壓縮之圖框3 963提前半個圖框時間完成,則此將撞擊傳輸時間992)。在此情況下,共用視訊壓縮硬體1530將忽略來自該新伺服器之第一圖框(例如,如忽略974圖框4 964),且用戶端415將來自該舊伺服器之最後一個圖框保持一額外圖框時間,且共用視訊壓縮硬體1530將開始壓縮來自代管該遊戲之新應用程式/遊戲伺服器的下一個圖框時間視訊。視覺上,對使用者而言,自一個應用程式/遊戲伺服器至另一伺服器之轉換將為無縫的。主機代管服務控制伺服器401接著通知已代管Game Finder之應用程式/遊戲伺服器1521-1525切換至一閒置狀態,直至再次需要該伺服器為止。
使用者接著能夠玩該遊戲。且,特殊之處在於感覺上能立即玩該遊戲(因為已以十億位元/秒之速度將該遊戲自RAID陣列1511-1512載入至應用程式/遊戲伺服器1521-1525上),且將該遊戲與一作業系統一起載入至一完全適合該遊戲之伺服器上,該作業系統係以理想驅動程式、註冊組態(在Windows之情況下)完全針對該遊戲組態,且無其他可能與該遊戲之操作競爭的應用程式在伺服器上執行。
此外,隨著使用者在遊戲中進展,遊戲之片段中之每一者將以十億位元/秒之速度(亦即,在8秒內載入十億位元組)自RAID陣列1511-1512載入至伺服器中,且由於RAID陣列1511-1512之大儲存容量(因為RAID陣列為許多使用者之間的共用資源,所以其可以非常大,而仍具成本效益),故可預先計算幾何形狀設定或其他遊戲片段設定且將其儲存於RAID陣列1511-1512上且極迅速地載入。此外,因為已知每一應用程式/遊戲伺服器1521-1525之硬體組態及計算能力,所以可預先計算像素著色器及頂點著色器。
因此,該遊戲幾乎立即啟動,該遊戲將在一理想環境中執行,且隨後片段幾乎立即載入。
但是,除此等優點之外,使用者將能夠(經由先前所描述之Game Finder及其他手段)觀看玩遊戲之其他人且決定該遊戲是否有趣且在該遊戲有趣的情況下自觀看其他人學習技巧。且,使用者將能夠立即示範該遊戲而不必等待較長下載及/或安裝時間,且使用者將能夠立即玩該遊戲(可能以較少費用試玩該遊戲,或者長期玩該遊戲)。且,使用者將能夠在一Windows PC、一Macintosh上、在一電視機上、在家中、在旅行時且甚至在一具有一足夠低延時無線連接之行動電話(雖然延時對觀看而言將不成問題)上玩該遊戲。且,此過程完全可在一直未實體擁有該遊戲之一複本的情況下完成。
如先前所提及,使用者可決定不允許其他人觀看其遊戲玩法,允許其遊戲在一延遲之後被觀看,允許可由選定使用者觀看其遊戲,或允許可由所有使用者觀看其遊戲。無論如何,在一實施例中,視訊/音訊將在延遲緩衝器1515中儲存15分鐘,且使用者將能夠「倒轉」且觀看其先前遊戲玩法並暫停、緩慢地播放、向前快轉等,就像使用者能夠利用一數位視訊記錄器(DVR)看電視一樣。雖然在此實例中,使用者正在玩遊戲,但相同「DVR」能力可在使用者使用一應用程式的情況下可用。此能力可有助於回顧先前工作及如下文所描述之其他應用。此外,若遊戲經設計具有基於利用遊戲狀態資訊倒轉之能力,以使得相機視圖可變化等,則亦支援此「3D DVR」能力,但該能力將需要遊戲經設計以支援該能力。使用延遲緩衝器1515之「DVR」能力對任何遊戲或應用程式(當然,限於在使用遊戲或應用程式時產生之視訊)起作用,但在具有3D DVR能力之遊戲的情況下,使用者可控制一先前所玩片段之三維「漫遊(fly through)」,且使延遲緩衝器1515記錄所得視訊,且記錄遊戲片段之遊戲狀態。因此,將一特定「漫遊」記錄為經壓縮之視訊,但由於亦記錄了遊戲狀態,故一不同漫遊可能在遊戲之相同片段之稍後時期出現。
如下文所描述,主機代管服務210上之使用者將各自具有一「使用者頁面」(「User Page」),使用者可在該頁面中公佈關於其自身的資訊及其他資料。除別的以外,使用者亦將能夠公佈其已儲存的來自遊戲玩法之視訊片段。舉例而言,若使用者已克服一遊戲中之一特別困難之挑戰,則使用者可「倒轉」至恰在使用者已達成遊戲中之極大成功的點之前,且接著指示主機代管服務210將一具有某一持續時間(例如,30秒)的視訊片段儲存於使用者之「使用者頁面」上以供其他使用者觀看。為實施此過程,僅僅需要使用者使用應用程式/遊戲伺服器1521-1525,播放儲存於延遲緩衝器1515至RAID陣列1511-1512中之視訊,且接著在使用者之「使用者頁面」上將該視訊片段編入索引。
若遊戲具有3D DVR能力(如上所述),則3D DVR所需之遊戲狀態資訊亦可由使用者記錄且可用於使用者之「使用者頁面」。
在一遊戲經設計以具有除作用中玩家之外的「旁觀者」(亦即,能夠在3D世界中旅行且觀測動作而不參與動作之使用者)的情況下,Game Finder應用程式將使使用者能夠作為旁觀者以及玩家加入遊戲。自實施觀點看,若使用者為一旁觀者而非一作用中玩家,則此對代管系統210而言並無差異。將遊戲載入至應用程式/遊戲伺服器1521-1525上,且使用者將控制遊戲(例如,控制一觀看世界之虛擬相機)。唯一差異將為使用者之遊戲體驗。
多個使用者合作
主機代管服務210之另一特徵為多個使用者在觀看實況視訊之同時(即使將差別極大的器件用於觀看)合作之能力。此特徵在玩遊戲及使用應用程式時均有用。
許多PC及行動電話配備了視訊相機且具有進行即時視訊壓縮之能力,特別在影像較小時。此外,可利用可附接至電視之小相機,且以軟體或使用壓縮視訊的許多硬體壓縮器件中之一者實施即時壓縮並不困難。此外,許多PC及所有行動電話具有麥克風,且存在具有麥克風之頭戴式耳機。
與本端視訊/音訊壓縮能力組合的此等相機及/或麥克風(特別使用本文中所描述之低延時視訊壓縮技術)將使使用者能夠將視訊及/或音訊與輸入器件控制資料一起自使用者場所211傳輸至主機代管服務210。當使用此等技術時,接著可達成圖19中所說明之一能力:一使用者可使其視訊及音訊1900出現在另一使用者之遊戲或應用程式中之螢幕上。此實例為一多人遊戲,其中隊友在一汽車比賽中合作。使用者之視訊/音訊僅可選擇性地由其隊友可觀看/可聽到。且,由於使用上述該等技術可能有效地不存在延時,故玩家將能夠彼此即時地談話或運動而無可感覺延遲。
藉由使來自一使用者之相機/麥克風之經壓縮之視訊及/或音訊作為入埠網際網路訊務1501到達來實現此視訊/音訊整合。接著,入埠路由1502將該視訊及/或音訊投送至應用程式/遊戲伺服器1521-1525,其准許觀看/收聽該視訊及/或音訊。接著,各別應用程式/遊戲伺服器1521-1525之使用者(其選擇使用該視訊及/或音訊)解壓縮該視訊及/或音訊且視需要將其整合以出現在遊戲或應用程式中,諸如1900所說明。
圖19之實例展示如何在一遊戲中使用此合作,但此合作可為應用程式之一非常強大之工具。考慮Chicago之建築師為New York之一地產開發商為New York城設計一大型建築物的情況,但決策涉及正在旅行且碰巧處在Miami之機場之金融投資者,且必須做出關於建築物在如何適應附近建築物方面之特定設計元素之決策,以滿足投資者及地產開發商兩者。假設Chicago之建築公司具有一具有一附接至PC之相機的高解析度監視器,New York之地產開發商具有一具有一相機的膝上型電腦,且Miami之投資者具有一具有一相機的行動電話。建築公司可使用主機代管服務210代管一能夠進行高度真實3D再現之強大建築設計應用程式,且其可利用New York城中之建築物之大型資料庫,以及設計中之建築物之資料庫。該建築設計應用程式將在應用程式/遊戲伺服器1521-1525中之一者上執行或在該等伺服器中之若干者上執行(若該應用程式需要大量計算能力)執行。處於完全不同位置的3個使用者中之每一者將連接至主機代管服務210,且每一使用者將具有該建築設計應用程式之視訊輸出之一同時視圖,但可藉由共用硬體壓縮1530針對每一使用者具有的給定器件及網路連接特性使該同時視圖具有適當大小(例如,建築公司可經由一20 Mbps商業網際網路連接看到一2560x1440 60 fps之顯示,New York之地產開發商可經由一6 Mbps DSL連接在其膝上型電腦上看到一1280x720 60 fps之影像,且投資者可經由一250 Kbps蜂巢式資料連接在其行動電話上看到一320x180 60 fps之影像)。每一方將聽到其他方之聲音(會議呼叫將由應用程式/遊戲伺服器1521-1525中之許多可廣泛可用之會議呼叫套裝軟體中之任一者處置),且經由致動一使用者輸入器件上之一按鈕,使用者將能夠使用其本端相機呈現其本身之視訊。隨著會議進行,建築師將能夠以極具相片真實感之3D再現方式展示當建築師使建築物旋轉且緊臨該區域中之另一建築物飛越時該建築物看上去如何,且所有各方將以每一方之顯示器件之解析度看到相同視訊。不會有任一方所使用之本端器件中之任一者不能處置具有此真實感之3D動畫之問題,更不必說下載或甚至儲存再現New York城中之周圍建築物所需之巨大資料庫。自使用者中之每一者之觀點看,儘管相隔距離且儘管本端器件完全不同,但該等使用者將具有一具有難以置信的真實感程度之無縫體驗。且,當一方想要其表情能看到以更好地傳達其情緒狀態時,其亦可如此做。此外,若地產開發商或投資者想要控制該建築程式且使用其自身輸入器件(可為鍵盤、滑鼠、小鍵盤或觸控螢幕),則其可以使用該輸入器件,且該建築程式將回應而無可感覺延時(假設地產開發商或投資者之網路連接不具有不合理延時)。舉例而言,在行動電話的情況下,若行動電話連接至機場之WiFi網路,則其將具有極低延時。但是,若行動電話使用美國現今可用之蜂巢式資料網路,則其很可能遭受明顯滯後。另外,針對投資者在觀看建築師控制建築物飛越的大部分會議目的或針對視訊電話會議之談話,即使存在蜂巢式延時,亦應為可接受的。
最後,在合作會議呼叫之最後,地產開發商及投資者將發表評論且停止主機代管服務,建築公司將能夠「倒轉」已記錄在延遲緩衝器1515上的會議之視訊且回顧在會議期間作出的施加至建築物之3D模型之評論、面部表情及/或動作。若存在建設公司想要儲存之特定片段,則可將視訊/音訊之彼等片段自延遲緩衝器1515移動至RAID陣列1511-1512以供存檔儲存及稍後播放。
此外,自成本觀點看,若建築師僅必須在15分鐘的會議呼叫中使用計算能力及New York城之大型資料庫,則其僅需要為使用該等資源之時間付費,而不必擁有大功率之工作站且不必購買一大型資料庫之昂貴複本。
富含視訊之社區服務
主機代管服務210實現用於在網際網路上建立富含視訊之社區服務之無先例機會。圖20展示主機代管服務210上之一遊戲玩家之一例示性「使用者頁面」。與Game Finder應用程式一樣,「使用者頁面」為一在應用程式/遊戲伺服器1521-1525中之一者上執行的應用程式。此頁面上的所有縮圖及視訊視窗展示持續移動之視訊(若片段較短,則其循環)。
使用一視訊相機或藉由上載視訊,使用者(其使用者名稱為「KILLHAZARD」)亦能夠公佈其他使用者可觀看的其自身之一視訊2000。將該視訊儲存於RAID陣列1511-1512上。此外,當其他使用者來到KILLHAZARD之「使用者頁面」時,若KILLHAZARD在此時正在使用主機代管服務210,則將展示KILLHAZARD正在做什麼的實況視訊2001(假設其准許使用者觀看其「使用者頁面」以觀看其)。藉由代管「使用者頁面」應用程式之應用程式/遊戲伺服器1521-1525來實現此過程,該應用程式/遊戲伺服器1521-1525向服務控制系統401請求KILLHAZARD是否在作用中,且若在作用中,則請求KILLHAZARD正在使用之應用程式/遊戲伺服器1521-1525。接著,使用Game Finder應用程式所使用之相同方法,將一具有合適解析度及格式之經壓縮之視訊串流發送至執行「使用者頁面」應用程式之應用程式/遊戲伺服器且將顯示該經壓縮之視訊串流。若一使用者選擇KILLHAZARD之實況遊戲玩法的視窗,且接著在其輸入器件上適當地按一下,則該視窗將放大(再次使用與Game Finder應用程式相同的方法),且該實況視訊將以觀看使用者之顯示器件422之解析度(適合於觀看使用者之網際網路連接之特性)充滿螢幕。
此優於先前技術方法之關鍵優點在於,觀看「使用者頁面」之使用者能夠看到使用者不擁有的遊戲實況,且很可能不具有能夠玩該遊戲之本機電腦或遊戲控制台。該優點為使用者提供一看「使用者頁面」中所示的使用者「正在」玩遊戲之很好機會,且此為一學習觀看使用者可能想要嘗試或改善的一遊戲之機會。
來自KILLHAZARD之夥伴的經相機記錄或經上載之視訊剪輯2002亦展示於「使用者頁面」上,且在每一視訊剪輯之下為指示該夥伴是否在線上玩遊戲之文字(例如,six_shot在玩遊戲「Eragon」(此處展示為Game4)且MrSnuggles99離線等)。藉由在一選單項(圖中未展示)上按一下,該等夥伴視訊剪輯自展示經記錄或經上載之視訊切換至當前在主機代管服務210上玩遊戲之夥伴彼時在其遊戲中在幹什麼的實況視訊。因此,其變成夥伴之Game Finder分組。若選擇一夥伴之遊戲且使用者在其上按一下,則該遊戲將放大至全螢幕,且使用者將能夠全螢幕實況觀看所玩的遊戲。
此外,觀看夥伴之遊戲的使用者並不擁有該遊戲之複本或本端計算/遊戲控制台資源來玩該遊戲。遊戲觀看實際上為瞬時的。
如上文先前所描述,當一使用者在主機代管服務210上玩一遊戲時,該使用者能夠「倒轉」該遊戲且尋找一其想要儲存之視訊片段且接著將該視訊片段儲存至其「使用者頁面」。將此等動作稱為「炫耀剪輯TM」。該等視訊片段2003全部為由KILLHAZARD儲存的來自其已玩過之先前遊戲之炫耀剪輯2003。數字2004展示一炫耀剪輯已被觀看之次數,且當觀看該炫耀剪輯時,使用者具有一評價其之機會,且橙色(此處展示為黑色輪廓)匙孔形狀之圖符2005之數目指示等級之高低。該等炫耀剪輯2003在一使用者觀看「使用者頁面」時與頁面上之其餘視訊一起持續循環。若使用者選擇該等炫耀剪輯2003中之一者且在其上按一下,則該炫耀剪輯放大以呈現炫耀剪輯2003及允許對該剪輯進行播放、暫停、倒轉、向前快轉、步進操作等之DVR控制。
藉由應用程式/遊戲伺服器1521-1525載入當使用者記錄炫耀剪輯時儲存於RAID陣列1511-1512上之經壓縮之視訊片段及解壓縮該炫耀剪輯且播放其來實施炫耀剪輯2003播放。
炫耀剪輯2003亦可為來自支援此能力之遊戲的「3D DVR」視訊片段(亦即,一遊戲狀態序列,其來自可重播且允許使用者改變相機觀看點之遊戲)。在此情況下,除使用者在記錄遊戲片段時所作的特定「漫遊」之經壓縮之視訊記錄之外,亦儲存遊戲狀態資訊。當觀看「使用者頁面」,且所有縮圖及視訊實況持續循環時,一3D DVR炫耀剪輯2003將持續循環在使用者記錄遊戲片段之「漫遊」時記錄為經壓縮之視訊之炫耀剪輯2003。但是,當一使用者選擇一3D DVR炫耀剪輯2003且在其上按一下時,除允許播放經壓縮之視訊炫耀剪輯之DVR控制之外,該使用者亦將能夠在一給予其遊戲片段之3D DVR能力之按鈕上按一下。使用者將能夠在遊戲片段期間獨立地控制一相機「漫遊」,且若使用者希望(且擁有使用者頁面之使用者允許),則其將能夠記錄呈經壓縮之視訊形式之替代炫耀剪輯「漫遊」,其接著可為使用者頁面之其他觀眾所用(立即地,或在使用者頁面之擁有者有回顧該炫耀剪輯之機會之後)。
藉由啟動將要在另一應用程式/遊戲伺服器1521-1525上重播所記錄之遊戲狀態資訊之遊戲來實現此3D DVR炫耀剪輯2003能力。由於遊戲幾乎可瞬間啟動(如先前所描述),故啟動遊戲並無困難,其中其播放限於由炫耀剪輯片段記錄之遊戲狀態,且因而允許使用者在將經壓縮之視訊記錄至延遲緩衝器1515時用一相機進行「漫遊」。一旦使用者已完成「漫遊」,則撤銷啟動該遊戲。
自使用者之觀點看,利用一3D DVR炫耀剪輯2003啟動一「漫遊」並不比控制一線性炫耀剪輯2003之DVR控制費事。DVR控制可能不知道該遊戲或甚至如何玩該遊戲。DVR控制僅為在由另一者記錄遊戲片段期間盯著3D世界之虛擬相機操作者。
使用者將亦能夠將其自身音訊置於炫耀剪輯之上,該音訊係自麥克風記錄或上載。以此方式,炫耀剪輯可用以使用來自遊戲之角色及動作產生定製動畫。此動畫技術常常稱為「機械動畫(machinima)」。
隨著使用者在遊戲中進展,該等使用者將達成不同技能等級。所玩的遊戲將向服務控制系統401報告該等完成,且此等技能等級將展示在「使用者頁面」上。
互動式動畫廣告
線上廣告已自文字轉換至靜態影像、視訊且現轉換至互動式片段,其通常使用如Adobe Flash之動畫精簡型用戶端實施。使用動畫精簡型用戶端之原因在於,使用者通常不耐煩為了為其修正產品或服務以適用之特殊權限而被延遲。此外,精簡型用戶端在極低效能PC上執行,且因此,廣告主可對互動式廣告將正常工作具有高度信心。不幸的是,諸如Adobe Flash之動畫精簡型用戶端在互動程度及體驗持續時間上受限制(以縮短下載時間且可在幾乎所有使用者器件(包括低效能PC及不具GPU或高效能CPU之Mac)上操作)。
圖21說明一互動式廣告,其中使用者在一汽車在一陳列室中旋轉時選擇該汽車之外部顏色及內部顏色,同時即時光線追蹤展示該汽車看上去如何。接著使用者選擇一原始模型(avatar)來駕駛該汽車,且接著使用者可在跑道上或在諸如Monaco之外國場所中駕駛該汽車。使用者可選擇一較大引擎或較佳輪胎,且接著可查看變化之組態對汽車之加速及抓地能力之影響。
當然,該廣告實際上為一完善的3D視訊遊戲。但是,對於可在一PC或一遊戲控制台上播放之此廣告,其可能需要一100 MB下載,且在PC的情況下,其可能需要安裝特殊驅動程式,且在PC缺少足夠CPU或GPU計算能力的情況下完全不能執行。因此,此等廣告在先前技術組態中不能實行。
在主機代管服務210中,此等廣告幾乎立即開始且完美地執行,而不管使用者用戶端415之能力如何。因此,該等廣告比精簡型用戶端互動式廣告更快地開始、體驗更豐富且非常可靠。
即時動畫期間串流幾何形狀
RAID陣列1511-1512及入埠路由1502可提供資料速率,該等資料速率很快且具有很低延時以可能設計相依於RAID陣列1511-1512及入埠路由1502以在即時動畫(例如,一具有一複雜資料庫之漫遊)期間可靠地傳遞玩遊戲中或一應用程式中之運作中幾何形狀的視訊遊戲及應用程式。
關於先前技術系統(諸如,圖1中所示之視訊遊戲系統),可用之大容量儲存器件(特別是在特定家庭器件中)過於緩慢而不能在玩遊戲期間串流幾何形狀(所需幾何形狀在某種程度上可預測之情況除外)。舉例而言,在存在一規定道路之一駕駛遊戲中,進入視野中的建築物之幾何形狀可合理地預測,且大容量儲存器件可預先搜尋即將到來之幾何形狀所處之位置。
但是,在一具有不可預測之變化的複雜場景中(例如,在一周圍具有複雜角色之戰場場景中),若PC或視訊遊戲系統上之RAM完全填滿了當前看得見的物件之幾何形狀,且接著使用者使其角色突然轉身以觀看其角色身後的情況,若幾何形狀已預先載入至RAM中,則在可顯示該幾何形狀之前可能存在一延遲。
在主機代管服務210中,RAID陣列1511-1512可串流超過十億位元乙太網路速度之資料,且對於一SAN網路,可能經由10十億位元乙太網路或經由其他網路技術達成10十億位元/秒之速度。10十億位元/秒將在小於一秒內載入十億位元組之資料。在一60 fps圖框時間(16.67毫秒)中,可載入大約170百萬位元(21 MB)之資料。旋轉媒體(當然,即使在一RAID組態中)將仍引起大於一圖框時間之延時,但基於快閃記憶體之RAID儲存器最終將與旋轉媒體RAID陣列一樣大且將不引起此高延時。在一實施例中,使用大容量RAM完全寫入快取記憶體提供極低延時存取。
因此,藉由足夠高的網路速度及足夠低的延時的大容量儲存器,幾何形狀可像CPU及/或GPU可處理3D資料一樣快地串流至應用程式/遊戲伺服器1521-1525中。因此,在先前給出之實例(其中使用者使其角色突然轉身且向後看)中,其後所有角色之幾何形狀可在該角色完成旋轉之前載入,且因此,對使用者而言,看上去好像其處在一與實景一樣真實的相片真實感化世界中。
如先前所論述,相片真實感化之電腦動畫中之最後邊界中之一者為人臉,且由於人眼對瑕疵之敏感性,來自一相片真實感化之面部之最微小錯誤可導致觀眾之負面反應。圖22展示如何使用ContourTM Reality Capture技術擷取之一實況表演(該技術為以下同在申請中之申請案之標的:2004年9月15日申請之第10/942,609號(「Apparatus and method for capturing the motion of a performer」);2004年9月15日申請之第10/942,413號(「Apparatus and method for capturing the expression of a performer」);2005年2月25日申請之第11/066,954號(「Apparatus and method for improving marker identification within a motion capture system」);2005年3月10日申請之第11/077,628號(「Apparatus and method for performing motion capture using shutter synchronization」);2005年10月20日申請之第11/255,854號(「Apparatus and method for performing motion capture using a random pattern on capture surfaces」);2006年6月7日申請之第11/449,131號(「System and method for performing motion capture using phosphor application techniques」);2006年6月7日申請之第11/449,043號(「System and method for performing motion capture bystrobing a fluorescent lamp」);2006年6月7日申請之第11/449,127號(「System and method for three dimensional capture of stop-motion animated characters」),該等申請案中之每一者讓與給本CIP申請案之受讓人)產生一非常平滑之擷取表面,接著產生一高多邊形計數之追蹤表面(亦即,多邊形運動精確地跟隨面部之運動)。最後,當將實況表演之視訊映射在追蹤表面上以產生一紋理表面時,產生一相片真實感化結果。
雖然當前GPU技術能夠即時地再現追蹤表面及紋理中之許多多邊形且照亮該表面,但若該等多邊形及紋理在每一圖框時間變化(其將產生最相片真實感化結果),則該技術將迅速耗盡一現代PC或遊戲控制台之所有可用RAM。
使用上文所描述之該等串流幾何形狀技術,連續地將幾何形狀饋送至應用程式/遊戲伺服器1521-1525中,使得該等伺服器可連續地將相片真實感化面部製成動畫,從而允許形成具有幾乎不可與實景面部區別之面部的視訊遊戲變得切實可行。
線性內容與互動特徵之整合
動畫、電視節目及音訊材料(統稱為「線性內容」)可以許多形式由家庭及辦公室使用者廣泛利用。線性內容可在如CD、DVD及Blu-ray媒體之實體媒體上獲取。線性內容亦可由DVR自衛星及有線電視廣播記錄。且,線性內容可經由衛星及有線電視作為計次付費(PPV)內容而獲得或可在有線電視上作為隨選視訊(VOD)而獲得。
越來越多的線性內容可經由網際網路作為下載內容及串流內容獲得。現今,真的不存在一個能夠體驗與線性媒體相關聯之所有特徵的地方。舉例而言,DVD及其他視訊光學媒體通常具有在別處不可用的互動特徵,如導演解說、「製作」特輯等。線上音樂網站具有通常在CD上不可獲得之封面圖片及歌曲資訊,但並非所有CD均可以線上方式獲得。且,與電視節目相關聯之Web網站常常具有額外特徵、網誌(blog)且有時具有來自演員或創作人員之評論。
此外,對於許多動畫或體育比賽,常常存在常常與線性媒體一起發行(在動畫之情況下)或(在體育比賽之情況下)可與真實世界事件(例如,球員之交易)緊密聯繫的視訊遊戲。
主機代管服務210非常適合將線性內容與完全不同形式之相關內容連結在一起傳遞。毫無疑問,傳遞動畫並不比傳遞高度互動視訊遊戲更具挑戰性,且主機代管服務210能夠將線性內容傳遞至許多器件(家中或辦公室中)或傳遞至行動器件。圖23展示主機代管服務210之一例示性使用者介面頁面,其展示對線性內容之選擇。
但是,不同於大部分線性內容傳遞系統,主機代管服務210亦能夠傳遞相關互動分量(例如,DVD上之選單及特徵,HD-DVD上之互動覆疊圖,及Web網站上之Adobe Flash動畫(如下文所解釋))。因此,用戶端器件415限制不再引入關於哪些特徵可用之限制。
此外,代管系統210能夠動態且即時地將線性內容與視訊遊戲內容連結在一起。舉例而言,若一使用者在觀看電影Harry Potter中之Quidditch比賽,且決定其願意嘗試玩Quidditch,則該使用者可僅在一按鈕上按一下且該電影會暫停且立即將該使用者轉接至Harry Potter視訊遊戲之Quidditch片段。在參加完Quidditch比賽之後,另外在一按鈕上按一下,且該電影將立即重新開始。
對於相片真實感化圖形及製作技術(其中以攝影方式擷取之視訊難以與實景角色區別),如本文中所描述,當一使用者自一實景電影中之一Quidditch遊戲轉換至的一主機代管服務上之一視訊遊戲中之一Quidditch遊戲時,該兩個場景實質上難以區別。此為線性內容及互動(例如,視訊遊戲)內容之導演提供全新的創作選項,因為兩個世界之間的界線變得難以區別。
利用圖14中所示之主機代管服務架構,可為觀眾提供對3D電影中之虛擬相機之控制。舉例而言,在一在火車廂內發生之場景中,可能允許觀眾在故事進展時控制虛擬相機且環顧車廂。此假設車廂中之所有3D物件(「資產」)可用,而且具有能夠即時地再現該等場景以及原始電影之足夠程度的計算能力。
且,即使對於非電腦產生之娛樂,亦存在可提供之極令人興奮的互動特徵。舉例而言,2005年之動畫「Pride and Prejudice」有許多在華麗的老式英國莊園中之場景。對於特定莊園場景,使用者可暫停視訊且接著控制相機以遊覽該莊園,或可能遊覽周圍區域。為實施此過程,可在穿過莊園時攜帶具有一魚眼透鏡之相機以記住其位置,很像實施先前技術之Apple,Inc. QuickTime VR。接著可變換各種圖框以使影像不失真,且接著將該等圖框與電影一起儲存於RAID陣列1511-1512上,且在使用者選擇進行一虛擬遊覽時播放。
關於體育比賽,可經由主機代管服務210串流諸如籃球比賽之實況體育比賽以供使用者觀看,就像使用者觀看常規電視一樣。在使用者觀看一特定比賽之後,該比賽之一視訊遊戲(最終使籃球隊球員看上去與真實球員一樣相片真實感化)可趕上球員在相同位置開始,且使用者(可能每一使用者控制一球員)可重新進行比賽以查看其是否可比球員做得更好。
本文中所描述之主機代管服務210極其適合於支援此未來世界,因為其能夠利用計算能力及實際上不能安裝在家中或大部分辦公室環境中之大容量儲存資源,而且主機代管服務之計算資源始終最新且可獲得最新計算硬體,而在一家庭環境中,家庭將始終具有較舊世代之PC及視訊遊戲。且,在主機代管服務210中,對使用者隱藏所有此計算複雜性,因此即使使用者可能在使用非常複雜之系統,但自使用者之觀點看,就好像改變電視頻道一樣簡單。此外,該等使用者將能夠獲得所有計算能力及計算能力自任何用戶端415帶來之體驗。
多人遊戲
就一遊戲為一多人遊戲而言,該遊戲將能夠經由入埠路由1502網路傳達至應用程式/遊戲伺服器1521-1525且利用至網際網路之一網路橋接器(圖中未展示)與不在主機代管服務210中執行之伺服器或遊戲機通信。當在一般網路上藉由電腦玩多人遊戲時,應用程式/遊戲伺服器1521-1525將具有極快速地存取網際網路之益處(與在家庭中之一伺服器上執行遊戲的情況相比),但該等伺服器將受限於在較慢連接上玩該遊戲之其他電腦的能力,且亦可能受如下事實限制:網際網路上之遊戲伺服器經設計以適應最少共同點,其可為相對較慢消費型網際網路連接上之家庭電腦。
但是,當完全在一主機代管服務210伺服器中心內玩一多人遊戲時,可達成許多不同。代管一使用者之一遊戲的每一應用程式/遊戲伺服器1521-1525將與其他應用程式/遊戲伺服器1521-1525以及代管該多人遊戲之中央控制之任何伺服器互連,其具有極高速度、極低延時連接性及大量且極快速之儲存陣列。舉例而言,若將十億位元乙太網路用於入埠路由1502網路,則應用程式/遊戲伺服器1521-1525將以十億位元/秒之速度彼此通信且傳達至代管該多人遊戲之中央控制的任何伺服器,可能有僅1毫秒或更小延時。此外,RAID陣列1511-1512將能夠非常迅速地作出回應且接著以十億位元/秒之速度傳送資料。作為一實例,若一使用者根據外觀及裝備定製一角色,以使得該角色具有只有該角色才有的大量幾何形狀及行為,由於先前技術系統限於在家中在一PC或遊戲控制台上執行之遊戲用戶端,若該角色將進入另一使用者之視界內,則該使用者將必須等待一長且慢的下載完成,使得將所有幾何形狀及行為資料載入其電腦中。在主機代管服務210中,相同下載可在十億位元乙太網路上自RAID陣列1511-1512以十億位元/秒之速度伺服。即使家庭使用者具有一8 Mbps網際網路連接(其對現今標準而言極快),十億位元乙太網路亦為該連接的100倍。因此,在一快速網際網路連接上可能耗時一分鐘的動作在十億位元乙太網路上耗時不超過一秒鐘。
頂級玩家分組及競賽
主機代管服務210非常適合於競賽。因為無遊戲在一本端用戶端中執行,所以使用者無機會作弊(例如,使用者可能藉由修改在其本端PC上執行的遊戲之複本以給予其一不當益處而在一先前技術競賽中作弊)。此外,由於輸出路由1540多播UDP串流之能力,主機代管服務210能夠同時向幾千或更多的觀眾廣播重要競賽。
事實上,當存在如此風行以使得成千上萬的使用者接收相同串流之特定視訊串流(例如,展示一重要競賽之視圖)時,可更有效率地將視訊串流發送至一諸如Akamai或Limelight之內容傳遞網路(CDN)以便大量散佈至許多用戶端器件415。
當使用一CDN展示頂級玩家分組之Game Finder頁面時,可獲得類似的效率等級。
對於重要競賽,可使用一現場著名播音員在特定比賽期間提供解說。雖然許多使用者將觀看一重要競賽,但相對較少的使用者將參加該競賽。可將來自該著名播音員之音訊投送至代管參加該競賽之使用者且代管該競賽中之遊戲的任何觀眾模式複本之應用程式/遊戲伺服器1521-1525,且可將該音訊加錄在遊戲音訊之上。一著名播音員之視訊亦可覆疊於遊戲上,可能僅覆疊於旁觀者視圖上。
網頁載入之加速
全球資訊網及其主要傳輸協定超文字傳送協定(HTTP)係在僅企業具有高速網際網路連接之時代構想並定義,且在線上之消費者使用撥號數據機或ISDN。當時,快速連接之「黃金標準」為T1線路,其對稱地提供1.5 Mbps之資料速率(亦即,在兩個方向上具有相等資料速率)。
現今,情況完全不同。許多發達國家中經由DSL或電纜數據機連接之平均家庭連接速度具有一遠高於T1線路之下傳資料速率。事實上,在世界上的一些部分中,光纖到路邊(fiber-to-the-curb)將高達50至100 Mbps之資料速率帶給家庭。
不幸的是,未建構(亦未實施)HTTP以有效地利用此等顯著速度改良。網站為一遠端伺服器上之檔案之一集合。在極簡單條件下,HTTP請求第一檔案,等待下載該檔案,且接著請求第二檔案,等待下載該檔案等。事實上,HTTP允許一次請求一個以上「開放連接」(亦即,一個以上檔案),但由於商定標準(及防止網站伺服器超載之需要),僅准許很少開放連接。此外,由於網頁建構之方式,瀏覽器常常不知道可立即下載的多個同時頁面(亦即,僅在剖析一頁面之後,才出現必須下載一新檔案(如一影像))。因此,網站上之檔案實質上係逐個載入。且,由於HTTP所使用之請求回應協定,存在(存取美國之典型網站伺服器)一與所載入之每一檔案相關聯之大致100毫秒延時。
對於相對較低速度之連接,此並不引入許多問題,因為該等檔案本身之下載時間占該等網頁之等待時間之大部分。但是,隨著連接速度增長,尤其對複雜網頁而言,問題開始出現。
在圖24中所示之實例中,展示一典型商業網站(此特定網站來自一主要運動鞋品牌)。該網站上有54個檔案。該等檔案包括HTML、CSS、JPEG、PHP、JavaScript及Flash檔案,且包括視訊內容。在該頁面實況播送(亦即,使用者可在該頁面上按一下且開始使用該頁面)之前,必須載入總共1.5 MB。大量檔案之存取有許多理由。首先,該頁面為一複雜且完善之網頁,且其次,該頁面為一基於關於存取該頁面之使用者之資訊(例如,使用者來自哪個國家、使用何種語言、使用者之前是否已購買等)而動態地組合之網頁,且視所有此等因素而下載不同檔案。此外,該頁面為一非常典型之商業網頁。
圖24展示隨著連接速度增長,在網頁實況播送之前經過的時間之量。對於1.5 Mbps之連接速度2401,使用一具有一習知網頁瀏覽器之習知網站伺服器,直至網頁實況播送為止,耗時13.5秒。對於12 Mbps之連接速度2402,載入時間縮短至6.5秒,或約快一倍。但是,對於96 Mbps之連接速度2403,載入時間僅縮短至約5.5秒。其原因在於在如此高的下載速度下,下載該等檔案本身之時間最小,但每個檔案之延時(大致每一檔案100毫秒)仍存在,從而導致54個檔案*100毫秒=5.4秒之延時。因此,不管至家庭之連接速度有多快,在網頁實況播送之前,此網站將始終耗時至少5.4秒。另一因素為伺服器側排佇列;每一個HTTP請求加在佇列之後,因此,在一忙碌伺服器上,此將具有一顯著影響,因為對於將自網站伺服器取得之每一個小項,HTTP請求必須等待其時機。
一種解決此等問題之方法為丟棄或重定義HTTP。或者,可能使網站擁有者更好地將其檔案合併成一單一檔案(例如,以Adobe Flash格式)。但是,作為一實際問題,此公司以及許多其他公司已大量投資於其網站架構。此外,雖然一些家庭具有12-100 Mbps之連接,但大部分家庭仍具有較慢速度,且HTTP在緩慢速度下確實能良好工作。
一種替代方法為在應用程式/遊戲伺服器1521-1525上代管網頁瀏覽器,且在RAID陣列1511-1512上(或可能的話,在代管該等網頁瀏覽器之應用程式/遊戲伺服器1521-1525上之RAM中或本端儲存器上)代管該等網站伺服器之該等檔案。由於經由入埠路由1502(或至本端儲存器)之極快速互連,並非具有使用HTTP的情況下每一檔案之100毫秒延時,而將存在使用HTTP的情況下每一檔案可忽視之延時。接著,替代使用者在其家中經由HTTP存取網頁,使用者可經由用戶端415存取網頁。接著,即使利用1.5 Mbps之連接(因為此網頁之視訊不需要很大頻寬),網頁將在小於1秒內(根據線2400)實況播送。實質上,在執行於應用程式/遊戲伺服器1521-1525上之網頁瀏覽器顯示一實況播送頁面之前不存在延時,且在用戶端415顯示來自網頁瀏覽器之視訊輸出之前不存在可偵測延時。在使用者在網頁周圍滑動滑鼠及/或在網頁上打字時,使用者之輸入資訊將被發送至執行於應用程式/遊戲伺服器1521-1525上之網頁瀏覽器,且網頁瀏覽器將相應地作出回應。
此方法之一缺點在於,若壓縮器持續傳輸視訊資料,則即使網頁變成靜態的,仍使用頻寬。此缺點可藉由將壓縮器組態為在網頁變化時(且若網頁變化)僅傳輸資料,且接著僅傳輸資料至變化的頁面之部分來補救。雖然存在一些具有持續變化之閃爍橫幅等的網頁,但此等網頁傾向於令人討厭,且除非有理由移動某物(例如,視訊剪輯),否則網頁通常為靜態的。對於此等網頁,情況可能如下:使用主機代管服務210傳輸之資料比使用一習知網站伺服器傳輸的少,因為僅實際顯示之影像將被傳輸,不傳輸精簡型用戶端可執行碼,且不傳輸可能從不觀看之大型物件,諸如滾動翻轉之影像。
因此,使用主機代管服務210代管舊版網頁,網頁載入時間可縮短至開啟一網頁就像換電視頻道一樣的情況:網頁立即有效地實況播送。
促進遊戲及應用程式之除錯
如先前所提及,具有即時圖形之視訊遊戲及應用程式為非常複雜的應用程式,且通常,當將該等應用程式發行至市場時,該等應用程式含有程式錯誤。雖然軟體開發者能夠自使用者得到關於程式錯誤之反饋,且該等軟體開發者可能具有用以在毀損(crash)之後恢復機器狀態的一些手段,但準確地識別導致一遊戲或即時應用程式毀損或錯誤地執行之原因非常困難。
當一遊戲或應用程式在主機代管服務210中執行時,將該遊戲或應用程式之視訊/音訊輸出持續記錄在延遲緩衝器1515上。此外,一看門狗處理程序在每一應用程式/遊戲伺服器1521-1525上執行,該看門狗處理程序定期向主機代管服務控制系統401報告應用程式/遊戲伺服器1521-1525平穩地執行。若該看門狗處理程序未能報告,則伺服器控制系統401將嘗試與應用程式/遊戲伺服器1521-1525通信,且若成功,則該伺服器控制系統401將收集任何可用的機器狀態。將任何可用資訊連同由延遲緩衝器1515記錄之視訊/音訊一起發送至軟體開發者。
因此,當該遊戲或應用程式軟體開發者自主機代管服務210得到關於毀損之通知時,其開始逐圖框記錄導致毀損的原因。此資訊在跟蹤程式錯誤且修正其時可非常有用。
亦請注意,當應用程式/遊戲伺服器1521-1525毀損時,在最近的可重新啟動點重新啟動該伺服器,且將一為技術性困難抱歉之訊息提供給使用者。
資源共用及成本節省
圖4a及圖4b中所示之系統為終端使用者及遊戲及應用程式開發者提供各種益處。舉例而言,通常,家庭及辦公室用戶端系統(例如,PC或遊戲控制台)僅在一週時間之小百分率中處於使用中。根據由Nielsen Entertain ment發佈的2006年10月5日新聞「Active Gamer Benchmark Study」(http://w w w.prnewswire.com/cg1-bin/stories.pl?ACCT=104&STORY=/www/story/10-05-2006/0004446115&EDATE=),作用中玩家平均每週花14小時玩視訊遊戲控制台且每週花約17小時玩手持式裝置。該報告亦說明:對於所有遊戲活動(包括控制台、手持式及PC遊戲),作用中玩家平均每週花費13小時。考慮玩控制台視訊遊戲之時間的較高數字,每週有24*7=168個小時,此暗示:在一作用中玩家的家中,一視訊遊戲控制台每週僅有17/168=10%的時間處於使用中。或者說,在90%的時間中,視訊遊戲控制台係閒置的。給定視訊遊戲控制台之高成本,及製造商補貼此等器件之事實,此為一昂貴資源之極低效率使用。企業內之PC通常亦僅在一週中的小部分時間中使用,尤其是非可攜式桌上型PC常常需要諸如Autodesk Maya之高端應用程式。雖然一些企業在所有時間且在假期中營業,且在所有時間且在假期中使用一些PC(例如,帶回家以在晚上做工作的可攜式電腦),但大部分企業活動傾向於集中在星期一至星期五的9AM至5PM(在一給定企業時區中)、少數假期及休息時間(諸如,午餐),且由於大部分PC使用在使用者積極地使用PC時發生,因而斷定,桌上型PC利用傾向於在此等營業時間之後。若假設一週五天自9AM至5PM持續使用PC,則此將暗示在一週的40/168=24%的時間中使用PC。高效能桌上型PC為非常昂貴的企業投資,且此反映一極低的利用等級。用桌上型電腦教學之學校可能在一週的更少時間中使用電腦,且雖然其視教學時間而改變,但大部分教學在週一至週五的白天時間期間發生。因此,一般而言,僅在一週中的一小部分時間中利用PC及視訊遊戲控制台。
值得注意,因為許多人在非假日的星期一至星期五之白天時間中在企業或學校工作,所以此等人在此等時間期間通常不玩視訊遊戲,且因此,該等人通常在其他時間(諸如晚上、週末或假期)玩視訊遊戲。
給定圖4a中所示之主機代管服務之組態,上兩個段落中所描述之使用模式引起資源之極有效利用。顯然,對在一給定時間可由主機代管服務210伺服的使用者之數目無限制,特別在使用者需要對如完善的3D視訊遊戲之複雜應用程式之即時回應的情況下。但是,不同於家庭中之視訊遊戲或企業所使用之PC(其通常在大部分時間中閒置),伺服器402可由不同使用者在不同時間再用。舉例而言,一具有高效能雙CPU及雙GPU以及大量RAM之高效能伺服器402可由企業及學校在非假期的9AM至5PM使用,但其由玩一完善視訊遊戲之玩家在晚上、週末及假期中使用。類似地,低效能應用程式可由企業及學校在營業時間在具有Celeron CPU、無GPU(或具有一極低端GPU)及有限RAM之低效能伺服器402上使用,且一低效能遊戲可在非營業時間使用低效能伺服器402。
此外,對於本文中所描述之主機代管服務配置,資源將在成千上萬(若非上百萬)的使用者之間有效地共用。一般而言,線上服務僅具有在一給定時間使用該服務的總使用者庫之一小百分率。若吾人考慮先前列出的Nielsen視訊遊戲使用率統計資料,則容易理解其原因。若作用中玩家一週僅玩控制台遊戲17個小時,且若吾人假設遊戲之峰值使用時間在晚上(5-12AM,7*5天=35個小時/週)及週末(8AM-12AM,16*2=32個小時/週)之典型非工作、非營業時間期間,則對於17個小時之玩遊戲時間,一週有35+32=65個小時的峰值時間。由於許多原因,系統上之準確峰值使用者負載難以估計:一些使用者將在非高峰期玩遊戲,可能存在使用者叢集峰值的特定白天時間,高峰期可受所玩的遊戲之類型影響(例如,很可能在晚上的早些時間玩兒童遊戲)等。但是,若一玩家之平均遊戲小時之數目遠小於一玩家可能玩一遊戲的日子之小時之數目,則僅主機代管服務210之許多使用者之小部分將在一給定時間使用該服務。為了此分析,吾人將假設峰值負載為12.5%。因此,在一給定時間僅使用12.5%的計算、壓縮及頻寬資源,從而使得僅12.5%的硬體成本支援一給定使用者玩一給定效能等級之遊戲,此歸因於資源之再使用。
此外,若一些遊戲及應用程式比其他遊戲及應用程式需要更多的計算能力,則可基於使用者所玩的遊戲或其所執行之應用程式來動態地分配資源。因此,一選擇一低效能遊戲或應用程式之使用者將被分配一低效能(不太昂貴)伺服器402,且一選擇一高效能遊戲或應用程式之使用者將被分配一高效能(較昂貴)伺服器402。實際上,一給定遊戲或應用程式可具有遊戲或應用程式之低效能部分及高效能部分,且使用者可在遊戲或應用程式之該等部分之間自一個伺服器402切換至另一伺服器402以保持使用者在滿足遊戲或應用程式之需要的最低成本伺服器402上執行。請注意,RAID陣列405(其比一單一磁碟快得多)甚至可由低效能伺服器402利用,此具有較快磁碟傳送速率之益處。因此,在所有所玩之遊戲或所使用之應用程式上的每一伺服器402之平均成本遠小於玩最高效能遊戲或應用程式之最貴伺服器402之成本,甚至低效能伺服器402將自RAID陣列405得到磁碟效能益處。
此外,主機代管服務210中之一伺服器402可能僅為一除一網路介面外不具有一磁碟或周邊介面之PC主機板,且遲早可向下整合至僅具有至SAN 403之一快速網路介面之一單一晶片。此外,相較於存在之磁碟,RAID陣列405很可能在多得多的使用者之間共用,因此每一作用中使用者之磁碟成本將遠小於一磁碟機。所有此設備很可能在一環境受控制之伺服器室環境中駐留在一架子中。若伺服器402故障,則可容易地在主機代管服務210維修或替換該伺服器。與之相比,家庭或辦公室中之一PC或遊戲控制台必須為一強健、獨立的電氣設備,其必須能夠經受得住重擊或下落之合理磨損及破損、需要一外殼、具有至少一磁碟機、必須經受得住不利的環境條件(例如,被塞入至一具有其他齒輪之過熱AV箱中)、需要一服務保證、必須封裝且運輸,且由可獲得零售利潤之零售商銷售。此外,即使可在大部分時間中玩低效能遊戲或應用程式,但一PC或遊戲控制台必須經組態以滿足將在未來某一時間使用的預期之計算最密集之遊戲或應用程式之峰值效能。且,若PC或控制台故障,則維修PC或控制台為一昂貴且費時的過程(不利地影響製造商、使用者及軟體開發者)。
因此,若圖4a中所示之系統為使用者提供一可比得上一本端計算資源之體驗之體驗,則對一在家中、辦公室或學校中體驗一給定等級之計算能力的使用者而言,經由圖4a中所示之架構提供該計算能力要便宜得多。
消除升級需求
此外,使用者不必再擔心為升級PC及/或控制台以玩新遊戲或處置較高效能新應用程式。不考慮遊戲或應用程式所需的伺服器402之類型如何,主機代管服務210上之任何遊戲或應用程式可由使用者使用,且所有遊戲及應用程式幾乎立即執行(例如,迅速自RAID陣列405或伺服器402上之本端儲存器載入)且適當具有最新更新及程式錯誤修正(亦即,軟體開發者將能夠為執行一給定遊戲或應用程式之伺服器402選擇一理想伺服器組態,且接著以最佳驅動程式組態伺服器402,且隨時間流逝,該等開發者將能夠將更新、程式錯誤修正等同時提供給主機代管服務210中的遊戲或應用程式之所有複本)。實際上,在使用者開始使用主機代管服務210之後,使用者可能發現遊戲或應用程式繼續提供一較佳體驗(例如,經由更新及/或程式錯誤修正),且情況可能如下:一使用者在一年後發現一新遊戲或應用程式可在利用甚至一年之前不存在的計算技術(例如,一較高效能GPU)之服務210上使用,因此,使用者已不可能在一年之前購買可在一年之後玩遊戲或執行應用程式之該技術。由於使用者看不見玩遊戲或執行應用程式之計算資源(亦即,自使用者之觀點看,使用者僅選擇一幾乎立即開始執行的遊戲或應用程式,非常像使用者已改變電視頻道),故使用者之硬體可能已「升級」而使用者還未意識到該升級。
消除備份需求
企業、學校及家庭使用者之另一主要問題為備份。儲存於本端PC或視訊遊戲控制台中之資訊(例如,在控制台之情況下,使用者之遊戲成績及級別)可在磁碟故障的情況下或作出疏忽擦除的情況下丟失。存在為PC提供手動或自動備份之許多可用應用程式,且可將遊戲控制台狀態上載至一線上伺服器以進行備份,但通常將本端備份複製到另一本端磁碟(或其他非揮發性儲存器件),其必須儲存於其他安全位置且被組織,且線上服務之備份常常由於經由典型低成本網際網路連接可獲得的緩慢上傳速度而受到限制。對於圖4a之主機代管服務210,儲存於RAID陣列405中之資料可使用熟習此項技術者熟知的先前技術RAID組態技術來組態,以使得若一磁碟故障,則無資料丟失,且容納故障磁碟之伺服器中心處之一技術人員將得到通知,且該技術人員將替換該磁碟,該磁碟接著會自動更新,使得該RAID陣列能容忍再一次故障。此外,由於所有磁碟機彼此靠近且其之間經由SAN 403具有快速區域網路,故在一伺服器中心中配置所有磁碟系統定期在輔助儲存器上備份並不難,該輔助儲存器可儲存於該伺服器中心或重定位在其之外。自主機代管服務210之使用者之觀點看,其資料一直很安全,且其從不需要考慮備份。
存取示範
使用者常常想在購買遊戲或應用程式之前試用遊戲或應用程式。如先前所描述,存在藉以做遊戲及應用程式之示範的先前技術手段(「示範」之動詞形式意謂著試用一展示版本,其亦被稱為「示範」,但作為名詞),但其中之每一者遭受限制及/或不便。使用主機代管服務210,使用者可容易且便利地試用示範。實際上,使用者要做的就是經由一使用者介面(諸如,下文所描述之使用者介面)選擇示範及試用該示範。該示範將幾乎立即載入至適合該示範的伺服器402上,且該示範將像任何其他遊戲或應用程式一樣執行。不管該示範是需要一極高效能伺服器402或是需要一低效能伺服器402,且不管使用者使用的家庭或辦公室用戶端415之類型如何,自使用者之觀點看,該示範將可操作。遊戲或應用程式示範之軟體發行者將能夠準確地控制准許使用者試用哪一示範及試用多久,當然,該示範可包括為使用者提供一可存取所示範之遊戲或應用程式之完整版本的機會之使用者介面元件。
由於示範可能以低於成本的價格提供或免費提供,故一些使用者可能試圖反覆使用示範(特別是重複玩可能有趣的遊戲示範)。主機代管服務210可使用各種技術限制一給定使用者之示範使用。最直接方法為每一使用者建立一使用者ID且限制允許一給定使用者ID玩一示範之次數。然而,一使用者可設定多個使用者ID,尤其在其空閒的情況下。一種用於解決此問題之技術為限制允許一給定用戶端415玩一示範之次數。若該用戶端為一獨立器件,則該器件應具有一序號,且主機代管服務210可限制一具有該序號之用戶端可存取一示範之次數。若用戶端415係作為軟體在一PC或其他器件上執行,則一序號可由主機代管服務210指派並儲存於PC上且用以限制示範使用,但若PC可由使用者再程式化且該序號可擦除或改變,則主機代管服務210之另一選項為記錄PC網路配接器媒體存取控制(MAC)位址(及/或其他機器特定識別符,諸如硬碟機序號等)且將示範使用侷限於此。然而,若網路配接器之MAC位址可改變,則此方法並非十分安全的方法。另一方法為限制一給定IP位址可玩一示範之次數。雖然IP位址可由電纜數據機及DSL提供者週期性地重新指派,但此在實務上並不常常發生,且若可確定(例如,藉由聯絡ISP)IP在住宅DSL或電纜數據機存取之IP位址之一區塊中,則通常可為一給定家庭安排少量示範使用。此外,一基於共用相同IP位址的NAT路由器之家庭中可存在多個器件,但通常在一住宅環境中,存在有限數目個此等器件。若IP位址在一伺服企業之區塊中,則可為一企業安排大量示範。但是,最後,所有該等先前所提及之方法之一組合為限制PC上之示範之數目的最佳方法。雖然可能不存在可限制一確定且技術熟練之使用者重複玩示範之次數的十分安全之方法,但形成大量阻礙可形成一足夠障礙,以使得對大多數PC使用者而言濫用示範系統並不值得,且實情為,使用者將在意欲使用示範時使用該等示範:試用新遊戲及應用程式。
對學校、企業及其他機構之益處
利用圖4a中所示之系統的企業、學校及其他機構之顯著益處尤其增加。企業及學校具有與安裝、維護及升級PC相關聯之巨大花費,特別當PC突然要執行諸如Maya之高效能應用程式時。如先前所說明,通常僅在一週中一小部分時間中利用PC,且當在家庭中時,具有一給定效能能力等級之PC在辦公室或學校環境下的花費比伺服器中心環境下的花費高得多。
在較大企業或學校(例如,大規模大學)之情況下,此等實體之IT部門設定伺服器中心且維護經由LAN級連接遠端存取之電腦係可行的。存在經由一LAN或經由辦公室之間的一私用高頻寬連接來遠端存取電腦的許多解決方法。舉例而言,利用Microsoft之Windows Terminal Server,或經由虛擬網路計算應用程式(如來自RealVNC,Ltd.之VNC),或經由來自Sun Microsystems之精簡型用戶端構件,使用者可遠端存取PC或伺服器,其具有多種品質的圖形回應時間及使用者體驗。此外,此等自我管理伺服器中心通常專用於一單一企業或學校,且因此,該等伺服器中心不能利用使用之重疊,其在完全不同應用程式(例如,娛樂應用程式及企業應用程式)在一週中的不同時間利用相同計算資源時係可能的。因此,許多企業及學校缺少用以獨立地設定一具有至每一者的一LAN速度網路連接之伺服器中心的規模(scale)、資源或專業知識。實際上,大百分率的學校及企業具有與家庭相同的網際網路連接(例如,DSL、電纜數據機)。
然而,此等組織可能仍有規律或週期性地需要極高效能之計算。舉例而言,一小型建築公司可能僅具有少量建築師及在進行設計工作時相對適度的計算需要,但該公司可能週期性地需要極高效能之3D計算(例如,當為一用戶端產生一新建築設計之3D漫遊時)。圖4a中所示之系統非常適合此等組織。該等組織僅需要提供給家庭且通常非常廉價的相同種類之網路連接(例如,DSL、電纜數據機)。該等組織可利用廉價PC作為用戶端415,或完全省去PC且利用僅實施控制信號邏輯413及低延時視訊解壓縮412之廉價專用器件。此等特徵對可能具有PC偷竊或PC中之專用組件損壞問題之學校特別有吸引力。
此配置解決此等組織的許多問題(且此等優點中之多者亦可由進行通用計算之家庭使用者共用)。舉例來說,運營成本(其最終必須以某一形式傳遞回至使用者以具有一可生存企業)可低得多,因為(a)計算資源與在一週期間具有不同峰值使用時間之其他應用程式共用,(b)該等組織可僅在需要時存取高效能計算資源(且發生使用高效能計算資源之花費),(c)該等組織不必提供用於備份或以其他方式維護高效能計算資源之資源。
消除盜版
另外,遊戲、應用程式、互動式電影等可不再像其現在一樣被盜版。因為每一遊戲被儲存於主機代管服務210且在其上執行,所以使用者不具備存取基本程式碼之能力,因此無東西可盜版。即使一使用者能夠複製原始程式碼,該使用者亦不能在一標準遊戲控制台或家庭電腦上執行該程式碼。此打開了世界上的諸如中國之地方之市場,其中標準視訊遊戲無法使用。亦不可能再銷售舊遊戲,因為不存在散佈給使用者的遊戲之複本。
對於遊戲開發者,當將新一代之遊戲控制台或PC引入市場時,存在較少市場間斷,這就是當今的情況。與當前情況(其中一全新一代之控制台或PC技術迫使使用者及開發者升級且遊戲開發者依賴適時地向使用者供應硬體平台)相比(例如,在PlayStation 3之情況下,其引入延遲一年以上,且開發者必須等待直至其可獲得,且購買大量單元),主機代管服務210可在遊戲需求變化時用更高級計算技術逐漸更新。
串流互動視訊
以上描述提供許多應用,其能夠由基於一般網際網路之低延時串流互動視訊(其隱含地包括音訊以及視訊,如本文中所使用)之新穎基本概念實現。已經由網際網路提供串流視訊之先前技術系統僅能夠實現可利用高延時互動實施之應用。舉例而言,對線性視訊之基本播放控制(例如,暫停、倒轉、向前快轉)在高延時下適當工作,且可能在線性視訊饋送中進行選擇。且,如先前所說明,一些視訊遊戲之性質允許在高延時情況下玩該等視訊遊戲。但是,用於串流視訊之先前技術方法的高延時(或低壓縮比率)已嚴重限制串流視訊之潛在應用或將其部署變窄至專門網路環境,且即使在此等環境中,先前技術亦在網路上引入實質負擔。本文中所描述之技術使經由網際網路之可能具有低延時串流互動視訊之許多應用成為可能,特別是經由消費級網際網路連接實現的彼等應用。
實際上,由於與圖4c之用戶端465一樣小的用戶端器件足以提供一增強之使用者體驗,其具有一實際任意量之計算能力、任意量之快速儲存器及強大伺服器之間的極快速網路連接,故其產生一新計算時代。此外,因為頻寬需求未隨系統之計算能力增長而增長(亦即,因為頻寬需求僅相依於顯示解析度、品質及圖框速率),所以當寬頻網際網路連接性普遍存在(例如,經由廣泛低延時無線覆蓋)、可靠且具有足夠高頻寬以滿足所有使用者之顯示器件422之需要時,問題在於複雜型用戶端(諸如,執行Windows、Linux、OSX等之PC或行動電話)或甚至精簡型用戶端(諸如,Adobe Flash或Java)是否是典型消費者及企業應用所必需的。
串流互動視訊之出現導致對關於計算架構之結構之假設的反思。此結構之一實例為圖15中所示之主機代管服務210伺服器中心實施例。延遲緩衝器及/或群組視訊1550之視訊路徑為一反饋迴路,其中應用程式/遊戲伺服器1521-1525之多播串流互動視訊輸出或即時地經由路徑1552或在一可選擇延遲之後經由路徑1551反饋至應用程式/遊戲伺服器1521-1525中。此實現經由先前技術伺服器或本端計算架構做不到或不能實行的許多實際應用(例如,諸如圖16、圖17及圖20中所說明之應用)。但是,作為一更一般架構特徵,反饋迴路1550提供的是串流互動視訊層級之遞回,因為視訊可在應用程式需要其時無限地回送。此實現許多之前從未達成之應用可能性。
另一關鍵架構特徵為視訊串流為單向UDP串流。此有效地實現串流互動視訊之任意程度多播(與之相比,隨著使用者數目增加,諸如TCP/IP串流之雙向串流將由於來回通信而在網路上造成越來越多的訊務壅塞)。多播為伺服器中心內之一重要能力,因為多播允許系統回應網際網路使用者(且實際上,世界人口)對進行一對多或甚至多對多通信的增長需求。此外,本文中所論述之實例(諸如,說明串流互動視訊遞回及多播之使用的圖16)僅為可能性之巨大冰山之一角。
非轉送同級
在一實施例中,主機代管服務210具有至亦提供網際網路服務給使用者之一或多個網際網路服務提供者(ISP)的一或多個同級連接,且以此方式,主機代管服務210可能能夠經由一保留在該ISP之網路中的非轉送路線(non-transit route)與使用者通信。舉例而言,若主機代管服務210 WAN介面441直接連接至Comcast Cable Communications,Inc.之網路,且利用一Comcast電纜數據機為使用者場所211提供寬頻服務,則主機代管服務210與用戶端415之間的一路線可完全建立在Comcast之網路中。此做法之潛在優點包括較低之通信花費(因為可避免兩個或兩個以上ISP網路之間的IP轉送花費)、一可能更可靠之連接(在ISP網路之間存在壅塞或其他轉送中斷的情況下)及較低延時(在ISP網路之間存在壅塞、低效率路線或其他延遲的情況下)。
在此實施例中,當用戶端415最初在一會期開始時聯絡主機代管服務210時,主機代管服務210接收使用者場所211之IP位址。該主機代管服務接著使用可用IP位址表(例如,來自美國網際網路號碼註冊當局(ARIN;American Registry for Internet Number))以查看該IP位址是否為分配給一連接至主機代管服務210之特定ISP(其可路由至使用者場所211而無需IP轉送以經由另一ISP)的IP位址。舉例而言,若該IP位址介於76.21.0.0與76.21.127.255之間,則該IP位址被指派給Comcast Cable Communications,Inc.。在此實例中,若主機代管服務210維持至Comcast,AT&T及Cox ISP之連接,則該主機代管服務選擇Comcast作為最可能提供一最佳路線給特定使用者之ISP。
使用反饋之視訊壓縮
在一實施例中,反饋自用戶端器件提供給主機代管服務以指示成功(或不成功)的影像塊及/或圖框傳遞。接著使用提供自用戶端之反饋資訊調整主機代管服務處之視訊壓縮操作。
舉例而言,圖25a至圖25b說明本發明之一實施例,其中反饋頻道2501建立於用戶端器件205與主機代管服務210之間。反饋頻道2501由戶端器件205用於發送對成功接收之影像塊/圖框之封包化應答及/或對未成功接收之影像塊/圖框之指示。
在一實施例中,在成功接收每一影像塊/圖框之後,用戶端將一應答訊息傳輸至主機代管服務210。在此實施例中,若主機代管服務210在一規定時間段之後未接收到一應答,及/或若主機代管服務210接收到一應答:用戶端器件205已接收到一並非已發送之影像塊/圖框的隨後影像塊/圖框,則主機代管服務210偵測到一封包丟失(packet loss)。另外或其他,用戶端器件205可偵測到該封包丟失且將對該封包丟失之一指示及對受該封包丟失影響的影像塊/圖框之一指示一起傳輸至主機代管服務210。在此實施例中,不需要對成功傳遞之影像塊/圖框之連續應答。
不管如何偵測到一封包丟失,在圖25a至圖25b中所說明之實施例中,在產生一影像之I影像塊之一初始集合(圖25a中未展示)之後,編碼器隨後僅產生P影像塊,直至偵測到一封包丟失為止。請注意,在圖25a中,將每一圖框(諸如2510)說明為4個豎直影像塊。可以一不同組態(諸如,2×2、2×4、4×4等)使該圖框影像塊化,或者可以整體無影像塊之方式編碼該圖框(亦即,編碼為一大影像塊)。提供圖框影像塊組態之前述實例以用於說明本發明之此實施例。本發明之基本原理並不限於任何特定圖框影像塊組態。
由於上文所陳述之所有原因(亦即,P影像塊通常小於I影像塊),僅傳輸P影像塊降低頻道之頻寬需求。當經由反饋頻道2501偵測到一封包丟失時,由編碼器2500產生新的I影像塊(如圖25b中所說明),以重新初始化用戶端器件205上之解碼器2502之狀態。如所說明,在一實施例中,該等I影像塊跨越多個經編碼圖框散佈以限制每一個別經編碼圖框所消耗之頻寬。舉例而言,在圖25中(其中每一圖框包括4個影像塊),在4個連續經編碼圖框中之一不同位置傳輸單一I影像塊。
編碼器2500可組合關於此實施例描述之技術與本文中所描述之其他編碼技術。舉例而言,除回應於一偵測到的封包丟失產生I影像塊之外,編碼器2500可在其他情況下產生I影像塊,其中I影像塊可能有益於正確再現影像之序列(諸如,回應於突然場景轉換)。
圖26a說明本發明之另一實施例,其依賴用戶端器件205與主機代管服務210之間的反饋頻道2601。並非回應於一偵測到的封包丟失產生新I影像塊/圖框,此實施例之編碼器2600調整P影像塊/圖框之相依性。作為一首要問題,應注意,此實例中所陳述之特定細節並非符合本發明之基本原理所需的。舉例而言,雖然將使用P影像塊/圖框描述此實例,但本發明之基本原理不限於任何特定編碼格式。
在圖26a中,編碼器2600將複數個未經壓縮之影像塊/圖框2605編碼成複數個P影像塊/圖框2606且經由一通信頻道(例如,網際網路)將該等P影像塊/圖框傳輸至一用戶端器件205。用戶端器件205上之解碼器2602解碼該等P影像塊/圖框2606以產生複數個經解壓縮之影像塊/圖框2607。將編碼器2600之過去狀態2611儲存於主機代管服務210上之記憶體器件2610中,且將解碼器2602之過去狀態2621儲存於用戶端器件205上之記憶體器件2620中。解碼器之「狀態」為諸如MPEG-2及MPEG-4之視訊編碼系統中之熟知術語。在一實施例中,儲存於該等記憶體中之該等過去「狀態」包含來自先前P影像塊/圖框之組合資料。記憶體2611及2621可分別整合在編碼器2600及解碼器2602中,而非與編碼器2600及解碼器2602分開,如圖26a中所示。此外,可使用各種類型之記憶體,以實例說明且非限制,該等記憶體包括隨機存取記憶體。
在一實施例中,當無封包丟失發生時,編碼器2600相依於先前P影像塊/圖框來編碼每一P影像塊/圖框。因此,如圖26a中所使用之表示法所指示,P影像塊/圖框4相依於P影像塊/圖框3(使用表示法43識別);P影像塊/圖框5相依於P影像塊/圖框4(使用表示法54識別);且P影像塊/圖框6相依於P影像塊/圖框5(使用表示法65識別)。在此實例中,P影像塊/圖框43已在編碼器2600與解碼器2602之間的傳輸期間丟失。該丟失亦可以各種方式(包括(但不限於)上述方法)傳達至編碼器2600。舉例而言,每當解碼器2602成功接收及/或解碼一影像塊/圖框時,此資訊可自解碼器2602傳達至編碼器2600。若編碼器2600在一時間段後未接收到已接收及/或解碼一特定影像塊/圖框之一指示,則編碼器2600將假設該影像塊/圖框未被成功接收。另外或其他,解碼器2602可在未成功接收一特定影像塊/圖框時通知編碼器2600。
在一實施例中,不管如何偵測到丟失之影像塊/圖框,一旦偵測到丟失之影像塊/圖框,編碼器2600便使用已知已由解碼器2602成功接收之最後一個影像塊/圖框編碼下一影像塊/圖框。在圖26a中所示之實例中,不認為影像塊/圖框5及6「成功接收」,因為歸因於影像塊/圖框4之丟失,影像塊/圖框5及6不能由解碼器2602正確解碼(亦即,影像塊/圖框5之解碼相依於影像塊/圖框4且影像塊/圖框6之解碼相依於影像塊/圖框5)。因此,在圖26a中所示之實例中,編碼器2600相依於影像塊/圖框3(最後一個成功接收之影像塊/圖框)編碼影像塊/圖框7,而非相依於解碼器2602不能正確解碼之影像塊/圖框6來編碼影像塊/圖框7。雖然圖26a中未說明,但隨後將相依於影像塊/圖框7編碼影像塊/圖框8,且將相依於影像塊/圖框8編碼影像塊/圖框9,假設未偵測到額外封包丟失。
如上所述,編碼器2600及解碼器2602分別將過去編碼器狀態2611及過去解碼器狀態2621維持在記憶體2610及2620中。因此,當編碼影像塊/圖框7時,編碼器2600自記憶體2610擷取與影像塊/圖框3相關聯之先前編碼器狀態。類似地,與解碼器2602相關聯之記憶體2620至少儲存最後已知的良好解碼器狀態(在該實例中為與P影像塊/圖框3相關聯之狀態)。因此,解碼器2602擷取與影像塊/圖框3相關聯之過去狀態資訊,使得可解碼影像塊/圖框7。
作為上述該等技術之結果,可編碼即時、低延時之互動視訊且使用相對較小頻寬串流該互動視訊,因為始終不需要I影像塊/圖框(在串流開始時初始化解碼器及編碼器除外)。此外,雖然由解碼器產生之視訊影像可臨時包括由丟失之影像塊/圖框4與影像塊/圖框5及6(其由於影像塊/圖框4之丟失而不能正確解碼)引起的不良失真,但此失真可在一極短持續時間中可見。此外,若使用影像塊(而非完整的視訊圖框),則失真將侷限於再現之視訊影像之一特定區域。
圖26b中說明一根據本發明之一實施例之方法。在2650處,基於一先前產生之影像塊/圖框產生一影像塊/圖框。在2651處,偵測到一丟失之影像塊/圖框。在一實施例中,基於自編碼器傳達至解碼器之資訊偵測到該丟失之影像塊/圖框,如上所述。在2652處,基於一已知已於解碼器處成功接收及/或解碼之影像塊/圖框產生下一影像塊/圖框。在一實施例中,編碼器藉由自記憶體載入與成功接收及/或解碼之影像塊/圖框相關聯之狀態產生下一影像塊/圖框。類似地,當解碼器接收新影像塊/圖框時,該解碼器藉由自記憶體載入與成功接收及/或解碼之影像塊/圖框相關聯之狀態來解碼該影像塊/圖框。
在一實施例中,在編碼器處基於成功接收及/或解碼之最後一個影像塊/圖框產生下一影像塊/圖框。在另一實施例中,所產生之下一影像塊/圖框為一I影像塊/圖框。在又一實施例中,將基於有多少影像塊/圖框丟失及/或頻道之延時來選擇是基於一先前成功接收之影像塊/圖框產生下一影像塊/圖框或是將下一影像塊/圖框產生為一I圖框。在一相對較小數目之(例如,1個或2個)影像塊/圖框丟失且往返延時相對較低(例如,1個或2個圖框時間)的情況下,產生一P影像塊/圖框可能最佳,因為最後一個成功接收之影像塊/圖框與新產生之影像塊/圖框之間的差異可能相對較小。若丟失若干個影像塊/圖框或往返延時高,則產生一I影像塊/圖框可能最佳,因為最後一個成功接收之影像塊/圖框與新產生之影像塊/圖框之間的差異可能巨大。在一實施例中,設定一影像塊/圖框丟失臨限值及/或一延時臨限值以判定是傳輸一I影像塊/圖框或是傳輸一P影像塊/圖框。若丟失之影像塊/圖框之數目係在該影像塊/圖框丟失臨限值以下及/或若該往返延時係在該延時臨限值以下,則產生一新I影像塊/圖框;否則,產生一新P影像塊/圖框。
在一實施例中,編碼器一直嘗試關於最後一個成功接收之影像塊/圖框產生一P影像塊/圖框,且若在編碼過程中,編碼器確定該P影像塊/圖框很可能比一I影像塊/圖框大(例如,若編碼器已壓縮了該影像塊/圖框的八分之一且經壓縮之大小大於先前經壓縮之I影像塊/圖框之平均大小的八分之一),則編碼器將放棄壓縮該P影像塊/圖框且將改為壓縮一I影像塊/圖框。
若很少發生封包丟失,則使用反饋報告一丟棄之影像塊/圖框之上述系統通常導致至使用者的視訊串流之極輕微中斷,因為由一丟失封包中斷的一影像塊/圖框大致在用戶端器件205與主機代管服務210之間的一個往返之時間中經替換,假設編碼器2600在很短時間中壓縮該影像塊/圖框。且,因為所壓縮之新影像塊/圖框係基於未經壓縮之視訊串流中之一稍後圖框,所以視訊串流並未落後於未經壓縮之視訊串流。但是,若一含有該新影像塊/圖框之封包亦丟失,則此將導致至少兩個往返(其用以再一次請求並發送另一新影像塊/圖框)之一延遲,在許多實際情況下,該延遲將導致視訊串流之一明顯中斷。因此,將在丟棄之影像塊/圖框之後發送的新編碼之影像塊/圖框成功地自主機代管服務210發送至用戶端器件205非常重要。
在一實施例中,使用前向錯誤更正(FEC)編碼技術(諸如,圖11a、圖11b、圖11c及圖11d中先前所描述及說明之編碼技術)減少丟失新編碼之影像塊/圖框的機率。若已在傳輸影像塊/圖框時使用FEC編碼,則將一較強FEC碼用於新編碼之影像塊/圖框。
丟棄之封包之一可能原因為頻道頻寬之突然丟失,例如,使用者場所211處之寬頻連接的一些其他使用者開始使用大量頻寬的情況。若一新產生之影像塊/圖框亦由於丟棄之封包而丟失(即使使用FEC),則在一實施例中,當主機代管服務210由用戶端415通知:一第二新編碼之影像塊/圖框被丟棄,視訊壓縮器404在其編碼一隨後新編碼之影像塊/圖框時減少資料速率。不同實施例使用不同技術減少資料速率。舉例而言,在一實施例中,藉由降低經編碼影像塊/圖框之品質來實現此資料速率減少,該降低品質藉由增加壓縮比率來實現。在另一實施例中,藉由降低視訊之圖框速率(例如,自60 fps降至30 fps)及相應地減緩資料傳輸之速率來減少資料速率。在一實施例中,使用用於減少資料速率之兩種技術(例如,減少圖框速率且增加壓縮比率)。若此較低資料傳輸速率成功地減少丟棄之封包,則根據先前所描述之頻道資料速率偵測及調整方法,主機代管服務210將繼續以一較低資料速率進行編碼,且接著在頻道允許時逐漸向上或向下調整資料速率。與丟棄之封包及/或延時相關的反饋資料之連續接收允許主機代管服務210基於當前頻道條件動態地調整資料速率。
線上遊戲系統中之狀態管理
本發明之一實施例使用有效地儲存一作用中遊戲之當前狀態且在伺服器之間移植(port)該當前狀態之技術。雖然本文中所描述之實施例與線上遊戲相關,但本發明之基本原理可用於各種其他類型之應用程式(例如,設計應用程式、文書處理程式(word processor)、諸如電子郵件或即時訊息之通信軟體等)。圖27a說明一種用於實施此實施例之例示性系統架構,且圖27b說明一例示性方法。雖然將同時描述該方法及該系統架構,但圖27b中所說明之方法不限於任何特定系統架構。
在圖27b之2751處,一使用者自用戶端器件205起始一主機代管服務210a上之新線上遊戲。作為回應,在2752處,將遊戲之一「遊戲原狀(clean)」影像2702a自儲存器(例如,一硬碟機,其直接連接至一執行該遊戲之伺服器,或經由一網路連接至一伺服器)載入至主機代管服務210a上之記憶體(例如,RAM)。該「遊戲原狀」影像包含在起始玩任何遊戲之前的遊戲之執行時間程式碼及資料(例如,像該遊戲係第一次執行)。使用者接著在2753處玩該遊戲,從而使該「遊戲原狀」影像變至一非遊戲原狀影像(例如,圖27a中之由「狀態A」表示的一執行中遊戲)。在2754處,該遊戲由使用者或主機代管服務210a暫停或終止。在2755處,主機代管服務210a上之狀態管理邏輯2700a確定該遊戲之「遊戲原狀」影像與當前遊戲狀態(「狀態A」)之間的差異。可使用各種已知技術計算兩個二值影像之間的差異,該等技術包括(例如)可用於Unix作業系統中之熟知「差異(diff)」公用程式中所使用之技術。當然,本發明之基本原理不限於用於差異計算之任何特定技術。
不管如何計算差異,一旦計算出該等差異,便將差異資料本端地儲存於儲存器件2705a中及/或傳輸至一不同主機代管服務210b。若傳輸至一不同主機代管服務210b,則可將該差異資料儲存於新主機代管服務210b處之一儲存器件(圖中未展示)上。在任何情況下,該差異資料均與使用者在主機代管服務上之帳戶相關聯,因此下次使用者登入該等主機代管服務且起始該遊戲時可識別該差異資料。在一實施例中,並非立即傳輸差異資料,而是在下次使用者嘗試玩遊戲(且將一不同主機代管服務識別為用於代管遊戲之最佳選擇)之前,將該差異資料傳輸至一新主機代管服務。
返回圖27b中所示之方法,在2757處,使用者自一用戶端器件重新起始該遊戲,該用戶端器件可為使用者最初玩該遊戲所用的相同用戶端器件205或一不同用戶端器件(圖中未展示)。作為回應,在2758處,主機代管服務210b上之狀態管理邏輯2700b自一儲存器件擷取該遊戲之該「遊戲原狀」影像及該差異資料。在2759處,狀態管理邏輯2700b組合該遊戲原狀影像與該差異資料以重建遊戲在原始主機代管服務210a上之狀態(「狀態A」)。可使用各種已知技術使用該差異資料重建二值影像之狀態,該等技術包括(例如)可用於Unix作業系統中之熟知「修補程式(patch)」公用程式中所使用之技術。亦可使用諸如PC備份程式之熟知備份程式中所使用的差異計算技術。本發明之基本原理不限於用於使用差異資料重建二值影像之任何特定技術。
另外,在2760處,將平台相依性資料2710併入至最後遊戲影像2701b中。平台相依性資料2710可包括只有目的地伺服器平台才有的任何資料。以實例說明且非限制,平台相依性資料2710可包括新平台之媒體存取控制(MAC)位址、TCP/IP位址、鐘點、硬體序號(例如,硬碟機及CPU之硬體序號)、網路伺服器位址(例如,DHCP/Wins伺服器)及軟體序號/啟動碼(包括作業系統序號/啟動碼)。
與用戶端/使用者相關的其他平台相依性資料可包括(但不限於)下列各者:
1.使用者之螢幕解析度。當使用者重新開始遊戲時,使用者可能正在使用一具有一不同解析度之不同器件。
2.使用者之控制器組態。當遊戲重新開始時,使用者可能已自一遊戲控制器切換至一鍵盤/滑鼠。
3.使用者權利,諸如一折扣率是否已過期(例如,使用者曾在一促銷時段期間玩遊戲,而現在以較高花費在一正常時段期間玩遊戲之情況),或使用者或器件是否具有特定年齡限制(例如,使用者之父母可能為了孩子已改變設定,使得不允許孩子查看成人材料,或玩遊戲之器件(例如,公共圖書館中之電腦)對是否可顯示成人材料具有特定限制)。
4.使用者之級別。可能已允許使用者在一特定聯盟中玩一多人遊戲,但因為某些其他使用者已超過使用者之級別,所以該使用者可能已降級至一較低級聯盟。
提供平台相依性資料2710之前述實例以用於說明本發明之此實施例。本發明之基本原理並不限於平台相依性資料之任何特定設定。
圖28以圖形說明第一主機代管服務處之狀態管理邏輯2700a如何自執行中遊戲2701a提取差異資料2800。第二主機代管服務處之狀態管理邏輯2700b接著組合遊戲原狀影像2702b與差異資料2800及平台相依性資料2710以重新產生執行中遊戲2701b之狀態。如圖28中大體所示,差異資料之大小明顯小於整個遊戲影像2701a之大小,且因此,由於僅儲存/傳輸差異資料而節省了大量儲存空間及頻寬。雖然圖28中未展示,但在將平台相依性資料2710併入最後遊戲影像2701b中時,該平台相依性資料可能覆寫差異資料之一些。
雖然上文描述了一線上視訊遊戲實施,但本發明之基本原理不限於視訊遊戲。舉例而言,可在任何類型之線上代管應用程式之內容背景中實施前述狀態管理技術。
用於維護一用戶端解碼器之技術
在本發明之一實施例中,每當使用者請求連接至主機代管服務210時,主機代管服務210將一新解碼器傳輸至用戶端器件205。因此,在此實施例中,用戶端器件所使用之解碼器一直為最新的且唯一地適合在用戶端器件上實施之硬體/軟體。
如圖29中所說明,在此實施例中,永久地安裝在用戶端器件205上之應用程式不包括一解碼器。更確切地說,該應用程式為一用戶端下載器應用程式2903,每當用戶端器件205連接至主機代管服務210時,該應用程式管理臨時解碼器2900之下載及安裝。下載器應用程式2903可實施於硬體、軟體、韌體或其任何組合中。回應於對一新線上會期之一使用者請求,下載器應用程式2903經由一網路(例如,網際網路)傳輸與用戶端器件205相關的資訊。該資訊可包括識別用戶端器件及/或用戶端器件之硬體/軟體組態(例如,處理器、作業系統等)之識別資料。
基於此資訊,主機代管服務210上之下載器應用程式2901選擇將在用戶端器件205上使用的適當臨時解碼器2900。主機代管服務上之下載器應用程式2901接著傳輸臨時解碼器2900,且用戶端器件上之下載器應用程式2903驗證該解碼器及/或將該解碼器安裝在用戶端器件205上。編碼器2902接著使用本文中所描述的技術中之任一者編碼音訊/視訊內容且將內容2910傳輸至解碼器2900。一旦安裝了新解碼器2900,該解碼器即解碼當前線上會期之內容(亦即,使用本文中所描述的音訊/視訊解壓縮技術中之一或多者)。在一實施例中,在會期終止時,將解碼器2900自用戶端器件205移除(例如,解除安裝)。
在一實施例中,臨時解碼器2900正在下載中時,下載器應用程式2903藉由進行諸如頻道上可達成之資料速率(例如,藉由確定下載資料所用的時間)、頻道上之封包丟失率及頻道之延時的頻道評定而將頻道特性化。下載器應用程式2903產生描述該等頻道評定之頻道特性化資料。接著將此頻道特性化資料自用戶端器件205傳輸至主機代管服務下載器2901,其使用該頻道特性化資料確定如何最好地利用該頻道將媒體傳輸至用戶端器件205。
用戶端器件205通常會在臨時解碼器2900之下載期間將訊息發送回至主機代管服務205。此等訊息可包括指示封包是無錯誤地或是有錯誤地接收之應答訊息。另外,該等訊息將關於下列各者之反饋提供給下載器2901:資料速率(基於接收封包之速率計算);封包錯誤率(基於經報告有接收錯誤之封包之百分率);及頻道之往返延時(基於在下載器2901接收關於一已傳輸之給定封包之反饋之前所用的時間之量)。
以實例說明,若確定資料速率為2 Mbps,則下載器可為編碼器2902選擇一比資料速率經確定為較5 Mbps時之解析度(例如,60 fps下之1280×720)小的視訊視窗解析度(例如,60 fps下之640×480)。視封包丟失率而定,可選擇不同的前向錯誤更正(FEC)或封包結構。
若封包丟失極低,則可傳輸經壓縮之音訊及視訊而無任何錯誤更正。若封包丟失中等,則可利用錯誤更正編碼技術(諸如,先前所描述且在圖11a、圖11b、圖11c及圖11d中說明之編碼技術)傳輸經壓縮之音訊及視訊。若封包丟失非常高,則可確定不能傳輸一具有適當品質之視聽串流,且用戶端器件205可通知使用者:主機代管服務不可經由通信頻道(亦即,「鏈路」)使用,或者用戶端器件可能試圖建立至主機代管服務之具有較低封包丟失的一不同路線(如下文所描述)。
若延時為低,則可以低延時傳輸經壓縮之音訊及視訊且可建立一會期。若延時過高(例如,大於80毫秒),則對於需要低延時之遊戲,用戶端器件205可通知使用者:主機代管服務不可經由鏈路使用;鏈路可用,但對使用者輸入之回應時間將緩慢或「滯後」;或者,使用者可試圖建立至主機代管服務之具有較低延時之一不同路線(如下文所描述)。
用戶端器件205可能試圖經由網路(例如,網際網路)經由另一路線連接至主機代管服務210,以查看損害是否減少(例如,封包丟失是否較低,延時是否較低,或甚至資料速率是否較高)。舉例而言,主機代管服務210可在地理上自多個位置(例如,Los Angeles之代管中心及位於Denver之代管中心)連接至網際網路,且歸因於Los Angeles之壅塞,可能存在高封包丟失,但Denver不存在壅塞。此外,主機代管服務210可經由多個網際網路服務提供者(例如,AT&T及Comcast)連接至網際網路。
由於用戶端器件205與服務提供者中之一者(例如,AT&T)之間的壅塞或其他問題,可能產生封包丟失及/或高延時及/或受約束之資料速率。然而,若用戶端器件205經由另一服務提供者(例如,Comcast)連接至主機代管服務210,則該用戶端器件可能能夠無壅塞問題地連接及/或具有較低封包丟失及/或具有較低延時及/或具有較高資料速率。因此,若用戶端器件205在下載臨時解碼器2900時經歷在一規定臨限值(例如,一規定持續時間中的規定數目個丟棄封包)以上的封包丟失、在一規定臨限值以上的延時及/或一在規定臨限值以下的資料速率,則在一實施例中,該用戶端器件嘗試經由一替代路線重新連接至主機代管服務210(通常藉由連接至一不同IP位址或不同網域名稱)來判定是否可獲得一較佳連接。
若該連接在用盡替代連接選項之後仍經歷不可接受之損害,則情況可能為:至網際網路的用戶端器件205之本端連接正遭受損害,或用戶端器件距離主機代管服務210太遠而不能達成適當延時。在此情況下,用戶端器件205可通知使用者:主機代管服務不可經由鏈路使用;或主機代管服務可使用但有損害;及/或僅特定類型之低延時遊戲/應用程式可使用。
由於對主機代管服務210與用戶端器件205之間的鏈路特性之此評定及潛在改良在下載臨時解碼器時發生,故其減少用戶端器件205必須分別花在下載臨時解碼器2900及評定鏈路特性上的時間量。儘管如此,在另一實施例中,對鏈路特性之評定及潛在改良由用戶端器件205執行,與下載臨時解碼器2900分開(例如,藉由使用虛設測試資料而非解碼器程式碼)。此實施可能為一較佳實施的原因很多。舉例而言,在一些實施例中,用戶端器件205係部分地或完全地實施於硬體中。因此,對此等實施例而言,本質上不必下載軟體解碼器。
使用基於標準之影像塊大小之壓縮
如上所述,當使用基於影像塊之壓縮時,本發明之基本原理不限於任何特定影像塊大小、形狀或定向。舉例而言,在一基於DCT之壓縮系統(諸如,MPEG-2及MPEG-4)中,影像塊可為巨集區塊(視訊壓縮中所使用的通常表示一16像素×16像素之區塊)之大小。此實施例提供一對影像塊起作用的非常精細之粒度等級。
此外,不管影像塊大小如何,可使用各種類型之影像塊化圖案。舉例而言,圖30說明一實施例,其中在每一R圖框3001-3004中使用多個I影像塊。使用一旋轉圖案,其中I影像塊分散遍佈每一R圖框,使得每四個R圖框產生一完整I圖框。以此方式分散I影像塊能減少封包丟失之影響(將丟失侷限於顯示之一小區域)。
該等影像塊亦可具有適合基本壓縮演算法之完整原生結構的大小。舉例而言,若使用H.264壓縮演算法,則在一實施例中,將影像塊設定為H.264「圖塊(slice)」之大小。此允許本文中所描述之技術容易地整合各種不同標準壓縮演算法(諸如,H.264及MPEG-4)之內容。一旦將影像塊大小設定為一原生壓縮結構,即可實施與上述技術相同的技術。
用於串流倒轉及播放操作之技術
如先前結合圖15所描述,由應用程式/遊戲伺服器1521-1525產生之未經壓縮之視訊/音訊串流1529可由共用硬體壓縮1530同時以多個解析度壓縮,從而產生多個經壓縮之視訊/音訊串流1539。舉例而言,由應用程式/遊戲伺服器1521產生之一視訊/音訊串流可由共用硬體壓縮1530以1280×720×60 fps壓縮且作為出埠網際網路訊務1599經由出埠路由1540傳輸至一使用者。同一視訊/音訊串流可由共用硬體壓縮1530經由至應用程式/遊戲伺服器1522之路徑1552(或經由延遲緩衝器1515)同時按比例縮小至縮圖大小(例如,200×113)以顯示為圖16中之縮圖集合中之一縮圖1600。當縮圖1600經過圖17中之中等大小1700縮放至圖18中之大小1800(1280×720×60 fps)時,並非解壓縮該縮圖串流,應用程式/遊戲伺服器1522可解壓縮正發送至應用程式/遊戲伺服器1521之使用者的1280×720×60 fps串流之一複本,且按比例調整較高解析度視訊,就像將其自縮圖大小縮放至1280×720大小一樣。此方法具有將1280×720之經壓縮之串流再利用兩次的優點。但是,該方法具有若干缺點:(a)若使用者之網際網路連接之資料輸送量改變,則發送至使用者之經壓縮之視訊串流可能在影像品質上改變,從而產生應用程式/遊戲伺服器1522之「旁觀」使用者所看到的變化之影像品質,即使使用者之網際網路連接不改變;(b)應用程式/遊戲伺服器1522必須使用處理資源解壓縮整個1280×720影像,且接著按比例調整該影像(且可能應用一重取樣濾波器)以在縮放期間顯示小得多的大小(例如,640×360);(c)若歸因於有限網際網路連接頻寬及/或丟失/損壞之封包而丟棄圖框,且旁觀使用者「倒轉」且「暫停」記錄在延遲緩衝器1515中之視訊,則旁觀使用者將發現:丟棄之圖框在延遲緩衝器中遺漏(此對使用者逐圖框「步進」之情況特別明顯);及(d)若旁觀使用者倒轉以在記錄在延遲緩衝器中之視訊中尋找一特定圖框,則應用程式/遊戲伺服器1522必須在記錄在延遲緩衝器中之視訊串流中尋找在該已搜尋圖框之前的一I圖框或I影像塊,且接著解壓縮所有P圖框/影像塊,直至到達該所要圖框為止。此相同限制不僅施加給現場「旁觀」視訊/音訊串流之使用者,而且施加給觀看視訊/音訊串流之一封存(例如,「炫耀剪輯」)複本之使用者(包括產生視訊/音訊串流之使用者)。
本發明之一替代實施例藉由以一個以上的大小及/或結構壓縮視訊串流來解決此等問題。如本文中所描述,基於網路連接之特性(例如,資料頻寬、封包可靠性)及使用者之本端用戶端能力(例如,解壓縮能力、顯示解析度)最佳地壓縮一個串流(「實況」串流)以串流至終端使用者。以高品質、以一或多個解析度且以一能夠播放視訊之結構壓縮其他串流(本文中稱為「HQ」串流),且投送此等HQ串流且將其儲存於伺服器中心210中。舉例而言,在一實施例中,該等經壓縮之HQ串流儲存於RAID磁碟陣列1515上且用以提供諸如暫停、倒轉之功能及其他播放功能(例如,「炫耀剪輯」,其可散佈至其他使用者以供觀看)。
如圖31a中所說明,本發明之一實施例包含能夠以至少兩種格式壓縮一視訊串流之編碼器3100:一種週期性地包括I影像塊或I圖框之格式3110;及一種不包括I影像塊或I圖框之格式3111,除非歸因於該串流之中斷或因為I影像塊或I圖框經測定可能小於I影像塊或I圖框(如上所述)有必要包括I影像塊或I圖框。舉例而言,可僅使用P圖框壓縮在玩一視訊遊戲時傳輸至使用者的「實況」串流3111(除非I影像塊或I圖框係必需的或較小,如上所述)。另外,此實施例之編碼器3100以一第二格式同時壓縮實況視訊串流3111,在一實施例中,該第二格式週期性地包括I影像塊或I圖框(或類似類型之影像格式)。
雖然上述實施例使用I影像塊、I圖框、P影像塊及P圖框,但本發明之基本原理不限於任何特定壓縮演算法。舉例而言,可使用任何類型之影像格式(其中圖框相依於先前或隨後圖框)替代P影像塊或P圖框。類似地,任何類型之非相依於先前或隨後圖框之影像格式可替代上述I影像塊或I圖框。
如上所述,HQ串流3110包括週期性I圖框(例如,在一實施例中,每12個圖框左右)。此情況很重要,因為若使用者十分想要將儲存之視訊串流迅速倒轉至一特定點,則需要I影像塊或I圖框。對於一僅具有P圖框之經壓縮之串流(亦即,序列之第一個圖框不為I圖框),解碼器必須回到序列之第一個圖框(此可能耗時幾小時)且解壓縮P圖框直至使用者想要倒轉至的點。對於儲存於HQ串流3110中的每12個圖框具有一I圖框之情形下,使用者可決定倒轉至一特定點,且HQ串流之最近的之前I圖框在所要圖框之前不超過12個圖框。即使解碼器最大解碼速率為即時的(例如,對於一60圖框/秒之串流為六十分之一秒),亦遠離一I圖框12(圖框)/60(圖框/秒)=1/5秒。且,在許多情況下,解碼器可比即時更快速地操作,因此,例如以2倍於即時之速度,解碼器可在6個圖框內解碼12個圖框,其僅為「倒轉」延遲十分之一秒。不必說,若最近的之前I圖框在一倒轉點之前有很多圖框(例如,「倒轉」一次將耗時十分之一小時(6分鐘)),則即使一快速解碼器(例如,10倍於即時)亦將具有一不可接受之延遲。在另一實施例中,使用週期性I影像塊,且在此情況下,當使用者設法倒轉時,解碼器將尋找在該倒轉點之前的最近之前I影像塊,且接著自該點開始解碼該影像塊,直至解碼直至該倒轉點的所有影像塊為止。雖然週期性I影像塊或I圖框比完全消除I圖框導致低效率壓縮,但主機代管服務210通常具有對管理HQ串流來說綽綽有餘的本端可用頻寬及儲存容量。
在另一實施例中,編碼器3100編碼具有繼之以P影像塊或P圖框(如先前所描述)、但之前亦有B影像塊或B圖框的週期性I影像塊或I圖框之HQ串流。如先前所描述,B圖框為在一I圖框之前的圖框且基於在時間上自該I圖框倒退的圖框差。B影像塊為在一I影像塊之前的影像塊對應物且基於自I影像塊倒退的圖框差。在此實施例中,若所要倒轉點為一B圖框(或含有B影像塊),則解碼器將尋找最近的隨後I圖框或I影像塊且在時間上倒退來解碼,直至解碼了所要倒轉點,且接著隨著視訊播放自該倒轉點前進,解碼器將解碼在前進之連續圖框中之B圖框、I圖框及P圖框(或其影像塊對應物)。除使用I類型及P類型之外亦使用B圖框或B影像塊之優點在於,常常可達成一給定壓縮比率下之較高品質。
在又一實施例中,編碼器3100將HQ串流全部編碼為I圖框。此方法之一優點在於,每個倒轉點為一I圖框,且結果,不必解碼其他圖框以到達倒轉點。一缺點為,與I、P或I、P、B串流編碼相比,壓縮資料速率將非常高。
其他視訊串流播放動作(例如,快速或慢速倒轉、向前快轉或慢轉等)利用週期性I圖框或I影像塊(單獨地或與P及/或B對應物組合)通常更容易實際實現,因為在每一情況下,以不同於在時間上逐個圖框前進之圖框次序播放該串流,且結果,解碼器必須尋找且解碼序列中之一特定圖框(常常為任意的)。舉例而言,在極快向.前快轉(例如,100x速度)之情況下,所顯示的每一後繼圖框在先前圖框之後100個圖框。即使對於一以10倍於即時之速度執行且在1個圖框時間中解碼10個圖框之解碼器,10x仍過慢而不能達成100x向前快轉。而,利用如上所述之週期性I圖框或I影像塊,解碼器能夠搜尋接下來需要顯示之圖框之最近可用I圖框或I影像塊且僅解碼介入圖框或影像塊至目標圖框之點。
在另一實施例中,以一致週期性(例如,始終為每8個圖框)在HQ串流中編碼I圖框,且使用者可用於向前快轉及倒轉之比I圖框速率快之速度乘數(speed multiplier)為I圖框週期性之準確倍數。舉例而言,若I圖框週期性為8個圖框,則使用者可用之向前快轉或倒轉速度可為1X、2X、3X、4X、8X、16X、64X及128X及256X。對於比I圖框週期性快的速度,解碼器將首先以該速度向前跳躍至最接近I圖框(其為提前之圖框之數目)(例如,若當前所顯示的圖框在一I圖框之前3個圖框,則以128X之速度,解碼器將跳躍至一提前128+3個圖框之圖框),且對於每一後繼圖框,解碼器將按照每次將準確地落在一I圖框上之選定速度跳躍準確數目個圖框(例如,以128X之選定速度,解碼器將跳躍128個圖框)。因此,若比I圖框週期性快的所有速度為I圖框週期性之準確倍數,則解碼器絕不必解碼任何之前或之後圖框來搜尋所要圖框,且其僅須解碼每個所顯示圖框的一個I圖框。對於比I圖框週期性慢的速度(例如,1X、2X、3X、4X),或對於較快的非I圖框週期性之倍數的速度,對於所顯示的每一圖框,解碼器搜尋哪些圖框需要最少的額外新解碼之圖框以顯示所要圖框(其為仍可以解碼形式獲得之一未經解碼之I圖框或一已經解碼之圖框(在RAM或其他快速儲存器中)),且接著按需要解碼介入圖框,直至解碼且顯示了所要圖框。舉例而言,在4X向前快轉之情況下,在一具有8X I圖框週期性之I、P編碼序列中,若當前圖框為一在一I圖框之後1個圖框的P圖框,則待顯示之所要圖框在4個圖框之後,該待顯示圖框可為在之前I圖框之後的第五個P圖框。若使用當前所顯示之圖框(其剛才已被解碼)作為一起點,則解碼器將必須解碼4個以上P圖框以顯示所要圖框。若使用之前I圖框,則解碼器將必須解碼6個圖框(該I圖框及隨後的5個P圖框)以顯示所要圖框。(很明顯,在此情況下,使用當前所顯示之圖框將待解碼之額外圖框減至最少係有利的。)接著,待解碼之下一圖框(提前4個圖框)可為在一I圖框之後的第一個P圖框。在此情況下,若使用當前解碼之圖框作為起點,則解碼器將必須解碼4個以上圖框(2個P圖框、一I圖框及一P圖框)。但是,若改為使用下一I圖框,則解碼器僅必須解碼該I圖框及後繼P圖框。(很明顯,在此情況下,使用下一I圖框作為起點將待解碼之額外圖框減至最少係有利的。)因此,在此實例中,解碼器可在使用當前解碼之圖框作為起點與使用一隨後I圖框作為起點之間交替。作為一般原則,不管HQ視訊串流播放模式(向前快轉、倒轉或步進)及速度如何,解碼器可自任何一個圖框開始,該圖框可為一I圖框或一先前解碼之圖框,其需要最少數目個新解碼之圖框以顯示在該播放模式及速度下顯示的每一後繼圖框之所要圖框。
如圖31b中所說明,主機代管服務210之一實施例包括用於管理使用者對重播HQ串流3110之請求的串流重播邏輯3112。串流重播邏輯3112接收含有視訊播放命令(例如,暫停、倒轉、自一規定點播放等)之用戶端請求、解譯該等命令,且自該規定點解碼HQ串流3110(適當地自一I圖框或自先前經解碼之圖框開始,且接著前進或倒退至該規定點)。在一實施例中,將一經解碼之HQ串流提供給編碼器3100(可能為自相同編碼器3100,若其能夠一次編碼一個以上串流,或一單獨編碼器3100),因此可(使用本文中所描述之技術)重新壓縮該HQ串流且將其傳輸至用戶端器件205。用戶端器件上之解碼器3102接著解碼並再現該串流,如上所述。
在一實施例中,串流重播邏輯3112不解碼該HQ串流且接著使編碼器3100重新編碼該串流。更確切地說,該串流重播邏輯僅將HQ串流3110自該規定點直接串流至用戶端器件205。用戶端器件205上之解碼器3102接著解碼該HQ串流。因為本文中所描述之該等播放功能通常不具有與播放一即時視訊遊戲相同的低延時需求(例如,若玩家僅觀看先前遊戲玩法,而非積極地玩遊戲),所以通常較高品質之HQ串流中通常固有的附加延時可能導致一不可接受的終端使用者體驗(例如,具有較高延時但品質較高之視訊)。
以實例說明且非限制,若使用者正在玩一視訊遊戲,則編碼器3100將提供一實質上全部為P圖框之實況串流,其針對使用者之連接及本端用戶端經最佳化(例如,640×360解析度下之大約1.4Mbps)。同時,編碼器3100亦將該視訊串流壓縮為主機代管服務210中之一HQ串流3110,且以10Mbps以(例如)1280×720將該HQ串流儲存於一本端數位視訊解碼器RAID陣列上(每12個圖框具有多個I圖框)。若使用者按一「暫停」按鈕,則遊戲將在用戶端之最後經解碼之圖框上暫停,且螢幕將凍結。接著,若使用者按一「倒轉」按鈕,則串流重播邏輯3112將自最近I圖框或可用的已解碼之圖框開始自DVR RAID讀取HQ串流3110,如上所述。串流重播邏輯3112將按需要解壓縮介入P圖框或B圖框、按需要對該等圖框重新排序,使得播放序列以所要倒 轉速度倒退,且接著(使用此項技術中熟知的先前技術影像按比例調整技術)將意欲顯示之所要經解碼之圖框之大小自1280×720重新設定為640×360,且實況串流編碼器3100將以640×360之解析度重新壓縮該重新排序之串流且將其傳輸至使用者。若使用者再次暫停,且接著在該視訊中進行單步步進以仔細地觀看一序列,則DVR RAID上之HQ串流3110可將每一個圖框用於單步步進(即使原始實況串流可能由於本文中所描述的許多原因中之任一者而丟棄圖框)。此外,視訊播放之品質在HQ串流中之每一點將相當高,而實況串流中可能存在(例如)頻寬已損壞之點,從而導致經壓縮之影像品質之臨時下降。雖然使用者可接受一短暫時間段或移動影像中之受損影像品質,但若使用者停在一特定圖框(或緩慢地單步步進)且仔細研究圖框,則可能不可接受受損品質。藉由規定HQ串流中之一點(例如,2分鐘之前),使用者亦具備向前快轉、跳躍至一特定點之能力。在僅具有P圖框或很少(或不可預見地)具有I圖框之實況視訊串流的情況下,所有此等操作在其完全一般性及獲得高品質方面不實用。
在一實施例中,早在HQ串流已儲存視訊時,使用者具備一視訊視窗(圖中未展示),諸如具有「拖曳器(scrubber)」(亦即,左右滑桿控制)之Apple QuickTime或Adobe Flash視訊視窗,該拖曳器允許使用者在視訊串流中向前及倒退掃動。雖然自使用者看來就像其正在對實況串流進行「拖曳」,但實際上,使用者正在對儲存之HQ串流3110進行拖曳,接著重新設定該HQ串流之大小且重新壓縮為一實況串流。另外,如先前所提及,若HQ串流同時由任何其他人觀看,或在一不同時間由使用者觀看,則可在同時編碼HQ串流時以一比實況串流之解析度高(或低)之解析度觀看該HQ串流,且品質將與觀眾之實況串流之品質一樣高,可能達到HQ串流之品質。
因此,藉由同時編碼該實況串流(如本文中所描述,針對其低延時、頻寬及封包容錯率需求以一適當方式)及一具有高品質、串流播放動作需求之HQ串流,使用者因此具備兩種情況之所要組態。且,實際上,兩個不同串流係以不同方式編碼,此對於使用者而言有效地為透明的。自使用者之觀點看,儘管在一高度變化且相對較低頻寬之網際網路連接上執行,但體驗到低延時之極快回應,而數位視訊記錄(DVR)功能性對於靈活動作及靈活速度具有極高品質。
作為上述技術之結果,使用者在線上遊戲或其他線上互動期間得到實況串流及HQ串流兩者之益處,而不遭受實況串流或HQ串流之限制中之任一者。
圖31c說明一種用於執行以上操作之系統架構之一實施例。如所說明,在此實施例中,編碼器3100分別編碼一系列「實況」串流3121L、3122L及3125L及一系列對應的「HQ」串流3121H1-H3、3122H1-H3及3125H1-H3。每一HQ串流H1係以全解析度編碼,而每一編碼器H2及H3在編碼之前將該視訊串流按比例調整至一較小大小。舉例而言,若視訊串流之解析度為1280×720,則H1以1280×720解析度編碼,而H2可按比例調整至640×360且以該解析度編碼,且H3可按比例調整至320×180且以該解析度編碼。可使用任何數目個同時Hn按比例調整器/編碼器,從而提供以多種解析度進行之多個同時HQ編碼。
如上所述,該等實況串流中之每一者回應於經由入埠網際網路連接3101接收之頻道反饋信號3161、3162及3165而操作(參見,例如,對圖25至圖26中之反饋信號2501及2601之論述)。該等實況串流經由出埠路由邏輯3140經由網際網路(或其他網路)傳輸出去。實況壓縮器3121L-3125L包括用於基於頻道反饋調適該等經壓縮之視訊串流(包括按比例調整、丟棄圖框等)之邏輯。
該等HQ串流由入埠路由邏輯3141及1502經由信號路徑3151投送至內部延遲緩衝器(例如,RAID陣列3115)或其他資料儲存器件及/或經由信號路徑3152反饋至應用程式/遊戲伺服器及編碼器3100以用於額外處理。如上所述,在請求後將HQ串流3121Hn-3125Hn隨後串流至終端使用者(參見,例如,圖31b及相關文字)。
在一實施例中,以圖15中所示之共用硬體壓縮邏輯1530實施編碼器3100。在另一實施例中,該等編碼器及按比例調整器中之一些或全部為個別子系統。本發明之基本原理不限於按比例調整或壓縮資源或硬體/軟體組態之任何特定共用。
圖31c之組態之一優點在於,需要小於完整大小視訊視窗之應用程式/遊戲伺服器3121-3125將不必處理及解壓縮一完整大小視窗。此外,需要中間視窗大小之應用程式/遊戲伺服器3121-3125可接收一接近所要視窗大小之經壓縮之串流,且接著按比例放大或縮小至所要視窗大小。此外,若多個應用程式/遊戲伺服器3121-3125向另一應用程式/遊戲伺服器3121-3125請求相同大小之視訊串流,則入埠路由3141可實施IP多播技術(諸如,此項技術中熟知的IP多播技術)且將所請求之串流同時廣播至多個應用程式/遊戲伺服器3121-3125,而不需要將獨立串流廣播至發出請求的每一應用程式/遊戲伺服器。若一接收一廣播之應用程式/遊戲伺服器改變一視訊視窗之大小,則其可轉變至廣播一不同視訊大小。因此,任意大量使用者可同時觀看一應用程式/遊戲伺服器視訊串流,每一使用者具有按比例調整其視訊視窗之靈活性及始終獲得一嚴格按比例調整至所要視窗大小之視訊串流之益處。
圖31c中所示之方法之一缺點在於,在主機代管服務210之許多實際實施中,絕對無同時觀看所有經壓縮之HQ串流(更不必說所有經壓縮之HQ串流之全部大小)的時間。當將編碼器3100實施為一共用資源(例如,一按比例調整器/壓縮器,以軟體或以硬體實施)時,此浪費減少。但是,歸因於所涉及之頻寬,可能存在將大量未經壓縮之串流連接至一共同共用資源之實際問題。舉例而言,每一1080p60之串流幾乎為3Gbps,此甚至遠遠超過十億位元乙太網路。以下替代實施例解決此問題。
圖31d展示主機代管服務210之一替代實施例,其中每一應用程式/遊戲伺服器3121-3125具有分配給其的兩個壓縮器:(1)一實況串流壓縮器3121L-3125L,其基於頻道反饋3161-3165調適經壓縮之視訊串流,及(2)一HQ串流壓縮器,其輸出一全解析度HQ串流,如上所述。值得注意,該實況串流壓縮器為動態及自適應的,從而利用與用戶端205之雙向通信,而HQ串流壓縮器為非自適應及單向的。串流之間的其他差異在於,實況串流品質可視頻道條件及視訊材料之性質顯著改變。一些圖框可能品質很差,且可能有圖框被丟棄。此外,實況串流幾乎可全部為P圖框或P影像塊,而I圖框或I影像塊很少出現。HQ串流通常具有比實況串流高得多的資料速率,且HQ串流將提供一致高品質且不丟棄任何圖框。HQ串流可全部為I圖框,或可具有頻繁及/或規則之I圖框或I影像塊。HQ串流亦可包括B圖框或B影像塊。
在一實施例中,在發送至入埠路由3141以進行如先前所描述之路由之前,共用視訊按比例調整及重新壓縮3142(將在下文中詳述)僅選擇特定HQ視訊串流3121H1-3125H1來按比例調整及以一或多個不同解析度來重新壓縮。其他HQ視訊串流係以其完整大小通過而到達入埠路由3141以進行如先前所描述之路由,或並不完全通過。在一實施例中,基於是否存在請求在特定解析度(或一接近經按比例調整之解析度或全解析度)下之特定HQ串流之應用程式/遊戲伺服器3121-3125,來確定對按比例調整及重新壓縮哪些HQ串流及/或哪些HQ串流完全通過的決策。經由此手段,經按比例調整且重新壓縮(或可能完全通過)的HQ串流僅為實際需要的HQ串流。在主機代管服務210之許多應用中,此導致按比例調整及壓縮資源之急劇減少。此外,若每一HQ串流由壓縮器3121H1-3125H1至少以其全解析度來壓縮,則待投送至且在共用視訊按比例調整及重新壓縮3142內所需之頻寬比接受之未經壓縮之視訊所需的頻寬顯著減少。舉例而言,一3 GBps之未經壓縮之1080p60串流可壓縮至10 Mbps且仍保持極高品質。因此,對於十億位元乙太網路連接性,並非不能載運一未經壓縮之3 Gbps視訊串流,可能載運許多個10 Mbps視訊串流且品質無明顯降低。
圖31f展示共用視訊按比例調整及重新壓縮3142之細節以及許多HQ視訊壓縮器HQ 3121H1-3131H1。根據來自應用程式/遊戲伺服器3121-3125的對按比例調整至特定大小之特定視訊串流之請求,內部路由3192通常選擇來自HQ視訊壓縮器HQ 3121H1-3131H1之經壓縮之HQ串流之一子集。一在串流之此選定子集中的串流在所請求之該串流經按比例調整的情況下係經由解壓縮器3161-3164投送,或在所請求之該串流具有全解析度的情況下在未經按比例調整之視訊路徑3196上投送。該等待按比例調整之串流將由解壓縮器3161-3164解壓縮為未經壓縮之視訊,接著由按比例調整器3171-3174將每一未經壓縮之視訊按比例調整至所請求之大小,接著由壓縮器3181-3184壓縮每一經按比例調整之視訊。請注意,若請求在一個以上解析度下之一特定HQ串流,則內部路由3192(使用此項技術之從業者所熟知的IP多播技術)將該串流多播至一或多個解壓縮器3161-3164且(在該串流以全解析度具有一所請求大小的情況下)多播至出埠路由3193。接著將所有該等所請求之串流(不論是經按比例調整(來自壓縮器3181-3184)或是未經按比例調整(來自內部路由3192))發送至出埠路由3193。路由3193接著將每一所請求之串流發送至請求該串流之應用程式/遊戲伺服器3121-3125。在一實施例中,若一個以上應用程式/遊戲伺服器請求在相同解析度下之同一串流,則出埠路由3193將該串流多播至發出該請求的所有應用程式/遊戲伺服器3121-3125。
在共用視訊按比例調整及重新壓縮3142之當前較佳實施例中,投送係使用十億位元乙太網路交換器實施,且解壓縮、按比例調整及壓縮係由實施每一功能之離散專門半導體器件來實施。相同功能性可以較高整合度實施於硬體中或由極快處理器實施。
圖31e展示主機代管服務210之另一實施例,其中延遲緩衝器3115之功能(先前已描述)在一共用視訊延遲緩衝器、按比例調整及解壓縮子系統3143中實施。在圖31g中展示子系統3143之細節。除以下操作之外,子系統3143之操作類似於圖31f中所示之子系統3142之操作:3191首先根據來自應用程式/遊戲伺服器3121-3125之請求選擇將投送之HQ視訊串流,且接著經由在當前較佳實施例中實施為一RAID陣列之延遲緩衝器3194(但可實施於具有足夠頻寬及容量之任何儲存媒體中)投送請求延遲之HQ串流,且經由未經延遲之視訊路徑3195投送未請求延遲之串流。接著由內部路由3192基於所請求之串流是經按比例調整或是未經按比例調整來投送延遲緩衝器3194及未經延遲之視訊3195兩者之輸出。經由解壓縮器3161-3164、按比例調整器3171-3174及壓縮器3181-3184將經按比例調整之串流投送至出埠路由3193,且亦將未經按比例調整之視訊3196發送至出埠路由3193,接著,出埠路由3193接著在單播或多播模式下將該視訊發送至應用程式/遊戲伺服器,其方式與圖31f之子系統3142中先前所描述之方式相同。
在圖31h中展示共用視訊延遲緩衝器、按比例調整及解壓縮子系統3143之另一實施例。在此實施例中,為每一HQ串流提供一個別延遲緩衝器HQ 3121D-HQ 3131D。若RAM及快閃ROM(其可用以延遲一個別經壓縮之視訊串流)之成本迅速下降,則此可變得比具有共用延遲緩衝器3194便宜及/或靈活。或者,在又一實施例中,單一延遲緩衝器3197(以虛線展示)可提供個別地處於一高效能集體資源(例如,極快RAM、快閃記憶體或磁碟)中之所有HQ串流之延遲。在任何情境下,每一延遲緩衝器HQ 3121D-3131D能夠可變地延遲一來自HQ視訊源之串流,或使該串流在未經延遲的情況下通過。在另一實施例中,每一延遲緩衝器能夠提供具有不同延遲量的多個串流。所有延遲或無延遲由應用程式/遊戲服務3121-3125請求。在所有此等情況 下,經延遲及未經延遲之視訊串流3198被發送至內部路由3192,且前進通過子系統3143之剩餘部分,如先前關於圖31g所描述。
在關於各種圖31n之先前實施例中,請注意,實況串流利用一雙向連接且為一特定使用者特製而具有最小延時。HQ串流利用單向連接且為單播及多播兩者。請注意,雖然在此等圖中將多播功能說明為一單一單元(諸如,可實施於十億位元乙太網路交換器中),但在一大型系統中,多播功能很可能經由一具有多個交換器之樹實施。實際上,在一來自一頂級視訊遊戲玩家之視訊串流的情況下,情況很可能如下:上百萬的使用者同時觀看該玩家之HQ串流。在此情況下,可能有後繼級中之許多個別交換器在廣播該經多播之HQ串流。
為了診斷目的及提供反饋給使用者(例如,讓使用者知道其遊戲表演之風行度),在一實施例中,主機代管服務210將記錄每一應用程式/遊戲伺服器3121-3125之視訊串流同時有多少觀眾。可藉由保持由應用程式/遊戲伺服器對一特定視訊串流之有效請求之數目的執行計數來實現此記錄。因此,一同時具有100,000個觀眾之玩家將知道其遊戲玩法非常風行,且其將成為遊戲玩家更好地表現且吸引觀眾之動機。當視訊串流(例如,一視訊遊戲錦標賽)有非常多的電視觀眾時,可能需要評論員在視訊遊戲比賽期間發言,使得觀看多播之一些或全部使用者可聽到其解說。
在該等應用程式/遊戲伺服器上執行的應用程式及遊戲應具備一應用程式介面(API),在API中,應用程式及/或遊戲可提交對具有特定特性(例如,解析度及延遲之量)之特定視訊串流之請求。此外,服從於一在應用程式/遊戲伺服器上執行之作業環境或圖4a之一主機代管服務控制系統的此等API可由於種種原因而拒絕此等請求。舉例而言,所請求之視訊串流可能具有特定許可權限限制(例如,使得其僅可由一單一觀眾觀看,而不廣播至其他觀眾),可能存在訂用限制(例如,觀眾可能必須為能夠觀看該串流付費),可能存在年齡限制(例如,觀眾可能必須滿18歲才能觀看該串流),可能存在隱私限制(例如,使用該應用程式或玩該遊戲之人可將觀看限於僅選定數目或類別之觀眾(例如,其「友人」),或可能根本不允許觀看),且可能存在要求延遲材料之限制(例如,在使用者正在玩一可能洩露其位置的盜竊遊戲之情況下)。存在可能限制串流之觀看的許多其他限制。在此等情況中之任一情況下,可在說明拒絕原因的情況下拒絕應用程式/遊戲伺服器之請求,且在一實施例中,用替代方法接受請求(例如,說明必須為訂用而支付的費用)。
可將儲存於之前實施例中之任一者中的延遲緩衝器中之HQ視訊串流導出至在主機代管服務210之外的其他目的地。舉例而言,一特別有趣之視訊串流可由一應用程式/遊戲伺服器請求(通常根據一使用者之請求)以導出至YouTube。在此情況下,該視訊串流可與適當描述性資訊(例如,玩遊戲的使用者之姓名、時間、分數等)一起以一YouTube同意之格式經由網際網路傳輸。可藉由在一單獨串流中將解說音訊多播至請求此解說之所有Game/App伺服器3121-3125來實施此傳輸。該等Game/App伺服器可使用此項技術之從業者所熟知的音訊混合技術將解說之音訊合併至發送至使用者場所211之音訊串流中。肯定存在多個評論員(例如,具有不同觀點,或使用不同語言),且使用者可在其中進行選擇。
以一類似方式,單獨音訊串流可混合在主機代管服務210中之特定視訊串流(或個別串流)之聲道中或充當該聲道之替代物,從而混合或替代來自即時串流之或來自一延遲緩衝器之視訊之音訊。此音訊可為解說或旁白,或該音訊可為該視訊串流中之角色提供聲音。此可使機械動畫(使用者自視訊遊戲視訊串流產生之動畫)能夠由使用者容易地產生。
本文件中所描述之視訊串流經展示為自應用程式/遊戲伺服器之視訊輸出擷取,且接著經串流及/或延遲且以各種方式再使用或散佈。可使用相同延遲緩衝器保存來自非應用程式/遊戲伺服器源之視訊材料且提供相同程度之播放及散佈靈活性(具有適當限制)。此等源包括來自電視台的實況饋送(或以空中方式或以非空中方式(諸如CNN),且或收費(諸如HBO)或免費)。此等源亦包括預先記錄之電影或電視節目、家庭電影、廣告以及實況視訊電話會議饋送。實況饋送可像一Game/App伺服器之實況輸出一樣處置。預先記錄之材料可像一延遲緩衝器之輸出一樣處置。
在一實施例中,本文中所說明之各種功能模組及相關聯步驟可由含有用於執行該等步驟之固線式邏輯(諸如,特殊應用積體電路(ASIC))之特定硬體組件執行,或由程式化之電腦組件與定製硬體組件之任何組合來執行。
在一實施例中,該等模組可實施於諸如Texas Instruments之TMS320x架構(例如,TMS320C6000、TMS320C5000等)的可程式化數位信號處理器(「DSP」)上。可使用各種不同DSP而仍符合此等基本原理。
實施例可包括如上文所陳述之各種步驟。該等步驟可具體化為使一通用或專用處理器執行特定步驟之機器可執行指令。與此等基本原理無關之各種元件(諸如,電腦記憶體、硬碟機、輸入器件)已自諸圖之一些或全部中省去以避免使相關態樣模糊。
所揭示之標的之元件亦可提供為用於儲存機器可執行指令之一機器可讀媒體。該機器可讀媒體可包括(但不限於)快閃記憶體、光碟、CD-ROM、DVD ROM、RAM、EPROM、EEPROM、磁卡或光卡、傳播媒體或其他類型的適合儲存電子指令之機器可讀媒體。舉例而言,本發明可作為一電腦程式而被下載,其可經由一通信鏈路(例如,一數據機或網路連接)藉由具體化於一載波或其他傳播媒體中之資料信號自一遠端電腦(例如,一伺服器)傳送至一請求電腦(例如,一用戶端)。
應理解,所揭示之標的之元件亦可提供為一電腦程式產品,該電腦程式產品可包括一儲存有指令之機器可讀媒體,該等指令可用以程式化一電腦(例如,一處理器或其他電子器件)以執行一系列操作。或者,該等操作可由硬體與軟體之一組合執行。該機器可讀媒體可包括(但不限於)軟碟、光碟、CD-ROM及磁光碟、ROM、RAM、EPROM、EEPROM、磁卡或光卡、傳播媒體或其他類型的適合儲存電子指令之媒體/機器可讀媒體。舉例而言,所揭示之標的之元件可作為一電腦程式產品而被下載,其中該程式可經由一通信鏈路(例如,一數據機或網路連接)藉由具體化於一載波或其他傳播媒體中之資料信號自一遠端電腦或電子器件傳送至一請求處理程序。
另外,雖然已結合特定實施例描述了所揭示之標的,但許多修改及更改仍在本發明之範疇內。因此,自說明意義而非限制意義考慮說明書及圖式。
100...CPU/GPU
101...隨機存取記憶體(RAM)
102...顯示器件
103...硬碟機
104...光碟機
105...網路連接
106...遊戲控制器
205...用戶端器件
206...網際網路
210...主機代管服務
210a...主機代管服務
210b...主機代管服務
211...使用者場所
220...遊戲或應用程式開發者
221...外部輸入器件
222...內部或外部顯示器件
301...標稱最大資料速率
302...實際可用最大資料速率
303...資料速率
401...主機代管服務控制系統
402...伺服器
403...儲存區域網路(SAN)
404...低延時視訊壓縮邏輯
405...獨立磁碟冗餘陣列(RAID)
406...控制信號
406a...控制信號
406b...控制信號
409...路由邏輯
410...網際網路
412...低延時視訊解壓縮邏輯
413...控制信號邏輯
415...用戶端
421...輸入器件
422...顯示器件
440...網際網路旁路服務
441...WAN介面
442...WAN介面
443...防火牆/路由器/網路位址轉譯(NAT)器件
451...控制信號
452...使用者場所路由
453...使用者ISP之往返延時
454...網際網路之往返延時
455...單向路由延時
456...最大單向延時
457...單向延時
458...視訊解壓縮延時
462...乙太網路插口
463...HDMI連接器
464...顯示能力
465...家庭或辦公室用戶端器件
466...快門眼鏡
468...顯示器件/標準清晰度電視(SDTV)或高清晰度電視(HDTV)/監視器
469...輸入器件
472...網際網路連接
475...家庭或辦公室用戶端器件
476...快閃記憶體
477...視訊相機
478...顯示器件
479...藍芽輸入器件/有線USB輸入器件
480...匯流排
481...乙太網路介面
482...WiFi子系統
483...控制CPU
484...藍芽介面
485...USB子系統
486...視訊解壓縮器
487...視訊輸出子系統
488...音訊解壓縮子系統
489...音訊輸出子系統
490...高清晰度多媒體介面(HDMI)介面
491...DVI-I
492...S視訊
493...複合視訊
494...數位介面
495...立體聲類比介面
497...具有乙太網路電源(PoE)之乙太網路
499...電源
501...個別視訊圖框
502...個別視訊圖框
503...個別視訊圖框
511...經壓縮之圖框
512...經壓縮之圖框
513...經壓縮之圖框
520...壓縮邏輯
560...未經壓縮之視訊圖框
561...未經壓縮之視訊圖框
611...I圖框
612...P圖框
613...P圖框
620...壓縮邏輯
621...額定最大資料速率
622...可用最大資料速率
623...I圖框所需之峰值資料速率
624...視訊串流資料速率
633...I圖框峰值
634...視訊串流資料速率序列
635...P圖框峰值
636...P圖框峰值
670...B圖框
671...I圖框
701-760...未經壓縮之圖框
711-770...R圖框
721-770...未經壓縮之圖框
731-780...R圖框
805...角色
811...R圖框
812...R圖框
922...可用最大資料速率
934...視訊串流資料速率
941...峰值資料速率
942...2倍峰值資料速率
943...3倍峰值資料速率
944...4倍峰值資料速率
952...2倍峰值
953...平坦化2倍峰值
954...平坦化4倍峰值
955...平坦化4倍峰值
961-970...未經壓縮之圖框
981...經壓縮之圖框1
982...經壓縮之圖框2
983...經壓縮之圖框3
985...經壓縮之圖框5
986...經壓縮之圖框6
987...經壓縮之圖框10
991...傳輸時間
992...傳輸時間
993...傳輸時間
995...傳輸時間
996...傳輸時間
997...傳輸時間
1001...封包
1002...封包
1003...封包
1004...封包
1005...封包
1010...影像塊包裝邏輯
1100...I影像塊
1101...前向錯誤更正(FEC)碼
1103...I影像塊
1104...FEC碼
1105...FEC碼
1110...音訊封包
1111...FEC碼
1112...音訊封包
1120...使用者輸入命令
1121...FEC碼
1122...使用者輸入命令
1123...FEC碼
1200...多核心及/或多處理器
1201-1208...核心
1205...4x2配置
1300...主機代管服務210伺服器中心
1301...網路
1501...入埠網際網路訊務
1502...入埠路由
1511...獨立磁碟冗餘陣列(RAID)
1512...RAID陣列
1515...RAID陣列
1521...應用程式/遊戲(「app/game」)伺服器
1522...應用程式/遊戲伺服器
1525...應用程式/遊戲伺服器
1529...未經壓縮之視訊/音訊
1530...共用視訊壓縮/共用硬體壓縮
1539...經壓縮之視訊/音訊
1540...出埠路由
1550...延遲緩衝器及/或群組視訊的視訊路徑
1551...路徑
1552...路徑
1599...出埠網際網路訊務
1600...「縮圖」視訊視窗
1601...黃色選擇方塊
1602...遊戲資訊
1700...視訊視窗
1800...箭頭
1801...覆疊圖
1900...視訊及音訊
2000...視訊
2001...實況視訊
2002...視訊片段
2003...視訊片段/炫耀剪輯
2004...展示一炫耀剪輯已被觀看之次數的數字
2005...匙孔形狀之圖符
2400...線
2401...1.5Mbps之連接速度
2402...12 Mbps之連接速度
2403...96 Mbps之連接速度
2500...編碼器
2501...反饋頻道
2502...解碼器
2510...圖框
2600...編碼器
2601...反饋頻道
2602...解碼器
2605...未經壓縮之影像塊/圖框
2606...P影像塊/圖框
2607...經解壓縮之影像塊/圖框
2610...記憶體器件
2611...編碼器之過去狀態
2620...記憶體器件
2621...解碼器之過去狀態
2700a...狀態管理邏輯
2700b...狀態管理邏輯
2701a...執行中遊戲
2701b...最後遊戲影像
2702a...遊戲之「遊戲原狀」影像
2702b...遊戲原狀影像
2705a...儲存器件
2710...平台相依性資料
2800...差異資料
2900...解碼器
2901...下載器應用程式
2902...編碼器
2903...用戶端下載器應用程式
2910...內容
3001...R圖框
3002...R圖框
3003...R圖框
3004...R圖框
3100...編碼器
3101...入埠網際網路連接
3102...解碼器
3110...HQ串流
3111...「實況」串流
3111...RAID陣列
3112...串流重播邏輯
3112...RAID陣列
3115...RAID陣列
3121~3125...應用程式/遊戲伺服器
3121H...「HQ」串流
3121L...「實況」串流
3122H...「HQ」串流
3122L...「實況」串流
3125H...「HQ」串流
3125L...「實況」串流
3140...出埠路由邏輯
3141...入埠路由邏輯
3142...共用視訊按比例調整及重新壓縮
3143...共用視訊延遲緩衝器、按比例調整及解壓縮子系統
3151...信號路徑
3152...信號路徑
3161...解壓縮器
3161~3165...頻道反饋信號
3162...解壓縮器
3163...解壓縮器
3164...解壓縮器
3171...按比例調整器
3172...按比例調整器
3173...按比例調整器
3174...按比例調整器
3181...壓縮器
3182...壓縮器
3183...壓縮器
3184...壓縮器
3191...入埠路由
3192...內部路由
3193...出埠路由
3194...延遲緩衝器
3195...未經延遲之視訊路徑
3196...未經按比例調整之視訊路徑
3197...單一延遲緩衝器
3198...經延遲及未經延遲之視訊串流
HQ 3121D~HQ 3131D...延遲緩衝器
HQ 3121H1~HQ 3131H1 HQ...視訊壓縮器
HS-1-HS-6...伺服器中心
T1-T8...影像塊
圖1說明一先前技術視訊遊戲系統之架構。
圖2a至圖2b說明一根據一實施例之高階系統架構。
圖3說明一用戶端與一伺服器之間的通信之實際、額定及所需資料速率。
圖4a說明根據一實施例使用之一主機代管服務及一用戶端。
圖4b說明相關聯於一用戶端與一主機代管服務之間的通信之例示性延時。
圖4c說明一根據一實施例之用戶端器件。
圖4d說明一根據另一實施例之用戶端器件。
圖4e說明圖4c中之用戶端器件之實例方塊圖。
圖4f說明圖4d中之用戶端器件之實例方塊圖。
圖5說明根據一實施例可使用之視訊壓縮之實例形式。
圖6a說明在另一實施例中可使用之視訊壓縮之實例形式。
圖6b說明與傳輸一低複雜性、低動作性之視訊序列相關聯之資料速率之峰值。
圖6c說明與傳輸一高複雜性、高動作性之視訊序列相關聯之資料速率之峰值。
圖7a至圖7b說明一實施例中所使用之實例視訊壓縮技術。
圖8說明一實施例中所使用之額外實例視訊壓縮技術。
圖9a至圖9c說明本發明之一實施例中所使用之圖框速率處理技術。
圖10a至圖10b說明一將影像影像塊有效率地包裝在封包內之實施例。
圖11a至圖11d說明使用前向錯誤更正技術之實施例。
圖12說明一將多個多核心處理單元用於壓縮之實施例。
圖13a至圖13b說明根據各種實施例的主機代管服務之間的地理定位及通信。
圖14說明相關聯於一用戶端與一主機代管服務之間的通信之例示性延時。
圖15說明一實例主機代管服務伺服器中心架構。
圖16說明一包括複數個實況視訊視窗之使用者介面之一實施例的實例螢幕擷取畫面。
圖17說明圖16之使用者介面在選擇一特定視訊視窗之後的圖。
圖18說明圖17之使用者介面在將該特定視訊視窗縮放至全螢幕大小之後的圖。
圖19說明覆疊於一多人遊戲之螢幕上的實例合作使用者視訊資料。
圖20說明一遊戲玩家在一主機代管服務上的實例使用者頁面。
圖21說明一實例3D互動式廣告。
圖22說明用於自一實況表演之表面擷取產生一具有紋理表面之相片真實感化影像的步驟之一實例序列。
圖23說明一允許選擇線性媒體內容之實例使用者介面頁面。
圖24為說明在網頁實況播送之前經過的時間之量與連接速度的關係曲線圖。
圖25a至圖25b說明本發明之使用自用戶端器件至主機代管服務之反饋頻道的實施例。
圖26a至圖26b說明一基於已成功接收之最後一個已知影像塊/圖框來編碼影像塊/圖框之實施例。
圖27a至圖27b說明一將一遊戲或應用程式之狀態自一第一主機代管服務或伺服器移植至一第二主機代管服務或伺服器之實施例。
圖28說明使用差異資料移植一遊戲或應用程式之狀態之實施例。
圖29說明本發明之使用用戶端器件上之一臨時解碼器的實施例。
圖30根據本發明之一實施例說明「I影像塊」如何跨越「R圖框」分散。
圖31a至圖31h說明本發明之產生一實況串流及/或一或多個HQ串流的實施例。
205...用戶端器件
210...主機代管服務
2900...解碼器
2901...下載器應用程式
2902...編碼器
2903...用戶端下載器應用程式
2910...內容

Claims (24)

  1. 一種用於主機代管線上應用程式或視訊遊戲、執行視訊壓縮的電腦實施及傳輸視訊之方法,其包含:自一使用者接收用於玩一低延時視訊遊戲或執行產生一視訊輸出之一應用程式之一請求;當該使用者正在玩該視訊遊戲或使用該應用程式及有反應地在該伺服器上執行該視訊遊戲或應用程式以產生包含該視訊遊戲或應用程式之影像之一序列之該視訊輸出時,在一伺服器處接收信號,該等信號經由包括公眾組件之一網路傳輸;編碼該視訊輸出以產生經壓縮之視訊影像之一序列,其中編碼包含:編碼第一複數個視訊圖框或其部分,其中每一經編碼之視訊圖框或其部分分別相依於一先前經編碼之視訊圖框或其部分;將該第一複數個經編碼之視訊圖框或部分傳輸至一用戶端器件;自該用戶端器件接收反饋資訊,該反饋資訊可用以判定是否尚未成功接收及/或解碼該等視訊圖框或部分中所含有之資料;及回應於偵測到尚未成功接收及/或解碼一視訊圖框或其部分,相依於已知已在該用戶端器件處成功接收及/或解碼之該先前經編碼之視訊圖框或其部分編碼一當前視訊圖框或其部分; 將經壓縮之視訊影像之該序列經由該網路傳輸至該用戶端器件;解壓縮在該用戶端器件上之該等經壓縮之視訊影像之該序列;其中接收信號、執行該視訊遊戲或應用程式、編碼該視訊輸出、傳輸該等經壓縮之視訊影像之該序列及解壓縮該等經壓縮之視訊影像之該序列之該等操作係在一延時中執行,使得該使用者具有該經選擇之視訊遊戲或應用程式立即回應於該等信號的感覺。
  2. 如請求項1之方法,其中已知已成功接收及/或解碼之該先前經編碼之視訊圖框或其部分包含已知已成功接收及/或解碼的最後一個已知視訊圖框或其部分。
  3. 如請求項1之方法,其中該等視訊圖框或其部分分別包含多個P圖框或多個P影像塊。
  4. 如請求項1之方法,其中該反饋資訊包含已在該用戶端器件處成功接收及/或解碼該等圖框或其部分之一指示。
  5. 如請求項1之方法,其中該反饋資訊包含尚未在該用戶端器件處成功接收及/或解碼該等圖框或其部分之一指示。
  6. 如請求項1之方法,其中相依於已知已在該用戶端器件處成功接收及/或解碼之一先前經編碼之視訊圖框或其部分編碼一當前視訊圖框或其部分進一步包含:自一記憶體擷取一先前狀態,該先前狀態包含一編碼器在編碼該先前經編碼之視訊圖框或部分之後的一狀 態。
  7. 如請求項6之方法,其進一步包含:解碼該當前視訊圖框或其部分,其中解碼包含自該記憶體擷取該先前狀態,該先前狀態包含一解碼器在解碼該先前經編碼之視訊圖框或部分之後的一狀態。
  8. 如請求項1之方法,其進一步包含:在該用戶端器件處解碼該等經編碼之視訊圖框或其部分;及在該用戶端器件上之一顯示器上顯示與該等視訊圖框或其部分中之每一者相關聯之影像。
  9. 一種包含用於儲存程式碼之一記憶體及一處理器之系統,該處理器用於處理該程式碼以執行以下操作:自一使用者接收用於玩一低延時視訊遊戲或執行產生一視訊輸出之一應用程式之一請求;當該使用者正在玩該視訊遊戲或使用該應用程式及有反應地在該伺服器上執行該視訊遊戲或應用程式以產生包含該視訊遊戲或應用程式之影像之一序列之該視訊輸出時,在一伺服器處接收信號,該等信號經由包括公眾組件之一網路傳輸;編碼該視訊輸出以產生經壓縮之視訊影像之一序列,其中編碼包含:編碼第一複數個視訊圖框或其部分,其中每一經編碼之視訊圖框或其部分分別相依於一先前經編碼之視訊圖框或其部分; 將該第一複數個經編碼之視訊圖框或部分傳輸至一用戶端器件;自該用戶端器件接收反饋資訊,該反饋資訊可用以判定是否尚未成功接收及/或解碼該等視訊圖框或部分中所含有之資料;及回應於偵測到尚未成功接收及/或解碼一視訊圖框或其部分,相依於已知已在該用戶端器件處成功接收及/或解碼之該先前經編碼之視訊圖框或其部分編碼一當前視訊圖框或其部分;將經壓縮之視訊影像之該序列經由該網路傳輸至該用戶端器件;解壓縮在該用戶端器件上之該等經壓縮之視訊影像之該序列;其中接收信號、執行該視訊遊戲或應用程式、編碼該視訊輸出、傳輸該等經壓縮之視訊影像之該序列及解壓縮該等經壓縮之視訊影像之該序列之該等操作係在一延時中執行,使得該使用者具有該經選擇之視訊遊戲或應用程式立即回應於該等信號的感覺。
  10. 如請求項9之系統,其中已知已成功接收及/或解碼之該先前經編碼之視訊圖框或其部分包含已知已成功接收及/或解碼的最後一個已知視訊圖框或其部分。
  11. 如請求項9之系統,其中該等視訊圖框或其部分分別包含多個P圖框或多個P影像塊。
  12. 如請求項9之系統,其中該反饋資訊包含已在該用戶端 器件處成功接收及/或解碼該等圖框或其部分之一指示。
  13. 如請求項9之系統,其中該反饋資訊包含尚未在該用戶端器件處成功接收及/或解碼該等圖框或其部分之一指示。
  14. 如請求項9之系統,其中相依於已知已在該用戶端器件處成功接收及/或解碼之一先前經編碼之視訊圖框或其部分編碼一當前視訊圖框或其部分進一步包含:自一記憶體擷取一先前狀態,該先前狀態包含一編碼器在編碼該先前經編碼之視訊圖框或部分之後的一狀態。
  15. 如請求項14之系統,其包含用以使該處理器執行以下操作之額外程式碼:解碼該當前視訊圖框或其部分,其中解碼包含自該記憶體擷取該先前狀態,該先前狀態包含一解碼器在解碼該先前經編碼之視訊圖框或部分之後的一狀態。
  16. 如請求項9之系統,其包含用以使該處理器執行以下操作之額外程式碼:在該用戶端器件處解碼該等經編碼之視訊圖框或其部分;及在該用戶端器件上之一顯示器上顯示與該等視訊圖框或其部分中之每一者相關聯之影像。
  17. 一種儲存有程式碼之非暫態機器可讀媒體,該程式碼在由一機器執行時使該機器執行以下操作:自一使用者接收用於玩一低延時視訊遊戲或執行產生 一視訊輸出之一應用程式之一請求;當該使用者正在玩該視訊遊戲或使用該應用程式及有反應地在該伺服器上執行該視訊遊戲或應用程式以產生包含該視訊遊戲或應用程式之影像之一序列之該視訊輸出時,在一伺服器處接收信號,該等信號經由包括公眾組件之一網路傳輸;編碼該視訊輸出以產生經壓縮之視訊影像之一序列,其中編碼包含:編碼第一複數個視訊圖框或其部分,其中每一經編碼之視訊圖框或其部分分別相依於一先前經編碼之視訊圖框或其部分;將該第一複數個經編碼之視訊圖框或部分傳輸至一用戶端器件;自該用戶端器件接收反饋資訊,該反饋資訊可用以判定是否尚未成功接收及/或解碼該等視訊圖框或部分中所含有之資料;及回應於偵測到尚未成功接收及/或解碼一視訊圖框或其部分,相依於已知已在該用戶端器件處成功接收及/或解碼之該先前經編碼之視訊圖框或其部分編碼一當前視訊圖框或其部分;將經壓縮之視訊影像之該序列經由該網路傳輸至該用戶端器件;解壓縮在該用戶端器件上之該等經壓縮之視訊影像之該序列; 其中接收信號、執行該視訊遊戲或應用程式、編碼該視訊輸出、傳輸該等經壓縮之視訊影像之該序列及解壓縮該等經壓縮之視訊影像之該序列之該等操作係在一延時中執行,使得該使用者具有該經選擇之視訊遊戲或應用程式立即回應於該等信號的感覺。
  18. 如請求項17之非暫態機器可讀媒體,其中已知已成功接收及/或解碼之該先前經編碼之視訊圖框或其部分包含已知已成功接收及/或解碼的最後一個已知視訊圖框或其部分。
  19. 如請求項17之非暫態機器可讀媒體,其中該等視訊圖框或其部分分別包含多個P圖框或多個P影像塊。
  20. 如請求項17之非暫態機器可讀媒體,其中該反饋資訊包含已在該用戶端器件處成功接收及/或解碼該等圖框或其部分之一指示。
  21. 如請求項17之非暫態機器可讀媒體,其中該反饋資訊包含尚未在該用戶端器件處成功接收及/或解碼該等圖框或其部分之一指示。
  22. 如請求項17之非暫態機器可讀媒體,其中相依於已知已在該用戶端器件處成功接收及/或解碼之一先前經編碼之視訊圖框或其部分編碼一當前視訊圖框或其部分進一步包含:自一記憶體擷取一先前狀態,該先前狀態包含一編碼器在編碼該先前經編碼之視訊圖框或部分之後的一狀態。
  23. 如請求項22之非暫態機器可讀媒體,其包含用以使該機器執行以下操作之額外程式碼:解碼該當前視訊圖框或其部分,其中解碼包含自該記憶體擷取該先前狀態,該先前狀態包含一解碼器在解碼該先前經編碼之視訊圖框或部分之後的一狀態。
  24. 如請求項17之非暫態機器可讀媒體,其包含用以使該處理器執行以下操作之額外程式碼:在該用戶端器件處解碼該等經編碼之視訊圖框或其部分;及在該用戶端器件上之一顯示器上顯示與該等視訊圖框或其部分中之每一者相關聯之影像。
TW099108416A 2009-03-23 2010-03-22 使用包括與成功接收視訊內容相關之資料之反饋的視訊壓縮方法及系統 TWI528832B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US21088809P 2009-03-23 2009-03-23
US12/538,096 US8526490B2 (en) 2002-12-10 2009-08-07 System and method for video compression using feedback including data related to the successful receipt of video content

Publications (2)

Publication Number Publication Date
TW201119404A TW201119404A (en) 2011-06-01
TWI528832B true TWI528832B (zh) 2016-04-01

Family

ID=42781397

Family Applications (1)

Application Number Title Priority Date Filing Date
TW099108416A TWI528832B (zh) 2009-03-23 2010-03-22 使用包括與成功接收視訊內容相關之資料之反饋的視訊壓縮方法及系統

Country Status (14)

Country Link
US (1) US8526490B2 (zh)
EP (1) EP2412158A4 (zh)
JP (1) JP2012521720A (zh)
KR (1) KR101786122B1 (zh)
CN (1) CN102428699A (zh)
AU (1) AU2010229091A1 (zh)
BR (1) BRPI1012320B1 (zh)
CA (1) CA2756681A1 (zh)
IL (1) IL215302A0 (zh)
MX (1) MX2011009971A (zh)
RU (1) RU2011142767A (zh)
SG (1) SG174906A1 (zh)
TW (1) TWI528832B (zh)
WO (1) WO2010111095A1 (zh)

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9192859B2 (en) * 2002-12-10 2015-11-24 Sony Computer Entertainment America Llc System and method for compressing video based on latency measurements and other feedback
US9032465B2 (en) 2002-12-10 2015-05-12 Ol2, Inc. Method for multicasting views of real-time streaming interactive video
US8832772B2 (en) 2002-12-10 2014-09-09 Ol2, Inc. System for combining recorded application state with application streaming interactive video output
US8711923B2 (en) * 2002-12-10 2014-04-29 Ol2, Inc. System and method for selecting a video encoding format based on feedback data
US20090118019A1 (en) 2002-12-10 2009-05-07 Onlive, Inc. System for streaming databases serving real-time applications used through streaming interactive video
US8387099B2 (en) 2002-12-10 2013-02-26 Ol2, Inc. System for acceleration of web page delivery
US8840475B2 (en) 2002-12-10 2014-09-23 Ol2, Inc. Method for user session transitioning among streaming interactive video servers
US8949922B2 (en) 2002-12-10 2015-02-03 Ol2, Inc. System for collaborative conferencing using streaming interactive video
US8893207B2 (en) 2002-12-10 2014-11-18 Ol2, Inc. System and method for compressing streaming interactive video
US9108107B2 (en) 2002-12-10 2015-08-18 Sony Computer Entertainment America Llc Hosting and broadcasting virtual events using streaming interactive video
US8468575B2 (en) 2002-12-10 2013-06-18 Ol2, Inc. System for recursive recombination of streaming interactive video
US20110126255A1 (en) 2002-12-10 2011-05-26 Onlive, Inc. System and method for remote-hosted video effects
US9003461B2 (en) 2002-12-10 2015-04-07 Ol2, Inc. Streaming interactive video integrated with recorded video segments
US8888592B1 (en) 2009-06-01 2014-11-18 Sony Computer Entertainment America Llc Voice overlay
US8147339B1 (en) 2007-12-15 2012-04-03 Gaikai Inc. Systems and methods of serving game video
US8968087B1 (en) 2009-06-01 2015-03-03 Sony Computer Entertainment America Llc Video game overlay
US8613673B2 (en) 2008-12-15 2013-12-24 Sony Computer Entertainment America Llc Intelligent game loading
US8926435B2 (en) 2008-12-15 2015-01-06 Sony Computer Entertainment America Llc Dual-mode program execution
US9723319B1 (en) 2009-06-01 2017-08-01 Sony Interactive Entertainment America Llc Differentiation for achieving buffered decoding and bufferless decoding
CN102036061B (zh) * 2009-09-30 2012-11-21 华为技术有限公司 视频数据传输处理、发送处理方法、装置和网络系统
US8560331B1 (en) 2010-08-02 2013-10-15 Sony Computer Entertainment America Llc Audio acceleration
KR102230426B1 (ko) 2010-09-13 2021-03-22 소니 인터랙티브 엔터테인먼트 아메리카 엘엘씨 부가기능의 관리
WO2012037170A1 (en) 2010-09-13 2012-03-22 Gaikai, Inc. Dual mode program execution and loading
KR101312268B1 (ko) 2010-12-24 2013-09-25 주식회사 케이티 클라우드 컴퓨팅 환경에서 게임 서비스 제공 방법, 클라우드 컴퓨팅 서버, 및 클라우드 컴퓨팅 시스템
US20120215507A1 (en) * 2011-02-22 2012-08-23 Utah State University Systems and methods for automated assessment within a virtual environment
US9561437B2 (en) 2012-09-17 2017-02-07 King.Com Ltd. Method for implementing a computer game
US20140171204A1 (en) * 2012-12-13 2014-06-19 Microsoft Corporation Asynchronous cloud rendered video delivery
US9592441B2 (en) 2013-02-19 2017-03-14 King.Com Ltd. Controlling a user interface of a computer device
US9079097B2 (en) 2013-02-19 2015-07-14 King.Com Ltd. Video game with replaceable tiles having selectable physics
US10828558B2 (en) 2013-02-19 2020-11-10 King.Com Ltd. Video game with spreading tile backgrounds for matched tiles
US8998725B2 (en) 2013-04-30 2015-04-07 Kabam, Inc. System and method for enhanced video of game playback
US9937418B2 (en) 2013-06-07 2018-04-10 King.Com Ltd. Computing device, game, and methods therefor
TWI513282B (zh) * 2013-11-21 2015-12-11 Mstar Semiconductor Inc 快取記憶體管理裝置及應用該快取記憶體管理裝置之動態影像系統及方法
US10207185B2 (en) * 2015-03-07 2019-02-19 Sony Interactive Entertainment America Llc Using connection quality history to optimize user experience
US10250928B2 (en) 2015-04-21 2019-04-02 Edge2020 Price driven multimedia content video time-bandwidth product improvement (VTBPI) reception
US10455237B2 (en) 2015-10-20 2019-10-22 International Business Machines Corporation Dynamic compression of multimedia content based on social and relational context
US10243638B2 (en) * 2016-10-04 2019-03-26 At&T Intellectual Property I, L.P. Forward error correction code selection in wireless systems
CN106507161B (zh) * 2016-11-29 2019-11-15 腾讯科技(深圳)有限公司 视频直播方法及直播装置
TWI644710B (zh) * 2017-07-28 2018-12-21 瑞昱半導體股份有限公司 允許多部遊戲機透過網路連線共同模擬同一單機多人遊戲的從端遊戲機中的控制電路
TWI653083B (zh) 2017-07-28 2019-03-11 瑞昱半導體股份有限公司 允許多部遊戲機透過網路連線共同模擬同一單機多人遊戲的主端遊戲機中的控制電路
US10741143B2 (en) * 2017-11-28 2020-08-11 Nvidia Corporation Dynamic jitter and latency-tolerant rendering
US11206297B2 (en) 2018-03-19 2021-12-21 Livescale Technologies Inc. Video streaming
US11729407B2 (en) 2018-10-29 2023-08-15 University Of Washington Saliency-based video compression systems and methods
US11020658B2 (en) 2019-03-20 2021-06-01 Electronic Arts Inc. System for testing command execution latency within a video game
US10963365B2 (en) * 2019-03-20 2021-03-30 Electronic Arts Inc. System for testing command execution latency within an application
US20210092424A1 (en) * 2019-09-23 2021-03-25 Ati Technologies Ulc Adaptive framerate for an encoder
US20220212100A1 (en) * 2021-01-04 2022-07-07 Microsoft Technology Licensing, Llc Systems and methods for streaming interactive applications
WO2023171376A1 (ja) * 2022-03-10 2023-09-14 ソニーセミコンダクタソリューションズ株式会社 符号化装置及び符号化方法

Family Cites Families (351)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IT1157128B (it) * 1982-12-09 1987-02-11 Cselt Centro Studi Lab Telecom Codificatore e decodificatore di messaggi a lunghezza variabile per sistemi di trasmissione dati
US4539706A (en) 1983-02-03 1985-09-03 General Electric Company Mobile vehicular repeater system which provides up-link acknowledgement signal to portable transceiver at end of transceiver transmission
US4582324A (en) * 1984-01-04 1986-04-15 Bally Manufacturing Corporation Illusion of skill game machine for a gaming system
US4616263A (en) 1985-02-11 1986-10-07 Gte Corporation Video subsystem for a hybrid videotex facility
US6614768B1 (en) 1989-04-28 2003-09-02 Broadcom Corporation Enhanced mobility and address resolution in a wireless premises based network
GB8910997D0 (en) 1989-05-12 1989-06-28 Tunstall Telecom Ltd Radio transmission system
US5058199A (en) 1990-05-02 1991-10-15 Motorola, Inc. Inter-truncked radio systems bridge protocol
US5222246A (en) 1990-11-02 1993-06-22 General Electric Company Parallel amplifiers with combining phase controlled from combiner difference port
JPH04275784A (ja) 1991-03-04 1992-10-01 Matsushita Electric Ind Co Ltd 映像信号切り換え装置
US5493644A (en) * 1991-07-11 1996-02-20 Hewlett-Packard Company Polygon span interpolator with main memory Z buffer
JPH0530000A (ja) * 1991-07-18 1993-02-05 Fujitsu Ltd 移動体通信方式
KR100254956B1 (ko) 1991-12-23 2002-12-18 코닌클리케 필립스 일렉트로닉스 엔.브이. 재귀비데오신호프로세서
US5357604A (en) 1992-01-30 1994-10-18 A/N, Inc. Graphics processor with enhanced memory control circuitry for use in a video game system or the like
US5926208A (en) 1992-02-19 1999-07-20 Noonen; Michael Video compression and decompression arrangement having reconfigurable camera and low-bandwidth transmission capability
EP0571138A3 (en) * 1992-05-20 1995-03-29 Codemasters Ltd Memory cartridge and interface for video game console.
US5842033A (en) * 1992-06-30 1998-11-24 Discovision Associates Padding apparatus for passing an arbitrary number of bits through a buffer in a pipeline system
WO1994001964A1 (en) 1992-07-08 1994-01-20 Bell Atlantic Network Services, Inc. Media server for supplying video and multi-media data over the public telephone switched network
FR2703199B1 (fr) * 1993-03-26 1995-06-02 Matra Communication Procédé de transmission radio-électrique utilisant des stations répétrices à retournement de spectre.
AU2123995A (en) 1994-03-18 1995-10-09 Micropolis Corporation On-demand video server system
CA2144253C (en) * 1994-04-01 1999-09-21 Bruce F. Naylor System and method of generating compressed video graphics images
JP3658011B2 (ja) * 1994-04-19 2005-06-08 キヤノン株式会社 画像符号化装置及びその方法、並びに画像復号化装置及びその方法
US5558339A (en) 1994-05-05 1996-09-24 Perlman; Stephen G. Network architecture to support recording and playback of real-time video games
US5586257A (en) 1994-05-05 1996-12-17 Perlman; Stephen G. Network architecture to support multiple site real-time video games
JPH07319747A (ja) 1994-05-24 1995-12-08 Nec Telecom Syst Ltd データ更新システム
US5606359A (en) 1994-06-30 1997-02-25 Hewlett-Packard Company Video on demand system with multiple data sources configured to provide vcr-like services
US6092117A (en) 1994-09-02 2000-07-18 Packard Bell Nec System and method for automatically reconnecting a wireless interface device to a host computer
US5654747A (en) 1994-12-29 1997-08-05 International Business Machines Corporation Intelligent multimedia set-top control method and apparatus in which billing signals are communicated to an information network upon presentation of downloaded media programs
NO960306L (no) * 1995-01-27 1996-07-29 Nec Corp Anordning ved mobil satelittkommunikasjon
US5618045A (en) * 1995-02-08 1997-04-08 Kagan; Michael Interactive multiple player game system and method of playing a game between at least two players
US6122482A (en) 1995-02-22 2000-09-19 Global Communications, Inc. Satellite broadcast receiving and distribution system
US5646676A (en) 1995-05-30 1997-07-08 International Business Machines Corporation Scalable interactive multimedia server system for providing on demand data
US5640386A (en) 1995-06-06 1997-06-17 Globalstar L.P. Two-system protocol conversion transceiver repeater
US5608412A (en) * 1995-06-07 1997-03-04 General Electric Company Protocol and mechanism for mutter mode communication for stationary master tracking unit
US5890055A (en) * 1995-07-28 1999-03-30 Lucent Technologies Inc. Method and system for connecting cells and microcells in a wireless communications network
US6132306A (en) 1995-09-06 2000-10-17 Cisco Systems, Inc. Cellular communication system with dedicated repeater channels
US5710719A (en) * 1995-10-19 1998-01-20 America Online, Inc. Apparatus and method for 2-dimensional data compression
US5732076A (en) * 1995-10-26 1998-03-24 Omnipoint Corporation Coexisting communication systems
US5742680A (en) * 1995-11-13 1998-04-21 E Star, Inc. Set top box for receiving and decryption and descrambling a plurality of satellite television signals
US5956088A (en) * 1995-11-21 1999-09-21 Imedia Corporation Method and apparatus for modifying encoded digital video for improved channel utilization
US5915020A (en) 1995-11-21 1999-06-22 Hughes Electronics Corporation Portable satellite earth station
US6331856B1 (en) 1995-11-22 2001-12-18 Nintendo Co., Ltd. Video game system with coprocessor providing high speed efficient 3D graphics and digital audio signal processing
US5999808A (en) 1995-12-12 1999-12-07 Aeris Communications, Inc. Wireless gaming method
US5682204A (en) * 1995-12-26 1997-10-28 C Cube Microsystems, Inc. Video encoder which uses intra-coding when an activity level of a current macro-block is smaller than a threshold level
US5872575A (en) * 1996-02-14 1999-02-16 Digital Media Interactive Method and system for the creation of and navigation through a multidimensional space using encoded digital video
US6160993A (en) 1996-02-23 2000-12-12 Scientific-Atlanta, Inc. Method and apparatus for command and control of remote systems using low earth orbit satellite communications
US6166703A (en) 1996-02-27 2000-12-26 Thomson Licensing S.A. Combination satellite and VHF/UHF receiving antenna
US5959592A (en) 1996-03-18 1999-09-28 Echostar Engineering Corporation "IF" bandstacked low noise block converter combined with diplexer
US6110041A (en) 1996-12-30 2000-08-29 Walker Digital, Llc Method and system for adapting gaming devices to playing preferences
US5741841A (en) * 1996-04-25 1998-04-21 Xerox Corporation Coating composition with stable viscosity
US6175854B1 (en) * 1996-06-11 2001-01-16 Ameritech Services, Inc. Computer system architecture and method for multi-user, real-time applications
US6292589B1 (en) 1996-06-21 2001-09-18 Compaq Computer Corporation Method for choosing rate control parameters in motion-compensated transform-based picture coding scheme using non-parametric technique
US5828370A (en) 1996-07-01 1998-10-27 Thompson Consumer Electronics Inc. Video delivery system and method for displaying indexing slider bar on the subscriber video screen
US6757913B2 (en) 1996-07-15 2004-06-29 Gregory D. Knox Wireless music and data transceiver system
US5751378A (en) 1996-09-27 1998-05-12 General Instrument Corporation Scene change detector for digital video
JP4034380B2 (ja) 1996-10-31 2008-01-16 株式会社東芝 画像符号化/復号化方法及び装置
KR19980036429A (ko) 1996-11-18 1998-08-05 김광호 광 디스크 플레이어의 트레이
GB9720152D0 (en) 1996-12-18 1997-11-26 Mayup Limited Communications system and method
IL119928A (en) 1996-12-29 2001-01-11 Univ Ramot Model-based view extrapolation for interactive virtual reality systems
US6014706A (en) * 1997-01-30 2000-01-11 Microsoft Corporation Methods and apparatus for implementing control functions in a streamed video display system
JPH10257009A (ja) 1997-03-10 1998-09-25 Oki Electric Ind Co Ltd 無線中継方法及び無線中継機
US6639945B2 (en) 1997-03-14 2003-10-28 Microsoft Corporation Method and apparatus for implementing motion detection in video compression
AU1941797A (en) 1997-03-17 1998-10-12 Mitsubishi Denki Kabushiki Kaisha Image encoder, image decoder, image encoding method, image decoding method and image encoding/decoding system
US5974503A (en) 1997-04-25 1999-10-26 Emc Corporation Storage and access of continuous media files indexed as lists of raid stripe sets associated with file names
US6708029B2 (en) 1997-06-02 2004-03-16 Hughes Electronics Corporation Broadband communication system for mobile users in a satellite-based network
US6057850A (en) 1997-07-15 2000-05-02 Silicon Graphics, Inc. Blended texture illumination mapping
US5987376A (en) 1997-07-16 1999-11-16 Microsoft Corporation System and method for the distribution and synchronization of data and state information between clients in a distributed processing system
US6484012B1 (en) * 1997-08-04 2002-11-19 Wireless Facilities, Inc. Inter-band communication repeater system
JP4014263B2 (ja) 1997-10-01 2007-11-28 松下電器産業株式会社 映像信号変換装置及び映像信号変換方法
US6188571B1 (en) * 1997-11-03 2001-02-13 Aiwa Raid Technology, Inc. High density RAID subsystem with highly integrated controller
US6404775B1 (en) 1997-11-21 2002-06-11 Allen Telecom Inc. Band-changing repeater with protocol or format conversion
US6292847B1 (en) 1997-12-03 2001-09-18 Kabushiki Kaisha Kobe Seiko Sho. Digital information reproducing apparatus and digital information distributing system
US6424817B1 (en) 1998-02-04 2002-07-23 California Amplifier, Inc. Dual-polarity low-noise block downconverter systems and methods
US6769990B2 (en) 1998-02-06 2004-08-03 Robert Cohen Networked search and tracking games
CA2248745C (en) 1998-02-13 2005-08-23 Arista Interactive Llc Wireless game control units
US6414725B1 (en) 1998-04-16 2002-07-02 Leitch Technology Corporation Method and apparatus for synchronized multiple format data storage
US5884101A (en) * 1998-04-17 1999-03-16 I-Cube, Inc. Apparatus for detecting data buffer faults
US6374078B1 (en) * 1998-04-17 2002-04-16 Direct Wireless Corporation Wireless communication system with multiple external communication links
US6788882B1 (en) 1998-04-17 2004-09-07 Timesurf, L.L.C. Systems and methods for storing a plurality of video streams on re-writable random-access media and time-and channel- based retrieval thereof
US7028304B1 (en) 1998-05-26 2006-04-11 Rockwell Collins Virtual line replaceable unit for a passenger entertainment system, method and article of manufacture
US6208636B1 (en) * 1998-05-28 2001-03-27 Northpoint Technology, Ltd. Apparatus and method for processing signals selected from multiple data streams
US6412112B1 (en) 1998-06-30 2002-06-25 Webtv Networks, Inc. System for transmitting digital data through a lossy channel
US20020015513A1 (en) * 1998-07-15 2002-02-07 Sony Corporation Motion vector detecting method, record medium on which motion vector calculating program has been recorded, motion detecting apparatus, motion detecting method, picture encoding apparatus, picture encoding method, motion vector calculating method, record medium on which motion vector calculating program has been recorded
EA199800706A1 (ru) 1998-08-13 1999-02-25 Александр Иванович Силаев Способ игры со ставками (варианты) и устройство для его осуществления
US6600730B1 (en) 1998-08-20 2003-07-29 Hughes Electronics Corporation System for distribution of satellite signals from separate multiple satellites on a single cable line
US6697869B1 (en) * 1998-08-24 2004-02-24 Koninklijke Philips Electronics N.V. Emulation of streaming over the internet in a broadcast application
US6323909B1 (en) 1998-10-28 2001-11-27 Hughes Electronics Corporation Method and apparatus for transmitting high definition television programming using a digital satellite system transport and MPEG-2 packetized elementary streams (PES)
US6409602B1 (en) 1998-11-06 2002-06-25 New Millenium Gaming Limited Slim terminal gaming system
US6241612B1 (en) 1998-11-09 2001-06-05 Cirrus Logic, Inc. Voice communication during a multi-player game
US6594313B1 (en) 1998-12-23 2003-07-15 Intel Corporation Increased video playback framerate in low bit-rate video applications
US6754241B1 (en) 1999-01-06 2004-06-22 Sarnoff Corporation Computer system for statistical multiplexing of bitstreams
US6665872B1 (en) 1999-01-06 2003-12-16 Sarnoff Corporation Latency-based statistical multiplexing
US6577849B1 (en) * 1999-02-03 2003-06-10 Motorola, Inc. Method and apparatus for providing additional information about a broadcast
JP3808660B2 (ja) * 1999-03-31 2006-08-16 株式会社東芝 通信システム及び端末装置
US6597891B2 (en) 1999-04-05 2003-07-22 International Business Machines Corporation Combining online browsing and on-demand data broadcast for selecting and downloading digital content
IL129345A (en) * 1999-04-06 2004-05-12 Broadcom Corp Video encoding and video/audio/data multiplexing device
US6473858B1 (en) 1999-04-16 2002-10-29 Digeo, Inc. Method and apparatus for broadcasting data with access control
US7178106B2 (en) 1999-04-21 2007-02-13 Sonic Solutions, A California Corporation Presentation of media content from multiple media sources
US6760487B1 (en) 1999-04-22 2004-07-06 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Estimated spectrum adaptive postfilter and the iterative prepost filtering algirighms
US6792615B1 (en) 1999-05-19 2004-09-14 New Horizons Telecasting, Inc. Encapsulated, streaming media automation and distribution system
US8266657B2 (en) 2001-03-15 2012-09-11 Sling Media Inc. Method for effectively implementing a multi-room television system
US6263503B1 (en) 1999-05-26 2001-07-17 Neal Margulis Method for effectively implementing a wireless television system
US7289478B1 (en) 1999-07-30 2007-10-30 At&T Corp. Method and apparatus for a fixed wireless broadband access and wireless LAN integration
JP2001111575A (ja) 1999-08-03 2001-04-20 Matsushita Electric Ind Co Ltd 無線lanクロスチャネル変換リピータ装置及び無線端末装置
US6690657B1 (en) * 2000-02-25 2004-02-10 Berkeley Concept Research Corporation Multichannel distributed wireless repeater network
CN1783997A (zh) 1999-08-27 2006-06-07 诺基亚有限公司 用于数字视频广播的移动多媒体终端
US6430233B1 (en) 1999-08-30 2002-08-06 Hughes Electronics Corporation Single-LNB satellite data receiver
US6205185B1 (en) * 1999-09-01 2001-03-20 Sony Corporation Of Japan Self configuring multi-dwelling satellite receiver system
US6678502B1 (en) * 1999-09-22 2004-01-13 Sony Corporation Wireless transmitting method, wire transmitting method, wireless transmitter and wired transmitter
US6785262B1 (en) 1999-09-28 2004-08-31 Qualcomm, Incorporated Method and apparatus for voice latency reduction in a voice-over-data wireless communication system
JP3653215B2 (ja) 1999-10-01 2005-05-25 シャープ株式会社 衛星放送受信システム、ならびに衛星放送受信システムで用いられるローノイズブロックダウンコンバータおよび衛星放送受信機
US6347216B1 (en) * 1999-11-04 2002-02-12 Xm Satellite Radio Inc. Method and system for providing geographic specific services in a satellite communications network
US6564003B2 (en) 1999-11-04 2003-05-13 Xm Satellite Radio Inc. Method and apparatus for composite data stream storage and playback
US6664969B1 (en) 1999-11-12 2003-12-16 Hewlett-Packard Development Company, L.P. Operating system independent method and apparatus for graphical remote access
US6810528B1 (en) 1999-12-03 2004-10-26 Sony Computer Entertainment America Inc. System and method for providing an on-line gaming experience through a CATV broadband network
WO2001041437A2 (en) 1999-12-03 2001-06-07 Ourworld Live, Inc. Consumer access systems and methods for providing same
JP2001169281A (ja) 1999-12-13 2001-06-22 Matsushita Electric Ind Co Ltd 動画像符号化装置、および動画像符号化方法
CA2394352C (en) * 1999-12-14 2008-07-15 Scientific-Atlanta, Inc. System and method for adaptive decoding of a video signal with coordinated resource allocation
AU2001234463A1 (en) 2000-01-14 2001-07-24 Andrew Corporation Repeaters for wireless communication systems
US20020059637A1 (en) 2000-01-14 2002-05-16 Rakib Selim Shlomo Home gateway for video and data distribution from various types of headend facilities and including digital video recording functions
US20020019984A1 (en) * 2000-01-14 2002-02-14 Rakib Selim Shlomo Headend cherrypicker with digital video recording capability
WO2001052093A2 (en) 2000-01-14 2001-07-19 Portable Websites.Com, Inc. Method and apparatus for creating relocatable internet web sites
US20010047422A1 (en) 2000-01-21 2001-11-29 Mcternan Brennan J. System and method for using benchmarking to account for variations in client capabilities in the distribution of a media presentation
WO2001056231A1 (en) * 2000-01-26 2001-08-02 Vyyo, Ltd. Quality of service scheduling scheme for a broadband wireless access system
WO2001056244A1 (fr) * 2000-01-26 2001-08-02 Sony Corporation Systeme de transmission de donnees
US7477688B1 (en) * 2000-01-26 2009-01-13 Cisco Technology, Inc. Methods for efficient bandwidth scaling of compressed video data
KR100677083B1 (ko) * 2000-01-27 2007-02-01 삼성전자주식회사 디지털 영상 데이터 통신 시스템에서의 오류 전파 억제를위한 송수신 데이터의 처리 방법 및 이를 위한 기록 매체
WO2001056285A1 (en) 2000-01-27 2001-08-02 Berberet Suzanne M System and method for providing broadcast programming, a virtual vcr, and a video scrapbook to programming subscribers
US6741841B1 (en) 2000-01-28 2004-05-25 Rockwell Collins Dual receiver for a on-board entertainment system
EP1130920A3 (en) 2000-02-03 2002-10-30 Lucent Technologies Inc. Method, apparatus and system for motion picture signal distribution
US6920110B2 (en) * 2001-02-14 2005-07-19 Microsoft Corporation System and method for transferring data over a network
JP2004514189A (ja) 2000-02-17 2004-05-13 アクレイム エンターテインメント インコーポレイテッド マルチプレーヤーのコンピュータゲーム、システム及び方法
US6724826B1 (en) 2000-02-25 2004-04-20 Ampex Corporation Method and apparatus for improving the image quality of transmitted video signals via pre-filtering
JP2001244864A (ja) 2000-02-29 2001-09-07 Hitachi Ltd 無線中継システム
EP1361690B1 (en) * 2000-03-02 2006-01-11 Matsushita Electric Industrial Co., Ltd. Method and apparatus for retransmitting data packets based on channel conditions
US6836658B1 (en) 2000-03-03 2004-12-28 Ems Technologies, Inc. High data rate satellite communications system and method
US20010023201A1 (en) 2000-03-08 2001-09-20 Susumu Takatsuka Method of replaying game, recording medium, program, and entertainment system
US6811113B1 (en) 2000-03-10 2004-11-02 Sky Calypso, Inc. Internet linked environmental data collection system and method
US6631410B1 (en) 2000-03-16 2003-10-07 Sharp Laboratories Of America, Inc. Multimedia wired/wireless content synchronization system and method
US6466248B1 (en) 2000-04-05 2002-10-15 Dialogic Corporation Videoconference recording
US6650869B2 (en) 2000-04-14 2003-11-18 Hughes Electronics Corporation System and method for managing return channel bandwidth in a two-way satellite system
US6721280B1 (en) 2000-04-19 2004-04-13 Qualcomm Incorporated Method and apparatus for voice latency reduction in a voice-over-data wireless communication system
US6873654B1 (en) * 2000-05-16 2005-03-29 Redrock Semiconductor, Inc Method and system for predictive control for live streaming video/audio media
US6699127B1 (en) * 2000-06-20 2004-03-02 Nintendo Of America Inc. Real-time replay system for video game
US7487112B2 (en) * 2000-06-29 2009-02-03 Barnes Jr Melvin L System, method, and computer program product for providing location based services and mobile e-commerce
US20020028655A1 (en) * 2000-07-14 2002-03-07 Rosener Douglas K. Repeater system
WO2002007440A2 (en) 2000-07-15 2002-01-24 Filippo Costanzo Audio-video data switching and viewing system
US7099388B2 (en) 2000-08-25 2006-08-29 Cooper J Carl System and method for enabling compatibility between digital and analog television systems
US8932136B2 (en) * 2000-08-25 2015-01-13 Opentv, Inc. Method and system for initiating an interactive game
US6728514B2 (en) 2000-09-08 2004-04-27 Wi-Lan Inc. Scalable wireless network topology systems and methods
US7295614B1 (en) 2000-09-08 2007-11-13 Cisco Technology, Inc. Methods and apparatus for encoding a video signal
US20030054827A1 (en) * 2000-09-11 2003-03-20 Schmidl Timothy M. Wireless communication channel selection using passive interference avoidance techniques
JP2002099458A (ja) * 2000-09-25 2002-04-05 Pioneer Electronic Corp データ通信システム
FI20002129A (fi) * 2000-09-28 2002-03-29 Nokia Corp Menetelmä ja järjestely paikallisen laajakaistaisen datavirran langattomaksi jakamiseksi
US7257832B2 (en) 2000-10-16 2007-08-14 Heartlab, Inc. Medical image capture system and method
CA2425628C (en) 2000-10-17 2007-07-24 Sprint Communications Company, L.P. Performance management system
US6745050B1 (en) 2000-10-23 2004-06-01 Massachusetts Institute Of Technology Multichannel multiuser detection
US6785511B1 (en) 2000-10-25 2004-08-31 Tyco Electronics Corporation Wireless vehicular repeater system
DE60131900T2 (de) 2000-10-26 2008-12-04 Flood, James C. jun., Portland Verfahren und system zur verwaltung von verteilten inhalten und verwandten metadaten
FI20002449A0 (fi) 2000-11-08 2000-11-08 Nokia Networks Oy Tapahtumien virittäminen
US7244181B2 (en) 2000-11-14 2007-07-17 Netamin Communication Corp. Multi-player game employing dynamic re-sequencing
JP3605353B2 (ja) 2000-11-21 2004-12-22 株式会社ソニー・コンピュータエンタテインメント 光ディスク装置、光ディスク装置の調整方法、及びエンタテインメント装置
US6874029B2 (en) 2000-11-22 2005-03-29 Leap Wireless International, Inc. Method and system for mediating interactive services over a wireless communications network
US20030177187A1 (en) 2000-11-27 2003-09-18 Butterfly.Net. Inc. Computing grid for massively multi-player online games and other multi-user immersive persistent-state and session-based applications
US6996742B2 (en) * 2000-11-28 2006-02-07 Sedna Patent Services, Llc Method for regenerating and streaming content from a video server using RAID 5 data striping
US20020080267A1 (en) 2000-11-28 2002-06-27 Allan Moluf High capacity, low-latency multiplexer
US7027633B2 (en) 2000-11-30 2006-04-11 Foran David J Collaborative diagnostic systems
US20020075382A1 (en) 2000-12-01 2002-06-20 Yoram Cohen Method and apparatus for implementing a thin-client videophone in a cable television network
EP1342375A1 (en) 2000-12-13 2003-09-10 The Chinese University Of Hong Kong Method and system for delivering media selections through a network
US6907070B2 (en) 2000-12-15 2005-06-14 Microsoft Corporation Drifting reduction and macroblock-based control in progressive fine granularity scalable video coding
US6850235B2 (en) * 2000-12-27 2005-02-01 Fly Over Technologies Inc. Efficient image parcel texture rendering with T-junction crack elimination
US6888893B2 (en) 2001-01-05 2005-05-03 Microsoft Corporation System and process for broadcast and communication with very low bit-rate bi-level or sketch video
US6761636B2 (en) 2001-01-16 2004-07-13 Fucom Company, Ltd. Real time data exchange system
US7587520B1 (en) 2001-01-24 2009-09-08 3Dlabs Inc. Ltd. Image display system with visual server
US7155515B1 (en) 2001-02-06 2006-12-26 Microsoft Corporation Distributed load balancing for single entry-point systems
US20020129096A1 (en) 2001-02-14 2002-09-12 Mansour Peter M. Platform-independent distributed user interface client architecture
FR2821028B1 (fr) 2001-02-16 2003-10-17 Faurecia Sieges Automobile Dispositif d'assise comportant un dossier rabattable
US7113745B2 (en) 2001-02-21 2006-09-26 Ericsson Inc. Method to achieve diversity in a communication network
US6973667B2 (en) 2001-03-01 2005-12-06 Minerva Networks, Inc. Method and system for providing time-shifted delivery of live media programs
US6886029B1 (en) 2001-03-13 2005-04-26 Panamsat Corporation End to end simulation of a content delivery system
WO2002073812A1 (fr) 2001-03-14 2002-09-19 Matsushita Electric Industrial Co., Ltd. Procede de codage de correction d'erreur, procede de decodage de correction d'erreur et appareils de codage et de decodage de correction d'erreur
US6993353B2 (en) * 2001-03-14 2006-01-31 At&T Corp. Cable data service method
US20020149617A1 (en) 2001-03-30 2002-10-17 Becker David F. Remote collaboration technology design and methodology
US20020154055A1 (en) 2001-04-18 2002-10-24 Robert Davis LAN based satellite antenna/satellite multiswitch
US6671186B2 (en) 2001-04-20 2003-12-30 Hewlett-Packard Development Company, L.P. Electromagnetic interference shield
GB2374756B (en) 2001-04-20 2004-07-28 Discreet Logic Inc Image processing
US6850571B2 (en) * 2001-04-23 2005-02-01 Webtv Networks, Inc. Systems and methods for MPEG subsample decoding
US20020157115A1 (en) 2001-04-24 2002-10-24 Koninklijke Philips Electronics N.V. Wireless communication point of deployment module for use in digital cable compliant devices
US7305691B2 (en) 2001-05-07 2007-12-04 Actv, Inc. System and method for providing targeted programming outside of the home
US20020170065A1 (en) 2001-05-08 2002-11-14 Pinnick Skyler D. Apparatus and method of managing compression of video and delivery of video over the internet
AU2002312747A1 (en) 2001-05-15 2002-11-25 Netadtack Aps Method and system for transmitting multicast data signals
JP4420584B2 (ja) 2001-05-21 2010-02-24 ソニー株式会社 携帯情報処理端末、情報処理方法、プログラム、および情報処理システム
JP4293740B2 (ja) * 2001-05-29 2009-07-08 株式会社リコー 画像圧縮装置
US20020184303A1 (en) 2001-05-31 2002-12-05 Virtaul Media, Inc. Embedded web server capable of managing dynamic content delivery of data stream, audio stream, or video stream
KR20020092022A (ko) 2001-06-01 2002-12-11 애드버츄얼 주식회사 가상이미지 삽입기술을 이용한 실시간 쌍방향 스트리밍비디오 시스템
TW551550U (en) 2001-06-04 2003-09-01 First Int Computer Inc Notebook computer having small type display panel
US20020181190A1 (en) 2001-06-05 2002-12-05 Callado Romulo Monteiro Laptop with separable touch sensitive display
US20020188955A1 (en) 2001-06-11 2002-12-12 Thompson Calvin Eugene Digital video recording and playback system for television
US20030017846A1 (en) * 2001-06-12 2003-01-23 Estevez Leonardo W. Wireless display
US6757735B2 (en) * 2001-07-03 2004-06-29 Hewlett-Packard Development Company, L.P. Method for distributing multiple description streams on servers in fixed and mobile streaming media systems
US7367885B2 (en) 2001-08-09 2008-05-06 Igt 3-D text in a gaming machine
JP2003060638A (ja) * 2001-08-15 2003-02-28 Sony Corp コンテンツ提供装置及びコンテンツ提供方法
JP2003152752A (ja) 2001-08-29 2003-05-23 Matsushita Electric Ind Co Ltd データ送受信方法
US6820218B1 (en) 2001-09-04 2004-11-16 Microsoft Corporation Persistent stateful component-based applications via automatic recovery
US20030048808A1 (en) * 2001-09-12 2003-03-13 Stahl Thomas Anthony Method and apparatus for changing received streaming content channels
US6910175B2 (en) * 2001-09-14 2005-06-21 Koninklijke Philips Electronics N.V. Encoder redundancy selection system and method
KR100819493B1 (ko) 2001-09-28 2008-04-07 엘지전자 주식회사 무선랜을 이용한 엠펙 데이터 송수신 장치
US7931533B2 (en) * 2001-09-28 2011-04-26 Igt Game development architecture that decouples the game logic from the graphics logics
US20030079016A1 (en) * 2001-10-23 2003-04-24 Sheng (Ted) Tai Tsao Using NAS appliance to build a non-conventional distributed video server
AU2002365558A1 (en) 2001-11-21 2003-06-10 Marconi Intellectual Property (Us) Inc. Wireless communication device interconnectivity
US6853197B1 (en) * 2001-12-03 2005-02-08 Atheros Communications, Inc. Method and apparatus for insuring integrity of a connectorized antenna
US7299487B1 (en) 2001-12-04 2007-11-20 Unisys Corporation Control program, for a co-processor in a video-on-demand system, which uses transmission control lists to send video data packets with respective subgroups of internet protocol headers
AU2002357064A1 (en) 2001-12-07 2003-06-23 Dashsmart Investments, Llc Portable navigation and communication systems
US20030124977A1 (en) 2001-12-28 2003-07-03 Smith Dwight Randall Self-positioning wireless transceiver system and method
US7634795B2 (en) 2002-01-11 2009-12-15 Opentv, Inc. Next generation television receiver
US20040148235A1 (en) 2002-01-11 2004-07-29 Craig Mark S. Real time financial instrument image exchange system and method
JP2005539409A (ja) 2002-03-01 2005-12-22 エンテラシス ネットワークス インコーポレイテッド 位置認識データネットワーク
US7916147B2 (en) 2002-03-01 2011-03-29 T5 Labs Ltd. Centralised interactive graphical application server
US7024224B2 (en) 2002-03-05 2006-04-04 Microsoft Corporation Detachable radio module
US6968153B1 (en) 2002-03-13 2005-11-22 Nokia Corporation Apparatus, method and system for a Bluetooth repeater
US20030181162A1 (en) 2002-03-20 2003-09-25 Michael Matula " Satellite set-top box for mobile applications "
US6908390B2 (en) 2002-03-29 2005-06-21 Igt Apparatus and method for a gaming tournament network
US7263125B2 (en) 2002-04-23 2007-08-28 Nokia Corporation Method and device for indicating quantizer parameters in a video coding system
US6983353B2 (en) * 2002-04-29 2006-01-03 Emc Corporation Method and apparatus for enhancing operations in disk array storage devices
US7010265B2 (en) 2002-05-22 2006-03-07 Microsoft Corporation Satellite receiving system with transmodulating outdoor unit
US20030226149A1 (en) 2002-05-31 2003-12-04 Kyong-Joon Chun Integrated home network system for providing multimedia services and integrated terminal device for the integrated home network system
US7543326B2 (en) 2002-06-10 2009-06-02 Microsoft Corporation Dynamic rate control
US7038676B2 (en) 2002-06-11 2006-05-02 Sony Computer Entertainmant Inc. System and method for data compression
US7423990B2 (en) 2002-06-18 2008-09-09 Vixs Systems Inc. Dynamically adjusting data rate of wireless communications
US8370744B2 (en) 2002-06-19 2013-02-05 Microsoft Corporation User interface for operating a computer from a distance
CN1663147A (zh) 2002-06-21 2005-08-31 威德菲公司 无线局域网中继器
US7072627B2 (en) 2002-06-27 2006-07-04 Microsoft Corporation Method and apparatus for adjusting signal component strength
US7043559B2 (en) * 2002-06-27 2006-05-09 Seiko Epson Corporation System for distributing objects to multiple clients
WO2004012437A2 (en) * 2002-07-31 2004-02-05 Bluestreak Technology Inc. System and method for video-on-demand based gaming
EP1391226B1 (en) * 2002-08-12 2007-10-10 Alcatel Lucent Method and devices for implementing highly interactive entertainment services using interactive media-streaming technology, enabling remote provisioning of virtual reality services
US20040034865A1 (en) * 2002-08-13 2004-02-19 Barrett Peter T. Program guide for previous program broadcasts
US20040043819A1 (en) * 2002-09-03 2004-03-04 Daniel Willis Gaming system emulating a set top box
US6830515B2 (en) * 2002-09-10 2004-12-14 Igt Method and apparatus for supporting wide area gaming network
US7075987B2 (en) * 2002-09-23 2006-07-11 Intel Corporation Adaptive video bit-rate control
US20040203694A1 (en) 2002-10-21 2004-10-14 Wong Samuel L.C. Reconfigurable wireless-enabled network device
US20040080533A1 (en) * 2002-10-23 2004-04-29 Sun Microsystems, Inc. Accessing rendered graphics over the internet
US7230935B2 (en) 2002-10-24 2007-06-12 Widefi, Inc. Physical layer repeater with selective use of higher layer functions based on network operating conditions
US7287052B2 (en) 2002-11-09 2007-10-23 Microsoft Corporation Challenge and response interaction between client and server computing devices
US7878908B2 (en) * 2002-11-14 2011-02-01 Nintendo Co., Ltd. Multiplexed secure video game play distribution
US20040094194A1 (en) 2002-11-15 2004-05-20 Aldoretta David P. Solar panel unit
US20030158700A1 (en) 2002-11-27 2003-08-21 Forler Joseph Wayne Watchdog arrangement
US7219153B1 (en) 2002-12-02 2007-05-15 Cisco Technology, Inc. Methods and apparatus for distributing content
US7165194B2 (en) 2002-12-09 2007-01-16 International Business Machines Corporation Technical support for software products
US7089319B2 (en) 2002-12-09 2006-08-08 Anton Lysenko Method and system for instantaneous on-demand delivery of multimedia content over a communication network with aid of content capturing component, delivery-on-demand client and dynamically mapped resource locator server
US8949922B2 (en) * 2002-12-10 2015-02-03 Ol2, Inc. System for collaborative conferencing using streaming interactive video
US8366552B2 (en) * 2002-12-10 2013-02-05 Ol2, Inc. System and method for multi-stream video compression
US7684752B2 (en) * 2002-12-10 2010-03-23 Onlive, Inc. Wireless network providing distributed video / data services
US7849491B2 (en) 2002-12-10 2010-12-07 Onlive, Inc. Apparatus and method for wireless video gaming
US7558525B2 (en) 2002-12-10 2009-07-07 Onlive, Inc. Mass storage repository for a wireless network
US20110126255A1 (en) 2002-12-10 2011-05-26 Onlive, Inc. System and method for remote-hosted video effects
US7493078B2 (en) * 2002-12-10 2009-02-17 Onlive, Inc. Antenna assembly for satellite and wireless services
JP2006509548A (ja) 2002-12-10 2006-03-23 ノキア コーポレイション 電子マルチプレイヤ用ゲームのプレイヤが不在の場合に前記ゲームを続行する方法および装置
JP2006510326A (ja) 2002-12-16 2006-03-23 ワイデファイ インコーポレイテッド 改良された無線ネットワーク中継器
US7321578B2 (en) 2002-12-31 2008-01-22 Carlos Rios Multiprotocol WLAN access point devices
US7590084B2 (en) 2003-02-14 2009-09-15 Onlive, Inc. Self-configuring, adaptive, three-dimensional, wireless network
WO2004073269A1 (ja) 2003-02-13 2004-08-26 Fujitsu Limited 伝送システム,配信経路制御装置,負荷情報収集装置および配信経路制御方法
US7215660B2 (en) 2003-02-14 2007-05-08 Rearden Llc Single transceiver architecture for a wireless network
US7593361B2 (en) 2003-02-14 2009-09-22 Onlive, Inc. Method of operation for a three-dimensional, wireless network
US20040263626A1 (en) 2003-04-11 2004-12-30 Piccionelli Gregory A. On-line video production with selectable camera angles
US20040207724A1 (en) 2003-04-17 2004-10-21 Siemens Information And Communication Networks, Inc. System and method for real time playback of conferencing streams
US7455590B2 (en) 2003-05-09 2008-11-25 Microsoft Corporation Sending messages in response to events occurring on a gaming service
US6963353B1 (en) 2003-05-14 2005-11-08 Cisco Technology, Inc. Non-causal speaker selection for conference multicast
US7430187B2 (en) 2003-05-15 2008-09-30 At&T Intellectual Property I, Lp Methods, systems, and computer program products for providing different quality of service/bandwidth allocation to different susbscribers for interactive gaming
US7359004B2 (en) 2003-05-23 2008-04-15 Microsoft Corporation Bi-level and full-color video combination for video communication
CA2531970A1 (en) 2003-07-10 2005-01-27 Comcast Cable Holdings, Llc Distributed and scalable architecture for on demand session and resource management
US20050047496A1 (en) * 2003-08-13 2005-03-03 Mcintire William K. Modem with pilot symbol synchronization
WO2005038599A2 (en) * 2003-10-14 2005-04-28 Raptor Networks Technology, Inc. Switching system with distributed switching fabric
US7016409B2 (en) 2003-11-12 2006-03-21 Sony Corporation Apparatus and method for use in providing dynamic bit rate encoding
US20050183120A1 (en) 2004-01-13 2005-08-18 Saurabh Jain Multi-user personalized digital multimedia distribution methods and systems
US20070271358A1 (en) 2004-01-16 2007-11-22 William Gaddy System and Method for Dynamically Configured, Asymmetric Endpoint Video Exchange
KR100627500B1 (ko) 2004-03-10 2006-09-21 엘지전자 주식회사 모바일폰의 단문 메시지 제공시스템 및 그 제공방법
EP1603339A1 (en) 2004-06-01 2005-12-07 STMicroelectronics S.r.l. Method and system for communicating video data in a packet-switched network, related network and computer program product therefor
US7539187B2 (en) 2004-07-07 2009-05-26 Qvidium Technologies, Inc. System and method for low-latency content-sensitive forward error correction
JP4403396B2 (ja) 2004-07-13 2010-01-27 ソニー株式会社 撮像装置及び撮像素子の集積回路
JP2006051251A (ja) 2004-08-13 2006-02-23 Aruze Corp ゲームシステム
US7458894B2 (en) 2004-09-15 2008-12-02 Microsoft Corporation Online gaming spectator system
US8719075B2 (en) * 2004-09-23 2014-05-06 Overstock.Com, Inc. System, program product, and methods for online image handling
US8948266B2 (en) 2004-10-12 2015-02-03 Qualcomm Incorporated Adaptive intra-refresh for digital video encoding
US20060078046A1 (en) 2004-10-13 2006-04-13 Aegison Corp. Method and system for multi-path video delivery and distribution
JP2007065928A (ja) * 2005-08-30 2007-03-15 Toshiba Corp 情報記憶媒体、情報処理方法、情報転送方法、情報再生方法、情報再生装置、情報記録方法、情報記録装置、及びプログラム
US7966485B2 (en) 2004-12-01 2011-06-21 Igt Universal operating system to hardware platform interface for gaming machines
US8634413B2 (en) * 2004-12-30 2014-01-21 Microsoft Corporation Use of frame caching to improve packet loss recovery
US20060148571A1 (en) 2005-01-04 2006-07-06 Electronic Arts Inc. Computer game with game saving including history data to allow for play reacquaintance upon restart of game
US20060168291A1 (en) 2005-01-05 2006-07-27 Van Zoest Alexander Interactive multichannel data distribution system
US20060150055A1 (en) 2005-01-06 2006-07-06 Terayon Communication Systems, Inc. Adaptive information delivery system using FEC feedback
RU2005101111A (ru) 2005-01-19 2006-06-27 Закрытое акционерное общество "Научно-исследовательский институт Аджиномото-Генетика" (ЗАО АГРИ) (RU) Способ получения l-аминокислот с использованием бактерий семейства enterobacteriaceae
WO2006081634A2 (en) 2005-02-04 2006-08-10 Barco N.V. Method and device for image and video transmission over low-bandwidth and high-latency transmission channels
EP1694071A1 (en) 2005-02-11 2006-08-23 Vemotion Limited Interactive video applications
WO2006098008A1 (ja) * 2005-03-15 2006-09-21 Fujitsu Limited 通信装置および通信方法
US20080207322A1 (en) 2005-03-21 2008-08-28 Yosef Mizrahi Method, System and Computer-Readable Code For Providing a Computer Gaming Device
US7668914B2 (en) 2005-03-28 2010-02-23 Alcatel Lucent Milestone synchronization in broadcast multimedia streams
US20060230428A1 (en) 2005-04-11 2006-10-12 Rob Craig Multi-player video game system
US7680038B1 (en) * 2005-04-25 2010-03-16 Electronic Arts, Inc. Dynamic bandwidth detection and response for online games
US7848409B2 (en) 2005-05-02 2010-12-07 Qualcomm Incorporated Macroblock level bit allocation
US20060258463A1 (en) 2005-05-13 2006-11-16 Professional Interactive Entertainment, Inc. System and method for network interactive game match-up and server selection
WO2006134055A1 (fr) 2005-06-17 2006-12-21 France Telecom Procede de gestion de l'execution par un serveur d'une application offrant au moins un service multimedia interactif a au moins un terminal, produit programme d'ordinateur et serveur correspondants
US7548657B2 (en) 2005-06-25 2009-06-16 General Electric Company Adaptive video compression of graphical user interfaces using application metadata
US7702006B2 (en) * 2005-07-05 2010-04-20 Microsoft Corporation Adjustment of transmission data rate based on data errors and/or latency
US7936819B2 (en) * 2005-07-08 2011-05-03 Tag Networks, Inc. Video encoder with latency control
EP1908293B1 (en) 2005-07-08 2010-07-21 TAG Networks, Inc. Video game system using pre-encoded macro-blocks
US8289370B2 (en) 2005-07-20 2012-10-16 Vidyo, Inc. System and method for scalable and low-delay videoconferencing using scalable video coding
KR101088375B1 (ko) * 2005-07-21 2011-12-01 삼성전자주식회사 가변 블록 변환 장치 및 방법 및 이를 이용한 영상부호화/복호화 장치 및 방법
US20070060259A1 (en) * 2005-09-09 2007-03-15 Joze Pececnik Remote Live Automatic Electro-Mechanical and Video Table Gaming
US7794315B2 (en) * 2005-09-09 2010-09-14 Microsoft Corporation Role play system
JP2007080357A (ja) * 2005-09-13 2007-03-29 Toshiba Corp 情報記憶媒体、情報再生方法、情報再生装置
US8229983B2 (en) * 2005-09-27 2012-07-24 Qualcomm Incorporated Channel switch frame
US20070094700A1 (en) 2005-10-25 2007-04-26 Jason Wolfe Game delivery system
US8135040B2 (en) 2005-11-30 2012-03-13 Microsoft Corporation Accelerated channel change
JP2009518981A (ja) 2005-12-08 2009-05-07 ヴィドヨ,インコーポレーテッド ビデオ通信システムでのエラー回復力およびランダムアクセスのためのシステムおよび方法
US8089892B2 (en) 2005-12-15 2012-01-03 Thomson Licensing Adaptive joint source and channel coding scheme for H.264 video multicasting over wireless networks
US20070156815A1 (en) 2005-12-30 2007-07-05 Nokia Corporation Method, system and entities for multicast content pushing
US8764566B2 (en) 2006-02-24 2014-07-01 Igt Internet remote game server
US20070260492A1 (en) 2006-03-09 2007-11-08 Microsoft Corporation Master patient index
US8392821B2 (en) 2006-03-17 2013-03-05 Viddler, Inc. Methods and systems for displaying videos with overlays and tags
EP1837060A1 (en) 2006-03-21 2007-09-26 In Fusio (S.A.) Method for displaying interactive video content from a video stream in a display of a user device
US8777737B2 (en) 2006-04-13 2014-07-15 Igt Method and apparatus for integrating remotely-hosted and locally rendered content on a gaming device
BRPI0621618B1 (pt) 2006-04-29 2019-10-22 Interdigital Ce Patent Holdings método e dispositivo móvel para recuperar perda de um pacote de dados quando o dispositivo móvel é transferido de controle entre células
JP2008005112A (ja) 2006-06-21 2008-01-10 Matsushita Electric Ind Co Ltd ストリームエンコーダ及びストリームデコーダ
DE102006029208B4 (de) 2006-06-26 2010-06-10 Franz Josef Summerer Spritzgießmaschine und Spritzgießverfahren zum Spritzgießen von Kunststoff-Formteilen mit mehreren Entformrichtungen
US7841946B2 (en) * 2006-06-29 2010-11-30 Spawn Labs, Inc. System for remote game access
US8004692B2 (en) * 2006-06-30 2011-08-23 Chian Chiu Li Optical interferometer and method
US20080032794A1 (en) * 2006-07-24 2008-02-07 Rambus, Inc. Partitioned game console system
US20080025196A1 (en) * 2006-07-25 2008-01-31 Jeyhan Karaoguz Method and system for providing visually related content description to the physical layer
EP2130189A1 (en) 2006-10-27 2009-12-09 Cecure Gaming Limited Online gaming system
US8711929B2 (en) * 2006-11-01 2014-04-29 Skyfire Labs, Inc. Network-based dynamic encoding
US8825765B2 (en) 2006-11-28 2014-09-02 Verizon Patent And Licensing Inc. Cross platform gaming
US8401076B2 (en) 2006-12-12 2013-03-19 Vantrix Corporation Video rate control for video coding standards
US8978085B2 (en) 2006-12-28 2015-03-10 General Instrument Corporation Return data path in an HFC network
US20080220878A1 (en) 2007-02-23 2008-09-11 Oliver Michaelis Method and Apparatus to Create or Join Gaming Sessions Based on Proximity
US7957307B2 (en) 2007-03-14 2011-06-07 Microsoft Corporation Reducing effects of packet loss in video transmissions
US8494049B2 (en) 2007-04-09 2013-07-23 Cisco Technology, Inc. Long term reference frame management with error video feedback for compressed video communication
JP5503531B2 (ja) 2007-05-02 2014-05-28 グーグル インコーポレイテッド ウェブベースの映像プレイヤのためのユーザインタフェース
US7995478B2 (en) 2007-05-30 2011-08-09 Sony Computer Entertainment Inc. Network communication with path MTU size discovery
US8615630B2 (en) * 2007-06-28 2013-12-24 Apple Inc. Systems and methods for managing data storage
US20090003452A1 (en) * 2007-06-29 2009-01-01 The Hong Kong University Of Science And Technology Wyner-ziv successive refinement video compression
US20090028230A1 (en) * 2007-07-27 2009-01-29 Matsushita Electric Industrial Co., Ltd. Method and apparatus for improving quality of service for reception in digital television broadcast systems
US20090109988A1 (en) 2007-10-26 2009-04-30 Chowdhary Musunuri Video Decoder with an Adjustable Video Clock
US8887218B2 (en) 2007-11-29 2014-11-11 Jan Maurits Nicolaas Fielibert Systems and methods of adjusting bandwidth among multiple media streams
US8171123B2 (en) 2007-12-04 2012-05-01 Sony Computer Entertainment Inc. Network bandwidth detection and distribution
US8147339B1 (en) 2007-12-15 2012-04-03 Gaikai Inc. Systems and methods of serving game video
US20090300701A1 (en) 2008-05-28 2009-12-03 Broadcom Corporation Area of interest processing of video delivered to handheld device
US8874661B2 (en) * 2008-08-07 2014-10-28 Microsoft Corporation Method and system providing spectator information for a multimedia application
US8254704B2 (en) 2008-10-30 2012-08-28 Microsoft Corporation Remote computing platforms providing high-fidelity display and interactivity for clients
TWI387317B (zh) 2008-12-11 2013-02-21 Novatek Microelectronics Corp 產生重新取樣參考畫面之裝置及其方法與影像解碼系統
US8209430B2 (en) 2009-03-27 2012-06-26 Wyse Technology Inc. Apparatus and method for remote communication and bandwidth adjustments
GB2517102B (en) 2009-06-01 2015-03-25 Sony Comp Entertainment Us Qualified video delivery
US7974233B2 (en) 2009-07-29 2011-07-05 Wiviu Technology Inc. Systems and methods for transmitting and receiving data streams with feedback information over a lossy network

Also Published As

Publication number Publication date
TW201119404A (en) 2011-06-01
WO2010111095A1 (en) 2010-09-30
EP2412158A4 (en) 2013-09-11
CA2756681A1 (en) 2010-09-30
US20100166066A1 (en) 2010-07-01
US8526490B2 (en) 2013-09-03
KR20110132611A (ko) 2011-12-08
JP2012521720A (ja) 2012-09-13
CN102428699A (zh) 2012-04-25
AU2010229091A1 (en) 2011-11-10
RU2011142767A (ru) 2013-04-27
BRPI1012320B1 (pt) 2021-02-02
IL215302A0 (en) 2011-12-29
SG174906A1 (en) 2011-11-28
MX2011009971A (es) 2012-03-29
EP2412158A1 (en) 2012-02-01
KR101786122B1 (ko) 2017-10-17

Similar Documents

Publication Publication Date Title
TWI528832B (zh) 使用包括與成功接收視訊內容相關之資料之反饋的視訊壓縮方法及系統
TWI530163B (zh) 基於延時量測及其他反饋之壓縮視訊之系統及方法及機器可讀媒體
TWI554115B (zh) 基於反饋資料來選擇視訊編碼格式的方法及系統
TWI501589B (zh) 利用前向錯誤更正之視訊壓縮系統及方法
TWI475843B (zh) 用於多串流視訊壓縮之系統及方法
TWI545938B (zh) 臨時解碼器裝置及方法
TWI536806B (zh) 使用多個編碼格式之多串流視訊壓縮之系統及方法
TWI536805B (zh) 使用一選定影像塊及影像塊旋轉圖案於視訊編碼之系統與方法
TWI558109B (zh) 基於來自用戶端器件之反饋資訊來壓縮視訊圖框或其部分之方法及系統
TWI592198B (zh) 加速機構切換之系統和方法
KR101549278B1 (ko) 실시간 스트리밍 인터랙티브 비디오의 다수의 뷰들을 결합하기 위한 시스템
TWI399982B (zh) 用以壓縮串流互動視訊之系統
TWI459215B (zh) 用於將程式碼及資料儲存於應用程式主機代管中心內之系統及方法
TWI536804B (zh) 基於通信頻道之已偵測之資料速率以壓縮視訊的系統及方法
TW200942305A (en) Apparatus for streaming databases serving real-time applications used through streaming interactive video
BRPI1107030A2 (pt) Sistema e método para efeitos de vídeo hospedados remotos
TW200952495A (en) Apparatus for combining aplurality of views of real-time streaming interactive video
TW200935916A (en) System and method for compressing video by adjusting tile size based on detected intraframe motion or scene complexity
TW201322743A (zh) 用於控制視訊串流之圖形使用者介面,系統及方法