Video compression system and method

By extending DVC compression technology to the YCbCr color space and utilizing incremental encoding commands and copy commands, the problem of minimal loss and low latency in high-resolution video transmission is solved, and efficient video compression and low-latency transmission are achieved, which is suitable for video display in RGB and YCbCr color spaces.

CN117859327BActive Publication Date: 2025-09-19VERTIV CORP
View PDF 21 Cites 0 Cited by

Patent Information

Application Number
CN202280049158.0
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2021-08-03
Filing Date
2022-08-03
Publication Date
2025-09-19
Estimated Expiration
2042-08-03

AI Technical Summary

Technical Problem

Existing video compression technologies have difficulty achieving minimal loss and low latency in high-resolution video transmission, especially in meeting image quality and low latency requirements in different application scenarios.

Method used

Adopt DVC compression technology, expand to YCbCr color space, use incremental encoding command and copy command to send and receive compressed video stream through controller, combine 23-bit and 29-bit color depth DVC compression, support RGB and YCbCr color space improved performance.

Benefits of technology

It improves the efficiency and performance of video compression, meets the transmission requirements of high-resolution video, reduces the amount of transmitted data, reduces latency, and supports video display in different color spaces.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN117859327B_ABST
    Figure CN117859327B_ABST
Patent Text Reader

Abstract

A video compression method may include providing and transmitting encoder commands for a sequence of one or more pixels in a video frame in a YCbCr color space from a set of layered encoder commands. A specific encoder command for a specific sequence may include one of a copy command, an increment command, or a generate pixel command. The copy command may indicate that the specific sequence is the same as one of a previous pixel in the video frame, a pixel located above the first pixel of the specific sequence in the video frame, or a pixel at the position of the first pixel in the previous video frame. The increment command may indicate that the specific sequence includes a single pixel having a color value equal to the previous pixel in the video frame combined with a signed color increment. The generate pixel command may provide color values ​​for the specific sequence.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS

[0002] This application claims priority to U.S. Provisional Patent Application Serial No. 63 / 228,823, filed on August 3, 2021, and U.S. Non-Provisional Application Serial No. 17 / 880,060, filed on August 3, 2022, the entire contents of which are incorporated herein by reference. Technical Field

[0003] The present disclosure relates generally to video compression and, more particularly, to video compression using DVC encoding techniques. Background Art

[0004] Video compression systems can compress video streams (e.g., a series of video frames) and are particularly suitable for, but not limited to, transmitting video streams over communication channels. Various video compression techniques have been developed, each utilizing different strategies and adopting different trade-offs, and different applications may have different requirements. For example, many interactive applications may prioritize image quality and low-latency (e.g., real-time) transmission, and may accept a certain amount of discontinuity in the video stream to meet these requirements. However, existing compression technologies are insufficient to meet the growing demand for high-resolution video with minimal loss and low latency. Therefore, there is a need to develop systems and methods to address the above-mentioned deficiencies. Summary of the Invention

[0005] According to one or more illustrative embodiments, a video compression system is disclosed. In one illustrative embodiment, the system includes a controller for transmitting or receiving a compressed video stream, or both, based on encoder commands for a sequence of one or more pixels in a video frame from a set of layered encoder commands, wherein the video frame is provided in a YCbCr color space. In another illustrative embodiment, the specific encoder command for a specific sequence of one or more pixels includes one of the following: a copy command indicating that the specific sequence of one or more pixels is identical to a previous pixel in the video frame, a pixel located above a first pixel in the specific sequence in the video frame, or a pixel in a previous video frame at the location of the first pixel in the specific sequence. In another illustrative embodiment, the specific encoder command for the specific sequence of one or more pixels includes a delta command indicating that the specific sequence includes a single pixel having a color value equal to a previous pixel in the video frame combined with a signed color delta. In another illustrative embodiment, the specific encoder command for the specific sequence of one or more pixels includes a generate pixel command providing a color value for the specific sequence.

[0006] According to one or more illustrative embodiments, a video compression method is disclosed. In one illustrative embodiment, the method includes providing an encoder command for a sequence of one or more pixels in a video frame from a set of layered encoder commands, wherein the video frame is provided in a YCbCr color space. In another illustrative embodiment, the specific encoder command for a specific sequence of one or more pixels includes one of the following: a copy command indicating that the specific sequence of one or more pixels is identical to a previous pixel in the video frame, a pixel located above a first pixel in the specific sequence in the video frame, or a pixel in a previous video frame at the location of the first pixel in the specific sequence. In another illustrative embodiment, the specific encoder command for the specific sequence of one or more pixels includes an increment command indicating that the specific sequence includes a single pixel having a color value equal to a previous pixel in the video frame combined with a signed color increment. In another illustrative embodiment, the specific encoder command for the specific sequence of one or more pixels includes a generate pixel command providing a color value for the specific sequence. In another illustrative embodiment, the method includes transmitting the encoder command for each of the sequences of one or more pixels in the video frame over a communication channel upon generation.

[0007] It should be understood that the foregoing general description and the following detailed description are exemplary and explanatory only and are not necessarily restrictive of the invention as claimed. The accompanying drawings, which are incorporated in and constitute a part of the specification, illustrate embodiments of the invention and, together with the general description, serve to explain the principles of the invention. BRIEF DESCRIPTION OF THE DRAWINGS

[0008] Those skilled in the art may better appreciate the numerous advantages of the present disclosure by referring to the accompanying drawings.

[0009] Figure 1 is a conceptual diagram of a leading (or only) byte of an encoder command having at least one header bit and payload bits according to one or more embodiments of the present disclosure.

[0010] Figure 2 is a table including commands for a first command set DVC23X listed in hierarchical priority order according to one or more embodiments of the present disclosure.

[0011] Figure 3 is a table including commands for the second command set DVC23Y2 listed in hierarchical priority order according to one or more embodiments of the present disclosure.

[0012] Figure 4 is a table including commands for the third command set DVC23Y listed in hierarchical priority order according to one or more embodiments of the present disclosure.

[0013] Figure 5 is a table including commands for a fourth command set DVC29Y listed in hierarchical priority order according to one or more embodiments of the present disclosure.

[0014] Figure 6 Including one or more embodiments of the present disclosure for Figure 2-Figure 5 A summary of the encoder commands for the four DVC command sets.

[0015] Figure 7 is a block diagram of a system for streaming compressed video according to one or more embodiments of the present disclosure. DETAILED DESCRIPTION

[0016] Reference will now be made in detail to the disclosed subject matter, which is illustrated in the accompanying drawings. The present disclosure has been particularly shown and described with respect to certain embodiments and specific features thereof. The embodiments set forth herein are to be considered illustrative and not restrictive. It should be apparent to those skilled in the art that various changes and modifications may be made in form and detail without departing from the spirit and scope of the present disclosure.

[0017] Embodiments of the present disclosure relate to extensions and / or modifications of the DVC video compression technology to support improved performance in the YCbCr color space as well as the RGB color space.

[0018] DVC compression is generally described in U.S. Patent Nos. 7,321,623, 7,272,180, 7,738,553, 7,542,509, 7,515,632, 7,515,633, 8,385,429, 7,809,058, 7,720,146, 8,457,195, 9,008,191, 9,743,095, 7,006,700, 7,336,839, 7,457,461, and 8,805,096, all of which are incorporated herein by reference in their entirety. These U.S. Patents generally describe DVC compression as a framework for lossless video compression suitable for transmission over any type of network link. In DVC compression, the pixels of a video frame to be compressed may be considered sequentially in a selected pattern (e.g., but not limited to, starting from the upper left corner of the frame to the lower right corner of the frame). When the pixels of a frame are analyzed according to a sequence, encoding commands are generated that describe the content of one or more pixels and sent over the link for decoding. One aspect of DVC compression is that both sides of the link have some reference information so that the encoding commands can provide information about one or more pixels based on the reference information. For example, the reference information associated with the current pixel in the sequence may include, but is not limited to: the previous pixel in the sequence, the adjacent pixel in the adjacent row (for example, the pixel above the current pixel in the frame), or the pixel in the same position in the previous frame.

[0019] As an example, the current pixel in the sequence can be defined as having the same properties as the same pixel in the previous frame (COPY_OLD(CO)), the same properties as the previous pixel (COPY_LEFT(CL)), or the same properties as the pixel above (COPY_OVER(CA)). In this way, an encoding command (e.g., COPY_OLD(CO), COPY_LEFT(CL), COPY_ABOVE(CA), etc.) can be sent over the link based on one of these references to describe the current pixel in the sequence, where the encoding command may require fewer bytes of data to be sent over the link than a complete description of the pixel (e.g., a color value associated with a selected color space). In the case where the current pixel is not associated with any reference, an encoding command (MAKE_PIXEL(MP)) can be sent that includes the full color value of the current pixel. As a result, the sequence of encoding commands can represent a lossless version of the video frame that can be easily decoded at the receiving end of the link. Furthermore, as long as at least one pixel is represented by an encoding command other than a MAKE_PIXEL(MP) command, the sequence of encoding commands will be a compressed video stream.

[0020] DVC compression technology can also include various aspects that can further improve performance by improving compression ratio, reducing processing power, or for decoding, etc. For example, an encoding command can include a byte sequence (e.g., a command) that describes multiple identical sequential pixels in a frame. In this way, a single encoding command (e.g., COPY_OLD (CO), COPY_LEFT (CL), COPY_ABOVE (CA), MAKE_PIXEL (MP), etc.) can describe multiple sequential pixels, which can significantly improve the compression ratio. As another example, the set of encoding commands in a particular implementation of DVC compression can be arranged in a hierarchical priority order. Thus, if two or more encoding commands are applicable to a current pixel or a series of pixels including the current pixel, the encoding command with the highest priority can be selected.

[0021] The hierarchy may generally be determined by any chosen constraints or performance goals. By way of illustration, the above encoding commands may, but need not, be arranged in the following order of priority: COPY_OLD (CO), COPY_LEFT (CL), COPY_OVER (CA), MAKE_PIXEL (MP). It is contemplated herein that the COPY_OLD (CO) command may require the least burden on the receiving end of the link since it simply skips any operation on the current pixel and leaves the pixel from the previous frame. COPY_LEFT (CL) may be the next priority since it only requires copying adjacent pixels. It is further contemplated herein that MAKE_PIXEL (MP) is typically the lowest priority since it requires sending full color values ​​and is therefore uncompressed. However, it will be understood that the above examples are provided for illustrative purposes only, and that any particular implementation of DVC compression may generally adopt any suitable hierarchical priority order for composing encoding commands.

[0022] The DVC compression framework may further include additional commands beyond those previously described herein. For example, a current pixel may be defined based on a modification of a reference pixel. Such encoding commands are referred to herein as delta encoding commands. Delta encoding commands are generally described in U.S. Patents 7,782,961 and 8,660,194, which are incorporated herein by reference in their entirety. As an illustration, a uniform delta encoding command may include a signed color delta associated with the absolute difference between the color values ​​of the current pixel and the reference pixel. As another illustration, a non-uniform delta encoding command may include a signed color delta for each color value. It is contemplated herein that delta encoding commands may not be as efficient as the previously described copy commands, as including color deltas may typically require additional bytes to transmit. However, delta encoding commands may be more efficient than the MAKE_PIXEL (MP) command, as color deltas can be represented using fewer bits than the full color value and, therefore, can be configured to require fewer bytes. As a result, implementations of DVC compression utilizing delta commands may generally be more efficient than implementations without delta commands.

[0023] Embodiments of the present disclosure relate to extending DVC compression technology with incremental encoding commands to the YCbCr color space. It is contemplated herein that many video sources are natively encoded in the YCbCr color space with minimal perceptual loss due to the inherent compression of the YCbCr color space. Therefore, DVC compression in the YCbCr color space can provide improved performance relative to RGB compression schemes. However, it is recognized herein that not all video viewers are capable of or well-suited to presenting video in the YCbCr color space. In some embodiments, the DVC video compression system includes a dedicated video viewer on the receiving end of a communication channel to display the decoded video.

[0024] Some embodiments relate to DVC compression in a YCbCr color space with a 23-bit color depth. Some embodiments relate to DVC compression in a YCbCr color space with a 29-bit color depth. Furthermore, some embodiments relate to DVC compression in combination with chroma subsampling (e.g., a 4:2:2 scheme), where pairs of pixels share chroma values ​​(e.g., CbCr values) but have different luma values ​​(e.g., Y values), and some embodiments relate to DVC compression that allows for odd-numbered pixels (e.g., pixels do not have to be provided in pairs with shared chroma values). Additional embodiments of the present disclosure relate to extensions of the DVC compression technique with delta-encoded commands in an RGB color space with a 23-bit color depth.

[0025] Now refer to Figures 1-6 , systems and methods for DCV compression are described in more detail according to one or more embodiments of the present disclosure.

[0026] An encoder command may typically comprise one or more bytes, each byte comprising 8 bits, wherein a selected first number of bits form a header for identifying the encoder command, and the remainder of the bits operate as payload bits, which may carry associated information associated with the identified command. In the event that an encoder command comprises two or more bytes, an additional byte may comprise all of the payload bits. Since each encoder command may be associated with a set byte length, additional header bits may not be required.

[0027] Figure 1 is a conceptual view of a leading (or only) byte of an encoder command having at least one header bit and payload bit according to one or more embodiments of the present disclosure. Figure 1 In

[0045] , a byte comprises 8 bits (7:0). The leading byte of an encoder command may generally include any number of header bits to identify the encoder command.

[0028] In some embodiments, as Figure 1 As shown in FIG, the encoder command may include four header bits (bits 7:4), depicted by "H", providing 16 (2 4 ) possible encoder commands. In this configuration, the leading byte may provide 4 payload bits depicted by "P".

[0029] In some embodiments, different encoder commands have different numbers of header bits. This is particularly useful for commands that require or benefit from additional payload bits (such as, but not limited to, the MAKE_PIXEL (MP) command or its variants). Furthermore, a convention can be established to determine the number of header bits in a particular command so that streaming devices on both the transmitting and communicating ends can correctly encode and decode the command. In some embodiments, a command can have one of a set number of possible header bits, where at least one bit is used, at least in part, to convey multiple header bits. For example, a command set can include commands with a single header bit and multiple commands with four header bits. As an illustration, a value of 1 in the first bit (e.g., bit 7) of the leading (or only) byte can indicate a MAKE_PIXEL (MP) command, leaving the remaining 7 bits available for payload bits. In this case, a value of 0 in the first bit can indicate any other type of command, where the subsequent 3 bits (e.g., bits 6:4) are used to identify the specific command. It should be understood that the above examples are provided for illustrative purposes only, and that various schemes in which different encoder commands have different numbers of header bits are within the spirit and scope of the present disclosure.

[0030] Now refer to Figure 2-Figure 5 , four DVC command sets are described in more detail according to one or more embodiments of the present disclosure. Figure 2-Figure 5Each includes columns that provide the name of the command set (Comp Type), the mnemonic for each encoder command (Mnemonic), the label for each encoder command (Command), the number of bytes associated with each encoder command, and a list of corresponding bit values ​​or characteristics. Figure 2-Figure 5 In the R, header bits are depicted as "0" or "1", which indicates identification information of a specific command, and payload bits are depicted as an alphanumeric sequence, where the subscript X is a bit indicator. X , G X 、B X 、Y X Cr X , Cb X Describes the color values ​​of R, G, B, Y, Cr, and Cb respectively. X Used to describe the payload bits for a copy command (e.g., indicating the number of pixels sharing the same property). The payload bits for an increment command are depicted with the identifier "D" and include variations of the above indicators. D X Used to delineate the payload bits for a uniform delta command (eg, indicating the uniform delta value of the current pixel relative to the reference pixel defined by the command), DR X , DG X 、DB X 、DY X 、DCr X 、DCb X Describes the incremental color values ​​for R, G, B, Y, Cr, and Cb, respectively. In some cases, byte identifiers are included. For example, the Y value for a different byte can be described in the payload as Y X 、Y0 X 、Y1 X wait.

[0031] Figure 2 1 is a table including commands of the first command set DVC23X listed in hierarchical priority order according to one or more embodiments of the present disclosure. The DVC23X command set includes 9 encoder commands, is based on the RGB color space, and provides 23-bit color depth.

[0032] The DVC23X command set includes a 3-byte version of the MAKE_PIXEL command (MP23) identified by a value of 1 in the leading bit (7) of the leading byte (byte 0). In this manner, the MP23 command is characterized by a single header bit, with the remaining bits in the leading byte (byte 0) and all bits in the remaining bytes (bytes 2 and 3) acting as payload bits. In some embodiments, such as Figure 2 As shown in the figure, the payload bits provide 8 bits to define the red value (R X ), 8 bits are used to define the green value (GX ), 7 bits are used to define the blue value (B X ). However, it should be understood that the payload bits may be divided in other ways within the spirit and scope of the present disclosure.

[0033] The DVC23X command set also includes 1-byte versions of the COPY_OLD (CO), COPY_LEFT (CL), and COPY_ABOVE (CA) commands. Each of these includes four header bits (7:4) and four payload bits (3:0) to define multiple sequences of pixels that share the same properties.

[0034] The DVC23X command set includes 1-byte versions of the Delta Uniform Copy Left (DUCL) and Delta Uniform Copy Above (DUCA) commands. Each of these includes four header bits (7:4) and four payload bits (3:0) that define a signed color delta to be uniformly applied to a reference pixel (e.g., the pixel to the left or the pixel above, respectively).

[0035] The DVC23X command set also includes 2-byte versions of the Delta Copy Old (DCO), Delta Copy Left (DCL), and Delta Copy Above (DCA) commands. Each of these includes four header bits in the leading byte (byte 0), with the remainder of the leading byte and the bits in the remaining bytes (bytes 2 and 3) serving as payload bits. In particular, the payload bits can provide 4 bits, each of which defines a signed color delta to be applied to the red, green, and blue values ​​of the reference pixel.

[0036] Figure 3 1 is a table including commands for the second command set DVC23Y2 listed in hierarchical priority order according to one or more embodiments of the present disclosure. The DVC23Y2 command set includes 9 encoder commands and is based on the YCbCr color space and provides 23-bit color depth. In addition, the DVC23Y2 command set is designed for chroma subsampling, where pixels are paired and the pixels in each pair share chroma values ​​(e.g., CbCr values) but have different luma values ​​(e.g., Y values). In this way, all encoder commands in DVC23Y2 apply to a pair of pixels.

[0037] The DVC23Y2 command set includes a 4-byte version of the MAKE_PIXEL command (MP23ev) identified by a value of 1 in the leading bit (7) of the leading byte (byte 0). In this manner, the MP23ev command is characterized by a single header bit, with the remaining bits in the leading byte (byte 0) and all bits in the remaining bytes (byte 1-byte 3) serving as payload bits. In some embodiments, such as Figure 3 As shown in , the payload bits provide 8 bits to define the Y color value of the first pixel in the pair, 8 bits to define the Cr color value shared by the two pixels in the pair, 7 bits to define the Cb color value shared by the two pixels in the pair, and 8 bits to define the Y color value of the second pixel in the pair. However, it should be understood that the payload bits can be divided in other ways within the spirit and scope of the present disclosure.

[0038] The DVC23Y2 command set also includes 1-byte versions of the COPY_OLD (CO), COPY_LEFT (CL), and COPY_ABOVE (CA) commands. Each of these includes four header bits (7:4) and four payload bits (3:0) to define multiple sequences of pixels that share the same properties.

[0039] The DVC23Y2 command set also includes 2-byte versions of the Left Incremental Uniform Copy (DUCL) and Upper Incremental Uniform Copy (DUCA) commands. Each of these includes four header bits (7:4) in the leading byte (byte 0), with four payload bits (3:0) in the leading byte and all bits in the second byte as payload bits. In particular, the four payload bits in the leading byte can define a signed color increment to be applied uniformly to a reference pixel (e.g., the left pixel or the upper pixel, respectively) to provide the color value of the first pixel in the pixel pair. In addition, the 8 bits in the second byte (byte 1) can each define the Y color value of the second pixel in the pixel pair.

[0040] The DVC23Y2 command set also includes 3-byte versions of the old incremental copy (DCO), incremental copy left (DCL), and incremental copy above (DCA) commands. Each of these includes four header bits in the leading byte (byte 0), with the remainder of the bits in the leading byte and the remaining bytes (bytes 1 and 2) serving as payload bits. In particular, the payload bits may provide 4 bits, each for defining a signed color increment to be applied to the Y, Cr, and Cb color values ​​of the reference pixel to provide the color value of the first pixel in the pair, and the payload bits may provide 8 bits for defining the Y color value of the second pixel in the pair (Y1, 2, and 3). X ).

[0041] Figure 4This table includes commands from the third command set DVC23Y listed in hierarchical priority order according to one or more embodiments of the present disclosure. The DVC23Y command set includes 10 encoder commands and is based on the YCbCr color space and provides 23-bit color depth. In addition, most commands in the DVC23Y command set are designed to address each pixel individually, but still assume the presence of chroma subsampling.

[0042] The DVC23Y command set includes two variants of the MAKE_PIXEL command. The first 4-byte MAKE_PIXEL command (MP23ev) is identified by a value of 1 in the leading bit (7) of the leading byte (byte 0) and is equivalent to the MP23ev command in the DVC23Y2 command set above. In this manner, the MP23ev command directly sets the color value for both pixels in a pair. The second 1-byte MAKE_PIXEL command (MP23od) is also identified by a value of 1 in the leading bit (7) and includes 7 payload bits (6:0) to define the Y color value for the second pixel. For example, the MP23ev and MP23od commands can be distinguished based on the position of the particular pixel being referenced, where MP23ev can be used for even-numbered pixels and MP23od can be used for odd-numbered pixels. However, it should be understood that the payload bits can be divided in other ways within the spirit and scope of the present disclosure.

[0043] The DVC23Y command set also includes 1-byte versions of the COPY_OLD (CO), COPY_LEFT (CL), and COPY_ABOVE (CA) commands. Each of these includes four header bits (7:4) and four payload bits (3:0) to define multiple sequences of pixels that share the same properties.

[0044] The DVC23Y command set also includes 1-byte versions of the Left Incremental Uniform Copy (DUCL) and Upper Incremental Uniform Copy (DUCA) commands. Each of these includes four header bits (7:4) and four payload bits (3:0) for defining the signed color increment to be applied uniformly to the reference pixel (e.g., the left pixel or the upper pixel, respectively). In this way, the incremental uniform commands in DVC23Y describe a single pixel. Subsequent pixels can then be described by separate commands. In addition, the incremental uniform commands can be implemented as position commands. For example, when describing an even number of pixels, a signed color increment can be applied to all three color components, while only when describing an odd number of pixels can a signed color increment be applied to the Y component.

[0045] The DVC23Y command set also includes 2-byte versions of the old incremental copy (DCO), left incremental copy (DCL), and upper incremental copy (DCA) commands. Each of these includes four header bits in the leading byte (byte 0), with the remainder of the bits in the leading byte and the remainder byte (byte 1) serving as payload bits. In particular, the payload bits can provide 4 bits, each of which defines a signed color increment for the Y, Cr, and Cb color values ​​to be applied to the reference pixel. These incremental copy commands can be used on even or odd pixels, but DVC23Y can be implemented so that the incremental uniform command can have a higher priority for odd pixels.

[0046] Figure 5 1-Byte 4 is a table of commands of a fourth command set DVC29Y listed in hierarchical priority order according to one or more embodiments of the present disclosure. DVC29Y is substantially similar to the DVC23Y command set, but is modified to support 29-bit color depth. In particular, the MP23ev and MP23od commands of the DVC23Y command set are replaced by the MP30ev and MP30od commands. The MP30ev command is a 5-byte command identified by a 1 in the leading bit (7) of the leading byte (byte 0), wherein the remaining 7 bits in the leading byte and all bits in the following four bytes (byte 1-byte 4) are payload bits. For example, the payload bits may include 10 bits for defining the Y color value of the first pixel in the pair, 10 bits for defining the Cr color value shared by the two pixels in the pair, 9 bits for defining the Cb color value shared by the two pixels in the pair, and 10 bits for defining the Y color value of the second pixel in the pair, wherein the Cr and Cb color values ​​are retained from the previous pair. The MP30od command is a 2-byte command identified by the value 10 in the leading two bits (7:6) of the leading byte (byte 0), wherein the remaining 6 bits in the leading byte and all bits in the subsequent byte (byte 1) are payload bits. However, since only 10 bits are required to provide the desired sampling depth, four of the payload bits are identified as empty ("n") and are not used for data. It should be noted that the specific placement of the empty bits is merely illustrative and not limiting.

[0047] Figure 6 Including one or more embodiments of the present disclosure for Figure 2-Figure 5 A summary of the encoder commands for the four DVC command sets.

[0048] Now refer to Figure 7 , Figure 7 is a block diagram of a system 700 for streaming compressed video according to one or more embodiments of the present disclosure. In some embodiments, the system 700 includes two or more streaming devices 702 adapted to transmit or receive at least one of compressed video over one or more communication channels 704.

[0049] In some embodiments, the streaming device 702 includes a controller 706. In some embodiments, the controller 706 includes one or more processors 708. For example, the one or more processors 708 can be configured to execute a set of program instructions maintained in the memory 710 or a storage device. By way of illustration, the controller 706 can be configured to execute any combination of encoder commands for sending and / or receiving a compressed video stream. In some embodiments, the controller 706 of one streaming device 702 uses any combination of encoder commands to transmit a compressed video stream on one or more communication channels 704, wherein the compressed video stream includes one or more video frames, wherein the video frames can be stored locally (e.g., in the memory 710 of the corresponding streaming device 702) or remotely (e.g., on a server, etc.). In this configuration, another streaming device 702 can receive the compressed video stream on one or more communication channels 704. The video stream can then be stored locally (e.g., in the memory 710 of the corresponding streaming device 702) or remotely (e.g., on a server, etc.).

[0050] The one or more processors 708 of the controller 706 may include any processor or processing element known in the art. For the purposes of this disclosure, the term "processor" or "processing element" may be broadly defined as including any device having one or more processing or logic elements (e.g., one or more microprocessor devices, one or more application specific integrated circuits (ASIC) devices, one or more field programmable gate arrays (FPGAs) or one or more digital signal processors (DSPs)). In this sense, the one or more processors 708 may include any device configured to execute algorithms and / or instructions (e.g., program instructions stored in a memory). In some embodiments, the one or more processors 708 may be embodied as a desktop computer, a large computer system, a workstation, an image computer, a parallel processor, a networked computer, or any other computer system configured to execute program instructions. In addition, the steps described throughout this disclosure may be performed by a single controller or (alternatively) multiple controllers. In addition, the controller 706 may include one or more controllers housed in a common housing or multiple housings.

[0051] The memory 710 may include any storage medium known in the art that is suitable for storing program instructions that can be executed by the associated one or more processors 708. For example, the memory 710 may include a non-transitory storage medium. As another example, the memory 710 may include, but is not limited to, a read-only memory (ROM), a random-access memory (RAM), a magnetic or optical storage device (e.g., a disk), a tape, a solid-state drive, etc. It should also be noted that the memory 710 can be housed in a common controller housing together with the one or more processors 708. In some embodiments, the memory 710 can be remotely located with respect to the physical location of the one or more processors 708 and the controller 706. As an example, one or more processors 708 of the controller 706 can access a remote memory (e.g., a server) that can be accessed via a network (e.g., the Internet, an intranet, etc.).

[0052] In some embodiments, the streaming device 702 includes a display device 712. For example, the streaming device 702 can include a display device 712 adapted to display a YCbCr video stream. As another example, the streaming device 702 can include a video converter adapted to convert the YCbCr video stream into another color space (e.g., RGB) for display on the display device 712.

[0053] In addition, despite Figure 7 A plurality of streaming devices 702 are depicted with display devices 712, but it should be understood that this is not a requirement. In some embodiments, no streaming device includes a display device 712. In some embodiments, only one streaming device 702 configured to receive a compressed video stream includes a display device 712.

[0054] The subject matter described herein sometimes illustrates different components that are contained within or connected to other components. It should be understood that the architecture described in this manner is merely exemplary, and in fact many other architectures that implement the same functionality can be implemented. In a conceptual sense, any arrangement of components that implement the same functionality is effectively "associated," thereby achieving the desired functionality. Therefore, any two components that are combined herein to achieve a specific functionality can be considered to be "associated" with each other, thereby achieving the desired functionality, regardless of the architecture or intermediate components. Similarly, any two components that are so associated can also be considered to be "connected" or "coupled" to each other to achieve the desired functionality, and any two components that can be so associated can also be considered to be "coupleable" to each other to achieve the desired functionality. Specific examples of coupling include, but are not limited to, physically interactive and / or physically interactive components and / or wirelessly interactive and / or wirelessly interactive components and / or logically interactive and / or logically interactive components.

[0055] It is believed that the present disclosure and its many attendant advantages will be understood from the foregoing description, and it will be apparent that various changes can be made in the form, construction, and arrangement of the components without departing from the disclosed subject matter or sacrificing all of the material advantages of the present disclosure. The forms described are merely illustrative, and it is intended that such changes be encompassed and included in the following claims. Furthermore, it should be understood that the invention is defined by the appended claims.

Claims

1. A video compression system comprising: A controller comprising one or more processors configured to execute program instructions, the program instructions causing the one or more processors to: At least one of sending a compressed video stream or receiving a compressed video stream is performed based on encoder commands from a set of layered encoder commands for a sequence of one or more pixels in a video stream, wherein the video stream is provided in a YCbCr color space, wherein at least some of the set of layered encoder commands address pairs of the one or more pixels, the pairs having a common chroma value and different luma values, wherein the set of layered encoder commands comprises: A copy command indicating that a specific sequence of one or more pixels in a video frame of the video stream is identical to reference pixels, the reference pixels comprising one of the following: a previous pixel in the video frame; a pixel located above a first pixel in a particular sequence in the video frame; or a pixel in a previous video frame of the video stream, the pixel being at the position of the first pixel in the particular sequence; an increment command indicating that the particular sequence includes a single pixel having a color value equal to a reference pixel combined with a signed color increment; and Generate pixel commands, providing the specified sequence of color values.

2. The video compression system according to claim 1, wherein The set of hierarchical encoder commands provides 23-bit color depth information for the sequence of one or more pixels.

3. The video compression system according to claim 2, wherein: The Generate Pixels command is a four-byte command that includes one header bit, wherein the remainder of the bits in the Generate Pixels command are payload bits that define different luminance values ​​for a pair of pixels and a common chrominance value for the pair of pixels.

4. The video compression system according to claim 2, wherein: The Copy command is a one-byte command including four header bits, wherein the remainder of the bits in the Generate Pixels command are payload bits.

5. The video compression system according to claim 2, wherein: The incremental command is a two-byte command with four header bits, where the remainder of the bits in the incremental command are payload bits.

6. The video compression system according to claim 2, wherein: The incremental command is a three-byte command with four header bits, where the remainder of the bits in the incremental command are payload bits.

7. The video compression system according to claim 2, wherein: At least some of the set of hierarchical encoder commands address single pixels.

8. The video compression system according to claim 3, wherein: The set of layered encoder commands also includes an additional generate pixel command, which is a one-byte command including one header bit, wherein the remainder of the bits in the additional generate pixel command are payload bits, which define the brightness value of the single pixel.

9. The video compression system according to claim 7, wherein: The Copy command is a one-byte command including four header bits, wherein the remainder of the bits in the Generate Pixels command are payload bits.

10. The video compression system according to claim 7, wherein: The delta command is a one-byte command with four header bits, where the remainder of the bits in the delta command are payload bits to be applied to the single pixel.

11. The video compression system according to claim 7, wherein: The delta command is a two-byte command with four header bits, where the remainder of the bits in the delta command are payload bits to be applied to the single pixel.

12. The video compression system according to claim 7, wherein: The set of layered encoder commands also includes: An additional incremental command having a lower priority than the incremental command, the additional incremental command being a two-byte command having four header bits, wherein the remainder of the bits in the incremental command are payload bits.

13. The video compression system according to claim 1, wherein: The encoder commands provide 29-bit color depth information.

14. The video compression system according to claim 13, wherein: The Generate Pixels command is a five-byte command that includes one header bit, wherein the remainder of the bits in the Generate Pixels command are payload bits that define individual luminance values ​​for a pixel pair and a common chrominance value for the pixel pair.

15. The video compression system according to claim 13, wherein: The Generate Pixel command is a one-byte command that includes one header bit, wherein the remainder of the bits in the Generate Pixel command are payload bits that define the brightness value of a single pixel.

16. The video compression system according to claim 13, wherein: The Copy command is a one-byte command including four header bits, wherein the remainder of the bits in the Generate Pixels command are payload bits.

17. The video compression system according to claim 13, wherein: The incremental command is a one-byte command with four header bits, where the remainder of the bits in the incremental command are payload bits.

18. The video compression system according to claim 17, wherein: The set of layered encoder commands also includes an additional incremental command having a lower priority than the incremental command, the additional incremental command being a two-byte command having four header bits, wherein the remainder of the bits in the incremental command are payload bits.

19. The video compression system according to claim 13, wherein: The incremental command is a two-byte command with four header bits, where the remainder of the bits in the incremental command are payload bits.

20. A video compression method, comprising: Providing encoder commands for a sequence of one or more pixels in a video stream from a set of layered encoder commands, wherein the video stream is provided in a YCbCr color space, wherein at least some of the set of layered encoder commands address pairs of the one or more pixels, the pairs having a common chroma value and different luma values, wherein the set of layered encoder commands comprises: A copy command indicating that a specific sequence of one or more pixels in a video frame in the video stream is identical to reference pixels, the reference pixels comprising one of the following: Previous pixels in the video frame; a pixel located above a first pixel in a particular sequence in the video frame; or a pixel in a previous video frame of the video stream, the pixel being at the location of the first pixel in the particular sequence; an increment command indicating that the particular sequence includes a single pixel having a color value equal to a reference pixel combined with a signed color increment; and Generate pixel commands that provide a specific sequence of color values; and Encoder commands for each of the one or more sequences of pixels in the video stream are transmitted over a communication channel as generated.

21. A video compression system comprising: A controller comprising one or more processors configured to execute program instructions, the program instructions causing the one or more processors to: At least one of sending a compressed video stream or receiving a compressed video stream is performed based on an encoder command for a sequence of one or more pixels in a video stream from a set of layered encoder commands, wherein the video stream is provided in an RGB color space having a 23-bit color depth, wherein the set of layered encoder commands comprises: A copy command indicating that the specific sequence of one or more pixels in the video frame of the video stream is identical to reference pixels, the reference pixels comprising one of the following: a previous pixel in the video frame; a pixel located above a first pixel in a particular sequence in the video frame; or a pixel in a previous video frame of the video stream, the pixel being at the position of the first pixel in the particular sequence; an increment command indicating that the specific sequence includes a single pixel having a color value equal to a reference pixel in the video frame combined with a signed color increment; and Generate pixel commands, providing the specified sequence of color values.

22. The video compression system according to claim 21, wherein: The Generate Pixels command is a three-byte command that includes a header bit, wherein the remainder of the bits in the Generate Pixels command are payload bits that define the red value, green value, and blue value of one or more pixel values ​​in the particular sequence.

23. The video compression system according to claim 21, wherein: The copy command is a one-byte command including four header bits, wherein the remainder of the bits in the copy command are payload bits.

24. The video compression system according to claim 21, wherein: The delta command is a one-byte command having four header bits, wherein the remainder of the bits in the delta command are payload bits, the payload bits including the signed color delta, wherein the signed color delta is applied uniformly to the red value, green value, and blue value of one or more pixels in the particular sequence.

25. The video compression system according to claim 21, wherein The delta command is a two-byte command having four header bits, wherein the remainder of the bits in the delta command are payload bits comprising the signed color delta, wherein the signed color delta provides: four bits of a red value to be applied to one or more pixels in the particular sequence, four bits of a green value to be applied to one or more pixels in the particular sequence, and four bits of a blue value to be applied to one or more pixels in the particular sequence.

Citation Information

Patent Citations

  • DVCX and DVCY extensions to DVC video compression

    US11962788B2

  • Digital video compression command priority

    US7006700B2

  • Video compression system

    US7272180B2

  • Video compression system

    US7321623B2

  • Digital video compression command priority

    US7336839B2