Neighbor determination in video decoding

US9554134B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9554134-B2
Application numberUS-201314100661-A
CountryUS
Kind codeB2
Filing dateDec 9, 2013
Priority dateJun 30, 2007
Publication dateJan 24, 2017
Grant dateJan 24, 2017

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Video decoding innovations for multithreading implementations and graphics processor unit (“GPU”) implementations are described. For example, for multithreaded decoding, a decoder uses innovations in the areas of layered data structures, picture extent discovery, a picture command queue, and/or task scheduling for multithreading. Or, for a GPU implementation, a decoder uses innovations in the areas of inverse transforms, inverse quantization, fractional interpolation, intra prediction using waves, loop filtering using waves, memory usage and/or performance-adaptive loop filtering. Innovations are also described in the areas of error handling and recovery, determination of neighbor availability for operations such as context modeling and intra prediction, CABAC decoding, computation of collocated information for direct mode macroblocks in B slices, reduction of memory consumption, implementation of trick play modes, and picture dropping for quality adjustment.

First claim

Opening claim text (preview).

We claim: 1. A method of video decoding using a video decoder, the method comprising: with the video decoder, getting one or more tables indicating neighbor availability relationships between macroblocks, blocks and/or sub-blocks; with the video decoder, setting up a state machine that stores macroblock neighbor availability information for plural macroblocks as plural states, wherein, for a given state among the plural states, the state machine stores information indicating a number of consecutive macroblocks in the given state and stores the macroblock neighbor availability information for the given state; and with the video decoder, using the one or more tables and the state machine to determine neighbor availability during decoding operations. 2. The method of 1 wherein the decoding operations include one or more of context-adaptive binary arithmetic decoding, spatial intra prediction, mode computation for intra prediction, and context-adaptive variable length decoding. 3. The method of 1 wherein the using the one or more tables and the state machine involves a hierarchical determination at macroblock level then sub-macroblock level. 4. The method of 1 wherein the using the one or more tables and the state machine includes storing location information for neighboring macroblocks, and wherein the location information is stored as offsets from a current macroblock. 5. The method of 1 wherein the one or more tables include: a first availability table that associates different index values with different macroblock neighbor availability patterns; and a second availability table that associates different macroblock neighbor availability patterns and partition locations with different sub-macroblock neighbor availability patterns. 6. The method of claim 5 wherein the state machine associates the plural states with respective ones of the index values for the first availability table. 7. The method of claim 6 wherein the using the one or more tables and the state machine further comprises, during the decoding operations, for a current partition of a current macroblock: determining a macroblock neighbor availability pattern for the current macroblock using the state machine and the first availability table; and determining a sub-macroblock neighbor availability pattern for the current partition of the current macroblock using the macroblock neighbor availability pattern for the current macroblock and the second availability table. 8. The method of 6 wherein, for the given state, the state machine stores one of the different index values for the first availability table to indicate one of the different macroblock neighbor availability patterns for the given state. 9. The method of claim 1 wherein the one or more tables include: an availability table that associates different macroblock neighbor availability patterns and partition locations with different sub-macroblock neighbor availability patterns. 10. The method of claim 9 wherein the state machine associates the plural states with the different macroblock neighbor availability patterns. 11. The method of claim 10 wherein the using the one or more tables and the state machine further comprises, during the decoding operations, for a current partition of a current macroblock: determining a macroblock neighbor availability pattern for the current macroblock using the state machine; and determining a sub-macroblock neighbor availability pattern for the current partition of the current macroblock using the macroblock neighbor availability pattern for the current macroblock and the availability table. 12. The method of 10 wherein, for the given state, the state machine stores one of the different macroblock neighbor availability patterns for the given state. 13. The method of claim 1 wherein the state machine is set up for a slice that includes the plural macroblocks before entropy decoding for the plural macroblocks of the slice. 14. One or more computer-readable storage media storing computer-executable instructions for causing a computer system programmed thereby to perform video decoding, wherein the one or more computer-readable storage media are selected from the group consisting of volatile memory, non-volatile memory, magnetic disk, CD-ROM, and DVD, the video decoding comprising: getting one or more tables indicating neighbor availability relationships between macroblocks, blocks and/or sub-blocks; setting up a state machine that stores macroblock neighbor availability information for plural macroblocks as plural states, wherein, for a given state among the plural states, the state machine stores information indicating a number of consecutive macroblocks in the given state and stores the macroblock neighbor availability information for the given state; and using the one or more tables and the state machine to determine neighbor availability during decoding operations. 15. The one or more computer-readable storage media of claim 14 wherein the using the one or more tables and the state machine involves a hierarchical determination at macroblock level then sub-macroblock level. 16. The one or more computer-readable storage media of claim 14 wherein the one or more tables include: a first availability table that associates different index values with different macroblock neighbor availability patterns; and a second availability table that associates different macroblock neighbor availability patterns and partition locations with different sub-macroblock neighbor availability patterns. 17. A computer system including: memory configured to store encoded data; and a video decoder configured to decode the encoded data, thereby reconstructing video, wherein the video decoder is configured to: get a first availability table and second availability table, wherein: the first availability table associates different index values with different macroblock neighbor availability patterns; and the second availability table associates different macroblock neighbor availability patterns and partition locations with different sub-macroblock neighbor availability patterns; and set up a state machine that stores macroblock neighbor availability information for plural macroblocks in a slice as plural states, wherein, for a given state among the plural states, the state machine stores information indicating a number of consecutive macroblocks in the given state and stores one of the index values for the first availability table; determine macroblock neighbor availability using the state machine and the first availability table; and determine sub-macroblock neighbor availability using the macroblock neighbor availability and the second availability table. 18. A computer system that includes a processor and memory that implement a video decoder configured to perform video decoding that includes: getting one or more tables indicating neighbor availability relationships between macroblocks, blocks and/or sub-blocks; setting up a state machine that stores macroblock pair neighbor availability information for plural macroblock pairs as plural states, wherein, for a given state among the plural states, the state machine stores information indicating a number of consecutive macroblock pairs in the given state and stores the macroblock pair neighbor availability information for the given state; and using the one or more tables and the state machine to determine neighbor availability during decoding operations. 19. The computer system of claim 18 wherein the using the one or

Assignees

Inventors

Classifications

  • Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder · CPC title

  • Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction · CPC title

  • involving spatial prediction techniques · CPC title

  • Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction · CPC title

  • H04N19/13Primary

    Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC] · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9554134B2 cover?
Video decoding innovations for multithreading implementations and graphics processor unit (“GPU”) implementations are described. For example, for multithreaded decoding, a decoder uses innovations in the areas of layered data structures, picture extent discovery, a picture command queue, and/or task scheduling for multithreading. Or, for a GPU implementation, a decoder uses innovations in the a…
Who is the assignee on this patent?
Microsoft Corp, Microsoft Technology Licensing Llc
What technology area does this patent fall under?
Primary CPC classification H04N19/13. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Jan 24 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).