GB2564081A - Video transmission - Google Patents
Video transmission Download PDFInfo
- Publication number
- GB2564081A GB2564081A GB1706550.9A GB201706550A GB2564081A GB 2564081 A GB2564081 A GB 2564081A GB 201706550 A GB201706550 A GB 201706550A GB 2564081 A GB2564081 A GB 2564081A
- Authority
- GB
- United Kingdom
- Prior art keywords
- video data
- digital video
- data
- batches
- encoded
- 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
- 230000005540 biological transmission Effects 0.000 title claims abstract description 46
- 238000000034 method Methods 0.000 claims abstract description 46
- 230000009466 transformation Effects 0.000 claims abstract description 27
- 238000006243 chemical reaction Methods 0.000 claims abstract description 4
- 230000003068 static effect Effects 0.000 claims abstract description 4
- 238000007906 compression Methods 0.000 claims description 21
- 230000006835 compression Effects 0.000 claims description 21
- 239000004606 Fillers/Extenders Substances 0.000 claims description 8
- 230000008569 process Effects 0.000 description 12
- 230000002441 reversible effect Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000007429 general method Methods 0.000 description 3
- 239000013589 supplement Substances 0.000 description 3
- 239000003086 colorant Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000001000 micrograph Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
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/30—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
- H04N19/33—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the spatial domain
-
- 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/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/63—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
- H04N19/64—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by ordering of coefficients or of bits for transmission
- H04N19/647—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by ordering of coefficients or of bits for transmission using significance based coding, e.g. Embedded Zerotrees of Wavelets [EZW] or Set Partitioning in Hierarchical Trees [SPIHT]
-
- 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/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal 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/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/63—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
- H04N19/64—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by ordering of coefficients or of bits for transmission
- H04N19/645—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by ordering of coefficients or of bits for transmission by grouping of coefficients into blocks after the transform
-
- 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
- H04N21/234363—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 by altering the spatial resolution, e.g. for clients with a lower screen resolution
-
- 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
- H04N21/23439—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 for generating different versions
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
In an apparatus and method for digital video transmission, a video encoder encodes input digital video data into plural batches of encoded video data, each corresponding to a different level of spatial detail. The plural batches of encoded video data may form a sequence, with a subsequent (later) batch corresponding to a finer detail (resolution, quality) level than a preceding, earlier data batch in the sequence. Three, four or more batch encoding levels may be provided, with coarse, moderate and fine spatial image detail. Encoding may comprise pixel colour space conversion (RGB to YCC), z-curve reordering of colour data in memory, colour data wavelet transformation and/or quantisation of DC and/or AC transform coefficients. Corresponding decoder output resolution may be increased when input video data is static. The method may be applied to networked multicast transmission, for sink, receiver devices having differing resolutions.
Description
Video Transmission
The present invention relates to video transmission and in particular to apparatus, systems and methods for transmitting video signals from a source of video to a sink of video.
As the resolution of display device screens has improved, video standards have evolved similarly to provide higher resolution video signals. When the source of video data and sink of video data are art of the same device or are adjacent, then the video data can be supplied directly to the sink or over a relatively short length video cable, for example an HDMI cable, a DVI cable or a DisplayPort cable.
However, there are also a wide number of applications in which the sink of video data may be more remote to the source of video data. In that case, the video data may need to be sent over a longer cable or even over a local or wide area network.
Video codecs (encoder/decoders) are generally known and may be used to encode and compress video data into a compressed format before transmission of the video data which is then decoded and supplied to the sink of video data. Video codecs may be implemented in hardware or software or a combination thereof. Various video codecs are generally known, for example, H.264. A feature of video codecs is that it often becomes increasingly harder to increase the amount of data compression that can be achieved.
As will be appreciated the bandwidth, in terms of rate of data transfer, that can be supported by a cable or network is limited. Also, less sophisticated networks and/or data connections may only support a relatively low bandwidth. Hence, there can be significant challenges in trying to transmit large amounts of video data quickly over lower bandwidth data connections.
As noted above, the tendency toward higher resolution images means an increase in the amount of video data to be transmitted and which can be particularly challenging over existing or legacy data connections or networks, or using current simpler or lower bandwidth networks or data connections.
There are also applications in which it may be desirable to be able to supply video signals from multiple sources to a single sink, or video from a single source to multiple sinks or video from multiple sources to multiple sinks.
Therefore, it would be desirable to be able to provide apparatus, systems and methods for transmitting higher resolution video data from a source of higher resolution video data to a remote sink of video data more flexibly and/or to provide a greater range of applications.
A first aspect of the invention provides apparatus for digital video transmission, comprising: a transmitting device including a video encoder, wherein the video encoder is configured to encode input digital video data into a plurality of batches of encoded digital video data, wherein each batch of encoded video data corresponds to a different level of spatial detail of the input digital video data; and a receiving device including a video decoder, wherein the transmitting device is configured to transmit one or more of the plurality of batches of encoded digital video data, the receiving device is configured to receive one or more of the plurality of batches of encoded digital video data and the video decoder is configured to decode one or more of the batches of encoded digital video data received at the receiver into output digital video data.
By encoding the digital video data for an image into batches of encoded data each corresponding to a different level of spatial detail of the image for transmission, the digital video can be recreated at a receiver from one or more of the batches as appropriate for the size and/or resolution required by the sink of video data and while keeping within the bandwidth constraints of the data connection over which the encoded data is sent.
The plurality of batches of encoded video data may form a sequence. A subsequent batch of encoded video data in the sequence may correspond to a finer level of detail than a preceding batch of encoded video data in the sequence. The sequence may comprise two, three, four or five batches of encoded video data. Each batch after the first may correspond to an increasingly finer level of spatial detail than the preceding batch in the sequence.
The video encoder may be configured to encode the input digital video data into at least three batches of encoded video data. A first batch may correspond to coarse spatial detail of the input digital video data, a second batch may correspond to moderate spatial detail of the input digital video data and a third batch may correspond to fine spatial detail of the input digital video data.
The video encoder may be further configured to encode the input digital video data into at least four batches of encoded video data. A fourth batch may correspond to finest spatial detail of the input digital video data.
The decoder and/or receiving device may be configured to decode a subset of the plurality of batches of encoded video.
The decoder and/or receiving device may be configured to decode a subset of the plurality of batches of encoded video generated by the encoder and/or sent by the transmitting device and/or received at the receiving device.
The subset may comprise one batch, two batches or three batches of the plurality of batches. The subset of the plurality of batches of encoded video may comprise one of: a first batch corresponding to coarse spatial detail of the input digital video data; a first batch corresponding to coarse spatial detail of the input digital video data and a second batch corresponding to moderate spatial detail of the input digital video data; or a first batch corresponding to coarse spatial detail of the input digital video data, a second batch corresponding to moderate spatial detail of the input digital video data and a third batch corresponding to fine spatial detail of the input digital video data.
The decoder and/or receiving device may be configured to decode all of the plurality of batches of encoded video. The decoder and/or receiving device may be configured to decode all of the plurality of batches of encoded video generated by the encoder and/or sent by the transmitting device and/or received at the receiving device.
The encoder may be configured to carry out one or more of: colour space conversion of pixel data from RGB to YCC; z-curve re-ordering of pixel colour data in memory; spatial transformation of pixel colour data; wavelet transformation of pixel colour data; quantisation of DC and/or AC transformation coefficients.
The encoder may be further configured to carry out one or more compression methods. Compression methods may include one or more of variable length encoding and/or significance encoding.
The decoder may be configured to carry out the reverse of the compression by the encoder and/or the reverse of the encoding by the encoder.
The encoder may be configured to encode differences between a current frame of digital video data and a previous frame of digital video data and/or the decoder may be configured to decode differences between a current frame of digital video data and a previous frame of digital video data.
The transmitting device may include a plurality of video encoders. Each video encoder may be configured to encode respective input digital video data streams into a respective plurality of batches of encoded digital video data, wherein each batch of encoded video data corresponds to a different level of spatial detail of the respective input digital video data stream.
The receiving device may include a plurality of video decoders. The transmitting device may be configured to transmit one or more of the batches of each of the plurality of batches of encoded digital video data. The receiving device may be configured to receive one or more of the batches of each of the plurality of batches of encoded digital video data. Each video decoder may be configured to decode one or more of the batches of encoded digital video data of each of the plurality of batches received at the receiver into respective output digital video data.
The apparatus may further comprise a plurality of transmitting devices. Each transmitting device may include one or a plurality of video encoders. Each video encoder may be configured and/or arranged to receive input digital video data from a different source of digital video data.
The apparatus may further comprise a plurality of receiving devices. Each receiving device may include one or a plurality of video decoders. Each video decoder may be configured and/or arranged to generate output digital video data corresponding to a different source of digital video data.
The input digital video data may correspond to a resolution of at least 7 megapixels, at least 8 mega pixels or greater than 8 megapixels. The input digital video data may be 4k digital video data.
The output digital video data may correspond to a resolution of at least 1 megapixels or greater than 1 megapixels. The output digital video data may HD digital video data.
The output digital video data may correspond to a resolution of at least 7 megapixels, at least 8 mega pixels or greater than 8 megapixels. The output digital video data may be 4k digital video data.
The transmitting device and/or receiving device may be configured to transmit the one or more of the plurality of batches of encoded digital video data to the receiving device at a rate of substantially or up to 1 Gigabit per second.
The transmitting device and/or receiving device may be configured to transmit the one or more of the plurality of batches of encoded digital video data to the receiving device at a rate of substantially or up to 10 Gigabit per second.
The transmitting device and/or receiving device may be configured to transmit the one or more of the plurality of batches of encoded digital video data to the receiving device at a rate in the range of from substantially 1 Gigabit per second to substantially 10 Gigabits per second.
The transmitting device and/or the receiving device may be configured to transmit and receive over an Ethernet connection. The Ethernet connection may be a 1 Gigabit per second Ethernet connection.
A second aspect of the invention provides a video extending device including the apparatus of the first aspect of the invention. The video extending device may be a keyboard, video and mouse (KVM) device or a KVM switch or a KVM extender.
A third aspect of the invention provides a video transmission system comprising: apparatus for digital video transmission according to the first aspect of the invention or a video extending device according to the second aspect of the invention; a source of digital video data arranged to supply the input digital video data to the transmitting device; a sink of digital video data arranged to receive the output digital video data from the receiving device; and a data connection arranged between the transmitting device and the receiving device.
The video transmission system may include a plurality of transmitting devices and/or a plurality of receiving devices.
The or each transmitting device may include a respective encoder for each source of digital video data.
The or each receiving device may include a respective decoder for each separate video stream to be supplied to the or each sink of digital video data.
The video transmission system may include a plurality of data connections arranged between the transmitting device and the receiving device. One data connection or a plurality of data connections may be provided between each respective pair of transmitting and receiving devices of the video transmission system.
The data or each connection may have a bandwidth of substantially or up to 1 Gigabit per second.
The data or each connection may have a bandwidth of substantially or up to 10 Gigabits per second.
The data or each connection may have a bandwidth in the range of from substantially 1 Gigabit per second to substantially 10 Gigabits per second.
The data or each connection may include an Ethernet connection. The data connection may consist entirely of an Ethernet connection.
The or each data connection may include a network. The network may be a wide area network or a local area network. The network may have a bandwidth of substantially or up to 1 Gigabit per second. The network may be an Ethernet network.
The network may be configured to support multicast groups. Each multicast group may be configured and/or arranged to multicast a different one of the plurality of batches of encoded video data.
The network may be configured and/or arranged to support a plurality of collections of multicast groups. Each collection of multicast groups may be configured to multicast batches of encoded video data from a respective one of a plurality of transmitting devices.
The, or each, receiver and/or decoder may be configured to subscribe to one or more of the multicast groups.
The, or each, receiver and/or decoder may be configured to subscribe to at least one multicast group or a plurality of multicast groups of a plurality of collections of multicast groups.
A fourth aspect of the invention provides a method for transmitting digital video data from a source of digital video data to a sink of digital video data, comprising: encoding input digital video data into a plurality of batches of encoded digital video data, wherein each batch of encoded video data corresponds to a different level of spatial detail of the input digital video data; transmitting one or more of the plurality of batches of encoded digital video data over a data connection; and decoding one or more of the batches of encoded digital video data received over the data connection into output digital video data.
Any of the preferred features of the first, second or third aspects of the invention may also be counterpart preferred features of the fourth aspect of the invention.
Embodiments of the invention will now be described in greater detail, by way of example only, and with reference to the accompanying drawings, in which:
Figure 1 shows a schematic block diagram of a first embodiment of a video system according to the invention using video transmission apparatus according to a first embodiment of the invention;
Figure 2 shows a schematic block diagram of a second embodiment of a video system according to the invention using video transmission apparatus according to a second embodiment of the invention;
Figure 3 shows a schematic block diagram of a third embodiment of a video system according to the invention using video transmission apparatus according to a third embodiment of the invention;
Figure 4 shows a schematic block diagram of a fourth embodiment of a video system according to the invention using video transmission apparatus according to a fourth embodiment of the invention;
Figure 5 shows a schematic block diagram of a fifth embodiment of a video system according to the invention using video transmission apparatus according to a fifth embodiment of the invention;
Figure 6 shows a flow chart illustrating a method of video transmission according to the invention;
Figure 7 shows a flow chart illustrating a method of video encoding used in the method illustrated in Figure 6; and
Figure 8 shows a flow chart illustrating a method of video decoding used in the method illustrated in Figure 6.
In the Figures, the same reference signs are used for like features unless indicated otherwise.
With reference to Figure 1, there is shown a first embodiment of a video system 100 according to the invention and including a first embodiment of video transmission apparatus 110 according to the invention.
The video system 100 includes a source of video data 102 and a sink of video data 104. The source of video data 102 and sink of video data 104 are connected by the video transmission apparatus which comprises a transmitter 112 for transmitting video data and a receiver 114 for receiving video data connected by a data connection 116. The data connection may be a direct connection or a network connection. In particular the data connection 116 may be an Ethernet connection and in particular an Ethernet connection with a data transmission rate of up to 1 Gigabit per second, sometimes referred to as Gigabit Ethernet.
The transmitter 112 may be any type of device or apparatus whose functions include the transmission of video data and in particular may be a part of a video extender and more specifically a part of a KVM extender. The transmitter includes a video encoder 118 and other functionalities which will not be described in detail so as not to obscure the present disclosure. The video encoder 118 may be implemented in hardware or software or a combination thereof. For example the video encoder may be implemented using a suitable PC on a chip as provided by Intel Corporation (Intel is a Trade Mark which may be registered in some countries). In other embodiments, the video encoder may be implemented using a microprocessor and a suitably configured FPGA.
The receiver 114 may be any type of device or apparatus whose functions include the reception of video data and in particular may be a part of a video extender and in partial a part of a KVM extender. The receiver includes a video decoder 120 and other functionalities which will not be described in detail so as not to obscure the present disclosure. The video decoder 120 may also be implemented in hardware or software or a combination thereof. For example the video encoder may be implemented using a suitable PC on a chip as provided by Intel Corporation (Intel is a Trade Mark which may be registered in some countries). In other embodiments, the video encoder may be implemented using a microprocessor and a suitably configured FPGA.
As will be appreciated by a person of ordinary skill in the art, when used as part of a KVM extender (Keyboard, Video and Mouse extender), the transmitter 112 and receiver 114 apparatus will include other circuitry and functions in order to allow keyboard and/or mouse signals to be transmitted from a keyboard and/or mouse of a user console to and/or from the computer. The transmitter 112 and receiver 114 will also include other circuitry, hardware and/or software configured to handle the lower level communications requirements of the transmitter and receiver so that they can communicate with each other over the data connection 116 or network connection. These are well known by persons of ordinary skill in the art and so are not described herein in detail to avoid obscuring the invention.
The source of video data 102 may be or include any source of video data such as a video camera, graphics processor, industrial control system, computer or similar. For example, the source of video data 102 may be a computer include a video card which can output video data via a video port and to which the transmitter 112 may be connected using a video cable. For example, the computer may output video data suitable for a 4k display device. The term 4k is generally used to refer to display formats having a pixel resolution of approximately 4 thousand pixels by 2 thousand lines and hence approximately, or at least, 8 megapixels. For example specific 4k pixel resolutions include the DCI4K resolution standard of 4096 x 2160 pixels and the UHD-1 4K standard, also referred to as 2160p, has a resolution of 3840 x 2160 pixels. Even higher resolution video standards also exist. Hence, the source of video data 102 may generally have a video resolution of at least 8 megapixels.
It will be appreciated, that for such high resolution video formats, a high data transmission rate is needed to transmit the video data in uncompressed form, for example a data transmission rate of approximately 12 gigabits per second for 8.3 megapixels, with three 8-bit colours per pixel at 60 Hz. Hence, the required data transmission rate for a high resolution video image is much greater than that typically available from simpler networking technologies such as gigabit Ethernet.
The sink of video data 104 may include any sink of video data such as a storage or recording device or may be a video display device. For example, as illustrated in Figure
1, the sink of video data 104 is a video display device. In some embodiments, the video display device may have a display screen 122 with a resolution less than the resolution of the video source 102. For example, the display device may have a resolution corresponding to a High Definition format or standard such as 1080p which has a resolution of 1920 x 1080 pixels, or 720p which has a resolution of 1,280 x 720 pixels. Hence, such high definition displays may have approximately 1 to 2 megapixels. In other embodiments, the sink of video data 104 may also require 4k format video data, for example may be a 4k display device. Hence, the video compression required by the encoder 118 and decoder 120, may need to be a factor of approximately 12 in order to supply 4k video over a 1 gigabit per second data connection 116 to a 4k device 104. Even if device 104 is only a High Definition device, then a significant level of compression may still be required in order to supply High Definition resolution video in colour at 60Hz and which is suitable for professional applications, such as video production or industrial control.
As discussed in greater detail below, the encoder 118 and decoder 120 implement a video coding and decoding scheme with sufficient compression to allow a high resolution video to be compressed over a comparatively low bandwidth data connection: in the described embodiments, 4k video at 60 frames per second over a 1 Gbit/s data connection. Figure 1 illustrates a simple video transmission system in which a single source of high resolution video is transmitted over a simple direct connection to single sink of video. However, the encoder and decoder illustrated in Figure 1 may also be used to implement more complicated video transmission systems as illustrated, in non-limiting way, by the video transmission systems of Figures 2 to 4. Generally speaking the video transmission system may include one or more sources of high resolution video connected to one or more sinks of high resolution video and either directly connected or connected via a network, for example a local area network.
The encoder 118 is configured to encode the received high resolution video by breaking the high resolution video into separate batches of video data each having a different level of detail of the original high resolution video. A first batch of video data encodes a coarse level of detail of the video image, a second batch of video data encodes a moderate level of detail of the video image, a third batch of video data encodes a fine level of detail of the video image and a fourth batch of video data encodes a finest level of detail of the video image data. Hence, each batch of finer level of detail video data supplies an extra level of detail in addition to the detail of a preceding lower level of detail batch of video data. Hence, video data corresponding to a particular level of detail is not sent twice. For example, the moderate level of detail video data supplements the coarse level of detail video data without having to re-send the coarse level of detail video data, the fine level of detail video data supplements the moderate level of detail video data without having to resend the coarse or moderate levels of detail video data and the finest level of detail video data supplements the fine level of detail video data without having to re-send the coarse, moderate or fine levels of detail video data. Four sequentially increasing or finer levels of detail are described herein by way of example only, and it will be appreciated that a greater or lesser number of different levels of detail may also be used in other embodiments.
The batches of video data may be further compressed before transmission. Depending on the resolution required by the sink and/or the size of the image one or more of the batches of video data are sequentially transmitted to allow the appropriate resolution image and/or size of image to be generated by the decoder for the video sink. Hence, if small image or very low resolution display is being used, then only the coarse level of detail may be transmitted, as moderate levels of detail may not be apparent to a user of the receiver. If medium sized images and/or a moderate resolution display is being used, then the coarse and moderate level of detail may be transmitted, as finer levels of detail may not be apparent to a user of the receiver. If larger images and/or a high resolution display is being used, then the coarse, moderate and fine level of detail may be transmitted, as the finest levels of detail may not be apparent to a user of the receiver. If larger images and/or a higher resolution display is being used, then the coarse, moderate, fine and finest level of detail may be transmitted, so that images with substantially the same resolution as that of the original video data can be generated, subject to any compression artefacts. The decoder then reverses the encoding process using the received data for the different levels of detail in order to regenerate the video data with the corresponding level of detail, ranging from only the coarse level of detail through to the finest level of detail.
The operation of the encoder 118 and decoder 120 are described in greater detail below with particular reference to Figures 7 and 8.
For example, the system 100 of Figure 1, may be used to transmit 4k video from a computer 102 to 4k display 104 over a lGbit/s Ethernet connection. Depending on the level of compression used very few if any compression artefacts may be present in the displayed video image. The system 100 of Figure 1, may also be used to transmit 4k video from a computer 102 to a High Definition (HD) resolution display 104 over a lGbit/s Ethernet connection. As the resolution of the display is less than the resolution of the video source, any compression artefacts may not be reproduced in in the displayed image. Additionally, or alternatively, the compressed data corresponding to the finest, or the fine and the finest, level of detail may not be transmitted and so a lower data rate data connection 116 may be used. Hence, only the coarse, moderate and fine levels of detail video data, or only the coarse and moderate levels of detail video data may be transmitted and decoded by decoder 120 and then used by the receiver 114 to generate the video image output on the HD resolution screen 122 of the display 104.
The system 130 of Figure 2 includes first 102 and second 102’ sources of data each connected to a transmitter 112’ including a first encoder 118 and a second encoder 118’. The transmitter 112’ is connected via a data connection 116 to a receiver 114’ including a first decoder 120 and a second decoder 120’and which is connected to a sink of video data 104. For example, in one embodiment, the first and second sources of video data may be first and second computers each outputting a 4K video signal from respective video ports. The data connection may be a 1 Gbit/s Ethernet connection and the sink of video data 104 may be a display device with an HD resolution screen 122’. The display device 104 and/or the receiver 114’ may be configured to allow multiple images to be displayed on the HD screen 122’. A first thumbnail image 124, a second thumbnail image 126 and a substantially full screen image 128 may be displayed concurrently. The first thumbnail image 124 may be generated from only the coarse level of detail data from the first computer 102, the second thumbnail image 126 may be generated from only the coarse level of detail data from the second computer 102’ and the substantially full screen image 128 may be generated from the coarse, moderate and fine level of detail data from one of the first and second computers. Hence, the user can monitor the video output from each of the computers using the thumbnails and view the video output from one of the computers in detail.
The receiver 114’ and/or display device 104 may be configured to receive user input, or some other user interaction, to allow the user to select to display the video output from the other of the computers in substantially full screen in place of the video output of the currently selected computer. For example, if the display device 104 is a touch screen device, then the use may simply touch the thumbnail image 124, 126 corresponding to the video that they want to view in substantially full screen mode and hence in higher resolution. If the full screen image 128 and the first thumbnail 124 correspond to the video output from the first computer, then the first encoder 118 encodes, compresses and transmits batches of video data at all of the levels of detail to the first decoder 120. The first decoder decompresses and decodes the received data for three of the four levels of detail. The coarse level of detail data can be used to generate the thumbnail 124, and the coarse, moderate and fine levels of detail data can be used to generate the full screen image 128. The second encoder 118’ may encode, compress and transmit batches of video data from the second computer 102’ at all levels of detail to the second decoder 120’. The second decoder 120’ decompresses and decodes the received data for only the coarse level of detail. The coarse level of detail data can be used to generate the second thumbnail 126. If the user switches the selected computer video to display in the full screen 128 view, then the second decoder starts to 120’ decompress and decode the received data for three of the four levels of detail to generate a full screen view 128 of the video data from the second computer instead and the first decoder 120 starts to decompress and decode the received data for only the coarse level of detail to generate the first thumbnail 124.
In other embodiments, in which the display device 104 is a 4k display device, then the decoders can decompress and decode the received data at all four levels of detail to generate a full screen image 128 at a substantially 4k image quality.
In other embodiments, for example if the data connection 116 bandwidth is lower, then the encoder currently supplying the video data for only a thumbnail image, may transmit the video data for only the coarse level of detail, and which will be sufficient for the thumbnail image.
Figure 3 shows a system 150 generally similar to system 130, but including a second sink of video data 104’, a second receiver 114”, first and second decoders 102-1, 120-2 and 12O’-l, 12O’-2 in each receiver, and a second data or network connection 116’ between the transmitter 112’ and a second receiver 114”. Each sink of video data may be, for example, a 4k resolution display device. The operation and functions of the system 150 are generally similar to those of system 130 except that a substantially full screen 128 of video from the first computer 102 is presented on the first 4k display screen 122’and a substantially full screen 128’ of video from the second computer 102’ is presented on the second 4k display screen 122” with thumbnail video images 124, 126, 124’, 126’ for both computers video on each of the displays. In this system 150, the first encoder 118 and second encoder 118’ each encode video data at all levels of detail from a respective one of the computers for transmission.
The transmitter 112’ transmits the data at all levels of detail from the first encoder 118 and the data at only the coarse level of detail from the second encoder 118’ over the first data connection 116 to the first receiver 114. The first decoder 120-1 decodes the received data from the first computer 102 and supplies data at all levels of detail to the first display device 104 to generate the first full screen video 128 for the first computer. The second decoder 120-2 decodes the received data from the second computer 102’ at only the coarse level of detail and supplies video data at only the coarse level of detail to the first display device 104 to generate the second thumbnail image 126 of the video from the second computer 102’. The first thumbnail image 124 of the video from the first computer 102, can be generated by the first receiver 114 from the decoded video data at the coarse level of detail only.
The transmitter 112’ transmits the data at all levels of detail from the second encoder 118’ and the data at only the coarse level of detail from the first encoder 118 over the second data connection 116’ to the second receiver 114”. The first decoder 12O’-l decodes the received data from the second computer 102’ and supplies data at all levels of detail to the second display device 104’ to generate the second full screen video 128’ for the second computer. The second decoder 120’-2 decodes the received data from the first computer 102 at only the coarse level of detail and supplies video data at only the coarse level of detail to the second display device 104’ to generate the first thumbnail image 124’ of the video from the first computer 102. The second thumbnail image 126’ of the video from the second computer 102’, can be generated by the second receiver 114” from the decoded video data at the coarse level of detail only.
Hence, each of the display devices may generate a substantially full screen image 128, 128’ for a respective one of the computers using decoded video data at all levels of detail and also generate the thumbnail images 124, 126, 124’, 126’ using only the respective coarse level of detail video data from the decoders without exceeding the bandwidth of their respective data connections 116, 116’.
Figure 4 shows a system 170 including first to fourth sources of video data 102-1 to 102-4 each connected to a transmitter 112” including first to fourth encoders 118-1 to 118-4. The transmitter 112” is connected to a receiver 114’” by a data connection 116, which may be in the form of a IGigabit/s Ethernet connection. The receiver 114’” includes first to fourth decoders 120-1 to 120-4 and is connected to a sink of video data 104, which may be in the form of a display device with a 4k resolution screen 122. Each of the first to fourth encoders 118-1 to 118-4 encodes and compresses the 4k video data from a respective one of the first to fourth computers 102-1 to 102-4 into the coarse, moderate and fine levels of detail. The transmitter 112” transmits the encoded video data at the coarse, moderate and fine levels of detail for each of the four computers over the 1 Gigabit/s data connection 116 to the receiver 114’”. A respective one of the first to fourth decoders 120-1 to 120-4 decompresses and decodes the received data at the coarse, moderate and fine levels of detail. The receiver 114’” then generates four HD quality video streams which can be displayed as four quarter screen tiles 128-1 to 128-4 on the 4k resolution screen 122 of the display device 104. Hence, a single 1 Gigabit/s data connection can be used to transmit and display four HD quality video images 128-1 to 128-4 concurrently on a 4K display device 104.
It will be appreciated that the number of sources and/or sinks of video data can be varied and the number of encoders and decoders may be varied accordingly. Also, the number of data connections may also be varied depending on the required data transfer rate and the number of encoders and decoders that need to be supported. Preferably an instance, in hardware and/or software, of an encoder/decoder pair is provided for each source of video data and each stream of video data to be supplied to a sink of video data. Hence, in other embodiments, multiple data connections 116 may be provided and/or data connections with greater bandwidth may be used additionally or alternatively. Also, in other embodiments greater bandwidth data connections may be used, for example one or more 10 gigabits per second data connections and or networks.
Figure 5 shows a further embodiment of a video transmission system 200 according to the invention. The video transmission system includes four sources of video data 102-1 to 102-4, which may each be in the form of a computer. Each source of video data is connected to a respective transmitter 112-1 to 112-4, and each transmitter includes at least a respective encoder 118-1 to 118-4. Each transmitter is connected to a network 210. The network 210 may be a local area network. In particular network 210 may be an Ethernet network. Each transmitter 112-1 to 112-4 is connected to network 210 by a respective data connection 116-1 to 116-4, which may be in the form of a 1 Gbit/s Ethernet connection. The network 210 may include various network devices and is configured to support multicast groups. For example, the network may include one or more network switches 220 and each switch may be configured to support multicasting and multicast groups, as described in greater detail below. Switch 220 is capable of supporting multiple multicast groups. A first collection of four multicast groups 222 to 228 is represented by box 221 and a second collection of four multicast groups 282 to 288 is represented by box 281. In practice there will also be third and fourth collections of multicast groups so that there is a respective collection of multicast groups for each of the sources of video data. Only a single switch 220 is illustrated in Figure 5 simply for clarity of explanation and in practice a greater number of switches may be provided in other embodiments.
The system 200 also includes a first receiver 230, a second receiver 240 and a third receiver 250. Each receiver is connected to network 210 by a respective data connection 116’-1 to 116’-3, each of which may be in the form of a 1 Gbit/s Ethernet connection. The first receiver 230 includes first to fourth decoders 232 to 238, the second receiver 240 includes first to third decoders 242 to 246, and the third receiver 250 includes a first decoder 252. The first receiver 230 is connected to a first sink of video data 254, which may be in the form of a display device with a 4k resolution screen 256. The second receiver 240 is connected to a further sink of video data 260 which may be in the form of a display device with a 4k resolution screens 262. The third receiver 250 is connected to a yet further sink of video data 270 which may be in the form of a display device with a 4k resolution screens 272.
In other embodiments, in which greater bandwidth may be required, the transmitters and/or receivers may be connected to the network 210 by multiple data connections and/or data connections with greater bandwidths.
The transmitters 112-1 to 112-4 and receivers 230, 240, 250 use a packet based protocol to transmit data over the network 210. As noted above the network 210 is configured or otherwise adapted to support multicasting which is a form of point-to-multipoint communication. For example, the first transmitter 112-1 can transmit packets containing the data for the coarse level of detail to a first multicast group as represented by node 222 on switch 220. Similarly the first transmitter 112-1 can transmit packets containing the data for the moderate level of detail to a second multi-cast group, represented by node 224, for the fine level of detail to a third multicast group, represented by node 226, and for the finest level of detail to a fourth multicast group, represented by node 228.
Similarly, as indicated by dashed lines and ellipsis in Figure 5, each of transmitters 112-2 to 112-4 transmits packets of data for each of the high, moderate, fine and finest level of detail to respective multicast groups, e.g. multicast groups 282 to 288 for the fourth transmitter 112-4.
Generally speaking, the decoders of each receiver 230, 240, 250 are configured to subscribe to the multicast groups from which they need to receive video data in order to support a currently selected video output.
For example, if first receiver 230 and display 254 are configured to currently display four quarter screen tiled images 258-1 to 258-4 of HD quality corresponding to the video output from the first 102-1 to fourth 102-4 computers video (similarly to the system of
Figure 4), then each decoder 232 to 238 will subscribe to the first to third multicast groups for each transmitter, e.g. multicast groups 222, 224, 226 for the first transmitter through to multicast groups 282, 284, 286 for the fourth transmitter, so that they will each receive packets containing video data at only the coarse, moderate and fine levels of detail so as to generate the HD quality video images 258-1 to 258-4. However, they do not subscribe to the multicast groups for the finest level of detail, e.g. 228 and 288, as that level of detail would not in practice be needed for an HD quality image on a 4K display device.
The second receiver 240 can support three video outputs and is configured to generate a substantially full screen image 264 at a HD level of quality, and a first 266 and a second 268 thumbnail image on the 4k resolution screen 262. For example, each of the decoders 242 and 244 can subscribe to the respective multicast groups 222, 282 for the coarse level of detail video data for the first and the fourth computers 102-1 and 102-4 so as to generate a thumbnail image 266 and 268 of the video from the first and the fourth computers on the 4k screen 262 of the display device 260. The third decoder 246 can subscribe to the multicast groups (not shown, but indicted by three dashed lines 269) for the coarse, moderate and fine levels of detail for the second computer 102-2 so as to display a substantially full screen image 264 of HD quality video on the display device 260.
The third receiver 250 can support a single video output and is configured to generate a substantially full screen image 274 at a 4k level of quality on the 4k resolution screen 272 of the yet further display device 270. For example, decoder 252 can subscribe to multicast groups for the coarse 282, moderate 284, fine 286 and finest 288 levels of detail for the fourth computer 102-4 so as to display a substantially full screen image 274 of 4k quality video on the yet further display device 270.
Hence, each receiver can subscribe to a selection of multicast groups that can supply the streams of encoded video data at the level or levels of detail it needs in order to support the image resolution or resolutions required, while staying within the bandwidth of the data connections.
In other embodiments, the display devices may have different resolution screens. For example, the third display device 270 may have a HD resolution screen 272, and hence the decoder 252 supplying the data for the third display device will subscribe to the multicast groups for only the coarse, moderate and fine levels of detail for the corresponding source computer so as to allow a HD resolution image to be generated. If a display device has a lower than 4k resolution, or is being used to display smaller images on a higher resolution screen, then its decoder or decoders may subscribe to multicast groups for less than all of the levels of detail for a substantially full screen image, for example the coarse, moderate and fine levels of detail, or just the coarse and moderate levels of detail, or just the coarse level of detail.
Hence, the display 260 and the receiver 240 may be used by a user to monitor the video output from two of the four computers via thumbnails 266 and 268 and also view larger images at higher resolutions from another one of the four computers. The display 254 and the receiver 230 may be used by a user to monitor the video output at HD quality from all four computers via quarter screen tiles 258-1 to 258-4. In other embodiments in which four displays are connected to the receiver 230, then four high resolution images may be viewed from all four of the computers.
It will be appreciated that in other embodiments of the system 200, the number of computers and corresponding transmitters may be varied, the number of receivers may be varied, from one to a plurality, the number of decoders in each receiver may be varied, from one to a plurality, and the number of displays connected to any receiver may also be varied from one to a plurality.
The general method of operation of an encoder and decoder pair of any of the systems illustrated in Figures 1 to 5 will now be described with reference to Figures 6, 7 and 8. Figure 6 shows a process flow chart illustrating a method 500 for transmitting video data.
At step 502 the high resolution video data is generated at the source or sources of video data. For example, the high resolution video data may be 4k 60 frame per second video data generated by a graphics or video card of a computer and output from a video port of the computer. For example, the video data may comprise 8, 10 or 12 bit values for each of three colour components, e.g. red (R), green (G) and blue (B), for each pixel of a frame of video. At step 504 the high resolution video data is received at the transmitting device, which may be a part of or attached to, the source of high resolution video data. At 506, the high resolution video data is encoded into batches of data each at a different level of spatial detail of the image of the current frame of video data. Hence, each batch of video data corresponds to increasingly finer scale details of the image of the current frame of video data. Each batch of subsequent video data includes extra detail in addition to that of the preceding batch, and so no transmission bandwidth is wasted by sending the same spatial information twice. The batches of data may then also be compressed using a variety of techniques to further reduce the amount of encoded data to be transmitted.
At 508, the encoded video data from the encoder is transmitted to one or more decoders. In simpler systems, the encoded video data may be transmitted directly to a decoder over a direct data connection, for example a 1 Gbit/s Ethernet connection. A packet based communications protocol may be used to transmit the encoded video data to the receiver and decoder. In more complicated systems, the encoded video data may be transmitted over a network to one or more receivers and decoders attached to the network. Again a packet based communications protocol may be used by the transmitter and/or encoder and the receiver and/or decoder to transmit and receive the encoded video data. As discussed above, in some embodiments, the encoded video data may be multicast by the network in order to allow one or more receivers and/or decoders to subscribe to different multicast groups so as to receive only the encoded video data for the level or levels of detail appropriate to an output device attached to the decoder. This helps to keep the data transmission rate within the bandwidth available on the network.
At 510, a receiver including at least one decoder receives various data packets including the encoded video data at one or more levels of detail. At 512, the decoder unpacks the packets and decompresses the received video data and decodes the decompressed data into decoded video data having a level of detail corresponding to the levels of detail initially received. The decoder can then output the decoded video data to the sinks of video data at 514. In some embodiments, the receiver and decoder may be provided as part of, or connected to, the sink of video data. At 516, the decoded video data may be used by the sink, for example stored or written to a memory or storage device and/or output as a video image, if the sink is or includes a display device.
As discussed above, this method may be particularly useful to transmit 4k 60 frame per second video data from multiple sources over a 1 Gbit/s Ethernet connection to one or more HD resolution display devices. Alternatively, or additionally, one or more 4k resolution display devices may be used.
The general method of operation of an encoder will now be described with reference to Figure 7. Figure 7 shows a process flow chart illustrating a method 600 for encoding high resolution video data. The method 600 is particularly suitable for encoding video data having a frame size of over 7 megapixels, for example at least 8 megapixels and above, as is the case for various 4k video standards, and with a reasonably high frame rate, for example 60 frames per second. The encoding method 600 can result in compression factors of greater than 10 hence allowing the approximately 13 Gigabits/s of data required by a typical 4k 60 fps video signal to be transmitted over a 1 Gigabit/s Ethernet connection.
The encoding method 600 starts at 602 for a current frame of video data and at 604 selects a current 16 pixel x 16 pixel tile, for example, of video data. This will generally include R, G and B values for each pixel of the tile. At 606 the RGB data for each pixel may be converted into a different colour space such as a luminosity based colour space. For example the R, G, B values may be converted into corresponding luminosity and first and second Chroma values, or Y, Cb, Cr values, as are generally known in the art, and are the digital equivalent of the analogue Y, U, V colour space. After colour space conversion at 606, processing proceeds in parallel for each of the three components of the converted colour space.
At 608, the colour space values may optionally be re-arranged in memory to make subsequent processing more efficient. For example a Morton curve or z-order curve may be used to rearrange the currently pixel position ordered data into nested tiles of 2 x 2 values. For example, if originally the first row of values corresponds to the first to 16th pixels, i.e. Po to P15, and the second row of values corresponds to the 17th to 32nd pixels,
i.e. Pi6 to P31, such that the first 2x 2 tile of pixels includes Ρο,Ρι, P16 and P17, then the zcurve re-ordering will re-order the start of the first line of pixel data from Po, Pi, P2, P3 into the sequence Po, Pi, Pi6, P17. Hence, the z-curve reordering at 608 is applied to the entire 16x16 pixel tile, and for each of the colours, so as to re-order the colour data from pixel position order into a linear order more suitable for the next spatial transformation step.
At 610 a spatial transformation is applied to the current tile, and for each colour component. In some embodiments, a wavelet transformation may be used at 610 and in particular a discrete wavelet transformation (DWT), various of which are generally known in the art. Generally speaking, filters are applied to each of the sets of colour data to transform them into low-frequency and high-frequency components in horizontal and vertical directions. This splits a 2-D image into four components; a DC component, being an average over the transformed values, and three AC values corresponding to vertical, horizontal and diagonal spatial features of the original data. The spatial transformation can iteratively be applied to the 16x16 values to produce a DC component value and AC component values corresponding to different levels of detail of the spatial features of the original image data.
For example, the spatial transformation 610 may be applied 4 times, as illustrated by process flow return line 612, so that the 16 x 16 values may be transformed into a single DC component and vertical, horizontal and diagonal AC components. An approximation of the 16 x 16 pixels can be arrived at from just the DC value and a more detailed approximation can be obtained from the DC and AC values. Hence, after a first application of the wavelet transformation at 610, the DC and three AC values represent the coarse spatial features of the original 16x16 pixel tile. A second application of the wavelet transformation generates three groups of four values for each of the horizontal, vertical and diagonal features at the next level of detail and which represent the moderate spatial features of the original pixel tile. A third application of the wavelet transformation generates three groups of 16 values for each of the horizontal, vertical and diagonal features at the next level of detail and which represent the fine spatial features of the original pixel tile. A fourth application of the wavelet transformation, generates three groups of 64 values for each of the horizontal, vertical and diagonal features at the next level of detail and which represent the finest spatial features of the original pixel tile. It will be appreciated that in other embodiments fewer or more iterations of the wavelet transformation may be used.
Hence, by repeatedly applying a spatial transformation at 610, the original video data can be broken down into batches of data each encoding different levels of spatial detail of the original tile of pixels. Typically the single DC value will have the largest value and the vertical, horizontal and diagonal AC components will have decreasing smaller values as the level of spatial detail increases. Indeed some of the AC components values may have the value of zero.
At step 614 the DC component and the AC components resulting from the spatial transformation may be quantised by dividing the DC and AC component values by a quantisation factor. The quantisation factor may differ for the DC component and the AC components and may also vary between the different types of AC components and also between the AC components corresponding to different levels of spatial detail. This is where the method may start to become lossy as some of the detail of the DC and AC components may be lost by the quantisation. In some embodiments a quantisation factor of 1 is used for the DC component so as to preserve its value accurately whereas the AC components may be divided by quantisation factors ranging from 2 to around 10. Greater quantisation factors increase the amount of compression, but may increase compression artefacts, and so there may be a consideration of the bandwidth of the data connection and resolution of the display or sink in selecting the quantisation factors to be used.
After quantisation various other compression steps may also optionally be used. For example at 616 a variable length encoding method may be applied to the quantised AC values. The DC value is typically quite large but there is only a single data item and so it may be sent in an unencoded form. The quantised AC coefficients may be sent as variable length codes in which frequency analysis is used to assign shorter codes (having fewer bits) to more common values.
At 618 a significance encoding method may optionally be used to help encode the presence of only zeros in portions of the data. In a four level iteration of the spatial transformation, there are effectively four layers in which each layer corresponds spatially to a set of 2 x 2 values in the next layer of spatial detail. Hence, if a layer includes AC coefficients all having the value zero, then this can be encoded by the higher layer being assigned a bit value of zero. Hence, a group of 21 bits can be used to encode groups of values which are zero and groups of values including non-zero bits and hence the actual values need transmitting.
At 620, all the encoded data and information needed by the decoder to decode the encoded data, is marshalled for all of the colour components and at each of the levels of detail, i.e. coarse spatial detail, moderate spatial detail, fine spatial detail and finest spatial detail. Then at 622, the encoded data for each level of detail is output to the data connection or network, for example as a number of network packets. Then at 624, the process repeats for a next 16x16 tile of the current frame and continues to loop until the current frame of video data has been encoded. Then at 626, the whole process loops again for each of the 16x16 tiles of a next frame of video data.
Optionally the method may encode only differences between a current frame and a previous frame of video data by using a feedback loop 628. This can reduce the amount of encoded data that needs sending as only differences between the current frame and a preceding frame may be encoded and sent. As illustrated in Figure 7, after quantisation of the DC and AC coefficients at 614, the same quantisation factors are used to multiply the quantised DC and AC coefficients at 630 and the reverse spatial transform is iteratively applied the to the un-quantised DC and AC coefficients at 632 to reverse the spatial transformation and return to the pixel colour values. A reverse z-ordering is then applied at 634 to return the colour components into pixel position order in memory and then at 636 the reverse colour transformation is applied to convert the YCC values back into RGB values. The R, G and B values are then subtracted 638 from the R, G and B values for the corresponding tile for a next frame so that the rest of method 600 is applied only to differences between a preceding frame and the current frame. Hence, pixels that do not change between frames will have values of zero and the colour differences between changing pixels may be small and therefore give rise to small values. These small values will compress better and hence consume less network bandwidth than sending the full pixel values.
The feedback loop 628 decodes the transmitted image at the transmitter so that the differences from the decoded image that the receiver already has can be sent. The decoded image at the transmitter will include any artefacts arising from any lossy parts of the lossy compression and/or decompression process, and so is not necessarily identical to the previous image captured at the transmitter.
Further, the feedback loop 628 may be used, where bandwidth permits, to allow a pixelperfect image to be displayed at the receiver, even though a lossy compression method is used. If the feedback loop 628 is applied once or more to the same image frame at the transmitter, then the transmitter can identify differences between the image frame at the receiver and the transmitter and encode and send those differences which can then be decoded at the receiver to re-create a pixel-perfect image at the receiver.
The pixel-perfect feature may be used to generate a perfect image at the receiver at times when there is spare bandwidth to do so, for example when the image is static or becomes static. For example, the transmitter is sending video from a microscope looking at medical slides, then when the slide is moving about, the full video frame rate may be used to provide an immediate response, and it is less important if the video quality degrades slightly. However, once that slide stops moving, then image quality may become more important and the user may want the image to be pixel-perfect so there is nothing to interfere with their assessment of the microscope image.
The general method of operation of a decoder will now be described with reference to Figure 8. Figure 8 shows a process flow chart illustrating a method 700 for decoding the encoded video data generated by the encoding method 600 and is generally speaking the reverse process.
At 702 a current frame of video data is identified and at 704 a current tile of video data for that frame is identified from the data sent from the encoder. At 706 the packets of encoded video data for the current tile are unpacked for each of the levels of detail that have been received by the decoder. In some cases this may be the coarse level of detail only, for example for thumbnail images. In other cases it may be the coarse and moderate or coarse, moderate and fine or coarse, moderate, fine and finest, for example if the sink has a resolution similar to or the same as the source of video data.
At 708, the significance encoding data may be used to identify data items at different levels within the hierarchy which include only zero values, and hence can be reconstructed automatically, and those which include any non-zero values and therefore need to be reconstructed from the transmitted encoded data. At 710 the variable length encoding process can be reversed to turn the shorter length codes back into the corresponding bit sequences for the values. Then the values can be un-quantised at 712 by multiplication by the corresponding quantisation factors which may be transmitted together with the encoded data or may be looked up locally. This generates the recreated DC and AC coefficient values to which the reverse spatial transformation is applied 714, and which may be iteratively, as indicated by process flow line 716, and the same number of times as the transformation was originally applied to generate the corresponding level of detail data. Hence, for four levels of detail the reverse transformation is iterated three times in order to recreate the 16x16 colour values for the current tile. A reverse zordering is then applied at 718 to return the colour components into pixel position order in memory at the decoder. Then at 720, the reverse colour space transformation is carried out to convert the luminosity based colour space data back into corresponding R, G, B colour space values. Hence, the R, G, B values for each pixel of the current tile of 16 x 16 pixels has been decoded.
At 722, the method 700 determines whether difference data was encoded and sent by the encoder. This may be done in a variety of ways. For example, the packets of encoded video data may include a flag, for example in a header, which is set or not to indicate whether the accompanying encoded data of the packet is difference colour data or absolute colour data. If it is determined at 722 that the data currently being decoded is no difference data, then at 724, the absolute R, G and B values for the current tile of pixels is written for the current tile of the current frame. If it is determined at 722 that the data currently being decoded is difference data, then at 726, the difference R, G and B values for the current tile of pixels are summed with the R, G and B values for the current tile of the previous frame.
At 728, a next tile of the current frame is selected and the above process is repeated for each tile of the current frame. Once all the tiles of current frame have been decoded, then at 730 the frame of video data may be output from the decoder to the sink of video data. Then at 732, the method may repeat for a next frame of video data.
Hence, the received encoded video data is decoded at a level of spatial detail corresponding to the level of spatial detail of the encoded data received by the decoder. The finer the level of detail in the received encoded data the greater the amount of data that is decoded, but overall the decoding method 700 operates in generally the same way.
The encoding method 600 may compress the original high resolution video data by a compression factor of at least three and with a very high quality. Each iteration of the spatial transformation reduces the effective number of pixels by a factor of four. The amount and level of further compression produced by the other compression steps may be varied depending on the bandwidth available and/or the level of video quality required at the sink. For applications in which lower quality video is acceptable, then high compression factors may be achieved.
In this specification, example embodiments have been presented in terms of a selected set of details. However, a person of ordinary skill in the art would understand that many other example embodiments may be practiced which include a different selected set of these details. It is intended that the following claims cover all possible example embodiments.
Any instructions and/or flowchart steps can be executed in any order, unless a specific order is explicitly stated. Also, those skilled in the art will recognize that while one example set of instructions/method has been discussed, the material in this specification can be combined in a variety of ways to yield other examples as well, and are to be understood within a context provided by this detailed description.
While the disclosure is amenable to various modifications and alternative forms, specifics thereof have been shown by way of example in the drawings and described in detail. It should be understood, however, that other embodiments, beyond the particular embodiments described, are possible as well. All modifications, equivalents, and alternative embodiments falling within the scope of the appended claims are covered as well.
Claims (27)
1. Apparatus for digital video transmission, comprising:
a transmitting device including a video encoder, wherein the video encoder is configured to encode input digital video data into a plurality of batches of encoded digital video data, wherein each batch of encoded video data corresponds to a different level of spatial detail of the input digital video data; and a receiving device including a video decoder, wherein the transmitting device is configured to transmit one or more of the plurality of batches of encoded digital video data, the receiving device is configured to receive one or more of the plurality of batches of encoded digital video data and the video decoder is configured to decode one or more of the batches of encoded digital video data received at the receiver into output digital video data.
2. Apparatus as claimed in claim 1, wherein the plurality of batches of encoded video data form a sequence, and a subsequent batch of encoded video data in the sequence corresponds to a finer level of detail than a preceding batch of encoded video data in the sequence.
3. Apparatus as claimed in claim 1 or 2, wherein the video encoder is configured to encode the input digital video data into at least three batches of encoded video data, wherein a first batch corresponds to coarse spatial detail of the input digital video data, a second batch corresponds to moderate spatial detail of the input digital video data and a third batch corresponds to fine spatial detail of the input digital video data.
4. Apparatus as claimed in claim 3, wherein the video encoder is further configured to encode the input digital video data into at least four batches of encoded video data, and wherein a fourth batch corresponds to finest spatial detail of the input digital video data.
5. Apparatus as claimed in any of claims 1 to 4, wherein the decoder is configured to decode a subset of the plurality of batches of encoded video.
6. Apparatus as claimed in claim 5, wherein the subset of the plurality of batches of encoded video comprises one of:
a first batch corresponding to coarse spatial detail of the input digital video data;
a first batch corresponding to coarse spatial detail of the input digital video data and a second batch corresponding to moderate spatial detail of the input digital video data; and a first batch corresponding to coarse spatial detail of the input digital video data, a second batch corresponding to moderate spatial detail of the input digital video data a third batch corresponding to fine spatial detail of the input digital video data.
7. Apparatus as claimed in any of claims 1 to 4, wherein the decoder is configured to decode all of the plurality of batches of encoded video.
8. Apparatus as claimed in any preceding claim, wherein the encoder is configured to carry out one or more of:
colour space conversion of pixel data from RGB to YCC;
z-curve re-ordering of pixel colour data in memory;
wavelet transformation of pixel colour data; quantisation of DC and/or AC transformation coefficients.
9. Apparatus as claimed in any preceding claim, wherein the encoder is further configured to carry out one or more compression methods.
10. Apparatus as claimed in any preceding claim, wherein the encoder is configured to encode differences between a current frame of digital video data and a previous frame of digital video data and/or wherein the decoder is configured to decode differences between a current frame of digital video data and a previous frame of digital video data.
11. Apparatus as claimed in any preceding claim, wherein the decoder is configured to increase the resolution of the output digital video data when the input digital video data is static.
12. Apparatus as claimed in any preceding claim, wherein the transmitting device includes a plurality of video encoders, each configured to encode respective input digital video data into a respective plurality of batches of encoded digital video data, wherein each batch of encoded video data corresponds to a different level of spatial detail of the respective input digital video data.
13. Apparatus as claimed in claim 12, wherein the receiving device includes a plurality of video decoders, wherein the transmitting device is configured to transmit one or more of the batches of each of the plurality of batches of encoded digital video data, the receiving device being is configured to receive one or more of the batches of the plurality of batches of encoded digital video data and each video decoder being configured to decode one or more of the batches of the plurality of batches of encoded digital video data received at the receiver into respective output digital video data.
14. Apparatus as claimed in any preceding claim, and further comprising a plurality of transmitting devices, each including one or more video encoders.
15. Apparatus as claimed in any preceding claim, and further comprising a plurality of receiving devices, each including one or more video decoders.
16. Apparatus as claimed in any preceding claim, wherein the input digital video data corresponds to a resolution of at least 7 megapixels and/or the output digital video data corresponds to a resolution of at least 1 megapixels.
17. Apparatus as claimed in any preceding claim, wherein the transmitting device and/or receiving device are configured to transmit the one or more of the plurality of batches of encoded digital video data to the receiving device at a rate of up to 1 Gigabit per second.
18. A KVM extender including apparatus as claimed in any of claims 1 to 17.
19. A video transmission system comprising:
apparatus for digital video transmission as claimed in any preceding claim;
a source of digital video data arranged to supply the input digital video data to the transmitting device;
a sink of digital video data arranged to receive the output digital video data from the receiving device; and a data connection arranged between the transmitting device and the receiving device.
20. The video transmission system as claimed in claim 19, wherein the data connection has a bandwidth of up to 1 Gigabit per second.
21. The video transmission system as claimed in claim 20, wherein the data connection includes an Ethernet connection.
22. The video transmission system as claimed in claim 20 or 21, wherein the data connection includes a network.
23. The video transmission system as claimed in claim 22, wherein the network is configured to support multicast groups, and wherein each multicast group is configured to multicast a different one of the plurality of batches of encoded video data.
24. The video transmission system as claimed in claim 23, wherein the network is configured to support a plurality of collections of multicast groups, and wherein each collection of multicast groups is configured to multicast batches of encoded video data from a respective one of a plurality of transmitting devices.
25. The video transmission system as claimed in claim 23 or 24, wherein the, or each, receiver and/or decoder is configured to subscribe to one or more of the multicast groups.
26. The video transmission system as claimed in claim 25, wherein the, or each, receiver and/or decoder is configured to subscribe to at least one multicast group of a plurality of collections of multicast groups.
27. A method for transmitting digital video data from a source of digital video data to a sink of digital video data, comprising:
encoding input digital video data into a plurality of batches of encoded digital video data, wherein each batch of encoded video data corresponds to a different level of 5 spatial detail of the input digital video data;
transmitting one or more of the plurality of batches of encoded digital video data over a data connection; and decoding one or more of the batches of encoded digital video data received over the data connection into output digital video data.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1706550.9A GB2564081B (en) | 2017-04-25 | 2017-04-25 | Video transmission |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1706550.9A GB2564081B (en) | 2017-04-25 | 2017-04-25 | Video transmission |
Publications (3)
Publication Number | Publication Date |
---|---|
GB201706550D0 GB201706550D0 (en) | 2017-06-07 |
GB2564081A true GB2564081A (en) | 2019-01-09 |
GB2564081B GB2564081B (en) | 2022-11-23 |
Family
ID=58795616
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
GB1706550.9A Active GB2564081B (en) | 2017-04-25 | 2017-04-25 | Video transmission |
Country Status (1)
Country | Link |
---|---|
GB (1) | GB2564081B (en) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140211861A1 (en) * | 2013-01-25 | 2014-07-31 | Electronics And Telecommunications Research Institute | Method and system for providing high definition (hd) broadcasting service and ultra high definition (uhd) broadcasting service |
WO2017007659A1 (en) * | 2015-07-08 | 2017-01-12 | Google Inc. | Single-stream transmission method for multi-user video conferencing |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
SG77650A1 (en) * | 1998-09-07 | 2001-01-16 | Victor Company Of Japan | A scalable delivery scheme of compressed video |
US20030172114A1 (en) * | 2001-10-24 | 2003-09-11 | Leung Nikolai K. N. | Method and apparatus for data packet transport in a wireless communication system using an internet protocol |
-
2017
- 2017-04-25 GB GB1706550.9A patent/GB2564081B/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140211861A1 (en) * | 2013-01-25 | 2014-07-31 | Electronics And Telecommunications Research Institute | Method and system for providing high definition (hd) broadcasting service and ultra high definition (uhd) broadcasting service |
WO2017007659A1 (en) * | 2015-07-08 | 2017-01-12 | Google Inc. | Single-stream transmission method for multi-user video conferencing |
Also Published As
Publication number | Publication date |
---|---|
GB2564081B (en) | 2022-11-23 |
GB201706550D0 (en) | 2017-06-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8559525B2 (en) | Apparatus and method for uncompressed, wireless transmission of video | |
US7860180B2 (en) | OFDM modem for transmission of continuous complex numbers | |
US7991052B2 (en) | Variable general purpose compression for video images (ZLN) | |
US9549141B2 (en) | Video signal transmission | |
US20060117371A1 (en) | Method for effectively implementing a multi-room television system | |
KR100374605B1 (en) | A apparatus and method for transmitting optical signal of graphic signal | |
US8537898B2 (en) | Compression with doppler enhancement | |
US12047112B2 (en) | Decoder circuits for the transmission of video media using spread spectrum direct sequence modulation | |
US20050060421A1 (en) | System and method for providing immersive visualization at low bandwidth rates | |
Jiang et al. | Scalable video coding using compressive sensing | |
CN113365075A (en) | Wired sending and receiving method and device of ultra-high-definition video applying light compression algorithm | |
Naman et al. | Decoding high-throughput jpeg2000 (htj2k) on ag | |
GB2564081A (en) | Video transmission | |
Inatsuki et al. | An FPGA implementation of low-latency video transmission system using lossless and near-lossless line-based compression | |
CN106464963B (en) | Image transceiver and image display | |
JP4922307B2 (en) | High dynamic range image transmission system, encoding unit, decoding unit and method therefor | |
AU3656799A (en) | Method and apparatus of supporting a video protocol in a network environment | |
JP2009513064A (en) | Apparatus and method for wireless transmission of uncompressed video | |
JP2007147928A (en) | Image switching and distribution system | |
JP5318992B2 (en) | Video transmission program | |
US20230327689A1 (en) | Distributing staged sampled signals and conveying over electromagnetic pathways | |
KR102465206B1 (en) | Image processing device | |
AU2017204642A1 (en) | Method, apparatus and system for encoding and decoding video data | |
TW202226821A (en) | Encoder and decoder circuits for the transmission of video media using spread spectrum direct sequence modulation | |
EP4406225A1 (en) | Low complexity enhancement video coding with temporal scalability |