IP Library Granted Patent US 9,491,487
Granted Patent B2
US 9,491,487 · App. 13/626,730 · Granted Nov 8, 2016

Error resilient management of picture order count in predictive coding systems

Inventors: Dazhong Zhang (Milpitas, CA); Xiaosong Zhou (Campbell, CA); Hsi-Jung Wu (San Jose, CA)
Assignee: Apple Inc.
H04N19/68H04N19/103H04N19/109H04N19/166H04N19/172H04N19/57H04N19/65H04N19/91H04N19/13H04N19/174H04N19/573H04N19/58
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,491,487
App. No.
13/626,730
Granted
Nov 8, 2016
Kind
B2
Abstract

Coding techniques for input video may include assigning picture identifiers to input frames in either long-form or short-form formats. If a network error has occurred that results in loss of previously-coded video data, a new input frame may be assigned a picture identifier that is coded in a long-form coding format. If no network error has occurred, the input frame may be assigned a picture identifier that is coded in a short-form coding format. Long-form coding may mitigate against loss of synchronization between an encoder and a decoder by picture identifiers.

Claims (91)

1. A video coding method, comprising:

coding an input frame according to predictive coding,

if a network error has occurred, coding a picture identifier in a long-form coding format,

if no network error has occurred, coding the picture identifier in a short-form coding format,

transmitting coded video data and the coded picture identifier to a channel.

2. The method of claim 1 , wherein the long-form format includes a first field representing least significant bits of the picture identifier and a second field representing most significant bits of the picture identifier.

3. The method of claim 1 , wherein the short-form format includes a first field representing least significant bits of the picture identifier.

4. The method of claim 1 , further comprising transmitting a flag indicating whether a long-form format is used.

5. The method of claim 1 , further comprising, when the network error has occurred, invalidating non-acknowledged reference frames in a local picture cache.

6. The method of claim 1 , wherein, when the network error has occurred, the coding includes performing a motion estimation search on acknowledged reference frames in a local picture cache.

7. The method of claim 1 , wherein, when no network error has occurred, the coding includes performing a motion estimation search on acknowledged reference frames and non-acknowledged reference frames in a local picture cache.

8. The method of claim 1 , wherein the long-form format is provided in a header field of a first coded slice of the input frame.

9. The method of claim 1 , wherein the long-form format is coded using a syntax as follows:

a pic_order_cnt_lsb field, representing least significant bits of the picture identifier,

a pic_order_cnt_msb_present_flag field, representing whether a pic_order_cnt_msb field is present, and

a pic_order_cnt_msb field, representing most significant bits of the picture identifier.

10. A method of decoding picture identifiers in a coded video session, comprising:

decoding the picture identifiers as a data stream according to:

pic_order_cnt_lsb

If( pic_order_cnt_msb_signaling_enabled_flag) {

pic_order_cnt_msb_present_flag

if( pic_order_cnt_msb_present_flag )

pic_order_cnt_msb

wherein pic_order_cnt_lsb, pic_order_cnt_msb_present_flag and pic_order_cnt_msb represent fields in the data stream, in which

the pic_order_cnt_lsb field represents least significant bits of the picture identifier,

the pic_order_cnt_msb_present_flag field represents whether a pic_order_cnt_msb field is present, and

a pic_order_cnt_msb field, representing most significant bits of the picture identifier; and

wherein pic_order_cnt_msb_signaling_enabled_flag represents a state variable developed in the session indicating whether the pic_order_cnt_msb_present_flag field has been enabled for the coded picture identifier.

11. A method of decoding picture identifiers in a coded video session, comprising:

decoding the picture identifiers as a data stream according to:

pic_order_cnt_lsb

if( num_explicit_pic_order_cnt_msb_cycle_bits> 0 ) {

explicit_pic_order_cnt_msb_cycle_present_flag

if( explicit_pic_order_cnt_msb_cycle_present_flag )

explicit_pic_order_cnt_msb_cycle

}

 wherein pic_order_cnt_lsb, explicit_pic_order_cnt_msb_cycle_present_flag and

explicit_pic_order_cnt_msb_cycle represent fields in the data stream, in which

the pic_order_cnt_lsb field represents least significant bits of the picture identifier,

the explicit_pic_order_cnt_msb_cycle_present_flag field represents whether a pic_order_cnt_msb field is present, and

a explicit_pic_order_cnt_msb_cycle field, representing most significant bits of the picture identifier; and

wherein num_explicit_pic_order_cnt_msb_cycle_bits represents a state variable transmitted earlier in the session indicating a number of bits to be used for the explicit_pic_order_cnt_msb_cycle field.

12. A video coding method, comprising:

coding an input frame according to predictive coding,

if a network error has occurred, estimating a number of frames lost by the network error,

if the number of lost frames exceeds a predetermined threshold, coding a picture identifier in a long-form coding format,

if the number of lost frames does not exceed the threshold, coding the picture identifier in a short-form coding format,

transmitting coded video data and the coded picture identifier to a channel.

13. The method of claim 12 , wherein the long-form format includes a first field representing least significant bits of the picture identifier and a second field representing most significant bits of the picture identifier.

14. The method of claim 12 , wherein the short-form format includes a first field representing least significant bits of the picture identifier.

15. The method of claim 12 , further comprising transmitting a flag indicating whether a long-form format is used.

16. The method of claim 12 , further comprising, when the network error has occurred, invalidating non-acknowledged reference frames in a local picture cache.

17. The method of claim 12 , wherein, when the network error has occurred, the coding includes performing a motion estimation search on acknowledged reference frames in a local picture cache.

18. The method of claim 12 , wherein, when no network error has occurred, the coding includes performing a motion estimation search on acknowledged reference frames and non-acknowledged reference frames in a local picture cache.

19. The method of claim 12 , wherein the long-form format is provided in a header field of a first coded slice of the input frame.

20. The method of claim 12 , wherein the long-form format is coded using a syntax as follows:

a pic_order_cnt_lsb field, representing least significant bits of the picture identifier,

a pic_order_cnt_msb_present_flag field, representing whether a pic_order_cnt_msb field is present, and

a pic_order_cnt_msb field, representing most significant bits of the picture identifier.

21. A video coder, comprising:

a coding engine to code video data by motion-compensated predictive coding,

a reference picture cache to store reconstructed video of coded reference frames,

a transmitter to transmit coded video data to a channel

a controller, responsive to network errors, to:

code a picture identifier in a long-form coding format when a network error has occurred,

code the picture identifier in a short-form coding format when no network error has occurred.

22. The video coder of claim 21 , wherein the long-form format includes a first field representing least significant bits of the picture identifier and a second field representing most significant bits of the picture identifier.

23. The video coder of claim 21 , wherein the short-form format includes a first field representing least significant bits of the picture identifier.

24. The video coder of claim 21 , wherein the controller includes a flag in the coded video data indicating whether a long-form format is used.

25. The video coder of claim 21 , wherein, when the network error has occurred, the controller invalidates non-acknowledged reference frames in the reference picture cache.

26. The video coder of claim 21 , wherein, when the network error has occurred, the coding engine performs a motion estimation search on acknowledged reference frames in the reference picture cache.

27. The video coder of claim 21 , wherein, when no network error has occurred, the coding engine performs a motion estimation search on acknowledged reference frames and non-acknowledged reference frames in the reference picture cache.

28. The video coder of claim 21 , wherein, when a network error has occurred, the controller

estimates a number of coded video frames lost due to the network error, and

if the number of lost frames exceeds a predetermined threshold, codes the picture identifier in the long-form coding format, and

if the number of lost frames does not exceed the threshold, codes the picture identifier in the short-form coding format.

29. The video coder of claim 21 , wherein the long-form format is provided in a header field of a first coded slice of a coded input frame.

30. The video coder of claim 21 , wherein the long-form format is coded using a syntax as follows:

a pic_order_cnt_lsb field, representing least significant bits of the picture identifier,

a pic_order_cnt_msb_present_flag field, representing whether a pic_order_cnt_msb field is present, and

a pic_order_cnt_msb field, representing most significant bits of the picture identifier.

31. A non-transitory computer readable medium having instructions stored thereon that, when executed by processing device, causes the devices to:

estimate whether a communication error has occurred involving previously-coded video data,

code an input frame according to predictive coding,

if a communication error has occurred, code a picture identifier for the input frame in a long-form coding format, and

if no communication error has occurred, code the picture identifier for the input frame in a short-form coding format.

32. A decoding method, comprising:

decoding coded video data, the frames having picture identifiers provided within the coded video data, some picture identifiers provided in a long form representation and other picture identifiers provided in a short form representation,

when a long form picture identifier is received, locally estimating a long form picture identifier from a previously-received long form picture identifier and short term picture identifier(s) received subsequent to the previously-received long form picture identifier;

comparing the estimated long form picture identifier to the received long form picture identifier, and

when the comparison indicates a mismatch, identifying an error in the coded video data.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 25, 2012
From: ZHANG, DAZHONG; ZHOU, XIAOSONG; WU, HSI-JUNG
To: APPLE INC.
Reel/Frame 029023/0525 →
Continuity (1)
Related Publication 20140086315A1 · Mar 27, 2014