WO2010041903A2 - Decoding apparatus, decoding method, encoding method, and computer-readable storage medium - Google Patents
Decoding apparatus, decoding method, encoding method, and computer-readable storage medium Download PDFInfo
- Publication number
- WO2010041903A2 WO2010041903A2 PCT/KR2009/005798 KR2009005798W WO2010041903A2 WO 2010041903 A2 WO2010041903 A2 WO 2010041903A2 KR 2009005798 W KR2009005798 W KR 2009005798W WO 2010041903 A2 WO2010041903 A2 WO 2010041903A2
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- token
- data
- functional unit
- functional units
- unit
- Prior art date
- Legal status (The legal status 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 status listed.)
- Ceased
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/435—Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/81—Monomedia components thereof
- H04N21/8166—Monomedia components thereof involving executable data, e.g. software
- H04N21/8193—Monomedia components thereof involving executable data, e.g. software dedicated tools, e.g. video decoder software or IPMP tool
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/85—Assembly of content; Generation of multimedia applications
- H04N21/854—Content authoring
- H04N21/8543—Content authoring using a description language, e.g. Multimedia and Hypermedia information coding Expert Group [MHEG], eXtensible Markup Language [XML]
Definitions
- the following disclosure relates to a decoding apparatus and method, and in particular, to a decoding apparatus, decoding method and computer-readable storage medium, which decode signals encoded in various encoding schemes by using one device, and to an encoding method.
- RVC Reconfigurable Video Coding
- RVC prepares a plurality of Functional Units (FUs) that are divided by function of performing each operation in decoding (further, coding), and performs decoding by combining suitable functional units in accordance with each coding scheme.
- FUs Functional Units
- DD Decoding Descriptor
- connection relationships between the functional units are verified, the possibility of connection between the functional units may be known after comparing all data characteristics, for example, the size (or type) of data, serial/parallel transmission schemes and internal algorithms.
- a parser functional unit or a functional unit of transferring a corresponding signal of parsing a encoded bitstream should continuously or periodically transmit necessary data to each of the functional units.
- the parser functional unit should continuously or periodically retransmit data for the widths and heights of pictures, and thus the parser functional unit has an unnecessary load.
- GOP Group Of Picture
- VOP Video Object Plane
- the present disclosure provides an RVC decoding apparatus and method, which enable to simply and clearly define the connection relationships between functional units in an RVC technology, increasing a standardization speed and enabling practical application.
- the present disclosure also provides a decoding apparatus and method, which dynamically reconfigure a decoding logic in run time to be suitable for each of videos that are encoded in various encoding schemes.
- the present disclosure also provides a decoding apparatus and method, which enable simply and clearly to write a decoding descriptor including connection information, and thus increase flexibility for the writing of the decoding descriptor and decrease a degree of difficulty for it, enabling even non-experts to easily implement their encoding/decoding schemes and improving the transmission efficiency of content.
- the present disclosure also provides a decoding apparatus and method, which can verify the connection configuration of the functional units.
- the present disclosure also provides an RVC system, which enables implementation users to implement functional units optimized for their technology characteristics by removing unnecessary restrictions in the implementation of the functional units, enhancing decoding performance.
- the present disclosure also provides a decoding apparatus and method, which newly define functional units and thus increase efficiency for the operation of each of the functional units, improving efficiency for decoding.
- a decoding apparatus includes: a repository storing a plurality of functional units in which an input or output port is defined as a token; and a configuration unit receiving decoder description which includes an identifier of at least one of the functional units and connection relationship information which is composed of the token, selecting pertinent functional units from the repository, and connecting the selected functional units by using the token to configure a variable decoder, wherein the token corresponds to data which are inputted or outputted between the functional units, and is defined as a name or an identifier and the data, and a first functional unit of the functional units has the input port which is defined as a first token and presence of a storage function for a first data corresponding to the first token.
- the first functional unit may store the current first data which is inputted to the input port, and may operate by regarding that the stored first data is continuously or periodically inputted until a next first data is inputted.
- the first functional unit may pre-store a second data as a default value, and may operate by regarding that the second data is continuously or periodically inputted until the first data is inputted.
- the configuration unit may select the branch unit from the repository, and may connect each output port of the branch unit and an input port of each of the second functional units by using the second token.
- a decoding method includes: receiving an encoded bitstream and decoder description which includes an identifier of at least one functional unit and a token corresponding to data which are inputted or outputted between the functional units; selecting functional units corresponding to the identifier of the functional unit from a repository, and connecting the selected functional units by using the token to configure a variable decoder for decoding the encoded bitstream; and decoding the encoded bitstream through the variable decoder, wherein the configuring of a variable decoder includes selecting a first functional unit having an input port which is defined as a first token and presence of a storage function for a first data corresponding to the first token, and connecting the first functional unit with the selected functional unit by using the first token.
- the decoding of the encoded bitstream may include storing, by the first functional unit, the current first data which is inputted to the input port, and operating by regarding that the stored first data is continuously or periodically inputted until a next first data is inputted.
- the decoding of the encoded bitstream may include pre-storing, by the first functional unit, a second data as a default value, and operating by regarding that the second data is continuously or periodically inputted until the first data is inputted.
- the configuring of a variable decoder may further include selecting the branch unit from the repository, and connecting each output port of the branch unit and an input port of each of the second functional units by using the second token.
- an encoding method includes: encoding a bitstream; extracting a functional unit for performing decoding, which corresponds to the encoding, from a functional unit table; setting connection relationship between the extracted functional unit and a functional unit; generating decoder description in which the set connection relationship is described; and merging and transmitting the encoded bitstream and the decoder description, wherein a name or identifier of the functional unit, an input port of the functional unit which is defined as a token and presence of a storage function for data corresponding to the token and an output port which is defined as the token are listed by functional unit in the functional unit table, and the token corresponds to data which are inputted or outputted between the functional units, and is defined as a name or an identifier and the data.
- the setting of connection relationship may include: extracting a token capable of an input or output of the extracted functional unit on the basis of a token pool; checking whether the extracted token is usable in common between two functional units to be connected; and defining connection relationship between the functional units by using names or identifiers of the two functional units to be connected, when the extracted token is usable in common.
- the setting of connection relationship may include: extracting another functional unit for replacing at least one of the two functional units, when the token is not usable in common between two functional units; and checking whether the replaced functional unit and a functional unit to be connected with the replaced functional unit use in common the token, wherein the extracting of another functional unit and the checking of common use of the token are repeated until the token is checked as being usable in common between the two functional units.
- a computer-readable storage medium storing a program which connects a plurality of functional units, which are included to accord a serial or parallel transmission scheme and a size and transfer sequence of data which are transferred between the functional units, to configure a decoder, the program executing: receiving decoder description which comprises an identifier of the functional unit and connection relation information which is composed of a token corresponding to data which are inputted or outputted between the functional units; and selecting functional units corresponding to the identifier, and connecting the selected functional units by using the token to configure the decoder, according to the decoder description, wherein the configuring of the decoder includes selecting a first functional unit having an input port which is defined as a first token and presence of a storage function for a first data corresponding to the first token, and connecting the first functional unit with the selected functional unit by using the first token.
- a decoding apparatus and method according to exemplary embodiments can decode videos encoded in various encoding schemes though one decoding apparatus.
- the decoding apparatus and method according to exemplary embodiments define the connection relationships between functional units by using tokens, define each of the tokens by using only a name (or an identifier) and description, define the functional units through the tokens, and thus can simply and clearly define the connection relationships between the functional units, thereby enabling to develop a decoding apparatus and method to which a practical application-enabled RVC technology. Accordingly, the decoding apparatus and method according to exemplary embodiments can contribute to standardization.
- the decoding apparatus and method according to exemplary embodiments easily enable to write decoder description to derive the quick distribution of an RVC technology and decrease the capacity of the decoder description, improving transmission efficiency in content transmission.
- the decoding apparatus and method according to exemplary embodiments can dynamically reconfigure a reconfiguration decoder corresponding to each encoding video for a short time, and moreover, can concentrate and unify information through tokens, a token pool and an FU table.
- the decoding apparatus and method according to exemplary embodiments can provide verification conditions for all three stages including an encoder level, a decoder level and a standardization level.
- the decoding apparatus and method according to exemplary embodiments can verify connection with the token information of a decoder description when writing the decoder description, in the encoder level.
- the decoding apparatus and method according to exemplary embodiments include token information even in the syntax parser description of the decoder description, enabling a decoder to prepare connection.
- the decoding apparatus and method according to exemplary embodiments can easily verify the connection between functional units when connecting the functional units, in the analysis of decoder description.
- the decoding apparatus and method according to exemplary embodiments can verify the suitability of connection relationship (i.e., connectable network) when defining a new functional unit.
- connection relationship i.e., connectable network
- suitability is best.
- a case of using only the new token may occur. Accordingly, because of avoiding new definition if possible and trying to reuse, technologies are accumulated. Furthermore, a necessary conformance test can be performed in a stage necessary for standardization.
- the decoding apparatus and method according to exemplary embodiments enhance efficiency for the operations of the functional units, improving efficiency for decoding.
- FIG. 1 is a block diagram for describing a decoding apparatus according to an exemplary embodiment.
- FIGS. 2 to 7 are exemplary diagrams for describing functional units.
- FIG. 8 is a flow chart for describing a decoding method according to an exemplary embodiment.
- FIGS. 9 to 11 are exemplary diagrams for describing the operations of functional units.
- FIG. 12 is a conceptual view for describing a decoding apparatus and method according to an exemplary embodiment.
- FIG. 13 is a conceptual view for describing a decoding apparatus and method according to another exemplary embodiment.
- FIG. 14 is a conceptual view for describing a decoding apparatus and method according to another exemplary embodiment.
- encoded/decoded content is exemplified as video, but the kind of content is not limited thereto. It is apparent that various types of multimedia contents such as video and voice may be applied.
- connection relationships betweens functional units in regard to input/output signals or input/output ports does not define the connection relationships as tokens in regard to the flow of signals.
- tokens are defined with only their own names and descriptions corresponding to the minimum basic definition for data signals.
- FIG. 1 is a block diagram for describing a decoding apparatus according to an exemplary embodiment.
- FIGS. 2 to 7 are exemplary diagrams for describing functional units.
- FIG. 8 is a flow chart for describing a decoding method according to an exemplary embodiment.
- a decoding apparatus may include a configuration unit 100 and a repository 200 (for example, a Video Tool Library (VTL)).
- the configuration unit 100 receives Decoder Description (DD) for configuring a decoder 300 that decodes an encoded bitstream in operation S310, and selects at least one functional unit from the repository 200.
- the configuration unit 100 connects the selected functional units to configure the decoder 300 suitable for decoding an encoded signal. Since the decoder 300 has variable characteristic in which it is reconfigured according to the decoder description, it will be referred to as a variable decoder for clearly discriminating with a related art decoder hereinafter.
- the decoder description includes the names of functional units (see FIG. 2) necessary for configuring the variable decoder 300 that decodes an encoded bitstream, and connection information for connecting the functional units.
- a plurality of functional units are stored in the repository 200.
- the decoder description includes Parser Description (PD) being information necessary for configuring a parser functional unit that parses an input bitstream, and FU network description (FND) being connection information necessary for connecting the functional units.
- PD Parser Description
- FND FU network description
- the configuration unit 100 receives the decoder description in operation S310, it generates the parser functional unit on the basis of the parser description in operation S320.
- the configuration unit 100 selects one or more functional units from the repository 200 on the basis of the FND, and connects the selected functional units to configure a decoding logic that is configured with the functional units in operation S330.
- the decoding apparatus 10 configures the variable decoder 300 by using the parser functional unit and the decoding logic to be included in operation S340.
- the decoding apparatus 10 may use content stored in the repository 200 without generating the parser functional unit.
- the parser description may include only the name or identifier of the parser functional unit.
- the present invention may be modified in various forms without departing from the technical subject matters of the present invention, and also the above-described operations S310 to S340 have not been described based on time series limitation.
- the decoding apparatus 10 and method according to an exemplary embodiment configure the variable decoder according to the decoder description that is inputted together with an encoded bitstream even when the input bitstream is encoded in all sorts of encoding schemes, and thus can dynamically a suitable decoder based on a corresponding encoding scheme, thereby decoding signals encoded in various encoding schemes through one device.
- a token denotes a signal (i.e., data) that is transferred between the functional units, and therefore one token may naturally define the connection relationship, including the input/output relationship between two functional units, between the functional units.
- one token may naturally define the connection relationship, including the input/output relationship between two functional units, between the functional units.
- defined are the connection relationships between the functional units that configure the variable decoder 300 by the use of one or more tokens.
- a token according to an exemplary embodiment is defined with only its own name (or identifier) or its own name and identifier, and description that describes only its own characteristic discriminated with other tokens.
- the name of a token may be an abbreviation or a variable length word that enables to instinctively recognize the kind of the token, and an identifier may be a fixed-length number or an abbreviation for easily configuring decoder description.
- a token defines only the most basic characteristic (for example, a bitstream itself and a control signal) of a signal (i.e., data), and does not define the size, transfer sequence and transmission type (for example, serial or parallel transmission) of the signal.
- FIG. 4 illustrates different examples in which each token X is processed in series.
- the first figure of FIG. 4 prefers performing transmission in an abc type.
- the second figure of FIG. 4 prefers performing transmission in a cba type. If data transfer sequence has been defined when defining the token X, cases such as figures should be configured with different tokens, and moreover, since the functional unit A of the former and the functional unit A of the latter represent different outputs, they should be registered as different functional units.
- FIG. 5 illustrates examples in which each token X is processed in series and in parallel.
- the first figure of FIG. 5 transmits data ‘abc’ in series.
- the second figure of FIG. 5 divides the bus of the token X by three and independently transmits data ‘a’ , data ‘b’ and data ‘c’ .
- the first figure may set the input/output of the token X at the size of the data ‘a’
- the second figure may set the input/output of the token X at the size of “a+b+c”.
- FIG. 6 illustrates an example in which the token of a serial concept is processed in parallel at the inside.
- this case corresponds to a case which is improved in a parallel scheme that is proposed and implemented from a serial viewpoint.
- the former is a case that transmits the token X according to the description of an algorithm
- the latter is a case that divides into three tokens to implement parallelism.
- three operations are performed at the inside but they are identically performed when seen from the outside.
- the token pool may be used when writing decoder description and verifying a new functional unit.
- An example of the template of the token pool is as listed in the following Table 1, and an embodiment of the token pool may be as listed in the following Table 2.
- AltScan flag is 0 when zigzag, 1 when alternate scan. It must set every block 6 Ac_pred_dir A flag to communicate the direction of prediction to the IAP block but also info about the scan mode of the block to the inverse scan block.
- the definition of the token is abstracted, and by including only implementation-independent content, it can be prevented that standard content is limited and used to a specific company or a specific industry.
- the functional units are defined through a separate FU table and contents for the functional units are not described in the token pool, thereby concentrating information.
- an identifier may be used in the writing of decoder description or the configuring of a functional unit. While using a token ID, an ID-Name map may be used for again recovering as a name. In this case, a functional such as “IDToName( )/NameToID( )” may be included.
- a functional unit stored in the repository 200 has its own connection information for the configuring and verification of a variable decoder based on decoder description.
- each functional unit has information for the kind of an input/output signal that may be processed by it and information for the number of input/output ports.
- This information may be defined with only tokens. That is, as described above, a token may define the connection relationship between functional units, and naturally, as illustrated in FIG. 2, the input/output port of a functional unit 210 may be defined together.
- the functional unit 210 has two input ports and one output port.
- the functional unit 210 receives and processes signals corresponding tokens TA and TB to output a signal corresponding to a token TC, it may be defined as follows.
- connection information decreases and verification may be performed.
- a functional unit as illustrated in FIG. 7 may exist. That is, the input port of the functional unit in FIG. 7 may be defined as one token TA, and the output port of the functional unit may be defined as one or more tokens TA (for example, FIG. 7 illustrates a case in which the number of output ports is two). That is, the functional unit receives data corresponding to the token TA to output the same data through one or more output ports.
- the functional unit receives data corresponding to the token TA to output the same data through one or more output ports.
- the functional unit is one that provides the same data to a plurality of locations. Even in the functional unit, all input/output ports may be defined as tokens, and the connection relationship between the functional unit and another functional unit may be defined.
- connection information for each functional unit i.e., input/output relationship information
- the configuration unit 100 may quickly configure the variable decoder 300 on the basis of decoder description and may verify whether the connection between the functional units is suitable in configuring. A detailed description associated with this will be made below with reference to FIG. 9.
- the functional unit of another codec may be used. Furthermore, if a new specific codec is defined and only the structure of a token based on it is defined, the suitability of the codec may be verified.
- a conformance test may be made in a codec level. For example, a bitstream is generated by encoding through a self-algorithm, and decoder description suitable for the bitstream is transferred to a decoder.
- the self-algorithm may add some functional units to the existing codec or may be subtracted some functional units from the existing codec. This may be performed at any time when only decoder description is analyzed and the suitability of a token used in it is determined. This characteristic has a meaning that may flexibly meet a new codec to be emerged in the future.
- Functional units may have a case in which signals inputted to the respective input ports of the functional units are sequence-dependent.
- a token T A is a flag
- a token T B is a pixel signal and the functional unit 210 is implemented so that it may receive a token T B to operate after the token T A is first inputted
- connection information for the functional unit 210 includes token precedence information that represents operation characteristic such as “T A >T B ” , and thus definition may be clearly made with only a token even in a case where the operation characteristic of a functional unit is sequence-dependent of an input signal.
- ‘>’ represents precedence between two or more tokens, and is used to denote a case of being relatively first inputted.
- the token precedence of the functional unit may be defined as “T A1 >(T B1 , T B2 )” .
- ‘,’ denotes that tokens T B1 and T B2 should be inputted together at a specific moment.
- token precedence is defined as “T A >(T B1 , T B2* )”
- a separate default value may be designated and clarified on the basis of the default value of a corresponding token. That is, any signal may not be inputted (or outputted) to an input port (or from an output port) that is defined as a token in which ‘*’ is clarified.
- a functional unit may be defined as that in which a default value is designated and thereby the signal of the default value is inputted (or outputted) to an input port (or from an output port), and thus the functional unit may operate according to the definition.
- Grammatical contents representing the token precedence are not limited thereto, and may be further added.
- each functional unit when each functional unit operates according to the sequence of a token that is inputted to an input port, the operation of the functional unit is defined as the sequence of the token, and the sequence of the token is indicated through the name or identifier of the token.
- connection information included in the functional unit may be charted as a functional unit table like the following Table 3.
- the input port and output port of each functional unit and the characteristic of an input/output signal may be simply defined as a token.
- the FU table represents including even token precedence as an example, but it is not limited thereto. The token precedence may not be included.
- Two or more tokens may be inputted to the one input port of a functional unit, and also two or more tokens may be outputted from one output port.
- an operation may be defined as a group “(T D or T E ), (T F or T G or T H )” .
- the input port of a functional unit may be divided into a token and the presence of a storage function for data corresponding to the token and be thereby defined.
- a functional unit table may be charted for the input port of a functional unit like the following Table 4.
- any one of the input ports of the functional unit 210 is defined as a token T A and that in which there is a storage function for a first data corresponding to the token T A .
- Another one of the input ports of the functional unit 210 is defined as a token T B and that in which there is no storage function for a second data corresponding to the token T B .
- the output port of the functional unit 210 is defined as a token T C .
- the functional unit 210 receives the first data corresponding to the token T A and the second data corresponding to the token T B to operate, and outputs a third data corresponding to a token T C . If the tokens T A and T B are defined as having no storage functional, the functional unit 210 may stop operating and wait until before the first data corresponding to the token T A is inputted although the second data corresponding to the token T B is inputted, according to system characteristic (for example, a system in which the flow of data is consumptive).
- system characteristic for example, a system in which the flow of data is consumptive
- the functional unit 210 since one input port is defined as the token TA and having a storage function for the first data, the functional unit 210 stores the first data corresponding to the token T A that is currently inputted to the input port, and operates by regarding that a first data is continuously or periodically inputted until a next first data is inputted. Moreover, since another input port is defined as the token T B and having no storage function for the second data, the functional unit 210 does not store the first data corresponding to the token T A that is inputted to the input port and receives the second data in real time to operate.
- the first data corresponding to the token T A may be data for the width and height of a picture that is provided periodically (for example, per Group Of Picture (GOP) or Video Object Plane (VOP)), and the second data corresponding to the token T B may be data for the motion vector of each macroblock that is continuously provided.
- GOP Group Of Picture
- VOP Video Object Plane
- a parser functional unit retransmits data for the width and height of a picture per macroblock.
- the parser functional unit has unnecessary load in which it should repetitively retransmit the same data for each operation of the functional unit 210.
- the input port of the functional unit 210 is defined as the presence of a storage function for a token and data corresponding to the token, and when the input port of the functional unit 210 has the storage function, the load can decrease.
- the functional unit 210 may stop operating and wait until before the first data corresponding to the token T A is inputted although the second data corresponding to the token T B is inputted, according to system characteristic (for example, a system in which the flow of data is consumptive). Accordingly, the functional unit 210 may pre-store a fourth data as a default value. In this case, the functional unit 210 may regard that the fourth data is inputted to the input port and operate.
- the functional unit 210 stores the first data and may operate by regarding that a first data is being inputted until a next first data is inputted. That is, the input/output port of each functional unit may be defined through a token. For the efficient operation of the each functional unit, the input port of the each functional unit may be defined as a token and the presence of a storage function for data corresponding to the token.
- each functional unit operates like the defined in description, different token inputs may be discriminated.
- a token and the operation of a functional unit will be additionally described below with reference to FIGS. 9 to 11.
- Tokens are identical, which means equivalence. When not equivalence, tokens should be different from one another.
- a mixer 1 FU receives a token T A to again output a token T A .
- the mixer 1 FU may perform image processing such as filtering or add a caption.
- Tokens T A perform certain operations, but the tokens T A are equivalent in regard to input/output data. That is, since the types of input/output data are the same although the contents of the input/output data are different, the tokens T A are equivalent because they do not get out of abstract meanings that are defined.
- a mixer 2 FU receives two tokens T A as inputs to output one token T A . This corresponds to a case in which the mixer 2 FU receives different audios to perform a mixing operation when the token T A has an audio type.
- the audio mixing operation enables to listen window sound, Compact Disk (CD), microphone and line inputs through one speaker, in personal computers (PCs).
- the tokens T A of inputs/outputs are equivalent.
- the mixer 3 FU receives a color key through a token T C input and applies the color key to the input of a token T B to perform transparency processing.
- the input of the token T B is overlaid with the input of the token T A and may be outputted as the type of a token T A .
- the token T A and the token T B perform different functions such as a main and a sub, they are not equivalent.
- the mixer 3 FU defines a token T B as a token T A like the mixer 2 FU, the token T B may be included in the main or the sub when it is connected to the token T A output of the mixer 2 FU. An output different from an output, desired by the mixer 3 FU, may arise.
- the internal operation of a functional unit is not known to the outside, and only characteristic for using the functional unit is known to the outside through a token and token precedence. Considering this characteristic, the mixer 3 FU should define different tokens in locations where different inputs are desired and thereby divide undesired inputs. In other words, the functional unit should perform all functions for token input/output that is clarified by it.
- an FU A has three outputs, which are designated as the type of a token group such as “(T A or T B ), (T A or T C ), (T A or T D )” . Because an FU B, an FU C and an FU D use tokens T A as inputs, when the FU A is connected to the FU B, the FU C and the FU D through the tokens T A , equivalent output is made for all three outputs.
- an FU A is respectively connected to the FU B, the FU C and the FU D through the token T B , the token T C and the token T D .
- the FU A performs different outputs instead of the equivalent output of the token T A , for each output.
- the FU A may perform equivalent output and sometimes perform output by changing a format to another format.
- the FU A may be used.
- the FU A basically outputs RGB, but it may divide RGB into R, G and B to output them according to the FU B, the FU C and the FU D that are connected to it.
- a token is defined with only an identifier and description in a token pool, and consequently, the connection information of a functional unit may be simply defined with only a token as listed in the Table 3 or the Table 4.
- connection information of a plurality of functional units may be recorded in one lookup table, and each functional unit may store its own connection information.
- variable decoder 300 may be quickened and simplified.
- variable decoder when intending to configure the variable decoder in FIG. 9, only the following content is described in the FND of decoder description.
- a DD writer does not care that each functional unit inputs/outputs a signal having a certain size and sequence in which input sequence and in which transmission scheme (for example, serial or parallel transmission), and merely cares the processing function and connection information of the each functional unit.
- a bitstream transmitted from a broadcasting station may not be limited to the product and device of a specific company.
- the same decoder description and a bitstream may be transmitted irrespective of a bitstream that is written based on a serial scheme and a bitstream for a parallel scheme.
- decoder description is written to be limited to a serial scheme or a parallel scheme, it should be differently transmitted depending on cases, and consequently, a case incapable of viewing sometimes may occur in a specific product. Accordingly, only the minimum element should be defined in decoder description, and implementation-dependent characteristic is not reflected in a token that is designated by the decoder description.
- decoder description identically operates in a design-time stage for producing a VTL and a run time that is actually used by a user.
- the configuration unit 100 which analyzes decoder description to configure the variable decoder 300, sequentially selects each functional unit according to the described in decoder description and sets connection between the functional units, thereby configuring the variable decoder 300 in a simple scheme.
- the configuration unit 100 can easily verify whether connection information, described in decoder description, is suitable. For example, when “[FU III - FU V (TC)]” is described in the FND of decoder description, the configuration unit 100 may check whether a token TC is in the output-enabled signal (i.e., a token) of an FU III and the input-enabled signal of an FU V on the basis of the connection information (for example, content described in the Table 2) between the FU III and the FU V to verify whether connection is suitable, appropriately meeting a result of the verification.
- the connection information for example, content described in the Table 2
- the configuration unit 100 checks that the FND of decoder description is wrongly described to output an error message, and may stop configuring the variable decoder 300.
- the configuration unit 100 may include a verification unit (not shown) for this.
- connection information of a functional unit with only a token a functional unit or an FU table itself is easily understood, and by unifying the connection medium between a token pool and functional units with a token name (or an identifier), the disaccord of information is prevented in advance and the efficiency of information concentration is improved. Furthermore, by allowing the repetitive description of a token for a functional unit, a corresponding function may have generic characteristic. Through this, a base that may concentrate at the technical feature of a functional unit and integrate similar functional units can be prepared.
- the implementation of a functional unit is made in one company or one party that shares the reference of FU implementation.
- an FU producer should implement a functional unit while autonomously defining the detailed format of a signal (i.e., data) that is inputted/outputted between functional units to be stored together in one repository, a transmission scheme (for example, serial or parallel transmission), the internal sequence of a signal, connectable functional units and the processing algorithm of each functional unit.
- a transmission scheme for example, serial or parallel transmission
- an FU producer may determine the interface scheme between functional units without being limited by a signal transfer sequence, the classification of the serial/parallel scheme and input/output scheme of a signal and size. For example, since a signal transfer sequence, the classification of the serial/parallel scheme and input/output scheme of a signal and size in a case of configuring a functional unit in hardware may differ from those of a case of configuring a functional unit in software, each FU producer may determine a processing standard and a detailed signal suitable for an FU implementation scheme that is selected by it. Alternatively, each FU producer can make the implementation of a high-performance FU flexible by using its own special know-how.
- the configuration unit 100 connects functional units with the simple identifier of a token, it can be configured with a simple logic.
- connection information of a functional unit is only composed of the identifier of a token
- functional units having the same characteristic may be determined as one FU regardless of an interface scheme other than a token, for example, a data transfer sequence, the classification of a serial/parallel transmission scheme and size for a token.
- a functional unit of performing the same processing function should also be defined in plurality according to a data transfer sequence, the classification of a serial/parallel transmission scheme and size. Moreover, a plurality of functional units for performing the same processing function should be stored in a repository. In an exemplary embodiment, however, since the connection relationships of functional units are defined with only tokens, the connection information of the functional units are simplified and plural numbers are not required in functional units having the same characteristic, preventing the capacity of a repository from unnecessarily increasing.
- a new functional unit when defining a new functional unit is required, by first checking whether a token exists in the token pool of the Table 1, whether a usable token exists in a new functional unit is first determined. When the usable token exists, this means that the new functional unit may be connected to another functional unit, and thus the new functional unit may be immediately used. When the usable token does not exist, a new token is defined with only a name or an identifier and description, and the connection information of the new functional unit may be defined using the defined token and used.
- FIG. 12 is a conceptual view for describing a decoding apparatus and method according to an exemplary embodiment.
- decoder description may include the identifier (for example, a numeral or a name for discriminating functional units) of a functional unit that is used in the variable decoder 300, FU connection-relationship information (i.e., an FND) that is composed of the identifier (for example, a numeral or a name for discriminating tokens) of a token for connecting functional units, and parser description.
- identifier for example, a numeral or a name for discriminating functional units
- FND connection-relationship information
- the configuration unit 100 refers to the parser description included in the decoder description, and when a parser functional unit 205 corresponding to the parser description exists in the repository 200, the configuration unit 100 selects and positions the parser functional unit 205 from the repository 200.
- the parser functional unit 205 parses another encoded bitstream and provides parsed signals to other functional units.
- the parser functional unit 205 parses an encoded bitstream into a control signal for decoding and an encoded video signal to provide the parsed signals to other functional units.
- the functional units 215, 220 and 230 corresponding to the identifiers of functional units are selected from the repository 200 and are positioned.
- the parser functional unit 205 and the functional units 215, 220 and 230 are connected using the identifiers of tokens.
- the configuration unit 100 selects the parser functional unit 205 having output ports that are defined as a token T A and a token T B , from the repository 200 and positions the selected parser functional unit 205 as illustrated in FIG. 12. Furthermore, as illustrated in FIG. 12, the configuration unit 100 positions the FU III 220 having an input port and an output port that are respectively defined as a token T A and a token T B , positions the FU II 215 having an input port and an output port that are respectively defined as a token T B and a token T D , and positions the FU V 230 having input ports that are defined as a token T C and a token T D and an output port that is defined as a token T E . Subsequently, the configuration unit 100 connects the parser functional unit 205 and the functional units 215, 220 and 230 by using each token identifier.
- the configuration unit 100 may verify in advance whether the functional units 215, 220 and 230 may be connected by using the names or identifiers (for example, T A , T B , T C , T D and/or T E ) of tokens.
- the configuration unit 100 since the configuration unit 100 generates decoder description on the basis of the input/output port token information and token precedence information of a functional unit necessary for implementing the variable decoder 300 based on the FU table of FIG. 2 even in an operation of generating the decoder description, it can verify beforehand whether functional units may be connected.
- FIG. 13 is a conceptual view for describing a decoding apparatus and method according to another exemplary embodiment.
- the parser functional unit 205 does not exist in the repository 200.
- the configuration unit 100 generates a parser functional unit 205 by using the parser description of decoder description.
- the configuration unit 100 positions the generated parser functional unit 205, and selects and positions other functional units 215, 220 and 230.
- the configuration unit 100 connects the parser functional unit 205 and the functional units 215, 220 and 230 by using the names or identifiers (for example, T A , T B , T C , T D and/or T E ) of tokens to configure a decoder 300.
- FIG. 14 is a conceptual view for describing a decoding apparatus and method according to another exemplary embodiment.
- a parser functional unit 203 outputs data corresponding to a token T A through one output port, but functional units 250 and 260 receive data corresponding to the token T A .
- the configuration unit 100 selects and positions a branch functional unit 240 (which has been described above with reference to FIG. 7) from the repository 200.
- the configuration unit 100 connects the respective output ports of the branch functional unit 240 with the input port of the functional unit 250 and the input port of the functional unit 260 by using the token T A , thereby configuring a virtual decoder in FIG. 14.
- the parser functional unit 203 can decrease load in which it should periodically or continuously provide data corresponding to the token T A . Consequently, the configuration of the internal logic of the parser functional unit 203 can be simplified, and by decreasing undesired operations, efficient decoding can be performed.
- a functional unit for performing decoding corresponding to the encoding scheme should be extracted from a functional unit table.
- the names or identifiers of functional units, the input port of each functional unit that is defined as a token and the presence of a storage function for data corresponding to the token and an output port that is defined as the token may be listed by functional unit in the functional unit table.
- the decoding apparatus When functional units are selected/extracted, the decoding apparatus sets the connection relationship between the functional units and generates decoder description in which the connection relationship is described. Subsequently, the decoding apparatus may merge and transmit an encoded bitstream and the decoder description.
- the decoding apparatus extracts a token capable of the input or output of the extracted functional unit on the basis of a token pool, checks whether the extracted token may be used in common between two functional units to be connected, and defines the connection relationship between the functional units by using the names or identifiers of two functional units to be connected and the token when the extracted token may be used in common.
- the decoding apparatus extracts another functional unit for replacing at least one of the two functional units, and checks whether the replaced functional unit and a functional unit to be connected with it may use a token in common. In this case, by repeating these operations until it is checked that the token may be used in common between the two functional units, the decoding apparatus can set the suitable connection relationship between functional units.
- the above-described decoding apparatus and method according to exemplary embodiments may be implemented or executed through a program, and the program may be stored in a computer-readable storage medium.
- the invention can also be embodied as computer readable codes on a computer-readable storage medium.
- the computer-readable storage medium is any data storage device that can store data which can be thereafter read by a computer system. Examples of the computer-readable storage medium include ROMs, RAMs, CD-ROMs, DVDs, magnetic tapes, floppy disks, registers, buffers, optical data storage devices, and carrier waves (such as data transmission through the Internet).
- the computer-readable storage medium can also be distributed over network coupled computer systems so that the computer readable codes are stored and executed in a distributed fashion. Also, functional programs, codes, and code segments for accomplishing the present invention can be easily construed by programmers skilled in the art to which the present invention pertains.
- a decoding apparatus and method and an encoding method according to exemplary embodiments may be applied to a Reconfigurable Video Coding (RVC) technology.
- RVC Reconfigurable Video Coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
Provided are a decoding apparatus and method. The decoding apparatus includes a repository and a configuration unit. The repository stores a plurality of functional units in which an input or output port is defined as a token. The configuration unit receives an identifier of at least one of the functional units and decoder description including connection relationship information which is composed of the token, selects pertinent functional units from the repository, and connects the selected functional units by using the token to configure a variable decoder. The token corresponds to data which are inputted or outputted between the functional units, and is defined as a name or an identifier and the data, and a first functional unit of the functional units has the input port which is defined as a first token and presence of a storage function for a first data corresponding to the first token.
Description
The following disclosure relates to a decoding apparatus and method, and in particular, to a decoding apparatus, decoding method and computer-readable storage medium, which decode signals encoded in various encoding schemes by using one device, and to an encoding method.
In Moving Picture Experts Group (MPEG), establishing is begun of the standard for a video coding description framework, called Reconfigurable Video Coding (RVC). RVC is a technology for a codec framework that divides all sorts of video coding and decoding technologies by module and allows the divided technologies to be performed, and is a technology that increases flexibility for the use of a current video coding technology and may be easily applied to video coding technologies that is to be developed in the future.
The basic concept of RVC prepares a plurality of Functional Units (FUs) that are divided by function of performing each operation in decoding (further, coding), and performs decoding by combining suitable functional units in accordance with each coding scheme.
In relation to the functional units and a Decoding Descriptor (DD) defining the connection relationships between these, because a related art standard defines the functional units based on input/output signals (for example, input/output and control-context), it has considerable complexity. As an example, definition is differently made for each functional unit. For example, although specific inputs are basically identical, one functional unit refers to as YUV, but another functional unit refers to as YV12.
Consequently, it is difficult to actually use the functional units and to verify suitability for the connection relationships between these. That is, if the connection relationships between the functional units are verified, the possibility of connection between the functional units may be known after comparing all data characteristics, for example, the size (or type) of data, serial/parallel transmission schemes and internal algorithms.
In addition to the function or operation of the functional unit, the sizes or sequences of input/output signals are clarified. In this way, as implementation-dependent contents are included, it is difficult to analyze standard documents, and quantity increases.
In defining the functional units, moreover, many limitations exist in the related art. According to the definition of the functional unit using the related art, for example, in a case where the functional unit normally operates when continuously or periodically receiving data (for example, when receiving data per macroblock (MB) or block), a parser functional unit (or a functional unit of transferring a corresponding signal) of parsing a encoded bitstream should continuously or periodically transmit necessary data to each of the functional units. Even when transmission data are periodically transmitted (for example, transmitted per Group Of Picture (GOP) or Video Object Plane (VOP)) like the widths and heights of pictures or data are not largely changed with time, the parser functional unit should continuously or periodically retransmit data for the widths and heights of pictures, and thus the parser functional unit has an unnecessary load.
Accordingly, the present disclosure provides an RVC decoding apparatus and method, which enable to simply and clearly define the connection relationships between functional units in an RVC technology, increasing a standardization speed and enabling practical application.
The present disclosure also provides a decoding apparatus and method, which dynamically reconfigure a decoding logic in run time to be suitable for each of videos that are encoded in various encoding schemes.
The present disclosure also provides a decoding apparatus and method, which enable simply and clearly to write a decoding descriptor including connection information, and thus increase flexibility for the writing of the decoding descriptor and decrease a degree of difficulty for it, enabling even non-experts to easily implement their encoding/decoding schemes and improving the transmission efficiency of content.
The present disclosure also provides a decoding apparatus and method, which can verify the connection configuration of the functional units.
The present disclosure also provides an RVC system, which enables implementation users to implement functional units optimized for their technology characteristics by removing unnecessary restrictions in the implementation of the functional units, enhancing decoding performance.
The present disclosure also provides a decoding apparatus and method, which newly define functional units and thus increase efficiency for the operation of each of the functional units, improving efficiency for decoding.
The objects of the present invention are not limited to the above-described object, and the objects and advantages of the present invention other than the above-described object can be understood by description below and will be more apparent with reference to the embodiments of the present invention.
In one general aspect, a decoding apparatus includes: a repository storing a plurality of functional units in which an input or output port is defined as a token; and a configuration unit receiving decoder description which includes an identifier of at least one of the functional units and connection relationship information which is composed of the token, selecting pertinent functional units from the repository, and connecting the selected functional units by using the token to configure a variable decoder, wherein the token corresponds to data which are inputted or outputted between the functional units, and is defined as a name or an identifier and the data, and a first functional unit of the functional units has the input port which is defined as a first token and presence of a storage function for a first data corresponding to the first token.
The first functional unit may store the current first data which is inputted to the input port, and may operate by regarding that the stored first data is continuously or periodically inputted until a next first data is inputted.
The first functional unit may pre-store a second data as a default value, and may operate by regarding that the second data is continuously or periodically inputted until the first data is inputted.
When a branch unit having an input port which is defined as a second token and at least two output ports which are defined as the second token are stored in the repository, and two or more second functional units in which an input port is defined as the second token are used to configure the variable decoder, the configuration unit may select the branch unit from the repository, and may connect each output port of the branch unit and an input port of each of the second functional units by using the second token.
In another general aspect, a decoding method includes: receiving an encoded bitstream and decoder description which includes an identifier of at least one functional unit and a token corresponding to data which are inputted or outputted between the functional units; selecting functional units corresponding to the identifier of the functional unit from a repository, and connecting the selected functional units by using the token to configure a variable decoder for decoding the encoded bitstream; and decoding the encoded bitstream through the variable decoder, wherein the configuring of a variable decoder includes selecting a first functional unit having an input port which is defined as a first token and presence of a storage function for a first data corresponding to the first token, and connecting the first functional unit with the selected functional unit by using the first token.
The decoding of the encoded bitstream may include storing, by the first functional unit, the current first data which is inputted to the input port, and operating by regarding that the stored first data is continuously or periodically inputted until a next first data is inputted.
The decoding of the encoded bitstream may include pre-storing, by the first functional unit, a second data as a default value, and operating by regarding that the second data is continuously or periodically inputted until the first data is inputted.
When a branch unit having an input port which is defined as a second token and at least two output ports which are defined as the second token are stored in the repository, and two or more second functional units in which an input port is defined as the second token are used to configure the variable decoder, the configuring of a variable decoder may further include selecting the branch unit from the repository, and connecting each output port of the branch unit and an input port of each of the second functional units by using the second token.
In another general aspect, an encoding method includes: encoding a bitstream; extracting a functional unit for performing decoding, which corresponds to the encoding, from a functional unit table; setting connection relationship between the extracted functional unit and a functional unit; generating decoder description in which the set connection relationship is described; and merging and transmitting the encoded bitstream and the decoder description, wherein a name or identifier of the functional unit, an input port of the functional unit which is defined as a token and presence of a storage function for data corresponding to the token and an output port which is defined as the token are listed by functional unit in the functional unit table, and the token corresponds to data which are inputted or outputted between the functional units, and is defined as a name or an identifier and the data.
The setting of connection relationship may include: extracting a token capable of an input or output of the extracted functional unit on the basis of a token pool; checking whether the extracted token is usable in common between two functional units to be connected; and defining connection relationship between the functional units by using names or identifiers of the two functional units to be connected, when the extracted token is usable in common.
The setting of connection relationship may include: extracting another functional unit for replacing at least one of the two functional units, when the token is not usable in common between two functional units; and checking whether the replaced functional unit and a functional unit to be connected with the replaced functional unit use in common the token, wherein the extracting of another functional unit and the checking of common use of the token are repeated until the token is checked as being usable in common between the two functional units.
In another general aspect, a computer-readable storage medium storing a program which connects a plurality of functional units, which are included to accord a serial or parallel transmission scheme and a size and transfer sequence of data which are transferred between the functional units, to configure a decoder, the program executing: receiving decoder description which comprises an identifier of the functional unit and connection relation information which is composed of a token corresponding to data which are inputted or outputted between the functional units; and selecting functional units corresponding to the identifier, and connecting the selected functional units by using the token to configure the decoder, according to the decoder description, wherein the configuring of the decoder includes selecting a first functional unit having an input port which is defined as a first token and presence of a storage function for a first data corresponding to the first token, and connecting the first functional unit with the selected functional unit by using the first token.
Other features and aspects will be apparent from the following detailed description, the drawings, and the claims.
A decoding apparatus and method according to exemplary embodiments can decode videos encoded in various encoding schemes though one decoding apparatus.
The decoding apparatus and method according to exemplary embodiments define the connection relationships between functional units by using tokens, define each of the tokens by using only a name (or an identifier) and description, define the functional units through the tokens, and thus can simply and clearly define the connection relationships between the functional units, thereby enabling to develop a decoding apparatus and method to which a practical application-enabled RVC technology. Accordingly, the decoding apparatus and method according to exemplary embodiments can contribute to standardization.
The decoding apparatus and method according to exemplary embodiments easily enable to write decoder description to derive the quick distribution of an RVC technology and decrease the capacity of the decoder description, improving transmission efficiency in content transmission.
The decoding apparatus and method according to exemplary embodiments can dynamically reconfigure a reconfiguration decoder corresponding to each encoding video for a short time, and moreover, can concentrate and unify information through tokens, a token pool and an FU table.
The decoding apparatus and method according to exemplary embodiments can provide verification conditions for all three stages including an encoder level, a decoder level and a standardization level. First, the decoding apparatus and method according to exemplary embodiments can verify connection with the token information of a decoder description when writing the decoder description, in the encoder level. Moreover, the decoding apparatus and method according to exemplary embodiments include token information even in the syntax parser description of the decoder description, enabling a decoder to prepare connection.
In the decoder level, the decoding apparatus and method according to exemplary embodiments can easily verify the connection between functional units when connecting the functional units, in the analysis of decoder description.
In the standardization level, the decoding apparatus and method according to exemplary embodiments can verify the suitability of connection relationship (i.e., connectable network) when defining a new functional unit. When connection is made with only the token of a token pool, suitability is best. When defining a new token, a case of using only the new token may occur. Accordingly, because of avoiding new definition if possible and trying to reuse, technologies are accumulated. Furthermore, a necessary conformance test can be performed in a stage necessary for standardization.
As a result, the decoding apparatus and method according to exemplary embodiments enhance efficiency for the operations of the functional units, improving efficiency for decoding.
FIG. 1 is a block diagram for describing a decoding apparatus according to an exemplary embodiment.
FIGS. 2 to 7 are exemplary diagrams for describing functional units.
FIG. 8 is a flow chart for describing a decoding method according to an exemplary embodiment.
FIGS. 9 to 11 are exemplary diagrams for describing the operations of functional units.
FIG. 12 is a conceptual view for describing a decoding apparatus and method according to an exemplary embodiment.
FIG. 13 is a conceptual view for describing a decoding apparatus and method according to another exemplary embodiment.
FIG. 14 is a conceptual view for describing a decoding apparatus and method according to another exemplary embodiment.
Hereinafter, exemplary embodiments will be described in detail with reference to the accompanying drawings. Throughout the drawings and the detailed description, unless otherwise described, the same drawing reference numerals will be understood to refer to the same elements, features, and structures. The relative size and depiction of these elements may be exaggerated for clarity, illustration, and convenience. The following detailed description is provided to assist the reader in gaining a comprehensive understanding of the methods, apparatuses, and/or systems described herein. Accordingly, various changes, modifications, and equivalents of the methods, apparatuses, and/or systems described herein will be suggested to those of ordinary skill in the art. Also, descriptions of well-known functions and constructions may be omitted for increased clarity and conciseness.
In specification, encoded/decoded content is exemplified as video, but the kind of content is not limited thereto. It is apparent that various types of multimedia contents such as video and voice may be applied.
The basic technical spirit of the present invention does not define the connection relationships betweens functional units in regard to input/output signals or input/output ports but defines the connection relationships as tokens in regard to the flow of signals.
Moreover, tokens are defined with only their own names and descriptions corresponding to the minimum basic definition for data signals.
Hereinafter, a decoding apparatus and method according to an exemplary embodiment will be described below with reference to FIGS. 1 to 8. FIG. 1 is a block diagram for describing a decoding apparatus according to an exemplary embodiment. FIGS. 2 to 7 are exemplary diagrams for describing functional units. FIG. 8 is a flow chart for describing a decoding method according to an exemplary embodiment.
Referring to FIGS. 1 to 8, a decoding apparatus according to an exemplary embodiment may include a configuration unit 100 and a repository 200 (for example, a Video Tool Library (VTL)). The configuration unit 100 receives Decoder Description (DD) for configuring a decoder 300 that decodes an encoded bitstream in operation S310, and selects at least one functional unit from the repository 200. The configuration unit 100 connects the selected functional units to configure the decoder 300 suitable for decoding an encoded signal. Since the decoder 300 has variable characteristic in which it is reconfigured according to the decoder description, it will be referred to as a variable decoder for clearly discriminating with a related art decoder hereinafter.
The decoder description includes the names of functional units (see FIG. 2) necessary for configuring the variable decoder 300 that decodes an encoded bitstream, and connection information for connecting the functional units. A plurality of functional units are stored in the repository 200.
The following description will be made with reference to FIG. 8 on an operation in which the configuration unit 100 configures the variable decoder 300.
The decoder description includes Parser Description (PD) being information necessary for configuring a parser functional unit that parses an input bitstream, and FU network description (FND) being connection information necessary for connecting the functional units. When the configuration unit 100 receives the decoder description in operation S310, it generates the parser functional unit on the basis of the parser description in operation S320. The configuration unit 100 selects one or more functional units from the repository 200 on the basis of the FND, and connects the selected functional units to configure a decoding logic that is configured with the functional units in operation S330.
The decoding apparatus 10 configures the variable decoder 300 by using the parser functional unit and the decoding logic to be included in operation S340.
In configuring the variable decoder 300, unlike the above described, the decoding apparatus 10 may use content stored in the repository 200 without generating the parser functional unit. In this case, the parser description may include only the name or identifier of the parser functional unit.
As described above, in configuring the variable decoder, the present invention may be modified in various forms without departing from the technical subject matters of the present invention, and also the above-described operations S310 to S340 have not been described based on time series limitation.
The decoding apparatus 10 and method according to an exemplary embodiment configure the variable decoder according to the decoder description that is inputted together with an encoded bitstream even when the input bitstream is encoded in all sorts of encoding schemes, and thus can dynamically a suitable decoder based on a corresponding encoding scheme, thereby decoding signals encoded in various encoding schemes through one device.
Hereinafter, functional units and tokens will be described in more detail.
First, a token denotes a signal (i.e., data) that is transferred between the functional units, and therefore one token may naturally define the connection relationship, including the input/output relationship between two functional units, between the functional units. In an exemplary embodiment, defined are the connection relationships between the functional units that configure the variable decoder 300 by the use of one or more tokens.
A token according to an exemplary embodiment is defined with only its own name (or identifier) or its own name and identifier, and description that describes only its own characteristic discriminated with other tokens.
In an exemplary embodiment, the name of a token may be an abbreviation or a variable length word that enables to instinctively recognize the kind of the token, and an identifier may be a fixed-length number or an abbreviation for easily configuring decoder description.
Moreover, the description of a token defines only the most basic characteristic (for example, a bitstream itself and a control signal) of a signal (i.e., data), and does not define the size, transfer sequence and transmission type (for example, serial or parallel transmission) of the signal.
The functional unit and the token will be described in more detail with reference to FIGS. 3 to 6.
When two tokens are connected to a token X as illustrated in FIG. 3, largely three cases will be described below according to the intent of implementation.
First, FIG. 4 illustrates different examples in which each token X is processed in series. The first figure of FIG. 4 prefers performing transmission in an abc type. The second figure of FIG. 4 prefers performing transmission in a cba type. If data transfer sequence has been defined when defining the token X, cases such as figures should be configured with different tokens, and moreover, since the functional unit A of the former and the functional unit A of the latter represent different outputs, they should be registered as different functional units.
FIG. 5 illustrates examples in which each token X is processed in series and in parallel. The first figure of FIG. 5 transmits data ‘abc’ in series. The second figure of FIG. 5 divides the bus of the token X by three and independently transmits data ‘a’ , data ‘b’ and data ‘c’ . In this case, the first figure may set the input/output of the token X at the size of the data ‘a’, and the second figure may set the input/output of the token X at the size of “a+b+c”. If size has been defined when defining the token X, cases such as figures should be configured with different tokens, and moreover, since the functional unit A of the former and the functional unit A of the latter represent different outputs, they should be registered as different functional units. However, like the above-described example, this also makes the description of standard documents complex, and moreover, may enforce a specific scheme to an implementation user.
Next, FIG. 6 illustrates an example in which the token of a serial concept is processed in parallel at the inside. When configuring an algorithm, this case corresponds to a case which is improved in a parallel scheme that is proposed and implemented from a serial viewpoint. The former is a case that transmits the token X according to the description of an algorithm, and the latter is a case that divides into three tokens to implement parallelism. In the latter, however, in a case of internally defining as “X=Xa+Xb+Xc”, i.e., a case having definition in which the token X is processed to be configured with ‘Xa’, ‘Xb’ and ‘Xc’ in parallel, three operations are performed at the inside but they are identically performed when seen from the outside. If parallelism has been defined when defining the token X in the standard, cases such as figures should be configured with different tokens, and moreover, since the functional unit A of the former and the functional unit A of the latter represent different outputs, they should be registered as different functional units. However, like the above-described example, this also makes the description of standard documents complex, and moreover, may enforce a specific scheme to an implementation user.
In FIG. 6, when “X=Xa+Xb+Xc” is defined as a internal regulation, because input/output results are the same, there is no need that defines this case in detail while additionally defining a functional unit in the standard.
By gathering the names (or an identifiers, or names and identifiers) and descriptions of the tokens to configure a token pool, the token pool may be used when writing decoder description and verifying a new functional unit. An example of the template of the token pool is as listed in the following Table 1, and an embodiment of the token pool may be as listed in the following Table 2.
Table 1 Template of Description of Token Pool
| ID | NAME | DESCRIPTION |
| Unique numerical number which represent this Token in this row | Unique name to represent this Token in this row | Some text to describe characteristics or functionality of this Token in this row |
Table 2 Token Pool
| | NAME | DESCRIPTION | |
| 1 | CBP | An array of 6 Boolean values for describing whether the individual block includes one or more DCT coefficientsthat are decoded as (LAST, RUN, LEVEL) | |
| 2 | Quant_scale | a 5-bit integer value for describing the quantization step in the current MB, which is derived from the running QP and dQuant to calculate QP and determine dc_scaler for current MB by referring to Table 7-1 (14496-2:2004) | |
| 3 | Dquant_scale | a 2-bit code which specifies the change in the quantiser scale, for I-, P-, and S(GMC)-VOPsdquant codes and corresponding values: (ISO/IEC 14496-2 Table 6-32)dquant_scale = 00 →value= -1dquant_scale = 01 →value= -2dquant_scale = 10 →value= 1dquant_scale = 11 →value= 2 | |
| 4 | AC_pred_flag | to determine the direction of inverse DC prediction | |
| 5 | AltScan | Indicates zigzag or alternate scan. AltScan flag is 0 when zigzag, 1 when alternate scan. It must set every block | |
| 6 | Ac_pred_dir | A flag to communicate the direction of prediction to the IAP block but also info about the scan mode of the block to the inverse scan block. AC_PRED_DIR = -2 => NEWVOP flag. AC_PRED_DIR = -1 => An uncoded block so skip inverse AC prediction. AC_PRED_DIR = 0 => No inverse AC prediction but use zig zag inverse scan. AC_PRED_DIR = 1 => Prediction form the left and use alternate vertical scan. AC_PRED_DIR = 2 => Prediction form the top and use alternate horizontal scan. | |
| 7 | RefMB | A buffer of MB data to have a relation with | |
| 8 | MB | A MB buffer to save a target MB data | |
| 9 | MB_type | Indicate the type of | |
| 10 | Qp | Quantization parameter of an MB which is calculated in fuDCR. | |
| 11 | DC_left | to compute the direction of DC/AC prediction for 6 (4 Y/1 Cb/1 Cr) block(s) | |
| 12 | DC_top | ||
| 13 | DC_lefttop |
In this way, by defining tokens with only their own names (or identifiers, or names and identifiers) and descriptions, the definition of the token is abstracted, and by including only implementation-independent content, it can be prevented that standard content is limited and used to a specific company or a specific industry. Furthermore, for functional units, the functional units are defined through a separate FU table and contents for the functional units are not described in the token pool, thereby concentrating information.
By describing a token identifier (ID) instead of a token name or both the token ID and the token name in the token pool, an identifier may be used in the writing of decoder description or the configuring of a functional unit. While using a token ID, an ID-Name map may be used for again recovering as a name. In this case, a functional such as “IDToName( )/NameToID( )” may be included.
A functional unit stored in the repository 200 has its own connection information for the configuring and verification of a variable decoder based on decoder description.
That is, each functional unit has information for the kind of an input/output signal that may be processed by it and information for the number of input/output ports. This information may be defined with only tokens. That is, as described above, a token may define the connection relationship between functional units, and naturally, as illustrated in FIG. 2, the input/output port of a functional unit 210 may be defined together.
To provide a description through an example with reference to FIG. 2 and the Table 1, the functional unit 210 has two input ports and one output port. When the functional unit 210 receives and processes signals corresponding tokens TA and TB to output a signal corresponding to a token TC, it may be defined as follows.
FU I
Input : TA, TB
Output : TC
That is, by defining the input/output relationship between functional units from a data viewpoint instead of an interface viewpoint, the complexity of connection information decreases and verification may be performed.
A functional unit as illustrated in FIG. 7 may exist. That is, the input port of the functional unit in FIG. 7 may be defined as one token TA, and the output port of the functional unit may be defined as one or more tokens TA (for example, FIG. 7 illustrates a case in which the number of output ports is two). That is, the functional unit receives data corresponding to the token TA to output the same data through one or more output ports. When the flow of data is consumptive (i.e., a case in which data are consumed when they are provided from any one branch point to any one location and are not provided to another location), the functional unit is one that provides the same data to a plurality of locations. Even in the functional unit, all input/output ports may be defined as tokens, and the connection relationship between the functional unit and another functional unit may be defined.
By configuring connection information for each functional unit (i.e., input/output relationship information) with only a token, the configuration unit 100 may quickly configure the variable decoder 300 on the basis of decoder description and may verify whether the connection between the functional units is suitable in configuring. A detailed description associated with this will be made below with reference to FIG. 9.
Since the possibility of connection between a specific functional unit and another functional unit may be verified beforehand owing to the definition of a token, the functional unit of another codec may be used. Furthermore, if a new specific codec is defined and only the structure of a token based on it is defined, the suitability of the codec may be verified. A conformance test may be made in a codec level. For example, a bitstream is generated by encoding through a self-algorithm, and decoder description suitable for the bitstream is transferred to a decoder. The self-algorithm may add some functional units to the existing codec or may be subtracted some functional units from the existing codec. This may be performed at any time when only decoder description is analyzed and the suitability of a token used in it is determined. This characteristic has a meaning that may flexibly meet a new codec to be emerged in the future.
Functional units may have a case in which signals inputted to the respective input ports of the functional units are sequence-dependent. For example, when a token TA is a flag, a token TB is a pixel signal and the functional unit 210 is implemented so that it may receive a token TB to operate after the token TA is first inputted, connection information for the functional unit 210 includes token precedence information that represents operation characteristic such as “TA>TB” , and thus definition may be clearly made with only a token even in a case where the operation characteristic of a functional unit is sequence-dependent of an input signal. Herein, ‘>’ represents precedence between two or more tokens, and is used to denote a case of being relatively first inputted. To provide a description through another example, when a functional unit is implemented so that it may receive tokens TB1 and TB2 to operate after token TA is first inputted, the token precedence of the functional unit may be defined as “TA1>(TB1, TB2)” . Herein, ‘,’ denotes that tokens TB1 and TB2 should be inputted together at a specific moment.
To provide a description though another example, when token precedence is defined as “TA>(TB1, TB2*)” , this means that a token TA should be inputted before tokens TB1 and TB2 but the token TB2 may not be inputted. That is, ‘*’ denotes not being used or connected depending on cases. When not being used or connected depending on cases, a separate default value may be designated and clarified on the basis of the default value of a corresponding token. That is, any signal may not be inputted (or outputted) to an input port (or from an output port) that is defined as a token in which ‘*’ is clarified. Although this case, depending on cases, a functional unit may be defined as that in which a default value is designated and thereby the signal of the default value is inputted (or outputted) to an input port (or from an output port), and thus the functional unit may operate according to the definition.
Grammatical contents representing the token precedence are not limited thereto, and may be further added.
In other words, when each functional unit operates according to the sequence of a token that is inputted to an input port, the operation of the functional unit is defined as the sequence of the token, and the sequence of the token is indicated through the name or identifier of the token.
The above-described description on the connection information included in the functional unit may be charted as a functional unit table like the following Table 3.
Table 3 Function Unit Table
| Number | Name | Description | ||
| Input | | Token Precedence | ||
| 1 | FU I | TA | TC | TA > |
| T | ||||
| B | ||||
| 2 | FU Ⅱ | TC | TD | |
| TE | ||||
| ... | ... | ... | ... | ... |
| 10 | FU Ⅹ | TD or TE | TF or TG or TH | |
| ... | ... | ... | ... | ... |
As listed in the Table 3, the input port and output port of each functional unit and the characteristic of an input/output signal (i.e., data) may be simply defined as a token. Herein, the FU table represents including even token precedence as an example, but it is not limited thereto. The token precedence may not be included.
Two or more tokens may be inputted to the one input port of a functional unit, and also two or more tokens may be outputted from one output port. In this case, like the description of the FU X described in the Table 2, an operation may be defined as a group “(TD or TE), (TF or TG or TH)” .
By adding to the Table 3, the input port of a functional unit may be divided into a token and the presence of a storage function for data corresponding to the token and be thereby defined. In this case, a functional unit table may be charted for the input port of a functional unit like the following Table 4.
Table 4 Function Unit Table
| Number | Name | Description | ||
| Input | Output | |||
| With memory | Without | |||
| 1 | FU I | TA(Default) | TB | TC |
To provide a more detailed description with reference to FIG. 2, any one of the input ports of the functional unit 210 is defined as a token TA and that in which there is a storage function for a first data corresponding to the token TA. Another one of the input ports of the functional unit 210 is defined as a token TB and that in which there is no storage function for a second data corresponding to the token TB. The output port of the functional unit 210 is defined as a token TC.
To provide a description on the operation of the defined functional unit 210, the functional unit 210 receives the first data corresponding to the token TA and the second data corresponding to the token TB to operate, and outputs a third data corresponding to a token TC. If the tokens TA and TB are defined as having no storage functional, the functional unit 210 may stop operating and wait until before the first data corresponding to the token TA is inputted although the second data corresponding to the token TB is inputted, according to system characteristic (for example, a system in which the flow of data is consumptive). According to the Table 4, on the other hand, since one input port is defined as the token TA and having a storage function for the first data, the functional unit 210 stores the first data corresponding to the token TA that is currently inputted to the input port, and operates by regarding that a first data is continuously or periodically inputted until a next first data is inputted. Moreover, since another input port is defined as the token TB and having no storage function for the second data, the functional unit 210 does not store the first data corresponding to the token TA that is inputted to the input port and receives the second data in real time to operate.
To provide a detailed description though an example, the first data corresponding to the token TA may be data for the width and height of a picture that is provided periodically (for example, per Group Of Picture (GOP) or Video Object Plane (VOP)), and the second data corresponding to the token TB may be data for the motion vector of each macroblock that is continuously provided.
If the functional unit 210 does not store the first data corresponding to the token TA, a parser functional unit retransmits data for the width and height of a picture per macroblock. When the data for the width and height of the picture are not almost changed, the parser functional unit has unnecessary load in which it should repetitively retransmit the same data for each operation of the functional unit 210. Accordingly, the input port of the functional unit 210 is defined as the presence of a storage function for a token and data corresponding to the token, and when the input port of the functional unit 210 has the storage function, the load can decrease.
When the first data corresponding to the token TA is inputted to an input port having a storage function, since the functional unit 210 stores the first data, the first data may not yet be inputted. The functional unit 210 may stop operating and wait until before the first data corresponding to the token TA is inputted although the second data corresponding to the token TB is inputted, according to system characteristic (for example, a system in which the flow of data is consumptive). Accordingly, the functional unit 210 may pre-store a fourth data as a default value. In this case, the functional unit 210 may regard that the fourth data is inputted to the input port and operate. Furthermore, when the first data is inputted, the functional unit 210 stores the first data and may operate by regarding that a first data is being inputted until a next first data is inputted. That is, the input/output port of each functional unit may be defined through a token. For the efficient operation of the each functional unit, the input port of the each functional unit may be defined as a token and the presence of a storage function for data corresponding to the token.
As described above, since the each functional unit operates like the defined in description, different token inputs may be discriminated. A token and the operation of a functional unit will be additionally described below with reference to FIGS. 9 to 11.
Tokens are identical, which means equivalence. When not equivalence, tokens should be different from one another.
In FIG. 9, a mixer 1 FU receives a token TA to again output a token TA. When the token TA is a video input, the mixer 1 FU may perform image processing such as filtering or add a caption. Tokens TA perform certain operations, but the tokens TA are equivalent in regard to input/output data. That is, since the types of input/output data are the same although the contents of the input/output data are different, the tokens TA are equivalent because they do not get out of abstract meanings that are defined. A mixer 2 FU receives two tokens TA as inputs to output one token TA. This corresponds to a case in which the mixer 2 FU receives different audios to perform a mixing operation when the token TA has an audio type. The audio mixing operation enables to listen window sound, Compact Disk (CD), microphone and line inputs through one speaker, in personal computers (PCs). In this case, it is apparent that the tokens TA of inputs/outputs are equivalent. On the other hand, in a case where video is applied to a mixer 3 FU as an example, the mixer 3 FU receives a color key through a token TC input and applies the color key to the input of a token TB to perform transparency processing. In this case, the input of the token TB is overlaid with the input of the token TA and may be outputted as the type of a token TA. Herein, since the token TA and the token TB perform different functions such as a main and a sub, they are not equivalent. If the mixer 3 FU defines a token TB as a token TA like the mixer 2 FU, the token TB may be included in the main or the sub when it is connected to the token TA output of the mixer 2 FU. An output different from an output, desired by the mixer 3 FU, may arise.
The internal operation of a functional unit is not known to the outside, and only characteristic for using the functional unit is known to the outside through a token and token precedence. Considering this characteristic, the mixer 3 FU should define different tokens in locations where different inputs are desired and thereby divide undesired inputs. In other words, the functional unit should perform all functions for token input/output that is clarified by it.
Referring to FIG. 10, an FU A has three outputs, which are designated as the type of a token group such as “(TA or TB), (TA or TC), (TA or TD)” . Because an FU B, an FU C and an FU D use tokens TA as inputs, when the FU A is connected to the FU B, the FU C and the FU D through the tokens TA, equivalent output is made for all three outputs.
Referring to FIG. 11, unlike FIG. 10, because an FU B, an FU C and an FU D respectively use a token TB, a token TC and a token TD, an FU A is respectively connected to the FU B, the FU C and the FU D through the token TB, the token TC and the token TD. As described above, because each functional unit should perform all functions for token input/output that is clarified by it, the FU A performs different outputs instead of the equivalent output of the token TA, for each output. In other words, although the inside of the FU A is not known, the FU A may perform equivalent output and sometimes perform output by changing a format to another format. For this, the FU A may be used. As an actual example, the FU A basically outputs RGB, but it may divide RGB into R, G and B to output them according to the FU B, the FU C and the FU D that are connected to it.
To provide a brief description, as listed in the Table 1, a token is defined with only an identifier and description in a token pool, and consequently, the connection information of a functional unit may be simply defined with only a token as listed in the Table 3 or the Table 4.
As listed in the Table 3 or the Table 4, the connection information of a plurality of functional units may be recorded in one lookup table, and each functional unit may store its own connection information.
In a case of using a token according to an exemplary embodiment, the writing of decoder description becomes very easy, and the configuring of the variable decoder 300 may be quickened and simplified.
For example, when intending to configure the variable decoder in FIG. 9, only the following content is described in the FND of decoder description.
<Example of DD>
Parser FU - FU Ⅲ (TA)
Parser FU - FU Ⅱ (TB)
FU Ⅲ - FU Ⅴ (TC)
FU Ⅱ - FU Ⅴ (TD)
That is, a DD writer does not care that each functional unit inputs/outputs a signal having a certain size and sequence in which input sequence and in which transmission scheme (for example, serial or parallel transmission), and merely cares the processing function and connection information of the each functional unit.
Considering a broadcasting environment that may become an example of dynamic reconfiguration, a bitstream transmitted from a broadcasting station may not be limited to the product and device of a specific company. In other words, the same decoder description and a bitstream may be transmitted irrespective of a bitstream that is written based on a serial scheme and a bitstream for a parallel scheme. If decoder description is written to be limited to a serial scheme or a parallel scheme, it should be differently transmitted depending on cases, and consequently, a case incapable of viewing sometimes may occur in a specific product. Accordingly, only the minimum element should be defined in decoder description, and implementation-dependent characteristic is not reflected in a token that is designated by the decoder description. Through this, decoder description identically operates in a design-time stage for producing a VTL and a run time that is actually used by a user.
The configuration unit 100, which analyzes decoder description to configure the variable decoder 300, sequentially selects each functional unit according to the described in decoder description and sets connection between the functional units, thereby configuring the variable decoder 300 in a simple scheme.
Particularly, the configuration unit 100 can easily verify whether connection information, described in decoder description, is suitable. For example, when “[FU Ⅲ - FU Ⅴ (TC)]” is described in the FND of decoder description, the configuration unit 100 may check whether a token TC is in the output-enabled signal (i.e., a token) of an FU Ⅲ and the input-enabled signal of an FU Ⅴ on the basis of the connection information (for example, content described in the Table 2) between the FU Ⅲ and the FU Ⅴ to verify whether connection is suitable, appropriately meeting a result of the verification.
When the token TC is not in the output-enabled signal (i.e., a token) of an FU Ⅲ or the input-enabled signal of an FU Ⅴ, the configuration unit 100 checks that the FND of decoder description is wrongly described to output an error message, and may stop configuring the variable decoder 300. The configuration unit 100 may include a verification unit (not shown) for this.
As described above, by defining the connection information of a functional unit with only a token, a functional unit or an FU table itself is easily understood, and by unifying the connection medium between a token pool and functional units with a token name (or an identifier), the disaccord of information is prevented in advance and the efficiency of information concentration is improved. Furthermore, by allowing the repetitive description of a token for a functional unit, a corresponding function may have generic characteristic. Through this, a base that may concentrate at the technical feature of a functional unit and integrate similar functional units can be prepared.
In an exemplary embodiment, as a premise condition, the implementation of a functional unit is made in one company or one party that shares the reference of FU implementation.
That is, since a DD writer or the configuration unit 100 never considers the detailed processing operation of a functional unit, the detailed format of an input/output signal (i.e., data), a transmission scheme (for example, serial or parallel transmission) and the internal sequence of a signal, an FU producer should implement a functional unit while autonomously defining the detailed format of a signal (i.e., data) that is inputted/outputted between functional units to be stored together in one repository, a transmission scheme (for example, serial or parallel transmission), the internal sequence of a signal, connectable functional units and the processing algorithm of each functional unit.
Due to these, the producer of a functional unit secures flexibility for contents other than a token, and thus can produce various types of functional units through various schemes. Accordingly, technologies for functional units can further progress.
According to an exemplary embodiment, an FU producer may determine the interface scheme between functional units without being limited by a signal transfer sequence, the classification of the serial/parallel scheme and input/output scheme of a signal and size. For example, since a signal transfer sequence, the classification of the serial/parallel scheme and input/output scheme of a signal and size in a case of configuring a functional unit in hardware may differ from those of a case of configuring a functional unit in software, each FU producer may determine a processing standard and a detailed signal suitable for an FU implementation scheme that is selected by it. Alternatively, each FU producer can make the implementation of a high-performance FU flexible by using its own special know-how.
To provide a summary on the above described, when generating decoder description in an encoding operation, by referring to a token pool and an FU table, functional units necessary for implementing a decoder and a token for connecting these can be easily comprehended and generated. At this point, a decoder to be configured with a functional unit and a token can be easily verified. This is because the connection relationships between functional units are clearly emerged with tokens. Moreover, since decoder description is generated using the identifier of a token and the identifier of a simplified and unified functional unit, the capacity of the decoder description may be reduced. Therefore, the transmission efficiency of the decoder description can increase.
Moreover, because the configuration unit 100 connects functional units with the simple identifier of a token, it can be configured with a simple logic.
Since the connection information of a functional unit is only composed of the identifier of a token, functional units having the same characteristic may be determined as one FU regardless of an interface scheme other than a token, for example, a data transfer sequence, the classification of a serial/parallel transmission scheme and size for a token.
In a case of defining a functional unit on the basis of a data transfer sequence, the classification of a serial/parallel transmission scheme and size for a token, a functional unit of performing the same processing function should also be defined in plurality according to a data transfer sequence, the classification of a serial/parallel transmission scheme and size. Moreover, a plurality of functional units for performing the same processing function should be stored in a repository. In an exemplary embodiment, however, since the connection relationships of functional units are defined with only tokens, the connection information of the functional units are simplified and plural numbers are not required in functional units having the same characteristic, preventing the capacity of a repository from unnecessarily increasing.
In a standardization level, since a data transfer sequence, the classification of a serial/parallel transmission scheme and size for a token are not considered and only tokens are considered, all users can easily know the standard content and easily use the standardized technology.
Moreover, when defining a new functional unit is required, by first checking whether a token exists in the token pool of the Table 1, whether a usable token exists in a new functional unit is first determined. When the usable token exists, this means that the new functional unit may be connected to another functional unit, and thus the new functional unit may be immediately used. When the usable token does not exist, a new token is defined with only a name or an identifier and description, and the connection information of the new functional unit may be defined using the defined token and used.
In this way, by defining a token with only an identifier and description and defining a functional unit with the token, information for a token pool, an FU table, tokens and functional units may be concentrated and unified.
Hereinafter, a decoding apparatus and method according to exemplary embodiments will be described in detail through specific embodiments.
First, a decoding apparatus and method according to an exemplary embodiment will be described below with reference to FIGS. 1 to 12. FIG. 12 is a conceptual view for describing a decoding apparatus and method according to an exemplary embodiment.
Referring to FIGS. 1 to 12, the configuration unit 100 receives decoder description to configure a variable decoder 300. Herein, decoder description may include the identifier (for example, a numeral or a name for discriminating functional units) of a functional unit that is used in the variable decoder 300, FU connection-relationship information (i.e., an FND) that is composed of the identifier (for example, a numeral or a name for discriminating tokens) of a token for connecting functional units, and parser description.
First, the configuration unit 100 refers to the parser description included in the decoder description, and when a parser functional unit 205 corresponding to the parser description exists in the repository 200, the configuration unit 100 selects and positions the parser functional unit 205 from the repository 200. Herein, the parser functional unit 205 parses another encoded bitstream and provides parsed signals to other functional units. For example, the parser functional unit 205 parses an encoded bitstream into a control signal for decoding and an encoded video signal to provide the parsed signals to other functional units. Next, among a plurality of functional units 210, 215, 220, 225 and 230 that exist in the repository 200, the functional units 215, 220 and 230 corresponding to the identifiers of functional units are selected from the repository 200 and are positioned. The parser functional unit 205 and the functional units 215, 220 and 230 are connected using the identifiers of tokens.
In more detail, the configuration unit 100 selects the parser functional unit 205 having output ports that are defined as a token TA and a token TB, from the repository 200 and positions the selected parser functional unit 205 as illustrated in FIG. 12. Furthermore, as illustrated in FIG. 12, the configuration unit 100 positions the FU Ⅲ 220 having an input port and an output port that are respectively defined as a token TA and a token TB, positions the FU Ⅱ 215 having an input port and an output port that are respectively defined as a token TB and a token TD, and positions the FU Ⅴ 230 having input ports that are defined as a token TC and a token TD and an output port that is defined as a token TE. Subsequently, the configuration unit 100 connects the parser functional unit 205 and the functional units 215, 220 and 230 by using each token identifier.
In an operation where the configuration unit 100 selects the functional units 215, 220 and 230 from the repository 200, the configuration unit 100 may verify in advance whether the functional units 215, 220 and 230 may be connected by using the names or identifiers (for example, TA, TB, TC, TD and/or TE) of tokens. As described above, since the configuration unit 100 generates decoder description on the basis of the input/output port token information and token precedence information of a functional unit necessary for implementing the variable decoder 300 based on the FU table of FIG. 2 even in an operation of generating the decoder description, it can verify beforehand whether functional units may be connected.
Next, a decoding apparatus and method according to another exemplary embodiment will be described below with reference to FIGS. 1 to 13. FIG. 13 is a conceptual view for describing a decoding apparatus and method according to another exemplary embodiment.
In this embodiment, unlike the above-described embodiment, the parser functional unit 205 does not exist in the repository 200. In this case, the configuration unit 100 generates a parser functional unit 205 by using the parser description of decoder description. The configuration unit 100 positions the generated parser functional unit 205, and selects and positions other functional units 215, 220 and 230. Subsequently, the configuration unit 100 connects the parser functional unit 205 and the functional units 215, 220 and 230 by using the names or identifiers (for example, TA, TB, TC, TD and/or TE) of tokens to configure a decoder 300.
Next, a decoding apparatus and method according to another exemplary embodiment will be described below with reference to FIGS. 1 to 14. FIG. 14 is a conceptual view for describing a decoding apparatus and method according to another exemplary embodiment.
Referring to FIGS. 1 to 7, a parser functional unit 203 outputs data corresponding to a token TA through one output port, but functional units 250 and 260 receive data corresponding to the token TA. At this point, in a case where the flow of data is consumptive, data are consumed when they are provided from any one branch point to the functional unit 250, and when data are not provided to the functional unit 260, the configuration unit 100 selects and positions a branch functional unit 240 (which has been described above with reference to FIG. 7) from the repository 200. Subsequently, the configuration unit 100 connects the respective output ports of the branch functional unit 240 with the input port of the functional unit 250 and the input port of the functional unit 260 by using the token TA, thereby configuring a virtual decoder in FIG. 14.
Moreover, when it is defined that one of the input ports of the functional unit 260 has a storage function for the token TA and data corresponding to the token TA, the parser functional unit 203 can decrease load in which it should periodically or continuously provide data corresponding to the token TA. Consequently, the configuration of the internal logic of the parser functional unit 203 can be simplified, and by decreasing undesired operations, efficient decoding can be performed.
For appropriately performing the above-described decoding, the following encoding scheme is required.
After encoding a bitstream to transmit or determining an encoding scheme, a functional unit for performing decoding corresponding to the encoding scheme should be extracted from a functional unit table. Herein, as listed in the above-described Table 4, the names or identifiers of functional units, the input port of each functional unit that is defined as a token and the presence of a storage function for data corresponding to the token and an output port that is defined as the token may be listed by functional unit in the functional unit table.
When functional units are selected/extracted, the decoding apparatus sets the connection relationship between the functional units and generates decoder description in which the connection relationship is described. Subsequently, the decoding apparatus may merge and transmit an encoded bitstream and the decoder description.
In an operation of setting the connection relationship between the functional units, the decoding apparatus extracts a token capable of the input or output of the extracted functional unit on the basis of a token pool, checks whether the extracted token may be used in common between two functional units to be connected, and defines the connection relationship between the functional units by using the names or identifiers of two functional units to be connected and the token when the extracted token may be used in common.
At this point, when the token may not be used in common between the two functional units, the decoding apparatus extracts another functional unit for replacing at least one of the two functional units, and checks whether the replaced functional unit and a functional unit to be connected with it may use a token in common. In this case, by repeating these operations until it is checked that the token may be used in common between the two functional units, the decoding apparatus can set the suitable connection relationship between functional units.
According to another exemplary embodiment, even in an encoding operation, verifying the suitability of the connection relationship between functional units can be easily performed.
The above-described decoding apparatus and method according to exemplary embodiments may be implemented or executed through a program, and the program may be stored in a computer-readable storage medium.
The invention can also be embodied as computer readable codes on a computer-readable storage medium. The computer-readable storage medium is any data storage device that can store data which can be thereafter read by a computer system. Examples of the computer-readable storage medium include ROMs, RAMs, CD-ROMs, DVDs, magnetic tapes, floppy disks, registers, buffers, optical data storage devices, and carrier waves (such as data transmission through the Internet). The computer-readable storage medium can also be distributed over network coupled computer systems so that the computer readable codes are stored and executed in a distributed fashion. Also, functional programs, codes, and code segments for accomplishing the present invention can be easily construed by programmers skilled in the art to which the present invention pertains.
A number of exemplary embodiments have been described above. Nevertheless, it will be understood that various modifications may be made. For example, suitable results may be achieved if the described techniques are performed in a different order and/or if components in a described system, architecture, device, or circuit are combined in a different manner and/or replaced or supplemented by other components or their equivalents. Accordingly, other implementations are within the scope of the following claims.
A decoding apparatus and method and an encoding method according to exemplary embodiments may be applied to a Reconfigurable Video Coding (RVC) technology.
Claims (18)
- A decoding apparatus, comprising:a repository storing a plurality of functional units in which an input or output port is defined as a token; anda configuration unit receiving decoder description which comprises an identifier of at least one of the functional units and connection relationship information which is composed of the token, selecting pertinent functional units from the repository, and connecting the selected functional units by using the token to configure a variable decoder,wherein the token corresponds to data which are inputted or outputted between the functional units, and is defined as a name or an identifier and the data, anda first functional unit of the functional units has the input port which is defined as a first token and presence of a storage functionl for a first data corresponding to the first token.
- The decoding apparatus of claim 1, wherein the first functional unit stores the current first data which is inputted to the input port, and operates by regarding that the stored first data is continuously or periodically inputted until a next first data is inputted.
- The decoding apparatus of claim 2, wherein the first functional unit pre-stores a second data as a default value, and operates by regarding that the second data is continuously or periodically inputted until the first data is inputted.
- The decoding apparatus of claim 1, wherein when a branch unit having an input port which is defined as a second token and at least two output ports which are defined as the second token is stored in the repository, and two or more second functional units in which an input port is defined as the second token are used to configure the variable decoder,the configuration unit selects the branch unit from the repository, and connects each output port of the branch unit and an input port of each of the second functional units by using the second token.
- The decoding apparatus of claim 1, wherein:the decoder description further comprises a parser description defining a parsing unit, andthe configuration unit generates the parsing unit by using the parser description, and connects the generated parsing unit and the selected functional unit to configure the variable decoder.
- The decoding apparatus of claim 1, wherein:the decoder description further comprises parser description defining a parsing unit, andthe configuration unit selects a parsing unit corresponding to the parser description from the repository, and connects the selected parsing unit and the selected functional unit to configure the variable decoder.
- The decoding apparatus of claim 1, wherein the configuration unit comprises a verification unit verifying connection relationships between the functional units.
- A decoding method, comprising:receiving an encoded bitstream and decoder description which comprises an identifier of at least one functional unit and a token corresponding to data which are inputted or outputted between the functional units;selecting functional units corresponding to the identifier of the functional unit from a repository, and connecting the selected functional units by using the token to configure a variable decoder for decoding the encoded bitstream; anddecoding the encoded bitstream through the variable decoder,wherein the configuring of a variable decoder comprises selecting a first functional unit having an input port which is defined as a first token and presence of a storage function for a first data corresponding to the first token, and connecting the first functional unit with the selected functional unit by using the first token.
- The decoding method of claim 8, wherein the decoding of the encoded bitstream comprises storing, by the first functional unit, the current first data which is inputted to the input port, and operating by regarding that the stored first data is continuously or periodically inputted until a next first data is inputted.
- The decoding method of claim 9, wherein the decoding of the encoded bitstream comprises pre-storing, by the first functional unit, a second data as a default value, and operating by regarding that the second data is continuously or periodically inputted until the first data is inputted.
- The decoding method of claim 8, wherein when a branch unit having an input port which is defined as a second token and at least two output ports which are defined as the second token is stored in the repository, and two or more second functional units in which an input port is defined as the second token are used to configure the variable decoder,the configuring of a variable decoder further comprises selecting the branch unit from the repository, and connecting each output port of the branch unit and an input port of each of the second functional units by using the second token.
- An encoding method, comprising:encoding a bitstream;extracting a functional unit for performing decoding, which corresponds to the encoding, from a functional unit table;setting connection relationship between the extracted functional unit and a functional unit;generating decoder description in which the set connection relationship is described; andmerging and transmitting the encoded bitstream and the decoder description,wherein a name or identifier of the functional unit, an input port of the functional unit which is defined as a token and presence of a storage function for data corresponding to the token and an output port which is defined as the token are listed by functional unit in the functional unit table, andthe token corresponds to data which are inputted or outputted between the functional units, and is defined as a name or an identifier and the data.
- The encoding method of claim 12, wherein the setting of connection relationship comprises:extracting a token capable of an input or output of the extracted functional unit on the basis of a token pool;checking whether the extracted token is usable in common between two functional units to be connected; anddefining connection relationship between the functional units by using names or identifiers of the two functional units to be connected, when the extracted token is usable in common.
- The encoding method of claim 13, wherein the setting of connection relationship comprises:extracting another functional unit for replacing at least one of the two functional units, when the token is not usable in common between two functional units; andchecking whether the replaced functional unit and a functional unit to be connected with the replaced functional unit use in common the token,wherein the extracting of another functional unit and the checking of common use of the token are repeated until the token is checked as being usable in common between the two functional units.
- A computer-readable storage medium storing a program which connects a plurality of functional units, which are included to accord a serial or parallel transmission scheme and a size and transfer sequence of data which are transferred between the functional units, to configure a decoder, the program executing:receiving decoder description which comprises an identifier of the functional unit and connection relation information which is composed of a token corresponding to data which are inputted or outputted between the functional units; andselecting functional units corresponding to the identifier, and connecting the selected functional units by using the token to configure the decoder, according to the decoder description,wherein the configuring of the decoder comprises selecting a first token and a first functional unit having an input port which is defined as presence of a storage function for a first data corresponding to the first token, and connecting the first functional unit with the selected functional unit by using the first token.
- The computer-readable storage medium of claim 15, wherein when a branch unit having an input port which is defined as a second token and at least two output ports which are defined as the second token exists, and two or more second functional units in which an input port is defined as the second token are used to configure the decoder,the configuring of the decoder further comprises selecting the branch unit from a repository, and connecting each output port of the branch unit and an input port of each of the second functional units by using the second token.
- The computer-readable storage medium of claim 15, wherein the program further executes decoding an encoded bitstream through the decoder,wherein the decoding of an encoded bitstream comprises storing, by the first functional unit, the current first data which is inputted to the input port, and operating by regarding that the stored first data is continuously or periodically inputted until a next first data is inputted.
- The computer-readable storage medium of claim 17, wherein the decoding of an encoded bitstream further comprises pre-storing, by the first functional unit, a second data as a default value, and operating by regarding that the second data is continuously or periodically inputted until the first data is inputted.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020080099907A KR100960028B1 (en) | 2008-10-11 | 2008-10-11 | Decoding apparatus, decoding method, encoding method and computer readable recording medium |
| KR10-2008-0099907 | 2008-10-11 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| WO2010041903A2 true WO2010041903A2 (en) | 2010-04-15 |
| WO2010041903A3 WO2010041903A3 (en) | 2010-07-22 |
Family
ID=42101111
Family Applications (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/KR2009/005798 Ceased WO2010041903A2 (en) | 2008-10-11 | 2009-10-09 | Decoding apparatus, decoding method, encoding method, and computer-readable storage medium |
| PCT/KR2009/005801 Ceased WO2010041906A2 (en) | 2008-10-11 | 2009-10-09 | Decoding apparatus, decoding method, and computer-readable storage medium |
Family Applications After (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/KR2009/005801 Ceased WO2010041906A2 (en) | 2008-10-11 | 2009-10-09 | Decoding apparatus, decoding method, and computer-readable storage medium |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US8654901B2 (en) |
| EP (1) | EP2347589A4 (en) |
| KR (1) | KR100960028B1 (en) |
| WO (2) | WO2010041903A2 (en) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP3740882A1 (en) | 2018-01-18 | 2020-11-25 | Bevara Technologies, LLC | Browser navigation for facilitating data access |
| EP4500871A1 (en) * | 2022-03-28 | 2025-02-05 | Bevara Technologies, LLC | Modular pipelines for accessing digital data |
Family Cites Families (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5784631A (en) * | 1992-06-30 | 1998-07-21 | Discovision Associates | Huffman decoder |
| US5802315A (en) * | 1995-09-04 | 1998-09-01 | Sharp Kabushiki Kaisha | Picture reproducing apparatus |
| US6868227B2 (en) * | 2000-12-20 | 2005-03-15 | Hewlett-Packard Development Company, L.P. | Digital video disk device re-configuration |
| US6753925B2 (en) * | 2001-03-30 | 2004-06-22 | Tektronix, Inc. | Audio/video processing engine |
| US7729421B2 (en) * | 2002-02-20 | 2010-06-01 | International Business Machines Corporation | Low latency video decoder with high-quality, variable scaling and minimal frame buffer memory |
| US7283591B2 (en) * | 2003-03-28 | 2007-10-16 | Tarari, Inc. | Parallelized dynamic Huffman decoder |
| KR20090002508A (en) * | 2007-06-29 | 2009-01-09 | 주식회사 휴맥스 | Method and apparatus for encoding / decoding video data |
-
2008
- 2008-10-11 KR KR1020080099907A patent/KR100960028B1/en not_active Expired - Fee Related
-
2009
- 2009-10-09 WO PCT/KR2009/005798 patent/WO2010041903A2/en not_active Ceased
- 2009-10-09 US US13/123,712 patent/US8654901B2/en not_active Expired - Fee Related
- 2009-10-09 WO PCT/KR2009/005801 patent/WO2010041906A2/en not_active Ceased
- 2009-10-09 EP EP09819413A patent/EP2347589A4/en not_active Withdrawn
Also Published As
| Publication number | Publication date |
|---|---|
| KR100960028B1 (en) | 2010-05-28 |
| WO2010041903A3 (en) | 2010-07-22 |
| WO2010041906A2 (en) | 2010-04-15 |
| US8654901B2 (en) | 2014-02-18 |
| US20110194654A1 (en) | 2011-08-11 |
| KR20100040787A (en) | 2010-04-21 |
| EP2347589A4 (en) | 2012-10-10 |
| EP2347589A2 (en) | 2011-07-27 |
| WO2010041906A3 (en) | 2010-07-29 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| WO2011034378A2 (en) | Method and apparatus for encoding and decoding image based on skip mode | |
| US6366731B1 (en) | Digital broadcast receiving/recording apparatus and method | |
| US7162145B2 (en) | Multimedia system for transferring and receiving program number and methods therefor | |
| WO2018131806A1 (en) | Electronic apparatus and method of operating the same | |
| WO2009131359A2 (en) | Apparatus and method for composing scenes using rich media contents | |
| EP2344951A2 (en) | Conditional processing method and apparatus | |
| WO2016045209A1 (en) | Program switching method, device and terminal | |
| WO2010041903A2 (en) | Decoding apparatus, decoding method, encoding method, and computer-readable storage medium | |
| WO2014058278A1 (en) | Apparatus and method for transmitting and receiving packet in a broadcasting and communication system | |
| EP2301174A2 (en) | Method and apparatus for providing rich media service | |
| WO2013180348A1 (en) | System and method for executing screen virtualization-based application | |
| US20110116554A1 (en) | Method and apparatus for encoding and decoding | |
| JP4595324B2 (en) | MPEG bitstream transcoding to add sub-picture content | |
| US20110243250A1 (en) | Device and method for encoding/decoding | |
| JP2000341231A (en) | Multiplexing apparatus, method and computer-readable storage medium | |
| US7065288B1 (en) | System and method of patching missing digital video packets communicated in an IEEE 1394 compliant implementation | |
| KR100390812B1 (en) | PSI data filtering device for MPEG-2 system and control method thereof | |
| WO2020122481A9 (en) | Image processing device for learning parameters on basis of machine learning, and operation method | |
| WO2020106056A1 (en) | Display device and operating method therefor | |
| WO2012005544A2 (en) | Method and apparatus for recovering burst data loss by duplicating block code symbols | |
| KR100983054B1 (en) | Decoding apparatus, decoding method, encoding method and computer readable recording medium | |
| WO2018112784A1 (en) | Video playing method based on set-top box and set-top box | |
| WO2025211686A1 (en) | Method and device for video encoding and decoding on basis of combination reference vector | |
| KR101048407B1 (en) | decoding apparatus and method and computer-readable storage medium | |
| WO2019146811A1 (en) | Video decoder and controlling method thereof |
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: 09819410 Country of ref document: EP Kind code of ref document: A2 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 09819410 Country of ref document: EP Kind code of ref document: A2 |