WO2021065628A1 - 画像処理装置、画像データ転送装置、画像処理方法、および画像データ転送方法 - Google Patents
画像処理装置、画像データ転送装置、画像処理方法、および画像データ転送方法 Download PDFInfo
- Publication number
- WO2021065628A1 WO2021065628A1 PCT/JP2020/035831 JP2020035831W WO2021065628A1 WO 2021065628 A1 WO2021065628 A1 WO 2021065628A1 JP 2020035831 W JP2020035831 W JP 2020035831W WO 2021065628 A1 WO2021065628 A1 WO 2021065628A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- image
- unit
- frame
- data
- display
- Prior art date
Links
- 238000012545 processing Methods 0.000 title claims abstract description 581
- 238000000034 method Methods 0.000 title claims description 153
- 238000012546 transfer Methods 0.000 title claims description 54
- 238000003672 processing method Methods 0.000 title claims description 5
- 238000004891 communication Methods 0.000 claims abstract description 166
- 238000012937 correction Methods 0.000 claims abstract description 142
- 239000013598 vector Substances 0.000 claims description 53
- 230000008859 change Effects 0.000 claims description 36
- 238000004590 computer program Methods 0.000 claims description 3
- 230000000007 visual effect Effects 0.000 abstract description 10
- 238000007906 compression Methods 0.000 description 318
- 230000006835 compression Effects 0.000 description 317
- 230000005540 biological transmission Effects 0.000 description 86
- 230000008569 process Effects 0.000 description 82
- 210000003128 head Anatomy 0.000 description 74
- 210000001508 eye Anatomy 0.000 description 73
- 238000009826 distribution Methods 0.000 description 66
- 230000033001 locomotion Effects 0.000 description 64
- 238000013139 quantization Methods 0.000 description 60
- 238000006073 displacement reaction Methods 0.000 description 53
- 230000006870 function Effects 0.000 description 47
- 230000015572 biosynthetic process Effects 0.000 description 36
- 238000003860 storage Methods 0.000 description 34
- 230000006837 decompression Effects 0.000 description 18
- 238000006243 chemical reaction Methods 0.000 description 13
- 230000015654 memory Effects 0.000 description 11
- 238000004364 calculation method Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 10
- 230000000694 effects Effects 0.000 description 10
- 230000003287 optical effect Effects 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 7
- 230000004048 modification Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 6
- 230000009467 reduction Effects 0.000 description 6
- 238000005549 size reduction Methods 0.000 description 6
- 230000002194 synthesizing effect Effects 0.000 description 6
- 238000013135 deep learning Methods 0.000 description 5
- 238000010801 machine learning Methods 0.000 description 5
- 238000005457 optimization Methods 0.000 description 5
- 230000004043 responsiveness Effects 0.000 description 5
- 230000004434 saccadic eye movement Effects 0.000 description 5
- 230000004075 alteration Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000009877 rendering Methods 0.000 description 4
- 230000004397 blinking Effects 0.000 description 3
- 238000009795 derivation Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 238000010191 image analysis Methods 0.000 description 3
- 230000010365 information processing Effects 0.000 description 3
- 239000004973 liquid crystal related substance Substances 0.000 description 3
- 206010025482 malaise Diseases 0.000 description 3
- 230000036632 reaction speed Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000003786 synthesis reaction Methods 0.000 description 3
- 238000012935 Averaging Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 230000000740 bleeding effect Effects 0.000 description 2
- 210000005252 bulbus oculi Anatomy 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 239000003086 colorant Substances 0.000 description 2
- 238000005094 computer simulation Methods 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 230000006866 deterioration Effects 0.000 description 2
- 238000009499 grossing Methods 0.000 description 2
- 230000001771 impaired effect Effects 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 238000002360 preparation method Methods 0.000 description 2
- 210000001747 pupil Anatomy 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 125000002066 L-histidyl group Chemical group [H]N1C([H])=NC(C([H])([H])[C@](C(=O)[*])([H])N([H])[H])=C1[H] 0.000 description 1
- 240000004050 Pentaglottis sempervirens Species 0.000 description 1
- 235000004522 Pentaglottis sempervirens Nutrition 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000005856 abnormality Effects 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 230000003321 amplification Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 238000009792 diffusion process Methods 0.000 description 1
- 238000010494 dissociation reaction Methods 0.000 description 1
- 230000005593 dissociations Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000004424 eye movement Effects 0.000 description 1
- 210000000887 face Anatomy 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 230000004304 visual acuity Effects 0.000 description 1
- 230000004382 visual function Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/20—Input arrangements for video game devices
- A63F13/21—Input arrangements for video game devices characterised by their sensors, purposes or types
- A63F13/212—Input arrangements for video game devices characterised by their sensors, purposes or types using sensors worn by the player, e.g. for measuring heart beat or leg activity
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/25—Output arrangements for video game devices
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/35—Details of game servers
- A63F13/355—Performing operations on behalf of clients with restricted processing capabilities, e.g. servers transform changing game scene into an encoded video stream for transmitting to a mobile phone or a thin client
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/50—Controlling the output signals based on the game progress
- A63F13/52—Controlling the output signals based on the game progress involving aspects of the displayed game scene
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/50—Controlling the output signals based on the game progress
- A63F13/52—Controlling the output signals based on the game progress involving aspects of the displayed game scene
- A63F13/525—Changing parameters of virtual cameras
- A63F13/5255—Changing parameters of virtual cameras according to dedicated instructions from a player, e.g. using a secondary joystick to rotate the camera around a player's character
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
- G06F3/012—Head tracking input arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/003—Details of a display terminal, the details relating to the control arrangement of the display terminal and to the interfaces thereto
- G09G5/006—Details of the interface to the display terminal
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/30—Image reproducers
- H04N13/332—Displays for viewing with the aid of special glasses or head-mounted displays [HMD]
- H04N13/344—Displays for viewing with the aid of special glasses or head-mounted displays [HMD] with head-mounted left-right displays
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/30—Image reproducers
- H04N13/366—Image reproducers using viewer tracking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/30—Image reproducers
- H04N13/366—Image reproducers using viewer tracking
- H04N13/383—Image reproducers using viewer tracking for tracking with gaze detection, i.e. detecting the lines of sight of the viewer's eyes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/431—Generation of visual interfaces for content selection or interaction; Content or additional data rendering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/66—Transforming electric information into light information
Definitions
- the present invention relates to an image processing device, an image data transfer device, an image processing method, and an image data transfer 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.
- the display may be delayed with respect to the movement of the user's head, which may impair the sense of presence or cause image sickness. 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 capable of achieving both image quality and reduction of delay time in image display accompanied by data transmission by communication.
- an aspect of the present invention relates to an image processing device.
- This image processing device is an image processing device that displays a moving image on a head mount display, and is provided integrally with a position / orientation tracking unit that acquires the position / orientation of the user's head wearing the head mount display.
- It is provided with an image processing unit that corrects frame data based on the data and generates a display image corresponding to the latest position and orientation, and a display control unit that sequentially outputs the display image to the display panel of the head mount display.
- the control unit is characterized in that the correction target in the image processing unit is changed at least based on the difference in position and orientation.
- both image quality and reduction of delay time can be achieved at the same time.
- 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 shows the functional block of the server and the image processing apparatus of this embodiment. It is a figure for demonstrating the effect that a server and an image processing apparatus perform pipeline processing for each partial image in this embodiment. It is a figure which illustrates the transmission state of the data of a partial image between a server and an image processing apparatus in this embodiment.
- FIG. 12 it is a figure for demonstrating the method of quantifying the degree of data loss based on the viewpoint of a user. It is a figure for demonstrating the data necessary for reprojection evaluated in S96 of FIG.
- FIG. 5 is a flowchart showing a processing procedure for transmitting image data in a format determined by the server according to the display mode in the present embodiment.
- this embodiment it is a figure which shows the structure of the functional block of the server which has the function of compressing the image of a plurality of viewpoints at a high rate, and the image processing apparatus which processes it. It is a figure which illustrates the relationship between the image block which the 1st coding part and the 2nd coding part compress-encode in this embodiment, and the image block which refers to the compression-encoding result for that purpose. It is a figure for demonstrating the effect that the server compresses and encodes in the image block unit by utilizing the similarity of the image of a plurality of viewpoints in this embodiment.
- 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 plurality of image processing devices 200 connected to the head-mounted display 100. Then, the virtual world changed according to the user operation is drawn in the field of view corresponding to the movement of the head of each user, and then transmitted 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 and an image processing device may be used as a personal computer or a mobile terminal (portable game machine, high-performance mobile phone, tablet terminal) that integrally includes them.
- 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 has a built-in motion sensor, and may detect the translational motion and the rotational motion of the head of the user wearing the head-mounted display 100, and eventually the position and posture at each time.
- 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, orientation, 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 apparatus 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 the drawing to draw each frame in the corresponding visual field.
- the image drawing unit 404 is realized by the 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 into a predetermined size. That is, the partial image is, for example, an image of each region formed by dividing the image plane by 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 drawing of one frame by the image drawing unit 404 is completed, without waiting for the vertical synchronization signal of the server.
- the frame order is managed by aligning the time given to each process from image drawing to display in frame units. 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.
- the present embodiment as will be described later, by managing the generation time for each partial image, 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 image data of the compressed and encoded partial image unit 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 out the compressed and encoded partial image data each time it is stored in the partial image storage unit 410, includes audio data, control information, and the like as necessary, and then packets the data. To do.
- 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 and the like in addition to image data. Further, as described above, the input / output interface 416 may further acquire information relating to the user operation and the position and posture of the user's head from the image processing device 200 and supply the information to the drawing control unit 402.
- the input / output interface 202 sequentially acquires image and audio data transmitted from the server 400.
- the input / output interface 202 may further acquire information related to the user operation and the position and posture of the user's head from the head-mounted display 100, an input device (not shown), or the like, and transmit the information 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, and constitutes a compressed data storage unit.
- 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 out the data each time the partial image data is stored in the partial image storage unit 204, decodes and decompresses the data according to the encoding method, and then stores the partial image 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, and constitutes a data storage unit after decoding.
- the control unit 212 constantly monitors the data writing status of the video decoder 208 for the partial image storage unit 210, the data reading status of the image processing unit 214, and the like, 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 the partial images stored in the partial image storage unit 210, and sequentially stores the partial images 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 for the partial image storage unit 216, the data reading status of the display controller 220, and the like, 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 displaying an image in the present embodiment.
- the server 400 generates a 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.
- FIG. 5 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 same applies to the functional blocks described later.
- the server 400 includes an image generation unit 420, a compression coding unit 422, a packetization unit 424, and a communication unit 426.
- 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). In this case, the image generation unit 420 can be read as an image acquisition unit. The same applies to the following description.
- 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 area 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.
- 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 image processing device 200 includes an image data acquisition unit 240, a decoding / stretching unit 242, an image processing unit 244, and a display control unit 246.
- 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 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 the compressed coded partial image data from the server 400 together with the generation time.
- 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 compressed and 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 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. To do. For example, as described above, the image processing unit 244 makes a correction that gives the opposite distortion in consideration of the distortion of the eyepiece included in the head-mounted display 100.
- the image processing unit 244 synthesizes an image to be displayed together with a 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, in the image processing unit 244, when the decoded image data is in an HDR (High Dynamic Range) brightness range compatible format, but the HDR brightness range compatible range of the display display is narrow (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 an 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 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.
- the display control unit 246 includes a data acquisition status specifying unit 248, an output target determination unit 250, and an output unit 252.
- the data acquisition status specifying unit 248 determines the original display order and display timing of the partial image data, the amount of missing partial image data, etc., based on the generation time of the partial image data and / or the elapsed time from the generation time. Identify the data acquisition status.
- the output target determination unit 250 changes the output target to the display panel and appropriately adjusts the output order and output timing according to the data acquisition status. For example, the output target determination unit 250 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. To do. The output target determination unit 250 determines such an output target by the timing of the vertical synchronization signal, which is the display start time of the next frame.
- the output target determination unit 250 determines 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 at a ratio of a predetermined value or more in the frame.
- the output target may be changed accordingly.
- the output target determination unit 250 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.
- the output unit 252 outputs the data of the partial image determined as the output target to the display panel in the order and timing determined by the output target determination unit 250.
- FIG. 6 is a diagram for explaining the effect of the server 400 and the image processing device 200 performing pipeline processing in units of partial images in the present embodiment.
- the horizontal direction of the figure indicates the passage of time, and each processing time is indicated by an arrow together with the processing name.
- the processing on the server 400 side is shown by a thin line
- the processing on the image processing device 200 side is shown by a thick line.
- the processing for one frame of the frame number m is (m)
- the processing of the nth partial image of the frame number m is (m / n).
- the vertical synchronization signal on the server 400 side is described as vssync (server), and the vertical synchronization signal on the image processing device 200 and the display device side is described as vssync (client).
- (a) shows as a comparison a conventional mode in which processing is progressed in units of one frame.
- the server 400 controls the processing for each frame by the vertical synchronization signal. Therefore, the server 400 starts the compression coding of the data of the first frame stored in the frame buffer in accordance with the vertical synchronization signal.
- the server 400 starts the compression coding of the data in the second frame in accordance with the next vertical synchronization signal, and packets the data in the first frame that has been compressed and encoded in a predetermined unit and sends it out.
- the image processing device 200 performs decoding / decompression processing in the order of arrival frames. However, even if the decoding / decompression is completed and the display becomes possible, the display is waited until the timing of the next vertical synchronization signal. As a result, in the illustrated example, a delay of two frames or more is generated from the completion of drawing one frame on the server 400 and the start of the compression coding process to the start of display.
- the server 400 starts transmitting the data of the partial image when the compression coding of the first partial image of the first frame is completed. While the data is being transmitted through the network 306, the transmission process is performed in units of partial images such as compression coding and transmission of the second partial image, compression coding and transmission of the third partial image, and so on. Make progress.
- the acquired partial image data is sequentially decoded and decompressed.
- the data of the first partial image reaches a state in which it can be displayed much faster than in the case of (a).
- the data of the first partial image waits for display until the timing of the next vertical synchronization signal.
- Subsequent partial images are output in sequence following the output of the first partial image. Since the display time of one frame itself is the same as in (a), the display of the nth partial image is completed by the next vertical synchronization signal.
- the display can be realized at a timing one frame earlier than in the case of (a). ..
- the compression coding by the server 400 is started by the vertical synchronization signal, but as described above, if the compression coding is performed without waiting for the vertical synchronization signal, there is a delay. You can save even more time.
- the display control unit 246 of the image processing device 200 has a timing of at least one of a vertical synchronization signal and a horizontal synchronization signal within a range allowed by the display device according to the timing when the partial image data can be displayed. May be shifted.
- the display control unit 246 changes the operating frequency of the pixel clock, which is the base of all display timings, by a predetermined minute time, or changes the horizontal blanking interval and the vertical blanking interval by a predetermined minute time.
- the waiting time from when the output to the display panel is ready to the actual output may be shortened.
- the display control unit 246 may repeat this change every frame so that the display does not collapse with one large change.
- FIG. 6 shows an ideal case in which the partial image data independently transmitted from the server 400 reaches the image processing device 200 in approximately the same transmission time without delay.
- FIG. 7 illustrates the transmission status of partial image data between the server 400 and the image processing device 200.
- the vertical direction of the figure represents the passage of time, and the time required for the data of the first to seventh partial images shown on the axis of the server 400 to reach the image processing device 200 is indicated by an arrow. Since the communication status between the server 400 and the image processing device 200 can always change, and the data size of the partial image after compression coding can also change each time, the data transmission time of each partial image also varies. .. Therefore, even if the partial image data is sequentially transmitted from the server 400 at the same cycle, the state is not always maintained at the time of acquisition by the image processing device 200.
- the data acquisition interval t1 of the first and second partial images and the data acquisition interval t2 of the second and third partial images are significantly different.
- the acquisition order of the data of the fourth and fifth partial images is reversed.
- data that does not reach the image processing device 200 due to packet loss such as the data of the sixth partial image, may be generated.
- the image processing device 200 outputs the acquired partial image data to the display panel in the same order, the original image may not be displayed or the display cycle may be disrupted. It can happen.
- the data acquisition status specifying unit 248 refers to the generation time of each partial image on the server 400 side, and grasps various situations shown in FIG. 7.
- the output target determination unit 250 optimizes the output target and the output timing of the partial image in the display period of each frame. Therefore, the communication unit 426 of the server 400 may transmit the history of the generation time of a predetermined number of transmitted partial images to the image processing device 200 together with the data of the partial images and the generation time thereof.
- the communication unit 426 transmits the generation time of the 64 sub-images transmitted most recently together with the data of the next sub-image.
- the data acquisition status specifying unit 248 of the image processing apparatus 200 can grasp the lack of data and the reversal of the acquisition order by collating the history of the generation time with the generation time of the actually acquired partial image. That is, when data is missing, the data acquisition status specifying unit 248 makes it possible to acquire the generation time of the partial image from the history of the generation time transmitted together with the subsequent partial image.
- FIG. 8 is a flowchart showing an example of a processing procedure in which the display control unit 246 outputs partial image data to the display panel while adjusting the output target and output timing in the present embodiment.
- This flowchart shows a procedure of processing to be performed on a frame to be displayed in accordance with the vertical synchronization signal at a predetermined timing prior to the timing of the vertical synchronization signal of the display panel. That is, the illustrated process is repeated for each frame.
- the data acquisition status specifying unit 248 of the display control unit 246 specifies the acquisition status of the partial image included in the target frame (S10).
- the data acquisition status specifying unit 248 may further record the output record of the partial image in the frame up to that point and refer to it.
- the output result is, for example, at least one of the following data. 1.
- History of classifications selected in the past predetermined period among the three classifications described later 2.
- the output target determination unit 250 determines which of the classifications prepared in advance corresponds to those identified situations (S12).
- the output target determination unit 250 basically makes a comprehensive determination from various viewpoints and determines the output target so that the user experience is the best. Therefore, the data acquisition status specifying unit 248 acquires at least one of the following parameters in S10.
- the output target determination unit 250 classifies the situation by giving a score according to which range the parameters acquired for the target frame correspond to. For example, a score is given to each of the parameters acquired in S10 based on a predetermined table, and the situation is classified based on the distribution of the scores of all the parameters. In the illustrated example, three classifications are prepared. When the first classification is applied, the output target determination unit 250 determines the latest partial image data obtained so far as the output target, and causes the output unit 252 to output the data (S14).
- the output target determination unit 250 classifies the target frame into the first category based on the score determination. And. At this time, the output target determination unit 250 adjusts the timing so that the partial images are output in the order corresponding to each generation time. Ideally, as shown in FIG. 6, the partial images in the upper part of the frame are sequentially output.
- the output target determination unit 250 can display the partial image of the target frame at a predetermined value (predetermined ratio) or more even if it has not been acquired. It may be classified into one category.
- the table for determining the above-mentioned score may be set as such. As a result, the movement of the image can be expressed to the extent possible even if it is a part.
- the missing image may be repaired by the image processing unit 244 after guessing.
- the output target determination unit 250 determines the image data of the frame before the target frame as the output target, and causes the output unit 252 to output it (S16). In this case, the same frame will continue to be displayed on the display panel. For example, if the partial image of the target frame cannot be acquired at a predetermined value (predetermined ratio) or more and the partial image is acquired at a predetermined value (predetermined ratio) or more in the frame within the previous predetermined time, the output target determination unit In 250, the target frame is classified as the second category.
- the table for determining the above-mentioned score may be set as such.
- the output target determination unit 250 determines that nothing is output during the period in which the data of the target frame should be output (S18). In this case, a blackout period for one frame occurs on the display panel. For example, if the partial image of the target frame cannot be acquired for a predetermined value (predetermined ratio) or more and the elapsed time from the generation time is too long to continuously display the displayed image, the output target determination unit 250 sets the target frame as the third. It is classified. The table for determining the above-mentioned score may be set as such.
- the blackout is basically to display a black filled image, but another preset color may be used.
- the image can be partially updated or some image can be updated by branching to the first category regardless of the partial image acquisition status as described above. Good. It should be noted that the user experience is likely to be impaired as the first classification progresses to the third classification. Therefore, for each parameter acquired in S10, a table is determined so as to give a high score when the user experience should be good.
- the display method classification of the first to third classifications is selected.
- the threshold value for which the side with the larger total value is the first classification and the side with the smaller total value is the third classification is determined in advance.
- the type of information acquired by the data acquisition status specifying unit 248, the judgment criteria for classification by the output target determination unit 250, and the output target in each classification are the contents of the moving image to be displayed. , Determine appropriately based on the allowable degree of omission, the duration of omission, the permissible display delay, display stop time, and the like. Further, the display control unit 246 holds an image accumulated while waiting until the next vertical synchronization signal, a displayed image in a certain range, a generation time, a determination result in S10 or S12, or a score (not shown) in a memory or the like. You may.
- the output target determination unit 250 determines whether or not the situation related to the target frame corresponds to the condition to warn the user, in addition to the determination in S12 (S20). For example, the output target determination unit 250 determines that a warning to the user is necessary on the condition that the blackout time per unit time and the amount of missing partial images exceed the threshold value (S20). Y). At this time, the output target determination unit 250 displays a message indicating that the communication status affects the image display (S22).
- the message may be displayed by the image processing unit 244 superimposing it on the partial image. This allows the user to know the cause of the defect in the displayed image. If the warning condition is not met, the message is not displayed (N in S20). The above procedure ends the processing related to the target frame and starts the processing for the next frame.
- the data acquisition status specifying unit 248 may derive a tendency of the data transmission delay time based on the elapsed time from the generation time of the partial image acquired in S10 to the processing time. For example, the data acquisition status specifying unit 248 generates a histogram of the elapsed time from the generation time of a predetermined number of partial images acquired in the past. Then, the data acquisition status specifying unit 248 detects the tendency of the elapsed time to increase when the histogram is biased in the direction in which the elapsed time becomes longer than the reference value.
- the data acquisition status specifying unit 248 may request the server 400 via the image data acquisition unit 240 or the like to suppress the size of the image data to be transmitted.
- the data acquisition status specifying unit 248 requests that the data transmission of one frame of the image be skipped, or that the compression rate be increased by a predetermined amount. You may request that the screen resolution be reduced by a predetermined amount.
- the data acquisition status specifying unit 248 may request the output target determination unit 250 to skip the data output of one frame of the image.
- the data acquisition status specifying unit 248 may transmit the elapsed time from the generation time of the partial image to the acquisition to the server 400.
- the communication unit 426 of the server 400 acquires this, and when the compression coding unit 422 generates a histogram and the histogram is biased in the direction of increasing the elapsed time, the communication unit 426 detects the tendency of the elapsed time to increase and transmits the histogram.
- the size of the image data to be used may be suppressed.
- the data acquisition status specifying unit 248 may notify the server 400 of the amount of occurrence of the first to third categories described above. With these measures, the delay time increases, and it is possible to prevent the display of subsequent frames from being significantly delayed or data being lost.
- the server 400 is a portion smaller than one frame.
- Image data is compressed and encoded in image units and transmitted.
- the image processing apparatus 200 also decodes and decompresses each partial image, performs necessary processing, and sequentially outputs the image to the display panel.
- both the server 400 and the image processing device 200 can perform pipeline processing with a grain size finer than one frame.
- the waiting time can be reduced compared to the processing for each frame, and the delay time from drawing to display can be reduced.
- the image processing device 200 reproduces the order in which the server 400 generated the images even if the independent data are transmitted one after another in a short cycle.
- the display can be advanced in this way.
- the missing partial image can be grasped based on the generation time, whether to display the latest data, reuse the data of the previous frame, or output nothing, depending on the display content and display policy.
- Such aspects can be appropriately selected. Since the measures that can be taken for various situations related to data transmission will increase, it is possible to display with low delay while suppressing obstacles by taking measures so as not to deteriorate the user experience.
- FIG. 9 shows a configuration of a functional block of an image processing device 200 having a reprojection function and a server 400 having a corresponding function.
- Reprojection is a mode in which a head-mounted display 100 is used to display an image in a field of view according to the movement of the user's head, and the once drawn image corresponds to the position and posture of the head immediately before display. Refers to the process of making corrections.
- image data is transmitted from the server 400 as in the present embodiment
- the data is transmitted during the data transmission period.
- the changed position and posture are not reflected in the image.
- the image processing device 200 makes corrections according to the position and posture of the head, when the correction is made on a frame-by-frame basis, the changes in position and posture that occur during the correction processing are not reflected in the image. ..
- a rendering device and a head-mounted display for performing reprojection on a frame-by-frame basis are disclosed in, for example, International Publication No. 2019/0276765.
- the rendering device predicts the position and orientation of the head-mounted display at the time of frame display and draws the image, and the head-mounted display further corrects the image based on the difference between the predicted value and the latest position and orientation. And then display.
- the rendering device is used as a server, the transmission path to the head-mounted display and the transmission time will vary, and there will be a difficult-to-correct discrepancy between the predicted position and orientation and the actual position and orientation at the time of display. It is also possible.
- the server 400 includes an image generation unit 420, a compression coding unit 422, a packetization unit 424, and a communication unit 426.
- the image processing device 200 includes an image data acquisition unit 240, a decoding / stretching unit 242, an image processing unit 244, and a display control unit 246.
- the compression coding unit 422, the packetization unit 424, the communication unit 426, the image data acquisition unit 240, and the decoding / decompression unit 242 of the server 400 have the same functions as those described with reference to FIG. However, the purpose is not to limit those functions, and for example, the image data acquisition unit 240 may acquire the data of the partial image that is not compressed and encoded from the server 400. In this case, the functions of the compression coding unit 422 in the server 400 and the decoding / decompression unit 242 in the image processing device 200 can be omitted.
- the server 400 may realize a multiplayer game in which a plurality of players participate, live distribution of a sports competition, and the like.
- the server 400 continuously acquires the movements of the heads of each of the plurality of users, generates an image in the field of view corresponding to the movement, and distributes the image to the image processing device 200 of each user by streaming.
- the server 400 draws a virtual world seen from each viewpoint based on the footprint of each player in the three-dimensional space.
- the server 400 generates an image corresponding to each user's viewpoint based on an image of the state of the competition taken by a plurality of distributed cameras.
- the image generation unit 420 of the server 400 includes a position / orientation acquisition unit 284, a position / orientation prediction unit 286, and a drawing unit 288.
- the position / orientation acquisition unit 284 acquires information on the position and orientation of the user's head to which the head-mounted display 100 is attached from the image processing device 200 at a predetermined rate.
- the position / posture prediction unit 286 predicts the position and posture of the user at the time when the generated image frame is displayed. That is, the position / orientation prediction unit 286 obtains the delay time from the generation of the image frame to the display on the head-mounted display 100, and how the position and posture acquired by the position / orientation acquisition unit 284 change after the delay time elapses. Predict what to do.
- the image data acquisition unit 240 of the image processing device 200 acquires the generation time and the predicted value of the position and posture of the user's head together with the partial image data.
- the communication unit 426 of the server 400 determines the predicted values of a predetermined number of positions and orientations transmitted most recently. , May be transmitted with the data of the next partial image.
- the image processing apparatus 200 may acquire the generation time for each frame from the server 400 instead of the generation time for each partial image. In the latter case, the delay time described below is in frame units.
- the first correction unit 262 is based on the difference between the position and posture of the head most recently acquired by the position / orientation tracking unit 260 and the predicted values at the time when the partial image is generated in the server 400. Reprojection processing is performed on the partial image transmitted from.
- the difference used as the basis for the reprojection may be at least one of the position of the user's head and the posture of the user's head, but these are collectively referred to as "positional posture".
- the first correction unit 262 may further perform correction for giving the distortion at the same time.
- the displacement vector represented by the displacement vector map for each pixel is a vector obtained by synthesizing the displacement vector for reprojection and the displacement vector for distortion correction.
- the displacement vector for distortion correction is data unique to the eyepiece and does not depend on the movement of the user, so it can be created in advance.
- FIG. 11 is a diagram for explaining an example of the procedure of the correction process performed by the first correction unit 262.
- (A) shows the image before correction
- (b) shows the plane of the image after correction.
- In the image plane before correction represent the positions where the displacement vector is set in the displacement vector map.
- the displacement vectors are set discretely in the horizontal and vertical directions of the image plane (for example, at equal intervals such as every 8 pixels or 16 pixels).
- the pixels inside the triangle are displaced linearly according to the distances from D00, D01, and D10, or to the positions interpolated by bilinear, trilinear, or the like.
- the first correction unit 262 determines the pixel value of the corrected image by reading the value of the corresponding pixel of the partial image before correction stored in the connected local memory.
- the pixel values of the corrected image are derived by interpolating the values of a plurality of pixels within a predetermined range from the read destination position in the image before correction by bilinear, trilinear, or the like.
- the first correction unit 262 can draw the corrected image in the order of pixel strings in the unit of the triangle which is the displacement destination of the triangle of the image before the correction.
- the first correction unit 262 may update the displacement vector map in the area unit corresponding to the partial image.
- the second correction unit 266 may refer to a displacement vector map different from that of the first correction unit 262 and map the pixels for each of the smallest triangles. For example, when correcting chromatic aberration, an image of each primary color component can be generated by using a displacement vector map that is different for each primary color.
- FIG. 12 is a flowchart showing a processing procedure in which the output target determination unit 250b of the display control unit 246 adjusts the output target when the image processing device 200 performs reprojection.
- This flowchart is performed after the determination process of S12 in the flowchart shown in FIG. More specifically, the output target determination unit 250b makes an additional determination in order to change to the third category as necessary, even if the frame is applicable to the first category or the second category in the determination process of S12. Do. Therefore, in S12 of FIG. 8, when it is determined from the acquisition status of the partial image that the target frame falls under the third category, the output target determination unit 250b ends the process as it is (N in S90).
- the output target determination unit 250b first determines the position and orientation of the user's head predicted when the server 400 generates an image frame. It is determined whether or not the difference from the latest position / orientation is within the permissible range (S92). As described above, it often takes longer to transfer data when transmitting data from a cloud server or the like, as compared with the case where image data is transmitted from a rendering device near the head-mounted display 100. Therefore, there is a high possibility that the deviation between the predicted value of the position and the posture and the actual value will widen.
- the criteria for determining whether the difference in position and orientation is within the permissible range is whether the entire area of the frame can be covered by the latest partial image (1st classification), or whether even a part of the past frame partial image is used (1st classification or). It may be different depending on the second category). Specifically, the smaller the difference in position and orientation, the more it may be allowed to use the partial image of the past frame. Whether or not it is within the permissible range may be determined by the magnitude relationship with the threshold value set for the difference in position and orientation, and as the score value within the permissible range, a function that becomes lower as the difference in position and orientation increases. Then, the score value and the like used for the determination in FIG. 8 may be added up to make a comprehensive determination.
- the output target determination unit 250b When it is determined that the difference in position and orientation is within the permissible range (Y in S92), the output target determination unit 250b then evaluates the degree of data loss in the target frame from the viewpoint of the user, and the result is within the permissible range. Whether or not it is determined (S94). Specifically, the closer to the user's gaze point, the greater the weighting is used to quantify the degree of data loss, and when the value exceeds the threshold value, it is determined that the degree of data loss is not within the permissible range. When the degree of omission is not within the permissible range (N in S94), the output target determination unit 250b changes the target frame classified as the first classification to the second classification or the third classification.
- S92, S94, and S96 are not limited to being judged independently, but scores are obtained based on each judgment criterion, and by adding them up, it is judged comprehensively and simultaneously whether or not classification or display content change is necessary. You may. As a result of the additional determination in this way, any of the processes S14, S16, and S18 of FIG. 8 is performed. However, in the processing of S14 and S16, the image processing unit 244 performs the correction processing including the reprojection as described above. That is, in the case of the first classification, the image processing unit 244 performs reprojection on the latest image frame or the image frame using the past frame in the missing portion.
- the image processing unit 244 starts the correction process after all the image data in the range used for the reprojection of the partial image to be processed arrives at the partial image storage unit in the previous stage.
- the image processing unit 244 reads the corresponding data from the memory (not shown) of the display control unit 246.
- the range of the image used for the reprojection is determined by the difference between the predicted value of the position and orientation and the actual position and orientation.
- FIG. 13 is a diagram for explaining a method of quantifying the degree of data loss based on the user's viewpoint in S94 of FIG.
- the user's gazing point 292 is assumed to exist near the center of the display screen 290. Since the user wearing the head-mounted display 100 usually turns his / her face in the desired direction, the center of the display screen 290 can be regarded as the gazing point 292.
- the region 294 corresponding within 5 ° with the line of sight from the pupil to the gazing point as the central axis is called a discriminative visual field, and has excellent visual functions such as visual acuity.
- the region 296 corresponding to within about 30 ° in the horizontal direction and within about 20 ° in the vertical direction is called an effective visual field, and information can be instantly received only by eye movement.
- the area 298 corresponding to 60 to 90 ° in the horizontal direction and 45 to 70 ° in the vertical direction is a stable gaze
- the area 299 corresponding to 100 to 200 ° in the horizontal direction and 85 to 130 ° in the vertical direction is auxiliary. The farther away from the gazing point 292, such as the visual field, the lower the ability to discriminate information.
- weighting functions 320a and 320b are set so as to be closer to the gazing point 292 on the plane of the display screen 290.
- the weighting functions 320a and 320b for the one-dimensional positions in the horizontal and vertical directions on the plane of the display screen 290 are shown, but in reality, the functions for the two-dimensional position coordinates on the plane. Or use a table.
- the output target determination unit 250b multiplies the missing area of the partial image by a weight based on the position coordinates where the missing occurs, and totals it over the entire area of the target frame to derive the degree of missing as a numerical value. ..
- the degree of missing can be estimated high, and it is possible to determine whether or not it is within the allowable range in consideration of the impression of appearance.
- the shapes of the weighting functions 320a and 320b shown in the figure are merely examples, and the shapes may be optimized or made into discontinuous functions based on the visual characteristics of each range described above.
- the output target determination unit 250b may move the position where the weighting functions 320a and 320b are maximized according to the movement of the gazing point 292.
- FIG. 14 is a diagram for explaining the data required for reprojection, which is evaluated in S96 of FIG. First, (a) shows a state in which the view screen 340a is set so as to correspond to the position and orientation predicted by the server 400.
- the server 400 draws an image 344 included in the viewing frustum 342a determined by the view screen 340a on the view screen 340a.
- the position / orientation at the time of display faces slightly to the left of the predicted position / orientation.
- the image processing unit 244 of the image processing device 200 turns the view screen 340b slightly to the left and corrects the image so that the image corresponds to the view screen 340b.
- the larger the area 346 that is not transmitted from the server 400 the more difficult the reprojection becomes. Therefore, it is determined that the data is not sufficient when there is a predetermined ratio or more of the area 346 in which the data has not been acquired in the display area after the projection.
- the image transmitted from the server 400 also includes an area 348 that is not included in the newly set viewing frustum 342b. That is, since the data in the area 348 becomes an unnecessary area after the reprojection, there is no problem in displaying even if the data is missing. Therefore, the output target determination unit 250b may exclude the region 348 from the evaluation target when evaluating the missing area or the like in S12 of FIG. Even if sufficient image data required for reprojection is acquired, if the difference between the position / orientation predicted by the server 400 and the actual position / orientation is too large, the image after reprojection may become unnatural. Conceivable.
- the output target determination unit 250b performs the determination of S92 separately from the determination of S96, and cancels the output to the display panel when the difference in position and orientation is large. In any case, it is desirable to reduce the area 346 for which data is not acquired among the areas required for reprojection shown in FIG. 14 as much as possible regardless of the movement of the user's head.
- the image processing unit 244 may appropriately perform correction for removing lens distortion and chromatic aberration correction together with reprojection. When focusing on reprojection, it works effectively even if each process is executed in frame units instead of partial image units. At that time as well, the image data additionally generated by the server 400 based on the deviation from the predicted value of the position and orientation may be transmitted from the server 400 to the image processing device 200 in partial image units.
- the image processing device determines the difference between the position / orientation predicted by the server and the actual position / orientation, the degree of data loss evaluated from the user's point of view, and the acquisition rate of image data used for reprojection. Control the output target based on, etc. For example, if it is predicted that the result of reprojection with the latest data is not good, it will not be displayed, or the data of the past frame will be the target of reprojection. Further, the server further predicts the predicted displacement of the position and orientation, and speculatively generates an image of the corresponding area. By these processes, the result of reprojection can be made as good as possible, and a high-quality image can be displayed with good responsiveness.
- the image display system 1 of the present embodiment has a function of simultaneously displaying images having the same contents on the head-mounted display 100 and the flat plate display 302. .
- the display content is unknown to anyone other than the user wearing the head-mounted display 100. Therefore, it is not possible for a plurality of users to watch the progress of the game together and share the sense of presence as one.
- the server 400 may transmit data of a partial image that is not compressed and encoded.
- the functions of the compression coding unit 422 of the server 400 and the decoding / decompression unit 242 of the image processing device 200 can be omitted.
- the image processing unit 244 of the image processing device 200 may further have at least one of the various functions shown in FIG.
- the formation content switching unit 432 can transmit the image in the most efficient format to the image processing device 200 without increasing the transmission band by appropriately selecting the processing to be performed on the server 400 side according to the situation. To. In addition, it is possible to transmit an image in a format having the best image quality and display delay according to the application.
- the formation content switching unit 432 includes the form of the display device connected to the image processing device 200, the processing performance of the correction unit that further performs the formation processing in the image processing device 200, the characteristics of the moving image, and the image processing device 200.
- the processing content is determined based on at least one of the communication conditions of.
- the formation content switching unit 432 determines whether or not to generate images for the left eye and the right eye according to the display form of the head-mounted display 100, and whether or not to perform distortion correction for the eyepiece. And so on.
- the required processing is not limited to this, depending on the display form desired to be realized by the image processing device 200 of each user, and various possibilities such as reduction of resolution and deformation of the image can be considered. Therefore, the candidates for the processing content determined by the formation content switching unit 432 are also appropriately set accordingly.
- the data forming unit 434 performs a part of the forming process necessary to make each frame of the moving image into a format corresponding to the display form realized by the image processing device 200 according to the determination of the forming content switching unit 432. ..
- the communication unit 426 transmits the data of the image appropriately formed in this way to the image processing device 200.
- the data forming unit 434 performs a forming process suitable for each image processing device 200.
- the image data in one format selected appropriately can be transmitted to one image processing device 200 to obtain a required communication band. Prevent growth.
- the communication unit 426 transmits the image data by adding information indicating what kind of formation processing has been performed on the server 400 side. Image data in a format suitable for each of the plurality of image processing devices 200 that realize different display forms is transmitted in association with information indicating the content of the formation process.
- the image processing unit 244 of the image processing device 200 has the first forming unit 270a (first correction unit) and the second forming unit 270a (first correction unit) in which the image transmitted from the server 400 is in a format corresponding to the display form to be realized as the correction unit.
- a unit 270b (second correction unit) is included.
- the various image processes shown in the image processing unit 244 of FIG. 9 and the forming process according to the display form may be appropriately combined.
- the synthesis part 264 is incorporated immediately before the first forming part 270a and the second forming part 270b. Then, after synthesizing the image taken by the camera included in the head-mounted display 100 and the UI plane image with the frame transmitted from the server 400, the first forming unit 270a is used as an image in the display format of the head-mounted display 100, and the second forming is performed.
- Part 270b is an image in the display format of the flat plate display 302.
- the first forming portion 270a and the second forming portion 270b generate a displacement vector map as described above, and make corrections for each partial image based on the displacement vector map.
- the first forming unit 270a may perform a plurality of corrections at once by generating a displacement vector map formed by synthesizing the displacement vectors.
- the display control unit 246 includes a first control unit 272a and a second control unit 272b, and displays an image formed by the first forming unit 270a and the second forming unit 270b on the head-mounted display 100 and the flat plate display 302, respectively. Output to the panel.
- the transmission from the server 400 and the processing inside the image processing apparatus 200, including the processing of the first forming unit 270a and the second forming unit 270b, are sequentially performed in units of partial images. Therefore, the first control unit 272a and the second control unit 272b each include a partial image storage unit for storing the data after the formation process.
- FIG. 17 illustrates the transition of the image format that can be realized in the present embodiment.
- the head-mounted display 100 and the flat-plate display 302 are connected to the image processing device 200.
- the figure shows four patterns (a), (b), (c), and (d), the final format of the image to be displayed on the head-mounted display 100 and the flat plate display 302 does not depend on the pattern.
- the image 132 to be displayed on the head-mounted display 100 is composed of an image for the left eye and an image for the right eye, each of which has a distorted format (first format) for the eyepiece.
- the image 134 to be displayed on the flat plate display 302 is composed of one image common to both eyes, and has a general image format (second format) without lens distortion or the like.
- (B) is a pattern in which an image 130b suitable for a flat plate display is transmitted from the server 400.
- the data forming unit 434 of the server 400 does not have to perform any forming process on the image drawn by the drawing unit 430.
- the first forming unit 270a of the image processing device 200 generates images for the left eye and the right eye from the transmitted image, and gives distortion for the eyepiece.
- correction such as reprojection may be further performed.
- the second forming portion 270b can omit the forming process.
- the panoramic image 130d is generally an image of the whole celestial sphere (360 ° image) represented by the equirectangular projection.
- the format of the image is not limited, and any of the polyconic projection, the equidistant projection, and various other formats used for the image representation of the fisheye lens may be used.
- the server 400 may generate a 360 ° panoramic image using images for two eyes.
- the video content of the panoramic image generated in advance or the game image generated in real time may be used.
- the process corresponding to the above-mentioned reprojection is not necessary. Further, since the range of the transmitted image is not limited, there is no possibility that the data required for generating the display image by the reprojection is insufficient.
- the pattern (a) can be output to the flat plate display 302 with the pattern (b). It is possible to output at almost the same speed as. Since the images transmitted from the server 400 in the patterns (b) and (d) do not include parallax and depth information, the image 132 output to the head-mounted display 100 is an image without parallax.
- the image 134 output to the flat plate display 302 in the pattern (c) includes a process of restoring the image deformed by the server 400 on the image processing device 200 side, the patterns (a) and (b) The output speed will be slower. Further, the process of restoring the distorted image to the original state increases the possibility that the image quality is deteriorated as compared with the patterns of (a) and (b).
- the server 400 Even if the viewpoint on the display side is various, the server 400 only needs to transmit one type of image data, so that the processing can be streamlined. On the other hand, since data in an area unnecessary for display is also transmitted, when data is transmitted with the same bandwidth as (a), (b), and (c) and a display image of one viewpoint is generated, those patterns are used. Image quality may deteriorate. Since each pattern has a characteristic as described above, the formation content switching unit 432 determines one of the patterns according to the rule set based on the characteristic.
- FIG. 18 illustrates variations of the display device connection method on the user side (client side).
- (a) shows a configuration in which a head-mounted display 100 and a flat-plate display 302 are connected in parallel to a processor unit 140 that acts as a distributor.
- the processor unit 140 may be built in the image processing device 200 which is not integrated with the head-mounted display 100 and the flat plate display 302.
- (B) shows a configuration in which the head-mounted display 100 and the flat-plate display 302 are connected in series.
- (C) shows a configuration in which the head-mounted display 100 and the flat-plate display 302 are located at different locations, and each of them acquires data from the server 400.
- the server 400 may transmit data in a different format according to the display format of the destination.
- the head-mounted display 100 and the flat-plate display 302 are not directly connected. Therefore, when the images taken by the camera of the head-mounted display 100 are combined and displayed, the flat-plate display 302 reflects the images. Is difficult.
- the four transmission patterns described in FIG. 17 can be applied to any of the connection systems shown in FIG.
- the image processing device 200 is integrally provided on each of the head-mounted display 100 and the flat plate type display 302
- the first forming portion 270a and the second forming portion 270b are shown in FIGS. 18A and 18B.
- (C) and the format of the data transmitted from the server 400 determine whether or not to operate itself, and if so, the processing content. If the first control unit 272a and the second control unit 272b are operated according to the corresponding display modes, it is possible to display an image according to the mode of each display device regardless of the configuration shown in FIG. It becomes.
- FIG. 19 is a flowchart showing a processing procedure for transmitting image data in a format determined by the server 400 according to the display form.
- This flowchart is started by the user selecting a game to be played, a moving image to be watched, or the like from the image processing device 200.
- the image data acquisition unit 240 of the image processing device 200 requests the server 400 to that effect, so that the server 400 establishes communication with the image processing device 200 (S30).
- the formation content switching unit 432 of the server 400 confirms the necessary information by handshaking with the image processing device 200 (Y, S32 of S31). Specifically, check at least one of the following items.
- the patterns that can be handled by the image processing apparatus 200 side 2. Whether or not to display an image on the flat plate display 302 from the same viewpoint as the head mounted display 100. Format that can be output on the server side 4. 5. Required values for delay time, image quality, and the presence or absence of left-right parallax. Communication speed (communication band or transfer band, communication delay or transfer delay) 6. Contents (processing capacity) that can be processed by the image processing unit 244 of the image processing device 200 7. Resolution, frame rate, color space, and optical parameters of the eyepiece of the head-mounted display 100 and the flat-plate display 302
- the formation content switching unit 432 determines the formation content of the image to be executed on the server 400 side according to the preset rule based on the confirmed information (S34). For example, in the pattern shown in FIG. 17, the output delay time to the head-mounted display 100 is (c) ⁇ (d)> (b)> (a), and the output delay time to the flat plate display 302 is (c). ) ⁇ (d)> (a)> (b). The quality of the image displayed on the flat plate display 302 is highest in (b) and lowest in (c).
- the pattern (c) may be selected instead of the pattern (a) in FIG. 17 for the display on the head-mounted display 100.
- the pattern of (c) cannot be selected, and (a) or (b) It is necessary to select the pattern of.
- the data forming unit 434 performs a forming process on the frame drawn by the drawing unit 430 with the determined contents (S36). If the data forming unit 434 decides to transmit the frame drawn by the drawing unit 430 as it is, the forming process is omitted. After that, the compression coding unit 422 compresses and encodes the image data as necessary, and the packetizing unit 424 associates the image data with the formed contents applied to the data to form a packet, thereby forming a communication unit. 426 transmits to the image processing device 200 (S38). The processes of S36 and S38 are actually sequentially progressed in units of partial images as described above.
- the formation content switching unit 432 may further constantly monitor the communication speed and dynamically switch the formation content as needed.
- the server 400 ends all the processing (Y in S40).
- the images for the left eye and the right eye that should be transmitted from the server 400 basically represent images in the same space, and therefore have high similarity. Therefore, the compression coding unit 422 of the server 400 realizes a higher compression rate by compressing and coding one image and using the other data as information representing the difference from the image. Alternatively, the compression coding unit 422 may acquire information representing the difference from the compression coding result of the corresponding viewpoint of the past frame. That is, the compression coding unit 422 performs predictive coding by referring to at least one of the compression coding results of another image representing the image at the same time in the moving image data or the image of the past frame.
- the image generation unit 420 acquires or generates frames of a plurality of moving images in which at least a part of the object to be represented is common at a predetermined or variable rate, and sequentially supplies the frames to the compression coding unit 422.
- the compression coding unit 422 includes a division unit 440, a first coding unit 442, and a second coding unit 444.
- the dividing unit 440 forms an image block by dividing the corresponding frames of a plurality of moving images at a common boundary of the image plane.
- the first coding unit 442 compresses and encodes a frame of one viewpoint among a plurality of frames having different viewpoints in units of image blocks.
- the second coding unit 444 compresses and encodes the frames of other viewpoints in units of image blocks using the data compressed and coded by the first coding unit 442.
- the coding method is not particularly limited, but it is desirable to adopt a method in which the deterioration of the image quality is small even if the entire frame is not used and each partial region is compressed independently. As a result, frames of a plurality of viewpoints can be sequentially compressed and encoded in units smaller than one frame, and by the same pipeline processing as described above, each partial image can be transmitted to the image processing apparatus 200 with a small delay time.
- the second coding unit 444 increases the compression rate of the image data of another viewpoint by using the image data compressed and coded by the first coding unit 442.
- the first coding unit 442 and the second coding unit 444 may further compress and encode each image block of the current frame by using the compression coding data of the image block at the same position in the past frame.
- FIG. 21 illustrates the relationship between the image block that the first coding unit 442 and the second coding unit 444 compress and encode, and the image block that refers to the compression coding result for that purpose.
- the figure shows the image plane when the left-eye and right-eye images with distortion for the eyepiece are processed, and N is a natural number, the left is the Nth frame, and the right is the N + 1th frame. ing.
- the first coding unit 442 compresses the image 350a for the left eye in units of image blocks (1-1), (1-2), ..., (1-n).
- the second coding unit 444 compresses and encodes the image 350b for the right eye in units of image blocks (2-1), (2-2), ..., (2-n).
- the second coding unit 444 may compress-encode the target image block by using both the reference destination indicated by the solid line arrow and the alternate long and short dash arrow at the same time.
- the first coding unit 442 uses the compression coding result of the image block in the left eye image 350a of the Nth frame as a reference destination as shown by the broken line arrow (for example, the broken line arrow 356), and is used for the left eye of the N + 1th frame.
- Image blocks at the same position in the image may be compressed and encoded.
- an MVC (Multiview Video Coding) algorithm which is a multi-view video coding method, can be used.
- MVC predicts an image of another viewpoint by using a decoded image of the viewpoint compressed and coded by a method such as AVC (H264, MPEG-4), and combines it with the actual image.
- AVC H264, MPEG-4
- the difference is the target of compression coding of the other viewpoint.
- the coding format is not particularly limited, and for example, MV-HEVC (multi-view video coding extension), which is an extended standard for multi-view coding for HEVC (High Efficiency Video Coding), may be used.
- the base coding method may be VP9, AV1 (AOMediaVideo1), VVC (VersatileVideoCoding), or the like.
- FIG. 22 is a diagram for explaining the effect of the server 400 compressing and coding each image block by utilizing the similarity of images from a plurality of viewpoints in the present embodiment.
- the upper part of the figure illustrates the classification of images when the images for the left eye and the right eye, which are distorted for the eyepiece, are processed.
- the horizontal direction in the lower part of the figure represents the passage of time, and the time of the compression coding process for each region is indicated by an arrow together with the number of each region shown in the upper part.
- the minimum unit area required for motion compensation and coding in compression coding is an area of a predetermined number of lines such as one line and two lines, and a predetermined area such as 16 ⁇ 16 pixels and 64 ⁇ 64 pixels. A rectangular area of size. Therefore, the second coding unit 444 can start the compression coding when the compression coding of the image for the left eye of the region required as a reference destination is completed in the first coding unit 442, and the minimum unit thereof is motion compensation or motion compensation. This is the unit area required for coding.
- the second coding unit 444 compresses and encodes the entire image block before the compression coding of the entire image block is completed.
- the compression coding of the corresponding image block of the image can be started. In this way, the time required for compression coding can be further shortened as compared with the case of (c)'.
- an image representing the same image has a resolution of 4K (3840 x 2160 pixels), HD (1920 x 1080 pixels), and an image quality of level 0 and 1 with a quantization parameter (QP).
- the image of the past frame refers to the immediately preceding frame or the like at different frame rates defined hierarchically.
- the immediately preceding frame in the 30 fps layer means a frame 1/30 second ago, which is two frames before in the 60 fps layer.
- compression coding of each layer may be performed in units of image blocks.
- SVC Scalable Video Coding
- AVC H264, MPEG-4
- SHVC Scalable High Efficiency Video Coding
- the base coding method may also be VP9, AV1, VVC, or the like.
- FIG. 23 shows the configuration of the functional block of the compression coding unit 422 when performing scalable video coding.
- the compression coding unit 422 includes the resolution conversion unit 360, the communication status acquisition unit 452, and the transmission target adjustment in addition to the division unit 440, the first coding unit 442, and the second coding unit 444 shown in FIG. A unit 362 is provided.
- the resolution conversion unit 360 gradually reduces each frame of the moving image generated or acquired by the image generation unit 420 to obtain an image having a plurality of resolutions.
- the division unit 440 forms an image block by dividing the image having a plurality of resolutions at a common boundary of the image plane.
- the division rules may be the same as described above.
- the first coding unit 442 compresses and encodes the image having the lowest resolution in units of image blocks. As described above, the compression coding at this time is performed by referring only to the image, or further, referring to the image block at the same position in the image of the past frame having the same resolution.
- the second coding unit 444 compresses and encodes it.
- the n-1st image block in the image in the hierarchy above it is compressed and encoded.
- each coding unit has a hierarchy. The image blocks that are shifted forward one by one as they go up are compressed and coded in parallel.
- An example of each parameter of the scalable video coding realized in the present embodiment is shown below.
- the processing capacity of the decoding / decompression unit 242 possessed by each image processing device 200 and the communication performance of the network up to each image processing device 200 vary. Is.
- the transmission target adjustment unit 362 may individually determine the transmission target according to the situation of each image processing device 200, but in that case, it is necessary to adjust a plurality of communication sessions separately, which increases the processing load. Very expensive.
- the server 400 can handle a plurality of communication sessions under the same conditions, and the processing efficiency can be improved.
- the transmission target adjusting unit 362 and the like may be implemented by combining the mode of controlling the transmission target itself and the mode of performing priority control as described above.
- the server 400 may transmit compressed coded hierarchical data to a relay server (not shown), and the relay server may simultaneously transmit data to a plurality of image processing devices 200.
- the server 400 may transmit the data of all layers to the relay server by the priority control, and the relay server may individually determine the transmission target and transmit the data according to the situation of each image processing device 200.
- the transmission target adjusting unit 362 further (1) changes the parameters used by each layer and / or (2) changes the hierarchical relationship based on at least one of the communication status and the content represented by the moving image described later. Good.
- the transmission target adjustment unit 362 uses a WQHD (2560 ⁇ 1440 pixel) layer instead of 4K. It does not mean that the WQHD layer is added. Such a change may be made when there are many cases where the threshold value for a plurality of realized bands is lower than the threshold value on the high band side.
- the transmission target adjustment unit 362 uses the QP level 2 layer instead of the QP level 1. In this case as well, the hierarchy of QP level 2 is not added.
- Such a change may be made when there are many cases where the threshold value on the high band side is exceeded among the threshold values for a plurality of realized bands. Alternatively, it may be performed when the result of image analysis is a scene in which image quality should be emphasized.
- the case (2) will be described later.
- the transmission target adjusting unit 362 requests the resolution conversion unit 360, the first coding unit 442, and the second coding unit 444 to perform processing under the conditions determined as necessary. You may. Specific examples of the contents represented by the moving image, which are the basis of the adjustment, will be described later.
- FIG. 24 shows the relationship between the image block to be compressed and encoded by the first coding unit 442 and the second coding unit 444 and the image block for which the compression coding result is referred to when performing scalable video coding.
- N is a natural number
- the left is the Nth frame and the right is the N + 1th frame.
- the first coding unit 442 divides the low-resolution images 480a and 480b of each frame in units of image blocks (1-1), (1-2), ..., (1-n). Compress and code.
- the second coding unit 444 compresses and encodes the high-resolution images 482a and 482b in units of image blocks (2-1), (2-2), ..., (2-n).
- the second coding unit 444 is an image of the corresponding positions of the low resolution images 480a and 480b in the same frame compressed and coded by the first coding unit 442 as shown by the solid line arrows (for example, the solid line arrows 484a and 484b).
- each image block of the high-resolution images 482a and 482b is compressed and coded.
- the second coding unit 444 uses the compression coding result of the image block in the high-resolution image 482a at the Nth frame as a reference destination, as in the alternate long and short dash line arrow (for example, the alternate long and short dash line arrow 488), and N + 1 after one.
- the image block at the same position in the high-resolution image 482b of the frame may be compressed and encoded.
- the second coding unit 444 may compress-encode the target image block by using both the reference destination indicated by the solid line arrow and the alternate long and short dash arrow at the same time.
- the first coding unit 442 uses the compression coding result of the image block in the low resolution image 480a of the Nth frame as a reference destination as shown by the broken line arrow (for example, the broken line arrow 486), and uses the low resolution of the N + 1th frame as a reference destination.
- the image block at the same position in the image 480b may be compressed and encoded.
- FIG. 25 also shows the relationship between the image block to be compressed and encoded by the first coding unit 442 and the second coding unit 444 and the image block for which the compression coding result is referred to when performing scalable video coding. Illustrate.
- the horizontal direction of the figure is the time axis, and shows the first frame, the second frame, the third frame, and the fourth frame from the left.
- the first frame is an I frame (intra frame)
- the other frames are P frames (forward prediction frames).
- I frame intra frame
- P frames forward prediction frames
- each hierarchy level 0, level 1
- each hierarchy level 0, level 1
- symbols a to d for identifying the combination of layers are attached.
- the images compressed and encoded by the first coding unit 442 are in the order of 1a, 2c, 3a, and 4c.
- the images compressed and encoded by the second coding unit 444 are in the order of 1b, 2d, 3b, and 4d.
- the communication band is the smallest, the images displayed on the image processing apparatus 200 side are in the order of 1a, 3a, ....
- the communication band is the largest, the images displayed on the image processing apparatus 200 side are in the order of 1b, 2d, 3b, and 4d.
- Each coding unit compresses and encodes in units of image blocks as described above.
- the second coding unit 444 is a block of images at the corresponding positions of the low-resolution image in the same frame compressed and coded by the first coding unit 442, as shown by the solid line arrows (for example, solid line arrows 500a and 500b). Using the data as a reference, each image block of a high-resolution image is compressed and coded.
- the first coding unit 442 and the second coding unit 444 refer to the compression coding result of the image block of the image of the same resolution in the same frame rate hierarchy as shown by the broken line arrows (for example, the broken line arrows 502a and 502b). It may be used as a first and the image block at the same position in the next frame may be compressed and encoded.
- first coding unit 442 and the second coding unit 444 are compression coding results of image blocks of images having the same resolution in different frame rate layers, such as the alternate long and short dash line arrows (for example, the alternate long and short dash line arrows 504a and 504b). May be used as a reference destination to compress-encode the image block at the same position in the next frame.
- the first coding unit 442 and the second coding unit 444 may be compression-encoded by using any of these reference destinations, or may be compression-encoded by using a plurality of reference destinations at the same time.
- any of (c), (c) ′, and (c) ′′ shown in FIG. 22 may be adopted.
- the procedure of (c)'or (c)' is used.
- the transmission target adjustment unit 362 has at least one of the resolution, the image quality, and the frame rate. , Change the number of hierarchies.
- the transmission target adjustment unit 362 changes the reference destination as follows.
- the frame sequence is frame 1 level 0.
- Frame 2 Level 1 (See Immediate Level 0 Frame 1)
- Frame 3 Level 0 (See Immediate Level 0 Frame 1)
- Frame 4 Level 1 (See Immediate Level 0 Frame 3)
- Frame 5 Level 0 (See Immediate Level 0 Frame 3)
- Frame 6 Level 1 (See Immediate Level 0 Frame 5)
- Frame 7 Level 0 (See Immediate Level 0 Frame 5) ⁇ ⁇ ⁇ Will be.
- the transmission target adjustment unit 362 changes this, and increases the number of references between levels 1 as follows, for example.
- the plurality of images corresponding to each frame of the moving image are divided into image blocks according to the rules according to the acquisition order of the image data, and the unit is Compress and code.
- the compression rate is improved by compressing and coding another image using the compression coding result of one image.
- the time required for the compression coding itself can be shortened, and since the image block for which the compression coding has been completed can be transmitted, it is possible to display the image with low delay even in the distribution of the image via the network. ..
- the size of data to be transmitted can be reduced, it brings robustness to changes in communication conditions. For example, even in the mode of transmitting three or more image data, the required communication bandwidth can be reduced as compared with the case of transmitting the entire image, and the data is completed in units of image blocks, so that the data can be stored during communication. Recovery is easy even if it is lost. As a result, an image with a small delay time can be displayed with high image quality. Furthermore, it can flexibly respond to various environments such as the number of image processing devices to be transmitted, the communication status, and the processing performance of the image processing devices. For example, in live game broadcasting (eSports broadcasting) and cloud gaming with a large number of participants, it is possible to achieve both high efficiency, low delay and high image quality with high flexibility.
- live game broadcasting eSports broadcasting
- cloud gaming with a large number of participants
- FIG. 26 shows the configuration of the functional block of the server 400 having the function of optimizing the data size reduction means.
- the server 400 includes an image generation unit 420, a compression coding unit 422, a packetization unit 424, and a communication unit 426.
- the image generation unit 420, the packetization unit 424, and the communication unit 426 have the same functions as those described with reference to FIGS. 5 and 12.
- the image generation unit 420 may draw a moving image to be transmitted on the spot, that is, may dynamically draw a video that has not existed until then.
- the compression coding unit 422 may further include a division unit 440, a second coding unit 444, a transmission target adjustment unit 362, and the like shown in FIGS. 20 and 23. ..
- the compression coding unit 422 includes an image content acquisition unit 450, a communication status acquisition unit 452, and a compression coding processing unit 454.
- the image content acquisition unit 450 acquires information related to the content represented by the moving image to be processed.
- the image content acquisition unit 450 acquires, for example, the features of the image drawn by the image generation unit 420 from the image generation unit 420 at predetermined timings such as frame by frame, scene switching, and moving image processing start.
- the image content acquisition unit 450 increases the processing load even in small units such as frame by frame. Accurate information about the content can be obtained without any need.
- the image content acquisition unit 450 determines whether or not the scene is switched, the type of image texture displayed in the frame, the distribution of feature points, depth information, the amount of objects, and the mipmap texture used for three-dimensional graphics.
- Information such as the usage amount of each level, LOD (Level Of Detail), usage amount of each level of tessellation, amount of characters and symbols, type of scene to be represented, and the like can be obtained from the image generation unit 420.
- the type of image texture is a type of region represented by the texture on the image, such as an edge region, a flat region, a dense region, a detailed region, and a crowd region.
- the edge is a portion where the rate of change of the brightness value on the image is equal to or higher than a predetermined value.
- the distribution of feature points refers to the positions of feature points and edges on the image plane, the intensity of edges, that is, the rate of change in the brightness value, and the like.
- the various texture areas described above are two-dimensionally determined as to what kind of texture the two-dimensional image is, which is the result of being drawn as three-dimensional graphics. Therefore, it is different from the texture used to generate 3D graphics.
- Depth information is the distance to the object represented by each pixel, and is obtained as a Z value in 3D graphics.
- the amount of objects refers to the number of objects represented such as chairs and cars and the area occupied in the image plane.
- the mipmap texture level is selected in the mipmap method in which texture data representing the surface of an object is prepared at multiple resolutions, and a texture with an appropriate resolution is used according to the distance of the object and the apparent size. The level of resolution.
- the level of LOD and tessellation is the level of detail in the technique of expressing with appropriate detail by adjusting the number of polygons depending on the distance of the object and the apparent size.
- the type of scene represented is a situation or genre on the output of contents such as a game executed by the image generation unit 420, for example, a movie screen, a menu screen, a setting screen, a loading screen, a subjective line-of-sight drawing, etc. It refers to types such as bird's-eye view drawing, 2-dimensional dot drawing game, 3-dimensional drawing game, first person shooting game, race game, sports game, action game, simulation game, and adventure novel game.
- the image content acquisition unit 450 acquires at least one of the information from the image generation unit 420.
- the image content acquisition unit 450 and the score calculation function described later may be provided in the image generation unit 420.
- a game engine or the like which is a software framework that operates in the image generation unit 420, may realize these functions.
- the image content acquisition unit 450 includes the timing of user operations for content that defines moving images such as games, the interval between the timings, the content of user operations, and the content grasped by the image generation unit 420, which is transmitted from the image processing device 200. At least one of the status and the status of the audio generated by the content may be acquired.
- the timing of the user operation may differ from the timing of frame drawing of the moving image in the image generation unit 420, it can be used for data size adjustment means and adjustment amount switching by using it for detecting scene switching.
- the content status is, for example, a) a scene that requires user operation and affects the processing content of the content, b) a movie scene that does not require user operation, or c) a movie scene that does not require user operation.
- Information for determining at least one of a scene other than the above, or d) a scene that requires user operation but is not the main content of the content is acquired from the image generation unit 420.
- the audio status is information for determining at least one of the presence / absence of audio, the number of audio channels, the content of background music, and the content of sound effects (SE), and is acquired from an audio generator (not shown).
- the image content acquisition unit 450 may acquire at least one of the above-mentioned information by analyzing the image generated by the image generation unit 420 by itself. Also in this case, the timing of the analysis process is not particularly limited. Further, the image content acquisition unit 450 may acquire the above-mentioned scene type or the like by reading the bibliographic information from a storage device or the like (not shown) when the server 400 starts distribution of the moving image.
- the image content acquisition unit 450 may also acquire information related to the content of the moving image by using the information acquired in the compression coding process performed by the compression coding processing unit 454. For example, when motion compensation is performed in the compression coding process, the amount of optical flow, that is, in which direction the pixels are moving, the speed at which the pixel region is moving, and the like can be obtained. Motion estimation (ME) also gives the direction in which the rectangular area on the image is moving, and the speed of the moving rectangular area if it is moving.
- the allocation status of the coding unit used by the compression coding processing unit 454 for the processing, the timing of inserting the intra frame, and the like can be obtained.
- the latter is the basis for identifying the timing of scene switching in a moving image.
- the image content acquisition unit 450 may acquire any of the parameters as shown in the "score control rule at the scene switching timing" described later.
- the image content acquisition unit 450 may acquire at least one of these information from the compression coding processing unit 454, or may acquire necessary information by analyzing the image by itself. In this case as well, the acquisition timing is not particularly limited.
- the communication status acquisition unit 452 acquires the communication status with the image processing device 200 at a predetermined rate as described with reference to FIG. 23.
- the compression coding processing unit 454 compresses and encodes the moving image so that the data size of the moving image becomes appropriate by means determined based on the content represented by the moving image according to the change in the communication situation. Specifically, the compression coding processing unit 454 changes at least one of the frame rate, the resolution, and the quantization parameter of the moving image so that the data size is determined by the communication situation. Basically, the content of the image is evaluated from various viewpoints, and the optimum combination of numerical values (frame rate, resolution, quantization parameter) is determined.
- the compression coding processing unit 454 determines the means to be adjusted and the adjustment amount based on the priority items in order to maximize the user experience under the conditions of limited communication bandwidth and processing resources. For example, prioritize the frame rate when realizing a first-person shooter scene, a fighting action scene, or virtual reality or augmented reality, where the image moves quickly and requires immediate interlocking with user input. Is desirable. In scenes where there are many detailed objects and it is necessary to read characters, symbols, signs, and pixel art, it is desirable to prioritize resolution.
- the compression coding processing unit 454 measures the data size by means for maintaining the user experience as much as possible even if the communication condition deteriorates. Make it appropriate.
- the rules for determining the adjustment means and the adjustment amount from the contents of the moving image are prepared in advance in the form of a table or a calculation model, and are stored inside the compression coding processing unit 454.
- the compression coding processing unit 454 derives a score for determining the adjustment means and the adjustment amount according to at least one of the following rules.
- the balance (priority) of weights given to frame rate, resolution, and quantization quality is determined depending on which of the above a to d is the status on the output of the content. To do. Specifically, a) In the case of a scene that requires user operation and affects the processing content of the content, at least one of the score determination rules described below is followed. b) For movie scenes that do not require user interaction, the quality or resolution of quantization is prioritized over the frame rate. c) For scenes other than movie scenes that do not require user operation, the resolution or frame rate is prioritized over the quality of quantization. d) In the case of a scene that requires user operation but is not the main content, the resolution or the quality of quantization is prioritized over the frame rate.
- Rule for determining balance based on content genre In the case of the above a, that is, a scene that requires user operation and affects the content processing content, the genre of the content being implemented is read from a storage device or the like and prepared separately as a table. , Refer to the score balance that represents the resolution, frame rate, and quantization parameter weights that are generally recommended for each genre. In addition, when a plurality of rules described below are applied in parallel and the results are comprehensively judged to determine the final score to be used, this rule may be used as an initial value.
- Score determination rule based on the size of the image on the image Refers to LOD, mipmap texture, tessellation, and object size, and there is an object with higher definition than a predetermined value, and the ratio of the area occupied by it in the entire image. The larger the value (there is a large high-definition object near the view screen), the higher the score that represents the weight of quantization quality and resolution.
- Score determination rule based on the fineness of objects Objects smaller than the specified value, the amount of fine characters, symbols, signs, and pixel art generated is large, and the ratio of the area occupied by them in the entire image is larger than the specified value (near the view screen) (There are no large high-definition objects), the higher the score representing the weight of resolution.
- Score determination rule based on texture type The image texture type of each unit area formed by dividing the image plane is aggregated, and the larger the ratio of the area occupied by the dense area, detailed area, and crowd area in the entire image Increase the score, which represents the weight of the resolution.
- Score control rule at scene switching timing Information about the switching timing is obtained from the image generation unit 420.
- the amount of objects, feature points, edges, optical flow, motion estimation, pixel contrast, brightness dynamic range, presence / absence of audio, number of audio channels, or audio mode are all suddenly changed or reset in the time series direction. Switch the score when you do.
- at least two frames or more are referred to.
- the compression coding processing unit 454 can also detect scene switching based on the correlation with the previous frame in order to grasp the necessity of the frame as the intra frame in the compression coding.
- the score representing the quantization parameter and resolution weight is set to the target frame and a predetermined number of subsequent frames. To reduce. In addition, emphasis may be placed on the rapid switching of scenes, the score representing the weight of the frame rate may be increased until the scene is switched, and the restriction may be removed after the switching.
- Score determination rule based on the timing of user operations
- content such as games executed by the image generation unit 420
- the longer the interval between user operations the easier it is to lower the frame rate. Therefore, the score representing the weight of the frame rate is lowered (user).
- the shorter the interval between operations the lower the score that represents the weight of other parameters).
- Score determination rule based on the content of user operation
- content such as a game executed by the image generation unit 420
- the user expects high responsiveness from the content. It is estimated that there is. Therefore, the larger the amount of change, the higher the score representing the weight of the frame rate. If the amount of change is small even if the operation is performed, the level of the score is lowered by one level.
- the user operation analyzes input information acquired by an input device (not shown) such as a game controller, keyboard, and mouse, the position, posture, and movement of the head mount display 100, and an image taken by the camera of the head mount display 100 or an external camera (not shown).
- an input device such as a game controller, keyboard, and mouse
- the position, posture, and movement of the head mount display 100 and an image taken by the camera of the head mount display 100 or an external camera (not shown).
- a gesture (hand sign) instruction based on the result, a voice instruction acquired by a microphone (not shown), and the like are acquired from the image processing device 200.
- Score determination rule for the object to be operated by the user When there is an object on the screen that meets a predetermined criterion that is considered to reflect the user operation in the immediately preceding predetermined period, the score derived by another determination rule is increased. adjust.
- the user may be one person, or may be a plurality of people who share the same image processing device 200 or have different image processing devices 200 connected to the same server 400.
- Objects on the screen that reflect user operations are objects that the user operates, such as people, avatars, robots, vehicles and machines, objects that confront such main objects, and the life status of the player in the game.
- a unit area containing an indicator whose purpose is to notify the player of information, such as possessed weapon status, game score, etc., is usually the object that the user is most interested in.
- the compression coding processing unit 454 raises the score in, for example, in determining the scores of 3 to 9 and 10 above, higher than in other cases. That is, this decision rule has an effect of preferentially applying the above decision rule to the object to be operated by the user. For example, if the score of the entire screen based on the image size is summarized in 3, and the reference score that increases the weight of the quantization quality and the resolution is slightly insufficient, the compression coding processing unit 454 scores up to the reference. Pull up.
- the compression coding processing unit 454 raises the score to the reference.
- the scene switching timing of 8 although there was a sudden change in the area of the object to be operated by the user, the score judged to sandwich the intra frame was slightly insufficient due to the summary of the score of the entire screen. If so, the compression coding processing unit 454 raises the score to the reference.
- Control of switching frequency between adjustment target and adjustment amount Refer to the history of (frame rate, resolution, quantization parameter) adopted in the predetermined period immediately before, and each parameter so that switching is within the allowable range from the viewpoint of user experience. Adjust the score that represents the weight of.
- the "tolerance range" is determined based on a predefined table or model.
- the compression coding processing unit 454 comprehensively determines the final weights of the frame rate, the resolution, and the quantization parameter by one of the above rules or by the total value of the scores obtained by the plurality of rules. .. Note that the compression coding processing unit 454 may refer to the Z value in order to grasp the position of the object, the order of projection, the size, and the relative distance from the view screen in the above rules 1 to 8.
- the decision rule may be optimized by machine learning or deep learning while collecting the adjustment results in various past cases.
- the object of optimization may be a table in which decision rules are defined or a calculation model. For deep learning, optimize the computational model.
- a score database created manually and a gameplay experience by a user are used as teacher data.
- learning is performed by using the case of subjective drawing as a constraint condition of the calculation model, PSNR (Peak Signal-to-Noise Ratio) indicating image quality, SSIM (Structural Similarity), parameter switching frequency, time series smoothness, etc. as indicators.
- PSNR Peak Signal-to-Noise Ratio
- SSIM Structural Similarity
- parameter switching frequency is added to the index in consideration of the fact that the user experience is rather deteriorated if the resolution and frame rate are switched too little.
- the compression coding processing unit 454 derives the final score representing the weight given to each of the frame rate, the resolution, and the quality of quantization, and the data size according to the communication situation can be obtained, and the above-mentioned Determine the combination of values (frame rate, resolution, quantization parameters) to follow the balance represented by the score. More specifically, the compression coding processing unit 454 predicts and calculates the combination of each value so as to satisfy the target data size determined according to the communication status, but at that time, the parameter having a high weight is lowered as much as possible. Control so that there is no.
- the compression coding processing unit 454 compresses and encodes the data accordingly. For example, when lowering the frame rate, the compression coding processing unit 454 thins out the frames generated by the image generation unit 420 by a predetermined amount per unit time. When the resolution is lowered, the compression coding processing unit 454 performs existing operations such as the nearest neighbor method, the bilinear method, and the bicubic method on the image generated by the image generation unit 420.
- the compression coding processing unit 454 compresses and encodes the image generated by the image generation unit 420 at an appropriate compression rate by the adjusted quantization parameter.
- the compression coding processing unit 454 performs all of these processing in units of partial images of the frame generated by the image generation unit 420, and sequentially supplies the packetization unit 424. At this time, by supplying the data of the frame rate, the resolution, and the quantization parameter in association with each other, the packetizing unit 424 packetizes the partial image data together with the data.
- the compression-encoded partial image data is transmitted to the image processing device 200 via the communication unit 426 in the same manner as described above.
- the unit for optimizing the data size adjusting means and the adjustment amount by the compression coding processing unit 454 may be a partial image unit which is a compression coding unit, a frame unit, a predetermined number of frame units, or the like. Good.
- the decoding / decompression unit 242 of the image processing apparatus 200 performs dequantization based on the quantization parameters transmitted together with the image data.
- the server 400 may also transmit additional data that cannot be specified only by the low resolution image.
- the additional data includes, for example, a feature amount in the original image generated by the image generation unit 420 and various parameters determined by the compression coding unit 422 at the time of compression coding.
- the feature amount may include at least one of the feature points of the original image, the edge strength, the depth of each pixel contained in the original image, the type of texture, the optical flow, and the motion estimation information.
- the additional data may include data indicating an object represented by the original image, which is specified by the object recognition process performed by the compression coding unit 422.
- the decoding / stretching unit 242 of the image processing device 200 accurately generates a high-resolution display image based on the transmitted image data and additional data. This feature has been filed by the present inventor as Japanese Patent Application No. 2019-08626.
- FIGS. 27 to 31 show an example in which the score is determined according to the content of the moving image.
- FIG. 27 shows an example of applying the score determination rule based on the size of the image on the image of 3 above.
- the three images shown represent different frames of the same moving image.
- Objects 152a, 152b, and 152c using the same object model are drawn in each frame.
- the object model actually has three-dimensional information composed of polygons and textures.
- the image generation unit 420 draws the objects 152a, 152b, 152c, etc. by arranging the object model in the space to be drawn and projecting it on the view screen. At this time, since the apparent size of the objects 152a, 152b, and 152c changes depending on the distance from the view screen, the image generation unit 420 appropriately adjusts the number of polygons used for drawing and the resolution of the texture.
- the object model 150 is defined with 1 million polygons, while the object 152c away from the view screen has 10,000 polygons and the object 152a near the view screen has 100,000 polygons. , Each drawn.
- the resolution of the texture is object 152a> object 152b> object 152c.
- the image content acquisition unit 450 uses such information, that is, the LOD of the object viewed from the view screen, the level of the mipmap texture, the level of tessellation, the size of the image, and the like as information related to the content represented by the image. Get from 420.
- the compression coding processing unit 454 adjusts the frame rate, resolution, and quantization parameter based on the information related to the content represented by the image in order to set the data size corresponding to the communication status. That is, for all the objects appearing in the scene, the LOD of the objects, the level of the mipmap texture, the level of tessellation, and the size of the image are totaled, and the score given to the parameter to be adjusted is calculated.
- the image on the left has an object drawn in high definition, and the area occupied by the object in the entire image is large (people and avatars are drawn in high definition as a whole). Increase the score, which represents the weight of the quality and resolution of the conversion.
- FIG. 28 shows an example of applying the score determination rule based on the fineness of the object in 4 above.
- the two images shown represent different frames of the same moving image. Each is a frame that zooms in and out on the same landscape.
- the left image has a large amount of small objects, and the proportion of the area occupied by them in the entire image is large (as a whole, detailed objects, characters and symbols, There are many signs and dot pictures). Therefore, in this example, the compression coding processing unit 454 increases the score representing the weight of the resolution toward the left image.
- FIG. 29 shows an example of applying the score determination rule based on the contrast and dynamic range of 5 above.
- the compression coding processing unit 454 increases the score representing the weight of the quantization quality toward the left image.
- FIG. 30 shows an example of applying the score determination rule based on the movement of the image in 6 above.
- the two images shown represent different frames of the same moving image.
- the absolute value of the movement amount (vector) of the object on the image plane, and the size and amount of the optical flow and motion estimation for each unit area formed by dividing the image plane into a predetermined size are totaled.
- the left image has many objects with a large movement amount, and the ratio of the area in the entire image is large, that is, the total absolute value of the movement amount (vector) in the entire image is large. .. Therefore, in this example, the compression coding processing unit 454 increases the score representing the weight of the frame rate toward the left image.
- FIG. 31 shows an example of applying the score determination rule based on the type of texture in 7 above.
- the two images shown represent different frames of the same moving image.
- the area on the left has a higher density in the entire image due to the difference between the objects 152h to 152j and the object 152k.
- Detailed area, area occupied by crowd area is large. Therefore, in this example, the compression coding processing unit 454 increases the score representing the weight of the resolution toward the left image.
- FIG. 32 is a flowchart showing a processing procedure in which the server 400 adjusts the data size according to the communication status. This flowchart is started by the user selecting a game to be played, a moving image to be watched, or the like from the image processing device 200. On the other hand, the communication status acquisition unit 452 of the server 400 starts acquiring the communication status used for streaming to the image processing device 200 (S50).
- the communication status acquisition unit 452 acquires necessary information from the communication unit 426. Specifically, the communication status acquisition unit 452 acquires the arrival delay time of the image data transmitted to the image processing device 200 and the arrival rate of the image data, and derives an index representing the communication status from the information. The derivation rule is set in advance.
- the image generation unit 420 starts generating a moving image (S52).
- the image generation unit 420 is not limited to drawing computer graphics, and may acquire a captured image from the camera.
- the image content acquisition unit 450 of the compression coding unit 422 starts acquiring information related to the content of the moving image (S54).
- the image content acquisition unit 450 acquires predetermined information at an arbitrary timing by acquiring information from the image generation unit 420 and the compression coding processing unit 454 or by analyzing the image by itself.
- the compression coding processing unit 454 determines the transmission size of the image data according to the latest communication status acquired by the communication status acquisition unit 452 (S56).
- the compression coding processing unit 454 first acquires a score from the content of the moving image acquired by the image content acquisition unit 450 at that time according to at least one of the above-mentioned rules (S58). Next, the compression coding processing unit 454 derives the data size adjusting means and the adjusting amount based on the obtained score (S60). That is, the total weight for the frame rate, the resolution, and the quantization parameter is calculated by summing the scores, and the value of each parameter is determined so as to match the target data size with a balance according to the weight.
- a table showing each association may be prepared, or a program for modeling a derivation rule or the like may be prepared. It may be realized by.
- the adjustment means and the adjustment amount may be changed depending on the level of the communication status. Even if the communication status is stable and the data size that can be transmitted does not change, the compression coding processing unit 454 continuously derives the score corresponding to the content of the moving image, and even if the transmission size is the same. The combination of each value of the frame rate, the resolution, and the quantization parameter may be changed.
- the data transmission size is determined in multiple stages according to the communication status, and the frame rate, resolution, and quantization parameters are adjusted accordingly. Adjust the combination.
- the tables and calculation models that define the derivation rules may be optimized at any time by using machine learning or deep learning.
- the score value is acquired from the content of the moving image in S58, and the adjustment means and the adjustment amount are obtained in S60 based on the score value. You may prepare a decision rule so that it can be done.
- the compression coding processing unit 454 performs compression coding in units of partial images while adjusting the data size according to the adjustment means and adjustment amount determined in this way, and sequentially supplies the data of the image to the packetization unit 424. (S62). At this time, information on the resolution, frame rate, and quantization parameter is also supplied in association with each other.
- the packetizing unit 424 packetizes it and transmits it from the communication unit 426 to the image processing device 200.
- the compression coding processing unit 454 may acquire the score and derive the adjustment means and the adjustment amount in the background of the compression coding processing. Further, in reality, the frequency of determining the data size in S56 and the frequency of compression coding and transmission in units of partial images in S62 may be the same or different.
- the compression coding processing unit 454 may reset the means and the adjustment amount used for adjusting the data size at predetermined time intervals. Unless it is necessary to stop the transmission of the image due to a user operation on the image processing device 200 (N in S64), compression coding and transmission of the subsequent frame are performed while changing the adjustment means and the adjustment amount as necessary. The process is repeated (S56, S58, S60, S62). However, as described in 11 above, the compression coding processing unit 454 refers to the history of changes in the adjustment means and the adjustment amount in the immediately preceding predetermined period, and makes adjustments within an allowable range so as not to deteriorate the user experience. When it becomes necessary to stop the transmission of the image, the server 400 terminates all the processing (Y in S64).
- the means suitable for the information related to the content represented by the moving image being transmitted according to the communication status used for streaming from the server 400 to the image processing device 200 Adjust the data size of the image with and the amount.
- adjusting by combining a plurality of adjusting means such as resolution, frame rate, and quantization parameter, it is possible to significantly increase the variation of the state change that can be taken, rather than adjusting only one parameter. As a result, the deterioration of the image quality can be suppressed to the extent that the user can tolerate.
- FIG. 33 shows the configuration of the functional block of the server 400 having a function of changing the compression ratio depending on the area on the frame based on the content represented by the moving image.
- the server 400 includes an image generation unit 420, a compression coding unit 422, a packetization unit 424, and a communication unit 426.
- the image generation unit 420, the packetization unit 424, and the communication unit 426 have the same functions as those described with reference to FIGS. 5, 16 and 24.
- the image generation unit 420 may draw a moving image to be transmitted on the spot, that is, may dynamically draw a video that did not exist until then.
- the compression coding unit 422 may further include a division unit 440, a second coding unit 444, a transmission target adjustment unit 362, and the like shown in FIGS. 20 and 23. ..
- the compression coding unit 422 includes an image content acquisition unit 450, an attention level estimation unit 460, a communication status acquisition unit 462, and a compression coding processing unit 464.
- the image content acquisition unit 450 acquires information related to the content represented by the moving image to be processed from the image processing device 200, the image generation unit 420, and the compression coding processing unit 464, or by itself. Obtained by performing image analysis.
- the attention level estimation unit 460 estimates the user's attention level according to the displayed content for each unit area formed by dividing the frame plane of the moving image based on the information related to the content represented by the moving image.
- the degree of attention is an index such as a numerical value indicating the degree of attention of the user. For example, a high degree of attention is estimated for a unit area including an area where a main object is shown and an area where characters are shown. Therefore, the image content acquisition unit 450 may acquire information relating to the type of the object represented in the image and its position in addition to the information relating to the content of the moving image illustrated with reference to FIG.
- the information may be acquired by the image content acquisition unit 450 itself executing the image recognition process, or may be notified as a result of image drawing from the image generation unit 420 or the like.
- the image content acquisition unit 450 uses the acquired optical flow, motion estimation, coding unit allocation status, whether or not the scene is switched, the type of image texture displayed in the frame, and the feature points.
- Image recognition may be performed using at least one of the distribution, depth information, and the like, and the degree of attention of the recognized object may be estimated.
- the communication status acquisition unit 462 has the same function as the communication status acquisition unit 452 shown in FIGS. 23 and 26.
- the compression coding processing unit 464 compresses and encodes the image data after making the compression ratios different on the image plane based on the distribution of the attention degree estimated by the attention degree estimation unit 460. At this time, the compression coding processing unit 464 determines the compression ratio in the frame plane and the distribution of the quantization parameter based on the combination of the degree of attention, the communication bandwidth that can be used for data transmission, the frame rate, and the resolution. ..
- the compression coding processing unit 464 lowers the compression rate by lowering the value of the quantization parameter for the unit quantity range where a high degree of attention is estimated, and allocates a larger bit rate.
- the quantization parameter is determined based only on the estimated high degree of attention, it may occur that the available communication band is compressed more than necessary or the compression is insufficient.
- the compression coding processing unit 464 determines the distribution of the compression ratio in the image plane so that the data size of the entire frame matches the available communication band, taking into consideration the frame rate and the resolution. However, as described above, the compression coding processing unit 464 performs compression coding for each partial image of the frame generated by the image generation unit 420.
- the partial image is, for example, an integral multiple of the unit area for estimating the degree of attention.
- the compression coding processing unit 464 determines the quantization parameter for each unit region, and compresses and encodes each unit region included in the partial image using the determined quantization parameter. At this time, the compression coding processing unit 464 grasps the total data size for each partial image.
- the compression coding processing unit 464 sequentially supplies the data of the partial image compressed and encoded in this way to the packetization unit 424. At this time, by supplying the quantization parameters applied to the unit region of the partial image in association with each other, the packetizing unit 424 packetizes the partial image data together with the data. As a result, the compression-encoded partial image data is transmitted to the image processing device 200 via the communication unit 426 in the same manner as described above.
- the decoding / decompression unit 242 of the image processing apparatus 200 performs dequantization based on the quantization parameters transmitted together with the image data.
- FIG. 34 is a diagram for explaining a process in which the attention level estimation unit 460 estimates the attention level distribution on the image plane.
- the image 160 represents a certain frame in the moving image data.
- the image 160 shows objects 162a, 162b and GUI 162c.
- the attention level estimation unit 460 forms a unit area (for example, a unit area 164) by dividing the image plane in both vertical and horizontal directions at predetermined intervals as shown by a broken line. Then, the degree of attention is estimated for each unit area.
- the figure shows that the set of unit regions 166a and 166b in which the objects 162a and 162b are represented, surrounded by the alternate long and short dash line, is estimated to have a higher degree of attention than the other unit regions.
- the degree of attention is estimated based on various information as illustrated in "6. Optimization of data size reduction means" above.
- the degree of attention may be 0 or 1, that is, a binary value of not being noticed or being noticed, or may be represented by more gradations.
- the attention level estimation unit 460 may derive a score representing the attention level according to at least one of the following rules, and comprehensively determine the attention level for each unit area based on the total.
- the image content acquisition unit 450 obtains information from the image generation unit 420, or estimates these objects from the interlocking between the object specified by the image recognition and the user operation.
- the user may be one person, or may be a plurality of people who share the same image processing device 200 or have different image processing devices 200 connected to the same server 400.
- the image content acquisition unit 450 obtains information from the image generation unit 420 or identifies these objects by image recognition.
- image recognition a general face detection algorithm or the like may be used. For example, the face is detected by searching the image for a position where the feature amount of the eyes, nose, and mouth is relatively located in a T shape.
- the indicator is specified by the image content acquisition unit 450 to obtain information from the image generation unit 420 or by image recognition.
- the image content acquisition unit 450 obtains information from the image generation unit 420 or identifies the object by image recognition.
- Score determination rule based on the size of the image on the image Refers to LOD, mipmap texture, tessellation, and object size, and there is an object with higher definition than a predetermined value, and the ratio of the area occupied by it in the entire image. The larger the value (there is a large high-definition object near the view screen), the higher the score of the unit area containing the object is set.
- Score determination rule based on contrast and dynamic range The contrast based on the distribution of pixel values and the dynamic range based on the distribution of brightness are referred to, and the higher the contrast or dynamic range, the higher the score. 7. Score determination rule based on image movement Refers to the amount of movement of an object's image, optical flow, and the size and amount of motion estimation, and many objects have a movement amount larger than a predetermined value, and the percentage of the area they occupy in the entire image. The larger the unit area, the higher the score.
- Score determination rule based on texture type The image texture type of each unit area is aggregated, and when the ratio of the area occupied by the dense area, detailed area, and crowd area is large in the entire image, the unit area including the texture is included. Is a higher score than the others.
- Score control rule at scene switching timing Information about the switching timing is obtained from the image generation unit 420.
- the amount of objects, feature points, edges, optical flow, motion estimation, pixel contrast, brightness dynamic range, presence / absence of audio, number of audio channels, or audio mode are all suddenly changed or reset in the time series direction. Switch the score when you do.
- at least two frames or more are referred to.
- the compression coding processing unit 454 can also detect scene switching based on the correlation with the previous frame in order to grasp the necessity of the frame as the intra frame in the compression coding.
- the score determination rule described above may be used in combination to improve the detection accuracy of switching.
- the score of the high-scoring unit area set based on other scoring rules is further increased for the frames up to that point.
- the score of the unit area, which has been regarded as a high score is reset once. Since an intra frame is required to switch the detected scene and the data size tends to increase in a surge manner, the total score of all the unit areas is reduced in the target frame and a predetermined number of subsequent frames.
- Score determination rule based on the content of user operation In content such as a game executed by the image generation unit 420, when the amount of change in user operation in the immediately preceding predetermined period is equal to or greater than a predetermined value, the user obtains high responsiveness from the content. We are expecting it, and it is estimated that there is a region of interest. Therefore, the score of the unit region in which the score equal to or higher than the predetermined value is given by other scoring rules is further amplified. If the amount of change is small even if the operation is performed, the level of the score is lowered by one step from the amplification result.
- the user operation analyzes input information acquired by an input device (not shown) such as a game controller, keyboard, and mouse, the position, posture, and movement of the head mount display 100, and an image taken by the camera of the head mount display 100 or an external camera (not shown).
- an input device such as a game controller, keyboard, and mouse
- the position, posture, and movement of the head mount display 100 and an image taken by the camera of the head mount display 100 or an external camera (not shown).
- a gesture (hand sign) instruction based on the result, a voice instruction acquired by a microphone (not shown), and the like are acquired from the image processing device 200.
- Controlling the frequency of switching the distribution of the compression rate The score is adjusted so that the switching is within the permissible range from the viewpoint of the user experience by referring to the history of the degree of attention determined in the predetermined period immediately before.
- the "tolerance range" is determined based on a predefined table or model.
- the attention level estimation unit 460 comprehensively determines the attention level of each unit area according to one of the above rules or the total value of the scores obtained by a plurality of rules.
- the compression coding processing unit 454 may refer to the Z value in order to grasp the position of the object, the order of projection, the size, and the relative distance from the view screen in the above rules 1 to 9.
- the above-mentioned decision rule is prepared in advance in the form of a table or a calculation model, and is held inside the attention level estimation unit 460.
- the compression coding processing unit 464 determines the compression rate (quantization parameter) of each unit region based on the distribution of the degree of attention estimated in this way. For example, in the illustrated example, when one line of the unit area is used as a partial image, the uppermost partial image 168a and the lowermost partial image 168b, which do not have a unit area determined to have a high degree of attention, are intermediate portions other than the above. The compression rate is higher than that of the partial image of. Further, when the object 162a has a higher degree of attention than the object 162b, it is conceivable that the unit region set 166b in which the object 162b is represented has a higher compression ratio than the unit region set 166a.
- the compression coding processing unit 464 updates the distribution of the compression rate in any of partial image units, one frame unit, a predetermined number of frame units, and a predetermined time interval, so that the data size is the latest. Make it suitable for the communication situation. For example, if the available communication bandwidth, resolution, and frame rate are the same, the larger the unit area estimated to have high attention, the smaller the difference in compression ratio between the attention area and the non-attention area. Such adjustments may be made individually for each set of unit regions 166a and 166b, depending on the degree of attention. In some cases, a set of some unit regions (for example, a set of unit regions 166b) may be excluded from the target for lowering the compression rate based on the determined priority of attention.
- the data size control may be any of a partial image unit, a frame unit, a predetermined number of frame units, and a predetermined time unit. Rules for determining the distribution of quantization parameters based on a combination of attention, available communication bandwidth, frame rate, and resolution for each unit region should be prepared in advance in the form of a table or computational model.
- the decision rule may be optimized by machine learning or deep learning while collecting the adjustment results in various past cases.
- FIG. 35 is a flowchart showing a processing procedure in which the server 400 controls the compression ratio for each area of the image plane. This flowchart is started by the user selecting a game to be played, a moving image to be watched, or the like from the image processing device 200.
- the communication status acquisition unit 462 of the server 400 starts acquiring the communication status used for streaming to the image processing device 200 (S70). As described above, since the communication status is determined by sending and receiving signals to and from the image processing device 200, the communication status acquisition unit 462 acquires necessary information from the communication unit 426.
- the compression coding processing unit 464 determines the distribution of the quantization parameters based on the distribution of the degree of attention (S76). As described above, the quantization parameters are determined in consideration of the available communication bandwidth, resolution, and frame rate in addition to the degree of attention.
- the compression coding processing unit 464 repeats compression coding and transmission of all partial image data for the frame to be processed (N, S80 in S82). If it is not necessary to stop the transmission of the image due to user operation on the image processing device 200 (N in S84), the data size is determined, the attention distribution is estimated, the quantization parameter distribution is determined, and the portion of the subsequent frame. Image compression coding and transmission are repeated (N, S74, S75, S76, S80, S82 of S84).
- the server 400 terminates all the processing (Y in S84).
- the server 400 estimates the degree of attention of the user for each unit region based on the content represented by the moving image. Then, the distribution of the quantization parameters is determined so that the higher the degree of attention is, the lower the compression rate is, and then the compression coding is performed and transmitted to the image processing apparatus 200. This can improve the quality of the user experience under limited communication bandwidth and resource environment.
- the degree of attention is more accurate and detailed. Distribution can be estimated.
- the compression rate can be finely controlled in response to changes in resolution, frame rate, and communication status, and it can respond flexibly to various situation changes. it can.
- FIG. 36 shows the configuration of the functional block of the server 400 having a function of changing the compression ratio depending on the area on the frame based on the user's gaze point.
- the server 400 includes an image generation unit 420, a compression coding unit 422, a packetization unit 424, and a communication unit 426.
- the image generation unit 420, the packetization unit 424, and the communication unit 426 have the same functions as described with reference to FIGS. 5, 9, 16, 26, and 33.
- the compression coding unit 422 may further include a division unit 440, a second coding unit 444, a transmission target adjustment unit 362, and the like shown in FIGS. 20 and 23.
- the compression coding unit 422 includes a gaze point acquisition unit 470, an attention level estimation unit 472, a communication status acquisition unit 474, and a compression coding processing unit 476.
- the gazing point acquisition unit 470 acquires the position information of the gazing point of the user with respect to the drawn moving image displayed on the display device connected to the image processing device 200 such as the head-mounted display 100 and the flat plate display 302.
- a gaze point detector is provided inside the head-mounted display 100, or a gaze point detector is attached to a user who is looking at the flat plate display 302, and the measurement result by the gaze point detector is acquired.
- the image data acquisition unit 240 of the image processing device 200 transmits the position coordinate information of the gazing point to the communication unit 426 of the server 400 at a predetermined rate, so that the gazing point acquisition unit 470 acquires it.
- the gazing point detector may be a general device that irradiates the user's eyeball with reference light such as infrared rays and identifies the gazing point from the direction of the pupil obtained by detecting the reflected light with a sensor.
- the gazing point acquisition unit 470 preferably acquires the gazing point position information at a frequency higher than the frame rate of the moving image.
- the gaze point acquisition unit 470 may generate position information at an appropriate frequency by temporally interpolating the position information of the gaze point acquired from the image processing device 200.
- the gazing point acquisition unit 470 may simultaneously acquire a predetermined number of historical values from the image processing device 200 together with the latest value of the gazing point position information.
- the attention level estimation unit 472 estimates the attention level for each unit area formed by dividing the frame plane of the moving image based on the position of the gazing point. Specifically, the attention level estimation unit 472 estimates the attention level based on at least one of the frequency at which the gazing point is included, the residence time of the gazing point, the presence / absence of a saccade, and the presence / absence of blinking. Qualitatively, the attention level estimation unit 472 increases the attention level of the unit region as the frequency at which the gazing point is included per unit time or the residence time increases.
- a saccade is a high-speed movement of the eyeball that occurs when the line of sight is directed at an object, and it is known that the processing of visual signals in the brain is interrupted during the period when the saccade is occurring. Of course, the image is not recognized during the blinking period. Therefore, the attention level estimation unit 472 changes the attention level difference so as to reduce or eliminate the difference in attention level during those periods. Techniques for detecting saccades and blink periods are disclosed, for example, in US Patent Application Publication No. 2017/0285736.
- the attention level estimation unit 472 acquires new position information. You may update the attention level each time you get. That is, the distribution of attention may change during the compression coding process for one frame. As described above, the attention level estimation unit 472 further estimates the attention level based on the content represented by the moving image for each unit region, and sets the attention level at the position of the gazing point, similarly to the attention level estimation unit 460 described in 7-1. The final attention distribution may be obtained by integrating with the based attention.
- the communication status acquisition unit 474 has the same function as the communication status acquisition unit 452 of FIG. 26.
- the compression coding processing unit 476 basically has the same function as the compression coding processing unit 464 of FIG. 33. That is, the compression coding processing unit 476 compresses and encodes the image data after making the compression ratio different on the image plane based on the distribution of the attention degree estimated by the attention degree estimation unit 472. At this time, the compression coding processing unit 476 determines the compression ratio in the frame plane and the distribution of the quantization parameter based on the combination of the communication bandwidth, the frame rate, and the resolution that can be used for data transmission.
- the compression coding processing unit 476 adjusts the distribution of the compression rate based on the comparison between the data size of the latest predetermined number of frames and the available communication bandwidth acquired by the communication status acquisition unit 474.
- the movement of the gazing point is generally complicated, and there is a possibility that the degree of attention cannot be obtained with stable accuracy. Therefore, the compression coding processing unit 476 may refer to the compression result in the latest frame in addition to the attention level distribution estimated by the attention level estimation unit 472 to improve the accuracy of determining the compression rate of the frame to be processed.
- the compression coding processing unit 476 may adjust the distribution of the compression rate of the frame to be processed based on the compression coding result of the latest predetermined number of frames, that is, the region where the compression rate is increased and the compression rate thereof. Good. This makes it possible to alleviate the bias in the distribution of the compression ratio.
- the compression coding processing unit 476 determines the effectiveness of the degree of attention for each unit region, and when it is determined that it is not valid, refers to the compression coding result of the latest predetermined number of frames to determine the distribution of the compression ratio. You may decide.
- the compression coding processing unit 476 adopts the distribution of the compression ratio determined by the latest predetermined number of frames as it is. Or extrapolate the change in distribution to determine the distribution of the compression ratio of the frame to be processed. Further, as described above in 7-1, the compression coding processing unit 476 considers the frame rate and the resolution, and sets the compression ratio in the image plane so that the data size of the entire frame matches the available communication band. Determine the distribution. Subsequent processing is the same as described above in 7-1.
- FIG. 37 is a diagram for explaining a process in which the attention level estimation unit 472 estimates the attention level distribution on the image plane.
- the image 180 represents a certain frame in the moving image data.
- the circle (for example, circle 182) shown on the image represents the position where the gazing point stayed, and the size of the circle represents the length of the residence time.
- “retention” means that the gazing point stays within a predetermined range considered to be the same position for a predetermined time or longer.
- the line (for example, line 184) represents a movement route that occurs at a frequency of a predetermined value or more among the movement routes of the gazing point.
- the attention level estimation unit 472 acquires the position information of the gazing point from the gazing point acquisition unit 470 at a predetermined cycle, and generates the information as shown in the figure. Then, for each unit area, the degree of attention is estimated based on the frequency at which the gazing point is included, the residence time, the presence / absence of saccade, the presence / absence of blinking, and the like. In the figure, for example, the unit region included in the regions 186a, 186b, and 186c surrounded by the alternate long and short dash line is estimated to have a higher degree of attention than the other unit regions. Furthermore, the unit region that has become the path of viewpoint movement at a high frequency equal to or higher than the threshold value may also be given a high degree of attention. In this embodiment as well, the degree of attention may be 0 or 1, that is, a binary value of not being noticed or being noticed, or may be represented by more gradations.
- FIG. 38 is a diagram for explaining a method in which the compression coding processing unit 476 determines the distribution of the compression ratio based on the gazing point.
- the compression coding processing unit 476 determines the compression ratio (quantization parameter) for each partial image based on the latest distribution of attention and the available communication bandwidth. Determine and compress code.
- the data size as a result of compression can vary depending on the content of the image, and the gazing point information can be updated in the unprocessed partial image in the target frame.
- the actual result may differ from the intended data size at the time when the compression coding of the target frame is started. Therefore, if the available communication bandwidth is temporarily exceeded or is likely to be exceeded, the target frame or subsequent frames can be canceled to cancel the specification of compression rate reduction based on the degree of attention and adjust the data size. It is carried out in the compression coding process of. In the case of the figure, as shown in the upper part, seven partial regions (for example, partial region 192) formed by equally dividing the plane of the image 190 in the horizontal direction are formed.
- the compression coding processing unit 476 compresses and encodes each partial image, for example, when the partial image includes a unit region whose compression ratio should be reduced, or when the partial image is a unit region whose compression ratio should be reduced. , The compression rate is lowered by lowering the quantization parameter for the partial image. Further, if new position information of the gazing point is obtained while compression coding is performed in order from the upper partial image of the image 190, the attention level estimation unit 472 updates the attention level for each unit area accordingly and compresses the image 190. The coding processing unit 476 determines the compression rate of the partial image based on the latest degree of attention. That is, when the attention level is updated after the start of processing of the frame to be processed, the compression coding processing unit 476 compresses and encodes the partial image at a compression rate based on the distribution of the latest attention level.
- the compression rate may be adjusted with reference to the compression coding results up to that point.
- the bar graph in the lower part of the figure shows the data size after compression coding for each partial image in four consecutive frames (“Frame 0” to “Frame 3”) as the compression coding result in bit rate (bit / sec). Further, for each frame, the bit rate after compression coding per frame is shown by a line graph 196.
- the bit rate "A” indicates the communication bandwidth that can be used for communication between the server 400 and the image processing device 200.
- the compression coding processing unit 476 adjusts the compression ratio of each partial image, and thus the quantization parameter, by comparing the bit rate per frame with the available communication bandwidth, for example.
- the bit rate per frame of "Frame 0" is sufficiently lower than the communication bandwidth, whereas in the next "Frame 1", it is close to the communication bandwidth.
- the compression coding processing unit 476 predicts the bit rate per frame in the compression coding processing of each partial image, and the difference from the communication bandwidth may be smaller than a predetermined threshold value as in "Flame 1". Once found, increase the compression ratio of any of the partial images.
- the arrow indicates that the bit rate was lowered by increasing the compression ratio of the seventh partial image of "Flame 1" to be higher than the initial determination.
- the compression coding processing unit 476 may adjust the compression rate for the next frame "Flame 3".
- the arrow indicates that the bit rate was lowered by increasing the compression ratio of the first partial image of "Flame 3" from the initial determination.
- the degree of attention is represented by a binary value of whether it is attracting attention or not, and the 7th partial image of "Flame 1" and the 1st part of "Flame 3", which were initially the regions of interest.
- the compression coding processing unit 476 includes a unit region of high attention that should reduce the compression rate when the bit rate per frame exceeds the communication bandwidth or the difference between the two becomes smaller than a predetermined value. Even if it is a partial image, the reduction of the compression rate is cancelled.
- the same compression rate as other areas that are not attracting attention may be given, or the compression rate may be increased by a predetermined value.
- the adjustment method is not limited to the one shown in the figure, and the amount of change in the compression rate may be different depending on the degree of attention, or the entire distribution of the compression rate may be changed, especially when the degree of attention is expressed in multiple stages. You may.
- the compression coding processing unit 476 may determine the quantization parameter based only on the frame to be processed, or determine the quantization parameter by referring to the compression coding result in the latest predetermined number of frames. You may.
- the compression coding processing unit 476 multilaterally confirms the temporal changes of parameters such as the distribution of the quantization parameters in the past frames, the available communication bandwidth, and the data size of the entire frame, and based on this, in the frame to be processed.
- the distribution of quantization parameters may be determined. Determines the distribution of quantization parameters based on the rules that determine the distribution of quantization parameters based on the degree of attention, the distribution of quantization parameters in past frames, the available communication bandwidth, and the time variation of parameters such as the data size of the entire frame.
- the rules to be used may be optimized by machine learning or deep learning while collecting the adjustment results in various past cases.
- the processing procedure in which the server 400 controls the compression ratio for each area of the image plane may be the same as that shown in FIG. 35.
- the attention level estimation process may be updated as necessary each time the position information of the gazing point is obtained, and the quantization parameter may be changed at any time accordingly.
- the server 400 acquires the actual movement of the line of sight of the user and estimates the degree of attention of the user for each unit region based on the result. .. As a result, it is possible to accurately determine the target that is actually attracting attention, and by preferentially allocating resources to the target, it is possible to improve the image quality in terms of user recognition.
- the accuracy of setting the compression rate can be maintained even if there is an error in the estimation of the degree of attention. Furthermore, by monitoring the data size after compression coding in the entire frame, even if there are too many areas that are judged to have high attention in the initial setting, or the compression rate of the area is excessively low. , Those values can be adjusted appropriately. Also, as with 7-1, by treating the degree of attention as a distribution and determining the distribution of the compression rate according to the distribution, the compression rate can be finely controlled with respect to changes in resolution, frame rate, and communication conditions, and various Can respond flexibly to changes in circumstances.
- the gazing point acquisition unit 470 and the attention level estimation unit 472 are provided on the image processing device 200 side, and the server 400 acquires the attention level information estimated for each unit area from the image processing device 200. You may.
- the gazing point acquisition unit 470 acquires the gazing point position information which is the measurement result from the gazing point detector described above.
- the attention level estimation unit 472 estimates the attention level for each unit area based on the position information of the gazing point in the same manner as when the server 400 is provided.
- the position information of the gazing point may be acquired at a frequency higher than the frame rate, and the distribution of attention may be updated at any time accordingly.
- the attention level information estimated by the attention level estimation unit 472 is transmitted to the communication unit 426 of the server 400 at a predetermined rate via, for example, the image data acquisition unit 240.
- the attention level estimation unit 472 may simultaneously transmit a predetermined number of historical values together with the latest value of the attention level estimation result in preparation for a transmission failure.
- the operations of the communication status acquisition unit 474 and the compression coding processing unit 476 of the server 400 are the same as described above. Even with such a configuration, the same effects as described above can be realized.
- the present invention can be used for various devices such as image processing devices, game devices, mobile terminals, head-mounted displays, image data transfer devices, content providing servers, and systems including any of them.
- 1 image display system 100 head mount display, 200 image processing device, 202 input / output interface, 204 partial image storage unit, 206 control unit, 208 video decoder, 210 partial image storage unit, 212 control unit, 214 image processing unit, 216 Partial image storage unit, 218 control unit, 220 display controller, 240 image data acquisition unit, 242 decoding / decompression unit, 244 image processing unit, 246 display control unit, 248 data acquisition status identification unit, 250 output target determination unit, 252 output unit , 260 position / orientation tracking unit, 262 first correction unit, 264 synthesis unit, 266 second correction unit, 270a first formation unit, 270b second formation unit, 272a first control unit, 272b second control unit, 280 first Decoding unit, 282 second decoding unit, 302 flat plate display, 400 server, 402 drawing control unit, 404 image drawing unit, 406 frame buffer, 408 video encoder, 410 partial image storage unit, 412 control unit, 414 video stream control unit , 416 I / O
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Human Computer Interaction (AREA)
- Computer Hardware Design (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Heart & Thoracic Surgery (AREA)
- Health & Medical Sciences (AREA)
- Computer Graphics (AREA)
- Software Systems (AREA)
- Controls And Circuits For Display Device (AREA)
- Processing Or Creating Images (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
サーバ400において画像生成部420は、ヘッドマウントディスプレイを装着しているユーザ頭部の、表示時点での位置姿勢を予測し、それに対応する視野で動画像のフレームを描画する。通信部426は、動画像のデータと位置姿勢の予測値を画像処理装置200に送信する。画像処理装置200の画像処理部260は、最新の位置姿勢と予測値との差分に基づき画像を補正する。表示制御部246は、当該差分に基づき、補正対象を変化させる。
Description
この発明は、表示対象の動画像のデータを処理する画像処理装置、画像データ転送装置、画像処理方法、および画像データ転送方法に関する。
近年の情報処理技術や画像表示技術の向上により、様々な形態で映像世界を体験することができるようになってきた。例えばヘッドマウントディスプレイにパノラマ映像を表示し、ユーザの視線に対応する画像を表示させることにより、映像世界への没入感を高めたり、ゲームなどのアプリケーションの操作性を向上させたりできる。また、潤沢なリソースを有するサーバからストリーミング転送された画像データを表示させることにより、ユーザは場所や規模によらず高精細な動画像やゲーム画面を楽しむことができる。
ネットワークを介して伝送された画像のデータをクライアント端末に即時表示させる技術においては、当該クライアント端末とサーバ間の通信による遅延時間が問題となり得る。例えばクライアント端末側でのユーザ操作を表示画像に反映させる場合、ユーザ操作のサーバへの送信と、サーバからクライアント端末への画像データの送信といったデータの行き来が必要になり、看過できない遅延時間を生むことがある。ヘッドマウントディスプレイを表示先とする場合は、ユーザの頭部の動きに対し表示が遅れることにより、臨場感が損なわれたり映像酔いを引き起こしたりすることも考えられる。この問題は、高い画質を追求するほど顕在化しやすい。
本発明はこうした課題に鑑みてなされたものであり、その目的は、通信によるデータ伝送を伴う画像表示において、画質と遅延時間の低減を両立させることのできる技術を提供することにある。
上記課題を解決するために、本発明のある態様は画像処理装置に関する。この画像処理装置は、ヘッドマウントディスプレイに動画像を表示させる画像処理装置であって、ヘッドマウントディスプレイを装着しているユーザ頭部の位置姿勢を取得する位置姿勢追跡部と、一体的に設けられていない外部装置から、動画像のフレームのデータとともに、当該フレームを描画する際に用いられた、位置姿勢の予測値を取得する画像データ取得部と、最新の位置姿勢と予測値との差分に基づいてフレームのデータを補正し、最新の位置姿勢に対応する表示画像を生成する画像処理部と、表示画像を順次、前記ヘッドマウントディスプレイの表示パネルに出力する表示制御部と、を備え、表示制御部は、少なくとも位置姿勢の差分に基づき、画像処理部における補正対象を変化させることを特徴とする。
本発明の別の態様は画像データ転送装置に関する。この画像データ転送装置は、ヘッドマウントディスプレイに表示させる動画像のデータを転送する画像データ転送装置であって、ヘッドマウントディスプレイを装着しているユーザ頭部の位置姿勢を、データ転送先の装置から取得する位置姿勢取得部と、転送した動画像のフレームがヘッドマウントディスプレイに表示される時点での、位置姿勢を予測する位置姿勢予測部と、位置姿勢の予測値に対応する、動画像の各フレームを描画する描画部と、動画像のフレームのデータを、予測値とともに送信する通信部と、を備えたことを特徴とする。
本発明のさらに別の態様は画像処理方法に関する。この画像処理方法は、ヘッドマウントディスプレイに動画像を表示させる画像処理装置が、ヘッドマウントディスプレイを装着しているユーザ頭部の位置姿勢を取得するステップと、一体的に設けられていない外部装置から、動画像のフレームのデータとともに、当該フレームを描画する際に用いられた、位置姿勢の予測値を取得するステップと、最新の位置姿勢と予測値との差分に基づいてフレームのデータを補正し、最新の位置姿勢に対応する表示画像を生成するステップと、表示画像を順次、ヘッドマウントディスプレイの表示パネルに出力するステップと、を含み、表示画像を生成するステップは、少なくとも位置姿勢の差分に基づき、補正対象を変化させることを特徴とする。
本発明のさらに別の態様は画像データ転送方法に関する。この画像データ転送方法は、ヘッドマウントディスプレイに表示させる動画像のデータを転送する画像データ転送装置が、ヘッドマウントディスプレイを装着しているユーザ頭部の位置姿勢を、データ転送先の装置から取得するステップと、転送した動画像のフレームがヘッドマウントディスプレイに表示される時点での、位置姿勢を予測するステップと、位置姿勢の予測値に対応する、動画像の各フレームを描画するステップと、動画像のフレームのデータを、予測値とともに送信するステップと、を含むことを特徴とする。
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラム、データ構造、記録媒体などの間で変換したものもまた、本発明の態様として有効である。
本発明によれば、通信によるデータ伝送を伴う画像表示において、画質と遅延時間の低減を両立させることができる。
1.システムの全体構成
図1は、本実施の形態における画像処理システムの構成例を示す。画像表示システム1は、画像処理装置200、ヘッドマウントディスプレイ100、平板型ディスプレイ302、およびサーバ400を含む。画像処理装置200は、ヘッドマウントディスプレイ100および平板型ディスプレイ302と、無線通信またはUSB Type-C、HDMI(登録商標)などのインターフェース300により接続される。画像処理装置200はさらに、インターネットやLAN(Local Area Network)などのネットワーク306を介してサーバ400に接続される。
図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に送信する。
画像処理装置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の少なくともいずれかを必要に応じて接続できるようにしてもよい。画像処理装置200やこれらの端末に、図示しない入力装置を内蔵もしくは接続してもよい。またサーバ400に接続される画像処理装置200の数も限定されない。さらにサーバ400は、各自の平板型ディスプレイ302を視聴している複数のユーザの操作内容を、各平板型ディスプレイ302に接続された複数の画像処理装置200から受信し、それに対応する画像を生成したうえ、それぞれの画像処理装置200に送信してもよい。
図2は、ヘッドマウントディスプレイ100の外観例を示す。この例においてヘッドマウントディスプレイ100は、出力機構部102および装着機構部104で構成される。装着機構部104は、ユーザが被ることにより頭部を一周し装置の固定を実現する装着バンド106を含む。出力機構部102は、ヘッドマウントディスプレイ100をユーザが装着した状態において左右の目を覆うような形状の筐体108を含み、内部には装着時に目に正対するように表示パネルを備える。
筐体108内部にはさらに、ヘッドマウントディスプレイ100の装着時に表示パネルとユーザの目との間に位置し、画像を拡大して見せる接眼レンズを備える。またヘッドマウントディスプレイ100はさらに、装着時にユーザの耳に対応する位置にスピーカーやイヤホンを備えてよい。またヘッドマウントディスプレイ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による1フレーム分の描画が終了次第、サーバの垂直同期信号を待たずに、当該フレームの圧縮符号化を開始してよい。フレームの描画や圧縮符号化など各種処理を、垂直同期信号を基準として同期させる従来技術によれば、画像の描画から表示までの各処理に与える時間をフレーム単位で揃えることにより、フレーム順の管理が容易である。しかしながらこの場合、フレームの内容によって描画処理が早く終了しても、圧縮符号化処理を次の垂直同期信号まで待機する必要がある。本実施の形態では後に述べるように、部分画像単位でその生成時刻を管理することにより、無駄な待機時間が生じないようにする。
ビデオエンコーダ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はさらに、ユーザ操作やユーザの頭部の位置や姿勢に係る情報をヘッドマウントディスプレイ100や図示しない入力装置などから適宜取得し、サーバ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に適切なタイミングで出力する。具体的には、それらのディスプレイの垂直同期信号に合致するタイミングで、各フレームの最上段の部分画像のデータを出力し、その後、下方に向けて部分画像のデータを順次出力していく。
2.部分画像ごとのパイプライン処理
次に、画像の描画から表示までにサーバ400および画像処理装置200において実現される、部分画像のパイプライン処理について説明する。図4は、本実施の形態における、画像の描画から表示までの処理の様子を概念的に示している。上述のとおりサーバ400は、動画像のフレーム90を所定または可変のレートで生成する。図示する例でフレーム90は、左右に二等分した領域に左目用、右目用の画像をそれぞれ表した構成を有するが、サーバ400で生成する画像の構成をこれに限る趣旨ではない。
次に、画像の描画から表示までにサーバ400および画像処理装置200において実現される、部分画像のパイプライン処理について説明する。図4は、本実施の形態における、画像の描画から表示までの処理の様子を概念的に示している。上述のとおりサーバ400は、動画像のフレーム90を所定または可変のレートで生成する。図示する例でフレーム90は、左右に二等分した領域に左目用、右目用の画像をそれぞれ表した構成を有するが、サーバ400で生成する画像の構成をこれに限る趣旨ではない。
サーバ400は上述のとおり、フレーム90を部分画像ごとに圧縮符号化する。図では画像平面を水平方向に5分割し、部分画像92a、92b、92c、92d、92eとしている。これにより、部分画像はこの順で次々に圧縮符号化され、矢印に示すように画像処理装置200へ伝送され表示される。すなわち最上段の部分画像92aに対し、圧縮符号化、送信、復号伸張、表示パネル94への出力といった処理が施されている間に、その下の部分画像92b、さらに下の部分画像92c、というように順次部分画像が伝送され表示される。これにより、画像の描画から表示までに必要な各種処理を並列に実施でき、転送時間が介在しても最低限の遅延で表示を進捗させることができる。
図5は、本実施の形態のサーバ400および画像処理装置200の機能ブロックを示している。同図に示す各機能ブロックは、ハードウェア的にはCPU、GPU、エンコーダ、デコーダ、演算器、各種メモリなどで実現でき、ソフトウェア的には、記録媒体からメモリにロードした、情報処理機能、画像描画機能、データ入出力機能、通信機能などの諸機能を発揮するプログラムで実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。後述する機能ブロックも同様である。
サーバ400は、画像生成部420、圧縮符号化部422、パケット化部424、および通信部426を備える。画像生成部420は図3の描画制御部402、画像描画部404、フレームバッファ406で構成され、ゲーム画像など画像処理装置200に送信すべき動画像のフレームを、所定または可変のレートで生成する。あるいは画像生成部420は、図示しないカメラや記憶装置などから動画像のデータを取得してもよい。この場合、画像生成部420は、画像取得部と読み替えることができる。以後の説明でも同様である。
圧縮符号化部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フレームより小さい部分画像単位でパイプライン処理することにより並列に行う。画像処理装置200は、画像データ取得部240、復号伸張部242、画像処理部244、および表示制御部246を備える。
なお復号伸張部242と画像処理部244は、部分画像のデータに所定の処理を施し表示用の部分画像のデータを生成するという意味で共通の機能を有し、それらの少なくともいずれかを「画像処理部」と総称することもできる。画像データ取得部240は、図3の入出力インターフェース202、部分画像記憶部204、および制御部206で構成され、圧縮符号化された部分画像のデータを、その生成時刻とともにサーバ400から取得する。
復号伸張部242は、図3のビデオデコーダ208、部分画像記憶部210、制御部206、制御部212で構成され、圧縮符号化された部分画像のデータを復号伸張する。ここで復号伸張部242は、動き補償や符号化など圧縮符号化に必要な最小単位の領域のデータが画像データ取得部240により取得されたら、復号伸張処理を開始してよい。画像処理部244は図3の画像処理部214、部分画像記憶部216、制御部212、制御部218で構成され、部分画像のデータに所定の処理を施し、表示用の部分画像のデータを生成する。例えば上述のとおり画像処理部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は画像圧縮を行ってもよい。この際、画像処理部244は、近傍画素参照によるライトウェイトなエントロピー符号化、インデックス値参照符号化、ハフマン符号化などを行ってもよい。また表示装置が液晶パネルを採用した場合、高解像度化が可能な反面、反応速度が遅い。表示装置が有機ELパネルを採用した場合は反応速度が速い反面、高解像度化が難しく、また黒色領域とその周辺で色にじみが発生するBlack Smearingと呼ばれる現象が生じ得る。
そこで画像処理部244は、このような表示パネルによる様々な悪影響を解消するように補正を行ってもよい。例えば液晶パネルの場合、画像処理部244はフレーム間に黒い画像を挿入することにより液晶をリセットし、反応速度を向上させる。また有機ELパネルの場合、画像処理部244は輝度値や、ガンマ補正におけるガンマ値にオフセットをかけBlack Smearingによる色にじみを目立ちにくくする。
表示制御部246は、図3のディスプレイコントローラ220と制御部218で構成され、表示用の部分画像のデータを順次、ヘッドマウントディスプレイ100や平板型ディスプレイ302の表示パネルに表示させる。ただし本実施の形態では、部分画像の圧縮符号化データをサーバ400から個別に取得するため、通信状況によっては取得順が入れ替わったり、パケットロスにより部分画像のデータ自体が取得できなかったりすることが考えられる。
そこで表示制御部246は、部分画像が描画されてからの経過時間を、各部分画像の生成時刻から導出したうえ、サーバ400での描画タイミングを再現するように、表示パネルへの部分画像の出力タイミングを調整する。具体的には表示制御部246は、データ取得状況特定部248、出力対象決定部250、および出力部252を備える。データ取得状況特定部248は、部分画像のデータの生成時刻、および/または生成時刻からの経過時間に基づき、部分画像のデータの本来の表示順や表示タイミング、部分画像のデータの欠落量などのデータ取得状況を特定する。
出力対象決定部250はデータ取得状況に応じて、表示パネルへの出力対象を変化させたり、出力順や出力タイミングを適切に調整したりする。例えば出力対象決定部250はデータ取得状況に応じて、次のフレームに含まれる本来の部分画像のデータを出力するか、それより前のフレームに含まれる部分画像のデータを再度出力するかを決定する。出力対象決定部250は、次のフレームの表示開始時刻である垂直同期信号のタイミングまでにそのような出力対象を決定する。
例えば出力対象決定部250は、フレーム中、所定値以上の割合で部分画像が欠落している場合に、出力対象を前のフレームのデータに置き換えるなど、取得された部分画像の量(割合)に応じて出力対象を変化させてもよい。また出力対象決定部250は、過去のフレームの出力実績や、生成時刻からの経過時間に応じて、次のフレーム表示期間の出力対象を変化させてもよい。出力部252は、出力対象決定部250が決定した順序およびタイミングで、出力対象として決定された部分画像のデータを表示パネルに出力する。
図6は、本実施の形態においてサーバ400と画像処理装置200が、部分画像単位でパイプライン処理を行う効果を説明するための図である。図の横方向は時間経過を表し、各処理時間を、処理名とともに矢印で示している。そのうちサーバ400側の処理を細線、画像処理装置200側の処理を太線で示している。処理名に併記する括弧内の記載は、フレーム番号mの1フレーム分の処理を(m)、フレーム番号mのうちn番目の部分画像の処理を(m/n)としている。
またサーバ400側の垂直同期信号をvsync(サーバ)、画像処理装置200および表示装置側の垂直同期信号をvsync(クライアント)と表記している。まず(a)は、1フレーム単位で処理を進捗させる従来の態様を比較として示している。この例でサーバ400は、垂直同期信号により各フレームに対する処理を制御している。このためサーバ400は、フレームバッファに格納された1フレーム目のデータの圧縮符号化を、垂直同期信号に合わせて開始する。
そしてサーバ400は、2フレーム目のデータの圧縮符号化を、次の垂直同期信号に合わせて開始するとともに、圧縮符号化済みの1フレーム目のデータを所定単位でパケット化して送出する。画像処理装置200は、到達したフレーム順に復号伸張処理を施す。ただし復号伸張が完了し表示が可能な状態になっても、次に到来する垂直同期信号のタイミングまでその表示は待機される。結果として図示する例では、サーバ400で1フレームの描画が完了し圧縮符号化処理が開始されてから表示開始までに、2フレーム分の表示周期以上の遅延が発生する。
サーバ400と画像処理装置200間の通信時間や、両者の垂直同期信号のタイミングの差などによっては、それ以上の遅延が生じる可能性もある。(b)に示す本実施の形態によれば、サーバ400は、1フレーム目の1番目の部分画像の圧縮符号化が完了した時点で、当該部分画像のデータの送出を開始する。そのデータがネットワーク306を伝送している間に、2番目の部分画像の圧縮符号化および伝送、3番目の部分画像の圧縮符号化および伝送、・・・というように部分画像単位で伝送処理を進捗させる。
画像処理装置200側では、取得した部分画像のデータを順番に復号伸張していく。その結果、1番目の部分画像のデータは(a)の場合と比較し格段に早く、表示が可能な状態に到達する。なお1番目の部分画像のデータは、次に到来する垂直同期信号のタイミングまで表示を待機する。後続の部分画像については、1番目の部分画像の出力に続けて順次出力していく。1フレームの表示時間自体は(a)と同様のため、次の垂直同期信号までに、n番目の部分画像の表示が完了することになる。
このように、画像データの圧縮符号化から表示までを、1フレームより細かい単位で並列に進捗させることにより、図示する例では、(a)の場合より1フレーム分早いタイミングでの表示を実現できる。なお図示する例では(b)の場合も、サーバ400による圧縮符号化を、垂直同期信号を契機に開始しているが、上述のとおり垂直同期信号を待たずに圧縮符号化を行えば、遅延時間をさらに短縮できる。
また画像処理装置200の表示制御部246は、部分画像のデータが表示可能な状態になったタイミングに応じて、表示装置が許容する範囲内で垂直同期信号および水平同期信号の少なくともいずれかのタイミングをずらしてもよい。例えば表示制御部246は、全ての表示タイミングのベースとなるピクセルクロックの動作周波数を所定の微小時間変更したり、水平帰線期間や垂直帰線期間を所定の微小時間変更したりすることにより、表示パネルへの出力の準備ができてから実際に出力するまでの待機時間を短縮してもよい。表示制御部246はこの変更を毎フレームで繰り返すことにより、一度の大きな変更で表示が破綻しないようにしてもよい。
図6で示した例は、サーバ400から独立に送出された部分画像のデータが滞りなく、およそ同じ伝送時間で画像処理装置200に到達する理想的なケースを示している。一方、処理単位の粒度を細かくすることにより、画像処理装置200におけるデータの取得状況に変化が生じやすくなる。図7は、サーバ400と画像処理装置200間での部分画像のデータの伝送状況を例示している。
図の縦方向は時間経過を表し、サーバ400の軸に示した1番目から7番目の部分画像のデータが、画像処理装置200へ到達するまでの時間を矢印で示している。サーバ400と画像処理装置200の間の通信状況は常に変化し得、圧縮符号化された後の部分画像のデータサイズも毎回変化し得るため、個々の部分画像のデータの伝送時間も様々となる。そのため、サーバ400から同程度の周期で、順番に部分画像のデータを送出しても、画像処理装置200での取得時に、その状態が維持されているとは限らない。
図示する例では、1番目と2番目の部分画像のデータの取得間隔t1と、2番目と3番目の部分画像のデータの取得間隔t2は大きく異なっている。また4番目と5番目の部分画像のデータは取得順が逆転している。さらに、6番目の部分画像のデータのように、パケットロスにより画像処理装置200に到達しないデータも発生し得る。このような状況において画像処理装置200が、取得した部分画像のデータをそのままの順序で表示パネルに出力すれば、当然、本来の画像が表示されなかったり、表示のサイクルが破綻したりすることが起こり得る。
そこでデータ取得状況特定部248が、サーバ400側での各部分画像の生成時刻を参照し、図7に示した各種状況を把握する。これにより出力対象決定部250が、各フレームの表示期間における出力対象や、部分画像の出力タイミングを最適化する。このためサーバ400の通信部426は、部分画像のデータおよびその生成時刻とともに、送信済みの所定数の部分画像の生成時刻の履歴を、画像処理装置200に送信するようにしてもよい。
例えば通信部426は、直近に送信した64個の部分画像の生成時刻を、次の部分画像のデータとともに送信する。画像処理装置200のデータ取得状況特定部248は、当該生成時刻の履歴と、実際に取得した部分画像の生成時刻とを照合することにより、データの欠落や取得順の逆転を把握できる。すなわちデータの欠落が生じた際、データ取得状況特定部248は、その部分画像の生成時刻を、後続の部分画像とともに送信された生成時刻の履歴から取得できるようにする。
図8は、本実施の形態において表示制御部246が、出力対象や出力タイミングを調整しつつ、表示パネルへ部分画像のデータを出力する処理手順の例を示すフローチャートである。このフローチャートは、表示パネルの垂直同期信号のタイミングより前の所定のタイミングで、当該垂直同期信号に合わせて表示を開始すべきフレームに対し実施する処理の手順を示している。すなわちフレームごとに、図示した処理を繰り返す。
まず表示制御部246のデータ取得状況特定部248は、対象フレームに含まれる部分画像の取得状況を特定する(S10)。データ取得状況特定部248はさらに、それまでのフレームにおける部分画像の出力実績を記録しておき、それを参照してもよい。ここで出力実績とは例えば、次のようなデータの少なくともいずれかである。
1.後述する3つの分類のうち過去の所定期間に選択された分類の履歴
2.過去の所定期間に後述する第1分類において欠落した部分画像の履歴、発生率、部分画像の欠落の面積割合
3.最後に表示画像が更新されてからの経過時間
1.後述する3つの分類のうち過去の所定期間に選択された分類の履歴
2.過去の所定期間に後述する第1分類において欠落した部分画像の履歴、発生率、部分画像の欠落の面積割合
3.最後に表示画像が更新されてからの経過時間
すると出力対象決定部250は、特定されたそれらの状況が、あらかじめ準備しておいた分類のいずれに当てはまるかを判定する(S12)。出力対象決定部250は基本的に、様々な観点から総合的な判定を行い、ユーザ体験が最良となるように出力対象を決定する。そのためデータ取得状況特定部248はS10において、次のようなパラメータの少なくともいずれかを取得する。
1.対象フレームを構成する部分画像のうち取得済みの部分画像の量
2.対象フレームにおける部分画像の欠落範囲
3.同じ画像フレームの表示継続時間
4.後述するブラックアウトの継続時間
5.部分画像の生成時刻からの経過時間
上記パラメータのそれぞれには、1つまたは複数のしきい値を設定しておく。
2.対象フレームにおける部分画像の欠落範囲
3.同じ画像フレームの表示継続時間
4.後述するブラックアウトの継続時間
5.部分画像の生成時刻からの経過時間
上記パラメータのそれぞれには、1つまたは複数のしきい値を設定しておく。
そして出力対象決定部250は、対象フレームについて取得したパラメータがどの範囲に該当するかに応じてスコアを与えるなどして状況を分類する。例えばS10で取得したパラメータのそれぞれに、あらかじめ定めたテーブルに基づきスコアを与え、全パラメータのスコアの分布に基づき状況を分類する。図示する例では3つの分類を準備している。第1分類に当てはまる場合、出力対象決定部250は、それまでに得られた最新の部分画像のデータを出力対象と決定し、出力部252にそれを出力させる(S14)。
例えば構成する部分画像が所定値(所定割合)以上、取得済みで、なおかつ部分画像の生成時刻からの経過時間が許容範囲の場合、出力対象決定部250はスコア判定に基づき対象フレームを第1分類とする。このとき出力対象決定部250は、各生成時刻に対応する順序で部分画像が出力されるようにタイミングを調整する。理想的には図6で示したように、フレームの上段の部分画像から順次出力していく。
ただし途中に欠落している部分画像がある場合、各欠落箇所について下記パラメータのスコア化をさらに行い、前のフレームの同じ位置の部分画像を再利用するか、その部分についてはブラックアウトさせるか、判定してもよい。
1.同じ画像フレームの表示継続時間
2.後述するブラックアウトの継続時間
3.部分画像の生成時刻からの経過時間
1.同じ画像フレームの表示継続時間
2.後述するブラックアウトの継続時間
3.部分画像の生成時刻からの経過時間
なお、それまでに本来の画像を表示できない状況が所定時間以上、続いている場合、出力対象決定部250は、対象フレームの部分画像が所定値(所定割合)以上、取得済みでなくても第1分類としてもよい。前述のスコアを決めるテーブルをそのように設定しておいてもよい。これにより、一部であっても可能な範囲で画像の動きを表現できる。なお欠落した画像を、画像処理部244が推測のうえ修復してもよい。
第2分類に当てはまる場合、出力対象決定部250は、対象フレームより前のフレームの画像のデータを出力対象と決定し、出力部252にそれを出力させる(S16)。この場合、表示パネルには同じフレームが表示され続けることになる。例えば、対象フレームの部分画像が所定値(所定割合)以上、取得できず、前の所定時間内のフレームにおいては部分画像が所定値(所定割合)以上、取得されている場合、出力対象決定部250は対象フレームを第2分類とする。前述のスコアを決めるテーブルをそのように設定しておいてもよい。
第3分類に当てはまる場合、出力対象決定部250は、対象フレームのデータを出力すべき期間、何も出力しないことを決定する(S18)。この場合、表示パネルには1フレーム分のブラックアウト期間が発生する。例えば、対象フレームの部分画像が所定値(所定割合)以上、取得できず、表示済み画像を引き続き表示するには生成時刻からの経過が長すぎる場合、出力対象決定部250は対象フレームを第3分類とする。前述のスコアを決めるテーブルをそのように設定しておいてもよい。なおブラックアウトは、黒の塗りつぶし画像を表示することを基本とするが、あらかじめ設定した別の色を用いてもよい。
第2分類や第3分類での表示が所定時間継続したら、上述のとおり部分画像の取得状況にかかわらず第1分類に分岐させることにより、一部であっても何らかの画像の更新を行ってもよい。なお第1分類から第3分類に進むにつれて、ユーザ体験は損なわれやすくなる。そのためS10で取得した各パラメータに対して、ユーザ体験を良好にすべきときに高いスコアを与えるようにテーブルを決めておく。
そのうえで、S12では、S10で得たパラメータについて、テーブルに基づきスコアを与え、得られた複数のスコアを合算する。その合計値がどの程度大きいかで、第1から第3の分類の表示方法分類を選択する。ここで、合計値が大きい側が、第1分類、小さい側が第3分類とするしきい値をあらかじめ決めておく。
なお図示した例は一態様に過ぎず、データ取得状況特定部248が取得する情報の種類、出力対象決定部250による分類の判定基準、および各分類における出力対象は、表示対象の動画像の内容、許容できる欠落の度合いや欠落の継続時間、許容できる表示遅延や表示停止時間などに基づき適宜決定しておく。また表示制御部246は、次の垂直同期信号まで待機している間に蓄積される画像、一定範囲の表示済み画像、生成時刻、S10やS12での判定結果やスコアを図示しないメモリなどに保持してもよい。
さらに出力対象決定部250は、S12における判定とは別に、対象フレームに係る状況が、ユーザへ警告すべき条件に該当するか否かを判定する(S20)。例えば出力対象決定部250は、単位時間あたりにブラックアウトさせた時間や、部分画像の欠落の発生量がしきい値を超えたことを条件に、ユーザへの警告が必要と判定する(S20のY)。このとき出力対象決定部250は、通信状況が画像表示に影響を与えている旨のメッセージを表示させる(S22)。
当該メッセージは、画像処理部244が部分画像に重畳させることにより表示されるようにしてもよい。これによりユーザは、表示される画像の不具合の原因を知ることができる。警告条件に該当しない場合はメッセージを表示しない(S20のN)。以上の手順により対象フレームに関する処理を終了するとともに、次のフレームについて処理を開始する。
なおデータ取得状況特定部248は、S10で取得した部分画像の生成時刻からの処理時までの経過時間に基づき、データの送信遅延時間の傾向を導出してもよい。例えばデータ取得状況特定部248は、過去に取得済みの所定数の部分画像の、生成時刻からの経過時間のヒストグラムを生成する。そしてデータ取得状況特定部248は、基準値以上、経過時間が長くなる方向にヒストグラムが偏るなどしたときに、経過時間の増加の傾向を検知する。
このときデータ取得状況特定部248は、画像データ取得部240などを介してサーバ400に、送信する画像データのサイズの抑制を要求してもよい。例えばデータ取得状況特定部248は、1フレーム分の画像のデータ送信をスキップするように要求したり、圧縮率を所定量上げるように要求したりする。画面解像度を所定量下げるように要求してもよい。あるいはデータ取得状況特定部248は、出力対象決定部250に、1フレーム分の画像のデータ出力をスキップするように要求してもよい。
あるいはデータ取得状況特定部248はサーバ400に、部分画像の生成時刻から取得までの経過時間を送信してもよい。サーバ400の通信部426はこれを取得し、圧縮符号化部422が、ヒストグラムを生成して経過時間が長くなる方向にヒストグラムが偏るなどしたときに、経過時間の増加の傾向を検知し、送信する画像データのサイズを抑制してもよい。またはデータ取得状況特定部248はサーバ400に、上記の第1~第3の分類の発生量を通知してもよい。これらの対策により、遅延時間の増加が進み、後続のフレームの表示が著しく滞ったりデータが欠落したりするのを防止できる。
以上述べた部分画像ごとのパイプライン処理によれば、サーバ400が生成した画像のデータを、クライアントである画像処理装置200が受信し表示させる形態のシステムにおいて、サーバ400は、1フレームより小さい部分画像の単位で画像のデータを圧縮符号化し送信する。画像処理装置200においても部分画像の単位で復号伸張するとともに、必要な処理を施して表示パネルに順次出力する。これにより、サーバ400と画像処理装置200の双方で、1フレームより細かい粒度でのパイプライン処理が可能となる。
結果として、1フレームごとの処理より待機時間を減らすことができ、描画から表示までの遅延時間を軽減させることができる。またサーバ400が、部分画像のデータとともにその生成時刻を伝送することにより、独立したデータが短い周期で次々に送信されても、画像処理装置200は、サーバ400が画像を生成した順序を再現するようにして表示を進捗させることができる。
また生成時刻に基づき、欠落している部分画像を把握できるため、表示内容や表示ポリシーなどに応じて、最新のデータを表示させるか前のフレームのデータを再利用するか、何も出力しないかといった態様を適切に選択することができる。データ伝送に係る様々な状況に対しとり得る対策が増えるため、ユーザ体験を悪化させないように対策することで、支障を抑えつつ低遅延での表示が可能となる。
3.画像処理部におけるリプロジェクション処理
次に、リプロジェクションの機能を有する画像処理装置200について説明する。図9は、リプロジェクション機能を有する画像処理装置200と、対応する機能を有するサーバ400の機能ブロックの構成を示している。リプロジェクションとは、ヘッドマウントディスプレイ100を利用し、ユーザの頭部の動きに応じた視野で画像を表示させる態様において、一旦描画された画像を、表示直前の頭部の位置や姿勢に対応するように補正する処理を指す。
次に、リプロジェクションの機能を有する画像処理装置200について説明する。図9は、リプロジェクション機能を有する画像処理装置200と、対応する機能を有するサーバ400の機能ブロックの構成を示している。リプロジェクションとは、ヘッドマウントディスプレイ100を利用し、ユーザの頭部の動きに応じた視野で画像を表示させる態様において、一旦描画された画像を、表示直前の頭部の位置や姿勢に対応するように補正する処理を指す。
例えば本実施の形態のように、サーバ400から画像データを送信する場合、サーバ側でヘッドマウントディスプレイ100の位置や姿勢を取得し、それに対応する画像を生成しても、当該データの伝送期間に変化した位置や姿勢は画像に反映されない。画像処理装置200側で、頭部の位置や姿勢に応じた補正をするにしても、フレーム単位で補正をする場合、当該補正処理の間に生じた位置や姿勢の変化はやはり画像に反映されない。
その結果、頭部の動きに対し表示画像に看過できない遅延が生じ、仮想現実における没入感が損なわれたり、映像酔いを引き起こしたりしてユーザ体験の質が低下する。上述のように、部分画像単位でのパイプライン処理を実施したうえ、表示の直前に、部分画像ごとに頭部の位置や姿勢を反映させる補正を行うことにより、より応答性の高い表示を実現できる。
なおフレーム単位でリプロジェクションを実施するためのレンダリング装置とヘッドマウントディスプレイについては、例えば国際公開第2019/026765号に開示されている。この技術ではレンダリング装置が、フレーム表示時のヘッドマウントディスプレイの位置や姿勢を予測して画像を描画し、ヘッドマウントディスプレイは当該予測値と、最新の位置や姿勢との差に基づきさらに画像を補正したうえで表示を行う。ここでレンダリング装置をサーバとした場合、ヘッドマウントディスプレイまでの伝送経路、ひいては伝送時間が様々となり、位置や姿勢の予測値と表示時の実際の位置や姿勢との間に補正困難な乖離が生じることも考えられる。
そこで本実施の形態では、部分画像単位でのパイプライン処理により画像生成から表示までの時間を短縮するとともに、乖離の程度などに応じて表示対象を変化させる。図9においてサーバ400は、画像生成部420、圧縮符号化部422、パケット化部424、および通信部426を含む。画像処理装置200は、画像データ取得部240、復号伸張部242、画像処理部244、および表示制御部246を含む。
サーバ400の圧縮符号化部422、パケット化部424、通信部426、および画像データ取得部240、復号伸張部242は、図5で説明したのと同様の機能を有する。ただしそれらの機能を限定する趣旨ではなく、例えば画像データ取得部240は、圧縮符号化されていない部分画像のデータをサーバ400から取得してもよい。この場合、サーバ400における圧縮符号化部422と、画像処理装置200における復号伸張部242の機能を省略できる。一方で、サーバ400での圧縮符号化処理や、画像処理装置200での復号伸張処理などを実施する場合、描画から表示までにその分の時間が必要になるため遅延が顕在化しやすく、リプロジェクションの効果をより発揮しやすい。
またサーバ400は、複数のプレイヤが参加するマルチプレイヤゲームやスポーツ競技のライブ配信などを実現してもよい。この場合、サーバ400は、複数のユーザそれぞれの頭部の動きを継続して取得し、それに対応する視野で画像を生成したうえ、ユーザ個々の画像処理装置200へストリーミング配信する。マルチプレイヤゲームであれば、サーバ400は3次元空間での各プレイヤのフットプリントに基づき、それぞれの視点から見た仮想世界を描画する。またスポーツ中継の場合、サーバ400は、分散配置された複数のカメラで競技の様子を撮影した画像に基づき、各ユーザの視点に対応する画像を生成する。
サーバ400の画像生成部420は、位置姿勢取得部284、位置姿勢予測部286、描画部288を備える。位置姿勢取得部284は画像処理装置200から、ヘッドマウントディスプレイ100を装着するユーザ頭部の位置や姿勢の情報を所定のレートで取得する。位置姿勢予測部286は、生成した画像フレームが表示される時点におけるユーザの位置や姿勢を予測する。すなわち位置姿勢予測部286は、画像フレームを生成してからヘッドマウントディスプレイ100に表示されるまでの遅延時間を求め、位置姿勢取得部284が取得した位置や姿勢が当該遅延時間の経過後にどう変化するかを予測する。
遅延時間は、サーバ400や画像処理装置200の処理性能や、伝送路における遅延時間などに基づいて導出する。そしてヘッドマウントディスプレイ100の並進速度や角速度に遅延時間を乗じることで位置や姿勢の変化量を求め、位置姿勢取得部284が取得した位置や姿勢に加算する。描画部288は、予測された位置や姿勢の情報に基づきビュースクリーンを設定し、画像フレームを描画する。この場合、パケット化部424は、画像フレームの生成時刻とともに、当該画像フレームを描画した際に前提として用いられた、ユーザ頭部の位置や姿勢の予測値も画像生成部420から取得し、部分画像のデータと対応づける。
結果として画像処理装置200の画像データ取得部240は、部分画像のデータとともに、その生成時刻および、ユーザ頭部の位置や姿勢の予測値を取得する。なお部分画像のデータが伝送途中で欠落したり画像処理装置200への到達順が逆転したりする場合に備え、サーバ400の通信部426は、直近に送信した所定数の位置姿勢の予測値を、次の部分画像のデータとともに送信してもよい。なおリプロジェクション処理に着目した場合、画像処理装置200は、部分画像ごとの生成時刻の代わりに、1フレームごとの生成時刻をサーバ400から取得してもよい。後者の場合、以下に述べる遅延時間はフレーム単位となる。
画像処理装置200の画像処理部244は、位置姿勢追跡部260、第1補正部262、合成部264、および第2補正部266を備える。位置姿勢追跡部260は、ヘッドマウントディスプレイが備える各カメラの少なくともいずれかによる撮影画像、あるいはヘッドマウントディスプレイ100が内蔵するモーションセンサの計測値を取得し、ユーザの頭部の位置や姿勢を所定のレートで導出する。
頭部の位置や姿勢の導出には、上述のとおり従来実用化されている各種手法のいずれを用いてもよい。あるいはヘッドマウントディスプレイ100の内部でそれらの情報を導出し、位置姿勢追跡部260は当該情報を所定のレートでヘッドマウントディスプレイ100から取得するのみでもよい。この情報は、画像データ取得部240を介してサーバ400に送信する。この際、送信対象の、頭部の位置や姿勢の情報の元となった撮影画像やモーションセンサの計測値が得られた時刻を対応づけて送信する。
第1補正部262は、位置姿勢追跡部260が直近に取得した、頭部の位置や姿勢と、サーバ400において部分画像が生成された時点でのそれらの予測値との差分に基づき、サーバ400から送信された部分画像にリプロジェクションの処理を施す。なおリプロジェクションの根拠とする差分は、ユーザ頭部の位置およびユーザ頭部の姿勢、の少なくともいずれかでよいが、それらを「位置姿勢」と総称している。
第1補正部262は、所定の時間間隔で取得される位置姿勢情報を補間することにより、補正時点での最新の位置姿勢情報を厳密に求めてもよい。そして第1補正部262は、補正時点での位置姿勢と、その予測値との差分を導出することにより補正を行う。より具体的には第1補正部262は、補正前の画像における画素が、補正によってどの位置に変位するかを示す変位ベクトルを画像平面に表した変位ベクトルマップを作成する。
そして部分画像を構成する画素ごとに、変位ベクトルマップを参照して変位先の画素位置を取得することにより、補正後の部分画像を生成する。このとき、補正前の部分画像から生成できる補正後の画像は、その面積が変化することがあり得る。第1補正部262は、補正後の部分画像のデータを生成するのに必要な、補正前の部分画像のデータが、前段のローカルメモリに格納された時点で、変位ベクトルマップを参照した補正処理を開始する。これにより、補正後の画像についても部分画像単位での処理が可能になる。
サーバ400から送信された画像が、接眼レンズのための歪みを有しない場合、第1補正部262はさらに、当該歪みを与える補正を同時に実施してもよい。この場合、変位ベクトルマップが画素ごとに表す変位ベクトルは、リプロジェクションのための変位ベクトルと、歪み補正のための変位ベクトルを合成したベクトルとなる。このうち歪み補正のための変位ベクトルは、接眼レンズ固有のデータとなりユーザの動き等によらないため、事前に作成しておくことができる。
第1補正部262は、そのようにして準備しておいた、歪み補正のための変位ベクトルに、リプロジェクションに必要な変位ベクトルを合成することにより、変位ベクトルマップを更新したうえで補正を行う。これにより、部分画像の各画素について一度の変位で、リプロジェクションと接眼レンズのための歪み補正を同時に行うことができる。なお変位ベクトルマップについても、部分画像に対応する領域ごとに更新し、直前の頭部の位置や姿勢を反映させることにより、フレーム全体において、頭部の動きからの遅延の少ない画像を表示できる。
合成部264はリプロジェクションなどの補正が施された部分画像に、UIプレーン画像を部分画像単位で合成する。ただし合成部264が部分画像に合成する対象はUIプレーン画像に限らず、ヘッドマウントディスプレイ100のカメラが撮影した画像など任意の画像でよい。いずれにしろヘッドマウントディスプレイ100に表示させる場合、合成する画像についてもあらかじめ、接眼レンズのための歪みを与えておく。
なお合成部264による合成処理は、第1補正部262によるリプロジェクションや歪み補正の前に行ってもよい。この場合、合成する画像には歪みを与えておかず、合成後の画像に対し一括して歪みなどの補正を施せばよい。また合成すべき画像がなければ合成部264の処理は省略できる。第2補正部266は、表示画像になすべき補正のうち、残りの補正処理を実施する。例えば色収差を補正する場合、第1補正部262において、表示パネルの原色によらず接眼レンズに対応する共通の歪みを与えておく。
例えば表示パネルを見る人間の目の特性を考慮し、まず緑色に対する補正を行う。そして第2補正部266では、赤の変位ベクトルと緑の変位ベクトルの差分だけ補正することにより、赤成分の部分画像を生成する。また青の変位ベクトルと緑の変位ベクトルの差分だけ補正することにより、青成分の部分画像を生成する。そのため第2補正部266には、赤および青の画像を生成するための差分を表す変位ベクトルを画像平面に表した変位ベクトルマップを準備しておく。
これにより赤、緑、青の原色ごとに異なる補正がなされた表示用の部分画像を生成できる。なお第1補正部262、合成部264、第2補正部266は、それぞれの処理を部分画像単位で行うことでパイプライン処理を実施してよい。この場合、図3で示した部分画像記憶部と制御部を、各機能ブロックに設けてよい。また第1補正部262、合成部264、第2補正部266で行われる処理の内容や順序は限定されない。例えば第1補正部262が原色ごとの変位ベクトルマップを参照し、他の補正と同時に色収差を補正してもよい。
表示制御部246は、基本的には図5で示したのと同様の機能を有するが、部分画像が描画されてからの経過時間に加え、位置姿勢の予測値と実際の位置姿勢との差分によっても、表示パネルへの出力対象を変化させる。すなわちデータ取得状況特定部248aは、上記生成時刻からの経過時間に加え、位置姿勢の予測値と実際の位置姿勢との差分に基づき、部分画像のデータの本来の表示順や表示タイミング、部分画像のデータの欠落量などのデータ取得状況を特定する。
出力対象決定部250bは、それらの結果に応じて、表示パネルへの出力対象を変化させたり、出力順や出力タイミングを適切に調整したりする。この際、出力対象決定部250bは、図8で示した各種分類に、リプロジェクションを行って表示が破綻しないか、といったユーザ頭部の位置姿勢に起因する基準を加える。そして破綻しないと判定された場合に、画像処理部244がリプロジェクションを実施し、それを出力部252が表示パネルに出力する。すなわちこのケースでは、表示制御部246によって出力対象が決定したあと、画像処理部244におけるリプロジェクションを含む各種処理を実施する。あるいは両者を並列に実行する。
図10は、第1補正部262が実施するリプロジェクションと接眼レンズのための歪み補正を説明するための図である。(a)に模式的に示すように、サーバ400は、ユーザ120の頭部の位置姿勢を予測し、それに対応する位置および向きでビュースクリーン122を設定する。そしてサーバ400は、表示対象の空間のうち視錐台124の内部に存在する物をビュースクリーン122に射影する。
そしてサーバ400は、部分画像ごとに適宜圧縮符号化するなどして画像処理装置200に送信する。画像処理装置200ではその画像を適宜復号伸張するなどして表示パネルに順次出力するが、このときサーバ400での位置姿勢の予測値と実際の位置姿勢の差が大きいと、頭部の動きと表示が連動せずユーザに違和感を与えたり映像酔いを生じさせたりし得る。そこで第1補正部262は、当該差分だけ画像上の像をずらすことにより、直近の頭部の位置姿勢が表示に反映されるようにする。
図示する例では、ユーザ120の頭部(顔面)が、画像描画時よりわずかに右下を向くように動いたことを想定している。このとき第1補正部262は、最新の位置姿勢に対応するように新たなビュースクリーン126を設定する。ビュースクリーン126は、元のビュースクリーン122を右下にずらしたものである。(b)に示すように、ビュースクリーン122を右下にずらしビュースクリーン126とする場合、像としては逆方向、すなわち左上に移動する。
したがって第1補正部262は、ビュースクリーンの変位方向と逆方向に、ビュースクリーンの変位量だけ像を変位させる補正を行う。なおビュースクリーンは2次元での平行移動に限らず、頭部の動きによっては3次元空間での姿勢を変化させてよい。この場合、像の変位量は画像平面での位置によって変化し得るが、コンピュータグラフィクスで用いられる一般的な変換式により、その変位ベクトルを計算できる。
上述のとおり第1補正部262はさらに、接眼レンズのための歪み補正を同時に行ってもよい。すなわち(b)の下段に示すように、接眼レンズを介して見たときに本来の像が歪みなく視認されるように、元の像に歪みを与えておく。この処理に用いる計算式には、レンズ歪みの補正に係る一般的なものを用いることができる。
ただし本実施の形態では上述のとおり、必要な補正量および補正方向を画素ごとに計算しておき、変位ベクトルマップとして準備しておく。第1補正部262は、この歪み補正のための変位ベクトルに、リアルタイムで得られるリプロジェクションのための変位ベクトルを合成することで変位ベクトルマップを生成し、それを参照することによって、2つの補正を一括して実現する。
図11は、第1補正部262が行う補正処理の手順の例を説明するための図である。(a)は補正前の画像、(b)は補正後の画像の平面を示している。補正前の画像平面におけるS00、S01、S02・・・は変位ベクトルマップにおいて変位ベクトルを設定する位置を表す。例えば画像平面の水平方向、垂直方向に離散的に(例えば、8画素あるいは16画素ごとなど等間隔に)変位ベクトルを設定する。
補正後の画像平面におけるD00、D01、D02、・・・はそれぞれ、S00、S01、S02、・・・の変位先の位置を表す。図では一例として、S00からD00への変位ベクトル(Δx,Δy)を白抜き矢印で示している。第1補正部262は、変位ベクトルを設定する画素を頂点とする最小の三角形の単位で、補正前の画像を補正後の画像にマッピングする。例えば補正前の画像のS00、S01、S10を頂点とする三角形を、補正後の画像のD00、D01、D10を頂点とする三角形にマッピングする。
ここで三角形の内部の画素は、D00、D01、D10との距離に応じて線形に、あるいはバイリニア、トライリニアなどにより補間した位置に変位させる。そして第1補正部262は、接続されたローカルメモリに格納された、補正前の部分画像の対応する画素の値を読み出すことにより、補正後の画像の画素値を決定する。この際、補正前の画像における読み出し先の位置から所定範囲内にある複数の画素の値を、バイリニア、トライリニアなどにより補間することで、補正後の画像の画素値を導出する。
これにより第1補正部262は、補正前の画像の三角形の変位先である三角形の単位で、補正後の画像を画素列順に描画していくことができる。なお上述のとおり、第1補正部262はリアルタイムでの頭部の位置や姿勢を反映させた補正を実現するため、部分画像に対応する領域単位で変位ベクトルマップを更新してもよい。第2補正部266も同様に、第1補正部262と異なる変位ベクトルマップを参照し、最小の三角形ごとに画素をマッピングしていけばよい。例えば色収差を補正する場合は、原色ごとに異なる変位ベクトルマップを用いることにより、各原色成分の画像を生成できる。
図12は、画像処理装置200がリプロジェクションを行う際に、表示制御部246の出力対象決定部250bが出力対象を調整する処理手順を示すフローチャートである。このフローチャートは、図8で示したフローチャートにおいてS12の判定処理の後に実施する。より具体的には出力対象決定部250bは、S12の判定処理において第1分類または第2分類に当てはまるとしたフレームであっても、必要に応じて第3分類に変更するために追加で判定を行う。したがって図8のS12において、部分画像の取得状況から、対象フレームが第3分類に当てはまると判定した場合は、出力対象決定部250bはそのまま処理を終了する(S90のN)。
一方、第1分類または第2分類に当てはまると判定した場合(S90のY)、出力対象決定部250bはまず、サーバ400が画像フレームを生成する際に予測した、ユーザ頭部の位置姿勢と、最新の位置姿勢との差分が許容範囲にあるか否かを判定する(S92)。上述のとおり、ヘッドマウントディスプレイ100の近傍にあるレンダリング装置から画像データを送信する場合と比較し、クラウドサーバなどからデータを送信する場合は転送に時間を要することが多い。そのため位置姿勢の予測値と実際の値に生じるずれが広がる可能性が高くなる。
そこで位置姿勢の予測値と実際との差分が、リプロジェクションではカバーできないほど大きいときは、当該フレームのデータを表示パネルに出力しないようにする。すなわち差分が許容範囲を超えている場合、出力対象決定部250bは、第1分類または第2分類とされた対象フレームの分類を第3分類に変更する(S92のN、S98)。この場合、表示はブラックアウトとなる。あるいは元が第1分類の場合に第1分類のままとし、図8のS14において、欠落部分の表示に過去のフレームを用いないようにしてもよい。
位置姿勢の差分が許容範囲か否かの判定基準は、フレームの全領域を最新の部分画像でまかなえるか(第1分類)、一部でも過去のフレームの部分画像を用いるか(第1分類または第2分類)、によって異ならせてよい。具体的には、位置姿勢の差分が小さいほど、過去のフレームの部分画像を用いることを許容してよい。許容範囲か否かは、位置姿勢の差分に設定したしきい値との大小関係により判定してもよいし、許容範囲とするスコア値として、位置姿勢の差分が大きいほど低くなるような関数を与え、図8の判定に用いたスコア値などと合算して総合的に判定してもよい。
位置姿勢の差分が許容範囲であると判定したら(S92のY)、出力対象決定部250bは次に、対象フレームにおけるデータ欠落の度合いを、ユーザの視点の観点から評価した結果が許容範囲にあるか否かを判定する(S94)。具体的には、ユーザの注視点に近いほど大きい重みづけでデータ欠落の度合いを数値化し、当該数値がしきい値を超えた場合に、データ欠落の度合いが許容範囲にないと判定する。欠落の度合いが許容範囲にない場合(S94のN)、出力対象決定部250bは、第1分類とされた対象フレームを第2分類または第3分類に変更する。
あるいは第2分類とされた対象フレームを第3分類に変更する(S98)。これにより、ユーザが視認しやすい部分でのデータ欠落が多いほど、当該フレームを出力させずに過去のフレームを再利用したりブラックアウトとしたりするように調整する。なおS94の判定処理は、図8のS12の判定処理と同時に行ってもよい。データ欠落の度合いが許容範囲であると判定したら(S94のY)、出力対象決定部250bは次に、リプロジェクションに必要なデータが十分にあるかを判定する(S96)。
すなわちリプロジェクションにより視野をずらした場合に、当該視野に含まれる部分画像のデータが十分に得られているか否かを判定する。十分なデータが得られていない場合(S96のN)、出力対象決定部250bは、第1分類とされた対象フレームを第2分類または第3分類に変更する。あるいは第2分類とされた対象フレームを第3分類に変更する(S98)。十分なデータが得られている場合は、出力対象決定部250bは元の分類のまま処理を終了する(S96のY)。
なおS92、S94、S96はそれぞれ独立に判定するのに限らず、各判定基準に基づきスコアを求め、それらを合算することにより、分類や表示内容の変更が必要か否かを総合的かつ同時に判定してもよい。このように追加で判定をした結果として、図8のS14、S16、S18の処理のいずれかを実施する。ただしS14、S16の処理に際して画像処理部244は、上述のとおりリプロジェクションを含む補正処理を実施する。すなわち第1分類の場合、画像処理部244は最新の画像フレーム、または欠落部分に過去のフレームを用いた画像フレームに対しリプロジェクションを実施する。
第2分類の場合は、出力対象とされた過去のフレームに対しリプロジェクションを実施する。これらの処理において画像処理部244は、処理対象の部分画像のリプロジェクションに用いる範囲の画像データが前段の部分画像記憶部に全て到着してから補正処理を開始する。過去フレームを用いる場合、画像処理部244は、表示制御部246の図示しないメモリから該当データを読み出す。リプロジェクションに用いる画像の範囲は、位置姿勢の予測値と実際の位置姿勢との差分によって決定する。
図13は、図12のS94において、ユーザの視点に基づきデータ欠落の度合いを数値化する手法を説明するための図である。この例ではユーザの注視点292が、表示画面290の中央付近に存在するとしている。ヘッドマウントディスプレイ100を装着しているユーザは通常、見たい方向に顔を向けるため、表示画面290の中央を注視点292と見なすこともできる。
一般的な人の視覚特性として、瞳孔から注視点へ向かう視線を中心軸として5°以内に対応する領域294は弁別視野と呼ばれ、視力などの視機能が優れている。また水平方向に約30°、垂直方向に約20°以内に対応する領域296は有効視野と呼ばれ、眼球運動だけで瞬時に情報を受容できる。さらに水平方向に60~90°、垂直方向に45~70°以内に対応する領域298は安定注視野、水平方向に100~200°、垂直方向に85~130°以内に対応する領域299は補助視野、というように、注視点292から離れるほど情報の識別能力が低くなる。
そこで図の上と左に示すように、表示画面290の平面において注視点292に近いほど大きくなる重みづけ関数320a、320bを設定する。なおこの図では、表示画面290の平面における水平方向、垂直方向の1次元での位置に対する重みづけ関数320a、320bを示しているが、実際には当該平面上の2次元の位置座標に対する関数、あるいはテーブルとする。出力対象決定部250bは例えば部分画像の欠落面積に、当該欠落が生じている位置座標に基づく重みを乗算し、それを対象フレームの全領域で合計することにより、欠落の度合いを数値として導出する。
これにより、同じ欠落面積でもより視認されやすい領域が欠落している場合は欠落の度合いを高く見積もることができ、見た目の印象を加味して許容範囲か否かを判定できる。なお図示する重みづけ関数320a、320bの形状はあくまで例示であり、上述した各範囲の視覚特性などに基づき形状を最適化したり、不連続な関数としたりしてよい。またヘッドマウントディスプレイ100に注視点検出器を設ける場合、注視点292は表示画面290の中央に限らずより厳密に求められる。この場合、出力対象決定部250bは注視点292の移動に応じて、重みづけ関数320a、320bが最大となる位置を移動させればよい。
図14は、図12のS96において評価する、リプロジェクションに必要なデータを説明するための図である。まず(a)は、サーバ400で予測した位置姿勢に対応するようにビュースクリーン340aを設定した様子を示している。サーバ400は、当該ビュースクリーン340aによって定まる視錐台342aに含まれる像344をビュースクリーン340aに描画する。ここで矢印のように、表示時の位置姿勢が、予測された位置姿勢よりやや左側を向いていたとする。
この場合、画像処理装置200の画像処理部244は、(b)に示すように、ビュースクリーン340bをやや左に向け、それに対応する像となるように画像を補正する。ところが新たに設定した視錐台342bに含まれる像のうち、サーバ400から送信されていない領域346が大きいほど、リプロジェクションが困難になる。したがってリプロジェクション後の表示領域のうち、データを取得していない領域346が所定割合以上、ある場合などに、データが十分でないと判定する。
一方、サーバ400から送信された画像には、新たに設定した視錐台342bには含まれない領域348も発生する。つまり領域348のデータは、リプロジェクション後には不必要な領域となるため、欠落していても表示に支障がない。そこで出力対象決定部250bは、図8のS12において欠落面積などを評価する際、当該領域348を評価対象から除外してもよい。なおリプロジェクションに必要な画像データを十分に取得していても、サーバ400が予測した位置姿勢と、実際の位置姿勢との差分があまりに大きいと、リプロジェクション後の画像が不自然になることが考えられる。
すなわちリプロジェクションは、サーバ400によって描画された画像に対する2次元の補正のため、表示対象の3次元オブジェクトに対する視線の変化を厳密に表現することはできない。そのため出力対象決定部250bは図12に示すように、S96の判定とは別にS92の判定を実施することで、位置姿勢の差分が大きい場合には表示パネルへの出力をキャンセルする。いずれにしろ図14に示す、リプロジェクションに必要な領域のうちデータを取得していない領域346は、ユーザ頭部の動きによらずなるべく少なくすることが望ましい。
そこでサーバ400は、領域346の画像を投機的に生成し画像処理装置200に送信しておくことで、リプロジェクションが正常に行われる確率を上げてもよい。図15は、画像処理装置200においてリプロジェクションを行う場合に、サーバ400と画像処理装置200が実施する処理の手順を示すフローチャートである。このフローチャートは基本的に、動画像のフレーム単位で行われる。まず画像処理装置200の画像データ取得部240は、ユーザ頭部の最新の位置姿勢を位置姿勢追跡部260から取得し、サーバ400に送信する(S100)。
また画像データ取得部240は、過去のフレームに対し得られた、サーバ400における生成時刻から画像処理装置200で処理されるまでの遅延時間の履歴と、ユーザ頭部の位置姿勢の予測値と実際との差分の履歴を表示制御部246から取得し、サーバ400に送信する(S102)。なおS100、S102の送信処理は、フレームと同期しない任意のタイミングで行ってもよい。またS102においては、過去の所定数のフレームについての履歴を送信することにより、送信の失敗に備えることができる。
サーバ400の位置姿勢取得部284はそれらの情報を受信し、位置姿勢予測部286がユーザ頭部の位置姿勢を予測する(S104)。すなわち画像処理装置200で処理されるまでの遅延時間後の位置姿勢を、画像処理装置200から送信された位置姿勢を用いて予測する。次に描画部288は、予測された位置姿勢に対応する画像を描画する(S106)。この際、描画部288は、画像処理装置200から送信された、上記遅延時間の履歴および位置姿勢の差分の履歴に基づき、直近に予測される遅延時間に位置姿勢がどの程度ずれる可能性があるかを特定する。つまり図14の(a)に示す矢印のように、位置姿勢の予測値に対し最も確からしいずれ量およびずれの方向を表すベクトルを予測する。
そして描画部288は、当該ベクトル分だけビュースクリーンを変位させた方向に描画対象を拡張する。すなわち図14の(b)における領域346のような、位置姿勢の予測値に対応するフレームの外側の領域を、予測されたずれを表すベクトルに基づき決定し、その画像を追加で描画する。そしてパケット化部424は必要に応じて、描画された画像を部分画像単位でパケット化し、通信部426から画像処理装置200に順次送信する。この際、通信部426は、部分画像の生成時刻、描画に用いた位置姿勢の予測値を部分画像に対応づけて送信する(S108)。
通信部426はさらに、送信済みの所定数の部分画像の、生成時刻の履歴と位置姿勢の予測値の履歴も送信することにより、画像処理装置200への送信失敗に備える。画像処理装置200の画像データ取得部240がそれらのデータを受信すると、表示制御部246は、部分画像が生成されてからの遅延時間および、位置姿勢の予測値と実際との差分を取得する(S110)。そして表示制御部246は、それらのデータに基づきフレームを分類するなどして出力対象を制御する(S112)。
第3分類によりブラックアウトさせる場合以外は、画像処理部244は、表示制御部246が決定した現フレーム、あるいは前のフレームに対し、その時点での位置姿勢に基づくリプロジェクションを部分画像の単位で施し、出力部252が表示パネルに出力する(S114)。このとき画像処理部244は、サーバ400が予測のずれを踏まえ追加で描画した画像を必要に応じて利用する。
上述のとおり画像処理部244は、リプロジェクションとともにレンズ歪みを除去する補正や色収差補正を適宜実施してよい。なおリプロジェクションに着目した場合、各処理を部分画像単位で行わずフレーム単位で実行しても有効に機能する。その際も、位置姿勢の予測値からのずれを踏まえサーバ400が追加で生成した画像データについては、サーバ400から画像処理装置200へ部分画像単位で送信してよい。
以上述べた、画像処理部におけるリプロジェクション処理によれば、サーバは、表示時のユーザ頭部の位置姿勢を予測し、それに対応する視野で画像を生成する。そして画像処理装置は、サーバから送信された画像を、表示の直前で、その時点での頭部の位置や姿勢に対応するように補正する。これにより、サーバからストリーミング配信された画像をヘッドマウントディスプレイに表示させる態様においてネックとなりやすい、頭部の動きに対する表示の追随性を良好にすることができる。
またサーバでの描画からヘッドマウントディスプレイでの表示までの一連の処理を部分画像単位のパイプライン処理とすることにより、描画から表示までの遅延時間を短縮できるため、リプロジェクションのための補正は僅かでよくなる。結果として、大幅な補正が必要なケースと比較し、簡易な計算で精度のよいリプロジェクションを行える。
さらにリプロジェクションにおいては、補正量や補正方向の分布を画像平面に表した変位ベクトルマップを用いることにより、画素ごとに独立した補正が可能となる。これにより部分画像単位であっても高精度な補正を実現できる。さらに接眼レンズのための歪み補正の成分も変位ベクトルに含めることにより一括した補正が可能となり、リプロジェクションのために必要な時間を最小限に抑えることができる。
さらに画像処理装置は、リプロジェクションの前段階として、サーバが予測した位置姿勢と実際の位置姿勢との差分、ユーザの視点の観点から評価したデータ欠落の度合い、リプロジェクションに用いる画像データの取得率、などに基づき出力対象を制御する。例えば最新のデータによるリプロジェクションの結果が良好でないと予測される場合は表示させないようにしたり、過去のフレームのデータをリプロジェクションの対象としたりする。またサーバにおいて、予測した位置姿勢のずれをさらに予測し、対応する領域の画像を投機的に生成しておく。これらの処理により、リプロジェクションの結果をできる限り良好にでき、高品質の画像を応答性よく表示できる。
4.異なる表示形態のためのデータ形成処理
図1で示したように、本実施の形態の画像表示システム1は、ヘッドマウントディスプレイ100と平板型ディスプレイ302に、同じ内容の画像を同時に表示させる機能を有する。ヘッドマウントディスプレイ100を用いた仮想現実などのゲームの場合、ヘッドマウントディスプレイ100を装着しているユーザ以外の者には表示内容がわからない。そのため複数のユーザが共にゲーム進行を視聴し、一体となって臨場感を共有することができない。
図1で示したように、本実施の形態の画像表示システム1は、ヘッドマウントディスプレイ100と平板型ディスプレイ302に、同じ内容の画像を同時に表示させる機能を有する。ヘッドマウントディスプレイ100を用いた仮想現実などのゲームの場合、ヘッドマウントディスプレイ100を装着しているユーザ以外の者には表示内容がわからない。そのため複数のユーザが共にゲーム進行を視聴し、一体となって臨場感を共有することができない。
そこで上述のとおり、ヘッドマウントディスプレイ100に表示されている内容を平板型ディスプレイ302にも同時に表示させ、複数のユーザで共有できるようにすることが考えられる。また、複数のユーザがそれぞれヘッドマウントディスプレイ100を用いて共通のコンテンツを視聴する場合、各ユーザの頭部の位置姿勢に基づき、異なる視点からの画像を生成、表示させる必要がある。
ヘッドマウントディスプレイ100と平板型ディスプレイ302では、表示させる画像の形式が大きく異なるが、サーバ400において形式が異なる複数の画像のデータを生成し送信するのは、伝送帯域や処理負荷の面で非効率な場合がある。そこでサーバ400と画像処理装置200の連携により、データの形式変換の分担やタイミングを適切に選択することで、効率的に複数形態の画像表示を行えるようにする。
図16は、形態の異なる複数の表示装置への表示に対応できるサーバ400と画像処理装置200の機能ブロックの構成を示している。サーバ400は、画像生成部420、圧縮符号化部422、パケット化部424、および通信部426を含む。画像処理装置200は、画像データ取得部240、復号伸張部242、画像処理部244、および表示制御部246を含む。サーバ400の圧縮符号化部422、パケット化部424、通信部426、および画像処理装置200の画像データ取得部240、復号伸張部242は、図5で説明したのと同様の機能を有する。
ただしそれらの機能を限定する趣旨ではなく、例えばサーバ400は、圧縮符号化されていない部分画像のデータを送信してもよい。この場合、サーバ400の圧縮符号化部422と画像処理装置200の復号伸張部242の機能を省略できる。また画像処理装置200の画像処理部244は、図9で示した各種機能の少なくともいずれかをさらに有していてもよい。
サーバ400の画像生成部420は、描画部430、形成内容切り替え部432およびデータ形成部434を備える。なお描画部430およびデータ形成部434は、図3の画像描画部404(GPU)と、描画制御部402(CPU)およびソフトウェアの組み合わせによって実現されてもよい。形成内容切り替え部432は図3の描画制御部402(CPU)およびソフトウェアの組み合わせによって実現されてもよい。描画部430は、動画像のフレームを所定または可変のレートで生成する。ここで描画する画像は、画像処理装置200に接続される表示装置の形態に依存しない一般的な画像であってもよい。あるいは描画部430は、撮影された動画像のフレームを、図示しないカメラから順次取得してもよい。
形成内容切り替え部432は、画像処理装置200に接続される表示装置の表示形態に対応する形式とするのに必要な形成処理のうち、サーバ400で実施すべき処理の内容を所定規則で切り替える。最も単純には、形成内容切り替え部432は、画像処理装置200にヘッドマウントディスプレイ100が接続されているか否かによって、左目用、右目用の画像を準備したうえ接眼レンズに対応する歪みを与えるか否かを決定する。
ヘッドマウントディスプレイ100が接続されている画像処理装置200には、サーバ400側でそれらの加工を施したうえで画像を送信すれば、画像処理装置200での補正処理の少なくとも一部を省略できる。処理リソースが潤沢でない画像処理装置200を用いる場合は特に、サーバ400から送信されたデータをほぼそのまま表示できることは、低遅延での表示に有利に働く。
一方で、画像処理装置200にさらに平板型ディスプレイ302が接続されている場合、接眼レンズのための歪みが与えられた左目用、右目用の画像をサーバ400から送信すると、一方の画像を切り出したり歪みを取り除いたりする処理が必要となり、却って処理の負荷が増えることもある。サーバ400から複数形式の画像を送信すると、必要な伝送帯域が増大する。
そこで形成内容切り替え部432は、状況に応じてサーバ400側でなすべき処理を適切に選択することにより、伝送帯域を増大させることなく最も効率のよい形式の画像を画像処理装置200に送信できるようにする。また、用途に応じて画質や表示遅延が最良となる形式の画像を送信できるようにする。具体的には形成内容切り替え部432は、画像処理装置200に接続される表示装置の形態、画像処理装置200においてさらなる形成処理を行う補正部の処理性能、動画像の特徴、画像処理装置200との通信状況、の少なくともいずれかに基づき処理内容を決定する。
ここで表示装置の形態とは例えば、解像度、対応可能なフレームレート、対応色空間、レンズを介して見る場合の光学パラメータ、表示装置の個数、などである。通信状況とは例えば、その時点で実現されている通信帯域幅や通信遅延などである。それらの情報は、画像処理装置200の画像データ取得部240から取得してもよい。
形成内容切り替え部432はそれらの情報に基づき、ヘッドマウントディスプレイ100の表示形態に合わせた左目用、右目用の画像を生成するか否か、接眼レンズのための歪み補正を実施するか否か、などを決定する。ただし個々のユーザの画像処理装置200で実現したい表示形態によって、必要な処理はこれに限らず、解像度の削減、画像の変形など様々に考えられる。したがって形成内容切り替え部432が決定する処理内容の候補も、それに応じて適宜設定しておく。
データ形成部434は、形成内容切り替え部432の決定に従い、動画像の各フレームを、画像処理装置200で実現される表示形態に対応する形式とするのに必要な形成処理の一部を実施する。通信部426は、そのようにして適切に形成された画像のデータを、画像処理装置200に送信する。複数の画像処理装置200を送信先とする場合、データ形成部434は、それぞれの画像処理装置200に適した形成処理を実施する。
1つの画像処理装置200に対しては、接続された表示装置が複数の表示形態を有していても、適切に選択された1つの形式の画像データを送信することにより、必要な通信帯域の増大を防止する。通信部426は、画像のデータとともに、サーバ400側でどのような形成処理を実施したかを示す情報を付加して送信する。異なる表示形態を実現する複数の画像処理装置200には、それぞれに適合した形式の画像のデータと、形成処理の内容を示す情報とを対応づけて送信する。
画像処理装置200の画像処理部244は、補正部として、サーバ400から送信された画像を、実現する表示形態に対応する形式とする第1形成部270a(第1の補正部)および第2形成部270b(第2の補正部)を含む。図示する例では、ヘッドマウントディスプレイ100と平板型ディスプレイ302が接続された画像処理装置200を想定しているため、それらに対応するように第1、第2の2つの形成部を設けているが、当然、実現すべき表示形態の数だけ形成部を設けてよい。
すなわち画像処理部244は、サーバ400から送信された1つのフレームから、形式が異なる複数のフレームを生成する機能を有し、その数は実現すべき表示形態の数に依存する。第1形成部270aおよび第2形成部270bは、サーバ400から画像データとともに送信された、サーバ400側でなされた形成処理の内容に基づき、各表示形態に対応する形式とするために必要な処理を決定する。
なおサーバ400側でなされた形成処理の内容によっては、第1形成部270aまたは第2形成部270bはその機能を省略できる。例えば、ヘッドマウントディスプレイ100にそのまま表示できる画像のデータがサーバ400から送信された場合、ヘッドマウントディスプレイ100に対応する第1形成部270aはその処理を省略できる。
また変形例として、第1形成部270aまたは第2形成部270bのどちらか一方は、他方が形成した画像に対し必要な形成処理を実施してもよい。例えば第1形成部270aが形成してなるヘッドマウントディスプレイ100用の画像に対し、第2形成部270bが形成処理を施すことで、平板型ディスプレイ302用の画像を生成してもよい。
また図9の画像処理部244において示した各種画像処理と、表示形態に合わせた形成処理を適宜組み合わせてもよい。例えば第1形成部270a、第2形成部270bの直前に合成部264を組み入れる。そしてサーバ400から送信されたフレームに、ヘッドマウントディスプレイ100が備えるカメラによる撮影画像やUIプレーン画像を合成したうえで、第1形成部270aはヘッドマウントディスプレイ100の表示形式の画像とし、第2形成部270bは平板型ディスプレイ302の表示形式の画像とする。
合成部264は、第1形成部270a、第2形成部270bの直後に組み入れてもよい。この場合、合成対象の画像は、第1形成部270aおよび第2形成部270bによって形成された画像にそれぞれ対応する形式としておく必要がある。また第1形成部270aに、図9で示した第1補正部262の機能を含めることにより、リプロジェクションを行ってもよい。
いずれにしろ第1形成部270a、第2形成部270bは、上述のように変位ベクトルマップを生成し、それに基づき部分画像ごとに補正を行う。第1形成部270aがリプロジェクションや歪み補正を行う場合、それらの変位ベクトルを合成してなる変位ベクトルマップを生成することにより、第1形成部270aは複数の補正を一括して行ってよい。
表示制御部246は、第1制御部272a、第2制御部272bを含み、それぞれ第1形成部270a、第2形成部270bが形成してなる画像をヘッドマウントディスプレイ100、平板型ディスプレイ302の表示パネルに出力する。上述したように、第1形成部270a、第2形成部270bの処理を含め、サーバ400からの送信および画像処理装置200内部での処理は部分画像単位で順次実施する。そのため第1制御部272a、第2制御部272bはそれぞれ、形成処理後のデータを格納する部分画像記憶部を備える。
図17は、本実施の形態で実現できる画像の形式の変遷を例示している。図16で示したように、画像処理装置200にはヘッドマウントディスプレイ100と平板型ディスプレイ302が接続されているとする。図では(a)、(b)、(c)、(d)の4つのパターンを示しているが、ヘッドマウントディスプレイ100および平板型ディスプレイ302に表示すべき画像の最終形式はパターンによらない。
すなわちヘッドマウントディスプレイ100に表示すべき画像132は、左目用画像と右目用画像からなり、それぞれが接眼レンズのための歪みを与えられた形式(第1の形式)を有する。平板型ディスプレイ302に表示すべき画像134は、両眼で共通の1つの像からなり、レンズ歪みなどのない一般的な画像の形式(第2の形式)を有する。
これに対し(a)は、サーバ400側で、左目用画像と右目用画像の対130aを生成しておくパターンである。この場合、画像処理装置200の第1形成部270aは、送信された画像に対し、ヘッドマウントディスプレイ100の接眼レンズのための歪みを与える。上述のとおり第1補正部262と組み合わせ、さらにリプロジェクション等の補正を実施してもよい。第2形成部270bは、左目用画像と右目用画像のどちらかの画像を切り出し、適切な画像サイズとする。
(b)は、サーバ400から、平板型ディスプレイに適した画像130bを送信するパターンである。この場合、サーバ400のデータ形成部434は、描画部430が描画した画像に対し何らの形成処理を行わなくてよい。そして画像処理装置200の第1形成部270aは、送信された画像から左目用、右目用の画像を生成したうえ、接眼レンズのための歪みを与える。上述のとおり第1補正部262と組み合わせ、さらにリプロジェクション等の補正を実施してもよい。この場合、第2形成部270bは形成処理を省略できる。
(c)は、サーバ400側で、ヘッドマウントディスプレイ100用の左目用、右目用の画像を生成したうえ、接眼レンズのための歪みを与えた画像130cを生成するパターンである。この場合、画像処理装置200の第1形成部270aは形成処理を省略できる。ただし第1補正部262によって、リプロジェクション等の補正を実施してもよい。第2形成部270bは、左目用画像と右目用画像のどちらかの画像を切り出し、歪みを除去する補正を施したうえ適切な画像サイズとする。
(d)はサーバ400からパノラマ画像130dを送信するパターンである。ここでパノラマ画像130dは一般に、正距円筒図法によって表される全天球の画像(360°画像)である。ただし画像の形式は限定されず、多円錐図法、等距離射法、その他、魚眼レンズの画像表現に用いられる様々な形式のいずれを用いてもよい。また魚眼レンズによる画像を用いる場合、サーバ400は、2眼分の画像を用いて360°のパノラマ画像を生成してもよい。
ただしパノラマ画像は、カメラによる撮影画像に限らず、仮想的な複数の始点から見た画像をサーバ400が描画してもよい。この場合、サーバ400のデータ形成部434は、描画部430が描画したパノラマ画像に対し何らの形成処理を行わなくてもよい。そして画像処理装置200の第1形成部270aは送信された画像のうち、ユーザ頭部の最新の位置姿勢に対応する、左目および右目の視野の領域を切り出し、左目用、右目用の画像を生成する。
さらに第1形成部270aは、送信された画像にカメラのレンズによる歪みや、正距円筒図法、多円錐図法、等距離射影法などによる歪みがある場合はそれを除去したうえで、ヘッドマウントディスプレイ100の接眼レンズのための歪みを与える。多円錐図法の画像においては円錐間の隙間を、接眼レンズの歪みを考慮してつなぎあわせる。また画像処理部244について上述した様々な補正の少なくともいずれかと組み合わせ、変位ベクトルマップを用いて一括して補正を行ってよい。
第2形成部270bは、送信された画像から両眼による視野の領域を切り出し、カメラのレンズによる歪みがある場合はそれを除去する。なおこの場合、ヘッドマウントディスプレイ100と平板型ディスプレイ302へ表示させる画像は、図示するように異なる範囲のものでもよいし、同一の範囲であってもよい。例えばヘッドマウントディスプレイ100に表示させる画像は、ユーザ頭部の位置姿勢に対応する範囲のものとする一方、平板型ディスプレイ302へ表示させる画像は、ゲームコントローラを介したユーザ操作などによって別途指定された範囲のものでもよい。
ヘッドマウントディスプレイ100へ出力する画像132については、表示の直前にリプロジェクションを行うとすると、(a)のパターンは、画像処理装置200において歪み補正とリプロジェクションを同時に実施できる。一方、(c)はサーバ400での歪み補正と、画像処理装置200でのリプロジェクションが個別になされるため、サーバ400と画像処理装置200が同じ処理能力をもち、同じ変位ベクトルや画素補間処理を行う場合、ヘッドマウントディスプレイ100への出力までに要する時間は(a)の方が短くできる可能性が高い。
(d)のパターンは、表示の直前に最新のユーザの視野に対応する領域を切り出すため、あらかじめ生成されたパノラマ映像のビデオコンテンツであっても、リアルタイムで生成されたゲーム画像であっても、前述のリプロジェクションに相当する処理は必要ない。また、送信される画像の範囲に制限がないため、リプロジェクションによる表示画像の生成に必要なデータが不足するといった事態が生じない。
(a)のパターンは、平板型ディスプレイ302へ出力する画像134も、サーバ400から送信された画像の一部を切り出すのみで生成できるため、(b)のパターンでの平板型ディスプレイ302への出力とほぼ同等の速度での出力が可能となる。なお(b)や(d)のパターンにおいてサーバ400から送信される画像には、視差や奥行きの情報が含まれないため、ヘッドマウントディスプレイ100へ出力する画像132は、視差のない画像となる。
(c)のパターンにおいて平板型ディスプレイ302へ出力する画像134は、サーバ400において変形させた画像を、画像処理装置200側で元に戻す処理が含まれるため、(a)、(b)のパターンより出力速度が遅くなる。また、一旦歪ませた画像を元に戻す処理により、(a)、(b)のパターンと比較し画質が低下する可能性が高くなる。
(d)のパターンは表示側の視点が様々であっても、サーバ400は1種類の画像データを送信すればすむため処理を効率化できる。一方、表示に不必要な領域のデータも送信するため、(a)、(b)、(c)と同じ帯域幅でデータ送信し、1視点の表示画像を生成する場合は、それらのパターンより画質が低下する場合がある。このように各パターンには特性があるため、形成内容切り替え部432は、当該特性を踏まえて設定した規則に従い、いずれかのパターンを決定する。
図18は、ユーザ側(クライアント側)での表示装置の接続方式のバリエーションを例示している。まず(a)は、分配器の役割を果たすプロセッサユニット140にヘッドマウントディスプレイ100および平板型ディスプレイ302が並列に接続された構成を示す。なおプロセッサユニット140は、ヘッドマウントディスプレイ100および平板型ディスプレイ302とは一体的でない画像処理装置200に内蔵してよい。(b)は、ヘッドマウントディスプレイ100と平板型ディスプレイ302が直列に接続された構成を示す。
(c)は、ヘッドマウントディスプレイ100と平板型ディスプレイ302が異なる場所にあり、それぞれがサーバ400からデータを取得する構成を示す。この場合、サーバ400は、送信先の表示形態に合わせて異なる形式のデータを送信してもよい。ただしこの構成では、ヘッドマウントディスプレイ100と平板型ディスプレイ302が直接、接続されていないため、ヘッドマウントディスプレイ100のカメラによる撮影画像を合成して表示させる場合、平板型ディスプレイ302にそれを反映させることが難しい。
いずれにしろ、図17で説明した4つの送信パターンは、図18で示される接続体系のいずれにも適用できる。例えば画像処理装置200を、ヘッドマウントディスプレイ100および平板型ディスプレイ302のそれぞれに一体的に設けた場合、第1形成部270a、第2形成部270bは、図18で示した(a)、(b)、(c)の接続体系と、サーバ400から送信されるデータの形式との組み合わせに応じて、自らを動作させるか否か、動作させる場合はその処理内容を決定する。そして第1制御部272a、第2制御部272bを、対応する表示形態に合わせて動作させれば、図18に示すどの構成であっても、各表示装置の形態に合わせた画像の表示が可能となる。
図19は、サーバ400が表示形態に応じて決定した形式で画像のデータを送信する処理手順を示すフローチャートである。このフローチャートは、ユーザが画像処理装置200に対し、プレイしたいゲームや鑑賞したい動画などを選択することによって開始される。これに応じて画像処理装置200の画像データ取得部240が、サーバ400へその旨を要求することにより、サーバ400が当該画像処理装置200と通信を確立する(S30)。するとサーバ400の形成内容切り替え部432は、画像処理装置200とのハンドシェイクにより必要な情報を確認する(S31のY、S32)。具体的には、次の項目の少なくともいずれかを確認する。
1.図17で示したような送信パターンのうち画像処理装置200側で対応可能なパターン
2.平板型ディスプレイ302にヘッドマウントディスプレイ100と同じ視点での画像を表示させるか否か
3.サーバ側で出力できる形式
4.遅延時間、画質、左右の視差の有無に係る要求値
5.通信速度(通信帯域または転送帯域、通信遅延または転送遅延)
6.画像処理装置200の画像処理部244で処理できる内容(処理能力)
7.ヘッドマウントディスプレイ100と平板型ディスプレイ302の解像度・フレームレート・色空間・接眼レンズの光学パラメータ
2.平板型ディスプレイ302にヘッドマウントディスプレイ100と同じ視点での画像を表示させるか否か
3.サーバ側で出力できる形式
4.遅延時間、画質、左右の視差の有無に係る要求値
5.通信速度(通信帯域または転送帯域、通信遅延または転送遅延)
6.画像処理装置200の画像処理部244で処理できる内容(処理能力)
7.ヘッドマウントディスプレイ100と平板型ディスプレイ302の解像度・フレームレート・色空間・接眼レンズの光学パラメータ
なお上記5の通信帯域や通信遅延については、システム立ち上げ後における実績値や、同一のサーバ400/画像処理装置200間での実績値を参照してもよい。そして形成内容切り替え部432は、確認した情報に基づき、あらかじめ設定された規則に従い、サーバ400側で実施すべき画像の形成内容を決定する(S34)。例えば図17で示したパターンのうち、ヘッドマウントディスプレイ100への出力遅延時間は(c)≒(d)>(b)>(a)であり、平板型ディスプレイ302への出力遅延時間は(c)≒(d)>(a)>(b)である。また平板型ディスプレイ302に表示させる画像の質は(b)が最も高く(c)が最も低い。
またヘッドマウントディスプレイ100へ表示する際の画質は、サーバ400と画像処理装置200が同じ変位ベクトルや画素補間処理を行う場合、レンズ歪みとリプロジェクションを一括でおこなう(a)の方が、(c)より優位性がある。しかし、一般にサーバ400は画像処理装置200より処理能力が潤沢にあり、高密度な変位ベクトルマップや、より多タップの画素補間処理など画質向上のための処理を短時間で実施できる。そのため、ヘッドマウントディスプレイ100用の画像が2回にわたって補正される(c)でも、画質において優位となる場合がある。なお(a)、(c)と(b)の間では、視差処理の有無などにより、一概に画質を比較できない。
そのような遅延時間と画質のバランスや、画像処理装置200およびサーバ400で実行可能なパターンなどに応じて、最適なパターンを選択できるように規則を設定しておく。この際、上述のとおり通信帯域(転送帯域)、通信遅延(転送遅延)も考慮する。ここでトータルの遅延時間は、サーバ400での処理時間、通信遅延、画像処理装置200での処理時間の合計となる。パターン選択のための規則として、トータルの遅延時間に対し許容できるレベルをあらかじめ決めておいてもよい。
例えば通信遅延(転送遅延)が当該レベルより大きい場合、画質を犠牲にしてでも、トータルの遅延時間が短くなるパターンを選択する。このようなときには、画像処理装置200にて標準的な画質でレンズ歪みとリプロジェクションの処理を一括でおこなう前提で(a)のパターンを選択してもよい。通信遅延(転送遅延)がそれより小さい場合は、サーバ400や画像処理装置200での処理時間が長いパターンを選択し、画質を向上させてもよい。
例えばサーバ400の処理能力が高い場合、ヘッドマウントディスプレイ100への表示において、図17の(a)でなく(c)のパターンを選択してもよい。また、例えば画像処理装置200の画像処理部244がもつ第2形成部270bが、歪みを除去する補正に対応していない場合、(c)のパターンを選択できず、(a)もしくは(b)のパターンを選択する必要がある。
データ形成部434は描画部430が描画したフレームに、決定された内容で形成処理を施す(S36)。なおデータ形成部434が、描画部430が描画したフレームのまま送信することを決定した場合は、形成処理を省略する。その後、必要に応じて圧縮符号化部422が画像データを圧縮符号化し、パケット化部424が、画像のデータと当該データに適用済みの形成内容とを対応づけてパケットとすることにより、通信部426が画像処理装置200へ送信する(S38)。なおS36、S38の処理は実際には上述のとおり、部分画像の単位で順次進捗させる。
また、S34で決定した内容で形成したデータを転送するには通信帯域(転送帯域)が不足している場合、後述する制御により、データ圧縮時の量子化パラメータ、解像度、フレームレート、色空間などの少なくともいずれかを変更することにより、データサイズを削減してもよい。この場合、画像処理装置200の画像処理部244は、画像サイズのアップスケールなどを行ってよい。画像処理装置200に対するユーザ操作などにより、画像の送信を停止する必要がなければ(S40のN)、後続のフレームについて描画、形成処理、送信を繰り返す(S31のN、S36、S38)。
ただしサーバ400側での画像の形成内容を切り替えるタイミングにおいては、形成内容切り替え部432がS32、S34の処理により形成内容を更新する(S31のY)。ここで画像の形成内容を切り替えるタイミングとは、画像処理装置200で実施しているアプリケーションの切り替わり時、当該アプリケーション内でのモードの切り替わり時、画像処理装置200に対するユーザ操作により指定されたタイミングなどに生じ得る。
なおサーバ400と画像処理装置200の間の通信状況は変化し得るため、形成内容切り替え部432はさらに、通信速度を常時監視し、必要に応じて形成内容を動的に切り替えてもよい。画像の送信を停止する必要が生じたら、サーバ400は全ての処理を終了させる(S40のY)。
以上述べた、異なる表示形態のためのデータ形成処理によれば、サーバ400は、画像データの送信先である画像処理装置200において実現すべき表示形態を踏まえ、表示までに必要なデータ形成処理の一部を実施する。画像処理装置200に接続される表示装置の種類、画像処理装置の処理性能、通信状況、表示対象の動画の内容などによって、当該形成処理の内容を決定することにより、与えられた環境下で表示の応答性や画質を最良の状態とすることができる。
また、異なる表示形態の複数の表示装置に同じ動画を表示させる場合に、サーバ400が好適なデータ形式を1つ選択して形成処理を施したうえで送信することにより、表示形態の数によらず同様の通信帯域でデータを送信できる。これにより画像処理装置200側では、各表示形態に応じたデータを少ない処理で形成できる。また、リプロジェクションなど各種補正や、他の画像との合成などとの組み合わせも容易である。結果として、実現したい表示形態の種類や数によらず、ネットワークを介して提供される画像を低遅延、高画質で表示させることができる。
5.各フレームに対応する複数の画像の圧縮符号化
動画像のデータとして、各フレームが複数の画像によって構成されている場合の圧縮符号化手法について説明する。まず動画像の各フレームが、異なる視点に対し得られた複数の画像により構成される場合を考える。例えば、人の左右の目に対応する視点で表示画像を生成し、それをヘッドマウントディスプレイ100の左目領域、右目領域に表示させれば、ユーザは臨場感のある画像世界を楽しむことができる。一例として、スポーツ競技などのイベントを、空間に配置した複数のカメラで撮影し、それを利用して、ヘッドマウントディスプレイ100の頭部の動きに応じた左目用、右目用の画像を生成、表示することにより、ユーザは会場にいるのと同様の感覚で、自由な視点からイベントを見ることができる。
動画像のデータとして、各フレームが複数の画像によって構成されている場合の圧縮符号化手法について説明する。まず動画像の各フレームが、異なる視点に対し得られた複数の画像により構成される場合を考える。例えば、人の左右の目に対応する視点で表示画像を生成し、それをヘッドマウントディスプレイ100の左目領域、右目領域に表示させれば、ユーザは臨場感のある画像世界を楽しむことができる。一例として、スポーツ競技などのイベントを、空間に配置した複数のカメラで撮影し、それを利用して、ヘッドマウントディスプレイ100の頭部の動きに応じた左目用、右目用の画像を生成、表示することにより、ユーザは会場にいるのと同様の感覚で、自由な視点からイベントを見ることができる。
このような技術において、サーバ400から送信すべき左目用、右目用の画像は、基本的に同じ空間の像を表しているため類似性が高い。そこでサーバ400の圧縮符号化部422は、一方の画像を圧縮符号したうえ、他方のデータはそれとの差分を表す情報とすることで、より高い圧縮率を実現する。あるいは圧縮符号化部422は、過去のフレームの対応する視点の圧縮符号化結果との差分を表す情報を取得してもよい。つまり圧縮符号化部422は、動画像のデータのうち同じ時刻の像を表す別の画像、または過去のフレームの画像、の少なくともいずれかの圧縮符号化結果を参照して予測符号化を行う。
図20は、複数視点の画像を高率で圧縮する機能を有するサーバ400と、それを処理する画像処理装置200の機能ブロックの構成を示している。サーバ400は、画像生成部420、圧縮符号化部422、パケット化部424、および通信部426を含む。画像処理装置200は、画像データ取得部240、復号伸張部242、画像処理部244、および表示制御部246を含む。サーバ400の画像生成部420、パケット化部424、通信部426、および画像処理装置200の画像データ取得部240、画像処理部244、表示制御部246は、図5あるいは図16で説明したのと同様の機能を有する。
ただし画像処理装置200の画像処理部244は、図9で示した各種機能を有していてもよい。またサーバ400の画像生成部420は、異なる視点に対し得られた複数の動画像のデータを取得する。例えば画像生成部420は、異なる位置に配置された複数のカメラで撮影された画像を取得したり、仮想的な複数の視点から見た画像を描画したりしてよい。すなわち画像生成部420は、自らが画像を生成するのに限らず、外部のカメラなどから画像のデータを取得してもよい。
画像生成部420はまた、一旦、取得した複数視点の画像に基づき、ヘッドマウントディスプレイ100を装着したユーザの視点に対応する視野で、左目用、右目用の画像を生成してもよい。左目用、右目用に限らず複数視点の画像をサーバ400による送信対象とし、送信先の画像処理装置200で左目用、右目用の画像を生成するようにしてもよい。あるいは画像処理装置200は、送信された複数視点の画像を用いて何らかの画像解析を行ってもよい。
いずれにしろ画像生成部420は、表される対象物の少なくとも一部が共通している複数の動画像のフレームを、所定または可変のレートで取得あるいは生成し、圧縮符号化部422に順次供給する。圧縮符号化部422は、分割部440、第1符号化部442、第2符号化部444を備える。分割部440は、複数の動画像の対応するフレームを、画像平面の共通の境界で分割することにより、画像ブロックを形成する。第1符号化部442は、視点の異なる複数のフレームのうち、一つの視点のフレームを、画像ブロック単位で圧縮符号化する。
第2符号化部444は、第1符号化部442が圧縮符号化したデータを用いて、その他の視点のフレームを、画像ブロック単位で圧縮符号化する。符号化方式は特に限定されないが、フレームの全体を用いることなく部分的な領域ごとに独立して圧縮しても、画質の劣化が小さい方式を採用することが望ましい。これにより、1フレームより小さい単位で複数視点のフレームを順次圧縮符号化でき、これまで述べたのと同様のパイプライン処理により、少ない遅延時間で部分画像ごとに画像処理装置200へ送信できる。
このため画像ブロックの境界は、画像平面において画像生成部420がデータを取得する順序に応じて適切に設定する。すなわち先に取得される領域ほど先に圧縮符号化され送出されるように、画像ブロックの境界を決定する。例えば画像生成部420が、画像平面の各行の画素列のデータを上から順に取得する場合、分割部440は水平方向に境界線を設定することにより、所定数の行からなる画像ブロックを形成する。
ただし画像生成部420が取得するデータの順序や画像の分割方向は特に限定されない。例えば画像生成部420が、縦方向の画素列のデータを順次取得する場合は、分割部440は垂直方向に境界線を設定する。境界線は一方向に限らず、縦横双方向に区切ることにより画像ブロックをタイル状としてもよい。あるいは画像生成部420は、一度の走査で1行おきに画素列のデータを取得し、次の走査で残りの行のデータを取得するインターレース方式でデータを取得してもよいし、画像平面を蛇行するようにデータを取得していってもよい。後者の場合、分割部440は画像平面の斜め方向に分割の境界線を設定する。
いずれにしろ上述のとおり、画像生成部420が先に取得した領域のデータが先に圧縮符号化されるように、データの取得順に対応する分割パターンを適切に設定しておき、分割部440は、画像生成部420のデータ取得順に応じたパターンで画像平面を分割する。ここで分割部440は、動き補償や符号化を行うのに必要な最小単位の領域を、最小の分割単位とする。第1符号化部442および第2符号化部444は、分割部440がこのように分割した画像ブロックの単位で圧縮符号化を行う。
ここで第2符号化部444は上述のとおり、第1符号化部442が圧縮符号化した画像データを用いることにより、他の視点の画像データの圧縮率を高める。なお第1符号化部442と第2符号化部444はさらに、過去のフレームの同じ位置の画像ブロックの圧縮符号化データを用いて、現フレームの各画像ブロックを圧縮符号化してもよい。
図21は、第1符号化部442と第2符号化部444が圧縮符号化する画像ブロックと、そのために圧縮符号化結果を参照する画像ブロックの関係を例示している。同図は、接眼レンズのための歪みを与えた左目用、右目用画像を処理対象とした場合の画像平面を表しており、Nを自然数として左がNフレーム目、右がN+1フレーム目を示している。例えばNフレーム目に示すように、第1符号化部442が左目用画像350aを、画像ブロック(1-1)、(1-2)、・・・、(1-n)の単位で圧縮符号化し、第2符号化部444は右目用画像350bを、画像ブロック(2-1)、(2-2)、・・・、(2-n)の単位で圧縮符号化する。
ここで第2符号化部444は実線矢印(例えば実線矢印352)のように、第1符号化部442が圧縮符号化した、左目用画像(例えば左目用画像350a)の画像ブロックのデータを参照先として用い、右目用画像(例えば右目用画像350b)の各画像ブロックを圧縮符号化する。あるいは第2符号化部444は、一点鎖線矢印(例えば一点鎖線矢印354)のように、Nフレーム目の右目用画像350bにおける画像ブロックの圧縮符号化結果を参照先として用い、1つ後のN+1フレーム目の右目用画像における同じ位置の画像ブロックを圧縮符号化してもよい。
または第2符号化部444は、実線矢印および一点鎖線矢印で示した参照先の双方を同時に用いて、対象の画像ブロックを圧縮符号化してもよい。同様に第1符号化部442は、破線矢印(例えば破線矢印356)のように、Nフレーム目の左目用画像350aにおける画像ブロックの圧縮符号化結果を参照先として用い、N+1フレーム目の左目用画像における同じ位置の画像ブロックを圧縮符号化してもよい。これらの態様において、例えば多視点映像の符号化方式であるMVC(Multiview Video Coding)のアルゴリズムを用いることができる。
MVCは、多視点で撮影された画像のうち、AVC(H264、MPEG-4)などの方式で圧縮符号化した視点の復号画像を用いて別視点の画像を予測し、それと実際の画像との差分を当該別視点の圧縮符号化対象とすることを基本とする。ただし符号化のフォーマットは特に限定されず、例えばHEVC(High Efficiency Video Coding)に対する多視点符号化の拡張規格であるMV-HEVC(多視点映像符号化拡張)でもよい。またベースとなる符号化方式はそのほか、VP9、AV1(AOMedia Video 1)、VVC(Versatile Video Coding)などでもよい。
いずれにしろ本実施の形態では、当該圧縮符号化処理を画像ブロック単位で行うことにより、送出までの遅延時間を短縮する。例えば第1符号化部が、一の視点のフレームにおけるn番目(nは自然数)の画像ブロックを圧縮符号化している間に、第2符号化部は、その他の視点のフレームにおけるn-1番目の画像ブロックを圧縮符号化する。これによりフレームのデータを取得した順序で、順次並列にパイプライン同時動作でき、圧縮処理を高速化できる。
第1符号化部442および第2符号化部444で圧縮符号化の対象とする視点はそれぞれ、1つでも複数でもよい。第1符号化部442および第2符号化部444で圧縮符号化された複数視点の動画像のフレームは、順次、パケット化部424に供給され、通信部426から画像処理装置200に送信される。この際、各データには、第1符号化部442および第2符号化部444のどちらで圧縮されたデータかを区別する情報を対応づけておく。
なお圧縮単位である画像ブロックは、これまで述べたパイプライン処理の単位である部分画像と同一でもよいし、1つの部分画像に複数の画像ブロックのデータが含まれていてもよい。画像処理装置200の復号伸張部242は、第1復号部280および第2復号部282を備える。第1復号部280は、第1符号化部442で圧縮符号化された視点の画像を復号伸張する。第2復号部282は、第2符号化部444で圧縮符号化された視点の画像を復号伸張する。
すなわち第1復号部280は、第1符号化部442で圧縮符号化されたデータのみを用いて、符号化方式に応じた一般的な復号処理により、一部の視点の動画像のフレームを復号する。第2復号部282は、第1符号化部442で圧縮符号化されたデータと、第2符号化部444で圧縮符号化されたデータを用いて、残りの視点の動画像のフレームを復号する。例えば前者により対象とする視点の画像を予測し、第2符号化部444で圧縮符号化されたデータの復号結果を加算することにより、当該視点の画像を復号する。
なお第1復号部280、第2復号部282は機能ブロックとして分けて示しているが、実際には一つの回路やソフトウェアモジュールが2種類の処理を順に実施できることは当業者には理解されるところである。これまで述べたように復号伸張部242は、画像データ取得部240から圧縮符号化された部分画像のデータを取得し、その単位で復号伸張したうえで画像処理部244に供給する。ここで複数視点の画像の類似性を利用して予測符号化を行うことにより、サーバ400から伝送すべきデータサイズを縮小でき、通信帯域を圧迫することなく遅延の少ない画像表示を実現できる。
図22は、本実施の形態においてサーバ400が、複数視点の画像の類似性を利用して画像ブロック単位で圧縮符号化する効果を説明するための図である。同図上段は、接眼レンズのための歪みを与えた左目用、右目用画像を処理対象とした場合の、画像の区分を例示している。同図下段の横方向は時間経過を表し、それぞれの領域に対する圧縮符号化処理の時間を、上段に示した各領域の番号とともに矢印で示している。
(a)の手順は、まず(1)の左目用画像全体を圧縮符号化し、その結果を用いた右目用画像の予測画像と実際との差分を、(2)の右目用画像の圧縮対象とする場合を、比較として示している。この手順では、(2)の右目用画像の圧縮符号化に際し、まず左目用画像全体の圧縮符号化の完了を待機し、さらに当該データを用いて予測を行ったり、実際の画像との差分を求めたりする必要がある。その結果、下段に示すように、双方の画像を圧縮符号化し終えるまでに比較的長い時間を要する。
(b)の手順は、左目用画像と右目用画像を接続した1つの画像として扱い、水平方向に分割してなる画像ブロック(1)、(2)、・・・、(n)の単位で圧縮符号化する場合を、比較として示している。この手順では、下段に示すように、一旦圧縮符号化したデータから予測を行ったり差分を求めたりする処理が含まれない分、(a)の手順より圧縮符号化に要する時間を短縮できる。ただし予測符号化を用いないため圧縮率は(a)より低下する。
(c)の手順は、本実施の形態で上述したように、第1符号化部442が左目用画像を、画像ブロック(1-1)、(1-2)、・・・、(1-n)の単位で圧縮符号化し、第2符号化部444は、それぞれのデータを用いた右目用画像の予測画像と実際との差分を圧縮することにより、画像ブロック(2-1)、(2-2)、・・・、(2-n)の単位の右目用画像の圧縮符号化データとする場合である。この手順では下段(c)に示すように、右目用画像の画像ブロック(2-1)、(2-2)、・・・、(2-n)の圧縮符号化を、左目用画像の対応する画像ブロック(1-1)、(1-2)、・・・、(1-n)の圧縮符号化の完了直後に開始できる。
また、左目用画像の圧縮符号化時に一度に処理する面積が小さいことと、右目用画像の圧縮符号化時に参照すべき、左目用画像の面積が小さいことから、各画像ブロックの圧縮符号化時間は、(a)において画像ブロック当たりに換算した圧縮符号化時間より短くなる。結果として(b)の手順と同程度の短時間で、より高い圧縮率を実現できる。さらにこれまで述べたように、圧縮符号化済みの画像ブロックは順次、パケット化して画像処理装置200に送信されるため、(a)の手順と比較し表示までの遅延を格段に抑えることができる。
なお(c)の手順において、第1符号化部442、第2符号化部444は機能ブロックとして分けて示しているが、実際には一つの回路やソフトウェアモジュールが2種類の処理を順に実施できる。一方、図の下段に示した(c)’は、第1符号化部442と第2符号化部444が並列に圧縮符号化を行えるように構成した場合を示している。この場合、第1符号化部442が、左目用画像における画像ブロック(1-2)、・・・、(1-n)を圧縮符号化している各期間において、第2符号化部444は、右目用画像における一つ前の画像ブロック、すなわち画像ブロック(2-1)、・・・、(2-(n-1))番目の画像ブロックを圧縮符号化する。
これにより、(c)の場合よりさらに、圧縮符号化に要する時間を短縮できる。(c)’’の手順は(c)’の手順の変形例であり、左目用の画像の画像ブロックのうち所定単位の領域を圧縮符号化した時点で、当該データを用いて右目用の画像の対応する領域の圧縮符号化を開始する場合を示している。左目用と右目用の画像では、同じ対象物の像が視差分だけずれた位置に表れるため、原理的には当該ずれ量を見込んだ数画素から数十画素程度の範囲の参照画像があれば、他方の画像の予測符号化が可能である。
また上述のとおり圧縮符号化において動き補償や符号化を行うのに必要な最小単位の領域は、1行、2行など所定数の行の領域や、16×16画素、64×64画素など所定サイズの矩形領域である。したがって第2符号化部444は、参照先として必要な領域の左目用画像の圧縮符号化が第1符号化部442において完了した時点で圧縮符号化を開始でき、その最小単位は、動き補償や符号化を行うのに必要な単位領域である。
例えば第1符号化部442が、左目用画像の画像ブロックを端から順に圧縮符号化していくケースでは、当該画像ブロック全体の圧縮符号化が完了する前に、第2符号化部444が、右目用画像の対応する画像ブロックの圧縮符号化を開始できる。このようにすると、(c)’の場合と比較してさらに圧縮符号化に要する時間を短縮できる。
なお圧縮符号化部422は全体として、圧縮符号化に必要な最小単位の領域のデータが用意され次第、圧縮符号化を開始することで、圧縮符号化処理に要する時間を短縮できる。これまでは主に、複数視点の画像の圧縮符号化について述べたが、動画像の各フレームに対応する複数の画像において、視点以外のパラメータが異なっていても、同様の処理により低遅延で高効率の圧縮符号化および転送を実現できる。例えば1つの動画像を圧縮符号化するときに、解像度、画質、フレームレートを異ならせて階層化させ、冗長性を持たせたデータを生成するスケーラブル映像符号化技術において、各階層のデータは類似性が高い。
そのためベース階層の画像を圧縮符号したうえ、他の階層のデータはそれとの差分を表す情報とすることで、より高い圧縮率を実現する。すなわち動画像のデータのうち同じ時刻の同じ像を表す別の画像、または過去のフレームの画像、の少なくともいずれかの圧縮符号化結果を参照して予測符号化を行う。ここで、動画像のデータのうち同じ時刻の同じ像を表す別の画像とは、階層的に定義された異なる解像度や画質を持つ。
例えば、同じ像を表す画像で、解像度が4K(3840×2160画素)、HD(1920×1080画素)、画質が量子化パラメータ(QP)でlevel 0と1といった段階を持つ。ここで、過去のフレームの画像とは、階層的に定義された異なるフレームレートにおける直前のフレームなどを指す。例えば、フレームレートが60fpsと30fpsといった段階を持つなかで、30fpsの階層における直前のフレームとは、すなわち1/30秒前のフレームを指し、これは60fpsの階層においては2フレーム前となる。このような特徴を持つスケーラブル映像符号化技術においても、各階層の圧縮符号化を画像ブロック単位で行ってもよい。
スケーラブル映像符号化としては、例えばAVC(H264、MPEG-4)の拡張規格であるSVC(Scalable Video Coding)や、HEVCの拡張規格であるSHVC(Scalable High Efficiency Video Coding)などが知られており(例えば、木本崇博、「MPEGにおけるスケーラブルビデオ符号化の標準化動向」、社団法人情報処理学会研究報告、2005年、AVM-48(10)、p.55-60参照)、本実施の形態ではそのいずれを採用してもよい。なおベースとなる符号化方式はそのほか、VP9、AV1、VVCなどでもよい。
図23は、スケーラブル映像符号化を実施する場合の、圧縮符号化部422の機能ブロックの構成を示している。その他の機能ブロックは、図20で示したのと同様である。この場合の圧縮符号化部422は、図20で示した分割部440、第1符号化部442、第2符号化部444に加え、解像度変換部360、通信状況取得部452、および送信対象調整部362を備える。解像度変換部360は、画像生成部420が生成あるいは取得する動画像の各フレームを段階的に縮小して複数解像度の画像とする。
分割部440は、当該複数解像度の画像を、画像平面の共通の境界で分割することにより、画像ブロックを形成する。分割規則は上述したのと同様でよい。第1符号化部442は、最も低い解像度の画像を画像ブロック単位で圧縮符号化する。上述のとおりこの際の圧縮符号化は、当該画像のみ、あるいはさらに、同じ解像度の過去フレームの画像における同じ位置の画像ブロックを参照して実施する。
第2符号化部444は、第1符号化部442が圧縮符号化した結果を利用して、高解像度の画像を画像ブロック単位で圧縮符号化する。図では解像度が2階層のケースを想定し、第1符号化部442、第2符号化部444の2つを示しているが、解像度を3階層以上とする場合、階層数だけ符号化部を設け、解像度が一段階下の画像の圧縮符号化結果を用いて予測符号化を行う。
この際さらに、同じ解像度の過去フレームの画像における同じ位置の画像ブロックを参照してもよい。またそれらの符号化部においては必要に応じて、フレームレートを調整したり、用いる量子化パラメータを調整したりして、階層間でフレームレートや画質に差を設けてもよい。
例えばフレームレートに階層を設ける場合、圧縮符号化部422における処理のフレームレートは、最も高いフレームレート階層のレートとなる。そして過去のフレームを参照先として圧縮符号化する場合、フレームレートによって参照先のフレームが変化する。また画質に階層を設ける場合、第1符号化部442が量子化パラメータでベース画質となるQP level0を選択し、第2符号化部444やそれより上の第n符号化部側が、より高画質のQP levelを選択することで実現させる。
例えば解像度がHD、画質がQP level0のベース階層と、解像度が4K、画質がQP level1の階層があるとき、第1符号化部442は前者を、第2符号化部444が後者を処理する。さらに解像度が4K、画質がQP level2の階層があるときは、当該階層の処理を、図示しない第3符号化部が担う。すなわち同じ解像度でもQP levelが異なる場合は、その分の符号化部を設ける。なお解像度、画質、フレームレートの階層の組み合わせはこれに限らない。
いずれにしろこの場合も、第1符号化部442が、最小解像度(最下層)の画像におけるn番目(nは自然数)の画像ブロックを圧縮符号化している間に、第2符号化部444は、その上の階層の画像におけるn-1番目の画像ブロックを圧縮符号化する。3階層以上とする場合は、3番目の階層の画像におけるn-2番目の画像ブロック、4番目の階層の画像におけるn-3番目、・・・というように、各符号化部が、階層が上がるにつれ1つずつ前にずれた画像ブロックの圧縮符号化を並列に実施する。本実施の形態で実現するスケーラブル映像符号化の各パラメータの例を次に示す。
通信状況取得部452は、画像処理装置200との通信状況を所定のレートで取得する。例えば通信状況取得部452は、画像データを送信してから画像処理装置200に到達するまでの遅延時間を、画像処理装置200からの応答信号に基づき取得するか、画像処理装置200の集計情報に基づき取得する。あるいは通信状況取得部452は、送信済みの画像データのパケットのうち画像処理装置200に到達したパケットの割合を、データ到達率として画像処理装置200から取得する。さらに、これらの情報に基づき単位時間当たりに送信できたデータ量、すなわち、利用可能な帯域を取得する。通信状況取得部452はこれらの情報の少なくともいずれかを所定のレートで取得することにより、通信状況を監視する。
送信対象調整部362は、通信状況に応じて、スケーラブル映像符号化により圧縮符号化された階層データのうち、画像処理装置200に送信すべき対象を決定する。ここで送信対象調整部362は当該階層データのうち、第1符号化部442が圧縮符号化した最低解像度の画像のデータを最優先とする。さらに送信対象調整部362は通信状況に応じて、送信対象を上位階層方向に拡張するか否かを決定する。例えば利用可能な転送帯域に複数のしきい値を設定し、当該しきい値を超える都度、送信対象を上の階層の画像データに段階的に拡張していく。
逆に、利用可能な転送帯域が最低のしきい値を超えない場合は、最低解像度の画像のデータのみを送信対象とする。あるいはプライオリティ制御を適用し、サーバ400は、通信状況によらず全ての階層のデータを送信対象としてもよい。この場合、送信対象調整部362は通信状況に応じて、各階層に付与する転送優先順位を通信状況に応じて調整する。例えば送信対象調整部362は、上位階層のデータの転送優先順位を必要に応じて下げる。ここで転送優先順位は多段階であってよい。
このときパケット化部424は、画像のデータとともに付与された転送優先順位を示す情報をパケット化し、通信部426から送信する。ただしネットワーク306のノードにあるルーターなどにおいて、処理能力を超過する転送が発生した場合に、必要に応じてパケットを破棄してよい。ストリーミング系のデータ転送においては、低遅延化と高転送効率を実現するために、一般にUDPなどのハンドシェイクを省略した転送プロトコルを用いるため、その場合においては、送信したサーバー400は、ネットワーク306の経路の途中でパケットが破棄されたかどうかも関知しない。このときルーターなどは、付与された転送優先順位に基づき、上位階層から順に廃棄対象とする。サーバ400から複数の画像処理装置200へ階層化されたデータを同時に送信する場合、各画像処理装置200が有する復号伸張部242の処理能力や、各画像処理装置200までのネットワークの通信性能は様々である。
送信対象調整部362は上述のとおり、各画像処理装置200の状況に応じて個別に送信対象を決定してもよいが、その場合、複数の通信セッションを別々に調整する必要があり処理負荷が非常に高い。一方、上記プライオリティ制御によれば、サーバ400は複数の通信セッションに対して同じ条件で対応でき、処理効率を高められる。なお送信対象調整部362等は、上述のとおり送信対象自体を制御する態様と、プライオリティ制御を行う態様を組み合わせて実施してもよい。
変形例として、サーバ400は図示しない中継サーバへ、圧縮符号化された階層データを送信し、当該中継サーバが、複数の画像処理装置200へ同時にデータ送信するようにしてもよい。この場合、サーバ400は上記プライオリティ制御により全階層のデータを中継サーバに送信し、中継サーバが、各画像処理装置200の状況に応じて個別に送信対象を決定し送信してもよい。送信対象調整部362はさらに、通信状況および後述する動画像が表す内容の少なくともいずれかに基づいて、(1)各階層が用いるパラメータを変更する、および/または(2)階層関係を変更してよい。
(1)のケースでは、送信対象調整部362は例えば、解像度の階層として4K(3840×2160画素)の階層があるとき、4Kに代わりWQHD(2560×1440画素)の階層とする。なおWQHDの階層を追加するわけではない。このような変更は、複数ある実現帯域に対するしきい値のうち、高帯域側のしきい値を下回るケースが多いときに実施してもよい。あるいは送信対象調整部362は、画質の階層としてQP level1の階層があるとき、QP level1に代わりQP level2の階層とする。この場合もQP level2の階層を追加するわけではない。
このような変更は、複数ある実現帯域に対するしきい値のうち、高帯域側のしきい値を上回るケースが多いときに実施してもよい。もしくは画像解析の結果、画質を重視すべきシーンであったときに実施してもよい。(2)のケースについては後述する。(1)、(2)のケースにおいて、送信対象調整部362は、必要に応じて決定した条件での処理を解像度変換部360、第1符号化部442、第2符号化部444に要求してもよい。調整の根拠とする、動画像が表す内容の具体例は後に述べる。
図24は、スケーラブル映像符号化を実施する場合の、第1符号化部442と第2符号化部444が圧縮符号化する画像ブロックと、そのために圧縮符号化結果を参照する画像ブロックの関係を例示している。この例は、解像度の階層が2レベルあり、フレームレートと画質には階層がない場合を想定しており、Nを自然数として左がNフレーム目、右がN+1フレーム目を示している。この場合、第1符号化部442は、各フレームのうち低解像度の画像480a、480bを、画像ブロック(1-1)、(1-2)、・・・、(1-n)の単位で圧縮符号化する。
第2符号化部444は、高解像度の画像482a、482bを、画像ブロック(2-1)、(2-2)、・・・、(2-n)の単位で圧縮符号化する。ここで第2符号化部444は実線矢印(例えば実線矢印484a、484b)のように、第1符号化部442が圧縮符号化した、同じフレームにおける低解像度画像480a、480bの対応する位置の画像ブロックのデータを参照先として用い、高解像度画像482a、482bの各画像ブロックを圧縮符号化する。
あるいは第2符号化部444は、一点鎖線矢印(例えば一点鎖線矢印488)のように、Nフレーム目の高解像度画像482aにおける画像ブロックの圧縮符号化結果を参照先として用い、1つ後のN+1フレーム目の高解像度画像482bにおける同じ位置の画像ブロックを圧縮符号化してもよい。または第2符号化部444は、実線矢印および一点鎖線矢印で示した参照先の双方を同時に用いて、対象の画像ブロックを圧縮符号化してもよい。
同様に第1符号化部442は、破線矢印(例えば破線矢印486)のように、Nフレーム目の低解像度画像480aにおける画像ブロックの圧縮符号化結果を参照先として用い、N+1フレーム目の低解像度画像480bにおける同じ位置の画像ブロックを圧縮符号化してもよい。図25も、スケーラブル映像符号化を実施する場合の、第1符号化部442と第2符号化部444が圧縮符号化する画像ブロックと、そのために圧縮符号化結果を参照する画像ブロックの関係を例示している。
この例は、解像度の階層とフレームレートの階層がともに2レベルある場合を想定している。図の横方向が時間軸であり、左から1フレーム目、2フレーム目、3フレーム目、4フレーム目を示している。図示するように1フレーム目はIフレーム(イントラフレーム)であり、その他のフレームはPフレーム(前方予測フレーム)である。ただしフレームの具体的な数を限定する趣旨ではない。
また図の縦方向がフレームレートの階層を示しており、各階層(レベル0、レベル1)に2レベルの解像度の画像があることを示している。また、各画像の左上に、階層の組み合わせを識別するa~dの符号を付している。フレーム番号とa~dの符号との組み合わせで各画像を表すと、第1符号化部442が圧縮符号化する画像は、1a、2c、3a、4cの順となる。第2符号化部444が圧縮符号化する画像は、1b、2d、3b、4dの順となる。通信帯域が最も小さい場合に、画像処理装置200側で表示される画像は1a 、3a、・・・の順となる。通信帯域が最も大きい場合に、画像処理装置200側で表示される画像は1b、2d、3b、4dの順となる。
各符号化部は、上述したように画像ブロックの単位で圧縮符号化する。ここで第2符号化部444は、実線矢印(例えば実線矢印500a、500b)のように、第1符号化部442が圧縮符号化した、同じフレームにおける低解像度画像の対応する位置の画像ブロックのデータを参照先として用い、高解像度画像の各画像ブロックを圧縮符号化する。また第1符号化部442、第2符号化部444は、破線矢印(例えば破線矢印502a、502b)のように、同じフレームレートの階層における同じ解像度の画像の画像ブロックの圧縮符号化結果を参照先として用い、次のフレームの同じ位置の画像ブロックを圧縮符号化してもよい。
また第1符号化部442、第2符号化部444は、一点鎖線矢印(例えば一点鎖線矢印504a、504b)のように、異なるフレームレートの階層における同じ解像度の画像の画像ブロックの圧縮符号化結果を参照先として用い、次のフレームの同じ位置の画像ブロックを圧縮符号化してもよい。第1符号化部442、第2符号化部444はこれらの参照先のいずれかを用いて圧縮符号化してもよいし、複数の参照先を同時に用いて圧縮符号化してもよい。
また各画像ブロックの圧縮符号化の処理手順は、図22に示した(c)、(c)’、および(c)’’のいずれを採用してもよい。具体的には、第1符号化部442と第2符号化部444が実際には一つの回路またはソフトウェアモジュールであり順番に処理を実施する場合は(c)の手順、第1符号化部442と第2符号化部444において並列処理が可能な場合は(c)’または(c)’’の手順とする。なお上記(2)のとおり、通信状況および動画像が表す内容の少なくともいずれかに基づいて階層関係を変更するケースでは、送信対象調整部362は、解像度・画質・フレームレートの、少なくともいずれかで、階層の数を変更する。または圧縮符号化時の参照先の階層を変更する。例えば送信対象調整部362は次のように参照先を変更する。
図25の場合、例えばフレームレート階層にレベル1とレベル0があり、レベル1はレベル0を毎回参照しているとき、フレームシーケンスは
フレーム1 レベル0
フレーム2 レベル1(直前レベル0フレーム1を参照)
フレーム3 レベル0(直前レベル0フレーム1を参照)
フレーム4 レベル1 (直前レベル0フレーム3を参照)
フレーム5 レベル0 (直前レベル0フレーム3を参照)
フレーム6 レベル1 (直前レベル0フレーム5を参照)
フレーム7 レベル0(直前レベル0フレーム5を参照)
・・・
となる。送信対象調整部362はこれを変更し、例えば次のようにレベル1間の参照数を増やす。
フレーム1 レベル0
フレーム2 レベル1(直前レベル0フレーム1を参照)
フレーム3 レベル0(直前レベル0フレーム1を参照)
フレーム4 レベル1 (直前レベル0フレーム3を参照)
フレーム5 レベル0 (直前レベル0フレーム3を参照)
フレーム6 レベル1 (直前レベル0フレーム5を参照)
フレーム7 レベル0(直前レベル0フレーム5を参照)
・・・
となる。送信対象調整部362はこれを変更し、例えば次のようにレベル1間の参照数を増やす。
フレーム1 レベル0
フレーム2 レベル1(直前レベル0フレーム1を参照)
フレーム3 レベル1(直前レベル1フレーム2を参照)
フレーム4 レベル0(直前レベル0フレーム1を参照)
フレーム5 レベル1(直前レベル0フレーム4を参照)
フレーム6 レベル1 (直前レベル1フレーム5を参照)
フレーム7 レベル0 (直前レベル0フレーム参照)
・・・
このような変更は、画像処理装置200へのデータの到達率が、所定のしきい値を上回るケースが多いときに実施してもよい。
フレーム2 レベル1(直前レベル0フレーム1を参照)
フレーム3 レベル1(直前レベル1フレーム2を参照)
フレーム4 レベル0(直前レベル0フレーム1を参照)
フレーム5 レベル1(直前レベル0フレーム4を参照)
フレーム6 レベル1 (直前レベル1フレーム5を参照)
フレーム7 レベル0 (直前レベル0フレーム参照)
・・・
このような変更は、画像処理装置200へのデータの到達率が、所定のしきい値を上回るケースが多いときに実施してもよい。
以上述べた各フレームに対応する複数の画像の圧縮符号化によれば、動画像の各フレームに対応する複数の画像を、画像データの取得順に応じた規則で画像ブロックに分割し、その単位で圧縮符号化する。この際、ある画像の圧縮符号化結果を用いて、別の画像を圧縮符号化することにより圧縮率を向上させる。これにより、圧縮符号化自体に要する時間を短縮できるうえ、圧縮符号化が完了した画像ブロックから送信が可能になるため、ネットワークを介した画像の配信においても低遅延での画像表示が可能である。
また送信すべきデータのサイズを軽減できるため、通信状況の変化に対し頑健性をもたらす。例えば3つ以上の画像データを送信する態様においても、各画像全体を送信する場合と比較し必要な通信帯域幅を軽減できるとともに、画像ブロック単位でデータが完結しているため通信中にデータが損失してもリカバリが容易である。結果として遅延時間の少ない画像を高い画質で表示させることができる。さらに送信先の画像処理装置の数、通信状況、画像処理装置の処理性能など様々な環境に臨機応変に対応できる。例えばゲーム実況中継(eSports中継)や、多人数参加のクラウドゲーミングにおいて、高い柔軟性で、高効率、低遅延と画高質を両立できる。
6.データサイズ削減手段の最適化
サーバ400から画像処理装置200へ、低遅延で安定的にデータを送信するには、送信対象のデータのサイズを極力小さくすることが望ましい。一方で、表示世界への臨場感や没入感など高いレベルでのユーザ体験を提供するには、解像度やフレームレートをある程度維持したり、圧縮率を上げないようにしたりすることが望ましく、ジレンマが生じる。両者のバランスを好適にとるため、サーバ400は、画像の内容によって転送データ削減手段を最適化する。
サーバ400から画像処理装置200へ、低遅延で安定的にデータを送信するには、送信対象のデータのサイズを極力小さくすることが望ましい。一方で、表示世界への臨場感や没入感など高いレベルでのユーザ体験を提供するには、解像度やフレームレートをある程度維持したり、圧縮率を上げないようにしたりすることが望ましく、ジレンマが生じる。両者のバランスを好適にとるため、サーバ400は、画像の内容によって転送データ削減手段を最適化する。
図26は、データサイズ削減手段を最適化する機能を有するサーバ400の機能ブロックの構成を示している。サーバ400は、画像生成部420、圧縮符号化部422、パケット化部424、および通信部426を含む。画像生成部420、パケット化部424、および通信部426は、図5、12で説明したのと同様の機能を有する。ここで画像生成部420は、送信対象の動画像をその場で描画する、すなわちそれまで存在していなかった映像を動的に描画する場合があることに留意する。
また各フレームに対応する複数の画像を送信する場合、圧縮符号化部422は図20、23で示した分割部440、第2符号化部444、送信対象調整部362などをさらに備えてもよい。圧縮符号化部422は、画像内容取得部450、通信状況取得部452、および圧縮符号化処理部454を備える。画像内容取得部450は、処理対象の動画像が表す内容に係る情報を取得する。
画像内容取得部450は例えば、画像生成部420が描画している画像の特徴をフレームごと、シーンの切り替わり時、動画像の処理開始時など所定のタイミングで画像生成部420から取得する。本実施の形態では基本的に、表示中の動画像をリアルタイムで生成したり取得したりしているため、画像内容取得部450はフレームごとなど細かい単位であっても、処理の負荷を増大させることなく内容に係る正確な情報を取得できる。
例えば画像内容取得部450は、シーンの切り替えタイミングか否か、フレームに表されている画像テクスチャの種類、特徴点の分布、奥行き情報、オブジェクトの量、3次元グラフィクスに用いているミップマップテクスチャの各レベルの使用量、LOD(Level Of Detail)、テッセレーションの各レベルの使用量、文字および記号の量、表されるシーンの種類などの情報を画像生成部420から得ることができる。
ここで画像テクスチャの種類とは、画像上でテクスチャにより表現される領域の種類であり、例えばエッジ領域、フラット領域、密度の高い領域、詳細な領域、群衆の領域などである。なおエッジとは、画像上での輝度値の変化の割合が所定値以上の箇所である。特徴点の分布とは、画像平面における特徴点やエッジの位置やエッジの強度、すなわち輝度値の変化の割合などを指す。上述した各種テクスチャ領域は3次元グラフィックスとして描画された結果である2次元画像において、どのようなテクスチャとなっているかを2次元的に判定する。したがって3次元グラフィックス生成に使っているテクスチャとは異なる。
奥行き情報は、各画素が表すオブジェクトまでの距離であり、3次元グラフィクスにおいてはZ値として得られる。またオブジェクトの量とは、椅子や車など表す対象物の数や画像平面に占める面積を指す。ミップマップテクスチャのレベルとは、オブジェクトの表面を表すテクスチャのデータを複数解像度で準備しておき、オブジェクトの距離、ひいては見かけ上のサイズによって適切な解像度のテクスチャを用いるミップマップの手法において、選択された解像度のレベルである。
LODおよびテッセレーションのレベルは、オブジェクトの距離、ひいては見かけ上のサイズに依存してポリゴンの数を調整することにより適切な詳細度で表現する技術における詳細度のレベルである。表されるシーンの種類とは、画像生成部420が実施しているゲームなどのコンテンツの出力上の状況やジャンルなどであり、例えばムービー画面、メニュー画面、設定画面、ローディング画面、主観視線描画、俯瞰視線描画、2次元ドット絵ゲーム、3次元描画ゲーム、ファーストパーソン・シューティングゲーム、レースゲーム、スポーツゲーム、アクションゲーム、シミュレーションゲーム、アドベンチャー・ノベルゲームなどの種別を指す。
画像内容取得部450は、それらの情報の少なくともいずれかを画像生成部420から取得する。なお画像内容取得部450および後述するスコアの算出機能は、画像生成部420に設けてもよい。具体的には画像生成部420で動作するソフトウェアフレームワークであるゲームエンジンなどがそれらの機能を実現してもよい。また画像内容取得部450は、画像処理装置200から送信される、ゲームなど動画像を規定するコンテンツに対するユーザ操作のタイミング、当該タイミングの間隔、ユーザ操作の内容、画像生成部420が把握するコンテンツの状況、および当該コンテンツで発生させるオーディオの状況、の少なくともいずれかを取得してもよい。
ユーザ操作のタイミングは、画像生成部420における動画像のフレーム描画のタイミングと異なる場合があるため、シーンの切り替わりの検出などに用いることにより、データサイズの調整手段や調整量の切り替えに利用できる。コンテンツの状況とは例えば、a)ユーザ操作が必要でコンテンツの処理内容に影響を与えるシーンであるか、b)ユーザ操作が必要ないムービーシーンであるか、c)ユーザ操作が必要ない、ムービーシーン以外のシーンであるか、d)ユーザ操作が必要だがコンテンツの本編でないシーンであるか、の少なくともいずれかを判別する情報を画像生成部420から取得する。
これにより、ユーザ操作への応答性を優先するか、画質を優先するか、といった観点でデータサイズの調整手段や調整量を最適化できる。またオーディオの状況とはオーディオの有無、オーディオのチャネル数、バックグランドミュージックの内容、効果音(SE)の内容、の少なくともいずれかを判別する情報であり、図示しないオーディオ生成装置から取得する。
あるいは画像内容取得部450は、画像生成部420が生成した画像を自らが解析することにより、上述のような情報の少なくともいずれかを取得してもよい。この場合も、解析処理のタイミングは特に限定されない。さらに画像内容取得部450は、サーバ400が動画像の配信を開始する際などに、その書誌情報を図示しない記憶装置などから読み出すことにより、上述のシーンの種類などを取得してもよい。
画像内容取得部450はまた、圧縮符号化処理部454が行う圧縮符号化処理において取得した情報を利用して、動画像の内容に係る情報を取得してもよい。例えば圧縮符号化処理において動き補償を実施する場合、オプティカルフローの量、すなわちどの方向に画素が動いているかや、画素領域が動く速さなどが得られる。モーションエスティメーション(ME)によっても、画像上の矩形領域がどの方向に動いているか、動いている場合はその速度などが得られる。
さらに圧縮符号化処理においては、圧縮符号化処理部454が処理に用いる符号化ユニットの割り当て状況や、イントラフレームを挿入するタイミングなども得られる。後者は動画におけるシーンの切り替わりのタイミングを特定する根拠となる。なお画像内容取得部450は後述の「シーンの切り替わりタイミングにおけるスコア制御規則」に示したようなパラメータのいずれを取得してもよい。画像内容取得部450は、これらの情報の少なくともいずれかを圧縮符号化処理部454から取得してもよいし、自らが画像を解析することにより必要な情報を取得してもよい。この場合も取得タイミングは特に限定されない。
通信状況取得部452は、図23で説明したとおり画像処理装置200との通信状況を所定のレートで取得する。圧縮符号化処理部454は、通信状況の変化に応じて、動画像が表す内容に基づき決定した手段により、動画像のデータサイズが適切になるように圧縮符号化する。具体的には圧縮符号化処理部454は、動画像のフレームレート、解像度、および量子化パラメータの少なくともいずれかを変化させることにより、通信状況によって定まるデータサイズとなるようにする。基本的には、画像の内容を多角的な観点から評価し、それに対し最適な(フレームレート、解像度、量子化パラメータ)の数値の組み合わせを決定する。
この際、圧縮符号化処理部454は、限られた通信帯域や処理リソースの条件下で、ユーザ体験を最良にするために優先すべき事項に基づき、調整対象の手段や調整量を決定する。例えば、像の動きが速く、ユーザ入力に対する即座の連動性も求められる、ファーストパーソン・シューティングのシーンや格闘アクションのシーン、あるいは仮想現実や拡張現実を実現する場合などは、フレームレートを優先することが望ましい。緻密なオブジェクトが多く、文字や記号、標識、ドット絵を読み取ることが必要なシーンでは、解像度を優先することが望ましい。
像の動きが遅いが、絵としてのコントラストやダイナミックレンジが高く、階調表現において圧縮破綻が少なく高画質であることが必要なシーンは、量子化のクオリティを優先することが望ましい。このように画像の内容によって優先すべき事項が異なるため、圧縮符号化処理部454はそれを踏まえたうえで、通信状況が悪化してもユーザ体験が可能な限り維持される手段でデータサイズが適切になるようにする。
動画像の内容から調整手段と調整量を決定する規則は、テーブルあるいは計算モデルなどの形式で前もって準備し、圧縮符号化処理部454の内部で保持しておく。ただし動画像の内容を示す情報は上述のとおり多岐にわたるため、それらを総合的に見て複数の調整手段を最適化する必要がある。そこで圧縮符号化処理部454は、次のような規則の少なくともいずれかにより、調整手段と調整量を決定するためのスコアを導出する。
1.コンテンツの状況に基づくバランスの決定規則
コンテンツの出力上の状況が、上述したa~dのいずれであるかによって、フレームレート、解像度、および量子化のクオリティに与える重みのバランス(優先順位)を決定する。具体的には、a)ユーザ操作が必要でコンテンツの処理内容に影響を与えるシーンの場合、以下に述べるスコアの決定規則の少なくともいずれかに従う。b)ユーザ操作が必要ないムービーシーンの場合は、量子化のクオリティまたは解像度を、フレームレートより優先する。c)ユーザ操作が必要ない、ムービーシーン以外のシーンの場合は、解像度またはフレームレートを量子化のクオリティより優先する。d)ユーザ操作が必要だがコンテンツの本編でないシーンの場合は、解像度または量子化のクオリティをフレームレートより優先する。
コンテンツの出力上の状況が、上述したa~dのいずれであるかによって、フレームレート、解像度、および量子化のクオリティに与える重みのバランス(優先順位)を決定する。具体的には、a)ユーザ操作が必要でコンテンツの処理内容に影響を与えるシーンの場合、以下に述べるスコアの決定規則の少なくともいずれかに従う。b)ユーザ操作が必要ないムービーシーンの場合は、量子化のクオリティまたは解像度を、フレームレートより優先する。c)ユーザ操作が必要ない、ムービーシーン以外のシーンの場合は、解像度またはフレームレートを量子化のクオリティより優先する。d)ユーザ操作が必要だがコンテンツの本編でないシーンの場合は、解像度または量子化のクオリティをフレームレートより優先する。
2.コンテンツのジャンルに基づくバランスの決定規則
上記a、すなわち、ユーザ操作が必要でコンテンツの処理内容に影響を与えるシーンの場合、実施しているコンテンツのジャンルを記憶装置などから読み出し、別途テーブルとして準備した、各ジャンルにて一般的に推奨される解像度、フレームレート、量子化パラメータの重みを表すスコアのバランスを参照する。なお以後述べる複数の規則を並列に適用し、それらの結果を総合判定して最終的に用いるスコアを決定する場合も、本規則を初期値として用いてもよい。
上記a、すなわち、ユーザ操作が必要でコンテンツの処理内容に影響を与えるシーンの場合、実施しているコンテンツのジャンルを記憶装置などから読み出し、別途テーブルとして準備した、各ジャンルにて一般的に推奨される解像度、フレームレート、量子化パラメータの重みを表すスコアのバランスを参照する。なお以後述べる複数の規則を並列に適用し、それらの結果を総合判定して最終的に用いるスコアを決定する場合も、本規則を初期値として用いてもよい。
3.画像上の像の大きさに基づくスコア決定規則
LOD、ミップマップテクスチャ、テッセレーション、オブジェクトの大きさを参照し、所定値より高精細なオブジェクトがあり、かつ、画像全体においてそれが占める面積の割合が大きい(ビュースクリーンの近くに大きな高精細オブジェクトがある)ほど量子化のクオリティと解像度の重みを表すスコアを高くする。
LOD、ミップマップテクスチャ、テッセレーション、オブジェクトの大きさを参照し、所定値より高精細なオブジェクトがあり、かつ、画像全体においてそれが占める面積の割合が大きい(ビュースクリーンの近くに大きな高精細オブジェクトがある)ほど量子化のクオリティと解像度の重みを表すスコアを高くする。
4.オブジェクトの細かさに基づくスコア決定規則
所定値より小さなオブジェクト、緻密な文字や記号・標識・ドット絵の発生量が多く、画像全体においてそれらが占める面積の割合が所定値より大きい(ビュースクリーンの近くに大きな高精細オブジェクトがない)ほど解像度の重みを表すスコアを高くする。
所定値より小さなオブジェクト、緻密な文字や記号・標識・ドット絵の発生量が多く、画像全体においてそれらが占める面積の割合が所定値より大きい(ビュースクリーンの近くに大きな高精細オブジェクトがない)ほど解像度の重みを表すスコアを高くする。
5.コントラスト、ダイナミックレンジに基づくスコア決定規則
画素値の分布に基づくコントラストや、輝度の分布に基づくダイナミックレンジを参照し、所定基準より高コントラストの領域や高ダイナミックレンジの領域の、画像全体に占める面積の割合が大きいほど、量子化のクオリティの重みを表すスコアを高くする。
6.像の動きに基づくスコア決定規則
オブジェクトの像の移動量、オプティカルフロー、モーションエスティメーションの大きさと量を参照し、移動量が所定値より大きいオブジェクトの量、および画像全体においてそれらが占める面積の割合が大きいほど、フレームレートの重みを表すスコアを高くする。
画素値の分布に基づくコントラストや、輝度の分布に基づくダイナミックレンジを参照し、所定基準より高コントラストの領域や高ダイナミックレンジの領域の、画像全体に占める面積の割合が大きいほど、量子化のクオリティの重みを表すスコアを高くする。
6.像の動きに基づくスコア決定規則
オブジェクトの像の移動量、オプティカルフロー、モーションエスティメーションの大きさと量を参照し、移動量が所定値より大きいオブジェクトの量、および画像全体においてそれらが占める面積の割合が大きいほど、フレームレートの重みを表すスコアを高くする。
7.テクスチャの種類に基づくスコア決定規則
画像平面を分割してなる各単位領域の画像テクスチャの種類を集計し、画像全体において密度の高い領域、詳細な領域、群衆の領域の占める面積の割合が大きいほど解像度の重みを表すスコアを高くする。
画像平面を分割してなる各単位領域の画像テクスチャの種類を集計し、画像全体において密度の高い領域、詳細な領域、群衆の領域の占める面積の割合が大きいほど解像度の重みを表すスコアを高くする。
8.シーンの切り替わりタイミングにおけるスコア制御規則
画像生成部420から切り替わりのタイミングについての情報を得る。もしくはオブジェクト量、特徴点、エッジ、オプティカルフロー、モーションエスティメーション、画素コントラスト、輝度のダイナミックレンジ、オーディオの有無、オーディオのチャネル数、オーディオのモードのいずれかが、時系列方向で急変したりリセットされたりしたときにスコアを切り替える。この際、少なくとも2フレーム以上を参照する。なお圧縮符号化処理部454は、圧縮符号化においてイントラフレームとするフレームの必要性を把握するため、前フレームとの相関性に基づきシーンの切り替わりを検出することもできる。
画像生成部420から切り替わりのタイミングについての情報を得る。もしくはオブジェクト量、特徴点、エッジ、オプティカルフロー、モーションエスティメーション、画素コントラスト、輝度のダイナミックレンジ、オーディオの有無、オーディオのチャネル数、オーディオのモードのいずれかが、時系列方向で急変したりリセットされたりしたときにスコアを切り替える。この際、少なくとも2フレーム以上を参照する。なお圧縮符号化処理部454は、圧縮符号化においてイントラフレームとするフレームの必要性を把握するため、前フレームとの相関性に基づきシーンの切り替わりを検出することもできる。
このとき従来方式の圧縮符号化処理部454による判定のみによらず、上述したスコア決定規則も併用し、切り替わりの検出精度を上げてよい。このようにして検出したシーンの切り替わりにはイントラフレームが必要となり、データサイズがサージ的に増加しやすいため、量子化パラメータと解像度の重みを表すスコアを、対象のフレームおよび後続の所定数のフレームで低減させる。またシーンが速やかに切り替わることを重視し、シーンの切り替わりまではフレームレートの重みを表すスコアを高くし、切り替わり後は当該制約を外してもよい。
9.ユーザ操作のタイミングに基づくスコア決定規則
画像生成部420が実施しているゲームなどのコンテンツにおいて、ユーザ操作の間隔が長いほどフレームレートを下げやすいため、フレームレートの重みを表すスコアを低くする(ユーザ操作の間隔が短いほど他のパラメータの重みを表すスコアを低くする)。
画像生成部420が実施しているゲームなどのコンテンツにおいて、ユーザ操作の間隔が長いほどフレームレートを下げやすいため、フレームレートの重みを表すスコアを低くする(ユーザ操作の間隔が短いほど他のパラメータの重みを表すスコアを低くする)。
10.ユーザ操作の内容に基づくスコア決定規則
画像生成部420が実施しているゲームなどのコンテンツにおいて、直前の所定期間におけるユーザ操作の変化量が大きい場合、ユーザはコンテンツからの高い応答性を期待していると推定される。したがって当該変化量が大きいほど、フレームレートの重みを表すスコアを高くする。操作がなされていても変化量が小さい場合は、当該スコアのレベルを一段階下げる。
画像生成部420が実施しているゲームなどのコンテンツにおいて、直前の所定期間におけるユーザ操作の変化量が大きい場合、ユーザはコンテンツからの高い応答性を期待していると推定される。したがって当該変化量が大きいほど、フレームレートの重みを表すスコアを高くする。操作がなされていても変化量が小さい場合は、当該スコアのレベルを一段階下げる。
なおユーザ操作は、ゲームコントローラ、キーボード、マウスなど図示しない入力装置が取得した入力情報、ヘッドマウントディスプレイ100の位置、姿勢、動き、ヘッドマウントディスプレイ100のカメラまたは図示しない外部カメラが撮影した画像を解析した結果に基づくジェスチャ(ハンドサイン)指示、図示しないマイクが取得した音声指示などを画像処理装置200から取得する。
11.ユーザの操作対象のオブジェクトに対するスコア決定規則
直前の所定期間においてユーザ操作が反映されると見なされる所定の基準を満たすオブジェクトが画面に存在するとき、他の決定規則により導出されたスコアを引き上げる方向に調整する。ここでユーザは一人でもよいし、同じ画像処理装置200を共有する、あるいは同じサーバ400に接続された異なる画像処理装置200を有する複数人でもよい。ユーザ操作が反映される画面内のオブジェクトとは、ユーザの操作対象である、人、アバター、ロボット、乗り物や機械などのオブジェクトや、そのような主たるオブジェクトと対峙するオブジェクト、ゲームにおけるプレイヤのライフステータス、保有武器ステータス、ゲームスコアなど、プレイヤに情報を通知することが目的のインジケータを含む単位領域など、通常はユーザが最も注目している対象である。
直前の所定期間においてユーザ操作が反映されると見なされる所定の基準を満たすオブジェクトが画面に存在するとき、他の決定規則により導出されたスコアを引き上げる方向に調整する。ここでユーザは一人でもよいし、同じ画像処理装置200を共有する、あるいは同じサーバ400に接続された異なる画像処理装置200を有する複数人でもよい。ユーザ操作が反映される画面内のオブジェクトとは、ユーザの操作対象である、人、アバター、ロボット、乗り物や機械などのオブジェクトや、そのような主たるオブジェクトと対峙するオブジェクト、ゲームにおけるプレイヤのライフステータス、保有武器ステータス、ゲームスコアなど、プレイヤに情報を通知することが目的のインジケータを含む単位領域など、通常はユーザが最も注目している対象である。
ユーザの操作内容と画面内のオブジェクトとの関連性を示す情報は、原則として画像生成部420から取得する。画像内容取得部450が当該情報を推測してもよい。そのようなオブジェクトが所定の基準により検出されたら、圧縮符号化処理部454は例えば、上記3~9、10のスコア決定において、スコアをその他の場合より引き上げる。すなわちこの決定規則は、ユーザの操作対象のオブジェクトについて、優先的に上記決定規則を適用させる作用を持つ。例えば3の、像の大きさに基づく画面全体のスコアの総括により、量子化のクオリティと解像度の重みが高くなる基準スコアに僅かに不足していたら、圧縮符号化処理部454は当該基準までスコアを引き上げる。
6の、像の動きに基づく画面全体のスコアの総括により、フレームレートの重みが高くなる基準スコアに僅かに不足していたら、圧縮符号化処理部454は当該基準までスコアを引き上げる。8の、シーンの切り替わりタイミングについて、ユーザの操作対象のオブジェクトの領域に急激な変化があったにも関わらず、画面全体のスコアの総括により、イントラフレームを挟むと判定するスコアに僅かに不足していたら、圧縮符号化処理部454は当該基準までスコアを引き上げる。
12.調整対象と調整量の切り替え頻度の制御
直前の所定期間に採用された(フレームレート、解像度、量子化パラメータ)の履歴を参照し、ユーザ体験の観点から切り替えが許容範囲となるように、各パラメータの重みを表すスコアを調整する。「許容範囲」は、あらかじめ定義したテーブルやモデルに基づいて決定する。
直前の所定期間に採用された(フレームレート、解像度、量子化パラメータ)の履歴を参照し、ユーザ体験の観点から切り替えが許容範囲となるように、各パラメータの重みを表すスコアを調整する。「許容範囲」は、あらかじめ定義したテーブルやモデルに基づいて決定する。
圧縮符号化処理部454は、以上の規則のうちいずれかにより、あるいは複数の規則で得られたスコアの合計値により、フレームレート、解像度、量子化パラメータの最終的な重みを総合的に決定する。なお圧縮符号化処理部454は、上記1~8の規則において、オブジェクトの位置、投影される順序、大きさ、ビュースクリーンからの相対距離を把握するためにZ値を参照してもよい。
なお上述した決定規則はそれ自体を最適化していくことが望ましい。そこで、過去の様々なケースにおける調整結果を収集しながら、機械学習または深層学習によって決定規則を最適化していってもよい。ここで機械学習を行う場合、最適化の対象は決定規則を定義したテーブルでもよいし計算モデルでもよい。深層学習の場合は、計算モデルを最適化する。
これらの学習技術においては、例えば、人手によって作成されたスコアデータベースや、ユーザによるゲームプレイ体感などを教師データとする。また主観描画のケースを計算モデルの制約条件としたり、画質を示すPSNR(Peak Signal-to-Noise Ratio)やSSIM(Structural Similarity)、パラメータ切り替え頻度、時系列スムースネスなどを指標としたりして学習させる。この例でパラメータの切り替え頻度は、解像度やフレームレートを小刻みに切り替え過ぎるとユーザ体験が却って悪化することを考慮して指標に加えている。
このようにして圧縮符号化処理部454はフレームレート、解像度、および量子化のクオリティのそれぞれに与える重みを表す最終的なスコアを導出し、記通信状況に応じたデータサイズが得られ、かつ前記スコアが表すバランスに従うように、(フレームレート、解像度、量子化パラメータ)の値の組み合わせを決定する。より具体的には圧縮符号化処理部454は、通信状況に応じて決定した、目標とするデータサイズを満たすように各値の組み合わせを予測計算するが、その際に重みが高いパラメータをできるだけ下げないように制御する。
最適な組み合わせを決定したら、圧縮符号化処理部454は、それに応じてデータを圧縮符号化する。例えばフレームレートを低下させる場合、圧縮符号化処理部454は画像生成部420が生成したフレームを、単位時間当たり所定量だけ間引く。解像度を低下させる場合、圧縮符号化処理部454は画像生成部420が生成した画像に対し、ニアレストネイバー法、バイリニア法、バイキュービック法など既存の演算を施す。
また圧縮符号化処理部454は、調整された量子化パラメータにより、画像生成部420が生成した画像を適切な圧縮率で圧縮符号化する。圧縮符号化処理部454は、これらの処理をいずれも、画像生成部420が生成したフレームの部分画像単位で実施し、パケット化部424に順次供給する。この際、そのフレームレート、解像度、量子化パラメータのデータを対応づけて供給することにより、パケット化部424はそれらのデータとともに部分画像のデータをパケット化する。
これにより、これまで述べたのと同様に、圧縮符号化された部分画像のデータが通信部426を介して画像処理装置200に送信される。なお圧縮符号化処理部454がデータサイズの調整手段や調整量を適正化する単位は、圧縮符号化の単位である部分画像の単位でもよいし、1フレーム単位や、所定数のフレーム単位などでもよい。画像処理装置200の復号伸張部242は、画像データとともに送信された量子化パラメータに基づき逆量子化を行う。
また解像度やフレームレートが本来の値より低減されている場合は、接続された表示装置の画面サイズに合致したサイズとしたり、同じフレームを数回出力したりして画像を表示させる。このような、解像度やフレームレートの変化に応じた表示処理の手順には一般的な技術を用いることができる。なおサーバ400の圧縮符号化部422が解像度を低下させた場合、サーバ400からは、当該低解像度の画像のみでは特定不能な付加データを一緒に送信してもよい。
ここで付加データとは例えば、画像生成部420が生成した元の画像における特徴量や、圧縮符号化部422が圧縮符号化時に決定した各種パラメータを含む。特徴量は、元の画像の特徴点、エッジ強度、元の画像に含まれる各画素の奥行き、テクスチャの種類、オプティカルフロー、モーションエスティメーションの情報の少なくともいずれかを含んでよい。あるいは付加データは、圧縮符号化部422が実施した物体認識処理により特定された、元の画像が表す物体を示すデータを含んでもよい。この場合、画像処理装置200の復号伸張部242は、送信された画像データと付加データに基づいて、解像度の高い表示画像を正確に生成する。なおこの特徴は、特願2019-086286号として本発明者により出願されている。
図27~31は、動画像の内容に応じてスコアを決定する事例を示している。図27は上記3の、画像上の像の大きさに基づくスコア決定規則を適用する例を示している。図示する3つの画像は、同じ動画像の異なるフレームを表している。どのフレームにおいても、同じオブジェクトモデルを用いたオブジェクト152a、152b、152cが描画されている。オブジェクトモデルは実際には、ポリゴンとテクスチャで構成される3次元の情報を有する。
画像生成部420は、オブジェクトモデルを描画対象の空間に配置し、それをビュースクリーンに射影することでオブジェクト152a、152b、152cなどを描画する。この際、ビュースクリーンからの距離によって、オブジェクト152a、152b、152cの見かけ上のサイズが変化するため、画像生成部420は適宜、描画に用いるポリゴンの数やテクスチャの解像度を調整する。
例えばオブジェクトモデル150が100万個のポリゴンで定義されているのに対し、ビュースクリーンから離れているオブジェクト152cは1万個のポリゴンで、ビュースクリーンの近くにいるオブジェクト152aは10万個のポリゴンで、それぞれ描画される。またテクスチャの解像度はオブジェクト152a>オブジェクト152b>オブジェクト152cとなる。画像内容取得部450はそのような情報、すなわちビュースクリーンから見たオブジェクトのLOD、ミップマップテクスチャのレベル、テッセレーションのレベル、像の大きさなどを、画像が表す内容に係る情報として画像生成部420から取得する。
そして圧縮符号化処理部454は、通信状況に対応するデータサイズとするため、当該画像が表す内容に係る情報に基づきフレームレート、解像度、量子化パラメータを調整する。すなわちシーンに登場する全オブジェクトについて、オブジェクトのLOD、ミップマップテクスチャのレベル、テッセレーションのレベルと、像のサイズを集計し、調整対象のパラメータに与えるスコアを計算する。図示する例では左の画像ほど、高精細に描かれたオブジェクトがあり、かつ画像全体における当該オブジェクトの占める面積の割合が大きい(全体として人やアバターが高精細に描画されている)ため、量子化のクオリティと解像度の重みを表すスコアを高くする。
図28は上記4の、オブジェクトの細かさに基づくスコア決定規則を適用する例を示している。図示する2つの画像は、同じ動画像の異なるフレームを表している。それぞれは、同じ風景をズームイン・ズームアウトしたフレームである。画像が表す内容としてオブジェクトの像の大きさと量を集計すると、左の画像ほど小さなオブジェクトの量が多く、かつ画像全体においてそれらが占める面積の割合が大きい(全体として緻密なオブジェクト、文字や記号、標識、ドット絵が多い)。したがってこの例では圧縮符号化処理部454は、左の画像ほど解像度の重みを表すスコアを高くする。
図29は上記5の、コントラスト、ダイナミックレンジに基づくスコア決定規則を適用する例を示している。画像が表す内容として、画像平面を所定サイズに分割してなる単位領域ごとのコントラストやダイナミックレンジを集計すると、左の画像ほど画像全体に占める高コントラストあるいは高ダイナミックレンジの領域の面積が大きい。したがってこの例では圧縮符号化処理部454は、左の画像ほど量子化のクオリティの重みを表すスコアを高くする。
図30は上記6の、像の動きに基づくスコア決定規則を適用する例を示している。図示する2つの画像は、同じ動画像の異なるフレームを表している。画像が表す内容として、画像平面でのオブジェクトの移動量(ベクトル)の絶対値や、画像平面を所定サイズに分割してなる単位領域ごとのオプティカルフローやモーションエスティメーションの大きさと量を集計する。すると動きの大きいオブジェクト152d~152gの存在により、左の画像ほど移動量が大きいオブジェクトが多く、かつ画像全体における面積の割合が大きい、すなわち画像全体における移動量(ベクトル)の絶対値の合計が大きい。したがってこの例では圧縮符号化処理部454は、左の画像ほどフレームレートの重みを表すスコアを高くする。
図31は上記7の、テクスチャの種類に基づくスコア決定規則を適用する例を示している。図示する2つの画像は、同じ動画像の異なるフレームを表している。画像が表す内容として、画像平面を所定サイズに分割してなる単位領域ごとの画像テクスチャの種類を集計すると、オブジェクト152h~152jとオブジェクト152kの差により、左の画像ほど画像全体における密度の高い領域、詳細な領域、群衆の領域の占める面積の割合が大きい。したがってこの例では圧縮符号化処理部454は、左の画像ほど解像度の重みを表すスコアを高くする。
図32は、サーバ400が通信状況に応じてデータサイズを調整する処理手順を示すフローチャートである。このフローチャートは、ユーザが画像処理装置200に対し、プレイしたいゲームや鑑賞したい動画などを選択することによって開始される。これに対しサーバ400の通信状況取得部452は、画像処理装置200へのストリーミングに用いる通信の状況取得を開始する(S50)。
通信状況は上述のとおり、画像処理装置200との信号送受によって判明するため、通信状況取得部452は通信部426から必要な情報を取得する。具体的には通信状況取得部452は、画像処理装置200へ送信した画像データの到達遅延時間や、画像データの到達率を取得し、それらの情報から、通信状況を表す指標を導出する。導出規則については前もって設定しておく。一方、画像生成部420は、動画像の生成を開始する(S52)。ただし画像生成部420は、コンピュータグラフィクスを描画するのに限らず、撮影画像をカメラから取得してもよい。
一方、圧縮符号化部422の画像内容取得部450は、動画像の内容に係る情報の取得を開始する(S54)。上述のとおり画像内容取得部450は、画像生成部420、圧縮符号化処理部454から情報を取得したり、自らが画像を解析したりすることにより、所定の情報を任意のタイミングで取得する。次に圧縮符号化処理部454は、通信状況取得部452が取得した直近の通信状況に応じて、画像データの送信サイズを決定する(S56)。
そして圧縮符号化処理部454はまず、その時点で画像内容取得部450が取得している動画像の内容から、上述した規則の少なくともいずれかに従いスコアを取得する(S58)。次に圧縮符号化処理部454は、得られたスコアに基づき、データサイズの調整手段や調整量を導出する(S60)。すなわちスコアを合計するなどして、フレームレート、解像度、量子化パラメータに対する総合的な重みを算出し、当該重みに従うバランスで、目標とするデータサイズに合うように各パラメータの値を決定する。
動画像の内容を示すパラメータからスコアを得る手段、および、スコアから調整手段や調整量を導出する手段は、それぞれの対応づけを表すテーブルを準備してもよいし、導出規則をモデル化しプログラムなどで実現してもよい。この際、通信状況のレベルによって、調整手段や調整量が変化するようにしてもよい。なお通信状況が安定しており、送信可能なデータサイズが変化しない場合も、圧縮符号化処理部454は動画像の内容に対応するスコアを継続して導出し、送信サイズは同じであってもフレームレート、解像度、量子化パラメータの各値の組み合わせを変化させてもよい。
異常状態を除き送信を継続できる間は通信状況に特定のしきい値を設けず、通信状況に合わせてデータの送信サイズを多段階で決定し、それに合わせてフレームレート、解像度、量子化パラメータの組み合わせを調整する。また上述のとおり、導出規則を定義するテーブルや計算モデルは、機械学習や深層学習を用いて随時最適化していってもよい。なお図示する手順では、S58で動画の内容からスコア値を取得し、それに基づきS60で調整手段や調整量を求める2段階の処理としたが、動画の内容から直接、調整手段や調整量が求められるように決定規則を準備してもよい。
圧縮符号化処理部454はこのようにして決定した調整手段や調整量によって、データサイズを調整しながら部分画像単位で圧縮符号化を行い、当該画像のデータを、順次パケット化部424に供給する(S62)。この際、解像度、フレームレート、量子化パラメータの情報も対応づけて供給する。パケット化部424はそれをパケット化し、通信部426から画像処理装置200に送信する。なお圧縮符号化処理部454は、スコアの取得と調整手段や調整量の導出を、圧縮符号化処理のバックグラウンドで行ってもよい。また実際には、S56におけるデータサイズの決定頻度と、S62における部分画像単位での圧縮符号化および送信の頻度は、同じであっても異なっていてもよい。
これにより圧縮符号化処理部454は、データサイズの調整に用いる手段および調整量を、所定の時間間隔で再設定してもよい。画像処理装置200に対するユーザ操作などにより、画像の送信を停止する必要がなければ(S64のN)、後続のフレームについて、必要に応じて調整手段や調整量を変化させながら圧縮符号化と送信の処理を繰り返す(S56、S58、S60、S62)。ただし上記11のように圧縮符号化処理部454は、直前の所定期間における調整手段や調整量の変化の履歴を参照したうえ、ユーザ体験が悪化しないような許容範囲内で調整する。画像の送信を停止する必要が生じたら、サーバ400は全ての処理を終了させる(S64のY)。
以上述べた、データサイズ削減手段の最適化によれば、サーバ400から画像処理装置200へのストリーミングに用いる通信の状況に応じて、送信している動画像が表す内容に係る情報に適した手段および量で、画像のデータサイズを調整する。ここで、解像度、フレームレート、量子化パラメータといった複数の調整手段の組み合わせで調整を行うことにより、1つのパラメータのみを調整するより、とり得る状態変化のバリエーションを格段に増やすことができる。結果として、可能な限りユーザが許容できる範囲での画質の劣化に抑えることができる。
また動画像の内容に係る情報として、リアルタイムで画像を生成している画像生成部や、圧縮符号化している圧縮符号化処理部から情報を得ることにより、より正確かつ詳細なデータに基づき対策を講じることができる。ここで画像生成部や圧縮符号化処理部は通常の処理を行っていればよいため、処理の負荷を増大させることなく、各時点で最適な方法でデータサイズの調整を行える。
7.領域ごとの圧縮率制御
7-1.動画像が表す内容に基づく制御
上記6では、動画像が表す内容に係る各種情報に基づき、フレームを最小単位として解像度、フレームレート、量子化パラメータの組み合わせを調整することによりデータサイズを制御した。一方、表示された画像中でユーザが注目している領域は限定されるため、当該領域により多くの通信帯域を割り当てることにより、同じ条件下でもユーザの体感画質を向上させることができる。
7-1.動画像が表す内容に基づく制御
上記6では、動画像が表す内容に係る各種情報に基づき、フレームを最小単位として解像度、フレームレート、量子化パラメータの組み合わせを調整することによりデータサイズを制御した。一方、表示された画像中でユーザが注目している領域は限定されるため、当該領域により多くの通信帯域を割り当てることにより、同じ条件下でもユーザの体感画質を向上させることができる。
図33は、動画像が表す内容に基づき、フレーム上の領域によって圧縮率を変化させる機能を有するサーバ400の機能ブロックの構成を示している。サーバ400は、画像生成部420、圧縮符号化部422、パケット化部424、および通信部426を含む。画像生成部420、パケット化部424、および通信部426は、図5、16、24で説明したのと同様の機能を有する。上述のとおり画像生成部420は、送信対象の動画像をその場で描画する、すなわちそれまで存在していなかった映像を動的に描画する場合があることに留意する。
また各フレームに対応する複数の画像を送信する場合、圧縮符号化部422は図20、23で示した分割部440、第2符号化部444、送信対象調整部362などをさらに備えてもよい。圧縮符号化部422は、画像内容取得部450、注目度推定部460、通信状況取得部462、および圧縮符号化処理部464を備える。画像内容取得部450は図26で説明したように、処理対象の動画像が表す内容に係る情報を、画像処理装置200、画像生成部420、圧縮符号化処理部464から取得するか、自らが画像解析を行うことにより取得する。
注目度推定部460は、動画像が表す内容に係る情報に基づき、動画像のフレーム平面を分割してなる単位領域ごとに、表される内容に応じたユーザの注目度を推定する。ここで注目度は、ユーザが注目している度合いを示す数値などの指標である。例えば主たるオブジェクトが写っている領域や、文字が表されている領域などを含む単位領域については高い注目度が推定される。このため画像内容取得部450は、図26について例示した動画像の内容に係る情報に加え、画像に表されるオブジェクトの種類やその位置に係る情報も取得してよい。
当該情報は、画像内容取得部450自らが画像認識処理を実行することにより取得してもよいし、画像生成部420などから画像描画の結果として通知を受けてもよい。前者の場合、画像内容取得部450は、取得済みのオプティカルフロー、モーションエスティメーション、符号化ユニットの割り当て状況、シーンの切り替わりのタイミングか否か、フレームに表されている画像テクスチャの種類、特徴点の分布、奥行き情報などの少なくともいずれかを利用して画像認識を行ったり、認識したオブジェクトの注目度を推定したりしてよい。
通信状況取得部462は、図23、26の通信状況取得部452と同様の機能を有する。圧縮符号化処理部464は、注目度推定部460が推定した注目度の分布に基づき、画像平面で圧縮率を異ならせたうえ画像データを圧縮符号化する。この際、圧縮符号化処理部464は、注目度、データ伝送に用いることのできる通信帯域幅、フレームレート、および解像度の組み合わせに基づき、フレーム平面における圧縮率、ひいては量子化パラメータの分布を決定する。
圧縮符号化処理部464は定性的には、高い注目度が推定される単位量域については量子化パラメータの値を下げることにより圧縮率を下げ、より多くのビットレートを割り当てる。ただし推定される注目度の高さのみを基準として量子化パラメータを決定すると、利用できる通信帯域に対し必要以上に圧縮してしまったり、圧縮が不十分であったりすることが起こり得る。
そこで上述のとおり圧縮符号化処理部464は、フレームレート、および解像度を加味したうえで、フレーム全体のデータサイズが、利用できる通信帯域に見合うように、画像平面における圧縮率の分布を決定する。ただし圧縮符号化処理部464はこれまで述べたように、画像生成部420が生成したフレームの部分画像単位で圧縮符号化を実施する。ここで部分画像は、例えば注目度を推定する単位領域の整数倍の大きさとする。圧縮符号化処理部464は、単位領域ごとに量子化パラメータを決定し、部分画像が内包する単位領域ごとに、決定した量子化パラメータを用いて圧縮符号化する。この際、圧縮符号化処理部464は、部分画像ごとに合計のデータサイズを把握する。
圧縮符号化処理部464は、そのようにして圧縮符号化した部分画像のデータを、パケット化部424に順次供給する。この際、当該部分画像の単位領域に適用した量子化パラメータを対応づけて供給することにより、パケット化部424はそれらのデータとともに部分画像のデータをパケット化する。これにより、これまで述べたのと同様に、圧縮符号化された部分画像のデータが通信部426を介して画像処理装置200に送信される。画像処理装置200の復号伸張部242は、画像データとともに送信された量子化パラメータに基づき逆量子化を行う。
図34は、注目度推定部460が画像平面における注目度の分布を推定する処理を説明するための図である。画像160は動画像のデータのうち、あるフレームを表している。画像160にはオブジェクト162a、162bやGUI162cが表されている。注目度推定部460は当該画像平面を、破線で示すように縦横双方向に所定間隔で区切ることにより単位領域(例えば単位領域164)を形成する。そして各単位領域に対し、注目度を推定する。
図では、一点鎖線で囲まれた、オブジェクト162a、162bが表される単位領域の集合166a、166bに対し、他の単位領域より高い注目度が推定されることを示している。ただし実際には、より多くのオブジェクトが表されていることを踏まえ、上記「6.データサイズ削減手段の最適化」において例示したような様々な情報に基づき注目度を推定する。また注目度は0または1、すなわち注目されていないか注目されているかの2値でもよいし、より多くの階調で表してもよい。例えば注目度推定部460は、次のような規則の少なくともいずれかにより、注目度を表すスコアを導出し、その合計によって単位領域ごとの注目度を総合的に決定してもよい。
1.オブジェクトの重要性に基づくスコア決定規則
ユーザの操作対象である、人、アバター、ロボット、乗り物や機械などのオブジェクトや、そのような主たるオブジェクトと対峙するオブジェクト、ゲームにおけるプレイヤのライフステータス、保有武器ステータス、ゲームスコアなど、プレイヤに情報を通知することが目的のインジケータを含む単位領域など、重要性の高さに対する条件を満たすオブジェクトを含む単位領域を他より高いスコアとする。それらのオブジェクトは、画像内容取得部450が、画像生成部420から情報を得るか、画像認識で特定したオブジェクトとユーザ操作との連動性から推定する。なおユーザは一人でもよいし、同じ画像処理装置200を共有する、あるいは同じサーバ400に接続された異なる画像処理装置200を有する複数人でもよい。
ユーザの操作対象である、人、アバター、ロボット、乗り物や機械などのオブジェクトや、そのような主たるオブジェクトと対峙するオブジェクト、ゲームにおけるプレイヤのライフステータス、保有武器ステータス、ゲームスコアなど、プレイヤに情報を通知することが目的のインジケータを含む単位領域など、重要性の高さに対する条件を満たすオブジェクトを含む単位領域を他より高いスコアとする。それらのオブジェクトは、画像内容取得部450が、画像生成部420から情報を得るか、画像認識で特定したオブジェクトとユーザ操作との連動性から推定する。なおユーザは一人でもよいし、同じ画像処理装置200を共有する、あるいは同じサーバ400に接続された異なる画像処理装置200を有する複数人でもよい。
2.オブジェクトの像の面積割合に基づくスコア決定規則
人や、それに類する特徴を有するアバター、ロボットなどのオブジェクトが画像全体に占める面積の割合が大きいほど、それを含む単位領域を他より高いスコアとする。それらのオブジェクトは、画像内容取得部450が、画像生成部420から情報を得るか、画像認識で特定する。画像認識においては一般的な顔検出アルゴリズムなどを用いてよい。例えば、目鼻口の特徴量を示す位置が、T字型で相対的に位置する箇所を画像内から検索することで顔を検出する。
人や、それに類する特徴を有するアバター、ロボットなどのオブジェクトが画像全体に占める面積の割合が大きいほど、それを含む単位領域を他より高いスコアとする。それらのオブジェクトは、画像内容取得部450が、画像生成部420から情報を得るか、画像認識で特定する。画像認識においては一般的な顔検出アルゴリズムなどを用いてよい。例えば、目鼻口の特徴量を示す位置が、T字型で相対的に位置する箇所を画像内から検索することで顔を検出する。
3.提示内容に基づくスコア決定規則
ゲームにおけるプレイヤのライフステータス、保有武器ステータス、ゲームスコアなど、プレイヤに情報を通知することが目的のインジケータを含む単位領域を他より高スコアとする。当該インジケータは、画像内容取得部450が、画像生成部420から情報を得るか、画像認識で特定する。
ゲームにおけるプレイヤのライフステータス、保有武器ステータス、ゲームスコアなど、プレイヤに情報を通知することが目的のインジケータを含む単位領域を他より高スコアとする。当該インジケータは、画像内容取得部450が、画像生成部420から情報を得るか、画像認識で特定する。
4.オブジェクトの細かさに基づくスコア決定規則
緻密名文字、記号、標識、ドット絵などのオブジェクトが画像全体に占める面積の割合が小さい場合、それらを含む単位領域を他より高いスコアとする。当該オブジェクトは画像内容取得部450が、画像生成部420から情報を得るか、画像認識で特定する。
緻密名文字、記号、標識、ドット絵などのオブジェクトが画像全体に占める面積の割合が小さい場合、それらを含む単位領域を他より高いスコアとする。当該オブジェクトは画像内容取得部450が、画像生成部420から情報を得るか、画像認識で特定する。
5.画像上の像の大きさに基づくスコア決定規則
LOD、ミップマップテクスチャ、テッセレーション、オブジェクトの大きさを参照し、所定値より高精細なオブジェクトがあり、かつ、画像全体においてそれが占める面積の割合が大きい(ビュースクリーンの近くに大きな高精細オブジェクトがある)ほど、当該オブジェクトを含む単位領域を他より高いスコアとする。
LOD、ミップマップテクスチャ、テッセレーション、オブジェクトの大きさを参照し、所定値より高精細なオブジェクトがあり、かつ、画像全体においてそれが占める面積の割合が大きい(ビュースクリーンの近くに大きな高精細オブジェクトがある)ほど、当該オブジェクトを含む単位領域を他より高いスコアとする。
6.コントラスト、ダイナミックレンジに基づくスコア決定規則
画素値の分布に基づくコントラストや、輝度の分布に基づくダイナミックレンジを参照し、コントラストあるいはダイナミックレンジが高い単位領域ほどを高スコアとする。
7.像の動きに基づくスコア決定規則
オブジェクトの像の移動量、オプティカルフロー、モーションエスティメーションの大きさと量を参照し、移動量が所定値より大きいオブジェクトが多く、かつ画像全体においてそれらが占める面積の割合が大きい単位領域ほどを高スコアとする。
画素値の分布に基づくコントラストや、輝度の分布に基づくダイナミックレンジを参照し、コントラストあるいはダイナミックレンジが高い単位領域ほどを高スコアとする。
7.像の動きに基づくスコア決定規則
オブジェクトの像の移動量、オプティカルフロー、モーションエスティメーションの大きさと量を参照し、移動量が所定値より大きいオブジェクトが多く、かつ画像全体においてそれらが占める面積の割合が大きい単位領域ほどを高スコアとする。
8.テクスチャの種類に基づくスコア決定規則
各単位領域の画像テクスチャの種類を集計し、画像全体において密度の高い領域、詳細な領域、群衆の領域の占める面積の割合が大きいとき、当該テクスチャを含む単位領域を他より高いスコアとする。
各単位領域の画像テクスチャの種類を集計し、画像全体において密度の高い領域、詳細な領域、群衆の領域の占める面積の割合が大きいとき、当該テクスチャを含む単位領域を他より高いスコアとする。
9.シーンの切り替わりタイミングにおけるスコア制御規則
画像生成部420から切り替わりのタイミングについての情報を得る。もしくはオブジェクト量、特徴点、エッジ、オプティカルフロー、モーションエスティメーション、画素コントラスト、輝度のダイナミックレンジ、オーディオの有無、オーディオのチャネル数、オーディオのモードのいずれかが、時系列方向で急変したりリセットされたりしたときにスコアを切り替える。この際、少なくとも2フレーム以上を参照する。なお圧縮符号化処理部454は、圧縮符号化においてイントラフレームとするフレームの必要性を把握するため、前フレームとの相関性に基づきシーンの切り替わりを検出することもできる。
画像生成部420から切り替わりのタイミングについての情報を得る。もしくはオブジェクト量、特徴点、エッジ、オプティカルフロー、モーションエスティメーション、画素コントラスト、輝度のダイナミックレンジ、オーディオの有無、オーディオのチャネル数、オーディオのモードのいずれかが、時系列方向で急変したりリセットされたりしたときにスコアを切り替える。この際、少なくとも2フレーム以上を参照する。なお圧縮符号化処理部454は、圧縮符号化においてイントラフレームとするフレームの必要性を把握するため、前フレームとの相関性に基づきシーンの切り替わりを検出することもできる。
このとき従来方式の圧縮符号化処理部454による判定のみによらず、上述したスコア決定規則も併用し、切り替わりの検出精度を上げてよい。シーンの切り替わりでないと判定されたとき、それまでのフレームについて、他のスコア決定規則に基づいて設定された、高スコアの単位領域のスコアをさらに高くする。シーンの切り替わりであると判定されたときは、高スコアとされていた単位領域のスコアを一旦、リセットする。検出したシーンの切り替わりにはイントラフレームが必要となり、データサイズがサージ的に増加しやすいため、対象のフレームおよび後続の所定数のフレームで、全ての単位領域の合計スコアを低減させる。
10.ユーザ操作の内容に基づくスコア決定規則
画像生成部420が実施しているゲームなどのコンテンツにおいて、直前の所定期間におけるユーザ操作の変化量が所定値以上のとき、ユーザはコンテンツからの高い応答性を期待しており、注目領域があると推定される。したがって他のスコア決定規則により所定値以上のスコアが与えられている単位領域のスコアをさらに増幅させる。操作がなされていても変化量が小さい場合は、当該スコアのレベルを、増幅結果より一段階下げる。なおユーザ操作は、ゲームコントローラ、キーボード、マウスなど図示しない入力装置が取得した入力情報、ヘッドマウントディスプレイ100の位置、姿勢、動き、ヘッドマウントディスプレイ100のカメラまたは図示しない外部カメラが撮影した画像を解析した結果に基づくジェスチャ(ハンドサイン)指示、図示しないマイクが取得した音声指示などを画像処理装置200から取得する。
画像生成部420が実施しているゲームなどのコンテンツにおいて、直前の所定期間におけるユーザ操作の変化量が所定値以上のとき、ユーザはコンテンツからの高い応答性を期待しており、注目領域があると推定される。したがって他のスコア決定規則により所定値以上のスコアが与えられている単位領域のスコアをさらに増幅させる。操作がなされていても変化量が小さい場合は、当該スコアのレベルを、増幅結果より一段階下げる。なおユーザ操作は、ゲームコントローラ、キーボード、マウスなど図示しない入力装置が取得した入力情報、ヘッドマウントディスプレイ100の位置、姿勢、動き、ヘッドマウントディスプレイ100のカメラまたは図示しない外部カメラが撮影した画像を解析した結果に基づくジェスチャ(ハンドサイン)指示、図示しないマイクが取得した音声指示などを画像処理装置200から取得する。
11.圧縮率の分布の切り替え頻度の制御
直前の所定期間に決定した注目度の履歴を参照し、ユーザ体験の観点から切り替えが許容範囲となるようにスコアを調整する。「許容範囲」は、あらかじめ定義したテーブルやモデルに基づいて決定する。
直前の所定期間に決定した注目度の履歴を参照し、ユーザ体験の観点から切り替えが許容範囲となるようにスコアを調整する。「許容範囲」は、あらかじめ定義したテーブルやモデルに基づいて決定する。
注目度推定部460は、以上の規則のうちいずれかにより、あるいは複数の規則で得られたスコアの合計値により、各単位領域の注目度を総合的に決定する。なお圧縮符号化処理部454は、上記1~9の規則において、オブジェクトの位置、投影される順序、大きさ、ビュースクリーンからの相対距離を把握するためにZ値を参照してもよい。なお上述した決定規則は、テーブルあるいは計算モデルなどの形式で前もって準備し、注目度推定部460の内部で保持しておく。
圧縮符号化処理部464は、このようにして推定された注目度の分布に基づき、各単位領域の圧縮率(量子化パラメータ)を決定する。例えば図示する例で、単位領域1行分を部分画像とした場合、注目度が高いと判定された単位領域がない最上段の部分画像168aと最下段の部分画像168bは、それ以外の中間部分の部分画像より圧縮率を高くする。さらに、オブジェクト162bよりオブジェクト162aの方が注目度が高い場合、オブジェクト162bが表された単位領域の集合166bは、単位領域の集合166aより圧縮率を高くすることも考えられる。
いずれにしろ圧縮符号化処理部464は、部分画像単位、1フレーム単位、所定数のフレーム単位、所定の時間間隔、のいずれかで、圧縮率の分布を更新することにより、データサイズが最新の通信状況に合うようにする。例えば利用可能な通信帯域幅、解像度、フレームレートが同じであれば、注目度が高いと推定される単位領域が多いほど、注目領域と非注目領域の間で圧縮率の差を小さくする。このような調整は、注目度の高さに応じて、単位領域の集合166a、166bごとに個別に行ってもよい。場合によっては一部の単位領域の集合(例えば単位領域の集合166b)を、判定された注目度の優先順位に基づいて、圧縮率を下げる対象から除外してもよい。
さらに、利用可能な通信帯域幅が同じなかで、解像度やフレームレートが高ければ、全体的に圧縮率を上げたり、注目領域と非注目領域の間で圧縮率の差を小さくしたりすることによりフレームごとのデータサイズを調整し、ビットレートを適正化する。送信対象は部分画像単位である一方、データサイズの制御は、部分画像単位、1フレーム単位、および所定数のフレーム単位、所定の時間単位、のいずれでもよい。各単位領域の注目度、利用できる通信帯域幅、フレームレート、および解像度の組み合わせに基づき、量子化パラメータの分布を決定するための規則は、テーブルあるいは計算モデルなどの形式で前もって準備しておく。
ただし動画像の内容を示す情報は上述のとおり多岐にわたるため、それらを総合的に見て最適な量子化パラメータを決定するためには、決定規則自体を最適化していくことが望ましい。そこで上記「6.データサイズ削減手段の最適化」について説明したのと同様、過去の様々なケースにおける調整結果を収集しながら、機械学習または深層学習によって決定規則を最適化していってもよい。
図35は、サーバ400が画像平面の領域ごとに圧縮率を制御する処理手順を示すフローチャートである。このフローチャートは、ユーザが画像処理装置200に対し、プレイしたいゲームや鑑賞したい動画などを選択することによって開始される。これに対しサーバ400の通信状況取得部462は、画像処理装置200へのストリーミングに用いる通信の状況取得を開始する(S70)。通信状況は上述のとおり、画像処理装置200との信号送受によって判明するため、通信状況取得部462は通信部426から必要な情報を取得する。
また画像生成部420は、対応する動画像の生成を開始する(S72)。ただし画像生成部420は、コンピュータグラフィクスを描画するのに限らず、撮影画像をカメラから取得してもよい。一方、圧縮符号化部422の画像内容取得部450は、動画像の内容に係る情報の取得を開始する(S73)。次に圧縮符号化処理部464は、通信状況取得部462が取得した直近の通信状況に応じて、画像データの送信サイズを決定する(S74)。そして圧縮符号化部422の注目度推定部460は、動画像の内容に係る情報に基づき、処理対象のフレームに対し注目度の分布を推定する(S75)。すなわちフレームの平面を単位領域に分割し、それぞれについて注目度を導出する。
注目度の導出には、上述した規則の少なくともいずれかに従いスコアを取得できるテーブルを参照するか、計算モデルを利用する。そして様々な観点から得られたスコアを合算して、最終的な注目度を単位領域ごとに求める。圧縮符号化処理部464は、注目度の分布に基づき量子化パラメータの分布を決定する(S76)。上述のとおり量子化パラメータは、注目度のほか、利用できる通信帯域幅、解像度、フレームレートを考慮して決定する。
圧縮符号化処理部464は、テーブルを参照したり、計算モデルを利用したりして、それらのパラメータから適切な量子化パラメータの分布を導出する。そして圧縮符号化処理部464は、決定した量子化パラメータを用いて部分画像に内包される単位領域を圧縮符号化していき、順次パケット化部424に供給することにより、通信部426が画像処理装置200に送信する(S80)。
圧縮符号化処理部464は処理対象のフレームについて、全ての部分画像のデータの圧縮符号化および送信を繰り返す(S82のN、S80)。画像処理装置200に対するユーザ操作などにより、画像の送信を停止する必要がなければ(S84のN)、後続のフレームについてもデータサイズの決定、注目度分布の推定、量子化パラメータ分布の決定、部分画像の圧縮符号化および送信を繰り返す(S84のN、S74、S75、S76、S80、S82)。
なお実際には、部分画像単位のパイプライン処理となるため、前のフレームの部分画像の圧縮符号化や送信処理の間に、次のフレームの注目度分布推定や量子化パラメータの分布決定を行える。また実際には、S74におけるデータサイズの決定頻度と、S80における部分画像単位での圧縮符号化および送信の頻度は、同じであっても異なっていてもよい。画像の送信を停止する必要が生じたら、サーバ400は全ての処理を終了させる(S84のY)。
以上述べた、動画像が表す内容に基づく領域ごとの圧縮率制御によれば、サーバ400は、動画像が表す内容に基づきユーザの注目度を単位領域ごとに推定する。そして注目度が高いほど圧縮率が低くなるように量子化パラメータの分布を決定したうえ圧縮符号化し画像処理装置200に送信する。これにより、限られた通信帯域幅やリソース環境下で、ユーザ体験の質を向上させることができる。
また動画像の内容に係る情報として、リアルタイムで画像を生成している画像生成部や、圧縮符号化している圧縮符号化処理部から多角的な情報を得ることにより、より正確かつ詳細に注目度の分布を推定することができる。注目度を分布として扱い、さらに当該分布に応じて圧縮率の分布を決定することにより、解像度、フレームレート、通信状況の変化に対し圧縮率を細かく制御でき、様々な状況変化に臨機応変に対応できる。
7-2.ユーザの注視点に基づく制御
上記7-1では、動画像が表す内容に基づき注目度を推定したが、実際にユーザが注目している箇所に基づき注目度を推定することもできる。この場合、サーバ400は、ヘッドマウントディスプレイ100や平板型ディスプレイ302を見ているユーザの注視点を検出する装置から、画面上の注視点の位置情報を取得し、それに基づき注目度の分布を推定する。なお動画像が表す内容と、ユーザの注視点の双方に基づき注目度の分布を導出してもよい。
上記7-1では、動画像が表す内容に基づき注目度を推定したが、実際にユーザが注目している箇所に基づき注目度を推定することもできる。この場合、サーバ400は、ヘッドマウントディスプレイ100や平板型ディスプレイ302を見ているユーザの注視点を検出する装置から、画面上の注視点の位置情報を取得し、それに基づき注目度の分布を推定する。なお動画像が表す内容と、ユーザの注視点の双方に基づき注目度の分布を導出してもよい。
図36は、ユーザの注視点に基づき、フレーム上の領域によって圧縮率を変化させる機能を有するサーバ400の機能ブロックの構成を示している。サーバ400は、画像生成部420、圧縮符号化部422、パケット化部424、および通信部426を含む。画像生成部420、パケット化部424、および通信部426は、図5、9、16、26、33で説明したのと同様の機能を有する。また複数視点の画像を送信する場合、圧縮符号化部422は図20、23で示した分割部440、第2符号化部444、送信対象調整部362などをさらに備えてもよい。
圧縮符号化部422は、注視点取得部470、注目度推定部472、通信状況取得部474、および圧縮符号化処理部476を備える。注視点取得部470は、ヘッドマウントディスプレイ100や平板型ディスプレイ302など、画像処理装置200に接続された表示装置に表示された、描画済みの動画像に対するユーザの注視点の位置情報を取得する。例えばヘッドマウントディスプレイ100の内部に注視点検出器を設けたり、平板型ディスプレイ302を見ているユーザに注視点検出器を装着させたりし、当該注視点検出器による計測結果を取得する。
そして画像処理装置200の画像データ取得部240からサーバ400の通信部426に、注視点の位置座標情報を所定のレートで送信することにより、注視点取得部470がそれを取得する。注視点検出器は、例えば赤外線などの参照光をユーザの眼球に照射し、その反射光をセンサにより検出して得られる瞳孔の方向から注視点を特定する一般的な装置でよい。注視点取得部470は好適には、動画像のフレームレートより高い頻度で注視点の位置情報を取得する。
あるいは注視点取得部470は、画像処理装置200から取得した注視点の位置情報を時間的に補間することにより、好適な頻度で位置情報を生成してもよい。なお画像処理装置200からの送信失敗に備え、注視点取得部470は注視点の位置情報の最新値とともに、所定数の履歴値を画像処理装置200から同時に取得するようにしてもよい。
注目度推定部472は、注視点の位置に基づき、動画像のフレーム平面を分割してなる単位領域ごとに注目度を推定する。具体的には注目度推定部472は、注視点が含まれる頻度、注視点の滞留時間、サッケードの有無、瞬きの有無、の少なくともいずれかに基づき注目度を推定する。定性的には注目度推定部472は、単位時間当たりに注視点が含まれる頻度、あるいは滞留時間が多いほど、単位領域の注目度を高くする。
サッケードは対象物に視線を向ける際などに発生する眼球の高速運動であり、サッケードが発生している期間は視覚信号の脳での処理が中断していることが知られている。瞬きをしている期間は当然、画像が認識されない。そのため注目度推定部472は、それらの期間において、注目度の高低差を縮めたりなくしたりするように変化させる。サッケードや瞬きの期間を検出する手法は、例えば米国特許出願公開第2017/0285736号明細書に開示されている。
ここで注視点取得部470が、動画像のフレームレート(例えば120Hz)より高い頻度(例えば240Hz)で注視点の位置情報を取得、あるいは生成する場合、注目度推定部472は、新たな位置情報が得られる都度、注目度を更新してよい。すなわち1フレーム分の圧縮符号化処理の途中で、注目度の分布が変化する場合があってよい。上述のとおり注目度推定部472はさらに、7-1において説明した注目度推定部460と同様に、動画像に表される内容に基づく注目度を単位領域ごとに推定し、注視点の位置に基づく注目度と統合することで最終的な注目度の分布を取得してもよい。通信状況取得部474は、図26の通信状況取得部452と同様の機能を有する。
圧縮符号化処理部476は基本的には、図33の圧縮符号化処理部464と同様の機能を有する。すなわち圧縮符号化処理部476は、注目度推定部472が推定した注目度の分布に基づき、画像平面で圧縮率を異ならせたうえ画像データを圧縮符号化する。この際、圧縮符号化処理部476は、データ伝送に用いることのできる通信帯域幅、フレームレート、および解像度の組み合わせに基づき、フレーム平面における圧縮率、ひいては量子化パラメータの分布を決定する。
例えば圧縮符号化処理部476は、直近の所定数のフレームのデータサイズと、通信状況取得部474が取得する、利用できる通信帯域幅との比較に基づき、圧縮率の分布を調整する。一方、一般に注視点の動きは複雑であり、安定した精度で注目度が得られない可能性がある。そこで圧縮符号化処理部476は、注目度推定部472が推定した注目度の分布以外に、直近のフレームにおける圧縮結果を参照し、処理対象のフレームの圧縮率の決定精度を高めてもよい。
例えば圧縮符号化処理部476は、直近の所定数のフレームの圧縮符号化結果、すなわち圧縮率を高めた領域やその圧縮率などに基づき、処理対象のフレームの圧縮率の分布を調整してもよい。これにより圧縮率の分布の偏りを緩和できる。あるいは圧縮符号化処理部476は、単位領域ごとの注目度の有効性を判定し、有効でないと判定した場合に、直近の所定数のフレームの圧縮符号化結果を参照して圧縮率の分布を決定してもよい。
例えば注目度が高い領域が激しく分散している場合や、注目度が有効範囲外にある場合、圧縮符号化処理部476は、直近の所定数のフレームで定めた圧縮率の分布をそのまま採用したり、分布の変化を外挿したりして、処理対象のフレームの圧縮率の分布を決定する。また圧縮符号化処理部476は、7-1で上述したように、フレームレートおよび解像度を加味したうえで、フレーム全体のデータサイズが、利用できる通信帯域に見合うように、画像平面における圧縮率の分布を決定する。以後の処理は7-1で上述したのと同様である。
図37は、注目度推定部472が画像平面における注目度の分布を推定する処理を説明するための図である。画像180は動画像のデータのうち、あるフレームを表している。画像上に表した円(例えば円182)は、注視点が滞留していた位置を表し、円の大きさによって滞留時間の長さを表している。ここで「滞留」とは、所定時間以上、同じ位置と見なされる所定範囲内に注視点が留まっていることを指す。また線(例えば線184)は、注視点の移動経路のうち所定値以上の頻度で発生した移動経路を表している。
注目度推定部472は注視点取得部470から所定周期で注視点の位置情報を取得し、図示するような情報を生成する。そして単位領域ごとに、注視点が含まれる頻度、滞留時間、サッケードの有無、瞬きの有無などに基づき注目度を推定する。図では例えば、一点鎖線で囲まれた領域186a、186b、186cに含まれる単位領域に対し、他の単位領域より高い注目度が推定される。さらに、しきい値以上の高い頻度で視点移動の経路となった単位領域についても、高い注目度としてもよい。この態様でも、注目度は0または1、すなわち注目されていないか注目されているかの2値でもよいし、より多くの階調で表してもよい。
図38は、圧縮符号化処理部476が注視点に基づき圧縮率の分布を決定する手法について説明するための図である。基本として圧縮符号化処理部476は対象フレームの圧縮符号化を開始する際に、最新の注目度の分布と利用可能な通信帯域幅に基づいて、部分画像ごとに圧縮率(量子化パラメータ)を決定し圧縮符号化する。しかしながら圧縮結果であるデータサイズは画像の内容によって変動し得るうえ、注視点情報は対象フレーム内の未処理の部分画像において更新され得る。
よって対象フレームの圧縮符号化を開始した時点でのデータサイズの目論見と実際の結果がずれてくる場合がある。そのため利用可能な通信帯域幅を一時的に超過した場合、または超過しそうな場合に、注目度に基づく圧縮率引き下げの指定をキャンセルし、データサイズの辻褄を合わせることを、対象フレームあるいは後続のフレームの圧縮符号化処理において実施する。同図の場合、上段に示すように画像190の平面を水平方向に等分してなる7つの部分領域(例えば部分領域192)を形成している
圧縮符号化処理部476は例えば、各部分画像を圧縮符号化する際、圧縮率を低めるべき単位領域が当該部分画像に含まれる場合、あるいは当該部分画像が圧縮率を低めるべき単位領域である場合、当該部分画像を対象として量子化パラメータを低くすることで圧縮率を低下させる。また画像190の上段の部分画像から順に圧縮符号化していく間に、新たな注視点の位置情報が得られたら、注目度推定部472は単位領域ごとの注目度をそれに応じて更新し、圧縮符号化処理部476は、直近の注目度に基づき部分画像の圧縮率を決定する。すなわち圧縮符号化処理部476は、処理対象のフレームの処理開始時以降に注目度が更新されたとき、その直近の注目度の分布に基づく圧縮率で、部分画像を圧縮符号化する。
このような圧縮率の決定においては上述のとおり、それまでの圧縮符号化結果を参照して圧縮率を調整してもよい。図の下段における棒グラフは圧縮符号化結果として、連続した4フレーム(「Frame0」~「Frame3」)における部分画像ごとの圧縮符号化後のデータサイズをビットレート(bit/sec)で示している。また各フレームについて、1フレーム当たりの圧縮符号化後のビットレートを折れ線グラフ196で示している。
ここでビットレート「A」は、サーバ400と画像処理装置200との通信に利用できる通信帯域幅を示している。ただし実際には当該通信帯域幅は時間変動する。圧縮符号化処理部476は例えば、1フレーム当たりのビットレートを、利用できる通信帯域幅と比較することで、各部分画像の圧縮率、ひいては量子化パラメータを調整する。図の例では、「Frame0」の1フレーム当たりのビットレートが、通信帯域幅より十分下回っているのに対し、次の「Frame1」では通信帯域幅に接近している。
圧縮符号化処理部476は、各部分画像の圧縮符号化処理において1フレーム当たりのビットレートを予測し、「Frame1」のように通信帯域幅との差が所定のしきい値より小さくなることが判明したら、いずれかの部分画像の圧縮率を高くする。図では、「Frame1」の7番目の部分画像の圧縮率を、当初の決定より高くすることにより、ビットレートが低下したことを矢印で示している。
また次の「Frame2」では、1フレーム当たりのビットレートが通信帯域幅を超えている。このとき圧縮符号化処理部476は、その次のフレームである「Frame3」に対し圧縮率の調整を行ってもよい。図では「Frame3」の1番目の部分画像の圧縮率を、当初の決定より高くすることにより、ビットレートが低下したことを矢印で示している。
なおこの例は注目度を、注目されていないか注目されているかの2値で表し、当初注目されている領域としていた「Frame1」の7番目の部分画像や、「Frame3」の1番目の部分画像を、注目されている領域から除外する操作に相当する。すなわち圧縮符号化処理部476は、1フレーム当たりのビットレートが通信帯域幅を超えたとき、または両者の差が所定値より小さくなったとき、圧縮率を低めるべき高い注目度の単位領域を含む部分画像であっても圧縮率の低減をキャンセルする。
この場合、注目されていない他の領域と同じ圧縮率を与えてもよいし、所定値分だけ圧縮率を上げるようにしてもよい。ただし調整手法は図示するものに限らず、注目度を多段階で表す場合は特に、注目度の高さに応じて圧縮率の変化量を異ならせたり、圧縮率の分布全体を変化させたりしてもよい。このように圧縮符号化処理部476は、処理対象のフレームのみに基づき量子化パラメータを決定してもよいし、直近の所定数のフレームにおける圧縮符号化結果も参照することにより量子化パラメータを決定してもよい。
このとき圧縮符号化処理部476は、過去のフレームにおける量子化パラメータの分布、利用できる通信帯域幅、フレーム全体のデータサイズといったパラメータの時間変化を多角的に確認し、それに基づき処理対象のフレームにおける量子化パラメータの分布を決定してよい。注目度に基づき量子化パラメータの分布を決定する規則や、過去のフレームにおける量子化パラメータの分布、利用できる通信帯域幅、フレーム全体のデータサイズといったパラメータの時間変化に基づき量子化パラメータの分布を決定する規則は、過去の様々なケースにおける調整結果を収集しながら、機械学習または深層学習によって最適化していってもよい。
なおサーバ400が画像平面の領域ごとに圧縮率を制御する処理手順は図35で示したのと同様でよい。ただし注目度の推定処理は、注視点の位置情報が得られる都度、必要に応じて更新し、量子化パラメータは、それに応じて随時変更してよい。
以上述べた、ユーザの注視点に基づく領域ごとの圧縮率制御によれば、サーバ400は、ユーザの実際の視線の動きを取得し、その結果に基づきユーザの注目度を単位領域ごとに推定する。これにより実際に注目されている対象を正確に求めることができ、当該対象に優先的にリソースを割り当てることにより、ユーザの認識上で画質を向上させることができる。
また直近の圧縮符号化結果を圧縮率の決定に利用することにより、注目度の推定に誤差が含まれる場合でも圧縮率の設定精度を維持することができる。さらにフレーム全体での圧縮符号化後のデータサイズを監視することにより、当初の設定で注目度が高いと判定される領域が多すぎたり、当該領域の圧縮率を過度に低めすぎたりしても、それらの値を適切に調整することができる。また7-1と同様、注目度を分布として扱い、さらに当該分布に応じて圧縮率の分布を決定することにより、解像度、フレームレート、通信状況の変化に対し圧縮率を細かく制御でき、様々な状況変化に臨機応変に対応できる。
なお変形例として、注視点取得部470と注目度推定部472を画像処理装置200側に設け、サーバ400は、単位領域ごとに推定された注目度の情報を画像処理装置200から取得するようにしてもよい。この場合、注視点取得部470は上述した注視点検出器から、計測結果である注視点の位置情報を取得する。注目度推定部472はサーバ400に設けた場合と同様にして、注視点の位置情報に基づき単位領域ごとに注目度を推定する。
注視点の位置情報をフレームレートより高い頻度で取得し、それに応じて注目度の分布を随時更新してもよいことは上述したとおりである。注目度推定部472により推定された注目度の情報は、例えば画像データ取得部240を介してサーバ400の通信部426に所定のレートで送信する。この場合も注目度推定部472は送信失敗に備え、注目度の推定結果の最新値とともに、所定数の履歴値を同時に送信してよい。サーバ400の通信状況取得部474、圧縮符号化処理部476の動作は上述と同様である。このような構成によっても、上述したのと同様の作用効果を実現できる。
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
以上のように本発明は、画像処理装置、ゲーム装置、携帯端末、ヘッドマウントディスプレイ、画像データ転送装置、コンテンツ提供サーバなどの各種装置や、それらのいずれかを含むシステムなどに利用可能である。
1 画像表示システム、 100 ヘッドマウントディスプレイ、 200 画像処理装置、 202 入出力インターフェース、 204 部分画像記憶部、 206 制御部、 208 ビデオデコーダ、 210 部分画像記憶部、 212 制御部、 214 画像処理部、 216 部分画像記憶部、 218 制御部、 220 ディスプレイコントローラ、 240 画像データ取得部、 242 復号伸張部、 244 画像処理部、 246 表示制御部、 248 データ取得状況特定部、 250 出力対象決定部、 252 出力部、 260 位置姿勢追跡部、 262 第1補正部、 264 合成部、 266 第2補正部、 270a 第1形成部、 270b 第2形成部、 272a 第1制御部、 272b 第2制御部、 280 第1復号部、 282 第2復号部、 302 平板型ディスプレイ、 400 サーバ、 402 描画制御部、 404 画像描画部、 406 フレームバッファ、 408 ビデオエンコーダ、 410 部分画像記憶部、 412 制御部、 414 ビデオストリーム制御部、 416 入出力インターフェース、 420 画像生成部、 422 圧縮符号化部、 424 パケット化部、 426 通信部、 430 描画部、 432 形成内容切り替え部、 434 データ形成部、 440 分割部、 442 第1符号化部、 444 第2符号化部、450 画像内容取得部、 452 通信状況取得部、 454 圧縮符号化処理部、 460 注目度推定部、 462 通信状況取得部、 464 圧縮符号化処理部、 470 注視点取得部、 472 注目度推定部、 474 通信状況取得部、 476 圧縮符号化処理部。
Claims (19)
- ヘッドマウントディスプレイに動画像を表示させる画像処理装置であって、
前記ヘッドマウントディスプレイを装着しているユーザ頭部の位置姿勢を取得する位置姿勢追跡部と、
一体的に設けられていない外部装置から、動画像のフレームのデータとともに、当該フレームを描画する際に用いられた、前記位置姿勢の予測値を取得する画像データ取得部と、
最新の位置姿勢と前記予測値との差分に基づいて前記フレームのデータを補正し、最新の位置姿勢に対応する表示画像を生成する画像処理部と、
前記表示画像を順次、前記ヘッドマウントディスプレイの表示パネルに出力する表示制御部と、
を備え、
前記表示制御部は、少なくとも前記差分に基づき、前記画像処理部における補正対象を変化させることを特徴とする画像処理装置。 - 前記画像データ取得部は、前記外部装置から、1フレームより小さい部分画像の単位で前記フレームのデータおよび前記予測値を取得し、
前記画像処理部は、前記部分画像の単位で補正を行うことを特徴とする請求項1に記載の画像処理装置。 - 前記画像データ取得部は、前記外部装置における前記フレームのデータの生成時刻をさらに取得し、
前記表示制御部は、前記生成時刻からの遅延時間を、前記画像処理部における補正対象の決定に反映させることを特徴とする請求項1に記載の画像処理装置。 - 前記画像データ取得部は、前記部分画像単位で前記生成時刻を取得することを特徴とする請求項3に記載の画像処理装置。
- 前記表示制御部はさらに、前記画像処理部が表示画像を生成するのに必要なデータの取得量を、前記画像処理部における補正対象の決定に反映させることを特徴とする請求項1から4のいずれかに記載の画像処理装置。
- 前記表示制御部は、データの欠落の度合いを、表示画面におけるユーザの注視点から欠落位置までの距離が小さいほど大きい重みづけで数値化し、その結果を前記画像処理部における補正対象の決定に反映させることを特徴とする請求項1から5のいずれかに記載の画像処理装置。
- 前記表示制御部は、前記フレームのデータのうち、前記画像処理部において表示画像を生成するのに不必要な領域を除いたデータの欠落量を、前記画像処理部における補正対象の決定に反映させることを特徴とする請求項1から6のいずれかに記載の画像処理装置。
- 前記表示制御部は、前記画像処理部において、補正対象を最新のフレームのデータとするか、それより前のフレームのデータとするかをフレームごとに決定することを特徴とする請求項1から7のいずれかに記載の画像処理装置。
- 前記表示制御部は、前記フレームのデータを補正して出力するか、何も出力しないかをフレームごとに決定することを特徴とする請求項1から8のいずれかに記載の画像処理装置。
- 前記画像データ取得部は、最新の前記位置姿勢、前記差分の履歴、および前記外部装置におけるフレームのデータの生成時刻からの遅延時間の履歴を、前記外部装置へ所定のタイミングで送信することを特徴とする請求項1から9のいずれかに記載の画像処理装置。
- 前記画像データ取得部は、前記フレームを描画する際に予測された、前記予測値のずれを表すベクトルに基づき追加で生成された、前記フレームの外側の領域のデータをさらに取得し、
前記画像処理部は、当該フレーム外の領域のデータを用いて表示画像を生成することを特徴とする請求項1から10のいずれかに記載の画像処理装置。 - ヘッドマウントディスプレイに表示させる動画像のデータを転送する画像データ転送装置であって、
前記ヘッドマウントディスプレイを装着しているユーザ頭部の位置姿勢を、データ転送先の装置から取得する位置姿勢取得部と、
転送した前記動画像のフレームが前記ヘッドマウントディスプレイに表示される時点での、前記位置姿勢を予測する位置姿勢予測部と、
前記位置姿勢の予測値に対応する、前記動画像の各フレームを描画する描画部と、
前記動画像のフレームのデータを、前記予測値とともに送信する通信部と、
を備えたことを特徴とする画像データ転送装置。 - 前記通信部は、前記フレームのデータを、1フレームより小さい部分画像の単位で、当該部分画像の生成時刻とともに送信することを特徴とする請求項12に記載の画像データ転送装置。
- 前記描画部は、前記予測値のずれを予測し、当該ずれを表すベクトルに基づき決定した、前記フレームの外側の領域をさらに描画し、
前記通信部は、前記外側の領域のデータも送信することを特徴とする請求項12または13に記載の画像データ転送装置。 - 前記位置姿勢取得部は、前記ヘッドマウントディスプレイにおける表示処理時の実際の位置姿勢と前記予測値との差分の履歴、および、フレームのデータの生成時刻から表示処理までの遅延時間の履歴を、データ転送先の装置からさらに取得し、
前記描画部は、前記差分の履歴および前記遅延時間の履歴に基づき、前記予測値のずれを予測することを特徴とする請求項14に記載の画像データ転送装置。 - ヘッドマウントディスプレイに動画像を表示させる画像処理装置が、
前記ヘッドマウントディスプレイを装着しているユーザ頭部の位置姿勢を取得するステップと、
一体的に設けられていない外部装置から、動画像のフレームのデータとともに、当該フレームを描画する際に用いられた、前記位置姿勢の予測値を取得するステップと、
最新の位置姿勢と前記予測値との差分に基づいて前記フレームのデータを補正し、最新の位置姿勢に対応する表示画像を生成するステップと、
前記表示画像を順次、前記ヘッドマウントディスプレイの表示パネルに出力するステップと、
を含み、
前記表示画像を生成するステップは、少なくとも前記差分に基づき、補正対象を変化させることを特徴とする画像処理方法。 - ヘッドマウントディスプレイに表示させる動画像のデータを転送する画像データ転送装置が、
前記ヘッドマウントディスプレイを装着しているユーザ頭部の位置姿勢を、データ転送先の装置から取得するステップと、
転送した前記動画像のフレームが前記ヘッドマウントディスプレイに表示される時点での、前記位置姿勢を予測するステップと、
前記位置姿勢の予測値に対応する、前記動画像の各フレームを描画するステップと、
前記動画像のフレームのデータを、前記予測値とともに送信するステップと、
を含むことを特徴とする画像データ転送方法。 - ヘッドマウントディスプレイに動画像を表示させるコンピュータに、
前記ヘッドマウントディスプレイを装着しているユーザ頭部の位置姿勢を取得する機能と、
一体的に設けられていない外部装置から、動画像のフレームのデータとともに、当該フレームを描画する際に用いられた、前記位置姿勢の予測値を取得する機能と、
最新の位置姿勢と前記予測値との差分に基づいて前記フレームのデータを補正し、最新の位置姿勢に対応する表示画像を生成する機能と、
前記表示画像を順次、前記ヘッドマウントディスプレイの表示パネルに出力する機能と、
を実現させ、
前記表示画像を生成する機能は、少なくとも前記差分に基づき、補正対象を変化させることを特徴とするコンピュータプログラム。 - ヘッドマウントディスプレイに表示させる動画像のデータを転送するコンピュータに、
前記ヘッドマウントディスプレイを装着しているユーザ頭部の位置姿勢を、データ転送先の装置から取得する機能と、
転送した前記動画像のフレームが前記ヘッドマウントディスプレイに表示される時点での、前記位置姿勢を予測する機能と、
前記位置姿勢の予測値に対応する、前記動画像の各フレームを描画する機能と、
前記動画像のフレームのデータを、前記予測値とともに送信する機能と、
を実現させることを特徴とするコンピュータプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/638,535 US20220291742A1 (en) | 2019-09-30 | 2020-09-23 | Image processing apparatus, image data transfer apparatus, image processing method, and image data transfer method |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019179436A JP7429512B2 (ja) | 2019-09-30 | 2019-09-30 | 画像処理装置、画像データ転送装置、画像処理方法、および画像データ転送方法 |
JP2019-179436 | 2019-09-30 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2021065628A1 true WO2021065628A1 (ja) | 2021-04-08 |
Family
ID=75270920
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2020/035831 WO2021065628A1 (ja) | 2019-09-30 | 2020-09-23 | 画像処理装置、画像データ転送装置、画像処理方法、および画像データ転送方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20220291742A1 (ja) |
JP (1) | JP7429512B2 (ja) |
WO (1) | WO2021065628A1 (ja) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10572721B2 (en) * | 2010-08-09 | 2020-02-25 | Nike, Inc. | Monitoring fitness using a mobile device |
US10974142B1 (en) * | 2019-10-01 | 2021-04-13 | Sony Interactive Entertainment Inc. | Synchronization and offset of VSYNC between cloud gaming server and client |
US20210192681A1 (en) * | 2019-12-18 | 2021-06-24 | Ati Technologies Ulc | Frame reprojection for virtual reality and augmented reality |
US12001958B2 (en) * | 2020-03-19 | 2024-06-04 | Nvidia Corporation | Future trajectory predictions in multi-actor environments for autonomous machine |
US11951399B2 (en) * | 2020-11-04 | 2024-04-09 | Sony Group Corporation | Footprints in virtual environments |
JP2023011264A (ja) | 2021-07-12 | 2023-01-24 | トヨタ自動車株式会社 | 仮想現実シミュレータ及び仮想現実シミュレーションプログラム |
JP2023011263A (ja) | 2021-07-12 | 2023-01-24 | トヨタ自動車株式会社 | 仮想現実シミュレータ及び仮想現実シミュレーションプログラム |
WO2024089725A1 (ja) * | 2022-10-24 | 2024-05-02 | 株式会社ソニー・インタラクティブエンタテインメント | 画像処理装置および画像処理方法 |
CN117294832B (zh) * | 2023-11-22 | 2024-03-26 | 湖北星纪魅族集团有限公司 | 数据处理方法、装置、电子设备和计算机可读存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02301793A (ja) * | 1989-05-17 | 1990-12-13 | Matsushita Electric Ind Co Ltd | 大型映像表示装置 |
JP2017097122A (ja) * | 2015-11-20 | 2017-06-01 | 株式会社ソニー・インタラクティブエンタテインメント | 情報処理装置および画像生成方法 |
JP2017215875A (ja) * | 2016-06-01 | 2017-12-07 | 株式会社ソニー・インタラクティブエンタテインメント | 画像生成装置、画像生成システム、および画像生成方法 |
JP2017228044A (ja) * | 2016-06-21 | 2017-12-28 | 株式会社ソニー・インタラクティブエンタテインメント | 画像生成装置、画像生成システム、および画像生成方法 |
JP2019028368A (ja) * | 2017-08-02 | 2019-02-21 | 株式会社ソニー・インタラクティブエンタテインメント | レンダリング装置、ヘッドマウントディスプレイ、画像伝送方法、および画像補正方法 |
JP2019106628A (ja) * | 2017-12-12 | 2019-06-27 | 株式会社ソニー・インタラクティブエンタテインメント | 画像補正装置、画像補正方法およびプログラム |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2578769B (en) * | 2018-11-07 | 2022-07-20 | Advanced Risc Mach Ltd | Data processing systems |
-
2019
- 2019-09-30 JP JP2019179436A patent/JP7429512B2/ja active Active
-
2020
- 2020-09-23 WO PCT/JP2020/035831 patent/WO2021065628A1/ja active Application Filing
- 2020-09-23 US US17/638,535 patent/US20220291742A1/en active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02301793A (ja) * | 1989-05-17 | 1990-12-13 | Matsushita Electric Ind Co Ltd | 大型映像表示装置 |
JP2017097122A (ja) * | 2015-11-20 | 2017-06-01 | 株式会社ソニー・インタラクティブエンタテインメント | 情報処理装置および画像生成方法 |
JP2017215875A (ja) * | 2016-06-01 | 2017-12-07 | 株式会社ソニー・インタラクティブエンタテインメント | 画像生成装置、画像生成システム、および画像生成方法 |
JP2017228044A (ja) * | 2016-06-21 | 2017-12-28 | 株式会社ソニー・インタラクティブエンタテインメント | 画像生成装置、画像生成システム、および画像生成方法 |
JP2019028368A (ja) * | 2017-08-02 | 2019-02-21 | 株式会社ソニー・インタラクティブエンタテインメント | レンダリング装置、ヘッドマウントディスプレイ、画像伝送方法、および画像補正方法 |
JP2019106628A (ja) * | 2017-12-12 | 2019-06-27 | 株式会社ソニー・インタラクティブエンタテインメント | 画像補正装置、画像補正方法およびプログラム |
Also Published As
Publication number | Publication date |
---|---|
JP2021056783A (ja) | 2021-04-08 |
JP7429512B2 (ja) | 2024-02-08 |
US20220291742A1 (en) | 2022-09-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021065628A1 (ja) | 画像処理装置、画像データ転送装置、画像処理方法、および画像データ転送方法 | |
WO2021065629A1 (ja) | 画像表示システム、動画配信サーバ、画像処理装置、および動画配信方法 | |
WO2021065630A1 (ja) | 画像データ転送装置および画像データ転送方法 | |
WO2021065632A1 (ja) | 画像データ転送装置、画像表示システム、および画像圧縮方法 | |
KR102333398B1 (ko) | 가상 현실 비디오 변환 및 스트리밍을 위한 시스템 및 방법 | |
WO2021065633A1 (ja) | 画像データ転送装置および画像圧縮方法 | |
US20140292751A1 (en) | Rate control bit allocation for video streaming based on an attention area of a gamer | |
JP2023513304A (ja) | 分散システムにおける動き平滑化 | |
JP7493496B2 (ja) | 画像合成 | |
JP7362903B2 (ja) | 画像データ転送装置、画像表示システム、および画像データ転送方法 | |
US11582384B2 (en) | Methods and apparatus for encoding, communicating and/or using images | |
WO2021065631A1 (ja) | 画像データ転送装置および画像圧縮方法 | |
WO2021065627A1 (ja) | 画像処理装置、画像表示システム、画像データ転送装置、および画像処理方法 | |
JP7496412B2 (ja) | 画像表示システム、画像処理装置、画像表示方法、およびコンピュータプログラム | |
WO2022158220A1 (ja) | 画像表示システムおよび画像表示方法 | |
JP7393267B2 (ja) | 画像データ転送装置、画像表示システム、および画像データ転送方法 | |
WO2022259632A1 (ja) | 情報処理装置及び情報処理方法 | |
WO2021199128A1 (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: 20872404 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 20872404 Country of ref document: EP Kind code of ref document: A1 |