IP Library Patent Application 13451140
Patent Application
App. No. 13/451,140

System and Method Of Video Decoder Resource Sharing

Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US None
App. No.
13/451,140
Abstract

A shared decoder resource is assigned to an input buffer providing an input data stream to generate a decoded output data stream. An event is detected that switches a preferred allocation of the video decoding resource relative to the application. The application using the video decoder is instructed to release the video decoder resource. The video decoding resource is then re-allocated to another input buffer to provide an input data stream of an other application to the video decoder to generate the output data stream. The input buffer of the input data streams associated with the application prior to receiving the event is maintained in a suspended state while the respective application is still active but is not associated with the video decoder.

Claims (37)

1 . A method of video decoding resource sharing, the method comprising:

associating a video decoder with a first input buffer for a first encoded input data stream from a first application, the video decoder processing the first encoded input data stream to generate a decoded output data stream for display;

detecting an event associated with a second application that identifies a change in the video decoder allocation between the first encoded input data stream from the first application to a second encoded input data stream from the second application is required;

instructing the first application to release the video decoder; and associating the video decoder with a second input buffer for the second encoded input data stream from the second application to provide the decoded output data stream for display, when the first application releases the video decoder, wherein the first input buffer is maintained in a suspended state while the second encoded input data stream is processed by the video decoder.

2 . The method of claim 1 , wherein the second encoded input data stream of the second application is displayed in a foreground position in a user interface on the display, the first application is active in a background position but not visible in the user interface on the display.

3 . The method of claim 1 , wherein the event is derived from a user action in the user interface to initiate or resume playback of the second encoded input data stream in the second application.

4 . The method of claim 3 , wherein the user action is derived by moving a display window of the second application to a foreground position on a display.

5 . The method of claim 1 , further comprising:

detecting a second event that identifies that returning the video decoder to the first encoded input data stream maintained in the first input buffer is required;

instructing the second application to release the video decoder; and

associating the video decoder with the first input buffer to provide the first encoded input data stream to the video decoder to resume processing of the first encoded input data stream by the video decoder, wherein the second input buffer is maintained in a suspended state while the first encoded input data stream is processed by the video decoder.

6 . The method of claim 5 wherein the first input buffer is parsed to determine the first occurrence of an intra-frame to resume processing of the first input data stream by the video decoder.

7 . The method of claim 5 wherein the first input buffer is parsed to determine the first occurrence of an intra-frame and then determining intermediate frames associated with a time index within the first encoded input data stream, the time index identifying where the processing of the first input buffer was previously suspended.

8 . The method of claim 5 wherein the second event is derived from a user action in the user interface to resume playback of the first encoded input data stream in the first application.

9 . The method of claim 8 wherein the user action is derived by moving a display window of the first application to a foreground position on a display.

10 . The method of claim 1 wherein the decoded output data stream from the video decoder is provided to an output data buffer for display, wherein the output data buffer is released from memory when the event is detected and re-initialized when the video decoder is assigned to the second encoded input data stream.

11 . The method of claim 1 wherein suspending first input buffer is preserved in memory while in the suspended state.

12 . A mobile device comprising:

a video decoder for decoding an encoded input data stream to provide a decoded output data stream for display on the mobile device;

a processor for executing applications associated with a respective encoded input data stream for display on the mobile device;

a memory for storing input buffers for providing data from an encoded input data stream to the video decoder when required by a respective associated application; and

a system controller for:

receiving an event identifying a change in the video decoder allocation between applications is required;

instructing the application assigned to the video decoder prior to receiving the event to release the video decoder, wherein the associated input buffer is placed in a suspended state until the video decoder is re-associated with the respective application; and

associating an input buffer associated with the application of the event to the video decoder to decode the respective input data stream to the decoded output data stream.

13 . The mobile device of claim 12 , wherein the event is determined by one of the first or second applications being in the foreground position in a user interface on the display, while the remaining application is active in a background position but not visible in the user interface on the display.

14 . The mobile device of claim 12 , wherein the event is derived from a user action in the user interface to initiate or resume playback of the encoded input data stream of the respective application.

15 . The mobile device of claim 12 further comprising a parser associated with each of the input buffers, wherein the input buffers are parsed by the respective parser to determine the first occurrence of an intra-frame to resume processing of the respective input data stream by the video decoder when the video decoder is associated with the respective input buffer by the system controller.

16 . The mobile device of claim 15 wherein the input buffer is parsed to determine the first occurrence of an intra-frame and then determining intermediate frames associated with a time index within the respective encoded input data stream, the time index identifying where the processing of the input buffer that was previously suspended.

17 . The mobile device of claim 12 wherein the decoded output data stream from the video decoder is provided to an output data buffer, wherein the output data buffer is released from memory when the event is detected and re-initialized when the video decoder is assigned to a subsequent encoded input data stream.

18 . The mobile device of claim 12 further comprising a touch-sensitive display for displaying the applications on the user interface.

19 . The mobile device of claim 12 wherein the event is provided from an input on the touch-sensitive display defined by movement of one of the applications to a foreground position on the display having an associated encoded input data stream.

20 . A computer readable memory containing instruction which when executed by a processor perform a method of video decoding resource sharing, the method comprising:

associating a video decoder with a first input buffer for a first encoded input data stream from a first application, the video decoder processing the first encoded input data stream to generate a decoded output data stream for display;

detecting an event associated with a second application that identifies a change in the video decoder allocation between the first encoded input data stream from the first application to a second encoded input data stream from the second application is required;

instructing the first application to release the video decoder; and

associating the video decoder with a second input buffer for the second encoded input data stream from the second application to provide the decoded output data stream for display, when the first application releases the video decoder wherein the first input buffer is maintained in a suspended state while the second encoded input data stream is processed by the video decoder.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 4, 2014
From: 8758271 CANADA INC.
To: 2236008 ONTARIO INC.
Reel/Frame 032607/0674 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 4, 2014
From: QNX SOFTWARE SYSTEMS LIMITED
To: 8758271 CANADA INC.
Reel/Frame 032607/0943 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 7, 2012
From: BOAK, ADRIAN
To: QNX SOFTWARE SYSTEMS LIMITED
Reel/Frame 028164/0423 →