WO2021140768A1 - 送信装置、送信方法 - Google Patents
送信装置、送信方法 Download PDFInfo
- Publication number
- WO2021140768A1 WO2021140768A1 PCT/JP2020/043894 JP2020043894W WO2021140768A1 WO 2021140768 A1 WO2021140768 A1 WO 2021140768A1 JP 2020043894 W JP2020043894 W JP 2020043894W WO 2021140768 A1 WO2021140768 A1 WO 2021140768A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- frame
- video encoder
- transmission
- frame data
- rate
- Prior art date
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 379
- 238000000034 method Methods 0.000 title claims description 47
- 238000012545 processing Methods 0.000 claims abstract description 216
- 230000009467 reduction Effects 0.000 claims abstract description 157
- 238000011946 reduction process Methods 0.000 claims abstract description 39
- 230000008859 change Effects 0.000 claims description 45
- 230000008569 process Effects 0.000 claims description 37
- 230000004044 response Effects 0.000 claims description 29
- 238000002834 transmittance Methods 0.000 abstract 2
- 238000005516 engineering process Methods 0.000 description 23
- 238000003384 imaging method Methods 0.000 description 15
- 230000006835 compression Effects 0.000 description 13
- 238000007906 compression Methods 0.000 description 13
- 238000004891 communication Methods 0.000 description 10
- 230000007423 decrease Effects 0.000 description 9
- 230000006870 function Effects 0.000 description 6
- 230000000875 corresponding effect Effects 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 4
- 230000000052 comparative effect Effects 0.000 description 4
- 238000012508 change request Methods 0.000 description 3
- 230000003111 delayed effect Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000007789 sealing Methods 0.000 description 3
- 238000005401 electroluminescence Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000006866 deterioration Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000003090 exacerbative effect Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/146—Data rate or code amount at the encoder output
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/115—Selection of the code volume for a coding unit prior to coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/132—Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/136—Incoming video signal characteristics or properties
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/164—Feedback from the receiver or from the transmission channel
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/172—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/436—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/587—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal sub-sampling or interpolation, e.g. decimation or subsequent interpolation of pictures in a video sequence
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/24—Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
- H04N21/2402—Monitoring of the downstream path of the transmission network, e.g. bandwidth available
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/266—Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
- H04N21/2662—Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
Definitions
- This technology relates to a transmission device and a transmission method, and particularly to a technical field related to improvement of transmission delay of a video stream.
- Patent Document 1 discloses a technique for ensuring reproduction and stable transmission with sufficient image quality on the receiving side even if the transmission rate is lowered.
- an object of the present disclosure is to improve the transmission delay when the transmission rate is lowered.
- the transmission device has a video encoder that encodes each frame data of an image, and during transmission processing of the image data encoded by the video encoder, rate reduction control is performed on the encoding rate of the video encoder, and the transmission rate is controlled.
- a transmission processing unit is provided so that a delay reduction process for reducing the delay amount of transmission data is executed for frame data of one or a plurality of target frames. For example, when transmission delay or packet loss occurs due to network congestion in image data transmission such as video streaming, the transmission rate is lowered to deal with it, and some frame data of the image data to be transmitted is discarded. The delay reduction process is executed so that the delay does not occur (or at least the delay is reduced).
- the "frame data" refers to image data in units of one frame.
- the transmission processing unit transmits an encoding rate reduction request and the number of frames subject to delay reduction processing to the video encoder, and the video encoder requests the encoding rate reduction. It is conceivable to reduce the encoder rate accordingly and, as the delay reduction process, perform a process of preventing the frame data of the target number of frames from being output to the transmission processing unit. That is, the delay reduction process is executed on the video encoder side. For example, when the encoding rate is lowered in the video encoder, the frame data of the specified target number of frames is discarded in the video encoder so as not to be output to the transmission processing unit.
- the video encoder performs a process of discarding the input frame data for the specified number of target frames without encoding as the delay reduction process.
- the video encoder discards the frame data of the target number of frames input after that without encoding as it is, and as a result, the encoded frame data is supplied to the transmission processing unit. Prevent it from being done.
- the video encoder is a frame before the target frame of the delay reduction processing for the frame data to be first output to the transmission processing unit after the target frame of the delay reduction processing. Therefore, it is conceivable to perform encoding using the frame data output to the transmission processing unit as a reference destination for interframe reference.
- the video encoder is H. 264 standard and H. It is assumed that the encoder is a 265 standard and is a moving image compression standard that performs inter-frame reference.
- the frame data to be output to the transmission processing unit after discarding one or a plurality of target frames as the delay reduction processing shall refer to the frame data already output to the transmission processing unit.
- the video encoder finally outputs the frame data to the transmission processing unit after the target frame of the delay reduction processing before the delay reduction processing. It is conceivable to perform encoding using the frame data output to the above as the reference destination of the inter-frame reference.
- the frame data to be output to the transmission processing unit after discarding one or a plurality of target frames as the delay reduction process shall refer to the frame data of the frame immediately before the frame to be discarded.
- the time stamp value of the frame data that the video encoder first outputs to the transmission processing unit after the target frame of the delay reduction processing is finally transmitted before the delay reduction processing.
- the value is ⁇ (the number of frames targeted for delay reduction processing) + 1 ⁇ x (frame interval time) ahead of the time stamp value of the frame data output to the processing unit. That is, the frame after the delay reduction processing corresponds to the time when the time corresponding to the number of frames targeted for the delay reduction processing has elapsed from the frame before the delay reduction processing.
- the video encoder outputs the data from the time when the transmission processing unit determines to lower the encoding rate until the video encoder can output the first frame data encoded accordingly.
- N is a positive number
- R the number of target frames
- the number of target frames is calculated by the rounded-up value obtained by ceiling ((R-1) ⁇ N) by the sealing function.
- the video encoder performs a process of outputting frame data including reference information and not image data for the specified number of target frames as the delay reduction process. Be done. For example, it is supplied to a frame data transmission processing unit called a skip frame, which includes reference information but does not include the data of the image itself.
- the transmission processing unit transmits a request for lowering the encoding rate to the video encoder, and the video encoder lowers the encoding rate in response to the request for lowering the encoding rate.
- the transmission processing unit may perform a process of discarding the frame data of the target number of frames among the frame data output from the video encoder without transmitting it to the receiving device. That is, the delay reduction process is executed on the transmission processing unit side.
- the transmission processing unit lowers the encoding rate of the video encoder due to transmission delay or the like, and discards the input encoded frame data of the target number of frames without transmitting it to the receiving device.
- the video encoder adds rate change information to the frame data to be encoded first after the encoding rate is changed, and the transmission processing unit transmits the encoding rate reduction request and then the rate. It is conceivable to discard the frame data input from the video encoder before the frame data to which the change information is added is input.
- the video encoder adds rate change information so that the transmission processing unit can determine the frame data after the encoding rate is changed.
- the transmission processing unit transmits the frame identification information of the frame data transmitted to the receiving side device to the video encoder before executing the delay reduction processing
- the video The encoder uses the frame data indicated by the frame identification information as a reference destination for inter-frame reference for the frame data that is first output to the transmission processing unit after the encoding rate is reduced in response to the encoding rate reduction request.
- the video encoder is H. 264 standard and H.
- the encoder is a video compression standard that performs inter-frame compression (interframe compression) that refers between frames
- the video encoder is new when the transmission processing unit discards the target frame as delay reduction processing.
- the frame data to be encoded first at the rate shall refer to the frame data that has already been transmitted to the receiving device by the transmission processing unit.
- the frame identification information is the frame identification information of the last frame data transmitted to the receiving device before the execution of the delay reduction processing. That is, when the transmission processing unit discards one or a plurality of target frames as the delay reduction process, the frame data transmitted to the receiving device immediately before the discarded frame data is used as a reference destination for encoding.
- the time stamp value of the frame data first transmitted by the transmission processing unit after the target frame of the delay reduction processing is the time of the last frame data transmitted before the delay reduction processing. It is conceivable that the value is ⁇ (the number of frames targeted for delay reduction processing) + 1 ⁇ ⁇ (frame interval time) ahead of the stamp value. That is, the frame after the delay reduction processing is the time elapsed from the frame before the delay reduction processing by the time corresponding to the number of frames targeted for the delay reduction processing.
- the video encoder when the frame data indicated by the frame identification information cannot be used as a reference destination for an inter-frame reference, the video encoder reduces the encoding rate in response to an encoding rate reduction request. It is conceivable to perform encoding using the frame data first output to the transmission processing unit as an IDR frame.
- the video encoder has H.I. 264 standard and H.
- the frame data that is first encoded at the new rate is an IDR (Instant Decoder Refresh) frame.
- the video encoder makes the encoding rate lower than the rate specified in the encoding rate reduction request so that the data size of the IDR frame to be transmitted is suppressed within a predetermined maximum size. It is conceivable to.
- the data size is set to be within a predetermined maximum size in the first IDR frame after the rate change.
- the video encoder is provided with a memory capable of temporarily storing the frame data after encoding, and the transmission processing unit first reduces the encoding rate in response to the encoding rate reduction request. It is conceivable that the frame data to be output is encoded with the frame data stored in the memory as a reference destination. By providing a memory for storing frame data for a certain period of time after encoding, the video encoder makes it possible to refer to the frame data several frames before being transmitted without being discarded.
- the video encoder periodically outputs a reference frame for a long time, reduces the encoding rate in response to an encoding rate reduction request, and then first outputs the reference frame to the transmission processing unit.
- the frame data is encoded with the long-time reference frame as a reference destination.
- the video encoder periodically outputs a long-time reference frame, that is, a so-called LTR (Long Term Reference) frame. In this case, the LTR frame is used as the reference destination.
- the video encoder when the video encoder determines that the long-time reference frame is discarded by the transmission processing unit, the video encoder reduces the encoding rate in response to the encoding rate reduction request, and then the above.
- the frame data first output to the transmission processing unit is an IDR frame. That is, when the LTR frame is the target of discarding, the video encoder sets the first frame after the rate change as the IDR frame because it is not appropriate to refer to the LTR frame as the reference destination.
- the video encoder makes the encoding rate lower than the rate specified in the encoding rate reduction request so that the data size of the IDR frame to be transmitted is suppressed within a predetermined maximum size. It is conceivable to.
- the data size is set to be within a predetermined maximum size in the first IDR frame after the rate change.
- the transmission device controls the rate reduction of the encoding rate in the video encoder during the transmission process of the image data encoded by the video encoder, and the frame data of one or a plurality of target frames.
- the delay reduction process for reducing the delay amount of the transmitted data is executed. This improves the transmission delay on the transmitting device side.
- FIG. 1A and 1B show an imaging device 1 as a transmitting device and a receiving device 3, respectively.
- the image pickup device 1 is a so-called commercial or consumer digital video camera.
- the image pickup device may be a so-called digital still camera, a mobile terminal device such as a smartphone or a tablet terminal, and may be a device capable of capturing a moving image.
- the image pickup device 1 can perform network communication by a communication method such as 5G by attaching a separate transmission unit 2 as shown in FIG. 1B or by incorporating the transmission unit 2 as shown in FIG. 1A. It is said that.
- the image pickup apparatus 1 can transmit video streaming via the image data of continuous frames as the captured moving image and the transmission unit 2.
- the transmission unit 2 or the image pickup device 1 incorporating the transmission unit 2 corresponds to the transmission device of the present disclosure.
- the image pickup apparatus 1 performs video streaming transmission to the receiving device 3 via, for example, the network 4.
- the network 4 for example, the Internet, a home network, a LAN (Local Area Network), a satellite communication network, and various other networks are assumed.
- a cloud server for example, a cloud server, a network distribution server, a video server, a video editing device, a video playback device, a video recording device, a television device, or an information processing device such as a personal computer or a mobile terminal having a video processing function equivalent to these. is assumed.
- the image pickup device 1 and the receiving side device 3 perform network communication via the network 4, but as shown in FIG. 1B, the image pickup device 1 connects to the receiving side device 3 by wireless transmission such as short-range wireless communication.
- wireless transmission such as short-range wireless communication.
- a configuration in which video stream data is directly transmitted is also conceivable.
- FIG. 2 shows the configuration of the imaging device 1.
- the image pickup device 1 has a built-in transmission unit 2, but the transmission unit 2 may be a separate body as described above.
- the image pickup device 1 includes an image pickup unit 32, an image signal processing unit 33, a storage unit 34, a control unit 35, an operation unit 36, a display control unit 38, a display unit 39, and a transmission unit 2.
- the imaging unit 32 has an imaging optical system and an image sensor for imaging.
- the image sensor is an image sensor such as a CCD (Charge Coupled Device) sensor or a CMOS (Complementary Metal Oxide Semiconductor) sensor, and receives light from an incident subject via an imaging optical system and converts it into an electric signal. Output.
- the image sensor executes, for example, CDS (Correlated Double Sampling) processing, AGC (Automatic Gain Control) processing, etc. on the electric signal obtained by photoelectric conversion of the received light, and further performs A / D (Analog / Digital) conversion processing. I do. Then, the image data as digital data is output to the image signal processing unit 33 in the subsequent stage.
- the image signal processing unit 33 is configured as an image processing processor by, for example, a DSP (Digital Signal Processor) or the like.
- the image signal processing unit 33 performs various processes on the image data input from the image capturing unit 32. For example, when an image signal is assumed as a normal visible light image, the image signal processing unit 33 clamps the black levels of R (red), G (green), and B (blue) to a predetermined signal level, R. , G, B color channel correction processing, color separation processing so that the image data for each pixel has all the color components of R, G, B (when a mosaic color filter such as Bayer filter is used) Demosaic processing), processing for generating (separating) a brightness (Y) signal and a color (C) signal, and the like.
- DSP Digital Signal Processor
- the image signal processing unit 33 may execute necessary resolution conversion processing, for example, resolution conversion for storage, communication output, or monitor image for the image signal subjected to various signal processing. Further, the image signal processing unit 33 may perform compression coding processing for storage, for example, on the image data whose resolution has been converted.
- the control unit 35 is composed of a microcomputer (arithmetic processing device) including a CPU (Central Processing Unit), a ROM (Read Only Memory), a RAM (Random Access Memory), a flash memory, and the like.
- the CPU executes a program stored in a ROM, a flash memory, or the like to control the entire image pickup apparatus 1 in an integrated manner.
- the RAM is used as a work area for various data processing of the CPU for temporarily storing data, programs, and the like.
- ROM and flash memory non-volatile memory
- OS operating systems
- Such a control unit 35 controls the imaging operation such as shutter speed, exposure adjustment, and frame rate in the imaging unit 32, and controls various signal processing parameters in the image signal processing unit 33. Further, the control unit 35 performs setting processing, imaging operation control, display operation control, and the like according to the user's operation.
- the operation unit 36 is assumed to be an operator such as a key, a switch, a dial, or a touch panel provided in the device housing.
- the operation unit 36 sends a signal corresponding to the input operation to the control unit 35.
- the display unit 39 is a display unit that displays various displays to a user (imaging person or the like), and is formed of a display device such as an LCD (Liquid Crystal Display) or an organic EL (Electro-Luminescence) display.
- the display control unit 38 performs a process of executing the display operation on the display unit 39.
- it has a character generator, a display driver, and the like, and causes the display unit 39 to execute various displays based on the control of the control unit 35.
- a through image or a still image or a moving image recorded on a recording medium can be played back and displayed, and various operation menus, icons, messages, etc., that is, a display as a GUI (Graphical User Interface) can be executed on the screen.
- GUI Graphic User Interface
- the storage unit 34 is composed of, for example, a non-volatile memory, and stores, for example, an image file such as still image data or moving image data captured by the imaging unit 32, attribute information of the image file, a thumbnail image, or the like.
- the actual mode of the storage unit 34 can be considered in various ways.
- the storage unit 34 may be a flash memory built in the image pickup device 1, or a memory card (for example, a portable flash memory) that can be attached to and detached from the image pickup device 1 and a card recording / playback that performs recording / playback access to the memory card. It may be in the form of a part.
- the storage unit 34 may be realized as an HDD (Hard Disk Drive) or the like as a form built in the image pickup apparatus 1.
- HDD Hard Disk Drive
- the transmission unit 2 is a unit that performs streaming transmission of image data (moving image) captured as described above.
- the configuration of the transmission unit 2 is shown in FIG.
- the transmission unit 2 includes a video capture unit 21, a CPU 22, a packet transmission module 23, a video encoder 24, a memory 25, and a network interface unit 26.
- the image data (frame data) Vin of each frame processed by the image signal processing unit 33 is input to the video capture unit 21.
- uncompressed frame data is input at a predetermined time interval (frame interval corresponding to the frame rate of the imaging operation of the imaging device 1).
- the "frame data” refers to image data in units of one frame.
- the video capture unit 21 transfers the input image data Vin to the video encoder 24 via the bus 27 in frame units.
- the bus 27 is, for example, a bus such as PCIe (Peripheral Component Interconnect Express).
- the CPU 22 functions as a controller for the transmission unit 2.
- the CPU 22 has a function as a packet transmission module 23 by software, for example.
- the video encoder 24 performs an encoding process of compressing and coding in frame data units, and transfers the encoded frame data to the packet transmission module 23 in the CPU 22 via the bus 27.
- the packet transmission module 23 performs packet division processing for transmission, and performs processing for transmitting and outputting video stream data from the network interface unit 26 in packet units.
- FIG. 4 shows an outline of video stream transmission between the transmission unit 2 and the receiving device 3.
- the image data Vin input to the video capture unit 21 is encoded by the video encoder 24 and packetized by the packet transmission module 23.
- This video data packet VDPK is sent to the network 4 by the network interface unit 26.
- the receiving device 3 includes a receiving unit 5.
- the receiving unit 5 receives the video data packet VDPK by the network interface unit 51 and incorporates it into the packet receiving module 52. Then, the compressed frame data is extracted from each packet, and the video decoder 53 performs decoding processing for compression. Then, the received video stream data VRX is output via the video renderer 54.
- the receiving unit 5 transmits the sequential control packet CPK to the transmitting unit 2 to convey the situation.
- the control packet CPK contains information that can notify the reception rate, the delay amount, and the packet loss rate of the current receiving unit 5.
- the packet transmission module 23 of the transmission unit 2 recognizes the current network state, changes (decreases or increases) the transmittable rate, and instructs the video encoder 24 to encode. It can be controlled to change (decrease or increase) the rate (that is, increase or decrease the compression ratio).
- the focus will be on reducing the encoding rate and transmission rate when a transmission delay occurs in order to deal with the transmission delay, but of course, depending on the recovery of the network congestion state. You can increase the transmission rate and encoding rate.
- RTT can be measured by sending RTCP packets in which the transmission time is written to each other.
- RTP for example, the following documents can be referred to. -"RTP: A Transport Protocol for Real-Time Applications", IETF RFC 3550, 2003
- the number of stagnant packets can be estimated by sending a response confirmation (ACK) packet from the receiving side to the received video data packet and checking the ACK that does not return on the transmitting side.
- ACK response confirmation
- the encoding rate reduction request (hereinafter, may be abbreviated as "rate reduction request") issued from the packet transmission module 23 on the CPU 22 is sent to the bus 27 through the OS (Operating System) running on the CPU 22, and the video encoder is sent. It is passed to 24 and processed by the video encoder 24.
- FIG. 5 shows a time chart from this encoding degradation request to being reflected in the output of the video encoder 24.
- FIG. 5 shows an operation as a comparative example with respect to the present embodiment.
- FIG. 5 shows the time relationship between the output frames (F1, F2 %) From the video encoder 24 and the frames (F1, F2 %) Related to the data transmission from the packet transmission module 23 (the horizontal axis is). time).
- the vertical axis represents the data size of the frame data.
- the vertical axis corresponds to the transmission rate.
- the module 23 reduces the transmission rate by 1/2 for the frame data transmitted after the time point t0. That is, the packet transmission module 23 determines and instructs the decrease in the transmission rate of the video data packet VDPK and the decrease in the encoding rate of the video encoder 24 at the time point t0.
- the rate reduction request does not immediately reach the video encoder 24. For example, at time t1, the rate reduction request reaches the video encoder 24. Further, when the encoding reduction request arrives at the video encoder 24, the frame F4 that has already been encoded cannot be re-encoded at a new rate, so that the frame F4 is directly transferred to the packet transmission module 23 and packetized. It is output. It is from frame F5 that the video encoder 24 encodes at a new rate that is lowered.
- the video encoder 24 cannot immediately output the frame data according to the rate. If the decrease in the encoding rate of the video encoder 24 is delayed, it becomes necessary to temporarily send large frame data encoded at a high rate at a low transmission rate. Therefore, the time required to complete the transmission of the frame data, that is, the transmission delay becomes large.
- the frames F2, F3, and F4 are encoded at a large rate before the rate change, so if the packet transmission module 23 transmits this at a transmission rate reduced by 1/2, the original rate is doubled. It takes time. Further, the transmission delay accumulated in the frames F2, F3, and F4 remains in the frames after the frame F5. Especially when aiming for video streaming with a very small delay, we want to avoid the transmission delay when the transmission rate drops.
- the delay reduction processing is performed to prevent the transmission delay from continuing to increase, and the reception side device 3 Make sure that the error does not continue in the decoded image in.
- First Embodiment> The operation of the first embodiment that can be executed by the transmission unit 2 having the configuration of FIG. 3 will be described.
- the first embodiment is an example in which frame data is discarded in the video encoder 24 as a delay reduction process.
- the packet transmission module 23 measures the RTT and the number of stagnant packets by exchanging the control packet CPK with the packet reception module 52 of the reception unit 5. Then, by changing these values, congestion of the network 4 and deterioration of the wireless communication quality of the mobile network are detected. When these are detected, the packet transmission module 23 decides to reduce the transmission rate and instructs the video encoder 24 to reduce the encoding rate in accordance with the new transmission rate. At this time, the packet transmission module 23 also instructs the video encoder 24 the number of frames to be discarded inside the video encoder 24 (that is, the number of frames subject to the delay reduction processing).
- the packet transmission module 23 calculates the number of frames to be discarded as the delay reduction process as follows.
- the video encoder 24 When the video encoder 24 receives the request for lowering the rate of the encoding rate and the number of target frames, it prepares for setting the encoding with the new encoding rate while discarding the frame data of the target number of frames. In this case, inside the video encoder 24, the input frame data may be discarded and the coding process may not be performed.
- the video encoder is, for example, H.I. 264 standard and H.
- the frame data that is first output after frame discard refers to the last frame data before discard.
- PTS Presentation Time Stamp
- PTS_F (PTS_L + (number of target frames) + 1) x (frame interval time) And set.
- FIG. 6 shows the time relationship between the output frame (F1, F2 %) From the video encoder 24 and the frame (F1, F2 %) Related to the data transmission from the packet transmission module 23, as in FIG. There is.
- the video encoder 24 first outputs the frame F8 to the packet transmission module 23 after discarding, and at least refers to the frame output before discarding. Desirably, the last output frame F4 before discarding is used as a reference destination.
- the frame F8 is transmitted and output at the original time and received even though the delay increases in the frames F2, F3, and F4. It is received by the side device 3. Further, since the frame F8 refers to the frame F4 and the receiving device 3 has already decoded the frame F4 at the time of decoding the frame F8, the frame F8 can be decoded without any error. Further, since the PTS of the frame F8 is set as described above, the frame F8 is reproduced four frames after the original reproduction time of the frame F4, that is, at the original timing.
- the frames F2, F3, and F4 arrive at the receiving side device 3 with a delay, they are displayed later than the original timing on the receiving side device 3. Further, since the frames F5, F6, and F7 are discarded, the receiving device 3 continues to display the frame F4 during that time. However, the frames after the frame F8 are displayed without any delay or error.
- FIG. 7 shows a processing example of the packet transmission module 23 during packet transmission.
- the packet transmission module 23 packetizes the encoded frame data input from the video encoder 24 and transmits it as a video data packet VDPK, and receives the control packet CPK from the receiving device 3. Shown.
- the packet transmission module 23 monitors the end of transmission of the video data packet VDPK, that is, the end of video streaming transmission.
- the packet transmission module 23 confirms the content of the received control packet CPK and determines whether or not a rate reduction is necessary.
- the packet transmission module 23 will continue the video streaming transmission in the loop of the above steps S101, S102, S103, and S104 in the normal time when the rate reduction control is not required.
- the processes of steps S102 to 7 are terminated.
- the packet transmission module 23 determines the occurrence or risk of transmission delay during video streaming transmission, and if it is determined that a rate reduction is necessary, the packet transmission module 23 proceeds from step S104 to step S105 to obtain a new transmission rate and an encode rate. To set. For example, an appropriate rate is set according to the transmission delay amount and the communication status determined from the control packet CPK.
- step S106 the packet transmission module 23 calculates the number of frames to be delayed reduction processing by, for example, calculating the sealing function described above.
- step S107 the packet transmission module 23 transmits a rate change request to the video encoder 24 so that the encoding rate is lowered to the new encoding rate set in step S105. At this time, the number of target frames calculated in step S106 is also transmitted.
- step S108 the transmission rate is changed in step S108, and the process returns to step S101 to perform the transmission process of the video data packet VDPK at the new transmission rate.
- the video encoder 24 performs processing as shown in FIG. 8 during encoding.
- step S201 the video encoder 24 continuously encodes the input frame data and outputs the encoded frame data to the packet transmission module 23.
- the video encoder 24 determines the end of encoding by the end of the video streaming transmission in step S202, and monitors the reception of the rate reduction request from the packet transmission module 23 in step S203.
- the video encoder 24 ends the process of FIG. 8 when the encoding is completed.
- step S203 When the video encoder 24 receives the rate reduction request from the packet transmission module 23, the video encoder 24 proceeds from step S203 to step S204 to change the encoding setting. That is, change the encoding rate. However, this is an encoding setting change that becomes effective after the encoding of the frame in the middle of encoding is completed at the time of receiving the rate reduction request.
- step S205 the video encoder 24 performs a delay reduction process. This is performed until it is determined that the delay reduction process is completed for the number of frames specified by the number of frames targeted for the delay reduction process in step S206. Specifically, the frame data input after the rate reduction request is received is discarded. In other words, it is discarded at the time of input, and the frame data is not encoded. The input frame data may be encoded and then the encoded frame data may be discarded. Of course, it is preferable to discard the input frame data without encoding because the processing load is reduced.
- step S207 the frame data that is a frame before the target frame of the delay reduction processing and has already been output to the packet transmission module 23 is set as the reference destination for the inter-frame reference.
- the frame F4 which is the first frame after the rate change, becomes the frame data that refers to the output frame F4. Since the frames F3, F2, F1 and the like have already been output, they may be referred to.
- FIG. 9 shows a state in which the video encoder 24 outputs skip frames for three frames F5, F6, and F7 corresponding to the number of frames targeted for delay reduction processing in the figure having the same format as that of FIG.
- the skip frame is, for example, a frame that does not include actual image data but includes information of only the reference destination, and the data size is extremely small.
- the packet transmission module 23 also transmits and outputs skip frames of frames F5, F6, and F7 following the frame F4. After that, the frame data of the frame F8 encoded at the new encoding rate is transmitted.
- the video encoder 24 has only the frame reference information instead of discarding the frame internally as described above. You may output a small skip frame to. Since the skip frame has a small data size, it hardly aggravates the transmission delay.
- the processing example in this case is the same as in FIGS. 7 and 8.
- the video encoder 24 may output skip frames instead of discarding frames as the delay reduction process in step S205 of FIG.
- the third embodiment is an example in which the packet transmission module 23 performs frame discard as a delay reduction process. Further, the video encoder 24 switches the necessary reference destination.
- FIG. 10 schematically shows one frame of encoded data output from the video encoder 24.
- the video encoder 24 can add additional information header data to the frame data and output it, and it is assumed that the additional information includes the encoding rate change bit ECB.
- This encoding rate change bit ECB shall indicate that the encoding rate has changed from that frame. For example, as shown in the figure, it is assumed that the additional information is placed in the portion before the image data of the frame starts, and one bit of the additional information is the encoding rate change bit ECB.
- the video encoder 24 sets the encoding rate change bit ECB only in the first frame after changing the encoding rate, and does not set the bit in the other frames.
- the video encoder 24 waits until there is input of frame data in which the encoding rate change bit ECB is set from the video encoder 24. Suppose that the frame data input from is continuously discarded. Further, when the packet transmission module 23 notifies the video encoder 24 of the rate change request, the video encoder 24 also includes the ID number (hereinafter, “frame ID”) of the last frame transmitted as the video data packet VDPK before discarding the frame data. Shall be notified to. H. In the case of the 264 standard, "frame_num" on the slice header of the video frame can be used as this frame ID.
- FIG. 11 shows the time relationship between the output frame (F1, F2 %) From the video encoder 24 and the frame (F1, F2 %) Related to data transmission from the packet transmission module 23 in the same format as in FIG. Is shown.
- the video encoder 24 receives the rate reduction request at time point t11 during the encoding of frame F4.
- the video encoder 24 will encode from frame F5 at a new encoding rate.
- the old rate frames F2, F3, and F4 output from the video encoder 24 are also input to the packet transmission module 23, but the packet transmission module 23 discards them and the video data packet VDPK. Do not send as.
- the video data packet VDPK for the frame data encoded at the new rate is transmitted from the time point t12. Since the frame data of the frames F2, F3, and F4 having a large data size at the old rate are discarded and are not to be transmitted, the transmission of the frame F5 first encoded at the new rate is not delayed.
- M 3 is used as an example. It is assumed that the video encoder 24 holds a certain number of M + 1 or more pieces of the latest encoded frame data in the memory 25. For example, in the ring memory form, the oldest frame data in the memory 25 is always rewritten to the latest encoded frame data so that each frame data is stored for a substantially fixed period of time.
- the video encoder 24 When the video encoder 24 performs inter-frame compression, normally, when encoding new frame data, the video encoder 24 refers to the newest frame data stored in the memory 25. However, when the packet transmission module 23 discards the frame, the video encoder 24 uses the latest frame data held in the memory 25 for the first frame encoded at the low new rate, which is not discarded. Switch the reference destination to refer to the frame of. That is, the video encoder 24 performs the following operations.
- the video encoder 24 After the packet transmission module 23 determines the rate reduction at the time point t10, the video encoder 24 receives the rate reduction request at the time point t11, and at this time, the packet transmission module 23 also receives the frame ID of the last frame that has been transmitted.
- the frame data of the frame F1 is the last transmitted by the packet transmission module 23 before being discarded, and the ID number of the frame received by the video encoder 24 from the packet transmission module 23 is “1”.
- the frame F1 is held at the time of decoding the frame F5, and the decoding of the frame F5 is performed without any problem. .. Therefore, on the receiving side, the frame F1 continues to be displayed while the frames F2 to F3 should be displayed, but after the frame F5, the frames F5 and later are displayed correctly without any delay or error.
- the PTS of the frame F5 first transmitted by the packet transmission module 23 after the frame is discarded is only (the number of discarded frames + 1) ⁇ (frame interval time) from the PTS of the last transmitted frame F1 before the frame is discarded. Make sure you are on the move. That is, it is set to advance by 4 frames. As a result, the frame F5 is reproduced at the correct timing in the receiving device 3.
- FIGS. 13 and 14 The processing of the packet transmission module 23 and the video encoder 24 as the above third embodiment is shown in FIGS. 13 and 14. For the same processes as those in FIGS. 7 and 8 described above, the same step numbers are assigned to avoid duplicate explanations.
- FIG. 13 shows a processing example of the packet transmission module 23 during packet transmission, but what is different from FIG. 7 is step S107A and steps S110 and S111. Further, the process of step S106 described with reference to FIG. 7 becomes unnecessary.
- the packet transmission module 23 performs the processes of steps S101 to S105 of FIG. 13 in the same manner as in the example of FIG. After setting the transmission rate and the encoding rate in step S105 of FIG. 13, the packet transmission module 23 requests the video encoder 24 in step S107A to change the rate so that the encoding rate is lowered to the new encoding rate set in step S105. Send. At this time, the frame ID of the frame data that was last transmitted and output before being discarded is also transmitted. Then, the packet transmission module 23 changes the transmission rate in step S108.
- step S110 the packet transmission module 23 confirms whether or not the frame data input from the video encoder 24 is a frame to which the encoding rate change bit ECB is added, that is, a frame after the encoding rate is lowered. If the frame data is encoded at the old rate in which the encoding rate change bit ECB is off, the packet transmission module 23 discards the frame data in step S111. When the frame data encoded at the new rate in which the encoding rate change bit ECB is on is input, the packet transmission module 23 returns to step S101 and performs the transmission processing of the video data packet VDPK at the new transmission rate.
- the video encoder 24 performs processing in the video encoder as shown in FIG. What is different from FIG. 8 is the processing of steps S210, S211 and S212.
- step S201 the video encoder 24 continuously encodes the input frame data and outputs the encoded frame data to the packet transmission module 23, but at this time, the frame data encoded in step S210 is transferred to the memory 25. I also remember.
- step S203 When the video encoder 24 receives the rate reduction request from the packet transmission module 23, the video encoder 24 proceeds from step S203 to step S211 to change the encoding setting. That is, change the encoding rate. Further, the video encoder 24 sets additional information and a reference frame in step S212, and returns to step S201. After that, the video encoder 24 encodes at the new encoding rate instructed by the packet transmission module 23.
- the additional information setting and the reference frame setting in step S212 are performed for the first frame data after the rate is lowered, and it is assumed that the encoding rate change bit ECB is turned on first in the frame.
- the reference destination is set to be a frame having the maximum frame ID which is equal to or less than the frame ID notified from the packet transmission module 23 while being stored in the memory 25.
- the frame ID may be frame data having a frame ID equal to or lower than the frame ID notified from the packet transmission module 23, and may not necessarily be a frame having the maximum frame ID. However, by referencing the frame having the maximum frame ID that is less than or equal to the notified frame ID, the video decoder 53 side uses the frame decoded immediately before when the first frame data after the rate change is decoded. It can be a reference destination.
- the video decoder 53 in the receiving unit 5 also has a memory capable of storing the same number of frames as the memory 25 at the stage of decoding data, and holds the frame data of the decoding result on the memory in the same number of frames as the memory 25. And. As a result, the reference frame exists at the time of decoding, and it becomes possible to decode without error. Conversely, by referencing the frame having the maximum frame ID that is equal to or less than the notified frame ID as the reference destination, it is not necessary to store many frames at the time of decoding in the receiving device 3. It turns out that.
- the memory 25 does not have frame data having a frame ID equal to or lower than the frame ID notified from the packet transmission module 23.
- the video encoder 24 sets that the frame to be encoded first at the new rate is an IDR frame.
- the data size of the IDR frame is usually very large, when the first frame after the rate reduction is used as the IDR frame, the image quality of the frame is reduced and the data size is set to a predetermined size. Below, for example, it is also preferable to set the size so that no delay occurs at the transmission rate after the decrease.
- the fourth embodiment is also an example in which the packet transmission module 23 performs frame discarding as a delay reduction process, but assumes a video stream into which an LTR frame is inserted.
- the video encoder 24 shall add the encoding rate change bit ECB as additional information to the frame data, and when the packet transmission module 23 notifies the video encoder 24 of the rate reduction request, The frame ID of the last frame transmitted before discarding shall also be notified.
- the frame F1 is an LTR frame.
- This LTR frame is temporarily stored in the memory 25. That is, in FIG. 12, the latest predetermined number of frame data is temporarily stored, but in the case of FIG. 16, the LTR frame may be temporarily stored until it is rewritten with, for example, the next LTR frame.
- N frames including that frame are output until the first frame data of that rate is output.
- the first frame data to be encoded at the new rate will be set.
- step S210A when the LTR frame is encoded, the LTR frame data is stored in the memory 25.
- step S210A when the LTR frame is encoded, the LTR frame data is stored in the memory 25.
- step S210A when the LTR frame is encoded, the LTR frame data is stored in the memory 25.
- step S211 The other processes up to step S211 are the same as in FIG.
- the video encoder 24 determines in step S222 whether or not IDR frame output is required before the new rate frame output. When any of the above N frames must be an IDR frame, the video encoder 24 proceeds to step S225, and the first frame after the encoding rate change is set as the IDR frame.
- the video encoder 24 proceeds to steps S222, S223, and S225, and the first frame after the encoding rate change is set as the IDR frame.
- the video encoder 24 sets the first frame after the encoding rate change as the P frame and makes it refer to the last LTR frame.
- steps S224 and S225 when the first frame after the encoding rate change is output, the encoding rate change bit of the header is set to be set.
- the processing on the packet transmission module 23 side is substantially the same as that in FIG. 13, but the transmission of the frame ID becomes unnecessary in step S107A.
- an appropriate reference relationship can be maintained in the transmission of the video data packet VDPK including the LTR.
- the IDR frame is usually smaller than the specified encoding rate in view of the fact that the data size becomes very large. It is also preferable to encode at a rate so that the data size is smaller than a predetermined size, for example, a size that does not cause a delay at the reduced transmission rate.
- the frame transmission delay is the same as in FIG.
- the frame F5 refers to the latest LTR frame (for example, the frame F1 in FIG. 16).
- the transmission unit 2 of the embodiment includes a video encoder 24 that encodes each frame data of an image, and a packet transmission module 23 (transmission processing unit). During the transmission process of the frame data encoded by the video encoder 24, the packet transmission module 23 performs rate reduction control on the encoding rate of the video encoder 24 according to, for example, a transmission delay to the receiving device 3, and 1 or Delay reduction processing that reduces the delay amount of transmission data is executed for frame data of a plurality of target frames.
- the transmission unit 2 reduces the encoding rate and the transmission rate according to the occurrence of transmission delay and its prediction, thereby preventing the delay from expanding and executing delay reduction processing such as partial destruction of data. By doing so, the delay when the transmission rate drops is eliminated. Therefore, when a transmission delay occurs in image data transmission such as video streaming, it can be appropriately reduced or eliminated, and a system in which the transmission delay is unlikely to occur can be constructed. Further, by appropriately setting the number of frames to be processed for delay reduction processing, it is possible to reduce or eliminate the transmission delay when the transmission rate is lowered by discarding the minimum number of frames. Further, by minimizing the number of frames to be discarded or the like, it is possible to minimize the distortion of the image reproduced by the receiving device.
- the transmission unit 2 of the embodiment can perform delay reduction processing such as discarding the decoded image error in the receiving side device 3 in a non-continuing manner on the encoding side to prevent the transmission delay from continuing to increase. it can.
- the packet transmission module 23 transmits the encoding rate reduction request and the number of frames targeted for the delay reduction processing to the video encoder 24, and the video encoder 24 responds to the encoding rate reduction request.
- An example is given in which the encoding rate is lowered and the delay reduction process is performed so that the frame data of the target number of frames is not output to the transmission processing unit. That is, the delay reduction process is executed on the video encoder 24 side. For example, the frame data of the target number of frames specified by the video encoder 24 is discarded in the video encoder so as not to be output to the transmission processing unit.
- the video encoder 24 detects the rate reduction request, after the encoding and output of the frame being encoded at that time are completed, the video encoder 24 performs the delay reduction processing by the number of target frames instructed from the next frame. , The encoded frame data is not output to the packet transmission module 23.
- the frame data encoded at the new rate can be transmitted with the transmission delay eliminated or reduced, and the delay can be prevented from occurring at the reduced transmission rate. That is, the transmission delay can be reduced by a simple process in the video encoder 24.
- the video encoder 24 has described an example in which, as a delay reduction process, a process of discarding the input frame data for the specified number of target frames without encoding is performed. That is, as the delay reduction process, the video encoder 24 may discard the required number of frame data input after reception during the encoding rate reduction request as it is. Therefore, useless encoding processing such as encoding the frame data to be discarded is not performed.
- the delay reduction process can be realized by an extremely simple process of discarding the input frame data.
- the video encoder 24 first outputs the frame data to the packet transmission module 23 after the target frame of the delay reduction processing, which is a frame before the target frame of the delay reduction processing and transmits the packet.
- the video encoder is H. 264 standard and H.
- the reference destination in the inter-frame reference is not discarded, and the frame data is transmitted to the receiving device 3. Therefore, the frame data after the reduction in the encoding rate can be appropriately decoded by the receiving device 3.
- the technique of the delay reduction processing of the embodiment can also be applied to the case of performing intra-frame compression.
- the video encoder 24 finally outputs the frame data to be output to the packet transmission module 23 after the target frame of the delay reduction processing to the transmission processing unit before the delay reduction processing.
- Encoding is performed with frame data as the reference destination for interframe references.
- the reference destination in the inter-frame reference is not discarded, and the frame data is transmitted to the receiving device 3.
- the first frame data after the rate change will refer to the frame data immediately before it. Therefore, the frame data after the reduction in the encoding rate can be appropriately decoded by the receiving device 3.
- the time stamp value of the frame data that the video encoder 24 first outputs to the packet transmission module 23 after the target frame of the delay reduction processing is finally sent to the transmission processing unit before the delay reduction processing. It is assumed that the value is ⁇ (the number of frames targeted for delay reduction processing) + 1 ⁇ ⁇ (frame interval time) ahead of the time stamp value of the output frame data. As a result, the frame data first output to the transmission processing unit after the target frame of the delay reduction processing is received by the receiving device 3 at the original time and reproduced at the original timing.
- the output is output from the video encoder 24 from the time when the packet transmission module 23 decides to reduce the encoding rate until the video encoder 24 can output the first frame data encoded accordingly.
- the number of target frames is assumed to be ceiling ((R-1) ⁇ N) or more. ..
- the number of frames targeted for the delay reduction processing can be appropriately set in consideration of the difference between the old and new encoding rates at the time of switching, which is suitable for eliminating or reducing the transmission delay.
- the video encoder 24 gives an example of performing a process of outputting skip frame data including reference information and not including image data for the specified number of target frames.
- the data size of the skip frame data is extremely small, and by replacing the normal frame data with the skip frame data, it is possible to practically reduce or eliminate the transmission delay. And it is consistent as a video stream and does not become an error stream.
- the packet transmission module 23 transmits an encoding rate reduction request to the video encoder 24, and the video encoder 24 lowers the encoding rate in response to the encoding rate reduction request.
- the packet transmission module 23 gives an example of performing a process of discarding the frame data of the target number of frames among the frame data output from the video encoder 24 without transmitting it to the receiving device 3. That is, the delay reduction process is executed on the packet transmission module 23 side.
- the transmission delay can be eliminated or reduced for the frame data encoded at the new rate, and the delay can be prevented from occurring at the lowered transmission rate. That is, the transmission delay can be reduced by a simple process in the packet transmission module 23.
- the large frame data before the rate change is not transmitted to the receiving device 3. Therefore, the number of frames to be discarded is small, the disturbance of the reproduced image in the receiving device 3 is minimized, it is advantageous in reducing the transmission delay, and it is more suitable for improving the congestion situation of the network.
- the video encoder 24 adds rate change information by the encoding rate change bit ECB to the frame data to be encoded first after the encoding rate change, and the packet transmission module 23 requests the encoding rate reduction.
- the frame data input from the video encoder 24 is discarded before the frame data to which the rate change information is added is input.
- the delay reduction process can be appropriately executed, and the delay reduction process is easy. Become.
- the packet transmission module 23 transmits the frame ID (frame identification information) of the frame data transmitted to the receiving device 3 to the video encoder 24 before executing the delay reduction processing, and transmits the video.
- the encoder 24 encodes the frame data indicated by the frame ID as a reference destination for interframe reference. I decided to do it.
- the frame data of the reference destination becomes the frame data transmitted to the receiving device 3 without being discarded. Therefore, the frame data after the reduction in the encoding rate can be appropriately decoded by the receiving device 3.
- the frame ID notified by the packet transmission module 23 to the video encoder 24 is the frame ID of the last frame data transmitted to the receiving device 3 before the execution of the delay reduction processing.
- the reference destination in the inter-frame reference is not discarded, and the frame data is transmitted to the receiving device 3.
- the first frame data after the rate change will refer to the frame data immediately before it. Therefore, the frame data after the reduction in the encoding rate can be appropriately decoded by the receiving device 3.
- the time stamp value of the frame data first transmitted by the packet transmission module 23 after the target frame of the delay reduction processing is the time of the last frame data transmitted before the delay reduction processing. It is assumed that the value is ⁇ (the number of frames targeted for delay reduction processing) + 1 ⁇ ⁇ (frame interval time) ahead of the stamp value.
- the frame data first output to the transmission processing unit after the target frame of the delay reduction processing is received by the receiving device 3 at the original time and reproduced at the original timing.
- the video encoder 24 lowers the encoding rate in response to the encoding rate lowering request, and then sends the packet transmission module 23.
- An example of encoding with the frame data to be output first as an IDR frame has been described. As a result, even if there is no referenceable frame that has been transmitted before the frame data is discarded, or if the discarded frame data includes an IDR frame, the receiving device 3 can appropriately decode the frame data.
- the video encoder 24 transmits the data at a lower encoding rate than the rate specified in the encoding rate reduction request.
- An example of keeping the data size of the IDR frame within a predetermined maximum size has been described. Since the IDR frame is usually very large, when the first frame data after the rate change is used as the IDR frame, the video encoder 24 encodes at a rate smaller than the encoding rate specified by the packet transmission module 23. Make it smaller than the specified size. This makes it possible to prevent the delay reduction effect from being reduced by the IDR frame.
- the video encoder 24 includes a memory 25 capable of temporarily storing the frame data after encoding, lowers the encoding rate in response to a request for lowering the encoding rate, and then first outputs the data to the packet transmission module 23.
- a memory 25 capable of temporarily storing the frame data after encoding, lowers the encoding rate in response to a request for lowering the encoding rate, and then first outputs the data to the packet transmission module 23.
- the frame data an example of encoding the frame data stored in the memory 25 as a reference destination has been described.
- the video encoder 24 is provided with a memory 25 that stores several frames of frame data and temporarily stores the encoded frame data for a certain period of time, so that the frame transmitted before being discarded by the packet transmission module 23.
- the data can be stored in the memory 25.
- the video encoder 24 periodically outputs an LTR frame (long-time reference frame), lowers the encoding rate in response to a request for lowering the encoding rate, and then first outputs the LTR frame to the packet transmission module 23.
- LTR frame long-time reference frame
- the frame data to be used an example of encoding an LTR frame as a reference destination has been described. As a result, an appropriate reference state can be maintained when transmitting an LTR frame.
- the video encoder 24 when the video encoder 24 determines that the LTR frame is discarded by the packet transmission module 23, the video encoder 24 first reduces the encoding rate in response to the encoding rate reduction request, and then the packet transmission module 23 first.
- the frame data to be output is an IDR frame.
- the present technology can also adopt the following configurations.
- a video encoder that encodes each frame data of an image
- the rate reduction control is performed for the encoding rate in the video encoder, and the delay amount of the transmission data is reduced for the frame data of one or a plurality of target frames.
- a transmission device including a transmission processing unit that enables processing to be executed.
- the transmission processing unit transmits a request for lowering the encoding rate and the number of frames targeted for delay reduction processing to the video encoder.
- the video encoder lowers the encoding rate in response to a request for lowering the encoding rate, and as the delay reducing process, performs a process of preventing the frame data of the target number of frames from being output to the transmission processing unit (the above).
- the transmitter according to 1).
- the video encoder first outputs the frame data to the transmission processing unit after the target frame of the delay reduction processing, which is a frame before the target frame of the delay reduction processing and has been output to the transmission processing unit.
- the transmitter according to (2) or (3) above which performs encoding with the reference destination of the inter-frame reference.
- the video encoder refers to the frame data that was last output to the transmission processing unit before the delay reduction processing as an interframe reference.
- the transmitter according to any one of (2) to (4) above, which performs the first encoding.
- the time stamp value of the frame data that the video encoder first outputs to the transmission processing unit after the target frame of the delay reduction processing is the time stamp value of the frame data that was last output to the transmission processing unit before the delay reduction processing. than, ⁇ (Number of frames subject to delay reduction processing) + 1 ⁇ x (Frame interval time)
- the transmitter according to any one of (2) to (5) above, which has an advanced value.
- the number of frames output from the video encoder is N from the time when the transmission processing unit decides to reduce the encoding rate until the video encoder can output the first frame data encoded accordingly.
- R The transmitter according to any one of (2) to (6) above, wherein the number of target frames is ceiling ((R-1) ⁇ N) or more.
- the video encoder performs a process of outputting frame data including reference information and not including image data for the specified number of target frames (2), (4), (5), (6), and (6).
- the transmitter according to any one of 7).
- the transmission processing unit transmits a request for lowering the encoding rate to the video encoder.
- the video encoder lowers the encoding rate in response to the request for lowering the encoding rate.
- the transmission processing unit performs a process of discarding the frame data of the target number of frames among the frame data output from the video encoder without transmitting it to the receiving device (1).
- the transmitter described. (10)
- the video encoder adds rate change information to the frame data to be encoded first after the encoding rate is changed.
- the transmission processing unit discards the frame data input from the video encoder after the transmission of the encoding rate reduction request and before the frame data to which the rate change information is added is input. Transmitter. (11)
- the transmission processing unit transmits the frame identification information of the frame data transmitted to the receiving side device to the video encoder before executing the delay reduction processing.
- the video encoder uses the frame data indicated by the frame identification information as a reference destination for interframe reference for the frame data that is first output to the transmission processing unit after the encoding rate is reduced in response to the encoding rate reduction request.
- the transmitter according to (9) or (10) above.
- (12) The transmission device according to (11) above, wherein the frame identification information is frame identification information of the last frame data transmitted to the receiving device before the execution of the delay reduction processing.
- the time stamp value of the frame data first transmitted by the transmission processing unit after the target frame of the delay reduction processing is larger than the time stamp value of the frame data last transmitted before the delay reduction processing.
- the video encoder first outputs the frame data to the transmission processing unit after lowering the encoding rate in response to the encoding rate lowering request.
- the transmitter according to (11) or (12) above which encodes the IDR frame.
- the video encoder has a memory that can temporarily store the frame data after encoding.
- the frame data to be first output to the transmission processing unit after the encoding rate is lowered in response to the encoding rate lowering request encodes the frame data stored in the memory as a reference destination in the above (9) to (15).
- the transmitter according to any.
- the video encoder periodically outputs a reference frame for a long time,
- the frame data that is first output to the transmission processing unit after the encoding rate is lowered in response to the encoding rate lowering request is one of the above (9) to (16) that encodes the long-time reference frame as a reference destination.
- the video encoder When it is determined that the long-time reference frame is discarded by the transmission processing unit, The transmission device according to (17) above, wherein the frame data first output to the transmission processing unit after the encoding rate is reduced in response to the encoding rate reduction request is an IDR frame. (19) The transmission device according to (18) above, wherein the video encoder lowers the encoding rate to a rate lower than the rate specified in the encoding rate reduction request so that the data size of the IDR frame to be transmitted is suppressed within a predetermined maximum size. ..
- the rate reduction control is performed for the encoding rate in the video encoder, and the delay reduction process for reducing the delay amount of the transmission data for the frame data of one or a plurality of target frames. Sending method to execute.
- Imaging device Transmission unit 3 Receiving device 4 Network 5 Receiving unit 21 Video capture unit 22 CPU 23 Packet transmission module 24 Video encoder 25 Memory 26 Network interface unit 27 Bus 32 Imaging unit 33 Image signal processing unit 34 Storage unit 35 Control unit 36 Operation unit 38 Display control unit 39 Display unit 51 Network interface unit 52 Packet reception module 53 Video decoder 54 Video Renderer
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
送信装置は、 画像のフレームデータ毎にエンコードを行うビデオエンコーダと、送信処理部を備える。送信処理部は、ビデオエンコーダでエンコードされた画像データの送信処理中に、受信側機器への伝送遅延に応じてビデオエンコーダにおけるエンコードレートについてレート低下制御を行うとともに、1又は複数の対象フレーム数のフレームデータについて伝送データの遅延量を低減させる遅延低減処理が実行されるようにする。
Description
本技術は送信装置、送信方法に関し、特にビデオストリームの伝送遅延の改善についての技術分野に関する。
ビデオストリーミングなどのデータ伝送の分野では、伝送エラーが生じた場合の対処や伝送レートの低下やそれによる伝送遅延などの改善が検討されてきた。
下記特許文献1では、伝送レートの低下があっても、受信側での十分な画質による再生と安定的な伝送を確保する技術が開示されている。
下記特許文献1では、伝送レートの低下があっても、受信側での十分な画質による再生と安定的な伝送を確保する技術が開示されている。
近年では、例えば5G(第五世代移動通信システム)のような通信方式により、より大容量高速伝送が可能になっており、低遅延のビデオストリーミングを行う送受信システムも開発されている。
ところが、画像の高精細化などにより伝送データ量の増大やネットワーク負荷の増大に伴い、伝送遅延の問題は依然として改善が求められる状況にある。
ところが、画像の高精細化などにより伝送データ量の増大やネットワーク負荷の増大に伴い、伝送遅延の問題は依然として改善が求められる状況にある。
伝送遅延には、送信レート(送信データレート)の低下時の送信遅延、ネットワーク遅延、受信側のコーデック/バッファリング遅延、デコード遅延などの様々な要因があるが、送信レート低下時の送信遅延は比較的大きな要因となっている。
そこで本開示では、送信レート低下時の送信遅延の改善を図ることを目的とする。
そこで本開示では、送信レート低下時の送信遅延の改善を図ることを目的とする。
本技術に係る送信装置は、画像のフレームデータ毎にエンコードを行うビデオエンコーダと、前記ビデオエンコーダでエンコードされた画像データの送信処理中に、前記ビデオエンコーダにおけるエンコードレートについてレート低下制御を行うとともに、1又は複数の対象フレーム数のフレームデータについて伝送データの遅延量を低減させる遅延低減処理が実行されるようにする送信処理部と、を備える。
例えばビデオストリーミングなどの画像データ伝送においてネットワークの輻輳による伝送遅延やパケット損失が発生した場合などに、それ対応するため送信レートを下げるとともに、送信する画像データの一部のフレームデータを破棄するなどして遅延が生じない(又は少なくとも遅延が低減される)ようにする遅延低減処理が実行されるようにする。
なお本開示において「フレームデータ」とは、1フレーム単位の画像データのことを指す。
例えばビデオストリーミングなどの画像データ伝送においてネットワークの輻輳による伝送遅延やパケット損失が発生した場合などに、それ対応するため送信レートを下げるとともに、送信する画像データの一部のフレームデータを破棄するなどして遅延が生じない(又は少なくとも遅延が低減される)ようにする遅延低減処理が実行されるようにする。
なお本開示において「フレームデータ」とは、1フレーム単位の画像データのことを指す。
上記した本技術に係る送信装置においては、前記送信処理部は、前記ビデオエンコーダに対して、エンコードレート低下要求と、遅延低減処理の対象フレーム数を送信し、前記ビデオエンコーダは、エンコードレート低下要求に応じてエンコードレートを低下させるとともに、前記遅延低減処理として、前記対象フレーム数のフレームデータを前記送信処理部に対して出力しないようにする処理を行うことが考えられる。
つまり遅延低減処理をビデオエンコーダ側で実行する。例えばビデオエンコーダにおいてエンコードレートを低下させる際に、指示された対象フレーム数のフレームデータをビデオエンコーダ内で破棄するなどして送信処理部に出力しないようにする。
つまり遅延低減処理をビデオエンコーダ側で実行する。例えばビデオエンコーダにおいてエンコードレートを低下させる際に、指示された対象フレーム数のフレームデータをビデオエンコーダ内で破棄するなどして送信処理部に出力しないようにする。
上記した本技術に係る送信装置においては、前記ビデオエンコーダは、前記遅延低減処理として、指示された対象フレーム数だけ入力されたフレームデータをエンコードせずに破棄する処理を行うことが考えられる。
ビデオエンコーダはエンコードレート低下要求を受けることに応じて、以降に入力される対象フレーム数のフレームデータを、そのままエンコードせずに破棄することで、結果としてエンコード済のフレームデータが送信処理部に供給されないようにする。
ビデオエンコーダはエンコードレート低下要求を受けることに応じて、以降に入力される対象フレーム数のフレームデータを、そのままエンコードせずに破棄することで、結果としてエンコード済のフレームデータが送信処理部に供給されないようにする。
上記した本技術に係る送信装置においては、前記ビデオエンコーダは、遅延低減処理の対象フレームの後に前記送信処理部に最初に出力するフレームデータについては、遅延低減処理の対象フレームより前のフレームであって前記送信処理部に出力済のフレームデータをフレーム間参照の参照先とするエンコードを行うことが考えられる。
例えばビデオエンコーダがH.264規格やH.265規格であってフレーム間参照を行う動画圧縮規格のエンコーダである場合を想定する。この場合、例えば遅延低減処理として1又は複数の対象フレームを破棄した後に送信処理部に出力するフレームデータは、既に送信処理部に出力していたフレームデータを参照先としたものとする。
例えばビデオエンコーダがH.264規格やH.265規格であってフレーム間参照を行う動画圧縮規格のエンコーダである場合を想定する。この場合、例えば遅延低減処理として1又は複数の対象フレームを破棄した後に送信処理部に出力するフレームデータは、既に送信処理部に出力していたフレームデータを参照先としたものとする。
上記した本技術に係る送信装置においては、前記ビデオエンコーダは、遅延低減処理の対象フレームの後に前記送信処理部に最初に出力するフレームデータについては、遅延低減処理の前に最後に前記送信処理部に出力したフレームデータをフレーム間参照の参照先とするエンコードを行うことが考えられる。
例えば遅延低減処理として1又は複数の対象フレームを破棄した後に送信処理部に出力するフレームデータは、破棄するフレームの直前のフレームのフレームデータを参照先としたものとする。
例えば遅延低減処理として1又は複数の対象フレームを破棄した後に送信処理部に出力するフレームデータは、破棄するフレームの直前のフレームのフレームデータを参照先としたものとする。
上記した本技術に係る送信装置においては、前記ビデオエンコーダが遅延低減処理の対象フレームの後に前記送信処理部に最初に出力するフレームデータのタイムスタンプ値は、遅延低減処理の前に最後に前記送信処理部に出力したフレームデータのタイムスタンプ値よりも、{(遅延低減処理の対象フレーム数)+1}×(フレーム間隔時間)だけ進んだ値となっていることが考えられる。
即ち遅延低減処理の後のフレームは、遅延低減処理の前のフレームから、遅延低減処理の対象フレーム数に相当する時間だけ経過した時刻に対応するものとする。
即ち遅延低減処理の後のフレームは、遅延低減処理の前のフレームから、遅延低減処理の対象フレーム数に相当する時間だけ経過した時刻に対応するものとする。
上記した本技術に係る送信装置においては、前記送信処理部がエンコードレートを低下させる決定をした時点から、前記ビデオエンコーダがそれに従ってエンコードした最初のフレームデータを出力できるまでの間にビデオエンコーダから出力されるフレーム数がN個(Nは正数)であり、レート低下に係る新エンコードレートと旧エンコードレートとの比が1:Rである場合に、前記対象フレーム数はceiling((R-1)×N)以上であることが考えられる。
シーリング関数によるceiling((R-1)×N)で求められる切り上げ値で対象フレーム数が計算される。
シーリング関数によるceiling((R-1)×N)で求められる切り上げ値で対象フレーム数が計算される。
上記した本技術に係る送信装置においては、前記ビデオエンコーダは、前記遅延低減処理として、指示された対象フレーム数だけ、参照情報を含み画像データを含まないフレームデータを出力する処理を行うことが考えられる。
例えばスキップフレームといわれる、参照情報を含むが画像自体のデータは含まないフレームデータ送信処理部に供給する。
例えばスキップフレームといわれる、参照情報を含むが画像自体のデータは含まないフレームデータ送信処理部に供給する。
上記した本技術に係る送信装置においては、前記送信処理部は、前記ビデオエンコーダに対して、エンコードレート低下要求を送信し、前記ビデオエンコーダは、エンコードレート低下要求に応じてエンコードレートを低下させ、前記送信処理部は、前記遅延低減処理として、前記ビデオエンコーダから出力されたフレームデータのうちで前記対象フレーム数のフレームデータを受信側機器へ送信せずに破棄する処理を行うことが考えられる。
つまり遅延低減処理を送信処理部側で実行する。送信処理部は、伝送遅延などによりビデオエンコーダのエンコードレートを低下させるとともに、入力されたエンコード済のフレームデータのうちで、対象フレーム数のフレームデータを受信側機器に送信せずに破棄する。
つまり遅延低減処理を送信処理部側で実行する。送信処理部は、伝送遅延などによりビデオエンコーダのエンコードレートを低下させるとともに、入力されたエンコード済のフレームデータのうちで、対象フレーム数のフレームデータを受信側機器に送信せずに破棄する。
上記した本技術に係る送信装置においては、前記ビデオエンコーダは、エンコードレート変更後に最初にエンコードするフレームデータにレート変更情報を付加し、前記送信処理部は、エンコードレート低下要求の送信後、前記レート変更情報が付加されたフレームデータが入力される前までに前記ビデオエンコーダから入力されたフレームデータを破棄することが考えられる。
ビデオエンコーダは、レート変更情報を付加することで、送信処理部においてエンコードレート変更後のフレームデータが判定できるようにする。
ビデオエンコーダは、レート変更情報を付加することで、送信処理部においてエンコードレート変更後のフレームデータが判定できるようにする。
上記した本技術に係る送信装置においては、前記送信処理部は、遅延低減処理の実行前に前記受信側機器に送信済のフレームデータのフレーム識別情報を前記ビデオエンコーダに対して送信し、前記ビデオエンコーダは、エンコードレート低下要求に応じてエンコードレートを低下させた後に前記送信処理部に最初に出力するフレームデータについては、前記フレーム識別情報で示されるフレームデータをフレーム間参照の参照先とするエンコードを行うことが考えられる。
例えばビデオエンコーダがH.264規格やH.265規格などにおいて、フレーム間参照を行うフレーム間圧縮(インターフレーム圧縮)を行う動画圧縮規格のエンコーダである場合には、送信処理部が遅延低減処理として対象フレームを破棄する場合、ビデオエンコーダが新レートで最初にエンコードするフレームデータは、送信処理部が既に受信側機器に送信済のフレームデータを参照先としたものとする。
例えばビデオエンコーダがH.264規格やH.265規格などにおいて、フレーム間参照を行うフレーム間圧縮(インターフレーム圧縮)を行う動画圧縮規格のエンコーダである場合には、送信処理部が遅延低減処理として対象フレームを破棄する場合、ビデオエンコーダが新レートで最初にエンコードするフレームデータは、送信処理部が既に受信側機器に送信済のフレームデータを参照先としたものとする。
上記した本技術に係る送信装置においては、前記フレーム識別情報は、遅延低減処理の実行前に前記受信側機器に送信した最後のフレームデータのフレーム識別情報であることが考えられる。
即ち送信処理部が遅延低減処理として1又は複数の対象フレームを破棄する場合に、その破棄するフレームデータの直前に受信側機器に送信したフレームデータを参照先としてエンコードが行われるようにする。
即ち送信処理部が遅延低減処理として1又は複数の対象フレームを破棄する場合に、その破棄するフレームデータの直前に受信側機器に送信したフレームデータを参照先としてエンコードが行われるようにする。
上記した本技術に係る送信装置においては、前記送信処理部が遅延低減処理の対象フレームの後に最初に送信するフレームデータのタイムスタンプ値は、遅延低減処理の前に最後に送信したフレームデータのタイムスタンプ値よりも、{(遅延低減処理の対象フレーム数)+1}×(フレーム間隔時間)だけ進んだ値となっていることが考えられる。
即ち遅延低減処理の後のフレームは、遅延低減処理の前のフレームから、遅延低減処理の対象フレーム数に相当する時間だけ経過した時間とする。
即ち遅延低減処理の後のフレームは、遅延低減処理の前のフレームから、遅延低減処理の対象フレーム数に相当する時間だけ経過した時間とする。
上記した本技術に係る送信装置においては、前記ビデオエンコーダは、前記フレーム識別情報で示されるフレームデータがフレーム間参照の参照先にできない場合、エンコードレート低下要求に応じてエンコードレートを低下させた後に前記送信処理部に最初に出力するフレームデータをIDRフレームとするエンコードを行うことが考えられる。
例えばビデオエンコーダが上記のようにH.264規格やH.265規格でフレーム間参照を行うフレーム間圧縮を行うエンコーダである場合には、新レートで最初にエンコードするフレームデータはIDR(Instant Decoder Refresh)フレームとする。
例えばビデオエンコーダが上記のようにH.264規格やH.265規格でフレーム間参照を行うフレーム間圧縮を行うエンコーダである場合には、新レートで最初にエンコードするフレームデータはIDR(Instant Decoder Refresh)フレームとする。
上記した本技術に係る送信装置においては、前記ビデオエンコーダは、エンコードレートをエンコードレート低下要求で指定されたレートより低くして、送信するIDRフレームのデータサイズを、所定の最大サイズ内に抑えるようにすることが考えられる。
レート変更後の最初のIDRフレームにおいてデータサイズが所定の最大サイズ内に収まるようにする。
レート変更後の最初のIDRフレームにおいてデータサイズが所定の最大サイズ内に収まるようにする。
上記した本技術に係る送信装置においては、前記ビデオエンコーダは、エンコード後のフレームデータを一時記憶できるメモリを備え、エンコードレート低下要求に応じてエンコードレートを低下させた後に前記送信処理部に最初に出力するフレームデータは、前記メモリに記憶されたフレームデータを参照先としてエンコードすることが考えられる。
ビデオエンコーダがエンコード後のある程度の時間、フレームデータを記憶するメモリを備えることで、破棄されないで送信していた数フレーム前のフレームデータも参照できるようにする。
ビデオエンコーダがエンコード後のある程度の時間、フレームデータを記憶するメモリを備えることで、破棄されないで送信していた数フレーム前のフレームデータも参照できるようにする。
上記した本技術に係る送信装置においては、前記ビデオエンコーダは、周期的に長時間参照フレームを出力し、エンコードレート低下要求に応じてエンコードレートを低下させた後に前記送信処理部に最初に出力するフレームデータは、前記長時間参照フレームを参照先としてエンコードすることが考えられる。
ビデオエンコーダは、長時間参照フレーム、いわゆるLTR(Long Term Reference)フレームを周期的に出力する。この場合にLTRフレームを参照先とする。
ビデオエンコーダは、長時間参照フレーム、いわゆるLTR(Long Term Reference)フレームを周期的に出力する。この場合にLTRフレームを参照先とする。
上記した本技術に係る送信装置においては、前記ビデオエンコーダは、前記長時間参照フレームが前記送信処理部で破棄されると判定した場合、エンコードレート低下要求に応じてエンコードレートを低下させた後に前記送信処理部に最初に出力するフレームデータをIDRフレームとすることが考えられる。
即ちビデオエンコーダは、LTRフレームが破棄の対象となった場合は、LTRフレームを参照先とすることは適切でないためレート変更後の最初のフレームをIDRフレームとする。
即ちビデオエンコーダは、LTRフレームが破棄の対象となった場合は、LTRフレームを参照先とすることは適切でないためレート変更後の最初のフレームをIDRフレームとする。
上記した本技術に係る送信装置においては、前記ビデオエンコーダは、エンコードレートをエンコードレート低下要求で指定されたレートより低くして、送信するIDRフレームのデータサイズを、所定の最大サイズ内に抑えるようにすることが考えられる。
レート変更後の最初のIDRフレームにおいてデータサイズが所定の最大サイズ内に収まるようにする。
レート変更後の最初のIDRフレームにおいてデータサイズが所定の最大サイズ内に収まるようにする。
本技術に係る送信方法は、送信装置が、ビデオエンコーダでエンコードされた画像データの送信処理中に、前記ビデオエンコーダにおけるエンコードレートについてレート低下制御を行うとともに、1又は複数の対象フレーム数のフレームデータについて伝送データの遅延量を低減させる遅延低減処理を実行する。
これにより送信装置側で伝送遅延を改善する。
これにより送信装置側で伝送遅延を改善する。
以下、実施の形態を次の順序で説明する。
<1.装置構成>
<2.比較例>
<3.第1の実施の形態>
<4.第2の実施の形態>
<5.第3の実施の形態>
<6.第4の実施の形態>
<7.まとめ及び変形例>
<1.装置構成>
<2.比較例>
<3.第1の実施の形態>
<4.第2の実施の形態>
<5.第3の実施の形態>
<6.第4の実施の形態>
<7.まとめ及び変形例>
<1.装置構成>
実施の形態の装置構成例について説明していく。図1A、図1Bはそれぞれ送信側機器としての撮像装置1と、受信側機器3を示している。
実施の形態の装置構成例について説明していく。図1A、図1Bはそれぞれ送信側機器としての撮像装置1と、受信側機器3を示している。
撮像装置1は、いわゆる業務用又は民生用のデジタルビデオカメラである。或いは撮像装置は、いわゆるデジタルスチルカメラや、スマートフォン、タブレット端末等の携帯端末装置であって、動画撮像が可能な機器であることも考えられる。
この撮像装置1は、例えば図1Bのように別体の送信ユニット2が取り付けられるか、又は図1Aのように送信ユニット2が内蔵されることにより、例えば5G等の通信方式によりネットワーク通信が可能とされている。特に本実施の形態では、撮像装置1は撮像した動画としての連続するフレームの画像データ、送信ユニット2を介してビデオストリーミング送信ができるものとする。
送信ユニット2、もしくは送信ユニット2を内蔵する撮像装置1が本開示の送信装置に該当することになる。
この撮像装置1は、例えば図1Bのように別体の送信ユニット2が取り付けられるか、又は図1Aのように送信ユニット2が内蔵されることにより、例えば5G等の通信方式によりネットワーク通信が可能とされている。特に本実施の形態では、撮像装置1は撮像した動画としての連続するフレームの画像データ、送信ユニット2を介してビデオストリーミング送信ができるものとする。
送信ユニット2、もしくは送信ユニット2を内蔵する撮像装置1が本開示の送信装置に該当することになる。
撮像装置1は例えばネットワーク4を介して受信側機器3にビデオストリーミング伝送を行う。
ネットワーク4としては、例えばインターネット、ホームネットワーク、LAN(Local Area Network)、衛星通信網、その他の各種のネットワークが想定される。
ネットワーク4としては、例えばインターネット、ホームネットワーク、LAN(Local Area Network)、衛星通信網、その他の各種のネットワークが想定される。
受信側機器3としては多様な機器が想定される。例えばクラウドサーバ、ネットワーク配信サーバ、ビデオサーバ、ビデオ編集装置、ビデオ再生装置、ビデオ記録装置、テレビジョン装置、或いはこれらと同等のビデオ処理機能を備えたパーソナルコンピュータや携帯端末などの情報処置装置などが想定される。
なお図1Aでは撮像装置1と受信側機器3はネットワーク4を介したネットワーク通信を行うものとしたが、図1Bのように撮像装置1が近距離無線通信等の無線伝送により受信側機器3に直接ビデオストリームデータを送信するような構成も考えられる。
図2は撮像装置1の構成を示している。なお、図2では撮像装置1が送信ユニット2を内蔵する例とするが、上述のように送信ユニット2は別体であってもよい。
撮像装置1は、撮像部32、画像信号処理部33、記憶部34、制御部35、操作部36、表示制御部38、表示部39、送信ユニット2を有する。
撮像部32は撮像のための撮像光学系やイメージセンサを有する。イメージセンサは、例えばCCD(Charge Coupled Device)センサやCMOS(Complementary Metal Oxide Semiconductor)センサ等の撮像素子とされ、撮像光学系を介して入射する被写体からの光を受光し、電気信号に変換して出力する。イメージセンサは、受光した光を光電変換して得た電気信号について、例えばCDS(Correlated Double Sampling)処理、AGC(Automatic Gain Control)処理などを実行し、さらにA/D(Analog/Digital)変換処理を行う。そしてデジタルデータとしての画像データを、後段の画像信号処理部33に出力する。
画像信号処理部33は、例えばDSP(Digital Signal Processor)等により画像処理プロセッサとして構成される。画像信号処理部33は、撮像部32から入力される画像データに対して、各種の処理を施す。
例えば画像信号処理部33は、通常の可視光画像として画像信号を想定した場合、R(赤),G(緑),B(青)の黒レベルを所定の信号レベルにクランプするクランプ処理、R,G,Bの色チャンネル間の補正処理、各画素についての画像データが、R,G,B全ての色成分を有するようにする色分離処理(ベイヤーフィルタ等のモザイクカラーフィルタを用いた場合はデモザイク処理)、輝度(Y)信号および色(C)信号を生成(分離)する処理等を施す。
さらに画像信号処理部33は、各種の信号処理が施された画像信号に対して、必要な解像度変換処理、例えば記憶用や通信出力用、或いはモニタ画像用の解像度変換を実行する場合もある。
また画像信号処理部33は、解像度変換された画像データについて、例えば記憶用の圧縮符号化処理等を行う場合もある。
例えば画像信号処理部33は、通常の可視光画像として画像信号を想定した場合、R(赤),G(緑),B(青)の黒レベルを所定の信号レベルにクランプするクランプ処理、R,G,Bの色チャンネル間の補正処理、各画素についての画像データが、R,G,B全ての色成分を有するようにする色分離処理(ベイヤーフィルタ等のモザイクカラーフィルタを用いた場合はデモザイク処理)、輝度(Y)信号および色(C)信号を生成(分離)する処理等を施す。
さらに画像信号処理部33は、各種の信号処理が施された画像信号に対して、必要な解像度変換処理、例えば記憶用や通信出力用、或いはモニタ画像用の解像度変換を実行する場合もある。
また画像信号処理部33は、解像度変換された画像データについて、例えば記憶用の圧縮符号化処理等を行う場合もある。
制御部35は、CPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)、フラッシュメモリなどを備えたマイクロコンピュータ(演算処理装置)により構成される。
CPUがROMやフラッシュメモリ等に記憶されたプログラムを実行することで、この撮像装置1の全体を統括的に制御する。
RAMは、CPUの各種データ処理の際の作業領域として、データやプログラム等の一時的な格納に用いられる。
ROMやフラッシュメモリ(不揮発性メモリ)は、CPUが各部を制御するためのOS(Operating System)や、画像ファイル等のコンテンツファイルの他、各種動作のためのアプリケーションプログラムや、ファームウエア等の記憶に用いられる。
CPUがROMやフラッシュメモリ等に記憶されたプログラムを実行することで、この撮像装置1の全体を統括的に制御する。
RAMは、CPUの各種データ処理の際の作業領域として、データやプログラム等の一時的な格納に用いられる。
ROMやフラッシュメモリ(不揮発性メモリ)は、CPUが各部を制御するためのOS(Operating System)や、画像ファイル等のコンテンツファイルの他、各種動作のためのアプリケーションプログラムや、ファームウエア等の記憶に用いられる。
このような制御部35は、撮像部32におけるシャッタースピード、露光調整、フレームレート等の撮像動作に関する制御や、画像信号処理部33における各種信号処理のパラメータ制御などの制御を行う。また制御部35は、ユーザの操作に応じた設定処理、撮像動作制御、表示動作制御等を行う。
操作部36は、装置筐体に設けられるキー、スイッチ、ダイヤル等の操作子、或いはタッチパネルなどが想定される。操作部36は入力された操作に応じた信号を制御部35へ送る。
表示部39はユーザ(撮像者等)に対して各種表示を行う表示部であり、例えばLCD(Liquid Crystal Display)や有機EL(Electro-Luminescence)ディスプレイ等のディスプレイデバイスで形成される。
表示制御部38は表示部39における表示動作を実行させる処理を行う。例えばキャラクタジェネレータや表示ドライバ等を有し、制御部35の制御に基づいて、表示部39に各種の表示を実行させる。例えばスルー画や記録媒体に記録した静止画や動画を再生表示させたり、各種操作メニュー、アイコン、メッセージ等、即ちGUI(Graphical User Interface)としての表示を画面上に実行させたりする。
表示制御部38は表示部39における表示動作を実行させる処理を行う。例えばキャラクタジェネレータや表示ドライバ等を有し、制御部35の制御に基づいて、表示部39に各種の表示を実行させる。例えばスルー画や記録媒体に記録した静止画や動画を再生表示させたり、各種操作メニュー、アイコン、メッセージ等、即ちGUI(Graphical User Interface)としての表示を画面上に実行させたりする。
記憶部34は、例えば不揮発性メモリからなり、例えば撮像部32で撮像された静止画データや動画データ等の画像ファイルや、画像ファイルの属性情報、サムネイル画像等を記憶する。
記憶部34の実際の態様は多様に考えられる。例えば記憶部34は、撮像装置1に内蔵されるフラッシュメモリでもよいし、撮像装置1に着脱できるメモリカード(例えば可搬型のフラッシュメモリ)と該メモリカードに対して記録再生アクセスを行うカード記録再生部による形態でもよい。また撮像装置1に内蔵されている形態として記憶部34はHDD(Hard Disk Drive)などとして実現されることもある。
記憶部34の実際の態様は多様に考えられる。例えば記憶部34は、撮像装置1に内蔵されるフラッシュメモリでもよいし、撮像装置1に着脱できるメモリカード(例えば可搬型のフラッシュメモリ)と該メモリカードに対して記録再生アクセスを行うカード記録再生部による形態でもよい。また撮像装置1に内蔵されている形態として記憶部34はHDD(Hard Disk Drive)などとして実現されることもある。
送信ユニット2は、上述のように撮像された画像データ(動画)のストリーミング送信を行うユニットである。
送信ユニット2の構成を図3に示す。送信ユニット2はビデオキャプチャ部21、CPU22、パケット送信モジュール23、ビデオエンコーダ24、メモリ25、ネットワークインタフェース部26を有する。
送信ユニット2の構成を図3に示す。送信ユニット2はビデオキャプチャ部21、CPU22、パケット送信モジュール23、ビデオエンコーダ24、メモリ25、ネットワークインタフェース部26を有する。
ビデオキャプチャ部21には、例えば画像信号処理部33で処理された各フレームの画像データ(フレームデータ)Vinが入力される。例えば所定の時間間隔(撮像装置1の撮像動作のフレームレートに応じたフレーム間隔)で圧縮されていないフレームデータが入力される。
なお、本開示において「フレームデータ」とは、1フレーム単位の画像データのことを指す。
ビデオキャプチャ部21は、入力される画像データVinをフレーム単位でバス27を介してビデオエンコーダ24に転送する。
バス27は例えばPCIe(Peripheral Component Interconnect Express)などのバスである。
なお、本開示において「フレームデータ」とは、1フレーム単位の画像データのことを指す。
ビデオキャプチャ部21は、入力される画像データVinをフレーム単位でバス27を介してビデオエンコーダ24に転送する。
バス27は例えばPCIe(Peripheral Component Interconnect Express)などのバスである。
CPU22は送信ユニット2のコントローラとして機能する。特にCPU22は例えばソフトウエアによりパケット送信モジュール23としての機能を備える。
ビデオエンコーダ24はフレームデータ単位で圧縮符号化するエンコード処理を行い、エンコード済のフレームデータをCPU22におけるパケット送信モジュール23にバス27を介して転送する。
パケット送信モジュール23は送信用のパケット分割処理を行い、ビデオストリームデータをパケット単位でネットワークインタフェース部26から送信出力させる処理を行う。
パケット送信モジュール23は送信用のパケット分割処理を行い、ビデオストリームデータをパケット単位でネットワークインタフェース部26から送信出力させる処理を行う。
このような送信ユニット2と受信側機器3でのビデオストリーム伝送の概要を図4に示している。
送信ユニット2では、ビデオキャプチャ部21に入力された画像データVinがビデオエンコーダ24でエンコードされ、パケット送信モジュール23でパケット化される。このビデオデータパケットVDPKがネットワークインタフェース部26によりネットワーク4に送出される。
送信ユニット2では、ビデオキャプチャ部21に入力された画像データVinがビデオエンコーダ24でエンコードされ、パケット送信モジュール23でパケット化される。このビデオデータパケットVDPKがネットワークインタフェース部26によりネットワーク4に送出される。
受信側機器3は受信ユニット5を備える。
受信ユニット5ではネットワークインタフェース部51によりビデオデータパケットVDPKを受信し、パケット受信モジュール52に取り込む。そして各パケットから圧縮済みのフレームデータを抽出し、ビデオデコーダ53で圧縮に対するデコード処理が行われる。そしてビデオレンダラ54を介して、受信されたビデオストリームデータVRXが出力される。
受信ユニット5ではネットワークインタフェース部51によりビデオデータパケットVDPKを受信し、パケット受信モジュール52に取り込む。そして各パケットから圧縮済みのフレームデータを抽出し、ビデオデコーダ53で圧縮に対するデコード処理が行われる。そしてビデオレンダラ54を介して、受信されたビデオストリームデータVRXが出力される。
このような送受信システムにおいて、伝送遅延が生ずることがある。そのため受信ユニット5は送信ユニット2に対して逐次制御パケットCPKを送信し、状況を伝達している。例えば制御パケットCPKには、現在の受信ユニット5での受信レートや遅延量やパケット損失率を通知できる情報が含まれている。
この制御パケットCPKを受信することで、送信ユニット2のパケット送信モジュール23は、現在のネットワークの状態を認識し、送信可能レートを変更(低下又は上昇)させるとともに、ビデオエンコーダ24に指示してエンコードレートを変更(低下又は上昇)させる(即ち圧縮率を上げる又は下げる)ように制御できる。
この制御パケットCPKを受信することで、送信ユニット2のパケット送信モジュール23は、現在のネットワークの状態を認識し、送信可能レートを変更(低下又は上昇)させるとともに、ビデオエンコーダ24に指示してエンコードレートを変更(低下又は上昇)させる(即ち圧縮率を上げる又は下げる)ように制御できる。
なお本開示では、特に伝送遅延への対処を主眼とするために伝送遅延が生じた場合にエンコードレートや送信レートを低下させる点に注目して説明するが、もちろんネットワーク輻輳状態の回復に応じて送信レートやエンコードレートを上げることができる。
<2.比較例>
ここでは本実施の形態の動作説明に先だって、伝送遅延の発生について説明しておく。
携帯通信網など通信品質が不安定なネットワーク上で、低遅延なビデオストリーミングを行う送受信システムを考える。
このような送受信システムにおいては、これまで、ネットワーク上でのパケット損失への対応策が主に論じられてきた。例えば、パケット損失を検出した場合に、送信レートを下げてそれ以上のパケット損失を避けるという対策がある。また、失われたパケットによる画像上のエラーが長引くのを防ぐために、IDR (Instantaneous Decoding Refresh)フレームを送ったり、参照フレーム(RPS:Reference Picture Selection)を変更したりすることが考えられてきた。これらについて次の文献が参照できる。
・"Evaluation of error resilience mechanisms for 3G conversational video",2008 Tenth IEEE International Symposium on Multimedia, 2008
・"H.264/AVC in Wireless Environments", IEEE Trans. on Circuits and Systems for Video Technology, 2003.
ここでは本実施の形態の動作説明に先だって、伝送遅延の発生について説明しておく。
携帯通信網など通信品質が不安定なネットワーク上で、低遅延なビデオストリーミングを行う送受信システムを考える。
このような送受信システムにおいては、これまで、ネットワーク上でのパケット損失への対応策が主に論じられてきた。例えば、パケット損失を検出した場合に、送信レートを下げてそれ以上のパケット損失を避けるという対策がある。また、失われたパケットによる画像上のエラーが長引くのを防ぐために、IDR (Instantaneous Decoding Refresh)フレームを送ったり、参照フレーム(RPS:Reference Picture Selection)を変更したりすることが考えられてきた。これらについて次の文献が参照できる。
・"Evaluation of error resilience mechanisms for 3G conversational video",2008 Tenth IEEE International Symposium on Multimedia, 2008
・"H.264/AVC in Wireless Environments", IEEE Trans. on Circuits and Systems for Video Technology, 2003.
一方、パケットのRTT(Round Trip Time)やネットワーク上に滞留するパケット数の増加などを観測することによってネットワークの混雑を見出し、パケット損失が発生する前に送信レートを落とすことも考えられてきた。例えば次の文献が参照できる。
・"Experimental Investigation of the Google Congestion Control for Real-Time Flows", ACM SIGCOMM workshop on Future human-centric multimedia networking (FhMN '13), 2013.
・"Self-Clocked Rate Adaptation for Multimedia", IETF RFC 8298, 2017
・"Experimental Investigation of the Google Congestion Control for Real-Time Flows", ACM SIGCOMM workshop on Future human-centric multimedia networking (FhMN '13), 2013.
・"Self-Clocked Rate Adaptation for Multimedia", IETF RFC 8298, 2017
こうすることで、パケット損失による受信側の画像が乱れを減らすことができ、さらに、ネットワーク内部のバッファにたまるパケット量を減らすことができるので、伝送遅延を減らすこともできる。
RTTや滞留パケット数の変化は、送信端末と受信端末の間で制御パケットをやりとりすることで検出することができる。例えば、送信時刻が書かれたRTCPパケットを互いに送りあうことでRTTを計測することができる。RTPについては例えば次の文献が参照できる。
・"RTP: A Transport Protocol for Real-Time Applications", IETF RFC 3550, 2003
・"RTP: A Transport Protocol for Real-Time Applications", IETF RFC 3550, 2003
また、受信したビデオデータパケットに対し受信側から応答確認(ACK)パケットを送るようにし、送信側で戻らないACKを調べれば、滞留パケット数を推測することができる。
さて、送信レートを落とす場合、ビデオエンコーダのエンコードレートを下げなければならないが、エンコーダは一般にすぐにレートを落とすことができない。
例えば図3の送信ユニット2としての構成で考えると次のようになる。
CPU22上のパケット送信モジュール23から出されるエンコードレート低下要求(以下「レート低下要求」と略す場合もある)は、CPU22上で動作するOS(Operating System)を通してバス27に送出され、それがビデオエンコーダ24に渡され、ビデオエンコーダ24で処理される。
このエンコード低下要求から、それがビデオエンコーダ24の出力に反映されるまでのタイムチャートを図5に示す。
例えば図3の送信ユニット2としての構成で考えると次のようになる。
CPU22上のパケット送信モジュール23から出されるエンコードレート低下要求(以下「レート低下要求」と略す場合もある)は、CPU22上で動作するOS(Operating System)を通してバス27に送出され、それがビデオエンコーダ24に渡され、ビデオエンコーダ24で処理される。
このエンコード低下要求から、それがビデオエンコーダ24の出力に反映されるまでのタイムチャートを図5に示す。
図5は本実施の形態に対する比較例としての動作を示すものである。
図5ではビデオエンコーダ24からの出力フレーム(F1,F2・・・)と、パケット送信モジュール23からのデータ送信に係るフレーム(F1,F2・・・)の時間関係を示している(横軸は時間)。ビデオエンコーダ24からの出力フレームについては縦軸がフレームデータのデータサイズを表しているとする。パケット送信モジュール23からのデータ送信については縦軸が送信レートに相当する。
図5ではビデオエンコーダ24からの出力フレーム(F1,F2・・・)と、パケット送信モジュール23からのデータ送信に係るフレーム(F1,F2・・・)の時間関係を示している(横軸は時間)。ビデオエンコーダ24からの出力フレームについては縦軸がフレームデータのデータサイズを表しているとする。パケット送信モジュール23からのデータ送信については縦軸が送信レートに相当する。
なお、あくまで説明上のモデルであるので、フレームF1を送信する当初は、エンコードデータの1フレームを送信するのに、ちょうど1フレーム間隔分の時間を要していたものとし、その状態でパケット送信モジュール23は時点t0より後に送信するフレームデータについては、送信レートを1/2に低下させるとする。つまりパケット送信モジュール23は時点t0に、ビデオデータパケットVDPKの送信レート低下とともに、ビデオエンコーダ24のエンコードレート低下を決定して指示する。
ところが図示のように、時点t0にパケット送信モジュール23がエンコードレート低下を決定しても、すぐにはレート低下要求がビデオエンコーダ24には届かない。例えば時点t1においてレート低下要求がビデオエンコーダ24には届くことになる。
また、エンコード低下要求がビデオエンコーダ24に届いた時、すでにエンコード処理が行われているフレームF4は、新しいレートでエンコードし直すことができないため、そのままパケット送信モジュール23に転送され、パケット化されて出力される。ビデオエンコーダ24においてレートを下げた新レートでエンコードがされるのはフレームF5からとなる。
また、エンコード低下要求がビデオエンコーダ24に届いた時、すでにエンコード処理が行われているフレームF4は、新しいレートでエンコードし直すことができないため、そのままパケット送信モジュール23に転送され、パケット化されて出力される。ビデオエンコーダ24においてレートを下げた新レートでエンコードがされるのはフレームF5からとなる。
このように、パケット送信モジュール23がエンコードレートの低下を決定しても、ビデオエンコーダ24は、すぐにそのレートに従ったフレームデータを出力できない。
そしてビデオエンコーダ24のエンコードレート低下が遅れると、高いレートでエンコードされた大きなフレームデータを低い送信レートで一時的に送る必要が生じる。このため、そのフレームデータの送信完了までに要する時間、すなわち伝送遅延が大きくなってしまう。
図5の例ではフレームF2,F3,F4がレート変更前の大きなレートでエンコードされているので、パケット送信モジュール23がこれを1/2に低下させた送信レートで送信すると、本来の2倍の時間がかかってしまう。
さらに、フレームF2,F3,F4で蓄積した伝送遅延が、フレームF5以降のフレームにも残ってしまう。
特に非常に小さい遅延でのビデオストリーミングを目指す場合、このような送信レート低下時の送信遅延はさけるようにしたい。
そしてビデオエンコーダ24のエンコードレート低下が遅れると、高いレートでエンコードされた大きなフレームデータを低い送信レートで一時的に送る必要が生じる。このため、そのフレームデータの送信完了までに要する時間、すなわち伝送遅延が大きくなってしまう。
図5の例ではフレームF2,F3,F4がレート変更前の大きなレートでエンコードされているので、パケット送信モジュール23がこれを1/2に低下させた送信レートで送信すると、本来の2倍の時間がかかってしまう。
さらに、フレームF2,F3,F4で蓄積した伝送遅延が、フレームF5以降のフレームにも残ってしまう。
特に非常に小さい遅延でのビデオストリーミングを目指す場合、このような送信レート低下時の送信遅延はさけるようにしたい。
そこで本実施の形態では、以上のような状況において送信ユニット2側で送信レートを下げる場合に、遅延低減処理を行うようにすることで伝送遅延が大きくなり続けるのを防ぐとともに、受信側機器3でのデコード画像にエラーが継続しない形となるようにする。
<3.第1の実施の形態>
図3の構成の送信ユニット2で実行できる第1の実施の形態の動作を説明する。第1の実施の形態は、遅延低減処理として、ビデオエンコーダ24内でフレームデータの破棄を行う例である。
図3の構成の送信ユニット2で実行できる第1の実施の形態の動作を説明する。第1の実施の形態は、遅延低減処理として、ビデオエンコーダ24内でフレームデータの破棄を行う例である。
パケット送信モジュール23は、受信ユニット5のパケット受信モジュール52と制御パケットCPKをやり取りすることで、RTTや滞留パケット数を計測する。そしてこれらの値の変化により、ネットワーク4の混雑や、携帯網の無線通信品質の悪化などを検出する。
これらが検出されると、パケット送信モジュール23は送信レートを低下させることを決定し、エンコードレートを新しい送信レートに合わせて低下させるようビデオエンコーダ24に指示する。この時パケット送信モジュール23は同時に、ビデオエンコーダ24の内部で破棄するフレーム数(即ち遅延低減処理の対象フレーム数)もビデオエンコーダ24に指示する。
これらが検出されると、パケット送信モジュール23は送信レートを低下させることを決定し、エンコードレートを新しい送信レートに合わせて低下させるようビデオエンコーダ24に指示する。この時パケット送信モジュール23は同時に、ビデオエンコーダ24の内部で破棄するフレーム数(即ち遅延低減処理の対象フレーム数)もビデオエンコーダ24に指示する。
パケット送信モジュール23は、遅延低減処理として破棄するフレーム数は以下のように計算する。
パケット送信モジュール23がエンコードレートを低下させる決定をした時点から、ビデオエンコーダ24がそれに従ってエンコードした最初のフレームデータを出力できるまでの間にビデオエンコーダ24から出力されるフレームデータの数がM個であり、新しいエンコードレートとそれまでのエンコードレートとの比が1:Rである場合に、破棄フレームの数は、
ceiling((R-1)×M)
とする。即ちシーリング関数で切り上げ演算を行う。例えば(R-1)×M=2.4であるとすると、ceiling(2.4)=3となり、破棄する対象フレーム数=3となる。
パケット送信モジュール23がエンコードレートを低下させる決定をした時点から、ビデオエンコーダ24がそれに従ってエンコードした最初のフレームデータを出力できるまでの間にビデオエンコーダ24から出力されるフレームデータの数がM個であり、新しいエンコードレートとそれまでのエンコードレートとの比が1:Rである場合に、破棄フレームの数は、
ceiling((R-1)×M)
とする。即ちシーリング関数で切り上げ演算を行う。例えば(R-1)×M=2.4であるとすると、ceiling(2.4)=3となり、破棄する対象フレーム数=3となる。
ビデオエンコーダ24は、エンコードレートのレート低下要求と対象フレーム数を受け取ったら、対象フレーム数のフレームデータを破棄しながら、新しいエンコードレートでのエンコードの設定準備を行う。この場合ビデオエンコーダ24の内部では、入力されたフレームデータを破棄し、符号化処理を行わないことにしてもよい。
また、ビデオエンコーダが、例えばH.264規格やH.265規格のエンコーダであって、フレーム間参照によるフレーム間圧縮を行うエンコーダの場合、フレーム破棄後に最初に出力するフレームデータが、破棄前の最後のフレームデータを参照するようにする。
また、フレーム破棄前に最後に出力したフレームデータのPTS(Presentation Time Stamp)を「PTS_L」とし、フレーム破棄後に最初に出力するフレームのPTSを 「PTS_F」とするとき、
PTS_F=(PTS_L+(対象フレーム数)+1)×(フレーム間隔時間)
と設定する。
また、フレーム破棄前に最後に出力したフレームデータのPTS(Presentation Time Stamp)を「PTS_L」とし、フレーム破棄後に最初に出力するフレームのPTSを 「PTS_F」とするとき、
PTS_F=(PTS_L+(対象フレーム数)+1)×(フレーム間隔時間)
と設定する。
以上のようにすることで、図5で示した状況が図6のように変化する。
なお図6では、R=2、M=3でceiling((R-1)×M)=3であり、破棄する対象フレーム数=3である。
図6は図5と同様にビデオエンコーダ24からの出力フレーム(F1,F2・・・)と、パケット送信モジュール23からのデータ送信に係るフレーム(F1,F2・・・)の時間関係を示している。
ビデオエンコーダ24は、フレームF4のエンコード中である時点t2にレート低下要求を受信する。この場合、対象フレーム数=3であるため、ビデオエンコーダ24はフレームF5、F6、F7の3つのフレームを破棄する。
なお図6では、R=2、M=3でceiling((R-1)×M)=3であり、破棄する対象フレーム数=3である。
図6は図5と同様にビデオエンコーダ24からの出力フレーム(F1,F2・・・)と、パケット送信モジュール23からのデータ送信に係るフレーム(F1,F2・・・)の時間関係を示している。
ビデオエンコーダ24は、フレームF4のエンコード中である時点t2にレート低下要求を受信する。この場合、対象フレーム数=3であるため、ビデオエンコーダ24はフレームF5、F6、F7の3つのフレームを破棄する。
そしてビデオエンコーダ24は、破棄後に最初にパケット送信モジュール23に対して出力するフレームF8は、少なくとも破棄前に出力されたフレームを参照先としたものとする。望ましくは破棄前に最後に出力されたフレームF4を参照先としたものとする。
パケット送信モジュール23からの送信についてみると、フレームF5、F6、F7が破棄されるため、フレームF2、F3、F4で遅延が増えるにも関わらず、フレームF8は本来の時刻に送信出力され、受信側機器3に受信される。
また、フレームF8はフレームF4を参照しており、かつ受信側機器3では、フレームF8のデコード時点で、フレームF4はデコード済みとなるので、フレームF8はエラー無くデコードできる。
また、フレームF8のPTSを上記のように設定してあるので、フレームF8はフレームF4の本来の再生時刻の4フレーム後、つまり本来のタイミングで再生されることになる。
また、フレームF8はフレームF4を参照しており、かつ受信側機器3では、フレームF8のデコード時点で、フレームF4はデコード済みとなるので、フレームF8はエラー無くデコードできる。
また、フレームF8のPTSを上記のように設定してあるので、フレームF8はフレームF4の本来の再生時刻の4フレーム後、つまり本来のタイミングで再生されることになる。
なおフレームF2、F3、F4は遅れて受信側機器3に到着するため、受信側機器3では本来のタイミングより遅く表示される。さらにフレームF5、F6、F7が破棄されるため、受信側機器3ではその間フレームF4が表示され続けることなる。しかし、フレームF8以降のフレームは遅延もエラーもなく表示されることになる。
以上の場合のパケット送信モジュール23とビデオエンコーダ24の処理を図7,図8に示す。
図7はパケット送信中のパケット送信モジュール23の処理例を示している。
ステップS101は、パケット送信モジュール23が、ビデオエンコーダ24から入力されたエンコード済みのフレームデータをパケット化してビデオデータパケットVDPKとして送信する処理、及び受信側機器3からの制御パケットCPKを受信する処理を示している。
ステップS102でパケット送信モジュール23は、ビデオデータパケットVDPKの送信終了、つまりビデオストリーミング送信の終了を監視する。
ステップS103でパケット送信モジュール23は、受信した制御パケットCPKの内容を確認し、レート低下が必要か否かを判定する。
ステップS101は、パケット送信モジュール23が、ビデオエンコーダ24から入力されたエンコード済みのフレームデータをパケット化してビデオデータパケットVDPKとして送信する処理、及び受信側機器3からの制御パケットCPKを受信する処理を示している。
ステップS102でパケット送信モジュール23は、ビデオデータパケットVDPKの送信終了、つまりビデオストリーミング送信の終了を監視する。
ステップS103でパケット送信モジュール23は、受信した制御パケットCPKの内容を確認し、レート低下が必要か否かを判定する。
パケット送信モジュール23は、レート低下制御が必要ではない通常時は、以上のステップS101、S102、S103、S104のループで、ビデオストリーミング送信を継続することになる。
ビデオストリーミング送信の終了の場合はステップS102から図7の処理を終える。
ビデオストリーミング送信の終了の場合はステップS102から図7の処理を終える。
パケット送信モジュール23は、ビデオストリーミング送信中に、伝送遅延の発生や発生のおそれなどを判定し、レート低下が必要と判断した場合、ステップS104からステップS105に進み、新たな送信レート、及びエンコードレートを設定する。例えば制御パケットCPKから判定される伝送遅延量や通信状況などにより適切なレートを設定する。
ステップS106でパケット送信モジュール23は、例えば上記のシーリング関数の計算により遅延低減処理の対象フレーム数を算出する。
ステップS107でパケット送信モジュール23は、ビデオエンコーダ24に対し、エンコードレートをステップS105で設定した新しいエンコードレートに低下するようにレート変更要求を送信する。このときステップS106で算出した対象フレーム数も送信する。
ステップS107でパケット送信モジュール23は、ビデオエンコーダ24に対し、エンコードレートをステップS105で設定した新しいエンコードレートに低下するようにレート変更要求を送信する。このときステップS106で算出した対象フレーム数も送信する。
その後ステップS108で送信レートを変更し、ステップS101に戻って新たな送信レートでのビデオデータパケットVDPKの送信処理を行う。
以上のようなパケット送信モジュール23の処理に対し、ビデオエンコーダ24はエンコード中において図8のように処理を行う。
ビデオエンコーダ24はステップS201で、入力されたフレームデータのエンコード及びエンコードしたフレームデータのパケット送信モジュール23への出力を継続して行う。
この間、ビデオエンコーダ24はステップS202ではビデオストリーミング送信の終了によりエンコード終了を判定するとともに、ステップS203でパケット送信モジュール23からのレート低下要求の受信を監視する。
ビデオエンコーダ24はエンコード終了により図8の処理を終了する。
ビデオエンコーダ24はステップS201で、入力されたフレームデータのエンコード及びエンコードしたフレームデータのパケット送信モジュール23への出力を継続して行う。
この間、ビデオエンコーダ24はステップS202ではビデオストリーミング送信の終了によりエンコード終了を判定するとともに、ステップS203でパケット送信モジュール23からのレート低下要求の受信を監視する。
ビデオエンコーダ24はエンコード終了により図8の処理を終了する。
ビデオエンコーダ24は、パケット送信モジュール23からのレート低下要求を受信した場合は、ステップS203からステップS204に進み、エンコード設定の変更を行う。つまりエンコードレートを変更する。但し、これはレート低下要求受信時点でエンコード途中のフレームのエンコードが完了した後に有効となるエンコード設定変更である。
そしてステップS205でビデオエンコーダ24は、遅延低減処理を行う。これは、ステップS206で遅延低減処理の対象フレーム数で指示されたフレーム数について遅延低減処理が完了したと判定するまで行う。
具体的には、レート低下要求受信以降に入力されたフレームデータの破棄を行う。つまり入力時点で破棄し、そのフレームデータについてはエンコードを行わない。
なお、入力されたフレームデータについて、エンコードを行った後にエンコードされたフレームデータを破棄するようにしてもよい。もちろん入力されたフレームデータをエンコードすることなく破棄する方が処理負担が少なくなり、望ましい。
具体的には、レート低下要求受信以降に入力されたフレームデータの破棄を行う。つまり入力時点で破棄し、そのフレームデータについてはエンコードを行わない。
なお、入力されたフレームデータについて、エンコードを行った後にエンコードされたフレームデータを破棄するようにしてもよい。もちろん入力されたフレームデータをエンコードすることなく破棄する方が処理負担が少なくなり、望ましい。
対象フレーム数の破棄を行ったら、ビデオエンコーダ24はステップS207に進み、参照フレーム設定を行い、ステップS201に戻り、以降、パケット送信モジュール23から指示された新しいエンコードレートでエンコードを行う。
ステップS207では、遅延低減処理の対象フレームより前のフレームであって、既にパケット送信モジュール23に出力済のフレームデータをフレーム間参照の参照先とする。図6では例えばフレームF4となる。これにより、レート変更後の最初のフレームとなるフレームF8は、出力済みのフレームF4を参照するフレームデータとなる。なおフレームF3、F2、又はF1なども出力済であるため、参照先としてもよい。
ステップS207では、遅延低減処理の対象フレームより前のフレームであって、既にパケット送信モジュール23に出力済のフレームデータをフレーム間参照の参照先とする。図6では例えばフレームF4となる。これにより、レート変更後の最初のフレームとなるフレームF8は、出力済みのフレームF4を参照するフレームデータとなる。なおフレームF3、F2、又はF1なども出力済であるため、参照先としてもよい。
<4.第2の実施の形態>
第2の実施の形態の動作を図9で説明する。第2の実施の形態は、遅延低減処理としてビデオエンコーダ24がスキップフレームを出力する例である。
図9では図6と同形式の図において、ビデオエンコーダ24が遅延低減処理の対象フレーム数に相当するフレームF5,F6,F7の3フレームについて、スキップフレームを出力する状態を示している。
第2の実施の形態の動作を図9で説明する。第2の実施の形態は、遅延低減処理としてビデオエンコーダ24がスキップフレームを出力する例である。
図9では図6と同形式の図において、ビデオエンコーダ24が遅延低減処理の対象フレーム数に相当するフレームF5,F6,F7の3フレームについて、スキップフレームを出力する状態を示している。
スキップフレームとは、例えば実際の画像データを含まず、参照先のみの情報を含むフレームであり、極めてデータサイズが小さい。
パケット送信モジュール23は、フレームF4に続いてフレームF5,F6,F7のスキップフレームも送信出力する。その後、新たなエンコードレートでエンコードされたフレームF8のフレームデータを送信する。
パケット送信モジュール23は、フレームF4に続いてフレームF5,F6,F7のスキップフレームも送信出力する。その後、新たなエンコードレートでエンコードされたフレームF8のフレームデータを送信する。
受信側機器3のビデオデコーダ53の処理能力が高く、スキップフレームを瞬時にデコードできる場合には、以上のようにビデオエンコーダ24は、内部でフレーム破棄を行う代わりに、フレーム参照情報だけを持つ非常に小さなスキップフレームを出力してもよい。スキップフレームはデータサイズが小さいので伝送遅延を悪化させることは殆どない。
なおこの場合の処理例は図7,図8と同様である。ビデオエンコーダ24は図8のステップS205の遅延低減処理として、フレーム破棄に代えてスキップフレーム出力を行えば良い。
<5.第3の実施の形態>
第3の実施の形態は、遅延低減処理としてのフレーム破棄をパケット送信モジュール23において行う例とする。またビデオエンコーダ24は必要な参照先の切り替えを行う。
第3の実施の形態は、遅延低減処理としてのフレーム破棄をパケット送信モジュール23において行う例とする。またビデオエンコーダ24は必要な参照先の切り替えを行う。
図10は、ビデオエンコーダ24から出力されるエンコードデータの1フレームを模式的に示している。
ビデオエンコーダ24は、図10のように、フレームデータに付加情報ヘッダデータを追加して出力できるものとし、その付加情報にエンコードレート変更ビットECBがあるものとする。
ビデオエンコーダ24は、図10のように、フレームデータに付加情報ヘッダデータを追加して出力できるものとし、その付加情報にエンコードレート変更ビットECBがあるものとする。
このエンコードレート変更ビットECBは、エンコードレートがそのフレームから変化したことを示すものとする。
例えば図示のようにフレームの画像データが始まる前の部分に当該付加情報を置き、そのうち1ビットがエンコードレート変更ビットECBであるとする。ビデオエンコーダ24は、エンコードレートを変更した後の最初のフレームでのみエンコードレート変更ビットECBを立て、そうでないフレームでは当該ビットを立てない。
例えば図示のようにフレームの画像データが始まる前の部分に当該付加情報を置き、そのうち1ビットがエンコードレート変更ビットECBであるとする。ビデオエンコーダ24は、エンコードレートを変更した後の最初のフレームでのみエンコードレート変更ビットECBを立て、そうでないフレームでは当該ビットを立てない。
パケット送信モジュール23は、送信レートを下げることを決め、レート変更要求をビデオエンコーダ24に通知した後、ビデオエンコーダ24からのエンコードレート変更ビットECBが立ったフレームデータの入力があるまで、ビデオエンコーダ24から入力されるフレームデータを破棄し続けるとする。
またパケット送信モジュール23は、レート変更要求をビデオエンコーダ24に通知するとき、フレームデータの破棄前にビデオデータパケットVDPKとして送信した最後のフレームのID番号(以下「フレームID」)も、ビデオエンコーダ24に通知するものとする。H.264規格の場合、このフレームIDとして、ビデオフレームのスライスヘッダ上にある“frame_num”を用いることができる。
またパケット送信モジュール23は、レート変更要求をビデオエンコーダ24に通知するとき、フレームデータの破棄前にビデオデータパケットVDPKとして送信した最後のフレームのID番号(以下「フレームID」)も、ビデオエンコーダ24に通知するものとする。H.264規格の場合、このフレームIDとして、ビデオフレームのスライスヘッダ上にある“frame_num”を用いることができる。
図11は、図6と同様の形式でビデオエンコーダ24からの出力フレーム(F1,F2・・・)と、パケット送信モジュール23からのデータ送信に係るフレーム(F1,F2・・・)の時間関係を示している。
時点t10でパケット送信モジュール23がレート低下を決定した後、ビデオエンコーダ24はレート低下要求を、フレームF4のエンコード中である時点t11に受信する。ビデオエンコーダ24はフレームF5から、新たなエンコードレートでエンコードすることになる。
この場合、時点t10以降、ビデオエンコーダ24から出力される旧レートのフレームF2,F3,F4も、パケット送信モジュール23に入力されるが、パケット送信モジュール23は、これらを破棄してビデオデータパケットVDPKとしては送信しない。従って、図示のようにフレームF1についてのビデオデータパケットVDPKを送信した後は、時点t12から、新レートでエンコードされたフレームデータについてのビデオデータパケットVDPKの送信が行われることになる。
旧レートでデータサイズの大きいフレームF2,F3,F4のフレームデータは、破棄されて送信対象とならないため、新レートで最初にエンコードされるフレームF5の送信が遅れることはない。
時点t10でパケット送信モジュール23がレート低下を決定した後、ビデオエンコーダ24はレート低下要求を、フレームF4のエンコード中である時点t11に受信する。ビデオエンコーダ24はフレームF5から、新たなエンコードレートでエンコードすることになる。
この場合、時点t10以降、ビデオエンコーダ24から出力される旧レートのフレームF2,F3,F4も、パケット送信モジュール23に入力されるが、パケット送信モジュール23は、これらを破棄してビデオデータパケットVDPKとしては送信しない。従って、図示のようにフレームF1についてのビデオデータパケットVDPKを送信した後は、時点t12から、新レートでエンコードされたフレームデータについてのビデオデータパケットVDPKの送信が行われることになる。
旧レートでデータサイズの大きいフレームF2,F3,F4のフレームデータは、破棄されて送信対象とならないため、新レートで最初にエンコードされるフレームF5の送信が遅れることはない。
ここで、パケット送信モジュール23がレート低下を決定してから、新しい低いレートでエンコードされたフレームデータがビデオエンコーダ24から出力されるまでの間に最大でM枚のフレームデータが出力されるとする。図11ではM=3の例とした。
ビデオエンコーダ24はエンコード済みの最新の複数のフレームデータをメモリ25に、にM+1枚以上の一定数保持するものとする。例えばリングメモリ形態で、常にメモリ25内の最も古いフレームデータが、最新のエンコード済みのフレームデータに書き換えられていくことで、各フレームデータが略一定期間保存されるようにする。
ビデオエンコーダ24はエンコード済みの最新の複数のフレームデータをメモリ25に、にM+1枚以上の一定数保持するものとする。例えばリングメモリ形態で、常にメモリ25内の最も古いフレームデータが、最新のエンコード済みのフレームデータに書き換えられていくことで、各フレームデータが略一定期間保存されるようにする。
ビデオエンコーダ24は、フレーム間圧縮を行うものである場合は、通常、新しいフレームデータをエンコードする際、そのフレームデータがメモリ25に保存されたうちで一番新しいフレームデータを参照するようにする。しかし、パケット送信モジュール23によりフレーム破棄が行われる際は、ビデオエンコーダ24は、低い新レートでエンコードする最初のフレームについて、メモリ25内に保持されたフレームデータで、破棄されていないもののうち、最新のフレームを参照するよう、参照先を切り替える。つまり、ビデオエンコーダ24は以下の動作を行う。
図12を用いて説明する。図12は図11で示した期間におけるパケット送信モジュール23による処理、レート低下要求の遅延、及びビデオエンコーダ24の処理を、より詳細に示している。
M=3とし、メモリ25内に4枚のフレームデータが保持されるとする。
M=3とし、メモリ25内に4枚のフレームデータが保持されるとする。
時点t10でパケット送信モジュール23がレート低下を決定した後、ビデオエンコーダ24はレート低下要求を時点t11に受信するが、このときパケット送信モジュール23が送信済みの最後のフレームのフレームIDも受信する。
パケット送信モジュール23が破棄前に最後に送信したのがフレームF1のフレームデータであり、ビデオエンコーダ24がパケット送信モジュール23から受信したフレームのID番号が“1”であったとする。この場合、ビデオエンコーダ24は、メモリ25内のフレームIDで“1”以下の最大のフレームIDをもつフレーム、つまり、破棄されていないフレームの中で最新のものを探す。
図12の場合、これはフレームID=“1”を持つフレームF1である。よってビデオエンコーダ24は、新しい低いレートでエンコードされる最新のフレームF5が、このフレームF1を参照するようにする。
図12の場合、これはフレームID=“1”を持つフレームF1である。よってビデオエンコーダ24は、新しい低いレートでエンコードされる最新のフレームF5が、このフレームF1を参照するようにする。
また、受信ユニット5におけるビデオデコーダ53はM+1(=4)枚のデコード済みフレームデータを保持していことで、フレームF5のデコード時にフレームF1を保持しており、フレームF5のデコードは問題なく行われる。よって受信側では、フレームF2からF3が表示されるはずの間、フレームF1が表示され続けるが、フレームF5以降は遅延もエラーもなく正しく表示される。
また、フレーム破棄後にパケット送信モジュール23が最初に送信するフレームF5のPTSが、フレーム破棄前の最後に送信されたフレームF1のPTSより、(破棄されたフレーム数+1)×(フレーム間隔時間)だけ進んでいるようにする。つまり、4フレーム分だけ進んでいるように設定する。これによりフレームF5は受信側機器3において正しいタイミングで再生される。
このような第3の実施の形態を第1の実施の形態と比較すると、第3の実施の形態では、レート低下前の旧エンコードレートでエンコードされたサイズの大きなフレームデータ(つまり図11,図12におけるフレームF2,F3,F4)がネットワーク4上に送信されることがないことになる。従って破棄されるフレームの数が少なく、また、ネットワーク4上の輻輳を悪化させる可能性がより低くなる。
以上の第3の実施の形態としてのパケット送信モジュール23とビデオエンコーダ24の処理を図13,図14に示す。なお上述の図7,図8と同様の処理については同一のステップ番号を付し重複説明を避ける。
図13はパケット送信中のパケット送信モジュール23の処理例を示しているが、図7と異なるのは、ステップS107A、及びステップS110,S111である。また図7で説明したステップS106の処理は不要となる。
パケット送信モジュール23は図13のステップS101からステップS105の処理を図7の例と同様に行う。
パケット送信モジュール23は図13のステップS105で送信レート、エンコードレートを設定したら、ステップS107Aで、ビデオエンコーダ24に対し、エンコードレートをステップS105で設定した新しいエンコードレートに低下するようにレート変更要求を送信する。このとき、破棄前に最後に送信出力したフレームデータのフレームIDも送信する。
そしてパケット送信モジュール23はステップS108で送信レートを変更する。
パケット送信モジュール23は図13のステップS105で送信レート、エンコードレートを設定したら、ステップS107Aで、ビデオエンコーダ24に対し、エンコードレートをステップS105で設定した新しいエンコードレートに低下するようにレート変更要求を送信する。このとき、破棄前に最後に送信出力したフレームデータのフレームIDも送信する。
そしてパケット送信モジュール23はステップS108で送信レートを変更する。
その後パケット送信モジュール23はステップS110で、ビデオエンコーダ24から入力されるフレームデータについて、エンコードレート変更ビットECBが付加されたフレーム、即ちエンコードレート低下後のフレームであるか否かを確認する。エンコードレート変更ビットECBがオフである旧レートでエンコードされたフレームデータであった場合、パケット送信モジュール23はステップS111で当該フレームデータを破棄する。
エンコードレート変更ビットECBがオンである新レートでエンコードされたフレームデータが入力されたら、パケット送信モジュール23は、ステップS101に戻って新たな送信レートでのビデオデータパケットVDPKの送信処理を行う。
エンコードレート変更ビットECBがオンである新レートでエンコードされたフレームデータが入力されたら、パケット送信モジュール23は、ステップS101に戻って新たな送信レートでのビデオデータパケットVDPKの送信処理を行う。
ビデオエンコーダ24はビデオエンコーダ中において図14のように処理を行う。図8と異なるのは、ステップS210、S211、S212の処理である。
ビデオエンコーダ24はステップS201で、入力されたフレームデータのエンコード及びエンコードしたフレームデータのパケット送信モジュール23への出力を継続して行うが、この際、ステップS210でエンコードしたフレームデータのメモリ25への記憶も行う。
ビデオエンコーダ24は、パケット送信モジュール23からのレート低下要求を受信したら、ステップS203からステップS211に進み、エンコード設定の変更を行う。つまりエンコードレートを変更する。
またビデオエンコーダ24はステップS212で付加情報設定及び参照フレーム設定を行い、ステップS201に戻る。
以降、ビデオエンコーダ24はパケット送信モジュール23から指示された新しいエンコードレートでエンコードを行う。
またビデオエンコーダ24はステップS212で付加情報設定及び参照フレーム設定を行い、ステップS201に戻る。
以降、ビデオエンコーダ24はパケット送信モジュール23から指示された新しいエンコードレートでエンコードを行う。
ここでステップS212の付加情報設定及び参照フレーム設定は、レート低下後の最初のフレームデータについて行うもので、まず当該フレームではエンコードレート変更ビットECBがオンとされるものとする。
また当該フレームでは、参照先を、メモリ25へ記憶されている中で、フレームIDが、パケット送信モジュール23から通知されたフレームID以下であって最大のフレームIDをもつフレームとするようにする。
また当該フレームでは、参照先を、メモリ25へ記憶されている中で、フレームIDが、パケット送信モジュール23から通知されたフレームID以下であって最大のフレームIDをもつフレームとするようにする。
なお、フレームIDが、パケット送信モジュール23から通知されたフレームID以下のフレームIDをもつフレームデータであればよく、必ずしも最大のフレームIDをもつフレームとしなくてもよい。
但し、通知されたフレームID以下であって最大のフレームIDをもつフレームを参照先とすることで、ビデオデコーダ53側では、レート変更後の最初のフレームデータのデコード時に、直前にデコードしたフレームを参照先とすることができる。
但し、通知されたフレームID以下であって最大のフレームIDをもつフレームを参照先とすることで、ビデオデコーダ53側では、レート変更後の最初のフレームデータのデコード時に、直前にデコードしたフレームを参照先とすることができる。
もし通知されたフレームID以下であって、必ずしも最大のフレームIDをもつフレームとはしない場合、つまり通知されたフレームID以下であれば参照先として良いとする場合は、受信側機器3においても同様にメモリを持つようにすればよい。即ち、受信ユニット5におけるビデオデコーダ53でもメモリ25と同様のフレーム数をデコードデータの段階で記憶できるメモリを備え、デコード結果のフレームデータを当該メモリ上に、メモリ25と同じフレーム数だけ保持するものとする。これによりデコード時に参照フレームが存在し、エラーなくデコードできるようになる。
逆に言えば、通知されたフレームID以下であって最大のフレームIDをもつフレームを参照先とすることで、受信側機器3においてデコードの際に多くのフレームを記憶しておかなくてもよいということになる。
逆に言えば、通知されたフレームID以下であって最大のフレームIDをもつフレームを参照先とすることで、受信側機器3においてデコードの際に多くのフレームを記憶しておかなくてもよいということになる。
ところでメモリ25に、パケット送信モジュール23から通知されたフレームID以下のフレームIDをもつフレームデータが存在しないこともあり得る。
その場合はステップS212でビデオエンコーダ24は、新レートで最初にエンコードするフレームについては、IDRフレームとするものと設定する。
またIDRフレームは通常非常にデータサイズが大きくなることが多いので、レート低下後の最初のフレームについてIDRフレームとする場合は、そのフレームについては、画質を落としてエンコードし、データサイズが所定の大きさ以下、例えば低下後の送信レートで遅延が発生しないサイズにすることも好適である。
その場合はステップS212でビデオエンコーダ24は、新レートで最初にエンコードするフレームについては、IDRフレームとするものと設定する。
またIDRフレームは通常非常にデータサイズが大きくなることが多いので、レート低下後の最初のフレームについてIDRフレームとする場合は、そのフレームについては、画質を落としてエンコードし、データサイズが所定の大きさ以下、例えば低下後の送信レートで遅延が発生しないサイズにすることも好適である。
<6.第4の実施の形態>
第4の実施の形態も、遅延低減処理としてのフレーム破棄をパケット送信モジュール23で行う例とするが、LTRフレームを挿入するビデオストリームを想定する。
第4の実施の形態も、遅延低減処理としてのフレーム破棄をパケット送信モジュール23で行う例とするが、LTRフレームを挿入するビデオストリームを想定する。
H.264規格、H.265規格などのビデオコーデックでは、LTRフレームを定期的に設定することができる。
LTRフレームは、明示的な指示があるまでビデオエンコーダ24内に保持される。今“Tr”フレーム毎に1フレームのLTRフレームが挿入されるものとする。ビデオデコーダ53でも、常に1枚のLTRフレームを保持するものとする。また、“Ti”フレームごとにIDRフレームが挿入されるとし、Ti>Trであるとする。
図15は、ビデオエンコーダ24からの出力の例として、12フレーム毎にIDRフレームが送信され、その間に4フレーム毎にLTRフレームが送信されるようにした例を示している(Ti=12、Tr=4)。
LTRフレームは、明示的な指示があるまでビデオエンコーダ24内に保持される。今“Tr”フレーム毎に1フレームのLTRフレームが挿入されるものとする。ビデオデコーダ53でも、常に1枚のLTRフレームを保持するものとする。また、“Ti”フレームごとにIDRフレームが挿入されるとし、Ti>Trであるとする。
図15は、ビデオエンコーダ24からの出力の例として、12フレーム毎にIDRフレームが送信され、その間に4フレーム毎にLTRフレームが送信されるようにした例を示している(Ti=12、Tr=4)。
また第3の実施の形態と同様、ビデオエンコーダ24は、フレームデータに付加情報としてエンコードレート変更ビットECBを追加するものとし、パケット送信モジュール23は、レート低下要求をビデオエンコーダ24に通知するとき、破棄前に送信した最後のフレームのフレームIDも通知するものとする。
レート変更の際の動作を図12と同様の形式で図16に示す。概略同様であるが、フレームF1がLTRフレームとする。このLTRフレームはメモリ25に一時的に記憶される。即ち図12では最新の所定数のフレームデータを一時記憶していたが、図16の場合、LTRフレームを、例えば次のLTRフレームで書き換えるまで一時記憶しておけばよい。
ここでビデオエンコーダ24がこれからエンコードレートの変更を行うとして、そのレートの最初のフレームデータが出力されるまで、そのフレームを含めてN枚のフレームが出力されるとする。この間の状況に応じて、新レートでエンコードする最初のフレームデータの設定が行われるようにする。
図17を参照してビデオエンコーダ24の処理を説明する。なお、図14と異なるのはステップS210A及びステップS222以降である。
ステップS210Aでは、LTRフレームをエンコードした際には、そのLTRフレームデータをメモリ25に記憶することになる。
それ以外のステップS211までの処理は図14と同様である。
ステップS210Aでは、LTRフレームをエンコードした際には、そのLTRフレームデータをメモリ25に記憶することになる。
それ以外のステップS211までの処理は図14と同様である。
レート低下要求を受け、ステップS211でエンコードレートの設定変更を行ったら、ビデオエンコーダ24はステップS222で、新レートのフレーム出力までにIDRフレームの出力が必要か否かを判定する。
上記のN枚のフレームのどれかがIDRフレームでなければならないときは、ビデオエンコーダ24はステップS225に進み、エンコードレート変更後の最初のフレームをIDRフレームとする。
上記のN枚のフレームのどれかがIDRフレームでなければならないときは、ビデオエンコーダ24はステップS225に進み、エンコードレート変更後の最初のフレームをIDRフレームとする。
また、最後のLTRフレームのフレームIDが最後に出力されたフレームのフレームIDがより大きい、すなわち、最後に出力されたLTRフレームがパケット送信モジュール23により破棄されていると判断される場合もある。この場合、ビデオエンコーダ24はステップS222,S223,S225と進み、エンコードレート変更後の最初のフレームをIDRフレームとする。
上記以外の場合でステップS224に進むときは、ビデオエンコーダ24はエンコードレート変更後の最初のフレームをPフレームとし、それに最後のLTRフレームを参照させる。
なお、ステップS224,S225では、エンコードレート変更後の最初のフレームを出力するとき、そのヘッダのエンコードレート変更ビットを立てるように設定する。
パケット送信モジュール23側の処理は、図13と概略同様であるが、ステップS107AにおいてフレームIDの送信は不要となる。
以上の処理により、LTRを含むビデオデータパケットVDPKの伝送において適切な参照関係を維持できる。
パケット送信モジュール23側の処理は、図13と概略同様であるが、ステップS107AにおいてフレームIDの送信は不要となる。
以上の処理により、LTRを含むビデオデータパケットVDPKの伝送において適切な参照関係を維持できる。
なおステップS225の設定により新レートで最初にエンコードするフレームがIDRフレームとされる場合、IDRフレームは通常非常にデータサイズが大きくなることに鑑みて、そのフレームについては、指定されたエンコードレートより小さいレートでエンコードし、データサイズが所定の大きさ以下、例えば低下後の送信レートで遅延が発生しないサイズにすることも好適である。
フレームの伝送遅延は図11と同様になる。ただしこの第4の実施の形態の場合、フレームF5が参照するのは、最新のLTRフレーム(例えば図16のフレームF1)である。
<7.まとめ及び変形例>
以上の実施の形態では次のような効果が得られる。
実施の形態の送信ユニット2は、画像のフレームデータ毎にエンコードを行うビデオエンコーダ24と、パケット送信モジュール23(送信処理部)を備える。パケット送信モジュール23は、ビデオエンコーダ24でエンコードされたフレームデータの送信処理中に、例えば受信側機器3への伝送遅延に応じて、ビデオエンコーダ24におけるエンコードレートについてレート低下制御を行うとともに、1又は複数の対象フレーム数のフレームデータについて伝送データの遅延量を低減させる遅延低減処理が実行されるようにしている。
即ち送信ユニット2は、伝送遅延の発生やその予測などに応じてエンコードレート及び送信レートを低下させることで、遅延の拡大を防止するとともに、データの一部破棄などの遅延低減処理が実行されるようにすることで、送信レート低下時の遅延を解消する。従ってビデオストリーミングなどの画像データ伝送において伝送遅延が生じた際に、それを適切に低減又は解消し、伝送遅延が生じにくいシステムを構築することができる。
また遅延低減処理の対象フレーム数が適切に設定されることで、最小限のフレームの破棄などにより、送信レート低下時の送信遅延を低減又は解消できる。また破棄等を行うフレーム数を必要最小限とすることで、受信側機器で再生される画像の乱れを最小限とすることができる。例えば殆ど画像の乱れを視聴者に感知させない程度の短時間とすることも可能である。
つまり実施の形態の送信ユニット2は、エンコード側で、受信側機器3でのデコード画像のエラーが継続しない形で破棄する等の遅延低減処理を行い、伝送遅延が大きくなり続けるのを防ぐことができる。
以上の実施の形態では次のような効果が得られる。
実施の形態の送信ユニット2は、画像のフレームデータ毎にエンコードを行うビデオエンコーダ24と、パケット送信モジュール23(送信処理部)を備える。パケット送信モジュール23は、ビデオエンコーダ24でエンコードされたフレームデータの送信処理中に、例えば受信側機器3への伝送遅延に応じて、ビデオエンコーダ24におけるエンコードレートについてレート低下制御を行うとともに、1又は複数の対象フレーム数のフレームデータについて伝送データの遅延量を低減させる遅延低減処理が実行されるようにしている。
即ち送信ユニット2は、伝送遅延の発生やその予測などに応じてエンコードレート及び送信レートを低下させることで、遅延の拡大を防止するとともに、データの一部破棄などの遅延低減処理が実行されるようにすることで、送信レート低下時の遅延を解消する。従ってビデオストリーミングなどの画像データ伝送において伝送遅延が生じた際に、それを適切に低減又は解消し、伝送遅延が生じにくいシステムを構築することができる。
また遅延低減処理の対象フレーム数が適切に設定されることで、最小限のフレームの破棄などにより、送信レート低下時の送信遅延を低減又は解消できる。また破棄等を行うフレーム数を必要最小限とすることで、受信側機器で再生される画像の乱れを最小限とすることができる。例えば殆ど画像の乱れを視聴者に感知させない程度の短時間とすることも可能である。
つまり実施の形態の送信ユニット2は、エンコード側で、受信側機器3でのデコード画像のエラーが継続しない形で破棄する等の遅延低減処理を行い、伝送遅延が大きくなり続けるのを防ぐことができる。
第1の実施の形態では、パケット送信モジュール23は、ビデオエンコーダ24に対して、エンコードレート低下要求と、遅延低減処理の対象フレーム数を送信し、ビデオエンコーダ24は、エンコードレート低下要求に応じてエンコードレートを低下させるとともに、遅延低減処理として、対象フレーム数のフレームデータを送信処理部に対して出力しないようにする処理を行う例を挙げた。
つまり遅延低減処理をビデオエンコーダ24側で実行する。例えばビデオエンコーダ24において指示された対象フレーム数のフレームデータをビデオエンコーダ内で破棄するなどして送信処理部に出力しないようにする。
具体的には、ビデオエンコーダ24は、レート低下要求を検知したときに、そのときエンコード中のフレームのエンコード及び出力が完了した後、遅延低減処理として、次のフレームから指示された対象フレーム数だけ、エンコードされたフレームデータをパケット送信モジュール23に出力しないようにする。これにより図6で説明したように、新レートでエンコードしたフレームデータからが、伝送遅延が解消又は低減されて送信され、かつ低下した送信レートにおいて遅延が生じないようにすることができる。つまりビデオエンコーダ24内の簡単な処理で、伝送遅延低減が実現できる。
つまり遅延低減処理をビデオエンコーダ24側で実行する。例えばビデオエンコーダ24において指示された対象フレーム数のフレームデータをビデオエンコーダ内で破棄するなどして送信処理部に出力しないようにする。
具体的には、ビデオエンコーダ24は、レート低下要求を検知したときに、そのときエンコード中のフレームのエンコード及び出力が完了した後、遅延低減処理として、次のフレームから指示された対象フレーム数だけ、エンコードされたフレームデータをパケット送信モジュール23に出力しないようにする。これにより図6で説明したように、新レートでエンコードしたフレームデータからが、伝送遅延が解消又は低減されて送信され、かつ低下した送信レートにおいて遅延が生じないようにすることができる。つまりビデオエンコーダ24内の簡単な処理で、伝送遅延低減が実現できる。
第1の実施の形態では、ビデオエンコーダ24は、遅延低減処理として、指示された対象フレーム数だけ入力されたフレームデータをエンコードせずに破棄する処理を行う例を述べた。
即ちビデオエンコーダ24は、遅延低減処理として、エンコードレート低下要求中の受信後に入力される必要数のフレームデータをそのまま破棄すればよい。従って破棄するフレームデータをエンコードするなどの無駄なエンコード処理は行われない。また、入力されたフレームデータを破棄するという極めて簡易な処理で遅延低減処理が実現できる。
即ちビデオエンコーダ24は、遅延低減処理として、エンコードレート低下要求中の受信後に入力される必要数のフレームデータをそのまま破棄すればよい。従って破棄するフレームデータをエンコードするなどの無駄なエンコード処理は行われない。また、入力されたフレームデータを破棄するという極めて簡易な処理で遅延低減処理が実現できる。
第1の実施の形態では、ビデオエンコーダ24は、遅延低減処理の対象フレームの後にパケット送信モジュール23に最初に出力するフレームデータについては、遅延低減処理の対象フレームより前のフレームであってパケット送信モジュール23に出力済のフレームデータをフレーム間参照の参照先とするエンコードを行う例を挙げた。
例えばビデオエンコーダがH.264規格やH.265規格であって、フレーム間参照を行う動画圧縮規格のエンコーダである場合には、例えば遅延低減処理として1又は複数の対象フレームを破棄した後に送信処理部に出力するフレームデータは、既に送信処理部に出力していたフレームデータを参照先としたものとする。
これによりフレーム間参照における参照先が破棄されずに受信側機器3に送信されるフレームデータとなる。従って、エンコードレート低下後のフレームデータを受信側機器3において適切にデコードできる状態とすることができる。
なお、ここではフレーム間参照を行うフレーム間圧縮を行う場合について述べているが、実施の形態の遅延低減処理の技術は、フレーム内圧縮を行う場合にも適用できることを付記しておく。
例えばビデオエンコーダがH.264規格やH.265規格であって、フレーム間参照を行う動画圧縮規格のエンコーダである場合には、例えば遅延低減処理として1又は複数の対象フレームを破棄した後に送信処理部に出力するフレームデータは、既に送信処理部に出力していたフレームデータを参照先としたものとする。
これによりフレーム間参照における参照先が破棄されずに受信側機器3に送信されるフレームデータとなる。従って、エンコードレート低下後のフレームデータを受信側機器3において適切にデコードできる状態とすることができる。
なお、ここではフレーム間参照を行うフレーム間圧縮を行う場合について述べているが、実施の形態の遅延低減処理の技術は、フレーム内圧縮を行う場合にも適用できることを付記しておく。
第1の実施の形態では、ビデオエンコーダ24は、遅延低減処理の対象フレームの後にパケット送信モジュール23に最初に出力するフレームデータについては、遅延低減処理の前に最後に前記送信処理部に出力したフレームデータをフレーム間参照の参照先とするエンコードを行うものとした。
これによりフレーム間参照における参照先が破棄されずに受信側機器3に送信されるフレームデータとなる。ビデオストリーム上は、レート変更後の最初のフレームデータは、その直前のフレームデータを参照先とすることになる。従って、エンコードレート低下後のフレームデータを受信側機器3において適切にデコードできる状態とすることができる。
これによりフレーム間参照における参照先が破棄されずに受信側機器3に送信されるフレームデータとなる。ビデオストリーム上は、レート変更後の最初のフレームデータは、その直前のフレームデータを参照先とすることになる。従って、エンコードレート低下後のフレームデータを受信側機器3において適切にデコードできる状態とすることができる。
第1の実施の形態では、ビデオエンコーダ24が遅延低減処理の対象フレームの後にパケット送信モジュール23に最初に出力するフレームデータのタイムスタンプ値は、遅延低減処理の前に最後に前記送信処理部に出力したフレームデータのタイムスタンプ値よりも、{(遅延低減処理の対象フレーム数)+1}×(フレーム間隔時間)だけ進んだ値となっているものとした。
これにより遅延低減処理の対象フレームの後に前記送信処理部に最初に出力するフレームデータは、本来の時刻に受信側機器3に受信され、本来のタイミングで再生されることになる。
これにより遅延低減処理の対象フレームの後に前記送信処理部に最初に出力するフレームデータは、本来の時刻に受信側機器3に受信され、本来のタイミングで再生されることになる。
第1の実施の形態では、パケット送信モジュール23がエンコードレートを低下させる決定をした時点から、ビデオエンコーダ24がそれに従ってエンコードした最初のフレームデータを出力できるまでの間にビデオエンコーダ24から出力されるフレーム数がN個であり、レート低下に係る新エンコードレートと旧エンコードレートとの比が1:Rである場合に、対象フレーム数はceiling((R-1)×N)以上であるとした。
これにより切り替え時の新旧のエンコードレートの差を考慮して、遅延低減処理の対象フレーム数を適切に設定でき、伝送遅延の解消又は低減に好適となる。
これにより切り替え時の新旧のエンコードレートの差を考慮して、遅延低減処理の対象フレーム数を適切に設定でき、伝送遅延の解消又は低減に好適となる。
第2の実施の形態では、ビデオエンコーダ24は、遅延低減処理として、指示された対象フレーム数だけ、参照情報を含み画像データを含まないスキップフレームデータを出力する処理を行う例を挙げた。
スキップフレームデータは極めてデータサイズが小さく、通常のフレームデータをスキップフレームデータに置き換えることで、実際上、伝送遅延の低減や解消が実現できる。そしてビデオストリームとして一貫性が保たれ、エラーストリームとならない。
スキップフレームデータは極めてデータサイズが小さく、通常のフレームデータをスキップフレームデータに置き換えることで、実際上、伝送遅延の低減や解消が実現できる。そしてビデオストリームとして一貫性が保たれ、エラーストリームとならない。
第3、第4の実施の形態では、パケット送信モジュール23は、ビデオエンコーダ24に対して、エンコードレート低下要求を送信し、ビデオエンコーダ24は、エンコードレート低下要求に応じてエンコードレートを低下させ、パケット送信モジュール23は遅延低減処理として、ビデオエンコーダ24から出力されたフレームデータのうちで対象フレーム数のフレームデータを受信側機器3へ送信せずに破棄する処理を行う例を挙げた。
つまり遅延低減処理をパケット送信モジュール23側で実行する。
これにより図11、図12等で説明したように、新レートでエンコードしたフレームデータについて伝送遅延が解消又は低減され、かつ低下した送信レートにおいて遅延が生じないようにすることができる。つまりパケット送信モジュール23内の簡単な処理で、伝送遅延低減が実現できる。
特に第1の実施の形態と比較すると、レート変更前のサイズの大きいフレームデータを受信側機器3に対して送信しないことになる。従って破棄するフレーム数も少なく、受信側機器3における再生画像の乱れも最小限となるとともに、伝送遅延の低減に有利で、ネットワークの輻輳状況の改善に、より適している。
つまり遅延低減処理をパケット送信モジュール23側で実行する。
これにより図11、図12等で説明したように、新レートでエンコードしたフレームデータについて伝送遅延が解消又は低減され、かつ低下した送信レートにおいて遅延が生じないようにすることができる。つまりパケット送信モジュール23内の簡単な処理で、伝送遅延低減が実現できる。
特に第1の実施の形態と比較すると、レート変更前のサイズの大きいフレームデータを受信側機器3に対して送信しないことになる。従って破棄するフレーム数も少なく、受信側機器3における再生画像の乱れも最小限となるとともに、伝送遅延の低減に有利で、ネットワークの輻輳状況の改善に、より適している。
第3、第4の実施の形態では、ビデオエンコーダ24は、エンコードレート変更後に最初にエンコードするフレームデータにエンコードレート変更ビットECBによるレート変更情報を付加し、パケット送信モジュール23は、エンコードレート低下要求の送信後、レート変更情報が付加されたフレームデータが入力される前までにビデオエンコーダ24から入力されたフレームデータを破棄するものとした。
これによりパケット送信モジュール23は新レートでエンコードしたフレームデータが入力されるまで、旧レートでエンコードしたフレームデータを破棄し続ければ、遅延低減処理が適切に実行できることになり、遅延低減処理は容易となる。
これによりパケット送信モジュール23は新レートでエンコードしたフレームデータが入力されるまで、旧レートでエンコードしたフレームデータを破棄し続ければ、遅延低減処理が適切に実行できることになり、遅延低減処理は容易となる。
第3の実施の形態では、パケット送信モジュール23は、遅延低減処理の実行前に受信側機器3に送信済のフレームデータのフレームID(フレーム識別情報)をビデオエンコーダ24に対して送信し、ビデオエンコーダ24は、エンコードレート低下要求に応じてエンコードレートを低下させた後にパケット送信モジュール23に最初に出力するフレームデータについては、フレームIDで示されるフレームデータをフレーム間参照の参照先とするエンコードを行うものとした。
フレームIDで示されるフレームデータを参照先とすることで、参照先のフレームデータは破棄されずに受信側機器3に送信されたフレームデータとなる。従って、エンコードレート低下後のフレームデータを受信側機器3において適切にデコードできる状態とすることができる。
フレームIDで示されるフレームデータを参照先とすることで、参照先のフレームデータは破棄されずに受信側機器3に送信されたフレームデータとなる。従って、エンコードレート低下後のフレームデータを受信側機器3において適切にデコードできる状態とすることができる。
第3の実施の形態では、パケット送信モジュール23がビデオエンコーダ24に通知するフレームIDは、遅延低減処理の実行前に受信側機器3に送信した最後のフレームデータのフレームIDであるとした。
これによりフレーム間参照における参照先が破棄されずに受信側機器3に送信されるフレームデータとなる。ビデオストリーム上は、レート変更後の最初のフレームデータは、その直前のフレームデータを参照先とすることになる。従って、エンコードレート低下後のフレームデータを受信側機器3において適切にデコードできる状態とすることができる。
これによりフレーム間参照における参照先が破棄されずに受信側機器3に送信されるフレームデータとなる。ビデオストリーム上は、レート変更後の最初のフレームデータは、その直前のフレームデータを参照先とすることになる。従って、エンコードレート低下後のフレームデータを受信側機器3において適切にデコードできる状態とすることができる。
第3、第4の実施の形態では、パケット送信モジュール23が遅延低減処理の対象フレームの後に最初に送信するフレームデータのタイムスタンプ値は、遅延低減処理の前に最後に送信したフレームデータのタイムスタンプ値よりも、{(遅延低減処理の対象フレーム数)+1}×(フレーム間隔時間)だけ進んだ値となっているものとした。
これにより遅延低減処理の対象フレームの後に前記送信処理部に最初に出力するフレームデータは、本来の時刻に受信側機器3に受信され、本来のタイミングで再生されることになる。
これにより遅延低減処理の対象フレームの後に前記送信処理部に最初に出力するフレームデータは、本来の時刻に受信側機器3に受信され、本来のタイミングで再生されることになる。
第3の実施の形態では、ビデオエンコーダ24は、フレームIDで示されるフレームデータがフレーム間参照の参照先にできない場合、エンコードレート低下要求に応じてエンコードレートを低下させた後にパケット送信モジュール23に最初に出力するフレームデータをIDRフレームとするエンコードを行う例を述べた。
これによりフレームデータの破棄前に送信済みの参照可能フレームが存在しない場合や破棄されたフレームデータにIDRフレームが含まれる場合などでも、受信側機器3において適切にデコードできる状態とすることができる。
これによりフレームデータの破棄前に送信済みの参照可能フレームが存在しない場合や破棄されたフレームデータにIDRフレームが含まれる場合などでも、受信側機器3において適切にデコードできる状態とすることができる。
第3、第4の実施の形態では、ビデオエンコーダ24は、レート低下後に最初に出力するフレームをIDRフレームとする場合、エンコードレートをエンコードレート低下要求で指定されたレートより低くして、送信するIDRフレームのデータサイズを、所定の最大サイズ内に抑えるようにする例を述べた。
IDRフレームは通常非常に大きくなることが多いので、レート変更後の最初のフレームデータをIDRフレームとする場合は、ビデオエンコーダ24はパケット送信モジュール23から指定されたエンコードレートより小さいレートでエンコードし、所定の大きさ以下になるようにする。
これによりIDRフレームによって遅延低減効果が減少しないようにすることができる。
IDRフレームは通常非常に大きくなることが多いので、レート変更後の最初のフレームデータをIDRフレームとする場合は、ビデオエンコーダ24はパケット送信モジュール23から指定されたエンコードレートより小さいレートでエンコードし、所定の大きさ以下になるようにする。
これによりIDRフレームによって遅延低減効果が減少しないようにすることができる。
第3の実施の形態では、ビデオエンコーダ24は、エンコード後のフレームデータを一時記憶できるメモリ25を備え、エンコードレート低下要求に応じてエンコードレートを低下させた後にパケット送信モジュール23に最初に出力するフレームデータは、メモリ25に記憶されたフレームデータを参照先としてエンコードする例を述べた。
ビデオエンコーダ24は、数フレーム程度のフレームデータを記憶し、エンコードしたフレームデータをある程度の時間、一時記憶しておくメモリ25を備えることで、パケット送信モジュール23で破棄される前に送信されたフレームデータを、メモリ25に保存しておくことができる。これにより、受信側機器3に送信済みの、数フレーム前のフレームデータを参照先とするエンコードが可能となる。
ビデオエンコーダ24は、数フレーム程度のフレームデータを記憶し、エンコードしたフレームデータをある程度の時間、一時記憶しておくメモリ25を備えることで、パケット送信モジュール23で破棄される前に送信されたフレームデータを、メモリ25に保存しておくことができる。これにより、受信側機器3に送信済みの、数フレーム前のフレームデータを参照先とするエンコードが可能となる。
第4の実施の形態では、ビデオエンコーダ24は、周期的にLTRフレーム(長時間参照フレーム)を出力し、エンコードレート低下要求に応じてエンコードレートを低下させた後にパケット送信モジュール23に最初に出力するフレームデータは、LTRフレームを参照先としてエンコードする例を述べた。
これによりLTRフレームの送信を行う場合に適切な参照状態を維持できる。
これによりLTRフレームの送信を行う場合に適切な参照状態を維持できる。
第4の実施の形態では、ビデオエンコーダ24は、LTRフレームがパケット送信モジュール23で破棄されると判定した場合、エンコードレート低下要求に応じてエンコードレートを低下させた後にパケット送信モジュール23に最初に出力するフレームデータをIDRフレームとする例を挙げた。
これによりパケット送信モジュール23における破棄されることを考慮しても、受信側機器3に送信されたレート変換後のビデオストリームが正しく再生されるようにすることができる。特に参照不能でエラーが多数のフレームに伝搬するようなことも避けることができる。
これによりパケット送信モジュール23における破棄されることを考慮しても、受信側機器3に送信されたレート変換後のビデオストリームが正しく再生されるようにすることができる。特に参照不能でエラーが多数のフレームに伝搬するようなことも避けることができる。
なお、本明細書に記載された効果はあくまでも例示であって限定されるものではなく、また他の効果があってもよい。
なお本技術は以下のような構成も採ることができる。
(1)
画像のフレームデータ毎にエンコードを行うビデオエンコーダと、
前記ビデオエンコーダでエンコードされた画像データの送信処理中に、前記ビデオエンコーダにおけるエンコードレートについてレート低下制御を行うとともに、1又は複数の対象フレーム数のフレームデータについて伝送データの遅延量を低減させる遅延低減処理が実行されるようにする送信処理部と、を備えた
送信装置。
(2)
前記送信処理部は、前記ビデオエンコーダに対して、エンコードレート低下要求と、遅延低減処理の対象フレーム数を送信し、
前記ビデオエンコーダは、エンコードレート低下要求に応じてエンコードレートを低下させるとともに、前記遅延低減処理として、前記対象フレーム数のフレームデータを前記送信処理部に対して出力しないようにする処理を行う
上記(1)に記載の送信装置。
(3)
前記ビデオエンコーダは、前記遅延低減処理として、指示された対象フレーム数だけ入力されたフレームデータをエンコードせずに破棄する処理を行う
上記(2)に記載の送信装置。
(4)
前記ビデオエンコーダは、遅延低減処理の対象フレームの後に前記送信処理部に最初に出力するフレームデータについては、遅延低減処理の対象フレームより前のフレームであって前記送信処理部に出力済のフレームデータをフレーム間参照の参照先とするエンコードを行う
上記(2)又は(3)に記載の送信装置。
(5)
前記ビデオエンコーダは、遅延低減処理の対象フレームの後に前記送信処理部に最初に出力するフレームデータについては、遅延低減処理の前に最後に前記送信処理部に出力したフレームデータをフレーム間参照の参照先とするエンコードを行う
上記(2)から(4)のいずれかに記載の送信装置。
(6)
前記ビデオエンコーダが遅延低減処理の対象フレームの後に前記送信処理部に最初に出力するフレームデータのタイムスタンプ値は、遅延低減処理の前に最後に前記送信処理部に出力したフレームデータのタイムスタンプ値よりも、
{(遅延低減処理の対象フレーム数)+1}×(フレーム間隔時間)
だけ進んだ値となっている
上記(2)から(5)のいずれかに記載の送信装置。
(7)
前記送信処理部がエンコードレートを低下させる決定をした時点から、前記ビデオエンコーダがそれに従ってエンコードした最初のフレームデータを出力できるまでの間にビデオエンコーダから出力されるフレーム数がN個であり、
レート低下に係る新エンコードレートと旧エンコードレートとの比が1:Rである場合に、
前記対象フレーム数はceiling((R-1)×N)以上である
上記(2)から(6)のいずれかに記載の送信装置。
(8)
前記ビデオエンコーダは、前記遅延低減処理として、指示された対象フレーム数だけ、参照情報を含み画像データを含まないフレームデータを出力する処理を行う
上記(2)(4)(5)(6)(7)のいずれかに記載の送信装置。
(9)
前記送信処理部は、前記ビデオエンコーダに対して、エンコードレート低下要求を送信し、
前記ビデオエンコーダは、エンコードレート低下要求に応じてエンコードレートを低下させ、
前記送信処理部は、前記遅延低減処理として、前記ビデオエンコーダから出力されたフレームデータのうちで前記対象フレーム数のフレームデータを受信側機器へ送信せずに破棄する処理を行う
上記(1)に記載の送信装置。
(10)
前記ビデオエンコーダは、エンコードレート変更後に最初にエンコードするフレームデータにレート変更情報を付加し、
前記送信処理部は、エンコードレート低下要求の送信後、前記レート変更情報が付加されたフレームデータが入力される前までに前記ビデオエンコーダから入力されたフレームデータを破棄する
上記(9)に記載の送信装置。
(11)
前記送信処理部は、遅延低減処理の実行前に前記受信側機器に送信済のフレームデータのフレーム識別情報を前記ビデオエンコーダに対して送信し、
前記ビデオエンコーダは、エンコードレート低下要求に応じてエンコードレートを低下させた後に前記送信処理部に最初に出力するフレームデータについては、前記フレーム識別情報で示されるフレームデータをフレーム間参照の参照先とするエンコードを行う
上記(9)又は(10)に記載の送信装置。
(12)
前記フレーム識別情報は、遅延低減処理の実行前に前記受信側機器に送信した最後のフレームデータのフレーム識別情報である
上記(11)に記載の送信装置。
(13)
前記送信処理部が遅延低減処理の対象フレームの後に最初に送信するフレームデータのタイムスタンプ値は、遅延低減処理の前に最後に送信したフレームデータのタイムスタンプ値よりも、
{(遅延低減処理の対象フレーム数)+1}×(フレーム間隔時間)
だけ進んだ値となっている
上記(9)から(12)のいずれかに記載の送信装置。
(14)
前記ビデオエンコーダは、前記フレーム識別情報で示されるフレームデータがフレーム間参照の参照先にできない場合、エンコードレート低下要求に応じてエンコードレートを低下させた後に前記送信処理部に最初に出力するフレームデータをIDRフレームとするエンコードを行う
上記(11)又は(12)に記載の送信装置。
(15)
前記ビデオエンコーダは、エンコードレートをエンコードレート低下要求で指定されたレートより低くして、送信するIDRフレームのデータサイズを、所定の最大サイズ内に抑えるようにする
上記(14)に記載の送信装置。
(16)
前記ビデオエンコーダは、エンコード後のフレームデータを一時記憶できるメモリを備え、
エンコードレート低下要求に応じてエンコードレートを低下させた後に前記送信処理部に最初に出力するフレームデータは、前記メモリに記憶されたフレームデータを参照先としてエンコードする
上記(9)から(15)のいずれかに記載の送信装置。
(17)
前記ビデオエンコーダは、周期的に長時間参照フレームを出力し、
エンコードレート低下要求に応じてエンコードレートを低下させた後に前記送信処理部に最初に出力するフレームデータは、前記長時間参照フレームを参照先としてエンコードする
上記(9)から(16)のいずれかに記載の送信装置。
(18)
前記ビデオエンコーダは、
前記長時間参照フレームが前記送信処理部で破棄されると判定した場合、
エンコードレート低下要求に応じてエンコードレートを低下させた後に前記送信処理部に最初に出力するフレームデータをIDRフレームとする
上記(17)に記載の送信装置。
(19)
前記ビデオエンコーダは、エンコードレートをエンコードレート低下要求で指定されたレートより低くして、送信するIDRフレームのデータサイズを、所定の最大サイズ内に抑えるようにする
上記(18)に記載の送信装置。
(20)
ビデオエンコーダでエンコードされた画像データの送信処理中に、前記ビデオエンコーダにおけるエンコードレートについてレート低下制御を行うとともに、1又は複数の対象フレーム数のフレームデータについて伝送データの遅延量を低減させる遅延低減処理を実行する
送信方法。
(1)
画像のフレームデータ毎にエンコードを行うビデオエンコーダと、
前記ビデオエンコーダでエンコードされた画像データの送信処理中に、前記ビデオエンコーダにおけるエンコードレートについてレート低下制御を行うとともに、1又は複数の対象フレーム数のフレームデータについて伝送データの遅延量を低減させる遅延低減処理が実行されるようにする送信処理部と、を備えた
送信装置。
(2)
前記送信処理部は、前記ビデオエンコーダに対して、エンコードレート低下要求と、遅延低減処理の対象フレーム数を送信し、
前記ビデオエンコーダは、エンコードレート低下要求に応じてエンコードレートを低下させるとともに、前記遅延低減処理として、前記対象フレーム数のフレームデータを前記送信処理部に対して出力しないようにする処理を行う
上記(1)に記載の送信装置。
(3)
前記ビデオエンコーダは、前記遅延低減処理として、指示された対象フレーム数だけ入力されたフレームデータをエンコードせずに破棄する処理を行う
上記(2)に記載の送信装置。
(4)
前記ビデオエンコーダは、遅延低減処理の対象フレームの後に前記送信処理部に最初に出力するフレームデータについては、遅延低減処理の対象フレームより前のフレームであって前記送信処理部に出力済のフレームデータをフレーム間参照の参照先とするエンコードを行う
上記(2)又は(3)に記載の送信装置。
(5)
前記ビデオエンコーダは、遅延低減処理の対象フレームの後に前記送信処理部に最初に出力するフレームデータについては、遅延低減処理の前に最後に前記送信処理部に出力したフレームデータをフレーム間参照の参照先とするエンコードを行う
上記(2)から(4)のいずれかに記載の送信装置。
(6)
前記ビデオエンコーダが遅延低減処理の対象フレームの後に前記送信処理部に最初に出力するフレームデータのタイムスタンプ値は、遅延低減処理の前に最後に前記送信処理部に出力したフレームデータのタイムスタンプ値よりも、
{(遅延低減処理の対象フレーム数)+1}×(フレーム間隔時間)
だけ進んだ値となっている
上記(2)から(5)のいずれかに記載の送信装置。
(7)
前記送信処理部がエンコードレートを低下させる決定をした時点から、前記ビデオエンコーダがそれに従ってエンコードした最初のフレームデータを出力できるまでの間にビデオエンコーダから出力されるフレーム数がN個であり、
レート低下に係る新エンコードレートと旧エンコードレートとの比が1:Rである場合に、
前記対象フレーム数はceiling((R-1)×N)以上である
上記(2)から(6)のいずれかに記載の送信装置。
(8)
前記ビデオエンコーダは、前記遅延低減処理として、指示された対象フレーム数だけ、参照情報を含み画像データを含まないフレームデータを出力する処理を行う
上記(2)(4)(5)(6)(7)のいずれかに記載の送信装置。
(9)
前記送信処理部は、前記ビデオエンコーダに対して、エンコードレート低下要求を送信し、
前記ビデオエンコーダは、エンコードレート低下要求に応じてエンコードレートを低下させ、
前記送信処理部は、前記遅延低減処理として、前記ビデオエンコーダから出力されたフレームデータのうちで前記対象フレーム数のフレームデータを受信側機器へ送信せずに破棄する処理を行う
上記(1)に記載の送信装置。
(10)
前記ビデオエンコーダは、エンコードレート変更後に最初にエンコードするフレームデータにレート変更情報を付加し、
前記送信処理部は、エンコードレート低下要求の送信後、前記レート変更情報が付加されたフレームデータが入力される前までに前記ビデオエンコーダから入力されたフレームデータを破棄する
上記(9)に記載の送信装置。
(11)
前記送信処理部は、遅延低減処理の実行前に前記受信側機器に送信済のフレームデータのフレーム識別情報を前記ビデオエンコーダに対して送信し、
前記ビデオエンコーダは、エンコードレート低下要求に応じてエンコードレートを低下させた後に前記送信処理部に最初に出力するフレームデータについては、前記フレーム識別情報で示されるフレームデータをフレーム間参照の参照先とするエンコードを行う
上記(9)又は(10)に記載の送信装置。
(12)
前記フレーム識別情報は、遅延低減処理の実行前に前記受信側機器に送信した最後のフレームデータのフレーム識別情報である
上記(11)に記載の送信装置。
(13)
前記送信処理部が遅延低減処理の対象フレームの後に最初に送信するフレームデータのタイムスタンプ値は、遅延低減処理の前に最後に送信したフレームデータのタイムスタンプ値よりも、
{(遅延低減処理の対象フレーム数)+1}×(フレーム間隔時間)
だけ進んだ値となっている
上記(9)から(12)のいずれかに記載の送信装置。
(14)
前記ビデオエンコーダは、前記フレーム識別情報で示されるフレームデータがフレーム間参照の参照先にできない場合、エンコードレート低下要求に応じてエンコードレートを低下させた後に前記送信処理部に最初に出力するフレームデータをIDRフレームとするエンコードを行う
上記(11)又は(12)に記載の送信装置。
(15)
前記ビデオエンコーダは、エンコードレートをエンコードレート低下要求で指定されたレートより低くして、送信するIDRフレームのデータサイズを、所定の最大サイズ内に抑えるようにする
上記(14)に記載の送信装置。
(16)
前記ビデオエンコーダは、エンコード後のフレームデータを一時記憶できるメモリを備え、
エンコードレート低下要求に応じてエンコードレートを低下させた後に前記送信処理部に最初に出力するフレームデータは、前記メモリに記憶されたフレームデータを参照先としてエンコードする
上記(9)から(15)のいずれかに記載の送信装置。
(17)
前記ビデオエンコーダは、周期的に長時間参照フレームを出力し、
エンコードレート低下要求に応じてエンコードレートを低下させた後に前記送信処理部に最初に出力するフレームデータは、前記長時間参照フレームを参照先としてエンコードする
上記(9)から(16)のいずれかに記載の送信装置。
(18)
前記ビデオエンコーダは、
前記長時間参照フレームが前記送信処理部で破棄されると判定した場合、
エンコードレート低下要求に応じてエンコードレートを低下させた後に前記送信処理部に最初に出力するフレームデータをIDRフレームとする
上記(17)に記載の送信装置。
(19)
前記ビデオエンコーダは、エンコードレートをエンコードレート低下要求で指定されたレートより低くして、送信するIDRフレームのデータサイズを、所定の最大サイズ内に抑えるようにする
上記(18)に記載の送信装置。
(20)
ビデオエンコーダでエンコードされた画像データの送信処理中に、前記ビデオエンコーダにおけるエンコードレートについてレート低下制御を行うとともに、1又は複数の対象フレーム数のフレームデータについて伝送データの遅延量を低減させる遅延低減処理を実行する
送信方法。
1 撮像装置
2 送信ユニット
3 受信側機器
4 ネットワーク
5 受信ユニット
21 ビデオキャプチャ部
22 CPU
23 パケット送信モジュール
24 ビデオエンコーダ
25 メモリ
26 ネットワークインタフェース部
27 バス
32 撮像部
33 画像信号処理部
34 記憶部
35 制御部
36 操作部
38 表示制御部
39 表示部
51 ネットワークインタフェース部
52 パケット受信モジュール
53 ビデオデコーダ
54 ビデオレンダラ
2 送信ユニット
3 受信側機器
4 ネットワーク
5 受信ユニット
21 ビデオキャプチャ部
22 CPU
23 パケット送信モジュール
24 ビデオエンコーダ
25 メモリ
26 ネットワークインタフェース部
27 バス
32 撮像部
33 画像信号処理部
34 記憶部
35 制御部
36 操作部
38 表示制御部
39 表示部
51 ネットワークインタフェース部
52 パケット受信モジュール
53 ビデオデコーダ
54 ビデオレンダラ
Claims (20)
- 画像のフレームデータ毎にエンコードを行うビデオエンコーダと、
前記ビデオエンコーダでエンコードされた画像データの送信処理中に、前記ビデオエンコーダにおけるエンコードレートについてレート低下制御を行うとともに、1又は複数の対象フレーム数のフレームデータについて伝送データの遅延量を低減させる遅延低減処理が実行されるようにする送信処理部と、を備えた
送信装置。 - 前記送信処理部は、前記ビデオエンコーダに対して、エンコードレート低下要求と、遅延低減処理の対象フレーム数を送信し、
前記ビデオエンコーダは、エンコードレート低下要求に応じてエンコードレートを低下させるとともに、前記遅延低減処理として、前記対象フレーム数のフレームデータを前記送信処理部に対して出力しないようにする処理を行う
請求項1に記載の送信装置。 - 前記ビデオエンコーダは、前記遅延低減処理として、指示された対象フレーム数だけ入力されたフレームデータをエンコードせずに破棄する処理を行う
請求項2に記載の送信装置。 - 前記ビデオエンコーダは、遅延低減処理の対象フレームの後に前記送信処理部に最初に出力するフレームデータについては、遅延低減処理の対象フレームより前のフレームであって前記送信処理部に出力済のフレームデータをフレーム間参照の参照先とするエンコードを行う
請求項2に記載の送信装置。 - 前記ビデオエンコーダは、遅延低減処理の対象フレームの後に前記送信処理部に最初に出力するフレームデータについては、遅延低減処理の前に最後に前記送信処理部に出力したフレームデータをフレーム間参照の参照先とするエンコードを行う
請求項2に記載の送信装置。 - 前記ビデオエンコーダが遅延低減処理の対象フレームの後に前記送信処理部に最初に出力するフレームデータのタイムスタンプ値は、遅延低減処理の前に最後に前記送信処理部に出力したフレームデータのタイムスタンプ値よりも、
{(遅延低減処理の対象フレーム数)+1}×(フレーム間隔時間)
だけ進んだ値となっている
請求項2に記載の送信装置。 - 前記送信処理部がエンコードレートを低下させる決定をした時点から、前記ビデオエンコーダがそれに従ってエンコードした最初のフレームデータを出力できるまでの間にビデオエンコーダから出力されるフレーム数がN個であり、
レート低下に係る新エンコードレートと旧エンコードレートとの比が1:Rである場合に、
前記対象フレーム数はceiling((R-1)×N)以上である
請求項2に記載の送信装置。 - 前記ビデオエンコーダは、前記遅延低減処理として、指示された対象フレーム数だけ、参照情報を含み画像データを含まないフレームデータを出力する処理を行う
請求項2に記載の送信装置。 - 前記送信処理部は、前記ビデオエンコーダに対して、エンコードレート低下要求を送信し、
前記ビデオエンコーダは、エンコードレート低下要求に応じてエンコードレートを低下させ、
前記送信処理部は、前記遅延低減処理として、前記ビデオエンコーダから出力されたフレームデータのうちで前記対象フレーム数のフレームデータを受信側機器へ送信せずに破棄する処理を行う
請求項1に記載の送信装置。 - 前記ビデオエンコーダは、エンコードレート変更後に最初にエンコードするフレームデータにレート変更情報を付加し、
前記送信処理部は、エンコードレート低下要求の送信後、前記レート変更情報が付加されたフレームデータが入力される前までに前記ビデオエンコーダから入力されたフレームデータを破棄する
請求項9に記載の送信装置。 - 前記送信処理部は、遅延低減処理の実行前に前記受信側機器に送信済のフレームデータのフレーム識別情報を前記ビデオエンコーダに対して送信し、
前記ビデオエンコーダは、エンコードレート低下要求に応じてエンコードレートを低下させた後に前記送信処理部に最初に出力するフレームデータについては、前記フレーム識別情報で示されるフレームデータをフレーム間参照の参照先とするエンコードを行う
請求項9に記載の送信装置。 - 前記フレーム識別情報は、遅延低減処理の実行前に前記受信側機器に送信した最後のフレームデータのフレーム識別情報である
請求項11に記載の送信装置。 - 前記送信処理部が遅延低減処理の対象フレームの後に最初に送信するフレームデータのタイムスタンプ値は、遅延低減処理の前に最後に送信したフレームデータのタイムスタンプ値よりも、
{(遅延低減処理の対象フレーム数)+1}×(フレーム間隔時間)
だけ進んだ値となっている
請求項9に記載の送信装置。 - 前記ビデオエンコーダは、前記フレーム識別情報で示されるフレームデータがフレーム間参照の参照先にできない場合、エンコードレート低下要求に応じてエンコードレートを低下させた後に前記送信処理部に最初に出力するフレームデータをIDRフレームとするエンコードを行う
請求項11に記載の送信装置。 - 前記ビデオエンコーダは、エンコードレートをエンコードレート低下要求で指定されたレートより低くして、送信するIDRフレームのデータサイズを、所定の最大サイズ内に抑えるようにする
請求項14に記載の送信装置。 - 前記ビデオエンコーダは、エンコード後のフレームデータを一時記憶できるメモリを備え、
エンコードレート低下要求に応じてエンコードレートを低下させた後に前記送信処理部に最初に出力するフレームデータは、前記メモリに記憶されたフレームデータを参照先としてエンコードする
請求項9に記載の送信装置。 - 前記ビデオエンコーダは、周期的に長時間参照フレームを出力し、
エンコードレート低下要求に応じてエンコードレートを低下させた後に前記送信処理部に最初に出力するフレームデータは、前記長時間参照フレームを参照先としてエンコードする
請求項9に記載の送信装置。 - 前記ビデオエンコーダは、
前記長時間参照フレームが前記送信処理部で破棄されると判定した場合、
エンコードレート低下要求に応じてエンコードレートを低下させた後に前記送信処理部に最初に出力するフレームデータをIDRフレームとする
請求項17に記載の送信装置。 - 前記ビデオエンコーダは、エンコードレートをエンコードレート低下要求で指定されたレートより低くして、送信するIDRフレームのデータサイズを、所定の最大サイズ内に抑えるようにする
請求項18に記載の送信装置。 - ビデオエンコーダでエンコードされた画像データの送信処理中に、前記ビデオエンコーダにおけるエンコードレートについてレート低下制御を行うとともに、1又は複数の対象フレーム数のフレームデータについて伝送データの遅延量を低減させる遅延低減処理を実行する
送信方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/789,920 US20230034162A1 (en) | 2020-01-09 | 2020-11-25 | Transmission apparatus and transmission method |
EP20912697.8A EP4072133A4 (en) | 2020-01-09 | 2020-11-25 | TRANSMISSION DEVICE AND TRANSMISSION METHOD |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020002068 | 2020-01-09 | ||
JP2020-002068 | 2020-01-09 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2021140768A1 true WO2021140768A1 (ja) | 2021-07-15 |
Family
ID=76787887
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2020/043894 WO2021140768A1 (ja) | 2020-01-09 | 2020-11-25 | 送信装置、送信方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20230034162A1 (ja) |
EP (1) | EP4072133A4 (ja) |
WO (1) | WO2021140768A1 (ja) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1070727A (ja) * | 1996-06-21 | 1998-03-10 | Sanyo Electric Co Ltd | 動画像伝送方法および動画像伝送装置 |
JPH10304360A (ja) * | 1996-10-15 | 1998-11-13 | Matsushita Electric Ind Co Ltd | 映像・音声符号化方法、符号化装置、及び符号化プログラム記録媒体 |
JP2003023639A (ja) | 2001-07-10 | 2003-01-24 | Sony Corp | データ伝送装置及び方法、データ伝送プログラム、並びに記録媒体 |
JP2009524328A (ja) * | 2006-01-20 | 2009-06-25 | エヌエックスピー ビー ヴィ | ビデオストリーム信号におけるフレームデータの置換 |
JP2014155084A (ja) * | 2013-02-12 | 2014-08-25 | Mitsubishi Electric Corp | 画像符号化装置 |
US20190244029A1 (en) * | 2016-10-18 | 2019-08-08 | Zhejiang Dahua Technology Co., Ltd. | Methods and systems for video processing |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1532812A4 (en) * | 2002-04-26 | 2007-10-10 | Univ Columbia | OPTIMAL VIDEO TRANSCODING METHOD AND SYSTEM BASED ON UTILITY PROGRAM FUNCTION DESCRIPTERS |
US8711923B2 (en) * | 2002-12-10 | 2014-04-29 | Ol2, Inc. | System and method for selecting a video encoding format based on feedback data |
US8780978B2 (en) * | 2009-11-04 | 2014-07-15 | Qualcomm Incorporated | Controlling video encoding using audio information |
WO2012000109A1 (en) * | 2010-07-02 | 2012-01-05 | Librestream Technologies Inc. | Adaptive frame rate control for video in a resource limited system |
EP2908547B1 (en) * | 2012-10-10 | 2019-12-04 | Fujitsu Client Computing Limited | Information-processing device, information-processing system, information-processing program, and moving image data transmission/reception method adapting the frame rate of moving image data based on frame similarity |
US10368074B2 (en) * | 2016-03-18 | 2019-07-30 | Microsoft Technology Licensing, Llc | Opportunistic frame dropping for variable-frame-rate encoding |
-
2020
- 2020-11-25 US US17/789,920 patent/US20230034162A1/en active Pending
- 2020-11-25 WO PCT/JP2020/043894 patent/WO2021140768A1/ja unknown
- 2020-11-25 EP EP20912697.8A patent/EP4072133A4/en active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1070727A (ja) * | 1996-06-21 | 1998-03-10 | Sanyo Electric Co Ltd | 動画像伝送方法および動画像伝送装置 |
JPH10304360A (ja) * | 1996-10-15 | 1998-11-13 | Matsushita Electric Ind Co Ltd | 映像・音声符号化方法、符号化装置、及び符号化プログラム記録媒体 |
JP2003023639A (ja) | 2001-07-10 | 2003-01-24 | Sony Corp | データ伝送装置及び方法、データ伝送プログラム、並びに記録媒体 |
JP2009524328A (ja) * | 2006-01-20 | 2009-06-25 | エヌエックスピー ビー ヴィ | ビデオストリーム信号におけるフレームデータの置換 |
JP2014155084A (ja) * | 2013-02-12 | 2014-08-25 | Mitsubishi Electric Corp | 画像符号化装置 |
US20190244029A1 (en) * | 2016-10-18 | 2019-08-08 | Zhejiang Dahua Technology Co., Ltd. | Methods and systems for video processing |
Non-Patent Citations (1)
Title |
---|
See also references of EP4072133A4 |
Also Published As
Publication number | Publication date |
---|---|
EP4072133A4 (en) | 2023-04-19 |
US20230034162A1 (en) | 2023-02-02 |
EP4072133A1 (en) | 2022-10-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10009630B2 (en) | System and method for encoding video content using virtual intra-frames | |
US8711929B2 (en) | Network-based dynamic encoding | |
US9585062B2 (en) | System and method for implementation of dynamic encoding rates for mobile devices | |
US20140104493A1 (en) | Proactive video frame dropping for hardware and network variance | |
JP5043096B2 (ja) | チャネル変更方法及びデジタル・ビデオ装置 | |
US9153127B2 (en) | Video transmitting apparatus, video receiving apparatus, and video transmission system | |
JP5227875B2 (ja) | 動画像符号化装置 | |
JPWO2006085500A1 (ja) | 監視カメラ装置、それを用いた監視システムおよび監視画像伝送方法 | |
JP2009290691A (ja) | 送信装置、送信方法および受信装置 | |
US8434119B2 (en) | Communication apparatus and communication method | |
JP2007150916A (ja) | コミュニケーションシステム、端末装置及びコンピュータプログラム | |
WO2014039294A1 (en) | Adaptation of encoding and transmission parameters in pictures that follow scene changes | |
JP4488958B2 (ja) | 映像伝送システム及び映像伝送方法 | |
WO2021140768A1 (ja) | 送信装置、送信方法 | |
JP2007288604A (ja) | 映像伝送システム及び映像伝送方法 | |
JP2004158929A (ja) | 動画像処理方法および動画像処理装置ならびに動画像伝送装置 | |
EP2417766A1 (en) | Method and apparatus for asynchronous video transmission over a communication network | |
JP7264517B2 (ja) | 送信装置、受信装置、制御方法、およびプログラム | |
JP2005210160A (ja) | 通信状態表示を有する映像受信端末 | |
JP2004349743A (ja) | 映像ストリーム切替システム、方法、映像ストリーム切替システムを含む映像監視、映像配信システム | |
JP2006352784A (ja) | 伝送方法、受信装置及びコンピュータプログラム | |
US20160344790A1 (en) | Wireless communication device and wireless communication method | |
CN115834975A (zh) | 一种视频传输方法、装置、设备及介质 | |
JP2011015214A (ja) | 送信装置、送信方法、及びコンピュータプログラム | |
JP2012120011A (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: 20912697 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2020912697 Country of ref document: EP Effective date: 20220705 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
NENP | Non-entry into the national phase |
Ref country code: JP |