US6614845B1 - Method and apparatus for differential macroblock coding for intra-frame data in video conferencing systems - Google Patents
Method and apparatus for differential macroblock coding for intra-frame data in video conferencing systems Download PDFInfo
- Publication number
- US6614845B1 US6614845B1 US08/941,785 US94178597A US6614845B1 US 6614845 B1 US6614845 B1 US 6614845B1 US 94178597 A US94178597 A US 94178597A US 6614845 B1 US6614845 B1 US 6614845B1
- Authority
- US
- United States
- Prior art keywords
- macroblock
- coding
- difference
- frame
- encoding
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime, expires
Links
Images
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/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/593—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
-
- 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/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
Definitions
- the present invention relates generally to data compression for the coding of video image signals. More particularly, the invention relates to a method for coding a macroblock for intra-frame data representing the digital embodiment of video image signals in video conferencing systems.
- DCT discrete cosine transform
- JPEG Joint Picture Experts Group
- temporal compression is frequently used for video signals other than television video signals.
- Video conferencing for example, frequently applies temporal compression for purposes of video compression, pursuant to the Motion Picture Experts Group (MPEG) standard.
- MPEG Motion Picture Experts Group
- Motion compensation is a method of predicting one frame based upon an earlier frame. For example, in motion compensation, a predicted frame (P-frame) is based on an intra-coded frame (I-frame, that is, a frame that has only been spatially coded). In this manner, using temporal compression, the P-frame is coded based on the I-frame.
- I-frame intra-coded frame
- H.324 For example, has established the H.324 standard for the transmission of low bit-rate multimedia over general switched telephone networks, which includes video conferencing.
- the H.324 video conferencing standard generally utilizes the H.263 video coding system.
- H.324 also plans to incorporate a proposed improvement for H.263, namely, H.263+ as well as H.263++.
- H.263 represents the most recognized form of video compression for video conferencing, including the various MPEG standards, such as MPEG-1 and MPEG-2, which use the H.324/H.263 standard.
- the proposed MPEG-4 standard will also incorporate the H.324/H.263 standard.
- the present invention is directed to a method that substantially obviates one or more of the problems due to the limitations, shortcomings, and disadvantages of the related art.
- One advantage of the invention is greater efficiency in video compression by reducing spatial redundancy through improvements in intra-frame coding.
- Another advantage of the invention is the improvement of the standard coding protocols, such as the H.263 video coding standard and the H.324 video conferencing standard, which ensures forward compatibility.
- one aspect of the invention includes a method of data compression. This method comprises receiving a plurality of macroblocks; selecting one of the macroblocks; determining a difference between the selected macroblock and at least one other macroblock; and encoding the selected macroblock based on the difference.
- a further aspect of the invention includes a method of coding and decoding. This method comprises encoding a coding macroblock based on a difference between the coding macroblock and a reference macroblock; and decoding the coding macroblock based on the difference between the coding macroblock and the reference macroblock.
- Another aspect of the invention includes a method of coding.
- This method comprises a storing component configured to store a reference macroblock; a receiving component configured to receive a coding macroblock to be coded; a determining component configured to determine a difference between the coding macroblock and the reference macroblock; and an encoding component configured to encode the coding macroblock based on the difference.
- Still another aspect of the invention includes a method of decoding.
- This method comprises a storing component configured to store a reference macroblock; a receiving component configured to receive a coded macroblock, which was coded based on a difference with the reference macroblock; and a decoding component configured to decode the coded macroblock based on the difference.
- FIG. 1 is a block diagram of a video conferencing system
- FIG. 2 is a block diagram of a terminal from the video conferencing system in FIG. 1;
- FIG. 3 is a block diagram of a codec utilizing the H.324 video conferencing standard and the H.263 video coding standard from the terminal in FIG. 2;
- FIG. 4 is a block diagram of a source coder from the video codec in FIG. 3;
- FIG. 5 is a block diagram used to explain a sample video sequence
- FIG. 6 is a diagram used to explain a sample of the blocks in a macroblock as depicted in FIG. 5;
- FIG. 7 is a diagram used to explain a sample of the structure of a macroblock layer using the H.263 standard
- FIG. 8 is a diagram used to explain the standard syntax for the macroblock layer utilizing the H.263 standard
- FIG. 9 is a diagram used to explain the syntax for intra-frame coding of a macroblock utilizing the H.263 standard.
- FIG. 10 is a block diagram of an embodiment of the improved syntax for coding a macroblock utilizing the H.263 standard
- FIG. 11 is a block diagram of an embodiment of the improved structure for the macroblock layer utilizing the H.263 standard
- FIG. 12 is a-diagram used to explain a sample of the arrangement of blocks in a macroblock from a slice from the picture shown in FIG. 5;
- FIG. 13 is a diagram of three macroblocks arranged with one macroblock beside another macroblock and under another macroblock;
- FIG. 14 is a block diagram of the three comparison macroblocks of FIG. 13;
- FIG. 15 is a diagram of a sample representation of the DCT values contained within the three macroblocks of FIG. 13;
- FIGS. 16A and 16B are diagrams of macroblocks after computation of a difference with the other macroblocks depicted in FIG. 15;
- FIG. 17 is a diagram of an example of the efficiency improvement gained by the claimed macroblock coding technique.
- FIG. 18 is another diagram of an example of the efficiency improvement gained by the claimed macroblock coding technique
- FIG. 19 is a graph depicting the efficiency improvement gained by the claimed macroblock coding technique.
- FIG. 20 is another graph depicting the efficiency improvement gained by the claimed macroblock coding technique.
- Methods consistent with the invention avoid the inefficiencies of the prior art video compression techniques by diminishing spatial redundancy in current intra-frame (I-frame) coding.
- the methods use the structure of the H.324 video conferencing standard as well as the structure of the H.263 video coding standard.
- the recommendation reports for these standards as described in International Telecommunication Union, Telecommunication Standardization Sector, Recommendation H.324, Terminal for Low Bit Rate Multimedia Communication (March 1996), and International Telecommunication Union, Telecommunication Standardization Sector, Recommendation H.263, Video Coding for Low Bit Rate Communication (March 1996), are hereby incorporated by reference.
- an implementation consistent with the invention provides for comparing a coding macroblock to at least one other reference macroblock in order to determine a difference.
- the coding macroblock is then encoded with the difference.
- One implementation consistent with the invention also results in the addition of two components to the protocol structure of the macroblock layer in the H.263 standard.
- a value is assigned to a difference component to indicate the encoding of the coding macroblock
- a value is assigned to a reference component to indicate the location of the reference macroblock.
- the method is not used, and the difference component indicates no coding, and the reference macroblock is not utilized.
- the comparison of macroblocks occurs by comparing the coding macroblock against the macroblock immediately left of the coding macroblock and immediately above the coding macroblock, if a macroblock exists at either or both of these positions.
- the methods similarly operate in comparison to other macroblocks as reference macroblocks with similar gains in efficiency. Additionally, the methods may also operate on other levels of the video sequence, including blocks and groups of blocks (or slices of video).
- FIG. 1 illustrates a video conferencing system according to the present invention.
- System 5 comprises an external computer or other dedicated device 10 , data application 20 , terminal 30 , modem 40 , and general switched telephone network (GSTN) 50 .
- External computer 10 implements video conferencing with data application 20 , transmitting the video, audio, and data.
- External computer 10 and data application 20 then interact with terminal 30 .
- terminal 30 encodes the video, audio, and data and then transmits the encoded information to modem 40 , which transmits the information to GSTN 50 .
- modem 40 which transmits the information to GSTN 50 .
- FIG. 1 illustrates a video conferencing system according to the present invention.
- System 5 comprises an external computer or other dedicated device 10 , data application 20 , terminal 30 , modem 40 , and general switched telephone network (GSTN) 50 .
- GSTN general switched telephone network
- External computer 10 implements video conferencing with data application 20 , transmitting the video, audio, and data.
- GSTN 50 initially receives the encoded information, provides the encoded information to modem 40 , which transmits the information to terminal 30 , which then decodes the video, audio, and data, and then terminal 30 transmits the video, audio, and data to external computer 10 and data application 20 .
- terminal 30 comprises video codec 110 , audio codec 112 , data protocols 114 , multimedia system control 116 , receive path delay 120 , multiplexer/demultiplexer 130 , modem 140 , and modem control 145 .
- Terminal 30 transforms a video signal into a format suitable for transmission over-GSTN 50 via modem 40 .
- terminal 30 provides for the transmission and receipt of real, live-time video, audio, or data, or any combination thereof, along with the necessary control codes.
- Video codec 110 uses either the H.263 or H.261 standard, carries out redundancy reduction coding and decoding for video streams.
- Audio codec 112 uses the G.723.1 standard, encodes the audio signal from the microphone for transmission, and decodes the audio code which is output to the speaker.
- Optional receive path delay 120 in the receiving audio path compensates for the video delay, so as to maintain audio and video synchronization.
- Data protocols 114 support data applications such as electronic whiteboards, still image transfer, file exchange, database access, audiographics conferencing, remote device control, and network protocols.
- Standardized data applications include T120 for real-time audiographics conferencing, T84 simple point-point still image file transfer, T434 simple point-point file transfer, H.224/H.281 far-end camera control, IS/IEC TR9577 network protocols including PPP and IP, and transport of user data using buffered V.14 or LAPM/V.42. Other applications and protocols may also be used via H.245 negotiation.
- Multimedia system control 116 using the H.245 standard, provides end-to-end signaling for proper operation of the H.324 terminal, and signals all other end-to-end system functions including reversion to analogue speech-only telephony mode.
- Multiplexer/Demultiplexer 130 uses the H.223 standard, multiplexes transmitted video, audio, data and control streams into a single bit stream, and demultiplexes a received bit stream into various multimedia streams. In addition, it performs logical framing, sequence numbering, error detection, and error-correction by means of retransmission, as appropriate to each media type.
- Modem 140 converts the H.223 synchronous multiplexed bit stream into an analogue signal that can be transmitted over the GSTN, and converts the received analogue signal into a synchronous bit stream that is sent to the Multiplex/Demultiplex protocol unit.
- Modem control 145 using the V.25 standard, is used to provide control/sensing of the modem/network interface, when the modem with network signaling and V.8/V.8 bis functional elements is a separate physical item.
- Video codec 110 implements the H.263/H.261 video coding standards. Video codec 110 conducts the spatial redundancy reduction coding and decoding for video streams.
- codec refers to a coder decoder.
- the H.263 and H.261 video coding standards are two separate coding/decoding techniques.
- the H.324 standard requires support for both the H.263 and the H.261 video coding standards. Accordingly, the H.324 standard recognizes and utilizes five standardized video image formats: 16CIF, 4CIF, CIF, QCIF, and SQCIF: H.261 employs CIF and QCIF, and H.263 employs 4CIF, 16CIF and SQCIF.
- the luminance sampling structure is dx pixels per line, dy lines per picture in an orthogonal arrangement. Sampling of each of the two color difference components is at dx/2 pixels per line, dy/2 lines per picture, orthogonal.
- the values of dx, dy, dx/2 and dy/2 are given in the following table for each of the picture formats.
- color difference samples are sited such that their block boundaries coincide with luminance block boundaries.
- the pixel aspect ratio is the same for each of these picture formats and is the same as defined for QCIF and CIF in H.261: (4/3)*(288/352).
- the picture area covered by all picture formats except the sub-QCIF picture format has an aspect ratio of 4:3.
- All decoders operate using sub-QCIF.
- All decoders operate using QCIF.
- Some decoders may also operate with CIF, 4CIF or 16CIF.
- Encoders may also operate with one of the formats sub-QCIF and QCIF. The encoders determine which of these two formats are used, and are not obliged to be able to operate with both.
- Some encoders can also operate with CIF, 4CIF or 16CIF. Which formats can be handled by the decoder is signaled by external means.
- FIG. 3 is a detailed block diagram of video codec 110 .
- Video codec 110 comprises video coder 310 and video decoder 320 .
- Video coder 310 includes source coder 312 , video multiplex coder 314 , transmission buffer 316 , and coding control 318 .
- Video decoder 320 includes source decoder 322 , video multiplex decoder 324 , and receiving buffer 326 . Accordingly, the structure of video codec 110 provides for bidirectional coding with video signals coded via source coder 312 to a coded bit stream or a coded bit stream decoded via source decoder 322 to a video signal. Pictures are sampled at an integer multiple of the video line rate, reflective of the sampling clock and the digital network clock, which are asynchronous.
- source coder 312 generally operates on pictures based on a Common Intermediate Format (CIF).
- CIF Common Intermediate Format
- the standards of the input and output television signals which may, for example, be composite or component, analogue or digital, and the methods of performing any necessary conversion to and from the source coding format are not subject to the H.263 standard.
- Source decoder 322 performs the reverse process for decoding.
- Video multiplex coder 314 provides a self-contained digital bit stream which may be combined with other multi-facility signals.
- Video multiplex decoder 324 performs the reverse process for decoding.
- Transmission buffer 316 controls its output bit stream. Video data shall be provided on every valid clock cycle.
- the number of bits created by coding any single picture may not exceed a maximum value specified by the parameter BPPmaxKb which is measured in units of 1024 bits.
- the minimum allowable value of the BPPmaxKb parameter depends on the largest source picture format that has been negotiated for use in the bit stream. An encoder may use a larger value for BPPmaxKb provided the larger value is first negotiated by external means. Receiving buffer 326 performs the reverse process for decoding.
- Video codec 110 provides for encoding (and thus also decoding) depending on the operation of coding control 318 .
- coding control 318 depends on the source coding algorithm.
- the decoder has motion compensation capability, allowing-optional incorporation of this technique in the coder.
- Half pixel precision is used for the motion compensation, as opposed to H.26 1 where full pixel precision and a loopfilter are used.
- Variable length coding is used for the symbols to be transmitted.
- four negotiable coding options are included: (1) unrestricted motion vector mode; (2) syntax-based arithmetic coding mode; (3) advanced prediction mode; and (4) PB-frame mode.
- unrestricted motion vector mode motion vectors are allowed to point outside the picture.
- the edge pixels are used as prediction for the “not existing” pixels.
- this mode includes an extension of the motion vector range so that larger motion vectors can be used. This is especially useful in case of camera movement.
- optional mode arithmetic coding is used instead of variable length coding.
- SNR and reconstructed pictures will be the same, but significantly fewer bits will be produced.
- OBMC Overlapped Block Motion Compensation
- Four 8 ⁇ 8 vectors instead of one 16 ⁇ 16 vector are used for some of the macroblocks in the picture.
- the encoder has to decide which type of vectors to use. Four vectors use more bits, but give better prediction.
- the use of this mode generally gives a considerable improvement; in particular, a subjective gain is achieved because OBMC results in less blocking artifacts.
- PB-frame In PB-frames mode, PB-frame consists of two pictures being coded as one unit.
- the name PB comes from the name of picture types where there are P-pictures and B-pictures.
- a PB-frame consists of one P-picture which is predicted from the previous decoded P-picture and one B-picture which is predicted from both the previous decoded P-picture and the P-picture currently being decoded.
- the name B-picture was chosen because parts of B-pictures may be bidirectionally predicted from the past and future pictures. With this coding option, the picture rate can be increased considerably without increasing the bit rate much. Significantly, all of these coding options can be used together or separately.
- FIG. 4 is a detailed diagram of source coder 312 . With the inverse embodiment of this figure, this depiction of source coder 312 would also operate as source decoder 322 .
- Source coder 312 operates on non-interlaced pictures occurring 30,000/1001 (approximately 29.97) times per second. The tolerance on picture frequency is ⁇ 50 ppm.
- a picture (or frame) is divided into a slice or group of blocks (GOBs).
- the number of GOBs per picture is 6 for sub-QCIF, 9 for QCIF, and 18 for CIF, 4CIF and 16CIF.
- the GOB numbering is done by use of vertical scan of the GOBs, starting with the upper GOB (number 0) and ending with the lower GOB.
- Data for each GOB consists of a GOB header (may be empty) followed by data for macroblocks.
- Data for GOBs is transmitted per GOB in increasing GOB number.
- Each GOB is then divided into macroblocks.
- a macroblock relates to 16 pixels by 16 lines of Y and the spatially corresponding 8 pixels by 8 lines of C B and C R .
- a macroblock consists of four luminance blocks and two spatially corresponding color difference blocks.
- Each luminance or chrominance block relates to 8 pixels by 8 lines of Y, C B and C R .
- a GOB comprises one macroblock row for sub-QCIF, QCIF and CIF, two macroblock rows for 4CIF, and four macroblock rows for 16 CIF.
- the macroblock numbering is done by use of horizontal scan of the macroblock rows from left to right, starting with the upper macroblock row and ending with the lower macroblock row.
- Data for the macroblocks is transmitted per macroblock in increasing macroblock number.
- Data for the blocks is transmitted per block in increasing block number. The criteria for choice of mode and transmitting a block may be varied dynamically as part of the
- FIG. 5 illustrates the process of dividing video input to obtain a macroblock, as described above.
- FIG. 5 depicts sample video sequence 1010 .
- Video sequence 1010 comprises a group of pictures 1020 .
- Group of pictures 1020 thus describes the multiple frames or pictures that comprise a video sequence.
- there are multiple frames or pictures such as, for example, frame 1030 .
- slices or groups of blocks
- macroblocks such as, for example, macroblock 1050 .
- Each macroblock 1050 consists of multiple blocks 1060 , and correspondingly, each block 1060 consists of multiple pixels 1070 .
- FIG. 6 illustrates a sample of the blocks in a macroblock.
- a macroblock consists of a 2 ⁇ 2 matrix of blocks representing luminance (or brightness), designated as Y, and 2 chrominance blocks designated as CB (or U) and CR (or V).
- Each macroblock has a width of 16 ⁇ 16 of Y pixels and corresponding 8 ⁇ 8 blocks of Cb and Cr pixels.
- source coder 312 codes the macroblocks dynamically, in that each macroblock may be coded differently according to a particular coding control strategy.
- the H.263 video coding standard does not designate a specific coding control strategy, but the coding control used by source coder 312 must conform to the H.263 standard.
- a macroblock enters source coder 312 at video-in 405, and source coder 312 produces five outputs, including inter/intra flag 490 , transmitted or not 492 , quantization indication 494 , q-level 496 , and motion vector 498 .
- source coder 312 utilizes three coding functions including block transformer 410 , quantizer 420 , and predictor 430 . If predictor 430 is utilized as the coding control strategy for source coder 312 , the coding mode is referred to as inter-frame coding (INTER). In contrast, if no prediction is applied, the coding mode is referred to as intra-frame coding (INTRA). INTER coding is generally referred to as P-frame coding, while INTRA coding is generally referred to as I-frame coding.
- INTER coding is generally referred to as P-frame coding
- INTRA coding is generally referred to as I-frame coding.
- predictor 430 implements a coding control computation based on predicting one macroblock by comparison to an earlier macroblock.
- the computation exploits the inter-frame dependencies of frames (or pictures) to reduce the bit rate.
- the comparison of one macroblock to another depends on the comparison of a macroblock from one frame to the same positional macroblock in another frame.
- This prediction process is called ME/C (motion estimation/compensation) prediction, because prediction is inter-picture and may be augmented by motion compensation.
- the INTRA coding mode can be signaled at the picture level or at the macroblock level.
- mode B-pictures are always coded in INTER mode.
- the B-pictures are partly predicted bidirectionally.
- Block transformer 410 and quantizer 420 implement a coding strategy based on reducing the spatial redundancy in the macroblocks of a frame.
- One method of block transformation by block transformer 410 begins with “discrete cosine transformation” (DCT), which is used by the H.263 video coding standard.
- DCT discrete cosine transformation
- DCT changes the data representing spatial sample values to data representing spatial frequency values, resulting in 64 DCT coefficients (each 8 ⁇ 8 block results in 64 coefficients). Due to the nature of DCT, a concentration of information results for the coefficients in the upper left-hand corner of the macroblock.
- the coefficient in the most upper left-hand corner represents the average value of the entire block, called the DC component: the remaining coefficients are referred to as the AC coefficients.
- DCT does not reduce the amount of data—DCT only changes the nature of the data from the spatial domain to the frequency domain.
- the I-frame coding simply represents this DCT data by encoding the data in the frequency domain.
- block transformation occurs pursuant to one or more coding options, as described above.
- the methods consistent with the present invention relate directly to I-frame coding by replacing the options available for I-frame coding with differential macroblock coding.
- quantizer 420 reduces the amount of data by removing content.
- Quantization describes the process of approximating each frequency coefficient as one of a limited number of allowed values. For quantization to occur, the values representing the contents of each block within each macroblock are divided by a quantization level (determined by a finite quantization table), which reduces the amplitude of the values and increases the number of zero values.
- the quantization level used for this computation depends upon the chosen coding control algorithm that attempts to achieve a certain bit rate by manipulating the quantization level assigned to different areas of a picture. By increasing the number of zero values, quantization results in bit-rate reduction as well as reduction in computational complexity.
- Obtaining the quantization involves adjusting the number of bits used to represent the 64 DCT coefficients. This adjustment occurs by the creation of a bit stream, generally by run-length encoding and/or entropy encoding. Run-length encoding removes long runs of zero value coefficients, and entropy encoding makes additional adjustments to the quantum of the bit stream based on statistical characteristics, usually based either on Huffman encoding methods or optionally arithmetic encoding methods.
- the DC coefficient represents the difference between the DC coefficient value for that macroblock and the previous DC coefficient.
- the content of the bit stream for the AC coefficient is dynamic in that each macroblock produces a different result during quantization.
- the macroblock is further processed through video codec 10 .
- the macroblock is represented by a macroblock layer.
- the H.263 standard represents the video as data within various representative layers.
- data for each picture consists of a picture header followed by data for Group of Blocks, followed by an end-of-sequence code and stuffing bits.
- data for each Group of Blocks also consists of a GOB header followed by data for macroblocks.
- Each GOB contains one or more rows of macroblocks. For the first GOB in each picture (with number 0), no GOB header is transmitted. For all other GOBs, the GOB header may be empty, depending on the encoder strategy.
- data for each macroblock consists of a macroblock header followed by data for blocks.
- FIG. 7 illustrates one embodiment of a macroblock layer 500 produced by source coder 312 depicted in FIG. 4 .
- the macroblock layer 500 comprises coded macroblock indication (COD) 505 , macroblock type and coded block pattern for chrominance (MCBPC) 510, macroblock mode for B-blocks (MODB) 515 , coded block pattern for B-blocks (CBPB) 520 , coded block pattern for illuminessence (CBPY) 525 , quantization information (DQUANT) 530 , motion vector data (MVD) 535 , motion vector data 2 (MVD 2 ) 540 , motion vector data 3 (MVD 3 ) 545 , motion vector data for (MVD 4 ) 550 , motion vector data 4 B-macroblock (MVDB) 555 , and block data 560 .
- COD coded macroblock indication
- MBBPC macroblock type and coded block pattern for chrominance
- MODB macroblock mode for B-blocks
- COD is only present in pictures for which PTYPE indicates “INTER,” for each macroblock of the picture.
- MCBPC is present when indicated by COD or when PTYPE indicates “INTRA.”
- MODB is present for MB-type 0-4 if PTYPE indicates “PB-frame.”
- CBPY, DQUANT, MVD, and MVD 2-4 are present when indicated by MCBPC and CBPY.
- MVD 2-4 are only present in Advanced Prediction mode.
- MODB, CBPB, and MVDB are only present in PB-frame mode.
- macroblock layer 500 consists of twelve components, the use of any component depends upon the selected coding strategy, that is, whether P-frame or I-frame.
- FIG. 8 illustrates a syntax diagram showing the utilized elements of macroblock layer 500 for various coding strategies.
- the boxes represent fixed-length entities and the ovals represent variable-length entities.
- macroblock syntax diagram 600 demonstrates some of the available coding options.
- COD comprises a single bit. If set to 0, COD signals that the macroblock is coded. If set to 1, COD indicates that no further information is transmitted for this macroblock; in such case, the decoder shall treat the macroblock as an INTER macroblock with motion vector for the whole block equal to zero and with no coefficient data. COD is only present in pictures for which PTYPE indicates “INTER” for each macroblock in these pictures.
- MCBPC is a variable length codeword.
- the coded block pattern for chrominance signifies C B and/or C R blocks when at least one non-INTRADC transform coefficient is transmitted (INTRADC is the dc-coefficient for INTRA blocks).
- CBPC N 1 if any non-INTRADC coefficient is present for block N, else 0, for CBPC 5 and CBPC 6 in the coded block pattern.
- MODB is a variable length codeword. MODB is present for MB-type 0-4 if PTYPE indicates “PB-frame” and indicates whether CBPB is present (indicates that B-coefficients are transmitted for this macroblock) and/or MVDB is present.
- CBPB comprises six bits.
- CBPB is only present in PB-frames mode if indicated by MODB.
- CBPB N 1 if any coefficient is present for B-block N, else O, for each bit CBPB N in the coded block pattern.
- CBPY is a variable length codeword, giving a pattern number signifying those Y blocks in the macroblock for which at least one non-INTRADC transform coefficient is transmitted (INTRADC is the dc-coefficient for INTRA blocks).
- CBPY N 1 if any non-INTRADC coefficient is present for block N, else 0, for each bit CBPY N in the coded block pattern.
- CBPY N different codewords are used for INTER and INTRA macroblocks.
- DQUANT which defines changes in quantization, comprises 2 bits. QUANT ranges from 1 to 31; if the value for QUANT, after adding the differential value, is less than 1 or greater than 31, it is clipped to 1 and 31 respectively.
- MVD is a variable length codeword. MVD is included for all INTER macroblocks (in PB-frames mode also for INTRA macroblocks) and consists of a variable length codeword for the horizontal component followed by a variable length codeword for the vertical component.
- MVD 2-4 are all variable length codewords.
- the three codewords MVD 2-4 are included if indicated by PTYPE and by MCBPC, and consist each of a variable length codeword for the horizontal component followed by a variable length codeword for the vertical component of each vector.
- MVD 2-4 are only present in Advanced Prediction mode.
- MVDB is a variable length codeword. MVDB is only present in PB-frames mode if indicated by MODB and consists of a variable length codeword for the horizontal component followed by a variable length codeword for the vertical component of each vector.
- the block layer contains the data representative of the macroblock. If not in PB-frames mode, a macroblock comprises four luminance blocks and one of each of the two color difference blocks. INTRADC is present for every block of the macroblock if MCBPC indicates MB type 3 or 4. TCOEF is present if indicated by MCBPC or CBPY. In PB-frames mode, however, a macroblock comprises twelve blocks. First the data for the six P-blocks is transmitted as in the default H.263 mode, then the data for the six-B-blocks. INTRADC is present for every P-block of the macroblock if MCBPC indicates MB type 3 or 4. INTRADC is not present for B-blocks. TCOEF is present for P-blocks if indicated by MCBPC or CBPY; TCOEF is present for B-blocks if indicated by CBPB.
- FIG. 9 illustrates an embodiment of a macroblock syntax diagram using the standard H.263 coding options for I-frame coding
- FIG. 10 illustrates an embodiment of an improved macroblock syntax diagram for I-frame coding.
- the non-bolded boxes and ovals depict the same coding process for the I-frame coding strategy as shown in FIG. 9 .
- FIG. 10 also includes two additional components, including the intra-predicted macroblock (IP_MB) component and the above-left (A/L) decision component.
- IP_MB intra-predicted macroblock
- A/L above-left
- the H.263 standard utilizes a standard methodology for I-frame encoding of macroblocks.
- the coding of I-frames allows for a substantial reduction in spatial redundancy by macroblock comparison and differential macroblock coding.
- the coding macroblock is compared with at least two other reference macroblocks. Based on this comparison, a specific encoding decision is made. If the comparison results in a small difference between the coding macroblock and one of the reference macroblocks, only the lowest difference is encoded.
- this improved methodology for I-frame coding results in substantial improvements in efficiency. In contrast, if the difference is great and not low, the macroblock may still be coded in the standard I-frame format using the standard methodologies.
- IP_MB designates whether the difference of a macroblock is coded, or whether the macroblock is coded by standard I-frame coding.
- IP_MB is preferably a one-bit component, whereby IP_MB equals zero if the standard I-frame format is used, and IP_MB equals one if differential macroblock coding is used.
- the A/L component designates the reference macroblock for the difference computation.
- IP_MB IP_MB equals one
- A/L IP_MB equals one
- IP_MB IP_MB equals one
- A/L the difference is based on the macroblock above the macroblock to be coded
- macroblocks other than the macroblock to the left and the macroblock above the coding macroblock may also be used for comparison.
- the comparison macroblock only references two earlier macroblocks, so that reference bit A/L only comprises a one-bit component. If other macroblocks were used for comparison, A/L would possibly require more than one bit.
- FIG. 11 illustrates an improved macroblock layer representative of the macroblock syntax diagram shown in FIG. 10 .
- the improved macroblock layer comprises the same components as shown in FIG. 7, plus two additional components, IP_MB and A/L.
- FIG. 11 designates these additional components by bolded boxes.
- Other changes in the content of the macroblock are also contemplated by systems consistent with this invention. For example, when a macroblock is identified as coded (that is, when the COD (coded macroblock indication) equals 0), the DC components of all the blocks in the macroblock are variable-length coded, even if the blocks contain zero values. Also, a block is identified as coded when at least one AC coefficient of the block is coded, and if a block is indicated as not coded, only the DC value is coded.
- FIG. 12 illustrates a sample of the arrangement of blocks and macroblocks in a portion of a slice from a frame.
- Blocks 1210 depict various blocks within macroblocks 1230 .
- Each block contains an 8-pixel by 8-lines set of pixels, and each macroblock contains four blocks, plus the two chrominance blocks, CB and CR.
- Pixels 1220 illustrate the single pixels that comprise blocks 1210 .
- FIG. 13 illustrates three macroblocks a, b, and c arranged with one macroblock b beside another macroblock c under another macroblock a.
- the structure of FIG. 13 describes the relational position of macroblocks for the operation of a preferred embodiment of the claimed invention.
- the coding macroblock c (illustrated with filled pixel circles) is situated with another macroblock b to its immediate left and another macroblock a immediately above (illustrated with open pixel circles).
- FIG. 14 illustrates a block diagram of the macroblocks in FIG. 13 . Additionally, FIG. 14 depicts a formula for determining the location of the reference macroblocks.
- Macroblock 1400 represents the coding macroblock.
- Macroblock 1410 depicts the macroblock above coding macroblock 1400
- macroblock 1420 depicts the macroblock to the left of coding macroblock 1400 .
- the formula depicted in FIG. 14 determines the location of these reference macroblocks.
- the reference macroblock exists at location i ⁇ 1 , thus above the coding macroblock.
- the first macroblock of each picture will not benefit from this improved methodology of differential macroblock coding, because no comparison macroblock exists either above or to the left of that initial coding macroblock.
- differential macroblock coding locates the reference macroblock dramatically different from P-frame coding and, thus, avoids possible timing problems within the in-time availability of data for P-frame coding, where the prediction occurs in the spatial domain.
- FIG. 15 illustrates a sample of the DCT values contained within three macroblocks, arranged in the configuration of FIGS. 13-14 .
- each block of each macroblock contains numerical representations for the pixels.
- the upper left-hand corner of each block contains the DC component, with a numerical representation of the average value for all the pixel values within the block.
- the coding macroblock for example, contains four DC components, including 103 , 90 , 94 and 90 , representative of the four blocks within this macroblock.
- the macroblock above the coding macroblock also contains four DC components, including 98 , 100 , 92 , and 99 .
- the macroblock to the left of the coding macroblock also contains four DC components, including 96 , 99 , 99 , and 99 .
- Systems consistent with the present invention take a difference between the coding macroblock and these two reference macroblocks. The difference with the smallest value represents the value to be used for encoding of the coding macroblock according to systems consistent with the invention.
- FIGS. 16A and 16B illustrate macroblocks after computation of the difference between the coding macroblock and the two reference macroblocks as depicted in FIG. 15 .
- FIG. 16A depicts the coding macroblock of FIG. 15, after computation of the difference with the macroblock above (that is, macroblock 1410 ).
- the DC components are 5, ⁇ 10, 2, and ⁇ 9.
- FIG. 16B depicts the coding macroblock 1400 of FIG. 15, after computation of the difference with the macroblock to the left (that is, macroblock 1420 ).
- the DC components are 7, ⁇ 8, ⁇ 5, and ⁇ 9.
- the lowest difference is selected and a determination is made whether to code the coding macroblock with the difference in conformity with these methods or to code the coding macroblock in the standard I-frame format.
- the average difference of 16 A is ⁇ 12 (that is, 5+( ⁇ 10)+2+( ⁇ 9))
- the average difference of 16 B is ⁇ 15 (that is, 7+( ⁇ 8)+( ⁇ 5)+( ⁇ 9)). Accordingly, if a difference is to be coded, the difference would be used between the coding macroblock (that is, macroblock 1400 ) and the macroblock above (that is, macroblock 1410 ), here, as illustrated by the difference of FIG. 16 A.
- the contents of the pertinent portions of the macroblock layer may be depicted, as shown in FIG. 11 .
- the pertinent portions of the macroblock layer for purposes of systems consistent with the invention include the components listed in FIG. 10, including IP_MB, A/L, COD, MCBPC, CBPY, DQUART, and the Block Layer.
- the COD component indicates if the macroblock is coded or not by any form of macroblock coding.
- the MCBPC macroblock type and coded block pattern for chrominance indicates the coded block pattern for chrominance.
- MCBPC is a variable-length component, the contents of which depends upon the relationship of the coded block pattern to a variable length code (VLC) table.
- VLC variable length code
- CBPY is a variable-length component, which also depends upon a VLC table.
- the DQUANT quantization information indicates any change in the quantization.
- DQUANT comprises a two-bit, fixed-length code, ranging from a differential value of ⁇ 2(01) to 2 (11).
- the variable-length block layer contains the data.
- VLC table contains codewords in a table without a fixed length and the length of any predetermined codewords depends on the coefficient value. Indeed, for purposes of experimentation in the next section, this VLC table is used for all applications. Applying this table, the DC component of each block is assigned a specific codeword, in the range of values from 0 to 101. Further, a special representation is used for any absolute value layer than 101. Notably, this VLC table is not necessarily optimum, but for purposes of comparison (in the following section) the table provides a baseline. Still, other VLC tables can be designed that provide a better match for the contents of the blocks for a particular application.
- TCOEF transform coefficient
- reference macroblocks other than the macroblock to the left and above the coding macroblock may be used.
- more than two reference macroblocks can be used, similar to ME/C in P-frame coding.
- the above-described preferred embodiment discloses two reference macroblocks based on limiting the size of the IP_MB and A/L components to a single bit for greater efficiency, but if the number of bits are increased in these components to represent additional pointing vectors, then more than two reference macroblocks may be used.
- Systems consistent with the present invention provide for a more efficient I-frame coding technique for video conferencing. These systems provide for greater efficiency by differential macroblock coding. This coding methodology provides many advantages over the current H.263 coding standard, as utilized by the H.324 video conferencing standard.
- Systems consistent with the present invention utilize the structure of the H.324 video conferencing standard as well as the structure of the H.263 video coding standard. Indeed, one purpose of these methods entails gaining greater efficiency and thus greater speed for video compression.
- the coding efficiency of data subject to I-frame coding may be considered unimportant, because any gains in efficiency would only occur in the initiation phase of the video compression process.
- the coding efficiency becomes much more significant, due to the requirement of the retransmission for corrupted data.
- the five picture formats supported by H.263 are considered for comparison to the standard forms of video compression.
- the H.263 video coding standard improved upon the H.261 standard.
- the H.261 standard supported the QCIF and CIF picture formats.
- H.263 continues support for these formats, plus H.263 also supports the SQCIF, 4CIF, and 16CIF formats.
- the QCIF and CIF formats comprise somewhat lower resolution formats. Nevertheless, SQCIF is approximately half the resolution of QCIF.
- 4CIF and 16CIF are 4 and 16 times the resolution of CIF, respectively.
- these comparison sequences include Carphone, Clair, Foreman, Miss America, Mother & Daughter, and Salesman, and for 4CIF, these comparison sequences include Akiyo, Coast Guard, and Container Ship.
- the following comparisons of systems consistent with the present invention with the standard I-frame coding technique utilize these sequences for comparison, using quantization values in the range 2 to 23.
- these same comparisons are the test sequences generally used to measure the performance of the coding algorithms for H.263+(and H.263++) and MPEG-4.
- FIG. 17 is a table describing the results of coding comparison frames for simulations using the methods of the invention.
- the results are based on simulations using the six QCIF sequences (Carphone, Clair, Foreman, Miss America, Mother & Daughter and Salesman) and the three 4CIF sequences (Akiyo, Coast Guard and Container Ship). Although the simulations were based on quantization values in the range of 2-23, the results depicted in FIG. 17 are only for sequences where the quantization value equaled 10. The quantization level of 10 corresponds to a fairly good visual quality for a coding methodology.
- the values shown in the table represent the percentage savings in the number of bits required to code the frame with the methods of the invention as compared to standard H.263 coding, that is, standard I-frame coding.
- the Akiyo sequence resulted in a 30.51% savings
- the Coast Guard sequence resulted in a 4.72% savings
- the Container sequence resulted in a 15.65% savings
- the Carphone sequence resulted in a 6.06% savings
- the Clair sequence resulted in a 28.07% savings
- the Foreman sequence resulted in a 3.53% savings
- the Miss America sequence resulted in a 16.65% savings
- the Mother & Daughter sequence resulted in a 4.24% savings
- the Salesman sequence resulted in a 2.50% savings. Therefore, for the four CIF sequences, the results ranged from a 5% to 30% savings, and for the QCIF sequences, the results ranged from a 2.5% to 28% savings.
- FIG. 18 illustrates a further example of the savings in the number of bits required to code a frame with methods consistent with the present invention as compared to the standard I-frame video coding.
- the results are based on simulations using two 4CIF sequences (Akiyo and Coast Guard).
- FIG. 18 depicts the savings in bits achieved by the methods of the invention as a function of the level of quantization.
- the savings is less for small quantization levels but increases as the quantization level increases. For example, for a quantization level of 2 in the Akiyo sequence, the level of savings is 8.1%, but for a quantization of 23 in the Akiyo sequence, the level of savings is 38.2%.
- FIG. 18 illustrates a further example of the savings in the number of bits required to code a frame with methods consistent with the present invention as compared to the standard I-frame video coding.
- the results are based on simulations using two 4CIF sequences (Akiyo and Coast Guard).
- FIG. 18 depicts the savings in bits achieved by
- FIG. 19 illustrates a comprehensive representation of the level of savings in bits for QCIF sequences when using the disclosed coding methods as compared to standard I-frame video coding.
- FIG. 19 represents the same result as depicted in FIG. 18, except that FIG. 19 charts the level of savings in bits for each of the six QCIF sequences, over the range of quantization levels 2 through 23. As shown in FIG. 19, just as in FIG. 18, the level of savings in bits rises with the increase in the level of quantization.
- FIG. 20 further illustrates an example of the savings in bits for 4CIF sequences when using the methods consistent with the present invention as compared to standard H.263 video coding.
- FIG. 20 represents the same result as depicted in FIG. 18, except that FIG. 20 charts the level of savings in bits for each of the three 4CIF sequences, over the range of quantization levels 2 through 23.
- FIG. 20 just as in FIG. 19 for QCIF sequences, the savings in bits rises with the increase in the level of quantization.
- FIG. 20 also depicts a better performance for 4CIF sequences than for QCIF sequences.
- the methods consistent with the present invention may use not only macroblocks but may also use blocks or GOBs (or slices) for differential comparison. In fact, these methods would possibly perform better using blocks as the basis for the differential calculation, but the timing issues would become more critical. Also, these methods are also not limited to video coding for each reference subject, that is, for each frame.
Abstract
Description
Number of | Number of | Number of | Number of | |
pixels for | lines for | pixels for | lines for | |
Picture | luminance | luminance | chrominance | chrominance |
Format | (dx) | (dy) | (dx2) | (dy/2) |
sub-QCIF | 128 | 96 | 64 | 48 |
QCIF | 176 | 144 | 88 | 72 |
CIF | 352 | 288 | 176 | 144 |
4CIF | 704 | 576 | 352 | 288 |
16CIF | 1408 | 1152 | 704 | 576 |
Claims (66)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/941,785 US6614845B1 (en) | 1996-12-24 | 1997-09-30 | Method and apparatus for differential macroblock coding for intra-frame data in video conferencing systems |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US3342696P | 1996-12-24 | 1996-12-24 | |
US08/941,785 US6614845B1 (en) | 1996-12-24 | 1997-09-30 | Method and apparatus for differential macroblock coding for intra-frame data in video conferencing systems |
Publications (1)
Publication Number | Publication Date |
---|---|
US6614845B1 true US6614845B1 (en) | 2003-09-02 |
Family
ID=27767307
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US08/941,785 Expired - Lifetime US6614845B1 (en) | 1996-12-24 | 1997-09-30 | Method and apparatus for differential macroblock coding for intra-frame data in video conferencing systems |
Country Status (1)
Country | Link |
---|---|
US (1) | US6614845B1 (en) |
Cited By (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030140347A1 (en) * | 1999-12-22 | 2003-07-24 | Viktor Varsa | Method for transmitting video images, a data transmission system, a transmitting video terminal, and a receiving video terminal |
US20040024885A1 (en) * | 2002-03-12 | 2004-02-05 | Lexmark International, Inc. | Automatic negotiation of an internet protocol address for a network connected device |
US6792048B1 (en) * | 1999-10-29 | 2004-09-14 | Samsung Electronics Co., Ltd. | Terminal supporting signaling used in transmission and reception of MPEG-4 data |
US20060077252A1 (en) * | 2004-10-12 | 2006-04-13 | Bain John R | Method and apparatus for controlling a conference call |
US20060146124A1 (en) * | 2004-12-17 | 2006-07-06 | Andrew Pepperell | Video conference recorder |
US20060171336A1 (en) * | 2005-01-05 | 2006-08-03 | William Macdonald | Video multi-conference unit (MCU) |
US20070133413A1 (en) * | 2005-12-09 | 2007-06-14 | Andrew Pepperell | Flow control in a video conference |
US20070160302A1 (en) * | 2006-01-12 | 2007-07-12 | Samsung Electronics Co., Ltd. | Method of encoding flag, method of decoding flag, and apparatus thereof |
US20070195880A1 (en) * | 2006-02-17 | 2007-08-23 | Canon Kabushiki Kaisha | Method and device for generating data representing a degree of importance of data blocks and method and device for transmitting a coded video sequence |
WO2007139391A1 (en) * | 2006-05-31 | 2007-12-06 | Tandberg Telecom As | Pre-processing of video data |
US20080056385A1 (en) * | 1997-10-23 | 2008-03-06 | Yoshimi Isu | Image decoding apparatus, image coding apparatus, image communications system and coded bit stream converting apparatus |
US20080059581A1 (en) * | 2006-09-05 | 2008-03-06 | Andrew Pepperell | Viewing data as part of a video conference |
US20080063055A1 (en) * | 2002-04-15 | 2008-03-13 | Kiyofumi Abe | Picture coding method and picture decoding method |
US20080068448A1 (en) * | 2006-09-18 | 2008-03-20 | Hansen Robert A | Method for adapting a device to participate in video conference calls |
US20080158338A1 (en) * | 2006-11-20 | 2008-07-03 | Evans Simon J W | Hardware architecture for video conferencing |
US20080292002A1 (en) * | 2004-08-05 | 2008-11-27 | Siemens Aktiengesellschaft | Coding and Decoding Method and Device |
US7715431B1 (en) * | 2002-10-16 | 2010-05-11 | Cisco Technology, Inc. | Fallback for V.42 modem-over-internet-protocol (MoIP) gateways method and apparatus |
CN101047850B (en) * | 2006-02-17 | 2010-05-19 | 威盛电子股份有限公司 | System and method for arranging and processing video frequency data microblock |
CN101635856B (en) * | 2009-08-24 | 2012-01-11 | 杭州华三通信技术有限公司 | Field coding method and device |
CN102905131A (en) * | 2008-06-20 | 2013-01-30 | 杜比实验室特许公司 | Video compression under multiple distortion constraints |
US8532100B2 (en) | 2010-10-19 | 2013-09-10 | Cisco Technology, Inc. | System and method for data exchange in a heterogeneous multiprocessor system |
US8553068B2 (en) | 2010-07-15 | 2013-10-08 | Cisco Technology, Inc. | Switched multipoint conference using layered codecs |
US9654729B2 (en) * | 2008-09-30 | 2017-05-16 | Unify Gmbh & Co. Kg | Method for connecting a man-machine interface to a video conferencing system |
US10298933B2 (en) * | 2014-11-27 | 2019-05-21 | Orange | Method for composing an intermediate video representation |
US10419021B2 (en) | 2000-10-03 | 2019-09-17 | Realtime Data, Llc | Systems and methods of data compression |
US11539959B2 (en) | 2008-08-04 | 2022-12-27 | Dolby Laboratories Licensing Corporation | Predictive motion vector coding |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4281344A (en) * | 1980-05-02 | 1981-07-28 | Bell Telephone Laboratories, Incorporated | Video interframe transform coding technique |
US4704628A (en) * | 1986-07-16 | 1987-11-03 | Compression Labs, Inc. | Combined intraframe and interframe transform coding system |
US4930013A (en) * | 1986-11-20 | 1990-05-29 | British Telecommunications Public Limited Company | Pattern processing |
US5226093A (en) * | 1990-11-30 | 1993-07-06 | Sony Corporation | Motion vector detection and band compression apparatus |
US5262878A (en) * | 1991-06-14 | 1993-11-16 | General Instrument Corporation | Method and apparatus for compressing digital still picture signals |
US5294974A (en) * | 1992-07-24 | 1994-03-15 | Matsushita Electric Corporation Of America | High-definition video encoding system having color-sensitive quantization |
US5386248A (en) * | 1990-08-28 | 1995-01-31 | U.S. Philips Corporation | Method and apparatus for reducing motion estimator hardware and data transmission capacity requirements in video systems |
US5684534A (en) * | 1993-05-26 | 1997-11-04 | Intel Corporation | Task-splitting dual-processor system for motion estimation processing |
US5815636A (en) * | 1993-03-29 | 1998-09-29 | Canon Kabushiki Kaisha | Image reproducing apparatus |
US5883823A (en) * | 1997-01-15 | 1999-03-16 | Sun Microsystems, Inc. | System and method of a fast inverse discrete cosine transform and video compression/decompression systems employing the same |
US5905535A (en) * | 1994-10-10 | 1999-05-18 | Thomson Multimedia S.A. | Differential coding of motion vectors using the median of candidate vectors |
US5933571A (en) * | 1994-04-28 | 1999-08-03 | Matsushita Electric Industrial Co., Ltd. | Video image coding and recording apparatus and video image coding, recording and reproducing apparatus |
-
1997
- 1997-09-30 US US08/941,785 patent/US6614845B1/en not_active Expired - Lifetime
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4281344A (en) * | 1980-05-02 | 1981-07-28 | Bell Telephone Laboratories, Incorporated | Video interframe transform coding technique |
US4704628A (en) * | 1986-07-16 | 1987-11-03 | Compression Labs, Inc. | Combined intraframe and interframe transform coding system |
US4930013A (en) * | 1986-11-20 | 1990-05-29 | British Telecommunications Public Limited Company | Pattern processing |
US5386248A (en) * | 1990-08-28 | 1995-01-31 | U.S. Philips Corporation | Method and apparatus for reducing motion estimator hardware and data transmission capacity requirements in video systems |
US5226093A (en) * | 1990-11-30 | 1993-07-06 | Sony Corporation | Motion vector detection and band compression apparatus |
US5262878A (en) * | 1991-06-14 | 1993-11-16 | General Instrument Corporation | Method and apparatus for compressing digital still picture signals |
US5294974A (en) * | 1992-07-24 | 1994-03-15 | Matsushita Electric Corporation Of America | High-definition video encoding system having color-sensitive quantization |
US5815636A (en) * | 1993-03-29 | 1998-09-29 | Canon Kabushiki Kaisha | Image reproducing apparatus |
US5684534A (en) * | 1993-05-26 | 1997-11-04 | Intel Corporation | Task-splitting dual-processor system for motion estimation processing |
US5933571A (en) * | 1994-04-28 | 1999-08-03 | Matsushita Electric Industrial Co., Ltd. | Video image coding and recording apparatus and video image coding, recording and reproducing apparatus |
US5905535A (en) * | 1994-10-10 | 1999-05-18 | Thomson Multimedia S.A. | Differential coding of motion vectors using the median of candidate vectors |
US5883823A (en) * | 1997-01-15 | 1999-03-16 | Sun Microsystems, Inc. | System and method of a fast inverse discrete cosine transform and video compression/decompression systems employing the same |
Cited By (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8045624B2 (en) * | 1997-10-23 | 2011-10-25 | Mitsubishi Electric Corporation | Video bit stream converting apparatus |
US20080056385A1 (en) * | 1997-10-23 | 2008-03-06 | Yoshimi Isu | Image decoding apparatus, image coding apparatus, image communications system and coded bit stream converting apparatus |
US6792048B1 (en) * | 1999-10-29 | 2004-09-14 | Samsung Electronics Co., Ltd. | Terminal supporting signaling used in transmission and reception of MPEG-4 data |
US20030140347A1 (en) * | 1999-12-22 | 2003-07-24 | Viktor Varsa | Method for transmitting video images, a data transmission system, a transmitting video terminal, and a receiving video terminal |
US10419021B2 (en) | 2000-10-03 | 2019-09-17 | Realtime Data, Llc | Systems and methods of data compression |
US20040024885A1 (en) * | 2002-03-12 | 2004-02-05 | Lexmark International, Inc. | Automatic negotiation of an internet protocol address for a network connected device |
US7562136B2 (en) * | 2002-03-12 | 2009-07-14 | Lexmark International, Inc. | Automatic negotiation of an internet protocol address for a network connected device |
US20080063055A1 (en) * | 2002-04-15 | 2008-03-13 | Kiyofumi Abe | Picture coding method and picture decoding method |
US8139878B2 (en) * | 2002-04-15 | 2012-03-20 | Panasonic Corporation | Picture coding method and picture decoding method |
US7715431B1 (en) * | 2002-10-16 | 2010-05-11 | Cisco Technology, Inc. | Fallback for V.42 modem-over-internet-protocol (MoIP) gateways method and apparatus |
US8428140B2 (en) * | 2004-08-05 | 2013-04-23 | Siemens Aktiengesellschaft | Coding and decoding method and device |
US20080292002A1 (en) * | 2004-08-05 | 2008-11-27 | Siemens Aktiengesellschaft | Coding and Decoding Method and Device |
US7312809B2 (en) | 2004-10-12 | 2007-12-25 | Codian Ltd. | Method and apparatus for controlling a conference call |
US20060077252A1 (en) * | 2004-10-12 | 2006-04-13 | Bain John R | Method and apparatus for controlling a conference call |
US20060146124A1 (en) * | 2004-12-17 | 2006-07-06 | Andrew Pepperell | Video conference recorder |
US7532231B2 (en) | 2004-12-17 | 2009-05-12 | Codian Limited | Video conference recorder |
US20060171336A1 (en) * | 2005-01-05 | 2006-08-03 | William Macdonald | Video multi-conference unit (MCU) |
US20070133413A1 (en) * | 2005-12-09 | 2007-06-14 | Andrew Pepperell | Flow control in a video conference |
WO2007081085A1 (en) * | 2006-01-12 | 2007-07-19 | Samsung Electronics Co., Ltd. | Method of encoding flag, method of decoding flag, and apparatus thereof |
US20070160302A1 (en) * | 2006-01-12 | 2007-07-12 | Samsung Electronics Co., Ltd. | Method of encoding flag, method of decoding flag, and apparatus thereof |
US7840083B2 (en) | 2006-01-12 | 2010-11-23 | Samsung Electronics Co., Ltd. | Method of encoding flag, method of decoding flag, and apparatus thereof |
CN101047850B (en) * | 2006-02-17 | 2010-05-19 | 威盛电子股份有限公司 | System and method for arranging and processing video frequency data microblock |
US20070195880A1 (en) * | 2006-02-17 | 2007-08-23 | Canon Kabushiki Kaisha | Method and device for generating data representing a degree of importance of data blocks and method and device for transmitting a coded video sequence |
WO2007139391A1 (en) * | 2006-05-31 | 2007-12-06 | Tandberg Telecom As | Pre-processing of video data |
US8139101B2 (en) | 2006-05-31 | 2012-03-20 | Cisco Technology, Inc. | Pre-processing of video data |
US20080056376A1 (en) * | 2006-05-31 | 2008-03-06 | Tandberg Telecom As | Pre-processing of video data |
US9065667B2 (en) | 2006-09-05 | 2015-06-23 | Codian Limited | Viewing data as part of a video conference |
US20080059581A1 (en) * | 2006-09-05 | 2008-03-06 | Andrew Pepperell | Viewing data as part of a video conference |
US20080068448A1 (en) * | 2006-09-18 | 2008-03-20 | Hansen Robert A | Method for adapting a device to participate in video conference calls |
US20090213126A1 (en) * | 2006-11-20 | 2009-08-27 | Codian Ltd | Hardware Architecture for Video Conferencing |
US8169464B2 (en) | 2006-11-20 | 2012-05-01 | Codian Ltd | Hardware architecture for video conferencing |
US20080158338A1 (en) * | 2006-11-20 | 2008-07-03 | Evans Simon J W | Hardware architecture for video conferencing |
US7889226B2 (en) | 2006-11-20 | 2011-02-15 | Codian Ltd | Hardware architecture for video conferencing |
CN102905131A (en) * | 2008-06-20 | 2013-01-30 | 杜比实验室特许公司 | Video compression under multiple distortion constraints |
US11539959B2 (en) | 2008-08-04 | 2022-12-27 | Dolby Laboratories Licensing Corporation | Predictive motion vector coding |
US11843783B2 (en) | 2008-08-04 | 2023-12-12 | Dolby Laboratories Licensing Corporation | Predictive motion vector coding |
US9654729B2 (en) * | 2008-09-30 | 2017-05-16 | Unify Gmbh & Co. Kg | Method for connecting a man-machine interface to a video conferencing system |
CN101635856B (en) * | 2009-08-24 | 2012-01-11 | 杭州华三通信技术有限公司 | Field coding method and device |
US8553068B2 (en) | 2010-07-15 | 2013-10-08 | Cisco Technology, Inc. | Switched multipoint conference using layered codecs |
US8532100B2 (en) | 2010-10-19 | 2013-09-10 | Cisco Technology, Inc. | System and method for data exchange in a heterogeneous multiprocessor system |
US10298933B2 (en) * | 2014-11-27 | 2019-05-21 | Orange | Method for composing an intermediate video representation |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6614845B1 (en) | Method and apparatus for differential macroblock coding for intra-frame data in video conferencing systems | |
US8144764B2 (en) | Video coding | |
US5278647A (en) | Video decoder using adaptive macroblock leak signals | |
US9838685B2 (en) | Method and apparatus for efficient slice header processing | |
US7711052B2 (en) | Video coding | |
CA2457882C (en) | System and method for video error concealment | |
US7751473B2 (en) | Video coding | |
JP2004215252A (en) | Dynamic intra-coding macroblock refreshing interval for video error concealment | |
US6961377B2 (en) | Transcoder system for compressed digital video bitstreams | |
JP2005516497A (en) | Coding of transform coefficients in an image / video encoder and / or decoder | |
JP2005260936A (en) | Method and apparatus encoding and decoding video data | |
US11317105B2 (en) | Modification of picture parameter set (PPS) for HEVC extensions | |
US11317121B2 (en) | Conditionally parsed extension syntax for HEVC extension processing | |
US7079578B2 (en) | Partial bitstream transcoder system for compressed digital video bitstreams | |
JP2000253403A (en) | Image encoding method converter and image communication system | |
Turaga et al. | Fundamentals of video compression: H. 263 as an example | |
Chen et al. | 263 (including H. 263+) and other ITU-T video coding standards | |
Bhaskaran et al. | Video Teleconferencing Standards | |
Puri | Tsuhan Chen Carnegie Mellon University, Pittsburgh, Pennsylvania Gary J. Sullivan Picture Tel Corporation, Andover, Massachusetts | |
KR20040031948A (en) | Method for moving picture decoding | |
KR20040020733A (en) | Moving picture decoder and method for moving picture decoding |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: GTE LABORATORIES INCORPORATED, MASSACHUSETTS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:AZADEGAN, FARAMARZ;REEL/FRAME:008742/0701 Effective date: 19970918 |
|
AS | Assignment |
Owner name: VERIZON LABORATORIES INC., MASSACHUSETTS Free format text: CHANGE OF NAME;ASSIGNOR:GTE LABORATORIES INCORPORATED;REEL/FRAME:013771/0310 Effective date: 20000630 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
FEPP | Fee payment procedure |
Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
AS | Assignment |
Owner name: VERIZON PATENT AND LICENSING INC., NEW JERSEY Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:VERIZON LABORATORIES INC.;REEL/FRAME:023768/0780 Effective date: 20091201 |
|
AS | Assignment |
Owner name: INTRAVISUAL, INC.,TEXAS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:VERIZON PATENT AND LICENSING, INC.;REEL/FRAME:023963/0379 Effective date: 20100127 |
|
FPAY | Fee payment |
Year of fee payment: 8 |
|
AS | Assignment |
Owner name: RPX CORPORATION, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:INTRAVISUAL INC.;REEL/FRAME:032820/0788 Effective date: 20140212 |
|
FPAY | Fee payment |
Year of fee payment: 12 |
|
AS | Assignment |
Owner name: JEFFERIES FINANCE LLC, NEW YORK Free format text: SECURITY INTEREST;ASSIGNOR:RPX CORPORATION;REEL/FRAME:046486/0433 Effective date: 20180619 |
|
AS | Assignment |
Owner name: RPX CORPORATION, CALIFORNIA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:JEFFERIES FINANCE LLC;REEL/FRAME:054486/0422 Effective date: 20201023 |