WO1999056472A1 - N-bit video coder and method of extending an 8-bit mpeg video coder - Google Patents

N-bit video coder and method of extending an 8-bit mpeg video coder Download PDF

Info

Publication number
WO1999056472A1
WO1999056472A1 PCT/US1999/008922 US9908922W WO9956472A1 WO 1999056472 A1 WO1999056472 A1 WO 1999056472A1 US 9908922 W US9908922 W US 9908922W WO 9956472 A1 WO9956472 A1 WO 9956472A1
Authority
WO
WIPO (PCT)
Prior art keywords
bit
video
coder
bits
coding
Prior art date
Application number
PCT/US1999/008922
Other languages
French (fr)
Inventor
Wei Wu
Homer H. Chen
Michael R. Frater
John F. Arnold
Original Assignee
Rockwell Science Center, Llc
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
Application filed by Rockwell Science Center, Llc filed Critical Rockwell Science Center, Llc
Priority to AU35730/99A priority Critical patent/AU3573099A/en
Publication of WO1999056472A1 publication Critical patent/WO1999056472A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/36Scalability techniques involving formatting the layers as a function of picture distortion after decoding, e.g. signal-to-noise [SNR] scalability
    • 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/124Quantisation
    • H04N19/126Details of normalisation or weighting functions, e.g. normalisation matrices or variable uniform quantisers
    • 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/184Methods 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 bits, e.g. of the compressed video stream
    • 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/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/192Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding the adaptation method, adaptation tool or adaptation type being iterative or recursive
    • H04N19/194Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding the adaptation method, adaptation tool or adaptation type being iterative or recursive involving only two passes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • 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/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Definitions

  • This invention relates to coding video data and more specifically to coding high resolution N-bit video data.
  • DCT discrete cosine transform
  • each I-frame is coded by disabling the motion estimation 10 and motion compensation 12 functions (switches S1,S2 and S3) and passing the original video frame 14 to a transform coder that independently transforms 8x8 pixel blocks using a two-dimensional DCT 16.
  • the DC and 63 AC coefficients are quantized 18 by dividing each value by a step-size Qp, which has a 5-bit range.
  • the step-size determines the amount of compression,- the larger Qp the greater the compression but the greater the coding error.
  • the quantized coefficients are inverse quantized 20, inverse transformed 22, and stored directly in the frame buffer 24.
  • the reconstructed frame is clipped so that it lies in a range of [0,255] .
  • the quantized I-frame coefficients are then coded 26 and output into a bitstream 28. If the DC value is less than a user specified threshold, the DC value is treated as the first AC coefficient.
  • the AC coefficients are coded by reading them out in a zig-zag pattern, forming them into one or more symbols each comprised of three components; the number of zeros before the next non-zero coefficient, the value of the non-zero coefficient, and whether it is the last non-zero coefficient in the block, and Huffman coding the symbols. High quality statistics characterizing the symbol distribution are readily available for 8-bit video.
  • the user selects whether to code the DC value using a fixed code or to subject the DC value to a spatial prediction based upon the values of other DC coefficients in the current frame and use a hybrid fixed-variable length code.
  • the DC value is coded using an 8 -bit fixed code that specifies values over a range of
  • Error resiliency is further enhanced by injecting start codes, e.g. twenty-three zeros followed by a number, in the bitstream when, for example, video transmission is first initiated, prior to each frame and possibly prior to certain blocks. Should the data become corrupted, the decoder can skip to the next start code and reacquire the coded video signal .
  • start codes e.g. twenty-three zeros followed by a number
  • the residual values are coded using a hybrid fixed-variable length code that specifies values over a range of [- 255,255] .
  • the value 9 is coded using a fixed length code 1001 to represent the value and a VLC to represent the number of bits or "size" of the fixed length code.
  • High quality statistics characterizing the size distribution are readily available for 8 -bit video and provide better compression than simple fixed length codes.
  • Each P-frame is encoded by enabling switches S1,S2 and S3 so that a motion compensated reconstructed frame is subtracted from the P-frame at summing node 30.
  • the two- dimensional DCT 16 is performed on each 8x8 pixel block representing the prediction error in each frame, the coefficients are quantized 18 as before, although the value of Qp may be different, and passed to a P-frame entropy coder 32.
  • the coefficients are inverse quantized 20, inverse transformed 22, added to the motion compensated reconstructed frame at summing node 34 and stored in the frame buffer.
  • the prediction error frame is clipped at the output of the IDCT 22 to a range of [-255,255] .
  • Motion estimation finds the best match in the previous frame for each microblock, i.e. four 8x8 pixel blocks, in the current frame, represents the match with a motion vector and determines the optimal mode for coding the microblock.
  • First if the prediction error frame is larger than the current frame, motion estimation and compensation is disabled and the I-frame coding technique is used for that microblock.
  • Second assuming prediction does provide coding gain, if the difference between the prediction error associated with a zero motion vector and the best motion vector is less than a decision threshold the zero motion vector is selected.
  • the motion vectors are VLC 35 based on a statistical distribution of motion vectors for 8-bit video data and placed in the bitstream.
  • motion compensation 12 uses the motion vector (s) to get the corresponding blocks from the reconstructed frame in frame buffer 24 and move them to the correct locations in the current frame. The motion compensated frame is then subtracted from the current frame at summing node 30. If mode 1 is selected, the predictive loop is disabled.
  • Progressive coding is used to progressively send 8-bit data over a band limited channel to a decoder where it is progressively reconstructed on the display.
  • the 10 -bit data is mapped to an 8- bit format via downsampling and coded as the base layer.
  • the reconstructed 8 -bit frame is subtracted from the 10 -bit frame, mapped to the 8 -bit format and coded as the enhancement layer.
  • the enhancement layer is a high pass version of the 10 -bit frame and thus exhibits very little spatial correlation. As a result, coding the enhancement layer requires a lot of bits. At rates just above 8-bits the loss of compression is not substantial, but at higher resolutions the coding inefficiency may be prohibitive.
  • the present invention provides a direct N-bit MPEG video coder that uses available MPEG tools and substantially eliminates mapping error without requiring N-bit statistics. This is accomplished by extending the existing 8 -bit MPEG video coder to an N-bit video coder, which can be implemented in hardware for a particular value of N or in a general purpose microprocessor for arbitrary values of N.
  • I-frame coding is modified by 1) extending the range of the quantized values of the non-predicted and predicted DC coefficients to [0,2 N -1] and [- (2 N -1) , 2 N -1] , respectively, 2) extending to N-bits the 8-bit VLC table used to code the number of bits required to represent the predicted DC value, and 3) when the code selected from the VLC table is longer than 8 bits, inserting a marker bit into the bitstream to avoid emulating start codes that are inserted into the bitstream to provide error resilience.
  • the number of bits used to represent the quantizer step-size is preferably set at N-3 bits to maintain the same resolution as the 8 -bit MPEG video coder for 8-bit video.
  • the N-bit coder may be incorporated in a progressive coding scheme to service multiple users having different SNR requirements and channel capacities or to code very high bitrate data such as 32 -bit floating point data.
  • FIG. 1 is a block diagram illustrating the standard 8 -bit MPEG video coder
  • FIGs . 2a through 2c are flow charts illustrating the extension of the 8 -bit MPEG video coder to an N-bit coder in accordance with the present invention
  • FIG. 3 is ' a table of the extended N-bit variable length codes for the DC size values,-
  • FIG. 4 is a block diagram of the N-bit coder,- 7
  • FIGs. 5a and 5b are SNR performance plots comparing N- bit coding to truncated 8 -bit coding for 12 -bit data;
  • FIG. 6 illustrates the use of N-bit coding in an 8 -bit video display application
  • FIG. 7 is a block diagram of a progressive video coder that uses the N-bit coder,-
  • FIG. 8 is a MSE performance plot of the progressive video coder,- and
  • FIG. 9 is a block diagram of a multi-user application of the progressive video coder.
  • the present invention provides a technique for extending the 8 -bit MPEG video coder to an arbitrary N-bit coder. This is done using available MPEG tools and without requiring new statistics for the different N-bit values. The extension is accomplished by selectively extending a few critical parameters to N bits while leaving the others unchanged. The resulting N-bit coder provides substantial coding gain over either the data conforming or progressive coding techniques without departing from the goal of using available MPEG tools. Furthermore, the performance of the N-bit coder is only marginally inferior to optimized N-bit coders designed from scratch.
  • the extension of the 8-bit MPEG video coder to an N- bit coder is depicted in FIGs. 2a-2c. As shown in FIG.
  • the modifications occur in three categories: modification of the syntax (step 40) , extension of I-frame coding to N- bits (step 42) and extension of P-frame coding to N-bits (step 44) .
  • the syntax of the video coder is modified when the video coder is being used in a simulation for design or testing purposes or when the video coder is implemented in a general purpose microprocessor that can code arbitrary- values of N. If the video coder is implemented in hardware for a particular value of N, the number of bits N and the number of bits for representing the step-sizes are hard coded.
  • the syntax is modified by inserting the following code into the VideoObjectLayer of the 8-bit MPEG video coder: not_8_bit if (not_8_bit) ⁇ bits_per_pixel bits_per_Qp
  • the not_8_bit signifies whether the video data precision is 8 bits per pixel. If the flag is set, the video coder reads the bits_per_pixel and the bits_per_Qp. The user can set the bits_per_Qp at whatever the user prefers. However, a value of N-3 will maintain the same resolution as the 8- bit MPEG video coder for 8-bit data.
  • I-frame coding is extended to N bits by first extending the range of the quantized values of the non-predicted and predicted DC coefficients to [0,2 N - 1] and [- (2 N -1) ,2 N -1] , respectively (step 46). This is required to maintain the precision of the DC component of the video data.
  • the 8 -bit VLC table used to code the number of bits required to represent the predicted DC value is extended to N-bits (step 48) , as shown in detail in the VLC table 50 in FIG. 3. This increases the number of bits required to code the intraframe predicted DC values but greatly enhances the precision of the data.
  • the N-bit VLC table is an extension of an 8-bit table optimized for 8 -bit data it is, most likely, suboptimal. However, the performance degradation appears to be minimal for bit rates up to 16 bits.
  • a marker bit i.e. a "1"
  • the saturation level for clipping the output of the inverse DCT is scaled to N-bits to match the range of the video data (step 54) .
  • the decision thresholds for modes 2 and 3 in the motion estimation are derived from 8 -bit data and thus must be scaled up to N bits. Otherwise the thresholds will be too low causing the coder to select the best motion vector in mode 2 to often and to select the four blocks over the single microblock to often in mode 3.
  • the saturation level for clipping the output of the inverse DCT is also scaled to N-bits to match the range of the video data (step 58) .
  • the 8 -bit MPEG coder could be effectively extended to an N-bit MPEG video coder without modifying every parameter or extending every VLC table .
  • the AC coefficients in both the I and P-frames and motion vectors for N-bit data can be coded using the 8- bit VLC tables.
  • the VLC tables may be extended to N bits if warranted by a particular application or the characteristics of the video data.
  • the value of 128 does not have to be mapped to the value 255 to avoid zero accumulation.
  • the N-bit video coder 60 can be implemented in many different ways.
  • the N-bit video coder can be simulated for design and testing purposes prior to finalizing the design and implementing it in hardware. At this stage, arbitrary bit rate coders can be simulated simply by changing the value of N. This is a very convenient design and testing feature.
  • the N- bit video coder can be implemented by programming a general purpose microprocessor. This is relatively complicated and expensive but allows the coder to handle arbitrary bit rate data. Current techniques must either map the data to 8 bits or use the inefficient progressive coding technique.
  • the N-bit video coder can be implemented in hardware that is specially designed for a specific bit rate and application. This simplifies the hardware and lowers cost.
  • FIGs. 5a and 5b The relative performance of Applicant's direct 12 -bit coder and the conventional truncation coding to 8 -bits is 10 shown in FIGs. 5a and 5b.
  • FIG. 5a for a desired bits/frame direct 12-bit coding maintains a PSNR 62 that is consistently 2dB better than the truncation coding PSNR 64.
  • the direct 12-bit coder PSNR 66 consistently outperforms truncation coding PSNR 68. Note, as the bits/frame increases the truncation coding PSNR 68 flattens out. This technique can not recapture the mapping or truncation error no matter how many bits are used.
  • the direct 12 -bit coder PSNR 66 increases monotonically until the error between the reconstructed video at the decoder and the input video is virtually zero.
  • the improvement in performance is mainly to the DC values of the reconstructed image which is particularly critical to perceived visual quality, much more so than AC values.
  • FIG. 6 illustrates one particularly useful application of the direct N-bit video coder.
  • Current video display terminals 70 have only 8 -bit display capability 72 and thus can not display the N-bit video 74.
  • the 8 -bit range 72 can be slid back-and- forth in the N-bit range 74 to optimize the visual display.
  • the 8-bit range 72 might be centered in the middle of the N-bit range 74, which typically corresponds to the most information.
  • the 8 -bit range can be slid towards the lsbs.
  • N- bit and progressive coding may be useful to combine N- bit and progressive coding.
  • N>>8 for example 32 -bit floating point data used to represent 3-D mesh data
  • the hardware and specifically the multipliers are very expensive.
  • extending the 8 -bit DC size VLC table to very large N may exhibit a significant degradation in performance as compared to the optimized N- bit coders.
  • a progressive N- bit coder that is tailored to the SNR requirements and channel . capabilities of the users may improve overall 1 1 coding efficiency.
  • the M-bit video where M>>N is input to the N-bit progressive coder 80 which encodes each of the 8x8 pixel blocks in the base layer and then selectively encodes only those blocks in the enhancement layer (s) that require further coding to satisfy a target distortion.
  • the video frame 82 is passed through summing node 84 and controller 86 to an N- bit quantizer 88 that maps the M-bit data to an N-bit integer value introducing an error e(map) .
  • the quantizer also places the minimum and maximum values into the bitstream.
  • the N-bit integer values are passed to the N-bit coder 90 where they are encoded according to the extended I-frame and P-frame techniques described above introducing an error e(code) .
  • the coded video data is placed into the bitstream and fedback to reconstruct the quantized video frame. This is accomplished by decoding the coded video data 92, inverse quantizing the decoded data 94, delaying the data by a single frame Z ⁇ l and storing it in memory 96. Initially the memory is empty so that in the base layer there is nothing added to the quantized frame at summing node 98.
  • the reconstructed frame stored in memory 96 is subtracted from the video frame. If e(map) + e(code) ⁇ tolerance, controller 96 terminates the progressive coding. This can be done by comparing the frame's average block error to the tolerance so that coding of the entire frame terminates at once. Alternately, each block can be terminated individually. This is more difficult to administer but provides better performance in that the SNR of each block is approximately constant .
  • the prediction error block is again mapped from its M-bit value to an N-bit value by quantizer 88. Coding gain is achieved because the range of the error block is much 12 less than that of the corresponding block in the original video frame.
  • N-bit encoder 90 encodes the quantized values and the process repeats until controller 86 terminates all coding.
  • the goal in designing an N-bit progressive coder for a single user is to maximize the compression rate for a given SNR.
  • the general approach is to try to find a value of N and step-size Qp so that the coding can be done in a single pass to satisfy the SNR requirement.
  • FIG. 8 illustrates a typical rate distortion curve 100 for a two-pass N-bit progressive coder.
  • the diamonds depict different values of Qp in the base layer.
  • the rightmost diamond 102 corresponds to the minimum step-size, hence the minimum error for the selected value of N.
  • the circles depict different values of Qp in the enhancement layer where the minimum value of Qp was used in the base layer.
  • the rate distortion curve illustrates the flexibility in setting the SNR by the N-bit progressive coder and the improvement in mapping error provided by the second pass .
  • the N-bit progressive coder 80 can also be used to efficiently service multiple users 104 having varying SNR requirements and channel capacities 106.
  • the number of enhancement layers, the value of N and values for Qp are selected to reduce the overall bit rate required to provide the SNR required by each user. Although this may be an inefficient approach to service high SNR users, the overall bit rate can be reduced be sending relatively few bits in only the base layer to a large number of low SNR users.
  • the 8 -bit MPEG video coder may be updated and features added without changing the basic block DCT motion-compensated prediction architecture to which the invention applies.
  • Such variations and alternate embodiments are contemplated, and can be made without departing from the spirit and scope of the invention as defined in the appended claims.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

The existing 8-bit MPEG video coder is extended to an N-bit video coder, which can be implemented in hardware for a particular value of N or in a general purpose microprocessor for arbitrary values of N. I-frame coding is modified by: 1) extending the range of the quantized values of the non-predicted and predicted DC coefficients to [0,2N-1] and [-(2N-1),2N-1], respectively; 2) extending the 8-bit VLC table used to code the number of bits required to represent the predicted DC value to N-bits; and 3) when the variable length code selected from the VLC table for a particular DC value is longer than 8-bits, inserting a marker bit into the bitstream to avoid emulating start codes that are inserted into the bitstream to provide error resilience. P-frame coding is modified by scaling the decision thresholds used in the motion-compensated prediction by N¿B? = 2?N-8¿.

Description

N-BIT VIDEO CODER AND METHOD OF EXTENDING AN 8-BIT MPEG
VIDEO CODER
BACKGROUND OF THE INVENTION Field of the Invention
This invention relates to coding video data and more specifically to coding high resolution N-bit video data.
Description of the Related Art
The bandwidth requirements of video data requires that the video be compressed and coded for transmission or storage. Fortunately, video data exhibits substantial intraframe spatial correlation and interframe temporal correlation that can be exploited to compress the data with minimal visual artifacts. Entropy coding achieves bit rate reduction by using the statistical properties of the video data and, in theory, is lossless. The current Motion Picture Expert Group (MPEG2) standard documented in ISO/IEC 13818-2:1996 entitled "Information Technology; Generic Coding of Moving Pictures and Associated Audio Information: Video" and the developing MPEG4 standard for coding digital video receive 8-bit per pixel data and compress it to a desired bit rate or at a desired compression rate. The basic approach as shown in detail in FIG. 1 is to perform a two-dimensional discrete cosine transform (DCT) on 8x8 pixel blocks to reduce the intraframe spatial redundancy. This technique is used on the first frame to initiate coding and periodically thereafter to avoid error accumulation. The remaining P- frames are compressed by performing a motion-compensated prediction on adjacent frames to reduce temporal redundancy and then performing a two-dimensional DCT on 8x8 pixel blocks representing the prediction error in each frame to reduce the spatial redundancy. Entropy coding is then used to code the quantized DC and AC coefficients . Specifically, each I-frame is coded by disabling the motion estimation 10 and motion compensation 12 functions (switches S1,S2 and S3) and passing the original video frame 14 to a transform coder that independently transforms 8x8 pixel blocks using a two-dimensional DCT 16. The DC and 63 AC coefficients are quantized 18 by dividing each value by a step-size Qp, which has a 5-bit range. The step-size determines the amount of compression,- the larger Qp the greater the compression but the greater the coding error. The quantized coefficients are inverse quantized 20, inverse transformed 22, and stored directly in the frame buffer 24. The reconstructed frame is clipped so that it lies in a range of [0,255] .
The quantized I-frame coefficients are then coded 26 and output into a bitstream 28. If the DC value is less than a user specified threshold, the DC value is treated as the first AC coefficient. The AC coefficients are coded by reading them out in a zig-zag pattern, forming them into one or more symbols each comprised of three components; the number of zeros before the next non-zero coefficient, the value of the non-zero coefficient, and whether it is the last non-zero coefficient in the block, and Huffman coding the symbols. High quality statistics characterizing the symbol distribution are readily available for 8-bit video.
Otherwise, the user, based on his knowledge of the video characteristics, selects whether to code the DC value using a fixed code or to subject the DC value to a spatial prediction based upon the values of other DC coefficients in the current frame and use a hybrid fixed-variable length code. In the former case, the DC value is coded using an 8 -bit fixed code that specifies values over a range of
[0,255] . To enhance error resiliency by limiting the number of consecutive zeros in the bitstream, the value of 128, which would be represented as 10000000, is mapped to the value 255. Error resiliency is further enhanced by injecting start codes, e.g. twenty-three zeros followed by a number, in the bitstream when, for example, video transmission is first initiated, prior to each frame and possibly prior to certain blocks. Should the data become corrupted, the decoder can skip to the next start code and reacquire the coded video signal .
When the user enables intraframe DC prediction (MPEG provides several known techniques for DC prediction) , the residual values are coded using a hybrid fixed-variable length code that specifies values over a range of [- 255,255] . For example, the value 9 is coded using a fixed length code 1001 to represent the value and a VLC to represent the number of bits or "size" of the fixed length code. High quality statistics characterizing the size distribution are readily available for 8 -bit video and provide better compression than simple fixed length codes.
Each P-frame is encoded by enabling switches S1,S2 and S3 so that a motion compensated reconstructed frame is subtracted from the P-frame at summing node 30. The two- dimensional DCT 16 is performed on each 8x8 pixel block representing the prediction error in each frame, the coefficients are quantized 18 as before, although the value of Qp may be different, and passed to a P-frame entropy coder 32. The coefficients are inverse quantized 20, inverse transformed 22, added to the motion compensated reconstructed frame at summing node 34 and stored in the frame buffer. The prediction error frame is clipped at the output of the IDCT 22 to a range of [-255,255] .
Motion estimation finds the best match in the previous frame for each microblock, i.e. four 8x8 pixel blocks, in the current frame, represents the match with a motion vector and determines the optimal mode for coding the microblock. First, if the prediction error frame is larger than the current frame, motion estimation and compensation is disabled and the I-frame coding technique is used for that microblock. Second, assuming prediction does provide coding gain, if the difference between the prediction error associated with a zero motion vector and the best motion vector is less than a decision threshold the zero motion vector is selected. The motion vectors are VLC 35 based on a statistical distribution of motion vectors for 8-bit video data and placed in the bitstream. Since the zero motion vector is the most likely it is assigned the fewest bits, hence coding gain is achieved by selecting the zero motion vector when the prediction gain associated with the best motion vector is small. Third, assuming the best motion vector outperforms the zero motion vector, splitting the microblock into 4 8x8 blocks may enhance coding gain. If the difference between the sum of the prediction errors of the 4 blocks and the single microblock is less than a decision threshold, the single motion vector is selected. More bits are required to transmit four motion vectors than one, hence the coding gain associated with the split must justify the extra cost. If either modes 2 or 3 are selected, motion compensation 12 uses the motion vector (s) to get the corresponding blocks from the reconstructed frame in frame buffer 24 and move them to the correct locations in the current frame. The motion compensated frame is then subtracted from the current frame at summing node 30. If mode 1 is selected, the predictive loop is disabled.
Conventional sensors, e.g. infrared, x-ray, etc., generate video data with 8-bit precision. Thus, the standard 8 -bit MPEG video coder provides a good match. However, new technologies are providing sensor resolutions of 12-16 bits. The current approach is to conform the data to the 8-bit format via truncation or remapping. Although simple, this introduces significant mapping error and largely defeats the advantages provided by the higher precision sensors.
To date, the MPEG standardization committee has not adopted nor encouraged the development of high resolution N-bit coders that are optimized for the particular bit rate. MPEG encourages participants to use the available tools and to incorporate them in new tools for cost reasons. Optimized N-bit video coders would represent a significant increase in cost. Optimized N-bit coders require a large amount of training data for each value of N to develop the required statistics for the VLC tables. Since, the high precision sensors are an emerging technology this data is not available. A. Tanju Erdem et al, "Scalable extension of MEPG-2 for coding 10-bit video" SPIE Vol. 2186 Image and Video Compression 1994, pp. 245-256 describes and extension of the conventional 8 -bit progressive coding algorithm to 10- bit data. Progressive coding is used to progressively send 8-bit data over a band limited channel to a decoder where it is progressively reconstructed on the display. As shown in FIG. 1 on page 252, the 10 -bit data is mapped to an 8- bit format via downsampling and coded as the base layer. The reconstructed 8 -bit frame is subtracted from the 10 -bit frame, mapped to the 8 -bit format and coded as the enhancement layer. Although this approach reduces the mapping error, the coding efficiency is poor. The enhancement layer is a high pass version of the 10 -bit frame and thus exhibits very little spatial correlation. As a result, coding the enhancement layer requires a lot of bits. At rates just above 8-bits the loss of compression is not substantial, but at higher resolutions the coding inefficiency may be prohibitive.
SUMMARY OF THE INVENTION
In view of the above problems, the present invention provides a direct N-bit MPEG video coder that uses available MPEG tools and substantially eliminates mapping error without requiring N-bit statistics. This is accomplished by extending the existing 8 -bit MPEG video coder to an N-bit video coder, which can be implemented in hardware for a particular value of N or in a general purpose microprocessor for arbitrary values of N. I-frame coding is modified by 1) extending the range of the quantized values of the non-predicted and predicted DC coefficients to [0,2N-1] and [- (2N-1) , 2N-1] , respectively, 2) extending to N-bits the 8-bit VLC table used to code the number of bits required to represent the predicted DC value, and 3) when the code selected from the VLC table is longer than 8 bits, inserting a marker bit into the bitstream to avoid emulating start codes that are inserted into the bitstream to provide error resilience. P-frame coding is modified by scaling the decision thresholds used in the motion-compensated prediction by NB = 2N~8. In both cases, the saturation levels for clipping the inverse transformed frames are extended to N-bit values. Furthermore, the number of bits used to represent the quantizer step-size is preferably set at N-3 bits to maintain the same resolution as the 8 -bit MPEG video coder for 8-bit video. The N-bit coder may be incorporated in a progressive coding scheme to service multiple users having different SNR requirements and channel capacities or to code very high bitrate data such as 32 -bit floating point data.
These and other features and advantages of the invention will be apparent to those skilled in the art from the following detailed description of preferred embodiments, taken together with the accompanying drawings, in which:
BRIEF DESCRIPTION OF THE DRAWINGS FIG. 1, as described above, is a block diagram illustrating the standard 8 -bit MPEG video coder;
FIGs . 2a through 2c are flow charts illustrating the extension of the 8 -bit MPEG video coder to an N-bit coder in accordance with the present invention; FIG. 3 is' a table of the extended N-bit variable length codes for the DC size values,-
FIG. 4 is a block diagram of the N-bit coder,- 7
FIGs. 5a and 5b are SNR performance plots comparing N- bit coding to truncated 8 -bit coding for 12 -bit data;
FIG. 6 illustrates the use of N-bit coding in an 8 -bit video display application; FIG. 7 is a block diagram of a progressive video coder that uses the N-bit coder,-
FIG. 8 is a MSE performance plot of the progressive video coder,- and
FIG. 9 is a block diagram of a multi-user application of the progressive video coder.
DETAILED DESCRIPTION OF THE INVENTION
The present invention provides a technique for extending the 8 -bit MPEG video coder to an arbitrary N-bit coder. This is done using available MPEG tools and without requiring new statistics for the different N-bit values. The extension is accomplished by selectively extending a few critical parameters to N bits while leaving the others unchanged. The resulting N-bit coder provides substantial coding gain over either the data conforming or progressive coding techniques without departing from the goal of using available MPEG tools. Furthermore, the performance of the N-bit coder is only marginally inferior to optimized N-bit coders designed from scratch. The extension of the 8-bit MPEG video coder to an N- bit coder is depicted in FIGs. 2a-2c. As shown in FIG. 2a, the modifications occur in three categories: modification of the syntax (step 40) , extension of I-frame coding to N- bits (step 42) and extension of P-frame coding to N-bits (step 44) . The syntax of the video coder is modified when the video coder is being used in a simulation for design or testing purposes or when the video coder is implemented in a general purpose microprocessor that can code arbitrary- values of N. If the video coder is implemented in hardware for a particular value of N, the number of bits N and the number of bits for representing the step-sizes are hard coded. The syntax is modified by inserting the following code into the VideoObjectLayer of the 8-bit MPEG video coder: not_8_bit if (not_8_bit) { bits_per_pixel bits_per_Qp
} The not_8_bit signifies whether the video data precision is 8 bits per pixel. If the flag is set, the video coder reads the bits_per_pixel and the bits_per_Qp. The user can set the bits_per_Qp at whatever the user prefers. However, a value of N-3 will maintain the same resolution as the 8- bit MPEG video coder for 8-bit data.
As shown in FIG. 2b, I-frame coding is extended to N bits by first extending the range of the quantized values of the non-predicted and predicted DC coefficients to [0,2N- 1] and [- (2N-1) ,2N-1] , respectively (step 46). This is required to maintain the precision of the DC component of the video data. Second, the 8 -bit VLC table used to code the number of bits required to represent the predicted DC value is extended to N-bits (step 48) , as shown in detail in the VLC table 50 in FIG. 3. This increases the number of bits required to code the intraframe predicted DC values but greatly enhances the precision of the data. Since, the N-bit VLC table is an extension of an 8-bit table optimized for 8 -bit data it is, most likely, suboptimal. However, the performance degradation appears to be minimal for bit rates up to 16 bits. Third, when the code selected from the VLC table for a particular DC value is longer than 8 bits, a marker bit, i.e. a "1", is inserted into the bitstream to avoid emulating the start codes that are inserted into the bitstream to provide error resilience (step 52) . Lastly the saturation level for clipping the output of the inverse DCT is scaled to N-bits to match the range of the video data (step 54) .
As shown in FIG. 2c, P-frame coding is extended to N bits by scaling the decision thresholds used in the motion- compensated prediction by NB = 2N~8 (step 56) . The decision thresholds for modes 2 and 3 in the motion estimation are derived from 8 -bit data and thus must be scaled up to N bits. Otherwise the thresholds will be too low causing the coder to select the best motion vector in mode 2 to often and to select the four blocks over the single microblock to often in mode 3. The saturation level for clipping the output of the inverse DCT is also scaled to N-bits to match the range of the video data (step 58) . Applicant found that the 8 -bit MPEG coder could be effectively extended to an N-bit MPEG video coder without modifying every parameter or extending every VLC table . In particular the AC coefficients in both the I and P-frames and motion vectors for N-bit data can be coded using the 8- bit VLC tables. The VLC tables may be extended to N bits if warranted by a particular application or the characteristics of the video data. Furthermore, when an N- bit coder is used, the value of 128 does not have to be mapped to the value 255 to avoid zero accumulation. As shown in FIG. 4, the N-bit video coder 60 can be implemented in many different ways. First, the N-bit video coder can be simulated for design and testing purposes prior to finalizing the design and implementing it in hardware. At this stage, arbitrary bit rate coders can be simulated simply by changing the value of N. This is a very convenient design and testing feature. Second, the N- bit video coder can be implemented by programming a general purpose microprocessor. This is relatively complicated and expensive but allows the coder to handle arbitrary bit rate data. Current techniques must either map the data to 8 bits or use the inefficient progressive coding technique. Lastly, the N-bit video coder can be implemented in hardware that is specially designed for a specific bit rate and application. This simplifies the hardware and lowers cost.
The relative performance of Applicant's direct 12 -bit coder and the conventional truncation coding to 8 -bits is 10 shown in FIGs. 5a and 5b. As shown in FIG. 5a, for a desired bits/frame direct 12-bit coding maintains a PSNR 62 that is consistently 2dB better than the truncation coding PSNR 64. As shown in FIG. 5b, the direct 12-bit coder PSNR 66 consistently outperforms truncation coding PSNR 68. Note, as the bits/frame increases the truncation coding PSNR 68 flattens out. This technique can not recapture the mapping or truncation error no matter how many bits are used. Conversely, the direct 12 -bit coder PSNR 66 increases monotonically until the error between the reconstructed video at the decoder and the input video is virtually zero. The improvement in performance is mainly to the DC values of the reconstructed image which is particularly critical to perceived visual quality, much more so than AC values.
FIG. 6 illustrates one particularly useful application of the direct N-bit video coder. Current video display terminals 70 have only 8 -bit display capability 72 and thus can not display the N-bit video 74. However, the 8 -bit range 72 can be slid back-and- forth in the N-bit range 74 to optimize the visual display. Typically, the 8-bit range 72 might be centered in the middle of the N-bit range 74, which typically corresponds to the most information. However, if the video is very dark, i.e. the msbs are zero, the 8 -bit range can be slid towards the lsbs.
Although one of the advantages of the direct N-bit coder is to avoid the coding inefficiency of progressive coding, in some situations it may be useful to combine N- bit and progressive coding. For example, if N>>8, for example 32 -bit floating point data used to represent 3-D mesh data, the hardware and specifically the multipliers are very expensive. In addition, extending the 8 -bit DC size VLC table to very large N may exhibit a significant degradation in performance as compared to the optimized N- bit coders. In a multi-user environment, a progressive N- bit coder that is tailored to the SNR requirements and channel . capabilities of the users may improve overall 1 1 coding efficiency.
As shown in FIG. 7, the M-bit video where M>>N is input to the N-bit progressive coder 80 which encodes each of the 8x8 pixel blocks in the base layer and then selectively encodes only those blocks in the enhancement layer (s) that require further coding to satisfy a target distortion. In the base layer, the video frame 82 is passed through summing node 84 and controller 86 to an N- bit quantizer 88 that maps the M-bit data to an N-bit integer value introducing an error e(map) . The quantizer also places the minimum and maximum values into the bitstream.
The N-bit integer values are passed to the N-bit coder 90 where they are encoded according to the extended I-frame and P-frame techniques described above introducing an error e(code) . The coded video data is placed into the bitstream and fedback to reconstruct the quantized video frame. This is accomplished by decoding the coded video data 92, inverse quantizing the decoded data 94, delaying the data by a single frame Z~ l and storing it in memory 96. Initially the memory is empty so that in the base layer there is nothing added to the quantized frame at summing node 98.
In the first enhancement layer, the reconstructed frame stored in memory 96 is subtracted from the video frame. If e(map) + e(code) < tolerance, controller 96 terminates the progressive coding. This can be done by comparing the frame's average block error to the tolerance so that coding of the entire frame terminates at once. Alternately, each block can be terminated individually. This is more difficult to administer but provides better performance in that the SNR of each block is approximately constant .
Provided that the controller does not terminate coding, the prediction error block is again mapped from its M-bit value to an N-bit value by quantizer 88. Coding gain is achieved because the range of the error block is much 12 less than that of the corresponding block in the original video frame. N-bit encoder 90 encodes the quantized values and the process repeats until controller 86 terminates all coding. The goal in designing an N-bit progressive coder for a single user is to maximize the compression rate for a given SNR. The general approach is to try to find a value of N and step-size Qp so that the coding can be done in a single pass to satisfy the SNR requirement. If a single pass cannot be achieved or the value of N is too large to be cost efficient, then values of Qp for the first and second passes and the value of N are selected. Oftentimes, the maximum N may constitute overkill when multiple passes are used. FIG. 8 illustrates a typical rate distortion curve 100 for a two-pass N-bit progressive coder. The diamonds depict different values of Qp in the base layer. The rightmost diamond 102 corresponds to the minimum step-size, hence the minimum error for the selected value of N. The circles depict different values of Qp in the enhancement layer where the minimum value of Qp was used in the base layer. The rate distortion curve illustrates the flexibility in setting the SNR by the N-bit progressive coder and the improvement in mapping error provided by the second pass .
As shown in FIG. 9, the N-bit progressive coder 80 can also be used to efficiently service multiple users 104 having varying SNR requirements and channel capacities 106. The number of enhancement layers, the value of N and values for Qp are selected to reduce the overall bit rate required to provide the SNR required by each user. Although this may be an inefficient approach to service high SNR users, the overall bit rate can be reduced be sending relatively few bits in only the base layer to a large number of low SNR users.
While several illustrative embodiments of the invention have been shown and described, numerous 13 variations and alternate embodiments will occur to those skilled in the art. For example, the 8 -bit MPEG video coder may be updated and features added without changing the basic block DCT motion-compensated prediction architecture to which the invention applies. Such variations and alternate embodiments are contemplated, and can be made without departing from the spirit and scope of the invention as defined in the appended claims.

Claims

14 WE CLAIM :
1. A method of extending an 8 -bit Motion Picture Expert Group (MPEG) video coder to code N-bit video, said MPEG video coder a) performing a two-dimensional discrete cosine transform (DCT) on 8x8 pixel blocks on I-frames in an input video signal, quantizing the coefficients by dividing them by a step-size Qp, performing a prediction on adjacent 8x8 pixel blocks' quantized DC coefficients at a user's request, coding the quantized AC coefficients using run length and variable length codes (VLCs) , coding the quantized DC coefficients using fixed length codes to code the DC value and variable length codes (VLCs) to code the number of bits representing the DC value, when prediction is requested, and otherwise coding the DC value using fixed length codes, and inserting the codes into the bitstream and b) performing a motion-compensated prediction on adjacent P- frames of the input video signal using decision thresholds optimized for 8-bit video, performing the two- dimensional (DCT) on 8x8 pixel blocks representing the prediction error in each frame, quantizing the coefficients, coding the quantized DC and AC coefficients together using a single VLC and inserting the codes into the bitstream, comprising: modifying the coding of I-frames by, extending the range of the quantized values of the non-predicted and predicted DC coefficients to [0,2"- 1] and [- (2N-1) ,2N-1] , respectively; extending the 8-bit VLC table used to code the number of bits required to represent the predicted DC value to N-bits ,- and when the variable length code selected from the VLC table for a particular DC value is longer than 8 bits, inserting a marker bit into the bitstream to avoid emulating start codes that are inserted into the bitstream to provide error resilience, and modifying the coding of P-frames by, 15 scaling the decision thresholds used in the motion-compensated prediction by NB = 2N"8.
2. The method of claim 1, wherein the only VLC table that is extended is the VLC table used to code the number of bits required to represent the predicted DC value.
3. The method of claim 1, wherein the number of bits used to represent the quantizer step-size is set at N-3 bits to maintain the same resolution as the 8-bit MPEG video coder for 8-bit video.
4. The method of claim 1, wherein the video coder stores a reconstructed frame for use in the motion- compensated prediction that is clipped at an N-bit saturation level.
5. The method of claim 1, further comprising implementing the extended N-bit MPEG video coder in hardware for a fixed value of N so that N-bit data is directly coded without truncating or remapping the N-bit video to an 8-bit format.
6. The method of claim 1, further comprising; modifying the syntax of the 8-bit MPEG video coder to read the value of N and trigger the extension to an N-bit video coder when the video is not 8-bit data,- and programming a general purpose microprocessor with the extended 8-bit MPEG video coder so that said microprocessor is capable of directly coding arbitrary length N-bit video without truncating or remapping the N- bit video to an 8-bit format.
7. A N-bit Motion Picture Expert Group (MPEG) video coder, comprising: an I-frame coder that performs a two-dimensional discrete cosine transform (DCT) on 8x8 pixel blocks on I- 16 frames in an input video signal, quantizing the coefficients by dividing them by a step-size Qp to a value in a range [0,2N-1], performing a prediction on adjacent 8x8 pixel blocks' quantized DC coefficients at a user's request to values in a range [-(2N-1), (2N-1] , coding the quantized AC coefficients using run length and variable length codes (VLCs) , coding the quantized DC coefficients using fixed length codes unless prediction is requested in which case fixed length codes are used to code the value of the DC coefficient and N-bit variable length codes (VLCs) , extended from an 8-bit MPEG VLC table, are used to code the number of bits representing the value of the DC coefficient, and inserting the codes into the bitstream, said I-frame coder inserting a marker bit into the bitstream when the VLC selected for a particular value is longer than 8 bits to avoid emulating start codes that are inserted into the bitstream to provide error resilience,- and a P-frame coder that performs a motion- compensated prediction on adjacent P- frames of the input video signal using decision thresholds optimized for 8 -bit video and scaled by 2N"8, performing the two-dimensional
(DCT) on 8x8 pixel blocks representing the prediction error in each frame, quantizing the coefficients, coding the quantized DC and AC coefficients together using a single VLC and inserting the codes into the bitstream.
8. The N-bit coder of claim 7, wherein the I-frame and P-frame coder use only a single VLC table that is extended from an 8 -bit MPEG VLC table, said single VLC table being the VLC table used to code the number of bits required to represent the predicted DC value.
9. The N-bit coder of claim 7, wherein the I-frame and P-frame coders use N-3 bits to represent the quantizer step-size to maintain the same resolution as an 8-bit MPEG video coder for 8 -bit video. 17
10. The N-bit coder of claim 7, wherein the I-frame and P-frame coders store a reconstructed frame for use in the motion-compensated prediction that is clipped at an N- bit saturation level.
11. The N-bit coder of claim 7, wherein the N-bit video coder is implemented in hardware for a fixed value of N so that N-bit data is directly coded without truncating or remapping the N-bit video to an 8-bit format.
12. The N-bit coder of claim 8, wherein a general purpose microprocessor is programmed to implement the so that said microprocessor is capable of directly coding arbitrary length N-bit video without truncating or remapping the N-bit video to an 8-bit format.
13. A method of progressively coding M-bit video data into a bitstream, comprising: a) mapping each M-bit video frame to an N-bit format introducing an error e(map); b) coding the N-bit video frame using an N-bit coder introducing an error e(code), said N-bit coder being generated by extending an 8-bit Motion Picture Expert Group
(MPEG) video by, extending a range of the quantized values of non-predicted and predicted DC coefficients to [0,2N-1] and [- (2N-1) ,2N-1] , respectively; extending to N bits an 8-bit VLC table used to code a number of bits required to represent the predicted DC coefficient; when the variable length code selected from the VLC table for a particular DC value is longer than 8 bits, inserting a marker bit into the bitstream to avoid emulating start codes that are inserted into the bitstream to provide error resilience, and scaling decision thresholds used in a motion-compensated prediction within the 8-bit MPEG video coder by NB = 2N"8 ; c) placing the coded video data into the bitstream and using it to reconstruct the video frame,- d) subtracting the reconstructed video frame from the video frame,- e) repeating steps a through d until the total error e(map) + e(code) is less than a tolerance.
14. The method of claim 13, wherein the progressive coding of each said pixel block terminates when its total error e (map) + e(code) is less than said tolerance.
15. The method of claim 13, wherein the bitstream is transmitted to multiple users having different SNR requirements for the reconstructed video, said bitstream from the first coding pass being transmitted to all of the users and from all succeeding passes being transmitted to only those users that have not satisfied their respective SNR requirements .
16. A method of extending an 8 -bit Motion Picture Expert Group (MPEG) video coder to code N-bit video, comprising: modifying the coding of I-frames by, extending the range of the quantized values of the non-predicted and predicted DC coefficients to [0,2N- 1] and [- (2N-1) ,2N-1] , respectively; extending the 8 -bit VLC table used to code the number of bits required to represent the predicted DC value to N-bits,- and when the variable length code selected from ' the VLC table for a particular DC value is longer than 8 bits, inserting a marker bit into the bitstream to avoid emulating start codes that are inserted into the bitstream to provide error resilience, and modifying the coding of P-frames by, scaling the decision thresholds used in the 19 motion-compensated prediction by NB = 2N~8.
17. The method of claim 16, wherein the only VLC table that is extended is the VLC table used to code the number of bits required to represent the predicted DC value .
18. The method of claim 16, wherein the number of bits used to represent the quantizer step-size is set at N- 3 bits to maintain the same resolution as the 8-bit MPEG video coder for 8-bit video.
PCT/US1999/008922 1998-04-24 1999-04-23 N-bit video coder and method of extending an 8-bit mpeg video coder WO1999056472A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU35730/99A AU3573099A (en) 1998-04-24 1999-04-23 N-bit video coder and method of extending an 8-bit mpeg video coder

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US6582798A 1998-04-24 1998-04-24
US09/065,827 1998-04-24

Publications (1)

Publication Number Publication Date
WO1999056472A1 true WO1999056472A1 (en) 1999-11-04

Family

ID=22065373

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US1999/008922 WO1999056472A1 (en) 1998-04-24 1999-04-23 N-bit video coder and method of extending an 8-bit mpeg video coder

Country Status (2)

Country Link
AU (1) AU3573099A (en)
WO (1) WO1999056472A1 (en)

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003090470A3 (en) * 2002-04-19 2004-03-11 Microsoft Corp Methods and systems for preventing start code emulation at non-byte aligned and/or bit-shifted locations
US7024097B2 (en) 2000-08-15 2006-04-04 Microsoft Corporation Methods, systems and data structures for timecoding media samples
US7149247B2 (en) 2002-01-22 2006-12-12 Microsoft Corporation Methods and systems for encoding and decoding video data to enable random access and splicing
US7242437B2 (en) 2000-10-18 2007-07-10 Microsoft Corporation Compressed timing indicators for media samples
WO2008026896A1 (en) * 2006-08-31 2008-03-06 Samsung Electronics Co., Ltd. Video encoding apparatus and method and video decoding apparatus and method
EP1933565A1 (en) * 2006-12-14 2008-06-18 THOMSON Licensing Method and apparatus for encoding and/or decoding bit depth scalable video data using adaptive enhancement layer prediction
CN100448294C (en) * 2004-05-27 2008-12-31 学校法人大洋学园 Apparatus for scalable encoding/decoding of moving image and method thereof
WO2009031904A2 (en) * 2007-09-03 2009-03-12 Tandberg Telecom As Method for alternating entropy coding
US7505485B2 (en) 2002-01-22 2009-03-17 Microsoft Corporation Methods and systems for start code emulation prevention and data stuffing
US7609762B2 (en) 2003-09-07 2009-10-27 Microsoft Corporation Signaling for entry point frames with predicted first field
US7839930B2 (en) 2003-11-13 2010-11-23 Microsoft Corporation Signaling valid entry points in a video stream
US7852919B2 (en) 2003-09-07 2010-12-14 Microsoft Corporation Field start code for entry point frames with predicted first field
US7924921B2 (en) 2003-09-07 2011-04-12 Microsoft Corporation Signaling coding and display options in entry point headers
CN101083769B (en) * 2006-06-02 2011-05-25 三星电子株式会社 Coder/decoder and coding/decoding method for processing N bit video data
US8213779B2 (en) 2003-09-07 2012-07-03 Microsoft Corporation Trick mode elementary stream and receiver system
EP2187645A3 (en) * 2007-07-18 2012-10-24 Humax Co., Ltd. Adaptive bit-precision entropy coding
WO2014051860A1 (en) * 2012-09-25 2014-04-03 Apple Inc. Error resilient management of picture order count in predictive coding systems
US9264737B2 (en) 2012-10-01 2016-02-16 Apple Inc. Error resilient transmission of random access frames and global coding parameters
US9332309B2 (en) 2012-06-08 2016-05-03 Apple Inc. Sync frame recovery in real time video transmission system
US10271069B2 (en) 2016-08-31 2019-04-23 Microsoft Technology Licensing, Llc Selective use of start code emulation prevention

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5157489A (en) * 1991-10-28 1992-10-20 Virgil Lowe Apparatus and method for reducing quantizing distortion
EP0535571A2 (en) * 1991-09-30 1993-04-07 Eastman Kodak Company Modified Huffman encode/decode system with simplified decoding for imaging systems
JPH08256341A (en) * 1995-03-17 1996-10-01 Sony Corp Image signal coding method, image signal coder, image signal recording medium and image signal decoder

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0535571A2 (en) * 1991-09-30 1993-04-07 Eastman Kodak Company Modified Huffman encode/decode system with simplified decoding for imaging systems
US5157489A (en) * 1991-10-28 1992-10-20 Virgil Lowe Apparatus and method for reducing quantizing distortion
JPH08256341A (en) * 1995-03-17 1996-10-01 Sony Corp Image signal coding method, image signal coder, image signal recording medium and image signal decoder
US5751359A (en) * 1995-03-17 1998-05-12 Sony Corporation Method for quantizing compressed video signals

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
A TANJU ERDEM ET AL: "COMPRESSION OF 10-BIT VIDEO USING THE TOOLS OF MPEG-2", SIGNAL PROCESSING. IMAGE COMMUNICATION, vol. 7, no. 1, 1 March 1995 (1995-03-01), pages 27 - 56, XP000495183, ISSN: 0923-5965 *
PATENT ABSTRACTS OF JAPAN vol. 097, no. 002 28 February 1997 (1997-02-28) *
SYMES P D: "TEN-BIT PROCESSING IN AN 8-BIT ENVIRONMENT", SMPTE JOURNAL, vol. 98, no. 6, 1 June 1989 (1989-06-01), pages 444 - 446, XP000033810, ISSN: 0036-1682 *

Cited By (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7187845B2 (en) 2000-08-15 2007-03-06 Microsoft Corporation Methods, systems and data structures for timecoding media samples
US7024097B2 (en) 2000-08-15 2006-04-04 Microsoft Corporation Methods, systems and data structures for timecoding media samples
US7142775B2 (en) 2000-08-15 2006-11-28 Microsoft Corporation Methods, systems and data structures for timecoding media samples
US7248779B2 (en) 2000-08-15 2007-07-24 Microsoft Corporation Methods, systems and data structures for timecoding media samples
US7167633B2 (en) 2000-08-15 2007-01-23 Microsoft Corporation Methods, systems and data structures for timecoding media samples
US7171107B2 (en) 2000-08-15 2007-01-30 Microsoft Corporation Timecoding media samples
US7181124B2 (en) 2000-08-15 2007-02-20 Microsoft Corporation Methods, systems and data structures for timecoding media samples
US8698955B2 (en) 2000-10-18 2014-04-15 Microsoft Corporation Compressed timing indicators for media samples
US7242437B2 (en) 2000-10-18 2007-07-10 Microsoft Corporation Compressed timing indicators for media samples
US8269891B2 (en) 2000-10-18 2012-09-18 Microsoft Corporation Compressed timing indicators for media samples
US7633551B2 (en) 2000-10-18 2009-12-15 Microsoft Corporation Compressed timing indicators for media samples
US7505485B2 (en) 2002-01-22 2009-03-17 Microsoft Corporation Methods and systems for start code emulation prevention and data stuffing
US7149247B2 (en) 2002-01-22 2006-12-12 Microsoft Corporation Methods and systems for encoding and decoding video data to enable random access and splicing
US7839895B2 (en) 2002-01-22 2010-11-23 Microsoft Corporation Methods and systems for start code emulation prevention and data stuffing
US7248740B2 (en) 2002-04-19 2007-07-24 Microsoft Corporation Methods and systems for preventing start code emulation at locations that include non-byte aligned and/or bit-shifted positions
KR100895932B1 (en) * 2002-04-19 2009-05-07 마이크로소프트 코포레이션 Methods and systems for preventing start code emulation at locations that include non-byte aligned and/or bit-shifted positions
WO2003090470A3 (en) * 2002-04-19 2004-03-11 Microsoft Corp Methods and systems for preventing start code emulation at non-byte aligned and/or bit-shifted locations
US7852919B2 (en) 2003-09-07 2010-12-14 Microsoft Corporation Field start code for entry point frames with predicted first field
US7609762B2 (en) 2003-09-07 2009-10-27 Microsoft Corporation Signaling for entry point frames with predicted first field
US8213779B2 (en) 2003-09-07 2012-07-03 Microsoft Corporation Trick mode elementary stream and receiver system
US7924921B2 (en) 2003-09-07 2011-04-12 Microsoft Corporation Signaling coding and display options in entry point headers
US7839930B2 (en) 2003-11-13 2010-11-23 Microsoft Corporation Signaling valid entry points in a video stream
US8194748B2 (en) 2004-05-27 2012-06-05 Samsung Electronics Co., Ltd. Apparatus for scalable encoding/decoding of moving image and method thereof
CN100448294C (en) * 2004-05-27 2008-12-31 学校法人大洋学园 Apparatus for scalable encoding/decoding of moving image and method thereof
CN101083769B (en) * 2006-06-02 2011-05-25 三星电子株式会社 Coder/decoder and coding/decoding method for processing N bit video data
US8331433B2 (en) 2006-08-31 2012-12-11 Samsung Electronics Co., Ltd. Video encoding apparatus and method and video decoding apparatus and method
WO2008026896A1 (en) * 2006-08-31 2008-03-06 Samsung Electronics Co., Ltd. Video encoding apparatus and method and video decoding apparatus and method
EP1933565A1 (en) * 2006-12-14 2008-06-18 THOMSON Licensing Method and apparatus for encoding and/or decoding bit depth scalable video data using adaptive enhancement layer prediction
EP2187643A3 (en) * 2007-07-18 2012-10-24 Humax Co., Ltd. Adaptive bit-precision entropy coding
EP2187645A3 (en) * 2007-07-18 2012-10-24 Humax Co., Ltd. Adaptive bit-precision entropy coding
US8411745B2 (en) 2007-07-18 2013-04-02 Humax Co., Ltd. Method and apparatus for coding and decoding using bit-precision
WO2009031904A2 (en) * 2007-09-03 2009-03-12 Tandberg Telecom As Method for alternating entropy coding
WO2009031904A3 (en) * 2007-09-03 2009-05-14 Tandberg Telecom As Method for alternating entropy coding
US9332309B2 (en) 2012-06-08 2016-05-03 Apple Inc. Sync frame recovery in real time video transmission system
WO2014051860A1 (en) * 2012-09-25 2014-04-03 Apple Inc. Error resilient management of picture order count in predictive coding systems
US9491487B2 (en) 2012-09-25 2016-11-08 Apple Inc. Error resilient management of picture order count in predictive coding systems
US9264737B2 (en) 2012-10-01 2016-02-16 Apple Inc. Error resilient transmission of random access frames and global coding parameters
US10271069B2 (en) 2016-08-31 2019-04-23 Microsoft Technology Licensing, Llc Selective use of start code emulation prevention

Also Published As

Publication number Publication date
AU3573099A (en) 1999-11-16

Similar Documents

Publication Publication Date Title
EP1113672B1 (en) Quantization matrix for still and moving picture coding
KR100468844B1 (en) Optimal scanning method for transform coefficients in image and video coding/decoding
WO1999056472A1 (en) N-bit video coder and method of extending an 8-bit mpeg video coder
US6677868B2 (en) Entropy coding with adaptive syntax to replace high probability symbols with lower probabilities symbols
JP4800571B2 (en) Apparatus and method for encoding digital images in a lossless manner
EP1484926A2 (en) Adaptive variable-length coding and decoding methods for image data
US9077960B2 (en) Non-zero coefficient block pattern coding
JP2001045489A (en) Image prediction decoding method and system
JP2004531995A5 (en)
KR100654431B1 (en) Method for scalable video coding with variable GOP size, and scalable video coding encoder for the same
Yang et al. Generalized rate-distortion optimization for motion-compensated video coders
KR20050122275A (en) System and method for rate-distortion optimized data partitioning for video coding using parametric rate-distortion model
KR100801967B1 (en) Encoder and decoder for Context-based Adaptive Variable Length Coding, methods for encoding and decoding the same, and a moving picture transmission system using the same
US20100002946A1 (en) Method and apparatus for compressing for data relating to an image or video frame
KR101375302B1 (en) Apparatus and method of processing multimedia data
JP2002359852A (en) Device and method for predictive decoding of image
JP2002335532A (en) Picture prediction encoding method and its device
Gonzales et al. DCT-based video compression using arithmetic coding
Reed Improvement of MPEG-2 compression by position-dependent encoding
Hafner Image and video coding with weighted finite automata
JP2003163931A (en) Image-compressing apparatus and image-decoding apparatus
Muthu et al. Reduction of bitrate by cost calculation and macroblock level thresholding technique in H. 264 encoder
JP2002359851A (en) Device and method for predictively encoding image

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AL AM AT AU AZ BA BB BG BR BY CA CH CN CU CZ DE DK EE ES FI GB GE GH GM HR HU ID IL IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT UA UG UZ VN YU ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW SD SL SZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
NENP Non-entry into the national phase

Ref country code: KR

REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

AK Designated states

Kind code of ref document: A3

Designated state(s): AL AM AT AU AZ BA BB BG BR BY CA CH CN CU CZ DE DK EE ES FI GB GE GH GM HR HU ID IL IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT UA UG UZ VN YU ZW

AL Designated countries for regional patents

Kind code of ref document: A3

Designated state(s): GH GM KE LS MW SD SL SZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

122 Ep: pct application non-entry in european phase