A method of decoding, composing and rendering a scene. First information is obtained, the first information including a part of a MPEG-4 BIFS scene description stream and at least one coded MPEG-4 media stream. The first information is decoded by invoking a BIFS scene decoder and one or more specific media decoders that are required by the scene. Second information is obtained, the second information including a second part of a BIFS scene description stream that contains a reference to an external application. The second information is decoded by invoking the BIFS scene decoder and an external application decoder. An integrated scene is composed, the integrated scene including one or more decoded MPEG-4 media objects and one or more external application objects specified in the decoded scene descriptions streams. The composed integrated scene is rendered on a display.
|
1. A method comprising:
decoding a part of a binary format scene description stream that references a non-MPEG external application object and a pointer to a set of non-MPEG computer-executable instructions associated with the non-MPEG external application object, wherein the non-MPEG external application object is configured to control and render a windowed region within a coded scene according to the set of non-MPEG computer-executable instructions; and
composing an integrated scene comprising at least one decoded media object from a coded media stream and the non-MPEG external application object.
18. A non-transitory computer-readable medium storing instructions for controlling a computing device to compose a scene, the instructions comprising:
decoding a part of a binary format scene description stream that references a non-MPEG external application object and a pointer to a set of non-MPEG computer-executable instructions associated with the non-MPEG external application object, wherein the non-MPEG external application object is configured to control and render a windowed region within a coded scene according to the set of non-MPEG computer-executable instructions; and
composing an integrated scene comprising at least one decoded media object from a coded media stream and the non-MPEG external application object.
20. A system comprising:
a processor;
a non-transitory computer-readable storage medium storing instructions which, when executed by a computing device, cause the computing device to perform a method comprising:
decoding a part of a binary format scene description stream that references a non-MPEG external application object and a pointer to a set of non-MPEG computer-executable instructions associated with the non-MPEG external application object, wherein the non-MPEG external application object is configured to control and render a windowed region within a coded scene according to the set of non-MPEG computer-executable instructions; and
composing an integrated scene comprising at least one decoded media object from a coded media stream and the non-MPEG external application object.
19. A computing device comprising:
a processor;
a non-transitory computer-readable storage medium storing instructions which, when executed by a computing device, cause the computing device to perform a method comprising:
decoding a part of a binary format scene description stream that references a non-MPEG external application object and a pointer to a set of non-MPEG computer-executable instructions associated with the non-MPEG external application object, wherein the non-MPEG external application object is configured to control and render a windowed region within a coded scene according to the set of non-MPEG computer-executable instructions; and
composing an integrated scene comprising at least one decoded media object from a coded media stream and the non-MPEG external application object.
2. The method of
3. The method of
4. The method of
5. The method of
6. The method of
7. The method of
8. The method of
9. The method of
10. The method of
11. The method of
12. The method of
starting an external application decoder at the start time; and
stopping the external application decoder at the stop time.
13. The method of
14. The method of
15. The method of
16. The method of
re-composing a new integrated scene by integrating a sub-scene specified by the part of the binary format scene description stream into the integrated scene; and
rendering the new integrated scene.
17. The method of
starting the non-MPEG external application object at the start time; and
stopping the non-MPEG external application object at the stop time.
|
This application is a continuation of U.S. patent application Ser. No. 11/170,996, filed Jun. 29, 2005, which is a continuation of application Ser. No. 09/613,292, filed Jul. 10, 2000, which claims priority from U.S. Provisional Application Ser. No. 60/142,745, filed on Jul. 8, 1999, and U.S. Provisional Application Ser. No. 60/156,441, filed on Sep. 28, 1999, the contents of which are incorporated herein by reference in their entirety.
The present invention relates to the field of digital multimedia compression technology. More particularly, the present invention relates to methods and apparatus for integrating an MPEG-4 decoder with an interface of another application that does not conform to the MPEG-4 standard.
Various types of data decoding devices and applications generate digitally based presentations which may be experienced by an individual or group of people. Digitally based presentations may be generated by, for example, digital movie players (e.g., a DVD player), digital music players (e.g., a CD player), World Wide Web browsers, Portable Document Format readers (e.g., ADOBE ACROBAT READER), spread-sheet software, word-processing software, operating system software, and video game players. Such presentations may be multimedia presentations that include some combination of text, graphics, video, animation, and/or sound. In addition, digitally based presentations may be interactive presentations that allow users to enter data or commands.
In the above-described systems, coded audiovisual information is used as input to generate the presentation. In the World Wide Web browser, for example, browser software (such as INTERNET EXPLORER from MICROSOFT Corp.) executing on a general purpose computer may be used to decode HTML pages (i.e., audiovisual information) and generate an interactive multimedia presentation. Typically, the various types of systems require various different coding formats for the audiovisual information. For example, a World Wide Web browser (“Web browser”) may not be able to operate using data that is formatted for a CD player.
The Moving Picture Expert Group (MPEG) of the International Organization for Standardization (ISO) has introduced standards for coding of audiovisual information. These standards include MP3, MPEG-1, MPEG-2, and MPEG-4. MPEG-4 provides a standard for representing units, known as “media objects,” of aural, visual or audiovisual content. These media objects can be of natural origin (e.g., recorded with a camera or microphone) or synthetic origin (e.g., generated with a computer). MPEG-4 specifies a standard for describing the composition of these objects and for combining these objects to form audiovisual “scenes.” A description of MPEG-4 is set forth in MPEG-4 Standard ISO/IEC, 14496-1, hereby incorporated by reference, as well as in Multimedia Systems, Standards and Networks (Atul Puri and Tsuhan Chen, Editors). An MPEG-4 decoder receives a bit-stream of data that was originally authored by coding media objects according to the MPEG-4 systax. The MPEG-4 decoder then may present the scene specified in the coded data by, for example, displaying the scene on a computer monitor or a television screen. The scene could contain text, graphics, video, animation, and/or sound in any combination.
Many systems and applications that generate digitally based presentations, such as a Web browser or Portable Document Format reader, do not conform to the MPEG-4 standard. In some cases, the author of a scene might want to include the presentation from a non-MPEG-4 application, such as a Web browser, into the scene generated by an MPEG-4 decoder. However, prior to the present invention, MPEG-4 did not provide a method or apparatus by which the author of the scene could integrate an application that does not conform to the MPEG-4 standard into a scene generated by an MPEG-4 decoder.
Embodiments of the present invention provide methods and apparatus to integrate an application that does not conform to the MPEG-4 standard (an “external application”) into a scene generated by an MPEG-4 decoder. An embodiment defines a Binary Format for Scenes (BIFS) node that allows an external application to exist within the MPEG-4 scene graph. In this embodiment, the external application controls and renders the windowed region in the MPEG-4 scene, for which the external application's interface is defined, allowing natural user interaction with the application. In a further embodiment, the scene node is designated “ApplicationWindow.” The present invention provides a node interface, including data definitions and functionality, for the newly defined node.
Embodiments of the present invention provide for the integration of an external application into an MPEG-4 scene. The phrase “external application” refers to an application that does not conform to some version of the MPEG-4 standard, and the phrase “MPEG-4 scene” refers to a scene generated by a decoder that decodes an MPEG-4 conformant bit-stream. According to embodiments of the present invention, the external application may be presented in an application window within the MPEG-4 scene on a display device. As described further below, a decoding device that operates according to embodiments of the present invention may be a general purpose computer, a digital signal processor, or a special purpose device such as an application specific integrated circuit. The logic that integrates the non-MPEG-4 application with the MPEG-4 decoder may be incorporated for example into software instructions, firmware, or a special purpose hardware circuit. The MPEG-4 decoder and external application may decode audiovisual information that is stored in a local memory, streamed, or downloaded from a network. According to embodiments of the present invention, the author of the MPEG-4 scene may specify features such as the location and size of the application window in the scene, the time when the application is running, whether the external application runs in the background, ext.
In
As shown in
In an embodiment, MPEG-4 scene 150 is context dependent, and different information is shown depending upon whether the user selects the Search, View or Reserve option. In
In addition, system 200 is capable of running an external application, such as a Web browser. System 200 may be a general purpose computer or a special purpose device, such as, for example, a set-top box or an information appliance.
As shown in
Display device 230 may be any type of display device that may display information. In
Memory array 250 may contain MPEG-4 decoder instructions 221, integration instructions 222, scene description information 225 in the form of an MPEG-4 bit-stream, and external application instructions 229. An MPEG-4 stream is information that may be read be an MPEG-4 decoder. The MPEG-4 stream may be information stored or a memory device or may be information that is transferred over a network such as the Internet. An MPEG-4 stream may include an MPEG-4 scene description streams (e.g., a coded version of a scene description that was written in a MPEG-4 scene description language) as well as one or more MPEG-4 media streams (e.g., a coded version of a media object such as MPEG-2 audio, MPEG-2 video, MPEG-4 audio, MPEG-4 video, audio animation, visual animation, ext.). An MPEG-4 media stream may be decoded by an appropriate specific application decoder, such as a video decoder or audio decoder. The decoder instructions 221 and integration instructions 222 may be adapted to be executed by a processor. The phrase “instructions adapted to be executed by a processor” is meant to encompass source code, assembler, and any other expression of instructions that may require preprocessing in order to be executed by processor.
Scene description information 225 may be binary audiovisual information that has been coded by an MPEG-4 coder. Scene description information 225 may describe, for example, MPEG-4 scene 250. MPEG-4 decoder instructions 221 are a software embodiment of an MPEG-4 decoder as discussed above. MPEG-4 decoder instructions 221 may be executed by processor unit 210 to decode scene description information 225 and generate MPEG-4 scene 250.
External application instructions 229 may be the instructions for an external application such as a Web browser, Portable Document Format reader, spreadsheet software, ext. In this embodiment, external application instructions 229 act as an external application decoder and decode information that is in a format recognized by the external application. MPEG-4 decoder instructions may contain integration instructions 222 for integrating the MPEG-4 decoder with an external application such as external application instructions 229. According to this embodiment, integration instructions 222 may be invoked when the MPEG-4 decoder instructions 221 encounter a reference to an external application in the scene description information 225 that calls for the integration of an external application into the MPEG-4 scene. In this embodiment, the integration instructions 222 may use scene description information 225 to configure and start external application instructions 229 as discussed below. The external application instructions 229 may then render the sub-scene in application window 255, may receive user input from input device 240, and may access network 260.
According to another embodiment of the present invention, the scene description information 225 need not be stored in memory 220, but rather may be a bit-stream of data that is accessed from a network such as network 260. In a further embodiment, the bit-stream of the scene description information 225 may be stored in a memory in device 200 as it is streamed. In a further embodiment, the external application instructions 221 need not be stored on memory array 250 but rather may be accessed via network 260. In a still further embodiment, MPEG-4 decoder instructions 221 are not stored on memory array 220 but are accessed via network 260.
In another embodiment, system 200 contains MPEG-4 decoder logic instead of MPEG-4 decoder instructions 221. In this embodiment, MPEG-4 decoder logic may be firmware or a circuit that performs MPEG-4 decoding. MPEG-4 decoder logic may be part of a decoder board.
In another embodiment, the reference to an external application in the scene description information that provides for the integration of an external application into the MPEG-4 scene is a MPEG-4 BIFS node. BIFS is an MPEG language for scene description. In an embodiment, the position of the external application, its dimension, whether the application is active or not, ext., may be specified through BIFS scene authoring. A scene description written in VRML-like text can be used by a MPEG-4 coder to develop a binary coded version (i.e., BIFS) of the audiovisual information that makes up a scene. BIFS nodes are the scene graph elements that may be used to describe audio-visual primitives and their attributes, along with the structure of the scene graph itself. In an embodiment, the BIFS node contains information that may be used to configure and start the external application. In a further embodiment, the node may be coded and included in a scene description bitstream.
In an embodiment, the node that provides for the integration of an external application into the MPEG-4 scene is the “ApplicationWindow” node. When the MPEG-4 decoder encounters an ApplicationWindow node, it may use the information contained in the node to integrate an application into the MPEG-4 scene. That is, the decoder may start the application and may create an application window when it encounters the ApplicationWindow node. The windowed region may be controlled and rendered by the external application, thus allowing natural user interaction with the application. The ApplicationWindow node may allow an external application such as a Web browser to exist within the MPEG-4 scene graph. In an embodiment, the ApplicationWindow node is an SF2Dnode, according to an MPEG-4 standard. In an embodiment, the node interface of the ApplicationWindow node may be defined as follows:
type
field name
default value
ApplicationWindow {
exposedField
SFBooI
isActive
FALSE
exposed Field
SFTime
startTime
0
exposedField
SFTime
stopTime
0
exposed Field
SFString
description
exposedField
MFString
parameter
exposedField
MFString
url
0
exposedField
SFVec2f
size
0, 0
}
In an embodiment, the MPEG-4 encoder may place designations before each field in the ApplicationWindow node which may be used by the decoder to determine what the information contained in the field is to be used for. In this embodiment, the fields can be written by the scene's author in any order.
The “url” field contains Universal Resource Locator information for the external application to be opened. The url field may carry the location where software for the external application resides. The location may be within the decoder system (e.g., within a general purpose computer) or may be accessible over a network such as the Internet. The url field may be a string. When the ApplicationWindow node gets coded, the url field is coded into binary information. When the ApplicationWindow node is decoded, the decoder may use the url to find the location of the external application. In an embodiment, the default value for the url field is null. In this embodiment, if a url is not specified, an external application will not be integrated.
The “size” field provides the dimension (width and height) of the application window, for example in units of pixels. As shown above, the default value for the size field is 0, 0. In an embodiment, if a size is not specified, an application window will not be displayed. In an embodiment, the location of the application window is not specified within the ApplicationWindow node, but rather (as shown below) is specified in the parent node. In an embodiment, the location may be provided relative to a reference location of the application window.
The “parameter” field carries parameters to be interpreted by the application decoder when the application window is instantiated. This field may contain any required parameters for starting the application. The parameters may be passed to the external application. As shown above, the default value for the parameter field is null. In an embodiment, if parameters are not specified, no parameters will be passed to the external application.
The “description” field allows a prompt to be displayed as an alternative to the “url” in the “url” field. In this embodiment, if a string is not specified, a prompt will not be displayed. Thus, the scene's author may select whether or not to display a prompt. As shown above, the default value may be a blank string.
The “startTime” field indicates when the external application is to be started. At the time specified in this field, the application is given control of the rendering window defined by the size field. The “stopTime” field indicates that the application is finished and should be shut down. At the time specified by the stopTime field, the rendering window defined by the size field is returned to the MPEG-4 player. In an embodiment, the default value for startTime and stopTime is 0. In this embodiment, if a startTime is not specified, the external application's starting time is not delayed. In a further embodiment, the times may be specified relative to an MPEG-4 decoder clock.
The “isActive” field signals the application is to relinquish its rendering window to the MPEG-4 player, but to continue to run. That is, when the isActive filed is specified as “FALSE,” the application runs in the background. The value of the isActive field for a node may be changed during the execution of the external application.
In another embodiment, the node may use different designations, have different fields, or have different default values. For example, in another embodiment, the ApplicationWindow node may have a subset of the fields described above.
An example of the text used to generate BIFS commands that may be used by a scene author to integrate an application into an MPEG-4 scene according to an embodiment of the present invention is provided below. The code fragment below may be used to generate the MPEG-4 scene shown in
Transform2D {
translation −50 150
children [
def APPWIN_1 ApplicationWindow {
url “www.att.com”
startTime
0
stop Time
0
isActive
TRUE
size
300, 300
}
]
}
In the code fragment shown above, the url of the application is specified as the first page of the AT&T site on the World Wide Web. When it encounters this node, an MPEG-4 decoder will start a Web browser that is directed to the AT&T site. Thus, in
In the code fragment above, the location of the application window is specified in the translation field of the Transform2d node (−50 150). This location is used to position the application window as shown in
In the example above, the external application controls the portion of the display that is occupied by the application window. In this embodiment, the application window will overlay and occlude any objects that impinge upon the application window. Thus, as shown in
According to an embodiment, objects such as the text START and STOP of
In an embodiment, integrating the external application into the scene may include creating an application window within the scene. In addition, integrating the external application into the scene may include configuring the system to provide that the external application receives any input within the application window and controls any output through the application window. In addition, rendering the integrated scene may include preventing native MPEG-4 objects from displaying information within the application window.
In an embodiment, the reference to an external application may include a coded representation of a Universal Resource Locator relating to a location where software (e.g., a decoder) for the external application resides. In a still further embodiment, the reference to an external application includes information identifying a location for an application window within the scene. In another embodiment, the reference to an external application includes information identifying dimensions of the application window. In another embodiment, the reference to an external application includes a start time and a stop time, and the method of rendering a scene further comprises starting the external application at the start time and stopping the external application at the stop time. In a still further embodiment, the reference to an external application includes description information, and integrating the external application into the scene includes displaying a prompt in the scene based on the description information. In another embodiment, the reference to an external application includes application parameters, and starting the external application includes passing the application parameters to the external application.
In another embodiment, a scene is composed and rendered before the reference to an external application is obtained. In this embodiment, second information including a reference to an external application may be obtained after composing and rendering the scene, and the second information may be decoded using a BIFS scene decoder and an external application decoder. The scene may then be recomposed by integrating a sub-scene specified by the decoded second information into the scene, and the re-composed scene may be rendered.
Embodiments of the invention may include a subset of the above described features or may include additional features, and the order of the steps described may be varied.
MPEG-4 is an object based standard for multimedia coding that codes individual video objects and audio objects in the scene and delivers in addition a coded description of the scene. In the present invention, the coded scene description may include a reference to an external application. At the decoding end, the scene description and individual media objects are decoded, synchronized and composed for presentation. In the present invention, an external application decoder may decode information into one or more external application objects.
Several embodiments of the present invention are specifically illustrated and/or described herein. However, it will be appreciated that modifications and variations of the present invention are covered by the above teachings and within the purview of the appended claims without departing from the spirit and intended scope of the invention. For example, while
Schmidt, Robert, Puri, Atul, Cheok, Lai-tee
Patent | Priority | Assignee | Title |
10334278, | Jul 08 1999 | AT&T Intellectual Property II, L.P. | Methods and apparatus for integrating external applications into an MPEG-4 scene |
9473770, | Jul 08 1999 | AT&T Intellectual Property II, L.P. | Methods and apparatus for integrating external applications into an MPEG-4 scene |
Patent | Priority | Assignee | Title |
4394680, | Apr 01 1980 | Matsushita Electric Industrial Co., Ltd. | Color television signal processing apparatus |
5117283, | Jun 25 1990 | Eastman Kodak Company | Photobooth compositing apparatus |
5194941, | Oct 06 1989 | Thomson Video Equipment | Self-adapting method and device for the inlaying of color video images |
5659490, | Jun 23 1994 | Dainippon Screen Mfg. Co., Ltd. | Method and apparatus for generating color image mask |
5745360, | Aug 14 1995 | International Business Machines Corp.; IBM Corporation | Dynamic hypertext link converter system and process |
5748789, | Oct 31 1996 | Microsoft Technology Licensing, LLC | Transparent block skipping in object-based video coding systems |
5786855, | Oct 26 1995 | THE CHASE MANHATTAN BANK, AS COLLATERAL AGENT | Method and apparatus for coding segmented regions in video sequences for content-based scalability |
5963257, | Jul 14 1995 | Sharp Kabushiki Kaisha | Video coding device and video decoding device |
5974172, | Feb 14 1997 | AT&T Corp | Method and apparatus for coding segmented regions which may be transparent in video sequences for content-based scalability |
5974184, | Mar 07 1997 | Google Technology Holdings LLC | Intra-macroblock DC and AC coefficient prediction for interlaced digital video |
5978510, | Mar 20 1997 | PANTECH INC | Method and apparatus for predictively coding contour of video signal |
5999219, | Dec 20 1994 | Matsushita Electric Industrial Co., Ltd. | Object-based digital image predictive coding transfer method and apparatus, and decoding apparatus |
5999944, | Feb 27 1998 | Oracle International Corporation | Method and apparatus for implementing dynamic VRML |
6044397, | Apr 07 1998 | Columbia University | System and method for generation and interfacing of bitstreams representing MPEG-coded audiovisual objects |
6092107, | Apr 07 1998 | COLUMBIA UNIVERSITY IN THE CITY OF NEW YORK, TRUSTEES OF, THE | System and method for interfacing MPEG-coded audiovisual objects permitting adaptive control |
6122014, | Sep 17 1998 | Google Technology Holdings LLC | Modified chroma keyed technique for simple shape coding for digital video |
6141442, | Feb 14 1997 | AT&T Corp | Method and apparatus for coding segmented regions which may be transparent in video sequences for content-based scalability |
6185602, | Jun 29 1998 | SNAPTRACK, INC | Multi-user interaction of multimedia communication |
6195088, | Dec 04 1998 | France Telecom | Method and system for controlling multimedia streams using dynamic prototypes |
6208693, | Feb 14 1997 | AT&T Corp | Chroma-key for efficient and low complexity shape representation of coded arbitrary video objects |
6233356, | Jul 07 1998 | AT&T Properties, LLC; AT&T INTELLECTUAL PROPERTY II, L P | Generalized scalability for video coder based on video objects |
6246680, | Jun 30 1997 | Oracle America, Inc | Highly integrated multi-layer switch element architecture |
6295380, | Feb 27 1997 | MATSUSHITA ELECTRIC INDUSTRIAL CO , LTD | Object data processing apparatus, object data recording apparatus, data storage media, data structure for transmission |
6317131, | Jul 15 1997 | AT&T Corp | Interaction modalities for multimedia delivery and presentation using nodes |
6459732, | Feb 14 1997 | AT&T Corp. | Chroma-key for efficient and low complexity shape representation of coded arbitrary video objects |
6463444, | Aug 14 1997 | MICRO FOCUS LLC | Video cataloger system with extensibility |
6496233, | Jan 06 1999 | HANGER SOLUTIONS, LLC | Command and control architecture for a video decoder and an audio decoder |
6556207, | Jul 10 1998 | France Telecom and Telediffusion de Franc | Graphic scene animation data signal with quantization object, corresponding method and device |
6611262, | Sep 22 1997 | Sony Corporation | Generation of a bit stream containing binary image/audio data that is multiplexed with a code defining an object in ascii format |
6631403, | May 11 1998 | Sun Microsystems, Inc | Architecture and application programming interfaces for Java-enabled MPEG-4 (MPEG-J) systems |
6654931, | Jan 27 1998 | AT&T Corp. | Systems and methods for playing, browsing and interacting with MPEG-4 coded audio-visual objects |
6665318, | May 15 1998 | Hitachi, Ltd. | Stream decoder |
6697869, | Aug 24 1998 | Koninklijke Philips Electronics N V | Emulation of streaming over the internet in a broadcast application |
6766355, | Jun 29 1998 | SNAPTRACK, INC | Method and apparatus for implementing multi-user grouping nodes in a multimedia player |
6895555, | Dec 03 1998 | Canon Kabushiki Kaisha | Image processing apparatus, method, and storage medium for controlling display of copyright-protected information |
6988241, | Oct 16 2000 | GLOBALFOUNDRIES U S INC | Client side, web-based spreadsheet |
7461330, | Jul 08 1999 | AT&T Intellectual Property II L.P. | Methods and apparatus for integrating external applications into an MPEG-4 scene |
20030037156, | |||
20030048844, | |||
20040054965, | |||
EP753970, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Sep 14 2000 | PURI, ATUL | AT&T Corp | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 031234 | /0149 | |
Sep 14 2000 | SCHMIDT, ROBERT LEWIS | AT&T Corp | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 031234 | /0149 | |
Nov 15 2000 | CHEOK, LAI-TEE | AT&T Corp | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 031234 | /0149 | |
Dec 01 2008 | AT&T Intellectual Property II, L.P. | (assignment on the face of the patent) | / |
Date | Maintenance Fee Events |
Jul 11 2014 | ASPN: Payor Number Assigned. |
Mar 27 2017 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Jun 14 2021 | REM: Maintenance Fee Reminder Mailed. |
Nov 29 2021 | EXP: Patent Expired for Failure to Pay Maintenance Fees. |
Date | Maintenance Schedule |
Oct 22 2016 | 4 years fee payment window open |
Apr 22 2017 | 6 months grace period start (w surcharge) |
Oct 22 2017 | patent expiry (for year 4) |
Oct 22 2019 | 2 years to revive unintentionally abandoned end. (for year 4) |
Oct 22 2020 | 8 years fee payment window open |
Apr 22 2021 | 6 months grace period start (w surcharge) |
Oct 22 2021 | patent expiry (for year 8) |
Oct 22 2023 | 2 years to revive unintentionally abandoned end. (for year 8) |
Oct 22 2024 | 12 years fee payment window open |
Apr 22 2025 | 6 months grace period start (w surcharge) |
Oct 22 2025 | patent expiry (for year 12) |
Oct 22 2027 | 2 years to revive unintentionally abandoned end. (for year 12) |