This invention generally relates to connectivity of multimedia devices.
High bandwidth multimedia interfaces, such as the high-definition multimedia interface (HDMI™), digital visual interface (DVI), DisplayPort and the like are licensable compact audio/video interfaces for transmitting uncompressed digital streams. Such interfaces typically connect a multimedia source device (e.g., a set-top box, a DVD player, a personal computer, a video game console, etc.) to a compatible multimedia sink device, such as a digital television. In contrast to consumer analog audio/video interfaces, the high bandwidth multimedia interfaces enforce digital rights management (DRM) on transmitted media.
Data protection is achieved using a high-bandwidth digital content protection (HDCP) system which is fully described in the HDCP Specification version 1.3 published on Dec. 26, 2006, incorporated herein by reference in its entirety merely for the useful understanding of the background of the invention.
The HDCP authentication protocol facilitates a hand-shake process between a HDCP transmitter and a HDCP receiver that affirms to the HDCP transmitter that the HDCP receiver is authorized to receive HDCP contents. The HDCP transmitter is part of a multimedia source device and the HDCP receiver is part of the multimedia sink device. In the HDMI and DVI interfaces the HDCP authentication is initiated when a hop-plug detected (HPD) signal is triggered by the sink device.
The HDCP authentication includes three parts, all initiated by the HDCP transmitter, and each part has a different completion time. At S120 the first authentication part is triggered by sending to the receiver an initiation message containing the transmitter's key selection vector (KSV) value (Aksv) and a pseudo-random value (An). In addition, the transmitter reads the receiver's KSV value (Bksv). While the data is being transferred, the transmitter computes a shared secret value (Km), a secret value used during the second authentication part (M0), and a response value (R0). At S125 the receiver computes its shared secret value (K′m), a secret value used during the second authentication part (M′0), and a response value (R′0). The values Aksv, Bksv, Km and K′m are stored in the memory. The values R0, R′0, M0, and M′0 are session based.
The response value R′0 computed by the receiver must be ready to be read within 100 msec. The R0 and R′0 values are used to determine if the first authentication part was successful. At S130, the transmitter reads the R′0 from the receiver at least 100 msec after sending the Aksv value, and further checks if its response value R0 equals to the receiver response value R′0, and if so the first authentication was successful and execution continues with S135; otherwise, it is determined that the authentication failed and execution returns to an initial state (S105).
At S135, it is checked if the multimedia sink device is a repeater (e.g., a video processor, an audio amplifier, etc.), and if so execution continues with S140; otherwise, execution proceeds to the third authentication part at S155. At S140 and S145 the second authentication part is performed only if the HDCP receiver is a HDCP repeater. Specifically, at S140 the HDCP transmitter reads a list of KSVs from a KSV FIFO data structure maintained by the HDCP repeater, computes a hash value V, and reads the repeater's hash value V′. The value V′ is computed by the HDCP repeater, at S145, in response to the second authentication part initiated by the HDCP transmitter. The hash values V and V′ are the hash values of the concatenation of the KSVs in the list of KSVs. At S150, the transmitter checks if the values V and V′ are equal, and if so, the second authentication part was successful and execution continues with S155; otherwise, it is determined that the authentication failed and execution returns to the initial state at S105. The time required to complete the second authentication part is about 5 seconds, mainly due to the time required by the receiver to assemble the KSV FIFO.
At S155, the third authentication part is triggered every 2 seconds, which is the time between 128 video frames. The third authentication part provides link verification and is performed as long as the link between a source and sink is active. Typically, this authentication part occurs during the vertical blanking interval preceding a video frame. Every frame, the HDCP transmitter computes a link integrity verification value Ri (i is a frame index). At S160 the HDCP receiver/repeater computes its link integrity verification value R′i. Subsequently, at S165, it is checked if the verification values Ri and R′i are equal, and if so the third authentication part was successful and execution returns to S155, where this authentication part is repeated every 2 seconds; otherwise, it is determined if the authentication failed and then execution returns to the initial state at S105. As defined in the HDCP specification, after three failures of the third authentication the execution returns to the initial state S105. In a worst-case scenario, the HDCP link fails immediately after successful link verification, and it takes the HDCP transmitter 2 seconds to detect the link failure. During that time neither the HDCP transmitter nor the receiver knows that the link is broken. Thus, the receiver decrypts and renders data incorrectly, and such data will be displayed as white noise on the screen. Only after return to the initial state S105 the screen will be blank.
The HDCP flow described with reference to
Such configuration requires that a link between each source to the sink would be active to allow instantaneous switching without losing video/audio data. However, this requires having replicated multimedia interface receivers (e.g., a HDMI receiver) at each port at the sink. This is costly solution as multiple receivers are used instead of a single receiver. An alternative approach is to maintain only one active link between a source and the sink. However, this requires performing the HDCP authentication process when switching between different sources. As the authentication takes up to 5 seconds to completion during that time video frames cannot be transmitted and displayed by the sink. In addition, the authentication process can be triggered only by a source device when, it is being selected.
Therefore, it would be advantageous to provide a solution for instantaneous switching between source multimedia devices.
Certain embodiments of the invention include a multimedia sink apparatus for fast switching between a plurality of source multimedia devices. The apparatus comprises a plurality of input ports, each of the plurality input ports is connected to a source multimedia device through a high bandwidth multimedia interface; and a plurality of high-bandwidth digital content protection (HDCP) receivers, each of the plurality of the HDCP receivers is connected to an input port, wherein each of the plurality of the HDCP receivers is adapted to perform a first authentication part of a HDCP authentication process, and upon reception of an indication that a respective source device connected to the respective input was selected, to perform a third authentication part of the HDCP authentication process.
Certain embodiments of the invention also include a method for fast switching between a plurality of source multimedia devices connected to a sink multimedia device through a high bandwidth multimedia interface, wherein the method is performed by a HDCP receiver connected to the sink multimedia device. The method comprises asserting a hot-plug detected (HPD) signal; performing a first authentication part of a high-bandwidth digital content protection (HDCP) authentication process; and upon reception of an indication that a source multimedia device connected to the HDCP receiver was selected, performing a third authentication part of the HDCP authentication process.
The subject matter that is regarded as the invention is particularly pointed out and distinctly claimed in the claims at the conclusion of the specification. The foregoing and other objects, features and advantages of the invention will be apparent from the following detailed description taken in conjunction with the accompanying drawings.
It is important to note that the embodiments disclosed by the invention are only examples of the many advantageous uses of the innovative teachings herein. In general, statements made in the specification of the present application do not necessarily limit any of the various claimed inventions. Moreover, some statements may apply to some inventive features but not to others. In general, unless otherwise indicated, singular elements may be in plural and vice versa with no loss of generality. In the drawings, like numerals refer to like parts through several views.
At S310 a HPD signal is asserted by a HDCP receiver 205 and sent to the HDCP transmitter at the source device 220 which, in response, initiates the first authentication part of the HDCP flow. At S320, the HDCP receiver 205 at the port 210 performs the first authentication part. At S330 if the sink device is a repeater, then the second authentication part is also performed. Steps S320 and S330 are performed as defined in the HDCP standard and described in detail above. At S340 it is checked if a source device 220 connected to the 210 port was selected; and if so execution continues with S350 where the third authentication part is performed; otherwise, at S360 the HPD signal is de-asserted and execution returns to S310. In one embodiment, the execution waits a predefined time (e.g., 100 msec) between de-asserting (at S360) and re-asserting (at S310) the HPD signal.
The HDCP flow is a hand-shake process, thus any authentication part performed by the HDCP receiver 205 is also carried by the HDCP transmitter at the source device 210. Furthermore, the de-assertion of the HPD signal immediately causes the HDCP transmitter, and thereby the HDCP receiver 205, to terminate any authentication action and return to the initial state (105). That is, the HDCP receiver and transmitter will not perform the third authentication part if the source device is not selected. It should be appreciated that a link can be established between the sink device and source device only when the latter is selected. Therefore, the third authentication part (i.e., link verification) will always fail if a source device connected to a respective port is not selected. This results in a waiting time bounded by the interval between subsequent trials of link verification (e.g., 2 seconds) before retrying to authenticate the connection. If the source device is being selected during this waiting time erroneous data (e.g., incorrectly decrypted data, resulting in a snow screen) would be displayed on the sink device and video data would be lost as the link cannot be established. The invention disclosed herein eliminates this waiting time as the third authentication process is performed only upon selection of the source device, thereby enabling fast and instantaneous switching between source devices without losing any video data.
In accordance with an embodiment of the invention a time-division multiple access (TDMA) technique is utilized to retrieve E-EDID information and/or device key selection (DKS) information from the memory by multiple HDCP ports. Retrieving such information is required by the HDCP authentication process. According to this embodiment, each HDCP port has a time slot for E-EDID and a time slot for DKS retrieval. Therefore, 2*n time slots are needed for ‘n’ ports (n is an integer number). Each HDCP port accesses the memory only at the time slot allocated for the information retrieval, thereby preventing a conflict due to simultaneous access.
As illustrated in
In accordance with another embodiment an inter-integrated circuit (I2C) suspend mechanism is utilized by HDCP ports. In one configuration, a HDCP receiver port is an I2C slave. The I2C protocol requires the slave to send acknowledgment after each transaction. The slave can delay acknowledgments, e.g., by holding the clock, in order to prevent a master from initiating another transaction. An HDCP port can be selected to be the active port at any time. When a port is not selected, the first part of the authentication process is repeated periodically.
According to this embodiment, the slave can run the first authentication part at normal speed at the beginning of the process, and then slow the execution process at the end using the suspend mechanism. This would increase the probability that a port is selected just when the first authentication part is about to be completed, thereby increasing the time saved during switching ports.
The principles of the invention may be implemented in hardware, software, firmware or any combinations thereof. The software may be implemented as an application program tangibly embodied on a program storage unit or computer readable medium. The application program may be uploaded to, and executed by, a machine comprising any suitable architecture, for example a computer platform having hardware such as one or more central processing units (“CPUs”), a random access memory (“RAM”), and input/output (“I/O”) interfaces. The computer platform may also include an operating system and microinstruction code. The various processes and functions described herein may be either part of the microinstruction code or part of the application program, or any combination thereof, which may be executed by a CPU, whether or not such computer or processor is explicitly shown.
It is to be further understood that, because some of the constituent system components and methods depicted in the accompanying drawings are preferably implemented in software, the actual connections between the system components or the process function blocks may differ depending upon the manner in which the present invention is programmed. Given the teachings herein, one of ordinary skill in the pertinent art will be able to contemplate these and similar implementations or configurations of the present invention. All examples and conditional language recited herein are intended for pedagogical purposes to aid the reader in understanding the principles of the invention and the concepts contributed by the inventors to furthering the art, and are to be construed as being without limitation to such specifically recited examples and conditions.
All statements herein reciting principles, aspects, and embodiments of the invention, as well as specific examples thereof, are intended to encompass both structural and functional equivalents thereof. It is intended that such equivalents include both currently known equivalents as well as equivalents developed in the future, i.e., any elements developed that perform the same function, regardless of structure. Other hardware, conventional and/or custom, may also be included.