IP Library Granted Patent US 9,043,853
Granted Patent B2
US 9,043,853 · App. 14/076,512 · Granted May 26, 2015

Systems and methods for prioritization of data for intelligent discard in a communication network

Inventors: Kenneth L. Stanwood (Vista, CA); David Gell (San Diego, CA)
Assignee: Wi-LAN Labs, Inc.
H04N21/23605H04L65/00H04N21/234327H04N21/2402H04L65/4069H04L65/80H04N21/2383H04N21/64792H04N19/107H04N19/577H04L41/5022H04L47/32H04L47/2416
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,043,853
App. No.
14/076,512
Granted
May 26, 2015
Kind
B2
Abstract

Systems and methods for optimizing system performance of capacity and spectrum constrained, multiple-access communication systems by selectively discarding packets are provided. The systems and methods provided herein can drive changes in the communication system using control responses. One such control responses includes the optimal discard (also referred to herein as “intelligent discard”) of network packets under capacity constrained conditions. Some embodiments inspect a video stream to determine priorities for various elements of the video stream. The elements may be discarding using the priorities. In various embodiments, the elements include frames, slices, macroblocks, and data partitions.

Claims (75)

1. A base station for managing video transmission responsive to network conditions, the base station comprising:

a determination module configured to

receive a video stream, the video stream including frames, at least some of the frames including macroblocks, each of the macroblocks having a macroblock type, and

inspect the received video stream to determine a macroblock type for each of the macroblocks and a priority value for each of the macroblocks, the priority value of each of the macroblocks based at least in part on the macroblock type;

a selection module configured to discard one or more of the macroblocks based at least in part on the priority values of the macroblocks; and

a modem configured to transmit at least one of the macroblocks that are not discarded to one or more subscriber stations.

2. The base station of claim 1 , wherein the macroblock types include an intra-coded (I) type macroblock, a predictive-coded (P) type macroblock, and a bidirectionally predictive-coded (B) type macroblock, and wherein the selection module is further configured to preferentially discard macroblocks of type B over macroblocks of type P and to preferentially discard macroblocks of type P over macroblocks of type I.

3. A base station for managing video transmission responsive to network conditions, the base station comprising:

a determination module configured to

receive a video stream, the video stream including frames, at least some of the frames including macroblocks, each of the macroblocks having a macroblock type, and

inspect the received video stream to determine a macroblock type for each of the macroblocks and a priority value for each of the frames, the priority value of each of the frames based at least in part on the macroblock type of each of the macroblocks in the frame;

a selection module configured to discard one or more of the frames based at least in part on the priority values of the frames; and

a modem configured to transmit at least one of the frames that are not discarded to one or more subscriber stations.

4. The base station of claim 3 , wherein the macroblock types include an intra-coded (I) type macroblock, a predictive-coded (P) type macroblock, and a bidirectionally predictive-coded (B) type macroblock.

5. The base station of claim 4 , wherein the priority value of each of the frames is based at least in part on the percentage of macroblocks in the frame that are an intra-coded (I) type macroblock.

6. The base station of claim 4 , wherein the priority value of each of the frames is based at least in part on the percentage of macroblocks in the frame that are a predictive-coded (P) type macroblock.

7. The base station of claim 4 , wherein the priority value of each of the frames is based at least in part on the percentage of macroblocks in the frame that are a bidirectionally predictive-coded (B) type macroblock.

8. The base station of claim 4 , wherein the priority value of each of the frames is based at least in part on the percentage of macroblocks in the frame that are an intra-coded (I) type macroblock, the percentage of macroblocks in the frame that a predictive-coded (P) type macroblock, and the percentage of macroblocks in the frame that a bidirectionally predictive-coded (B) type macroblock, wherein frames with higher percentages of type B macroblocks are preferentially discarded over frames with higher percentages of type P macroblocks, and frames with higher percentages of type P macroblocks are preferentially discarded over frames with higher percentages of type I macroblocks.

9. The base station of claim 3 , wherein the priority values for the frames are further based at least in part on sizes of the frames.

10. The base station of claim 3 , wherein the priority value for each of the frames is further based at least in part on whether an adjacent frame has been discarded.

11. The base station of claim 3 , wherein some of the frames depend on one or more others of the frames for decoding, and the priority value of each respective frame is further based at least in part on the number of other frames that are dependent upon the respective frame.

12. The base station of claim 3 , wherein the priority value of each respective frame is further based at least in part on the number of other frames that are indirectly dependent upon the respective frame.

13. The base station of claim 3 , wherein the frames comprise a group of pictures (GOP).

14. The base station of claim 13 , wherein some of the frames depend on one or more others of the frames for decoding, and the priority value of each respective frame is further based at least in part on the number of other frames that are dependent upon the respective frame.

15. A base station for managing video transmission responsive to network conditions, the base station comprising:

a determination module configured to

receive a video stream, the video stream including frames, at least some of the frames including slices, at least some of the slices including macroblocks, each of the macroblocks having a macroblock type, and

inspect the received video stream to determine a macroblock type for each of the macroblocks and a priority value for each of the slices, the priority value of each of the slices based at least in part on the macroblock type of each of the macroblocks in the slice;

a selection module configured to discard one or more of the slices based at least in part on the priority values of the slices; and

a modem configured to transmit at least one of the slices that are not discarded to one or more subscriber stations.

16. The base station of claim 15 , wherein the discarded one or more of the slices comprise at least all of the slices of one of the frames.

17. The base station of claim 15 , wherein the macroblock types include an intra-coded (I) type macroblock, a predictive-coded (P) type macroblock, and a bidirectionally predictive-coded (B) type macroblock.

18. The base station of claim 17 , wherein the priority value of each of the slices is based at least in part on the percentage of macroblocks in the slice that are an intra-coded (I) type macroblock.

19. The base station of claim 17 , wherein the priority value of each of the slices is based at least in part on the percentage of macroblocks in the slice that are a predictive-coded (P) type macroblock.

20. The base station of claim 17 , wherein the priority value of each of the slices is based at least in part on the percentage of macroblocks in the slice that are a bidirectionally predictive-coded (B) type macroblock.

21. The base station of claim 17 , wherein the priority value of each of the slices is based at least in part on the percentage of macroblocks in the slice that are an intra-coded (I) type macroblock, the percentage of macroblocks in the slice that a predictive-coded (P) type macroblock, and the percentage of macroblocks in the slice that a bidirectionally predictive-coded (B) type macroblock, wherein frames with higher percentages of type B macroblocks are preferentially discarded over frames with higher percentages of type P macroblocks, and frames with higher percentages of type P macroblocks are preferentially discarded over frames with higher percentages of type I macroblocks.

22. The base station of claim 15 , wherein the priority value for each slice is further based at least in part on size of the slice.

23. The base station of claim 15 , wherein slices that are redundant are preferentially discarded over slices that are not redundant.

24. The base station of claim 15 , wherein some of the slices are switching slices and the priority value for a slice that is a switching slice is dynamic.

25. A method for managing video transmission from a base station responsive to network conditions, the method comprising:

receiving a video stream, the video stream including frames, at least some of the frames including macroblocks, each of the macroblocks having a macroblock type;

inspecting the received video stream to determine a macroblock type for each of the macroblocks and a priority value for each of the macroblocks, the priority value of each of the macroblocks based at least in part on the macroblock type;

discarding one or more of the macroblocks based at least in part on the priority values of the macroblocks; and

transmitting at least one of the macroblocks that are not discarded to one or more subscriber stations.

26. The method of claim 25 , wherein the macroblock types include an intra-coded (I) type macroblock, a predictive-coded (P) type macroblock, and a bidirectionally predictive-coded (B) type macroblock, and macroblocks of type B are preferentially discarded over macroblocks of type P and macroblocks of type P are preferentially discarded over macroblocks of type I.

27. A method for managing video transmission from a base station responsive to network conditions, the method comprising:

receiving a video stream, the video stream including frames, at least some of the frames including macroblocks, each of the macroblocks having a macroblock type;

inspecting the received video stream to determine a macroblock type for each of the macroblocks and a priority value for each of the frames, the priority value of each of the frames based at least in part on the macroblock type of each of the macroblocks in the frame;

discarding one or more of the frames based at least in part on the priority values of the frames; and

transmitting at least one of the frames that are not discarded to one or more subscriber stations.

28. The method of claim 27 , wherein the macroblock types include an intra-coded (I) type macroblock, a predictive-coded (P) type macroblock, and a bidirectionally predictive-coded (B) type macroblock.

29. The method of claim 28 , wherein the priority value of each of the frames is based at least in part on the percentage of macroblocks in the frame that are an intra-coded (I) type macroblock.

30. The method of claim 28 , wherein the priority value of each of the frames is based at least in part on the percentage of macroblocks in the frame that are a predictive-coded (P) type macroblock.

31. The method of claim 28 , wherein the priority value of each of the frames is based at least in part on the percentage of macroblocks in the frame that are a bidirectionally predictive-coded (B) type macroblock.

32. The method of claim 28 , wherein the priority value of each of the frames is based at least in part on the percentage of macroblocks in the frame that are an intra-coded (I) type macroblock, the percentage of macroblocks in the frame that a predictive-coded (P) type macroblock, and the percentage of macroblocks in the frame that a bidirectionally predictive-coded (B) type macroblock, wherein frames with higher percentages of type B macroblocks are preferentially discarded over frames with higher percentages of type P macroblocks, and frames with higher percentages of type P macroblocks are preferentially discarded over frames with higher percentages of type I macroblocks.

33. The method of claim 27 , wherein the priority values for the frames are further based at least in part on sizes of the frames.

34. The method of claim 27 , wherein the priority value for each of the frames is further based at least in part on whether an adjacent frame has been discarded.

35. The method of claim 27 , wherein some of the frames depend on one or more others of the frames for decoding, and the priority value of each respective frame is further based at least in part on the number of other frames that are dependent upon the respective frame.

36. The method of claim 27 , wherein the priority value of each respective frame is further based at least in part on the number of other frames that are indirectly dependent upon the respective frame.

37. The method of claim 27 , wherein the frames comprise a group of pictures (GOP).

38. The method of claim 37 , wherein some of the frames depend on one or more others of the frames for decoding, and the priority value of each respective frame is further based at least in part on the number of other frames that are dependent upon the respective frame.

39. A method for managing video transmission from a base station responsive to network conditions, the method comprising:

receiving a video stream, the video stream including frames, at least some of the frames including slices, at least some of the slices including macroblocks, each of the macroblocks having a macroblock type;

inspecting the received video stream to determine a macroblock type for each of the macroblocks and a priority value for each of the slices, the priority value of each of the slices based at least in part on the macroblock type of each of the macroblocks in the slice;

discarding one or more of the slices based at least in part on the priority values of the slices; and

transmitting at least one of the slices that are not discarded to one or more subscriber stations.

40. The method of claim 39 , wherein the discarded one or more of the slices comprise at least all of the slices of one of the frames.

41. The method of claim 39 , wherein the macroblock types include an intra-coded (I) type macroblock, a predictive-coded (P) type macroblock, and a bidirectionally predictive-coded (B) type macroblock.

42. The method of claim 41 , wherein the priority value of each of the slices is based at least in part on the percentage of macroblocks in the slice that are an intra-coded (I) type macroblock.

43. The method of claim 41 , wherein the priority value of each of the slices is based at least in part on the percentage of macroblocks in the slice that are a predictive-coded (P) type macroblock.

44. The method of claim 41 , wherein the priority value of each of the slices is based at least in part on the percentage of macroblocks in the slice that are a bidirectionally predictive-coded (B) type macroblock.

45. The method of claim 41 , wherein the priority value of each of the slices is based at least in part on the percentage of macroblocks in the slice that are an intra-coded (I) type macroblock, the percentage of macroblocks in the slice that a predictive-coded (P) type macroblock, and the percentage of macroblocks in the slice that a bidirectionally predictive-coded (B) type macroblock, wherein frames with higher percentages of type B macroblocks are preferentially discarded over frames with higher percentages of type P macroblocks, and frames with higher percentages of type P macroblocks are preferentially discarded over frames with higher percentages of type I macroblocks.

46. The method of claim 39 , wherein the priority value for each slice is further based at least in part on size of the slice.

47. The method of claim 39 , wherein slices that are redundant are preferentially discarded over slices that are not redundant.

48. The method of claim 39 , wherein some of the slices are switching slices and the priority value for a slice that is a switching slice is dynamic.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 5, 2017
From: WI-LAN LABS, INC.
To: TAIWAN SEMICONDUCTOR MANUFACTURING CO., LTD.
Reel/Frame 041627/0873 →
CHANGE OF NAME Recorded Sep 12, 2014
From: CYGNUS BROADBAND, INC.
To: WI-LAN LABS, INC.
Reel/Frame 033730/0413 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 11, 2013
From: STANWOOD, KENNETH L; GELL, DAVID
To: CYGNUS BROADBAND, INC.
Reel/Frame 031576/0194 →
Continuity (7)
Continuation 13155102 · Jun 7, 2011
Continuation In Part 12813856 · Jun 11, 2010
Provisional Application 61421510 · Dec 9, 2010
Provisional Application 61186707 · Jun 12, 2009
Provisional Application 61187113 · Jun 15, 2009
Provisional Application 61187118 · Jun 15, 2009
Related Publication 20140068680A1 · Mar 6, 2014