Title of Invention

METHODS AND SYSTEMS FOR ACCESSING TARGET SAMPLE IN MEDIA DATA STREAM RECEIVED BY DATA PROCESSING SYSTEM

Abstract Data processing methods and systems for accessing a target sample in a media data stream. The media data stream has a plurality of samples and corresponding sample information recorded in at least one entry, wherein the sample information for a predetermined number of the entries is calculated and the calculated result is stored in at least one cache entry. Target sample information corresponding to the target sample is provided. One of the cache entries is located by comparing the target sample information with the calculated result of respective cache entries. After locating the cache entry, the target sample from the entries is located corresponding to the located cache entry.
Full Text FORM 2
THE PATENTS ACT, 1970
(39 of 1970)
&
THE PATENTS RULES, 2003
COMPLETE SPECIFICATION
[See section 10, Rule 13]
DATA PROCESSING METHODS AND
SYSTEMS;
MEDIATEK INC., A CORPORATION
ORGANIZED AND EXISTING UNDER THE
LAWS OF TAIWAN, R.O.C., WHOSE ADDRESS
IS 5F, NO. 1-2, INNOVATION ROAD l SCIENCE-
BASED INDUSTRIAL PARK, HSIN-CHU,
TAIWAN 3000, R.O. CHINA.
THE FOLLOWING SPECIFICATION
PARTICULARLY DESCRIBES THE INVENTION
AND THE MANNER IN WHICH-IT IS TO BE
PERFORMED.


1

BACKGROUND
The present disclosure relates generally to data processing, and more
particularly to methods and systems for processing and accessing metadata in
a media file.
Media files, such as MPEG-4 files, comprise media data and metadata of the
media data. The metadata provides data sample information to media
applications for processing media data in the media file. Generally, media
files are defined to be organized with several structural elements. For example,
MPEG-4 files are composed of structural elements call boxes. Each box may
comprise media data, metadata or other sub-boxes. For example, a sample
table box (STBL) records time and file information of media data. According to
the time and file information in the STBL box, applications can obtain the time,
type, data size, and position in the media file and further perform the play-back
or random-seek functions toward the media file, accordingly. The STBL box
also includes several sub-boxes comprising a decoding time to sample box
(STTS) as shown in Fig. 1, a sample size box (STSZ), a sample to chunk box
(STSC) as shown in Fig. 3, a chunk offset box (STCO), a sync sample box
(STSS) as shown in Fig. 2, sample description table (STSD), and others.
The STTS box contains at least one entry for recording the time duration of
samples of media data. Fig. 1 shows a STTS box 100, comprising 5 entries
with total 45 samples in the media data. It should be noted that data in the
STTS box is recorded using the concept of run-duration coding to reduce the
size thereof. That is, the time duration for media sample #1~#6, #7~#20,
#21-#31, #32~#33, and #34~#45 is 66, 67, 63, 64, and 66 time units,
respectively, and the total time duration of the 45 sample of the media data is
2947 time units.
Traditionally, a linear search through these boxes is performed to help locating
a specific sample with a target decoding time. A linear search means that the
time duration of respective samples from the very first media sample is
accumulated until the accumulated time duration equals or exceeds the target
decoding time. For example, to locate a specific sample with a specific
decoding time 2000, a linear search is performed by accumulating the time
2

duration of the first thirty samples. Since the total time duration of the first
thirty samples is 1964 (6*66+14*67+10*63=1964) and the total time duration of
the first thirty-one samples is 2027 (6*66+14*67+11*63=2027) which exceeds
the specific decoding time 2000, sample #30 is then located. The linear
search calculation is time-consuming if there is large number of entries in these
boxes.
In addition, the media samples in the media data are grouped into chunks.
The STSC box records the mapping relationship between sample and chunk.
Based on the mapping relationship recorded in the STSC box, one can identify
in which chunk a target sample resides, and further obtain other related data
using the chunk information. Fig. 3 shows a STSC 300, in which the number
of samples in chunk #1, chunk #2-#4, chunk #5~#10, and chunk #11~#19 is 3,
4, 7, and 6, respectively. Similarly, data in the STSC is recorded using the
concept of run-duration coding to reduce the size thereof. To locate a specific
sample, a specific chunk corresponding to the specific sample is sought by
performing a linear search by accumulating the number of samples from the
first chunk. The calculation is time-consuming if the number of entries in the
STSC box is large.
SUMMARY
Data processing methods and systems are provided.
In an embodiment of a data processing method for accessing a target sample
in a media data stream, target sample information corresponding to the target
sample is provided. The media data stream has a plurality of samples and
corresponding sample information recorded in at least one entry, wherein the
sample information for a predetermined number of the entries is calculated and
the calculated result is stored in at least one cache entry. One of the cache
entries is located by comparing the target sample information with the
calculated result of respective cache entries. After locating the cache entries,
the target sample from the entries is located according to the located cache
entry.
An embodiment of a data processing system comprises a media data stream,
at least one cache entry, and a processing unit. The media data stream
3

comprises a plurality of samples and corresponding sample information
recorded in at least one entry. The sample information for a predetermined
number of the entries is calculated and the calculated result is stored in the
cache entry. The processing unit receives target sample information
corresponding to a target sample, locates one of the cache entries by
comparing the target sample information with the calculated result of
respective cache entries, and after locating the cache entries, locates the
target sample from the entries according to the located cache entry.
Data processing methods may take the form of program code embodied in a
tangible media. When the program code is loaded into and executed by a
machine, the machine becomes an apparatus for practicing the disclosed
method.

DESCRIPTION OF THE DRAWINGS
The invention will become more fully understood by referring to the following
detailed description with reference to the accompanying drawings, wherein:
Fig. 1 shows an example of a STTS;
Fig. 2 shows an example of a STSS;
Fig. 3 shows an example of a STSC;
Fig. 4 is a schematic diagram illustrating an embodiment of entries in the STTS
box and its corresponding pre-calculated cache entries;
Figs 5A-5D shows an example of incremental processing;
Fig. 6 is a flowchart showing an embodiment of a data processing method; and
Fig. 7 is a flowchart showing another embodiment of a data processing
method.
DESCRIPTION
Data processing methods and systems are provided, in which pre-calculated
cache entry, shared cache pool and incremental processing are employed. In
the following embodiments, the data processing methods and systems are
used to decode MPEG-4 files, which is well-defined in ISO standard and is
however not limited in the present invention. An overview of the MPEG-4 files
4

is provided in a standard specification of ISO 14496-12, which is incorporated
herein by reference in its entirety for all purposes.
Pre-calculated cache entry:
Fig. 4 is a schematic diagram illustrating an embodiment of entries in the STTS
box and its corresponding pre-calculated cache entries. Each cache entry
records the accumulated total time duration of a group of STTS entries. In this
embodiment, each group contains 3 STTS entries. As shown in Fig. 4, the
total time duration of the STTS entries E1, E2 and E3 are recorded by cache
entry CE1, the total time duration of the STTS entries E4, E5 and E6 are
recorded by cache entry CE2, the total time duration of the STTS entries E7,
E8 and E9 are recorded by cache entry CE3, the total time duration of the
STTS entries E10, E11 and E12 are recorded by cache entry CE4, and the total
time duration of the STTS entries E13, E14 and E15 are recorded by cache
entry CE5. For example, if STTS entry E1 records 3 samples and the time
duration of each is 5, STTS entry E2 records 5 samples and the time duration
of each is 10, and STTS entry E3 records 7 samples and the time duration of
each is 8, the cache entry CE1 records the total time duration of 15 samples as
121. The calculation for other cache entries is similar thereto. It should be
noted that the time duration recorded in the cache entries could be calculated
in advance.
To locate a specific decoding time, the total time duration of samples recorded
from the very first cache entry is accumulated until the accumulated total time
duration equals or exceeds the specific target decoding time, such that a cache
entry is located. After a cache entry is located, the STTS entries
corresponding to the located cache entry are further checked using a linear
search as the conventional method, in which the time duration of samples from
the first media sample of the located cache entry is accumulated until the sum
of the accumulated time duration of samples in the located cache entry and the
accumulated total time duration of cache entries prior to the located cache
entry equals or exceeds the target decoding time.
5

It is understood that the total time duration recorded in the located cache entry
is less than or equal to the specific decoding time. For example, if the
decoding time is between the accumulated total time duration at cache entries
CE1 and CE2, the cache entry CE1 is first located. Then, a specific media
sample corresponding to the specific decoding time is found according to the
accumulated total time duration of cache entries CE1, and the accumulated
time duration of respective samples in STTS entries E7, E8 and E9.
Accordingly, by separately recording the time duration of a group of box entries
in at least one cache entry, it can reduce the frequencies of accessing media
files since the pre-calculated data stored in the cache entry can be directly
accessed. It is understood that the use of pre-calculated cache entry can be
also applied to STSS and STSC. In STSC, the cache entry records the total
number of samples in the chunks covered by the current and prior cache
entries.
Shared cache pool:
In some embodiments, the number of corresponding cache entries to each box
might be either fixed or dynamically decided according to each box size.
In some embodiments, the total size of cache memory might be limited and the
allocation of the cache entries for each box can be determined using a shared
cache pool model. In the shared cache pool, the number of cache entries for a
box is determined according to the number of entries in the boxes requiring
cache entries in the order of initialization. For example, to allocate a certain
amount of cache entries to the STTS box, the STSS box and the STSC box, the
system will firstly allocate a first ratio of the cache entries to the STSS box.
The first ratio could be the number of STSS entries divided by the total cache
entry amount. In some embodiments, the number of cache entries allocated
to the STSS box can be further limited to a pre-defined maximum number.
Then, the system will allocate a second ratio of the cache entries to the STSC
box. The second ratio could be the number of STSC entries divided by the
total cache entry amount. In some embodiments, the number of cache entries
allocated to the STSC box can also be further limited to a pre-defined
6

maximum number. Finally, the system will allocate the rest of the cache
entries to the STTS box. It should be noted that the order of cache allocation
is not limited in the present invention. Any order of cache allocation should be
covered in the present invention.
Incremental processing:
As mentioned above, with the pre-calculated cache entries, lots of time spent
on redundant computation can be reduced. However, if the boxes (STTS,
STSS and STSC) are very large, the calculation of cache entries will need a
certain amount of time. For example, if complete cache entries for the STTS
box must be prepared before a playback, the accumulated total time duration of
a group of STTS entries for respective cache entries must be calculated. To
reduce the response time caused by calculation of cache entries before
playback, the calculation of cache entries is performed with the concept of
incremental processing. In incremental processing, a part of the cache entries
is calculated before playing back media data, and the rest of the cache entries
are calculated progressively during playback. If the data sought by users is
not found in the currently ready cache entries, the calculation of cache entries
is performed forward until the data is covered by the cache entries.
Figs 5A-5D shows an example of incremental processing. In this example,
the memory space 511 of the memory 510 is allocated to the STSS box for its
corresponding cache entries, the memory space 512 of the memory 510 is
allocated to the STSC box for its corresponding cache entries, and the memory
space 513 of the memory 510 is allocated to the STTS box for its
corresponding cache entries. As shown in Fig. 5A, before playing back media
data (see playback status 500), only a part of the cache entries for respective
boxes is calculated. The rest of the cache entries for respective boxes are
calculated progressively during playback, as shown in Fig. 5B. Since the
calculation is accomplished progressively during playback, each time only a
small part of the cache entries is calculated (as shown in Fig. 5C), no time
delay in playback will be aware by users. If a target decoding time prior to
current decoding time is sought, since the required data can be found in the
7

calculated cache entries, no time delay will be aware by users. If a target
decoding time is sought and the required data is not found in the calculated
cache entries, the calculation of cache entries is performed forward until the
data is covered by the cache entries, as shown in Fig. 5D.
Fig. 6 is a flowchart showing an embodiment of a data processing method. In
this embodiment, a STTS box is used as an example, rather a limitation to the
invention. To locate a decoding time received in step S601, in step S602, one
of the cache entries is firstly located, in which the total time duration of samples
recorded from the very first cache entry is accumulated until the accumulated
total time duration accumulated to the located cache entry equals or exceeds
the decoding time. In step S603, after the cache entry is located, a sample
corresponding to the decoding time can be easily found by a linear search.
Here, after locating the cache entry, the method of the present invention only
needs to search through the group correspond ing to the cache entry for the
target sample by accumulating the time durations of respective samples in the
STTS entries until the sum of the accumulated time duration of samples in the
located cache entry and the accumulated total time duration of cache entries
prior to the located cache entry equals or exceeds the target decoding time.
Therefore, total search time can be reduced. It is understood that if the sample
is sought for playback, it is also determined whether the sample can be
randomly accessed. As described, there are random accessible samples and
non-random accessible samples among the media data. A random
accessible sample means the sample can be sought and decoded without
regard to other samples. If the desired sample is not a random accessible
one, a random access point (random accessible sample) closest to (equal to or
less than) the sample is sought from the STSS, and a decoding time of the
random access point is then sought from the STTS box.
Fig. 7 is a flowchart showing another embodiment of a data processing
method. In this embodiment, a STSC box is used as an example, rather a
limitation to the invention. To locate a sample with a sample number received
in step S701, in step S702, one of the cache entries is firstly located, in which
the total number of samples recorded from the very first cache entry is
8

accumulated until the total number of samples accumulated to the located
cache entry equals or exceeds the sample number. In step S703, after the
cache entry is located, a chunk number that the sample belonged to is located
by a linear search. Here, after locating the cache entry, the method of the
present invention only needs to search through the group corresponding to the
cache entry for the target chunk number. It is understood that if the sample is
sought for playback, related information of the sample is further retrieved from
a sample description table (STSD) according to a corresponding sample
description index of the located chunk number.
Data processing methods, or certain aspects or portions thereof, may take the
form of program code (i.e., executable instructions) embodied in tangible
media, such as products, floppy diskettes, CD-ROMS, hard drives, or any other
machine-readable storage medium, wherein, when the program code is loaded
into and executed by a machine, such as a computer, the machine thereby
becomes an apparatus for practicing the methods. The methods may also be
embodied in the form of program code transmitted over some transmission
medium, such as electrical wiring or cabling, through fiber optics, or via any
other form of transmission, wherein, when the program code is received and
loaded into and executed by a machine, such as a computer, the machine
becomes an apparatus for practicing the disclosed methods. When
.implemented on a general-purpose processor, the program code combines
with the processor to provide a unique apparatus that operates analogously to
application specific logic circuits.
While the invention has been described by way of example and in terms of
preferred embodiment, it is to be understood that the invention is not limited
thereto. Those skilled in this technology can still make various alterations and
modifications without departing from the scope and spirit of this invention.
Therefore, the scope of the present invention shall be defined and protected by
the following claims and their equivalents.
9

WE CLAIM
1. A data processing method for accessing a target sample in a media data
stream, the media data stream having a plurality of samples and
corresponding sample information recorded in at least one entry, the method
comprising:
providing target sample information corresponding to the target sample,
wherein the sample information for a predetermined number of entries is
calculated and the calculated result is stored in at least one cache entry;
locating one of the cache entries by comparing the target sample information
with the calculated result of respective cache entries; and
after locating the cache entry, locating the target samp'ie from one entries
corresponding to the located cache entry.
2. The method of claim 1 further comprising determining the number of the
cache entries according to the number of the entries.
3. The method of claim 1 further comprising calculating the sample
information for the respective predetermined number of the entries during
playback.
4. The method of claim 1 wherein at least one table is provided, wherein the
table is a time to sample box (STTS) listing the entries and the corresponding
sample information, the sample information comprises a decoding time of
samples in the corresponding entry.
5. The method of claim 4 wherein the target sample information comprises a
specific decoding time.
6. The method of claim 5 wherein the specific decoding time is between the
sum of the time duration of samples of the cache entries prior to the located
cache entry, and the accumulated time duration of trie located cache entry.




10

7. The method of claim 1 wherein at least one table is provided, wherein the
table comprises a sample to chunk box (STSC), comprising chunks of the
media data stream, and the sample information comprises the number of
samples in respective chunks.
8. The method of claim 7 wherein the target sample number is between the
sum of the number of samples of the cache entries prior to the located cache
entry and the accumulated number of samples of the located cache entry.
9. The method of claim 1 wherein the media data stream is of a MPEG-4 file.
10. A machine-readable storage medium comprising a computer program,
which, when executed, causes a device to perform a data processing method
for accessing a target sample in a media data stream, the media data stream
having a plurality of samples and corresponding sample information recorded
in at least one entry, the method comprising:
providing target sample information corresponding to the target sample,
wherein the sample information for a predetermined number of entries is
calculated and the calculated result is stored in at least one cache entry;
locating one of the cache entries by comparing the target sample information
with the calculated result of respective cache entries; and
after locating the cache entry, locating the target sample from the entries
corresponding to the located cache entry.
11. The storage medium of claim 10 wherein the method further comprising
determining the number of the cache entries according to the number of the
entries.
12. The storage medium of claim 10 wherein the method further comprising
calculating the sample information for the respective predetermined number of
the entries during playback.
II

13. The storage medium of claim 10 wherein at least one table is provided,
wherein the table is a time to sample box (STTS) listing the entries and the
corresponding sample information, the sample information comprises a
decoding time of samples in the corresponding entry.
14. The storage medium of claim 13 wherein the target sample information
comprises a specific decoding time.
15. The storage medium of claim 14 wherein the specific decoding time is
between the sum of the time duration of samples of the cache entries prior to
the located cache entry, and the accumulated time duration of the located
cache entry.
16. The storage medium of claim 10 wherein at least one table is provided,
wherein the table comprises a sample to chunk box (STSC), comprising
chunks of the media data stream, and the sample information comprises the
number of samples in respective chunks.
17. The storage medium of claim 16 wherein the target sample number is
between the sum of the number of samples of the cache entries prior to the
located cache entry and the accumulated number of samples of the located
cache entry.
18. The storage medium of claim 10 wherein the media data stream is of a
MPEG-4 file.
19. A data processing system, comprising:
a media data stream comprising a plurality of samples and corresponding
sample information recorded in at least one entry;
at least one cache entry storing a calculated result of the sample information for
a predetermined number of the entries; and
a processing unit receiving target sample information corresponding to a target
sample, locating one of the cache entries by comparing the target sample

12
iz


information with the calculated result of respective cache entries, and after
locating the cache entry, locating the target sample from the entries
corresponding to the located cache entry.
20. The system of claim 19 wherein the processing unit further determines the
number of the cache entries according to the number of the entries.
21. The system of claim 19 wherein the processing unit further calculates the
sample information for the respective predetermined number of the entries
during playback.
22. The system of claim 19 wherein at least one table is provided, wherein the
table is a time to sample box (STTS) listing the entries and the corresponding
sample information, the sample information comprises a decoding time of
samples in the corresponding entry.
23. The system of claim 22 wherein the target sample information comprises
a specific decoding time.
24. The system of claim 23 wherein the specific decoding time is between the
sum of the time duration of samples of the cache entries prior to the located
cache entry, and the accumulated time duration of the located cache entry.
25. The system of claim 19 wherein at least one table is provided, wherein the
table comprises a sample to chunk box (STSC), comprising chunks of the
media data stream, and the sample information comprises the number of
samples in respective chunks.
26. The system of claim 25 wherein the target sample number is between the
sum of the number of samples of the cache entries prior to the located cache
entry and the accumulated number of samples of the located cache entry.
27. The system of claim 19 wherein the media data stream is of a MPEG-4
file.



13

28. The system of claim 19 wherein the data processing system is a MPEG-4
file decoder.

Dated this 6th day of February, 2006.









14

Documents:

182-MUM-2006-ABSTRACT(2-9-2011).pdf

182-mum-2006-abstract(6-12-2006).pdf

182-mum-2006-abstract(6-2-2006).doc

182-mum-2006-abstract(6-2-2006).pdf

182-mum-2006-abstract(amended)-(6-12-2006).pdf

182-mum-2006-cancelled pages(6-12-2006).pdf

182-mum-2006-claims(6-2-2006).doc

182-mum-2006-claims(6-2-2006).pdf

182-MUM-2006-CLAIMS(AMENDED)-(2-9-2011).pdf

182-MUM-2006-CLAIMS(AMENDED)-(20-3-2012).pdf

182-MUM-2006-CLAIMS(AMENDED)-(24-11-2011).pdf

182-mum-2006-claims(amended)-(6-12-2006).pdf

182-MUM-2006-CLAIMS(MARKED COPY)-(2-9-2011).pdf

182-MUM-2006-CLAIMS(MARKED COPY)-(24-11-2011).pdf

182-mum-2006-correspondence(3-1-2008).pdf

182-mum-2006-description(complete)-(6-2-2006).pdf

182-MUM-2006-DRAWING(2-9-2011).pdf

182-mum-2006-drawing(6-2-2006).pdf

182-MUM-2006-EP DOCUMENT(2-9-2011).pdf

182-MUM-2006-FORM 1(2-9-2011).pdf

182-MUM-2006-FORM 1(20-3-2012).pdf

182-mum-2006-form 1(6-2-2006).pdf

182-mum-2006-form 13(6-12-2006).pdf

182-mum-2006-form 18(3-1-2008).pdf

182-mum-2006-form 2(6-2-2006).doc

182-mum-2006-form 2(6-2-2006).pdf

182-mum-2006-form 2(complete)-(6-2-2006).pdf

182-MUM-2006-FORM 2(TITLE PAGE)-(2-9-2011).pdf

182-MUM-2006-FORM 2(TITLE PAGE)-(20-3-2012).pdf

182-mum-2006-form 2(title page)-(6-2-2006).pdf

182-mum-2006-form 2(title page)-(complete)-(6-2-2006).pdf

182-mum-2006-form 3(13-4-2006).pdf

182-MUM-2006-FORM 3(2-9-2011).pdf

182-mum-2006-form 3(6-2-2006).pdf

182-MUM-2006-FORM 5(2-9-2011).pdf

182-mum-2006-form 5(6-2-2006).pdf

182-MUM-2006-MARKED COPY(20-3-2012).pdf

182-mum-2006-marked copy(6-12-2006).pdf

182-MUM-2006-PETITION UNDER RULE 137(2-9-2011).pdf

182-MUM-2006-POWER OF ATTORNEY(2-9-2011).pdf

182-mum-2006-power of attorney(4-10-2006).pdf

182-mum-2006-power of attorney(9-3-2006).pdf

182-MUM-2006-REPLY TO EXAMINATION REPORT(2-9-2011).pdf

182-MUM-2006-REPLY TO HEARING(20-3-2012).pdf

182-MUM-2006-REPLY TO HEARING(24-11-2011).pdf

182-MUM-2006-SPECIFICATION(AMENDED)-(20-3-2012).pdf

182-MUM-2006-SPECIFICATION(AMENDED)-(24-11-2011).pdf

182-mum-2006-specification(amended)-(6-12-2006).pdf


Patent Number 251619
Indian Patent Application Number 182/MUM/2006
PG Journal Number 13/2012
Publication Date 30-Mar-2012
Grant Date 26-Mar-2012
Date of Filing 06-Feb-2006
Name of Patentee MEDIATEK INC.
Applicant Address 5F, NO1-2, INNOVATION ROAD I, SCIENCE-BASED INDUSTRIAL PARK, HSIN-CHU,R.O.C.300,
Inventors:
# Inventor's Name Inventor's Address
1 CHAN-HUNG SU NO.21, ALLEY 1, LANE 170, WENLAI RD., TZUOYING DISTRICT KAOHSIUNG CITY 813
2 YU-CHENG HSIEH NO.27, CHENHSIN ST., WAN-NEI TSUEN, JEN-WU HSIANG, KAOHSIUNG COUNTY 814
PCT International Classification Number G06F17/30
PCT International Application Number N/A
PCT International Filing date
PCT Conventions:
# PCT Application Number Date of Convention Priority Country
1 11/230,402 2005-09-20 U.S.A.