A video image high bandwidth transmission method, device and system
Patent Information
- Application Number
- CN202411430921.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-10-12
- Publication Date
- 2026-10-27
- Estimated Expiration
- 2044-10-12
AI Technical Summary
[0004]有鉴于此,本发明提供了一种视频图像高带宽传输方法、装置及系统,以解决现有技术无法实现超高清视频传输的问题
Smart Images

Figure CN119299712B_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of data transmission technology, and specifically to a method, apparatus, and system for high-bandwidth video image transmission. Background Technology
[0002] With the booming development of the digital media industry, the number of multimedia devices related to digital signal transmission is also growing rapidly, and people's demands for the efficiency and reliability of digital signal transmission between transmission devices are also gradually increasing.
[0003] Existing video transmission chips, when performing high-speed (high-speed is defined as 8Gbps, or 8Gb per second) transmission, typically transmit the original video image, such as a 2-megapixel video image data stream, directly from the sending end to the receiving end. However, this method cannot achieve high-speed transmission of ultra-high-definition 8K (resolution is 7680×4320 pixels) video (30 frames per second). Summary of the Invention
[0004] In view of this, the present invention provides a method, apparatus and system for high-bandwidth video image transmission to solve the problem that the prior art cannot achieve ultra-high-definition video transmission.
[0005] In a first aspect, the present invention provides a high-bandwidth video transmission method, comprising: when it is determined that a video stream will be compressed, compressing the video stream to obtain a compressed video stream; converting the compressed video stream and bypass data matching the video stream into a series of interface data packets; converting the interface data packets into data of a predetermined protocol, and transmitting the data of the predetermined protocol.
[0006] In this invention, video streams are compressed for transmission, reducing the bandwidth requirements. Simultaneously, the compressed video stream and bypass data are converted into interface data packets, limiting the transmission data format and ensuring standardized transmission. Furthermore, data is converted to a predetermined protocol for transmission, allowing the selection of a transmission protocol based on actual needs. For example, when transmitting high-definition video, a high-definition video protocol can be selected, improving the transmission rate.
[0007] In one optional implementation, before compressing the video stream to obtain a compressed video stream, the method further includes: determining whether to compress the video stream; if it is determined that the video stream will not be compressed, then converting the video stream and bypass data matching the video stream into predetermined protocol data, and transmitting the predetermined protocol data.
[0008] In this invention, it is possible to determine whether to compress or not transmit the video stream according to actual needs, thus avoiding the problem of high computational resource requirements when using compressed transmission.
[0009] In one alternative implementation, the predetermined protocol is A-PHY or ASA-ML; determining whether to compress the video stream includes: determining whether to compress the video stream based on data in the mode register; when it is determined that the video stream will not be compressed, using a selector to directly guide the video stream and the bypass data matching the video stream to the uncompressed channel; when it is determined that the video stream will be compressed, using a selector to guide the video stream and the bypass data matching the video stream to the compressed channel.
[0010] In this invention, A-PHY or ASA-ML protocol is used as the predetermined protocol for data transmission, which meets the requirements of high-speed and high-bandwidth transmission.
[0011] In one optional implementation, the bypass data includes embedded data and user-defined data, the compressed video stream includes compressed video data, and an interface data packet includes: data packet information and / or one or more sub-data. The data packet information includes one or more of the following: a first identifier indicating the start of a frame, wherein a frame start is indicated when the first identifier is valid; a second identifier indicating the end of a frame, wherein a frame end is indicated when the second identifier is valid; a third identifier indicating that the data in the sub-data of the current interface data packet is compressed video data, wherein the data in the sub-data of the current interface data packet is compressed video data when the third identifier is valid; a fourth identifier indicating that the data in the sub-data of the current interface data packet is embedded data, wherein the data in the sub-data of the current interface data packet is embedded data when the fourth identifier is valid; a fifth identifier indicating that the data in the sub-data of the current interface data packet is user-defined data, wherein the data in the sub-data of the current interface data packet is user-defined data when the fifth identifier is valid; when the first or second identifier in the data packet information is valid, the interface data packet does not include sub-data, and when the third, fourth, or fifth identifier is valid, the interface data packet includes sub-data.
[0012] In this invention, data packet information and sub-data are set in the interface data packet, and the first to fifth identifiers are used to represent different data packet information respectively. This enables the accurate transmission of different types of data and the identification of transmitted data.
[0013] In one optional implementation, only one of the first to fifth identifiers in the same data packet information is valid. When the fourth identifier is valid, the data packet information further includes: a first field indicating the number of bytes in the current line of embedded data; and a third field indicating the data type of the user-defined data.
[0014] In this invention, a first field, a second field, and a third field representing embedded data and user-defined data are set in the data packet information, thereby facilitating the identification of the number of bytes and type of embedded data and user-defined data.
[0015] In one optional implementation, when the data in the sub-data of the current interface data packet is embedded data, each sub-data includes one or more pieces of embedded data. The data bit width of the sub-data is equal to M times the bit width of each piece of embedded data, where M is a natural number greater than or equal to 2. M pieces of embedded data can fill one sub-data. When the remaining embedded data in the current row cannot fill one sub-data, first invalid data is filled into the unfilled sub-data to fill it. The first field is used to identify the first invalid data and embedded data in the sub-data. When the data in the sub-data of the current interface data packet is user-defined data, each sub-data includes one or more pieces of user-defined data. The data bit width of the sub-data is equal to N times the bit width of each piece of user-defined data, where N is a natural number greater than or equal to 2. N pieces of embedded data fill one sub-data. When the remaining user-defined data in the current row cannot fill one sub-data, second invalid data is filled into the unfilled sub-data to fill it. The second field is used to identify the second invalid data and user-defined data in the sub-data.
[0016] In this invention, multiple embedded data or user-defined data are transmitted within sub-data, that is, embedded data and user-defined data are combined and transmitted, which achieves the effect of improving transmission efficiency by expanding the bit width; in addition, when embedded data or user-defined data cannot fill the sub-data, invalid data is used to supplement it, ensuring the normal transmission of data.
[0017] In one optional implementation, when the data in the sub-data of the current interface data packet is compressed video data, each sub-data includes one or more compressed video data in the compressed video stream, and the data bit width of each compressed video data is equal to the bit width of the compressed video stream.
[0018] In this invention, multiple compressed video data are transmitted in the sub-data, that is, the compressed video data is transmitted in combination, which realizes the effect of improving transmission efficiency by expanding the bit width.
[0019] In one optional implementation, the data bit width in the sub-data is equal to X times the bit width of the compressed video stream, where X is a natural number greater than or equal to 2. X copies of compressed video data in the compressed video stream fill one sub-data. If the remaining compressed video stream in each frame of the video stream fails to fill a sub-data, third invalid data is filled into the unfilled sub-data to fill it. When the data in the sub-data in the current interface data packet is compressed video data, the interface data packet also includes a sixth identifier, which is used to identify the compressed video data and the third invalid data in the sub-data.
[0020] In this invention, when compressed video data cannot fill all the sub-data, invalid data is used to supplement it, ensuring normal data transmission. Simultaneously, a sixth identifier is used to identify invalid data, facilitating the preparation and confirmation of compressed video data at the receiving end.
[0021] In one alternative implementation, in each packet interface clock cycle, a packet information, a sub-data, and / or a sixth identifier are transmitted in parallel through the packet interface transmission line. Each packet transmission cycle of the packet interface includes one or more packet interface clock cycles. In each packet transmission cycle of the packet interface, an interface packet is transmitted. In each packet transmission cycle of the packet interface, the packet information transmitted in multiple packet interface clock cycles is the same.
[0022] In one alternative implementation, the number of sub-data items in different interface data packets is set to be the same or different.
[0023] In this invention, the number of sub-data packets in each interface data packet can be determined as needed. The number of sub-data packets in different interface data packets can be set to be the same or different as needed to ensure that the bypass data of each frame and each line of the video stream is transmitted in a timely manner.
[0024] Secondly, the present invention provides a high-bandwidth video transmission method, comprising: receiving data according to a predetermined protocol, converting the data according to the predetermined protocol into a series of interface data packets; parsing the interface data packets to obtain a video stream and bypass data; when the video stream is a compressed video stream, decompressing the compressed video stream, and transmitting the decompressed video stream and bypass data.
[0025] In one optional implementation, the predetermined protocol is A-PHY or ASA-ML. When the video stream is a compressed video stream, before decompressing the compressed video stream, the method further includes: determining whether the video stream is a compressed video stream or an uncompressed video stream according to the mode register; when the video stream is determined to be a compressed video stream, using a selector to guide the compressed video stream to the decompression channel; when the video stream is determined to be an uncompressed video stream, using a selector to guide the uncompressed video stream to the undecompressed channel.
[0026] In one optional implementation, the bypass data includes embedded data and user-defined data, the compressed video stream includes compressed video data, and an interface data packet includes: data packet information and / or one or more sub-data. The data packet information includes one or more of the following: a first identifier indicating the start of a frame, wherein a frame start is indicated when the first identifier is valid; a second identifier indicating the end of a frame, wherein a frame end is indicated when the second identifier is valid; a third identifier indicating that the data in the sub-data of the current interface data packet is compressed video data, wherein the data in the sub-data of the current interface data packet is compressed video data when the third identifier is valid; and an identifier indicating that the data in the sub-data of the current interface data packet is embedded data. The fourth identifier of the data type indicates that the data in the sub-data of the current interface data packet is embedded data when the fourth identifier is valid; the fifth identifier indicates that the data in the sub-data of the current interface data packet is user-defined data when the fifth identifier is valid; when the first or second identifier in the data packet information is valid, the interface data packet does not include sub-data; when the third, fourth, or fifth identifier is valid, the interface data packet includes sub-data; only one of the first to fifth identifiers in the same data packet information can be valid; when the fourth identifier is valid, the data packet information also includes: an embedded identifier indicating the current line of the current frame in the video stream. The first field representing the number of bytes in the embedded data indicates the number of bytes in the current line of the embedded data. When the fifth identifier is valid, the data packet information also includes: a second field representing the number of bytes in the current line of the user-defined data in the current frame of the video stream; and a third field representing the data type of the user-defined data. When the data in the sub-data of the current interface data packet is embedded data, each sub-data includes one or more pieces of embedded data. The data bit width of the sub-data is equal to M times the bit width of each piece of embedded data, where M is a natural number greater than or equal to 2. M pieces of embedded data can fill one sub-data, and the remaining embedded data in the current line cannot fill it. When a sub-data set is filled, the unfilled sub-data set is filled with first invalid data to fill it. The first field is used to identify the first invalid data and embedded data in the sub-data set. When the data in the sub-data set of the current interface data packet is user-defined data, each sub-data set includes one or more user-defined data sets. The data bit width of the sub-data set is equal to N times the bit width of each user-defined data set, where N is a natural number greater than or equal to 2. N embedded data sets fill one sub-data set. When the remaining user-defined data in the current row cannot fill one sub-data set, the unfilled sub-data set is filled with second invalid data to fill it. The second field is used to identify the second invalid data and user-defined data in the sub-data set.When the data in the sub-data of the current interface data packet is compressed video data, each sub-data includes one or more compressed video data from the compressed video stream output by the compression module. The data bit width of each compressed video data is equal to the bit width of the compressed video stream output by the compression module. The data bit width in the sub-data is equal to X times the bit width of the compressed video stream, where X is a natural number greater than or equal to 2. X compressed video data from the compressed video stream fill one sub-data. If the remaining compressed video stream in each frame of the video stream cannot fill a sub-data, third invalid data is filled into the unfilled sub-data to fill it. When the data in the sub-data of the current interface data packet is compressed video data, the interface data packet also includes a sixth identifier, which is used to identify the compressed video data and the third invalid data in the sub-data.
[0027] In one alternative implementation, in each packet interface clock cycle, a packet information, a sub-data, and / or a sixth identifier are transmitted in parallel through the packet interface transmission line. Each packet transmission cycle of the packet interface includes one or more packet interface clock cycles. In each packet transmission cycle of the packet interface, an interface packet is transmitted. In each packet transmission cycle of the packet interface, the packet information transmitted in multiple packet interface clock cycles is the same.
[0028] Thirdly, the present invention provides a high-bandwidth video transmission apparatus, comprising: a compression module, which is used to compress a video stream to obtain a compressed video stream when it is determined that a video stream should be compressed; a first data packet interface, which is used to convert the compressed video stream and bypass data matching the video stream into a series of interface data packets; and a first protocol adaptation layer, which is used to convert the interface data packets into data of a predetermined protocol and transmit the data of the predetermined protocol.
[0029] In one optional implementation, it further includes: a first mode register, used to determine whether to compress the video stream; a first selector, used to, when it is determined that compression of the video stream is not required, directly guide the video stream and the bypass data matching the video stream to an uncompressed channel, and transmit it to the protocol adaptation layer through the uncompressed channel; the first selector is also used to, when it is determined that compression of the video stream is required, guide the video stream and the bypass data matching the video stream to a compression channel, and transmit it to the data packet interface through the compression channel; the predetermined protocol is A-PHY or ASA-ML; the data packet interface includes: a bypass data buffer, the bit width of the output data of the bypass data buffer is M times the bit width of the input data, where M is a natural number greater than or equal to 2, and the bypass data buffer outputs M copies of bypass data each time.
[0030] In one optional implementation, the bypass data includes embedded data and user-defined data, the compressed video stream includes compressed video data, and an interface data packet includes: data packet information and / or one or more sub-data. The data packet information includes one or more of the following: a first identifier indicating the start of a frame, wherein a frame start is indicated when the first identifier is valid; a second identifier indicating the end of a frame, wherein a frame end is indicated when the second identifier is valid; a third identifier indicating that the data in the sub-data of the current interface data packet is compressed video data, wherein the data in the sub-data of the current interface data packet is compressed video data when the third identifier is valid; a fourth identifier indicating that the data in the sub-data of the current interface data packet is embedded data, wherein the data in the sub-data of the current interface data packet is embedded data when the fourth identifier is valid; a fifth identifier indicating that the data in the sub-data of the current interface data packet is user-defined data, wherein the data in the sub-data of the current interface data packet is user-defined data when the fifth identifier is valid; when the first or second identifier in the data packet information is valid, the interface data packet does not include sub-data, and the data in the sub-data of the current interface data packet is user-defined data when the third identifier is valid. When the first, fourth, or fifth identifier is valid, the interface data packet includes sub-data. Only one of the first to fifth identifiers in the same data packet information can be valid. When the fourth identifier is valid, the data packet information also includes: a first field indicating the number of bytes of embedded data in the current line of the current frame in the video stream; when the fifth identifier is valid, the data packet information also includes: a second field indicating the number of bytes of user-defined data in the current line of the current frame in the video stream; and a third field indicating the data type of user-defined data. When the data in the sub-data in the current interface data packet is embedded data, each sub-data includes one or more pieces of embedded data. The data bit width of the sub-data is equal to M times the bit width of each piece of embedded data, where M is a natural number greater than or equal to 2. M pieces of embedded data can fill one sub-data. When the remaining embedded data in the current line cannot fill one sub-data, first invalid data is filled into the unfilled sub-data to fill it. The first field is used to identify invalid data and embedded data in the sub-data.When the data in the sub-data of the current interface data packet is user-defined data, each sub-data includes one or more pieces of user-defined data. The data bit width of the sub-data is equal to N times the bit width of each piece of user-defined data, where N is a natural number greater than or equal to 2. N pieces of embedded data fill one sub-data. If the remaining user-defined data in the current row cannot fill one sub-data, second invalid data is filled into the unfilled sub-data to fill it. The second field is used to identify the second invalid data and user-defined data in the sub-data. When the data in the sub-data of the current interface data packet is compressed video data, each sub-data includes one or more pieces of compressed video data from the compressed video stream output by the compression module. The data bit width of each piece of compressed video data is equal to the bit width of the compressed video stream output by the compression module. The data bit width in the sub-data is equal to X times the bit width of the compressed video stream output by the compression module, where X is greater than or equal to 2. The natural number X represents the number of compressed video data units in the compressed video stream output by the compression module, used to fill a sub-data unit. If, at the end of each frame of the video stream, the remaining compressed video data fails to fill a sub-data unit, a third invalid data unit is added to fill the unfilled sub-data unit. When the data in the sub-data unit of the current interface data packet is compressed video data, the interface data packet also includes a sixth identifier, used to identify the compressed video data and the third invalid data unit within the sub-data unit. In each data packet interface clock cycle, a data packet, a sub-data unit, and / or a sixth identifier are transmitted in parallel through the data packet interface transmission line. Each data packet transmission cycle of the data packet interface includes one or more data packet interface clock cycles. In each data packet transmission cycle of the data packet interface, one interface data packet is transmitted. In each data packet transmission cycle of the data packet interface, the data packet information transmitted in multiple data packet interface clock cycles is the same.
[0031] Fourthly, the present invention provides a high-bandwidth video transmission device, comprising: a second protocol adaptation layer, which is used to receive data of a predetermined protocol and convert the data of the predetermined protocol into a series of interface data packets; a second data packet interface, which is used to parse the interface data packets to obtain a video stream and bypass data; and a decompression module, which is used to decompress the compressed video stream when the video stream is a compressed video stream, and transmit the decompressed video stream and bypass data.
[0032] In an optional implementation, it further includes: a second mode register, used to determine whether the video stream is a compressed video stream or an uncompressed video stream; a second selector, used to, when the video stream is determined to be a compressed video stream, direct the compressed video stream to the decompression channel and transmit it to the decompression module through the decompression channel; the second selector is also used to, when the video stream is determined to be an uncompressed video stream, direct the uncompressed video stream to the undecompressed channel for transmission; bypass data includes embedded data and user-defined data, the compressed video stream includes compressed video data, and an interface data packet includes: data packet information and / or one or more sub-data, the data packet information including one or more of the following information The following identifiers indicate the start of a frame: a first identifier (valid when the first identifier is active); a second identifier indicating the end of a frame (valid when the second identifier is active); a third identifier indicating that the data in the sub-data of the current interface data packet is compressed video data (valid when the third identifier is active); a fourth identifier indicating that the data in the sub-data of the current interface data packet is embedded data (valid when the fourth identifier is active); and a fifth identifier indicating that the data in the sub-data of the current interface data packet is user-defined data (valid when the fifth identifier is active). When the first or second identifier in the data packet information is valid, the interface data packet does not include sub-data; when the third, fourth, or fifth identifier is valid, the interface data packet includes sub-data. Only one of the first to fifth identifiers in the same data packet information can be valid. When the fourth identifier is valid, the data packet information also includes: a first field indicating the number of bytes of the embedded data in the current line of the current frame in the video stream; when the fifth identifier is valid, the data packet information also includes: a first field indicating the number of bytes of the embedded data in the current line of the current frame in the video stream. The second field, which defines the number of bytes in the data, represents the number of bytes in the current row of user-defined data; and the third field represents the data type of user-defined data; when the data in the sub-data in the current interface data packet is embedded data, each sub-data includes one or more embedded data, the data bit width of the sub-data is equal to M times the bit width of each embedded data, where M is a natural number greater than or equal to 2, and M embedded data can fill a sub-data. When the remaining embedded data in the current row cannot fill a sub-data, the unfilled sub-data is filled with first invalid data to fill it. The first field is used to identify the first invalid data and embedded data in the sub-data.When the data in the sub-data of the current interface data packet is user-defined data, each sub-data includes one or more pieces of user-defined data. The data bit width of the sub-data is equal to N times the bit width of each piece of user-defined data, where N is a natural number greater than or equal to 2. N pieces of embedded data fill one sub-data. If the remaining user-defined data in the current row cannot fill one sub-data, second invalid data is filled into the unfilled sub-data to fill it. The second field is used to identify the second invalid data and user-defined data in the sub-data. When the data in the sub-data of the current interface data packet is compressed video data, each sub-data includes one or more pieces of compressed video data from the compressed video stream output by the compression module. The data bit width of each piece of compressed video data is equal to the bit width of the compressed video stream output by the compression module. The data bit width of the sub-data is equal to X times the bit width of the compressed video stream, where X is a natural number greater than or equal to 2. A natural number equal to 2. X portions of compressed video data in the compressed video stream fill a sub-data portion. If the remaining compressed video data in each frame of the video stream fails to fill a sub-data portion, a third invalid data portion is added to fill the unfilled sub-data portion. When the data in the sub-data portion of the current interface data packet is compressed video data, the interface data packet also includes a sixth identifier, which is used to identify the compressed video data and the third invalid data portion within the sub-data portion. In each data packet interface clock cycle, one data packet, one sub-data portion, and / or one sixth identifier are transmitted in parallel through the data packet interface transmission line. Each data packet transmission cycle of the data packet interface includes one or more data packet interface clock cycles. One interface data packet is transmitted in each data packet transmission cycle of the data packet interface. In each data packet transmission cycle of the data packet interface, the data packet information transmitted in multiple data packet interface clock cycles is the same.
[0033] Fifthly, the present invention provides a high-bandwidth video transmission system, comprising: a video transmitting end, which is a high-bandwidth video transmission device as described in the third aspect and any one thereof of the present invention; and a video receiving end, which is a high-bandwidth video transmission device as described in the fourth aspect and any one thereof of the present invention.
[0034] In a sixth aspect, the present invention provides a computer device, comprising: a memory and a processor, the memory and the processor being communicatively connected to each other, the memory storing computer instructions, and the processor executing the computer instructions to perform the video high-bandwidth transmission method of the first aspect and any one thereof of the first aspect or the video high-bandwidth transmission method of the second aspect and any one thereof of the present invention. Attached Figure Description
[0035] To more clearly illustrate the specific embodiments of the present invention or the technical solutions in the prior art, the drawings used in the description of the specific embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are some embodiments of the present invention. For those skilled in the art, other drawings can be obtained from these drawings without creative effort.
[0036] Figure 1 This is a flowchart illustrating a high-bandwidth video image transmission method according to an embodiment of the present invention;
[0037] Figure 2 This is a flowchart illustrating another high-bandwidth video image transmission method according to an embodiment of the present invention;
[0038] Figure 3 This is a schematic diagram of the combination of compressed video image data to be transmitted and bypass data according to an embodiment of the present invention;
[0039] Figure 4 This is a data packet interface timing diagram according to an embodiment of the present invention;
[0040] Figure 5 This is a flowchart of another high-bandwidth video image transmission method according to an embodiment of the present invention;
[0041] Figure 6 This is a flowchart of another high-bandwidth video image transmission method according to an embodiment of the present invention;
[0042] Figure 7 This is a structural block diagram of a high-bandwidth video image transmission system according to an embodiment of the present invention;
[0043] Figure 8 This is a structural block diagram of a high-bandwidth video image transmission system according to an embodiment of the present invention;
[0044] Figure 9 This is a structural block diagram of another high-bandwidth video image transmission system according to an embodiment of the present invention;
[0045] Figure 10 This is a schematic diagram of the hardware structure of a computer device according to an embodiment of the present invention. Detailed Implementation
[0046] To make the objectives, technical solutions, and advantages of the embodiments of the present invention clearer, the technical solutions of the embodiments of the present invention will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of the present invention, not all embodiments. Based on the embodiments of the present invention, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of the present invention.
[0047] According to an embodiment of the present invention, a method for high-bandwidth video transmission is provided. It should be noted that the steps shown in the flowchart in the accompanying drawings can be executed in a computer system such as a set of computer-executable instructions. Furthermore, although a logical order is shown in the flowchart, in some cases, the steps shown or described may be executed in a different order than that shown here.
[0048] This embodiment provides a high-bandwidth video transmission method that can be used at a video sending end. Figure 1 This is a flowchart of a high-bandwidth video transmission method according to an embodiment of the present invention, such as... Figure 1 As shown, the process includes the following steps:
[0049] Step S101: When it is determined that the video stream should be compressed, the video stream is compressed to obtain a compressed video stream. Specifically, whether to compress the video stream can be determined based on its size. When the resolution of the transmitted video stream is large, compression processing can be performed. Video stream compression can be implemented using video compression algorithms, such as frame interpolation or an H.264 encoder. The specific compression algorithm can be determined based on the actual situation and will not be elaborated further here.
[0050] Step S102 involves converting the bypass data matching the compressed video stream and the video stream into a series of interface data packets. The bypass data can be subtitles, audio, titles, tags, or other data added to the video. Specifically, the bypass data can be embedded data or user-defined data. The bypass data is non-video image data and is not compressed. The video stream is the video image data stream, and the bypass data and video stream together constitute the camera serial interface (CSI) data stream. Before transmission, the bypass data and compressed video stream can be converted into interface data packet format for easier transmission.
[0051] Step S103: Convert the interface data packets into data according to a predetermined protocol and transmit the data according to the predetermined protocol. Specifically, a protocol adaptation layer can be used to implement the protocol conversion, that is, convert a series of interface data packets according to a predetermined protocol. After conversion, the converted data can be transmitted using the predetermined protocol, for example, to a video receiving end.
[0052] This embodiment provides a high-bandwidth video transmission method, such as... Figure 2 As shown, the method includes the following steps:
[0053] Step S201: Determine whether to compress the video stream.
[0054] Specifically, step S201 includes:
[0055] Step S2011: Determine whether to compress the video stream based on the data in the mode register. Specifically, the mode register can be set in the video transmitter. After receiving the camera serial interface data stream containing the video stream and bypass data, the video transmitter can determine whether to compress based on the resolution of the video stream or other rules. This determination process can be implemented by the mode register.
[0056] In step S2012, when it is determined that the video stream will not be compressed, a selector is used to directly guide the video stream and the bypass data matching the video stream to the uncompressed channel. Specifically, when it is determined that compression is not required, a selector can be used to guide the camera serial interface data stream to the uncompressed channel in the video transmitter for transmission. The uncompressed channel can directly achieve transparent transmission of the camera serial interface data stream, that is, without compressing the video stream, the camera serial interface data stream containing the video stream and bypass data is directly transmitted to the protocol adaptation layer through the uncompressed channel.
[0057] In step S2013, when it is determined that the video stream will be compressed, a selector is used to direct the video stream and the bypass data matching the video stream to the compression channel. Specifically, when compression is determined, a selector can be used to direct the camera serial interface data stream to the compression channel in the video transmitter. The video stream is then compressed in the compression channel.
[0058] In step S202, if it is determined that the video stream will not be compressed, the video stream and the bypass data matching the video stream are converted into data of a predetermined protocol and transmitted. Specifically, the selector transmits the camera serial interface data stream containing the video stream and bypass data to the protocol adaptation layer through an uncompressed channel, whereby the protocol adaptation layer converts it into data of the predetermined protocol.
[0059] Step S203: When it is determined that the video stream will be compressed, the video stream is compressed to obtain a compressed video stream. For details, please refer to [link to relevant documentation]. Figure 1 Step S101 of the illustrated embodiment will not be described again here.
[0060] Step S204: Convert the compressed video stream and the bypass data matching the video stream into a series of interface data packets.
[0061] In one optional implementation, the bypass data includes embedded data and user-defined data, the compressed video stream includes compressed video data, and an interface data packet includes: data packet information and / or one or more sub-data. The data packet information includes one or more of the following: a first identifier indicating the start of a frame, wherein a frame start is indicated when the first identifier is valid; a second identifier indicating the end of a frame, wherein a frame end is indicated when the second identifier is valid; a third identifier indicating that the data in the sub-data of the current interface data packet is compressed video data, wherein the data in the sub-data of the current interface data packet is compressed video data when the third identifier is valid; a fourth identifier indicating that the data in the sub-data of the current interface data packet is embedded data, wherein the data in the sub-data of the current interface data packet is embedded data when the fourth identifier is valid; a fifth identifier indicating that the data in the sub-data of the current interface data packet is user-defined data, wherein the data in the sub-data of the current interface data packet is user-defined data when the fifth identifier is valid; when the first or second identifier in the data packet information is valid, the interface data packet does not include sub-data, and when the third, fourth, or fifth identifier is valid, the interface data packet includes sub-data.
[0062] Only one of the first to fifth identifiers in the same data packet information can be valid. When the fourth identifier is valid, the data packet information also includes: a first field indicating the number of bytes in the current line of embedded data; when the fifth identifier is valid, the data packet information also includes: a second field indicating the number of bytes in the current line of user-defined data; and a third field indicating the data type of user-defined data.
[0063] Specifically, when converting to interface data packets, each frame of data in compressed video streams, embedded data (also known as embedded data streams), and user-defined data (also known as user-defined data streams) is processed row by row. When converting video streams and bypass data into interface data packets, data packet information can be set in the interface data packets to indicate the data type being transmitted. The first to fifth identifiers in the data packet information represent different data types (different data types include frame start, frame end, embedded data, user-defined data, or compressed video data). In this embodiment, different data bits of the data packet information are used to represent the first to fifth identifiers. Simultaneously, other data bits of the data packet information can also be used to transmit other data.
[0064] In this process, the receiving end regenerates parameters such as image format, image width, and image height when decompressing the compressed video stream. Therefore, it is necessary to send signals such as the data type of user-defined data (6-bit pix_data_type signal; user-defined data can have multiple data types, while embedded data has a unique data type), the number of valid data bytes per line of bypass data (16-bit pix_wc signal), the image frame sequence number (16-bit frame_number signal), and the virtual channel identifier (5-bit vcid signal) from the sending end to the receiving end. In this embodiment, these parameters are transmitted through other data bits of the data packet information.
[0065] In this embodiment, the data packet information consists of 64 bits. The high five bits represent the first to fifth identifiers, respectively. When the corresponding data bit is 1, it indicates that the corresponding identifier is valid. The high five bits of the data packet information are mutually exclusive (i.e., only one of the first to fifth identifiers in the same data packet information can be valid). The low 59 bits of the data packet information can be redefined. It should be noted that, because the high five bits of the data packet information are mutually exclusive, the low 59 bits can be redefined. When parsing, the receiving end can first determine the high five bits, i.e., determine the data type of transmission, and then check the low 59 bits. The specific 64-bit settings of the data packet information representing the data type (pkt_info_dst) can be referred to in Table 1 below:
[0066] Table 1
[0067]
[0068] As shown in Table 1 above, the data packet information in the interface data packet includes a first identifier indicating the start of a frame (Vsync), a second identifier indicating the end of a frame (Frame_end), a third identifier indicating that the data in the sub-data of the current interface data packet is compressed video data (Enc_data), a fourth identifier indicating that the data in the sub-data of the current interface data packet is embedded data (Embedded_data), and a fifth identifier indicating that the data in the sub-data of the current interface data packet is user-defined data (User_define_data). That is, the data packet information can be represented by its high five bits [59, 63], each representing one of the five different identifiers. Meanwhile, the low 59 bits of the data packet information can also be used to transmit other data.
[0069] When the first identifier of the data packet information, pkt_info_dst
[63] , is valid, other data bits such as pkt_info_dst[15:0] can be used to transmit the frame sequence number (frame_number) of the image, and pkt_info_dst[20:16] can be used to transmit the virtual channel identifier (vcid). When the fourth identifier of the data packet information, pkt_info_dst
[61] , is valid, the data packet information can also include a first field indicating the number of bytes in the current row of embedded data, for example, using data bits such as pkt_info_dst[15:0] to indicate the number of bytes (pix_wc) of the embedded data in this row. When the fourth identifier pkt_info_dst
[60] of the data packet information is valid, the data packet information also includes a second field indicating the number of bytes in the current line of user-defined data. For example, data bits such as pkt_info_dst[31:16] can be used to indicate the number of bytes (pix_wc) of the user-defined data in this line, and data bits such as pkt_info_dst[37:32] can be used to indicate the data type (pix_data_type) of the current user-defined data.
[0070] In one optional implementation, when the data in the sub-data of the current interface data packet is embedded data, each sub-data includes one or more embedded data. The data bit width of the sub-data is equal to M times the bit width of each embedded data, where M is a natural number greater than or equal to 2. M embedded data can fill a sub-data. When the remaining embedded data in the current row cannot fill a sub-data, first invalid data is filled into the unfilled sub-data to fill it. The first field is used to identify the first invalid data and embedded data in the sub-data.
[0071] When the data in the sub-data of the current interface data packet is user-defined data, each sub-data includes one or more pieces of user-defined data. The data bit width of the sub-data is equal to N times the bit width of each piece of user-defined data, where N is a natural number greater than or equal to 2. N pieces of embedded data fill one sub-data. When the remaining user-defined data in the current row cannot fill one sub-data, second invalid data is filled into the unfilled sub-data to fill it. The second field is used to identify the second invalid data and user-defined data in the sub-data.
[0072] When the data in the sub-data of the current interface data packet is compressed video data, each sub-data includes one or more compressed video data from the compressed video stream. The data bit width of each compressed video data is equal to the bit width of the compressed video stream. The data bit width in the sub-data is equal to X times the bit width of the compressed video stream, where X is a natural number greater than or equal to 2. X compressed video data from the compressed video stream fill one sub-data. If the remaining compressed video stream in each frame of the video stream cannot fill a sub-data, third invalid data is filled into the unfilled sub-data to fill it. When the data in the sub-data of the current interface data packet is compressed video data, the interface data packet also includes a sixth identifier, which is used to identify the compressed video data and the third invalid data in the sub-data.
[0073] Specifically, compressing the video stream before transmission reduces bandwidth requirements and improves transmission efficiency. Building on this, to further enhance transmission efficiency, the bit width of sub-data within the interface data packet can be expanded, allowing each sub-data set to accommodate multiple embedded data sets, multiple user-defined data sets, or multiple compressed video data sets. Specifically, the bit width of the sub-data set can be set to M times the bit width of each embedded data set, N times the bit width of each user-defined data set, or X times the bit width of the compressed video stream.
[0074] In practical applications, to ensure that sub-data in different interface data packets can accommodate multiple embedded data, multiple user-defined data, or multiple compressed video data, the bit width of the sub-data can be set to the least common multiple of the bit widths of the embedded data, user-defined data, and compressed video data. For example, ... Figure 3 As shown, when the compressed video data bit width is 32 bits, and the bypass data (including user-defined data and embedded data) outputs a bit width of 64 bits per clock cycle, the bit width of the sub-data can be set to 128 bits. Therefore, each sub-data includes two embedded data sets, two user-defined data sets, or four compressed video data sets. That is, when converting to an interface data packet, four compressed data sets can be combined to form a sub-data set in one interface data packet, and two bypass data sets can be combined to form a sub-data set in one interface data packet.
[0075] In actual transmission, the number of bytes per line in bypass data is not fixed. When combining multiple bypass data sets to form sub-data, there may be insufficient data in the current line to form multiple bypass data sets. However, when the fourth or fifth identifier in the interface data packet information is valid, the data packet information contains a first field indicating the number of bytes in the current line of embedded data or a second field indicating the number of bytes in the current line of user-defined data. Therefore, the number of bytes in the current line of embedded data or user-defined data can be determined based on this first or second field, and it can be used to determine whether the current line of bypass data can be combined to form multiple bypass data sets.
[0076] Furthermore, during image compression of the video stream, the sending end experiences a delay. For example, for a single frame of data in the video stream (which includes multiple lines), the sending end will compress it after receiving 2 to 4 lines, resulting in a delay of 2 to 4 lines during image compression. Therefore, if the bypass data should be at the end of a frame, its position within the frame will change due to the video stream compression delay. Based on this, this embodiment sets up a bypass data buffer at the sending end. The output data width of the bypass data buffer is M times the input data width, where M is a natural number greater than or equal to 2. The bypass data buffer outputs M copies of bypass data each time. For example, when the bypass data width is 64 bits, the input data width of the bypass data buffer is 64 bits, the output data width is 128 bits, and the capacity is a depth of 512 × a width of 128 bits. Moreover, since the output data width of the bypass data buffer is M times the input data width, the bypass data buffer output data can directly form a sub-data element of an interface data packet.
[0077] When inputting bypass data into the bypass data buffer, the number of bytes in the current line of the input bypass data can be determined. If the number of bytes in the current line is insufficient to reach the bit width of the output data in the bypass data buffer, then first or second invalid data is added based on the type of bypass data to make it reach the bit width of the output data. For example, if the current line of bypass data contains 64 bits of data, and the bit width of the output data is 128 bits, then 64 bits of first invalid data need to be added. The first or second invalid data can be determined by copying the current line of data. For example, when transmitting embedded data, 64 bits of the current line of data can be copied as the first invalid data; when transmitting user-defined data, 64 bits of the current line of data can be copied as the second invalid data. Alternatively, other methods can be used to determine the first or second invalid data. Furthermore, since the output data of the bypass data buffer can directly form a sub-data of an interface data packet, adding first and second invalid data to the bypass data buffer is equivalent to filling the sub-data.
[0078] Meanwhile, the number of data points in a single frame of compressed video data is not fixed. If the transmission of a frame of compressed video stream ends and the remaining data bit width does not meet the requirement for a sub-data bit width, then a third invalid data point is used to fill the sub-data. For example, if the compressed video stream bit width is 32 bits and the sub-data bit width is 128 bits, after four compressed video data points in a frame of compressed video stream are combined into a sub-data point, two compressed video data points remain. However, these two compressed video data points cannot form a sub-data point, so 64 bits of third invalid data can be used as filler. This third invalid data point can consist of 0s. Thus, this sub-data point includes 64 bits of compressed video data and 64 bits of third invalid data. Furthermore, the filled third invalid data needs to be identified at the receiving end. Therefore, a sixth identifier can be set in the interface data packet to identify the third invalid data point in the sub-data. For example, the sixth identifier can be represented as pkt_byte_dst, where pkt_byte_dst is 5'd3 when only one copy of compressed video data is valid (i.e., the third invalid data is 96 bits); pkt_byte_dst is 5'd7 when one copy of compressed video data is valid; pkt_byte_dst is 5'd11 when three copies of compressed video data are valid; and pkt_byte_dst is 5'd15 when four copies of compressed video data are valid.
[0079] In one optional implementation, in each packet interface clock cycle, a packet information, a sub-data, and / or a sixth identifier are transmitted in parallel through the packet interface transmission line. Each packet transmission cycle of the packet interface includes one or more packet interface clock cycles. One interface packet is transmitted in each packet transmission cycle of the packet interface. The packet information transmitted in multiple packet interface clock cycles within each packet transmission cycle of the packet interface is the same. The number of sub-data in different interface packets can be set to be the same or different.
[0080] Specifically, the data includes a timing diagram of the interface, such as... Figure 4As shown, pkt_clock represents the data packet interface clock; pkt_req_dst represents the handshake request, which is to ask the protocol adaptation layer whether data can be sent at present; pkt_rdy_dst represents the handshake reply, which is the protocol adaptation layer's reply on whether data can be sent at present, high level indicates that it can be sent, low level indicates that it cannot be sent; pkt_vld_dst indicates whether the current data is valid, high level indicates that the current data is valid, low level indicates that the data bits are invalid data; pkt_data_dst[1 [27:0] indicates the transmitted 128-bit compressed video stream; pkt_byte_dst[4:0] indicates the sixth identifier, which identifies the valid compressed video data in the sub-data. For example, 0 indicates that the high eight bits (i.e., the most significant bit) are valid, that is, bits 127-120 are valid (or the most significant byte is valid), 1 indicates that the high two bits are valid, 3 indicates that the high three bits are valid, and 15 indicates that the high 15 bits are valid; pkt_info_dst[63:0] indicates the transmitted data type, that is, the data packet information contained in the interface data packet. DATA0, DATA1, DATA2, and DATA3 are the sub-data contained in the interface data packet.
[0081] Furthermore, according to the timing diagram, in each packet interface clock cycle, the data transmitted in parallel through the packet interface transmission line includes a packet information (pkt_info_dst), a sub-data (such as compressed video data pkt_data_dst), and / or a sixth identifier (pkt_byte_dst). Simultaneously, each packet transmission cycle of the packet interface includes one or more packet interface clock cycles, transmitting one interface packet in each cycle. As shown in the timing diagram, this interface packet comprises four packet interface clock cycles, and the four sub-data transmitted in these four cycles are DATA0, DATA1, DATA2, and DATA3.
[0082] In addition, the number of sub-data packets in each interface data packet is determined as needed. The number of sub-data packets in different interface data packets can be set to be the same or different as needed to ensure that the bypass data of each frame and each line of the video stream is transmitted in a timely manner.
[0083] Step S205 involves converting the interface data packet into data according to a predetermined protocol and transmitting the data according to the predetermined protocol. The predetermined protocol can be A-PHY (Mobile Industry Processor Interface) or ASA-ML (ASA Motion Link). The A-PHY protocol can achieve a data transmission rate of up to 12Gbps, thus meeting the requirements for high-bandwidth transmission. Furthermore, 12Gbps bandwidth can support the transmission of 4K and even 8K video, and compressing the video during transmission can further reduce the bandwidth requirements. Therefore, in this embodiment, compressing the video image data to be transmitted and using the A-PHY protocol for data transmission enables the transmission of high-definition 8K and higher resolution video images.
[0084] This embodiment provides a high-bandwidth video transmission method, such as... Figure 5 As shown, the method includes the following steps:
[0085] Step S301: Receive data of a predetermined protocol and convert the data of the predetermined protocol into a series of interface data packets; specifically, after receiving the data of the predetermined protocol, the video receiver can use a protocol adaptation layer to realize the protocol conversion, that is, convert the data of the predetermined protocol into a series of interface data packets.
[0086] Whether or not to compress the video stream depends on its size. When the transmitted video stream has a high resolution, compression can be performed. Video stream compression can be achieved using video compression algorithms, such as frame interpolation or an H.264 encoder. The specific compression algorithm will be determined based on the actual situation and will not be elaborated upon here.
[0087] Step S302: Parse the interface data packet to obtain the video stream and bypass data; since the interface data packet includes the video stream and bypass data, it is necessary to parse the interface data packet to separate the video stream and bypass data.
[0088] Step S303: When the video stream is a compressed video stream, decompress the compressed video stream and transmit the decompressed video stream and bypass data. Specifically, when the separated video stream is a compressed video stream, it needs to be decompressed. Decompression of the compressed video stream can be achieved using a video decompression algorithm, such as frame difference or an H.264 encoder. The specific decompression algorithm can be determined based on the algorithm used during compression.
[0089] This embodiment provides a high-bandwidth video transmission method, such as... Figure 6 As shown, the method includes the following steps:
[0090] Step S401: Receive data according to a predetermined protocol and convert the data into a series of interface data packets. The predetermined protocol is either A-PHY or ASA-ML.
[0091] In one optional implementation, the bypass data includes embedded data and user-defined data, the compressed video stream includes compressed video data, and an interface data packet includes: data packet information and / or one or more sub-data. The data packet information includes one or more of the following: a first identifier indicating the start of a frame, wherein a frame start is indicated when the first identifier is valid; a second identifier indicating the end of a frame, wherein a frame end is indicated when the second identifier is valid; a third identifier indicating that the data in the sub-data of the current interface data packet is compressed video data, wherein the data in the sub-data of the current interface data packet is compressed video data when the third identifier is valid; a fourth identifier indicating that the data in the sub-data of the current interface data packet is embedded data, wherein the data in the sub-data of the current interface data packet is embedded data when the fourth identifier is valid; a fifth identifier indicating that the data in the sub-data of the current interface data packet is user-defined data, wherein the data in the sub-data of the current interface data packet is user-defined data when the fifth identifier is valid; when the first or second identifier in the data packet information is valid, the interface data packet does not include sub-data, and when the third, fourth, or fifth identifier is valid, the interface data packet includes sub-data.
[0092] Only one of the first to fifth identifiers in the same data packet information can be valid. When the fourth identifier is valid, the data packet information also includes: a first field indicating the number of bytes of embedded data in the current line of the current frame in the video stream; when the fifth identifier is valid, the data packet information also includes: a second field indicating the number of bytes of user-defined data in the current line of the current frame in the video stream; and a third field indicating the data type of the user-defined data.
[0093] When the data in the sub-data of the current interface data packet is embedded data, each sub-data includes one or more embedded data. The data bit width of the sub-data is equal to M times the bit width of each embedded data, where M is a natural number greater than or equal to 2. M embedded data can fill a sub-data. When the remaining embedded data in the current row cannot fill a sub-data, the unfilled sub-data is filled with first invalid data to fill it. The first field is used to identify the first invalid data and embedded data in the sub-data.
[0094] When the data in the sub-data of the current interface data packet is user-defined data, each sub-data includes one or more pieces of user-defined data. The data bit width of the sub-data is equal to N times the bit width of each piece of user-defined data, where N is a natural number greater than or equal to 2. N pieces of embedded data fill one sub-data. When the remaining user-defined data in the current row cannot fill one sub-data, second invalid data is filled into the unfilled sub-data to fill it. The second field is used to identify the second invalid data and user-defined data in the sub-data.
[0095] When the data in the sub-data of the current interface data packet is compressed video data, each sub-data includes one or more compressed video data from the compressed video stream output by the compression module. The data bit width of each compressed video data is equal to the bit width of the compressed video stream output by the compression module. The data bit width in the sub-data is equal to X times the bit width of the compressed video stream, where X is a natural number greater than or equal to 2. X compressed video data from the compressed video stream fills one sub-data. If the remaining compressed video stream in each frame of the video stream fails to fill a sub-data, third invalid data is filled into the unfilled sub-data to fill it. When the data in the sub-data of the current interface data packet is compressed video data, the interface data packet also includes a sixth identifier, which is used to identify the compressed video data and the third invalid data in the sub-data.
[0096] In each packet interface clock cycle, a packet information, a sub-data, and / or a sixth identifier are transmitted in parallel through the packet interface transmission line. Each packet transmission cycle of the packet interface includes one or more packet interface clock cycles. In each packet transmission cycle of the packet interface, one interface packet is transmitted. In each packet transmission cycle of the packet interface, the packet information transmitted in multiple packet interface clock cycles is the same.
[0097] Step S402: Parse the interface data packets to obtain the video stream and bypass data; for details, please refer to step S302 of the above embodiment, which will not be repeated here.
[0098] Step S403: Determine whether the video stream is compressed or uncompressed based on the mode register. Specifically, a mode register can be set in the video receiver. After parsing the video stream, the video receiver can determine whether the video stream is compressed based on the mode register. The mode register can determine this based on the signal indicating whether the video is compressed sent by the video transmitter, or based on the format of the parsed video stream. This embodiment does not impose specific limitations on this.
[0099] Step S404: When it is determined that the video stream is a compressed video stream, a selector is used to guide the compressed video stream to the decompression channel; specifically, when it is determined that the video stream is a compressed video stream, a selector can be used to guide the compressed video stream to the decompression channel in the video receiver. The video stream is then decompressed in the decompression channel.
[0100] Step S405: When it is determined that the video stream is an uncompressed video stream, a selector is used to guide the uncompressed video stream to the undecompressed channel. Specifically, when it is determined that the video stream is an uncompressed video stream, a selector can be used to guide the video stream to the undecompressed channel in the video receiver for transmission. The undecompressed channel can directly transmit the video stream, that is, directly outputting the video stream and bypass data through the uncompressed channel.
[0101] Step S406: When the video stream is a compressed video stream, the compressed video stream is decompressed, and the decompressed video stream and bypass data are transmitted. For details, please refer to step S303 of the above embodiment, which will not be repeated here.
[0102] This embodiment provides a high-bandwidth video transmission system, such as Figure 7 As shown, the system includes a video transmitter and a video receiver.
[0103] The video transmitter is used to compress the video stream to obtain a compressed video stream when it is determined that the video stream should be compressed; it converts the compressed video stream and the bypass data matching the video stream into a series of interface data packets; the protocol adaptation layer converts the interface data packets into data of a predetermined protocol and transmits the data of the predetermined protocol.
[0104] The video receiver is used to receive data according to a predetermined protocol, convert the data into a series of interface data packets, parse the interface data packets to obtain the video stream and bypass data, and decompress the compressed video stream and transmit the decompressed video stream and bypass data when the video stream is compressed.
[0105] Specifically, such as Figure 7 As shown, in this embodiment, a mode register, selector, compressed channel and uncompressed channel are set at the transmitting end, and a mode register, selector, decompressed channel and uncompressed channel are set at the receiving end. The transmitting end receives the camera serial interface data stream (including video image data stream (referred to as video stream) and bypass data, the bypass data including embedded data stream or user-defined data stream), determines whether to compress the video stream through the mode register, and uses the selector to transmit it to the corresponding channel.
[0106] For example, when uncompression is selected, the selector transmits the camera serial interface data stream to the uncompressed channel, directly passing the camera serial interface data stream through to the protocol adaptation layer. When compression is selected, the selector transmits the camera serial interface data stream to the compression channel. The compression channel can be configured with a pre-compression module, a compression module, and a post-compression module. The pre-compression module performs preprocessing on the video image data and bypass data to be transmitted, such as noise reduction, sharpening, color space conversion, content adaptive analysis, slicing, and partitioning. The preprocessed bypass data is then sent directly to the post-compression module, and the preprocessed video stream is sent to the compression module for compression. The specific algorithms used for compression can be found in relevant technical implementations and will not be elaborated here. The compression module transmits the compressed video stream (i.e., the compressed stream) to the post-compression module, where the compressed video stream and bypass data are integrated and converted into interface data packets before being sent to the protocol adaptation layer.
[0107] The Protocol Adaptation Layer (PAL) receives the camera serial interface data stream transmitted through the tunnel, converts it into A-PHY protocol interface data, and then transmits it to the receiving PAL using the A-PHY protocol. The receiving PAL then converts the received A-PHY protocol interface data back into a camera serial interface data stream. Alternatively, the PAL can also receive interface data packets, convert them into A-PHY protocol interface data, and then transmit them to the receiving PAL using the A-PHY protocol. The receiving PAL then converts the received A-PHY protocol interface data back into interface data packets.
[0108] For the camera serial interface data stream or interface data packet obtained through the protocol adaptation layer at the receiving end, the mode register at the receiving end determines whether decompression is required. When decompression is required, the receiving end selector transmits the interface data packet to the decompression channel. The decompression channel can be configured with a pre-decompression module, a decompression module, and a post-decompression module. The pre-decompression module performs operations such as parsing the interface data packet, extracting the compressed video stream and bypass data contained within it, and directly sending the parsed bypass data to the post-decompression module. The parsed compressed video stream is then sent to the decompression module for decompression. The specific algorithms used for decompression can be found in relevant technical implementations and will not be elaborated here. The decompression module then transmits the decompressed video stream to the post-decompression module. When decompression is not required, the receiving end selector transmits the camera serial interface data stream to the uncompressed channel, directly transmitting the camera serial interface data stream to the post-decompression module. After decompression, the module receives the camera serial interface data stream or the decompressed video stream and bypass data, performs timing adjustment on it, that is, the adjusted data is consistent with the data received by the transmitting end, and then outputs the adjusted data.
[0109] This embodiment also provides a high-bandwidth video transmission device for implementing the above embodiments and preferred embodiments; details already described will not be repeated. As used below, the term "module" can refer to a combination of software and / or hardware that performs a predetermined function. Although the device described in the following embodiments is preferably implemented in software, hardware implementation, or a combination of software and hardware, is also possible and contemplated.
[0110] This embodiment provides a high-bandwidth video transmission device, such as... Figure 8 As shown, the device includes:
[0111] Compression module 81 is used to compress the video stream to obtain a compressed video stream when it is determined that the video stream needs to be compressed.
[0112] The first data packet interface 82 is used to convert the compressed video stream and the bypass data matched by the video stream into a series of interface data packets.
[0113] The first protocol adaptation layer 83 is used to convert interface data packets into data of a predetermined protocol and transmit the data of the predetermined protocol.
[0114] In one alternative embodiment, the device further includes:
[0115] The first mode register is used to determine whether to compress the video stream;
[0116] The first selector is used to direct the video stream and the bypass data matching the video stream directly to the uncompressed channel when it is determined that the video stream does not need to be compressed, and then transmit it to the protocol adaptation layer through the uncompressed channel.
[0117] The first selector is also used to direct the video stream and the bypass data matching the video stream to the compression channel when it is determined that the video stream should be compressed, and then transmit it to the data packet interface through the compression channel.
[0118] In one alternative implementation, the predetermined protocol is A-PHY or ASA-ML; the data packet interface includes: a bypass data buffer, wherein the bit width of the output data of the bypass data buffer is M times the bit width of the input data, where M is a natural number greater than or equal to 2, and the bypass data buffer outputs M copies of bypass data each time.
[0119] In one optional implementation, the bypass data includes embedded data and user-defined data, the compressed video stream includes compressed video data, and an interface data packet includes: data packet information and / or one or more sub-data. The data packet information includes one or more of the following: a first identifier indicating the start of a frame, wherein a frame start is indicated when the first identifier is valid; a second identifier indicating the end of a frame, wherein a frame end is indicated when the second identifier is valid; a third identifier indicating that the data in the sub-data of the current interface data packet is compressed video data, wherein the data in the sub-data of the current interface data packet is compressed video data when the third identifier is valid; a fourth identifier indicating that the data in the sub-data of the current interface data packet is embedded data, wherein the data in the sub-data of the current interface data packet is embedded data when the fourth identifier is valid; a fifth identifier indicating that the data in the sub-data of the current interface data packet is user-defined data, wherein the data in the sub-data of the current interface data packet is user-defined data when the fifth identifier is valid; when the first or second identifier in the data packet information is valid, the interface data packet does not include sub-data; when the third, fourth, or fifth identifier is valid, the interface data packet includes sub-data; only one of the first to fifth identifiers in the same data packet information can be valid.
[0120] When the fourth identifier is valid, the data packet information also includes: a first field indicating the number of bytes in the current line of embedded data; when the fifth identifier is valid, the data packet information also includes: a second field indicating the number of bytes in the current line of user-defined data; and a third field indicating the data type of user-defined data. When the data in the sub-data of the current interface data packet is embedded data, each sub-data includes one or more pieces of embedded data. The data bit width of the sub-data is equal to M times the bit width of each piece of embedded data, where M is a natural number greater than or equal to 2. M pieces of embedded data can fill a sub-data. When the remaining embedded data in the current line cannot fill a sub-data, the unfilled sub-data is filled with first invalid data to fill it. The first field is used to identify invalid data and embedded data in the sub-data.
[0121] When the data in the sub-data of the current interface data packet is user-defined data, each sub-data includes one or more pieces of user-defined data. The data bit width of the sub-data is equal to N times the bit width of each piece of user-defined data, where N is a natural number greater than or equal to 2. N pieces of embedded data fill one sub-data. When the remaining user-defined data in the current row cannot fill one sub-data, second invalid data is filled into the unfilled sub-data to fill it. The second field is used to identify the second invalid data and user-defined data in the sub-data.
[0122] When the data in the sub-data of the current interface data packet is compressed video data, each sub-data includes one or more compressed video data from the compressed video stream output by the compression module. The data bit width of each compressed video data is equal to the bit width of the compressed video stream output by the compression module. The data bit width in the sub-data is equal to X times the bit width of the compressed video stream output by the compression module, where X is a natural number greater than or equal to 2. X compressed video data from the compressed video stream output by the compression module fills one sub-data. When the remaining compressed video stream at the end of each frame of the video stream fails to fill a sub-data, third invalid data is filled into the unfilled sub-data to fill it. When the data in the sub-data of the current interface data packet is compressed video data, the interface data packet also includes a sixth identifier, which is used to identify the compressed video data and the third invalid data in the sub-data.
[0123] In each packet interface clock cycle, a packet information, a sub-data, and / or a sixth identifier are transmitted in parallel through the packet interface transmission line. Each packet transmission cycle of the packet interface includes one or more packet interface clock cycles. In each packet transmission cycle of the packet interface, one interface packet is transmitted. In each packet transmission cycle of the packet interface, the packet information transmitted in multiple packet interface clock cycles is the same.
[0124] This embodiment provides a high-bandwidth video transmission device, such as... Figure 9 As shown, the device includes:
[0125] The second protocol adaptation layer 91 is used to receive data from a predetermined protocol and convert the data into a series of interface data packets;
[0126] The second data packet interface 92 is used to parse interface data packets to obtain video streams and bypass data;
[0127] The decompression module 93 is used to decompress the compressed video stream when the video stream is a compressed video stream, and to transmit the decompressed video stream and bypass data.
[0128] In one alternative embodiment, the device further includes:
[0129] The second mode register is used to determine whether the video stream is a compressed video stream or an uncompressed video stream.
[0130] The second selector is used to direct the compressed video stream to the decompression channel when it is determined that the video stream is a compressed video stream, and then transmit it to the decompression module through the decompression channel.
[0131] The second selector is also used to direct the uncompressed video stream to the undecompressed channel for transmission when it is determined that the video stream is an uncompressed video stream.
[0132] In one optional implementation, the bypass data includes embedded data and user-defined data, the compressed video stream includes compressed video data, and an interface data packet includes: data packet information and / or one or more sub-data. The data packet information includes one or more of the following: a first identifier indicating the start of a frame, wherein a frame start is indicated when the first identifier is valid; a second identifier indicating the end of a frame, wherein a frame end is indicated when the second identifier is valid; a third identifier indicating that the data in the sub-data of the current interface data packet is compressed video data, wherein the data in the sub-data of the current interface data packet is compressed video data when the third identifier is valid; a fourth identifier indicating that the data in the sub-data of the current interface data packet is embedded data, wherein the data in the sub-data of the current interface data packet is embedded data when the fourth identifier is valid; a fifth identifier indicating that the data in the sub-data of the current interface data packet is user-defined data, wherein the data in the sub-data of the current interface data packet is user-defined data when the fifth identifier is valid; when the first or second identifier in the data packet information is valid, the interface data packet does not include sub-data, and when the third, fourth, or fifth identifier is valid, the interface data packet includes sub-data.
[0133] Only one of the first to fifth identifiers in the same data packet is valid. When the fourth identifier is valid, the data packet also includes: a first field indicating the number of bytes in the current line of embedded data; when the fifth identifier is valid, the data packet also includes: a second field indicating the number of bytes in the current line of user-defined data; and a third field indicating the data type of user-defined data.
[0134] When the data in the sub-data of the current interface data packet is embedded data, each sub-data includes one or more embedded data. The data bit width of the sub-data is equal to M times the bit width of each embedded data, where M is a natural number greater than or equal to 2. M embedded data can fill a sub-data. When the remaining embedded data in the current row cannot fill a sub-data, the unfilled sub-data is filled with first invalid data to fill it. The first field is used to identify the first invalid data and embedded data in the sub-data.
[0135] When the data in the sub-data of the current interface data packet is user-defined data, each sub-data includes one or more pieces of user-defined data. The data bit width of the sub-data is equal to N times the bit width of each piece of user-defined data, where N is a natural number greater than or equal to 2. N pieces of embedded data fill one sub-data. When the remaining user-defined data in the current row cannot fill one sub-data, second invalid data is filled into the unfilled sub-data to fill it. The second field is used to identify the second invalid data and user-defined data in the sub-data.
[0136] When the data in the sub-data of the current interface data packet is compressed video data, each sub-data includes one or more compressed video data from the compressed video stream output by the compression module. The data bit width of each compressed video data is equal to the bit width of the compressed video stream output by the compression module. The data bit width in the sub-data is equal to X times the bit width of the compressed video stream, where X is a natural number greater than or equal to 2. X compressed video data from the compressed video stream fills one sub-data. If the remaining compressed video stream in each frame of the video stream fails to fill a sub-data, third invalid data is filled into the unfilled sub-data to fill it. When the data in the sub-data of the current interface data packet is compressed video data, the interface data packet also includes a sixth identifier, which is used to identify the compressed video data and the third invalid data in the sub-data.
[0137] In each packet interface clock cycle, a packet information, a sub-data, and / or a sixth identifier are transmitted in parallel through the packet interface transmission line. Each packet transmission cycle of the packet interface includes one or more packet interface clock cycles. In each packet transmission cycle of the packet interface, one interface packet is transmitted. In each packet transmission cycle of the packet interface, the packet information transmitted in multiple packet interface clock cycles is the same.
[0138] This invention also provides a computer device having the above-described features. Figure 8 or Figure 9 The video image high-bandwidth transmission device shown is shown.
[0139] Please see Figure 10 , Figure 10 This is a schematic diagram of the structure of a computer device provided in an optional embodiment of the present invention, such as... Figure 10 As shown, the computer device includes one or more processors 10, memory 20, and interfaces for connecting the components, including high-speed interfaces and low-speed interfaces. The components communicate with each other via different buses and can be mounted on a common motherboard or otherwise installed as needed. The processors can process instructions executed within the computer device, including instructions stored in or on memory to display graphical information of a GUI on external input / output devices (such as display devices coupled to the interfaces). In some alternative implementations, multiple processors and / or multiple buses can be used with multiple memories and multiple memory modules, if desired. Similarly, multiple computer devices can be connected, each providing some of the necessary operations (e.g., as a server array, a group of blade servers, or a multiprocessor system). Figure 10 Take a processor 10 as an example.
[0140] Processor 10 may be a central processing unit, a network processor, or a combination thereof. Processor 10 may further include a hardware chip. The hardware chip may be an application-specific integrated circuit (ASIC), a programmable logic device (PLD), or a combination thereof. The programmable logic device may be a complex programmable logic device (CAMP), a field-programmable gate array (FPGA), a general-purpose array logic (GDA), or any combination thereof.
[0141] The memory 20 stores instructions executable by at least one processor 10 to cause at least one processor 10 to execute the system shown in the above embodiments.
[0142] The memory 20 may include a program storage area and a data storage area. The program storage area may store the operating system and applications required for at least one function; the data storage area may store data created based on the use of the computer device as shown by a landing page for an app. Furthermore, the memory 20 may include high-speed random access memory and may also include non-transitory memory, such as at least one disk storage device, flash memory device, or other non-transitory solid-state storage device. In some alternative embodiments, the memory 20 may optionally include memory remotely located relative to the processor 10, which can be connected to the computer device via a network. Examples of such networks include, but are not limited to, the Internet, intranets, local area networks, mobile communication networks, and combinations thereof.
[0143] The memory 20 may include volatile memory, such as random access memory; the memory may also include non-volatile memory, such as flash memory, hard disk or solid-state drive; the memory 20 may also include a combination of the above types of memory.
[0144] The computer device also includes a communication interface 30 for communicating with other devices or communication networks.
[0145] This invention also provides a computer-readable storage medium. The system described above according to embodiments of the invention can be implemented in hardware or firmware, or implemented as computer code that can be recorded on a storage medium, or implemented as computer code downloaded via a network and originally stored on a remote storage medium or a non-transitory machine-readable storage medium and then stored on a local storage medium. Thus, the system described herein can be processed by software stored on a storage medium using a general-purpose computer, a dedicated processor, or programmable or dedicated hardware. The storage medium can be a magnetic disk, optical disk, read-only memory, random access memory, flash memory, hard disk, or solid-state drive, etc.; further, the storage medium can also include combinations of the above types of memory. It is understood that a computer, processor, microprocessor controller, or programmable hardware includes storage components capable of storing or receiving software or computer code. When the software or computer code is accessed and executed by the computer, processor, or hardware, the system shown in the above embodiments is implemented.
[0146] A portion of this invention can be applied as a computer program product, such as computer program instructions, which, when executed by a computer, can invoke or provide the system and / or technical solutions according to the invention through the operation of the computer. Those skilled in the art will understand that the forms in which computer program instructions exist in a computer-readable medium include, but are not limited to, source files, executable files, installation package files, etc. Correspondingly, the ways in which computer program instructions are executed by a computer include, but are not limited to: the computer directly executing the instructions, or the computer compiling the instructions and then executing the corresponding compiled program, or the computer reading and executing the instructions, or the computer reading and installing the instructions and then executing the corresponding installed program. Here, the computer-readable medium can be any available computer-readable storage medium or communication medium accessible to a computer.
[0147] Although embodiments of the invention have been described in conjunction with the accompanying drawings, those skilled in the art can make various modifications and variations without departing from the spirit and scope of the invention, and such modifications and variations all fall within the scope defined by the appended claims.
Claims
1. A method for high-bandwidth video transmission, characterized in that, It includes: When it is determined that the video stream should be compressed, the video stream is compressed to obtain a compressed video stream; The compressed video stream and the bypass data matched by the video stream are converted into a series of interface data packets; The interface data packet is converted into data according to a predetermined protocol, and the data according to the predetermined protocol is transmitted. The bypass data includes embedded data and user-defined data; the compressed video stream includes compressed video data; and an interface data packet includes: data packet information and / or one or more sub-data. The data packet information includes: The first identifier indicates the start of a frame, where a valid first identifier indicates the start of a frame. A second identifier indicating the end of a frame, wherein the end of a frame is indicated when the second identifier is valid; The third identifier indicates that the data in the sub-data of the current interface data packet is compressed video data. When the third identifier is valid, it indicates that the data in the sub-data of the current interface data packet is compressed video data. The fourth identifier indicates that the data in the sub-data of the current interface data packet is embedded data. When the fourth identifier is valid, it indicates that the data in the sub-data of the current interface data packet is embedded data. The fifth identifier indicates that the data in the sub-data of the current interface data packet is user-defined data. When the fifth identifier is valid, it means that the data in the sub-data of the current interface data packet is user-defined data. When the first or second identifier in the data packet information is valid, the interface data packet does not include sub-data; when the third, fourth, or fifth identifier is valid, the interface data packet includes sub-data. Only one of the first to fifth identifiers in the same data packet is valid.
2. The method according to claim 1, characterized in that: Before compressing the video stream to obtain a compressed video stream, it also includes: Determine whether to compress the video stream; If it is determined that the video stream will not be compressed, the video stream and the bypass data matching the video stream are converted into data according to a predetermined protocol and the data according to the predetermined protocol is transmitted.
3. The method according to claim 2, characterized in that: The predetermined protocol is A-PHY or ASA-ML; Determining whether to compress the video stream includes: Whether to compress the video stream is determined based on the data in the mode register; When it is determined that the video stream will not be compressed, a selector is used to directly guide the video stream and the bypass data matching the video stream to the uncompressed channel; When determining whether to compress the video stream, the selector is used to direct the video stream and the bypass data matching the video stream to the compression channel.
4. The method according to claim 1, characterized in that: When the fourth identifier is valid, the data packet information also includes: The first field indicating the number of bytes in the current row of embedded data; When the fifth identifier is valid, the data packet information also includes: The second field represents the number of bytes in the current row of user-defined data; and The third field indicates the data type of the user-defined data.
5. The method according to claim 4, characterized in that: When the data in the sub-data of the current interface data packet is embedded data, each sub-data includes one or more pieces of embedded data. The data bit width of the sub-data is equal to M times the bit width of each embedded data, where M is a natural number greater than or equal to 2. M embedded data can fill one sub-data. When the remaining embedded data in the current row cannot fill a sub-data, first invalid data is filled into the unfilled sub-data to fill it. The first field is used to identify the first invalid data and embedded data in the sub-data. When the data in the sub-data of the current interface data packet is user-defined data, each sub-data includes one or more pieces of user-defined data. The data bit width of the sub-data is equal to N times the bit width of each piece of user-defined data, where N is a natural number greater than or equal to 2. N pieces of embedded data fill one sub-data. When the remaining user-defined data in the current row cannot fill a sub-data, a second invalid data is filled into the unfilled sub-data to fill it. The second field is used to identify the second invalid data and user-defined data in the sub-data.
6. The method according to claim 1, characterized in that: When the data in the sub-data of the current interface data packet is compressed video data, each sub-data includes one or more compressed video data in the compressed video stream, and the data bit width of each compressed video data is equal to the bit width of the compressed video stream.
7. The method according to claim 6, characterized in that: The data bit width in the sub-data is equal to X times the bit width of the compressed video stream, where X is a natural number greater than or equal to 2. The X copies of compressed video data in the compressed video stream fill a sub-data. If the remaining compressed video stream in each frame of the video stream fails to fill a sub-data, a third invalid data is filled into the unfilled sub-data to fill it; When the data in the sub-data of the current interface data packet is compressed video data, the interface data packet also includes a sixth identifier, which is used to identify the compressed video data and the third invalid data in the sub-data.
8. The method according to claim 1, characterized in that: In each packet interface clock cycle, one packet of information, one sub-data, and / or one sixth identifier are transmitted in parallel through the packet interface transmission line. Each data packet transmission cycle of the data packet interface includes one or more data packet interface clock cycles, during which one interface data packet is transmitted. In each data packet transmission cycle of the data packet interface, the data packet information transmitted by multiple data packet interface clock cycles is the same.
9. The method according to claim 8, characterized in that: The number of sub-data items in data packets from different interfaces can be set to be the same or different.
10. A method for high-bandwidth video transmission, characterized in that, It includes: Receive data according to a predetermined protocol and convert the data according to the predetermined protocol into a series of interface data packets; The interface data packets are parsed to obtain the video stream and bypass data; When the video stream is a compressed video stream, the compressed video stream is decompressed, and the decompressed video stream and bypass data are transmitted. The bypass data includes embedded data and user-defined data; the compressed video stream includes compressed video data; and an interface data packet includes: data packet information and / or one or more sub-data. The data packet information includes: The first identifier indicates the start of a frame, where a valid first identifier indicates the start of a frame. A second identifier indicating the end of a frame, wherein the end of a frame is indicated when the second identifier is valid; The third identifier indicates that the data in the sub-data of the current interface data packet is compressed video data. When the third identifier is valid, it indicates that the data in the sub-data of the current interface data packet is compressed video data. The fourth identifier indicates that the data in the sub-data of the current interface data packet is embedded data. When the fourth identifier is valid, it indicates that the data in the sub-data of the current interface data packet is embedded data. The fifth identifier indicates that the data in the sub-data of the current interface data packet is user-defined data. When the fifth identifier is valid, it means that the data in the sub-data of the current interface data packet is user-defined data. When the first or second identifier in the data packet information is valid, the interface data packet does not include sub-data; when the third, fourth, or fifth identifier is valid, the interface data packet includes sub-data. Only one of the first to fifth identifiers in the same data packet is valid.
11. The high-bandwidth video transmission method according to claim 10, characterized in that, The predetermined protocol is A-PHY or ASA-ML. When the video stream is a compressed video stream, before decompressing the compressed video stream, it further includes: The mode register determines whether the video stream is a compressed video stream or an uncompressed video stream. When the video stream is determined to be a compressed video stream, a selector is used to guide the compressed video stream to the decompression channel; When it is determined that the video stream is an uncompressed video stream, a selector is used to guide the uncompressed video stream to an undecompressed channel.
12. The high-bandwidth video transmission method according to claim 10, characterized in that, When the fourth identifier is valid, the data packet information also includes: The first field indicating the number of bytes in the current row of embedded data; When the fifth identifier is valid, the data packet information also includes: The second field represents the number of bytes in the current row of user-defined data; and The third field indicates the data type of the user-defined data; When the data in the sub-data of the current interface data packet is embedded data, each sub-data includes one or more pieces of embedded data. The data bit width of the sub-data is equal to M times the bit width of each embedded data, where M is a natural number greater than or equal to 2. M embedded data can fill one sub-data. When the remaining embedded data in the current row cannot fill a sub-data, first invalid data is filled into the unfilled sub-data to fill it. The first field is used to identify the first invalid data and embedded data in the sub-data. When the data in the sub-data of the current interface data packet is user-defined data, each sub-data includes one or more pieces of user-defined data. The data bit width of the sub-data is equal to N times the bit width of each piece of user-defined data, where N is a natural number greater than or equal to 2. N pieces of embedded data fill one sub-data. When the remaining user-defined data in the current row cannot fill a sub-data, second invalid data is filled into the unfilled sub-data to fill it. The second field is used to identify the second invalid data and user-defined data in the sub-data. When the data in the sub-data of the current interface data packet is compressed video data, each sub-data includes one or more compressed video data in the compressed video stream output by the compression module, and the data bit width of each compressed video data is equal to the bit width of the compressed video stream output by the compression module. The data bit width in the sub-data is equal to X times the bit width of the compressed video stream, where X is a natural number greater than or equal to 2. The X copies of compressed video data in the compressed video stream fill a sub-data. If the remaining compressed video stream in each frame of the video stream fails to fill a sub-data, a third invalid data is filled into the unfilled sub-data to fill it; When the data in the sub-data of the current interface data packet is compressed video data, the interface data packet also includes a sixth identifier, which is used to identify the compressed video data and the third invalid data in the sub-data.
13. The method according to claim 12, characterized in that: In each packet interface clock cycle, one packet of information, one sub-data, and / or one sixth identifier are transmitted in parallel through the packet interface transmission line. Each data packet transmission cycle of the data packet interface includes one or more data packet interface clock cycles, during which one interface data packet is transmitted. In each data packet transmission cycle of the data packet interface, the data packet information transmitted by multiple data packet interface clock cycles is the same.
14. A high-bandwidth video transmission device, characterized in that, It includes: A compression module is used to compress the video stream to obtain a compressed video stream when it is determined that the video stream needs to be compressed. The first data packet interface is used to convert the compressed video stream and the bypass data matched by the video stream into a series of interface data packets; A first protocol adaptation layer is used to convert the interface data packets into data of a predetermined protocol and transmit the data of the predetermined protocol; The bypass data includes embedded data and user-defined data; the compressed video stream includes compressed video data; and an interface data packet includes: data packet information and / or one or more sub-data. The data packet information includes: The first identifier indicates the start of a frame, where a valid first identifier indicates the start of a frame. A second identifier indicating the end of a frame, wherein the end of a frame is indicated when the second identifier is valid; The third identifier indicates that the data in the sub-data of the current interface data packet is compressed video data. When the third identifier is valid, it indicates that the data in the sub-data of the current interface data packet is compressed video data. The fourth identifier indicates that the data in the sub-data of the current interface data packet is embedded data. When the fourth identifier is valid, it indicates that the data in the sub-data of the current interface data packet is embedded data. The fifth identifier indicates that the data in the sub-data of the current interface data packet is user-defined data. When the fifth identifier is valid, it means that the data in the sub-data of the current interface data packet is user-defined data. When the first or second identifier in the data packet information is valid, the interface data packet does not include sub-data; when the third, fourth, or fifth identifier is valid, the interface data packet includes sub-data. Only one of the first to fifth identifiers in the same data packet is valid.
15. The apparatus according to claim 14, characterized in that: It also includes: A first mode register is used to determine whether the video stream should be compressed; A first selector is used to direct the video stream and the bypass data matching the video stream directly to the uncompressed channel when it is determined that compression of the video stream is not required, and then transmit the uncompressed channel to the protocol adaptation layer. The first selector is also used to, when it is determined that the video stream is to be compressed, direct the video stream and the bypass data matching the video stream to the compression channel, through which the compression channel is transmitted to the data packet interface; The predetermined protocol is A-PHY or ASA-ML; The data packet interface includes: a bypass data buffer. The bit width of the output data of the bypass data buffer is M times the bit width of the input data, where M is a natural number greater than or equal to 2. The bypass data buffer outputs M copies of bypass data each time.
16. The apparatus according to claim 14, characterized in that: When the fourth identifier is valid, the data packet information also includes: The first field indicating the number of bytes in the current row of embedded data; When the fifth identifier is valid, the data packet information also includes: The second field represents the number of bytes in the current row of user-defined data; and The third field indicates the data type of the user-defined data. When the data in the sub-data of the current interface data packet is embedded data, each sub-data includes one or more pieces of embedded data. The data bit width of the sub-data is equal to M times the bit width of each embedded data, where M is a natural number greater than or equal to 2. M embedded data can fill one sub-data. When the remaining embedded data in the current row cannot fill a sub-data, first invalid data is filled into the unfilled sub-data to fill it. The first field is used to identify invalid data and embedded data in the sub-data. When the data in the sub-data of the current interface data packet is user-defined data, each sub-data includes one or more pieces of user-defined data. The data bit width of the sub-data is equal to N times the bit width of each piece of user-defined data, where N is a natural number greater than or equal to 2. N pieces of embedded data fill one sub-data. If the remaining user-defined data in the current row cannot fill a sub-data set, then fill the unfilled sub-data set with second invalid data to fill it. The second field is used to identify the second invalid data and user-defined data in the sub-data set. When the data in the sub-data of the current interface data packet is compressed video data, each sub-data includes one or more compressed video data from the compressed video stream output by the compression module, and the data bit width of each compressed video data is equal to the bit width of the compressed video stream output by the compression module. The data bit width in the sub-data is equal to X times the bit width of the compressed video stream output by the compression module, where X is a natural number greater than or equal to 2. The compressed video stream output by the compression module contains X copies of compressed video data that fill a sub-data set. When the remaining compressed video stream fails to fill a sub-data when each frame of the video stream is about to end, a third invalid data is filled into the unfilled sub-data to fill it; When the data in the sub-data of the current interface data packet is compressed video data, the interface data packet also includes a sixth identifier, which is used to identify compressed video data and third invalid data in the sub-data; In each packet interface clock cycle, one packet of information, one sub-data, and / or one sixth identifier are transmitted in parallel through the packet interface transmission line. Each data packet transmission cycle of the data packet interface includes one or more data packet interface clock cycles, during which one interface data packet is transmitted. In each data packet transmission cycle of the data packet interface, the data packet information transmitted by multiple data packet interface clock cycles is the same.
17. A high-bandwidth video transmission device, characterized in that, It includes: The second protocol adaptation layer is used to receive data from a predetermined protocol and convert the data from the predetermined protocol into a series of interface data packets; The second data packet interface is used to parse the data packets of the interface to obtain the video stream and bypass data; A decompression module is used to decompress the compressed video stream when the video stream is a compressed video stream, and to transmit the decompressed video stream and bypass data; The bypass data includes embedded data and user-defined data; the compressed video stream includes compressed video data; and an interface data packet includes: data packet information and / or one or more sub-data. The data packet information includes: The first identifier indicates the start of a frame, where a valid first identifier indicates the start of a frame. A second identifier indicating the end of a frame, wherein the end of a frame is indicated when the second identifier is valid; The third identifier indicates that the data in the sub-data of the current interface data packet is compressed video data. When the third identifier is valid, it indicates that the data in the sub-data of the current interface data packet is compressed video data. The fourth identifier indicates that the data in the sub-data of the current interface data packet is embedded data. When the fourth identifier is valid, it indicates that the data in the sub-data of the current interface data packet is embedded data. The fifth identifier indicates that the data in the sub-data of the current interface data packet is user-defined data. When the fifth identifier is valid, it means that the data in the sub-data of the current interface data packet is user-defined data. When the first or second identifier in the data packet information is valid, the interface data packet does not include sub-data; when the third, fourth, or fifth identifier is valid, the interface data packet includes sub-data. Only one of the first to fifth identifiers in the same data packet is valid.
18. The high-bandwidth video transmission device according to claim 17, characterized in that, It also includes: The second mode register is used to determine whether the video stream is a compressed video stream or an uncompressed video stream; The second selector is used to direct the compressed video stream to the decompression channel when it is determined that the video stream is a compressed video stream, and then transmit it to the decompression module through the decompression channel. The second selector is also used to direct the uncompressed video stream to an undecompressed channel for transmission when it is determined that the video stream is an uncompressed video stream; When the fourth identifier is valid, the data packet information also includes: The first field indicating the number of bytes in the current row of embedded data; When the fifth identifier is valid, the data packet information also includes: The second field represents the number of bytes in the current row of user-defined data; and The third field indicates the data type of the user-defined data; When the data in the sub-data of the current interface data packet is embedded data, each sub-data includes one or more pieces of embedded data. The data bit width of the sub-data is equal to M times the bit width of each embedded data, where M is a natural number greater than or equal to 2. M embedded data can fill one sub-data. When the remaining embedded data in the current row cannot fill a sub-data, first invalid data is filled into the unfilled sub-data to fill it. The first field is used to identify the first invalid data and embedded data in the sub-data. When the data in the sub-data of the current interface data packet is user-defined data, each sub-data includes one or more pieces of user-defined data. The data bit width of the sub-data is equal to N times the bit width of each piece of user-defined data, where N is a natural number greater than or equal to 2. N pieces of embedded data fill one sub-data. When the remaining user-defined data in the current row cannot fill a sub-data, second invalid data is filled into the unfilled sub-data to fill it. The second field is used to identify the second invalid data and user-defined data in the sub-data. When the data in the sub-data of the current interface data packet is compressed video data, each sub-data includes one or more compressed video data in the compressed video stream output by the compression module, and the data bit width of each compressed video data is equal to the bit width of the compressed video stream output by the compression module. The data bit width in the sub-data is equal to X times the bit width of the compressed video stream, where X is a natural number greater than or equal to 2. The X copies of compressed video data in the compressed video stream fill a sub-data. If the remaining compressed video stream in each frame of the video stream fails to fill a sub-data, a third invalid data is filled into the unfilled sub-data to fill it; When the data in the sub-data of the current interface data packet is compressed video data, the interface data packet also includes a sixth identifier, which is used to identify compressed video data and third invalid data in the sub-data; In each packet interface clock cycle, one packet of information, one sub-data, and / or one sixth identifier are transmitted in parallel through the packet interface transmission line. Each data packet transmission cycle of the data packet interface includes one or more data packet interface clock cycles, during which one interface data packet is transmitted. In each data packet transmission cycle of the data packet interface, the data packet information transmitted by multiple data packet interface clock cycles is the same.
19. A high-bandwidth video transmission system, characterized in that, It includes: The video transmitting end is the high-bandwidth video transmission device as described in any one of claims 14-16; The video receiver is a high-bandwidth video transmission device as described in any one of claims 17-18.
20. A computer device, characterized in that, include: A memory and a processor are communicatively connected, the memory stores computer instructions, and the processor executes the computer instructions to perform the high-bandwidth video transmission method of any one of claims 1 to 9 or any one of claims 10 to 13.
Citation Information
Patent Citations
Image sensor, data processing device, and image sensor system
WO2024209994A1