The present invention relates in general to video transmission, and in particular, to isochronous video stream management in a high speed audio/video network.
Increasing multimedia content, and specially high quality multimedia content, presents a number of communication and processing challenges to designers and administrators of computing platforms and networks alike. A number of standards have been developed for transporting high quality multimedia data. For example, DisplayPort (DP) standard and Digital Interactive Interface for Video and Audio (DiiVA) support high quality multimedia data transportation. In such standards, however, it is not possible to transmit auxiliary data over a main video channel.
The present invention relates to data communication between audio/video (AV) devices. In one embodiment, communication between AV devices includes establishing an AV path stream for AV data streaming between a source AV device and a destination AV device, wherein each AV device includes one or more I/O ports for connecting the AV device to another AV device via a communication link including multiple communication lanes. Asynchronous and isochronous AV data is multiplexed for transmission via one or more fixed length data cells, each data cell capable of carrying one or more of: an asynchronous data symbol and an isochronous data symbol. Multiplexing includes selectively mapping asynchronous data onto isochronous symbols for transmission during a video blanking period. One or more data cells are transmitted from a physical layer of the source AV device to the destination AV device, via one or more communication lanes.
These and other features, aspects and advantages of the present invention will become understood with reference to the following description, appended claims and accompanying figures.
Embodiments of the invention relate to transmission of asynchronous and isochronous data in a high speed video network. In one embodiment the invention provides asynchronous data transmission during reserved isochronous characters when the reserved characters do not carry any useful audio/video (AV) data during video blanking periods. Embodiments of the invention allow selectively mapping asynchronous data over reserved isochronous characters.
Video data transmission occurs during a reserved isochronous period. The isochronous period includes active video pixel period in addition to video blanking periods. As asynchronous data is multiplexed with isochronous data on the same lane, embodiments of the invention use the blanking periods for selectively transmitting useful data such as asynchronous data.
In one embodiment of the invention, a physical communication medium/link between two physical devices (such as a source device and a sink device in a video network) is represented as a continuous flow of N-character long units (i.e., Rubicles), wherein certain characters are reserved for carrying video data (i.e., isochronous characters). When no active video is transmitted during a video blanking period, the reserved but free isochronous characters are used to transmit asynchronous data.
Asynchronous data during isochronous blanking periods can be transmitted between two devices which are different from the devices that have reserved the isochronous characters. Any intermediate device on a communication path from the source device to the sink device can use these free isochronous characters.
According to embodiments of the invention, each said interface may provide a physical connection in between devices to enable bi-directional communication of multimedia traffic (e.g., compressed or uncompressed AV data), management data and bulk data traffic. As shown in
In one embodiment of the invention, the network 10 comprises a switched network that provide bi-directional transmission of uncompressed video and audio data between a source device 11 (e.g., a DVD player) and a sink device 11 (e.g., display monitor), across a communication link. In one embodiment of the invention, each lane 13 may support 5 Gbps, and therefore a total of 20 Gbps over the four lanes 13. In another embodiment, more than four lanes 13 are supported on a port. In another embodiment, in order to provide bi-directional communication, at most 15 Gbps can be supported in one direction, thus leaving one lane for the reverse direction traffic.
Embodiments of the invention provide bi-directional support for AV streaming such that two out of total four lanes 13 are dynamically configured in a Transmit mode and the other two lanes are configured in a Receive mode, such that simultaneous transmission of audio and video becomes feasible.
In one embodiment of the invention, both video and audio data from a source device may pass through other devices on a communication link between the source and sink device, before reaching a sink device. For example, in a multi-hop scenario such as illustrated by a switched network 20 of serially connected AV devices 11 shown in
Video data can have a pixel size of, for example, 18, 24, 30, 36 or 48 bits. At a minimum, video resolution will support resolutions from VGA (640x480) to 1080p (1920x1080) depending on capabilities of a display device at the sink device.
In one embodiment of the invention, the lanes 13 used for transferring AV information may also be used for transferring large data files from the source device X to the sink device Y (e.g., destination device). This is achieved by multiplexing AV, control, and data over the lanes 13. For bulk data, serial bus (USB) or Ethernet data packets can be sent directly through the lanes 13. When USB or Ethernet protocol is not available, an application can send data as a generic data packet as well.
According to an embodiment of the invention, AV data transmission involves end-to-end resource allocation (e.g., ports, lanes, communication link channel time) between a source device and a sink device. For example, in
Referring to
According to an embodiment of the invention, channel time may be represented as a contiguous contention free period 28 on the channel, as shown by example in
According to an embodiment of the invention, in an AV network the source device 11 (e.g., Source-1) is preferred to initiate a video path setup request (control message) as it has accurate information about the bandwidth requirement of an isochronous stream. The video path setup request includes a stream or sequence number to distinguish different video path setup requests generated by the source device. In one embodiment, the stream or sequence number may be maintained as a 16-bit or 32-bit counter in the source device such that each new video path setup request initiated by the source device has a different value.
Each AV device 11 in the video network maintains the stream index that can be represented as a combination of {Source address, Destination address, media access control (MAC) address of the device initiating the video-path-setup request, and stream number or sequence number}, wherein MAC comprises medium access control information. Based on these values, each AV device 11 can distinguish between different stream indices. The stream index is a local variable in each AV device that is not shared with other AV devices in the AV network. According to an embodiment of the invention, a mapping table 11F (
Further, as shown by the example Table 2 below, a mapping table for an AV device (i.e., devices 11 in
Referring to
In an AV path stream setup process, according to an embodiment of the invention, isochronous video stream connection setup begins when a stream controller device 11A transmits an Initiate connection control message that may be transmitted (e.g., over Layer 4 (
Once a video stream is established, a video forwarding sub-table is accessed for switching and forwarding of uncompressed video data. Each AV device can appropriately forward received video data on a corresponding port and lane to its downstream device. In one embodiment, the uncompressed video frames do not contain source and destination addresses such that the received video data is correctly forwarded on the downstream port based on the video forwarding sub-table. The video forwarding sub-table entries remain valid until a video-path setup control message with the matching sequence number is received to delete the allocation.
The controller device terminates the connection by sending a Terminate connection control message on Layer 4 (
In
According to an embodiment of the invention, the AV transmitter PHY layer is configured to continuously transmit a fixed length of N-character data units referred to herein as Rubicles. Each Rubicle comprises a N-character data cell that may contain a combination of zero or more asynchronous and/or isochronous characters (symbols). As such, each Rubicle that is transmitted may contain no asynchronous or isochronous characters, or it may contain one or more asynchronous and/or isochronous characters.
Isochronous data is mapped onto isochronous characters and asynchronous data is mapped onto asynchronous characters in one or more Rubicles. Embodiments of the invention allow multiplexing of such asynchronous and isochronous characters for isochronous data streaming in an AV network. In one example, a PHY communication channel is represented as a continuous flow of N-character long Rubicles. The mapping of a PPDU, carrying asynchronous data, at the RUBI PHY may follow either Serial or Parallel mapping mode. According to an embodiment of the invention, the mapping of the PPDU is implemented at the PHY layer of a transmitting AV device (such utilizing a mapping module), and reconstruction of PPDU is implemented at the PHY layer of a receiving AV device (such as using a reconstruction module). Embodiments of the present invention can be implemented as one or more modules 11H in Layer 1 and/or Layer 2 in
In the Serial mapping mode, a new PPDU is mapped to Rubicles on all available lanes in a round-robin fashion, starting from the first available Rubicle on a lane. A lane that is not available is skipped. In the Parallel mode, a new PPDU is mapped to Rubicles on the next available lane such that all fragments of the PPDU are then mapped to the same lane. As such, multiple PPDUs can be served (or mapped to the Rubicles) in parallel. In the Serial mapping mode, a PPDU can not be served while the PPDU currently mapped is not completed. In either mode, a RUBI L2 header is not repeated for each PPDU.
A Rubicle is utilized for multiplexing of asynchronous and isochronous data within a single Rubicle. According to embodiments of the invention, packet-based asynchronous data is utilized, wherein a PPDU is fragmented across multiple Rubicles for transmission from an AV transmitter to an AV receiver over a communication link. Embodiments of the invention support asynchronous data transmission without increasing AV device FIFO (first-in-first-out) buffer size because multiple isochronous data streams are simultaneously multiplexed. The isochronous streams are continuously transmitted without buffering. Any unused characters in Rubicles are dynamically used for asynchronous data, which further lowers buffering at the AV transmitter. Embodiments of the invention further provide flexible multiplexing of asynchronous and isochronous data to improve the overall system efficiency, and support asynchronous data without a dedicated communication channel over the communication links.
In one embodiment, the present invention provides character (symbol)-based multiplexing wherein Rubicles are of a fixed length. As such, even in the absence of any asynchronous or isochronous data, packets are continuously transmitted. Said RUBI L2 header is only used in the very first PPDU fragment, and subsequent PPDU fragments do not carry the RUBI L2 header. One MSDU is fragmented across multiple PPDUs without the need for indication bits in the PPDU or MPDU.
Each Rubicle 88 comprises a data cell including zero or more asynchronous and isochronous characters. In each Rubicle 88, isochronous data is mapped onto isochronous characters and asynchronous data is mapped onto asynchronous characters, as shown in
In one embodiment, isochronous data is reserved using a stream/path set-up scheme. Therefore, in a Rubicle 88 reserved characters belong to isochronous data or stream. As shown in
In one implementation, asynchronous data and isochronous data (e.g., generated by application layer or transport layer) are mapped to the fixed length Rubicles 88. The location of isochronous characters in a Rubicle 88 is determined by accessing an isochronous forwarding table 11E (e.g., stored in Layer 2) that indicates reserved characters for isochronous streams. Asynchronous characters are unreserved characters in a Rubicle 88 onto which asynchronous data is mapped. In one implementation, all unreserved characters (asynchronous characters) and all reserved characters (isochronous characters) in a Rubicle 88 can be sub-grouped such that the asynchronous characters appear first followed by the isochronous characters.
In one embodiment, the invention provides asynchronous data transmission during reserved isochronous characters when the reserved characters do not carry any useful AV data during video blanking periods. Embodiments of the invention allow mapping of asynchronous data over reserved isochronous characters. Video data transmission occurs during a reserved isochronous period. The isochronous period includes active video pixel period in addition to video blanking periods. As asynchronous data is multiplexed with isochronous data on the same lane, embodiments of the invention use the blanking periods for transmitting useful data such as asynchronous data.
According to an embodiment of the invention disclosed herein, video data is transmitted via isochronous characters of each Rubicle, between AV devices 11. In one example, such video data comprises video frame 9 as shown in
In one embodiment, the following control sequences are used for transmission of video data (e.g., video frame 9):
Said control sequences can be repeated multiple times on each active lane 13 in a given direction to enhance robustness. As shown in
In one embodiment of the invention, active video pixels in a video line (e.g., HL0) of the AV frame 9 are started by transmitting a SoL control sequence followed by 1-byte lane header (i.e., LH) representing horizontal lanes as modulo of 256. This field is set to 0 for the first active horizontal lane of a video frame. A video blanking period (e.g., Horizontal Blank, Vertical Blank) can also be used for transmitting an asynchronous packet.
In one embodiment, the invention further provides flexibility in transmitting asynchronous packet between two AV devices that are different from the devices the isochronous characters are reserved for. The asynchronous data packet includes source and destination address fields based on which asynchronous data packet is switched at each hop by accessing the forwarding/switching table at the receiving device. The blanking period can also be used for transmission of audio data to the same device that the video is being transmitted to or to a different audio sink device.
According to an embodiment of the invention, a device that has reserved isochronous characters for video, transmits special control characters during a video blanking period to indicate the presence of a video blanking period. This provides flexibility such that any device on the path from the source device to the sink device can fill a video blanking period with useful data. This is not limited to the pair of devices the isochronous characters are originally reserved for.
According to an embodiment of the invention, in general there are two cases when the video blanking period can be used for asynchronous data transfer. In the first case, asynchronous data being transmitted over asynchronous characters is extended over isochronous characters. In the second case, the source device that reserved the isochronous characters can fill the video blanking period by transmitting asynchronous data.
Generally, an isochronous reservation table includes information about which characters are currently reserved for which isochronous streams. In one embodiment, the isochronous character identifier can carry the index of the first character of a series of characters reserved for a particular isochronous stream in a Rubicle. In another embodiment, this field can be replaced with the stream index since the purpose is to mainly indicate to the receiver which isochronous characters are used. Thereafter, the asynchronous data is mapped over isochronous characters.
In one implementation of the invention, once the mapping of asynchronous data over isochronous characters is established, the mapping remains effective until explicitly released by the source device. In one embodiment, when two APOB are present as the last two characters of the asynchronous characters, the mapping is terminated. In order to reduce the complexity of the scheme, if the entire allocation of isochronous characters in a Rubicle is not filled with blanking control characters then asynchronous data is not extended.
According to an embodiment of the invention, the blanking period may also be used for sending audio data packets. An audio packet is preceded by SoAU (Start of Audio) control character and followed by EoAU (End of Audio) control character, as shown by an example Audio packet/frame 115 in
An Audio map field is one bit in length and if set the audio has a corresponding video to which the audio needs to be synchronized. In this case a Mapped video frame number and the vertical/horizontal (V/H) position fields would be valid. The valid values for the Audio data type field are defined as follows:
The valid values for a Channel number field are as follows:
The value of a Valid field is set to 0 if the Audio data payload does not contain valid data. A Start field is interpreted based on the Audio data type field. If the Audio data type field is set to 0x01, then the Start bit is set to one if the Audio data payload contains the first frame in a 192 frame IEC60958 Channel Status Block. If the Audio data type field is set to 0x02, then the Start bit is set to zero. If the Audio data type field is set to 0x03 or 0x04, then the Start is set to one at every Direct Stream Transfer (DST) frame start. If the audio data type field is set to 0x04, then the Start bit is set to zero. The mapped video frame number carries the same number as the video frame sequence number. The V/H position field is set to the vertical and horizontal pixel number to which the first byte of the audio data corresponds to. The Audio data payload is formatted based on the Audio data type field.
As such, according to embodiments of the invention, a frame structure is used for data transmission between a source device 11 and a sink device 11 (e.g.,
In one embodiment of the invention, as noted each RUBI device X, Y in a wired network comprises a LLC layer, PHY layer, hardware processor, memory, logic and transceiver configured for communication over a wired network, according to embodiments of the invention. Media Access Control (MAC) is the data communication protocol sub-layer of the Data Link Layer (DLL) in the seven-layer Open Systems Interconnection (OSI) model. Other wired RUBI devices may be included in the network.
In one embodiment, the PHY layer is configured to continuously transmit a fixed length of N-character units (i.e., Rubicles), which is a combination of zero or more asynchronous and isochronous characters. Isochronous data is mapped onto isochronous characters and asynchronous data is mapped onto asynchronous characters. This allows multiplexing of asynchronous and isochronous characters. A PHY channel is represented as a continuous flow of N-character long Rubicles. The Rubicle includes a combination of asynchronous and isochronous characters. Isochronous stream data is mapped onto isochronous characters in Rubicles.
Asynchronous data is mapped onto asynchronous characters on one or more Rubicles. The mapping of a PPDU, carrying asynchronous data, at the RUBI PHY may follow either Serial or Parallel mapping mode. In the Serial mode, a new PPDU is mapped to Rubicles on all available lanes in the round-robin way, starting from the first available Rubicle on a Lane. A lane that is not available is skipped for the mapping. In the Parallel mode, a new PPDU is mapped to Rubicles on the next available lane such that all fragments of the PPDU are then mapped to the same lane. In this way multiple PPDUs can be served (or mapped to the Rubicles) in parallel. However, in the serial mapping case, a PPDU can not be served while the PPDU currently mapped is not finished. In either of the schemes, the RUBI L2 header is not repeated for each PPDU.
Accordingly, embodiments of the invention provide flexible multiplexing of asynchronous and isochronous data to improve the overall system efficiency. In one embodiment, considering 1920x1080 frame, there is about 33% blanking period of a total frame (2750x1125) such as frame 9. Assuming that 50% of the blanking period is used for video related control data, there are unused isochronous characters left, of which 16% can be used for transmitting asynchronous data. Embodiments of the invention support high data rate and low latency asynchronous data without requiring a dedicated communication channel. Embodiments of the invention provide transmission of asynchronous data when no asynchronous characters are available.
As is known to those skilled in the art, the aforementioned example architectures described above, according to the present invention, can be implemented in many ways, such as program instructions for execution by a processor, as software modules, microcode, as computer program product on computer readable media, as logic circuits, as application specific integrated circuits, as firmware, as consumer electronic devices, etc., in devices, in transmitters, receivers, transceivers in networks, etc. Further, embodiments of the invention can take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment containing both hardware and software elements.
Information transferred via communications interface 217 may be in the form of signals such as electronic, electromagnetic, optical, or other signals capable of being received by communications interface 217, via a communication link that carries signals and may be implemented using wire or cable, fiber optics, a phone line, a cellular phone link, an radio frequency (RF) link, and/or other communication channels. Computer program instructions representing the block diagram and/or flowcharts herein may be loaded onto a computer, programmable data processing apparatus, or processing devices to cause a series of operations performed thereon to produce a computer implemented process.
Embodiments of the present invention have been described with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. Each block of such illustrations/diagrams, or combinations thereof, can be implemented by computer program instructions. The computer program instructions when provided to a processor produce a machine, such that the instructions, which execute via the processor create means for implementing the functions/operations specified in the flowchart and/or block diagram. Each block in the flowchart/block diagrams may represent a hardware and/or software module or logic, implementing embodiments of the present invention. In alternative implementations, the functions noted in the blocks may occur out of the order noted in the figures, concurrently, etc.
The terms “computer program medium,” “computer usable medium,” “computer readable medium”, and “computer program product,” are used to generally refer to media such as main memory, secondary memory, removable storage drive, a hard disk installed in hard disk drive. These computer program products are means for providing software to the computer system. The computer readable medium allows the computer system to read data, instructions, messages or message packets, and other computer readable information from the computer readable medium. The computer readable medium, for example, may include non-volatile memory, such as a floppy disk, ROM, flash memory, disk drive memory, a CD-ROM, and other permanent storage. It is useful, for example, for transporting information, such as data and computer instructions, between computer systems. Computer program instructions may be stored in a computer readable medium that can direct a computer, other programmable data processing apparatus, or other devices to function in a particular manner, such that the instructions stored in the computer readable medium produce an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks.
Computer programs (i.e., computer control logic) are stored in main memory and/or secondary memory. Computer programs may also be received via a communications interface. Such computer programs, when executed, enable the computer system to perform the features of the present invention as discussed herein. In particular, the computer programs, when executed, enable the processor and/or multi-core processor to perform the features of the computer system. Such computer programs represent controllers of the computer system.
Though the present invention has been described with reference to certain versions thereof; however, other versions are possible. Therefore, the spirit and scope of the appended claims should not be limited to the description of the preferred versions contained herein.
This application claims the benefit of U.S. Provisional Patent Application Ser. No. 61/423,024, filed on Dec. 14, 2010, incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
61423024 | Dec 2010 | US |