Title of Invention

A DECODER AND DECODING METHOD

Abstract A reliable decoder and decoding method in a digital multimedia broadcast reception system are provided. The reliable decoding method includes: if an interrupt call signal is received, performing an interrupt service routine to store a stream index; reading the stored stream index and by depacketizing a packet having the read stream index, extracting decoding information; and by referring Ito extracted decoding information, reading a payload included in the packet and decoding the read payload. Accordingly, since preparation of decoding is processed by using an interrupt method, a plurality of elements do not need to be checked continuously unlike in a polling method, such that the performance Of an MPEG-4 system is enhanced.
Full Text

FIELD OF THE INVENTION
The present invention relates to digital multimedia broadcast reception, and particularly, to a moving picture experts group 4 (MPEG-4) system. More particularly this invention encompasses a reliable decoder and decoding method.
DESCRIPTION OF THE RELATED ART
In the conventional MPEG-4 system, a pooling method is used for pre-decoding. However, since a plurality of elements should continuously check other elements in the polling method, there is a limit in improving the performance of an MPEG-4 system. In addition, if inbound traffic is congested because the bit rate of a received transport stream is not constant, loss of packets occurs and ultimately, reliable decoding cannot be achieved.
SUMMARY OF THE INVENTION
The present invention provides an apparatus and method by which preparation of decoding is processed by using an interrupt method such that a plurality of elements do not need to be continuously checked unlike in a polling method.
According to an aspect of the present invention, there is provided a first reliable decoding method including: if an interrupt call signal is received, performing an interrupt service routine to store a stream index; reading the stored stream index and by depacketizing a packet having the read stream index, extracting decoding information; and by referring tq extracted decoding information, reading a payload included in the packet and decoding the read payload.
According to another aspect of the present invention, there is provided a first reliable decoding apparatus including: an interrupt service routine performing unit which if an interrupt call signal is received, performs an interrupt service routine to store a stream index; a packet parsing unit which reads the stored stream index and by depacketizing a packet having the read stream index, extracts decoding

information; and a decoding unit which by referring to extracted decoding information, reads a payload included in the packet and decodes the read pay load.
According to still another aspect of the present invention, there is provided a second reliable decoding method including: if an interrupt call signal from a central processing unit (CPU) is received, performing an interrupt service routine to store a stream index of packets stored in each stream in a packet buffer, in a stream index queue; reading the stored stream index from the stream index queue, reading packets having the read stream index, from the packet buffer, extracting decoding information by depacketizing the read packets, and storing the extracted decoding information by the stream in a decoding information buffer; and by referring to the decoding information stored in each stream in the decoding information buffer, reading payloads included in the packets stored in each stream in the packet buffer, and decoding the read payloads.
According to yet still another aspect of the present invention, there is provided a second reliable decoding apparatus including; an interrupt service routine performing unit which if an interrupt call signal from a CPU is received, performs an interrupt service routine to store a stream index of packets stored in each stream in a packet buffer, in a stream index queue; a packet parsing unit which reads the stored stream index from the stream index queue, reads packets having the read stream index from the packet buffer, extracts decoding information by depacketizing the read packets, and stores the extracted decoding information by the stream in a decoding information buffer; and a decoding unit which by referring to the decoding information stored by the stream in the decoding information buffer, reads payloads included in the packets stored by the stream in the packet buffer, and decodes the read payloads.
According to a further aspect of the present invention, there is provided a computer readable recording medium having embodied thereon a computer program for the first reliable decoding method.

According to an additional aspect of the present invention, there is provided a computer readable recording medium having embodied thereon a computer program for the second reliable decoding method.
Accordingly this invention explains a method of decoding using an interrupt method when an interrupt call signal is received where the said interrupt method is characterized by, performing an interrupt service routine to store a stream index and depacketizing a packet having the read stream index; extracting decoding information after reading the said decoding information, where decoding payload is done by reading the said payload referring to the extracted decoding information.
Accordingly, the present invention further comprises a reliable decoding apparatus comprising:
an interrupt service routine performing unit which if an interrupt call signal is received, performs an interrupt service routine to store a stream index;
a packet parsing unit which reads the stored stream index and by depacketizing a packet having the read stream index, extracts decoding information; and
a decoding unit which by referring to extracted decoding information, reads a payload included in the packet and decodes the read payload.
BRIEF DESCRIPTION OF THE DRAWINGS
The above and other features and advantages of the present invention will become more apparent by describing in detail exemplary embodiments thereof with reference to the attached drawings in which:
FIG. 1 is a diagram of the structure of a digital multimedia broadcast receiver to which the present invention can be applied;

FIG. 2 is a diagram of the structure of a reliable decoding apparatus according to a preferred embodiment of the present invention;
FIG. 3 is a diagram showing the relations among a transport stream packet, a packetized elementary stream (PES) packet, and a 14496 section complying with the MPEG-4 standard;
FIG. 4 is a diagram showing a storage format of a packet buffer shown in FIG. 2;
FIG. 5 is a detailed diagram of the structure of a transport stream demultiplexer shown in FIG. 2;
FIG. 6 is a detailed diagram of the structure of an interrupt service routine performing unit shown in FIG. 2;
FIG. 7 is a detailed diagram of the structure of a packet parsing unit shown in FIG. 2; and
FIG. 8 is a flowchart of the,steps performed by a reliable decoding method according to a preferred embodiment of the present invention.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
The present invention will now be described more fully with reference to the accompanying drawings, in which exemplary embodiments of the invention are shown.
Referring to FIG. 1, a digital multimedia broadcast receiver includes a tuner 11, an orthogonal frequency division multiplexing (OFDM) demodulator 12, a channel decoder 3, a contrpller 14, and a moving picture experts group-4 (MPEG-4) system 15.

A digital multimedia broadcasting system is a broadcasting system for providing multimedia services »such as various video, audio, and data, to a mobile user, for example, a user in a car or a user on foot. The present invention relates to efficiently designing of the MPEG-4 system 15, which is one element of the digital multimedia broadcast receiver.
FIG. 2 is a diagram of the structure of a reliable decoding apparatus according to a preferred embodiment of the present invention. The reliable decoding apparatus includes a transport stream (TS) demultiplexer 21, a packet buffer 22, a central processing unit (CPU) 23, an interrupt service routine (ISR) performing unit 24, a stream index queue 25, a packet parsing unit 26, a decoding information buffer 27, and a decoding unit 28.
The TS demultiplexer 21 extracts predetermined packets, by depacketizing transport stream packets included in a transport stream transmitted by the channel decoder 13 of the digital multimedia broadcast receiver shown in FIG. 1, stores the extracted packets in each stream in the packet buffer 22, and requests an interrupt for packets stored in units of streams, to the CPU 23.
If an interrupt service routine call signal from the CPU 23 receiving the interrupt requested by the TS demultiplexer 21 is received, the ISR performing unit 27 performs an interrupt service routine to store the stream index of a packet recorded in the packet buffer 22 in the stream index queue 25.
The packet parsing unit 26 reads a stream index from the stream index queue 25, reads a packet having the stream index read from the packet buffer 22, extracts decoding information by depacketizing the read packet, and stores extracted decoding information in each stream in the decoding information buffer 27. By referring to decoding information stored in each stream in the decoding information buffer 27, the decoding unit 28 reads payloads included in the packets stored in units of streams in the packet buffer 22, and decodes the read payloads.

FIG. 3 is a diagram showing the relationships between a transport stream packet, a packetized elementary stream (PES) packet, and a 14496 section complying with the MPEG-4 standard.
The receiver shown in FIG. 1 receives a digital multimedia broadcast signal from a broadcasting station transmitting the digital multimedia broadcast signal. The received digital multimedia broadcast signal is restored to a transport stream through the tuner 11, the OFDM demodulator 12, and the channel decoder 13. The transport stream is transmitted to the MPEG-4 system, that is, the reliable decoding apparatus 15. This transport stream is formed of transport stream packets, each having a predetermined length (188 bytes). These transport stream packets are classified into program association table (PAT) packets, program map table (PMT) packets, and packets storing an object descriptor (OD) stream, a binary input format for scene (BIFS) stream, an audio stream, and a video stream. The TS demultiplexer 21 obtains a program ID (PID) of a PMT packet by parsing a PAT packet whose PID, which is a stream index, is 0, and obtains PIDs of packets storing an OD stream, a BIFS stream, a video stream, and an audio stream.
Referring to FIG. 3, each of a TS stream packet is formed with a header and a payload. A predetermined number of TS stream packets are depacketized and then, by combining the depacketized packets, a packetized elementary stream (PES) packet or a 14496 section is generated. In the payload of a PES packet, a sync layer (SL) packet including a video payload or an audio payload is stored, and in the payload of a 14496 section, a sync layer (SL) packet including an OD payload or a BIFS payload is stored. An access unit (AU) stream, for example, one frame video stream or one frame audio stream, is stored In each of the payloads of the sync layers. However, since the length of an AU stream is not constant, information on the length of a sync layer packet is also stored in the header of a PES packet or a 14496 section. Generally, when an AU stream is a video stream, the AU stream is long, while when it is of an OD stream or a BIFS stream, the AU stream is short.

A case where the packet is a sync layer packet will now be explained with reference to examples. The TS demultiplexer 21 depacketizes transport stream packets included in a transport stream, and then, by combining payloads of the depacketized transport stream packets, extracts a PES packet or a 14496 section, and from the extracted PES packet or 14496 section, extracts again a sync layer packet, and stores the extracted sync layer packet by the stream in the packet buffer 22. When a sync layer packet is stored in each stream in the packet buffer 22, an interrupt for the sync layer packet stored by the stream is requested to the CPU 23.
FIG. 4 is a diagram showing a storage format of the packet buffer 22 shown in FIG. 2.
Referring to FIG. 4, the length of a sync layer packet and a sync layer packet corresponding to this length are stored at each address of the packet buffer 22. In the packet buffer 22*, packets are stored in units of streams having identical PIDs such as an OD area, a BIFS area, a video 1 area, and an audio 1 area. Since each of these PIDs is an index indicating a stream, a PID will be referred to hereinafterQ as a stream index.
N sync layer packets can be stored in one stream area. The reason for storing packets in each stream as described above is that if streams are classified before the packet buffer 22, the streams do not need to be classified again in the decoding unit 28 in which the work load is heavy. Also, while decoding is performed in. the decoding unit 28, classifying the streams is performed at the same time such that the processing speed of the MPEG-4 system as a whole can be enhanced.
FIG. 5 is a detailed diagram of the structure of the TS demultiplexer 21 shown in FIG. 2.
Referring to FIG. 5, the TS demultiplexer 21 depacketizes transport stream packets having a stream index stored in the packet selection register 51, among

transport stream packets included in a transport stream, to extract packets. The stream indexes stored in the packet selection register 51 are determined according to OD decoding information in the decoding information extracted by the packet parsing unit 26. OD decoding information is the PID of a stream that should be decoded later in order to reproduce digital multimedia broadcast set by a user. As described above, the TS demultiplexer 21 stores extracted packets in each stream in the packet buffer 22, and in relation to the packets stored in each stream, stores the number of packets stored for each individual stream in individual stream count registers 52. For example, if 2 sync layer packets storing an OD stream, and FIG. 6 is a detailed diagram of the structure of the ISR performing unit 24 shown in FIG. 2.
Referring to FIG. 6, if an interrupt call signal from the CPU 23 is received, the ISR performing unit 24 performs an interrupt service routine. Here, the interrupt service routine i§. a kind of function that is performed with priority after stopping other jobs by the MPEG-4 system if an interrupt is requested. Since information required for performing an interrupt service routine is exchanged by using registers as described above, the interrupt can be processed in a very short time. Accordingly, when the entire performance of the MPEG-4 system is considered, this interrupt hardly affects decoding jobs. If the interrupt service routine begins, first, the number of packets in each individual stream is read from the individual

stream count registers 52. Stream indexes corresponding to the number of packets in each individual stream are stored in the steam index queue 25. For example, if 2 is stored in the OD count register and 1 is stored in the video 1 count register, the PID of 1;he OD stream is twice continuously stored and the PID of the video stream is once stored.
FIG. 7 is a detailed diagram of the structure of the packet parsing unit 26 shown in FIG. 2.
Referring to FIG. 7, the packet parsing unit 26 reads a stream index stored in the stream index queue 25. Since sync layer packets are stored by the stream in the packet buffer 22, the storage area for each stream is always identical. Accordingly, the storage location of the packet of the stream index can be identified with only a stream index. However, the start address of each individual stream area should be fixedly stored such that, by reading stream indexes stored in the stream index queue 25 sequentially from the start address, the packet parsing unit 6 can read correct packets. The packet parsing unit 26 depacketizes the read packets to extract decoding information, and stores extracted decoding information by the stream in the decoding information buffer 27. By referring to decoding information stored in each stream in the decoding information buffer 27 by the packet parsing unit 26, the decoding unit 28 reads payloads included in the packets stored by the stream in the packet buffer 22, and decodes the read payloads in units of streams simultaneously.
FIG. 8 is a flowchart of the steps performed by a reliable decoding method according to a preferred embodiment of the present invention.
Referring to FIG, 8, steps of the reliable decoding method will now be explained. By depacketizing transport stream packets included in a transport stream, packets are extracted, and stored by the stream in a packet buffer, and an interrupt for the packets stored in each stream is requested to a CPU in step 81. At this time, the extracted packets are stored in each stream in the packet buffer and in relation to

the packets stored in each stream, the numbers of packets in respective streams are stored in individual stream count registers iOn step 81. If an interrupt service routine call signal is received from the CPU, which receives the requested interrupt, in step 82, then an interrupt service routine to store the stream indexes of packets recordedjn the packet buffer in a stream index queue is performed in step 83. At this time, the same number of stream indexes as the number of packets in each individual stream stored in the individual stream count registers are stored in the stream index queue, and an interrupt service routine to store in an interrupt request register a value indicating that an interrupt request is enabled is performed. At this time, step 81 is performed only when the value stored in the interrupt request register indicates that an interrupt request is enabled, and packets extracted between the requested interrupt and the interrupt requested immediately before the currently requested interrupt are stored in each stream.
Next, a stream index is read from the stream index queue, a packet having the read stream index is read from the packet buffer, decoding information is extracted by depacketizing the read packet, and the extracted decoding information is stored in each stream in a decoding information buffer in step 84. Then, by referring to decoding information stored in each stream in the decoding information buffer, the payloads included in the packets stored in each stream in the packet buffer are read and decoded in step 85. At this time, in the step 85, a stream index determined according to an OD descriptor decoding information in the extracted decoding information is stored in a packet selection register, and in step 81, packets are extracted by depacketizing transport stream packets having stream indices stored in the packet selection register, among transport stream packets included in the transport stream.
The packets described above can generally be sync layer packets.
The embodiments of the present invention can be written as computer programs and can be implemented in general-use digital computers that execute the programs using a computer readable recording medium. Examples of the

computer readable ■ recordingmedium include magnetic storage media (e.g., ROM, floppy disks, hard disks, etc.), optical recording media (e.g., CD-ROMs, or DVDs), and storage media such as carrier waves (e.g., transmission through the Internet).
While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it will be understood by those of ordinary skill in the art that various changes in form and details may be made therein without departing from the spirit and scope of the present invention as defined by the following claims. The preferred embodiments should be considered in descriptive sense only and not for purposes of limitation. Therefore, the scope of the invention is defined not by the detailed description of the invention but by the appended claims, and all differences within the scope will be construed as being included in the present invention.
According to the present invention, since preparation of decoding is processed by using an interrupt method, a plurality of elements do not need to be checked continuously unlike in a polling method, such that the performance of an MPEG-4 system is enhanced.
Also, according to the present invention, by introducing a stream index queue, a process for performing an interrupt service routine and a process for parsing packets are performed independently in parallel such that the performance of the MPEG-4 system is improved.
Furthermore, according to the present invention, by introducing the stream index queue, all received packets are decoded without loss, and ultimately reliable decoding can be implemented.



WE CLAIM
1. A method of decoding using an interrupt method when an interrupt call signal is received where the said interrupt method is characterized by, performing an interrupt service routine to store a stream index and depacketizing a packet having the read stream index; extracting decoding information after reading the said decoding information, where decoding payload is done by reading the said payload referring to the extracted decoding information.
2. The method as claimed in claim 1, wherein the packet is a sync layer packet.
3 The method as claimed in claim 1, wherein:
by depacketizing transport stream packets included in a transport stream, extracting the packets, storing the extracted packets by the stream, and requesting an interrupt for the packets stored in each stream.
4The method asclaimed in claim 3, wherein in extracting the packets, storing the extracted packets by the stream, and requesting an interrupt for the packets stored in each stream, the number of packets stored in each individual stream is stored, and in performing an interrupt service routine to store a stream index, the same number of stream indexes as the number of packets stored in individual streams are stored and an interrupt service routine to store a value indicating that interrupt request is enabled is performed.
5. The method as claimed in claim 4, wherein in extracting the packets, storing the extracted packets by the stream, and requesting an interrupt for the packets stored in each stream, only when the value indicating that interrupt request is enabled is stored, an interrupt is requested, and packets extracted between the requested interrupt and the interrupt requested immediately before the currently requested interrupt are stored in each stream.

6. The method as claimed in claim - 3, wherein in reading the stored stream index and by depacketizing a packet having the read stream index, extracting decoding information, a stream index determined according to object descriptor decoding information in the extracted decoding information is stored, and in extracting the packets, storing the extracted packets by the stream, and requesting an interrupt for the packets stored in each stream, the packets are extracted by depacketizing transport stream packets having a stream index determined according to the object descriptor decoding information.
7. A decoding apparatus comprising:
an interrupt service routine performing unit which if an interrupt call signal is received, performs an interrupt service routine to store a stream index;
a packet parsing unit which reads the stored stream index and by depacketizing a packet having the read stream index, extracts decoding information; and
a decoding unit which by referring to extracted decoding information, reads a payload included in the packet and decodes the read payload.
8. The apparatus as claimed in claim 7, wherein the interrupt service routine performing unit performs an interrupt service routine to store the stream index of a packet stored in each stream, and the decoding unit reads the payload included in the packet stored in each stream, by referring to decoding information stored in each stream.
9. The apparatus as claimed in claim 7, wherein:
a transport stream demultiplexer which by depacketizing transport stream packets included in a transport stream, extracts the packets, stores the extracted packets by the stream, and requests an interrupt for the packets stored in each stream.
10. A decoding method comprising:
a. receiving an interrupt call signal from a central processing unit (CPU)

b. performing an interrupt service routine to store a stream index of packets
stored in each stream in a packet buffer, in a stream index queue
c. reading the stored stream index from the stream index queue
d. reading packets having the read stream index, from the packet buffer
e. extracting decoding information by depacketizing the read packets,
f. storing the extracted decoding information by the stream in a decoding
information buffer
g. referring to the decoding information stored in each stream in the decoding
information buffer
h. reading payloads included in the packets stored in each stream in the
packet buffer, and i, decoding the read payloads.
I. The method as claimed in claim 10, wherein the packet is a sync layer packet.
I. The method as claimed in claim 10, wherein :
by depacketizing transport stream packets included in a transport stream, xtracting the packets, storing the extracted packets by the stream in the packet uffer, and requesting an interrupt for the packets stored in each stream, to the PU, wherein in(a) and (b) performing an interrupt service routine to store a tream index of packets, if the interrupt service routine call signal from the CPU sceiving the interrupt requested in is received, an interrupt service routine to tore the stream index of the packets recorded in the packet buffer, in a stream idex queue is performed.
3. The method as claimed in claim 12, wherein in extracting the packets, storing he extracted packets by the stream in the packet buffer, and requesting an nterrupt for the packets stored in each stream, to the CPU, the extracted packets ire stored in each stream in the packet buffer, and the number of packets stored n each individual stream is stored in individual stream count registers, and

in (a) and (b) performing an interrupt service routine to store a stream index of packets, the same number of stream indexes as the number of packets in individual streams stored in th£ individual stream count registers are stored in the stream index queue, and an interrupt service routine to store a value indicating that interrupt request is enabled in an interrupt request register is performed.
14. The method as claimed in claim -13, wherein in extracting the packets, storing the extracted packets by the stream in the packet buffer, and requesting an interrupt for the packets stored in each stream, to the CPU, only when the value stored in the interrupt request register indicates that an interrupt request is enabled, an interrupt is requested, and packets extracted between the requested interrupt and the interrupt requested immediately before the currently requested interrupt are stored in each stream.
15. The method as claimed in claim 12, wherein in (g) reading payloads included in the packets stored in each stream in the packet buffer and decoding the read payloads, a stream index determined according to object descriptor decoding information in the extracted decoding information is stored in a packet selection register, and
in extracting the packets, storing the extracted packets by the stream in the packet buffer, and requesting an interrupt for the packets stored in each stream, to the CPU, the packets are extracted by depacketizing transport stream packets having a stream index stored in the packet selection register, among transport stream packets included in the transport stream.
16. A decoding apparatus comprising:
an interrupt service routine performing unit which if an interrupt call signal from a CPU is received, performs an interrupt service routine to store a stream index of packets stored in each stream in a packet buffer, in a stream index queue;
a packet parsing unit which reads the stored stream index from the stream index queue, reads packets having the read stream index from the packet buffer,

extracts decoding information by depacketizing the read packets, and stores the extracted decoding information by the stream in a decoding information buffer; and
a decoding unit which by referring to the decoding information stored in each stream in the decoding information buffer, reads payloads included in the packets stored in each stream in the packet buffer, and decodes the read payloads.
17. A decoding method as substantially herein described particularly with
reference to the accompanying drawings.
18. A decoding apparatus as substantially herein described particularly with
reference to the accompanying drawings.


Documents:

825-che-2004-abstract.pdf

825-che-2004-claims duplicate.pdf

825-che-2004-claims original.pdf

825-che-2004-correspondnece-others.pdf

825-che-2004-correspondnece-po.pdf

825-che-2004-description(complete) duplicate.pdf

825-che-2004-description(complete) original.pdf

825-che-2004-drawings.pdf

825-che-2004-form 1.pdf

825-che-2004-form 19.pdf

825-che-2004-form 26.pdf

825-che-2004-form 3.pdf


Patent Number 205766
Indian Patent Application Number 825/CHE/2004
PG Journal Number 26/2007
Publication Date 29-Jun-2007
Grant Date 09-Apr-2007
Date of Filing 19-Aug-2004
Name of Patentee M/S. SAMSUNG ELECTRONICS CO.LTD
Applicant Address 416,MAETAN-DONG, YEONGTONG-GU, SUWON-IS,GYEONGGI-DO, KOREA.
Inventors:
# Inventor's Name Inventor's Address
1 JONG-GU JEON 107-501 DONGSUWON LG VILLAGE APT.,MANGPO-DONG,YEONGTONG-GU,SUWON-SI,GYEONGGI-DO
2 JU-HEE PARK 901-1001 BYUCKJEOKGOL 9-DANJI APT.,YEONGTONG-DONG,YEONGTONG-GU,SUWON-SI,GYEONGGI-DO
PCT International Classification Number H04N 7/00
PCT International Application Number N/A
PCT International Filing date
PCT Conventions:
# PCT Application Number Date of Convention Priority Country
1 2003-57504 2003-08-20 Republic of Korea