US20180213253A1 - Method and Apparatus of Constrained Intra Block Copy for Coding Video - Google Patents

Method and Apparatus of Constrained Intra Block Copy for Coding Video Download PDF

Info

Publication number
US20180213253A1
US20180213253A1 US15/926,070 US201815926070A US2018213253A1 US 20180213253 A1 US20180213253 A1 US 20180213253A1 US 201815926070 A US201815926070 A US 201815926070A US 2018213253 A1 US2018213253 A1 US 2018213253A1
Authority
US
United States
Prior art keywords
region
previous reconstructed
coding
intrabc
constrained
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US15/926,070
Inventor
Tung-Hsing Wu
Han-Liang Chou
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xueshan Technologies Inc
Original Assignee
MediaTek 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 MediaTek Inc filed Critical MediaTek Inc
Priority to US15/926,070 priority Critical patent/US20180213253A1/en
Assigned to MEDIATEK INC. reassignment MEDIATEK INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: CHOU, HAN-LIANG, WU, TUNG-HSING
Publication of US20180213253A1 publication Critical patent/US20180213253A1/en
Assigned to XUESHAN TECHNOLOGIES INC. reassignment XUESHAN TECHNOLOGIES INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: MEDIATEK INC.
Abandoned legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • 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/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/423Methods 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 characterised by memory arrangements

Definitions

  • the present invention relates to video coding using Intra Block Copy (IntraBC) mode.
  • the present invention relates to techniques to reduce the storage required for the Intra-block copy (IntraBC) coding mode in screen content coding or video coding.
  • IntraBC Intra-block copy
  • High Efficiency Video Coding is a new coding standard that has been developed in recent years.
  • HEVC High Efficiency Video Coding
  • a CU may begin with a largest CU (LCU), which is also referred as coded tree unit (CTU) in HEVC.
  • CTU coded tree unit
  • PU prediction unit
  • JCTVC-M0350 JCTVC-M0350
  • a current coding unit (CU, 110 ) is coded using Intra MC (motion compensation).
  • the prediction block ( 120 ) is located from the current CU and a displacement vector ( 112 ).
  • the search area is limited to the current CTU (coding tree unit), the left CTU and the left-left CTU.
  • the prediction block is obtained from the already reconstructed region.
  • the displacement vector also named block vector (BV), and residual for the current CU are coded.
  • the HEVC adopts CTU and CU block structure as basic units for coding video data. Each picture is divided into CTUs and each CTU is reclusively divided into CUs.
  • each CU may be divided into multiple blocks, named prediction units (PUs) for performing prediction process.
  • the residue associated with each CU is divided into multiple blocks, named transform units (TUs) to apply transform (such as discrete cosine transform (DCT)).
  • DCT discrete cosine transform
  • FIG. 2 illustrates an example of previous reconstructed region that can be used as reference data for encoding a current block according to IBC.
  • the blocks in a current frame ( 210 ) are processed in a pre-defined order (e.g. horizontal scan).
  • the previous reconstructed blocks in the previous reconstructed region ( 230 ) can be used as an IntraBC predictor for the current block.
  • the IntraBC predictor ( 350 ) for the current block ( 320 ) is located according to the block vector ( 340 ) as shown in FIG. 3 .
  • the IntraBC predictor is treated as a reference block for the current block coded by IntraBC mode as if a reference block for an Inter-coded block.
  • the reference block is located in the same picture as the current block while the reference block is in a previous reconstructed reference picture for Inter coding.
  • the reference block is selected from the previous reconstructed region ( 330 ) of the current frame ( 310 ).
  • the block vector points from the current block ( 320 ) to the reference block ( 350 ). In other words, the location of the reference block ( 350 ) is determined based on the location of the current block ( 320 ) offset by the block vector ( 340 ).
  • the block vector is often determined by selecting a reference block in the previous reconstructed region that achieves an optimal performance.
  • the performance can be in terms of BD-rate, which is widely used in video coding systems as a performance measure.
  • information related to the block vector is signaled in the bitstream so that information related to the block vector can be recovered at the decoder side for decoding the current block.
  • the previous reconstructed samples in the previous reconstructed region correspond to reconstructed pixels before the deblocking process.
  • a variation of IBC adopted by the HEVC standard restricts the previous reconstructed region to a ladder-shaped region ( 430 ) for coding a current block ( 420 ) in the current frame ( 410 ) as shown in FIG. 4 , where each row of reconstructed blocks has the same or less number of reconstructed blocks than the previous row of reconstructed blocks.
  • WPP wave-front parallel process
  • SCC screen content coding
  • the processing of a current block in a current row has to be delayed with respect to a corresponding block in the above row.
  • delay corresponding to one or more blocks is used.
  • the WPP coding is intended for parallel encoding or decoding of multiple rows of blocks
  • the WPP structure is also used for non-parallel processing.
  • the WPP structure and the ladder-shaped previous reconstructed region have also been used for IBC coding.
  • the consecutive previous reconstructed blocks within the ladder-shaped region in each row are not a complete row of blocks.
  • consecutive blocks in a row are referred as a row of blocks, which may be a partial row or a full row.
  • FIG. 5 illustrates three instances of IntraBC coding of the current block.
  • time instances t 1 , t 2 and t 3 (t 1 ⁇ t 2 ⁇ t 3 )
  • the previous reconstructed regions ( 514 , 524 and 534 ) for the current blocks ( 512 , 522 and 532 ) are indicated respectively.
  • the previous reconstructed region complies with the WPP structure (i.e., having a ladder-shaped region) continues to grow along the progress of coding process.
  • the previous reconstructed region corresponds to whole picture less than the current block.
  • the data corresponding to the previous reconstructed region may be stored in a buffer or embedded memory so that the processor can access the data stored in the buffer.
  • buffer or embedded memory for the previous reconstructed region would increase the cost.
  • the data for the previous reconstructed region could be stored in an external memory. Nevertheless, there might be significant penalty on processing speed due to external memory access. Accordingly, it is desirable to develop a method and apparatus to overcome the memory issue associated with storing the previous reconstructed region.
  • a method of SCC (screen content coding) or video coding using an IntraBC mode (Intra-block copy mode) for a coding region is disclosed.
  • Embodiments of the present invention derive an IntraBC (Intra picture block copy) predictor from a constrained previous reconstructed region so as to reduce storage requirement for the previous reconstructed data.
  • a maximum absolute vertical BV (block vector) value, MaxV_BV is determined, where MaxV_BV is smaller than a full vertical search range for the coding region.
  • An memory is designated to store a constrained previous reconstructed region comprising previous reconstructed samples processed before the current block is then determined, where the constrained previous reconstructed region includes at least MaxV_MV sample rows in vertical direction above the current block and previously reconstructed blocks in a same block row as the current block, and the constrained previous reconstructed region excludes at least one reconstructed sample row for the current block with a vertical distance measured with respect to a top edge of the coding region larger than MaxV_MV.
  • An IntraBC predictor is then derived from the constrained previous reconstructed region stored in the internal memory. The derived IntraBC predictor is then used for encoding or decoding of the current block.
  • Each coding block may correspond to a prediction unit (PU) or a coding unit (CU).
  • the IntraBC predictor is derived from a valid previous reconstructed region within the constrained previous reconstructed region stored in the memory, and the valid previous reconstructed region corresponds to the constrained previous reconstructed region overlapped with a ladder-shaped region related to wave-front parallel processing (WPP).
  • WPP wave-front parallel processing
  • the constrained previous reconstructed region comprises N rows of previous reconstructed coding blocks above the current block, where N corresponds to a smallest integer larger than or equal to (MaxV_BV divided by the block height).
  • the maximum absolute vertical BV value can be determined based on Level or Profile associated with video data being coded, encoder configuration, or any combination thereof. For example, a first maximum absolute vertical BV value for a first Level can be equal to or larger than a second maximum absolute vertical BV value for a second Level, where the first Level is higher than the second Level. In another example, a first maximum absolute vertical BV value for a first Profile can be equal to or larger than a second maximum absolute vertical BV value for a second Profile, where the first Profile is higher than the second Profile.
  • the encoder configuration may include at least two modes selected from a mode group comprising low-power mode, high-speed mode and high-quality mode.
  • a first maximum absolute vertical BV value for the high-quality mode can be larger than or equal to a second maximum absolute vertical BV value for the high-speed mode.
  • the second maximum absolute vertical BV value for the high-speed mode can be larger than or equal to a third maximum absolute vertical BV value for the low-power mode.
  • MaxH_BV a maximum absolute horizontal BV value, MaxH_BV can be determined, where MaxH_BV is smaller than a full horizontal search range for the coding region, and the constrained previous reconstructed region is further constrained to include at least MaxH_MV reconstructed sample columns in horizontal direction to a left side of the current block and to exclude at least one reconstructed sample column on the left side of the current block for the current block with a horizontal distance measured with respect to a left edge of the coding region larger than MaxH_MV.
  • the maximum absolute horizontal BV value can be determined in a way similar to that for the maximum absolute vertical BV value. The horizontal distance is measured with respect to a left edge of the coding region
  • the encoder sets the maximum absolute horizontal/vertical BV (block vector) value according to a user input.
  • the encoder may also set a limit for the maximum absolute horizontal/vertical BV (block vector) value.
  • a maximum memory size of a reconstructed sample memory for storing a constrained previous reconstructed region is determined.
  • An IntraBC predictor is derived from a valid previous reconstructed region within the constrained previous reconstructed region stored in the reconstructed sample memory.
  • the maximum memory size may correspond to N coding blocks to store N previous reconstructed blocks.
  • the maximum memory size may correspond to a full row of previous reconstructed blocks.
  • the valid previous reconstructed region within the constrained previous reconstructed region corresponds to the constrained previous reconstructed region overlapped with a ladder-shaped previous reconstructed region related to wave-front parallel processing (WPP).
  • WPP wave-front parallel processing
  • FIG. 1 illustrates an example of Intra motion compensation according to the Intra-block copy (IntraBC) mode, where a horizontal displacement vector is used to locate an IntraBC predictor in a same picture.
  • Intra-block copy Intra-block copy
  • FIG. 2 illustrates an example of reconstructed neighboring block configuration used to derive block vector for IntraBC mode, where the reconstructed neighboring blocks are in a same picture as the current block.
  • FIG. 3 illustrates an example of locating an IntraBC predictor for the current block using a block vector (BV) according to IntraBC coding, where the block vector corresponds to a two-dimensional vector.
  • BV block vector
  • FIG. 4 illustrates an example of ladder-shaped neighboring block configuration related to wave-front parallel processing (WPP) for IntraBC mode.
  • WPP wave-front parallel processing
  • FIG. 5 illustrates an example of neighboring block storage required according to conventional IntraBC mode at three different time instances.
  • FIG. 6 illustrates an example of neighboring block storage required at three different time instances according to one embodiment of the present invention, where the maximum vertical block vector value is restricted.
  • FIG. 7 illustrates an example of neighboring block storage required at three different time instances according to another embodiment of the present invention, where the maximum vertical and horizontal block vector values restricted.
  • FIG. 8 illustrates an example of neighboring block storage required at three different time instances according to yet another embodiment of the present invention, where a maximum memory size for storing previous reconstructed samples is specified.
  • FIG. 9 illustrates an example of neighboring block storage required at three different time instances according to yet another embodiment of the present invention, where not all valid previous reconstructed samples stored in the memory will be used as reference samples.
  • FIG. 10 illustrates an exemplary flowchart for an IntraBC coding system incorporating an embodiment of the present invention to reduce storage requirement by using a constrained previous reconstructed region.
  • Intra Block Copy (IntraBC) mode requires large storage space to hold data corresponding to the previous reconstructed region. This large storage requirement for storing the previous reconstructed samples would increase cost especially for hardware based solutions. Accordingly, the present invention discloses methods and apparatus to reduce the required storage associated with the previous reconstructed region for IntraBC coding.
  • the maximum absolute value of the vertical block vector for IntraBC coded blocks is restricted to be less than a full search range.
  • the picture can be divided into coding regions to allow multiple coding regions processed at the same time.
  • each coding region is smaller than a whole picture and may result in better performance due to local adaptation.
  • Each coding region may correspond to a slice, a tile, a picture area or a whole picture.
  • the image structure for the tile and the slice has been described in various coding standards such as the HEVC standard.
  • a coding region may correspond to a picture area consisting of N rows of blocks and each row consists of M blocks.
  • the full vertical search range can be (N ⁇ 1) ⁇ block height.
  • the previous reconstructed samples for the whole coding region except for the last coding block have to be stored for processing the last coding block of the coding region.
  • the first embodiment of the present invention will restrict the maximum absolute value of the vertical block vector, MaxV_MV to be smaller than the full vertical search range, i.e., (N ⁇ 1) ⁇ block height in this case.
  • MaxV_MV can be smaller than the full search range by 1. In this case, the required storage for previous reconstructed samples can save one whole line of reconstructed samples.
  • MaxV_MV can be smaller than the full search range by one or more block heights of the coding blocks so that to save storage requirement corresponding to one or more rows of blocks.
  • the maximum absolute value of the vertical block vector i.e., MaxV_MV
  • N VB is smaller than (N ⁇ 1). Accordingly, the system needs only to store N VB rows of blocks for the previous reconstructed region above the current block and the current row up to the block before the current block.
  • the storage requirement according to this embodiment is related to the maximum absolute value of the block vector (i.e., MaxV_MV) and the region width.
  • the region width can be the corresponding picture width, tile width, slice width CTU (coding tree unit) width or block width.
  • This reduced vertical search range may cause some loss in the coding efficiency.
  • an encoder may select a proper vertical search range to reduce the possible loss in the coding efficiency.
  • FIG. 6 illustrates an example of three instances of IntraBC coding of the current block according to an embodiment of the present invention, where N VB is equal to 2 and the coding region consists of 5 rows of blocks.
  • N VB is equal to 2 and the coding region consists of 5 rows of blocks.
  • the previous reconstructed regions ( 614 , 624 and 634 ) for the current blocks ( 612 , 622 and 632 ) are indicated respectively.
  • the required storage is independent of the height of the image region for IntraBC coding.
  • the constrained previous reconstructed region ( 612 ) at time instance t 1 is the same as the constrained previous reconstructed region ( 512 ) at time instance t 1 in FIG. 5 .
  • N VB rows of previous reconstructed blocks have to be stored. Therefore, there is no difference between the constrained previous reconstructed coding region and the conventional previous reconstructed coding region.
  • the saving in storage requirement starts to occur as evidenced by comparing between area 624 in FIG. 6 and area 524 in FIG. 5 . More saving in storage requirement occurs at time instance t 3 as evidenced by comparing between area 634 in FIG. 6 and area 534 in FIG. 5 .
  • the vertical distance for the current block in the coding region is defined as the distance between the top boundary of the coding region and the top boundary of the current block.
  • the IntraBC predictor is derived from a valid previous reconstructed region within the constrained previous reconstructed region stored in the memory, and the valid previous reconstructed region corresponds to the constrained previous reconstructed region overlapped with a ladder-shaped region related to wave-front parallel processing (WPP).
  • WPP wave-front parallel processing
  • MaxV_MV is an encoder design issue.
  • an encoder can select MaxV_MV based on the Level or Profile of the underlying coding system.
  • the Level is a set of constraints for a bitstream.
  • a lower level often corresponds to a smaller sample rate of the input video.
  • the lowest level (i.e., Level 1) in HEVC corresponds to a maximum luma sample rate of 552,960 samples per second and the highest level (i.e., level 6.2) corresponds to a maximum luma sample rate of 4,278,190,080 samples per second.
  • the Profile is associated with a set of available coding tools and the constraint on maximum allowed bitrate.
  • HEVC defines various Main profiles (e.g., Main 10, Main 12, etc.)
  • the MaxV_MV can also be select based on encoder configurations.
  • MaxV_MV selection When the Level is taken into account for MaxV_MV selection, a larger MaxV_MV can be selected for a higher level. In HEVC, a higher level often implies a higher spatial resolution. Therefore, in order to offer a similar effective search range, a larger MaxV_MV is selected for a higher level. Table 1 illustrates an example of MaxV_MV selection according to the Level.
  • MaxV_MV Level (Integer pixel) 1 36 2 72 2.1 90 3 135 3.1 180 4 180 4.1 180 5 360 5.1 360 5.2 360 6 540 6.1 540 6.2 540
  • Table 1 The example shown in Table 1 is intended for illustration purpose. A skilled person may use different values of MaxV_MV for various Levels to practice the present invention without departing from the spirit if the present invention.
  • MaxV_MV selection When the Profile is taken into account for MaxV_MV selection, a larger MaxV_MV can be selected for a higher Profile.
  • Table 2 illustrates an example of MaxV_MV selection according to the Profile.
  • Table 2 is intended for illustration purpose. A skilled person may use different values of MaxV_MV for various profiles to practice the present invention without departing from the spirit if the present invention.
  • the selection may reflect the specific design concern. For example, when the encoder is configured for low power mode, it is desirable to select a smaller MaxV_MV since a smaller MaxV_MV implies a smaller vertical search range. The smaller vertical search range requires fewer searches to identify the optimal reference block. Therefore, the smaller vertical search range will lead to less power consumed, which is consistent with the intended low power mode.
  • a larger MaxV_MV can be used to take advantage of the high power available for accommodating the higher power associated with larger MaxV_MV.
  • a larger MaxV_MV than that for the high power configuration may be desired since a larger MaxV_MV may lead to better performance, i.e., higher quality.
  • a maximum absolute value of the vertical block vector (MaxV_MV) and a maximum absolute value of the horizontal block vector (MaxH_MV) are selected. Similar to the first embodiment, only MaxV_MV rows of blocks for the previous reconstructed region and the current row up to the block before the current block need to be stored. However, the horizontal search range will be restricted to MaxH_MV. Furthermore, some previous reconstructed samples in some oldest previous reconstructed row of blocks may be saved.
  • FIG. 7 illustrates an example of three instances of IntraBC coding of the current block according to an embodiment of the present invention, where MaxV_MV is equal to (N VB ⁇ block height) and N VB is equal to 2, MaxH_MV is equal to (N HB ⁇ block width) and N HB is equal to 3 and the coding region consists of 5 rows of blocks.
  • MaxV_MV is equal to (N VB ⁇ block height) and N VB is equal to 2
  • MaxH_MV is equal to (N HB ⁇ block width)
  • N HB is equal to 3
  • the coding region consists of 5 rows of blocks.
  • the constrained previous reconstructed regions 714 , 724 and 734
  • the required storage is independent of the height of the image region for IntraBC coding.
  • FIG. 7 illustrates an example of required storage of previous reconstructed region according to the second embodiment, the same storage as the first embodiment can be used as well. In this case, the additional saving in storage is given up for simpler memory management.
  • MaxH_MV maximum absolute value of the horizontal block vector
  • the horizontal search range will be reduced which will lead to few searches required to identify the best candidate for the reference block.
  • the bold lines 716 , 726 and 736 ) indicate the maximum horizontal range that the IntraBC has to search. This reduced horizontal search range may cause loss of the coding efficiency.
  • an encoder may select a proper horizontal search range to reduce the possible loss of coding efficiency. Compared to FIG. 6 , some additional saving in storage can be achieved.
  • the constrained previous reconstructed region is the same as the conventional previous reconstructed region when the vertical distance of the current block in the coding region is the same or smaller than MaxV_MV and the horizontal distance of the current block in the coding region is the same or smaller than MaxH_MV.
  • the horizontal distance for the current block in the coding region is defined as the distance between the left boundary of the coding region and the left boundary of the current block.
  • MaxV_MV and MaxH_MV are an encoder design issue.
  • an encoder can select MaxV_MV and MaxH_MV based on the Level or Profile of the underlying coding system.
  • the example of MaxV_MV selection according to the Level as shown in Table 1 and the example of MaxV_MV selection according to the Profile as shown in Table 2 can also be applied to the second embodiment.
  • the MaxH_MV selection according to the Level and the Profile can be performed similar to the selection for MaxV_MV.
  • Table 3 illustrates an example of MaxH_MV selection according to the Level.
  • MaxH_MV Level (Integer pixel) 1 44 2 88 2.1 160 3 240 3.1 320 4 320 4.1 320 5 512 5.1 512 5.2 512 6 540 6.1 540 6.2 540
  • Table 3 is intended for illustration purpose. A skilled person may use different values of MaxH_MV for various levels to practice the present invention without departing from the spirit if the present invention.
  • Table 4 illustrates an example of MaxH_MV selection according to the Profile.
  • Table 4 is intended for illustration purpose. A skilled person may use different values of MaxH_MV for various profiles to practice the present invention without departing from the spirit if the present invention.
  • MaxV_MV When the encoder configuration is taken into account for MaxV_MV and MaxH_MV selection, the selection may reflect the specific design concern.
  • the consideration for MaxV_MV in the first embodiment is also applicable to MaxH_MV.
  • MaxH_MV when the encoder is configured for low power mode, it is desirable to select a smaller MaxH_MV since a smaller MaxH_MV implies a smaller vertical search range. The smaller vertical search range requires fewer searches to identify the optimal reference block. Therefore, the smaller vertical search range will lead to less power consumed, which is consistent with the intended low power mode.
  • a larger MaxH_MV can be used to take advantage of the high power available for accommodating the higher power associated with larger MaxH_MV.
  • a larger MaxH_MV if a high quality mode is selected, a larger MaxH_MV than that for the high power configuration may be desired since a larger MaxH_MV may lead to better performance, i.e., higher quality.
  • the encoder sets the maximum absolute horizontal/vertical BV (block vector) value according to a user input.
  • the encoder system may provide two registers MaxV_MV and MaxH_MV representing the absolute horizontal/vertical BV (block vector) values for the user to enter the desired values.
  • the encoder may also set a limit for the maximum absolute horizontal/vertical BV (block vector) value. In this case, the encoder will only search for the block vector value up to the maximum vertical BV value in the vertical direction and up to the maximum horizontal BV value in the horizontal direction.
  • a maximum size of the memory storing the previous reconstructed pixels is selected.
  • the maximum size of the memory storing the previous reconstructed pixels will intrinsically restrict the maximum absolute value of the vertical block vector and/or the maximum absolute value of the horizontal block vector.
  • a coding region consists of N rows of blocks and each row consists of M blocks.
  • the maximum size of the memory storing the previous reconstructed pixels is set to M as shown in FIG. 8 for three time instances. For instances t 1 , t 2 and t 3 (t 1 ⁇ t 2 ⁇ t 3 ), the previous reconstructed regions ( 814 , 824 and 834 ) for the current blocks ( 812 , 822 and 832 ) are indicated respectively.
  • the regions of blocks ( 816 , 826 and 836 ) stored in the memory are indicated in FIG. 8 .
  • the maximum value of the vertical block vector is no more than one block height.
  • the maximum value of the horizontal block vector depends on the location of the current block. According to the example in FIG. 8 , the maximum value of the horizontal block vector pointing to the left direction is ((M ⁇ 1) ⁇ block width), which occurs for the last block of the region.
  • the maximum value of the horizontal block vector pointing to the right direction is 1 block width in the example of FIG. 8 .
  • FIG. 9 illustrates an example of neighboring block storage required at three different time instances according to yet another embodiment of the present invention, where not all valid previous reconstructed samples stored in the memory will be used as reference samples.
  • the example illustrates a case where a memory is used to store up to three block rows of reconstructed samples to support vertical prediction distance up to two block height.
  • the stored reconstructed samples are indicated by a thick-lined area ( 910 ). While the memory stores reconstructed samples through the end of the two above rows, the encoder only consider some of the reconstructed samples in the memory as “valid samples”.
  • a constrained Intra prediction mode as indicated by a flag can be used for an Intra coded block.
  • the constrained Intra prediction mode only previous reconstructed pixels corresponding to Intra coded data can be used as prediction data for the current block coded using the Intra mode. If the previous reconstructed pixels corresponding to Inter coded data, the prediction data will be viewed as unavailable for the current block coded in the Intra mode.
  • the IntraBC mode is also in Intra mode category. Accordingly, in the fourth embodiment, constrained Intra prediction is applied to an IntraBC coded block. Only previous reconstructed pixels corresponding to Intra coded data will be used as prediction data for the current block coded using the IntraBC mode. If the previous reconstructed pixels corresponding to Inter coded data, the prediction data will be viewed as unavailable for the current block coded in the IntraBC mode.
  • FIG. 10 illustrates an exemplary flowchart for an IntraBC coding system incorporating an embodiment of the present invention to reduce storage requirement by using a constrained previous reconstructed region.
  • the system receives input data associated with a current block in the coding region as shown in step 1010 .
  • the input data corresponds to pixel data to be encoded.
  • the input data corresponds to coded pixel data to be decoded.
  • the input data may be retrieved from memory (e.g., computer memory, buffer (RAM or DRAM) or other media) or from a processor.
  • a maximum absolute vertical BV (block vector) value, MaxV_BV is determined in step 1020 , where MaxV_BV is smaller than a full vertical search range for the coding region.
  • a constrained previous reconstructed region corresponding to previous reconstructed samples processed before the current block is determined in step 1030 , where the constrained previous reconstructed region includes at least MaxV_MV reconstructed samples in vertical direction above the current block and excludes at least one row of reconstructed samples for the current block with a vertical distance larger than MaxV_MV, wherein the vertical distance is measured with respect to a top edge of the coding region.
  • An IntraBC predictor is derived from the constrained previous reconstructed region in step 1040 . IntraBC encoding or decoding is applied to the current block using the IntraBC predictor derived in step 1050 .
  • Embodiment of the present invention as described above may be implemented in various hardware, software codes, or a combination of both.
  • an embodiment of the present invention can be one or more electronic circuits integrated into a video compression chip or program code integrated into video compression software to perform the processing described herein.
  • An embodiment of the present invention may also be program code to be executed on a Digital Signal Processor (DSP) to perform the processing described herein.
  • DSP Digital Signal Processor
  • the invention may also involve a number of functions to be performed by a computer processor, a digital signal processor, a microprocessor, or field programmable gate array (FPGA). These processors can be configured to perform particular tasks according to the invention, by executing machine-readable software code or firmware code that defines the particular methods embodied by the invention.
  • the software code or firmware code may be developed in different programming languages and different formats or styles.
  • the software code may also be compiled for different target platforms.
  • different code formats, styles and languages of software codes and other means of configuring code to perform the tasks in accordance with the invention will not depart from the spirit and scope of the invention.

Abstract

A method and apparatus for IntraBC (Intra-block copy) coding for a coding region are disclosed. The method operates to receive input data associated with a current block in the coding region and determine a maximum memory size of a reconstructed sample memory for storing a constrained previous reconstructed region, wherein the constrained previous reconstructed region comprises a group of previous reconstructed samples processed before the current block. The method then derives an IntraBC predictor from a valid previous reconstructed region within the constrained previous reconstructed region stored in the reconstructed sample memory, and applies IntraBC encoding or decoding to the current block using the IntraBC predictor derived.

Description

    CROSS REFERENCE TO RELATED APPLICATIONS
  • The present invention is a Divisional of pending U.S. patent application Ser. No. 14/883,883, filed on Oct. 15, 2015, which claims priority to U.S. Provisional Patent Application, Ser. No. 62/115,287, filed on Feb. 12, 2015. The U.S. patent applications are hereby incorporated by reference in their entireties.
  • FIELD OF THE INVENTION
  • The present invention relates to video coding using Intra Block Copy (IntraBC) mode. In particular, the present invention relates to techniques to reduce the storage required for the Intra-block copy (IntraBC) coding mode in screen content coding or video coding.
  • BACKGROUND AND RELATED ART
  • High Efficiency Video Coding (HEVC) is a new coding standard that has been developed in recent years. In the High Efficiency Video Coding (HEVC) system, the fixed-size macroblock of H.264/AVC is replaced by a flexible block, named coding unit (CU). Pixels in the CU share the same coding parameters to improve coding efficiency. A CU may begin with a largest CU (LCU), which is also referred as coded tree unit (CTU) in HEVC. In addition to the concept of coding unit, the concept of prediction unit (PU) is also introduced in HEVC. Once the splitting of CU hierarchical tree is done, each leaf CU is further split into one or more prediction units (PUs) according to prediction type and PU partition.
  • In the current development of screen content coding (SCC) for the High Efficiency Video Coding (HEVC) standard, a new Intra coding mode, named Intra Block Copy (IntraBC) has been disclosed. The IntraBC technique that was originally proposed by Budagavi in AHG8: Video coding using Intra motion compensation, Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, 13th Meeting: Incheon, KR, 18-26 Apr. 2013, Document: JCTVC-M0350 (hereinafter JCTVC-M0350). An example according to JCTVC-M0350 is shown in FIG. 1, where a current coding unit (CU, 110) is coded using Intra MC (motion compensation). The prediction block (120) is located from the current CU and a displacement vector (112). In this example, the search area is limited to the current CTU (coding tree unit), the left CTU and the left-left CTU. The prediction block is obtained from the already reconstructed region. Then, the displacement vector, also named block vector (BV), and residual for the current CU are coded. The HEVC adopts CTU and CU block structure as basic units for coding video data. Each picture is divided into CTUs and each CTU is reclusively divided into CUs. During prediction phase, each CU may be divided into multiple blocks, named prediction units (PUs) for performing prediction process. After prediction residue is formed for each CU, the residue associated with each CU is divided into multiple blocks, named transform units (TUs) to apply transform (such as discrete cosine transform (DCT)).
  • Since the initial IBC technique was introduced in JCTVC-M0350, variations of IBC and various improvements have been disclosed. In particular, while only the horizontal block vector is allowed in JCTVC-M0350, the current IBC uses two-dimensional block vectors. FIG. 2 illustrates an example of previous reconstructed region that can be used as reference data for encoding a current block according to IBC. In FIG. 2, the blocks in a current frame (210) are processed in a pre-defined order (e.g. horizontal scan). When the current block (220) is coded, the previous reconstructed blocks in the previous reconstructed region (230) can be used as an IntraBC predictor for the current block.
  • The IntraBC predictor (350) for the current block (320) is located according to the block vector (340) as shown in FIG. 3. The IntraBC predictor is treated as a reference block for the current block coded by IntraBC mode as if a reference block for an Inter-coded block. However, the reference block is located in the same picture as the current block while the reference block is in a previous reconstructed reference picture for Inter coding. The reference block is selected from the previous reconstructed region (330) of the current frame (310). The block vector points from the current block (320) to the reference block (350). In other words, the location of the reference block (350) is determined based on the location of the current block (320) offset by the block vector (340).
  • At the encoder side, the block vector is often determined by selecting a reference block in the previous reconstructed region that achieves an optimal performance. The performance can be in terms of BD-rate, which is widely used in video coding systems as a performance measure. After the block vector is determined, information related to the block vector is signaled in the bitstream so that information related to the block vector can be recovered at the decoder side for decoding the current block. According to the current HEVC standard, the previous reconstructed samples in the previous reconstructed region correspond to reconstructed pixels before the deblocking process.
  • A variation of IBC adopted by the HEVC standard restricts the previous reconstructed region to a ladder-shaped region (430) for coding a current block (420) in the current frame (410) as shown in FIG. 4, where each row of reconstructed blocks has the same or less number of reconstructed blocks than the previous row of reconstructed blocks. One of the reasons for the restriction of the previous reconstructed region as shown in FIG. 4 is for wave-front parallel process (WPP), which allows multiple rows of blocks processed in parallel. In screen content coding (SCC), the processing of the current block may rely on data from the block above the current block and the processing of the current block has to wait till a whole or partial above-block is processed. Therefore, the processing of a current block in a current row has to be delayed with respect to a corresponding block in the above row. Usually, delay corresponding to one or more blocks is used. While the WPP coding is intended for parallel encoding or decoding of multiple rows of blocks, the WPP structure is also used for non-parallel processing. Accordingly, the WPP structure and the ladder-shaped previous reconstructed region have also been used for IBC coding. As shown in FIG. 4, the consecutive previous reconstructed blocks within the ladder-shaped region in each row are not a complete row of blocks. For convenience, consecutive blocks in a row are referred as a row of blocks, which may be a partial row or a full row.
  • For the IBC processing, the previous reconstructed region has to be stored for coding the current block. The amount of stored reconstructed region will grow along the progress of the current block. FIG. 5 illustrates three instances of IntraBC coding of the current block. For time instances t1, t2 and t3 (t1<t2<t3), the previous reconstructed regions (514, 524 and 534) for the current blocks (512, 522 and 532) are indicated respectively. As shown in FIG. 5, the previous reconstructed region complies with the WPP structure (i.e., having a ladder-shaped region) continues to grow along the progress of coding process. For the last current block in the picture, the previous reconstructed region corresponds to whole picture less than the current block.
  • In hardware based coding processor, the data corresponding to the previous reconstructed region may be stored in a buffer or embedded memory so that the processor can access the data stored in the buffer. However, such buffer or embedded memory for the previous reconstructed region would increase the cost. On the other hand, the data for the previous reconstructed region could be stored in an external memory. Nevertheless, there might be significant penalty on processing speed due to external memory access. Accordingly, it is desirable to develop a method and apparatus to overcome the memory issue associated with storing the previous reconstructed region.
  • BRIEF SUMMARY OF THE INVENTION
  • A method of SCC (screen content coding) or video coding using an IntraBC mode (Intra-block copy mode) for a coding region is disclosed. Embodiments of the present invention derive an IntraBC (Intra picture block copy) predictor from a constrained previous reconstructed region so as to reduce storage requirement for the previous reconstructed data. In one embodiment, a maximum absolute vertical BV (block vector) value, MaxV_BV is determined, where MaxV_BV is smaller than a full vertical search range for the coding region. An memory is designated to store a constrained previous reconstructed region comprising previous reconstructed samples processed before the current block is then determined, where the constrained previous reconstructed region includes at least MaxV_MV sample rows in vertical direction above the current block and previously reconstructed blocks in a same block row as the current block, and the constrained previous reconstructed region excludes at least one reconstructed sample row for the current block with a vertical distance measured with respect to a top edge of the coding region larger than MaxV_MV. An IntraBC predictor is then derived from the constrained previous reconstructed region stored in the internal memory. The derived IntraBC predictor is then used for encoding or decoding of the current block. Each coding block may correspond to a prediction unit (PU) or a coding unit (CU).
  • In one embodiment, the IntraBC predictor is derived from a valid previous reconstructed region within the constrained previous reconstructed region stored in the memory, and the valid previous reconstructed region corresponds to the constrained previous reconstructed region overlapped with a ladder-shaped region related to wave-front parallel processing (WPP). In another embodiment, the constrained previous reconstructed region comprises N rows of previous reconstructed coding blocks above the current block, where N corresponds to a smallest integer larger than or equal to (MaxV_BV divided by the block height).
  • One aspect of the present invention addresses the determination of maximum absolute vertical BV value. In one embodiment, the maximum absolute vertical BV value can be determined based on Level or Profile associated with video data being coded, encoder configuration, or any combination thereof. For example, a first maximum absolute vertical BV value for a first Level can be equal to or larger than a second maximum absolute vertical BV value for a second Level, where the first Level is higher than the second Level. In another example, a first maximum absolute vertical BV value for a first Profile can be equal to or larger than a second maximum absolute vertical BV value for a second Profile, where the first Profile is higher than the second Profile. In yet another example, the encoder configuration may include at least two modes selected from a mode group comprising low-power mode, high-speed mode and high-quality mode. When the encoder configuration includes a mode group comprising low-power mode, high-speed mode and high-quality mode, a first maximum absolute vertical BV value for the high-quality mode can be larger than or equal to a second maximum absolute vertical BV value for the high-speed mode. Furthermore, the second maximum absolute vertical BV value for the high-speed mode can be larger than or equal to a third maximum absolute vertical BV value for the low-power mode.
  • In addition, a maximum absolute horizontal BV value, MaxH_BV can be determined, where MaxH_BV is smaller than a full horizontal search range for the coding region, and the constrained previous reconstructed region is further constrained to include at least MaxH_MV reconstructed sample columns in horizontal direction to a left side of the current block and to exclude at least one reconstructed sample column on the left side of the current block for the current block with a horizontal distance measured with respect to a left edge of the coding region larger than MaxH_MV. The maximum absolute horizontal BV value can be determined in a way similar to that for the maximum absolute vertical BV value. The horizontal distance is measured with respect to a left edge of the coding region
  • In another invention, if the previous reconstructed samples correspond to Intra-coded video data, the previous reconstructed samples are stored. On the other hand, if the previous reconstructed samples correspond to Inter-coded video data, the previous reconstructed samples are not stored. In yet another embodiment, the encoder sets the maximum absolute horizontal/vertical BV (block vector) value according to a user input. The encoder may also set a limit for the maximum absolute horizontal/vertical BV (block vector) value.
  • In another embodiment, a maximum memory size of a reconstructed sample memory for storing a constrained previous reconstructed region is determined. An IntraBC predictor is derived from a valid previous reconstructed region within the constrained previous reconstructed region stored in the reconstructed sample memory. The maximum memory size may correspond to N coding blocks to store N previous reconstructed blocks. The maximum memory size may correspond to a full row of previous reconstructed blocks. Furthermore, the valid previous reconstructed region within the constrained previous reconstructed region corresponds to the constrained previous reconstructed region overlapped with a ladder-shaped previous reconstructed region related to wave-front parallel processing (WPP). In yet another embodiment, if the previous reconstructed samples correspond to Inter-coded video data, the previous reconstructed samples are not stored. If the previous reconstructed samples correspond to Intra-coded video data, the previous reconstructed samples will be stored.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 illustrates an example of Intra motion compensation according to the Intra-block copy (IntraBC) mode, where a horizontal displacement vector is used to locate an IntraBC predictor in a same picture.
  • FIG. 2 illustrates an example of reconstructed neighboring block configuration used to derive block vector for IntraBC mode, where the reconstructed neighboring blocks are in a same picture as the current block.
  • FIG. 3 illustrates an example of locating an IntraBC predictor for the current block using a block vector (BV) according to IntraBC coding, where the block vector corresponds to a two-dimensional vector.
  • FIG. 4 illustrates an example of ladder-shaped neighboring block configuration related to wave-front parallel processing (WPP) for IntraBC mode.
  • FIG. 5 illustrates an example of neighboring block storage required according to conventional IntraBC mode at three different time instances.
  • FIG. 6 illustrates an example of neighboring block storage required at three different time instances according to one embodiment of the present invention, where the maximum vertical block vector value is restricted.
  • FIG. 7 illustrates an example of neighboring block storage required at three different time instances according to another embodiment of the present invention, where the maximum vertical and horizontal block vector values restricted.
  • FIG. 8 illustrates an example of neighboring block storage required at three different time instances according to yet another embodiment of the present invention, where a maximum memory size for storing previous reconstructed samples is specified.
  • FIG. 9 illustrates an example of neighboring block storage required at three different time instances according to yet another embodiment of the present invention, where not all valid previous reconstructed samples stored in the memory will be used as reference samples.
  • FIG. 10 illustrates an exemplary flowchart for an IntraBC coding system incorporating an embodiment of the present invention to reduce storage requirement by using a constrained previous reconstructed region.
  • DETAILED DESCRIPTION OF THE INVENTION
  • According to screen content coding (SCC) in the current HEVC standard, Intra Block Copy (IntraBC) mode requires large storage space to hold data corresponding to the previous reconstructed region. This large storage requirement for storing the previous reconstructed samples would increase cost especially for hardware based solutions. Accordingly, the present invention discloses methods and apparatus to reduce the required storage associated with the previous reconstructed region for IntraBC coding.
  • In a first embodiment of the present invention, the maximum absolute value of the vertical block vector for IntraBC coded blocks is restricted to be less than a full search range. Furthermore, the picture can be divided into coding regions to allow multiple coding regions processed at the same time. Also, each coding region is smaller than a whole picture and may result in better performance due to local adaptation. Each coding region may correspond to a slice, a tile, a picture area or a whole picture. The image structure for the tile and the slice has been described in various coding standards such as the HEVC standard. For example, a coding region may correspond to a picture area consisting of N rows of blocks and each row consists of M blocks. When a current block at a bottom row is coded, the full vertical search range can be (N−1)×block height. In the conventional approach, the previous reconstructed samples for the whole coding region except for the last coding block have to be stored for processing the last coding block of the coding region. The first embodiment of the present invention will restrict the maximum absolute value of the vertical block vector, MaxV_MV to be smaller than the full vertical search range, i.e., (N−1)×block height in this case. For example, MaxV_MV can be smaller than the full search range by 1. In this case, the required storage for previous reconstructed samples can save one whole line of reconstructed samples.
  • In a preferred embodiment, MaxV_MV can be smaller than the full search range by one or more block heights of the coding blocks so that to save storage requirement corresponding to one or more rows of blocks. For example, the maximum absolute value of the vertical block vector (i.e., MaxV_MV) can be set to be NVB×block height, where NVB is smaller than (N−1). Accordingly, the system needs only to store NVB rows of blocks for the previous reconstructed region above the current block and the current row up to the block before the current block. The storage requirement according to this embodiment is related to the maximum absolute value of the block vector (i.e., MaxV_MV) and the region width. Depending on the structure of the region, the region width can be the corresponding picture width, tile width, slice width CTU (coding tree unit) width or block width. This reduced vertical search range may cause some loss in the coding efficiency. However, an encoder may select a proper vertical search range to reduce the possible loss in the coding efficiency.
  • FIG. 6 illustrates an example of three instances of IntraBC coding of the current block according to an embodiment of the present invention, where NVB is equal to 2 and the coding region consists of 5 rows of blocks. For time instances t1, t2 and t3 (t1<t2<t3), the previous reconstructed regions (614, 624 and 634) for the current blocks (612, 622 and 632) are indicated respectively. After NVB is selected, the required storage is independent of the height of the image region for IntraBC coding. Accordingly, while NVB rows of reconstructed blocks above the current block and the reconstructed block in the same row as the current block are stored in memory, only the valid reconstructed blocks are used to derive IntraBC predictor. As noted in FIG. 6, the constrained previous reconstructed region (612) at time instance t1 is the same as the constrained previous reconstructed region (512) at time instance t1 in FIG. 5. In this case, since the vertical distance for the current block is not exceeding the MaxV_MV, NVB rows of previous reconstructed blocks have to be stored. Therefore, there is no difference between the constrained previous reconstructed coding region and the conventional previous reconstructed coding region. However, when the vertical distance for the current block exceed the maximum absolute value of the vertical block vector (i.e., MaxV_MV), the saving in storage requirement starts to occur as evidenced by comparing between area 624 in FIG. 6 and area 524 in FIG. 5. More saving in storage requirement occurs at time instance t3 as evidenced by comparing between area 634 in FIG. 6 and area 534 in FIG. 5. The vertical distance for the current block in the coding region is defined as the distance between the top boundary of the coding region and the top boundary of the current block.
  • In one embodiment, the IntraBC predictor is derived from a valid previous reconstructed region within the constrained previous reconstructed region stored in the memory, and the valid previous reconstructed region corresponds to the constrained previous reconstructed region overlapped with a ladder-shaped region related to wave-front parallel processing (WPP).
  • The selection of MaxV_MV is an encoder design issue. For example, an encoder can select MaxV_MV based on the Level or Profile of the underlying coding system. In most video standards, the Level is a set of constraints for a bitstream. A lower level often corresponds to a smaller sample rate of the input video. For example, the lowest level (i.e., Level 1) in HEVC corresponds to a maximum luma sample rate of 552,960 samples per second and the highest level (i.e., level 6.2) corresponds to a maximum luma sample rate of 4,278,190,080 samples per second. On the other hand, the Profile is associated with a set of available coding tools and the constraint on maximum allowed bitrate. For example, HEVC defines various Main profiles (e.g., Main 10, Main 12, etc.) The MaxV_MV can also be select based on encoder configurations.
  • When the Level is taken into account for MaxV_MV selection, a larger MaxV_MV can be selected for a higher level. In HEVC, a higher level often implies a higher spatial resolution. Therefore, in order to offer a similar effective search range, a larger MaxV_MV is selected for a higher level. Table 1 illustrates an example of MaxV_MV selection according to the Level.
  • TABLE 1
    Max Vertical Vector, MaxV_MV
    Level (Integer pixel)
    1 36
    2 72
    2.1 90
    3 135
    3.1 180
    4 180
    4.1 180
    5 360
    5.1 360
    5.2 360
    6 540
    6.1 540
    6.2 540
  • The example shown in Table 1 is intended for illustration purpose. A skilled person may use different values of MaxV_MV for various Levels to practice the present invention without departing from the spirit if the present invention.
  • When the Profile is taken into account for MaxV_MV selection, a larger MaxV_MV can be selected for a higher Profile. Table 2 illustrates an example of MaxV_MV selection according to the Profile.
  • TABLE 2
    Max Vertical Vector, MaxV_MV
    Profile (Integer pixel)
    Main 36
    Main 10 72
    Main 12 64
    Main 4:2:2 10 96
    Main 4:2:2 12 96
    Main 4:4:4 160
    Main 4:4:4 10 160
    Main 4:4:4 12 192
    Main 4:4:4 16 Intra 255
  • The example shown in Table 2 is intended for illustration purpose. A skilled person may use different values of MaxV_MV for various profiles to practice the present invention without departing from the spirit if the present invention.
  • When the encoder configuration is taken into account for MaxV_MV selection, the selection may reflect the specific design concern. For example, when the encoder is configured for low power mode, it is desirable to select a smaller MaxV_MV since a smaller MaxV_MV implies a smaller vertical search range. The smaller vertical search range requires fewer searches to identify the optimal reference block. Therefore, the smaller vertical search range will lead to less power consumed, which is consistent with the intended low power mode. On the other hand, when a high power mode is used, a larger MaxV_MV can be used to take advantage of the high power available for accommodating the higher power associated with larger MaxV_MV. In another example, if a high quality mode is selected, a larger MaxV_MV than that for the high power configuration may be desired since a larger MaxV_MV may lead to better performance, i.e., higher quality.
  • In the second embodiment of the present invention, a maximum absolute value of the vertical block vector (MaxV_MV) and a maximum absolute value of the horizontal block vector (MaxH_MV) are selected. Similar to the first embodiment, only MaxV_MV rows of blocks for the previous reconstructed region and the current row up to the block before the current block need to be stored. However, the horizontal search range will be restricted to MaxH_MV. Furthermore, some previous reconstructed samples in some oldest previous reconstructed row of blocks may be saved.
  • FIG. 7 illustrates an example of three instances of IntraBC coding of the current block according to an embodiment of the present invention, where MaxV_MV is equal to (NVB×block height) and NVB is equal to 2, MaxH_MV is equal to (NHB×block width) and NHB is equal to 3 and the coding region consists of 5 rows of blocks. For time instances t1, t2 and t3 (t1<t2<t3), the constrained previous reconstructed regions (714, 724 and 734) for the current blocks (712, 722 and 732) are indicated respectively. After NVB is selected, the required storage is independent of the height of the image region for IntraBC coding. While FIG. 7 illustrates an example of required storage of previous reconstructed region according to the second embodiment, the same storage as the first embodiment can be used as well. In this case, the additional saving in storage is given up for simpler memory management.
  • When the maximum absolute value of the horizontal block vector (i.e., MaxH_MV) is selected, the horizontal search range will be reduced which will lead to few searches required to identify the best candidate for the reference block. In FIG. 7, the bold lines (716, 726 and 736) indicate the maximum horizontal range that the IntraBC has to search. This reduced horizontal search range may cause loss of the coding efficiency. However, an encoder may select a proper horizontal search range to reduce the possible loss of coding efficiency. Compared to FIG. 6, some additional saving in storage can be achieved. The constrained previous reconstructed region is the same as the conventional previous reconstructed region when the vertical distance of the current block in the coding region is the same or smaller than MaxV_MV and the horizontal distance of the current block in the coding region is the same or smaller than MaxH_MV. The horizontal distance for the current block in the coding region is defined as the distance between the left boundary of the coding region and the left boundary of the current block.
  • Similar to the first embodiment, the selection of MaxV_MV and MaxH_MV is an encoder design issue. For example, an encoder can select MaxV_MV and MaxH_MV based on the Level or Profile of the underlying coding system. Furthermore, the example of MaxV_MV selection according to the Level as shown in Table 1 and the example of MaxV_MV selection according to the Profile as shown in Table 2 can also be applied to the second embodiment. The MaxH_MV selection according to the Level and the Profile can be performed similar to the selection for MaxV_MV.
  • Table 3 illustrates an example of MaxH_MV selection according to the Level.
  • TABLE 3
    Max Horizontal Vector, MaxH_MV
    Level (Integer pixel)
    1 44
    2 88
    2.1 160
    3 240
    3.1 320
    4 320
    4.1 320
    5 512
    5.1 512
    5.2 512
    6 540
    6.1 540
    6.2 540
  • The example shown in Table 3 is intended for illustration purpose. A skilled person may use different values of MaxH_MV for various levels to practice the present invention without departing from the spirit if the present invention.
  • Table 4 illustrates an example of MaxH_MV selection according to the Profile.
  • TABLE 4
    Max Horizontal Vector, MaxH_MV
    Profile (Integer pixel)
    Main 48
    Main 10 96
    Main 12 64
    Main 4:2:2 10 128
    Main 4:2:2 12 128
    Main 4:4:4 192
    Main 4:4:4 10 192
    Main 4:4:4 12 255
    Main 4:4:4 16 Intra 360
  • The example shown in Table 4 is intended for illustration purpose. A skilled person may use different values of MaxH_MV for various profiles to practice the present invention without departing from the spirit if the present invention.
  • When the encoder configuration is taken into account for MaxV_MV and MaxH_MV selection, the selection may reflect the specific design concern. The consideration for MaxV_MV in the first embodiment is also applicable to MaxH_MV. For example, when the encoder is configured for low power mode, it is desirable to select a smaller MaxH_MV since a smaller MaxH_MV implies a smaller vertical search range. The smaller vertical search range requires fewer searches to identify the optimal reference block. Therefore, the smaller vertical search range will lead to less power consumed, which is consistent with the intended low power mode. On the other hand, when a high power mode is used, a larger MaxH_MV can be used to take advantage of the high power available for accommodating the higher power associated with larger MaxH_MV. In another example, if a high quality mode is selected, a larger MaxH_MV than that for the high power configuration may be desired since a larger MaxH_MV may lead to better performance, i.e., higher quality.
  • In yet another embodiment, the encoder sets the maximum absolute horizontal/vertical BV (block vector) value according to a user input. For example, the encoder system may provide two registers MaxV_MV and MaxH_MV representing the absolute horizontal/vertical BV (block vector) values for the user to enter the desired values. The encoder may also set a limit for the maximum absolute horizontal/vertical BV (block vector) value. In this case, the encoder will only search for the block vector value up to the maximum vertical BV value in the vertical direction and up to the maximum horizontal BV value in the horizontal direction.
  • In the third embodiment, a maximum size of the memory storing the previous reconstructed pixels is selected. The maximum size of the memory storing the previous reconstructed pixels will intrinsically restrict the maximum absolute value of the vertical block vector and/or the maximum absolute value of the horizontal block vector. For example, a coding region consists of N rows of blocks and each row consists of M blocks. The maximum size of the memory storing the previous reconstructed pixels is set to M as shown in FIG. 8 for three time instances. For instances t1, t2 and t3 (t1<t2<t3), the previous reconstructed regions (814, 824 and 834) for the current blocks (812, 822 and 832) are indicated respectively. Furthermore, the regions of blocks (816, 826 and 836) stored in the memory are indicated in FIG. 8. Since the memory only holds one full row worth of blocks, the maximum value of the vertical block vector is no more than one block height. The maximum value of the horizontal block vector depends on the location of the current block. According to the example in FIG. 8, the maximum value of the horizontal block vector pointing to the left direction is ((M−1)×block width), which occurs for the last block of the region. The maximum value of the horizontal block vector pointing to the right direction is 1 block width in the example of FIG. 8.
  • FIG. 9 illustrates an example of neighboring block storage required at three different time instances according to yet another embodiment of the present invention, where not all valid previous reconstructed samples stored in the memory will be used as reference samples. The example illustrates a case where a memory is used to store up to three block rows of reconstructed samples to support vertical prediction distance up to two block height. At time instance one (i.e., t=t1), the stored reconstructed samples are indicated by a thick-lined area (910). While the memory stores reconstructed samples through the end of the two above rows, the encoder only consider some of the reconstructed samples in the memory as “valid samples”. For example, to comply with the WPP coding structure, only the dot-filled blocks are valid reconstructed samples as indicated by thick-lined area (910) shown in FIG. 9. At time instance one (i.e., t=t2), the entire stored reconstructed samples are considered valid samples as indicated by thick-lined area (920) shown in FIG. 9. At time instance one (i.e., t=t3), only a few blocks are considered valid samples as indicated by thick-lined area (930) shown in FIG. 9.
  • In the existing HEVC standard, a constrained Intra prediction mode as indicated by a flag can be used for an Intra coded block. In the constrained Intra prediction mode, only previous reconstructed pixels corresponding to Intra coded data can be used as prediction data for the current block coded using the Intra mode. If the previous reconstructed pixels corresponding to Inter coded data, the prediction data will be viewed as unavailable for the current block coded in the Intra mode. The IntraBC mode is also in Intra mode category. Accordingly, in the fourth embodiment, constrained Intra prediction is applied to an IntraBC coded block. Only previous reconstructed pixels corresponding to Intra coded data will be used as prediction data for the current block coded using the IntraBC mode. If the previous reconstructed pixels corresponding to Inter coded data, the prediction data will be viewed as unavailable for the current block coded in the IntraBC mode.
  • FIG. 10 illustrates an exemplary flowchart for an IntraBC coding system incorporating an embodiment of the present invention to reduce storage requirement by using a constrained previous reconstructed region. The system receives input data associated with a current block in the coding region as shown in step 1010. For encoding, the input data corresponds to pixel data to be encoded. For decoding, the input data corresponds to coded pixel data to be decoded. The input data may be retrieved from memory (e.g., computer memory, buffer (RAM or DRAM) or other media) or from a processor. A maximum absolute vertical BV (block vector) value, MaxV_BV is determined in step 1020, where MaxV_BV is smaller than a full vertical search range for the coding region. A constrained previous reconstructed region corresponding to previous reconstructed samples processed before the current block is determined in step 1030, where the constrained previous reconstructed region includes at least MaxV_MV reconstructed samples in vertical direction above the current block and excludes at least one row of reconstructed samples for the current block with a vertical distance larger than MaxV_MV, wherein the vertical distance is measured with respect to a top edge of the coding region. An IntraBC predictor is derived from the constrained previous reconstructed region in step 1040. IntraBC encoding or decoding is applied to the current block using the IntraBC predictor derived in step 1050.
  • The flowchart shown above is intended to illustrate examples of IntraBC coding according to the present invention. A person skilled in the art may modify each step, re-arranges the steps, split a step, or combine steps to practice the present invention without departing from the spirit of the present invention. In the disclosure, specific syntax and semantics have been used to illustrate examples to implement embodiments of the present invention. A skilled person may practice the present invention by substituting the syntax and semantics with equivalent syntax and semantics without departing from the spirit of the present invention.
  • The above description is presented to enable a person of ordinary skill in the art to practice the present invention as provided in the context of a particular application and its requirement. Various modifications to the described embodiments will be apparent to those with skill in the art, and the general principles defined herein may be applied to other embodiments. Therefore, the present invention is not intended to be limited to the particular embodiments shown and described, but is to be accorded the widest scope consistent with the principles and novel features herein disclosed. In the above detailed description, various specific details are illustrated in order to provide a thorough understanding of the present invention. Nevertheless, it will be understood by those skilled in the art that the present invention may be practiced.
  • Embodiment of the present invention as described above may be implemented in various hardware, software codes, or a combination of both. For example, an embodiment of the present invention can be one or more electronic circuits integrated into a video compression chip or program code integrated into video compression software to perform the processing described herein. An embodiment of the present invention may also be program code to be executed on a Digital Signal Processor (DSP) to perform the processing described herein. The invention may also involve a number of functions to be performed by a computer processor, a digital signal processor, a microprocessor, or field programmable gate array (FPGA). These processors can be configured to perform particular tasks according to the invention, by executing machine-readable software code or firmware code that defines the particular methods embodied by the invention. The software code or firmware code may be developed in different programming languages and different formats or styles. The software code may also be compiled for different target platforms. However, different code formats, styles and languages of software codes and other means of configuring code to perform the tasks in accordance with the invention will not depart from the spirit and scope of the invention.
  • The invention may be embodied in other specific forms without departing from its spirit or essential characteristics. The described examples are to be considered in all respects only as illustrative and not restrictive. The scope of the invention is therefore, indicated by the appended claims rather than by the foregoing description. All changes which come within the meaning and range of equivalency of the claims are to be embraced within their scope.

Claims (7)

1. A method of SCC (screen content coding) or video coding using an IntraBC mode (Intra-block copy mode) for a coding region, wherein the coding region is divided into multiple coding blocks, the method comprising:
receiving input data associated with a current block in the coding region;
determining a maximum memory size of a reconstructed sample memory for storing a constrained previous reconstructed region, wherein the constrained previous reconstructed region comprises a group of previous reconstructed samples processed before the current block;
deriving an IntraBC predictor from a valid previous reconstructed region within the constrained previous reconstructed region stored in the reconstructed sample memory; and
applying IntraBC encoding or decoding to the current block using the IntraBC predictor derived.
2. The method of claim 1, wherein the maximum memory size corresponds to N coding blocks to store N previous reconstructed blocks, where N is a positive integer.
3. The method of claim 1, wherein the maximum memory size corresponds to a full row of previous reconstructed blocks.
4. The method of claim 1, wherein the valid previous reconstructed region within the constrained previous reconstructed region corresponds to the constrained previous reconstructed region overlapped with a ladder-shaped previous reconstructed region related to wave-front parallel processing (WPP).
5. The method of claim 1, wherein if the previous reconstructed samples correspond to Inter-coded video data, the previous reconstructed samples are not stored.
6. The method of claim 1, wherein if the previous reconstructed samples correspond to Intra-coded video data, the previous reconstructed samples are stored.
7. An apparatus for SCC (screen content coding) or video coding using an IntraBC mode (Intra-block copy mode) for a coding region, wherein the coding region is divided into multiple coding blocks, the apparatus comprising one or more electronic circuits configured to:
receive input data associated with a current block in the coding region;
determine a maximum memory size of a reconstructed sample memory for storing a constrained previous reconstructed region, wherein the constrained previous reconstructed region comprises a group of previous reconstructed samples processed before the current block;
derive an IntraBC predictor from a valid previous reconstructed region within the constrained previous reconstructed region stored in the reconstructed sample memory; and
apply IntraBC encoding or decoding to the current block using the IntraBC predictor derived.
US15/926,070 2015-02-12 2018-03-20 Method and Apparatus of Constrained Intra Block Copy for Coding Video Abandoned US20180213253A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US15/926,070 US20180213253A1 (en) 2015-02-12 2018-03-20 Method and Apparatus of Constrained Intra Block Copy for Coding Video

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201562115287P 2015-02-12 2015-02-12
US14/883,883 US9955185B2 (en) 2015-02-12 2015-10-15 Method and apparatus of constrained intra block copy for coding video
US15/926,070 US20180213253A1 (en) 2015-02-12 2018-03-20 Method and Apparatus of Constrained Intra Block Copy for Coding Video

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US14/883,883 Division US9955185B2 (en) 2015-02-12 2015-10-15 Method and apparatus of constrained intra block copy for coding video

Publications (1)

Publication Number Publication Date
US20180213253A1 true US20180213253A1 (en) 2018-07-26

Family

ID=56622639

Family Applications (2)

Application Number Title Priority Date Filing Date
US14/883,883 Expired - Fee Related US9955185B2 (en) 2015-02-12 2015-10-15 Method and apparatus of constrained intra block copy for coding video
US15/926,070 Abandoned US20180213253A1 (en) 2015-02-12 2018-03-20 Method and Apparatus of Constrained Intra Block Copy for Coding Video

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US14/883,883 Expired - Fee Related US9955185B2 (en) 2015-02-12 2015-10-15 Method and apparatus of constrained intra block copy for coding video

Country Status (2)

Country Link
US (2) US9955185B2 (en)
CN (1) CN105898330B (en)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107105240B (en) * 2017-03-22 2020-06-19 中南大学 HEVC-SCC complexity control method and system
US10986349B2 (en) * 2017-12-29 2021-04-20 Microsoft Technology Licensing, Llc Constraints on locations of reference blocks for intra block copy prediction
EP3817388A4 (en) * 2018-06-26 2021-08-11 NEC Corporation Video coding or video decoding device, video coding or video decoding method, program, and recording medium
US11159788B2 (en) * 2018-08-03 2021-10-26 Mediatek Inc. Method and apparatus of enhanced Intra Block Copying mode for video coding
JP7284375B2 (en) * 2019-01-15 2023-05-31 富士通株式会社 Video encoding program and video encoding device
CN113366846A (en) 2019-02-02 2021-09-07 北京字节跳动网络技术有限公司 Buffer update for intra block copy in video coding
MX2021008963A (en) 2019-02-02 2021-08-24 Beijing Bytedance Network Tech Co Ltd Buffer management for intra block copy in video coding.
EP3915265A4 (en) * 2019-03-01 2022-06-22 Beijing Bytedance Network Technology Co., Ltd. Direction-based prediction for intra block copy in video coding
EP3915252A4 (en) 2019-03-04 2022-03-23 Beijing Bytedance Network Technology Co., Ltd. Implementation aspects in intra block copy in video coding
KR102603451B1 (en) * 2019-03-09 2023-11-20 텐센트 아메리카 엘엘씨 Method and apparatus for video coding
KR102596735B1 (en) * 2019-05-16 2023-11-01 후아웨이 테크놀러지 컴퍼니 리미티드 An encoder, a decoder and corresponding methods using ibc dedicated buffer and default value refreshing for luma and chroma component
JP2022539468A (en) 2019-07-06 2022-09-09 北京字節跳動網絡技術有限公司 A virtual prediction buffer for intra-block copying in video coding
CN114175633B (en) 2019-07-10 2023-12-29 北京字节跳动网络技术有限公司 Sample identification for intra block copying in video codec
KR20220030957A (en) 2019-07-11 2022-03-11 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 Bitstream Fit Constraints for Intra Block Copy in Video Coding
WO2021138164A1 (en) * 2020-01-03 2021-07-08 Intel Corporation Video coding with multiple intra block copy modes
CN115812306A (en) * 2020-06-08 2023-03-17 抖音视界有限公司 Constraints for intra block copy using non-immediately adjacent neighboring blocks
US11979560B2 (en) * 2021-08-25 2024-05-07 Tencent America LLC Intra block copy with an adaptive local reference range
US20230075788A1 (en) * 2021-09-01 2023-03-09 Tencent America LLC Template matching on ibc merge candidates

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19506843A1 (en) 1995-02-28 1996-08-29 Studiengesellschaft Kohle Mbh Microporous amorphous mixed metal oxides for shape-selective catalysis
US9398302B2 (en) 2013-03-08 2016-07-19 Mediatek Inc. Image encoding method and apparatus with rate control by selecting target bit budget from pre-defined candidate bit budgets and related image decoding method and apparatus
CN104159106B (en) 2013-05-14 2017-12-01 联发科技股份有限公司 Method for video coding and video encoding/decoding method and its device
US9832478B2 (en) 2013-05-14 2017-11-28 Mediatek Inc. Video encoding method and apparatus for determining size of parallel motion estimation region based on encoding related information and related video decoding method and apparatus
MX2016004705A (en) * 2013-10-14 2016-07-18 Microsoft Technology Licensing Llc Features of intra block copy prediction mode for video and image coding and decoding.
CN111147846B (en) * 2014-07-07 2022-03-11 寰发股份有限公司 Video coding method using intra block copy mode coding
CN104219531B (en) 2014-09-29 2018-02-06 北方工业大学 HEVC screen contents coding based on wire intra block copy
EP3202150B1 (en) * 2014-09-30 2021-07-21 Microsoft Technology Licensing, LLC Rules for intra-picture prediction modes when wavefront parallel processing is enabled

Also Published As

Publication number Publication date
US20160241875A1 (en) 2016-08-18
CN105898330A (en) 2016-08-24
US9955185B2 (en) 2018-04-24
CN105898330B (en) 2018-11-16

Similar Documents

Publication Publication Date Title
US9955185B2 (en) Method and apparatus of constrained intra block copy for coding video
US10812794B2 (en) Method and apparatus of intra prediction in image and video processing
US10701355B2 (en) Method and apparatus of directional intra prediction
JP6466976B2 (en) Intra-block copy search and coverage method
CN112042189B (en) Illumination compensation method and corresponding electronic device
US11297348B2 (en) Implicit transform settings for coding a block of pixels
US20180288439A1 (en) Multiple Transform Prediction
US20230209048A1 (en) Intra Prediction For Multi-Hypothesis
WO2016066093A1 (en) Method of improved directional intra prediction for video coding
WO2016034058A1 (en) Method of intra picture block copy for screen content and video coding
TW201840190A (en) Method and apparatus of motion refinement based on bi-directional optical flow for video coding
JP7372433B2 (en) Method and apparatus for prediction refinement using optical flow
US10484696B2 (en) Method and apparatus for color index prediction
JP7337163B2 (en) Method, Apparatus, and System for Encoding and Decoding Trees or Blocks of Video Samples
CN114503561A (en) Method and apparatus for prediction refinement using optical flow, bi-directional optical flow, and decoder-side motion vector refinement
US11785242B2 (en) Video processing methods and apparatuses of determining motion vectors for storage in video coding systems
US11805245B2 (en) Latency reduction for reordering prediction candidates
WO2023020444A1 (en) Candidate reordering for merge mode with motion vector difference
TW202402054A (en) Threshold of similarity for candidate list

Legal Events

Date Code Title Description
AS Assignment

Owner name: MEDIATEK INC., TAIWAN

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:WU, TUNG-HSING;CHOU, HAN-LIANG;REEL/FRAME:045286/0482

Effective date: 20151012

STPP Information on status: patent application and granting procedure in general

Free format text: NON FINAL ACTION MAILED

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION

AS Assignment

Owner name: XUESHAN TECHNOLOGIES INC., CANADA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MEDIATEK INC.;REEL/FRAME:056593/0167

Effective date: 20201223