Locating a frame position in an MPEG data stream
Abstract
A method for locating a frame position in an MPEG data stream within a computer system is disclosed. MPEG standard is a set of defined algorithms and techniques for the compression and decompression of moving pictures (video) and sound (audio), and the formation of a multiplexed data stream that includes the compressed video and audio data plus any associated ancillary service data. Although the MPEG standard is extremely flexible, there is a fundamental deficiency associated with the packet-oriented nature of the MPEG format, and that is there being no information about the position of each video frame encoded in the data stream. Even though such information can be deduced from the byte-rate, but because the calculation of a frame position depends on a constant byte-rate, a problem may still arise when the byte-rate is non-existent, incorrectly encoded, or constantly changed due to the presence of several packs with varying rates. This invention presents an improved method for locating a frame position in the MPEG data streams regardless of the byte-rate condition.

Term
Term ended
Projected expiry passed 14 January 2017, 9.7 years ago.
- Priority
- Filed
- Published
- Projected expiry
- Today
12 claims: 3 independent, 9 dependent
- 1A method for efficiently locating a frame in an MPEG data stream within a computer system, said method comprising the steps of:determining (80) a frame number for a desired frame;determining (82) a byte-rate of said MPEG data stream;determining (84) an estimate byte position for said desired frame from said byte-rate of said MPEG data stream;identifying (86) a presentation time stamp which is nearest to said estimate byte position for said desired frame;determining (88) a time position of said desired frame;determining (90) whether said presentation time stamp is within a specified proximity to said time position of said desired frame;in response to a determination that said presentation time stamp is not within said specified proximity to said time position of said desired frame, returning to said determining (82) a byte-rate step;and in response to a determination that said presentation time stamp is within said specified proximity of said time position of said desired frame, searching (92) for said desired frame within said specified proximity.
- 2A method as claimed in Claim 1, wherein said determining (82) a byte-rate step further comprises the step of:dividing the product of a clock frequency and the difference between a byte position of a last system clock reference from a current frame and a byte position of a next system clock reference from said current frame by the product of a frame rate and the difference between a value of said last system clock reference from said current frame and a value of said next system clock reference from said current frame.
- 3A method as claimed in Claim 1, wherein said determining (84) an estimate byte position step further comprises the step of:adding a byte position of a current frame to the product of said byte-rate and the difference between a frame number for said desired frame and a frame number for said current frame.
- 4A method as claimed Claim 1, wherein said determining a time position step (88) further comprises the step of:dividing a frame number for said desired frame by a frame rate.
- 5A method as claimed in Claim 1, wherein said determining (90) whether said presentation time stamp is within a specified proximity step further comprises the step of:determining whether said presentation time stamp is within two second of said time position of said desired frame.
- 6A method as claimed in Claim 1, said method further comprises the steps of:searching (94) back for an I-frame;and decoding (96) all frames subsequent to said I-frame until said desired frame is reached.
- 7A computer system for efficiently locating a frame position in an MPEG data stream, said computer system comprising:means for determining a frame number for a desired frame;means for determining a byte-rate of said MPEG data stream;means for determining an estimate byte position for said desired frame from said byte-rate of said MPEG data stream;means for identifying a presentation time stamp which is nearest to said estimate byte position for said desired frame;means for determining a time position of said desired frame;means for determining whether said presentation time stamp is within a specified proximity to said time position of said desired frame;means for determining another byte-rate, in response to a determination that said presentation time stamp is not within said specified proximity to said time position of said desired frame;and means for searching said desired frame within said specified proximity, in response to a determination that said presentation time stamp is within said specified proximity of said time position of said desired frame.
- 8A system as claimed in Claim 7, wherein said means for determining a byte-rate further comprises:means for dividing the product of a clock frequency and the difference between a byte position of a last system clock reference from a current frame and a byte position of a next system clock reference from said current frame by the product of a frame rate and the difference between a value of said last system clock reference from said current frame and a value of said next system clock reference from said current frame.
- 9A system as claimed in Claim 7, wherein said means for determining an estimate byte position further comprises:means for adding a byte position of a current frame to the product of said byte-rate and the difference between a frame number for said desired frame and a frame number for said current frame.
- 10A system as claimed in Claim 7, wherein said means for determining a time position further comprises:means for dividing a frame number for said desired frame by a frame rate.
- 11A system as claimed in Claim 7, wherein said means for determining whether said presentation time stamp is within a specified proximity further comprises:means for determining whether said presentation time stamp is within two second of said time position of said desired frame.
- 12A system as claimed in Claim 7, wherein said system further comprises:means for searching back for an I-frame;and means decoding all frames subsequent to said I-frame until said desired frame is reached.
Independent claims12
25 paragraphs in 3 sections, as filed
Technical Field
0001The present invention relates to a method and system for data processing in general, and in particular to a method for processing MPEG data streams within a computer system. Still more particularly, the present invention relates to a method for locating a frame position in an MPEG data stream within a computer system.
Description of the Prior Art
0002In 1988, the Moving Picture Experts Group (MPEG) was established under the framework of the Joint ISO/IEC Technical Committee (JTC 1) on Information Technology with the mandate to develop standards for coded representation of moving pictures (video), associated sound (audio), and their combination when utilized for storage and retrieval on digital storage media (DSM). In April 1990, it became working Group 11 (WG 11) of JTC 1/SC 2, and in November 1991 WG 11 of JTC 1/SC 29. The original work items of MPEG consist of coding up to 1.5, 10, and 40 Mb/s, which were respectively nicknamed as MPEG-1, -2, and -3.
0003In broad terms, the MPEG standard addresses the compression/decompression of video and audio data, and the formation of a multiplexed common data stream that includes the compressed video and audio data plus any associated ancillary service data. The MPEG standard also addresses the synchronization of video, audio and ancillary data during playback of the decompressed signals. It is intended to cater to a wide variety of applications and services, including but not limited to television broadcasting and communications.
0004Specifically, the MPEG standard is a set of algorithms for compression and systemization, and techniques with well-defined rules and guidelines. The rules and guidelines allow variation in the values assigned to many of the parameters, providing for a broad range of products and interoperability. The MPEG data stream comprises two layers-system layer and compression layer. The system layer contains timing and other information needed to de-multiplex the audio, video and ancillary data streams, and to provide synchronization during playback. The compression layer includes the compressed audio and video data streams.
0005Although the MPEG standard is extremely flexible, there is a fundamental deficiency associated with the packet-oriented nature of the MPEG format, and that is no information about the position (or byte offset) of each video frame being encoded in the data stream. Even though such information can be deduced from the byte-rate of the data stream, but because the calculation of a frame position depends on a constant byte-rate, a problem may still arise when the byte-rate is non-existent, incorrectly encoded, or constantly changed due to the presence of several packs having varying rates. Certainly, the frame position can also be obtained by parsing the data stream. This, however, could be quite time consuming because the parsing must be perform from the beginning of the data stream every time when such information is needed.
0006Consequently, it would be desirable to provide a method for efficiently locating a frame position in MPEG data streams within a computer system.
DISCLOSURE OF THE INVENTION
0007In accordance with the method and system of the present invention, a frame number for a desired frame in an MPEG data stream is first obtained from a user or some other input. A byte-rate of the MPEG data stream and a byte position of a selected frame are then determined analytically. Next, a presentation time stamp that is nearest to the determined byte position of the selected frame is compared with a time position of the desired frame. If the presentation time stamp is not within a specified proximity to the time position of the desired frame, the process returns to determine another byte-rate for the data stream. However, if the presentation time stamp is within the specified proximity of the time position of the desired frame, the desired frame is located by searching a presentation time stamp that is closest to the time position of the desired frame.
BRIEF DESCRIPTION OF THE DRAWINGS
0008The invention will now be described, by way of example only, with reference to the accompanying drawings, in which: <ul id="ul0001" list-style="none"><li>Figure <b>1A</b> is a pictorial diagram of a personal computer utilized by a preferred embodiment of the invention;</li><li>Figure <b>1B</b> is a block diagram of the components for the personal computer depicted in Figure <b>1A</b>;</li><li>Figure <b>2</b> is a block diagram of a typical MPEG decoder utilized by a preferred embodiment of the invention;</li><li>Figure <b>3</b> is a block diagram of the ISO/IEC 11172 data-stream structure; and</li><li>Figure <b>4</b> is a high-level logic flow diagram of a method for locating a frame position in an MPEG data stream within a computer system, according to a preferred embodiment of the invention.</li></ul>
DETAILED DESCRIPTION OF THE INVENTION
0009The present invention may be executed in a variety of computers under a number of different operating systems. The computer may be, for example, a personal computer, a mini-computer or a mainframe computer. In addition, the computer may be a stand-alone system or part of a network such as a local area network (LAN) or a wide area network (WAN). For the purpose of illustration, a preferred embodiment of the present invention, as described below, is implemented on a personal computer, such as the Aptiva series manufactured by International Business Machines Corporation. (Aptiva is a trademark of IBM Corporation).
0010Referring now to the drawings and in particular to Figure <b>1A</b>, there is depicted a diagram of personal computer <b>10</b> which may be utilized by a preferred embodiment of the present invention. Personal computer <b>10</b> comprises processor unit <b>11</b>, keyboard <b>12</b>, mouse <b>13</b> and video display (or monitor) <b>14</b>. Keyboard <b>12</b> and mouse <b>13</b> constitute user input devices, and video display <b>14</b> constitutes an output device. Mouse <b>13</b> is utilized to control cursor <b>15</b> displayed on screen <b>16</b> of video display <b>14</b>. Personal computer <b>10</b> supports a Graphic User Interface (GUI) which allows a user to "point-and-shoot" by moving cursor <b>15</b> to an icon or specific location on screen <b>16</b> via mouse <b>13</b> and then press one of the buttons on mouse <b>13</b> to perform a user command.
0011Referring now to Figure <b>1B</b>, there is illustrated a block diagram of the components for personal computer <b>10</b> in Figure <b>1A</b>. Processor unit <b>11</b> includes system bus <b>21</b> to which various components are attached and by which communications among various components are accomplished. Microprocessor <b>22</b>, connecting to system bus <b>21</b>, is supported by read only memory (ROM) <b>23</b> and random access memory (RAM) <b>24</b>, both of which are also connected to system bus <b>21</b>. Microprocessor <b>22</b> in the International Business Machines Corporation's Aptiva computer series is one of the Intel family of microprocessors; however, other microprocessors manufactured by Hewlett Packard, Inc., Sun Microsystems, Motorola, Inc., and others may be applicable also. (Intel is a trademark of Intel Corp.)
0012ROM <b>23</b> contains, among other codes, the Basic Input/Output System (BIOS) which controls certain basic hardware operations, such as interactions of hard disk drive <b>26</b> and floppy disk drive <b>27</b>. RAM <b>24</b> is the main memory within which the operating system having the present invention incorporated and other application programs are loaded. A memory management device <b>25</b> is connected to system bus <b>21</b> for controlling all Direct Memory Access (DMA) operations such as paging data between RAM <b>24</b> and hard disk drive <b>26</b> or floppy disk drive <b>27</b>.
0013As shown in Figures <b>1A</b> and <b>1B</b>, a CD ROM drive <b>18</b> having a compact disk <b>19</b> inserted inside is installed within processor unit <b>11</b>. In addition, an MPEG decoder <b>31</b> is also installed within processor unit <b>11</b> for decoding MPEG data stored in a digital storage medium (DSM) such as compact disk <b>19</b>. Further, a modem <b>17</b> may be utilized to communicate with other data processing systems <b>270</b> across communications line <b>260</b>.
0014To complete the description of processor unit <b>11</b>, there are three input/output (I/O) controllers, namely, keyboard controller <b>28</b>, mouse controller <b>29</b> and video controller <b>30</b>, all of which are connected to system bus <b>21</b>. As their names imply, keyboard controller <b>28</b> provides the hardware interface for keyboard <b>12</b>, mouse controller <b>29</b> provides the hardware interface for mouse <b>13</b>, and video controller <b>30</b> provides the hardware interface for video display <b>14</b>.
0015Referring now to Figure <b>2</b>, there is illustrated a block diagram of a typical MPEG decoder <b>31</b>. MPEG decoder <b>31</b> comprises a medium specific decoder <b>40</b>, a system decoder <b>42</b>, an audio decoder <b>46</b> and a video decoder <b>48</b>. System decoder <b>42</b>, audio decoder <b>46</b> and video decoder <b>48</b> are all synchronized by clock <b>44</b>. MPEG data from a digital storage medium is input to MPEG decoder <b>31</b> via medium specific decoder <b>40</b> which converts the MPEG data to an MPEG data stream specifically for system decoder <b>42</b>. System decoder <b>42</b> then demultiplexes the MPEG data stream into two elementary streams for separately feeding to audio decoder <b>46</b> and video decoder <b>48</b>, whose outputs are decoded audio signals and decoded video signals respectively.
0016Referring now to Figure <b>3</b>, there is illustrated a block diagram of the ISO/IEC 11172 data-stream structure. The ISO 11172 data stream (or MPEG data stream) comprises a series of random access sub-streams <b>50</b>, each having a pack start code <b>51</b> and a pack <b>52</b>, and concludes with a pack end code <b>59</b>. within each pack <b>52</b>, there are system clock reference (SCR) <b>62</b>, system header <b>64</b>, and a variable number of packets <b>66a</b>, <b>66n</b>. Pack start code <b>51</b> is <b>32</b> bits in length, and it contains information for identifying each pack <b>52</b>. SCR <b>62</b> is a snapshot of a system clock from an encoder (not shown). Because any SCR utilized by the audio, video and associated ancillary data in a decoder must have approximately the same value, SCR <b>62</b> is inserted into the MPEG data stream on a cyclic basis by the encoder and are extracted by system decoder <b>42</b>. In fact, four bytes of each eight-byte SCR <b>62</b> contain a time stamp encoded by the encoder during the encoding stage intended for such synchronization purpose.
0017Typically, system header <b>64</b> only appears in the first pack of any MPEG data-stream, and it is a data structure that carries information summarizing the system characteristics of the multiplexed MPEG data stream. System header <b>64</b> contains information such as an audio bound and a video bound; however, for the purpose of the present invention, the most important element is the frame rate (not shown) stored within the video bound of system header <b>64</b>. The frame rate is constant throughout for each MPEG data stream. Finally, all data, both audio and video, are stored within packet data <b>80</b> of packets <b>66a</b>, <b>66n</b>. In general, several packets <b>66a</b>, <b>66n</b> constitutes one frame.
0018In addition to packet data <b>80</b>, each of packets <b>66a</b>, <b>66n</b> also includes a packet start code prefix <b>72</b>, a stream identification <b>74</b>, a packet length <b>76</b>, and some other header data <b>78</b>. Certain buffer information <b>92</b> and time stamps <b>94</b> are stored within the field of other header data <b>78</b> in each of packets <b>66a</b>, <b>66n</b>. Time stamps <b>94</b> can be either a presentation time-stamp (PTS) only or a PTS and a decoding time-stamp (DTS) both. The PTS indicates the time that a presentation unit is presented in system decoder <b>42</b> while the DTS indicates the time that an access unit is decoded in system decoder <b>42</b>. A presentation unit is a decoded video picture, ancillary data, or audio time sequence, and PTSs are samples of the encoder system clock that are associated with some audio, video, or associated ancillary data presentation units. Thus, PTS represents the time at which the video picture is to be displayed, the starting playback time for the audio time sequence, or the time that the associated ancillary data must be achieved. PTSs are also inserted into the data stream on a cyclic basis by the encoder and are then extracted by system decoder <b>42</b>. The ISO 11172 data-stream structure is described in more detail in ISO/IEC 11172-1, 1993.
0019Referring now to Figure <b>4</b>, there is illustrated a high-level logic flow diagram of the method for locating a frame position in MPEG data streams within a computer system, according to a preferred embodiment of the invention. Starting at block <b>80</b>, a frame number for a desired frame position, <i>NewFramePos,</i> may be determined from an input by a user or some other means. Then, at block <b>82</b>, the number of bytes per frame, <i>ByteRate,</i> is determined by the following equation:<maths id="math0001" num=""><math display="block"><mrow><mtext mathvariant="italic">ByteRate =</mtext><mtext></mtext><mfrac><mrow><msub><mrow><mtext mathvariant="italic">ByteOffset</mtext></mrow><mrow><mtext mathvariant="italic">SCR2</mtext></mrow></msub><msub><mrow><mtext mathvariant="italic">-ByteOffset</mtext></mrow><mrow><mtext mathvariant="italic">SCR1</mtext></mrow></msub></mrow><mrow><mtext mathvariant="italic">SCR2-SCR1</mtext></mrow></mfrac><mtext mathvariant="italic">x</mtext><mfrac><mrow><mtext mathvariant="italic">ClockFreq</mtext></mrow><mrow><mtext mathvariant="italic">FrameRate</mtext></mrow></mfrac></mrow></math><img file="EP0786909A2_D0001.tif" /></maths><i>where:</i><dl id="dl0001" compact="compact"><dt><i>ByteOffset</i><sub><i>SCR1</i></sub><i> =</i></dt><dd>byte position of the first byte of last SCR from current byte position, w.r.t. to the beginning of the data stream</dd><dt><i>ByteOffset</i><sub><i>SCR2</i></sub> =</dt><dd>byte position of the first byte of next SCR from current byte position, w.r.t. to the beginning of the data stream</dd><dt><i>SCR1</i> =</dt><dd>last SCR value from the current byte position</dd><dt><i>SCR2 =</i></dt><dd>next SCR value from the current byte position</dd><dt><i>ClockFreq =</i></dt><dd>90 KHz</dd><dt><i>FrameRate =</i></dt><dd>frames per second</dd></dl> Typically, SCR <b>62</b> in each pack of data stream <b>50</b> is utilized to determine the byte arrival schedule at decoder <b>31</b> in order to accommodate the correct buffering in decoder <b>31</b>. Because the values of SCR <b>62</b> are calculated based on the actual byte-rate during encoding of data stream <b>50</b>, two consecutive SCR <b>62</b> values, SCR1 and SCR2, may be utilized to calculate the number of bytes per frame at any location within data stream <b>50</b>. SCR1 is the value of a previous SCR from the current position in bytes, while SCR2 is the value of a next SCR from the current position in bytes. Further, <i>ByteOffset</i><sub><i>SCR1</i></sub> is the byte position of a first byte of the previous SCR from the current position in bytes, while <i>ByteOffset</i><sub><i>SCR2</i></sub> is the byte position of a first byte of the next SCR from the current position in bytes. As a preferred embodiment of the invention, <i>ByteOffset</i><sub><i>SCR1</i></sub> may be obtained from a counter that keeps track of the byte count since the beginning of data stream <b>50</b>, while <i>ByteOffset</i><sub><i>SCR2</i></sub> may be obtained by moving forward from the current position to the next SCR. Clock frequency, <i>ClockFreq,</i> also from the encoder, is typically at 90 KHz as defined by the MPEG standard. The frame rate, <i>FrameRate,</i> may be extracted from the 5-bit video bound of system header <b>64</b>.
0020At block <b>84</b>, an estimate byte position for the desired frame, <i>EstiBytePos,</i> is determined by multiplying the difference between the frame number at the desired frame position, <i>NewFramePos,</i> and the frame number at the current position, <i>CurrFramePos,</i> to the number of bytes per frame, <i>ByteRate</i> (from block <b>82</b>), and the product is then added to the byte position for the current frame, <i>CurrBytePos.</i> The steps described above can be expressed in equation form as follows:<maths id="math0002" num=""><math display="block"><mrow><mtext mathvariant="italic">EstiBytePos=(NewFramePos-CurrFramePos)xByteRate+CurrBytePos</mtext></mrow></math><img file="EP0786909A2_D0002.tif" /></maths><i>where:</i><dl id="dl0002" compact="compact"><dt><i>NewFramePos</i> =</dt><dd>frame number of desired frame position</dd><dt><i>CurrFramePos =</i></dt><dd>frame number of current frame position</dd><dt><i>ByteRate</i> =</dt><dd>number of bytes per frame</dd><dt><i>CurrBytePos</i> =</dt><dd>current byte position</dd></dl>
0021Next, at block <b>86</b>, a search is made by parsing forward and backward for the PTS nearest to the estimate byte position for the desired frame, <i>EstiBytePos,</i> found at block <b>84</b>. Then, at block <b>88</b>, the time position of the desired frame, <i>NewTimePos,</i> is determined by dividing the frame number of the desired frame, <i>NewFramePos,</i> by the frame rate, <i>FrameRate,</i> as follows:<maths id="math0003" num=""><math display="block"><mrow><mtext mathvariant="italic">NewTimePos=</mtext><mfrac><mrow><mtext mathvariant="italic">NewFramePos</mtext></mrow><mrow><mtext mathvariant="italic">FrameRate</mtext></mrow></mfrac></mrow></math><img file="EP0786909A2_D0003.tif" /></maths><i>where:</i><dl id="dl0003" compact="compact"><dt><i>NewFramePos</i> =</dt><dd>frame number of desired frame position</dd><dt><i>FrameRate</i> =</dt><dd>frames per second</dd></dl>
0022Subsequently, at block <b>90</b>, a determination is made as to whether the nearest PTS as determined at block <b>86</b> is within a specified proximity to the time position of the desired frame, <i>NewTimePos,</i> as determined at block <b>88</b>. As a preferred embodiment of the invention, the specified proximity is about one second, and probably should not be more than two second. If the nearest PTS is not within the specified proximity to <i>NewTimePos,</i> then the process returns back to block <b>82</b> in order to determine a new <i>ByteRate.</i> Otherwise, if the nearest PTS is within the specified proximity to <i>NewTimePos,</i> then move forward or backward to locate a frame with a PTS that is closest to <i>NewTimePos,</i> at block <b>92</b>. This frame position, at which the desired frame is located, is probably different from the selected frame position obtained at block <b>86</b>. Finally, at block <b>94</b>, a backward search for the nearest I-frame is performed. All the frames subsequent to the I-frame can then be decoded, at block <b>96</b>, until the desired frame position found at block <b>92</b> is reached.
0023As has been described, the present invention provides an improved method for locating a frame position in an MPEG data stream within a computer system.
Contents3
9 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US10135900B2 | Cited by | United States of America | Applicant |
| US7242851B2 | Cited by | United States of America | Search report |
| WO03023785A2 | Cited by | World Intellectual Property Organization (WIPO) | International search |
| US7975225B2 | Cited by | United States of America | Applicant |
| US10382494B2 | Cited by | United States of America | Applicant |
| US7212727B2 | Cited by | United States of America | Applicant |
| EP1274086A2 | Cited by | European Patent Office (EPO) | Search report |
| CN104298991A | Cited by | China | Search report |
| US7106749B1 | Cited by | United States of America | Applicant |
| US7106749B1 | Cited by | United States of America | Applicant |
| US9060190B2 | Cited by | United States of America | Applicant |
| EP1274086A3 | Cited by | European Patent Office (EPO) | Search report |
| US2024078784A1 | Cited by | United States of America | Search report |
| US7756201B2 | Cited by | United States of America | Applicant |
| EP1860884A1 | Cited by | European Patent Office (EPO) | Search report |
| US7283880B2 | Cited by | United States of America | Applicant |
| WO2017124897A1 | Cited by | World Intellectual Property Organization (WIPO) | International search |
| EP2140371A1 | Cited by | European Patent Office (EPO) | Search report |
| US9787725B2 | Cited by | United States of America | Applicant |
| EP1056273A2 | Cited by | European Patent Office (EPO) | Search report |
| US10911498B2 | Cited by | United States of America | Applicant |
| EP1278193A1 | Cited by | European Patent Office (EPO) | Search report |
| EP1278193A4 | Cited by | European Patent Office (EPO) | Search report |
| US10834435B2 | Cited by | United States of America | Applicant |
| WO2007138243A1 | Cited by | World Intellectual Property Organization (WIPO) | International search |
| WO03010970A2 | Cited by | World Intellectual Property Organization (WIPO) | International search |
| CN100350488C | Cited by | China | Search report |
| WO03023785A3 | Cited by | World Intellectual Property Organization (WIPO) | International search |
| US9060190B2 | Cited by | United States of America | Applicant |
| US7580416B2 | Cited by | United States of America | Applicant |
| US9060190B2 | Cited by | United States of America | Applicant |
| EP1860884A1 | Cited by | European Patent Office (EPO) | Search report |
| EP2439741A1 | Cited by | European Patent Office (EPO) | Search report |
| EP1056273A3 | Cited by | European Patent Office (EPO) | Search report |
| US8611721B2 | Cited by | United States of America | Applicant |
| WO03010970A3 | Cited by | World Intellectual Property Organization (WIPO) | International search |
| WO2007138243A1 | Cited by | World Intellectual Property Organization (WIPO) | International search |
| EP0634867A2 | Cites | European Patent Office (EPO) | Search report |
| EP0677961A2 | Cites | European Patent Office (EPO) | Search report |
9 members in 5 offices; this record represents the family
Priority claims4
| Document | Office | Kind | Date |
|---|---|---|---|
| 59026496 | United States of America | A | |
| 590264 | United States of America | – | |
| US19960590264 | – | – | – |
| 590264 | – | – | – |
Members9
| Document | Office | Kind | |
|---|---|---|---|
| EP0786909A2This record | European Patent Office (EPO) | A2 | |
| JPH09224244A | Japan | A | |
| US5715176A | United States of America | A | |
| EP0786909A3 | European Patent Office (EPO) | A3 | |
| KR100233353B1 | Republic of Korea | B1 | |
| JP3320327B2 | Japan | B2 | |
| EP0786909B1 | European Patent Office (EPO) | B1 | |
| DE69736871D1 | Germany | D1 | |
| DE69736871T2 | Germany | T2 |
24 legal events, as 4 offices reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | Office | |
|---|---|---|---|
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Patent expired after termination of 20 yearsExpiredPE20 | PE20 | GB | |
| Expiry of rightR071 | R071 | DE | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Notification of lapseLapsedST | ST | FR | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Register noted 'licences of right' (sect. 46/1977)746 | 746 | GB | |
| No opposition filedOpposition26N | 26N | EP | |
| No opposition filed within time limitOppositionORIGINAL CODE: 0009261PLBE | PLBE | EP | |
| Information on the status of an ep patent application or granted ep patentGrantedSTATUS: NO OPPOSITION FILED WITHIN TIME LIMITSTAA | STAA | EP | |
| Fr: translation filedET | ET | EP | |
| Corresponds to:REF | REF | EP | |
| European patent grantedGrantedFG4D | FG4D | GB | |
| Designated contracting statesAK | AK | EP | |
| (expected) grantORIGINAL CODE: 0009210GRAA | GRAA | EP | |
| Grant fee paidORIGINAL CODE: EPIDOSNIGR3GRAS | GRAS | EP | |
| Despatch of communication of intention to grant a patentORIGINAL CODE: EPIDOSNIGR1GRAP | GRAP | EP | |
| Request for examination filed17P | 17P | EP | |
| Designated contracting statesAK | AK | EP | |
| Search report despatchedORIGINAL CODE: 0009013PUAL | PUAL | EP | |
| Designated contracting statesAK | AK | EP | |
| Public reference made under article 153(3) epc to a published international application that has entered the european phaseORIGINAL CODE: 0009012PUAI | PUAI | EP |
Numbers
- Publication
- 0786909
- Publication, DOCDB
- 0786909
- Publication, EPODOC
- EP0786909
- Application
- 97300203
- Application, DOCDB
- 97300203
- Application, EPODOC
- EP19970300203
Titles3
- German
- Bildpositionsbestimmung in einem MPEG-Datenstrom
- English
- Locating a frame position in an MPEG data stream
- French
- Détermination de la position d'une trame dans un flux de données MPEG
Classification
- CPC, 6
- G06T9/007
- G11B27/105
- G11B27/3036
- G11B2220/213
- G11B2220/2512
- G11B2220/2545
- IPC, 9
- H04N7 26
- G06F19 00
- G06Q50 00
- G06T9 00
- G11B27 10
- G11B27 30
- H04N5 85
- H04N7 24
- H04N7 62
Designated states3
- Contracting states, 3
- Germany
- France
- United Kingdom