WO2009149151A2 - Method and system for video coder and decoder joint optimization - Google Patents

Method and system for video coder and decoder joint optimization Download PDF

Info

Publication number
WO2009149151A2
WO2009149151A2 PCT/US2009/046079 US2009046079W WO2009149151A2 WO 2009149151 A2 WO2009149151 A2 WO 2009149151A2 US 2009046079 W US2009046079 W US 2009046079W WO 2009149151 A2 WO2009149151 A2 WO 2009149151A2
Authority
WO
WIPO (PCT)
Prior art keywords
coding
video
decoder
deblocking
processing capabilities
Prior art date
Application number
PCT/US2009/046079
Other languages
French (fr)
Other versions
WO2009149151A3 (en
Inventor
Xiaojin Shi
Hsi-Jung Wu
Original Assignee
Apple Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Apple Inc. filed Critical Apple Inc.
Priority to KR1020107027226A priority Critical patent/KR101238974B1/en
Priority to BRPI0913375A priority patent/BRPI0913375A2/en
Priority to EP09759310A priority patent/EP2294823A2/en
Priority to CN2009801207764A priority patent/CN102057676B/en
Priority to JP2011512605A priority patent/JP5174958B2/en
Priority to KR1020127024151A priority patent/KR101298389B1/en
Publication of WO2009149151A2 publication Critical patent/WO2009149151A2/en
Publication of WO2009149151A3 publication Critical patent/WO2009149151A3/en
Priority to HK11111173.3A priority patent/HK1157100A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/127Prioritisation of hardware or computational resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/154Measured or subjectively estimated visual quality after decoding, e.g. measurement of distortion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/156Availability of hardware or computational resources, e.g. encoding based on power-saving criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/164Feedback from the receiver or from the transmission channel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Definitions

  • Embodiments of the present invention relate to video coding and decoding. Specifically, the present invention is related to apparatuses and methods for improving deblocking at a resource-limited decoder.
  • Video coders are commonly used to code source video to achieve bandwidth compression.
  • the coded video data may be transmitted as a bitstream over communication channels, e.g., the Internet or cable network, to receiving devices.
  • the receiving devices such as a handheld device may decode the received bitstream, recover a replica of the source video and display the recovered video on a display screen.
  • the process of coding, transmitting, and decoding may be lossy in the sense that the recovered video data at the receiving device is not identical to the video data input at the coding device.
  • the losses in video coding and decoding may arise from the quantization process and/or other operations that induce data compression but at the cost of data loss.
  • Block- based coders typically organize source video data into arrays (or "pixel blocks") before processing them; when coded blocks are recovered, discontinuities may be observed between recovered pixels blocks which may appear unnatural to viewers.
  • the blocking artifacts may be reduced in a post processing step performed by a decoder, for example by a low pass filter.
  • Recent video compression standards e.g. H.264, may also include in-loop deblocking filters in the decoder.
  • FIG. 1 illustrates a functional block diagram of source video data 110 being coded by a coder 120, transmitted across a channel 130, and then decoded by a decoder 140 to produce decoded video data 160.
  • the source video data 110 may be a video digitized from analog or uncompressed video.
  • the source video may commonly contain a sequence of image frames, each of which may include a rectangular array of pixels.
  • the coder 120 may code the source video data 110 to generate coded video data 170 and transmit the coded video data 170 over a communication channel 130 to a decoder 140.
  • the coder may divide the coded video data into slices (136, 142) of pixels.
  • the coded video data may include both coded image frames and instructions (135, 141) that instruct the decoder 140 how to decode the coded video data.
  • the decoder 140 may decode the coded video data based on these instructions.
  • the coding process may operate as follows.
  • the coder 120 may break up the source video data 110 into slices and then break up the slices into blocks (e.g. 4x4 pixels or 8x8 pixels or 16x16 pixels).
  • the coder 120 may use various coding methods to code the source video data 110. For example, the coder 120 may predict pixel values of a block from a previous block and code the differences between the pixel values and the predicted pixel values based on blocks of pixels.
  • the coder may select coding parameters 132, 138, which may be used to achieve different types and levels of compression and which are communicated to a decoder. These control parameters may determine how much loss is induced to the coding process and thus determines the quality of the decoded video data 160.
  • the coder 120 may have control parameters for a discrete cosine transform (DCT) processor 122, a quantization processor 124, a slice scan system 126, and an entropy coder 128.
  • the coder 120 may select a coding parameter 132, 134 for the quantization process 124 which determines how many levels a block of the source video data 110 may be quantized. A smaller number of quantization levels may increase the number of zeros and thus permit greater compression.
  • blocking artifacts may exist because of the quantization of pixel values.
  • Blocking artifacts are a distortion that appears in the decoded video as abnormally large pixel blocks. For example, a video image may appear to have large blocks, or black or white lines, or an image may appear to have blocks that are averaged together. Typically, the blocking artifacts may occur with pixels surrounding the output of certain decoded blocks of pixels.
  • the decoder 140 may include a deblocking filter 150 to reduce blocking artifacts.
  • the deblocking filter in the decoder may have a number of control parameters.
  • the strength of an in-loop deblocking filter in the decoder may be controlled globally by parameters representing quantization levels in the bitstream.
  • the coder may set these global deblocking filter parameters during coding process, for example, during coding slices of video data 136, 142.
  • the decoder 140 may operate as follows. The decoder 140 receives the coded video data 170 including coding parameters 132 and deblocking filter parameters 134.
  • the decoder 140 then decodes the coded video data 170, block-by-block, according to the coding parameters 132, 138 and the deblocking filter parameters 134.
  • the coding parameters 132, 138 determine how to decode the coded video data 170 for the entropy decoder 142, the inverse slice scan system 144, the inverse quantization processor 146, and the inverse DCT processor 148.
  • the deblocking filter 150 may operate as follows.
  • the coder 120 may globally control the strength of the deblocking filter 150 at slice level, e.g., via the alpha and beta parameters of the H.264 standard, where the alpha and beta may be determined based on the average quantization parameter of a slice.
  • a decoder may compute a deblocking filter strength for each pixel block based on image content or pixel values within and without the pixel block. For example, under H.264, four levels of deblocking filter strengths (bS) may be computed based on pixel values and location of block edges.
  • the filtering is more targeted to each block, which may produce right amount of filtering for the block.
  • the block-based deblocking filtering may require the decoder to compute the proper amount of deblocking strength. This computation may burden receiving devices that have only limited computation resources. For these devices, the extra computational burden may cause the decoder, e.g., to drop frames and thus reduce the visual quality.
  • the receiving device may include processors, e.g., CPU or GPU that may operate in parallel. However, data dependencies in the coded video data 170 may prevent the deblocking to be performed in parallel.
  • a pixel block to be filtered may be calculated with pixel values from previous pixel blocks and/or later pixel blocks in a coding sequence.
  • parallel processing may not happen since later pixel blocks that the current pixel block depends on have not finished processing yet.
  • FIG. 1 illustrates a functional block diagram of a source video data being coded, transmitted across a channel, and then decoded to produce a decoded video data.
  • FIG. 2 illustrates a coded image that is split into slices.
  • FIG. 3A illustrates a slice of an image with the deblocking filter parameters and the coding parameters.
  • FIG. 3B illustrates a tuple of pixels over a pixel block edge over which a deblocking filter may apply.
  • FIG. 3C illustrates one block in a slice.
  • FIG. 4A illustrates a slice of coded video data with data dependencies.
  • FIG. 4B illustrates the data dependencies having been removed.
  • FIG. 4C illustrates the data dependencies between adjacent deblocking filters.
  • FIG. 5 illustrates an embodiment for a method for joint optimization of complexity and visual quality of the deblocking process for resource limited decoders.
  • FIG. 6 illustrates another embodiment for a method for joint optimization of complexity and visual quality of the deblocking process for resource limited decoders.
  • FIG. 7 illustrates a simplified functional block diagram of a computer system that may be used to implement the coding method illustrated in FIGS. 5 and 6.
  • Embodiments of the present invention provide apparatuses and methods of coding video.
  • the apparatuses and methods further provide coding a source video sequence according to a block-based coding process, estimating processing capabilities of a target decoder, determining if the estimated processing capabilities are sufficient to perform deblocking filtering. If not sufficient, the apparatuses and methods further provide computing deblocking filter strengths for pixel blocks of the source video sequence to be used at decoding, and transmitting the deblocking filter strengths in a coded video data signal with the coded video data.
  • the video coder may code source video data based on the capacity of the decoding device.
  • the coding device may determine whether the decoding device has the computational resources to carry out the block-based deblocking filtering process without degrading visual quality. In the case where the decoding device does not have sufficient resources, the coding device may estimate block-based filtering strengths on behalf of the decoder and code the deblocking filter strengths in the bitstream. Therefore, the decoder may perform block based deblocking filtering without the need for estimating deblocking filter strengths. ] In another embodiment of the present invention, based on the capacity of the decoder, the coder may change the size of pixel blocks. In predictive coding, pixels may be transformed based on pixel blocks (or transform blocks).
  • deblocking filters may be applied over edges of these pixel blocks. Smaller pixel blocks may produce higher display quality after deblocking filtering at higher processing cost. On the other hand, larger pixel blocks for deblocking filters may require less processing at the cost of lower display quality.
  • the coder may make a determination of the pixel block sizes based on decoder's capacity and code at an appropriate level of block sizes.] Furthermore, in one embodiment of the present invention, the coder may also determine the decoder's capability for parallel processing. If the decoder is capable of parallel computing, the coder may remove certain deblocking filtering dependencies to take full advantage of the decoder's capability for parallel processing. ] FIG.
  • FIG. 2 illustrates a coded image 210 that is split into slices.
  • An image 210 may be split into multiple slices 250.
  • the slices 250 may include a sequence of macroblocks (not shown) of pixels, e.g., 16x16 pixels under H.264.
  • the macroblocks may further include arrays of pixel blocks (e.g., 4x4 or 8x8 pixels). It is an objective of the present invention to control deblocking filter strengths at block level.
  • FIG. 3A illustrates a slice that includes macroblocks and pixel blocks.
  • the slice may contain macroblocks 310 (e.g., of 16x16 pixels), which may further contain pixel blocks (e.g., of 8x8 or 4x4 pixels).
  • Adjacent macroblocks may be separated by macroblock edges, and adjacent pixel blocks may be separated by pixel block edges. As shown in FIG. 3A, at the boundaries of macroblocks, pixel block edges may overlay with macroblock edges.
  • FIG. 3B illustrates a convention for describing pixels across a pixel block edge over which a deblocking filter may apply. Pixel blocks may be 8x8 or 4x4. Thus, the deblocking filter may be a horizontal or vertical, one-dimensional filter with a base of, e.g., 4 or 8 pixels.
  • the example illustration of FIG. 3B includes pixels p 0 . . . P 3 in a first pixel block and q 0 . . . c ⁇ 3 in a second pixel block.
  • the deblocking filter may be individually applied to each component plane, e.g., the luma and the two chroma under H.264, of a picture frame.
  • Some of the deblocking filter's parameters may be determined at the coder end.
  • the deblocking filter parameters 320 may include the alpha and beta parameters in the H.264 standard that may be applied globally to a slice of pixels.
  • An H.264 coder commonly computes the alpha and beta parameters that may be applied to all macroblocks within the slice. These global parameters 320 may be centrally stored for the slice with other control parameters for the slice.
  • the decoder may compute a deblocking filter strength with respect to the pixel block edge.
  • the decoder may estimate the deblocking strength (referred to as bS in H.264) at one of four levels based on a number of factors including, e.g., whether p 0 and q 0 are in different macroblocks, the slice type, or intra macroblock prediction mode etc.
  • the computation of deblocking filter strengths may overburden the decoder.
  • the coder may compute the deblocking filter strengths for pixel block edges on behalf of the decoder upon a determination of decoder's limited processing capability (e.g., by comparing the decoder device with a known list of limited- resource devices).
  • the coder may compute the deblocking filter strengths based on pixel blocks that form a pixel block edge.
  • the coder may code the deblocking parameters, including deblocking strengths, along with the coding parameters 330.1-330.9 for each pixel block.
  • the coder may first code a video source into, e.g., a H.264 complied, bitstream.
  • a custom coder may estimate deblocking parameters, e.g., deblocking filter strengths (bS) in H.264.
  • deblocking filter strengths e.g., deblocking filter strengths (bS) in H.264.
  • FIG. 3C these deblocking filter parameters may be again coded with coding parameters 330.5 for the pixel block and transmitted to the decoder at the receiving end.
  • FIG. 3C illustrates one block 340.5 of the slice of FIG. 3A.
  • the block 340.5 may be a part of the slice 310 which may include deblocking filter parameters 320.
  • the block 340.5 may also include coding parameters 330.5, which may include the coarseness of the quantization used, the number of reference frames referenced by the block, and the number of coded coefficients used. Additionally, block 340.4 may have been predicatively coded based on other blocks.
  • the deblocking filter parameters 320 and the coding parameters 330.5 may be transmitted to the decoder 350 to determine the deblocking filter strengths to be applied to the block 340.5.
  • FIG. 4A illustrates a slice 410 of coded video data with data dependencies 420
  • FIG. 4A illustrates a slice 410 of coded video data with data dependencies 420
  • FIG. 4B illustrates the data dependencies 420 having been removed.
  • FIG. 4A illustrates a slice 410 of the source video data after being coded.
  • Blocks 400.2 and 400.3 may have been predicted from a portion of block 400.1 and 400.2 respectively. Because of the prediction coding of the blocks 400.2 and 400.3, a deblocking filter at the decoder could not apply deblocking to block 400.3 until block 420.2 had been deblocked and could not apply deblocking to block 400.2 until block 400.1 had been deblocked. After a determination of decoder's capability, the coder may change the type of coding applied to blocks 400.2 and 400.3.
  • FIG. 4B illustrates the slice 410 after the coder has changed the coding scheme for blocks 400.2 and 400.3. The dependencies have been removed so that blocks 400.1-400.4 could be deblocked in parallel at the decoder. ] Data dependency may also occur when the length of the deblock filter is longer than half of the pixel block size.
  • a 4X4 pixel block may have an Edge L on the left and an Edge R on the right.
  • a deblocking Filter L may be used to filter the Edge L
  • a deblocking Filter R may be used to filter the Edge R.
  • the coder may choose to use larger macroblock sizes to avoid the overlapping deblocking filter problem. For example, if the deblocking filter size is 3 taps long for a 4X4 block, the coder may instead choose to use a larger macroblock such as 8X8 to avoid the overlapping deblocking filter problem.
  • FIG. 5 illustrates an embodiment of joint optimization of complexity and visual quality of the deblocking process for resource limited decoder devices.
  • This embodiment may include an coder device 504, a decoder 524, and communication link 522 for transmitting data between the coder and the decoder.
  • the coder and the decoder may be implemented in hardware.
  • the decoder may be a device having special purpose chipsets for video coding and decoding.
  • the coder and decoder may also be implemented as software coder or decoder running on a general purpose processor.
  • the coder and decoder may also be implemented as a mix of software and hardware, such as software coder with hardware decoder (or vice versa).
  • the communication link may be wired or wireless.
  • the coded video may be transmitted to the decoder via storage media such as memory storage devices or optical disks.
  • source video 502 may be provided to the video coder 504 to be coded for a decoder 524. Responsive to receiving the source video, the coder may acquire knowledge of the intended decoder.
  • the processing resource at the decoder may be related to, e.g., computational power available at the decoder including speed and memory of a processor (CPU and GPU), or the number of processors available for parallel computations.
  • the processing resource at the decoder may be estimated at 506 based on a type of the decoder device, e.g. via an identification matching to a specific type of hardware device. Different device models may correspondingly have different identification numbers.
  • the coder device may estimate the decoder capacity at 506 based on a sampling of decoder hardware resources including models of processors and the number of processors. The coder device may make the estimation by comparing the available hardware with a pre-formulated table. In yet another example embodiment, the coder device may have a pre-compiled list or table of known decoder devices. Then, the coder device may customize video coding based on a particular type of decoder. ] At 508, based on information of the decoder, the coder device may make a determination of whether the decoder has sufficient resources for deblocking filtering. In making this determination, the coder may also take into account of the displaying quality of the decoded video.
  • a low resolution displaying device e.g., a handheld device
  • a high resolution displaying device e.g., a HD monitor
  • the display quality of decoded video may also be related to frame drop rate at the decoder. Deblocking filtering may demand so much computational resources that the decoder may need to drop frames from display. The frame drop rate for a particular hardware configuration may be predetermined by experimenting different deblocking filters on the hardware. Therefore, the determination of whether the decoder resource is limited is based on the hardware configuration of the decoder and the desired display quality of the video.
  • the determination may additionally depend on the complexity of the source video itself.
  • the coder device may code the source video using a default coding policy at 518 and transmit the coded video to the decoder at 520 via a communication link 522.
  • the default coding policy may be designed to achieve the most efficient coding, e.g., the most compact video bitstream.
  • the coder device may customize the coding policy of the source video based on the available resources at the decoder.
  • the coding policy may include tunable parameters or factors including but not limited to transform block sizes, tradeoff between inter and intra macroblock, the number of coded parameters, macroblock qp, and Q Matrix. By tuning these factors for a group of macroblocks, the complexity level and visual quality of deblocking filtering may be jointly optimized.
  • the coder device may determine sizes of pixel blocks in the coded video bitstream. As discussed above in connection with FIG. 3A, the edges of pixel blocks may determine where deblocking filtering may be applied to. The smaller sizes the pixel blocks may be, the more resources the decoder may use for deblocking filtering. The larger sizes the pixel blocks may be, the less resources the decoder may use for deblocking filtering.
  • the coder device may increase sizes of pixel blocks used in coding the source video if the coder device has determined that the decoder has limited resources for deblocking filtering.
  • the coder device may increase the average size of pixel blocks to a target value.
  • the coder device may control the sizes of pixel blocks equal to or larger than a threshold value, e.g., 4X4.
  • the coder device may determine the amount of block dependencies in the code video bitstream based on the resources available at the decoder. As discussed above in connection with FIGS. 4C, when the deblocking filters for two adjacent edges overlap each other, the deblocking filtering at one edge may depend on the deblocking filtering on another.
  • the coder device may change the macroblock size so that there is no dependencies between adjacent edges.
  • the coder device may compute the deblocking filter strengths (e.g., bS under H.264) on behalf of the decoder. As discussed above in connection with FIGS.
  • the deblocking filter strengths may be computed concurrently with the coding of pixel blocks.
  • the coder may code the source video and compute deblocking filter strengths based on the coding parameters.
  • the coding parameters that may influence the deblocking filter strengths under, e.g., H.264, may include the locations of Po and q 0 (referring to FIG. 3A, whether the pixel block edge is also macroblock edge) and the coding type of a slice (e.g., slice_type under H.264).
  • the deblocking filter strengths may be transmitted separately as extra information to the decoder, or alternatively along with other deblocking filter parameters 320 to the decoder. ] FIG.
  • the encoder receives image frames of source video.
  • an image frame may be further divided into slices of pixels.
  • the parameters of deblocking filters for slices of pixels may be determined. These parameters may influence globally all pixels within a slice of pixels.
  • optimal deblocking may be determined for particular areas within the slice. The determination of areas within the slice may involve detecting edges or objects in the image and estimating how much deblocking filtering should be applied to various portions of the slice. For example, it may determine that a wall in the background in the scene may need only low or no deblocking.
  • the characteristics of pixel blocks within slices may be adjusted to optimize the deblocking quality and/or minimize the complexity of the deblocking filter.
  • the deblocking filter makes default assumptions about how much deblocking to apply based on the characteristics of the blocks (and the set of parameters for the whole slice of pixels). Many factors may be adjusted to achieve the optimized deblocking and complexity.
  • the type of neighboring macroblocks (I, P, or B type) may be adjusted for optimal trade-off of quality and complexity. For example, typically, I blocks may receive strong deblocking filtering than inter-coded blocks. To increase a deblocking strength for a block, intra-coded macroblocks (Mbs) may be used.
  • the number of coded coefficients may be used to adjust deblocking filter strength.
  • Methods to code coefficients of macroblocks may increase or decrease (or even turn on or off) the deblocking filter strength. For example, when no coefficients are coded for two neighboring inter-coded macroblocks under H.264, the deblocking filter may be weaker than having some coefficients in either neighboring macroblock coded.
  • the strengths and complexity of the deblocking may be optimized. Other factors including but not limited to reference picture, number of reference frames, and different motion vector values may also be adjusted to optimize the strength and complexity of deblocking filter.
  • the method described above may use a state machine to keep track of the complexity that is being used by the deblocking filter of the decoder.
  • the state machine may track previous blocks since there are buffers in the decoder and since a previous slice may increase power, cpu or gpu cycle or time to deblock the current slice.
  • the overall deblocking power/ resources are usually limited and usually relate to the complexity of the group of Mb/slice/picture and the current state when starting to deblock the current frame.
  • the encoder can have a complexity budget model for the deblocking filter to keep track of the state of the de-blocker at any time.
  • the encoder will keep track of the deblocking filter state by combining the information of the initial state and the complexity of the Mb groups/slice/pictures. Thus, it may ensure that the deblocking filter can have enough resources to complete all the necessary work.
  • Other techniques may be included as part of the complexity control of the encoder to insure the deblocking filter of the decoder is not overtaxed.]
  • a slice of pixels may be divided into a number of pixel blocks, the size and the number of which may be adjusted to achieve optimized quality and complexity of deblocking filtering at the target decoder.
  • quantization parameters may also be adjusted for optimized deblocking filtering at the target decoder.
  • the quantization parameter (q) may also determine the strength of the deblocking filter at the target decoder.
  • the overall optimal parameters may be determined for the whole slice of pixels.
  • FIG. 7 is a simplified functional block diagram of a computer system 700.
  • a coder and decoder of the present invention can be implemented in hardware, software or some combination thereof.
  • the coder and or decoder may be coded on a computer readable medium, which may be read by the computer system of 700.
  • an coder and/or decoder of the present invention can be implemented using a computer system.
  • FIG. 7 As shown in FIG.
  • the computer system 700 includes a processor 702, a memory system 704 and one or more input/output (I/O) devices 706 in communication by a communication 'fabric/
  • the communication fabric can be implemented in a variety of ways and may include one or more computer buses 708, 710 and/or bridge devices 712 as shown in FIG. 7.
  • the I/O devices 706 can include network adapters and/or mass storage devices from which the computer system 700 can receive compressed video data for decoding by the processor 702 when the computer system 700 operates as a decoder.
  • the computer system 700 can receive source video data for coding by the processor 702 when the computer system 700 operates as a coder.

Abstract

Embodiments of the present invention provide apparatuses and methods of coding video. The apparatuses and methods may further provide coding a source video sequence according to a block-based coding process, estimating processing capabilities of a target decoder, determining if the estimated processing capabilities are sufficient to perform deblocking filtering. If not sufficient, the apparatuses and methods may provide computing deblocking filter strengths for pixel blocks of the source video sequence to be used at decoding, and transmitting the deblocking filter strengths in a coded video data signal with the coded video data. Moreover, if not sufficient, the apparatuses and methods may provide changing coding parameters including, but not limited to, block sizes, transform sizes, and Qmatrix.

Description

UNITED STATES PATENT APPLICATION
METHOD AND SYSTEM FOR VIDEO CODER AND DECODER JOINT OPTIMIZATION
INVENTORS:
Xiaojin Shi Hsi-Jung Wu
Prepared by:
KENYON & KENYON
1500 K Street, N.W.
Washington, D.C. 20005 METHOD AND SYSTEM FOR VIDEO CODER AND DECODER JOINT OPTIMIZATION
CROSS REFERENCE TO RELATED APPLICATIONS ] This application claims priority under 35 U.S.C. 119(e) to U.S. Provisional Application
61/059725, filed on June 6, 2008, entitled "Method and System for Joint Optimization of Complexity and Visual Quality of the Deblocking Process for Resource Limited Devices".
FIELD OF THE INVENTION ] Embodiments of the present invention relate to video coding and decoding. Specifically, the present invention is related to apparatuses and methods for improving deblocking at a resource-limited decoder.
BACKGROUND ] Video coders are commonly used to code source video to achieve bandwidth compression. The coded video data may be transmitted as a bitstream over communication channels, e.g., the Internet or cable network, to receiving devices. The receiving devices such as a handheld device may decode the received bitstream, recover a replica of the source video and display the recovered video on a display screen. ] The process of coding, transmitting, and decoding may be lossy in the sense that the recovered video data at the receiving device is not identical to the video data input at the coding device. The losses in video coding and decoding may arise from the quantization process and/or other operations that induce data compression but at the cost of data loss. Moreover, losses in video coding and decoding may cause visually perceivable artifacts in the recovered video data. One type of well known artifacts in video compression is the so-called blocking artifact often existing in block based coders, e.g., MPEG-x or H.264 coders. Block- based coders typically organize source video data into arrays (or "pixel blocks") before processing them; when coded blocks are recovered, discontinuities may be observed between recovered pixels blocks which may appear unnatural to viewers. ] The blocking artifacts may be reduced in a post processing step performed by a decoder, for example by a low pass filter. Recent video compression standards, e.g. H.264, may also include in-loop deblocking filters in the decoder. FIG. 1 illustrates a functional block diagram of source video data 110 being coded by a coder 120, transmitted across a channel 130, and then decoded by a decoder 140 to produce decoded video data 160. The source video data 110 may be a video digitized from analog or uncompressed video. The source video may commonly contain a sequence of image frames, each of which may include a rectangular array of pixels. The coder 120 may code the source video data 110 to generate coded video data 170 and transmit the coded video data 170 over a communication channel 130 to a decoder 140. The coder may divide the coded video data into slices (136, 142) of pixels. The coded video data may include both coded image frames and instructions (135, 141) that instruct the decoder 140 how to decode the coded video data. The decoder 140 may decode the coded video data based on these instructions. ] The coding process may operate as follows. The coder 120 may break up the source video data 110 into slices and then break up the slices into blocks (e.g. 4x4 pixels or 8x8 pixels or 16x16 pixels). The coder 120 may use various coding methods to code the source video data 110. For example, the coder 120 may predict pixel values of a block from a previous block and code the differences between the pixel values and the predicted pixel values based on blocks of pixels. The coder may select coding parameters 132, 138, which may be used to achieve different types and levels of compression and which are communicated to a decoder. These control parameters may determine how much loss is induced to the coding process and thus determines the quality of the decoded video data 160. For example, the coder 120 may have control parameters for a discrete cosine transform (DCT) processor 122, a quantization processor 124, a slice scan system 126, and an entropy coder 128. In particular, the coder 120 may select a coding parameter 132, 134 for the quantization process 124 which determines how many levels a block of the source video data 110 may be quantized. A smaller number of quantization levels may increase the number of zeros and thus permit greater compression. The data that is turned into zeros is lost, but the coded video data 170 is compressed. ] For block based video compression, blocking artifacts may exist because of the quantization of pixel values. Blocking artifacts are a distortion that appears in the decoded video as abnormally large pixel blocks. For example, a video image may appear to have large blocks, or black or white lines, or an image may appear to have blocks that are averaged together. Typically, the blocking artifacts may occur with pixels surrounding the output of certain decoded blocks of pixels. ] The decoder 140 may include a deblocking filter 150 to reduce blocking artifacts. The deblocking filter in the decoder may have a number of control parameters. For example, under H.264 ("Advanced Video Coding for Generic Audiovisual Services", ITU-T Rec. H.264 (11/2007), which is incorporated herein by reference), the strength of an in-loop deblocking filter in the decoder may be controlled globally by parameters representing quantization levels in the bitstream. The coder may set these global deblocking filter parameters during coding process, for example, during coding slices of video data 136, 142. ] The decoder 140 may operate as follows. The decoder 140 receives the coded video data 170 including coding parameters 132 and deblocking filter parameters 134. The decoder 140 then decodes the coded video data 170, block-by-block, according to the coding parameters 132, 138 and the deblocking filter parameters 134. The coding parameters 132, 138 determine how to decode the coded video data 170 for the entropy decoder 142, the inverse slice scan system 144, the inverse quantization processor 146, and the inverse DCT processor 148. ] The deblocking filter 150 may operate as follows. The coder 120 may globally control the strength of the deblocking filter 150 at slice level, e.g., via the alpha and beta parameters of the H.264 standard, where the alpha and beta may be determined based on the average quantization parameter of a slice. However, since the coder 120 has only a slice level control over the deblocking filter 150, some pixel blocks within the slice may be over-filtered and some blocks within the slice may be under-filtered. Over-filtering may over-smooth the decoded video data 160, e.g., blurring edges, and reduce the perceptual quality of the video. On the other hand, under filtering may not sufficiently reduce blocking artifacts. ] Thus, in addition to the global control of deblocking filter, a decoder may compute a deblocking filter strength for each pixel block based on image content or pixel values within and without the pixel block. For example, under H.264, four levels of deblocking filter strengths (bS) may be computed based on pixel values and location of block edges. A level four (bS=4) represents the strongest filtering, and a level one (bS=l) represents the least filtering. Under this arrangement, the filtering is more targeted to each block, which may produce right amount of filtering for the block. However, the block-based deblocking filtering may require the decoder to compute the proper amount of deblocking strength. This computation may burden receiving devices that have only limited computation resources. For these devices, the extra computational burden may cause the decoder, e.g., to drop frames and thus reduce the visual quality. ] Moreover, the receiving device may include processors, e.g., CPU or GPU that may operate in parallel. However, data dependencies in the coded video data 170 may prevent the deblocking to be performed in parallel. For example, as in predicting coding, a pixel block to be filtered may be calculated with pixel values from previous pixel blocks and/or later pixel blocks in a coding sequence. Thus, parallel processing may not happen since later pixel blocks that the current pixel block depends on have not finished processing yet. ] Accordingly, there is a need for apparatuses and methods to efficiently control the deblocking applied at a block level. Moreover, there is a need in the art to jointly manage a complex budget for a deblocking filter, and to code video source data that can be deblock- filtered in parallel.
BRIEF DESCRIPTION OF THE DRAWINGS ] FIG. 1 illustrates a functional block diagram of a source video data being coded, transmitted across a channel, and then decoded to produce a decoded video data. ] FIG. 2 illustrates a coded image that is split into slices. ] FIG. 3A illustrates a slice of an image with the deblocking filter parameters and the coding parameters. ] FIG. 3B illustrates a tuple of pixels over a pixel block edge over which a deblocking filter may apply. ] FIG. 3C illustrates one block in a slice. ] FIG. 4A illustrates a slice of coded video data with data dependencies. ] FIG. 4B illustrates the data dependencies having been removed. ] FIG. 4C illustrates the data dependencies between adjacent deblocking filters. ] FIG. 5 illustrates an embodiment for a method for joint optimization of complexity and visual quality of the deblocking process for resource limited decoders. ] FIG. 6 illustrates another embodiment for a method for joint optimization of complexity and visual quality of the deblocking process for resource limited decoders. ] FIG. 7 illustrates a simplified functional block diagram of a computer system that may be used to implement the coding method illustrated in FIGS. 5 and 6.
DETAILED DESCRIPTION ] Embodiments of the present invention provide apparatuses and methods of coding video. The apparatuses and methods further provide coding a source video sequence according to a block-based coding process, estimating processing capabilities of a target decoder, determining if the estimated processing capabilities are sufficient to perform deblocking filtering. If not sufficient, the apparatuses and methods further provide computing deblocking filter strengths for pixel blocks of the source video sequence to be used at decoding, and transmitting the deblocking filter strengths in a coded video data signal with the coded video data. ] In one example embodiment of the present invention, the video coder may code source video data based on the capacity of the decoding device. For a particular type of decoding device, the coding device may determine whether the decoding device has the computational resources to carry out the block-based deblocking filtering process without degrading visual quality. In the case where the decoding device does not have sufficient resources, the coding device may estimate block-based filtering strengths on behalf of the decoder and code the deblocking filter strengths in the bitstream. Therefore, the decoder may perform block based deblocking filtering without the need for estimating deblocking filter strengths. ] In another embodiment of the present invention, based on the capacity of the decoder, the coder may change the size of pixel blocks. In predictive coding, pixels may be transformed based on pixel blocks (or transform blocks). Since block artifacts tend to appear at the edges of these pixel blocks, deblocking filters may be applied over edges of these pixel blocks. Smaller pixel blocks may produce higher display quality after deblocking filtering at higher processing cost. On the other hand, larger pixel blocks for deblocking filters may require less processing at the cost of lower display quality. The coder may make a determination of the pixel block sizes based on decoder's capacity and code at an appropriate level of block sizes.] Furthermore, in one embodiment of the present invention, the coder may also determine the decoder's capability for parallel processing. If the decoder is capable of parallel computing, the coder may remove certain deblocking filtering dependencies to take full advantage of the decoder's capability for parallel processing. ] FIG. 2 illustrates a coded image 210 that is split into slices. An image 210 may be split into multiple slices 250. The slices 250 may include a sequence of macroblocks (not shown) of pixels, e.g., 16x16 pixels under H.264. The macroblocks may further include arrays of pixel blocks (e.g., 4x4 or 8x8 pixels). It is an objective of the present invention to control deblocking filter strengths at block level. ] FIG. 3A illustrates a slice that includes macroblocks and pixel blocks. The slice may contain macroblocks 310 (e.g., of 16x16 pixels), which may further contain pixel blocks (e.g., of 8x8 or 4x4 pixels). Adjacent macroblocks may be separated by macroblock edges, and adjacent pixel blocks may be separated by pixel block edges. As shown in FIG. 3A, at the boundaries of macroblocks, pixel block edges may overlay with macroblock edges. ] FIG. 3B illustrates a convention for describing pixels across a pixel block edge over which a deblocking filter may apply. Pixel blocks may be 8x8 or 4x4. Thus, the deblocking filter may be a horizontal or vertical, one-dimensional filter with a base of, e.g., 4 or 8 pixels. The example illustration of FIG. 3B includes pixels p0 . . . P3 in a first pixel block and q0 . . . c\3 in a second pixel block. The deblocking filter may be individually applied to each component plane, e.g., the luma and the two chroma under H.264, of a picture frame. ] Some of the deblocking filter's parameters may be determined at the coder end. For example, the deblocking filter parameters 320 may include the alpha and beta parameters in the H.264 standard that may be applied globally to a slice of pixels. An H.264 coder commonly computes the alpha and beta parameters that may be applied to all macroblocks within the slice. These global parameters 320 may be centrally stored for the slice with other control parameters for the slice. ] For each pixel block edge, the decoder may compute a deblocking filter strength with respect to the pixel block edge. For example, under H.264, the decoder may estimate the deblocking strength (referred to as bS in H.264) at one of four levels based on a number of factors including, e.g., whether p0 and q0 are in different macroblocks, the slice type, or intra macroblock prediction mode etc. However, when the decoder has only limited processing resources, the computation of deblocking filter strengths may overburden the decoder. ] In one embodiment of the present invention, upon a determination of decoder's limited processing capability (e.g., by comparing the decoder device with a known list of limited- resource devices), the coder may compute the deblocking filter strengths for pixel block edges on behalf of the decoder. The coder may compute the deblocking filter strengths based on pixel blocks that form a pixel block edge. Referring to FIG. 3A, the coder may code the deblocking parameters, including deblocking strengths, along with the coding parameters 330.1-330.9 for each pixel block. In one example embodiment, the coder may first code a video source into, e.g., a H.264 complied, bitstream. A custom coder may estimate deblocking parameters, e.g., deblocking filter strengths (bS) in H.264. Referring to FIG. 3C, these deblocking filter parameters may be again coded with coding parameters 330.5 for the pixel block and transmitted to the decoder at the receiving end. ] FIG. 3C illustrates one block 340.5 of the slice of FIG. 3A. The block 340.5 may be a part of the slice 310 which may include deblocking filter parameters 320. The block 340.5 may also include coding parameters 330.5, which may include the coarseness of the quantization used, the number of reference frames referenced by the block, and the number of coded coefficients used. Additionally, block 340.4 may have been predicatively coded based on other blocks. The deblocking filter parameters 320 and the coding parameters 330.5 may be transmitted to the decoder 350 to determine the deblocking filter strengths to be applied to the block 340.5. ] FIG. 4A illustrates a slice 410 of coded video data with data dependencies 420, and FIG.
4B illustrates the data dependencies 420 having been removed. FIG. 4A illustrates a slice 410 of the source video data after being coded. Blocks 400.2 and 400.3 may have been predicted from a portion of block 400.1 and 400.2 respectively. Because of the prediction coding of the blocks 400.2 and 400.3, a deblocking filter at the decoder could not apply deblocking to block 400.3 until block 420.2 had been deblocked and could not apply deblocking to block 400.2 until block 400.1 had been deblocked. After a determination of decoder's capability, the coder may change the type of coding applied to blocks 400.2 and 400.3. Therefore, under certain situations, it may be desirable, rather than predicatively coding blocks 400.2 and 400.3, but intra-coding them based on pixels respectively within the blocks 400.2 and 400.3. FIG. 4B illustrates the slice 410 after the coder has changed the coding scheme for blocks 400.2 and 400.3. The dependencies have been removed so that blocks 400.1-400.4 could be deblocked in parallel at the decoder. ] Data dependency may also occur when the length of the deblock filter is longer than half of the pixel block size. Referring to FIG. 4C, a 4X4 pixel block may have an Edge L on the left and an Edge R on the right. A deblocking Filter L may be used to filter the Edge L, and a deblocking Filter R may be used to filter the Edge R. When the length of the deblocking filters is longer than half of the block size, the two filters for two adjacent edges (e.g. Filters L and R) may overlap each other. Thus, the computation of Filter L may depend on the result of Filter R or vice versa. To remove this type of filtering dependency, in one embodiment, the coder may choose to use larger macroblock sizes to avoid the overlapping deblocking filter problem. For example, if the deblocking filter size is 3 taps long for a 4X4 block, the coder may instead choose to use a larger macroblock such as 8X8 to avoid the overlapping deblocking filter problem. FIG. 5 illustrates an embodiment of joint optimization of complexity and visual quality of the deblocking process for resource limited decoder devices. This embodiment may include an coder device 504, a decoder 524, and communication link 522 for transmitting data between the coder and the decoder. In different embodiments, the coder and the decoder may be implemented in hardware. For example, the decoder may be a device having special purpose chipsets for video coding and decoding. The coder and decoder may also be implemented as software coder or decoder running on a general purpose processor. The coder and decoder may also be implemented as a mix of software and hardware, such as software coder with hardware decoder (or vice versa). The communication link may be wired or wireless. The coded video may be transmitted to the decoder via storage media such as memory storage devices or optical disks. In one embodiment, source video 502 may be provided to the video coder 504 to be coded for a decoder 524. Responsive to receiving the source video, the coder may acquire knowledge of the intended decoder. The processing resource at the decoder may be related to, e.g., computational power available at the decoder including speed and memory of a processor (CPU and GPU), or the number of processors available for parallel computations. In one embodiment, the processing resource at the decoder may be estimated at 506 based on a type of the decoder device, e.g. via an identification matching to a specific type of hardware device. Different device models may correspondingly have different identification numbers. In another example embodiment, the coder device may estimate the decoder capacity at 506 based on a sampling of decoder hardware resources including models of processors and the number of processors. The coder device may make the estimation by comparing the available hardware with a pre-formulated table. In yet another example embodiment, the coder device may have a pre-compiled list or table of known decoder devices. Then, the coder device may customize video coding based on a particular type of decoder. ] At 508, based on information of the decoder, the coder device may make a determination of whether the decoder has sufficient resources for deblocking filtering. In making this determination, the coder may also take into account of the displaying quality of the decoded video. For example, a low resolution displaying device, e.g., a handheld device, may require less deblocking filtering and thus less resources from the decoder. On the other hand, a high resolution displaying device, e.g., a HD monitor, may require more deblocking filtering and thus more resources from the decoder. The display quality of decoded video may also be related to frame drop rate at the decoder. Deblocking filtering may demand so much computational resources that the decoder may need to drop frames from display. The frame drop rate for a particular hardware configuration may be predetermined by experimenting different deblocking filters on the hardware. Therefore, the determination of whether the decoder resource is limited is based on the hardware configuration of the decoder and the desired display quality of the video. In another example embodiment, the determination may additionally depend on the complexity of the source video itself. ] If the coder device determines that the decoder has sufficient resources for deblocking filtering and displaying decoded video at the desired quality, the coder device may code the source video using a default coding policy at 518 and transmit the coded video to the decoder at 520 via a communication link 522. The default coding policy may be designed to achieve the most efficient coding, e.g., the most compact video bitstream. ] If the coder device determines at 508 that the decoder is a limited resource device for deblocking filtering, the coder device may customize the coding policy of the source video based on the available resources at the decoder. The coding policy may include tunable parameters or factors including but not limited to transform block sizes, tradeoff between inter and intra macroblock, the number of coded parameters, macroblock qp, and Q Matrix. By tuning these factors for a group of macroblocks, the complexity level and visual quality of deblocking filtering may be jointly optimized. ] In one example embodiment, at 510, the coder device may determine sizes of pixel blocks in the coded video bitstream. As discussed above in connection with FIG. 3A, the edges of pixel blocks may determine where deblocking filtering may be applied to. The smaller sizes the pixel blocks may be, the more resources the decoder may use for deblocking filtering. The larger sizes the pixel blocks may be, the less resources the decoder may use for deblocking filtering. Thereby, the coder device may increase sizes of pixel blocks used in coding the source video if the coder device has determined that the decoder has limited resources for deblocking filtering. In one example embodiment, the coder device may increase the average size of pixel blocks to a target value. In another example embodiment, the coder device may control the sizes of pixel blocks equal to or larger than a threshold value, e.g., 4X4. ] In one embodiment, at 512, the coder device may determine the amount of block dependencies in the code video bitstream based on the resources available at the decoder. As discussed above in connection with FIGS. 4C, when the deblocking filters for two adjacent edges overlap each other, the deblocking filtering at one edge may depend on the deblocking filtering on another. As such, the deblocking filtering for some of these depending edges may not happen until the depended on edges have been processed, which may hinder parallel processing for the deblocking filtering. Therefore, for decoders that contains hardware capable of parallel computation, e.g., multiple processors or multiple cores CPU/GPU, the coder device may change the macroblock size so that there is no dependencies between adjacent edges.] In one embodiment, at 514, upon a determination that the decoder may have limited resources for computing the deblocking filter strengths, the coder device may compute the deblocking filter strengths (e.g., bS under H.264) on behalf of the decoder. As discussed above in connection with FIGS. 3A-C, the deblocking filter strengths may be computed concurrently with the coding of pixel blocks. For example, the coder may code the source video and compute deblocking filter strengths based on the coding parameters. The coding parameters that may influence the deblocking filter strengths under, e.g., H.264, may include the locations of Po and q0 (referring to FIG. 3A, whether the pixel block edge is also macroblock edge) and the coding type of a slice (e.g., slice_type under H.264). The deblocking filter strengths may be transmitted separately as extra information to the decoder, or alternatively along with other deblocking filter parameters 320 to the decoder. ] FIG. 6 illustrates another example embodiment of joint optimization of complexity and visual quality of the deblocking process for resource limited decoder devices. At 601, the encoder receives image frames of source video. At 602, an image frame may be further divided into slices of pixels. At 603, the parameters of deblocking filters for slices of pixels may be determined. These parameters may influence globally all pixels within a slice of pixels. At 604, optimal deblocking may be determined for particular areas within the slice. The determination of areas within the slice may involve detecting edges or objects in the image and estimating how much deblocking filtering should be applied to various portions of the slice. For example, it may determine that a wall in the background in the scene may need only low or no deblocking. At 605, the characteristics of pixel blocks within slices may be adjusted to optimize the deblocking quality and/or minimize the complexity of the deblocking filter. Commonly, the deblocking filter makes default assumptions about how much deblocking to apply based on the characteristics of the blocks (and the set of parameters for the whole slice of pixels). Many factors may be adjusted to achieve the optimized deblocking and complexity. In one example embodiment, the type of neighboring macroblocks (I, P, or B type) may be adjusted for optimal trade-off of quality and complexity. For example, typically, I blocks may receive strong deblocking filtering than inter-coded blocks. To increase a deblocking strength for a block, intra-coded macroblocks (Mbs) may be used. In another example embodiment, the number of coded coefficients may be used to adjust deblocking filter strength. Methods to code coefficients of macroblocks may increase or decrease (or even turn on or off) the deblocking filter strength. For example, when no coefficients are coded for two neighboring inter-coded macroblocks under H.264, the deblocking filter may be weaker than having some coefficients in either neighboring macroblock coded. Thus, by controlling the number of coded coefficients for two adjacent macroblocks, the strengths and complexity of the deblocking may be optimized. Other factors including but not limited to reference picture, number of reference frames, and different motion vector values may also be adjusted to optimize the strength and complexity of deblocking filter. The method described above may use a state machine to keep track of the complexity that is being used by the deblocking filter of the decoder. The state machine may track previous blocks since there are buffers in the decoder and since a previous slice may increase power, cpu or gpu cycle or time to deblock the current slice. The overall deblocking power/ resources are usually limited and usually relate to the complexity of the group of Mb/slice/picture and the current state when starting to deblock the current frame. When the deblocking filter resources at the target decoder are insufficient to performed the expected deblocking, sub-optimal decode performance will be achieved, e.g., frame dropping, drifting, etc. The encoder can have a complexity budget model for the deblocking filter to keep track of the state of the de-blocker at any time. The encoder will keep track of the deblocking filter state by combining the information of the initial state and the complexity of the Mb groups/slice/pictures. Thus, it may ensure that the deblocking filter can have enough resources to complete all the necessary work. Other techniques may be included as part of the complexity control of the encoder to insure the deblocking filter of the decoder is not overtaxed.] At 506, a slice of pixels may be divided into a number of pixel blocks, the size and the number of which may be adjusted to achieve optimized quality and complexity of deblocking filtering at the target decoder. In typical implementation, the smaller the pixel block sizes, the more complex the deblocking filter may be. ] In one embodiment of the present invention, quantization parameters may also be adjusted for optimized deblocking filtering at the target decoder. For example, the quantization parameter (q) may also determine the strength of the deblocking filter at the target decoder. The quantization parameter may be adjusted by applying a scalar to the matrix of quantized coefficients (QMatrix). For example, q=30 may mean strong deblocking strength. For this quantization parameter, the method and apparatus of the present invention may determine that an area in a slice should not be deblocked (or not as strongly as p=30), or there is insufficient capabilities at the target decoder for a deblocking strength corresponding to q=30. Thus, the encoder may reduce the quantization parameter (e.g., q=6) and therefore the deblocking strength. The QMatrix may be adjusted accordingly to achieve the effective q=30. ] At 607, the overall optimal parameters may be determined for the whole slice of pixels.
These parameters may include the alpha and beta for the deblocking filter of the target decoder to use for the slice. ] FIG. 7 is a simplified functional block diagram of a computer system 700. A coder and decoder of the present invention can be implemented in hardware, software or some combination thereof. The coder and or decoder may be coded on a computer readable medium, which may be read by the computer system of 700. For example, an coder and/or decoder of the present invention can be implemented using a computer system. ] As shown in FIG. 7, the computer system 700 includes a processor 702, a memory system 704 and one or more input/output (I/O) devices 706 in communication by a communication 'fabric/ The communication fabric can be implemented in a variety of ways and may include one or more computer buses 708, 710 and/or bridge devices 712 as shown in FIG. 7. The I/O devices 706 can include network adapters and/or mass storage devices from which the computer system 700 can receive compressed video data for decoding by the processor 702 when the computer system 700 operates as a decoder. Alternatively, the computer system 700 can receive source video data for coding by the processor 702 when the computer system 700 operates as a coder. ] It should be understood that there exist implementations of other variations and modifications of the invention and its various aspects, as may be readily apparent to those of ordinary skill in the art, and that the invention is not limited by specific embodiments described herein. Features and embodiments described above may be combined. It is therefore contemplated to cover any and all modifications, variations, combinations or equivalents that fall within the scope of the basic underlying principals disclosed and claimed herein.

Claims

WE CLAIM:
1. A video coding method, comprising: coding a source video sequence according to a block-based coding process; estimating processing capabilities of a target decoder; determining if the estimated processing capabilities are sufficient to perform deblocking filtering, and if not: computing deblocking filter strengths for pixel blocks of the source video sequence to be used at decoding; and transmitting the deblocking filter strengths in a coded video data signal with the coded video data.
2. The method of claim 1, further comprising: if the processing capacities are sufficient to perform deblocking filtering: coding the source video with a default coding policy, the default coding policy including default coding parameters; and transmitting the coded video.
3. The method of claim 1, wherein estimating the processing capacities of the target decoder is based on a hardware configuration at the target decoder and a display quality of decoded video at the target decoder.
4. The method of claim 3, wherein the hardware configuration is determined by a type of decoder processor.
5. The method of claim 3, wherein the hardware configuration is determined by a number of decoder processors.
6. The method of claim 3, wherein a factor of the display quality is display resolution at the target decoder.
7. The method of claim 3, wherein a factor of the display quality is a frame drop rate at the decoder.
8. The method of claim 1, wherein the video is coded under H.264 standard.
9. The method of claim 1, wherein the video is coded under MPEG standards.
10. The method of claim 1. wherein the deblocking filter strengths are at one of four levels.
11. The method of claim 1, wherein the computed deblocking filter strengths are coded as part of coding parameters of the coded video.
12. A video coding method, comprising: coding a source video sequence according to a block-based coding process; estimating processing capabilities of a target decoder; determining if the estimated processing capabilities are sufficient to perform deblocking filtering, and if not: determining a pixel block size based on the estimated processing capabilities; and coding the video according to the determined pixel block size.
13. The method of claim 12, wherein the determined pixel block size is an average pixel block size for coding the video.
14. The method of claim 12, wherein the determined pixel block size is a minimum pixel block size for coding the video.
15. A video coding method, comprising: coding a source video sequence according to a block-based coding process; estimating processing capabilities of a target decoder; determining whether the target decoder has parallel processing capabilities; if so, removing filtering dependencies in the coded video; and transmitting coded video to the target decoder.
16. A video coding method, comprising: coding a source video sequence according to a block-based coding process; estimating processing capabilities of a target decoder; determining whether the target decoder has parallel processing capabilities; if so, for a macroblock, determining whether a first deblocking filter for a first edge of the macroblock overlaps with a second deblocking filter for a second edge of the macroblock; if so, increasing the size of the macroblock so that the first and second deblocking filters do not overlap; and coding pixels in the increased macroblock.
17. A video coding method, comprising: coding a source video sequence according to a block-based coding process; estimating processing capabilities of a target decoder; determining if the estimated processing capabilities are sufficient to perform deblocking filtering, and if not, for a slice of pixels, adjusting a type of at least one macroblock in the slice of pixels; coding the video according to the adjusted macroblock type.
18. The video coding method of claim 17, wherein the adjustment is from an I type macroblock to a P type macroblock.
19. The video coding method of claim 17, wherein the adjustment is from an I type macroblock to a B type macroblock.
20. The video coding method of claim 17, wherein the method is applied on a frame basis.
21. A video coding method, comprising: coding a source video sequence according to a block-based coding process; estimating processing capabilities of a target decoder; determining if the estimated processing capabilities are sufficient to perform deblocking filtering, and if not, for a default quantization parameter value, adjusting the default quantization parameter value such that complexity of deblocking filtering at the target decoder is reduced; adjusting a quantization matrix to compensate the adjusted quantization parameter; and coding the video according to the adjusted quantization parameter and quantization matrix.
22. A video coding system for coding source video based on information of resources at a target decoder, comprising: a video coder for coding the source video according to a block-based coding process; a deblocking estimator to: estimate processing capabilities of a target decoder to receive coded video data; determine if the estimated processing capabilities are sufficient to perform deblocking filtering, and if not, compute deblocking filter strengths for pixel blocks of the source video sequence to be used at decoding; a transmitter unit to transmit the coded video and the deblocking filter strengths to a channel.
23. A computer-readable medium coded with a computer-executable program to perform a video coding method, comprising: coding a source video sequence according to a block-based coding process; estimating processing capabilities of a target decoder; determining if the estimated processing capabilities are sufficient to perform deblocking filtering, and if not: computing deblocking filter strengths for pixel blocks of the source video sequence to be used at decoding; and transmitting the deblocking filter strengths in a coded video data signal with the coded video data.
PCT/US2009/046079 2008-06-06 2009-06-03 Method and system for video coder and decoder joint optimization WO2009149151A2 (en)

Priority Applications (7)

Application Number Priority Date Filing Date Title
KR1020107027226A KR101238974B1 (en) 2008-06-06 2009-06-03 Method and system for video coder and decoder joint optimization
BRPI0913375A BRPI0913375A2 (en) 2008-06-06 2009-06-03 method and system for joint optimization of video encoder and decoder
EP09759310A EP2294823A2 (en) 2008-06-06 2009-06-03 Method and system for video coder and decoder joint optimization
CN2009801207764A CN102057676B (en) 2008-06-06 2009-06-03 Method and system for video coder and decoder joint optimization
JP2011512605A JP5174958B2 (en) 2008-06-06 2009-06-03 Method and system for simultaneous optimization of video coder and decoder
KR1020127024151A KR101298389B1 (en) 2008-06-06 2009-06-03 Method and system for video coder and decoder joint optimization
HK11111173.3A HK1157100A1 (en) 2008-06-06 2011-10-19 Method and system for video coder and decoder joint optimization

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US5972508P 2008-06-06 2008-06-06
US61/059,725 2008-06-06

Publications (2)

Publication Number Publication Date
WO2009149151A2 true WO2009149151A2 (en) 2009-12-10
WO2009149151A3 WO2009149151A3 (en) 2010-04-22

Family

ID=41153189

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2009/046079 WO2009149151A2 (en) 2008-06-06 2009-06-03 Method and system for video coder and decoder joint optimization

Country Status (8)

Country Link
US (1) US20090304086A1 (en)
EP (1) EP2294823A2 (en)
JP (1) JP5174958B2 (en)
KR (2) KR101238974B1 (en)
CN (1) CN102057676B (en)
BR (1) BRPI0913375A2 (en)
HK (1) HK1157100A1 (en)
WO (1) WO2009149151A2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012114637A (en) * 2010-11-24 2012-06-14 Fujitsu Ltd Video encoding device
JP2016136761A (en) * 2010-05-07 2016-07-28 エレクトロニクス アンド テレコミュニケーションズ リサーチ インスチチュートElectronics And Telecommunications Research Institute Apparatus for encoding and decoding image by using skip encoding and method of the same

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7456760B2 (en) * 2006-09-11 2008-11-25 Apple Inc. Complexity-aware encoding
JP5435452B2 (en) * 2009-01-20 2014-03-05 株式会社メガチップス Image processing apparatus and image conversion apparatus
EP2396735A4 (en) * 2009-02-11 2012-09-26 Quartics Inc Front end processor with extendable data path
JP5359657B2 (en) * 2009-07-31 2013-12-04 ソニー株式会社 Image encoding apparatus and method, recording medium, and program
US20110116545A1 (en) * 2009-11-17 2011-05-19 Jinwen Zan Methods and devices for in-loop video deblocking
KR20120005968A (en) * 2010-07-09 2012-01-17 삼성전자주식회사 Method and apparatus for video encoding using adjustable loop-filtering, method and apparatus for video dncoding using adjustable loop-filtering
US8976856B2 (en) * 2010-09-30 2015-03-10 Apple Inc. Optimized deblocking filters
KR101879890B1 (en) 2010-12-07 2018-07-18 소니 주식회사 Image processing device, image processing method and recording medium
CN103716632B (en) 2010-12-07 2017-04-19 索尼公司 image processing device and image processing method
US10244239B2 (en) 2010-12-28 2019-03-26 Dolby Laboratories Licensing Corporation Parameter set for picture segmentation
US9317933B2 (en) * 2011-05-27 2016-04-19 Sony Corporation Image processing device and method
EP2735144B1 (en) * 2011-07-21 2020-01-08 BlackBerry Limited Adaptive filtering based on pattern information
US10045089B2 (en) 2011-08-02 2018-08-07 Apple Inc. Selection of encoder and decoder for a video communications session
MY167341A (en) * 2011-09-09 2018-08-16 Sun Patent Trust Low complex deblocking filter decisions
US9148670B2 (en) 2011-11-30 2015-09-29 Freescale Semiconductor, Inc. Multi-core decompression of block coded video data
US9756327B2 (en) * 2012-04-03 2017-09-05 Qualcomm Incorporated Quantization matrix and deblocking filter adjustments for video coding
JP5514338B2 (en) * 2012-04-11 2014-06-04 シャープ株式会社 Video processing device, video processing method, television receiver, program, and recording medium
CN102833551B (en) * 2012-09-25 2014-10-29 中南大学 Slice level coding/decoding end combined time minimization method
JP2014236264A (en) * 2013-05-31 2014-12-15 ソニー株式会社 Image processing apparatus, image processing method and program
US20150103883A1 (en) * 2013-10-11 2015-04-16 Mediatek Inc. Method and apparatus for fast intra prediction
KR20170037120A (en) 2015-09-25 2017-04-04 주식회사 에이치투씨디자인 Hanging bridge wire glasses
US10750171B2 (en) * 2018-06-25 2020-08-18 Google Llc Deblocking filtering
US11290749B2 (en) * 2018-07-17 2022-03-29 Comcast Cable Communications, Llc Systems and methods for deblocking filtering
CN112449183B (en) * 2019-09-03 2023-05-09 联咏科技股份有限公司 Video encoder, video decoder, and video system
CN110971903A (en) * 2019-10-17 2020-04-07 西安万像电子科技有限公司 Coding method, device and system

Family Cites Families (101)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4958226A (en) * 1989-09-27 1990-09-18 At&T Bell Laboratories Conditional motion compensated interpolation of digital motion video
FR2656129B1 (en) * 1989-12-20 1992-03-13 Gen Electric Cgr METHOD FOR MULTI-SCALE RECONSTRUCTION OF THE IMAGE OF THE STRUCTURE OF A BODY.
US5465119A (en) * 1991-02-22 1995-11-07 Demografx Pixel interlacing apparatus and method
US5488418A (en) * 1991-04-10 1996-01-30 Mitsubishi Denki Kabushiki Kaisha Encoder and decoder
US5313204A (en) * 1991-04-25 1994-05-17 Mitsubishi Denki Kabushiki Kaisha Encoding and decoding devices with predictor and detector
US5467136A (en) * 1991-05-31 1995-11-14 Kabushiki Kaisha Toshiba Video decoder for determining a motion vector from a scaled vector and a difference vector
US5414469A (en) * 1991-10-31 1995-05-09 International Business Machines Corporation Motion video compression system with multiresolution features
US5408328A (en) * 1992-03-23 1995-04-18 Ricoh Corporation, California Research Center Compressed image virtual editing system
JPH05316360A (en) * 1992-05-14 1993-11-26 Fuji Xerox Co Ltd Coding/decoding device for picture signal
JP3293920B2 (en) * 1993-01-22 2002-06-17 キヤノン株式会社 Image processing apparatus and method
CA2126467A1 (en) * 1993-07-13 1995-01-14 Barin Geoffry Haskell Scalable encoding and decoding of high-resolution progressive video
KR970003102B1 (en) * 1993-09-17 1997-03-14 대우전자 주식회사 Half pixel motion compensation circuit for video decoder
JP2956464B2 (en) * 1993-12-29 1999-10-04 日本ビクター株式会社 Image information compression / decompression device
DE69535228T2 (en) * 1994-06-08 2007-09-13 Matsushita Electric Industrial Co., Ltd., Kadoma Image conversion device
JP3732867B2 (en) * 1995-03-09 2006-01-11 株式会社ルネサステクノロジ Image expansion device
US5742892A (en) * 1995-04-18 1998-04-21 Sun Microsystems, Inc. Decoder for a software-implemented end-to-end scalable video delivery system
US5612735A (en) * 1995-05-26 1997-03-18 Luncent Technologies Inc. Digital 3D/stereoscopic video compression technique utilizing two disparity estimates
US5619256A (en) * 1995-05-26 1997-04-08 Lucent Technologies Inc. Digital 3D/stereoscopic video compression technique utilizing disparity and motion compensated predictions
US5999189A (en) * 1995-08-04 1999-12-07 Microsoft Corporation Image compression to reduce pixel and texture memory requirements in a real-time image generator
US5673210A (en) * 1995-09-29 1997-09-30 Lucent Technologies Inc. Signal restoration using left-sided and right-sided autoregressive parameters
US5786855A (en) * 1995-10-26 1998-07-28 Lucent Technologies Inc. Method and apparatus for coding segmented regions in video sequences for content-based scalability
US6026183A (en) * 1995-10-27 2000-02-15 Texas Instruments Incorporated Content-based video compression
JPH09182083A (en) * 1995-12-27 1997-07-11 Matsushita Electric Ind Co Ltd Video image encoding method and decoding method and device therefor
US5778097A (en) * 1996-03-07 1998-07-07 Intel Corporation Table-driven bi-directional motion estimation using scratch area and offset valves
DE69740053D1 (en) * 1996-08-07 2010-12-30 Panasonic Corp DEVICE FOR DECODING AND CODING PICTURE AND SOUND, AND INFORMATION TRANSMISSION SYSTEM
JP3263807B2 (en) * 1996-09-09 2002-03-11 ソニー株式会社 Image encoding apparatus and image encoding method
KR100235347B1 (en) * 1996-09-19 1999-12-15 전주범 Method and apparatus for encoding a video signal of a contour of an object
US6341144B1 (en) * 1996-09-20 2002-01-22 At&T Corp. Video coder providing implicit coefficient prediction and scan adaptation for image coding and intra coding of video
EP0931420A4 (en) * 1996-10-11 2002-06-26 Sarnoff Corp Stereoscopic video coding and decoding apparatus and method
US5952943A (en) * 1996-10-11 1999-09-14 Intel Corporation Encoding image data for decode rate control
US5978509A (en) * 1996-10-23 1999-11-02 Texas Instruments Incorporated Low power video decoder system with block-based motion compensation
US5886736A (en) * 1996-10-24 1999-03-23 General Instrument Corporation Synchronization of a stereoscopic video sequence
US6173013B1 (en) * 1996-11-08 2001-01-09 Sony Corporation Method and apparatus for encoding enhancement and base layer image signals using a predicted image signal
US6043846A (en) * 1996-11-15 2000-03-28 Matsushita Electric Industrial Co., Ltd. Prediction apparatus and method for improving coding efficiency in scalable video coding
US6148026A (en) * 1997-01-08 2000-11-14 At&T Corp. Mesh node coding to enable object based functionalities within a motion compensated transform video coder
US5960111A (en) * 1997-02-10 1999-09-28 At&T Corp Method and apparatus for segmenting images prior to coding
US6347116B1 (en) * 1997-02-14 2002-02-12 At&T Corp. Non-linear quantizer for video coding
EP0859326A3 (en) * 1997-02-14 1999-05-12 Canon Kabushiki Kaisha Data transmission apparatus, system and method, and image processing apparatus
US6005980A (en) * 1997-03-07 1999-12-21 General Instrument Corporation Motion estimation and compensation of video object planes for interlaced digital video
US6404813B1 (en) * 1997-03-27 2002-06-11 At&T Corp. Bidirectionally predicted pictures or video object planes for efficient and flexible video coding
US6453071B2 (en) * 1997-04-04 2002-09-17 Canon Kabushiki Kaisha Data communication apparatus, method and system and programs for data communication process stored in computer readable storage medium
US6057884A (en) * 1997-06-05 2000-05-02 General Instrument Corporation Temporal and spatial scaleable coding for video object planes
US6310857B1 (en) * 1997-06-16 2001-10-30 At&T Corp. Method and apparatus for smoothing and multiplexing video data flows
US6226410B1 (en) * 1997-06-30 2001-05-01 Intel Corporation Method and apparatus for providing image and video coding with iterative post-processing using transmitted step size information
US6351563B1 (en) * 1997-07-09 2002-02-26 Hyundai Electronics Ind. Co., Ltd. Apparatus and method for coding/decoding scalable shape binary image using mode of lower and current layers
US6993201B1 (en) * 1997-07-08 2006-01-31 At&T Corp. Generalized scalability for video coder based on video objects
US6233356B1 (en) * 1997-07-08 2001-05-15 At&T Corp. Generalized scalability for video coder based on video objects
US6317131B2 (en) * 1997-07-15 2001-11-13 At&T Corp. Interaction modalities for multimedia delivery and presentation using nodes
JPH11122624A (en) * 1997-10-16 1999-04-30 Matsushita Electric Ind Co Ltd Method and system for reducing video decoder processing amount
US6067118A (en) * 1997-12-16 2000-05-23 Philips Electronics North America Corp. Method of frame-by-frame calculation of quantization matrices
US6731811B1 (en) * 1997-12-19 2004-05-04 Voicecraft, Inc. Scalable predictive coding method and apparatus
US6347157B2 (en) * 1998-07-24 2002-02-12 Picsurf, Inc. System and method for encoding a video sequence using spatial and temporal transforms
US6459731B1 (en) * 1998-08-28 2002-10-01 Lucent Technologies Inc. Technique for video communications using a coding-matched filter arrangement
US6412011B1 (en) * 1998-09-14 2002-06-25 At&T Corp. Method and apparatus to enhance a multicast information stream in a communication network
ES2259827T3 (en) * 1998-10-13 2006-10-16 Matsushita Electric Industrial Co., Ltd. REGULATION OF THE CALCULATION AND MEMORY REQUIREMENTS OF A BIT TRAIN COMPRESSED IN A VIDEO DECODER.
US6693957B1 (en) * 1998-12-31 2004-02-17 Nortel Networks Limited Adaptive front end for discrete multitone modem
CN1286575A (en) * 1999-08-25 2001-03-07 松下电器产业株式会社 Noise testing method and device, and picture coding device
US6678416B1 (en) * 2000-02-08 2004-01-13 University Of Washington Detecting and segmenting local deformation in a tracked video object
US6750148B2 (en) * 2000-07-07 2004-06-15 Dainippon Printing Co., Ltd. Method of manufacturing wireless suspension blank
US6931063B2 (en) * 2001-03-26 2005-08-16 Sharp Laboratories Of America, Inc. Method and apparatus for controlling loop filtering or post filtering in block based motion compensationed video coding
JP2002366602A (en) * 2001-04-06 2002-12-20 Seiko Epson Corp Simulation method, system and program for software and hardware
US6554369B2 (en) * 2001-07-12 2003-04-29 The Sollami Company Cutting tool with hardened insert
SE0103002D0 (en) * 2001-09-10 2001-09-10 Trelleborg Ab Vibration damping material
US20030198294A1 (en) * 2002-04-23 2003-10-23 Andre Zaccarin Methods and apparatuses for selecting encoding options based on decoding energy requirements
US20030235250A1 (en) * 2002-06-24 2003-12-25 Ankur Varma Video deblocking
US7190135B2 (en) * 2002-06-26 2007-03-13 Delphi Technologies, Inc. Method of inverter linearization in electric machines through secondary modulation
US6728315B2 (en) * 2002-07-24 2004-04-27 Apple Computer, Inc. Method and apparatus for variable accuracy inter-picture timing specification for digital video encoding with reduced requirements for division operations
US7227901B2 (en) * 2002-11-21 2007-06-05 Ub Video Inc. Low-complexity deblocking filter
JP4593556B2 (en) * 2003-01-09 2010-12-08 ザ リージェンツ オブ ザ ユニバーシティ オブ カリフォルニア Video encoding method and device
US7193649B2 (en) * 2003-04-01 2007-03-20 Logitech Europe S.A. Image processing device supporting variable data technologies
US7978764B2 (en) * 2003-06-27 2011-07-12 Nxp B.V. Method of video encoding for handheld apparatuses selecting best prediction function according to optimal rate-distortion value
TW594881B (en) * 2003-07-01 2004-06-21 Au Optronics Corp Method of repairing thin film transistor circuit on display panel by local thin film deposition
US20050024651A1 (en) * 2003-07-29 2005-02-03 Zhenghua Yu Adaptive complexity scalable post-processing method
US7724827B2 (en) * 2003-09-07 2010-05-25 Microsoft Corporation Multi-layer run level encoding and decoding
US7457362B2 (en) * 2003-10-24 2008-11-25 Texas Instruments Incorporated Loop deblock filtering of block coded video in a very long instruction word processor
JP2005217532A (en) * 2004-01-27 2005-08-11 Canon Inc Resolution conversion method and resolution conversion apparatus
US20050201469A1 (en) * 2004-03-11 2005-09-15 John Sievers Method and apparatus for improving the average image refresh rate in a compressed video bitstream
US7881386B2 (en) * 2004-03-11 2011-02-01 Qualcomm Incorporated Methods and apparatus for performing fast mode decisions in video codecs
US8315307B2 (en) * 2004-04-07 2012-11-20 Qualcomm Incorporated Method and apparatus for frame prediction in hybrid video compression to enable temporal scalability
US7496141B2 (en) * 2004-04-29 2009-02-24 Mediatek Incorporation Adaptive de-blocking filtering apparatus and method for MPEG video decoder
US7397853B2 (en) * 2004-04-29 2008-07-08 Mediatek Incorporation Adaptive de-blocking filtering apparatus and method for MPEG video decoder
US7397854B2 (en) * 2004-04-29 2008-07-08 Mediatek Incorporation Adaptive de-blocking filtering apparatus and method for MPEG video decoder
US7460596B2 (en) * 2004-04-29 2008-12-02 Mediatek Incorporation Adaptive de-blocking filtering apparatus and method for MPEG video decoder
US7539248B2 (en) * 2004-04-29 2009-05-26 Mediatek Incorporation Adaptive de-blocking filtering apparatus and method for MPEG video decoder
US20050243914A1 (en) * 2004-04-29 2005-11-03 Do-Kyoung Kwon Adaptive de-blocking filtering apparatus and method for mpeg video decoder
US7400679B2 (en) * 2004-04-29 2008-07-15 Mediatek Incorporation Adaptive de-blocking filtering apparatus and method for MPEG video decoder
US8316068B2 (en) * 2004-06-04 2012-11-20 Telefonaktiebolaget Lm Ericsson (Publ) Memory compression
US8116379B2 (en) * 2004-10-08 2012-02-14 Stmicroelectronics, Inc. Method and apparatus for parallel processing of in-loop deblocking filter for H.264 video compression standard
CN101156449A (en) 2005-01-27 2008-04-02 松下电器产业株式会社 Portable terminal
KR100678958B1 (en) * 2005-07-29 2007-02-06 삼성전자주식회사 Deblocking filtering method considering intra BL mode, and video encoder/decoder based on multi-layer using the method
CN101371584B (en) * 2006-01-09 2011-12-14 汤姆森特许公司 Method and apparatus for providing reduced resolution update mode for multi-view video coding
JP4643454B2 (en) * 2006-01-10 2011-03-02 株式会社東芝 Moving picture decoding apparatus and moving picture decoding method
KR101232780B1 (en) * 2006-01-12 2013-09-03 (주)휴맥스 Device and Method for unified codecs
US7911538B2 (en) * 2006-04-06 2011-03-22 Samsung Electronics Co., Ltd. Estimation of block artifact strength based on edge statistics
US8253752B2 (en) * 2006-07-20 2012-08-28 Qualcomm Incorporated Method and apparatus for encoder assisted pre-processing
JP4410225B2 (en) * 2006-08-07 2010-02-03 株式会社東芝 Moving picture decoding apparatus and method
JP2008042566A (en) * 2006-08-07 2008-02-21 Toshiba Corp Information processor and decoding control method of the information processor
US7456760B2 (en) * 2006-09-11 2008-11-25 Apple Inc. Complexity-aware encoding
CN101669360B (en) * 2007-04-26 2016-08-03 宝利通公司 De-blocking filter arrangements
US8743972B2 (en) * 2007-12-20 2014-06-03 Vixs Systems, Inc. Coding adaptive deblocking filter and method for use therewith
US20090304085A1 (en) * 2008-06-04 2009-12-10 Novafora, Inc. Adaptive Deblocking Complexity Control Apparatus and Method

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
None

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016136761A (en) * 2010-05-07 2016-07-28 エレクトロニクス アンド テレコミュニケーションズ リサーチ インスチチュートElectronics And Telecommunications Research Institute Apparatus for encoding and decoding image by using skip encoding and method of the same
US9743082B2 (en) 2010-05-07 2017-08-22 Electronics And Telecommunications Research Institute Apparatus for encoding and decoding image by skip encoding and method for same
JP2017192135A (en) * 2010-05-07 2017-10-19 エレクトロニクス アンド テレコミュニケーションズ リサーチ インスチチュートElectronics And Telecommunications Research Institute Apparatus for encoding and decoding image by using skip encoding and method of the same
JP2018164303A (en) * 2010-05-07 2018-10-18 エレクトロニクス アンド テレコミュニケーションズ リサーチ インスチチュートElectronics And Telecommunications Research Institute Apparatus for encoding and decoding image by using skip encoding and method of the same
US10218972B2 (en) 2010-05-07 2019-02-26 Electronics And Telecommunications Research Institute Apparatus for encoding and decoding image by skip encoding and method for same
US10574985B2 (en) 2010-05-07 2020-02-25 Electronics And Telecommunications Research Institute Apparatus for encoding and decoding image by skip encoding and method for same
US11323704B2 (en) 2010-05-07 2022-05-03 Electronics And Telecommunications Research Institute Apparatus for encoding and decoding image by skip encoding and method for same
US11849110B2 (en) 2010-05-07 2023-12-19 Electronics And Telecommunications Research Institute Apparatus for encoding and decoding image by skip encoding and method for same
JP2012114637A (en) * 2010-11-24 2012-06-14 Fujitsu Ltd Video encoding device

Also Published As

Publication number Publication date
CN102057676B (en) 2013-07-24
WO2009149151A3 (en) 2010-04-22
KR101238974B1 (en) 2013-03-04
KR20120118503A (en) 2012-10-26
CN102057676A (en) 2011-05-11
JP5174958B2 (en) 2013-04-03
US20090304086A1 (en) 2009-12-10
BRPI0913375A2 (en) 2015-11-24
EP2294823A2 (en) 2011-03-16
KR20110003575A (en) 2011-01-12
JP2011523300A (en) 2011-08-04
HK1157100A1 (en) 2012-06-22
KR101298389B1 (en) 2013-08-20

Similar Documents

Publication Publication Date Title
US20090304086A1 (en) Method and system for video coder and decoder joint optimization
US20190281322A1 (en) Method and device for optimizing encoding/decoding of compensation offsets for a set of reconstructed samples of an image
US11483556B2 (en) Methods and apparatus for collaborative partition coding for region based filters
EP1513349B1 (en) Bitstream-controlled post-processing video filtering
EP2299720A1 (en) Dynamic image encoding/decoding method and device
US20220312006A1 (en) Cross-component adaptive loop filter for chroma
KR20160132915A (en) Deblock filtering using pixel distance
KR102357142B1 (en) Interpolation filter for inter prediction apparatus and method for video coding
WO2018102782A1 (en) Indication of bilateral filter usage in video coding
WO2011050978A1 (en) Luminance dependent quantization
CN111164972A (en) System and method for controlling video encoding at frame level
CN111164980A (en) System and method for controlling video encoding within image frames
US8687910B2 (en) Image filtering method using pseudo-random number filter and apparatus thereof
RU2763292C1 (en) Image encoding apparatus, method for image encoding, image decoding apparatus, and method for image decoding
WO2011128055A1 (en) Efficient storing of picture representation using adaptive non-uniform quantizer
EP2296380A1 (en) Efficient syntax for AIF signalling
KR20130069452A (en) Method and apparatus of in-loop filtering by adaptive band offset bands, and appparatus for decoding and encoding by adaptive band offset bands

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 200980120776.4

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 09759310

Country of ref document: EP

Kind code of ref document: A2

WWE Wipo information: entry into national phase

Ref document number: 2011512605

Country of ref document: JP

ENP Entry into the national phase

Ref document number: 20107027226

Country of ref document: KR

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2009759310

Country of ref document: EP

ENP Entry into the national phase

Ref document number: PI0913375

Country of ref document: BR

Kind code of ref document: A2

Effective date: 20101203