JP6503101B2 - Block inversion and skip mode in intra block copy prediction - Google Patents

Block inversion and skip mode in intra block copy prediction Download PDF

Info

Publication number
JP6503101B2
JP6503101B2 JP2018031280A JP2018031280A JP6503101B2 JP 6503101 B2 JP6503101 B2 JP 6503101B2 JP 2018031280 A JP2018031280 A JP 2018031280A JP 2018031280 A JP2018031280 A JP 2018031280A JP 6503101 B2 JP6503101 B2 JP 6503101B2
Authority
JP
Japan
Prior art keywords
intra
prediction
block
picture
encoded
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.)
Active
Application number
JP2018031280A
Other languages
Japanese (ja)
Other versions
JP2018088715A (en
Inventor
リー,ビン
シュウ,ジツェン
ウー,フェン
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.)
Microsoft Corp
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Priority to JP2018031280A priority Critical patent/JP6503101B2/en
Publication of JP2018088715A publication Critical patent/JP2018088715A/en
Application granted granted Critical
Publication of JP6503101B2 publication Critical patent/JP6503101B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)

Description

エンジニアは、デジタルビデオのビットレートを低減させるために、圧縮(ソース符号化とも呼ばれる)を使用する。圧縮は、ビデオ情報をより低いビットレート形式に変換することにより、ビデオ情報を記憶及び伝送するコストを低減させる。伸張(復号とも呼ばれる)は、圧縮形式からオリジナル情報のバージョンを再構成する。「コーデック」はエンコーダ/デコーダシステムである。   Engineers use compression (also called source coding) to reduce the bit rate of digital video. Compression reduces the cost of storing and transmitting video information by converting the video information to a lower bit rate format. Decompression (also called decoding) reconstructs a version of the original information from the compressed format. A "codec" is an encoder / decoder system.

ここ20年の間、ITU−T H.261規格、H.262(MPEG−2又はISO/IEC 13818−2)規格、H.263規格、及びH.264(MPEG−4 AVC又はISO/IEC 14496−10)規格、並びに、MPEG−1(ISO/IEC 11172−2)規格、MPEG−4 Visual(ISO/IEC 14496−2)規格、及びSMPTE 421M(VC−1)規格を含む様々なビデオコーデック規格が採用されてきた。より最近では、H.265/HEVC(ITU−T H.265又はISO/IEC 23008−2)規格が承認されている。H.265/HEVC規格に対する拡張(例えば、スケーラブルビデオ符号化/復号に関するもの、サンプル色深度又はクロマサンプリングレートの観点でのより高い忠実度を伴うビデオの符号化/復号に関するもの、スクリーンキャプチャコンテンツに関するもの、又はマルチビュー符号化/復号に関するもの)を現在策定中である。ビデオコーデック規格は、通常、特定の特徴が符号化及び復号において使用されるときの符号化ビデオビットストリームにおけるパラメータを詳述する、符号化ビデオビットストリームのシンタックスのためのオプションを定義している。多くの場合、ビデオコーデック規格はまた、デコーダが復号において整合する結果を達成するために実行すべき復号オペレーションに関する詳細を提供している。コーデック規格とは別に、様々なプロプライエタリコーデックフォーマット(proprietary codec format)が、符号化ビデオビットストリームのシンタックスのための他のオプション及び対応する復号オペレーションを定義している。   For the last 20 years, ITU-T H. H.261 standard, H. H. 262 (MPEG-2 or ISO / IEC 13818-2) standard; H.263 standard and H.264. H.264 (MPEG-4 AVC or ISO / IEC 14496-10) standard, and MPEG-1 (ISO / IEC 11172-2) standard, MPEG-4 Visual (ISO / IEC 14496-2) standard, and SMPTE 421 M (VC) -1) Various video codec standards have been adopted including the standard. More recently, H. The H. 265 / HEVC (ITU-T H. 265 or ISO / IEC 23008-2) standard has been approved. H. Extensions to the H.265 / HEVC standard (e.g. for scalable video coding / decoding, for video encoding / decoding with higher fidelity in terms of sample color depth or chroma sampling rate, for screen capture content, Or multi-view coding / decoding) is currently under development. The video codec standard usually defines an option for the syntax of the coded video bitstream, which details the parameters in the coded video bitstream when certain features are used in coding and decoding . In many cases, the video codec standard also provides details on the decoding operation that the decoder should perform to achieve matching results in decoding. Apart from the codec standard, various proprietary codec formats define other options for the syntax of the coded video bitstream and the corresponding decoding operations.

イントラブロックコピー(「BC」)は、H.265/HEVC拡張のために検討されている予測モードである。イントラBC予測モードに関して、ピクチャ内の現ブロックのサンプル値は、同じピクチャ内の以前に再構成されたサンプル値を使用して予測される。ブロックベクトル(「BV」)は、現ブロックから、予測のために使用される以前に再構成されたサンプル値を含む、ピクチャ内の領域への変位を示す。BVは、ビットストリームに含められてシグナリングされる。イントラBC予測は、イントラピクチャ予測(ピクチャ内予測)の一形態であり、ピクチャ内のブロックについてのイントラBC予測は、同じピクチャ内のサンプル値以外のいずれのサンプル値も使用しない。   Intra block copy ("BC") is based on H.264. This is a prediction mode being considered for the H.265 / HEVC extension. For intra BC prediction mode, the sample values of the current block in a picture are predicted using previously reconstructed sample values in the same picture. The block vector ("BV") indicates the displacement from the current block to the area in the picture, including previously reconstructed sample values used for prediction. The BV is included and signaled in the bitstream. Intra-BC prediction is a form of intra-picture prediction (in-picture prediction), and intra-BC prediction for blocks in a picture does not use any sample values other than sample values in the same picture.

イントラBC予測モードが、現在、H.265/HEVC規格において規定されており、H.265/HEVC規格のための何らかの参照ソフトウェアにおいて実装されているが、イントラBC予測モードは、いくつかの問題を有している。特に、予測可能なBC変位を有するブロックの符号化は、効率的に処理されず、反転されたパターンを有するコンテンツについてのイントラBC予測は、効率的に処理されない。   The intra BC prediction mode is currently H.264. Specified in the H. 265 / HEVC standard; Although implemented in some reference software for the H.265 / HEVC standard, intra BC prediction mode has some problems. In particular, coding of blocks with predictable BC displacements is not processed efficiently, and intra BC prediction for content with inverted patterns is not processed efficiently.

要約すると、詳細な説明は、イントラブロックコピー(「BC」)予測を用いたブロックの符号化又は復号の領域におけるイノベーションを提示している。例えば、本イノベーションのうちのいくつかは、イントラBC予測ブロックが、ブロックベクトル(「BV」)値により示され得る参照領域に対して反転されるブロック反転に関する。他のイノベーションは、現イントラBC予測ブロックが、シグナリングされたBV差分を使用するが残差データを有さないスキップモードのシグナリングに関する。多くの状況において、本イノベーションは、イントラBC予測ブロックの符号化効率を向上させる。   In summary, the detailed description presents innovation in the area of block encoding or decoding using intra block copy ("BC") prediction. For example, some of the innovations relate to block inversion in which intra BC prediction blocks are inverted relative to a reference region that may be indicated by a block vector ("BV") value. Another innovation relates to the signaling in skip mode, where the current intra BC prediction block uses signaled BV differences but does not have residual data. In many situations, the present innovation improves intra BC prediction block coding efficiency.

本明細書に記載のイノベーションの第1の態様に従うと、画像エンコーダ又はビデオエンコーダは、ピクチャ内の現ブロック(例えば、符号化ユニット、予測ユニット)についてのイントラBC予測領域を、ピクチャ内の参照領域に基づいて決定する。イントラBC予測領域は、参照領域に対して反転されている。例えば、イントラBC予測領域は、参照領域に対して水平方向に反転されている、参照領域に対して垂直方向に反転されている、又は、参照領域に対して水平方向及び垂直方向の両方に反転されている。   According to a first aspect of the innovation described herein, an image encoder or video encoder is configured to generate an intra BC prediction region for a current block (eg, coding unit, prediction unit) in a picture, a reference region in the picture Make a decision based on The intra BC prediction region is inverted relative to the reference region. For example, the intra BC prediction region is flipped horizontally to the reference region, flipped vertically to the reference region, or flipped both horizontally and vertically to the reference region It is done.

エンコーダは、イントラBC予測領域を使用して、現ブロックを符号化し、ビットストリーム内に符号化されたデータを出力する。符号化されたデータは、イントラBC予測領域が参照領域に対して反転されているか否かのインジケーションを含む。例えば、インジケーションは、現ブロック又は現ブロックを含むより大きなブロックについてシグナリングされ得る、ビットストリーム内の1以上のシンタックス要素である。1以上のシンタックス要素は、1以上のフラグであり得、各フラグは、反転の方向についての決定を示す。1以上のシンタックス要素は、別のシンタックス要素とともに統合符号化され得る(jointly coded)、又は、ビットストリームに含められて別々にシグナリングされ得る。   The encoder uses the intra BC prediction region to encode the current block and outputs the data encoded in the bitstream. The encoded data includes an indication of whether the intra BC prediction region is inverted relative to the reference region. For example, an indication is one or more syntax elements in the bitstream that may be signaled for the current block or a larger block that contains the current block. The one or more syntax elements may be one or more flags, each flag indicating a decision on the direction of inversion. One or more syntax elements may be jointly coded with another syntax element or may be separately signaled by being included in a bitstream.

対応するデコーダは、ビットストリーム内の符号化されたデータを受信する。符号化されたデータは、ピクチャ内の現ブロック(例えば、符号化ユニット、予測ユニット)についてのイントラBC予測領域が、ピクチャ内の参照領域に対して反転されているか否かのインジケーションを含む。例えば、インジケーションは、現ブロック又は現ブロックを含むより大きなブロックについてシグナリングされ得る、ビットストリーム内の1以上のシンタックス要素である。1以上のシンタックス要素は、1以上のフラグであり得、各フラグは、反転の方向についての決定を示す。1以上のシンタックス要素は、別のシンタックス要素とともに統合符号化され得る、又は、ビットストリームに含められて別々にシグナリングされ得る。   The corresponding decoder receives the encoded data in the bitstream. The encoded data includes an indication of whether the intra BC prediction region for the current block (eg, coding unit, prediction unit) in the picture is inverted relative to the reference region in the picture. For example, an indication is one or more syntax elements in the bitstream that may be signaled for the current block or a larger block that contains the current block. The one or more syntax elements may be one or more flags, each flag indicating a decision on the direction of inversion. One or more syntax elements may be jointly encoded with another syntax element or may be included in the bitstream and signaled separately.

デコーダは、現ブロックについてのイントラBC予測領域を、ピクチャ内の参照領域に基づいて決定する。イントラBC予測領域は、参照領域に対して(例えば、水平方向及び/又は垂直方向に)反転されている。デコーダは、イントラBC予測領域を使用して、現ブロックを復号する。   The decoder determines the intra BC prediction region for the current block based on the reference region in the picture. The intra BC prediction region is inverted (eg, horizontally and / or vertically) with respect to the reference region. The decoder uses the intra BC prediction region to decode the current block.

エンコーダ又はデコーダが、参照領域に対して反転されているイントラBC予測領域を決定するとき、エンコーダ又はデコーダは、(a)参照領域を決定し、(b)参照領域を反転し、次いで、(c)反転された参照領域の位置におけるサンプル値を、イントラBC予測領域のそれらの位置におけるサンプル値に割り当てることができる。あるいは、エンコーダ又はデコーダは、(a)参照領域を決定し、(b)参照領域の位置におけるサンプル値を、イントラBC予測領域のそれらの位置におけるサンプル値に割り当て、次いで、(c)イントラBC予測領域を反転することができる。あるいは、エンコーダ又はデコーダは、(a)参照領域を決定し、次いで、(b)参照領域の位置におけるサンプル値を、イントラBC予測領域の対応する位置におけるサンプル値に割り当てることができ、ここで、対応する位置は、反転を考慮したものである。   When the encoder or decoder determines an intra BC prediction region that is inverted relative to the reference region, the encoder or decoder (a) determines the reference region, (b) inverts the reference region, and then (c) ) Sample values at inverted reference region locations can be assigned to sample values at those locations of the intra BC prediction region. Alternatively, the encoder or decoder (a) determines the reference region, (b) assigns sample values at the location of the reference region to sample values at those locations of the intra BC prediction region, and then (c) intra BC prediction The area can be inverted. Alternatively, the encoder or decoder may (a) determine the reference region and then (b) assign sample values at the position of the reference region to sample values at the corresponding position of the intra BC prediction region, where: The corresponding position takes into account the reversal.

いくつかの例示的な実装において、符号化されたデータは、現ブロックのBV値を含む。BV値は、ピクチャ内の参照領域への変位を示す。符号化中、BV値は、予測されたBV値であることもあるし、BV値は、BV推定において特定され、予測されたBV値に対するBV差分とともにシグナリングされることもある。復号中、BV値は、予測されたBV値であることもあるし、BV値は、BV差分を、予測されたBV値に加算することにより再構成されることもある。   In some exemplary implementations, the encoded data includes the BV value of the current block. The BV value indicates the displacement to the reference area in the picture. During encoding, the BV value may be a predicted BV value, or the BV value may be identified in the BV estimate and signaled together with the BV difference to the predicted BV value. During decoding, the BV value may be a predicted BV value, or the BV value may be reconstructed by adding the BV difference to the predicted BV value.

本明細書に記載のイノベーションの別の態様に従うと、画像エンコーダ又はビデオエンコーダは、ピクチャ内の現ブロック(例えば、符号化ユニット、予測ユニット)のBV値を決定する。BV値は、ピクチャ内の参照領域への変位を示す。エンコーダは、現ブロックのBV値及びBV予測子(BV predictor)(予測されたBV値)を使用して、現ブロックのBV差分を決定する。ビットストリームは、BV予測子として使用するための、複数のBV予測子候補のセットからのBV予測子候補の選択を示すインデックス値を含み得る。あるいは、BV予測子は、何らかの他の方法で選択され得る。エンコーダは、BV値を使用するイントラBC予測を用いて、現ブロックを符号化する。エンコーダは、ビットストリーム内に、現ブロックがイントラBC予測を用いてスキップモードで符号化されていることを示すフラグを含む符号化されたデータを出力する。現ブロックは、イントラBC予測を用いてスキップモードで符号化されているので、ビットストリームは、現ブロックのBV差分を含むが、現ブロックの残差データを含まない。   According to another aspect of the innovation described herein, the image encoder or video encoder determines the BV value of the current block (eg, coding unit, prediction unit) in the picture. The BV value indicates the displacement to the reference area in the picture. The encoder uses the BV value of the current block and the BV predictor (predicted BV value) to determine the BV difference of the current block. The bitstream may include index values that indicate the selection of BV predictor candidates from the set of BV predictor candidates for use as a BV predictor. Alternatively, BV predictors may be selected in some other manner. The encoder encodes the current block using intra BC prediction using BV values. The encoder outputs encoded data including in the bitstream a flag indicating that the current block is encoded in skip mode using intra BC prediction. Since the current block is coded in skip mode using intra BC prediction, the bitstream contains the BV difference of the current block but does not include residual data of the current block.

いくつかの例示的な実装において、所与のブロック(例えば、現ブロック、後続ブロック)が、イントラBC予測を用いてスキップモードで符号化されていない場合、別のフラグが、所与のブロックがイントラBC予測を用いて非スキップモードで符号化されているか否かを示し得る。所与のブロックが、イントラBC予測を用いて非スキップモードで符号化されていない場合、所与のブロックは、1以上の他のシンタックス要素により示されるように、イントラ空間予測モード又はインターピクチャモード等の別のモードで符号化されているものであり得る。   In some example implementations, if a given block (eg, the current block, a subsequent block) is not encoded in skip mode using intra BC prediction, another flag may be given for the given block It may indicate whether it is encoded in non-skip mode using intra BC prediction. If a given block is not coded in non-skip mode using intra BC prediction, then the given block may be intra spatial prediction mode or inter picture as indicated by one or more other syntax elements It may be encoded in another mode such as a mode.

いくつかの例示的な実装において、スキップモードでイントラBC予測されている所与のブロック(例えば、現ブロック、後続ブロック)は、分割モード(パーティショニングモード:partitioning mode)について定められた値を有する。これは、分割モードについてのシンタックス要素のシグナリングに影響を及ぼす。所与のブロックが、イントラBC予測を用いて非スキップモードで符号化されている場合、ビットストリームは、所与のブロックの分割モードを示すシンタックス要素を含む。しかしながら、所与のブロックが、イントラBC予測を用いてスキップモードで符号化されている場合、ビットストリームは、所与のブロックの分割モードを示すシンタックス要素を含まず、所与のブロックの分割モードは、定められた値を有する。   In some example implementations, a given block being intra BC-predicted in skip mode (e.g., current block, subsequent block) has a defined value for partitioning mode . This affects the signaling of syntax elements for split mode. If a given block is encoded in non-skip mode using intra BC prediction, the bitstream contains syntax elements that indicate the division mode of the given block. However, if the given block is encoded in skip mode using intra BC prediction, then the bitstream does not contain syntax elements indicating the splitting mode of the given block, and the splitting of the given block The mode has a defined value.

いくつかの例示的な実装において、スキップモードでイントラBC予測されている所与のブロック(例えば、現ブロック、後続ブロック)は、所与のブロックの残差データの有無を示すフラグを有さない。所与のブロックの残差データは、ビットストリーム内に無いとみなされる。また、所与のブロックが、イントラBC予測を用いて非スキップモードで符号化されており、所与のブロックの分割モードが、定められた値を有する場合、ビットストリームは、所与のブロックの残差データの有無を示すフラグを含まない。この場合、所与のブロックの残差データは、ビットストリーム内に有るとみなされる。また、所与のブロックが、イントラBC予測を用いて非スキップモードで符号化されており、所与のブロックの分割モードが、定められた値を有さない場合、ビットストリームは、所与のブロックの残差データの有無を示すフラグを含む。   In some exemplary implementations, a given block being intra BC-predicted in skip mode (eg, current block, subsequent block) does not have a flag indicating the presence or absence of residual data for the given block . Residual data for a given block is considered not to be in the bitstream. Also, if a given block is encoded in non-skip mode using intra BC prediction, and the split mode of the given block has a defined value, then the bitstream is of the given block. Does not include a flag indicating the presence or absence of residual data. In this case, the residual data of a given block is considered to be in the bitstream. Also, if the given block is encoded in non-skip mode using intra BC prediction, and the split mode of the given block does not have a defined value, then the bitstream is given It includes a flag indicating the presence or absence of residual data of the block.

対応するデコーダは、ビットストリームからの、ピクチャ内の現ブロック(例えば、符号化ユニット、予測ユニット)が、イントラBC予測を用いてスキップモードで符号化されていることを示すフラグを含む符号化されたデータを受信する。現ブロックは、イントラBC予測を用いてスキップモードで符号化されているので、ビットストリームは、現ブロックのBV差分を含むが、現ブロックの残差データを含まない。デコーダは、現ブロックのBV差分及びBV予測子(予測されたBV値)を使用して、現ブロックのBV値を決定する。ビットストリームは、BV予測子として使用するための、複数のBV予測子候補のセットからのBV予測子候補の選択を示すインデックス値を含み得る。あるいは、BV予測子は、何らかの他の方法で選択され得る。BV値は、ピクチャ内の参照領域への変位を示す。デコーダは、BV値を使用するイントラBC予測を用いて、現ブロックを復号する。   The corresponding decoder is encoded with a flag that indicates that the current block (eg, the encoding unit, the prediction unit) in the picture from the bitstream is encoded in skip mode using intra BC prediction Receive the received data. Since the current block is coded in skip mode using intra BC prediction, the bitstream contains the BV difference of the current block but does not include residual data of the current block. The decoder uses the BV difference of the current block and the BV predictor (predicted BV value) to determine the BV value of the current block. The bitstream may include index values that indicate the selection of BV predictor candidates from the set of BV predictor candidates for use as a BV predictor. Alternatively, BV predictors may be selected in some other manner. The BV value indicates the displacement to the reference area in the picture. The decoder decodes the current block using intra BC prediction using BV values.

現ブロックが、イントラBC予測を用いてスキップモードで符号化されている場合、現ブロックについてのイントラBC予測領域は、その参照領域に対して反転されているものであり得る。反転オペレーション、反転の方向、及び、反転が用いられているかどうかのシグナリングの例は、上記でまとめられている。   If the current block is coded in skip mode using intra BC prediction, the intra BC prediction region for the current block may be the one that is inverted relative to its reference region. Examples of inversion operation, direction of inversion, and signaling of whether inversion is used are summarized above.

イントラBC予測のためのイノベーションは、方法の一部として、方法を実行するよう適合されたコンピューティングデバイスの一部として、又は、コンピューティングデバイスに方法を実行させるコンピュータ実行可能な命令を記憶した有体のコンピュータ読み取り可能な媒体の一部として実施され得る。様々なイノベーションは、組み合わせて又は別々に、使用され得る。特に、イントラBC予測におけるブロック反転は、イントラBC予測ブロックについてのスキップモードと組み合わせて使用され得る。   The innovation for intra-BC prediction may have stored computer-executable instructions for causing the computing device to perform the method, as part of a method, as part of a computing device adapted to perform the method, or It may be implemented as part of a computer readable medium of the body. Various innovations may be used in combination or separately. In particular, block inversion in intra BC prediction may be used in combination with the skip mode for intra BC prediction blocks.

本発明の前述の目的及び他の目的、特徴、並びに利点が、添付の図面を参照しながら進む以下の詳細な説明からより明らかになるであろう。   The foregoing and other objects, features and advantages of the present invention will become more apparent from the following detailed description, which proceeds with reference to the accompanying drawings.

いくつかの説明する実施形態を実装することができる例示的なコンピューティングシステムの図。FIG. 13 is a diagram of an example computing system that can implement some described embodiments. いくつかの説明する実施形態を実装することができる例示的なネットワーク環境の図。FIG. 1 is a diagram of an example network environment in which some described embodiments may be implemented. いくつかの説明する実施形態を実装することができる例示的なネットワーク環境の図。FIG. 1 is a diagram of an example network environment in which some described embodiments may be implemented. いくつかの説明する実施形態を協働して実装することができる例示的なエンコーダシステムの図。FIG. 13 is a diagram of an example encoder system that can be cooperatively implemented with some described embodiments. いくつかの説明する実施形態を協働して実装することができる例示的なデコーダシステムの図。FIG. 13 is a diagram of an example decoder system that can be cooperatively implemented with some described embodiments. いくつかの説明する実施形態を協働して実装することができる例示的なビデオエンコーダを示す図。FIG. 10 illustrates an example video encoder that can be implemented cooperatively with some described embodiments. いくつかの説明する実施形態を協働して実装することができる例示的なビデオエンコーダを示す図。FIG. 10 illustrates an example video encoder that can be implemented cooperatively with some described embodiments. いくつかの説明する実施形態を協働して実装することができる例示的なビデオデコーダを示す図。FIG. 10 illustrates an example video decoder that can be cooperatively implemented with some described embodiments. ピクチャ内のブロックについてのイントラBC予測を示す図。及びブロックについてのBV予測を示す図。FIG. 10 shows intra BC prediction for blocks in a picture. FIG. 16 shows BV prediction for B and B blocks. ピクチャ内のブロックについてのBV予測を示す図。FIG. 7 shows BV prediction for blocks in a picture. ブロックについての参照領域の反転を示す図。FIG. 7 shows the inversion of the reference area for the block. ブロックについての参照領域の反転を示す図。FIG. 7 shows the inversion of the reference area for the block. ブロックについての参照領域の反転を示す図。FIG. 7 shows the inversion of the reference area for the block. ブロックについての参照領域の反転を示す図。FIG. 7 shows the inversion of the reference area for the block. ブロックについての参照領域の反転を示す図。FIG. 7 shows the inversion of the reference area for the block. ブロックについての参照領域の反転を示す図。FIG. 7 shows the inversion of the reference area for the block. ブロックについての参照領域の反転を示す図。FIG. 7 shows the inversion of the reference area for the block. ブロックについての参照領域の反転を示す図。FIG. 7 shows the inversion of the reference area for the block. ブロックについての参照領域の反転を示す図。FIG. 7 shows the inversion of the reference area for the block. ブロックについての参照領域の反転を示す図。FIG. 7 shows the inversion of the reference area for the block. イントラBC予測領域が参照領域に対して反転される符号化のための技術を示すフローチャート。FIG. 7 is a flow chart illustrating a technique for encoding in which an intra BC prediction region is inverted with respect to a reference region. イントラBC予測領域が参照領域に対して反転されている復号のための技術を示すフローチャート。FIG. 16 is a flow chart illustrating a technique for decoding in which the intra BC prediction region is inverted relative to the reference region. イントラBC予測ブロックについてのスキップモードを含む符号化のための技術を示すフローチャート。10 is a flow chart illustrating a technique for encoding including skip mode for intra BC prediction blocks. イントラBC予測ブロックについてのスキップモードを含む符号化のための技術を示すフローチャート。10 is a flow chart illustrating a technique for encoding including skip mode for intra BC prediction blocks. イントラBC予測ブロックについてのスキップモードを含む復号のための技術を示すフローチャート。10 is a flow chart illustrating a technique for decoding that includes skip mode for intra BC prediction blocks. イントラBC予測ブロックについてのスキップモードを含む復号のための技術を示すフローチャート。10 is a flow chart illustrating a technique for decoding that includes skip mode for intra BC prediction blocks. 従来のアプローチに従った、符号化ユニットについてのシンタックス構造を示すテーブル。Table showing syntax structure for a coding unit, according to the conventional approach. 従来のアプローチに従った、符号化ユニットについてのシンタックス構造を示すテーブル。Table showing syntax structure for a coding unit, according to the conventional approach. スキップモードでのイントラBC予測ブロックとして符号化され得る符号化ユニットについての新たなシンタックス構造を示すテーブル。FIG. 7 is a table showing a new syntax structure for a coding unit that may be coded as an intra BC prediction block in skip mode.

詳細な説明は、イントラブロックコピー(「BC」)予測を用いたブロックの符号化又は復号の領域におけるイノベーションを提示している。例えば、本イノベーションのうちのいくつかは、イントラBC予測ブロックが、ブロックベクトル(「BV」)値により示され得る参照領域に対して反転されるブロック反転に関する。他のイノベーションは、現イントラBC予測ブロックが、シグナリングされたBV差分を使用するが残差データを有さないスキップモードのシグナリングに関する。多くの状況において、本イノベーションは、イントラBC予測ブロックの符号化効率を向上させる。   The detailed description presents innovation in the area of block encoding or decoding using intra block copy ("BC") prediction. For example, some of the innovations relate to block inversion in which intra BC prediction blocks are inverted relative to a reference region that may be indicated by a block vector ("BV") value. Another innovation relates to the signaling in skip mode, where the current intra BC prediction block uses signaled BV differences but does not have residual data. In many situations, the present innovation improves intra BC prediction block coding efficiency.

本明細書に記載のオペレーションは、ビデオエンコーダ又はビデオデコーダにより実行されるものとして所々で説明されるが、多くの場合、このようなオペレーションは、別のタイプのメディア処理ツール(例えば、画像エンコーダ又は画像デコーダ)により実行することができる。   Although the operations described herein are described elsewhere as being performed by a video encoder or video decoder, in many cases such operations may be performed by another type of media processing tool (e.g. Image decoder).

本明細書に記載のイノベーションのうちのいくつかは、H.265/HEVC規格に固有のシンタックス要素及びオペレーションを参照して示される。例えば、H.265/HEVC規格のドラフトバージョンJCTVC−P1005(”High Efficiency Video Coding (HEVC) Range Extensions Text Specification: Draft 6”, JCTVC-P1005_v1, February 2014)を参照する。本明細書に記載のイノベーションはまた、他の規格又はフォーマットのためにも実装することができる。   Some of the innovations described herein are: It is shown with reference to syntax elements and operations specific to the H.265 / HEVC standard. For example, H. Reference is made to the draft version JCTVC-P1005 ("High Efficiency Video Coding (HEVC) Range Extensions Text Specification: Draft 6", JCTVC-P1005_v1, February 2014) of the H.265 / HEVC standard. The innovations described herein can also be implemented for other standards or formats.

本明細書に記載のイノベーションのうちのいくつか(例えば、ブロック反転)は、イントラBC予測を参照しながら説明される。本イノベーションはまた、他のコンテキスト(例えば、動き補償における参照領域についてのブロック反転)においても適用することができる。   Some of the innovations described herein (eg, block inversion) are described with reference to intra BC prediction. The innovation can also be applied in other contexts (eg, block inversion for reference regions in motion compensation).

より一般的に、本明細書に記載の例に対する様々な代替例が可能である。例えば、本明細書に記載の方法のうちのいくつかは、例えば、説明する方法動作の順番を変えることにより、所定の方法動作を分けることにより、所定の方法動作を繰り返すことにより、又は所定の方法動作を省略することにより、変更することができる。開示する技術の様々な態様が、組み合わせて又は別々に、使用され得る。様々な実施形態が、説明するイノベーションのうちの1以上を使用する。本明細書に記載のイノベーションのうちのいくつかは、背景技術において記した問題のうちの1以上に対処する。一般的に、所与の技術/ツールが、そのような問題の全てを解決するわけではない。   More generally, various alternatives to the examples described herein are possible. For example, some of the methods described herein may be performed by, for example, changing predetermined method operations by changing the order of method operations described, repeating predetermined method operations, or Changes can be made by omitting the method operations. Various aspects of the disclosed technology can be used in combination or separately. Various embodiments use one or more of the described innovations. Some of the innovations described herein address one or more of the issues noted in the background art. In general, a given technology / tool does not solve all such problems.

I.例示的なコンピューティングシステム
図1は、説明するイノベーションのうちのいくつかを実装することができる適切なコンピューティングシステム(100)の一般化された例を示している。コンピューティングシステム(100)は、使用又は機能の範囲に関して限定を示唆するよう意図するものではない。なぜならば、本イノベーションは、多様な汎用コンピューティングシステム又は専用コンピューティングシステムにおいて実施することができるからである。
I. Exemplary Computing System FIG. 1 shows a generalized example of a suitable computing system (100) that can implement some of the described innovations. The computing system (100) is not intended to suggest any limitation as to the scope of use or functionality. This is because the innovation can be implemented on a variety of general purpose computing systems or dedicated computing systems.

図1を参照すると、コンピューティングシステム(100)は、1以上の処理装置(110、115)及びメモリ(120、125)を含む。処理装置(110、115)は、コンピュータ実行可能な命令を実行する。処理装置は、汎用中央処理装置(「CPU」)、特定用途向け集積回路(「ASIC」)におけるプロセッサ、又は任意の他のタイプのプロセッサとすることができる。マルチ処理システムにおいては、複数の処理装置が、処理能力を増大させるために、コンピュータ実行可能な命令を実行する。例えば、図1は、中央処理装置(110)に加えて、グラフィックス処理装置又は共処理装置(115)も示している。有体のメモリ(120、125)は、1以上の処理装置によりアクセス可能な、揮発性メモリ(例えば、レジスタ、キャッシュ、RAM)であってもよいし、不揮発性メモリ(例えば、ROM、EEPROM、フラッシュメモリ等)であってもよいし、これら2つの何らかの組合せであってもよい。メモリ(120、125)は、1以上の処理装置による実行に適したコンピュータ実行可能な命令の形態で、イントラBC予測におけるブロック反転及び/又はスキップモードのための1以上のイノベーションを実装するソフトウェア(180)を記憶する。   Referring to FIG. 1, a computing system (100) includes one or more processing units (110, 115) and memories (120, 125). The processing units (110, 115) execute computer-executable instructions. The processing unit may be a general purpose central processing unit ("CPU"), a processor in an application specific integrated circuit ("ASIC"), or any other type of processor. In a multi-processing system, multiple processing units execute computer-executable instructions to increase processing power. For example, FIG. 1 also shows, in addition to the central processing unit (110), a graphics processing unit or co-processing unit (115). The tangible memory (120, 125) may be volatile memory (eg, register, cache, RAM) accessible by one or more processing devices, or non-volatile memory (eg, ROM, EEPROM, etc.). It may be a flash memory or the like, or any combination of the two. The memory (120, 125) is software (one or more innovations for block inversion and / or skip mode in intra BC prediction) in the form of computer-executable instructions suitable for execution by one or more processing devices 180) is stored.

コンピューティングシステムは、さらなる特徴を有することができる。例えば、コンピューティングシステム(100)は、ストレージ(140)、1以上の入力デバイス(150)、1以上の出力デバイス(160)、及び1以上の通信接続(170)を含む。バス、コントローラ、又はネットワーク等の相互接続機構(図示せず)が、コンピューティングシステム(100)のコンポーネントを相互接続する。通常、オペレーティングシステムソフトウェア(図示せず)が、コンピューティングシステム(100)において実行される他のソフトウェアのための動作環境を提供し、コンピューティングシステム(100)のコンポーネントの動作を調整する。   The computing system can have additional features. For example, the computing system (100) includes storage (140), one or more input devices (150), one or more output devices (160), and one or more communication connections (170). An interconnection mechanism (not shown), such as a bus, controller, or network interconnects the components of the computing system (100). Operating system software (not shown) typically provides an operating environment for other software executing on the computing system (100) to coordinate the operation of the components of the computing system (100).

有体のストレージ(140)は、着脱可能であっても着脱不可能であってもよく、磁気ディスク、磁気テープ、磁気カセット、CD−ROM、DVD、又は、情報を記憶するために使用することができ、コンピューティングシステム(100)内でアクセスされ得る任意の他の媒体を含む。ストレージ(140)は、イントラBC予測におけるブロック反転及び/又はスキップモードのための1以上のイノベーションを実装するソフトウェア(180)の命令を記憶する。   The tangible storage (140), which may or may not be removable, may be used to store magnetic disk, magnetic tape, magnetic cassette, CD-ROM, DVD or information And any other medium that can be accessed within the computing system (100). The storage (140) stores instructions of the software (180) implementing one or more innovations for block inversion and / or skip mode in intra BC prediction.

1以上の入力デバイス(150)は、キーボード、マウス、ペン、若しくはトラックボール等のタッチ入力デバイス、音声入力デバイス、スキャニングデバイス、又はコンピューティングシステム(100)への入力を提供する別のデバイスとすることができる。ビデオに関して、1以上の入力デバイス(150)は、カメラ、ビデオカード、TVチューナカード、スクリーンキャプチャモジュール、若しくはアナログ形態あるいはデジタル形態のビデオ入力を受け入れる同様のデバイス、又はビデオ入力をコンピューティングシステム(100)に読み込むCD−ROMあるいはCD−RWとすることができる。1以上の出力デバイス(160)は、ディスプレイ、プリンタ、スピーカ、CDライタ、又はコンピューティングシステム(100)からの出力を提供する別のデバイスとすることができる。   The one or more input devices (150) may be a keyboard, a touch input device such as a mouse, a pen, or a trackball, an audio input device, a scanning device or another device providing input to the computing system (100) be able to. With respect to video, one or more input devices (150) may be a camera, video card, TV tuner card, screen capture module, or similar device that accepts video input in analog or digital form, or a computing system (100 ) Can be used as a CD-ROM or a CD-RW. The one or more output devices (160) may be a display, a printer, speakers, a CD writer, or another device that provides output from the computing system (100).

1以上の通信接続(170)は、通信媒体を介した別のコンピューティングエンティティとの通信を可能にする。通信媒体は、変調されたデータ信号により、コンピュータ実行可能な命令、オーディオ入力、ビデオ入力、オーディオ出力、ビデオ出力、又は他のデータ等の情報を伝達する。変調されたデータ信号とは、信号内の情報を符号化するように設定又は変更された特性のうちの1以上を有する信号である。限定ではなく例として、通信媒体は、電気、光、RF、又は他のキャリアを使用することができる。   One or more communication connections (170) enable communication with another computing entity via a communication medium. The communication medium conveys information such as computer-executable instructions, audio input, video input, audio output, video output, or other data via the modulated data signal. A modulated data signal is a signal that has one or more of the characteristics set or changed to encode information in the signal. By way of example and not limitation, communication media may use electrical, optical, RF or other carriers.

本イノベーションは、コンピュータ読み取り可能な媒体の一般的なコンテキストにおいて説明され得る。コンピュータ読み取り可能な媒体は、コンピューティング環境内でアクセスされ得る任意の利用可能な有体の媒体である。限定ではなく例として、コンピューティングシステム(100)において、コンピュータ読み取り可能な媒体は、メモリ(120、125)、ストレージ(140)、及びこれらの任意の組合せを含む。   The innovation can be described in the general context of computer readable media. Computer readable media are any available tangible media that can be accessed within a computing environment. By way of example, and not limitation, in computing system (100), computer readable media may include memory (120, 125), storage (140), and any combination thereof.

本イノベーションは、コンピュータ実行可能な命令の一般的なコンテキストにおいて説明され得る。コンピュータ実行可能な命令は、例えば、プログラムモジュールに含まれ、コンピューティングシステムにおいて、ターゲット実プロセッサ又は仮想プロセッサ上で実行される。一般に、プログラムモジュールは、特定のタスクを実行する又は特定の抽象データ型を実装するルーチン、プログラム、ライブラリ、オブジェクト、クラス、コンポーネント、データ構造等を含む。プログラムモジュールの機能は、様々な実施形態において、必要に応じて、組み合わされてもよいし、プログラムモジュール間で分割されてもよい。プログラムモジュールのコンピュータ実行可能な命令は、ローカルコンピューティングシステム又は分散コンピューティングシステム内で実行され得る。   The innovation can be described in the general context of computer-executable instructions. Computer-executable instructions are included, for example, in program modules, and executed on a target real or virtual processor in a computing system. Generally, program modules include routines, programs, libraries, objects, classes, components, data structures, etc. that perform particular tasks or implement particular abstract data types. The functionality of the program modules may be combined or split between program modules as desired in various embodiments. Computer executable instructions of program modules may be executed within a local computing system or a distributed computing system.

「システム」及び「デバイス」という用語は、本明細書において置き換え可能に使用される。文脈が別途明確に示さない限り、これらの用語は、コンピューティングシステム又はコンピューティングデバイスのタイプに関していかなる限定も示すものではない。一般に、コンピューティングシステム又はコンピューティングデバイスは、局在することもあるし分散されることもあり、専用ハードウェア及び/又は汎用ハードウェアと、本明細書に記載の機能を実装するソフトウェアと、の任意の組合せを含み得る。   The terms "system" and "device" are used interchangeably herein. These terms do not denote any limitation as to the type of computing system or computing device, unless the context clearly indicates otherwise. In general, computing systems or devices may be localized or distributed and may be dedicated and / or general purpose hardware and software that implements the functionality described herein It may include any combination.

開示する方法は、開示する方法のいずれかを実行するよう構成された専用コンピューティングハードウェアを用いて実装することもできる。例えば、開示する方法は、開示する方法のいずれかを実行するよう特別に設計又は構成された集積回路(例えば、ASIC(ASICデジタル信号プロセッサ(「DSP」)等)、グラフィックス処理装置(「GPU」)、又はフィールドプログラマブルゲートアレイ(「FPGA」)等のプログラマブルロジックデバイス(「PLD」)等)により実装することができる。   The disclosed methods can also be implemented using dedicated computing hardware configured to perform any of the disclosed methods. For example, the disclosed method may be an integrated circuit (eg, an ASIC (eg, an ASIC digital signal processor ("DSP") or the like), a graphics processing Or a programmable logic device ("PLD") or the like, such as a field programmable gate array ("FPGA").

提示の目的上、詳細な説明では、コンピューティングシステムにおけるコンピュータオペレーションを説明するための「決定する」及び「使用する」のような用語が使用される。これらの用語は、コンピュータにより実行されるオペレーションの高レベル抽象表現であって、人間により実行される動作と混同すべきではない。これらの用語に対応する実際のコンピュータオペレーションは、実装に応じて変化する。   For the purpose of presentation, the detailed description uses terms such as "determine" and "use" to describe computer operations in a computing system. These terms are high-level abstract representations of computer-implemented operations and should not be confused with human-implemented operations. The actual computer operations that correspond to these terms will vary depending on the implementation.

II.例示的なネットワーク環境
図2a及び図2bは、ビデオエンコーダ(220)及びビデオデコーダ(270)を含む例示的なネットワーク環境(201、202)を示している。エンコーダ(220)及びデコーダ(270)は、適切な通信プロトコルを用いて、ネットワーク(250)を介して接続される。ネットワーク(250)は、インターネット又は別のコンピュータネットワークを含み得る。
II. Exemplary Network Environment FIGS. 2a and 2b illustrate an exemplary network environment (201, 202) that includes a video encoder (220) and a video decoder (270). The encoder (220) and the decoder (270) are connected via the network (250) using an appropriate communication protocol. The network (250) may include the Internet or another computer network.

図2aに示されるネットワーク環境(201)において、各リアルタイム通信(「RTC」)ツール(210)は、双方向通信のためのエンコーダ(220)及びデコーダ(270)の両方を含む。所与のエンコーダ(220)は、H.265/HEVC規格の変形又は拡張、SMPTE 421M規格、ISO/IEC 14496−10規格(H.264又はAVCとしても知られている)、別の規格、又はプロプライエタリフォーマットに準拠する出力を生成することができ、対応するデコーダ(270)は、エンコーダ(220)からの符号化データを受け入れることができる。双方向通信は、ビデオ会議、ビデオ通話、又は他の2パーティ若しくはマルチパーティ通信シナリオの一部であり得る。図2aのネットワーク環境(201)は、2つのリアルタイム通信ツール(210)を含むが、ネットワーク環境(201)は、マルチパーティ通信に参加する3以上のリアルタイム通信ツール(210)を含んでもよい。   In the network environment (201) shown in FIG. 2a, each real-time communication ("RTC") tool (210) includes both an encoder (220) and a decoder (270) for bi-directional communication. A given encoder (220) is an H.323 encoder. A variant or extension of the H.265 / HEVC standard, an output conforming to the SMPTE 421M standard, the ISO / IEC 14496-10 standard (also known as H.264 or AVC), another standard or a proprietary format The corresponding decoder (270) can accept the encoded data from the encoder (220). Two-way communication may be part of a video conferencing, video calling, or other two party or multi party communication scenario. Although the network environment (201) of FIG. 2a includes two real time communication tools (210), the network environment (201) may include more than two real time communication tools (210) participating in multi-party communication.

リアルタイム通信ツール(210)は、エンコーダ(220)による符号化を管理する。図3は、リアルタイム通信ツール(210)に含まれ得る例示的なエンコーダシステム(300)を示している。代替的に、リアルタイム通信ツール(210)は、別のエンコーダシステムを使用してもよい。リアルタイム通信ツール(210)はまた、デコーダ(270)による復号も管理する。図4は、リアルタイム通信ツール(210)に含まれ得る例示的なデコーダシステム(400)を示している。代替的に、リアルタイム通信ツール(210)は、別のデコーダシステムを使用してもよい。   The real time communication tool (210) manages the encoding by the encoder (220). FIG. 3 shows an exemplary encoder system (300) that may be included in the real time communication tool (210). Alternatively, the real time communication tool (210) may use another encoder system. The real time communication tool (210) also manages decoding by the decoder (270). FIG. 4 shows an exemplary decoder system (400) that may be included in the real time communication tool (210). Alternatively, the real time communication tool (210) may use another decoder system.

図2bに示されるネットワーク環境(202)において、符号化ツール(212)は、デコーダ(270)を含む複数の再生ツール(214)に配信するためのビデオを符号化するエンコーダ(220)を含む。単方向通信は、ビデオが符号化されて1つのロケーションから1以上の他のロケーションに送信される、ビデオ監視システム、ウェブカメラモニタリングシステム、スクリーンキャプチャモジュール、リモートデスクトップ会議プレゼンテーション、又は他のシナリオのために提供され得る。図2bのネットワーク環境(202)は、2つの再生ツール(214)を含むが、ネットワーク環境(202)は、それより多い又はそれより少ない再生ツール(214)を含んでもよい。一般に、再生ツール(214)は、再生ツール(214)が受信するビデオのストリームを判定するために、符号化ツール(212)と通信する。再生ツール(214)は、ストリームを受信し、受信した符号化データを適切な期間の間バッファし、復号及び再生を開始する。   In the network environment (202) shown in FIG. 2b, the encoding tool (212) includes an encoder (220) that encodes video for delivery to a plurality of playback tools (214) including a decoder (270). Unidirectional communication is for video surveillance systems, webcam monitoring systems, screen capture modules, remote desktop conference presentations, or other scenarios where video is encoded and transmitted from one location to one or more other locations Can be provided. The network environment (202) of FIG. 2b includes two playback tools (214), but the network environment (202) may include more or less playback tools (214). In general, the playback tool (214) communicates with the encoding tool (212) to determine the stream of video that the playback tool (214) receives. The playback tool (214) receives the stream, buffers the received encoded data for an appropriate period of time, and starts decoding and playback.

図3は、符号化ツール(212)に含まれ得る例示的なエンコーダシステム(300)を示している。代替的に、符号化ツール(212)は、別のエンコーダシステムを使用してもよい。符号化ツール(212)はまた、1以上の再生ツール(214)との接続を管理するためのサーバサイドコントローラロジックも含み得る。図4は、再生ツール(214)に含まれ得る例示的なデコーダシステム(400)を示している。代替的に、再生ツール(214)は、別のデコーダシステムを使用してもよい。再生ツール(214)はまた、符号化ツール(212)との接続を管理するためのクライアントサイドコントローラロジックも含み得る。   FIG. 3 shows an exemplary encoder system (300) that may be included in the encoding tool (212). Alternatively, the encoding tool (212) may use another encoder system. The coding tool (212) may also include server-side controller logic to manage the connection with one or more playback tools (214). FIG. 4 shows an exemplary decoder system (400) that may be included in the playback tool (214). Alternatively, the playback tool (214) may use another decoder system. The playback tool (214) may also include client-side controller logic to manage the connection with the coding tool (212).

III.例示的なエンコーダシステム
図3は、いくつかの説明する実施形態を協働して実装することができる例示的なエンコーダシステム(300)のブロック図である。エンコーダシステム(300)は、リアルタイム通信のための低遅延符号化モード、トランスコーディングモード、及びファイル又はストリームからの再生のためのメディアを生成するためのより高遅延の符号化モード等の複数の符号化モードのうちのいずれかで動作することができる汎用符号化ツールであってもよいし、そのような1つの符号化モードのために適合された専用符号化ツールであってもよい。エンコーダシステム(300)は、特定のタイプのコンテンツ(例えば、スクリーンキャプチャコンテンツ)を符号化するよう適合され得る。エンコーダシステム(300)は、オペレーティングシステムモジュールとして、アプリケーションライブラリの一部として、又はスタンドアロンアプリケーションとして、実装することができる。概して、エンコーダシステム(300)は、ビデオソース(310)から、一連のソースビデオフレーム(311)を受信し、チャネル(390)への出力として符号化データを生成する。チャネルに出力される符号化データは、本明細書で説明するように、イントラBC予測においてブロック反転及び/又はスキップモードを用いて符号化されたコンテンツを含み得る。
III. Exemplary Encoder System FIG. 3 is a block diagram of an exemplary encoder system (300) that may be implemented cooperatively with some described embodiments. The encoder system (300) may generate multiple codes such as low delay coding mode for real time communication, transcoding mode, and higher delay coding mode to generate media for playback from a file or stream. It may be a general purpose coding tool that can operate in any of the two coding modes, or it may be a dedicated coding tool adapted for one such coding mode. The encoder system (300) may be adapted to encode particular types of content (eg, screen capture content). The encoder system (300) can be implemented as an operating system module, as part of an application library, or as a stand-alone application. In general, the encoder system (300) receives a series of source video frames (311) from a video source (310) and generates encoded data as output to a channel (390). The coded data output to the channel may include content coded using block inversion and / or skip modes in intra BC prediction, as described herein.

ビデオソース(310)は、カメラ、チューナカード、記憶媒体、スクリーンキャプチャモジュール、又は他のデジタルビデオソースとすることができる。ビデオソース(310)は、例えば、毎秒30フレームといったフレームレートで一連のビデオフレームを生成する。本明細書で使用されるとき、「フレーム」という用語は、一般に、ソースの符号化又は再構成された画像データを指す。プログレッシブスキャンビデオに関して、フレームは、プログレッシブスキャンビデオフレームである。インターレースビデオに関して、例示的な実施形態において、インターレースビデオフレームは、符号化の前にインターレース解除され得る(de-interlaced)。代替的に、2つの相補的インターレースビデオフィールドが、1つのビデオフレームとして一緒に符号化されてもよいし、2つの別々に符号化されるフィールドとして符号化されてもよい。プログレッシブスキャンビデオフレーム又はインターレーススキャンビデオフレームを示すかは別にして、「フレーム」又は「ピクチャ」という用語は、単一の対でないビデオフィールド、相補的な一対のビデオフィールド、所与の時間におけるビデオオブジェクトを表すビデオオブジェクトプレーン、又はより大きな画像における関心領域を示し得る。ビデオオブジェクトプレーン又は領域は、シーンの複数のオブジェクト又は領域を含むより大きな画像の一部であり得る。   The video source (310) may be a camera, tuner card, storage medium, screen capture module, or other digital video source. The video source (310) generates a series of video frames at a frame rate, eg, 30 frames per second. As used herein, the term "frame" generally refers to source encoded or reconstructed image data. For progressive scan video, the frame is a progressive scan video frame. For interlaced video, in an exemplary embodiment, interlaced video frames may be de-interlaced prior to encoding. Alternatively, two complementary interlaced video fields may be encoded together as one video frame or may be encoded as two separately encoded fields. The terms "frame" or "picture" refer to a single non-paired video field, a complementary pair of video fields, video at a given time, apart from indicating progressive scan video frame or interlaced scan video frame It may indicate a video object plane representing an object, or a region of interest in a larger image. The video object plane or region may be part of a larger image that includes multiple objects or regions of the scene.

到着ソースフレーム(311)は、複数のフレームバッファ記憶領域(321、322、...、32n)を含むソースフレーム一時メモリ記憶領域(320)に記憶される。フレームバッファ(321、322等)は、ソースフレーム記憶領域(320)内で1つのソースフレームを保持する。ソースフレーム(311)のうちの1以上がフレームバッファ(321、322等)に記憶された後、フレームセレクタ(330)が、ソースフレーム記憶領域(320)から個々のソースフレームを選択する。エンコーダ(340)への入力のためにフレームセレクタ(330)によりフレームが選択される順番は、ビデオソース(310)によりフレームが生成される順番とは異なり得る。例えば、いくつかの後続フレームが最初に符号化され、これにより、時間的後方予測を容易にすることを可能にするために、いくつかのフレームの符号化は、順に遅延されることがある。エンコーダ(340)の前に、エンコーダシステム(300)は、符号化の前に選択されたフレーム(331)の前処理(例えば、フィルタリング)を実行するプリプロセッサ(図示せず)を含み得る。前処理は、符号化のための、プライマリ(例えば、ルマ)成分及びセカンダリ(例えば、赤及び青に対するクロマ差)成分への色空間変換及び(例えば、クロマ成分の空間解像度を低減させるための)再サンプリング処理を含み得る。通常、符号化の前に、ビデオは、YUV等の色空間に変換されている。YUVでは、ルマ(Y)成分のサンプル値は、輝度値又は明度値を表し、クロマ(U、V)成分のサンプル値は、色差値を表す。色差値(及び、YUV色空間からRGB等の別の色空間への変換演算、RGB等の別の色空間からYUV色空間への変換演算)の正確な定義は、実装に依存する。一般に、本明細書で使用されるとき、YUVという用語は、1つのルマ(又はルミナンス)成分と1以上のクロマ(又はクロミナンス)成分とを有する任意の色空間を示し、Y’UV、YIQ、Y’IQ、及びYDbDrに加えて、YCbCr及びYCoCg等の変形を含む。クロマサンプル値は、(例えば、YUV4:2:0フォーマットに合わせるために)より低いクロマサンプリングレートにサブサンプリングされ得る、あるいは、クロマサンプル値は、(例えば、YUV4:4:4フォーマットに合わせるために)ルマサンプル値と同じ解像度を有し得る。あるいは、ビデオは、別のフォーマット(例えば、RGB4:4:4フォーマット)で符号化され得る。   The incoming source frame (311) is stored in a source frame temporary memory storage area (320) that includes a plurality of frame buffer storage areas (321, 322, ..., 32n). The frame buffer (321, 322, etc.) holds one source frame in the source frame storage area (320). After one or more of the source frames (311) are stored in the frame buffer (321, 322, etc.), the frame selector (330) selects individual source frames from the source frame storage area (320). The order in which frames are selected by the frame selector (330) for input to the encoder (340) may be different than the order in which frames are generated by the video source (310). For example, some subsequent frames may be encoded first, which may delay the encoding of some frames in order to allow temporal backward prediction to be facilitated. Prior to the encoder (340), the encoder system (300) may include a pre-processor (not shown) that performs preprocessing (eg, filtering) of the selected frame (331) prior to encoding. Pre-processing is color space conversion to primary (eg luma) and secondary (eg chroma difference to red and blue) components for encoding and (eg to reduce spatial resolution of chroma component) It may include a resampling process. Usually, before encoding, the video is converted to a color space such as YUV. In YUV, the sample values of the luma (Y) component represent luminance values or lightness values, and the sample values of the chroma (U, V) components represent chrominance values. The exact definition of the color difference values (and the conversion operation from YUV color space to another color space such as RGB, conversion operation from another color space such as RGB to YUV color space) is implementation dependent. In general, as used herein, the term YUV refers to any color space having one luma (or luminance) component and one or more chroma (or chrominance) components, Y'UV, YIQ, In addition to Y'IQ and YDbDr, variants such as YCbCr and YCoCg are included. Chroma sample values may be subsampled to a lower chroma sampling rate (eg, to match YUV 4: 2: 0 format), or chroma sample values may be matched (eg, to match YUV 4: 4: 4 format) 2.) may have the same resolution as luma sample values. Alternatively, the video may be encoded in another format (eg, RGB 4: 4: 4 format).

エンコーダ(340)は、選択されたフレーム(331)を符号化して、符号化フレーム(341)を生成するとともに、メモリ管理制御操作(「MMCO」)信号(342)又は参照ピクチャセット(「RPS」)情報を生成する。RPSは、現フレーム又は任意の後続フレームのための動き補償における参照のために使用され得るフレームのセットである。現フレームが、符号化された最初のフレームではない場合、符号化プロセスを実行するとき、エンコーダ(340)は、復号フレーム一時メモリ記憶領域(360)に記憶されている1以上の以前に符号化/復号されたフレーム(369)を使用することができる。そのような記憶されている復号フレーム(369)は、現ソースフレーム(331)のコンテンツのインターフレーム予測(フレーム間予測)のための参照フレームとして使用される。MMCO/RPS情報(342)は、どの再構成フレームが、参照フレームとして使用され得るかを、したがって、フレーム記憶領域に記憶されるべきかを、デコーダに示す。   The encoder (340) encodes the selected frame (331) to generate an encoded frame (341), and a memory management control operation ("MMCO") signal (342) or a reference picture set ("RPS") ) Generate information. RPS is a set of frames that can be used for reference in motion compensation for the current frame or any subsequent frame. If the current frame is not the first frame encoded, the encoder (340) performs one or more previously encoded as stored in the decoded frame temporary memory storage area (360) when performing the encoding process. / A decoded frame (369) can be used. Such stored decoded frame (369) is used as a reference frame for inter-frame prediction (inter-frame prediction) of the content of the current source frame (331). The MMCO / RPS information (342) indicates to the decoder which reconstructed frame may be used as a reference frame and thus should be stored in the frame storage area.

一般に、エンコーダ(340)は、タイルへの分割、イントラ予測推定及び予測、動き推定及び動き補償、周波数変換、量子化、並びにエントロピ符号化等の符号化タスクを実行する複数の符号化モジュールを含む。エンコーダ(340)により実行される正確なオペレーションは、圧縮フォーマットに応じて変わり得る。出力される符号化データのフォーマットは、H.265/HEVCフォーマットの変形又は拡張、Windows(登録商標) Media Videoフォーマット、VC−1フォーマット、MPEG−xフォーマット(例えば、MPEG−1、MPEG−2、又はMPEG−4)、H.26xフォーマット(例えば、H.261、H.262、H.263、H.264)、又は別のフォーマットであり得る。   In general, the encoder (340) includes multiple coding modules that perform coding tasks such as division into tiles, intra prediction estimation and prediction, motion estimation and compensation, frequency transform, quantization, and entropy coding . The exact operation performed by the encoder (340) may vary depending on the compression format. The format of the encoded data to be output is H.1. H.265 / HEVC format variants or extensions, Windows® Media Video format, VC-1 format, MPEG-x format (eg, MPEG-1, MPEG-2, or MPEG-4), H.264, H.264, H.264, H.264, H.264, H.264, H.264, H.264, H.264, H.264, H.264, H.264, H.264, H.264, H.264, H.264, H.264, H.264, H.264, H.264, H. 26x format (e.g., H.261, H.262, H.263, H.264) or another format.

エンコーダ(340)は、フレームを、同じサイズ又は異なるサイズの複数のタイルに分割することができる。例えば、エンコーダ(340)は、フレーム境界を用いてフレーム内のタイルの水平境界及び垂直境界を規定するタイル行及びタイル列に沿って、フレームを分割する。ここで、各タイルは矩形領域である。タイルは、並列処理のためのオプションを提供するために、しばしば使用される。フレームはまた、1以上のスライスとして編成され得る。ここで、スライスは、フレーム全体又はフレームの一領域であり得る。スライスは、フレーム内の他のスライスとは独立して復号することができ、これは、誤り耐性を向上させる。スライス又はタイルのコンテンツは、符号化及び復号のために、ブロック又はサンプルの他のセットにさらに分割される。   The encoder (340) may divide the frame into multiple tiles of the same size or different sizes. For example, the encoder (340) divides the frame along tile rows and tile columns that use the frame boundaries to define the horizontal and vertical boundaries of tiles within the frame. Here, each tile is a rectangular area. Tiles are often used to provide options for parallel processing. A frame may also be organized as one or more slices. Here, a slice may be an entire frame or an area of a frame. Slices can be decoded independently of other slices in the frame, which improves error resilience. The content of the slice or tile is further divided into other sets of blocks or samples for encoding and decoding.

H.265/HEVC規格に従ったシンタックスに関して、エンコーダは、フレーム(又はスライス若しくはタイル)のコンテンツを、符号化ツリーユニットに分割する。符号化ツリーユニット(「CTU」)は、1つのルマ符号化ツリーブロック(「CTB」)として編成されるルマサンプル値と、2つのクロマCTBとして編成される対応するクロマサンプル値と、を含む。CTU(及びそのCTB)のサイズは、エンコーダにより選択され、例えば、64×64サンプル値、32×32サンプル値、又は16×16サンプル値であり得る。CTUは、1以上の符号化ユニットを含む。符号化ユニット(「CU」)は、1つのルマ符号化ブロック(「CB」)と2つの対応するクロマCBとを有する。例えば、1つの64×64ルマCTBと2つの64×64クロマCTBとを有するCTU(YUV4:4:4フォーマット)は、4つのCUに分割され得る。ここで、各CUは、1つの32×32ルマCBと2つの32×32クロマCBとを含み、各CUは、可能であれば、より小さなCUにさらに分割される。あるいは、別の例として、1つの64×64ルマCTBと2つの32×32クロマCTBとを有するCTU(YUV4:2:0フォーマット)は、4つのCUに分割され得る。ここで、各CUは、1つの32×32ルマCBと2つの16×16クロマCBとを含み、各CUは、可能であれば、より小さなCUにさらに分割される。CUの最小許容可能サイズ(例えば、8×8、16×16)が、ビットストリームに含められてシグナリングされ得る。   H. For syntax according to the H.265 / HEVC standard, the encoder divides the content of a frame (or slice or tile) into coding tree units. A coding tree unit ("CTU") includes luma sample values organized as one luma coded tree block ("CTB") and corresponding chroma sample values organized as two chroma CTBs. The size of the CTU (and its CTB) is selected by the encoder and may be, for example, 64 × 64 sample values, 32 × 32 sample values, or 16 × 16 sample values. A CTU includes one or more coding units. The coding unit ("CU") has one luma coding block ("CB") and two corresponding chroma CBs. For example, a CTU with one 64 × 64 luma CTB and two 64 × 64 chroma CTBs (YUV 4: 4: 4 format) may be divided into four CUs. Here, each CU includes one 32 × 32 luma CB and two 32 × 32 chroma CBs, and each CU is further divided into smaller CUs, if possible. Alternatively, as another example, a CTU (YUV 4: 2: 0 format) having one 64 × 64 luma CTB and two 32 × 32 chroma CTBs may be divided into four CUs. Here, each CU includes one 32 × 32 luma CB and two 16 × 16 chroma CBs, and each CU is further divided into smaller CUs, if possible. The CU's minimum allowable size (eg, 8x8, 16x16) may be included in the bitstream and signaled.

一般に、CUは、インター又はイントラ等の予測モードを有する。CUは、予測情報(例えば、予測モード詳細、変位値等)のシグナリング及び/又は予測処理のために、1以上の予測ユニットを含む。予測ユニット(「PU」)は、1つのルマ予測ブロック(「PB」)と2つのクロマPBとを有する。イントラ予測CUに関して、CUが最小サイズ(例えば、8×8)を有する場合を除いて、PUは、CUと同じサイズを有する。この場合、CUは、4つのより小さなPU(例えば、最小CUサイズが8×8である場合、それぞれ4×4である)に分割され得る、あるいは、PUは、CUについてのシンタックス要素により示される最小CUサイズを有し得る。CUはまた、残差符号化/復号のために、1以上の変換ユニットを有する。ここで、変換ユニット(「TU」)は、1つのルマ変換ブロック(「TB」)と2つのクロマTBとを有する。イントラ予測CU内のPUは、1つのTU(PUとサイズが等しい)又は複数のTUを含み得る。エンコーダは、ビデオをCTU、CU、PU、TU等にどのように分割するかを決定する。   In general, a CU has a prediction mode such as inter or intra. The CU includes one or more prediction units for signaling and / or processing of prediction information (eg, prediction mode details, displacement values, etc.). The prediction unit ("PU") has one luma prediction block ("PB") and two chroma PBs. For intra-prediction CUs, the PU has the same size as the CU, except where the CU has the smallest size (eg, 8 × 8). In this case, the CU may be divided into four smaller PUs (e.g. 4x4 each if the minimum CU size is 8x8), or PUs are indicated by a syntax element for CU Can have a minimum CU size. The CU also has one or more transform units for residual coding / decoding. Here, the transform unit ("TU") has one luma transform block ("TB") and two chroma TBs. A PU in an intra prediction CU may include one TU (equal in size to a PU) or a plurality of TUs. The encoder determines how to divide the video into CTUs, CUs, PUs, TUs, etc.

H.265/HEVC実装において、スライスは、1つのスライスセグメント(独立スライスセグメント)を含み得る、又は、複数のスライスセグメント(1つの独立スライスセグメント及び1以上の従属スライスセグメント)に分割され得る。スライスセグメントは、1つのネットワーク抽象化レイヤ(「NAL」)ユニットに含まれる、タイルスキャンにおいて連続して順番付けられる整数個のCTUである。独立スライスセグメントに関して、スライスセグメントヘッダは、独立スライスセグメントについて適用されるシンタックス要素の値を含む。従属スライスセグメントに関して、短(truncated)スライスセグメントヘッダは、その従属スライスセグメントについて適用されるシンタックス要素の少しの値を含み、その従属スライスセグメントについての他のシンタックス要素の値は、復号順で先行する独立スライスセグメントについての値から推測される。   H. In the 265 / HEVC implementation, a slice may include one slice segment (independent slice segment) or may be divided into multiple slice segments (one independent slice segment and one or more dependent slice segments). A slice segment is an integral number of CTUs sequentially ordered in a tile scan, included in one network abstraction layer ("NAL") unit. For independent slice segments, the slice segment header contains the values of syntax elements applied for the independent slice segment. For a dependent slice segment, the truncated slice segment header contains some values of syntax elements that apply for that dependent slice segment, and the values of other syntax elements for that dependent slice segment are in decoding order Inferred from the values for the preceding independent slice segment.

本明細書で使用されるとき、「ブロック」という用語は、文脈に応じて、マクロブロック、予測ユニット、残差データユニット、すなわち、CB、PB、若しくはTB、又は、サンプル値の何らかの他のセットを示し得る。   As used herein, the term "block" may, depending on context, be a macroblock, a prediction unit, a residual data unit, ie CB, PB or TB, or some other set of sample values Can be shown.

図3に戻ると、エンコーダは、ソースフレーム(331)内の他の以前に再構成されたサンプル値からの予測の観点でそのソースフレーム(331)のイントラ符号化ブロックを表現する。イントラBC予測に関して、イントラピクチャ推定部が、他の以前に再構成されたサンプル値に対する(又は、いくつかの実装においては、フレーム(331)内のオリジナルのサンプル値に対する)ブロックの変位を推定する。イントラフレーム予測参照領域とは、ブロックのためのBC予測値を生成するために使用される、フレーム内のサンプルの領域である。参照領域は、(ブロックベクトル(「BV」)推定において決定された)BV値により示され得る。参照領域は、本明細書で説明するように、ブロックについての予測領域に対して反転されているものであり得る。ブロックのためのイントラ空間予測に関して、イントラピクチャ推定部が、ブロックへの、隣接する再構成されたサンプル値の外挿(extrapolation)を推定する。イントラピクチャ推定部は、予測情報(イントラBC予測のためのBV値やイントラ空間予測のための予測モード(方向)等)を出力することができ、この予測情報が、エントロピ符号化される。イントラフレーム予測予測部は、イントラ予測値を決定するために、予測情報を適用する。   Returning to FIG. 3, the encoder represents the intra-coded block of that source frame (331) in terms of prediction from other previously reconstructed sample values in the source frame (331). For intra BC prediction, the intra picture estimator estimates the displacement of the block relative to other previously reconstructed sample values (or, in some implementations, relative to the original sample values in frame (331)) . An intra frame prediction reference region is a region of samples in a frame that is used to generate a BC prediction value for a block. The reference region may be indicated by the BV value (as determined in block vector ("BV") estimation). The reference region may be inverted relative to the prediction region for the block, as described herein. For intra-spatial prediction for a block, an intra-picture estimator estimates the extrapolation of adjacent reconstructed sample values to the block. The intra picture estimation unit can output prediction information (BV value for intra BC prediction, prediction mode (direction) for intra spatial prediction, etc.), and this prediction information is entropy coded. The intra-frame prediction predictor applies prediction information to determine an intra prediction value.

エンコーダ(340)は、参照フレームからの予測の観点でソースフレーム(331)のインターフレーム符号化予測ブロックを表現する。動き推定部は、1以上の参照フレーム(369)に対するブロックの動きを推定する。複数の参照フレームが使用される場合、複数の参照フレームは、異なる時間的方向からのものであってもよいし、同じ時間的方向からのものであってもよい。動き補償予測参照領域とは、現フレーム内のブロックのサンプル値のための動き補償予測値を生成するために使用される、1以上の参照フレーム内のサンプル値の領域である。参照領域は、本明細書で説明するように、ブロックについての予測領域に対して反転されているものであり得る。動き推定部は、動きベクトル(「MV」)情報等の動き情報を出力し、この動き情報が、エントロピ符号化される。動き補償部は、インターフレーム予測のための動き補償予測値を決定するために、MVを参照フレーム(369)に適用する。   The encoder (340) represents inter-frame coded prediction blocks of the source frame (331) in terms of prediction from the reference frame. The motion estimator estimates block motion relative to one or more reference frames (369). When multiple reference frames are used, the multiple reference frames may be from different temporal directions or from the same temporal direction. Motion compensated prediction reference regions are regions of sample values in one or more reference frames that are used to generate motion compensated prediction values for sample values of blocks in the current frame. The reference region may be inverted relative to the prediction region for the block, as described herein. The motion estimator outputs motion information, such as motion vector ("MV") information, which is entropy encoded. The motion compensation unit applies MV to the reference frame (369) to determine a motion compensated prediction value for inter-frame prediction.

エンコーダは、ブロックの予測値(イントラ又はインター)と対応するオリジナルの値との間の差(あれば)を決定することができる。このような予測残差値が、周波数変換、量子化、及びエントロピ符号化を用いて、さらに符号化される。例えば、エンコーダ(340)は、ピクチャ、タイル、スライス、及び/又はビデオの他の部分のための量子化パラメータ(「QP」)の値を設定し、それに従って変換係数を量子化する。エンコーダ(340)のエントロピ符号化部が、量子化された変換係数値に加えて、所定のサイド情報(例えば、MV情報、BV予測子のインデックス値、BV差分、QP値、モード決定、パラメータ選択)も圧縮する。一般的なエントロピ符号化技術は、指数ゴロム符号化、ゴロムライス符号化、算術符号化、差分符号化、ハフマン符号化、ランレングス符号化、「V2V(variable-length-to-variable-length)」符号化、「V2F(variable-length-to-fixed-length)」符号化、「LZ(Lempel-Ziv)」符号化、辞書符号化、「PIPE(probability interval partitioning entropy)」符号化、及びこれらの組合せを含む。エントロピ符号化部は、様々な種類の情報のための様々な符号化技術を使用することができ、複数の技術を組み合わせて適用することができ(例えば、ゴロムライス符号化を適用した後に算術符号化を適用することにより)、特定の符号化技術における複数の符号テーブルの中から選択することができる。   The encoder can determine the difference (if any) between the predicted value (intra or inter) of the block and the corresponding original value. Such prediction residual values are further encoded using frequency transformation, quantization and entropy coding. For example, the encoder (340) sets the values of quantization parameters ("QP") for pictures, tiles, slices, and / or other parts of the video, and quantizes the transform coefficients accordingly. The entropy coding unit of the encoder (340) adds predetermined side information (eg, MV information, BV predictor index value, BV difference, QP value, mode determination, parameter selection, in addition to the quantized transform coefficient value) ) Also compress. Common entropy coding techniques include exponential Golomb coding, Golomb rice coding, arithmetic coding, differential coding, Huffman coding, run length coding, "V2V (variable-length-to-variable-length) coding" , “V2F (variable-length-to-fixed-length)” coding, “LZ (Lempel-Ziv) coding, dictionary coding,“ PIPE (probability interval partitioning entropy) ”coding, and combinations thereof including. The entropy coding unit may use different coding techniques for different types of information, and may combine and apply multiple techniques (e.g. after applying Golombi coding, arithmetic coding Can be selected from among a plurality of code tables in a particular coding technique.

復号フレーム内のブロック境界行及び/又はブロック境界列にわたる不連続さを平滑化するために、適応デブロッキングフィルタが、エンコーダ(340)における動き補償ループ内に含まれる。代替的又は追加的に、他のフィルタリング(デリンギングフィルタリング、適応ループフィルタリング(「ALF」)、又はサンプル適応オフセット(「SAO」)フィルタリング等;図示せず)が、ループ内フィルタリングオペレーションとして、適用されてもよい。   An adaptive deblocking filter is included in the motion compensation loop at the encoder (340) to smooth discontinuities across block boundary rows and / or block boundary columns in the decoded frame. Alternatively or additionally, other filtering (deringing filtering, adaptive loop filtering ("ALF"), or sample adaptive offset ("SAO") filtering, etc .; not shown) is applied as an in-loop filtering operation. May be

エンコーダ(340)により生成された符号化データは、ビットストリームシンタックスの様々なレイヤについてのシンタックス要素を含む。H.265/HEVC規格に従ったシンタックスに関して、例えば、ピクチャパラメータセット(「PPS」)は、ピクチャに関連付けられ得るシンタックス要素を含むシンタックス構造である。PPSは、1つのピクチャについて使用されることもあるし、PPSは、シーケンス内の複数のピクチャについて再使用されることもある。PPSは、通常、ピクチャについての符号化データとは別にシグナリングされる(例えば、1つのNALユニットは、PPS用であり、1以上の他のNALユニットは、ピクチャについての符号化データ用である)。ピクチャについての符号化データにおいて、シンタックス要素は、ピクチャについてどのPPSを使用するかを示す。同様に、H.265/HEVC規格に従ったシンタックスに関して、シーケンスパラメータセット(「SPS」)は、ピクチャのシーケンスに関連付けられ得るシンタックス要素を含むシンタックス構造である。ビットストリームは、1つのSPS又は複数のSPSを含み得る。SPSは、通常、シーケンスについての他のデータとは別にシグナリングされ、他のデータにおけるシンタックス要素が、どのSPSを使用するかを示す。   The encoded data generated by the encoder (340) contains syntax elements for the various layers of bitstream syntax. H. For syntax according to the H.265 / HEVC standard, for example, a picture parameter set ("PPS") is a syntax structure that includes syntax elements that may be associated with a picture. PPS may be used for one picture, and PPS may be reused for multiple pictures in a sequence. The PPS is normally signaled separately from the coded data for the picture (eg, one NAL unit is for PPS and one or more other NAL units are for coded data for the picture) . In coded data for a picture, a syntax element indicates which PPS to use for the picture. Similarly, H. With respect to syntax according to the H.265 / HEVC standard, a sequence parameter set ("SPS") is a syntax structure that includes syntax elements that may be associated with a sequence of pictures. The bitstream may include one SPS or multiple SPSs. The SPS is usually signaled separately from other data for the sequence, and syntax elements in the other data indicate which SPS to use.

符号化フレーム(341)及びMMCO/RPS情報(342)(又は、フレームについての依存関係及び順番構造がエンコーダ(340)において既に知られているため、MMCO/RPS情報(342)と同等の情報)が、復号プロセスエミュレータ(350)により処理される。復号プロセスエミュレータ(350)は、例えば、参照フレームを再構成する復号タスク等のデコーダの機能の一部を実装している。復号プロセスエミュレータ(350)は、MMCO/RPS情報(342)と整合するように、所与の符号化フレーム(341)が、符号化される後続フレームのインターフレーム予測において参照フレームとして使用するために再構成されて記憶される必要があるか否かを判定する。符号化フレーム(341)が記憶される必要がある場合、復号プロセスエミュレータ(350)は、符号化フレーム(341)を受信して対応する復号フレーム(351)を生成するデコーダにより行われるであろう復号プロセスを模擬する。そうする際に、エンコーダ(340)が、復号フレーム記憶領域(360)に記憶されている1以上の復号フレーム(369)を使用したとき、復号プロセスエミュレータ(350)は、復号プロセスの一部として、記憶領域(360)から1以上の復号フレーム(369)を使用する。   The encoded frame (341) and the MMCO / RPS information (342) (or the information equivalent to the MMCO / RPS information (342), as the dependencies and order structure for the frames are already known in the encoder (340) Are processed by the decryption process emulator (350). The decoding process emulator (350) implements, for example, part of the functionality of the decoder such as the decoding task to reconstruct reference frames. The Decoding Process Emulator (350) is to be used as a reference frame in inter-frame prediction of a subsequent frame to be encoded, such that a given coding frame (341) is consistent with the MMCO / RPS information (342) Determine if it needs to be reconstructed and stored. If a coded frame (341) needs to be stored, the decoding process emulator (350) will be performed by a decoder that receives the coded frame (341) and generates a corresponding decoded frame (351) Simulate the decoding process. In doing so, when the encoder (340) uses one or more decoded frames (369) stored in the decoded frame storage area (360), the decoding process emulator (350) may be part of the decoding process , Storage area (360) and one or more decoded frames (369) are used.

復号フレーム一時メモリ記憶領域(360)は、複数のフレームバッファ記憶領域(361、362、...、36n)を含む。復号プロセスエミュレータ(350)は、MMCO/RPS情報(342)と整合するように、参照フレームとして使用するためにエンコーダ(340)によりもはや必要とされなくなったフレームを有する任意のフレームバッファ(361、362等)を識別するために、記憶領域(360)のコンテンツを管理する。復号プロセスを模擬した後、復号プロセスエミュレータ(350)は、このように識別されるフレームバッファ(361、362等)に、新たに復号されたフレーム(351)を記憶する。   The decoded frame temporary memory storage area (360) includes a plurality of frame buffer storage areas (361, 362, ..., 36n). The Decoding Process Emulator (350) matches any MMCO / RPS information (342), any frame buffer (361, 362) with a frame that is no longer needed by the encoder (340) to use as a reference frame. Manage the contents of the storage area (360) to identify etc.). After simulating the decoding process, the decoding process emulator (350) stores the newly decoded frame (351) in the frame buffer (361, 362, etc.) thus identified.

符号化フレーム(341)及びMMCO/RPS情報(342)は、一時符号化データ領域(370)にバッファされる。符号化データ領域(370)に収集される符号化データは、エレメンタリ符号化ビデオビットストリームのシンタックスの一部として、1以上のピクチャの符号化データを含む。符号化データ領域(370)に収集される符号化データはまた、(例えば、1以上の付加拡張情報(「SEI」)メッセージ又はビデオユーザビリティ情報(「VUI」)メッセージにおける1以上のパラメータとして、)符号化ビデオデータに関連するメディアメタデータを含み得る。   The coded frame (341) and the MMCO / RPS information (342) are buffered in a temporary coded data area (370). The encoded data collected in the encoded data area (370) includes encoded data of one or more pictures as part of the syntax of the elementary encoded video bitstream. The encoded data collected in the encoded data area (370) may also be (eg, as one or more parameters in one or more Supplemental Enhancement Information ("SEI") messages or video usability information ("VUI") messages). It may include media metadata associated with the encoded video data.

一時符号化データ領域(370)からの収集されたデータ(371)は、チャネルエンコーダ(380)により処理される。チャネルエンコーダ(380)は、(例えば、ITU−T H.222.0|ISO/IEC 13818−1等のメディアプログラムストリーム若しくはトランスポートストリームフォーマット、又は、IETF RFC 3550等のインターネットリアルタイムトランスポートプロトコルフォーマットに従って)メディアストリームとして伝送又は記憶するために、収集されたデータをパケット化及び/又は多重化することができる。そのような場合、チャネルエンコーダ(380)は、メディア伝送ストリームのシンタックスの一部として、シンタックス要素を付加することができる。あるいは、チャネルエンコーダ(380)は、(例えば、ISO/IEC 14496−12等のメディアコンテナフォーマットに従って)ファイルとして記憶するために、収集されたデータを編成することができる。そのような場合、チャネルエンコーダ(380)は、メディア記憶ファイルのシンタックスの一部として、シンタックス要素を付加することができる。あるいは、より一般的に、チャネルエンコーダ(380)は、1以上のメディアシステム多重化プロトコル又はトランスポートプロトコルを実装することができる。そのような場合、チャネルエンコーダ(380)は、1以上のプロトコルのシンタックスの一部として、シンタックス要素を付加することができる。チャネルエンコーダ(380)は、チャネル(390)への出力を提供する。チャネル(390)は、ストレージ、通信接続、又は出力のための別のチャネルを表す。チャネルエンコーダ(380)又はチャネル(390)はまた、例えば、前方誤り訂正(「FEC」)符号化及びアナログ信号変調のための他の要素(図示せず)を含み得る。   The collected data (371) from the temporary coded data area (370) is processed by a channel encoder (380). The channel encoder (380) (eg, according to media program stream or transport stream format such as ITU-T H. 222.0 | ISO / IEC 13818-1 or Internet real-time transport protocol format such as IETF RFC 3550) The collected data may be packetized and / or multiplexed for transmission or storage as a media stream. In such cases, the channel encoder (380) may add syntax elements as part of the media transport stream syntax. Alternatively, the channel encoder (380) can organize the collected data for storage as a file (eg, according to a media container format such as ISO / IEC 14496-12). In such cases, the channel encoder (380) may add syntax elements as part of the media storage file syntax. Alternatively, more generally, the channel encoder (380) may implement one or more media system multiplexing or transport protocols. In such cases, the channel encoder (380) may add syntax elements as part of the syntax of one or more protocols. The channel encoder (380) provides an output to the channel (390). Channel (390) represents another channel for storage, communication connection, or output. Channel encoder (380) or channel (390) may also include, for example, forward error correction ("FEC") coding and other elements (not shown) for analog signal modulation.

IV.例示的なデコーダシステム
図4は、いくつかの説明する実施形態を協働して実装することができる例示的なデコーダシステム(400)のブロック図である。デコーダシステム(400)は、リアルタイム通信のための低遅延復号モード及びファイル又はストリームからのメディア再生のためのより高遅延の復号モード等の複数の復号モードのうちのいずれかで動作することができる汎用復号ツールであってもよいし、そのような1つの復号モードのために適合された専用復号ツールであってもよい。デコーダシステム(400)は、特定のタイプのコンテンツ(例えば、スクリーンキャプチャコンテンツ)を復号するよう適合され得る。デコーダシステム(400)は、オペレーティングシステムモジュールとして、アプリケーションライブラリの一部として、又はスタンドアロンアプリケーションとして、実装することができる。概して、デコーダシステム(400)は、チャネル(410)から符号化データを受信し、出力先(490)への出力として再構成フレームを生成する。符号化データは、本明細書で説明するように、イントラBC予測においてブロック反転及び/又はスキップモードを用いて符号化されたコンテンツを含み得る。
IV. Exemplary Decoder System FIG. 4 is a block diagram of an exemplary decoder system (400) that may be implemented cooperatively with some described embodiments. The decoder system (400) can operate in any of a plurality of decoding modes, such as a low delay decoding mode for real time communication and a higher delay decoding mode for media playback from a file or stream It may be a general purpose decoding tool or a dedicated decoding tool adapted for such one decoding mode. The decoder system (400) may be adapted to decode particular types of content (eg, screen capture content). The decoder system (400) can be implemented as an operating system module, as part of an application library, or as a stand-alone application. In general, the decoder system (400) receives the encoded data from the channel (410) and generates a reconstructed frame as output to an output destination (490). The encoded data may include content encoded using block inversion and / or skip modes in intra BC prediction, as described herein.

デコーダシステム(400)は、ストレージ、通信接続、又は入力としての符号化データのための別のチャネルを表し得るチャネル(410)を含む。チャネル(410)は、チャネル符号化された符号化データを生成する。チャネルデコーダ(420)は、符号化データを処理することができる。例えば、チャネルデコーダ(420)は、(例えば、ITU−T H.222.0|ISO/IEC 13818−1等のメディアプログラムストリーム若しくはトランスポートストリームフォーマット、又は、IETF RFC 3550等のインターネットリアルタイムトランスポートプロトコルフォーマットに従って)メディアストリームとして伝送又は記憶するために収集されたデータを逆パケット化及び/又は逆多重化する。そのような場合、チャネルデコーダ(420)は、メディア伝送ストリームのシンタックスの一部として付加されたシンタックス要素を解析することができる。あるいは、チャネルデコーダ(420)は、(例えば、ISO/IEC 14496−12等のメディアコンテナフォーマットに従って)ファイルとして記憶するために収集された符号化ビデオデータを分離する。そのような場合、チャネルデコーダ(420)は、メディア記憶ファイルのシンタックスの一部として付加されたシンタックス要素を解析することができる。あるいは、より一般的に、チャネルデコーダ(420)は、1以上のメディアシステム逆多重化プロトコル又はトランスポートプロトコルを実装することができる。そのような場合、チャネルデコーダ(420)は、1以上のプロトコルのシンタックスの一部として付加されたシンタックス要素を解析することができる。チャネル(410)又はチャネルデコーダ(420)はまた、例えば、FEC復号及びアナログ信号復調のための他の要素(図示せず)を含み得る。   The decoder system (400) comprises a channel (410) which may represent storage, a communication connection, or another channel for coded data as input. The channel (410) generates channel coded coded data. A channel decoder (420) can process the coded data. For example, the channel decoder (420) may (for example, a media program stream or transport stream format such as ITU-T H. 222.0 | ISO / IEC 13818-1, or an Internet real-time transport protocol such as IETF RFC 3550. Depacketize and / or demultiplex data collected for transmission or storage as a media stream according to the format). In such cases, the channel decoder (420) can parse syntax elements added as part of the media transport stream syntax. Alternatively, the channel decoder (420) separates the encoded video data collected for storage as a file (eg, according to a media container format such as ISO / IEC 14496-12). In such cases, the channel decoder (420) can parse syntax elements added as part of the media storage file syntax. Alternatively, and more generally, the channel decoder (420) can implement one or more media system demultiplexing protocols or transport protocols. In such cases, the channel decoder (420) can parse syntax elements added as part of the syntax of one or more protocols. The channel (410) or channel decoder (420) may also include, for example, FEC decoding and other elements (not shown) for analog signal demodulation.

十分な量のデータが受信されるまで、チャネルデコーダ(420)から出力される符号化データ(421)は、一時符号化データ領域(430)に記憶される。符号化データ(421)は、符号化フレーム(431)及びMMCO/RPS情報(432)を含む。符号化データ領域(430)内の符号化データ(421)は、エレメンタリ符号化ビデオビットストリームのシンタックスの一部として、1以上のピクチャの符号化データを含む。符号化データ領域(430)内の符号化データ(421)はまた、(例えば、1以上のSEIメッセージ又はVUIメッセージにおける1以上のパラメータとして、)符号化ビデオデータに関連するメディアメタデータを含み得る。   The coded data (421) output from the channel decoder (420) is stored in the temporary coded data area (430) until a sufficient amount of data is received. The coded data (421) includes a coded frame (431) and MMCO / RPS information (432). The encoded data (421) in the encoded data area (430) includes encoded data of one or more pictures as part of the syntax of the elementary encoded video bitstream. The encoded data (421) in the encoded data area (430) may also include media metadata associated with the encoded video data (eg, as one or more parameters in one or more SEI messages or VUI messages) .

一般に、符号化データ(421)がデコーダ(450)により使用されるまで、符号化データ領域(430)は、そのような符号化データ(421)を一時的に記憶する。その時点で、符号化フレーム(431)及びMMCO/RPS情報(432)の符号化データが、符号化データ領域(430)からデコーダ(450)に伝送される。復号が進むにつれ、新たな符号化データが、符号化データ領域(430)に追加され、符号化データ領域(430)に残っている最も古い符号化データが、デコーダ(450)に伝送される。   Generally, the coded data area (430) temporarily stores such coded data (421) until the coded data (421) is used by the decoder (450). At that time, the encoded data of the encoded frame (431) and the MMCO / RPS information (432) are transmitted from the encoded data area (430) to the decoder (450). As decoding proceeds, new encoded data is added to the encoded data area (430), and the oldest encoded data remaining in the encoded data area (430) is transmitted to the decoder (450).

デコーダ(450)は、符号化フレーム(431)を復号して、対応する復号フレーム(451)を生成する。必要に応じて、復号プロセスを実行するとき、デコーダ(450)は、インターフレーム予測のための参照フレームとして、1以上の以前に復号されたフレーム(469)を使用することができる。デコーダ(450)は、復号フレーム一時メモリ記憶領域(460)から、そのような以前に復号されたフレーム(469)を読み出す。一般に、デコーダ(450)は、エントロピ復号、イントラフレーム予測、動き補償インターフレーム予測、逆量子化、逆周波数変換、及びタイルのマージ等の復号タスクを実行する複数の復号モジュールを含む。デコーダ(450)により実行される正確なオペレーションは、圧縮フォーマットに応じて変わり得る。   The decoder (450) decodes the encoded frame (431) to generate a corresponding decoded frame (451). Optionally, when performing the decoding process, the decoder (450) can use one or more previously decoded frames (469) as a reference frame for inter-frame prediction. The decoder (450) reads such previously decoded frame (469) from the decoded frame temporary memory storage area (460). In general, the decoder (450) includes multiple decoding modules that perform decoding tasks such as entropy decoding, intra-frame prediction, motion compensated inter-frame prediction, inverse quantization, inverse frequency transform, and tile merging. The exact operation performed by the decoder (450) may vary depending on the compression format.

例えば、デコーダ(450)は、圧縮フレーム又は一連のフレームの符号化データを受信し、復号フレーム(451)を含む出力を生成する。デコーダ(450)において、バッファは、圧縮フレームの符号化データを受け入れ、適切な時間に、受け入れた符号化データをエントロピ復号部に利用可能にする。エントロピ復号部は、通常はエンコーダにおいて実行されたエントロピ符号化の逆を適用することにより、エントロピ符号化された量子化されたデータに加えて、エントロピ符号化されたサイド情報もエントロピ復号する。動き補償部は、再構成されているフレームのインター符号化ブロックの動き補償予測値を形成するために、動き情報を1以上の参照フレームに適用する。インターフレーム参照領域は、本明細書で説明するように、ブロックについての予測領域に対して反転されているものであり得る。イントラフレーム予測モジュールは、隣接する以前に再構成されたサンプル値から、現ブロックのサンプル値を空間的に予測することができる、又は、イントラBC予測に関して、フレーム内のイントラフレーム予測領域の以前に再構成されたサンプル値を使用して、現ブロックのサンプル値を予測することができる。イントラフレーム参照領域は、BV値により示され得る。この参照領域は、本明細書で説明するように、ブロックについての予測領域に対して反転されているものであり得る。デコーダ(450)はまた、予測残差値を再構成する。逆量子化部は、エントロピ復号されたデータを逆量子化する。例えば、デコーダ(450)は、ビットストリームにおけるシンタックス要素に基づいて、ピクチャ、タイル、スライス、及び/又はビデオの他の部分のためのQPの値を設定し、それに従って変換係数を逆量子化する。逆周波数変換部は、量子化された周波数領域データを空間領域データに変換する。インターフレーム予測ブロックに関して、デコーダ(450)は、再構成された予測残差値を動き補償予測値と結合する。デコーダ(450)は、同様に、予測残差値を、イントラ予測からの予測値と結合することができる。復号フレーム(451)内のブロック境界行及び/又はブロック境界列にわたる不連続さを平滑化するために、適応デブロッキングフィルタが、ビデオデコーダ(450)における動き補償ループ内に含まれる。代替的又は追加的に、他のフィルタリング(デリンギングフィルタリング、ALF、又はSAOフィルタリング等;図示せず)が、ループ内フィルタリングオペレーションとして、適用されてもよい。   For example, the decoder (450) receives encoded data of a compressed frame or series of frames and generates an output including a decoded frame (451). In the decoder (450), the buffer receives the encoded data of the compressed frame and makes the received encoded data available to the entropy decoding unit at the appropriate time. The entropy decoding unit entropy-decodes the entropy-coded side information in addition to the entropy-coded quantized data, usually by applying the inverse of the entropy coding performed in the encoder. The motion compensation unit applies motion information to one or more reference frames to form a motion compensated prediction value of the inter-coding block of the frame being reconstructed. The inter frame reference region may be inverted relative to the prediction region for the block, as described herein. The intra frame prediction module may spatially predict the sample values of the current block from the adjacent previously reconstructed sample values, or, for intra BC prediction, prior to the intra frame prediction region in the frame The reconstructed sample values can be used to predict the sample values of the current block. Intra-frame reference regions may be indicated by BV values. This reference area may be inverted relative to the prediction area for the block, as described herein. The decoder (450) also reconstructs prediction residual values. The inverse quantization unit inversely quantizes entropy-decoded data. For example, the decoder (450) sets QP values for pictures, tiles, slices, and / or other parts of the video based on syntax elements in the bitstream and dequantizes the transform coefficients accordingly Do. The inverse frequency transform unit transforms the quantized frequency domain data into space domain data. For inter-frame prediction blocks, the decoder (450) combines the reconstructed prediction residual value with the motion compensated prediction value. The decoder (450) may similarly combine prediction residual values with predictions from intra prediction. An adaptive deblocking filter is included in the motion compensation loop at the video decoder (450) to smooth discontinuities across block boundary rows and / or block boundary columns in the decoded frame (451). Alternatively or additionally, other filtering (such as deringing filtering, ALF or SAO filtering; not shown) may be applied as an in-loop filtering operation.

復号フレーム一時メモリ記憶領域(460)は、複数のフレームバッファ記憶領域(461、462、...、46n)を含む。復号フレーム記憶領域(460)は、復号ピクチャバッファの一例である。デコーダ(450)は、MMCO/RPS情報(432)を使用して、復号フレーム(451)を記憶することができるフレームバッファ(461、462等)を識別する。デコーダ(450)は、そのフレームバッファに復号フレーム(451)を記憶する。   The decoded frame temporary memory storage area (460) includes a plurality of frame buffer storage areas (461, 462, ..., 46n). The decoded frame storage area (460) is an example of a decoded picture buffer. The decoder (450) uses MMCO / RPS information (432) to identify frame buffers (461, 462, etc.) that can store the decoded frame (451). The decoder (450) stores the decoded frame (451) in its frame buffer.

出力シーケンサ(480)は、出力順で生成される次のフレームが復号フレーム記憶領域(460)内で利用可能になるときを識別する。出力順で生成される次のフレーム(481)が、復号フレーム記憶領域(460)内で利用可能になったとき、そのフレームが、出力シーケンサ(480)により読み出され、出力先(490)(例えば、ディスプレイ)に出力される。一般に、復号フレーム記憶領域(460)から出力シーケンサ(480)によりフレームが出力される順番は、デコーダ(450)によりフレームが復号される順番とは異なり得る。   The output sequencer (480) identifies when the next frame generated in output order will be available in the decoded frame storage (460). When the next frame (481) generated in output order becomes available in the decoded frame storage area (460), that frame is read by the output sequencer (480), and the output destination (490) ( For example, it is output to a display). In general, the order in which frames are output from the decoded frame storage area (460) by the output sequencer (480) may be different from the order in which frames are decoded by the decoder (450).

V.例示的なビデオエンコーダ
図5a及び図5bは、いくつかの説明する実施形態を協働して実装することができる一般化されたビデオエンコーダ(500)のブロック図である。エンコーダ(500)は、現ピクチャを含む一連のビデオピクチャを、入力ビデオ信号(505)として受信し、符号化ビデオビットストリーム(595)内の符号化データを、出力として生成する。
V. Exemplary Video Encoders FIGS. 5a and 5b are block diagrams of generalized video encoders (500) that may be implemented cooperatively with some described embodiments. The encoder (500) receives a series of video pictures, including the current picture, as an input video signal (505) and produces as output an encoded data in an encoded video bitstream (595).

エンコーダ(500)は、ブロックベースであり、実装に依存するブロックフォーマットを使用する。ブロックは、例えば、予測段階、周波数変換段階、及び/又はエントロピ符号化段階において等の様々な段階において、さらに細分割され得る。例えば、ピクチャは、64×64ブロック、32×32ブロック、又は16×16ブロックに分割され得、今度は、それらのブロックが、符号化及び復号のために、サンプル値のより小さなブロックに分割され得る。H.265/HEVC規格のための符号化の実装において、エンコーダは、ピクチャを、CTU(CTB)、CU(CB)、PU(PB)、及びTU(TB)に分割する。   The encoder (500) is block based and uses an implementation dependent block format. The blocks may be further subdivided at various stages, such as, for example, in the prediction stage, the frequency transformation stage, and / or the entropy coding stage. For example, pictures may be divided into 64 × 64 blocks, 32 × 32 blocks, or 16 × 16 blocks, which in turn are divided into smaller blocks of sample values for encoding and decoding. obtain. H. In the coding implementation for the H.265 / HEVC standard, the encoder divides the picture into CTU (CTB), CU (CB), PU (PB), and TU (TB).

エンコーダ(500)は、イントラピクチャ符号化及び/又はインターピクチャ符号化を用いて、ピクチャを圧縮する。エンコーダ(500)のコンポーネントの多くが、イントラピクチャ符号化及びインターピクチャ符号化の両方のために使用される。これらのコンポーネントにより実行される正確なオペレーションは、圧縮される情報のタイプに応じて変わり得る。   The encoder (500) compresses the picture using intra picture coding and / or inter picture coding. Many of the components of the encoder (500) are used for both intra-picture coding and inter-picture coding. The exact operations performed by these components may vary depending on the type of information being compressed.

タイル化モジュール(510)は、任意的に、ピクチャを、同じサイズ又は異なるサイズの複数のタイルに分割する。例えば、タイル化モジュール(510)は、ピクチャ境界を用いてピクチャ内のタイルの水平境界及び垂直境界を規定するタイル行及びタイル列に沿って、ピクチャを分割する。ここで、各タイルは矩形領域である。H.265/HEVC実装において、エンコーダ(500)は、ピクチャを1以上のスライスに分割する。ここで、各スライスは、1以上のスライスセグメントを含む。   The tiling module (510) optionally divides the picture into multiple tiles of the same or different sizes. For example, the tiling module (510) divides the picture along tile rows and tile columns that use the picture boundaries to define the horizontal and vertical boundaries of the tiles in the picture. Here, each tile is a rectangular area. H. In the H.265 / HEVC implementation, the encoder (500) divides the picture into one or more slices. Here, each slice includes one or more slice segments.

一般符号化制御部(520)は、入力ビデオ信号(505)のピクチャに加えて、エンコーダ(500)の様々なモジュールからのフィードバック(図示せず)を受信する。概して、一般符号化制御部(520)は、符号化中に符号化パラメータを設定及び変更するために、他のモジュール(タイル化モジュール(510)、変換部/スケーリング部/量子化部(530)、スケーリング部/逆変換部(535)、イントラピクチャ推定部(540)、動き推定部(550)、及びイントラ/インタースイッチ等)に制御信号(図示せず)を供給する。詳細には、一般符号化制御部(520)は、符号化中に、イントラBC予測の態様(例えば、スキップモード、ブロック反転)を用いるかどうか及びイントラBC予測の態様(例えば、スキップモード、ブロック反転)をどのように用いるかを決定することができる。一般符号化制御部(520)はまた、例えば、レート歪み分析を実行して、符号化中に中間結果を評価することができる。一般符号化制御部(520)は、符号化中になされた決定を示す一般制御データ(522)を生成するので、対応するデコーダは、整合する決定を行うことができる。一般制御データ(522)は、ヘッダフォーマット化部/エントロピ符号化部(590)に提供される。   The general coding control (520) receives feedback (not shown) from various modules of the encoder (500) in addition to the pictures of the input video signal (505). In general, the general coding control unit (520) sets other modules (tiling module (510), transform unit / scaling unit / quantization unit (530) to set and change coding parameters during coding. , Supplies a control signal (not shown) to the scaling / inverse transform unit (535), the intra picture estimation unit (540), the motion estimation unit (550), the intra / inter switch, and the like. Specifically, whether the general coding control unit (520) uses an aspect (for example, skip mode, block inversion) of intra BC prediction during encoding and an aspect (for example, skip mode, block) for intra BC prediction It can be determined how to use inversion). The general coding control (520) may also perform, for example, rate distortion analysis to evaluate intermediate results during coding. The general coding control unit (520) generates general control data (522) indicating the decisions made during the coding, so that the corresponding decoder can make a matching decision. The general control data (522) is provided to the header formatter / entropy encoder (590).

現ピクチャが、インターピクチャ予測を用いて予測される場合、動き推定部(550)は、1以上の参照ピクチャに対する、入力ビデオ信号(505)の現ピクチャ内のサンプル値のブロックの動きを推定する。動き推定部(550)は、以下で説明するように、インターピクチャ符号化ブロックについての所与の参照領域を反転することについてのオプションを評価することができる。復号ピクチャバッファ(570)は、参照ピクチャとして使用するために、1以上の以前に再構成された符号化ピクチャをバッファする。複数の参照ピクチャが使用される場合、複数の参照ピクチャは、異なる時間的方向からのものであってもよいし、同じ時間的方向からのものであってもよい。動き推定部(550)は、サイド情報として、MVデータ等の動きデータ(552)、マージモードインデックス値、参照ピクチャ選択データ、及びブロック反転が用いられているか否かを生成する。動きデータ(552)は、ヘッダフォーマット化部/エントロピ符号化部(590)及び動き補償部(555)に提供される。   If the current picture is predicted using inter-picture prediction, the motion estimator (550) estimates the motion of blocks of sample values in the current picture of the input video signal (505) relative to one or more reference pictures. . The motion estimator (550) may evaluate options for inverting a given reference region for inter-picture coded blocks, as described below. The decoded picture buffer (570) buffers one or more previously reconstructed coded pictures for use as reference pictures. When multiple reference pictures are used, the multiple reference pictures may be from different temporal directions or from the same temporal direction. The motion estimation unit (550) generates, as side information, motion data (552) such as MV data, a merge mode index value, reference picture selection data, and whether or not block inversion is used. The motion data (552) is provided to a header formatter / entropy encoder (590) and a motion compensator (555).

動き補償部(555)は、復号ピクチャバッファ(570)からの1以上の再構成された参照ピクチャに、MVを適用する。動き補償部(555)は、現ピクチャのための動き補償予測を生成する。ブロック反転が用いられる場合、動き補償部(555)は、以下で説明するように、参照領域に対する(現ブロックについての)予測領域についての反転を考慮し得る。   The motion compensation unit (555) applies the MV to one or more reconstructed reference pictures from the decoded picture buffer (570). The motion compensation unit (555) generates motion compensated prediction for the current picture. If block inversion is used, the motion compensation unit (555) may consider the inversion for the prediction area (for the current block) relative to the reference area, as described below.

エンコーダ(500)内の分離パス(separate path)において、イントラピクチャ推定部(540)は、入力ビデオ信号(505)の現ピクチャのサンプル値のブロックのためのイントラピクチャ予測をどのように実行するかを決定する。現ピクチャは、イントラピクチャ符号化を用いて、全体又は一部が符号化され得る。イントラ空間予測に関して、イントラピクチャ推定部(540)は、現ピクチャの再構成(538)の値を使用して、現ピクチャの隣接する以前に再構成されたサンプル値から、現ピクチャ内の現ブロックのサンプル値をどのように空間的に予測するかを決定する。あるいは、BV値を使用するイントラBC予測に関して、イントラピクチャ推定部(540)は、現ピクチャ内の異なる候補参照領域への、現ブロックのサンプル値の変位を推定する。候補参照領域は、再構成されたサンプル値、又は、BV推定のためのいくつかの実装においては、入力ビデオからのオリジナルのサンプル値を含み得る。イントラピクチャ推定値(540)は、以下で説明するように、それぞれの候補参照領域に対する(現ブロックについての)イントラBC予測領域の反転についての異なるオプションを評価することができる。   In the separate path within the encoder (500), how the intra picture estimator (540) performs intra picture prediction for the block of sample values of the current picture of the input video signal (505) Decide. The current picture may be encoded in whole or in part using intra-picture coding. For intra-spatial prediction, the intra-picture estimator (540) uses the values of the current picture's reconstruction (538) to determine the current block in the current picture from adjacent previously reconstructed sample values of the current picture. Determine how to predict spatially the sample values of. Alternatively, for intra BC prediction using BV values, the intra picture estimation unit (540) estimates displacement of sample values of the current block to different candidate reference regions in the current picture. The candidate reference region may include reconstructed sample values or, in some implementations for BV estimation, original sample values from the input video. The intra picture estimates (540) may evaluate different options for inversion of the intra BC prediction area (for the current block) for each candidate reference area, as described below.

イントラピクチャ推定部(540)は、サイド情報として、イントラ予測が空間予測を使用するかイントラBC予測を使用するかを示す情報、予測モード方向(イントラ空間予測に関して)、BV値(イントラBC予測に関して)、及びブロック反転が用いられているかどうか(イントラBC予測に関して)等のイントラ予測データ(542)を生成する。イントラ予測データ(542)は、ヘッダフォーマット化部/エントロピ符号化部(590)及びイントラピクチャ予測部(545)に提供される。   The intra picture estimation unit (540), as side information, information indicating whether intra prediction uses spatial prediction or intra BC prediction, prediction mode direction (for intra spatial prediction), BV value (for intra BC prediction And intra prediction data (542) such as whether or not block inversion is used (for intra BC prediction). The intra prediction data (542) is provided to the header formatting unit / entropy coding unit (590) and the intra picture prediction unit (545).

イントラピクチャ予測部(545)は、イントラ予測データ(542)に従って、現ピクチャの隣接する以前に再構成されたサンプル値から、現ピクチャの現ブロックのサンプル値を空間的に予測する。あるいは、イントラBC予測に関して、イントラピクチャ予測部(545)は、現ブロックのBV値により示されるイントラフレーム予測参照領域の以前に再構成されたサンプル値を使用して、現ブロックのサンプル値を予測する。イントラBC予測に関して、イントラピクチャ予測部(545)は、以下で説明するように、参照領域に対する(現ブロックについての)イントラBC予測領域についての反転を考慮し得る。いくつかの場合において、BV値は、BV予測子(予測されたBV値)であり得る。他の場合において、BV値は、その予測されたBV値とは異なり得る。ピクチャについてのクロマデータが、ルマデータと同じ解像度を有する場合(例えば、フォーマットが、YUV4:4:4フォーマット又はRGB4:4:4フォーマットである場合)、クロマブロックについて適用されるBV値は、ルマブロックについて適用されるBV値と同じであり得る。一方、ピクチャについてのクロマデータが、ルマデータより低い解像度を有する場合(例えば、フォーマットが、YUV4:2:0フォーマットである場合)、クロマブロックについて適用されるBV値は、低減され、可能であれば、クロマ解像度における差を調整するために丸められ得る(例えば、BV値の垂直成分及び水平成分を2で除算して、それらを整数値に切り捨てる又は丸めることにより)。   The intra picture prediction unit (545) spatially predicts the sample values of the current block of the current picture from the adjacent previously reconstructed sample values of the current picture according to the intra prediction data (542). Alternatively, for intra BC prediction, the intra picture predictor (545) predicts sample values of the current block using previously reconstructed sample values of the intra frame prediction reference region indicated by the BV value of the current block. Do. For intra BC prediction, the intra picture predictor (545) may consider the inversion for the intra BC prediction region (for the current block) relative to the reference region, as described below. In some cases, the BV value may be a BV predictor (predicted BV value). In other cases, the BV value may be different than its predicted BV value. If the chroma data for the picture has the same resolution as the luma data (e.g. if the format is YUV 4: 4: 4 format or RGB 4: 4: 4 format) then the BV value applied for the chroma block is luma block May be the same as the BV value applied for On the other hand, if the chroma data for the picture has a lower resolution than the luma data (e.g. if the format is YUV 4: 2: 0 format), then the BV value applied for the chroma block is reduced, if possible , Can be rounded to adjust for differences in chroma resolution (eg, by dividing the vertical and horizontal components of the BV value by 2 and truncating or rounding them to integer values).

イントラ/インタースイッチは、所与のブロックのための予測(558)が、動き補償予測であるか又はイントラピクチャ予測であるかを選択する。非スキップモードブロックに関して、予測(558)のブロックと、入力ビデオ信号(505)のオリジナルの現ピクチャの対応する部分と、の間の差(あれば)が、残差(518)の値を提供する。非スキップモードブロックに関して、現ピクチャの再構成中に、再構成された残差値が、予測(558)と結合されて、ビデオ信号(505)からのオリジナルのコンテンツのおおよその又は正確な再構成(538)が生成される。(損失圧縮(lossy compression)では、いくつかの情報が、ビデオ信号(505)から失われる。)   The intra / inter switch selects whether the prediction (558) for a given block is motion compensated prediction or intra picture prediction. For non-skip mode blocks, the difference (if any) between the block of prediction (558) and the corresponding portion of the original current picture of the input video signal (505) provides the value of the residual (518) Do. For non-skip mode blocks, during reconstruction of the current picture, reconstructed residual values are combined with the prediction (558) to approximate or accurate reconstruction of the original content from the video signal (505) (538) is generated. (With lossy compression, some information is lost from the video signal (505).)

変換部/スケーリング部/量子化部(530)において、周波数変換部は、空間領域ビデオ情報を周波数領域(すなわち、スペクトル変換)データに変換する。ブロックベースのビデオ符号化に関して、周波数変換部は、離散コサイン変換(「DCT」)、その整数近似、又は別のタイプの順ブロック変換(例えば、離散サイン変換又はその整数近似)を予測残差データ(又は、予測(558)がヌルの場合にはサンプル値データ)のブロックに適用して、周波数変換係数のブロックを生成する。エンコーダ(500)はまた、そのような変換ステップがスキップされることを指示することができる。スケーリング部/量子化部は、変換係数をスケーリングして量子化する。例えば、量子化部は、フレームごとに、タイルごとに、スライスごとに、ブロックごとに、周波数固有の単位で、又は他の単位で変わる量子化ステップサイズで、デッドゾーン(dead-zone)スカラ量子化を周波数領域データに適用する。量子化された変換係数データ(532)は、ヘッダフォーマット化部/エントロピ符号化部(590)に提供される。   In the transform / scaling / quantization unit (530), the frequency transform unit transforms the spatial domain video information into frequency domain (ie spectral transform) data. For block-based video coding, the frequency transform unit predicts discrete cosine transform ("DCT"), its integer approximation, or another type of forward block transform (eg, discrete sine transform or its integer approximation) to residual data Apply to the block (or sample value data if the prediction 558 is null) to generate a block of frequency transform coefficients. The encoder (500) may also indicate that such a conversion step is skipped. The scaling unit / quantization unit scales and quantizes the transform coefficient. For example, the quantization unit may be a dead-zone scalar quantum with a quantization step size that varies on a frame basis, a tile basis, a slice basis, a block basis, a frequency specific unit, or another unit. Applies to frequency domain data. The quantized transform coefficient data (532) is provided to the header formatter / entropy encoder (590).

スケーリング部/逆変換部(535)において、スケーリング部/逆量子化部は、量子化された変換係数に対して、逆スケーリング及び逆量子化を実行する。逆周波数変換部は、逆周波数変換を実行して、再構成された予測残差値又はサンプル値のブロックを生成する。非スキップモードブロックに関して、エンコーダ(500)は、再構成された残差値を、予測(558)の値(例えば、動き補償予測値、イントラピクチャ予測値)と結合して、再構成(538)を生成する。スキップモードブロックに関して、エンコーダ(500)は、再構成(538)として、予測(558)の値を使用する。   In the scaling unit / inverse transform unit (535), the scaling unit / inverse quantization unit performs inverse scaling and inverse quantization on the quantized transform coefficients. The inverse frequency transform performs inverse frequency transformation to generate a block of reconstructed prediction residual values or sample values. For non-skip mode blocks, the encoder (500) combines the reconstructed residual values with the values of the prediction (558) (eg, motion compensated prediction values, intra picture prediction values) to reconstruct Generate For the skip mode block, the encoder (500) uses the value of the prediction (558) as the reconstruction (538).

イントラピクチャ予測に関して、再構成(538)の値は、イントラピクチャ推定部(540)及びイントラピクチャ予測部(545)にフィードバックされ得る。また、再構成(538)の値は、後続ピクチャの動き補償予測のためにも使用され得る。再構成(538)の値は、さらにフィルタリングされ得る。フィルタリング制御部(560)は、ビデオ信号(505)の所与のピクチャについて、再構成(538)の値に対して、デブロックフィルタリング及びSAOフィルタリングをどのように実行するかを決定する。フィルタリング制御部(560)は、フィルタリング制御データ(562)を生成する。フィルタリング制御データ(562)は、ヘッダフォーマット化部/エントロピ符号化部(590)及びマージ部/1以上のフィルタ(565)に提供される。   For intra-picture prediction, the values of the reconstruction (538) may be fed back to the intra-picture estimator (540) and the intra-picture predictor (545). Also, the values of the reconstruction (538) may be used for motion compensated prediction of subsequent pictures. The values of reconstruction (538) may be further filtered. A filtering control (560) determines how to perform deblock filtering and SAO filtering on the value of reconstruction (538) for a given picture of the video signal (505). A filtering control unit (560) generates filtering control data (562). The filtering control data (562) is provided to the header formatter / entropy encoder (590) and the merge / one or more filters (565).

マージ部/1以上のフィルタ(565)において、エンコーダ(500)は、異なるタイルからのコンテンツを、ピクチャの再構成バージョンにマージする。エンコーダ(500)は、フレーム内の境界にわたる不連続さを適応的に平滑化するために、フィルタリング制御データ(562)に従って、デブロックフィルタリング及びSAOフィルタリングを選択的に実行する。代替的又は追加的に、他のフィルタリング(デリンギングフィルタリング又はALF等;図示せず)が、適用されてもよい。タイル境界は、エンコーダ(500)の設定に応じて、選択的にフィルタリングされ得る又はフィルタリングされず、エンコーダ(500)は、そのようなフィルタリングが適用されたか否かを示すシンタックスを、符号化ビットストリーム内に提供することができる。復号ピクチャバッファ(570)は、後続の動き補償予測において使用するために、再構成された現ピクチャをバッファする。   In the merge section / one or more filters (565), the encoder (500) merges content from different tiles into a reconstructed version of the picture. The encoder (500) selectively performs deblock filtering and SAO filtering according to the filtering control data (562) to adaptively smooth discontinuities across boundaries in a frame. Alternatively or additionally, other filtering (such as deringing filtering or ALF; not shown) may be applied. The tile boundaries may or may not be selectively filtered depending on the settings of the encoder (500), and the encoder (500) may code a syntax indicating whether such filtering has been applied or not It can be provided in the stream. The decoded picture buffer (570) buffers the reconstructed current picture for use in subsequent motion compensated prediction.

ヘッダフォーマット化部/エントロピ符号化部(590)は、一般制御データ(522)、量子化された変換係数データ(532)、イントラ予測データ(542)、動きデータ(552)、及びフィルタリング制御データ(562)をフォーマット化及び/又はエントロピ符号化する。イントラ予測データ(542)に関して、ヘッダフォーマット化部/エントロピ符号化部(590)は、BV予測子インデックス値を選択してエントロピ符号化することができる(イントラBC予測について)。ヘッダフォーマット化部/エントロピ符号化部(590)はまた、イントラBC予測(又は、動き補償)についてブロック反転が用いられているか否かを示すシンタックス要素をエントロピ符号化することができる。いくつかの場合において、ヘッダフォーマット化部/エントロピ符号化部(590)はまた、BV値のBV差分(BV値についてのBV予測子に対するBV差分)を決定し、次いで、例えば、コンテキスト適応バイナリ算術符号化を用いて、BV差分をエントロピ符号化する。詳細には、スキップモードイントラBC予測ブロックに関して、BV差分がシグナリングされる。   The header formatting unit / entropy coding unit (590) includes general control data (522), quantized transform coefficient data (532), intra prediction data (542), motion data (552), and filtering control data ( Format and / or entropy encode 562). For intra prediction data (542), the header formatter / entropy encoder (590) may select BV predictor index values and entropy encode (for intra BC prediction). The header formatting unit / entropy coding unit (590) can also entropy encode syntax elements indicating whether block inversion is used for intra BC prediction (or motion compensation). In some cases, the header formatter / entropy encoder (590) also determines the BV difference of the BV value (BV difference to the BV predictor for the BV value) and then, for example, context adaptive binary arithmetic The encoding is used to entropy encode the BV difference. Specifically, BV differences are signaled for the skip mode intra BC prediction block.

ヘッダフォーマット化部/エントロピ符号化部(590)は、符号化データを、符号化ビデオビットストリーム(595)内に提供する。符号化ビデオビットストリーム(595)のフォーマットは、H.265/HEVCフォーマットの変形又は拡張、Windows(登録商標) Media Videoフォーマット、VC−1フォーマット、MPEG−xフォーマット(例えば、MPEG−1、MPEG−2、又はMPEG−4)、H.26xフォーマット(例えば、H.261、H.262、H.263、H.264)、又は別のフォーマットであり得る。   The header formatter / entropy encoder (590) provides the encoded data in an encoded video bitstream (595). The format of the coded video bitstream (595) is H.264. H.265 / HEVC format variants or extensions, Windows® Media Video format, VC-1 format, MPEG-x format (eg, MPEG-1, MPEG-2, or MPEG-4), H.264, H.264, H.264, H.264, H.264, H.264, H.264, H.264, H.264, H.264, H.264, H.264, H.264, H.264, H.264, H.264, H.264, H.264, H.264, H.264, H. 26x format (e.g., H.261, H.262, H.263, H.264) or another format.

実装及び所望の圧縮のタイプに応じて、エンコーダのモジュールを追加してもよいし、省略してもよいし、複数のモジュールに分割してもよいし、他のモジュールと結合してもよいし、且つ/又は同様のモジュールと置換してもよい。代替実施形態において、異なるモジュール及び/又はモジュールの他の構成を有するエンコーダは、説明した技術のうちの1以上を実行する。エンコーダの特定の実施形態は、通常、エンコーダ(500)の変形又は補完バージョンを使用する。エンコーダ(500)内のモジュール間の示された関係は、エンコーダ内の情報の一般的な流れを示すものである。他の関係は、簡潔さのため示されていない。   Depending on the implementation and the type of compression desired, modules of the encoder may be added, omitted, split into multiple modules or combined with other modules And / or similar modules may be substituted. In alternative embodiments, encoders with different modules and / or other configurations of modules perform one or more of the described techniques. Certain embodiments of the encoder typically use a variation or complement version of the encoder (500). The illustrated relationships between modules in the encoder (500) are indicative of the general flow of information in the encoder. Other relationships are not shown for the sake of brevity.

VI.例示的なビデオデコーダ
図6は、いくつかの説明する実施形態を協働して実装することができる一般化されたデコーダ(600)のブロック図である。デコーダ(600)は、符号化ビデオビットストリーム(605)内の符号化データを受信し、再構成ビデオ(695)のためのピクチャを含む出力を生成する。符号化ビデオビットストリーム(605)のフォーマットは、H.265/HEVCフォーマットの変形又は拡張、Windows(登録商標) Media Videoフォーマット、VC−1フォーマット、MPEG−xフォーマット(例えば、MPEG−1、MPEG−2、又はMPEG−4)、H.26xフォーマット(例えば、H.261、H.262、H.263、H.264)、又は別のフォーマットであり得る。
VI. Exemplary Video Decoder FIG. 6 is a block diagram of a generalized decoder (600) that may be implemented cooperatively with some described embodiments. The decoder (600) receives the encoded data in the encoded video bitstream (605) and generates an output including pictures for the reconstructed video (695). The format of the encoded video bitstream (605) is H.264. H.265 / HEVC format variants or extensions, Windows® Media Video format, VC-1 format, MPEG-x format (eg, MPEG-1, MPEG-2, or MPEG-4), H.264, H.264, H.264, H.264, H.264, H.264, H.264, H.264, H.264, H.264, H.264, H.264, H.264, H.264, H.264, H.264, H.264, H.264, H.264, H.264, H. 26x format (e.g., H.261, H.262, H.263, H.264) or another format.

デコーダ(600)は、ブロックベースであり、実装に依存するブロックフォーマットを使用する。ブロックは、様々な段階において、さらに細分割され得る。例えば、ピクチャは、64×64ブロック、32×32ブロック、又は16×16ブロックに分割され得、今度は、それらのブロックが、サンプル値のより小さなブロックに分割され得る。H.265/HEVC規格のための復号の実装において、ピクチャは、CTU(CTB)、CU(CB)、PU(PB)、及びTU(TB)に分割される。   The decoder (600) is block based and uses an implementation dependent block format. The blocks may be further subdivided at various stages. For example, a picture may be divided into 64x64 blocks, 32x32 blocks, or 16x16 blocks, which in turn may be divided into smaller blocks of sample values. H. In the decoding implementation for the H.265 / HEVC standard, pictures are divided into CTU (CTB), CU (CB), PU (PB), and TU (TB).

デコーダ(600)は、イントラピクチャ復号及び/又はインターピクチャ復号を用いて、ピクチャを伸張する。デコーダ(600)のコンポーネントの多くが、イントラピクチャ復号及びインターピクチャ復号の両方のために使用される。これらのコンポーネントにより実行される正確なオペレーションは、伸張される情報のタイプに応じて変わり得る。   The decoder (600) decompresses the picture using intra picture decoding and / or inter picture decoding. Many of the components of the decoder (600) are used for both intra-picture decoding and inter-picture decoding. The exact operations performed by these components may vary depending on the type of information being decompressed.

バッファは、符号化ビデオビットストリーム(605)内の符号化データを受け入れ、受け入れた符号化データを解析部/エントロピ復号部(610)に利用可能にする。解析部/エントロピ復号部(610)は、通常はエンコーダ(500)において実行されたエントロピ符号化の逆(例えば、コンテキスト適応バイナリ算術復号)を適用することにより、エントロピ符号化されたデータをエントロピ復号する。解析及びエントロピ復号の結果として、解析部/エントロピ復号部(610)は、一般制御データ(622)、量子化された変換係数データ(632)、イントラ予測データ(642)、動きデータ(652)、及びフィルタリング制御データ(662)を生成する。イントラ予測データ(642)に関して、解析部/エントロピ復号部(610)は、BV予測子インデックス値をエントロピ復号する(イントラBC予測について)。解析部/エントロピ復号部(610)はまた、イントラBC予測(又は、動き補償)についてブロック反転が用いられているか否かを示すシンタックス要素をエントロピ復号する。いくつかの場合において、解析部/エントロピ復号部(610)はまた、(例えば、コンテキスト適応バイナリ算術復号を用いて)BV値のBV差分をエントロピ復号し、次いで、BV差分を、対応するBV予測子と結合して、BV値を再構成する。詳細には、スキップモードイントラBC予測ブロックに関して、BV差分が、ビットストリームから解析され、(例えば、BV予測子インデックス値により示される)BV予測子と結合されて、BV値が再構成される。   The buffer receives the encoded data in the encoded video bitstream (605) and makes the received encoded data available to the analyzer / entropy decoder (610). The analysis unit / entropy decoding unit (610) performs entropy decoding on the entropy-coded data by applying the inverse (eg, context adaptive binary arithmetic decoding) of the entropy coding usually performed in the encoder (500) Do. As a result of the analysis and entropy decoding, the analysis unit / entropy decoding unit (610) comprises general control data (622), quantized transform coefficient data (632), intra prediction data (642), motion data (652), And generate filtering control data (662). For intra prediction data (642), the analysis unit / entropy decoding unit (610) entropy decodes the BV predictor index value (for intra BC prediction). The analysis unit / entropy decoding unit (610) also entropy decodes syntax elements indicating whether block inversion is used for intra BC prediction (or motion compensation). In some cases, the parser / entropy decoder (610) also entropy decodes the BV difference of the BV value (eg, using context adaptive binary arithmetic decoding), and then the BV difference to a corresponding BV prediction. Combine with the child to reconstruct the BV value. In particular, for skip mode intra BC prediction blocks, BV differences are analyzed from the bitstream and combined with a BV predictor (eg, indicated by BV predictor index values) to reconstruct BV values.

一般復号制御部(620)は、一般制御データ(622)を受信し、復号中に復号パラメータを設定及び変更するために、他のモジュール(スケーリング部/逆変換部(635)、イントラピクチャ予測部(645)、動き補償部(655)、及びイントラ/インタースイッチ等)に制御信号(図示せず)を供給する。   A general decoding control unit (620) receives general control data (622), and other modules (scaling unit / inverse conversion unit (635), intra picture prediction unit, in order to set and change decoding parameters during decoding (645), supplies a control signal (not shown) to the motion compensation unit (655) and the intra / inter switch etc.

現ピクチャが、インターピクチャ予測を用いて予測される場合、動き補償部(655)は、MVデータ等の動きデータ(652)、参照ピクチャ選択データ、マージモードインデックス値、及び(動き補償について)ブロック反転が用いられているか否かを示すシンタックス要素を受信する。動き補償部(655)は、復号ピクチャバッファ(670)からの1以上の再構成された参照ピクチャに、MVを適用する。ブロック反転が用いられている場合、動き補償部(655)は、以下で説明するように、参照領域に対する(現ブロックについての)予測領域についての反転を考慮し得る。動き補償部(655)は、現ピクチャ内のインター符号化ブロックのための動き補償予測を生成する。復号ピクチャバッファ(670)は、参照ピクチャとして使用するために、1以上の以前に再構成されたピクチャを記憶する。   If the current picture is predicted using inter-picture prediction, the motion compensation unit (655) is for motion data (652) such as MV data, reference picture selection data, merge mode index value, and (for motion compensation) blocks Receive a syntax element indicating whether inversion is used. The motion compensation unit (655) applies the MV to one or more reconstructed reference pictures from the decoded picture buffer (670). If block inversion is used, the motion compensation unit (655) may consider the inversion for the prediction area (for the current block) relative to the reference area, as described below. The motion compensation unit (655) generates motion compensated prediction for the inter coding block in the current picture. The decoded picture buffer (670) stores one or more previously reconstructed pictures for use as reference pictures.

デコーダ(600)内の分離パスにおいて、イントラピクチャ予測予測部(645)は、イントラ予測が空間予測を使用するかイントラBC予測を使用するかを示す情報、予測モード方向(イントラ空間予測に関して)、BV値(イントラBC予測に関して)、及びブロック反転が用いられているか否かを示すシンタックス要素(イントラBC予測に関して)等のイントラ予測データ(642)を受信する。イントラ空間予測に関して、イントラピクチャ予測部(645)は、現ピクチャの再構成(638)の値を使用して、予測モードデータに従って、現ピクチャの隣接する以前に再構成されたサンプル値から、現ピクチャの現ブロックのサンプル値を空間的に予測する。あるいは、BV値を使用するイントラBC予測に関して、イントラピクチャ予測部(645)は、現ブロックのBV値により示されるイントラフレーム予測参照領域の以前に再構成されたサンプル値を使用して、現ブロックのサンプル値を予測する。イントラBC予測に関して、イントラピクチャ予測部(645)は、以下で説明するように、参照領域に対する(現ブロックについての)イントラBC予測領域についての反転を考慮し得る。   In the separation path in the decoder (600), the intra picture prediction / prediction unit (645) is information indicating whether intra prediction uses spatial prediction or intra BC prediction, prediction mode direction (for intra spatial prediction), Intra prediction data (642) such as BV values (for intra BC prediction) and syntax elements (for intra BC prediction) indicating whether block inversion is used are received. For intra-spatial prediction, the intra-picture predictor (645) uses the values of the current picture's reconstruction (638) to generate current values from adjacent previously reconstructed sample values of the current picture according to prediction mode data. Spatially predict sample values of the current block of the picture. Alternatively, for intra BC prediction using BV values, the intra picture predictor (645) uses the previously reconstructed sample values of the intra frame prediction reference region indicated by the BV value of the current block to generate the current block. Predict sample values for For intra BC prediction, the intra picture predictor (645) may consider the inversion for the intra BC prediction region (for the current block) relative to the reference region, as described below.

イントラ/インタースイッチは、所与のブロックのための予測(658)が、動き補償予測であるか又はイントラピクチャ予測であるかを選択する。例えば、H.265/HEVCシンタックスに従うと、イントラ/インタースイッチは、イントラ予測CU及びインター予測CUを含み得るピクチャ内のCUについて符号化された1以上のシンタックス要素に基づいて制御され得る。非スキップモードブロックに関して、デコーダ(600)は、予測(658)を、再構成された残差値と結合して、ビデオ信号からのコンテンツの再構成(638)を生成する。スキップモードブロックに関して、デコーダ(600)は、再構成(638)として、予測(658)の値を使用する。   The intra / inter switch selects whether the prediction (658) for a given block is motion compensated prediction or intra picture prediction. For example, H. According to the 265 / HEVC syntax, intra / inter switches may be controlled based on one or more syntax elements encoded for CUs in a picture that may include intra prediction CUs and inter prediction CUs. For non-skip mode blocks, the decoder (600) combines the prediction (658) with the reconstructed residual values to generate a reconstruction (638) of content from the video signal. For skip mode blocks, the decoder (600) uses the value of the prediction (658) as the reconstruction (638).

非スキップモードブロックについて残差を再構成するために、スケーリング部/逆変換部(635)は、量子化された変換係数データ(632)を受信して処理する。スケーリング部/逆変換部(635)において、スケーリング部/逆量子化部は、量子化された変換係数に対して、逆スケーリング及び逆量子化を実行する。逆周波数変換部は、逆周波数変換を実行して、再構成された予測残差値又はサンプル値のブロックを生成する。例えば、逆周波数変換部は、逆ブロック変換を周波数変換係数に適用して、サンプル値データ又は予測残差データを生成する。逆周波数変換は、逆DCT、その整数近似、又は別のタイプの逆周波数変換(例えば、逆離散サイン変換又はその整数近似)であり得る。   In order to reconstruct the residuals for the non-skip mode block, the scaling / inverse transform unit (635) receives and processes the quantized transform coefficient data (632). In the scaling unit / inverse transform unit (635), the scaling unit / inverse quantization unit performs inverse scaling and inverse quantization on the quantized transform coefficients. The inverse frequency transform performs inverse frequency transformation to generate a block of reconstructed prediction residual values or sample values. For example, the inverse frequency transform unit applies inverse block transform to the frequency transform coefficients to generate sample value data or prediction residual data. The inverse frequency transform may be an inverse DCT, its integer approximation, or another type of inverse frequency transform (eg, an inverse discrete sine transform or its integer approximation).

イントラピクチャ予測に関して、再構成(638)の値は、イントラピクチャ予測部(645)にフィードバックされ得る。インターピクチャ予測に関して、再構成(638)の値は、さらにフィルタリングされ得る。マージ部/1以上のフィルタ(665)において、デコーダ(600)は、異なるタイルからのコンテンツを、ピクチャの再構成バージョンにマージする。デコーダ(600)は、フレーム内の境界にわたる不連続さを適応的に平滑化するために、フィルタリング制御データ(662)とフィルタ適応のためのルールとに従って、デブロックフィルタリング及びSAOフィルタリングを選択的に実行する。代替的又は追加的に、他のフィルタリング(デリンギングフィルタリング又はALF等;図示せず)が、適用されてもよい。タイル境界は、デコーダ(600)の設定又は符号化ビットストリームデータ内のシンタックスインジケーションに応じて、選択的にフィルタリングされ得る又はフィルタリングされない。復号ピクチャバッファ(670)は、後続の動き補償予測において使用するために、再構成された現ピクチャをバッファする。   For intra-picture prediction, the values of the reconstruction (638) may be fed back to the intra-picture predictor (645). For inter-picture prediction, the values of the reconstruction (638) may be further filtered. In the merge section / one or more filters (665), the decoder (600) merges content from different tiles into a reconstructed version of the picture. The decoder (600) selectively performs deblocking filtering and SAO filtering according to the filtering control data (662) and rules for filter adaptation to adaptively smooth discontinuities across boundaries in a frame. Run. Alternatively or additionally, other filtering (such as deringing filtering or ALF; not shown) may be applied. The tile boundaries may be selectively filtered or not filtered depending on the settings of the decoder (600) or syntax indications in the coded bit stream data. The decoded picture buffer (670) buffers the reconstructed current picture for use in subsequent motion compensated prediction.

デコーダ(600)はまた、後処理フィルタを含み得る。後処理フィルタ(608)は、デリンギングフィルタリング、適応ウィナーフィルタリング、フィルムグレイン再現フィルタリング(film-grain reproduction filtering)、SAOフィルタリング、又は別の種類のフィルタリングを含み得る。   The decoder (600) may also include a post-processing filter. Post-processing filters (608) may include deringing filtering, adaptive winner filtering, film-grain reproduction filtering, SAO filtering, or another type of filtering.

実装及び所望の伸張のタイプに応じて、デコーダのモジュールを追加してもよいし、省略してもよいし、複数のモジュールに分割してもよいし、他のモジュールと結合してもよいし、且つ/又は同様のモジュールと置換してもよい。代替実施形態において、異なるモジュール及び/又はモジュールの他の構成を有するデコーダは、説明した技術のうちの1以上を実行する。デコーダの特定の実施形態は、通常、デコーダ(600)の変形又は補完バージョンを使用する。デコーダ(600)内のモジュール間の示された関係は、デコーダ内の情報の一般的な流れを示すものである。他の関係は、簡潔さのため示されていない。   Depending on the implementation and the type of decompression desired, the modules of the decoder may be added, omitted, divided into several modules or combined with other modules And / or similar modules may be substituted. In alternative embodiments, decoders with different modules and / or other configurations of modules perform one or more of the described techniques. Particular embodiments of the decoder typically use a modified or complemented version of the decoder (600). The illustrated relationships between modules in the decoder (600) are indicative of the general flow of information in the decoder. Other relationships are not shown for the sake of brevity.

VII.イントラブロックコピー予測におけるイノベーション
このセクションは、イントラブロックコピー(「BC」)予測の特徴を提示している。例えば、これらの特徴のうちのいくつかは、イントラBC予測ブロックが、ブロックベクトル(「BV」)値により示され得る参照領域に対して反転されるブロック反転に関する。他の特徴は、現イントラBC予測ブロックが、シグナリングされたBV差分を使用するが残差データを有さないスキップモードのシグナリングに関する。多くの状況において、これらの特徴は、イントラBC予測ブロックの符号化効率を向上させる。
VII. Innovations in Intra-block Copy Prediction This section presents the features of intra-block copy ("BC") prediction. For example, some of these features relate to block inversion in which intra BC prediction blocks are inverted relative to a reference region that may be indicated by a block vector ("BV") value. Another feature relates to the signaling in skip mode, where the current intra BC prediction block uses signaled BV differences but has no residual data. In many situations, these features improve the coding efficiency of intra BC prediction blocks.

詳細には、説明するイノベーションは、スクリーンキャプチャコンテンツ等の所定の「人工的に」作成されたビデオコンテンツを符号化する際のレート歪み性能を向上させることができる。スクリーンキャプチャコンテンツは、一般に、繰り返し構造(例えば、グラフィックス、テキスト文字)を含み、これは、イントラBC予測が性能を向上させる機会を提供する。スクリーンキャプチャコンテンツは、通常、高クロマサンプリング解像度のフォーマット(例えば、YUV4:4:4又はRGB4:4:4)で符号化されるが、より低いクロマサンプリング解像度のフォーマット(例えば、YUV4:2:0)で符号化されてもよい。スクリーンキャプチャコンテンツの符号化/復号についての一般的なシナリオは、リモートデスクトップ会議、及び、自然ビデオ又は他の「混合コンテンツ」ビデオ上のグラフィカルオーバーレイの符号化/復号を含む。   In particular, the described innovation can improve rate-distortion performance in encoding predetermined "artificially" produced video content, such as screen capture content. Screen capture content generally includes recurring structures (eg, graphics, text characters), which provide the opportunity for intra BC prediction to improve performance. Screen capture content is usually encoded in a high chroma sampling resolution format (eg, YUV 4: 4: 4 or RGB 4: 4: 4), but a lower chroma sampling resolution format (eg, YUV 4: 2: 0) ) May be encoded. Common scenarios for encoding / decoding screen capture content include remote desktop conferencing and encoding / decoding of graphical overlays on natural video or other "mixed content" video.

A.イントラBC予測モード、BV値、及びBV予測−序論
イントラBC予測に関して、ピクチャ内の現ブロックのサンプル値は、同じピクチャ内のサンプル値を使用して予測される。BV値は、現ブロックから、予測のために使用されるサンプル値を含む、ピクチャ内の領域(「参照領域」)への変位を示す。参照領域は、現ブロックについて予測された値(「イントラBC予測領域」)を提供する。予測のために使用されるサンプル値は、以前に再構成されたサンプル値であり、したがって、符号化中にエンコーダにおいて利用可能であり、復号中にデコーダにおいて利用可能である。BV値は、ビットストリームに含められてシグナリングされ得、デコーダは、BV値を使用して、予測のために使用する、ピクチャ内の参照領域(デコーダにおいて再構成されている)を決定することができる。イントラBC予測は、ピクチャ内予測の一形態であり、ピクチャ内のブロックについてのイントラBC予測は、同じピクチャ内のサンプル値以外のいずれのサンプル値も使用しない。
A. Intra BC Prediction Mode, BV Values, and BV Prediction-Introduction For intra BC prediction, sample values of the current block in a picture are predicted using sample values in the same picture. The BV value indicates the displacement from the current block to the area in the picture ("reference area") that contains the sample values used for prediction. The reference area provides the value predicted for the current block ("intra BC prediction area"). The sample values used for prediction are the previously reconstructed sample values and thus are available at the encoder during encoding and at the decoder during decoding. The BV values may be included in the bitstream and signaled, and the decoder may use the BV values to determine a reference region (reconstructed at the decoder) in the picture to use for prediction. it can. Intra-BC prediction is a form of intra-picture prediction, and intra-BC prediction for blocks in a picture does not use any sample values other than sample values in the same picture.

図7aは、現フレーム(710)内の現ブロック(760)についてのイントラBC予測を示している。現ブロックは、符号化ユニット(「CU」)の符号化ブロック(「CB」)、予測ユニット(「PU」)の予測ブロック(「PB」)、変換ユニット(「TU」)の変換ブロック(「TB」)、又は他のブロックであり得る。現ブロックのサイズは、64×64、32×32、16×16、8×8、又は何らかの他のサイズであり得る。より一般的に、現ブロックのサイズは、m×nであり、ここで、m及びnの各々は、整数であり、m及びnは、互いに等しいこともあるし、異なる値を有することもある。代替的に、現ブロックは、何らかの他の形状(例えば、非矩形形状の符号化ビデオオブジェクトの領域)を有してもよい。   FIG. 7a shows intra BC prediction for the current block (760) in the current frame (710). The current block is a coding block ("CB") of a coding unit ("CU"), a prediction block ("PB") of a prediction unit ("PU"), and a conversion block (" It may be TB ") or other blocks. The size of the current block may be 64x64, 32x32, 16x16, 8x8, or some other size. More generally, the size of the current block is m × n, where each of m and n is an integer, and m and n may be equal to one another or may have different values. . Alternatively, the current block may have some other shape (eg, a region of a non-rectangular shaped encoded video object).

BV(761)は、現ブロック(760)から、予測のために使用されるサンプル値を含む、ピクチャ内の参照領域(780)への変位(又はオフセット)を示す。BV(761)により示される参照領域(780)は、時として、現ブロック(760)についての「照合ブロック」と呼ばれる。照合ブロックは、現ブロック(760)と同じであることもあるし、現ブロック(760)の近似物(approximation)であることもある。現ブロックの左上位置が、現フレームにおいて位置(x,y)にあると仮定し、参照領域の左上位置が、現フレームにおいて位置(x,y)にあると仮定する。BVは、変位(x−x,y−y)を示す。例えば、現ブロックの左上位置が、位置(256,128)にあり、参照領域の左上位置が、位置(176,104)にあるとすると、BV値は、(−80,−24)である。この例において、負の水平変位は、現ブロックの左の位置を示し、負の垂直変位は、現ブロックの上の位置を示す。 BV (761) indicates the displacement (or offset) from the current block (760) to the reference area (780) in the picture, including the sample values used for prediction. The reference area (780) indicated by BV (761) is sometimes referred to as the "match block" for the current block (760). The matching block may be the same as the current block (760) or may be an approximation of the current block (760). Assume that the upper left position of the current block is at position (x 0 , y 0 ) in the current frame, and that the upper left position of the reference area is at position (x 1 , y 1 ) in the current frame. BV indicates displaced (x 1 -x 0, y 1 -y 0). For example, if the upper left position of the current block is at position (256, 128) and the upper left position of the reference area is at position (176, 104), then the BV value is (−80, −24). In this example, a negative horizontal displacement indicates the left position of the current block and a negative vertical displacement indicates the position above the current block.

イントラBC予測は、BCオペレーションを用いて冗長性(フレーム内部の繰り返しパターン等)を利用することにより、符号化効率を向上させることができる。現ブロックのサンプル値は、現ブロックのサンプル値を直接符号化する代わりに、BV値を使用して表現される。現ブロックのサンプル値が、BV値により示される参照領域のサンプル値に正確には合致しない場合であっても、この差は、無視できるほどのもの(知覚的に気付かれないもの)であり得る。あるいは、この差が大きい場合には、この差は、現ブロックについてのオリジナルのサンプル値よりも効率的に圧縮することができる残差データとして符号化され得る。   Intra BC prediction can improve coding efficiency by using redundancy (such as a repetition pattern in a frame) using BC operation. The sample values of the current block are represented using BV values instead of directly encoding the sample values of the current block. Even if the sample values of the current block do not exactly match the sample values of the reference region indicated by the BV value, this difference may be negligible (perceptually unnoticeable) . Alternatively, if the difference is large, the difference may be encoded as residual data that may be compressed more efficiently than the original sample values for the current block.

集合的に、イントラBC予測を用いて符号化されるブロックのBV値は、多数のビットを消費し得る。BV値は、ビットレートを低減させるために、エントロピ符号化され得る。BV値についてのビットレートをさらに低減させるために、エンコーダは、BV値の予測を用いることができる。BV値は、しばしば、冗長性を示す。すなわち、所与のブロックのBV値は、しばしば、ピクチャ内の以前のブロックのBV値と類似している、又は、ピクチャ内の以前のブロックのBV値と同じである場合さえある。BV予測に関して、所与のブロックのBV値は、BV予測子を使用して予測される。次いで、所与のブロックのBV値とBV予測子との差(すなわちBV差分)が、エントロピ符号化される。通常、BV差分は、BV値及びBV予測子の水平成分及び垂直成分について算出される。BV予測が良好に機能する場合、BV差分は、効率的なエントロピ符号化をサポートする確率分布を有する。H.265/HEVC規格の1つのドラフトバージョン(JCTVC−P1005)において、BV予測子は、現CTU内の最後に符号化されたCUのBV値である(すなわち、現CTU内の前のイントラBC予測ブロックのBV値である)。代替的に、BV予測子は、(例えば、現ブロック周囲の隣接領域における)複数の利用可能なBV値の中から選択される。   Collectively, the BV values of blocks encoded using intra BC prediction may consume a large number of bits. The BV values may be entropy coded to reduce the bit rate. In order to further reduce the bit rate for BV values, the encoder can use prediction of BV values. BV values often indicate redundancy. That is, the BV value of a given block is often similar to the BV value of the previous block in the picture, or even the same as the BV value of the previous block in the picture. For BV prediction, the BV value of a given block is predicted using a BV predictor. Then, the difference between the BV value of a given block and the BV predictor (i.e., BV difference) is entropy encoded. Typically, BV differences are calculated for the horizontal and vertical components of BV values and BV predictors. If BV prediction works well, the BV difference has a probability distribution that supports efficient entropy coding. H. In one draft version of the H.265 / HEVC standard (JCTVC-P 1005), the BV predictor is the BV value of the last encoded CU in the current CTU (ie, the previous intra BC prediction block in the current CTU) BV value of Alternatively, the BV predictor is selected among a plurality of available BV values (e.g., in adjacent regions around the current block).

図7bは、フレーム内の現ブロック(760)のBV(761)及びフレーム(710)内の前のブロック(750)のBV(751)を示している。前のブロック(750)のBV(751)は、現ブロック(760)のBV(761)についてのBV予測子として使用される。例えば、BV値が(−80,−24)であり、BV予測子が(−80,−32)である場合、(0,8)というBV差分がエントロピ符号化される。   Figure 7b shows the BV (761) of the current block (760) in the frame and the BV (751) of the previous block (750) in the frame (710). The BV (751) of the previous block (750) is used as the BV predictor for the BV (761) of the current block (760). For example, when the BV value is (−80, −24) and the BV predictor is (−80, −32), the BV difference of (0, 8) is entropy encoded.

デコーダは、BV値のエントロピ符号化されたBV差分を受信してエントロピ復号する。デコーダはまた、BV値についてのBV予測子を決定する。デコーダにより決定されるBV予測子は、エンコーダにより決定されたBV予測子と同じである。デコーダは、BV予測子と復号されたBV差分とを結合して、BV値を再構成する。   The decoder receives and entropy decodes the entropy encoded BV difference of the BV value. The decoder also determines the BV predictor for the BV value. The BV predictor determined by the decoder is the same as the BV predictor determined by the encoder. The decoder combines the BV predictor with the decoded BV difference to reconstruct the BV value.

B.イントラBC予測におけるブロック反転
イントラBC予測の以前のアプローチにおいて、BV値により示される参照領域は、現ブロックについてのイントラBC予測領域を提供する。すなわち、参照領域のサンプル値が、現ブロックについてのイントラBC予測値である。
B. Block Inversion in Intra BC Prediction In the previous approach of intra BC prediction, the reference region indicated by the BV value provides the intra BC prediction region for the current block. That is, the sample value of the reference area is the intra BC predicted value for the current block.

本明細書に記載のイノベーションの一態様に従うと、現ブロックについてのイントラBC予測領域は、参照領域に対して反転される。現ブロックのBV値は、参照領域を示すことができる。現ブロックについてのイントラBC予測領域として参照領域を直接使用する代わりに、参照領域は、水平方向及び/又は垂直方向に反転され得る。特に、ブロック反転は、スクリーンキャプチャコンテンツのテキスト文字の符号化効率を向上させることができる。   According to one aspect of the innovation described herein, the intra BC prediction region for the current block is inverted relative to the reference region. The BV value of the current block can indicate the reference area. Instead of using the reference region directly as the intra BC prediction region for the current block, the reference region may be flipped horizontally and / or vertically. In particular, block inversion can improve the coding efficiency of text characters in screen capture content.

1.ブロック反転の例
図8a〜図8d、図9a〜図9c、及び図10a〜図10cは、イントラBC予測におけるブロック反転の例を示している。
1. Example of Block Inversions FIGS. 8a-8d, 9a-9c, and 10a-10c show examples of block inversion in intra BC prediction.

図8aは、現ピクチャ(810)内の現ブロック(860)を示している。現ブロック(860)は、図8bに詳細に示されるテキスト文字pを含む。現ブロック(860)のBV(861)は、現ピクチャ(810)内の参照領域(880)への変位を示す。参照領域(880)は、図8cに詳細に示されるテキスト文字dを含む。反転を用いないと、参照領域(880)は、現ブロック(860)についての良好でない予測子である。(現ブロック(860)と参照領域(880)とのサンプルごとの差が大きい。)   FIG. 8a shows the current block (860) in the current picture (810). The current block (860) contains the text letter p which is shown in detail in FIG. 8b. BV (861) of the current block (860) indicates the displacement to the reference area (880) in the current picture (810). The reference area (880) contains the text character d which is shown in detail in FIG. 8c. Without inversion, the reference area (880) is a bad predictor for the current block (860). (The sample-to-sample difference between the current block (860) and the reference area (880) is large.)

エンコーダ及びデコーダは、符号化効率を向上させるために、イントラBC予測においてブロック反転を用いることができる。例えば、参照領域(880)は、図8dの反転された参照領域(881)に示されるように、水平方向及び垂直方向に反転され得る。この例において、参照領域(880)が、水平方向及び/垂直方向に反転されると、反転された参照領域(881)は、現ブロック(860)に正確に合致する。(すなわち、このイントラBC予測領域は、現ブロック(860)に最適であり、残差は、ゼロ値のサンプルのみを含む。)   The encoder and decoder can use block inversion in intra BC prediction to improve coding efficiency. For example, the reference area (880) may be flipped horizontally and vertically as shown in the inverted reference area (881) of FIG. 8d. In this example, when the reference area (880) is inverted horizontally and / or vertically, the inverted reference area (881) exactly matches the current block (860). (Ie, this intra BC prediction region is optimal for the current block (860) and the residual contains only zero valued samples).

同様に、参照領域(880)は、水平方向に反転され得る。例えば、所与のブロックが、テキスト文字bを含む場合、参照領域(880)の水平方向の反転は、所与のブロックに正確に合致する反転された参照領域をもたらすことができる。あるいは、参照領域(880)は、垂直方向に反転され得る。例えば、所与のブロックが、テキスト文字qを含む場合、参照領域(880)の垂直方向の反転は、所与のブロックに正確に合致する反転された参照領域をもたらすことができる。   Similarly, the reference area (880) may be flipped horizontally. For example, if a given block contains the text letter b, horizontal flipping of the reference area (880) can result in a flipped reference area that exactly matches the given block. Alternatively, the reference area (880) may be flipped vertically. For example, if a given block contains text letter q, vertical flipping of the reference area (880) can result in a flipped reference area that exactly matches the given block.

ブロック反転を用いると、多くのフォントに関して、テキスト文字のセット(例えば、b、d、p、及びqのセット、又は、u及びnのセット)内のテキスト文字を含むブロックは、テキスト文字の同じセット内の別のテキスト文字を含む参照領域から、正確に予測され得る。他のフォントに関して、テキスト文字のセット内のテキスト文字を含むブロックは、テキスト文字の同じセット内の別のテキスト文字を含む参照領域から、おおよそ予測され得る。より一般的に、ブロック反転は、スクリーンコンテンツ内の様々なアルファベットのテキスト文字又は他のパターンの符号化効率を向上させることができる。   With block inversion, for many fonts, blocks containing text characters in a set of text characters (eg, a set of b, d, p and q or a set of u and n) are identical to the text characters. It can be accurately predicted from reference regions that contain other text characters in the set. For other fonts, blocks containing text characters in a set of text characters can be roughly predicted from a reference area containing another text character in the same set of text characters. More generally, block inversion can improve the coding efficiency of various alphabetic text characters or other patterns in screen content.

したがって、ブロック反転を用いると、テキスト文字(又は他のパターン)を含むブロックは、そのテキスト文字(又は他のパターン)がピクチャ内に以前に出現していない場合であっても、イントラBC予測され得、これは、ブロックを符号化する他の方法と比較して、符号化効率を向上させることができる。あるいは、テキスト文字(又は他のパターン)がピクチャ内に以前に出現していない場合であっても、イントラBC予測は、同じテキスト文字(又は他のパターン)を含む参照領域よりもこのブロックに近い反転された参照領域を使用することができる。より近い反転された領域についてのBV値は、より離れた参照領域についてのBV値よりもはるかに効率的に符号化され得る。例えば、テキスト文字qを含む現ブロックに関して、同じテキスト文字qを含む第1の候補参照領域が、BV値(−280,−24)により示され得るのに対し、異なるテキスト文字pを含む第2の候補参照領域が、BV値(−32,0)により示され得ると仮定する。第2の候補参照領域は、現ブロックに正確に合致するように、水平方向に反転され得る。第2の候補参照領域についてのBV値は、ブロック反転を示すシンタックス要素のシグナリングを考慮しても、第1の候補参照領域についてのBV値よりも効率的に(少ないビットで)符号化され得る。   Thus, with block inversion, blocks containing text characters (or other patterns) are intra BC predicted, even if the text characters (or other patterns) have not previously appeared in the picture. This can improve coding efficiency as compared to other methods of coding blocks. Alternatively, even if the text character (or other pattern) has not previously appeared in the picture, intra BC prediction is closer to this block than the reference region containing the same text character (or other pattern) An inverted reference region can be used. BV values for closer inverted regions may be encoded much more efficiently than BV values for more distant reference regions. For example, for the current block containing text letter q, the first candidate reference region containing the same text letter q may be indicated by the BV value (-280, -24) while the second containing the different text letter p It is assumed that the candidate reference region of can be indicated by the BV value (-32, 0). The second candidate reference area may be flipped horizontally to exactly match the current block. The BV values for the second candidate reference area are encoded (with fewer bits) more efficiently than the BV values for the first candidate reference area, even considering signaling of syntax elements indicating block inversion. obtain.

図9a〜図9cに示されるように、ブロック及び参照領域は、複数のテキスト文字を含むことがある。図9aは、テキスト文字群dlを含む現ブロック(960)を示している。現ブロック(960)のBV値は、同じピクチャ内の参照領域(980)への変位を示す。参照領域(980)は、図9bに詳細に示されるように、テキスト文字群lbを含む。反転を用いないと、参照領域(980)は、現ブロック(960)についての良好でない予測子である。しかしながら、参照領域(980)が、水平方向に反転された場合、反転された参照領域(981)は、現ブロック(960)に正確に合致する。   As shown in FIGS. 9a-9c, the block and reference areas may include multiple text characters. FIG. 9a shows the current block (960) containing text characters dl. The BV value of the current block (960) indicates the displacement to the reference area (980) in the same picture. The reference area (980) contains text character groups lb, as shown in detail in FIG. 9b. Without inversion, the reference region (980) is a poor predictor for the current block (960). However, if the reference area (980) is flipped horizontally, the inverted reference area (981) will exactly match the current block (960).

前述の例において、ブロック及び参照領域は、テキスト文字全体を含む。図10a〜図10cに示されるように、ブロック及び参照領域は、代わりに、テキスト文字、記号、又はシンボルの1以上の部分を含むことがある。図10aは、テキスト文字Lの部分を含む現ブロック(1060)を示している。現ブロック(1060)のBV値は、同じピクチャ内の参照領域(1080)への変位を示す。参照領域(1080)は、図10bに詳細に示されるように、テキスト文字Fの部分を含む。反転を用いないと、参照領域(1080)は、現ブロック(1060)についての良好でない予測子である。しかしながら、参照領域(1080)が、垂直方向に反転された場合、反転された参照領域(1081)は、現ブロック(1060)に正確に合致する。   In the above example, the block and reference area contain the entire text character. As shown in FIGS. 10a-10c, the blocks and reference regions may instead include text characters, symbols, or one or more portions of symbols. FIG. 10a shows the current block (1060) which contains a portion of the text letter L. The BV value of the current block (1060) indicates the displacement to the reference area (1080) in the same picture. The reference area (1080) comprises a portion of the text letter F, as shown in detail in FIG. 10b. Without inversion, the reference area (1080) is a poor predictor for the current block (1060). However, if the reference area (1080) is vertically inverted, then the inverted reference area (1081) exactly matches the current block (1060).

2.例示的な反転オペレーション
ブロック反転が、イントラBC予測において用いられる場合、ブロックについてのイントラBC予測領域は、ブロックについての参照領域に対して反転される。ブロック反転オペレーションは、実装に応じて、様々な形で実施され得る。
2. Exemplary Inversion Operation When block inversion is used in intra BC prediction, the intra BC prediction region for the block is inverted relative to the reference region for the block. The block inversion operation may be implemented in various ways, depending on the implementation.

ブロック反転オペレーションを実行する1つのアプローチに従うと、現ブロックについてのイントラBC予測領域を決定するとき、エンコーダ又はデコーダは、(a)参照領域を決定し、(b)参照領域を反転し、次いで、(c)反転された参照領域のそれぞれの位置におけるサンプル値を、イントラBC予測領域のそれらそれぞれの位置におけるサンプル値に割り当てる。例えば、16×16ブロックに関して、エンコーダ又はデコーダは、そのブロックのBV値により示される16×16参照領域を決定し、次いで、水平方向及び/又は垂直方向に16×16参照領域を反転する。これは、反転されている16×16参照領域のコピーを作成することを伴う。次いで、反転された参照領域の位置におけるサンプル値が、イントラBC予測領域の同じ位置におけるサンプル値に割り当てられる(例えば、反転された参照領域の位置(0,0)におけるサンプル値が、イントラBC予測領域の位置(0,0)におけるサンプル値に割り当てられ、反転された参照領域の位置(0,1)におけるサンプル値が、イントラBC予測領域の位置(0,1)におけるサンプル値に割り当てられる、等である)。   According to one approach to performing a block inversion operation, when determining the intra BC prediction region for the current block, the encoder or decoder (a) determines the reference region, (b) inverts the reference region, and then (C) Assign sample values at each position of the inverted reference region to sample values at their respective positions in the intra BC prediction region. For example, for a 16x16 block, the encoder or decoder determines the 16x16 reference area indicated by the BV value of that block and then flips the 16x16 reference area horizontally and / or vertically. This involves making a copy of the inverted 16 × 16 reference area. The sample values at the position of the inverted reference region are then assigned to the sample values at the same position of the intra BC prediction region (eg, the sample values at the position (0, 0) of the inverted reference region are intra BC prediction) The sample values at the position (0, 1) of the reference position (0, 1) assigned to the sample values at the position (0, 0) of the area and the inverted reference areas are assigned to the sample values at the position (0, 1) of the intra BC prediction area Etc.).

ブロック反転オペレーションを実行する第2のアプローチに従うと、現ブロックについてのイントラBC予測領域を決定するとき、エンコーダ又はデコーダは、(a)参照領域を決定し、(b)参照領域のそれぞれの位置におけるサンプル値を、イントラBC予測領域のそれらそれぞれの位置におけるサンプル値に割り当て、次いで、(c)イントラBC予測領域を反転する。例えば、16×16ブロックに関して、エンコーダ又はデコーダは、そのブロックのBV値により示される16×16参照領域を決定する。参照領域の位置におけるサンプル値が、イントラBC予測領域の同じ位置におけるサンプル値に割り当てられる(例えば、参照領域の位置(0,0)におけるサンプル値が、イントラBC予測領域の位置(0,0)におけるサンプル値に割り当てられ、参照領域の位置(0,1)におけるサンプル値が、イントラBC予測領域の位置(0,1)におけるサンプル値に割り当てられる、等である)。次いで、エンコーダ又はデコーダは、水平方向及び/又は垂直方向に16×16イントラBC予測領域を反転する。これは、反転されている16×16イントラBC予測領域のコピーを作成することを伴う。   According to a second approach to performing a block inversion operation, when determining an intra BC prediction region for the current block, the encoder or decoder (a) determines a reference region, (b) at each position of the reference region. Sample values are assigned to sample values at their respective positions in the intra BC prediction region, and then (c) invert the intra BC prediction region. For example, for a 16x16 block, the encoder or decoder determines the 16x16 reference region indicated by the BV value of that block. Sample values at the position of the reference region are assigned to sample values at the same position of the intra BC prediction region (for example, sample values at the position (0, 0) of the reference region are position (0, 0) of the intra BC prediction region Assigned to the sample value in (1), the sample value at the position (0, 1) of the reference area is assigned to the sample value at the position (0, 1) of the intra BC prediction area, etc. The encoder or decoder then inverts the 16 × 16 intra BC prediction region horizontally and / or vertically. This involves making a copy of the inverted 16 × 16 intra BC prediction region.

ブロック反転オペレーションを実行する第3のアプローチに従うと、エンコーダ及びデコーダは、参照領域又はイントラBC予測領域の中間コピーを作成することを回避する。現ブロックについてのイントラBC予測領域を決定するとき、エンコーダ又はデコーダは、(a)参照領域を決定し、次いで、(b)参照領域のそれぞれの位置におけるサンプル値を、イントラBC予測領域の対応する位置におけるサンプル値に割り当て、ここで、対応する位置は、ブロック反転を考慮したものである。水平方向の反転が用いられる場合、参照領域の最初の列は、イントラBC予測領域の最後の列を提供し、参照領域の2番目の列は、イントラBC予測領域の最後から2番目の列を提供する、等である。垂直方向の反転が用いられる場合、参照領域の最初の行は、イントラBC予測領域の最後の行を提供し、参照領域の2番目の行は、イントラBC予測領域の最後から2番目の行を提供する、等である。水平方向の反転及び垂直方向の反転がともに用いられる場合、参照領域の位置は、サンプル値をイントラBC予測領域の位置に割り当てるときに、水平方向及び垂直方向に逆順に走査され得る。例えば、16×16ブロックに関して、エンコーダ又はデコーダは、そのブロックのBV値により示される16×16参照領域を決定する。参照領域の位置におけるサンプル値が、水平方向及び/又は垂直方向に逆順に、イントラBC予測領域の対応する位置におけるサンプル値に割り当てられる(例えば、参照領域の位置(0,0)におけるサンプル値が、イントラBC予測領域の位置(15,15)におけるサンプル値に割り当てられ、参照領域の位置(0,1)におけるサンプル値が、イントラBC予測領域の位置(15,14)におけるサンプル値に割り当てられる、等である)。   According to a third approach to performing a block inversion operation, the encoder and decoder avoid creating an intermediate copy of the reference region or intra BC prediction region. When determining the intra BC prediction region for the current block, the encoder or decoder determines (a) the reference region and then (b) sample values at each position of the reference region to the corresponding values of the intra BC prediction region. Assigned to sample values at locations, where the corresponding locations take into account block inversion. If horizontal inversion is used, the first column of the reference area provides the last column of the intra BC prediction area, and the second column of the reference area the second to last column of the intra BC prediction area Provide, etc. If vertical inversion is used, the first row of the reference region provides the last row of the intra BC prediction region, and the second row of the reference region the second to last row of the intra BC prediction region. Provide, etc. If both horizontal and vertical flips are used, the position of the reference area may be scanned in reverse order in the horizontal and vertical directions when assigning sample values to the position of the intra BC prediction area. For example, for a 16x16 block, the encoder or decoder determines the 16x16 reference region indicated by the BV value of that block. Sample values at the position of the reference region are assigned to sample values at corresponding positions of the intra BC prediction region in reverse order in the horizontal and / or vertical direction (eg, sample values at position (0, 0) of the reference region are , Assigned to sample values at the position (15, 15) of the intra BC prediction region, and sample values at the position (0, 1) of the reference region are assigned to the sample values at the position (15, 14) of the intra BC prediction region , Etc.).

3.ブロック反転についての例示的なシグナリング
ブロック反転が、イントラBC予測について有効にされている場合、ブロック反転を用いるか否かの決定は、実装に応じて、様々な形でシグナリングされ得る。
3. Exemplary Signaling for Block Inversion When block inversion is enabled for intra BC prediction, the determination of whether or not to use block inversion may be signaled in various ways, depending on the implementation.

ブロック反転は、ビデオのシーケンス、ピクチャ、又は他のユニットについて有効にされ得る。(例えば、SPS内の)シーケンスレイヤシンタックス要素、(例えば、PPS内の)ピクチャレイヤシンタックス要素、又は(例えば、スライスセグメントヘッダ内の)スライスヘッダレイヤシンタックス要素は、ブロック反転が有効にされているか無効にされているかを示すことができる。あるいは、ブロック反転は、符号化及び復号のいくつかのプロファイル又はレベルについて有効にされてもよい。ブロック反転を有効にする決定は、方向ごとになされ得る(例えば、水平方向のブロック反転のみ、垂直方向のブロック反転のみ、又は、水平方向のブロック反転及び垂直方向のブロック反転の両方)。ブロック反転が有効にされている場合、追加のシンタックス要素が、ブロック反転がいつ用いられどのように用いられるかをシグナリングする。   Block inversion may be enabled for sequences of video, pictures, or other units. Sequence layer syntax elements (eg, in SPS), picture layer syntax elements (eg, in PPS), or slice header layer syntax elements (eg, in slice segment headers) have block inversion enabled. Can indicate whether it is disabled or not. Alternatively, block inversion may be enabled for several profiles or levels of encoding and decoding. The decision to enable block inversion may be made on a per-direction basis (eg, horizontal block inversion only, vertical block inversion only, or both horizontal block inversion and vertical block inversion). If block inversion is enabled, additional syntax elements signal when and how block inversion is used.

垂直方向の反転のみが有効にされている場合、フラグ値は、イントラBC予測中に垂直方向の反転が用いられているか否かを示すことができる。水平方向の反転のみが有効にされている場合、フラグ値は、イントラBC予測中に水平方向の反転が用いられているか否かを示すことができる。垂直方向の反転及び水平方向の反転の両方が有効にされている場合、2つのフラグ値は、イントラBC予測中に垂直方向の反転及び水平方向の反転について反転が用いられているか否かを示すことができ、各フラグは、反転の方向についての決定を示す。あるいは、複数の値を有する1つのシンタックス要素が使用されてもよい(例えば、取り得る値は、垂直方向の反転のみ、水平方向の反転のみ、垂直方向の反転及び水平方向の反転の両方、又は反転なしを示す)。   If only vertical inversion is enabled, the flag value may indicate whether vertical inversion is used during intra BC prediction. If only horizontal inversion is enabled, the flag value may indicate whether horizontal inversion is used during intra BC prediction. If both vertical and horizontal flips are enabled, the two flag values indicate whether flips are used for vertical and horizontal flips during intra BC prediction Each flag indicates a decision on the direction of the inversion. Alternatively, one syntax element having multiple values may be used (eg, possible values are only vertical flip, only horizontal flip, both vertical and horizontal flip, Or indicates no inversion).

現ブロックについてブロック反転が用いられているか否かを示すシンタックス要素(例えば、フラグ値)は、現ブロックについての他のシンタックス要素とともに、ビットストリームに含められてシグナリングされ得る。例えば、PUについてのブロック反転に関する1以上のシンタックス要素が、PUについてシグナリングされる。あるいは、現ブロックについてブロック反転が用いられているか否かを示すシンタックス要素は、現ブロックを含むより大きなブロックについて、ビットストリームに含められてシグナリングされ得る。例えば、1以上のPUについてのブロック反転に関する1以上のシンタックス要素が、1以上のPUを含むCUについてシグナリングされる。代替的に、現ブロックについてブロック反転が用いられているか否かを示すシンタックス要素は、ビットストリームに含められて何らかの他のレベルでシグナリングされる。   A syntax element (eg, a flag value) indicating whether block inversion is used for the current block may be signaled by being included in the bitstream along with other syntax elements for the current block. For example, one or more syntax elements for block inversion for a PU are signaled for the PU. Alternatively, syntax elements indicating whether block inversion is used for the current block may be signaled by being included in the bitstream for larger blocks that include the current block. For example, one or more syntax elements for block inversion for one or more PUs may be signaled for a CU that includes one or more PUs. Alternatively, syntax elements indicating whether or not block inversion is used for the current block are included in the bitstream and signaled at some other level.

現ブロックについてブロック反転が用いられているか否かを示すシンタックス要素は、エントロピ符号化され得る。例えば、現ブロックについてのフラグ値は、コンテキスト適応バイナリ算術符号化を用いて符号化され、コンテキスト適応バイナリ算術復号を用いて復号される。代替的に、異なる形態のエントロピ符号化が用いられてもよいし、あるいは、シンタックス要素が、固定長の値としてシグナリングされてもよい。   Syntax elements indicating whether or not block inversion is used for the current block may be entropy coded. For example, flag values for the current block are encoded using context adaptive binary arithmetic coding and decoded using context adaptive binary arithmetic decoding. Alternatively, different forms of entropy coding may be used, or syntax elements may be signaled as fixed length values.

現ブロックについてブロック反転が用いられているか否かを示す1以上のシンタックス要素は、ビットストリームに含められて別々に条件付きでシグナリングされ得る。例えば、ブロック反転が用いられているか否かを示すフラグ値は、現ブロックがイントラBC予測されている場合にはシグナリングされ得るが、現ブロックがイントラBC予測されていない場合にはシグナリングされない。あるいは、現ブロックについてブロック反転が用いられているか否かを示す1以上のシンタックス要素は、ビットストリーム内の別のシンタックス要素とともに統合符号化され得る。例えば、ブロック反転が用いられているか否かを示すフラグ値は、現ブロックがイントラBC予測されているか否かを示すフラグ値とともに統合符号化され得る。   One or more syntax elements indicating whether block inversion is used for the current block may be included in the bitstream and separately conditionally signaled. For example, a flag value indicating whether block inversion is used may be signaled if the current block is intra BC predicted, but not signaled if the current block is not intra BC predicted. Alternatively, one or more syntax elements indicating whether block inversion is used for the current block may be jointly encoded with other syntax elements in the bitstream. For example, a flag value indicating whether block inversion is used may be jointly encoded with a flag value indicating whether the current block is intra BC predicted.

4.イントラBC予測においてブロック反転を用いる例示的な符号化
図11は、符号化中のイントラBC予測におけるブロック反転のための例示的な技術(1100)を示している。図3又は図5a〜図5bを参照して説明したエンコーダ等の画像エンコーダ又はビデオエンコーダが、技術(1100)を実行することができる。
4. Exemplary Coding Using Block Inversion in Intra BC Prediction FIG. 11 shows an exemplary technique (1100) for block inversion in intra BC prediction during encoding. An image encoder or video encoder such as the encoder described with reference to FIG. 3 or FIGS. 5a-5b may perform the technique (1100).

エンコーダは、ピクチャ内の現ブロックについてのイントラBC予測領域を、ピクチャ内の参照領域に基づいて決定する(1110)。現ブロックは、PU、CU、又は他のブロックであり得る。BV推定において特定された、現ブロックのBV値は、ピクチャ内の参照領域への変位を示すことができる。イントラBC予測領域は、参照領域に対して反転されている。例えば、イントラBC予測領域は、参照領域に対して水平方向及び/又は垂直方向に反転されている。ブロック反転オペレーションを実行するアプローチの例は、上記で説明されている(セクションVII.B.2を参照されたい)。   The encoder determines 1110 an intra BC prediction region for the current block in the picture based on the reference region in the picture. The current block may be a PU, a CU, or another block. The BV value of the current block identified in the BV estimation can indicate the displacement to the reference region in the picture. The intra BC prediction region is inverted relative to the reference region. For example, the intra BC prediction region is horizontally and / or vertically inverted with respect to the reference region. An example of an approach for performing a block reversal operation is described above (see Section VII.B.2).

エンコーダは、イントラBC予測領域を使用して、現ブロックを符号化し(1120)、ビットストリーム内に符号化されたデータを出力する(1130)。符号化されたデータは、イントラBC予測領域が参照領域に対して反転されているか否かのインジケーションを含む。例えば、インジケーションは、ビットストリーム内の1以上のシンタックス要素である。ブロック反転が用いられているか否かをシグナリングするアプローチの例は、上記で説明されている(セクションVII.B.3を参照されたい)。   The encoder encodes (1120) the current block using the intra BC prediction region and outputs (1130) the data encoded in the bitstream. The encoded data includes an indication of whether the intra BC prediction region is inverted relative to the reference region. For example, an indication is one or more syntax elements in a bitstream. Examples of approaches to signal whether block inversion is used are described above (see Section VII.B.3).

エンコーダは、スライス、タイル、又はピクチャについて、ブロック反転を用いて又は用いないで、ブロックごとに、他のイントラBC予測ブロックを同様に符号化することができる。   The encoder may similarly encode other intra BC prediction blocks on a block-by-block basis, with or without block inversion, for slices, tiles, or pictures.

5.イントラBC予測においてブロック反転を用いる例示的な復号
図12は、復号中のイントラBC予測におけるブロック反転のための例示的な技術(1200)を示している。図4又は図6を参照して説明したデコーダ等の画像デコーダ又はビデオデコーダが、技術(1200)を実行することができる。
5. Exemplary Decoding Using Block Inversion in Intra BC Prediction FIG. 12 shows an exemplary technique (1200) for block inversion in intra BC prediction during decoding. An image decoder or video decoder such as the decoder described with reference to FIG. 4 or FIG. 6 may perform the technique (1200).

デコーダは、ビットストリーム内の符号化されたデータを受信する(1210)。符号化されたデータは、ピクチャ内の現ブロックについてのイントラBC予測領域が、ピクチャ内の参照領域に対して反転されているか否かのインジケーションを含む。現ブロックは、PU、CU、又は他のブロックであり得る。例えば、インジケーションは、ビットストリーム内の1以上のシンタックス要素である。ブロック反転が用いられているか否かをシグナリングするアプローチの例は、上記で説明されている(セクションVII.B.3を参照されたい)。   The decoder receives (1210) the encoded data in the bitstream. The encoded data includes an indication of whether the intra BC prediction region for the current block in the picture is inverted relative to the reference region in the picture. The current block may be a PU, a CU, or another block. For example, an indication is one or more syntax elements in a bitstream. Examples of approaches to signal whether block inversion is used are described above (see Section VII.B.3).

デコーダは、ピクチャ内の現ブロックについてのイントラBC予測領域を、ピクチャ内の参照領域に基づいて決定する(1220)。現ブロックのBV値は、参照領域への変位を示すことができる。イントラBC予測領域は、参照領域に対して反転されている。例えば、イントラBC予測領域は、参照領域に対して水平方向及び/又は垂直方向に反転されている。ブロック反転オペレーションを実行するアプローチの例は、上記で説明されている(セクションVII.B.2を参照されたい)。デコーダは、イントラBC予測領域を使用して、現ブロックを復号する(1230)。   The decoder determines 1220 an intra BC prediction region for the current block in the picture based on the reference region in the picture. The BV value of the current block can indicate the displacement to the reference area. The intra BC prediction region is inverted relative to the reference region. For example, the intra BC prediction region is horizontally and / or vertically inverted with respect to the reference region. An example of an approach for performing a block reversal operation is described above (see Section VII.B.2). The decoder decodes 1230 the current block using the intra BC prediction region.

デコーダは、スライス、タイル、又はピクチャについて、ブロック反転を用いて又は用いないで、ブロックごとに、他のイントラBC予測ブロックを同様に復号することができる。   The decoder may decode other intra BC prediction blocks as well, block by block, with or without block inversion, for slices, tiles, or pictures.

C.イントラBC予測についてのスキップモード
イントラBC予測のいくつかの以前のアプローチにおいて、現CUについてのフラグが、現CUがイントラBC予測モードで符号化されているか否かを示す。現CUがイントラBC予測モードで符号化されている場合、現CUについての第2のフラグが、現CUが残差データを有するか否かを示す。残差データを有さないイントラBC予測ブロックをシグナリングするこの方式は、多くのスクリーンコンテンツ符号化/復号シナリオにおいて、効率的ではない。
C. Skip Mode for Intra BC Prediction In some previous approaches of intra BC prediction, a flag for the current CU indicates whether the current CU is coded in intra BC prediction mode. If the current CU is encoded in intra BC prediction mode, a second flag for the current CU indicates whether the current CU has residual data. This scheme of signaling intra BC prediction blocks without residual data is not efficient in many screen content coding / decoding scenarios.

本明細書に記載のイノベーションの別の態様に従うと、エンコーダ及びデコーダは、残差データを有さないイントラBC予測ブロックをシグナリングするためのフラグを使用する。スキップモードにおいて、イントラBC予測ブロックは、BV差分がビットストリームに含められてシグナリングされるBV値を使用するが、ビットストリーム内に残差データを有さない。特に、スクリーンキャプチャコンテンツに関して、残差データを有さないイントラBC予測ブロックがよく起こる。残差データを有さないイントラBC予測ブロックをシグナリングするための(複数のフラグではなく)1つのフラグを使用することが、そのようなシナリオにおいて効率的である。   According to another aspect of the innovation described herein, the encoder and decoder use a flag to signal intra BC prediction blocks that do not have residual data. In skip mode, the intra BC prediction block uses BV values signaled as BV differences are included in the bitstream, but has no residual data in the bitstream. In particular, for screen capture content, intra BC prediction blocks without residual data often occur. Using one flag (instead of multiple flags) to signal intra BC prediction blocks without residual data is efficient in such a scenario.

1.イントラBC予測スキップモードについての例示的なシグナリング
例示的な実装において、ビットストリーム内の1つのフラグが、現ブロックがスキップモードでのイントラBC予測ブロックであるか否かを示す。現ブロックが、スキップモードでのイントラBC予測ブロックではない場合、ビットストリーム内の第2のフラグが、現ブロックが(スキップモードではない)イントラBC予測ブロックであるか否かを示す。現ブロックが、イントラBC予測ブロックではない場合、ビットストリーム内の1以上の他のシンタックス要素が、現ブロックのモードを示す(例えば、時間的スキップモードか否かについてのフラグ、イントラ空間予測モードか否かについてのフラグ、インターピクチャモードか否かについてのフラグ、イントラ空間予測モードかインターピクチャモードかについてのフラグ)。現ブロックが、スキップモードでのイントラBC予測ブロックである場合、第2のフラグ及び他のシンタックス要素は、現ブロックについてビットストリーム内に存在しない。
1. Exemplary Signaling for Intra BC Prediction Skip Mode In an exemplary implementation, one flag in the bitstream indicates whether the current block is an intra BC prediction block in skip mode. If the current block is not an intra BC prediction block in skip mode, a second flag in the bitstream indicates whether the current block is an intra BC prediction block (not in skip mode). If the current block is not an intra BC prediction block, one or more other syntax elements in the bitstream indicate the mode of the current block (eg, a flag as to whether or not it is a temporal skip mode, intra spatial prediction mode Flag about whether or not it is inter picture mode, flag about whether it is intra spatial prediction mode or inter picture mode). If the current block is an intra BC prediction block in skip mode, the second flag and other syntax elements are not present in the bitstream for the current block.

現ブロックがスキップモードでのイントラBC予測ブロックであるか否かを示すフラグは、ブロックレベルでシグナリングされる。現ブロックは、サイズ2N×2Nを有するCUであり得る。例えば、16×16CUの場合、Nは8である。代替的に、現ブロックは、PU又は他のタイプのブロックであってもよい。現ブロックのモードを示す他のフラグ及びシンタックス要素も、ビットストリームに含められてブロックレベルでシグナリングされ得る。   A flag indicating whether the current block is an intra BC prediction block in skip mode is signaled at the block level. The current block may be a CU with size 2N × 2N. For example, in the case of 16 × 16 CU, N is 8. Alternatively, the current block may be a PU or other type of block. Other flags and syntax elements that indicate the mode of the current block may also be included in the bitstream and signaled at the block level.

いくつかの例示的な実装において、スキップモードでのイントラBC予測ブロックは、ビットストリーム内にBV差分を含むが残差データを有さない。代替的に、スキップモードでのイントラBC予測ブロックは、予測されたBV値を使用してもよい(したがって、ビットストリーム内にBV差分を含まない)。   In some exemplary implementations, intra BC prediction blocks in skip mode include BV differences in the bitstream but do not have residual data. Alternatively, the intra BC prediction block in skip mode may use the predicted BV value (and thus not include the BV difference in the bitstream).

2.イントラBC予測スキップモードを用いる例示的な符号化
図13は、スキップモードでイントラBC予測ブロックを符号化するための例示的な技術(1300)を示している。図3又は図5a〜図5bを参照して説明したエンコーダ等の画像エンコーダ又はビデオエンコーダが、技術(1300)を実行することができる。
2. Exemplary Coding with Intra BC Prediction Skip Mode FIG. 13 shows an exemplary technique (1300) for coding an intra BC prediction block in skip mode. An image encoder or video encoder such as the encoder described with reference to FIG. 3 or FIGS. 5a-5b may perform the technique (1300).

エンコーダは、例えば、BV推定を用いて、ピクチャ内の現ブロック(例えば、CU、PU)のBV値を決定する(1310)。現ブロックのBV値は、ピクチャ内の参照領域への変位を示す。エンコーダは、次いで、現ブロックのBV値及び現ブロックのBV予測子を使用して、現ブロックのBV差分を決定する(1320)。BV予測子は、ルールにより選択されることもあるし、あるいは、エンコーダが、複数のBV予測子候補の中からBV予測子を選択することもある。   The encoder determines 1310 the BV value of the current block (eg, CU, PU) in the picture, eg, using BV estimation. The BV value of the current block indicates the displacement to the reference area in the picture. The encoder then uses the BV value of the current block and the BV predictor of the current block to determine 1320 the BV difference of the current block. The BV predictor may be selected by a rule, or the encoder may select a BV predictor from among a plurality of BV predictor candidates.

エンコーダは、BV値を使用するイントラBC予測を用いて、現ブロックを符号化する(1330)。例示的な実装において、イントラBC予測は、参照領域を使用して、現ブロックについてのイントラBC予測領域を決定することを含み得、ここで、イントラBC予測領域は、参照領域に対して反転されている。イントラBC予測領域は、参照領域に対して水平方向及び/又は垂直方向に反転されているものであり得る。ブロック反転オペレーションを実行すること及びブロック反転が用いられていることをシグナリングすることについてのオプションは、上記で説明されている。代替的に、エンコーダは、イントラBC予測においてブロック反転を用いない。   The encoder encodes the current block using intra BC prediction using BV values (1330). In an exemplary implementation, intra BC prediction may include determining an intra BC prediction region for the current block using a reference region, where the intra BC prediction region is inverted relative to the reference region ing. The intra BC prediction region may be horizontally and / or vertically inverted with respect to the reference region. Options for performing block inversion operations and signaling that block inversion is used are described above. Alternatively, the encoder does not use block inversion in intra BC prediction.

エンコーダは、ビットストリーム内に符号化されたデータを出力する(1340)。符号化されたデータは、現ブロックがイントラBC予測を用いてスキップモードで符号化されていることを示すフラグを含む。現ブロックは、スキップモードでのイントラBC予測ブロックであるので、ビットストリームは、現ブロックのBV差分を含むが、現ブロックの残差データを含まない。エンコーダが、複数のBV予測子候補の中からBV予測子を選択した場合、ビットストリームは、現ブロックのBV予測子として使用するための、選択されたBV予測子候補を示すインデックス値を含む。   The encoder outputs data encoded in the bitstream (1340). The encoded data includes a flag indicating that the current block is encoded in skip mode using intra BC prediction. Since the current block is an intra BC prediction block in skip mode, the bitstream includes the BV difference of the current block but does not include residual data of the current block. If the encoder selects a BV predictor from among the plurality of BV predictor candidates, the bitstream includes an index value indicating the selected BV predictor candidate for use as a BV predictor for the current block.

図14は、イントラBC予測を用いてスキップモード及び/又は他のモードでピクチャ内のブロックを符号化するための例示的な技術(1400)を示している。図3又は図5a〜図5bを参照して説明したエンコーダ等の画像エンコーダ又はビデオエンコーダが、技術(1400)を実行することができる。   FIG. 14 shows an example technique (1400) for encoding blocks in a picture in skip mode and / or other modes using intra BC prediction. An image encoder or video encoder such as the encoder described with reference to FIG. 3 or FIGS. 5a-5b may perform the technique (1400).

始めに、エンコーダは、次のブロックを取得し(1410)、イントラBC予測を用いてスキップモードでこのブロックを符号化するか否かを決定する(1420)。例えば、エンコーダは、イントラBC予測がブロックについて十分な符号化効率を提供するか否かを評価し、残差データが大きな値を含むか否かを評価する。代替的に、エンコーダは、他の基準を考慮する。   Initially, the encoder gets the next block (1410) and determines whether to encode this block in skip mode using intra BC prediction (1420). For example, the encoder evaluates whether intra BC prediction provides sufficient coding efficiency for the block and evaluates whether residual data contains large values. Alternatively, the encoder considers other criteria.

エンコーダは、ブロックがイントラBC予測を用いてスキップモードで符号化されているか否かを示すフラグをビットストリームに含めてシグナリングすることができる。スキップモードでのイントラBC予測ブロックに関して、エンコーダは、図13の段階(1310)〜段階(1330)に示される動作を用いて又は別のアプローチを用いて、イントラBC予測を用いてスキップモードでブロックを符号化する(1430)。スキップモードでのイントラBC予測ブロックであるので、このブロックは、ビットストリーム内にBV差分を有するが、ビットストリーム内に残差データを有さない。   The encoder may include in the bitstream a flag indicating whether the block is encoded in skip mode using intra BC prediction and may signal. For intra BC prediction blocks in skip mode, the encoder blocks in skip mode with intra BC prediction using the operations shown in steps (1310) to (1330) of FIG. 13 or using another approach. Are encoded (1430). As it is an intra BC prediction block in skip mode, this block has BV differences in the bitstream but no residual data in the bitstream.

そうでない場合(ブロックが、スキップモードでのイントラBC予測ブロックではない場合)、エンコーダは、別のモードでブロックを符号化する(1440)。別のモードは、イントラBC予測非スキップモード、イントラ空間予測モード、インターピクチャモード、又は他のモードであり得る。この場合、1以上の他のシンタックス要素が、ブロックのモードを示し得る。例えば、(段階(1420)における決定に応じた、)ブロックがイントラBC予測を用いてスキップモードで符号化されているか否かを示す第1のフラグの後、ブロックが、イントラBC予測を用いてスキップモードで符号化されていない場合、第2のフラグが、ブロックがイントラBC予測を用いて非スキップモードで符号化されているか否かを示す。ブロックが、イントラBC予測を用いて非スキップモードで符号化されていない場合、1以上の他のシンタックス要素が、ブロックの符号化モードを示す。例えば、あるフラグが、ブロックの予測モードがイントラ空間予測であるか又はインターピクチャ予測であるかを示す。   If not (the block is not an intra BC prediction block in skip mode), the encoder encodes the block in another mode (1440). Another mode may be intra BC prediction non-skip mode, intra spatial prediction mode, inter picture mode, or other modes. In this case, one or more other syntax elements may indicate the mode of the block. For example, after a first flag that indicates whether the block is encoded in skip mode using intra BC prediction (in response to the decision in step (1420)), the block uses intra BC prediction If not coded in skip mode, the second flag indicates whether the block is coded in non-skip mode using intra BC prediction. If the block is not coded in non-skip mode using intra BC prediction, one or more other syntax elements indicate the coding mode of the block. For example, a flag indicates whether the prediction mode of the block is intra spatial prediction or inter picture prediction.

いくつかの例示的な実装において、ブロックがスキップモードでイントラBC予測されているか否かを示すフラグを使用することのさらなる利点が存在する。いくつかの場合において、イントラBC予測ブロックの分割モード(例えば、2N×2N、2N×N、N×2N、又はN×N)を示すシンタックス要素のシグナリングが回避され得る。例えば、ブロックが、イントラBC予測を用いて非スキップモードで符号化されている場合、エンコーダは、そのブロックの分割モードを示すシンタックス要素をビットストリームに含めてシグナリングする。一方、ブロックが、イントラBC予測を用いてスキップモードで符号化されている場合、エンコーダは、そのブロックの分割モードを示すシンタックス要素をビットストリームに含めてシグナリングすることをスキップし、そのブロックの分割モードが、代わりに、定められた値(例えば、2N×2N)を有するとみなされる。したがって、これらの場合において、スキップモードでイントラBC予測されたものとしてブロックをマーク付けする先のフラグが、ブロックの分割モードが定められた値を有するということもシグナリングする。   In some exemplary implementations, there is a further advantage of using a flag that indicates whether the block is intra BC predicted in skip mode. In some cases, signaling of syntax elements that indicate intra BC prediction block segmentation modes (eg, 2Nx2N, 2NxN, Nx2N, or NxN) may be avoided. For example, if the block is encoded in non-skip mode using intra BC prediction, the encoder signals by including a syntax element indicating the division mode of the block in the bitstream. On the other hand, if the block is encoded in skip mode using intra BC prediction, the encoder skips signaling that a syntax element indicating the division mode of the block is included in the bitstream, and The split mode is instead considered to have a defined value (e.g. 2Nx2N). Therefore, in these cases, it is also signaled that the flag to which the block is marked as being intra BC predicted in skip mode signals that the division mode of the block has a defined value.

また、多くの場合において、ブロックの残差データの有無を示すフラグのシグナリングが回避され得る。もちろん、ブロックが、イントラBC予測を用いてスキップモードで符号化されている場合、エンコーダは、ブロックの残差データの有無を示すフラグをビットストリームに含めてシグナリングすることをスキップする。(スキップモードでイントラBC予測されたものとしてブロックをマーク付けする先のフラグが、そのような情報をシグナリングする。)ブロックの残差データは、ビットストリーム内に無いとみなされる。   Also, in many cases, signaling of a flag indicating the presence or absence of residual data of the block may be avoided. Of course, if the block is coded in skip mode using intra-BC prediction, the encoder skips including in the bitstream a flag indicating the presence or absence of residual data of the block and signaling. (A flag on which to mark the block as intra BC predicted in skip mode signals such information.) The residual data of the block is considered not to be in the bitstream.

残差データの有無を示すフラグのシグナリングは、別の場合にも回避され得る。詳細には、ブロックが、イントラBC予測を用いて非スキップモードで符号化されており、ブロックの分割モードが、定められた値(例えば、2N×2N)を有する場合、エンコーダは、ブロックの残差データの有無を示すフラグをビットストリームに含めてシグナリングすることをスキップする。この場合、ブロックの残差データは、ビットストリーム内に有るとみなされる。(ブロックの分割モードが、定められた値であり、ブロックが、残差データを有さない場合、ブロックは、先のフラグにより示されている、スキップモードでのイントラBC予測ブロックであろう。)最後に、ブロックが、イントラBC予測を用いて非スキップモードで符号化されており、ブロックの分割モードが、定められた値を有さない場合、エンコーダは、ブロックの残差データの有無を示すフラグをビットストリームに含めてシグナリングする。   The signaling of a flag indicating the presence or absence of residual data may be avoided in other cases as well. In particular, if the block is encoded in non-skip mode using intra BC prediction and the division mode of the block has a defined value (eg 2N × 2N), then the encoder Skipping signaling by including a flag indicating presence or absence of difference data in the bitstream. In this case, the residual data of the block is considered to be in the bitstream. (If the division mode of the block is a defined value and the block has no residual data, the block will be an intra BC prediction block in skip mode, as indicated by the previous flag. Finally, if the block is coded in non-skip mode using intra BC prediction, and the division mode of the block does not have a defined value, the encoder checks for the presence or absence of residual data of the block. The flag to indicate is included in the bit stream and signaled.

エンコーダは、ピクチャ内の次のブロックに進むかどうかを決定する(1450)。次のブロックに進む場合、エンコーダは、次のブロックを取得し(1410)、符号化を続ける。   The encoder determines (1450) whether to proceed to the next block in the picture. When proceeding to the next block, the encoder gets 1410 the next block and continues encoding.

エンコーダは、ピクチャごとに、タイルごとに、スライスごとに、又は何らかの他の単位で、技術(1400)を繰り返すことができる。   The encoder may repeat the technique (1400) for each picture, for each tile, for each slice, or in some other unit.

3.イントラBC予測スキップモードを用いる例示的な復号
図15は、スキップモードでイントラBC予測ブロックを復号するための例示的な技術(1500)を示している。図4又は図6を参照して説明したデコーダ等の画像デコーダ又はビデオデコーダが、技術(1500)を実行することができる。
3. Exemplary Decoding Using Intra BC Prediction Skip Mode FIG. 15 shows an exemplary technique (1500) for decoding an intra BC prediction block in skip mode. An image decoder or video decoder such as the decoder described with reference to FIG. 4 or FIG. 6 may perform the technique (1500).

デコーダは、ビットストリームからの符号化されたデータを受信する(1510)。符号化されたデータは、ピクチャ内の現ブロック(例えば、CU、PU)がイントラBC予測を用いてスキップモードで符号化されていることを示すフラグを含む。現ブロックは、スキップモードでのイントラBC予測ブロックであるので、ビットストリームは、現ブロックのBV差分を含むが、現ブロックの残差データを含まない。   The decoder receives (1510) the encoded data from the bitstream. The encoded data includes a flag indicating that the current block (eg, CU, PU) in the picture is encoded in skip mode using intra BC prediction. Since the current block is an intra BC prediction block in skip mode, the bitstream includes the BV difference of the current block but does not include residual data of the current block.

デコーダは、現ブロックのBV差分及び現ブロックのBV予測子を使用して、現ブロックのBV値を決定する(1520)。現ブロックのBV値は、ピクチャ内の参照領域への変位を示す。BV予測子は、ルールにより選択され得る。あるいは、デコーダは、現ブロックのBV予測子として使用するためにどのBV予測子候補を選択するかの、ビットストリーム内のインデックス値を使用して、複数のBV予測子候補の中からBV予測子を選択することができる。   The decoder uses the BV difference of the current block and the BV predictor of the current block to determine 1520 the BV value of the current block. The BV value of the current block indicates the displacement to the reference area in the picture. BV predictors may be selected by rules. Alternatively, the decoder uses the index value in the bitstream to select which BV predictor candidate to use as the BV predictor for the current block, and then uses the BV predictor among the plurality of BV predictor candidates. Can be selected.

デコーダは、BV値を使用するイントラBC予測を用いて、現ブロックを復号する(1530)。例示的な実装において、イントラBC予測は、参照領域を使用して、現ブロックについてのイントラBC予測領域を決定することを含み得、ここで、イントラBC予測領域は、参照領域に対して反転されている。イントラBC予測領域は、参照領域に対して水平方向及び/又は垂直方向に反転されているものであり得る。ブロック反転オペレーションを実行すること及びブロック反転が用いられていることをシグナリングすることについてのオプションは、上記で説明されている。代替的に、デコーダは、イントラBC予測においてブロック反転を用いない。   The decoder decodes (1530) the current block using intra BC prediction using BV values. In an exemplary implementation, intra BC prediction may include determining an intra BC prediction region for the current block using a reference region, where the intra BC prediction region is inverted relative to the reference region ing. The intra BC prediction region may be horizontally and / or vertically inverted with respect to the reference region. Options for performing block inversion operations and signaling that block inversion is used are described above. Alternatively, the decoder does not use block inversion in intra BC prediction.

図16は、イントラBC予測を用いてスキップモード及び/又は他のモードでピクチャ内のブロックを復号するための例示的な技術(1600)を示している。図4又は図6を参照して説明したデコーダ等の画像デコーダ又はビデオデコーダが、技術(1600)を実行することができる。   FIG. 16 shows an example technique (1600) for decoding blocks in a picture in skip mode and / or other modes using intra BC prediction. An image decoder or video decoder such as the decoder described with reference to FIG. 4 or FIG. 6 may perform the technique (1600).

始めに、デコーダは、次のブロックについての符号化されたデータを取得し(1610)、イントラBC予測を用いてスキップモードでこのブロックを復号するか否かを決定する(1620)。例えば、デコーダは、ビットストリーム内の、ブロックがイントラBC予測を用いてスキップモードで符号化されているか否かを示すフラグを受信して解析する。   First, the decoder obtains encoded data for the next block (1610) and determines whether to decode this block in skip mode using intra BC prediction (1620). For example, the decoder receives and analyzes a flag in the bitstream indicating whether the block is encoded in skip mode using intra BC prediction.

スキップモードでのイントラBC予測ブロックに関して、デコーダは、図15の段階(1520)及び段階(1530)に示される動作を用いて又は別のアプローチを用いて、イントラBC予測を用いてスキップモードでブロックを復号する(1630)。スキップモードでのイントラBC予測ブロックであるので、このブロックは、ビットストリーム内にBV差分を有するが、ビットストリーム内に残差データを有さない。   For intra BC prediction blocks in skip mode, the decoder may block in skip mode with intra BC prediction using the operations shown in steps (1520) and (1530) of FIG. 15 or using another approach. (1630). As it is an intra BC prediction block in skip mode, this block has BV differences in the bitstream but no residual data in the bitstream.

そうでない場合(ブロックが、スキップモードでのイントラBC予測ブロックではない場合)、デコーダは、別のモードでブロックを復号する(1640)。別のモードは、イントラBC予測非スキップモード、イントラ空間予測モード、インターピクチャモード、又は他のモードであり得る。この場合、1以上の他のシンタックス要素が、ブロックのモードを示し得る。例えば、(段階(1620)における決定に応じた、)ブロックがイントラBC予測を用いてスキップモードで符号化されているか否かを示す第1のフラグの後、ブロックが、イントラBC予測を用いてスキップモードで符号化されていない場合、第2のフラグが、ブロックがイントラBC予測を用いて非スキップモードで符号化されているか否かを示す。ブロックが、イントラBC予測を用いて非スキップモードで符号化されていない場合、1以上の他のシンタックス要素が、ブロックの符号化モードを示す。例えば、あるフラグが、ブロックの予測モードがイントラ空間予測であるか又はインターピクチャ予測であるかを示す。   Otherwise (if the block is not an intra BC prediction block in skip mode), the decoder decodes the block in another mode (1640). Another mode may be intra BC prediction non-skip mode, intra spatial prediction mode, inter picture mode, or other modes. In this case, one or more other syntax elements may indicate the mode of the block. For example, after a first flag indicating whether the block (according to the decision in step (1620)) is coded in skip mode using intra BC prediction, the block uses intra BC prediction If not coded in skip mode, the second flag indicates whether the block is coded in non-skip mode using intra BC prediction. If the block is not coded in non-skip mode using intra BC prediction, one or more other syntax elements indicate the coding mode of the block. For example, a flag indicates whether the prediction mode of the block is intra spatial prediction or inter picture prediction.

前のセクションで記したように、いくつかの例示的な実装において、ブロックがスキップモードでイントラBC予測されているか否かを示すフラグを使用することのさらなる利点が存在する。例えば、ブロックが、イントラBC予測を用いて非スキップモードで符号化されている場合、ビットストリームは、ブロックの分割モードを示すシンタックス要素を含む。一方、ブロックが、イントラBC予測を用いてスキップモードで符号化されている場合、ビットストリームは、ブロックの分割モードを示すシンタックス要素を含まない。デコーダは、ブロックの分割モードが、定められた値(例えば、2N×2N)であることを推測する。   As noted in the previous section, in some exemplary implementations, there is an additional advantage of using a flag to indicate whether a block is intra BC predicted in skip mode. For example, if the block is encoded in non-skip mode using intra BC prediction, the bitstream includes syntax elements that indicate the division mode of the block. On the other hand, if the block is encoded in skip mode using intra BC prediction, the bitstream does not include a syntax element indicating the block division mode. The decoder estimates that the division mode of the block is a defined value (eg, 2N × 2N).

また、多くの場合において、ブロックの残差データの有無を示すフラグのシグナリングが回避され得る。もちろん、ブロックが、イントラBC予測を用いてスキップモードで符号化されている場合、ビットストリームは、ブロックの残差データの有無を示すフラグを含まない。代わりに、デコーダは、スキップモードでイントラBC予測されたものとしてブロックをマーク付けする先のフラグから、ブロックの残差データがビットストリーム内に無いことを推測する。   Also, in many cases, signaling of a flag indicating the presence or absence of residual data of the block may be avoided. Of course, if the block is coded in skip mode using intra BC prediction, the bitstream does not include a flag indicating the presence or absence of residual data of the block. Instead, the decoder infers that there is no residual data of the block in the bitstream from the flag that marks the block as intra BC predicted in skip mode.

残差データの有無を示すフラグのシグナリングは、別の場合にも回避され得る。詳細には、ブロックが、イントラBC予測を用いて非スキップモードで符号化されており、ブロックの分割モードが、定められた値(例えば、2N×2N)を有する場合、ビットストリームは、ブロックの残差データの有無を示すフラグを含まない。この場合、デコーダは、ブロックの残差データが、ビットストリーム内に有ると推測する。最後に、ブロックが、イントラBC予測を用いて非スキップモードで符号化されており、ブロックの分割モードが、定められた値を有さない場合、ビットストリームは、ブロックの残差データの有無を示すフラグを含む。   The signaling of a flag indicating the presence or absence of residual data may be avoided in other cases as well. In particular, if the block is coded in non-skip mode using intra BC prediction and the division mode of the block has a defined value (eg 2N × 2N), then the bitstream is of the block Does not include a flag indicating the presence or absence of residual data. In this case, the decoder estimates that the residual data of the block is in the bitstream. Finally, if the block is encoded in non-skip mode using intra BC prediction, and the division mode of the block does not have a defined value, then the bitstream will be checked for the presence or absence of residual data for the block. Contains a flag to indicate.

デコーダは、ピクチャ内の次のブロックに進むかどうかを決定する(1650)。次のブロックに進む場合、デコーダは、次のブロックについての符号化されたデータを取得し(1610)、復号を続ける。   The decoder determines whether to proceed to the next block in the picture (1650). When proceeding to the next block, the decoder obtains encoded data for the next block (1610) and continues decoding.

デコーダは、ピクチャごとに、タイルごとに、スライスごとに、又は何らかの他の単位で、技術(1600)を繰り返すことができる。   The decoder may repeat the technique (1600) for each picture, for each tile, for each slice, or in some other unit.

4.符号化ユニットについての例示的なシンタックス
図17a及び図17bは、従来のアプローチに従った、符号化ユニット(「CU」)についてのシンタックス構造(1700)を示している。シンタックス構造(1700)内に示されるシンタックス要素は、JCTVC−P1005において規定されている。選択されたシンタックス要素について、ここでまとめる。
4. Exemplary Syntax for a Coding Unit FIGS. 17a and 17b show a syntax structure (1700) for a coding unit ("CU") according to the conventional approach. The syntax elements shown in the syntax structure (1700) are defined in JCT VC-P 1005. The selected syntax elements are summarized here.

シンタックス要素intra_bc_flagは、イントラBC予測が有効にされている(これは、intra_block_copy_enabled_flagにより示される)場合、CUについてシグナリングされ得る。シンタックス要素intra_bc_flagは、CUがイントラBC予測モードで符号化されているか否かを示す。intra_bc_flagの値が1である場合、CUは、イントラBC予測モードで符号化されている。intra_bc_flagの値が0である場合、CUは、イントラBC予測モードで符号化されていない。この場合(intra_bc_flagが0である場合)、シンタックス要素pred_mode_flagが存在し、このシンタックス要素は、CUがインター予測モードで符号化されているか又はイントラ空間予測モードで符号化されているかを示す。   The syntax element intra_bc_flag may be signaled for a CU when intra BC prediction is enabled (which is indicated by intra_block_copy_enabled_flag). The syntax element intra_bc_flag indicates whether the CU is encoded in the intra BC prediction mode. If the value of intra_bc_flag is 1, the CU is encoded in intra BC prediction mode. If the value of intra_bc_flag is 0, the CU is not coded in intra BC prediction mode. In this case (if intra_bc_flag is 0), there is a syntax element pred_mode_flag, which indicates whether the CU is coded in inter prediction mode or in intra spatial prediction mode.

ブロックが、イントラBC予測されている場合(及び、数少ない他の場合)、ビットストリームは、CUについてのpart_modeシンタックス要素を含む。part_modeシンタックス要素は、CUの分割モード(すなわち、2N×2N、2N×N、N×2N、N×N)を示す。   If the block is intra BC predicted (and few others), then the bitstream contains part_mode syntax elements for the CU. The part_mode syntax element indicates the division mode of the CU (ie, 2N × 2N, 2N × N, N × 2N, N × N).

次いで、CUシンタックス構造(1700)は、パーティションについてのBV値(CUがイントラBC予測されている場合)、イントラ予測方向情報(CUがイントラ空間予測されている場合)、又は予測ユニット情報(CUがインター予測されている場合)を含む。次いで、CUシンタックス構造(1700)は、いくつかの場合において、rqt_root_cbfシンタックス要素を含む。詳細には、CUがイントラBC予測されている場合、rqt_root_cbfシンタックス要素が存在する。rqt_root_cbfシンタックス要素は、transform_tree()シンタックス構造が、CUについて存在するか否かを示す。transform_tree()シンタックス構造は、CUについての残差データ用である。rqt_root_cbfが1である場合、transform_tree()シンタックス構造が、CUについて存在する。rqt_root_cbfが0である場合、transform_tree()シンタックス構造は、CUについて存在しない。rqt_root_cbfが存在しない場合、rqt_root_cbfの値は、1であると推測される。したがって、前述したように、このアプローチにおいては、スキップモードでのイントラBC予測ブロックを示すために、2つのフラグ(intra_bc_flag及びrqt_root_cbf)が使用される。   Then, the CU syntax structure (1700) may be the BV value for the partition (if CU is intra BC predicted), intra prediction direction information (if CU is intra space predicted), or prediction unit information (CU (If it is inter-predicted). The CU syntax structure (1700) then, in some cases, includes the rqt_root_cbf syntax element. In particular, if the CU is intra BC predicted, there is an rqt_root_cbf syntax element. The rqt_root_cbf syntax element indicates whether a transform_tree () syntax structure exists for a CU. The transform_tree () syntax structure is for residual data for a CU. If rqt_root_cbf is 1, then a transform_tree () syntax structure exists for the CU. If rqt_root_cbf is 0, no transform_tree () syntax structure exists for the CU. If rqt_root_cbf does not exist, the value of rqt_root_cbf is assumed to be 1. Therefore, as described above, in this approach, two flags (intra_bc_flag and rqt_root_cbf) are used to indicate the intra BC prediction block in the skip mode.

図18は、スキップモードでのイントラBC予測ブロックとして符号化され得る符号化ユニットについての新たなシンタックス構造(1800)を示している。図17a及び図17bに示されるシンタックス構造(1700)に対する変更が、図18においてハイライトされている。   FIG. 18 shows a new syntax structure (1800) for a coding unit that may be coded as an intra BC prediction block in skip mode. The changes to the syntax structure (1700) shown in FIGS. 17a and 17b are highlighted in FIG.

intra_bc_skip_flagは、イントラBC予測が有効にされている(これは、intra_block_copy_enabled_flagにより示される)場合、CUについてシグナリングされ得る。シンタックス要素intra_bc_skip_flagは、CUがスキップモードでのイントラBC予測ブロックであるか否かを示す。CUがスキップモードでイントラBC予測されている場合(intra_bc_skip_flagが1である場合)、シンタックス要素rqt_root_cbfと同様に、シンタックス要素intra_bc_flag及びシンタックス要素pred_mode_flagは省かれる。また、この場合、CUの分割モードは、定められた値2N×2Nを有する。   intra_bc_skip_flag may be signaled for a CU when intra BC prediction is enabled (which is indicated by intra_block_copy_enabled_flag). The syntax element intra_bc_skip_flag indicates whether the CU is an intra BC prediction block in the skip mode. When the CU is intra BC predicted in skip mode (intra_bc_skip_flag is 1), syntax element intra_bc_flag and syntax element pred_mode_flag are omitted as in syntax element rqt_root_cbf. Also, in this case, the division mode of the CU has a defined value 2N × 2N.

一方、シンタックス要素intra_bc_skip_flagにより、CUがスキップモードでイントラBC予測されていないことが示される場合(intra_bc_skip_flagが0である場合)、シンタックス要素intra_bc_flagが存在する。シンタックス要素intra_bc_flagは、図17a及び図17bを参照して説明したように、CUがイントラBC予測モードで符号化されているか否かを示す。さらに、intra_bc_flagが0である場合、シンタックス要素pred_mode_flagが存在し、このシンタックス要素は、図17a及び図17bを参照して説明したように、CUがインター予測モードで符号化されているか又はイントラ空間予測モードで符号化されているかを示す。   On the other hand, when the syntax element intra_bc_skip_flag indicates that the CU is not intra BC predicted in the skip mode (intra_bc_skip_flag is 0), the syntax element intra_bc_flag is present. The syntax element intra_bc_flag indicates whether the CU is encoded in intra BC prediction mode, as described with reference to FIGS. 17a and 17b. Furthermore, if intra_bc_flag is 0, there is a syntax element pred_mode_flag, which is either CU encoded in inter prediction mode or intra as described with reference to FIGS. 17a and 17b. It indicates whether it is encoded in spatial prediction mode.

ブロックが、非スキップモードでイントラBC予測されている場合(すなわち、intra_bc_skip_flagが0であり、intra_bc_flagが1である場合)、ビットストリームは、CUについてのpart_modeシンタックス要素を含む。part_modeシンタックス要素は、CUの分割モード(例えば、2N×2N、2N×N、N×2N、N×N)を示す。一方、ブロックが、スキップモードでイントラBC予測されている場合、part_modeシンタックス要素は、CUについて、ビットストリームに含められてシグナリングされない。代わりに、分割モードは、2N×2Nという定められた値を有すると推測される。したがって、そのようなブロックに関して、intra_bc_skip_flagは、CUの分割モードが、2N×2Nという定められた値を有するということをシグナリングし、part_modeシンタックス要素の別個のシグナリングが回避される。   If the block is intra BC predicted in non-skip mode (ie, if intra_bc_skip_flag is 0 and intra_bc_flag is 1), then the bitstream contains part_mode syntax elements for the CU. The part_mode syntax element indicates a division mode (for example, 2N × 2N, 2N × N, N × 2N, N × N) of a CU. On the other hand, if the block is intra BC predicted in skip mode, the part_mode syntax element is included in the bitstream for the CU and not signaled. Instead, it is assumed that the split mode has a defined value of 2N × 2N. Thus, for such a block, intra_bc_skip_flag signals that the split mode of the CU has a defined value of 2N × 2N, and separate signaling of part_mode syntax elements is avoided.

図18から省かれているセクションにおいて、次いで、シンタックス構造(1800)は、パーティションについてのBV値(CUがイントラBC予測されている場合)、イントラ予測方向情報(CUがイントラ空間予測されている場合)、又は予測ユニット情報(CUがインター予測されている場合)を含む。   In the section omitted from FIG. 18, the syntax structure (1800) is then the BV value for the partition (if CU is intra BC predicted), intra prediction direction information (CU is intra spatial predicted) Or predicted unit information (if CU is inter-predicted).

最後に、シンタックス構造(1800)は、いくつかの場合において、rqt_root_cbfシンタックス要素を含む。詳細には、CUが非スキップモードでイントラBC予測されている場合、CUの分割モードが2N×2Nという定められた値ではない限り、rqt_root_cbfシンタックス要素が存在する。rqt_root_cbfシンタックス要素が存在する場合、rqt_root_cbfシンタックス要素の値は、図17a及び図17bを参照して説明したように、transform_tree()シンタックス構造が、CUについて存在するか否かを示す。一方、(1)CUがスキップモードでイントラBC予測されている場合、又は、(2)CUがイントラBC予測されており、CUの分割モードが、2N×2Nという定められた値である場合、rqt_root_cbfシンタックス要素は存在しない。CUがスキップモードでイントラBC予測されている場合、rqt_root_cbfの値は、0であると推測される(CUについての残差データが無い)。あるいは、CUがイントラBC予測されており、CUの分割モードが、2N×2Nという定められた値である場合、rqt_root_cbfの値は、1であると推測される(CUについての残差データが有る)   Finally, the syntax structure (1800) includes, in some cases, rqt_root_cbf syntax elements. In particular, if the CU is intra BC predicted in non-skip mode, there is a rqt_root_cbf syntax element unless the split mode of the CU is a defined value of 2N × 2N. If the rqt_root_cbf syntax element is present, the value of the rqt_root_cbf syntax element indicates whether a transform_tree () syntax structure exists for a CU, as described with reference to FIGS. 17a and 17b. On the other hand, when (1) CU is intra BC predicted in skip mode, or (2) CU is intra BC predicted, and the division mode of CU is a predetermined value of 2N × 2N, There is no rqt_root_cbf syntax element. If the CU is intra BC predicted in skip mode, the value of rqt_root_cbf is assumed to be 0 (no residual data for the CU). Alternatively, if the CU is intra BC predicted and the division mode of the CU is a defined value of 2N × 2N, the value of rqt_root_cbf is estimated to be 1 (there is residual data for the CU )

開示した本発明の原理を適用することができる多くの可能な実施形態を鑑みると、例示した実施形態は、本発明の好ましい例に過ぎないことを認識すべきであり、本発明の範囲を限定するものとして解釈すべきではない。そうではなく、本発明の範囲は、請求項により定められる。したがって、我々は、請求項の範囲及び主旨に含まれる全てを、我々の発明として特許請求する。   In view of the many possible embodiments to which the disclosed principles of the invention can be applied, it should be appreciated that the illustrated embodiments are only preferred examples of the invention, and which therefore limit the scope of the invention. It should not be interpreted as Instead, the scope of the invention is defined by the claims. Accordingly, we claim as our invention all that comes within the scope and spirit of the claims.

Claims (10)

ビデオデコーダ又は画像デコーダを有するコンピューティングデバイスにおける方法であって、
ビットストリームからの、ピクチャ内の現ブロックがイントラブロックコピー(BC)予測を用いてスキップモードで符号化されていることを示すフラグを含む符号化されたデータを受信するステップであって、前記ビットストリームは、前記現ブロックのブロックベクトル(BV)差分を含むが、前記現ブロックの残差データを含まない、ステップと、
前記現ブロックの前記BV差分及び前記現ブロックのBV予測子を使用して、前記現ブロックのBV値を決定するステップであって、前記現ブロックの前記BV値は、前記ピクチャ内の参照領域への変位を示す、ステップと、
前記BV値を使用するイントラBC予測を用いて、前記現ブロックを復号するステップと、
を含む方法。
A method in a computing device having a video decoder or an image decoder, comprising:
Receiving from the bitstream encoded data including a flag indicating that the current block in the picture is encoded in skip mode using intra block copy (BC) prediction, said bits A stream includes block vector (BV) differences of the current block but does not include residual data of the current block;
Determining the BV value of the current block using the BV difference of the current block and the BV predictor of the current block, wherein the BV value of the current block is to a reference region in the picture Showing the displacement of the
Decoding the current block using intra BC prediction using the BV values;
Method including.
前記ビットストリームは、前記現ブロックの前記BV予測子として使用するための、複数のBV予測子候補のセットからのBV予測子候補の選択を示すインデックス値をさらに含む、請求項1記載の方法。   The method of claim 1, wherein the bitstream further comprises an index value indicating selection of BV predictor candidates from a set of BV predictor candidates for use as the BV predictor for the current block. 前記ピクチャ内の後続ブロックに関して、
第1のフラグは、前記後続ブロックが、イントラBC予測を用いてスキップモードで符号化されているか否かを示し、
前記後続ブロックが、イントラBC予測を用いてスキップモードで符号化されていない場合、第2のフラグは、前記後続ブロックが、イントラBC予測を用いて非スキップモードで符号化されているか否かを示す、請求項1記載の方法。
Regarding subsequent blocks in the picture:
The first flag indicates whether the subsequent block is encoded in skip mode using intra BC prediction,
If the subsequent block is not coded in skip mode using intra BC prediction, the second flag indicates whether the subsequent block is coded in non skip mode using intra BC prediction The method of claim 1 which is shown.
前記ピクチャ内の後続ブロックに関して、
前記後続ブロックが、イントラBC予測を用いて非スキップモードで符号化されている場合、前記ビットストリームは、前記後続ブロックの分割モードを示すシンタックス要素を含み、
前記後続ブロックが、イントラBC予測を用いてスキップモードで符号化されている場合、前記ビットストリームは、前記後続ブロックの前記分割モードを示す前記シンタックス要素を含まず、前記後続ブロックの前記分割モードは、定められた値を有する、請求項1記載の方法。
Regarding subsequent blocks in the picture:
If the subsequent block is encoded in non-skip mode using intra BC prediction, the bitstream includes a syntax element indicating a division mode of the subsequent block,
When the subsequent block is encoded in skip mode using intra BC prediction, the bitstream does not include the syntax element indicating the division mode of the subsequent block, and the division mode of the subsequent block The method according to claim 1, wherein has a defined value.
前記ピクチャ内の後続ブロックに関して、
前記後続ブロックが、イントラBC予測を用いてスキップモードで符号化されている場合、前記ビットストリームは、前記後続ブロックの残差データの有無を示すフラグを含まず、前記後続ブロックの前記残差データは、前記ビットストリーム内に無いとみなされる、請求項1記載の方法。
Regarding subsequent blocks in the picture:
When the subsequent block is encoded in a skip mode using intra BC prediction, the bitstream does not include a flag indicating presence or absence of residual data of the subsequent block, and the residual data of the subsequent block The method according to claim 1, wherein is considered not to be in the bitstream.
前記ピクチャ内の前記後続ブロックに関して、
前記後続ブロックが、イントラBC予測を用いて非スキップモードで符号化されており、前記後続ブロックの分割モードが、定められた値を有する場合、前記ビットストリームは、前記後続ブロックの残差データの有無を示す前記フラグを含まず、前記後続ブロックの前記残差データは、前記ビットストリーム内に有るとみなされ、
前記後続ブロックが、イントラBC予測を用いて非スキップモードで符号化されており、前記後続ブロックの前記分割モードが、前記定められた値を有さない場合、前記ビットストリームは、前記後続ブロックの残差データの有無を示す前記フラグを含む、請求項5記載の方法。
Regarding the subsequent block in the picture:
If the subsequent block is encoded in non-skip mode using intra BC prediction, and the division mode of the subsequent block has a defined value, then the bitstream is of residual data of the subsequent block. Not including the flag indicating presence or absence, the residual data of the subsequent block is considered to be in the bitstream;
If the subsequent block is encoded in non-skip mode using intra BC prediction, and the division mode of the subsequent block does not have the determined value, then the bitstream is of the subsequent block. The method according to claim 5, further comprising the flag indicating presence or absence of residual data.
前記イントラBC予測は、
前記参照領域を使用して、前記現ブロックについてのイントラBC予測領域を決定することであって、前記イントラBC予測領域は、前記参照領域に対して反転されている、決定すること
を含む、請求項1記載の方法。
The intra BC prediction is
Using the reference region to determine an intra BC prediction region for the current block, the intra BC prediction region comprising determining inverted with respect to the reference region. Item 2. The method according to Item 1.
前記イントラBC予測領域は、前記参照領域に対して水平方向及び/又は垂直方向に反転されている、請求項7記載の方法。   The method according to claim 7, wherein the intra BC prediction region is horizontally and / or vertically inverted with respect to the reference region. 請求項1乃至8いずれか一項記載の方法を実行するよう適合されているコンピューティングデバイス。   A computing device adapted to perform the method according to any one of the preceding claims. コンピューティングデバイスに請求項1乃至8いずれか一項記載の方法を実行させるプログラム。   A program that causes a computing device to perform the method according to any one of the preceding claims.
JP2018031280A 2018-02-23 2018-02-23 Block inversion and skip mode in intra block copy prediction Active JP6503101B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018031280A JP6503101B2 (en) 2018-02-23 2018-02-23 Block inversion and skip mode in intra block copy prediction

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018031280A JP6503101B2 (en) 2018-02-23 2018-02-23 Block inversion and skip mode in intra block copy prediction

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2016555545A Division JP2017512026A (en) 2014-03-04 2014-03-04 Block inversion and skip mode in intra block copy prediction

Publications (2)

Publication Number Publication Date
JP2018088715A JP2018088715A (en) 2018-06-07
JP6503101B2 true JP6503101B2 (en) 2019-04-17

Family

ID=62494650

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018031280A Active JP6503101B2 (en) 2018-02-23 2018-02-23 Block inversion and skip mode in intra block copy prediction

Country Status (1)

Country Link
JP (1) JP6503101B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022513857A (en) 2018-12-12 2022-02-09 ウィルス インスティテュート オブ スタンダーズ アンド テクノロジー インコーポレイティド Currently video signal processing methods and equipment using picture references
US20230080116A1 (en) * 2020-02-14 2023-03-16 Lg Electronics Inc. Image coding/decoding method and device for selectively signaling filter availability information, and method for transmitting bitstream

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010525658A (en) * 2007-04-19 2010-07-22 トムソン ライセンシング Adaptive reference image data generation for intra prediction
WO2011048903A1 (en) * 2009-10-20 2011-04-28 シャープ株式会社 Video encoding device, video decoding device, and data structure

Also Published As

Publication number Publication date
JP2018088715A (en) 2018-06-07

Similar Documents

Publication Publication Date Title
US11910005B2 (en) Block vector prediction in video and image coding/decoding
US11758162B2 (en) Rules for intra-picture prediction modes when wavefront parallel processing is enabled
US11683522B2 (en) Adaptive switching of color spaces, color sampling rates and/or bit depths
US10652576B2 (en) Features of base color index map mode for video and image coding and decoding
AU2014385769B2 (en) Block flipping and skip mode in intra block copy prediction
EP3114841B1 (en) Encoder-side decisions for block flipping and skip mode in intra block copy prediction
CN107211155B (en) Special case handling of merged chroma blocks in intra block copy prediction mode
RU2683165C1 (en) Intra block copy prediction with asymmetric partitions and encoder-side search patterns, search ranges and approaches to partitioning
CA2940015C (en) Adjusting quantization/scaling and inverse quantization/scaling when switching color spaces
JP6503101B2 (en) Block inversion and skip mode in intra block copy prediction

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190221

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190305

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190322

R150 Certificate of patent or registration of utility model

Ref document number: 6503101

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250