WO2012008609A1 - Parallel video coding based on block size - Google Patents
Parallel video coding based on block size Download PDFInfo
- Publication number
- WO2012008609A1 WO2012008609A1 PCT/JP2011/066631 JP2011066631W WO2012008609A1 WO 2012008609 A1 WO2012008609 A1 WO 2012008609A1 JP 2011066631 W JP2011066631 W JP 2011066631W WO 2012008609 A1 WO2012008609 A1 WO 2012008609A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- prediction
- blocks
- group
- mode
- intra
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/176—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/136—Incoming video signal characteristics or properties
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods 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/436—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/46—Embedding additional information in the video signal during the compression process
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
- H04N19/88—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving rearrangement of data among different coding units, e.g. shuffling, interleaving, scrambling or permutation of pixel data or permutation of transform coefficient data among different blocks
Definitions
- the present invention relates to a system for parallel video coding techniques.
- a preferred embodiment is a method for decoding video comprising: (a) decoding a first block of video using a plurality of second blocks of said video; (b) based upon the size of said second blocks of said video alternatively decoding said plurality of second blocks using a first technique or a second technique , wherein said second technique comprises; (i) decoding a first group of said second blocks in a manner such that each of said first group of said second blocks is predicted independently of the other ones of said second blocks not included within said first group; (ii) decoding a second group of said second blocks in manner such that at least one block of said second group of said second blocks is predicted in a manner that is dependent on at least one block of said first group of said second blocks.
- FIG. 1 illustrates encoding patterns
- FIG. 2 illustrates prediction modes
- FIGS . 3A-3I illustrates intra-prediction modes .
- FIG. 4 illustrates a 16 block macroblock with two partition groups.
- FIGS . 5A-5D illustrate macroblocks with two partition groups.
- FIGS . 6A-6B illustrate macroblocks with three partition groups.
- FIG. 7 illustrates a macroblock with multiple partition groups .
- FIG . 8 illustrates a coding unit split.
- FIG. 9A illustrates spatial subdivision of a slice using various units and indices.
- FIG. 9B illustrates spatial subdivisions of a largest coding unit suitable for intra-prediction.
- FIG . 10 illustrates size based parallel decoding.
- FIG. 1 1 illustrates one prediction unit with an intra_split_flag.
- FIG. 12 illustrates type based parallel decoding.
- FIG. 13 illustrates tree based parallel decoding
- FIG. 14A illustrates spatial windows based parallel decoding.
- FIG . 14B illustrates the relationship between a window and a largest prediction unit.
- FIG. 15 illustrates prediction direction in the angular mode of intra 8x8 macroblocks.
- FIG. 16 illustrates arbitary directional intra prediction modes defined by (dx, dy) .
- FIG. 17 illustrates pixels for combined intra prediction and parallel intra prediction .
- FIG. 18 illustrates block rotation .
- Intra-prediction based video encoding / decoding exploits spatial relationships within a frame, an image, or otherwise a block / group of pixels.
- a block of pixels may be predicted from neighboring previously encoded blocks of pixels, generally referred to as reconstructed blocks, typically located above and / or to the left of the current block, together with a prediction mode and a prediction residual for the block.
- a block may be any group of pixels that preferably shares the same prediction mode , the prediction parameters, the residual data and/ or any other signaled data.
- a current block may be predicted, according to the prediction mode, from neighboring reconstructed blocks typically located above and/ or to the left of the current block, together with the decoded prediction residual for the block.
- the intra prediction uses, for example , 4x4 , 8x8, and 16x 16 blocks of pixels.
- a 16x 16 macroblock may include four 8x8 blocks or sixteen 4x4 blocks.
- the processing order for a group of four 8x8 blocks 2 of a 16x 16 macroblock and for a group of sixteen 4x4 blocks 4 of a 16x 16 macroblock may have a zig-zag processing order, or any other suitable order.
- the current block within the macroblock being reconstructed is predicted using previously reconstructed neighboring blocks and/ or macroblocks . Accordingly, the processing of one or more previous blocks of a 16x 16 macroblock is completed before other blocks may be reconstructed using its neighbors within the macroblock.
- the intra 4x4 prediction has more serial dependency in comparison to intra 8x8 and 16x 16 prediction.
- This serial dependency may increase the number of operating cycles within a processor therefore slowing down the time to complete the intra prediction , and may result in an uneven throughput of different intra prediction types .
- the intra 4x4 prediction and 8x8 prediction have nine prediction modes 10.
- Pixel values in the current block may be predicted from pixels values in a reconstructed upper and/ or left neighboring block(s) relative to the current block.
- the direction of the arrow depicting a mode indicates the prediction direction for the mode .
- the center point 1 1 does not represent a direction so this point may be associated with a DC prediction mode, or otherwise referred to as "mode 2" .
- a horizontal arrow 12 extending to the right from the center point 1 1 may represent a horizontal prediction mode, also referred to as "mode 1 " .
- a vertical arrow 13 extending down from the center point 1 1 may represent a vertical prediction mode , also referred to as "mode 0" .
- An arrow 14 extending from the center point 1 1 diagonally downward to the right at approximately a 45 degree angle from horizontal may represent a diagonal downright (DDR) prediction mode , also referred to as "mode 4" .
- An arrow 15 extended from the center point 1 1 diagonally downward to the left at approximately a 45 degree angle from horizontal may represent a diagonal down-left (DDL) prediction mode, also referred to as "mode 3" . Both the DDR and DDL prediction modes may be referred to as diagonal prediction modes .
- An arrow 16 extending from the center point 1 1 diagonally upward to the right at approximately a 22.5 degree angle from horizontal may represent a horizontal up (HU) prediction mode , also referred to as "mode 8" .
- An arrow 17 extending from the center point 1 1 diagonally downward to the right at approximately a 22.5 degree angle from horizontal may represent a horizontal down (HD) prediction mode , also referred to as "mode 6" .
- An arrow 18 extending from the center point 1 1 diagonally downward to the right at approximately a 67.5 degree angle from horizontal may represent a vertical down right (VR) prediction mode, also referred to as "mode 5" .
- VR vertical down right
- An arrow 19 extending from the center point 1 1 diagonally downward to the left at approximately a 67.5 degree angle from horizontal may represent a vertical down left (VL) prediction mode, also referred to as "mode 7" .
- VL vertical down left
- the HU, HD , VR, and VL prediction modes may be referred to collectively as intermediate angle prediction modes .
- FIG. 3A illustrates an exemplary 4x4 block 20 of samples, labeled a-p that may be predicted from reconstructed, neighboring samples, labeled A-M .
- samples When samples are not available, such as for example when E-H are not available, they may be replaced by other suitable values.
- Intra-prediction mode 0 (prediction mode direction indicated as 13 in FIG . 2) may be referred to as vertical mode intra prediction.
- mode 0 or vertical mode intra prediction
- the samples of a current block may be predicted in the vertical direction from the reconstructed samples in the block above the current block.
- FIG. 3B the samples labeled a-p in FIG. 3A are shown replaced with the label of the sample label from FIG. 3A from which they are predicted.
- Intra-prediction mode 1 (prediction mode direction indicated as 12 in FIG. 2) may be referred to as horizontal mode intra prediction.
- mode 1 or horizontal mode intra prediction
- the samples of a block may be predicted in the horizontal direction from the reconstructed samples in the block to the left of the current block.
- FIG. 3C illustrates an exemplary horizontal prediction of the samples in a 4x4 block.
- the samples labeled a-p in FIG. 3A are shown replaced with the label of the sample label from FIG. 3A from which they are predicted .
- Intra-prediction mode 3 (prediction mode direction indicated as 15 in FIG. 2) may be referred to as diagonal down left mode intra prediction.
- mode 3 the samples of a block may be predicted from neighboring blocks in the direction shown in FIG. 3D .
- Intra-prediction mode 4 (prediction mode direction indicated as 14 in FIG . 2) may be referred to as diagonal down right mode intra prediction.
- mode 4 the samples of a block may be predicted from neighboring blocks in the direction shown in FIG. 3E.
- Intra-prediction mode 5 (prediction mode direction indicated as 18 in FIG. 2) may be referred to as vertical right mode intra prediction .
- mode 5 the samples of a block may be predicted from neighboring blocks in the direction shown in FIG . 3F.
- Intra-prediction mode 6 (prediction mode direction indicated as 17 in FIG. 2) may be referred to as horizontal down mode intra prediction.
- mode 6 the samples of a block may be predicted from neighboring blocks in the direction shown in FIG. 3G.
- Intra-prediction mode 7 (prediction mode direction indicated as 19 in FIG. 2) may be referred to as vertical left mode intra prediction.
- mode 7 the samples of a block may be predicted from neighboring blocks in the direction shown in FIG. 3H .
- Intra-prediction mode 8 (prediction mode direction indicated as 16 in FIG. 2) may be referred to as horizontal up mode intra prediction .
- mode 8 the samples of a block may be predicted from neighboring blocks in the direction shown in FIG . 31.
- intra-prediction mode 2 which may be referred to as DC mode
- all samples labeled a-p in FIG. 3A may be replaced with the average of the samples labeled A-D and I-L in FIG . 3A.
- the system may likewise support four 16x 16 intra prediction modes in which the 16x 16 samples of the macroblock are extrapolated from the upper and/ or left hand encoded and reconstructed samples adjacent to the macroblock.
- the samples may be extrapolated vertically, mode 0 (similar to mode 0 for the 4x4 size block) , or the samples may be extrapolated horizontally, mode 1 (similar to mode 1 for the 4x4 size block) .
- the samples may be replaced by the mean, mode 2 (similar to the DC mode for the 4x4 size block) , or a mode 3 , referred to as plane mode, may be used in which a linear plane function is fitted to the upper and left hand samples.
- a first group of blocks of pixels may be selected from a macroblock (or other larger set of pixels) and a second group of blocks of pixels may be selected from the remaining pixels of the macroblock. Additional or alternative groups of blocks of pixels may be selected, as desired.
- a block of pixels may be any size, such as an m x n size block of pixels, where m and n may be any suitable number.
- each of the blocks within the first plurality of blocks are encoded using reconstructed pixel values from only one or more previously encoded neighboring macroblocks
- each of the blocks within the second plurality of blocks may be encoded using the reconstructed pixel values from previously encoded macroblocks and/ or blocks associated with the first plurality of blocks .
- the blocks within the first plurality of blocks may be decoded using reconstructed pixel values from only neighboring macroblocks
- the blocks within the second plurality of blocks may be decoded using the reconstructed pixel values from reconstructed blocks associated with the first plurality of blocks and/ or neighboring macroblocks .
- the encoding and decoding of one or more blocks may be , fully or partially, done in a parallel fashion.
- a macroblock with N blocks the degree of parallelism may be N / 2.
- the increased speed of 4x4 intra prediction for a 16x16 macroblock may be generally around a factor of 8, which is significant.
- a macroblock has a size of MxN, where M and N may be any suitable number.
- the sixteen blocks 41-56 may be grouped into two (or more) sets of eight blocks (or otherwise) each according to a check board pattern (or other pattern). Eight blocks in a first set are shown as 42, 43, 46, 47, 50, 51, 54, and 55, and the eight blocks shown in the other set are 41, 44, 45, 48, 49, 52, 53, and 56.
- the first set of blocks may be decoded, or encoded, in parallel using previously reconstructed macroblocks, and then the second set of blocks may be decoded, or encoded, in parallel using the reconstructed blocks associated with the first set and/or previously reconstructed macroblocks. In some cases, the second set of blocks may start being decoded before the first set of blocks are completely decoded.
- blocks 61-76 may be grouped in two groups.
- the first group may include 65-68 and 73-76, while the second group may include 61-64 and 69-72.
- blocks 81-96 may be grouped in two groups.
- the first group may include 82, 83, 85, 88, 89, 92, 94, and 95, while the second group may include 81, 84, 86, 87, 90, 91, 93, and 96.
- blocks 101-116 may be grouped in two groups.
- the first group may include 109-116, while the second group may include 10 1 - 108.
- blocks 12 1 - 136 may be grouped in two groups.
- the first group may include 122 , 124 , 126, 128, 130 , 132 , 134 , and 136, while the second group may include 12 1 , 123 , 125 , 127 , 129 , 13 1 , 133 , and 135.
- the macroblock may be partitioned into a greater number of partitions, such as three sets of blocks. Moreover, the partitions may have a different number of blocks. Further, the blocks may be the same or different sizes.
- a first plurality of blocks may be predicted in the encoding process using reconstructed pixel values from only previously encoded neighboring macroblocks.
- a second plurality of blocks may be subsequently predicted in the encoding process using reconstructed pixel values from the previously encoded blocks associated with the first plurality of blocks and/ or using reconstructed pixel values from previously encoded neighboring macroblocks.
- the third plurality of blocks may be subsequently predicted in the encoding process using reconstructed pixel values from the previously encoded blocks associated with the first plurality of blocks, and/ or reconstructed pixel values from the previously encoded blocks associated with the second plurality of blocks, and/ or reconstructed pixel values from previously encoded neighboring macroblocks.
- the first set includes eight blocks.
- the second set and the third set each include four blocks.
- the first set includes six blocks .
- the second set and the third set each include five blocks. In the case shown in FIG.
- the first set of blocks may be predicted in the encoding process using reconstructed pixel values from only previously encoded neighboring macroblocks.
- the second set of blocks may be subsequently predicted in the encoding process using reconstructed pixel values from the previously encoded blocks associated with the first set of blocks and/ or using reconstructed pixel values from previously encoded neighboring macroblocks .
- the third set of blocks may be subsequently predicted in the encoding process using reconstructed pixel values from the previously encoded blocks associated with the first set of blocks , and/ or reconstructed pixel values from the previously encoded blocks associated with the second set of blocks, and/ or reconstructed pixel values from previously encoded neighboring macroblocks.
- blocks may be grouped into nine sets.
- the bit stream may require signaling which encoding pattern is used for the decoding, or otherwise the default decoding may be predefined .
- the neighboring upper and left macroblock pixel values may be weighted according to their distance to the block that is being predicted, or using any other suitable measure .
- the video encoding does not use fixed block sizes, but rather includes two or more different block sizes within a macroblock.
- the partitioning of an image may use the concepts of coding unit (CU) , prediction unit (PU) , and prediction partitions. At the highest level, this technique divides a picture into one or more slices.
- a slice is a sequence of largest coding units (LCU) that correspond to a spatial window within the picture.
- the coding unit may be for example, a group of pixels containing one or more prediction modes / partitions and it may have residual data.
- the prediction unit may be for example, a group of pixels that are predicted using the same prediction type, such as intra prediction or intra frame prediction.
- the prediction partition may be for example, a group of pixels predicted using the same prediction type and prediction parameters.
- the largest coding unit may be for example, a maximum number of pixels for a coding unit. For example , a 64x64 group of pixels may correspond to a largest coding unit.
- These largest coding units are optionally subdivided to adapt to the underlying image content (and achieve efficient compression) . This division is determined by an encoder and signaled to the decoder, and it may result in a quad-tree segmentation of the largest coding unit.
- the resulting partitions are called coding units, and these coding units may also be subsequently split.
- Coding unit of size CuSize may be split into four smaller coding units, CUO , CU 1 , CU2 and CU3 of size CuSize / 2 as shown in FIG. 8. This is accomplished by signaling a split_coding_unit_flag to specify whether a coding unit is split into coding units with half horizontal and vertical size .
- the sub-division is recursive and results in a highly flexible partitioning approach.
- each prediction unit may have multiple prediction partitions .
- this may be accomplished by signaling an intra_split_flag to specify whether a prediction unit is split into four prediction units with half horizontal and vertical size . Additional partitioning mechanisms may be used for inter-coded blocks, as desired .
- FIG. 9A illustrates an example spatial subdivision of one slice with various units and their indices (for Inter-prediction) .
- the LARGEST_CU is divided into four coding units CUO, CUl, CU2, and CU3. Further, each of the CUl, CU2, and CU3 are divided into four coding units.
- the coding units achieved by the subdivision are considered as prediction units.
- the coding units achieved by the sub-division of CUl are considered as PU10, PU11, PU12 and PU13.
- PU11 and PU12 have multiple partitions.
- PU11 has PP110, PP111, PP112, and PP113, and PU12 has PP120, PP121, PP122, and PP123.
- FIG. 9B illustrates spatial subdivisions of a largest coding unit suitable for intra-prediction.
- LCU has CUO, CUl, CU2, and CU3.
- CUl, CU2, and CU3 include multiple prediction units. In this case, the processing for multiple coding units are preferably done in parallel.
- processing for multiple prediction units are preferably done in parallel, such as GU20, CU21, CU22, CU23, of CU2; and such as the 4 divisions (PU10, PU11, PU12, and PU13) of CUl.
- the system uses parallel intra prediction only for prediction units of the largest prediction unit that all contain partitions having the same size .
- the largest prediction unit may be for example, the largest group of pixels being defined by a single set of data. This may be determined by inspection of the largest prediction unit, or other set of prediction units (S 101 ) . That may be signaled from within the bitstream by a flag, such as an intra_split_flag, for the prediction unit.
- a flag such as an intra_split_flag
- the parallel intra prediction system (a second technique) may be applied within that prediction unit (S 104) .
- the parallel intra prediction system is preferably not applied (S 103) .
- the default decoding (a first technique) is performed.
- An exemplary splitting of the prediction unit into four prediction partitions is illustrated in FIG. 1 1 , which are then grouped into two sets for parallel processing. For example , partitions 1 and 2 may be grouped to one set and partitions 0 and 3 may be grouped to another set. The first set is then predicted using the prediction unit neighbors while the second set is predicted using prediction unit neighbors as well as the neighbors in the first set.
- the system may further use parallel intra prediction (a second technique) (S 125) across multiple prediction units that have prediction partitions that are of the same size and/ or coding type (e . g. , intra-coded vs. motion compensated) .
- the largest prediction unit may be for example, the largest group of pixels being defined by a single set of data. This may be determined by inspection of the largest prediction unit, or other set of prediction units (S 12 1 ) .
- the parallel intra prediction system (the second technique) may be applied within that prediction unit (S 125) .
- these prediction units preferably be spatially co-located within a coding unit that was subsequently split to create the multiple prediction units (S131).
- the multiple prediction units may be spatially co-located within a coding unit that was recursively split to create the prediction units (S131).
- the prediction units have the same parent in the quad-tree. Since S132, S133, S134, and S135 are similar to S122, S123, S124 and S125 respectively, a description thereof is omitted here. Note that prediction partitions are originally of the same coding type. Accordingly, it is possible to omit the determination of the coding type, of S123 in Fig. 12 and S133 in Fig. 13.
- the system may use parallel intra prediction across multiple coding units.
- the multiple coding units preferably have the same spatial size and prediction type (e.g., intra coded).
- the parallel intra prediction technique may be based on the size of the prediction area.
- the system may restrict the use of the parallel intra prediction technique to pixels within an NxN spatial window (S142).
- the system may restrict use of the parallel intra prediction technique only to pixels within a 16x16 spatial window.
- the spatial window is labeled as LPU (largest prediction unit) and includes data from a first coding unit, CUO, and a second coding unit, CU1.
- the spatial window may be referred to as a parallel unit.
- it may be referred to as a parallel prediction unit or parallel coding unit.
- the size of the parallel unit may be signaled in the bit-stream from an encoder to a decoder. Furthermore, it may be defined in a profile , defined in a level, transmitted as meta-data, or communicated in any other manner.
- the encoder may determine the size of the parallel coding unit and restricts the use of the parallel intra prediction technology to spatial pixels that do not exceed the size of the parallel unit.
- the size of the parallel unit may be signaled to the decoder. Additionally, the size of the parallel unit by be determined by table look, specified in a profile, specified in a level, determined from image analysis, determined by rate-distortion optimization, or any other suitable technique .
- a prediction mode is signaled from the encoder to the decoder. This prediction mode identifies a process to predict pixels in the current block from previously reconstructed pixel values .
- a horizontal predictor may be signaled that predicts a current pixel value from a previously reconstructed pixel value that is near and to the left of the current pixel location.
- a vertical predictor may be signaled that predicts a current pixel value from a previously reconstructed pixel value that is near and above the current pixel location .
- pixel locations within a coding unit may have different predictions. The result is predicted pixel values for all the pixels of the coding unit.
- the encoder may send transform coefficient level values to the decoder.
- these transform coefficient level values are extracted from the bit-stream and converted to transform coefficients.
- the conversion may consist of a scaling operation, a table look-up operation, or any other suitable technique .
- the transform coefficients are mapped into a two-dimensional transform coefficient matrix by a zig-zag scan operation, or other suitable mapping.
- the two-dimensional transform coefficient matrix is then mapped to reconstructed residual values by an inverse transform operation, or other suitable technique.
- the reconstructed residual values are added (or otherwise) to the predicted pixel values to form a reconstructed intra-predicted block.
- the zig-zag scan operation and the inverse residual transform operation may depend on the prediction mode .
- a decoder receives a first prediction mode from an encoder for a first intra-predicted block, it uses the prediction process, zig-zag scan operation and inverse residual transform operation assigned to the first prediction mode .
- a decoder receives a second prediction mode from an encoder for a second intra-predicted block, it uses the prediction process, zig-zag scan operation and inverse residual transform operation assigned to the second prediction mode .
- the scan pattern used for encoding and decoding may be modified, as desired.
- the encoding efficiency may be improved by having the scan pattern further dependent on which group of the parallel encoding the prediction units or prediction partitions are part of.
- the system may operate as follows : when a decoder receives a first prediction mode from an encoder for a first intra-predicted block that is assigned to a first partition, the decoder uses the prediction process, zigzag scan operation and inverse residual transform operation assigned to the first prediction mode and the first partition. Similarly, when a decoder receives a second prediction mode from an encoder for a second intra-predicted block that is assigned to a second partition, the decoder uses the prediction process, zig-zag scan operation and inverse residual transform operation assigned the second prediction mode and the second partition.
- the first and second partitions may correspond to a first and a second group for parallel encoding.
- the first zig-zag scan operation (a first scan order) and first inverse residual transform operation may not be the same as the second zigzag scan operation (a second scan order) and second inverse residual transform. This is true even if the first prediction process and second prediction process are the same .
- the zig-zag scan operation for the first partition may use a horizontal transform and a vertical scan pattern
- the zig-zag scan operation for the second partition may use a vertical transform and a horizontal scan pattern.
- intra prediction modes There may be different intra prediction modes that are block size dependent. For block sizes of 8x8 , 16x 16 , 32x32 , there may be , for example , 33 intra prediction modes which provide substantially finer angle prediction compared to the 9 intra 4x4 prediction modes. While the 9 intra 4x4 prediction modes may be extended in some manner using some type of interpolation for finer angle prediction, this results in additional system complexity.
- the first set of blocks are generally predicted from adjacent macroblocks.
- the system may reuse the existing prediction modes of the larger blocks. Therefore, the 4x4 block prediction modes may take advantage of the greater number of prediction modes identified for other sizes of blocks, such as those of 8x8, 16x 16, and 32x32.
- the intra prediction modes of the 4x4 block size and prediction modes of the larger block sizes may be different.
- the mapping may be according to the prediction direction.
- the intra prediction of a 4x4 block has 9 directional modes
- intra prediction of 8x8 block has 33 modes using angular prediction
- intra prediction of block size 16x 16 and 32x32 has 33 modes using arbitrary directional intra prediction (ADI) .
- ADI arbitrary directional intra prediction
- FIG. 15 is a view illustrating an angular prediction mode having 33 types of available prediction directions. As illustrated in FIG. 15 , the prediction directions correspond to prediction modes, respectively.
- the numbers in FIG . 15 represent the prediction modes; for instance, 0 , 4 , 5, 1 1 , 12 , 19 , 20, 2 1 , 22 , 24, 33 represent predictions in horizontal directions of different angles .
- 2 represents a DC prediction.
- the ADI is a prediction method indicating the prediction directions by a coordinate of (dx,dy) , as illustrated in FIG. 16. Even though the prediction modes of various blocks size may be different, for directional intra prediction, one mode may be mapped to another if they have the same or a close direction . For example , the system may map the value for mode 4 of the 4x4 block prediction to mode 19 of the 8x8 block prediction for the case that mode 4 related to a horizontal mode prediction and mode 9 related to a horizontal mode prediction .
- the additional neighbors from the bottom and right may be used when available .
- the prediction from the bottom and the right neighbors may be done by rotating the block and then utilizing existing intra prediction modes. Predictions by two modes that are of 180 degree difference can be weighted interpolated as follows,
- weighting factor may be the weighted average process between the predictions from above and left neighbors ,and neighbors from bottom and right neighbors as follows: First, derive value yTmp at pixel (x,y) as weighted average of p i and p2 , where weight is according to the distance to the above and bottom neighbors
- yTmp ( p l *(N-y) + p2*y ) / N ;
- xTmp ( p i * (N-x) + p2* x ) / N;
- weight are proportional to the distance between each predicted pixels and the top / bottom and left/ right neighbor.
- the N is the block width
- p i is the prediction that doesn't include the bottom and right neighbors
- p2 is the prediction that doesn't include the above and left neighbors .
- the final predicted value at pixel (x,y) is a weighted average of xTmp and yTmp.
- the encoder may make the decision on whether to perform weighted intra prediction or not, and signal the decision in the bitstream.
- a sample syntax for adding this weighted intra prediction flag is shown below below tables 1 , 2 , and 3. This may be signaled at coding unit level and / or prediction unit level where the parallel intra prediction occurs.
- prev_intra_luma_pred_ 2 (l) 1 flag ae(v) if( !prev_intra_pred_luma_flag )
- the log2_parallel_unit_size specifies the size of the parallel prediction unit.
- Semantics for the is_parallel_unit and weighted_bipred_flag may be defined as is_parallel_unit is true when currCodingUnitSize is less than or equal to ParallelUnitSize , where currCodingUnitSize is the size of current block and ParallelUnitSize is the size of the parallel prediction unit.
- weighted_bipred_flag equal to 1 defines the use of weighted bi-directional prediction for second pass units during intra-coding and equal to 0 defines the use of signal direction prediction for second pass units .
- the intra prediction may be a weighted combination of an ADI prediction with a pixel-by-pixel mean prediction.
- Local mean is constructed as the average of reconstructed pixel values to the left, top-left, and above the current picture . While this is suitable for most of the image, it is problematic for the boundary pixels of the first set blocks of the parallel group, since such pixels may not be reconstructed.
- FIG. 17 illustrates pixels for combined intra prediction and parallel intra prediction.
- One technique to account for boundary issues is to use the parallel unit neighbors to replace the unavailable pixels in the local mean calculation.
- the system may use AL' as the above left pixel, and use L' as the left pixel in the local mean calculation. These neighbors may be given different weights according to their distance to the pixel .
- the system may use other available pixels in the adaptation, including those available from the ADI prediction and not yet processed by the combined intra prediction process . For example, for the highlighted pixel in FIG.
- the system may include its above right pixel AR in the adaptation, and / or may also include its right pixel R, or bottom pixel B , which are already predicted by ADI prediction, but not yet going through the combined intra process.
- the combined intra prediction may include modifying at the boundary of the pixels of the first set blocks in parallel intra prediction .
- the combined intra prediction may be skipped for the boundary pixels of the first set blocks in parallel intra prediction.
- Another technique for combined intra prediction with parallel intra prediction is to start the combined intra prediction from the bottom right pixel of a block if the right and bottom neighbors are available. This may be done by rotating the block, then performing the local mean adaptation and weighted average with utilizing existing intra prediction method such as the ADI or other types of intra prediction. The rotation process is illustrated below in FIG. 18.
- the result of combined intra prediction started from the upper left corner of a block, and the result of combined intra prediction started from the bottom right corner of a block can be weighted average together.
- the partitioning of an image may use the concepts of coding unit (CU) , prediction tree (PT) , and prediction unit (PU) .
- the macroblock in the foregoing embodiment corresponds to LCU (Largest Coding Unit; may also be called a root of a Coding Tree) as defined in WD3.
- the macroblock and block in the embodiment correspond to the CU (Coding Unit; may also be called a leaf of the Coding Tree) , the PU (Prediction Unit) , or TU (Transformation Unit) in WD3.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013501480A JP2013531400A (ja) | 2010-07-15 | 2011-07-14 | 並列的な動画像符号化 |
CN2011800349093A CN103004203A (zh) | 2010-07-15 | 2011-07-14 | 基于块尺寸的并行视频编码 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/837,402 | 2010-07-15 | ||
US12/837,402 US8848779B2 (en) | 2010-07-15 | 2010-07-15 | Method of parallel video coding based on block size |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2012008609A1 true WO2012008609A1 (en) | 2012-01-19 |
Family
ID=45466965
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2011/066631 WO2012008609A1 (en) | 2010-07-15 | 2011-07-14 | Parallel video coding based on block size |
Country Status (4)
Country | Link |
---|---|
US (1) | US8848779B2 (zh) |
JP (1) | JP2013531400A (zh) |
CN (1) | CN103004203A (zh) |
WO (1) | WO2012008609A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014101089A1 (zh) * | 2012-12-28 | 2014-07-03 | 华为技术有限公司 | 视频编码方法和装置 |
Families Citing this family (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8305983B2 (en) * | 2008-11-03 | 2012-11-06 | At&T Intellectual Property I, L.P. | Method and apparatus for enabling registration of endpoint devices through provisioning |
KR101567974B1 (ko) * | 2009-01-05 | 2015-11-10 | 에스케이 텔레콤주식회사 | 블록 모드 부호화/복호화 방법 및 장치와 그를 이용한 영상부호화/복호화 방법 및 장치 |
US8638863B1 (en) * | 2010-05-18 | 2014-01-28 | Google Inc. | Apparatus and method for filtering video using extended edge-detection |
US8848779B2 (en) * | 2010-07-15 | 2014-09-30 | Sharp Laboratories Of America, Inc. | Method of parallel video coding based on block size |
US9716886B2 (en) * | 2010-08-17 | 2017-07-25 | M&K Holdings Inc. | Method for restoring an intra prediction mode |
US11284072B2 (en) | 2010-08-17 | 2022-03-22 | M&K Holdings Inc. | Apparatus for decoding an image |
KR101663764B1 (ko) * | 2010-08-26 | 2016-10-07 | 에스케이 텔레콤주식회사 | 인트라 예측을 이용한 부호화 및 복호화 장치와 방법 |
US9445126B2 (en) * | 2011-01-05 | 2016-09-13 | Qualcomm Incorporated | Video filtering using a combination of one-dimensional switched filter and one-dimensional adaptive filter |
PL3668094T3 (pl) * | 2011-01-13 | 2023-02-13 | Canon Kabushiki Kaisha | Urządzenie do kodowania obrazu, sposób kodowania obrazu i program, oraz urządzenie do dekodowania obrazu, sposób dekodowania obrazu i program |
US20120183041A1 (en) * | 2011-01-14 | 2012-07-19 | Sony Corporation | Interpolation filter for intra prediction of hevc |
WO2013067435A1 (en) | 2011-11-04 | 2013-05-10 | Huawei Technologies Co., Ltd. | Differential pulse code modulation intra prediction for high efficiency video coding |
CN104811727B (zh) * | 2011-11-08 | 2018-02-16 | 三星电子株式会社 | 用于在视频编码或解码中的运动矢量确定的方法和设备 |
US9094681B1 (en) | 2012-02-28 | 2015-07-28 | Google Inc. | Adaptive segmentation |
US9106932B2 (en) * | 2012-02-29 | 2015-08-11 | Broadcom Corporation | Parallel pyramid entropy coding for video and image compression |
KR101628797B1 (ko) * | 2012-04-20 | 2016-06-09 | 후아웨이 테크놀러지 컴퍼니 리미티드 | Hevc에서 무손실 코딩의 개선된 인트라 예측 |
US9185429B1 (en) | 2012-04-30 | 2015-11-10 | Google Inc. | Video encoding and decoding using un-equal error protection |
US9332276B1 (en) | 2012-08-09 | 2016-05-03 | Google Inc. | Variable-sized super block based direct prediction mode |
US9380298B1 (en) | 2012-08-10 | 2016-06-28 | Google Inc. | Object-based intra-prediction |
US9826229B2 (en) | 2012-09-29 | 2017-11-21 | Google Technology Holdings LLC | Scan pattern determination from base layer pixel information for scalable extension |
US9350988B1 (en) | 2012-11-20 | 2016-05-24 | Google Inc. | Prediction mode-based block ordering in video coding |
US9681128B1 (en) | 2013-01-31 | 2017-06-13 | Google Inc. | Adaptive pre-transform scanning patterns for video and image compression |
US9774869B2 (en) * | 2013-03-25 | 2017-09-26 | Blackberry Limited | Resilient signal encoding |
US9247251B1 (en) | 2013-07-26 | 2016-01-26 | Google Inc. | Right-edge extension for quad-tree intra-prediction |
JP6242139B2 (ja) * | 2013-10-02 | 2017-12-06 | ルネサスエレクトロニクス株式会社 | 動画像復号処理装置およびその動作方法 |
JP2015185897A (ja) * | 2014-03-20 | 2015-10-22 | パナソニックIpマネジメント株式会社 | 画像符号化方法及び画像符号化装置 |
KR20180098158A (ko) * | 2017-02-24 | 2018-09-03 | 주식회사 케이티 | 비디오 신호 처리 방법 및 장치 |
US20190082183A1 (en) * | 2017-09-13 | 2019-03-14 | Mediatek Inc. | Method and Apparatus for Video Coding of VR images with Inactive Areas |
CN110324631A (zh) * | 2019-05-09 | 2019-10-11 | 湖南国科微电子股份有限公司 | 一种图像并行处理方法、装置及电子设备 |
US11375220B2 (en) * | 2019-11-27 | 2022-06-28 | Tencent America LLC | Method and apparatus for video decoding using a nominal directional mode and an angular offset |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009513056A (ja) * | 2005-10-21 | 2009-03-26 | 韓國電子通信研究院 | 適応型走査を用いる動画の符号化/復号化装置及びその方法 |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW398131B (en) * | 1997-06-20 | 2000-07-11 | Matsushita Electric Ind Co Ltd | The image process method, the image process device and the data memory medium |
KR100468844B1 (ko) * | 2002-01-07 | 2005-01-29 | 삼성전자주식회사 | 정지영상 및 동영상을 부호화/복호화하기 위한변환계수들의 최적주사방법 |
JP4522199B2 (ja) * | 2003-11-27 | 2010-08-11 | キヤノン株式会社 | 画像符号化装置及び画像処理装置及びそれらの制御方法、並びにコンピュータプログラム及びコンピュータ可読記憶媒体 |
US7379608B2 (en) * | 2003-12-04 | 2008-05-27 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung, E.V. | Arithmetic coding for transforming video and picture data units |
JP4495580B2 (ja) | 2004-12-13 | 2010-07-07 | パナソニック株式会社 | 面内予測装置および面内予測方法 |
CN1819657A (zh) * | 2005-02-07 | 2006-08-16 | 松下电器产业株式会社 | 图像编码装置和图像编码方法 |
KR20060105352A (ko) * | 2005-04-04 | 2006-10-11 | 삼성전자주식회사 | 인트라 예측 방법 및 그 장치 |
KR101088375B1 (ko) * | 2005-07-21 | 2011-12-01 | 삼성전자주식회사 | 가변 블록 변환 장치 및 방법 및 이를 이용한 영상부호화/복호화 장치 및 방법 |
US7933337B2 (en) * | 2005-08-12 | 2011-04-26 | Microsoft Corporation | Prediction of transform coefficients for image compression |
KR101011303B1 (ko) | 2006-07-28 | 2011-01-28 | 가부시끼가이샤 도시바 | 화상 부호화 및 복호화 방법 및 장치 |
DE602007014060D1 (de) * | 2006-08-25 | 2011-06-01 | Thomson Licensing | Verfahren und vorrichtung für partitionierung mit reduzierter auflösung |
US8345756B2 (en) | 2006-08-31 | 2013-01-01 | Ati Technologies, Inc. | Method and system for parallel intra-prediction decoding of video data |
US8416857B2 (en) | 2007-03-29 | 2013-04-09 | James Au | Parallel or pipelined macroblock processing |
US8369411B2 (en) | 2007-03-29 | 2013-02-05 | James Au | Intra-macroblock video processing |
US8634456B2 (en) * | 2008-10-03 | 2014-01-21 | Qualcomm Incorporated | Video coding with large macroblocks |
US9300972B2 (en) * | 2009-02-09 | 2016-03-29 | Samsung Electronics Co., Ltd. | Video encoding method and apparatus using low-complexity frequency transformation, and video decoding method and apparatus |
US20100329362A1 (en) * | 2009-06-30 | 2010-12-30 | Samsung Electronics Co., Ltd. | Video encoding and decoding apparatus and method using adaptive in-loop filter |
KR101768207B1 (ko) * | 2010-01-19 | 2017-08-16 | 삼성전자주식회사 | 축소된 예측 움직임 벡터의 후보들에 기초해 움직임 벡터를 부호화, 복호화하는 방법 및 장치 |
US8588303B2 (en) * | 2010-03-31 | 2013-11-19 | Futurewei Technologies, Inc. | Multiple predictor sets for intra-frame coding |
KR101682147B1 (ko) * | 2010-04-05 | 2016-12-05 | 삼성전자주식회사 | 변환 및 역변환에 기초한 보간 방법 및 장치 |
US8463059B2 (en) * | 2010-04-23 | 2013-06-11 | Futurewei Technologies, Inc. | Two-layer prediction method for multiple predictor-set intra coding |
US8848779B2 (en) * | 2010-07-15 | 2014-09-30 | Sharp Laboratories Of America, Inc. | Method of parallel video coding based on block size |
-
2010
- 2010-07-15 US US12/837,402 patent/US8848779B2/en not_active Expired - Fee Related
-
2011
- 2011-07-14 JP JP2013501480A patent/JP2013531400A/ja active Pending
- 2011-07-14 WO PCT/JP2011/066631 patent/WO2012008609A1/en active Application Filing
- 2011-07-14 CN CN2011800349093A patent/CN103004203A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009513056A (ja) * | 2005-10-21 | 2009-03-26 | 韓國電子通信研究院 | 適応型走査を用いる動画の符号化/復号化装置及びその方法 |
Non-Patent Citations (1)
Title |
---|
ANDREW SEGALL ET AL.: "A Highly Efficient and Highly Parallel System for Video Coding", JOINT COLLABORATIVE TEAM ON VIDEO CODING (JCT-VC) OF ITU-T SG16 WP3 AND ISO/IEC JTC1/SC29/WG11 1ST MEETING: DRESDEN, DE, [JCTVC-A105R1], 15 April 2010 (2010-04-15) - 23 April 2010 (2010-04-23), pages 12 - 23 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014101089A1 (zh) * | 2012-12-28 | 2014-07-03 | 华为技术有限公司 | 视频编码方法和装置 |
CN104041044A (zh) * | 2012-12-28 | 2014-09-10 | 华为技术有限公司 | 视频编码方法和装置 |
CN104041044B (zh) * | 2012-12-28 | 2017-11-17 | 华为技术有限公司 | 视频编码方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN103004203A (zh) | 2013-03-27 |
US8848779B2 (en) | 2014-09-30 |
US20120014436A1 (en) | 2012-01-19 |
JP2013531400A (ja) | 2013-08-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8837577B2 (en) | Method of parallel video coding based upon prediction type | |
US8848779B2 (en) | Method of parallel video coding based on block size | |
US8879619B2 (en) | Method of parallel video coding based on scan order | |
US8855188B2 (en) | Method of parallel video coding based on mapping | |
US8873617B2 (en) | Method of parallel video coding based on same sized blocks | |
RU2663331C1 (ru) | Способ кодирования видео с использованием регулирований смещения согласно классификации пикселов и устройство для этого, способ и устройство декодирования видео для этого | |
US20120236936A1 (en) | Video coding based on edge determination | |
US9451263B2 (en) | Intra prediction apparatus | |
EP2942957A1 (en) | Apparatus for decoding images for intra-prediction | |
US20140269914A1 (en) | Method and apparatus of deriving intra predicion mode | |
WO2012008607A1 (en) | Parallel video coding based on boundaries |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 11806936 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2013501480 Country of ref document: JP Kind code of ref document: A |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 11806936 Country of ref document: EP Kind code of ref document: A1 |