WO2021200492A1 - 送信装置、送信方法及びプログラム - Google Patents

送信装置、送信方法及びプログラム Download PDF

Info

Publication number
WO2021200492A1
WO2021200492A1 PCT/JP2021/012312 JP2021012312W WO2021200492A1 WO 2021200492 A1 WO2021200492 A1 WO 2021200492A1 JP 2021012312 W JP2021012312 W JP 2021012312W WO 2021200492 A1 WO2021200492 A1 WO 2021200492A1
Authority
WO
WIPO (PCT)
Prior art keywords
image
frame
quality priority
image quality
value
Prior art date
Application number
PCT/JP2021/012312
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/914,075 priority Critical patent/US20230121046A1/en
Priority to JP2022512034A priority patent/JP7444971B2/ja
Publication of WO2021200492A1 publication Critical patent/WO2021200492A1/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/115Selection of the code volume for a coding unit prior to coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/142Detection of scene cut or scene change
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/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

Definitions

  • the present invention relates to a transmission device, a transmission method, and a program.
  • a frame image showing the game play status is generated on the cloud server. Then, the image data in which the frame image is encoded is transmitted from the cloud server to the terminal, and the frame image obtained by decoding the image data is displayed on the terminal. By repeatedly executing this series of processes, a moving image showing the game play status is displayed on the terminal.
  • rate control that adjusts the values of parameters such as quantization parameter (QP), bit depth, and image resolution by feedback control using the data size and latency length of image data as control amounts.
  • QP quantization parameter
  • bit depth bit depth
  • image resolution image resolution
  • an overshoot occurs in which the control amount is larger than the target value
  • an undershoot occurs in which the control amount is smaller than the target value.
  • the difference between the control amount and the target value is as a whole. It is controlled so that it does not become so large.
  • an image quality priority image For example, a frame image immediately after a scene change occurs, in which image quality is to be prioritized even if a large overshoot is temporarily allowed (hereinafter referred to as an image quality priority image). .) Exists.
  • the conventional rate control could not handle such image quality priority images exceptionally. Further, in the conventional rate control, there is a means for determining whether the image quality should be prioritized or the suppression of the data size and the latency length should be prioritized in the frame image immediately after the occurrence of a scene change in which the amount of change in the image is large. There wasn't.
  • the present invention has been made in view of the above circumstances, and one of the objects thereof is to provide a transmission device, a transmission method, and a program capable of performing rate control suitable for an image quality priority image.
  • the transmission device includes an acquisition unit that sequentially acquires frame images drawn in a frame buffer, and a determination unit that determines whether or not the frame image is an image quality priority image. For the frame image that is not the image quality priority image, the value of the parameter used for encoding the encoding unit that is a part or all of the frame image is applied to a predetermined control rule by applying the difference between the control amount and the target value.
  • an encoding processing unit that generates image data by executing encoding based on the value of the parameter determined by the basic parameter value determination unit or the image quality priority parameter value determination unit, and a transmission that transmits the image data.
  • the image quality priority parameter value determination unit includes, and applies the difference between the control amount and the target value to the predetermined control rule as the value of the parameter used for the encoding unit of the frame image. Determines a value at which the data size of the generated image data is larger than the value determined by.
  • the encoding processing unit skips encoding the next frame image of the image quality priority image.
  • the encoding processing unit determines the number of frame skips based on the data size of the image data generated by encoding the image quality priority image, and the encoding processing unit determines the number of frame skips by the number of frame skips. Skips the encoding of the frame image that follows the image quality priority image.
  • the basic parameter value determining unit applies the difference between the control amount and the target value to the predetermined control rule to obtain the encoding unit of the frame image. Determine the value of the parameter used for.
  • the basic parameter value determining unit may determine, for the next frame image of the image quality priority image, a value determined by applying the difference between the controlled amount and the target value to the predetermined control rule. A value that reduces the data size of the generated image data is determined as the value of the parameter.
  • the acquisition unit acquires the frame image associated with the image quality priority necessity data that can specify whether or not the frame image is the image quality priority image, and makes the determination.
  • the unit determines whether or not the frame image is the image quality priority image based on the image quality priority necessity data associated with the frame image.
  • the image quality priority necessity data generation unit that generates the image quality priority necessity data and associates the image quality priority necessity data with the frame image may be further included.
  • the image quality priority data generation unit determines that the frame image is the image quality priority image in the frame image immediately after the continuous scene description or the continuous game play is completed and the camera is cut.
  • the image quality priority necessity data that can be specified may be associated with the image quality priority data.
  • the image quality priority necessity data generation unit may associate the image quality priority necessity data that can identify that the frame image is the image quality priority image with the frame image immediately after the stage in the game is changed. ..
  • the image quality priority data generation unit determines that the frame image is the image quality priority image in the frame image immediately after the drawing of the continuous scene is completed and the asset used for drawing the frame image is switched.
  • the image quality priority necessity data that can be specified may be associated with the image quality priority data.
  • the image quality priority data generation unit can identify the frame image as the image quality priority image in the frame image immediately after the new asset used for drawing the frame image is loaded into the memory.
  • Image quality priority necessity data may be associated.
  • the determination unit determines that the frame image in which the scene change from the immediately preceding frame has occurred is the image quality priority image.
  • the acquisition unit acquires the frame image showing how the virtual space is viewed from the virtual object arranged in the virtual space, and the determination unit immediately after the virtual object changes from the immediately preceding frame.
  • the frame image is determined to be the image quality priority image.
  • the image generation unit that generates the frame image based on the drawing intermediate data representing the state of viewing the virtual space from the virtual object arranged in the virtual space is further included, and the determination unit includes the determination unit in which the virtual object is used.
  • the frame image generated by the image generation unit based on the drawing intermediate data immediately after the change from the immediately preceding frame is determined to be the image quality priority image.
  • the determination unit determines that the frame image immediately after the asset used for drawing the frame image is switched is the image quality priority image.
  • the determination unit determines whether or not the frame image is the image quality priority image based on the comparison result between the frame image and the frame image of the frame immediately before the frame image.
  • the encoding processing unit encodes the frame image, which is the image quality priority image, into an I frame.
  • the image quality priority parameter value determination unit is determined by applying the difference between the control amount and the target value to the predetermined control rule as the value of the parameter used for the encoding unit of the frame image. A value at which the compression rate of the generated image data is smaller than the value is determined.
  • the encoding processing unit executes encoding using the gradual decoder refresh (GDR) technology for the frame image that is not the image quality priority image.
  • GDR gradual decoder refresh
  • control amount is from the data size of the image data or the start timing of encoding the frame image to the transmission end timing of the image data generated based on the frame image.
  • the length of time is from the data size of the image data or the start timing of encoding the frame image to the transmission end timing of the image data generated based on the frame image.
  • the image quality priority parameter value determining unit corresponds to a case where a value smaller than the difference between the control amount and the target value is applied to the predetermined control rule, that is, the frame image.
  • the value of the parameter used for the encoding unit is determined.
  • the basic parameter value determining unit and the image quality priority parameter value determining unit determine the value of the parameter used for the encoding unit by performing PID control, and determine the image quality priority parameter value.
  • the unit determines the value of the parameter used for the encoding unit of the frame image by suppressing the gain of at least one of the proportional control or the differential control in the PID control as compared with the determination by the basic parameter value determining unit.
  • the image quality priority parameter value determining unit determines the value of the parameter based on the difference between the controlled amount and the target value at a longer time interval than the basic parameter value determining unit. do.
  • the basic parameter value determining unit or the image quality priority parameter value determining unit determines the number of times the image data is missing in the past unit time, or I in the past unit time. The value of the parameter is determined further based on at least one of the number of times the frame has been generated.
  • the transmission method includes an acquisition step of sequentially acquiring frame images drawn in a frame buffer, a determination step of determining whether or not the frame image is an image quality priority image, and the image quality priority image.
  • the image quality priority parameter value determination step includes an encoding process step of generating image data by executing encoding based on the value of the parameter determined in the value determination step or the image quality priority parameter value determination step, and a transmission step of transmitting the image data.
  • the value of the parameter used for the encoding unit of the frame image is determined by applying the difference between the control amount and the target value to the predetermined control rule. Also determines a value that increases the data size of the generated image data.
  • the program according to the present invention includes an acquisition procedure for sequentially acquiring frame images drawn in a frame buffer, a determination procedure for determining whether or not the frame image is an image quality priority image, and a frame that is not the image quality priority image.
  • Basic parameter value determination procedure for determining the value of a parameter used for encoding a part or all of the frame image of an image by applying the difference between the control amount and the target value to a predetermined control rule.
  • the image quality priority parameter value determination procedure for determining the value of the parameter used for the encoding unit of the frame image, the basic parameter value determination procedure for the encoding unit, or the above.
  • the image quality priority parameter is determined by causing a computer to execute an encoding process procedure for generating image data by executing encoding based on the value of the parameter determined in the image quality priority parameter value determination procedure and a transmission procedure for transmitting the image data.
  • the value determination procedure the value of the parameter used for the encoding unit of the frame image is generated rather than the value determined by applying the difference between the control amount and the target value to the predetermined control rule. A value that increases the data size of the image data is determined.
  • FIG. 1 is a diagram showing an example of the overall configuration of the cloud gaming system 1 according to the embodiment of the present invention.
  • the cloud gaming system 1 according to the present embodiment includes a cloud server 10 and a terminal 12 which are both configured around a computer.
  • the cloud server 10 and the terminal 12 are connected to a computer network 14 such as the Internet, and the cloud server 10 and the terminal 12 can communicate with each other.
  • the cloud server 10 is, for example, a server computer that executes a game program related to a cloud gaming service.
  • the cloud server 10 distributes a moving image showing the play status of the game to the terminal 12 used by the user who is playing the game.
  • the cloud server 10 includes, for example, a processor 10a, a storage unit 10b, a communication unit 10c, and an encoding / decoding unit 10d.
  • the processor 10a is a program control device such as a CPU, and executes various information processing according to a program stored in the storage unit 10b.
  • the processor 10a according to the present embodiment also includes a GPU (Graphics Processing Unit) that draws an image in a frame buffer based on graphics commands and data supplied from the CPU.
  • GPU Graphics Processing Unit
  • the storage unit 10b is, for example, a storage element such as a ROM or RAM, a solid state drive (SSD), or the like.
  • the storage unit 10b stores a program or the like executed by the processor 10a. Further, in the storage unit 10b according to the present embodiment, an area of a frame buffer in which an image is drawn by the GPU included in the processor 10a is secured.
  • the communication unit 10c is a communication interface for exchanging data with a computer such as a terminal 12 via a computer network 14, for example.
  • the encode / decode unit 10d includes, for example, an encoder and a decoder.
  • the encoder generates image data representing the image by encoding the input image. Further, the decoder decodes the input image data and outputs the image represented by the image data.
  • the terminal 12 is, for example, a computer such as a game console, a personal computer, a tablet terminal, or a smartphone used by a user who uses a cloud gaming service.
  • the terminal 12 includes, for example, a processor 12a, a storage unit 12b, a communication unit 12c, an encoding / decoding unit 12d, an operation unit 12e, and a display unit 12f.
  • the processor 12a is a program control device such as a CPU, and executes various information processing according to a program stored in the storage unit 12b.
  • the processor 12a according to the present embodiment also includes a GPU (Graphics Processing Unit) that draws an image in a frame buffer based on graphics commands and data supplied from the CPU.
  • GPU Graphics Processing Unit
  • the storage unit 12b is, for example, a storage element such as a ROM or RAM, a solid state drive (SSD), or the like.
  • the storage unit 12b stores a program or the like executed by the processor 12a. Further, in the storage unit 12b according to the present embodiment, an area of a frame buffer in which an image is drawn by the GPU included in the processor 12a is secured.
  • the communication unit 12c is a communication interface for exchanging data with a computer such as a cloud server 10 via a computer network 14, for example.
  • the encode / decode unit 12d includes, for example, an encoder and a decoder.
  • the encoder generates image data representing the image by encoding the input image. Further, the decoder decodes the input image data and outputs the image represented by the image data.
  • the operation unit 12e is, for example, an operation member for performing an operation input to the processor 12a.
  • the display unit 12f is a display device such as a liquid crystal display or an organic EL display.
  • the terminal 12 does not need to include a GPU or a frame buffer.
  • an operation related to the game on the terminal 12 according to the present embodiment is performed via the operation unit 12e
  • an operation signal representing the operation is transmitted from the terminal 12 to the cloud server 10.
  • the cloud server 10 executes the game processing according to the operation signal.
  • a play image which is a frame image showing the play status of the game affected by the operation signal, is generated, and the play image is drawn in the frame buffer of the cloud server 10.
  • the game processing and the generation of the play image are repeatedly executed.
  • the cloud server 10 sequentially acquires the play images drawn in the frame buffer and generates image data representing the play image. Then, the cloud server 10 transmits the generated image data to the terminal 12. Then, the terminal 12 causes the display unit 12f to display the play image generated by decoding the image data received from the cloud server 10. In this way, in the present embodiment, the play moving image composed of a series of play images is displayed on the display unit 12f.
  • the values of parameters such as quantization parameter (QP), bit depth, and image resolution are adjusted by feedback control in which the data size and latency length of image data are used as control amounts. Rate control is performed.
  • FIG. 2 is a conceptual diagram showing an example of rate control in the present embodiment.
  • the control amount and the target value in the image data generated by executing the encoding process are compared.
  • the compression rate is determined based on the comparison result between the controlled amount and the target value and the characteristics of the image.
  • the compression ratio is adjusted based on the comparison result between the control amount and the target value.
  • the value of the parameter may include a value indicating a frame type (for example, whether it is an I frame or a P frame) of the generated image data.
  • the encoding process of the image is executed based on the value of the determined parameter.
  • the image data generated by executing the encoding process is transmitted to the terminal 12.
  • the feedback control by the loop shown in FIG. 2 is repeatedly executed.
  • the cumulative data size which is the total data size of the image data transmitted so far
  • the above-mentioned loop may be executed in units of play images (frame images), or may be executed in units of slices obtained by dividing one play image into a plurality of parts.
  • the data size of the play image or slice which is the unit in which the encoding process is executed, is constant.
  • the data size of the play image or slice, which is the unit in which the encoding process is executed does not have to be constant.
  • FIG. 3 is a diagram showing an example of a change in the cumulative data size due to the rate control shown in FIG.
  • the upper limit of the bandwidth of the communication path between the cloud server 10 and the terminal 12 (the upper limit of the data size that can be transferred at time t0) is set to da.
  • the value obtained by subtracting a predetermined buffer (margin value) from the upper limit value da is set to d0.
  • the target value of the cumulative data size when the time from the start of transmission is t is d0 ⁇ t / t0.
  • the time change of the control amount (the time change of the actual value of the cumulative data size) is represented by a solid line.
  • undershoot in which the control amount is smaller than the target value occurs in the period T1 between the start of transmission (time 0) and the time t1 and in the period T3 between the times t2 and t0. ing.
  • the determined compression ratio is low. Therefore, the control amount approaches the target value.
  • the period T2 between the time t1 and the time t2 an overshoot in which the control amount is larger than the target value occurs. In this situation, the determined compression ratio is high. Therefore, in this case as well, the controlled variable approaches the target value.
  • each play image is associated with image quality priority necessity data that can specify whether or not the play image is an image quality priority image that prioritizes image quality.
  • each play image may be associated with image quality priority necessity data according to whether or not a scene change has occurred from the frame immediately before the play image.
  • the play image in which the scene change from the immediately preceding frame has occurred is associated with the image quality priority necessity data having a value of 1, and the play image having a value other than that is associated with the image quality priority necessity data having a value of 0. May be associated.
  • a play image associated with image quality priority necessity data is treated as an image quality priority image.
  • rate control is performed according to the value of the image quality priority necessity data as described below with reference to FIGS. 4 to 6.
  • FIGS. 4 to 6 are diagrams showing an example of the execution timing of the encoding process and the transmission timing of the image data in the present embodiment.
  • the periods during which the encoding processing is executed for the play images of the first frame to the ninth frame are expressed as P1 to P9, respectively.
  • the periods during which the image data generated by encoding the play images P1 to P9 are transmitted are expressed as D1 to D9, respectively.
  • the timing at which the encoding process should be started is expressed as broken lines s1 to s9 extending in the vertical direction.
  • the frame rate is constant. Further, in the present embodiment, the time from the start timing of the encoding process of the play image to the end timing of the transmission of the image data generated based on the play image is referred to as latency (delay).
  • the play image is encoded and the image data is transmitted by the slice transfer method in which one play image is divided into a plurality of parts and transmitted. Therefore, when the encoding of the slice that is a part of the play image is completed before the encoding process for all of one play image is completed, the image data in which the slice is encoded is transmitted to the terminal 12. It has become like.
  • a frame image with specific features such as vigorous movement from the previous frame, high definition, and many high frequency components is encoded in an I frame.
  • the play image of the third frame is encoded in the I frame.
  • the play image of the third frame in the examples of FIGS. 4 and 5 is associated with the image quality priority necessity data having a value of 0.
  • the play image of the third frame in the example of FIG. 6 is associated with the image quality priority necessity data having a value of 1.
  • the image quality priority necessity data having a value of 0 is associated with all the other play images.
  • the data size of the I frame is larger than that of the P frame. Therefore, as shown in FIGS. 4, 5, and 6, the transmission time of the image data in the third frame is longer than the transmission time of the image data in the other frames. Further, the encoding time of the play image of the third frame is also longer than the encoding time of the play image of the other frame.
  • the rate control conditions differ between those shown in FIG. 4 and those shown in FIG. 5, and the data size of the image data in the third frame of the one shown in FIG. 5 is larger than that shown in FIG. Then, the one shown in FIG. 5 has a longer transmission time of the image data in the third frame than the one shown in FIG.
  • the difference between the above-mentioned control amount and the target value at the end of the third frame is larger in FIG. 5 than in FIG. Therefore, the compression rate in the rate control for the subsequent frames is determined to be higher in the one shown in FIG. 5 than in the one shown in FIG. Therefore, the data size of the image data of the 4th frame and the 5th frame is smaller in the one shown in FIG. 5 than in the one shown in FIG. Then, in both the one shown in FIG. 4 and the one shown in FIG. 5, the latency has returned to the normal state in the seventh frame.
  • the case where the value of the image quality priority necessity data associated with the play image is 1 is encoded with a lower compression rate than the case where the value is 0. The process is executed. Therefore, the image quality of the decoded play image is higher when the value of the image quality priority necessity data associated with the play image is 1 than when it is 0.
  • the data size of the image data in the third frame of the image shown in FIG. 6 is larger than that shown in FIGS. 4 and 5. In this case, an overshoot in the third frame is allowed. Then, in the one shown in FIG. 6, the image data of the fourth frame is missing. Then, in the one shown in FIG. 6, the latency has returned to the normal state in the ninth frame.
  • an image quality priority image in which the image quality is to be prioritized even if a large overshoot is temporarily allowed to occur, such as a frame image immediately after a scene change occurs.
  • the encoding process is executed so that the data size of the image data is larger when the play image is the image quality priority image than when it is not the image quality priority image. Therefore, according to the present embodiment, it is possible to perform rate control suitable for the image quality priority image.
  • FIG. 7 is a functional block diagram showing an example of the functions implemented in the cloud gaming system 1 according to the present embodiment. It should be noted that the cloud gaming system 1 according to the present embodiment does not need to implement all the functions shown in FIG. 7, and functions other than the functions shown in FIG. 7 (for example, execution of game processing based on an operation signal or the like). Etc.) may be implemented.
  • the cloud server 10 includes a comparison unit 20, an image generation unit 22, an acquisition unit 24, a determination unit 26, a basic parameter value determination unit 28a, and an image quality priority.
  • a parameter value determination unit 28b, an encoding processing unit 30, and a transmission unit 32 are included.
  • the image generation unit 22 includes an image quality priority necessity data generation unit 22a.
  • the comparison unit 20 mainly mounts the processor 10a and the storage unit 10b.
  • the acquisition unit 24 and the encoding processing unit 30 are mainly implemented with the encoding / decoding unit 10d.
  • the image generation unit 22, the determination unit 26, the basic parameter value determination unit 28a, and the image quality priority parameter value determination unit 28b are mainly mounted with the processor 10a.
  • the transmission unit 32 mainly mounts the communication unit 10c.
  • the above functions are implemented by executing a program installed on the cloud server 10 which is a computer and including a command corresponding to the above functions on the processor 10a.
  • This program is supplied to the cloud server 10 via a computer-readable information storage medium such as an optical disk, a magnetic disk, a magnetic tape, a magneto-optical disk, or a flash memory, or via the Internet or the like.
  • the terminal 12 functionally includes, for example, a receiving unit 40, a receiving buffer 42, a decoding processing unit 44, and a display control unit 46.
  • the receiving unit 40 is mainly mounted with the communication unit 12c.
  • the reception buffer 42 is mainly mounted with the storage unit 12b.
  • the decoding processing unit 44 mainly implements the encoding / decoding unit 12d.
  • the display control unit 46 mainly mounts the processor 12a and the display unit 12f.
  • the above functions are implemented by executing a program installed on the terminal 12 which is a computer and including a command corresponding to the above functions on the processor 12a.
  • This program is supplied to the terminal 12 via a computer-readable information storage medium such as an optical disk, a magnetic disk, a magnetic tape, a magneto-optical disk, or a flash memory, or via the Internet or the like.
  • the comparison unit 20 compares, for example, the above-mentioned control amount with the target value.
  • the comparison unit 20 stores the control amount data indicating the control amount and the target value data indicating the target value. Then, the comparison unit 20 updates the control amount data every time the image data is generated.
  • the comparison unit 20 increases the value of the control amount data by the size of the data size of the image data.
  • the comparison unit 20 sets the target based on the current time, the time from the start of transmission, and the like.
  • the value data may be updated as appropriate.
  • the target value data may be updated at predetermined time intervals.
  • the image generation unit 22 generates, for example, a frame image. Further, the image generation unit 22 draws the generated frame image in the frame buffer. For example, the image generation unit 22 generates the above-mentioned play image.
  • the image quality priority necessity data generation unit 22a generates, for example, image quality priority necessity data capable of specifying whether or not the frame image generated by the image generation unit 22 is an image quality priority image, and the image quality is the same.
  • Priority necessity data is associated with the frame image.
  • the image quality priority necessity data generation unit 22a determines that the frame image is the image quality priority image in the frame image immediately after the continuous scene description or the continuous game play is completed and the camera is cut. May be associated with image quality priority necessity data that can be specified.
  • the image quality priority necessity data having a value of 1 may be associated with the frame image immediately after the depiction (camera work) of a certain continuous scene is completed and the camera cut (camera split) is performed.
  • a frame image associated with image quality priority necessity data having a value of 0 may be generated.
  • the driver suddenly changes the field of view by hitting a car against a curb and the amount of image features changes significantly between frames, the image quality deteriorates but the delay is low and the continuity of the moving image (smoothness) is displayed. Is maintained.
  • a frame image associated with the image quality priority necessity data having a value of 1 may be generated.
  • the frame image immediately after the scene change is displayed in high quality. Further, even if the image data generated based on the frame image of the frame immediately after the frame is missing, the user does not care so much.
  • the image quality priority necessity data having a value of 1 may be associated with the frame image immediately after a certain continuous game play is completed and the camera cut (cut split) is performed.
  • the image quality priority necessity data generation unit 22a may associate the image quality priority necessity data that can identify that the frame image is the image quality priority image with the frame image immediately after the stage in the game is changed.
  • a frame image associated with image quality priority necessity data having a value of 0 may be generated while the stage of walking in the forest continues. After that, when the stage changes to a walking stage in the desert, a frame image associated with the image quality priority necessity data having a value of 1 may be generated.
  • the image quality priority data generation unit 22a may indicate that the frame image is the image quality priority image in the frame image immediately after the drawing of the continuous scene is completed and the assets used for drawing the frame image are switched. Specifiable image quality priority necessity data may be associated.
  • the image quality priority necessity data having a value of 1 is displayed in the frame image immediately after the drawing of a certain continuous scene is completed and the assets (3D object, texture data, etc.) used for drawing the frame image are switched. It may be associated.
  • the image quality priority data generation unit 22a can specify that the frame image is an image quality priority image in the frame image immediately after the new asset used for drawing the frame image is loaded into the memory. Necessity data may be associated.
  • a frame image associated with image quality priority data with a value of 0 is generated. You may. After that, the process of replacing the assets is executed to draw the stage walking in the desert, and when a new asset is loaded into the memory, the frame associated with the image quality priority necessity data having a value of 1 is executed. The image may be generated. In this case, the timing at which the assets are replaced may be specified by the system program instead of the drawing system or game system program. Then, the image quality priority necessity data having a value of 1 may be associated with the frame image by the system program.
  • the acquisition unit 24 sequentially acquires, for example, a frame image (play image in the above example) drawn in the frame buffer.
  • a frame image associated with image quality priority necessity data according to whether or not a scene change from the immediately preceding frame has occurred is generated.
  • the frame image associated with the image quality priority necessity data is drawn in the frame buffer.
  • the acquisition unit 24 acquires the frame image associated with the image quality priority necessity data.
  • the frame image associated with the image quality priority necessity data is generated by, for example, a drawing program such as a game program included in the cloud server 10.
  • a frame image associated with the image quality priority necessity data may be generated by the game engine. It should be noted that the image quality priority necessity data does not have to correspond to whether or not a scene change has occurred from the immediately preceding frame, and even if the value of the image quality priority necessity data is determined based on a predetermined logic. good.
  • the acquisition unit 24 may acquire a frame image showing a state in which the virtual space is viewed from a virtual object arranged in the virtual space.
  • the determination unit 26 determines, for example, whether or not the frame image acquired by the acquisition unit 24 is an image quality priority image.
  • the determination unit 26 may determine whether or not the frame image is an image quality priority image, for example, based on the image quality priority necessity data associated with the frame image.
  • the determination unit 26 may determine that the frame image is an image quality priority image, for example, when the value of the image quality priority necessity data associated with the frame image is 1.
  • the determination unit 26 may determine that the frame image is not the image quality priority image, for example, when the value of the image quality priority necessity data associated with the frame image is 0.
  • the determination unit 26 may determine whether or not a scene change from the immediately preceding frame has occurred. Then, the determination unit 26 may determine that the frame image in which the scene change from the immediately preceding frame has occurred is the image quality priority image, and the frame image in which the scene change has not occurred is not the image quality priority image.
  • the acquisition unit 24 may acquire a frame image showing the state of viewing the virtual space from the virtual object arranged in the virtual space.
  • the determination unit 26 may determine the frame image immediately after the virtual object changes from the immediately preceding frame as the image quality priority image.
  • the determination unit 26 may determine the frame image immediately after the asset used for drawing the frame image is switched as the image quality priority image.
  • the determination unit 26 does not have to determine whether or not a scene change from the immediately preceding frame has occurred based on the image quality priority necessity data. For example, the determination unit 26 may determine whether or not a scene change from the immediately preceding frame has occurred based on the comparison result between the frame image and the frame image of the frame immediately before the frame image.
  • the determination unit 26 determines that a scene change from the immediately preceding frame has occurred if the value indicating the amount of change in the scene is larger than a predetermined value, and if not, the scene change from the immediately preceding frame is performed. It may be determined that it has not occurred.
  • an index value indicating the degree of difference or similarity between the immediately preceding frame image and the frame image may be used. For example, if Peak Signal to Noise Ratio (PSNR) or Structural Similarity (SSIM) is smaller than a predetermined value, it is determined that no scene change has occurred, and if not, it is determined that a scene change has occurred. May be good.
  • the amount of change in Motion Estimation (ME) may be used as the amount of change in the scene. For example, if the value of the ME change amount is larger than the predetermined value, it may be determined that the scene change has occurred, and if not, it may be determined that the scene change has not occurred.
  • a value indicating the amount of change in the scene a value indicating a certain degree of discontinuity in audio between the timing at which the immediately preceding frame image is displayed and the timing at which the frame image of the frame is displayed may be used. .. For example, if the value is larger than a predetermined value, it may be determined that a scene change has occurred, and if not, it may be determined that a scene change has not occurred.
  • a scene change has occurred from the immediately preceding frame based on the amount of change in the score value indicating the content represented by the frame image derived based on a predetermined rule. For example, whether it is the timing of switching scenes, the type of image texture displayed in the frame, the distribution of feature points, depth information, the amount of objects, the amount of mipmap texture used for 3D graphics, and the amount used for each level. Whether a scene change has occurred based on the amount of change in the score value calculated from information such as LOD (Level Of Detail), the amount of each level of tessellation used, the amount of characters and symbols, and the type of scene represented. Whether or not it may be determined.
  • LOD Level Of Detail
  • a score value representing the priority of spatial detail and temporal detail may be calculated.
  • the basic parameter value determining unit 28a determines, for example, the value of a parameter used for encoding a part or all of the frame image, which is an encoding unit, for a frame image that is not an image quality priority image.
  • the image quality priority parameter value determination unit 28b determines, for example, the value of a parameter used for encoding a part or all of the frame image, which is an image quality priority image, in an encoding unit.
  • the values of parameters such as quantization parameter (QP), bit depth, and image resolution are determined.
  • the value of the parameter may include a value indicating a frame type (for example, whether it is an I frame or a P frame) of the generated image data.
  • the basic parameter value determination unit 28a may determine the parameter value by applying the difference between the control amount and the target value to a predetermined control rule.
  • the image quality priority parameter value determining unit 28b determines, as the value of the parameter used for the encoding unit of the frame image, a value determined by applying the difference between the control amount and the target value to the above-mentioned predetermined control rule. , The value that increases the data size of the generated image data may be determined.
  • the image quality priority parameter value determination unit 28b is, for example, a parameter value used for the encoding unit of the frame image, which is larger than a value determined by applying the difference between the control amount and the target value to the above-mentioned predetermined control rule. , You may decide the value which reduces the compression ratio of the generated image data. Then, the value of the parameter corresponding to the determined compression rate may be determined.
  • the image quality priority parameter value determination unit 28b sets the value of the parameter used for the frame image encoding unit, which corresponds to the case where a value smaller than the difference between the control amount and the target value is applied to the above-mentioned predetermined control rule. You may decide.
  • the basic parameter value determination unit 28a applies the difference between the control amount and the target value to the above-mentioned predetermined control rule to encode the frame image. You may determine the value of the parameter used for. In this case, the control amount that changes depending on the image quality priority image is taken over to the determination of the parameter value related to the next frame image of the image quality priority image. Since the overshoot state of the data size and latency length of the image data is inherited, the process of converging this overshoot is executed in the determination of the parameter value related to the next frame image of the image quality priority image. Become.
  • the basic parameter value determination unit 28a is generated for the next frame image of the image quality priority image, rather than a value determined by applying the difference between the control amount and the target value to the above-mentioned predetermined control rule.
  • a value that reduces the data size of the image data may be determined. For example, for the frame image next to the image quality priority image, the compression rate of the generated image data is larger than the value determined by applying the difference between the control amount and the target value to the predetermined control rule described above. May be determined. Then, the value of the parameter corresponding to the determined compression rate may be determined.
  • At least one of the basic parameter value determination unit 28a and the image quality priority parameter value determination unit 28b may determine the parameter value based on, for example, the transferable band of the current computer network 14. For example, the larger the value indicating the transferable band, the lower the compression rate may be determined. If there is a margin in the transferable bandwidth, it is considered that a low compression ratio does not cause much problem. Further, if the transferable bandwidth is sufficient, skipping of encoding of the frame image after the frame can be omitted. Therefore, from this viewpoint as well, if the transferable bandwidth is sufficient, even if the compression rate is low, it is not so much. It doesn't matter.
  • At least one of the basic parameter value determination unit 28a and the image quality priority parameter value determination unit 28b generates an I-frame per unit time in the past or the number of times image data is missing in the past unit time.
  • the value of the parameter may be determined further based on at least one of the times given. For example, the higher the number of times image data is lost per unit time for the most recent predetermined time, the higher the compression rate may be determined. Further, the higher the number of times I frames are generated per unit time for the most recent predetermined time, the higher the compression ratio may be determined.
  • the frame rate will increase due to either unintentional data loss due to excessive transfer volume or intentional skipping of image data transmission after the I-frame. It becomes discontinuous. As a result, the smoothness in reproducing the moving image on the terminal 12 is lowered, and the user experience is deteriorated. In such a case, even if the amount of change in the scene is large, it may be prioritized to secure the smoothness of the frame rate by increasing the compression rate.
  • At least one of the basic parameter value determination unit 28a or the image quality priority parameter value determination unit 28b may determine the parameter value using a machine learning model such as deep learning.
  • At least one of the basic parameter value determination unit 28a and the image quality priority parameter value determination unit 28b is a combination of some or all of the above-mentioned ones, and the parameter is based on the comprehensive evaluation value thereof. The value may be determined.
  • control amount is not limited to the cumulative data size.
  • control amount may be the data size of the image data generated per unit time.
  • the length of the latency described above may be a control amount.
  • the latency length refers to, for example, the length of time from the start timing of encoding the frame image to the transmission end timing of the image data generated based on the frame image, as described above.
  • the feedback control which is the PID control may be executed.
  • the image quality priority parameter value determination unit 28b suppresses the gain of at least one of the proportional control and the differential control in the PID control as compared with the determination by the basic parameter value determination unit 28a, so that the parameter used as the encoding unit of the frame image. The value of may be determined.
  • the image quality priority parameter value determination unit 28b may determine the parameter value based on the difference between the control amount and the target value at a longer time interval than the basic parameter value determination unit 28a. For example, the image quality priority parameter value determination unit 28b determines the parameter value based on the difference between the control amount and the target value in the frame image unit, and the basic parameter value determination unit 28a determines the control amount and the target value in the slice unit. The value of the parameter may be determined based on the difference. In this way, by coarsening the time particle size of the feedback control in determining the parameter value by the image quality priority parameter value determining unit 28b, it is possible to intentionally create a state in which an overshoot occurs.
  • the encoding processing unit 30 performs encoding based on the parameter values determined by the basic parameter value determining unit 28a or the image quality priority parameter value determining unit 28b for the above-mentioned encoding unit, for example, to perform an image. Generate data.
  • the encoding processing unit 30 may skip the encoding of the frame image next to the image quality priority image.
  • the encoding processing unit 30 may determine the number of frame skips based on the data size of the image data generated by encoding the image quality priority image. For example, the larger the data size, the larger the number of frame skips may be determined. Then, the encoding of the frame image following the image quality priority image may be skipped by the determined number of frame skips.
  • control related to skipping encoding may be performed by rate control.
  • rate control For example, for an image quality priority image, the value of a parameter that allows a large overshoot may be determined, and the data size of the image data may be larger than usual. Then, based on this, the overshoot may be converged by determining the number of frame skips in the rate control.
  • the encoding processing unit 30 may generate image data according to a value indicating a frame type of the image data to be generated, which is determined by the basic parameter value determination unit 28a or the image quality priority parameter value determination unit 28b. .. For example, if the value indicating the frame type is a value corresponding to the I frame, the I frame is generated, and if the value indicating the frame type is the value corresponding to the P frame, the P frame is generated. You may.
  • the encoding processing unit 30 may encode a frame image, which is an image quality priority image, into an I frame.
  • a frame image that is an image quality priority image may be always or preferentially encoded in an I frame.
  • the encoding processing unit 30 may encode, for example, a frame image determined by the determination unit 26 to be an image quality priority image into an I frame.
  • the encoding processing unit 30 may execute encoding using the gradual decoder refresh (GDR) technology for the frame image that is not the image quality priority image.
  • GDR gradual decoder refresh
  • the transmission unit 32 transmits, for example, the image data generated by the encoding processing unit 30 to the terminal 12.
  • the transmission unit 32 may specify the transferable band by monitoring the communication status of the computer network 14. Then, the transmission unit 32 may transmit the image data to the terminal 12 at a data rate corresponding to the specified transferable band.
  • the drawing intermediate data (for example, the virtual data of the three-dimensional model representing the virtual space) representing the state in which the image generation unit 22 sees the virtual space from the virtual object arranged in the virtual space is the virtual.
  • a frame image may be generated based on the arrangement information in space).
  • the image quality priority necessity data generation unit 22a adds the frame to the frame image generated by the image generation unit 22 based on the drawing intermediate data immediately after the virtual object, which is the main body for viewing the virtual space, changes from the immediately preceding frame.
  • Image quality priority necessity data that can identify that the image is an image quality priority image may be associated.
  • the determination unit 26 determines that the frame image generated by the image generation unit 22 is the image quality priority image based on the drawing intermediate data immediately after the virtual object, which is the subject of viewing the virtual space, changes from the immediately preceding frame. You may. For example, the determination unit 26 determines that the frame image associated with the image quality priority necessity data having a value of 1 based on the above-mentioned drawing intermediate data is determined to be the image quality priority image by the image quality priority necessity data generation unit 22a. May be good.
  • the image quality priority necessity data generation unit 22a does not have to determine whether or not the virtual object, which is the subject of viewing the virtual space, has changed from the immediately preceding frame based on the drawing intermediate data. Then, in this case, the image quality of the frame image generated based on the drawing intermediate data is based on the drawing intermediate data representing the state in which the determination unit 26 sees the virtual space from the virtual object arranged in the virtual space. It may be determined whether or not it is a priority image. For example, the determination unit 26 may determine whether or not the virtual object, which is the subject of viewing the virtual space, has changed from the immediately preceding frame based on the drawing intermediate data. Then, the frame image of the frame in which it is determined that the virtual object that is the subject of viewing the virtual space has changed from the immediately preceding frame may be determined to be the image quality priority image.
  • the receiving unit 40 receives, for example, image data from the transmitting device.
  • the reception buffer 42 stores, for example, image data received by the reception unit 40.
  • the decoding processing unit 44 generates a play image by decoding the image data stored in the reception buffer 42, for example.
  • the display control unit 46 displays, for example, a play image generated by the decoding processing unit 44.
  • the processes shown in S101 to S110 shown in FIG. 8 are repeatedly executed.
  • the processes shown in S101 to S110 shown in FIG. 8 are basically repeatedly executed at a fixed or variable frame rate.
  • the comparison unit 20 updates the target value data stored in the comparison unit 20 at predetermined time intervals.
  • the acquisition unit 24 acquires the frame image of the frame drawn in the frame buffer (S101).
  • the determination unit 26 determines whether or not the frame image acquired by the process shown in S101 is an image quality priority image (S102).
  • the determination unit 26 selects the image quality priority parameter value determination unit 28b as the parameter value determination unit in this loop (S103).
  • the determination unit 26 selects the basic parameter value determination unit 28a as the parameter value determination unit in this loop (S104).
  • the encoding processing unit 30 selects one of the plurality of slices included in the frame image acquired in the process shown in S101 that has not been executed in the processes shown in S106 to S109 (S105).
  • the parameter value determining unit in this loop selected in the process shown in S103 or S104 determines the value of the parameter used for the encoding process of the slice selected in the process shown in S105 (S106).
  • the parameter value is determined based on the difference between the control amount and the target value, the characteristics of the frame image acquired by the process shown in S101 (for example, the magnitude of movement from the immediately preceding frame, etc.), and the like. Will be done.
  • the difference between the control amount and the target value may be specified based on the control amount data and the target value data stored in the comparison unit 20.
  • the compression rate may be determined by the process shown in S106. Then, the values of various parameters may be determined based on the determined compression ratio.
  • the encoding processing unit 30 encodes the slice selected in the process shown in S105 based on the value of the parameter determined in the process shown in S106 to generate image data corresponding to the slice (S107). ).
  • the transmission unit 32 transmits the image data generated by the process shown in S107 to the terminal 12 (S108).
  • the comparison unit 20 updates the control amount data stored in the comparison unit 20 (S109).
  • the comparison unit 20 increases the value of the control amount data by, for example, a value indicating the data size of the image data generated by the process shown in S107.
  • the feedback control may be executed in frame image units instead of the slice unit feedback control shown in S105 to S109. good.
  • the basic parameter value determination unit 28a may determine the value of the parameter used for the encoding process of the frame image acquired in the process shown in S101.
  • the encoding processing unit 30 may generate image data by encoding the frame image acquired by the processing shown in S101 based on the value of the determined parameter.
  • the transmission unit 32 may transmit the generated image data to the terminal 12.
  • the comparison unit 20 may update the control amount data stored in the comparison unit 20 and return to the process shown in S101.
  • the present invention is not limited to the above-described embodiment.
  • the scope of application of the present invention is not limited to the cloud gaming system 1.
  • the present invention can be applied to a game system including a server arranged in a home and a terminal connected to the server via a home network, a public network, a carrier network of a mobile phone, or the like. .. That is, the computer network 14 may be a home network, a public network, a carrier network of a mobile phone, or the like. Further, the server and the terminal may be connected by wire or wirelessly.
  • the content of the game to which the present invention is applied is not particularly limited, and the present invention can be applied to, for example, a game system that executes a game using virtual reality (VR) or augmented reality (AR).
  • VR virtual reality
  • AR augmented reality
  • the scope of application of the present invention is not limited to games, and the present invention is generally applicable in situations where a moving image is transmitted from a transmission device corresponding to the above-mentioned cloud server 10.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

画質優先画像に適したレート制御を行うことができる送信装置、送信方法及びプログラムを提供する。基本パラメータ値決定部(28a)は、画質優先画像ではないフレーム画像について、当該フレーム画像の一部又は全部であるエンコード単位のエンコードに用いられるパラメータの値を、制御量と目標値との差を所定の制御規則に適用することにより決定する。画質優先パラメータ値決定部(28b)は、画質優先画像であるフレーム画像について、当該フレーム画像のエンコード単位に用いられるパラメータの値として、制御量と目標値との差を所定の制御規則に適用することにより決定される値よりも、生成される画像データのデータサイズが大きくなる値を決定する。

Description

送信装置、送信方法及びプログラム
 本発明は、送信装置、送信方法及びプログラムに関する。
 近年注目されているクラウドゲーミングサービスの技術では、クラウドサーバにおいてゲームのプレイ状況を表すフレーム画像が生成される。そして、当該フレーム画像をエンコードした画像データがクラウドサーバから端末に送信され、端末において当該画像データをデコードしたフレーム画像が表示される。この一連の処理が繰り返し実行されることで、ゲームのプレイ状況を表す動画像が端末に表示される。
 また、画像データのデータサイズやレイテンシの長さ等を制御量とするフィードバック制御によって、量子化パラメータ(QP)、ビット深度、画像解像度などのパラメータの値を調整するレート制御の技術が存在する。レート制御では、制御量が目標値よりも大きくなるオーバーシュートが発生したり、制御量が目標値よりも小さくなるアンダーシュートが発生したりするが、全体としては制御量と目標値との差がそれほど大きくならないよう制御される。
 生成されるフレーム画像のなかには、例えば、シーンチェンジの発生直後のフレーム画像などのように、大きなオーバーシュートの発生を一時的に許容してでも画質を優先させたいもの(以下、画質優先画像と呼ぶ。)が存在する。
 しかし従来のレート制御では、このような画質優先画像を例外的に取り扱うことができなかった。また、従来のレート制御では、画像の変化量が多いシーンチェンジの発生直後のフレーム画像において、画質を優先させるべきか、データサイズやレイテンシの長さの抑制を優先させるべきかを判別する手段がなかった。
 なおこのことはクラウドゲーミングサービスが提供される状況のみならず、上述のクラウドサーバに相当する送信装置から動画像が送信される状況において一般的にあてはまる。
 本発明は上記実情に鑑みてなされたものであって、その目的の一つは、画質優先画像に適したレート制御を行うことができる送信装置、送信方法及びプログラムを提供することにある。
 上記課題を解決するために、本発明に係る送信装置は、フレームバッファに描画されたフレーム画像を順次取得する取得部と、前記フレーム画像が画質優先画像であるか否かを判断する判断部と、前記画質優先画像ではない前記フレーム画像について、当該フレーム画像の一部又は全部であるエンコード単位のエンコードに用いられるパラメータの値を、制御量と目標値との差を所定の制御規則に適用することにより決定する基本パラメータ値決定部と、前記画質優先画像である前記フレーム画像について、当該フレーム画像の前記エンコード単位に用いられるパラメータの値を決定する画質優先パラメータ値決定部と、前記エンコード単位に対して、前記基本パラメータ値決定部又は前記画質優先パラメータ値決定部により決定される前記パラメータの値に基づくエンコードを実行することで画像データを生成するエンコード処理部と、前記画像データを送信する送信部と、を含み、前記画質優先パラメータ値決定部は、前記フレーム画像の前記エンコード単位に用いられるパラメータの値として、前記制御量と前記目標値との差を前記所定の制御規則に適用することにより決定される値よりも、生成される前記画像データのデータサイズが大きくなる値を決定する。
 本発明の一態様では、前記エンコード処理部は、前記画質優先画像の次のフレーム画像のエンコードをスキップする。
 あるいは、前記エンコード処理部は、前記画質優先画像をエンコードすることで生成される前記画像データのデータサイズに基づいて、フレームスキップ数を決定し、前記エンコード処理部は、前記フレームスキップ数だけ、前記画質優先画像に後続するフレーム画像のエンコードをスキップする。
 あるいは、前記画質優先画像の次のフレーム画像については、前記基本パラメータ値決定部が、前記制御量と前記目標値との差を前記所定の制御規則に適用することにより当該フレーム画像の前記エンコード単位に用いられるパラメータの値を決定する。
 あるいは、前記基本パラメータ値決定部は、前記画質優先画像の次のフレーム画像については、前記制御量と前記目標値との差を前記所定の制御規則に適用することにより決定される値よりも、生成される前記画像データのデータサイズが小さくなる値を、前記パラメータの値に決定する。
 また、本発明の一態様では、前記取得部は、前記フレーム画像が前記画質優先画像であるか否かを特定可能な画質優先要否データに関連付けられている前記フレーム画像を取得し、前記判断部は、前記フレーム画像に関連付けられている前記画質優先要否データに基づいて、当該フレーム画像が前記画質優先画像であるか否かを判断する。
 この態様では、前記画質優先要否データを生成して、当該画質優先要否データを前記フレーム画像に関連付ける画質優先要否データ生成部、をさらに含んでもよい。
 さらに、前記画質優先要否データ生成部は、連続したシーンの描写、又は、連続したゲームプレイが終わり、カメラカットが行われた直後のフレーム画像に、当該フレーム画像が前記画質優先画像であることが特定可能な前記画質優先要否データを関連付けてもよい。
 あるいは、前記画質優先要否データ生成部は、ゲームにおけるステージが変化した直後のフレーム画像に、当該フレーム画像が前記画質優先画像であることが特定可能な前記画質優先要否データを関連付けてもよい。
 あるいは、前記画質優先要否データ生成部は、連続したシーンの描画が終わり、フレーム画像の描画に用いられているアセットが切り替わった直後のフレーム画像に、当該フレーム画像が前記画質優先画像であることが特定可能な前記画質優先要否データを関連付けてもよい。
 あるいは、前記画質優先要否データ生成部は、フレーム画像の描画に用いられる新たなアセットがメモリにロードされた直後のフレーム画像に、当該フレーム画像が前記画質優先画像であることが特定可能な前記画質優先要否データを関連付けてもよい。
 また、本発明の一態様では、前記判断部は、直前のフレームからのシーンチェンジが発生した前記フレーム画像は前記画質優先画像であると判断する。
 あるいは、前記取得部は、仮想空間内に配置された仮想オブジェクトから前記仮想空間を見た様子を表す前記フレーム画像を取得し、前記判断部は、前記仮想オブジェクトが直前のフレームから変化した直後の前記フレーム画像を前記画質優先画像と判断する。
 あるいは、仮想空間内に配置された仮想オブジェクトから前記仮想空間を見た様子を表す描画中間データに基づいて前記フレーム画像を生成する画像生成部、をさらに含み、前記判断部は、前記仮想オブジェクトが直前のフレームから変化した直後の前記描画中間データに基づいて前記画像生成部により生成される前記フレーム画像を前記画質優先画像と判断する。
 あるいは、前記判断部は、前記フレーム画像の描画に用いられているアセットが切り替わった直後の前記フレーム画像を前記画質優先画像と判断する。
 あるいは、前記判断部は、前記フレーム画像と当該フレーム画像の直前のフレームのフレーム画像との比較結果に基づいて、当該フレーム画像が前記画質優先画像であるか否かを判断する。
 また、本発明の一態様では、前記エンコード処理部は、前記画質優先画像である前記フレーム画像をIフレームにエンコードする。
 あるいは、前記画質優先パラメータ値決定部は、前記フレーム画像の前記エンコード単位に用いられるパラメータの値として、前記制御量と前記目標値との差を前記所定の制御規則に適用することにより決定される値よりも、生成される前記画像データの圧縮率が小さくなる値を決定する。
 あるいは、前記エンコード処理部は、前記画質優先画像ではない前記フレーム画像には、グラデュアルデコーダリフレッシュ(GDR)の技術を用いたエンコードを実行する。
 また、本発明の一態様では、前記制御量は、前記画像データのデータサイズ、又は、前記フレーム画像のエンコードの開始タイミングから当該フレーム画像に基づいて生成される前記画像データの送信終了タイミングまでの時間の長さである。
 また、本発明の一態様では、前記画質優先パラメータ値決定部は、前記制御量と前記目標値との差よりも小さな値を前記所定の制御規則に適用した場合に相当する、前記フレーム画像の前記エンコード単位に用いられるパラメータの値を決定する。
 また、本発明の一態様では、前記基本パラメータ値決定部及び前記画質優先パラメータ値決定部は、PID制御を行うことにより前記エンコード単位に用いられるパラメータの値を決定し、前記画質優先パラメータ値決定部は、前記基本パラメータ値決定部による決定よりもPID制御における比例制御又は微分制御の少なくとも一方のゲインを抑制することで、前記フレーム画像の前記エンコード単位に用いられるパラメータの値を決定する。
 また、本発明の一態様では、前記画質優先パラメータ値決定部は、前記基本パラメータ値決定部よりも長い時間間隔で、前記制御量と前記目標値との差に基づいて前記パラメータの値を決定する。
 また、本発明の一態様では、前記基本パラメータ値決定部又は前記画質優先パラメータ値決定部は、過去の単位時間あたりに前記画像データの欠落が発生した回数、又は、過去の単位時間あたりにIフレームが生成された回数のうちの少なくとも1つにさらに基づいて、前記パラメータの値を決定する。
 また、本発明に係る送信方法は、フレームバッファに描画されたフレーム画像を順次取得する取得ステップと、前記フレーム画像が画質優先画像であるか否かを判断する判断ステップと、前記画質優先画像ではない前記フレーム画像について、当該フレーム画像の一部又は全部であるエンコード単位のエンコードに用いられるパラメータの値を、制御量と目標値との差を所定の制御規則に適用することにより決定する基本パラメータ値決定ステップと、前記画質優先画像である前記フレーム画像について、当該フレーム画像の前記エンコード単位に用いられるパラメータの値を決定する画質優先パラメータ値決定ステップと、前記エンコード単位に対して、前記基本パラメータ値決定ステップ又は前記画質優先パラメータ値決定ステップで決定される前記パラメータの値に基づくエンコードを実行することで画像データを生成するエンコード処理ステップと、前記画像データを送信する送信ステップと、を含み、前記画質優先パラメータ値決定ステップでは、前記フレーム画像の前記エンコード単位に用いられるパラメータの値として、前記制御量と前記目標値との差を前記所定の制御規則に適用することにより決定される値よりも、生成される前記画像データのデータサイズが大きくなる値を決定する。
 また、本発明に係るプログラムは、フレームバッファに描画されたフレーム画像を順次取得する取得手順、前記フレーム画像が画質優先画像であるか否かを判断する判断手順、前記画質優先画像ではない前記フレーム画像について、当該フレーム画像の一部又は全部であるエンコード単位のエンコードに用いられるパラメータの値を、制御量と目標値との差を所定の制御規則に適用することにより決定する基本パラメータ値決定手順、前記画質優先画像である前記フレーム画像について、当該フレーム画像の前記エンコード単位に用いられるパラメータの値を決定する画質優先パラメータ値決定手順、前記エンコード単位に対して、前記基本パラメータ値決定手順又は前記画質優先パラメータ値決定手順で決定される前記パラメータの値に基づくエンコードを実行することで画像データを生成するエンコード処理手順、前記画像データを送信する送信手順、をコンピュータに実行させ、前記画質優先パラメータ値決定手順では、前記フレーム画像の前記エンコード単位に用いられるパラメータの値として、前記制御量と前記目標値との差を前記所定の制御規則に適用することにより決定される値よりも、生成される前記画像データのデータサイズが大きくなる値を決定する。
本発明の一実施形態に係るクラウドゲーミングシステムの全体構成の一例を示す図である。 レート制御の一例を示す概念図である。 レート制御における累積データサイズの変化の一例を模式的に示す図である。 レート制御の一例を模式的に示す図である。 レート制御の一例を模式的に示す図である。 レート制御の一例を模式的に示す図である。 本発明の一実施形態に係るクラウドゲーミングシステムで実装される機能の一例を示す機能ブロック図である。 本発明の一実施形態に係るクラウドサーバにおいて行われる処理の流れの一例を示すフロー図である。
 図1は、本発明の一実施形態に係るクラウドゲーミングシステム1の全体構成の一例を示す図である。図1に示すように、本実施形態に係るクラウドゲーミングシステム1には、いずれもコンピュータを中心に構成された、クラウドサーバ10と端末12とが含まれている。クラウドサーバ10と端末12とは、インターネットなどのコンピュータネットワーク14に接続されており、クラウドサーバ10と端末12とは互いに通信可能となっている。
 本実施形態に係るクラウドサーバ10は、例えば、クラウドゲーミングサービスに係るゲームのプログラムを実行するサーバコンピュータである。クラウドサーバ10は、当該ゲームのプレイ状況を表す動画像を、当該ゲームをプレイしているユーザが利用している端末12に配信する。
 図1に示すように、クラウドサーバ10には、例えば、プロセッサ10a、記憶部10b、通信部10c、エンコード・デコード部10dが含まれている。
 プロセッサ10aは、例えばCPU等のプログラム制御デバイスであって、記憶部10bに記憶されたプログラムに従って各種の情報処理を実行する。本実施形態に係るプロセッサ10aには、当該CPUから供給されるグラフィックスコマンドやデータに基づいてフレームバッファに画像を描画するGPU(Graphics Processing Unit)も含まれている。
 記憶部10bは、例えばROMやRAM等の記憶素子やソリッドステートドライブ(SSD)などである。記憶部10bには、プロセッサ10aによって実行されるプログラムなどが記憶される。また、本実施形態に係る記憶部10bには、プロセッサ10aに含まれるGPUにより画像が描画されるフレームバッファの領域が確保されている。
 通信部10cは、例えばコンピュータネットワーク14を介して、端末12などといったコンピュータとの間でデータを授受するための通信インタフェースである。
 エンコード・デコード部10dは、例えばエンコーダとデコーダとを含む。当該エンコーダは、入力される画像をエンコードすることにより当該画像を表す画像データを生成する。また当該デコーダは、入力される画像データをデコードして、当該画像データが表す画像を出力する。
 本実施形態に係る端末12は、例えばクラウドゲーミングサービスを利用するユーザが利用する、ゲームコンソール、パーソナルコンピュータ、タブレット端末、スマートフォンなどのコンピュータである。
 図1に示すように、端末12には、例えば、プロセッサ12a、記憶部12b、通信部12c、エンコード・デコード部12d、操作部12e、表示部12f、が含まれている。
 プロセッサ12aは、例えばCPU等のプログラム制御デバイスであって、記憶部12bに記憶されたプログラムに従って各種の情報処理を実行する。本実施形態に係るプロセッサ12aには、当該CPUから供給されるグラフィックスコマンドやデータに基づいてフレームバッファに画像を描画するGPU(Graphics Processing Unit)も含まれている。
 記憶部12bは、例えばROMやRAM等の記憶素子やソリッドステートドライブ(SSD)などである。記憶部12bには、プロセッサ12aによって実行されるプログラムなどが記憶される。また、本実施形態に係る記憶部12bには、プロセッサ12aに含まれるGPUにより画像が描画されるフレームバッファの領域が確保されている。
 通信部12cは、例えばコンピュータネットワーク14を介して、クラウドサーバ10などといったコンピュータとの間でデータを授受するための通信インタフェースである。
 エンコード・デコード部12dは、例えばエンコーダとデコーダとを含む。当該エンコーダは、入力される画像をエンコードすることにより当該画像を表す画像データを生成する。また当該デコーダは、入力される画像データをデコードして、当該画像データが表す画像を出力する。
 操作部12eは、例えばプロセッサ12aに対する操作入力を行うための操作部材である。
 表示部12fは、例えば液晶ディスプレイや有機ELディスプレイなどの表示デバイスである。
 なお、端末12に、GPUやフレームバッファが含まれている必要はない。
 本実施形態に係る端末12に対するゲームに関する操作が操作部12eを介して行われると、当該操作を表す操作信号が端末12からクラウドサーバ10に送信される。そして、クラウドサーバ10において当該操作信号に応じたゲーム処理が実行される。そして操作信号の影響を受けた当該ゲームのプレイ状況を表すフレーム画像であるプレイ画像が生成され、当該プレイ画像がクラウドサーバ10のフレームバッファに描画される。本実施形態では、ゲーム処理及びプレイ画像の生成が繰り返し実行される。
 そして、クラウドサーバ10は、フレームバッファに描画されたプレイ画像を順次取得して、当該プレイ画像を表す画像データを生成する。そして、クラウドサーバ10は、生成される画像データを端末12に送信する。そして端末12は、クラウドサーバ10から受信する画像データをデコードすることにより生成されるプレイ画像を表示部12fに表示させる。このようにして、本実施形態では一連のプレイ画像から構成されるプレイ動画像が表示部12fに表示される。
 本実施形態に係るクラウドサーバ10では、画像データのデータサイズやレイテンシの長さ等を制御量とするフィードバック制御によって、量子化パラメータ(QP)、ビット深度、画像解像度などのパラメータの値を調整するレート制御が行われる。
 図2は、本実施形態におけるレート制御の一例を示す概念図である。図2に示すように本実施形態では例えば、エンコード処理が実行されることで生成される画像データにおける制御量と目標値とが比較される。そして、制御量と目標値との比較結果、及び、画像の特徴に基づいて、圧縮率が決定される。ここで圧縮率は、制御量と目標値との比較結果に基づく調整が行われる。
 そして、決定される圧縮率に基づいて、量子化パラメータ(QP)、ビット深度、画像解像度などのパラメータの値が決定される。なお、当該パラメータの値に、生成される画像データのフレーム種類(例えば、IフレームであるかPフレームであるかなど)を示す値が含まれていてもよい。
 そして、決定されるパラメータの値に基づく当該画像のエンコード処理が実行される。エンコード処理が実行されることで生成される画像データは端末12に送信される。本実施形態に係るレート制御では、図2に示すループによるフィードバック制御が繰り返し実行される。
 ここで例えば、制御量の一例として、現在までに送信した画像データのデータサイズの合計である累積データサイズが挙げられる。また、上述のループはプレイ画像(フレーム画像)単位で実行されてもよいし、1つのプレイ画像を複数の部分に分割したスライス単位で実行されても構わない。以下の説明では、エンコード処理が実行される単位であるプレイ画像やスライスのデータサイズは一定であることとする。なお、エンコード処理が実行される単位であるプレイ画像やスライスのデータサイズは一定である必要はない。
 図3は、図2に示すレート制御による累積データサイズの変化の一例を示す図である。図3では、例えば、クラウドサーバ10と端末12との間の通信経路の帯域の上限(時間t0で転送可能なデータサイズの上限)をdaとする。また、上限である値daから所定のバッファ(余裕値)を引いた値をd0とする。この場合、図3の破線l1に示すように、送信開始からの時間がtである場合における累積データサイズの目標値はd0×t/t0となる。
 また、図3には、制御量の時間変化(累積データサイズの実際値の時間変化)が実線で表現されている。そして、図3の例では、送信開始(時間0)から時間t1までの間の期間T1、及び時間t2からt0までの間の期間T3において、制御量が目標値よりも小さいアンダーシュートが発生している。この状況では、決定される圧縮率は低くなる。そのため、制御量が目標値に近づいていく。一方、また時間t1から時間t2までの間の期間T2において、制御量が目標値よりも大きいオーバーシュートが発生している。この状況では、決定される圧縮率は高くなる。そのためこの場合も、制御量が目標値に近づいていく。
 また、本実施形態では、各プレイ画像には、当該プレイ画像が画質を優先させる画質優先画像であるか否かが特定可能な画質優先要否データが関連付けられている。ここでは各プレイ画像には、当該プレイ画像の直前のフレームからのシーンチェンジが発生したか否かに応じた画質優先要否データが関連付けられていてもよい。例えば、直前のフレームからのシーンチェンジが発生したプレイ画像には、値が1である画質優先要否データが関連付けられており、そうでないプレイ画像には、値が0である画質優先要否データが関連付けられていてもよい。本実施形態では例えば、画質優先要否データが関連付けられているプレイ画像が、画質優先画像として取り扱われる。
 そして、本実施形態では、図4~図6を参照して以下で説明するようにして、画質優先要否データの値に応じたレート制御が行われる。
 図4~図6は、本実施形態におけるエンコード処理の実行タイミング及び画像データの送信タイミングの一例を示す図である。図4~図6には、第1フレーム~第9フレームのプレイ画像について、エンコード処理が実行されている期間が、それぞれ、P1~P9と表現されている。また、プレイ画像P1~P9をエンコードすることにより生成される画像データが送信されている期間が、それぞれ、D1~D9と表現されている。また、第1フレーム~第9フレームのそれぞれについて、エンコード処理が開始されるべきタイミングが縦方向に延伸する破線s1~s9と表現されている。
 図4~図6に示すように、本実施形態では、フレームレートは一定である。また、本実施形態では、プレイ画像のエンコード処理の開始タイミングから当該プレイ画像に基づいて生成される画像データの送信の終了タイミングまでの時間をレイテンシ(遅延)と呼ぶこととする。
 図4~図6の例では、1つのプレイ画像を複数の部分に分割して送信するスライス転送方式によって、プレイ画像のエンコード、及び、画像データの送信が行われる。そのため、1つのプレイ画像のすべてについてのエンコード処理が終了する前に、当該プレイ画像の一部であるスライスのエンコードが終了した際には、当該スライスをエンコードした画像データが端末12に送信されるようになっている。
 直前のフレームからの動きが激しい、高精細である、高周波成分が多い、などの特定の特徴を持つフレーム画像は、Iフレームにエンコードされる。図4~図6の例では、第3フレームのプレイ画像がIフレームにエンコードされている。ここで、図4、及び、図5の例における第3フレームのプレイ画像には、値が0である画質優先要否データが関連付けられていることとする。また、図6の例における第3フレームのプレイ画像には、値が1である画質優先要否データが関連付けられていることとする。なお、図4~図6の例のいずれについても、他のプレイ画像については、すべて、値が0である画質優先要否データが関連付けられていることとする。
 IフレームはPフレームよりもデータサイズが大きい。そのため、図4、図5、及び、図6に示すように、第3フレームの画像データの送信時間は他のフレームについての画像データの送信時間よりも長くなっている。また、第3フレームのプレイ画像のエンコード時間も他のフレームのプレイ画像のエンコード時間より長くなっている。
 図4に示すものと図5に示すものとでは、レート制御の条件が異なっており、図5に示すものは図4に示すものより第3フレームの画像データのデータサイズが大きくなっている。そして、図5に示すものは図4に示すものより、第3フレームの画像データの送信時間が長くなっている。
 そのため、第3フレーム終了時点における上述の制御量と目標値との差は、図5に示すものの方が図4に示すものよりも大きい。そのため、後続のフレームについてのレート制御における圧縮率は図5に示すものの方が図4に示すものより高く決定される。そのため、第4フレーム、及び、第5フレームの画像データのデータサイズは、図5に示すものの方が図4に示すものよりも小さい。そして、図4に示すものと図5に示すもののいずれも、第7フレームにおいて、レイテンシが正常な状態に戻っている。
 また、本実施形態では例えば、同じプレイ画像であっても、当該プレイ画像に関連付けられている画質優先要否データの値が1である場合の方が0である場合よりも低い圧縮率でエンコード処理が実行される。そのため、プレイ画像に関連付けられている画質優先要否データの値が1である場合の方が0である場合よりもデコード後のプレイ画像の画質が高くなる。
 図6に示すものは、図4、及び、図5に示すものよりも、第3フレームの画像データのデータサイズが大きくなっている。この場合は、第3フレームにおけるオーバーシュートを許容している。そして、図6に示すものでは、第4フレームの画像データの欠落が発生している。そして、図6に示すものでは、第9フレームにおいて、レイテンシが正常な状態に戻っている。
 生成されるフレーム画像のなかには、例えば、シーンチェンジの発生直後のフレーム画像などのように、大きなオーバーシュートの発生を一時的に許容してでも画質を優先させたい画質優先画像が存在する。
 しかし、従来のレート制御では、このような画質優先画像を例外的に取り扱うことができなかった。
 本実施形態では、同じプレイ画像であっても、当該プレイ画像が画質優先画像である場合の方が画質優先画像でない場合よりも画像データのデータサイズが大きくなるようエンコード処理が実行される。そのため、本実施形態によれば、画質優先画像に適したレート制御を行うことができることとなる。
 以下、本実施形態に係るクラウドゲーミングシステム1の機能、及び、クラウドサーバ10で実行される処理について、さらに説明する。
 図7は、本実施形態に係るクラウドゲーミングシステム1で実装される機能の一例を示す機能ブロック図である。なお、本実施形態に係るクラウドゲーミングシステム1で、図7に示す機能のすべてが実装される必要はなく、また、図7に示す機能以外の機能(例えば、操作信号等に基づくゲーム処理の実行など)が実装されていても構わない。
 図7に示すように、本実施形態に係るクラウドサーバ10には、機能的には例えば、比較部20、画像生成部22、取得部24、判断部26、基本パラメータ値決定部28a、画質優先パラメータ値決定部28b、エンコード処理部30、送信部32、が含まれる。また、画像生成部22には、画質優先要否データ生成部22aが含まれる。
 比較部20は、プロセッサ10a及び記憶部10bを主として実装される。取得部24、エンコード処理部30は、エンコード・デコード部10dを主として実装される。画像生成部22、判断部26、基本パラメータ値決定部28a、画質優先パラメータ値決定部28bは、プロセッサ10aを主として実装される。送信部32は、通信部10cを主として実装される。
 以上の機能は、コンピュータであるクラウドサーバ10にインストールされた、以上の機能に対応する指令を含むプログラムをプロセッサ10aで実行することにより実装されている。このプログラムは、例えば、光ディスク、磁気ディスク、磁気テープ、光磁気ディスク、フラッシュメモリ等のコンピュータ読み取り可能な情報記憶媒体を介して、あるいは、インターネットなどを介してクラウドサーバ10に供給される。
 図7に示すように、本実施形態に係る端末12には、機能的には例えば、受信部40、受信バッファ42、デコード処理部44、表示制御部46、が含まれる。
 受信部40は、通信部12cを主として実装される。受信バッファ42は、記憶部12bを主として実装される。デコード処理部44は、エンコード・デコード部12dを主として実装される。表示制御部46は、プロセッサ12a及び表示部12fを主として実装される。
 以上の機能は、コンピュータである端末12にインストールされた、以上の機能に対応する指令を含むプログラムをプロセッサ12aで実行することにより実装されている。このプログラムは、例えば、光ディスク、磁気ディスク、磁気テープ、光磁気ディスク、フラッシュメモリ等のコンピュータ読み取り可能な情報記憶媒体を介して、あるいは、インターネットなどを介して端末12に供給される。
 比較部20は、本実施形態では例えば、上述の制御量と目標値とを比較する。例えば、比較部20は、制御量を示す制御量データと、目標値を示す目標値データと、を記憶する。そして、比較部20は、画像データが生成される度に、制御量データを更新する。ここでは例えば、上述のように制御量が累積データサイズである場合は、比較部20は、当該画像データのデータサイズの大きさだけ制御量データの値を増加させる。
 また、上述のように制御量が累積データサイズである場合など、目標値が時間の変数である場合は、比較部20は、現在時刻、あるいは、送信開始からの時間、などに基づいて、目標値データを適宜更新してもよい。例えば、所定の時間間隔で目標値データが更新されるようにしてもよい。
 画像生成部22は、本実施形態では例えば、フレーム画像を生成する。また、画像生成部22は、生成されたフレーム画像をフレームバッファに描画する。例えば、画像生成部22は、上述のプレイ画像を生成する。
 画質優先要否データ生成部22aは、本実施形態では例えば、画像生成部22が生成するフレーム画像が画質優先画像であるか否かを特定可能な画質優先要否データを生成して、当該画質優先要否データを当該フレーム画像に関連付ける。
 ここで、画質優先要否データ生成部22aが、連続したシーンの描写、又は、連続したゲームプレイが終わり、カメラカットが行われた直後のフレーム画像に、当該フレーム画像が画質優先画像であることが特定可能な画質優先要否データを関連付けてもよい。
 例えば、ある連続したシーンの描写(カメラワーク)が終わり、カメラカット(カメラ割り)が行われた直後のフレーム画像に値が1である画質優先要否データが関連付けられるようにしてもよい。
 例えば、レースゲームのプレイ中に、プレイヤがドライバー視点で車を運転している際には、値が0である画質優先要否データに関連付けられたフレーム画像が生成されるようにしてもよい。ここで仮にドライバーが縁石に車をぶつけるなどして視界が急変し、フレーム間の画像特徴量の変化が大きかったとしても、画質が落ちるものの低遅延性と表示される動画像の連続性(滑らかさ)は維持される。
 一方で、視点が観客席からのものに変わった際に、値が1である画質優先要否データに関連付けられたフレーム画像が生成されるようにしてもよい。こうすれば、シーンチェンジの直後のフレーム画像は高画質で表示される。また、当該フレームの直後のフレームのフレーム画像に基づいて生成される画像データが欠落してもユーザはそれほど気にならない。
 また例えば、ある連続したゲームプレイが終わり、カメラカット(カット割り)が行われた直後のフレーム画像に値が1である画質優先要否データが関連付けられるようにしてもよい。
 また、画質優先要否データ生成部22aが、ゲームにおけるステージが変化した直後のフレーム画像に、当該フレーム画像が画質優先画像であることが特定可能な画質優先要否データを関連付けてもよい。
 例えば、あるゲームにおいて、森の中を歩くステージが続いている間は、値が0である画質優先要否データに関連付けられたフレーム画像が生成されるようにしてもよい。その後、砂漠の中を歩くステージに変化した際に、値が1である画質優先要否データに関連付けられたフレーム画像が生成されるようにしてもよい。
 また、画質優先要否データ生成部22aが、連続したシーンの描画が終わり、フレーム画像の描画に用いられているアセットが切り替わった直後のフレーム画像に、当該フレーム画像が画質優先画像であることが特定可能な画質優先要否データを関連付けてもよい。
 また、例えば、ある連続したシーンの描画が終わり、フレーム画像の描画に用いられているアセット(3Dオブジェクトやテクスチャデータなど)が切り替わった直後のフレーム画像に値が1である画質優先要否データが関連付けられるようにしてもよい。
 また、画質優先要否データ生成部22aが、フレーム画像の描画に用いられる新たなアセットがメモリにロードされた直後のフレーム画像に、当該フレーム画像が画質優先画像であることが特定可能な画質優先要否データを関連付けてもよい。
 例えば、あるゲームにおいて、森の中を歩くステージの描画に必要なアセットがメモリに保持されている間は、値が0である画質優先要否データに関連付けられたフレーム画像が生成されるようにしてもよい。その後、砂漠の中を歩くステージの描画を行うためにアセットを入れ替える処理が実行されて、新たなアセットがメモリにロードされた際に、値が1である画質優先要否データに関連付けられたフレーム画像が生成されるようにしてもよい。なおこの場合、描画システムやゲームシステムのプログラムではなく、システムプログラムによって、アセットが入れ替えわったタイミングが特定されてもよい。そして、システムプログラムによって値が1である画質優先要否データがフレーム画像に関連付けられるようにしてもよい。
 取得部24は、本実施形態では例えば、フレームバッファに描画されたフレーム画像(上述の例ではプレイ画像)を順次取得する。本実施形態では上述のように、ユーザがゲームをプレイしている際に、直前のフレームからのシーンチェンジが発生したか否かに応じた画質優先要否データが関連付けられたフレーム画像が生成される。そして画質優先要否データが関連付けられたフレーム画像がフレームバッファに描画される。そして、取得部24は、画質優先要否データに関連付けられているフレーム画像を取得する。画質優先要否データが関連付けられたフレーム画像は、例えば、クラウドサーバ10に含まれるゲームプログラム等の描画プログラムによって生成される。なお、画質優先要否データが関連付けられたフレーム画像が、ゲームエンジンによって生成されてもよい。なお、画質優先要否データは、直前のフレームからのシーンチェンジが発生したか否かに応じたものである必要はなく、所定のロジックに基づいて画質優先要否データの値が決定されてもよい。
 また、取得部24は、仮想空間内に配置された仮想オブジェクトから仮想空間を見た様子を表すフレーム画像を取得してもよい。
 判断部26は、本実施形態では例えば、取得部24によって取得されるフレーム画像が画質優先画像であるか否かを判断する。判断部26は、例えば、フレーム画像に関連付けられている画質優先要否データに基づいて、当該フレーム画像が画質優先画像であるか否かを判断してもよい。判断部26は、例えば、フレーム画像に関連付けられている画質優先要否データの値が1である場合に、当該フレーム画像を画質優先画像であると判断してもよい。一方で、判断部26は、例えば、フレーム画像に関連付けられている画質優先要否データの値が0である場合に、当該フレーム画像は画質優先画像でないと判断してもよい。
 また、判断部26が、直前のフレームからのシーンチェンジが発生したか否かを判定してもよい。そして、判断部26は、直前のフレームからのシーンチェンジが発生したフレーム画像は画質優先画像であると判断し、そうでないフレーム画像は画質優先画像でないと判断してもよい。
 ここで上述のように、取得部24によって仮想空間内に配置された仮想オブジェクトから仮想空間を見た様子を表すフレーム画像が取得されてもよい。この場合に、判断部26は、当該仮想オブジェクトが直前のフレームから変化した直後のフレーム画像を画質優先画像と判断してもよい。
 また、判断部26が、フレーム画像の描画に用いられているアセットが切り替わった直後のフレーム画像を画質優先画像と判断してもよい。
 また、判断部26は、画質優先要否データに基づいて、直前のフレームからのシーンチェンジが発生したか否かを判定しなくてもよい。例えば、判断部26は、フレーム画像と当該フレーム画像の直前のフレームのフレーム画像との比較結果に基づいて、直前のフレームからのシーンチェンジが発生したか否かを判定してもよい。
 例えば、判断部26は、シーンの変化量を示す値が所定値よりも大きい場合は、直前のフレームからのシーンチェンジが発生したと判定し、そうでない場合は、直前のフレームからのシーンチェンジが発生していないと判定してもよい。
 ここで、シーンの変化量を示す値として、例えば、直前のフレーム画像と当該フレーム画像との相違度や類似度を示す指標値が用いられてもよい。例えば、Peak Signal to Noise Ratio(PSNR)やStructural Similarity(SSIM)が所定値よりも小さい場合は、シーンチェンジが発生していないと判定され、そうでない場合は、シーンチェンジが発生したと判定されてもよい。あるいは、シーンの変化量として、Motion Estimation(ME)変化量が用いられてもよい。例えば、ME変化量の値が所定値よりも大きい場合は、シーンチェンジが発生したと判定され、そうでない場合は、シーンチェンジが発生していないと判定されてもよい。あるいは、シーンの変化量を示す値として、直前のフレーム画像が表示されるタイミングと当該フレームのフレーム画像が表示されるタイミングとの間におけるオーディオが不連続である程度を示す値が用いられてもよい。例えば、当該値が所定値よりも大きい場合は、シーンチェンジが発生したと判定され、そうでない場合は、シーンチェンジが発生していないと判定されてもよい。
 また、所定の規則に基づき導出されるフレーム画像が表す内容を示すスコア値の変化量に基づいて、直前のフレームからのシーンチェンジが発生したか否かが判定されてもよい。例えば、シーンの切り替えタイミングか否か、フレームに表されている画像テクスチャの種類、特徴点の分布、奥行き情報、オブジェクトの量、3次元グラフィクスに用いているミップマップテクスチャの各レベルの使用量、LOD(Level Of Detail)、テッセレーションの各レベルの使用量、文字及び記号の量、表されるシーンの種類などの情報から算出されるスコア値の変化量に基づいて、シーンチェンジが発生したか否かが判定されてもよい。ここで例えば、空間的詳細度及び時間的詳細度の優先度を表すスコア値が算出されてもよい。
 基本パラメータ値決定部28aは、本実施形態では例えば、画質優先画像ではないフレーム画像について、当該フレーム画像の一部又は全部であるエンコード単位のエンコードに用いられるパラメータの値を決定する。
 画質優先パラメータ値決定部28bは、本実施形態では例えば、画質優先画像であるフレーム画像について、当該フレーム画像の一部又は全部であるエンコード単位のエンコードに用いられるパラメータの値を決定する。
 上述のように例えば、量子化パラメータ(QP)、ビット深度、画像解像度などのパラメータの値が決定される。なお、当該パラメータの値に、生成される画像データのフレーム種類(例えば、IフレームであるかPフレームであるかなど)を示す値が含まれていてもよい。
 また、基本パラメータ値決定部28aは、制御量と目標値との差を所定の制御規則に適用することにより、パラメータの値を決定してもよい。
 また、画質優先パラメータ値決定部28bは、フレーム画像のエンコード単位に用いられるパラメータの値として、制御量と目標値との差を上述の所定の制御規則に適用することにより決定される値よりも、生成される画像データのデータサイズが大きくなる値を決定してもよい。画質優先パラメータ値決定部28bは、例えば、フレーム画像のエンコード単位に用いられるパラメータの値として、制御量と目標値との差を上述の所定の制御規則に適用することにより決定される値よりも、生成される画像データの圧縮率が小さくなる値を決定してもよい。そして、決定される圧縮率に対応するパラメータの値が決定されてもよい。
 また、画質優先パラメータ値決定部28bは、制御量と目標値との差よりも小さな値を上述の所定の制御規則に適用する場合に相当する、フレーム画像のエンコード単位に用いられるパラメータの値を決定してもよい。
 本実施形態において、画質優先画像の次のフレーム画像については、基本パラメータ値決定部28aが、制御量と目標値との差を上述の所定の制御規則に適用することにより当該フレーム画像のエンコード単位に用いられるパラメータの値を決定してもよい。この場合、当該画質優先画像によって変化する制御量は、当該画質優先画像の次のフレーム画像に係るパラメータ値の決定に引き継がれることとなる。画像データのデータサイズやレイテンシの長さがオーバーシュートした状態が引き継がれるので、当該画質優先画像の次のフレーム画像に係るパラメータ値の決定では、このオーバーシュートを収束させる処理が実行されることとなる。
 また、基本パラメータ値決定部28aは、画質優先画像の次のフレーム画像については、制御量と目標値との差を上述の所定の制御規則に適用することにより決定される値よりも、生成される画像データのデータサイズが小さくなる値を決定してもよい。例えば、画質優先画像の次のフレーム画像については、制御量と目標値との差を上述の所定の制御規則に適用することにより決定される値よりも、生成される画像データの圧縮率が大きくなる値を決定してもよい。そして、決定される圧縮率に対応するパラメータの値が決定されてもよい。
 また、基本パラメータ値決定部28a、又は、画質優先パラメータ値決定部28bの少なくとも一方は、例えば、現時点のコンピュータネットワーク14の転送可能帯域に基づいて、パラメータの値を決定してもよい。例えば転送可能帯域を示す値が大きいほど低い圧縮率が決定されてもよい。転送可能帯域に余裕がある場合は、圧縮率が低くてもそれほど問題とはならないと考えられる。また、転送可能帯域が充分あれば、当該フレームより後のフレーム画像のエンコードのスキップを省略可能であるため、この観点からも、転送可能帯域に余裕がある場合は、圧縮率が低くてもそれほど問題とはならない。
 また、基本パラメータ値決定部28a、又は、画質優先パラメータ値決定部28bの少なくとも一方は、過去の単位時間あたりに画像データの欠落が発生した回数、又は、過去の単位時間あたりにIフレームが生成された回数のうちの少なくとも1つにさらに基づいて、パラメータの値を決定してもよい。例えば、直近の所定時間について単位時間あたりに画像データの欠落が発生した回数が多いほど高い圧縮率が決定されてもよい。また、直近の所定時間について単位時間あたりにIフレームが生成された回数が多いほど高い圧縮率が決定されてもよい。
 転送帯域が不十分な状況でIフレームの転送回数が増えると、転送量過多による意図しないデータ欠落、あるいは、意図的なIフレーム後の画像データの送信のスキップの、いずれかにより、フレームレートが不連続となる。その結果、端末12における動画像の再生におけるスムースネスが低下し、ユーザ体験が悪化してしまう。このような場合に、シーンの変化量が大きくても、圧縮率を高くすることによってフレームレートのスムースネスを確保することを優先させてもよい。
 また、基本パラメータ値決定部28a、又は、画質優先パラメータ値決定部28bの少なくとも一方は、深層学習などの機械学習モデルを用いて、パラメータの値を決定してもよい。
 また、基本パラメータ値決定部28a、又は、画質優先パラメータ値決定部28bの少なくとも一方は、以上で挙げたもののうちのいくつかあるいはすべてを組み合わせて、その総合的な評価値に基づいて、パラメータの値を決定してもよい。
 上述の制御量は、累積データサイズには限定されない。例えば、制御量は、単位時間あたりに生成される画像データのデータサイズであってもよい。また、上述のレイテンシの長さが制御量であってもよい。ここで、レイテンシの長さとは、例えば、上述のように、フレーム画像のエンコードの開始タイミングから当該フレーム画像に基づいて生成される画像データの送信終了タイミングまでの時間の長さを指す。
 また、本実施形態に係るレート制御において、PID制御であるフィードバック制御が実行されてもよい。この場合、画質優先パラメータ値決定部28bは、基本パラメータ値決定部28aによる決定よりもPID制御における比例制御又は微分制御の少なくとも一方のゲインを抑制することで、フレーム画像のエンコード単位に用いられるパラメータの値を決定してもよい。
 また、画質優先パラメータ値決定部28bは、基本パラメータ値決定部28aよりも長い時間間隔で、制御量と目標値との差に基づいてパラメータの値を決定してもよい。例えば、画質優先パラメータ値決定部28bはフレーム画像単位で制御量と目標値との差に基づくパラメータの値の決定を行い、基本パラメータ値決定部28aは、スライス単位で制御量と目標値との差に基づくパラメータの値の決定を行ってもよい。このように、画質優先パラメータ値決定部28bによるパラメータの値の決定におけるフィードバック制御の時間粒度を粗くすることで、わざとオーバーシュートが起きる状態を作り出すことができる。
 エンコード処理部30は、本実施形態では例えば、上述のエンコード単位に対して、基本パラメータ値決定部28a又は画質優先パラメータ値決定部28bにより決定されるパラメータの値に基づくエンコードを実行することで画像データを生成する。
 また、エンコード処理部30は、画質優先画像の次のフレーム画像のエンコードをスキップしてもよい。
 ここで、エンコード処理部30は、画質優先画像をエンコードすることで生成される画像データのデータサイズに基づいて、フレームスキップ数を決定してもよい。例えば、当該データサイズが大きいほど大きな数のフレームスキップ数が決定されてもよい。そして決定されるフレームスキップ数だけ、画質優先画像に後続するフレーム画像のエンコードをスキップしてもよい。
 本実施形態において、エンコードのスキップに係る制御(フレームドロップ制御)が、レート制御によってなされてもよい。例えば、画質優先画像については、大きなオーバーシュートが許容されるようなパラメータの値が決定され、通常よりも画像データのデータサイズが大きくなるようにしてもよい。そしてこのことに基づいて、レート制御において、フレームスキップ数が決定されるようにして、オーバーシュートが収束されるようにしてもよい。
 また、エンコード処理部30は、基本パラメータ値決定部28a、又は、画質優先パラメータ値決定部28bによって決定される、生成される画像データのフレーム種類を示す値に従って、画像データを生成してもよい。例えば、フレーム種類を示す値がIフレームに対応する値である場合は、Iフレームが生成され、フレーム種類を示す値がPフレームに対応する値である場合は、Pフレームが生成されるようにしてもよい。
 また、エンコード処理部30は、画質優先画像であるフレーム画像をIフレームにエンコードしてもよい。例えば、画質優先画像であるフレーム画像は、必ず、あるいは、優先的に、Iフレームにエンコードされるようにしてもよい。エンコード処理部30は、例えば、判断部26によって画質優先画像であると判断されるフレーム画像をIフレームにエンコードしてもよい。
 また、エンコード処理部30は、画質優先画像ではないフレーム画像には、グラデュアルデコーダリフレッシュ(GDR)の技術を用いたエンコードを実行してもよい。
 送信部32は、本実施形態では例えば、エンコード処理部30により生成される画像データを端末12に送信する。ここで送信部32が、コンピュータネットワーク14の通信状況を監視することで、転送可能帯域を特定してもよい。そして、送信部32が、特定される転送可能帯域に応じたデータレートで画像データを端末12に送信してもよい。
 また、本実施形態において、画像生成部22が、仮想空間内に配置された仮想オブジェクトから当該仮想空間を見た様子を表す描画中間データ(例えば、仮想空間を表す3次元モデルのデータの当該仮想空間における配置情報)に基づいてフレーム画像を生成してもよい。
 そして、画質優先要否データ生成部22aが、仮想空間を見る主体である仮想オブジェクトが直前のフレームから変化した直後の描画中間データに基づいて画像生成部22により生成されるフレーム画像に、当該フレーム画像が画質優先画像であることが特定可能な画質優先要否データを関連付けてもよい。
 そして、判断部26が、仮想空間を見る主体である仮想オブジェクトが直前のフレームから変化した直後の描画中間データに基づいて画像生成部22により生成されるフレーム画像を画質優先画像であると判断してもよい。例えば、判断部26は、画質優先要否データ生成部22aによって上述の描画中間データに基づいて値が1である画質優先要否データが関連付けられたフレーム画像を画質優先画像であると判断してもよい。
 また、画質優先要否データ生成部22aが、描画中間データに基づいて、仮想空間を見る主体である仮想オブジェクトが直前のフレームから変化したか否かを判断しなくてもよい。そしてこの場合に、判断部26が、仮想空間内に配置された仮想オブジェクトから当該仮想空間を見た様子を表す描画中間データに基づいて、当該描画中間データに基づいて生成されるフレーム画像が画質優先画像であるか否かを判断してもよい。例えば、判断部26が、描画中間データに基づいて、仮想空間を見る主体である仮想オブジェクトが直前のフレームから変化したか否かを判断してもよい。そして、仮想空間を見る主体である仮想オブジェクトが直前のフレームから変化したと判断されるフレームのフレーム画像を画質優先画像であると判断してもよい。
 受信部40は、本実施形態では例えば、画像データを送信装置から受信する。
 受信バッファ42は、本実施形態では例えば、受信部40が受信する画像データを記憶する。
 デコード処理部44は、本実施形態では例えば、受信バッファ42に記憶される画像データをデコードすることによりプレイ画像を生成する。
 表示制御部46は、本実施形態では例えば、デコード処理部44により生成されるプレイ画像を表示させる。
 ここで、本実施形態に係るクラウドサーバ10において実行される処理の流れの一例を、図8に例示するフロー図を参照しながら説明する。図8に示すS101~S110に示す処理は繰り返し実行される。図8に示すS101~S110に示す処理は、基本的には、固定あるいは可変のフレームレートで繰り返し実行される。なお、本処理例では、比較部20は、所定の時間間隔で、比較部20に記憶されている目標値データを更新していることとする。
 まず、取得部24が、フレームバッファに描画された当該フレームのフレーム画像を取得する(S101)。
 そして、判断部26が、S101に示す処理で取得されたフレーム画像が画質優先画像であるか否かを判断する(S102)。
 S102に示す処理で画質優先画像であると判断されると(S102:Y)、判断部26は、画質優先パラメータ値決定部28bを、本ループにおけるパラメータ値決定部として選択する(S103)。
 S102に示す処理で画質優先画像ではないと判断されると(S102:N)、判断部26は、基本パラメータ値決定部28aを、本ループにおけるパラメータ値決定部として選択する(S104)。
 そして、エンコード処理部30が、S101に示す処理で取得されたフレーム画像に含まれる複数のスライスのうち、S106~S109に示す処理が実行されていないものを1つ選択する(S105)。
 そして、S103又はS104に示す処理で選択された、本ループにおけるパラメータ値決定部が、S105に示す処理で選択されたスライスのエンコード処理に用いられるパラメータの値を決定する(S106)。例えば、制御量と目標値との差、及び、S101に示す処理で取得されたフレーム画像の特徴(例えば、直前のフレームからの動きの大きさ等)、などに基づいて、パラメータの値が決定される。
 ここで、例えば、比較部20に記憶されている制御量データと目標値データとに基づいて、制御量と目標値との差が特定されてもよい。
 また、S106に示す処理で、圧縮率が決定されてもよい。そして、決定された圧縮率に基づいて、各種のパラメータの値が決定されてもよい。
 そして、エンコード処理部30が、S106に示す処理で決定されたパラメータの値に基づいて、S105に示す処理で選択されたスライスをエンコードすることで、当該スライスに対応する画像データを生成する(S107)。
 そして、送信部32が、S107に示す処理で生成された画像データを端末12に送信する(S108)。
 そして、比較部20が、比較部20に記憶されている制御量データを更新する(S109)。ここでは比較部20は、例えば、S107に示す処理で生成された画像データのデータサイズを示す値だけ制御量データの値を増加させる。
 そして、送信部32が、S101に示す処理で取得されたフレーム画像に含まれるすべてのスライスに対応する画像データを送信したか否かを確認する(S110)。
 すべてのスライスに対応する画像データが送信されていない場合は(S110:N)、S105に示す処理に戻る。
 すべてのスライスに対応する画像データが送信された場合は(S110:Y)、S101に示す処理に戻る。
 上述の処理例において、S102に示す処理で画質優先画像ではないと判断された場合には、S105~S109に示すスライス単位でのフィードバック制御の代わりに、フレーム画像単位でフィードバック制御が実行されてもよい。
 この場合は、例えば、基本パラメータ値決定部28aが、S101に示す処理で取得されたフレーム画像のエンコード処理に用いられるパラメータの値を決定してもよい。
 そして、エンコード処理部30が、決定されるパラメータの値に基づいて、S101に示す処理で取得されたフレーム画像をエンコードすることで、画像データを生成してもよい。
 そして、送信部32が、生成された画像データを端末12に送信してもよい。
 そして、比較部20が、比較部20に記憶されている制御量データを更新して、S101に示す処理に戻ってもよい。
 なお、本発明は上述の実施形態に限定されるものではない。
 また、本発明の適用範囲は、クラウドゲーミングシステム1には限定されない。例えば、家庭内に配置されたサーバと、家庭内ネットワーク、公衆ネットワーク、携帯電話のキャリアネットワークなどを介して当該サーバと接続される端末と、を含むゲームシステムにも、本発明は適用可能である。すなわち、コンピュータネットワーク14は、家庭内ネットワーク、公衆ネットワーク、携帯電話のキャリアネットワークなどであってもよい。また、当該サーバと当該端末とは有線で接続されていても無線で接続されていてもよい。
 また、本発明が適用されるゲームの内容は特に限定されず、例えば、仮想現実(VR)や拡張現実(AR)を用いたゲームを実行するゲームシステムにも本発明は適用可能である。
 また、本発明の適用範囲はゲームには限定されず、上述のクラウドサーバ10に相当する送信装置から動画像が送信される場面において一般的に本発明は適用可能である。
 また、上記の具体的な文字列や数値及び図面中の具体的な文字列や数値は例示であり、これらの文字列や数値には限定されない。

Claims (26)

  1.  フレームバッファに描画されたフレーム画像を順次取得する取得部と、
     前記フレーム画像が画質優先画像であるか否かを判断する判断部と、
     前記画質優先画像ではない前記フレーム画像について、当該フレーム画像の一部又は全部であるエンコード単位のエンコードに用いられるパラメータの値を、制御量と目標値との差を所定の制御規則に適用することにより決定する基本パラメータ値決定部と、
     前記画質優先画像である前記フレーム画像について、当該フレーム画像の前記エンコード単位に用いられるパラメータの値を決定する画質優先パラメータ値決定部と、
     前記エンコード単位に対して、前記基本パラメータ値決定部又は前記画質優先パラメータ値決定部により決定される前記パラメータの値に基づくエンコードを実行することで画像データを生成するエンコード処理部と、
     前記画像データを送信する送信部と、を含み、
     前記画質優先パラメータ値決定部は、前記フレーム画像の前記エンコード単位に用いられるパラメータの値として、前記制御量と前記目標値との差を前記所定の制御規則に適用することにより決定される値よりも、生成される前記画像データのデータサイズが大きくなる値を決定する、
     ことを特徴とする送信装置。
  2.  前記エンコード処理部は、前記画質優先画像の次のフレーム画像のエンコードをスキップする、
     ことを特徴とする請求項1に記載の送信装置。
  3.  前記エンコード処理部は、前記画質優先画像をエンコードすることで生成される前記画像データのデータサイズに基づいて、フレームスキップ数を決定し、
     前記エンコード処理部は、前記フレームスキップ数だけ、前記画質優先画像に後続するフレーム画像のエンコードをスキップする、
     ことを特徴とする請求項1に記載の送信装置。
  4.  前記画質優先画像の次のフレーム画像については、前記基本パラメータ値決定部が、前記制御量と前記目標値との差を前記所定の制御規則に適用することにより当該フレーム画像の前記エンコード単位に用いられるパラメータの値を決定する、
     ことを特徴とする請求項1に記載の送信装置。
  5.  前記基本パラメータ値決定部は、前記画質優先画像の次のフレーム画像については、前記制御量と前記目標値との差を前記所定の制御規則に適用することにより決定される値よりも、生成される前記画像データのデータサイズが小さくなる値を、前記パラメータの値に決定する、
     ことを特徴とする請求項1に記載の送信装置。
  6.  前記取得部は、前記フレーム画像が前記画質優先画像であるか否かを特定可能な画質優先要否データに関連付けられている前記フレーム画像を取得し、
     前記判断部は、前記フレーム画像に関連付けられている前記画質優先要否データに基づいて、当該フレーム画像が前記画質優先画像であるか否かを判断する、
     ことを特徴とする請求項1から5のいずれか一項に記載の送信装置。
  7.  前記画質優先要否データを生成して、当該画質優先要否データを前記フレーム画像に関連付ける画質優先要否データ生成部、をさらに含む、
     ことを特徴とする請求項6に記載の送信装置。
  8.  前記画質優先要否データ生成部は、連続したシーンの描写、又は、連続したゲームプレイが終わり、カメラカットが行われた直後のフレーム画像に、当該フレーム画像が前記画質優先画像であることが特定可能な前記画質優先要否データを関連付ける、
     ことを特徴とする請求項7に記載の送信装置。
  9.  前記画質優先要否データ生成部は、ゲームにおけるステージが変化した直後のフレーム画像に、当該フレーム画像が前記画質優先画像であることが特定可能な前記画質優先要否データを関連付ける、
     ことを特徴とする請求項7に記載の送信装置。
  10.  前記画質優先要否データ生成部は、連続したシーンの描画が終わり、フレーム画像の描画に用いられているアセットが切り替わった直後のフレーム画像に、当該フレーム画像が前記画質優先画像であることが特定可能な前記画質優先要否データを関連付ける、
     ことを特徴とする請求項7に記載の送信装置。
  11.  前記画質優先要否データ生成部は、フレーム画像の描画に用いられる新たなアセットがメモリにロードされた直後のフレーム画像に、当該フレーム画像が前記画質優先画像であることが特定可能な前記画質優先要否データを関連付ける、
     ことを特徴とする請求項7に記載の送信装置。
  12.  前記判断部は、直前のフレームからのシーンチェンジが発生した前記フレーム画像は前記画質優先画像であると判断する、
     ことを特徴とする請求項1から6のいずれか一項に記載の送信装置。
  13.  前記取得部は、仮想空間内に配置された仮想オブジェクトから前記仮想空間を見た様子を表す前記フレーム画像を取得し、
     前記判断部は、前記仮想オブジェクトが直前のフレームから変化した直後の前記フレーム画像を前記画質優先画像と判断する、
     ことを特徴とする請求項1から6のいずれか一項に記載の送信装置。
  14.  仮想空間内に配置された仮想オブジェクトから前記仮想空間を見た様子を表す描画中間データに基づいて前記フレーム画像を生成する画像生成部、をさらに含み、
     前記判断部は、前記仮想オブジェクトが直前のフレームから変化した直後の前記描画中間データに基づいて前記画像生成部により生成される前記フレーム画像を前記画質優先画像と判断する、
     ことを特徴とする請求項1から6のいずれか一項に記載の送信装置。
  15.  前記判断部は、前記フレーム画像の描画に用いられているアセットが切り替わった直後の前記フレーム画像を前記画質優先画像と判断する、
     ことを特徴とする請求項1から6のいずれか一項に記載の送信装置。
  16.  前記判断部は、前記フレーム画像と当該フレーム画像の直前のフレームのフレーム画像との比較結果に基づいて、当該フレーム画像が前記画質優先画像であるか否かを判断する、
     ことを特徴とする請求項1から6のいずれか一項に記載の送信装置。
  17.  前記エンコード処理部は、前記画質優先画像である前記フレーム画像をIフレームにエンコードする、
     ことを特徴とする請求項1から16のいずれか一項に記載の送信装置。
  18.  前記画質優先パラメータ値決定部は、前記フレーム画像の前記エンコード単位に用いられるパラメータの値として、前記制御量と前記目標値との差を前記所定の制御規則に適用することにより決定される値よりも、生成される前記画像データの圧縮率が小さくなる値を決定する、
     ことを特徴とする請求項1から16のいずれか一項に記載の送信装置。
  19.  前記エンコード処理部は、前記画質優先画像ではない前記フレーム画像には、グラデュアルデコーダリフレッシュ(GDR)の技術を用いたエンコードを実行する、
     ことを特徴とする請求項1から16のいずれか一項に記載の送信装置。
  20.  前記制御量は、前記画像データのデータサイズ、又は、前記フレーム画像のエンコードの開始タイミングから当該フレーム画像に基づいて生成される前記画像データの送信終了タイミングまでの時間の長さである、
     ことを特徴とする請求項1から19のいずれか一項に記載の送信装置。
  21.  前記画質優先パラメータ値決定部は、前記制御量と前記目標値との差よりも小さな値を前記所定の制御規則に適用した場合に相当する、前記フレーム画像の前記エンコード単位に用いられるパラメータの値を決定する、
     ことを特徴とする請求項1から19のいずれか一項に記載の送信装置。
  22.  前記基本パラメータ値決定部及び前記画質優先パラメータ値決定部は、PID制御を行うことにより前記エンコード単位に用いられるパラメータの値を決定し、
     前記画質優先パラメータ値決定部は、前記基本パラメータ値決定部による決定よりもPID制御における比例制御又は微分制御の少なくとも一方のゲインを抑制することで、前記フレーム画像の前記エンコード単位に用いられるパラメータの値を決定する、
     ことを特徴とする請求項1から19のいずれか一項に記載の送信装置。
  23.  前記画質優先パラメータ値決定部は、前記基本パラメータ値決定部よりも長い時間間隔で、前記制御量と前記目標値との差に基づいて前記パラメータの値を決定する、
     ことを特徴とする請求項1から22のいずれか一項に記載の送信装置。
  24.  前記基本パラメータ値決定部又は前記画質優先パラメータ値決定部は、過去の単位時間あたりに前記画像データの欠落が発生した回数、又は、過去の単位時間あたりにIフレームが生成された回数のうちの少なくとも1つにさらに基づいて、前記パラメータの値を決定する、
     ことを特徴とする請求項1から23のいずれか一項に記載の送信装置。
  25.  フレームバッファに描画されたフレーム画像を順次取得する取得ステップと、
     前記フレーム画像が画質優先画像であるか否かを判断する判断ステップと、
     前記画質優先画像ではない前記フレーム画像について、当該フレーム画像の一部又は全部であるエンコード単位のエンコードに用いられるパラメータの値を、制御量と目標値との差を所定の制御規則に適用することにより決定する基本パラメータ値決定ステップと、
     前記画質優先画像である前記フレーム画像について、当該フレーム画像の前記エンコード単位に用いられるパラメータの値を決定する画質優先パラメータ値決定ステップと、
     前記エンコード単位に対して、前記基本パラメータ値決定ステップ又は前記画質優先パラメータ値決定ステップで決定される前記パラメータの値に基づくエンコードを実行することで画像データを生成するエンコード処理ステップと、
     前記画像データを送信する送信ステップと、を含み、
     前記画質優先パラメータ値決定ステップでは、前記フレーム画像の前記エンコード単位に用いられるパラメータの値として、前記制御量と前記目標値との差を前記所定の制御規則に適用することにより決定される値よりも、生成される前記画像データのデータサイズが大きくなる値を決定する、
     ことを特徴とする送信方法。
  26.  フレームバッファに描画されたフレーム画像を順次取得する取得手順、
     前記フレーム画像が画質優先画像であるか否かを判断する判断手順、
     前記画質優先画像ではない前記フレーム画像について、当該フレーム画像の一部又は全部であるエンコード単位のエンコードに用いられるパラメータの値を、制御量と目標値との差を所定の制御規則に適用することにより決定する基本パラメータ値決定手順、
     前記画質優先画像である前記フレーム画像について、当該フレーム画像の前記エンコード単位に用いられるパラメータの値を決定する画質優先パラメータ値決定手順、
     前記エンコード単位に対して、前記基本パラメータ値決定手順又は前記画質優先パラメータ値決定手順で決定される前記パラメータの値に基づくエンコードを実行することで画像データを生成するエンコード処理手順、
     前記画像データを送信する送信手順、をコンピュータに実行させ、
     前記画質優先パラメータ値決定手順では、前記フレーム画像の前記エンコード単位に用いられるパラメータの値として、前記制御量と前記目標値との差を前記所定の制御規則に適用することにより決定される値よりも、生成される前記画像データのデータサイズが大きくなる値を決定する、
     ことを特徴とするプログラム。
PCT/JP2021/012312 2020-03-31 2021-03-24 送信装置、送信方法及びプログラム WO2021200492A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US17/914,075 US20230121046A1 (en) 2020-03-31 2021-03-24 Transmission device, transmission method, and program
JP2022512034A JP7444971B2 (ja) 2020-03-31 2021-03-24 送信装置、送信方法及びプログラム

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2020-063853 2020-03-31
JP2020063853 2020-03-31

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/704,646 Continuation US11678569B2 (en) 2020-03-31 2022-03-25 Compound, material for organic electroluminescent elements, organic electroluminescent element, and electronic device

Publications (1)

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

Family

ID=77928765

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/012312 WO2021200492A1 (ja) 2020-03-31 2021-03-24 送信装置、送信方法及びプログラム

Country Status (3)

Country Link
US (1) US20230121046A1 (ja)
JP (1) JP7444971B2 (ja)
WO (1) WO2021200492A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024086483A1 (en) * 2022-10-18 2024-04-25 Sony Interactive Entertainment Inc. Metering bits in video encoder to achieve targeted data rate and video quality level

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0870458A (ja) * 1994-08-29 1996-03-12 Sanyo Electric Co Ltd 符号量制御方法
JP2001251629A (ja) * 2000-03-06 2001-09-14 Kddi Corp シーン特性検出型動画像符号化装置
JP2001309383A (ja) * 2000-04-18 2001-11-02 Matsushita Electric Ind Co Ltd 画像符号化装置および方法
JP2004015351A (ja) * 2002-06-05 2004-01-15 Sony Corp 符号化装置及び方法、プログラム、記録媒体
JP2007124580A (ja) * 2005-10-31 2007-05-17 Fujitsu Ltd 動画像符号化プログラム、プログラム記憶媒体、および符号化装置。
JP2015197805A (ja) * 2014-04-01 2015-11-09 株式会社ソニー・コンピュータエンタテインメント プロセッシングシステムおよびマルチプロセッシングシステム
JP2018532444A (ja) * 2015-08-19 2018-11-08 ソニー インタラクティブ エンタテインメント アメリカ リミテッド ライアビリテイ カンパニー クラウド移行によるローカルアプリケーションのクイックスタート
WO2019033877A1 (zh) * 2017-08-17 2019-02-21 腾讯科技(深圳)有限公司 一种视频帧编码方法、终端及存储介质

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5801614B2 (ja) * 2011-06-09 2015-10-28 キヤノン株式会社 画像処理装置、画像処理方法
US8908007B2 (en) * 2011-07-15 2014-12-09 Panasonic Corporation Transmission device and transmission method
JP6225446B2 (ja) * 2013-03-26 2017-11-08 富士通株式会社 動画像データ配信装置、方法、プログラム、及びシステム
US9923830B2 (en) * 2013-04-18 2018-03-20 Samsung Electronics Co., Ltd. Method and apparatus for controlling media delivery in multimedia transport network
US9591316B2 (en) * 2014-03-27 2017-03-07 Intel IP Corporation Scalable video encoding rate adaptation based on perceived quality
JP6398569B2 (ja) * 2014-10-07 2018-10-03 株式会社ソシオネクスト 画像符号化装置、画像符号化方法および画像符号化プログラム
US9704270B1 (en) * 2015-07-30 2017-07-11 Teradici Corporation Method and apparatus for rasterizing and encoding vector graphics
WO2018006771A1 (en) * 2016-07-05 2018-01-11 Vishare Technology Limited Methods and systems for video streaming
JP6991733B2 (ja) * 2017-04-28 2022-01-12 キヤノン株式会社 制御装置、制御方法、及びプログラム

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0870458A (ja) * 1994-08-29 1996-03-12 Sanyo Electric Co Ltd 符号量制御方法
JP2001251629A (ja) * 2000-03-06 2001-09-14 Kddi Corp シーン特性検出型動画像符号化装置
JP2001309383A (ja) * 2000-04-18 2001-11-02 Matsushita Electric Ind Co Ltd 画像符号化装置および方法
JP2004015351A (ja) * 2002-06-05 2004-01-15 Sony Corp 符号化装置及び方法、プログラム、記録媒体
JP2007124580A (ja) * 2005-10-31 2007-05-17 Fujitsu Ltd 動画像符号化プログラム、プログラム記憶媒体、および符号化装置。
JP2015197805A (ja) * 2014-04-01 2015-11-09 株式会社ソニー・コンピュータエンタテインメント プロセッシングシステムおよびマルチプロセッシングシステム
JP2018532444A (ja) * 2015-08-19 2018-11-08 ソニー インタラクティブ エンタテインメント アメリカ リミテッド ライアビリテイ カンパニー クラウド移行によるローカルアプリケーションのクイックスタート
WO2019033877A1 (zh) * 2017-08-17 2019-02-21 腾讯科技(深圳)有限公司 一种视频帧编码方法、终端及存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024086483A1 (en) * 2022-10-18 2024-04-25 Sony Interactive Entertainment Inc. Metering bits in video encoder to achieve targeted data rate and video quality level

Also Published As

Publication number Publication date
JPWO2021200492A1 (ja) 2021-10-07
JP7444971B2 (ja) 2024-03-06
US20230121046A1 (en) 2023-04-20

Similar Documents

Publication Publication Date Title
US11229843B2 (en) Video recording and playback systems and methods
JP6310073B2 (ja) 描画システム、制御方法、及び記憶媒体
JP6232423B2 (ja) 情報処理装置、描画装置、方法及びプログラム
TW201501761A (zh) 以遊戲者之注意區域爲基礎改善視訊串流的速率控制位元分配
CN105264502A (zh) 输出数据提供服务器和输出数据提供方法
US20210275908A1 (en) Adapting encoder resource allocation based on scene engagement information
WO2021200492A1 (ja) 送信装置、送信方法及びプログラム
US20160271495A1 (en) Method and system of creating and encoding video game screen images for transmission over a network
WO2021044974A1 (ja) 送信装置、受信装置、送信方法、受信方法及びプログラム
US20230164330A1 (en) Data codec method and apparatus
US11984059B2 (en) Display control apparatus, transmission apparatus, display control method, and program
WO2023033833A1 (en) A multi-try encoding operation for streaming applications
CA2798066A1 (en) Method and system of creating and encoding video game screen images for transmission over a network
JPWO2020194957A1 (ja) 画像送受信システム、画像送信装置、画像受信装置、画像送受信方法及びプログラム

Legal Events

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

Ref document number: 21779393

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2022512034

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 21779393

Country of ref document: EP

Kind code of ref document: A1