JP2018088715A - Block flipping and skip mode in intra block copy prediction - Google Patents

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

Info

Publication number
JP2018088715A
JP2018088715A JP2018031280A JP2018031280A JP2018088715A JP 2018088715 A JP2018088715 A JP 2018088715A JP 2018031280 A JP2018031280 A JP 2018031280A JP 2018031280 A JP2018031280 A JP 2018031280A JP 2018088715 A JP2018088715 A JP 2018088715A
Authority
JP
Japan
Prior art keywords
prediction
intra
block
encoded
value
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.)
Granted
Application number
JP2018031280A
Other languages
Japanese (ja)
Other versions
JP6503101B2 (en
Inventor
リー,ビン
Bing Li
シュウ,ジツェン
Jizheng Xu
ウー,フェン
Feng Wu
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 Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
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 Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
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

Abstract

PROBLEM TO BE SOLVED: To provide innovations in the area of encoding or decoding of blocks using intra block copy (BC) prediction.SOLUTION: A method according to an embodiment includes the steps of: receiving, from a bitstream, encoded data which includes a flag indicating that a current block in a picture is encoded in a skip mode using intra block copy (BC) prediction, the bitstream including a block vector (BV) differential of the current block but lacking residual data of the current block; determining a BV value of the current block using the BV differential of the current block and a BV predictor of the current block, the BV value of the current block indicating a displacement to a reference region in the picture; and decoding the current block using intra BC prediction with the BV value.SELECTED DRAWING: Figure 15

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 the 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-TH H.261 standard, H.264. 262 (MPEG-2 or ISO / IEC 13818-2) standard; H.263 standard, and H.264 standard. H.264 (MPEG-4 AVC or ISO / IEC 14496-10) standard, MPEG-1 (ISO / IEC 11172-2) standard, MPEG-4 Visual (ISO / IEC 14496-2) standard, and SMPTE 421M (VC -1) Various video codec standards including standards have been adopted. More recently, H.C. The H.265 / HEVC (ITU-T H.265 or ISO / IEC 23008-2) standard is approved. H. Extensions to the H.265 / HEVC standard (eg, relating to scalable video encoding / decoding, relating to video encoding / decoding with higher fidelity in terms of sample color depth or chroma sampling rate, relating to screen capture content, (Or multi-view encoding / decoding) is currently being developed. Video codec standards typically define options for the syntax of an encoded video bitstream that detail parameters in the encoded video bitstream when specific features are used in encoding and decoding . In many cases, video codec standards also provide details regarding decoding operations that the decoder should perform to achieve consistent results in decoding. Apart from codec standards, various proprietary codec formats define other options for the syntax of the encoded video bitstream and corresponding decoding operations.

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

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

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

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

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

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

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

エンコーダ又はデコーダが、参照領域に対して反転されているイントラ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 with respect to the reference region, the encoder or decoder determines (a) the reference region, (b) inverts the reference region, and then (c ) The sample values at the positions of the inverted reference regions can be assigned to the sample values at those locations of the intra BC prediction region. Alternatively, the encoder or decoder (a) determines reference areas, (b) assigns sample values at the positions of the reference areas to sample values at those positions of the intra BC prediction area, and then (c) intra BC prediction. The region can be reversed. Alternatively, the encoder or decoder can (a) determine the reference region and then (b) assign the sample value at the position of the reference region to the sample value at the corresponding position of the intra BC prediction region, where The corresponding position takes into account inversion.

いくつかの例示的な実装において、符号化されたデータは、現ブロックの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 estimation and signaled with a BV difference relative 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, an image encoder or video encoder determines a BV value of a current block (eg, encoding unit, prediction unit) in a 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 an index value indicating selection of a BV predictor candidate from a set of multiple BV predictor candidates for use as a BV predictor. Alternatively, the BV predictor may be selected in some other way. The encoder encodes the current block using intra BC prediction using the BV value. The encoder outputs encoded data including a flag indicating that the current block is encoded in the skip mode using intra BC prediction in the bitstream. Since the current block is encoded in skip mode using intra BC prediction, the bitstream contains the BV difference of the current block but not the residual data of the current block.

いくつかの例示的な実装において、所与のブロック(例えば、現ブロック、後続ブロック)が、イントラBC予測を用いてスキップモードで符号化されていない場合、別のフラグが、所与のブロックがイントラBC予測を用いて非スキップモードで符号化されているか否かを示し得る。所与のブロックが、イントラBC予測を用いて非スキップモードで符号化されていない場合、所与のブロックは、1以上の他のシンタックス要素により示されるように、イントラ空間予測モード又はインターピクチャモード等の別のモードで符号化されているものであり得る。   In some exemplary implementations, if a given block (eg, current block, subsequent block) is not encoded in skip mode using intra BC prediction, another flag may be It may indicate whether it is encoded in non-skip mode using intra BC prediction. If a given block is not encoded in non-skip mode using intra BC prediction, the given block may be an intra spatial prediction mode or interpicture, 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 exemplary implementations, a given block (eg, current block, subsequent block) that is intra BC predicted in skip mode has a value defined for the partitioning mode (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 includes a syntax element that indicates the split mode of the given block. However, if a given block is encoded in skip mode using intra BC prediction, the bitstream does not include a syntax element indicating the partition mode of the given block, and the partition of the given block The mode has a defined value.

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

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

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

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

いくつかの説明する実施形態を実装することができる例示的なコンピューティングシステムの図。1 is an illustration of an example computing system in which some described embodiments can be implemented. いくつかの説明する実施形態を実装することができる例示的なネットワーク環境の図。FIG. 4 is an illustration of an example network environment in which some described embodiments can be implemented. いくつかの説明する実施形態を実装することができる例示的なネットワーク環境の図。FIG. 4 is an illustration of an example network environment in which some described embodiments can be implemented. いくつかの説明する実施形態を協働して実装することができる例示的なエンコーダシステムの図。1 is an illustration of an example encoder system in which some described embodiments can be implemented in concert. いくつかの説明する実施形態を協働して実装することができる例示的なデコーダシステムの図。FIG. 4 is an illustration of an example decoder system in which some described embodiments can be implemented in concert. いくつかの説明する実施形態を協働して実装することができる例示的なビデオエンコーダを示す図。FIG. 3 illustrates an example video encoder that can cooperatively implement some described embodiments. いくつかの説明する実施形態を協働して実装することができる例示的なビデオエンコーダを示す図。FIG. 3 illustrates an example video encoder that can cooperatively implement some described embodiments. いくつかの説明する実施形態を協働して実装することができる例示的なビデオデコーダを示す図。FIG. 3 illustrates an example video decoder that can cooperatively implement some described embodiments. ピクチャ内のブロックについてのイントラBC予測を示す図。及びブロックについてのBV予測を示す図。The figure which shows intra BC prediction about the block in a picture. FIG. 6 is a diagram illustrating BV prediction for blocks. ピクチャ内のブロックについてのBV予測を示す図。The figure which shows BV prediction about the block in a picture. ブロックについての参照領域の反転を示す図。The figure which shows inversion of the reference area about a block. ブロックについての参照領域の反転を示す図。The figure which shows inversion of the reference area about a block. ブロックについての参照領域の反転を示す図。The figure which shows inversion of the reference area about a block. ブロックについての参照領域の反転を示す図。The figure which shows inversion of the reference area about a block. ブロックについての参照領域の反転を示す図。The figure which shows inversion of the reference area about a block. ブロックについての参照領域の反転を示す図。The figure which shows inversion of the reference area about a block. ブロックについての参照領域の反転を示す図。The figure which shows inversion of the reference area about a block. ブロックについての参照領域の反転を示す図。The figure which shows inversion of the reference area about a block. ブロックについての参照領域の反転を示す図。The figure which shows inversion of the reference area about a block. ブロックについての参照領域の反転を示す図。The figure which shows inversion of the reference area about a block. イントラBC予測領域が参照領域に対して反転される符号化のための技術を示すフローチャート。The flowchart which shows the technique for the encoding by which an intra BC prediction area | region is inverted with respect to a reference area. イントラBC予測領域が参照領域に対して反転されている復号のための技術を示すフローチャート。6 is a flowchart illustrating a technique for decoding in which an intra BC prediction region is inverted with respect to a reference region. イントラBC予測ブロックについてのスキップモードを含む符号化のための技術を示すフローチャート。The flowchart which shows the technique for the encoding containing the skip mode about an intra BC prediction block. イントラBC予測ブロックについてのスキップモードを含む符号化のための技術を示すフローチャート。The flowchart which shows the technique for the encoding containing the skip mode about an intra BC prediction block. イントラBC予測ブロックについてのスキップモードを含む復号のための技術を示すフローチャート。7 is a flowchart illustrating a technique for decoding including a skip mode for an intra BC prediction block. イントラBC予測ブロックについてのスキップモードを含む復号のための技術を示すフローチャート。7 is a flowchart illustrating a technique for decoding including a skip mode for an intra BC prediction block. 従来のアプローチに従った、符号化ユニットについてのシンタックス構造を示すテーブル。A table showing the syntax structure for a coding unit, according to a conventional approach. 従来のアプローチに従った、符号化ユニットについてのシンタックス構造を示すテーブル。A table showing the syntax structure for a coding unit, according to a conventional approach. スキップモードでのイントラBC予測ブロックとして符号化され得る符号化ユニットについての新たなシンタックス構造を示すテーブル。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 innovations in the area of block coding or decoding using intra block copy (“BC”) prediction. For example, some of the innovations relate to block inversion, where an intra BC prediction block is inverted with respect to a reference region that may be indicated by a block vector (“BV”) value. Another innovation relates to skip mode signaling where the current intra BC prediction block uses the signaled BV difference but has no residual data. In many situations, this innovation improves the coding efficiency of intra BC prediction blocks.

本明細書に記載のオペレーションは、ビデオエンコーダ又はビデオデコーダにより実行されるものとして所々で説明されるが、多くの場合、このようなオペレーションは、別のタイプのメディア処理ツール(例えば、画像エンコーダ又は画像デコーダ)により実行することができる。   Although the operations described herein are described in some places as being performed by a video encoder or video decoder, in many cases such operations are performed by other types of media processing tools (eg, image encoders or 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.M. 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 include, for example, changing the order of method operations described, dividing predetermined method operations, repeating predetermined method operations, or predetermined It can be changed by omitting the method operation. Various aspects of the disclosed technology may 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 problems 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 innovations described. The computing system (100) is not intended to suggest limitations as to the scope of use or functionality. This is because the innovation can be implemented in a variety of general purpose 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, the computing system (100) includes one or more processing units (110, 115) and memory (120, 125). The processing devices (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 devices execute computer-executable instructions to increase processing power. For example, FIG. 1 shows a graphics processing unit or co-processing unit (115) in addition to the central processing unit (110). 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, A flash memory or the like, or some combination of these two. The memory (120, 125) is software that implements 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 units. 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 a 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). Typically, operating system software (not shown) provides an operating environment for other software executing on the computing system (100) and coordinates the operation of the components of the computing system (100).

有体のストレージ(140)は、着脱可能であっても着脱不可能であってもよく、磁気ディスク、磁気テープ、磁気カセット、CD−ROM、DVD、又は、情報を記憶するために使用することができ、コンピューティングシステム(100)内でアクセスされ得る任意の他の媒体を含む。ストレージ(140)は、イントラBC予測におけるブロック反転及び/又はスキップモードのための1以上のイノベーションを実装するソフトウェア(180)の命令を記憶する。   The tangible storage (140) may be removable or non-removable and is used for storing magnetic disks, magnetic tapes, magnetic cassettes, CD-ROMs, DVDs or information. And any other medium that can be accessed within the computing system (100). The storage (140) stores software (180) instructions that implement 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 touch input devices such as a keyboard, mouse, pen, or trackball, voice input devices, scanning devices, or another device that provides 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 video input to a computing system (100 CD-ROM or CD-RW. The one or more output devices (160) may be a display, printer, speaker, CD writer, or another device that provides output from the computing system (100).

1以上の通信接続(170)は、通信媒体を介した別のコンピューティングエンティティとの通信を可能にする。通信媒体は、変調されたデータ信号により、コンピュータ実行可能な命令、オーディオ入力、ビデオ入力、オーディオ出力、ビデオ出力、又は他のデータ等の情報を伝達する。変調されたデータ信号とは、信号内の情報を符号化するように設定又は変更された特性のうちの1以上を有する信号である。限定ではなく例として、通信媒体は、電気、光、RF、又は他のキャリアを使用することができる。   One or more communication connections (170) allow 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 in a modulated data signal. A modulated data signal is a signal that has one or more of the characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media can 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 can be 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 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, for example, included in program modules and executed on a target real processor 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 functions of the program modules may be combined or divided among the program modules as necessary in various embodiments. Computer-executable instructions for program modules may be executed within a local computing system or a distributed computing system.

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

開示する方法は、開示する方法のいずれかを実行するよう構成された専用コンピューティングハードウェアを用いて実装することもできる。例えば、開示する方法は、開示する方法のいずれかを実行するよう特別に設計又は構成された集積回路(例えば、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 (such as an ASIC digital signal processor (“DSP”)), graphics processing device (“GPU”) that is specifically designed or configured to perform any of the disclosed methods. Or a programmable logic device ("PLD") such as a field programmable gate array ("FPGA")).

提示の目的上、詳細な説明では、コンピューティングシステムにおけるコンピュータオペレーションを説明するための「決定する」及び「使用する」のような用語が使用される。これらの用語は、コンピュータにより実行されるオペレーションの高レベル抽象表現であって、人間により実行される動作と混同すべきではない。これらの用語に対応する実際のコンピュータオペレーションは、実装に応じて変化する。   For purposes of presentation, the detailed description uses terms such as “determine” and “use” to describe computer operations in the computing system. These terms are high-level abstract representations of operations performed by a computer and should not be confused with operations performed by a human. The actual computer operations corresponding 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 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 bidirectional communication. A given encoder (220) Producing output conforming to the H.265 / HEVC standard variant or extension, SMPTE 421M standard, ISO / IEC 14496-10 standard (also known as H.264 or AVC), another standard, or proprietary format The corresponding decoder (270) can accept the encoded data from the encoder (220). Two-way communication may be part of a video conference, video call, 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 three or more real-time communication tools (210) that participate in multi-party communication.

リアルタイム通信ツール(210)は、エンコーダ(220)による符号化を管理する。図3は、リアルタイム通信ツール(210)に含まれ得る例示的なエンコーダシステム(300)を示している。代替的に、リアルタイム通信ツール(210)は、別のエンコーダシステムを使用してもよい。リアルタイム通信ツール(210)はまた、デコーダ(270)による復号も管理する。図4は、リアルタイム通信ツール(210)に含まれ得る例示的なデコーダシステム(400)を示している。代替的に、リアルタイム通信ツール(210)は、別のデコーダシステムを使用してもよい。   The real-time communication tool (210) manages 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 the 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. Although the network environment (202) of FIG. 2b includes two playback tools (214), the network environment (202) may include more or fewer playback tools (214). In general, playback tool (214) communicates with encoding tool (212) to determine a stream of video received by playback tool (214). The playback tool (214) receives the stream, buffers the received encoded data for an appropriate period, 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 encoding tool (212) may also include server-side controller logic for managing connections 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 for managing connections with the encoding 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) in which some described embodiments can be implemented in concert. The encoder system (300) includes a plurality of codes such as a low delay encoding mode for real-time communication, a transcoding mode, and a higher delay encoding mode for generating media for playback from a file or stream. It may be a general purpose coding tool that can operate in any of the 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 a particular type 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 encoded data output to the channel may include content encoded using block inversion and / or skip mode in intra BC prediction, as described herein.

ビデオソース(310)は、カメラ、チューナカード、記憶媒体、スクリーンキャプチャモジュール、又は他のデジタルビデオソースとすることができる。ビデオソース(310)は、例えば、毎秒30フレームといったフレームレートで一連のビデオフレームを生成する。本明細書で使用されるとき、「フレーム」という用語は、一般に、ソースの符号化又は再構成された画像データを指す。プログレッシブスキャンビデオに関して、フレームは、プログレッシブスキャンビデオフレームである。インターレースビデオに関して、例示的な実施形態において、インターレースビデオフレームは、符号化の前にインターレース解除され得る(de-interlaced)。代替的に、2つの相補的インターレースビデオフィールドが、1つのビデオフレームとして一緒に符号化されてもよいし、2つの別々に符号化されるフィールドとして符号化されてもよい。プログレッシブスキャンビデオフレーム又はインターレーススキャンビデオフレームを示すかは別にして、「フレーム」又は「ピクチャ」という用語は、単一の対でないビデオフィールド、相補的な一対のビデオフィールド、所与の時間におけるビデオオブジェクトを表すビデオオブジェクトプレーン、又はより大きな画像における関心領域を示し得る。ビデオオブジェクトプレーン又は領域は、シーンの複数のオブジェクト又は領域を含むより大きな画像の一部であり得る。   The video source (310) can 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 of, for example, 30 frames per second. As used herein, the term “frame” generally refers to source encoded or reconstructed image data. With respect to progressive scan video, the frame is a progressive scan video frame. With respect to 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. Whether referring to progressive scan video frames or interlaced scan video frames, the term “frame” or “picture” refers to a single unpaired video field, a complementary pair of video fields, video at a given time. A video object plane representing the object, or a region of interest in a larger image may be shown. A 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 arriving source frame (311) is stored in a source frame temporary memory storage area (320) including 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 from the order in which frames are generated by the video source (310). For example, the encoding of several frames may be delayed in order to allow several subsequent frames to be encoded first, thereby facilitating temporal backward prediction. Prior to the encoder (340), the encoder system (300) may include a preprocessor (not shown) that performs preprocessing (eg, filtering) of the selected frame (331) prior to encoding. Preprocessing includes color space conversion to primary (eg, luma) and secondary (eg, chroma difference for red and blue) components for encoding and (eg, to reduce the spatial resolution of the chroma component). A resampling process may be included. Usually, before encoding, the video is converted to a color space such as YUV. In YUV, the sample value of the luma (Y) component represents a luminance value or brightness value, and the sample value of the chroma (U, V) component represents a color difference value. The exact definition of the color difference values (and the conversion operation from the YUV color space to another color space such as RGB and the conversion operation from another color space such as RGB to the YUV color space) depends on the implementation. 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, and Y′UV, YIQ, In addition to Y′IQ and YDbDr, modifications such as YCbCr and YCoCg are included. Chroma sample values can be subsampled to a lower chroma sampling rate (eg, to match YUV4: 2: 0 format), or chroma sample values can be subsampled (eg, to match YUV4: 4: 4 format). ) Can have the same resolution as the luma sample value. Alternatively, the video can 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. The 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, when performing the encoding process, the encoder (340) may encode one or more previously encoded data stored in the decoded frame temporary memory storage area (360). / Decoded frame (369) can be used. Such stored decoded frame (369) is used as a reference frame for interframe prediction (interframe prediction) of the content of the current source frame (331). The MMCO / RPS information (342) indicates to the decoder which reconstructed frame can be used as a reference frame and therefore 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 encoding modules that perform encoding tasks such as division into tiles, intra prediction estimation and prediction, motion estimation and motion compensation, frequency conversion, quantization, and entropy encoding. . 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.264. H.265 / HEVC format modification or expansion, Windows (registered trademark) Media Video format, VC-1 format, MPEG-x format (eg, MPEG-1, MPEG-2, or MPEG-4), H.264. 26x format (eg, 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 define the horizontal and vertical boundaries of the tiles in the frame using the frame boundaries. 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, the slice may be the entire frame or a region of the 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 coding 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 can be, for example, 64 × 64 sample values, 32 × 32 sample values, or 16 × 16 sample values. A CTU includes one or more encoding units. The coding unit (“CU”) has one luma coding block (“CB”) and two corresponding chroma CBs. For example, a CTU (YUV 4: 4: 4 format) with one 64 × 64 luma CTB and two 64 × 64 chroma CTBs 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) with 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 minimum allowable size of a CU (eg, 8 × 8, 16 × 16) 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. A CU includes one or more prediction units for signaling and / or prediction 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-predicted CUs, the PU has the same size as the CU unless the CU has a minimum size (eg, 8 × 8). In this case, the CU may be divided into 4 smaller PUs (eg, 4 × 4 each if the minimum CU size is 8 × 8), or the PU is indicated by a syntax element for the CU. Can have a minimum CU size. The CU also has one or more transform units for residual encoding / decoding. Here, the transform unit (“TU”) has one luma transform block (“TB”) and two chroma TBs. A PU in an intra-predicted CU may include one TU (equal in size to the PU) or multiple TUs. The encoder determines how to split the video into CTUs, CUs, PUs, TUs, etc.

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

本明細書で使用されるとき、「ブロック」という用語は、文脈に応じて、マクロブロック、予測ユニット、残差データユニット、すなわち、CB、PB、若しくはTB、又は、サンプル値の何らかの他のセットを示し得る。   As used herein, the term “block” refers to a macroblock, a prediction unit, a residual data unit, ie, CB, PB, or TB, or some other set of sample values, depending on the context. 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 the 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 a BV value (determined in the block vector (“BV”) estimation). The reference region may be one that is inverted with respect 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 (a BV value for intra BC prediction, a prediction mode (direction) for intra spatial prediction, etc.), and the prediction information is entropy encoded. The intra frame prediction prediction unit applies prediction information to determine an intra prediction value.

エンコーダ(340)は、参照フレームからの予測の観点でソースフレーム(331)のインターフレーム符号化予測ブロックを表現する。動き推定部は、1以上の参照フレーム(369)に対するブロックの動きを推定する。複数の参照フレームが使用される場合、複数の参照フレームは、異なる時間的方向からのものであってもよいし、同じ時間的方向からのものであってもよい。動き補償予測参照領域とは、現フレーム内のブロックのサンプル値のための動き補償予測値を生成するために使用される、1以上の参照フレーム内のサンプル値の領域である。参照領域は、本明細書で説明するように、ブロックについての予測領域に対して反転されているものであり得る。動き推定部は、動きベクトル(「MV」)情報等の動き情報を出力し、この動き情報が、エントロピ符号化される。動き補償部は、インターフレーム予測のための動き補償予測値を決定するために、MVを参照フレーム(369)に適用する。   The encoder (340) represents the inter-frame encoded prediction block of the source frame (331) from the viewpoint of prediction from the reference frame. The motion estimation unit estimates the motion of the block with respect 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. A motion compensated prediction reference region is a region of sample values in one or more reference frames that is used to generate a motion compensated prediction value for the sample values of a block in the current frame. The reference region may be one that is inverted with respect to the prediction region for the block, as described herein. The motion estimator outputs motion information such as motion vector (“MV”) information, and the motion information is entropy encoded. The motion compensation unit applies MV to the reference frame (369) in order to determine a motion compensation 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 of the block (intra or inter) and the corresponding original value. Such prediction residual values are further encoded using frequency transform, quantization, and entropy encoding. For example, the encoder (340) sets the value of a quantization parameter (“QP”) for a picture, tile, slice, and / or other part of the video and quantizes the transform coefficients accordingly. The entropy encoder of the encoder (340) adds predetermined side information (for example, MV information, index value of BV predictor, BV difference, QP value, mode determination, parameter selection) in addition to the quantized transform coefficient value ) Is also compressed. General entropy coding techniques include exponential Golomb coding, Golomu-Rice coding, arithmetic coding, differential coding, Huffman coding, run-length coding, and “V2V (variable-length-to-variable-length)” codes. , “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 encoding unit can use various encoding techniques for various types of information, and can apply a plurality of techniques in combination (for example, arithmetic encoding after applying Goromrice encoding) 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 in encoder (340) to smooth discontinuities across block boundary rows and / or block boundary columns in the decoded frame. Alternatively or additionally, other filtering (such as deringing filtering, adaptive loop filtering (“ALF”), or sample adaptive offset (“SAO”) filtering; 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) includes syntax elements for various layers of the bitstream syntax. H. With respect to syntax according to the H.265 / HEVC standard, for example, a picture parameter set (“PPS”) is a syntax structure that includes syntax elements that can 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 usually signaled separately from the encoded data for the picture (eg, one NAL unit is for PPS and one or more other NAL units are for encoded data for the picture). . In the encoded data for a picture, the syntax element indicates which PPS to use for the picture. Similarly, H.M. 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 can be associated with a sequence of pictures. The bitstream may include one SPS or multiple SPSs. The SPS is typically signaled separately from other data about the sequence, and the syntax element in the other data indicates 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)を使用する。   Encoded frame (341) and MMCO / RPS information (342) (or information equivalent to MMCO / RPS information (342) since dependency and order structure for frames are already known in encoder (340)) Are processed by the decryption process emulator (350). The decoding process emulator (350) implements a part of decoder functions such as a decoding task for reconstructing a reference frame, for example. The decoding process emulator (350) uses a given encoded frame (341) as a reference frame in interframe prediction of subsequent frames to be encoded, consistent with MMCO / RPS information (342). It is determined whether it needs to be reconstructed and stored. If the encoded frame (341) needs to be stored, the decoding process emulator (350) will be performed by a decoder that receives the encoded frame (341) and generates a corresponding decoded frame (351). Simulate the decryption 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. , One or more decoded frames (369) are used from the storage area (360).

復号フレーム一時メモリ記憶領域(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) can match any frame buffer (361, 362) with a frame that is no longer needed by the encoder (340) for use as a reference frame to be consistent with the MMCO / RPS information (342). Etc.), the contents of the storage area (360) are managed. 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 encoded frame (341) and the MMCO / RPS information (342) are buffered in the temporary encoded 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 field (370) is also (eg, as one or more parameters in one or more supplemental enhancement information (“SEI”) messages or video usability information (“VUI”) messages). Media metadata associated with the encoded video data may be included.

一時符号化データ領域(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 encoded data area (370) is processed by the channel encoder (380). The channel encoder (380) is in accordance with 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 format such as IETF RFC 3550. The collected data can be packetized and / or multiplexed for transmission or storage as a media stream. In such a case, the channel encoder (380) may add syntax elements as part of the syntax of the media transport stream. 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 a case, 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 protocols or transport protocols. In such a case, the channel encoder (380) may add syntax elements as part of the syntax of one or more protocols. Channel encoder (380) provides an output to channel (390). Channel (390) represents another channel for storage, communication connection, or output. Channel encoder (380) or channel (390) may also include other elements (not shown), eg, for forward error correction (“FEC”) coding and 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) in which some described embodiments may be implemented in concert. 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 one such decoding mode. The decoder system (400) may be adapted to decode certain 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 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 mode 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) includes a channel (410) that may represent another channel for storage, communication connection, or encoded data as input. The channel (410) generates encoded data that is channel-encoded. The channel decoder (420) can process the encoded data. For example, the channel decoder (420) may be 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 a case, the channel decoder (420) can analyze the syntax elements added as part of the syntax of the media transport stream. 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 a case, the channel decoder (420) can parse the syntax elements added as part of the media storage file syntax. Alternatively, more generally, the channel decoder (420) may implement one or more media system demultiplexing protocols or transport protocols. In such a case, the channel decoder (420) can parse the syntax elements added as part of the syntax of one or more protocols. The channel (410) or channel decoder (420) may also include other elements (not shown), eg, for FEC decoding and analog signal demodulation.

十分な量のデータが受信されるまで、チャネルデコーダ(420)から出力される符号化データ(421)は、一時符号化データ領域(430)に記憶される。符号化データ(421)は、符号化フレーム(431)及びMMCO/RPS情報(432)を含む。符号化データ領域(430)内の符号化データ(421)は、エレメンタリ符号化ビデオビットストリームのシンタックスの一部として、1以上のピクチャの符号化データを含む。符号化データ領域(430)内の符号化データ(421)はまた、(例えば、1以上のSEIメッセージ又はVUIメッセージにおける1以上のパラメータとして、)符号化ビデオデータに関連するメディアメタデータを含み得る。   The encoded data (421) output from the channel decoder (420) is stored in the temporary encoded data area (430) until a sufficient amount of data is received. The encoded data (421) includes an encoded 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)に伝送される。   In general, the encoded data area (430) temporarily stores such encoded data (421) until the encoded 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) is transmitted from the encoded data area (430) to the decoder (450). As decoding progresses, 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). If necessary, when performing the decoding process, the decoder (450) may use one or more previously decoded frames (469) as reference frames 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 a plurality of 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 the encoded data of the compressed frame or series of frames and generates an output that includes the decoded frame (451). In the decoder (450), the buffer accepts the encoded data of the compressed frame and makes the received encoded data available to the entropy decoding unit at an appropriate time. The entropy decoding unit applies entropy decoding to the entropy-encoded side information in addition to the entropy-encoded quantized data by applying the inverse of the entropy encoding normally performed in the encoder. The motion compensation unit applies motion information to one or more reference frames in order to form a motion compensated prediction value of the inter-coded block of the reconstructed frame. The inter-frame reference region may be one that is inverted with respect to the prediction region for the block, as described herein. The intra frame prediction module can spatially predict the sample value of the current block from neighboring previously reconstructed sample values, or for intra BC prediction, before the intra frame prediction region in the frame. The reconstructed sample values can be used to predict sample values for the current block. The intra frame reference area may be indicated by a BV value. This reference region may be inverted with respect to the prediction region for the block, as described herein. The decoder (450) also reconstructs the prediction residual value. The inverse quantization unit performs inverse quantization on the entropy-decoded data. For example, the decoder (450) sets QP values for pictures, tiles, slices, and / or other parts of video based on syntax elements in the bitstream and dequantizes the transform coefficients accordingly. To do. The inverse frequency transform unit transforms the quantized frequency domain data into spatial 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) can similarly combine the prediction residual value with the prediction value from the intra prediction. An adaptive deblocking filter is included in the motion compensation loop in the video decoder (450) to smooth discontinuities across the 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 the MMCO / RPS information (432) to identify a frame buffer (461, 462, etc.) that can store the decoded frame (451). The decoder (450) stores the decoded frame (451) in the frame buffer.

出力シーケンサ(480)は、出力順で生成される次のフレームが復号フレーム記憶領域(460)内で利用可能になるときを識別する。出力順で生成される次のフレーム(481)が、復号フレーム記憶領域(460)内で利用可能になったとき、そのフレームが、出力シーケンサ(480)により読み出され、出力先(490)(例えば、ディスプレイ)に出力される。一般に、復号フレーム記憶領域(460)から出力シーケンサ(480)によりフレームが出力される順番は、デコーダ(450)によりフレームが復号される順番とは異なり得る。   The output sequencer (480) identifies when the next frame generated in the output order becomes available in the decoded frame storage area (460). When the next frame (481) generated in the output order becomes available in the decoded frame storage area (460), the 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 Encoder FIGS. 5a and 5b are block diagrams of a generalized video encoder (500) in which some described embodiments may be implemented in concert. The encoder (500) receives a series of video pictures including a current picture as an input video signal (505), and generates encoded data in an encoded video bitstream (595) as an output.

エンコーダ(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 in various stages, such as in a prediction stage, a frequency conversion stage, and / or an entropy encoding stage. For example, a picture may be divided into 64 × 64 blocks, 32 × 32 blocks, or 16 × 16 blocks, which are then divided into smaller sampled blocks 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 a 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 can 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 size or different sizes. For example, the tiling module (510) uses the picture boundaries to divide the picture along tile rows and tile columns that 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 a 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 controller (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 encoding control unit (520) may use other modules (tiling module (510), transform unit / scaling unit / quantization unit (530)) to set and change encoding parameters during encoding. A control signal (not shown) is supplied to a scaling unit / inverse transform unit (535), an intra picture estimation unit (540), a motion estimation unit (550), an intra / inter switch, and the like. Specifically, the general coding control unit (520) determines whether to use an intra BC prediction mode (for example, skip mode, block inversion) and an intra BC prediction mode (for example, skip mode, block) during encoding. It can be determined how to use (invert). The general coding controller (520) can also perform rate distortion analysis, for example, to evaluate intermediate results during coding. The general encoding control unit (520) generates general control data (522) indicating the decisions made during encoding, so that the corresponding decoder can make matching decisions. The general control data (522) is provided to the header formatting unit / entropy encoding unit (590).

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

動き補償部(555)は、復号ピクチャバッファ(570)からの1以上の再構成された参照ピクチャに、MVを適用する。動き補償部(555)は、現ピクチャのための動き補償予測を生成する。ブロック反転が用いられる場合、動き補償部(555)は、以下で説明するように、参照領域に対する(現ブロックについての)予測領域についての反転を考慮し得る。   The motion compensation unit (555) applies 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 inversion for the prediction region (for the current block) relative to the reference region, as described below.

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

イントラピクチャ推定部(540)は、サイド情報として、イントラ予測が空間予測を使用するかイントラBC予測を使用するかを示す情報、予測モード方向(イントラ空間予測に関して)、BV値(イントラBC予測に関して)、及びブロック反転が用いられているかどうか(イントラBC予測に関して)等のイントラ予測データ(542)を生成する。イントラ予測データ(542)は、ヘッダフォーマット化部/エントロピ符号化部(590)及びイントラピクチャ予測部(545)に提供される。   The intra picture estimation unit (540) includes, as side information, information indicating whether intra prediction uses spatial prediction or intra BC prediction, a prediction mode direction (for intra spatial prediction), and a BV value (for intra BC prediction). And intra prediction data (542) such as whether block inversion is used (for intra BC prediction). The intra prediction data (542) is provided to the header formatting unit / entropy encoding 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 value of the current block of the current picture from the adjacent reconstructed sample values of the current picture according to the intra prediction data (542). Alternatively, for intra BC prediction, the intra picture prediction unit (545) predicts the sample value of the current block using the previously reconstructed sample value of the intra frame prediction reference area indicated by the BV value of the current block. To do. For intra BC prediction, the intra picture prediction unit (545) may consider 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 from its predicted BV value. If the chroma data for a picture has the same resolution as the luma data (eg, if the format is YUV 4: 4: 4 format or RGB 4: 4: 4 format), the BV value applied for the chroma block is the 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 (eg, if the format is YUV 4: 2: 0 format), 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 prediction (558) block and the corresponding portion of the original current picture of the input video signal (505) provides the value of the residual (518). To do. For non-skip mode blocks, during reconstruction of the current picture, the reconstructed residual value is combined with the prediction (558) to approximate or accurate reconstruction of the original content from the video signal (505). (538) is generated. (In lossy compression, some information is lost from the video signal (505).)

変換部/スケーリング部/量子化部(530)において、周波数変換部は、空間領域ビデオ情報を周波数領域(すなわち、スペクトル変換)データに変換する。ブロックベースのビデオ符号化に関して、周波数変換部は、離散コサイン変換(「DCT」)、その整数近似、又は別のタイプの順ブロック変換(例えば、離散サイン変換又はその整数近似)を予測残差データ(又は、予測(558)がヌルの場合にはサンプル値データ)のブロックに適用して、周波数変換係数のブロックを生成する。エンコーダ(500)はまた、そのような変換ステップがスキップされることを指示することができる。スケーリング部/量子化部は、変換係数をスケーリングして量子化する。例えば、量子化部は、フレームごとに、タイルごとに、スライスごとに、ブロックごとに、周波数固有の単位で、又は他の単位で変わる量子化ステップサイズで、デッドゾーン(dead-zone)スカラ量子化を周波数領域データに適用する。量子化された変換係数データ(532)は、ヘッダフォーマット化部/エントロピ符号化部(590)に提供される。   In the transform unit / scaling unit / 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 performs a discrete cosine transform (“DCT”), an integer approximation thereof, or another type of forward block transform (eg, a discrete sine transform or an integer approximation thereof) to predict residual data. (Or sample value data if prediction (558) is null) to generate a block of frequency transform coefficients. The encoder (500) can also indicate that such a conversion step is skipped. The scaling unit / quantization unit scales and transforms the transform coefficient. For example, the quantization unit may perform dead-zone scalar quanta on a per-frame, per-tile, per-slice, per-block, quantization-step size that varies in frequency-specific units or other units. Applying to the 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 coefficient. The inverse frequency transform unit performs inverse frequency transform to generate a block of reconstructed prediction residual values or sample values. For non-skip mode blocks, the encoder (500) combines the reconstructed residual value with the value of the prediction (558) (eg, motion compensated prediction value, intra picture prediction value) to reconstruct (538). Is generated. For the skip mode block, encoder (500) uses the value of prediction (558) as reconstruction (538).

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

マージ部/1以上のフィルタ(565)において、エンコーダ(500)は、異なるタイルからのコンテンツを、ピクチャの再構成バージョンにマージする。エンコーダ(500)は、フレーム内の境界にわたる不連続さを適応的に平滑化するために、フィルタリング制御データ(562)に従って、デブロックフィルタリング及びSAOフィルタリングを選択的に実行する。代替的又は追加的に、他のフィルタリング(デリンギングフィルタリング又はALF等;図示せず)が、適用されてもよい。タイル境界は、エンコーダ(500)の設定に応じて、選択的にフィルタリングされ得る又はフィルタリングされず、エンコーダ(500)は、そのようなフィルタリングが適用されたか否かを示すシンタックスを、符号化ビットストリーム内に提供することができる。復号ピクチャバッファ(570)は、後続の動き補償予測において使用するために、再構成された現ピクチャをバッファする。   In the merge unit / 1 or more filters (565), the encoder (500) merges content from different tiles into a reconstructed version of the picture. The encoder (500) selectively performs deblocking filtering and SAO filtering according to the filtering control data (562) to adaptively smooth discontinuities across the boundaries in the frame. Alternatively or additionally, other filtering (such as deringing filtering or ALF; not shown) may be applied. The tile boundaries can be selectively filtered or not filtered, depending on the settings of the encoder (500), and the encoder (500) uses a syntax to indicate whether such filtering has been applied or not. 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 encoding unit (590) includes general control data (522), quantized transform coefficient data (532), intra prediction data (542), motion data (552), and filtering control data ( 562) is formatted and / or entropy encoded. Regarding the intra prediction data (542), the header formatting unit / entropy encoding unit (590) can select and entropy encode a BV predictor index value (for intra BC prediction). The header formatter / entropy encoder (590) may also entropy encode a syntax element that indicates 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 (the BV difference for the BV predictor for the BV value) and then, for example, context adaptive binary arithmetic Encode the BV difference using encoding. Specifically, the BV difference is 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 the encoded video bitstream (595). The format of the encoded video bitstream (595) is H.264. H.265 / HEVC format modification or expansion, Windows (registered trademark) Media Video format, VC-1 format, MPEG-x format (eg, MPEG-1, MPEG-2, or MPEG-4), H.264. 26x format (eg, H.261, H.262, H.263, H.264), or another format.

実装及び所望の圧縮のタイプに応じて、エンコーダのモジュールを追加してもよいし、省略してもよいし、複数のモジュールに分割してもよいし、他のモジュールと結合してもよいし、且つ/又は同様のモジュールと置換してもよい。代替実施形態において、異なるモジュール及び/又はモジュールの他の構成を有するエンコーダは、説明した技術のうちの1以上を実行する。エンコーダの特定の実施形態は、通常、エンコーダ(500)の変形又は補完バージョンを使用する。エンコーダ(500)内のモジュール間の示された関係は、エンコーダ内の情報の一般的な流れを示すものである。他の関係は、簡潔さのため示されていない。   Depending on the implementation and the type of compression desired, additional encoder modules may be added, omitted, split into multiple modules, or combined with other modules. And / or may be replaced with similar modules. 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 modified or complementary version of the encoder (500). The illustrated relationship between modules within the encoder (500) is indicative of the general flow of information within the encoder. Other relationships are not shown for 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 can implement several described embodiments in concert. The decoder (600) receives the encoded data in the encoded video bitstream (605) and generates an output that includes pictures for the reconstructed video (695). The format of the encoded video bitstream (605) is H.264. H.265 / HEVC format modification or expansion, Windows (registered trademark) Media Video format, VC-1 format, MPEG-x format (eg, MPEG-1, MPEG-2, or MPEG-4), H.264. 26x format (eg, 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. Blocks can be further subdivided at various stages. For example, a picture may be divided into 64 × 64 blocks, 32 × 32 blocks, or 16 × 16 blocks, which in turn may be divided into blocks with smaller sample values. H. In the decoding implementation for the H.265 / HEVC standard, a picture is 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 can 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 accepts the encoded data in the encoded video bitstream (605) and makes the received encoded data available to the analyzer / entropy decoder (610). The analysis / entropy decoding unit (610) entropy decodes the entropy encoded data by applying the inverse of the entropy encoding (eg, context adaptive binary arithmetic decoding) normally performed in the encoder (500). To do. As a result of analysis and entropy decoding, the analysis unit / entropy decoding unit (610) includes general control data (622), quantized transform coefficient data (632), intra prediction data (642), motion data (652), And filtering control data 662 is generated. Regarding the intra prediction data (642), the analysis unit / entropy decoding unit (610) performs entropy decoding on the BV predictor index value (for intra BC prediction). The analysis unit / entropy decoding unit (610) also entropy decodes a syntax element indicating whether block inversion is used for intra BC prediction (or motion compensation). In some cases, the analyzer / entropy decoder (610) also entropy decodes the BV difference of the BV value (eg, using context adaptive binary arithmetic decoding) and then converts the BV difference to the corresponding BV prediction. Combine with the child to reconstruct the BV value. Specifically, for a skip mode intra BC prediction block, the BV difference is analyzed from the bitstream and combined with a BV predictor (eg, indicated by a BV predictor index value) to reconstruct the BV value.

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

現ピクチャが、インターピクチャ予測を用いて予測される場合、動き補償部(655)は、MVデータ等の動きデータ(652)、参照ピクチャ選択データ、マージモードインデックス値、及び(動き補償について)ブロック反転が用いられているか否かを示すシンタックス要素を受信する。動き補償部(655)は、復号ピクチャバッファ(670)からの1以上の再構成された参照ピクチャに、MVを適用する。ブロック反転が用いられている場合、動き補償部(655)は、以下で説明するように、参照領域に対する(現ブロックについての)予測領域についての反転を考慮し得る。動き補償部(655)は、現ピクチャ内のインター符号化ブロックのための動き補償予測を生成する。復号ピクチャバッファ(670)は、参照ピクチャとして使用するために、1以上の以前に再構成されたピクチャを記憶する。   When the current picture is predicted using inter-picture prediction, the motion compensation unit (655) performs motion data (652) such as MV data, reference picture selection data, a merge mode index value, and a block (for motion compensation). A syntax element is received indicating whether inversion is used. The motion compensation unit (655) applies 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 inversion for the prediction region (for the current block) relative to the reference region, as described below. The motion compensation unit (655) generates motion compensated prediction for inter-coded blocks 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) includes information indicating whether the intra prediction uses spatial prediction or intra BC prediction, a prediction mode direction (for intra spatial prediction), Intra prediction data (642) such as a BV value (for intra BC prediction) and a syntax element (for intra BC prediction) indicating whether block inversion is used or not are received. For intra spatial prediction, the intra picture prediction unit (645) uses the value of the current picture reconstruction (638) from the previous previously reconstructed sample values of the current picture according to the prediction mode data. Predict spatially the sample value of the current block of the picture. Alternatively, for intra BC prediction using the BV value, the intra picture prediction unit (645) uses the previously reconstructed sample value of the intra frame prediction reference area indicated by the BV value of the current block, and Predict the sample value of. For intra BC prediction, the intra picture prediction unit (645) may consider 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.M. In accordance with the H.265 / HEVC syntax, an intra / inter switch may be controlled based on one or more syntax elements encoded for a CU in a picture that may include an intra-predicted CU and an inter-predicted CU. For non-skip mode blocks, the decoder (600) combines the prediction (658) with the reconstructed residual value to produce a reconstruction (638) of content from the video signal. For the skip mode block, the decoder (600) uses the value of prediction (658) as reconstruction (638).

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

イントラピクチャ予測に関して、再構成(638)の値は、イントラピクチャ予測部(645)にフィードバックされ得る。インターピクチャ予測に関して、再構成(638)の値は、さらにフィルタリングされ得る。マージ部/1以上のフィルタ(665)において、デコーダ(600)は、異なるタイルからのコンテンツを、ピクチャの再構成バージョンにマージする。デコーダ(600)は、フレーム内の境界にわたる不連続さを適応的に平滑化するために、フィルタリング制御データ(662)とフィルタ適応のためのルールとに従って、デブロックフィルタリング及びSAOフィルタリングを選択的に実行する。代替的又は追加的に、他のフィルタリング(デリンギングフィルタリング又はALF等;図示せず)が、適用されてもよい。タイル境界は、デコーダ(600)の設定又は符号化ビットストリームデータ内のシンタックスインジケーションに応じて、選択的にフィルタリングされ得る又はフィルタリングされない。復号ピクチャバッファ(670)は、後続の動き補償予測において使用するために、再構成された現ピクチャをバッファする。   For intra picture prediction, the value of reconstruction (638) may be fed back to the intra picture prediction unit (645). For inter-picture prediction, the reconstruction (638) value may be further filtered. In the merge unit / 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 the boundaries in the frame. Run. Alternatively or additionally, other filtering (such as deringing filtering or ALF; not shown) may be applied. Tile boundaries can be selectively filtered or not filtered depending on the settings of the decoder (600) or syntax indications in the encoded bitstream 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. The post-processing filter (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, decoder modules may be added, omitted, split into multiple modules, or combined with other modules. And / or may be replaced with similar modules. In alternative embodiments, decoders with different modules and / or other configurations of modules perform one or more of the described techniques. Certain embodiments of the decoder typically use a modified or complementary version of the decoder (600). The relationship shown between the modules in the decoder (600) shows the general flow of information in the decoder. Other relationships are not shown for 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, where an intra BC prediction block is inverted with respect to a reference region that may be indicated by a block vector (“BV”) value. Another feature relates to skip mode signaling where the current intra BC prediction block uses the signaled BV difference 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)で符号化されてもよい。スクリーンキャプチャコンテンツの符号化/復号についての一般的なシナリオは、リモートデスクトップ会議、及び、自然ビデオ又は他の「混合コンテンツ」ビデオ上のグラフィカルオーバーレイの符号化/復号を含む。   Specifically, the described innovation can improve rate distortion performance when encoding predetermined “artificially” created video content, such as screen capture content. Screen capture content generally includes repetitive structures (eg, graphics, text characters), which provides an opportunity for intra BC prediction to improve performance. Screen capture content is typically 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). ). Common scenarios for encoding / decoding screen capture content include remote desktop conferencing and encoding / decoding of graphical overlays on natural or other “mixed content” video.

A.イントラBC予測モード、BV値、及びBV予測−序論
イントラBC予測に関して、ピクチャ内の現ブロックのサンプル値は、同じピクチャ内のサンプル値を使用して予測される。BV値は、現ブロックから、予測のために使用されるサンプル値を含む、ピクチャ内の領域(「参照領域」)への変位を示す。参照領域は、現ブロックについて予測された値(「イントラBC予測領域」)を提供する。予測のために使用されるサンプル値は、以前に再構成されたサンプル値であり、したがって、符号化中にエンコーダにおいて利用可能であり、復号中にデコーダにおいて利用可能である。BV値は、ビットストリームに含められてシグナリングされ得、デコーダは、BV値を使用して、予測のために使用する、ピクチャ内の参照領域(デコーダにおいて再構成されている)を決定することができる。イントラBC予測は、ピクチャ内予測の一形態であり、ピクチャ内のブロックについてのイントラBC予測は、同じピクチャ内のサンプル値以外のいずれのサンプル値も使用しない。
A. Intra BC Prediction Mode, BV Value, and BV Prediction—Introduction For intra BC prediction, the sample value of the current block in a picture is predicted using the sample value in the same picture. The BV value indicates the displacement from the current block to a region in the picture (“reference region”) that contains the sample values used for prediction. The reference area provides a value predicted for the current block (“intra BC prediction area”). The sample values used for prediction are the previously reconstructed sample values and are therefore available at the encoder during encoding and at the decoder during decoding. The BV value may be signaled included in the bitstream, and the decoder may use the BV value 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 the 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 includes a coding block (“CB”) of the coding unit (“CU”), a prediction block (“PB”) of the prediction unit (“PU”), and a transform block (“TU”) of the transform unit (“TU”). 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 each other or may have different values. . Alternatively, the current block may have some other shape (eg, a region of a non-rectangular 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 region (780) in the picture containing the sample values used for prediction. The reference region (780) indicated by BV (761) is sometimes referred to as the “collation block” for the current block (760). The verification 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 the upper left position of the reference area is at position (x 1 , y 1 ) in the current frame. BV represents a displacement (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), the BV value is (−80, −24). In this example, a negative horizontal displacement indicates a position to the left of the current block, and a negative vertical displacement indicates a position above the current block.

イントラBC予測は、BCオペレーションを用いて冗長性(フレーム内部の繰り返しパターン等)を利用することにより、符号化効率を向上させることができる。現ブロックのサンプル値は、現ブロックのサンプル値を直接符号化する代わりに、BV値を使用して表現される。現ブロックのサンプル値が、BV値により示される参照領域のサンプル値に正確には合致しない場合であっても、この差は、無視できるほどのもの(知覚的に気付かれないもの)であり得る。あるいは、この差が大きい場合には、この差は、現ブロックについてのオリジナルのサンプル値よりも効率的に圧縮することができる残差データとして符号化され得る。   Intra BC prediction can improve coding efficiency by using redundancy (such as a repetitive pattern inside a frame) using a BC operation. Instead of encoding the current block sample values directly, the current block sample values are represented using BV values. Even if the current block sample value does not exactly match the reference region sample value indicated by the BV value, this difference can be negligible (not perceptually noticeable). . Alternatively, if the difference is large, the difference can be encoded as residual data that can be compressed more efficiently than the original sample value 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 value of a block encoded using intra BC prediction may consume a large number of bits. The BV value can be entropy encoded to reduce the bit rate. 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 or even the same as the BV value of the previous block in the picture. For BV prediction, the BV value for a given block is predicted using a BV predictor. The difference between the BV value of the given block and the BV predictor (ie BV difference) is then entropy encoded. Normally, the BV difference is calculated for the horizontal component and the vertical component of the BV value and the BV predictor. 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-P1005), 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 from among a plurality of available BV values (eg, 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差分がエントロピ符号化される。   FIG. 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 the entropy-encoded BV difference of the BV value and performs entropy decoding. The decoder also determines a 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 and the decoded BV difference to reconstruct the BV value.

B.イントラBC予測におけるブロック反転
イントラBC予測の以前のアプローチにおいて、BV値により示される参照領域は、現ブロックについてのイントラBC予測領域を提供する。すなわち、参照領域のサンプル値が、現ブロックについてのイントラBC予測値である。
B. Block Inversion in Intra BC Prediction In previous approaches to intra BC prediction, the reference region indicated by the BV value provides an intra BC prediction region for the current block. That is, the sample value of the reference area is an intra BC prediction 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 with respect to the reference region. The BV value of the current block can indicate a reference area. Instead of using the reference area directly as the intra BC prediction area for the current block, the reference area can be flipped horizontally and / or vertically. In particular, block inversion can improve the encoding efficiency of text characters in screen capture content.

1.ブロック反転の例
図8a〜図8d、図9a〜図9c、及び図10a〜図10cは、イントラBC予測におけるブロック反転の例を示している。
1. Example of Block Inversion FIGS. 8a to 8d, 9a to 9c, and 10a to 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) includes the text character p shown in detail in FIG. 8b. The 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 shown in detail in FIG. 8c. Without inversion, the reference region (880) is a poor predictor for the current block (860). (The difference between the current block (860) and the reference area (880) for each sample is large.)

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

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

ブロック反転を用いると、多くのフォントに関して、テキスト文字のセット(例えば、b、d、p、及びqのセット、又は、u及びnのセット)内のテキスト文字を含むブロックは、テキスト文字の同じセット内の別のテキスト文字を含む参照領域から、正確に予測され得る。他のフォントに関して、テキスト文字のセット内のテキスト文字を含むブロックは、テキスト文字の同じセット内の別のテキスト文字を含む参照領域から、おおよそ予測され得る。より一般的に、ブロック反転は、スクリーンコンテンツ内の様々なアルファベットのテキスト文字又は他のパターンの符号化効率を向上させることができる。   With block reversal, 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) It can be accurately predicted from a reference area containing another text character in the set. For other fonts, a block containing a text character 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 encoding efficiency of various alphabetic text characters or other patterns in the 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, a block containing a text character (or other pattern) is intra BC predicted even if that text character (or other pattern) has not previously appeared in the picture. This can improve encoding efficiency compared to other methods of encoding blocks. Alternatively, even if a text character (or other pattern) has not previously appeared in the picture, the intra BC prediction is closer to this block than a reference region containing the same text character (or other pattern) An inverted reference area can be used. BV values for closer inverted regions can be encoded much more efficiently than BV values for more distant reference regions. For example, for a current block that includes text character q, a first candidate reference region that includes the same text character q may be indicated by a BV value (−280, −24), whereas a second that includes a different text character p. Is assumed to be indicated by the BV value (−32, 0). The second candidate reference area can be flipped horizontally to exactly match the current block. The BV value for the second candidate reference region is encoded more efficiently (with fewer bits) than the BV value for the first candidate reference region, even considering the 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 area may include multiple text characters. FIG. 9a shows the current block (960) containing the text character group 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) includes a text character group 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 flipped reference area (981) exactly matches 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 include the entire text character. As shown in FIGS. 10a-10c, the blocks and reference regions may instead include one or more portions of text characters, symbols, or symbols. FIG. 10a shows the current block (1060) containing the text character L part. The BV value of the current block (1060) indicates the displacement to the reference area (1080) in the same picture. The reference area (1080) includes a portion of the text character F, as shown in detail in FIG. 10b. Without inversion, the reference region (1080) is a poor predictor for the current block (1060). However, if the reference area (1080) is flipped vertically, the flipped 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 with respect to the reference region for the block. The block inversion operation can 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 block inversion operations, 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) The sample values at the respective positions of the inverted reference region are assigned to the sample values at the respective positions of the intra BC prediction region. For example, for a 16 × 16 block, the encoder or decoder determines the 16 × 16 reference region indicated by the BV value for that block, and then inverts the 16 × 16 reference region in the horizontal and / or vertical direction. This involves making a copy of the 16 × 16 reference area that is inverted. The sample value at the inverted reference region position is then assigned to the sample value at the same location in the intra BC prediction region (eg, the sample value at the inverted reference region position (0, 0) is the intra BC prediction). The sample value at the position (0,1) of the inverted reference region assigned to the sample value at the location (0,0) of the region is assigned to the sample value at the location (0,1) of the intra BC prediction region. 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 of performing block inversion operations, when determining the intra BC prediction region for the current block, the encoder or decoder determines (a) a reference region and (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) the intra BC prediction region is inverted. For example, for a 16 × 16 block, the encoder or decoder determines a 16 × 16 reference region indicated by the BV value for that block. The sample value at the position of the reference area is assigned to the sample value at the same position of the intra BC prediction area (for example, the sample value at the position (0, 0) of the reference area is the position (0, 0) of the intra BC prediction area). And the sample value at the reference region position (0, 1) is assigned to the sample value at the intra BC prediction region position (0, 1), etc.). The encoder or decoder then inverts the 16 × 16 intra BC prediction region in the horizontal direction and / or the vertical direction. 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 of performing block inversion operations, the encoder and decoder avoid making 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 (a) determines a reference region, and then (b) samples values at respective positions of the reference region corresponding to the intra BC prediction region. Assigned to the sample value at a position, where the corresponding position takes into account block inversion. When horizontal inversion is used, the first column of the reference region provides the last column of the intra BC prediction region, and the second column of the reference region represents the second column from the end of the intra BC prediction region. Provide, etc. When 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 contains the second row from the end of the intra BC prediction region. Provide, etc. When both horizontal inversion and vertical inversion are used, the position of the reference area can be scanned in reverse order in the horizontal and vertical directions when assigning sample values to the positions of the intra BC prediction areas. For example, for a 16 × 16 block, the encoder or decoder determines a 16 × 16 reference region indicated by the BV value for that block. The sample value at the position of the reference region is assigned to the sample value at the corresponding position of the intra BC prediction region in reverse order in the horizontal direction and / or the vertical direction (for example, the sample value at the position (0, 0) of the reference region is The sample value at the position (15, 15) of the intra BC prediction region is assigned to the sample value at the position (0, 1) of the reference region, and is assigned to the sample value at the position (15, 14) of the intra BC prediction region. , Etc.).

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

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

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

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

現ブロックについてブロック反転が用いられているか否かを示すシンタックス要素は、エントロピ符号化され得る。例えば、現ブロックについてのフラグ値は、コンテキスト適応バイナリ算術符号化を用いて符号化され、コンテキスト適応バイナリ算術復号を用いて復号される。代替的に、異なる形態のエントロピ符号化が用いられてもよいし、あるいは、シンタックス要素が、固定長の値としてシグナリングされてもよい。   A syntax element indicating whether block inversion is used for the current block may be entropy encoded. For example, the flag value for the current block is 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 conditionally signaled separately. 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 that indicate whether block inversion is being used for the current block may be jointly encoded with another syntax element in the bitstream. For example, a flag value indicating whether or not block inversion is used may be jointly encoded together with a flag value indicating whether or not 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 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 an intra BC prediction region for the current block in the picture based on the reference region in the picture (1110). The current block may be a PU, CU, or other block. The BV value of the current block identified in the BV estimation can indicate the displacement to the reference area in the picture. The intra BC prediction area is inverted with respect to the reference area. For example, the intra BC prediction region is inverted in the horizontal direction and / or the vertical direction with respect to the reference region. An example approach to performing a block inversion operation is described above (see section VII.B.2).

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

エンコーダは、スライス、タイル、又はピクチャについて、ブロック反転を用いて又は用いないで、ブロックごとに、他のイントラBC予測ブロックを同様に符号化することができる。   The encoder can similarly encode other intra BC prediction blocks for each block, 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 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 encoded data in the bitstream (1210). The encoded data includes an indication of whether the intra BC prediction area for the current block in the picture is inverted with respect to the reference area in the picture. The current block may be a PU, CU, or other block. For example, an indication is one or more syntax elements in a bitstream. An example of an approach for signaling whether block inversion is used is described above (see section VII.B.3).

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

デコーダは、スライス、タイル、又はピクチャについて、ブロック反転を用いて又は用いないで、ブロックごとに、他のイントラBC予測ブロックを同様に復号することができる。   The decoder can similarly decode other intra BC prediction blocks for each 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 to intra BC prediction, a flag for the current CU indicates whether the current CU is encoded in intra BC prediction mode. If the current CU is encoded in intra BC prediction mode, the 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 encoding / 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 an intra BC prediction block that does not have residual data. In skip mode, the intra BC prediction block uses the BV value signaled with the BV difference included in the bitstream, but does not have residual data in the bitstream. In particular, for screen capture content, intra BC prediction blocks without residual data often occur. It is efficient in such a scenario to use one flag (rather than multiple flags) for signaling intra BC prediction blocks that do not have residual data.

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, the 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, flag for whether or not temporal skip mode, intra spatial prediction mode, etc. Flag for whether or not, flag for whether or not the inter picture mode, flag for whether or not the intra spatial prediction mode or the 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 or not 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 having a 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 indicating 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, an intra BC prediction block in skip mode includes a BV difference in the bitstream but no residual data. Alternatively, an intra BC prediction block in skip mode may use the predicted BV value (thus not including BV differences in the bitstream).

2.イントラBC予測スキップモードを用いる例示的な符号化
図13は、スキップモードでイントラBC予測ブロックを符号化するための例示的な技術(1300)を示している。図3又は図5a〜図5bを参照して説明したエンコーダ等の画像エンコーダ又はビデオエンコーダが、技術(1300)を実行することができる。
2. Exemplary Coding Using Intra BC Prediction Skip Mode FIG. 13 shows an exemplary technique (1300) for encoding 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 the BV value of the current block (eg, CU, PU) in the picture using, for example, BV estimation (1310). The BV value of the current block indicates the displacement to the reference area in the picture. The encoder then determines (1320) the BV difference of the current block using the BV value of the current block and the BV predictor of the current block. The BV predictor may be selected by a rule, or the encoder may select a BV predictor from a plurality of BV predictor candidates.

エンコーダは、BV値を使用するイントラBC予測を用いて、現ブロックを符号化する(1330)。例示的な実装において、イントラBC予測は、参照領域を使用して、現ブロックについてのイントラBC予測領域を決定することを含み得、ここで、イントラBC予測領域は、参照領域に対して反転されている。イントラBC予測領域は、参照領域に対して水平方向及び/又は垂直方向に反転されているものであり得る。ブロック反転オペレーションを実行すること及びブロック反転が用いられていることをシグナリングすることについてのオプションは、上記で説明されている。代替的に、エンコーダは、イントラBC予測においてブロック反転を用いない。   The encoder encodes (1330) the current block using intra BC prediction using the BV value. 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 with respect to the reference region. ing. The intra BC prediction region may be inverted in the horizontal direction and / or the vertical direction with respect to the reference region. Options for performing block inversion operations and signaling that block inversion is being 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 the skip mode, the bitstream includes the BV difference of the current block but does not include the residual data of the current block. When the encoder selects a BV predictor from among a plurality of BV predictor candidates, the bitstream includes an index value indicating the selected BV predictor candidate for use as the BV predictor of 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予測がブロックについて十分な符号化効率を提供するか否かを評価し、残差データが大きな値を含むか否かを評価する。代替的に、エンコーダは、他の基準を考慮する。   First, the encoder obtains 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 the residual data contains large values. Alternatively, the encoder considers other criteria.

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

そうでない場合(ブロックが、スキップモードでのイントラBC予測ブロックではない場合)、エンコーダは、別のモードでブロックを符号化する(1440)。別のモードは、イントラBC予測非スキップモード、イントラ空間予測モード、インターピクチャモード、又は他のモードであり得る。この場合、1以上の他のシンタックス要素が、ブロックのモードを示し得る。例えば、(段階(1420)における決定に応じた、)ブロックがイントラBC予測を用いてスキップモードで符号化されているか否かを示す第1のフラグの後、ブロックが、イントラBC予測を用いてスキップモードで符号化されていない場合、第2のフラグが、ブロックがイントラBC予測を用いて非スキップモードで符号化されているか否かを示す。ブロックが、イントラBC予測を用いて非スキップモードで符号化されていない場合、1以上の他のシンタックス要素が、ブロックの符号化モードを示す。例えば、あるフラグが、ブロックの予測モードがイントラ空間予測であるか又はインターピクチャ予測であるかを示す。   Otherwise (if 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 indicating whether the block is encoded in skip mode using intra BC prediction (according to the determination in step (1420)), the block uses intra BC prediction. If not encoded in skip mode, the second flag indicates whether the block is encoded in non-skip mode using intra BC prediction. If the block is not encoded in non-skip mode using intra BC prediction, one or more other syntax elements indicate the encoding mode of the block. For example, a certain flag indicates whether the prediction mode of a 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, syntax element signaling indicating a split mode (eg, 2N × 2N, 2N × N, N × 2N, or N × N) of an intra BC prediction block may be avoided. For example, when a block is encoded in the non-skip mode using intra BC prediction, the encoder signals the syntax element indicating the division mode of the block in the bitstream. On the other hand, when a block is encoded in the skip mode using intra BC prediction, the encoder skips signaling by including a syntax element indicating the division mode of the block in the bitstream, and The split mode is instead considered to have a defined value (eg 2N × 2N). Therefore, in these cases, it is also signaled that the flag to which the block is marked as intra BC predicted in skip mode has a value that defines the partition mode of the block.

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

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

エンコーダは、ピクチャ内の次のブロックに進むかどうかを決定する(1450)。次のブロックに進む場合、エンコーダは、次のブロックを取得し(1410)、符号化を続ける。   The encoder determines (1450) whether to proceed to the next block in the picture. If proceeding to the next block, the encoder obtains the next block (1410) 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 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 encoded data from the bitstream (1510). The encoded data includes a flag indicating that the current block (eg, CU, PU) in the picture is encoded in the skip mode using intra BC prediction. Since the current block is an intra BC prediction block in the skip mode, the bitstream includes the BV difference of the current block but does not include the 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 a current block BV value (1520). The BV value of the current block indicates the displacement to the reference area in the picture. The BV predictor can be selected by rules. Alternatively, the decoder uses an index value in the bitstream to select which BV predictor candidate to use for use as the BV predictor of the current block, and uses the BV predictor candidates from among the plurality of BV predictor candidates. Can be selected.

デコーダは、BV値を使用するイントラBC予測を用いて、現ブロックを復号する(1530)。例示的な実装において、イントラBC予測は、参照領域を使用して、現ブロックについてのイントラBC予測領域を決定することを含み得、ここで、イントラBC予測領域は、参照領域に対して反転されている。イントラBC予測領域は、参照領域に対して水平方向及び/又は垂直方向に反転されているものであり得る。ブロック反転オペレーションを実行すること及びブロック反転が用いられていることをシグナリングすることについてのオプションは、上記で説明されている。代替的に、デコーダは、イントラBC予測においてブロック反転を用いない。   The decoder decodes the current block using intra BC prediction using the BV value (1530). 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 with respect to the reference region. ing. The intra BC prediction region may be inverted in the horizontal direction and / or the vertical direction with respect to the reference region. Options for performing block inversion operations and signaling that block inversion is being 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 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 indicating whether or not a block in the bitstream is encoded in the skip mode using intra BC prediction.

スキップモードでのイントラBC予測ブロックに関して、デコーダは、図15の段階(1520)及び段階(1530)に示される動作を用いて又は別のアプローチを用いて、イントラBC予測を用いてスキップモードでブロックを復号する(1630)。スキップモードでのイントラBC予測ブロックであるので、このブロックは、ビットストリーム内にBV差分を有するが、ビットストリーム内に残差データを有さない。   For intra BC prediction blocks in skip mode, the decoder blocks in skip mode using intra BC prediction using the operations shown in steps (1520) and (1530) of FIG. 15 or using another approach. Is decoded (1630). Since this is an intra BC prediction block in skip mode, this block has a BV difference 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 is encoded in skip mode using intra BC prediction (according to the determination in step (1620)), the block uses intra BC prediction. If not encoded in skip mode, the second flag indicates whether the block is encoded in non-skip mode using intra BC prediction. If the block is not encoded in non-skip mode using intra BC prediction, one or more other syntax elements indicate the encoding mode of the block. For example, a certain flag indicates whether the prediction mode of a 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 a further advantage of using a flag that indicates whether a block is intra BC predicted in skip mode. For example, if a block is encoded in non-skip mode using intra BC prediction, the bitstream includes a syntax element that indicates the partition mode of the block. On the other hand, when the block is encoded in the skip mode using intra BC prediction, the bit stream does not include a syntax element indicating the division mode of the block. The decoder infers that the block division mode is a predetermined value (for example, 2N × 2N).

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

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

デコーダは、ピクチャ内の次のブロックに進むかどうかを決定する(1650)。次のブロックに進む場合、デコーダは、次のブロックについての符号化されたデータを取得し(1610)、復号を続ける。   The decoder determines (1650) whether to proceed to the next block in the picture. If proceeding to the next block, the decoder obtains the 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 an Encoding Unit FIGS. 17a and 17b show a syntax structure (1700) for an encoding unit (“CU”), according to a conventional approach. The syntax elements shown in the syntax structure (1700) are defined in JCTVC-P1005. 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 if intra BC prediction is enabled (this is indicated by intra_block_copy_enabled_flag). The syntax element intra_bc_flag indicates whether or not the CU is encoded in the intra BC prediction mode. When the value of intra_bc_flag is 1, the CU is encoded in the intra BC prediction mode. When the value of intra_bc_flag is 0, the CU is not encoded in the intra BC prediction mode. In this case (when intra_bc_flag is 0), there is a syntax element pred_mode_flag, and this syntax element indicates whether the CU is encoded in the inter prediction mode or the 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 a few other cases), the bitstream includes a part_mode syntax element for the CU. The part_mode syntax element indicates a partition mode of the CU (that is, 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 include a BV value for the partition (when the CU is intra BC predicted), intra prediction direction information (when the CU is intra spatial predicted), or prediction unit information (CU In the case of inter prediction). The CU syntax structure (1700) then includes an rqt_root_cbf syntax element in some cases. Specifically, when the CU is predicted to be intra BC, the rqt_root_cbf syntax element is present. The rqt_root_cbf syntax element indicates whether or not a transform_tree () syntax structure exists for the CU. The transform_tree () syntax structure is for residual data about a CU. If rqt_root_cbf is 1, a transform_tree () syntax structure exists for the CU. If rqt_root_cbf is 0, no transform_tree () syntax structure exists for the CU. When rqt_root_cbf does not exist, the value of rqt_root_cbf is estimated 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. 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 the CU if intra BC prediction is enabled (this is indicated by intra_block_copy_enabled_flag). The syntax element intra_bc_skip_flag indicates whether or not the CU is an intra BC prediction block in the skip mode. When intra BC is predicted in the skip mode (intra_bc_skip_flag is 1), the syntax element intra_bc_flag and the syntax element pred_mode_flag are omitted as in the syntax element rqt_root_cbf. In this case, the division mode of the CU has a predetermined 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 intra BC is not predicted in the skip mode (when intra_bc_skip_flag is 0), the syntax element intra_bc_flag exists. The syntax element intra_bc_flag indicates whether or not the CU is encoded in the intra BC prediction mode, as described with reference to FIGS. 17a and 17b. Further, when intra_bc_flag is 0, there is a syntax element pred_mode_flag, which is the same as that described with reference to FIGS. 17a and 17b, or whether the CU is encoded in the inter prediction mode. Indicates whether encoding is 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, intra_bc_skip_flag is 0 and intra_bc_flag is 1), the bitstream includes a part_mode syntax element for the CU. The part_mode syntax element indicates a CU partition mode (for example, 2N × 2N, 2N × N, N × 2N, N × N). On the other hand, if the block is intra BC predicted in skip mode, the part_mode syntax element is included in the bitstream and not signaled for the CU. Instead, the split mode is assumed to have a defined value of 2N × 2N. Thus, for such a block, intra_bc_skip_flag signals that the CU partition mode has a defined value of 2N × 2N, and separate signaling of the part_mode syntax element is avoided.

図18から省かれているセクションにおいて、次いで、シンタックス構造(1800)は、パーティションについてのBV値(CUがイントラBC予測されている場合)、イントラ予測方向情報(CUがイントラ空間予測されている場合)、又は予測ユニット情報(CUがインター予測されている場合)を含む。   In the section omitted from FIG. 18, the syntax structure (1800) then shows the BV value for the partition (if CU is intra BC predicted), intra prediction direction information (CU is intra space predicted). Or prediction unit information (when 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 an rqt_root_cbf syntax element in some cases. Specifically, when the CU is predicted to be intra BC in the non-skip mode, the rqt_root_cbf syntax element exists unless the division mode of the CU is a predetermined value of 2N × 2N. When the rqt_root_cbf syntax element is present, the value of the rqt_root_cbf syntax element indicates whether the transform_tree () syntax structure exists for the CU as described with reference to FIGS. 17a and 17b. On the other hand, when (1) the CU is predicted to be intra BC in skip mode, or (2) the CU is predicted to be intra BC, and the division mode of the CU is a predetermined value of 2N × 2N, There is no rqt_root_cbf syntax element. When the CU is predicted for intra BC in skip mode, the value of rqt_root_cbf is estimated to be 0 (there is no residual data for the CU). Alternatively, if the CU is predicted to be intra BC and the division mode of the CU is a predetermined 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 recognized that the illustrated embodiments are merely preferred examples of the invention and limit the scope of the invention. Should not be interpreted as. Instead, the scope of the invention is defined by the claims. We therefore claim as our invention all that comes within the scope and spirit of these 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 encoded data including a flag from a bitstream that includes a flag indicating that a current block in a picture is encoded in skip mode using intra block copy (BC) prediction; A stream includes block vector (BV) differences of the current block, but does not include residual data of the current block;
Determining a BV value of the current block using the BV difference of the current block and a BV predictor of the current block, wherein the BV value of the current block is transferred to a reference area in the picture; A step indicating the displacement of
Decoding the current block using intra BC prediction using the BV value;
Including methods.
前記ビットストリームは、前記現ブロックの前記BV予測子として使用するための、複数のBV予測子候補のセットからのBV予測子候補の選択を示すインデックス値をさらに含む、請求項1記載の方法。   The method of claim 1, wherein the bitstream further includes an index value indicating selection of a BV predictor candidate from a set of multiple BV predictor candidates for use as the BV predictor of the current block. 前記ピクチャ内の後続ブロックに関して、
第1のフラグは、前記後続ブロックが、イントラBC予測を用いてスキップモードで符号化されているか否かを示し、
前記後続ブロックが、イントラBC予測を用いてスキップモードで符号化されていない場合、第2のフラグは、前記後続ブロックが、イントラBC予測を用いて非スキップモードで符号化されているか否かを示す、請求項1記載の方法。
For 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 encoded in skip mode using intra BC prediction, a second flag indicates whether the subsequent block is encoded in non-skip mode using intra BC prediction. The method of claim 1, wherein:
前記ピクチャ内の後続ブロックに関して、
前記後続ブロックが、イントラBC予測を用いて非スキップモードで符号化されている場合、前記ビットストリームは、前記後続ブロックの分割モードを示すシンタックス要素を含み、
前記後続ブロックが、イントラBC予測を用いてスキップモードで符号化されている場合、前記ビットストリームは、前記後続ブロックの前記分割モードを示す前記シンタックス要素を含まず、前記後続ブロックの前記分割モードは、定められた値を有する、請求項1記載の方法。
For 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 split 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 of claim 1, wherein has a defined value.
前記ピクチャ内の後続ブロックに関して、
前記後続ブロックが、イントラBC予測を用いてスキップモードで符号化されている場合、前記ビットストリームは、前記後続ブロックの残差データの有無を示すフラグを含まず、前記後続ブロックの前記残差データは、前記ビットストリーム内に無いとみなされる、請求項1記載の方法。
For subsequent blocks in the picture:
When the subsequent block is encoded in skip mode using intra BC prediction, the bitstream does not include a flag indicating the presence or absence of residual data in the subsequent block, and the residual data in the subsequent block The method of claim 1, wherein is considered not in the bitstream.
前記ピクチャ内の前記後続ブロックに関して、
前記後続ブロックが、イントラBC予測を用いて非スキップモードで符号化されており、前記後続ブロックの分割モードが、定められた値を有する場合、前記ビットストリームは、前記後続ブロックの残差データの有無を示す前記フラグを含まず、前記後続ブロックの前記残差データは、前記ビットストリーム内に有るとみなされ、
前記後続ブロックが、イントラBC予測を用いて非スキップモードで符号化されており、前記後続ブロックの前記分割モードが、前記定められた値を有さない場合、前記ビットストリームは、前記後続ブロックの残差データの有無を示す前記フラグを含む、請求項5記載の方法。
For the subsequent block in the picture:
If the subsequent block is encoded in a non-skip mode using intra BC prediction, and the partition mode of the subsequent block has a predetermined value, the bit stream includes the residual data of the subsequent block. Does not include 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 partition mode of the subsequent block does not have the defined value, the bitstream 6. The method of claim 5, comprising the flag indicating the 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, wherein the intra BC prediction region is 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 inverted in a horizontal direction and / or a vertical direction with respect to the reference region. 請求項1乃至8いずれか一項記載の方法を実行するよう適合されているコンピューティングデバイス。   A computing device adapted to perform the method of any one of claims 1-8. コンピューティングデバイスに請求項1乃至8いずれか一項記載の方法を実行させるプログラム。   A program for causing a computing device to execute the method according to claim 1.
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 true JP2018088715A (en) 2018-06-07
JP6503101B2 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)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113228636A (en) * 2018-12-12 2021-08-06 韦勒斯标准与技术协会公司 Video signal processing method and apparatus using current picture reference

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008130367A1 (en) * 2007-04-19 2008-10-30 Thomson Licensing Adaptive reference picture data generation for intra prediction
WO2011048903A1 (en) * 2009-10-20 2011-04-28 シャープ株式会社 Video encoding device, video decoding device, and data structure

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008130367A1 (en) * 2007-04-19 2008-10-30 Thomson Licensing Adaptive reference picture data generation for intra prediction
WO2011048903A1 (en) * 2009-10-20 2011-04-28 シャープ株式会社 Video encoding device, video decoding device, and data structure

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113228636A (en) * 2018-12-12 2021-08-06 韦勒斯标准与技术协会公司 Video signal processing method and apparatus using current picture reference

Also Published As

Publication number Publication date
JP6503101B2 (en) 2019-04-17

Similar Documents

Publication Publication Date Title
US11910005B2 (en) Block vector prediction in video and image coding/decoding
US11184637B2 (en) Encoding/decoding with flags to indicate switching of color spaces, color sampling rates and/or bit depths
US20220132163A1 (en) Features of base color index map mode for video and image coding and decoding
CN105247871B (en) Block flipping and skip mode in intra block copy prediction
JP6367359B2 (en) Quantization / scaling and inverse quantization / scaling adjustments when switching color spaces
JP6503101B2 (en) Block inversion and skip mode in intra block copy prediction
US20240146955A1 (en) Block vector prediction in video and image coding/decoding

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