Entropy coding and decoding techniques are described, which may be implemented separately or in combination. For example, a video encoder uses two-layer run level coding to reduce bitrate for frequency transform coefficients in a quick and efficient manner, and a video decoder uses corresponding two
Entropy coding and decoding techniques are described, which may be implemented separately or in combination. For example, a video encoder uses two-layer run level coding to reduce bitrate for frequency transform coefficients in a quick and efficient manner, and a video decoder uses corresponding two-layer run level decoding. This two-layer coding/decoding can be generalized to more than two layers of run level coding/decoding. The video encoder and decoder exploit common patterns in run level information to reduce code table size and create opportunities for early termination of decoding. Using zoned Huffman code tables helps limit overall table size while still providing a level of adaptivity in encoding and decoding. Using embedded Huffman code tables allows the encoder and decoder to reuse codes for 8×8, 8×4, 4×8, and 4×4 blocks.
대표청구항▼
We claim: 1. In a computing device that implements a video encoder, a method comprising: with the computing device that implements the video encoder, encoding one or more video images, including processing run-level information in a two-layer representation for a sequence of values for the one or m
We claim: 1. In a computing device that implements a video encoder, a method comprising: with the computing device that implements the video encoder, encoding one or more video images, including processing run-level information in a two-layer representation for a sequence of values for the one or more video images, wherein the processing includes: run-level encoding the sequence of values as a sequence of plural first-layer run-level pairs that include plural first-layer runs and plural first-layer levels; and run-level encoding a sequence of the plural first-layer runs as a sequence of one or more second-layer run-level pairs, wherein each of the one or more second-layer run-level pairs includes a second-layer run and a second-layer level, the second-layer run representing a count of consecutive first-layer runs classified as having an insignificant run value, and the second-layer level representing a single adjacent first-layer run classified as having a significant run value; and from the computing device that implements the video encoder, outputting a result of the encoding the one or more video images. 2. The method of claim 1 wherein the values are frequency transform coefficients. 3. The method of claim 2 wherein the sequence of values is zigzag scanned using a scan pattern selected from among plural available scan patterns for variable-size blocks. 4. The method of claim wherein each of the plural first-layer runs represents a run of zero or more zero values in the sequence of values. 5. The method of claim 1 wherein the count of consecutive first-layer runs is a count of first-layer runs with run value of zero. 6. The method of claim 1 wherein the single first-layer run with the significant run value has a run value higher than zero. 7. The method of claim 1 further including processing the second-layer run using a separate Huffman code per second-layer run. 8. The method of claim 1 further including processing the second-layer level using a separate Huffman code per second-layer level. 9. The method of claim 1 further including processing a count of significant second-layer runs, wherein the count of significant second-layer runs at least in part enables reduction in code table size and/or early termination of decoding. 10. The method of claim 1 wherein the processing includes using embedded Huffman code tables for the information in the two-layer representation, and wherein the embedded Huffman code tables are shared for plural different variable-size blocks. 11. The method of claim 1 wherein the processing includes using zoned Huffman code tables for the information in the two-layer representation. 12. The method of claim 1 wherein the outputting the result comprises signaling the encoded run-level information as part of a bit stream. 13. In a computing device that implements a video decoder, a method comprising: with the computing device that implements the video decoder, decoding one or more video images, including, for each of plural sequences of frequency transform coefficients for the one or more video images, processing run-level information for the sequence in a two-layer representation, including: run-level decoding a sequence of one or more second-layer run-level pairs that represent a sequence of plural first-layer runs, wherein each of the one or more second-layer run-level pairs includes a second-layer run and a second-layer levels, the second-layer run representing a count of consecutive first-layer runs classified as having an insignificant run value, and the second-layer level representing a single adjacent first-layer run classified as having a significant run value; and run-level decoding the plural first-layer runs and plural first-layer levels to reconstruct the sequence of frequency transform coefficients; and from the computing device that implements the video decoder, outputting a result of the decoding the one or more video images. 14. The method of claim 13 wherein each of the plural first-layer runs represents a run of zero or more zero values in the sequence. 15. The method of claim 13 wherein the count of consecutive first-layer runs is a count of first-layer runs with run value of zero. 16. The method of claim 13 wherein the single first-layer run with the significant run value has a run value higher than zero. 17. The method of claim 13 wherein the outputting the result comprises outputting for display one or more video pictures reconstructed based at least in part upon the plural sequences of frequency transform coefficients. 18. In a computing device that implements a video encoder, a method comprising: with the computing device that implements the video encoder, encoding one or more video images, including, for each of plural sequences of frequency transform coefficients for the one or more video images, processing run-level information for the sequence in a two-layer representation, including: run-level encoding the sequence of frequency transform coefficients as a sequence of plural first-layer run-level pairs that include plural first-layer runs and plural first-layer levels; and run-level encoding a sequence of the plural first-layer levels as a sequence of one or more second-layer run-level pairs, wherein each of the one or more second-layer run-level pairs includes a second-layer run and a second-layer level, the second-layer run representing a count of consecutive first-layer levels classified as having an insignificant level value, and the second-layer level representing a single adjacent first-layer level classified as having a significant level value; and from the computing device that implements the video encoder, outputting a result of the encoding the one or more video images. 19. The method of claim 18 wherein each of the plural first-layer levels represents a non-zero value in the sequence. 20. The method of claim 18 wherein the count of consecutive first-layer levels is a count of first-layer levels with an absolute value of one. 21. The method of claim 18 wherein the single first-layer level with the significant level value has an absolute value of two or more. 22. The method of claim 18 wherein the outputting the result comprises signaling encoded run-level information as part of a bit stream. 23. In a computing device that implements a video decoder, a method comprising: with the computing device that implements the video decoder, decoding one or more video images, including processing run-level information in a two-layer representation for a sequence of values for the one or more video images, wherein the processing includes: run-level decoding a sequence of one or more second-layer run-level pairs that represent a sequence of plural first-layer levels, wherein each of the one or more second-layer run-level pairs includes a second-layer run and a second-layer level, the second-layer run representing a count of consecutive first-layer levels classified as having an insignificant level value, and the second-layer level representing a single adjacent first-layer level classified as having a significant level value; and run-level decoding plural first-layer runs and the plural first-layer levels to reconstruct the sequence of values; and from the computing device that implements the video decoder, outputting a result of the decoding the one or more video images. 24. The method of claim 23 wherein each of the plural first-layer levels represents a non-zero value in the sequence of values. 25. The method of claim 23 wherein the count of consecutive first-layer levels is a count of first-layer levels with an absolute value of one. 26. The method of claim 23 wherein the single first-layer level with the significant level value has an absolute value of two or more. 27. The method of claim 23 further including processing the second-layer run using a separate Huffman code per second-layer run. 28. The method of claim 23 further including processing the second-layer level using a separate Huffman code per second-layer level. 29. The method of claim 23 further including processing a count of significant second-layer levels, wherein the count of significant second-layer levels at least in part enables reduction in code table size and/or early termination of decoding. 30. The method of claim 23 wherein the outputting the result comprises outputting for display one or more video pictures reconstructed based at least in part upon the sequence of values. 31. One or more computer-readable memory storage media storing computer-executable instructions for causing a computing device implementing a video encoder programmed thereby to perform a method for encoding video, the method comprising: with the computing device that implements the video encoder, encoding one or more video images, including processing run-level information in a two-layer representation for a sequence of values for the one or more video images, wherein the processing includes: run-level encoding the sequence of values as a sequence of plural first-layer run-level pairs that include plural first-layer runs and plural first-layer levels; and run-level encoding a sequence of the plural first-layer runs as a sequence of one or more second-layer run-level pairs, wherein each of the one or more second-layer run-level pairs includes a second-layer run and a second-layer level, the second-layer run representing a count of consecutive first-layer runs classified as having an insignificant run value, and the second-layer level representing a single adjacent first-layer run classified as having a significant run value; and from the computing device that implements the video encoder, outputting a result of the encoding the one or more video images. 32. The computer-readable memory storage media of claim 31 wherein each of the plural first-layer runs represents a run of zero or more zero values in the sequence of values. 33. The computer-readable memory storage media of claim 31 wherein the count of consecutive first-layer runs is a count of first-layer runs with run value of zero. 34. The computer-readable memory storage media of claim 31 wherein the single first-layer run with the significant run value has a run value higher than zero. 35. The computer-readable memory storage media of claim 31 wherein the method further includes processing the second-layer run using a separate Huffman code per second-layer run. 36. The computer-readable memory storage media of claim 31 wherein the method further includes processing the second-layer level using a separate Huffman code per second-layer level. 37. The computer-readable memory storage media of claim 31 wherein the method further includes processing a count of significant second-layer runs, wherein the count of significant second-layer runs at least in part enables reduction in code table size and/or early termination of decoding. 38. One or more computer-readable memory storage media storing computer-executable instructions for causing a computing device that implements a video decoder programmed thereby to perform a method for decoding video, the method comprising: with the computing device that implements the video decoder, decoding one or more video images, including, for each of plural sequences of frequency transform coefficients for the one or more video images, processing run-level information for the sequence in a two-layer representation, including: run-level decoding a sequence of one or more second-layer run-level pairs that represent a sequence of plural first-layer runs, wherein each of the one or more second-layer run-level pairs includes a second-layer run and a second-layer levels, the second-layer run representing a count of consecutive first-layer runs classified as having an insignificant run value, and the second-layer level representing a single adjacent first-layer run classified as having a significant run value; and run-level decoding the plural first-layer runs and plural first-layer levels to reconstruct the sequence of frequency transform coefficients; and from the computing device that implements the video decoder, outputting a result of the decoding the one or more video images. 39. The computer-readable memory storage media of claim 38 wherein each of the plural first-layer runs represents a run of zero or more zero values in the sequence. 40. The computer-readable memory storage media of claim 38 wherein the count of consecutive first-layer runs is a count of first-layer runs with run value of zero. 41. The computer-readable memory storage media of claim 38 wherein the single first-layer run with the significant run value run has a run value higher than zero. 42. One or more computer-readable memory storage media storing computer-executable instructions for causing a computing device that implements a video encoder programmed thereby to perform a method for encoding video, the method comprising: with the computing device that implements the video encoder, encoding one or more video images, including, for each of plural sequences of frequency transform coefficients for the one or more video images, processing run-level information for the sequence in a two-layer representation, including; run-level encoding the sequence of frequency transform coefficients as a sequence of plural first-layer run-level pairs that include plural first-layer runs and plural first-layer levels; and run-level encoding a sequence of the plural first-layer levels as a sequence of one or more second-layer run-level pairs, wherein each of the one or more second-lever run-level pairs includes a second-layer run and a second-layer level, the second-layer run representing a count of consecutive first-layer levels classified as having an insignificant level value, and the second-layer level representing a single adjacent first-layer level classified as having a significant level value; and from the computing device that implements the video encoder, outputting a result of the encoding the one or more video images. 43. The computer-readable memory storage media of claim 42 wherein each of the plural first-layer levels represents a non-zero value in the sequence. 44. The computer-readable memory storage media of claim 42 wherein the count of consecutive first-layer levels is a count of first-layer levels with an absolute value of one. 45. The computer-readable memory storage media of claim 42 wherein the single first-layer level with the significant level value has an absolute value of two or more. 46. One or more computer-readable memory storage media storing computer-executable instructions for causing a computing device that implements a video decoder programmed thereby to perform a method for decoding video, the method comprising: with the computing device that implements the video decoder, decoding one or more video images, including processing run-level information in a two-layer representation for a sequence of values for the one or more video images, wherein the processing includes: run-level decoding a sequence of one or more second-layer run-level pairs that represent a sequence of plural first-layer levels, wherein each of the one or more second-layer run-level pairs includes a second-layer run and a second-layer level, the second-layer run representing a count of consecutive first-layer levels classified as having an insignificant level value, and the second-layer level representing a single adjacent first-layer level classified as having a significant level value; and run-level decoding plural first-layer runs and the plural first-layer levels to reconstruct the sequence of values; and from the computing device that implements the video decoder, outputting a result of the decoding the one or more video images. 47. The computer-readable memory storage media of claim 46 wherein each of the plural first-layer levels represents a non-zero value in the sequence of values. 48. The computer-readable memory storage media of claim 46 wherein the count of consecutive first-layer levels is a count of first-layer levels with an absolute value of one. 49. The computer-readable memory storage media of claim 46 wherein the single first-layer level with the significant level value has an absolute value of two or more. 50. The computer-readable memory storage media of claim 46 wherein the method further includes processing the second-layer run using a separate Huffman code per second-layer run. 51. The computer-readable memory storage media of claim 46 wherein the method further includes processing the second-layer level using a separate Huffman code per second-layer level. 52. The computer-readable memory storage media of claim 46 wherein the method further includes processing a count of significant second-layer levels, wherein the count of significant second-layer levels at least in part enables reduction in code table size and/or early termination of decoding.
연구과제 타임라인
LOADING...
LOADING...
LOADING...
LOADING...
LOADING...
이 특허에 인용된 특허 (107)
Puri Atul (New York NY) Aravind Rangarajan (Matawan NJ), Adaptive coding and decoding of frames and fields of video.
Uwe Gbur DE; Martin Dietz DE; Karlheinz Brandenburg DE; Heinz Gerhauser DE; Jurgen Herre DE; Schuyler Quackenbush, Coding and decoding of audio signals by using intensity stereo and prediction processes.
Mairs Christopher J.,GBX ; Downes Anthony M.,GBX ; MacFarquhar Roderick F.,GBX ; Hughes Kenneth P.,GBX ; Pollitt Alex J.,GBX ; Batty John P.,GBX ; Berry Mark E.,GBX, Compressing/decompressing bitmap by performing exclusive- or operation setting differential encoding of first and previous row therewith outputting run-length encoding of row.
Miller Sidney D. (Mt. View CA) Smidth Peter (Menlo Park CA) Coleman Charles H. (Redwood City CA), Data compression using a feedforward quantization estimator.
Martin Dietz DE; Ali Nowbakht-Irani DE; Ralph Sperschneider DE; Oliver Kunz DE, Device and method for entropy encoding of information words and device and method for decoding entropy-encoded information words.
Azadegan Faramarz (Brookfield CT) Fisch Eberhard H. (Yonkers NY) Cavallerano Alan P. (Ossining NY) Tsinberg Mikhail (Riverdale NY), Method and apparatus for digitally processing a high definition television augmentation signal.
Azadegan Faramarz (Ossining NY) Fisch Eberhard H. (Yonkers NY), Method and apparatus for digitally processing a high definition television augmentation signal.
Dobson Kurt ; Whitney Nathan ; Smart Kevin ; Rigstad Peter ; Yang Jack, Method and apparatus for wavelet based data compression having adaptive bit rate control for compression of digital audi.
Laney Stuart T. (Seattle WA) Ledoux Eric (Redmond WA) Maymudes David M. (Seattle WA) Miller Daniel J. (Redmond WA), Method and system for compressing video data.
Callaway Janet R. (Austin TX) McConaughy John M. (Austin TX) Pancoast Steven T. (Austin TX) Thompson Joan M. (Albuquerque NM), Method of and system for updating a display unit.
Mahieux Yannick (Josselin FRX) Charbonnier Alain (Versailles FRX), Method of transmitting or storing sound signals in digital form through predictive and adaptive coding and installation.
Tsutsui Kyoya,JPX ; Heddle Robert,JPX, Method, apparatus and recording medium for coding of separated tone and noise characteristic spectral components of an a.
Luttmer Maurice Lambert Martin,NLX, Method, apparatus, and article of manufacture for performing image processing operations on runlength-encoded bitmaps.
Sperschneider, Ralph; Dietz, Martin; Ehret, Andreas; Brandenburg, Karlheinz; Gerhaeuser, Heinz; Nowbakht-Irani, Ali; Lauber, Pierre; Bitto, Roland, Methods and devices for coding or decoding an audio signal or bit stream.
Liljeryd, Lars Gustaf; Ekstrand, Per Rune Albin; Henn, Lars Fredrik; Kjorling, Hans Magnus Kristofer, Source coding enhancement using spectral-band replication.
Molnar, Steven E.; Schneider, Bengt-Olaf; Montrym, John; Van Dyke, James M.; Lew, Stephen D., System and method for real-time compression of pixel colors.
Sirat Jacques A. (Limeil Brevannes FRX) Oddou Christophe (Ablon S/S FRX), System for transmitting and/or storing signals corresponding to textured pictures.
Maine, Stephen Jared; Coulson, Michael J.; Vishwanath, Tirunelveli R.; Christensen, Erik B., Conversion of hierarchical infoset type data to binary data.
Poole, David K., Method and apparatus for using data compression techniques to increase a speed at which documents are scanned through a scanning device.
Poole, David K., Method and apparatus for using data compression techniques to increase a speed at which documents are scanned through a scanning device.
Park, Joonyoung; Kim, Sangchul; Park, Seungwook; Lim, Jaehyun; Jeon, Yongjoon; Jeon, Byeongmoon; Choi, Younghee; Sung, Jaewon; Kim, Jungsun; Kim, Jingyeong; Chung, Taeil, Method for encoding and decoding image and device using same.
Park, Joonyoung; Kim, Sangchul; Park, Seungwook; Lim, Jaehyun; Jeon, Yongjoon; Jeon, Byeongmoon; Choi, Younghee; Sung, Jaewon; Kim, Jungsun; Kim, Jingyeong; Chung, Taeil, Method for encoding and decoding image and device using same.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.