US20050002582A1 - Frequency coefficient scanning paths for coding digital video content - Google Patents

Frequency coefficient scanning paths for coding digital video content Download PDF

Info

Publication number
US20050002582A1
US20050002582A1 US10/902,392 US90239204A US2005002582A1 US 20050002582 A1 US20050002582 A1 US 20050002582A1 US 90239204 A US90239204 A US 90239204A US 2005002582 A1 US2005002582 A1 US 2005002582A1
Authority
US
United States
Prior art keywords
dimensional array
frequency coefficient
array frequency
coefficient located
assigning
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
US10/902,392
Other versions
US6987888B2 (en
Inventor
Limin Wang
David Baylon
Krit Panusopone
Rajeev Gandhi
Yue Yu
Ajay Luthra
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google Technology Holdings LLC
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=32297973&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=US20050002582(A1) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Individual filed Critical Individual
Priority to US10/902,392 priority Critical patent/US6987888B2/en
Publication of US20050002582A1 publication Critical patent/US20050002582A1/en
Assigned to GENERAL INSTRUMENT CORPORATION reassignment GENERAL INSTRUMENT CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: BAYLON, DAVID, GANDHI, RAJEEV, LUTHRA, AJAY, PANUSOPONE, KRIT, WANG, LIMIN, YU, YUE
Publication of US6987888B2 publication Critical patent/US6987888B2/en
Application granted granted Critical
Assigned to MOTOROLA MOBILITY LLC reassignment MOTOROLA MOBILITY LLC ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: GENERAL INSTRUMENT HOLDINGS, INC.
Assigned to GENERAL INSTRUMENT HOLDINGS, INC. reassignment GENERAL INSTRUMENT HOLDINGS, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: GENERAL INSTRUMENT CORPORATION
Assigned to Google Technology Holdings LLC reassignment Google Technology Holdings LLC ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: MOTOROLA MOBILITY LLC
Assigned to JEFFERIES FINANCE LLC, AS COLLATERAL AGENT reassignment JEFFERIES FINANCE LLC, AS COLLATERAL AGENT PATENT SECURITY AGREEMENT (SHORT-FORM) Assignors: EVERI HOLDINGS INC.
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/129Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/16Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter for a given display mode, e.g. for interlaced or progressive display mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Definitions

  • the present invention relates to digital video encoding, decoding, and bitstream generation. More specifically, the present invention relates to scanning paths in transform-based coding as used in MPEG-4 Part 10 Advanced Video Coding/H.264, for example.
  • Video compression is used in many current and emerging products. It is at the heart of digital television set-top boxes (STBs), digital satellite systems (DSSs), high definition television (HDTV) decoders, digital versatile disk (DVD) players, video conferencing, Internet video and multimedia content, and other digital video applications. Without video compression, the number of bits required to represent digital video content can be extremely large, making it difficult or even impossible for the digital video content to be efficiently stored, transmitted, or viewed.
  • the digital video content comprises a stream of pictures that can be displayed as an image on a television receiver, computer monitor, or some other electronic device capable of displaying digital video content.
  • a picture that is displayed in time before a particular picture is in the “backward direction” in relation to the particular picture.
  • a picture that is displayed in time after a particular picture is in the “forward direction” in relation to the particular picture.
  • Video compression is accomplished in a video encoding, or coding, process in which each picture is encoded as either a frame or as two fields.
  • Each frame comprises a number of lines of spatial information.
  • a typical frame contains 480 horizontal lines.
  • Each field contains half the number of lines in the frame.
  • the frame comprises 480 horizontal lines
  • each field comprises 240 horizontal lines.
  • one of the fields comprises the odd numbered lines in the frame and the other field comprises the even numbered lines in the frame.
  • the field that comprises the odd numbered lines will be referred to as the “top” field hereafter and in the appended claims, unless otherwise specifically denoted.
  • the field that comprises the even numbered lines will be referred to as the “bottom” field hereafter and in the appended claims, unless otherwise specifically denoted.
  • the two fields can be interlaced together to form an interlaced frame.
  • video coding The general idea behind video coding is to remove data from the digital video content that is “non-essential.” The decreased amount of data then requires less bandwidth for broadcast or transmission. After the compressed video data has been transmitted, it must be decoded, or decompressed. In this process, the transmitted video data is processed to generate approximation data that is substituted into the video data to replace the “non-essential” data that was removed in the coding process.
  • Video coding transforms the digital video content into a compressed form that can be stored using less space and transmitted using less bandwidth than uncompressed digital video content. It does so by taking advantage of temporal and spatial redundancies in the pictures of the video content.
  • the digital video content can be stored in a storage medium such as a hard drive, DVD, or some other non-volatile storage unit.
  • video coding standards have been developed to standardize the various video coding methods so that the compressed digital video content is rendered in formats that a majority of video encoders and decoders can recognize.
  • MPEG Motion Picture Experts Group
  • ITU-T International Telecommunication Union
  • This new video coding standard is called the MPEG-4 Part 10 Advanced Video Coding (AVC)/H.264 standard.
  • Most modern video coding standards including the MPEG-4 Part 10 AVC/H.264 standard, are based in part on a temporal prediction with motion compensation (MC) algorithm and a transform domain coding algorithm.
  • MC motion compensation
  • Temporal prediction with motion compensation is used to remove temporal redundancy between successive pictures in a digital video broadcast.
  • the temporal prediction with motion compensation algorithm typically utilizes one or two reference pictures to encode a particular picture. By comparing the particular picture that is to be encoded with one of the reference pictures, the temporal prediction with motion compensation algorithm can take advantage of the temporal redundancy that exists between the reference picture and the particular picture that is to be encoded and encode the picture with a higher amount of compression than if the picture were encoded without using the temporal prediction with motion compensation algorithm.
  • One of the reference pictures is in the backward direction in relation to the particular picture that is to be encoded.
  • the other reference picture is in the forward direction in relation to the particular picture that is to be encoded.
  • Transform domain coding is used to remove spatial redundancy within each picture or temporally predicted residual picture.
  • a residual picture is the difference between a picture and a picture that is temporally predicted from that picture.
  • Each picture or temporally predicted residual picture comprises a number of blocks of pixels. Each block refers to an N by M group of pixels where N refers to the number of columns of pixels in the block and M refers to the number of rows of pixels in the block.
  • Each block in the picture or temporally predicted residual picture is represented by an N by M array of luminance and chrominance coefficients which correspond to each pixel in the blocks' N by M grid of pixels. Each luminance coefficient represents the brightness level, or luminance, of its corresponding pixel.
  • Each block in the picture or temporally predicted residual picture is also represented by an N by M array of chrominance coefficients which correspond to each pixel in the blocks' N by M grid of pixels.
  • Each chrominance coefficient represents the color content, or chrominance, of its corresponding pixel.
  • the smooth variations in color can be termed as low frequency variations and the sharp variations as high frequency variations.
  • the smooth variations in color, or low frequency components of the picture constitute the base of an image, and the edges which give detail to the picture, or the high frequency components, add upon the smooth variations in color to refine the picture. The combination of the low and high frequency components results in a detailed image.
  • the values of the luminance coefficients only vary slightly between the most of the pixels in a particular picture. Consequentially, in many pictures, most pixels contain more of the low frequency component than the high frequency component. In other words, most of the energy of a signal containing the digital video content lies at low frequencies.
  • Transform domain coding takes advantage of the fact that most of the energy of a signal containing the digital video content lies at low frequencies.
  • Transform domain coding transforms the luminance coefficients in each N by M array from the spatial domain to the frequency domain.
  • the transformed N by M array comprises coefficients which represent energy levels in the frequency domain.
  • the coefficients of the transformed N by M array will be referred to as “frequency coefficients.”
  • the N by M array of frequency coefficients is two dimensional and must be converted into a one dimensional array of frequency coefficients so that the encoder or decoder can use the frequency coefficients to encode or decode the picture.
  • the encoder generates the one dimensional array of frequency coefficients by scanning the two dimensional array of frequency coefficients using a particular scanning path.
  • the scanning path refers to the order in which the frequency coefficients in the two dimensional array are scanned and output by the encoder into the one dimensional array.
  • FIG. 1 illustrates two variations of zig-zag scanning paths that are currently used to scan a four by four array of frequency coefficients.
  • the first zig-zag scanning path ( 100 ) goes in a zig-zag order starting with an upper left coefficient (0) and ending with a lower right coefficient (15) of the array of frequency coefficients.
  • the second zig-zag scanning path ( 101 ) is similar to the first in that it starts with the upper left coefficient (0) and ends with the lower right coefficient (15).
  • FIG. 1 illustrates two variations of zig-zag scanning paths that are currently used to scan a four by four array of frequency coefficients.
  • the first zig-zag scanning path ( 100 ) goes in a zig-zag order starting with an upper left coefficient (0) and ending with a lower right coefficient (15) of the array of frequency coefficients.
  • the second zig-zag scanning path ( 101 ) is similar to the first in that it starts with the upper left coefficient (0) and ends with the lower right coefficient (15).
  • FIG. 1 illustrate
  • FIG. 1 shows the two zig-zag scanning paths ( 100 , 101 ) differ slightly in the order that the coefficients are scanned.
  • FIG. 1 also shows one non-zig-zag scanning path ( 102 ) that is also prior art.
  • Other prior art scanning paths for an 8 by 8 array of frequency coefficients can be found in MPEG-2 (Generic Coding of Moving Pictures and Associated Audio, Draft of International Standard, ISO/EEC 13818-2, March 1994).
  • the encoder prefferably scans the high-energy low frequency coefficients and then scan the low-energy high frequency coefficients. Scanning the low frequency coefficients before the high frequency coefficients places the low frequency coefficients before the high frequency coefficients in the resulting one dimensional array of coefficients. This particular order allows efficient coding and compression of the picture.
  • the zig-zag scanning path scans the two dimensional array of frequency coefficients without any significant bias towards the horizontal or vertical frequency directions.
  • energy tends to be concentrated along the vertical direction, and a scanning path which is biased in the vertical direction would capture more of the non-zero coefficients first, thereby allowing for better compression efficiency.
  • the present invention provides a method of scanning frequency coefficients in a manner that is efficient for interlaced digital video content.
  • the digital video content comprises a stream of pictures, slices, or macroblocks which can each be intra, predicted or bi-predicted pictures.
  • the pictures, slices, or macroblocks comprise blocks of pixels.
  • the method comprises scanning frequency coefficients from each of the block's two dimensional array of frequency coefficients in a manner that is vertically biased.
  • Another embodiment of the present invention provides an encoder that scans frequency coefficients in a manner that is efficient for interlaced digital video content.
  • the digital video content comprises a stream of pictures, slices, or macroblocks which can each be intra, predicted or bi-predicted pictures.
  • the pictures comprise blocks of pixels.
  • the method comprises scanning frequency coefficients from each of the block's two dimensional array of frequency coefficients in a manner that is vertically biased.
  • Another embodiment of the present invention provides a decoder that scans a one dimensional array of one dimensional array frequency coefficients and produces a two dimensional array of two dimensional array frequency coefficients in a manner that is efficient for interlaced digital video content.
  • the digital video content comprises a stream of pictures, slices, or macroblocks which can each be intra, predicted or bi-predicted pictures.
  • the pictures comprise blocks of pixels.
  • the decoder uses a method of scanning that comprises assigning one dimensional array frequency coefficient values of one dimensional array frequency coefficients in a one dimensional array to corresponding two dimensional array frequency coefficients in a two dimensional array of two dimensional array frequency coefficients.
  • FIG. 1 is prior art and illustrates two variations of zig-zag scanning paths and a non-zig-zag scanning path that are currently used to scan a four by four array of frequency coefficients.
  • FIG. 2 illustrates an exemplary sequence of three types of pictures according to an embodiment of the present invention, as defined by an exemplary video coding standard such as the MPEG-4 Part 10 AVC/H.264 standard.
  • FIG. 3 shows that each picture is preferably divided into one or more slices consisting of macroblocks.
  • FIG. 4 shows that a macroblock can be further divided into smaller sized blocks.
  • FIG. 5 illustrates a preferable method of transform domain coding according to an embodiment of the present invention.
  • FIG. 6 shows a preferable scanning path for a four by four pixel block's frequency coefficient array according to an embodiment of the present invention.
  • FIG. 7 shows a preferable scanning path for a four by eight pixel block's frequency coefficient array according to an embodiment of the present invention.
  • FIG. 8 shows a preferable scanning path for an eight by four pixel block's frequency coefficient array according to an embodiment of the present invention.
  • FIG. 9 shows a preferable scanning path for an eight by eight pixel block's frequency coefficient array according to an embodiment of the present invention.
  • the present invention provides methods for scanning frequency coefficients from a two dimensional array of frequency coefficients. These can be used in any digital video coding algorithm. In particular, they can be implemented in the MPEG-4 Part 10 AVC/H.264 video coding standard.
  • the MPEG-4 Part 10 AVC/H.264 standard is a new standard for encoding and compressing digital video content.
  • the documents establishing the MPEG-4 Part 10 AVC/H.264 standard are hereby incorporated by reference, including the “Joint Final Committee Draft (JFCD) of Joint Video Specification” issued on Aug. 10, 2002 by the Joint Video Team (JVT).
  • JFCD Joint Final Committee Draft
  • JVT Joint Video Team
  • the JVT consists of experts from MPEG and ITU-T. Due to the public nature of the MPEG-4 Part 10 AVC/H.264 standard, the present specification will not attempt to document all the existing aspects of MPEG-4 Part 10 AVC/H.264 video coding, relying instead on the incorporated specifications of the standard.
  • the current method can be used in any general digital video coding algorithm or system requiring coefficient scanning. It can be modified and used to handle the extraction of frequency coefficients from a two dimensional array of frequency coefficients as best serves a particular standard or application.
  • FIG. 2 there are preferably three types of pictures that can be used in the video coding method.
  • Three types of pictures are defined to support random access to stored digital video content while exploring the maximum redundancy reduction using temporal prediction with motion compensation.
  • the three types of pictures are intra (I) pictures ( 200 ), predicted (P) pictures ( 202 a,b ), and bi-predicted (B) pictures ( 201 a - d ).
  • An I picture ( 200 ) provides an access point for random access to stored digital video content.
  • Intra pictures ( 200 ) are encoded without referring to reference pictures and can be encoded with moderate compression.
  • a predicted picture ( 202 a,b ) is encoded using an I, P, or B picture that has already been encoded as a reference picture.
  • the reference picture can be in either the forward or backward temporal direction in relation to the P picture that is being encoded.
  • the predicted pictures ( 202 a,b ) can be encoded with more compression than the intra pictures ( 200 ).
  • a bi-predicted picture ( 201 a - d ) is encoded using two temporal reference pictures.
  • An embodiment of the present invention is that the two temporal reference pictures can be in the same or different temporal direction in relation to the B picture that is being encoded.
  • Bi-predicted pictures ( 201 a - d ) can be encoded with the most compression out of the three picture types.
  • Reference relationships ( 203 ) between the three picture types are illustrated in FIG. 2 .
  • the P picture ( 202 a ) can be encoded using the encoded I picture ( 200 ) as its reference picture.
  • the B pictures ( 201 a - d ) can be encoded using the encoded I picture ( 200 ) and the encoded P pictures ( 202 a,b ) is its reference pictures, as shown in FIG. 2 .
  • encoded B pictures ( 201 a - d ) can also be used as reference pictures for other B pictures that are to be encoded.
  • the B picture ( 201 c ) of FIG. 2 is shown with two other B pictures ( 201 b and 201 d ) as its reference pictures.
  • the number and particular order of the I ( 200 ), B ( 201 a - d ), and P ( 202 a,b ) pictures shown in FIG. 2 are given as an exemplary configuration of pictures, but are not necessary to implement the present invention. Any number of I, B, and P pictures can be used in any order to best serve a particular application.
  • the MPEG-4 Part 10 AVC/H.264 standard does not impose any limit to the number of B pictures between two reference pictures nor does it limit the number of pictures between two I pictures.
  • FIG. 3 shows that each picture ( 300 ) is preferably divided into slices consisting of macroblocks.
  • a slice ( 301 ) is a group of macroblocks and a macroblock ( 302 ) is a rectangular group of pixels.
  • a preferable macroblock ( 302 ) size is 16 by 16 pixels.
  • Each interlaced picture, slice, or macroblock in a stream of pictures that is to be encoded can be encoded using adaptive frame/field (AFF) coding.
  • AFF adaptive frame/field
  • each picture, slice, or macroblock in a stream of pictures that is to be encoded is encoded in either frame mode or in field mode, regardless of the encoding mode of the previous picture, slice, or macroblock. If a picture, slice, or macroblock is encoded in frame mode, the two fields that make up an interlaced frame are coded jointly. Conversely, if a picture, slice, or macroblock is encoded in field mode, the two fields that make up an interlaced frame are coded separately.
  • the encoder determines which type of coding, frame mode coding or field mode coding, is more advantageous for each picture, slice, or macroblock and chooses that type of encoding for the picture, slice, or macroblock.
  • the exact method of choosing between frame mode and field mode is not critical to the present invention and will not be detailed herein.
  • FIG. 4 shows that a macroblock can be further divided into smaller sized blocks.
  • a macroblock can be further divided into block sizes of 16 by 8 pixels ( 400 ), 8 by 16 pixels ( 401 ), or 8 by 8 pixels ( 402 ).
  • a block size of 8 by 8 pixels ( 402 ) can be further subdivided into block sizes of 8 by 4 pixels ( 403 ), 4 by 8 pixels ( 404 ), or 4 by 4 pixels ( 405 ).
  • a picture that is to be encoded using transform domain coding can sometimes be encoded with better picture quality or more compression efficiency if the transform domain coding is performed on the smaller block sizes of FIG. 4 rather than on the macroblock itself.
  • Some digital video coding algorithms allow for variable block size transforms.
  • Variable block size transform coding means that the transform domain coding can be performed on blocks of varying sizes. For example, transform domain coding can be performed on 4 by 4 pixel blocks ( 405 ) for a particular macroblock and on 4 by 8 pixel blocks ( 404 ) for a different macroblock.
  • Transform domain coding on the following block sizes can be implemented according to an embodiment of the present invention: 4 by 4 pixels ( 405 ), 8 by 4 pixels ( 403 ), 4 by 8 pixels ( 404 ), and 8 by 8 pixels ( 402 ).
  • FIG. 5 illustrates a preferable method of transform domain coding according to an embodiment of the present invention.
  • a transform ( 500 ) is performed on a block's N by M array of luminance or chrominance coefficients.
  • the N by M array of luminance or chrominance coefficients comprises the coefficients that represent the luminance or chrominance of the pixels in the N by M block.
  • the N by M array of luminance or chrominance coefficients can be a 4 by 4 array, 4 by 8 array, 8 by 4 array, or an 8 by 8 array under principles of an embodiment of the present invention.
  • the discrete cosine transform is an example of a transform and is similar to the discrete Fourier transform.
  • the DCT transforms the N by M array of luminance or chrominance coefficients from the spatial domain to the frequency domain.
  • f(i,j) represents the luminance or chrominance value of the pixel in column i and row j of the N by M array of luminance coefficients.
  • F(u,v) is the corresponding frequency coefficient in column u and row v in the N by M array of frequency coefficients.
  • the low frequency coefficients appear in the upper left corner of the N by M array of frequency coefficients.
  • the high frequency coefficients usually appear in the lower right corner of the N by M array of frequency coefficients.
  • the frequency coefficients are quantized ( 501 ), as shown in FIG. 5 .
  • Quantization ( 501 ) is performed on the frequency coefficients so that the number of bits that must be encoded is reduced. This allows for more compression.
  • One example of the quantization process ( 501 ) consists of dividing each F(u,v) by a constant, q(u,v).
  • a table of q(u,v) is called a quantization table.
  • An exemplary, but not exclusive, quantization table for an 8 by 8 array of frequency coefficients is shown in Table 1 below: TABLE 1 Eight by eight quantization table 16 11 10 16 24 40 51 61 12 12 14 19 26 58 60 55 14 13 16 24 40 57 69 56 14 17 22 29 51 87 80 62 18 22 37 56 68 109 103 77 24 36 55 64 81 104 113 92 49 64 78 87 103 121 120 101 72 92 95 98 112 100 103 99
  • Similar quantization tables can be constructed for the other sizes of the N by M frequency coefficient array. As shown in exemplary quantization table, the constants that divide each F(u,v) are larger in value in the lower right corner of the quantization table than they are in the upper left corner. An important result of the quantization process is that many of the high frequency coefficients are quantized to a value of zero.
  • the quantized frequency coefficients are scanned ( 502 ) by the encoder to convert them from a two dimensional array of quantized frequency coefficients to a one dimensional array of quantized frequency coefficients. Preferable scanning paths will be described in more detail in connection with FIGS. 6-9 .
  • An exemplary encoding ( 503 ) process preferably encodes the quantized frequency coefficients in the one dimensional array into a sequence of run-level pairs.
  • the run is defined as the distance between two non-zero quantized frequency coefficients in the one dimensional array.
  • the level is the non-zero value immediately following a sequence of zeros.
  • This type of coding produces a compact representation of the quantized frequency coefficients because a large number of the quantized coefficients have a value of zero.
  • the run-level pairs can be further compressed using entropy coding.
  • One method of entropy coding is described in detail in the MPEG-4 Part 10 AVC/H.264 standard.
  • MPEG-4 Part 10 AVC/H.264 also uses context-adaptive binary arithmetic coding (CABAC).
  • CABAC context-adaptive binary arithmetic coding
  • FIGS. 6-9 show preferable scanning path orders for a 4 by 4 pixel block, 4 by 8 pixel block, 8 by 4 pixel block, and an 8 by 8 pixel block, respectively.
  • n 0, 1, . . . ,N-1, where n is a variable that represents the pixel column number in the block as well as the corresponding frequency coefficient column number in the corresponding frequency coefficient array.
  • N is the total number of pixel columns in the block and the total number of frequency coefficient columns in the frequency coefficient array.
  • the left-most column number is 0 and the right-most column number is N-1.
  • m 0,1, , . . .
  • m is a variable that represents the pixel row number in the block as well as the corresponding frequency coefficient row number in the corresponding frequency coefficient row number in the corresponding frequency coefficient array.
  • M is the total number of pixel rows in the block and the total number of frequency coefficient rows in the frequency coefficient array.
  • the top row number is 0 and the bottom row number is M-1.
  • the numbers in FIG. 6 represent the frequency coefficient scanning order.
  • the frequency coefficient corresponding to the top left pixel is the first frequency coefficient to get scanned and is thus labeled with a 0.
  • the frequency coefficient corresponding to the bottom right pixel is the last frequency coefficient to get scanned and is thus labeled with a 15.
  • Table 2 lists the frequency coefficient scanning order and the corresponding values for n and m.
  • the numbers in FIG. 7 represent the frequency coefficient scanning order.
  • the frequency coefficient corresponding to the top left pixel is the first frequency coefficient to get scanned and is thus labeled with a 0.
  • the frequency coefficient corresponding to the bottom right pixel is the last frequency coefficient to get scanned and is thus labeled with a 31.
  • Table 3 lists the frequency coefficient scanning order and the corresponding values for n and m.
  • the numbers in FIG. 8 represent the frequency coefficient scanning order.
  • the frequency coefficient corresponding to the top left pixel is the front frequency coefficient to get scanned and is thus labeled with a 0.
  • the frequency coefficient corresponding to the bottom right pixel is the last frequency coefficient to get scanned and is thus labeled with a 31.
  • Table 4 lists the frequency coefficient scanning order and the corresponding values for n and m.
  • the numbers in FIG. 9 represent the frequency coefficient scanned order.
  • the frequency coefficient corresponding to the top left pixel is the first frequency coefficient to get scanned and is thus labeled with a 0.
  • the frequency coefficient corresponding to the bottom right pixel is the last frequency coefficient to get scanned and is thus labeled with a 63.
  • Table 5 lists the frequency coefficient scanning order and the corresponding values for n and m.

Abstract

A method and system of transform-based encoding, decoding, and bitstream generation of digital video content. The digital video content comprises a stream of pictures, slices, or macroblocks which can each be intra, predicted or bi-predicted pictures. The pictures, slices, or macroblocks comprise blocks of pixels. The method comprises scanning frequency coefficients from each of the block's two dimensional array of frequency coefficients in a manner that is vertically biased.

Description

    CROSS-REFERENCE TO RELATED APPLICATIONS
  • This application is related to U.S. patent application Ser. Nos. 10/301,076; 10/679,911; and 10/686,465 filed on Nov. 20, 2002; Oct. 6, 2003; and Oct. 15, 2003, respectively, from which priority is claimed.
  • TECHNICAL FIELD
  • The present invention relates to digital video encoding, decoding, and bitstream generation. More specifically, the present invention relates to scanning paths in transform-based coding as used in MPEG-4 Part 10 Advanced Video Coding/H.264, for example.
  • BACKGROUND
  • Video compression is used in many current and emerging products. It is at the heart of digital television set-top boxes (STBs), digital satellite systems (DSSs), high definition television (HDTV) decoders, digital versatile disk (DVD) players, video conferencing, Internet video and multimedia content, and other digital video applications. Without video compression, the number of bits required to represent digital video content can be extremely large, making it difficult or even impossible for the digital video content to be efficiently stored, transmitted, or viewed.
  • The digital video content comprises a stream of pictures that can be displayed as an image on a television receiver, computer monitor, or some other electronic device capable of displaying digital video content. A picture that is displayed in time before a particular picture is in the “backward direction” in relation to the particular picture. Likewise, a picture that is displayed in time after a particular picture is in the “forward direction” in relation to the particular picture.
  • Video compression is accomplished in a video encoding, or coding, process in which each picture is encoded as either a frame or as two fields. Each frame comprises a number of lines of spatial information. For example, a typical frame contains 480 horizontal lines. Each field contains half the number of lines in the frame. For example, if the frame comprises 480 horizontal lines, each field comprises 240 horizontal lines. In a typical configuration, one of the fields comprises the odd numbered lines in the frame and the other field comprises the even numbered lines in the frame. The field that comprises the odd numbered lines will be referred to as the “top” field hereafter and in the appended claims, unless otherwise specifically denoted. Likewise, the field that comprises the even numbered lines will be referred to as the “bottom” field hereafter and in the appended claims, unless otherwise specifically denoted. The two fields can be interlaced together to form an interlaced frame.
  • The general idea behind video coding is to remove data from the digital video content that is “non-essential.” The decreased amount of data then requires less bandwidth for broadcast or transmission. After the compressed video data has been transmitted, it must be decoded, or decompressed. In this process, the transmitted video data is processed to generate approximation data that is substituted into the video data to replace the “non-essential” data that was removed in the coding process.
  • Video coding transforms the digital video content into a compressed form that can be stored using less space and transmitted using less bandwidth than uncompressed digital video content. It does so by taking advantage of temporal and spatial redundancies in the pictures of the video content. The digital video content can be stored in a storage medium such as a hard drive, DVD, or some other non-volatile storage unit.
  • There are numerous video coding methods that compress the digital video content. Consequently, video coding standards have been developed to standardize the various video coding methods so that the compressed digital video content is rendered in formats that a majority of video encoders and decoders can recognize. For example, the Motion Picture Experts Group (MPEG) and International Telecommunication Union (ITU-T) have developed video coding standards that are in wide use. Examples of these standards include the MPEG-1, MPEG-2, MPEG-4, ITU-T H.261, and ITU-T H.263 standards.
  • However, as the demand for higher resolutions, more complex graphical content, and faster transmission time increases, so does the need for better video compression methods. To this end, a new video coding standard is currently being developed. This new video coding standard is called the MPEG-4 Part 10 Advanced Video Coding (AVC)/H.264 standard.
  • Most modern video coding standards, including the MPEG-4 Part 10 AVC/H.264 standard, are based in part on a temporal prediction with motion compensation (MC) algorithm and a transform domain coding algorithm.
  • Temporal prediction with motion compensation is used to remove temporal redundancy between successive pictures in a digital video broadcast. The temporal prediction with motion compensation algorithm typically utilizes one or two reference pictures to encode a particular picture. By comparing the particular picture that is to be encoded with one of the reference pictures, the temporal prediction with motion compensation algorithm can take advantage of the temporal redundancy that exists between the reference picture and the particular picture that is to be encoded and encode the picture with a higher amount of compression than if the picture were encoded without using the temporal prediction with motion compensation algorithm. One of the reference pictures is in the backward direction in relation to the particular picture that is to be encoded. The other reference picture is in the forward direction in relation to the particular picture that is to be encoded.
  • Transform domain coding is used to remove spatial redundancy within each picture or temporally predicted residual picture. A residual picture is the difference between a picture and a picture that is temporally predicted from that picture. Each picture or temporally predicted residual picture comprises a number of blocks of pixels. Each block refers to an N by M group of pixels where N refers to the number of columns of pixels in the block and M refers to the number of rows of pixels in the block. Each block in the picture or temporally predicted residual picture is represented by an N by M array of luminance and chrominance coefficients which correspond to each pixel in the blocks' N by M grid of pixels. Each luminance coefficient represents the brightness level, or luminance, of its corresponding pixel. Each block in the picture or temporally predicted residual picture is also represented by an N by M array of chrominance coefficients which correspond to each pixel in the blocks' N by M grid of pixels. Each chrominance coefficient represents the color content, or chrominance, of its corresponding pixel. The term “picture” will be used hereafter and in the appended claims, unless otherwise specifically denoted, to mean either a picture or a temporally predicted residual picture.
  • Most pictures have smooth color variations, with the fine details being represented as sharp edges in between the smooth variations. The smooth variations in color can be termed as low frequency variations and the sharp variations as high frequency variations. The smooth variations in color, or low frequency components of the picture, constitute the base of an image, and the edges which give detail to the picture, or the high frequency components, add upon the smooth variations in color to refine the picture. The combination of the low and high frequency components results in a detailed image.
  • Typically, the values of the luminance coefficients only vary slightly between the most of the pixels in a particular picture. Consequentially, in many pictures, most pixels contain more of the low frequency component than the high frequency component. In other words, most of the energy of a signal containing the digital video content lies at low frequencies.
  • Transform domain coding takes advantage of the fact that most of the energy of a signal containing the digital video content lies at low frequencies. Transform domain coding transforms the luminance coefficients in each N by M array from the spatial domain to the frequency domain. The transformed N by M array comprises coefficients which represent energy levels in the frequency domain. As used hereafter and in the appended claims, unless otherwise denoted, the coefficients of the transformed N by M array will be referred to as “frequency coefficients.” Once the luminance coefficients have been transformed into frequency coefficients, various compression techniques can then be performed on the contents of picture in the frequency domain that would otherwise be impossible to perform in the spatial domain.
  • The N by M array of frequency coefficients is two dimensional and must be converted into a one dimensional array of frequency coefficients so that the encoder or decoder can use the frequency coefficients to encode or decode the picture. The encoder generates the one dimensional array of frequency coefficients by scanning the two dimensional array of frequency coefficients using a particular scanning path. The scanning path refers to the order in which the frequency coefficients in the two dimensional array are scanned and output by the encoder into the one dimensional array.
  • A common scanning path that is used by an encoder to scan the frequency coefficients is a zig-zag scanning path. FIG. 1 illustrates two variations of zig-zag scanning paths that are currently used to scan a four by four array of frequency coefficients. As shown in FIG. 1, the first zig-zag scanning path (100) goes in a zig-zag order starting with an upper left coefficient (0) and ending with a lower right coefficient (15) of the array of frequency coefficients. The second zig-zag scanning path (101) is similar to the first in that it starts with the upper left coefficient (0) and ends with the lower right coefficient (15). However, as shown in FIG. 1, the two zig-zag scanning paths (100, 101) differ slightly in the order that the coefficients are scanned. FIG. 1 also shows one non-zig-zag scanning path (102) that is also prior art. Other prior art scanning paths for an 8 by 8 array of frequency coefficients can be found in MPEG-2 (Generic Coding of Moving Pictures and Associated Audio, Draft of International Standard, ISO/EEC 13818-2, March 1994).
  • It is preferable for the encoder to first scan the high-energy low frequency coefficients and then scan the low-energy high frequency coefficients. Scanning the low frequency coefficients before the high frequency coefficients places the low frequency coefficients before the high frequency coefficients in the resulting one dimensional array of coefficients. This particular order allows efficient coding and compression of the picture.
  • The zig-zag scanning path scans the two dimensional array of frequency coefficients without any significant bias towards the horizontal or vertical frequency directions. However, for interlaced material, energy tends to be concentrated along the vertical direction, and a scanning path which is biased in the vertical direction would capture more of the non-zero coefficients first, thereby allowing for better compression efficiency.
  • Thus, there is a need in the art for scanning paths that allow for more compression than do traditional zig-zag scanning paths.
  • SUMMARY OF THE INVENTION
  • In one of many possible embodiments, the present invention provides a method of scanning frequency coefficients in a manner that is efficient for interlaced digital video content. The digital video content comprises a stream of pictures, slices, or macroblocks which can each be intra, predicted or bi-predicted pictures. The pictures, slices, or macroblocks comprise blocks of pixels. The method comprises scanning frequency coefficients from each of the block's two dimensional array of frequency coefficients in a manner that is vertically biased.
  • Another embodiment of the present invention provides an encoder that scans frequency coefficients in a manner that is efficient for interlaced digital video content. The digital video content comprises a stream of pictures, slices, or macroblocks which can each be intra, predicted or bi-predicted pictures. The pictures comprise blocks of pixels. The method comprises scanning frequency coefficients from each of the block's two dimensional array of frequency coefficients in a manner that is vertically biased.
  • Another embodiment of the present invention provides a decoder that scans a one dimensional array of one dimensional array frequency coefficients and produces a two dimensional array of two dimensional array frequency coefficients in a manner that is efficient for interlaced digital video content. The digital video content comprises a stream of pictures, slices, or macroblocks which can each be intra, predicted or bi-predicted pictures. The pictures comprise blocks of pixels. The decoder uses a method of scanning that comprises assigning one dimensional array frequency coefficient values of one dimensional array frequency coefficients in a one dimensional array to corresponding two dimensional array frequency coefficients in a two dimensional array of two dimensional array frequency coefficients.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • The accompanying drawings illustrate various embodiments of the present invention and are a part of the specification. Together with the following description, the drawings demonstrate and explain the principles of the present invention. The illustrated embodiments are examples of the present invention and do not limit the scope of the invention.
  • FIG. 1 is prior art and illustrates two variations of zig-zag scanning paths and a non-zig-zag scanning path that are currently used to scan a four by four array of frequency coefficients.
  • FIG. 2 illustrates an exemplary sequence of three types of pictures according to an embodiment of the present invention, as defined by an exemplary video coding standard such as the MPEG-4 Part 10 AVC/H.264 standard.
  • FIG. 3 shows that each picture is preferably divided into one or more slices consisting of macroblocks.
  • FIG. 4 shows that a macroblock can be further divided into smaller sized blocks.
  • FIG. 5 illustrates a preferable method of transform domain coding according to an embodiment of the present invention.
  • FIG. 6 shows a preferable scanning path for a four by four pixel block's frequency coefficient array according to an embodiment of the present invention.
  • FIG. 7 shows a preferable scanning path for a four by eight pixel block's frequency coefficient array according to an embodiment of the present invention.
  • FIG. 8 shows a preferable scanning path for an eight by four pixel block's frequency coefficient array according to an embodiment of the present invention.
  • FIG. 9 shows a preferable scanning path for an eight by eight pixel block's frequency coefficient array according to an embodiment of the present invention.
  • Throughout the drawings, identical reference numbers designate similar, but not necessarily identical, elements.
  • DETAILED DESCRIPTION OF EMBODIMENTS OF THE INVENTION
  • The present invention provides methods for scanning frequency coefficients from a two dimensional array of frequency coefficients. These can be used in any digital video coding algorithm. In particular, they can be implemented in the MPEG-4 Part 10 AVC/H.264 video coding standard.
  • As noted above, the MPEG-4 Part 10 AVC/H.264 standard is a new standard for encoding and compressing digital video content. The documents establishing the MPEG-4 Part 10 AVC/H.264 standard are hereby incorporated by reference, including the “Joint Final Committee Draft (JFCD) of Joint Video Specification” issued on Aug. 10, 2002 by the Joint Video Team (JVT). (ITU-T Rec. H.264 & ISO/IEC 14496-10 AVC). The JVT consists of experts from MPEG and ITU-T. Due to the public nature of the MPEG-4 Part 10 AVC/H.264 standard, the present specification will not attempt to document all the existing aspects of MPEG-4 Part 10 AVC/H.264 video coding, relying instead on the incorporated specifications of the standard.
  • The current method can be used in any general digital video coding algorithm or system requiring coefficient scanning. It can be modified and used to handle the extraction of frequency coefficients from a two dimensional array of frequency coefficients as best serves a particular standard or application.
  • Using the drawings, the preferred embodiments of the present invention will now be explained.
  • As shown in FIG. 2, there are preferably three types of pictures that can be used in the video coding method. Three types of pictures are defined to support random access to stored digital video content while exploring the maximum redundancy reduction using temporal prediction with motion compensation. The three types of pictures are intra (I) pictures (200), predicted (P) pictures (202 a,b), and bi-predicted (B) pictures (201 a-d). An I picture (200) provides an access point for random access to stored digital video content. Intra pictures (200) are encoded without referring to reference pictures and can be encoded with moderate compression.
  • A predicted picture (202 a,b) is encoded using an I, P, or B picture that has already been encoded as a reference picture. The reference picture can be in either the forward or backward temporal direction in relation to the P picture that is being encoded. The predicted pictures (202 a,b) can be encoded with more compression than the intra pictures (200).
  • A bi-predicted picture (201 a-d) is encoded using two temporal reference pictures. An embodiment of the present invention is that the two temporal reference pictures can be in the same or different temporal direction in relation to the B picture that is being encoded. Bi-predicted pictures (201 a-d) can be encoded with the most compression out of the three picture types.
  • Reference relationships (203) between the three picture types are illustrated in FIG. 2. For example, the P picture (202 a) can be encoded using the encoded I picture (200) as its reference picture. The B pictures (201 a-d) can be encoded using the encoded I picture (200) and the encoded P pictures (202 a,b) is its reference pictures, as shown in FIG. 2. Under the principles of an embodiment of the present invention, encoded B pictures (201 a-d) can also be used as reference pictures for other B pictures that are to be encoded. For example, the B picture (201 c) of FIG. 2 is shown with two other B pictures (201 b and 201 d) as its reference pictures.
  • The number and particular order of the I (200), B (201 a-d), and P (202 a,b) pictures shown in FIG. 2 are given as an exemplary configuration of pictures, but are not necessary to implement the present invention. Any number of I, B, and P pictures can be used in any order to best serve a particular application. The MPEG-4 Part 10 AVC/H.264 standard does not impose any limit to the number of B pictures between two reference pictures nor does it limit the number of pictures between two I pictures.
  • FIG. 3 shows that each picture (300) is preferably divided into slices consisting of macroblocks. A slice (301) is a group of macroblocks and a macroblock (302) is a rectangular group of pixels. As shown in FIG. 3, a preferable macroblock (302) size is 16 by 16 pixels.
  • Each interlaced picture, slice, or macroblock in a stream of pictures that is to be encoded can be encoded using adaptive frame/field (AFF) coding. In AFF coding, each picture, slice, or macroblock in a stream of pictures that is to be encoded is encoded in either frame mode or in field mode, regardless of the encoding mode of the previous picture, slice, or macroblock. If a picture, slice, or macroblock is encoded in frame mode, the two fields that make up an interlaced frame are coded jointly. Conversely, if a picture, slice, or macroblock is encoded in field mode, the two fields that make up an interlaced frame are coded separately. The encoder determines which type of coding, frame mode coding or field mode coding, is more advantageous for each picture, slice, or macroblock and chooses that type of encoding for the picture, slice, or macroblock. The exact method of choosing between frame mode and field mode is not critical to the present invention and will not be detailed herein.
  • FIG. 4 shows that a macroblock can be further divided into smaller sized blocks. For example, as shown in FIG. 4, a macroblock can be further divided into block sizes of 16 by 8 pixels (400), 8 by 16 pixels (401), or 8 by 8 pixels (402). A block size of 8 by 8 pixels (402) can be further subdivided into block sizes of 8 by 4 pixels (403), 4 by 8 pixels (404), or 4 by 4 pixels (405).
  • A picture that is to be encoded using transform domain coding can sometimes be encoded with better picture quality or more compression efficiency if the transform domain coding is performed on the smaller block sizes of FIG. 4 rather than on the macroblock itself. Some digital video coding algorithms allow for variable block size transforms. Variable block size transform coding means that the transform domain coding can be performed on blocks of varying sizes. For example, transform domain coding can be performed on 4 by 4 pixel blocks (405) for a particular macroblock and on 4 by 8 pixel blocks (404) for a different macroblock. Transform domain coding on the following block sizes can be implemented according to an embodiment of the present invention: 4 by 4 pixels (405), 8 by 4 pixels (403), 4 by 8 pixels (404), and 8 by 8 pixels (402).
  • FIG. 5 illustrates a preferable method of transform domain coding according to an embodiment of the present invention. As shown in FIG. 5, a transform (500) is performed on a block's N by M array of luminance or chrominance coefficients. The N by M array of luminance or chrominance coefficients comprises the coefficients that represent the luminance or chrominance of the pixels in the N by M block. The N by M array of luminance or chrominance coefficients can be a 4 by 4 array, 4 by 8 array, 8 by 4 array, or an 8 by 8 array under principles of an embodiment of the present invention.
  • The discrete cosine transform (DCT) is an example of a transform and is similar to the discrete Fourier transform. The DCT transforms the N by M array of luminance or chrominance coefficients from the spatial domain to the frequency domain. The general equation for a two dimensional, N by M, DCT can be defined by the following equation: F ( u , v ) = ( 2 N ) 1 2 ( 2 M ) 1 2 i = 0 N - 1 j = 0 M - 1 Λ ( i ) · Λ ( j ) · cos [ π · u 2 · N ( 2 i + 1 ) ] cos [ π · v 2. M ( 2 j + 1 ) ] . f ( i , j ) where Λ ( ξ ) = { 1 2 for ξ = 0 1 otherwise .
  • In the above equations, f(i,j) represents the luminance or chrominance value of the pixel in column i and row j of the N by M array of luminance coefficients. F(u,v) is the corresponding frequency coefficient in column u and row v in the N by M array of frequency coefficients. For most images, much of the signal energy lies at low frequencies. In general, the low frequency coefficients appear in the upper left corner of the N by M array of frequency coefficients. The high frequency coefficients usually appear in the lower right corner of the N by M array of frequency coefficients.
  • After the luminance or chrominance coefficients have been converted to frequency coefficients by the transform (500), the frequency coefficients are quantized (501), as shown in FIG. 5. Quantization (501) is performed on the frequency coefficients so that the number of bits that must be encoded is reduced. This allows for more compression.
  • One example of the quantization process (501) consists of dividing each F(u,v) by a constant, q(u,v). A table of q(u,v) is called a quantization table. An exemplary, but not exclusive, quantization table for an 8 by 8 array of frequency coefficients is shown in Table 1 below:
    TABLE 1
    Eight by eight quantization table
    16 11 10 16 24 40 51 61
    12 12 14 19 26 58 60 55
    14 13 16 24 40 57 69 56
    14 17 22 29 51 87 80 62
    18 22 37 56 68 109 103 77
    24 36 55 64 81 104 113 92
    49 64 78 87 103 121 120 101
    72 92 95 98 112 100 103 99
  • Similar quantization tables can be constructed for the other sizes of the N by M frequency coefficient array. As shown in exemplary quantization table, the constants that divide each F(u,v) are larger in value in the lower right corner of the quantization table than they are in the upper left corner. An important result of the quantization process is that many of the high frequency coefficients are quantized to a value of zero.
  • Returning to FIG. 5, the quantized frequency coefficients are scanned (502) by the encoder to convert them from a two dimensional array of quantized frequency coefficients to a one dimensional array of quantized frequency coefficients. Preferable scanning paths will be described in more detail in connection with FIGS. 6-9.
  • After the quantized frequency coefficients have been scanned into the one dimensional array, they can be encoded (503), as shown in FIG. 5. An exemplary encoding (503) process preferably encodes the quantized frequency coefficients in the one dimensional array into a sequence of run-level pairs. The run is defined as the distance between two non-zero quantized frequency coefficients in the one dimensional array. The level is the non-zero value immediately following a sequence of zeros. This type of coding produces a compact representation of the quantized frequency coefficients because a large number of the quantized coefficients have a value of zero. The run-level pairs can be further compressed using entropy coding. One method of entropy coding is described in detail in the MPEG-4 Part 10 AVC/H.264 standard. MPEG-4 Part 10 AVC/H.264 also uses context-adaptive binary arithmetic coding (CABAC).
  • Preferable scanning paths for scanning the frequency coefficients in the two dimensional array into a one dimensional array of frequency coefficients will now be explained in connection with FIGS. 6-9. An ideal scanning path in any block size would group all the non-zero quantized frequency coefficients together in the one dimensional array followed by all the quantized frequency coefficients that have values of zero. However, in practice, a preferable scanning path can only group together a majority of non-zero quantized frequency coefficients. For interlaced material, the non-zero quantized frequency coefficients tend to be concentrated along the vertical direction and a vertically biased scanning path may be preferable.
  • FIGS. 6-9 show preferable scanning path orders for a 4 by 4 pixel block, 4 by 8 pixel block, 8 by 4 pixel block, and an 8 by 8 pixel block, respectively. In the following descriptions, n=0, 1, . . . ,N-1, where n is a variable that represents the pixel column number in the block as well as the corresponding frequency coefficient column number in the corresponding frequency coefficient array. N is the total number of pixel columns in the block and the total number of frequency coefficient columns in the frequency coefficient array. The left-most column number is 0 and the right-most column number is N-1. Likewise, m=0,1, , . . . ,M-1, where m is a variable that represents the pixel row number in the block as well as the corresponding frequency coefficient row number in the corresponding frequency coefficient row number in the corresponding frequency coefficient array. M is the total number of pixel rows in the block and the total number of frequency coefficient rows in the frequency coefficient array. The top row number is 0 and the bottom row number is M-1. These preferable scanning paths were derived using experimentation and statistical techniques. The scanning paths of FIGS. 6-9 are skewed, or biased, in the vertical direction and result in more compression than traditional zig-zag scanning paths in many applications, including interlaced video encoding.
  • FIG. 6 shows a preferable scanning path for a 4 by 4 pixel block's frequency coefficient array, where N=4 and M=4. The numbers in FIG. 6 represent the frequency coefficient scanning order. For example, the frequency coefficient corresponding to the top left pixel is the first frequency coefficient to get scanned and is thus labeled with a 0. The frequency coefficient corresponding to the bottom right pixel is the last frequency coefficient to get scanned and is thus labeled with a 15. Table 2 lists the frequency coefficient scanning order and the corresponding values for n and m.
    TABLE 2
    Four by four pixel block scanning order
    Frequency
    Coefficient
    Scanning
    Order n m
     0 0 0
     1 0 1
     2 1 0
     3 0 2
     4 0 3
     5 1 1
     6 1 2
     7 1 3
     8 2 0
     9 2 1
    10 2 2
    11 2 3
    12 3 0
    13 3 1
    14 3 2
    15 3 3
  • FIG. 7 shows a preferable scanning path for a 4 by 8 pixel block's frequency coefficient array, where N=4 and M=8. The numbers in FIG. 7 represent the frequency coefficient scanning order. For example, the frequency coefficient corresponding to the top left pixel is the first frequency coefficient to get scanned and is thus labeled with a 0. The frequency coefficient corresponding to the bottom right pixel is the last frequency coefficient to get scanned and is thus labeled with a 31. Table 3 lists the frequency coefficient scanning order and the corresponding values for n and m.
    TABLE 3
    Four by eight pixel block scanning order
    Frequency
    Coefficient
    Scanning
    Order n m
     0 0 0
     1 0 1
     2 0 2
     3 0 3
     4 1 0
     5 1 1
     6 1 2
     7 0 4
     8 0 5
     9 0 6
    10 0 7
    11 1 3
    12 2 0
    13 2 1
    14 2 2
    15 1 4
    16 1 5
    17 1 6
    18 1 7
    19 2 3
    20 3 0
    21 3 1
    22 3 2
    23 2 4
    24 2 5
    25 2 6
    26 2 7
    27 3 3
    28 3 4
    29 3 5
    30 3 6
    31 3 7
  • FIG. 8 shows a preferable scanning path for an 8 by 4 pixel block's frequency coefficient array, where N=8 and M=4. The numbers in FIG. 8 represent the frequency coefficient scanning order. For example, the frequency coefficient corresponding to the top left pixel is the front frequency coefficient to get scanned and is thus labeled with a 0. The frequency coefficient corresponding to the bottom right pixel is the last frequency coefficient to get scanned and is thus labeled with a 31. Table 4 lists the frequency coefficient scanning order and the corresponding values for n and m.
    TABLE 4
    Eight by four pixel block scanning order
    Frequency
    Coefficient
    Scanning
    Order n m
     0 0 0
     1 0 1
     2 1 0
     3 0 2
     4 0 3
     5 1 1
     6 2 0
     7 1 2
     8 1 3
     9 2 1
    10 3 0
    11 2 2
    12 2 3
    13 3 1
    14 4 0
    15 3 2
    16 3 3
    17 4 1
    18 5 0
    19 4 2
    20 4 3
    21 5 1
    22 6 0
    23 5 2
    24 5 3
    25 6 1
    26 7 0
    27 6 2
    28 6 3
    29 7 1
    30 7 2
    31 7 3
  • FIG. 9 shows a preferable scanning path for an 8 by 8 pixel block's frequency coefficient array, where N=8 and M=8. The numbers in FIG. 9 represent the frequency coefficient scanned order. For example, the frequency coefficient corresponding to the top left pixel is the first frequency coefficient to get scanned and is thus labeled with a 0. the frequency coefficient corresponding to the bottom right pixel is the last frequency coefficient to get scanned and is thus labeled with a 63. Table 5 lists the frequency coefficient scanning order and the corresponding values for n and m.
    TABLE 5
    Eight by eight pixel block scanning order
    Frequency
    Coefficient
    Scanning
    Order n m
     0 0 0
     1 0 1
     2 0 2
     3 1 0
     4 1 1
     5 0 3
     6 0 4
     7 1 2
     8 2 0
     9 1 3
    10 0 5
    11 0 6
    12 0 7
    13 1 4
    14 2 1
    15 3 0
    16 2 2
    17 1 5
    18 1 6
    19 1 7
    20 2 3
    21 3 1
    22 4 0
    23 3 2
    24 2 4
    25 2 5
    26 2 6
    27 2 7
    28 3 3
    29 4 1
    30 5 0
    31 4 2
    32 3 4
    33 3 5
    34 3 6
    35 3 7
    36 4 3
    37 5 1
    38 6 0
    39 5 2
    40 4 4
    41 4 5
    42 4 6
    43 4 7
    44 5 3
    45 6 1
    46 6 2
    47 5 4
    48 5 5
    49 5 6
    50 5 7
    51 6 3
    52 7 0
    53 7 1
    54 6 4
    55 6 5
    56 6 6
    57 6 7
    58 7 2
    59 7 3
    60 7 4
    61 7 5
    62 7 6
    63 7 7
  • The preceding description has been presented only to illustrate and describe embodiments of invention. It is not intended to be exhaustive or to limit the invention to any precise form disclosed. Many modifications and variations are possible in light of the above teaching.
  • The foregoing embodiments were chosen and described in order to illustrate principles of the invention and some practical applications. The preceding description enables others skilled in the art to utilize the invention in various embodiments and with the various modifications as are suited to the particular use contemplated. It is intended that the scope of the invention be defined by the following claims.

Claims (20)

1. A method of transform-based encoding of digital video content, said digital video content comprising a stream of pictures, slices, or macroblocks which can each be intra, predicted or bi-predicted pictures, slices, or macroblocks, in the form of blocks of pixels forming a two dimensional array of two dimensional array frequency coefficients, said method comprising scanning said two dimensional array frequency coefficients, from each of said blocks, in a manner that is vertically biased and producing a one dimensional array of one dimensional array frequency coefficients.
2. The method of claim 1, wherein if said two dimensional array of said two dimensional array frequency coefficients comprises 8 columns of frequency coefficients and 8 rows of frequency coefficients, said method further comprises:
representing said columns with a variable n=0, 1, 2, 3, 4, 5, 6, or 7, wherein n=0 is at least one of a first or leftmost column, n=1 is a second column, n=2 is a third column, n=3 is a fourth column, n=4 is a fifth column, n=5 is a sixth column, n=6 is a seventh column, and n=7 is at least one of an eighth or rightmost column;
representing said rows with a variable m=0, 1, 2, 3, 4, 5, 6, 7, or 8, wherein m=0 is at least one of a first or top row, m=1 is a second row, m=2 is a third row, m=3 is a fourth row, m=4 is a fifth row, m=5 is a sixth row, m=6 is a seventh row, and m=7 is at least one of an eighth or bottom row; and
scanning said two dimensional array of said two dimensional array frequency coefficients in a scanning order that is vertically biased, said scanning order starting at 0 and ending at 63 and producing said one dimensional array of said one dimensional array frequency coefficients.
3. The method of claim 2, wherein said step of scanning said two dimensional array frequency coefficients in a vertically biased manner comprises:
assigning a scanning order=0 for a two dimensional array frequency coefficient located at n=0 and m=0;
assigning a scanning order=1 for a two dimensional array frequency coefficient located at n=0 and m=1;
assigning a scanning order=2 for a two dimensional array frequency coefficient located at n=0 and m=2;
assigning a scanning order=3 for a two dimensional array frequency coefficient located at n=1 and m=0;
assigning a scanning order=4 for a two dimensional array frequency coefficient located at n=1 and m=1;
assigning a scanning order=5 for a two dimensional array frequency coefficient located at n=0 and m=3;
assigning a scanning order=6 for a two dimensional array frequency coefficient located at n=0 and m=4;
assigning a scanning order=7 for a two dimensional array frequency coefficient located at n=1 and m=2;
assigning a scanning order=8 for a two dimensional array frequency coefficient located at n=2 and m=0;
assigning a scanning order=9 for a two dimensional array frequency coefficient located at n=1 and m=3;
assigning a scanning order=10 for a two dimensional array frequency coefficient located at n=0 and m=5;
assigning a scanning order=11 for a two dimensional array frequency coefficient located at n=0 and m=6;
assigning a scanning order=12 for a two dimensional array frequency coefficient located at n=0 and m=7;
assigning a scanning order=13 for a two dimensional array frequency coefficient located at n=1 and m=4;
assigning a scanning order=14 for a two dimensional array frequency coefficient located at n=2 and m=1;
assigning a scanning order=15 for a two dimensional array frequency coefficient located at n=3 and m=0;
assigning a scanning order=16 for a two dimensional array frequency coefficient located at n=2 and m=2;
assigning a scanning order=17 for a two dimensional array frequency coefficient located at n=1 and m=5;
assigning a scanning order=18 for a two dimensional array frequency coefficient located at n=1 and m=6;
assigning a scanning order=19 for a two dimensional array frequency coefficient located at n=1 and m=7;
assigning a scanning order=20 for a two dimensional array frequency coefficient located at n=2 and m=3;
assigning a scanning order=21 for a two dimensional array frequency coefficient located at n=3 and m=1;
assigning a scanning order=22 for a two dimensional array frequency coefficient located at n=4 and m=0;
assigning a scanning order=23 for a two dimensional array frequency coefficient located at n=3 and m=2;
assigning a scanning order=24 for a two dimensional array frequency coefficient located at n=2 and m=4;
assigning a scanning order=25 for a two dimensional array frequency coefficient located at n=2 and m=5;
assigning a scanning order=26 for a two dimensional array frequency coefficient located at n=2 and m=6;
assigning a scanning order=27 for a two dimensional array frequency coefficient located at n=2 and m=7;
assigning a scanning order=28 for a two dimensional array frequency coefficient located at n=3 and m=3;
assigning a scanning order=29 for a two dimensional array frequency coefficient located at n=4 and m=1;
assigning a scanning order=30 for a two dimensional array frequency coefficient located at n=5 and m=0;
assigning a scanning order=31 for a two dimensional array frequency coefficient located at n=4 and m=2;
assigning a scanning order=32 for a two dimensional array frequency coefficient located at n=3 and m=4;
assigning a scanning order=33 for a two dimensional array frequency coefficient located at n=3 and m=5;
assigning a scanning order=34 for a two dimensional array frequency coefficient located at n=3 and m=6;
assigning a scanning order=35 for a two dimensional array frequency coefficient located at n=3 and m=7;
assigning a scanning order=36 for a two dimensional array frequency coefficient located at n=4 and m=3;
assigning a scanning order=37 for a two dimensional array frequency coefficient located at n=5 and m=1;
assigning a scanning order=38 for a two dimensional array frequency coefficient located at n=6 and m=0;
assigning a scanning order=39 for a two dimensional array frequency coefficient located at n=5 and m=2;
assigning a scanning order=40 for a two dimensional array frequency coefficient located at n=4 and m=4;
assigning a scanning order=41 for a two dimensional array frequency coefficient located at n=4 and m=5;
assigning a scanning order=42 for a two dimensional array frequency coefficient located at n=4 and m=6;
assigning a scanning order=43 for a two dimensional array frequency coefficient located at n=4 and m=7;
assigning a scanning order=44 for a two dimensional array frequency coefficient located at n=5 and m=3;
assigning a scanning order=45 for a two dimensional array frequency coefficient located at n=6 and m=1;
assigning a scanning order=46 for a two dimensional array frequency coefficient located at n=6 and m=2;
assigning a scanning order=47 for a two dimensional array frequency coefficient located at n=5 and m=4;
assigning a scanning order=48 for a two dimensional array frequency coefficient located at n=5 and m=5;
assigning a scanning order=49 for a two dimensional array frequency coefficient located at n=5 and m=6;
assigning a scanning order=50 for a two dimensional array frequency coefficient located at n=5 and m=7;
assigning a scanning order=51 for a two dimensional array frequency coefficient located at n=6 and m=3;
assigning a scanning order=52 for a two dimensional array frequency coefficient located at n=7 and m=0;
assigning a scanning order=53 for a two dimensional array frequency coefficient located at n=7 and m=1;
assigning a scanning order=54 for a two dimensional array frequency coefficient located at n=6 and m=4;
assigning a scanning order=55 for a two dimensional array frequency coefficient located at n=6 and m=5;
assigning a scanning order=56 for a two dimensional array frequency coefficient located at n=6 and m=6;
assigning a scanning order=57 for a two dimensional array frequency coefficient located at n=6 and m=7;
assigning a scanning order=58 for a two dimensional array frequency coefficient located at n=7 and m=2;
assigning a scanning order=59 for a two dimensional array frequency coefficient located at n=7 and m=3;
assigning a scanning order=60 for a two dimensional array frequency coefficient located at n=7 and m=4;
assigning a scanning order=61 for a two dimensional array frequency coefficient located at n=7 and m=5;
assigning a scanning order=62 for a two dimensional array frequency coefficient located at n=7 and m=6; and
assigning a scanning order=63 for a two dimensional array frequency coefficient located at n=7 and m=7.
4. A device comprising an encoder for transform-based encoding of digital video content, said digital video content comprising a stream of pictures, slices, or macroblocks which can be intra, predicted or bi-predicted pictures, slices, or macroblocks, in the form of blocks of pixels forming a two dimensional array of two dimensional array frequency coefficients, wherein said encoder scans said two dimensional array frequency coefficients, from each of said blocks, in a manner that is vertically biased and producing a one dimensional array of one dimensional array frequency coefficients.
5. The device of claim 4, wherein if said two dimensional array of said two dimensional array frequency coefficients comprises eight columns of frequency coefficients and eight rows of frequency coefficients, said encoder:
represents said columns with a variable n=0, 1, 2, 3, 4, 5, 6, or 7, wherein n=0 is at least one of a first or leftmost column, n=1 is a second column, n=2 is a third column, n=3 is a fourth column, n=4 is a fifth column, n=5 is a sixth column, n=6 is a seventh column, and n=7 is at least one of an eighth or rightmost column; and
represents said rows with a variable m=0, 1, 2, 3, 4, 5, 6, 7, or 8, wherein m=0 is at least one of a first or top row, m=1 is a second row, m=2 is a third row, m=3 is a fourth row, m=4 is a fifth row, m=5 is a sixth row, m=6 is a seventh row, and m=7 is at least one of an eighth or bottom row;
wherein said encoder scans said two dimensional array of said two dimensional array frequency coefficients in a scanning order that is vertically biased, said scanning order starting at 0 and ending at 63 and producing said one dimensional array of said one dimensional array frequency coefficients.
6. The device of claim 5, wherein in scanning said two dimensional array frequency coefficients in a vertically biased manner said encoder:
assigns a scanning order=0 for a two dimensional array frequency coefficient located at n=0 and m=0;
assigns a scanning order=1 for a two dimensional array frequency coefficient located at n=0 and m=1;
assigns a scanning order=2 for a two dimensional array frequency coefficient located at n=0 and m=2;
assigns a scanning order=3 for a two dimensional array frequency coefficient located at n=1 and m=0;
assigns a scanning order=4 for a two dimensional array frequency coefficient located at n=1 and m=1;
assigns a scanning order=5 for a two dimensional array frequency coefficient located at n=0 and m=3;
assigns a scanning order=6 for a two dimensional array frequency coefficient located at n=0 and m=4;
assigns a scanning order=7 for a two dimensional array frequency coefficient located at n=1 and m=2;
assigns a scanning order=8 for a two dimensional array frequency coefficient located at n=2 and m=0;
assigns a scanning order=9 for a two dimensional array frequency coefficient located at n=1 and m=3;
assigns a scanning order=10 for a two dimensional array frequency coefficient located at n=0 and m=5;
assigns a scanning order=11 for a two dimensional array frequency coefficient located at n=0 and m=6;
assigns a scanning order=12 for a two dimensional array frequency coefficient located at n=0 and m=7;
assigns a scanning order=13 for a two dimensional array frequency coefficient located at n=1 and m=4;
assigns a scanning order=14 for a two dimensional array frequency coefficient located at n=2 and m=1;
assigns a scanning order=15 for a two dimensional array frequency coefficient located at n=3 and m=0;
assigns a scanning order=16 for a two dimensional array frequency coefficient located at n=2 and m=2;
assigns a scanning order=17 for a two dimensional array frequency coefficient located at n=1 and m=5;
assigns a scanning order=18 for a two dimensional array frequency coefficient located at n=1 and m=6;
assigns a scanning order=19 for a two dimensional array frequency coefficient located at n=1 and m=7;
assigns a scanning order=20 for a two dimensional array frequency coefficient located at n=2 and m=3;
assigns a scanning order=21 for a two dimensional array frequency coefficient located at n=3 and m=1;
assigns a scanning order=22 for a two dimensional array frequency coefficient located at n=4 and m=0;
assigns a scanning order=23 for a two dimensional array frequency coefficient located at n=3 and m=2;
assigns a scanning order=24 for a two dimensional array frequency coefficient located at n=2 and m=4;
assigns a scanning order=25 for a two dimensional array frequency coefficient located at n=2 and m=5;
assigns a scanning order=26 for a two dimensional array frequency coefficient located at n=2 and m=6;
assigns a scanning order=27 for a two dimensional array frequency coefficient located at n=2 and m=7;
assigns a scanning order=28 for a two dimensional array frequency coefficient located at n=3 and m=3;
assigns a scanning order=29 for a two dimensional array frequency coefficient located at n=4 and m=1;
assigns a scanning order=30 for a two dimensional array frequency coefficient located at n=5 and m=0;
assigns a scanning order=31 for a two dimensional array frequency coefficient located at n=4 and m=2;
assigns a scanning order=32 for a two dimensional array frequency coefficient located at n=3 and m=4;
assigns a scanning order=33 for a two dimensional array frequency coefficient located at n=3 and m=5;
assigns a scanning order=34 for a two dimensional array frequency coefficient located at n=3 and m=6;
assigns a scanning order=35 for a two dimensional array frequency coefficient located at n=3 and m=7;
assigns a scanning order=36 for a two dimensional array frequency coefficient located at n=4 and m=3;
assigns a scanning order=37 for a two dimensional array frequency coefficient located at n=5 and m=1;
assigns a scanning order=38 for a two dimensional array frequency coefficient located at n=6 and m=0;
assigns a scanning order=39 for a two dimensional array frequency coefficient located at n=5 and m=2;
assigns a scanning order=40 for a two dimensional array frequency coefficient located at n=4 and m=4;
assigns a scanning order=41 for a two dimensional array frequency coefficient located at n=4 and m=5;
assigns a scanning order=42 for a two dimensional array frequency coefficient located at n=4 and m=6;
assigns a scanning order=43 for a two dimensional array frequency coefficient located at n=4 and m=7;
assigns a scanning order=44 for a two dimensional array frequency coefficient located at n=5 and m=3;
assigns a scanning order=45 for a two dimensional array frequency coefficient located at n=6 and m=1;
assigns a scanning order=46 for a two dimensional array frequency coefficient located at n=6 and m=2;
assigns a scanning order=47 for a two dimensional array frequency coefficient located at n=5 and m=4;
assigns a scanning order=48 for a two dimensional array frequency coefficient located at n=5 and m=5;
assigns a scanning order=49 for a two dimensional array frequency coefficient located at n=5 and m=6;
assigns a scanning order=50 for a two dimensional array frequency coefficient located at n=5 and m=7;
assigns a scanning order=51 for a two dimensional array frequency coefficient located at n=6 and m=3;
assigns a scanning order=52 for a two dimensional array frequency coefficient located at n=7 and m=0;
assigns a scanning order=53 for a two dimensional array frequency coefficient located at n=7 and m=1;
assigns a scanning order=54 for a two dimensional array frequency coefficient located at n=6 and m=4;
assigns a scanning order=55 for a two dimensional array frequency coefficient located at n=6 and m=5;
assigns a scanning order=56 for a two dimensional array frequency coefficient located at n=6 and m=6;
assigns a scanning order=57 for a two dimensional array frequency coefficient located at n=6 and m=7;
assigns a scanning order=58 for a two dimensional array frequency coefficient located at n=7 and m=2;
assigns a scanning order=59 for a two dimensional array frequency coefficient located at n=7 and m=3;
assigns a scanning order=60 for a two dimensional array frequency coefficient located at n=7 and m=4;
assigns a scanning order=61 for a two dimensional array frequency coefficient located at n=7 and m=5;
assigns a scanning order=62 for a two dimensional array frequency coefficient located at n=7 and m=6; and
assigns a scanning order=63 for a two dimensional array frequency coefficient located at n=7 and m=7.
7. A device comprising a decoder for transform-based decoding of encoded digital video content, said digital video content comprising a stream of pictures, slices, or macroblocks which can be intra, predicted or bi-predicted pictures, slices, or macroblocks, in the form of blocks of pixels forming a one dimensional array of one dimensional array frequency coefficients, wherein said decoder scans said one dimensional array frequency coefficients in a numerical sequential order, producing a two dimensional array of two dimensional array frequency coefficients.
8. The device of claim 7, wherein if said one dimensional array of said one dimensional array frequency coefficients comprises sixty-four one dimensional array frequency coefficients, said decoder:
represents said sixty-four one dimensional array frequency coefficients with a variable p=0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, in a numerical sequential order, wherein a first one dimensional array frequency coefficient is represented by p=0 and a sixty-fourth one dimensional array frequency coefficient is represented by p=63;
wherein said decoder scans said one dimensional array of said one dimensional array frequency coefficients in said numerical sequential order, said scanning order starting at p=0 and ending at p=63 and producing said two dimensional array of said two dimensional array frequency coefficients.
9. The device of claim 8, wherein if said two dimensional array of said two dimensional array frequency coefficients comprises 8 columns of frequency coefficients and 8 rows of frequency coefficients, wherein said columns are represented with a variable n=0, 1, 2, 3, 4, 5, 6, or 7, wherein n=0 is at least one of a first or leftmost column, n=1 is a second column, n=2 is a third column, n=3 is a fourth column, n=4 is a fifth column, n=5 is a sixth column, n=6 is a seventh column, and n=7. is at least one of an eighth or rightmost column, and wherein said rows are represented with a variable m=0, 1, 2, 3, 4, 5, 6, or 7, wherein m=0 is at least one of a first or top row, m=1 is a second row, m=2 is a third row, m=3 is a fourth row, m=4 is a fifth row, m=5 is a sixth row, m=6 is a seventh row, and m=7 is at least one of an eighth or bottom row, wherein in scanning said one dimensional array frequency coefficients said decoder:
assigns a two dimensional array frequency coefficient located at n=0 and m=0 a value of said one dimensional array frequency coefficient located at p=0;
assigns a two dimensional array frequency coefficient located at n=0 and m=1 a value of said one dimensional array frequency coefficient located at p=1;
assigns a two dimensional array frequency coefficient located at n=0 and m=2 a value of said one dimensional array frequency coefficient located at p=2;
assigns a two dimensional array frequency coefficient located at n=1 and m=0 a value of said one dimensional array frequency coefficient located at p=3;
assigns a two dimensional array frequency coefficient located at n=1 and m=1 a value of said one dimensional array frequency coefficient located at p=4;
assigns a two dimensional array frequency coefficient located at n=0 and m=3 a value of said one dimensional array frequency coefficient located at p=5;
assigns a two dimensional array frequency coefficient located at n=0 and m=4 a value of said one dimensional array frequency coefficient located at p=6;
assigns a two dimensional array frequency coefficient located at n=1 and m=2 a value of said one dimensional array frequency coefficient located at p=7;
assigns a two dimensional array frequency coefficient located at n=2 and m=0 a value of said one dimensional array frequency coefficient located at p=8;
assigns a two dimensional array frequency coefficient located at n=1 and m=3 a value of said one dimensional array frequency coefficient located at p=9;
assigns a two dimensional array frequency coefficient located at n=0 and m=5 a value of said one dimensional array frequency coefficient located at p=10;
assigns a two dimensional array frequency coefficient located at n=0 and m=6 a value of said one dimensional array frequency coefficient located at p=11;
assigns a two dimensional array frequency coefficient located at n=0 and m=7 a value of said one dimensional array frequency coefficient located at p=12;
assigns a two dimensional array frequency coefficient located at n=1 and m=4 a value of said one dimensional array frequency coefficient located at p=13;
assigns a two dimensional array frequency coefficient located at n=2 and m=1 a value of said one dimensional array frequency coefficient located at p=14;
assigns a two dimensional array frequency coefficient located at n=3 and m=0 a value of said one dimensional array frequency coefficient located at p=15;
assigns a two dimensional array frequency coefficient located at n=2 and m=2 a value of said one dimensional array frequency coefficient located at p=16;
assigns a two dimensional array frequency coefficient located at n=1 and m=5 a value of said one dimensional array frequency coefficient located at p=17;
assigns a two dimensional array frequency coefficient located at n=1 and m=6 a value of said one dimensional array frequency coefficient located at p=18;
assigns a two dimensional array frequency coefficient located at n=1 and m=7 a value of said one dimensional array frequency coefficient located at p=19;
assigns a two dimensional array frequency coefficient located at n=2 and m=3 a value of said one dimensional array frequency coefficient located at p=20;
assigns a two dimensional array frequency coefficient located at n=3 and m=1 a value of said one dimensional array frequency coefficient located at p=21;
assigns a two dimensional array frequency coefficient located at n=4 and m=0 a value of said one dimensional array frequency coefficient located at p=22;
assigns a two dimensional array frequency coefficient located at n=3 and m=2 a value of said one dimensional array frequency coefficient located at p=23;
assigns a two dimensional array frequency coefficient located at n=2 and m=4 a value of said one dimensional array frequency coefficient located at p=24;
assigns a two dimensional array frequency coefficient located at n=2 and m=5 a value of said one dimensional array frequency coefficient located at p=25;
assigns a two dimensional array frequency coefficient located at n=2 and m=6 a value of said one dimensional array frequency coefficient located at p=26;
assigns a two dimensional array frequency coefficient located at n=2 and m=7 a value of said one dimensional array frequency coefficient located at p=27;
assigns a two dimensional array frequency coefficient located at n=3 and m=3 a value of said one dimensional array frequency coefficient located at p=28;
assigns a two dimensional array frequency coefficient located at n=4 and m=1 a value of said one dimensional array frequency coefficient located at p=29;
assigns a two dimensional array frequency coefficient located at n=5 and m=0 a value of said one dimensional array frequency coefficient located at p=30;
assigns a two dimensional array frequency coefficient located at n=4 and m=2 a value of said one dimensional array frequency coefficient located at p=31;
assigns a two dimensional array frequency coefficient located at n=3 and m=4 a value of said one dimensional array frequency coefficient located at p=32;
assigns a two dimensional array frequency coefficient located at n=3 and m=5 a value of said one dimensional array frequency coefficient located at p=33;
assigns a two dimensional array frequency coefficient located at n=3 and m=6 a value of said one dimensional array frequency coefficient located at p=34;
assigns a two dimensional array frequency coefficient located at n=3 and m=7 a value of said one dimensional array frequency coefficient located at p=35;
assigns a two dimensional array frequency coefficient located at n=4 and m=3 a value of said one dimensional array frequency coefficient located at p=36;
assigns a two dimensional array frequency coefficient located at n=5 and m=1 a value of said one dimensional array frequency coefficient located at p=37;
assigns a two dimensional array frequency coefficient located at n=6 and m=0 a value of said one dimensional array frequency coefficient located at p=38;
assigns a two dimensional array frequency coefficient located at n=5 and m=2 a value of said one dimensional array frequency coefficient located at p=39;
assigns a two dimensional array frequency coefficient located at n=4 and m=4 a value of said one dimensional array frequency coefficient located at p=40;
assigns a two dimensional array frequency coefficient located at n=4 and m=5 a value of said one dimensional array frequency coefficient located at p=41;
assigns a two dimensional array frequency coefficient located at n=4 and m=6 a value of said one dimensional array frequency coefficient located at p=42;
assigns a two dimensional array frequency coefficient located at n=4 and m=7 a value of said one dimensional array frequency coefficient located at p=43;
assigns a two dimensional array frequency coefficient located at n=5 and m=3 a value of said one dimensional array frequency coefficient located at p=44;
assigns a two dimensional array frequency coefficient located at n=6 and m=1 a value of said one dimensional array frequency coefficient located at p=45;
assigns a two dimensional array frequency coefficient located at n=6 and m=2 a value of said one dimensional array frequency coefficient located at p=46;
assigns a two dimensional array frequency coefficient located at n=5 and m=4 a value of said one dimensional array frequency coefficient located at p=47;
assigns a two dimensional array frequency coefficient located at n=5 and m=5 a value of said one dimensional array frequency coefficient located at p=48;
assigns a two dimensional array frequency coefficient located at n=5 and m=6 a value of said one dimensional array frequency coefficient located at p=49;
assigns a two dimensional array frequency coefficient located at n=5 and m=7 a value of said one dimensional array frequency coefficient located at p=50; assigns a two dimensional array frequency coefficient located at n=6 and m=3 a value of said one dimensional array frequency coefficient located at p=51;
assigns a two dimensional array frequency coefficient located at n=7 and m=0 a value of said one dimensional array frequency coefficient located at p=52;
assigns a two dimensional array frequency coefficient located at n=7 and m=1 a value of said one dimensional array frequency coefficient located at p=53;
assigns a two dimensional array frequency coefficient located at n=6 and m=4 a value of said one dimensional array frequency coefficient located at p=54;
assigns a two dimensional array frequency coefficient located at n=6 and m=5 a value of said one dimensional array frequency coefficient located at p=55;
assigns a two dimensional array frequency coefficient located at n=6 and m=6 a value of said one dimensional array frequency coefficient located at p=56;
assigns a two dimensional array frequency coefficient located at n=6 and m=7 a value of said one dimensional array frequency coefficient located at p=57;
assigns a two dimensional array frequency coefficient located at n=7 and m=2 a value of said one dimensional array frequency coefficient located at p=58;
assigns a two dimensional array frequency coefficient located at n=7 and m=3 a value of said one dimensional array frequency coefficient located at p=59;
assigns a two dimensional array frequency coefficient located at n=7 and m=4 a value of said one dimensional array frequency coefficient located at p=60;
assigns a two dimensional array frequency coefficient located at n=7 and m=5 a value of said one dimensional array frequency coefficient located at p=61;
assigns a two dimensional array frequency coefficient located at n=7 and m=6 a value of said one dimensional array frequency coefficient located at p=62; and
assigns a two dimensional array frequency coefficient located at n=7 and m=7 a value of said one dimensional array frequency coefficient located at p=63.
10. A transform-based encoding system for encoding digital video content, said digital video content comprising a stream of pictures, slices, or macroblocks which can each be intra, predicted or bi-predicted pictures, slices, or macroblocks, in the form of blocks of pixels forming a two dimensional array of two dimensional array frequency coefficients, said system comprising:
means for scanning said two dimensional array frequency coefficients from each of said blocks in a manner that is vertically biased; and
means for producing a one dimensional array of one dimensional array frequency coefficients.
11. The system of claim 10, wherein if said two dimensional array of said two dimensional array frequency coefficients comprises 8 columns of frequency coefficients and 8 rows of frequency coefficients, said system further comprises:
means for representing said columns with a variable n=0, 1, 2, 3, 4, 5, 6, or 7, wherein n=0 is at least one of a first or leftmost column, n=1 is a second column, n=2 is a third column, n=3 is a fourth column, n=4 is a fifth column, n=5 is a sixth column, n=6 is a seventh column, and n=7 is at least one of an eighth or rightmost column;
means for representing said rows with a variable m=0, 1, 2, 3, 4, 5, 6, or 7, wherein m=0 is at least one of a first or top row, m=1 is a second row, m=2 is a third row, m=3 is a fourth row, m=4 is a fifth row, m=5 is a sixth row, m=6 is a seventh row, and m=7 is at least one of an eighth or bottom row; and
means for scanning said two dimensional array of said two dimensional array frequency coefficients in a scanning order that is vertically biased, said scanning order starting at 0 and ending at 63.
12. The system of claim 11, wherein said means for scanning said two dimensional array frequency coefficients in a vertically biased manner further comprises:
means for assigning a scanning order=0 for a two dimensional array frequency coefficient located at n=0 and m=0;
means for assigning a scanning order=1 for a two dimensional array frequency coefficient located at n=0 and m=1;
means for assigning a scanning order=2 for a two dimensional array frequency coefficient located at n=0 and m=2;
means for assigning a scanning order=3 for a two dimensional array frequency coefficient located at n=1 and m=0;
means for assigning a scanning order=4 for a two dimensional array frequency coefficient located at n=1 and m=1;
means for assigning a scanning order=5 for a two dimensional array frequency coefficient located at n=0 and m=3;
means for assigning a scanning order=6 for a two dimensional array frequency coefficient located at n=0 and m=4;
means for assigning a scanning order=7 for a two dimensional array frequency coefficient located at n=1 and m=2;
means for assigning a scanning order=8 for a two dimensional array frequency coefficient located at n=2 and m=0;
means for assigning a scanning order=9 for a two dimensional array frequency coefficient located at n=1 and m=3;
means for assigning a scanning order=10 for a two dimensional array frequency coefficient located at n=0 and m=5;
means for assigning a scanning order=11 for a two dimensional array frequency coefficient located at n=0 and m=6;
means for assigning a scanning order=12 for a two dimensional array frequency coefficient located at n=0 and m=7;
means for assigning a scanning order=13 for a two dimensional array frequency coefficient located at n=1 and m=4;
means for assigning a scanning order=14 for a two dimensional array frequency coefficient located at n=2 and m=1;
means for assigning a scanning order=15 for a two dimensional array frequency coefficient located at n=3 and m=0;
means for assigning a scanning order=16 for a two dimensional array frequency coefficient located at n=2 and m=2;
means for assigning a scanning order=17 for a two dimensional array frequency coefficient located at n=1 and m=5;
means for assigning a scanning order=18 for a two dimensional array frequency coefficient located at n=1 and m=6;
means for assigning a scanning order=19 for a two dimensional array frequency coefficient located at n=1 and m=7;
means for assigning a scanning order=20 for a two dimensional array frequency coefficient located at n=2 and m=3;
means for assigning a scanning order=21 for a two dimensional array frequency coefficient located at n=3 and m=1;
means for assigning a scanning order=22 for a two dimensional array frequency coefficient located at n=4 and m=0;
means for assigning a scanning order=23 for a two dimensional array frequency coefficient located at n=3 and m=2;
means for assigning a scanning order=24 for a two dimensional array frequency coefficient located at n=2 and m=4;
means for assigning a scanning order=25 for a two dimensional array frequency coefficient located at n=2 and m=5;
means for assigning a scanning order=26 for a two dimensional array frequency coefficient located at n=2 and m=6;
means for assigning a scanning order=27 for a two dimensional array frequency coefficient located at n=2 and m=7;
means for assigning a scanning order=28 for a two dimensional array frequency coefficient located at n=3 and m=3;
means for assigning a scanning order=29 for a two dimensional array frequency coefficient located at n=4 and m=1;
means for assigning a scanning order=30 for a two dimensional array frequency coefficient located at n=5 and m=0;
means for assigning a scanning order=31 for a two dimensional array frequency coefficient located at n=4 and m=2;
means for assigning a scanning order=32 for a two dimensional array frequency coefficient located at n=3 and m=4;
means for assigning a scanning order=33 for a two dimensional array frequency coefficient located at n=3 and m=5;
means for assigning a scanning order=34 for a two dimensional array frequency coefficient located at n=3 and m=6;
means for assigning a scanning order=35 for a two dimensional array frequency coefficient located at n=3 and m=7;
means for assigning a scanning order=36 for a two dimensional array frequency coefficient located at n=4 and m=3;
means for assigning a scanning order=37 for a two dimensional array frequency coefficient located at n=5 and m=1;
means for assigning a scanning order=38 for a two dimensional array frequency coefficient located at n=6 and m=0;
means for assigning a scanning order=39 for a two dimensional array frequency coefficient located at n=5 and m=2;
means for assigning a scanning order=40 for a two dimensional array frequency coefficient located at n=4 and m=4;
means for assigning a scanning order=41 for a two dimensional array frequency coefficient located at n=4 and m=5;
means for assigning a scanning order=42 for a two dimensional array frequency coefficient located at n=4 and m=6;
means for assigning a scanning order=43 for a two dimensional array frequency coefficient located at n=4 and m=7;
means for assigning a scanning order=44 for a two dimensional array frequency coefficient located at n=5 and m=3;
means for assigning a scanning order=45 for a two dimensional array frequency coefficient located at n=6 and m=1;
means for assigning a scanning order=46 for a two dimensional array frequency coefficient located at n=6 and m=2;
means for assigning a scanning order=47 for a two dimensional array frequency coefficient located at n=5 and m=4;
means for assigning a scanning order=48 for a two dimensional array frequency coefficient located at n=5 and m=5;
means for assigning a scanning order=49 for a two dimensional array frequency coefficient located at n=5 and m=6;
means for assigning a scanning order=50 for a two dimensional array frequency coefficient located at n=5 and m=7;
means for assigning a scanning order=51 for a two dimensional array frequency coefficient located at n=6 and m=3;
means for assigning a scanning order=52 for a two dimensional array frequency coefficient located at n=7 and m=0;
means for assigning a scanning order=53 for a two dimensional array frequency coefficient located at n=7 and m=1;
means for assigning a scanning order=54 for a two dimensional array frequency coefficient located at n=6 and m=4;
means for assigning a scanning order=55 for a two dimensional array frequency coefficient located at n=6 and m=5;
means for assigning a scanning order=56 for a two dimensional array frequency coefficient located at n=6 and m=6;
means for assigning a scanning order=57 for a two dimensional array frequency coefficient located at n=6 and m=7;
means for assigning a scanning order=58 for a two dimensional array frequency coefficient located at n=7 and m=2;
means for assigning a scanning order=59 for a two dimensional array frequency coefficient located at n=7 and m=3;
means for assigning a scanning order=60 for a two dimensional array frequency coefficient located at n=7 and m=4;
means for assigning a scanning order=61 for a two dimensional array frequency coefficient located at n=7 and m=5;
means for assigning a scanning order=62 for a two dimensional array frequency coefficient located at n=7 and m=6; and
means for assigning a scanning order=63 for a two dimensional array frequency coefficient located at n=7 and m=7.
13. The method of claim 3, wherein if said one dimensional array of said one dimensional array frequency coefficients comprises sixty-four one dimensional array frequency coefficients, wherein said sixty-four one dimensional array frequency coefficients are represented with a variable p=0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, in a numerical sequential order, wherein a first one dimensional array frequency coefficient is represented by p=0 and a sixty-fourth one dimensional array frequency coefficient is represented by p=63, said step of scanning said one dimensional array frequency coefficients in a vertically biased manner further comprises:
assigning a one dimensional array frequency coefficient located at p=0 to a value of said two dimensional array frequency coefficient located at n=0 and m=0;
assigning a one dimensional array frequency coefficient located at p=1 to a value of said two dimensional array frequency coefficient located at n=0 and m=1;
assigning a one dimensional array frequency coefficient located at p=2 to a value of said two dimensional array frequency coefficient located at n=0 and m=2;
assigning a one dimensional array frequency coefficient located at p=3 to a value of said two dimensional array frequency coefficient located at n=1 and m=0;
assigning a one dimensional array frequency coefficient located at p=4 to a value of said two dimensional array frequency coefficient located at n=1 and m=1;
assigning a one dimensional array frequency coefficient located at p=5 to a value of said two dimensional array frequency coefficient located at n=0 and m=3;
assigning a one dimensional array frequency coefficient located at p=6 to a value of said two dimensional array frequency coefficient located at n=0 and m=4;
assigning a one dimensional array frequency coefficient located at p=7 to a value of said two dimensional array frequency coefficient located at n=1 and m=2;
assigning a one dimensional array frequency coefficient located at p=8 to a value of said two dimensional array frequency coefficient located at n=2 and m=0;
assigning a one dimensional array frequency coefficient located at p=9 to a value of said two dimensional array frequency coefficient located at n=1 and m=3;
assigning a one dimensional array frequency coefficient located at p=10 to a value of said two dimensional array frequency coefficient located at n=0 and m=5;
assigning a one dimensional array frequency coefficient located at p=11 to a value of said two dimensional array frequency coefficient located at n=0 and m=6;
assigning a one dimensional array frequency coefficient located at p=12 to a value of said two dimensional array frequency coefficient located at n=0 and m=7;
assigning a one dimensional array frequency coefficient located at p=13 to a value of said two dimensional array frequency coefficient located at n=1 and m=4;
assigning a one dimensional array frequency coefficient located at p=14 to a value of said two dimensional array frequency coefficient located at n=2 and m=1;
assigning a one dimensional array frequency coefficient located at p=15 to a value of said two dimensional array frequency coefficient located at n=3 and m=0;
assigning a one dimensional array frequency coefficient located at p=16 to a value of said two dimensional array frequency coefficient located at n=2 and m=2;
assigning a one dimensional array frequency coefficient located at p=17 to a value of said two dimensional array frequency coefficient located at n=1 and m=5;
assigning a one dimensional array frequency coefficient located at p=18 to a value of said two dimensional array frequency coefficient located at n=1 and m=6;
assigning a one dimensional array frequency coefficient located at p=19 to a value of said two dimensional array frequency coefficient located at n=1 and m=7;
assigning a one dimensional array frequency coefficient located at p=20 to a value of said two dimensional array frequency coefficient located at n=2 and m=3;
assigning a one dimensional array frequency coefficient located at p=21 to a value of said two dimensional array frequency coefficient located at n=3 and m=1;
assigning a one dimensional array frequency coefficient located at p=22 to a value of said two dimensional array frequency coefficient located at n=4 and m=0;
assigning a one dimensional array frequency coefficient located at p=23 to a value of said two dimensional array frequency coefficient located at n=3 and m=2;
assigning a one dimensional array frequency coefficient located at p=24 to a value of said two dimensional array frequency coefficient located at n=2 and m=4;
assigning a one dimensional array frequency coefficient located at p=25 to a value of said two dimensional array frequency coefficient located at n=2 and m=5;
assigning a one dimensional array frequency coefficient located at p=26 to a value of said two dimensional array frequency coefficient located at n=2 and m=6;
assigning a one dimensional array frequency coefficient located at p=27 to a value of said two dimensional array frequency coefficient located at n=2 and m=7;
assigning a one dimensional array frequency coefficient located at p=28 to a value of said two dimensional array frequency coefficient located at n=3 and m=3;
assigning a one dimensional array frequency coefficient located at p=29 to a value of said two dimensional array frequency coefficient located at n=4 and m=1;
assigning a one dimensional array frequency coefficient located at p=30 to a value of said two dimensional array frequency coefficient located at n=5 and m=0;
assigning a one dimensional array frequency coefficient located at p=31 to a value of said two dimensional array frequency coefficient located at n=4 and m=2;
assigning a one dimensional array frequency coefficient located at p=32 to a value of said two dimensional array frequency coefficient located at n=3 and m=4;
assigning a one dimensional array frequency coefficient located at p=33 to a value of said two dimensional array frequency coefficient located at n=3 and m=5;
assigning a one dimensional array frequency coefficient located at p=34 to a value of said two dimensional array frequency coefficient located at n=3 and m=6;
assigning a one dimensional array frequency coefficient located at p=35 to a value of said two dimensional array frequency coefficient located at n=3 and m=7;
assigning a one dimensional array frequency coefficient located at p=36 to a value of said two dimensional array frequency coefficient located at n=4 and m=3;
assigning a one dimensional array frequency coefficient located at p=37 to a value of said two dimensional array frequency coefficient located at n=5 and m=1;
assigning a one dimensional array frequency coefficient located at p=38 to a value of said two dimensional array frequency coefficient located at n=6 and m=0;
assigning a one dimensional array frequency coefficient located at p=39 to a value of said two dimensional array frequency coefficient located at n=5 and m=2;
assigning a one dimensional array frequency coefficient located at p=40 to a value of said two dimensional array frequency coefficient located at n=4 and m=4;
assigning a one dimensional array frequency coefficient located at p=41 to a value of said two dimensional array frequency coefficient located at n=4 and m=5;
assigning a one dimensional array frequency coefficient located at p=42 to a value of said two dimensional array frequency coefficient located at n=4 and m=6;
assigning a one dimensional array frequency coefficient located at p=43 to a value of said two dimensional array frequency coefficient located at n=4 and m=7;
assigning a one dimensional array frequency coefficient located at p=44 to a value of said two dimensional array frequency coefficient located at n=5 and m=3;
assigning a one dimensional array frequency coefficient located at p=45 to a value of said two dimensional array frequency coefficient located at n=6 and m=1;
assigning a one dimensional array frequency coefficient located at p=46 to a value of said two dimensional array frequency coefficient located at n=6 and m=2;
assigning a one dimensional array frequency coefficient located at p=47 to a value of said two dimensional array frequency coefficient located at n=5 and m=4;
assigning a one dimensional array frequency coefficient located at p=48 to a value of said two dimensional array frequency coefficient located at n=5 and m=5;
assigning a one dimensional array frequency coefficient located at p=49 to a value of said two dimensional array frequency coefficient located at n=5 and m=6;
assigning a one dimensional array frequency coefficient located at p=50 to a value of said two dimensional array frequency coefficient located at n=5 and m=7;
assigning a one dimensional array frequency coefficient located at p=51 to a value of said two dimensional array frequency coefficient located at n=6 and m=3;
assigning a one dimensional array frequency coefficient located at p=52 to a value of said two dimensional array frequency coefficient located at n=7 and m=0;
assigning a one dimensional array frequency coefficient located at p=53 to a value of said two dimensional array frequency coefficient located at n=7 and m=1;
assigning a one dimensional array frequency coefficient located at p=54 to a value of said two dimensional array frequency coefficient located at n=6 and m=4;
assigning a one dimensional array frequency coefficient located at p=55 to a value of said two dimensional array frequency coefficient located at n=6 and m=5;
assigning a one dimensional array frequency coefficient located at p=56 to a value of said two dimensional array frequency coefficient located at n=6 and m=6;
assigning a one dimensional array frequency coefficient located at p=57 to a value of said two dimensional array frequency coefficient located at n=6 and m=7;
assigning a one dimensional array frequency coefficient located at p=58 to a value of said two dimensional array frequency coefficient located at n=7 and m=2;
assigning a one dimensional array frequency coefficient located at p=59 to a value of said two dimensional array frequency coefficient located at n=7 and m=3;
assigning a one dimensional array frequency coefficient located at p=60 to a value of said two dimensional array frequency coefficient located at n=7 and m=4;
assigning a one dimensional array frequency coefficient located at p=61 to a value of said two dimensional array frequency coefficient located at n=7 and m=5;
assigning a one dimensional array frequency coefficient located at p=62 to a value of said two dimensional array frequency coefficient located at n=7 and m=6; and
assigning a one dimensional array frequency coefficient located at p=63 to a value of said two dimensional array frequency coefficient located at n=7 and m=7.
14. The method of claim 1, wherein if said one dimensional array of said one dimensional array frequency coefficients comprises sixty-four one dimensional array frequency coefficients, said method further comprises:
representing said sixty-four one dimensional array frequency coefficients with a variable p=0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, in a numerical sequential order, wherein a first one dimensional array frequency coefficient is represented by p=0 and a sixty-fourth one dimensional array frequency coefficient is represented by p=63; and
scanning said one dimensional array of said one dimensional array frequency coefficients in said numerical sequential order, said scanning starting at p=0 and ending at p=63 and producing said two dimensional array of said two dimensional array frequency coefficients.
15. The method of claim 14, wherein if said two dimensional array of said two dimensional array frequency coefficients comprises 8 columns of frequency coefficients and 8 rows of frequency coefficients, wherein said columns are represented with a variable n=0, 1, 2, 3, 4, 5, 6, or 7, wherein n=0 is at least one of a first or leftmost column, n=1 is a second column, n=2 is a third column, n=3 is a fourth column, n=4 is a fifth column, n=5 is a sixth column, n=6 is a seventh column, and n=7 is at least one of an eighth or rightmost column, and wherein said rows are represented with a variable m=0, 1, 2, 3, 4, 5, 6, or 7, wherein m=0 is at least one of a first or top row, m=1 is a second row, m=2 is a third row, m=3 is a fourth row, m=4 is a fifth row, m=5 is a sixth row, m=6 is a seventh row, and m=7 is at least one of an eighth or bottom row, said step of scanning said one dimensional array frequency coefficients further comprises:
assigning a two dimensional array frequency coefficient located at n=0 and m=0 a value of said one dimensional array frequency coefficient located at p=0;
assigning a two dimensional array frequency coefficient located at n=0 and m=1 a value of said one dimensional array frequency coefficient located at p=1;
assigning a two dimensional array frequency coefficient located at n=0 and m=2 a value of said one dimensional array frequency coefficient located at p=2;
assigning a two dimensional array frequency coefficient located at n=1 and m=0 a value of said one dimensional array frequency coefficient located at p=3;
assigning a two dimensional array frequency coefficient located at n=1 and m=1 a value of said one dimensional array frequency coefficient located at p=4;
assigning a two dimensional array frequency coefficient located at n=0 and m=3 a value of said one dimensional array frequency coefficient located at p=5;
assigning a two dimensional array frequency coefficient located at n=0 and m=4 a value of said one dimensional array frequency coefficient located at p=6;
assigning a two dimensional array frequency coefficient located at n=1 and m=2 a value of said one dimensional array frequency coefficient located at p=7;
assigning a two dimensional array frequency coefficient located at n=2 and m=0 a value of said one dimensional array frequency coefficient located at p=8;
assigning a two dimensional array frequency coefficient located at n=1 and m=3 a value of said one dimensional array frequency coefficient located at p=9;
assigning a two dimensional array frequency coefficient located at n=0 and m=5 a value of said one dimensional array frequency coefficient located at p=10;
assigning a two dimensional array frequency coefficient located at n=0 and m=6 a value of said one dimensional array frequency coefficient located at p=11;
assigning a two dimensional array frequency coefficient located at n=0 and m=7 a value of said one dimensional array frequency coefficient located at p=12;
assigning a two dimensional array frequency coefficient located at n=1 and m=4 a value of said one dimensional array frequency coefficient located at p=13;
assigning a two dimensional array frequency coefficient located at n=2 and m=1 a value of said one dimensional array frequency coefficient located at p=14;
assigning a two dimensional array frequency coefficient located at n=3 and m=0 a value of said one dimensional array frequency coefficient located at p=15;
assigning a two dimensional array frequency coefficient located at n=2 and m=2 a value of said one dimensional array frequency coefficient located at p=16;
assigning a two dimensional array frequency coefficient located at n=1 and m=5 a value of said one dimensional array frequency coefficient located at p=17;
assigning a two dimensional array frequency coefficient located at n=1 and m=6 a value of said one dimensional array frequency coefficient located at p=18;
assigning a two dimensional array frequency coefficient located at n=1 and m=7 a value of said one dimensional array frequency coefficient located at p=19;
assigning a two dimensional array frequency coefficient located at n=2 and m=3 a value of said one dimensional array frequency coefficient located at p=20;
assigning a two dimensional array frequency coefficient located at n=3 and m=1 a value of said one dimensional array frequency coefficient located at p=21;
assigning a two dimensional array frequency coefficient located at n=4 and m=0 a value of said one dimensional array frequency coefficient located at p=22;
assigning a two dimensional array frequency coefficient located at n=3 and m=2 a value of said one dimensional array frequency coefficient located at p=23;
assigning a two dimensional array frequency coefficient located at n=2 and m=4 a value of said one dimensional array frequency coefficient located at p=24;
assigning a two dimensional array frequency coefficient located at n=2 and m=5 a value of said one dimensional array frequency coefficient located at p=25;
assigning a two dimensional array frequency coefficient located at n=2 and m=6 a value of said one dimensional array frequency coefficient located at p=26;
assigning a two dimensional array frequency coefficient located at n=2 and m=7 a value of said one dimensional array frequency coefficient located at p=27;
assigning a two dimensional array frequency coefficient located at n=3 and m=3 a value of said one dimensional array frequency coefficient located at p=28;
assigning a two dimensional array frequency coefficient located at n=4 and m=1 a value of said one dimensional array frequency coefficient located at p=29;
assigning a two dimensional array frequency coefficient located at n=5 and m=0 a value of said one dimensional array frequency coefficient located at p=30;
assigning a two dimensional array frequency coefficient located at n=4 and m=2 a value of said one dimensional array frequency coefficient located at p=31;
assigning a two dimensional array frequency coefficient located at n=3 and m=4 a value of said one dimensional array frequency coefficient located at p=32;
assigning a two dimensional array frequency coefficient located at n=3 and m=5 a value of said one dimensional array frequency coefficient located at p=33;
assigning a two dimensional array frequency coefficient located at n=3 and m=6 a value of said one dimensional array frequency coefficient located at p=34;
assigning a two dimensional array frequency coefficient located at n=3 and m=7 a value of said one dimensional array frequency coefficient located at p=35;
assigning a two dimensional array frequency coefficient located at n=4 and m=3 a value of said one dimensional array frequency coefficient located at p=36;
assigning a two dimensional array frequency coefficient located at n=5 and m=1 a value of said one dimensional array frequency coefficient located at p=37;
assigning a two dimensional array frequency coefficient located at n=6 and m=0 a value of said one dimensional array frequency coefficient located at p=38;
assigning a two dimensional array frequency coefficient located at n=5 and m=2 a value of said one dimensional array frequency coefficient located at p=39;
assigning a two dimensional array frequency coefficient located at n=4 and m=4 a value of said one dimensional array frequency coefficient located at p=40;
assigning a two dimensional array frequency coefficient located at n=4 and m=5 a value of said one dimensional array frequency coefficient located at p=41;
assigning a two dimensional array frequency coefficient located at n=4 and m=6 a value of said one dimensional array frequency coefficient located at p=42;
assigning a two dimensional array frequency coefficient located at n=4 and m=7 a value of said one dimensional array frequency coefficient located at p=43;
assigning a two dimensional array frequency coefficient located at n=5 and m=3 a value of said one dimensional array frequency coefficient located at p=44;
assigning a two dimensional array frequency coefficient located at n=6 and m=1 a value of said one dimensional array frequency coefficient located at p=45;
assigning a two dimensional array frequency coefficient located at n=6 and m=2 a value of said one dimensional array frequency coefficient located at p=46;
assigning a two dimensional array frequency coefficient located at n=5 and m=4 a value of said one dimensional array frequency coefficient located at p=47;
assigning a two dimensional array frequency coefficient located at n=5 and m=5 a value of said one dimensional array frequency coefficient located at p=48;
assigning a two dimensional array frequency coefficient located at n=5 and m=6 a value of said one dimensional array frequency coefficient located at p=49;
assigning a two dimensional array frequency coefficient located at n=5 and m=7 a value of said one dimensional array frequency coefficient located at p=50;
assigning a two dimensional array frequency coefficient located at n=6 and m=3 a value of said one dimensional array frequency coefficient located at p=51;
assigning a two dimensional array frequency coefficient located at n=7 and m=0 a value of said one dimensional array frequency coefficient located at p=52;
assigning a two dimensional array frequency coefficient located at n=7 and m=1 a value of said one dimensional array frequency coefficient located at p=53;
assigning a two dimensional array frequency coefficient located at n=6 and m=4 a value of said one dimensional array frequency coefficient located at p=54;
assigning a two dimensional array frequency coefficient located at n=6 and m=5 a value of said one dimensional array frequency coefficient located at p=55;
assigning a two dimensional array frequency coefficient located at n=6 and m=6 a value of said one dimensional array frequency coefficient located at p=56;
assigning a two dimensional array frequency coefficient located at n=6 and m=7 a value of said one dimensional array frequency coefficient located at p=57;
assigning a two dimensional array frequency coefficient located at n=7 and m=2 a value of said one dimensional array frequency coefficient located at p=58;
assigning a two dimensional array frequency coefficient located at n=7 and m=3 a value of said one dimensional array frequency coefficient located at p=59;
assigning a two dimensional array frequency coefficient located at n=7 and m=4 a value of said one dimensional array frequency coefficient located at p=60;
assigning a two dimensional array frequency coefficient located at n=7 and m=5 a value of said one dimensional array frequency coefficient located at p=61;
assigning a two dimensional array frequency coefficient located at n=7 and m=6 a value of said one dimensional array frequency coefficient located at p=62; and
assigning a two dimensional array frequency coefficient located at n=7 and m=7 a value of said one dimensional array frequency coefficient located at p=63.
16. The device of claim 6, wherein if said one dimensional array of said one dimensional array frequency coefficients comprises sixty-four one dimensional array frequency coefficients, wherein said sixty-four one dimensional array frequency coefficients are represented with a variable p=0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, in a numerical sequential order, wherein a first one dimensional array frequency coefficient is represented by p=0 and a sixty-fourth one dimensional array frequency coefficient is represented by p=63, wherein in scanning said two dimensional array frequency coefficients in a vertically biased manner said encoder further:
assigns a one dimensional array frequency coefficient located at p=0 a value of said two dimensional array frequency coefficient located at n=0 and m=0;
assigns a one dimensional array frequency coefficient located at p=1 a value of said two dimensional array frequency coefficient located at n=0 and m=1;
assigns a one dimensional array frequency coefficient located at p=2 a value of said two dimensional array frequency coefficient located at n=0 and m=2;
assigns a one dimensional array frequency coefficient located at p=3 a value of said two dimensional array frequency coefficient located at n=1 and m=0;
assigns a one dimensional array frequency coefficient located at p=4 a value of said two dimensional array frequency coefficient located at n=1 and m=1;
assigns a one dimensional array frequency coefficient located at p=5 a value of said two dimensional array frequency coefficient located at n=0 and m=3;
assigns a one dimensional array frequency coefficient located at p=6 a value of said two dimensional array frequency coefficient located at n=0 and m=4;
assigns a one dimensional array frequency coefficient located at p=7 a value of said two dimensional array frequency coefficient located at n=1 and m=2;
assigns a one dimensional array frequency coefficient located at p=8 a value of said two dimensional array frequency coefficient located at n=2 and m=0;
assigns a one dimensional array frequency coefficient located at p=9 a value of said two dimensional array frequency coefficient located at n=1 and m=3;
assigns a one dimensional array frequency coefficient located at p=10 a value of said two dimensional array frequency coefficient located at n=0 and m=5; assigns a one dimensional array frequency coefficient located at p=11 a value of said two dimensional array frequency coefficient located at n=0 and m=6;
assigns a one dimensional array frequency coefficient located at p=12 a value of said two dimensional array frequency coefficient located at n=0 and m=7;
assigns a one dimensional array frequency coefficient located at p=13 a value of said two dimensional array frequency coefficient located at n=1 and m=4;
assigns a one dimensional array frequency coefficient located at p=14 a value of said two dimensional array frequency coefficient located at n=2 and m=1;
assigns a one dimensional array frequency coefficient located at p=15 a value of said two dimensional array frequency coefficient located at n=3 and m=0;
assigns a one dimensional array frequency coefficient located at p=16 a value of said two dimensional array frequency coefficient located at n=2 and m=2;
assigns a one dimensional array frequency coefficient located at p=17 a value of said two dimensional array frequency coefficient located at n=1 and m=5;
assigns a one dimensional array frequency coefficient located at p=18 a value of said two dimensional array frequency coefficient located at n=1 and m=6;
assigns a one dimensional array frequency coefficient located at p=19 a value of said two dimensional array frequency coefficient located at n=1 and m=7;
assigns a one dimensional array frequency coefficient located at p=20 a value of said two dimensional array frequency coefficient located at n=2 and m=3;
assigns a one dimensional array frequency coefficient located at p=21 a value of said two dimensional array frequency coefficient located at n=3 and m=1;
assigns a one dimensional array frequency coefficient located at p=22 a value of said two dimensional array frequency coefficient located at n=4 and m=0;
assigns a one dimensional array frequency coefficient located at p=23 a value of said two dimensional array frequency coefficient located at n=3 and m=2;
assigns a one dimensional array frequency coefficient located at p=24 a value of said two dimensional array frequency coefficient located at n=2 and m=4;
assigns a one dimensional array frequency coefficient located at p=25 a value of said two dimensional array frequency coefficient located at n=2 and m=5;
assigns a one dimensional array frequency coefficient located at p=26 a value of said two dimensional array frequency coefficient located at n=2 and m=6;
assigns a one dimensional array frequency coefficient located at p=27 a value of said two dimensional array frequency coefficient located at n=2 and m=7;
assigns a one dimensional array frequency coefficient located at p=28 a value of said two dimensional array frequency coefficient located at n=3 and m=3;
assigns a one dimensional array frequency coefficient located at p=29 a value of said two dimensional array frequency coefficient located at n=4 and m=1;
assigns a one dimensional array frequency coefficient located at p=30 a value of said two dimensional array frequency coefficient located at n=5 and m=0;
assigns a one dimensional array frequency coefficient located at p=31 a value of said two dimensional array frequency coefficient located at n=4 and m=2;
assigns a one dimensional array frequency coefficient located at p=32 a value of said two dimensional array frequency coefficient located at n=3 and m=4;
assigns a one dimensional array frequency coefficient located at p=33 a value of said two dimensional array frequency coefficient located at n=3 and m=5;
assigns a one dimensional array frequency coefficient located at p=34 a value of said two dimensional array frequency coefficient located at n=3 and m=6;
assigns a one dimensional array frequency coefficient located at p=35 a value of said two dimensional array frequency coefficient located at n=3 and m=7;
assigns a one dimensional array frequency coefficient located at p=36 a value of said two dimensional array frequency coefficient located at n=4 and m=3;
assigns a one dimensional array frequency coefficient located at p=37 a value of said two dimensional array frequency coefficient located at n=5 and m=1;
assigns a one dimensional array frequency coefficient located at p=38 a value of said two dimensional array frequency coefficient located at n=6 and m=0;
assigns a one dimensional array frequency coefficient located at p=39 a value of said two dimensional array frequency coefficient located at n=5 and m=2;
assigns a one dimensional array frequency coefficient located at p=40 a value of said two dimensional array frequency coefficient located at n=4 and m=4;
assigns a one dimensional array frequency coefficient located at p=41 a value of said two dimensional array frequency coefficient located at n=4 and m=5;
assigns a one dimensional array frequency coefficient located at p=42 a value of said two dimensional array frequency coefficient located at n=4 and m=6;
assigns a one dimensional array frequency coefficient located at p=43 a value of said two dimensional array frequency coefficient located at n=4 and m=7;
assigns a one dimensional array frequency coefficient located at p=44 a value of said two dimensional array frequency coefficient located at n=5 and m=3;
assigns a one dimensional array frequency coefficient located at p=45 a value of said two dimensional array frequency coefficient located at n=6 and m=1;
assigns a one dimensional array frequency coefficient located at p=46 a value of said two dimensional array frequency coefficient located at n=6 and m=2;
assigns a one dimensional array frequency coefficient located at p=47 a value of said two dimensional array frequency coefficient located at n=5 and m=4;
assigns a one dimensional array frequency coefficient located at p=48 a value of said two dimensional array frequency coefficient located at n=5 and m=5;
assigns a one dimensional array frequency coefficient located at p=49 a value of said two dimensional array frequency coefficient located at n=5 and m=6;
assigns a one dimensional array frequency coefficient located at p=50 a value of said two dimensional array frequency coefficient located at n=5 and m=7;
assigns a one dimensional array frequency coefficient located at p=51 a value of said two dimensional array frequency coefficient located at n=6 and m=3;
assigns a one dimensional array frequency coefficient located at p=52 a value of said two dimensional array frequency coefficient located at n=7 and m=0;
assigns a one dimensional array frequency coefficient located at p=53 a value of said two dimensional array frequency coefficient located at n=7 and m=1;
assigns a one dimensional array frequency coefficient located at p=54 a value of said two dimensional array frequency coefficient located at n=6 and m=4;
assigns a one dimensional array frequency coefficient located at p=55 a value of said two dimensional array frequency coefficient located at n=6 and m=5;
assigns a one dimensional array frequency coefficient located at p=56 a value of said two dimensional array frequency coefficient located at n=6 and m=6;
assigns a one dimensional array frequency coefficient located at p=57 a value of said two dimensional array frequency coefficient located at n=6 and m=7;
assigns a one dimensional array frequency coefficient located at p=58 a value of said two dimensional array frequency coefficient located at n=7 and m=2;
assigns a one dimensional array frequency coefficient located at p=59 a value of said two dimensional array frequency coefficient located at n=7 and m=3;
assigns a one dimensional array frequency coefficient located at p=60 a value of said two dimensional array frequency coefficient located at n=7 and m=4;
assigns a one dimensional array frequency coefficient located at p=61 a value of said two dimensional array frequency coefficient located at n=7 and m=5;
assigns a one dimensional array frequency coefficient located at p=62 a value of said two dimensional array frequency coefficient located at n=7 and m=6; and
assigns a one dimensional array frequency coefficient located at p=63 a value of said two dimensional array frequency coefficient located at n=7 and m=7.
17. A video signal comprising transform-based encoded digital video content, said digital video content comprising a stream of pictures, slices, or macroblocks, which can be intra, predicted or bi-predicted pictures, slices, or macroblocks, in the form of blocks of pixels forming a one dimensional array of one dimensional array frequency coefficients.
18. The video signal of claim 17, wherein said one dimensional array of one dimensional array frequency coefficients comprises sixty-four frequency coefficients, said sixty-four frequency coefficients being represented with a variable p=0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, respectively, wherein the first coefficient is represented by p=0, the second coefficient is represented by p=1, the third coefficient is represented by p=2, the fourth coefficient is represented by p=3, the fifth coefficient is represented by p=4, the sixth coefficient is represented by p=5, the seventh coefficient is represented by p=6, the eighth coefficient is represented by p=7, the ninth coefficient is represented by p=8, the tenth coefficient is represented by p=9, the eleventh coefficient is represented by p=10, the twelfth coefficient is represented by p=11, the thirteenth coefficient is represented by p=12, the fourteenth coefficient is represented by p=13, the fifteenth coefficient is represented by p=14, the sixteenth coefficient is represented by p=15, the seventeenth coefficient is represented by p=16, the eighteenth coefficient is represented by p=17, the nineteenth coefficient is represented by p=18, the twentieth coefficient is represented by p=19, the twenty-first coefficient is represented by p=20, the twenty-second coefficient is represented by p=21, the twenty-third coefficient is represented by p=22, the twenty-fourth coefficient is represented by p=23, the twenty-fifth coefficient is represented by p=24, the twenty-sixth coefficient is represented by p=25, the twenty-seventh coefficient is represented by p=26, the twenty-eighth coefficient is represented by p=27, the twenty-ninth coefficient is represented by p=28, the thirtieth coefficient is represented by p=29, the thirty-first coefficient is represented by p=30, the thirty-second coefficient is represented by p=31, the thirty-third coefficient is represented by p=32, the thirty-fourth coefficient is represented by p=33, the thirty-fifth coefficient is represented by p=34, the thirty-sixth coefficient is represented by p=35, the thirty-seventh coefficient is represented by p=36, the thirty-eighth coefficient is represented by p=37, the thirty-ninth coefficient is represented by p=38, the fortieth coefficient is represented by p=39, the forty-first coefficient is represented by p=40, the forty-second coefficient is represented by p=41, the forty-third coefficient is represented by p=42, the forty-fourth coefficient is represented by p=43, the forty-fifth coefficient is represented by p=44, the forty-sixth coefficient is represented by p=45, the forty-seventh coefficient is represented by p=46, the forty-eighth coefficient is represented by p=47, the forty-ninth coefficient is represented by p=48, the fiftieth coefficient is represented by p=49, the fifty-first coefficient is represented by p=50, the fifty-second coefficient is represented by p=51, the fifty-third coefficient is represented by p=52, the fifty-fourth coefficient is represented by p=53, the fifty-fifth coefficient is represented by p=54, the fifty-sixth coefficient is represented by p=55, the fifty-seventh coefficient is represented by p=56, the fifty-eighth coefficient is represented by p=57, the fifty-ninth coefficient is represented by p=58, the sixtieth coefficient is represented by p=59, the sixty-first coefficient is represented by p=60, the sixty-second coefficient is represented by p=61, the sixty-third coefficient is represented by p=62, and the sixty-fourth coefficient is represented by p=63.
19. A video signal comprising transform-based decoded digital video content, said digital video content comprising a stream of pictures, slices, or macroblocks, which can be intra, predicted or bi-predicted pictures, slices, or macroblocks, in the form of blocks of pixels forming a two dimensional array of two dimensional array frequency coefficients.
20. The video signal of claim 19, wherein said two dimensional array of two dimensional array frequency coefficients comprises:
eight columns of frequency coefficients, said columns being represented with a variable n=0, 1, 2, 3, 4, 5, 6, or 7, wherein n=0 is a first or leftmost column, n=1 is a second column, n=2 is a third column, n=3 is a fourth column, n=4 is a fifth column, n=5 is a sixth column, n=6 is a seventh column, and n=7 is a eighth or rightmost column; and
eight rows of frequency coefficients, said rows being represented with a variable m=0, 1, 2, 3, 4, 5, 6, or 7, wherein m=0 is a first or top row, m=1 is a second row, m=2 is a third row, m=3 is a fourth row, m=4 is a fifth row, m=5 is a sixth row, m=6 is a seventh row, and m=7 is an eighth or bottom row.
US10/902,392 2002-11-20 2004-07-29 Frequency coefficient scanning paths for coding digital video content Expired - Lifetime US6987888B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US10/902,392 US6987888B2 (en) 2002-11-20 2004-07-29 Frequency coefficient scanning paths for coding digital video content

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/301,076 US7162094B2 (en) 2001-11-27 2002-11-20 Frequency coefficient scanning paths for coding digital video content
US10/902,392 US6987888B2 (en) 2002-11-20 2004-07-29 Frequency coefficient scanning paths for coding digital video content

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US10/301,076 Division US7162094B2 (en) 2001-11-27 2002-11-20 Frequency coefficient scanning paths for coding digital video content

Publications (2)

Publication Number Publication Date
US20050002582A1 true US20050002582A1 (en) 2005-01-06
US6987888B2 US6987888B2 (en) 2006-01-17

Family

ID=32297973

Family Applications (5)

Application Number Title Priority Date Filing Date
US10/301,076 Active 2024-05-21 US7162094B2 (en) 2001-11-27 2002-11-20 Frequency coefficient scanning paths for coding digital video content
US10/902,392 Expired - Lifetime US6987888B2 (en) 2002-11-20 2004-07-29 Frequency coefficient scanning paths for coding digital video content
US10/902,329 Expired - Lifetime US7206454B2 (en) 2002-11-20 2004-07-29 Frequency coefficient scanning paths for coding digital video content
US10/902,330 Expired - Lifetime US7088867B2 (en) 2002-11-20 2004-07-29 Frequency coefficient scanning paths for coding digital video content
US11/472,035 Expired - Lifetime US7177475B2 (en) 2002-11-20 2006-06-21 Frequency coefficient scanning paths for coding digital video content

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US10/301,076 Active 2024-05-21 US7162094B2 (en) 2001-11-27 2002-11-20 Frequency coefficient scanning paths for coding digital video content

Family Applications After (3)

Application Number Title Priority Date Filing Date
US10/902,329 Expired - Lifetime US7206454B2 (en) 2002-11-20 2004-07-29 Frequency coefficient scanning paths for coding digital video content
US10/902,330 Expired - Lifetime US7088867B2 (en) 2002-11-20 2004-07-29 Frequency coefficient scanning paths for coding digital video content
US11/472,035 Expired - Lifetime US7177475B2 (en) 2002-11-20 2006-06-21 Frequency coefficient scanning paths for coding digital video content

Country Status (4)

Country Link
US (5) US7162094B2 (en)
AU (1) AU2002357751A1 (en)
CA (1) CA2442276A1 (en)
WO (1) WO2004049725A1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050008241A1 (en) * 2002-11-20 2005-01-13 Lamin Wang Frequency coefficient scanning paths for coding digital video content
US20060268984A1 (en) * 2005-05-21 2006-11-30 Samsung Electronics Co., Ltd. Image compression method and apparatus and image decompression method and apparatus
US20130202686A1 (en) * 2010-12-27 2013-08-08 Terumo Kabushiki Kaisha Liposome composition and process for production thereof
US20180296485A1 (en) * 2015-12-21 2018-10-18 Fujifilm Corporation Liposome and liposome composition

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030099294A1 (en) * 2001-11-27 2003-05-29 Limin Wang Picture level adaptive frame/field coding for digital video content
US7782954B2 (en) * 2003-09-07 2010-08-24 Microsoft Corporation Scan patterns for progressive video content
US7688894B2 (en) * 2003-09-07 2010-03-30 Microsoft Corporation Scan patterns for interlaced video content
US7650036B2 (en) * 2003-10-16 2010-01-19 Sharp Laboratories Of America, Inc. System and method for three-dimensional video coding
US7379608B2 (en) * 2003-12-04 2008-05-27 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung, E.V. Arithmetic coding for transforming video and picture data units
US7599435B2 (en) 2004-01-30 2009-10-06 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Video frame encoding and decoding
US7586924B2 (en) 2004-02-27 2009-09-08 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Apparatus and method for coding an information signal into a data stream, converting the data stream and decoding the data stream
US7564874B2 (en) 2004-09-17 2009-07-21 Uni-Pixel Displays, Inc. Enhanced bandwidth data encoding method
EP2096439A4 (en) * 2006-12-21 2011-01-05 Ajinomoto Kk Method for evaluation of colorectal cancer, colorectal cancer evaluation apparatus, colorectal cancer evaluation method, colorectal cancer evaluation system, colorectal cancer evaluation program, and recording medium
US8724698B2 (en) * 2007-04-13 2014-05-13 Apple Inc. Method and system for video rate control
US7885473B2 (en) * 2007-04-26 2011-02-08 Texas Instruments Incorporated Method of CABAC coefficient magnitude and sign decoding suitable for use on VLIW data processors
US7813567B2 (en) * 2007-04-26 2010-10-12 Texas Instruments Incorporated Method of CABAC significance MAP decoding suitable for use on VLIW data processors
US8982961B2 (en) 2010-04-05 2015-03-17 Samsung Electronics Co., Ltd. Method and apparatus for encoding video by using transformation index, and method and apparatus for decoding video by using transformation index
KR20110112168A (en) * 2010-04-05 2011-10-12 삼성전자주식회사 Method and apparatus for video encoding based on internal bitdepth increment, method and apparatus for video decoding based on internal bitdepth increment
WO2011126283A2 (en) 2010-04-05 2011-10-13 Samsung Electronics Co., Ltd. Method and apparatus for encoding video based on internal bit depth increment, and method and apparatus for decoding video based on internal bit depth increment
US9369736B2 (en) 2010-04-05 2016-06-14 Samsung Electronics Co., Ltd. Low complexity entropy-encoding/decoding method and apparatus
CN101873494B (en) * 2010-04-30 2012-07-04 南京邮电大学 Slice level based dynamic interleaving method in video transmission
US9532059B2 (en) * 2010-10-05 2016-12-27 Google Technology Holdings LLC Method and apparatus for spatial scalability for video coding
MY194445A (en) 2016-09-30 2022-11-30 Huawei Tech Co Ltd Apparatuses Methods, and Computer-Readable Medium for Encoding and Decoding a Video Signal

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4821119A (en) * 1988-05-04 1989-04-11 Bell Communications Research, Inc. Method and apparatus for low bit-rate interframe video coding
US5410350A (en) * 1992-10-28 1995-04-25 Sony Corporation Motion picture encoding and/or decoding system
US5424778A (en) * 1992-08-31 1995-06-13 Victor Company Of Japan, Ltd. Orthogonal transform coding apparatus and decoding apparatus
US5500678A (en) * 1994-03-18 1996-03-19 At&T Corp. Optimized scanning of transform coefficients in video coding
US5504530A (en) * 1992-06-25 1996-04-02 Sony Corporation Apparatus and method for coding and decoding image signals
US5583657A (en) * 1993-01-20 1996-12-10 Samsung Electronics Co., Ltd. Method and apparatus for scanning image data
US5949912A (en) * 1996-06-28 1999-09-07 Oki Electric Industry Co., Ltd. Image coding method and apparatus
US6054943A (en) * 1998-03-25 2000-04-25 Lawrence; John Clifton Multilevel digital information compression based on lawrence algorithm
US6516318B2 (en) * 1994-10-26 2003-02-04 Canon Kabushiki Kaisha Management system and terminal apparatus to manage and control distribution and use of software and the like
US6658157B1 (en) * 1999-06-29 2003-12-02 Sony Corporation Method and apparatus for converting image information
US20050002539A1 (en) * 2003-02-14 2005-01-06 Gn Resound As Retaining member for an earpiece
US20050008241A1 (en) * 2002-11-20 2005-01-13 Lamin Wang Frequency coefficient scanning paths for coding digital video content

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0542261B1 (en) * 1991-11-12 1998-10-21 Nippon Hoso Kyokai Method of performing high efficiency coding of image signal and system therefor
KR100403077B1 (en) * 1996-05-28 2003-10-30 마쯔시다덴기산교 가부시키가이샤 Image predictive decoding apparatus and method thereof, and image predictive cording apparatus and method thereof
JP3967405B2 (en) * 1996-10-09 2007-08-29 テキサス インスツルメンツ インコーポレイテツド Image signal encoding method

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4821119A (en) * 1988-05-04 1989-04-11 Bell Communications Research, Inc. Method and apparatus for low bit-rate interframe video coding
US5504530A (en) * 1992-06-25 1996-04-02 Sony Corporation Apparatus and method for coding and decoding image signals
US5424778A (en) * 1992-08-31 1995-06-13 Victor Company Of Japan, Ltd. Orthogonal transform coding apparatus and decoding apparatus
US5410350A (en) * 1992-10-28 1995-04-25 Sony Corporation Motion picture encoding and/or decoding system
US5583657A (en) * 1993-01-20 1996-12-10 Samsung Electronics Co., Ltd. Method and apparatus for scanning image data
US5500678A (en) * 1994-03-18 1996-03-19 At&T Corp. Optimized scanning of transform coefficients in video coding
US6516318B2 (en) * 1994-10-26 2003-02-04 Canon Kabushiki Kaisha Management system and terminal apparatus to manage and control distribution and use of software and the like
US5949912A (en) * 1996-06-28 1999-09-07 Oki Electric Industry Co., Ltd. Image coding method and apparatus
US6054943A (en) * 1998-03-25 2000-04-25 Lawrence; John Clifton Multilevel digital information compression based on lawrence algorithm
US6658157B1 (en) * 1999-06-29 2003-12-02 Sony Corporation Method and apparatus for converting image information
US20050008241A1 (en) * 2002-11-20 2005-01-13 Lamin Wang Frequency coefficient scanning paths for coding digital video content
US20050002539A1 (en) * 2003-02-14 2005-01-06 Gn Resound As Retaining member for an earpiece

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7162094B2 (en) 2001-11-27 2007-01-09 General Instrument Corporation Frequency coefficient scanning paths for coding digital video content
US20050008241A1 (en) * 2002-11-20 2005-01-13 Lamin Wang Frequency coefficient scanning paths for coding digital video content
US20050008239A1 (en) * 2002-11-20 2005-01-13 Limin Wang Frequency coefficient scanning paths for coding digital video content
US7088867B2 (en) 2002-11-20 2006-08-08 General Instrument Corporation Frequency coefficient scanning paths for coding digital video content
US7177475B2 (en) 2002-11-20 2007-02-13 General Instrument Corporation Frequency coefficient scanning paths for coding digital video content
US7206454B2 (en) 2002-11-20 2007-04-17 General Instrument Corporation Frequency coefficient scanning paths for coding digital video content
US20060268984A1 (en) * 2005-05-21 2006-11-30 Samsung Electronics Co., Ltd. Image compression method and apparatus and image decompression method and apparatus
US8144771B2 (en) 2005-05-21 2012-03-27 Samsung Electronics Co., Ltd. Method and apparatus for image coding and decoding with cross-reference mode
US20130202686A1 (en) * 2010-12-27 2013-08-08 Terumo Kabushiki Kaisha Liposome composition and process for production thereof
US20180296485A1 (en) * 2015-12-21 2018-10-18 Fujifilm Corporation Liposome and liposome composition

Also Published As

Publication number Publication date
US20040096109A1 (en) 2004-05-20
US7088867B2 (en) 2006-08-08
US20050008241A1 (en) 2005-01-13
US20060262978A1 (en) 2006-11-23
AU2002357751A1 (en) 2004-06-18
US20050008239A1 (en) 2005-01-13
US6987888B2 (en) 2006-01-17
US7206454B2 (en) 2007-04-17
CA2442276A1 (en) 2004-05-20
US7162094B2 (en) 2007-01-09
WO2004049725A1 (en) 2004-06-10
US7177475B2 (en) 2007-02-13

Similar Documents

Publication Publication Date Title
US7177475B2 (en) Frequency coefficient scanning paths for coding digital video content
US10701368B2 (en) System and method for intracoding video data
US8630350B2 (en) Picture level adaptive frame/field coding for digital video content
US7884742B2 (en) System and method for efficient compression of digital data
US20050084013A1 (en) Frequency coefficient scanning paths
US20040136457A1 (en) Method and system for supercompression of compressed digital video
US7606312B2 (en) Intra coding video data methods and apparatuses
US20090141809A1 (en) Extension to the AVC standard to support the encoding and storage of high resolution digital still pictures in parallel with video
US7233622B2 (en) Reduced complexity efficient binarization method and/or circuit for motion vector residuals
US20070076802A1 (en) Video presentation at fractional speed factor using time domain interpolation
US20080152002A1 (en) Methods and apparatus for scalable video bitstreams
US20040131119A1 (en) Frequency coefficient scanning paths for coding digital video content
EP1750452B1 (en) Apparatus for intra coding video data
US9456213B2 (en) Method for simultaneously encoding macroblock groups of frame
Park et al. Lossless image coding based on inter-color prediction for ultra high definition image
Petajan et al. Grand Alliance HDTV system
Vasudevan et al. H. 264 DECODER DESIGN USING VERILOG

Legal Events

Date Code Title Description
AS Assignment

Owner name: GENERAL INSTRUMENT CORPORATION, PENNSYLVANIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:WANG, LIMIN;BAYLON, DAVID;PANUSOPONE, KRIT;AND OTHERS;REEL/FRAME:016725/0295;SIGNING DATES FROM 20021114 TO 20021116

STCF Information on status: patent grant

Free format text: PATENTED CASE

FPAY Fee payment

Year of fee payment: 4

FPAY Fee payment

Year of fee payment: 8

AS Assignment

Owner name: MOTOROLA MOBILITY LLC, ILLINOIS

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:GENERAL INSTRUMENT HOLDINGS, INC.;REEL/FRAME:030866/0113

Effective date: 20130528

Owner name: GENERAL INSTRUMENT HOLDINGS, INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:GENERAL INSTRUMENT CORPORATION;REEL/FRAME:030764/0575

Effective date: 20130415

AS Assignment

Owner name: GOOGLE TECHNOLOGY HOLDINGS LLC, CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MOTOROLA MOBILITY LLC;REEL/FRAME:034472/0001

Effective date: 20141028

FPAY Fee payment

Year of fee payment: 12

AS Assignment

Owner name: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT, NEW YORK

Free format text: PATENT SECURITY AGREEMENT (SHORT-FORM);ASSIGNOR:EVERI HOLDINGS INC.;REEL/FRAME:058948/0265

Effective date: 20210803