WO2002049223A9 - Encoding and decoding of truncated scalable bitstreams - Google Patents
Encoding and decoding of truncated scalable bitstreamsInfo
- Publication number
- WO2002049223A9 WO2002049223A9 PCT/US2001/051122 US0151122W WO0249223A9 WO 2002049223 A9 WO2002049223 A9 WO 2002049223A9 US 0151122 W US0151122 W US 0151122W WO 0249223 A9 WO0249223 A9 WO 0249223A9
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- code
- decoding
- zeros
- string
- bitstreams
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/65—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience
- H04N19/68—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience involving the insertion of resynchronisation markers into the bitstream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/30—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
- H04N19/34—Scalability techniques involving progressive bit-plane based encoding of the enhancement layer, e.g. fine granular scalability [FGS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
- H04N19/89—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder
Definitions
- This invention relates to encoding and decoding of video signals, and , more particularly, to a method and apparatus for encoding and decoding of truncated scalable bitstreams used for streaming encoded video signals.
- a bitstream of each frame can be truncated into any number of bits and can still be decodable to reconstruct the frame.
- the video quality of the frame is proportional to the number of bits received and decoded by the decoder.
- Decoding of a truncated scalable bitstream requires special consideration compared with decoding of a regular complete non- scalable or layered scalable bitstream.
- the bitstream syntax defines what to expect in the input bits.
- the decoder knows where the bitstream ends for each frame according to the syntax definition.
- a truncated scalable bitstream contains an incomplete bitstream for each frame. The decoder does not know if a frame ends by just decoding the bitstream according to the syntax. It has to rely on the start code of the next frame to know that the current frame is ended.
- Each frame starts with a frame start code that is not emulated in the bitstream by design.
- all start codes have 32 bits starting with 23 zeros and a one. The last 8 bits are used to distinguish different start codes.
- decoding of the truncated bitstream is not normative.
- One suggested method for decoding a truncated bitstream is to look ahead 32 bits at every byte-aligned position in the bitstream indicated by a pointer. If the 32 bits form the frame start code, the decoder either completes decoding up to the frame start code or discards the few bits before the frame start code. Otherwise, the first 8 bits of the 32 bits are information bits to be decoded for the frame.
- the decoder moves forward the pointer by one byte and looks ahead another 32 bits to check for the frame start code.
- This method requires the decoder to look ahead into the bitstream, every time reading one byte out of the bitstream. This is not efficient because extra operations are needed for file or buffer access for the look ahead in addition to reading bits out of the file or buffer. It is among the objects of the present invention to devise a more efficient method that will enable decoding of a truncated bitstream without looking ahead.
- the present invention has application, inter allia, for use in conjunction with a video encoding/decoding technique wherein images are encoded into frame-representative bitstreams that include start codes and variable length codes and at least some of the bitstreams are truncated for streaming, ultimately, to a decoder for decoding .
- An embodiment of the method of the invention includes the following steps: selecting an end code having a value that is different than any start code and any variable length code of the bitstream; and appending the end code to the bitstreams.
- the decoding of the bitstream includes interpreting the code, or a portion thereof, as an invalid symbol that cannot be decoded.
- the decoding of the bitstream includes initiating a process of looking for the next start code after an invalid symbol has occured.
- the start code is a string of zeros followed by a one
- the end code is another string of zeros longer than the string of zeros of the start code.
- Figure 1 is a diagram illustrating decoding of a regular bitstream.
- Figure 2 is a diagram illustrating decoding of a truncated bitstream using looking ahead .
- Figure 3 is a diagram illustrating decoding a truncated bitstream without looking ahead.
- FIG. 4 is a block diagram of an apparatus which can be used in practicing embodiments of the invention.
- Figure 5 is a flow diagram of a routine for programming the encoder processor in accordance with an embodiment of the invention.
- Fig ure 6 is a flow diagram of a routine for programming the decoder processor in accordance with an embodiment of the invention .
- Figure 1 shows the decoding process of a regular complete bitstream.
- the decoder is able to decode the bitstream without looking ahead by following the syntax.
- Figure 2 describes the looking ahead method for decoding a truncated bitstream.
- the bitstream file or buffer has to be accessed twice for looking for the frame start code and reading bits out for decoding.
- Figure 3 illustrates operation consistent with an embodiment hereof that uses a frame end code to indicate a frame is ended.
- the frame end code is not put into the bitstream at the time of encoding, but at the time of truncating the bitstream for transmission. There is no need for looking ahead to search for the end code because the end code is chosen in such a way that it does not allow the decoder to reach the next frame start code with the decoding process.
- One choice for the frame end code is hereof is to use 32 bits of zeros. Since there is no start code emulation in the bitstream, the maximum number of consecutive zeros can only be 22.
- the decoder may take the first few zero bits in the frame end code as a part of a valid variable length code. However, it cannot pass the entire frame end code in a normal decoding process. Therefore, an error signal is set when the decoder gets into the frame end code. Then the decoder looks for the next frame start code to start decoding the
- a feature hereof is that the frame end code does not have to be standardized as long as the value of the frame end code is not one of the start codes and does not form any valid variable length code.
- the decoders that use the looking ahead method are able to decode the bitstreams with the frame end code. They can simply ignore the frame end code after finding the next frame start code.
- FIG. 3 there is shown a block diagram of an apparatus, at least parts of which can be used in practicing embodiments of the invention.
- a video camera 102 or other source of video signal, produces an array of pixel-representative signals that are coupled to an analog-to-digital converter 103, which is, in turn , coupled to the processor 1 10 of an encoder 105.
- the processor 1 10 and its associated circuits can be used to implement embodiments of the invention.
- the processor 1 10 may be any suitable processor, for example an electronic digital processor or microprocessor. It will be understood that any general purpose or special purpose processor, or other machine or circuitry that can perform the functions described herein, electronically, optically, or by other means, can be utilized.
- the processor 1 10 which for purposes of the particular described embodiments hereof can be considered as the processor or CPU of a general purpose electronic digital computer, will typically include memories 123, clock and timing circuitry 121 , input/output functions 1 18 and monitor 125, which may all be of conventional types.
- blocks 131 , 133, and 135 represent functions that can be implemented in hardware, software, or a combination thereof for implementing coding of the type employed for MPEG-4 video encoding.
- the block 131 represents a discrete cosine transform function that can be implemented , for example, using commercially available DCT chips or combinations of such chips with known software
- the block 133 represents a variable length coding (VLC) encoding function
- the block 135 represents other known MPEG-4 encoding modules, it being understood that onlyl those known functions needed in describing and implementing the invention are treated in describing
- an encoded output signal 101 is produced which can be a compressed version of the input signal 90 and requires less bandwidth and/or less memory for storage.
- the encoded signal 101 is shown as being coupled to a transmitter 135 for transmission over a communications medium (e.g . air, cable, network, fiber optical link, microwave link, etc.) 50 to a receiver 162.
- the encoded signal is also illustrated as being coupled to a storage medium 138, which may alternatively be associated with or part of the processor subsystem 1 10, and which has an output that can be decoded using the decoder to be described.
- a decoder 155 that includes a similar processor 160 (which will preferably be a microprocessor in decoder equipment) and associated peripherals and circuits of similar type to those described in the encoder. These include input/output circuitry 164, memories 168, clock and timing circuitry 173, and a monitor 176 that can display decoded video 100'. Also provided are blocks 181 , 183, and 185 that represent functions which (like their counterparts 131 , 133, and 135 in the encoder) can be implemented in hardware, software, or a combination thereof.
- the block 181 represents an inverse discrete cosine transform function
- the block 183 represents an inverse variable length coding function
- the block 185 represents other MPEG-4 decoding functions.
- the block 505 represents selection of an end code, in accordance with the principles hereof.
- the block 510 represents reading of the specified number of bytes to be streamed for a frame, designate Ns.
- the block 515 represents reading of the number of bytes to be encoded for the frame, designated Ne. Determination is made (decision block 520) as to whether Ns is greater than Ne. If so, Ns is set equal to Ne (since the number of bytes to be streamed for a frame cannot be greater than the number of encoded bits available), as represented by block 525, and block 540 is entered .
- Ns is not greater than Ne
- block 540 is entered directly.
- the block 540 represents reading Ns bytes from a file (or buffer) and moving a pointer by Ne-Ns bytes.
- the end code is appended to the end of Ns bytes (block 550), and the Ns bytes and the end code are streamed out (block 560).
- Determination is made (decision block 580) as to whether the last frame to be processed has been reached. If not, the next frame to be processed is input (block 585), the block 510 is re-entered, and the loop 590 is continued until all frames have been processed .
- FIG. 6 there is shown a flow diagram of a routine for programming the decoder processor in accordance with an embodiment of the invention.
- the block 610 represent reading of a byte from the bitstream. Determination is then made (decision block 615) as to whether a valid symbol can be decoded by the decoder. If so, the decoded symbol is output (block 620), and bock 610 is re-entered. If not, determination is made (decision block 630) as to whether the number of bits in the buffer is greater than the maximum code size. If not, the bock 610 is re-entered , and the described loops are continued until the number of bits in the buffer is greater than the maximum code size. The decision block 540 is then entered, and determination is made as to whether the end of the bitstream has been reached . If so, the processing of this bitstream is complete.
- a byte is read from the bitstream (block 650), and determination is made (decision block 660) as to whether the frame start code is in the buffer. If so, the block 610 is re-entered and another byte is read from the bitstream. If not, determination is made (decision block 680) as to whether the end of the bitstream has been reached. If not, block 650 is re-entered , and the process is continued until the end of the bitstream has been reached .
Abstract
Description
Claims
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
AU2002243421A AU2002243421A1 (en) | 2000-11-10 | 2001-11-09 | Encoding and decoding of truncated scalable bitstreams |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US24733400P | 2000-11-10 | 2000-11-10 | |
US60/247,334 | 2000-11-10 |
Publications (3)
Publication Number | Publication Date |
---|---|
WO2002049223A2 WO2002049223A2 (en) | 2002-06-20 |
WO2002049223A3 WO2002049223A3 (en) | 2002-09-06 |
WO2002049223A9 true WO2002049223A9 (en) | 2004-05-06 |
Family
ID=22934519
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US2001/051122 WO2002049223A2 (en) | 2000-11-10 | 2001-11-09 | Encoding and decoding of truncated scalable bitstreams |
Country Status (2)
Country | Link |
---|---|
AU (1) | AU2002243421A1 (en) |
WO (1) | WO2002049223A2 (en) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE69213511T2 (en) * | 1991-03-07 | 1997-04-17 | Mitsubishi Electric Corp | Encoding device for encoding a digital image signal |
US6222881B1 (en) * | 1994-10-18 | 2001-04-24 | Intel Corporation | Using numbers of non-zero quantized transform signals and signal differences to determine when to encode video signals using inter-frame or intra-frame encoding |
US6366704B1 (en) * | 1997-12-01 | 2002-04-02 | Sharp Laboratories Of America, Inc. | Method and apparatus for a delay-adaptive rate control scheme for the frame layer |
-
2001
- 2001-11-09 WO PCT/US2001/051122 patent/WO2002049223A2/en not_active Application Discontinuation
- 2001-11-09 AU AU2002243421A patent/AU2002243421A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
AU2002243421A1 (en) | 2002-06-24 |
WO2002049223A3 (en) | 2002-09-06 |
WO2002049223A2 (en) | 2002-06-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100727793B1 (en) | An apparatus and a method for coding video data, an apparatus and a method for decoding video data, an apparatus and a method for coding video data and for outputting coded video data to a plurality of receivers, a network system, and a computer readable medium | |
US6166664A (en) | Efficient data structure for entropy encoding used in a DWT-based high performance image compression | |
US6141453A (en) | Method, device and digital camera for error control and region of interest localization of a wavelet based image compression system | |
EP0665653B1 (en) | Apparatus and method for decoding variable-length code | |
US7688895B2 (en) | Method and/or circuit for binary arithmetic decoding decisions before termination | |
US20040260739A1 (en) | System and method for accelerating arithmetic decoding of video data | |
US6804405B2 (en) | Method and a system for coding rois | |
WO2007066121A2 (en) | Decoding data | |
US6285789B1 (en) | Variable length code decoder for MPEG | |
US20040086041A1 (en) | System and method for advanced data partitioning for robust video transmission | |
CN1726644B (en) | Apparatus and method for multiple description encoding | |
US5767799A (en) | Low power high speed MPEG video variable length decoder | |
US20060233262A1 (en) | Signaling of bit stream ordering in scalable video coding | |
US6144771A (en) | Method and apparatus for encoding and decoding images | |
US20030118102A1 (en) | Encoding and decoding of truncated scalable bitstreams | |
US20140092987A1 (en) | Entropy coding techniques and protocol to support parallel processing with low latency | |
EP1173027B1 (en) | Methods and apparatus for nearly lossless concatenated block transform coding | |
US20020136292A1 (en) | Encoding and decoding of video signals | |
WO2002049223A9 (en) | Encoding and decoding of truncated scalable bitstreams | |
WO2003067763A2 (en) | Video compression using analytical entropy coding | |
US6560288B1 (en) | Method and system for variable length decoding | |
Sementilli et al. | Progressive transmission in trellis coded quantization-based image coders | |
US5654704A (en) | Video variable length code encoder with EOB insertion responsive to word length | |
JPH0898181A (en) | Method and device for picture conversion | |
JP2638424B2 (en) | Variable length decoding device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AK | Designated states |
Kind code of ref document: A2 Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG UZ VN YU ZA ZW |
|
AL | Designated countries for regional patents |
Kind code of ref document: A2 Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ 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 TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
REG | Reference to national code |
Ref country code: DE Ref legal event code: 8642 |
|
32PN | Ep: public notification in the ep bulletin as address of the adressee cannot be established |
Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE69(1)EPC.FORM 1205A EPO DATED: 19.08.03 |
|
122 | Ep: pct app. not ent. europ. phase | ||
COP | Corrected version of pamphlet |
Free format text: PAGE 8, DESCRIPTION, REPLACED BY CORRECT PAGE 8; PAGES 1/4-4/4, DRAWINGS, REPLACED BY NEW PAGES 1/4-4/4; DUE TO LATE TRANSMITTAL BY THE RECEIVING OFFICE |
|
NENP | Non-entry into the national phase in: |
Ref country code: JP |
|
WWW | Wipo information: withdrawn in national office |
Country of ref document: JP |