WO2009005226A1 - Device and method for encoding/decoding video data - Google Patents

Device and method for encoding/decoding video data Download PDF

Info

Publication number
WO2009005226A1
WO2009005226A1 PCT/KR2008/003304 KR2008003304W WO2009005226A1 WO 2009005226 A1 WO2009005226 A1 WO 2009005226A1 KR 2008003304 W KR2008003304 W KR 2008003304W WO 2009005226 A1 WO2009005226 A1 WO 2009005226A1
Authority
WO
WIPO (PCT)
Prior art keywords
decoding
information
decoder
unit
bitstream
Prior art date
Application number
PCT/KR2008/003304
Other languages
French (fr)
Inventor
Euee-Seon Jang
Sun-Young Lee
Chung-Ku Lee
Original Assignee
Humax Co., Ltd.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Humax Co., Ltd. filed Critical Humax Co., Ltd.
Publication of WO2009005226A1 publication Critical patent/WO2009005226A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/65Transmission of management data between client and server
    • H04N21/654Transmission by server directed to the client
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/633Control signals issued by server directed to the network components or client
    • H04N21/6332Control signals issued by server directed to the network components or client directed to client
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/633Control signals issued by server directed to the network components or client
    • H04N21/6332Control signals issued by server directed to the network components or client directed to client
    • H04N21/6336Control signals issued by server directed to the network components or client directed to client directed to decoder

Definitions

  • the present invention relates to encoding/decoding of video data, more specifically to a device and a method for encoding/decoding video data through organic coupling or selective activation of functional units.
  • a video is converted to a bitstream by an encoder.
  • the bitstream is stored depending on a coding type that satisfies the constraint condition of the encoder.
  • MPEG requests syntax and semantics, which are the constraint condition of the encoder.
  • the syntax which refers to the structure, format, or length of data, shows the sequence of expressing the data.
  • the syntax is to meet a rule for encoding / decoding and defines the sequence and length of each element of the bitstream and a corresponding data format.
  • the semantics refers to the meaning of each bit that constitutes data. In other words, the semantics shows the meaning of each element of the bitstream.
  • bitstream can be generated in various types depending on the encoding condition or the applied standard (or codec) of the encoder.
  • each standard e.g. MPEG-I, MPEG-2, MPEG-4 and MPEG-4 AVC
  • MPEG-4 AVC has different bitstream syntaxes.
  • bitstream encoded according to each standard or encoding condition has different types (i.e. syntax and semantics).
  • a decoder corresponding to a pertinent encoder must be used to perform the decoding of the bitstream.
  • the conventional bitstream decoder has a restriction that must satisfy the constraint condition of the encoder. This restriction makes it difficult to realize an integration decoder corresponding to a plurality of standards.
  • the present invention which is contrived to solve the aforementioned problems, provides a bitstream decoding device and a method thereof that can decode a bitstream encoded in various types (syntaxes and semantics) in accordance with each standard (e.g. MPEG-I, MPEG-2, MPEG-4 and MPEG-4 AVC) by using the same information recognizing method.
  • the present invention provides a bitstream encoding device and a method thereof that generate an extended bitstream added with a decoder description or independently generate a bitstream and a decoder description in order to decode a bitstream, encoded in various types (syntaxes and semantics), by using the same information recognizing method.
  • the present invention also provides a bitstream decoding device and a method thereof that parse a bitstream, compressed in various methods, by using the same information analyzing method and organically control each functional unit for performing the decoding by using the parsed data.
  • the present invention provides a bitstream encoding device and a method thereof that can apply a hierarchy structure of a codec to syntax parsing and decoding operations to more efficiently write a decoder description.
  • the present invention provides a bitstream decoding device and a method thereof that can suggest scheduling management of each codec and an organic processing structure (e.g. a parallel coupling structure, a series combining structure, an independent processing structure and an individual processing structure) by using a decoder description.
  • an organic processing structure e.g. a parallel coupling structure, a series combining structure, an independent processing structure and an individual processing structure
  • the present invention provides a bitstream encoding device and a method thereof that can design and build a system in various ways by using a written decoder description or hierarchy information only.
  • the present invention provides a bitstream encoding/decoding device and a method thereof that can commonly apply a syntax analyzing method for decoding various types of bit streams.
  • the present invention provides a bitstream encoding/decoding device and a method thereof that can apply a set of new commands for parsing various types of bitstreams by using a common syntax analyzing method.
  • the present invention provides a bitstream decoding device and a method thereof that can allow a decoder to easily decode a bitstream when a syntax element is changed, added or deleted.
  • the present invention provides a bitstream decoding device and a method thereof that can allow some elements used to decode a bit stream to share the element information (i.e. a result from syntax parsing) of analyzed syntax.
  • the present invention provides a bitstream decoding device and a method thereof that can allow the element information of already-analyzed syntax to be used to analyze the syntax element of a following bit stream.
  • the present invention provides a bitstream decoding device and a method thereof that can group various functions included in decoding methods suggested by a variety of standards (or codec) according to each functional unit to put the grouped functions in a toolbox.
  • the present invention provides a bitstream decoding device and a method thereof that can selectively use some functional units necessary for a toolbox in order to decode a bitstream encoded in various types.
  • the present invention provides a bitstream decoding device and a method thereof that can easily change, add or delete the functional units stored in a toolbox.
  • the present invention is to internationally standardize the generation of codec integration for decoding a bitstream, a decoder description for allowing a bitstream to be processed by the same information analyzing method and the realization of an extended bitstream.
  • a decoding device can include a toolbox, configured to include a plurality of functional units which are realized to perform individually each process determined by at least one decoding standard to decode a bitstream; a description storing unit, configured to store partial decoder descriptions for controlling operations of some or all of the functional units; and a decoder forming unit, configured to control an encoded video datum to be decoded as video datum by selectively loading some of all of the functional units with reference to at least one partial decoder description.
  • a working memory for allowing a functional unit loaded by a control of the decoder forming unit to perform a process can be included in the decoder forming unit or coupled to the decoder forming unit.
  • the decoder forming unit can include a storing unit, configured to store at least one of control signal/context information (CSCI) generated by a process performed by at least one functional unit and a datum for decoding; and a connection control unit, configured to control the functional unit(s) to be selectively loaded.
  • the toolbox can include at least one parsing functional unit configured to perform the syntax parsing of the bitstream and a plurality of decoding functional units configured to decode the encoded video datum.
  • a partial decoder description being stored in the description storing unit can include information related to a hierarchy of functional units, and the decoder forming unit performs a call between hierarchies of at least one functional unit by referring to the information.
  • the decoder forming unit can controls an object of an uppermost hierarchy to be generated and executed, and executing the object can load functional units included in the uppermost hierarchy and a calling unit for calling a hierarchy designated by the hierarchy information. If a datum necessary for at least one functional unit pertaining to a corresponding hierarchy to perform a predetermined process is stored in a storing unit, the calling unit can load the corresponding hierarchy.
  • the loaded functional unit can start to perform a process.
  • a result datum obtained by a process performed by each functional unit can be stored in the storing unit.
  • a hierarchy structure being recognized by the information related to a hierarchy can include at least one of a sequence layer, a picture layer, a slice layer, a macroblock layer and a block layer, and a lower hierarchy can be called by an upper hierarchy.
  • An encoded decoder description corresponding to a decoder description for forming the partial decoder description can be provided as a datum independent of the bitstream or as an element of an extended bitstream combined with the bitstream.
  • the decoding device can further include a dividing unit configured to divide the extended bitstream into the encoded decoder description and the bitstream.
  • the decoding device can further include a description decoder configured to convert the encoded decoder description to the decoder description.
  • the storing unit can include a CSCI storing unit, configured to store control signal/context information (CSCI) generated by the parsing functional unit; and a data storing unit, configured to store a datum for a decoding, which is at least one of a datum corresponding to the encoded video datum generated by the parsing functional unit and a process-datum processed by the decoding functional unit.
  • CSCI control signal/context information
  • the partial decoder description being stored in the description storing unit can include a decoding hierarchy table (DHT) which indicates information related to a hierarchy structure for decoding the encoded video datum and lower hierarchies per each hierarchy; a syntax element table (SET) which indicates a process for generating information related to a bitstream syntax and element information corresponding to the bitstream syntax; a syntax rule table (S-RT) which indicates names of a connection information between the bitstream syntaxes, information related to a lower hierarchy to be called per each hierarchy and CSCI in which a result datum generated by a process performed by the SET is to be stored; a control signal and context information table (CSCIT) which indicates a detailed information related to CSCI per hierarchy structure; a FU rule table (F-RT) which indicates a called or activated order of a plurality of decoding functional units based on the hierarchy structure; a FU list (FL) which indicates a list of the decoding functional units; and a FU-CSCIT which indicates CSCI necessary for
  • connection control unit can control at least one functional unit pertaining to an uppermost hierarchy to be loaded by using the F-RT.
  • the parsing functional unit can generate at least one of the CSCI and a datum to be decoded by referring to at least one of the SET, the S-RT and the CSCIT.
  • the decoding functional unit can perform a predetermined process by referring to at least one of the FL, the F-RT, the FU-CSCIT and the CSCIT.
  • the decoder description can include at least one distinguishment area, and information for forming the partial decoder description can be inserted into the distinguishment area(s).
  • the partial decoder description can include designated information corresponding to a codec number (codec No.) and a profile and level number (profile and level No.) to decode the bitstream, and the description decoder can extract tables in quantities of n corresponding to the designated information among a plurality of partial decoder descriptions that are pre-stored in the description storing unit.
  • the distinguishment areas in qualities of m, m being a natural number, among the distinguishment areas can include designated information corresponding to a codec number (codec No.) and a profile and level number (profile and level No.) of a corresponding partial decoder description, and the distinguishment areas in qualities of k, k being a natural number, can include binary code information for forming a corresponding partial decoder description, where the description decoder can extract m partial decoder descriptions corresponding to the designated information among the plurality of partial decoder descriptions pre-stored in the description storing unit, generate k tables by using the binary code information and store the k generated tables in the description storing unit.
  • codec No. codec No.
  • profile and level number profile and level No.
  • a decoding device can include a parser, configured to receive schema information for analyzing a bitstream and converting the bitstream to a meaningful datum to output the datum; and a decoding solution, configured to output a video datum by performing a bitstream decoding using the datum.
  • the decoding device can further include a toolbox configured to include at least one functional unit which is realized to perform a predetermined process; and a decoder forming unit configured to receive connection control information corresponding to the bitstream, set a connection relationship of at least one functional unit of the toolbox and control the functional unit(s) to be loaded on the decoding solution.
  • a toolbox configured to include at least one functional unit which is realized to perform a predetermined process
  • a decoder forming unit configured to receive connection control information corresponding to the bitstream, set a connection relationship of at least one functional unit of the toolbox and control the functional unit(s) to be loaded on the decoding solution.
  • the decoder forming unit can receive the datum from the parser and provide the received datum to the decoding solution.
  • the decoding device can further include a dividing unit configured to receive a decoder description and divides the received decoder description into the schema information and the connection control information to output the schema information and the connection control information, respectively.
  • the decoding solution can include a dividing unit configured to receive a decoder description and divides the received decoder description into the schema information and the connection control information to output the schema information and the connection control information, respectively.
  • the schema information can include information related to details of syntax information included in the bitstream and comprises at least one of a length, a meaning, an appearance condition and a repeated appearance frequency of the syntax information.
  • the schema information can be written by using an XML grammar.
  • connection control information can be written by using a CAL markup language (CALML).
  • CALML CAL markup language
  • the toolbox can be formed to include subtoolboxes which are sets of the functional units distinguished according to an applied standard.
  • the decoding solution can include a working memory configured to allow at least one functional unit to be loaded and operated.
  • the toolbox can be an element of the decoder forming unit.
  • a functional unit loaded on the decoding solution can perform a predetermined process in which at least one of the datum and an output datum, outputted by a functional unit previously performing the process, is determined as an input datum.
  • another aspect of the present invention features a decoding method that can be universally used for various standards and/or a recorded medium recorded with a program for executing the method thereof.
  • the decoding method can include(a) generating and storing a decoder description corresponding to inputted encoded decoder description information, the decoder description being formed to include a plurality of partial decoder descriptions; and (b) loading a parsing functional unit and at least one decoding functional unit pertaining to an uppermost hierarchy with reference to at least one partial decoder description, where the parsing functional unit can perform a syntax parsing of a bitstream, and the decoding functional unit(s) of the uppermost hierarchy can perform a corresponding process if control signal/context information (CSCI) for performing a predetermined process and a datum for a decoding is stored at a storing unit by the parsing functional unit, and if the control signal/context information (CSCI) for activating a first hierarchy and the datum for a decoding is stored in the storing unit to correspond a hierarchy structure, the first hierarchy can be loaded by an activated second hierarchy.
  • CSCI control signal/context information
  • the decoding functional unit can determine whether to be called or activated corresponding to a hierarchy structure of the encoded video datum, and a video datum corresponding to the bitstream can be outputted by a process performed at least one time by each decoding functional unit of the decoder description.
  • the parsing functional unit and the decoding functional unit(s) can be realized to independently perform functions suggested by each decoding standard to decode the bitstream.
  • the storing unit can include a CSCI storing unit, configured to store CSCI generated by the parsing functional unit; and a data storing unit, configured to store a datum for a decoding, which is at least one of a datum corresponding to the encoded video datum generated by the parsing functional unit and a process-datum processed by a decoding functional unit.
  • the decoding functional units can start their operations by storing CSCI necessary to perform a predetermined process and the datum for a decoding in the storing unit.
  • a dedicated storing space for each decoding functional unit can be allotted in the storing unit.
  • the decoder description can include a decoding hierarchy table (DHT) which indicates information related to a hierarchy structure for decoding the encoded video datum included in the bitstream and lower hierarchies per each hierarchy; a syntax element table (SET) which indicates a process for generating information related to a bitstream syntax and element information corresponding to the bitstream syntax; a syntax rule table (S-RT) which indicates names of a connection information between the bitstream syntaxes, information related to a lower hierarchy to be called per each hierarchy and CSCI in which a result datum generated by a process performed by the SET is to be stored; a control signal and context information table (CSCIT) which indicates a detailed information related to CSCI per hierarchy structure; a FU rule table (F-RT) which indicates a called or activated order of a plurality of decoding functional units based on the hierarchy structure; a FU list (FL) which indicates a list of the decoding functional units; and a FU-CSCIT which indicates CSCI necessary for the decoding functional
  • At least one functional unit pertaining to an uppermost hierarchy can be controlled to be activated or called by using the F-RT.
  • At least one of the CSCI and the datum to be decoded can be generated by referring to at least the SET, the S-RT and the CSCIT is generated.
  • a recorded medium tangibly embodying a program of instructions executable by a decoding device to perform a decoding method including (a) generating and storing a decoder description corresponding to an inputted encoded decoder description information, the decoder description being formed to include a plurality of partial decoder descriptions; and (b) loading a parsing functional unit and at least one decoding functional unit pertaining to an uppermost hierarchy with reference to at least one partial decoder description, where the parsing functional unit can perform a syntax parsing of a bitstream, and the decoding functional unit(s) of the uppermost hierarchy can perform a corresponding process if control signal/context information (CSCI) for performing a predetermined process and a datum for a decoding is stored at a storing unit by the parsing functional unit, and if the control signal/context information (CSCI) for activating a first hierarchy and the datum for
  • CSCI control signal/context information
  • a decoding method can include (a) converting a bitstream to a meaningful datum to output the datum by using an inputted schema information; (b) setting a sequence of successive operations of functional units by using an inputted connection control information; and (c) allowing a bitstream decoding to be performed by the functional units by using the datum.
  • the (b) can be performed by allowing a decoder forming unit to set a sequence of processes to be performed by at least one of a plurality of functional units included in a toolbox by using the connection control information.
  • the schema information can be information related to details of a syntax information included in the bitstream and comprises at least one of a length, a meaning, an appearance condition and a repeated appearance frequency of the syntax information.
  • the schema information can be written by using an XML grammar.
  • the connection control information can be written by using a CAL markup language (CALML).
  • the functional unit can perform a predetermined process in which at least one of the datum and an output datum, outputted by a functional unit previously performing the process, is determined as an input datum.
  • a recorded medium tangibly embodying a program of instructions executable by a decoding device to perform a decoding method, the recorded medium being readable by the decoding device, including (a) inputted schema information; (b) setting a sequence of successive operations of functional units by using an inputted connection control information; and (c) allowing a bitstream decoding to be performed by the functional units by using the datum.
  • an integrated codec apparatus and a method thereof in accordance with the present invention can decode a bitstream encoded in various types (syntaxes and semantics) in accordance with each standard (e.g. MPEG-I, MPEG-2, MPEG-4 and MPEG-4 AVC) by using the same information recognizing method.
  • each standard e.g. MPEG-I, MPEG-2, MPEG-4 and MPEG-4 AVC
  • the present invention can also generate an extended bitstream added with a decoder description to decode a bitstream, encoded in various types (syntaxes and semantics), by using the same information recognizing method.
  • the present invention can apply a hierarchy structure of a codec to syntax parsing and decoding operations to more efficiently write a decoder description.
  • the present invention can suggest scheduling management of each codec and an organic processing structure (e.g. a parallel coupling structure, a series combining structure, an independent processing structure and an individual processing structure) by using a decoder description.
  • the present invention can design and build a system in various ways by using a written decoder description only.
  • the present invention can parse a bitstream, compressed in various methods, by using the same information analyzing method and organically control each functional unit for performing the decoding by using the parsed data.
  • the present invention can commonly apply a syntax analyzing method for decoding various types of bit streams.
  • the present invention can apply a set of new commands for parsing various types of bitstreams by using a common syntax analyzing method.
  • the present invention can easily decode a bitstream when a syntax element is changed, added or deleted.
  • the present invention can allow some elements used to decode a bit stream to share the element information (i.e. a result from syntax parsing) of analyzed syntax.
  • the present invention can allow element information of analyzed syntax to be used to analyze the syntax element of a following bit stream.
  • the present invention can be used for the integration of a video or still image codec performing the processing in units of blocks besides MPEG-I, MPEG-2, MPEG-4 and MPEG-4 AVC codecs.
  • the present invention can group various functions included in decoding methods suggested by a variety of standards (or codec) according to each functional unit to put the grouped functions in a toolbox.
  • the present invention can selectively use some functional units necessary for a toolbox in order to decode a bitstream encoded in various types.
  • the present invention provides a bitstream decoding device and a method thereof that can easily change, add or delete the functional units stored in a toolbox.
  • FIG. 1 shows a brief structure of a typical decoder
  • FIG. 2 shows a brief structure of a typical encoder
  • FIG. 3 shows a brief structure of a decoder in accordance with an embodiment of the present invention
  • FIG. 4 shows a brief structure of a decoding processing unit in accordance with an embodiment of the present invention
  • FIG. 5 shows a brief structure of a decoding processing unit in accordance with another embodiment of the present invention.
  • FIG. 6 shows a brief structure of an extended bitstream in accordance with an embodiment of the present invention
  • FIG. 7 shows types of functional units for syntax parsing in accordance with an embodiment of the present invention
  • FIG. 8 shows types of functional units performing decoding processing in accordance with an embodiment of the present invention
  • FIG. 9 shows a hierarchy structure determined by a decoding hierarchy table (DHT) in accordance with an embodiment of the present invention.
  • DHT decoding hierarchy table
  • FIG. 10 shows a call structure between hierarchies and a connection structure in a hierarchy, determined by a syntax rule table (S-RT) in accordance with an embodiment of the present invention
  • FIG. 11 is a view for describing an interface set for a functional unit to be applied to a plurality of standards in accordance with an embodiment of the present invention
  • FIG. 12 shows a connection structure of a dedicated buffer space between nodes per each hierarchy in accordance with an embodiment of the present invention
  • FIG. 13 shows how a dedicated buffer space for storing CSCI data is included in accordance with an embodiment of the present invention
  • FIG. 14 shows an including relationship of a dedicated buffer space for storing output data outputted by a functional unit in accordance with an embodiment of the present invention
  • FIG. 15 conceptually shows parallel processing syntax parsing and data decoding in accordance with an embodiment of the present invention
  • FIG. 16 shows the structure of an extended bitstream in accordance with a first embodiment of the present invention
  • FIG. 17 shows the structure of an extended bitstream in accordance with a second embodiment of the present invention
  • FIG. 18 shows the structure of an extended bitstream in accordance with a third embodiment of the present invention
  • FIG. 19 shows the structure of an extended bitstream in accordance with a fourth embodiment of the present invention
  • FIG. 20 shows the structure of an extended bitstream in accordance with a fifth embodiment of the present invention.
  • FIG. 21 shows the structure of an extended bitstream in accordance with a sixth embodiment of the present invention.
  • FIG. 22 shows the structure of an extended bitstream in accordance with a seventh embodiment of the present invention.
  • FIG. 23 shows the structure of an extended bitstream in accordance with an eighth embodiment of the present invention
  • FIG. 24 is a block diagram showing an encoder in accordance with an embodiment of the present invention
  • FIG. 25 shows a brief structure of a decoder in accordance with an embodiment of the present invention.
  • FIG. 26 detailedly shows how a decoding unit processes a bitstream in accordance with an embodiment of the present invention
  • FIG. 27 shows how a decoder description is inputted in accordance with another embodiment of the present invention
  • FIG. 28 shows how a decoder description is inputted in accordance with another embodiment of the present invention
  • FIG. 29 shows the structure of a decoding unit in accordance with another embodiment of the present invention
  • FIG. 30 shows the structure of a BSDL parser in accordance with another embodiment of the present invention.
  • FIG. 31 through FIG. 33 shows how a BSDL and a binary decoder description (BDD) are hanged to each other in accordance with an embodiment of the present invention.
  • BDD binary decoder description
  • first and second can be used in describing various elements, but the above elements shall not be restricted to the above terms. The above terms are used only to distinguish one element from the other. For instance, the first element can be named the second element, and vice versa, without departing the scope of claims of the present invention.
  • the term “and/or” shall include the combination of a plurality of listed items or any of the plurality of listed items. When one element is described as being “connected” or “accessed” to another element, it shall be construed as being connected or accessed to the other element directly but also as possibly having another element in between.
  • FIG. 1 shows a brief structure of a typical decoder
  • FIG. 2 shows a brief structure of a typical encoder
  • an MPEG-4 decoder 100 typically includes a variable length decoding unit 110, an inverse scanning unit 115, an inverse DC/ AC prediction unit 120, an inverse quantization unit 125, an inverse discrete cosine transform unit 130 and a VOP reconstruction unit 135. It shall be evident that the decoder 100 has a structure that can be changed depending on an applied standard and some elements can be replaced with other elements.
  • variable length decoding unit 110 determines a quantized discrete cosine transform (DCT) coefficient by using a predetermined Huffman table and the inverse scanning unit 115 generates data having the same sequence as a corresponding video 140 by performing inverse scanning.
  • DCT discrete cosine transform
  • the inverse scanning unit 115 outputs corresponding values in the inverse order of scanning in various ways.
  • a scanning direction can be determined depending on the distribution of a frequency band.
  • the scanning method can be performed in a zigzag form.
  • the scanning can be performed per codec in various ways.
  • Syntax parsing can be integratedly performed by the variable length decoding unit 110 or by an element for processing a bitstream 105 prior to the variable length decoding unit 110.
  • the syntax is parsed by a predetermined rule only, to correspond to the pertinent standard.
  • the inverse DC/ AC prediction unit 120 determines the direction of a reference block for prediction by using the size of the DCT coefficient at a frequency band.
  • the inverse quantization unit 125 performs the inverse quantization of inversely scanned data. In other words, the inverse quantization unit 125 returns DC and
  • the inverse discrete cosine transform unit 130 evaluates an actual video data pixel value to generate a video object plane (VOP) by performing an inverse discrete cosine transform.
  • VOP video object plane
  • the VOP reconstruction unit 135 reconstructs a video signal by using the VOP generated by the inverse discrete cosine transform unit 130 and outputs the reconstructed signal.
  • an MPEG-4 encoder 200 typically includes a discrete cosine transform unit 210, a quantization unit 215, a DC/ AC prediction unit 220, a scanning unit 230 and a variable length encoding unit 235.
  • Each element included in the encoder 200 performs the inverse functions of the corresponding elements of the decoder 100. This shall be evident to any person of ordinary skill in the art. Briefly, the encoder 200 converts a video signal (i.e. a digital video pixel value) to a frequency value through the DCT and the quantization in order to performs the encoding. Then, the encoder 200 performs variable length encoding that differentiates the length of a corresponding bit according to the frequency of information to output it in a compressed bitstream format.
  • a video signal i.e. a digital video pixel value
  • FIG. 3 shows a brief structure of a decoder in accordance with an embodiment of the present invention
  • FIG. 4 shows a brief structure of a decoding processing unit in accordance with an embodiment of the present invention
  • FIG. 5 shows a brief structure of a decoding processing unit in accordance with another embodiment of the present invention
  • FIG. 6 shows a brief structure of an extended bitstream in accordance with an embodiment of the present invention
  • FIG. 7 shows types of functional units for syntax parsing in accordance with an embodiment of the present invention
  • FIG. 8 shows types of functional units performing decoding processing in accordance with an embodiment of the present invention
  • FIG. 9 shows a hierarchy structure determined by a decoding hierarchy table (DHT) in accordance with an embodiment of the present invention
  • DHT decoding hierarchy table
  • FIG. 10 shows a call structure between hierarchies and a connection structure in a hierarchy, determined by a syntax rule table (S-RT) in accordance with an embodiment of the present invention.
  • FIG. 11 is a view for describing an interface set for a functional unit to be applied to a plurality of standards in accordance with an embodiment of the present invention
  • FIG. 12 shows a connection structure of a dedicated buffer space between nodes per each hierarchy in accordance with an embodiment of the present invention.
  • FIG. 13 shows an including relationship of a dedicated buffer space for storing CSCI data in accordance with an embodiment of the present invention
  • FIG. 14 shows an including relationship of a dedicated buffer space for storing output data outputted by a functional unit in accordance with an embodiment of the present invention.
  • FIG. 11 is a view for describing an interface set for a functional unit to be applied to a plurality of standards in accordance with an embodiment of the present invention
  • FIG. 12 shows a connection structure of a dedicated buffer space between nodes per each hierarchy in accordance with
  • data is provided to a decoder 300.
  • the data is extracted as hierarchy information or helps the hierarchy information to be generated, in order to perform an encoding/decoding method in accordance with the hierarchy structure of the present invention.
  • the data corresponding to the hierarchy information can form an extended bitstream along with a bitstream before being provided to the decoder 300 or can be provided to the decoder 300 independently of the bitstream.
  • a storing unit of the decoder 300 pre-stores hierarchy information corresponding to pertinent data, providing the pertinent data can be obviously omitted.
  • the decoder 300 including a decoding processing unit 320 that decodes a bitstream has a structure that is different from the conventional decoder (refer to FIG. 1).
  • the decoder 300 includes a dividing unit 310 and the decoding processing unit 320. It shall be obvious that at least one of the elements (e.g. the dividing unit 310, the decoding processing unit 320 or at least one element included in the decoding processing unit 320) can be realized as a software program (or a combination of program codes) , which is designed to perform a function described below.
  • the dividing unit 310 divides the inputted extended bitstream 305 into an encoded decoder description 313 and a typical bitstream 316 (hereinafter, referred to as "conventional bitstream") and inputs each of them into the decoding processing unit.
  • the encoded decoder description 313 for providing the hierarchy information can be inputted into a description decoder 505 and the conventional bitstream 316 can be inputted into a decoder forming unit 420.
  • the dividing unit 310 can be omitted.
  • the conventional bitstream 316 can have the identical format to the bitstream 105 of FIG.
  • the extended bitstream 305 and the encoded decoder description 313 of FIG. 6 is an only example for the convenience of description and understanding. It shall be obvious that the format of the hierarchy information and/or the extended bitstream 305 in accordance with the present invention are not limited to the example of FIG. 6.
  • the hierarchy information indicates indicating a hierarchy structure for decoding encoded video data included in the conventional bitstream 316, the designation of a hierarchy to be called by each hierarchy and a called or activated sequence between functional units.
  • the hierarchy information can be also formed in various ways. However, it is assumed that the hierarchy information is formed to have a plurality of segmentated information (hereinafter, referred to as "decoder description”) in the below description.
  • the encoded decoder description 313 includes configuration information of the conventional bitstream 105 and information related to the encoding type of the conventional bitstream 316 (or connection information between the functional units) in order to parse a bitstream encoded by various encoding methods (or encoding standards) and/or the conventional bitstream 316 encoded by a function selected by a user among various functions, by using a common analyzing method.
  • the encoded decoder description 313 can be included in the extended bitstream 305 before being provided to decoder 300 (refer to FIG. 3). Of course, the encoded decoder description 313 can be provided to the decoder 300 in the form of independent bitstreams or data.
  • the encoded decoder description 313 can be written by any description method capable of being recognized and/or analyzed by a description decoder 405.
  • the encoded decoder description 313 can be written by using the description method such as a textual description or a binary description.
  • the description decoder 405 can be omitted.
  • the encoded decoder description 313 can be decoded by the description decoder 405 as a decoder description 314.
  • the decoder description 314 can be divided into partial decoder descriptions such as a functional unit list (FL) 610, a functional unit rale table (F-RT) 620, a functional unit CSCIT (FU-CSCIT) 630, a control signal and context information table (CSCIT) 640, a decoding hierarchy table (DHT) 650, a syntax element table (SET) 660, a syntax-rule table (S-RT) 670 and a default value table (DVT) 680.
  • FL functional unit list
  • F-RT functional unit rale table
  • FU-CSCIT functional unit CSCIT
  • CSCIT control signal and context information table
  • DHT decoding hierarchy table
  • SET syntax element table
  • S-RT syntax-rule table
  • DVD default value table
  • the aforementioned partial decoder descriptions can be used as hierarchy information for allowing a plurality of functional units of the decoder 300 in accordance with the present invention to be activated corresponding to the hierarchy structure of encoded video data and to perform each pre-designated process.
  • the partial decoder descriptions can be also used as operation control information that determines which input data each functional unit uses to perform a designated process and which name information each functional unit uses when storing result data generated from the performance of the process.
  • the operation control information can be obviously included in the hierarchy information.
  • the hierarchy information can be embodied by at least one of the F-RT 620, the DHT 650 and the S-RT 670.
  • the encoded video data has a hierarchy dependant structure consisting of "an uppermost hierarchy, a next hierarchy... a next hierarchy and a lower most hierarchy," the uppermost hierarchy is firstly activated (i.e. an object of the uppermost hierarchy is generated and executed), and successively, the next hierarchies are activated. Finally, the lowermost hierarchy is activated. Even though each hierarchy is successively activated, the decoding of the encoded video data may not be completed by the successive operations of the functional units included in each hierarchy. In a case, alternate operations of the functional units of the plurality of hierarchies can complete the decoding of the encoded video data.
  • CSCI control signal/context information
  • the calling unit of the activated next hierarchy generates and executes an object of the pertinent hierarchy if CSCI for at least one decoding functional unit of the same hierarchy to perform the process and data for decoding are stored at the CSCI storing unit 430.
  • This activates all the decoding functional units included in the pertinent object and at least one calling unit pertaining to a next hierarchy included in the pertinent object.
  • performing an object of one hierarchy can call a next hierarchy.
  • Each part decoder description can form a decoder description in variously changeable orders.
  • the DHT 650 can be information related to hierarchy structure of each codec and lower hierarchies per each hierarchy (refer to FIG. 9).
  • the hierarchy structure of each codec can be represented as a structure between upper and lower hierarchies, which is segmentalized into a sequence layer, a GOP layer, a VOP layer, a slice layer, a macroblock (MB) layer and a block layer, for example.
  • each codec can include at least one layer and each hierarchy can include at least one object.
  • the decoding process of encoded video data including a plurality of hierarchies will be briefly described by giving examples.
  • the method of decoding a bitstream to correspond a hierarchy structure is obviously not limited to the below description.
  • an object of an uppermost hierarchy i.e. a first layer
  • the calling unit can be an element or a control operation of the connection control unit 425.
  • the hierarchy structure is assumed to successively include a first layer, a second layer and a third layer, performing an object of the first layer (e.g.
  • the sequence layer activates the calling units of at least one hierarchy (e.g. a GOP-I layer, a GOP-2 layer and a GOP-3) pertaining to the second layer, and performing an object of any one of the second layer activates the calling units of at least one hierarchy (e.g. a picture-1 layer and a picture-2 layer in the case of performing an object of the GOP-I layer and a picture-3 layer and a picture-4 layer in the case of performing an object of the GOP-2 layer) pertaining to the third layer.
  • the activating operation by the call between hierarchies of the present invention be required to allow the upper hierarchy to call the lower hierarchy.
  • the upper hierarchy can be called by the lower hierarchy on the basis of the decoder description (or the partial decoder description).
  • the decoding functional units of the pertinent activated hierarchy start their operations if CSCI necessary to perform a predetermined process and data for decoding are stored at the CSCI storing unit 430. If CSCI necessary for at least one of the decoding functional unit of the corresponding hierarchy to perform the process and data for decoding are stored at the CSCI storing unit 430, the calling unit of a lower hierarchy (i.e. the second layer) of the pertinent activated hierarchy (i.e. the first layer) generates and executes an object of the pertinent hierarchy, and all the decoding functional units included in the pertinent object and at least one calling unit of a lower hierarchy (i.e. a third layer) of the pertinent object are activated.
  • performing an object of one hierarchy can activate a lower hierarchy and the decoding functional units of the called hierarchy perform a predetermined process.
  • the encoded video data is reconstructed and outputted as video data by allowing the functional units, designated by the decoder description, among the functional units of each hierarchy to perform their operations at least one time.
  • the FU-CSCIT 630 can be information related to the partial decoder description for mapping between each functional unit of a toolbox 415 and element information stored at the CSCI storing unit 430.
  • the element information can function as a control variable for each functional unit of the toolbox 415.
  • the description decoder 405 decodes the encoded decoder description 313 inputted from the dividing unit 310 to generate the decoder description 314. After that, the description decoder 405 divides the generated decoder description 314 into a plurality of partial decoder descriptions having the form capable of being recognized by the decoder forming unit 420 before storing the divided partial decoder descriptions at the description storing unit 410.
  • Each partial decoder description stored at the description storing unit 410 is unnecessary to be a table having a typical format. It is sufficient that the partial decoder description is information capable of being recognized by the decoder forming unit 420. In other words, the description decoder 405 converts the data, such as binary data, included in the extended bitstream 305 to information capable of being analyzed by any functional unit and/or the connection control unit 425 before storing the converted information at the description storing unit 410.
  • the partial decoder descriptions such as the FL 610, the F-RT 620, the FU-CSCIT 630, the CSCIT 640, the DHT 650, the SET 660, the S-RT 670 and the DVT 680 can be stored at the description decoder 405 by allowing the decoder description to be analyzed by the description decoder 405.
  • the description decoder 405 can allow a table identifier to be inserted according to each distinguishable partial decoder descriptions in order to distinguish each of the partial decoder descriptions.
  • the decoder description can include a codec number and a profile and level number.
  • decoder description can include codec numbers and profile and level numbers for only some of the partial decoder descriptions.
  • the description decoder 405 can select a corresponding partial decoder description, to be used for the decoding, from the partial decoder descriptions pre-stored at the description storing unit 410, instead of generating a new partial decoded description for all partial decoder descriptions or some of the partial decoder descriptions.
  • the description decoder 405 can extract a partial decoder description corresponding to a pertinent codec from the partial decoder descriptions pre-stored at the description storing unit 410 and generate a new partial decoder description by applying the correction information.
  • the description decoder 405 can generate a new partial decoder description to be used in the decoding for all partial decoder descriptions or some of the partial decoder descriptions.
  • the decoder description can further include revision information in addition to the decoder description (DD-T) related to each partial decoder descriptions.
  • the description storing unit 410 stores each partial decoder description that is divided by the description decoder 405.
  • the description storing unit 410 can pre-store at least one partial decoder descriptions to allow at least one partial decoder descriptions to be used by the decoding unit 340.
  • the structure of the encoded decoder description 313 for extracting partial decoder descriptions will be described in detail later with reference to FIG. 16 through FIG. 23.
  • FIG. 4 shows a first embodiment of the decoding processing unit 320.
  • the decoding processing unit 320 can include a description decoder 405, a description storing unit 410, a toolbox 415 and a decoder forming unit 420.
  • the decoder forming unit 420 includes a connection control unit 425 and a CSCI storing unit 430.
  • the decoder forming unit 420 can further include a working memory (not shown) for loading at least one functional unit by the call of the connection control unit 425 and performing a predetermined process of the loaded functional units.
  • FIG. 5 shows a second embodiment of the decoding processing unit 320. Comparing with the decoding processing unit 320, the decoding processing unit 320 of FIG. 5 further includes a decoding solution 510.
  • the decoding solution 510 can be the working memory for loading at least one functional unit by the call of the connection control unit 425 and performing a predetermined process of loaded functional units.
  • the decoder 300 of the present invention can be re-combined or generated in various forms so as to enable an inputted bitstream to be decoded regardless of encoded formats, by selectively loading and decoding the functional units of the toolbox 415.
  • forming the toolbox 415 separately from other elements in the decoder 300 makes it possible to more easily apply different types of toolboxes without any modification of design structure of other elements according to the decoder. For example, in spite of a decoder manufactured so as to use a toolbox for performing the processing according to an MPEG standard, it becomes easier to substitute a non-MPEG standard toolbox having the same interface or optionally/personally manufactured toolbox for the pertinent toolbox.
  • the functions and operations of each element of the decoding processing unit 320 will be described with reference to the related drawings.
  • the description decoder 40 decodes an inputted decoder description 313 as the decoder description 314 and then allows a plurality of partial decoder descriptions to be stored at the description storing unit 410.
  • the toolbox 415 includes a plurality of functional units, respectively, realized to perform a predetermined process.
  • the pertinent functional units can include functional units for performing the syntax parsing (refer to FIG. 7 and sets of the pertinent functional units are referred to as syntax (SYN) parser group 700) and functional units for decoding encoded video data (refer to FIG. 8 and sets of the pertinent functional units are referred to as decoding function groups 800).
  • the SYN parser group 700 can be realized as one functional unit.
  • the SYN parser group 700 and/or each functional unit can be realized as a combination of each program code or an algorithm.
  • the toolbox 510 refers to an area in which the functional units realized to perform each function are included.
  • Each functional unit (hereinafter, referred to as a decoding functional unit) included in the decoding functional group 800 is activated by the control of the connection control unit 425 to output the encoded video data included in the conventional bitstream 105 as video data.
  • the connection control unit 425 can control corresponding functional units in units of each hierarchy structure to be successively activated (e.g. the functional units are activated in the order of a first hierarchy, a second hierarchy, a third hierarchy ... and when the second hierarchy is activated, the first hierarchy can maintain its activated status or if it is not necessary any more to process data, the first hierarchy becomes inactivated).
  • the processing can be delayed until the result data is generated and stored at the CSCI storing unit 430.
  • Each functional unit included in the decoding functional group 800 can pertain to at least one hierarchy divided according to the property of codec.
  • a functional unit (hereinafter, referred to as a parsing processing unit) of the called SYN parser group 700 performs the syntax parsing of a bitstream. If CSCI necessary to perform a designated process and data for decoding are stored, the decoding functional units perform the processing.
  • An upper hierarchy calls a decoding functional unit of a lower hierarchy according to the flow of CSCI and data (this is performed by the control of the connection control unit 425).
  • the video data corresponding to a bitstream is outputted by allowing every decoding functional unit of the decoder description to perform the process at least one time as necessary.
  • the decoder description (or the partial decoder description) makes it possible to suggest the scheduling management of each codec and the organic processing structure of each functional unit.
  • the connection control unit 425 activates the SYN parser group 700 to allow the syntax parsing with using the S-RT 670 to be started and controls the functional units of the uppermost hierarchy to be loaded or activated.
  • the first decoder description and the second decoder description are organically used in the form of each mutual reference.
  • each of the activated functional units are on standby until CSCI and/or data necessary for the processing are stored at the CSCI storing unit 430. If the CSCI and/or data necessary for the processing are stored at the CSCI storing unit 430, the respective activated functional units start the process per functional unit. Accordingly, the decoding processing unit 320 in accordance with the present invention can simultaneously perform the syntax parsing operation and the decoding of the data to output corresponding data (refer to FIG. 15). Moreover, since whether the functional units included in the decoding functional group is activated in units of hierarchy structure and whether each functional unit individually is on standby or starts its operation is determined, each of the functional units has free organic operations (e.g. the operation is performed by forming series/parallel coupling structure).
  • the SYN parser group 700 included in the toolbox 510 can be designed to perform the analysis of the conventional bitstream 105 without the connection control of the connection control unit 425 immediately if the conventional bitstream 105 is inputted.
  • the decoding functional units for performing a following processing can use element information, which is analyzed and stored in the CSCI storing unit 430 by the parsing functional units, and/or the data(hereinafter, referred to as "encoded data"), which is stored at the CSCI storing unit 430 by the parsing functional units.
  • the parsing functional units uses the DHT 650, the SET 660, the S-RT 670, the CSCIT 640 and the DVT 680 to analyze the inputted conventional bitstream 316 and stores element information, which is the result of the syntax parsing, at the CSCI storing unit 430.
  • the CSCI storing unit 430 can be a buffer memory.
  • the element information can be control signal/context information (CSCI), for example.
  • CSCI control signal/context information
  • the element information parsed and stored at the CSCI storing unit 430 by the SYN parser group 700 can be the result value parsed by the pertinent operation and simultaneously can be an input value determining a following syntax of the conventional bitstream 316.
  • the SYN parser group 700 can perform the entropy decoding of video data and a header of the syntax-parsed conventional bitstream 316 to store encoded data of a predetermined size (e.g. 1 pixel, 4 x 4 or 8 x 8 unit) at the CSCI storing unit 430 such that the functional units of the decoding functional group 800 can use the encoded data.
  • the SYN parser group 700 can store data, such as DC/ AC of the syntax, to be used for the decoding operation, at the CSCI storing unit 430.
  • the CSCI storing unit 430 can be a buffer memory having a dedicated buffer space capable of being pre-designated per each functional unit (refer to FIG. 12).
  • Each dedicated buffer can be also set to have the inclusion relationship per hierarchy as shown in FIG. 13 and FIG. 14. Accordingly, the activated functional unit can start the processing immediately if input data is written at the CSCI storing unit 430. In the case of using the processed result data as input data of another functional unit, the activated functional unit can write the result data at the CSCI storing unit 430.
  • the SYN parser group 700 can be formed by using one software program (including a combination of program codes). This is because even though the SYN parser group 700 is formed to perform a plurality of functions corresponding to a plurality of standards (e.g. MPEG- 1/2/4/A VC), respectively, using the DHT 650, the SET 660, the S-RT 670, the CSCIT 640 and the DVT 680 makes it possible to perform corresponding operations.
  • the SYN parser group 700 as shown in FIG.7, can be obviously formed to be segmentalized into a plurality of functional units, each of which can be realized by using a combination of blocked program codes.
  • the SYN parser group 700 can include a network abstraction layer parsing (NALP) functional unit 710, a syntax parsing (SYNP) functional unit 720, a context determination (CTX) functional unit 730, a variable length decoding (VLD) functional unit 740, a ran length decoding (RLD) functional unit 750 and a macroblock generator (MBG) functional unit 760.
  • NALP network abstraction layer parsing
  • SYNP syntax parsing
  • CX context determination
  • VLD variable length decoding
  • RLD ran length decoding
  • MSG macroblock generator
  • the SYN parser group 700 can include any functional unit for performing the syntax parsing regardless of an applied standard, a functional unit necessary for performing the syntax parsing can be newly added, an existing functional unit can be modified and an unnecessary functional unit can be deleted. It is obviously possible to combine the functional units that are commonly applicable by a plurality of standards among each functional unit included in the SYN parser group 700 as one functional unit. Described below briefly is each function of the functional units, which is evident to any person of ordinary skill in the art.
  • the NALP functional unit 710 parses a network abstraction layer (NAL) of MPEG-4 AVC, and the SYNP functional unit 720 parses the syntax of a bitstream.
  • the SYNP functional unit 720 can be included at the VLD functional unit 740.
  • the CTX functional unit 730 determines a VLC table of MPEG-4 AVC, and the VLD functional unit 740 performs the entropy decoding.
  • the RLD functional unit 750 performs the entropy decoding of AC values, and the MBG functional unit 760 combines DC values and AC values to generate one macroblock datum.
  • the VLD functional unit 740 can perform the functions of all or some of the functional units, included at the aforementioned SYN parser group 700, according to each system realizing type.
  • the SYN parser group 700 can be realized as one software program or a plurality of software programs (e.g. the VLD functional unit 740 can be independently realized as an independent software program).
  • the operation which the SYN parser group 700 extracts or generates element information by using the first description information i.e. at least one of the DHT 650, the SET 660, the S-RT 670, the DVT 680 and the CSCIT 640
  • the connection control unit 425 is described below.
  • the decoding functional group 800 processes encoded data, stored at the CSCI storing unit 430, in a predetermined processing unit and outputs the processed data as video data of a predetermined size.
  • the processing unit of the encoded data can be pre-determined so as to be differently applied per each functional unit or can be generalized as the same processing unit.
  • the decoding functional group 800 can include functional units for performing the foregoing functions according to each standard. Each function can be realized as an independent processing block (e.g. a software program, a combination of command codes and a function) to form the decoding functional group 800. Alternatively, the decoding functional group 800 can be realized as one integrated processing block. Although the decoding functional group 800 are realized as one integrated processing block, the corresponding processing can be obviously performed by the connection control of the connection control unit 425.
  • the decoding functional group 800 can include a de-blocking filtering (DF) functional unit 810, a VOP reconstructing (VR) functional unit 815, a frame field reordering (FFR) functional unit 820, an intra prediction and picture reconstruction (IPR) functional unit 830, an inverse transform (IT) functional unit 835, an inverse quantization (IQ) functional unit 845, an inverse AC prediction (IAP) functional unit 855, an inverse scanning (IS) functional unit 860 and a DC reconstruction (DCR) functional unit 865.
  • DF de-blocking filtering
  • VR VOP reconstructing
  • FFR frame field reordering
  • IPR intra prediction and picture reconstruction
  • An IT 4x4 functional unit 840, an IQ 4x4 functional unit 850 and a DCR 4x4 functional unit 870 process blocks having the size of 4x4. This is because although MPEG- 1/2/4 process data in 8x8 block size in the transform, quantization and prediction, MPEG-4 AVC may process data in 4x4 block size.
  • the decoding functional group 800 can include any functional unit for performing a data decoding function regardless of an applied standard, a functional unit necessary for the developed technology can be added, an existing functional unit can be modified and an unnecessary functional unit can be deleted.
  • the pertinent functional units can be included in the decoding functional group 800.
  • a special prediction (SPR) functional unit (not shown) can be also added to perform the intra prediction for the MPEG-4 AVC.
  • the DF functional unit 810 is a de-blocking filter of MPEG-4 AVC, and the VR functional unit 815 stores a decoded pixel value.
  • the FFR functional unit 820 is for an interlaced mode, and the IPR functional unit 830 stores a decoded pixel value after the intra prediction of MPEG-4 A VC is performed. As described above, the intra prediction of MPEG-4 AVC can be performed by the SPR functional unit.
  • the IT functional unit 835 performs the inverse transform of DC values and
  • the IQ functional unit 845 performs the inverse quantization of the AC values.
  • the IAP functional unit 855 performs the inverse AC prediction of the AC values
  • the IS functional unit 860 performs the inverse scan of the AC values.
  • the DCR functional unit 865 performs the inverse AC prediction and the inverse quantization of the DC values.
  • the aforementioned SYN parser group 700 and decoding functional group 800 individually starts their operations.
  • Each functional unit of the decoding functional group 800 is activated by the activation control of the connection control unit 425. Then, each functional unit of the decoding functional group 800 individually starting its operation if CSCI and/or data necessary for the processing is written at the CSCI storing unit 430.
  • the CSCI storing unit 430 stores element information (e.g. CSCI), which is the result value by the syntax parsing that the SYN parsing functional group 700 performs by using the second decoder description (i.e. the CSCIT 640, the DHT 650, the SET 660, the S-RT 670 and the DVT 680).
  • the element information is stored corresponding to the CSCIT 640.
  • the CSCI storing unit 430 can be a buffer memory.
  • the element information stored at the CSCI storing unit 430 can be used as input data for performing a process of the SET 660 by the SYN parsing functional group 700 or as a control variable for determining a following connection index in the S-RT 670.
  • the element information stored at the CSCI storing unit 430 can be used to allow each functional unit, which is activated in units of hierarchy structure by the connection control unit 425 with reference to the F-RT 620, to map an input CSCI, designated by the FU-CSCIT 630, to the element information, stored at the CSCI storing unit 430.
  • the SYN parser group 700 can store the element information, capable of being used by the functional units of the decoding functional group 800, at the CSCI storing unit 430.
  • the CSCI storing unit 430 can store the CSCI, generated by the
  • the CSCI storing unit 430 can be realized to include a CSCI storing part for storing the CSCI and a data storing part for storing the data to be decoded, according to the type of information to be stored.
  • the connection control unit 425 controls each functional unit included in the
  • connection control unit 425 controls each functional unit included in the decoding functional group 800 to be loaded or activated in units of hierarchy structure with reference to the F-RT 620. This is because input data for the functional units pertaining to the lower hierarchies may be the result data processed by the functional units pertaining to the upper hierarchies.
  • the decoder forming unit 420 can include a working memory for loading at least one functional unit by the call of the connection control unit 425 and performing a predetermined process.
  • the connection control unit 425 controls each functional unit to be activated and to process and output the encoded data as video data by using the partial decoder descriptions such as the FL 610, the F-RT 620, the FU-CSCIT 630, the CSCIT 640 and the DHT 650.
  • Mutually organic operations of a plurality of functional unit of FIG. 8 make it possible to convert the encoded data to video data in order to output the video data. It may be possible to determine which functional units must successively be operated, in various ways according to each encoding standard. This is evident to any person of ordinary skill in the art. Accordingly, the organic relationship between the partial decoder descriptions of the first decoder description included in the extended bitstream, used as basic information for organically controlling the operations of the plurality of functional units will be hereinafter described.
  • the DHT 650 refers to the partial decoder description, which writes information related to the hierarchy structure of codec and the lower hierarchies of each hierarchy as shown in FIG. 9 and the following table 1
  • the DHT 650 can include an index, which is the successively given hierarchy number, a name, which refers to the name of each hierarchy, and a children hierarchy, which show a lower hierarchy of a pertinent hierarchy.
  • the number of hierarchies or children hierarchies can be represented differently according to a codec. For example, as shown in FIG. 9, in the case of further including a VOP-3 and an MB-3, the corresponding hierarchy number can be obviously added.
  • the hierarchy structure indicated by the DHT 650 of the present invention shows that based on a codec, another codec can be freely integrated at any position of a hierarchy in a free form.
  • using an integrated codec including a plurality of different codec makes it possible to form a new codec, to thereby compress and uncompress video data.
  • the main function of the DHT 650 makes it easy to perform the various realizations (e.g. sequential/parallel, single/multiple threads and sw/hw hybrid decoding) of a decoding solution to be formed by use of the decoder description by applying the hierarchy structure to a given codec.
  • the hierarchy written through the DHT 650 of the table 1 is commonly applied in the syntax parsing and decoding operation. Of course, there may obviously be a hierarchy structure for being independently used in the syntax parsing or decoding operation.
  • the FL 610 refers to the partial decoder description, which writes information such as a list of each functional unit of the decoding functional group 800 and the number of input and output data of the pertinent functional units as shown in the table 2.
  • the FL 610 can further include a name of a dedicated buffer area (or an address in which pertinent data is written or an address of a buffer memory in which pertinent data is written), in which input data of each functional unit is written, and a name of a dedicated buffer area (or an address in which pertinent data is written or an address of a buffer memory in which pertinent data is written), in which output data outputted by the pertinent functional unit is to be written. Accordingly, each functional unit can use the FL 610 to read and process input data and write the corresponding output data. However, the FL 610 does not write input data and output data of the SYN parser group 700 which generates element information. This is because the SYN parsing functional group 700 can use information such as the SET 660 to generate element information and write the generated information at a designated position.
  • the FL 610 can include a FU ID, which refers to an identification number of the functional unit of the toolbox 510, a FU name, which refers to a name of each functional unit, an input CSCI, which refers to the number of input data, and an output CSCI, which refers to the number of result data (i.e. output data).
  • the order of arranging the functional units of the functional units of the FL 610 corresponds to the order of arranging the functional units of the FU-CSCIT 630 or the index number.
  • the FU name which refers to a name of each functional unit
  • the names of each functional unit described with reference to FIG. FIG. 8 can be written.
  • a particular functional unit of a hierarchy activated by the connection control unit 425 uses the FU-CSCIT 630 and the CSCIT 640 in order to read desired data from the CSCI storing unit 430 and perform a predetermined process before generating output data.
  • the generated output data can be written in the CSCI storing unit 430, and the data stored in the CSCI storing unit 430 can be used as input data of the functional unit which performs a following processing.
  • the functional unit refers to a series of processing operations (e.g. actions, algorithms and functions), which performs a predetermined process of input data to generate output data, included in the decoding functional group 800.
  • the FL 610 can include only information related to the functional units for performing the corresponding processing in the pertinent standard.
  • the FL 610 is required to include the information related to the functional units conforming to a plurality of standards necessary to decode the encoded video data among all functional units conforming to a plurality of corresponding standards.
  • each of the FL 610 can include information related to the functional units conforming to each corresponding standard.
  • the FL 610 can be written in a description method such as a textual description or a binary description (i.e. a bit-converted binary code form).
  • the minimum necessary data of the partial decoder description can be written in a similar script language.
  • the F-RT 620 provides connection information of the functional unit to be used to decode the inputted conventional bitstream 316.
  • the F-RT 620 is configured to allow an upper hierarchy to call a lower hierarchy by using the hierarchy structure of the DHT 650 as shown in the following Table 3.
  • the F-RT 620 includes a decoding hierarchy, showing each hierarchy structure, a children, showing a functional unit to be activated or a lower hierarchy to be called, a loop, showing whether a loop is operated or not, a loop condition, showing the loop condition when the loop is necessary to be operated, and an input, showing decoding hierarchy and children as input information (or activation order) of each functional or lower hierarchy.
  • a FHO hierarchy is firstly activated, and a FHl hierarchy is successively activated because of using result data of a FUl as input data.
  • the FHl hierarchy can be also activated simultaneously with the FHO hierarchy, and then, the processing operation of the FHl hierarchy can be delayed until result data of the FUl is stored at the CSCI storing unit 430.
  • each hierarchy is generated as an independent object with the concept of instance/object.
  • FHl 's such as FHl [0], FHl [1], FHl [2], ..., and FHl [n] can be generated.
  • This structure can be identically applied to other hierarchies (e.g. FHO, FH2 and FH3).
  • a dedicated buffer space of each object can be allotted. As shown in FIG. 12 and FIG. 13, each dedicated buffer space stores CSCI or data for processing the functional units of a certain hierarchy structure.
  • the F-RT 620 can be written in a description method such as a textual description or a binary description (i.e. a bit-converted binary code form).
  • the minimum necessary data of the partial decoder description can be written in a similar script language.
  • the FU-CSCIT 630 is a partial decoder description for connecting element information stored at the CSCI storing unit 430 to the element information (i.e. input CSCI) necessary for each functional unit. [Table 4]
  • the FU-CSCIT 630 includes an index number, which is one-to-one mapped to the FU ID, CSCI information and an index (i.e. CSCI table element) of the CSCIT 640 for mapping.
  • the functional units of the FL 610 and the index numbers of the FU-CSCIT 630 are one-to-one mapped to each other because their arrangement orders correspond to each other.
  • the FU-A of a first functional unit of the table 2 is mapped to the index No. 1 of a first index 1 of the FU-CSCIT 630.
  • the FU-CSCIT 630 further includes information related to how many interface sets each index numbers have.
  • the number of interface sets refers to the frequency showing how many times the mapping is performed. For example, since D0092 of the FL 610 has one interface set designated by the FU-CSCIT 630, only CH2.C6 and CH2.C1 are used. However, D0098 has 2 interface sets, CH3.C1 and CH.3.C6 are used as element information in a case, and CH4.C2 and CH4.C5 are used in another case.
  • Each of the functional units reads designated element information from the CSCI storing unit 430 to perform a predetermined process before storing generated output data (i.e. result data) at the CSCI storing unit 430.
  • the reason that the number of interface sets per each index number is written at the FU-CSCIT 630 is that one functional unit may perform a different processing operation according to different data flow. For example, as shown in FIG. 11, if the FU-A can be used at the MPEG-2 and MPEG-4 simultaneously, different element information can be used when data encoded in an MPEG-2 standard is processed and data encoded in an MPEG-4 standard is processed. Accordingly, a plurality of interface sets are required in order to distinguishably use the element information when processing the data encoded according to each standard.
  • the FU-CSCIT 630 can be written in a description method such as a textual description or a binary description (i.e. a bit-converted binary code form).
  • the minimum necessary data of the partial decoder description can be written in a similar script language.
  • the CSCIT 640 writes details related to the element information (e.g. CSCI) as result information of a process that the SYN parser group 700 performs by using the SET 660 and S-RT 460.
  • the CSCIT 640 is processed from the conventional bitstream 316 and stored at the CSCI storing unit 430.
  • the CSCIT 640 also has information related to all meaningful data (i.e. element information) to be used by the decoding functional unit 800.
  • the CSCIT 640 includes a decoding hierarchy, which distinguishes a hierarchy of each element information, an index, which refers to an identifier as an identification number of pertinent element information, an element name, which refers to a name of pertinent element information, and a type (e.g. determination whether the pertinent element information is an integer or array type), which refers to an attribute for designating a data-structural property of pertinent element information.
  • the CSCI formed per hierarchy can be used in the forms of a plurality of arrays as necessary when the decoder is formed.
  • the CSCIT 640 can be written in a description method such as a textual description or a binary description (i.e. a bit-converted binary code form).
  • the minimum necessary data of the partial decoder description can be written in a similar script language.
  • the CSCIT 640, the DHT 650, the SET 660, the S-RT 670 and the DVT 680, which are used to allow the SYN parser group 700 to extract or generate element information from the conventional bitstream 316 and to store the extract or generated element information at the CSCI storing unit 430, will be described. However, since the CSCIT 640 and the DHT 650 have been described above, the corresponding description will be omitted. Mutually organic operations of the plurality of functional units of FIG.
  • the element information can have different formats according to each encoding standard. This is evident to any person of ordinary skill in the art. Accordingly, the organic relationship between the partial decoder descriptions of the second decoder description, which is included in an extended bitstream used to allow a plurality of functional unit or the SYN parser group 700 integrated as one functional unit to generate element information and store it at the CSCI storing unit 430, will be described below.
  • the SET 660 refers to a partial decoder description formed to include information related to the syntaxes of an inputted conventional bitstream 316.
  • the SET 660 includes an index of each syntax, an element name, input data, and a SET-process (process by SET-PROC).
  • the index refers to an identifier S identifying each syntax used for the S-RT 670.
  • the element name which is a name of the syntax, can be named with reference to the meaning or function of the syntax.
  • the input data refers to a nominal length of a bit inputted at one time in the conventional bitstream 316.
  • the output data is stored at the CSCI storing unit 430 as element information (i.e. CSCI information (C)).
  • the CSCI information e.g. CH0.C1 is determined in the S-RT 670 with reference to a Syntax #ID of the S-RT 670.
  • the SET 660 can be written in a description method such as a textual description or a binary description (i.e. a bit-converted binary code form).
  • the minimum necessary data of the partial decoder description can be written in a similar script language.
  • the S-RT 670 refers to a hierarchy and connection information between the syntaxes in the conventional bitstream 316 as shown in the following table 7.
  • the S-RT 670 has information indicating to allow an upper hierarchy to call a syntax of a lower hierarchy and to move to a next syntax.
  • the SYN parser group 700 uses the S-RT 670 to read the conventional bitstream 316 or to determine the sequence of storing and/or renewing the element information in the CSCI storing unit 430.
  • the SYN parser group 700 configured to include a plurality of threads can allow an upper thread to call a lower thread by referring to the S-RT 670. This can make it possible to perform the syntax parsing per hierarchy. [Table 7]
  • the S-RT 670 includes a decoding hierarchy, which distinguishes a hierarchy of each syntax, an index (R), an ID of a syntax (syntax #ID), input data (CSCI) and branch information.
  • the index (R) indexes each connection information (Rule). Since the index (S) of the syntax designates the syntax to be processed in a particular connection index in each hierarchy, the SYN parser group 700 uses the SET 660 to perform the designated process of the pertinent syntax.
  • the input data indicates a list of the element information to be used for the conditional determination to control the connection of a pertinent connection index.
  • the result of the process performed by the SET 660 is stored as a name of input data corresponding to the syntax #ID.
  • the branch information refers to a condition determining algorithm to determine which connection index will be processed next. It is possible to directly determine which contents is read and in which order the determined contents is read by the branch information. If the number of branches is 1 (e.g. the syntax # ID is 1), there may be no input data.
  • the S-RT 670 can be written in a description method such as a textual description or a binary description (i.e. a bit-converted binary code form).
  • the minimum necessary data of the partial decoder description can be written in a similar script language.
  • the DVT 680 refers to a partial decoder description in which Huffman table information to be used by each encoder/decoder is written.
  • MPEG- 1/2/4/ A VC performs entropy coding.
  • a Huffman coding method is mainly used.
  • the Huffman table is used.
  • the Huffman table information to be used by the pertinent decoder is required in each decoding in order to realize an integrated codec.
  • the decoding description in accordance with the present invention includes the Huffman table information corresponding to each syntax when the syntax is parsed.
  • the transmission of the DVT 680 will be omitted or it is possible to include a codec number (Codec #) and a profile and level number (Profile and level number) only.
  • the DVT 680 includes a name of each Huffman table, an actual value outputted after being compressed by a Huffman coding and a code value used when the compressed actual value is stored at the conventional bitstream 316.
  • the code value, 011 is written at the conventional bitstream 316 by a Huffman table mapping work (e.g. a process part of the SET 660).
  • a function VLD can be called.
  • the coded value can be obtained by reading the conventional bitstream 316 as much as a length (i.e. a fixed length or a variable length) pre-determined by the function. Then, the corresponding actual value can be obtained by the Huffman table mapping work.
  • a Huffman table [1] which is the first table CBPY, is used.
  • the DVT 680 can be written in a description method such as a textual description or a binary description (i.e. a bit-converted binary code form).
  • the minimum necessary data of the partial decoder description can be written in a similar script language.
  • the DVT 680 can be written in the textual description as follows. DVT ⁇ ((0,1), (1,001), (2,010), (3,011), (4,0001), (5,000001), (6,000010), (7,000011), (8,000000001), (9,NULL)) ((0,0011), (1,00101), (2,00100), (3,1001),
  • the DVT 680 canbe written inthebinary description as follows 000000111111111111111111111101111100001100011001000110100001 1011001000001001100000010011000001000110000011010010000000010000011111 0010000110010100101001010010000100100100101000110010001110011000001000 1001011001010001000110000011001000101001001010001000100001001000001000 1100001011001100000000011000000100000111110001101100010110001010000110 1000011001001000001001010000100110000001001110001010000000000101001 000000000000100 1000110010010000010010100001001100000010...
  • Each partial decoder description can be written in the binary description, to thereby reduce a storage space, improve processing efficiency and drop the time that it takes to transmit the extended bitstream 305 including the decoding description.
  • connection control unit 425 calls the functional units of the uppermost hierarchy determined in the F-RT 620 of the description storing unit 410.
  • the called functional units are on standby until CSCI or data necessary for the processing is stored at the CSCI storing unit 430 by the SYN parser group 700.
  • the SYN parser group 700 reads a syntax corresponding to the uppermost hierarchy among the rule information of the S-RT 670 to recognizes a VS start code and reads a corresponding bit (i.e. 32 bits set as an input value for the SET 660) of the conventional bitstream 316 to store an output value (i.e. element information CO) according to the performed SET process at the CSCI storing unit 430 as the name of the input data (CSCI) determined in the S-RT 670.
  • Information related to which element information is stored at the CSCI storing unit 430 and which hierarchy uses the element information is written at the CSCIT 640.
  • the SYN parser group 700 puts the element information (i.e.
  • CO stored at the CSCI storing unit 430 into corresponding branch information of the S-RT 670 in order to process an index corresponding to the result.
  • the SYN parser group 700 uses the SET 660 to generate element information and to store the generated element information at the CSCI storing unit 430, if a VLD function (e.g. an index S74 of the SET 660) is called, the entropy decoding is performed by using the DVT 680. In this operation, if the element information is generated, the generated element information is stored at the CSCI storing unit 430.
  • a VLD function e.g. an index S74 of the SET 660
  • each activated functional unit of the decoding functional group 800 checks whether all data and/or element information necessary to perform a predetermined process is stored.
  • the pertinent functional unit can check whether all is stored with reference to the FU-CSCIT 630. It is also possible to recognize what the pertinent element is through the mapping to the CSCIT 640. If all necessary element information and/or data is stored, the pertinent functional unit starts to perform a predetermined process and stores the processed result data at the CSCI storing unit 430.
  • the functional units can be successively activated or called in units of hierarchy structure.
  • connection control unit 425 which monitors whether the processing of the element information and/or data necessary for a hierarchy is currently completed and which is the hierarchy.
  • the called functional units reads and processes the data and/or element information necessary to perform a predetermined process if the functional units recognizes that the data and/or element information is stored. This operation brings about the same effect as the case that each functional unit is connected successively or in parallel to perform the processing.
  • the decoding processing unit 320 can output video data corresponding to the inputted conventional bitstream 316 by allowing all hierarchies of the functional units necessary for the conversion to video data to be activated.
  • FIG. 15 conceptually shows parallel processing syntax parsing and data decoding in accordance with an embodiment of the present invention.
  • using the aforementioned decoder description information can make it possible to allow the syntax parsing and the data decoding to be individually (or independently) performed by the SYN parser group 700 and the decoding functional group 800, respectively.
  • a pertinent functional unit can perform a predetermined process.
  • each functional unit of the decoding functional group 800 which performs the decoding processing, performs its independent functions if the functional unit does not use result data of another functional unit as input data.
  • the decoder 400 of the present invention start its operation only after all the syntax parsing is completed. It is also possible that the SYN parser group 700 and the decoding functional group 800 individually performs the processing and that each functional unit of the decoding functional group 800 performs the individual processing.
  • the present invention can use the conventional profile by using the functional units provided from the conventional standard (i.e. codec) and can form a new decoder by using the conventional functional units or new functional units.
  • the conventional standard i.e. codec
  • the elements are organically controlled such that each element parses a bitstream compressed in various ways to decode the parsed bitstream with a decoding method corresponding to the encoding method.
  • the pertinent bitstream can be formed in various shapes in which a variety of standards (or codecs) are mixed or can be formed to include various shapes by a variety of encoding methods in one standard.
  • To support various encoding/ decoding methods it must be possible to divide various functions to be used in various standards into separate units and select the functions desired and necessary for a user to form one type of codec (i.e. encoder and decoder).
  • the present invention can organically connect and control each functional unit by use of the same information analyzing method regardless of the encoding type of the encoded bitstream by providing a decoder description together with the encoded bitstream.
  • the present invention can also actively cope with the situation that the syntax of a bitstream is changed or newly added by amending the pertinent information or inserting addition information with regard to the S-RT 670.
  • the present invention can set the connection relationship of the functional units included in the decoding functional group 800 of a pertinent decoder by selecting a function desired by a user in units of processing such as a bitstream level, a frame level and macroblock level and forming the F-RT 620.
  • Each of the foregoing tables shows an example of a command to be used in each partial decoder description.
  • Information i.e. partial decoder description
  • for parsing the syntax of a standard such as MPEG-2/MPEG-4/MPEG-4 AVC can be formed by using each of the commands.
  • Each partial decoder description can be formed to include the commands such as READ, SEEK, FLUSH, IF, WHILE, UNTIL, DO-WHILE, DO-UNTIL, BREAK, SET, STOP and PUSH.
  • commands such as READ, SEEK, FLUSH, IF, WHILE, UNTIL, DO-WHILE, DO-UNTIL, BREAK, SET, STOP and PUSH.
  • all commands are unnecessary for being used in each of the partial decoder descriptions. It shall be obvious that any command can be selectively used per each partial decoder description. Described below briefly is how each command is used.
  • READ is the command for reading a bit from a bitstream, used as, for example, "READ bits B > CSCI;”.
  • bits indicates the number of bits to be read.
  • B refers to a byte-alignment flag.
  • > CSCI indicates a CSCI index to be stored.
  • B and "> CSCI” is used as options. If "> CSCI” is not designated, it is determined to be stored at the IBS only.
  • SEEK is the command for reading a bit from a bitstream but allowing a file pointer not to be moved.
  • the file pointer refers to a reference position for the operation of reading a bit, for example.
  • a parameter of the SEEK command can be used identically to the above-described REED.
  • FLUSH is the command for moving the file pointer at a bitstream according to the number of the bits. Its parameter can be used identically to the REED.
  • IF is the command for providing the branch according to a given condition, used as "IF (condition) ⁇ ⁇ ⁇ ELSE ⁇ ⁇ ⁇ ".
  • WHILE is the command for repeatedly performing a designated block during a period of time while the given condition is true, used as "WHILE (condition) ⁇ ⁇ ⁇ ".
  • UNTIL is the command for repeatedly performing a designated block during a period of time until the given condition is true, used as "UNTIL (condition) ⁇ ⁇ ⁇ .
  • DO-WHILE is the transformation of the WHILE command and the command for performing a block prior to the conditional determination, used as "DO ⁇ ⁇ ⁇ WHILE (condition)".
  • DO-UNTIL is the transformation of the UNTIL command and the command for performing a block prior to the conditional determination, used as "DO ⁇ - ⁇ UNTIL (condition)".
  • the form ( ⁇ ) (compute) is used as, for example,
  • STOP is the command for stopping the currently-processed processing of syntax element and turning to a next operation.
  • PUSH is the command for adding given data in the back of written data in an arrangement CSCI.
  • the added values are arranged and broken by comma (e.g. PUSH C8 8, 16, 32;).
  • GO is the command for branching into a specified position. For example, GOR#;; indicates branching into R#, and GO RT indicates returning to a called position.
  • HEX is the command for reporting that a hexadecimal follows the HEX command.
  • RLD is an interface for an RLD function supportable in MPEG-4, used as "RLD index, level, run, islastrun, t#;".
  • index, level, run and islastrun indicates an internal variable and CSCI storing an RLD return value.
  • t# indicates a Huffman table ID used for RLD.
  • VLD2 is a VLD function for MPEG-2, used as "VLD2 [t#] in > vl, v2, v3;”.
  • t# indicates a Huffman table ID used for RLD, and in indicates an index value to be inputted, vl, v2 and v3 indicate output result values.
  • VLD4 is a VLD function for MPEG-4, used as "VLD4 [T#] > CSCI;”.
  • t# indicates a Huffman table ID used for RLD
  • > CSCI indicates a CSCI index to be stored.
  • “> CSCI” is used as an option. If "> CSCI" is not designated, it is determined to be stored at a variable IBS only.
  • FIG. 16 shows the structure of an extended bitstream in accordance with a first embodiment of the present invention
  • FIG. 17 shows the structure of an extended bitstream in accordance with a second embodiment of the present invention
  • FIG. 18 shows the structure of an extended bitstream in accordance with a third embodiment of the present invention
  • FIG. 19 shows the structure of an extended bitstream in accordance with a fourth embodiment of the present invention.
  • the encoded decoder description 313 included in the extended bitstream 305 of the present invention can be formed to include applied standard information except for information for generating the partial decoder description (No table), to include all table information (Full tables) or to include some table information (Partial tables).
  • the decoding description information can include stream identifier (SI) information.
  • SI stream identifier
  • the extended bitstream 305 which is a decoding description, can include an SI 1060 (i.e. 00), showing that no table information is included, a codec number 1620 and a profile and level number 1630.
  • the decoding processing unit 320 can perform the decoding by using the instructed partial decoder descriptions.
  • the SET 660, the CSCIT 640, the FL 610, the FU-CDCIT 630 and the DVT 680 can be written per applied standard (or codec), and the F-RT 420 and the S-RT 460 can be written per profile of each applied standard (refer to the tables 10 and 11). [Table 10]
  • a decoding method can be described by using an SET#3, a FL#3, a CSCIT#3, a FU-CSCIT#3, a DVT#3, a F-RT#3-1 and an S-RT#3-1. If the transmission is performed by designating the codec number as 3 and the profile and level number as 2, the decoding processing unit 320 can perform the decoding operation with reference to corresponding tables. As shown in FIG. 17, the extended bitstream 305 can include the encoded decoder description 313 corresponding to all of the above-described partial descriptions. In this case, an SI 1610 will be determined as 01 with reference to the table 9.
  • Each table can include a table identifier (TI) 1710, a table start code (TS code) 1720, a table description (TD) 1730 and a table end code (TE) 1740.
  • the TI 1710 and the TS code 1720 can have the changeable sequences.
  • the TD 1730 can be written in the binary description. Of course, the sequence of each table is changeable.
  • the extended bitstream 305 can include some of the above-described partial decoder descriptions and codec numbers corresponding to the partial decoder descriptions.
  • the SI 1610 will be determined as 10 with reference to the table 9.
  • this case has no unified format of the partial decoder descriptions, it can be considered as one of preferable examples that a structure identifier 1810 is further equipped in the back of the table identifier 1170 to determine which configuration the pertinent partial decoder description has.
  • the extended bitstream 305 can further include a decoder description (DD-T) 1910 related to the partial decoder description and update information.
  • the decoder description 1910 related to the partial decoder description may be any one of the partial decoder descriptions described above with reference to the related drawings, and the SI 1610 will be determined as a corresponding value.
  • the update information can include a revision start code (RS code) 1920 and a revision 1930.
  • the revision 1930 may be related to the addition, deletion or update of rule information (Rule) of a partial decoder description.
  • the revision 1930 can be used as "insert index into table-name defined;", “delete index from table-name;”, or “update index in table-name(...);”.
  • the description decoder 405 reads the revision 1930 and the decoding processing unit 320 performs the decoding of the pertinent extended bitstream 305, it is required to store the partial decoder descriptions of the revised details at the description storing unit 410.
  • the decoding processing unit 320 or a trigger can provide the description decoder 405 with a completion notice related to whether the decoding is completed.
  • whether the decoding is completed can be recognized by allowing the description decoder 405 to monitor whether the decoding processing unit 320 completes the decoding.
  • the present invention can use the conventional profile by using the functional units provided from the conventional standard (i.e. codec) and can form a new decoder by using the conventional functional units or new functional units. In other words, it is possible to form a decoder in various ways without any restriction.
  • the pertinent bitstream can be formed in various shapes in which a variety of standards (or codecs) are mixed or can be formed to include various shapes by a variety of encoding methods in one standard.
  • various functions to be used in various standards into separate units and select the functions desired and necessary for a user to form one type of codec (i.e. encoder and decoder).
  • the present invention can organically connect and control each functional unit by use of the same information analyzing method regardless of the encoding type of the encoded bitstream by providing a decoder description together with the encoded bitstream.
  • the present invention can also actively cope with the situation that the syntax of a bitstream is changed or newly added by amending the pertinent information or inserting addition information with regard to the S-RT 670.
  • the present invention can set the connection relationship of the functional units included in the decoding functional group 800 of a pertinent decoder by selecting a function desired by a user in units of processing such as a bitstream level, a frame level and macroblock level and forming the F-RT 620.
  • FIG. 20 shows the structure of an extended bitstream in accordance with a fifth embodiment of the present invention
  • FIG. 21 shows the structure of an extended bitstream in accordance with a sixth embodiment of the present invention
  • FIG. 22 shows the structure of an extended bitstream in accordance with a seventh embodiment of the present invention
  • FIG. 23 shows the structure of an extended bitstream in accordance with an eighth embodiment of the present invention.
  • the extended bitstream 305 of the present invention is formed to include the encoded decoder description 313 and the conventional bitstream 316. It is evident to any person of ordinary skill in the art that the conventional bitstream 316 is formed to include coded video data (and/or coded audio data).
  • the encoded decoder description 313 can be formed to have a different structure according to a codec property to be applied to decode the conventional bitstream 316. For example, firstly, in the case of using one conventional standardized codec, a first decoder description structure can be applied.
  • a third decoder description structure can be applied.
  • the foregoing four decoder description structures can be distinguished as each different codec type.
  • FIG. 20 shows the structure of the first decoder description.
  • the encoded decoder description 313 can be formed to include a codec type (codecjype) 2010, a codec number (codec_num) 2020 and a profile and level number (profile_level_num) 2030.
  • codecjype codec type
  • codec_num codec number
  • profile_level_num profile_level_num
  • FIG. 21 shows the structure of the second decoder description.
  • the encoded decoder description 313 can be formed to include a codec type (codec type) 2010, a codec number (codec_num) 2020, a profile and level number (profile_level_num) 2030 and a table description 2110.
  • codec type codec type
  • codec_num codec number
  • profile_level_num profile_level_num
  • table description 2110 is individually included for each partial decoder description.
  • each table description 2110 can include a table start code
  • each field can have a size that is capable of being increased or decreased as necessary.
  • the content 2145 can be also omitted or included according to the information of the table type 2140.
  • the table type 2140 has the value of "0,” it can be recognized that the conventional partial decoder description (i.e. the codec type 2010, the codec number 2020, the profile and level number 2030 and the partial decoder description recognized by the table identifier 2130) is applied without any revision. In this case, the content 2145 can be omitted.
  • the conventional partial decoder description i.e. the codec type 2010, the codec number 2020, the profile and level number 2030 and the partial decoder description recognized by the table identifier 2130
  • the content 2145 can be omitted.
  • the table type 2140 has the value of "1," it can be recognized that some (i.e. revised by using the contents defined in the content 2145) of the conventional partial decoder description (i.e. the codec type 2010, the codec number 2020, the profile and level number 2030 and the partial decoder description recognized by the table identifier 2130) is revised and used.
  • revised contents (such as an update command) are written in the content 2145.
  • the revised contents may be the information including commands such as an update, an insert, and/or a delete and revising partial decoder description contents of an index corresponding to a pertinent table.
  • the table type 2140 has the value of "2," it can be recognized that the conventional partial decoder description (i.e. the codec type 2010, the codec number 2020, the profile and level number 2030 and the partial decoder description recognized by the table identifier 2130) is completely revised (i.e. changed to the contents defined in the content 2145). In this case, the changed contents (e.g. the contents for newly defining the pertinent table like a new command) can be written in the content 2145.
  • the conventional partial decoder description i.e. the codec type 2010, the codec number 2020, the profile and level number 2030 and the partial decoder description recognized by the table identifier 2130
  • the changed contents e.g. the contents for newly defining the pertinent table like a new command
  • FIG. 22 shows the structure of the third decoder description.
  • the encoded decoder description 313 can be formed to include the codec type 2010 and the table description 2110.
  • the encoded decoder description 313 is written based on the revised contents of the partial decoder descriptions and the codec to be applied.
  • the table description is individually included for each partial decoder description.
  • the encoded decoder description 313 may be related to a plurality of partial decoder descriptions.
  • Each table description 2110 can include a table start code (table_start_code) 2120, a table identifier (table identifier) 2130, a table type (tablejype) 2140, a content 2145 and a table end code (table_end_code) 2150.
  • table_start_code table start code
  • table identifier table identifier
  • table type table type
  • table end_code table end code
  • each field can have a size that is capable of being increased or decreased as necessary.
  • the table type 2140 has the value of "0,” it can be recognized that the conventional partial decoder description (i.e. the codec type 2010, the codec number 2020, the profile and level number 2030 and the partial decoder description recognized by the table identifier 2130) is applied without any revision. In other words, the profile and level number 2030 and the codec number 2020, corresponding to the partial decoder description to be applied to the field of the content 2145 are written. However, if the table type 2140 has the value of " 1 ,” it can be recognized that some (i.e. revised by using the contents defined in the content 2145) of the conventional partial decoder description (i.e.
  • the codec type 2010, the codec number 2020, the profile and level number 2030 and the partial decoder description recognized by the table identifier 2130) is revised and used.
  • the profile and level number 2030 and the codec number 2020, corresponding to the partial decoder description to be applied to the field of the content 2145 can be written in the field of the content 2145, and the revised contents (such as an update command) can be written in the field of the revised contents.
  • the table type 2140 has the value of "2," it can be recognized that the conventional partial decoder description (i.e. the partial decoder description recognized by the table identifier 2130) is completely revised (i.e. changed to the contents defined in the content 2145). In this case, the changed contents (e.g. the contents for newly defining the pertinent table like a new command) can be written in the field of the content 2145.
  • the table type 2140 has the value of 0 or 1, a certain codec is used as it is or some of the partial decoder descriptions are revised and used.
  • the information i.e. the codec number and the profile and level number
  • the information i.e. the codec number and the profile and level number related to the codec is required.
  • the table has the value of 2
  • the completely new table information is defined. Accordingly, additional codec information is not necessary.
  • FIG. 23 shows the structure of the fourth decoder description.
  • the encoded decoder description 313 can be formed to include the codec type 2010 and the table description 2110.
  • the partial decoder descriptions are written in a partial decoder description area.
  • the table description 2110 is individually included for each partial decoder description.
  • each table description 2110 can include a table start code (table_start_code) 2120, a table identifier (table identifier) 2130, a table type (tablejype) 2140, a content 2145 and a table end code (table_end_code) 2150.
  • table_start_code table start code
  • table identifier table identifier
  • table type tablejype
  • content 2145 table end code
  • table_end_code table end code
  • each field can have a size that is capable of being increased or decreased as necessary.
  • the table type 2140 has a predetermined value (e.g. 2)
  • the information e.g. the contents for newly defining the pertinent table like a new command
  • the table type 2010 can be designated as one or omitted.
  • the codec type can be an 8-bit code which is information for recognizing a codec type.
  • codec_num can be an 8-bit code which is information for indicating a code of a used codec.
  • profile_level_num can be an 8-bit code which is information for indicating the profile and level number of a codec.
  • the profile and level number can be identical to the profile and level number of each MPEG standard.
  • table start code (table_start_code) can be a 26-bit character string of a hexadecimal, OxFFFFFE, which indicates the start of the table description.
  • table identifier (table_identifier) can be each 4-bit code as shown in the table 12.
  • the table type is a 4-bit value which is information for determining whether to maintain the existing table, to update the existing table or to generate a new table.
  • the table end code (table end-code) can be a 26-bit character string of a hexadecimal, OxFFFFFF, which indicates the end of the table description.
  • index# can refer to a 4-bit character string indicating an index number of a table
  • table# can refer to a 32-bit character string as a table identifier
  • bits has any value of 3 through 34 bits that indicates the number of required bits
  • B refers to a 1-bit character string indicating a byte alignment.
  • > refers to a 1-bit character string for printing an output of a left side.
  • VLD2 for MPEG-2
  • VLD4 for MPEG-4
  • FIG. 24 is a block diagram showing an encoder in accordance with an embodiment of the present invention.
  • the encoder 2400 of the present invention further includes an extended bitstream generating and outputting unit 2410 as compared with the conventional encoder 200 described with reference to FIG. 2.
  • the extended bitstream generating and outputting unit 2410 generates a decoder description by using control information (e.g. a list and connection relationship of used functional units and input data, syntax information and syntax connection information of a pertinent functional unit) of the generating operation of the conventional bitstream 316 generated by the processing of the previous operations.
  • the extended bitstream 305 is generated by using the generated decoder description 313 and the conventional bitstream 316 before being transmitted to the decoder 300.
  • the encoder 2400 can also include a toolbox having a plurality of functional units and a bitstream conforming to at least one encoding standard can be generated through successive or organic combinations of the functional units included in the toolbox.
  • an element e.g. the encoding unit
  • the element that ultimately performs the encoding is not limited to the variable length encoding unit 235. This does not depart the scope of claims of the present invention.
  • FIG. 24 shows that the extended bitstream 305 generated by using the decoder description information and the conventional bitstream 316 is provided to the decoder.
  • the decoder description can be transferred to the decoder 300 in the form of separate data or bitstreams.
  • an encoded decoder description generating and outputting unit (not shown) can be placed in back of the variable length encoding unit 235 to provide the decoder 300 with the encoded decoder description generated independently of the conventional encoding unit 200.
  • the decoder has been used hitherto to describe the integrated codec apparatus and the method thereof in accordance with an embodiment of the present invention
  • the mutual relationship between the decoder and the encoder is evident to any person of ordinary skill in the art and it shall be obvious that the present invention is not limited to the decoder when it is considered that the encoder can be easily formed by using only detailed descriptions related to the decoder.
  • the integrated codec apparatus and the method thereof in accordance with the present invention makes it easy to analyze a syntax element and control the connection of the functional units in one standard (or codec) or between different standards (or codecs). In other words, it is possible to change the sequence of syntax elements in the bitstream to be generated according to a certain standard, to insert a new syntax element or to delete the existing syntax elements.
  • the decoder is unable to normally decode a pertinent bitstream when the syntax element is manipulated. For example, if the bitstream is re-formed and transmitted by changing the sequence of the bitstream information from ABC to ACB, the decoder is not able to recognize the re-formed bitstream. This makes it impossible to normally decode the re-formed bitstream. Similarly, if the bitstream is re-formed as ABFC by newly inserting F or as AC by deleting B, the decoder is also not able to recognize the re-formed bitstream.
  • the integrated codec apparatus and the method thereof in accordance with the present invention can allow the decoder description information to be included in an expanded bitstream or to be provided to the decoder description information as independent data, the decoder 300 can smoothly perform the decoding operation.
  • FIG. 25 shows a brief structure of a decoder in accordance with an embodiment of the present invention
  • FIG. 26 detailedly shows how a decoding unit processes a bitstream in accordance with an embodiment of the present invention.
  • the decoder description and video bitstream of FIG. 25 can be information generated and provided by an encoder, for example.
  • the decoder 2500 includes a decoding unit 2505 and a dividing unit 2510.
  • the decoding unit 2505 includes a BSDL parser 2520, a decoder forming unit 2530, a toolbox 2535 and a decoding solution 2540.
  • the BSDL parser 2520 analyzes the syntax information of a video bitstream inputted from the outside by using a BSDL schema inputted from the dividing unit 2510.
  • the video bitstream inputted into the BSDL parser 2520 is used as data encoded by an encoding type (e.g. MPEG-4 or AVS). It can be understood by any person of ordinary skill in the art through this description that the BSDL parser 2520 itself can analyze the BSDL schema or can be formed by an outer algorithm.
  • the BSDL parser 2520 includes a BSDL analysis processing unit 2525, which is an inner processing unit for reading the BSDL schema written in an XML grammar and re-defining the structure of the BSDL parser 2520.
  • the BSDL parser 2520 can be formed to include functions for achieving the above points, and the re-defining operation can refer to the operation that uses the aforementioned parsing functions to realize the BSDL parser 2520.
  • the BSDL parser 2520 can be realized by using a program such as caltrop actor language (CAL), C, C++ or Java that can form a fluid data flow by the control of the BSDL analysis processing unit 2525.
  • CAL caltrop actor language
  • C C
  • C++ Java
  • the BSDL analysis processing unit 2525 and the BSDL parser 2520 can be realized according to the design standard without any restriction. Of course, it can be possible to use the previously suggested BSDL operation program such as a BSDL reference soft ware.
  • the BSDL reference software is the official software made for smoothly operating the BSDL standardized by the MPEG. It shall be obvious that the BSDL parser 2520 can be also more easily realized by using this type of software resource.
  • the basic structure of the BSDL parser 2520 can be designed in various ways as selected by a decoder designer. In other words, the decoder designer can selectively apply and design a detailed algorithm for performing a designated function of the BSDL parser 2520.
  • the BSDL parser 2520 can be re-defined by the result of reading the BSDL schema. The re-defined result must work (e.g. communicate) with other elements of the decoding unit 2505.
  • the details of the syntax information included in the bitstream are written in the BSDL schema inputted into the BSDL parser 2520.
  • the details can include the length, meaning and appearance condition of the syntax information and a repeated appearance frequency, for example.
  • the length of the syntax information refers to the length of bits occupied by certain information in the bitstream.
  • the meaning of the syntax information shows what meaning the pertinent information has. This is because if a functional unit requests some information of A, for example, it may be necessary to distinguish which information is A.
  • the attributes of the bitstream may change whether a part of the syntax information appears or how many times a part of the syntax information appears.
  • the appearance condition and the repeated appearance frequency can be included in the BSDL schema.
  • the appearance condition may be necessary to allow motion vector information not to be read when an infra frame is processed, and if a pertinent macroblock is assumed to have 6 identical structural blocks, the repeated appearance frequency can be used to repeat the pertinent block.
  • the BSDL analysis processing unit 2525 helps the BSDL parser 2520 to read the information included in the bitstream according to the sequence of designated by the BSDL schema by transferring result information of the analyzed details to the BSDL parser 2520.
  • the BSDL parser 2520 converts contents of the bitstream, which is inputted by referring to the result information provided from the BSDL analysis processing unit 2525, to meaningful data in order to provide the meaningful data to the decoder forming unit 2530 and/or the decoding solution 2540.
  • the meaningful data, provided to the decoder forming unit 2530 and/or the decoding solution 2540, can include encoded video data of a predetermined macroblock size, an AC prediction flag (ACpred flag) for intra-coded macroblocks, MB type & coded block pattern for chrominance (MCBPC) and a coded block pattern for luminance (CBPY), for example.
  • This data providing operation can be performed regardless of whether the decoder forming unit 2530 or the decoding solution 2540 is driven.
  • the present invention is to allow the decoder description to be realized to have the structure using a BSDL system format and an XML based format that is linkable to the BSDL system. It shall be understood by any person of ordinary skill in the art through this description that the decoder description can have the XML format such as a BSDL and a CALML, and the BSDL schema and the CALML can have separated functions to be used for a syntax parsing operation and connection control between functional units, respectively.
  • the BSDL performs the writing in a form of an XML document or an XML schema including information related to the structure and the constituting type of the bitstream.
  • the language is designed to represent at least one video bitstream structure.
  • the decoder forming unit 2530 controls the decoding solution 2540 to be realized by using the connection control information inputted from the dividing unit 2510 and some (e.g.
  • ACpred_flag AC prediction flag
  • MBBPC MB type & coded block pattern for chrominance
  • CBPY coded block pattern for luminance
  • the decoder forming unit 2530 controls some or all functional units of the toolbox 2535 to be loaded and arranged in the decoding solution 2540 by being organically connected to each other by use of the connection control information.
  • the connection control information is written by using a CAL markup language (CALML).
  • the CALML is the XML format capable of writing the constitution of a decoder by using the caltrop markup language, which has currently been disputed by the MPEG.
  • the caltrop markup language is constituted to include a program object, Actor, and connection relationships between Actors.
  • the CALML is the caltrop markup language which is expressed by the XML format.
  • An example of the CALML has already shown above as the examples of the BSDL schema and the connection control information.
  • the decoder forming unit 2530 has an authority to access the toolbox 2535 including the sets of various functional units.
  • the decoder forming unit 2530 also sets the input and output connection between the functional units of the toolbox 2535 and forms the decoding solution 2540 as the result.
  • the input and output connection structure and executing sequence between the functional units is determined by referring to the connection control information.
  • the decoder forming unit 2530 can receive some information to recognize the type of the inputted bitstream from the BSDL parser 2520 and refer to the received information in a functional unit connecting operation.
  • connection structure of functional units when it is expected that data is continuously inputted from the outside, the connection structure can be considered as an independent decoder, capable of analyzing and decoding all types of video bitstreams intended by a pertinent decoder description designer. At this time, this completed functional connection structure can be referred to as the decoding solution 2540.
  • the toolbox 2535 includes a plurality of functional units, each of which is realized to perform a predetermined process. Each of the functional units can be realized as a combination of program codes. Functional units included in the toolbox 2535 can be segmentalized into a plurality of subtoolboxes as each applied usage set. For example, the functional units can be segmentalized into a first toolbox including the functional units for MPEG and a second toolbox including other functional units. Alternatively, functional units can be segmentalized into a first toolbox as a set of the functional units for MPEG-2, a second toolbox as a set of the functional units for MPEG-4 and a third toolbox as a set of the functional units for AVS, which is a digital TV compression standard in China.
  • a plurality of toolboxes 2535 can have an independent connection relationship with the decoder forming unit 2530 and the decoding solution 2540.
  • the first toolbox and the second toolbox, described above can be realized in the form of independent toolboxes. This is not shown.
  • the toolbox 2535 includes the functional units realized to perform each function (i.e. a predetermined process). Each functional unit forms successive connecting operation relationships by being loaded on the decoding solution 2540 by the connection control of the decoder forming unit 2530, to thereby output the encoded video data included in the video bitstream as decoded video data.
  • the toolbox 2535 can include a de-blocking filtering (DF) functional unit, a VOP reconstructing (VR) functional unit, a frame field reordering (FFR) functional unit, an intra prediction and picture reconstruction (IPR) functional unit, an inverse transform (IT) functional unit, an inverse quantization (IQ) functional unit, an inverse AC prediction (IAP) functional unit, an inverse scanning (IS) functional unit and a DC reconstruction (DCR) functional unit, for example.
  • An IT 4x4 functional unit, an IQ 4x4 functional unit and a DCR 4x4 functional unit process the blocks having the size of 4x4. This is because while MPEG- 1/2/4 process data in 8x8 block size in the transform, quantization and prediction, MPEG-4 AVC may process data in 4x4 block size.
  • the toolbox 2535 can include any functional unit for performing a data decoding function regardless of an applied standard, a necessary functional unit for the developed technology can be added, an existing functional unit can be modified and an unnecessary functional unit can be deleted. For example, if the IS functional unit processing data in 4x4 block size to perform the decoding is needed, the pertinent functional units can be included in the toolbox 2535. Moreover, a special prediction (SPR) functional unit can be added to perform the intra prediction for the MPEG-4 AVC.
  • SPR special prediction
  • the DF functional unit is a de-blocking filter of MPEG-4 AVC, and the VR functional unit stores a decoded pixel value.
  • the FFR functional unit is for an interlaced mode, and the IPR functional unit stores a decoded pixel value after the intra prediction of MPEG-4 A VC is performed. As described above, the intra prediction of MPEG-4 AVC can be performed by the SPR functional unit.
  • the IT functional unit performs the inverse transform of DC values and AC values, and the IQ functional unit performs the inverse quantization of the AC values.
  • the IAP functional unit performs the inverse AC prediction of the AC values, and the IS functional unit performs the inverse scan of the AC values.
  • the DCR functional unit performs the inverse AC prediction and the inverse quantization of the DC values.
  • the decoding solution 2540 which is formed by the decoder forming unit 2530, receives the bitstream data (or encoded video data of a predetermined macroblock size) divided in a unit of syntax information by the BSDL parser 2520.
  • the bitstream can be inputted through a tangible or intangible data interface for inputting and outputting data.
  • the data interface can be a memory buffer, a virtual port determining the flow of data or a parameter of a program.
  • the data interface can be a connection line of a circuit. Otherwise, the data interface can be realized in various ways.
  • the data can be continuously inputted through a pertinent interface regardless of the process performed by a certain functional unit (e.g. so as to perform the parallel processing).
  • the decoding solution 2540 processes the inputted data and outputs it as decoded video data.
  • data can be transferred from the data interface to each functional unit, and the functional unit can process the pertinent data and transfer the processed data to a following functional unit. This kind of data flow can be determined as pre-determined by the decoder forming unit 2530.
  • the decoding solution 2540 can include a storing unit for storing the data (e.g. information extracted by the syntax parsing of a bitstream) provided from the BSDL parser 2520 and processed result data of each functional unit.
  • Each functional unit loaded by the control of the BSDL parser 2520 can perform a predetermined process by using at least one of the data provided from the BSDL parser 2520 and the resulted data of a previously operated functional unit. In this case, a following functional unit to perform the corresponding process must recognize that the operation of the previous functional unit is completed.
  • the decoder forming unit 2530 can control whether the following functional unit starts the operation by continuously monitoring whether each functional unit completes the operation.
  • the storing unit includes independent areas per each functional unit and the processed result data of the previous functional unit is allowed to be stored in the area for the following functional unit by the control of the decoder forming unit 2530, the following functional unit can perform the process immediately when the data necessary to perform the process is stored in the area.
  • various methods for controlling a processing start time between the functional units are additionally considered.
  • the pertinent storing unit can be equipped in the decoder forming unit 2530, and the decoder forming unit 2530 can provide a functional unit that is to perform the current process with the data (e.g. information extracted by the syntax parsing of a bitstream) provided from the BSDL parser 2520 and the processed result data of each functional unit.
  • the data e.g. information extracted by the syntax parsing of a bitstream
  • the BSDL parser 2520 recognizes that there are MB type data and 2-bit CBPY data at the areas corresponding to the information A and the information B, respectively, by reading the BSDL schema.
  • the BSDL parser 2520 reads bits in predetermined quantities that are designated in each area by using the recognized information and transfer the read information to the decoding solution 2540 according to given meanings.
  • the decoding solution 2540 receives the data named as an MB type and CBPY from the BSDL parser 2520 to process the data. As described above, the decoding solution 2540 is realized by allowing each functional unit to be loaded by the connection control of the decoder forming unit 2530.
  • the data interface of the decoding solution 2540 receives the data transferred from the outside and transfers the received data to the functional units requesting the pertinent data by referring to a connection relationship of the functional units previously formed by the connection control information.
  • Each functional unit also performs the decoding operation according to the predetermined connection relationship (i.e. the connection relationship for processing data). All data flow and the connection relationship between the functional units depend on the details previously formed by the decoder forming unit 2530. An output video frame is outputted to the outside by the successive processing of each functional unit.
  • the decoder forming unit 2530 and/or the decoding solution 2540 can include a storing unit. This is because any cease can be prevented from occurring in the operation of receiving the data from the BSDL parser 2520 and the data can be provided in parallel in the decoding operation. Each functional unit can also read desired data from the storing unit to use the read data.
  • the BSDL parser 2520 can allow the decoder forming unit 2530 to provide the data to the decoding solution 2540 in order to decode encoded video data by providing corresponding data to the decoder forming unit 2530.
  • the BSDL parser 2520 can directly provide the pertinent data to the decoding solution 2540.
  • the dividing unit 2510 divides the inputted decoder description 2560 into each information to input the divided information into the decoding unit 2505.
  • the decoder description 2560 inputted into the dividing unit 2510 can include the BSDL schema 2565 for writing the structure of a bitstream and the CALML data 2570 for writing the decoding operation of a bitstream.
  • the aforementioned two types of data can be independently written by the XML grammar or can be integrated and transmitted for the efficient operation of a decoder.
  • FIG. 27 shows how a decoder description is inputted in accordance with another embodiment of the present invention.
  • the decoder 2500 can further include a description decoder 510.
  • the description decoder 510 can generate the decoder description 2560 by decoding an inputted encoded decoder description 520 in order to provide the generated decoder description 2560 to the dividing unit 2510.
  • Transmitting the encoded decoder description 2560 makes it possible to reduce the amount of the transmitted and received data.
  • FIG. 28 shows how a decoder description is inputted in accordance with another embodiment of the present invention.
  • FIG. 25 The above description with reference to FIG. 25 is related to the case that the decoder description 2560 and the video bitstream 2580 are inputted into the decoding unit 2505.
  • the above description with reference to FIG. 27 is related to the case that the encoded decoder description 520 and the video bitstream 2580 are inputted into the decoding unit 2505.
  • FIG. 28 it shall be obvious that configuration information of the decoder description 2560 can be initially divided and inputted into the decoding unit 2505. In this case, the foregoing separating 2510 and decoder description 2560 can be obviously emitted.
  • FIG. 31 shows the structure of a decoding unit in accordance with another embodiment of the present invention.
  • the decoding unit 2505 realized by separating the toolbox 2535 and the decoder forming unit 2530 from each other has been described above with reference to FIG. 25 through FIG. 28.
  • the decoder forming unit 2530 can include the toolbox 2535 as an element.
  • the decoder forming unit 2530 can perform not only the control function of the connection structure between the functional units but also the selecting function of a functional unit to be used. This can realize the decoding solution 2540 in various types.
  • FIG. 32 shows the structure of a BSDL parser in accordance with another embodiment of the present invention.
  • the BSDL parser 2520 including the BSDL analysis processing unit 2525 has been described above with reference to FIG. 25.
  • the BSDL parser 2520 of the present invention can be previously defined from an outside of the decoder 2500 before starting the decoding of a bitstream. Accordingly, the aforementioned BSDL analysis processing unit 2525 can be omitted.
  • a BSDL parser maker 2610 can be configured by using the existing application program such as a BSDL reference software.
  • a BSDL parser performing a predetermined operation as an independent element has been described above.
  • the BSDL parser can be realized as one functional unit included in a toolbox or pre-included as an independent element in a decoding solution. If the BSDL parser is equipped in the toolbox, a decoder forming unit must load and control the BSDL parser to perform the process by using connection control information before the functional units for performing the bitstream decoding starts their operations. Similarly, if the BSDL parser pre-includes in the decoding solution, the decoder forming unit must control the BSDL parser to perform the process before each loaded functional unit starts to perform the process.
  • the operations and functions of the BSDL parser is the same as described above with reference to the related drawings. Accordingly, the pertinent detailed description will be omitted. However, it may be necessary that the decoder forming unit and/or the decoding solution receive the BSDL schema and/or the bitstream at the first time.
  • the decoding device and the method thereof in accordance with the present invention makes it easy to analyze a syntax element and control the connection of the functional units in one standard (or codec) or between different standards (or codecs). In other words, it is possible to change the sequence of syntax elements in the bitstream to be generated according to a certain standard, to insert a new syntax element or to delete the existing syntax elements.
  • the decoder is unable to normally decode a pertinent bitstream when a syntax element is manipulated. For example, if the corresponding bitstream is re-formed and transmitted by changing the sequence of the bitstream information from ABC to ACB, the decoder is not able to recognize the re-formed bitstream. This makes it impossible to normally decode the re-formed bitstream. Similarly, if the bitstream is re-formed as ABFC by newly inserting F or as AC by deleting B, the decoder is also not able to recognize the re-formed bitstream.
  • the decoder 300 can smoothly perform the decoding operation.
  • the syntax analyzing method for the bitstream decoding and the decoding device in accordance with the present invention has been described based on the MPEG-4 AVC.
  • the present invention can be identically applied to the MPEG-I, MPEG-2, MPEG-4 and other video data encoding / decoding standards without any restriction.
  • connection control information can be written as not only information related to connection relationships of the functional units for performing the decoding by one standard and information related to the processing operation required for the pertinent functional unit but also information for performing the decoding by a plurality of standards.
  • connection control information is obviously defined such that the functional units conforming to each standard included in the toolbox 2535 can be organically coupled to process each frame encoded by using different encoding methods.
  • the present invention can additionally have the structure in which the BSDL is changed to the BDD.
  • a plurality of decoder descriptions formed in text such as the BSDL can be changed to the BDD before being used.
  • a decoder description of a binary code for forming a decoder can be efficiently used because the decoder description of the binary code reduces its size by being compressed and each bit code having meanings is used to process information.
  • FIG. 31 is briefly described below.
  • a grammar syntax of a bitstream to be used in a codec can be written in a text form.
  • a structural form of a decoder can be written by using a BSDL which is one of various text-based descriptive languages.
  • the BSDL which is one of various text-based descriptive languages can be represented by using a binary decoder description (BDD) language to be compressed and efficiently represented.
  • BDD binary decoder description
  • the binary decoder description (BDD) language represented as a BDD for syntax analysis in order to form a decoder.
  • the BSDL formed by using the XML can be configured to include an encoding code and output data for forming a syntax element, a grammar and a decoder.
  • a syntax of a BSDL formed by using an XML can consist of each syntax element.
  • the syntax of the BSDL formed by using the XML can include the grammar (i.e. syntax rule) that must be processed by a functional unit.
  • the syntax of the BSDL formed by using the XML indicates output data (i.e. CSCI) to be used by a functional unit.
  • the syntax of the BSDL formed by using the XML includes an encoding code (i.e. entropy coding table) that a functional unit refers to.
  • the BSDL which is a text-based description language, can be changed to the binary form to be represented by using fewer bits.
  • FIG. 32 is briefly described below. A part of the BSDL formed by using an
  • XML which must be processed by a decoder functional unit can be represented in a binary code.
  • Each XML part generates a binary code by giving a bit code designated according to the meaning.
  • Video_signal_type is designated as Sl 1, and a value pointing to "video_signal_type” is determined as Cl 1, which is a CSCI element.
  • the corresponding part that is converted to the binary code has the following form.
  • the present invention suggests the technology that converts the BSDL to a binary decoder description, thereby being capable of designing a BDD having optimized size, designing a BDD for a non-MPEG codec and making a BDD decoding description for an environment in real time.
  • connection control information can be also written as not only information related to connection relationships of the functional units for performing the decoding by one standard and related to the processing operation required for the pertinent functional unit but also information for performing the decoding by a plurality of standards.
  • the decoder description information included in the decoder description is obviously defined such that the functional units conforming to each standard included in the toolbox 2535 can be organically coupled to process each frame encoded by using different encoding methods.
  • the present invention is applicable to a video codec.

Abstract

Disclosed are a device and a method for encoding/decoding video data. A decoding device can include a toolbox, configured to include a plurality of functional units which are realized to perform individually each process determined by at least one decoding standard to decode a bitstream; a description storing unit, configured to store partial decoder descriptions for controlling operations of some or all of the functional units; and a decoder forming unit, configured to control encoded video data to be decoded as video data by selectively loading some of all of the functional units with reference to at least one partial decoder description. With the present invention, it is possible to re-structure and re-form the decoder in various form using decoder descriptions.

Description

[DESCRIPTION] [Invention Title]
DEVICE AND METHOD FOR ENCODING/DECODING VIDEO DATA
[Technical Field]
The present invention relates to encoding/decoding of video data, more specifically to a device and a method for encoding/decoding video data through organic coupling or selective activation of functional units.
[Background Art]
Typically, a video is converted to a bitstream by an encoder. At this time, the bitstream is stored depending on a coding type that satisfies the constraint condition of the encoder.
MPEG requests syntax and semantics, which are the constraint condition of the encoder.
The syntax, which refers to the structure, format, or length of data, shows the sequence of expressing the data. In other words, the syntax is to meet a rule for encoding / decoding and defines the sequence and length of each element of the bitstream and a corresponding data format. The semantics refers to the meaning of each bit that constitutes data. In other words, the semantics shows the meaning of each element of the bitstream.
Accordingly, the bitstream can be generated in various types depending on the encoding condition or the applied standard (or codec) of the encoder. Typically, each standard (e.g. MPEG-I, MPEG-2, MPEG-4 and MPEG-4 AVC) has different bitstream syntaxes.
Accordingly, it may be considered that the bitstream encoded according to each standard or encoding condition has different types (i.e. syntax and semantics). A decoder corresponding to a pertinent encoder must be used to perform the decoding of the bitstream. As described above, the conventional bitstream decoder has a restriction that must satisfy the constraint condition of the encoder. This restriction makes it difficult to realize an integration decoder corresponding to a plurality of standards.
[Disclosure] [Technical Problem]
Accordingly, the present invention, which is contrived to solve the aforementioned problems, provides a bitstream decoding device and a method thereof that can decode a bitstream encoded in various types (syntaxes and semantics) in accordance with each standard (e.g. MPEG-I, MPEG-2, MPEG-4 and MPEG-4 AVC) by using the same information recognizing method. The present invention provides a bitstream encoding device and a method thereof that generate an extended bitstream added with a decoder description or independently generate a bitstream and a decoder description in order to decode a bitstream, encoded in various types (syntaxes and semantics), by using the same information recognizing method.
The present invention also provides a bitstream decoding device and a method thereof that parse a bitstream, compressed in various methods, by using the same information analyzing method and organically control each functional unit for performing the decoding by using the parsed data. The present invention provides a bitstream encoding device and a method thereof that can apply a hierarchy structure of a codec to syntax parsing and decoding operations to more efficiently write a decoder description.
The present invention provides a bitstream decoding device and a method thereof that can suggest scheduling management of each codec and an organic processing structure (e.g. a parallel coupling structure, a series combining structure, an independent processing structure and an individual processing structure) by using a decoder description.
The present invention provides a bitstream encoding device and a method thereof that can design and build a system in various ways by using a written decoder description or hierarchy information only. The present invention provides a bitstream encoding/decoding device and a method thereof that can commonly apply a syntax analyzing method for decoding various types of bit streams.
The present invention provides a bitstream encoding/decoding device and a method thereof that can apply a set of new commands for parsing various types of bitstreams by using a common syntax analyzing method.
The present invention provides a bitstream decoding device and a method thereof that can allow a decoder to easily decode a bitstream when a syntax element is changed, added or deleted. The present invention provides a bitstream decoding device and a method thereof that can allow some elements used to decode a bit stream to share the element information (i.e. a result from syntax parsing) of analyzed syntax.
The present invention provides a bitstream decoding device and a method thereof that can allow the element information of already-analyzed syntax to be used to analyze the syntax element of a following bit stream.
The present invention provides a bitstream decoding device and a method thereof that can group various functions included in decoding methods suggested by a variety of standards (or codec) according to each functional unit to put the grouped functions in a toolbox. The present invention provides a bitstream decoding device and a method thereof that can selectively use some functional units necessary for a toolbox in order to decode a bitstream encoded in various types.
The present invention provides a bitstream decoding device and a method thereof that can easily change, add or delete the functional units stored in a toolbox. In addition, the present invention is to internationally standardize the generation of codec integration for decoding a bitstream, a decoder description for allowing a bitstream to be processed by the same information analyzing method and the realization of an extended bitstream. Other problems that the present invention solves will become more apparent through the following description.
[Technical Solution]
To solve the above problems, an aspect of the present invention features a decoder and/or an integrated codec apparatus that can be universally used for various standards. According to an embodiment of the present invention, a decoding device can include a toolbox, configured to include a plurality of functional units which are realized to perform individually each process determined by at least one decoding standard to decode a bitstream; a description storing unit, configured to store partial decoder descriptions for controlling operations of some or all of the functional units; and a decoder forming unit, configured to control an encoded video datum to be decoded as video datum by selectively loading some of all of the functional units with reference to at least one partial decoder description.
A working memory for allowing a functional unit loaded by a control of the decoder forming unit to perform a process can be included in the decoder forming unit or coupled to the decoder forming unit.
The decoder forming unit can include a storing unit, configured to store at least one of control signal/context information (CSCI) generated by a process performed by at least one functional unit and a datum for decoding; and a connection control unit, configured to control the functional unit(s) to be selectively loaded. The toolbox can include at least one parsing functional unit configured to perform the syntax parsing of the bitstream and a plurality of decoding functional units configured to decode the encoded video datum.
A partial decoder description being stored in the description storing unit can include information related to a hierarchy of functional units, and the decoder forming unit performs a call between hierarchies of at least one functional unit by referring to the information.
The decoder forming unit can controls an object of an uppermost hierarchy to be generated and executed, and executing the object can load functional units included in the uppermost hierarchy and a calling unit for calling a hierarchy designated by the hierarchy information. If a datum necessary for at least one functional unit pertaining to a corresponding hierarchy to perform a predetermined process is stored in a storing unit, the calling unit can load the corresponding hierarchy.
If a process-datum for performing a designated process is stored in the storing unit, the loaded functional unit can start to perform a process.
A result datum obtained by a process performed by each functional unit can be stored in the storing unit.
A hierarchy structure being recognized by the information related to a hierarchy can include at least one of a sequence layer, a picture layer, a slice layer, a macroblock layer and a block layer, and a lower hierarchy can be called by an upper hierarchy.
An encoded decoder description corresponding to a decoder description for forming the partial decoder description can be provided as a datum independent of the bitstream or as an element of an extended bitstream combined with the bitstream. The decoding device can further include a dividing unit configured to divide the extended bitstream into the encoded decoder description and the bitstream.
The decoding device can further include a description decoder configured to convert the encoded decoder description to the decoder description.
A dedicated storing space for each decoding functional unit can be allotted in the storing unit. The storing unit can include a CSCI storing unit, configured to store control signal/context information (CSCI) generated by the parsing functional unit; and a data storing unit, configured to store a datum for a decoding, which is at least one of a datum corresponding to the encoded video datum generated by the parsing functional unit and a process-datum processed by the decoding functional unit.
The partial decoder description being stored in the description storing unit can include a decoding hierarchy table (DHT) which indicates information related to a hierarchy structure for decoding the encoded video datum and lower hierarchies per each hierarchy; a syntax element table (SET) which indicates a process for generating information related to a bitstream syntax and element information corresponding to the bitstream syntax; a syntax rule table (S-RT) which indicates names of a connection information between the bitstream syntaxes, information related to a lower hierarchy to be called per each hierarchy and CSCI in which a result datum generated by a process performed by the SET is to be stored; a control signal and context information table (CSCIT) which indicates a detailed information related to CSCI per hierarchy structure; a FU rule table (F-RT) which indicates a called or activated order of a plurality of decoding functional units based on the hierarchy structure; a FU list (FL) which indicates a list of the decoding functional units; and a FU-CSCIT which indicates CSCI necessary for the decoding functional unit to perform a process. The description storing unit can further store a default value table (DVT), which indicates a relationship between an actual value and a code value in an entropy coding, as a partial decoder description.
The connection control unit can control at least one functional unit pertaining to an uppermost hierarchy to be loaded by using the F-RT. The parsing functional unit can generate at least one of the CSCI and a datum to be decoded by referring to at least one of the SET, the S-RT and the CSCIT.
The decoding functional unit can perform a predetermined process by referring to at least one of the FL, the F-RT, the FU-CSCIT and the CSCIT.
The decoder description can include at least one distinguishment area, and information for forming the partial decoder description can be inserted into the distinguishment area(s).
The partial decoder description can include designated information corresponding to a codec number (codec No.) and a profile and level number (profile and level No.) to decode the bitstream, and the description decoder can extract tables in quantities of n corresponding to the designated information among a plurality of partial decoder descriptions that are pre-stored in the description storing unit.
The distinguishment areas in qualities of m, m being a natural number, among the distinguishment areas can include designated information corresponding to a codec number (codec No.) and a profile and level number (profile and level No.) of a corresponding partial decoder description, and the distinguishment areas in qualities of k, k being a natural number, can include binary code information for forming a corresponding partial decoder description, where the description decoder can extract m partial decoder descriptions corresponding to the designated information among the plurality of partial decoder descriptions pre-stored in the description storing unit, generate k tables by using the binary code information and store the k generated tables in the description storing unit.
In accordance with another embodiment of the present invention, a decoding device can include a parser, configured to receive schema information for analyzing a bitstream and converting the bitstream to a meaningful datum to output the datum; and a decoding solution, configured to output a video datum by performing a bitstream decoding using the datum.
The decoding device can further include a toolbox configured to include at least one functional unit which is realized to perform a predetermined process; and a decoder forming unit configured to receive connection control information corresponding to the bitstream, set a connection relationship of at least one functional unit of the toolbox and control the functional unit(s) to be loaded on the decoding solution.
The decoder forming unit can receive the datum from the parser and provide the received datum to the decoding solution. The decoding device can further include a dividing unit configured to receive a decoder description and divides the received decoder description into the schema information and the connection control information to output the schema information and the connection control information, respectively.
The decoding solution can include a dividing unit configured to receive a decoder description and divides the received decoder description into the schema information and the connection control information to output the schema information and the connection control information, respectively.
The schema information can include information related to details of syntax information included in the bitstream and comprises at least one of a length, a meaning, an appearance condition and a repeated appearance frequency of the syntax information.
The schema information can be written by using an XML grammar.
The connection control information can be written by using a CAL markup language (CALML).
The toolbox can be formed to include subtoolboxes which are sets of the functional units distinguished according to an applied standard.
The decoding solution can include a working memory configured to allow at least one functional unit to be loaded and operated.
The toolbox can be an element of the decoder forming unit.
A functional unit loaded on the decoding solution can perform a predetermined process in which at least one of the datum and an output datum, outputted by a functional unit previously performing the process, is determined as an input datum.
To solve the aforementioned problems, another aspect of the present invention features a decoding method that can be universally used for various standards and/or a recorded medium recorded with a program for executing the method thereof.
In accordance with an embodiment of the present invention, the decoding method can include(a) generating and storing a decoder description corresponding to inputted encoded decoder description information, the decoder description being formed to include a plurality of partial decoder descriptions; and (b) loading a parsing functional unit and at least one decoding functional unit pertaining to an uppermost hierarchy with reference to at least one partial decoder description, where the parsing functional unit can perform a syntax parsing of a bitstream, and the decoding functional unit(s) of the uppermost hierarchy can perform a corresponding process if control signal/context information (CSCI) for performing a predetermined process and a datum for a decoding is stored at a storing unit by the parsing functional unit, and if the control signal/context information (CSCI) for activating a first hierarchy and the datum for a decoding is stored in the storing unit to correspond a hierarchy structure, the first hierarchy can be loaded by an activated second hierarchy.
The decoding functional unit can determine whether to be called or activated corresponding to a hierarchy structure of the encoded video datum, and a video datum corresponding to the bitstream can be outputted by a process performed at least one time by each decoding functional unit of the decoder description.
The parsing functional unit and the decoding functional unit(s) can be realized to independently perform functions suggested by each decoding standard to decode the bitstream.
The storing unit can include a CSCI storing unit, configured to store CSCI generated by the parsing functional unit; and a data storing unit, configured to store a datum for a decoding, which is at least one of a datum corresponding to the encoded video datum generated by the parsing functional unit and a process-datum processed by a decoding functional unit.
The decoding functional units can start their operations by storing CSCI necessary to perform a predetermined process and the datum for a decoding in the storing unit.
A dedicated storing space for each decoding functional unit can be allotted in the storing unit.
The decoder description can include a decoding hierarchy table (DHT) which indicates information related to a hierarchy structure for decoding the encoded video datum included in the bitstream and lower hierarchies per each hierarchy; a syntax element table (SET) which indicates a process for generating information related to a bitstream syntax and element information corresponding to the bitstream syntax; a syntax rule table (S-RT) which indicates names of a connection information between the bitstream syntaxes, information related to a lower hierarchy to be called per each hierarchy and CSCI in which a result datum generated by a process performed by the SET is to be stored; a control signal and context information table (CSCIT) which indicates a detailed information related to CSCI per hierarchy structure; a FU rule table (F-RT) which indicates a called or activated order of a plurality of decoding functional units based on the hierarchy structure; a FU list (FL) which indicates a list of the decoding functional units; and a FU-CSCIT which indicates CSCI necessary for the decoding functional unit to perform a process. The decoder description can further include a partial decoder description, which is a default value table (DVT) indicating the relation between an actual value and a code value in an entropy coding.
At least one functional unit pertaining to an uppermost hierarchy can be controlled to be activated or called by using the F-RT. At least one of the CSCI and the datum to be decoded can be generated by referring to at least the SET, the S-RT and the CSCIT is generated.
In accordance with another embodiment of the present invention, a recorded medium tangibly embodying a program of instructions executable by a decoding device to perform a decoding method, the recorded medium being readable by the decoding device, including (a) generating and storing a decoder description corresponding to an inputted encoded decoder description information, the decoder description being formed to include a plurality of partial decoder descriptions; and (b) loading a parsing functional unit and at least one decoding functional unit pertaining to an uppermost hierarchy with reference to at least one partial decoder description, where the parsing functional unit can perform a syntax parsing of a bitstream, and the decoding functional unit(s) of the uppermost hierarchy can perform a corresponding process if control signal/context information (CSCI) for performing a predetermined process and a datum for a decoding is stored at a storing unit by the parsing functional unit, and if the control signal/context information (CSCI) for activating a first hierarchy and the datum for a decoding is stored in the storing unit to correspond a hierarchy structure, the first hierarchy can be loaded by an activated second hierarchy.
In accordance with another embodiment of the present invention, a decoding method can include (a) converting a bitstream to a meaningful datum to output the datum by using an inputted schema information; (b) setting a sequence of successive operations of functional units by using an inputted connection control information; and (c) allowing a bitstream decoding to be performed by the functional units by using the datum. The (b) can be performed by allowing a decoder forming unit to set a sequence of processes to be performed by at least one of a plurality of functional units included in a toolbox by using the connection control information.
If a decoder description in which the schema information and the connection control information are integrated is inputted, dividing the inputted decoder description into the schema information and the connection control information and outputting the schema information and the connection control information, respectively, can be performed prior to the (a).
The schema information can be information related to details of a syntax information included in the bitstream and comprises at least one of a length, a meaning, an appearance condition and a repeated appearance frequency of the syntax information.
The schema information can be written by using an XML grammar. The connection control information can be written by using a CAL markup language (CALML).
The functional unit can perform a predetermined process in which at least one of the datum and an output datum, outputted by a functional unit previously performing the process, is determined as an input datum.
In accordance with another embodiment of the present invention, a recorded medium tangibly embodying a program of instructions executable by a decoding device to perform a decoding method, the recorded medium being readable by the decoding device, including (a) inputted schema information; (b) setting a sequence of successive operations of functional units by using an inputted connection control information; and (c) allowing a bitstream decoding to be performed by the functional units by using the datum.
[Advantageous Effects]
As described above, an integrated codec apparatus and a method thereof in accordance with the present invention can decode a bitstream encoded in various types (syntaxes and semantics) in accordance with each standard (e.g. MPEG-I, MPEG-2, MPEG-4 and MPEG-4 AVC) by using the same information recognizing method.
The present invention can also generate an extended bitstream added with a decoder description to decode a bitstream, encoded in various types (syntaxes and semantics), by using the same information recognizing method.
The present invention can apply a hierarchy structure of a codec to syntax parsing and decoding operations to more efficiently write a decoder description.
The present invention can suggest scheduling management of each codec and an organic processing structure (e.g. a parallel coupling structure, a series combining structure, an independent processing structure and an individual processing structure) by using a decoder description. The present invention can design and build a system in various ways by using a written decoder description only.
The present invention can parse a bitstream, compressed in various methods, by using the same information analyzing method and organically control each functional unit for performing the decoding by using the parsed data. The present invention can commonly apply a syntax analyzing method for decoding various types of bit streams.
The present invention can apply a set of new commands for parsing various types of bitstreams by using a common syntax analyzing method.
The present invention can easily decode a bitstream when a syntax element is changed, added or deleted.
The present invention can allow some elements used to decode a bit stream to share the element information (i.e. a result from syntax parsing) of analyzed syntax.
The present invention can allow element information of analyzed syntax to be used to analyze the syntax element of a following bit stream. The present invention can be used for the integration of a video or still image codec performing the processing in units of blocks besides MPEG-I, MPEG-2, MPEG-4 and MPEG-4 AVC codecs.
The present invention can group various functions included in decoding methods suggested by a variety of standards (or codec) according to each functional unit to put the grouped functions in a toolbox. The present invention can selectively use some functional units necessary for a toolbox in order to decode a bitstream encoded in various types.
In addition, the present invention provides a bitstream decoding device and a method thereof that can easily change, add or delete the functional units stored in a toolbox.
[Description of Drawings]
FIG. 1 shows a brief structure of a typical decoder; FIG. 2 shows a brief structure of a typical encoder; FIG. 3 shows a brief structure of a decoder in accordance with an embodiment of the present invention;
FIG. 4 shows a brief structure of a decoding processing unit in accordance with an embodiment of the present invention;
FIG. 5 shows a brief structure of a decoding processing unit in accordance with another embodiment of the present invention;
FIG. 6 shows a brief structure of an extended bitstream in accordance with an embodiment of the present invention;
FIG. 7 shows types of functional units for syntax parsing in accordance with an embodiment of the present invention; FIG. 8 shows types of functional units performing decoding processing in accordance with an embodiment of the present invention;
FIG. 9 shows a hierarchy structure determined by a decoding hierarchy table (DHT) in accordance with an embodiment of the present invention;
FIG. 10 shows a call structure between hierarchies and a connection structure in a hierarchy, determined by a syntax rule table (S-RT) in accordance with an embodiment of the present invention;
FIG. 11 is a view for describing an interface set for a functional unit to be applied to a plurality of standards in accordance with an embodiment of the present invention; FIG. 12 shows a connection structure of a dedicated buffer space between nodes per each hierarchy in accordance with an embodiment of the present invention;
FIG. 13 shows how a dedicated buffer space for storing CSCI data is included in accordance with an embodiment of the present invention;
FIG. 14 shows an including relationship of a dedicated buffer space for storing output data outputted by a functional unit in accordance with an embodiment of the present invention;
FIG. 15 conceptually shows parallel processing syntax parsing and data decoding in accordance with an embodiment of the present invention;
FIG. 16 shows the structure of an extended bitstream in accordance with a first embodiment of the present invention; FIG. 17 shows the structure of an extended bitstream in accordance with a second embodiment of the present invention;
FIG. 18 shows the structure of an extended bitstream in accordance with a third embodiment of the present invention; FIG. 19 shows the structure of an extended bitstream in accordance with a fourth embodiment of the present invention;
FIG. 20 shows the structure of an extended bitstream in accordance with a fifth embodiment of the present invention;
FIG. 21 shows the structure of an extended bitstream in accordance with a sixth embodiment of the present invention;
FIG. 22 shows the structure of an extended bitstream in accordance with a seventh embodiment of the present invention;
FIG. 23 shows the structure of an extended bitstream in accordance with an eighth embodiment of the present invention; FIG. 24 is a block diagram showing an encoder in accordance with an embodiment of the present invention;
FIG. 25 shows a brief structure of a decoder in accordance with an embodiment of the present invention;
FIG. 26 detailedly shows how a decoding unit processes a bitstream in accordance with an embodiment of the present invention; FIG. 27 shows how a decoder description is inputted in accordance with another embodiment of the present invention;
FIG. 28 shows how a decoder description is inputted in accordance with another embodiment of the present invention; FIG. 29 shows the structure of a decoding unit in accordance with another embodiment of the present invention;
FIG. 30 shows the structure of a BSDL parser in accordance with another embodiment of the present invention; and
FIG. 31 through FIG. 33 shows how a BSDL and a binary decoder description (BDD) are hanged to each other in accordance with an embodiment of the present invention.
[Mode for Invention]
Since there can be a variety of permutations and embodiments of the present invention, certain embodiments will be illustrated and described with reference to the accompanying drawings. This, however, is by no means to restrict the present invention to certain embodiments, and shall be construed as including all permutations, equivalents and substitutes covered by the spirit and scope of the present invention.
Terms such as "first" and "second" can be used in describing various elements, but the above elements shall not be restricted to the above terms. The above terms are used only to distinguish one element from the other. For instance, the first element can be named the second element, and vice versa, without departing the scope of claims of the present invention. The term "and/or" shall include the combination of a plurality of listed items or any of the plurality of listed items. When one element is described as being "connected" or "accessed" to another element, it shall be construed as being connected or accessed to the other element directly but also as possibly having another element in between. On the other hand, if one element is described as being "directly connected" or "directly accessed" to another element, it shall be construed that there is no other element in between. The terms used in the description are intended to describe certain embodiments only, and shall by no means restrict the present invention. Unless clearly used otherwise, expressions in the singular number include a plural meaning. In the present description, an expression such as "comprising" or "consisting of is intended to designate a characteristic, a number, a step, an operation, an element, a part or combinations thereof, and shall not be construed to preclude any presence or possibility of one or more other characteristics, numbers, steps, operations, elements, parts or combinations thereof.
Unless otherwise defined, all terms, including technical terms and scientific terms, used herein have the same meaning as how they are generally understood by those of ordinary skill in the art to which the invention pertains. Any term that is defined in a general dictionary shall be construed to have the same meaning in the context of the relevant art, and, unless otherwise defined explicitly, shall not be interpreted to have an idealistic or excessively formalistic meaning.
Hereinafter, some embodiments of an integrated codec apparatus and a method thereof in accordance with an embodiment of the present invention will be described in detail with reference to the accompanying drawings. Identical or corresponding elements will be given the same reference numerals, regardless of the figure number, and any redundant description of the identical or corresponding elements will not be repeated.
FIG. 1 shows a brief structure of a typical decoder, and FIG. 2 shows a brief structure of a typical encoder.
As illustrated in FIG. 1, an MPEG-4 decoder 100 typically includes a variable length decoding unit 110, an inverse scanning unit 115, an inverse DC/ AC prediction unit 120, an inverse quantization unit 125, an inverse discrete cosine transform unit 130 and a VOP reconstruction unit 135. It shall be evident that the decoder 100 has a structure that can be changed depending on an applied standard and some elements can be replaced with other elements.
If a transferred bit stream 105 is syntax-parsed and corresponding header information and encoded image data are extracted, the variable length decoding unit 110 determines a quantized discrete cosine transform (DCT) coefficient by using a predetermined Huffman table and the inverse scanning unit 115 generates data having the same sequence as a corresponding video 140 by performing inverse scanning. In other words, the inverse scanning unit 115 outputs corresponding values in the inverse order of scanning in various ways. In the encoding, after the quantization is performed, a scanning direction can be determined depending on the distribution of a frequency band. Typically, the scanning method can be performed in a zigzag form. Alternatively, the scanning can be performed per codec in various ways.
Syntax parsing can be integratedly performed by the variable length decoding unit 110 or by an element for processing a bitstream 105 prior to the variable length decoding unit 110. In this case, since the same standard is applied to the corresponding encoder and decoder, the syntax is parsed by a predetermined rule only, to correspond to the pertinent standard.
The inverse DC/ AC prediction unit 120 determines the direction of a reference block for prediction by using the size of the DCT coefficient at a frequency band. The inverse quantization unit 125 performs the inverse quantization of inversely scanned data. In other words, the inverse quantization unit 125 returns DC and
AC coefficients by using a quantization parameter (OP) designated in an encoding process.
The inverse discrete cosine transform unit 130 evaluates an actual video data pixel value to generate a video object plane (VOP) by performing an inverse discrete cosine transform.
The VOP reconstruction unit 135 reconstructs a video signal by using the VOP generated by the inverse discrete cosine transform unit 130 and outputs the reconstructed signal.
As illustrated in FIG. 2, an MPEG-4 encoder 200 typically includes a discrete cosine transform unit 210, a quantization unit 215, a DC/ AC prediction unit 220, a scanning unit 230 and a variable length encoding unit 235.
Each element included in the encoder 200 performs the inverse functions of the corresponding elements of the decoder 100. This shall be evident to any person of ordinary skill in the art. Briefly, the encoder 200 converts a video signal (i.e. a digital video pixel value) to a frequency value through the DCT and the quantization in order to performs the encoding. Then, the encoder 200 performs variable length encoding that differentiates the length of a corresponding bit according to the frequency of information to output it in a compressed bitstream format.
FIG. 3 shows a brief structure of a decoder in accordance with an embodiment of the present invention, and FIG. 4 shows a brief structure of a decoding processing unit in accordance with an embodiment of the present invention. FIG. 5 shows a brief structure of a decoding processing unit in accordance with another embodiment of the present invention, and FIG. 6 shows a brief structure of an extended bitstream in accordance with an embodiment of the present invention. FIG. 7 shows types of functional units for syntax parsing in accordance with an embodiment of the present invention, and FIG. 8 shows types of functional units performing decoding processing in accordance with an embodiment of the present invention. FIG. 9 shows a hierarchy structure determined by a decoding hierarchy table (DHT) in accordance with an embodiment of the present invention, and FIG. 10 shows a call structure between hierarchies and a connection structure in a hierarchy, determined by a syntax rule table (S-RT) in accordance with an embodiment of the present invention. FIG. 11 is a view for describing an interface set for a functional unit to be applied to a plurality of standards in accordance with an embodiment of the present invention, and FIG. 12 shows a connection structure of a dedicated buffer space between nodes per each hierarchy in accordance with an embodiment of the present invention. FIG. 13 shows an including relationship of a dedicated buffer space for storing CSCI data in accordance with an embodiment of the present invention, and FIG. 14 shows an including relationship of a dedicated buffer space for storing output data outputted by a functional unit in accordance with an embodiment of the present invention. FIG. 15 conceptually shows parallel processing syntax parsing and data decoding in accordance with an embodiment of the present invention. Referring to FIG. 3, data is provided to a decoder 300. The data is extracted as hierarchy information or helps the hierarchy information to be generated, in order to perform an encoding/decoding method in accordance with the hierarchy structure of the present invention. The data corresponding to the hierarchy information can form an extended bitstream along with a bitstream before being provided to the decoder 300 or can be provided to the decoder 300 independently of the bitstream. Of course, in case that a storing unit of the decoder 300 pre-stores hierarchy information corresponding to pertinent data, providing the pertinent data can be obviously omitted. However, the case that the pertinent data is included in an extended bitstream before being provided to the decoder 300 will be described below. In other words, the decoder 300 including a decoding processing unit 320 that decodes a bitstream has a structure that is different from the conventional decoder (refer to FIG. 1).
In accordance with an embodiment of the present invention, the decoder 300 includes a dividing unit 310 and the decoding processing unit 320. It shall be obvious that at least one of the elements (e.g. the dividing unit 310, the decoding processing unit 320 or at least one element included in the decoding processing unit 320) can be realized as a software program (or a combination of program codes) , which is designed to perform a function described below.
The dividing unit 310 divides the inputted extended bitstream 305 into an encoded decoder description 313 and a typical bitstream 316 (hereinafter, referred to as "conventional bitstream") and inputs each of them into the decoding processing unit. The encoded decoder description 313 for providing the hierarchy information can be inputted into a description decoder 505 and the conventional bitstream 316 can be inputted into a decoder forming unit 420. As described above, if the encoded decoder description 313 and the conventional bitstream 316, respectively, are inputted as independent data, the dividing unit 310 can be omitted. Here, the conventional bitstream 316 can have the identical format to the bitstream 105 of FIG. 1.An example of the extended bitstream 305 is shown in FIG. 6. The extended bitstream 305 and the encoded decoder description 313 of FIG. 6 is an only example for the convenience of description and understanding. It shall be obvious that the format of the hierarchy information and/or the extended bitstream 305 in accordance with the present invention are not limited to the example of FIG. 6. For example, it is sufficient that the hierarchy information indicates indicating a hierarchy structure for decoding encoded video data included in the conventional bitstream 316, the designation of a hierarchy to be called by each hierarchy and a called or activated sequence between functional units. The hierarchy information can be also formed in various ways. However, it is assumed that the hierarchy information is formed to have a plurality of segmentated information (hereinafter, referred to as "decoder description") in the below description.
The encoded decoder description 313 includes configuration information of the conventional bitstream 105 and information related to the encoding type of the conventional bitstream 316 (or connection information between the functional units) in order to parse a bitstream encoded by various encoding methods (or encoding standards) and/or the conventional bitstream 316 encoded by a function selected by a user among various functions, by using a common analyzing method. The encoded decoder description 313 can be included in the extended bitstream 305 before being provided to decoder 300 (refer to FIG. 3). Of course, the encoded decoder description 313 can be provided to the decoder 300 in the form of independent bitstreams or data. The encoded decoder description 313 can be written by any description method capable of being recognized and/or analyzed by a description decoder 405. For example, the encoded decoder description 313 can be written by using the description method such as a textual description or a binary description. Of course, if the pertinent hierarchy information is realized to be recognized by a decoder forming unit 420 without the processing of the description decoder 405, the description decoder 405 can be omitted.
The encoded decoder description 313 can be decoded by the description decoder 405 as a decoder description 314. The decoder description 314 can be divided into partial decoder descriptions such as a functional unit list (FL) 610, a functional unit rale table (F-RT) 620, a functional unit CSCIT (FU-CSCIT) 630, a control signal and context information table (CSCIT) 640, a decoding hierarchy table (DHT) 650, a syntax element table (SET) 660, a syntax-rule table (S-RT) 670 and a default value table (DVT) 680. The aforementioned partial decoder descriptions can be used as hierarchy information for allowing a plurality of functional units of the decoder 300 in accordance with the present invention to be activated corresponding to the hierarchy structure of encoded video data and to perform each pre-designated process. The partial decoder descriptions can be also used as operation control information that determines which input data each functional unit uses to perform a designated process and which name information each functional unit uses when storing result data generated from the performance of the process. Of course, the operation control information can be obviously included in the hierarchy information. Moreover, as described below, the hierarchy information can be embodied by at least one of the F-RT 620, the DHT 650 and the S-RT 670.
If it is assumed that the encoded video data has a hierarchy dependant structure consisting of "an uppermost hierarchy, a next hierarchy... a next hierarchy and a lower most hierarchy," the uppermost hierarchy is firstly activated (i.e. an object of the uppermost hierarchy is generated and executed), and successively, the next hierarchies are activated. Finally, the lowermost hierarchy is activated. Even though each hierarchy is successively activated, the decoding of the encoded video data may not be completed by the successive operations of the functional units included in each hierarchy. In a case, alternate operations of the functional units of the plurality of hierarchies can complete the decoding of the encoded video data. If one hierarchy is activated, all the decoding functional units included in an object of the pertinent hierarchy and at least one calling unit pertaining to a next hierarchy included in the pertinent object are activated. If control signal/context information (CSCI) necessary to perform a predetermined process and data for decoding are stored at the CSCI storing unit 430, the decoding functional units pertaining to the activated hierarchy start their operations.
Moreover, the calling unit of the activated next hierarchy generates and executes an object of the pertinent hierarchy if CSCI for at least one decoding functional unit of the same hierarchy to perform the process and data for decoding are stored at the CSCI storing unit 430. This activates all the decoding functional units included in the pertinent object and at least one calling unit pertaining to a next hierarchy included in the pertinent object. As described above, performing an object of one hierarchy can call a next hierarchy.
Each part decoder description can form a decoder description in variously changeable orders.
Here, it is possible to use the FL 610, the F-RT 620, the FU-CSCIT 630, the CSCIT 640 and the DHT 650 in order to determine the connection of the each functional unit (hereinafter, the pertinent partial decoder descriptions can be referred to as "first decoder descriptions" as necessary). The DHT 650 can be information related to hierarchy structure of each codec and lower hierarchies per each hierarchy (refer to FIG. 9). The hierarchy structure of each codec can be represented as a structure between upper and lower hierarchies, which is segmentalized into a sequence layer, a GOP layer, a VOP layer, a slice layer, a macroblock (MB) layer and a block layer, for example. Moreover, each codec can include at least one layer and each hierarchy can include at least one object.
The decoding process of encoded video data including a plurality of hierarchies will be briefly described by giving examples. Of course, the method of decoding a bitstream to correspond a hierarchy structure is obviously not limited to the below description. When the decoding operation is performed, an object of an uppermost hierarchy (i.e. a first layer) is generated and executed before all decoding functional units included in the pertinent object and at least one calling unit of a lower hierarchy (a second layer) included in the pertinent object are activated. Here, the calling unit can be an element or a control operation of the connection control unit 425. For example, if the hierarchy structure is assumed to successively include a first layer, a second layer and a third layer, performing an object of the first layer (e.g. the sequence layer) activates the calling units of at least one hierarchy (e.g. a GOP-I layer, a GOP-2 layer and a GOP-3) pertaining to the second layer, and performing an object of any one of the second layer activates the calling units of at least one hierarchy (e.g. a picture-1 layer and a picture-2 layer in the case of performing an object of the GOP-I layer and a picture-3 layer and a picture-4 layer in the case of performing an object of the GOP-2 layer) pertaining to the third layer. Of course, it is not always necessary that the activating operation by the call between hierarchies of the present invention be required to allow the upper hierarchy to call the lower hierarchy. It shall be obvious that the upper hierarchy can be called by the lower hierarchy on the basis of the decoder description (or the partial decoder description).
The decoding functional units of the pertinent activated hierarchy (e.g. the first layer) start their operations if CSCI necessary to perform a predetermined process and data for decoding are stored at the CSCI storing unit 430. If CSCI necessary for at least one of the decoding functional unit of the corresponding hierarchy to perform the process and data for decoding are stored at the CSCI storing unit 430, the calling unit of a lower hierarchy (i.e. the second layer) of the pertinent activated hierarchy (i.e. the first layer) generates and executes an object of the pertinent hierarchy, and all the decoding functional units included in the pertinent object and at least one calling unit of a lower hierarchy (i.e. a third layer) of the pertinent object are activated.
As described above, performing an object of one hierarchy can activate a lower hierarchy and the decoding functional units of the called hierarchy perform a predetermined process. The encoded video data is reconstructed and outputted as video data by allowing the functional units, designated by the decoder description, among the functional units of each hierarchy to perform their operations at least one time.
The FU-CSCIT 630 can be information related to the partial decoder description for mapping between each functional unit of a toolbox 415 and element information stored at the CSCI storing unit 430. In this case, the element information can function as a control variable for each functional unit of the toolbox 415.
Moreover, it is possible to use the CSCIT 640, the DHT 650,the SET 660, the
S-RT 670 and the DVT 680 in order to perform the syntax parsing of the conventional bitstream 316 (hereinafter, the pertinent partial decoder descriptions can be referred to as "second decoder descriptions" as necessary). The shape and function of each partial decoder description will be described later in detail.
The description decoder 405 decodes the encoded decoder description 313 inputted from the dividing unit 310 to generate the decoder description 314. After that, the description decoder 405 divides the generated decoder description 314 into a plurality of partial decoder descriptions having the form capable of being recognized by the decoder forming unit 420 before storing the divided partial decoder descriptions at the description storing unit 410.
Each partial decoder description stored at the description storing unit 410 is unnecessary to be a table having a typical format. It is sufficient that the partial decoder description is information capable of being recognized by the decoder forming unit 420. In other words, the description decoder 405 converts the data, such as binary data, included in the extended bitstream 305 to information capable of being analyzed by any functional unit and/or the connection control unit 425 before storing the converted information at the description storing unit 410.
The partial decoder descriptions such as the FL 610, the F-RT 620, the FU-CSCIT 630, the CSCIT 640, the DHT 650, the SET 660, the S-RT 670 and the DVT 680 can be stored at the description decoder 405 by allowing the decoder description to be analyzed by the description decoder 405. The description decoder 405 can allow a table identifier to be inserted according to each distinguishable partial decoder descriptions in order to distinguish each of the partial decoder descriptions. Of course, it is unnecessary that the decoder description includes information corresponding to all partial decoder descriptions. The decoder description can include a codec number and a profile and level number. Alternatively, decoder description can include codec numbers and profile and level numbers for only some of the partial decoder descriptions. In the case of including the codec number and the profile and level number, the description decoder 405 can select a corresponding partial decoder description, to be used for the decoding, from the partial decoder descriptions pre-stored at the description storing unit 410, instead of generating a new partial decoded description for all partial decoder descriptions or some of the partial decoder descriptions. Of course, in the case of including the codec number, the profile and level number and correction information, the description decoder 405 can extract a partial decoder description corresponding to a pertinent codec from the partial decoder descriptions pre-stored at the description storing unit 410 and generate a new partial decoder description by applying the correction information. Moreover, in the case of including a decoder description for generating the partial decoder description instead of the codec number and the profile and level number, the description decoder 405 can generate a new partial decoder description to be used in the decoding for all partial decoder descriptions or some of the partial decoder descriptions.
The decoder description can further include revision information in addition to the decoder description (DD-T) related to each partial decoder descriptions. The description storing unit 410 stores each partial decoder description that is divided by the description decoder 405. Of course, if the extended bitstream 305 includes the codec number and the profile and level number, the description storing unit 410 can pre-store at least one partial decoder descriptions to allow at least one partial decoder descriptions to be used by the decoding unit 340. The structure of the encoded decoder description 313 for extracting partial decoder descriptions will be described in detail later with reference to FIG. 16 through FIG. 23.
FIG. 4 shows a first embodiment of the decoding processing unit 320.As shown in FIG. 4, the decoding processing unit 320 can include a description decoder 405, a description storing unit 410, a toolbox 415 and a decoder forming unit 420. The decoder forming unit 420 includes a connection control unit 425 and a CSCI storing unit 430. The decoder forming unit 420 can further include a working memory (not shown) for loading at least one functional unit by the call of the connection control unit 425 and performing a predetermined process of the loaded functional units.
FIG. 5 shows a second embodiment of the decoding processing unit 320. Comparing with the decoding processing unit 320, the decoding processing unit 320 of FIG. 5 further includes a decoding solution 510. The decoding solution 510 can be the working memory for loading at least one functional unit by the call of the connection control unit 425 and performing a predetermined process of loaded functional units.
As shown in FIG. 4 and FIG. 5, the decoder 300 of the present invention can be re-combined or generated in various forms so as to enable an inputted bitstream to be decoded regardless of encoded formats, by selectively loading and decoding the functional units of the toolbox 415.
As described above, forming the toolbox 415 separately from other elements in the decoder 300 makes it possible to more easily apply different types of toolboxes without any modification of design structure of other elements according to the decoder. For example, in spite of a decoder manufactured so as to use a toolbox for performing the processing according to an MPEG standard, it becomes easier to substitute a non-MPEG standard toolbox having the same interface or optionally/personally manufactured toolbox for the pertinent toolbox. Hereinafter, the functions and operations of each element of the decoding processing unit 320 will be described with reference to the related drawings.
The description decoder 405, as described above, decodes an inputted decoder description 313 as the decoder description 314 and then allows a plurality of partial decoder descriptions to be stored at the description storing unit 410.
The toolbox 415 includes a plurality of functional units, respectively, realized to perform a predetermined process. The pertinent functional units can include functional units for performing the syntax parsing (refer to FIG. 7 and sets of the pertinent functional units are referred to as syntax (SYN) parser group 700) and functional units for decoding encoded video data (refer to FIG. 8 and sets of the pertinent functional units are referred to as decoding function groups 800). For example, the SYN parser group 700 can be realized as one functional unit. The SYN parser group 700 and/or each functional unit can be realized as a combination of each program code or an algorithm. In other words, the toolbox 510 refers to an area in which the functional units realized to perform each function are included. Each functional unit (hereinafter, referred to as a decoding functional unit) included in the decoding functional group 800 is activated by the control of the connection control unit 425 to output the encoded video data included in the conventional bitstream 105 as video data. The connection control unit 425 can control corresponding functional units in units of each hierarchy structure to be successively activated (e.g. the functional units are activated in the order of a first hierarchy, a second hierarchy, a third hierarchy ... and when the second hierarchy is activated, the first hierarchy can maintain its activated status or if it is not necessary any more to process data, the first hierarchy becomes inactivated). However, if a functional unit of the same hierarchy structure uses result data resulted from the processing of another functional unit as input data, in spite of being simultaneously activated, the processing can be delayed until the result data is generated and stored at the CSCI storing unit 430.
Each functional unit included in the decoding functional group 800 can pertain to at least one hierarchy divided according to the property of codec. A functional unit (hereinafter, referred to as a parsing processing unit) of the called SYN parser group 700 performs the syntax parsing of a bitstream. If CSCI necessary to perform a designated process and data for decoding are stored, the decoding functional units perform the processing. An upper hierarchy calls a decoding functional unit of a lower hierarchy according to the flow of CSCI and data (this is performed by the control of the connection control unit 425). The video data corresponding to a bitstream is outputted by allowing every decoding functional unit of the decoder description to perform the process at least one time as necessary. Accordingly, using the decoder description (or the partial decoder description) makes it possible to suggest the scheduling management of each codec and the organic processing structure of each functional unit. In other words, if the conventional bitstream 316 is inputted into the decoding processing unit 320, the connection control unit 425 activates the SYN parser group 700 to allow the syntax parsing with using the S-RT 670 to be started and controls the functional units of the uppermost hierarchy to be loaded or activated. Even through only some of a first decoder description and a second decoder description are used at the initial stage, the first decoder description and the second decoder description are organically used in the form of each mutual reference.
Each of the activated functional units are on standby until CSCI and/or data necessary for the processing are stored at the CSCI storing unit 430. If the CSCI and/or data necessary for the processing are stored at the CSCI storing unit 430, the respective activated functional units start the process per functional unit. Accordingly, the decoding processing unit 320 in accordance with the present invention can simultaneously perform the syntax parsing operation and the decoding of the data to output corresponding data (refer to FIG. 15). Moreover, since whether the functional units included in the decoding functional group is activated in units of hierarchy structure and whether each functional unit individually is on standby or starts its operation is determined, each of the functional units has free organic operations (e.g. the operation is performed by forming series/parallel coupling structure).
However, the SYN parser group 700 included in the toolbox 510 can be designed to perform the analysis of the conventional bitstream 105 without the connection control of the connection control unit 425 immediately if the conventional bitstream 105 is inputted. This is because the decoding functional units for performing a following processing can use element information, which is analyzed and stored in the CSCI storing unit 430 by the parsing functional units, and/or the data(hereinafter, referred to as "encoded data"), which is stored at the CSCI storing unit 430 by the parsing functional units.
The parsing functional units uses the DHT 650, the SET 660, the S-RT 670, the CSCIT 640 and the DVT 680 to analyze the inputted conventional bitstream 316 and stores element information, which is the result of the syntax parsing, at the CSCI storing unit 430. For example, the CSCI storing unit 430 can be a buffer memory. The element information can be control signal/context information (CSCI), for example. The element information parsed and stored at the CSCI storing unit 430 by the SYN parser group 700 can be the result value parsed by the pertinent operation and simultaneously can be an input value determining a following syntax of the conventional bitstream 316. Moreover, the SYN parser group 700 can perform the entropy decoding of video data and a header of the syntax-parsed conventional bitstream 316 to store encoded data of a predetermined size (e.g. 1 pixel, 4 x 4 or 8 x 8 unit) at the CSCI storing unit 430 such that the functional units of the decoding functional group 800 can use the encoded data. For example, the SYN parser group 700 can store data, such as DC/ AC of the syntax, to be used for the decoding operation, at the CSCI storing unit 430. The CSCI storing unit 430 can be a buffer memory having a dedicated buffer space capable of being pre-designated per each functional unit (refer to FIG. 12).
Each dedicated buffer can be also set to have the inclusion relationship per hierarchy as shown in FIG. 13 and FIG. 14. Accordingly, the activated functional unit can start the processing immediately if input data is written at the CSCI storing unit 430. In the case of using the processed result data as input data of another functional unit, the activated functional unit can write the result data at the CSCI storing unit 430.
The SYN parser group 700 can be formed by using one software program (including a combination of program codes). This is because even though the SYN parser group 700 is formed to perform a plurality of functions corresponding to a plurality of standards (e.g. MPEG- 1/2/4/A VC), respectively, using the DHT 650, the SET 660, the S-RT 670, the CSCIT 640 and the DVT 680 makes it possible to perform corresponding operations. Of course, the SYN parser group 700, as shown in FIG.7, can be obviously formed to be segmentalized into a plurality of functional units, each of which can be realized by using a combination of blocked program codes.
Hereinafter, the function of the SYN parser group 700 will be described by describing each functional unit shown in FIG. 7 in detail.
The SYN parser group 700, as shown in FIG. 7, can include a network abstraction layer parsing (NALP) functional unit 710, a syntax parsing (SYNP) functional unit 720, a context determination (CTX) functional unit 730, a variable length decoding (VLD) functional unit 740, a ran length decoding (RLD) functional unit 750 and a macroblock generator (MBG) functional unit 760.
It shall be obvious that the SYN parser group 700 can include any functional unit for performing the syntax parsing regardless of an applied standard, a functional unit necessary for performing the syntax parsing can be newly added, an existing functional unit can be modified and an unnecessary functional unit can be deleted. It is obviously possible to combine the functional units that are commonly applicable by a plurality of standards among each functional unit included in the SYN parser group 700 as one functional unit. Described below briefly is each function of the functional units, which is evident to any person of ordinary skill in the art.
The NALP functional unit 710 parses a network abstraction layer (NAL) of MPEG-4 AVC, and the SYNP functional unit 720 parses the syntax of a bitstream. The SYNP functional unit 720 can be included at the VLD functional unit 740. The CTX functional unit 730 determines a VLC table of MPEG-4 AVC, and the VLD functional unit 740 performs the entropy decoding.
The RLD functional unit 750 performs the entropy decoding of AC values, and the MBG functional unit 760 combines DC values and AC values to generate one macroblock datum. The VLD functional unit 740 can perform the functions of all or some of the functional units, included at the aforementioned SYN parser group 700, according to each system realizing type.
As described above, the SYN parser group 700 can be realized as one software program or a plurality of software programs (e.g. the VLD functional unit 740 can be independently realized as an independent software program). The operation which the SYN parser group 700 extracts or generates element information by using the first description information (i.e. at least one of the DHT 650, the SET 660, the S-RT 670, the DVT 680 and the CSCIT 640) and stores the extracted or generated element information at the CSCI storing unit 430 will be described later in detail when the connection control unit 425 is described below.
The decoding functional group 800 processes encoded data, stored at the CSCI storing unit 430, in a predetermined processing unit and outputs the processed data as video data of a predetermined size. The processing unit of the encoded data can be pre-determined so as to be differently applied per each functional unit or can be generalized as the same processing unit.
The decoding functional group 800 can include functional units for performing the foregoing functions according to each standard. Each function can be realized as an independent processing block (e.g. a software program, a combination of command codes and a function) to form the decoding functional group 800. Alternatively, the decoding functional group 800 can be realized as one integrated processing block. Although the decoding functional group 800 are realized as one integrated processing block, the corresponding processing can be obviously performed by the connection control of the connection control unit 425.
The decoding functional group 800, as shown in FIG. 8, can include a de-blocking filtering (DF) functional unit 810, a VOP reconstructing (VR) functional unit 815, a frame field reordering (FFR) functional unit 820, an intra prediction and picture reconstruction (IPR) functional unit 830, an inverse transform (IT) functional unit 835, an inverse quantization (IQ) functional unit 845, an inverse AC prediction (IAP) functional unit 855, an inverse scanning (IS) functional unit 860 and a DC reconstruction (DCR) functional unit 865.
An IT 4x4 functional unit 840, an IQ 4x4 functional unit 850 and a DCR 4x4 functional unit 870 process blocks having the size of 4x4. This is because although MPEG- 1/2/4 process data in 8x8 block size in the transform, quantization and prediction, MPEG-4 AVC may process data in 4x4 block size. It shall be obvious that the decoding functional group 800 can include any functional unit for performing a data decoding function regardless of an applied standard, a functional unit necessary for the developed technology can be added, an existing functional unit can be modified and an unnecessary functional unit can be deleted. For example, in the case of additionally needing the IS functional unit processing data in 4x4 block size to perform the decoding, the pertinent functional units can be included in the decoding functional group 800. A special prediction (SPR) functional unit (not shown) can be also added to perform the intra prediction for the MPEG-4 AVC.
It shall be obviously possible to combine the functional units that are commonly applicable by a plurality of standards among each functional unit of the decoding functional group 800. Described below briefly is each function of the functional units, which is evident to any person of ordinary skill in the art.
The DF functional unit 810 is a de-blocking filter of MPEG-4 AVC, and the VR functional unit 815 stores a decoded pixel value.
The FFR functional unit 820 is for an interlaced mode, and the IPR functional unit 830 stores a decoded pixel value after the intra prediction of MPEG-4 A VC is performed. As described above, the intra prediction of MPEG-4 AVC can be performed by the SPR functional unit. The IT functional unit 835 performs the inverse transform of DC values and
AC values, and the IQ functional unit 845 performs the inverse quantization of the AC values.
The IAP functional unit 855 performs the inverse AC prediction of the AC values, and the IS functional unit 860 performs the inverse scan of the AC values. The DCR functional unit 865 performs the inverse AC prediction and the inverse quantization of the DC values.
The aforementioned SYN parser group 700 and decoding functional group 800 individually starts their operations. Each functional unit of the decoding functional group 800 is activated by the activation control of the connection control unit 425. Then, each functional unit of the decoding functional group 800 individually starting its operation if CSCI and/or data necessary for the processing is written at the CSCI storing unit 430.
The CSCI storing unit 430 stores element information (e.g. CSCI), which is the result value by the syntax parsing that the SYN parsing functional group 700 performs by using the second decoder description (i.e. the CSCIT 640, the DHT 650, the SET 660, the S-RT 670 and the DVT 680). The element information is stored corresponding to the CSCIT 640. For example, the CSCI storing unit 430 can be a buffer memory.
The element information stored at the CSCI storing unit 430 can be used as input data for performing a process of the SET 660 by the SYN parsing functional group 700 or as a control variable for determining a following connection index in the S-RT 670.
Moreover, the element information stored at the CSCI storing unit 430 can be used to allow each functional unit, which is activated in units of hierarchy structure by the connection control unit 425 with reference to the F-RT 620, to map an input CSCI, designated by the FU-CSCIT 630, to the element information, stored at the CSCI storing unit 430. As described above, the SYN parser group 700 can store the element information, capable of being used by the functional units of the decoding functional group 800, at the CSCI storing unit 430. For example, the CSCI storing unit 430 can store the CSCI, generated by the
SYN parser group 700, and the data to be decoded by a functional unit included in the decoding processing group 800. Of course, the CSCI storing unit 430 can be realized to include a CSCI storing part for storing the CSCI and a data storing part for storing the data to be decoded, according to the type of information to be stored. The connection control unit 425 controls each functional unit included in the
SYN parser group 700 and/or the decoding functional group 800 to be loaded and activated in order to decode a bitstream encoded according to various standards. For example, the connection control unit 425 controls each functional unit included in the decoding functional group 800 to be loaded or activated in units of hierarchy structure with reference to the F-RT 620. This is because input data for the functional units pertaining to the lower hierarchies may be the result data processed by the functional units pertaining to the upper hierarchies.
As described above, the decoder forming unit 420 can include a working memory for loading at least one functional unit by the call of the connection control unit 425 and performing a predetermined process. The connection control unit 425 controls each functional unit to be activated and to process and output the encoded data as video data by using the partial decoder descriptions such as the FL 610, the F-RT 620, the FU-CSCIT 630, the CSCIT 640 and the DHT 650. Mutually organic operations of a plurality of functional unit of FIG. 8 make it possible to convert the encoded data to video data in order to output the video data. It may be possible to determine which functional units must successively be operated, in various ways according to each encoding standard. This is evident to any person of ordinary skill in the art. Accordingly, the organic relationship between the partial decoder descriptions of the first decoder description included in the extended bitstream, used as basic information for organically controlling the operations of the plurality of functional units will be hereinafter described.
Firstly, the DHT 650 refers to the partial decoder description, which writes information related to the hierarchy structure of codec and the lower hierarchies of each hierarchy as shown in FIG. 9 and the following table 1
[Table 1 ]
DHTYDecoding Hierarchy Table)
Figure imgf000051_0001
Figure imgf000052_0001
The DHT 650, as shown in the table 1, can include an index, which is the successively given hierarchy number, a name, which refers to the name of each hierarchy, and a children hierarchy, which show a lower hierarchy of a pertinent hierarchy. The number of hierarchies or children hierarchies can be represented differently according to a codec. For example, as shown in FIG. 9, in the case of further including a VOP-3 and an MB-3, the corresponding hierarchy number can be obviously added.
The hierarchy structure indicated by the DHT 650 of the present invention shows that based on a codec, another codec can be freely integrated at any position of a hierarchy in a free form. In other words, using an integrated codec including a plurality of different codec makes it possible to form a new codec, to thereby compress and uncompress video data.
The main function of the DHT 650 makes it easy to perform the various realizations (e.g. sequential/parallel, single/multiple threads and sw/hw hybrid decoding) of a decoding solution to be formed by use of the decoder description by applying the hierarchy structure to a given codec.
The hierarchy written through the DHT 650 of the table 1 is commonly applied in the syntax parsing and decoding operation. Of course, there may obviously be a hierarchy structure for being independently used in the syntax parsing or decoding operation.
Then, the FL 610 refers to the partial decoder description, which writes information such as a list of each functional unit of the decoding functional group 800 and the number of input and output data of the pertinent functional units as shown in the table 2.
[Table 2]
FL(FU List)
Figure imgf000054_0001
The FL 610 can further include a name of a dedicated buffer area (or an address in which pertinent data is written or an address of a buffer memory in which pertinent data is written), in which input data of each functional unit is written, and a name of a dedicated buffer area (or an address in which pertinent data is written or an address of a buffer memory in which pertinent data is written), in which output data outputted by the pertinent functional unit is to be written. Accordingly, each functional unit can use the FL 610 to read and process input data and write the corresponding output data. However, the FL 610 does not write input data and output data of the SYN parser group 700 which generates element information. This is because the SYN parsing functional group 700 can use information such as the SET 660 to generate element information and write the generated information at a designated position.
As shown in the table 2, the FL 610 can include a FU ID, which refers to an identification number of the functional unit of the toolbox 510, a FU name, which refers to a name of each functional unit, an input CSCI, which refers to the number of input data, and an output CSCI, which refers to the number of result data (i.e. output data). The order of arranging the functional units of the functional units of the FL 610 corresponds to the order of arranging the functional units of the FU-CSCIT 630 or the index number. In the FU name, which refers to a name of each functional unit, the names of each functional unit described with reference to FIG. FIG. 8 can be written. A particular functional unit of a hierarchy activated by the connection control unit 425 uses the FU-CSCIT 630 and the CSCIT 640 in order to read desired data from the CSCI storing unit 430 and perform a predetermined process before generating output data. The generated output data can be written in the CSCI storing unit 430, and the data stored in the CSCI storing unit 430 can be used as input data of the functional unit which performs a following processing. Here, the functional unit refers to a series of processing operations (e.g. actions, algorithms and functions), which performs a predetermined process of input data to generate output data, included in the decoding functional group 800.
In case that it is sufficient for the decoding processing unit 320 to use one standard to decode encoded video data included in the conventional bitstream 316, the FL 610 can include only information related to the functional units for performing the corresponding processing in the pertinent standard.
However, in case that pertinent video data is encoded by a plurality of standards (e.g. in the case of differently applying an encoding standard in units of a plurality of frames), information related to the functional units conforming to a plurality of standards will be necessary to decode the pertinent encoded video data. Accordingly, the FL 610 is required to include the information related to the functional units conforming to a plurality of standards necessary to decode the encoded video data among all functional units conforming to a plurality of corresponding standards. Of course, even though a different encoding standard is applied to video data in units of a plurality of frames, if the plurality of conventional bitstreams 316 and extended bitstreams 305 are generated per applied encoded standard, each of the FL 610 can include information related to the functional units conforming to each corresponding standard. The FL 610 can be written in a description method such as a textual description or a binary description (i.e. a bit-converted binary code form). The minimum necessary data of the partial decoder description can be written in a similar script language.
Next, the F-RT 620 provides connection information of the functional unit to be used to decode the inputted conventional bitstream 316. In other words, the F-RT 620 is configured to allow an upper hierarchy to call a lower hierarchy by using the hierarchy structure of the DHT 650 as shown in the following Table 3.
[Table 3] F-RT(FU - Rule Table)
Figure imgf000057_0001
As shown in the table 3, the F-RT 620 includes a decoding hierarchy, showing each hierarchy structure, a children, showing a functional unit to be activated or a lower hierarchy to be called, a loop, showing whether a loop is operated or not, a loop condition, showing the loop condition when the loop is necessary to be operated, and an input, showing decoding hierarchy and children as input information (or activation order) of each functional or lower hierarchy. As shown in the table 3, a FHO hierarchy is firstly activated, and a FHl hierarchy is successively activated because of using result data of a FUl as input data. Alternatively, the FHl hierarchy can be also activated simultaneously with the FHO hierarchy, and then, the processing operation of the FHl hierarchy can be delayed until result data of the FUl is stored at the CSCI storing unit 430.
When the hierarchies are called, each hierarchy is generated as an independent object with the concept of instance/object. In other words, a plurality of FHl 's such as FHl [0], FHl [1], FHl [2], ..., and FHl [n] can be generated. This structure can be identically applied to other hierarchies (e.g. FHO, FH2 and FH3). Also, a dedicated buffer space of each object can be allotted. As shown in FIG. 12 and FIG. 13, each dedicated buffer space stores CSCI or data for processing the functional units of a certain hierarchy structure.
The F-RT 620 can be written in a description method such as a textual description or a binary description (i.e. a bit-converted binary code form). The minimum necessary data of the partial decoder description can be written in a similar script language.
Next, the FU-CSCIT 630 is a partial decoder description for connecting element information stored at the CSCI storing unit 430 to the element information (i.e. input CSCI) necessary for each functional unit. [Table 4]
FU-CSCIT(FU CSCI Table)
Figure imgf000059_0001
As shown in the table 4, the FU-CSCIT 630 includes an index number, which is one-to-one mapped to the FU ID, CSCI information and an index (i.e. CSCI table element) of the CSCIT 640 for mapping. The functional units of the FL 610 and the index numbers of the FU-CSCIT 630 are one-to-one mapped to each other because their arrangement orders correspond to each other. In other words, the FU-A of a first functional unit of the table 2 is mapped to the index No. 1 of a first index 1 of the FU-CSCIT 630.
Moreover, the FU-CSCIT 630 further includes information related to how many interface sets each index numbers have. The number of interface sets refers to the frequency showing how many times the mapping is performed. For example, since D0092 of the FL 610 has one interface set designated by the FU-CSCIT 630, only CH2.C6 and CH2.C1 are used. However, D0098 has 2 interface sets, CH3.C1 and CH.3.C6 are used as element information in a case, and CH4.C2 and CH4.C5 are used in another case. Each of the functional units reads designated element information from the CSCI storing unit 430 to perform a predetermined process before storing generated output data (i.e. result data) at the CSCI storing unit 430.
The reason that the number of interface sets per each index number is written at the FU-CSCIT 630 is that one functional unit may perform a different processing operation according to different data flow. For example, as shown in FIG. 11, if the FU-A can be used at the MPEG-2 and MPEG-4 simultaneously, different element information can be used when data encoded in an MPEG-2 standard is processed and data encoded in an MPEG-4 standard is processed. Accordingly, a plurality of interface sets are required in order to distinguishably use the element information when processing the data encoded according to each standard.
The FU-CSCIT 630 can be written in a description method such as a textual description or a binary description (i.e. a bit-converted binary code form). The minimum necessary data of the partial decoder description can be written in a similar script language.
Finally, the CSCIT 640, as shown in the following table 5, writes details related to the element information (e.g. CSCI) as result information of a process that the SYN parser group 700 performs by using the SET 660 and S-RT 460. In other words, the CSCIT 640 is processed from the conventional bitstream 316 and stored at the CSCI storing unit 430. The CSCIT 640 also has information related to all meaningful data (i.e. element information) to be used by the decoding functional unit 800.
[Table 5]
CSCIT
Figure imgf000061_0001
Figure imgf000062_0001
As shown in the table 5, the CSCIT 640 includes a decoding hierarchy, which distinguishes a hierarchy of each element information, an index, which refers to an identifier as an identification number of pertinent element information, an element name, which refers to a name of pertinent element information, and a type (e.g. determination whether the pertinent element information is an integer or array type), which refers to an attribute for designating a data-structural property of pertinent element information. The CSCI formed per hierarchy can be used in the forms of a plurality of arrays as necessary when the decoder is formed.
The CSCIT 640 can be written in a description method such as a textual description or a binary description (i.e. a bit-converted binary code form). The minimum necessary data of the partial decoder description can be written in a similar script language. The CSCIT 640, the DHT 650, the SET 660, the S-RT 670 and the DVT 680, which are used to allow the SYN parser group 700 to extract or generate element information from the conventional bitstream 316 and to store the extract or generated element information at the CSCI storing unit 430, will be described. However, since the CSCIT 640 and the DHT 650 have been described above, the corresponding description will be omitted. Mutually organic operations of the plurality of functional units of FIG. 7 can make it possible to generate the element information and store it at the CSCI storing unit 430. The element information can have different formats according to each encoding standard. This is evident to any person of ordinary skill in the art. Accordingly, the organic relationship between the partial decoder descriptions of the second decoder description, which is included in an extended bitstream used to allow a plurality of functional unit or the SYN parser group 700 integrated as one functional unit to generate element information and store it at the CSCI storing unit 430, will be described below.
As shown in the following table 6, the SET 660 refers to a partial decoder description formed to include information related to the syntaxes of an inputted conventional bitstream 316. [Table 6]
SETYSvntax Element Table)
Figure imgf000064_0001
As shown in the above table 6, the SET 660 includes an index of each syntax, an element name, input data, and a SET-process (process by SET-PROC). Here, the index refers to an identifier S identifying each syntax used for the S-RT 670.
The element name, which is a name of the syntax, can be named with reference to the meaning or function of the syntax. The input data refers to a nominal length of a bit inputted at one time in the conventional bitstream 316. The SET-process writes the process including what processing operation is undergone to generate the element information as output data after each bitstream syntax is inputted. For example, a SET-process, corresponding to an index SO, "READ 32 B; (IBS==HEX:1BO)»;" indicates that if a 32 bit is read and "(IBS==HEX:1BO)" is satisfied, output (») pertinent information. The output data is stored at the CSCI storing unit 430 as element information (i.e. CSCI information (C)). Here, the CSCI information (e.g. CH0.C1) is determined in the S-RT 670 with reference to a Syntax #ID of the S-RT 670.
The SET 660 can be written in a description method such as a textual description or a binary description (i.e. a bit-converted binary code form). The minimum necessary data of the partial decoder description can be written in a similar script language.
Then, the S-RT 670 refers to a hierarchy and connection information between the syntaxes in the conventional bitstream 316 as shown in the following table 7. In other words, the S-RT 670 has information indicating to allow an upper hierarchy to call a syntax of a lower hierarchy and to move to a next syntax. The SYN parser group 700 uses the S-RT 670 to read the conventional bitstream 316 or to determine the sequence of storing and/or renewing the element information in the CSCI storing unit 430. As shown in FIG. 10, the SYN parser group 700 configured to include a plurality of threads can allow an upper thread to call a lower thread by referring to the S-RT 670. This can make it possible to perform the syntax parsing per hierarchy. [Table 7]
S-RIYSvntax Rule Table)
Figure imgf000066_0001
As shown in the table 7, the S-RT 670 includes a decoding hierarchy, which distinguishes a hierarchy of each syntax, an index (R), an ID of a syntax (syntax #ID), input data (CSCI) and branch information. The index (R) indexes each connection information (Rule). Since the index (S) of the syntax designates the syntax to be processed in a particular connection index in each hierarchy, the SYN parser group 700 uses the SET 660 to perform the designated process of the pertinent syntax.
The input data indicates a list of the element information to be used for the conditional determination to control the connection of a pertinent connection index. As described above, the result of the process performed by the SET 660 is stored as a name of input data corresponding to the syntax #ID.
The branch information refers to a condition determining algorithm to determine which connection index will be processed next. It is possible to directly determine which contents is read and in which order the determined contents is read by the branch information. If the number of branches is 1 (e.g. the syntax # ID is 1), there may be no input data.
The S-RT 670 can be written in a description method such as a textual description or a binary description (i.e. a bit-converted binary code form). The minimum necessary data of the partial decoder description can be written in a similar script language.
Finally, as shown in the following table 8, the DVT 680 refers to a partial decoder description in which Huffman table information to be used by each encoder/decoder is written. In each encoding, MPEG- 1/2/4/ A VC performs entropy coding. A Huffman coding method is mainly used. In this case, the Huffman table is used. The Huffman table information to be used by the pertinent decoder is required in each decoding in order to realize an integrated codec. Accordingly, the decoding description in accordance with the present invention includes the Huffman table information corresponding to each syntax when the syntax is parsed. Of course, in case that the Huffman table information corresponding to each standard is already written at the description storing unit 410, the transmission of the DVT 680 will be omitted or it is possible to include a codec number (Codec #) and a profile and level number (Profile and level number) only.
[Table 8]
DVTYDefault Value Table)
Figure imgf000068_0001
Figure imgf000069_0001
Figure imgf000070_0001
As shown in FIG. 8, the DVT 680 includes a name of each Huffman table, an actual value outputted after being compressed by a Huffman coding and a code value used when the compressed actual value is stored at the conventional bitstream 316. For example, if the actual value, 3, is obtained by compressing an MCBPC value, the code value, 011, is written at the conventional bitstream 316 by a Huffman table mapping work (e.g. a process part of the SET 660). For another example, since VLD[I] is written at a process part of an index of the SET 660, a function VLD can be called. The coded value can be obtained by reading the conventional bitstream 316 as much as a length (i.e. a fixed length or a variable length) pre-determined by the function. Then, the corresponding actual value can be obtained by the Huffman table mapping work. At this time, a Huffman table [1], which is the first table CBPY, is used.
The DVT 680 can be written in a description method such as a textual description or a binary description (i.e. a bit-converted binary code form). The minimum necessary data of the partial decoder description can be written in a similar script language.
For example, the DVT 680 can be written in the textual description as follows. DVT {((0,1), (1,001), (2,010), (3,011), (4,0001), (5,000001), (6,000010), (7,000011), (8,000000001), (9,NULL)) ((0,0011), (1,00101), (2,00100), (3,1001),
(4,00011),(5,0111), (6,000010), (7,1011), (8,00010), (9,000011), (10,0101), (11,1010), (12,0100), (13,1000), (14,0110), (15,11), (16,000000), (17,000001), (18,NULL)) ((0,011), (1,11), (2,10), (3,010), (4,001), (5,0001), (6,00001), (7,000001), (8,0000001), (9,00000001), (10,000000001), (11,0000000001), (12,00000000001), (13,NULL)) ((0,11), (1,10), (2,01), (3,001), (4,0001), (5,00001), (6,000001), (7,0000001), (8,00000001), (9,000000001), (10,0000000001), (11,00000000001), (12,000000000001), (13,NULL))...
For another example, the DVT 680 canbe written inthebinary description as follows 000000111111111111111111111111101111100001100011001000110100001 1011001000001001100000010011000001000110000011010010000000010000011111 0010000110010100101001010010000100100100101000110010001110011000001000 1001011001010001000110000011001000101001001010001000100001001000001000 1100001011001100000000011000000100000111110001101100010110001010000110 1000011001001000001001010000100110000001001110000001010000000000101001 0000000010101000000000010101100000000001000001111100010110001010000100 1000110010010000010010100001001100000010...
Each partial decoder description can be written in the binary description, to thereby reduce a storage space, improve processing efficiency and drop the time that it takes to transmit the extended bitstream 305 including the decoding description.
Described below is the linking operation between partial decoder descriptions to be used by the SYN parser group 700 and/or the connection control unit 425. Firstly, the connection control unit 425 calls the functional units of the uppermost hierarchy determined in the F-RT 620 of the description storing unit 410. The called functional units are on standby until CSCI or data necessary for the processing is stored at the CSCI storing unit 430 by the SYN parser group 700.
The SYN parser group 700 reads a syntax corresponding to the uppermost hierarchy among the rule information of the S-RT 670 to recognizes a VS start code and reads a corresponding bit (i.e. 32 bits set as an input value for the SET 660) of the conventional bitstream 316 to store an output value (i.e. element information CO) according to the performed SET process at the CSCI storing unit 430 as the name of the input data (CSCI) determined in the S-RT 670. Information related to which element information is stored at the CSCI storing unit 430 and which hierarchy uses the element information is written at the CSCIT 640. Next, the SYN parser group 700 puts the element information (i.e. CO) stored at the CSCI storing unit 430 into corresponding branch information of the S-RT 670 in order to process an index corresponding to the result. For example, the branch information corresponding to an index SHO. SHl is "C0==l." If this condition is satisfied, it proceeds to an index SR2 of an SHO hierarchy. Otherwise, it is processed as an error.
However, while the SYN parser group 700 uses the SET 660 to generate element information and to store the generated element information at the CSCI storing unit 430, if a VLD function (e.g. an index S74 of the SET 660) is called, the entropy decoding is performed by using the DVT 680. In this operation, if the element information is generated, the generated element information is stored at the CSCI storing unit 430.
While element information and/or data is stored at the CSCI storing unit 430 by the SYN parser group 700, each activated functional unit of the decoding functional group 800 checks whether all data and/or element information necessary to perform a predetermined process is stored. The pertinent functional unit can check whether all is stored with reference to the FU-CSCIT 630. It is also possible to recognize what the pertinent element is through the mapping to the CSCIT 640. If all necessary element information and/or data is stored, the pertinent functional unit starts to perform a predetermined process and stores the processed result data at the CSCI storing unit 430. As described above, the functional units can be successively activated or called in units of hierarchy structure. The activation in units of hierarchy structure can be controlled by the connection control unit 425, for example, which monitors whether the processing of the element information and/or data necessary for a hierarchy is currently completed and which is the hierarchy. The called functional units reads and processes the data and/or element information necessary to perform a predetermined process if the functional units recognizes that the data and/or element information is stored. This operation brings about the same effect as the case that each functional unit is connected successively or in parallel to perform the processing.
The decoding processing unit 320 can output video data corresponding to the inputted conventional bitstream 316 by allowing all hierarchies of the functional units necessary for the conversion to video data to be activated.
FIG. 15 conceptually shows parallel processing syntax parsing and data decoding in accordance with an embodiment of the present invention. As shown in FIG. 15, using the aforementioned decoder description information can make it possible to allow the syntax parsing and the data decoding to be individually (or independently) performed by the SYN parser group 700 and the decoding functional group 800, respectively. In other words, once data and/or element information necessary for each functional unit to decode data is stored at the CSCI storing unit 430, a pertinent functional unit can perform a predetermined process. It is also possible that each functional unit of the decoding functional group 800, which performs the decoding processing, performs its independent functions if the functional unit does not use result data of another functional unit as input data.
Accordingly, it is not necessary that the decoder 400 of the present invention start its operation only after all the syntax parsing is completed. It is also possible that the SYN parser group 700 and the decoding functional group 800 individually performs the processing and that each functional unit of the decoding functional group 800 performs the individual processing.
As described above, the present invention can use the conventional profile by using the functional units provided from the conventional standard (i.e. codec) and can form a new decoder by using the conventional functional units or new functional units.
In other words, it is possible to form a decoder in various ways without any restriction.
However, in the case of adding a new functional unit into the toolbox 415, it is required to add an algorithm (i.e. a description related to the functional unit) for a pertinent functional unit and add pertinent information into the FL 610. In this case, the compile operation of the algorithm may be additionally required.
In order to realize an integrated codec, it is required that the elements are organically controlled such that each element parses a bitstream compressed in various ways to decode the parsed bitstream with a decoding method corresponding to the encoding method. In this case, the pertinent bitstream can be formed in various shapes in which a variety of standards (or codecs) are mixed or can be formed to include various shapes by a variety of encoding methods in one standard. To support various encoding/ decoding methods, it must be possible to divide various functions to be used in various standards into separate units and select the functions desired and necessary for a user to form one type of codec (i.e. encoder and decoder).
As described above, the present invention can organically connect and control each functional unit by use of the same information analyzing method regardless of the encoding type of the encoded bitstream by providing a decoder description together with the encoded bitstream.
The present invention can also actively cope with the situation that the syntax of a bitstream is changed or newly added by amending the pertinent information or inserting addition information with regard to the S-RT 670. In addition, the present invention can set the connection relationship of the functional units included in the decoding functional group 800 of a pertinent decoder by selecting a function desired by a user in units of processing such as a bitstream level, a frame level and macroblock level and forming the F-RT 620.
Hereinafter, the commands forming each partial decoder description will be described in detail.
Each of the foregoing tables shows an example of a command to be used in each partial decoder description. Information (i.e. partial decoder description) for parsing the syntax of a standard such as MPEG-2/MPEG-4/MPEG-4 AVC can be formed by using each of the commands.
Each partial decoder description can be formed to include the commands such as READ, SEEK, FLUSH, IF, WHILE, UNTIL, DO-WHILE, DO-UNTIL, BREAK, SET, STOP and PUSH. Of course, all commands are unnecessary for being used in each of the partial decoder descriptions. It shall be obvious that any command can be selectively used per each partial decoder description. Described below briefly is how each command is used.
Firstly, READ is the command for reading a bit from a bitstream, used as, for example, "READ bits B > CSCI;". Here, "bits" indicates the number of bits to be read. "B" refers to a byte-alignment flag. "> CSCI" indicates a CSCI index to be stored. "B" and "> CSCI" is used as options. If "> CSCI" is not designated, it is determined to be stored at the IBS only.
Next, SEEK is the command for reading a bit from a bitstream but allowing a file pointer not to be moved. The file pointer refers to a reference position for the operation of reading a bit, for example. A parameter of the SEEK command can be used identically to the above-described REED. FLUSH is the command for moving the file pointer at a bitstream according to the number of the bits. Its parameter can be used identically to the REED.
IF is the command for providing the branch according to a given condition, used as "IF (condition) { ~ } ELSE { ~ }". WHILE is the command for repeatedly performing a designated block during a period of time while the given condition is true, used as "WHILE (condition) { ~ }".
UNTIL is the command for repeatedly performing a designated block during a period of time until the given condition is true, used as "UNTIL (condition) { ~ }.
DO-WHILE is the transformation of the WHILE command and the command for performing a block prior to the conditional determination, used as "DO { ~ } WHILE (condition)".
DO-UNTIL is the transformation of the UNTIL command and the command for performing a block prior to the conditional determination, used as "DO { - } UNTIL (condition)". For computation, the form ( ~ ) (compute) is used as, for example,
"(Cl l=(V2+3));". In other words, all computing formulas of SET-PROC can be written in parentheses, and operators such as arithmetic (i.e. addition, subtraction, multiply and division), substitution, addition/subtraction, (++/—), bit operation, logical sum/logical product and checking whether CSCI is used. BREAK is the command for being released from a nearest loop. SET is the command for setting a flag related to whether to use the designated CSCI. The CSCI to designate flags can be arranged and broken by comma. For example, the CSCI can be broken as SET CO, C2;.
STOP is the command for stopping the currently-processed processing of syntax element and turning to a next operation.
PUSH is the command for adding given data in the back of written data in an arrangement CSCI. The added values are arranged and broken by comma (e.g. PUSH C8 8, 16, 32;).
GO is the command for branching into a specified position. For example, GOR#;; indicates branching into R#, and GO RT indicates returning to a called position.
HEX is the command for reporting that a hexadecimal follows the HEX command.
RLD is an interface for an RLD function supportable in MPEG-4, used as "RLD index, level, run, islastrun, t#;". Here, index, level, run and islastrun indicates an internal variable and CSCI storing an RLD return value. t# indicates a Huffman table ID used for RLD.
VLD2 is a VLD function for MPEG-2, used as "VLD2 [t#] in > vl, v2, v3;". Here, t# indicates a Huffman table ID used for RLD, and in indicates an index value to be inputted, vl, v2 and v3 indicate output result values. Finally, VLD4 is a VLD function for MPEG-4, used as "VLD4 [T#] > CSCI;". Here, t# indicates a Huffman table ID used for RLD, and "> CSCI" indicates a CSCI index to be stored. "> CSCI" is used as an option. If "> CSCI" is not designated, it is determined to be stored at a variable IBS only.
FIG. 16 shows the structure of an extended bitstream in accordance with a first embodiment of the present invention, and FIG. 17 shows the structure of an extended bitstream in accordance with a second embodiment of the present invention. FIG. 18 shows the structure of an extended bitstream in accordance with a third embodiment of the present invention, and FIG. 19 shows the structure of an extended bitstream in accordance with a fourth embodiment of the present invention.
As shown in FIG. 16, the encoded decoder description 313 included in the extended bitstream 305 of the present invention can be formed to include applied standard information except for information for generating the partial decoder description (No table), to include all table information (Full tables) or to include some table information (Partial tables). In order to distinguish the above cases, the decoding description information can include stream identifier (SI) information. The SI information can be divided as shown in the following table 9.
[Table 9] Stream Identifier
Figure imgf000081_0001
As shown in FIG. 16, the extended bitstream 305, which is a decoding description, can include an SI 1060 (i.e. 00), showing that no table information is included, a codec number 1620 and a profile and level number 1630.
This corresponds to the case of using the partial decoder descriptions already-stored at the description storing unit 410 instead of sending no information for generating the partial decoder description. Even though the pertinent conventional bitstream 316 sends basic information related to which codec and profile and level are used, the decoding processing unit 320 can perform the decoding by using the instructed partial decoder descriptions.
Herein, the SET 660, the CSCIT 640, the FL 610, the FU-CDCIT 630 and the DVT 680 can be written per applied standard (or codec), and the F-RT 420 and the S-RT 460 can be written per profile of each applied standard (refer to the tables 10 and 11). [Table 10]
Tables per codec
Figure imgf000082_0001
[Table 11 ]
Tables per profile and level
Figure imgf000082_0002
In the case of MPEG -4 SP, a decoding method can be described by using an SET#3, a FL#3, a CSCIT#3, a FU-CSCIT#3, a DVT#3, a F-RT#3-1 and an S-RT#3-1. If the transmission is performed by designating the codec number as 3 and the profile and level number as 2, the decoding processing unit 320 can perform the decoding operation with reference to corresponding tables. As shown in FIG. 17, the extended bitstream 305 can include the encoded decoder description 313 corresponding to all of the above-described partial descriptions. In this case, an SI 1610 will be determined as 01 with reference to the table 9. Each table can include a table identifier (TI) 1710, a table start code (TS code) 1720, a table description (TD) 1730 and a table end code (TE) 1740. The TI 1710 and the TS code 1720 can have the changeable sequences. The TD 1730 can be written in the binary description. Of course, the sequence of each table is changeable.
As shown in FIG. 18, the extended bitstream 305 can include some of the above-described partial decoder descriptions and codec numbers corresponding to the partial decoder descriptions. In the case, the SI 1610 will be determined as 10 with reference to the table 9. However, since this case has no unified format of the partial decoder descriptions, it can be considered as one of preferable examples that a structure identifier 1810 is further equipped in the back of the table identifier 1170 to determine which configuration the pertinent partial decoder description has.
In addition, as shown in FIG. 19, the extended bitstream 305 can further include a decoder description (DD-T) 1910 related to the partial decoder description and update information. The decoder description 1910 related to the partial decoder description may be any one of the partial decoder descriptions described above with reference to the related drawings, and the SI 1610 will be determined as a corresponding value. The update information can include a revision start code (RS code) 1920 and a revision 1930.
The revision 1930 may be related to the addition, deletion or update of rule information (Rule) of a partial decoder description. The revision 1930 can be used as "insert index into table-name (...);", "delete index from table-name;", or "update index in table-name(...);". For example, in case that SlOO is added to a SET#4, the revision 1930 can be used as "insert SlOO into SET#4 ("READ 1;IF(IBS==1){SET C31;}");". While the description decoder 405 reads the revision 1930 and the decoding processing unit 320 performs the decoding of the pertinent extended bitstream 305, it is required to store the partial decoder descriptions of the revised details at the description storing unit 410. However, if the decoding is completed, it is required to restore the pertinent partial decoder descriptions stored at the description storing unit 410 to their original status. The decoding processing unit 320 or a trigger can provide the description decoder 405 with a completion notice related to whether the decoding is completed. Alternatively, whether the decoding is completed can be recognized by allowing the description decoder 405 to monitor whether the decoding processing unit 320 completes the decoding. As described above, the present invention can use the conventional profile by using the functional units provided from the conventional standard (i.e. codec) and can form a new decoder by using the conventional functional units or new functional units. In other words, it is possible to form a decoder in various ways without any restriction. However, in the case of adding a new functional unit to the toolbox 415, it is required to add an algorithm (i.e. a description related to the functional unit) for a pertinent functional unit and add pertinent information into the FL 610. In this case, the compile operation of the algorithm may be additionally required. In order to realize an integrated codec, it is required that the elements are organically controlled such that each element parses a bitstream compressed in various ways to decode the parsed bitstream with a decoding method corresponding to the encoding method.
In this case, the pertinent bitstream can be formed in various shapes in which a variety of standards (or codecs) are mixed or can be formed to include various shapes by a variety of encoding methods in one standard. To support various encoding/ decoding methods, it must be possible to divide various functions to be used in various standards into separate units and select the functions desired and necessary for a user to form one type of codec (i.e. encoder and decoder). As described above, the present invention can organically connect and control each functional unit by use of the same information analyzing method regardless of the encoding type of the encoded bitstream by providing a decoder description together with the encoded bitstream.
The present invention can also actively cope with the situation that the syntax of a bitstream is changed or newly added by amending the pertinent information or inserting addition information with regard to the S-RT 670. In addition, the present invention can set the connection relationship of the functional units included in the decoding functional group 800 of a pertinent decoder by selecting a function desired by a user in units of processing such as a bitstream level, a frame level and macroblock level and forming the F-RT 620.
FIG. 20 shows the structure of an extended bitstream in accordance with a fifth embodiment of the present invention, and FIG. 21 shows the structure of an extended bitstream in accordance with a sixth embodiment of the present invention. FIG. 22 shows the structure of an extended bitstream in accordance with a seventh embodiment of the present invention, and FIG. 23 shows the structure of an extended bitstream in accordance with an eighth embodiment of the present invention.
The extended bitstream 305 of the present invention is formed to include the encoded decoder description 313 and the conventional bitstream 316. It is evident to any person of ordinary skill in the art that the conventional bitstream 316 is formed to include coded video data (and/or coded audio data).
Here, the encoded decoder description 313 can be formed to have a different structure according to a codec property to be applied to decode the conventional bitstream 316. For example, firstly, in the case of using one conventional standardized codec, a first decoder description structure can be applied.
Secondly, in the case of revising and using some details of one conventional standardized codec (i.e. for some of the aforementioned partial decoder descriptions, the details of the partial decoder description corresponding to the pertinent codec are used as they are, and the other partial decoder descriptions are revised), a second decoder description structure can be applied.
Thirdly, in the case of processing and using table information of a plurality of conventional standardized codecs (i.e. for some of the aforementioned partial decoder descriptions, the details of the partial decoder description of the plurality of conventional standardized codecs are selectively used, and the other partial decoder descriptions are revised), a third decoder description structure can be applied.
Finally, in the case of using a new codec that is not conventionally standardized (i.e. including and transmitting all of the aforementioned partial decoder descriptions having new details), a fourth decoder description can be applied.
The foregoing four decoder description structures can be distinguished as each different codec type. For example, the first, second, third and fourth decoder descriptions can de determined as "codec type = 0", "codecjype = 1 ", "codec type = 2" and "codec_type = 3", respectively.
FIG. 20 shows the structure of the first decoder description. According to the structure of the first decoder description, the encoded decoder description 313 can be formed to include a codec type (codecjype) 2010, a codec number (codec_num) 2020 and a profile and level number (profile_level_num) 2030. In other words, according to the structure of the first decoder description, only information related to a codec to be applied is written in a decoder description area. Although the related drawing shows each field having 8 bits, each field size can be obviously increased or decreased according to the size of the information to be represented.
The codec type 2010 will be determined as 0 (i.e. zero), which is codec_type=0. This indicates the case of using one of a plurality of conventional standardized codecs as it is.
FIG. 21 shows the structure of the second decoder description. According to the structure of the second decoder description, the encoded decoder description 313 can be formed to include a codec type (codec type) 2010, a codec number (codec_num) 2020, a profile and level number (profile_level_num) 2030 and a table description 2110. In other words, according to the structure of the second decoder description, the encoded decoder description 313 is written based on the revised details of the partial decoder descriptions and information related to the codec to be applied. Here, the table description 2110 is individually included for each partial decoder description. In other words, there may be a plurality of partial decoder descriptions in the encoded decoder description 313. As shown in FIG. 21 , each table description 2110 can include a table start code
(table_start_code) 2120, a table identifier (table_identifier) 2130, a table type (tablejype) 2140, a content 2145 and a table end code (table_end_code) 2150. Of course, each field can have a size that is capable of being increased or decreased as necessary. As described below, the content 2145 can be also omitted or included according to the information of the table type 2140.
For example, if the table type 2140 has the value of "0," it can be recognized that the conventional partial decoder description (i.e. the codec type 2010, the codec number 2020, the profile and level number 2030 and the partial decoder description recognized by the table identifier 2130) is applied without any revision. In this case, the content 2145 can be omitted.
However, if the table type 2140 has the value of "1," it can be recognized that some (i.e. revised by using the contents defined in the content 2145) of the conventional partial decoder description (i.e. the codec type 2010, the codec number 2020, the profile and level number 2030 and the partial decoder description recognized by the table identifier 2130) is revised and used. In this case, revised contents (such as an update command) are written in the content 2145. For example, the revised contents (such as the update command) may be the information including commands such as an update, an insert, and/or a delete and revising partial decoder description contents of an index corresponding to a pertinent table. If the table type 2140 has the value of "2," it can be recognized that the conventional partial decoder description (i.e. the codec type 2010, the codec number 2020, the profile and level number 2030 and the partial decoder description recognized by the table identifier 2130) is completely revised (i.e. changed to the contents defined in the content 2145). In this case, the changed contents (e.g. the contents for newly defining the pertinent table like a new command) can be written in the content 2145.
FIG. 22 shows the structure of the third decoder description. According to the structure of the third decoder description, the encoded decoder description 313 can be formed to include the codec type 2010 and the table description 2110. In other words, according to the structure of the third decoder description, the encoded decoder description 313 is written based on the revised contents of the partial decoder descriptions and the codec to be applied. Here, the table description is individually included for each partial decoder description. In other words, the encoded decoder description 313 may be related to a plurality of partial decoder descriptions.
Each table description 2110, as shown in FIG. 22, can include a table start code (table_start_code) 2120, a table identifier (table identifier) 2130, a table type (tablejype) 2140, a content 2145 and a table end code (table_end_code) 2150. Of course, each field can have a size that is capable of being increased or decreased as necessary.
For example, if the table type 2140 has the value of "0," it can be recognized that the conventional partial decoder description (i.e. the codec type 2010, the codec number 2020, the profile and level number 2030 and the partial decoder description recognized by the table identifier 2130) is applied without any revision. In other words, the profile and level number 2030 and the codec number 2020, corresponding to the partial decoder description to be applied to the field of the content 2145 are written. However, if the table type 2140 has the value of " 1 ," it can be recognized that some (i.e. revised by using the contents defined in the content 2145) of the conventional partial decoder description (i.e. the codec type 2010, the codec number 2020, the profile and level number 2030 and the partial decoder description recognized by the table identifier 2130) is revised and used. In this case, the profile and level number 2030 and the codec number 2020, corresponding to the partial decoder description to be applied to the field of the content 2145 can be written in the field of the content 2145, and the revised contents (such as an update command) can be written in the field of the revised contents.
If the table type 2140 has the value of "2," it can be recognized that the conventional partial decoder description (i.e. the partial decoder description recognized by the table identifier 2130) is completely revised (i.e. changed to the contents defined in the content 2145). In this case, the changed contents (e.g. the contents for newly defining the pertinent table like a new command) can be written in the field of the content 2145. Briefly, if the table type 2140 has the value of 0 or 1, a certain codec is used as it is or some of the partial decoder descriptions are revised and used.
Accordingly, the information (i.e. the codec number and the profile and level number) related to the codec is required. However, if the table has the value of 2, the completely new table information is defined. Accordingly, additional codec information is not necessary.
FIG. 23 shows the structure of the fourth decoder description. According to the structure of the fourth decoder description, the encoded decoder description 313 can be formed to include the codec type 2010 and the table description 2110. In other words, according to the structure of the fourth decoder description, the partial decoder descriptions are written in a partial decoder description area. The table description 2110 is individually included for each partial decoder description.
As shown in FIG. 23, each table description 2110 can include a table start code (table_start_code) 2120, a table identifier (table identifier) 2130, a table type (tablejype) 2140, a content 2145 and a table end code (table_end_code) 2150. Of course, each field can have a size that is capable of being increased or decreased as necessary.
For example, if the table type 2140 has a predetermined value (e.g. 2), the information (e.g. the contents for newly defining the pertinent table like a new command) for describing a new partial decoder description corresponding to the table identifier 2130 is represented in the field of the content 2145. As described above, if the codec type 2010 has the value of 3, it is recognized that the decoding is performed by using new partial decoder descriptions. Accordingly, the table type 2010 can be designated as one or omitted.
Below are described examples of each table showing the syntax structure of the encoded decoder description 313 and the syntax structure of each field.
[Table 12]
Decoder description
Figure imgf000093_0001
Figure imgf000094_0001
[Table 13]
Codec description
Figure imgf000094_0002
[Table 14]
Table descriptions
Figure imgf000094_0003
Figure imgf000095_0001
[Table 15]
Update description
Figure imgf000095_0002
[Table 16]
New description
Figure imgf000096_0001
Below are examples of each table showing the semantics of the decoder description.
[Table 17]
Decoder description
Figure imgf000096_0002
Here, the codec type can be an 8-bit code which is information for recognizing a codec type.
[Table 18]
Codec description
Figure imgf000097_0001
Here, the codec number (codec_num) can be an 8-bit code which is information for indicating a code of a used codec. The profile and level number
(profile_level_num) can be an 8-bit code which is information for indicating the profile and level number of a codec. The profile and level number can be identical to the profile and level number of each MPEG standard. [Table 19]
Table description (Table identifier)
Figure imgf000098_0001
Here, the table start code (table_start_code) can be a 26-bit character string of a hexadecimal, OxFFFFFE, which indicates the start of the table description. The table identifier (table_identifier) can be each 4-bit code as shown in the table 12.
[Table 20]
Table description (Table type)
Figure imgf000099_0001
Here, the table type is a 4-bit value which is information for determining whether to maintain the existing table, to update the existing table or to generate a new table. The table end code (table end-code) can be a 26-bit character string of a hexadecimal, OxFFFFFF, which indicates the end of the table description.
[Table 21 ]
Instruction set for update command (update command)
Figure imgf000099_0002
Here, index# can refer to a 4-bit character string indicating an index number of a table, and table# can refer to a 32-bit character string as a table identifier.
[Table 22]
Instruction set for new command (new command)
Figure imgf000100_0001
Figure imgf000101_0001
Here, "bits" has any value of 3 through 34 bits that indicates the number of required bits, and B refers to a 1-bit character string indicating a byte alignment. ">" refers to a 1-bit character string for printing an output of a left side. VLD2 (for MPEG-2) and VLD4 (for MPEG-4) are functions for entropy coding.
FIG. 24 is a block diagram showing an encoder in accordance with an embodiment of the present invention.
The encoder 2400 of the present invention further includes an extended bitstream generating and outputting unit 2410 as compared with the conventional encoder 200 described with reference to FIG. 2. The extended bitstream generating and outputting unit 2410 generates a decoder description by using control information (e.g. a list and connection relationship of used functional units and input data, syntax information and syntax connection information of a pertinent functional unit) of the generating operation of the conventional bitstream 316 generated by the processing of the previous operations. The extended bitstream 305 is generated by using the generated decoder description 313 and the conventional bitstream 316 before being transmitted to the decoder 300.
Since any person of ordinary skill in the art can understand the method of generating a decoder description through the aforementioned descriptions only, the pertinent descriptions will be omitted. Similarly, the person of ordinary skill in the art can easily understand that the encoder 2400 can also include a toolbox having a plurality of functional units and a bitstream conforming to at least one encoding standard can be generated through successive or organic combinations of the functional units included in the toolbox. In this description, an element (e.g. the encoding unit) that ultimately performs the encoding to generate the conventional bitstream 316 in the encoder 2400 is merely named as the variable length encoding unit 235. The element that ultimately performs the encoding is not limited to the variable length encoding unit 235. This does not depart the scope of claims of the present invention. FIG. 24 shows that the extended bitstream 305 generated by using the decoder description information and the conventional bitstream 316 is provided to the decoder.
Alternatively, as shown above, the decoder description can be transferred to the decoder 300 in the form of separate data or bitstreams. In this case, it shall be obvious that an encoded decoder description generating and outputting unit (not shown) can be placed in back of the variable length encoding unit 235 to provide the decoder 300 with the encoded decoder description generated independently of the conventional encoding unit 200.
Although the decoder has been used hitherto to describe the integrated codec apparatus and the method thereof in accordance with an embodiment of the present invention, the mutual relationship between the decoder and the encoder is evident to any person of ordinary skill in the art and it shall be obvious that the present invention is not limited to the decoder when it is considered that the encoder can be easily formed by using only detailed descriptions related to the decoder.
As described above, the integrated codec apparatus and the method thereof in accordance with the present invention makes it easy to analyze a syntax element and control the connection of the functional units in one standard (or codec) or between different standards (or codecs). In other words, it is possible to change the sequence of syntax elements in the bitstream to be generated according to a certain standard, to insert a new syntax element or to delete the existing syntax elements.
In accordance with the conventional art, the decoder is unable to normally decode a pertinent bitstream when the syntax element is manipulated. For example, if the bitstream is re-formed and transmitted by changing the sequence of the bitstream information from ABC to ACB, the decoder is not able to recognize the re-formed bitstream. This makes it impossible to normally decode the re-formed bitstream. Similarly, if the bitstream is re-formed as ABFC by newly inserting F or as AC by deleting B, the decoder is also not able to recognize the re-formed bitstream.
However, since the integrated codec apparatus and the method thereof in accordance with the present invention can allow the decoder description information to be included in an expanded bitstream or to be provided to the decoder description information as independent data, the decoder 300 can smoothly perform the decoding operation.
FIG. 25 shows a brief structure of a decoder in accordance with an embodiment of the present invention, and FIG. 26 detailedly shows how a decoding unit processes a bitstream in accordance with an embodiment of the present invention.
The decoder description and video bitstream of FIG. 25 can be information generated and provided by an encoder, for example.
Referring to FIG. 25, the decoder 2500 includes a decoding unit 2505 and a dividing unit 2510. The decoding unit 2505 includes a BSDL parser 2520, a decoder forming unit 2530, a toolbox 2535 and a decoding solution 2540.
The BSDL parser 2520 analyzes the syntax information of a video bitstream inputted from the outside by using a BSDL schema inputted from the dividing unit 2510. The video bitstream inputted into the BSDL parser 2520 is used as data encoded by an encoding type (e.g. MPEG-4 or AVS). It can be understood by any person of ordinary skill in the art through this description that the BSDL parser 2520 itself can analyze the BSDL schema or can be formed by an outer algorithm.
The BSDL parser 2520 includes a BSDL analysis processing unit 2525, which is an inner processing unit for reading the BSDL schema written in an XML grammar and re-defining the structure of the BSDL parser 2520.
Since the re-defining rule using the BSDL schema can vary according to the methods applied by a designer, the basic points only will be suggested below. Firstly, this is to recognize information related to the length and semantics of a bitstream written in the BSDL schema. Secondly, this is to realize a program routine that is operated by a same repeat or a conditional sentence by reading a repeated structure or conditional executable structure that is defined on the BSDL schema. Accordingly, before it is re-defined, the BSDL parser 2520 can be formed to include functions for achieving the above points, and the re-defining operation can refer to the operation that uses the aforementioned parsing functions to realize the BSDL parser 2520. The BSDL parser 2520 can be realized by using a program such as caltrop actor language (CAL), C, C++ or Java that can form a fluid data flow by the control of the BSDL analysis processing unit 2525.
The BSDL analysis processing unit 2525 and the BSDL parser 2520 can be realized according to the design standard without any restriction. Of course, it can be possible to use the previously suggested BSDL operation program such as a BSDL reference soft ware. The BSDL reference software is the official software made for smoothly operating the BSDL standardized by the MPEG. It shall be obvious that the BSDL parser 2520 can be also more easily realized by using this type of software resource. As described in this description, the basic structure of the BSDL parser 2520 can be designed in various ways as selected by a decoder designer. In other words, the decoder designer can selectively apply and design a detailed algorithm for performing a designated function of the BSDL parser 2520. However, the BSDL parser 2520 can be re-defined by the result of reading the BSDL schema. The re-defined result must work (e.g. communicate) with other elements of the decoding unit 2505.
The details of the syntax information included in the bitstream are written in the BSDL schema inputted into the BSDL parser 2520. The details can include the length, meaning and appearance condition of the syntax information and a repeated appearance frequency, for example. Here, the length of the syntax information refers to the length of bits occupied by certain information in the bitstream. The meaning of the syntax information shows what meaning the pertinent information has. This is because if a functional unit requests some information of A, for example, it may be necessary to distinguish which information is A. Moreover, when the video bitstream of the same standard is processed by using one BSDL schema, the attributes of the bitstream may change whether a part of the syntax information appears or how many times a part of the syntax information appears. To define this type of case, the appearance condition and the repeated appearance frequency can be included in the BSDL schema. For example, the appearance condition may be necessary to allow motion vector information not to be read when an infra frame is processed, and if a pertinent macroblock is assumed to have 6 identical structural blocks, the repeated appearance frequency can be used to repeat the pertinent block.
As shown in FIG. 26, the BSDL analysis processing unit 2525 helps the BSDL parser 2520 to read the information included in the bitstream according to the sequence of designated by the BSDL schema by transferring result information of the analyzed details to the BSDL parser 2520.
The BSDL parser 2520 converts contents of the bitstream, which is inputted by referring to the result information provided from the BSDL analysis processing unit 2525, to meaningful data in order to provide the meaningful data to the decoder forming unit 2530 and/or the decoding solution 2540. The meaningful data, provided to the decoder forming unit 2530 and/or the decoding solution 2540, can include encoded video data of a predetermined macroblock size, an AC prediction flag (ACpred flag) for intra-coded macroblocks, MB type & coded block pattern for chrominance (MCBPC) and a coded block pattern for luminance (CBPY), for example. This data providing operation can be performed regardless of whether the decoder forming unit 2530 or the decoding solution 2540 is driven. As suggested in the description, when the decoder decodes the bitstream by using the decoder description, the present invention is to allow the decoder description to be realized to have the structure using a BSDL system format and an XML based format that is linkable to the BSDL system. It shall be understood by any person of ordinary skill in the art through this description that the decoder description can have the XML format such as a BSDL and a CALML, and the BSDL schema and the CALML can have separated functions to be used for a syntax parsing operation and connection control between functional units, respectively.
The BSDL performs the writing in a form of an XML document or an XML schema including information related to the structure and the constituting type of the bitstream. The language is designed to represent at least one video bitstream structure. Although the bitstream describing method that is being used through verification by the conventional MPEG standard is applied to the decoder as it is, using the BSDL make it possible to allow the decoder to be highly compatible with other descriptions. Since the language format and grammar related to BSDL is described in the MPEG-B part 5, the pertinent detailed description will be omitted.
Below are examples of the constitutions of the BSDL schema and the connection control information using BSDL and XML. Of course, it shall be obvious that the structures of the BSDL schema and the connection control information are not limited to these examples. BSDL schema
<xsd:element name="VideoObject"> <xsd:complexType> <xsd:sequence>
<xsd:element name="VOStartCode" type="m4v:StartCodeType"/>
<xsd:element name="VOL">
<xsd : complexType> <xsd:sequence>
<xsd:element name= "header" type="VOLHeaderType" bs2:ifNext="&volSC;" rvc:port="0"/> <xsd: element name="VOP" type=" VideoObj ectPlaneType" maxθccurs= "unbounded"
Figure imgf000109_0001
</xsd : sequence> </xsd : complexType> </xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element>
Connection control information <Network name="Decoder">
<Package>
<QID>
<ID id="MPEG4 Simple Profile" />
</QID> </Package>
<Port kind="Input" name="BITSTREAM" />
<Port kind=Ouput" name="YUV" />
<Instance id="l">
<Class name="Parser"> <QID>
<ID id="c" />
</QID>
</Class>
<Note kind="label" name="Stream Parser" /> </Instance> <Instance id="2">
<Class name="VS">
<QID>
<ID id="c" /> </QID>
<Note kind="label" name="Video Session" />
</Class>
</Instance>
Connection src="" src-port="BITSTREAM" dst="l" dst-port="BITSTREAM" />
Connection src="l" src-port="CSCI" dst="2" dst-port=MCSCI" />
<Connection src="l" src-port="DATA" dst="2" dst-port="DATA" />
<Connection src="2" src-port="YUV" dst="" dst-port="YUV" />
</Network>
In this description, it is assumed that some information such as decoder description 2560 and encoded video data 2580 is inputted from the outside. Alternatively, it shall be obvious that at least one of the decoder description 2560 and the encoded video data 2580 is already stored at an element of the decoding unit 2505. Referring to FIG. 25 again, the decoder forming unit 2530 controls the decoding solution 2540 to be realized by using the connection control information inputted from the dividing unit 2510 and some (e.g. at least one of encoded video data of a predetermined macroblock size, an AC prediction flag (ACpred_flag) for intra-encoded macroblocks, MB type & coded block pattern for chrominance (MCBPC) and a coded block pattern for luminance (CBPY)) of the bitstream data inputted from the BSDL parser 2520.
In other words, the decoder forming unit 2530 controls some or all functional units of the toolbox 2535 to be loaded and arranged in the decoding solution 2540 by being organically connected to each other by use of the connection control information. Here, the connection control information is written by using a CAL markup language (CALML). The CALML is the XML format capable of writing the constitution of a decoder by using the caltrop markup language, which has currently been disputed by the MPEG. The caltrop markup language is constituted to include a program object, Actor, and connection relationships between Actors. The CALML is the caltrop markup language which is expressed by the XML format. An example of the CALML has already shown above as the examples of the BSDL schema and the connection control information.
In particular, the decoder forming unit 2530 has an authority to access the toolbox 2535 including the sets of various functional units. The decoder forming unit 2530 also sets the input and output connection between the functional units of the toolbox 2535 and forms the decoding solution 2540 as the result. At this time, the input and output connection structure and executing sequence between the functional units is determined by referring to the connection control information. The decoder forming unit 2530 can receive some information to recognize the type of the inputted bitstream from the BSDL parser 2520 and refer to the received information in a functional unit connecting operation. If every connection structure of functional units is determined, when it is expected that data is continuously inputted from the outside, the connection structure can be considered as an independent decoder, capable of analyzing and decoding all types of video bitstreams intended by a pertinent decoder description designer. At this time, this completed functional connection structure can be referred to as the decoding solution 2540.
The toolbox 2535 includes a plurality of functional units, each of which is realized to perform a predetermined process. Each of the functional units can be realized as a combination of program codes. Functional units included in the toolbox 2535 can be segmentalized into a plurality of subtoolboxes as each applied usage set. For example, the functional units can be segmentalized into a first toolbox including the functional units for MPEG and a second toolbox including other functional units. Alternatively, functional units can be segmentalized into a first toolbox as a set of the functional units for MPEG-2, a second toolbox as a set of the functional units for MPEG-4 and a third toolbox as a set of the functional units for AVS, which is a digital TV compression standard in China.
Of course, a plurality of toolboxes 2535 can have an independent connection relationship with the decoder forming unit 2530 and the decoding solution 2540. In this case, the first toolbox and the second toolbox, described above, can be realized in the form of independent toolboxes. This is not shown.
For the convenience of description, a plurality of subtoolboxes that are included one toolbox 2535 or all functional units that are included by being scattered without being grouping will be described below.
The toolbox 2535 includes the functional units realized to perform each function (i.e. a predetermined process). Each functional unit forms successive connecting operation relationships by being loaded on the decoding solution 2540 by the connection control of the decoder forming unit 2530, to thereby output the encoded video data included in the video bitstream as decoded video data.
The toolbox 2535 can include a de-blocking filtering (DF) functional unit, a VOP reconstructing (VR) functional unit, a frame field reordering (FFR) functional unit, an intra prediction and picture reconstruction (IPR) functional unit, an inverse transform (IT) functional unit, an inverse quantization (IQ) functional unit, an inverse AC prediction (IAP) functional unit, an inverse scanning (IS) functional unit and a DC reconstruction (DCR) functional unit, for example. An IT 4x4 functional unit, an IQ 4x4 functional unit and a DCR 4x4 functional unit process the blocks having the size of 4x4. This is because while MPEG- 1/2/4 process data in 8x8 block size in the transform, quantization and prediction, MPEG-4 AVC may process data in 4x4 block size.
It shall be obvious that the toolbox 2535 can include any functional unit for performing a data decoding function regardless of an applied standard, a necessary functional unit for the developed technology can be added, an existing functional unit can be modified and an unnecessary functional unit can be deleted. For example, if the IS functional unit processing data in 4x4 block size to perform the decoding is needed, the pertinent functional units can be included in the toolbox 2535. Moreover, a special prediction (SPR) functional unit can be added to perform the intra prediction for the MPEG-4 AVC.
It is obviously possible to combine the functional units that are commonly applicable by a plurality of standards among each functional unit of the toolbox 2535. Described below briefly is each function of the functional units which is evident to any person of ordinary skill in the art.
The DF functional unit is a de-blocking filter of MPEG-4 AVC, and the VR functional unit stores a decoded pixel value.
The FFR functional unit is for an interlaced mode, and the IPR functional unit stores a decoded pixel value after the intra prediction of MPEG-4 A VC is performed. As described above, the intra prediction of MPEG-4 AVC can be performed by the SPR functional unit.
The IT functional unit performs the inverse transform of DC values and AC values, and the IQ functional unit performs the inverse quantization of the AC values.
The IAP functional unit performs the inverse AC prediction of the AC values, and the IS functional unit performs the inverse scan of the AC values. The DCR functional unit performs the inverse AC prediction and the inverse quantization of the DC values.
The decoding solution 2540, which is formed by the decoder forming unit 2530, receives the bitstream data (or encoded video data of a predetermined macroblock size) divided in a unit of syntax information by the BSDL parser 2520.
As described with reference to FIG. 26, the bitstream can be inputted through a tangible or intangible data interface for inputting and outputting data. As software, the data interface can be a memory buffer, a virtual port determining the flow of data or a parameter of a program. As hardware, the data interface can be a connection line of a circuit. Otherwise, the data interface can be realized in various ways.
The data can be continuously inputted through a pertinent interface regardless of the process performed by a certain functional unit (e.g. so as to perform the parallel processing). The decoding solution 2540 processes the inputted data and outputs it as decoded video data. As shown in FIG. 26, data can be transferred from the data interface to each functional unit, and the functional unit can process the pertinent data and transfer the processed data to a following functional unit. This kind of data flow can be determined as pre-determined by the decoder forming unit 2530.
The decoding solution 2540 can include a storing unit for storing the data (e.g. information extracted by the syntax parsing of a bitstream) provided from the BSDL parser 2520 and processed result data of each functional unit. Each functional unit loaded by the control of the BSDL parser 2520 can perform a predetermined process by using at least one of the data provided from the BSDL parser 2520 and the resulted data of a previously operated functional unit. In this case, a following functional unit to perform the corresponding process must recognize that the operation of the previous functional unit is completed. Herein, the decoder forming unit 2530 can control whether the following functional unit starts the operation by continuously monitoring whether each functional unit completes the operation. Moreover, if the storing unit includes independent areas per each functional unit and the processed result data of the previous functional unit is allowed to be stored in the area for the following functional unit by the control of the decoder forming unit 2530, the following functional unit can perform the process immediately when the data necessary to perform the process is stored in the area. Alternatively, it is obviously possible that various methods for controlling a processing start time between the functional units are additionally considered.
Of course, the pertinent storing unit can be equipped in the decoder forming unit 2530, and the decoder forming unit 2530 can provide a functional unit that is to perform the current process with the data (e.g. information extracted by the syntax parsing of a bitstream) provided from the BSDL parser 2520 and the processed result data of each functional unit.
Hereinafter, the operation of the decoding unit 2505 will be briefly described with reference to FIG. 26.
If an inputted video bitstream and a BSDL schema is inputted from an outside (and it is assumed that there is information A and information B in areas of the bitstream), the BSDL parser 2520 recognizes that there are MB type data and 2-bit CBPY data at the areas corresponding to the information A and the information B, respectively, by reading the BSDL schema.
Then, the BSDL parser 2520 reads bits in predetermined quantities that are designated in each area by using the recognized information and transfer the read information to the decoding solution 2540 according to given meanings. The decoding solution 2540 receives the data named as an MB type and CBPY from the BSDL parser 2520 to process the data. As described above, the decoding solution 2540 is realized by allowing each functional unit to be loaded by the connection control of the decoder forming unit 2530.
The data interface of the decoding solution 2540 receives the data transferred from the outside and transfers the received data to the functional units requesting the pertinent data by referring to a connection relationship of the functional units previously formed by the connection control information.
Each functional unit also performs the decoding operation according to the predetermined connection relationship (i.e. the connection relationship for processing data). All data flow and the connection relationship between the functional units depend on the details previously formed by the decoder forming unit 2530. An output video frame is outputted to the outside by the successive processing of each functional unit.
As described above, the decoder forming unit 2530 and/or the decoding solution 2540 can include a storing unit. This is because any cease can be prevented from occurring in the operation of receiving the data from the BSDL parser 2520 and the data can be provided in parallel in the decoding operation. Each functional unit can also read desired data from the storing unit to use the read data.
The BSDL parser 2520 can allow the decoder forming unit 2530 to provide the data to the decoding solution 2540 in order to decode encoded video data by providing corresponding data to the decoder forming unit 2530. Alternatively, the BSDL parser 2520 can directly provide the pertinent data to the decoding solution 2540.
Referring to FIG. 25 again, the dividing unit 2510 divides the inputted decoder description 2560 into each information to input the divided information into the decoding unit 2505. The decoder description 2560 inputted into the dividing unit 2510 can include the BSDL schema 2565 for writing the structure of a bitstream and the CALML data 2570 for writing the decoding operation of a bitstream. The aforementioned two types of data can be independently written by the XML grammar or can be integrated and transmitted for the efficient operation of a decoder.
FIG. 27 shows how a decoder description is inputted in accordance with another embodiment of the present invention.
As shown in FIG. 27, the decoder 2500 can further include a description decoder 510. The description decoder 510 can generate the decoder description 2560 by decoding an inputted encoded decoder description 520 in order to provide the generated decoder description 2560 to the dividing unit 2510.
Transmitting the encoded decoder description 2560 makes it possible to reduce the amount of the transmitted and received data.
FIG. 28 shows how a decoder description is inputted in accordance with another embodiment of the present invention.
The above description with reference to FIG. 25 is related to the case that the decoder description 2560 and the video bitstream 2580 are inputted into the decoding unit 2505. The above description with reference to FIG. 27 is related to the case that the encoded decoder description 520 and the video bitstream 2580 are inputted into the decoding unit 2505. However, as shown in FIG. 28, it shall be obvious that configuration information of the decoder description 2560 can be initially divided and inputted into the decoding unit 2505. In this case, the foregoing separating 2510 and decoder description 2560 can be obviously emitted. FIG. 31 shows the structure of a decoding unit in accordance with another embodiment of the present invention.
The decoding unit 2505 realized by separating the toolbox 2535 and the decoder forming unit 2530 from each other has been described above with reference to FIG. 25 through FIG. 28.
However, as shown in FIG. 31, it shall be obvious that the decoder forming unit 2530 can include the toolbox 2535 as an element.
In this case, the decoder forming unit 2530 can perform not only the control function of the connection structure between the functional units but also the selecting function of a functional unit to be used. This can realize the decoding solution 2540 in various types.
FIG. 32 shows the structure of a BSDL parser in accordance with another embodiment of the present invention.
The BSDL parser 2520 including the BSDL analysis processing unit 2525 has been described above with reference to FIG. 25. However, the BSDL parser 2520 of the present invention can be previously defined from an outside of the decoder 2500 before starting the decoding of a bitstream. Accordingly, the aforementioned BSDL analysis processing unit 2525 can be omitted. At this time, a BSDL parser maker 2610 can be configured by using the existing application program such as a BSDL reference software.
A BSDL parser performing a predetermined operation as an independent element has been described above. However, the BSDL parser can be realized as one functional unit included in a toolbox or pre-included as an independent element in a decoding solution. If the BSDL parser is equipped in the toolbox, a decoder forming unit must load and control the BSDL parser to perform the process by using connection control information before the functional units for performing the bitstream decoding starts their operations. Similarly, if the BSDL parser pre-includes in the decoding solution, the decoder forming unit must control the BSDL parser to perform the process before each loaded functional unit starts to perform the process. In each of the above cases, the operations and functions of the BSDL parser is the same as described above with reference to the related drawings. Accordingly, the pertinent detailed description will be omitted. However, it may be necessary that the decoder forming unit and/or the decoding solution receive the BSDL schema and/or the bitstream at the first time.
As described above, the decoding device and the method thereof in accordance with the present invention makes it easy to analyze a syntax element and control the connection of the functional units in one standard (or codec) or between different standards (or codecs). In other words, it is possible to change the sequence of syntax elements in the bitstream to be generated according to a certain standard, to insert a new syntax element or to delete the existing syntax elements.
In accordance with the conventional art, the decoder is unable to normally decode a pertinent bitstream when a syntax element is manipulated. For example, if the corresponding bitstream is re-formed and transmitted by changing the sequence of the bitstream information from ABC to ACB, the decoder is not able to recognize the re-formed bitstream. This makes it impossible to normally decode the re-formed bitstream. Similarly, if the bitstream is re-formed as ABFC by newly inserting F or as AC by deleting B, the decoder is also not able to recognize the re-formed bitstream.
However, since using the decoding method and the method thereof in accordance with the present invention can allow the decoder description information to be included in an expanded bitstream or to provide the decoder description information as independent data, the decoder 300 can smoothly perform the decoding operation.
Hitherto, the syntax analyzing method for the bitstream decoding and the decoding device in accordance with the present invention has been described based on the MPEG-4 AVC. However, the present invention can be identically applied to the MPEG-I, MPEG-2, MPEG-4 and other video data encoding / decoding standards without any restriction.
Similarly, it shall be obvious that the information included in the connection control information can be written as not only information related to connection relationships of the functional units for performing the decoding by one standard and information related to the processing operation required for the pertinent functional unit but also information for performing the decoding by a plurality of standards.
For example, it is assumed that a plurality of initial frames of a video bitstream, a plurality of following frames and other frames are encoded in MPEG-2, MPEG-4 and MPEG-I, respectively. In this case, in order to decode an encoded video data, the connection control information is obviously defined such that the functional units conforming to each standard included in the toolbox 2535 can be organically coupled to process each frame encoded by using different encoding methods.
Hereinafter, an embodiment in which the aforementioned BSDL is changed to a binary decoder description (BDD) before being used will be described with reference to the related drawings.
In other words, as described in the present invention, the present invention can additionally have the structure in which the BSDL is changed to the BDD. As such, a plurality of decoder descriptions formed in text such as the BSDL can be changed to the BDD before being used.
It shall be obvious that a decoder description of a binary code for forming a decoder can be efficiently used because the decoder description of the binary code reduces its size by being compressed and each bit code having meanings is used to process information.
FIG. 31 is briefly described below.
A grammar syntax of a bitstream to be used in a codec can be written in a text form. A structural form of a decoder can be written by using a BSDL which is one of various text-based descriptive languages. As such, the BSDL which is one of various text-based descriptive languages can be represented by using a binary decoder description (BDD) language to be compressed and efficiently represented. The binary decoder description (BDD) language represented as a BDD for syntax analysis in order to form a decoder.
As shown in FIG. 32, the BSDL formed by using the XML can be configured to include an encoding code and output data for forming a syntax element, a grammar and a decoder.
FIG. 32 is briefly described below. A syntax of a BSDL formed by using an XML can consist of each syntax element. The syntax of the BSDL formed by using the XML can include the grammar (i.e. syntax rule) that must be processed by a functional unit. The syntax of the BSDL formed by using the XML indicates output data (i.e. CSCI) to be used by a functional unit. The syntax of the BSDL formed by using the XML includes an encoding code (i.e. entropy coding table) that a functional unit refers to.
As shown in FIG. 33, the BSDL, which is a text-based description language, can be changed to the binary form to be represented by using fewer bits.
FIG. 32 is briefly described below. A part of the BSDL formed by using an
XML which must be processed by a decoder functional unit can be represented in a binary code. Each XML part generates a binary code by giving a bit code designated according to the meaning.
Shown below is an example of the conversion of the BSDL formed by using the XML.
<xsd:sequence minOccurs="0" bs2:if="$m4v:video_signal_type = 1">
<xsd:element name="video_format" type="bsl:b3"/> <xsd:element name="video_range" type="bsl :bl "/> <xsd:element name="colour_description" type="bsl :bl " bsθ:variable="true'7>
</xsd : sequence>
In a BSDL content of the XML, a syntax element, which is
"video_signal_type," is designated as Sl 1, and a value pointing to "video_signal_type" is determined as Cl 1, which is a CSCI element.
When a CDDL is processed, a 1 bit part is read and stored in the Cl 1, which is the relative CSCI element. Moreover, the Sl 1 is processed in Rl 1 of SRT according to the processing sequence.
511 video signal type READ 1 > C 11 ;
512 video_format READ 3 > C12;
513 video range READ 1 > C 13; S 14 colour_description READ 1 > C 14;
515 colour_primaries READ 8 > C15;
516 transfer_characteristics READ 8 > C 16;
517 matrix coefficients READ 8 > Cl 7;
Below shown is an example of each corresponding part that is converted to a binary code.
0000000100001010100001011 0000000100010011010100001100 0000000100001010100001101 0000000100001010100001110 0000000100010100010100001111 0000000100010100010100010000 0000000100010100010100010001
Below shown is how the BSDL is converted to the CDDL by using another
XML and then is re-converted to the binary code.
<xsd:sequence minOccurs="0" bs2:if="$m4v:video_signal_type = 1">
<xsd:element name="video_format" type="bsl :b3"/> <xsd:element name="videojrange" type="bsl :bl"/> <xsd:element name="colour_description" type="bs 1 :b 1 " bsθ:variable="true7>
</xsd: sequence>
As shown in the BSDL consisting of the XML, if a value of "ni4v:video_signal_type" is 1, there are lower contents. Otherwise, there is no content.
Expressed in terms of the CDDL, it is checked, after immediately previous step of Rl 1 is processed, whether CI l, which is a CSCI element corresponding to "video_signal_type," is 1 in branch information. If Cl 1 is 1, a corresponding part is branched such that the lower contents can be processed, and if Cl 1 is not 1, it turns to the next step to process the following contents.
The following contents are processed in the same way as described above.
RI l SI l IF (C11==1) GO R12; GO R18; R12 S12 GO R13;
R13 S13 GO R14;
R14 S14 IF (C14==1) GO R15; GO R18;
R15 S15 GO R16;
R16 S16 GO R17; R17 S17 GO R18;
The corresponding part that is converted to the binary code has the following form.
000010110001110110010000101111000000000000000000000000000000011 0010000011000100010010 000011001000001101 000011011000001110
000011100001110110010000101111000000000000000000000000000000011 1110000011111000010010
000011111000010000 000100001000010001 000100011000010010
As described above, the present invention suggests the technology that converts the BSDL to a binary decoder description, thereby being capable of designing a BDD having optimized size, designing a BDD for a non-MPEG codec and making a BDD decoding description for an environment in real time.
Hitherto, the syntax analyzing method for the bitstream decoding and the decoding device in accordance with the present invention has been described based on the MPEG-4 AVC. However, the present invention can be identically applied to the MPEG-I, MPEG-2, MPEG-4 and other video data encoding / decoding standards without any restriction. Similarly, it shall be obvious that the information included in the connection control information can be also written as not only information related to connection relationships of the functional units for performing the decoding by one standard and related to the processing operation required for the pertinent functional unit but also information for performing the decoding by a plurality of standards. For example, it is assumed that a plurality of initial frames of a video bitstream, a plurality of following frames and other frames are encoded in MPEG-2, MPEG-4 and MPEG-I, respectively. In this case, in order to decode an encoded video data, the decoder description information included in the decoder description is obviously defined such that the functional units conforming to each standard included in the toolbox 2535 can be organically coupled to process each frame encoded by using different encoding methods.
Hitherto, although some embodiments of the present invention have been shown and described for the above-described objects, it will be appreciated by any person of ordinary skill in the art that a large number of modifications, permutations and additions are possible within the principles and spirit of the invention, the scope of which shall be defined by the appended claims and their equivalents.
[industrial Applicability]
The present invention is applicable to a video codec.

Claims

[CLAIMS] [Claim 1 ]
A decoding device comprising: a toolbox, configured to include a plurality of functional units which are realized to perform individually each process determined by at least one decoding standard to decode a bitstream; a description storing unit, configured to store partial decoder descriptions for controlling operations of some or all of the functional units; and a decoder forming unit, configured to control an encoded video datum to be decoded as a video datum by selectively loading some of all of the functional units with reference to at least one partial decoder description.
[Claim 2]
The decoding device of Claim 1 , wherein a working memory for allowing a functional unit loaded by a control of the decoder forming unit to perform a process is included in the decoder forming unit or coupled to the decoder forming unit.
[Claim 3]
The decoding device of Claim 2, wherein the decoder forming unit comprises a storing unit, configured to store at least one of a control signal/context information (CSCI) generated by a process performed by at least one functional unit and a datum for a decoding; and a connection control unit, configured to control the functional unit(s) to be selectively loaded.
[Claim 4]
The decoding device of Claim 3, wherein the toolbox comprises at least one parsing functional unit configured to perform a syntax parsing of the bitstream and a plurality of decoding functional units configured to decode the encoded video datum.
[Claim 5]
The decoding device of Claim 1, wherein a partial decoder description being stored in the description storing unit comprises an information related to a hierarchy of functional units, and the decoder forming unit performs a call between hierarchies of at least one functional unit by referring to the information.
[Claim 6]
The decoding device of Claim 5, wherein the decoder forming unit controls an object of an uppermost hierarchy to be generated and executed, and executing the object loads functional units included in the uppermost hierarchy and a calling unit for calling a hierarchy designated by the hierarchy information.
[Claim 7]
The decoding device of Claim 6, wherein, if a datum necessary for at least one functional unit pertaining to a corresponding hierarchy to perform a predetermined process is stored in a storing unit, the calling unit loads the corresponding hierarchy.
[Claim 8]
The decoding device of Claim 7, wherein, if a process-datum for performing a designated process is stored in the storing unit, the loaded functional unit starts to perform a process.
[Claim 9]
The decoding device of Claim 7, wherein a result datum obtained by a process performed by each functional unit is stored in the storing unit.
[Claim 10]
The decoding device of Claim 5, wherein a hierarchy structure being recognized by the information related to a hierarchy comprise at least one of a sequence layer, a picture layer, a slice layer, a macroblock layer and a block layer, and a lower hierarchy is called by an upper hierarchy.
[Claim 11 ]
The decoding device of Claim 1 , wherein an encoded decoder description corresponding to a decoder description for forming the partial decoder description is provided as a datum independent of the bitstream or as an element of an extended bitstream combined with the bitstream.
[Claim 12] The decoding device of Claim 11 , further comprising: a dividing unit configured to divide the extended bitstream into the encoded decoder description and the bitstream.
[Claim 13] The decoding device of Claim 11 or 12, further comprising: a description decoder configured to convert the encoded decoder description to the decoder description.
[Claim 14] The decoding device of Claim 4, wherein a dedicated storing space for each decoding functional unit is allotted in the storing unit.
[Claim 15]
The decoding device of Claim 4, wherein the storing unit comprises a CSCI storing unit, configured to store a control signal/context information
(CSCI) generated by the parsing functional unit; and a data storing unit, configured to store a datum for a decoding, which is at least one of a datum corresponding to the encoded video datum generated by the parsing functional unit and a process-datum processed by the decoding functional unit.
[Claim 16]
The decoding device of Claim 4, wherein the partial decoder description being stored in the description storing unit comprises a decoding hierarchy table (DHT) which indicates an information related to a hierarchy structure for decoding the encoded video datum and lower hierarchies per each hierarchy; a syntax element table (SET) which indicates a process for generating an information related to a bitstream syntax and an element information corresponding to the bitstream syntax; a syntax rule table (S-RT) which indicates names of a connection information between the bitstream syntaxes, an information related to a lower hierarchy to be called per each hierarchy and a CSCI in which a result datum generated by a process performed by the SET is to be stored; a control signal and context information table (CSCIT) which indicates a detailed information related to a CSCI per hierarchy structure; a FU rule table (F-RT) which indicates a called or activated order of a plurality of decoding functional units based on the hierarchy structure; a FU list (FL) which indicates a list of the decoding functional units; and a FU-CSCIT which indicates a CSCI necessary for the decoding functional unit to perform a process.
[Claim 17]
The decoding device of Claim 16, wherein the description storing unit further stores a default value table (DVT), which indicates a relationship between an actual value and a code value in an entropy coding, as a partial decoder description.
[Claim 18]
The decoding device of Claim 16, wherein the connection control unit controls at least one functional unit pertaining to an uppermost hierarchy to be loaded by using the F-RT.
[Claim 19]
The decoding device of Claim 16, wherein the parsing functional unit generates at least one of the CSCI and a datum to be decoded by referring to at least one of the SET, the S-RT and the CSCIT.
[Claim 20]
The decoding device of Claim 16, wherein the decoding functional unit performs a predetermined process by referring to at least one of the FL, the F-RT, the FU-CSCIT and the CSCIT.
[Claim 21 ]
The decoding device of Claim 13, wherein the decoder description comprises at least one distinguishnient area, and an information for forming the partial decoder description is inserted into the distinguishment area(s).
[Claim 22]
The decoding device of Claim 21, wherein the partial decoder description comprises a designated information corresponding to a codec number (codec No.) and a profile and level number (profile and level No.) to decode the bitstream, and the description decoder extracts tables in quantities of n corresponding to the designated information among a plurality of partial decoder descriptions that are pre-stored in the description storing unit.
[Claim 23]
The decoding device of Claim 21, wherein the distinguishment areas in qualities of m, m being a natural number, among the distinguishment areas comprises a designated information corresponding to a codec number (codec No.) and a profile and level number (profile and level No.) of a corresponding partial decoder description, and the distinguishment areas in qualities of k, k being a natural number, comprises a binary code information for forming a corresponding partial decoder description, wherein the description decoder extracts m partial decoder descriptions corresponding to the designated information among the plurality of partial decoder descriptions pre-stored in the description storing unit, generates k tables by using the binary code information and stores the k generated tables in the description storing unit.
[Claim 24]
A decoding method comprising:
(a) generating and storing a decoder description corresponding to an inputted encoded decoder description information, the decoder description being formed to include a plurality of partial decoder descriptions; and
(b) loading a parsing functional unit and at least one decoding functional unit pertaining to an uppermost hierarchy with reference to at least one partial decoder description, wherein the parsing functional unit performs a syntax parsing of a bitstream, and the decoding functional unit(s) of the uppermost hierarchy performs a corresponding process if a control signal/context information (CSCI) for performing a predetermined process and a datum for a decoding is stored at a storing unit by the parsing functional unit, and if the control signal/context information (CSCI) for activating a first hierarchy and the datum for a decoding is stored in the storing unit to correspond a hierarchy structure, the first hierarchy is loaded by an activated second hierarchy.
[Claim 25] The decoding method of Claim 24, wherein the decoding functional unit(s) determines whether to be called or activated corresponding to a hierarchy structure of the encoded video datum, and a video datum corresponding to the bitstream is outputted by a process performed at least one time by each decoding functional unit of the decoder description.
[Claim 26]
The decoding method of Claim 24, wherein the parsing functional unit and the decoding functional unit(s) are realized to independently perform functions suggested by each decoding standard to decode the bitstream.
[Claim 27]
The decoding method of Claim 24, wherein the storing unit comprises a CSCI storing unit, configured to store a CSCI generated by the parsing functional unit; and a data storing unit, configured to store a datum for a decoding, which is at least one of a datum corresponding to the encoded video datum generated by the parsing functional unit and a process-datum processed by a decoding functional unit.
[Claim 28] The decoding method of Claim 27, wherein the decoding functional units start their operations by storing a CSCI necessary to perform a predetermined process and the datum for a decoding in the storing unit.
[Claim 29] The decoding method of Claim 28, wherein a dedicated storing space for each decoding functional unit is allotted in the storing unit.
[Claim 30]
The decoding method of Claim 24, wherein the decoder description comprises a decoding hierarchy table (DHT) which indicates an information related to a hierarchy structure for decoding the encoded video datum included in the bitstream and lower hierarchies per each hierarchy; a syntax element table (SET) which indicates a process for generating an information related to a bitstream syntax and an element information corresponding to the bitstream syntax; a syntax rule table (S-RT) which indicates names of a connection information between the bitstream syntaxes, an information related to a lower hierarchy to be called per each hierarchy and a CSCI in which a result datum generated by a process performed by the SET is to be stored; a control signal and context information table (CSCIT) which indicates a detailed information related to a CSCI per hierarchy structure; a FU rule table (F-RT) which indicates a called or activated order of a plurality of decoding functional units based on the hierarchy structure; a FU list (FL) which indicates a list of the decoding functional units; and a FU-CSCIT which indicates a CSCI necessary for the decoding functional unit to perform a process.
[Claim 31 ]
The decoding method of Claim 24, wherein the decoder description further comprises a partial decoder description, which is a default value table (DVT) indicating the relationship between an actual value and a code value in an entropy coding.
[Claim 32]
The decoding method of Claim 30, wherein at least one functional unit pertaining to an uppermost hierarchy is controlled to be activated or called by using the F-RT.
[Claim 33]
The decoding method of Claim 30, wherein at least one of the CSCI and the datum to be decoded is generated by referring to at least the SET, the S-RT and the CSCIT is generated.
[Claim 34]
A recorded medium tangibly embodying a program of instructions executable by a decoding device to perform a decoding method, the recorded medium being readable by the decoding device, the program comprising:
(a) generating and storing a decoder description corresponding to an inputted encoded decoder description information, the decoder description being formed to include a plurality of partial decoder descriptions; and (b) loading a parsing functional unit and at least one decoding functional unit pertaining to an uppermost hierarchy with reference to at least one partial decoder description, wherein the parsing functional unit performs a syntax parsing of a bitstream, and the decoding functional unit(s) of the uppermost hierarchy performs a corresponding process if a control signal/context information (CSCI) for performing a predetermined process and a datum for a decoding is stored at a storing unit by the parsing functional unit, and if the control signal/context information (CSCI) for activating a first hierarchy and the datum for a decoding is stored in the storing unit to correspond a hierarchy structure, the first hierarchy is loaded by an activated second hierarchy.
[Claim 35]
A decoding device comprising: a parser, configured to receive schema information for analyzing a bitstream and converting the bitstream to a meaningful datum to output the datum; and a decoding solution, configured to output a video datum by performing a bitstream decoding using the datum.
[Claim 36] The decoding device of Claim 35, further comprising: a toolbox configured to include at least one functional unit which is realized to perform a predetermined process; and a decoder forming unit configured to receive a connection control information corresponding to the bitstream, set a connection relationship of at least one functional unit of the toolbox and control the functional unit(s) to be loaded on the decoding solution.
[Claim 37]
The decoding device of Claim 36, wherein the decoder forming unit receives the datum from the parser and provides the received datum to the decoding solution.
[Claim 38]
The decoding device of Claim 36, further comprising: a dividing unit configured to receive a decoder description and divides the received decoder description into the schema information and the connection control information to output the schema information and the connection control information, respectively.
[Claim 39]
The decoding device of Claim 36, wherein the decoding solution comprises a data interface configured to receive the datum and provide the received datum to a corresponding unit or to allow a corresponding functional unit to read the datum.
[Claim 40]
The decoding device of Claim 35, wherein the schema information comprises an information related to details of syntax information included in the bitstream and comprises at least one of a length, a meaning, an appearance condition and a repeated appearance frequency of the syntax information.
[Claim 41 ] The decoding device of Claim 35, wherein the schema information is written by using an XML grammar.
[Claim 42]
The decoding device of Claim 36, wherein the connection control information is written by using a CAL markup language (CALML).
[Claim 43]
The decoding device of Claim 36, wherein the toolbox is formed to include subtoolboxes which are sets of the functional units distinguished according to an applied standard.
[Claim 44]
The decoding device of Claim 36, wherein the decoding solution comprises a working memory configured to allow at least one functional unit to be loaded and operated.
[Claim 45]
The decoding device of Claim 36, wherein the toolbox is an element of the decoder forming unit.
[Claim 46]
The decoding device of Claim 36, wherein a functional unit loaded on the decoding solution performs a predetermined process in which at least one of the datum and an output datum, outputted by a functional unit previously performing the process, is determined as an input datum.
[Claim 47]
A decoding method comprising:
(a) converting a bitstream to a meaningful datum to output the datum by using an inputted schema information;
(b) setting a sequence of successive operations of functional units by using an inputted connection control information; and
(c) allowing a bitstream decoding to be performed by the functional units by using the datum.
[Claim 48]
The decoding method of Claim 47, wherein the (b) is performed by allowing a decoder forming unit to set a sequence of processes to be performed by at least one of a plurality of functional units included in a toolbox by using the connection control information.
[Claim 49]
The decoding method of Claim 47, wherein, if a decoder description in which the schema information and the connection control information are integrated is inputted, dividing the inputted decoder description into the schema information and the connection control information and outputting the schema information and the connection control information, respectively, is performed prior to the (a).
[Claim 50] The decoding method of Claim 47, wherein the schema information is information related to details of a syntax information included in the bitstream and comprises at least one of a length, a meaning, an appearance condition and a repeated appearance frequency of the syntax information.
[Claim 51 ]
The decoding method of Claim 47, wherein the schema information is written by using an XML grammar.
[Claim 52] The decoding method of Claim 47, wherein the connection control information is written by using a CAL markup language (CALML).
[Claim 53]
The decoding method of Claim 48, wherein a functional unit performs a predetermined process in which at least one of the datum and an output datum, outputted by a functional unit previously performing the process, is determined as an input datum.
[Claim 54] A recorded medium tangibly embodying a program of instructions executable by a decoding device to perform a decoding method, the recorded medium being readable by the decoding device, the program comprising:
(a) converting a bitstream to a meaningful datum to output the datum by using an inputted schema information; (b) setting a sequence of successive operations of functional units by using an inputted connection control information; and
(c) allowing a bitstream decoding to be performed by the functional units by using the datum.
PCT/KR2008/003304 2007-06-29 2008-06-12 Device and method for encoding/decoding video data WO2009005226A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020070065879A KR20090002507A (en) 2007-06-29 2007-06-29 Device and method for encoding/decoding video data
KR10-2007-0065879 2007-06-29

Publications (1)

Publication Number Publication Date
WO2009005226A1 true WO2009005226A1 (en) 2009-01-08

Family

ID=40226232

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2008/003304 WO2009005226A1 (en) 2007-06-29 2008-06-12 Device and method for encoding/decoding video data

Country Status (2)

Country Link
KR (1) KR20090002507A (en)
WO (1) WO2009005226A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110913223A (en) * 2018-09-18 2020-03-24 佳能株式会社 Image decompression apparatus, control method thereof, and computer-readable storage medium

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030063676A1 (en) * 2000-04-17 2003-04-03 Pulsent Corporation Decoder for decoding segment-based encoding of video data using segmentation performed at a decoder
US20040193289A1 (en) * 2002-12-31 2004-09-30 Shi Chen Decoding system and method
US20070092008A1 (en) * 2005-10-26 2007-04-26 Chang Nelson Y Context-aware frame memory scheme for motion compensation in video decoding

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030063676A1 (en) * 2000-04-17 2003-04-03 Pulsent Corporation Decoder for decoding segment-based encoding of video data using segmentation performed at a decoder
US20040193289A1 (en) * 2002-12-31 2004-09-30 Shi Chen Decoding system and method
US20070092008A1 (en) * 2005-10-26 2007-04-26 Chang Nelson Y Context-aware frame memory scheme for motion compensation in video decoding

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110913223A (en) * 2018-09-18 2020-03-24 佳能株式会社 Image decompression apparatus, control method thereof, and computer-readable storage medium
CN110913223B (en) * 2018-09-18 2022-12-27 佳能株式会社 Image decompression apparatus, control method thereof, and computer-readable storage medium

Also Published As

Publication number Publication date
KR20090002507A (en) 2009-01-09

Similar Documents

Publication Publication Date Title
US8711946B2 (en) Device and method for unified codes
US8817886B2 (en) Bitstream decoding device having a toolbox with a plurality of functional units distinguishable via identification information and a corresponding method
US8582661B2 (en) Bitstream decoding device having reconfigurable functional units and a corresponding decoding method
KR101439381B1 (en) Device and Method for encoding/decoding
US20100208829A1 (en) Bitstream decoding device and method having decoding solution
WO2009005225A1 (en) Device and method for encoding/decoding video data
WO2008048009A1 (en) Device and method for encoding/decoding bit-stream
KR101380825B1 (en) Bitstream decoding device and method having decoding solution
KR100970145B1 (en) Device and Method for encoding/decoding
US9031136B2 (en) Device and method for encoding/decoding
KR101477218B1 (en) Device and Method for encoding/decoding
WO2009005226A1 (en) Device and method for encoding/decoding video data
US8565320B2 (en) Device and method for encoding/decoding video data
KR20100115238A (en) Device and method for codec design
KR100807100B1 (en) Device and Method for unified codecs
KR101305517B1 (en) Bitstream decoding device and method having decoding solution
KR101305513B1 (en) Device and Method for encoding/decoding Video data
WO2008048010A1 (en) Device and method for encoding/decoding bit-stream
KR20080006430A (en) Device and method for unified codecs
KR101305516B1 (en) Bitstream decoding device and method having decoding solution
WO2008123710A1 (en) Bitstream decoding device and method having decoding solution

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 08766266

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC, EPO FORM 1205A, 20/04/2010

122 Ep: pct application non-entry in european phase

Ref document number: 08766266

Country of ref document: EP

Kind code of ref document: A1