GB2564644A - Method and system of encoding a data stream according to a variable bitrate mode - Google Patents
Method and system of encoding a data stream according to a variable bitrate mode Download PDFInfo
- Publication number
- GB2564644A GB2564644A GB1711194.9A GB201711194A GB2564644A GB 2564644 A GB2564644 A GB 2564644A GB 201711194 A GB201711194 A GB 201711194A GB 2564644 A GB2564644 A GB 2564644A
- Authority
- GB
- United Kingdom
- Prior art keywords
- bitrate
- data stream
- expected
- encoding
- mode
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/18—Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast
- H04N7/181—Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast for receiving images from a plurality of remote sources
-
- 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/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/162—User input
-
- 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
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
-
- 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/236—Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
- H04N21/2365—Multiplexing of several video streams
-
- 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/238—Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
- H04N21/23805—Controlling the feeding rate to the network, e.g. by controlling the video pump
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/18—Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (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
A method and system of encoding a data stream according to a variable bitrate mode for transmission over a communication network comprising: 310, obtaining an expected bitrate for the data stream based on characteristics required for the data stream; 320, encoding the data stream according to a constant bitrate mode with a target constant bitrate determined to reach the expected bitrate; 330, transmitting the encoded data stream at the target constant bitrate; 340, determining if there is enough available bandwidth in the communication network for transporting the transmitted encoded data stream; if there is enough available bandwidth in the communication network; 350, switching the encoding of the data stream from constant bitrate mode to variable bitrate mode. Optionally, the expected bitrate can be determined based on the complexity of the data stream. Multiple bitstreams may be transmitted simultaneously by encoding the streams initially encoded with VBR to CBR, and transmitting the streams at their expected bitrate. If there is enough bandwidth to successfully transmit the streams, swapping the bitstreams initially encoded with VBR back to VBR. If bandwidth is too low for the CBR transmission, streams are configured one-by-one to find an optimum set of bitrates to transmit all streams.
Description
TITLE OF THE INVENTION
Method and system of encoding a data stream according to a variable bitrate mode
FIELD OF THE INVENTION
This invention relates to the field of video-surveillance and more particularly to the encoding of a data stream generated by a video source device and transmitted over a communication network.
BACKGROUND OF THE INVENTION
Video-surveillance is a fast growing market which tends to become increasingly widespread for ubiquitous applications. It is used in various contexts such as crime prevention, public areas security purposes, or traffic monitoring.
A conventional video surveillance system typically comprises video-cameras capturing scenes and generating raw video streams that are encoded by an encoder and then transmitted for processing to a remote device of the system. The processing may be, among other things, displaying a video stream for monitoring by an operator; recording the video stream for later retrieval, e.g. for post-event investigation; or performing video content analytics [VCA] on the video stream.
The bitrate of a video stream (bits/seconds] mainly depends on encoding parameters such as: the pixel resolution that corresponds to the total number of pixels in an image of the video stream;
the frame rate that corresponds to the number of video frames transmitted per unit of time (e.g., per second];
the encoding mode (also named rate control mode”]. Usually, an encoder supports a constant bitrate [CBR] mode for which the image quality is adapted to match a target bitrate” corresponding to a maximum authorized bitrate, and/or a variable bitrate [VBR] mode for which the bitrate is automatically adapted to match a desired image quality. Image quality may be defined by a compression quality” (also named quantization factor”] that corresponds to a compression rate used by an encoder to convert a raw video stream into an encoded video stream. An encoder may also be configured to support a maximum bitrate [MBR] mode, which is similar to the VBR mode but with a maximum bitrate that cannot be exceeded. In a video-surveillance system, depending on the location of the video source device and the content of the video stream, video streams encoded using CBR, MBR and VBR modes may be simultaneously required.
-2On the one hand, a video stream encoded using a CBR (CBR video stream) offers the advantage of generating a video stream having a predictable bitrate. However, the use of a CBR video stream may not be an adequate solution in case the captured scene is noisy or the motion level is high. In this situation, a video stream encoded using a VBR mode (VBR video stream) will provide a better quality than a CBR video stream. On the other hand, the bitrate of a VBR video stream depends on the video stream content, which may be difficult to predict and lead to high variations of bitrates. As a consequence, VBR video streams may pose problems during streaming, particularly when their bitrates exceed the bandwidth of links of the communication network. A video stream encoded using a MBR mode (MBR video stream) may be an alternative solution but has the drawback that it drastically degrades video quality if the expected bitrate goes beyond the network capacity.
As a matter of fact, it may be difficult to determine if the network infrastructure will support transmission of all video streams over the communication network. Besides, a link may be shared by several video streams concurrently transmitted over the network. This may happen when several users (e.g, operators) or processing devices (e.g., a recording or a Video Content Analytics server) request to process video streams of a same scene but having different characteristics (e.g., a different pixel resolution), or video streams related to different scenes. Their request may lead to simultaneous transmissions of different video streams over links of the communication network. Depending on the number and characteristics of the transmitted video streams, bandwidth of some links may be insufficient to support the total required bitrate. This situation may lead to a network congestion, and may increase latency in transmission of some video streams. As a result, disruption may happen such as freezing of images on display or a performance decrease of the Video Content Analytics (VCA) server. To avoid this situation, a possible solution consists in over-dimensioning the network, but this will have a huge impact on the cost of the system.
As a consequence, there is a need to provide a method of setting encoding parameters of a VBR data stream transmitted over a communication network.
SUMMARY OF THE INVENTION
According to a first aspect, the present invention provides a method of encoding a data stream according to a variable bitrate mode for transmission over a communication network, the method comprising:
obtaining an expected bitrate for the data stream based on characteristics required for the data stream;
encoding the data stream according to a constant bitrate mode with a target constant bitrate determined so as to reach the expected bitrate;
transmitting the encoded data stream at the target constant bitrate;
-3determining if there is enough available bandwidth in the communication network for transporting the transmitted encoded data stream; and if there is enough available bandwidth in the communication network, switching the encoding of the data stream from the constant bitrate mode to the variable bitrate mode.
According to a second aspect, the present invention provides a system for encoding a data stream according to a variable bitrate mode for transmission over a communication network, the system comprising at least one microprocessor configured for carrying out the following steps:
obtaining an expected bitrate for the data stream based on characteristics required for the data stream;
encoding the data stream according to a constant bitrate mode with a target constant bitrate determined so as to reach the expected bitrate;
transmitting the encoded data stream at the target constant bitrate;
determining if there is enough available bandwidth in the communication network for transporting the transmitted encoded data stream; and if there is enough available bandwidth in the communication network, switching the encoding of the data stream from the constant bitrate mode to the variable bitrate mode.
Embodiments of the present invention also extend to programs which, when run on a computer or processor, cause the computer or processor to carry out the method described above or which, when loaded into a programmable system, cause that system to become the system described above. The program may be provided by itself, or carried by a carrier medium. The carrier medium may be a storage or recording medium, or it may be a transmission medium such as a signal. A program embodying the present invention may be transitory or non-transitory.
BRIEF DESCRIPTION OF THE DRAWINGS
Figure 1 depicts for illustrative purposes a video-surveillance system in which the invention is applicable.
Figure 2 illustrates a functional block diagram of a device of the video-surveillance system.
Figure 3 is a flowchart of an algorithm for encoding a data stream according to a variable bitrate mode for transmission over a communication network, according to an embodiment of the invention.
Figure 4 is a flowchart of an algorithm for encoding a new data stream according to a variable bitrate mode for transmission over the communication network simultaneously with a current data stream, according to an embodiment of the invention.
-4Figure 5 is a flowchart of an algorithm for assessing a communication network transmitting at least one VBR data stream according to an embodiment of the invention.
Figure 6 is a flowchart of an algorithm for configuring video streams one by one, according to an embodiment of the invention.
DETAILED DESCRIPTION OF THE INVENTION
Figure 1 represents an example of a video-surveillance system 100 in which the invention is applicable.
In the given example, the video surveillance system 100 comprises a central site (or headquarters) 120 and a backbone network which interconnects the video-cameras and the central site through links 115 and 116.
Two video-cameras 105 and 110 are connected to the communication network through network switches 150 and 155. Each of the video cameras 105 and 110 is configured to capture scenes and generate raw video streams that are encoded by an encoder embedded in the video camera. In a variant, different video streams with different characteristics are generated simultaneously from a same raw video stream using for example several video encoders. The encoders are configured to process the raw video stream and to generate video streams as output according to encoding parameters settings. The encoding parameters may include the video standard (typically H264 or MJPEG), pixel resolution, frame rate, encoding mode and/or compression quality. The set-up of an encoder depends on characteristics of the source flow at the input of the encoder, and also depends on characteristics required for the encoded video stream at the output of the encoder.
For illustrative purposes, when several video streams are concurrently transmitted over the communication network, for instance a first video stream generated by the video camera 110 is transmitted to a first device of the central site 120 and a second video stream generated by the video camera 105 is transmitted to a second device of the central site 120, the link 115 must support the throughput generated by the first video stream and the link 116 must support the throughput generated by the first and second video streams.
The central site 120 comprises the following devices that are interconnected by a dedicated infrastructure network including the network switch 160:
- a display device 140 configured to display the video streams transmitted by the videocamera 110 or 105, or both of them. In the latter case, the screen of the display device may be divided into two parts so as to simultaneously display the two video streams.
- a recording server 135 configured to store received video streams. The recording server may embed an encoder so as to re-encode the received streams when required (for instance before sending the recorded images to the display device 140 and/or to the VCA server 130).
- a VCA server 130 configured to receive a video stream, and analyze its content. Many different functionalities can be implemented in the VCA server 130. Video motion detection is one of the simplest functionalities where motion is detected with regard to a fixed background scene. More advanced functionalities include shape recognition, person identification and tracking, or license plate recognition. A success rate may be computed for the VCA server 130, by comparing its current results with a ground truth. The ground truth may be determined manually, or by a reference VCA providing results of higher quality than results provided by the VCA server 130.
- a Video Manager System [VMS] 125 configured to manage the video-surveillance system. The VMS 125 comprises a software module configured to set-up, control and manage the video surveillance system 100. It may also comprise an administration interface through which the devices of the video surveillance system may be set up. The VMS 125 may thus implement embodiments of the invention and set encoding parameters of video streams.
In practice, any request related to the processing of a video stream, e.g., the generation and transmission of a particular video stream having required characteristics, or the assessing of the videosurveillance system may be transmitted to the VMS 125.
The dedicated infrastructure network composed of network switches, network cables, network interfaces of end-devices (video-cameras, recording server, VCA server, VMS, display] is typically a Local Area Network based on a hierarchical architecture with 10/100/1000 Mbps Gigabit Ethernet capability and RJ45 physical interfaces.
The network deployment of the video surveillance system shown in Figure 1 is a non-limiting example and the present invention is not limited thereto. For example, in embodiments, VCA server 130 and/or recording server 135 may be installed in the vicinity of the video-cameras 105 and 110.
Figure 2 illustrates a functional block diagram of a device of the video-surveillance system illustrated in Figure 1.
In this exemplary architecture, the device 200 comprises a communication bus 205 to which there are connected:
- a micro-controller or Central Processing Unit (denoted CPU] 210;
- an Input/Output [I/O] interface module 220 configured to input parameters to be used in a method according to embodiments;
- a Read-Only Memory (denoted ROM] 230 in which instructions for implementing steps of a method according to embodiments maybe stored;
- a Hard Disk (denoted HD] 240;
- a Random Access Memory (denoted RAM] 250, working as a main memory, in which instructions and temporary variables and parameters for implementing steps of a method according to some embodiments may be loaded from a non-volatile memory, and whose capacity may be extended by an additional Random Access Memory connected to an expansion port (not shown];
- a network interface module 260 enabling connections with other devices (video cameras, recording servers, VCA servers] through the communication network. Digital data to be processed are typically transmitted or received through this interface.
The communication bus 205 provides communication and interoperability between the various elements included in the device 200 or connected to it. For instance, the CPU 210, the ROM 230, the HD 240, the RAM 250, and the interfaces 220, 260 exchange data and control information via the communication bus 205. The representation of the bus is not limiting and in particular the CPU 210 is operable to communicate instructions to any element of the device 200 directly or by means of another element of the device 200.
After the communication device 200 has been powered on, the CPU 210 is capable of executing, from the RAM 250, instructions pertaining to a computer program, once these instructions have been loaded from the ROM 230, the HD 240 or from an external memory (not shown in Figure 2). The computer program causes the CPU 210 to perform some or all of the steps of the algorithms described with reference to Figures 3 to 6.
Figure 3 is a flowchart of an algorithm for encoding a data stream according to a variable bitrate mode for transmission over a communication network, according to an embodiment of the invention. This method may be performed by the VMS 125 shown in Figure 1 or in a variant, by another device of the video-surveillance system able to communicate with the VMS 125.
This method may be triggered upon reception of a request from one of the devices 130,135 or 140 shown in Figure 1. The request concerns setting of encoding parameters of a given video stream generated by one of the video-cameras 105 or 110 of the video-surveillance system. For instance, the request is received through the communication interface 260 shown in Figure 2. It may result from an action of a user (i.e., operator or administrator] through a graphical user interface, or it may be regularly triggered after a predetermined amount of time, or upon detection of a particular event by the VCA server 130. The request includes information for identifying the source device generating the data stream that needs to be configured (e.g., an identifier of a video-camera of the system], and the characteristics required for this data stream. Required characteristics typically correspond to nominal parameters values (e.g., a pixel resolution, frame rate, or compression quality] required for a particular task. For instance, license plate recognition of cars having a speed higher than 30km/h may require a frame rate of at least 15 frames per second to obtain a success rate superior to 80% when the camera is mounted at a maximum of 15 meters from the cars. They may be set by an operator, or predetermined at the configuration of the video-surveillance system 100.
There is a difficulty to know if the available bandwidth is enough to transport a VBR data stream however. In fact, by definition, a VBR data stream is encoded so as to get a predetermined quality level, but its bitrate may vary depending on its content. As a consequence, it is not apparent for a skilled person howto quickly determine if the data stream encoded with the nominal parameters values can be transported by the communication network or not; and in case the available bandwidth is not sufficient, how to update the required characteristics so that to reach a bitrate that fits within the available bandwidth. The following steps address the above issues according to an embodiment of the invention.
In step 310, an expected bitrate of the given data stream is determined based on both the required characteristics of the data stream and on the complexity of the data stream. The complexity of
-7a data stream may be defined as the maximum value between the level of noise and the level of motion. The expected bitrate of a VBR data stream corresponds to a theoretical value that may be reached when the VBR data stream was setup according to the required characteristics, and when the data stream content is relatively complex. The determined expected bitrate corresponds thus preferably to an upper estimation of the bitrate of the VBR data stream, and according to a particular implementation to a peak rate of the data stream. In a variant, the expected bitrate corresponds to an average value of the bitrate of the VBR data stream over a given period of time.
When the source flow is encoded using the H264 algorithm, the expected bitrate may be determined by applying the Kush Gauge formulae: expected_bitrate = pixel_resolution * frame_rate * complexityjevel * alpha * beta. Three complexity levels (low, medium and high) may be defined corresponding respectively to constant values 1, 2 and 4. To determine the expected bitrate, the high complexity level should be considered. The value alpha” (the Kush Gauge constant value) is representative of the compression quality, and is specific to the encoder embedded in the video camera. It may be obtained from a look-up table built through experimentations (a compression level is set, the resulting bitrate is measured, and the alpha value is deduced). The value beta” is representative of the difference between the effective bitrate and the expected bitrate. It may be determined through experimentations, but a value of 1.5 is commonly considered. As an example, with a resolution of 1920*1080 pixels, a frame rate of 25 frames per second, a compression level of 40 in a scale between 0 and 100 corresponding to an alpha value of 0.07, the expected bitrate estimated is 1920*1080*25*4*0.07*1.5 corresponding to 21.8Mbps. To determine an expected bitrate for an algorithm different from H.264, the Kush Gauge constant value can be adapted to the codec used.
The value of the expected bitrate may be updated every time a parameter influencing its determination has changed, e.g. complexity of the video. This makes it possible to define given periods of time over which the expected bitrate corresponds to an average bitrate value that is representative of the bitrate of the VBR data stream.
For a MBR stream and according to one implementation, the expected bitrate corresponds to its maximal bitrate. In the case of a MBR stream, the required characteristics may only comprise a maximal bitrate. As a consequence, the expected bitrate of a MBR stream is directly obtained from the associated required characteristics.
The determined expected bitrate is then used as basis for generating a CBR data stream. In other words, the encoding of the raw data stream is switched from VBR encoding to a CBR encoding with a target bitrate corresponding to the determined expected bitrate. Typically, in step 320, the VMS 125 sends a request to the video source device previously identified so as to set its encoding mode from VBR to CBR, and to apply a target bitrate corresponding to the expected bitrate determined at step 310.
In step 330, the given data stream is generated and transmitted at the expected bitrate over the communication network. Consequently, it is possible to quickly establish whether the CBR data stream can be transported by the communication network or not.
In step 340, it is determined if there is enough available bandwidth in the communication network (e.g., if the available bandwidth is inferior to the expected bitrate). The available bandwidth is
-8defined as the minimum available bandwidth considering all links along the communication path used to transmit the data stream.
The result of this test may be obtained indirectly, by analyzing the evolution of the packet error rates measured in devices receiving data packets (e.g., network switches, the VCA server, the recording server or the display]. If an increase of packet error rate is detected, the bandwidth of at least one link of the network is not sufficient to support the required bitrate.
Alternatively, the result of the test may be obtained by analyzing latencies of video data packets transmissions from a source to a destination device. An increase of transmission latency may also be detected by measuring the round trip time (RTT) between the source and destination devices. If an increase of latency or RTT is detected, the bandwidth of at least one link of the network is not sufficient to support the required bitrate. The analysis of latencies or packet error rates may be applied by several devices and the VMS 125 may only collect the monitoring status.
Alternatively, the result of the test may be determined by analyzing results of a data content analytics server (such as the VCA server 130], For a scene without significant evolution, a decrease of the success rate of the VCA server may indicate that the bandwidth of at least one link of the network is not sufficient to support the required bitrate. As an example, if a VCA configured for face recognition suddenly stops detecting any face while people are going through the area captured by the corresponding video-camera, it may be assumed that the network is no more able to correctly transmit video data to the VCA server.
Alternatively, the result of the test may be determined by an operator detecting a decrease of quality of a video stream displayed on a screen 140.
If there is enough available bandwidth in the communication network (e.g., if the available bandwidth is superior or equal to the expected bitrate], the VMS 125 sends a request to the source device previously identified so as to set encoding mode from CBR to VBR (or MBR] (step 350], This means that the VBR data stream encoded with the nominal parameters values can be safely transported over the communication network.
If the available bandwidth is not enough (e.g., if the available bandwidth is inferior to the expected bitrate], this means that the VBR data stream encoded with the nominal parameters values cannot be safely transported over the communication network, and thus characteristics demanding less bandwidth need to be considered for encoding the data stream.
According to one implementation, another request for transmitting the given data stream is transmitted, but with updated required characteristics (step 360], i.e., characteristics demanding less bandwidth. The updated required characteristics may be determined by transmitting the given data stream at an initial bitrate which may correspond to a fraction of the expected bitrate determined at step 310 (e.g. 10%]. If after a predetermined period of time (for instance 10 seconds] no degradation of the system performance is detected, then the VMS 125 requests the source device generating the given data stream to increase the target bit rate for this stream. For instance, the increase may correspond to 10% of the initial bitrate. This step is repeated until detecting that the available bandwidth is inferior to the current bitrate, so as to determine an updated bitrate at which the given data stream may be
-9transmitted without impacting the system performances. The updated bitrate is used as a basis for updating the required characteristics to obtain a data stream configuration that fit with the available bandwidth.
Several data stream configurations may be determined, and displayed on a screen of the VMS 125, thus permitting an operator to select the most adapted configuration for the given data stream. Finally, the VMS 125 sends a request to the source device previously identified so as to set encoding mode from CBR to VBR (or MBR] (step 350],
In an alternative, in step 330, the given data stream is generated and transmitted at an initial bitrate (lower than the expected bitrate] which is progressively increased until detecting a system performance decrease, or until the expected bitrate is reached. This offer the advantage to not crash the video-surveillance system.
Figure 4 is a flowchart of an algorithm for encoding a new data stream according to a variable bitrate mode while a current data stream is transmitted over the communication network, according to an embodiment of the invention.
This method may be performed by the VMS 125 shown in Figure 1 or in a variant, by another device of the video-surveillance system able to communicate with the VMS 125.
This method may be triggered upon reception of a request from one of the devices 130,135 or 140 shown in Figure 1. The request concerns the configuration of transmission of a new video stream generated by one of the video-cameras 105 or 110 of the video-surveillance system and to be transmitted over the communication network simultaneously with another stream currently transmitted. For instance, the request is received through the communication interface 260 shown in Figure 2. It may result from an action of a user (i.e., operator or administrator] through a graphical user interface, or it may be regularly triggered after a predetermined amount of time, or upon detection of a particular event by the VCA server 130. The request includes information for identifying the source device capable of generating the new data stream for which configuration of the transmission is required (e.g, an identifier of a video-camera of the system], and characteristics required for this new data stream (step 410],
In step 420, the expected bitrates of each data stream are determined. If the current data stream is a VBR data stream, the method of step 310 is applied both for the new and the current data streams. If the current data stream is a CBR/MBR data stream, the method of step 310 is applied for the new stream, and the expected bitrate of the second stream corresponds to its target bitrate (that may be obtained by the VMS 125 from a previous request].
In step 430, the VMS 125 sends a request to the source devicefs] generating a VBR (or MBR] data stream (e.g., the new data stream, and the current data stream when required] so as to set their encoding mode from VBR (or MBR] to CBR, and to apply their expected bitrate determined at step 420.
In step 440, the first and second data streams are transmitted at their expected bitrate over the communication network.
-10In step 450, it is determined if there is enough available bandwidth in the communication network for simultaneously transmitting the two data streams (e.g., if the available bandwidth is inferior to the sum of their expected bitrates]. The available bandwidth is defined as the minimum available bandwidth (before transmission of the new and of the current data stream], considering all links along the communication path used to transmit the data stream.
The result of this test may be obtained indirectly, similarly to step 340. If there is enough available bandwidth in the communication network, the VMS 125 sends a request to the source devicefs] having modified their encoding mode at step 430, to set their encoding mode to VBR (or MBR] (step 470],
If there is not enough available bandwidth (e.g., if the available bandwidth is inferior to the sum of their expected bitrate], an updated bitrate is determined for the new stream by first transmitting the current data stream at its expected bitrate, and then simultaneously transmitting the new stream at an initial bitrate which progressively increased. For instance, the increase may correspond to 10% of the initial bitrate. This step is repeated until detecting that the available bandwidth is inferior to the current bitrate, so as to determine an updated bitrate at which the new data stream may be transmitted without impacting the system performances. The updated bitrate is used as a basis for updating the required characteristics to obtain a new data stream configuration that fit with the available bandwidth (step 460],
Several data stream configurations maybe determined, and displayed on a screen of the VMS 125, thus permitting an operator to select the most adapted configuration for the given data stream.
Finally, the VMS 125 sends a request to the source devicefs] having modified their encoding mode at step 430, to set their encoding mode to VBR (or MBR] (step 470],
Figure 5 is a flowchart of an algorithm for assessing a communication network transmitting at least one VBR data stream according to an embodiment of the invention.
This method may be performed by the VMS 125 shown in Figure 1 or in a variant, by another device of the video-surveillance system able to communicate with the VMS 125. The VMS 125 stores the required characteristics of each stream transmitted over the communication network.
This method may be triggered upon reception of a request from one of the devices 130,135 or 140 shown in Figure 1. The request concerns the assessment of the video surveillance system. For instance, the request is received through the communication interface 260 shown in Figure 2. It may result from an action of a user (i.e., operator or administrator] through a graphical user interface, or it may be regularly triggered after a predetermined amount of time, or upon detection of a particular event by the VCA server 130.
In step 520, the expected bitrates of each data stream are determined. The method of step 310 is applied for VBR data streams. If a data stream is a CBR/MBR data stream, its expected bitrate corresponds to its target bitrate (previously stored by the VMS 125],
- Ilin step 530, the VMS 125 sends a request to the video source devices generating a VBR (or MBR] data stream so as to set their encoding mode from VBR (or MBR] to CBR, and to apply their expected bitrate determined at step 520.
In step 540, all the data streams are transmitted at their expected bitrate over the communication network.
In step 550, it is determined if there is enough available bandwidth in the communication network (e.g., if the available bandwidth is inferior to the sum of their expected bitrate]. The result of this test may be obtained indirectly, similarly to step 340.
If there is not enough available bandwidth to simultaneously transmit all data streams, (e.g. if the available bandwidth is inferior to the sum of their expected bitrate], streams are configured one by one (step 560],
Finally, the VMS 125 sends a request to the source devicefs] having modified their encoding mode at step 530, to set their encoding mode to VBR (or MBR] (step 570],
Figure 6 is a flowchart of an algorithm for configuring data streams one by one, according to an embodiment of the invention. This algorithm may be applied when the available bandwidth of the communication network is not sufficient to simultaneously transmit all data streams.
The algorithm may be triggered at step 605 with the reception of the request to assess the network by increasing one by one the bitrates of the data streams.
Priority levels may be assigned to the data streams, depending on their sensitiveness. Data packets of these sensitive datastreams maybe transmitted with the bestquality of service. Since all data streams cannot be transmitted at their expected bitrate (step 550], the sensitive data stream may be first transmitted at their expected bitrate (using a method similar to steps 310, 320 and 330 when required], and the resulting available bandwidth may be used to transmit the other (non-sensitive] data dreams. Concurrently, the non-sensitive data streams are transmitted at an initial bitrate which may correspond to a percentage of their expected bitrate (e.g. 10%].
In step 610, the VMS 125 selects a non-sensitive data stream from a set of data streams to configure.
In step 615, the VMS 125 requests the corresponding source device to transmit the data stream at an updated bitrate (e.g. 10% more from its current bitrate].
In step 620, it is checked if the available bandwidth of the communication network is superior to its updated bitrate, e.g., if no system performance decrease is detected after a predetermined period of time.
If the available bandwidth is superior or equal to the updated bitrate, it is checked if the updated bitrate corresponds to the data stream expected bitrate (step 640], If true, the given data stream is removed from the set of data streams to configure (step 645], and finally, another stream of the set of data streams is selected (steps 650 and 610], If the updated bitrate does not correspond to the data stream expected bitrate, another stream of the set of data streams is selected (steps 650 and 610],
-12 Going back to step 620, if the available bandwidth of the communication network is inferior to its updated bitrate, the VMS 125 requests the video source device encoder of the given data stream to decrease its bitrate by applying the bitrate before its update at step 615 (step 625).
In step 630, the VMS 125 sends a request to the source device(s) having modified their encoding mode at step 530, to set their encoding mode to VBR (or MBR).
Finally, in step 635, a report status is generated that includes a list of data streams that can be transmitted with the required characteristics, and a list of data streams that can be transmitted at a lower bitrate, e.g., with updated characteristics. This report may be accessible to the operators of the video-surveillance system through a graphical user interface of the VMS 125.
Other alternatives may be considered for configuring data streams one by one. Rather progressively increasing bitrate of the non-sensitive data streams, each one may be directly transmitted at its expected bitrate, until there is no available bandwidth. However this solution may lead to a situation where some of the non-sensitive data streams are not transmitted at all.
Although the present invention has been described hereinabove with reference to specific embodiments, the present invention is not limited to the specific embodiments, and modifications will be apparent to a skilled person in the art which lie within the scope of the present invention.
Many further modifications and variations will suggest themselves to those versed in the art upon making reference to the foregoing illustrative embodiments, which are given by way of example only and which are not intended to limit the scope of the invention, that being determined solely by the appended claims. In particular the different features from different embodiments may be interchanged, where appropriate.
In the claims, the word comprising” does not exclude other elements or steps, and the indefinite article a” or an” does not exclude a plurality. The mere fact that different features are recited in mutually different dependent claims does not indicate that a combination of these features cannot be advantageously used.
Claims (20)
1. A method of encoding a data stream according to a variable bitrate mode for transmission over a communication network, the method comprising:
- obtaining an expected bitrate for the data stream based on characteristics required for the data stream;
- encoding the data stream according to a constant bitrate mode with a target constant bitrate determined so as to reach the expected bitrate;
- transmitting the encoded data stream at the target constant bitrate;
- determining if there is enough available bandwidth in the communication network for transporting the transmitted encoded data stream; and
- if there is enough available bandwidth in the communication network, switching the encoding of the data stream from the constant bitrate mode to the variable bitrate mode.
2. The method of Claim 1, wherein obtaining an expected bitrate comprises determining an expected bitrate based on complexity of the data stream and based on the characteristics required for the data stream.
3. The method of Claim 1 or 2, wherein encoding the data stream comprises encoding the data stream according to the constant bitrate mode with the target constant bitrate equal to an initial bitrate which is progressively increased while there is enough available bandwidth, until the expected bitrate is reached.
4. The method of one of Claims 1 to 3, wherein if there is not enough available bandwidth, the method further comprises:
- encoding the data stream according to the constant bitrate mode with the target constant bitrate equal to an initial bitrate which is progressively increased while there is enough available bandwidth;
- determining an adapted bitrate corresponding to the target constant bitrate fitting the available bandwidth;
- determining at least one set of encoding parameters for generating a data stream encoded according to the variable bitrate mode with an expected bitrate equal to the adapted bitrate;
- encoding the data stream according to the variable bitrate mode with the determined at least one set of encoding parameters.
5. The method of Claim 4, further comprising:
- displaying the determined set of encoding parameters on a graphical user interface; and,
- detecting a user selection of the determined set of encoding parameters.
6. The method of one of Claims 1 to 5, comprising:
- obtaining a second expected bitrate for a second data stream to be transmitted simultaneously with the data stream;
- transmitting the second stream encoded to the constant bitrate mode at a target constant bitrate equal to the second expected bitrate, simultaneously with the data stream;
- determining if there is enough available bandwidth in the communication network for simultaneously transporting the transmitted encoded data stream and the transmitted second stream.
7. The method of Claim 6, wherein if the second stream is encoded according to the variable bitrate mode, the method further comprises:
- obtaining a second expected bitrate for the second data stream, based on characteristics required for the second data stream;
- encoding the second data stream according to the constant bitrate mode with a second target constant bitrate equal to the second expected bitrate;
- transmitting the encoded second data stream at the second target constant bitrate.
8. The method of Claim 6, wherein if the data stream is a new stream to be transmitted over the communication network, the method further comprises obtaining a request to transmit the data stream as a new stream with the required characteristics.
9. The method of Claim 6, wherein if the data stream is currently transmitted over the communication network, the method further comprises obtaining a request to transmit the second data stream with required characteristics, simultaneously with the data stream;
10. The method of one of Claims 1 to 5 comprising:
- obtaining a request to assess a plurality of data streams, the plurality including the data stream;
- obtaining an expected bitrate for each data stream of the plurality;
- simultaneously transmitting each data stream of the plurality at its expected bitrate, each data stream being encoded according to the constant bitrate mode; and,
- determining if there is enough available bandwidth in the communication network for simultaneously transporting each data stream.
11. The method of Claim 10, wherein if there is not enough available bandwidth, the method further comprises:
- transmitting a data stream of the plurality at its expected bitrate, the transmitted data stream being encoded according to the constant bitrate mode;
- increasing the number of data streams of the plurality transmitted at their expected bitrate, until fitting the available bandwidth.
12. The method of one of Claims 1 to 11, wherein determining if there is enough available bandwidth in the communication network is determined by at least one of:
- analyzing packet error rates determined by receiving devices of the communication network;
- analyzing transmission latencies of communication network paths;
- analyzing results of a data content analysis module configured to analyze content of at least one of the first and second data streams; or,
- analyzing image quality of the data stream.
13. The method of one of Claims 1 to 12, wherein the required characteristics include at least one of the following parameters: pixel resolution, frame rate, and compression rate.
14. A system for encoding a data stream according to a variable bitrate mode for transmission over a communication network, the system comprising at least one microprocessor configured for carrying out the following steps:
- obtaining an expected bitrate for the data stream based on characteristics required for the data stream;
- encoding the data stream according to a constant bitrate mode with a target constant bitrate determined so as to reach the expected bitrate;
- transmitting the encoded data stream at the target constant bitrate;
- determining if there is enough available bandwidth in the communication network for transporting the transmitted encoded data stream; and
- if there is enough available bandwidth in the communication network, switching the encoding of the data stream from the constant bitrate mode to the variable bitrate mode.
15. The system of Claim 14, wherein the microprocessor is further configured to determine an expected bitrate based on complexity of the data stream and based on the characteristics required for the data stream.
16. The system of Claim 14, wherein the microprocessor is further configured to encode the data stream according to the constant bitrate mode with the target constant bitrate equal to an initial bitrate which is progressively increased while there is enough available bandwidth, until the expected bitrate is reached.
17. The system of Claim 14, wherein if there is not enough available bandwidth, the microprocessor is further configured to:
- encode the data str earn according to the constant bitrate mode with the target constant bitrate equal to an initial bitrate which is progressively increased while there is enough available bandwidth;
- determine an adapted bitrate corresponding to the target constant bitrate fitting the available bandwidth;
- determine at least one set of encoding parameters for generating a data stream encoded according to the variable bitrate mode with an expected bitrate equal to the adapted bitrate;
- encode the data stream according to the variable bitrate mode with the determined at least one set of encoding parameters.
18. The system of Claim 14, wherein the microprocessor is further configured to:
- display the determined set of encoding parameters on a graphical user interface; and,
- detecta user selection of the determined set of encoding parameters.
19. A computer program which on execution by a programmable node causes the node to execute the method of Claim 1.
20. A non-transitory computer-readable medium storing a program which, when executed by a microprocessor or computer system in a system, causes the system to perform the method of Claim 1.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1711194.9A GB2564644B (en) | 2017-07-12 | 2017-07-12 | Method and system of encoding a data stream according to a variable bitrate mode |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1711194.9A GB2564644B (en) | 2017-07-12 | 2017-07-12 | Method and system of encoding a data stream according to a variable bitrate mode |
Publications (3)
Publication Number | Publication Date |
---|---|
GB201711194D0 GB201711194D0 (en) | 2017-08-23 |
GB2564644A true GB2564644A (en) | 2019-01-23 |
GB2564644B GB2564644B (en) | 2020-12-16 |
Family
ID=59676722
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
GB1711194.9A Expired - Fee Related GB2564644B (en) | 2017-07-12 | 2017-07-12 | Method and system of encoding a data stream according to a variable bitrate mode |
Country Status (1)
Country | Link |
---|---|
GB (1) | GB2564644B (en) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1995028684A1 (en) * | 1994-04-14 | 1995-10-26 | Motorola Inc. | Device, method and system for variable bit-rate packet video communications |
WO1996028896A1 (en) * | 1995-03-15 | 1996-09-19 | The Chinese University Of Hong Kong | Method for compression of loss-tolerant data |
EP1091588A1 (en) * | 1999-04-23 | 2001-04-11 | Sony Corporation | Image encoder and its method |
WO2006099086A1 (en) * | 2005-03-10 | 2006-09-21 | Qualcomm Incorporated | Context-adaptive bandwidth adjustment in video rate control |
EP2262304A1 (en) * | 2004-05-13 | 2010-12-15 | Qualcomm Incorporated | Delivery of information over a communication channel |
-
2017
- 2017-07-12 GB GB1711194.9A patent/GB2564644B/en not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1995028684A1 (en) * | 1994-04-14 | 1995-10-26 | Motorola Inc. | Device, method and system for variable bit-rate packet video communications |
WO1996028896A1 (en) * | 1995-03-15 | 1996-09-19 | The Chinese University Of Hong Kong | Method for compression of loss-tolerant data |
EP1091588A1 (en) * | 1999-04-23 | 2001-04-11 | Sony Corporation | Image encoder and its method |
EP2262304A1 (en) * | 2004-05-13 | 2010-12-15 | Qualcomm Incorporated | Delivery of information over a communication channel |
WO2006099086A1 (en) * | 2005-03-10 | 2006-09-21 | Qualcomm Incorporated | Context-adaptive bandwidth adjustment in video rate control |
Also Published As
Publication number | Publication date |
---|---|
GB201711194D0 (en) | 2017-08-23 |
GB2564644B (en) | 2020-12-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11521325B2 (en) | Adaptive video streaming | |
US8558888B2 (en) | Bandwidth shaping client to capture, transform, cache, and upload images from a remote point of recordation to a network service | |
JP6595287B2 (en) | Monitoring system, monitoring method, analysis apparatus and analysis program | |
US10321144B2 (en) | Method and system for determining encoding parameters of video sources in large scale video surveillance systems | |
US10530990B2 (en) | Method for controlling a video-surveillance and corresponding video-surveillance system | |
KR101515977B1 (en) | System for providing video information using IP camera in cloud configuration method thereof | |
KR101794005B1 (en) | Error detection system for network camera | |
JP6463041B2 (en) | Image processing apparatus, image processing method, and program | |
EP2719175A1 (en) | Provisioning network resources responsive to video requirements of user equipment nodes | |
US10165227B2 (en) | Context based video distribution and storage | |
US11050924B2 (en) | Method and system for auto-setting of cameras | |
JP2006245746A (en) | Monitoring system | |
US20190253470A1 (en) | Data buffering method, network device, and storage medium | |
US20160127626A1 (en) | Camera system, master camera device, and slave camera device | |
JP6809114B2 (en) | Information processing equipment, image processing system, program | |
KR101178886B1 (en) | High resolution digital ptz camera, monitoring system including high resolution digital ptz camera and data transmisson method thereof | |
JP2000032437A (en) | Image transmission system | |
GB2552376A (en) | Method and device for efficiently generating, based on a video flow, a plurality of video streams required by modules of a video surveillance system | |
GB2564644A (en) | Method and system of encoding a data stream according to a variable bitrate mode | |
US10674156B2 (en) | Image management | |
WO2020130798A1 (en) | A system and method for video surveillance and monitoring | |
CN111836020B (en) | Code stream transmission method and device in monitoring system and storage medium | |
JP2005051517A (en) | Video delivery system coding video signal required by client out of video signals from two or more imaging apparatuses using encoder, and performing its delivery to client connected via communication network | |
JP6545205B2 (en) | Data distribution system and data distribution method | |
KR102126794B1 (en) | Apparatus and Method for Transmitting Video Data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PCNP | Patent ceased through non-payment of renewal fee |
Effective date: 20210712 |