LEE, Sun-Young (707 Hanyang University Sanhak Bldg, Haengdang 1-dong Seongdong-gu, Seoul 133-791, KR)
LEE, Chung-Ku (15-304, Dongah Apts.Bupyeong 1-dong, Bupyeong-gu, Incheon 403-011, KR)
JANG, Euee-Seon (501 Hanyang University Sanhak Bldg, Haengdang 1-dong Seongdong-gu, Seoul 133-791, KR)
LEE, Sun-Young (707 Hanyang University Sanhak Bldg, Haengdang 1-dong Seongdong-gu, Seoul 133-791, KR)
LEE, Chung-Ku (15-304, Dongah Apts.Bupyeong 1-dong, Bupyeong-gu, Incheon 403-011, KR)
[CLAIMS]
[Claim 1]
A decoding device, comprising:
a table storing unit;
a decoding description decoder, generating and storing in the table storing unit n
tables corresponding to an inputted decoding description, n being a natural number; and
a codec unit, decoding and outputting encoded video data, included in a bit-stream
inputted corresponding to the decoding description, to moving picture data by using the
table stored in the table storing unit.
[Claim 2]
The decoding device of Claim 1, wherein the codec unit comprises
a toolbox, including a plurality of functional units, respectively, realized to perform
a predetermined process;
a control signal/context information storing unit, storing a plurality of information
generated by the bit-stream syntax-parsed by at least one of the plurality of functional
units; and
a connection control unit, referring to at least one of predetermined tables,
recognizing the processing order of the plurality of functional units and controlling to
activate a corresponding functional unit. [Claim 3]
The decoding device of Claim 2, wherein a predetermined process of the functional
units, respectively, is realized to independently perform each function suggested by a
plurality of standards for decoding the bit-stream.
[Claim 4]
The decoding device of Claim 3, wherein if video data is encoded by the plurality of
standards, the connection control unit refers to the table, successively activates the
plurality of functional units performing the processes according to the plurality of
standards and decodes the encoded video data to the moving picture data.
[Claim 5]
The decoding device of Claim 2, wherein the toolbox comprises
a parsing unit, generating and storing in the CSCI storing unit a plurality of element
information by the syntax parsing of the bit-stream, and generating the encoded video
data to macro block data having a predetermining size and successively outputting the
macro block data,
a plurality of processing functional units, designated with each process to be
performed for converting the macro block data into the moving picture data. [Claim 6]
The decoding device of Claim 5, wherein the n tables comprise a syntax element
table (SET) indicating a process for generating information related to a bit-stream
syntax and element information corresponding to the bit-stream syntax; a syntax rule
table (S-RT), indicating the connection between the bit-stream syntaxes; a control signal
and context information table (CSCIT), indicating detailed information related to the
element information, a FU-rule table (F-RT), successively selecting the plurality of
functional units; a FU list (FL), indicating a list of the functional units; and a FU-CSCIT,
indicating element information to be inputted into the selected functional unit.
[Claim 7]
The decoding device of Claim 6, wherein the syntax element table (SET), the syntax
rule table (S-RT) and the FU-rule table (F-RT) are configured to comprise at least one
of a READ command, reading k bits, k being a natural number, by moving a file
pointer; a SEEK command, the k bit without moving the file pointer; a FLUSH
command, moving the file pointer as much as the k bits, a GO command, directing to
the branching between indexes; and a SET command, setting a flag of element
information. [Claim 8]
The decoding device of Claim 6, further comprising a default value table (DVT)
indicating the relation between an actual value and a code value when entropy coding.
[Claim 9]
The decoding device of Claim 6, wherein the connection control unit designates the
order of activating a plurality of selected functional units among the parsing functional
unit and a plurality of processing functional units by using the F-RT.
[Claim 10]
The decoding device of Claim 9, wherein the processing functional unit, activated
by the connection control unit, performs a predetermined process by using
predetermined element information and output data by a prior functional unit.
[Claim 11 ]
The decoding device of Claim 6, wherein the parsing functional unit generates the
element information by using the SET, the S-RT and the CSCIT.
[Claim 12]
The decoding device of Claim 1 , further comprising a dividing unit for dividing the decoding description and the bit-stream if a universal bit-stream unified with the
decoding description and the bit-stream is inputted.
[Claim 13]
The decoding device of Claim 1 or 12, wherein the decoding description comprises
at least one table part, and at least one table information for forming the table is inserted
into each table part.
[Claim 14]
The decoding device of Claim 13, wherein the table information comprises a codec
number for decoding the bit-stream, and designating information corresponding to a
profile and level number, and
the decoding description decoder extracts n tables, corresponding to the designating
information, from a plurality of tables pre-stored in the table storing unit.
[Claim 15]
The decoding device of Claim 13, wherein the table information inserted into the n
table parts, respectively, comprises binary code information for forming each table, and
the decoding description decoder generates n tables by using the binary code
information and stores the generated n tables in the table storing unit. [Claim 16]
The decoding device of Claim 13, wherein m table parts, m being a natural number,
of the n table parts comprises a codec number related to a corresponding table and
designating information corresponding to a profile and level number, and k table parts,
k being a number of n - m, comprises binary code information, and
the decoding description decode extracts m tables, corresponding to the designating
information, from a plurality of pre-stored tables and generates k tables by using the
binary code information and stores the k generated tables in the table storing unit.
[Claim 17]
A decoding device, comprising:
a table storing unit, storing a plurality of tables organically linked;
a syntax parser, storing a plurality of element information, generated by the
syntax-parsing of an inputted bit-stream, in an element information storing unit, and
successively outputting macro block data corresponding to encoded video data;
an MB processing unit, including a plurality of functional units realized to process
each predetermined processing operation; and
a connection control unit, controlling to selectively activate the plurality of
functional units by referring to at least one table stored in the table storing unit, whereas an arbitrary functional unit, activated by the connection control unit,
processes and outputs the macro block data by using predetermined element information
of element information stored in the element information storing unit.
[Claim 18]
The decoding device of Claim 17, wherein a predetermined process of the functional
units, respectively, is realized to independently perform each function suggested by a
plurality of standards for decoding the bit-stream.
[Claim 19]
The decoding device of Claim 17, wherein the connection control unit controls the
operation of the syntax parser by referring to a predetermined table.
[Claim 20]
The decoding device of Claim 17, further comprising a decoding description
decoder, generating n tables, n being a natural number, corresponding to a decoding
description if the decoding description is further inputted, the decoding description
corresponding to the bit-stream.
[Claim 21] The decoding device of Claim 20, further comprising a dividing unit, for dividing
the decoding description and the bit-stream and inputting the decoding description and
the bit-stream into the syntax parser and the decoding description decoder, respectively,
if a universal bit-stream, unified with the decoding description and the bit-stream, is
inputted.
[Claim 22]
The decoding device of Claim 20, wherein the description information is inputted in
a form of separate data or a bit-stream.
[Claim 23]
The decoding device of Claim 17, wherein the connection control unit controls the
result data of a corresponding activated functional unit to be inputted into the following
activated functional unit.
[Claim 24]
The decoding device of Claim 17, wherein a corresponding activated functional unit
stores its result data in a buffer memory that can be accessed by the following activated
functional unit. [Claim 25]
The decoding device of Claim 24, wherein macro block data, successively outputted
by the syntax parser, is written in the buffer memory.
[Claim 26]
The decoding device of Claim 20, wherein the description information is formed in
a binary code.
[Claim 27]
The decoding device of Claim 26, wherein the description information comprises a
syntax element table (SET) indicating a process for generating information related to a
bit-stream syntax and element information corresponding to the bit-stream syntax; a
syntax rule table (S-RT), indicating the connection between the bit-stream syntaxes; a
control signal and context information table (CSCIT), indicating detailed information
related to the element information, a FU-rule table (F-RT), successively selecting the
plurality of functional units; a FU list (FL), indicating a list of the functional units; and a
FU-CSCIT, indicating element information to be inputted into the selected functional
unit.
[Claim 28] The decoding device of Claim 27, wherein the syntax element table (SET), the
syntax rule table (S-RT) and the FU-rule table (F-RT) are configured to comprise at
least one of a READ command, reading k bits, k being a natural number, by moving a
file pointer; a SEEK command, the k bit without moving the file pointer; a FLUSH
command, moving the file pointer as much as the k bits, a GO command, directing to
the branching between indexes; and a SET command, setting a flag of element
information.
[Claim 29]
The decoding device of Claim 27, further comprising a default value table (DVT)
indicating the relation between an actual value and a code value when entropy coding.
[Claim 30]
The decoding device of Claim 27, wherein the syntax parser selects a bit-stream
syntax to be processed by using the S-RT, generates the element information by using
the processor written in the SET and stores the generated element information in the
element information storing unit, corresponding to the CSCIT.
[Claim 31 ]
The decoding device of Claim 30, wherein the connection control unit selects the syntax parser or any one of functional units by using the F-RT, recognizes the property
of the syntax parser or the functional unit by using the FL, extracts from the element
information storing unit element information to be inputted into the selected functional
unit by using the FU-CSCIT and the CSCIT and inputs the extracted element
information into the selected functional unit.
[Claim 32]
An encoding device, comprising:
an encoding unit, converting inputted moving picture into a bit-stream according to
a predetermined encoding method by successively using a plurality of functional units;
and
a description information generating unit, generating syntax information of the
bit-stream and description information according to the connection of the functional
units,
whereas the bit-stream and the description information are provided to a decoding
device.
[Claim 33]
The encoding device of Claim 32, wherein the bit-stream and the description
information are generated as one universal bit-stream and provided to the decoding device.
[Claim 34]
The encoding device of Claim 32, wherein the description information is provided
in a form of separate data or a bit-stream to the decoding device.
[Claim 35]
The encoding device of any one of Claim 32 through Claim 34, wherein the
description information comprises a syntax element table (SET) indicating a process for
generating information related to a bit-stream syntax and element information
corresponding to the bit-stream syntax; a syntax rule table (S-RT), indicating the
connection between the bit-stream syntaxes; a control signal and context information
table (CSCIT), indicating detailed information related to the element information, a
FU-rule table (F-RT), successively selecting the plurality of functional units; a FU list
(FL), indicating a list of the functional units; and a FU-CSCIT, indicating element
information to be inputted into the selected functional unit.
[Claim 36]
The encoding device of Claim 35, further comprising a default value table (DVT)
indicating the relation between an actual value and a code value when entropy coding. [Claim 37]
A decoding method, comprising:
(a) receiving a bit-stream and description information;
(b) generating and storing a plurality of tables corresponding to the description
information;
(c) storing in an element information storing unit a plurality of element information
generated by the syntax parsing of the bit-stream by using at least one table;
(d) converting encoded video data of the bit-stream into macro block data of a
predetermined size and successively outputting the macro block data;
(e) activating an arbitrary functional unit by referring to at least one table
information; and
(f) the activated functional unit performing a predetermined process by using
element information stored in the element information storing unit and outputting its
result data,
whereas the steps of (e) and (f) are repeated until the result data is moving picture
data corresponding to the encoded video data.
[Claim 38]
The decoding method of Claim 37, wherein a predetermined process of the functional units, respectively, is realized to independently perform each function
suggested by a plurality of standards for decoding the bit-stream.
[Claim 39]
The decoding method of Claim 37, wherein if the element information, requested to
the functional unit to be selected in the step of (e), is not stored in the element storing
unit while the steps of (e) and (f) are repeated, the step of (b) is performed again, and
then, the steps of (e) and (f) start to be repeated.
[Claim 40]
The decoding method of Claim 37, wherein a corresponding activated functional
unit stores its result data in a buffer memory that can be accessed by the following
activated functional unit.
[Claim 41 ]
The decoding method of Claim 40, wherein macro block data, successively
outputted in the step of (b), is written in the buffer memory.
[Claim 42]
The decoding method of Claim 37, wherein the description information comprise a syntax element table (SET) indicating a process for generating information related to a
bit-stream syntax and element information corresponding to the bit-stream syntax; a
syntax rule table (S-RT), indicating the connection between the bit-stream syntaxes; a
control signal and context information table (CSCIT), indicating detailed information
related to the element information, a FU-rule table (F-RT), successively selecting the
plurality of functional units; a FU list (FL), indicating a list of the functional units; and a
FU-CSCIT, indicating element information to be inputted into the selected functional
unit.
[Claim 43]
The decoding method of Claim 42, further comprising a default value table (DVT)
indicating the relation between an actual value and a code value when entropy coding.
[Claim 44]
The decoding method of Claim 43, wherein the SET, the S-RT, the CSCIT and the
DVT are used in the step of (c).
[Claim 45]
The decoding method of Claim 42, wherein the functional unit for performing the
steps of (c), (d) and (f) is determined by the F-RT. [Claim 46]
The decoding method of Claim 42, wherein the step of (c) comprises
(g) selecting a bit-stream syntax to be processed by using the S-RT;
(h) generating the element information by using the process written in the SET; and
(i) storing the generated element information in the element information storing unit,
corresponding to the CSCIT,
whereas the steps of (g) and (i) are repeated until element information
corresponding to all bit-stream syntaxes is generated and stored.
[Claim 47]
The decoding method of Claim 37, wherein if the bit-stream and the description
information are inputted as one universal bit-stream, the step of (b) is performed prior to
the step of dividing the bit-stream and the description information from the universal
bit-stream.
[Claim 48]
The decoding method of Claim 37, wherein the description information is inputted
in a form of separate data or a bit-stream. [Claim 49]
The decoding method of Claim 47 or 48, wherein the description information is
formed in a binary code.
[Claim 50]
An encoding method, comprising:
(a) converting inputted moving picture into a bit-stream according to a
predetermined encoding method by successively using a plurality of functional units;
(b) generating syntax information of the bit-stream and description information
according to the connection of the functional units; and
(c) providing the bit-stream and the description information to a decoding device
[Claim 51 ]
The encoding method of Claim 50, wherein the step (c) comprises
generating the bit-stream and the description information as one universal
bit-stream; and
providing the universal bit-stream to the decoding device.
[Claim 52]
A recorded medium having recorded a program including a typicalized command for performing a decoding method, the command being executable in a decoding device,
and the recorded medium being readable by the decoding device, the method
comprising:
(a) generating and storing a plurality of tables corresponding to the description
information;
(b) storing a plurality of element information generated by the syntax parsing of an
inputted bit-stream by using at least one of the stored tables;
(c) converting encoded video data of the bit-stream into macro block data of a
predetermined size and successively outputting the macro block data;
(d) a process, to be performed for converting the macro block data into the moving
picture data, calling one processing functional unit by referring to at least one of the
stored table information among each of he plurality of designated processing unit;
whereas the called processing unit outputs the result data of the designated process
by using predetermined element information of the plurality of stored element
information, and
the step of (d) is repeated until the result data is the moving picture data
corresponding to the encoded video data.
[Claim 53]
The recorded medium of Claim 52, wherein if the element information, requested to the functional unit to be selected in the step of (d), is not stored in the element storing
unit while the step of (d) are repeated, the step of (b) is performed again, and then, the
step of (d) starts to be repeated.
[Claim 54]
The recorded medium of Claim 52, wherein a predetermined process of the
processing functional units, respectively, is realized to independently perform each
function suggested by a plurality of standards for decoding the bit-stream.
[Claim 55]
A decoding device, comprising:
a table storing unit, storing at least one table information;
a decoding description decoder, generating and storing in the table storing unit n
table information, n being zero or a natural number and the same as or smaller than m,
corresponding to the decoding description received from an encoder, or selecting k table
information, k being a number of m - n, from the table storing unit; and
a codec unit, generating and outputting moving picture data corresponding to
encoded video data in the bit-stream received from the encoder by using m table
information, m being a natural number and the same as or larger than n, generated or
selected by the decoding description decoder. [Claim 56]
The decoding device of Claim 55, wherein if the decoding description comprises a
codec number encoded with the bit-stream and designating information corresponding
to a profile and level number, the m table information is selected in the table storing
unit.
[Claim 57]
The decoding device of Claim 55, wherein the decoding description comprises m
table parts, and table information forming the table is inserted into each table part.
[Claim 58]
The decoding device of Claim 57, wherein if the table part corresponding to
arbitrary table information includes generation information, the decoding description
decoder newly generates a corresponding table by using the generation information.
[Claim 59]
The decoding device of Claim 57, wherein if the table part corresponding to
arbitrary table information includes changing information, the decoding description
decoder changes a corresponding table by using the changing information. [Claim 60]
The decoding device of Claim 59, wherein if the table part corresponding to
arbitrary table information further comprises a codec number and a profile and level
number, or if the codec number and the profile and level number is included before the
table part, the decoding description decoder changes the table information
corresponding to the codec by using the changing information.
[Claim 61 ]
The decoding device of Claim 55, wherein the codec unit comprises
a toolbox, including a plurality of functional units, respectively, realized to perform
a predetermined process;
a control signal/context information (CSCI) storing unit, storing a plurality element
information generated by the bit-stream syntax-parsed by at least one functional unit of
the plurality of functional units; and
a connection control unit, recognizing the processing order of the plurality of
functional units by referring to at least one of predetermined tables, and controlling to
activate the corresponding functional unit.
[Claim 62] The decoding device of Claim 61, wherein a predetermined process of the functional
units, respectively, is realized to independently perform each function suggested by a
plurality of standards for decoding the bit-stream.
[Claim 63]
The decoding device of Claim 62, wherein if video data is encoded by the plurality
of standards, the connection control unit refers to the table, successively activates the
plurality of functional units performing the processes according to the plurality of
standards and decodes the encoded video data to the moving picture data. .
[Claim 64]
The decoding device of Claim 61, wherein the toolbox comprises a parsing unit,
generating and storing in the CSCI storing unit a plurality of element information by the
syntax parsing of the bit-stream, and generating the encoded video data to macro block
data having a predetermining size and successively outputting the macro block data,
a plurality of processing functional units, designated with each process to be
performed for converting the macro block data into the moving picture data.
[Claim 65]
The decoding device of Claim 64, wherein the m tables comprise a syntax element table (SET) indicating a process for generating information related to a bit-stream
syntax and element information corresponding to the bit-stream syntax; a syntax rule
table (S-RT), indicating the connection between the bit-stream syntaxes; a control signal
and context information table (CSCIT), indicating detailed information related to the
element information, a FU-rule table (F-RT), successively selecting the plurality of
functional units; a FU list (FL), indicating a list of the functional units; and a FU-CSCIT,
indicating element information to be inputted into the selected functional unit.
[Claim 66]
The decoding device of Claim 65, wherein the syntax element table (SET), the
syntax rule table (S-RT) and the FU-rule table (F-RT) are configured to comprise at
least one of a READ command, reading s bits, s being a natural number, by moving a
file pointer; a SEEK command, the k bit without moving the file pointer; a FLUSH
command, moving the file pointer as much as the k bits, a GO command, directing to
the branching between indexes; and a SET command, setting a flag of element
information.
[Claim 67]
The decoding device of Claim 65, further comprising a default value table (DVT)
indicating the relation between an actual value and a code value when entropy coding. [Claim 68]
The decoding device of Claim 65, wherein the connection control unit designates
the order of activating a plurality of selected functional units among the parsing
functional unit and a plurality of processing functional units by using the F-RT.
[Claim 69]
The decoding device of Claim 68, wherein the processing functional unit, activated
by the connection control unit, performs a predetermined process by using
predetermined element information and output data by a prior functional unit.
[Claim 70]
The decoding device of Claim 65, wherein the parsing functional unit generates the
element information by using the SET, the S-RT and the CSCIT.
[Claim 71 ]
The decoding device of Claim 55, further comprising a dividing unit for dividing the
decoding description and the bit-stream if a universal bit-stream unified with the
decoding description and the bit-stream is received from the encoder. [Claim 72]
A decoding device, comprising:
an input unit, receiving a bit-stream and description information;
a table storing unit, storing a table corresponding to the decoding description; and
a codec unit, decoding the bit-stream by using the table stored in the table storing
unit,
whereas the decoding description includes information related to the connection
between syntax information of the bit-stream and functional units included in the codec.
[Claim 73]
The decoding device of Claim 72, wherein the decoding description comprises at
least one table part, and at least one table information for forming or identifying the
table is inserted into each table part.
[Claim 74]
The decoding device of Claim 73, wherein the table information comprises a codec
number for decoding the bit-stream, and designating information corresponding to a
profile and level number, and
the decoding description decoder extracts n tables, corresponding to the designating
information, from a plurality of tables pre-stored in the table storing unit [Claim 75]
The decoding device of Claim 73, wherein the table information inserted into the n
table parts, respectively, comprises binary code information for forming each table, and
the decoding description decoder generates the binary code information by using n
tables and stores the generated binary code information in the table storing unit.
[Claim 76]
The decoding device of Claim 73, wherein m table parts, m being a natural number,
of the n table parts comprises a codec number related to a corresponding table and
designating information corresponding to a profile and level number, and k table parts,
k being a number of n - m, comprises binary code information, and
the decoding description decode extracts m tables, corresponding to the designating
information, from a plurality of pre-stored tables and generates k tables by using the
binary code information and stores the k generated tables in the table storing unit.
[Claim 77]
The decoding device of Claim 72, wherein the codec unit comprises
a toolbox, including a plurality of functional units, respectively, realized to perform
a predetermined process; a control signal/context information (CSCI) storing unit, storing a plurality element
information generated by the bit-stream syntax-parsed by at least one functional unit of
the plurality of functional units; and
a connection control unit, recognizing the processing order of the plurality of
functional units by referring to at least one of predetermined tables, and controlling to
activate the corresponding functional unit
[Claim 78]
The decoding device of any one of Claim 74 through Claim 76, wherein the n tables
comprise a syntax element table (SET) indicating a process for generating information
related to a bit-stream syntax and element information corresponding to the bit-stream
syntax; a syntax rule table (S-RT), indicating the connection between the bit-stream
syntaxes; a control signal and context information table (CSCIT), indicating detailed
information related to the element information, a FU-rule table (F-RT), successively
selecting the plurality of functional units; a FU list (FL), indicating a list of the
functional units; and a FU-CSCIT, indicating element information to be inputted into
the selected functional unit.
[Claim 79]
The decoding device of Claim 78, further comprising a default value table (DVT) indicating the relation between an actual value and a code value when entropy coding.
[Claim 80]
A decoding device, comprising:
a toolbox, including a plurality of functional units, respectively, realized to perform
a predetermined process;
a control signal/context information storing unit, storing a plurality of information
generated by the bit-stream syntax-parsed by at least one of the plurality of functional
units; and
a connection control unit, referring to at least one of predetermined tables,
recognizing the processing order of the plurality of functional units and controlling to
activate a corresponding functional unit,
whereas a corresponding activated functional unit stores its result data in a buffer
memory that can be accessed by the following activated functional unit.
[Claim 81 ]
The decoding device of Claim 80, further comprises a decoding description decoder,
generating at least one table by referring to the inputted decoding description and
storing the generated table in the table storing unit, or selecting n tables from the tables
pre-stored in the table storing unit, whereas the decoding description includes information related to the connection
between syntax information of the bit-stream and functional units included in the codec.
[Claim 82]
The decoding device of Claim 81, wherein the decoding description further
comprises information related to at least one of an address of a buffer memory, written
with input data to be read by the activated, and another address of the buffer memory, to
be written with the result data processed by the functional unit.
[Claim 83]
The decoding device of Claim 80, wherein the tables, stored in the table storing unit,
comprise a syntax element table (SET) indicating a process for generating information
related to a bit-stream syntax and element information corresponding to the bit-stream
syntax; a syntax rule table (S-RT), indicating the connection between the bit-stream
syntaxes; a control signal and context information table (CSCIT), indicating detailed
information related to the element information, a FU-rule table (F-RT), successively
selecting the plurality of functional units; a FU list (FL), indicating a list of the
functional units; and a FU-CSCIT, indicating element information to be inputted into
the selected functional unit. [Claim 84]
The decoding device of Claim 83, further comprising a default value table (DVT)
indicating the relation between an actual value and a code value when entropy coding.
[Claim 85]
A decoding device, comprising:
a decoding description decoder, generating at least one table by using inputted
decoding description; and
a codec unit, decoding and outputting encoded video data, included in an inputted
bit-stream, to moving picture data by using the table.
[Claim 86]
The decoding device of Claim 85, further comprising a table storing unit for storing
at least one table generated by the decoding description decoder.
[Claim 87]
The decoding device of Claim 85, wherein the codec unit comprises a buffer
memory for storing intermediate data generated in the operation that the encoded video
data is decoded to the moving picture data. |
[DESCRIPTION]
[Invention Title]
DEVICE AND METHOD FOR UNIFIED CODECS
[Technical Field]
The present invention relates to a unified codec, more specifically to a unified codec
device and method that can be universally used for various encoding/decoding
standards.
[Background Art]
Typically, moving picture data is converted into bit-stream data by an encoder. At
this time, the bit-stream is stored depending on a coding type that satisfies the constraint
condition of the encoder.
MPEG, which is the constraint condition of the encoder, requests syntax and
semantics.
The syntax, which refers to the structure, format, or length of data, shows the order
of expressing the data. In other words, the syntax is to meet the condition for an
encoding / decoding operation and defines the sequence, length and format of each data
in the elements of the bit stream.
The semantics refers to the meaning of each bit forming data. In other words, the
semantics shows the meaning of each element in the bit stream.
Accordingly, various types of bit streams can be generated depending on the
encoding condition or the applied standard (or codec) of the encoder. Typically, each
standard (e.g. MPEG-I, MPEG-2, MPEG-4, and MPEG-4 AVC) has different bit
stream syntax.
Therefore, it can be said that the bit stream encoded according to each standard or
encoding condition has different types (i.e. syntax and semantics). A decoder
corresponding to a pertinent encoder must be used for the deciding of the bit stream.
As described above, the conventional bit stream decoder has a restriction that must
satisfy the constraint condition of the encoder. This restriction makes it difficult to
realize an integration decoder corresponding to a plurality of standards.
[Disclosure]
[Technical Problem]
The present invention, which is contrived to solve the aforementioned problems,
provides a unified codec device and method that can decode a bit steam encoded by
various types (syntax and semantics) in accordance with each standard (e.g. MPEG-I,
MPEG-2, MPEG-4, MPEG-4 AVC) by using the same information recognizing method.
The present invention provides a unified codec device and method that can parse a
bit stream compressed by various methods by using the same information analyzing
method and organically control each functional unit for decoding by using the parsed
data.
The present invention provides a unified codec device and method that can
commonly apply a syntax analyzing method for decoding various types of bit streams.
The present invention provides a unified codec device and method that can apply a
set of new commands for being capable of parsing a bit stream in various forms by
using a common syntax analyzing method.
The present invention provides a unified codec device and method that can easily
decode a bit stream when a syntax element is changed, added or deleted.
The present invention provides a unified codec device and method that can share
elements used for the bit stream decoding of the element information (i.e. a result from
syntax parsing) of analyzed syntax.
The present invention provides a unified codec device and method that can use the
element information of analyzed syntax to analyze following bit stream syntax element.
The present invention provides a unified codec device and method that can divide
the functions forming various decoding methods suggested by diverse standards
(codecs) per each functional unit and store the divided functions in a toolbox.
The present invention provides a unified codec device and method that can select in
a toolbox and decode a functional unit necessary for decoding a bit stream encoded in
various forms.
The present invention provides a unified codec device and method that can change,
add or delete a functional unit stored in a tool box.
In addition, the present invention provides a unified codec device and method that
can internationally standardize the concept and structure of codec unification for bit
stream decoding. Other problems that the present invention solves will become more
apparent through the following description related to some embodiments.
[Technical Solution]
To solve the above problems, an aspect of the present invention features a unified
codec device and method
According to an embodiment of the present invention, a decoding device can
include a table storing unit; a decoding description decoder, generating and storing in
the table storing unit n tables corresponding to an inputted decoding description, n being
a natural number; and a codec unit, decoding and outputting encoded video data,
included in a bit-stream inputted corresponding to the decoding description, to moving
picture data by using the table stored in the table storing unit.
The codec unit can include a toolbox, including a plurality of functional units,
respectively, realized to perform a predetermined process; a control signal/context
information storing unit, storing a plurality of information generated by the bit-stream
syntax-parsed by at least one of the plurality of functional units; and a connection
control unit, referring to at least one of predetermined tables, recognizing the processing
order of the plurality of functional units and controlling to activate a corresponding
functional unit.
A predetermined process of the functional units, respectively, can be realized to
independently perform each function suggested by a plurality of standards for decoding
the bit-stream.
If video data is encoded by the plurality of standards, the connection control unit can
refer to the table, successively activates the plurality of functional units performing the
processes according to the plurality of standards and decode the encoded video data to
the moving picture data.
The toolbox can include a parsing unit, generating and storing in the CSCI storing
unit a plurality of element information by the syntax parsing of the bit-stream, and
generating the encoded video data to macro block data having a predetermining size and
successively outputting the macro block data, a plurality of processing functional units,
designated with each process to be performed for converting the macro block data into
the moving picture data.
The n tables can include a syntax element table (SET) indicating a process for
generating information related to a bit-stream syntax and element information
corresponding to the bit-stream syntax; a syntax rule table (S-RT), indicating the
connection between the bit-stream syntaxes; a control signal and context information
table (CSCIT), indicating detailed information related to the element information, a
FU-rule table (F-RT), successively selecting the plurality of functional units; a FU list
(FL), indicating a list of the functional units; and a FU-CSCIT, indicating element
information to be inputted into the selected functional unit.
The syntax element table (SET), the syntax rule table (S-RT) and the FU-rule table
(F-RT) can be configured to comprise at least one of a READ command, reading k bits,
k being a natural number, by moving a file pointer; a SEEK command, the k bit without
moving the file pointer; a FLUSH command, moving the file pointer as much as the k
bits, a GO command, directing to the branching between indexes; and a SET command,
setting a flag of element information.
The decoding device can further include a default value table (DVT) indicating the
relation between an actual value and a code value when entropy coding.
The connection control unit can designate the order of activating a plurality of
selected functional units among the parsing functional unit and a plurality of processing
functional units by using the F-RT.
The processing functional unit, activated by the connection control unit, can perform
a predetermined process by using predetermined element information and output data
by a prior functional unit.
The parsing functional unit can generate the element information by using the SET,
the S-RT and the CSCIT.
The decoding device can further include a dividing unit for dividing the decoding
description and the bit-stream if a universal bit-stream unified with the decoding
description and the bit-stream is inputted.
The decoding description can include at least one table part, and at least one table
information for forming the table can be inserted into each table part.
The table information can include a codec number for decoding the bit-stream, and
designating information corresponding to a profile and level number, and the decoding
description decoder can extract n tables, corresponding to the designating information,
from a plurality of tables pre-stored in the table storing unit.
The table information inserted into the n table parts, respectively, can include binary
code information for forming each table, and the decoding description decoder
generates n tables by using the binary code information and stores the generated n tables
in the table storing unit
M table parts, m being a natural number, of the n table parts can include a codec
number related to a corresponding table and designating information corresponding to a
profile and level number, and k table parts, k being a number of n - m, comprises binary
code information, and the decoding description decode can extract m tables,
corresponding to the designating information, from a plurality of pre-stored tables and
generate k tables by using the binary code information and stores the k generated tables
in the table storing unit.
According to another embodiment of the present invention, a decoding device can
includes a table storing unit, storing a plurality of tables organically linked; a syntax
parser, storing a plurality of element information, generated by the syntax-parsing of an
inputted bit-stream, in an element information storing unit, and successively outputting
macro block data corresponding to encoded video data; an MB processing unit,
including a plurality of functional units realized to process each predetermined
processing operation; and a connection control unit, controlling to selectively activate
the plurality of functional units by referring to at least one table stored in the table
storing unit. Here, an arbitrary functional unit, activated by the connection control unit,
can process and output the macro block data by using predetermined element
information of element information stored in the element information storing unit
A predetermined process of the functional units, respectively, can be realized to
independently perform each function suggested by a plurality of standards for decoding
the bit-stream.
The connection control unit can control the operation of the syntax parser by
referring to a predetermined table
The decoding device can further include a decoding description decoder, generating
n tables, n being a natural number, corresponding to a decoding description if the
decoding description is further inputted, the decoding description corresponding to the
bit-stream.
The decoding device can further include a dividing unit, for dividing the decoding
description and the bit-stream and inputting the decoding description and the bit-stream
into the syntax parser and the decoding description decoder, respectively, if a universal
bit-stream, unified with the decoding description and the bit-stream, is inputted.
The description information can be inputted in a form of separate data or a
bit-stream.
The connection control unit can control the result data of a corresponding activated
functional unit to be inputted into the following activated functional unit, or a
corresponding activated functional unit can store its result data in a buffer memory that
can be accessed by the following activated functional unit.
Macro block data, successively outputted by the syntax parser, can be written in the
buffer memory.
The description information can be formed in a binary code.
The description information can include a syntax element table (SET) indicating a
process for generating information related to a bit-stream syntax and element
information corresponding to the bit-stream syntax; a syntax rule table (S-RT),
indicating the connection between the bit-stream syntaxes; a control signal and context
information table (CSCIT), indicating detailed information related to the element
information, a FU-rule table (F-RT), successively selecting the plurality of functional
units; a FU list (FL), indicating a list of the functional units; and a FU-CSCIT,
indicating element information to be inputted into the selected functional unit.
The syntax element table (SET), the syntax rule table (S-RT) and the FU-rule table
(F-RT) can be configured to comprise at least one of a READ command, reading k bits,
k being a natural number, by moving a file pointer; a SEEK command, the k bit without
moving the file pointer; a FLUSH command, moving the file pointer as much as the k
bits, a GO command, directing to the branching between indexes; and a SET command,
setting a flag of element information.
The decoding device can further include a default value table (DVT) indicating the
relation between an actual value and a code value when entropy coding.
The syntax parser can select a bit-stream syntax to be processed by using the S-RT,
can generate the element information by using the processor written in the SET and
store the generated element information in the element information storing unit,
corresponding to the CSCIT
The connection control unit can select the syntax parser or any one of functional
units by using the F-RT, recognize the property of the syntax parser or the functional
unit by using the FL, extract from the element information storing unit element
information to be inputted into the selected functional unit by using the FU-CSCIT and
the CSCIT and input the extracted element information into the selected functional unit
According to another embodiment of the present invention, a decoding device can
include an encoding unit, converting inputted moving picture into a bit-stream
according to a predetermined encoding method by successively using a plurality of
functional units; and a description information generating unit, generating syntax
information of the bit-stream and description information according to the connection of
the functional units. Here, the bit-stream and the description information can be
provided to a decoding device.
The bit-stream and the description information can be generated as one universal
bit-stream and provided to the decoding device. The description information is provided
in a form of separate data or a bit-stream to the decoding device.
The description information can include a syntax element table (SET) indicating a
process for generating information related to a bit-stream syntax and element
information corresponding to the bit-stream syntax; a syntax rule table (S-RT),
indicating the connection between the bit-stream syntaxes; a control signal and context
information table (CSCIT), indicating detailed information related to the element
information, a FU-rule table (F-RT), successively selecting the plurality of functional
units; a FU list (FL), indicating a list of the functional units; and a FU-CSCIT,
indicating element information to be inputted into the selected functional unit.
The encoding device can further include a default value table (DVT) indicating the
relation between an actual value and a code value when entropy coding.
According to another embodiment of the present invention, a decoding device can
include a table storing unit, storing at least one table information; a decoding
description decoder, generating and storing in the table storing unit n table information,
n being zero or a natural number and the same as or smaller than m, corresponding to
the decoding description received from an encoder, or selecting k table information, k
being a number of m - n, from the table storing unit; and a codec unit, generating and
outputting moving picture data corresponding to encoded video data in the bit-stream
received from the encoder by using m table information, m being a natural number and
the same as or larger than n, generated or selected by the decoding description decoder.
If the decoding description includes a codec number encoded with the bit- stream
and designating information corresponding to a profile and level number, the m table
information can be selected in the table storing unit.
The decoding description can include m table parts, and table information forming
the table can be inserted into each table part.
If the table part corresponding to arbitrary table information includes generation
information, the decoding description decoder can newly generate a corresponding table
by using the generation information.
If the table part corresponding to arbitrary table information includes changing
information, the decoding description decoder can change a corresponding table by
using the changing information
If the table part corresponding to arbitrary table information further includes a codec
number and a profile and level number, or if the codec number and the profile and level
number is included before the table part, the decoding description decoder can change
the table information corresponding to the codec by using the changing information.
The codec unit can include a toolbox, including a plurality of functional units,
respectively, realized to perform a predetermined process; a control signal/context
information (CSCI) storing unit, storing a plurality element information generated by
the bit-stream syntax-parsed by at least one functional unit of the plurality of functional
units; and a connection control unit, recognizing the processing order of the plurality of
functional units by referring to at least one of predetermined tables, and controlling to
activate the corresponding functional unit.
A predetermined process of the functional units, respectively, can be realized to
independently perform each function suggested by a plurality of standards for decoding
the bit-stream.
If video data is encoded by the plurality of standards, the connection control unit
refers to the table, can successively activate the plurality of functional units performing
the processes according to the plurality of standards and decodes the encoded video data
to the moving picture data.
The toolbox can include a parsing unit, generating and storing in the CSCI storing
unit a plurality of element information by the syntax parsing of the bit-stream, and
generating the encoded video data to macro block data having a predetermining size and
successively outputting the macro block data, a plurality of processing functional units,
designated with each process to be performed for converting the macro block data into
the moving picture data.
The m tables can include a syntax element table (SET) indicating a process for
generating information related to a bit-stream syntax and element information
corresponding to the bit-stream syntax; a syntax rule table (S-RT), indicating the
connection between the bit-stream syntaxes; a control signal and context information
table (CSCIT), indicating detailed information related to the element information, a
FU-rule table (F-RT), successively selecting the plurality of functional units; a FU list
(FL), indicating a list of the functional units; and a FU-CSCIT, indicating element
information to be inputted into the selected functional unit.
The syntax element table (SET), the syntax rule table (S-RT) and the FU-rule table
(F-RT) can be configured to include at least one of a READ command, reading s bits, s
being a natural number, by moving a file pointer; a SEEK command, the k bit without
moving the file pointer; a FLUSH command, moving the file pointer as much as the k
bits, a GO command, directing to the branching between indexes; and a SET command,
setting a flag of element information.
The decoding device can further include a default value table (DVT) indicating the
relation between an actual value and a code value when entropy coding.
The connection control unit can designate the order of activating a plurality of
selected functional units among the parsing functional unit and a plurality of processing
functional units by using the F-RT.
The processing functional unit, activated by the connection control unit, can perform
a predetermined process by using predetermined element information and output data
by a prior functional unit.
The parsing functional unit can generate the element information by using the SET,
the S-RT and the CSCIT.
The decoding device can further include a dividing unit for dividing the decoding
description and the bit-stream if a universal bit-stream unified with the decoding
description and the bit-stream is received from the encoder.
According to another embodiment of the present invention, a decoding device can
include an input unit, receiving a bit-stream and description information; a table storing
unit, storing a table corresponding to the decoding description; and a codec unit,
decoding the bit-stream by using the table stored in the table storing unit. The decoding
description can include information related to the connection between syntax
information of the bit-stream and functional units included in the codec.
The decoding description can include at least one table part, and at least one table
information for forming or identifying the table can be inserted into each table part.
The table information can include a codec number for decoding the bit-stream, and
designating information corresponding to a profile and level number, and the decoding
description decoder can extract n tables, corresponding to the designating information,
from a plurality of tables pre-stored in the table storing unit.
The table information inserted into the n table parts, respectively, can include binary
code information for forming each table, and the decoding description decoder can
generate the binary code information by using n tables and store the generated binary
code information in the table storing unit.
M table parts, m being a natural number, of the n table parts can include a codec
number related to a corresponding table and designating information corresponding to a
profile and level number, and k table parts, k being a number of n - m, comprises binary
code information, and the decoding description decode can extract m tables,
corresponding to the designating information, from a plurality of pre-stored tables and
generate k tables by using the binary code information and stores the k generated tables
in the table storing unit.
The codec unit can include a toolbox, including a plurality of functional units,
respectively, realized to perform a predetermined process; a control signal/context
information (CSCI) storing unit, storing a plurality element information generated by
the bit-stream syntax-parsed by at least one functional unit of the plurality of functional
units; and a connection control unit, recognizing the processing order of the plurality of
functional units by referring to at least one of predetermined tables, and controlling to
activate the corresponding functional unit.
The n tables can include a syntax element table (SET) indicating a process for
generating information related to a bit-stream syntax and element information
corresponding to the bit-stream syntax; a syntax rule table (S-RT), indicating the
connection between the bit-stream syntaxes; a control signal and context information
table (CSCIT), indicating detailed information related to the element information, a
FU-rule table (F-RT), successively selecting the plurality of functional units; a FU list
(FL), indicating a list of the functional units; and a FU-CSCIT, indicating element
information to be inputted into the selected functional unit.
The decoding device can further include a default value table (DVT) indicating the
relation between an actual value and a code value when entropy coding.
According to another embodiment of the present invention, a decoding device can
include a toolbox, including a plurality of functional units, respectively, realized to
perform a predetermined process; a control signal/context information storing unit,
storing a plurality of information generated by the bit-stream syntax-parsed by at least
one of the plurality of functional units; and a connection control unit, referring to at
least one of predetermined tables, recognizing the processing order of the plurality of
functional units and controlling to activate a corresponding functional unit. Here, a
corresponding activated functional unit can store its result data in a buffer memory that
can be accessed by the following activated functional unit.
The decoding device can further include a decoding description decoder, generating
at least one table by referring to the inputted decoding description and storing the
generated table in the table storing unit, or selecting n tables from the tables pre-stored
in the table storing unit. Here, the decoding description includes information related to
the connection between syntax information of the bit-stream and functional units
included in the codec.
The decoding description can further include information related to at least one of
an address of a buffer memory, written with input data to be read by the activated, and
another address of the buffer memory, to be written with the result data processed by
the functional unit.
The tables, stored in the table storing unit, can include a syntax element table (SET)
indicating a process for generating information related to a bit-stream syntax and
element information corresponding to the bit-stream syntax; a syntax rule table (S-RT),
indicating the connection between the bit-stream syntaxes; a control signal and context
information table (CSCIT), indicating detailed information related to the element
information, a FU-rule table (F-RT), successively selecting the plurality of functional
units; a FU list (FL), indicating a list of the functional units; and a FU-CSCIT,
indicating element information to be inputted into the selected functional unit.
The decoding device can further include a default value table (DVT) indicating the
relation between an actual value and a code value when entropy coding.
According to another embodiment of the present invention, a decoding device can
include a decoding description decoder, generating at least one table by using inputted
decoding description; and a codec unit, decoding and outputting encoded video data,
included in an inputted bit-stream, to moving picture data by using the table.
The decoding device can further include a table storing unit for storing at least one
table generated by the decoding description decoder.
The codec unit can include a buffer memory for storing intermediate data generated
in the operation that the encoded video data is decoded to the moving picture data.
Another aspect of the present invention features a decoding method and a recorded
medium recorded a program for executing the method thereof.
According to an embodiment of the present invention, a decoding method can
include (a) receiving a bit-stream and description information; (b) generating and
storing a plurality of tables corresponding to the description information; (c) storing in
an element information storing unit a plurality of element information generated by the
syntax parsing of the bit-stream by using at least one table; (d) converting encoded
video data of the bit-stream into macro block data of a predetermined size and
successively outputting the macro block data; (e) activating an arbitrary functional unit
by referring to at least one table information; and (f) the activated functional unit
performing a predetermined process by using element information stored in the element
information storing unit and outputting its result data. Here, the steps of (e) and (f) are
repeated until the result data is moving picture data corresponding to the encoded video
data.
A predetermined process of the functional units, respectively, can be realized to
independently perform each function suggested by a plurality of standards for decoding
the bit-stream.
If the element information, requested to the functional unit to be selected in the step
of (e), can be not stored in the element storing unit while the steps of (e) and (f) are
repeated, the step of (b) is performed again, and then, the steps of (e) and (f) start to be
repeated.
A corresponding activated functional unit can store its result data in a buffer
memory that can be accessed by the following activated functional unit.
Macro block data, successively outputted in the step of (b), is written in the buffer
memory.
The description information can include a syntax element table (SET) indicating a
process for generating information related to a bit-stream syntax and element
information corresponding to the bit-stream syntax; a syntax rule table (S-RT),
indicating the connection between the bit-stream syntaxes; a control signal and context
information table (CSCIT), indicating detailed information related to the element
information, a FU-rule table (F-RT), successively selecting the plurality of functional
units; a FU list (FL), indicating a list of the functional units; and a FU-CSCIT,
indicating element information to be inputted into the selected functional unit.
The decoding method can further include a default value table (DVT) indicating the
relation between an actual value and a code value when entropy coding.
The SET, the S-RT, the CSCIT and the DVT can be used in the step of (c).
The functional unit for performing the steps of (c), (d) and (f) can be determined by
the F-RT.
The step of (c) can include (g) selecting a bit-stream syntax to be processed by using
the S-RT; (h) generating the element information by using the process written in the
SET; and (i) storing the generated element information in the element information
storing unit, corresponding to the CSCIT. Here, the steps of (g) and (i) can be repeated
until element information corresponding to all bit-stream syntaxes is generated and
stored
If the bit-stream and the description information is inputted as one universal
bit-stream, the step of (b) can be performed prior to the step of dividing the bit-stream
and the description information from the universal bit-stream.
The description information can be inputted in a form of separate data or a
bit-stream. The description information is formed in a binary code.
According to another embodiment of the present invention, a decoding method can
include (a) converting inputted moving picture into a bit-stream according to a
predetermined encoding method by successively using a plurality of functional units;
(b) generating syntax information of the bit-stream and description information
according to the connection of the functional units; and (c) providing the bit-stream and
the description information to a decoding device.
The step (c) can include generating the bit-stream and the description information as
one universal bit-stream; and providing the universal bit-stream to the decoding device
According to another embodiment of the present invention, a recorded medium
having recorded a program including a typicalized command for performing a decoding
method, the command being executable in a decoding device, and the recorded medium
being readable by the decoding device, including (a) generating and storing a plurality
of tables corresponding to the description information; (b) storing a plurality of element
information generated by the syntax parsing of an inputted bit-stream by using at least
one of the stored tables; (c) converting encoded video data of the bit-stream into macro
block data of a predetermined size and successively outputting the macro block data; (d)
a process, to be performed for converting the macro block data into the moving picture
data, calling one processing functional unit by referring to at least one of the stored
table information among each of he plurality of designated processing unit. Here, the
called processing unit can output the result data of the designated process by using
predetermined element information of the plurality of stored element information, and
the step of (d) is repeated until the result data is the moving picture data corresponding
to the encoded video data.
If the element information, requested to the functional unit to be selected in the step
of (d), is not stored in the element storing unit while the step of (d) are repeated, the step
of (b) can be performed again, and then, the step of (d) can start to be repeated
A predetermined process of the processing functional units, respectively, can be
realized to independently perform each function suggested by a plurality of standards
for decoding the bit-stream.
[Description of Drawings]
FIG. 1 is a simplified block diagram illustrating the structure of a typical decoder;
FIG. 2 is a simplified block diagram illustrating the structure of a typical encoder;
FIG. 3 is a simplified block diagram illustrating the structure of a decoder in
accordance with an embodiment of the present invention;
FIG. 4 is a simplified block diagram illustrating the structure of a universal
bit-stream in accordance with an embodiment of the present invention;
FIG. 5 is a simplified block diagram illustrating the structure of a codec unit in
accordance with an embodiment of the present invention;
FIG. 6 is a simplified block diagram illustrating the structure of a syntax parser in
accordance with an embodiment of the present invention;
FIG. 7 is a simplified block diagram illustrating the structure of an MB processing
unit in accordance with an embodiment of the present invention;
FIG. 8 illustrates the structure of a universal bit-stream in accordance with a first
embodiment of the present invention;
FIG. 9 illustrates the structure of a universal bit-stream in accordance with a second
embodiment of the present invention;
FIG. 10 illustrates the structure of a universal bit-stream in accordance with a third
embodiment of the present invention;
FIG. 11 illustrates the structure of a universal bit-stream in accordance with a forth
embodiment of the present invention;
FIG. 12 illustrates the structure of a universal bit-stream in accordance with a fifth
embodiment of the present invention;
FIG. 13 illustrates the structure of a universal bit-stream in accordance with a sixth
embodiment of the present invention;
FIG. 14 illustrates the structure of a universal bit-stream in accordance with a
seventh embodiment of the present invention;
FIG. 15 illustrates the structure of a universal bit-stream in accordance with an
eighth embodiment of the present invention;
FIG. 16 is a block diagram illustrating a encoder in an embodiment of the present
invention; and
FIG. 17 through FIG. 56 are examples illustrating each table in accordance with
embodiments of the present invention.
[Mode for Invention]
The above objects, features and advantages will become more apparent through the
below description with reference to the accompanying drawings.
Since there can be a variety of permutations and embodiments of the present
invention, certain embodiments will be illustrated and described with reference to the
accompanying drawings. This, however, is by no means to restrict the present invention
to certain embodiments, and shall be construed as including all permutations,
equivalents and substitutes covered by the spirit and scope of the present invention.
Throughout the drawings, similar elements are given similar reference numerals.
Throughout the description of the present invention, when describing a certain
technology is determined to evade the point of the present invention, the pertinent
detailed description will be omitted.
Terms such as "first" and "second" can be used in describing various elements, but
the above elements shall not be restricted to the above terms. The above terms are used
only to distinguish one element from the other. For instance, the first element can be
named the second element, and vice versa, without departing the scope of claims of the
present invention. The term "and/or" shall include the combination of a plurality of
listed items or any of the plurality of listed items.
When one element is described as being "connected" or "accessed" to another
element, it shall be construed as being connected or accessed to the other element
directly but also as possibly having another element in between. On the other hand, if
one element is described as being "directly connected" or "directly accessed" to another
element, it shall be construed that there is no other element in between.
The terms used in the description are intended to describe certain embodiments only,
and shall by no means restrict the present invention. Unless clearly used otherwise,
expressions in the singular number include a plural meaning. In the present description,
an expression such as "comprising" or "consisting of is intended to designate a
characteristic, a number, a step, an operation, an element, a part or combinations thereof,
and shall not be construed to preclude any presence or possibility of one or more other
characteristics, numbers, steps, operations, elements, parts or combinations thereof.
Unless otherwise defined, all terms, including technical terms and scientific terms,
used herein have the same meaning as how they are generally understood by those of
ordinary skill in the art to which the invention pertains. Any term that is defined in a
general dictionary shall be construed to have the same meaning in the context of the
relevant art, and, unless otherwise defined explicitly, shall not be interpreted to have an
idealistic or excessively formalistic meaning.
Hereinafter, preferred embodiments will be described in detail with reference to the
accompanying drawings. Identical or corresponding elements will be given the same
reference numerals, regardless of the figure number, and any redundant description of
the identical or corresponding elements will not be repeated.
FIG. 1 is a simplified block diagram illustrating the structure of a typical decoder,
and FIG. 2 is a simplified block diagram illustrating the structure of the typical encoder.
As illustrated in FIG. 1, an MPEG-4 decoder 100 typically includes a variable
length decoding unit 110, an inverse scanning unit 115, an inverse DC/ AC prediction
unit 120, an inverse quantization unit 125, an inverse discrete cosine transform unit 130
and a VOP reconstruction unit 135. It shall be evident that the decoder 100 can have a
structure changed depending on an applied standard and some elements can be replaced
with other elements.
If a transferred bit stream is syntax-parsed and corresponding header information
and a corresponding image data are extracted, the variable length decoding unit 110
forms a quantized discrete cosine transform (DCT) coefficient by using predetermined
Huffman table, the inverse scanning unit 115 generates data having the same order as
pertinent moving picture data 140 by performing inverse scanning. In other words, the
inverse scanning unit 115 outputs a value in inverse order of being scanned by various
methods, hi the encoding, after performing the quantization, a scanning direction can be
defined depending on the distribution of a frequency band. Typically, a zig-zag
scanning method can be used, but various scanning methods per codec can be used.
Syntax parsing can be unifiedly performed in the variable length decoding unit 110
or in an element for processing the bit stream prior to the variable length decoding unit
110. In this case, since the same standard is applied to the corresponding encoder and
decoder, the syntax parsing is processed by a predetermined criterion only, to
correspond to the pertinent standard.
The inverse DC/ AC prediction unit 120 determines the direction of a reference
block for prediction by using the size of the DCT coefficient at a frequency band.
The inverse quantization unit 125 performs the inverse quantization of
inverse-scanned data. In other words, the inverse quantization unit 125 returns DC and
AC coefficients by using a quantization parameter (QP) designed in an encoding
process.
The inverse discrete cosine transform unit 130 calculates an actual moving picture
data pixel value to generate a video object plane (VOP) by performing inverse discrete
cosine transform.
The VOP reconstruction unit 135 decodes a moving picture signal by using the VOP
generated by the inverse discrete cosine transform unit 130 and outputs the decoded
moving picture signal .
As illustrated in FIG. 2, an MPEG-4 encoder 200 typically includes a discrete cosine
transform unit 210, a quantization unit 215, a DC/ AC prediction unit 220, a scanning
unit 230 and a variable length encoding unit 235.
Each element included in the encoder 200 performs the inverse functions of the
corresponding elements of the encoder 100. This is well-known to those of ordinary
skill in the art. Briefly describing, the encoder 200 converts a moving picture signal (i.e.
a digital video pixel value) to a frequency value through the DCT and the quantization
and performs the encoding of the frequency value. Then, the encoder 200 performs
variable length encoding of the frequency value and outputs the frequency value in a
compressed bit stream form, the variable length encoding differentiating bit length
according to the frequency number of information
FIG. 3 is a simplified block diagram illustrating the structure of a decoder in
accordance with an embodiment of the present invention, and FIG. 4 is a simplified
block diagram illustrating the structure of a universal bit-stream in accordance with an
embodiment of the present invention. FIG. 5 is a simplified block diagram illustrating
the structure of a codec unit in accordance with an embodiment of the present invention.
FIG. 6 is a simplified block diagram illustrating the structure of a syntax parser in
accordance with an embodiment of the present invention. FIG. 7 is a simplified block
diagram illustrating the structure of an MB processing unit in accordance with an
embodiment of the present invention
As illustrated FIG. 3, the decoder 300 of the present invention has a different
structure from the conventional decoder (refer to FIG. 1).
In other words, the decoder 300 in accordance with the embodiment of the present
invention includes a dividing unit 310, a decoding description decoder (DDD) 320, a
table storing unit 330 and a codec unit 340. It shall be obvious that at least one of the
illustrated elements (e.g. the dividing unit 310, the DDD 320 and the codec unit 340)
can be realized as a software program (or the combination of program codes) embodied
for performing a function to be described below.
The dividing unit 310, which divides an inputted universal bit-stream 305 into a
decoding description (DD) part and a typical bit-stream (hereinafter, referred to as a
conventional bit-stream) part, inputs the decoding description by using the DDD 320
and the conventional bit-stream) by using the codec unit 340.
In other words, the universal bit-stream of the present invention, as illustrated in
FIG. 4, can include the decoding descriptions 410 through 470 and the conventional
bit-stream.
The decoding description is related to the structure information and encoding
method (or the connection between functional units) of the conventional bit-stream 105,
in order to parse a bit-stream, encoded by various encoding methods and/or by a
function selected by a user among diverse functions by a common analyzing method.
It is obvious that the decoding description can be included in the universal
bit-stream 305 and transferred to the decoder 300 (referring to FIG. 4 and FIG. 9
through FIG. 12) or be provided in a form of independent bit-stream or data to the
decoder 300. The decoding description can be described by using a description method
such as textual description or binary description.
The decoding description can include a functional unit list (FL) 410, a functional
unit rule table (F-RT) 420, a functional unit CSCIT (FU-CSCIT) 430, a control signal
and context information table (CSCIT) 440, a syntax element table (SET) 450, a
syntax-rule table (S-RT) 460 and a default value table (DVT) 470. It is obvious that the
order of each table for forming the decoding description information can be variously
changeable.
Here, the FL 410, the F-RT 420, the FU-CSCIT 430 and the CSCIT 440 can be used
in order to set the connection of each functional unit (the corresponding table can be
referred to as a 'a first decoding description').
Among them, the FU-CSCIT 440 can be the decoding description information for
the mapping between each functional unit in an MB processing unit 550 and element
information stored in a CSCI storing unit 520. In this case, the element information can
function as a control variable for each functional unit in the MB processing unit 550
and/or a syntax parser 540.
Beside that, the CSCIT 440, SET 450, the S-RT 460 and the DVT 470 can be used
for the parsing of the conventional bit-stream 105 (the corresponding table can be
referred to as a 'second decoding description'). The structure and function of each
decoding description information will be described below in detail.
The DDD 320 converts the decoding description, inputted from the dividing unit,
into a plurality of tables in a form of being recognizable by codec unit 340 and stores
the tables in the table storing unit 330. In other words, the DDD 320 converts the data,
in a form of binary data, included in the universal bit-stream into the tables capable of
being analyzed by the syntax parser 540 and stores the tables in the table storing unit
330.
The tables stored in the table storing unit 330 by the decoding description analysis
of the DDD 320 can include the FL 410, the F-RT 420, the FU-CSCIT 430, CSCIT 440,
the SET 450, the S-RT 460 and the DVT 470. The DDD 320, as illustrated in FIG. 10,
can identify each table by referring to a table identifier (IT) 1010.
Of course, it is not necessary that all tables must be stored in the decoding
description. As illustrated in FIG. 8, the decoding description can include a codec
number (codec #) 920. Alternatively, as illustrated in FIG. 10, only some tables of the
decoding description can include a codec number 1120 and a profile and level number
1130. In the case of including the codec number and the profile and level number, the
DDD 320 can generate no new table for overall tables or some tables and select a
corresponding table of the pre-stored tables so as to be used when decoding.
Of course, in the case of including the codec number and the profile and level
number and changing information, the DDD 320 can extract a table corresponding to
the pertinent codec from the pre-stored tables and apply the changing information to the
selected table to generate a new table. In the meantime, in the case of including no
codec number and no profile and level number but including the table description for
generating a table, the DDD 320 can generate a new table for the overall tables or some
tables so as to be used when decoding.
Beside that, the decoding description, as illustrated in FIG. 11 , can further include
not only a decoding description for each table (DD-T) 1210 but also revision
information 1230. The structure of each universal bit-stream will be described in detail
below with referent to the pertinent drawings.
The table storing unit 330 stores each table divided by the DDD 320. Of course, in
case that the universal bit-stream 305 includes the codec number 920 or 1120 and the
profile and level number 930 or 1130, at least one table can be stored in advance so as
to be used by the codec unit 340.
The codec 340, as illustrated in FIG. 5, can include a toolbox 510, a control
signal/context information (CSCI) storing unit 520 and a connection control unit 530.
The toolbox 510 includes the syntax parser 540 and a plurality of functional units
(FU). It shall be obvious that the syntax parser 540 can be embodied as a functional unit.
The syntax parser 540 and functional units, respectively, can be realized as the
combination of program codes.
In other words, the toolbox 510 is the part included with functional units realized to
perform each function. Each functional unit, which is formed in the successive
connection according to the connection control of the connection control unit 530,
outputs encoded video data, included in the conventional bit-stream 105, as moving
picture data. However, the syntax parser 540 included in the toolbox can be set to
perform the analysis of the conventional bit-stream 105 without the connection control
of the connection control unit 530. This is because the following functional units can
use the element information, analyzed and stored in the CSCI storing unit 520 by the
syntax parser 540, and/or the moving picture having a macro block size, outputted from
the syntax parser 540.
The syntax parser 540 analyzes an inputted conventional bit-stream 105 by using the
SET 450, the S-RT 460, the CSCIT 440 and the DVT 470 and stores element
information, which is the result of the syntax parsing, in the CSCI storing unit 520. For
example, the CSCI storing unit 520 can be a buffer memory, and the element
information can be control signal/context information (CSCI). The element information,
parsed by the syntax parser 540 and stored in the CSCI storing unit 520, can be a
parsing result value of the corresponding step and simultaneously an input value
determining the following syntax of the conventional bit-stream.
The syntax parser 540 also performs the entropy decoding of the header of the
syntax-parsed conventional bit-stream 105 and video data and outputs moving picture
data having a predetermined macro block size to the following functional unit according
to the connection control of the connection control unit 530.
Of course, the syntax parser 540 can store the moving picture data having the macro
block size in the predetermined buffer memory, and the following functional unit can
read and process the moving picture data having the macro block size in the
corresponding buffer memory, and then, the processed moving picture data can be
stored in the corresponding buffer memory for the processing of the following
functional unit, hi other words, it shall be obvious that the syntax parser 540 can store
the moving picture data having the macro block size in the CSCI storing unit 520 or in
an additional buffer memory, and then, the connection control unit 530 can provide the
stored moving picture data having the macro block to a selected functional unit, or the
selected functional unit can read the pertinent moving picture data from the CSCI
storing unit 520 or the additional buffer memory. However, the below description
assumes that the moving picture data having the macro block size, outputted by the
syntax parser 540, is inputted into the functional unit according to the connection
control of the connection control unit 530.
The syntax parser 540 can be realized as a software program (the combination of
program codes). This is because although the syntax parser 540 is embodied to perform
a plurality of functions corresponding to a plurality of standards (e.g.
MPEG-1/2/3/ABC), respectively, the corresponding operation can be carried out by
using the SET 450, the S-RT 460, the CSCIT 440 and the DVD 470. Alternatively, it is
obvious that the syntax parser 540, as illustrated in FIG. 6, can be realized by dividing it
into a plurality of functional units or realized as the combination of program codes
blocked with each functional unit.
Below is described the function of the syntax parser 540 by explaining each
functional exampled in FIG. 6 in detail.
As exampled in FIG. 6, the syntax parser 540 can includes a network abstraction
layer parsing (NALP) FU 610, a syntax parsing (SYNP) FU 620, a context
determination (CTX) FU 630, a variable length decoding (VLD) FU 640, a run length
decoding (RLD) FU 650 and a macro block generator (MGB) FU 660.
Of course, the syntax parser 540 can include any functional unit for the syntax
parsing regardless of the applied standard. Beside that, it is shall be obvious that the
functional unit necessary for the syntax parsing in the technology developing operation
can newly be added, the existing functional unit can be changed and the unnecessary
functional unit can be removed. It is also obvious that each functional unit equipped in
the syntax parser 540 can be as one functional unit in case that the functional units is not
independently provided and is able to be identically processed regardless of the
corresponding standards. Since the function of each functional unit is well-known to
those of ordinary skill in the art, the function will be briefly described below.
The NALP FU 610 parses the network abstraction layer of the MPEG-4 AVC, and
the SYNP FU 620 parses the syntax of a bit-stream. The SYNP FU 620 can be included
in the VLD FU 640.
The CTX FU 630 determines a VLC table of the MPEG-4 AVC, and the VLD FU
640 performs the entropy decoding.
The RLD FU 650 performs the entropy decoding of AC values, and the MBG FU
660 couples DC values and AC values to generate one macro block datum. The overall
or some functional units can be included in the VLD FU 640 according to a system
realizing method.
As described above, the syntax parser 540 can be realized as a software program or
a plurality of software programs (e.g. the VLD FU 640 can be independently realized as
a separate software program). The operation, which the syntax parser 540 extracts or
generates element information by using first description information (e.g. at least one of
the SET 450, the S-RT 460, the DVT 470 and the CSCIT 440) and stores the extracted
or generated element information in the CSCIT storing unit 520, will be described in
detail in the description related to the connection control unit 530.
The MB processing unit 550 decodes moving picture data in macro block units,
inputted from the syntax parser 540 (or stored in a buffer memory by the syntax parser
540) and outputs it as moving picture data having a predetermined size.
The MB processing unit 550 can include a functional unit for performing the
aforementioned function corresponding to each standard. Each of functional units can
be embodied as an independent processing block (e.g. a software program, the
combination of command codes and a function) to form the MB processing unit 550.
Alternatively, the MB processing unit 550 can be realized as one unified processing
block. It shall be obvious that the MB processing unit 550 can perform the identical
processing according to the connection control of the connection control unit 530 in
spite of being realized as one unified processing block.
The MB processing unit 550, as illustrated in FIG. 7, includes a de-blocking filter
(DF) FU 710, a VOP reconstructor (VR) FU 715, a frame field reordering (FFR) FU
720, an intra prediction and picture reconstruction (IPR) FU 730, an inverse transform
(IT) FU 735, an inverse quantization (IQ) FU 745, an inverse AC prediction (IAP) 755,
an inverse scan (IS) FU 760 and a DC reconstruction FU 765.
An IT4x4 FU 740, an IQ4x4 FU 750 and the DCR4x4 FU 770 process a block
having a 4x4 size. This is because data having an 8x8 block size is processed in the
transform, quantization and prediction in the case of MPEG- 1/2/4, while there is a case
that data having a 4x4 block size are processed in the case of MPEG-4 AVC.
The MB processing unit 550 can include any functional unit for the syntax parsing
regardless of the applied standard. Beside that, it is shall be obvious that the functional
unit necessary for the syntax parsing in the technology developing operation can newly
be added, the existing functional unit can be changed and the unnecessary functional
unit can be removed. For example, in the case of additionally requesting the IS4x4 FU
processing the data having the 4x4 block size for decoding processing, the pertinent
functional units can be added to the MB processing unit 550. Alternatively, a special
prediction (SPR) FU (not shown) for performing the intra prediction in MPEG-4 AVC
can be added.
It is also obvious that each functional unit equipped in the MB processing unit 550
can be as one functional unit in case that the functional units is not independently
provided and is able to be identically processed regardless of the corresponding
standards. Since the function of each functional unit is well-known to those of ordinary
skill in the art, the function will be briefly described below.
The DF FU 710 is the de-blocking filter of MPEG-4 AVC, and the VR FU 715
stores a recovered pixel value.
The FFR FU 720 is the functional unit for an interlaced mode, and the IPR FU 730
performs the intra prediction of MPEG-4 AVC, and then, stores the recovered pixel
value. As described above, the intra prediction of MPEG-4 AVC can be performed by
the SPR functional unit.
The IT FU 735 performs the inverse transform of the DC values and AC values, and
the IQ FU 745 performs the inverse quantization of the AC values.
The IAP FU 755 performs the inverse AC prediction of the AC values, and the IS
FU 760 performs the inverse scan of the AC values. The DCR FU 765 performs the
inverse prediction and the quantization of the DC values.
It is not necessary that each operation of the aforementioned syntax parser 540 and
MB processing unit 550 must be successively performed (i.e. the MB processing unit
starts to function after the syntax parser completes to function). It is also obvious that
each operation of the aforementioned syntax parser 540 and MB processing unit can be
performed in parallel. This is because it can be sufficient that only minimum element
information necessary for the operation of the functional unit currently operated by the
MB processing unit 550 is stored in the CSCI storing unit 520, for example.
The CSCI storing unit 520 stores element information (e.g. CSCI), which is the
result value by the syntax parsing by using the SET 450 and the S-RT 460 in the syntax
parser 540 so as to correspond to the CSCIT 440. For example, the CSCI storing unit
520 can be a buffer memory.
The element information, stored in the CSCI storing unit 520, can be used as input
data for performing the process of the SET 450 by the syntax parser 450 or as a control
variable for determining the following connection index in the S-RT 460.
The element information, stored in the CSCI storing unit 520, can be also used as a
control variable for determining the following connection index in the F-RT 420 by the
connection control unit 530 or can be used for mapping the input CSCI of a specific
functional unit to the element information, stored in the CSCI storing unit 520, in the
FU-CSCIT 430.
In other words, the element information, stored in the CSCI storing unit 520, allows
the syntax parser 540 and the MB processing unit 550 to be linked to each other.
The connection control unit 530 sets the connection of each functional unit included
in the MB processing unit 550 to decode a bit-stream encoded by various standards. In
other words, the connection control unit 530 selects necessary functional units among
each functional unit included in the MB processing unit 550 and determines the
performing order of the selected functional units. For this, the connection control unit
530 connects the pertinent functional units by using the FL 410, F-RT 420 and the
CSCIT 440 and allows each functional unit to decode moving picture data in macro
block units by using the element information provided by the syntax parser 540.
The connection control unit 530 uses the FL 410, the F-RT 420, the FU-CSCIT 430
and the CSCIT 440 to perform the aforementioned function.
First, the FL 410, as illustrated in FIG. 17, is the table including the list of each
functional unit, equipped in the MB processing unit 550, input and output data of the
pertinent functional units and element information controlling the functional units.
The FL 410 can further include a buffer memory title of input data for each
functional unit (or a history address of the corresponding data or an address of the
buffer memory, written with the pertinent data) and a buffer memory title of output data
for the pertinent data (or a history address of the corresponding data or an address of the
buffer memory, to be written with the pertinent data).
Accordingly, each functional list can read input data and write processed output data,
by using the FL 410. Alternatively, the input and output data can be transferred between
each functional unit, or the connection control unit 530 can provide appropriate input
data to each functional unit.
However, the input data and output data of the syntax parser 540 generating element
information is not written in the FL 410. This is because the syntax parser 540 generates
the element information by using the SET 450 and writes the generated element
information in a predetermined area.
The FL 410, as illustrated in FIG. 17, can include an identifier (index) for
identifying each functional unit, a name of each functional unit (FU name), the number
of input control (CSCI) variable necessary for the corresponding functional unit, input
data and output data.
A specific functional unit, selected by the connection control unit 530, receives
input data from the connection control unit 530 and performs a predetermined process,
to generate output data. Here, the functional unit refers to a series of processing
operation (e.g. a task, algorithm or function) included in the MB processing unit 550
and performing the processing of the input data by using a predetermined process, to
generate the output data. The pertinent functional unit can store the output data in the
buffer memory to process the following functional unit (i.e. the functional unit followed
and selected by the connection control unit). Since the functional unit exampled in FIG.
17 has already been described in the description related to the MB processing unit 550,
the pertinent description will be omitted. Also, a QFS, a QFSP, a PQF and a QF in FIG.
17 are well-known to those of ordinary skill in the MPEG field, the corresponding
description will be omitted. For example, the QFS refers to an output value performed
with variable length coding.
In case it is sufficient that the codec unit 340 uses one standard to decode encoded
video data included in the conventional bit-stream 105, the FL 410 can include only
information related to the functional units for performing the processing corresponding
to the pertinent standard.
However, in the case of encoding the corresponding video data by a plurality of
standards (e.g. in the case of applying the encoding standard depending on a plurality of
frame units), there is requested the information related to the functional units according
to the plurality of standards to decode the corresponding encoded video data.
Accordingly, in this case, the FL 410 must include the information related to the
functional units according to the plurality of standards, necessary for the decoding of
the encoded video data, among all functional units according to the corresponding plural
standards.
Of course, although the video data is differently applied with the encoding standard
per plurality of frame unit, if a plurality of the conventional bit-stream 105 and the
universal bit-stream 305 are generated and outputted per applied encoded standard, it is
sufficient that each FL 410 includes the information related to the functional units
according to corresponding standards, respectively.
The FL 410 can be described by a describing method such as textual description and
binary description (a form of a bit-converted binary code). Beside that, minimum
necessary data in the table can be described in similar script languages.
Next, the F-RT 420 provides the connection rule of the functional units to be used
for the decoding of the inputted conventional bit-stream 105.
The F-RT 420, as shown FIG. 18, includes an index (R) identifying each connection
rule, a functional unit (F) corresponding to the pertinent connection index, element
information (input CS/CI, C) necessary for the connection control, the number of
branches (No. of branches) capable of being connected to the following functional unit,
and branch information (#1, #2, and # 3) necessary as many as the branch number.
There is provided the necessary element information in case that the number of
branches is 2 or more. In this case, the connection index can be varied depending on the
determining result of conditional sentence using the necessary element information. In
other words, if the number of branches is 1, there is no necessary element information,
and the connection index, indicated by the branch information, progresses. The
following connection index (R) is represented after the pertinent conditional sentence.
In case it is sufficient that the codec unit 340 uses one standard to decode encoded
video data included in the conventional bit-stream 105, the F-RT 420 will indicate the
connection of the functional units for performing the processing corresponding to the
pertinent standard.
However, in the case of encoding the corresponding video data by a plurality of
standards (e.g. in the case of applying the encoding standard depending on a plurality of
frame units), it is obvious that the F-RT 420 includes the information for indicating the
connection of the functional units according to the plurality of standards to decode the
corresponding encoded video data. Accordingly, it is obvious that each table, described
below, further includes the pertinent information if the tables request additional
information and/or need to be changed so as to be applied to the plurality of standards.
The F-RT 420 can be described by a describing method such as textual description
and binary description (a form of a bit-converted binary code). Beside that, minimum
necessary data in the table can be described in similar script languages.
As exampled in FIG. 18, the functional unit for performing RO through R5 and R12
is FO among the index (R) identifying each connection rule. The FO, referring to the FL
410 of FIG. 17, is the syntax parser 540. Accordingly, the connection control 530
controls the connection of the operation of each functional unit (including the syntax
parser 540) equipped in the toolbox 510. Also, in case that the selected functional unit is
the syntax parser 540, the F-RT 420 includes the connection rule indicating that the
syntax parser 540 has to read and process n th syntax (e.g. FO (R74)).
Beside that, the index Rl is defined with 'PROCESSl' on the item of the functional
unit. For example, 'PROCESSl ' can be the function called to perform other operations
(i.e. operations excluding syntax parsing and data decoding) necessary for programming
a software such as variable declaration, memory setting and variable initialization. This
kind of the process can be inserted into the necessary location of the F-RT 420 and
called by the connection control unit 530 in the syntax parsing operation or in the
middle of the data decoding operation, so as to be performed. Even though FIG. 18
illustrates that one process is inserted, it shall be obvious that a plurality of processes
having all identical performing operations or performing operations different from each
other can be inserted into a plurality of locations of the F-RT 420.
Next, the FU-CSCIT 430 refers to the table for connecting the element information,
stored in the CSCI storing unit, to the element information (input CSCI) necessary for
each functional unit.
As illustrated in FIG. 19, the FU-CSCIT 430 includes an index (F-C) arranged as a
pair of the index and the element information of the FL 410, corresponding element
information and an index (C) used in the CSCIT 440 for the mapping. Beside that, the
FU-CSCIT 430 can further include a data type of the element information. For example,
the data type can be described in a form of 9-bit integer or 1-bit flag.
The FU-CSCIT 430 can be described by a describing method such as textual
description and binary description (a form of a bit-converted binary code). Beside that,
minimum necessary data in the table can be described in similar script languages.
For example, if Fl receives 4 items of element information from the F-RT 420 (refer
to FIG. 17), the FU-CSCIT 430 is listed with the element per functional unit. In other
words, Fl-Cl, F1-C2, F1-C3 and F1-C4 are listed, and each element information such
as C54, C56, C58 and C65 is mapped to by using the index (C) of the CSCIT 440 (refer
to FIG. 20).
Similarly, if F2 receives 2 items of the element information, the FU-CSCIT 430
indexes F2-C1 and F2-C2, and C56 and C 58 are mapped to. Here, the C56 and C 58
can be recognized as the addresses stored with the corresponding element information
(e.g. a history address, a buffer memory title and a history address of a buffer memory),
respectively. The pertinent functional unit can generate output data by using the element
information corresponding to the input data and index (C) and output (or write in the
buffer memory) the generated output data.
For example, the DCR requests 4 items of element information to process input data
of QFS in the FL 410, and the 4 items of element information is recognized as C54, C56,
C58 and C65 by the FU-CSCIT 430. The CSCIT storing unit 520 reads the element
information corresponding to the pertinent index (C) to generate QFSP.
Finally, the CSCIT 440 is described with the detailed element information (e.g.
CSCI), that is, the result information of the process where the syntax parser 540 use the
SET 450 and the S-RT 460. In other words, the CSCIT 440 includes all meaningful data
(i.e. element information), which is processed from the conventional bit-stream 105,
stored in the CSCI storing unit 520 and to be used by the MB processing unit 550.
As illustrated in FIG. 20, the CSCIT 440 includes an index (C), which is an
identifier as an identity number of the pertinent information, a flag, a name (element
name) of the pertinent element information, an attitude (e.g. a storing space size of the
pertinent element information and whether the pertinent element information is an array
type) indicating data-structural property of the pertinent element information and a
global/local indicating whether the pertinent element information is used in the syntax
parsing operation or overall decoding operation.
The CSCIT 440 can be described by a describing method such as textual description
and binary description (a form of a bit-converted binary code). Beside that, minimum
necessary data in the table can be described in similar script languages.
Next, the CSCIT 440, the SET 450, S-RT 460 and the DVT 470, which are used in
order to extract or generate the element information from the conventional bit-stream
105 and store the extracted or generated element information in the CSCI storing unit
520, will be described. However, since the CSCIT 440 has already been described with
reference to FIG. 20, the pertinent description will be omitted.
First, the SET 450 refers to the table formed by the information related to the
syntaxes of the inputted conventional bit-stream.
As illustrated in FIG. 21 through FIG. 24, the SET 450 includes an index of each
syntax, an element name, input data, output data, and SET-process (process by
SET-PROC) information. Here, the index is the identifier (S) identifying each syntax
used in the S-RT 460. The element name can be named for the syntax depending on the
meaning or function of the syntax. The input data refers to nominal bit length of data
inputted at one time in the conventional bit stream 150. . The output data indicates a list
of the CSCIT 430 referred to when storing acquired data, as the element information (i.e.
CSCI (C)). Here, an output data field can be the title of a buffer memory (or a history
address of the corresponding data or an address of the buffer memory, written with the
pertinent data) where the generated element information will be written. For this, in the
case of requesting the element information as input data later, the pertinent element
information can be read by using the CSCI (C). The SET-process describes the
operating process, undergone after the operation receiving the syntax of each bit-stream,
and generating the element information as output data.
The SET 450 can be described by a describing method such as textual description
and binary description (a form of a bit-converted binary code). Beside that, minimum
necessary data in the table can be described in similar script languages.
Then, the S-RT refers to the connection rule between each syntax in the
conventional bit-stream. In other words, the S-RT 460 includes the information calling
each syntax and directing to move to the next syntax. The syntax parser 540 reads the
conventional bit-stream 105 or defines the order of storing in the CSCI storing unit 520
and/or renewing the element information.
As exampled in FIG. 25 through FIG. 28, the S-RT 460 includes an index (R), an
index (S) of the syntax, input data (C), the number of branches and branch information.
The index (R) identifies each connection rule. Since the index (S) of the syntax
designates the syntax to be processed in a specific connection index, the syntax parser
540 performs the predetermined process of the pertinent syntax by using the SET 450.
The input data indicates the list of the element information to be used for the
conditional determination for the connection control of the pertinent connection index.
The number of branches, which is the number of cases capable of being connectable
to the following syntax, indicates the total number of branch paths included in the
pertinent connection index. The branch information (#1, #2, #3 ...), which is provided
necessary as much as the number of branches, refers to the conditional determining
algorithm to determine which connection index is processed next. It can be directly
determined what content is read and in which order the content is read. As illustrated in
FIG. 25 through FIG. 28, if the number of branches is 1, there is no input data, it
directly progress to process the connection index designated by the branch information.
However, in case that the number of branches is 22 or more, the condition
determination is performed (it is formed by next connection rule (R) after conditional
sentence), and it progresses to process the corresponding connection index.
The syntax parser 540 processes the syntax defined in the pertinent connection
index and renews the CSCI storing unit 520. Then, the syntax parser 540 refers to and
reads the element information of the renewed CSCI storing unit 520 and uses the
element information for the branch conditional determination. For example, CO in 'CO =
= I' as the branch condition of the branch information of the index RO is the element
information CO after processing the syntax SO.
The S-RT 460 can be described by a describing method such as textual description
and binary description (a form of a bit-converted binary code). Beside that, minimum
necessary data in the table can be described in similar script languages.
Finally, the DVT 470 is the table written with Huffman table information used in
each encoder/decoder. In MPEG- 1/2/4/ A VC, the entropy coding is performed whenever
encoding, by mainly using the Huffman coding method. In this case, the used
information is the Huffman table. There must be provided the Huffman table
information to be used in the pertinent decoder whenever decoding, in order to realize
unified codec. Accordingly, the Huffman table information corresponding to each
syntax in the decoding description of the present invention is included, when syntax
parsing. Of course, in case that the Huffman table information corresponding to each
standard has already been written in the table storing unit 330, the transmission of the
DVT 470 will be omitted or only the codec number 1120 and the profile and level
number 1130 can be included as illustrated in FIG. 11.
As illustrated in FIG. 29 through FIG. 30, the DVT 470 includes a name of each
Huffman table, an actual value compressed by the Huffman coding and outputted and a
code value when the compressed actual value is stored in the conventional bit-stream
105. For example, in case that the compression of an MCBPC value leads to the actual
value of 3, the code value of 011 is written in the conventional bit-stream by a Huffman
table mapping operation(e.g. the PROCESS of the SET 450). For another example,
VLD[I] is written in the PROCESS of the index S77 (refer to FIG. 21 through FIG. 24)
of the SET 450, exampled above, to call a VLD function. The code value is obtained by
reading the conventional bit-stream 105 as much as the length (fixed length or variable
length) predetermined by this function. Then, the corresponding actual value can be
obtained by the Huffman table mapping operation. At this time, the Huffman table is [1],
that is, 1 st table of CBPY.
The DVT 470 can be described by a describing method such as textual description
and binary description (a form of a bit-converted binary code). Beside that, minimum
necessary data in the table can be described in similar script languages.
For example, the DVT 470 can be described in textual description as follows.
DVT{((0,l), (1,001), (2,010), (3,011), (4,0001), (5,000001), (6,000010), (7,000011),
(8,000000001), (9,NULL)) ((0,0011), (1,00101), (2,00100), (3,1001),
(4,00011),(5,0111), (6,000010), (7,1011), (8,00010), (9,000011), (10,0101), (11,1010),
(12,0100), (13,1000), (14,0110), (15,11), (16,000000), (17,000001), (18,NULL))
((0,011), (1,11), (2,10), (3,010), (4,001), (5,0001), (6,00001), (7,000001), (8,0000001),
(9,00000001), (10,000000001), (11,0000000001), (12,00000000001), (13,NULL))
((0,11), (1,10), (2,01), (3,001), (4,0001), (5,00001), (6,000001), (7,0000001),
(8,00000001), (9,000000001), (10,0000000001), (11,00000000001),
(12,000000000001), (13,NULL))...
Alternatively, the DVT 470 can be described in binary description as follows.
000000111111111111111111111111101111100001100011001000110 1000011011
001000001001100000010011000001000110000011010010000000010 0000111110010
000110010100101001010010000100100100101000110010001110011 0000010001001
011001010001000110000011001000101001001010001000100001001 0000010001100
001011001100000000011000000100000111110001101100010110001 0100001101000
011001001000001001010000100110000001001110000001010000000 0001010010000
000010101000000000010101100000000001000001111100010110001 0100001001000
110010010000010010100001001100000010
Each table can be described in binary description, to thereby reduce the storing
space, increase the processing efficiency and decrease the transmission time of the
universal bit-stream included in the decoding description. For example, the below table
1 shows the overhead bit of the textual description and the binary description for each
table based on MPEG-4 SP (simple profile).
[Table 1 ]
Overhead of Textual/Binary Description (bytes)
Hereinafter, the linking operation between each table used by the syntax parser 540
and/or the connection control unit 530.
The codec unit 340 of the decoder 300 in accordance with the present invention can
start to be variably operated. Some of the operating methods are described below.
In a method according to a first embodiment, once the syntax parser 540
independently starts to be operated (i.e. starts the syntax parsing of the conventional
bit-stream by using the tables stored in the table storing unit 330) and completes the
syntax parsing of the conventional bit-stream, the connection control unit 530 controls
the connection of each functional unit of the MB processing unit 550 by using tables
stored in the table storing unit 530.
In this case, the syntax parser 540 first has to recognize the completion of storing
the tables necessary for the table storing unit 530. For this, the syntax parser 540 must
sustainably monitor whether to store table information in the table storing unit 330, or
the DDD 320, which has completed to store the table information, must notify it to the
syntax parser 540.
Beside that, the connection control unit 530 first has to recognize whether the syntax
parser 540 stores some/overall necessary element information in the CSCI storing unit
520. For this, the connection control unit 530 must sustainably monitor whether to store
the necessary element information in the CSCI storing unit 520, or the syntax parser 540,
which has stored the element information, must notify it to the connection control unit
530 (e.g. the control authority such as an index R72 of the S-RT 460 must be returned to
the connection control unit 530). Of course, it shall be obvious that the connection
control unit 530 (or a functional unit selected by the connection control unit 530) and/or
the syntax parser 540 can be on standby after starting to be operate until necessary
information is stored in the pertinent storing unit, without monitoring whether to store
the necessary information in the table storing unit 330 or the CSCI storing unit 520.
In another method according to a second embodiment, the connection control unit
530 can control the connection of each functional unit of the syntax parser 540 and the
MB processing unit 550 by using the tables stored in the table storing unit 330. As
described in the example related to the F-RT 420, after first directing to start the
operation of the syntax parser 540 such that the element information syntax-parsed with
the conventional bit-stream can be stored in the CSCI storing unit 520, if the control
authority is returned to the connection control unit 530 (e.g. the control authority such
as an index R72 of the S-RT 460 is allow to be returned to the connection control unit
530), the connection of each functional unit is controlled such that the corresponding
functional unit can process the following operation.
In this case, the connection control unit 530 first has to recognize that the storing of
the tables necessary for the table storing unit 330 is completed. For this, the connection
control unit 530 must sustainably monitor whether to store the table information in table
storing unit 530, or the DDD 320, which has completed the storing of the table
information, must notify it to the connection control unit. Of course, it shall be obvious
that the connection control unit 530 (or a functional unit selected by the connection
control unit 530) and/or the syntax parser 540 can be on standby after starting to be
operate until necessary information is stored in the pertinent storing unit, without
monitoring whether to store the necessary information in the table storing unit 330 or
the CSCI storing unit 520.
In another method according to a third embodiment, a trigger can be realized to
direct to start the operation of the connection control unit 530 and/or the syntax parser
540. In the case of receiving the universal bit-stream 305, the trigger first recognize it
and directs to start the operation of the dividing unit 310. Then, if the plurality of tables
corresponding to the decoding description is completed to be stored in the table storing
unit 330, the trigger can recognize it and direct to start the operation of the codec unit
(i.e. the connection control unit 530 and/or the syntax parser 540). The realizing of the
trigger makes it unnecessary for the connection control unit 530 and/or the syntax parser
540 to monitor the table storing unit 330, for example, in order to determine when to
start to be operated in each aforementioned embodiments.
Below is described the liking operation between each table used by the connection
control unit 530 and/or the syntax parser 540 based on the aforementioned second
embodiment.
First, the connection control unit 530 reads a first regulation rule of the F-RT 420 in
the table storing unit 330, to call the pertinent functional unit. As shown in the F-RT
420, the connection control unit 530 reads FO(RO) firstly, and then, directs to the syntax
parser 540 to process it. This can be to activate a processing block of the program codes
corresponding to the syntax parser 540. In the case of the FL 410, FO can be identified
as the syntax parser 540. If the selected functional unit is the syntax parser 450, the
information (e.g. FO(RO) and FO(Rl 14) that n th syntax must be read is described
together.
The syntax parser 540 reads a regulation rule, designated by the connection control
unit 530 (i.e. designated by the F-RT 420), of the regulation rules of the S-RT 460, to
read the pertinent syntax. As described above, since the regulation designated by the
F-RT 420 is FO(RO), the syntax parser 540 starts to process from the index RO. The
syntax parser 540 recognizes that the SO must be processed in the index of RO by the
S-RT 460 and that the SO is the visual object sequence start code by the SET 450. Then,
the syntax parser 540 reads the corresponding bit (i.e. 32 bit set as the input value for
the SET 450) from the conventional bit-stream 105 and generates the corresponding
output (i.e. CO as the element information) to store it in the CSCI storing unit 520. The
CSCIT 440 is described with what is the pertinent element information, stored in the
CSCI storing unit 520.
Next, the syntax parser 540 substitutes the element information (i.e. CO), stored in
the CSCI storing unit 520, for branch information corresponding to the S-RT 460 and
progresses the index processing corresponding to the result. For example, since the
branch information corresponding to the index of RO is 'CO = = 1,' if it is satisfied, Rl
progresses. Otherwise, it is processed as an error. This operation is repeated until there
is 'GO RT' and the control authority is transferred to the F-RT 420 (i.e. connection
control unit 530) (e.g. index of R72 of the S-RT 460).
However, if the VLD function (e.g. index of S74 of the SET 450) is called in the
operation that the syntax parser 540 generates element information by using the SET
450 and stores the generated element information in the CSCI storing unit 520, the
entropy decoding is performed by using the DVT 470. hi this operation, if the element
information is generated, the generated element information is stored in the CSCI
storing unit 520.
If there is 'GO RT' in the processing operation of the syntax parser 540 and the
control authority is transferred to the F-RT 420 (i.e. connection control unit 530) (e.g.
index of R72 of the S-RT 460), the connection control unit 530 reads C 64, that is, the
input value of the index of RO (i.e. element information according to the index of S57 of
the SET 450 in the syntax parsing operation) from the CSCI storing unit 520 and
designates a next index to be processed by substituting it for branch information (i.e.
((C63=1)||(C63=2)) or ((C63=3)||(C63=4))). In other words, it is determined in
accordance with whether it satisfies the branch information that the index of Rl
progresses, it is ended or it is processed as an error.
If the Rl progresses, a predetermined processing (e.g. variable declaration, memory
setting and variable initialization) is performed, and then, the next index to be processed
is determined.
As described above, if some/overall element information is stored in the CSCI
storing unit 520 by the processing of the syntax parser 540, the connection control unit
530 calls the functional unit of Fl in the index of R6. Fl is identified as the DC
reconstruction (DCR).
The DCR recognizes 4 input values (i.e. C54, C56, C58 and C65) by referring to the
FU-CSCIT 430 and reads the element information from the CSCI storing unit 520. It
can be recognized through the mapping to the CSCIT 440 what is the pertinent element
information. The DCR completes the processing of the moving picture data having a
predetermined macro block size for the pertinent functional unit by using the read
element information and stores the processed moving picture data in the buffer memory
or the CSCI storing unit 520.
This kind of operation is repeated form the index of R6 to Rl 1 of the F-RT 420.
Accordingly, the DCR, IS, IAP, IQ, IT and VR are controlled so as to be successively
connected. The connection control unit 530 can recognize whether an arbitrary
functional unit completes the processing. If the processing of the pertinent functional
unit is completed, the processing of the following functional unit is directed to be
processed. Beside that, the corresponding functional unit stores the processed data in a
predetermined buffer memory or the CSCI storing unit 520, for the processing of the
moving picture data of the following functional unit. The method that the connection
control unit 530 recognizes whether an arbitrary functional unit completes the
processing is well-known to those of ordinary skill in the art, the pertinent description
will be omitted.
The codec 340 can output moving picture data corresponding to the inputted
conventional bit-stream 105 by controlling the connection control unit 530 to perform
the aforementioned operation, that is, the index order described in the F-RT 420 and/or
the index order according to the branch condition.
As understood through the aforementioned description, a linking loop between the
tables of the present invention can be roughly divided into 2 loops. In other words, a
F-RT loop consists of the F-RT 420, the FL 410, the FU-CSCIT 430, the CSCIT
(branch condition applying) and the F-RT (next rule), and an S-RT consists of the S-RT
460, the SET 450, the CSCIT 440, the S-RT 460, the CSCIT (branch condition
applying) and the S-RT (next rule).
Also, the F-RT loop can be divided into 2 loops as follows. First, in the case of
directing the performance of the MB processing unit 550, the F-RT loop consists of the
F-RT 420, the FL 410, the FU-CSCIT 440, F-RT 420, the CSCIT (branch condition
appliance) and the F-RT (next rule). In the case of directing the performance of the
syntax parser 540, the F-RT loop consists of the F-RT 420, the FL 410, (the S-RT loop),
the F-RT 420, the CSCIT (branch condition applying) and the F-RT (next rule).
Similarly, the S-RT loop can be divided into 2 loops as follows. In the case of the
branching by using the next regulation rule, the S-RT loop consists of the S-RT 460, the
SET 450, the CSCIT 440, the S-RT 460, the CSCIT (branch condition applying) and the
S-RT (next rule). In the case of returning to the F-RT 420, the S-RT loop consists of the
S-RT 460, the SET 450, the CSCIT 440, the S-RT 460, the CSCIT (branch condition
applying) and the F-RT (the index of the called F-RT 420).
The connection of each functional unit equipped in the toolbox 510 by the
connection control of the connection control unit 530 according to the F-RT 420
becomes different.
Below is described a command forming each table in detail.
FIG. 31 illustrates a command used in each table for the syntax parsing. The
information (i.e. table) for parsing the syntax of the standard such as
MPEG-2/MPEG-4/MPEG-4 AVC can be formed by using each illustrated command.
Hereinafter, the example of the tables for parsing the MPEG-2 MP (main profile) intra
coded syntax will be described based on the linking between each table.
As illustrated in FIG. 31, there are provided READ, SEEK, FLUSH, IF, WHILE,
UNTIL, DO-WHILE, DO-UNTIL, BREAK, SET, STOP, and PUSH as a command
for forming each table. Of course, it is not necessary that all commands must be used in
each table. It shall be obvious that a specific command can be selectively used per table.
Below is briefly described the usage of each command.
First, READ is the command for reading a specific bit from the bit-stream. For
example, it is represented by the way of "READ bits B > CSCI;" Here, "bits" refers to
the number of bits to be read, "B" refers to the byte-alignment. "> CSCI" refers to the
CSCI index to be stored. The "B" and "> CSCI" are used as an option. If the "> CSCI"
is not designated, it is set to store it in an only variable IBS.
Then, SEEK is the command reading a specific bit from the bit-stream but allowing
a file pointer not to move. The file pointer refers to the reference location in the
operation such as reading a specific bit. A parameter of the seek command can be
applied as the same as the READ.
The FLUSH is the command moving the file pointer as much as the number of bits.
Its parameter can be applied similarly to the READ.
The IF, which can be used in a form of "IF (condition) { - } ELSE { - }," is the
command providing the branch according to the given condition.
The WHILE, which can be used in a form of "WHILE (condition) { - } ," is the
command repeating the designated block while the given condition is true.
The UNTIL, which can be used in a form of "UNTIL (condition) { ~ }," is the
command repeating the designated block until the given condition is true.
The DO ~ WHILE, which can be used in a form of "DO { ~ } WHILE (condition),"
is the command changing the WHILE sentence and performing the designated block
before the conditional determination.
The DO-UNTIL, which can be used in a form of "DO { ~ } UNTIL (condition)," is
the command changing the WHILE sentence and performing the designated block
before the conditional determination.
The command of ( ~) (compute) is used in a form of "(Cl l=(V2+3));". In other
words, all calculations of SET-PROC can be written in parentheses, and an operator for
4 fundamental rules of arithmetics, substitution, addition/subtraction (++/—), bitwise
operation, logical sum/logical multiply and check of whether to use the CSCI.
The BREAK is the command breaking away from the closest loop structure.
The SET is the command setting a flag for determining whether to use the
designated CSCI. The CSCI that will designate the flag can be arranged and be
identified by a comma (,), (for example, SET CO, C2;).
The STOP is the command stopping the processing of the syntax element currently
performed and performing a next processing.
The PUSH is the command adding given data from the end area written with data.
The added values are arranged (e.g. PUSH C8 8, 16, 32;) and identified by the comma.
The GO is the command branching to the designated location. For example, the GO
R#;; is the command branching to R#, and the GO RT is the command returning to a
called location.
The HEX is the command indicating that a hexadecimal value follows the command
of the HEX.
The RLD, which is the interface for an RLD function supported in MPEG-4, can be
used in a form of "RLD index, level, run, islastrun, t#;" Here, the index, level, run and
islastrun refers to an internal variable and CSCI, storing an RLD return value, and the t#
refers to a Huffman table ID used for the LRD.
The VLD2, which is a VLD function for MPEG-2, can be used in a form of "VLD2
[t#] in > vl, v2, v3;" Here, the t# refers to the Huffman table ID, the in refers to an
inputted index value and the vl, v2 and v3 refer to output result value.
Finally, the VLD4, which is a VLD function for MPEG-4, can be used in a form of
" VLD4 [T#] > CSCI;" Here, the t# refers to the Huffman table ID, and the "> CSCI"
refers to the CSCI index to be stored. If the "> CSCI" is not designated as an option, it
is set to store it in an only variable IBS.
The detailed examples of each table formed by the aforementioned commands (i.e.
each table for the syntax processing for MPEG-2 MP intra coding) are illustrated
through FIG. 32 and FIG. 56. In detail, the SET 450 is illustrated in FIG. 32 through
FIG. 38, the S-RT 460 is illustrated FIG. 39 through FIG. 43, the CSCIT 440 is
illustrated in FIG. 44 through FIG. 47, the FL 410 is illustrated in FIG. 48, the F-RT
420 is illustrated in FIG. 49, the FU-CSCIT 430 is illustrated in FIG. 50 and the DVT
470 is illustrated in FIG. 51 through FIG. 56.
Since the linking between each table has been already described in detail, the
generalization of the linking will be briefly described below.
The linking between the tables for the syntax parsing is firstly performed in index
order of the F-RT 420 (refer to FIG. 49). In other words, the linking is started from the
index of RO.
The R-RT 420 recognizes the index number (F#) of the functional unit
corresponding to the index number (R#) to be currently processed. For example, if the
index number to be currently processed is RO, FO (i.e. the syntax parser of the FL 410)
is recognized. If the index number to be currently processed is R9, Fl (i.e. the DCR of
FL 410 is recognized.
First, the case that the pertinent functional unit is the syntax (i.e. the index number
FO of the FL 410) by the recognized index number will be described.
R# is recognized by using "F#(R#) information written in a "FU" field of the F-RT
420, and the index of S# corresponding to the index of R# in the S-RT 460 is
recognized. For example, the "FU" field of the index RO of the F-RT 420 is written with
"FO(RO)," and RO corresponds to SO of a syntax field of the S-RT 460.
Then, "Process by SET-PROC" corresponding to the recognized S# is recognized in
the SET 450. For example, "Process by SET-PROC" of the SET corresponding to the
SO of the syntax field of the S-RT 460 is "READ 32 B; IF (IBS== HEX:000001B3)
C72=l; IF (IBS== HEX:000001B8) C72=2; IF (IBS== HEX:00000100) C72=3; IF
(IBS== HEX:000001B7) C72=4;"
The result of calculating the "Process by SET-PROC" of the SET 450 is stored
corresponding to C# of an "output" field of the pertinent index S#. For example, the
"Process by SET-PROC" of the SET corresponding to the SO of the syntax field of the
S-RT 460 is stored as C72.
If the calculating result is completed to be stored, it is determined by re-referring to
the S-RT 460 which branch information the stored CSCI information satisfies. In the
case of the index RO of the S-RT 460, it is determined which one of the branch
information "1: (C72==l) GO Rl; 2: (C72==2) GO R39; 3: (C72==3) GO R47; and 4:
(C72==4) GO RT;" C72 of the CSCI. In the case of satisfying any one of 1 through 3 in
the aforementioned 4 conditions, the corresponding index R# in the S-RT 460
progresses and the aforementioned operation is repeated. However, in the case of
satisfying the forth condition (i.e. (C72==4) GO RT), the operation returns to the F-RT
420.
Then, the case that that the pertinent functional unit is not the syntax (i.e. the index
number FO of the FL 410) by the recognized index number will be described.
The number of an input CSCI corresponding to the pertinent F# is recognized by
using the FL 410 and the "F#" written in the "FU" field of the F-RT 420. For example,
"Fl" is written in the "FU" field of the index R9 of the F-RT 420. In the FL 410, Fl is
the DCR and the request of 4 input CSCI is written.
If the number of input CSCI requested by referring to the FL 410 is not zero, the
CSCI value C# corresponding to a "F#(C#)" field is recognized by referring to the
FU-CSCIT 440, and the corresponding value is read in the CSCI storing unit 520.
Then, the pertinent functional unit generates output data by using inputted data (e.g.
MB data) and input CSCI values, and then, returns to the F-RT 420.
As described above, in case that the pertinent functional unit is not the syntax parser
(i.e. the index number FO of the FL 410), if it satisfies "GO RT," a predetermined
operation is completed, and then, returns to the F-RT 420.
The F-RT 420 determines the branch condition according to the C# of the current
step, and the corresponding step progresses. If the satisfied condition is END (e.g.
(C72==4) GO END;), the syntax parsing is ended. If the satisfied condition is to direct
to the R# (e.g. GO Rl), the pertinent index progresses.
FIG. 8 illustrates the structure of a universal bit-stream in accordance with a first
embodiment of the present invention, FIG. 9 illustrates the structure of a universal
bit-stream in accordance with a second embodiment of the present invention, FIG. 10
illustrates the structure of a universal bit-stream in accordance with a third embodiment
of the present invention and FIG. 11 illustrates the structure of a universal bit-stream in
accordance with a forth embodiment of the present invention.
As illustrated in FIG. 8 through FIG. 10, the decoding description included in the
universal bit-stream 305 of the present invention can be configured so as not to include
table information but to include applied standard information (no table), so as to include
all table information (full tables) and so as to include only some table information
(partial tables). In order to identify each of them, the decoding description information
can include stream identifier (SI) information. The SI information can include some
items as shown in the follow table 2.
[Table 2]
Stream Identifier
As illustrated in FIG. 8, the universal bit-stream 305, which is decoding description,
can include an SI 910 (i.e. 00) indicating 'no table' and a codec number 920 and a
profile and level number 930.
This shows the case of not sending the table information but using the table
information already stored in the table storing unit 330. Although the pertinent
conventional bit-stream 105 sends basic information related to the used codec and
profile and level, the codec unit 340 can perform the decoding by using the designated
table.
For this, the SET(450), the CSCIT(440), the FL(410), the FU-CSCIT(430) and the
DVT(470) can be described per applied standard (i.e. codec), and the F-RT 420 and the
S-RT 460 can be described per profile of each applied standard.
[Table 3]
Table Identifier per codec
[Table 4]
Table Identifier per profile and level
In the case of MPEG-4 SP, the decoding method can be described by using SET#3,
FL#3, CSCIT#3, FU-CSCIT#3, DVT#3, F-RT#3-1, and S-RT#3-1. If the codec number
is designated as 3 and the profile and level number is designated as 2, the codex unit
340 can perform the decoding operation by referring to the corresponding table.
Also, as illustrated in FIG. 9, the universal bit-stream 305, which is a decoding
description, can include all aforementioned table information. In this case, when
referring to the table 2, the SI 910 will be set as 01. Each table can include a table
identifier (IT) 1010, a table start code (TS code) 1020, a table description (TD) 1030
and a table end code (TE code) 1040. The order of the IT 1010 and the TS code can be
changed, and the TD 1030 cam be described in a form of binary description. Of course,
the order of each table can be changed.
Also, as illustrated in FIG. 10, the universal bit-stream 305, which is the decoding
description, can include some aforementioned table information and a codec number
corresponding table information. In this case, when referring to the table 2, the SI 910
will be set as 10. However, in this case, since the format of the table information is not
unified, preferably, a format identifier 1110 can be further equipped behind the TI 1010
so as to determine the format of the pertinent table information.
Beside that, as illustrated in FIG. 11, the universal bit-stream 305 can further
include a decoding description related to the table information (T-DD) 1210 and
renewing information. The T-DD 1210 can be any one of decoding descriptions
described by referring to FIG. 8 through FIG. 10, and the SI 910 will be set as the
corresponding value. The renewing information can include a revision start code (RS
code) 1220 and a revision 1230.
The revision 1230, which is added, deleted or renewed with regulation rule of an
arbitrary table, can be provided in a form of 'insert index into table-name ( );', 'delete
index from table-name;', 'update index in table-name( );'
For example, in the case of adding SlOO into the SET#4, the revision 1230 can be
provided in a form of 'insert SlOO into SET#4 ("READ 1;IF(IBS==1){SET C31;}");' In
the case of deleting R31 from the S-RT#3-1, the revision 1230 can be provided in a
form of 'delete R31 from S-RT#3-1;' In the case of updating R7 in the F-RT#2-1, the
revision 1230 can be provided in a form of update R7 in F-RT#2-1 (F6, 1: (C66<=6)
GO R5;2: (C65<=C67) GO R4; 3: GO R12;); 1
While the DDD 320 reads the revision 1230 and the decoding of the pertinent
universal bit-stream 305 is performed, the tables changed with their revisions are
allowed to be stored. However, once the decoding is completed, the pertinent tables
stored in the table storing unit must be returned to an original state. The codec unit 340
or the trigger can notify a completing notification, related to whether to complete the
decoding, to the DDD 320 or the DDD 320 can monitor whether the completion of the
codec 340 is performed.
As described above, in accordance with the present invention, the conventional
profile can be by using a functional unit provided by the conventional standard (i.e.
codec), a new decoder can be configured by using the conventional functional unit or a
new decoder can be realized by using a new functional unit, hi other words, a decoder
can be embodied without any restriction.
Only in the case of adding a new functional unit into the toolbox 510, the algorithm
(i.e. a description related to the functional unit) related to the pertinent functional unit
must be added and the pertinent information must be added into the FL 410. In this case,
there can be additionally requested a compile operation related to the algorithm.
To realize a unified codec, each element must be organically controlled such that a
bit-stream, encoded by various encoding methods, can be decoded by a decoding
method corresponding to the pertinent encoding method, by parsing the encoded
bit-stream.
In this case, the pertinent bit-stream can be the bit-stream formed in various forms
mixed with diverse standards (codecs) or generated by various encoding methods in one
standard. Also, various functional units used in the diverse standards must be divided
into separate units, and an only function necessary for a user must be selected to make
one codec (encoder or decoder), in order to support various decoding/encoding
methods.
As described above, the present invention can organically connect and control each
functional unit by an identical information analyzing method regardless of an encoding
method encoded with a bit-stream by allowing a decoding description to be provided.
Also, although the syntax of a bit-stream is changed or newly added, the appropriate
processing can be performed by only changing the pertinent information of the S-RT
460 or only inserting the additional information. Beside that, the connection of
functional units of the MB processing unit 550 in the pertinent decoder can be set by
selecting a function necessary for user and forming the F-RT 420 in processing units of
bit-stream level, frame level and MB level.
FIG. 12 illustrates the structure of a universal bit-stream in accordance with a fifth
embodiment of the present invention, FIG. 13 illustrates the structure of a universal
bit-stream in accordance with a sixth embodiment of the present invention, FIG. 14
illustrates the structure of a universal bit-stream in accordance with a seventh
embodiment of the present invention and FIG. 15 illustrates the structure of a universal
bit-stream in accordance with an eighth embodiment of the present invention.
The universal bit-stream 305 of the present invention consists of a decoding
description (DD) part and the conventional bit-stream 105, it is well-known to those of
ordinary skill in the art that the conventional bit-stream 105 consists of coded video data
(or/and coded audio data).
Here, the DD part having a different structure can be formed in accordance with the
codec property to be applied for decoding the conventional bit-stream 105. In other
words, first, in the case of using one standardized codec, a first decoding description
structure can be applied.
Second, in the case of changing some contents of one codec and using the codec (i.e.
using the table contents, as they are, corresponding to the pertinent codec in some tables
of the 7 aforementioned tables and changing and using the other tables), a second
decoding description structure can be applied.
Third, in the case of processing and using the table information of the conventional
standardized plural codec, (i.e. selectively using the table contents of the conventional
standardized plural codec for some tables of the 7 aforementioned tables and changing
and using the other tables), a third decoding description structure can be applied.
Fourth, in the case of using a new codec that is not conventionally standardized
(including and transmitting all 7 aforementioned tables formed with new contents), a
fourth decoding description structure can be applied.
The 4 aforementioned structures of the decoding descriptions can be identified as
different codec type information, respectively. For example, the first decoding
description structure is set as "codec_type = 0". The second decoding description
structure is set as "codec type = 1". The third decoding description structure is set as
"codec_type = 2". The fourth decoding description structure is set as "codec_type = 3".
FIG. 12 illustrates the first decoding description structure.
In accordance with the first decoding description structure illustrated in FIG. 12.
The decoding description part can consist of a codec type 1250, a codec number 1252
and a profile and level number 1254. In other words, in accordance with the first
decoding description structure, the decoding description part is described based on only
information related to the codec to be applied. Although the drawings assume that each
field is 8 bits, it shall be obvious that the size of each field can be adjusted depending on
the magnitude of information to be represented.
The codec type 1250 will be set as zero (i.e. codec_type=0). This shows the case of
using one codec, as it is, of the conventional various standardized codecs.
FIG. 13 illustrates the second decoding description structure.
In accordance with the second decoding description structure illustrated in FIG. 13,
the decoding description part can consist of the codec type 1250, the codec number
1252, the profile and level number 1254 and the table description 1256. In other words,
in accordance with the second decoding description structure, the decoding description
part is described based on the information related to the codec to be applied and
changed contents of 7 tables. Here, the table descriptions are individually equipped in
the 7 tables, respectively, hi other words, there can be 7 table descriptions in the
decoding description part.
Each table description 1256, as illustrated in FIG. 13, can include the table start
code 1258, the table identifier 1260, the table type 1262, the content 1263 and the table
end code 1264. Of course, the size of each field can be increased or decreased as
necessary. Also, as described below, the content 1263 can be omitted or included
according to the information of the table type 1262.
For example, if the value of the table type 1262 is zero, the table description 1256
can be recognized so as to be applied without changing an existing table (i.e. table
recognized by the codec type 1250, the codec number 1252, the profile and level
number 1254 and the table identifier 1260). In this case, the content 1263 can be
omitted.
However, if the value of the table type 1262 is 1, the table description 1256 can be
recognized so as to partially change (i.e. change to the contents defined in the contents
1263) and use an existing table (i.e. table recognized by the codec type 1250, the codec
number 1252, the profile and level number 1254 and the table identifier 1260). In this
case, the content 1263 can be described with the changed content (e.g. a update
command). For example, the changed content (e.g. the update command) can be the
information including commands such as update, insert, or/and delete and changing the
table content of the index corresponding to the pertinent table.
However, if the value of the table type 1262 is 2, the table description 1256 can be
recognized so as to completely change (i.e. change to the contents defined in the
contents 1263) and use an existing table (i.e. table recognized by the codec type 1250,
the codec number 1252, the profile and level number 1254 and the table identifier 1260).
In this case, the content 1263 can be described with the changed content (e.g. content
for newly defining the pertinent table such as a new command).
FIG. 14 illustrates the third decoding description structure.
In accordance with the third decoding description structure illustrated in FIG. 14,
the decoding description part can consist of the codec type 1250 and the table
description 1256. In other words, in accordance with the third decoding description
structure, the decoding description part is described based on the information related to
the codec to be applied and the changed contents of the 7 tables. Here, the table
descriptions are individually equipped in the 7 tables, respectively. In other words, there
can be 7 table descriptions in the decoding description part.
Each table description 1256, as illustrated in FIG. 14, can include the table start
code 1258, the table identifier 1260, the table type 1262, the content 1263 and the table
end code 1264. Of course, the size of each field can be increased or decreased as
necessary.
For example, if the value of the table type 1262 is zero, the table description 1256
can be recognized so as to be applied without changing an existing table (i.e. table
recognized by the codec number 1252, the profile and level number 1254 and the table
identifier 1260). In this case, there are described the codec number 1252 corresponding
to the table to be applied to a field of the content 1263, and the profile and level number
1254.
However, if the value of the table type 1262 is 1, the table description 1256 can be
recognized so as to partially change (i.e. change to the contents defined in changed
contents 1266) and use an existing table (i.e. table recognized by the codec number
1252, the profile and level number 1254 and the table identifier 1260). In this case, the
content 1263 can be described with the changed content (e.g. update command), and a
field of the changed contents 1266 can be described with the changed contents (e.g. the
update command).
However, if the value of the table type 1262 is 2, the table description 1256 can be
recognized so as to completely change (i.e. change to the contents defined in the field of
the content 1263) and use an existing table (i.e. table recognized by the codec type 1250,
the codec number 1252, the profile and level number 1254 and the table identifier 1260).
In this case, the content 1263 can be described with the changed content (e.g. content
for newly defining the pertinent table such as a new command). In other words, as
described above, if the table type 1262 is zero or 1, a specific codec is used as it is or
some tables are changed and used. Accordingly, the information related to the codec (i.e.
the codec number 1252 and the profile and level number) is requested. If the table type
1262 is 2, completely new table information is defined. Accordingly, the additional
codec information is not requested.
FIG. 15 illustrates the fourth decoding description structure.
In accordance with the fourth decoding description structure illustrated in FIG. 15,
the decoding description part can consist of the codec type 1250 and the table
description 1256. In other words, in accordance with the fourth decoding description
structure, the decoding description part is described based on the 7 tables. The table
descriptions are individually equipped in the 7 tables, respectively.
Each table description 1256, as illustrated in FIG. 14, can include the table start
code 1258, the table identifier 1260, the table type 1262, the content 1263 and the table
end code 1264. Of course, the size of each field can be increased or decreased as
necessary.
For example, if the value of the table type 1262 is a predetermined value (e.g. 2), the
field of the content 1263 is displayed with the information for describing a new table
corresponding to the table identifier 1260 (e.g. content for newly defining the pertinent
table such as the new command). As described above, in case that the codec type 1250
is 3, it is recognized that the decoding is performed by using new tables. Accordingly,
one table type 1262 can be designated or the table type 1262 can be omitted.
Hereinafter, the syntax structure of the decoding description part and the syntax
structure of each field are illustrated in each below table.
[Table 5]
Decoding Description
[Table 6]
Codec Description
[Table 7]
Table Description
[Table 8]
Update Description
[Table 9]
New Description
Hereinafter, the semantics of the decoding description are described with each
below table.
[Table 10]
Decoding Description
Here, the codec type, which is a 8 bit code, can be the information for identifying
the codec type.
[Table 11 ]
Codec Description
Here, the codec type, which is a 8 bit code, can be the information for indicating the
code of a used codec code. Also, the profile and level number, which is a bit code, can
be the information for directing to the number of the profile and level for the codec. The
profile and level number can be identical to that of the standard of each MPEG
standard.
[Table 12]
Table Description (Table identifier)
Here, the table start code can be OxFFFFFE of hexadecimal 26-bit text strings,
which refers to the start of the table description. The table identifier can be a 4 bit code
as illustrated in the table 12 above.
[Table 13]
Table Description (Table type)
Here, the codec type, which is a 4 bit code, can be the information for determining
whether to maintain an existing table, to update the existing table or to generate a new
table. The table end code can be OxFFFFFE of hexadecimal 26-bit text strings, which
refers to the end of the table description.
[Table 14]
Directing set for update_command
Here, index# can be 4-bit strings directing to the index number of an arbitrary table,
and table# can be 32-bit strings as the table identifier.
[Table 15]
Directing set for new_command
Here, "bits" is any one of 3 through 34 bits for indicating the number of the
requested bits, and "B" is 1-bit strings indicating a byte alignment. ">" is 1-bit strings
for printing left output, and VLD2(for MPEG-2) and VLD4(for MPEG-4) is functions
for entropy coding.
FIG. 16 is a block diagram illustrating an encoder in an embodiment of the present
invention.
The encoder 1300 of the present invention further includes a universal bit-stream
generating and outputting unit 1310 as compared with the conventional encoder 200
described earlier by referring to FIG. 2. The universal bit-stream generating and
outputting 1310 generates a decoding description by using control information (e.g. the
list and the connection of the used functional units, the input data of the pertinent
functional units, the syntax information and the syntax connection information) in the
generating operation of the conventional bit-stream 105 generated by the processing of
the prior operation. Beside that, the universal bit-stream 305 is generated by using the
generated decoding description and the conventional bit-stream 105 to be transmitted to
the decoder 300. Since the method of generating the decoding description is understood
enough by those of ordinary skill in the art with only aforementioned descriptions, the
pertinent description will be omitted.
The variable length encoding unit 235 of the present invention is merely pointed to
an element for finally performing the encoding to the conventional bit-stream 105 in the
encoder 1300, but not limited to the present invention. Also, this does not cause to
restrict the scope of claims of the present invention.
FIG. 16 assumes the case of providing the universal bit-stream 305, generated by
using decoding description information and the conventional bit-stream 305, to the
decoder.
However, as described above, the decoding description can be transferred in a form
of separate data or bit-stream to the decoder 300. In this case, it shall be obvious that the
universal bit-stream generating and outputting 1310 is not located behind the variable
length encoding unit 235, but is provided independently of the conventional encoding
unit, so as to provide independently generated information to the decoder 300.
Although the above description related to a unified codec device and method of the
present invention is based on a decoder, the mutual relation between the decoder and an
encoder is well-known to those of ordinary skill in the art, and considering that the
encoder can be easily formed through the only detailed description related to the
decoder, it is obvious that the present invention is not limited to the decoder.
As described above, the unified codec device and method of the present invention
makes it easy to analyze a syntax element and control the connection of functional units
in one standard (or codec) or between standards (or codecs). In other words, it is no
problem to change the order of syntax elements in the bit-stream generated according to
a specific standard, to add a new syntax element or to delete the existing syntax
element.
Beside that, in accordance with the conventional art, the decoder was unable to
properly decode the pertinent bit-stream in the manipulation of the syntax element. For
example, if the bit-stream of ABC is changed to ACB and transmitted, the decoder is
unable to recognize the bit-stream of ACB, to thereby making it impossible to properly
decode the bit-stream of ACB. Similarly, in the case of adding F and forming ABFC or
deleting B and forming AC, the proper decoding is impossible.
However, in accordance with the unified codec device and method of the present
invention, since the decoding description information is provided in a form of being
included in the universal bit-stream or separate data, the decoding operation of the
decoder 300 can be smoothly performed.
It shall be obvious that although the above description related to a unified codec
device and method of the present invention is based on MPEG-4 AVC, MPEG-I,
MPEG-2, MPEG-4 and other moving picture encoding/decoding standards can be
applied without any restriction.
Beside that, it is obvious that the information included in each table can be
described by using not only the information the connection of functional units for
performing the decoding by one standard and the information related to the processing
operation requested for the pertinent functional unit but also the information for
performing the decoding by a plurality of standards.
For example, it is assumed that an initial plurality of frames of encoded video data
included in the universal bit-stream are encoded by using MPEG-2, the following
plurality of frames are encoded by using MPEG-4 and the other frames are encoded by
using MPEG-I. In this case, it is obvious that table information included in the
decoding description for decoding the encoded video data will be realized such that the
functional units according to each standard included in the toolbox 510 can be
organically coupled and operated, in order that each frame having different encoding
methods can be decoded.
The drawings and detailed description are only examples of the present invention,
serve only for describing the present invention and by no means limit or restrict the
spirit and scope of the present invention. Thus, any person of ordinary skill in the art
shall understand that a large number of permutations and other equivalent embodiments
are possible. The true scope of the present invention must be defined only by the spirit
of the appended claims.
[Industrial Applicability]
As described above, the present invention can decode a bit steam encoded by
various types (syntax and semantics) in accordance with each standard (e.g. MPEG-I,
MPEG-2, MPEG-4, MPEG-4 AVC) by using the same information recognizing method.
The present invention can parse a bit stream compressed by various methods by
using the same information analyzing method and organically control each functional
unit for decoding by using the parsed data.
The present invention can commonly apply a syntax analyzing method for decoding
various types of bit streams.
The present invention can apply a set of new commands for being capable of
parsing a bit stream in various forms by using a common syntax analyzing method.
The present invention can easily decode a bit stream when a syntax element is
changed, added or deleted.
The present invention can share elements used for the bit stream decoding of the
element information (i.e. a result from syntax parsing) of analyzed syntax.
The present invention can use the element information of analyzed syntax to analyze
following bit stream syntax element.
The present invention can be used when unifying moving picture and still image
codecs processed in units of block in addition to MPEG-I, MPEG-2, MPEG-4 and
MPEG-4 AVC.
The present invention can divide the functions forming various decoding methods
suggested by diverse standards (codecs) per each functional unit and store the divided
functions in a toolbox.
The present invention can select in a toolbox and decode a functional unit necessary
for decoding a bit stream encoded in various forms.
In addition, the present invention can change, add or delete a functional unit stored
tool box.
Next Patent: METHOD AND APPARATUS FOR GENERATING STEAM
