WO2021199128A1 - 画像データ転送装置、画像生成方法およびコンピュータプログラム - Google Patents

画像データ転送装置、画像生成方法およびコンピュータプログラム Download PDF

Info

Publication number
WO2021199128A1
WO2021199128A1 PCT/JP2020/014495 JP2020014495W WO2021199128A1 WO 2021199128 A1 WO2021199128 A1 WO 2021199128A1 JP 2020014495 W JP2020014495 W JP 2020014495W WO 2021199128 A1 WO2021199128 A1 WO 2021199128A1
Authority
WO
WIPO (PCT)
Prior art keywords
frame
image
user operation
time
display
Prior art date
Application number
PCT/JP2020/014495
Other languages
English (en)
French (fr)
Inventor
活志 大塚
Original Assignee
株式会社ソニー・インタラクティブエンタテインメント
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社ソニー・インタラクティブエンタテインメント filed Critical 株式会社ソニー・インタラクティブエンタテインメント
Priority to PCT/JP2020/014495 priority Critical patent/WO2021199128A1/ja
Priority to US17/909,481 priority patent/US20230132071A1/en
Priority to JP2022512522A priority patent/JP7441936B2/ja
Publication of WO2021199128A1 publication Critical patent/WO2021199128A1/ja

Links

Images

Classifications

    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformation in the plane of the image
    • G06T3/40Scaling the whole image or part thereof
    • 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/1066Session management
    • H04L65/1069Session establishment or de-establishment
    • 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/80Responding to QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • 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
    • 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/50Controlling the output signals based on the game progress
    • A63F13/52Controlling the output signals based on the game progress involving aspects of the displayed game scene
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/24Indexing scheme for image data processing or generation, in general involving graphical user interfaces [GUIs]

Definitions

  • the present invention relates to an image data transfer device and an image generation method for processing moving image data to be displayed.
  • the delay time due to the communication between the client terminal and the server can be a problem.
  • This problem is more likely to become apparent as the pursuit of higher image quality is pursued.
  • the present invention has been made in view of these problems, and an object of the present invention is to provide a technique for improving the responsiveness of a display to a user operation in an image display accompanied by data transmission by communication.
  • an aspect of the present invention relates to an image data transfer device.
  • This image data transfer device includes a client information acquisition unit that acquires information related to a user operation on a client terminal, an image generation unit that generates a moving image frame in response to a user operation, and the client that uses the generated frame data.
  • the image generation unit is provided with a communication unit for streaming transfer to the terminal, and the image generation unit identifies the display content at the time when the user operation is performed, and makes the content represented by the frame correspond to the user operation and the display content at that time. It is characterized by that.
  • the image data transfer device has a step of acquiring information related to a user operation on the client terminal, a step of generating a moving image frame in response to the user operation, and a step of transmitting the generated frame data to the client terminal.
  • the step of generating a frame including the step of streaming transfer specifies the display content at the time when the user operation is performed, and the content represented by the frame corresponds to the user operation and the display content at that time. It is characterized by.
  • the present invention it is possible to improve the responsiveness of the display to the user operation in the image display accompanied by data transmission by communication.
  • FIG. 1 It is a figure which shows the configuration example of the image processing system in this embodiment. It is a figure which shows the appearance example of the head-mounted display of this embodiment. It is a figure which shows the basic structure of the server and the image processing apparatus in this embodiment. It is a figure which conceptually shows the state of the process from drawing to display of an image in this embodiment. It is a figure which illustrates the flow of the frame processing in the server and the image processing apparatus of this embodiment. It is a figure which shows the functional block of the server and the image processing apparatus of this embodiment. It is a figure for demonstrating the user operation performed in the image processing apparatus, and the method of specifying the display content at a time point, in the operation state specifying part of the server in this embodiment.
  • FIG. 1 shows a configuration example of an image processing system according to the present embodiment.
  • the image display system 1 includes an image processing device 200, a head-mounted display 100, a flat plate display 302, and a server 400.
  • the image processing device 200 is connected to the head-mounted display 100 and the flat-plate display 302 by wireless communication or an interface 300 such as USB Type-C or HDMI (registered trademark).
  • the image processing device 200 is further connected to the server 400 via a network 306 such as the Internet or a LAN (Local Area Network).
  • a network 306 such as the Internet or a LAN (Local Area Network).
  • the server 400 As an image data transfer device, the server 400 generates at least a part of the image to be displayed and transmits it to the image processing device 200.
  • the server 400 may be a server of a company or the like that provides various distribution services such as a cloud game, or a home server that transmits data to an arbitrary terminal. Therefore, the scale of the network 306 is not limited, such as a public network such as the Internet or a LAN (Local Area Network).
  • the network 306 may be via a mobile phone carrier network, a Wi-Fi spot in the city, or a Wi-Fi access point at home.
  • the image processing device 200 and the server 400 may be directly connected by a video interface.
  • the image processing device 200 performs necessary processing on the image data transmitted from the server 400, and outputs the data to at least one of the head-mounted display 100 and the flat plate display 302.
  • the server 400 receives the movements of the heads and user operations of a plurality of users who each wear the head-mounted display 100 from the image processing device 200 connected to each head-mounted display 100.
  • the image processing device 200 may be connected to the input device 304 as a means of user operation for a game to be executed or the like.
  • the means of user operation is not limited to this, and the image processing device 200 may acquire the movement and sound of the user via a camera, motion sensor, microphone, etc. (not shown) and accept the user operation as a user operation.
  • the image processing device 200 may detect the movement of the head of the user wearing the head-mounted display 100 as a user operation by gesture. In any case, the image processing device 200 sequentially transmits the contents of the user operation to the server 400.
  • the server 400 draws, for example, a virtual world changed according to a user operation in a field of view corresponding to the movement of each user's head, and then transmits the virtual world to each image processing device 200.
  • the image processing device 200 converts the transmitted image data into a format suitable for the head-mounted display 100 and the flat-plate display 302 as necessary, and then converts the transmitted image data into the head-mounted display 100 and the flat-plate display 302 at an appropriate timing. Output.
  • the image processing device 200 uses the image transmitted from the server 400 as a separately prepared UI (User Interface) plain image (also referred to as an OSD (On Screen Display) plain image) or a camera included in the head mount display 100. After synthesizing the images captured by the above, the images may be output to the head mount display 100 or the flat plate display 302.
  • UI User Interface
  • OSD On Screen Display
  • the image processing device 200 may also improve the followability of the display with respect to the movement of the head by correcting the image transmitted from the server 400 based on the position and posture immediately before the display of the head-mounted display 100.
  • the image processing device 200 displays an image on the flat plate display 302 in the same field of view so that another person can see what kind of image the user wearing the head-mounted display 100 is viewing. You may do so.
  • the server 400 may display an image taken by a camera (not shown) as a display target and deliver it live to the image processing device 200.
  • the server 400 acquires multi-viewpoint images taken by a plurality of cameras at an event venue such as a sports competition or a concert, and uses the images to create an image in a field of view corresponding to the movement of the head-mounted display 100.
  • a free-viewpoint live image may be generated and distributed to each image processing device 200.
  • the configuration of the system to which this embodiment can be applied is not limited to the one shown in the figure.
  • the display device connected to the image processing device 200 may be either the head-mounted display 100 or the flat plate display 302, or may be a plurality of head-mounted displays 100.
  • the image processing device 200 may be built in the head-mounted display 100 or the flat plate display 302.
  • a flat-plate display, an image processing device, and an input device may be used as a personal computer or a mobile terminal (portable game machine, high-performance mobile phone, tablet terminal) integrally equipped with them.
  • At least one of the head-mounted display 100 and the flat plate display 302 may be connected to these devices as needed. Further, the number of image processing devices 200 connected to the server 400 is not limited. Further, the server 400 receives the operation contents of a plurality of users who are viewing the flat plate display 302 from the image processing device 200 connected to the flat plate display 302, generates an image corresponding to the operation, and then generates an image corresponding to the operation. It may be transmitted to each image processing device 200.
  • FIG. 2 shows an example of the appearance of the head-mounted display 100.
  • the head-mounted display 100 is composed of an output mechanism unit 102 and a mounting mechanism unit 104.
  • the mounting mechanism unit 104 includes a mounting band 106 that goes around the head and realizes fixing of the device when the user wears it.
  • the output mechanism 102 includes a housing 108 having a shape that covers the left and right eyes when the head-mounted display 100 is worn by the user, and includes a display panel inside so as to face the eyes when the head-mounted display 100 is worn.
  • the inside of the housing 108 is further provided with an eyepiece located between the display panel and the user's eyes when the head-mounted display 100 is attached to magnify the image.
  • the head-mounted display 100 may further include a speaker or earphone at a position corresponding to the user's ear when worn.
  • the head-mounted display 100 further includes a stereo camera 110 on the front surface of the housing 108, a monocular camera 111 with a wide viewing angle in the center, and four cameras 112 with a wide viewing angle at the four corners of the upper left, upper right, lower left, and lower right. Take a video of the real space in the direction corresponding to the direction of the face.
  • the head-mounted display 100 provides a see-through mode in which a moving image captured by the stereo camera 110 is immediately displayed to show the state of the real space in the direction in which the user is facing.
  • At least one of the images captured by the stereo camera 110, the monocular camera 111, and the four cameras 112 may be used to generate the display image.
  • SLAM Simultaneous Localization and Mapping
  • the image may be corrected in the device 200.
  • the captured image may be combined with the image transmitted from the server 400 to form a display image.
  • the head-mounted display 100 may be provided with any of motion sensors for deriving the position, posture, and movement of the head-mounted display 100, such as an acceleration sensor, a gyro sensor, and a geomagnetic sensor.
  • the image processing device 200 acquires information on the position and posture of the user's head at a predetermined rate based on the measured values of the motion sensor. This information can be used to determine the field of view of the image generated by the server 400 and to correct the image in the image processing device 200.
  • FIG. 3 shows the basic configuration of the server 400 and the image processing device 200 according to the present embodiment.
  • the server 400 and the image processing device 200 according to the present embodiment are provided with a local memory for storing a partial image smaller than one frame of the displayed image at a key point. Then, compression coding and transmission of image data in the server 400, data reception in the image processing device 200, decoding / decompression, various image processing, and output to the display device are pipelined in units of the partial image. As a result, the delay time from the drawing of the image on the server 400 to the display on the display device connected to the image processing device 200 is reduced.
  • the drawing control unit 402 is realized by the CPU (Central Processing Unit) and controls the drawing of the image in the image drawing unit 404.
  • the content of the image to be displayed in the present embodiment is not particularly limited, but the drawing control unit 402 advances the cloud game, for example, and causes the image drawing unit 404 to draw a frame of a moving image representing the result.
  • the drawing control unit 402 may acquire information related to the position and posture of the user's head from the image processing device 200 and control to draw each frame in the corresponding visual field.
  • the image drawing unit 404 is realized by a GPU (Graphics Processing Unit), draws a frame of a moving image at a predetermined or variable rate under the control of the drawing control unit 402, and stores the result in the frame buffer 406.
  • the frame buffer 406 is realized by RAM (Random Access Memory).
  • the video encoder 408 compresses and encodes the image data stored in the frame buffer 406 in units of partial images smaller than one frame.
  • the partial image is an image of each region formed by dividing the image plane of the frame by, for example, a boundary line set in the horizontal direction, the vertical direction, the vertical / horizontal bidirectional direction, or the diagonal direction.
  • the video encoder 408 may start the compression coding of the frame as soon as the image required for the compression coding is drawn by the image drawing unit 404 without waiting for the vertical synchronization signal of the server.
  • the conventional technology that synchronizes various processes such as frame drawing and compression coding with reference to the vertical synchronization signal
  • the time given to each process from image drawing to display is aligned in frame units to manage the frame order. Is easy.
  • the drawing process ends early depending on the contents of the frame, it is necessary to wait for the compression coding process until the next vertical synchronization signal.
  • unnecessary waiting time is prevented from occurring.
  • the coding method used by the video encoder 408 for compression coding is H.I. 264 / AVC and H. A general one such as 265 / HEVC may be used.
  • the video encoder 408 stores the data of the compressed and encoded image in the partial image storage unit 410.
  • the partial image storage unit 410 is a local memory realized by SRAM (Static Random Access Memory) or the like, and has a storage area corresponding to a data size of a partial image smaller than one frame. The same applies to the "partial image storage unit" described later.
  • the video stream control unit 414 reads the data, includes audio data, control information, and the like as necessary, and then packets the data. do.
  • the control unit 412 constantly monitors the data writing status of the video encoder 408 for the partial image storage unit 410, the data reading status of the video stream control unit 414, and the like, and appropriately controls the operations of both. For example, the control unit 412 controls the partial image storage unit 410 so that data shortage, that is, buffer underrun, or data overflow, that is, buffer overrun does not occur.
  • the input / output interface 416 establishes communication with the image processing device 200, and the video stream control unit 414 sequentially transmits packetized data via the network 306.
  • the input / output interface 416 may appropriately transmit audio data, data for tactile feedback, and the like in addition to image data.
  • the input / output interface 416 further acquires information related to user operations, the position and posture of the user's head, information related to various times described later, various notification signals, and the like from the image processing device 200, and supplies the information to the drawing control unit 402 and the like. You may.
  • the input / output interface 202 sequentially acquires image and audio data transmitted from the server 400, data for tactile feedback, various notification signals, and the like.
  • the input / output interface 202 further appropriately acquires information related to the user operation and the position and posture of the user's head from the input device 304, the head-mounted display 100, and the like, and transmits the information to the server 400.
  • the input / output interface 202 may also transmit various time-related information and various notification signals inside the image processing device 200 to the server 400.
  • the input / output interface 202 decodes the packet acquired from the server 400, and stores the extracted image data in the partial image storage unit 204.
  • the partial image storage unit 204 is a local memory provided between the input / output interface 202 and the video decoder 208.
  • the control unit 206 constantly monitors the data writing status of the input / output interface 202 to the partial image storage unit 204, the data reading status of the video decoder 208, and the like, and appropriately controls the operations of both.
  • the video decoder 208 reads the data, decodes and decompresses the data according to the procedure according to the coding method, and sequentially stores the data in the partial image storage unit 210.
  • the partial image storage unit 210 is a local memory provided between the video decoder 208 and the image processing unit 214.
  • the control unit 212 constantly monitors the data writing status of the video decoder 208 and the data reading status of the image processing unit 214 with respect to the partial image storage unit 210, and appropriately controls the operations of both.
  • the image processing unit 214 reads out the decrypted and decompressed partial image data each time the data is stored in the partial image storage unit 210, and performs processing necessary for display. For example, in the head-mounted display 100, in order to visually recognize an image without distortion when viewed through the eyepiece, a correction process of giving distortion opposite to the distortion caused by the eyepiece is performed.
  • the image processing unit 214 may refer to the separately prepared UI plane image and combine (superimpose) it with the image transmitted from the server 400. Further, the image processing unit 214 may combine the image captured by the camera included in the head-mounted display 100 with the image transmitted from the server 400. The image processing unit 214 may also correct the image transmitted from the server 400 so that the field of view corresponds to the position and posture of the user's head at the time of processing. The image processing unit 214 may also perform image processing suitable for output to the flat plate display 302, such as super-resolution processing.
  • the image processing unit 214 performs processing in units of partial images stored in the partial image storage unit 210, and sequentially stores them in the partial image storage unit 216.
  • the partial image storage unit 216 is a local memory provided between the image processing unit 214 and the display controller 220.
  • the control unit 218 constantly monitors the data writing status of the image processing unit 214 and the data reading status of the display controller 220 with respect to the partial image storage unit 216, and appropriately controls the operations of both.
  • the display controller 220 reads the data and outputs the data to the head-mounted display 100 or the flat plate display 302 at an appropriate timing. Specifically, the data of the uppermost partial image of each frame is output at the timing corresponding to the vertical synchronization signal of those displays, and then the data of the partial image is sequentially output downward.
  • FIG. 4 conceptually shows the state of processing from drawing to display of an image in the present embodiment.
  • the server 400 generates the moving image frame 90 at a predetermined or variable rate.
  • the frame 90 has a configuration in which images for the left eye and an image for the right eye are represented in a region divided into two equal parts on the left and right, but the configuration of the image generated by the server 400 is not limited to this.
  • the server 400 compresses and encodes the frame 90 for each partial image.
  • the image plane is divided into five in the horizontal direction to obtain partial images 92a, 92b, 92c, 92d, and 92e.
  • the partial images are compressed and coded one after another in this order, transmitted to the image processing apparatus 200 and displayed as shown by the arrows. That is, while the uppermost partial image 92a is subjected to processing such as compression coding, transmission, decoding / decompression, and output to the display panel 94, the lower partial image 92b and the lower partial image 92c are referred to.
  • the partial images are sequentially transmitted and displayed as described above. As a result, various processes required from image drawing to display can be performed in parallel, and the display can be advanced with the minimum delay even if the transfer time intervenes.
  • a procedure occurs in which the user recognizes the game content such as video, audio, and tactile feedback transferred from the server 400, performs some reaction, and returns the content to the server 400. .. That is, when the frame transmitted from the server 400 is displayed on the image processing apparatus 200 side, the server 400 processes the frames after that, and the user operation performed on the displayed frame arrives at the server 400. By that time, the server 400 is processing further frames.
  • FIG. 5 illustrates a flow of frame processing in the server 400 and the image processing device 200.
  • the time elapses in the horizontal direction, and the top row shows the generation time of each frame of the moving image on the server 400 by a thick arrow together with the frame number.
  • the times of various processes performed for the "1st" frame are listed below.
  • the server 400 compresses and encodes the data (S10) and transfers the data to the image processing device 200 (S12).
  • the image processing device 200 decodes and decompresses the data (S14), performs necessary image processing (S16), and displays the data on the display device (S18).
  • the processes S10 to S18 can be performed in parallel in a time-overlapping state by advancing in units of partial images.
  • the user recognizes the image displayed in this way (S20) and generates a user operation (S22). Then, the image processing device 200 receives it and transfers the information related to the operation content to the server 400 (S24). As a result, the server 400 specifies the content of the user operation during the generation of the "4th" frame in the illustrated example. As a result, the "2" to "4" frames displayed after the user performs the operation in the image processing device 200 represent the image world on the premise that the user operation has not been performed.
  • the server 400 in the present embodiment identifies the image world displayed at the time when the user operation is performed, and generates the latest frame as a result of the user operation being performed there.
  • the image world tentatively created from the "2nd" frame is retroactively corrected, and then the "5th" and subsequent frames are generated.
  • the pipeline processing for each partial image in the server 400 and the image processing device 200 is effective for reducing the delay, but the present embodiment is not limited to that. That is, the user operation reflection processing described below exerts the same effect even when the processing is progressed on a frame-by-frame basis.
  • FIG. 6 shows the functional blocks of the server 400 and the image processing device 200 of this embodiment.
  • Each functional block shown in the figure can be realized by a CPU, GPU, encoder, decoder, arithmetic unit, various memories, etc. in terms of hardware, and in terms of software, an information processing function and an image loaded into memory from a recording medium. It is realized by a program that exerts various functions such as drawing function, data input / output function, and communication function. Therefore, it is understood by those skilled in the art that these functional blocks can be realized in various forms by hardware only, software only, or a combination thereof, and is not limited to any of them.
  • the server 400 includes an image generation unit 420, a compression coding unit 422, a packetization unit 424, a communication unit 426, and a client information acquisition unit 428.
  • the image generation unit 420 is composed of the drawing control unit 402, the image drawing unit 404, and the frame buffer 406 of FIG. 3, and generates a frame of a moving image such as a game image to be transmitted to the image processing device 200 at a predetermined or variable rate. ..
  • the image generation unit 420 may acquire moving image data from a camera, a storage device, or the like (not shown).
  • the image generation unit 420 includes an instance storage unit 430, an operation status identification unit 432, a drawing unit 434, and a discard processing unit 436.
  • the instance storage unit 430 holds the past state (instance) of the world represented by the generated moving image for a predetermined time.
  • the "state (instance)" is at least information that is necessary for drawing an image and can change according to a user operation. For example, in an electronic game, the position and posture of an object operated by a user, the position and posture of an enemy character, the battle situation, a story, the content of a conversation, the state of surrounding objects, and the like.
  • the purpose is not to limit the instances to these, and it may vary depending on the content to be expressed.
  • the instance storage unit 430 stores a predetermined number of frames of instances.
  • the operation status specifying unit 432 specifies the display content at the time when the user operation is performed in the image processing device 200. In the example of FIG. 5, it is specified that the display at the time when the user operation is performed is the "first" frame.
  • the operation status specifying unit 432 may specify not only the frame displayed at the time when the user operation is performed, but also the content of the processing applied to the frame in the image processing device 200. For example, as described above, when the image processing device 200 corrects the visual field according to the position and posture immediately before the display of the head-mounted display 100, the operation status specifying unit 432 specifies the display content after the visual field correction. As a result, not only the timing of the user operation but also information such as what the displayed image was and the position where the user operation was performed can be accurately specified.
  • the drawing unit 434 generates each frame of a moving image having a change corresponding to the user operation in the image processing device 200. Specifically, the drawing unit 434 reflects the user operation in the past image world based on the information specified by the operation status specifying unit 432 together with the detection of the user operation, and then generates an image showing the subsequent change. However, as will be described later, in consideration of the continuity with the displayed frame, the frame may be continuously generated assuming that the user operation has not been performed.
  • the discard processing unit 436 contradicts the case where the past frame generated on the premise that the user operation was not performed before the detection of the user operation is proceeding in an irreversible direction or the image world on the premise that the user operation is performed. If so, the process of discarding the data is performed for the undisplayed frame. In the example of FIG. 5, discontinuity may occur in the contents of the "5" th frame that can reflect the user operation and the "2" to "4" th frames that precede it.
  • provisional frames past frames such as the "2" to "4" frames that have been generated by the server 400 and do not reflect the newly detected user operation are referred to as "provisional frames".
  • provisional frames When the discontinuity between the provisional frame and the newly generated frame cannot be overlooked, for example, a situation occurs in which a destroyed object returns to its original state or an object suddenly appears in an empty space.
  • the discard processing unit 436 makes it difficult to recognize the discontinuity by blocking the display of the provisional frame to the extent possible.
  • the discard processing unit 436 determines whether or not to start the process for blocking the display of the provisional frame by comparing the provisional frame with the new frame. Therefore, a determination standard is set in advance inside the discard processing unit 436. Qualitatively, as described above, it is determined that the provisional frame is discarded when the content is irreversible or when the contradiction between the provisional frame and the new frame is large.
  • the discard processing unit 436 transmits a signal requesting data destruction to the image processing device 200 via the communication unit 426 for the transmitted frame.
  • the request signal is given a higher priority than the packet for transmitting the frame data and transmitted to the image processing device 200 so that the image processing device 200 can receive the frame data at a higher speed than the frame data.
  • the signal requesting data destruction is a function related to data transmission / reception between the server 400 and the image processing device 200, for example, a packetization unit 424, a communication unit 426, input / output interfaces 416 and 202, a network, and an image data acquisition unit 240.
  • Other notifications and transfers that are proceeding in parallel in the above may be overtaken and transmitted by giving a high priority.
  • the discard processing unit 436 acquires the result of the data discard request from the image processing device 200. That is, the discard processing unit 436 specifies whether or not the discard request signal arrives at the image processing device 200 within the deadline in which the display can be blocked. When the request signal is in time for display blocking, the discard processing unit 436 requests the compression coding unit 422, the packetization unit 424, and the communication unit 426 to discard the data of the provisional frame that has not been transmitted to the image processing device 200. do. As a result, transmission to the image processing device 200 is resumed from the data of the new frame in which the user operation is reflected.
  • the discard processing unit 436 requests the drawing unit 434 to generate the next frame assuming that the user operation has not been performed. That is, when a provisional frame that is clearly inconsistent with the user operation is displayed, the continuity of the image world is prioritized by matching the newly generated frame with it.
  • the compression coding unit 422 is composed of the video encoder 408, the partial image storage unit 410, and the control unit 412 of FIG. 3, and compresses and encodes the image data generated by the image generation unit 420 in units of partial images.
  • the compression coding unit 422 performs motion compensation and coding in units of an area of a predetermined number of lines such as one line and two lines and a rectangular area of a predetermined size such as 16 ⁇ 16 pixels and 64 ⁇ 64 pixels. Therefore, the compression coding unit 422 may start the compression coding when the image generation unit 420 generates data in the minimum unit region required for the compression coding.
  • the partial image which is a unit of pipeline processing in compression coding and transmission, may be the same as the area of the minimum unit, or may be a larger area.
  • the packetizing unit 424 is composed of the video stream control unit 414 and the control unit 412 of FIG. 3, and packetizes the compressed and encoded partial image data in a format according to the communication protocol to be used.
  • generation time the time when the partial image is drawn (hereinafter referred to as “generation time”) is obtained from the image generation unit 420 or the compression coding unit 422 and is associated with the data of the partial image.
  • the communication unit 426 is composed of the input / output interface 416 of FIG. 3, and transmits a packet including the compression-encoded partial image data and the generation time thereof to the image processing device 200.
  • the server 400 performs compression coding, packetization, and transmission in parallel by pipeline processing in units of partial images smaller than one frame.
  • the communication unit 426 also transmits a request signal for data destruction of the provisional frame to the image processing device 200 with high priority in response to a request from the destruction processing unit 436.
  • the client information acquisition unit 428 is composed of the input / output interface 416 of FIG. 3 and acquires information related to user operations in the image processing device 200. That is, the client information acquisition unit 428 acquires the content of the user operation as well as the temporal information for specifying the display content at the time when the user operation occurs in the image processing device 200. Specific examples will be described later.
  • the client information acquisition unit 428 also acquires the result from the image processing device 200 when the destruction processing unit 436 transmits a request signal for data destruction of the provisional frame to the image processing device 200.
  • the client information acquisition unit 428 may further acquire information related to the content of image processing performed on each frame in the image processing device 200. For example, as described above, when the image processing device 200 corrects the field of view of the displayed image based on the position and orientation of the head-mounted display 100 immediately before the display, the client information acquisition unit 428 acquires the information related to the corrected field of view. good. The client information acquisition unit 428 appropriately supplies the acquired information to the operation status specifying unit 432 and the discard processing unit 436.
  • the image processing device 200 includes an input information acquisition unit 248, an image data acquisition unit 240, a decoding / decompression unit 242, an image processing unit 244, a display control unit 246, and a client information transmission unit 250.
  • the input information acquisition unit 248 is composed of the input / output interface 202 of FIG. 3, and acquires the content of the user operation performed via the input device 304. At that time, the input information acquisition unit 248 records the time when the user operation is performed.
  • the input information acquisition unit 248 may further specify the position and orientation of the head-mounted display 100 by acquiring captured images and measured values from various cameras and motion sensors included in the connected head-mounted display 100. Information on the position and orientation of the head-mounted display 100 can be used in the image processing unit 244 to correct the field of view of the displayed image.
  • the image data acquisition unit 240 is composed of the input / output interface 202, the partial image storage unit 204, and the control unit 206 of FIG. 3, and acquires compression-encoded partial image data from the server 400 together with its generation time.
  • the image data acquisition unit 240 also acquires a request signal for data destruction of the provisional frame from the server 400.
  • the decoding / decompression unit 242 is composed of the video decoder 208, the partial image storage unit 210, the control unit 206, and the control unit 212 of FIG. 3, and decodes and decompresses the data of the compression-encoded partial image.
  • the decoding / decompression unit 242 may start the decoding / decompression processing when the image data acquisition unit 240 acquires data in the smallest unit region required for compression coding such as motion compensation and coding.
  • the decoding / decompression unit 242 also notifies the image processing unit 244 and the display control unit 246 of the request for discarding the data of the provisional frame transmitted from the server 400, thereby appropriately stopping the processing and display of the target frame.
  • the image processing unit 244 is composed of the image processing unit 214, the partial image storage unit 216, the control unit 212, and the control unit 218 of FIG. 3, and performs predetermined processing on the partial image data to generate the partial image data for display. do.
  • the decoding / stretching unit 242 and the image processing unit 244 have a common function in that the partial image data is subjected to predetermined processing to generate the partial image data for display, and at least one of them is referred to as "image”. It can also be collectively referred to as "processing unit".
  • the image processing unit 244 makes a correction that gives the opposite distortion in consideration of the distortion of the eyepiece provided in the head-mounted display 100, for example.
  • the image processing unit 244 synthesizes an image to be displayed together with the moving image, such as a UI plain image, in units of partial images.
  • the image processing unit 244 acquires the position and posture of the user's head at that time, and corrects the image generated by the server 400 so that the field of view at the time of display is correct. This makes it possible to minimize the time lag between the movement of the user's head and the displayed image due to the transfer time from the server 400.
  • the image processing unit 244 may also perform any or a combination of commonly performed image processing.
  • the image processing unit 244 may perform gun marker correction, tone curve correction, contrast enhancement, and the like. That is, necessary offset correction may be performed on the pixel value / luminance value of the decoded / decompressed image data based on the characteristics of the display device or the user's specification.
  • the image processing unit 244 may perform noise removal processing that performs processing such as superimposition, weighted averaging, and smoothing with reference to neighboring pixels.
  • the image processing unit 244 may match the resolution of the image data with the resolution of the display panel, refer to neighboring pixels, and perform weighted averaging / oversampling such as bilinear / trilinear. Further, the image processing unit 244 may refer to neighboring pixels, determine the type of image texture, and selectively process denoising, edge enhancement, smoothing, tone / gamma / contrast correction accordingly. At this time, the image processing unit 244 may process the image together with the upscaler / downscaler of the image size.
  • the image processing unit 244 may perform format conversion when the pixel format of the image data and the pixel format of the display panel are different. For example, conversion between YUV to RGB, RGB to YUV, conversion between 444, 422, and 420 in YUV, conversion between 8, 10 and 12-bit colors in RGB, and the like may be performed. Further, when the decoded image data is in the HDR (High Dynamic Range) brightness range compatible format, the image processing unit 244 has a narrow HDR brightness range compatible range of the display display (the displayable brightness dynamic range is defined in the HDR format). Pseudo-HDR processing (color space change) may be performed to convert the HDR image into a brightness range format in a range compatible with the display panel while retaining the features of the HDR image as much as possible (such as narrower).
  • HDR High Dynamic Range
  • the image processing unit 244 uses an HDR-compatible format for the decoded image data, but when the display display supports only SDR (Standard Dynamic Range), the color space is changed to the SDR format while retaining the features of the HDR image as much as possible. It may be converted.
  • the decoded image data is in an SDR compatible format, but when the display display is compatible with HDR, the image processing unit 244 may enhance conversion to the HDR format according to the characteristics of the HDR panel as much as possible.
  • the image processing unit 244 may add error diffusion or perform a dithering process that is processed together with the pixel format conversion. Further, the image processing unit 244 may correct the region when there is a partial loss or abnormality in the decoded image data due to lack of network transfer data or garbled bits. Further, the image processing unit 244 may perform correction with pixels estimated from the periphery of the past frame or the current frame by filling with a single color, correction by duplication of nearby pixels, correction by pixels near the previous frame, and adaptive defect correction.
  • the image processing unit 244 may perform image compression in order to reduce the required band of the interface output from the image processing device 200 to the display device.
  • the image processing unit 244 may perform lightweight entropy coding by reference to neighboring pixels, index value reference coding, Huffman coding, and the like.
  • the resolution can be increased, but the reaction speed is slow.
  • an organic EL panel is used as the display device, the reaction speed is high, but it is difficult to increase the resolution, and a phenomenon called Black Smearing, in which color bleeding occurs in and around the black region, may occur.
  • the image processing unit 244 may make corrections so as to eliminate various adverse effects of such a display panel. For example, in the case of a liquid crystal panel, the image processing unit 244 resets the liquid crystal by inserting a black image between the frames to improve the reaction speed. Further, in the case of the organic EL panel, the image processing unit 244 offsets the luminance value and the gamma value in the gamma correction to make the color bleeding due to Black Smearing less noticeable.
  • the image processing unit 244 may perform super-resolution processing (SuperResolution) on the image to improve the definition and restore or reconstruct the high-frequency component.
  • SuperResolution super-resolution processing
  • the image processing unit 244 may convert the image by inputting the image data into the database or network model constructed in advance by using machine learning or deep learning.
  • the image processing unit 244 may reduce the delay by performing conversion in units of partial images. By matching the partial image unit at this time with the partial image unit determined based on the scanning order and the division configuration of the display panel, a series of processes can be made into a pipeline, and further reduction in delay can be realized.
  • the display control unit 246 is composed of the display controller 220 and the control unit 218 of FIG. 3, and sequentially displays partial image data for display on the display panel of the head-mounted display 100 or the flat plate display 302.
  • the acquisition order may be changed depending on the communication status, or the partial image data itself may not be acquired due to packet loss. Conceivable.
  • the display control unit 246 derives the elapsed time from the drawing of the partial image from the generation time of each partial image, and outputs the partial image to the display panel so as to reproduce the drawing timing on the server 400. Adjust the timing. Specifically, the display control unit 246 sets the original display order and display timing of the partial image data, and the amount of missing partial image data based on the generation time of the partial image data and / or the elapsed time from the generation time. Identify the data acquisition status such as.
  • the display control unit 246 changes the output target to the display panel according to the data acquisition status, and appropriately adjusts the output order and output timing. For example, the display control unit 246 determines whether to output the data of the original partial image included in the next frame or to output the data of the partial image included in the previous frame again according to the data acquisition status. .. The display control unit 246 determines such an output target by the timing of the vertical synchronization signal, which is the display start time of the next frame.
  • the display control unit 246 responds to the amount (ratio) of the acquired partial image, such as replacing the output target with the data of the previous frame when the partial image is missing in the frame at a ratio of a predetermined value or more.
  • the output target may be changed.
  • the display control unit 246 may change the output target of the next frame display period according to the past output record of the frame and the elapsed time from the generation time. Then, the display control unit 246 outputs the data of the partial image determined as the output target to the display panel in the determined order and timing.
  • the client information transmission unit 250 is composed of the input / output interface 202 of FIG. 3, and transmits the contents of the user operation acquired by the input information acquisition unit 248 to the server 400. At this time, the client information transmission unit 250 transmits the temporal information for specifying the display content at the time when the user operation occurs to the server 400 in association with the content of the user operation.
  • the "temporal information" may be any parameter that represents information on the time axis, such as a time (absolute time), a difference time, and a frame number.
  • the client information transmission unit 250 may also transmit the content of the correction applied to the display image by the image processing unit 244 to the server 400. Further, the client information transmission unit 250 collects the result of the data destruction request of the provisional frame transmitted from the server 400 from the image processing unit 244 and the like, and transmits the result to the server 400. At this time, the client information transmission unit 250 transmits the result with a higher priority than the others so that the server 400 can detect it at high speed. That is, the result of the data destruction request of the provisional frame is obtained in the function related to data transmission / reception between the server 400 and the image processing device 200, for example, the client information transmission unit 250, the input / output interfaces 416 and 202, the network, and the client information acquisition unit 428. Other notifications and transfers that are in progress in parallel may be overtaken and transmitted by giving them a high priority.
  • FIG. 7 is a diagram for explaining a method for the operation status specifying unit 432 of the server 400 to specify the user operation performed by the image processing device 200 and the display content at that time.
  • the upper part of the figure is the time axis of processing in the server 400, and the generation time of each frame is represented by a quadrilateral of the frame.
  • the lower row is the time axis of processing in the image processing device 200, and the display time on the display device is represented by a quadrilateral of the frame.
  • the frame 12 generated at time T1 on the server 400 is compressed and encoded or packetized as described above, and as a result, transmission to the image processing device 200 is started at time T2.
  • Reception of the data is started at time T3 in the image processing device 200, and as a result of decoding / decompression and image processing, the data is output and displayed on the display device at time T4.
  • the server 400 identifies the content displayed when the user operation acquired at time T6 occurs in the image processing device 200.
  • the server 400 transmits the generation time of each frame to the image processing device 200 together with the image data. Therefore, the client information transmission unit 250 of the image processing device 200 transmits the contents of the user operation and the generation time T1 of the frame 12 displayed at that time to the server 400 in association with each other. As a result, the operation status specifying unit 432 of the server 400 can specify the content of the transmitted user operation and the frame 12 which is the display content at that time.
  • the time difference (for example, time difference ⁇ T) between the time when the frame is generated in the server 400 (for example, time T1) and the time when the same frame is displayed in the image processing device 200 (for example, time T4) is set between the server 400 and the image. It may be monitored by a handshake with the processing device 200.
  • the client information transmission unit 250 of the image processing device 200 transmits the content of the user operation and the time T5 at which the user operation occurs to the server 400.
  • the operation status specifying unit 432 of the server 400 can specify the frame 12 generated immediately before the time shifted ⁇ T from the time T5 of the user operation as the display content at the time of the user operation.
  • the operation status specifying unit 432 may also specify at what timing of the frame display period the user operation is performed on the image world.
  • the server 400 transmits the frame number together with the image data to the image processing device 200, and the client information transmission unit 250 of the image processing device 200 together with the content of the user operation is the number of the frame 12 displayed at that time.
  • the time T4 absolute time
  • the client information transmission unit 250 only transmits the number of the frame 12 together with the content of the user operation, and does not have to specify the detailed time when the user operation is performed within the display time of the frame.
  • the operation status specifying unit 432 of the server 400 specifies how many previous frames the user operation was performed on the image world of the previous frame from the difference between the transmitted frame 12 number and the latest frame number.
  • the instance storage unit 430 is associated with the frame numbers generated so far and the instance at that time.
  • the operation status specifying unit 432 enters the image world at any timing of the frame display period. Also identify if a user operation has been performed.
  • the instance storage unit 430 may be further associated with the generation time of each frame.
  • FIG. 8 illustrates a case in which the discard processing unit 436 of the server 400 determines that the provisional frame should be discarded.
  • the horizontal direction of the figure is the time axis, and the contents represented by the moving image are schematically shown in five frames.
  • the server 400 of the present embodiment retroactively reflects the input operation in the image world. That is, if it is detected before the time t3 that the steering wheel operation has been properly performed for the frame at the time t1, the server 400 computationally derives the world in which the curve is bent without the occurrence of a collision or the like at the time t2.
  • the situation is shown as frame 20.
  • the operation status specifying unit 432 associates the corrected field of view with the input operation as described above.
  • the user operation can be strictly reflected in the image world.
  • the server 400 can generate the frame 22 whose running is continuing safely with respect to the time t3.
  • the frame 16 that has been generated or is being generated before that is a "provisional frame".
  • provisional frame 16 represents a state in which the car has collided, it contradicts the state in which the car is traveling in the new frame 22 at time t3.
  • the discard processing unit 436 compares the provisional frame 16 with the new frame 22 in the world reflecting the user operation on the image or in the image world, and determines that the temporary frame 16 should be discarded if the difference is larger than the set condition. ..
  • this comparison may be performed not only from the provisional frame immediately before the newly generated frame 22, but also from the provisional frame next to the frame displayed when the user operation is performed. Then, the provisional frame in which the difference is larger than the setting condition may be discarded. Further, as described above, if the image processing device 200 does not prevent the display even if the destruction is decided, the continuity of the image is maintained assuming that the user operation has not been performed. That is, in the illustrated example, if the frame 16 is displayed, the frame 18 is generated as it is and then displayed after the frame 16.
  • FIG. 9 is a diagram for explaining the procedure of the process related to the data destruction of the provisional frame.
  • the representation of the figure is the same as that of FIG. 5, but in the case of the figure, each process for the subsequent “2nd” and “3rd” frames is also shown.
  • the number in parentheses at the end of each processing name is the number of the frame to be processed.
  • the "1st" frame is processed in the same manner as in FIG. As a result, it is assumed that the information of the operation by the user who saw the frame is received by the server 400 at the time T10.
  • the discard processing unit 436 sets the "2" to "4" th provisional frame. The contents are compared to determine whether those frames should be discarded.
  • the discard processing unit 436 corresponds to the image processing device 200. Request the destruction of.
  • the image processing device 200 stops the display of the frame.
  • the time T12 at which the image processing device 200 receives it is before the display start time T14 of the "third" frame to be discarded, so that the display is displayed.
  • the blockage is successful.
  • the server 400 also internally executes the discard process. That is, the result of the processing related to the provisional frame including the "4th" frame is discarded, and the state of the image world is corrected assuming that the user operation is performed at the timing of the "1st" frame.
  • the server 400 then generates the "fifth" frame in the modified world.
  • the image processing device 200 receives the request signal after the display of the frame to be discarded is started, the display with that content is continued.
  • the time T15 when the image processing device 200 receives it is later than the display start time T14 of the "third" frame to be discarded, so that the display is displayed. Stopping is unsuccessful.
  • the image processing device 200 notifies the server 400 to that effect.
  • the server 400 cancels the discard process. That is, the result of the processing related to the provisional frame including the "4th" frame is not discarded, and the state of the image world is not corrected. Then, the server 400 generates the "fifth" frame as the user operation has not been performed.
  • FIG. 10 is a flowchart showing a processing procedure in which the server 400 generates a frame of a moving image while reflecting a user operation.
  • the image generation unit 420, the compression coding unit 422, the packetization unit 424, and the communication unit 426 of the server 400 cooperate to start the generation and transfer processing of the moving image frame (S30).
  • the frame data is transmitted to the image processing apparatus 200 in units of partial images and displayed.
  • the frame generation and transfer are continued without reflecting the user operation (S44) (N in S46).
  • the operation status specifying unit 432 performs the user operation in the image processing device 200. Identify the frame that was displayed at the time and its correction details.
  • the drawing unit 434 tentatively generates a frame when the user operation is reflected in the instance at the corresponding time stored in the instance storage unit 430, or the image world thereof (S33). Then, the discard processing unit 436 compares the temporary frame or image world with the provisional frame or the world represented by the provisional frame (S34), and determines whether or not to discard the provisional frame according to a predetermined determination criterion (S36). ).
  • the frame tentatively generated by the drawing unit 434 that reflects the user operation is transmitted to the image processing device 200 as it is (S42).
  • a request signal is transmitted to the image processing device 200 to discard the transmitted provisional frame (S38).
  • the server 400 transmits the frame generated by the drawing unit 434 and reflecting the user operation to the image processing device 200. (S42).
  • the server 400 discards all the processing results of the provisional frames remaining in the device, and modifies the instance stored in the instance storage unit 430 to reflect the user operation. If the data destruction is not successful (N in S40), the server 400 receives a notification to that effect from the image processing device 200, and generates and transmits the subsequent frames assuming that the user operation has not been performed (S44). The processes S32 to S44 are repeated until it becomes necessary to end the display due to a user operation or the like (N in S46), and when the need to end the display occurs, all the processes are terminated (Y in S46).
  • the processing related to the reflection of the user operation is also a part. It may be an image unit. That is, the process of making the content represented by the frame correspond to the user operation and the display content at that time, specifically, the start of drawing an image reflecting the user operation, the comparison with the provisional frame, the process related to discarding, etc. are all part. It may be carried out on an image-by-image basis.
  • the server 400 is operated by the user on the client side.
  • the display contents at the time are specified, and the next frame is generated so that the corresponding world is expressed.
  • the user can enjoy the image world with the same responsiveness and without discomfort regardless of the data transmission path.
  • the present invention can be used for various information processing devices such as servers, image display devices, game devices, mobile terminals, and personal computers, and image display systems including any of them.
  • 1 image display system 100 head mount display, 200 image processing device, 240 image data acquisition unit, 242 decoding / decompression unit, 244 image processing unit, 246 display control unit, 248 input information acquisition unit, 250 client information transmission unit, 302 flat plate Type display, 304 input device, 400 server, 420 image generation unit, 422 compression coding unit, 424 packetization unit, 426 communication unit, 428 client information acquisition unit, 430 instance storage unit, 432 operation status identification unit, 434 drawing unit , 436 Discard processing unit.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

サーバ400においてクライアント情報取得部428は、画像処理装置200からユーザ操作に係る情報を取得する。画像生成部420の操作状況特定部432は、ユーザ操作がなされた時点で画像処理装置200側に表示されていた内容を特定する。描画部434は、ユーザ操作の内容と、その時点での表示内容に対応するフレームを生成する。破棄処理部436は、ユーザ操作の検知前に生成した暫定フレームの内容に基づき、データを破棄するか否かを判定する。

Description

[規則37.2に基づきISAが決定した発明の名称] 画像データ転送装置、画像生成方法およびコンピュータプログラム
 この発明は、表示対象の動画像のデータを処理する画像データ転送装置および画像生成方法に関する。
 近年の情報処理技術や画像表示技術の向上により、様々な形態で映像世界を体験することができるようになってきた。例えばヘッドマウントディスプレイにパノラマ映像を表示し、ユーザの視線に対応する画像を表示させることにより、映像世界への没入感を高めたり、ゲームなどのアプリケーションの操作性を向上させたりできる。また、潤沢なリソースを有するサーバからストリーミング転送された画像データを表示させることにより、ユーザは場所や規模によらず高精細な動画像やゲーム画面を楽しむことができる。
 ネットワークを介して伝送された画像のデータをクライアント端末に即時表示させる技術においては、当該クライアント端末とサーバ間の通信による遅延時間が問題となり得る。例えばクライアント端末側でのユーザ操作を表示画像に反映させる場合、ユーザ操作のサーバへの送信と、サーバからクライアント端末への画像データの送信といったデータの行き来が必要になり、看過できない遅延時間を生むことがある。この問題は、高い画質を追求するほど顕在化しやすい。
 本発明はこうした課題に鑑みてなされたものであり、その目的は、通信によるデータ伝送を伴う画像表示において、ユーザ操作に対する表示の応答性を向上させる技術を提供することにある。
 上記課題を解決するために、本発明のある態様は画像データ転送装置に関する。この画像データ転送装置は、クライアント端末に対するユーザ操作に係る情報を取得するクライアント情報取得部と、ユーザ操作に応じて動画像のフレームを生成する画像生成部と、生成されたフレームのデータを前記クライアント端末にストリーミング転送する通信部と、を備え、画像生成部は、ユーザ操作がなされた時点での表示内容を特定し、フレームが表す内容を、当該ユーザ操作とその時点での表示内容に対応させることを特徴とする。
 本発明の別の態様は画像生成方法に関する。この画像生成方法は画像データ転送装置が、クライアント端末に対するユーザ操作に係る情報を取得するステップと、ユーザ操作に応じて動画像のフレームを生成するステップと、生成されたフレームのデータをクライアント端末にストリーミング転送するステップと、を含み、フレームを生成するステップは、ユーザ操作がなされた時点での表示内容を特定し、フレームが表す内容を、当該ユーザ操作とその時点での表示内容に対応させることを特徴とする。
 なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラム、データ構造、記録媒体などの間で変換したものもまた、本発明の態様として有効である。
 本発明によれば、通信によるデータ伝送を伴う画像表示において、ユーザ操作に対する表示の応答性を向上させることができる。
本実施の形態における画像処理システムの構成例を示す図である。 本実施の形態のヘッドマウントディスプレイの外観例を示す図である。 本実施の形態におけるサーバと画像処理装置の基本的な構成を示す図である。 本実施の形態における、画像の描画から表示までの処理の様子を概念的に示す図である。 本実施の形態のサーバと画像処理装置におけるフレームの処理の流れを例示する図である。 本実施の形態のサーバおよび画像処理装置の機能ブロックを示す図である。 本実施の形態においてサーバの操作状況特定部が、画像処理装置においてなされたユーザ操作と、その時点での表示内容を特定する手法を説明するための図である。 本実施の形態においてサーバの破棄処理部が、暫定フレームを破棄すべきと判定するケースを例示する図である。 本実施の形態における、暫定フレームのデータ破棄に係る処理の手順を説明するための図である。 本実施の形態においてサーバが、ユーザ操作を反映させながら動画像のフレームを生成する処理手順を示すフローチャートである。
 図1は、本実施の形態における画像処理システムの構成例を示す。画像表示システム1は、画像処理装置200、ヘッドマウントディスプレイ100、平板型ディスプレイ302、およびサーバ400を含む。画像処理装置200は、ヘッドマウントディスプレイ100および平板型ディスプレイ302と、無線通信またはUSB Type-C、HDMI(登録商標)などのインターフェース300により接続される。画像処理装置200はさらに、インターネットやLAN(Local Area Network)などのネットワーク306を介してサーバ400に接続される。
 サーバ400は、画像データ転送装置として、表示対象の画像の少なくとも一部を生成して画像処理装置200に送信する。ここでサーバ400は、クラウドゲームなど各種配信サービスを提供する企業などのサーバでもよいし、任意の端末にデータを送信する家庭内サーバなどでもよい。したがってネットワーク306は、インターネットなどの公衆ネットワークやLAN(Local Area Network)など、その規模は限定されない。例えばネットワーク306は携帯電話キャリアネットワークや、街中にあるWi-Fiスポット、家庭にあるWi-Fiアクセスポイントを経由したものでもよい。あるいは画像処理装置200とサーバ400は、ビデオインターフェースにより直接接続されてもよい。
 画像処理装置200は、サーバ400から送信された画像のデータに必要な処理を施し、ヘッドマウントディスプレイ100および平板型ディスプレイ302の少なくともいずれかに出力する。例えばサーバ400は、各自ヘッドマウントディスプレイ100を装着した複数のユーザの頭部の動きやユーザ操作を、各ヘッドマウントディスプレイ100に接続された画像処理装置200から受信する。
 ここで画像処理装置200には、実行するゲームなどに対するユーザ操作の手段として入力装置304を接続してよい。ただしユーザ操作の手段はこれに限らず、画像処理装置200は図示しないカメラ、モーションセンサ、マイクロフォンなどを介してユーザの動きや音声を取得し、ユーザ操作として受け付けてもよい。画像処理装置200はヘッドマウントディスプレイ100を装着したユーザの頭部の動きを、ジェスチャによるユーザ操作として検出してもよい。いずれにしろ画像処理装置200は、ユーザ操作の内容をサーバ400に逐次送信する。
 これに対しサーバ400は例えば、ユーザ操作に応じて変化させた仮想世界を、各ユーザの頭部の動きに対応する視野で描画したうえ、それぞれの画像処理装置200に送信する。画像処理装置200は送信された画像のデータを、必要に応じて、ヘッドマウントディスプレイ100や平板型ディスプレイ302に適した形式に変換したうえ、適切なタイミングでヘッドマウントディスプレイ100や平板型ディスプレイ302に出力する。このような処理を、動画像のフレームごとに繰り返せば、複数のユーザが参加するクラウドゲームシステムを実現できる。
 この際、画像処理装置200は、サーバ400から送信された画像に、別途準備したUI(User Interface)プレーン画像(あるいはOSD(On Screen Display)プレーン画像とも呼ぶ)や、ヘッドマウントディスプレイ100が備えるカメラによる撮影画像を合成してから、ヘッドマウントディスプレイ100や平板型ディスプレイ302に出力してもよい。
 画像処理装置200はまた、サーバ400から送信された画像を、ヘッドマウントディスプレイ100の表示直前の位置や姿勢に基づき補正することにより、頭部の動きに対する表示の追随性を高めてもよい。画像処理装置200は、平板型ディスプレイ302にも同様の視野で画像を表示させることにより、ヘッドマウントディスプレイ100を装着しているユーザがどのような画像を見ているかを、その他の人が見られるようにしてもよい。
 ただし本実施の形態において表示対象とする動画像の内容や、その表示先は特に限定されない。例えばサーバ400は、図示しないカメラによって撮影された画像を表示対象とし、画像処理装置200にライブ配信してもよい。このときサーバ400は、スポーツ競技やコンサートなどのイベント会場を複数のカメラで撮影した多視点画像を取得し、それを用いてヘッドマウントディスプレイ100の動きに応じた視野での画像を作り出すことにより、自由視点のライブ映像を生成し、各画像処理装置200に配信してもよい。
 また本実施の形態を適用できるシステムの構成は図示するものに限定されない。例えば画像処理装置200に接続する表示装置はヘッドマウントディスプレイ100と平板型ディスプレイ302のどちらか一方でもよいし、複数のヘッドマウントディスプレイ100であってもよい。また画像処理装置200はヘッドマウントディスプレイ100や平板型ディスプレイ302に内蔵されていてもよい。例えば平板型のディスプレイ、画像処理装置、入力装置を、それらを一体的に備えたパーソナルコンピュータや携帯端末(ポータブルゲーム機、高機能携帯電話、タブレット端末)としてもよい。
 これらの装置にさらにヘッドマウントディスプレイ100および平板型ディスプレイ302の少なくともいずれかを必要に応じて接続できるようにしてもよい。またサーバ400に接続される画像処理装置200の数も限定されない。さらにサーバ400は、各自の平板型ディスプレイ302を視聴している複数のユーザの操作内容を、各平板型ディスプレイ302に接続された画像処理装置200から受信し、それに対応する画像を生成したうえ、それぞれの画像処理装置200に送信してもよい。
 図2は、ヘッドマウントディスプレイ100の外観例を示す。この例においてヘッドマウントディスプレイ100は、出力機構部102および装着機構部104で構成される。装着機構部104は、ユーザが被ることにより頭部を一周し装置の固定を実現する装着バンド106を含む。出力機構部102は、ヘッドマウントディスプレイ100をユーザが装着した状態において左右の目を覆うような形状の筐体108を含み、内部には装着時に目に正対するように表示パネルを備える。
 筐体108内部にはさらに、ヘッドマウントディスプレイ100の装着時に表示パネルとユーザの目との間に位置し、画像を拡大して見せる接眼レンズを備える。またヘッドマウントディスプレイ100はさらに、装着時にユーザの耳に対応する位置にスピーカーやイヤホンを備えてよい。
 ヘッドマウントディスプレイ100はさらに、筐体108の前面にステレオカメラ110、中央に広視野角の単眼カメラ111、左上、右上、左下、右下の四隅に広視野角の4つのカメラ112を備え、ユーザの顔の向きに対応する方向の実空間を動画撮影する。ある態様においてヘッドマウントディスプレイ100は、ステレオカメラ110が撮影した動画像を即時表示させることにより、ユーザが向いた方向の実空間の様子をそのまま見せるシースルーモードを提供する。
 またステレオカメラ110、単眼カメラ111、4つのカメラ112による撮影画像の少なくともいずれかを、表示画像の生成に利用してもよい。例えばSLAM(Simultaneous Localization and Mapping)により周囲の空間に対するヘッドマウントディスプレイ100、ひいてはユーザの頭部の位置や姿勢を所定のレートで取得し、サーバ400において生成する画像の視野を決定したり、画像処理装置200において当該画像を補正したりしてもよい。あるいは画像処理装置200において、サーバ400から送信された画像に撮影画像を合成し表示画像としてもよい。
 またヘッドマウントディスプレイ100は、内部に加速度センサ、ジャイロセンサ、地磁気センサなど、ヘッドマウントディスプレイ100の位置、姿勢、動きを導出するためのモーションセンサのいずれかを備えてよい。この場合、画像処理装置200は、当該モーションセンサの計測値に基づき、ユーザ頭部の位置や姿勢の情報を所定のレートで取得する。この情報は、サーバ400において生成する画像の視野を決定したり、画像処理装置200において当該画像を補正したりするのに用いることができる。
 図3は、本実施の形態におけるサーバ400と画像処理装置200の基本的な構成を示している。本実施の形態におけるサーバ400および画像処理装置200は、表示画像の1フレームより小さい部分画像を記憶するローカルメモリを要所に備える。そしてサーバ400における画像データの圧縮符号化および送信、画像処理装置200におけるデータの受信、復号伸張、各種画像処理、表示装置への出力を、当該部分画像の単位でパイプライン処理する。これにより、サーバ400での画像の描画から、画像処理装置200に接続された表示装置への表示までの遅延時間を軽減させる。
 サーバ400において、描画制御部402はCPU(Central Processing Unit)で実現され、画像描画部404における画像の描画を制御する。上述のとおり本実施の形態において表示させる画像の内容は特に限定されないが、描画制御部402は例えば、クラウドゲームを進捗させ、その結果を表す動画像のフレームを画像描画部404に描画させる。この際、描画制御部402は、画像処理装置200からユーザの頭部の位置や姿勢に係る情報を取得し、それに対応する視野で各フレームを描画するように制御してもよい。
 画像描画部404はGPU(Graphics Processing Unit)で実現され、描画制御部402の制御のもと、所定または可変のレートで動画像のフレームを描画し、その結果をフレームバッファ406に格納する。フレームバッファ406はRAM(Random Access Memory)によって実現される。ビデオエンコーダ408は、描画制御部402の制御のもと、フレームバッファ406に格納された画像のデータを、1フレームより小さい部分画像の単位で圧縮符号化する。部分画像は、フレームの画像平面を例えば横方向、縦方向、縦横双方向、または斜め方向に設定した境界線で分割してなる、各領域の画像である。
 ビデオエンコーダ408はこの際、圧縮符号化に必要な画像が画像描画部404により描画され次第、サーバの垂直同期信号を待たずに、当該フレームの圧縮符号化を開始してよい。フレームの描画や圧縮符号化など各種処理を、垂直同期信号を基準として同期させる従来技術によれば、画像の描画から表示までの各処理に与える時間をフレーム単位で揃えることにより、フレーム順の管理が容易である。しかしながらこの場合、フレームの内容によって描画処理が早く終了しても、圧縮符号化処理を次の垂直同期信号まで待機する必要がある。本実施の形態では後に述べるように、部分画像単位でその生成時刻を管理することにより、無駄な待機時間が生じないようにする。
 ビデオエンコーダ408が圧縮符号化に用いる符号化方式は、H.264/AVCやH.265/HEVCなど一般的なものでよい。ビデオエンコーダ408は、圧縮符号化した画像のデータを部分画像記憶部410に格納する。部分画像記憶部410はSRAM(Static Random Access Memory)などで実現されるローカルメモリであり、1フレームより小さい部分画像のデータサイズに対応する記憶領域を有する。以後に述べる「部分画像記憶部」も同様である。ビデオストリーム制御部414は、圧縮符号化された部分画像のデータが部分画像記憶部410に格納される都度、当該データを読み出し、オーディオデータや制御情報などを必要に応じて含めたうえでパケット化する。
 制御部412は、部分画像記憶部410に対するビデオエンコーダ408のデータ書き込み状況や、ビデオストリーム制御部414のデータ読み出し状況などを常に監視し、両者の動作を適切に制御する。例えば制御部412は、部分画像記憶部410にデータ欠乏、すなわちバッファアンダーランや、データ溢れ、すなわちバッファオーバーランが起きないように制御する。
 入出力インターフェース416は画像処理装置200と通信を確立し、ビデオストリーム制御部414がパケット化したデータを、ネットワーク306を介して順次送信する。入出力インターフェース416は画像データのほか、オーディオデータや触覚フィードバックのためのデータなども適宜送信してよい。入出力インターフェース416はさらに、ユーザ操作やユーザの頭部の位置や姿勢に係る情報、後述する各種時間に係る情報、各種通知信号などを画像処理装置200から取得し、描画制御部402などに供給してもよい。
 画像処理装置200において入出力インターフェース202は、サーバ400から送信された画像やオーディオのデータ、触覚フィードバックのためのデータ、各種通知信号などを順次取得する。入出力インターフェース202はさらに、ユーザ操作やユーザの頭部の位置や姿勢に係る情報などを入力装置304やヘッドマウントディスプレイ100などから適宜取得し、サーバ400に送信する。入出力インターフェース202はまた、画像処理装置200内部での各種時間に係る情報や各種通知信号を、サーバ400に送信してもよい。
 そして入出力インターフェース202は、サーバ400から取得したパケットを復号のうえ、取り出した画像のデータを部分画像記憶部204に格納する。部分画像記憶部204は入出力インターフェース202とビデオデコーダ208の間に設けたローカルメモリである。制御部206は、部分画像記憶部204に対する入出力インターフェース202のデータ書き込み状況や、ビデオデコーダ208のデータ読み出し状況などを常に監視し、両者の動作を適切に制御する。
 ビデオデコーダ208は、部分画像のデータが部分画像記憶部204に格納される都度、当該データを読み出し、符号化方式に応じた手順で復号伸張したうえ、部分画像記憶部210に順次格納する。部分画像記憶部210はビデオデコーダ208と画像処理部214の間に設けたローカルメモリである。制御部212は、部分画像記憶部210に対するビデオデコーダ208のデータ書き込み状況や、画像処理部214のデータ読み出し状況などを常に監視し、両者の動作を適切に制御する。
 画像処理部214は、復号伸張された部分画像のデータが部分画像記憶部210に格納される都度、当該データを読み出し、表示に必要な処理を施す。例えばヘッドマウントディスプレイ100において、接眼レンズを介して見たときに歪みのない画像を視認させるために、接眼レンズによる歪みと逆の歪みを与える補正処理を実施する。
 あるいは画像処理部214は、別途準備したUIプレーン画像を参照し、サーバ400から送信された画像に合成(スーパーインポーズ)してもよい。また画像処理部214は、ヘッドマウントディスプレイ100が備えるカメラによる撮影画像を、サーバ400から送信された画像に合成してもよい。画像処理部214はまた、処理の時点におけるユーザの頭部の位置や姿勢に対応する視野となるように、サーバ400から送信された画像を補正してもよい。画像処理部214はまた、超解像処理など平板型ディスプレイ302へ出力するのに適した画像処理を行ってもよい。
 いずれにしろ画像処理部214は、部分画像記憶部210に格納された部分画像の単位で処理を施し、部分画像記憶部216に順次格納していく。部分画像記憶部216は画像処理部214とディスプレイコントローラ220の間に設けたローカルメモリである。制御部218は、部分画像記憶部216に対する画像処理部214のデータ書き込み状況や、ディスプレイコントローラ220のデータ読み出し状況などを常に監視し、両者の動作を適切に制御する。
 ディスプレイコントローラ220は、画像処理後の部分画像のデータが部分画像記憶部216に格納される都度、当該データを読み出し、ヘッドマウントディスプレイ100や平板型ディスプレイ302に適切なタイミングで出力する。具体的には、それらのディスプレイの垂直同期信号に合致するタイミングで、各フレームの最上段の部分画像のデータを出力し、その後、下方に向けて部分画像のデータを順次出力していく。
 次に、画像の描画から表示までにサーバ400および画像処理装置200において実現される、部分画像のパイプライン処理について説明する。図4は、本実施の形態における、画像の描画から表示までの処理の様子を概念的に示している。上述のとおりサーバ400は、動画像のフレーム90を所定または可変のレートで生成する。図示する例でフレーム90は、左右に二等分した領域に左目用、右目用の画像をそれぞれ表した構成を有するが、サーバ400で生成する画像の構成をこれに限る趣旨ではない。
 サーバ400は上述のとおり、フレーム90を部分画像ごとに圧縮符号化する。図では画像平面を水平方向に5分割し、部分画像92a、92b、92c、92d、92eとしている。これにより、部分画像はこの順で次々に圧縮符号化され、矢印に示すように画像処理装置200へ伝送され表示される。すなわち最上段の部分画像92aに対し、圧縮符号化、送信、復号伸張、表示パネル94への出力といった処理が施されている間に、その下の部分画像92b、さらに下の部分画像92c、というように順次部分画像が伝送され表示される。これにより、画像の描画から表示までに必要な各種処理を並列に実施でき、転送時間が介在しても最低限の遅延で表示を進捗させることができる。
 一方、クラウドゲームなどにおいては、サーバ400から転送された映像、音声、触覚フィードバックなどのゲーム内容をユーザが認識のうえ、何らかのリアクションを行い、その内容をサーバ400へ返信する、といった手順が発生する。すなわちサーバ400から送信されたフレームが画像処理装置200側で表示された時点で、サーバ400ではそれより先のフレームの処理がなされ、表示されたフレームに対しなされたユーザ操作がサーバ400に到着した頃には、サーバ400ではさらに先のフレームが処理されている。
 ここでサーバ400がユーザ操作を検知した時点で、生成中の動画像にそのままユーザ操作を反映させると、ユーザの認識上では、自分の操作が時間差をもって実現した状態となる。その結果、ユーザが意図しない状況が発生したり、場合によっては画像世界が破綻したりすることが起こり得る。図5は、サーバ400と画像処理装置200におけるフレームの処理の流れを例示している。図は横方向を時間経過とし、最上段はサーバ400における動画像の各フレームの生成時間を、フレームの番号とともに太線矢印で示している。さらにそのうちの「1」番目のフレームに対しなされる各種処理の時間を、下方に列記している。
 サーバ400は「1」番目のフレームを生成後、そのデータを圧縮符号化し(S10)、画像処理装置200へ転送する(S12)。画像処理装置200は当該データを受信すると、それを復号伸張し(S14)、必要な画像処理を施したうえで(S16)、表示装置に表示させる(S18)。上述のとおりS10~S18の処理は、部分画像単位で進捗させることにより、時間的に重なり合った状態で並列に行える。
 ユーザはそのようにして表示された画像を認識したうえ(S20)、ユーザ操作を発生させる(S22)。すると画像処理装置200はそれを受け付け、操作内容に係る情報をサーバ400へ転送する(S24)。これによりサーバ400がユーザ操作の内容を特定するのは、図示する例では「4」番目のフレームを生成している最中となる。結果として、画像処理装置200においてユーザが操作を行ったあとに表示される「2」~「4」番目のフレームは、ユーザ操作がなされなかった前提での画像世界を表している。
 上述のとおりサーバ400が検知した時点での動画像に、ユーザ操作をそのまま反映させると、あたかも「5」番目のフレームに対しユーザ操作がなされたような状態が発生する。ローカルな環境でゲームを実施する場合はこのような遅延時間が発生しにくいため、外部との通信を介することによる応答性の悪さが顕在化しやすい。
 そこで本実施の形態におけるサーバ400は、ユーザ操作がなされた時点で表示されていた画像世界を特定し、そこでユーザ操作がなされたことの結果として、最新のフレームを生成する。図示する例では、「2」番目のフレームから仮に作ってきた画像世界を遡って修正したうえで、「5」番目以降のフレームを生成する。これにより、通信を介した操作であっても、画像世界やゲームの状況への影響を最小限にできる。なお上述のとおりサーバ400、画像処理装置200での部分画像単位でのパイプライン処理は低遅延化に有効であるが、本実施の形態をそれに限る主旨ではない。すなわち以後述べるユーザ操作の反映処理は、フレーム単位で処理を進捗させる場合であっても同様の効果を発揮する。
 図6は、本実施の形態のサーバ400および画像処理装置200の機能ブロックを示している。同図に示す各機能ブロックは、ハードウェア的にはCPU、GPU、エンコーダ、デコーダ、演算器、各種メモリなどで実現でき、ソフトウェア的には、記録媒体からメモリにロードした、情報処理機能、画像描画機能、データ入出力機能、通信機能などの諸機能を発揮するプログラムで実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
 サーバ400は、画像生成部420、圧縮符号化部422、パケット化部424、通信部426、およびクライアント情報取得部428を備える。画像生成部420は図3の描画制御部402、画像描画部404、フレームバッファ406で構成され、ゲーム画像など画像処理装置200に送信すべき動画像のフレームを、所定または可変のレートで生成する。あるいは画像生成部420は、図示しないカメラや記憶装置などから動画像のデータを取得してもよい。
 詳細には画像生成部420は、インスタンス記憶部430、操作状況特定部432、描画部434、および破棄処理部436を備える。インスタンス記憶部430は、生成する動画像が表す世界の、過去の状態(インスタンス)を所定時間分、保持する。ここで「状態(インスタンス)」とは少なくとも、画像の描画に必要で、かつユーザ操作に応じて変化し得る情報である。例えば電子ゲームにおいては、ユーザによる操作対象のオブジェクトの位置や姿勢、敵キャラクタの位置や姿勢、戦況、ストーリー、会話の内容、周囲のオブジェクトの状態などである。
 ただしインスタンスをこれらに限定する主旨ではなく、表現する内容によって様々であってよい。図5の例では、ユーザ操作の内容を正確に画像世界に反映させるためには、「1」番目のフレームにおけるインスタンスが必要となる。したがってインスタンス記憶部430は、所定数のフレーム分のインスタンスを記憶する。操作状況特定部432は、画像処理装置200においてユーザ操作がなされた時点での表示内容を特定する。図5の例では、ユーザ操作がなされた時点での表示が「1」番目のフレームであることを特定する。
 操作状況特定部432は、ユーザ操作がなされた時点で表示されていたフレームの特定のみならず、画像処理装置200において当該フレームに施された処理の内容についても特定してよい。例えば上述のとおり画像処理装置200が、ヘッドマウントディスプレイ100の表示直前の位置や姿勢に応じて視野の補正を行う場合、操作状況特定部432は、視野補正後の表示内容を特定する。これにより、ユーザ操作のタイミングのみならず、表示された画像がどのようであったかや、どの位置に対しユーザ操作がなされたか、といった情報を正確に特定できる。
 描画部434は、画像処理装置200におけるユーザ操作に対応する変化を有する動画像の各フレームを生成する。具体的には描画部434は、ユーザ操作の検知とともに操作状況特定部432が特定した情報に基づき、過去の画像世界へユーザ操作を反映させたうえで、その後の変化を表す画像を生成する。ただし後述するように、表示済みのフレームとの連続性を踏まえ、ユーザ操作がなされなかったものとしてフレームを生成し続けることがあってよい。
 破棄処理部436は、ユーザ操作の検知前にユーザ操作がなされなかった前提で生成された過去のフレームが、不可逆な方向に進行していた場合や、ユーザ操作がなされた前提の画像世界と矛盾する場合、未表示のフレームについてはデータを破棄する処理を実施する。図5の例では、ユーザ操作を反映させることが可能な「5」番目のフレームと、それ以前の「2」~「4」番目のフレームでは、内容に不連続性が生じ得る。
 以後、「2」~「4」番目のフレームのように、サーバ400で生成済みで、新たに検知したユーザ操作を反映させていない過去のフレームを「暫定フレーム」と呼ぶ。暫定フレームと新たに生成するフレームとの不連続性が看過できない程度であるとき、例えば破壊された物が元に戻ったり、何もない所に突然、物が表れたりするような状況が発生するとき、破棄処理部436は、可能な範囲で暫定フレームの表示を阻止することで、不連続性を認識されにくくする。
 一方、不連続性が容認できる程度であるとき、すなわち暫定フレームと新たに生成するフレームとの差が小さいときは、暫定フレームをそのまま表示させても差し支えない。したがって破棄処理部436は、暫定フレームと新たなフレームを比較するなどして、暫定フレームの表示を阻止するための処理を開始するか否かを判定する。そのため破棄処理部436の内部には、あらかじめ判定基準を設定しておく。定性的には、上述のとおり暫定フレームが不可逆な内容であるときや、暫定フレームと新たなフレームの矛盾が大きいときに破棄すると判定する。
 破棄すると判定した場合、破棄処理部436は送信済みのフレームについて、データ破棄を要求する信号を、通信部426を介して画像処理装置200へ送信する。当該要求信号には、フレームのデータを送信するパケットより高い優先度を与えて画像処理装置200へ送信することで、画像処理装置200がフレームのデータより高速に受信できるようにする。すなわちデータ破棄を要求する信号は、サーバ400および画像処理装置200間でのデータの送受に係る機能、例えばパケット化部424、通信部426、入出力インターフェース416、202、ネットワーク、画像データ取得部240において並列に進行している他の通知や転送を、高い優先度を与えることにより追い越して伝送してよい。
 そして破棄処理部436は、データ破棄要求の結果を画像処理装置200から取得する。すなわち破棄処理部436は、破棄の要求信号が、表示の阻止が可能な期限内に画像処理装置200に到着したか否かを特定する。要求信号が表示阻止に間に合った場合、破棄処理部436は、画像処理装置200へ未送信の暫定フレームのデータも破棄するように、圧縮符号化部422、パケット化部424、通信部426へ要求する。これにより画像処理装置200へは、ユーザ操作が反映された新たなフレームのデータから送信が再開される。
 破棄の要求信号が表示阻止に間に合わなかった場合、破棄処理部436は、ユーザ操作がなされなかったものとして次のフレームを生成するように描画部434に要求する。すなわちユーザ操作と明らかに矛盾のある暫定フレームが表示されてしまった場合は、新たに生成するフレームをそれに合わせることにより画像世界の連続性を優先させる。
 圧縮符号化部422は、図3のビデオエンコーダ408、部分画像記憶部410、制御部412で構成され、画像生成部420が生成した画像のデータを、部分画像の単位で圧縮符号化する。ここで圧縮符号化部422は、1行、2行など所定数の行の領域や、16×16画素、64×64画素など所定サイズの矩形領域を単位として動き補償や符号化を行う。したがって圧縮符号化部422は、圧縮符号化に必要な最小単位の領域のデータが画像生成部420により生成されたら、圧縮符号化を開始してよい。
 なお圧縮符号化や送信におけるパイプライン処理の単位である部分画像は、当該最小単位の領域と同じでもよいしそれより大きな領域としてもよい。パケット化部424は、図3のビデオストリーム制御部414、制御部412で構成され、圧縮符号化された部分画像のデータを、利用する通信のプロトコルに応じた形式でパケット化する。この際、当該部分画像が描画された時刻(以下、「生成時刻」と呼ぶ)を、画像生成部420または圧縮符号化部422から取得することにより、部分画像のデータと対応づけておく。
 通信部426は、図3の入出力インターフェース416で構成され、圧縮符号化された部分画像のデータとその生成時刻を含めたパケットを、画像処理装置200に送信する。これらの構成によりサーバ400は、圧縮符号化、パケット化、送信を、1フレームより小さい部分画像単位でパイプライン処理することにより並列に行う。通信部426はまた、破棄処理部436からの要求に応じて、暫定フレームのデータ破棄の要求信号を高い優先度で画像処理装置200に送信する。
 クライアント情報取得部428は、図3の入出力インターフェース416で構成され、画像処理装置200におけるユーザ操作に係る情報を取得する。すなわちクライアント情報取得部428は、ユーザ操作の内容とともに、画像処理装置200において当該ユーザ操作が生じた時点での表示内容を特定するための、時間的な情報を取得する。具体例は後に述べる。クライアント情報取得部428はまた、破棄処理部436が暫定フレームのデータ破棄の要求信号を画像処理装置200に送信したとき、その結果を画像処理装置200から取得する。
 クライアント情報取得部428はさらに、画像処理装置200において各フレームに対しなされた画像処理の内容に係る情報を取得してもよい。例えば上述のとおり画像処理装置200が、表示直前のヘッドマウントディスプレイ100の位置や姿勢に基づき表示画像の視野を補正する場合、クライアント情報取得部428は当該補正後の視野に係る情報を取得してよい。クライアント情報取得部428は、取得した情報を、操作状況特定部432や破棄処理部436に適宜供給する。
 画像処理装置200は、入力情報取得部248、画像データ取得部240、復号伸張部242、画像処理部244、表示制御部246、およびクライアント情報送信部250を備える。入力情報取得部248は図3の入出力インターフェース202で構成され、入力装置304を介してなされたユーザ操作の内容を取得する。入力情報取得部248はその際、ユーザ操作がなされた時刻を記録する。
 入力情報取得部248はさらに、接続されたヘッドマウントディスプレイ100が備える各種カメラやモーションセンサなどから撮影画像や計測値を取得することにより、ヘッドマウントディスプレイ100の位置や姿勢を特定してもよい。ヘッドマウントディスプレイ100の位置や姿勢の情報は、画像処理部244において、表示画像の視野の補正に用いることができる。
 画像データ取得部240は、図3の入出力インターフェース202、部分画像記憶部204、および制御部206で構成され、圧縮符号化された部分画像のデータを、その生成時刻とともにサーバ400から取得する。画像データ取得部240はまた、暫定フレームのデータ破棄の要求信号をサーバ400から取得する。復号伸張部242は、図3のビデオデコーダ208、部分画像記憶部210、制御部206、制御部212で構成され、圧縮符号化された部分画像のデータを復号伸張する。ここで復号伸張部242は、動き補償や符号化など圧縮符号化に必要な最小単位の領域のデータが画像データ取得部240により取得されたら、復号伸張処理を開始してよい。
 復号伸張部242はまた、サーバ400から送信された暫定フレームのデータ破棄の要求を、画像処理部244や表示制御部246に通知することにより、対象フレームの処理や表示を適宜中止させる。画像処理部244は図3の画像処理部214、部分画像記憶部216、制御部212、制御部218で構成され、部分画像のデータに所定の処理を施し、表示用の部分画像のデータを生成する。なお復号伸張部242と画像処理部244は、部分画像のデータに所定の処理を施し表示用の部分画像のデータを生成するという意味で共通の機能を有し、それらの少なくともいずれかを「画像処理部」と総称することもできる。
 画像処理部244は例えば上述のとおり、ヘッドマウントディスプレイ100が備える接眼レンズの歪みを考慮して逆の歪みを与える補正を施す。あるいは画像処理部244は、UIプレーン画像など、動画像とともに表示させるべき画像を、部分画像単位で合成する。または画像処理部244は、その時点でのユーザ頭部の位置や姿勢を取得し、サーバ400が生成した画像を、正しく表示時の視野になるように補正する。これにより、サーバ400からの転送時間によって、ユーザの頭部の動きと表示画像の間に生じる時間的なずれを最小限にすることができる。
 画像処理部244はそのほか、一般的になされる画像処理のいずれかまたは組み合わせを実施してもよい。例えば画像処理部244は、ガンマーカーブ補正、トーンカーブ補正、コントラスト強調などを行ってもよい。すなわち表示装置の特性やユーザ指定に基づき、復号伸張した画像データの画素値・輝度値について必要なオフセット補正をしてもよい。また画像処理部244は、近傍画素を参照し、重畳・加重平均・平滑化などの処理を行うノイズ除去処理を行ってもよい。
 また画像処理部244は、画像データの解像度と、表示パネルの解像度を合わせたり、近傍画素を参照し、バイリニア・トライリニアなど、加重平均・オーバーサンプリングなどを行ったりしてもよい。また画像処理部244は、近傍画素を参照し、画像テクスチャの種類を判定し、それに応じた、デノイズ・エッジ強調・平滑化・トーン/ガンマ/コントラスト補正を選択的に処理してもよい。このとき画像処理部244は、画像サイズのアップスケーラ・ダウンスケーラと合わせて処理してもよい。
 また画像処理部244は、画像データの画素フォーマットと、表示パネルの画素フォーマットが異なる場合にフォーマット変換を行ってもよい。例えばYUVからRGB、RGBからYUV、YUVにおける444、422、420間の変換、RGBにおける8、10、12ビットカラー間の変換などを行ってもよい。また画像処理部244は、デコードした画像データがHDR(High Dynamic Range)の輝度レンジ対応フォーマットである一方、表示ディスプレイのHDRの輝度レンジ対応範囲が狭い場合(表示可能な輝度ダイナミックレンジがHDRフォーマット規定より狭いなど)、できるだけHDR画像の特徴を残しながら、表示パネル対応可能な範囲のHDRの輝度レンジフォーマットへ変換する疑似HDR処理(色空間変更)を行ってもよい。
 また画像処理部244は、デコードした画像データがHDR対応フォーマットだったが、表示ディスプレイがSDR(Standard Dynamic Range)のみに対応している場合、できるだけHDR画像の特徴を残しながら、SDRフォーマットへ色空間変換してもよい。デコードした画像データがSDR対応フォーマットだったが、表示ディスプレイがHDRに対応している場合、画像処理部244はできるだけHDRパネルの特性にあわせて、HDRフォーマットへエンハンス変換してもよい。
 また画像処理部244は、表示ディスプレイの階調表現能力が低い場合、誤差拡散付加をしてもよいし、画素フォーマット変換とあわせて処理するディザリング処理を実施してもよい。また画像処理部244は、ネットワーク転送データの欠落やビット化けにより、デコードした画像データに部分的な欠損や異常がある場合に、その領域を補正処理してもよい。また画像処理部244は、単色塗りつぶし、近傍画素複製による補正、前フレーム近傍画素による補正、適応型欠損補正により過去フレームや現フレームの周辺から推測した画素による補正をしてもよい。
 また画像処理部244は、画像処理装置200から表示装置へ出力するインターフェースの必要帯域を削減するために画像圧縮を行ってもよい。この際、画像処理部244は、近傍画素参照によるライトウェイトなエントロピー符号化、インデックス値参照符号化、ハフマン符号化などを行ってもよい。また表示装置が液晶パネルを採用した場合、高解像度化が可能な反面、反応速度が遅い。表示装置が有機ELパネルを採用した場合は反応速度が速い反面、高解像度化が難しく、また黒色領域とその周辺で色にじみが発生するBlack Smearingと呼ばれる現象が生じ得る。
 そこで画像処理部244は、このような表示パネルによる様々な悪影響を解消するように補正を行ってもよい。例えば液晶パネルの場合、画像処理部244はフレーム間に黒い画像を挿入することにより液晶をリセットし、反応速度を向上させる。また有機ELパネルの場合、画像処理部244は輝度値や、ガンマ補正におけるガンマ値にオフセットをかけBlack Smearingによる色にじみを目立ちにくくする。
 画像処理部244は画像に対し、高精細度化や、高周波数成分の復元や再構築を行う超解像処理(Super Resolution)を行ってもよい。画像処理部244はこのとき、機械学習や深層学習を用いてあらかじめ構築したデータベースやネットワークモデルへ画像データを入力することにより画像を変換してもよい。ここで画像処理部244は、部分画像単位で変換を実施することにより低遅延化を図ってよい。このときの部分画像単位を、表示パネルの走査順序や分割構成に基づいて決定された部分画像単位と一致させることで、一連の処理をパイプライン化でき、さらなる低遅延化を実現できる。
 表示制御部246は、図3のディスプレイコントローラ220と制御部218で構成され、表示用の部分画像のデータを順次、ヘッドマウントディスプレイ100や平板型ディスプレイ302の表示パネルに表示させる。ただし本実施の形態では、部分画像の圧縮符号化データをサーバ400から個別に取得するため、通信状況によっては取得順が入れ替わったり、パケットロスにより部分画像のデータ自体が取得できなかったりすることが考えられる。
 そこで表示制御部246は、部分画像が描画されてからの経過時間を、各部分画像の生成時刻から導出したうえ、サーバ400での描画タイミングを再現するように、表示パネルへの部分画像の出力タイミングを調整する。具体的には表示制御部246は、部分画像のデータの生成時刻、および/または生成時刻からの経過時間に基づき、部分画像のデータの本来の表示順や表示タイミング、部分画像のデータの欠落量などのデータ取得状況を特定する。
 そして表示制御部246はデータ取得状況に応じて、表示パネルへの出力対象を変化させたり、出力順や出力タイミングを適切に調整したりする。例えば表示制御部246はデータ取得状況に応じて、次のフレームに含まれる本来の部分画像のデータを出力するか、それより前のフレームに含まれる部分画像のデータを再度出力するかを決定する。表示制御部246は、次のフレームの表示開始時刻である垂直同期信号のタイミングまでにそのような出力対象を決定する。
 例えば表示制御部246は、フレーム中、所定値以上の割合で部分画像が欠落している場合に、出力対象を前のフレームのデータに置き換えるなど、取得された部分画像の量(割合)に応じて出力対象を変化させてもよい。また表示制御部246は、過去のフレームの出力実績や、生成時刻からの経過時間に応じて、次のフレーム表示期間の出力対象を変化させてもよい。そして表示制御部246は、決定した順序およびタイミングで、出力対象として決定された部分画像のデータを表示パネルに出力する。
 クライアント情報送信部250は図3の入出力インターフェース202で構成され、入力情報取得部248が取得したユーザ操作の内容をサーバ400に送信する。この際、クライアント情報送信部250は、ユーザ操作が生じた時点での表示内容を特定するための時間的な情報を、ユーザ操作の内容と対応づけてサーバ400に送信する。ここで「時間的な情報」とは、時刻(絶対時間)のほか、差分時間やフレーム番号など、時間軸上の情報を表すパラメータであればよい。
 クライアント情報送信部250はまた、画像処理部244が表示画像に対し施した補正の内容をサーバ400に送信してよい。さらにクライアント情報送信部250は、サーバ400から送信された、暫定フレームのデータ破棄要求に対する結果を画像処理部244などから収集し、サーバ400に送信する。この際、クライアント情報送信部250は、当該結果を他より高い優先度で送信することにより、サーバ400が高速で検知できるようにする。すなわち暫定フレームのデータ破棄要求に対する結果は、サーバ400および画像処理装置200間でのデータの送受に係る機能、例えばクライアント情報送信部250、入出力インターフェース416、202、ネットワーク、クライアント情報取得部428において並列に進行している他の通知や転送を、高い優先度を与えることにより追い越して伝送してよい。
 図7は、サーバ400の操作状況特定部432が、画像処理装置200においてなされたユーザ操作と、その時点での表示内容を特定する手法を説明するための図である。図の上段はサーバ400における処理の時間軸であり、各フレームの生成時刻をフレームの四辺形で表している。下段は画像処理装置200における処理の時間軸であり、表示装置での表示時刻をフレームの四辺形で表している。
 例えばサーバ400において時刻T1で生成されたフレーム12は、上述のとおり圧縮符号化やパケット化がなされた結果、時刻T2で画像処理装置200への送信が開始される。当該データは画像処理装置200において時刻T3で受信が開始され、復号伸張や画像処理がなされた結果、時刻T4で表示装置に出力、表示される。これを見たユーザが、時刻T5で何らかの操作を行うと、その情報は時刻T6でサーバ400により受信される。このような処理の流れにおいてサーバ400は、時刻T6で取得したユーザ操作が画像処理装置200において発生した際に、表示されていた内容を特定する。
 例えば上述のとおりサーバ400は、各フレームの生成時刻を画像のデータとともに画像処理装置200に送信している。したがって画像処理装置200のクライアント情報送信部250は、ユーザ操作の内容とともに、その時点で表示されていたフレーム12の生成時刻T1を対応づけてサーバ400に送信する。これによりサーバ400の操作状況特定部432は、送信されたユーザ操作の内容と、その際の表示内容であるフレーム12を特定できる。
 あるいはサーバ400においてフレームが生成される時刻(例えば時刻T1)と、画像処理装置200において同じフレームが表示される時刻(例えば時刻T4)との時間ずれ(例えば時間ずれΔT)を、サーバ400と画像処理装置200とのハンドシェイクにより監視してもよい。この場合、画像処理装置200のクライアント情報送信部250は、ユーザ操作の内容とともに、当該ユーザ操作が発生した時刻T5をサーバ400に送信する。するとサーバ400の操作状況特定部432は、ユーザ操作の時刻T5から時間ずれΔTだけ前の時刻の直前に生成されたフレーム12を、ユーザ操作時の表示内容として特定できる。操作状況特定部432はまた、フレーム表示期間のどのタイミングでの画像世界に対しユーザ操作がなされたかも特定してよい。
 あるいはサーバ400は、画像のデータとともにそのフレーム番号を画像処理装置200に送信し、画像処理装置200のクライアント情報送信部250は、ユーザ操作の内容とともに、その時点で表示されていたフレーム12の番号と、ユーザ操作がなされた時刻T4(絶対時間)を対応づけてサーバ400に送信してもよい。ユーザ操作がなされた時刻T4の代わりに、動画の表示開始からユーザ操作がなされるまでの差分時間を送信してもよい。あるいはクライアント情報送信部250は、フレーム12の番号をユーザ操作の内容とともに送信するのみとし、当該フレームの表示時間内でユーザ操作がなされた詳細な時刻は特定しなくてもよい。
 これらの場合、サーバ400の操作状況特定部432は、送信されたフレーム12の番号と最新フレームの番号との差から、いくつ前のフレームの画像世界に対しユーザ操作がなされたかを特定する。これを実現するため、インスタンス記憶部430には、それまでに生成されたフレームの番号とその時点のインスタンスを紐付けておく。ユーザ操作がなされた時刻T4(絶対時間)や動画の表示開始からユーザ操作がなされるまでの差分時間をさらに取得した場合、操作状況特定部432は、フレーム表示期間のどのタイミングでの画像世界に対しユーザ操作がなされたかも特定する。この場合、インスタンス記憶部430にはさらに、各フレームの生成時刻を紐付けておいてもよい。
 図8は、サーバ400の破棄処理部436が、暫定フレームを破棄すべきと判定するケースを例示している。図の横方向が時間軸であり、動画像に表される内容を5つのフレームで模式的に示している。ここでは、ユーザ操作により車のオブジェクトが仮想世界を走るゲームを想定している。まず時刻t1におけるフレーム14では、手前にある車のオブジェクトがカーブに差し掛かっている。ここでユーザがハンドルを左に切る操作を行っても、サーバ400で検知されなければ、時刻t2ではフレーム16のように障害物に衝突した様子が描画される。
 そして時刻t3では、フレーム18のように「GAME OVER」、すなわちゲームが終了してしまうこともあり得る。本実施の形態のサーバ400は上述のとおり、時間を遡って入力操作を画像世界に反映させる。すなわち時刻t1のフレームに対しハンドル操作が適切になされたことを時刻t3の前に検知したら、サーバ400は、時刻t2では衝突などは発生せずにカーブを曲がった世界を計算上で導出する。
 図ではわかりやすさのために、その様子をフレーム20として表している。なおヘッドマウントディスプレイ100を表示先として、画像処理装置200が表示の直前で視野を補正する場合、操作状況特定部432は上述のとおり、補正後の視野と入力操作を対応づける。これにより、ユーザ操作を画像世界に厳密に反映させることができる。
 その結果、サーバ400は、無事に走行が続いている内容のフレーム22を時刻t3に対し生成できる。なおサーバ400がユーザ操作を検知した段階で、それより前に生成済み、または生成中のフレーム16は「暫定フレーム」となる。この例で暫定フレーム16は車が衝突した状態を表しているため、時刻t3の新たなフレーム22で車が走行している状態と矛盾してしまう。
 サーバ400が、時刻t3より後にユーザ操作を検知した場合などは、「GAME OVER」のフレーム18の後に車が走行している状態になり、さらに不自然となる。一方で、時刻t2の暫定フレーム16が、多少道を逸れた程度の内容であれば、その後にフレーム22を表示させても大きな違和感は与えにくい。したがって破棄処理部436は、暫定フレーム16と、ユーザ操作を反映させた世界での新たなフレーム22を画像上、または画像世界で比較し、その差が設定条件より大きければ破棄すべきと判定する。
 なおこの比較は、新たに生成するフレーム22の直前の暫定フレームのみならず、ユーザ操作がなされた時に表示されていたフレームの次の暫定フレームから順次行ってよい。そして設定条件より大きい差が生じている暫定フレームから破棄の対象としてよい。また上述のとおり、破棄を決定しても画像処理装置200で表示の阻止に間に合わない場合、ユーザ操作がなされなかったとして画像の連続性を保つ。つまり図示する例では、フレーム16が表示されてしまったら、そのままフレーム18を生成したうえでフレーム16の後に表示させる。
 図9は、暫定フレームのデータ破棄に係る処理の手順を説明するための図である。図の表し方は図5と同様であるが、同図の場合、後続の「2」番目、「3」番目のフレームに対する各処理も示している。各処理名の末尾の括弧内の数字は、処理対象のフレームの番号である。まず図5と同様に、「1」番目のフレームが処理される。これにより当該フレームを見たユーザによる操作の情報が、時刻T10でサーバ400に受信されるとする。
 上述のとおり、サーバ400がユーザ操作の情報を取得した直後に、それを反映させた「5」番目のフレームを生成するにあたり、破棄処理部436は「2」~「4」番目の暫定フレームとその内容を比較し、それらのフレームを破棄すべきか否かを判定する。破棄すべきと判定したフレームが、画像処理装置200へ送信済みあるいは送信中の暫定フレーム、図の例では「3」番目のフレームを含む場合、破棄処理部436は、画像処理装置200に該当データの破棄を要求する。
 画像処理装置200での要求信号の受信が破棄対象のフレームの表示前であれば、画像処理装置200は当該フレームの表示を中止する。図示する例では、時刻T11で要求信号が送信された結果、画像処理装置200がそれを受信した時刻T12が、破棄対象である「3」番目のフレームの表示開始時刻T14より前のため、表示阻止が成功する。この場合、サーバ400は内部でも破棄処理を実行する。すなわち「4」番目のフレームを含む暫定フレームに係る処理の結果を破棄し、画像世界の状態を、「1」番目のフレームのタイミングでユーザ操作がなされたとして修正する。そしてサーバ400は、修正した世界での「5」番目のフレームを生成する。
 画像処理装置200での要求信号の受信が破棄対象のフレームの表示開始後であったときは、その内容での表示を続行する。図示する例では、時刻T13で要求信号が送信された結果、画像処理装置200がそれを受信した時刻T15が、破棄対象である「3」番目のフレームの表示開始時刻T14より後のため、表示阻止が不成功となる。この場合、画像処理装置200はその旨をサーバ400に通知する。時刻T16で当該通知を取得したら、サーバ400は破棄処理を中止する。すなわち「4」番目のフレームを含む暫定フレームに係る処理の結果は破棄せず、画像世界の状態も修正しない。そしてサーバ400は、ユーザ操作がなされなかったこととして「5」番目のフレームを生成する。
 図10は、サーバ400が、ユーザ操作を反映させながら動画像のフレームを生成する処理手順を示すフローチャートである。まずサーバ400の画像生成部420、圧縮符号化部422、パケット化部424、および通信部426は協働して、動画像のフレームの生成および転送処理を開始する(S30)。これによりフレームのデータが部分画像単位で画像処理装置200に送信され、表示される。
 画像処理装置200におけるユーザ操作が検知されない期間は(S32のN)、当然、ユーザ操作を反映させることなく(S44)、フレームの生成、転送を続行する(S46のN)。ユーザ操作が検知されたら(S32のY)、すなわちクライアント情報取得部428が画像処理装置200からユーザ操作に係る情報を受信したら、操作状況特定部432は、画像処理装置200においてユーザ操作がなされた時点で表示されていたフレームやその補正内容を特定する。
 これにより描画部434は、インスタンス記憶部430に記憶された該当時刻のインスタンスにユーザ操作を反映させた場合のフレーム、あるいはその画像世界を仮に生成する(S33)。そして破棄処理部436は、仮のフレームあるいは画像世界と、暫定フレームあるいはそれが表す世界とを比較し(S34)、所定の判定基準に則り、暫定フレームを破棄するか否かを決定する(S36)。
 破棄すべきでなければ(S36のN)、描画部434が仮に生成した、ユーザ操作を反映させたフレームをそのまま画像処理装置200に送信する(S42)。破棄すべきと判定された場合は(S36のY)、送信済みの暫定フレームを破棄するよう画像処理装置200に要求信号を送信する(S38)。当該要求信号が該当フレームの表示開始前に受信され、データ破棄が成功した場合(S40のY)、サーバ400は描画部434が生成した、ユーザ操作を反映させたフレームを画像処理装置200に送信する(S42)。
 この際、サーバ400は、装置内に残っていた暫定フレームの処理結果を全て破棄し、インスタンス記憶部430に格納されたインスタンスも、ユーザ操作を反映させたものに修正する。データ破棄が成功しなければ(S40のN)、サーバ400は画像処理装置200からのその旨の通知を受け、ユーザ操作がなされなかったものとして、以降のフレームを生成し送信する(S44)。S32からS44の処理を、ユーザ操作などにより表示を終了させる必要が生じるまで繰り返し(S46のN)、表示終了の必要が生じたら全処理を終了させる(S46のY)。
 なおこれまでの説明では、ユーザ操作の反映に係る処理をフレーム単位で実現する例を示したが、それ以外の処理を部分画像単位でパイプライン処理する場合、ユーザ操作の反映に係る処理も部分画像単位としてよい。すなわちフレームが表す内容を前記ユーザ操作とその時点での表示内容に対応させる処理、具体的にはユーザ操作を反映させた画像の描画開始、暫定フレームとの比較、破棄に係る処理などを全て部分画像単位で実施してよい。
 以上述べた本実施の形態によれば、サーバ400が生成した画像のデータを、クライアントである画像処理装置200が受信し表示させる形態のシステムにおいて、サーバ400は、クライアント側でユーザ操作がなされた時点での表示内容を特定し、それらに対応する世界が表現されるように次のフレームを生成する。これにより、サーバ400と画像処理装置200間でのデータのやりとりに起因した応答性の低下や、画像世界のストーリーへの影響を最小限に抑えられる。
 また、ユーザ操作を後から反映させることに起因して生じ得る、生成済みのフレームとの内容の連続性、整合性を確認し、それに応じてユーザ操作の反映の是非を決定する。例えば不可逆性のあるシーンが表示されてしまった場合は、ユーザ操作がなかったものとして以降のフレームを生成する。表示を阻止できた場合は、当該データを破棄したうえでユーザ操作を反映させたフレームを表示させる。暫定フレームとの不連続性が小さければ、暫定フレームを表示させつつ、ユーザ操作を反映させた以降のフレームも表示させる。以上の措置により、ユーザはデータの伝送経路に関わらず、同様の応答性で違和感なく画像世界を楽しむことができる。
 以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
 以上のように本発明は、サーバ、画像表示装置、ゲーム装置、携帯端末、パーソナルコンピュータなど各種情報処理装置や、それらのいずれかを含む画像表示システムなどに利用可能である。
 1 画像表示システム、 100 ヘッドマウントディスプレイ、 200 画像処理装置、 240 画像データ取得部、 242 復号伸張部、 244 画像処理部、 246 表示制御部、 248 入力情報取得部、 250 クライアント情報送信部、 302 平板型ディスプレイ、 304 入力装置、 400 サーバ、 420 画像生成部、 422 圧縮符号化部、 424 パケット化部、 426 通信部、 428 クライアント情報取得部、 430 インスタンス記憶部、 432 操作状況特定部、 434 描画部、 436 破棄処理部。

Claims (19)

  1.  クライアント端末に対するユーザ操作に係る情報を取得するクライアント情報取得部と、
     前記ユーザ操作に応じて動画像のフレームを生成する画像生成部と、
     生成されたフレームのデータを前記クライアント端末にストリーミング転送する通信部と、
     を備え、
     前記画像生成部は、前記ユーザ操作がなされた時点での表示内容を特定し、前記フレームが表す内容を、当該ユーザ操作とその時点での表示内容に対応させることを特徴とする画像データ転送装置。
  2.  前記画像生成部は、前記ユーザ操作がなされた時点での表示対象の世界へ、当該ユーザ操作を反映させたうえで、その後の変化を表す内容で、前記フレームを生成することを特徴とする請求項1に記載の画像データ転送装置。
  3.  前記画像生成部は、前記表示対象の世界における過去の状態情報を保持するインスタンス記憶部を備え、当該過去の状態に前記ユーザ操作を反映させることを特徴とする請求項2に記載の画像データ転送装置。
  4.  前記クライアント情報取得部は、前記ユーザ操作の内容とともに、当該ユーザ操作がなされた時点で表示されていたフレームを特定するための時間的な情報を前記クライアント端末から取得し、
     前記画像生成部は、前記時間的な情報に基づき、前記ユーザ操作がなされた時点での表示内容を特定することを特徴とする請求項1から3のいずれかに記載の画像データ転送装置。
  5.  前記通信部は、前記フレームのデータとともに、当該フレームの生成時刻を前記クライアント端末に送信し、
     前記クライアント情報取得部は、前記ユーザ操作がなされた時点で表示されていたフレームの生成時刻を、前記時間的な情報として取得し、
     前記画像生成部は、前記生成時刻に基づき、前記ユーザ操作がなされた時点で表示されていたフレームを特定することを特徴とする請求項4に記載の画像データ転送装置。
  6.  前記クライアント情報取得部は、前記ユーザ操作がなされた時刻を前記クライアント端末から取得するとともに、前記フレームのデータが生成されてから前記クライアント端末において表示されるまでの時間ずれを取得し、
     前記画像生成部は、前記ユーザ操作がなされた時刻から前記時間ずれだけ前の時刻の直前に生成したフレームを特定することを特徴とする請求項4に記載の画像データ転送装置。
  7.  前記画像生成部は、フレーム表示期間のどのタイミングでの画像世界に対しユーザ操作がなされたかを特定することを特徴とする請求項6に記載の画像データ転送装置。
  8.  前記クライアント情報取得部は、前記ユーザ操作がなされた時点で表示されていたフレームの番号を、前記時間的な情報として取得し、
     前記画像生成部は、取得した前記フレームの番号と最新のフレームの番号との差から、いくつ前のフレームの画像世界に対しユーザ操作がなされたかを特定することを特徴とする請求項4に記載の画像データ転送装置。
  9.  前記クライアント情報取得部は、前記ユーザ操作がなされた時刻または動画の表示開始から前記ユーザ操作がなされるまでの差分時間をさらに取得し、
     前記画像生成部は、フレーム表示期間のどのタイミングでの画像世界に対しユーザ操作がなされたかを特定することを特徴とする請求項8に記載の画像データ転送装置。
  10.  前記クライアント情報取得部は、前記クライアント端末においてなされた、前記フレームに対する視野補正に係る情報を取得し、
     前記画像生成部は前記フレームが表す内容を、前記ユーザ操作がなされた時点での視野補正後の表示内容と前記ユーザ操作に対応させることを特徴とする請求項1から9のいずれかに記載の画像データ転送装置。
  11.  前記画像生成部は、前記ユーザ操作がなされたことを検知する前に生成した、ユーザ操作後の暫定フレームの内容と、前記ユーザ操作に対応する新たなフレームの内容とを比較し、前記暫定フレームのデータを破棄するか否かを判定することを特徴とする請求項1から10のいずれかに記載の画像データ転送装置。
  12.  前記暫定フレームのデータを破棄する判定がなされたとき、前記通信部は、前記クライアント端末へ、当該データの破棄を要求することを特徴とする請求項11に記載の画像データ転送装置。
  13.  前記クライアント情報取得部は、破棄対象のフレームの表示を阻止できなかった旨の通知を前記クライアント端末から取得し、
     前記画像生成部は、前記通知に応じて、前記ユーザ操作がなされなかったこととして新たなフレームを生成することを特徴とする請求項12に記載の画像データ転送装置。
  14.  前記通信部は、前記データの破棄を要求する信号を、前記フレームのデータより高い優先度で前記クライアント端末へ送信することを特徴とする請求項12または13に記載の画像データ転送装置。
  15.  前記データの破棄を要求する信号および、前記クライアント端末から送信される、破棄対象のフレームの表示を阻止できなかった旨の通知は、前記画像データ転送装置および前記クライアント端末間でのデータの送受に係る機能において並列に進行している他の通知および転送を追い越して伝送されることを特徴とする請求項14に記載の画像データ転送装置。
  16.  前記画像生成部は、前記暫定フレームのデータを破棄しない判定を行ったとき、当該暫定フレームに続いて、前記ユーザ操作に対応する新たなフレームを生成することを特徴とする請求項11から15のいずれかに記載の画像データ転送装置。
  17.  前記画像生成部は、前記フレームが表す内容を前記ユーザ操作とその時点での表示内容に対応させる処理を、1フレームより小さい部分画像の単位で実施することを特徴とする請求項1に記載の画像データ転送装置。
  18.  クライアント端末に対するユーザ操作に係る情報を取得するステップと、
     前記ユーザ操作に応じて動画像のフレームを生成するステップと、
     生成されたフレームのデータを前記クライアント端末にストリーミング転送するステップと、
     を含み、
     前記フレームを生成するステップは、前記ユーザ操作がなされた時点での表示内容を特定し、前記フレームが表す内容を、当該ユーザ操作とその時点での表示内容に対応させることを特徴とする、画像データ転送装置による画像生成方法。
  19.  クライアント端末に対するユーザ操作に係る情報を取得する機能と、
     前記ユーザ操作に応じて動画像のフレームを生成する機能と、
     生成されたフレームのデータを前記クライアント端末にストリーミング転送する機能と、
     をコンピュータに実現させ、
     前記フレームを生成する機能は、前記ユーザ操作がなされた時点での表示内容を特定し、前記フレームが表す内容を、当該ユーザ操作とその時点での表示内容に対応させることを特徴とするコンピュータプログラム。
PCT/JP2020/014495 2020-03-30 2020-03-30 画像データ転送装置、画像生成方法およびコンピュータプログラム WO2021199128A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
PCT/JP2020/014495 WO2021199128A1 (ja) 2020-03-30 2020-03-30 画像データ転送装置、画像生成方法およびコンピュータプログラム
US17/909,481 US20230132071A1 (en) 2020-03-30 2020-03-30 Image processing device, image data transfer device, and image generation method
JP2022512522A JP7441936B2 (ja) 2020-03-30 2020-03-30 画像データ転送装置、画像生成方法およびコンピュータプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2020/014495 WO2021199128A1 (ja) 2020-03-30 2020-03-30 画像データ転送装置、画像生成方法およびコンピュータプログラム

Publications (1)

Publication Number Publication Date
WO2021199128A1 true WO2021199128A1 (ja) 2021-10-07

Family

ID=77927979

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/014495 WO2021199128A1 (ja) 2020-03-30 2020-03-30 画像データ転送装置、画像生成方法およびコンピュータプログラム

Country Status (3)

Country Link
US (1) US20230132071A1 (ja)
JP (1) JP7441936B2 (ja)
WO (1) WO2021199128A1 (ja)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05324799A (ja) * 1992-05-15 1993-12-07 Hitachi Ltd バーチャルリアリティ制御方法および装置
JP2002125203A (ja) * 2000-10-12 2002-04-26 Mitsubishi Electric Corp メディア符号器及びメディア復号器
JP2007160015A (ja) * 2005-12-16 2007-06-28 Konami Digital Entertainment:Kk ゲーム装置、ゲーム装置の制御方法、プログラム及びネットワークゲームシステム
JP2012033038A (ja) * 2010-07-30 2012-02-16 Fujitsu Ltd 模擬映像生成装置、方法、プログラム
JP2013206188A (ja) * 2012-03-28 2013-10-07 Fujitsu Ltd シミュレーション方法、シミュレーション装置およびシミュレーションプログラム
JP2014120830A (ja) * 2012-12-14 2014-06-30 Sony Corp 情報処理装置およびその制御方法
JP5635672B1 (ja) * 2013-12-05 2014-12-03 株式会社 ディー・エヌ・エー 画像処理装置及び画像処理プログラム
JP2015202125A (ja) * 2014-04-10 2015-11-16 株式会社コロプラ ゲームシステム及びこれに用いられるゲームサーバ
JP2015212920A (ja) * 2014-04-16 2015-11-26 俊介 山内 先行画像生成プログラム、仮想マシーン制御プログラムおよびコンピュータ可読記憶媒体
WO2017221784A1 (ja) * 2016-06-21 2017-12-28 株式会社ソニー・インタラクティブエンタテインメント 画像生成装置、画像生成システム、および画像生成方法

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05324799A (ja) * 1992-05-15 1993-12-07 Hitachi Ltd バーチャルリアリティ制御方法および装置
JP2002125203A (ja) * 2000-10-12 2002-04-26 Mitsubishi Electric Corp メディア符号器及びメディア復号器
JP2007160015A (ja) * 2005-12-16 2007-06-28 Konami Digital Entertainment:Kk ゲーム装置、ゲーム装置の制御方法、プログラム及びネットワークゲームシステム
JP2012033038A (ja) * 2010-07-30 2012-02-16 Fujitsu Ltd 模擬映像生成装置、方法、プログラム
JP2013206188A (ja) * 2012-03-28 2013-10-07 Fujitsu Ltd シミュレーション方法、シミュレーション装置およびシミュレーションプログラム
JP2014120830A (ja) * 2012-12-14 2014-06-30 Sony Corp 情報処理装置およびその制御方法
JP5635672B1 (ja) * 2013-12-05 2014-12-03 株式会社 ディー・エヌ・エー 画像処理装置及び画像処理プログラム
JP2015202125A (ja) * 2014-04-10 2015-11-16 株式会社コロプラ ゲームシステム及びこれに用いられるゲームサーバ
JP2015212920A (ja) * 2014-04-16 2015-11-26 俊介 山内 先行画像生成プログラム、仮想マシーン制御プログラムおよびコンピュータ可読記憶媒体
WO2017221784A1 (ja) * 2016-06-21 2017-12-28 株式会社ソニー・インタラクティブエンタテインメント 画像生成装置、画像生成システム、および画像生成方法

Also Published As

Publication number Publication date
JP7441936B2 (ja) 2024-03-01
JPWO2021199128A1 (ja) 2021-10-07
US20230132071A1 (en) 2023-04-27

Similar Documents

Publication Publication Date Title
US10897614B2 (en) Method and an apparatus and a computer program product for video encoding and decoding
CN112204993B (zh) 使用重叠的被分区的分段的自适应全景视频流式传输
US20220353555A1 (en) Image display system, moving image distribution server, image processing apparatus, and moving image distribution method
US20220291742A1 (en) Image processing apparatus, image data transfer apparatus, image processing method, and image data transfer method
WO2020108091A1 (zh) 视频处理方法、装置、电子设备及存储介质
US20220368945A1 (en) Image data transfer apparatus and image data transfer method
US20200404375A1 (en) Rendering Video Stream In Sub-Area Of Visible Display Area
US11272224B2 (en) Information processing device and method
US20220345721A1 (en) Image data transfer apparatus, image display system, and image compression method
US20220377349A1 (en) Image data transfer apparatus and image compression
JP7362903B2 (ja) 画像データ転送装置、画像表示システム、および画像データ転送方法
JP2014176017A (ja) 映像再生装置、映像配信装置、映像再生方法及び映像配信方法
WO2021199184A1 (ja) 画像表示システム、画像処理装置、画像表示方法、およびコンピュータプログラム
WO2021199128A1 (ja) 画像データ転送装置、画像生成方法およびコンピュータプログラム
WO2021193361A1 (ja) 画像データ転送装置、画像表示システム、および画像転送方法
US20220337851A1 (en) Image data transfer apparatus and image compression method
US20220329772A1 (en) Image processing apparatus, image display system, image data transfer apparatus, and image processing method
WO2021193362A1 (ja) 画像処理装置および画像処理方法

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20928612

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2022512522

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20928612

Country of ref document: EP

Kind code of ref document: A1