Abstract:
A system includes an HDCP-over-USB controller including an HDCP module for encrypting or decrypting video data according to an HDCP standard prior to transmission or display of said video data.

Description:
BACKGROUND 
       [0001]    Herein, related art is described to facilitate understanding of the invention. Related art labeled “prior art”, if any, is admitted prior art; related art not labeled “prior art” is not admitted prior art. 
         [0002]    USB displays, i.e., displays that can display video received over a USB (“Universal Serial Bus”) connection can be used in many situations where there is no available dedicated video connection, e.g., VGA (“Video Graphics Adapter), DVI (“Digital Visual Interface”), etc. For example, some portable computers have built-in displays, but no external video port; in that case, a USB port can be used to provide a connection to a display that can be larger and more readable than the built-in display. For another example, a user might want to extend the view of an existing display by adding a second display to a computer that only has one dedicated video port. In general, it would be desirable to reduce the number of dedicated ports in favor of more flexible USB ports. 
         [0003]    Content providers for HD-DVD and Blu-ray media can set an Image Constraint Token (ICT) flag that will only output full-resolution digital signals using a digital HDCP (High-bandwidth Digital Copy Protection) connection. USB 2.0 has no mechanism for providing HDCP and there is no plan to add one for USB 3.0. Accordingly, the USB Implementers Forum is reportedly working on a USB standard that provides for handling HDCP content. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWING 
         [0004]      FIG. 1  is a combined schematic diagram and flow chart in accordance with an embodiment of the invention. 
       
    
    
     DETAILED DESCRIPTION 
       [0005]    The present invention provides for HDCP over USB using a virtualizing USB controller that provides a physical USB controller for external communications and a virtual USB controller for communicating with an incorporating host. When the host inquiries whether HDCP is supported, the virtual USB controller responds that it is supported. When a video data is received from the host, an HDCP module on the virtualizing USB controller encrypts the video. The virtualizing USB controller then transmits the encrypted video data out the physical USB port. The virtualizing controller can be used in connection with a USB display with a USB controller that supports HDCP decryption. As a result, HDCP video can be transmitted over a USB cable for display. 
         [0006]    As shown in  FIG. 1 , a computer system API includes a host computer  11  and a display  13  connected to each other by a USB cable  14 . Display  13  includes a display panel  15 , a stand  17 , and a base  19 . Base  19  contains a USB controller  21  that supports decryption for HDCP protected video so that HDCP video can be displayed. 
         [0007]    Host computer  11  runs a multimedia application  23  on an operating system  25 . Operating system  25  includes a video driver  27  that queries a video controller regarding capabilities before transmitting video data. In the case multimedia application  23  is playing HDCP protected content, e.g., playing an HDCP protected Blu-Ray disk, video driver  27  queries whether a video controller supports HDCP encryption. If the controller supports HDCP encryption, video driver  27  provides high-definition video; otherwise, lower-resolution video data is provided that can be sent without protection (which is what would be sent over a conventional USB controller). 
         [0008]    Host computer  11  uses a virtualizing USB controller  30  to support the HDCP-over-USB capabilities of display  13 . Video driver  27  communicates with controller  30  over a PCI system bus  50 , which carries video data  51  as well as control signals and data  53 . Controller  30  includes a physical USB controller  31 , a processor  33 , and computer-readable media  35 . Media  35  is encoded with a virtual USB controller  40 , which includes a video driver  41  for physical USB controller  31 , an HDCP module  43 , which in turn provides an “Information Constraint Token” flag  45 . Video driver  41  provides video data  47  and control signals and data  49  compatible with physical USB controller  41 . 
         [0009]    Virtualizing USB controller  30  supports a method ME 1 , flow charted in  FIG. 1 . At method segment M 1 , virtual controller  40  receives an inquiry from video driver  27  regarding the capabilities of virtual controller  40 . Based on the set status of ICT flag  45 , controller  40  returns an indication that HDCP is supported at method segment M 2 . Virtual controller  40  receives video data from multimedia application  23  at method segment M 3 , which it attempts to transmit. At method segment M 4 , HDCP module  43  applies HDCP encryption to the video data to yield encrypted video data. If there is no inquiry at method segment M 1 , HDCP module  43  leaves the video data unencrypted. At method segment M 5 , video driver  41  transmits the encrypted video data via physical UBS controller  31 . At method segment M 6 , display USB controller receives and decrypts the video data. At method segment M 7 , display  13  presents decrypted video at panel  15 . 
         [0010]    If physical controller  31  had been directly coupled to system bus  50 , it would have responded to the inquiry of method segment M 1  that it did not support HDCP. In that case, the video signal at  51  would have been relatively low-resolution (non-HD) data, which would have been transmitted unencrypted to display  13 . When video driver  41  inquires about HDCP capability, physical USB controller  31  will not indicate that HDCP is supported. Of course, since HDCP module  43  has encrypted the video it has received, the video can be transmitted by physical controller  31  without further encryption and still be HDCP compliant. 
         [0011]    Physical USB controller  31  supports a second channel to which a USB cable  61  is connected. In this case, the destination is a USB dock  63 , which converts the received encrypted HD video data for transmission over a “Digital Video Interface” DVI cable  65  to a display  67 . In this case, display  67  does not have a USB connection or provide for HDCP over USB. Thus, virtualizing USB controller  30  provides for HDCP on a non-USB display or a USB display that does not support HDCP over USB. 
         [0012]    In an alternative embodiment, a video driver of a virtualizing controller does not inquire regarding HDCP support. Depending on the embodiment, a virtualization controller can support only one or, alternatively, one or more displays. Also, the host computer may support another display through a dedicated video port. These and other variations upon and modifications to the illustrated embodiment are provided by the present invention, the scope of which is defined by the following claims.