IP Library Granted Patent US 9,135,036
Granted Patent B2
US 9,135,036 · App. 12/686,800 · Granted Sep 15, 2015

Method and system for reducing communication during video processing utilizing merge buffering

View Patent ↗
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 9,135,036
App. No.
12/686,800
Granted
Sep 15, 2015
Kind
B2
Abstract

Methods and systems for reducing communication during video processing utilizing merge buffering are disclosed and may include storing data in a merge buffer in the virtual machine layer in a wireless communication device comprising a virtual machine user layer, a native user layer, a kernel, and a video processor. The data may then be communicated to the kernel via the native user layer. The data may include function calls, and/or kernel remote procedure calls. The data may be communicated via an application programming interface. Video data may be processed in the video processor based on the communicated data. The virtual machine user layer may include a Java environment. The data may be communicated to the kernel via the native user layer when the merge buffer is full or filled to a predetermined level.

Claims (46)

1. A method for data processing, the method comprising:

in a wireless communication device comprising a virtual machine user layer, a native user layer, a kernel, and a video processor, wherein the virtual machine user layer communicates with the video processor via the native user layer, and the native user layer communicates with the video processor via the kernel:

storing data in a first merge buffer allocated in the virtual machine user layer comprising a virtual machine user application layer, the data comprising stored requests for hardware processing;

communicating the data, stored in the first merge buffer of the virtual machine user layer, to the kernel via a second merge buffer in the native user layer when said first merge buffer in said virtual machine layer is filled to a first predetermined level;

storing the data in the second merge buffer allocated in the native user layer comprising a native user application layer; and

communicating the data in the second merge buffer of the native user layer to the video processor via a kernel remote procedure call in response to the second merge buffer of the native user layer being filled to a second predetermined level.

2. The method according to claim 1 , comprising communicating said data via an application programming interface.

3. The method according to claim 1 , comprising processing video data in said video processor based on said communicated data.

4. The method according to claim 1 , comprising communicating said data from said merge buffer in said virtual machine layer to said merge buffer in said native user layer when said merge buffer in said virtual machine layer is full.

5. The method of claim 1 wherein the virtual machine user layer comprises a virtual machine user library layer, the virtual machine user library layer comprising the merge buffer.

6. The method of claim 1 , wherein the data is converted into a format used by the video processor prior to communicating the data stored in the merge buffer of the native user layer to the video processor.

7. A system for processing images, the system comprising:

one or more circuits in a wireless communication device comprising a virtual machine user layer, a native user layer, a kernel, and a video processor, wherein the virtual machine user layer communicates with the video processor via the native user layer, and the native user layer communicates with the video processor via the kernel, and said one or more circuits are operable to:

store data, from an application in said virtual machine layer comprising a virtual machine user application layer, in a first merge buffer in said virtual machine layer;

trigger transmission of contents of the first merge buffer in the virtual machine layer to the native user layer in response to said first merge buffer being filled to a first predetermined level;

store the transmitted contents in said native user layer in a second merge buffer in said native user layer comprising a native user application layer;

trigger transmission of contents of the second merge buffer in the native user layer to the kernel in response to said second merge buffer being filled to a second predetermined level; and

communicating the data in the second merge buffer of the native user layer to the video processor via a kernel remote procedure call.

8. The system according to claim 7 , wherein said one or more circuits are operable to communicate said data utilizing function calls.

9. The system according to claim 8 , wherein said function calls comprise kernel remote procedure calls.

10. The system according to claim 7 , wherein said one or more circuits are operable to communicate said data via an application programming interface.

11. The system according to claim 7 , wherein said one or more circuits are operable to process video data in said video processor based on said communicated data.

12. The system according to claim 7 , wherein said virtual machine user layer comprises a Java environment.

13. The system according to claim 7 , wherein said one or more circuits are operable to communicate said data to said kernel via said native user layer when said first merge buffer is full.

14. The system according to claim 7 , wherein said one or more circuits are operable to communicate said data from said second merge buffer to said kernel via said native user layer when said first merge buffer is filled to a predetermined level.

15. The system of claim 7 , wherein said one or more circuits are operable to: trigger transmission of contents of the second merge buffer in the native user layer to the kernel in response to said first merge buffer being filled to the first predetermined level.

16. A non-transitory machine-readable storage having stored thereon, a computer program having at least one code section for processing audio signals, the at least one code section being executable by a machine for causing the machine to perform steps comprising:

in a wireless communication device comprising a virtual machine user layer, a native user layer, a kernel, and a video processor, wherein the virtual machine user layer communicates with the video processor via the native user layer, and the native user layer communicates with the video processor via the kernel:

storing data in a first merge buffer in said virtual machine user layer comprising a virtual machine user application layer, the data comprising requests by an application executing in said virtual machine user layer, the requests for hardware processing by said video processor;

communicating said requests from said first merge buffer to said native user layer comprising a native user application layer when said first merge buffer in said virtual machine layer is filled to a first predetermined level, wherein said requests are stored in a second merge buffer in said native user layer; and

converting said requests from said second merge buffer into a format used by said video processor and communicating said converted requests to the video processor via the kernel using a user-to-kernel remote procedure call in response to the second merge buffer of the native user layer being filled to a second predetermined level.

17. The non-transitory machine readable storage according to claim 16 , wherein said at least one code section comprises code for processing video data in said video processor based on said communicated data.

18. The non-transitory machine readable storage according to claim 16 , wherein said virtual machine user layer comprises a Java environment.

19. The non-transitory machine readable storage according to claim 16 , wherein said at least one code section comprises code for communicating said data to said kernel via said native user layer when said first merge buffer is full.

20. The non-transitory machine readable storage according to claim 16 , wherein said at least one code section comprises code for communicating said data from said first merge buffer to said kernel via said native user layer when said first merge buffer is filled to a predetermined level.

21. A method for data processing, the method comprising:

in a wireless communication device comprising a virtual machine user layer, a native user layer, a kernel, and a video processor, wherein the virtual machine user layer communicates with the video processor via the native user layer, and the native user layer communicates with the video processor via the kernel:

storing data in a first merge buffer in the virtual machine user layer, the virtual machine user layer comprising a virtual machine user application layer;

communicating the data from a first merge buffer in the virtual machine layer to the native user layer, the native user layer comprising a native user application layer, wherein the virtual machine user layer communicates the data to the native user layer in response to the first merge buffer being filled to a first predetermined level; and

communicating the data from the second merge buffer in the native user layer to the kernel for being processed by the video processor and converting said data from said second merge buffer into a format used by said video processor and communicating said converted requests to the video processor via the kernel using a user-to-kernel remote procedure call, wherein the native user layer communicates the data in response to the second merge buffer being filled to a second predetermined level.

22. The method according to claim 21 , comprising communicating said data to said kernel via said native user layer when said first merge buffer is full.

23. The method of claim 21 wherein the virtual machine user layer comprises a virtual machine user library layer, the virtual machine user library layer comprising the first merge buffer.

24. The method of claim 21 , wherein the virtual machine user layer is operable to pack function arguments into the first merge buffer for virtual machine user layer functions.

25. The method of claim 21 , wherein the virtual machine user layer is operable to trigger transmission of the first merge buffer to the native user layer and subsequently to the kernel and the video processor.

26. The method of claim 21 , wherein the virtual machine user layer is operable to retrieve a return value from the video processor via the kernel and the native user layer.

27. The method of claim 26 , wherein the virtual machine user layer is operable to store virtual machine user layer parameters in first the merge buffer which are used when processing calls in the virtual machine user layer.

Assignments (7)
CORRECTIVE ASSIGNMENT TO CORRECT THE PATENT NUMBER 9,385,856 TO 9,385,756 PREVIOUSLY RECORDED AT REEL: 47349 FRAME: 001. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Mar 22, 2019
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 051144/0648 →
CORRECTIVE ASSIGNMENT TO CORRECT THE EFFECTIVE DATE PREVIOUSLY RECORDED ON REEL 047229 FRAME 0408. ASSIGNOR(S) HEREBY CONFIRMS THE THE EFFECTIVE DATE IS 09/05/2018. Recorded Oct 29, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047349/0001 →
MERGER Recorded Oct 4, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047229/0408 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 3, 2017
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: BROADCOM CORPORATION
Reel/Frame 041712/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 1, 2017
From: BROADCOM CORPORATION
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 041706/0001 →
PATENT SECURITY AGREEMENT Recorded Feb 11, 2016
From: BROADCOM CORPORATION
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037806/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 30, 2012
From: UPTON, EBEN
To: BROADCOM CORPORATION
Reel/Frame 028125/0432 →