IP Library Granted Patent US 9,363,512
Granted Patent B2
US 9,363,512 · App. 13/774,199 · Granted Jun 7, 2016

Motion vector sign bit hiding

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,363,512
App. No.
13/774,199
Granted
Jun 7, 2016
Kind
B2
Abstract

Methods of encoding and decoding for video data for encoding or decoding motion vector difference components for inter-coded video are described. The sign of one of the components is hidden within the parity of the sum of the magnitudes of the horizontal and vertical difference components. The sign of the other of the components is explicitly signaled in the bitstream. The hidden sign may be assigned to the larger in magnitude of the two components. In other cases, the hidden sign may always be assigned to the horizontal or vertical component. In another case, the hidden sign may always be assigned to one component, unless that component is zero, in which case the hidden sign is assigned to the other component. In another case, both components may have their signs hidden, in which case the sign hiding is based on their respective parity, rather than the parity of their sum.

Claims (49)

1. A method of decoding a bitstream of inter-coded video using sign bit hiding, wherein a prediction block in a reference frame is specified by a motion vector, the bitstream encoding a horizontal motion vector difference component and a vertical motion vector difference component, wherein the motion vector is determined, in the decoder, based on a predicted motion vector adjusted by the horizontal motion vector difference component and the vertical motion vector difference component, the method comprising:

decoding a part of the bitstream to reconstruct a magnitude of one of the motion vector difference components and to reconstruct a magnitude of the other of the motion vector difference components;

determining a parity by summing said magnitude of the one of the motion vector difference components and said magnitude of the other of the motion vector difference components to obtain said parity;

inferring a sign for said one of the motion vector difference components based on whether said parity is even or odd; and

assigning the sign to said magnitude to reconstruct said one of the motion vector difference components.

2. The method claimed in claim 1 , wherein assigning said sign comprises assigning said sign to the horizontal motion vector difference component unless the horizontal motion vector difference component is zero, in which case assigning comprises assigning said sign to the vertical motion vector difference component.

3. The method claimed in claim 1 , wherein assigning said sign comprises assigning said sign to the vertical motion vector difference component unless the vertical motion vector difference component is zero, in which case assigning comprises assigning said sign to the horizontal motion vector difference component.

4. The method claimed in claim 1 , wherein assigning includes determining which of the horizontal motion vector difference component and the vertical motion vector difference component has greater magnitude and assigning said sign to the motion vector difference component having the greater magnitude.

5. The method claimed in claim 1 , further comprising determining that a picture header in the bitstream contains a motion vector sign bit hiding flag indicative that motion vector sign bits within a corresponding picture are hidden.

6. The method claimed in claim 1 , further comprising, before assigning, confirming that a magnitude-based threshold test is met.

7. The method claimed in claim 6 , wherein confirming comprises determining that the sum of the magnitudes of the motion vector difference components exceeds a threshold value.

8. A decoder for decoding a bitstream of inter-coded video using sign bit hiding, wherein a prediction block in a reference frame is specified by a motion vector, the bitstream encoding a horizontal motion vector difference component and a vertical motion vector difference component, wherein the motion vector is determined, in the decoder, based on a predicted motion vector adjusted by the horizontal motion vector difference component and the vertical motion vector difference component, the decoder comprising:

a processor;

a memory; and

a decoding application stored in the memory and containing instructions that, when executed, cause the processor to:

decode a part of the bitstream to reconstruct a magnitude of one of the motion vector difference components and to reconstruct a magnitude of the other of the motion vector difference components,

determine a parity by summing said magnitude of the one of the motion vector difference components and said magnitude of the other of the motion vector difference components to obtain said parity,

infer a sign for said one of the motion vector difference components based on whether said parity is even or odd, and

assigning the sign to said magnitude to reconstruct said one of the motion vector difference components.

9. The decoder claimed in claim 8 , wherein the processor is configured to assign said sign by assigning said sign to the horizontal motion vector difference component unless the horizontal motion vector difference component is zero, in which case the processor assigns said sign to the vertical motion vector difference component.

10. The decoder claimed in claim 8 , wherein the processor is configured to assign said sign by assigning said sign to the vertical motion vector difference component unless the vertical motion vector difference component is zero, in which case the processor assigns said sign to the horizontal motion vector difference component.

11. The decoder claimed in claim 8 , wherein the processor is configured to assign by determining which of the horizontal motion vector difference component and the vertical motion vector difference component has greater magnitude and assigning said sign to the motion vector difference component having the greater magnitude.

12. The decoder claimed in claim 8 , wherein the processor is further configured to determine that a picture header in the bitstream contains a motion vector sign bit hiding flag indicative that motion vector sign bits within a corresponding picture are hidden.

13. The decoder claimed in claim 8 , wherein the processor is further configured to, before assigning the sign, confirm that a magnitude-based threshold test is met.

14. The decoder claimed in claim 13 , wherein the processor is configured to confirm by determining that the sum of the magnitudes of the motion vector difference components exceeds a threshold value.

15. A non-transitory processor-readable medium storing processor-executable instructions which, when executed, configures one or more processors to perform the method claimed in claim 1 .

16. A method of decoding a bitstream of inter-coded video using sign bit hiding, wherein a prediction block in a reference frame is specified by a motion vector, the bitstream encoding a horizontal motion vector difference component and a vertical motion vector difference component, wherein the motion vector is determined, in the decoder, based on a predicted motion vector adjusted by the horizontal motion vector difference component and the vertical motion vector difference component, the method comprising:

determining that a picture header in the bitstream contains a motion vector sign bit hiding flag indicative that motion vector sign bits within a corresponding picture are hidden;

decoding a part of the bitstream to reconstruct a magnitude of one of the motion vector difference components;

inferring a sign for said one of the motion vector difference components based on whether said magnitude is even or odd; and

assigning the sign to said magnitude to reconstruct said one of the motion vector difference components.

17. The method claimed in claim 16 , wherein assigning said sign comprises assigning said sign to the horizontal motion vector difference component unless the horizontal motion vector difference component is zero, in which case assigning comprises assigning said sign to the vertical motion vector difference component.

18. The method claimed in claim 16 , wherein assigning said sign comprises assigning said sign to the vertical motion vector difference component unless the vertical motion vector difference component is zero, in which case assigning comprises assigning said sign to the horizontal motion vector difference component.

19. The method claimed in claim 16 , wherein assigning includes determining which of the horizontal motion vector difference component and the vertical motion vector difference component has greater magnitude and assigning said sign to the motion vector difference component having the greater magnitude.

20. The method claimed in claim 16 , further comprising, before assigning, confirming that a magnitude-based threshold test is met.

21. The method claimed in claim 20 , wherein confirming comprises determining that the sum of the magnitudes of the motion vector difference components exceeds a threshold value.

22. A decoder for decoding a bitstream of inter-coded video using sign bit hiding, wherein a prediction block in a reference frame is specified by a motion vector, the bitstream encoding a horizontal motion vector difference component and a vertical motion vector difference component, wherein the motion vector is determined, in the decoder, based on a predicted motion vector adjusted by the horizontal motion vector difference component and the vertical motion vector difference component, the decoder comprising:

a processor;

a memory; and

a decoding application stored in the memory and containing instructions that, when executed, cause the processor to:

decode a part of the bitstream to reconstruct a magnitude of one of the motion vector difference components,

infer a sign for said one of the motion vector difference components based on whether said magnitude is even or odd, and

assigning the sign to said magnitude to reconstruct said one of the motion vector difference components.

23. The decoder claimed in claim 22 , wherein the processor is configured to assign said sign by assigning said sign to the horizontal motion vector difference component unless the horizontal motion vector difference component is zero, in which case the processor assigns said sign to the vertical motion vector difference component.

24. The decoder claimed in claim 22 , wherein the processor is configured to assign said sign by assigning said sign to the vertical motion vector difference component unless the vertical motion vector difference component is zero, in which case the processor assigns said sign to the horizontal motion vector difference component.

25. The decoder claimed in claim 22 , wherein the processor is configured to assign by determining which of the horizontal motion vector difference component and the vertical motion vector difference component has greater magnitude and assigning said sign to the motion vector difference component having the greater magnitude.

26. The decoder claimed in claim 22 , wherein the processor is further configured to, before assigning the sign, confirm that a magnitude-based threshold test is met.

27. The decoder claimed in claim 26 , wherein the processor is configured to confirm by determining that the sum of the magnitudes of the motion vector difference components exceeds a threshold value.

28. A non-transitory processor-readable medium storing processor-executable instructions which, when executed, configures one or more processors to perform the method claimed in claim 16 .

Assignments (10)
CORRECTIVE ASSIGNMENT TO CORRECT THE ADDED PATENT NUMBER TO REMOVE PATENT NO. 8,873,407 AT PREVIOUSLY RECORDED ON REEL 64066 FRAME 1. ASSIGNOR(S) HEREBY CONFIRMS THE NUNC PRO TUNC ASSIGNMENT EFFECTIVE DATE MARCH 20, 2023. Recorded Feb 2, 2026
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 074921/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE COVER SHEET AT PAGE 50 TO REMOVE 12817157 PREVIOUSLY RECORDED ON REEL 063471 FRAME 0474. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Sep 5, 2023
From: BLACKBERRY LIMITED
To: OT PATENT ESCROW, LLC
Reel/Frame 064806/0669 →
CORRECTIVE ASSIGNMENT TO CORRECT 12817157 APPLICATION NUMBER PREVIOUSLY RECORDED AT REEL: 064015 FRAME: 0001. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Sep 5, 2023
From: OT PATENT ESCROW, LLC
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064807/0001 →
NUNC PRO TUNC ASSIGNMENT Recorded Jun 19, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064066/0001 →
NUNC PRO TUNC ASSIGNMENT Recorded Jun 16, 2023
From: OT PATENT ESCROW, LLC
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064015/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 27, 2023
From: BLACKBERRY LIMITED
To: OT PATENT ESCROW, LLC
Reel/Frame 063471/0474 →
CHANGE OF NAME Recorded Mar 15, 2016
From: RESEARCH IN MOTION LIMITED
To: BLACKBERRY LIMITED
Reel/Frame 038087/0963 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 24, 2013
From: SLIPSTREAM DATA INC.
To: RESEARCH IN MOTION LIMITED
Reel/Frame 030276/0982 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 18, 2013
From: YU, XIANG; HE, DAKE; WANG, JING; CAMPBELL, STEVEN WAYNE
To: SLIPSTREAM DATA INC.
Reel/Frame 030027/0032 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 18, 2013
From: SLIPSTREAM DATA INC.
To: RESEARCH IN MOTION LIMITED
Reel/Frame 030027/0078 →