Abstract:
The present invention relates to the description of a data stream having data stream subdomains, which can be referenced and classified, and a data stream syntax. According to the present invention, the data stream subdomains are referenced and classified by division into at least one respective class of a classification, whereby the classification is at least partially independent of the syntax of the data stream.

Description:
BACKGROUND OF THE INVENTION  
       [0001]     In Devillers S.: “Bitstream Syntax Definition Language: An Input to MPEG-21 Content Representation,” there is a description of a method via which adaptation operations can be performed for given media streams on the basis of a language called BSDL (Bitstream Syntax Description Language) for the description of data streams. For this purpose transformation descriptions are used which can be written, for example, in the language XSL (Extensible Stylesheet Language). XSL transformations are explained in “XSL Transformations (XSLT)” Version 1.0, W3C Recommendation published Nov. 16, 1999. The transformation descriptions are used in order to transform an XML document conforming to a media stream-specific BSDL embodiment (i.e., a schema conforming to the “XML Schema Language” W3C Recommendation published May 2, 2001), or corresponding to a DTD (Document Type Definition), into an adapted XML document. Such document is then used, in turn, to generate a transformed data stream from a first data stream with the aid of the BSDL embodiment.  
         [0002]     This process is explained in greater detail with reference to  FIG. 1 . A first data stream a_ 1  in the form of a binary bitstream is forwarded to a first bitstream parser BP_ 1 . Using a BSDL schema BSDL_a, the bitstream parser BP_ 1  generates, from the first data stream a_ 1 , a first data stream description BSD_ 1 / 1  for the first data stream in the form of an XML document. Using an XSLT style sheet XSL, an XSL processor XSLP then generates from the first data stream description BSD_ 1 / 1  for the first data stream a second data stream description BSD_ 1 / 2  for the first data stream. Finally, a second bitstream parser BP_ 2  transforms the first data stream a_ 1  using the BSDL schema BSDL_a and the second data stream description BSD_ 1 / 2  for the first data stream into the second data stream a_ 2 .  
         [0003]     This method can be used, for example, to adapt an instance of a media stream residing on a media server, such as a video stream, to the requirements of a requesting client such that, after the adaptation, the image format of the video stream, for example, corresponds to the screen resolution present on the terminal device or, for example, the preferred bit rate on the transmission path from the server to the client is used to optimal effect.  
         [0004]     An example of a part of a first data stream description BSD_ 1 / 1  in the form of an extract from an XML document is shown in  FIG. 2 . In this example the data stream is described by the element “Bitstream”. The “Bitstream” element contains further elements which are specific to the described bitstream. Thus, an MPEG 4 bitstream is described in this example. The “Bitstream” element, therefore, contains further elements such as “I_VOP,” “P_VOP” or “B_VOP.” The contents of these bitstream-specific elements include a character string such as, for example, “akiyo.mpg4#18-4658,” which represents a reference to a bitstream. To that end, the character string is composed of a reference to the data stream (character string preceding the separator “#,” (for example, akiyo.mpg4) and a reference to the data stream subdomain classified by the element in the form of a start and end address in the data stream (e.g., 18 and 4658).  
         [0005]     The data stream description presented has disadvantages, however. Thus, it is not possible, within the description BSDL_ 1 / 1 , to add a further marking to the elements in addition to their name; for example, with regard to their importance for the overall presentation of the media stream.  
         [0006]     The invention is, therefore, directed toward a new, improved description language for data streams which avoids the disadvantages described.  
       SUMMARY OF THE INVENTION  
       [0007]     The idea on which the present invention is based is to be able to use the elements of the description language free of the restrictions which arise as a result of the fact that the classification of the data stream subdomains is performed solely according to information that is produced from the data stream and, thereby, become independent of the syntax predetermined by the format, the content or the meaning of the data stream.  
         [0008]     Accordingly, a data stream contains data stream subdomains which can be referenced and classified. It also has a data stream syntax which is given by the format and/or the content of the data stream. At least some data stream subdomains are referenced. That is to say, they are provided with a reference which makes them uniquely identifiable. The most outstanding example of a reference of this kind is the description of the position of a data stream subdomain in the data stream via address data. Moreover, the data stream subdomains are classified by assignment to at least one class of a classification. By being classified into a class, they are assigned an attribute predetermined by the class and characteristic for them. The classification is at least partially independent of the syntax of the data stream, with the result that the classification is independent of the syntactical meaning of the data stream subdomains within the data stream. In other words, it does not follow the structure and syntax of the data stream to be described, but contains classes which are independent of the structure, particularly of the coding format, of the data stream and are not related to it in terms of content.  
         [0009]     In this case, the meaning of the classes does not have to emerge exclusively from the data stream description. Quite the contrary, it is an advantage of the inventive method that via such descriptions it is even possible to perform transformations of data streams without the meaning of the classes being known. Alternatively or in addition, provision can be made for the meaning of individual classes to be drawn from a source outside of the data stream.  
         [0010]     Preferably, the classification is carried out in that markers are assigned to the data stream subdomains, with each marker being assigned to the individual classes. Thus, for example, an element of the data stream description which references and classifies a data stream subdomain contains, in addition to the reference, which is embodied as an address specification, for example, the class in the form of the marker, to which a value is assigned which defines the class.  
         [0011]     At least one of the data stream subdomains is subdivided into a number of classes, for which purpose it is assigned, in particular, a number of markers. Thus, the data stream subdomains can be assigned a number of attributes which are determined by the class affiliations.  
         [0012]     It is furthermore advantageous to subdivide at least one of the classes into subclasses and to assign one of these subclasses to at least one of the data stream subdomains. In this way, cascading tree structures corresponding to the aims of the respective applications can be built up.  
         [0013]     At least one of the data stream subdomains can be described in the description subdivided into data stream sub-subdomains which are classified in their turn. In this way, a tree structure also can be generated at the level of the data stream subdomains.  
         [0014]     With regard to the rules for the description of the data stream, even if one wishes to free oneself from the associated data stream syntax, one can nevertheless include information about the respective data stream syntax of the data stream subdomains in the description if this information is still, in fact, to be used later. In this way, the flexibility of the method is linked to the information content of the method described at the beginning. The information can be included, for example, such that the element of the data stream description describing one data stream subdomain in each case has, in addition to an element and/or attribute for the referencing and an element and/or attribute for the classification, independently of the data stream syntax, another element and/or attribute which is dependent on the data stream syntax, while its value specifies the syntactical classification of the data stream subdomains in the data stream.  
         [0015]     It is furthermore advantageous if at least one of the data stream subdomains is assigned a value which corresponds to the value represented by the data stream subdomain in the data stream.  
         [0016]     The referencing of at least one of the data stream subdomains can, as already described, include at least one address specification indicating the position of the data stream subdomains in the data stream.  
         [0017]     Alternatively or in addition, the referencing of at least one of the data stream subdomains can include the specification that the data stream subdomain joins onto the end of the preceding data stream subdomain.  
         [0018]     Alternatively or in addition, the referencing of at least one of the data stream subdomains can include specifications indicating the length of the data stream subdomain.  
         [0019]     The description of the data stream is preferably written in XML (Extensible Markup Language), for which purpose an XML document is generated or is present.  
         [0020]     In XML, each data stream subdomain can be described by an element. In addition, it can be described further by further elements which describe its data stream subdomains.  
         [0021]     The individual data stream subdomains can be referenced by elements and/or attributes to which a value is assigned for referencing purposes.  
         [0022]     The data stream subdomains also can be classified by elements and/or attributes to which a value is assigned for classification purposes.  
         [0023]     In the interests of a unique classification, a class should correspond to each value.  
         [0024]     The data stream is preferably a data record, bit, media, audio, image and/or video stream. Its description then can be used to reduce its resolution, to rearrange the sequence of its data stream subdomains, to filter out violent content or to adapt the data stream in some other way to specific needs.  
         [0025]     The data stream is coded, in particular, in the MPEG-4, MPEG-2, MPEG-1 or JPEG2000 standard.  
         [0026]     A data stream description for describing a data stream which can be produced according to one of the previously described methods can be used quite effectively in a method for transforming a first data stream into a second data stream. In this case, the first data stream contains data stream subdomains which can be referenced and/or classified. The second data stream also contains data stream subdomains which can be referenced and/or classified. There is then provided a data stream description for the first data stream, in which description at least some, preferably almost all, of the data stream subdomains in the first data stream are referenced and/or classified. The first data stream is transformed into the second data stream via a data stream transformation. In this case, such as with the methods described in the prior art, contents can be filtered out, an image resolution reduced and/or the sequence of the data in the data stream reordered. A first data stream description is generated for the second data stream, in which description at least some, preferably almost all, of the data stream subdomains in the second data stream are referenced and/or classified.  
         [0027]     A device which is set up to execute a method of the above-described kind can be implemented, for example, such that for each of the aforementioned method steps there are provided suitable parts which perform the method steps. Advantageous embodiments of the device are derived analogously to the advantageous embodiments of the method.  
         [0028]     A program product for a data processing system that contains software code sections via which one of the described methods can be executed on the data processing system can be achieved by suitable implementation of the method in a programming language and its compilation into code which can be executed by the data processing system. The sections of software code are stored for this purpose. A program product is understood here to refer to a program as a marketable product. It can be present in any form, for example, on paper or on a computer-readable data medium, or it can be distributed via a network.  
         [0029]     Additional features and advantages of the present invention are described in, and will be apparent from, the following Detailed Description of the Invention and the Figures. 
     
    
     BRIEF DESCRIPTION OF THE FIGURES  
       [0030]      FIG. 1  shows a process for description of a method via which adaptation operations can be performed for given media streams on the basis of a language called BSDL.  
         [0031]      FIG. 2  shows an example of a part of a first data stream description in the form of an extract from an XML document.  
         [0032]      FIG. 3  shows an extract from a description for a data stream.  
         [0033]      FIG. 4  shows a method for transforming a first data stream into a second data stream, wherein a description for a data stream is used. 
     
    
     DETAILED DESCRIPTION OF THE INVENTION  
       [0034]     Initially, generally possible embodiments of a method for describing a data stream will be described.  
         [0035]     The structure of the data stream description, that is to say the structure specification BSDL, is at least partially generic, in other words independent of special coding formats, particularly independent of the coding format of the data stream described. Nonetheless, a typing of the elements with regard to specific coding formats is made possible.  
         [0036]     Toward that end, a data stream subdomain a_ 1  [ x ] of the data stream a_ 1  is assigned a marker ms_ 1  [ x ] which specifies the meaning of the data stream subdomain a_ 1  [ x ] for the data stream a_ 1 . Such marker ms_ 1  [ x ] does not have to be generic, but can be bitstream-specific; for example, a VOP in an MPEG-4 video stream can be identified. This can be used to support methods for the transformation of data streams described in the introduction. This results in the advantage that the description of the data stream, particularly the classification, is generic and only the values of the markers ms_ 1  [ x ] can vary; for example, based on a classification schema. Thus, language can be parsed independently of the type of the bitstream a_ 1  via a bitstream-independent processor.  
         [0037]     The description of the data stream can have the following special attributes in this case:  
         [0038]     The data stream description assigns one or more markers m 1 [ i ] to the data stream subdomains a_ 1  [ x ] in the data stream a_ 1 . The markers m_ 1  [ i ] are used to translate the statements of the transformation descriptions XSL onto the data stream. An interpretation of the meaning of a marker m_ 1  [ i ] and/or of the data stream subdomains a_ 1  [ x ] for the data stream a_ 1  is not necessary in this case and not necessarily present.  
         [0039]     The same marker m_ 1  [ i ] can be used for a number of data stream subdomains (e.g., a_ 1  [ x ] and a_ 1  [ y ]) if, for example, the different data stream subdomains a_ 1  [ x ] and a_ 1  [ y ] belong to a semantic unit in the data stream a_ 1  or, for example, including syntactical elements of the same type.  
         [0040]     A data stream subdomain a_ 1  [ x ] identified by the marker m_ 1  [ i ] may contain data stream sub-subdomains a_ 1  [ z ] which, in turn, are identified by markers m_ 1  [ j ]. This is advantageous, for example, with regard to the execution speed of the transformation when transformations can be performed via different transformation descriptions XSL with different granularity. In one possible embodiment, these data stream subdomains a_ 1  [ z ] can be marked recursively starting from the identification of the data stream subdomain a_ 1  [ x].    
         [0041]     A data stream subdomain a_ 1  [ x ] can be assigned a value v[ x ] which corresponds, for example, to the value represented by a_ 1  [ x ] in the bitstream. This value can be changed during a transformation; e.g., using XSLT.  
         [0042]     The referencing in the form of an addressing of the data stream subdomains a_ 1  [ x ] can be implemented in one embodiment in one of the following ways:  
         [0043]     Specification of the start and/or end of the data stream subdomain a_ 1  [ x ] by counting units from the start of the data stream.  
         [0044]     Specification of the start and/or end of the data stream subdomain a_ 1  [ x ] by counting units from the start of the preceding data stream subdomain a_ 1  [ w].    
         [0045]     Specification of the start and/or end of the data stream subdomain a_ 1  [ x ] by counting units from the end of the preceding data stream subdomain a_ 1  [ w].    
         [0046]     Specification of the start and/or end of the data stream subdomain a_ 1  [ x ] by counting units from the start of the data stream subdomain a_ 1  [ a ] which contains the data stream subdomain a_ 1  [ x].    
         [0047]     Specification of the end of the data stream subdomain a_ 1  [ x ] by counting units from the start of the data stream subdomain a_ 1  [ x].    
         [0048]     Without explicit specification of the start of the data stream subdomain a_ 1  [ x ] it can be specified that the start of the data stream subdomain a_ 1  [ x ] joins onto the end of the preceding data stream subdomain a_ 1  [ w ] or corresponds to the start of the data stream subdomain a_ 1  [ a ] if the data stream subdomain a_ 1  [ x ] is the first subdomain contained in the data stream subdomain a_ 1  [ a].    
         [0049]     These values can be specified by counting units. In this case, one or more units, such as bits or bytes, can be used.  
         [0050]     Not all the aforementioned attributes must be present in a description. Instead, the structure elements which model these attributes also can be used independently of one another.  
         [0051]     An extract of an exemplary embodiment of a description of a data stream in XML is shown in  FIG. 3 .  
         [0052]     In this example, the element “gBSD” describes an MPEG-4 bitstream. In contrast to the example according to the prior art explained in the background, the (description) elements (in this case, for example, the “gBSDUnit” and the “Header” element) which are contained in the element “gBSDm” are generic and independent of the described data stream.  
         [0053]     An element “gBSDUnit” describes a data domain which is referenced by the values in the attributes “start” and “length” and which can be used for the adaptation of the data stream as a unit. In this example, the elements “gBSDUnit” can be classified with a value in the attribute “marker.” Depending on this classification, individual domains in the data stream can be identified and adaption statements executed on these domains. An important aspect in this case is that the meaning of the classification is currently not contained in the description.  
         [0054]     In contrast to this, a data domain which is identified by an element “gBSDUnit” is classified and a meaning assigned via the value in the attribute “syntacticalLabel.” In the example, the meaning is, for example, that a data domain represents a B_VOP (syntacticalLabel=“:M4V:B_VOP”) in the MPEG-4 video (see alias “:M4V:” or “urn:mpeg:mpeg4:video:cs:syntacticalLabels”) data stream.  
         [0055]     The referenced data domains and, consequently, the elements “gBSDUnit” can be nested in one another, as shown, for example, by the elements with the marker E and those with the marker A.  
         [0056]     With reference to  FIG. 4 , a transformation is described in which descriptions BSD of data streams are used and also even transformed.  FIG. 4  shows an encoder Enc which supplies a first data stream a_ 1  and a first data stream description BSD_ 1 / 1  for the first data stream.  
         [0057]     The first data stream description BSD_ 1 / 1  for the first data stream which describes the first data stream a_ 1  and is compliant with regard to a structure specification BSDL is used twice: Firstly, the first data stream description BSD_ 1 / 1  for the first data stream is used together with a data stream transformation description XSL_a in order to transform the first data stream a_ 1  in the form of a media stream into a second data stream a_ 2  in the form of a media stream.  
         [0058]     Next, the first data stream description BSD_ 1 / 1  itself is transformed under the control of a data stream description transformation description XSL_b into a first data stream description BSD_ 2 / 1  for the second data stream. The data stream description transformation description XSL_b can be embodied here in such a way that the data stream addresses in the first data stream description BSD_ 2 / 1  for the second data stream are correct in relation to the second data stream a_ 2 . In this way, a further transformation which correspondingly contains further transformation descriptions in the form of data stream transformation descriptions and data stream description transformation descriptions can be performed again directly and according to exactly the same procedure without additional intermediate processing steps. Thus, a direct cascading of transformations is possible in a uniform way. The structure specification for the BSDL schemas corresponds to the outlined descriptions of data streams.  
         [0059]     The data stream transformation description XSL_a and the data stream description transformation description XSL_b can be generated in advance or, alternatively, generated automatically by a processing unit which, for example, takes into account additional transmitted information about the requesting terminal device in a client-server scenario.  
         [0060]     If the first data stream description BSDL_ 1 / 1  for the first data stream is not provided immediately by the encoder Enc at the time of generation of the first data stream a_ 1 , it can be generated according to the method in the prior art via a parser from the first data stream a_ 1 .  
         [0061]     In the presented exemplary embodiment, the generation of second data stream descriptions for the first and/or second data stream is dispensed with entirely.  
         [0062]     The data stream transformation of the first data stream a_ 1  into the second data stream a_ 2  using the first data stream description BSD_ 1 / 1  for the first data stream and the data stream transformation description XSL_a is performed in an XSL and data stream processor XBP.  
         [0063]     The data stream description transformation of the first data stream description BSD_ 1 / 1  for the first data stream into the first data stream description BSD 2 / 1  for the second data stream is performed, particularly parallel thereto, in an XSL processor XSLP.  
         [0064]     Data stream transformation and data stream description transformation also can be combined in one process.  
         [0065]     Moreover, the data stream transformation description XSL_a and the data stream description transformation description XSL_b can be combined in one document.  
         [0066]     Although the present invention has been described with reference to specific embodiments, those of skill in the art will recognize that changes may be made thereto without departing from the spirit and scope of the present invention as set forth in the hereafter appended claims.