WO2021193361A1 - 画像データ転送装置、画像表示システム、および画像転送方法 - Google Patents

画像データ転送装置、画像表示システム、および画像転送方法 Download PDF

Info

Publication number
WO2021193361A1
WO2021193361A1 PCT/JP2021/011134 JP2021011134W WO2021193361A1 WO 2021193361 A1 WO2021193361 A1 WO 2021193361A1 JP 2021011134 W JP2021011134 W JP 2021011134W WO 2021193361 A1 WO2021193361 A1 WO 2021193361A1
Authority
WO
WIPO (PCT)
Prior art keywords
image
unit
data
order
display
Prior art date
Application number
PCT/JP2021/011134
Other languages
English (en)
French (fr)
Inventor
活志 大塚
Original Assignee
株式会社ソニー・インタラクティブエンタテインメント
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社ソニー・インタラクティブエンタテインメント filed Critical 株式会社ソニー・インタラクティブエンタテインメント
Priority to US17/907,834 priority Critical patent/US20230142944A1/en
Publication of WO2021193361A1 publication Critical patent/WO2021193361A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/129Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1423Digital output to display device ; Cooperation and interconnection of the display device with other functional units controlling a plurality of local displays, e.g. CRT and flat panel display
    • G06F3/1446Digital output to display device ; Cooperation and interconnection of the display device with other functional units controlling a plurality of local displays, e.g. CRT and flat panel display display composed of modules, e.g. video walls
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/258Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2310/00Command of the display device
    • G09G2310/02Addressing, scanning or driving the display screen or processing steps related thereto
    • G09G2310/0202Addressing of scan or signal lines
    • G09G2310/0213Addressing of scan or signal lines controlling the sequence of the scanning lines with respect to the patterns to be displayed, e.g. to save power
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/02Handling of images in compressed format, e.g. JPEG, MPEG
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2350/00Solving problems of bandwidth in display systems

Definitions

  • the present invention relates to an image data transfer device and an image transfer method for processing moving image data to be displayed.
  • the delay time due to the communication between the client terminal and the server can be a problem.
  • the display may be delayed with respect to the movement of the user's head, which may impair the sense of presence or cause image sickness. This problem is more likely to become apparent as the pursuit of higher image quality is pursued.
  • the present invention has been made in view of these problems, and an object of the present invention is to provide a technique capable of achieving both image quality and reduction of delay time in image display accompanied by data transmission by communication.
  • an aspect of the present invention relates to an image data transfer device.
  • This image data transfer device is an image data transfer device that transfers moving image data to a client terminal, and has a drawing unit that generates frame data constituting the moving image and writes it to a memory, and a display connected to the client terminal.
  • a display method information acquisition unit that acquires information related to the scanning order of the panel, a compression coding unit that reads the data of the frame pixels from the memory in the order based on the information related to the scanning order, and compresses and encodes the data. It is characterized by having a communication unit for streaming and transferring frame data to a client terminal.
  • This image display system is an image display system including a server that transfers moving image data and a client terminal that receives the moving image data and displays it on a display panel, and the client terminals are connected.
  • a display method acquisition unit that acquires information related to the scanning order of the display panel and sends it to the server is provided, and the server acquires information related to the scanning order and a drawing unit that generates data of frames constituting a moving image and writes it to memory.
  • the display method information acquisition unit, the compression coding unit that reads the frame pixel data from the memory in the order based on the information related to the scanning order and compresses and encodes the data, and the compression-encoded frame data is streamed to the client terminal. It is characterized by having a communication unit for transferring.
  • Yet another aspect of the present invention relates to an image data transfer method.
  • the image data transfer device that transfers the moving image data to the client terminal generates the data of the frames constituting the moving image and writes it to the memory, and the scanning order of the display panel connected to the client terminal.
  • the step of acquiring the relevant information, the step of reading the frame pixel data from the memory in the order based on the scanning order and compressing and encoding, and the step of compressing and encoding the compressed and encoded frame data are streamed to the client terminal. It is characterized by including a step of transfer.
  • both image quality and reduction of delay time can be achieved at the same time.
  • FIG. 1 It is a figure which shows the configuration example of the image processing system in this embodiment. It is a figure which shows the appearance example of the head-mounted display of this embodiment. It is a figure which shows the basic structure of the server and the image processing apparatus in this embodiment. It is a figure which conceptually shows the state of the process from drawing to display of an image in this embodiment. It is a figure which illustrates the variation of the scanning direction of the display panel in this embodiment. It is a figure which shows the functional block of the server and the image processing apparatus of this embodiment. It is a figure which illustrates the correspondence between the scanning order of a display panel and the processing order in a server in this embodiment.
  • the compression coding unit of the server determines the order of reading data from the frame buffer. In various cases, the order in which the compression coding unit of the present embodiment reads data from the frame buffer is illustrated. It is a figure for demonstrating the setting example of various parameters by the handshake of a server and an image processing apparatus in this Embodiment. It is a figure for demonstrating another example of setting of various parameters by a handshake of a server and an image processing apparatus in this embodiment.
  • FIG. 1 shows a configuration example of an image processing system according to the present embodiment.
  • the image display system 1 includes an image processing device 200, a head-mounted display 100, a flat plate display 302, a mobile terminal 303, 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 and the mobile terminal 303 are 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 and the mobile terminal 303.
  • 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 or the mobile terminal 303 may be directly connected to the server 400 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.
  • the mobile terminal 303 is a device such as a portable game machine, a high-performance mobile phone, or a tablet terminal, which has the same functions as the image processing device 200 and is integrally provided with a display panel.
  • the image processing device 200 captures an image transmitted from the server 400 with a separately prepared UI (User Interface) plain image (also referred to as an OSD (On Screen Display) plain image) or a camera provided in the head mount display 100 or the like.
  • UI User Interface
  • OSD On Screen Display
  • the images may be combined and then output to the connected display panel.
  • the image processing device 200 whose output destination is the head-mounted display 100 corrects the image transmitted from the server 400 based on the position and posture immediately before the display of the head-mounted display 100, thereby following the display with respect to the movement of the head. You may enhance the sex.
  • 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 event venues such as sports competitions and concerts, and uses the images in a field of view according to the movement of the head-mounted display 100 and the mobile terminal 303. By creating it, a live image of a free viewpoint 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 device for displaying an image may be any of a head-mounted display 100, a flat plate display 302, and a mobile terminal 303, and the combination and number thereof are not limited.
  • the head-mounted display 100 and the flat plate display 302 may also have the image processing device 200 built-in.
  • a head-mounted display 100 or a flat plate display 302 may be further connected to these devices.
  • the mobile terminal 303 may be provided with a motion sensor for deriving the position, posture, and movement of the mobile terminal 303, such as an acceleration sensor, a gyro sensor, and a geomagnetic sensor. Further, the display panel of the mobile terminal 303 may be covered with a transparent touch pad so that the user's touch operation can be detected, or an input means such as a button (not shown) may be provided. An input device (not shown) may be connected to the image processing device 200. At this time, the server 400 may receive the operation content of each user, generate an image corresponding to each user, and then transmit the operation content to each image processing device 200.
  • FIG. 2 shows an example of the appearance of the head-mounted display 100.
  • the head-mounted display 100 is composed of an output mechanism unit 102 and a mounting mechanism unit 104.
  • the mounting mechanism unit 104 includes a mounting band 106 that goes around the head and realizes fixing of the device when the user wears it.
  • the output mechanism 102 includes a housing 108 having a shape that covers the left and right eyes when the head-mounted display 100 is worn by the user, and includes a display panel inside so as to face the eyes when the head-mounted display 100 is worn.
  • the inside of the housing 108 is further provided with an eyepiece located between the display panel and the user's eyes when the head-mounted display 100 is attached to magnify the image.
  • the head-mounted display 100 may further include a speaker or earphone at a position corresponding to the user's ear when worn.
  • the head-mounted display 100 further includes a stereo camera 110 on the front surface of the housing 108, a monocular camera 111 with a wide viewing angle in the center, and four cameras 112 with a wide viewing angle at the four corners of the upper left, upper right, lower left, and lower right. Take a video of the real space in the direction corresponding to the direction of the face.
  • the head-mounted display 100 provides a see-through mode in which a moving image captured by the stereo camera 110 is immediately displayed to show the state of the real space in the direction in which the user is facing.
  • At least one of the images captured by the stereo camera 110, the monocular camera 111, and the four cameras 112 may be used to generate the display image.
  • SLAM Simultaneous Localization and Mapping
  • the image may be corrected in the device 200.
  • the captured image may be combined with the image transmitted from the server 400 to form a display image.
  • the head-mounted display 100 may be provided with any of motion sensors for deriving the position, posture, and movement of the head-mounted display 100, such as an acceleration sensor, a gyro sensor, and a geomagnetic sensor.
  • the image processing device 200 acquires information on the position and posture of the user's head at a predetermined rate based on the measured values of the motion sensor. This information can be used to determine the field of view of the image generated by the server 400 and to correct the image in the image processing device 200.
  • FIG. 3 shows the basic configuration of the server 400 and the image processing device 200 according to the present embodiment.
  • the server 400 and the image processing device 200 according to the present embodiment are provided with a local memory for storing a partial image smaller than one frame of the displayed image at a key point. Then, compression coding and transmission of image data in the server 400, data reception in the image processing device 200, decoding / decompression, various image processing, and output to the display device are pipelined in units of the partial image. As a result, the delay time from the drawing of the image on the server 400 to the display on the display device connected to the image processing device 200 is reduced.
  • the drawing control unit 402 is realized by the CPU (Central Processing Unit) and controls the drawing of the image in the image drawing unit 404.
  • the content of the image to be displayed in the present embodiment is not particularly limited, but the drawing control unit 402 advances the cloud game, for example, and causes the image drawing unit 404 to draw a frame of a moving image representing the result.
  • the drawing control unit 402 may acquire information related to the position and posture of the user's head from the image processing device 200 and control to draw each frame in the corresponding visual field.
  • the image drawing unit 404 is realized by a GPU (Graphics Processing Unit), draws a frame of a moving image at a predetermined or variable rate under the control of the drawing control unit 402, and stores the result in the frame buffer 406.
  • the frame buffer 406 is realized by RAM (Random Access Memory).
  • the video encoder 408 compresses and encodes the image data stored in the frame buffer 406 in units of partial images smaller than one frame.
  • the partial image is an image of each region formed by dividing the image plane of the frame by, for example, a boundary line set in the horizontal direction, the vertical direction, the vertical / horizontal bidirectional direction, or the diagonal direction.
  • the video encoder 408 may start the compression coding of the frame as soon as the image required for the compression coding of the partial image is drawn by the image drawing unit 404 without waiting for the vertical synchronization signal of the server.
  • the conventional technology that synchronizes various processes such as frame drawing and compression coding with reference to the vertical synchronization signal
  • the time given to each process from image drawing to display is aligned in frame units to manage the frame order. Is easy.
  • the drawing process ends early depending on the contents of the frame, it is necessary to wait for the compression coding process until the next vertical synchronization signal.
  • unnecessary waiting time is prevented from occurring.
  • the coding method used by the video encoder 408 for compression coding is H.I. 264 / AVC and H. A general one such as 265 / HEVC may be used.
  • the video encoder 408 stores the 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, the input / output interface 416 acquires information related to the user operation, the position and orientation of the user's head, the grain size of the image processing in the image processing device 200, the scanning direction of the display panel, and the like from the image processing device 200 as needed. However, it may be supplied to the drawing control unit 402, the video encoder 408, or the like.
  • the input / output interface 202 sequentially acquires image and audio data transmitted from the server 400.
  • the input / output interface 202 further acquires information related to the user operation, the position and posture of the user's head, the grain size of the image processing in the image processing device 200, the scanning direction of the display panel, and the like as necessary, and causes the server 400 to obtain information. You may send it.
  • the input / output interface 202 decodes the packet acquired from the server 400, and stores the extracted image data in the partial image storage unit 204.
  • the partial image storage unit 204 is a local memory provided between the input / output interface 202 and the video decoder 208.
  • the control unit 206 constantly monitors the data writing status of the input / output interface 202 to the partial image storage unit 204, the data reading status of the video decoder 208, and the like, and appropriately controls the operations of both.
  • the video decoder 208 reads the data, decodes and decompresses the data according to the procedure according to the coding method, and sequentially stores the data in the partial image storage unit 210.
  • the partial image storage unit 210 is a local memory provided between the video decoder 208 and the image processing unit 214.
  • the control unit 212 constantly monitors the data writing status of the video decoder 208 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 the data and performs processing necessary for display. For example, in the head-mounted display 100, in order to visually recognize an image without distortion when viewed through the eyepiece, a correction process of giving distortion opposite to the distortion caused by the eyepiece is performed.
  • the image processing unit 214 may refer to the separately prepared UI plane image and combine (superimpose) it with the image transmitted from the server 400. Further, the image processing unit 214 may combine the image captured by the camera included in the head-mounted display 100 or the mobile terminal 303 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 the timing is appropriate for the display panel of the head-mounted display 100, the flat plate display 302, and the portable terminal 303. Output with. Specifically, the data of each partial image is output in a predetermined order at a timing that matches the vertical synchronization signal of those displays.
  • 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.
  • the effect of reducing the delay by dividing the frame into partial images and performing pipeline processing is the method of dividing into partial images (boundary line), the compression coding order, the transmission order, and the image processing apparatus 200.
  • This is exhibited when the processing order corresponds to the display order (scanning direction) on the display panel 94.
  • the devices used for displaying moving images are diverse, and the display order on the display panel 94 is diversified.
  • a method of scanning a horizontally long screen in the horizontal direction (called a landscape type) is the mainstream.
  • the aspect shown in FIG. 4 is premised on this landscape type.
  • the method of scanning a vertically long screen in the horizontal direction (called a portrait type) is the mainstream.
  • a portrait type the method of scanning a vertically long screen in the horizontal direction
  • the number of horizontally long display devices in which portrait-type panels are mounted sideways has increased.
  • the scanning is performed in the vertical direction with respect to the horizontally long screen.
  • the scanning direction of the display panel can be changed in various ways depending on the mounting mode of the display device and the situation at that time.
  • FIG. 5 illustrates variations in the scanning direction of the display panel.
  • the rectangle in the figure represents the display screen, and the reference position 14 on the upper left of the horizontally long image to be displayed is indicated by a black circle. That is, the reference position 14 is a start point when the image is scanned in raster order, and is generally also a start point at the time of drawing.
  • (A) shows a case where an image without rotation is displayed on a landscape type display panel. Even when a portrait-type mobile terminal is held vertically and a horizontally long image is viewed, a part of the screen is in a state as shown in the figure. In this case, the display panel repeats scanning in the right direction downward, starting from the same position as the reference position 14.
  • FIG. (B) shows a case where an image rotated 90 ° clockwise is displayed on a portrait type display panel.
  • a portrait-type display panel is mounted on a monitor or the like, which is basically installed horizontally. In these cases, when scanning is performed in raster order on the display panel, scanning in the upward direction is repeated in the right direction starting from the lower left on the image.
  • FIG. C shows the case where the top and bottom of the image are displayed upside down on the landscape type display panel.
  • Such a state occurs, for example, when the user is looking at a landscape-type mobile terminal upside down.
  • a part of the screen is in a state as shown in the figure.
  • scanning in the left direction is repeated upward with the lower right starting point on the image.
  • (D) shows a case where an image rotated 90 ° counterclockwise is displayed on a portrait type display panel.
  • a portrait-type mobile terminal is turned sideways, which is the opposite of the case of (b), and a horizontally long image is viewed.
  • downward scanning is repeated in the left direction starting from the upper right on the image.
  • the scanning direction on the image also changes depending on the direction in which the user holds the mobile terminal. If the user changes the direction in which the mobile terminal is gripped, the scanning direction can be changed at any time even during playback of the moving image.
  • the image processing apparatus 200 waits until all the partial images constituting one screen arrive, and the low delay due to the sequential transmission and display of the partial images is impaired. .. Therefore, in the present embodiment, the server 400 acquires the information related to the scanning order of the display panel, and adaptively switches the data processing order based on the information. At this time, preferably, the drawing order of the images is not changed, and the order is switched from the subsequent processing to suppress an adverse effect that the drawing process becomes complicated and the processing speed is lowered.
  • FIG. 6 shows the functional blocks of the server 400 and the image processing device 200 of this embodiment.
  • Each functional block shown in the figure can be realized by a CPU, GPU, encoder, decoder, arithmetic unit, various memories, etc. in terms of hardware, and in terms of software, an information processing function and an image loaded into memory from a recording medium. It is realized by a program that exerts various functions such as drawing function, data input / output function, and communication function. Therefore, it is understood by those skilled in the art that these functional blocks can be realized in various forms by hardware only, software only, or a combination thereof, and is not limited to any of them. The same applies to the functional blocks described later.
  • the server 400 includes an image generation unit 420, a frame buffer 406, 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 and the image drawing unit 404 of FIG. 3, and generates frames of moving images such as game images 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 frame buffer 406 sequentially stores the frame data of the moving image generated by the image generation unit 420.
  • 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 reads out the frame data generated by the image generation unit 420 from the frame buffer 406 and compresses it in units of partial images. Encode.
  • 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 compression encoding unit 422 reads the image in the frame buffer according to the predetermined pixel format according to the display pipeline, that is, the specified video output timing format, and converts the pixel format and changes the image size as necessary. It has a built-in function for compositing images, and if necessary, these functions may be executed before compression coding.
  • the compression coding unit 422 includes a processing order control unit 423 that optimizes the order of reading pixel data from the frame buffer 406, the shape of a partial image (boundary line on the image plane), the order of compression coding, and the like. That is, the processing order control unit 423 compresses and encodes the frame data from the frame buffer 406 in an order based on the information related to the scanning order of the display panel on which the image processing device 200 of the data transmission destination displays the image. The unit 422 is controlled.
  • the processing order control unit 423 acquires the scanning direction and the scanning start position of the display panel by handshaking with the image processing device 200, and obtains the reading order of the data of each pixel from the frame buffer 406, the shape of the partial image, and the like. Select the combination with the lowest delay for the compression coding order.
  • the processing order control unit 423 holds a table in a memory or the like that associates information related to the scanning order of the display panel with the shape of the partial image and the optimum conditions of the processing order, and determines the latter with reference to the table. good.
  • the processing order control unit 423 acquires various processing parameters that can be handled by the image generation unit 420 and the compression coding unit 422 of the image processing device 200 and the server 400, and has the longest delay among the parameters that can be realized in common. Select a combination with less processing efficiency.
  • the server 400 also supports a display device in the form of connecting a plurality of display panels (partial panels) to form one display panel.
  • the plurality of partial panels may be physically integrally formed as one panel.
  • the processing order control unit 423 further acquires information such as the number of subpanels and whether or not they are scanned in parallel, and reads data based on the information. Switch the order, the shape of the partial image, the compression coding order, and so on. Further, as described above, when the transmission destination is a terminal whose image display direction is changed according to the orientation of the display panel, the processing order control unit 423 acquires information related to the orientation of the display panel at any time and responds to the change. The data read order, partial image shape, compression coding order, etc. are changed.
  • the processing order control unit 423 may optimize the reading order of the pixel data from the frame buffer 406 in consideration of the processing order of the pixel data inside the image processing device 200. For example, when the processing performed by the image processing device 200 includes processing of pixel strings in a predetermined order, the processing order control unit 423 also determines the reading order from the frame buffer 406 by the image processing device 200. Control to follow the processing order. As a result, the server 400 can preferentially transmit the data of the pixels to be processed first by the image processing device 200.
  • the processing order control unit 423 determines the pixel data reading order based on the speed and efficiency of access to the frame buffer 406, the pixel data writing order by the image generation unit 420, and the like. As a result, the transmission delay on the server 400 side can be minimized.
  • the information acquired by the server 400 by handshaking with the image processing device 200 and the mode of processing determined by the processing order control unit 423 based on the information are not limited to those described above.
  • the server 400 uses a handshake to determine the display resolution, frame rate, whether the frame rate is variable, pixel data format, compression coding method, buffer capacity, transfer band, number of pixels read from consecutive addresses at one time, and the like.
  • At least one of the information may be shared with the image processing apparatus 200.
  • the processing order control unit 423 includes the reading order of the pixel data, the shape of the partial image, that is, the division boundary of the frame, the compression coding order, and the number of partial images to be buffered by the display device. Select at least one of the error correction strength and correction method during compression and decompression so that the delay time, image quality, and transfer robustness are optimal.
  • the processing order control unit 423 may determine all of these parameters, or may determine only a part of them, and the other parameters may be fixed.
  • the processing order control unit 423 may notify each functional block inside the server 400 of the determined parameters, if necessary. For example, the processing order control unit 423 may transmit the determined parameter to the image processing device 200 by notifying the packetizing unit 424. Further, the handshake between the server 400 and the image processing device 200 and the switching of the processing mode according to the handshake are performed as the initial processing of the stream transfer, and also appropriately while the moving image is displayed on the image processing device 200 side. It may be carried out. That is, the processing order control unit 423 acquires changes in the various parameters described above from the image processing device 200 at any time, and controls the compression coding unit 422 so as to appropriately switch the processing accordingly.
  • the packetization 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. At this time, the packetization unit 424 acquires information such as the order of pixel data and the shape and size of the partial image determined by the processing order control unit 423, and associates it with the data of the partial image. Further, the packetization unit 424 acquires the time when the partial image is drawn (hereinafter, referred to as “generation time”) from the image generation unit 420 or the compression coding unit 422, and associates it with the data of the partial image.
  • generation time the time when the partial image is drawn
  • the communication unit 426 is composed of the input / output interface 416 of FIG. 3, and transmits a packet including compression-encoded partial image data and various information accompanying the data to the image processing device 200.
  • the server 400 performs compression coding, packetization, and transmission in parallel by pipeline processing in units of partial images smaller than one frame.
  • the communication unit 426 also functions as an interface for the server 400 and the image processing device 200 to share the above-mentioned information by handshaking.
  • the communication unit 426 also functions as a display method information acquisition unit that acquires information related to the scanning order of the display panel connected to the image processing device 200.
  • the image processing device 200 includes an image data acquisition unit 240, a decoding / decompression 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 image data acquisition unit 240 also functions as an interface for the server 400 and the image processing device 200 to share the above-mentioned information by handshaking.
  • the decoding / decompression unit 242 is composed of the video decoder 208, the partial image storage unit 210, the control unit 206, and the control unit 212 of FIG. 3, and decodes and decompresses the data of the compression-encoded partial image.
  • the decoding / decompression unit 242 may start the decoding / decompression processing when the image data acquisition unit 240 acquires data in the smallest unit region required for compression coding such as motion compensation and coding.
  • the decoding / decompression unit 242 is a connection that controls the decoding / decompression unit 242 so as to appropriately restore the frame based on the reading order of pixel data at the time of compression coding in the server 400, the shape of the partial image, the compression coding order, and the like.
  • the position control unit 243 is included. In the present embodiment, for example, even if the shape and size of the partial images are the same, the internal arrangement of pixel data may change in various ways. Therefore, the connection position control unit 243 controls to return the pixels of the decoded and decompressed partial image to the original array based on the information related to the array of pixel data transmitted from the server 400.
  • connection position control unit 243 decodes based on the information transmitted from the server 400. Identify which area of the frame the stretched partial image corresponds to. By providing the specified information to the display control unit 246, each partial image is displayed at a correct position.
  • the connection position control unit 243 is transmitted from the server 400.
  • the decoding / decompression unit 242 controls the correction so as to be appropriately corrected, and the display control unit 246 is notified of the number of buffering.
  • 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. Generate data for. 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 increase the definition and restore or reconstruct the high-frequency component.
  • SuperResolution super-resolution processing
  • the image processing unit 244 may convert the image by inputting the image data into the database or network model constructed in advance by using machine learning or deep learning.
  • the image processing unit 244 may reduce the delay by performing conversion in units of partial images. By matching the partial image unit at this time with the partial image unit determined based on the scanning order and the division configuration of the display panel, a series of processes can be made into a pipeline, and further reduction in delay can be realized.
  • the display control unit 246 is composed of the display controller 220 and the control unit 218 of FIG. 3, and sequentially displays partial image data for display on the display panels of the head-mounted display 100, the flat plate display 302, and the mobile terminal 303.
  • 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 is based on the generation time of the data of each partial image transmitted from the server 400 and the position of each partial image on the image plane provided by the decoding / decompression unit 242, and the data of the partial image. Specify the data acquisition status such as the original display order and display timing of the image, and the amount of missing partial image data. Then, the display control unit 246 changes the output target to the display panel and appropriately adjusts the output order and the output timing according to the data acquisition status.
  • 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 responds to the amount (ratio) of the acquired partial image, such as replacing the output target with the data of the previous frame when the partial image is missing in the frame at a ratio of a predetermined value or more.
  • the output target may be changed.
  • the display control unit 246 may change the output target of the next frame display period according to the past output record of the frame and the elapsed time from the generation time. Then, the display control unit 246 outputs the data of the partial image determined as the output target to the display panel in the determined order and timing.
  • the display control unit 246 includes a display method acquisition unit 247 that acquires the display method on the display panel of the data output destination and transmits the display method to the server 400 via the image data acquisition unit 240.
  • the display method includes information related to the scanning order of the display panel, that is, a scanning start point and a scanning direction.
  • the display method acquisition unit 247 also acquires the orientation of the display panel, for example, the identification information of the side located on the upper side of the four sides at any time.
  • the display method acquisition unit 247 includes a sensor that measures the orientation of the terminal, such as an acceleration sensor, a gyro sensor, and a geomagnetic sensor.
  • the display method acquisition unit 247 determines whether the display resolution, frame rate, and frame rate are variable, the number of subpanels constituting one display panel, the number of panels scanned in parallel, and a plurality of subpanels. When scanning continuously, information such as the number of panels and the scanning order may be acquired.
  • the display method acquisition unit 247 can also handle the unit area (the minimum number of scan lines that can be tolerated and the minimum unit of scan line length, whether or not continuous scanning of a plurality of partial panels is allowed) that the compression / decompression method to be adopted can support. Information such as the number of scanning lines of a partial image, the capacity of a buffer for holding a partial image, the format of pixel data supported by the display panel, and the available transfer band may be acquired.
  • the display method acquisition unit 247 sets the required bandwidth of the interface output from the image processing device 200 to the display device by the image processing unit 244 in addition to the range that the decoding / decompression unit 242 can handle. You may acquire the range that image compression performed for reduction can handle.
  • the display resolution depends on the display form such as the range that can be processed by the decoding / stretching unit 242 and the display control unit 246, the range that the display panel can handle, and the image being displayed only on a part of the display panel.
  • the display method acquisition unit 247 can handle not only the display panel but also the decoding / decompression unit 242. Get the range etc.
  • the display method acquisition unit 247 provides information on whether or not there is an arrival order or orientation of pixels that is advantageous for reducing the delay when the decoding / decompression unit 242 decodes / decompresses the data, and if so, the arrival order or orientation. It may be obtained from the decoding / stretching unit 242.
  • the "arrival order and orientation of pixels that are advantageous for reducing delay" are, for example, the scanning order / scanning direction of the display panel, and the data reference order in the processing particle size of the decoding / stretching unit 242, the image processing unit 244, and the display control unit 246. Determined based on. At least one of these pieces of information is notified to the server 400 by handshake.
  • the processing order control unit 423 of the server 400 optimizes the pixel data reading order, the size and shape of the partial image, the compression coding order, and the like as described above. Further, as described later, the width of the pixel strings read from the frame buffer 406 at one time may be optimized.
  • FIG. 7 illustrates the correspondence between the scanning order of the display panel and the processing order of the server 400.
  • This example shows a case where a horizontally long image is displayed on a portrait type display panel.
  • the rectangle in the figure represents the display image
  • the left side shows the processing order on the server 400
  • the right side shows the processing order on the image processing device 200 and the display order on the display panel.
  • a part of the formed partial image is shown by a gray rectangular area
  • the processing order is shown by a number.
  • the remaining area in the image is sequentially processed in units of partial images.
  • the scanning at the time of image drawing on the server 400 that is, the start point in the raster order on the image is indicated by a black circle as the drawing start point 16, and the scan start point on the display panel is indicated by a white circle as the display start point 18.
  • (A) shows a mode in which the frame is vertically divided in the server 400 and a partial image is generated from the left end to the right. In this way, in the display panel, the scanning order in which scanning from the lower left to the upper direction is repeated in the right direction matches the processing order of the partial image.
  • (B) shows a mode in which the frame is divided in the vertical direction and a partial image is generated from the right end to the left side in the server 400. In this case, on the display panel, the scanning order in which scanning from the upper right to the lower direction is repeated in the left direction matches the processing order of the partial image.
  • (C) shows a mode in which the image is divided in the horizontal direction and a partial image is generated from the upper end to the lower side in the server 400.
  • the scanning order in which scanning from the upper left to the right is repeated downward matches the processing order of the partial image.
  • (D) shows a mode in which the image is divided in the horizontal direction and a partial image is generated from the lower end to the upper side in the server 400.
  • the scanning order in which scanning from the lower right to the left is repeated upward matches the processing order of the partial image.
  • a series of processes from compression coding to processing inside the image processing apparatus 200 to display can be progressed in the same order, and display can be performed with low delay.
  • FIG. 8 shows another example of the correspondence between the scanning order of the display panel and the processing order in the server 400.
  • This example shows a case where images for the left eye and the image for the right eye are displayed on the left and right display panels of the head-mounted display 100.
  • the server 400 generates an image representing an image for the left eye and an image for the right eye for each frame in a region divided into left and right image planes.
  • FIG. 1 shows an embodiment in which the left and right regions of the image plane are divided in the horizontal direction in the server 400, and the left and right images are alternately generated as shown by numbers in the figure to generate a partial image from the upper end to the lower side. ing.
  • the scanning order in which scanning from the upper left to the right is repeated downward and the processing order of the partial image match. ..
  • the scanning of the display panels for the left eye and the right eye may be performed in parallel.
  • This processing order is similar to the raster order of the image, but it is characterized in that the image plane is divided into left and right. That is, the data of (1) is decoded and decompressed by the image processing apparatus 200 by separately compressing and coding the partial image for the left eye shown in (1) and the partial image for the right eye shown in (2). At that time, it is not necessary to wait for the data of (2), and the processing can be speeded up.
  • the compression ratio can be increased by using the partial image of (1) as a reference image and using the difference as the compression-encoded data of the partial image of (2). can.
  • the image processing device 200 decodes and decompresses the partial image of (2) with reference to the partial image of (1) previously decoded and decompressed. The same applies to the subsequent partial images.
  • (B) shows a mode in which each of the left and right regions of the image plane is vertically divided in the server 400, and the left and right images are alternately generated as shown by numbers in the figure to generate a partial image from the left end to the right. ing.
  • the scanning order in which scanning from the lower left to the upper direction is repeated in the left direction and the processing order of the partial images match. ..
  • FIGS. 7 (b) and 7 (d). Just generate it.
  • the processing order shown is not limited to the display panels for the left eye and the right eye of the head-mounted display 100, and can be applied to the case where one image is displayed by arranging partial panels on the left and right and driving each of them.
  • FIG. 9 shows yet another example of the correspondence between the scanning order of the display panel and the processing order in the server 400.
  • This example shows a case where four subpanels are arranged in two rows and two columns, and one image is displayed by displaying the display images divided into four.
  • the four partial panels are spaced apart, but in reality, one image is displayed in a state where they are in contact with each other.
  • the server 400 acquires information related to the boundary of the partial panel from the image processing device 200.
  • (a) divides each of the four regions of the image plane in the horizontal direction, and generates partial images in the downward direction alternately from the upper end of the two regions in the upper half as shown by numbers in the figure. It shows how to go.
  • This processing order is also similar to the raster order of the image, but is characterized in that the image plane is divided into 2 rows and 2 columns according to the partial panel, and the partial image is formed so as not to straddle the boundary.
  • the left and right partial panels are arranged in parallel, and the scanning order in which scanning from the upper left to the right is repeated downward corresponds to the processing order of the partial image. That is, this display panel is common to the display panel of FIG. 8 in that the left and right partial panels are scanned in parallel, and the upper and lower partial panels are continuously scanned from top to bottom.
  • each of the four areas of the image plane is divided in the horizontal direction, and the upper left, upper right, lower left, and lower right areas are circulated in this order as shown by numbers in the figure, and each is circulated from the upper end. It shows an aspect of generating a partial image in the downward direction.
  • the scanning order in which the four partial panels are arranged in parallel and the scanning from the upper left to the right is repeated downward corresponds to the processing order of the partial images.
  • the server 400 by controlling the minimum unit of compression coding so as not to straddle the boundary of the subpanels, independent display processing for each subpanel can be efficiently realized.
  • the embodiments shown in FIGS. 7 to 9 are examples, and since there are various scanning orders and display panel configurations in the display panel, the server 400 should adaptively determine the partial image generation order by the same principle. Just do it.
  • FIG. 10 is a diagram for explaining a principle of determining the reading order of pixel data in the server 400 based on a handshake with the image processing device 200.
  • the figure schematically represents an image plane, and each pixel is a rectangle of the smallest unit divided in a grid pattern.
  • pixel data is generated in raster order from the pixels of the drawing start point 16. Therefore, data is stored in the frame buffer 406 in the order indicated by the numbers in each pixel area.
  • the processing order control unit 423 of the server 400 adaptively switches the order of reading the pixel data from the frame buffer 406 depending on, for example, the processing particle size of the image processing device 200.
  • the reading order of the pixel data follows the order in that unit, for example, pixel numbers 112, 96, 80, ... The order is 0, 113, 97, ....
  • the image processing apparatus 200 can start the processing from the previously acquired data and can display in that order, so that the delay time until the display is reached. Is reduced.
  • the image processing apparatus 200 when data is processed collectively for each partial image, the arrangement of pixels in the partial image does not easily affect the time until display. Therefore, for example, the time from drawing to transmission may be shortened by reading the pixel data in the order stored in the frame buffer 406 in the partial image, that is, in the order of 0, 16, 32, ....
  • FIG. 11 is a diagram for explaining another principle of determining the reading order of pixel data in the server 400 based on the handshake with the image processing device 200.
  • the representation of the figure, the order of image data generation, and the scanning order on the display panel are the same as in the case of FIG.
  • the basic policy for determining the pixel read order is the same as in FIG. 10, but this example further shows a case where the access efficiency to the storage area of the frame buffer 406 is taken into consideration.
  • the image generation unit 420 of the server 400 generates pixel data in the order indicated by the pixel numbers and stores them in the frame buffer 406. That is, storage areas (memory addresses) are allocated in the order of rasters on the image.
  • storage areas memory addresses
  • the reading order is set to the vertical direction from the display start point 18 at the lower left
  • the pixel data is read one by one such as pixel numbers 112, 96, 80, ..., For each pixel having a small data particle size. Access to discontinuous addresses is required, and the read processing efficiency is poor.
  • the reading speed is improved by reading a plurality of pixel data from consecutive addresses at once.
  • reading in units of 4 pixels such as consecutive pixels of numbers 112 to 115, is scanned upward from the side of the display start point 18, and this is repeated in the right direction. That is, the compression coding unit 422 uses continuous four pixels perpendicular to the scanning direction as a reading unit, and reads pixel data in a direction corresponding to the scanning direction of the display panel with the width thereof.
  • the number of pixels (reading width 20) as the reading unit is determined based on the balance between the speedup by reading the data in this way and the waiting time until the data of the pixel is written.
  • the optimum read width 20 also depends on the configuration of the system for accessing the frame buffer.
  • the compression coding unit 422 accesses the frame buffer 406
  • the data access interface of the compression coding unit 422 accesses the memory holding the frame buffer 406 via the on-chip interconnect.
  • there is the most efficient access data length that is, burst length
  • the transfer for 128 bits is repeated twice.
  • the time required for the transfer can be shorter than when the transfer in units of 4 pixels is performed twice. This is because the time required for address notification and memory reference can be shortened because the addresses are continuous.
  • the reading width 20 can be efficiently read by multiplying the bus width or the memory access width of the system by a natural number.
  • the direction in which the reading of the pixel data having the reading width of 20 progresses does not have to follow the scanning direction in the display panel. That is, with respect to the reading progress direction, the best direction in terms of low delay and processing efficiency may be determined in consideration of the data storage order by the image generation unit 420, the decoding / decompression order in the image processing apparatus 200, and the like.
  • the forward control unit 423 selects as appropriate.
  • the number of pixels of the read width 20 thus selected may be the same as or different from the width of the partial image which is a unit of compression coding.
  • the read width 20 is 1 / N of the width of the partial image (N is a natural number)
  • the pixel data read by one memory access can be included in the same compressed coded data, which is efficient.
  • N is a natural number
  • the pixel data read by one memory access can be included in the same compressed coded data, which is efficient.
  • the partial image is also 4 ⁇ 8. It is conceivable to use pixels or 8 ⁇ 8 pixels.
  • FIG. 12 is a flowchart showing a processing procedure when the compression coding unit 422 of the present embodiment reads data from the frame buffer 406 in units of a plurality of pixels.
  • the parameter i is initialized to 0 (S10), and the start address of the frame buffer 406 is assigned to the parameter A 0 (S12).
  • (x + 1) * (yi) * B is added to the parameter A 0 to calculate the read destination address A (S14).
  • B (byte) is the data size of one pixel.
  • address A indicates the address of pixel number 112.
  • the compression coding unit 422 reads the data for W * B from the address A (S16).
  • the parameter i is incremented (S18), and if the value does not reach y (N in S20), the processes from S14 to S18 are repeated.
  • the data in the area 22 is read out.
  • the address obtained by adding W + B to the parameter A 0 is set as a new A 0 (S22). This process corresponds to shifting the read-to area in FIG. 11 to the left by 4 pixels from the area 22. If the new parameter A 0 has not reached (x + 1) * B, that is, the final address at the top of the frame (N in S24), the processes from S14 to S22 are repeated. When the parameter A 0 reaches (x + 1) * B, the reading process of the frame is completed (Y in S24). In the example of FIG. 11, as a result of repeating S14 to S22 four times, the pixel data of the entire frame is read out.
  • parameters A and A 0 are calculated by a calculation formula that repeats reading in units of reading width W pixels from the top to the bottom of the image plane in the left direction. do.
  • the parameter A 0 is calculated by a calculation formula such that the reading order is alternately read from the left and right regions of the image plane.
  • FIG. 13 is a diagram for explaining parameters acquired by a handshake between the server 400 and the image processing device 200.
  • (a) when displaying an image with the landscape type display panel horizontally long, for example, the following information is transmitted from the image processing device 200.
  • Scanning start point a Scanning direction: a to b Number of partial panels: 1 Number of partial panels to scan simultaneously / in parallel: 1 Number of partial panels for continuous scanning: 1 Scanning order of partial panels: 1 Top edge of panel: ab
  • “a”, “b”, “c”, and “d” are four vertices of the screen as shown in the figure.
  • the minimum unit area in which scanning control is possible depends on whether or not the display panel is composed of a plurality of subpanels, the display mode, and the like. The same applies to the subsequent aspects.
  • Scanning start point c
  • Scanning direction c to a Number of partial panels: 1 Number of partial panels to scan simultaneously / in parallel: 1 Number of partial panels for continuous scanning: 1 Scanning order of partial panels: 1 Top edge of panel: ab
  • FIG. 14 is a diagram for explaining another example of the parameters acquired by the handshake between the server 400 and the image processing device 200.
  • the figure assumes the left and right display panels of the head-mounted display 100.
  • the following information is transmitted from the image processing device 200.
  • Scanning start point a Scanning direction: a to b Number of partial panels: 2 Number of partial panels to scan simultaneously / in parallel: 2 Number of partial panels for continuous scanning: 2 (Number of pixels in the scanning direction of the smallest unit area that can be controlled by scanning: 1 from the left end to 2 right end)
  • Scanning order of partial panels A to B Top edge of panel: ab
  • “A” and "B” are identification numbers of the left and right partial panels as shown in the figure.
  • the display panel shown in (b) that scans the two subpanels in parallel for example, the following information is transmitted from the image processing device 200.
  • Scanning start point a Scanning direction: a to b Number of partial panels: 2 Number of partial panels to scan simultaneously / in parallel: 2 Number of partial panels to perform continuous scanning: 1 (Number of pixels in the scanning direction of the smallest unit area that can be controlled by scanning: 1 from the left end to the right end, and 2 from the left end to the right end)
  • Scanning order of partial panels parallel with A and B Top edge of panel: ab
  • (c) in the case of a display panel that scans two subpanels individually and sequentially, for example, the following information is transmitted from the image processing device 200.
  • Scanning start point a Scanning direction: a to b Number of partial panels: 2 Number of partial panels to scan simultaneously / in parallel: 1 Number of partial panels to perform continuous scanning: 1 (Number of pixels in the scanning direction of the smallest unit area that can be controlled by scanning: 1 from the left end to the right end, and 2 from the left end to the right end)
  • Scanning order of partial panels A to B Top edge of panel: ab
  • the number of pixels in the scanning direction in the smallest unit area that can be controlled by scanning may be variable. For example, as the mode of the display panel, any one of 960 pixels, 1000 pixels, and 1024 pixels may be selected, and the image processing apparatus 200 may grasp this and transmit it to the server 400.
  • the server 400 grasps, for example, the following information indicating the supportable range on the server 400 side.
  • the "width" is the number of pixels in the direction perpendicular to the scanning direction, as described above.
  • 1. Drawable resolution, frame rate, pixel data format 2. Available and efficient number of pixels in read unit (read width U) 3. 3. Efficient reading progress direction when reading in units of multiple pixels 4.
  • Compatible unit area in the compression / decompression method minimum width S and number of pixels T in the scanning direction
  • Compatible partial image width V Capacity of buffer memory (partial image storage unit) that holds partial images
  • the processing order control unit 423 of the server 400 determines the processing content of the server 400 as follows, for example.
  • Partial image generation order The delay is reduced by generating partial images parallel to the scanning direction from the position including the scanning start position on the display panel.
  • Partial image width Natural number times the width V of the partial image that can be processed, natural number times the readout width U, natural number times the width of the smallest unit area that can be scanned, and units that can be used by the compression coding method. A value that satisfies the natural number multiple of the minimum width S of the region. For example, by setting the least common multiple of these parameters, the delay of the entire processing system may be reduced by reducing the particle size.
  • Scanning length of partial image The natural number of pixels in the scanning direction in the minimum unit area where scanning control is possible, and the natural number T in the scanning direction in the minimum unit area where the compression / decompression method can be supported.
  • the scanning length is set so that the panel can handle it.
  • the display panel is composed of partial panels, it is also considered whether or not the panels for continuous scanning are treated as one for the scanning length that the display panel can handle.
  • the server 400 processes the information in the image processing. After acquiring from the device 200, the progress direction of reading is determined according to the order. When the progress direction is different from the pixel order that is advantageous for reducing the delay, the target range of one compression coding is limited to the number of pixels T in the scanning direction in the minimum unit region that the compression / decompression method can handle. Further, the unit of one compression coding is determined in consideration of whether or not continuous scanning is allowed within a range not exceeding the partial image.
  • the data size of the partial image may be determined in consideration of the jitter of the processing time required for display such as transfer and compression / decompression. Specifically, the number of partial images required to avoid data underflow in the display is calculated, and the corresponding number of data is stored in the capacity of the buffer memory (partial image storage unit) held by the image processing device 200. The data size of the partial image may be determined so that it can be done.
  • the image processing device 200 continuously acquires jitter and shares the information with the server 400 at any time by handshaking.
  • the server 400 updates the number of partial images required to avoid underflow, and redetermines the data size of the partial images at any time based on the number.
  • the size of the partial image to be generated and the target range of one compression coding are set within the range where the delay can be tolerated. The image quality may be improved by increasing the size.
  • the image generation unit 420 may appropriately determine the resolution of the frame to be drawn and the format of the pixel data by the above handshake. For example, the image generation unit 420 selects these parameters so that the transfer data size estimated from the viewpoint of the frame rate, the estimated compression rate, and the like falls within the available transfer band within the range that the display device can handle. When a plurality of formats and compression methods (compression rates) can be selected, the image generation unit 420 and the compression coding unit 422 maximize the image quality by selecting a combination having a larger bit depth and a lower compression rate.
  • FIG. 15 is a flowchart in which the compression coding unit 422 of the server 400 determines the order of reading data from the frame buffer 406.
  • the compression coding unit 422 determines the size and reading width U of the partial image by a handshake between the server 400 and the image processing device 200 (S30.
  • the compression coding unit 422 determines the frame by the image generation unit 420. It is confirmed whether or not the writing order of the final image data to the buffer 406 is the same as the scanning order (S32).
  • the compression coding unit 422 is set to read the data in parallel with the image generation unit 420 writing the pixel data to the frame buffer 406 (S34). ). If the writing order is not the same as the scanning order (N in S32), the compression coding unit 422 is set to start reading after one frame of data has been written in the frame buffer 406 (S34).
  • the compression coding unit 422 confirms whether or not the writing order of the image generation unit 420 to the frame buffer 406 matches the scanning order of the display panel (S38). If they match (Y in S38), the compression coding unit 422 reads the data written in the frame buffer 406 by the image generation unit 420 in that order (S40). When reading is performed in parallel with writing by the image generation unit 420, the image generation unit 420 and the compression coding unit 422 cooperate to control the reading process so that the writing process does not overtake the writing process.
  • the compression coding unit 422 When the writing order to the frame buffer 406 does not match the scanning order of the display panel (N in S38), the compression coding unit 422 completely sets the data supply order and the scanning order of the display panel in one partial image. It is confirmed whether or not they need to be matched (S42). Whether or not it is necessary to match is determined based on a range that can be handled by the compression coding unit 422 of the server 400, the decoding / decompression unit 242 of the image processing device 200, the image processing unit 244, and the display control unit 246.
  • the compression coding unit 422 When it is necessary to completely match the data supply order and the scanning order of the display panel (Y in S42), the compression coding unit 422 gives priority to the scanning order of the display panel over the read efficiency, and the frame buffer 406 Pixel data is read from (S44). At this time, if reading in pixel units is required, the reading width U is one pixel. Unless it is necessary to completely match the data supply order and the scanning order of the display panel (N in S42), the compression coding unit 422 has a low delay from the viewpoint of processing in the compression coding unit 422 and the image processing device 200. It is confirmed whether or not there is an arrival order of pixel data that is advantageous for conversion (S46).
  • the compression coding unit 422 sets the data reading order in one partial image as the order that is advantageous for the reduction in delay (S48).
  • the compression coding section 422 as shown in FIGS. 10 and 11, the vertical direction of the image plane, read in the horizontal direction in order to determine and thus the parameter A in Figure 12, the A 0 the formula.
  • the compression coding unit 422 reads the pixel data from the frame buffer 406 in the determined order (S50).
  • the compression coding unit 422 sets the data read order in one partial image as an order based only on the processing efficiency (S52). ). In this case also the compression encoding section 422, based on the determined sequence, the vertical direction of the image plane, read in the horizontal direction in order to determine and thus the parameter A in Figure 12, the A 0 the formula. In this case, in the decoding / stretching unit 242 of the image processing device 200, the connection position control unit 243 reconstructs the data by changing the order of the pixel strings transmitted from the server 400 as necessary. Then, the compression coding unit 422 reads the pixel data from the frame buffer 406 in the determined order (S50).
  • FIG. 16 illustrates the order in which the compression coding unit 422 reads data from the frame buffer 406 in various cases.
  • the representation of the figure is the same as in FIG. 10, and the image generation unit 420 writes pixel data in raster order. Further, on the display panel, it is assumed that scanning upward from the display start point 18 at the lower left of the image plane proceeds to the right.
  • the number of pixels T in the scanning direction of the smallest unit region that can be supported by the compression / decompression method adopted matches the number of pixels in the scanning direction of the image plane, the width S of the region S is one pixel, and the server.
  • the width V of the partial image that 400 can handle is 4 pixels and the readout width U is 1 pixel.
  • the compression coding unit 422 advances the reading from the display start point 18 in the upward direction of the image plane with the width of one pixel to the right. Then, the compression coding unit 422 compresses and encodes each line of data to obtain four lines of compressed coded data as partial image data.
  • the width S of the minimum unit area that can be supported by the compression / decompression method is 4 pixels, and the read width U is 4 pixels, as compared with the case (a).
  • the compression coding unit 422 advances the reading of the image plane in the width of 4 pixels from the display start point 18 in the upward direction to the right. Then, the compression coding unit 422 compresses and encodes each of the four lines of data, and uses the data as partial image data.
  • the compression coding unit 422 advances the reading of the image plane upward with a width of 4 pixels from the display start point 18 in the same manner as in (b). As shown, the reading of four pixels is divided by two memory accesses. Further, the compression coding unit 422 can compress and encode the read data each time the upward reading proceeds by the number of pixels T.
  • the number of pixels T in the scanning direction of the minimum unit region to which the compression / decompression method can be supported is further halved, and the read width U is 8 pixels, as compared with the case (c).
  • the compression coding unit 422 advances the reading of the image plane upward with a width of 8 pixels from the display start point 18 to the right. Further, the compression coding unit 422 can compress and encode the read data for each width of 4 pixels each time the upward reading proceeds by the number of pixels T. The frequency of memory access may be reduced by providing an additional memory in the compression coding unit 422 and holding the next partial image of the data read in the width U until necessary.
  • FIG. 17 is a diagram for explaining an example of setting various parameters by handshaking the server 400 and the image processing device 200.
  • the display panel has a configuration in which four subpanels A, B, C, and D are connected in the horizontal direction, and display start points 18a, 18b, 18c, and 18d for each subpanel are on the upper left.
  • the four corners of each partial panel are arranged in the order of upper left, upper right, lower left, lower right (a1, b1, c1, d1) (a2, b2, c2, d2), (a3, b3, c3, d3), (a3, b3, c3, d3).
  • the image processing device 200 transmits the following parameters for the display panel.
  • Overall display start point a1 Scanning direction: a1 to b1
  • Number of partial panels 4 Number of partial panels to scan simultaneously / in parallel: 4
  • Number of partial panels for continuous scanning 1 Scanning order of partial panels: A, B, C, D
  • Top edge of panel a1-b1
  • Width of unit area that can be supported in the compression / decompression method S 16 Number of pixels in the scanning direction of the unit area that can be supported in the compression / decompression method T: 50, 64
  • Corresponding partial image width V 32 Number of pixels in the scanning direction of the smallest unit area that can be controlled by scanning: 960, 1000, 1024
  • the compression coding unit 422 of the server 400 forms a partial image so as not to straddle the boundary of the partial panel, and generates the compression coding data in raster order from the upper left of the image. go.
  • a part of the formed partial image is shown by a gray rectangular area, and the processing order is shown by a number.
  • the scanning direction of the unit area is used.
  • the number of pixels T needs to be 50 or the like.
  • the number of pixels T on the server 400 side does not correspond to 50 pixels, 64 pixels are selected as the number of pixels T.
  • the number of pixels in the scanning direction of the partial image is 960 pixels as a multiple of 64 pixels.
  • Partial image generation order a1 to b1, a2 to b2, a3 to b3, a4 to b4
  • Data order in the partial image Parallel to and in the same direction as the scanning direction
  • S 16 Number of pixels in scanning direction in the minimum unit area of compression coding
  • T 64 Drawing resolution (pixels): 3840 x 2160
  • the image processing device 200 processes the data of the partial image such as the gray rectangular area transmitted from the server 400, and outputs the data to each partial panel of the display panel in the order indicated by the numbers.
  • FIG. 18 is a diagram for explaining another example of setting various parameters by handshaking the server 400 and the image processing device 200.
  • the configuration of the display panel shown on the right side of the figure is the same as that of FIG. 17, but the display start points 18a, 18b, 18c, and 18d for each partial panel are at the lower left, and the upward scanning is advanced to the right from there. Make it a state. If the other conditions are the same, the information transmitted from the server 400 in the handshake does not change from the case of FIG.
  • the image processing device 200 transmits the following parameters for the display panel.
  • Overall display start point c1 Scanning direction: c1 to a1
  • Number of partial panels 4 Number of partial panels to scan simultaneously / in parallel: 4
  • Number of partial panels for continuous scanning 1 Scanning order of partial panels: A, B, C, D
  • Top edge of panel c1-a1
  • Partial image generation order c1 to a1, c2 to a2, c3 to a3, c4 to a4
  • Data order in the partial image Parallel to and in the same direction as the scanning direction
  • S 16 Number of pixels in scanning direction in the minimum unit area of compression coding
  • T 64 Drawing resolution (pixels): 3840 x 2160
  • the compression coding unit 422 of the server 400 forms a partial image such as a gray rectangular area, and generates the compression coding data in the order indicated by the numbers. That is, a partial image is formed so as to circulate in four regions from the left end of each region corresponding to the partial panel to the right.
  • the image processing device 200 sequentially processes the partial images transmitted from the server 400 in the order indicated by the numbers, and outputs the partial images to each partial panel of the display panel in that order.
  • the transfer source server 400 acquires the information related to the scanning order of the display panel of the client. , Form the data to be transmitted in the order corresponding to it.
  • reading from the frame buffer, compression coding, transfer, decoding / decompression at the client, and image processing can be advanced by giving priority to the data required first on the display.
  • by performing these processes in parallel for each partial image formed by dividing the frame plane it is possible to display a moving image with low delay regardless of the scanning order of the display panel.
  • the present invention can be used for various devices such as image data transfer devices, content servers, image processing devices, and content processing devices, and systems including any of them.
  • 1 image display system 100 head mount display, 200 image processing device, 240 image data acquisition unit, 242 decoding / decompression unit, 243 connection position control unit, 244 image processing unit, 246 display control unit, 247 display method acquisition unit, 302 flat plate Type display, 303 mobile terminal, 400 server, 406 frame buffer, 420 image generation unit, 422 compression coding unit, 423 processing order control unit, 424 packetization unit, 426 communication unit.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

サーバ400において画像生成部420は、生成した画像をフレームバッファ406に格納する。圧縮符号化部422は、1フレームより小さい部分画像単位で画像データを圧縮符号化する。処理順制御部423は、データ送信先の画像処理装置200に接続された表示パネルの走査順に係る情報に基づき、フレームバッファ406からの画素データの読み出し順や部分画像の形状、圧縮符号化順を制御する。圧縮符号化された部分画像のデータを、パケット化部424がパケット化し、通信部426が画像処理装置200に送信する。

Description

画像データ転送装置、画像表示システム、および画像転送方法
 この発明は、表示対象の動画像のデータを処理する画像データ転送装置および画像転送方法に関する。
 近年の情報処理技術や画像表示技術の向上により、様々な形態で映像世界を体験することができるようになってきた。例えばヘッドマウントディスプレイにパノラマ映像を表示し、ユーザの視線に対応する画像を表示させることにより、映像世界への没入感を高めたり、ゲームなどのアプリケーションの操作性を向上させたりできる。また、潤沢なリソースを有するサーバからストリーミング転送された画像データを表示させることにより、ユーザは場所や規模によらず高精細な動画像やゲーム画面を楽しむことができる。
 ネットワークを介して伝送された画像のデータをクライアント端末に即時表示させる技術においては、当該クライアント端末とサーバ間の通信による遅延時間が問題となり得る。例えばクライアント端末側でのユーザ操作を表示画像に反映させる場合、ユーザ操作のサーバへの送信と、サーバからクライアント端末への画像データの送信といったデータの行き来が必要になり、看過できない遅延時間を生むことがある。ヘッドマウントディスプレイを表示先とする場合は、ユーザの頭部の動きに対し表示が遅れることにより、臨場感が損なわれたり映像酔いを引き起こしたりすることも考えられる。この問題は、高い画質を追求するほど顕在化しやすい。
 本発明はこうした課題に鑑みてなされたものであり、その目的は、通信によるデータ伝送を伴う画像表示において、画質と遅延時間の低減を両立させることのできる技術を提供することにある。
 上記課題を解決するために、本発明のある態様は画像データ転送装置に関する。この画像データ転送装置は、クライアント端末に動画像のデータを転送する画像データ転送装置であって、動画像を構成するフレームのデータを生成しメモリに書き込む描画部と、クライアント端末に接続された表示パネルの走査順に係る情報を取得する表示方式情報取得部と、フレームの画素のデータを、走査順に係る情報に基づく順序でメモリから読み出し、圧縮符号化する圧縮符号化部と、圧縮符号化されたフレームのデータを、クライアント端末にストリーミング転送する通信部と、を備えたことを特徴とする。
 本発明の別の態様は画像表示システムに関する。この画像表示システムは、動画像のデータを転送するサーバと、当該動画像のデータを受信して表示パネルに表示させるクライアント端末と、を含む画像表示システムであって、クライアント端末は、接続された表示パネルの走査順に係る情報を取得し、サーバに送信する表示方式取得部を備え、サーバは、動画像を構成するフレームのデータを生成しメモリに書き込む描画部と、走査順に係る情報を取得する表示方式情報取得部と、フレームの画素のデータを、走査順に係る情報に基づく順序でメモリから読み出し、圧縮符号化する圧縮符号化部と、圧縮符号化されたフレームのデータを、クライアント端末にストリーミング転送する通信部と、を備えたことを特徴とする。
 本発明のさらに別の態様は画像データ転送方法に関する。この画像データ転送方法はクライアント端末に動画像のデータを転送する画像データ転送装置が、動画像を構成するフレームのデータを生成しメモリに書き込むステップと、クライアント端末に接続された表示パネルの走査順に係る情報を取得するステップと、フレームの画素のデータを、走査順に係る情報に基づく順序で前記メモリから読み出し、圧縮符号化するステップと、圧縮符号化されたフレームのデータを、前記クライアント端末にストリーミング転送するステップと、を含むことを特徴とする。
 なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラム、データ構造、記録媒体などの間で変換したものもまた、本発明の態様として有効である。
 本発明によれば、通信によるデータ伝送を伴う画像表示において、画質と遅延時間の低減を両立させることができる。
本実施の形態における画像処理システムの構成例を示す図である。 本実施の形態のヘッドマウントディスプレイの外観例を示す図である。 本実施の形態におけるサーバと画像処理装置の基本的な構成を示す図である。 本実施の形態における、画像の描画から表示までの処理の様子を概念的に示す図である。 本実施の形態における表示パネルの走査方向のバリエーションを例示する図である。 本実施の形態のサーバおよび画像処理装置の機能ブロックを示す図である。 本実施の形態における表示パネルの走査順とサーバにおける処理順の対応を例示する図である。 本実施の形態における表示パネルの走査順とサーバにおける処理順の対応の別の例を示す図である。 本実施の形態における表示パネルの走査順とサーバにおける処理順の対応のさらに別の例を示す図である。 本実施の形態において、画像処理装置とのハンドシェイクに基づき、サーバにおける画素データの読み出し順を決定する原理を説明するための図である。 本実施の形態において、画像処理装置とのハンドシェイクに基づき、サーバにおける画素データの読み出し順を決定する別の原理を説明するための図である。 本実施の形態の圧縮符号化部がフレームバッファから複数の画素単位でデータを読み出す場合の処理の手順を示すフローチャートである。 本実施の形態においてサーバと画像処理装置とのハンドシェイクによって取得されるパラメータを説明するための図である。 本実施の形態においてサーバと画像処理装置とのハンドシェイクによって取得されるパラメータの別の例を説明するための図である。 本実施の形態においてサーバの圧縮符号化部が、フレームバッファからのデータ読み出し順を決定するフローチャートである。 様々なケースにおいて本実施の形態の圧縮符号化部がフレームバッファからデータを読み出す順序を例示している。 本実施の形態における、サーバと画像処理装置のハンドシェイクによる各種パラメータの設定例を説明するための図である。 本実施の形態における、サーバと画像処理装置のハンドシェイクによる各種パラメータの設定の別の例を説明するための図である。
 図1は、本実施の形態における画像処理システムの構成例を示す。画像表示システム1は、画像処理装置200、ヘッドマウントディスプレイ100、平板型ディスプレイ302、携帯端末303、およびサーバ400を含む。画像処理装置200は、ヘッドマウントディスプレイ100および平板型ディスプレイ302と、無線通信またはUSB Type-C、HDMI(登録商標)などのインターフェース300により接続される。画像処理装置200および携帯端末303は、インターネットやLAN(Local Area Network)などのネットワーク306を介してサーバ400に接続される。
 サーバ400は、画像データ転送装置として、表示対象の画像の少なくとも一部を生成して画像処理装置200および携帯端末303に送信する。ここでサーバ400は、クラウドゲームなど各種配信サービスを提供する企業などのサーバでもよいし、任意の端末にデータを送信する家庭内サーバなどでもよい。したがってネットワーク306は、インターネットなどの公衆ネットワークやLANなど、その規模は限定されない。例えばネットワーク306は携帯電話キャリアネットワークや、街中にあるWi-Fiスポット、家庭にあるWi-Fiアクセスポイントを経由したものでもよい。あるいは画像処理装置200や携帯端末303は、ビデオインターフェースによりサーバ400と直接接続されてもよい。
 画像処理装置200は、サーバ400から送信された画像のデータに必要な処理を施し、ヘッドマウントディスプレイ100および平板型ディスプレイ302の少なくともいずれかに出力する。例えばサーバ400は、各自ヘッドマウントディスプレイ100を装着した複数のユーザの頭部の動きやユーザ操作を、各ヘッドマウントディスプレイ100に接続された複数の画像処理装置200から受信する。そして、ユーザ操作に応じて変化させた仮想世界を、各ユーザの頭部の動きに対応する視野で描画したうえ、それぞれの画像処理装置200に送信する。
 画像処理装置200は送信された画像のデータを、必要に応じて、ヘッドマウントディスプレイ100や平板型ディスプレイ302に適した形式に変換したうえ、適切なタイミングでヘッドマウントディスプレイ100や平板型ディスプレイ302に出力する。携帯端末303は、画像処理装置200と同様の機能を有するとともに表示パネルを一体的に備えた、ポータブルゲーム機、高機能携帯電話、タブレット端末などのデバイスである。
 以後、携帯端末303が内蔵する画像処理モジュールも「画像処理装置200」として説明する。画像処理装置200は、サーバ400から送信された画像に、別途準備したUI(User Interface)プレーン画像(あるいはOSD(On Screen Display)プレーン画像とも呼ぶ)や、ヘッドマウントディスプレイ100などが備えるカメラによる撮影画像を合成したうえで、接続された表示パネルに出力してもよい。
 ヘッドマウントディスプレイ100を出力先とする画像処理装置200は、サーバ400から送信された画像を、ヘッドマウントディスプレイ100の表示直前の位置や姿勢に基づき補正することにより、頭部の動きに対する表示の追随性を高めてもよい。画像処理装置200は、平板型ディスプレイ302にも同様の視野で画像を表示させることにより、ヘッドマウントディスプレイ100を装着しているユーザがどのような画像を見ているかを、その他の人が見られるようにしてもよい。
 ただし本実施の形態において表示対象とする動画像の内容や、その表示先は特に限定されない。例えばサーバ400は、図示しないカメラによって撮影された画像を表示対象とし、画像処理装置200にライブ配信してもよい。このときサーバ400は、スポーツ競技やコンサートなどのイベント会場を複数のカメラで撮影した多視点画像を取得し、それを用いてヘッドマウントディスプレイ100や携帯端末303の動きに応じた視野での画像を作り出すことにより、自由視点のライブ映像を生成し、各画像処理装置200に配信してもよい。
 また本実施の形態を適用できるシステムの構成は図示するものに限定されない。例えば画像を表示させる装置は、ヘッドマウントディスプレイ100、平板型ディスプレイ302、携帯端末303のいずれかであってもよいし、それらの組み合わせや数は限定されない。またヘッドマウントディスプレイ100や平板型ディスプレイ302も、画像処理装置200を内蔵してよい。
 これらの装置にさらにヘッドマウントディスプレイ100や平板型ディスプレイ302を接続できるようにしてもよい。携帯端末303は、内部に加速度センサ、ジャイロセンサ、地磁気センサなど、携帯端末303の位置、姿勢、動きを導出するためのモーションセンサを備えてよい。また携帯端末303の表示パネルを透明なタッチパッドで覆い、ユーザのタッチ操作を検出できるようにしたり、図示しないボタンなどの入力手段を設けたりしてもよい。画像処理装置200に、図示しない入力装置を接続してもよい。このときサーバ400は、各ユーザの操作内容を受信し、それぞれに対応する画像を生成したうえ、各画像処理装置200に送信してもよい。
 図2は、ヘッドマウントディスプレイ100の外観例を示す。この例においてヘッドマウントディスプレイ100は、出力機構部102および装着機構部104で構成される。装着機構部104は、ユーザが被ることにより頭部を一周し装置の固定を実現する装着バンド106を含む。出力機構部102は、ヘッドマウントディスプレイ100をユーザが装着した状態において左右の目を覆うような形状の筐体108を含み、内部には装着時に目に正対するように表示パネルを備える。
 筐体108内部にはさらに、ヘッドマウントディスプレイ100の装着時に表示パネルとユーザの目との間に位置し、画像を拡大して見せる接眼レンズを備える。またヘッドマウントディスプレイ100はさらに、装着時にユーザの耳に対応する位置にスピーカーやイヤホンを備えてよい。
 ヘッドマウントディスプレイ100はさらに、筐体108の前面にステレオカメラ110、中央に広視野角の単眼カメラ111、左上、右上、左下、右下の四隅に広視野角の4つのカメラ112を備え、ユーザの顔の向きに対応する方向の実空間を動画撮影する。ある態様においてヘッドマウントディスプレイ100は、ステレオカメラ110が撮影した動画像を即時表示させることにより、ユーザが向いた方向の実空間の様子をそのまま見せるシースルーモードを提供する。
 またステレオカメラ110、単眼カメラ111、4つのカメラ112による撮影画像の少なくともいずれかを、表示画像の生成に利用してもよい。例えばSLAM(Simultaneous Localization and Mapping)により周囲の空間に対するヘッドマウントディスプレイ100、ひいてはユーザの頭部の位置や姿勢を所定のレートで取得し、サーバ400において生成する画像の視野を決定したり、画像処理装置200において当該画像を補正したりしてもよい。あるいは画像処理装置200において、サーバ400から送信された画像に撮影画像を合成し表示画像としてもよい。
 またヘッドマウントディスプレイ100は、内部に加速度センサ、ジャイロセンサ、地磁気センサなど、ヘッドマウントディスプレイ100の位置、姿勢、動きを導出するためのモーションセンサのいずれかを備えてよい。この場合、画像処理装置200は、当該モーションセンサの計測値に基づき、ユーザ頭部の位置や姿勢の情報を所定のレートで取得する。この情報は、サーバ400において生成する画像の視野を決定したり、画像処理装置200において当該画像を補正したりするのに用いることができる。
 図3は、本実施の形態におけるサーバ400と画像処理装置200の基本的な構成を示している。本実施の形態におけるサーバ400および画像処理装置200は、表示画像の1フレームより小さい部分画像を記憶するローカルメモリを要所に備える。そしてサーバ400における画像データの圧縮符号化および送信、画像処理装置200におけるデータの受信、復号伸張、各種画像処理、表示装置への出力を、当該部分画像の単位でパイプライン処理する。これにより、サーバ400での画像の描画から、画像処理装置200に接続された表示装置への表示までの遅延時間を軽減させる。
 サーバ400において、描画制御部402はCPU(Central Processing Unit)で実現され、画像描画部404における画像の描画を制御する。上述のとおり本実施の形態において表示させる画像の内容は特に限定されないが、描画制御部402は例えば、クラウドゲームを進捗させ、その結果を表す動画像のフレームを画像描画部404に描画させる。この際、描画制御部402は、画像処理装置200からユーザの頭部の位置や姿勢に係る情報を取得し、それに対応する視野で各フレームを描画するように制御してもよい。
 画像描画部404はGPU(Graphics Processing Unit)で実現され、描画制御部402の制御のもと、所定または可変のレートで動画像のフレームを描画し、その結果をフレームバッファ406に格納する。フレームバッファ406はRAM(Random Access Memory)によって実現される。ビデオエンコーダ408は、描画制御部402の制御のもと、フレームバッファ406に格納された画像のデータを、1フレームより小さい部分画像の単位で圧縮符号化する。部分画像は、フレームの画像平面を例えば横方向、縦方向、縦横双方向、または斜め方向に設定した境界線で分割してなる、各領域の画像である。
 ビデオエンコーダ408はこの際、部分画像の圧縮符号化に必要な画像が画像描画部404により描画され次第、サーバの垂直同期信号を待たずに、当該フレームの圧縮符号化を開始してよい。フレームの描画や圧縮符号化など各種処理を、垂直同期信号を基準として同期させる従来技術によれば、画像の描画から表示までの各処理に与える時間をフレーム単位で揃えることにより、フレーム順の管理が容易である。しかしながらこの場合、フレームの内容によって描画処理が早く終了しても、圧縮符号化処理を次の垂直同期信号まで待機する必要がある。本実施の形態では後に述べるように、部分画像単位でその生成時刻を管理することにより、無駄な待機時間が生じないようにする。
 ビデオエンコーダ408が圧縮符号化に用いる符号化方式は、H.264/AVCやH.265/HEVCなど一般的なものでよい。ビデオエンコーダ408は、圧縮符号化した部分画像単位の画像のデータを部分画像記憶部410に格納する。部分画像記憶部410はSRAM(Static Random Access Memory)などで実現されるローカルメモリであり、1フレームより小さい部分画像のデータサイズに対応する記憶領域を有する。以後に述べる「部分画像記憶部」も同様である。ビデオストリーム制御部414は、圧縮符号化された部分画像のデータが部分画像記憶部410に格納される都度、当該データを読み出し、オーディオデータや制御情報などを必要に応じて含めたうえでパケット化する。
 制御部412は、部分画像記憶部410に対するビデオエンコーダ408のデータ書き込み状況や、ビデオストリーム制御部414のデータを読み出し状況などを常に監視し、両者の動作を適切に制御する。例えば制御部412は、部分画像記憶部410にデータ欠乏、すなわちバッファアンダーランや、データ溢れ、すなわちバッファオーバーランが起きないように制御する。
 入出力インターフェース416は画像処理装置200と通信を確立し、ビデオストリーム制御部414がパケット化したデータを、ネットワーク306を介して順次送信する。入出力インターフェース416は画像データのほか、オーディオデータなども適宜送信してよい。また入出力インターフェース416は、ユーザ操作やユーザの頭部の位置や姿勢、画像処理装置200での画像処理の粒度、表示パネルの走査方向に係る情報などを必要に応じて画像処理装置200から取得し、描画制御部402やビデオエンコーダ408などに供給してもよい。
 画像処理装置200において入出力インターフェース202は、サーバ400から送信された画像やオーディオのデータを順次取得する。入出力インターフェース202はさらに、ユーザ操作やユーザの頭部の位置や姿勢、画像処理装置200での画像処理の粒度、表示パネルの走査方向に係る情報などを必要に応じて取得し、サーバ400に送信してもよい。入出力インターフェース202は、サーバ400から取得したパケットを復号のうえ、取り出した画像のデータを部分画像記憶部204に格納する。
 部分画像記憶部204は入出力インターフェース202とビデオデコーダ208の間に設けたローカルメモリである。制御部206は、部分画像記憶部204に対する入出力インターフェース202のデータ書き込み状況や、ビデオデコーダ208のデータを読み出し状況などを常に監視し、両者の動作を適切に制御する。ビデオデコーダ208は、部分画像のデータが部分画像記憶部204に格納される都度、当該データを読み出し、符号化方式に応じた手順で復号伸張したうえ、部分画像記憶部210に順次格納する。
 部分画像記憶部210はビデオデコーダ208と画像処理部214の間に設けたローカルメモリである。制御部212は、部分画像記憶部210に対するビデオデコーダ208のデータ書き込み状況や、画像処理部214のデータを読み出し状況などを常に監視し、両者の動作を適切に制御する。画像処理部214は、復号伸張された部分画像のデータが部分画像記憶部210に格納される都度、当該データを読み出し、表示に必要な処理を施す。例えばヘッドマウントディスプレイ100において、接眼レンズを介して見たときに歪みのない画像を視認させるために、接眼レンズによる歪みと逆の歪みを与える補正処理を実施する。
 あるいは画像処理部214は、別途準備したUIプレーン画像を参照し、サーバ400から送信された画像に合成(スーパーインポーズ)してもよい。また画像処理部214は、ヘッドマウントディスプレイ100や携帯端末303が備えるカメラによる撮影画像を、サーバ400から送信された画像に合成してもよい。画像処理部214はまた、処理の時点におけるユーザの頭部の位置や姿勢に対応する視野となるように、サーバ400から送信された画像を補正してもよい。画像処理部214はまた、超解像処理など平板型ディスプレイ302へ出力するのに適した画像処理を行ってもよい。
 いずれにしろ画像処理部214は、部分画像記憶部210に格納された部分画像の単位で処理を施し、部分画像記憶部216に順次格納していく。部分画像記憶部216は画像処理部214とディスプレイコントローラ220の間に設けたローカルメモリである。制御部218は、部分画像記憶部216に対する画像処理部214のデータ書き込み状況や、ディスプレイコントローラ220のデータを読み出し状況などを常に監視し、両者の動作を適切に制御する。
 ディスプレイコントローラ220は、画像処理後の部分画像のデータが部分画像記憶部216に格納される都度、当該データを読み出し、ヘッドマウントディスプレイ100、平板型ディスプレイ302、携帯端末303の表示パネルに適切なタイミングで出力する。具体的には、それらのディスプレイの垂直同期信号に合致するタイミングで、各部分画像のデータを所定の順序で出力していく。
 次に、画像の描画から表示までにサーバ400および画像処理装置200において実現される、部分画像のパイプライン処理について説明する。図4は、本実施の形態における、画像の描画から表示までの処理の様子を概念的に示している。上述のとおりサーバ400は、動画像のフレーム90を所定または可変のレートで生成する。図示する例でフレーム90は、左右に二等分した領域に左目用、右目用の画像をそれぞれ表した構成を有するが、サーバ400で生成する画像の構成をこれに限る趣旨ではない。
 サーバ400は上述のとおり、フレーム90を部分画像ごとに圧縮符号化する。図では画像平面を水平方向に5分割し、部分画像92a、92b、92c、92d、92eとしている。これにより、部分画像はこの順で次々に圧縮符号化され、矢印に示すように画像処理装置200へ伝送され表示される。すなわち最上段の部分画像92aに対し、圧縮符号化、送信、復号伸張、表示パネル94への出力といった処理が施されている間に、その下の部分画像92b、さらに下の部分画像92c、というように順次部分画像が伝送され表示される。これにより、画像の描画から表示までに必要な各種処理を並列に実施でき、転送時間が介在しても最低限の遅延で表示を進捗させることができる。
 このように、フレームを部分画像に分割してパイプライン処理することによる低遅延化の効果は、部分画像への分割の仕方(境界線)、圧縮符号化順、送信順、画像処理装置200における処理順が、表示パネル94での表示順(走査方向)に対応していることにより発揮される。しかしながら動画像の表示に用いられるデバイスは多岐にわたり、表示パネル94での表示順は多様化している。例えばホームコンソール、パーソナルコンピュータ、テレビ受像器などの表示装置では、横長の画面を水平方向に走査する方式(ランドスケープ型と呼ぶ)が主流である。図4で示した態様は、このランドスケープ型を前提としている。
 一方、高機能携帯電話やタブレットなどの携帯端末では、縦長の画面を水平方向に走査する方式(ポートレート型と呼ぶ)が主流である。これに応じてポートレート型の表示パネルの供給が潤沢になった結果、ポートレート型のパネルを横倒しに実装した横長の表示装置も増えてきた。この場合、横長の画面に対し走査は縦方向になされることになる。このように、表示装置の実装態様やその時々の状況によって、表示パネルの走査方向は様々に変化し得る。
 図5は、表示パネルの走査方向のバリエーションを例示している。図の矩形は表示画面を表し、表示対象の横長の画像における左上の基準位置14を黒丸で示している。すなわち基準位置14は、画像をラスタ順で走査した場合の始点であり、一般的には描画時の始点でもある。(a)は、ランドスケープ型の表示パネルに回転のない画像を表示した場合を示している。ポートレート型の携帯端末を縦長に把持し横長の画像を見る場合も、画面の一部が図示するような状態となる。この場合、表示パネルは、基準位置14と同じ位置を始点として、右方向への走査を下方向に繰り返す。
 (b)はポートレート型の表示パネルに、時計回りに90°回転させた画像を表示した場合を示している。このような状態は、ユーザが把持する向きに応じて表示画像の向きを切り替える形式の縦長の携帯端末303を、ユーザが横向きにして横長の画像を見るときに発生する。あるいは上述のとおり、横長の設置が基本のモニタなどにポートレート型の表示パネルを実装したときにも発生する。これらの場合、表示パネル上でラスタ順に走査がなされると、画像上では左下を始点として上方向への走査が右方向に繰り返されることになる。
 (c)はランドスケープ型の表示パネルに、画像の天地を逆に表示した場合を示している。このような状態は、例えばランドスケープ型の携帯端末をユーザが逆さにして見ているときに発生する。あるいはポートレート型の携帯端末を縦長かつ逆さにして見る場合も、画面の一部が図示するような状態となる。この場合、表示パネル上でラスタ順に走査がなされると、画像上では右下を始点として左方向への走査が上方向に繰り返される。
 (d)はポートレート型の表示パネルに、逆時計回りに90°回転させた画像を表示した場合を示している。このような状態は、例えばポートレート型の携帯端末を、ユーザが(b)の場合と逆の横向きにして、横長の画像を見るときに発生する。この場合、表示パネル上でラスタ順に走査がなされると、画像上では右上を始点として下方向への走査が左方向に繰り返される。このように、表示パネルの構造上の走査方向の違いのほか、ユーザが携帯端末を把持する向きによっても、画像上での走査方向が変化する。ユーザが携帯端末を把持する向きを変えれば、動画の再生中であっても走査方向が随時変化し得る。
 (b)~(d)のような状態においては、図4で示したように画像上のラスタ順で描画した画像を、サーバ400がその順で圧縮符号化し、画像処理装置200に送信したとしても、表示パネルへの出力順が異なるため低遅延化の効果が低減する。すなわち画像処理装置200から表示パネルへの出力順と、サーバ400が生成した部分画像単位が前提としている出力順が異なる場合、画像処理装置200のディスプレイコントローラ220が、部分画像が到着するに応じて、順次画像をラスタ順で走査しようにも、必要な部分画像が存在していない状態となる。このような場合、画像処理装置200は、表示走査開始位置を含んだ部分画像が到着するまで出力を開始できない。
 図5から明らかなとおり、画像処理装置200は多くの場合、1画面を構成するすべての部分画像が到着するまで待つこととなり、順次部分画像が伝送され表示されることによる低遅延性が損なわれる。そこで本実施の形態では、表示パネルの走査順に係る情報をサーバ400が取得し、それに基づきデータの処理順を適応的に切り替える。この際、好適には画像の描画順については変化させずに、その後の処理から順序を切り替えることにより、描画処理が複雑化し却って処理速度が低下するような悪影響を抑える。
 図6は、本実施の形態のサーバ400および画像処理装置200の機能ブロックを示している。同図に示す各機能ブロックは、ハードウェア的にはCPU、GPU、エンコーダ、デコーダ、演算器、各種メモリなどで実現でき、ソフトウェア的には、記録媒体からメモリにロードした、情報処理機能、画像描画機能、データ入出力機能、通信機能などの諸機能を発揮するプログラムで実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。後述する機能ブロックも同様である。
 サーバ400は、画像生成部420、フレームバッファ406、圧縮符号化部422、パケット化部424、および通信部426を備える。画像生成部420は図3の描画制御部402、画像描画部404で構成され、ゲーム画像など画像処理装置200に送信すべき動画像のフレームを、所定または可変のレートで生成する。あるいは画像生成部420は、図示しないカメラや記憶装置などから動画像のデータを取得してもよい。この場合、画像生成部420は、画像取得部と読み替えることができる。以後の説明でも同様である。
 フレームバッファ406は図3で説明したように、画像生成部420が生成した動画像のフレームデータを順次格納していく。圧縮符号化部422は、図3のビデオエンコーダ408、部分画像記憶部410、制御部412で構成され、画像生成部420が生成したフレームのデータをフレームバッファ406から読み出し、部分画像の単位で圧縮符号化する。ここで圧縮符号化部422は、1行、2行など所定数の行の領域や、16×16画素、64×64画素など所定サイズの矩形領域を単位として動き補償や符号化を行う。したがって圧縮符号化部422は、圧縮符号化に必要な最小単位の領域のデータが画像生成部420により生成されたら、圧縮符号化を開始してよい。
 なお圧縮符号化や送信におけるパイプライン処理の単位である部分画像は、当該最小単位の領域と同じでもよいしそれより大きな領域としてもよい。また圧縮符号化部422は、ディスプレイ・パイプラインすなわち、規定のビデオ出力タイミングフォーマットに従い、フレームバッファにある画像を既定のピクセルフォーマットに従って読みだし、必要に応じてピクセルフォーマットの変換や画像サイズの変更や画像の合成をおこなう機能を内蔵し、必要に応じて圧縮符号化の前にこれらの機能を実行してもよい。
圧縮符号化部422は、フレームバッファ406から画素データを読み出す順序、部分画像の形状(画像平面での境界線)、圧縮符号化の順序などを最適化する処理順制御部423を備える。すなわち処理順制御部423は、データ送信先の画像処理装置200が画像を表示させる表示パネルの走査順に係る情報に基づく順序で、フレームバッファ406からフレームのデータを読み出し圧縮符号化するよう圧縮符号化部422を制御する。
 ここで処理順制御部423は、画像処理装置200とのハンドシェイクにより、表示パネルの走査方向や走査開始位置を取得し、フレームバッファ406からの各画素のデータの読み出し順、部分画像の形状、圧縮符号化順について、最も低遅延となる組み合わせを選択する。例えば処理順制御部423は、表示パネルの走査順に係る情報と、部分画像の形状や処理順の最適条件を対応づけたテーブルをメモリなどに保持し、それを参照して後者を決定してもよい。また処理順制御部423は、画像処理装置200およびサーバ400の画像生成部420や圧縮符号化部422が対応可能な各種処理のパラメータを取得し、共通して実現できるパラメータの中で最も遅延が少なく処理効率が高い組み合わせを選択する。
 なおサーバ400は、複数の表示パネル(部分パネル)を接続して1つの表示パネルを構成する形式の表示装置にも対応させる。ここで複数の部分パネルは、物理的には一つのパネルとして一体的に形成されていてもよい。部分パネルで構成される表示パネルを表示先とする場合、処理順制御部423は、部分パネルの数、それらが並列に走査されるか否か、といった情報をさらに取得し、それに基づきデータの読み出し順、部分画像の形状、圧縮符号化順などを切り替える。また上述のとおり、表示パネルの向きによって画像の表示方向を変化させる形式の端末を送信先とする場合、処理順制御部423は、表示パネルの向きに係る情報を随時取得し、その変化に応じてデータの読み出し順、部分画像の形状、圧縮符号化順などを変化させる。
 これらの状況において、処理順制御部423は、画像処理装置200内部での画素データの処理順を考慮して、フレームバッファ406からの画素データの読み出し順を最適化してもよい。例えば画像処理装置200においてなされる処理に、画素列を所定の順序で処理していくものが含まれる場合、処理順制御部423は、フレームバッファ406からの読み出し順も、画像処理装置200での処理順を踏襲するように制御する。これによりサーバ400は、画像処理装置200で先に処理すべき画素のデータを優先して送信できる。
 一方、画像処理装置200においてなされる処理が、部分画像単位など所定の領域ごとの処理に限られる場合、当該領域内での画素データの送信順は、表示までの遅延時間に影響しにくい。そのため処理順制御部423は、フレームバッファ406へのアクセスの速さや効率性、画像生成部420による画素データの書き込み順などに基づき画素データの読み出し順を決定する。これにより、サーバ400側での送出遅延を最小化できる。
 なおサーバ400が画像処理装置200とのハンドシェイクにより取得する情報や、それに基づき処理順制御部423が決定する処理の態様は上述したものに限らない。例えばサーバ400はハンドシェイクにより、表示解像度、フレームレート、フレームレートが可変か否か、画素データのフォーマット、圧縮符号化方式、バッファ容量、転送帯域、連続したアドレスから一度に読み出す画素の数などの少なくともいずれかの情報を、画像処理装置200と共有してもよい。
 このとき処理順制御部423は取得した情報に基づき、上述した画素データの読み出し順、部分画像の形状すなわちフレームの分割境界、圧縮符号化順のほか、表示装置がバッファリングすべき部分画像の数や圧縮伸張時のエラー補正強度および補正方法などの少なくともいずれかを、遅延時間、画質、転送ロバストネスが最適となるように選択する。処理順制御部423は、それらのパラメータの全てを決定してもよいし、一部のみ決定し、その他のパラメータは固定としてもよい。
 また処理順制御部423は必要に応じて、決定したパラメータをサーバ400内部の各機能ブロックに通知してもよい。例えば処理順制御部423は、決定したパラメータをパケット化部424に通知することにより、画像処理装置200へ送信されるようにしてよい。またサーバ400と画像処理装置200とのハンドシェイクや、それに応じた処理態様の切り替えは、ストリーム転送の初期処理として行うほか、画像処理装置200側で動画像が表示されている最中にも適宜実施してよい。すなわち処理順制御部423は、上述した各種パラメータの変化を画像処理装置200から随時取得し、それに応じて適切に処理を切り替えるように圧縮符号化部422を制御する。
 パケット化部424は、図3のビデオストリーム制御部414、制御部412で構成され、圧縮符号化された部分画像のデータを、利用する通信のプロトコルに応じた形式でパケット化する。この際、パケット化部424は、処理順制御部423が決定した、画素データの順序や部分画像の形状、大きさといった情報を取得し、部分画像のデータと対応づけておく。さらにパケット化部424は、部分画像が描画された時刻(以下、「生成時刻」と呼ぶ)を、画像生成部420または圧縮符号化部422から取得し、部分画像のデータと対応づけておく。
 通信部426は、図3の入出力インターフェース416で構成され、圧縮符号化された部分画像のデータとそれに付随する各種情報を含めたパケットを、画像処理装置200に送信する。これらの構成によりサーバ400は、圧縮符号化、パケット化、送信を、1フレームより小さい部分画像単位でパイプライン処理することにより並列に行う。通信部426はまた、サーバ400と画像処理装置200がハンドシェイクにより上述したような情報を共有するためのインターフェースとしても機能する。例えば通信部426は、画像処理装置200に接続された表示パネルの走査順に係る情報を取得する表示方式情報取得部としても機能する。
 画像処理装置200は、画像データ取得部240、復号伸張部242、画像処理部244、および表示制御部246を備える。なお復号伸張部242と画像処理部244は、部分画像のデータに所定の処理を施し表示用の部分画像のデータを生成するという意味で共通の機能を有し、それらの少なくともいずれかを「画像処理部」と総称することもできる。画像データ取得部240は、図3の入出力インターフェース202、部分画像記憶部204、および制御部206で構成され、圧縮符号化された部分画像のデータを、その生成時刻とともにサーバ400から取得する。
 画像データ取得部240はまた、サーバ400と画像処理装置200がハンドシェイクにより上述したような情報を共有するためのインターフェースとしても機能する。復号伸張部242は、図3のビデオデコーダ208、部分画像記憶部210、制御部206、制御部212で構成され、圧縮符号化された部分画像のデータを復号伸張する。ここで復号伸張部242は、動き補償や符号化など圧縮符号化に必要な最小単位の領域のデータが画像データ取得部240により取得されたら、復号伸張処理を開始してよい。
 ここで復号伸張部242は、サーバ400における圧縮符号化時の画素データの読み出し順、部分画像の形状、圧縮符号化順などに基づき、フレームを適切に復元するよう復号伸張部242を制御する接続位置制御部243を含む。本実施の形態では、例えば部分画像の形状や大きさが同じでも、内部での画素データの配列が様々に変化する可能性がある。そこで接続位置制御部243は、サーバ400から送信された、画素データの配列に係る情報に基づき、復号伸張した部分画像の画素を元の配列に戻すように制御する。
 さらに本実施の形態では、画像平面における部分画像の大きさや形状、圧縮符号化データの生成順が変化し得るため、接続位置制御部243は、サーバ400から送信されたそれらの情報に基づき、復号伸張した部分画像がフレームのどの領域に対応するかを特定しておく。特定した情報は、表示制御部246に提供することにより、各部分画像が正しい位置に表示されるようにする。
 上述のとおりサーバ400において、表示装置がバッファリングする部分画像の数や、圧縮伸張時のエラー補正強度、補正方法などを適応的に決定する場合、接続位置制御部243は、サーバ400から送信されたそれらの情報も参照し、復号伸張部242において適切に補正がなされるよう制御したり、表示制御部246にバッファリングの数を通知したりする。
 画像処理部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は、近傍画素参照によるライトウェイトなエントロピー符号化、インデックス値参照符号化、ハフマン符号化などを行ってもよい。また表示装置が液晶パネルを採用した場合、高解像度化が可能な反面、反応速度が遅い。表示装置が有機ELパネルを採用した場合は反応速度が速い反面、高解像度化が難しく、また黒色領域とその周辺で色にじみが発生するBlack Smearingと呼ばれる現象が生じ得る。
 そこで画像処理部244は、このような表示パネルによる様々な悪影響を解消するように補正を行ってもよい。例えば液晶パネルの場合、画像処理部244はフレーム間に黒い画像を挿入することにより液晶をリセットし、反応速度を向上させる。また有機ELパネルの場合、画像処理部244は輝度値や、ガンマ補正におけるガンマ値にオフセットをかけBlack Smearingによる色にじみを目立ちにくくする。
画像処理部244は画像に対し、高精細度化や、高周波数成分の復元や再構築を行う超解像処理(Super Resolution)を行ってもよい。画像処理部244はこのとき、機械学習や深層学習を用いてあらかじめ構築したデータベースやネットワークモデルへ画像データを入力することにより画像を変換してもよい。ここで画像処理部244は、部分画像単位で変換を実施することにより低遅延化を図ってよい。このときの部分画像単位を、表示パネルの走査順序や分割構成に基づいて決定された部分画像単位と一致させることで、一連の処理をパイプライン化でき、さらなる低遅延化を実現できる。
 表示制御部246は、図3のディスプレイコントローラ220と制御部218で構成され、表示用の部分画像のデータを順次、ヘッドマウントディスプレイ100、平板型ディスプレイ302、携帯端末303の表示パネルに表示させる。ただし本実施の形態では、部分画像の圧縮符号化データをサーバ400から個別に取得するため、通信状況によっては取得順が入れ替わったり、パケットロスにより部分画像のデータ自体が取得できなかったりすることが考えられる。
 そこで表示制御部246は、サーバ400から送信される各部分画像のデータの生成時刻、および、復号伸張部242から提供される、各部分画像の画像平面上での位置に基づき、部分画像のデータの本来の表示順や表示タイミング、部分画像のデータの欠落量などのデータ取得状況を特定する。そして表示制御部246は、データ取得状況に応じて、表示パネルへの出力対象を変化させたり、出力順や出力タイミングを適切に調整したりする。
 例えば表示制御部246はデータ取得状況に応じて、次のフレームに含まれる本来の部分画像のデータを出力するか、それより前のフレームに含まれる部分画像のデータを再度出力するかを決定する。表示制御部246は、フレーム中、所定値以上の割合で部分画像が欠落している場合に、出力対象を前のフレームのデータに置き換えるなど、取得された部分画像の量(割合)に応じて出力対象を変化させてもよい。
 また表示制御部246は、過去のフレームの出力実績や、生成時刻からの経過時間に応じて、次のフレーム表示期間の出力対象を変化させてもよい。そして表示制御部246は、決定した順序およびタイミングで、出力対象として決定された部分画像のデータを表示パネルに出力する。
 表示制御部246は、データ出力先の表示パネルにおける表示方式を取得し、画像データ取得部240を介してサーバ400に送信する表示方式取得部247を備える。ここで表示方式とは、表示パネルの走査順に係る情報、すなわち走査の始点や走査方向を含む。また、端末の向きに応じて表示画像の向きを切り替える場合、表示方式取得部247は表示パネルの向き、例えば四辺のうち上側に位置する辺の識別情報も随時取得する。この場合、表示方式取得部247は、加速度センサ、ジャイロセンサ、地磁気センサなど端末の向きを計測するセンサを含む。
 さらに表示方式取得部247は、表示解像度やフレームレート、フレームレートが可変か否か、1つの表示パネルを構成する部分パネルの数、そのうち並列に走査がなされるパネルの数、複数の部分パネルを連続して走査する場合はそのパネルの数や走査順などの情報を取得してもよい。表示方式取得部247はまた、採用する圧縮伸張方式が対応可能な単位領域(許容できる走査線数や走査線長の最小単位、複数の部分パネルの連続走査を許容するか否か)、対応可能な部分画像の走査線数、部分画像を保持するバッファの容量、表示パネルが対応する画素データのフォーマット、利用可能な転送帯域などの情報を取得してもよい。
 表示方式取得部247は圧縮伸張に関連したパラメータとして、復号伸張部242が対応可能な範囲のほか、上述のとおり画像処理部244が画像処理装置200から表示装置へ出力するインターフェースの必要帯域幅を削減するために行う画像圧縮が対応可能な範囲を取得してよい。なお表示解像度は、復号伸張部242や表示制御部246の処理が対応可能な範囲、表示パネルの対応可能な範囲、および表示パネルの一部分のみに画像を表示するなどの表示形態に依存する。このようなことを踏まえ、上述の「表示解像度やフレームレート」、「表示パネルが対応する画素データのフォーマット」について、表示方式取得部247は、表示パネルのみならず復号伸張部242が対応可能な範囲などを取得する。
 さらに表示方式取得部247は、復号伸張部242がデータを復号伸張する際に低遅延化に有利な画素の到着順や向きがあるか否か、ある場合はその到着順や向きの情報を、復号伸張部242から取得してもよい。ここで「低遅延化に有利な画素の到着順や向き」は例えば、表示パネルの走査順・走査方向や、復号伸張部242、画像処理部244、表示制御部246の処理粒度におけるデータ参照順序、に基づいて定まる。これらの情報の少なくともいずれかは、ハンドシェイクによりサーバ400に通知される。これに応じてサーバ400の処理順制御部423は、上述のとおり画素データの読み出し順、部分画像の大きさや形状、圧縮符号化順などを最適化する。また後述のとおり、フレームバッファ406から一度に読み出す画素列の幅なども最適化してよい。
 図7は、表示パネルの走査順とサーバ400における処理順の対応を例示している。この例は、ポートレート型の表示パネルに横長の画像を表示させる場合を示している。図の矩形は表示画像を表し、左側がサーバ400での処理順、右側が画像処理装置200での処理や表示パネルでの表示の順序を示している。図では形成される部分画像の一部をグレーの矩形領域で示し、その処理順を番号で示している。画像中の残りの領域も同様に、部分画像単位で順次処理される。また、サーバ400における画像描画時の走査、すなわち画像上でのラスタ順における始点を描画始点16として黒丸で、表示パネルでの走査の始点を表示始点18として白丸で示している。
 (a)はサーバ400において、フレームを縦方向に分割し、左端から右方向に部分画像を生成する態様を示している。このようにすると、表示パネルにおいて、左下から上方向への走査を右方向に繰り返す走査順と部分画像の処理順が合致する。(b)はサーバ400において、フレームを縦方向に分割し、右端から左方向に部分画像を生成する態様を示している。この場合、表示パネルにおいて、右上から下方向への走査を左方向に繰り返す走査順と部分画像の処理順が合致する。
 (c)はサーバ400において、画像を横方向に分割し、上端から下方向に部分画像を生成する態様を示している。この場合、表示パネルにおいて、左上から右方向への走査を下方向に繰り返す走査順と部分画像の処理順が合致する。(d)はサーバ400において、画像を横方向に分割し、下端から上方向に部分画像を生成する態様を示している。この場合、表示パネルにおいて、右下から左方向への走査を上方向に繰り返す走査順と部分画像の処理順が合致する。いずれの場合も、圧縮符号化から画像処理装置200内部での処理を経て表示までの一連の処理を同じ順序で進捗させることができ、表示までを低遅延で行える。
 図8は、表示パネルの走査順とサーバ400における処理順の対応の別の例を示している。この例は、ヘッドマウントディスプレイ100の左右の表示パネルに、左目用、右目用の画像を表示させる場合を示している。同図においてサーバ400は、画像平面を左右に分割した領域に左目用、右目用の画像を表した画像をフレームごとに生成している。
 (a)はサーバ400において、画像平面の左右の領域のそれぞれを横方向に分割し、図に番号で表すように左右の画像を交互に、上端から下方向に部分画像を生成する態様を示している。この場合、図の右側に示すように、ヘッドマウントディスプレイ100の左目用、右目用の表示パネルにおいて、それぞれ左上から右方向への走査を下方向に繰り返す走査順と部分画像の処理順が合致する。なお左目用、右目用の表示パネルの走査は並列であってもよい。
 なおこの処理順は、画像のラスタ順と類似するが、画像平面を左右に分割する点に特徴を有する。すなわち(1)で示された左目用の部分画像と(2)で示された右目用の部分画像を分けて圧縮符号化することにより、画像処理装置200で(1)のデータを復号伸張する際、(2)のデータを待機する必要がなくなり、処理を高速化できる。
 一方、それら2つの部分画像は高い類似性を有することから、(1)の部分画像を参照画像としてその差分を(2)の部分画像の圧縮符号化データとすることにより圧縮率を高めることができる。この場合、画像処理装置200は、先に復号伸張した(1)の部分画像を参照して(2)の部分画像を復号伸張する。後続の部分画像も同様である。
 (b)はサーバ400において、画像平面の左右の領域のそれぞれを縦方向に分割し、図に数字で表すように左右の画像を交互に、左端から右方向に部分画像を生成する態様を示している。この場合、図の右側に示すように、ヘッドマウントディスプレイ100の左目用、右目用の表示パネルにおいて、それぞれ左下から上方向への走査を左方向に繰り返す走査順と部分画像の処理順が合致する。
 なおここでは図示を省略しているが、表示パネルの天地を逆にした場合は、図7の(b)や(d)のような順序で、画像平面の左右の領域から交互に部分画像を生成していけばよい。また図示する処理順は、ヘッドマウントディスプレイ100の左目用、右目用の表示パネルに限らず、左右に部分パネルを配置してそれぞれを駆動させることにより1つの画像を表示させる場合にも適用できる。
 図9は、表示パネルの走査順とサーバ400における処理順の対応のさらに別の例を示している。この例は、4つの部分パネルを2行2列に配置し、4分割した表示画像をそれぞれに表示させることにより1つの画像を表示する場合を示している。図では4つの部分パネルに間隔を設けているが、実際にはそれらが接した状態で1つの画像を表示する。サーバ400は、部分パネルの境界に係る情報を画像処理装置200から取得する。
 (a)はサーバ400において、画像平面の4領域のそれぞれを横方向に分割し、図に番号で表すように上半分の2領域の上端から左右交互に、下方向に部分画像を生成していく態様を示している。この処理順も画像のラスタ順と類似するが、画像平面を部分パネルに合わせて2行2列に分割し、その境界を跨がないように部分画像を形成する点に特徴を有する。
 この場合、図の右側に示すように、左右の部分パネルを並列に、それぞれ左上から右方向への走査を下方向に繰り返す走査順と部分画像の処理順が対応する。つまりこの表示パネルは、左右の部分パネルを並列に走査し、上下の部分パネルは上から下へ走査が連続する点で、図8の表示パネルと共通している。
 (b)はサーバ400において、画像平面の4領域のそれぞれを横方向に分割し、図に番号で表すように左上、右上、左下、右下の領域をこの順で循環させて、それぞれ上端から下方向に部分画像を生成していく態様を示している。この場合、図の右側に示すように、4つの部分パネルを並列に、左上からから右方向への走査を下方向に繰り返す走査順と部分画像の処理順が対応する。
 なおいずれの場合もサーバ400において、圧縮符号化の最小単位が、部分パネルの境界を跨がないように制御することにより、部分パネルごとの独立した表示処理を効率的に実現できる。図7~9に示した態様は一例であり、表示パネルにおける走査順や表示パネルの構成には様々なものがあるため、サーバ400は同様の原理で適応的に部分画像の生成順を決定すればよい。
 図10は、画像処理装置200とのハンドシェイクに基づき、サーバ400における画素データの読み出し順を決定する原理を説明するための図である。図は画像平面を模式的に表しており、格子状に区切られた最小単位の矩形を各画素とする。サーバ400において、描画始点16の画素からラスタ順に画素データが生成される。そのためフレームバッファ406には、各画素領域に番号で示される順序で、データが格納される。
 一方、表示パネルにおいては矢印に示すように、画像上の左下を表示始点18として、上方向への走査を右方向に繰り返すとする。すなわち表示パネルにおいては、画素番号112、96、80、・・・0、113、97、・・・の順で画像が表示される。このような前提において、サーバ400の処理順制御部423は例えば、画像処理装置200の処理の粒度によって、画素のデータをフレームバッファ406から読み出す順序を適応的に切り替える。
 例えば画像処理装置200において、画素単位など部分画像より小さい粒度で画素データを処理する場合、画素データの読み出し順はその単位での順序を踏襲し、例えば画素番号112、96、80、・・・0、113、97、・・・の順とする。この順で画素データを読み出し、部分画像内の画素列を形成することにより、画像処理装置200では先に取得したデータから処理を開始でき、かつその順で表示を行えるため、表示までの遅延時間が軽減される。
 一方、画像処理装置200において、部分画像単位でまとめてデータを処理する場合、部分画像内での画素の配列は表示までの時間に影響を与えにくい。したがって例えば、部分画像の中でフレームバッファ406に格納された順、すなわち0、16、32、・・・といった順で画素データを読み出すことにより、描画から送信へ至る時間を短縮できる場合もある。
 図11は、画像処理装置200とのハンドシェイクに基づき、サーバ400における画素データの読み出し順を決定する別の原理を説明するための図である。図の表し方と画像データの生成順、表示パネルでの走査順は図10のケースと同様である。画素読み出し順を決定する基本的なポリシーは図10の場合と同様であるが、この例ではさらに、フレームバッファ406の記憶領域へのアクセス効率を考慮した場合を示している。
 サーバ400の画像生成部420は、画素データを画素番号に示される順に生成し、フレームバッファ406に格納していく。すなわち画像上のラスタ順に記憶領域(メモリアドレス)が割り当てられる。一方、読み出し順を左下の表示始点18から縦方向とした場合、画素番号112、96、80、・・・というように画素データを1つずつ読み出していくと、小さなデータ粒度である画素ごとに不連続なアドレスへのアクセスが必要となり読み出し処理の効率が悪い。
 そこである程度、連続したアドレスから複数の画素データをまとめて読み出すことにより、読み出し速度を向上させる。図示する例では、例えば連続した番号112~115の画素のように4画素単位での読み出しを、表示始点18の側から上方向へ走査し、それを右方向に繰り返す態様を示している。すなわち圧縮符号化部422は、走査方向と垂直な連続した4画素を読み出し単位とし、その幅で表示パネルの走査方向に対応する方向に画素データを読み出していく。
 ここで読み出し単位とする画素数(読み出し幅20)は、そのようにしてデータを読み出すことによる高速化と、当該画素のデータが書き込まれるまで待機時間とのバランスに基づき決定する。また最適な読出し幅20は、フレームバッファへアクセスする系の構成にも依存する。圧縮符号化部422がフレームバッファ406へアクセスする際には、圧縮符号化部422がもつデータアクセスインターフェースが、オンチップ・インターコネクトを介して、フレームバッファ406を保持するメモリへアクセスする。この一連の系において、連続アドレスで複数の画素へアクセスする際に、最も効率がよいアクセスデータ長(すなわちバースト長)がある。
 例えば、この系が128ビット幅で構築されており、単画素が4バイト(=32ビット)であった場合、4画素単位(=32ビット×4=128ビット)の転送は、1回にまとめて実行することができる。ここで仮に8画素単位(=32ビット×8=256ビット)でアクセスしたとき、128ビット分の転送が2回繰り返される。しかし転送に要する時間は、4画素単位の転送を2回行うときよりも短くなりうる。アドレスが連続であることにより、アドレス通知やメモリ参照に要する時間を短縮できるからである。一方、仮に1画素単位(=32ビット×1==32ビット)や2画素単位(=32ビット×2=64ビット)でアクセスしたとき、この系のうち、それぞれ96ビット、64ビット分は未使用となり、転送に要する時間も128ビット幅を転送したときと変わらない。よってこのような系においては、読出し幅20を系のバス幅もしくはメモリアクセス幅の自然数倍とすることにより効率良く読み出せる。
 また当該読み出し幅20の画素データの読み出しを進捗させる方向は、表示パネルにおける走査方向を踏襲しなくてもよい。すなわち読み出しの進捗方向についても、画像生成部420によるデータの格納順と、画像処理装置200における復号伸張順などに鑑み、低遅延化および処理効率において最もよい方向を決定してよい。
 読み出し幅20の最適値や最適な読み出しの進捗方向は、表示パネルの走査順によっても変化し得るため、ハンドシェイクによって得られる各種情報とそれらの最適値との対応をあらかじめ取得しておき、処理順制御部423が適宜選択する。そのようにして選択した読み出し幅20の画素数は、圧縮符号化の単位である部分画像の幅と同じでもよいし異なっていてもよい。
 ただし読み出し幅20を、部分画像の幅の1/N(Nは自然数)とすることで、1度のメモリアクセスで読み出した画素データを同じ圧縮符号化データに含めることができ効率がよい。図の例では、読み出し幅20を4画素として縦方向に読み進めていくことにより、画像の一列分で4×8画素の縦長の領域22が読み出されるが、この場合、部分画像も4×8画素とするか、8×8画素などとすることが考えられる。
 図12は、本実施の形態の圧縮符号化部422がフレームバッファ406から複数の画素単位でデータを読み出す場合の処理の手順を示すフローチャートである。まずパラメータiを0に初期化するとともに(S10)、パラメータAに、フレームバッファ406の先頭アドレスを代入する(S12)。次にパラメータAに(x+1)*(y-i)*Bを加算して読み出し先のアドレスAを算出する(S14)。ここで(x,y)はフレームの(横方向の画素数-1,縦方向の画素数-1)であり、図11の例ではx=15、y=7である。またB(バイト)は1画素のデータサイズである。
 図11の例では、アドレスAは画素番号112のアドレスを示す。そして圧縮符号化部422は、アドレスAからW*B分のデータを読み出す(S16)。ここでWは読み出し幅(画素数)であり、図11の例ではW=4である。次にパラメータiをインクリメントし(S18)、その値がyに到達していなければ(S20のN)、S14からS18までの処理を繰り返す。図11の例では当該処理が8回繰り返された結果、領域22のデータが読み出される。
 パラメータiをインクリメントした値がyに到達したら(S20のY)、パラメータAにW+Bを加算したアドレスを新たなAとする(S22)。この処理は、図11において読み出し先の領域を、領域22から4画素分、左にずらしたことに相当する。新たなパラメータAが(x+1)*B、すなわちフレームの最上段の最終アドレスに到達していなければ(S24のN)、S14からS22までの処理を繰り返す。パラメータAが(x+1)*Bに到達したら、当該フレームの読み出し処理が完了する(S24のY)。図11の例ではS14からS22が4回繰り返された結果、フレーム全体の画素データが読み出される。
 なお図12に示した処理手順は図11に示した読み出し順を前提としているが、読み出し順が異なれば当然、S14のパラメータA、S22のパラメータAの計算式が異なることは当業者には理解されるところである。例えば図7の(b)に示す順序であれば、画像平面の上から下への、読み出し幅W画素単位の読み出しを、左方向に繰り返していくような計算式によりパラメータA、Aを算出する。また図8の(b)ような読み出し順では、画像平面の左右の領域から交互に読み出されるような計算式によりパラメータAを算出する。
 次に、サーバ400と画像処理装置200とのハンドシェイクによって取得されるパラメータと、それによって最適化されるサーバ400での処理内容について説明する。図13は、サーバ400と画像処理装置200とのハンドシェイクによって取得されるパラメータを説明するための図である。(a)に示すように、ランドスケープ型の表示パネルを横長にして画像を表示する場合、画像処理装置200から例えば次の情報が送信される。
 走査始点:a
 走査方向:aからb
 部分パネルの数:1
 同時/並列走査する部分パネルの数:1
 連続走査を行う部分パネルの数:1
 部分パネルの走査順:1
 パネルの上端の辺:ab
ここで「a」、「b」、「c」、「d」は図示するように画面の4頂点である。
 画像処理装置200からはそのほか、圧縮伸張方式が対応可能な最小単位領域24における走査線数(幅)Sと走査方向の画素数T、走査制御が可能な最小単位領域における走査線数(幅)と走査方向の画素数、の少なくともいずれかも取得してよい。走査制御が可能な最小単位領域は、表示パネルが複数の部分パネルで構成されるか否かや、表示のモードなどに依存する。以後の態様でも同様である。
 図示する例では例えばS=2、T=16である。(b)に示すように、ポートレート型の表示パネルを横長にして画像を表示する場合、画像処理装置200から例えば次の情報が送信される。
 走査始点:c
 走査方向:cからa
 部分パネルの数:1
 同時/並列走査する部分パネルの数:1
 連続走査を行う部分パネルの数:1
 部分パネルの走査順:1
 パネルの上端の辺:ab
 (c)に示すように、(b)のポートレート型の表示パネルを縦向きにした場合、画像処理装置200から例えば次の情報が送信される。
 走査始点:c
 走査方向:cからa
 部分パネルの数:1
 同時/並列走査する部分パネルの数:1
 連続走査を行う部分パネルの数:1
 部分パネルの走査順:1
 パネルの上端の辺:bd
 図14は、サーバ400と画像処理装置200とのハンドシェイクによって取得されるパラメータの別の例を説明するための図である。同図はヘッドマウントディスプレイ100における左右の表示パネルを想定している。(a)に示すように、2つの部分パネルを1つのパネルのように連続して走査する表示パネルの場合、画像処理装置200から例えば次の情報が送信される。
 走査始点:a
 走査方向:aからb
 部分パネルの数:2
 同時/並列走査する部分パネルの数:2
 連続走査を行う部分パネルの数:2(走査制御可能な最小単位領域の走査方向の画素数:1の左端から2の右端まで)
 部分パネルの走査順:AからB
 パネルの上端の辺:ab
ここで「A」、「B」は図示するように、左右の部分パネルの識別番号である。(b)に示す、2つの部分パネルを並列に走査する表示パネルの場合、画像処理装置200から例えば次の情報が送信される。
 走査始点:a
 走査方向:aからb
 部分パネルの数:2
 同時/並列走査する部分パネルの数:2
 連続走査を行う部分パネルの数:1(走査制御可能な最小単位領域の走査方向の画素数:1の左端から右端まで、および2の左端から右端まで)
 部分パネルの走査順:AとBで並列
 パネルの上端の辺:ab
(c)に示すように、2つの部分パネルを個別に、順番に走査する表示パネルの場合、画像処理装置200から例えば次の情報が送信される。
 走査始点:a
 走査方向:aからb
 部分パネルの数:2
 同時/並列走査する部分パネルの数:1
 連続走査を行う部分パネルの数:1(走査制御可能な最小単位領域の走査方向の画素数:1の左端から右端まで、および2の左端から右端まで)
 部分パネルの走査順:AからB
 パネルの上端の辺:ab
 なお走査制御可能な最小単位領域の走査方向の画素数は可変としてよい。例えば表示パネルのモードとして、960画素、1000画素、1024画素のいずれかが選択され、画像処理装置200はこれを把握したうえ、サーバ400に送信してよい。
 そのほかサーバ400は例えば、サーバ400側の対応可能範囲を示す次の情報を把握する。ここで「幅」とはこれまで述べたように、走査方向と垂直方向の画素数である。
1.描画可能な解像度、フレームレート、画素データのフォーマット
2.対応可能で効率がよい読み出し単位の画素数(読み出し幅U)
3.複数の画素単位で読み出す場合に効率がよい読み出しの進捗方向
4.圧縮伸張方式における対応可能な単位領域(最小の幅Sと走査方向の画素数T)
5.対応可能な部分画像の幅V
6.部分画像を保持するバッファメモリ(部分画像記憶部)の容量
 これらの情報からサーバ400の処理順制御部423は、例えば次のようにサーバ400での処理内容を決定する。
 部分画像の生成順:表示パネルにおける走査開始位置を含む位置から、走査方向と平行に部分画像を生成することで低遅延化する。
 部分画像の幅:処理可能な部分画像の幅Vの自然数倍、読み出し幅Uの自然数倍、走査制御が可能な最小単位領域の幅の自然数倍、圧縮符号化方式が対応可能な単位領域の最小幅Sの自然数倍、を満たす値とする。例えばそれらのパラメータの最小公倍数とすることにより、小粒度化による処理系全体の低遅延化を図ってもよい。
 部分画像の走査長:走査制御が可能な最小単位領域の走査方向の画素数の自然数倍、圧縮伸張方式が対応可能な最小単位領域における走査方向の画素数Tの自然数倍であり、表示パネルが対応可能な走査長とする。ここで表示パネルが部分パネルで構成されている場合、表示パネルが対応可能な走査長には連続走査するパネルを一体として扱うか否かも考慮する。
 また上述のとおり、読み出し単位を複数画素とする場合、画像処理装置200における復号伸張処理において、低遅延化に有利となる画素データの到着順が存在する場合は、サーバ400はその情報を画像処理装置200から取得したうえ、当該順序に応じて読み出しの進捗方向を決定する。進捗方向を低遅延化に有利な画素順と異ならせる場合は、1回の圧縮符号化の対象範囲を、圧縮伸張方式が対応可能な最小単位領域における走査方向の画素数Tにとどめる。また1回の圧縮符号化の単位は、部分画像を超えない範囲で、連続走査を許容するか否かを考慮して決定する。
 加えて、転送や圧縮伸張など表示までに要する処理時間のジッタを考慮して部分画像のデータサイズを決定してもよい。具体的には表示におけるデータのアンダーフローを避けるために必要な部分画像の数を計算し、画像処理装置200が保持するバッファメモリ(部分画像記憶部)の容量に、当該数分のデータを格納できるように部分画像のデータサイズを決定してもよい。
 ここで画像処理装置200は継続的にジッタを取得して、ハンドシェイクにより当該情報をサーバ400と随時共有する。これによりサーバ400は、アンダーフローを避けるために必要な部分画像の数を更新し、それに基づき部分画像のデータサイズを随時決定し直す。また1回の圧縮符号化の対象範囲が広い方が、圧縮効率が上がり画質が改善することを踏まえ、遅延が許容できる範囲において、生成する部分画像のサイズと1回の圧縮符号化対象範囲を大きくすることにより画質の改善を図ってもよい。
 さらに上記ハンドシェイクにより画像生成部420が、描画するフレームの解像度や画素データのフォーマットを適切に決定してもよい。例えば画像生成部420はそれらのパラメータを、表示装置が対応可能な範囲内で、フレームレートや圧縮率の見込みなどの観点から推定される転送データサイズが利用可能転送帯域に収まるように選択する。複数のフォーマットや圧縮方式(圧縮率)を選択できる場合、画像生成部420や圧縮符号化部422は、よりビット深度が大きく、圧縮率が低い組み合わせを選択することにより画質を最良とする。
 図15は、サーバ400の圧縮符号化部422が、フレームバッファ406からのデータ読み出し順を決定するフローチャートである。まず圧縮符号化部422は、サーバ400と画像処理装置200とのハンドシェイクにより、部分画像のサイズと読み出し幅Uを決定する(S30。次に圧縮符号化部422は、画像生成部420によるフレームバッファ406への最終的な画像データの書き込み順が走査順と同じか否かを確認する(S32)。
 画像生成部420すなわちGPUによるフレームバッファ406へのデータ書き込み順は、描画方法によっては走査順と一致しない場合があるためである。書き込み順が走査順と同じ場合(S32のY)、圧縮符号化部422は、画像生成部420がフレームバッファ406へ画素のデータを書き込むのと並行して当該データを読み出すように設定する(S34)。書き込み順が走査順と同じでなければ(S32のN)、圧縮符号化部422は、フレームバッファ406に1フレーム分のデータが書き込まれてから読み出しを開始するよう設定する(S34)。
 いずれの場合も圧縮符号化部422は、画像生成部420によるフレームバッファ406への書き込み順が、表示パネルの走査順と一致しているか否かを確認する(S38)。一致している場合(S38のY)、圧縮符号化部422は、画像生成部420によりフレームバッファ406へ書き込まれたデータを、その順序で読み出す(S40)。画像生成部420による書き込みと並行して読み出しを行う場合、画像生成部420と圧縮符号化部422は連携して、読み出し処理が書き込み処理を追い越さないように制御する。
 フレームバッファ406への書き込み順が表示パネルの走査順と一致しない場合(S38のN)、圧縮符号化部422は、1つの部分画像内において、データの供給順と表示パネルの走査順を完全に一致させる必要があるか否かを確認する(S42)。一致させる必要があるか否かは、サーバ400の圧縮符号化部422、画像処理装置200の復号伸張部242、画像処理部244、表示制御部246が対応可能な範囲に基づいて決定する。
 データの供給順と表示パネルの走査順を完全に一致させる必要がある場合(S42のY)、圧縮符号化部422は、読み出し効率より表示パネルの走査順を優先させた順序で、フレームバッファ406から画素のデータを読み出す(S44)。このとき画素単位の読み出しが必要であれば、読み出し幅Uは1画素となる。データの供給順と表示パネルの走査順を完全に一致させる必要がなければ(S42のN)、圧縮符号化部422は、圧縮符号化部422や画像処理装置200における処理の観点から、低遅延化に有利となる画素データの到着順が存在するか否かを確認する(S46)。
 低遅延化に有利な到着順が存在する場合(S46のY)、圧縮符号化部422は、1つの部分画像内におけるデータ読み出し順を、当該低遅延化に有利な順序とする(S48)。この際、圧縮符号化部422は、図10、11で示したような、画像平面の縦方向、横方向における読み出し順、ひいては図12のパラメータA、Aの計算式を決定する。そして圧縮符号化部422は、決定した順序でフレームバッファ406から画素のデータを読み出す(S50)。
 低遅延化に有利な画素データの到着順が存在しなければ(S46のN)、圧縮符号化部422は、1つの部分画像内におけるデータ読み出し順を、処理効率のみに基づく順序とする(S52)。この場合も圧縮符号化部422は、決定した順序に基づき、画像平面の縦方向、横方向における読み出し順、ひいては図12のパラメータA、Aの計算式を決定する。なおこの場合、画像処理装置200の復号伸張部242において、接続位置制御部243は、サーバ400から送信された画素列の順序を必要に応じて入れ替えることにより、データを再構築する。そして圧縮符号化部422は、決定した順序でフレームバッファ406から画素のデータを読み出す(S50)。
 図16は、様々なケースにおいて圧縮符号化部422がフレームバッファ406からデータを読み出す順序を例示している。(a)、(b)、(c)、(d)の4つのケースにおいて図の表し方は図10と同様であり、画像生成部420はラスタ順に画素データを書き込むとする。また表示パネルでは、画像平面の左下の表示始点18から上方向への走査を右方向に進めるとする。
 まず(a)のケースは、採用する圧縮伸張方式が対応可能な最小単位領域の走査方向の画素数Tが画像平面の走査方向の画素数と一致し、当該領域の幅Sが1画素、サーバ400が対応可能な部分画像の幅Vが4画素、読み出し幅Uが1画素の場合である。このとき圧縮符号化部422は実線矢印で示すように、表示始点18から画像平面の上方向への1画素の幅での読み出しを右方向に進めていく。そして圧縮符号化部422は、1行分のデータごとに圧縮符号化するなどして4行分の圧縮符号化データを部分画像のデータとする。
 (b)のケースは、(a)のケースに対し、圧縮伸張方式が対応可能な最小単位領域の幅Sが4画素、読み出し幅Uを4画素としている。このとき圧縮符号化部422は実線矢印で示すように、表示始点18から4画素の幅での画像平面の上方向への読み出しを右方向に進めていく。そして圧縮符号化部422は、4行分のデータごとに圧縮符号化し、当該データを部分画像のデータとする。
 (c)のケースは、(b)のケースに対し、圧縮伸張方式が対応可能な最小単位領域の走査方向の画素数Tを半分とし、読み出し幅Uを2画素としている。このとき圧縮符号化部422は、(b)と同様に表示始点18から4画素の幅で画像平面の上方向への読み出しを右方向に進めていくが、図の実線および太線破線の矢印で示すように、4画素分の読み出しを2回のメモリアクセスで分割して行う。また圧縮符号化部422は、上方向への読み出しが画素数Tだけ進む都度、読み出したデータを圧縮符号化できる。
 (d)のケースは、(c)のケースに対し、圧縮伸張方式が対応可能な最小単位領域の走査方向の画素数Tをさらに半分とし、読み出し幅Uを8画素としている。このとき圧縮符号化部422は実線矢印で示すように、表示始点18から8画素の幅で画像平面の上方向への読み出しを右方向に進めていく。また圧縮符号化部422は、上方向への読み出しが画素数Tだけ進む都度、読み出したデータを4画素の幅ごとに圧縮符号化できる。なお圧縮符号化部422に追加メモリを設け、幅Uで読み出したデータのうち、次の部分画像の分については必要になるまで保持することで、メモリアクセスの頻度を削減してもよい。
 図17は、サーバ400と画像処理装置200のハンドシェイクによる各種パラメータの設定例を説明するための図である。ここで表示パネルは図の右側に示すように、4つの部分パネルA、B、C、Dを横方向に接続した構成とし、部分パネルごとの表示始点18a、18b、18c、18dが左上にあるとする。また図において各部分パネルの四隅を、左上、右上、左下、右下の順に(a1,b1,c1,d1)(a2,b2,c2,d2)、(a3,b3,c3,d3)、(a4,b4,c4,d4)とする。ハンドシェイクにおいて、サーバ400からは、次のようなパラメータが送信される。
 対応可能な読み出し幅U:4,8,16
 圧縮伸張方式における対応可能な単位領域の幅S:8,16,32
 圧縮伸張方式における対応可能な単位領域の走査方向の画素数T:32,64
 描画可能な最大解像度:4000×2160画素
 一方、画像処理装置200からは表示パネルについて次のようなパラメータが送信される。
 全体の表示始点:a1
 走査方向:a1からb1
 部分パネルの数:4
 同時/並列走査する部分パネルの数:4
 連続走査を行う部分パネルの数:1
 部分パネルの走査順:A,B,C,D
 パネルの上端の辺:a1-b1
 また処理内容について画像処理装置200から次のようなパラメータが送信される。
 圧縮伸張方式における対応可能な単位領域の幅S:16
 圧縮伸張方式における対応可能な単位領域の走査方向の画素数T:50,64
 対応可能な部分画像の幅V:32
 走査制御が可能な最小単位領域の走査方向の画素数:960,1000,1024
 この場合、サーバ400の圧縮符号化部422は図の左側に示すように、部分パネルの境界を跨がないように部分画像を形成し、画像の左上からラスタ順に圧縮符号化データを生成していく。図では形成される部分画像の一部をグレーの矩形領域で示し、その処理順を番号で示している。ここで4000×2160画素の画像を対象とし、部分画像のサイズを1000×32とした場合、当該部分画像を均等分割して圧縮符号化の単位領域を形成するには、単位領域の走査方向の画素数Tを50などとする必要がある。ところが上述の例では、サーバ400側での画素数Tが50画素に対応していないため画素数Tとして64画素を選択する。その結果、64画素の倍数として部分画像の走査方向の画素数が960画素となる。
 このようなハンドシェイクにより、画像生成部420や圧縮符号化部422の処理に用いる各種パラメータを、例えば次のように設定する。
 部分画像の生成順:a1からb1、a2からb2、a3からb3、a4からb4
 部分画像内のデータ順:走査方向と平行かつ同じ方向
 部分画像のサイズ(画素):走査方向960、幅32
 読み出し幅U:16
 圧縮符号化の最小単位領域の幅S:16
 圧縮符号化の最小単位領域の走査方向の画素数T:64
 描画解像度(画素):3840×2160
これにより画像処理装置200は、サーバ400から送信されたグレーの矩形領域のような部分画像のデータをそれぞれ処理し、番号で示す順に表示パネルの各部分パネルに出力していく。
 図18は、サーバ400と画像処理装置200のハンドシェイクによる各種パラメータの設定の別の例を説明するための図である。図の右側に示す表示パネルの構成は図17と同じであるが、部分パネルごとの表示始点18a、18b、18c、18dが左下にあり、そこから上方向への走査を右方向に進めていく状態とする。それ以外の条件が同一であれば、ハンドシェイクにおいてサーバ400から送信される情報は、図17の場合から変化しない。
 一方、画像処理装置200からは表示パネルについて次のようなパラメータが送信される。
 全体の表示始点:c1
 走査方向:c1からa1
 部分パネルの数:4
 同時/並列走査する部分パネルの数:4
 連続走査を行う部分パネルの数:1
 部分パネルの走査順:A,B,C,D
 パネルの上端の辺:c1-a1
 処理内容について画像処理装置200から送信される情報は図17の場合から変化しない。その結果、画像生成部420や圧縮符号化部422の処理に用いる各種パラメータは、例えば次のように設定される。
 部分画像の生成順:c1からa1、c2からa2、c3からa3、c4からa4
 部分画像内のデータ順:走査方向と平行かつ同じ方向
 部分画像のサイズ(画素):走査方向2160、幅32
 読み出し幅U:16
 圧縮符号化の最小単位領域の幅S:16
 圧縮符号化の最小単位領域の走査方向の画素数T:64
 描画解像度(画素):3840×2160
 この場合、サーバ400の圧縮符号化部422は図の左側に示すように、例えばグレーの矩形領域のような部分画像を形成し、番号で示す順に圧縮符号化データを生成していく。すなわち部分パネルに対応する各領域の左端から右方向へ、4領域を循環するように部分画像を形成する。これにより画像処理装置200は、番号で示すような順序でサーバ400から送信された部分画像を順次処理し、その順序で表示パネルの各部分パネルに出力していく。
 以上述べた本実施の形態によれば、動画像のデータをクライアントである画像処理装置200に転送する形態のシステムにおいて、転送元のサーバ400は、クライアントの表示パネルの走査順に係る情報を取得し、それに応じた順序で送信対象のデータを形成する。これにより、フレームバッファからの読み出し、圧縮符号化、転送、クライアントでの復号伸張、画像処理を、表示上で先に必要なデータを優先させて進捗させることができる。特にフレーム平面を分割してなる部分画像単位でそれらの処理を並列に行うことにより、表示パネルの走査順によらず、低遅延での動画表示が可能になる。
 結果として、横長の画面を縦方向に走査するディスプレイ、ユーザが把持する向きによって表示させる画像の向きを切り替える形式の携帯端末、複数のパネルで構成されるディスプレイなど、様々な表示装置や端末で安定した表示を実現できる。また表示パネルの走査順に合わせた順序で部分画像を形成するのみならず、各部分画像を構成する画素のデータのフレームバッファからの読み出し順を、クライアント側での処理の順序に応じて切り替えることにより、画素データの待機時間やメモリアクセス時間を最小限に抑え、さらなる低遅延化を実現できる。
 以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
 以上のように本発明は、画像データ転送装置、コンテンツサーバ、画像処理装置、コンテンツ処理装置などの各種機器や、それらのいずれかを含むシステムなどに利用可能である。
 1 画像表示システム、 100 ヘッドマウントディスプレイ、 200 画像処理装置、 240 画像データ取得部、 242 復号伸張部、 243 接続位置制御部、 244 画像処理部、 246 表示制御部、 247 表示方式取得部、 302 平板型ディスプレイ、 303 携帯端末、 400 サーバ、 406 フレームバッファ、 420 画像生成部、 422 圧縮符号化部、 423 処理順制御部、 424 パケット化部、 426 通信部。

Claims (18)

  1.  クライアント端末に動画像のデータを転送する画像データ転送装置であって、
     前記動画像を構成するフレームのデータを生成しメモリに書き込む描画部と、
     前記クライアント端末に接続された表示パネルの走査順に係る情報を取得する表示方式情報取得部と、
     前記フレームの画素のデータを、前記走査順に係る情報に基づく順序で前記メモリから読み出し、圧縮符号化する圧縮符号化部と、
     圧縮符号化されたフレームのデータを、前記クライアント端末にストリーミング転送する通信部と、
     を備えたことを特徴とする画像データ転送装置。
  2.  前記圧縮符号化部は、前記走査順に係る情報に基づき決定した境界線でフレーム平面を分割してなる部分画像単位で、前記フレームのデータを圧縮符号化することを特徴とする請求項1に記載の画像データ転送装置。
  3.  前記通信部は、前記走査順に係る情報に基づき決定した順序で、圧縮符号化された前記フレームのデータを転送することを特徴とする請求項2に記載の画像データ転送装置。
  4.  前記表示方式情報取得部は、前記表示パネルが複数の部分パネルで構成されるとき、当該複数の部分パネルの走査順に係る情報を取得し、
     前記圧縮符号化部は、前記複数の部分パネルの走査順に応じて前記メモリから画素のデータを読み出す順序を切り替えることを特徴とする請求項1から3のいずれかに記載の画像データ転送装置。
  5.  前記表示方式情報取得部は、前記表示パネルの向きに係る情報を取得し、
     前記圧縮符号化部は、前記メモリから画素のデータを読み出す順序を、前記表示パネルの向きの変化に応じて変化させることを特徴とする請求項1から4のいずれかに記載の画像データ転送装置。
  6.  前記圧縮符号化部は、前記画素のデータの読み出しにおいて、所定数の連続した画素を読み出し単位とし、その幅での読み出しを前記表示パネルの走査方向に対応する方向に進捗させることを特徴とする請求項1から5のいずれかに記載の画像データ転送装置。
  7.  前記圧縮符号化部は、前記画素のデータの読み出しにおいて、所定数の連続した画素を読み出し単位とし、その幅での読み出しを、前記クライアント端末における前記画素のデータの処理順に基づく方向に進捗させることを特徴とする請求項1から5のいずれかに記載の画像データ転送装置。
  8.  前記圧縮符号化部は、前記読み出し単位の画素数のN倍(Nは自然数)の幅を有する部分画像単位で、前記フレームのデータを圧縮符号化することを特徴とする請求項6または7に記載の画像データ転送装置。
  9.  前記表示方式情報取得部は、前記クライアント端末が処理可能な前記部分画像の幅、前記表示パネルが走査制御可能な最小単位領域の幅、および圧縮符号化方式が対応可能な単位領域の最小幅に係る情報を取得し、
     前記圧縮符号化部はさらに、前記部分画像の幅を当該情報に基づき決定することを特徴とする請求項8に記載の画像データ転送装置。
  10.  前記圧縮符号化部は、前記読み出し単位の画素数を、前記メモリへのアクセスに用いるバス幅またはメモリアクセス幅の自然数倍とすることを特徴とする請求項6から9のいずれかに記載の画像データ転送装置。
  11.  前記表示方式情報取得部は、前記クライアント端末における前記部分画像のバッファメモリの容量に係る情報を取得し、
     前記圧縮符号化部は、前記表示パネルへの表示までに要する処理時間のジッタに基づき、前記クライアント端末におけるバッファリングに必要な前記部分画像の数を計算し、当該数と前記バッファメモリの容量に応じて前記部分画像のデータサイズを決定することを特徴とする請求項8または9に記載の画像データ転送装置。
  12.  前記描画部は、描画するフレームの解像度および画素データのフォーマットを、前記クライアント端末とのハンドシェイクにより決定することを特徴とする請求項1から11のいずれかに記載の画像データ転送装置。
  13.  前記表示パネルが複数の部分パネルで構成されるとき、前記圧縮符号化部は、前記部分パネルの境界を跨がないように前記部分画像を形成することを特徴とする請求項2または3に記載の画像データ転送装置。
  14.  前記表示方式情報取得部は、前記表示パネルが複数の部分パネルで構成されるとき、前記圧縮符号化部は、圧縮符号化の最小単位が前記部分パネルの境界を跨がないように制御することを特徴とする請求項1から13のいずれかに記載の画像データ転送装置。
  15.  前記表示パネルが複数の部分パネルで構成されるとき、前記圧縮符号化部は、各部分パネルに表示させる画像を分けて圧縮符号化することを特徴とする請求項1から14のいずれかに記載の画像データ転送装置。
  16.  動画像のデータを転送するサーバと、当該動画像のデータを受信して表示パネルに表示させるクライアント端末と、を含む画像表示システムであって、
     前記クライアント端末は、
     接続された表示パネルの走査順に係る情報を取得し、前記サーバに送信する表示方式取得部を備え、
     前記サーバは、
     前記動画像を構成するフレームのデータを生成しメモリに書き込む描画部と、
     前記走査順に係る情報を取得する表示方式情報取得部と、
     前記フレームの画素のデータを、前記走査順に係る情報に基づく順序で前記メモリから読み出し、圧縮符号化する圧縮符号化部と、
     圧縮符号化されたフレームのデータを、前記クライアント端末にストリーミング転送する通信部と、
     を備えたことを特徴とする画像表示システム。
  17.   クライアント端末に動画像のデータを転送する画像データ転送装置が、
     前記動画像を構成するフレームのデータを生成しメモリに書き込むステップと、
     前記クライアント端末に接続された表示パネルの走査順に係る情報を取得するステップと、
     前記フレームの画素のデータを、前記走査順に係る情報に基づく順序で前記メモリから読み出し、圧縮符号化するステップと、
     圧縮符号化されたフレームのデータを、前記クライアント端末にストリーミング転送するステップと、
     を含むことを特徴とする画像データ転送方法。
  18.   クライアント端末に動画像のデータを転送するコンピュータに、
     前記動画像を構成するフレームのデータを生成しメモリに書き込む機能と、
     前記クライアント端末に接続された表示パネルの走査順に係る情報を取得する機能と、
     前記フレームの画素のデータを、前記走査順に係る情報に基づく順序で前記メモリから読み出し、圧縮符号化する機能と、
     圧縮符号化されたフレームのデータを、前記クライアント端末にストリーミング転送する機能と、
     を実現させることを特徴とするコンピュータプログラム。
PCT/JP2021/011134 2020-03-25 2021-03-18 画像データ転送装置、画像表示システム、および画像転送方法 WO2021193361A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US17/907,834 US20230142944A1 (en) 2020-03-25 2021-03-18 Image data transfer apparatus, image display system, and image transfer method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2020-053773 2020-03-25
JP2020053773A JP7393267B2 (ja) 2020-03-25 2020-03-25 画像データ転送装置、画像表示システム、および画像データ転送方法

Publications (1)

Publication Number Publication Date
WO2021193361A1 true WO2021193361A1 (ja) 2021-09-30

Family

ID=77891753

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/011134 WO2021193361A1 (ja) 2020-03-25 2021-03-18 画像データ転送装置、画像表示システム、および画像転送方法

Country Status (3)

Country Link
US (1) US20230142944A1 (ja)
JP (1) JP7393267B2 (ja)
WO (1) WO2021193361A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230237730A1 (en) * 2022-01-21 2023-07-27 Meta Platforms Technologies, Llc Memory structures to support changing view direction

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000152069A (ja) * 1998-11-09 2000-05-30 Toshiba Corp 撮影装置、映像伝送システム、映像受信装置、映像送信装置、映像符号化装置および映像再生装置
US20140286440A1 (en) * 2013-03-19 2014-09-25 Nvidia Corporation Quality of service management system and method of forward error correction
WO2019097319A1 (en) * 2017-11-17 2019-05-23 Ati Technologies Ulc Game engine application direct to video encoder rendering

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004165746A (ja) 2002-11-11 2004-06-10 Renesas Technology Corp 画像符号化方法と画像符号化装置
LT3793200T (lt) 2012-04-13 2023-02-27 Ge Video Compression, Llc Vaizdo kodavimas su maža delsa
US10552988B2 (en) 2017-12-22 2020-02-04 Intel Corporation Ordering segments of an image for encoding and transmission to a display device

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000152069A (ja) * 1998-11-09 2000-05-30 Toshiba Corp 撮影装置、映像伝送システム、映像受信装置、映像送信装置、映像符号化装置および映像再生装置
US20140286440A1 (en) * 2013-03-19 2014-09-25 Nvidia Corporation Quality of service management system and method of forward error correction
WO2019097319A1 (en) * 2017-11-17 2019-05-23 Ati Technologies Ulc Game engine application direct to video encoder rendering

Also Published As

Publication number Publication date
JP2021158402A (ja) 2021-10-07
US20230142944A1 (en) 2023-05-11
JP7393267B2 (ja) 2023-12-06

Similar Documents

Publication Publication Date Title
JP7029562B2 (ja) コンテンツを提供及び表示するための装置及び方法
KR102333398B1 (ko) 가상 현실 비디오 변환 및 스트리밍을 위한 시스템 및 방법
CN109983757B (zh) 全景视频回放期间的视图相关操作
CN112204993B (zh) 使用重叠的被分区的分段的自适应全景视频流式传输
US7667707B1 (en) Computer system for supporting multiple remote displays
JP5830496B2 (ja) ディスプレイコントローラおよび画面転送装置
US20230073542A1 (en) Adaptive panoramic video streaming using composite pictures
US11792463B2 (en) Method of video transmission and display
WO2021065628A1 (ja) 画像処理装置、画像データ転送装置、画像処理方法、および画像データ転送方法
WO2021065629A1 (ja) 画像表示システム、動画配信サーバ、画像処理装置、および動画配信方法
WO2021065630A1 (ja) 画像データ転送装置および画像データ転送方法
WO2021065632A1 (ja) 画像データ転送装置、画像表示システム、および画像圧縮方法
WO2021193361A1 (ja) 画像データ転送装置、画像表示システム、および画像転送方法
WO2021199205A1 (ja) 画像データ転送装置、画像表示システム、および画像データ転送方法
WO2021065633A1 (ja) 画像データ転送装置および画像圧縮方法
WO2021199184A1 (ja) 画像表示システム、画像処理装置、画像表示方法、およびコンピュータプログラム
WO2021065631A1 (ja) 画像データ転送装置および画像圧縮方法
WO2021065627A1 (ja) 画像処理装置、画像表示システム、画像データ転送装置、および画像処理方法
WO2021193362A1 (ja) 画像処理装置および画像処理方法
WO2021199128A1 (ja) 画像データ転送装置、画像生成方法およびコンピュータプログラム
TW202218421A (zh) 內容顯示處理
GB2559396A (en) Method of video transmission and display
GB2561812A (en) Method of video transmission and display

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: 21775891

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: 21775891

Country of ref document: EP

Kind code of ref document: A1