WO2021193362A1 - 画像処理装置および画像処理方法 - Google Patents
画像処理装置および画像処理方法 Download PDFInfo
- Publication number
- WO2021193362A1 WO2021193362A1 PCT/JP2021/011135 JP2021011135W WO2021193362A1 WO 2021193362 A1 WO2021193362 A1 WO 2021193362A1 JP 2021011135 W JP2021011135 W JP 2021011135W WO 2021193362 A1 WO2021193362 A1 WO 2021193362A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- frame
- image
- data
- image processing
- display
- Prior art date
Links
- 238000012545 processing Methods 0.000 title claims abstract description 337
- 238000003672 processing method Methods 0.000 title claims description 5
- 238000000034 method Methods 0.000 claims abstract description 43
- 230000008569 process Effects 0.000 claims abstract description 37
- 230000033001 locomotion Effects 0.000 claims description 17
- 230000006870 function Effects 0.000 claims description 9
- 230000015654 memory Effects 0.000 claims description 9
- 238000004904 shortening Methods 0.000 claims description 3
- 238000004590 computer program Methods 0.000 claims description 2
- 239000000725 suspension Substances 0.000 claims 1
- 230000006837 decompression Effects 0.000 description 39
- 230000006835 compression Effects 0.000 description 31
- 238000007906 compression Methods 0.000 description 31
- 238000003860 storage Methods 0.000 description 25
- 230000005540 biological transmission Effects 0.000 description 16
- 210000003128 head Anatomy 0.000 description 16
- 238000004891 communication Methods 0.000 description 12
- 238000012937 correction Methods 0.000 description 12
- 230000000694 effects Effects 0.000 description 11
- 230000008859 change Effects 0.000 description 8
- 238000006243 chemical reaction Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 230000003111 delayed effect Effects 0.000 description 3
- 239000004973 liquid crystal related substance Substances 0.000 description 3
- 230000036632 reaction speed Effects 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 238000012935 Averaging Methods 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 2
- 230000000740 bleeding effect Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000009499 grossing Methods 0.000 description 2
- 230000010365 information processing Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000002360 preparation method Methods 0.000 description 2
- 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
- 230000002457 bidirectional effect Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000009792 diffusion process Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 206010025482 malaise Diseases 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 230000010355 oscillation Effects 0.000 description 1
- 230000004043 responsiveness Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000002194 synthesizing effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- 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/12—Synchronisation between the display unit and other units, e.g. other display units, video-disc players
-
- 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/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
- G06F3/147—Digital output to display device ; Cooperation and interconnection of the display device with other functional units using display panels
-
- 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
- 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/438—Interfacing the downstream path of the transmission network originating from a server, e.g. retrieving encoded video stream packets from an IP network
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2320/00—Control of display operating conditions
- G09G2320/10—Special adaptations of display systems for operation with variable images
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2340/00—Aspects of display data processing
- G09G2340/02—Handling of images in compressed format, e.g. JPEG, MPEG
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2340/00—Aspects of display data processing
- G09G2340/04—Changes in size, position or resolution of an image
- G09G2340/0407—Resolution change, inclusive of the use of different resolutions for different screen areas
- G09G2340/0435—Change or adaptation of the frame rate of the video stream
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2354/00—Aspects of interface with display user
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2360/00—Aspects of the architecture of display systems
- G09G2360/18—Use of a frame buffer in a display terminal, inclusive of the display panel
Definitions
- the present invention relates to an image processing device and an image processing method for processing moving image data to be displayed.
- the communication between the client terminal and the server, the processing timing in each, and the delay time depending on the processing time may become 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 includes an image data acquisition unit that acquires frame data that constitutes a moving image from an external device that is not integrally provided, and image processing that performs predetermined processing on the frame data so that it can be displayed. It is characterized by including a unit and a display control unit that refers to the frame rate of the moving image and provides an opportunity to output the data of the frame in a displayable state to the display panel more than the frame rate of the moving image. ..
- the image processing device acquires a frame data constituting a moving image from an external device that is not integrally provided, and a step of applying a predetermined process to the frame data so that the frame data can be displayed. It is characterized by including a step of referring to the frame rate of the moving image and providing an opportunity to output the data of the frame in a displayable state to the display panel more than the frame rate of the moving image.
- 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 display 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 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 for demonstrating the effect of making the processing rate of an image processing apparatus higher than the frame rate of a moving image in this embodiment. It is a figure which shows the structure of the functional block of the server and the image processing apparatus of this embodiment.
- FIG. 1 shows a configuration example of an image display system according to the present embodiment.
- the image display system 1 includes an image processing device 200, a head-mounted display 100, a flat plate display 302, and a server 400.
- the image processing device 200 is connected to the head-mounted display 100 and the flat-plate display 302 by wireless communication or an interface 300 such as USB Type-C or HDMI (registered trademark).
- the image processing device 200 is further connected to the server 400 via a network 306 such as the Internet or a LAN (Local Area Network).
- a network 306 such as the Internet or a LAN (Local Area Network).
- the server 400 As an image data transfer device, the server 400 generates at least a part of the image to be displayed and transmits it to the image processing device 200.
- the server 400 may be a server of a company or the like that provides various distribution services such as a cloud game, or a home server that transmits data to an arbitrary terminal. Therefore, the scale of the network 306 is not limited, such as a public network such as the Internet or a LAN.
- 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 image processing device 200 converts the transmitted image data into a format suitable for the head-mounted display 100 and the flat-plate display 302 as necessary, and then converts the transmitted image data into the head-mounted display 100 and the flat-plate display 302 at an appropriate timing. Output. By repeating such processing for each frame of the moving image, it is possible to realize a cloud gaming system in which a plurality of users participate.
- the image processing device 200 uses the image transmitted from the server 400 as a separately prepared UI (User Interface) plain image (also referred to as an OSD (On Screen Display) plain image) or a camera included in the head mount display 100. After synthesizing the images captured by the above, the images may be output to the head mount display 100 or the flat plate display 302.
- UI User Interface
- OSD On Screen Display
- the image processing device 200 may also improve the followability of the display with respect to the movement of the head by correcting the image transmitted from the server 400 based on the position and posture immediately before the display of the head-mounted display 100.
- the image processing device 200 displays an image on the flat plate display 302 in the same field of view so that another person can see what kind of image the user wearing the head-mounted display 100 is viewing. You may do so.
- the server 400 may display an image taken by a camera (not shown) as a display target and deliver it live to the image processing device 200.
- the server 400 acquires multi-viewpoint images taken by a plurality of cameras at an event venue such as a sports competition or a concert, and uses the images to create an image in a field of view corresponding to the movement of the head-mounted display 100.
- a free-viewpoint live image may be generated and distributed to each image processing device 200.
- the configuration of the system to which this embodiment can be applied is not limited to the one shown in the figure.
- the display device connected to the image processing device 200 may be either the head-mounted display 100 or the flat plate display 302, or may be a plurality of head-mounted displays 100.
- the image processing device 200 may be built in the head-mounted display 100 or the flat plate display 302.
- a flat-plate display 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) having them integrally.
- At least one of the head-mounted display 100 and the flat plate display 302 may be connected to these devices as needed.
- An input device (not shown) may be built in or connected to the image processing device 200 or these terminals.
- the number of image processing devices 200 connected to the server 400 is not limited.
- the server 400 receives the operation contents of the plurality of users who are viewing the flat plate display 302 from the plurality of image processing devices 200 connected to the flat plate display 302, and generates an image corresponding to the operation contents. Moreover, it may be transmitted to each image processing apparatus 200.
- FIG. 2 shows an example of the appearance of the head-mounted display 100.
- the head-mounted display 100 is composed of an output mechanism unit 102 and a mounting mechanism unit 104.
- the mounting mechanism unit 104 includes a mounting band 106 that goes around the head and realizes fixing of the device when the user wears it.
- the output mechanism 102 includes a housing 108 having a shape that covers the left and right eyes when the head-mounted display 100 is worn by the user, and includes a display panel inside so as to face the eyes when the head-mounted display 100 is worn.
- the inside of the housing 108 is further provided with an eyepiece located between the display panel and the user's eyes when the head-mounted display 100 is attached to magnify the image.
- the head-mounted display 100 may further include a speaker or earphone at a position corresponding to the user's ear when worn.
- the head-mounted display 100 further includes a stereo camera 110 on the front surface of the housing 108, a monocular camera 111 with a wide viewing angle in the center, and four cameras 112 with a wide viewing angle at the four corners of the upper left, upper right, lower left, and lower right. Take a video of the real space in the direction corresponding to the direction of the face.
- the head-mounted display 100 provides a see-through mode in which a moving image captured by the stereo camera 110 is immediately displayed to show the state of the real space in the direction in which the user is facing.
- At least one of the images captured by the stereo camera 110, the monocular camera 111, and the four cameras 112 may be used to generate the display image.
- SLAM Simultaneous Localization and Mapping
- the image may be corrected in the device 200.
- the captured image may be combined with the image transmitted from the server 400 to form a display image.
- the head-mounted display 100 may be provided with any of motion sensors for deriving the position, posture, and movement of the head-mounted display 100, such as an acceleration sensor, a gyro sensor, and a geomagnetic sensor.
- the image processing device 200 acquires information on the position and posture of the user's head at a predetermined rate based on the measured values of the motion sensor. This information can be used to determine the field of view of the image generated by the server 400 and to correct the image in the image processing device 200.
- FIG. 3 shows the basic configuration of the server 400 and the image processing device 200 according to the present embodiment.
- the server 400 and the image processing device 200 according to the present embodiment are provided with a local memory for storing a partial image smaller than one frame of the displayed image at a key point. Then, compression coding and transmission of image data in the server 400, data reception in the image processing device 200, decoding / decompression, various image processing, and output to the display device are pipelined in units of the partial image. As a result, the delay time from the drawing of the image on the server 400 to the display on the display device connected to the image processing device 200 is reduced.
- the drawing control unit 402 is realized by the CPU (Central Processing Unit) and controls the drawing of the image in the image drawing unit 404.
- the content of the image to be displayed in the present embodiment is not particularly limited, but the drawing control unit 402 advances the cloud game, for example, and causes the image drawing unit 404 to draw a frame of a moving image representing the result.
- the drawing control unit 402 may acquire information related to the position and posture of the user's head from the image processing device 200 and control to draw each frame in the corresponding visual field.
- the image drawing unit 404 is realized by a GPU (Graphics Processing Unit), draws a frame of a moving image at a predetermined or variable rate under the control of the drawing control unit 402, and stores the result in the frame buffer 406.
- the frame buffer 406 is realized by RAM (Random Access Memory).
- the video encoder 408 compresses and encodes the image data stored in the frame buffer 406 in units of partial images smaller than one frame.
- the partial image is an image of each region formed by dividing the image plane of the frame into a predetermined size at 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 conventional technology that synchronizes various processes such as frame drawing and compression coding with reference to the vertical synchronization signal
- the time given to each process from image drawing to display is aligned in frame units to manage the frame order. Is easy.
- the drawing process ends early depending on the contents of the frame, it is necessary to wait for the compression coding process until the next vertical synchronization signal.
- unnecessary waiting time is prevented from occurring.
- the coding method used by the video encoder 408 for compression coding is H.I. 264 / AVC and H. A general one such as 265 / HEVC may be used.
- the video encoder 408 stores the 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 the data size of a partial image smaller than one frame. The same applies to the "partial image storage unit" described later.
- the video stream control unit 414 reads the data, includes audio data, control information, and the like as necessary, and then packets the data. do.
- the control unit 412 constantly monitors the data writing status of the video encoder 408 for the partial image storage unit 410, the data reading status of the video stream control unit 414, and the like, and appropriately controls the operations of both. For example, the control unit 412 controls the partial image storage unit 410 so that data shortage, that is, buffer underrun, or data overflow, that is, buffer overrun does not occur.
- the input / output interface 416 establishes communication with the image processing device 200, and the video stream control unit 414 sequentially transmits packetized data via the network 306.
- the input / output interface 416 may appropriately transmit audio data 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 a procedure according to the coding 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. Alternatively, the image processing unit 214 may refer to a separately prepared UI plane image and combine (superimpose) it with the image transmitted from the server 400.
- the image processing unit 214 may combine the image captured by the camera included in the head-mounted display 100 with the image transmitted from the server 400.
- the image processing unit 214 may also correct the image transmitted from the server 400 so that the field of view corresponds to the position and posture of the user's head at the time of processing.
- the image processing unit 214 may also perform image processing suitable for output to the flat plate display 302, such as super-resolution processing.
- the image processing unit 214 performs processing in units of partial images stored in the partial image storage unit 210, and sequentially stores them in the partial image storage unit 216.
- the partial image storage unit 216 is a local memory provided between the image processing unit 214 and the display controller 220.
- the control unit 218 constantly monitors the data writing status of the image processing unit 214 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 display of an image in the present embodiment.
- the server 400 generates the moving image frame 90 at a predetermined or variable rate.
- the frame 90 has a configuration in which images for the left eye and an image for the right eye are represented in a region divided into two equal parts on the left and right, but the configuration of the image generated by the server 400 is not limited to this.
- the server 400 compresses and encodes the frame 90 for each partial image.
- the image plane is divided into five in the horizontal direction to obtain partial images 92a, 92b, 92c, 92d, and 92e.
- the partial images are compressed and coded one after another in this order, transmitted to the image processing apparatus 200 and displayed as shown by the arrows. That is, while the uppermost partial image 92a is subjected to processing such as compression coding, transmission, decoding / decompression, and output to the display panel 94, the lower partial image 92b and the lower partial image 92c are referred to.
- the partial images are sequentially transmitted and displayed as described above. As a result, various processes required from image drawing to display can be performed in parallel, and the display can be advanced with the minimum delay even if the transfer time intervenes.
- FIG. 5 is a diagram for explaining the effect of the server 400 and the image processing device 200 performing pipeline processing on a partial image basis 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.
- any of the cases (a) and (b) in order for the processing flow as shown to be stably repeated, all the consecutive frames correspond to the frame rate of the moving image. It needs to be in a state where it can be displayed at regular intervals.
- the image processing device 200 of the present embodiment performs at least a part of the processing performed internally at a frame generation rate by the server 400, that is, a rate higher than the original frame rate of the moving image.
- the "rate” means the number of frames that can be processed per unit time, and the processing does not necessarily have to be performed in all the processing cycles. Even if the processing rate is increased, the frequency with which the frames of the moving image are updated is basically determined by the frame generation rate by the server 400.
- the latter is referred to as a "frame rate of moving image” to distinguish it from the processing rate of the image processing apparatus 200.
- the unit of data processed by the "rate” is not limited to a frame, but may be a partial image or the like.
- FIG. 6 is a diagram for explaining the effect of making the processing rate of the image processing device 200 higher than the frame rate of the moving image.
- the frame rate of the moving image is 60 Hz (60 fps).
- Both (a) and (b) in the figure indicate the time for the image processing apparatus 200 to perform the decoding / decompression processing (upper row) and the output processing to the display panel (lower row) with respect to the passage of time on the horizontal axis.
- the rectangle is the processing time for each frame, and the number of the frame to be processed is shown in the rectangle.
- FIGS. 9 and 10 shown later show a mode in which decoding / decompression processing and output to the display panel are performed in frame units as shown in FIG. 5A for easy understanding.
- the decoding / decompression processing of the same frame and the output processing to the display panel are performed in parallel as shown in FIG. 5B.
- the effect is similar. That is, the present embodiment described later can be applied to the unit of processing in the image processing apparatus 200 as a frame or as a partial image smaller than that.
- FIG. 6A shows a case where both the decoding / decompression processing performed by the image processing device 200 and the output processing to the display panel are performed at the frame rate of the moving image of 60 Hz.
- the image processing apparatus 200 outputs the data of the frame in which the decoding / decompression processing is completed and is in a displayable state, waiting for the next vertical synchronization signal.
- the data in the “0” frame starts to be output to the display panel at the timing of the vertical synchronization signal “v1” that arrives most recently after the decoding and decompression is completed.
- the image in the "2" frame is displayed without displaying the "1" frame. Will be done. That is, in this example, the "1st" frame is dropped.
- the frame display time may become longer or shorter, which may cause the user to feel uncomfortable with the movement of the display target. As described above, such a phenomenon can occur not only by the decoding / decompression processing but also by the jitter of compression coding and data transmission in the server 400, various processing in the image processing apparatus 200, and the jitter of the vertical synchronization signal itself.
- (B) shows a case where the decoding / decompression processing performed by the image processing apparatus 200 is performed at 60 Hz and the output process to the display panel is performed at 120 Hz. That is, as shown by the vertical line in the figure, the vertical synchronization signal is generated twice as much as in the case of (a). By doing so, the chances of output to the display panel are increased, and it is possible to suppress the influence of fluctuations in the timing at which the image can be displayed due to the various factors described above. In the illustrated example, even if the time required for the decoding / decompression processing of the “1” frame increases in the same manner as in (a), the frame can be output to the display at the timing of the vertical synchronization signal “v5” immediately after.
- the maximum time from when the frame can be displayed until the vertical synchronization signal is generated can be shortened. Thereby, for example, even in a mode in which the image is changed according to the user operation, the delay time until the display can be suppressed and the responsiveness can be improved.
- the data of the frame for which the decoding / decompression processing is completed is output, but the effect is the same even if the data is further subjected to a predetermined image processing as described above.
- the output rate to the display panel was increased by increasing the frequency of the vertical sync signal, but as will be described later, the processing performed at a rate higher than the frame rate of the moving image is output to the display panel. Not limited to. Further, in the illustrated example, the output rate to the display panel is set to 120 Hz with respect to the frame rate of 60 Hz for the moving image, but the same effect can be obtained by increasing the latter to at least the former. However, by setting the processing rate to N times the frame rate of the moving image (N is an integer of 2 or more), it becomes easier to control the processing, the display time of each frame becomes equal, and the movement of the display target moves. It tends to be natural.
- FIG. 7 shows the configuration of the functional blocks of the server 400 and the image processing device 200 of the present embodiment.
- Each functional block shown in the figure can be realized by a CPU, GPU, encoder, decoder, arithmetic unit, various memories, etc. in terms of hardware, and in terms of software, an information processing function and an image loaded into memory from a recording medium. It is realized by a program that exerts various functions such as drawing function, data input / output function, and communication function. Therefore, it is understood by those skilled in the art that these functional blocks can be realized in various forms by hardware only, software only, or a combination thereof, and is not limited to any of them.
- the server 400 includes an image generation unit 420, a compression coding unit 422, a packetization unit 424, 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 region required for the compression coding.
- the partial image which is a unit of pipeline processing in compression coding and transmission, may be the same as the area of the minimum unit, or may be a larger area.
- the packetizing unit 424 is composed of the video stream control unit 414 and the control unit 412 of FIG. 3, and packetizes the compressed and encoded partial image data in a format according to the communication protocol to be used.
- generation time the time when the partial image is drawn (hereinafter referred to as “generation time”) is obtained from the image generation unit 420 or the compression coding unit 422 and is associated with the data of the partial image.
- the communication unit 426 is composed of the input / output interface 416 of FIG. 3, and transmits a packet including the compression-encoded partial image data and the generation time thereof to the image processing device 200.
- the server 400 performs compression coding, packetization, and transmission in parallel by pipeline processing in units of partial images smaller than one frame.
- the 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 includes the input / output interface 202, the partial image storage unit 204, and the control unit 206 of FIG. 3, and acquires compression-encoded partial image data from the server 400 together with its generation time.
- the 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 compression-encoded partial image data.
- the decoding / decompression unit 242 may start the decoding / decompression processing when the image data acquisition unit 240 acquires data in the smallest unit region required for compression coding such as motion compensation and coding.
- the decoding / stretching unit 242 may include a processing rate control unit 243.
- the processing rate control unit 243 controls the decoding / stretching unit 242 so that the rate of the decoding / stretching processing is higher than the frame rate of the moving image.
- the decoding / stretching unit 242 repeats the cycle of decoding / stretching processing for each frame at a rate higher than the frame rate of the moving image.
- the frame rate of the moving image refers to the one acquired by the image data acquisition unit 240 as the metadata of the moving image.
- the processing rate control unit 243 determines the rate of decoding / decompression processing based on the frame rate. When the frame rate of the moving image is variable, the processing rate control unit 243 may change the rate of the decoding / decompression processing accordingly.
- the "rate" of the decoding / decompression processing corresponds to the "opportunity" of performing the decoding / decompression of one frame in the same manner as the output rate to the display panel described above. That is, the fact that the decoding / stretching unit 242 increases the rate of the decoding / stretching processing means that the time for the decoding / stretching processing for one frame is shortened because the decoding / stretching processing of the next frame can be started in a short time. do. Since the frame rate of the moving image to be processed is determined on the server 400 side, a cycle in which the data of the frame to be decoded and expanded is not acquired may occur depending on the timing. In this case, the decoding / stretching unit 242 suspends the decoding / stretching process in that cycle.
- the processing rate control unit 243 is necessary to process the data of the frame without delay based on the amount of data of the frame to be processed acquired per unit time, and can suspend the processing by shortening the processing time. Find the computing power to make. Then, the decoding / stretching unit 242 controls to perform the decoding / stretching process in the mode corresponding to the determined computing power. For example, when the decoding / decompression unit 242 is composed of a processor (not shown), a motion vector entropy calculator, and a pixel denoising filter, the operating clock frequency of each block may be changed, or the number of hard-wired blocks operating in parallel may be changed. By doing so, the mode of computing power is switched.
- the processing rate control unit 243 has a processor processing capacity of 10 GFLOPS and 20 GFLOPS, a motion vector entropy calculator processing capacity of 100 Mop / s and 200 Mop / s, and a pixel denoising filter processing capacity of 1000 MPixel / s and 2000 MPixel / s. Switch between each.
- the image processing unit 244 is composed of the image processing unit 214, the partial image storage unit 216, the control unit 212, and the control unit 218 of FIG. 3, and performs predetermined processing on the partial image data to generate the partial image data for display. do. 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, when the decoded image data is in the HDR (High Dynamic Range) brightness range compatible format, the image processing unit 244 has a narrow HDR brightness range compatible range of the display display (the displayable brightness dynamic range is defined in the HDR format). Pseudo-HDR processing (color space change) may be performed to convert the HDR image into a brightness range format in a range compatible with the display panel while retaining the features of the HDR image as much as possible (such as narrower).
- HDR High Dynamic Range
- the image processing unit 244 uses an HDR-compatible format for the decoded image data, but when the display display supports only SDR (Standard Dynamic Range), the color space is changed to the SDR format while retaining the features of the HDR image as much as possible. It may be converted.
- the decoded image data is in an SDR compatible format, but when the display display is compatible with HDR, the image processing unit 244 may enhance conversion to the HDR format according to the characteristics of the HDR panel as much as possible.
- the image processing unit 244 may add error diffusion or perform a dithering process that is processed together with the pixel format conversion. Further, the image processing unit 244 may correct the region when there is a partial loss or abnormality in the decoded image data due to lack of network transfer data or garbled bits. Further, the image processing unit 244 may perform correction with pixels estimated from the periphery of the past frame or the current frame by filling with a single color, correction by duplication of nearby pixels, correction by pixels near the previous frame, and adaptive defect correction.
- the image processing unit 244 may perform image compression in order to reduce the required band of the interface output from the image processing device 200 to the display device.
- the image processing unit 244 may perform lightweight entropy coding by reference to neighboring pixels, index value reference coding, Huffman coding, and the like.
- the resolution can be increased, but the reaction speed is slow.
- an organic EL panel is used as the display device, the reaction speed is high, but it is difficult to increase the resolution, and a phenomenon called Black Smearing, in which color bleeding occurs in and around the black region, may occur.
- the image processing unit 244 may make corrections so as to eliminate various adverse effects of such a display panel. For example, in the case of a liquid crystal panel, the image processing unit 244 resets the liquid crystal by inserting a black image between the frames to improve the reaction speed. Further, in the case of the organic EL panel, the image processing unit 244 offsets the luminance value and the gamma value in the gamma correction to make the color bleeding due to Black Smearing less noticeable.
- the image processing unit 244 may perform super-resolution processing (SuperResolution) on the image to improve the definition and restore or reconstruct the high-frequency component.
- SuperResolution super-resolution processing
- the image processing unit 244 may convert the image by inputting the image data into the database or network model constructed in advance by using machine learning or deep learning.
- the image processing unit 244 may reduce the delay by performing conversion in units of partial images. By matching the partial image unit at this time with the partial image unit determined based on the scanning order and the division configuration of the display panel, a series of processes can be made into a pipeline, and further reduction in delay can be realized.
- the image processing unit 244 may include a processing rate control unit 245.
- the processing rate control unit 245 controls the image processing unit 244 so that the rate of various processes to be performed is higher than the frame rate of the moving image.
- the frame rate of the moving image refers to the one acquired by the image data acquisition unit 240 as the metadata of the moving image.
- the processing rate control unit 245 determines the processing rate performed by the image processing unit 244 based on the frame rate.
- the processing rate control unit 245 may change the rate of various processings accordingly.
- the “rate” controlled by the processing rate control unit 245 has the same meaning as the rate controlled by the processing rate control unit 243 of the decoding / stretching unit 242. Therefore, the image processing unit 244 suspends the image processing being executed in the processing cycle in which the data of the frame to be processed has not been acquired.
- the processing rate control unit 245 is necessary to process the data of the frame without delay based on the amount of data of the frame to be processed acquired per unit time, and can suspend the processing by shortening the processing time. Find the computing power to make. Then, the image processing unit 244 controls to perform the decoding / decompression processing in the mode corresponding to the determined computing power.
- the control method may be the same as that of the processing rate control unit 243 described above.
- the display control unit 246 is composed of the display controller 220 and the control unit 218 of FIG. 3, and sequentially displays partial image data for display on the display panel of the head-mounted display 100 or the flat plate display 302.
- the acquisition order may be changed depending on the communication status, or the partial image data itself may not be acquired due to packet loss. Conceivable.
- the display control unit 246 derives the elapsed time from the drawing of the partial image from the generation time of each partial image, and outputs the partial image to the display panel so as to reproduce the drawing timing on the server 400. Adjust the timing. Specifically, the display control unit 246 sets the original display order and display timing of the partial image data, and the amount of missing partial image data based on the generation time of the partial image data and / or the elapsed time from the generation time. Identify the data acquisition status such as.
- the display control unit 246 changes the output target to the display panel according to the data acquisition status, and appropriately adjusts the output order and output timing. For example, the display control unit 246 determines whether to output the data of the original partial image included in the next frame or to output the data of the partial image included in the previous frame again according to the data acquisition status. .. The display control unit 246 determines such an output target by the timing of the vertical synchronization signal, which is the display start time of the next frame.
- the display control unit 246 responds to the amount (ratio) of the acquired partial image, such as replacing the output target with the data of the previous frame when the partial image is missing in the frame at a ratio of a predetermined value or more.
- the output target may be changed.
- the display control unit 246 may change the output target of the next frame display period according to the past output record of the frame and the elapsed time from the generation time.
- the display control unit 246 outputs the data of the partial image determined as the output target to the display panel in the order and timing determined in this way.
- the display control unit 246 includes a processing rate control unit 248.
- the processing rate control unit 248 refers to the frame rate of the moving image and provides an opportunity to output the data of the frame in a displayable state to the display panel more than the frame rate of the moving image.
- the processing rate control unit 248 controls the display control unit 246 so that the output rate of the frame data to the display panel is higher than the frame rate of the moving image.
- the display control unit 246 drives the display panel at a rate higher than the frame rate of the moving image.
- This process corresponds to increasing the frequency of the vertical sync signal, as shown in FIG. Therefore, if the data of a new frame cannot be displayed at the output timing of the display panel, that is, the timing of the vertical synchronization signal, the display control unit 246 outputs the data of the output frame again as described above.
- the display control unit 246 may be provided with a memory (not shown) that stores the data of the past frame until the data of the new frame in the displayable state is acquired.
- the timing at which the frame data can be displayed by the decoding / stretching unit 242 and the image processing unit 244 is the output timing to the display panel, that is, asynchronous with the vertical synchronization signal, and the frame data. Allows variable time to make the display visible. Even in these cases, as shown in FIG. 6, the display control unit 246 outputs the data of the frame in the displayable state to the display panel at the output timing that arrives immediately after, so that the display delay and the frame can be displayed. Suppress the fall.
- the processing rate control unit 248 may change the frequency of the vertical synchronization signal accordingly.
- the processing rate control unit 248 may also fine-tune not only the frequency of the vertical synchronization signal but also its generation timing. For example, if there is a minute error in the clock between the server 400 and the image processing device 200, as a result of the accumulation of such errors, the display cycle determined by the vertical synchronization signal deviates from the generation cycle of the moving image frame. Can be considered.
- the processing rate control unit 248 adjusts the generation timing of the vertical synchronization signal so that the deviation can be suppressed to a predetermined value or less. For example, when the frequency of the vertical synchronization signal is N times the frame rate of the moving image (N is an integer of 2 or more), the processing rate control unit 248 determines the interval of the generation time of each frame transmitted from the server 400 and the interval of the generation time. The generation timing of the vertical synchronization signal is adjusted so that the times obtained by multiplying the period of the vertical synchronization signal by N are the same. The processing rate control unit 248 also measures the time from the time when the frame data can be displayed to the generation time of the vertical synchronization signal that arrives immediately after, and the generation timing of the vertical synchronization signal so that it becomes the target value. May be adjusted.
- FIG. 8 is a diagram for explaining the processing time of each frame when the decoding / decompression processing rate is set higher than the frame rate of the moving image.
- the decoding / stretching unit 242 performs decoding / stretching processing at 60 Hz (upper row), which is the same as the frame rate of the moving image, and 120 Hz (lower row), which is twice as high as the frame rate of the moving image.
- the processing time (processing cycle) is indicated by a rectangle.
- the characters in the rectangle indicate the time when the decoding process is performed by "ON" and the pause time when the decoding process is not performed by "OFF".
- the image data for one frame is basically transmitted from the server 400 at a cycle of 1/60 (sec).
- the decoding / stretching processing rate is set to 60 Hz
- the decoding / stretching unit 242 of the image processing apparatus 200 completes the decoding / stretching processing for one frame in 1/60 (sec) as shown in the upper part of the figure. Operate. As described above, the actual processing time increases or decreases depending on the jitter.
- the decoding / stretching unit 242 operates so as to complete the decoding / stretching process for one frame in a time of 1/120 (sec) as shown in the lower part of the figure.
- the image data acquisition unit 240 acquires moving image data at 60 Hz, data to be newly decoded and decompressed is not acquired in the latter half of the 1/60 (sec) cycle.
- the decoding / stretching unit 242 does not need to decode / stretch the frame for which decoding / stretching is completed in the first half of 1/60 (sec), and suspends processing in the latter half of the cycle as shown in the figure.
- the decoding / stretching unit 242 does not need to start the decoding / stretching process in synchronization with the vertical synchronization signal. That is, the decoding / stretching unit 242 may start decoding / stretching of the target data if the data to be decrypted / stretched arrives and the decoding / stretching of the data of the previous frame is completed.
- frame data is constantly obtained in a cycle of 1/60 Hz
- "ON" and "OFF” appear alternately in the 120 Hz decoding / decompression processing operation, but the timing of data acquisition and The timing of turning "ON" varies depending on the processing time of the previous frame.
- FIG. 9 is a diagram for explaining changes in the display due to various combinations of the output rate to the display panel and the decoding / decompression processing rate.
- the representation of the figure is the same as in FIG. 6, and the frame rate of the moving image is 60 Hz.
- FIG. 6A shows both a case where the decoding / stretching process is performed at 60 Hz, which is the same as the frame rate of the moving image, and a case where the output process to the display panel is performed at 60 Hz and 120 Hz.
- the jitter when the decoding / decompression unit 242 acquires the compressed coded data in the “1” frame is indicated by the arrow 14.
- the result is the same as that shown in FIG. That is, when a vertical synchronization signal of 60 Hz, which is the same as the frame rate of the moving image, shown by the vertical line in the figure is output to the display panel, the completion of the decoding / stretching of the “1st” frame is not in time for the original display timing. If the output to the display panel is performed at 120 Hz, the opportunity for output increases, and the possibility of output even if the data acquisition is delayed increases.
- (B) shows the case where the decoding / decompression processing is also performed at 120 Hz.
- the chances of decoding and decompressing a new frame are increased by speeding up the decoding and decompression processing.
- the timing at which the decoding and decompression of each frame is completed can be moved forward more steadily than in the case of (a).
- the possibility of catching up with the immediately following vertical synchronization signal can be increased.
- the decoding / decompression processing of the previous frame is not completed. Therefore, it is possible to suppress the occurrence of situations where data must be kept waiting.
- the figure shows the effect when the rate of the decoding / stretching processing by the decoding / stretching unit 242 is increased, the same effect can be obtained by increasing the set rate for the image processing performed by the image processing unit 244.
- the decoding / decompression processing rate is set to 120 Hz with respect to the frame rate of the moving image of 60 Hz, but the same effect can be obtained by increasing the latter to at least the former.
- the processing can be easily controlled by setting the processing rate to N'times the frame rate of the moving image (N'is an integer of 2 or more).
- the processing rate may be the same as the output rate to the display panel, or each may be determined independently. That is, the parameter N'may have the same value as or different from the above-mentioned parameter N.
- FIG. 10 is a diagram for explaining a principle in which the processing rate control unit 248 of the image processing apparatus 200 adjusts the generation timing of the vertical synchronization signal.
- the figure shows the progress of processing in the server 400 and the image processing device 200 in parallel with the passage of time on the horizontal axis.
- the rectangle is the processing time for each frame, and the frame number is shown in the rectangle.
- the server 400 performs image drawing, compression coding, and transmission processing at the frame rate of the moving image.
- the vertical synchronization signal of the server 400 is generated at the timing of Sv0, Sv1, Sv2, Sv3, ..., which is indicated by the vertical line in the figure, and the processing of each frame is started from that as the starting point.
- the image processing device 200 applies decoding / decompression and various image processing as necessary to display the data of each frame transmitted from the server 400 so that the data can be displayed, and immediately after that, the vertical synchronization signal is transmitted to the display panel. Start output.
- the vertical synchronization signal of the image processing device 200 is generated at a frequency higher than the vertical synchronization signal of the server 400 at the timing of Cv0, Cv1, Cv2, Cv3, ....
- the frequency is set to twice the frame rate of the moving image.
- the image processing device 200 acquires the data in the "0" frame at a time t0 independent of the vertical synchronization signal of the server 400 and performs processing to make it into a display image state, and the latest vertical synchronization signal arrives. Output to the display panel is started with "Cv3".
- the image of the "0" frame is displayed at least between the vertical synchronization signals "Cv3" and "Cv4". If the data in the next "1" frame can be displayed in the vertical synchronization signal "Cv4", the display control unit 246 outputs the data to the display panel. As shown in the figure, if the data in the "1" frame is not in a displayable state in the vertical synchronization signal "Cv4", the display control unit 246 outputs the data in the "0" frame again.
- the frame rate is the same as the original moving image, except when some frames are not displayed in time due to the jitter of each process.
- the display can be realized.
- the frequency of the vertical synchronization signal is not N times the frame rate, and the cumulative error also causes frame dropping and display time failure. Uniformity can occur.
- the processing rate control unit 248 finely adjusts the generation timing of the vertical synchronization signal so that the processing cycle for each frame of the server 400 and the time obtained by multiplying the period of the vertical synchronization signal by N match. do. Specifically, the processing rate control unit 248 sets the interval Ts of the generation time of each frame transmitted from the server 400 together with the frame data and the time obtained by multiplying the period of the vertical synchronization signal by N (double in the case of the figure). Compare with Tc. If there is a difference of more than the threshold value between the two, the timing of generating the vertical synchronization signal is shifted so as to reduce the difference.
- the threshold value may be 0 or any other value. Such adjustments may be performed on a regular basis or at predetermined time intervals based on a time comparison of a plurality of frames. At this time, the processing rate control unit 248 may gradually shift the generation timing of the vertical synchronization signal over a plurality of frames so that the display does not collapse with one large change.
- the processing rate control unit 248 measures the difference between the time t1 at which the frame can be displayed and the time of the vertical synchronization signal Cv3 immediately after that, that is, the time 16, so that the difference becomes a predetermined target value.
- the generation timing of the vertical synchronization signal may be adjusted.
- the frame can be displayed at the completion time when the processing by the image processing unit 244 is performed, and at the completion time of the decoding / stretching processing at the decoding / stretching unit 242 when the processing is not performed.
- the processing rate control unit 248 may measure the time 16 for a predetermined number of frames and determine the shift amount based on the average value or the like. As a result, the vertical synchronization signal shown in the middle part of the figure is adjusted to the vertical synchronization signal shown in the lowermost part. In the figure, the time t1 and the vertical synchronization signal Cv3 are matched, but in reality, the vertical synchronization signal may be generated with a delay of a predetermined time in consideration of the jitter of each process. Further, the processing rate control unit 248 may gradually shift the generation timing of the vertical synchronization signal over a plurality of frames so that the display does not collapse with one large change.
- the image processing device 200 performs at least a part of the processing. Perform at a rate higher than the frame rate of the moving image.
- the timing of frame preparation It is possible to reduce the possibility that the output to the display panel will be lost or the display will be delayed.
- the server 400 and the image processing device 200 can process one frame in parallel by performing necessary processing in units of partial images smaller than one frame and sequentially outputting them to the display panel, reducing the delay time from drawing to display. Can be made to. Furthermore, by adjusting the generation timing of the vertical synchronization signal so as to eliminate the difference in the processing cycle with the server 400 and to shorten the waiting time from when the frame can be displayed until it is output to the display panel. , More stable and low delay display can be realized.
- the present invention applies to various devices such as image processing devices, content processing devices, information terminals, mobile terminals, game devices, head-mounted displays, display devices, television receivers, and systems including any of them. It is available.
- 1 image display system 100 head mount display, 200 image processing device, 240 image data acquisition unit, 242 decoding / decompression unit, 243 processing rate control unit, 244 image processing unit, 245 processing rate control unit, 246 display control unit, 248 processing Rate control unit, 302 flat plate display, 400 server, 420 image generation unit, 422 compression coding unit, 424 packetization unit, 426 communication unit.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Signal Processing (AREA)
- Human Computer Interaction (AREA)
- General Engineering & Computer Science (AREA)
- Controls And Circuits For Display Device (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
画像処理装置200の画像データ取得部240は、サーバ400が生成した動画像のフレームのデータを取得する。復号伸張部242は、動画像のフレームレートより高いレートで各フレームの復号伸張処理のサイクルを繰り返す。画像処理部244は、動画像のフレームレートより高いレートで各フレームに必要な画像処理を行うサイクルを繰り返す。表示制御部246は、動画像のフレームレートより高いレートで、表示可能な状態のフレームのデータを表示パネルに出力する。
Description
この発明は、表示対象の動画像のデータを処理する画像処理装置および画像処理方法に関する。
近年の情報処理技術や画像表示技術の向上により、様々な形態で映像世界を体験することができるようになってきた。例えばヘッドマウントディスプレイにパノラマ映像を表示し、ユーザの視線に対応する画像を表示させることにより、映像世界への没入感を高めたり、ゲームなどのアプリケーションの操作性を向上させたりできる。また、潤沢なリソースを有するサーバからストリーミング転送された画像データを表示させることにより、ユーザは場所や規模によらず高精細な動画像やゲーム画面を楽しむことができる。
ネットワークを介して伝送された画像のデータをクライアント端末に即時表示させる技術においては、当該クライアント端末とサーバ間の通信やそれぞれにおける処理のタイミング、処理時間に依存した遅延時間が問題となり得る。例えばクライアント端末側でのユーザ操作を表示画像に反映させる場合、ユーザ操作のサーバへの送信と、サーバからクライアント端末への画像データの送信といったデータの行き来が必要になり、看過できない遅延時間を生むことがある。ヘッドマウントディスプレイを表示先とする場合は、ユーザの頭部の動きに対し表示が遅れることにより、臨場感が損なわれたり映像酔いを引き起こしたりすることも考えられる。この問題は、高い画質を追求するほど顕在化しやすい。
本発明はこうした課題に鑑みてなされたものであり、その目的は、通信によるデータ伝送を伴う画像表示において、画質と遅延時間の低減を両立させることのできる技術を提供することにある。
上記課題を解決するために、本発明のある態様は画像処理装置に関する。この画像処理装置は、一体的に設けられていない外部装置から動画像を構成するフレームのデータを取得する画像データ取得部と、フレームのデータに所定の処理を施し表示可能な状態とする画像処理部と、動画像のフレームレートを参照し、表示可能な状態のフレームのデータを表示パネルに出力する機会を動画像のフレームレートより多く提供する表示制御部と、を備えたことを特徴とする。
本発明の別の態様は画像処理方法に関する。この画像処理方法は画像処理装置が、一体的に設けられていない外部装置から動画像を構成するフレームのデータを取得するステップと、フレームのデータに所定の処理を施し表示可能な状態とするステップと、動画像のフレームレートを参照し、表示可能な状態の前記フレームのデータを表示パネルに出力する機会を動画像のフレームレートより多く提供するステップと、を含むことを特徴とする。
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラム、データ構造、記録媒体などの間で変換したものもまた、本発明の態様として有効である。
本発明によれば、通信によるデータ伝送を伴う画像表示において、画質と遅延時間の低減を両立させることができる。
図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など、その規模は限定されない。例えばネットワーク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はさらに、筐体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に適切なタイミングで出力する。具体的には、それらのディスプレイの垂直同期信号に合致するタイミングで、各フレームの最上段の部分画像のデータを出力し、その後、下方に向けて部分画像のデータを順次出力していく。
次に、画像の描画から表示までにサーバ400および画像処理装置200において実現される、部分画像のパイプライン処理について説明する。図4は、本実施の形態における、画像の描画から表示までの処理の様子を概念的に示している。上述のとおりサーバ400は、動画像のフレーム90を所定または可変のレートで生成する。図示する例でフレーム90は、左右に二等分した領域に左目用、右目用の画像をそれぞれ表した構成を有するが、サーバ400で生成する画像の構成をこれに限る趣旨ではない。
サーバ400は上述のとおり、フレーム90を部分画像ごとに圧縮符号化する。図では画像平面を水平方向に5分割し、部分画像92a、92b、92c、92d、92eとしている。これにより、部分画像はこの順で次々に圧縮符号化され、矢印に示すように画像処理装置200へ伝送され表示される。すなわち最上段の部分画像92aに対し、圧縮符号化、送信、復号伸張、表示パネル94への出力といった処理が施されている間に、その下の部分画像92b、さらに下の部分画像92c、というように順次部分画像が伝送され表示される。これにより、画像の描画から表示までに必要な各種処理を並列に実施でき、転送時間が介在しても最低限の遅延で表示を進捗させることができる。
図5は、本実施の形態においてサーバ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による圧縮符号化を、垂直同期信号を契機に開始しているが、上述のとおり垂直同期信号を待たずに圧縮符号化を行えば、遅延時間をさらに短縮できる。
ここで(a)、(b)の態様のいずれの場合であっても、図示するような処理の流れが安定的に繰り返されるには、連続するフレームの全てが、動画のフレームレートに対応する一定周期で表示可能な状態となっている必要がある。一方、サーバ400における圧縮符号化、ネットワークを介したデータ伝送、画像処理装置200における復号伸張や各種画像処理の所要時間には揺らぎ(ジッター)が存在する。またクロック発振回路に起因して、各処理のタイミングを制御するクロックにもジッターが含まれる。
ジッターにより各種処理や伝送の所要時間が増加したり垂直同期信号が早まったりすると、それぞれの振れ幅が微小であっても累積された結果として、フレームのデータ準備が出力タイミングに間に合わなくなることが考えられる。これにより、当該フレームが表示されない「コマ落ち」が発生したり、表示に遅延が生じたりする可能性がある。
そこで本実施の形態の画像処理装置200は、内部で行う処理の少なくとも一部を、サーバ400によるフレームの生成レート、すなわち動画本来のフレームレートより高いレートで実施する。ここで「レート」とは、単位時間当たりに処理が可能なフレーム数を意味し、必ずしも全ての処理サイクルで処理を実施しなくてもよい。また処理のレートを増加させても、動画像のフレームが更新される頻度は、基本的にはサーバ400によるフレームの生成レートによって定まる。以後、後者を「動画像のフレームレート」と呼び、画像処理装置200での処理のレートと区別する。なお全体として、「レート」で処理されるデータの単位はフレームに限らず、部分画像などでもよい。
図6は、画像処理装置200の処理レートを動画像のフレームレートより高くする効果を説明するための図である。この例で動画像のフレームレートを60Hz(60fps)とする。図の(a)、(b)はいずれも、横軸の時間経過に対し、画像処理装置200が復号伸張処理(上段)および表示パネルへの出力処理(下段)を行う時間を示している。矩形はフレームごとの処理時間であり、処理対象のフレームの番号を矩形内に示している。
なお同図および後に示す図9、10は理解を容易にするため、図5の(a)のように、復号伸張処理と表示パネルへの出力をフレーム単位で行う態様を示している。部分画像単位で処理を進捗させる場合は、図5の(b)のように、同じフレームの復号伸張処理と表示パネルへの出力処理が並列でなされるが、本実施の形態を実現する原理や効果は同様である。すなわち以後に説明する本実施の形態は、画像処理装置200における処理の単位をフレームとしても、それより小さい部分画像としても適用可能である。
(a)は画像処理装置200が行う復号伸張処理および表示パネルへの出力処理の双方を、動画像のフレームレートである60Hzで行う場合を示している。図の縦線で示されるv0、v1、v2、・・・は、60Hzの垂直同期信号を表す。図5について上述したとおり、画像処理装置200は、復号伸張処理が完了して表示可能な状態になったフレームのデータを、次の垂直同期信号を待って出力する。例えば図6の(a)において、「0」フレーム目のデータは、復号伸張が完了してから直近に到来する垂直同期信号「v1」のタイミングで、表示パネルへの出力が開始される。「2」フレーム目、「3」フレーム目も同様である。
一方、復号伸張処理には上述のとおりジッターが存在するため、例えば「1」フレーム目の復号伸張処理に要する時間が矢印12で示すように揺らぐ。その結果、処理時間が増加方向に変化した場合、本来表示パネルへの出力を開始すべき「v2」のタイミングに間に合わなくなる可能性がある。すると表示パネルには、それまで表示されていた「0」フレーム目のデータが再度出力され表示される。
またこの例では次の垂直同期信号「v3」より前に「2」フレーム目のデータの復号伸張が完了しているため、「1」フレーム目が表示されないまま「2」フレーム目の画像が表示されることになる。すなわちこの例では「1」フレーム目がコマ落ちする。復号伸張処理の時間の揺れ方によっては、フレーム表示時間が長くなったり短くなったりすることにより、表示対象の動きにユーザが違和感を持つ可能性もある。このような現象は上述のとおり、復号伸張処理のみならず、サーバ400での圧縮符号化やデータ伝送、画像処理装置200での様々な処理のジッターや、垂直同期信号自体のジッターによって起こり得る。
(b)は、画像処理装置200が行う復号伸張処理を60Hzのまま、表示パネルへの出力処理を120Hzで行う場合を示している。すなわち図の縦線で示すように、垂直同期信号を(a)の場合の2倍発生させる。このようにすると、表示パネルへの出力の機会が増えることになり、上述した様々な要因による、画像が表示可能になるタイミングの揺らぎの影響を抑えることができる。図示する例では、「1」フレーム目の復号伸張処理に要する時間が(a)と同様に増加しても、直後の垂直同期信号「v5」のタイミングで、当該フレームをディスプレイに出力できる。
このように出力の機会を追加で設けることにより、コマ落ちの可能性が低くなる。またフレームが表示可能な状態になってから垂直同期信号が発生するまでの最長時間を短縮できる。これにより、例えばユーザ操作に応じて画像を変化させるような態様においても、表示までの遅延時間を抑え応答性を向上させることができる。なお図示する例は、復号伸張処理が完了したフレームのデータを出力しているが、上述のとおり当該データにさらに所定の画像処理を施しても効果は同様である。
また同図の場合、垂直同期信号の周波数を高くすることにより表示パネルへの出力レートを上げたが、後述するように、動画像のフレームレートより高いレートで行う処理は、表示パネルへの出力に限らない。また図示する例では動画像のフレームレート60Hzに対し表示パネルへの出力レートを120Hzとしたが、少なくとも前者に対し後者を大きくすれば同様の効果が得られる。ただし処理のレートを動画像のフレームレートのN倍(Nは2以上の整数)とすることにより、処理の制御が容易になるとともに、各フレームの表示時間が均等になり、表示対象の動きが自然になりやすい。
図7は、本実施の形態のサーバ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により取得されたら、復号伸張処理を開始してよい。
また復号伸張部242は処理レート制御部243を備えてよい。処理レート制御部243は、復号伸張処理のレートを動画像のフレームレートより高くするように復号伸張部242を制御する。これにより復号伸張部242は、各フレームの復号伸張処理のサイクルを、動画像のフレームレートより高いレートで繰り返す。動画像のフレームレートは、画像データ取得部240が動画像のメタデータとして取得したものを参照する。処理レート制御部243は当該フレームレートに基づき復号伸張処理のレートを決定する。動画像のフレームレートを可変とする場合、処理レート制御部243は、復号伸張処理のレートをそれに合わせて変化させてもよい。
なお復号伸張処理の「レート」とは、上述した表示パネルへの出力レートと同様、1フレームの復号伸張を実施する「機会」に対応する。すなわち復号伸張部242が復号伸張処理のレートを高めるということは、次のフレームの復号伸張処理の開始を短時間で可能にするため、1フレーム分の復号伸張処理の時間を短縮することを意味する。処理対象の動画像のフレームレートはサーバ400側で決定づけられるため、タイミングによっては復号伸張対象のフレームのデータが未取得のサイクルが発生し得る。この場合、復号伸張部242はそのサイクルにおいて復号伸張処理を一時休止する。
例えば処理レート制御部243は、単位時間あたりに取得する処理対象のフレームのデータ量に基づき、当該フレームのデータを滞りなく処理するために必要、かつ、処理時間の短縮により処理の一時休止を可能にする演算能力を求める。そして復号伸張部242が、決定した演算能力に対応するモードで復号伸張処理を行うように制御する。例えば復号伸張部242が、図示しないプロセッサ、動きベクトルエントロピー計算器、およびピクセルデノイズフィルタで構成されるとき、各ブロックの動作クロック周波数を変更したり、並列稼働するハードワイヤードブロック数を変更したりすることにより演算能力のモードを切り替える。一例として処理レート制御部243は、プロセッサの処理能力を10GFLOPSと20GFLOPS、動きベクトルエントロピー計算器の処理能力を100Mop/sと200Mop/s、ピクセルデノイズフィルタの処理能力を1000MPixel/sと2000MPixel/sの間でそれぞれ切り替える。
画像処理部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による色にじみを目立ちにくくする。
画像処理部244は画像に対し、高精細度化や、高周波数成分の復元や再構築を行う超解像処理(Super Resolution)を行ってもよい。画像処理部244はこのとき、機械学習や深層学習を用いてあらかじめ構築したデータベースやネットワークモデルへ画像データを入力することにより画像を変換してもよい。ここで画像処理部244は、部分画像単位で変換を実施することにより低遅延化を図ってよい。このときの部分画像単位を、表示パネルの走査順序や分割構成に基づいて決定された部分画像単位と一致させることで、一連の処理をパイプライン化でき、さらなる低遅延化を実現できる。
また画像処理部244は処理レート制御部245を備えてよい。処理レート制御部245は、実施する各種処理のレートを動画像のフレームレートより高くするように画像処理部244を制御する。上述のとおり動画像のフレームレートは、画像データ取得部240が動画像のメタデータとして取得したものを参照する。処理レート制御部245は当該フレームレートに基づき画像処理部244が行う処理のレートを決定する。
動画像のフレームレートを可変とする場合、処理レート制御部245は、各種処理のレートをそれに合わせて変化させてもよい。なお処理レート制御部245が制御する「レート」も、復号伸張部242の処理レート制御部243が制御するレートと同じ意味を有する。したがって画像処理部244は、処理対象のフレームのデータが未取得の処理サイクルにおいて、実施中の画像処理を一時休止する。
例えば処理レート制御部245は、単位時間あたりに取得する処理対象のフレームのデータ量に基づき、当該フレームのデータを滞りなく処理するために必要、かつ、処理時間の短縮により処理の一時休止を可能にする演算能力を求める。そして画像処理部244が、決定した演算能力に対応するモードで復号伸張処理を行うように制御する。制御の仕方は上述の処理レート制御部243と同様でよい。
表示制御部246は、図3のディスプレイコントローラ220と制御部218で構成され、表示用の部分画像のデータを順次、ヘッドマウントディスプレイ100や平板型ディスプレイ302の表示パネルに表示させる。ただし本実施の形態では、部分画像の圧縮符号化データをサーバ400から個別に取得するため、通信状況によっては取得順が入れ替わったり、パケットロスにより部分画像のデータ自体が取得できなかったりすることが考えられる。
そこで表示制御部246は、部分画像が描画されてからの経過時間を、各部分画像の生成時刻から導出したうえ、サーバ400での描画タイミングを再現するように、表示パネルへの部分画像の出力タイミングを調整する。具体的には表示制御部246は、部分画像のデータの生成時刻、および/または生成時刻からの経過時間に基づき、部分画像のデータの本来の表示順や表示タイミング、部分画像のデータの欠落量などのデータ取得状況を特定する。
そして表示制御部246は、データ取得状況に応じて、表示パネルへの出力対象を変化させたり、出力順や出力タイミングを適切に調整したりする。例えば表示制御部246はデータ取得状況に応じて、次のフレームに含まれる本来の部分画像のデータを出力するか、それより前のフレームに含まれる部分画像のデータを再度出力するかを決定する。表示制御部246は、次のフレームの表示開始時刻である垂直同期信号のタイミングまでにそのような出力対象を決定する。
例えば表示制御部246は、フレーム中、所定値以上の割合で部分画像が欠落している場合に、出力対象を前のフレームのデータに置き換えるなど、取得された部分画像の量(割合)に応じて出力対象を変化させてもよい。また表示制御部246は、過去のフレームの出力実績や、生成時刻からの経過時間に応じて、次のフレーム表示期間の出力対象を変化させてもよい。表示制御部246は、そのように決定した順序およびタイミングで、出力対象として決定された部分画像のデータを表示パネルに出力する。
また表示制御部246は処理レート制御部248を備える。処理レート制御部248は、動画像のフレームレートを参照し、表示可能な状態のフレームのデータを表示パネルに出力する機会を動画像のフレームレートより多く提供する。例えば処理レート制御部248は、フレームデータの表示パネルへの出力レートを、動画像のフレームレートより高くするように表示制御部246を制御する。その結果、表示制御部246は、動画像のフレームレートより高いレートで表示パネルを駆動する。
この処理は図6で示したように、垂直同期信号の周波数を上げることに相当する。したがって、表示パネルの出力タイミングすなわち垂直同期信号のタイミングにおいて新たなフレームのデータが表示可能となっていなければ、表示制御部246は上述したように、出力済みのフレームのデータを再度出力する。図6の例では、垂直同期信号「v2」、「v3」、「v4」のタイミングで、同じ「0」フレーム目のデータを出力、表示している。このため表示制御部246には、表示可能な状態の新たなフレームのデータを取得するまで、過去のフレームのデータを格納しておく、図示しないメモリを設けてよい。
また本実施の形態では、復号伸張部242や画像処理部244によってフレームのデータが表示可能な状態となるタイミングが表示パネルへの出力タイミング、すなわち垂直同期信号と非同期であることや、フレームのデータを表示可能な状態とするのに要する時間が可変であることを許容する。これらの場合においても表示制御部246は、図6で示したように、表示可能な状態となったフレームのデータを、直後に到来した出力タイミングで表示パネルへ出力することで、表示遅延やコマ落ちを抑制する。
なお動画像のフレームレートを可変とする場合、処理レート制御部248は垂直同期信号の周波数をそれに合わせて変化させてもよい。処理レート制御部248はまた、垂直同期信号の周波数のみならず、その発生タイミングを微調整してもよい。例えばサーバ400と画像処理装置200との間でクロックに微小な誤差があると、それが累積した結果、垂直同期信号により定まる表示周期が、動画像のフレームの生成周期とずれていってしまうことが考えられる。
そこで処理レート制御部248は、当該ずれが所定値以下に抑えられるように、垂直同期信号の発生タイミングを調整する。例えば垂直同期信号の周波数を、動画像のフレームレートのN倍(Nは2以上の整数)とする場合、処理レート制御部248は、サーバ400から送信される各フレームの生成時刻の間隔と、垂直同期信号の周期をN倍した時間が一致するように、垂直同期信号の発生タイミングを調整する。処理レート制御部248はまた、フレームのデータが表示可能になった時刻から直後に到来する垂直同期信号の発生時刻までの時間を計測し、それが目標値となるように垂直同期信号の発生タイミングを調整してもよい。
図8は、復号伸張処理のレートを動画像のフレームレートより高くしたときの、各フレームの処理時間について説明するための図である。同図は横軸の時間経過に対し、復号伸張部242が、動画像のフレームレートと同じ60Hz(上段)、および2倍の120Hz(下段)で、復号伸張処理を行う際の1フレームあたりの処理時間(処理のサイクル)を矩形で示している。矩形内の文字は「ON」が復号処理を行う時間、「OFF」が復号処理を行わない一時休止の時間を示している。
動画像のフレームレートが60Hzであれば、サーバ400からは基本的に1/60(sec)周期で1フレーム分の画像データが送信される。復号伸張処理のレートを60Hzで設定すると、画像処理装置200の復号伸張部242は図の上段に示すように、1/60(sec)の時間で1フレーム分の復号伸張処理が完了するように動作する。なお実際の処理時間は上述のとおり、ジッターによって増減する。
一方、復号伸張処理のレートを120Hzとすると、復号伸張部242は図の下段に示すように、1/120(sec)の時間で1フレーム分の復号伸張処理が完了するように動作する。一方、画像データ取得部240は60Hzで動画像のデータを取得するため、1/60(sec)周期の後半には、新たに復号伸張すべきデータは取得されないことになる。このとき復号伸張部242は、1/60(sec)の前半において復号伸張が完了したフレームを再度復号伸張する必要はなく、図示するように後半のサイクルにおいては処理を一時休止する。
ここで復号伸張部242は垂直同期信号と同期して復号伸張処理を開始する必要はない。すなわち復号伸張部242は、復号伸張対象のデータが到着し、かつ前フレームのデータの復号伸張が完了していれば、当該対象のデータの復号伸張を開始してよい。図では1/60Hzの周期で定常的にフレームのデータが得られることを想定し、120Hzの復号伸張処理動作において「ON」と「OFF」が交互に発現しているが、データ取得のタイミングや前のフレームの処理時間に依存して「ON」とするタイミングは様々となる。
図9は、表示パネルへの出力レートと復号伸張処理のレートの様々な組み合わせによる表示の変化を説明するための図である。図の表し方は図6と同様であり、動画像のフレームレートは60Hzとする。(a)は図6と同様、復号伸張処理を動画像のフレームレートと同じ60Hzで行い、表示パネルへの出力処理は、60Hzで行う場合と120Hzで行う場合の双方を表している。
ただしこの例では、復号伸張部242が「1」フレーム目の圧縮符号化データを取得する際のジッターを矢印14で表している。データ取得タイミングのジッターであっても、図6で示したのと同様の結果となる。すなわち図の縦線で示す、動画像のフレームレートと同じ60Hzの垂直同期信号で表示パネルへ出力した場合、「1」フレーム目の復号伸張の完了が本来の表示タイミングに間に合わなくなっている。表示パネルへの出力を120Hzで行うと出力の機会が増え、データ取得が遅れたフレームであっても出力される可能性が高くなる。
(b)は復号伸張処理も120Hzで行った場合を示している。詳細には図8で示したように、復号伸張処理を高速化することにより新たなフレームの復号伸張の機会を増やしている。これにより、各フレームの復号伸張が完了するタイミングを、(a)の場合より定常的に前倒しできる。また図の「1」フレーム目のように画像データの取得に遅延があっても、直後の垂直同期信号に間に合わせる可能性を高められる。
さらに、次のフレーム(図では「2」フレーム目)の圧縮符号化データを取得しているにもかかわらず、前のフレーム(図では「1」フレーム目)の復号伸張処理が完了していないためにデータを待機させざるを得ない状況の発生を抑えられる。なお図では復号伸張部242による復号伸張処理のレートを高めた場合の効果を示したが、画像処理部244が行う画像処理についても設定レートを上げることにより同様の効果が得られる。
さらに図示する例では動画像のフレームレート60Hzに対し復号伸張処理のレートを120Hzとしたが、少なくとも前者に対し後者を大きくすれば同様の効果が得られる。ただし処理のレートを動画像のフレームレートのN’倍(N’は2以上の整数)とすることにより処理の制御が容易になる。ここで処理のレートは、表示パネルへの出力レートと同一としてもよいし、それぞれを独立に決定してもよい。すなわちパラメータN’は上述のパラメータNと同値でもよいし異なっていてもよい。
図10は、画像処理装置200の処理レート制御部248が、垂直同期信号の発生タイミングを調整する原理を説明するための図である。図は横軸の時間経過に対し、サーバ400および画像処理装置200での処理の経過を並列に示している。矩形はフレームごとの処理時間であり、フレーム番号を矩形内に示している。サーバ400は、動画像のフレームレートで画像の描画、圧縮符号化、送信処理を行っている。
つまりサーバ400の垂直同期信号は図の縦線で示されるSv0、Sv1、Sv2、Sv3、・・・のタイミングで発生し、それを始点として各フレームの処理が開始される。画像処理装置200は、サーバ400から送信された各フレームのデータに対し、復号伸張や必要に応じた各種画像処理を施して表示可能な状態としたうえ、直後の垂直同期信号で表示パネルへの出力を開始する。
画像処理装置200の垂直同期信号は、Cv0、Cv1、Cv2、Cv3、・・・のタイミングで、サーバ400の垂直同期信号より高い周波数で発生させる。図では、動画像のフレームレートの2倍の周波数としている。例えば画像処理装置200は、「0」フレーム目のデータをサーバ400の垂直同期信号とは独立した時刻t0で取得して処理を施すことにより表示画像な状態にして、直近に到来する垂直同期信号「Cv3」で表示パネルへの出力を開始する。
結果として、少なくとも垂直同期信号「Cv3」から「Cv4」の間で、「0」フレーム目の画像が表示される。垂直同期信号「Cv4」において次の「1」フレーム目のデータが表示可能な状態となっていれば、表示制御部246は当該データを表示パネルへ出力する。図示するように垂直同期信号「Cv4」において、「1」フレーム目のデータが表示可能な状態になっていなければ、表示制御部246は「0」フレーム目のデータを再び出力する。
いずれにしろ垂直同期信号の周波数をフレームレートのN倍とすることにより、各処理のジッターに起因して一部のフレームの表示が間に合わない場合を除き、元の動画像と同じフレームレートでの表示を実現できる。しかしながらサーバ400のクロックと画像処理装置200のクロックに誤差があると、厳密には垂直同期信号の周波数がフレームレートのN倍となっておらず、その累積誤差によりやはりコマ落ちや表示時間の不均一性が生じたりすることがあり得る。
そこで処理レート制御部248は上述のとおり、垂直同期信号の発生タイミングを微調整することにより、サーバ400のフレームごとの処理の周期と、垂直同期信号の周期をN倍した時間が一致するようにする。具体的には処理レート制御部248は、フレームのデータとともにサーバ400から送信される、各フレームの生成時刻の間隔Tsと、垂直同期信号の周期をN倍(図の場合は2倍)した時間Tcとを比較する。そして両者にしきい値以上の差がある場合、その差を縮小するように垂直同期信号の発生タイミングをずらす。
ここでしきい値は0でもよいしそれ以外の値でもよい。このような調整は定常的、あるいは所定の時間間隔で、複数フレームの時間比較に基づき実施してよい。この際、処理レート制御部248は、垂直同期信号の発生タイミングを複数フレームに渡り徐々にずらしていくことにより、一度の大きな変更で表示が破綻しないようにしてもよい。
また処理レート制御部248は、フレームが表示可能な状態となった時刻t1と直後の垂直同期信号Cv3の時刻との差、すなわち時間16を測定し、その差が所定の目標値となるように垂直同期信号の発生タイミングを調整してもよい。ここでフレームが表示可能な状態となるのは、画像処理部244による処理を実施する場合はその完了時刻、実施しない場合は復号伸張部242における復号伸張処理の完了時刻である。
処理レート制御部248は、所定数のフレームについて時間16を測定し、その平均値などに基づきずらし量を決定してもよい。結果として図の中段に示した垂直同期信号は、最下段に示す垂直同期信号に調整される。なお図では時刻t1と垂直同期信号Cv3を合致させているが、実際には各処理のジッターを考慮して所定時間、遅れて垂直同期信号が発生するようにしてよい。また処理レート制御部248は、垂直同期信号の発生タイミングを複数フレームに渡り徐々にずらしていくことにより、一度の大きな変更で表示が破綻しないようにしてもよい。
以上述べた本実施の形態によれば、サーバ400が生成した画像のデータを、クライアントである画像処理装置200が受信し表示させる形態のシステムにおいて、画像処理装置200は処理の少なくとも一部を、動画像のフレームレートより高いレートで実施する。これにより、サーバ400内部での処理時間、データ伝送時間、画像処理装置200内部での処理時間、サーバ400や画像処理装置200での垂直同期信号の発生タイミングが様々に揺らいでも、フレーム準備のタイミングが合わず表示パネルへの出力の機会が失われたり、表示が遅延したりする可能性を低くできる。
その結果、表示のコマ落ちや表示対象の不自然な動きなどの不具合を抑制でき、低遅延の表示を安定して行える。またサーバ400および画像処理装置200は、1フレームより小さい部分画像の単位で必要な処理を施して表示パネルに順次出力することにより、1フレームを並列処理でき、描画から表示までの遅延時間を軽減させることができる。さらにサーバ400との処理周期の差を解消したり、フレームが表示可能になってから表示パネルへ出力されるまでの待機時間を短縮したりするように垂直同期信号の発生タイミングを調整することにより、より安定的かつ低遅延の表示を実現できる。
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
以上のように本発明は、画像処理装置、コンテンツ処理装置、情報端末、携帯端末、ゲーム装置、ヘッドマウントディスプレイ、表示装置、テレビ受像器などの各種機器や、それらのいずれかを含むシステムなどに利用可能である。
1 画像表示システム、 100 ヘッドマウントディスプレイ、 200 画像処理装置、 240 画像データ取得部、 242 復号伸張部、 243 処理レート制御部、 244 画像処理部、 245 処理レート制御部、 246 表示制御部、 248 処理レート制御部、 302 平板型ディスプレイ、 400 サーバ、 420 画像生成部、 422 圧縮符号化部、 424 パケット化部、 426 通信部。
Claims (17)
- 一体的に設けられていない外部装置から動画像を構成するフレームのデータを取得する画像データ取得部と、
前記フレームのデータに所定の処理を施し表示可能な状態とする画像処理部と、
前記動画像のフレームレートを参照し、表示可能な状態の前記フレームのデータを表示パネルに出力する機会を前記動画像のフレームレートより多く提供する表示制御部と、
を備えたことを特徴とする画像処理装置。 - 前記表示制御部は、前記動画像のフレームレートより高いレートで前記表示パネルを駆動することを特徴とする請求項1に記載の画像処理装置。
- 前記画像処理部によって前記フレームのデータが表示可能な状態となるタイミングが前記表示パネルへの出力タイミングと非同期であるとき、前記表示制御部は、表示可能な状態となった前記フレームのデータを、直後に到来した出力タイミングで出力することを特徴とする請求項1または2に記載の画像処理装置。
- 前記画像処理部が前記フレームのデータを表示可能な状態とするのに要する時間が可変のとき、前記表示制御部は、表示可能な状態となった前記フレームのデータを、前記表示パネルの出力タイミングのうち直後に到来した出力タイミングで出力することを特徴とする請求項1から3のいずれかに記載の画像処理装置。
- 前記表示制御部は、前記表示パネルの出力タイミングにおいて、表示可能な状態の新たなフレームのデータが未取得のとき、出力済みのフレームのデータを再度出力することを特徴とする請求項1から4のいずれかに記載の画像処理装置。
- 前記表示制御部は、表示可能な状態の新たなフレームのデータを取得するまで、過去のフレームのデータを内部のメモリに保持することを特徴とする請求項5に記載の画像処理装置。
- 前記画像処理部は、前記動画像のフレームレートを参照し、それに基づき決定した、前記フレームレートより高いレートで、各フレームの処理サイクルを繰り返すことにより、前記フレームのデータを表示可能な状態とすることを特徴とする請求項1から6のいずれかに記載の画像処理装置。
- 前記画像処理部は、処理対象のフレームのデータが未取得の処理サイクルにおいて前記所定の処理を一時休止することを特徴とする請求項2に記載の画像処理装置。
- 前記画像処理部は、単位時間あたりに取得する処理対象のフレームのデータ量に基づき、当該フレームのデータを滞りなく処理するために必要、かつ、処理時間の短縮により処理の一時休止を可能にする演算能力を求め、当該演算能力のモードで前記所定の処理を実施することを特徴とする請求項8に記載の画像処理装置。
- 前記画像処理部は、プロセッサ、動きベクトルエントロピー計算器、およびピクセルデノイズフィルタを備え、それらの動作クロック周波数の変更、または並列稼働するハードワイヤードブロック数の変更により、前記演算能力のモードを切り替えることを特徴とする請求項9に記載の画像処理装置。
- 前記画像データ取得部は、前記動画像のデータを1フレームより小さい部分画像単位で取得し、
前記画像処理部は、前記部分画像のデータに所定の処理を施し表示用の部分画像のデータを生成し、
前記表示制御部は、前記表示用の部分画像のデータを順次表示パネルに出力することを特徴とする請求項1から10のいずれかに記載の画像処理装置。 - 前記表示制御部は、前記動画像のフレームレートのN倍(Nは2以上の整数)の周波数で垂直同期信号を発生させることにより、当該周波数で各フレームのデータを表示パネルに出力することを特徴とする請求項1から11のいずれかに記載の画像処理装置。
- 画像データ取得部は、前記外部装置から各フレームのデータとともにその生成時刻を取得し、
前記表示制御部は、各フレームの生成時刻の間隔と前記垂直同期信号の周期を前記N倍した時間が一致するように、前記垂直同期信号の発生タイミングを調整することを特徴とする請求項12に記載の画像処理装置。 - 前記表示制御部は、前記画像処理部によりフレームのデータが表示可能な状態となった時刻から、直後に到来する前記垂直同期信号の発生時刻までの時間を計測し、当該時間が目標値となるように、前記垂直同期信号の発生タイミングを調整することを特徴とする請求項12または13に記載の画像処理装置。
- 前記画像処理部は、前記動画像のフレームレートのN’倍(N’は2以上の倍数)のレートで前記処理サイクルを繰り返すことを特徴とする請求項7から9のいずれかに記載の画像処理装置。
- 一体的に設けられていない外部装置から動画像を構成するフレームのデータを取得するステップと、
前記フレームのデータに所定の処理を施し表示可能な状態とするステップと、
前記動画像のフレームレートを参照し、表示可能な状態の前記フレームのデータを表示パネルに出力する機会を前記動画像のフレームレートより多く提供するステップと、
を含むことを特徴とする画像処理装置による画像処理方法。 - 一体的に設けられていない外部装置から動画像を構成するフレームのデータを取得する機能と、
前記フレームのデータに所定の処理を施し表示可能な状態とする機能と、
前記動画像のフレームレートを参照し、表示可能な状態の前記フレームのデータを表示パネルに出力する機会を前記動画像のフレームレートより多く提供する機能と、
をコンピュータに実現させることを特徴とするコンピュータプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/908,077 US12046218B2 (en) | 2020-03-26 | 2021-03-18 | Image processing apparatus and image processing method |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020-056530 | 2020-03-26 | ||
JP2020056530A JP7321961B2 (ja) | 2020-03-26 | 2020-03-26 | 画像処理装置および画像処理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2021193362A1 true WO2021193362A1 (ja) | 2021-09-30 |
Family
ID=77891729
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2021/011135 WO2021193362A1 (ja) | 2020-03-26 | 2021-03-18 | 画像処理装置および画像処理方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US12046218B2 (ja) |
JP (1) | JP7321961B2 (ja) |
WO (1) | WO2021193362A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024189704A1 (ja) * | 2023-03-10 | 2024-09-19 | 株式会社セガ | ゲームシステム、ゲーム端末、表示調整装置およびコンピュータプログラム |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001285877A (ja) * | 2000-03-31 | 2001-10-12 | Matsushita Electric Ind Co Ltd | 圧縮符号化データ復号装置および復号方法 |
JP2005124167A (ja) * | 2003-09-25 | 2005-05-12 | Canon Inc | フレームレート変換装置、それに用いられる追い越し予測方法、表示制御装置及び映像受信表示装置 |
JP2005338498A (ja) * | 2004-05-27 | 2005-12-08 | Mitsubishi Electric Corp | 表示メモリ装置 |
JP2007300568A (ja) * | 2006-05-08 | 2007-11-15 | Matsushita Electric Ind Co Ltd | 映像信号処理装置 |
JP2010206486A (ja) * | 2009-03-03 | 2010-09-16 | Sharp Corp | 動画像ストリーム復号装置及びその制御方法並びにプログラム、記録媒体 |
JP2012182673A (ja) * | 2011-03-01 | 2012-09-20 | Toshiba Corp | 映像表示装置及び映像処理方法 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2658832B2 (ja) * | 1993-11-12 | 1997-09-30 | 日本電気株式会社 | 動画像復号制御装置 |
US6354278B1 (en) | 1999-03-30 | 2002-03-12 | Suzuki Kabushiki Kaisha | Engine of outboard motor |
US6469744B1 (en) * | 1999-07-06 | 2002-10-22 | Hitachi America, Ltd. | Methods and apparatus for encoding, decoding and displaying images in a manner that produces smooth motion |
TWI355199B (en) * | 2007-03-26 | 2011-12-21 | Realtek Semiconductor Corp | Display control device and method |
JP5471328B2 (ja) | 2009-11-13 | 2014-04-16 | 日本電気株式会社 | 動画像再生装置及び動画像再生方法並びにプログラム |
JP6248671B2 (ja) * | 2014-02-10 | 2017-12-20 | 富士通株式会社 | 情報処理装置、方法、プログラム、および情報処理システム |
WO2015182189A1 (ja) * | 2014-05-28 | 2015-12-03 | ソニー株式会社 | 情報処理装置、および情報処理方法、並びにプログラム |
KR102398027B1 (ko) * | 2015-07-03 | 2022-05-17 | 삼성전자주식회사 | 전자 장치의 동적 프리뷰 디스플레이 방법 및 그 전자 장치 |
JP6868802B2 (ja) * | 2015-08-03 | 2021-05-12 | パナソニックIpマネジメント株式会社 | 送信方法、受信方法、送信装置及び受信装置 |
US9728166B2 (en) * | 2015-08-20 | 2017-08-08 | Qualcomm Incorporated | Refresh rate matching with predictive time-shift compensation |
US20170078609A1 (en) * | 2015-09-16 | 2017-03-16 | Quopin Co., Ltd. | Image processing method and apparatus based on screen spliting |
EP3503569A1 (en) * | 2017-12-19 | 2019-06-26 | Thomson Licensing | Method of transmitting video frames from a video stream to a display and corresponding apparatus |
-
2020
- 2020-03-26 JP JP2020056530A patent/JP7321961B2/ja active Active
-
2021
- 2021-03-18 US US17/908,077 patent/US12046218B2/en active Active
- 2021-03-18 WO PCT/JP2021/011135 patent/WO2021193362A1/ja active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001285877A (ja) * | 2000-03-31 | 2001-10-12 | Matsushita Electric Ind Co Ltd | 圧縮符号化データ復号装置および復号方法 |
JP2005124167A (ja) * | 2003-09-25 | 2005-05-12 | Canon Inc | フレームレート変換装置、それに用いられる追い越し予測方法、表示制御装置及び映像受信表示装置 |
JP2005338498A (ja) * | 2004-05-27 | 2005-12-08 | Mitsubishi Electric Corp | 表示メモリ装置 |
JP2007300568A (ja) * | 2006-05-08 | 2007-11-15 | Matsushita Electric Ind Co Ltd | 映像信号処理装置 |
JP2010206486A (ja) * | 2009-03-03 | 2010-09-16 | Sharp Corp | 動画像ストリーム復号装置及びその制御方法並びにプログラム、記録媒体 |
JP2012182673A (ja) * | 2011-03-01 | 2012-09-20 | Toshiba Corp | 映像表示装置及び映像処理方法 |
Also Published As
Publication number | Publication date |
---|---|
US12046218B2 (en) | 2024-07-23 |
JP7321961B2 (ja) | 2023-08-07 |
US20230086916A1 (en) | 2023-03-23 |
JP2021158508A (ja) | 2021-10-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11470301B2 (en) | Systems and method for virtual reality video conversion and streaming | |
WO2021199205A1 (ja) | 画像データ転送装置、画像表示システム、および画像データ転送方法 | |
US7881369B2 (en) | Image transmission apparatus, image transmission method and image transmission program | |
WO2020108091A1 (zh) | 视频处理方法、装置、电子设备及存储介质 | |
TW201904294A (zh) | 數位內容串流壓縮 | |
JP7555698B2 (ja) | 画像データ転送装置および画像データ転送方法 | |
CN111026343A (zh) | 一种多个拼接屏实时同步显示方法 | |
US12088932B2 (en) | Methods and apparatus for encoding, communicating and/or using images | |
US20180102082A1 (en) | Apparatus, system, and method for video creation, transmission and display to reduce latency and enhance video quality | |
US20240316452A1 (en) | Displaying a decoded video frame at a client based on a targeted display time of a server | |
JP7307794B2 (ja) | 画像処理システム、画像処理用集積回路、および画像処理方法 | |
WO2021193362A1 (ja) | 画像処理装置および画像処理方法 | |
JP2014176017A (ja) | 映像再生装置、映像配信装置、映像再生方法及び映像配信方法 | |
JP7496412B2 (ja) | 画像表示システム、画像処理装置、画像表示方法、およびコンピュータプログラム | |
WO2021193361A1 (ja) | 画像データ転送装置、画像表示システム、および画像転送方法 | |
TW202218421A (zh) | 內容顯示處理 | |
WO2021199128A1 (ja) | 画像データ転送装置、画像生成方法およびコンピュータプログラム | |
TW202218424A (zh) | 用於網路傳輸的內容壓縮 | |
JP2016174273A (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: 21776040 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: 21776040 Country of ref document: EP Kind code of ref document: A1 |