Abstract:
A Digital Living Network Alliance (DLNA) system and method transform multimedia contents in a manner adaptive to the available data processing capability of the digital media renderer (DMR) of the DLNA network. A digital media server (DMS) and a digital media renderer (DMR) are discovered. A list of contents provided by the DMS is obtained. Information on a transport protocol and a data format of the DMR is obtained. Information on available data processing capability of the DMR is obtained. The transport protocol and the data format of the DMS are matched to those of the DMR. Transcoding and transrating schemes of the DMS are adjusted based on the available data processing capability of the DMR. A connection between the DMS and the DMR is established, and content stored in the DMS is transmitted to the DMR.

Description:
CLAIM OF PRIORITY 
   Priority is claimed under 35 U.S.C. § 119 from Korean Patent Application No. 2006-0032192, which was filed in the Korean Intellectual Property Office on Apr. 10, 2006, the contents of which are herein incorporated by reference in their entirety. 
   BACKGROUND OF THE INVENTION 
   1. Field of the Invention 
   The present invention relates to a Digital Living Network Alliance (DLNA) system and, in particular, to a method for transforming multimedia contents adaptive to the available data processing capability of the digital media renderer (DMR) of the DLNA network. 
   2. Description of the Related Art 
   The Digital Living Network Alliance (DLNA) is an alliance of leading companies, including Microsoft (MS), International Business Machines (IBM), Hewlett-Packard (HP), Intel, Sony, Matsushita, Samsung, etc. in the consumer electronics, mobile, and personal computer industries. An aim of the alliance is to create industry standards that will allow products from all companies to be compatible with each other and to enable a network of electronic devices in the home. 
   Home networking technologies are now rapidly developing such that consumer electronics, mobile and PC devices are interoperating in a home to enhance and enrich user experiences with various services. 
   The DLNA defines a PC Internet Network wherein PC and PC peripherals such as a printer communicate. A mobile network of multimedia mobile phones, personal digital assistants (PDAs), Motion Pictures Expert Group (MPEG) 1 Audio Layer 3 (MP3) players, laptop computers, and similar devices provide unparalleled connectivity and freedom of movement into and out of the home environment. A consumer electronics (CE) network includes set-top boxes and traditional consumer electronics. 
   To deliver interoperability in the digital home, the DLNA has focused on 1) industry collaboration, 2) standards-based interoperability, and 3) compelling products, and has developed the physical media, network transports, media formats, streaming protocols and digital rights management (DRM) on the basis of Universal Plug and Play (UPnP). 
     FIG. 1  is a block diagram illustrating a conventional DLNA system  100 . As shown  FIG. 1 , the DLNA system  100  is implemented with a plurality of DLNA networks  101 . Each includes a Digital Media Server (DMS)  103 , a Digital Media Player (DMP)  105 , a Digital Media Controller (DMC)  106 , and a Digital Media Renderer (DMR) 107. 
   The DMS  103 , DMP  105 , and DMC  106  can be a Mobile-Digital Media Server (M-DMP), Mobile-Digital Media Player (M-DMP), and Mobile-Digital Controller (M-DMC), respectively. The M-DMS, M-DMP, and M-DMC can access the DLNA system  100  directly or through an Access Point (AP)  109 . The AP is provided with a Mobile Network Connection Function (M-NCF) as the intermediate node for bridging the M-DMS and M-DMP. 
   The DLNA can be implemented as a home network on the basis of a wired network standard (IEEE 802.3) or a wireless network standard (IEEE 802.11). 
   The DMS  103 , DMP  105 , and DMR  107  are interconnected so as to form a wired (IEEE. 802.3) or a wireless network (IEEE 802.11). The digital appliances on the home network can exchange multimedia data such as video and audio data on the basis of IEEE 1394 standard. 
   The DLNA guidelines, e.g., Home Networked Device Interoperability Guidelines v1.5, are a standard for interconnection of home network appliances. The guidelines classify the DLNA devices into DMS, DMP, DMC, and DMR and define the conditions for connections between the DMS, DMP, DMC, and DMR. 
   DMS functions as a Media Server Device (MSD) of UPnP AV part, which provides media contents. The main object of the DMS is to enable the control point (CP) as a user interface (UI) application to retrieve digital media content items in the DMS such that the user can display or distribute the contents. The DMS is equipped with a broadcast signal receiver and middleware for broadcast. Some example of DMS includes Video Cassette Recorders (VCRs), Compact Disc (CD) players, Digital Video Disk (DVD) players, Motion Pictures Expert Group 1 (MPEG-1) layer 3 (MP3) players, set-top boxes (STBs), TV tuners, radio tuners, and personal computers (PCs). 
   The DMR plays content received after being setup by another entity. Some examples of DMR devices include a TV, an audio/video receiver, a video monitor, and remote speakers for music. 
   The DMP is a DMR or M-DMR including the CP and therefore finds content exposed by the DMS to provide playback and rendering capabilities. 
   The DLNA guidelines are not a new protocol, but are created by combining the published standards and common protocols. That is, the DLNA adopts IEEE 802.3 for wired communication and IEEE 802.11 for wireless communication as the physical layer. The wired Ethernet has already proved stable, and the use of wireless Ethernet, i.e., Wi-Fi for wireless home networking has become widespread. 
   DLNA is also implemented with the transmission control protocol/Internet protocol (TCP/IP) for network layer. TCP/IP is a basic network communication protocol used for the elements operating on the Internet and supports transparent data exchange for the application programs operated with various media. For example, PCs or STBs can transmit media contents to the TV located in the other room via an IEEE 802.11 AP which is connected through Ethernet cable. In short, DLNA devices can communicate with each other using TCP/IP through the Internet. 
   DLNA is, in addition, implemented on the basis of UPnP AV architecture, and on the basis of UPnP Device architecture which is used for locating and controlling devices across the DLNA network, i.e., automatically configuring the IP address and recognizing other devices on the network with reference to the IP address, as well as checking and managing services to be provided. 
   DLNA further features use of the hypertext transfer protocol (HTTP) for exchanging control messages and transporting files, the extensible markup language (XML) for text message, MPEG2 for video data format, and (Joint Photographic Experts Group) JPEG for still image data format. 
   One of the key technologies of the DLNA guidelines is UPnP. DMSs and DMPs are addressed and automatically recognized on the basis of the protocol specified in the UPnP device architecture. For example, the DMS providing a list of stored files and broadcasting the data is the UPnP Media Server. 
   The DLNA guidelines are based on the UPnP and specify the design architecture of digital information products in terms of products such as household appliances, PCs, and wireless devices sharing media content over the wired or wireless home network. 
   The DLNA guidelines aim for the interoperability among devices, so that systems and products can operate without burdening the user in connection with their operation. The need for interoperability is growing tremendously, and looms as an important factor in deciding the quality of the information devices. This is expressed in ever-growing realization that “The network is a computer.” 
   When media content is shared by different devices in the DLNA system  100 , they transcode/transrate in achieving interoperability. In the conventional DLNA system  100 , however, the Media Interoperability Unit (MIU) of the DMS performs a transcoding or transrating scheme fixedly set by the manufacturer or developer of the devices. It is therefore infeasible to check the available capabilities of the devices (for example, DMP or DMR), which complicates optimizing the transcoding or transrating to the available processing capabilities of the devices. Assuring a given quality of service (QoS) of the media contents transmitted from the DMS to the DMR consequently becomes unreliable. 
   SUMMARY OF THE INVENTION 
   The present invention has been made in an effort to solve the above problems, and, in one aspect, provides a method for transforming contents. The method serves to improve reliability in assuring QoS by optimizing the transcoding/transrating to the available capability of the devices on the UPnP-based DLNA system. 
   In one aspect of the present invention, the above and other aspects can be accomplished by a data-transforming method for a universal plug and play (UPnP)-based digital living network association (DLNA) system. The method includes discovering digital media server (DMS) and digital media renderer (DMR) in the DLNA system. A list of contents is provided by the DMS. Information is obtained on a transport protocol and a data format of the DMR. Information is likewise obtained on available data processing capability of the DMR. The transport protocol and the data format of the DMS are matched to the transport protocol and the data formation of the DMR. Transcoding and transrating schemes of the DMS are adjusted on the basis of the available data processing capability of the DMR. A connection can then be established between the DMS and the DMR for transmitting content stored in the DMS to the DMR. 
   Preferably, the available data processing capability of DMR includes digital signal processing capability of the DMR, central processing unit (CPU) value, memory value, graphic processing unit (GPU) value, and resolution. 
   In another aspect, a data transforming method for a home network connects at least one server and at least two clients in wired or wireless links. In the method, the server and client are discover. A list is obtained of multimedia contents items provided by the server. System information is obtained from the client. Transport protocols and the data formats between the server and the client are matched on the basis of the system information. Transcoding and transrating schemes between the server and the client are decided on the basis of the system information. The multimedia contents items are transformed in accordance with the transcoding and transrating schemes, and transmitted from the server to the client. 
   Preferably, the system information includes transport protocols and data formats supported by the client. 
   Preferably, the system information includes an available capability, such as a processing speed or unused buffer space, of the client. 
   Preferably, the transcoding and transrating schemes are decided on the basis of the availability of the client. 
   Preferably, the transrating scheme has a transrating capability less than or equal to the available capability of the client. 
   Preferably, the step of discovering the server and client includes selecting a client when more than two clients are discovered. 
   Preferably, the step of transforming the multimedia contents items includes determining whether or not there is an input command for selecting at least one of the multimedia contents items, and further includes transcoding and transforming the selected multimedia contents items if there is the input command. 
   Preferably, transmitting the transformed multimedia contents items includes determining whether or not there is an input command for selecting at least one of the multimedia contents items, and transmitting the selected multimedia item(s) if there is the input command. 

   
     BRIEF DESCRIPTION OF THE DRAWINGS 
     Details of the novel home networking data storage technology are set forth below with the aid of the following drawings, wherein: 
       FIG. 1  is a block diagram illustrating a conventional DLNA system; 
       FIG. 2  is a conceptual view illustrating a DLNA system according to an embodiment of the present invention; 
       FIG. 3  is a message flow diagram illustrating operations for transmitting contents from the DMS to the DMR under the control of the CP in the DLNA system according to an embodiment of the present invention; and 
       FIG. 4  is a flowchart illustrating a method for transforming information in the DLNA system according to an embodiment of the present invention. 
   

   DETAILED DESCRIPTION 
   Detailed discussion of well-known functions and structures incorporated herein is omitted from the following description for conciseness and clarity of presentation. 
     FIG. 2  conceptually depicts an example of a DLNA system  200  according to an embodiment of the present invention. The DLNA system  200  includes a DMS  203  for providing contents, and a DMR  205  for replaying the contents. The DLNA system  200  also includes a CP  201 , which features a user interface on which to select contents and the ability to transmit the selected content from the DMS  203  to the selected DMR  205 . 
   The CP  201  is a controller for detecting devices on the DLNA system  200  and controlling the detected devices. The CP  201  has a table  202  that stores the data formats of the contents, the transmission protocols, etc. 
   The CP  201  can be, for example, a TV that controls the UPnP device. The DMS  203  can be a UPnP device having storage media such as PC and VCR, and the DMR  205  can be device such as a laptop computer or an audio player. 
   Operationally, once the user selects one of the content items provided by the DMS  203  and a target DMR  205 , the selected item is directly transmitted to the target DMR using an Out-of-Band transfer protocol. 
   The DMS  203  provides at least one transfer protocol and at least one data format of the respective content items. The format of the content item can be transformed into another format before being transmitted by the DMS  203 . The DMR  205  can receive the content using the transfer protocol and in the data format the DMR itself supports. Also, the CP  201  controls the operation of the DMS  203  and the DMR  205  according to the user&#39;s commands. 
     FIG. 3  shows, by way of illustrative and non-limitative example, operations for transmitting contents from the DMS  203  to the DMR  205  under the control of the CP  201  in the DLNA system  200  according to an embodiment of the present invention. 
   In this embodiment, it is assumed, for purposes of illustration, that it is desired to watch video content stored on DMS  203  (for example, a camcorder) through the DMR  205 . 
   The CP  201  calls the DMS  203  using the CDS::Browse/Search( ) function (i.e., a Content Directory Service function under UPnP/AV) to obtain and display contents items provided by the DMS  203  (S 301 ). The CP  201  then calls the DMR  205  using the CM::GetProtocolInfo( ) function (i.e., a function of the Connection Manager service under UPnP/AV) to obtain information on the protocols and data formats supported by the DMR selected by the user (S 303 ). The CP  201  also obtains, in accordance with the present invention, information on the available capability of the DMR  205  by transmitting a herein-proposed CM::GetSystemCapabilityInfo( ) function (S 305 ). 
   The available capability information preferably includes digital signal processing capability, CPU usage, memory usage, graphic processing unit (GPU) usage, and resolution of the DMR  205 . 
   The available capability can be represented by the following Table 1, which preferably resides in the memory  202 . The “Name” indicates the action or function. “Optional” means that the function should be, but is not required to be, implemented at the DLNA device, e.g., DMS, DMP, DMC or DMR. “Required” means that the function is required in the DLNA device. 
   
     
       
             
             
             
           
         
             
                 
               TABLE 1 
             
             
                 
                 
             
             
                 
               Name 
               Req or Opt 
             
             
                 
                 
             
           
           
             
                 
               GetSystemCapabilityInfo 
               Opt 
             
             
                 
                 
             
           
        
       
     
   
   The “GetSystemCapabilityInfo” can be defined by table 2. The argument of the GetSystemCapabilityInfo function is GetSystemCapabilityInfo. The “Direction” is “OUT,” which indicates that the argument is an output argument. The data type is “String.” As the “Description” entry in Table 2 shows, the DMS  203  checks the capability of the DMR  205 , and is informed of the capability by means of the output argument returned. 
   
     
       
             
             
             
             
             
           
         
             
               TABLE 2 
             
             
                 
             
             
               Argument(s) 
               Direction 
               Type 
               Description 
               RelatedStateVariable 
             
             
                 
             
           
           
             
               GetSystemCapabilityInfo 
               OUT 
               String 
               DMS Checks 
               SystemCapabilityinfo 
             
             
                 
                 
                 
               Capability 
             
             
                 
                 
                 
               information of the 
             
             
                 
                 
                 
               DMR 
             
             
                 
             
           
        
       
     
   
   The “SystemCapabilityInfo” is a state variable and is defined as table 3. 
   
     
       
             
             
             
             
             
           
         
             
               TABLE 3 
             
             
                 
             
             
                 
               Req or 
                 
               Allowed 
               Default 
             
             
               Variable Name 
               Opt 
               Data type 
               Value 
               Value 
             
             
                 
             
           
           
             
               SystemCapabilityInfo 
               Opt 
               String 
               String 
               — 
             
             
                 
             
           
        
       
     
   
   The CP  201 , based on the returned output argument (S 305 ), transmits the information on the available capacity of the DMR  205  to the DMS  203 . 
   The CP  201  matches the transmission protocol and data format of the DMR  205  to those of the DMS  203  (S 307 ). 
   In particular, the DMS  203  determines the transcoding and transrating scheme of the DMS and DMR in accordance with the SetSystemCapability( ) function of the CP  201 . 
   If the transrating of the DMS  203  exceeds the data processing capability of the DMR  205 , a media interoperability unit (MIU) of the DMS adjusts its transrating to below, i.e., within, that data processing capability. 
   The decision of the transcoding scheme and the transrating capability on the basis of the available data processing capability of the DMR  205  is performed by the “SetSystemCapabilityInfo” action (S 309 ) as exemplified in the following Table 4. 
   
     
       
             
             
             
           
         
             
                 
               TABLE 4 
             
             
                 
                 
             
             
                 
               Name 
               Req or Opt 
             
             
                 
                 
             
           
           
             
                 
               SetSystemCapabilityInfo 
               Opt 
             
             
                 
                 
             
           
        
       
     
   
   The “SetSystemCapability” is defined as follows in Table 5. 
   
     
       
             
             
             
             
             
           
         
             
               TABLE 5 
             
             
                 
             
             
               Argument(s) 
               Direction 
               Type 
               Description 
               RelatedStateVariable 
             
             
                 
             
           
           
             
               SetSystemCapabilityInfo 
               IN 
               String 
               DMS stores the 
               SystemCapabilityInfo 
             
             
                 
                 
                 
               capability 
             
             
                 
                 
                 
               information on 
             
             
                 
                 
                 
               DMR 
             
             
                 
             
           
        
       
     
   
   “SystemCapabilityInfo” is a state variable and defined as follows in Table 6. 
   
     
       
             
             
             
             
             
           
         
             
               TABLE 6 
             
             
                 
             
             
                 
               Req or 
                 
               Allowed 
               Default 
             
             
               Variable Name 
               Opt 
               Data type 
               Value 
               Value 
             
             
                 
             
           
           
             
               SystemCapabilityInfo 
               Opt 
               String 
               String 
               — 
             
             
                 
             
           
        
       
     
   
   “SystemCapabilityInfo,” as the state variable, contains the information on the processing capability of the DMR  205  in the form of hierarchical XML. The DMS  203  checks the processing capability of the DMR with reference the “SystemCapabilityInfo” variable. 
   Next, the CP  201  transmits the CM::PrepareForConnection( ) function to the DMS  203  and DMR  205  to inform or report the connection attempt (S 311 , S 313 ). An argument of the PrepareForConnection( ) function includes a AVTransport InstanceID of the DMS and AVTransport InstanceID and Rendering Control InstanceID of the DMR  205 . 
   If the Uniform Resource Identifier (URI) of the DMS  203  and DMR  205  is decided after the connection is established, the CP  201  executes AVT::SetAVTransportURI( ) according to AVTransport Service (Audio with Video Transport Service) (S 315 ), and executes the AVT:Play( ) function (S 317 ). The CP  201  then performs transmission control on specific content (i.e., starting or ending transmission of the content) (S 319 ). 
   With the RenderingControlService of the DMR  205 , it is possible to adjust the brightness, coloration, volume, etc. of the content transmitted to the DMR. Also, it is possible to control other content using the SetAVTransportURI( ) function. If the connection between DMS  203  and DMR  205  is no longer required, the ConnectionComplete( ) action of the ConnectionManager is executed to terminate the connection. 
     FIG. 4  shows an exemplary method for transforming information in the DLNA system  200  according to an embodiment of the present invention. 
   Referring to  FIG. 4 , while the DLNA system  200  is in a waiting state (S 401 ), the CP  201  discovers the DMS  203  and DMR  205  in the DLNA system using a discovery mechanism of UPnP technology of the DLNA system (S 403 ). The waiting state continues until the DMS  203  and DMR  205  are found. 
   Once DMS  203  and DMR  205  are found, the CP  201  obtains the list of contents provided by the DMS by calling the DMS with the CDS::Browse/Search( ) function of ContentDirectService (S 405 ). The contents list is displayed through the user interface so that user can select an item from the contents list. 
   The CP calls the DMR(s)  205  with the CM::GetProtocolInfo( ) function and allows the user to select a DMR. Once a DMR  205  is selected by the user, the CP  201  obtains the information on the protocol and the data format supported by the selected DMR (S 407 ). 
   After obtaining the information on the protocol and data format of the DMR  205 , the CP  201  executes the GetSystemCapabilityInfo( ) function of the Connection Manager service to obtain the information on the available data processing capability of the DMR (S 409 ). The available data processing capability preferably includes the digital signal processing capability of the CPU, CPU value, memory value, GPU value, resolution, etc. 
   Next, the CP matches the transport protocol and the data information of the DMS  203  to those of the DMR  205  (S 411 ). 
   The CP  201  informs the DMS  203  of the DMR&#39;s available processing capability. The DMS  203  uses the SetSystemCapability( ) function to decide on a transcoding scheme and a transrating scheme for the DMR  205  on the basis of the DMR&#39;s available processing capability (S 413 ). 
   If the transcoding capability of the DMS  203  is greater than that of the DMR&#39;s presently available data processing capability, the MIU of the DMS adjusts the transrating of the DMS to be below, or within, the DMR&#39;s available data processing capability (S 415 ). 
   After the adjustment of the transrating, the CP  201  attempts to connect the DMS  203  and the DMR  205  using the CM::PrepareForConnection( ) function (S 417 ). 
   If the connection is established such that the Uniform Resource Identifier (URI) is decided for the DMS  203  and the DMR  205 , the CP  201  executes the AVT::SetAVTransportURI( ) function in accordance with an Audio with Video Transport Service (AVTransport Service), resulting in data transmission at step S 419 . 
   After the completion of the data transmission, the CP  201  determines whether or not to transmit other content of the DMS (S 421 ). If it is determined to transmit other content, the CP  201  returns to the step S 405 . 
   Although preferred embodiments of the present invention have been described in detail hereinabove, it should be clearly understood that many variations and/or modifications of the basic inventive concepts herein taught which may appear to those skilled in the present art will still fall within the spirit and scope of the present invention, as defined in the appended claims. 
   As described above, the data transforming method for the DLNA system of the present invention checks the presently available data processing capability of the DMP or DMR  205  before transmitting multimedia contents from the DMS  203  to the DMP or DMR and decides the transcoding and transrating schemes for the data. It is accordingly possible to secure assurance of a given QoS for multimedia content.