JP6793778B2 - Rules for in-picture prediction mode when wave plane parallelism is enabled - Google Patents

Rules for in-picture prediction mode when wave plane parallelism is enabled Download PDF

Info

Publication number
JP6793778B2
JP6793778B2 JP2019094546A JP2019094546A JP6793778B2 JP 6793778 B2 JP6793778 B2 JP 6793778B2 JP 2019094546 A JP2019094546 A JP 2019094546A JP 2019094546 A JP2019094546 A JP 2019094546A JP 6793778 B2 JP6793778 B2 JP 6793778B2
Authority
JP
Japan
Prior art keywords
picture
current
ctu
block
prediction
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2019094546A
Other languages
Japanese (ja)
Other versions
JP2019154067A (en
Inventor
リー,ビン
シュウ,ジツェング
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Priority to JP2019094546A priority Critical patent/JP6793778B2/en
Publication of JP2019154067A publication Critical patent/JP2019154067A/en
Application granted granted Critical
Publication of JP6793778B2 publication Critical patent/JP6793778B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

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

過去25年間にわたり、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規格の拡張(例えば、スケーラブルビデオコーディング/デコーディング向け、サンプルビット深度若しくはクロマサンプリングレートに関する忠実度がより高いビデオのコーディング/デコーディング向け、画面キャプチャコンテンツ向け、又はマルチビューコーディング/デコーディング向け)が、現在開発途中である。ビデオコーデック規格は、典型的に、エンコードされたビデオビットストリームのシンタックスに関する選択肢を定義し、特定の特徴がエンコーディング及びデコーディングで使用されるときのビットストリーム内のパラメータを詳述する。多くの場合、ビデオコーデック規格は、デコーディングにおいて適合する結果を達成するのにデコーダが実施するべき、デコーディング動作に関する詳細をさらに提供する。コーデック規格の他に、独自の様々なコーデック形式が、エンコードされたビデオビットストリームのシンタックス及びそれに対応するデコーディング動作に関する他の選択肢を定義している。 Over the last 25 years, ITU-T H. 261 and H. 262 (MPEG-2 or ISO / IEC 13818-2), H.M. 263 and H. 264 (MPEG-4 AVC or ISO / IEC 14496-10) standard, MPEG-1 (ISO / IEC 11172-2) and MPEG-4 Visual (ISO / IEC 14496-2) standard, and SMPTE 421M (VC-1) Various video codec standards, including standards, have been adapted. Furthermore, in recent years, H. The 265 / HEVC standard (ITU-TH.265 or ISO / IEC 23008-2) has been approved. H. Extensions to the 265 / HEVC standard (eg, for scalable video coding / decoding, for coding / decoding of video with higher fidelity with respect to sample bit depth or chroma sampling rate, for screen capture content, or for multi-view coding / decoding Is currently under development. Video codec standards typically define syntax options for encoded video bitstreams and detail the parameters within the bitstream when certain features are used in encoding and decoding. Often, the video codec standard provides more details about the decoding behavior that the decoder should perform to achieve a conforming result in decoding. In addition to the codec standard, a variety of proprietary codec formats define other options for the syntax of encoded video bitstreams and their corresponding decoding behavior.

波面並列処理(Wavefront parallel processing)(「WPP」)は、H.265/HEVC規格におけるエンコーディング及びデコーディングに利用可能なツールである。WPPが使用可能にされると、ピクチャの一部分が、符号化ツリーユニット(「CTU」)と呼ばれる特別なセクションの行へと分けられる。エンコーディング又はデコーディングの間、CTUの第1の行を、左から右へとCTU毎に処理することができる。CTUの第2の行の処理(エンコーディング又はデコーディング)は、CTUの第1の行の処理が完了するのを待つ必要はない。その代わりに、第1の行のCTUのうちいくつかについて処理が完了した後、このことが第2の行の最初のCTUを処理するときに使用される情報を提供し、第2の行の処理が始まることができる。同様に、第2の行のCTUのうちいくつかについて処理が完了した後、CTUの第3の行の処理が始まることができる。WPPが、CTUの異なる行の並列処理を容易にする。異なるスレッド又は処理コアが、交互的な時間遅延の方式でCTUの異なる行の処理を実施することができる。 Wavefront parallel processing (“WPP”) is described in H.W. A tool available for encoding and decoding in the 265 / HEVC standard. When WPP is enabled, a portion of the picture is divided into lines in a special section called the Coded Tree Unit (“CTU”). During encoding or decoding, the first line of the CTU can be processed from left to right on a CTU-by-CTU basis. The processing of the second row of the CTU (encoding or decoding) does not have to wait for the processing of the first row of the CTU to complete. Instead, after processing is complete for some of the CTUs in the first row, this provides the information used when processing the first CTU in the second row, in the second row. The process can start. Similarly, after processing for some of the CTUs in the second row is complete, processing in the third row of the CTUs can begin. WPP facilitates parallel processing of different rows of CTUs. Different threads or processing cores can process different rows of CTUs in an alternating time delay manner.

イントラブロックコピー(「BC」)は、H.265/HEVCの拡張に関して開発中の予測モードである。イントラBC予測モードの場合、あるピクチャにおける現在のブロックのサンプル値が、同じピクチャにおける事前再構成されたサンプル値を使用して予測される。ブロックベクトル(「BV」)は、ピクチャの現在のブロックから参照ブロックへの変位を示し、参照ブロックは、予測に使用される事前再構成されたサンプル値を含む。BVは、ビットストリームにおいて信号伝達される。イントラBC予測はピクチャ内予測の一形式であり、ピクチャのブロックに対するイントラBC予測は、同じピクチャにおけるサンプル値以外のいずれのサンプル値も使用しない。イントラストリングコピー(「SC」)モード及びイントララインコピー(「LC」)モードは、ピクチャ内予測モードの他の例であり、イントラBCモードと同様に、オフセット値を使用して、予測に使用される事前再構成されたサンプル値におけるある位置への変位を示す。パレット予測モードは、ピクチャ内予測モードの別の例であり、符号化ユニット(「CU」)などのセクション内の色を表すのに使用されるパレットを予測する。H.265/HEVC規格の拡張に関して現在明確にされているように、様々なピクチャ内予測モードが、WPPが使用可能にされるときに有効に使用されていない。 Intrablock copy (“BC”) is available from H.M. Prediction mode under development for 265 / HEVC expansion. In the intra-BC prediction mode, the sample values of the current block in a picture are predicted using the pre-reconstructed sample values in the same picture. The block vector (“BV”) indicates the displacement of the picture from the current block to the reference block, which contains the pre-reconstructed sample values used for prediction. The BV is signaled in the bitstream. Intra BC prediction is a form of intra-picture prediction, and intra BC prediction for a block of pictures does not use any sample values other than the sample values in the same picture. Intrastring copy (“SC”) mode and intraline copy (“LC”) mode are other examples of in-picture prediction modes and are used for prediction using offset values, similar to intraBC mode. Shows the displacement to a certain position in the pre-reconstructed sample values. Palette prediction mode is another example of in-picture prediction mode, which predicts the palette used to represent colors within a section such as a coding unit (“CU”). H. Various in-picture prediction modes are not effectively used when WPP is enabled, as is currently clarified with respect to the extension of the 265 / HEVC standard.

概して、詳細説明は、波面並列処理(「WPP」)が使用可能にされるときのピクチャ内予測モードに対して強制される規則におけるイノベーションを提示する。ビットストリーム内のシンタックス要素が、ビデオシーケンス、ピクチャのセット、又はピクチャに対してWPPが使用可能にされるか否かを示すことができる。イノベーションにより、WPPが使用可能にされるとき、エンコーダ又はデコーダによって、パレット予測モード、イントラブロックコピーモード、イントララインコピーモード、及びイントラストリングコピーモードなどのピクチャ内予測モードを使用することが容易になる。 In general, the detailed description presents innovations in the rules enforced for in-picture prediction modes when wave-plane parallelism (“WPP”) is enabled. A syntax element in the bitstream can indicate whether WPP is enabled for a video sequence, a set of pictures, or a picture. Innovation makes it easier for encoders or decoders to use in-picture prediction modes such as palette prediction mode, intra-block copy mode, intra-line copy mode, and intra-string copy mode when WPP is enabled. ..

本明細書に記載するイノベーションの1つの態様によれば、エンコーダは、WPPが使用可能な状態でピクチャをエンコードする。該エンコードは、エンコードされたデータを生成する。パレット符号化モードについて、エンコーダは、ピクチャの前のWPP行における前のユニットからの前のパレットデータを使用して、ピクチャの現在のWPP行における最初のユニットに対するパレットを予測する。エンコーダは、エンコードされたデータをビットストリームの一部として出力する。 According to one aspect of the innovation described herein, the encoder encodes the picture with WPP enabled. The encoding produces encoded data. For palette encoding modes, the encoder uses the previous palette data from the previous unit in the previous WPP row of the picture to predict the palette for the first unit in the current WPP row of the picture. The encoder outputs the encoded data as part of a bitstream.

対応するデコーダは、エンコードされたデータをビットストリームの一部として受信する。デコーダは、WPPが使用可能な状態で、エンコードされたデータをデコードする。該デコードは、ピクチャを再構成する。パレットデコーディングモードについて、デコーダは、ピクチャの前のWPP行における前のユニットからの前のパレットデータを使用して、ピクチャの現在のWPP行における最初のユニットに対するパレットを予測する。 The corresponding decoder receives the encoded data as part of the bitstream. The decoder decodes the encoded data with WPP available. The decoding reconstructs the picture. For palette decoding mode, the decoder uses the previous palette data from the previous unit in the previous WPP row of the picture to predict the palette for the first unit in the current WPP row of the picture.

本明細書に記載するイノベーションの別の態様によれば、エンコーダは、WPPが使用可能な状態でピクチャをエンコードする。該エンコードは、エンコードされたデータを生成する。イントラコピーモード(例えば、イントラブロックコピーモード、イントラストリングコピーモード、イントララインコピーモード)について、エンコーダは、WPPに起因する1つ以上の制約を強制する。エンコーダは、エンコードされたデータをビットストリームの一部として出力する。 According to another aspect of the innovation described herein, the encoder encodes the picture with WPP enabled. The encoding produces encoded data. For intracopy modes (eg, intrablock copy mode, intrastring copy mode, intraline copy mode), the encoder enforces one or more constraints due to WPP. The encoder outputs the encoded data as part of a bitstream.

対応するデコーダは、エンコードされたデータをビットストリームの一部として受信する。イントラコピーモード(例えば、イントラブロックコピーモード、イントラストリングコピーモード、イントララインコピーモード)について、エンコードされたデータは、WPPに起因する1つ以上の制約を満たす。デコーダは、WPPが使用可能な状態で、エンコードされたデータをデコードする。該デコードは、ピクチャを再構成する。 The corresponding decoder receives the encoded data as part of the bitstream. For intracopy modes (eg, intrablock copy mode, intrastring copy mode, intraline copy mode), the encoded data meets one or more constraints due to WPP. The decoder decodes the encoded data with WPP available. The decoding reconstructs the picture.

本イノベーションは、方法の一部として、方法を実施するように構成されたコンピューティングシステムの一部として、又はコンピューティングシステムに方法を実施させるコンピュータ実行可能命令を記憶する有形のコンピュータ読取可能媒体の一部として、実現することができる。様々なイノベーションを組み合わせて、又は別々に使用することができる。本概要は、詳細説明において更に後述する概念のうち選択されたものを簡素化した形式で紹介するために提供するものである。本概要は、請求する対象事項の重要な特徴又は必須の特徴を識別しようとするものではなく、請求する対象事項の範囲を限定するために使用しようとするものでもない。本発明の上記及び他の目的、特徴、並びに利点は、添付図面を参照して進む下記の詳細説明によって、より明白となるであろう。 The innovation is a tangible computer-readable medium that stores computer-executable instructions that make a computing system perform the method, as part of a computing system configured to perform the method, as part of the method. As part, it can be achieved. Various innovations can be used in combination or separately. This overview is provided to introduce in a simplified form the selected concepts described below in the detailed description. This Summary is not intended to identify the material or essential features of the Claimed Item, nor is it intended to be used to limit the scope of the Claimed Item. The above and other objects, features, and advantages of the present invention will become more apparent with the following detailed description, which proceeds with reference to the accompanying drawings.

記載するいくつかの実施形態を実現することができる、例示的なコンピューティングシステムを示す図である。FIG. 3 illustrates an exemplary computing system that can implement some of the embodiments described. 記載するいくつかの実施形態を実現することができる、例示的なネットワーク環境を示す図である。It is a figure which shows the exemplary network environment which can realize some of the embodiments described. 記載するいくつかの実施形態を実現することができる、例示的なネットワーク環境を示す図である。It is a figure which shows the exemplary network environment which can realize some of the embodiments described. 記載するいくつかの実施形態を併せて実現することができる、例示的なエンコーダシステムを示す図である。It is a figure which shows the exemplary encoder system which can realize several embodiments described together. 記載するいくつかの実施形態を併せて実現することができる、例示的なデコーダシステムを示す図である。It is a figure which shows the exemplary decoder system which can realize some of the embodiments described together. 記載するいくつかの実施形態を併せて実現することができる、例示的なビデオエンコーダを示す図である。It is a figure which shows an exemplary video encoder which can realize several embodiments described together. 記載するいくつかの実施形態を併せて実現することができる、例示的なビデオエンコーダを示す図である。It is a figure which shows an exemplary video encoder which can realize several embodiments described together. 記載するいくつかの実施形態を併せて実現することができる、例示的なビデオデコーダを示す図である。It is a figure which shows the exemplary video decoder which can realize several embodiments described together. WPPのタイミングを示す図である。It is a figure which shows the timing of WPP. WPPが使用可能にされるときに予測に使用することができる再構成されたコンテンツを示す図である。FIG. 5 shows reconstructed content that can be used for prediction when WPP is enabled. 記載するいくつかの実施形態によるパレット予測の態様を示す図である。It is a figure which shows the mode of the pallet prediction by some of the embodiments described. 記載するいくつかの実施形態によるパレット予測の態様を示す図である。It is a figure which shows the mode of the pallet prediction by some of the embodiments described. 記載するいくつかの実施形態による、WPPが使用可能にされるときのパレット予測を用いたエンコードを示すフローチャートである。FIG. 5 is a flow chart showing encoding with palette prediction when WPP is enabled, according to some of the embodiments described. 記載するいくつかの実施形態による、WPPが使用可能にされるときのパレット予測を用いたデコードを示すフローチャートである。FIG. 6 is a flow chart showing decoding with palette prediction when WPP is enabled, according to some of the embodiments described. ピクチャの現在のブロックに対するイントラブロックコピー予測の一例の態様を示す図である。It is a figure which shows the aspect of an example of the intra-block copy prediction with respect to the current block of a picture. ピクチャの現在のブロックに対するイントラブロックコピー予測の一例の態様を示す図である。It is a figure which shows the aspect of an example of the intra-block copy prediction with respect to the current block of a picture. イントララインコピー予測の一例の態様を示す図である。It is a figure which shows the aspect of an example of an intraline copy prediction. イントラストリングコピー予測の一例の態様を示す図である。It is a figure which shows the aspect of an example of an intrastring copy prediction. ピクチャのユニットに関する例示的なzスキャン順序を示す図である。It is a figure which shows the example z scan order about the unit of a picture. 記載するいくつかの実施形態による、WPPが使用可能にされるときのイントラコピーモードに関する参照領域の場所に対する制約の一例を示す図である。It is a figure which shows an example of the constraint on the place of the reference area about the intracopy mode when WPP is enabled by some of the embodiments described. 記載するいくつかの実施形態による、WPPが使用可能にされるときにイントラコピーモードに対して強制される規則を用いたエンコードを示すフローチャートである。FIG. 5 is a flow chart illustrating encoding with rules enforced for intracopy mode when WPP is enabled, according to some of the embodiments described. 記載するいくつかの実施形態による、WPPが使用可能にされるときにイントラコピーモードに対して強制される規則を用いたデコードを示すフローチャートである。FIG. 5 is a flow chart illustrating decoding with rules enforced for intracopy mode when WPP is enabled, according to some of the embodiments described.

本詳細説明は、波面並列処理(wavefront parallel processing)(「WPP」)が使用可能にされるときにピクチャ内(intra-picture)予測モードに対して強制される(enforced)規則におけるイノベーションを提示する。例えば、イノベーションの一部は、WPPが使用可能にされるときのパレットコーディング/デコーディングモードに対するパレットの予測に関する。他のイノベーションが、WPPが使用可能にされるとき、イントラコピーモード(イントラブロックコピーモード、イントララインコピーモード、又はイントラストリングコピーモード)の間に強制される制約に関する。本イノベーションは、WPPが使用可能にされるときのエンコーダ又はデコーダによるピクチャ内予測モードの使用を容易にする。 This detailed description presents innovations in enforced rules for intra-picture prediction mode when wavefront parallel processing (“WPP”) is enabled. .. For example, some of the innovations are about predicting palettes for palette coding / decoding modes when WPP is enabled. Another innovation concerns the constraints imposed during intracopy mode (intrablock copy mode, intraline copy mode, or intrastring copy mode) when WPP is enabled. The innovation facilitates the use of in-picture prediction modes by encoders or decoders when WPP is enabled.

本明細書に記載する動作は、場合によっては、ビデオエンコーダ又はビデオデコーダによって実施されるものとして記載されるが、多くの場合、別のタイプのメディア処理ツール(例えば、画像エンコーダ又は画像デコーダ)によって動作を実施することができる。 The operations described herein are described as being performed by a video encoder or video decoder in some cases, but are often described by another type of media processing tool (eg, an image encoder or image decoder). The operation can be carried out.

本明細書に記載するイノベーションの一部は、H.265/HEVC規格の拡張に特有の用語を参照して例証される。例えば、H.265/HEVC規格の画面コンテンツコーディング/デコーディングの拡張の草案JCTVC-R1005、“High Efficiency Video Coding(HEVC) Screen Content Coding: Draft 1”、JCTVC-R1005_v2、2014年8月が参照される。本明細書に記載するイノベーションは、他の規格又は方式に対して実現することもできる。 Some of the innovations described herein include H. et al. Illustrated with reference to terms specific to the extension of the 265 / HEVC standard. For example, H. See JCTVC-R1005, "High Efficiency Video Coding (HEVC) Screen Content Coding: Draft 1", JCTVC-R1005_v2, August 2014, draft extension of screen content coding / decoding of 265 / HEVC standard. The innovations described herein can also be implemented for other standards or methods.

本明細書に記載するイノベーションの多くは、画面キャプチャコンテンツなど、特定の「人工的に作成された」ビデオコンテンツをエンコードするときのレートひずみ性能を改善することができる。一般に、画面キャプチャビデオ(画面コンテンツビデオとも呼ばれる)は、カメラでキャプチャされるビデオコンテンツのみとは対照的に、描画テキスト、コンピュータグラフィックス、アニメーション生成コンテンツ、又はコンピュータディスプレイに描画されるときにキャプチャされる他の類似タイプのコンテンツを含むビデオである。画面キャプチャコンテンツは、典型的に、繰返し構造(例えば、グラフィックス、テキスト文字)を含む。画面キャプチャコンテンツは、通常、高いクロマサンプリング分解能を有するフォーマット(例えば、YUV4:4:4又はRGB4:4:4)でエンコードされるが、さらに、より低いクロマサンプリング分解能を有するフォーマット(例えば、YUV4:2:0)でエンコードされてもよい。画面キャプチャコンテンツのエンコーディング/デコーディングに関する一般のシナリオとしては、リモートデスクトップ会議、並びに加工していない(natural)ビデオ又は他の「混合コンテンツ」ビデオに対するグラフィカルオーバーレイのエンコーディング/デコーディングが挙げられる。本明細書に記載するイノベーションのいくつかは、画面コンテンツビデオ又は他の人工的に作成されたビデオのエンコーディングに適合される。これらのイノベーションは加工していないビデオに使用することもできるが、同じように有効でないことがある。 Many of the innovations described herein can improve rate distortion performance when encoding certain "artificially created" video content, such as screen capture content. In general, screen-captured video (also called screen-content video) is captured when drawn on a drawing text, computer graphics, animation-generated content, or computer display, as opposed to only the video content captured by the camera. A video that contains other similar types of content. Screen capture content typically includes repeating structures (eg graphics, text characters). Screen capture content is typically encoded in a format with high chroma sampling resolution (eg, YUV4: 4: 4 or RGB4: 4: 4), but in addition, a format with lower chroma sampling resolution (eg, YUV4:). It may be encoded at 2: 0). Common scenarios for encoding / decoding screen capture content include remote desktop conferencing, as well as encoding / decoding of graphical overlays for unprocessed (natural) video or other "mixed content" video. Some of the innovations described herein are adapted to the encoding of screen content video or other artificially created video. These innovations can be used for unprocessed video, but they may not be equally effective.

より一般には、本明細書に記載する例に対する様々な代替例が可能である。例えば、本明細書に記載する方法のいくつかは、記載する方法動作の順序を変更すること、特定の方法動作を分割し、繰返し、又は省略することなどによって、変更することができる。開示する技術の様々な態様は、組み合わせて又は別々に使用することができる。異なる実施形態が、記載するイノベーションの1つ以上を使用する。本明細書に記載するイノベーションのいくつかは、背景技術の項で言及した課題の1つ以上に対処する。典型的に、所与の技術/ツールが、かかる課題の全てを解決するものではない。 More generally, various alternatives to the examples described herein are possible. For example, some of the methods described herein can be modified by changing the order of the described method operations, dividing, repeating, or omitting specific method operations. Various aspects of the disclosed techniques can be used in combination or separately. Different embodiments use one or more of the innovations described. Some of the innovations described herein address one or more of the challenges mentioned in the Background Technology section. Typically, a given technique / tool does not solve all of these challenges.

I.例示的なコンピューティングシステム
図1は、記載するイノベーションのいくつかが実現されてもよい、適切なコンピューティングシステム(100)の一般化した例を示している。イノベーションは種々の汎用又は専用コンピューティングシステムで実現されてもよいので、コンピューティングシステム(100)は、使用又は機能性の範囲に関して何らかの限定を提案しようとするものではない。
I. Illustrative Computing System Figure 1 shows a generalized example of a suitable computing system (100) where some of the innovations described may be realized. The computing system (100) does not attempt to propose any limitation regarding the scope of use or functionality, as innovation may be realized in various general purpose or dedicated computing systems.

図1を参照すると、コンピューティングシステム(100)は、1つ以上の処理ユニット(110、115)とメモリ(120、125)とを含む。処理ユニット(110、115)はコンピュータ実行可能命令を実行する。処理ユニットは、汎用中央処理ユニット(「CPU」)、特定用途向け集積回路(「ASIC」)内のプロセッサ、又は他の任意のタイプのプロセッサであることができる。マルチ処理システムでは、複数の処理ユニットがコンピュータ実行可能命令を実行して処理力を増加させる。例えば、図1は、中央処理ユニット(110)、並びにグラフィックス処理ユニット又はコプロセシングユニット(115)を示している。有形のメモリ(120、125)は、処理ユニットがアクセス可能な、揮発性メモリ(例えば、レジスタ、キャッシュ、RAM)、不揮発性メモリ(例えば、ROM、EEPROM、フラッシュメモリなど)、又はその2つの何らかの組み合わせであってもよい。メモリ(120、125)は、WPPが使用可能にされるときにピクチャ内予測モードに対して強制される規則の1つ以上のイノベーションを実現するソフトウェア(180)を、処理ユニットが実行するのに適したコンピュータ実行可能命令の形式で記憶する。 Referring to FIG. 1, the computing system (100) includes one or more processing units (110, 115) and memory (120, 125). The processing units (110, 115) execute computer executable instructions. The processing unit can be a general purpose central processing unit (“CPU”), a processor in an application specific integrated circuit (“ASIC”), or any other type of processor. In a multi-processing system, multiple processing units execute computer-executable instructions to increase processing power. For example, FIG. 1 shows a central processing unit (110) as well as a graphics processing unit or coprocessing unit (115). Tangible memory (120, 125) may be volatile memory (eg, registers, cache, RAM), non-volatile memory (eg, ROM, EEPROM, flash memory, etc.), or any of the two, accessible to the processing unit. It may be a combination. The memory (120, 125) allows the processing unit to execute software (180) that implements one or more innovations in the rules enforced for in-picture prediction mode when WPP is enabled. Store in the form of a suitable computer executable instruction.

コンピューティングシステムは追加の特徴を有してもよい。例えば、コンピューティングシステム(100)は、記憶装置(140)と、1つ以上の入力装置(150)と、1つ以上の出力装置(160)と、1つ以上の通信接続(170)とを含む。バス、コントローラ、又はネットワークなどの相互接続メカニズム(図示なし)が、コンピューティングシステム(100)のコンポーネントを相互接続する。典型的に、オペレーティングシステムソフトウェア(図示なし)が、コンピューティングシステム(100)で実行される他のソフトウェアに対するオペレーティング環境を提供し、コンピューティングシステム(100)のコンポーネントの活動を調整する。 The computing system may have additional features. For example, a computing system (100) has a storage device (140), one or more input devices (150), one or more output devices (160), and one or more communication connections (170). Including. An interconnect mechanism (not shown), such as a bus, controller, or network, interconnects the components of a computing system (100). Typically, operating system software (not shown) provides an operating environment for other software running on computing system (100) and coordinates the activities of components of computing system (100).

有形の記憶装置(140)は、取外し可能又は取外し不能であってもよく、磁気ディスク、磁気テープ若しくはカセット、CD−ROM、DVD、又は情報を記憶するのに使用することができ、コンピューティングシステム(100)内でアクセスすることができる、他の任意の媒体を含む。記憶装置(140)は、WPPが使用可能にされるときにピクチャ内予測モードに対して強制される規則の1つ以上のイノベーションを実現するソフトウェア(180)の命令を記憶する。 The tangible storage device (140) may be removable or non-removable and can be used to store magnetic disks, magnetic tapes or cassettes, CD-ROMs, DVDs, or information, computing systems. Includes any other medium that can be accessed within (100). The storage device (140) stores software (180) instructions that implement one or more innovations in the rules enforced for in-picture prediction mode when WPP is enabled.

入力装置(150)は、キーボード、マウス、ペン、若しくはトラックボールなどのタッチ入力装置、音声入力装置、スキャニング装置、又はコンピューティングシステム(100)に対する入力を提供する別の装置であってもよい。ビデオの場合、入力装置(150)は、カメラ、ビデオカード、テレビチューナーカード、画面キャプチャモジュール、又はビデオ入力をアナログ若しくはデジタル形式で受け入れる類似の装置、又はビデオ入力をコンピューティングシステム(100)へと読み出すCD−ROM若しくはCD−RWであってもよい。出力装置(160)は、ディスプレイ、プリンタ、スピーカー、CDライター、又はコンピューティングシステム(100)からの出力を提供する別の装置であってもよい。 The input device (150) may be a touch input device such as a keyboard, mouse, pen, or trackball, a voice input device, a scanning device, or another device that provides input to the computing system (100). For video, the input device (150) is a camera, video card, TV tuner card, screen capture module, or similar device that accepts video input in analog or digital format, or video input to a computing system (100). It may be a CD-ROM or a CD-RW to be read. The output device (160) may be a display, a printer, a speaker, a CD writer, or another device that provides output from the computing system (100).

通信接続(170)は、通信媒体を通じて別のコンピューティングエンティティに対して通信するのを可能にする。通信媒体は、コンピュータ実行可能命令、音声若しくはビデオの入力又は出力、或いは変調データ信号の形式の他のデータなど、情報を搬送する。変調データ信号は、信号中の情報をエンコードするような形で設定又は変更された、その特性のうち1つ以上を有する信号である。例として、非限定的に、通信媒体は、電気、光、RF、又は他のキャリアを使用することができる。 The communication connection (170) allows communication to another computing entity through a communication medium. The communication medium carries information such as computer executable instructions, audio or video inputs or outputs, or other data in the form of modulated data signals. A modulated data signal is a signal that has one or more of its characteristics set or modified in a manner that encodes the information in the signal. By way of example, the communication medium can use electrical, optical, RF, or other carriers, without limitation.

本イノベーションは、コンピュータ読取可能媒体の一般的文脈で説明することができる。コンピュータ読取可能媒体は、コンピューティング環境内でアクセスすることができる、任意の利用可能な有形の媒体である。例として、非限定的に、コンピューティングシステム(100)と共に、コンピュータ読取可能媒体は、メモリ(120、125)、記憶装置(140)、及び上述のいずれかの組み合わせを含む。 This innovation can be explained in the general context of computer readable media. A computer-readable medium is any available tangible medium that can be accessed within a computing environment. By way of example, but not limited to, a computer-readable medium, along with a computing system (100), includes a memory (120, 125), a storage device (140), and any combination of those described above.

本イノベーションは、プログラムモジュールに含まれ、コンピューティングシステム内で対象の実在若しくは仮想プロセッサ上で実行されるものなど、コンピュータ実行可能命令の一般的文脈で説明することができる。一般に、プログラムモジュールは、特定のタスクを実施するか、又は特定の抽象データタイプを実現する、ルーチン、プログラム、ライブラリ、オブジェクト、クラス、コンポーネント、データ構造などを含む。プログラムモジュールの機能性は、様々な実施形態で所望に応じて、プログラムモジュール間で組み合わされるか又は分割されてもよい。プログラムモジュールのコンピュータ実行可能命令は、ローカル又は分散型コンピューティングシステム内で実行されてもよい。 This innovation can be described in the general context of computer executable instructions, such as those contained within a program module and executed on a real or virtual processor of interest within a computing system. In general, a program module includes routines, programs, libraries, objects, classes, components, data structures, etc. that perform a particular task or achieve a particular abstract data type. The functionality of the program modules may be combined or divided between the program modules as desired in various embodiments. The computer executable instructions of the program module may be executed locally or within a distributed computing system.

「システム」及び「装置」という用語は、本明細書では交換可能に使用される。文脈による別段の明確な指示がない限り、どちらの用語もコンピューティングシステム又はコンピューティング装置のタイプに対する何らかの限定を示唆しない。一般に、コンピューティングシステム又はコンピューティング装置は、ローカル若しくは分散型であることができ、専用ハードウェア及び/又は汎用ハードウェアと、本明細書に記載の機能性を実現するソフトウェアとの任意の組み合わせを含むことができる。 The terms "system" and "device" are used interchangeably herein. Neither term suggests any limitation on a computing system or type of computing device, unless otherwise explicitly indicated by the context. In general, a computing system or computing device can be local or decentralized, with any combination of dedicated hardware and / or general purpose hardware and software that provides the functionality described herein. Can include.

記載する方法はまた、開示する方法のいずれかを実施するように構成された専用のコンピューティングハードウェアを使用して実現することができる。例えば、開示する方法は、開示する方法のいずれかを実現するように特別に設計若しくは構成された、集積回路(例えば、ASICデジタル信号プロセッサ(「DSP」)などのASIC、グラフィックス処理ユニット(「GPU」)、又はフィールドプログラマブルゲートアレイ(「FPGA」)などのプログラマブル論理装置(「PLD」))によって実現することができる。 The methods described can also be implemented using dedicated computing hardware configured to implement any of the disclosed methods. For example, the disclosure method is an ASIC, graphics processing unit ("eg,") such as an integrated circuit (eg, an ASIC digital signal processor ("DSP"), specially designed or configured to implement any of the disclosure methods. It can be realized by a programmable logic device (“PLD”) such as a GPU ”) or a field programmable gate array (“FPGA”).

提示の目的で、本詳細説明は、「決定する」及び「使用する」のような用語を使用して、コンピューティングシステムにおけるコンピュータ動作について記載する。これらの用語は、コンピュータによって実施される動作に関する高次の抽象化であり、人間が行う行為と混同すべきでない。これらの用語に対応する実際のコンピュータ動作は実装に応じて変動する。 For the purposes of presentation, this detailed description describes computer behavior in a computing system using terms such as "determine" and "use." These terms are a higher level abstraction of the actions performed by a computer and should not be confused with the actions performed by humans. The actual computer behavior corresponding to these terms will vary from implementation to implementation.

II.例示的なネットワーク環境
図2a及び図2bは、ビデオエンコーダ(220)及びビデオデコーダ(270)を含む例示的なネットワーク環境(201、202)を示している。エンコーダ(220)及びデコーダ(270)は、適切な通信プロトコルを使用してネットワーク(250)を通じて接続される。ネットワーク(250)は、インターネット又は別のコンピュータネットワークを含むことができる。
II. Illustrative Network Environments Figures 2a and 2b show exemplary network environments (201, 202) including a video encoder (220) and a video decoder (270). The encoder (220) and decoder (270) are connected through the network (250) using the appropriate communication protocol. The network (250) can 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)から受け入れる。双方向通信は、ビデオ会議、ビデオ電話コール、又は他の二者若しくは多数(multi-party)通信シナリオの一部であることができる。図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) is H.I. It is possible to produce output that conforms to the 265 / HEVC standard, SMPTE 421M standard, ISO / IEC 14496-10 standard (also known as H.264 or AVC), another standard, or a variant or extension of a proprietary format. , The corresponding decoder (270) accepts the encoded data from the encoder (220). Two-way communication can be part of a video conferencing, video telephone call, or other two- or multi-party communication scenario. The network environment (201) of FIG. 2a includes two real-time communication tools (210), but the network environment (201) may instead include three or more real-time communication tools (210) involved in multiple communications. it can.

リアルタイム通信ツール(210)はエンコーダ(220)によるエンコーディングを管理する。図3は、リアルタイム通信ツール(210)に含むことができる例示的なエンコーダシステム(300)を示している。或いは、リアルタイム通信ツール(210)は別のエンコーダシステムを使用する。リアルタイム通信ツール(210)はまた、デコーダ(270)によるデコーディングを管理する。図4は、リアルタイム通信ツール(210)に含むことができる例示的なデコーダシステム(400)を示している。或いは、リアルタイム通信ツール(210)は別のデコーダシステムを使用する。 The real-time communication tool (210) manages the encoding by the encoder (220). FIG. 3 shows an exemplary encoder system (300) that can be included in a real-time communication tool (210). Alternatively, the real-time communication tool (210) uses another encoder system. The real-time communication tool (210) also manages decoding by the decoder (270). FIG. 4 shows an exemplary decoder system (400) that can be included in a real-time communication tool (210). Alternatively, the real-time communication tool (210) uses another decoder system.

図2bに示されるネットワーク環境(202)では、エンコーディングツール(212)は、デコーダ(270)を含む複数の再生ツール(214)に配信するためにビデオをエンコードするエンコーダ(220)を含む。単方向通信は、ビデオ監視システム、ウェブカメラ監視システム、リモートデスクトップ会議プレゼンテーション、又はビデオがエンコードされ、1つの場所から他の1つ以上の場所に送られる他のシナリオのために提供することができる。図2bのネットワーク環境(202)は2つの再生ツール(214)を含むが、ネットワーク環境(202)は、より多数又はより少数の再生ツール(214)を含むことができる。一般に、再生ツール(214)は、エンコーディングツール(212)と通信して、再生ツール(214)が受信するビデオのストリームを決定する。再生ツール(214)は、ストリームを受信し、受信したエンコードされたデータを適切な期間の間バッファし、デコーディング及び再生を開始する。 In the network environment (202) shown in FIG. 2b, the encoding tool (212) includes an encoder (220) that encodes the video for delivery to a plurality of playback tools (214), including a decoder (270). Simplex communication can be provided for video surveillance systems, webcam surveillance systems, remote desktop conference presentations, or other scenarios where video is encoded and sent from one location to one or more other locations. .. The network environment (202) of FIG. 2b includes two playback tools (214), while the network environment (202) can include more or fewer playback tools (214). Generally, the playback tool (214) communicates with the encoding tool (212) to determine the stream of video received by the playback tool (214). The playback tool (214) receives the stream, buffers the received encoded data for an appropriate period of time, and initiates 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 can be included in the encoding tool (212). Alternatively, the encoding tool (212) uses another encoder system. The encoding tool (212) can 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 can be included in the playback tool (214). Alternatively, the playback tool (214) uses another decoder system. The playback tool (214) can also include client-side controller logic for managing connections with the encoding tool (212).

III.例示的なエンコーダシステム
図3は、記載するいくつかの実施形態が併せて実現されてもよい、例示的なエンコーダシステム(300)のブロック図である。エンコーダシステム(300)は、リアルタイム通信向けの低レイテンシエンコーディングモード、トランスコーディングモード、ファイル若しくはストリームからの再生向けにメディアを生成するより高いレイテンシのエンコーディングモードなど、複数のエンコーディングモードのいずれかで動作することができる、汎用エンコーディングツールであることができ、又は1つのかかるエンコーディングモードに適合された専用エンコーディングツールであることができる。エンコーダシステム(300)は、特定タイプのコンテンツ(例えば、画面キャプチャコンテンツ)のエンコーディングに適合させることができる。エンコーダシステム(300)は、オペレーティングシステムモジュールの一部として、アプリケーションライブラリの一部として、スタンドアロン型アプリケーションの一部として、又は専用ハードウェアを使用して実現することができる。概して、エンコーダシステム(300)は、ソースビデオピクチャ(311)のシーケンスをビデオソース(310)から受信し、エンコードされたデータをチャネル(390)に対する出力として生成する。チャネルに対して出力されるエンコードされたデータは、WPPが使用可能にされるときにピクチャ内予測モードに対して強制される規則を使用してエンコードされるコンテンツを含むことができる。
III. Illustrative Encoder System FIG. 3 is a block diagram of an exemplary encoder system (300) in which some of the embodiments described may be realized together. The encoder system (300) operates in one of a plurality of encoding modes, including a low latency encoding mode for real-time communication, a transcoding mode, and a higher latency encoding mode that produces media for playback from a file or stream. It can be a general purpose encoding tool, or it can be a dedicated encoding tool adapted for one such encoding mode. The encoder system (300) can be adapted to the encoding of a particular type of content (eg, screen capture content). The encoder system (300) can be implemented as part of an operating system module, as part of an application library, as part of a stand-alone application, or using dedicated hardware. Generally, the encoder system (300) receives a sequence of source video pictures (311) from the video source (310) and produces the encoded data as output to the channel (390). The encoded data output to the channel can include content encoded using the rules enforced for in-picture prediction mode when WPP is enabled.

ビデオソース(310)は、カメラ、チューナーカード、記憶媒体、画面キャプチャモジュール、又は他のデジタルビデオソースであることができる。ビデオソース(310)は、ビデオピクチャのシーケンスを、例えば1秒当たり30フレームのフレームレートで生成する。本明細書で使用するとき、「ピクチャ」という用語は一般に、ソースの符号化され又は再構成された画像データを指す。プログレッシブスキャンビデオの場合、ピクチャはプログレッシブスキャンビデオフレームである。インターレースビデオの場合、例示的な実施形態では、インターレースビデオフレームはエンコーディングの前にインターレース解除されてもよい。或いは、2つの補完的なインターレースビデオフィールドが、単一のビデオフレームとして一緒にエンコードされるか、又は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) produces a sequence of video pictures, for example, at a frame rate of 30 frames per second. As used herein, the term "picture" generally refers to source encoded or reconstructed image data. For progressive scan video, the picture is a progressive scan video frame. For interlaced video, in an exemplary embodiment, the interlaced video frame may be deinterlaced before encoding. Alternatively, two complementary interlaced video fields are encoded together as a single video frame or as two separately encoded fields. In addition to referring to progressive scan video frames or interlaced scan video frames, the term "picture" refers to a single unpaired video field, a pair of complementary video fields, a video object plane representing a video object at a given time, Or it can indicate a region of interest in a larger image. A video object plane or area can be part of a larger image that contains multiple objects or areas in the scene.

到着するソースピクチャ(311)は、複数のピクチャバッファ記憶エリア(321、322、…、32n)を含むソースピクチャ一時メモリ記憶エリア(320)に記憶される。ピクチャバッファ(321、322など)は、1つのソースピクチャをソースピクチャ記憶エリア(320)で保持する。ソースピクチャ(311)の1つ以上がピクチャバッファ(321、322など)に記憶された後、ピクチャセレクタ(330)が個々のソースピクチャをソースピクチャ記憶エリア(320)から選択する。ピクチャが、エンコーダ(340)への入力のためにピクチャセレクタ(330)によって選択される順序は、ピクチャがビデオソース(310)によって生成される順序とは異なっていてもよく、例えば、いくつかのピクチャのエンコードの順序が遅らされて、いくつかの後のピクチャが最初にエンコードされることを可能にし、結果として時間的後方予測を容易にしてもよい。エンコーダ(340)の前に、エンコーダシステム(300)は、エンコードする前に選択されたピクチャ(311)の前処理(例えば、フィルタリング)を実施するプリプロセッサ(図示なし)を含むことができる。前処理は、一次(例えば、ルマ)及び二次(例えば、赤色及び青色に向かうクロマ差)成分への色空間コンバージョン、並びにエンコーディングのためのリサンプリング処理(例えば、クロマ成分の空間分解能を低減する)を含むことができる。エンコードの前に、ビデオは、YUVなどの色空間にコンバートされてもよく、これにおいて、ルマ(Y)成分のサンプル値が明るさ又は明度値を表し、クロマ(U、V)成分のサンプル値が色差値を表す。色差値の精密な定義(及びYUV色空間とRGBなどの別の色空間との間でのコンバージョン動作)は、実装に依存する。一般に、本明細書で使用するとき、YUVという用語は、Y’UV、YIQ、Y’IQ、及びYDbDr、並びにYCbCr及びYCoCgなどの変形を含む、ルマ(又は、輝度)成分と1つ以上のクロマ(又は、クロミナンス)成分とを有する任意の色空間を示す。クロマサンプル値は、より低いクロマサンプリングレートへとサブサンプリングされてもよく(例えば、YUV4:2:0フォーマットの場合)、又はクロマサンプル値は、ルマサンプル値と同じ分解能を有してもよい(例えば、YUV4:4:4フォーマットの場合)。或いは、ビデオを別のフォーマット(例えば、RGB4:4:4フォーマット、GBR4:4:4フォーマット、又はBGR4:4:4フォーマット)でエンコードすることができる。特に、画面コンテンツビデオは、RGB4:4:4フォーマット、GBR4:4:4フォーマット、又はBGR4:4:4フォーマットでエンコードされてもよい。 The arriving source picture (311) is stored in the source picture temporary memory storage area (320) including a plurality of picture buffer storage areas (321, 322, ..., 32n). The picture buffer (321, 322, etc.) holds one source picture in the source picture storage area (320). After one or more of the source pictures (311) are stored in the picture buffer (321, 322, etc.), the picture selector (330) selects individual source pictures from the source picture storage area (320). The order in which the pictures are selected by the picture selector (330) for input to the encoder (340) may be different from the order in which the pictures are produced by the video source (310), eg, some The order of encoding the pictures may be delayed, allowing some later pictures to be encoded first, thus facilitating time-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 picture (311) prior to encoding. Preprocessing reduces color space conversion to primary (eg, Luma) and secondary (eg, chroma differences towards red and blue) components, as well as resampling for encoding (eg, reducing the spatial resolution of chroma components). ) Can be included. Prior to encoding, the video may be converted to a color space such as YUV, in which the sample value of the Luma (Y) component represents the brightness or brightness value and the sample value of the chroma (U, V) component. Represents the color difference value. The precise definition of the color difference value (and the conversion behavior between the YUV color space and another color space such as RGB) is implementation dependent. Generally, as used herein, the term YUV refers to a Luma (or brightness) component and one or more components, including variants such as Y'UV, YIQ, Y'IQ, and YDbDr, as well as YCbCr and YCoCg. Indicates an arbitrary color space having a chroma (or chrominance) component. Chroma sample values may be subsampled to lower chroma sampling rates (eg, in the YUV 4: 2: 0 format), or chroma sample values may have the same resolution as Luma sample values (eg, for YUV 4: 2: 0 format). For example, in the case of YUV 4: 4: 4 format). Alternatively, the video can be encoded in another format (eg, RGB 4: 4: 4, GBR 4: 4: 4, or BGR 4: 4: 4 format). In particular, the screen content video may be encoded in RGB 4: 4: 4 format, GBR 4: 4: 4 format, or BGR 4: 4: 4 format.

エンコーダ(340)は、選択されたピクチャ(331)をエンコードして、符号化されたピクチャ(341)を生成し、また、メモリ管理制御動作(「MMCO」)信号(342)又は参照ピクチャセット(「RPS」)情報を生成する。RPSは、現在ピクチャ又は任意の後続ピクチャに対する動き補償において参照のために使用されてもよい、ピクチャのセットである。現在ピクチャが、エンコードされている第1のピクチャでない場合、そのエンコーディング処理を実施するとき、エンコーダ(340)は、デコード済みピクチャ一時メモリ記憶エリア(360)に記憶されている1つ以上の事前にエンコードされ/デコードされたピクチャ(369)を使用してもよい。かかる記憶されているエンコードされたピクチャ(369)は、現在のソースピクチャ(331)のコンテンツをピクチャ間(inter-picture)予測するための参照ピクチャとして使用される。MMCO/RPS情報(342)は、デコーダに対して、どの再構成されたピクチャが参照ピクチャとして使用されてもよく、従ってピクチャ記憶エリアに記憶されるべきであるかを示す。 The encoder (340) encodes the selected picture (331) to generate an encoded picture (341) and also a memory management control operation (“MMCO”) signal (342) or reference picture set ( "RPS") Generate information. The RPS is a set of pictures that may be used for reference in motion compensation for the current picture or any subsequent picture. If the currently picture is not the first encoded picture, the encoder (340) will have one or more pre-stored in the decoded picture temporary memory storage area (360) when performing the encoding process. Encoded / decoded pictures (369) may be used. The stored encoded picture (369) is used as a reference picture for inter-picture predicting the content of the current source picture (331). The MMCO / RPS information (342) indicates to the decoder which reconstructed picture may be used as the reference picture and therefore should be stored in the picture storage area.

一般に、エンコーダ(340)は、タイルへの区分化、ピクチャ内予測推定及び予測、動き推定及び補償、周波数変換、量子化、並びにエントロピー符号化などのエンコーディングタスクを実施する複数のエンコーディングモジュールを含む。エンコーダ(340)によって実施される正確な動作は、圧縮フォーマットに依存して変動し得る。出力されるエンコードされたデータのフォーマットは、H.265/HEVCフォーマット、ウィンドウズ(登録商標)メディアビデオフォーマット、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 a plurality of encoding modules that perform encoding tasks such as tile segmentation, in-picture prediction and prediction, motion estimation and compensation, frequency conversion, quantization, and entropy coding. The exact operation performed by the encoder (340) can vary depending on the compression format. The format of the output encoded data is H.I. 265 / HEVC format, Windows® media video format, VC-1 format, MPEG-x format (eg MPEG-1, MPEG-2, or MPEG-4), H.D. It can be a 26x format (eg, H.261, H.262, H.263, H.264), or a variant or extension of another format.

エンコーダ(340)は、ピクチャを同じサイズ又は異なるサイズの複数のタイルへと区分することができる。例えば、エンコーダ(340)は、ピクチャ境界と共にピクチャ内のタイルの水平及び垂直方向の境界を画成する、タイル行及びタイル列に沿ってピクチャを分割し、各タイルは長方形領域である。タイルは、並列処理に関する選択肢を提供するのに使用される場合が多い。ピクチャはまた、1つ以上のスライスとして編成することができ、スライスはピクチャ全体又はピクチャのセクションであることができる。スライスは、ピクチャ内の他のスライスとは独立してデコードすることができ、それによって誤り耐性が改善される。スライス又はタイルのコンテンツは、エンコーディング及びデコーディングの目的のため、サンプル値のブロック又は他のセットへと更に区分される。特定ブロックの行(例えば、H.265/HEVC規格に従ったスライスの符号化ツリーユニットの行)を、以下で更に説明するように、WPPを使用して並列してエンコードすることができる。 The encoder (340) can divide the picture into a plurality of tiles of the same size or different sizes. For example, the encoder (340) divides the picture along tile rows and columns that define the horizontal and vertical boundaries of the tiles in the picture along with the picture boundaries, where each tile is a rectangular area. Tiles are often used to provide options for parallelism. Pictures can also be organized as one or more slices, which can be an entire picture or a section of a picture. Slices can be decoded independently of the other slices in the picture, which improves error tolerance. The content of slices or tiles is further subdivided into blocks of sample values or other sets for encoding and decoding purposes. Rows of a particular block (eg, rows of encoded tree units of slices according to the H.265 / HEVC standard) can be encoded in parallel using WPP, as described further below.

H.265/HEVC規格に従ったシンタックスの場合、エンコーダは、ピクチャ(又はスライス若しくはタイル)のコンテンツを符号化ツリーユニットへと分割する。符号化ツリーユニット(「CTU」)は、ルマ符号化ツリーブロック(「CTB」)として編成されるルマサンプル値と、それに対応する、2つのクロマCTBとして編成されるクロマサンプル値とを含む。CTU(及びそのCTB)のサイズはエンコーダによって選択される。ルマCTBは、例えば、64×64、32×32、又は16×16のルマサンプル値を含むことができる。CTUは1つ以上の符号化ユニットを含む。符号化ユニット(「CU」)は、ルマ符号化ブロック(「CB」)及び2つの対応するクロマCBを有する。例えば、64×64ルマCTB及び2つの64×64クロマCTBを有するCTU(YUV4:4:4フォーマット)を、4つのCUへと分割することができ、各CUは、32×32ルマCB及び2つの32×32クロマCBを含み、各CUは、場合によってはより小さいCUへと更に分割される。或いは、別の例として、64×64ルマCTB及び2つの32×32クロマCTBを有するCTU(YUV4:2:0フォーマット)を、4つのCUへと分割することができ、各CUは、32×32ルマCB及び2つの16×16クロマCBを含み、各CUは、場合によってはより小さいCUへと更に分割される。CUの最小許容可能サイズ(例えば、8×8、16×16)がビットストリーム内で信号伝達されることができる。 H. For syntax according to the 265 / HEVC standard, the encoder divides the content of the picture (or slice or tile) into encoded tree units. The coded tree unit (“CTU”) includes a Luma sample value organized as a Luma coded tree block (“CTB”) and a corresponding chroma sample value organized as two chroma CTBs. The size of the CTU (and its CTB) is selected by the encoder. The Luma CTB can include, for example, a Luma sample value of 64x64, 32x32, or 16x16. The CTU contains one or more coding units. The coding unit (“CU”) has a Luma coding block (“CB”) and two corresponding chroma CBs. For example, a CTU (YUV4: 4: 4 format) having a 64x64 Luma CTB and two 64x64 Chroma CTBs can be divided into four CUs, each of which is a 32x32 Luma CB and 2 Includes two 32x32 chroma CBs, each CU is optionally further subdivided into smaller CUs. Alternatively, as another example, a CTU (YUV 4: 2: 0 format) having a 64x64 Luma CTB and two 32x32 chroma CTBs can be divided into four CUs, each of which is 32x. Each CU is subdivided into smaller CUs, including 32 Luma CBs and two 16x16 Chroma CBs. The minimum acceptable size of CU (eg, 8x8, 16x16) can be signaled within the bitstream.

一般に、CUはインター又はイントラなどの予測モードを有する。CUは、予測情報(予測モード詳細、変位値など)の信号伝達、及び/又は予測処理の目的で、1つ以上の予測ユニットを含む。予測ユニット(「PU」)は、ルマ予測ブロック(「PB」)及び2つのクロマPBを有する。H.265/HEVC規格に従って、イントラ予測されるCUの場合、CUが最小サイズ(例えば、8×8)を有さない限り、PUはCUと同じサイズを有する。その場合、CUは4つのより小さいPUへと分割することができ(例えば、ピクチャ内予測での最小CUサイズが8×8の場合、それぞれ4×4)、又はPUは、CUのシンタックス要素によって示されるように、最小CUサイズを有することができる。しかしながら、イントラBC予測で使用される対称又は非対称区分化の場合、より大きいCUを複数のPUへと分割することができる。 In general, the CU has a predictive mode such as inter or intra. The CU includes one or more prediction units for the purpose of signaling and / or predicting prediction information (prediction mode details, displacement values, etc.). The prediction unit (“PU”) has a Luma prediction block (“PB”) and two chroma PBs. H. For intra-predicted CUs according to the 265 / HEVC standard, PUs have the same size as CUs, unless the CUs have a minimum size (eg 8x8). In that case, the CU can be divided into four smaller PUs (eg, 4x4 each if the minimum CU size in the in-picture prediction is 8x8), or the PUs are the syntax elements of the CU. Can have a minimum CU size, as indicated by. However, in the case of the symmetric or asymmetric division used in the intra-BC prediction, the larger CU can be split into multiple PUs.

CUは、残差のコーディング/デコーディングを目的とする1つ以上の変換ユニットをさらに有し、その場合、変換ユニット(「TU」)はルマ変換ブロック(「TB」)及び2つのクロマTBを有する。イントラ予測CUのPUは、単一のTU(PUにサイズが等しい)又は複数のTUを含んでもよい。エンコーダは、ビデオをどのようにして、CTU、CU、PU、TUなどへと区分するかを決める。 The CU further has one or more conversion units intended for residual coding / decoding, in which case the conversion unit (“TU”) contains a Luma conversion block (“TB”) and two chroma TBs. Have. The PU of the intra-predicted CU may include a single TU (equal in size to the PU) or multiple TUs. The encoder determines how the video is divided into CTU, CU, PU, TU, and so on.

H.265/HEVCの実装では、スライスは、単一のスライスセグメント(独立スライスセグメント)を含むことができ、又は複数のスライスセグメント(独立スライスセグメント及び1つ以上の従属スライスセグメント)へと分けることができる。スライスセグメントは、タイルスキャンにおいて連続して順序付けられた整数のCTUであり、単一のネットワーク抽象化レイヤ(「NAL」)ユニットに含まれる。独立スライスセグメントの場合、スライスセグメントヘッダが、独立スライスセグメントに該当するシンタックス要素の値を含む。従属スライスセグメントの場合、切り詰められたスライスセグメントヘッダが、その従属スライスセグメントに該当するシンタックス要素のいくつかの値を含み、従属スライスセグメントに対する他のシンタックス要素の値は、デコーディング順序において前の独立スライスセグメントの値から推論される。 H. In the 265 / HEVC implementation, slices can contain a single slice segment (independent slice segment) or can be divided into multiple slice segments (independent slice segment and one or more dependent slice segments). .. A slice segment is a contiguously ordered integer CTU in a tile scan and is contained within a single network abstraction layer (“NAL”) unit. For independent slice segments, the slice segment header contains the value of the syntax element that corresponds to the independent slice segment. For dependent slice segments, the truncated slice segment header contains some values of the syntax element that corresponds to that dependent slice segment, and the values of the other syntax elements for the dependent slice segment are earlier in the decoding order. Inferred from the value of the independent slice segment of.

本明細書で使用するとき、「ブロック」という用語は、文脈に応じて、マクロブロック、残差データユニット、CB、PB、若しくはTB、又は他の何らかのサンプル値のセットを示すことができる。「ユニット」という用語は、文脈に応じて、マクロブロック、CTU、CU、PU、TU、又は他の何らかのブロックのセットを示すことができ、或いは単一のブロックを示すことができる。 As used herein, the term "block" can refer to a macroblock, residual data unit, CB, PB, or TB, or any other set of sample values, depending on the context. The term "unit" can refer to a set of macroblocks, CTUs, CUs, PUs, TUs, or any other block, depending on the context, or can refer to a single block.

図3に戻ると、エンコーダは、ソースピクチャ(331)のイントラ符号化されたブロック、ライン、又はストリングを、そのピクチャ(331)における他の事前に再構成されたサンプル値からの予測という観点で表す。イントラコピー予測の場合、ピクチャ内推定器が、現在のブロック、ライン、又はストリングから、他の事前に再構成されたサンプル値における位置への変位を推定する。ピクチャ内のサンプル値の参照ブロック、ライン、又はストリングが、現在のブロック、ライン、又はストリングに対する予測値を作り出すのに使用される。例えば、イントラブロックコピー(「BC」)予測の場合、ピクチャ内推定器が、現在のブロックから、ピクチャ内の事前に再構成されたサンプル値におけるある位置への変位を推定する。参照ブロックが、現在のブロックに対するBC予測値を提供する、ピクチャ内のサンプル値のブロックである。参照ブロックは、ブロックベクトル(「BV」)値(BV推定で決定される)で示すことができる。別の例として、イントララインコピー(「LC」)予測の場合、ピクチャ内推定器が、(現在のブロックの)現在のラインから、ピクチャ内の事前に再構成されたサンプル値におけるある位置への変位を推定する。参照ラインが、現在のラインに対するLC予測値を提供する、ピクチャ内のサンプル値のラインである。参照ラインは、現在のラインから参照ラインへの変位を示すオフセット値で示すことができる。別の例として、イントラストリングコピー(「SC」)予測の場合、ピクチャ内推定器が、(現在のブロックの)現在のストリングから、ピクチャ内の事前に再構成されたサンプル値におけるある位置への変位を推定する。参照ストリングが、現在のストリングに対するSC予測値を作り出すのに使用される、ピクチャ内の一連のサンプル値である。参照ストリングは、オフセット値(現在のストリングから参照ストリングへの変位を示す)、及びストリング長さ値で示すことができる。実装に依存して、エンコーダは、入力されたサンプル値又は再構成されたサンプル値(同じピクチャの事前にエンコードされたサンプル値)を使用して、ブロック、ライン、又はストリングのオフセット推定を実施することができる。WPPが使用可能にされると、ピクチャ内推定器は、後述するように、参照領域の場所に対する制約と整合する変位(例えば、イントラBC予測のBV値に対して、又はイントラSC予測若しくはイントラLC予測のオフセット値に対して)を決定することができる。 Returning to FIG. 3, the encoder predicts the intra-encoded blocks, lines, or strings of the source picture (331) from other pre-reconstructed sample values in that picture (331). Represent. For intra-copy prediction, the in-picture estimator estimates the displacement from the current block, line, or string to position in another pre-reconstructed sample value. A reference block, line, or string of sample values in the picture is used to generate a prediction value for the current block, line, or string. For example, in the case of intra-block copy (“BC”) prediction, the in-picture estimator estimates the displacement from the current block to a position in the pre-reconstructed sample value in the picture. The reference block is a block of sample values in the picture that provides BC predictions for the current block. The reference block can be indicated by a block vector (“BV”) value (determined by BV estimation). As another example, in the case of intraline copy (“LC”) prediction, the in-picture estimator moves from the current line (of the current block) to a position in the pre-reconstructed sample value in the picture. Estimate the displacement. The reference line is a line of sample values in the picture that provides LC predictions for the current line. The reference line can be indicated by an offset value that indicates the displacement from the current line to the reference line. As another example, in the case of intrastring copy (“SC”) prediction, the in-picture estimator moves from the current string (of the current block) to a position in the picture with a pre-reconstructed sample value. Estimate the displacement. The reference string is a set of sample values in the picture that are used to generate SC predictions for the current string. The reference string can be indicated by an offset value (indicating the displacement from the current string to the reference string), and a string length value. Depending on the implementation, the encoder uses the input sample value or the reconstructed sample value (pre-encoded sample value of the same picture) to perform offset estimation of blocks, lines, or strings. be able to. When WPP is enabled, the in-picture estimator will perform displacements consistent with constraints on the location of the reference region (eg, with respect to the BV value of the intra BC prediction, or with the intra SC prediction or intra LC, as described below. (For the offset value of the prediction) can be determined.

ブロックに対するイントラ空間予測の場合、ピクチャ内推定器は、隣接する再構成されたサンプル値のブロックへの補外を推定する。 For intra-spatial prediction for a block, the in-picture estimator estimates the extrapolation of adjacent reconstructed sample values to the block.

ピクチャ内推定器は、予測情報(イントラBC予測に対するBV値、イントラLC予測若しくはイントラSC予測に対するオフセット値、又はイントラ空間予測に対する予測モード(方向))を出力することができ、これはエントロピー符号化される。ピクチャ内予測予測器が、予測情報を適用してイントラ予測値を決定する。 The in-picture estimator can output prediction information (BV value for intra BC prediction, offset value for intra LC or intra SC prediction, or prediction mode (direction) for intra space prediction), which is entropy encoded. Will be done. The in-picture predictor applies the forecast information to determine the intra-predicted value.

パレット符号化モード(palette coding mode)の場合、エンコーダ(340)は、CU、又はパレットを使用する他のユニットの、サンプル値の少なくとも一部を表現する。パレットは、ユニットで使用される色を表す。例えば、パレットは、インデックス値0、1、2、…、pを対応する色に対してマッピングする。ユニットをエンコードする間、適切なインデックス値が、ユニット内の位置におけるサンプル値に取って代わる(replace)。ユニット内のレア値は、パレットのインデックス値を使用する代わりに、エスケープコード値及びリテラル値を使用してエンコードすることができる。パレットはユニット毎に変更することができ、パレットを指定する情報はビットストリーム内で信号伝達することができる。 In the palette coding mode, the encoder (340) represents at least a portion of the sample values of the CU, or other unit that uses the palette. The palette represents the colors used in the unit. For example, the palette maps index values 0, 1, 2, ..., P to the corresponding colors. While encoding the unit, the appropriate index value replaces the sample value at a position within the unit. Rare values within a unit can be encoded using escape code values and literal values instead of using palette index values. The palette can be changed for each unit, and the information that specifies the palette can be signaled within the bitstream.

エンコーダ(340)は、参照ピクチャからの予測という点で、ソースピクチャ(331)のピクチャ間符号化された予測ブロックを表す。動き推定器が、1つ以上の参照ピクチャ(369)に対するブロックの動きを推定する。複数の参照ピクチャが使用される場合、複数の参照ピクチャは、異なる時間方向又は同じ時間方向からのものであり得る。動き補償された予測参照領域が、現在ピクチャのサンプル値のブロックに対して動き補償された予測値を作り出すのに使用される、参照ピクチャ内のサンプル値の領域である。動き推定器は、動きベクトル(「MV」)情報などの動き情報を出力し、これはエントロピー符号化される。動き補償器は、MVを参照ピクチャ(369)に適用して、ピクチャ間予測に対する動き補償された予測値を決定する。 The encoder (340) represents an inter-picture encoded prediction block of the source picture (331) in terms of prediction from the reference picture. The motion estimator estimates the motion of the block with respect to one or more reference pictures (369). When a plurality of reference pictures are used, the plurality of reference pictures can be from different time directions or the same time direction. The motion-compensated predictive reference region is the region of sample values in the reference picture that is used to produce motion-compensated predictive values for the block of sample values in the current picture. The motion estimator outputs motion information such as motion vector (“MV”) information, which is entropy-encoded. The motion compensator applies the MV to the reference picture (369) to determine the motion compensated prediction value for the inter-picture prediction.

エンコーダは、ブロックの予測値(イントラ又はインター)と対応する元の値との間の差(ある場合)を決定することができる。これらの予測残差値は、周波数変換(周波数変換がスキップされない場合)、量子化、及びエントロピーエンコーディングを使用して更にエンコードされる。例えば、エンコーダ(340)は、ピクチャ、タイル、スライス、及び/又はビデオの他の部分に対する量子化パラメータ(「QP」)の値を設定し、変換係数を適宜量子化する。エンコーダ(340)のエントロピー符号器は、量子化された変換係数値、並びに特定のサイド情報(例えば、MV情報、BV情報、QP値、モード判断、パラメータ選択)を圧縮する。典型的なエントロピー符号化技術としては、指数ゴロム符号化、ゴロムライス符号化、算術符号化、差分符号化、ハフマン符号化、ランレングス符号化、可変長対可変長(「V2V」)符号化、可変長対固定長(「V2F」)符号化、レンペルジブ(「LZ」)符号化、辞書符号化、確率区間区分エントロピー符号化(「PIPE」)、及び上記の組み合わせが挙げられる。エントロピー符号器は、異なる種類の情報に対して異なる符号化技術を使用することができ、複数の技術を組み合わせて適用することができ(例えば、ゴロムライス符号化の後に算術符号化を適用することによる)、特定の符号化技術内の複数のコードテーブルの中から選ぶことができる。いくつかの実装では、周波数変換はスキップすることができる。この場合、予測残差値を量子化しエントロピー符号化することができる。パレット符号化モードが使用される場合、エントロピー符号器はパレットデータをエンコードすることができる。エンコーダ(340)は、後述するようにパレット予測を使用することができる。 The encoder can determine the difference (if any) between the predicted value of the block (intra or inter) and the corresponding original value. These predicted residual values are further encoded using frequency conversion (if frequency conversion is not skipped), quantization, and entropy encoding. For example, the encoder (340) sets the value of the quantization parameter (“QP”) for other parts of the picture, tile, slice, and / or video and quantizes the conversion factor as appropriate. The entropy encoder of the encoder (340) compresses the quantized conversion coefficient value as well as specific side information (eg, MV information, BV information, QP value, mode determination, parameter selection). Typical entropy coding techniques include exponential Golomb coding, Golomlays coding, arithmetic coding, difference coding, Huffman coding, run length coding, variable length vs. variable length (“V2V”) coding, and variable. Long vs. fixed length (“V2F”) coding, Lempeljib (“LZ”) coding, dictionary coding, stochastic interval segment entropy coding (“PIPE”), and combinations of the above. Entropy encoders can use different coding techniques for different types of information and can apply a combination of techniques (eg, by applying arithmetic coding after Golomulais coding). ), You can choose from multiple code tables within a particular coding technique. In some implementations, frequency conversion can be skipped. In this case, the predicted residual value can be quantized and entropy coded. When the palette encoding mode is used, the entropy encoder can encode the palette data. The encoder (340) can use palette prediction as described below.

適応デブロッキングフィルタが、エンコーダ(340)の動き補償ループ内に含まれて(即ち、「インループ」フィルタリング)、デコードされたピクチャにおけるブロック境界の行及び/又は列にわたる不連続性を平滑化する。その代わりに、又はそれに加えて、他のフィルタリング(デリンギングフィルタリング、適応ループフィルタリング(「ALF」)、又はサンプル適応オフセット(「SAO」)フィルタリングなど、図示なし)を、インループフィルタリング動作として適用することができる。 An adaptive deblocking filter is included within the motion compensation loop of the encoder (340) (ie, "in-loop" filtering) to smooth out discontinuities across block boundary rows and / or columns in the decoded picture. .. Alternatively or in addition, other filtering (deringing filtering, adaptive loop filtering (“ALF”), or sample adaptive offset (“SAO”) filtering, not shown) is applied as an in-loop filtering operation. be able to.

エンコーダ(340)によって生成されるエンコードされたデータは、ビットストリームシンタックスの様々なレイヤに対するシンタックス要素を含む。H.265/HEVC規格に従ったシンタックスの場合、例えば、ピクチャパラメータセット(「PPS」)が、ピクチャに関連付けられてもよいシンタックス要素を含むシンタックス構造である。PPSは単一のピクチャに使用することができ、又はPPSは、シーケンス内の複数ピクチャに対して再使用することができる。PPSは、典型的に、ピクチャに対するエンコードされたデータとは別個で信号伝達される(例えば、PPSに対する1つのネットワーク抽象化レイヤ(「NAL」)ユニット、及びピクチャのエンコードされたデータに対する1つ以上の他のNALユニット)。ピクチャのエンコードされたデータ内において、シンタックス要素が、どのPPSをピクチャに使用するかを示す。同様に、H.265/HEVC規格に従ったシンタックスの場合、シーケンスパラメータセット(「SPS」)が、ピクチャのシーケンスに関連付けられてもよいシンタックス要素を含むシンタックス構造である。ビットストリームは単一のSPS又は複数のSPSを含むことができる。SPSは、典型的に、シーケンスに対する他のデータとは別個で信号伝達され、他のデータ内のシンタックス要素が、どのSPSを使用するかを示す。 The encoded data generated by the encoder (340) contains syntax elements for various layers of bitstream syntax. H. In the case of syntax according to the 265 / HEVC standard, for example, the picture parameter set (“PPS”) is a syntax structure that includes syntax elements that may be associated with the picture. The PPS can be used for a single picture, or the PPS can be reused for multiple pictures in a sequence. The PPS is typically signaled separately from the encoded data for the picture (eg, one network abstraction layer (“NAL”) unit for the PPS, and one or more for the encoded data for the picture. Other NAL units). In the encoded data of the picture, the syntax element indicates which PPS to use for the picture. Similarly, H. For syntax according to the 265 / HEVC standard, the sequence parameter set (“SPS”) is a syntax structure that includes syntax elements that may be associated with the sequence of pictures. The bitstream can contain a single SPS or multiple SPS. The SPS is typically signaled separately from the other data for the sequence and indicates which SPS the syntax element in the other data uses.

符号化されたピクチャ(341)及びMMCO/RPS情報(342)(又は、ピクチャに対する依存関係及び順序構造がエンコーダ(340)で既に知られていることによる、MMCO/RPS情報(342)と等価の情報)は、デコーディング処理エミュレータ(350)によって処理される。デコーディング処理エミュレータ(350)は、デコーダの機能性の一部、例えば、参照ピクチャを再構成するデコーディングタスクを実現する。MMCO/RPS情報(342)と整合する仕方で、デコーディング処理エミュレータ(350)は、エンコードされる後続ピクチャのピクチャ間予測における参照ピクチャとして使用するために、所与の符号化されたピクチャ(341)が再構成され記憶される必要があるか否かを決定する。符号化されたピクチャ(341)が記憶される必要がある場合、デコーディング処理エミュレータ(350)は、符号化されたピクチャ(341)を受信し、対応するデコードされたピクチャ(351)を生成するデコーダによって行われるであろうデコーディング処理を、モデル化する。それを行う際、エンコーダ(340)が、デコード済みピクチャ記憶エリア(360)に記憶されているデコードされたピクチャ(369)を使用している場合、デコーディング処理エミュレータ(350)は、記憶エリア(360)からのデコードされたピクチャ(369)をデコーディング処理の一部としてさらに使用する。 Equivalent to MMCO / RPS information (342) due to the encoded picture (341) and MMCO / RPS information (342) (or the dependency and order structure for the picture already known in the encoder (340). Information) is processed by the decoding processing emulator (350). The decoding processing emulator (350) implements some of the functionality of the decoder, eg, the decoding task of reconstructing a reference picture. In a manner consistent with the MMCO / RPS information (342), the decoding processing emulator (350) has a given encoded picture (341) for use as a reference picture in the inter-picture prediction of the subsequent picture to be encoded. ) Needs to be reconstructed and stored. If the encoded picture (341) needs to be stored, the decoding processing emulator (350) receives the encoded picture (341) and produces the corresponding decoded picture (351). Model the decoding process that will be performed by the decoder. In doing so, if the encoder (340) is using the decoded picture (369) stored in the decoded picture storage area (360), the decoding processing emulator (350) will use the storage area (350). The decoded picture (369) from 360) is further used as part of the decoding process.

デコード済みピクチャ一時メモリ記憶エリア(360)は、複数のピクチャバッファ記憶エリア(361、362、…、36n)を含む。MMCO/RPS情報(342)と整合する仕方で、デコーディング処理エミュレータ(350)は、記憶エリア(360)のコンテンツを管理して、エンコーダ(340)による参照ピクチャとしての使用にもはや必要とされないピクチャを有する任意のピクチャバッファ(361、362など)を識別する。デコーディング処理のモデル化の後、デコーディング処理エミュレータ(350)は、このようにして識別されたピクチャバッファ(361、362など)に、新たにデコードされたピクチャ(351)を記憶する。 The decoded picture temporary memory storage area (360) includes a plurality of picture buffer storage areas (361, 362, ..., 36n). In a manner consistent with the MMCO / RPS information (342), the decoding processing emulator (350) manages the content of the storage area (360) and is no longer needed for use as a reference picture by the encoder (340). Identify any picture buffer (361, 362, etc.) with. After modeling the decoding process, the decoding process emulator (350) stores the newly decoded picture (351) in the picture buffers (361, 362, etc.) thus identified.

符号化されたピクチャ(341)及びMMCO/RPS情報(342)は、一時符号化済みデータエリア(370)にバッファされる。符号化済みデータエリア(370)に集約される符号化されたデータは、基本の符号化されたビデオビットストリームのシンタックスの一部として、1つ以上のピクチャに対するエンコードされたデータを含む。符号化済みデータエリア(370)に集約される符号化されたデータは、符号化されたビデオデータに関連するメディアメタデータを(例えば、1つ以上の付加拡張情報(「SEI」)メッセージ又はビデオユーザビリティ情報(「VUI」)メッセージにおける1つ以上のパラメータとして)さらに含むことができる。 The encoded picture (341) and MMCO / RPS information (342) are buffered in a temporarily encoded data area (370). The encoded data aggregated in the encoded data area (370) contains the encoded data for one or more pictures as part of the syntax of the basic encoded video bitstream. The encoded data aggregated in the encoded data area (370) contains media metadata associated with the encoded video data (eg, one or more additional extended information (“SEI”) messages or videos. Usability information ("VUI") can be further included (as one or more parameters in the message).

一時符号化済みデータエリア(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)は、シンタックス要素をプロトコルのシンタックスの一部として追加することができる。チャネルエンコーダ(380)は、チャネル(390)に対する出力を提供し、該チャネルは、記憶装置、通信接続、又は出力のための別のチャネルを表す。チャネルエンコーダ(380)又はチャネル(390)は、例えば、前方誤り訂正(「FEC」)エンコーディング及びアナログ信号変調のための、他の要素(図示なし)をさらに含んでもよい。 The aggregated data (371) from the temporarily encoded data area (370) is processed by the channel encoder (380). The channel encoder (380) transmits the aggregated data as a media stream for transmission or storage (eg, a media program stream or transport stream format such as ITU-TH 222.0 | ISO / IEC 13818-1). It can be packetized and / or multiplexed (or according to an Internet real-time transport protocol format such as IETF RFC 3550), in which case the channel encoder (380) will make the syntax element part of the syntax of the media transmission stream. Can be added. Alternatively, the channel encoder (380) can organize the aggregated data for storage as a file (eg, according to a media container format such as ISO / IEC 14496-12), in which case the channel encoder (380). ) Can add syntax elements as part of the syntax of a media storage file. Alternatively, more generally, the channel encoder (380) can implement one or more media system multiplexing or transport protocols, in which case the channel encoder (380) has syntactic elements in the protocol. Can be added as part of the tax. A channel encoder (380) provides an output to a channel (390), which represents a storage device, a communication connection, or another channel for output. The channel encoder (380) or channel (390) may further include, for example, other elements (not shown) for forward error correction (“FEC”) encoding and analog signal modulation.

IV.例示的なデコーダシステム
図4は、記載するいくつかの実施形態が併せて実現されてもよい、例示的なデコーダシステム(400)のブロック図である。デコーダシステム(400)は、リアルタイム通信向けの低レイテンシデコーディングモード、及びファイル若しくはストリームからのメディア再生向けのより高いレイテンシのデコーディングモードなど、複数のデコーディングモードのいずれかで動作することができる、汎用デコーディングツールであることができ、又は1つのかかるデコーディングモードに適合された専用デコーディングツールであることができる。デコーダシステム(400)は、オペレーティングシステムモジュールの一部として、アプリケーションライブラリの一部として、スタンドアロン型アプリケーションの一部として、又は専用ハードウェアを使用して実現することができる。概して、デコーダシステム(400)は、符号化されたデータをチャネル(410)から受信し、再構成されたピクチャを出力先(490)に対する出力として生成する。受信するエンコードされたデータは、WPPが使用可能にされるときにピクチャ内予測モードに対して強制される規則を使用してエンコードされたコンテンツを含むことができる。
IV. An exemplary decoder system FIG. 4 is a block diagram of an exemplary decoder system (400) in which some of the embodiments described may be implemented together. The decoder system (400) can operate in any of a plurality of decoding modes, such as a low latency decoding mode for real-time communication and a higher latency decoding mode for playing media from a file or stream. It can be a general purpose decoding tool, or it can be a dedicated decoding tool adapted for one such decoding mode. The decoder system (400) can be implemented as part of an operating system module, as part of an application library, as part of a stand-alone application, or using dedicated hardware. In general, the decoder system (400) receives the encoded data from the channel (410) and produces the reconstructed picture as an output to the output destination (490). The encoded data received can include content encoded using the rules enforced for in-picture prediction mode when WPP is enabled.

デコーダシステム(400)は、チャネル(410)を含み、該チャネルは、記憶装置、通信接続、又は入力としての符号化されたデータに対する別のチャネルを表すことができる。チャネル(410)は、チャネル符号化されている符号化されたデータを生成する。チャネルデコーダ(420)は、符号化されたデータを処理することができる。例えば、チャネルデコーダ(420)は、(例えば、ITU−T H.222.0|ISO/IEC 13818−1などのメディアプログラムストリーム若しくはトランスポートストリームフォーマット、又はIETF RFC 3550などのインターネットリアルタイムトランスポートプロトコルフォーマットに従って)伝送又は記憶のためにメディアストリームとして集約されているデータをパケット化解除し(de-packetizes)及び/又は多重分離し(demultiplexes)、その場合、チャネルデコーダ(420)は、メディア伝送ストリームのシンタックスの一部として追加されたシンタックス要素を構文解析する(parse)ことができる。或いは、チャネルデコーダ(420)は、(例えば、ISO/IEC 11496−12などのメディアコンテナフォーマットに従って)記憶のためにファイルとして集約されている符号化されたビデオデータを分離し、その場合、チャネルデコーダ(420)は、メディア記憶ファイルのシンタックスの一部として追加されたシンタックス要素を構文解析することができる。或いは、より一般には、チャネルデコーダ(420)は、1つ以上のメディアシステム多重分離プロトコル又はトランスポートプロトコルを実現することができ、その場合、チャネルデコーダ(420)は、プロトコルのシンタックスの一部として追加されたシンタックス要素を構文解析することができる。チャネル(410)又はチャネルデコーダ(420)は、例えば、FECデコーディング及びアナログ信号変調のための、他の要素(図示なし)をさらに含んでもよい。 The decoder system (400) includes a channel (410), which can represent another channel for encoded data as a storage device, communication connection, or input. Channel (410) produces coded data that is channel-encoded. The channel decoder (420) can process the encoded data. For example, the channel decoder (420) may be (eg, a media program stream or transport stream format such as ITU-TH 222.0 | ISO / IEC 13818-1, or an Internet real-time transport protocol format such as IETF RFC 3550. De-packetizes and / or demultiplexes the data aggregated as a media stream for transmission or storage (according to), in which case the channel decoder (420) is a media transmission stream. You can parse the syntax elements added as part of the syntax. Alternatively, the channel decoder (420) separates the encoded video data that is aggregated as a file for storage (eg, according to a media container format such as ISO / IEC 11496-12), in which case the channel decoder. (420) can parse the syntax elements added as part of the syntax of the media storage file. Alternatively, more generally, the channel decoder (420) can implement one or more media system multiplexing or transport protocols, in which case the channel decoder (420) is part of the syntax of the protocol. You can parse the syntax elements added as. The channel (410) or channel decoder (420) may further include, for example, other elements (not shown) for FEC decoding and analog signal modulation.

チャネルデコーダ(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 such data is received. The encoded data (421) includes the encoded picture (431) and MMCO / RPS information (432). The encoded data (421) in the encoded data area (430) contains encoded data for one or more pictures as part of the syntax of the basic encoded video bitstream. The encoded data (421) in the encoded data area (430) uses the media metadata associated with the encoded video data as one or more parameters in, for example, one or more SEI or VUI messages. ) Can be further included.

一般に、符号化済みデータエリア(430)は、符号化されたデータ(421)がデコーダ(450)によって使用されるまで、かかる符号化されたデータ(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 for the encoded picture (431) and the MMCO / RPS information (432) is transferred from the encoded data area (430) to the decoder (450). As the decoding continues, new encoded data is added to the encoded data area (430), and the oldest encoded data remaining in the encoded data area (430) goes to the decoder (450). Transferred.

デコーダ(450)は、符号化されたピクチャ(431)をデコードして、対応するデコードされたピクチャ(451)を生成する。ピクチャは、同じサイズ又は異なるサイズの複数のタイルへと区分することができる。ピクチャはまた、1つ以上のスライスとして編成することができる。スライス又はタイルのコンテンツは、サンプル値のブロック又は他のセットへと更に区分することができる。WPPが使用可能な状態で(WPPを使用して、或いはデコーディングの間WPPを使用するのと整合した仕方で)ピクチャがエンコードされた場合、更に後述するように、特定ブロックの行(例えば、H.265/HEVC規格に従ったCTUの行)を、WPPを使用して並列してデコードすることができる。 The decoder (450) decodes the encoded picture (431) to produce the corresponding decoded picture (451). The picture can be divided into multiple tiles of the same size or different sizes. Pictures can also be organized as one or more slices. The content of slices or tiles can be further subdivided into blocks of sample values or other sets. If a picture is encoded with WPP enabled (using WPP or in a manner consistent with using WPP during decoding), then a specific block of lines (eg, for example, as described below). Lines of CTU according to H.265 / HEVC standard) can be decoded in parallel using WPP.

必要に応じて、デコーダ(450)は、そのデコード処理を実施しているとき、1つ以上の事前にデコードされたピクチャ(469)をピクチャ間予測の参照ピクチャとして使用してもよい。デコーダ(450)は、かかる事前にデコードされたピクチャ(469)を、デコード済みピクチャ一時メモリ記憶エリア(460)から読み出す。一般に、デコーダ(450)は、エントロピーデコーディング、ピクチャ内予測、動き補償されたピクチャ間予測、逆量子化、逆周波数変換(スキップしない場合)、及びタイルのマージなどのデコーディングタスクを実施する、複数のデコーディングモジュールを含む。デコーダ(450)によって実施される正確な動作は、圧縮フォーマットに依存して変動し得る。 If necessary, the decoder (450) may use one or more pre-decoded pictures (469) as reference pictures for inter-picture prediction while performing the decoding process. The decoder (450) reads the pre-decoded picture (469) from the decoded picture temporary memory storage area (460). In general, the decoder (450) performs decoding tasks such as entropy decoding, in-picture prediction, motion-compensated inter-picture prediction, dequantization, reverse frequency conversion (if not skipped), and tile merging. Includes multiple decoding modules. The exact operation performed by the decoder (450) can vary depending on the compression format.

例えば、デコーダ(450)は、圧縮されたピクチャ又はピクチャのシーケンスに対するエンコードされたデータを受信し、デコードされたピクチャ(451)を含む出力を生成する。デコーダ(450)では、バッファが、圧縮されたピクチャに対するエンコードされたデータを受信し、適時に、受信したエンコードされたデータをエントロピーデコーダに対して利用可能にする。エントロピーデコーダは、エントロピー符号化された量子化されたデータ並びにエントロピー符号化されたサイド情報をエントロピーデコードし、典型的に、エンコーダで実施されるエントロピーエンコーディングの逆を適用する。パレットデコーディングモード(palette decoding mode)が使用される場合、エントロピーデコーダはパレットデータをデコードすることができる。デコーダ(450)は、後述するようにパレット予測を使用することができる。 For example, the decoder (450) receives encoded data for a compressed picture or sequence of pictures and produces an output containing the decoded picture (451). In the decoder (450), the buffer receives the encoded data for the compressed picture and makes the received encoded data available to the entropy decoder in a timely manner. The entropy decoder entropy-decodes the entropy-encoded quantized data as well as the entropy-encoded side information, typically applying the reverse of the entropy encoding performed by the encoder. When the palette decoding mode is used, the entropy decoder can decode the palette data. The decoder (450) can use palette prediction as described below.

動き補償器が、動き情報を1つ以上の参照ピクチャに適用して、再構成されているピクチャの任意のインター符号化されたブロックに対して動き補償された予測値を形成する。ピクチャ内予測モジュールが、隣接する事前再構成されたサンプル値から、現在のブロックのサンプル値を空間予測することができる。或いは、イントラBC予測、イントラLC予測、又はイントラSC予測の場合、ピクチャ内予測モジュールは、変位値で示されるピクチャの参照ブロック、ライン、又はストリングの事前に再構成されたサンプル値を使用して、現在のブロック、ライン、又はストリングのサンプル値を予測することができる。具体的には、参照ブロック/ライン/ストリングは、BV値(イントラBC予測の場合)、オフセット値(イントラLC予測の場合)、又はオフセット値及びストリング長さ値(イントラSC予測の場合)を用いて示すことができる。WPPが使用可能にされると、変位(例えば、イントラBC予測のBV値に対して、又はイントラSC予測若しくはイントラLC予測のオフセット値に対して)は、後述するように、参照領域の場所に対する制約と整合する。 The motion compensator applies motion information to one or more reference pictures to form motion compensated predictions for any intercoded block of the reconstructed picture. The in-picture prediction module can spatially predict the sample value of the current block from adjacent pre-reconstructed sample values. Alternatively, for intra BC prediction, intra LC prediction, or intra SC prediction, the in-picture prediction module uses pre-reconstructed sample values of the picture reference block, line, or string indicated by the displacement value. , Current block, line, or string sample values can be predicted. Specifically, the reference block / line / string uses the BV value (in the case of intra BC prediction), the offset value (in the case of intra LC prediction), or the offset value and the string length value (in the case of intra SC prediction). Can be shown. When the WPP is enabled, the displacement (eg, with respect to the BV value of the intra BC prediction, or with respect to the offset value of the intra SC or intra LC prediction) is relative to the location of the reference region, as described below. Consistent with constraints.

デコーダ(450)はさらに、予測残差値を再構成する。逆量子化器が、エントロピーデコードされたデータを逆量子化する。例えば、デコーダ(450)は、ビットストリーム内のシンタックス要素に基づいて、ピクチャ、タイル、スライス、及び/又はビデオの他の部分に対するQPの値を設定し、変換係数を適宜逆量子化する。逆周波数変換器が、量子化された周波数ドメインデータを空間ドメインデータへとコンバートする。いくつかの実装では、周波数変換をスキップすることができ、その場合、逆周波数変換もスキップされる。その場合、予測残差値をエントロピーデコードし、逆量子化することができる。ピクチャ間予測されたブロックに対して、デコーダ(450)は、再構成した予測残差値を動き補償された予測値と組み合わせる。デコーダ(450)は、同様に、予測残差値をピクチャ内予測からの予測値と組み合わせることができる。 The decoder (450) further reconstructs the predicted residual values. The dequantizer dequantizes the entropy-decoded data. For example, the decoder (450) sets QP values for pictures, tiles, slices, and / or other parts of the video based on the syntax elements in the bitstream, and dequantizes the conversion factors as appropriate. The inverse frequency converter converts the quantized frequency domain data into spatial domain data. In some implementations, frequency conversion can be skipped, in which case inverse frequency conversion is also skipped. In that case, the predicted residual value can be entropy-decoded and dequantized. For the inter-picture predicted block, the decoder (450) combines the reconstructed predicted residual value with the motion compensated predicted value. The decoder (450) can similarly combine the predicted residual value with the predicted value from the in-picture prediction.

パレットデコーディングモードの場合、デコーダ(450)は、CU又は他のユニットのサンプル値の少なくとも一部を表すパレットを使用する。パレットは、インデックス値を対応する色に対してマッピングする。デコーディングの間、ユニット内の位置に関して、パレットからのインデックス値が適切なサンプル値で置き換えられる(replaced)。ユニットのエスケープ符号化値が、エスケープコード値及びリテラル値を使用してデコードされることができる。パレットはユニット毎に変更することができ、パレットを指定する情報はビットストリーム内で信号伝達することができる。 For palette decoding mode, the decoder (450) uses a palette that represents at least a portion of the sample values for the CU or other unit. The palette maps index values to the corresponding colors. During decoding, the index values from the palette are replaced with the appropriate sample values for position within the unit. The escape coded value of the unit can be decoded using the escape code value and the literal value. The palette can be changed for each unit, and the information that specifies the palette can be signaled within the bitstream.

適応デブロッキングフィルタが、ビデオデコーダ(450)の動き補償ループ内に含まれて、デコードされたピクチャ(451)におけるブロック境界の行及び/又は列にわたる不連続性を平滑化する。その代わりに、又はそれに加えて、他のフィルタリング(デリンギングフィルタリング、ALF、又はSAOフィルタリングなど、図示なし)を、インループフィルタリング動作として適用することができる。 An adaptive deblocking filter is included within the motion compensation loop of the video decoder (450) to smooth out the discontinuities across the rows and / or columns of the block boundaries in the decoded picture (451). Alternatively, or in addition, other filtering (such as deringing filtering, ALF, or SAO filtering, not shown) can be applied as an in-loop filtering operation.

デコード済みピクチャ一時メモリ記憶エリア(460)は、複数のピクチャバッファ記憶エリア(461、462、…、46n)を含む。デコード済みピクチャ記憶エリア(460)は、デコード済みピクチャバッファの一例である。デコーダ(450)は、MMCO/RPS情報(432)を使用して、デコードされたピクチャ(451)を記憶することができるピクチャバッファ(461、462など)を識別する。デコーダ(450)は、デコードされたピクチャ(451)を上記ピクチャバッファに記憶する。 The decoded picture temporary memory storage area (460) includes a plurality of picture buffer storage areas (461, 462, ..., 46n). The decoded picture storage area (460) is an example of a decoded picture buffer. The decoder (450) uses the MMCO / RPS information (432) to identify a picture buffer (461, 462, etc.) that can store the decoded picture (451). The decoder (450) stores the decoded picture (451) in the picture buffer.

出力シーケンサ(480)は、出力順序で生成される次のピクチャがデコード済みピクチャ記憶エリア(460)においていつ利用可能であるかを識別する。出力順序で生成される次のピクチャ(481)がデコード済みピクチャ記憶エリア(460)で利用可能になると、出力シーケンサ(480)によって読み出され、出力先(490)(例えば、ディスプレイ)に出力される。一般に、出力シーケンサ(480)によってピクチャがデコード済みピクチャ記憶エリア(460)から出力される順序は、ピクチャがデコーダ(450)によってデコードされる順序とは異なってもよい。 The output sequencer (480) identifies when the next picture generated in the output order is available in the decoded picture storage area (460). When the next picture (481) generated in the output order becomes available in the decoded picture storage area (460), it is read by the output sequencer (480) and output to the output destination (490) (eg, display). To. In general, the order in which pictures are output from the decoded picture storage area (460) by the output sequencer (480) may be different from the order in which the pictures are decoded by the decoder (450).

V.例示的なビデオエンコーダ
図5a及び図5bは、記載するいくつかの実施形態が併せて実現されてもよい、一般化されたビデオエンコーダ(500)のブロック図である。エンコーダ(500)は、現在ピクチャを含むビデオピクチャのシーケンスを入力ビデオ信号(505)として受信し、出力として符号化されたビデオビットストリーム(595)におけるエンコードされたデータを生成する。
V. Illustrative Video Encoders FIGS. 5a and 5b are block diagrams of a generalized video encoder (500) in which some of the embodiments described may be realized together. The encoder (500) receives a sequence of video pictures, including the current picture, as an input video signal (505) and produces encoded data in a video bitstream (595) encoded 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 at different stages, such as prediction, frequency conversion, and / or entropy encoding. For example, a picture can be divided into 64x64 blocks, 32x32 blocks, or 16x16 blocks, which can then be divided into smaller blocks of sample values for coding and decoding. H. In the encoding implementation for the 265 / HEVC standard, the encoder classifies the picture into CTU (CTB), CU (CB), PU (PB), and TU (TB).

エンコーダ(500)は、ピクチャ内符号化及び/又はピクチャ間符号化を使用してピクチャを圧縮する。エンコーダ(500)のコンポーネントの多くは、ピクチャ内符号化及びピクチャ間符号化の両方に使用される。それらのコンポーネントによって実施される正確な動作は、圧縮される情報のタイプに依存して変動し得る。 The encoder (500) uses intra-picture coding and / or inter-picture coding to compress the picture. Many of the components of the encoder (500) are used for both intra-picture coding and inter-picture coding. The exact behavior performed by those components can vary depending on the type of information to be compressed.

タイル化モジュール(510)が、場合により、ピクチャを同じサイズ又は異なるサイズの複数のタイルへと区分する。例えば、タイル化モジュール(510)は、ピクチャ境界と共にピクチャ内のタイルの水平及び垂直方向の境界を画成する、タイル行及びタイル列に沿ってピクチャを分割し、各タイルは長方形領域である。H.265/HEVCの実装では、エンコーダ(500)は、ピクチャを1つ以上のスライスへと区分し、各スライスは1つ以上のスライスセグメントを含む。特定ブロックの行(例えば、H.265/HEVC規格に従ったスライスのCTUの行)が、より詳細に後述するように、WPPを使用して並列してエンコードされることができる。 The tiling module (510) optionally divides the picture into multiple tiles of the same size or different sizes. For example, the tiling module (510) divides the picture along tile rows and columns that define the horizontal and vertical boundaries of the tiles in the picture along with the picture boundaries, where each tile is a rectangular area. H. In the 265 / HEVC implementation, the encoder (500) divides the picture into one or more slices, each slice containing one or more slice segments. Rows of a particular block (eg, CTU rows of slices according to the H.265 / HEVC standard) can be encoded in parallel using WPP, as described in more detail below.

一般エンコーディング制御(520)が、入力ビデオ信号(505)に対するピクチャ、並びにエンコーダ(500)の様々なモジュールからのフィードバック(図示なし)を受信する。概して、一般エンコーディング制御(520)は、制御信号(図示なし)を他のモジュール(タイル化モジュール(510)、変換器/スケーラ/量子化器(530)、スケーラ/逆変換器(535)、ピクチャ内推定器(540)、動き推定器(550)、及びイントラ/インタースイッチなど)に提供して、エンコーディングの間の符号化パラメータを設定し、変更する。特に、一般エンコーディング制御(520)は、エンコードする間、パレット予測、イントラBC予測、イントラLC予測、及びイントラSC予測を使用するか否か、またどのように使用するかを判断することができる。一般エンコーディング制御(520)はまた、エンコーディングの間の中間結果を評価して、例えば、レートひずみ解析を実施することができる。一般エンコーディング制御(520)は、エンコーディングの間に行われた判断を示す一般制御データ(522)を生成し、そのため、対応するデコーダが整合した判断を行うことができる。一般制御データ(522)は、ヘッダフォーマッタ/エントロピー符号器(590)に提供される。 The general encoding control (520) receives a picture for the input video signal (505) as well as feedback (not shown) from various modules of the encoder (500). In general, general encoding control (520) transfers control signals (not shown) to other modules (tilted module (510), converter / scaler / quantizer (530), scaler / inverse converter (535), picture Provided to the internal estimator (540), motion estimator (550), intra / interswitch, etc.) to set and change coding parameters between encodings. In particular, the general encoding control (520) can determine whether and how to use palette prediction, intra BC prediction, intra LC prediction, and intra SC prediction during encoding. General encoding control (520) can also evaluate intermediate results between encodings and perform, for example, rate distortion analysis. The general encoding control (520) generates general control data (522) indicating the decisions made during the encoding, so that the corresponding decoder can make consistent decisions. General control data (522) is provided to the header formatter / entropy encoder (590).

現在ピクチャがピクチャ間予測を使用して予測される場合、動き推定器(550)が、1つ以上の参照ピクチャに対する入力ビデオ信号(505)の現在ピクチャのサンプル値のブロックの動きを推定する。デコード済みピクチャバッファ(570)が、参照ピクチャとして使用するため、1つ以上の再構成された事前符号化されたピクチャをバッファする。複数の参照ピクチャが使用される場合、複数の参照ピクチャは、異なる時間方向又は同じ時間方向からのものであり得る。動き推定器(550)は、サイド情報として、MVデータ、マージモードインデックス値、及び参照ピクチャ選択データなどの動きデータ(552)を生成する。動きデータ(552)は、ヘッダフォーマッタ/エントロピー符号器(590)、並びに動き補償器(555)に提供される。 If the current picture is predicted using inter-picture prediction, the motion estimator (550) estimates the motion of the block of sample values of the current picture of the input video signal (505) for one or more reference pictures. The decoded picture buffer (570) buffers one or more reconstructed pre-encoded pictures for use as reference pictures. When a plurality of reference pictures are used, the plurality of reference pictures can be from different time directions or the same time direction. The motion estimator (550) generates motion data (552) such as MV data, merge mode index value, and reference picture selection data as side information. The motion data (552) is provided to the header formatter / entropy encoder (590) and the motion compensator (555).

動き補償器(555)は、MVを、デコード済みピクチャバッファ(570)からの再構成された参照ピクチャに適用する。動き補償器(555)は、現在ピクチャに対する動き補償された予測を生成する。 The motion compensator (555) applies the MV to the reconstructed reference picture from the decoded picture buffer (570). The motion compensator (555) currently produces motion compensated predictions for the picture.

エンコーダ(500)内の別個の経路において、ピクチャ内推定器(540)は、入力ビデオ信号(505)の現在ピクチャのサンプル値のブロックに対して、ピクチャ内予測をどのように実施するかを決定する。現在ピクチャは、ピクチャ内符号化を使用して、全体的又は部分的に符号化することができる。現在ピクチャの再構成(538)の値を使用して、イントラ空間予測に関して、ピクチャ内推定器(540)は、現在ピクチャの隣接する事前再構成されたサンプル値から、現在ピクチャの現在のブロックのサンプル値をどのように空間予測するかを決定する。 In a separate path within the encoder (500), the in-picture estimator (540) determines how to make an in-picture prediction for a block of sample values of the current picture of the input video signal (505). To do. Currently the picture can be encoded in whole or in part using in-picture coding. For intra-spatial prediction, using the value of the current picture reconstruction (538), the intra-picture estimator (540) is from the adjacent pre-reconstructed sample value of the current picture to the current block of the current picture Determine how to spatially predict sample values.

或いは、イントラコピー予測の場合、ピクチャ内推定器(540)は、現在のブロック、ライン、又はストリングから、他の事前に再構成されたサンプル値における位置への変位を推定する。ピクチャにおけるサンプル値の参照ブロック、ライン、又はストリングが、現在のブロック、ライン、又はストリングに対する予測値を作り出すのに使用される。例えば、イントラBC予測の場合、ピクチャ内推定器(540)は、BV値を用いて示すことができる、現在のブロックから参照ブロックへの変位を推定する。別の例として、イントラLC予測の場合、ピクチャ内推定器(540)は、(現在のラインから参照ラインへの変位を示す)オフセット値を用いて示すことができる、(現在のブロックの)現在のラインから参照ラインへの変位を推定する。別の例として、イントラSC予測の場合、ピクチャ内推定器は、(現在のストリングから参照ストリングへの変位を示す)オフセット値とストリング長さ値とを用いて示すことができる、(現在のブロックの)現在のストリングから参照ストリングへの変位を推定する。WPPが使用可能にされると、ピクチャ内推定器(540)は、後述するように、参照領域の場所に対する制約と整合する、(例えば、イントラBC予測におけるBV値の場合、又はイントラSC予測若しくはイントラLC予測におけるオフセット値の場合の)変位を決定することができる。 Alternatively, for intra-copy prediction, the in-picture estimator (540) estimates the displacement from the current block, line, or string to position in another pre-reconstructed sample value. A reference block, line, or string of sample values in a picture is used to generate a prediction value for the current block, line, or string. For example, in the case of intra-BC prediction, the in-picture estimator (540) estimates the displacement from the current block to the reference block, which can be indicated using the BV value. As another example, in the case of intra-LC prediction, the in-picture estimator (540) can be indicated using an offset value (indicating the displacement from the current line to the reference line), the present (in the current block). Estimate the displacement from the line to the reference line. As another example, for intra-SC prediction, the in-picture estimator can be shown using an offset value (indicating the displacement from the current string to the reference string) and a string length value (current block). Estimates the displacement from the current string to the reference string. When WPP is enabled, the in-picture estimator (540) is consistent with constraints on the location of the reference region, as described below (eg, for BV values in intra BC prediction, or for intra SC prediction or The displacement (in the case of the offset value in the intra LC prediction) can be determined.

実装に応じて、ピクチャ内推定器(540)は、入力サンプル値、インループフィルタリング前の再構成されたサンプル値、又はインループフィルタリング後の再構成されたサンプル値を使用して、現在のブロック、ライン、又はストリングに対するオフセット推定を実施することができる。一般に、オフセット推定に対する入力サンプル値又はフィルタされていない再構成されたサンプル値を使用することによって、ピクチャ内推定器(540)は、(オフセット推定/イントラコピー予測の前に、参照ブロック、ライン、ストリングなどの再構成されたサンプル値をフィルタリングすることから生じることがある)連続処理のボトルネックを回避することができる。他方で、フィルタされていない再構成されたサンプル値の記憶には追加のメモリを使用する。また、オフセット推定の前にインループフィルタリングが適用される場合、現在のブロック/ライン/ストリングがデコードされた後で適用されるフィルタリング処理と、オフセット推定/イントラコピー予測に使用されている領域との間で重なり合う影響領域があり得る。かかる事例では、オフセット推定/イントラコピー予測は、フィルタリング動作のその局面の前に適用されることになる。いくつかの実装では、エンコーダは、オフセット推定/イントラコピー予測の前にいくつかのインループフィルタリング動作を適用し、後の処理段階で追加の又は代替のフィルタリングを実施することができる。 Depending on the implementation, the in-picture estimator (540) uses the input sample value, the reconstructed sample value before in-loop filtering, or the reconstructed sample value after in-loop filtering to block the current block. Offset estimates can be made for lines, lines, or strings. In general, by using the input sample value for the offset estimation or the unfiltered reconstructed sample value, the in-picture estimator (540) will check the reference block, line, before the offset estimation / intracopy prediction. You can avoid bottlenecks in continuous processing (which can result from filtering reconstructed sample values such as strings). On the other hand, additional memory is used to store unfiltered reconstructed sample values. Also, if in-loop filtering is applied before offset estimation, the filtering process applied after the current block / line / string is decoded and the area used for offset estimation / intracopy prediction. There can be overlapping areas of influence between them. In such cases, offset estimation / intracopy prediction will be applied prior to that aspect of the filtering operation. In some implementations, the encoder may apply some in-loop filtering behavior prior to offset estimation / intracopy prediction and perform additional or alternative filtering at a later processing stage.

ピクチャ内推定器(540)は、サイド情報としてイントラ予測データ(542)を生成し、該データは、例えば、イントラ予測が空間予測、イントラBC予測、イントラLC予測、又はイントラSC予測を使用するかどうか、予測モード方向(イントラ空間予測の場合)、BV値(イントラBC予測の場合)、オフセット値(イントラLC予測の場合)、又はオフセット値及び長さ値(イントラSC予測の場合)を示す情報などである。イントラ予測データ(542)は、ヘッダフォーマッタ/エントロピー符号器(590)、並びにピクチャ内予測器(545)に提供される。 The in-picture estimator (540) generates intra-prediction data (542) as side information, such as whether the intra-prediction uses spatial prediction, intra-BC prediction, intra-LC prediction, or intra-SC prediction. Information indicating the prediction mode direction (for intraspace prediction), BV value (for intraBC prediction), offset value (for intraLC prediction), or offset value and length value (for intraSC prediction). And so on. The intra prediction data (542) is provided to the header formatter / entropy encoder (590) and the in-picture predictor (545).

イントラ予測データ(542)に従って、ピクチャ内予測器(545)は、現在ピクチャの現在のブロックのサンプル値を、現在ピクチャの隣接する事前再構成されたサンプル値から空間予測する。或いは、イントラコピー予測の場合、ピクチャ内予測器(545)は、現在のブロック、ライン、ストリングなどに対する変位(BV値、オフセット値など)によって示される、参照ブロック、ライン、ストリング、又は他のセクションの事前に再構成されたサンプル値を使用して、現在のブロック、ライン、ストリング、又は他のセクションのサンプル値を予測する。いくつかの事例では、BV値(又は他のオフセット値)は予測値であることができる。他の事例では、BV値(又は他のオフセット値)はその予測値とは異なることができ、その場合、差分は予測値とBV値(又は他のオフセット値)との差を示す。イントラSCモードの場合、ピクチャ内予測器(545)は、現在のストリングのサンプル値を予測するとき、ストリング長さ値をさらに使用する。 According to the intra-prediction data (542), the intra-picture predictor (545) spatially predicts the sample values of the current block of the current picture from the adjacent pre-reconstructed sample values of the current picture. Alternatively, for intracopy prediction, the in-picture predictor (545) is a reference block, line, string, or other section indicated by a displacement (BV value, offset value, etc.) with respect to the current block, line, string, etc. Use the pre-reconstructed sample values in to predict the sample values for the current block, line, string, or other section. In some cases, the BV value (or other offset value) can be a predicted value. In other cases, the BV value (or other offset value) can differ from its predicted value, in which case the difference indicates the difference between the predicted value and the BV value (or other offset value). In the intra-SC mode, the in-picture predictor (545) further uses the string length value when predicting the sample value of the current string.

パレット符号化モードの場合、エンコーダ(500)は、パレットを使用してCU又は他のユニットのサンプル値の少なくとも一部を表す。パレットは、ユニットで使用される色を表す。例えば、パレットは、インデックス値0、1、2、…、pを対応する色に対してマッピングし、対応する色は、RGB4:4:4フォーマット、BGR4:4:4フォーマット、GBR4:4:4フォーマット、YUV4:4:4フォーマット、又は別のフォーマット(色空間、色サンプリングレート)であることができる。インデックス値が、ピクセルに対するRGBトリプレット、BGRトリプレット、又はGBRトリプレットを表すことができ、ピクセルは、コロケートされたサンプル値のセットである。ユニットのエンコーディングの場合、インデックス値が、ユニット内のピクセルのサンプル値に取って代わる。ユニットのレア値が、パレットのインデックス値を使用する代わりに、エスケープコード値及びリテラル値を使用してエンコードされることができる。パレットはユニット毎に変更することができ、パレットを指定するパレットデータはビットストリーム内で信号伝達することができる。 For palette coding mode, the encoder (500) uses palettes to represent at least some of the sample values for CU or other units. The palette represents the colors used in the unit. For example, the palette maps index values 0, 1, 2, ..., P to the corresponding colors, and the corresponding colors are RGB 4: 4: 4 format, BGR 4: 4: 4 format, GBR 4: 4: 4. It can be a format, YUV 4: 4: 4 format, or another format (color space, color sampling rate). The index value can represent an RGB triplet, a BGR triplet, or a GBR triplet for a pixel, where the pixel is a set of collated sample values. For unit encoding, the index value replaces the sample value of the pixels in the unit. Rare values for units can be encoded using escape code and literal values instead of using palette index values. The palette can be changed for each unit, and the palette data that specifies the palette can be signal-transmitted within the bitstream.

イントラ/インタースイッチは、所与のブロックに対する予測(558)が動き補償された予測になるか又はピクチャ内予測になるかを選択する。 The intra / interswitch selects whether the prediction (558) for a given block is a motion-compensated prediction or an in-picture prediction.

いくつかの例示的な実装では、パレット符号化モード又はイントラコピーモード(イントラBC予測、イントラLC予測、若しくはイントラSC予測)でエンコードされるユニットに対して残差が算出されない。その代わりに、残差符号化はスキップされ、予測されたサンプル値が再構成されたサンプル値として使用される。 In some exemplary implementations, no residuals are calculated for units encoded in palette coding mode or intracopy mode (intra BC prediction, intra LC prediction, or intra SC prediction). Instead, the residual coding is skipped and the predicted sample value is used as the reconstructed sample value.

残差符号化がスキップされない場合、予測(558)のブロックと、それに対応する、入力ビデオ信号(505)の元の現在ピクチャの一部との間の差(ある場合)によって、残差(518)の値が提供される。現在ピクチャの再構成の間、残差値がエンコードされ/信号伝達されていると、再構成された残差値が予測(558)と組み合わされて、ビデオ信号(505)からの元のコンテンツの近似的又は正確な再構成(538)が生成される(不可逆圧縮では、一部の情報がビデオ信号(505)から失われる)。 If residual coding is not skipped, the difference (if any) between the block of predictions (558) and the corresponding portion of the original current picture of the input video signal (505) will result in residuals (518). ) Values are provided. If the residual value is encoded / signaled during the current picture reconstruction, the reconstructed residual value is combined with the prediction (558) to create the original content from the video signal (505). An approximate or accurate reconstruction (538) is generated (with lossy compression, some information is lost from the video signal (505)).

残差符号化の一部として、変換器/スケーラ/量子化器(530)において、周波数変換がスキップされない場合、周波数変換器が、空間ドメインビデオ情報を周波数ドメイン(即ち、スペクトルの、変換)データへとコンバートする。ブロックベースのビデオ符号化の場合、周波数変換器は、離散コサイン変換(「DCT」)、その整数近似、又は別のタイプの前方ブロック変換(例えば、離散サイン変換若しくはその整数近似)を、予測残差データ(又は予測(558)がヌルの場合のサンプル値データ)のブロックに適用して、周波数変換係数のブロックを生成する。変換器/スケーラ/量子化器(530)は、可変ブロックサイズの変換を適用することができる。この場合、変換器/スケーラ/量子化器(530)は、どのブロックサイズの変換を現在のブロックの残差値に使用するかを決定することができる。スケーラ/量子化器は、変換係数をスケーリングし(scales)、量子化する。例えば、量子化器は、デッドゾーンスケーラ量子化を、ピクチャ毎の基準、タイル毎の基準、スライス毎の基準、ブロック毎の基準、周波数特異的な基準、又は他の基準で変動する量子化ステップサイズで、周波数ドメインデータに適用する。量子化された変換係数データ(532)が、ヘッダフォーマッタ/エントロピー符号器(590)に提供される。周波数変換がスキップされる場合、スケーラ/量子化器は、予測残差データ(又は予測(558)がヌルの場合のサンプル値データ)のブロックをスケーリングし、量子化して、ヘッダフォーマッタ/エントロピー符号器(590)に提供される量子化された値を生成することができる。 In the converter / scaler / quantizer (530) as part of the residual coding, if the frequency conversion is not skipped, the frequency converter will convert the spatial domain video information into frequency domain (ie, spectral, conversion) data. Convert to. For block-based video coding, the frequency converter performs a discrete cosine transform (“DCT”), its integer approximation, or another type of forward block transform (eg, a discrete sine transform or its integer approximation). It is applied to a block of difference data (or sample value data when the prediction (558) is null) to generate a block of frequency transform coefficients. The transducer / scaler / quantizer (530) can apply variable block size transforms. In this case, the transducer / scaler / quantizer (530) can determine which block size transform to use for the residual value of the current block. The scaler / quantizer scales the conversion factors and quantizes them. For example, a quantizer performs dead zone scaler quantization in a picture-by-picture, tile-by-tile, slice-by-slice, block-by-block, frequency-specific, or other criteria-variable quantization step. Applies to frequency domain data by size. The quantized conversion coefficient data (532) is provided to the header formatter / entropy encoder (590). If frequency conversion is skipped, the scaler / quantizer scales and quantizes a block of predicted residual data (or sample value data when the prediction (558) is null) and a header formatter / entropy encoder. The quantized value provided in (590) can be generated.

残差値を再構成するため、スケーラ/逆変換器(535)では、スケーラ/逆量子化器が、量子化された変換係数に対して逆スケーリング及び逆量子化を実施する。変換段階がスキップされていない場合、逆周波数変換器が逆周波数変換を実施して、再構成された予測残差値又はサンプル値のブロックを生成する。変換段階がスキップされている場合、逆周波数変換もスキップされる。この場合、スケーラ/逆量子化器は、予測残差データ(又はサンプル値データ)のブロックに対して逆スケーリング及び逆量子化を実施して、再構成された値を生成することができる。残差値がエンコードされ/信号伝達されている場合、エンコーダ(500)は、再構成された残差値を予測(558)の値(例えば、動き補償された予測値、ピクチャ内予測値)と組み合わせて、再構成(538)を形成する。残差値がエンコードされ/信号伝達されていない場合、エンコーダ(500)は予測(558)の値を再構成(538)として使用する。 In order to reconstruct the residual values, in the scaler / inverse converter (535), the scaler / inverse quantizer performs inverse scaling and inverse quantization on the quantized conversion coefficients. If the conversion step is not skipped, the inverse frequency converter performs the inverse frequency conversion to produce a reconstructed block of predicted residual values or sample values. If the conversion step is skipped, the inverse frequency conversion is also skipped. In this case, the scaler / inverse quantizer can perform inverse scaling and inverse quantization on a block of predicted residual data (or sample value data) to generate the reconstructed value. If the residual values are encoded / signaled, the encoder (500) will use the reconstructed residual values as the predicted (558) values (eg, motion compensated predicted values, in-picture predicted values). Combine to form a reconstruction (538). If the residual value is not encoded / signaled, the encoder (500) uses the predicted (558) value as the reconstruction (538).

ピクチャ内予測の場合、再構成(538)の値を、ピクチャ内推定器(540)及びピクチャ内予測器(545)にフィードバックすることができる。再構成(538)の値を、後続ピクチャの動き補償された予測に使用することができる。再構成(538)の値を更にフィルタリングすることができる。フィルタリング制御(560)が、ビデオ信号(505)の所与のピクチャに関して、再構成(538)の値に対するデブロックフィルタリング及びSAOフィルタリングをどのように実施するかを決定する。フィルタリング制御(560)はフィルタ制御データ(562)を生成し、それがヘッダフォーマッタ/エントロピー符号器(590)及びマージ器/フィルタ(565)に提供される。 In the case of in-picture prediction, the value of the reconstruction (538) can be fed back to the in-picture estimator (540) and the in-picture predictor (545). The value of reconstruction (538) can be used for motion-compensated prediction of subsequent pictures. The value of reconstruction (538) can be further filtered. The filtering control (560) determines how to perform deblock filtering and SAO filtering on the value of reconstruction (538) for a given picture of the video signal (505). Filtering control (560) produces filter control data (562), which is provided to the header formatter / entropy encoder (590) and merger / filter (565).

マージ器/フィルタ(565)では、エンコーダ(500)は、異なるタイルからのコンテンツを、ピクチャの再構成されたバージョンにマージする。エンコーダ(500)は、フィルタ制御データ(562)及びフィルタ適応の規則に従って、デブロックフィルタリング及びSAOフィルタリングを選択的に実施して、ピクチャの境界にわたる不連続性を適応的に平滑化する。その代わりに、又はそれに加えて、他のフィルタリング(デリンギングフィルタリング又はALFなど、図示なし)を適用することができる。タイル境界は、エンコーダ(500)の設定に依存して、選択的にフィルタリングされるか又は全くフィルタリングされないことが可能であり、エンコーダ(500)は、符号化されたビットストリーム内にシンタックス要素を提供して、かかるフィルタリングが適用されたか否かを示してもよい。デコード済みピクチャバッファ(570)は、後続の動き補償された予測で使用するため、再構成された現在ピクチャをバッファする。 In the merger / filter (565), the encoder (500) merges content from different tiles into a reconstructed version of the picture. The encoder (500) selectively performs deblock filtering and SAO filtering according to the filter control data (562) and the rules of filter adaptation to adaptively smooth discontinuities across picture boundaries. Alternatively, or in addition, other filtering (such as deringing filtering or ALF, not shown) can be applied. The tile boundaries can be selectively filtered or not filtered at all, depending on the settings of the encoder (500), which will place the syntax elements in the encoded bitstream. It may be provided to indicate whether such filtering has been applied. The decoded picture buffer (570) buffers the reconstructed current picture for use in subsequent motion-compensated predictions.

ヘッダフォーマッタ/エントロピー符号器(590)は、一般制御データ(522)、量子化された変換係数データ(532)、イントラ予測データ(542)、動きデータ(552)、及びフィルタ制御データ(562)をフォーマットし及び/又はエントロピー符号化する。動きデータ(552)の場合、ヘッダフォーマッタ/エントロピー符号器(590)はマージモードインデックス値を選択し、エントロピー符号化することができ、又は、デフォルトMV予測子が使用されることができる。場合によっては、ヘッダフォーマッタ/エントロピー符号器(590)はまた、(MV値のMV予測子に対する)MV値のMV差分を決定し、次いで、例えばコンテキスト適応バイナリ算術符号化を使用して、MV差分をエントロピー符号化する。イントラ予測データ(542)の場合、予測を使用してBV値(又は他のオフセット値)をエンコードすることができる。予測は、デフォルト予測子(例えば、1つ以上の隣接ブロックからのBV値若しくは他のオフセット値)を使用することができる。複数の予測子が可能な場合、予測子インデックスが、複数の予測子のうちどれをBV値(又は他のオフセット値)の予測に使用するかを示すことができる。ヘッダフォーマッタ/エントロピー符号器(590)は(イントラコピー予測に対する)予測子インデックス値を選択し、エントロピー符号化することができ、又は、デフォルト予測子が使用されることができる。場合によっては、ヘッダフォーマッタ/エントロピー符号器(590)はまた、(BV値若しくは他のオフセット値の予測子に対する)差分を決定し、次いで、例えばコンテキスト適応バイナリ算術符号化を使用して、差分をエントロピー符号化する。パレット符号化モードの場合、ヘッダフォーマッタ/エントロピー符号器(590)はパレットデータをエンコードすることができる。特に、ヘッダフォーマッタ/エントロピー符号器(590)は、後述するようにパレット予測を使用することができる。 The header formatter / entropy encoder (590) collects general control data (522), quantized conversion coefficient data (532), intra prediction data (542), motion data (552), and filter control data (562). Format and / or entropy encode. For motion data (552), the header formatter / entropy encoder (590) can select the merge mode index value and entropy encode it, or the default MV predictor can be used. In some cases, the header formatter / entropy encoder (590) also determines the MV difference of the MV value (relative to the MV predictor of the MV value) and then uses, for example, context-adaptive binary arithmetic coding to determine the MV difference. Is entropy-coded. For intra-prediction data (542), the prediction can be used to encode the BV value (or other offset value). The prediction can use a default predictor (eg, a BV value from one or more adjacent blocks or another offset value). If more than one predictor is possible, the predictor index can indicate which of the multiple predictors is used to predict the BV value (or other offset value). The header formatter / entropy encoder (590) can select a predictor index value (for intracopy prediction) and entropy encode it, or a default predictor can be used. In some cases, the header formatter / entropy encoder (590) also determines the difference (relative to the predictor of the BV value or other offset value) and then uses, for example, context-adaptive binary arithmetic coding to determine the difference. Entropy encode. In the palette encoding mode, the header formatter / entropy encoder (590) can encode the palette data. In particular, the header formatter / entropy encoder (590) can use palette prediction as described below.

ヘッダフォーマッタ/エントロピー符号器(590)は、符号化されたビデオビットストリーム(595)におけるエンコードされたデータを提供する。符号化されたビデオビットストリーム(595)のフォーマットは、H.265/HEVCフォーマット、ウィンドウズ(登録商標)メディアビデオフォーマット、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 encoded data in the encoded video bitstream (595). The format of the encoded video bitstream (595) is H.I. 265 / HEVC format, Windows® media video format, VC-1 format, MPEG-x format (eg MPEG-1, MPEG-2, or MPEG-4), H.D. It can be a 26x format (eg, H.261, H.262, H.263, H.264), or a variant or extension of another format.

実装及び所望される圧縮のタイプに応じて、エンコーダ(500)のモジュールを追加し、省略し、複数のモジュールへと分割し、他のモジュールと組み合わせ、かつ/あるいは同様のモジュールと置き換えることができる。代替実施形態では、異なるモジュール及び/又はモジュールの他の構成を有するエンコーダが、記載する技術の1つ以上を実施する。エンコーダの具体的な実施形態は、典型的に、エンコーダ(500)の変形又は補足されたバージョンを使用する。エンコーダ(500)内のモジュール間の図示される関係は、エンコーダ内の情報の一般的なフローを示し、他の関係は、簡潔さのために図示されない。 Depending on the implementation and the type of compression desired, encoder (500) modules can be added, omitted, split into multiple modules, combined with other modules and / or replaced with similar modules. .. In an alternative embodiment, encoders with different modules and / or other configurations of modules implement one or more of the techniques described. Specific embodiments of the encoder typically use a modified or supplemented version of the encoder (500). The illustrated relationships between the modules within the encoder (500) show 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フォーマット、ウィンドウズ(登録商標)メディアビデオフォーマット、VC−1フォーマット、MPEG−xフォーマット(例えば、MPEG−1、MPEG−2、若しくはMPEG−4)、H.26xフォーマット(例えば、H.261、H.262、H.263、H.264)、又は別のフォーマットの変形若しくは拡張であり得る。
VI. An exemplary video decoder FIG. 6 is a block diagram of a generalized decoder (600) in which some of the embodiments described may be realized together. The decoder (600) receives the encoded data in the encoded video bitstream (605) and produces an output containing a picture of the reconstructed video (695). The format of the encoded video bitstream (605) is H.I. 265 / HEVC format, Windows® media video format, VC-1 format, MPEG-x format (eg MPEG-1, MPEG-2, or MPEG-4), H.D. It can be a 26x format (eg, H.261, H.262, H.263, H.264), or a variant or extension of another format.

ピクチャは、同じサイズ又は異なるサイズの複数のタイルとして編成することができる。ピクチャはまた、1つ以上のスライスとして編成することができる。スライス又はタイルのコンテンツは、サンプル値のブロック又は他のセットとして更に編成することができる。デコーダ(600)はブロックベースであり、実装に依存するブロックフォーマットを使用する。ブロックは、異なる段階で更に細分されてもよい。例えば、ピクチャを、64×64ブロック、32×32ブロック、又は16×16ブロックへと分けることができ、それを次に、サンプル値のより小さいブロックへと分けることができる。H.265/HEVC規格に対するデコーディングの実装では、ピクチャは、CTU(CTB)、CU(CB)、PU(PB)、及びTU(TB)へと区分される。WPPが使用可能な状態で(WPPを使用して、又はデコーディングの間WPPを使用するのと整合した仕方で)ピクチャがエンコードされた場合、更に後述するように、特定ブロックの行(例えば、H.265/HEVC規格に従ったCTUの行)を、WPPを使用して並列してデコードすることができる。 Pictures can be organized as multiple tiles of the same size or different sizes. Pictures can also be organized as one or more slices. The content of slices or tiles can be further organized as blocks of sample values or other sets. The decoder (600) is block-based and uses an implementation-dependent block format. The blocks may be further subdivided at different stages. For example, the picture can be divided into 64x64 blocks, 32x32 blocks, or 16x16 blocks, which in turn can be divided into blocks with smaller sample values. H. In the implementation of decoding for the 265 / HEVC standard, pictures are divided into CTU (CTB), CU (CB), PU (PB), and TU (TB). If the picture is encoded with WPP enabled (using WPP or in a manner consistent with using WPP during decoding), then a specific block of lines (eg, for example, as described below). Lines of CTU according to H.265 / HEVC standard) can be decoded in parallel using WPP.

デコーダ(600)は、ピクチャ内デコーディング及び/又はピクチャ間デコーディングを使用してピクチャを伸張する。デコーダ(600)のコンポーネントの多くは、ピクチャ内デコーディング及びピクチャ間デコーディングの両方に使用される。それらのコンポーネントによって実施される正確な動作は、伸張される情報のタイプに依存して変動し得る。 The decoder (600) stretches the picture using in-picture decoding and / or inter-picture decoding. Many of the components of the decoder (600) are used for both in-picture decoding and inter-picture decoding. The exact behavior performed by those components can vary depending on the type of information being stretched.

バッファは、符号化されたビデオビットストリーム(605)におけるエンコードされたデータを受信し、受信したエンコードされたデータをパーサー/エントロピーデコーダ(610)に対して利用可能にする。パーサー/エントロピーデコーダ(610)は、エントロピー符号化されたデータをエントロピーデコードして、典型的に、エンコーダ(500)で実施したエントロピー符号化の逆を適用する(例えば、コンテキスト適応バイナリ算術デコーディング)。構文解析及びエントロピーデコーディングの結果として、パーサー/エントロピーデコーダ(610)は、一般制御データ(622)、量子化された変換係数データ(632)、イントラ予測データ(642)、動きデータ(652)、及びフィルタ制御データ(662)を生成する。イントラ予測データ(642)では、予測子インデックス値が信号伝達される場合、パーサー/エントロピーデコーダ(610)は、例えばコンテキスト適応バイナリ算術デコーディングを使用して、予測子インデックス値をエントロピーデコードすることができる。場合によっては、パーサー/エントロピーデコーダ(610)はまた、BV値又は他のオフセット値に対する差分を(例えば、コンテキスト適応バイナリ算術デコーディングを使用して)エントロピーデコードし、次いで、差分を対応する予測子と組み合わせて、BV値(又は他のオフセット値)を再構成する。他の事例では、差分はビットストリームから省略され、BV値(又は他のオフセット値)は単に予測子である(例えば、予測子インデックス値を用いて示される)。パレットデコーディングモードの場合、パーサー/エントロピーデコーダ(610)はパレットデータをデコードすることができる。特に、パーサー/エントロピーデコーダ(610)は、後述するようにパレット予測を使用することができる。 The buffer receives the encoded data in the encoded video bitstream (605) and makes the received encoded data available to the parser / entropy decoder (610). The parser / entropy decoder (610) entropy-decodes the entropy-encoded data and typically applies the reverse of the entropy encoding performed by the encoder (500) (eg, context-adaptive binary arithmetic decoding). .. As a result of parsing and entropy decoding, the parser / entropy decoder (610) has general control data (622), quantized conversion coefficient data (632), intra prediction data (642), motion data (652), And filter control data (662) is generated. In the intra-prediction data (642), if the predictor index value is signaled, the parser / entropy decoder (610) may entropy decode the predictor index value, for example using context-adaptive binary arithmetic decoding. it can. In some cases, the parser / entropy decoder (610) also entropy-decodes the differences to BV values or other offset values (eg, using context-adaptive binary arithmetic decoding), and then the differences are the corresponding predictors. In combination with, the BV value (or other offset value) is reconstructed. In other cases, the difference is omitted from the bitstream and the BV value (or other offset value) is simply a predictor (eg, indicated using a predictor index value). In the palette decoding mode, the parser / entropy decoder (610) can decode the palette data. In particular, the parser / entropy decoder (610) can use palette prediction as described below.

一般デコーディング制御(620)は、一般制御データ(622)を受信し、制御信号(図示なし)を他のモジュール(スケーラ/逆変換器(635)、ピクチャ内予測器(645)、動き補償器(655)、及びイントラ/インタースイッチなど)に提供して、デコーディングの間にデコーディングパラメータを設定し、変更する。 The general decoding control (620) receives the general control data (622) and transmits the control signal (not shown) to other modules (scaler / inverse converter (635), in-picture predictor (645), motion compensator). (655), and intra / interswitch, etc.) to set and change decoding parameters during decoding.

現在ピクチャがピクチャ間予測を使用して予測される場合、動き補償器(655)は、MVデータ、参照ピクチャ選択データ、及びマージモードインデックス値などの動きデータ(652)を受信する。動き補償器(655)は、MVを、デコード済みピクチャバッファ(670)からの再構成された参照ピクチャに適用する。動き補償器(655)は、現在ピクチャのインター符号化されたブロックに対する動き補償された予測を生成する。デコード済みピクチャバッファ(670)は、参照ピクチャとして使用する、1つ以上の事前に再構成されたピクチャを記憶する。 If the current picture is predicted using inter-picture prediction, the motion compensator (655) receives motion data (652) such as MV data, reference picture selection data, and merge mode index value. The motion compensator (655) applies the MV to the reconstructed reference picture from the decoded picture buffer (670). The motion compensator (655) currently produces motion compensated predictions for the intercoded blocks of the picture. The decoded picture buffer (670) stores one or more pre-reconstructed pictures to be used as reference pictures.

デコーダ(600)内の別個の経路において、ピクチャ内予測器(645)はイントラ予測データ(642)を受信し、該データは、例えば、ピクチャ内予測が空間予測、イントラBC予測、イントラLC予測、又はイントラSC予測を使用するかどうか、並びに予測モード方向(イントラ空間予測の場合)、BV値(イントラBC予測の場合)、オフセット値(イントラLC予測の場合)、又はオフセット値及び長さ値(イントラSC予測の場合)を示す情報などである。イントラ空間予測の場合、現在ピクチャの再構成(638)の値を使用して、予測モードデータに従って、ピクチャ内予測器(645)は、現在ピクチャの隣接する事前再構成されたサンプル値から、現在ピクチャの現在のブロックのサンプル値を空間予測する。或いは、イントラコピー予測の場合、ピクチャ内予測器(645)は、現在のブロック、ライン、ストリングなどの変位(BV値、オフセット値など)によって示される、参照ブロック、ライン、ストリング、又は他のセクションの事前に再構成されたサンプル値を使用して、現在のブロック、ライン、ストリング、又は他のセクションのサンプル値を予測する。場合によっては、BV値(又は他のオフセット値)は予測値であることができる。他の事例では、BV値(又は他のオフセット値)はその予測値とは異なることができ、その場合、BV値(又は他のオフセット値)は差分及び予測値を使用して再構成される。イントラSCモードの場合、ピクチャ内予測器(645)は、現在のストリングのサンプル値を予測するときにストリング長さ値をさらに使用する。 In a separate path within the decoder (600), the intra-picture predictor (645) receives intra-prediction data (642), which, for example, intra-picture prediction is spatial prediction, intra BC prediction, intra LC prediction, Or whether to use intra SC prediction, as well as the prediction mode direction (for intra space prediction), BV value (for intra BC prediction), offset value (for intra LC prediction), or offset and length values (for intra LC prediction). Information indicating (in the case of intra-SC prediction). For intra-spatial prediction, using the current picture reconstruction (638) value, according to the prediction mode data, the in-picture predictor (645) is now from the adjacent pre-reconstructed sample value of the current picture. Spatially predict the sample value of the current block of the picture. Alternatively, for intra-copy prediction, the in-picture predictor (645) is a reference block, line, string, or other section indicated by the displacement (BV value, offset value, etc.) of the current block, line, string, etc. Use the pre-reconstructed sample values in to predict the sample values for the current block, line, string, or other section. In some cases, the BV value (or other offset value) can be a predicted value. In other cases, the BV value (or other offset value) can differ from its predicted value, in which case the BV value (or other offset value) is reconstructed using the difference and the predicted value. .. In the intra-SC mode, the in-picture predictor (645) further uses the string length value when predicting the sample value of the current string.

パレットデコーディングモードの場合、デコーダ(600)は、CU又は他のユニットのサンプル値の少なくとも一部を表すパレットを使用する。パレットは、インデックス値をユニットで使用される対応する色に対してマッピングする。例えば、パレットは、インデックス値0、1、2、…、pを対応する色に対してマッピングし、対応する色は、RGB4:4:4フォーマット、BGR4:4:4フォーマット、GBR4:4:4フォーマット、YUV4:4:4フォーマット、又は別のフォーマット(色空間、色サンプリングレート)であることができる。インデックス値は、ピクセルに対するRGBトリプレット、BGRトリプレット、又はGBRトリプレットを表すことができる。デコードする間、ユニット内の位置に関して、パレットからのインデックス値が適切なサンプリング値で置き換えられる。ユニットのエスケープ符号化値が、エスケープコード値及びリテラル値を使用してデコードされることができる。パレットは、ビットストリーム内で信号伝達されるパレットデータに基づいて、ユニット毎に変更することができる。 For palette decoding mode, the decoder (600) uses a palette that represents at least a portion of the sample values for the CU or other unit. The palette maps index values to the corresponding colors used in the unit. For example, the palette maps index values 0, 1, 2, ..., P to the corresponding colors, and the corresponding colors are RGB 4: 4: 4 format, BGR 4: 4: 4 format, GBR 4: 4: 4. It can be a format, YUV 4: 4: 4 format, or another format (color space, color sampling rate). The index value can represent an RGB triplet, a BGR triplet, or a GBR triplet for a pixel. During decoding, the index value from the palette is replaced with the appropriate sampling value for position within the unit. The escape coded value of the unit can be decoded using the escape code value and the literal value. The palette can be changed unit by unit based on the palette data signaled within the bitstream.

イントラ/インタースイッチは、所与のブロックに対する予測(658)として使用される、動き補償された予測又はピクチャ内予測の値を選択する。例えば、H.265/HEVCシンタックスに従う場合、イントラ/インタースイッチは、イントラ予測されたCU及びインター予測されたCUを含むことができるピクチャのCUに対してエンコードされたシンタックス要素に基づいて制御することができる。残差値がエンコードされ/信号伝達されている場合、デコーダ(600)は、予測(658)を再構成された残差値と組み合わせて、ビデオ信号からのコンテンツの再構成(638)を生成する。残差値がエンコードされ/信号伝達されていない場合、デコーダ(600)は、予測(658)の値を再構成(638)として使用する。 The intra / interswitch selects a motion-compensated or in-picture prediction value to be used as the prediction (658) for a given block. For example, H. When following 265 / HEVC syntax, the intra / interswitch can be controlled based on the syntax elements encoded for the CU of the picture which can contain the intra-predicted CU and the inter-predicted CU. .. If the residual values are encoded / signaled, the decoder (600) combines the prediction (658) with the reconstructed residual values to generate a reconstructed content (638) from the video signal. .. If the residual value is not encoded / signaled, the decoder (600) uses the predicted (658) value as the reconstruction (638).

残差値がエンコードされ/信号伝達されている場合の残差を再構成するために、スケーラ/逆変換器(635)は、量子化された変換係数データ(632)を受信し、処理する。スケーラ/逆変換器(635)では、スケーラ/逆量子化器は、量子化された変換係数に対して逆スケーリング及び逆量子化を実施する。逆周波数変換器は、逆周波数変換を実施して、再構成された予測残差値又はサンプル値のブロックを生成する。例えば、逆周波数変換器は、逆ブロック変換を周波数変換係数に適用して、サンプル値データ又は予測残差データを生成する。逆周波数変換は、逆DCT、その整数近似、又は別のタイプの逆周波数変換(例えば、逆離散サイン変換又はその整数近似)であることができる。周波数変換がエンコーディングの間にスキップされた場合、逆周波数変換もスキップされる。この場合、スケーラ/逆量子化器は、予測残差データ(又はサンプル値データ)のブロックに対して逆スケーリング及び逆量子化を実施して、再構成された値を生成することができる。 To reconstruct the residuals when the residual values are encoded / signaled, the scaler / inverse transducer (635) receives and processes the quantized conversion factor data (632). In the scaler / inverse transducer (635), the scaler / inverse quantizer performs descaling and dequantization on the quantized transform coefficients. The inverse frequency converter performs inverse frequency conversion to generate a reconstructed block of predicted residual values or sample values. For example, an inverse frequency converter applies an inverse block transformation to a frequency conversion factor to generate sample value data or predicted residual data. The inverse frequency transform can be the inverse DCT, its integer approximation, or another type of inverse frequency transform (eg, the inverse discrete sine transform or its integer approximation). If the frequency conversion is skipped during the encoding, the inverse frequency conversion is also skipped. In this case, the scaler / inverse quantizer can perform inverse scaling and inverse quantization on a block of predicted residual data (or sample value data) to generate the reconstructed value.

ピクチャ内予測の場合、再構成(638)の値をピクチャ内予測器(645)にフィードバックすることができる。ピクチャ間予測の場合、再構成(638)の値を更にフィルタリングすることができる。マージ器/フィルタ(665)では、デコーダ(600)は、異なるタイルからのコンテンツを、ピクチャの再構成されたバージョンへマージする。デコーダ(600)は、フィルタ制御データ(662)及びフィルタ適応の規則に従って、デブロックフィルタリング及びSAOフィルタリングを選択的に実施して、ピクチャの境界にわたる不連続性を適応的に平滑化する。その代わりに、又はそれに加えて、他のフィルタリング(デリンギングフィルタリング又はALFなど、図示なし)を適用することができる。タイル境界は、デコーダ(600)の設定、又はエンコードされたビットストリームデータ内のシンタックス要素に依存して、選択的にフィルタリングするか又は全くフィルタリングしないことが可能である。デコード済みピクチャバッファ(670)は、後続の動き補償された予測で使用するため、再構成された現在ピクチャをバッファする。 In the case of in-picture prediction, the value of reconstruction (638) can be fed back to the in-picture predictor (645). In the case of inter-picture prediction, the value of reconstruction (638) can be further filtered. In the merger / filter (665), the decoder (600) merges content from different tiles into a reconstructed version of the picture. The decoder (600) selectively performs deblock filtering and SAO filtering according to the filter control data (662) and the rules of filter adaptation to adaptively smooth discontinuities across picture boundaries. Alternatively, or in addition, other filtering (such as deringing filtering or ALF, not shown) can be applied. The tile boundaries can be selectively filtered or not filtered at all, depending on the settings of the decoder (600) or the syntax elements in the encoded bitstream data. The decoded picture buffer (670) buffers the reconstructed current picture for use in subsequent motion-compensated predictions.

デコーダ(600)は、後処理フィルタをさらに含むことができる。後処理フィルタ(608)は、デブロックフィルタリング、デリンギングフィルタリング、適応ウィナーフィルタリング、フィルム粒子再現フィルタリング、SAOフィルタリング、又は別の種類のフィルタリングを含むことができる。「インループ」フィルタリングは、動き補償ループ内のピクチャの再構成されたサンプル値に対して実施され、従って参照ピクチャのサンプル値に影響するが、後処理フィルタ(608)は、表示のために出力する前に、動き補償ループ外の再構成されたサンプル値に適用される。 The decoder (600) can further include a post-processing filter. The post-processing filter (608) can include deblocking filtering, deringing filtering, adaptive winner filtering, film particle reproduction filtering, SAO filtering, or another type of filtering. "In-loop" filtering is performed on the reconstructed sample values of the pictures in the motion compensation loop, thus affecting the sample values of the reference picture, but the post-processing filter (608) outputs for display. Before doing so, it is applied to the reconstructed sample values outside the motion compensation loop.

実装及び所望される伸張のタイプに依存して、デコーダ(600)のモジュールを追加し、省略し、複数のモジュールへと分割し、他のモジュールと組み合わせ、かつ/あるいは同様のモジュールと置き換えることができる。代替実施形態では、異なるモジュール及び/又はモジュールの他の構成を有するデコーダが、記載する技術の1つ以上を実施する。デコーダの具体的な実施形態は、一般的に、デコーダ(600)の変形又は補足されたバージョンを使用する。デコーダ(600)内のモジュール間の図示される関係は、デコーダ内の情報の一般的なフローを示し、他の関係は、簡潔さのために図示されない。 Depending on the implementation and the type of decompression desired, modules of the decoder (600) may be added, omitted, split into multiple modules, combined with other modules and / or replaced with similar modules. it can. In an alternative embodiment, a decoder with a different module and / or other configuration of the module implements one or more of the techniques described. Specific embodiments of the decoder generally use a modified or supplemented version of the decoder (600). The illustrated relationships between the modules within the decoder (600) show the general flow of information within the decoder, other relationships are not shown for brevity.

VII.WPPが使用可能にされるときのピクチャ内予測モードの規則
このセクションでは、波面並列処理(「WPP」)が使用可能にされるときのピクチャ内予測モードに対する規則の例を提示する。本イノベーションは、WPPが使用可能にされるときの、エンコーダ又はデコーダによる、パレット予測モード、イントラブロックコピー(「BC」)モード、イントララインコピー(「LC」)モード、及びイントラストリングコピー(「SC」)モードなどのピクチャ内予測モードの使用を容易にする。
VII. Rules for In-Picture Prediction Modes When WPP Is Enabled This section presents examples of rules for in-picture prediction modes when wave plane parallelism (“WPP”) is enabled. The innovation includes palette prediction mode, intra-block copy (“BC”) mode, intra-line copy (“LC”) mode, and intra-string copy (“SC”) mode by encoder or decoder when WPP is enabled. ”) Facilitates the use of in-picture prediction modes such as mode.

A.波面並列処理−序論
一般に、WPPは、ピクチャ内のユニットの行に対する処理の開始を差動的に遅延することによって、並列処理を容易にする符号化/デコーディングツールである。WPPが使用可能にされると、ピクチャ内のユニットの異なる行を並列してエンコード又はデコードすることができる。エンコーディング又はデコーディングの間、ユニットの第1の行を、左から右にユニット毎に(unit-after-unit)処理することができる。ユニットの第2の行の処理(エンコーディング又はデコーディング)は、ユニットの第1の行全体の処理が完了するのを待つ必要がない。その代わりに、第1の行のユニットのいくつかが処理を完了した後に、このことが第2の行の最初のユニットを処理するときに使用される情報を提供し、ユニットの第2の行の処理が始まることができる。同様に、ユニットの第3の行の処理は、第2の行のユニットのいくつかについて処理が完了した後に開始することができる。従って、WPPは、ユニットの異なる行の並列処理を容易にし、異なるスレッド又は処理コアが、交互的な時間遅延の方式でユニットの異なる行の処理を実施することができる。
A. Wave Surface Parallel Processing-Introduction In general, WPP is a coding / decoding tool that facilitates parallel processing by differentially delaying the start of processing for a row of units in a picture. Once WPP is enabled, different rows of units in a picture can be encoded or decoded in parallel. During encoding or decoding, the first line of units can be processed unit-after-unit from left to right. The processing (encoding or decoding) of the second line of the unit does not have to wait for the processing of the entire first line of the unit to complete. Instead, after some of the units in the first row have completed processing, this provides the information used when processing the first unit in the second row, and the second row of units. Processing can start. Similarly, processing in the third row of units can begin after processing is complete for some of the units in the second row. Thus, WPP facilitates parallel processing of different rows of units, allowing different threads or processing cores to process different rows of units in an alternating time delay manner.

例えば、H.265/HEVC規格に従って、WPPが使用可能にされると、スライスがCTUの行へと分けられる。エンコード又はデコードする間、CTUの第1の行をCTU毎に(CTU-after-CTU)処理することができる。第1の行のうち最初の2つのCTUについて処理が完了した後に、このことが第2の行の最初のCTUを処理するときに使用される情報(例えば、再構成されたサンプル値、再構成されたMV値又はBV値、コンテキストモデル情報)を提供し、CTUの第2の行の処理が始まることができる。同様に、CTUの第3の行の処理は、第2の行の最初の2つのCTUについて処理が完了した後に開始することができる。 For example, H. According to the 265 / HEVC standard, when WPP is enabled, slices are divided into rows of CTU. While encoding or decoding, the first line of the CTU can be processed on a CTU-by-CTU-by-CTU basis. After processing is complete for the first two CTUs in the first row, this is the information used when processing the first CTU in the second row (eg, reconstructed sample values, reconstructed). The MV value or BV value, the context model information) is provided, and the processing of the second line of the CTU can be started. Similarly, the processing of the third row of CTUs can be started after the processing of the first two CTUs of the second row is completed.

図7は、H.265/HEVC規格に従った現在ピクチャ(710)に対するWPPのタイミング(700)を示している。ピクチャ(710)は、CTU列及びCTU行において編成されるCTUへと区分される。異なるCTU行を、WPPを使用して並列してエンコードし又はデコードすることができる。WPPのタイミングは、エンコード又はデコードする間のCTU間の依存関係(dependencies)を反映する。この例では、所与のCTUが、(1)その左側の隣接したCTU、(2)その左上の隣接したCTU、(3)所与のCTUの上側の隣接したCTU、及び(4)所与のCTUの右上の隣接したCTUからの情報(再構成されたサンプル値、再構成されたMV値若しくはBV値、コンテキストモデル情報など)に依存してもよく、その場合、かかる隣接したCTU(1)〜(4)は利用可能である(例えば、ピクチャ内、同じスライス及びタイル内である)。各隣接CTUは、次いで、利用可能な場合はそれに隣接したCTU(1)〜(4)に依存してもよい。図8は、第5のCTU行の最初のCTUに対するカスケード的依存関係を示している。第5のCTU行の最初のCTUは、第4のCTU行の最初の2つのCTUに依存し、それらは集合的に、第3のCTU行の最初の3つのCTUに依存し、その後も同様である。 FIG. 7 shows H. It shows the timing (700) of WPP with respect to the current picture (710) according to the 265 / HEVC standard. The picture (710) is divided into CTUs organized in CTU columns and CTU rows. Different CTU lines can be encoded or decoded in parallel using WPP. The timing of WPP reflects the dependencies between CTUs during encoding or decoding. In this example, a given CTU is (1) an adjacent CTU to its left, (2) an adjacent CTU to its upper left, (3) an adjacent CTU above the given CTU, and (4) given. It may depend on information from the adjacent CTU in the upper right corner of the CTU (reconstructed sample value, reconstructed MV or BV value, context model information, etc.), in which case such adjacent CTU (1). )-(4) are available (eg, in the picture, in the same slice and tile). Each adjacent CTU may then depend on CTUs (1)-(4) adjacent to it, if available. FIG. 8 shows the cascade dependency of the fifth CTU row for the first CTU. The first CTU in the fifth CTU row depends on the first two CTUs in the fourth CTU row, and they collectively depend on the first three CTUs in the third CTU row, and so on. Is.

図7を参照すると、WPPの場合、第1のCTU行(つまり、CTU行0)は、波0に対してCTU毎に処理される。波1の場合、CTU行1における最初のCTUの処理は、CTU行0における第2のCTUのエンコーディング/デコーディングが終了した後に開始することができる。同様に、波2の場合、CTU行2における最初のCTUの処理は、CTU行1における第2のCTUのエンコーディング/デコーディングが終了した後に開始することができる。波3の場合、CTU行3における最初のCTUの処理は、CTU行2における第2のCTUのエンコーディング/デコーディングが終了した後に開始することができ、波4の場合、CTU行4における最初のCTUの処理は、CTU行3における第2のCTUのエンコーディング/デコーディングが終了した後に開始することができる。 Referring to FIG. 7, in the case of WPP, the first CTU row (that is, CTU row 0) is processed for each CTU for wave 0. In the case of wave 1, the processing of the first CTU in CTU row 1 can be started after the encoding / decoding of the second CTU in CTU row 0 is finished. Similarly, in the case of wave 2, the processing of the first CTU in CTU row 2 can be started after the encoding / decoding of the second CTU in CTU row 1 is finished. In the case of wave 3, the processing of the first CTU in CTU row 3 can be started after the encoding / decoding of the second CTU in CTU row 2 is finished, and in the case of wave 4, the first CTU in CTU row 4 The processing of the CTU can be started after the encoding / decoding of the second CTU in CTU line 3 is completed.

CTU行が並列で処理される場合であっても、この交互的な時間遅延処理によって、CTU行について処理が始まるときにCTU間の依存関係が満たされることが確保される。図7では、処理の間、各CTU行に対してCTU2つ分の進みが維持される。各CTU行に対して、現在のCTU(太い輪郭線で示される)の処理は、次のCTU行の現在のCTUの処理よりもCTU2つ分早い。しかしながら、実際は、所与のCTU行の処理が失速し又は減速して、上記所与のCTU行におけるCTUの処理の完了に(直接若しくは間接的に)依存する後のCTU行の処理においてカスケード的遅延が生じることがある。後のCTU行の所与のCTUに関して、依存関係は前のCTU行からカスケードする(cascade)。図8に示される例(800)では、フレーム(810)の第5のCTU行における最初のCTUに対して、第4のCTU行における最初の2つのCTUが処理されている。そうでなければ、第5のCTU行における最初のCTUの処理は開始することができない。転じて、第3のCTU行の第3のCTUが処理されているが、これは、そうでなければ第4のCTU行における第2のCTUの処理を開始することができなかったためである。同様に、第3のCTU行の第3のCTUに対する処理の事前条件として、第2のCTU行の第4のCTUが処理されている。最後に、第2のCTU行の第4のCTUに対する処理の事前条件として、第1のCTU行の第5のCTUが処理されている。従って、図8は、WPPが使用可能にされるときの波4(第5のCTU行)における最初のCTUの予測に利用可能であることを保証された、再構成されたコンテンツを示している。 Even when the CTU rows are processed in parallel, this alternate time delay processing ensures that the dependencies between the CTUs are satisfied when processing begins for the CTU rows. In FIG. 7, two CTU advances are maintained for each CTU row during processing. For each CTU row, the processing of the current CTU (indicated by the thick outline) is two CTUs faster than the processing of the current CTU of the next CTU row. However, in practice, the processing of a given CTU row slows down or slows down and is cascaded in the processing of the CTU row after it depends (directly or indirectly) on the completion of the processing of the CTU in the given CTU row. Delays may occur. For a given CTU in a later CTU row, the dependencies cascade from the previous CTU row. In the example (800) shown in FIG. 8, the first two CTUs in the fourth CTU row are processed with respect to the first CTU in the fifth CTU row of the frame (810). Otherwise, the processing of the first CTU in the fifth CTU row cannot be started. In turn, the third CTU in the third CTU row is being processed because otherwise the processing of the second CTU in the fourth CTU row could not be initiated. Similarly, the fourth CTU of the second CTU row is processed as a precondition for processing the third CTU of the third CTU row. Finally, the fifth CTU of the first CTU row is processed as a precondition for processing the fourth CTU of the second CTU row. Thus, FIG. 8 shows the reconstructed content guaranteed to be available for prediction of the first CTU in wave 4 (fifth CTU row) when WPP is enabled. ..

対照的に、WPPが使用可能にされていないと、CTUは、CTU行内で左から右へ、CTU行毎に(CTU row after CTU row)ピクチャ(若しくは使用される場合、スライス及びタイル)の上から下へと処理される。所与のCTUに対して使用されるコンテキストモデル情報(CABACステータス情報若しくはエントロピー符号化情報とも呼ばれる)は、符号化/デコーディング順序においてより早いCTUである、ピクチャ(若しくはスライス/タイル)の同じCTU行における任意の前のCTU及び任意の前のCTU行の処理の結果を説明し(account for)得る。例えば、あるCTU行における第2のCTUの処理が、上記CTU行における第1のCTUの処理の結果に依存し、その後も同様である。別の例として、あるCTU行における最初のCTUの処理が、ピクチャ(若しくはスライス/タイル)内の前のCTU行における最後のCTUの処理の結果に依存する。 In contrast, if WPP is not enabled, the CTU will be on the CTU row after CTU row picture (or slices and tiles, if used) from left to right within the CTU row. Processed from to bottom. The context model information (also called CABAC status information or entropy coding information) used for a given CTU is the earlier CTU in the coding / decoding order, the same CTU in the picture (or slice / tile). The results of processing any previous CTU and any previous CTU row in a row may be accounted for. For example, the processing of the second CTU in a CTU row depends on the result of the processing of the first CTU in the CTU row, and so on. As another example, the processing of the first CTU in one CTU row depends on the result of processing the last CTU in the previous CTU row in the picture (or slice / tile).

他方で、WPPが使用可能にされると、CTU行における最初のCTUの処理は、ピクチャ(若しくはスライス/タイル)内の前のCTU行における最後のCTUの処理の結果に依存しない。CTU行における最初のCTUの処理は、前のCTU行内の最後のCTUからのコンテキストモデル情報が利用不能であっても、ピクチャ(若しくはスライス/タイル)内の前のCTU行における第2のCTUについて処理が終了した後で開始することができる。前のCTU行における第3のCTUの処理は依然として、WPPが使用可能でないときと同じように、そのCTU行における第2のCTUの処理結果に依存する。 On the other hand, when WPP is enabled, the processing of the first CTU in the CTU row does not depend on the result of processing the last CTU in the previous CTU row in the picture (or slice / tile). The processing of the first CTU in the CTU row is for the second CTU in the previous CTU row in the picture (or slice / tile), even if the context model information from the last CTU in the previous CTU row is not available. It can be started after the process is finished. The processing of the third CTU in the previous CTU row still depends on the processing result of the second CTU in that CTU row, as when WPP is not available.

WPPが使用可能にされるとき、エンコーダは、エンコーディングの間WPPを実際に使用してもしなくてもよい。いずれにせよ、エンコーダは、WPPが実際に使用されるときに適用される制約及び予測規則を強制する。同様に、WPPが使用可能にされるとき、デコーダは、デコーディングの間WPPを実際に使用してもしなくてもよい。ビットストリーム内のシンタックス要素が、ビデオシーケンス、ピクチャのセット、又はピクチャに対してWPPが使用可能にされているか否かを示すことができる。例えば、シンタックス要素は、ビットストリーム内のSPS、PPS、又は他のシンタックス構造の形で信号伝達することができる。H.265/HEVCの実装では、例えば、PPSシンタックス構造において信号伝達されるシンタックス要素の値entropy_coding_sync_enabled_flagは、PPSシンタックス構造に関連付けられたピクチャに対してWPPが使用可能にされているか否かを示す。entropy_coding_sync_enabled_flagが1に等しい場合、WPPがピクチャに対して使用可能である。そうでなければ、WPPはピクチャに対して使用可能にされていない。 When WPP is enabled, the encoder may or may not actually use WPP during encoding. In any case, the encoder enforces constraints and prediction rules that apply when WPP is actually used. Similarly, when WPP is enabled, the decoder may or may not actually use WPP during decoding. A syntax element in the bitstream can indicate whether WPP is enabled for a video sequence, a set of pictures, or a picture. For example, syntax elements can be signaled in the form of SPS, PPS, or other syntax structures within a bitstream. H. In the implementation of 265 / HEVC, for example, the value of the syntax element signaled in the PPS syntax structure entropy_coding_sync_enable_flag indicates whether WPP is enabled for the picture associated with the PPS syntax structure. .. WPP is available for the picture if entropy_coding_sync_enable_flag is equal to 1. Otherwise, WPP is not enabled for the picture.

B.パレット符号化/デコーディングモード及びパレット予測−序論
一般に、パレット符号化/デコーディングモードは、パレットを使用して、ユニット(例えば、H.265/HEVCの実装におけるCU、又は他のユニット)のサンプル値の少なくともいくつかを表す。例えば、パレットは、インデックス値0、1、2、…、pを対応する色に対してマッピングし、対応する色は、RGB4:4:4フォーマット、BGR4:4:4フォーマット、GBR4:4:4フォーマット、YUV4:4:4フォーマット、又は別のフォーマット(色空間、色サンプリングレート)であることができる。インデックス値は、ピクセルに対するRGBトリプレット、BGRトリプレット、又はGBRトリプレットを表すことができる。図9は、パレットの2つの例を示している。現在のユニットに対するパレット(つまり、「現在のパレット」)は、RGBトリプレットに関連付けられたp個のインデックス値0、…、p−1を含む。前のユニットに対するパレット(「前のパレットデータ」で表される)は、RGBトリプレットに関連付けられたq個のインデックス値0、…、q−1を含む。p及びqの値は同じ又は別であることができる。エンコーディングの間、エンコーダは、インデックス値を使用してピクセルのサンプル値を置き換えることができ、インデックス値は、例えばエントロピー符号化を使用して、更にエンコードされてもよい。デコーディングの間、デコーダは、例えば、インデックス値のエントロピーデコーディングの後、パレットを使用してインデックス値からピクセルのサンプル値を復元することができる。
B. Palette Coding / Decoding Modes and Palette Predictions-Introduction In general, palette coding / decoding modes use palettes to sample units (eg, CUs in H.265 / HEVC implementations, or other units). Represents at least some of the values. For example, the palette maps index values 0, 1, 2, ..., P to the corresponding colors, and the corresponding colors are RGB 4: 4: 4 format, BGR 4: 4: 4 format, GBR 4: 4: 4. It can be a format, YUV 4: 4: 4 format, or another format (color space, color sampling rate). The index value can represent an RGB triplet, a BGR triplet, or a GBR triplet for a pixel. FIG. 9 shows two examples of pallets. The palette for the current unit (ie, the "current palette") contains p index values 0, ..., P-1 associated with the RGB triplet. The palette for the previous unit (represented by "previous palette data") contains q index values 0, ..., Q-1 associated with the RGB triplet. The values of p and q can be the same or different. During encoding, the encoder can use the index value to replace the sample value of the pixel, and the index value may be further encoded, for example using entropy coding. During decoding, the decoder can use a palette to restore pixel sample values from index values, for example, after entropy decoding of index values.

特に、パレット符号化/デコーディングモードは、ユニットが、画面コンテンツビデオの一般的な特性である、比較的少数の区別可能な色を含むときに有効であり得る。例えば、RGB4:4:4フォーマットの64×64CUは、64×64=4096ピクセルを含むが、それよりもはるかに少数の色(例えば、1〜20色)を含むことがある。ユニット内のレア色は、レア色をパレットに直接含む代わりに、(それぞれのサンプル値に対して)エスケープコード値及びリテラル値を使用してエンコードすることができる。 In particular, palette coding / decoding modes can be useful when the unit contains a relatively small number of distinguishable colors, which is a common characteristic of screen content video. For example, a 64x64CU in the RGB4: 4: 4 format may contain 64x64 = 4096 pixels, but may contain much fewer colors (eg, 1-20 colors). Rare colors within a unit can be encoded using escape code values and literal values (for each sample value) instead of including the rare colors directly in the palette.

2つのユニットが同じパレットを使用することができるが、色は典型的に、ピクチャ内のユニットからユニットへと変化する。そのため、パレットは典型的に、ピクチャ内のユニットからユニットへと変化する。パレットに対して、エンコーダは、エントロピー符号化されてもよいパレットデータをビットストリームにおいて信号伝達する。デコーダは、パレットデータを受信し、構文解析し、必要であればそれをエントロピーデコードし、パレットを再構成する。エンコーダ及びデコーダは、パレット予測を使用して、信号伝達パレットデータに関連付けられたビットレートを低減することができる。 Two units can use the same palette, but the colors typically change from unit to unit in the picture. As such, the palette typically changes from unit to unit in the picture. With respect to the palette, the encoder signals the palette data, which may be entropy-encoded, in a bitstream. The decoder receives the palette data, parses it, entropy decodes it if necessary, and reconstructs the palette. Encoders and decoders can use palette prediction to reduce the bit rate associated with signaling palette data.

一般に、パレット予測は、エンコーディング又はデコーディングの間に使用される任意のアプローチであって、前のユニットの1つ以上のパレットからのパレットデータ(前のパレットデータ)を使用して現在のユニットのパレット(現在のパレット)の値を予測することができる。色は典型的にピクチャ内のユニットからユニットへと変化するが、多くの場合、所与のユニットにおける色の少なくともいくつかは隣接するユニットでさらに使用される。パレット予測は、その観察を活用して、パレットデータに対するビットレートを低減する。 In general, palette prediction is an arbitrary approach used during encoding or decoding, using palette data from one or more palettes of the previous unit (previous palette data) of the current unit. The value of the palette (current palette) can be predicted. Colors typically vary from unit to unit in the picture, but often at least some of the colors in a given unit are further used in adjacent units. Palette prediction takes advantage of that observation to reduce the bit rate for palette data.

図9は、パレット予測の簡素化した例(900)を示しており、現在のユニットのパレット(現在のパレット)が、前のユニットのパレット(前のパレットデータの形で表される)を使用して予測される。例えば、前のパレットデータは、前のユニットがパレット符号化/デコーディングモードを使用した場合、現在のユニットの前にエンコード又はデコードされた前のユニットによって使用されたパレットからのものであり得る。前のユニットがパレット符号化/デコーディングモードを使用しなかった場合、現在のユニットに対する前のパレットデータが前のユニットから「継承される」ことができる。即ち、前のユニットに対して利用可能であった前のパレットデータが、現在のユニットに対して利用可能な前のパレットデータとして再使用されることができる。(いくつかの例示的な実装では、前のパレットデータは、事実上、現在のユニットのステータス又は状態情報である。パレット符号化/デコーディングモードをそれ自体が使用しない所与のユニットが前のパレットデータを依然として有しており、それが次のユニットによって継承されてもよい。)従って、継承の連鎖を通して、現在のユニットに対する前のパレットデータは、パレット符号化/デコーディングモードを使用した最も直近の事前処理されたユニット(ある場合)のパレットからのパレットデータを含むことができる。 FIG. 9 shows a simplified example (900) of palette prediction, where the current unit's palette (current palette) uses the previous unit's palette (represented in the form of previous palette data). Is predicted. For example, the previous palette data can be from the palette used by the previous unit that was encoded or decoded before the current unit if the previous unit used palette coding / decoding mode. If the previous unit did not use palette encoding / decoding mode, the previous palette data for the current unit can be "inherited" from the previous unit. That is, the previous palette data that was available for the previous unit can be reused as the previous palette data that was available for the current unit. (In some exemplary implementations, the previous palette data is effectively the status or state information of the current unit. Given units that do not use the palette coding / decoding mode themselves are the previous. It still has palette data, which may be inherited by the next unit.) Therefore, through the chain of inheritance, the previous palette data for the current unit is the most using palette coding / decoding mode. It can contain palette data from the palette of the most recent preprocessed unit (if any).

パレット予測に関して、エンコーダは、現在のパレットが前のパレットデータと同じであるか否かを決定することができる。同じである場合、エンコーダは単純に、前のパレットデータが現在のパレットとして再使用されるべきであることを示すことができる。そうではない(現在のパレットが前のパレットデータと異なる)場合、エンコーダは、前のパレットデータと現在のパレットとの間の変化を決定し、該変化を示すシンタックス要素を信号伝達する。例えば、図9に示されるように、現在のパレットの所与のインデックス値に関して、エンコーダは、所与のインデックス値の対応する色が前のパレットデータの色(「prev」)であるか又は新しい色(「new」)であるかを信号伝達する。対応する色が前のパレットデータの色である場合、エンコーダは、現在のパレットを埋める(populate)のに使用することができる、前のパレットデータの色に対する(前のパレットデータからの)インデックス値を信号伝達する。図9では、前のパレットデータのインデックス値1に対する色が、現在のパレットのインデックス値0に再割り当てされ、前のパレットデータのインデックス値0に対する色が、現在のパレットのインデックス値2に再割り当てされている。従って、色はパレットからパレットへと位置を変更することができ、そのため、例えば、最も一般的な色が最も低いインデックス値を有し、それによってエントロピー符号化の効率が改善されてもよい。所与のインデックス値の対応する色が新しい色である場合、エンコーダは新しい色に対するトリプレットを信号伝達する。図9では、例えば、現在のパレットのインデックス値1に関して、エンコーダは新しいトリプレット(215,170,200)を信号伝達し、それが現在のパレットを更新するのに使用される。 With respect to palette prediction, the encoder can determine if the current palette is the same as the previous palette data. If they are the same, the encoder can simply indicate that the previous palette data should be reused as the current palette. If not (the current palette is different from the previous palette data), the encoder determines the change between the previous palette data and the current palette and signals a syntax element that indicates the change. For example, as shown in FIG. 9, with respect to a given index value in the current palette, the encoder has the corresponding color of the given index value be the color of the previous palette data (“prev”) or is new. Signals whether it is a color (“new”). If the corresponding color is the color of the previous palette data, the encoder can be used to populate the current palette, the index value (from the previous palette data) for the color of the previous palette data. Is signaled. In FIG. 9, the color for the index value 1 of the previous palette data is reassigned to the index value 0 of the current palette, and the color for the index value 0 of the previous palette data is reassigned to the index value 2 of the current palette. Has been done. Thus, colors can be repositioned from palette to palette, so that, for example, the most common colors may have the lowest index value, which may improve the efficiency of entropy encoding. If the corresponding color of a given index value is a new color, the encoder signals a triplet for the new color. In FIG. 9, for example, for an index value of 1 on the current palette, the encoder signals a new triplet (215, 170, 200), which is used to update the current palette.

エンコーダによって信号伝達されたシンタックス要素に基づいて、デコーダは、現在のパレットが、デコーダで利用可能な前のパレットデータと同じであるか否かを決定することができる。同じである場合、デコーダは、前のパレットデータを現在のパレットとして再使用することができる。そうではない(現在のパレットが前のパレットデータと異なる)場合、デコーダは、前のパレットデータと現在のパレットとの間の変化を示すシンタックス要素を受信し、構文解析する。例えば、図9に示されるように、現在のパレットの所与のインデックス値に関して、デコーダは、所与のインデックス値の対応する色が前のパレットデータの色(「prev」)であるか又は新しい色(「new」)であるかを決定する。対応する色が前のパレットデータの色である場合、デコーダは、現在のパレットを埋めるのに使用することができる、前のパレットデータの色に対する(前のパレットデータからの)インデックス値を示すシンタックス要素を受信し、構文解析する。所与のインデックス値の対応する色が新しい色である場合、デコーダは新しい色を示すシンタックス要素を受信し、構文解析する。 Based on the syntax elements signaled by the encoder, the decoder can determine if the current palette is the same as the previous palette data available in the decoder. If they are the same, the decoder can reuse the previous palette data as the current palette. If not (the current palette is different from the previous palette data), the decoder receives a syntax element that indicates the change between the previous palette data and the current palette and parses it. For example, as shown in FIG. 9, with respect to a given index value in the current palette, the decoder either has a corresponding color in the given index value that is the color of the previous palette data (“prev”) or is new. Determine if it is a color ("new"). If the corresponding color is the color of the previous palette data, the decoder can be used to fill the current palette with a thin indicating the index value (from the previous palette data) for the color of the previous palette data. Receives tax elements and parses them. If the corresponding color of a given index value is a new color, the decoder receives a syntax element indicating the new color and parses it.

現在のパレットを構成した後、エンコーダ及びデコーダは、次のユニットに対して前のパレットデータを更新して、現在のパレットからのパレットデータを記憶する。この新しい「前のパレットデータ」を使用して、次のユニットに対するパレットを予測することができる。 After configuring the current palette, the encoder and decoder update the previous palette data for the next unit and store the palette data from the current palette. This new "previous palette data" can be used to predict the palette for the next unit.

図9は、簡素化した例(900)を示している。実際は、パレットデータを信号伝達するのに使用されるシンタックス要素及び規則はより複雑な場合がある。例示的な実装におけるパレット符号化/デコーディング及びパレット予測に関する更なる詳細については、例えば、JCTVC-R1005のセクション7.3.8.8、7.4.9.6、及び8.4.1を参照されたい。或いは、別のアプローチがパレットデータを信号伝達するのに使用される。 FIG. 9 shows a simplified example (900). In practice, the syntax elements and rules used to signal palette data can be more complex. See, for example, Sections 7.3.8.8, 7.4.9.6, and 8.4.1 of JCTVC-R1005 for further details on palette coding / decoding and palette prediction in the exemplary implementation. Alternatively, another approach is used to signal the palette data.

C.WPPが使用可能にされるときのパレット予測
一般に、パレット予測を目的とした前のパレットデータは、現在のユニットのパレット(現在のパレット)を予測するのに使用される。例えば、前のパレットデータは、現在のユニットの前にエンコード又はデコードされた隣接ユニットからの実際のパレットデータである(隣接するユニットがパレット符号化/デコーディングモードを使用した場合)。或いは(隣接するユニットがパレット符号化/デコーディングモードを使用しなかった場合)、隣接ユニットに利用可能な前のパレットデータが、現在のユニットに対する前のパレットデータとして再使用される(又は、「継承される」)ことができる。
C. Pallet Prediction When WPP Is Enabled Generally, the previous pallet data for pallet prediction is used to predict the pallet (current pallet) of the current unit. For example, the previous palette data is the actual palette data from the adjacent unit encoded or decoded before the current unit (if the adjacent unit used palette encoding / decoding mode). Alternatively (if the adjacent unit did not use the palette coding / decoding mode), the previous palette data available to the adjacent unit is reused as the previous palette data for the current unit (or ". It can be inherited ").

いくつかの例示的な実装では、WPPが使用可能にされない場合、現在の行内の最初のユニットに対して、前のパレットデータは、前の行内の最後のユニットから(例えば、最後のユニットがパレット符号化/デコーディングモードを使用した場合は、最後のユニットのパレットから、そうでなければ、最後のユニットに利用可能な前のパレットデータから)のものである。WPPが使用可能にされるとき、現在の行内の最初のユニットに対して、前の行内の最後のユニットからの前のパレットデータが利用可能でないことがある。しかしながら、ユニットの各行の始めにパレット予測をリセットすることは(現在のユニットにおける最初のユニットのパレット予測に対する予測子がない)、符号化効率に対して悪影響を有し得る。 In some exemplary implementations, if WPP is not enabled, for the first unit in the current row, the previous palette data will be from the last unit in the previous row (eg, the last unit is the palette). If you used the encoding / decoding mode, it is from the palette of the last unit, otherwise from the previous palette data available to the last unit). When WPP is enabled, the previous palette data from the last unit in the previous row may not be available for the first unit in the current row. However, resetting the palette prediction at the beginning of each row of units (there is no predictor for the palette prediction of the first unit in the current unit) can have a negative effect on coding efficiency.

その代わりに、WPPが使用可能にされるとき、エンコーダ又はデコーダは、現在の行内の最初のユニットの処理が始まるために既に処理されている、前の行内の最初の2つのユニットのうち1つ(例えば、前の行の最初の2つのCTUにおける最初の2つのCUのうち1つ)からの前のパレットデータを使用することができる。例えば、現在の行内の最初のユニットに対して、パレット予測を目的とした前のパレットデータは、前の行の第2のユニットからのもの(第2のユニットがパレット符号化/デコーディングモードを使用した場合、第2のユニットの実際のパレットデータ、又はそうでなければ、前の行の第2のユニットに利用可能な前のパレットデータ)である。従って、現在の行内の最初のユニットについて、上記第2のユニットがパレット符号化/デコーディングモードを使用しなかった場合、前のパレットデータは潜在的に、前の行内の第1のユニットからのパレットデータ(第1のユニットがパレット符号化/デコーディングモードを使用した場合)、又は、(前の行内の最初の2つのユニットがいずれもパレット符号化/デコーディングモードを使用しなかった場合は)前の行の第1のユニットからの前のパレットデータであり、該パレットデータは、前の行の前の行における第2のユニットに対するパレットに依存してもよく、その後も同様である。(或いは、前の行内の最初の2つのユニットがいずれもパレット符号化/デコーディングモードを使用しなかった場合、前のパレットデータは、ヌル(予測子なし)であるか又はデフォルト予測子を使用することができる。)現在の行内の最初のユニットの後、現在のユニットについて、パレット予測を目的とした前のパレットデータは、WPPが使用可能にされないときと同じように、現在のユニットの前にエンコード又はデコードされた隣接ユニットからのパレットデータ(隣接ユニットがパレット符号化/デコーディングモードを使用した場合)、又は、(隣接ユニットがパレット符号化/デコーディングモードを使用しなかった場合は)隣接ユニットに利用可能な前のパレットデータである。 Instead, when WPP is enabled, the encoder or decoder is one of the first two units in the previous line that has already been processed to begin processing the first unit in the current line. Previous palette data from (eg, one of the first two CUs in the first two CTUs of the previous row) can be used. For example, for the first unit in the current row, the previous palette data for palette prediction is from the second unit in the previous row (the second unit has palette coding / decoding mode). If used, the actual pallet data of the second unit, or otherwise the previous pallet data available for the second unit in the previous row). Therefore, for the first unit in the current row, if the second unit did not use the palette coding / decoding mode, the previous palette data could potentially be from the first unit in the previous row. Palette data (if the first unit used palette coding / decoding mode) or (if neither of the first two units in the previous line used palette coding / decoding mode) ) It is the previous palette data from the first unit in the previous row, and the palette data may depend on the palette for the second unit in the previous row in the previous row, and so on. (Alternatively, if neither of the first two units in the previous row used palette coding / decoding mode, the previous palette data is null (no predictor) or uses the default predictor. After the first unit in the current line, for the current unit, the previous pallet data for pallet prediction is before the current unit, as if WPP was not enabled. Palette data from an adjacent unit encoded or decoded into (if the adjacent unit used palette encoding / decoding mode) or (if the adjacent unit did not use palette encoding / decoding mode) Previous palette data available for adjacent units.

図10は、いくつかの例示的な実施例による、WPPが使用可能にされた状態で処理される現在ピクチャ(1010)に対するパレット予測依存関係(1000)を示している。ピクチャ(1010)はCTU行及びCTU列によって編成される。図10の例では、各CTUは単一のCUを含む。より一般には、所与のCTUを複数のCUへと再帰的に分割することができる(例えば、単一のCUを4つのCUへと分割することができ、4つのCUの各々が、より小さいCUへと更に分割されてもよい)。処理の状態(例えば、現在のCTUがエンコード又はデコードされている)は、一般に、図7に示される処理の状態に対応する。図10の矢印は、WPPが使用可能にされるときのパレット予測の方向を示している。第1のCTU行における最初のCUに関して、予測子は存在しない。或いは、デフォルト予測子を使用することができる。第1のCTU行内のより後のCU各々に関して、前のパレットデータは、左側のCUからのものである。第1のCTU行の後の任意のCTU行における最初のCUに関して、前のパレットデータは、前の行の第2のCUからのものである。第1のCTU行の後の任意のCTU行内のより後のCU各々に関して、前のパレットデータは、同じ行内の前のCUからのものである。パレット符号化/デコーディングモードを使用する任意のCUに関して、そのパレットは、次のCUのパレットを予測するための前のパレットデータを構成するのに使用される。所与のCUがパレット符号化/デコーディングモードを使用しない場合、上記所与のCUに利用可能であった前のパレットデータは、次のCUの前のパレットデータとして保有される。 FIG. 10 shows the palette prediction dependency (1000) for the current picture (1010) processed with WPP enabled, according to some exemplary examples. The picture (1010) is organized by CTU rows and CTU columns. In the example of FIG. 10, each CTU contains a single CU. More generally, a given CTU can be recursively divided into multiple CUs (eg, a single CU can be divided into 4 CUs, each of which is smaller. It may be further divided into CUs). The state of processing (eg, the current CTU is encoded or decoded) generally corresponds to the state of processing shown in FIG. The arrows in FIG. 10 indicate the direction of pallet prediction when WPP is enabled. There are no predictors for the first CU in the first CTU row. Alternatively, you can use the default predictor. For each later CU in the first CTU row, the previous palette data is from the left CU. For the first CU in any CTU row after the first CTU row, the previous palette data is from the second CU in the previous row. For each later CU in any CTU row after the first CTU row, the previous palette data is from the previous CU in the same row. For any CU that uses the palette coding / decoding mode, that palette is used to construct the previous palette data for predicting the palette for the next CU. If a given CU does not use the palette coding / decoding mode, the previous palette data available for the given CU is retained as the previous palette data for the next CU.

CTUが複数のCUを含むとき、現在のCUに対するパレット予測の目的で、前のCUはzスキャン順序においてより早いCUであり得る。より早いCUは、(CTUの第1のCUに対して)同じCTU又は異なるCTUにあることができる。セクションVII.Dは、図17を参照して、いくつかの例示的な実装におけるzスキャン順序の例を説明している。 When the CTU contains multiple CUs, the previous CU can be the earlier CU in the z-scan sequence for the purpose of palette prediction for the current CU. The earlier CUs can be in the same CTU or different CTUs (relative to the first CU of the CTU). Section VII. D illustrates examples of z-scan sequences in some exemplary implementations with reference to FIG.

エンコーダ及びデコーダは、メモリを使用して、パレット予測に使用される前のパレットデータを記憶することができる。前のパレットデータのために保存されるパレットデータの量は実装に依存する。一般に、前のパレットデータは、前のパレットデータにおける色のカウントCと、色に対するサンプル値の詳細(例えば、RGB4:4:4フォーマット、GBR4:4:4フォーマット、BGR4:4:4フォーマット、YUV4:4:4フォーマット、又は別のフォーマットの色トリプレット)とを含むことができる。エンコーダ及びデコーダは、前のパレットに対する全てのパレットデータを保存することができる。しかしながら、前のパレットに対する全てのパレットデータの保存は、大きいパレットの場合に相当量のメモリを消費する場合がある。或いは、いくつかの事例においてメモリ消費を低減するため、エンコーダ及びデコーダは閾値カウントによってCを制限し、ここで、閾値カウントは実装に依存する。この場合、エンコーダ及びデコーダは、前のパレットにおける最初のC個の異なる色について前のパレットデータを保存し、ここで、Cは閾値カウントによって制限される。例えば、閾値カウントは16又は32である。或いは、WPPが使用可能にされるとき、現在の行の最初のユニットに対するパレット予測に関して、エンコーダ及びデコーダは、最大で、最初のC個の異なる色について前のパレットデータを保存する。その後、エンコーダ及びデコーダは、現在の行内のパレット予測に関して、最大で、最初のC個の異なる色について前のパレットデータを保存する。例えば、Cは16又は32であり、Cは64である。 Encoders and decoders can use memory to store palette data before it is used for palette prediction. The amount of palette data saved for the previous palette data is implementation dependent. In general, the previous palette data includes the color count C in the previous palette data and the details of the sample values for the colors (eg, RGB 4: 4: 4 format, GBR 4: 4: 4 format, BGR 4: 4: 4 format, YUV4). : 4: 4 format, or a color triplet in another format) and can be included. Encoders and decoders can store all palette data for the previous palette. However, storing all palette data for the previous palette can consume a significant amount of memory for larger palettes. Alternatively, in some cases, the encoder and decoder limit C by a threshold count to reduce memory consumption, where the threshold count is implementation dependent. In this case, the encoder and decoder store the previous palette data for the first C different colors in the previous palette, where C is limited by the threshold count. For example, the threshold count is 16 or 32. Alternatively, when WPP is enabled, for palette predictions for the first unit in the current row, encoders and decoders store previous palette data for up to the first C 1 different color. The encoder and decoder then store the previous palette data for up to the first C 2 different colors for the palette prediction in the current row. For example, C 1 is 16 or 32 and C 2 is 64.

図11は、WPPが使用可能にされるときの、パレット予測を含むエンコーディングのための一般化された技術(1100)を示している。図3又は図5a及び5bに示されるエンコーダなどのエンコーダ、又は他のエンコーダが、技術(1100)を実施することができる。図12は、WPPが使用可能にされるときの、パレット予測を含むデコーディングのための一般化された技術(1200)を示している。図4又は図6に示されるデコーダなどのデコーダ、又は他のデコーダが、技術(1200)を実施することができる。 FIG. 11 shows a generalized technique (1100) for encoding, including palette prediction, when WPP is enabled. Encoders, such as the encoders shown in FIGS. 3 or 5a and 5b, or other encoders can carry out the technique (1100). FIG. 12 shows a generalized technique (1200) for decoding, including palette prediction, when WPP is enabled. A decoder such as the decoder shown in FIG. 4 or FIG. 6, or another decoder, can carry out the technique (1200).

図11を参照すると、エンコーダが、WPPが使用可能にされた状態でピクチャをエンコードする(1110)。エンコーディング(1110)は、エンコードされたデータを生成する。エンコーディング(1110)の一部として、パレット符号化モードについて、エンコーダは、ピクチャの前のWPP行における前のユニットからの前のパレットデータを使用して、ピクチャの現在のWPP行における最初のユニットに対するパレットを予測する。エンコーダは、エンコードされたデータをビットストリームの一部として出力する(1120)。 Referring to FIG. 11, the encoder encodes the picture with WPP enabled (1110). Encoding (1110) produces encoded data. As part of the encoding (1110), for palette encoding mode, the encoder uses the previous palette data from the previous unit in the previous WPP line of the picture to the first unit in the current WPP line of the picture. Predict the palette. The encoder outputs the encoded data as part of a bitstream (1120).

図12を参照すると、デコーダが、エンコードされたデータをビットストリームの一部として受信する(1210)。デコーダは、WPPが使用可能にされた状態で、エンコードされたデータをデコードする(1220)。デコーディング(1220)は、ピクチャを再構成する。デコーディング(1220)の一部として、パレットデコーディングモードについて、デコーダは、ピクチャの前のWPP行における前のユニットからの前のパレットデータを使用して、ピクチャの現在のWPP行における最初のユニットに対するパレットを予測する。 Referring to FIG. 12, the decoder receives the encoded data as part of a bitstream (1210). The decoder decodes the encoded data with WPP enabled (1220). Decoding (1220) reconstructs the picture. As part of decoding (1220), for palette decoding mode, the decoder uses the previous palette data from the previous unit in the previous WPP row of the picture to use the first unit in the current WPP row of the picture. Predict the palette for.

いくつかの例示的な実装では、エンコーダ又はデコーダにおいて、現在のWPP行及び前のWPP行はCTUの行であり、最初のユニット及び前のユニットはCUである。或いは、WPP行は別のタイプのユニットの行であり、かつ/あるいは最初のユニット及び前のユニットは別のタイプのユニットである。ビットストリーム内のシンタックス要素が、ビデオシーケンス、ピクチャのセット、又はピクチャについてWPPが使用可能にされているかどうかを示すことができる。シンタックス要素は、SPSシンタックス構造、PPSシンタックス構造(例えば、H.265/HEVCの実装におけるシンタックス要素entropy_coding_sync_enabled_flag)、又はビットストリーム内の他のシンタックス構造において信号伝達することができる。 In some exemplary implementations, in an encoder or decoder, the current WPP line and the previous WPP line are the CTU lines, and the first unit and the previous unit are the CUs. Alternatively, the WPP row is a row of another type of unit, and / or the first unit and the previous unit are another type of unit. A syntax element in the bitstream can indicate whether WPP is enabled for a video sequence, set of pictures, or pictures. The syntax element can be signaled in the SPS syntax structure, the PPS syntax structure (eg, the syntax element entropy_coding_sync_enable_flag in the implementation of H.265 / HEVC), or other syntax structures in the bitstream.

一般に、エンコーディング又はデコーディングの間、現在のWPP行における最初のユニットのパレットは、現在のWPP行内の最初のユニットで使用される少なくともいくつかの色を表す。前のWPP行内の前のユニットからの前のパレットデータは、前のWPP行の前のユニットのパレットで使用される少なくともいくつかの色を表してもよい(前のユニットがパレット符号化/デコーディングモードを使用した場合)。或いは(前のユニットがパレット符号化/デコーディングモードを使用しなかった場合)、前のWPP行内の前のユニットからの前のパレットデータは、より早いユニットから前のユニットによって継承されていてもよく、より早いユニットは、パレット符号化/デコーディングモードを使用しているか、又はそれ自体が前のパレットデータを継承していてもよい。パレットにおいて表されない色は、エスケープ符号化することができる。前のWPP行は、現在のWPP行のすぐ上のWPP行であり得る。前のWPP行における前のユニットは、現在のWPP行における最初のユニットの上であることができ(例えば、図10において、前の行における第1のユニット)、或いは、現在のWPP行における最初のユニットの右上であることができる(例えば、図10において、前の行の第2のユニット)。現在のWPP行における最初のユニットを処理した後、ピクチャの現在のWPP行における後続ユニットのパレットについて、エンコーダ又はデコーダは、現在のWPP行における最初のユニットのパレットからのパレットデータを使用して、(後続ユニットの)パレットを予測することができる。 In general, during encoding or decoding, the palette of the first unit in the current WPP line represents at least some of the colors used in the first unit in the current WPP line. The previous palette data from the previous unit in the previous WPP line may represent at least some of the colors used in the palette of the previous unit in the previous WPP line (the previous unit is palette coded / de). When using coding mode). Alternatively (if the previous unit did not use palette encoding / decoding mode), the previous palette data from the previous unit in the previous WPP line may be inherited by the previous unit from the earlier unit. Well, faster units may be using palette coding / decoding mode or may themselves inherit from previous palette data. Colors that are not represented in the palette can be escape coded. The previous WPP line can be the WPP line just above the current WPP line. The previous unit in the previous WPP row can be above the first unit in the current WPP row (eg, the first unit in the previous row in FIG. 10), or the first in the current WPP row. Can be in the upper right corner of the unit (eg, in FIG. 10, the second unit in the previous row). After processing the first unit in the current WPP row, for the palette of subsequent units in the current WPP row of the picture, the encoder or decoder will use the palette data from the palette of the first unit in the current WPP row. The palette (of subsequent units) can be predicted.

エンコーディング又はデコーディングの間、パレット予測はいくつかの段階を含むことができる。例えば、エンコーディングの間、エンコーダは(現在のパレットと前のパレットデータとの比較に基づいて)、前のWPP行内の前のユニットからの前のパレットデータを現在のWPP行内の最初のユニットに対するパレット(現在のパレット)として再使用するか否かを決定することができる。デコーディングの間、デコーダは(エンコーダによって信号伝達された情報に基づいて)、前のWPP行内の前のユニットからの前のパレットデータを現在のWPP行内の最初のユニットに対するパレット(現在のパレット)として再使用するか否かを決定することができる。別の例として、エンコーディングの間、パレットに対する変更があるとき、エンコーダは、前のWPP行内の前のユニットからの前のパレットデータから1つ以上の色を選択して、現在のWPP行内の最初のユニットに対するパレット(現在のパレット)に含めることができる。エンコーダは、選択された色を示すシンタックス要素を信号伝達する。次いで、デコーディングの間、デコーダは、上記シンタックス要素を受信し、構文解析することができ、シンタックス要素に基づいて、前のWPP行内の前のユニットからの前のパレットデータから1つ以上の色を選択して、現在のWPP行内の最初のユニットに対するパレット(現在のパレット)に含めることができる。或いは、エンコーダ及びデコーダは、別のアプローチを使用してパレットデータを信号伝達することができる。 During encoding or decoding, palette prediction can include several steps. For example, during encoding, the encoder (based on a comparison of the current palette with the previous palette data) will palette the previous palette data from the previous unit in the previous WPP row to the first unit in the current WPP row. It is possible to decide whether or not to reuse it as (current palette). During decoding, the decoder (based on the information signaled by the encoder) palettes the previous palette data from the previous unit in the previous WPP row to the first unit in the current WPP row (current palette). It is possible to decide whether or not to reuse it. As another example, when there is a change to the palette during encoding, the encoder selects one or more colors from the previous palette data from the previous unit in the previous WPP line and is the first in the current WPP line. Can be included in the palette for the unit (current palette). The encoder signals a syntax element that represents the selected color. During decoding, the decoder can then receive the syntax element and parse it, and based on the syntax element, one or more from the previous palette data from the previous unit in the previous WPP line. Colors can be selected to be included in the palette (current palette) for the first unit in the current WPP line. Alternatively, encoders and decoders can signal palette data using alternative approaches.

エンコーダ及びデコーダは、前のWPP行における前のユニットからの全ての前のパレットデータを記憶することができる。例えば、エンコーダ及びデコーダは、前のWPP行内の前のユニットからの前のパレットデータにおけるC個の色の各々について、1つ以上の色成分値を保存することができる。或いは、いくつかの事例においてメモリ消費を低減するため、エンコーダ及びデコーダは、前のパレットデータに対する閾値カウントによってCを制限することができ、したがって、閾値カウントによって制限される最初のC個の色に対するパレットデータが、パレット予測のために記憶される。 Encoders and decoders can store all previous palette data from previous units in the previous WPP line. For example, encoders and decoders can store one or more color component values for each of the C colors in the previous palette data from the previous unit in the previous WPP line. Alternatively, to reduce memory consumption in some cases, encoders and decoders can limit C by a threshold count on the previous palette data, and thus for the first C colors limited by the threshold count. Palette data is stored for palette prediction.

D.イントラコピー予測−序論
一般に、イントラコピーモードは、ピクチャの現在のブロック、ライン、ストリング、又は他のセクションが同じピクチャの参照ブロック、ライン、ストリング、又は他のセクションにおける事前に再構成されたサンプル値を使用して予測される、イントラコピー予測を使用する。例えば、イントラコピーモードは、イントラブロックコピー(「BC」)予測、イントララインコピー(「LC」)予測、又はイントラストリングコピー(「SC」)予測を使用することができる。
D. Intracopy Prediction-Introduction In general, intracopy mode is a pre-reconstructed sample value in a reference block, line, string, or other section of a picture that has the same current block, line, string, or other section of the picture. Use intracopy prediction, which is predicted using. For example, the intracopy mode can use intrablock copy (“BC”) prediction, intraline copy (“LC”) prediction, or intrastring copy (“SC”) prediction.

一般に、イントラBCモードは、ピクチャの現在のブロックのサンプル値が同じピクチャのサンプル値を使用して予測される、イントラBC予測を使用する。ブロックベクトル(「BV」)値は、現在のブロックから、予測に使用されるサンプル値を示すピクチャのブロック(「参照ブロック」)への変位を示す。参照ブロックは、現在のブロックに対する予測値を提供する。予測に使用されるサンプル値は事前に再構成されたサンプル値であり、従ってそれらは、エンコーディングの間エンコーダで、またデコーディングの間デコーダで利用可能である。BV値はビットストリームにおいて信号伝達され、デコーダは、BV値を使用して、予測に使用するピクチャの参照ブロックを決定することができる。 Intra BC mode generally uses intra BC prediction, where the sample values of the current block of the picture are predicted using the sample values of the same picture. The block vector (“BV”) value indicates the displacement from the current block to the block (“reference block”) of the picture showing the sample value used for the prediction. The reference block provides a predicted value for the current block. The sample values used for prediction are pre-reconstructed sample values, so they are available in the encoder during encoding and in the decoder during decoding. The BV value is signaled in the bitstream and the decoder can use the BV value to determine the reference block of the picture to use for prediction.

図13は、現在ピクチャ(1310)の現在のブロック(1330)に対するイントラBC予測の一例(1300)を示している。現在のブロックは、符号化ユニット(「CU」)の符号化ブロック(「CB」)、予測ユニット(「PU」)の予測ブロック(「PB」)、変換ユニット(「TU」)の変換ブロック(「TB」)、又は他のブロックであり得る。現在のブロックのサイズは、64×64、32×32、16×16、8×8、又は他の何らかのサイズであり得る。ブロックは、イントラBC予測の目的で、より小さいブロックへと対称的又は非対称的に区分することができる。より一般には、現在のブロックのサイズはm×nであり、m及びnは各々整数であり、m及びnは互いに等しいことが可能であり、又は異なる値を有することができる。従って、現在のブロックは正方形又は長方形であり得る。或いは、現在のブロックは他の何らかの形状を有することができる。 FIG. 13 shows an example (1300) of an intra-BC prediction for the current block (1330) of the current picture (1310). The current blocks are the coding block (“CB”) of the coding unit (“CU”), the prediction block (“PB”) of the prediction unit (“PU”), and the conversion block (“TU”) of the conversion unit (“TU”). It can be "TB"), or another block. The size of the current block can be 64x64, 32x32, 16x16, 8x8, or some other size. The blocks can be symmetrically or asymmetrically divided into smaller blocks for the purpose of intra-BC prediction. More generally, the size of the current block is m × n, m and n are integers, respectively, and m and n can be equal to each other or have different values. Therefore, the current block can be square or rectangular. Alternatively, the current block can have some other shape.

BV(1340)は、現在のブロック(1330)から、予測に使用されるサンプル値を含むピクチャの参照ブロック(1350)への変位(又はオフセット)を示す。参照ブロック(1350)は現在のブロック(1330)と同一であることができ、又は現在のブロック(1330)の近似であることができる。現在のブロックの左上位置が現在ピクチャの位置(x,y)にあるものと仮定し、参照ブロックの左上位置が現在ピクチャの位置(x,y)にあるものと仮定する。BVは変位(x−x,y−y)を示す。例えば、現在のブロックの左上位置が位置(256,128)にあり、参照ブロックの左上位置が位置(126,104)にある場合、BV値は(−130,−24)である。この例では、負の水平変位は現在のブロックの左側の位置を示し、負の垂直変位は現在のブロックの上側の位置を示す。 The BV (1340) indicates the displacement (or offset) from the current block (1330) to the reference block (1350) of the picture containing the sample values used for prediction. The reference block (1350) can be the same as the current block (1330) or can be an approximation of the current block (1330). Assume that the upper left position of the current block is at the current picture position (x 0 , y 0 ) and that the upper left position of the reference block is at the current picture position (x 1 , y 1 ). BV indicates the 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 block is at position (126,104), the BV value is (-130, -24). In this example, a negative horizontal displacement indicates the position to the left of the current block and a negative vertical displacement indicates the position above the current block.

イントラBC予測は、BC動作を使用して冗長性(ピクチャ内部の繰返しパターンなど)を活用することによって、符号化効率を改善することができる。しかしながら、現在のブロックに対してマッチする参照ブロックを発見することは、エンコーダが評価し得る候補参照ブロックの数を考慮すると、計算的に複雑で時間のかかる場合がある。図14は、WPPが使用可能にされていないときの、現在ピクチャ(1410)の現在のブロック(1430)に対する候補参照ブロックのいくつかを例証する一例(1400)を示している。4つのBV(1441、1442、1443、1444)が、4つの候補参照ブロックに対する変位を示す。WPPが使用可能にされていない場合、候補参照ブロックは、現在ピクチャ(1410)の再構成されたコンテンツ内のいずれかの場所であり得る。(ブロックは、一般に、左から右に、次に上から下に符号化される。)BV(1443、1444)によって示される候補参照ブロックに関して示されるように、候補参照ブロックは他の候補参照ブロックと重なり合う場合がある。いくつかの例示的な実装では、参照ブロックは、現在のブロックと同じスライス及びタイル内にあるように制約される。かかるイントラBC予測は、他のスライス又はタイルにおけるサンプル値を使用しない。参照ブロックの場所は、後述するように、1つ以上の他の制約、例えばWPPが使用可能にされるときの制約の対象であってもよい。 Intra BC prediction can improve the coding efficiency by utilizing the redundancy (such as the repetition pattern inside the picture) by using the BC operation. However, finding a matching reference block for the current block can be computationally complex and time consuming, given the number of candidate reference blocks that the encoder can evaluate. FIG. 14 shows an example (1400) exemplifying some of the candidate reference blocks for the current block (1430) of the current picture (1410) when WPP is not enabled. The four BVs (1441, 1442, 1443, 1444) indicate the displacements for the four candidate reference blocks. If WPP is not enabled, the candidate reference block can be anywhere in the reconstructed content of the current picture (1410). (Blocks are generally encoded from left to right, then from top to bottom.) Candidate reference blocks are other candidate reference blocks, as shown for candidate reference blocks indicated by BVs (1443, 1444). May overlap with. In some exemplary implementations, the reference block is constrained to be in the same slice and tile as the current block. Such intra-BC predictions do not use sample values in other slices or tiles. The location of the reference block may be subject to one or more other constraints, such as when WPP is enabled, as described below.

イントラBC予測の予測モードを有するブロックは、CB、PB、又は他のブロックであり得る。ブロックがCBであるとき、ブロックのBVはCUレベルで信号伝達されることができる(また、CU内の他のCBは、同じBV又はそのスケーリングされたバージョンを使用する)。或いは、ブロックがPBであるとき、ブロックのBVはPUレベルで信号伝達されることができる(また、PUないの他のPBは、同じBV又はそのスケーリングされたバージョンを使用する)。より一般には、イントラBC予測ブロックのBVは、ブロックに対して適切なシンタックスレベルで信号伝達される。 The block having the prediction mode of intra-BC prediction can be a CB, PB, or other block. When the block is a CB, the BV of the block can be signaled at the CU level (and other CBs in the CU use the same BV or its scaled version). Alternatively, when the block is PB, the block's BV can be signaled at the PU level (and other PBs without PU use the same BV or its scaled version). More generally, the BV of an intra-BC prediction block is signaled to the block at an appropriate syntax level.

一般に、イントラLCモードは、ピクチャの現在のブロックの現在のラインのサンプル値が同じピクチャ内のサンプル値を使用して予測される、イントラLC予測を使用する。オフセット値が、現在のラインから、予測に使用されるサンプル値を含むピクチャのライン(「参照ライン」)への変位を示す。オフセット値はビットストリームにおいて信号伝達され、デコーダは、オフセット値を使用して、予測に使用する参照ラインを決定することができる。 Intra LC mode generally uses intra LC prediction, where the sample values of the current line of the current block of the picture are predicted using the sample values in the same picture. The offset value indicates the displacement from the current line to the line of the picture (“reference line”) that contains the sample values used for prediction. The offset value is signaled in the bitstream and the decoder can use the offset value to determine the reference line to use for the prediction.

図15は、現在ピクチャの現在のブロック(1530)のラインに対するイントラLC予測の一例(1500)を示している。現在のブロックは、CUのCB、PUのPB、TUのTB、又は他のブロックであり得る。現在のブロックのサイズは、64×64、32×32、16×16、8×8、又は他の何らかのサイズであり得る。より一般には、現在のブロックのサイズはm×nであり、m及びnは各々整数であり、m及びnは互いに等しいことが可能であり、又は異なる値を有することができる。従って、現在のブロックは正方形又は長方形であり得る。イントラLC予測について、ブロックは水平ライン又は垂直ラインへと分割される。水平ラインは1サンプル分の高さを有し、現在のブロックの幅を有する。垂直ラインは1サンプル分の幅を有し、現在のブロックの高さを有する。 FIG. 15 shows an example (1500) of an intra-LC prediction for the line of the current block (1530) of the current picture. The current block can be CB of CU, PB of PU, TB of TU, or other block. The size of the current block can be 64x64, 32x32, 16x16, 8x8, or some other size. More generally, the size of the current block is m × n, m and n are integers, respectively, and m and n can be equal to each other or have different values. Therefore, the current block can be square or rectangular. For intra LC prediction, the block is divided into horizontal or vertical lines. The horizontal line has the height of one sample and has the width of the current block. The vertical line has the width of one sample and has the height of the current block.

図15では、第1のオフセット(1551)が、現在のブロック(1530)の第1のライン(1541)から、第1のライン(1541)の予測に使用されるサンプル値を含む参照ライン(1561)への変位を示す。参照ラインは所与のラインと同一であることができ、又は所与のラインの近似であることができる。第2のオフセット(1552)が、現在のブロック(1530)の第2のライン(1542)から、第2のライン(1542)の予測に使用されるサンプル値を含む参照ライン(1562)への変位を示す。オフセット値(1551、1552)は、現在ピクチャ内における変位を示すという点でBV値と類似している。図15は水平ラインを示しているが、現在のブロック(1530)はその代わりに、イントラLC予測のために垂直ラインへと分割することができる。ブロック毎、ユニット毎、又はピクチャ毎のシンタックス要素が、イントラLC予測について水平ラインが使用されるか又は垂直ラインが使用されるかを示すことができる。 In FIG. 15, the first offset (1551) is from the first line (1541) of the current block (1530) to the reference line (1561) containing the sample values used to predict the first line (1541). ) Indicates the displacement. The reference line can be the same as a given line, or it can be an approximation of a given line. The second offset (1552) is the displacement of the current block (1530) from the second line (1542) to the reference line (1562) containing the sample values used to predict the second line (1542). Is shown. The offset values (1551, 1552) are similar to the BV values in that they now indicate the displacement in the picture. Although FIG. 15 shows a horizontal line, the current block (1530) can instead be split into vertical lines for intra-LC prediction. A block-by-block, unit-by-unit, or picture-by-picture syntax element can indicate whether horizontal or vertical lines are used for intra-LC prediction.

イントラLC予測は、LC動作を使用して冗長性(ピクチャ内部の繰返しパターンなど)を活用することによって、符号化効率を改善することができる。WPPが使用可能にされていない場合、候補参照ラインは、現在ピクチャの再構成されたコンテンツ内のいずれかの場所であり得る。候補参照ラインは、他の候補参照ラインと重なり合う場合がある。いくつかの例示的な実装では、参照ラインは、現在のラインと同じスライス及びタイル内であるように制約される。参照ラインの場所は、後述するように、1つ以上の他の制約、例えばWPPが使用可能にされるときの制約の対象であってもよい。 Intra LC prediction can improve coding efficiency by utilizing redundancy (such as a repeating pattern inside a picture) using LC operation. If WPP is not enabled, the candidate reference line can be anywhere in the reconstructed content of the current picture. The candidate reference line may overlap with other candidate reference lines. In some exemplary implementations, the reference line is constrained to be in the same slice and tile as the current line. The location of the reference line may be subject to one or more other constraints, such as when WPP is enabled, as described below.

一般に、イントラSCモードは、ピクチャの現在のブロックの現在のストリングのサンプル値が同じピクチャ内のサンプル値を使用して予測される、イントラSC予測を使用する。オフセット値が、現在のストリングから、予測に使用されるサンプル値を含むピクチャのストリング(「参照ストリング」)への変位を示す。ストリング長さ値が、サンプル値の観点でストリングの長さを示す。オフセット値及びストリング長さ値はビットストリームにおいて信号伝達され、デコーダは、オフセット値及びストリング長さ値を使用して、予測に使用する参照ストリングを決定することができる。 Intra SC mode generally uses intra SC prediction, where the sample values of the current string in the current block of the picture are predicted using the sample values in the same picture. The offset value indicates the displacement from the current string to the string (“reference string”) of the picture that contains the sample values used for prediction. The string length value indicates the length of the string in terms of the sample value. The offset and string length values are signaled in the bitstream, and the decoder can use the offset and string length values to determine the reference string to use for prediction.

図16は、現在ピクチャの現在のブロック(1630)のストリングに対するイントラSC予測の一例(1600)を示している。現在のブロックは、CUのCB、PUのPB、TUのTB、又は他のブロックであり得る。現在のブロックのサイズは、64×64、32×32、16×16、8×8、又は他の何らかのサイズであり得る。より一般には、現在のブロックのサイズはm×nであり、m及びnは各々整数であり、m及びnは互いに等しいことが可能であり、又は異なる値を有することができる。従って、現在のブロックは正方形又は長方形であり得る。イントラSC予測について、ブロックは1つ以上のストリングへと分割される。図16では、現在のブロック(1630)は3つのストリングへと分割される。ブロックのストリングは、所与の行内で左から右に、次いで次の行、またその後も同様に、水平方向にスキャンすることが可能である。或いは、ブロックのストリングは、所与の列内で上から下に、次いで次の行、またその後も同様に、垂直方向にスキャンすることが可能である。図16のストリングは水平方向にスキャンされている。 FIG. 16 shows an example (1600) of intra-SC predictions for the string of the current block (1630) of the current picture. The current block can be CB of CU, PB of PU, TB of TU, or other block. The size of the current block can be 64x64, 32x32, 16x16, 8x8, or some other size. More generally, the size of the current block is m × n, m and n are integers, respectively, and m and n can be equal to each other or have different values. Therefore, the current block can be square or rectangular. For intra SC prediction, the block is divided into one or more strings. In FIG. 16, the current block (1630) is divided into three strings. The string of blocks can be scanned horizontally from left to right within a given line, then to the next line, and so on. Alternatively, the blocks' strings can be scanned vertically from top to bottom, then to the next row, and so on in a given column. The string in FIG. 16 is scanned horizontally.

図16では、第1のオフセット(1651)が、現在のブロック(1630)の第1のストリング(1641)から、第1のストリング(1641)の予測に使用されるサンプル値を含む参照ストリング(1661)への変位を示す。第1のストリング(1641)及び対応する参照ストリング(1661)の各々の長さは、6サンプル値である。参照ストリングは所与のストリングと同一であることができ、又は所与のストリングの近似であることができる。第2のオフセット(1652)が、現在のブロック(1630)の第2のストリング(1642)から、第2のストリング(1642)の予測に使用されるサンプル値を含む参照ストリング(1662)への変位を示す。第2のストリング(1642)及び対応する参照ストリング(1662)の各々の長さは、14サンプル値である。44サンプルの長さを有する、現在のブロック(1630)の第3のストリングに対しては、オフセットが示されていない。BV値と同じく、オフセット値(1651、1652)は、現在ピクチャ内における変位を示す。図16は水平方向のスキャンを示しているが、現在のブロック(1630)はその代わりに、イントラSC予測のために垂直方向にスキャンされるストリングへと分割することができる。ブロック毎、ユニット毎、又はピクチャ毎のシンタックス要素が、イントラSC予測について水平方向のスキャン順序が使用されるか又は垂直方向のスキャン順序が使用されるかを示すことができる。 In FIG. 16, the first offset (1651) is from the first string (1641) of the current block (1630) to a reference string (1661) containing sample values used to predict the first string (1641). ) Indicates the displacement. The length of each of the first string (1641) and the corresponding reference string (1661) is a 6-sample value. The reference string can be the same as a given string, or it can be an approximation of a given string. The second offset (1652) is the displacement of the current block (1630) from the second string (1642) to the reference string (1662) containing the sample values used to predict the second string (1642). Is shown. The length of each of the second string (1642) and the corresponding reference string (1662) is 14 sample values. No offset is shown for the third string of the current block (1630), which has a length of 44 samples. Like the BV value, the offset values (1651, 1652) now indicate the displacement in the picture. Although FIG. 16 shows a horizontal scan, the current block (1630) can instead be split into strings that are scanned vertically for intra-SC prediction. A block-by-block, unit-by-unit, or picture-by-picture syntax element can indicate whether a horizontal scan order is used or a vertical scan order is used for intra-SC prediction.

イントラSC予測は、SC動作を使用して冗長性(ピクチャ内部の繰返しパターンなど)を活用することによって、符号化効率を改善することができる。イントラSC予測は、イントラBC予測又はイントラLC予測よりも柔軟性が高い(固定の区分だけでなく任意のストリングへの区分化を許容する)が、より多くの情報(オフセット値に加えてストリング長さ値)を信号伝達する。WPPが使用可能にされていない場合、候補参照ストリングは、現在ピクチャの再構成されたコンテンツ内のいずれかの場所であり得る。候補参照ストリングは、他の候補参照ストリングと重なり合う場合がある。いくつかの例示の実装では、参照ストリングは、現在のストリングと同じスライス及びタイル内に制約される。参照ストリングの場所は、後述するように、1つ以上の他の制約、例えばWPPが使用可能にされるときの制約の対象であってもよい。 Intra SC prediction can improve coding efficiency by utilizing redundancy (such as a repeating pattern inside a picture) using SC operation. Intra SC predictions are more flexible than Intra BC or Intra LC predictions (allowing division into arbitrary strings as well as fixed divisions), but with more information (offset value plus string length). Signal transmission. If WPP is not enabled, the candidate reference string can be anywhere in the reconstructed content of the current picture. Candidate reference strings may overlap with other candidate reference strings. In some exemplary implementations, the reference string is constrained within the same slices and tiles as the current string. The location of the reference string may be subject to one or more other constraints, such as when WPP is enabled, as described below.

イントラBCモード、イントラLCモード、又はイントラSCモードに対するイントラコピー予測動作は、CB(BV値若しくは他のオフセット値が、CB若しくはその一部毎に信号伝達されるとき)、又はPB(BV値若しくは他のオフセットが、PB若しくはその一部毎に信号伝達されるとき)のレベルで適用することができる。この場合、参照領域は、現在の領域、又は現在の領域を含むブロックと重なり合わないように制約される。或いは、イントラコピー予測動作は、BV値又は他のオフセット値がPB若しくはCB(又はその一部)に対して信号伝達されるときであっても、PB又はCB内のより小さいセクションに対して適用することができる。例えば、ブロックの第1のセクションについて、参照領域はブロック外の位置を含む。しかしながら、ブロックの第2のセクションについて、イントラコピー予測動作に使用される参照領域は、同じブロックの事前に再構成された第1のセクション内の位置を含むことができる。このように、BV値又はオフセット値は、同じPB又はCB内の位置を参照することができる。イントラコピー予測動作をPB又はCB内のセクションに適用できるようにすることは、比較的小さい大きさのBV値又は他のオフセットの使用を容易にする。 The intracopy prediction operation for the intraBC mode, the intraLC mode, or the intraSC mode is CB (when a BV value or other offset value is signaled for each CB or a part thereof), or PB (BV value or Other offsets can be applied at the level (when signaled per PB or part thereof). In this case, the reference area is constrained so as not to overlap the current area or the block containing the current area. Alternatively, the intracopy prediction operation applies to smaller sections within the PB or CB, even when the BV value or other offset value is signaled to the PB or CB (or part thereof). can do. For example, for the first section of the block, the reference area includes a position outside the block. However, for the second section of the block, the reference area used for the intracopy prediction operation can include a position within the pre-reconstructed first section of the same block. In this way, the BV value or offset value can refer to a position within the same PB or CB. Allowing intracopy prediction behavior to be applied to sections within PBs or CBs facilitates the use of relatively small magnitude BV values or other offsets.

現在のユニット内の現在の領域に対する参照領域が同じユニット内の位置を含む場合、エンコーダが、(同じスライス及び同じタイル内にある)現在の領域及び参照領域のzスキャン順序を考慮することによって、BV値又は他のオフセット値の妥当性をチェックすることができる。例えば、エンコーダは、参照領域の右下位置(x+offset+m−1,y+offset+n−1)を含むブロックのzスキャン順序が、現在領域の左上位置(x,y)を含むブロックのzスキャン順序より小さいことをチェックし、これにおいて、offsetはオフセット値を示し、現在領域及び参照領域は寸法m×nを有する。その場合、参照領域の右下位置を含むブロックは事前に再構成されている(また従って、参照領域の残りもそうである)。エンコーダは、オフセット値が条件offset+m≦0及びoffset+n≦0のうち少なくとも1つを満たすことをさらにチェックして、参照領域が現在の領域に重ならないことを確保することができる。 If the reference area with respect to the current area in the current unit contains a position within the same unit, the encoder considers the z-scan order of the current area and reference area (in the same slice and tile). The validity of the BV value or other offset value can be checked. For example, in the encoder, the z-scan order of the block including the lower right position (x 0 + offset x + m-1, y 0 + offset y + n-1) of the reference area is the upper left position (x 0 , y 0 ) of the current area. Checked to be smaller than the z-scan order of the containing blocks, in which the offset indicates an offset value and the current region and the reference region have dimensions m × n. In that case, the block containing the lower right position of the reference area has been pre-constructed (and thus the rest of the reference area). The encoder can further check that the offset value satisfies at least one of the conditions offset x + m ≦ 0 and offset y + n ≦ 0 to ensure that the reference region does not overlap the current region.

一般に、zスキャン順序は、ピクチャを区分するユニットの、連続的に指定された順序付けに従う。図17は、現在の領域(1730)、及び参照領域の右下位置を含むことがあるユニットに対する、例示的なzスキャン順序(1700)を示している。現在の領域(1730)は、CB、PB、若しくは他のブロック、ライン、又はストリングを含む長方形であり得る。zスキャン順序は、一般に、行内で左から右へと連続的にユニットに割り当てられ、続く行において上から下へと繰り返される。ユニットが分割されると、zスキャン順序は分割ユニット内で再帰的に割り当てられる。H.265/HEVC規格のエンコーディング/デコーディングの実装の場合、zスキャン順序は、CTUラスタスキャンパターン(CTU行内で左から右、続くCTU行で上から下へと繰り返す)に沿ってCTUからCTUへ進行する。CTUが分割される場合、zスキャン順序は、分割されたCTU内の四分木のCUに対するラスタスキャンパターンに従う。また、CUが(例えば、複数のCUへ、又は複数のPUへと)分割される場合、zスキャン順序は、分割されたCU内のブロックに対するラスタスキャンパターンに従う。 In general, the z-scan order follows a continuously specified order of the units that separate the pictures. FIG. 17 shows an exemplary z-scan sequence (1700) for a unit that may include the current region (1730) and the lower right position of the reference region. The current region (1730) can be a rectangle containing CB, PB, or other blocks, lines, or strings. The z-scan sequence is generally assigned to units continuously from left to right within a row and repeated from top to bottom in subsequent rows. When a unit is split, the z-scan order is recursively assigned within the split unit. H. For 265 / HEVC standard encoding / decoding implementations, the z-scan sequence progresses from CTU to CTU along the CTU raster scan pattern (left to right within the CTU line, then top to bottom on the CTU line). To do. If the CTU is split, the z-scan order follows a raster scan pattern for the CU of the quadtree within the split CTU. Also, if the CU is split (eg, into multiple CUs, or into multiple PUs), the z-scan order follows a raster scan pattern for the blocks in the split CU.

いくつかの例示的な実装では、BV値又は他のオフセット値が、CU、PU、又は他のユニットに対して信号伝達され、ユニットの全てのブロックに適用される。色空間及び色サンプリングレートに依存して、BV値又は他のオフセット値は、スケーリングせずに全てのブロックに使用することができ、又は異なる色成分のブロックに対してスケーリングすることができる。或いは、異なるBV値又は他のオフセット値が、ユニットの異なるブロックに対して信号伝達されることができる。いくつかの例示的な実装では、同じ予測モード(例えば、イントラBCモード)がユニットの全てのブロックに適用される。或いは、異なるブロックが異なる予測モードを有することができる。 In some exemplary implementations, the BV value or other offset value is signaled to the CU, PU, or other unit and applied to all blocks of the unit. Depending on the color space and color sampling rate, the BV value or other offset value can be used for all blocks without scaling, or can be scaled for blocks with different color components. Alternatively, different BV values or other offset values can be signaled to different blocks of the unit. In some exemplary implementations, the same prediction mode (eg, intra BC mode) applies to all blocks of the unit. Alternatively, different blocks can have different prediction modes.

E.WPPが使用可能にされるときのイントラコピー予測に関する制約
一般に、イントラBC予測、イントラLC予測、及びイントラSC予測は、ピクチャ内の事前に再構成されたサンプル値を使用して、同じピクチャの現在のブロック、ライン、又はストリングのサンプル値を予測する。規則として、WPPが使用可能にされるときの事前に再構成されたサンプル値を含むピクチャのエリアは、WPPが使用可能にされないときの事前に再構成されたサンプル値を含むピクチャのエリアとは異なる。イントラコピー予測について、参照領域の場所に対するいくつかの制約が、WPPが使用可能にされるか否かにかかわらず強制される。参照領域の場所に対する1つ以上の他の制約が、WPPが使用可能にされるときに適用される。参照領域の場所に対する制約は、イントラBC予測について許容されるBV値に対する制限、又はイントラLC予測若しくはイントラSC予測について許容されるオフセット値に対する制限の形態をとることができる。
E. Constraints on Intracopy Prediction When WPP Is Enabled In general, Intra BC Prediction, Intra LC Prediction, and Intra SC Prediction use pre-reconstructed sample values in the picture to present the same picture. Predict sample values for blocks, lines, or strings. As a rule, the area of the picture that contains the pre-reconstructed sample values when WPP is enabled is the area of the picture that contains the pre-reconstructed sample values when WPP is not enabled. different. For intracopy prediction, some restrictions on the location of the reference area are enforced regardless of whether WPP is enabled or not. One or more other constraints on the location of the reference area apply when WPP is enabled. The constraint on the location of the reference region can take the form of a limit on the BV value allowed for the intra BC prediction, or a limit on the offset value allowed for the intra LC or intra SC prediction.

図18は、いくつかの例示的な実装による、WPPが使用可能にされるときのピクチャ(1810)の現在領域(1830)についての参照領域の場所に対する制約の一例(1800)を示している。ピクチャ(1810)はCTU行及びCTU列によって編成される。 FIG. 18 shows an example (1800) of constraints on the location of the reference area for the current area (1830) of the picture (1810) when WPP is enabled, with some exemplary implementations. The picture (1810) is organized by CTU rows and CTU columns.

現在の領域(1830)は、イントラコピーモードを用いてエンコードされ、又はデコードされる。現在の領域(1830)は現在のCTUの一部である。現在のCTUに関して、依存関係は前のCTU行からカスケードする。WPPが使用可能にされるとき、現在のCTUの処理を開始するのに、同じ行内でその左側にあるCTUは処理されており、右上のCTUまでの前の行内のCTUは処理されている。同様に、これらの既に処理されたCTUのいずれか1つについて、同じ行内で左側にあるCTUと右上のCTUまでの前の行内のCTUとは、処理されている。図18に示されるように、これらの事前に処理されたCTUは、WPPが使用可能にされるときにイントラコピー予測に利用可能であることを保証された、再構成されたコンテンツを提供する。 The current region (1830) is encoded or decoded using the intracopy mode. The current region (1830) is part of the current CTU. For the current CTU, the dependencies cascade from the previous CTU row. When the WPP is enabled, the CTU on the left side of the current CTU is being processed and the CTU in the previous line up to the CTU on the upper right is being processed to start processing the current CTU. Similarly, for any one of these already processed CTUs, the CTU on the left in the same row and the CTU in the previous row up to the CTU on the upper right are processed. As shown in FIG. 18, these pre-processed CTUs provide reconstructed content that is guaranteed to be available for intracopy prediction when WPP is enabled.

図18は、現在ピクチャ(1810)の現在の領域(1830)に対する候補参照領域のいくつかを示している。4つのオフセット値(1841、1842、1843、1844)が、4つの参照領域に関する変位を示す。候補参照領域は、他の候補参照領域と重なり合う場合がある。候補参照領域は、現在ピクチャ(1810)の再構成されたコンテンツ内のいずれかの場所であり得る。WPPが使用可能にされないとき、現在ピクチャ(1810)の再構成されたコンテンツは、一般に、現在のCTUの左側のCTU、及び前のCTU行の全てのCTUを含む。しかしながら、WPPが使用可能にされるとき、図18に示されるように、利用可能な再構成されたコンテンツはより少ない。図18では、オフセット値のうち3つ(1841、1842、1843)は有効な参照領域を示す。これらの有効な参照領域は、WPPが使用可能にされるときにイントラコピー予測に利用可能であることを保証された、再構成されたコンテンツ内のサンプル値のみを含む。オフセット値の1つ(1844)は無効の参照領域を示し、該領域は、WPPが使用可能にされるときにイントラコピー予測に利用可能であることを保証された、再構成されたコンテンツの、外側の少なくともいくつかのサンプル値を含む。 FIG. 18 shows some of the candidate reference regions for the current region (1830) of the current picture (1810). The four offset values (1841, 1842, 1843, 1844) indicate the displacements for the four reference regions. The candidate reference area may overlap with other candidate reference areas. The candidate reference area can be anywhere in the reconstructed content of the current picture (1810). When WPP is not enabled, the reconstructed content of the current picture (1810) generally includes the CTU to the left of the current CTU and all CTUs in the previous CTU row. However, when WPP is enabled, less reconstructed content is available, as shown in FIG. In FIG. 18, three of the offset values (1841, 1842, 1843) indicate a valid reference region. These valid reference areas contain only sample values in the reconstructed content that are guaranteed to be available for intracopy prediction when WPP is enabled. One of the offset values (1844) indicates an invalid reference area of the reconstructed content, which is guaranteed to be available for intracopy prediction when WPP is enabled. Includes at least some outer sample values.

1.WPPが使用可能にされるときのイントラコピーモードに対する制約を用いるエンコード及びデコード
図19は、WPPが使用可能にされるときにイントラコピーモードに対して規則が強制される、エンコーディングのための一般化された技術(1900)を示している。図3又は図5a及び図5bに示されるエンコーダ、又は他のエンコーダなどのエンコーダが、技術(1900)を実施することができる。図20は、WPPが使用可能にされるときにイントラコピーモードに対して規則が強制される、デコーディングのための一般化された技術(2000)を示している。図4又は図6に示されるデコーダ、又は他のデコーダなどのデコーダが、技術(2000)を実施することができる。
1. 1. Encoding and decoding with constraints on intracopy mode when WPP is enabled Figure 19 is a generalization for encoding where rules are enforced for intracopy mode when WPP is enabled. It shows the technology (1900). Encoders such as the encoders shown in FIG. 3 or FIGS. 5a and 5b, or other encoders, can implement the technique (1900). FIG. 20 shows a generalized technique (2000) for decoding, where rules are enforced for intracopy mode when WPP is enabled. A decoder such as the decoder shown in FIG. 4 or FIG. 6, or another decoder, can carry out technique (2000).

図19を参照すると、エンコーダが、WPPが使用可能にされた状態でピクチャをエンコードする(1910)。エンコード(1910)は、エンコードされたデータを生成する。エンコーディング(1910)の一部として、イントラコピーモード(例えば、イントラBC予測、イントラLC予測、又はイントラSC予測を使用するモード)について、エンコーダは、WPPに起因する1つ以上の制約を強制する。エンコーダは、エンコードされたデータをビットストリームの一部として出力する(1920)。 With reference to FIG. 19, the encoder encodes the picture with WPP enabled (1910). Encoding (1910) produces encoded data. As part of the encoding (1910), for intracopy modes (eg, modes that use intraBC prediction, intraLC prediction, or intraSC prediction), the encoder enforces one or more constraints due to WPP. The encoder outputs the encoded data as part of a bitstream (1920).

図20を参照すると、デコーダが、エンコードされたデータをビットストリームの一部として受信する(2010)。エンコードされたデータは、イントラコピーモード(例えば、イントラBC予測、イントラLC予測、又はイントラSC予測を使用するモード)について、WPPに起因する1つ以上の制約を満たす。デコーダは、WPPが使用可能にされた状態で、エンコードされたデータをデコードする(2020)。デコーディング(2020)は、ピクチャを再構成する。 Referring to FIG. 20, the decoder receives the encoded data as part of a bitstream (2010). The encoded data meets one or more restrictions due to WPP for the intracopy mode (eg, a mode that uses intraBC prediction, intraLC prediction, or intraSC prediction). The decoder decodes the encoded data with WPP enabled (2020). Decoding (2020) reconstructs the picture.

ビットストリーム内のシンタックス要素が、ビデオシーケンス、ピクチャのセット、又はピクチャについてWPPが使用可能にされるかを示すことができる。シンタックス要素は、SPSシンタックス構造、PPSシンタックス構造(例えば、H.265/HEVCの実装におけるシンタックス要素entropy_coding_sync_enabled_flag)、又はビットストリーム内の他のシンタックス構造において信号伝達することができる。 A syntax element in the bitstream can indicate whether WPP is enabled for a video sequence, set of pictures, or pictures. The syntax element can be signaled in the SPS syntax structure, the PPS syntax structure (eg, the syntax element entropy_coding_sync_enable_flag in the implementation of H.265 / HEVC), or other syntax structures in the bitstream.

イントラコピーモードはイントラBCモードであり得る。この場合、ピクチャ内の現在のブロックについて、オフセット値がピクチャ内の参照ブロックへの変位を示す。参照ブロックは事前に再構成されたサンプル値を含む。或いは、イントラコピーモードはイントラLCモードであり得る。この場合、ピクチャのブロック内の現在のラインについて、オフセット値がピクチャ内の参照ラインへの変位を示す。参照ラインは、水平又は垂直方向であり得るラインスキャン方向でスキャンされた、事前に再構成されたサンプル値を含む。或いは、イントラコピーモードはイントラSCモードであり得る。この場合、ピクチャのブロック内の現在のストリングについて、オフセット値がピクチャ内の参照ストリングへの変位を示す。参照ストリングは、水平又は垂直方向であり得るストリングスキャン順序でスキャンされた、事前に再構成されたサンプル値を含む。現在のストリングについて、長さ値が、現在のストリング及び参照ストリングの各々の長さを示す。或いは、イントラコピーモードは、ピクチャ内の現在のブロック、ライン、ストリング、又は他のセクションについて、同じピクチャ内の参照ブロック、ライン、ストリング、又は他のセクションを発見するのにオフセット値を使用する、他の何らかのモードであることができ、その場合、参照ブロック、ライン、ストリングなどは、事前に再構成されたサンプル値を含む。 The intra copy mode can be the intra BC mode. In this case, for the current block in the picture, the offset value indicates the displacement to the reference block in the picture. The reference block contains pre-reconstructed sample values. Alternatively, the intracopy mode can be the intraLC mode. In this case, for the current line in the block of the picture, the offset value indicates the displacement to the reference line in the picture. The reference line contains pre-reconstructed sample values scanned in a line scan direction that can be horizontal or vertical. Alternatively, the intracopy mode can be the intraSC mode. In this case, for the current string in the block of the picture, the offset value indicates the displacement to the reference string in the picture. The reference string contains pre-reconstructed sample values scanned in a string scan order that can be horizontal or vertical. For the current string, the length value indicates the length of each of the current string and the reference string. Alternatively, intracopy mode uses an offset value to find a reference block, line, string, or other section in the same picture for the current block, line, string, or other section in the picture. It can be in some other mode, in which case reference blocks, lines, strings, etc. contain pre-reconstructed sample values.

WPPに起因する制約は、参照領域から現在の領域への水平変位値が、現在の領域から参照領域への垂直変位値より小さいか又は等しいという制約を含むことができる。例えば、水平変位値は、参照領域の右端を含むWPP列から、現在の領域の左端を含むWPP列までの差を測定し、垂直変位値は、現在の領域の上端を含むWPP行から、参照領域の下端を含むWPP行までの差を測定する。いくつかの例示的な実装では、WPP列の各々はCTUの列であり、WPP行の各々はCTUの行である。或いは、WPPに起因する制約は、1つ以上の他の及び/又は追加の制約を含む。 Constraints due to WPP can include constraints that the horizontal displacement value from the reference region to the current region is less than or equal to the vertical displacement value from the current region to the reference region. For example, the horizontal displacement value measures the difference from the WPP column containing the right edge of the reference region to the WPP column containing the left edge of the current region, and the vertical displacement value is referenced from the WPP row containing the top edge of the current region. Measure the difference up to the WPP line, including the bottom edge of the region. In some exemplary implementations, each of the WPP columns is a CTU column and each of the WPP rows is a CTU row. Alternatively, the constraints due to WPP include one or more other and / or additional constraints.

イントラコピーモードがイントラBCモードである場合、現在の領域は現在のブロックであり、参照領域は参照ブロックである。イントラコピーモードがイントラLCモードである場合、現在の領域は現在のラインであり、参照領域は参照ラインである。イントラコピーモードがイントラSCモードである場合、現在の領域は現在のストリングを含む長方形であり、参照領域は参照ストリングを含む長方形である。エンコーダ又はデコーダは、ストリングスキャン順序(例えば、水平、垂直)における、現在のストリングの開始位置と、現在のストリングの終了位置と、現在のストリングの開始位置と終了位置との間の任意の位置とを含む、長方形を識別することができる。エンコーダ又はデコーダは、現在のストリングを含む長方形に適用されるオフセット値を使用して、参照ストリングを含む長方形を識別することができる。 When the intracopy mode is the intraBC mode, the current area is the current block and the reference area is the reference block. When the intracopy mode is the intraLC mode, the current area is the current line and the reference area is the reference line. When the intracopy mode is the intraSC mode, the current area is a rectangle containing the current string and the reference area is a rectangle containing the reference string. The encoder or decoder can be any position in the string scan order (eg, horizontal, vertical) between the current string start position and the current string end position, and the current string start and end positions. Can identify rectangles, including. The encoder or decoder can use the offset value applied to the rectangle containing the current string to identify the rectangle containing the reference string.

エンコーダはまた、WPPに起因しない1つ以上の他の制約を強制することができる。例えば、エンコーダは、現在の領域の左上位置及び参照領域の左上位置が、適用可能であれば同じスライス内に、また適用可能であれば同じタイル内にあることをチェックすることができる。別の例として、エンコーダは、現在の領域の左上位置及び参照領域の右下位置が、適用可能であれば同じスライス内に、また適用可能であれば同じタイル内にあることをチェックすることができる。更に別の例として、エンコーダは、次の3つの条件のうち1つが満たされることをチェックすることができる。(a)参照領域の下端を含むCTU行が、現在の領域の上端を含むCTU行の上であること、(b)参照領域の下端を含むCTU行が現在の領域の上端を含むCTU行に等しい場合、参照領域の右端を含むCTU列が現在の領域の左端を含むCTU列の左であること、及び(c)参照領域の下端を含むCTU行が現在の領域の上端を含むCTU行に等しい場合、及び参照領域の右端を含むCTU列が現在の領域の左端を含むCTU列に等しい場合、参照領域の右下位置がzスキャン順序において現在の領域の左上位置より早いこと。 Encoders can also enforce one or more other constraints that are not due to WPP. For example, the encoder can check that the upper left position of the current area and the upper left position of the reference area are in the same slice if applicable and in the same tile if applicable. As another example, the encoder can check that the upper left position of the current area and the lower right position of the reference area are in the same slice if applicable and in the same tile if applicable. it can. As yet another example, the encoder can check that one of the following three conditions is met: (A) The CTU line including the lower end of the reference area is above the CTU line including the upper end of the current area, and (b) the CTU line including the lower end of the reference area is the CTU line including the upper end of the current area. If they are equal, the CTU column containing the right edge of the reference area is to the left of the CTU column containing the left edge of the current area, and (c) the CTU row containing the bottom edge of the reference area is the CTU row containing the top edge of the current region. If they are equal, and if the CTU column containing the right edge of the reference area is equal to the CTU column containing the left edge of the current area, then the lower right position of the reference area is earlier than the upper left position of the current area in the z scan order.

以下のセクションは、いくつかの例示的な実装による、WPPが使用可能にされるときにエンコーダがイントラBC予測、イントラLC予測、及びイントラSC予測に対してそれぞれ強制することができる、制約の例について詳述する。 The following section is an example of the constraints, with some exemplary implementations, that the encoder can enforce on intra BC predictions, intra LC predictions, and intra SC predictions when WPP is enabled, respectively. Will be described in detail.

2.WPPが使用可能にされるときのイントラBC予測のBV値に対する例示的な制約
このセクションは、WPPが使用可能にされるときにエンコーダがイントラBC予測対して強制することができる、制約の例を詳述する。現在のブロックについて、制約は、BV値によって示される候補参照ブロックが、WPPが使用可能にされるときであっても現在のブロックがエンコード又はデコードされるとき利用可能になる再構成されたサンプル値を含むことを、検証する。
2. 2. Illustrative Constraints on BV Value of Intra BC Prediction When WPP Is Enabled This section is an example of the constraints that the encoder can enforce against the Intra BC Prediction when WPP is enabled. It will be described in detail. For the current block, the constraint is that the candidate reference block indicated by the BV value is a reconstructed sample value that becomes available when the current block is encoded or decoded, even when WPP is enabled. Verify that it contains.

定義。現在のブロックは、現在ピクチャの左上位置に対して、位置(x,y)から始まる。現在のブロックの幅及び高さはそれぞれ、wblock及びhblockである。現在のブロックは現在のCUの一部である。CTUサイズはSである。現在のCUは、ピクチャの左上位置に対して(xCU,yCU)から始まる。ブロックベクトルは(BV,BV)である。 Definition. The current block starts at the position (x 0 , y 0 ) with respect to the upper left position of the current picture. The width and height of the current block are w block and h block , respectively. The current block is part of the current CU. The CTU size is S. The current CU starts at (x CU , y CU ) with respect to the upper left position of the picture. The block vector is (BV x , BV y ).

エンコーダは、以下の制約の全てが満たされていることを検証する。 The encoder verifies that all of the following constraints are met:

第1の制約。エンコーダは、位置(x,y)及び位置(x+BV,y+BV)が、同じスライス内及び同じタイル内にあることを検証する。つまり、エンコーダは、現在のブロックの左上位置及び参照ブロックの左上位置が、同じスライス内及び同じタイル内にあることを検証する。2つの位置が異なるスライス又は異なるタイル内にある場合、第1の制約は満たされない。 The first constraint. The encoder verifies that the position (x 0 , y 0 ) and position (x 0 + BV x , y 0 + BV y ) are in the same slice and in the same tile. That is, the encoder verifies that the upper left position of the current block and the upper left position of the reference block are in the same slice and in the same tile. If the two positions are in different slices or different tiles, the first constraint is not met.

第2の制約。エンコーダは、位置(x,y)及び位置(x+BVx+wblock−1,y+BV+hblock−1)が、同じスライス及び同じタイル内にあることを検証する。つまり、エンコーダは、現在のブロックの左上位置及び参照ブロックの右下位置が、同じスライス内及び同じタイル内にあることを検証する。2つの位置が異なるスライス又は異なるタイル内にある場合、第2の制約は満たされない。 The second constraint. The encoder verifies that the position (x 0 , y 0 ) and position (x 0 + BVx + w block -1, y 0 + BV y + h block -1) are in the same slice and in the same tile. That is, the encoder verifies that the upper left position of the current block and the lower right position of the reference block are in the same slice and in the same tile. If the two positions are in different slices or different tiles, the second constraint is not met.

第1及び第2の制約に関して、複数のスライスが使用されない場合、チェックされる2つの位置は必然的に同じスライス内であり、スライスに対する第1及び第2の制約をチェックする必要はない。同様に、複数のタイルが使用されない場合、チェックされる2つの位置は必然的に同じタイル内であり、タイルに対する第1及び第2の制約をチェックする必要はない。現在のブロックの全ての位置が単一のスライス及び単一のタイル内にある。第1及び第2の制約が満たされる場合、参照ブロックの全ての位置もそのスライス及びタイル内にある。エンコーダは、WPPが使用可能にされるか否かにかかわらず、第1及び第2の制約をチェックする。 With respect to the first and second constraints, if multiple slices are not used, the two positions checked will necessarily be within the same slice and there is no need to check the first and second constraints on the slices. Similarly, if more than one tile is not used, the two positions checked are necessarily within the same tile and there is no need to check the first and second constraints on the tile. All positions of the current block are within a single slice and a single tile. If the first and second constraints are met, all positions of the reference block are also within its slices and tiles. The encoder checks the first and second constraints regardless of whether WPP is enabled.

第3の制約。第3の制約に関して、エンコーダは、以下の3つの条件のうち1つが満たされることを検証する。エンコーダは、WPPが使用可能にされるか否かにかかわらず、第3の制約をチェックする。 Third constraint. With respect to the third constraint, the encoder verifies that one of the following three conditions is met. The encoder checks for a third constraint regardless of whether WPP is enabled.

第3の制約の第1の条件。エンコーダは、(y+BV+hblock−1)/S<y/Sであるか否かをチェックする。つまり、エンコーダは、参照ブロックの下端を含むCTU行を算出する:(y+BV+hblock−1)/S。エンコーダはまた、現在のブロックの上端を含むCTU行を算出する:y/S。エンコーダは、次いで、参照ブロックの下端を含むCTU行が、現在のブロックの上端を含むCTU行の上であるか否かをチェックする。上側である場合、参照ブロックは必然的に、少なくともWPPが使用可能にされないとき、事前に再構成されたサンプル値を含む。 The first condition of the third constraint. The encoder checks whether or not (y 0 + BV y + h block -1) / S <y 0 / S. That is, the encoder calculates the CTU line including the bottom edge of the reference block: (y 0 + BV y + h block -1) / S. The encoder also calculates the CTU row containing the top edge of the current block: y 0 / S. The encoder then checks if the CTU row containing the bottom edge of the reference block is above the CTU row containing the top edge of the current block. When on the upper side, the reference block necessarily contains pre-reconstructed sample values, at least when WPP is not enabled.

第3の制約の第2の条件。(y+BV+hblock−1)/S==y/Sのとき、エンコーダは、(x+BV+wblock−1)/S<x/Sであるか否かをチェックする。つまり、参照ブロックの下端を含むCTU行が、現在のブロックの上端を含むCTU行に等しい場合(同じCTU行)、エンコーダは、(a)参照ブロックの右端を含むCTU列((x+BV+wblock−1)/S)、及び(b)現在のブロックの左端を含むCTU列(x/S)を算出する。エンコーダは、次いで、参照ブロックの右端を含むCTU列が、現在のブロックの左端を含むCTU列の左であるか否かをチェックする。左側である場合、参照ブロックは必然的に、事前に再構成されたサンプル値を含む。 The second condition of the third constraint. When (y 0 + BV y + h block -1) / S == y 0 / S, the encoder checks whether or not (x 0 + BV x + w block -1) / S <x 0 / S. That is, if the CTU row containing the bottom edge of the reference block is equal to the CTU row containing the top edge of the current block (same CTU row), the encoder will (a) have a CTU column containing the right edge of the reference block ((x 0 + BV x). + W block -1) / S), and (b) CTU column (x 0 / S) including the left edge of the current block are calculated. The encoder then checks if the CTU row containing the right edge of the reference block is to the left of the CTU row containing the left edge of the current block. On the left side, the reference block necessarily contains pre-reconstructed sample values.

第3の制約の第3の条件。(y+BV+hblock−1)/S==y/S及び(x+BV+wblock−1)/S==x/Sのとき、エンコーダは、位置(x+BV+wblock−1,yBV+hblock−1)のzスキャン順序が、位置(x,y)のzスキャン順序よりも小さいか否かをチェックする。つまり、参照ブロックの下端を含むCTU行が現在のブロックの上端を含むCTU行に等しい場合(同じCTU行)、及び参照ブロックの右端を含むCTU列が現在のブロックの左端を含むCTU列に等しい場合(同じCTU列)、エンコーダは、参照ブロックの右下位置がzスキャン順序において現在のブロックの左上位置より早いか否かをチェックする。第3の条件は、現在のCU内からの予測が許容される場合に適用される。現在のCU内からの予測が許容されない場合、(x,y)は(xCU,yCU)のはずである。 The third condition of the third constraint. When (y 0 + BV y + h block -1) / S == y 0 / S and (x 0 + BV x + w block -1) / S == x 0 / S, the encoder is in the position (x 0 + BV x + w). It is checked whether or not the z-scan order of block -1, y 0 + y BV + h block -1) is smaller than the z-scan order of the position (x 0 , y 0 ). That is, if the CTU row containing the bottom edge of the reference block is equal to the CTU row containing the top edge of the current block (same CTU row), and the CTU column containing the right edge of the reference block is equal to the CTU column containing the left edge of the current block. If (same CTU row), the encoder checks if the lower right position of the reference block is earlier in the z scan order than the upper left position of the current block. The third condition applies when predictions from within the current CU are acceptable. If predictions from within the current CU are unacceptable, then (x 0 , y 0 ) should be (x CU , y CU ).

第4の制約。エンコーダは、WPPが使用可能にされるときの第4の制約をチェックする。第4の制約に関して、エンコーダは、(x+BV+wblock−1)/S−x/S<=y/S−(y+BV+hblock−1)/Sであることを検証する。つまり、エンコーダは、参照ブロックの右端を含むCTU列と現在のブロックの左端を含むCTU列との差を算出する:(x+BV+wblock−1)/S−x/S。エンコーダはまた、現在のブロックの上端を含むCTU行と参照ブロックの下端を含むCTU行との差を算出する:y/S−(y+BV+hblock−1)/S。エンコーダは、第1の差(CTU列間)が第2の差(CTU行間)より小さいか又は等しいことを検証する。図8又は図18において現在のCTUから上側及び右側の、CTUのギザギザの線に示されるように、上記のことは、参照ブロックが、WPPが使用可能にされるときに予測に利用可能であることを保証された、再構成されたコンテンツの一部であることを検証する。 Fourth constraint. The encoder checks for a fourth constraint when WPP is enabled. Regarding the fourth constraint, the encoder verifies that (x 0 + BV x + w block -1) / S-x 0 / S <= y 0 / S- (y 0 + BV y + h block -1) / S. To do. That is, the encoder calculates the difference between the CTU column containing the right edge of the reference block and the CTU column containing the left edge of the current block: (x 0 + BV x + w block -1) / S-x 0 / S. The encoder also calculates the difference between the CTU line containing the top edge of the current block and the CTU line containing the bottom edge of the reference block: y 0 / S- (y 0 + BV y + h block -1) / S. The encoder verifies that the first difference (between CTU columns) is less than or equal to the second difference (between CTU rows). As shown in the jagged lines of the CTU above and to the right of the current CTU in FIG. 8 or 18, the above is available for prediction when the reference block is enabled for WPP. Verify that it is part of the guaranteed, reconstructed content.

3.WPPが使用可能にされるときのイントラLC予測のオフセット値に対する例示的な制約
このセクションは、WPPが使用可能にされるときにエンコーダがイントラLC予測に対して強制することができる、制約の例を詳述する。現在のラインについて、制約は、オフセット値によって示される候補参照ラインが、WPPが使用可能にされるときであっても現在のラインがエンコード又はデコードされるとき利用可能になる再構成されたサンプル値を含むことを、検証する。
3. 3. Illustrative Constraints on Intra LC Prediction Offset Values When WPP Is Enabled This section is an example of the constraints that the encoder can enforce on Intra LC Predictions when WPP is enabled. Will be described in detail. For the current line, the constraint is that the candidate reference line indicated by the offset value is a reconstructed sample value that becomes available when the current line is encoded or decoded, even when WPP is enabled. Verify that it contains.

定義。現在のブロックは、現在ピクチャの左上位置に対して、位置(x,y)から開始する。現在のブロックの幅及び高さはそれぞれ、wblock及びhblockである。現在のブロックは現在のCUの一部である。CTUサイズはSである。現在のラインに対するオフセット値は(offset,offset)である。現在のブロックのうちLラインが既に処理されている。 Definition. The current block starts at the position (x 0 , y 0 ) with respect to the upper left position of the current picture. The width and height of the current block are w block and h block , respectively. The current block is part of the current CU. The CTU size is S. The offset value for the current line is (offset x , offset y ). The L line of the current block has already been processed.

エンコーダは、現在のブロックの現在のラインの開始及び終了位置を定義する。位置(xcurr_line_start,ycurr_line_start)は現在のラインの開始位置であり、位置(xcurr_line_end,ycurr_line_end)は現在のラインの終了位置である。水平スキャン(行モードとも呼ばれる)が使用されるとき、あらゆるラインが現在のブロックの行である:(xcurr_line_start,ycurr_line_start)=(x,y+L)、及び(xcurr_line_end,ycurr_line_end)=(x+wblock−1,y+L)。垂直スキャン(列モードとも呼ばれる)が使用されるとき、あらゆるラインが現在のブロックの列である:(xcurr_line_start,ycurr_line_start)=(x+L,y)、及び(xcurr_line_end,ycurr_line_end)=(x+L,y+hblock−1)。 The encoder defines the start and end positions of the current line of the current block. The position (x curr_line_start , y curr_line_start ) is the start position of the current line, and the position (x curr_line_end , y curr_line_end ) is the end position of the current line. When horizontal scan (also called row mode) is used, every line is the row of the current block: (x curr_line_start , y curr_line_start ) = (x 0 , y 0 + L), and (x curr_line_end , y curr_line_end ). = (X 0 + w block -1, y 0 + L). When a vertical scan (also called column mode) is used, every line is the column of the current block: (x curr_line_start , y curr_line_start ) = (x 0 + L, y 0 ), and (x curr_line_end , y curr_line_end ). = (X 0 + L, y 0 + h block -1).

エンコーダはまた、現在のラインを予測する候補参照ラインの開始及び終了位置を定義する。位置(xref_line_start,yref_line_start)は参照ラインの開始位置である。位置(xref_line_end,yref_line_end)は参照ラインの終了位置である。参照ラインは、行(水平スキャンが使用されるとき)又は列(垂直スキャンが使用されるとき)であり得る。水平スキャン(行モード)又は垂直スキャン(列モード)が使用される:(xref_line_start,yref_line_start)=(xcurr_line_start,ycurr_line_start)+(offset,offset)、及び(xref_line_end,yref_end)=(xcurr_line_end,ycurr_line_end)+(offset,offset)。 The encoder also defines the start and end positions of the candidate reference line that predicts the current line. The position (x ref_line_start , y ref_line_start ) is the start position of the reference line. The position (x ref_line_end , y ref_line_end ) is the end position of the reference line. The reference line can be a row (when a horizontal scan is used) or a column (when a vertical scan is used). Horizontal scan (line mode) or vertical scan (column mode) is used: (x ref_line_start, y ref_line_start) = (x curr_line_start, y curr_line_start) + (offset x, offset y), and (x ref_line_end, y ref_end) = (X curr_line_end , y curr_line_end ) + (offset x , offset y ).

エンコーダは、以下の制約の全てが満たされていることを検証する。これらの制約のいくつかに関して、現在のブロックの左上位置(x,y)が考慮される。或いは、かかる制約に関して、現在のラインの開始位置(xcurr_line_start,ycurr_line_start)を、現在のブロックの左上位置(x,y)の代わりにチェックすることができる。 The encoder verifies that all of the following constraints are met: For some of these constraints, the upper left position of the current block (x 0 , y 0 ) is considered. Alternatively, for such constraints, the start position of the current line (x curr_line_start , y curr_line_start ) can be checked instead of the upper left position (x 0 , y 0 ) of the current block.

第1の制約。エンコーダは、位置(x,y)及び位置(xref_line_start,yref_line_start)が同じスライス内及び同じタイル内にあることを検証する。つまり、エンコーダは、現在のブロックの左上位置及び参照ラインの開始位置が、同じスライス内及び同じタイル内にあることを検証する。2つの位置が異なるスライス又は異なるタイル内にある場合、第1の制約は満たされていない。 The first constraint. The encoder verifies that the positions (x 0 , y 0 ) and positions (x ref_line_start , y ref_line_start ) are in the same slice and in the same tile. That is, the encoder verifies that the top left position of the current block and the start position of the reference line are in the same slice and in the same tile. If the two positions are in different slices or different tiles, the first constraint is not met.

第2の制約。エンコーダは、位置(x,y)及び位置(xref_line_end,yref_line_end)が同じスライス及び同じタイル内にあることを検証する。つまり、エンコーダは、現在のブロックの左上位置及び参照ラインの終了位置が、同じスライス内及び同じタイル内にあることを検証する。2つの位置が異なるスライス又は異なるタイル内にある場合、第2の制約は満たされない。 The second constraint. The encoder verifies that the positions (x 0 , y 0 ) and positions (x ref_line_end , y ref_line_end ) are in the same slice and in the same tile. That is, the encoder verifies that the top left position of the current block and the end position of the reference line are in the same slice and in the same tile. If the two positions are in different slices or different tiles, the second constraint is not met.

第1及び第2の制約に関して、複数のスライスが使用されない場合、チェックされる2つの位置は必然的に同じスライス内であり、スライスに関して第1及び第2の制約をチェックする必要はない。同様に、複数のタイルが使用されない場合、チェックされる2つの位置は必然的に同じタイル内であり、タイルに関して第1及び第2の制約をチェックする必要はない。現在のラインの全ての位置が、単一のスライス及び単一のタイル内にある。第1及び第2の制約が満たされる場合、参照ラインの全ての位置もそのスライス及びタイル内にある。エンコーダは、WPPが使用可能にされるか否かにかかわらず、第1及び第2の制約をチェックする。 With respect to the first and second constraints, if more than one slice is not used, the two positions checked are necessarily within the same slice and there is no need to check the first and second constraints with respect to the slices. Similarly, if multiple tiles are not used, the two positions checked will necessarily be within the same tile, and there is no need to check the first and second constraints on the tiles. All positions of the current line are within a single slice and a single tile. If the first and second constraints are met, all positions of the reference line are also within the slice and tile. The encoder checks the first and second constraints regardless of whether WPP is enabled.

第3の制約。第3の制約に関して、エンコーダは、以下の3つの条件の1つが満たされることを検証する。エンコーダは、WPPが使用可能にされるか否かにかかわらず、第3の制約をチェックする。 Third constraint. With respect to the third constraint, the encoder verifies that one of the following three conditions is met. The encoder checks for a third constraint regardless of whether WPP is enabled.

第3の制約の第1の条件。エンコーダは、yref_line_end/S<y/Sであるか否かをチェックする。つまり、エンコーダは、参照ラインの下端又は下位置を含むCTU行を算出する:yref_line_end/S。エンコーダはまた、現在のブロックの上端を含むCTU行を算出する:y/S。次いで、エンコーダは、参照ラインの下端又は下位置を含むCTU行が、現在のブロックの上端を含むCTU行の上であるか否かをチェックする。上側である場合、参照ラインは必然的に、少なくともWPPが使用可能にされないとき、事前に再構成されたサンプル値を含む。 The first condition of the third constraint. The encoder checks whether or not y ref_line_end / S <y 0 / S. That is, the encoder calculates a CTU line that includes the bottom or bottom position of the reference line: yref_line_end / S. The encoder also calculates the CTU row containing the top edge of the current block: y 0 / S. The encoder then checks if the CTU line, including the bottom or bottom of the reference line, is above the CTU line, including the top of the current block. When on the upper side, the reference line necessarily contains pre-reconstructed sample values, at least when WPP is not enabled.

第3の制約の第2の条件。yref_line_end/S==y/Sのとき、エンコーダは、xref_line_end/S<x/Sであるか否かをチェックする。つまり、参照ラインの下端又は下位置を含むCTU行が現在のブロックの上端を含むCTU行に等しい場合(同じCTU行)、エンコーダは、(a)参照ラインの右端又は右位置を含むCTU列(xref_line_end/S)、及び(b)現在のブロックの左端を含むCTU列(x/S)を算出する。次いで、エンコーダは、参照ラインの右端又は右位置を含むCTU列が、現在のブロックの左端を含むCTU列の左であるか否かをチェックする。左側である場合、参照ラインは必然的に、事前に再構成されたサンプル値を含む。 The second condition of the third constraint. When y ref_line_end / S == y 0 / S, the encoder checks whether or not x ref_line_end / S <x 0 / S. That is, if the CTU row containing the bottom or bottom of the reference line is equal to the CTU row containing the top of the current block (same CTU row), the encoder will (a) have the CTU column containing the right edge or right position of the reference line (a). x ref_line_end / S), and (b) the CTU column (x 0 / S) including the left edge of the current block. The encoder then checks if the CTU row containing the right edge or right position of the reference line is to the left of the CTU row containing the left edge of the current block. On the left side, the reference line necessarily contains pre-reconstructed sample values.

第3の制約の第3の条件。yref_line_end/S==y/S及びxref_line_end/S==x/Sのとき、エンコーダは、位置(xref_line_end,yref_line_end)のzスキャン順序が、位置(xcurr_line_start,ycurr_line_start)のzスキャン順序より小さいか否かをチェックする。つまり、参照ラインの下端又は下位置を含むCTU行が現在のブロックの上端を含むCTU行に等しく(同じCTU行)、参照ラインの右端又は右位置を含むCTU列が現在のブロックの左端を含むCTU列に等しい場合(同じCTU列)、エンコーダは、参照ラインの終了位置がzスキャン順序において現在のラインの開始位置より早いか否かをチェックする。第3の条件は、現在のCU内からの予測が許容される場合に適用される。現在のCU内からの予測が許容されない場合、(xcurr_line_start,ycurr_line_start)は(x,y)であるべきである。 The third condition of the third constraint. When y ref_line_end / S == y 0 / S and x ref_line_end / S == x 0 / S, encoder position (x ref_line_end, y ref_line_end) z scan order of the position (x curr_line_start, y curr_line_start) of Check if it is smaller than the z scan order. That is, the CTU row containing the bottom or bottom of the reference line is equal to the CTU row containing the top of the current block (same CTU row), and the CTU column containing the right edge or right position of the reference line contains the left edge of the current block. If equal to the CTU row (same CTU row), the encoder checks if the end position of the reference line is earlier than the start position of the current line in the z-scan order. The third condition applies when predictions from within the current CU are acceptable. If predictions from within the current CU are unacceptable, then (x curr_line_start , y curr_line_start ) should be (x 0 , y 0 ).

第4の制約。エンコーダは、WPPが使用可能にされるときの第4の制約をチェックする。第4の制約に関して、エンコーダは、xref_line_end/S−x/S<=y/S−yref_line_end/Sであることを検証する。つまり、エンコーダは、参照ラインの右端又は右位置を含むCTU列と現在のブロックの左端を含むCTU列との差を算出する:xref_line_end/S−x/S。エンコーダはまた、現在のブロックの上端を含むCTU行と参照ラインの下端又は下位置を含むCTU行との差を算出する:y/S−yref_line_end/S。エンコーダは、第1の差(CTU列間)が第2の差(CTU行間)より小さいか又は等しいことを検証する。 Fourth constraint. The encoder checks for a fourth constraint when WPP is enabled. With respect to the fourth constraint, the encoder verifies that x ref_line_end / S-x 0 / S <= y 0 / S-y ref_line_end / S. That is, the encoder calculates the difference between the CTU column containing the right edge or right position of the reference line and the CTU column containing the left edge of the current block: x ref_line_end / S-x 0 / S. The encoder also calculates the difference between the CTU line containing the top edge of the current block and the CTU line containing the bottom or bottom of the reference line: y 0 / S-y ref_line_end / S. The encoder verifies that the first difference (between CTU columns) is less than or equal to the second difference (between CTU rows).

4.WPPが使用可能にされるときのイントラSC予測のオフセット値に対する例示的な制約
このセクションは、WPPが使用可能にされるときにイントラSC予測に対してエンコーダが強制することができる、制約の例を詳述する。現在のストリングについて、制約は、オフセット値及び長さ値によって示される候補参照ストリングが、WPPが使用可能にされるときであっても現在のストリングがエンコード又はデコードされるとき利用可能になる再構成されたサンプル値を含むことを、検証する。
4. Illustrative Constraints on Intra SC Prediction Offset Values When WPP Is Enabled This section is an example of the constraints that the encoder can enforce on intra SC Predictions when WPP is enabled. Will be described in detail. For the current string, the constraint is that the candidate reference string indicated by the offset and length values will be available when the current string is encoded or decoded, even when WPP is enabled. Verify that the sample values are included.

定義。現在のブロックは、現在ピクチャの左上位置に対して、位置(x,y)から始まる。現在のブロックの幅及び高さはそれぞれ、wblock及びhblockである。現在のブロックは現在のCUの一部である。CTUサイズはSである。現在のストリングに対するオフセット値は(offset,offset)であり、現在のストリングに対するストリング長さ値はlengthstringである。現在のブロックのうちKピクセルが、イントラSC予測を使用して既に処理されている。 Definition. The current block starts at the position (x 0 , y 0 ) with respect to the upper left position of the current picture. The width and height of the current block are w block and h block , respectively. The current block is part of the current CU. The CTU size is S. The offset value for the current string is (offset x , offset y ) and the string length value for the current string is length string . K pixels of the current block have already been processed using intra-SC prediction.

エンコーダは、現在のブロックの現在のストリングの開始及び終了位置を定義する。位置(xcurr_string_start,ycurr_string_start)は現在のストリングの開始位置であり、位置(xcurr_string_end,ycurr_string_end)は現在のストリングの終了位置である。エンコーダはまた、現在のストリングの開始位置と、現在のストリングの終了位置と、(ストリングスキャン順序において)現在のストリングの開始及び終了位置の間の任意の位置とを含む、境界長方形を定義する。境界長方形の左上位置は(xcurr_rect_TL,ycurr_rect_TL)である。境界長方形の右下位置は(xcurr_rect_BR,ycurr_rect_BR)である。エンコーダは、(参照ストリングを含む)参照長方形を、オフセット値で変位された境界長方形として定義する。参照長方形の左上位置は(xref_rect_TL,yref_rect_TL)である。境界長方形の右下位置は(xref_rect_BR,yref_rect_BR)である。 The encoder defines the start and end positions of the current string in the current block. Position (x curr _ string _ start, y curr_string_start) is the start position of the current string, position (x curr_string_end, y curr_string_end) is the end position of the current string. The encoder also defines a bounding rectangle that includes the start position of the current string, the end position of the current string, and any position between the start and end positions of the current string (in the string scan order). The upper left position of the bounding rectangle is (x curr _ rect _ TL, y curr_rect_TL). Lower right position of the bounding rectangle is (x curr _ rect _ BR, y curr_rect_BR). The encoder defines a reference rectangle (including a reference string) as a bounding rectangle displaced by an offset value. The upper left position of the reference rectangle is (x ref_rect_TL , y ref_rect_TL ). The lower right position of the boundary rectangle is (x ref_rect_BR , y ref_rect_BR ).

水平ストリングスキャンが使用されるとき(現在のブロックの行内で左から右、上の行から下の行)、開始位置は:(xcurr_string_start,ycurr_string_start)=(x+K%wblock,y+K/wblock)である。終了位置は:(xcurr_string_end,ycurr_string_end)=(x+(K+lengthstring−1)%wblock,y+(K+lengthstring−1)/wblock)である。現在のストリングの開始位置及び終了位置が現在のブロックの同じ行にある場合、(xcurr_rect_TL,ycurr_rect_TL)=(xcurr_string_start,ycurr_string_start)、及び(xcurr_rect_BR,ycurr_rect_BR)=(xcurr_string_end,ycurr_string_end)である。そうでなければ、境界長方形の左上位置は(xcurr_rect_TL,ycurr_rect_TL)=(x,y+K/wblock)であり、境界長方形の右下位置は(xcurr_rect_BR,ycurr_rect_BR)=(x+wblock−1),y+(K+lengthstring−1)/wblock)である。 When a horizontal string scan is used (left-to-right, top-to-bottom line within the current block line), the starting position is: (x curr_string_start , y curr_string_start ) = (x 0 + K% w block , y 0). + K / w block ). The end position is: (x curr_string_end , y curr_string_end ) = (x 0 + (K + length string -1)% w block , y 0 + (K + length string -1) / w block ). If the start and end positions of the current string in the same row of the current block, (x curr_rect_TL, y curr_rect_TL) = (x curr_string_start, y curr_string_start), and (x curr_rect_BR, y curr_rect_BR) = (x curr_string_end, y curr_string_end ). Otherwise, the upper left position of the boundary rectangle is (x curr_rect_TL , y curr_rect_TL ) = (x 0 , y 0 + K / w block ), and the lower right position of the boundary rectangle is (x curr_rect_BR , y curr_rect_BR ) = (x 0 + w block -1), a y 0 + (K + length string -1) / w block).

垂直スキャンが使用されるとき(現在のブロックの列内で上から下、左の列から右の列)、開始位置は:(xcurr_string_start,ycurr_string_start)=(x+K/hblock,y+K%hblock)である。終了位置は:(xcurr_string_end,ycurr_string_end)=(x+(K+lengthstring−1)/hblock,y+(K+lengthstring−1)%hblock)である。現在のストリングの開始位置及び終了位置が現在のブロックの同じ列内にあるとき、(xcurr_rect_TL,ycurr_rect_TL)=(xcurr_string_start,ycurr_string_start)、及び(xcurr_rect_BR,ycurr_rect_BR)=(xcurr_string_end,ycurr_string_end)である。そうでなければ、境界長方形の左上位置は(xcurr_rect_TL,ycurr_rect_TL)=(x+K/hblock,y)であり、境界長方形の右下位置は(xcurr_rect_BR,ycurr_rect_BR)=(x+(K+lengthstring−1)/hblock),y+hblock−1)である。 When the vertical scanning is used (from top to bottom in the column of the current block, the right column from the left column), the starting position: (x curr _ string _ start , y curr_string_start) = (x 0 + K / h block , y 0 + K% h block ). The end position is: (x curr_string_end , y curr_string_end ) = (x 0 + (K + length string -1) / h block , y 0 + (K + length string -1)% h block ). When the start position and end position of the current string in the same column of the current block, (x curr_rect_TL, y curr_rect_TL) = (x curr_string_start, y curr_string_start), and (x curr_rect_BR, y curr_rect_BR) = (x curr_string_end, y curr_string_end ). Otherwise, the upper left position of the bounding rectangle is (x curr_rect_TL, y curr_rect_TL) = (x 0 + K / h block, y 0), the lower right position of the boundary rectangle (x curr_rect_BR, y curr_rect_BR) = (x 0 + (K + length string -1 ) / h block), a y 0 + h block -1).

水平スキャンが使用されるか又は垂直スキャンが使用されるかにかかわらず、参照長方形の左上位置は、(xref_rect_TL,yref_rect_TL)=(xcurr_rect_TL,ycurr_rect_TL)+(offset,offset)であり、参照長方形の右下位置は、(xref_rect_BR,yref_rect_BR)=(xcurr_rect_BR,ycurr_rect_BR)+(offset,offset)である。最後に、参照ストリングの開始位置は、(xref_string_start,yref_string_start)=(xcurr_string_start,ycurr_string_start)+(offset,offset)である。 Regardless of whether a horizontal scan is used or a vertical scan is used, the upper left position of the reference rectangle is (x ref_rect_TL , y ref_rect_TL ) = (x curr_rect_TL , y curr_rect_TL ) + (offset x , offset y ). Yes , the lower right position of the reference rectangle is (x ref_rect_BR , y ref_rect_BR ) = (x curr_rect_BR , y curr_rect_BR ) + (offset x , offset y ). Finally, the starting position of the reference string is (x ref_string_start , y ref_string_start ) = (x curr_string_start , y curr_start_start ) + (offset x , offset y ).

エンコーダは、以下の制約の全てが満たされることを検証する。これらの制約のいくつかに関して、現在のブロックの左上位置(x,y)が考慮される。或いは、かかる制約に関して、現在のストリングの開始位置又は境界長方形の左上位置を、現在のブロックの左上位置(x,y)の代わりにチェックすることができる。 The encoder verifies that all of the following constraints are met: For some of these constraints, the upper left position of the current block (x 0 , y 0 ) is considered. Alternatively, for such a constraint, the starting position of the current string or the upper left position of the bounding rectangle can be checked instead of the upper left position (x 0 , y 0 ) of the current block.

第1の制約。エンコーダは、位置(x,y)及び位置(xref_rect_TL,yref_rect_TL)が同じスライス内及び同じタイル内にあることを検証する。つまり、エンコーダは、現在のブロックの左上位置及び参照長方形の左上位置が、同じスライス内及び同じタイル内にあることを検証する。2つの位置が異なるスライス又は異なるタイル内にある場合、第1の制約は満たされない。 The first constraint. The encoder verifies that the position (x 0 , y 0 ) and position (x ref_rect_TL , y ref_rect_TL ) are in the same slice and in the same tile. That is, the encoder verifies that the upper left position of the current block and the upper left position of the reference rectangle are in the same slice and in the same tile. If the two positions are in different slices or different tiles, the first constraint is not met.

第2の制約。エンコーダは、位置(x,y)及び位置(xref_rect_BR,yref_rect_BR)が同じスライス及び同じタイル内にあることを検証する。つまり、エンコーダは、現在のブロックの左上位置及び参照長方形の右下位置が、同じスライス内及び同じタイル内にあることを検証する。2つの位置が異なるスライス又は異なるタイル内にある場合、第2の制約は満たされない。 The second constraint. The encoder verifies that the position (x 0 , y 0 ) and position (x ref_rect_BR , y ref_rect_BR ) are in the same slice and in the same tile. That is, the encoder verifies that the upper left position of the current block and the lower right position of the reference rectangle are in the same slice and in the same tile. If the two positions are in different slices or different tiles, the second constraint is not met.

第1及び第2の制約に関して、複数のスライスが使用されない場合、チェックされる2つの位置は必然的に同じスライス内であり、スライスに関して第1及び第2の制約をチェックする必要はない。同様に、複数のタイルが使用されない場合、チェックされる2つの位置は必然的に同じタイル内であり、タイルに関して第1及び第2の制約をチェックする必要はない。現在のストリングの全ての位置が、単一のスライス及び単一のタイル内にある。第1及び第2の制約が満たされる場合、参照長方形(また従って、参照ストリング)の全ての位置もそのスライス及びタイル内にある。エンコーダは、WPPが使用可能にされるか否かにかかわらず、第1及び第2の制約をチェックする。 With respect to the first and second constraints, if more than one slice is not used, the two positions checked are necessarily within the same slice and there is no need to check the first and second constraints with respect to the slices. Similarly, if multiple tiles are not used, the two positions checked will necessarily be within the same tile, and there is no need to check the first and second constraints on the tiles. All positions of the current string are within a single slice and a single tile. If the first and second constraints are met, all positions of the reference rectangle (and thus the reference string) are also within its slices and tiles. The encoder checks the first and second constraints regardless of whether WPP is enabled.

第3の制約。第3の制約に関して、エンコーダは、以下の条件のうち1つ以上が満たされることを検証する。エンコーダは、WPPが使用可能にされるか否かにかかわらず、第3の制約をチェックする。 Third constraint. With respect to the third constraint, the encoder verifies that one or more of the following conditions are met: The encoder checks for a third constraint regardless of whether WPP is enabled.

第3の制約の第1の条件。エンコーダは、yref_rect_BR/S<y/Sであるか否かをチェックする。つまり、エンコーダは、参照長方形の下端を含むCTU行を算出する:yref_rect_BR/S。エンコーダはまた、現在のブロックの上端を含むCTU行を算出する:y/S。次いで、エンコーダは、参照長方形の下端を含むCTU行が、現在のブロックの上端を含むCTU行の上であるか否かをチェックする。上側である場合、参照長方形は必然的に、少なくともWPPが使用可能にされないとき、事前に再構成されたサンプル値を含む。 The first condition of the third constraint. The encoder checks whether or not y ref_rect_BR / S <y 0 / S. That is, the encoder calculates a CTU row that includes the bottom edge of the reference rectangle: yref_rect_BR / S. The encoder also calculates the CTU row containing the top edge of the current block: y 0 / S. The encoder then checks if the CTU row containing the bottom edge of the reference rectangle is above the CTU row containing the top edge of the current block. When on the upper side, the reference rectangle necessarily contains pre-reconstructed sample values, at least when WPP is not enabled.

第3の制約の第2の条件。yref_rect_BR/S==y/Sのとき、エンコーダは、xref_rect_BR/S<x/Sであるか否かをチェックする。つまり、参照長方形の下端を含むCTU行が現在のブロックの上端を含むCTU行に等しい場合(同じCTU行)、エンコーダは、(a)参照長方形の右端を含むCTU列(xref_rect_BR/S)、及び(b)現在のブロックの左端を含むCTU列(x/S)を算出する。次いで、エンコーダは、参照長方形の右端を含むCTU列が、現在のブロックの左端を含むCTU列の左であるか否かをチェックする。左側である場合、参照長方形は必然的に、事前に再構成されたサンプル値を含む。 The second condition of the third constraint. When y ref_rect_BR / S == y 0 / S, the encoder checks whether or not x ref_rect_BR / S <x 0 / S. That is, if the CTU row containing the bottom edge of the reference rectangle is equal to the CTU row containing the top edge of the current block (same CTU row), then the encoder (a) has the CTU column (x ref_rect_BR / S) containing the right edge of the reference rectangle. And (b) calculate the CTU column (x 0 / S) including the left edge of the current block. The encoder then checks if the CTU row containing the right edge of the reference rectangle is to the left of the CTU row containing the left edge of the current block. On the left side, the reference rectangle necessarily contains pre-reconstructed sample values.

第3の制約の第3の条件。yref_rect_BR/S==y/S及びxref_rect_BR/S==x/Sのとき、エンコーダは、位置(xref_rect_BR,yref_rect_BR)のzスキャン順序が、位置(x,y)のzスキャン順序より小さいか否かをチェックする。つまり、参照長方形の下端を含むCTU行が現在のブロックの上端を含むCTU行に等しく(同じCTU行)、参照長方形の右端を含むCTU列が現在のブロックの左端を含むCTU列に等しい場合(同じCTU列)、エンコーダは、参照長方形の右下位置がzスキャン順序において現在のブロックの左上位置より早いか否かをチェックする。 The third condition of the third constraint. When y ref_rect_BR / S == y 0 / S and x ref_rect_BR / S == x 0 / S, the encoder has the z scan order of the position (x ref_rect_BR , y ref_rect_BR ) of the position (x 0 , y 0 ). Check if it is smaller than the z-scan order. That is, if the CTU row containing the bottom edge of the reference rectangle is equal to the CTU row containing the top edge of the current block (same CTU row), and the CTU column containing the right edge of the reference rectangle is equal to the CTU column containing the left edge of the current block ( In the same CTU column), the encoder checks if the lower right position of the reference rectangle is earlier than the upper left position of the current block in the z scan order.

第3の制約の第4の条件。現在のCU内からの予測が許容される場合、yref_string_start==yのとき、エンコーダは、xref_string_start<xであることをチェックする。つまり、現在のCU内からの予測が許容される場合、現在のストリング及び参照ストリングが同じ行で始まり、参照ストリングが現在のストリングの左側で始まる場合に、第3の制約を満たすことができる。 The fourth condition of the third constraint. If prediction from within the current CU is acceptable, the encoder checks that x ref_string_start <x 0 when y ref_string_start == y 0 . That is, if predictions from within the current CU are allowed, the third constraint can be met if the current string and the reference string start on the same line and the reference string starts to the left of the current string.

第4の制約。エンコーダは、WPPが使用可能にされるときの第4の制約をチェックする。第4の制約に関して、エンコーダは、xref_rect_BR/S−x/S<=y/S−yref_rect_BR/Sであることを検証する。つまり、エンコーダは、参照長方形の右端又は右位置を含むCTU列と現在のブロックの左端を含むCTU列との差を算出する:xref_rect_BR/S−x/S。エンコーダはまた、現在のブロックの上端を含むCTU行と参照長方形の下端又は下位置を含むCTU行との差を算出する:y/S−yref_rect_BR/S。エンコーダは、第1の差(CTU列間)が第2の差(CTU行間)より小さいか又は等しいことを検証する。 Fourth constraint. The encoder checks for a fourth constraint when WPP is enabled. With respect to the fourth constraint, the encoder verifies that x ref_rect_BR / S-x 0 / S <= y 0 / S-y ref_rect_BR / S. That is, the encoder calculates the difference between the CTU row containing the right or right position of the reference rectangle and the CTU row containing the left edge of the current block: x ref_rect_BR / S-x 0 / S. The encoder also calculates the difference between the CTU row containing the top edge of the current block and the CTU row containing the bottom edge or bottom position of the reference rectangle: y 0 / S-y ref_rect_BR / S. The encoder verifies that the first difference (between CTU columns) is less than or equal to the second difference (between CTU rows).

第5の制約。第5の制約に関して、エンコーダは、K+lengthstring<=wblock×hblockであることを検証する。つまり、エンコーダは、現在のブロックが、既に処理されている位置のカウントを考慮して、現在のストリングに対して十分な位置を含むことをチェックする。 Fifth constraint. With respect to the fifth constraint, the encoder verifies that K + lens string <= w block × h block . That is, the encoder checks that the current block contains enough positions for the current string, taking into account the count of positions already processed.

F.代替例及び変形例
本明細書に記載する例の多くでは、イントラコピー予測及び動き補償が別個のコンポーネント又はプロセスで実現され、オフセット推定及び動き推定が別個のコンポーネント又はプロセスで実現される。或いは、イントラコピー予測は、動き補償の特別な事例として実現することができ、オフセット推定は、現在ピクチャが参照ピクチャとして使用される、動き推定の特別な事例として実現することができる。かかる実装では、オフセット値をMV値として信号伝達することができるが、ピクチャ間予測ではなく(現在のピクチャ内の)イントラコピー予測に使用される。本明細書で使用されるとき、「イントラコピー予測」という用語は、予測が、ピクチャ内予測モジュール、動き補償モジュール、又は他の何らかのモジュールのどれを使用して提供されるかにかかわらず、現在ピクチャ内の予測を示す。同様に、BV値又は他のオフセット値は、MV値を使用して、又は区別可能なタイプのパラメータ若しくはシンタックス要素を使用して表すことができ、オフセット推定は、ピクチャ内推定モジュール、動き推定モジュール、又は他の何らかのモジュールを使用して提供することができる。
F. Alternatives and Variants In many of the examples described herein, intracopy prediction and motion compensation are implemented in separate components or processes, and offset and motion estimation are implemented in separate components or processes. Alternatively, intracopy prediction can be realized as a special case of motion compensation, and offset estimation can be realized as a special case of motion estimation in which the picture is currently used as a reference picture. In such an implementation, the offset value can be signaled as the MV value, but is used for intra-picture prediction (in the current picture) rather than inter-picture prediction. As used herein, the term "intracopy prediction" is currently used regardless of whether the prediction is provided using an in-picture prediction module, motion compensation module, or any other module. Shows the prediction in the picture. Similarly, BV values or other offset values can be represented using MV values or using distinguishable types of parameters or syntax elements, and offset estimation is an in-picture estimation module, motion estimation. It can be provided using a module, or any other module.

開示する発明の原理が適用されてもよい多くの可能な実施形態の観点で、例証される実施形態は本発明の好ましい実施例に過ぎず、本発明の範囲を限定するものとしてとらえられるべきでないことを認識すべきである。むしろ、本発明の範囲は以下の特許請求の範囲によって定義される。従って、本発明として、こうした請求項の範囲及び趣旨内にあるもの全てを請求する。 In view of the many possible embodiments to which the principles of the disclosed invention may be applied, the illustrated embodiments are merely preferred embodiments of the invention and should not be taken as limiting the scope of the invention. You should be aware of that. Rather, the scope of the invention is defined by the following claims. Therefore, the present invention claims everything within the scope and purpose of these claims.

Claims (8)

コンピュータ実施方法において、
波面並列処理(WPP)が可能な状態でピクチャをエンコードするエンコードステップであって、前記エンコードすることは、エンコードされたデータを生成し、イントラブロックコピー予測について、前記WPPと一貫性のある1つ以上の制約を強制することを含み、前記1つ以上の制約は、参照領域から現在の領域までの水平変位値が、前記現在の領域から前記参照領域までの垂直変位値よりも小さいか等しいという制約を含む、エンコードステップと、
前記エンコードされたデータをビットストリームの一部として出力するステップと、
を含む方法。
In the computer implementation method
An encoding step that encodes a picture with wave-plane parallel processing (WPP) possible, said encoding is one that produces encoded data and is consistent with said WPP for intrablock copy prediction. Including enforcing the above constraints, the one or more constraints say that the horizontal displacement value from the reference region to the current region is less than or equal to the vertical displacement value from the current region to the reference region. Encoding steps, including constraints,
The step of outputting the encoded data as a part of a bit stream, and
How to include.
前記水平変位値は、前記参照領域の右端を含む符号化ツリーユニット(CTU)列から前記現在の領域の左端を含むCTU列までの差を測定し、
前記垂直変位値は、前記現在の領域の上端を含むCTU行から前記参照領域の下端を含むCTU行までの差を測定する、
請求項1に記載の方法。
The horizontal displacement value is measured by measuring the difference from the coded tree unit (CTU) row including the right end of the reference region to the CTU row including the left end of the current region.
The vertical displacement value measures the difference from the CTU row including the upper end of the current region to the CTU row including the lower end of the reference region.
The method according to claim 1 .
前記現在の領域は符号化ツリーユニット(CTU)内の現在のブロックであり、前記エンコードすることは、
前記水平変位値を、(x+BV+wblock−1)/S−x/Sとして計算することであって、ここでxは、前記CTU内の前記現在のブロックの水平位置であり、BVxは、イントラブロックコピー予測のベクトルの水平成分であり、wblockは、前記現在のブロックの幅であり、Sは前記CTUのサイズを示すことと、
前記垂直変位値を、y/S−(y+BV+hblock−1)/Sとして計算することであって、ここでyは、前記現在のブロックの垂直位置であり、BVは、イントラブロックコピー予測の前記ベクトルの垂直成分であり、hblockは、前記現在のブロックの高さであることと、
を含む、請求項1に記載の方法。
The current region is the current block in the encoding tree unit (CTU), and the encoding is
The horizontal displacement value is calculated as (x 0 + BV x + w block -1) / S−x 0 / S, where x 0 is the horizontal position of the current block in the CTU. , BVx is the horizontal component of the vector of the intra-block copy prediction, w block is the width of the current block, and S is the size of the CTU.
The vertical displacement value is calculated as y 0 / S- (y 0 + BV y + h block -1) / S, where y 0 is the vertical position of the current block and BV y is. , Is the vertical component of the vector of the intra-block copy prediction, and h block is the height of the current block.
The method according to claim 1, wherein the method comprises.
前記イントラブロックコピー予測について、他の制約は、
(1)前記現在の領域の左上位置と前記参照領域の左上位置とが、同じスライス内であり、同じタイル内であることと、
(2)前記現在の領域の前記左上位置と前記参照領域の右下位置とが、同じスライス内であり、同じタイル内であることと、
(3)下記の3つの条件、すなわち、
(a)前記参照領域の下端を含む符号化ツリーユニット(CTU)行が、前記現在の領域の上端を含むCTU行の上であること、
(b)前記参照領域の前記下端を含む前記CTU行が、前記現在の領域の前記上端を含む前記CTU行に等しい場合、前記参照領域の右端を含むCTU列が、前記現在の領域の左端を含むCTU列の左であること、及び、
(c)前記参照領域の前記下端を含む前記CTU行が、前記現在の領域の前記上端を含む前記CTU行に等しい場合、及び前記参照領域の前記右端を含む前記CTU列が、前記現在の領域の前記左端を含む前記CTU列に等しい場合に、前記参照領域の前記右下位置が、zスキャン順序において前記現在の領域の前記左上位置より早いこと、
のうち1つが満たされることと、
を含む、請求項1に記載の方法。
Regarding the intra-block copy prediction, other restrictions are
(1) the upper left position of the current region and the left upper position of the reference region is a same slice, and it is within the same tile,
(2) said that said top-left position of the current region and the lower right position of the reference region is the same in the slice, and it is within the same tile,
(3) The following three conditions, that is,
(A) The encoded tree unit (CTU) line including the lower end of the reference area is above the CTU line including the upper end of the current area.
(B) When the CTU row including the lower end of the reference region is equal to the CTU row including the upper end of the current region, the CTU column including the right end of the reference region is the left end of the current region. Being to the left of the including CTU column, and
(C) When the CTU row including the lower end of the reference region is equal to the CTU row including the upper end of the current region, and when the CTU column including the right end of the reference region is the current region. The lower right position of the reference area is earlier than the upper left position of the current area in the z-scan order when it is equal to the CTU column including the left end of the above.
That one of them is satisfied
The method according to claim 1, wherein the method comprises.
前記現在の領域は現在のブロックであり、前記参照領域は参照ブロックである、
請求項1乃至のうちいずれか一項に記載の方法。
The current region is the current block and the reference region is the reference block.
The method according to any one of claims 1 to 4 .
前記ピクチャ内の前記現在のブロックについて、オフセット値が前記ピクチャ内の前記参照ブロックに対する変位を示し、前記参照ブロックは、事前に再構成されたサンプル値を含む、
請求項に記載の方法。
For the current block in the picture, the offset value indicates the displacement with respect to the reference block in the picture, which reference block contains a pre-reconstructed sample value.
The method according to claim 5 .
プログラムされたコンピューティングシステムに請求項1乃至のいずれか一項に記載の方法を実行させるコンピュータ実行可能命令を記憶した、1つ以上のコンピュータ読取可能媒体。 One or more computer-readable media storing computer-executable instructions that cause a programmed computing system to perform the method according to any one of claims 1-6 . 請求項1乃至のいずれか一項に記載の方法を実行するように構成されたコンピューティングシステム。 A computing system configured to perform the method according to any one of claims 1-6 .
JP2019094546A 2019-05-20 2019-05-20 Rules for in-picture prediction mode when wave plane parallelism is enabled Active JP6793778B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019094546A JP6793778B2 (en) 2019-05-20 2019-05-20 Rules for in-picture prediction mode when wave plane parallelism is enabled

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019094546A JP6793778B2 (en) 2019-05-20 2019-05-20 Rules for in-picture prediction mode when wave plane parallelism is enabled

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2017517017A Division JP2017535145A (en) 2014-09-30 2014-09-30 Rules for intra-picture prediction mode when wavefront parallel processing is enabled

Publications (2)

Publication Number Publication Date
JP2019154067A JP2019154067A (en) 2019-09-12
JP6793778B2 true JP6793778B2 (en) 2020-12-02

Family

ID=67947219

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019094546A Active JP6793778B2 (en) 2019-05-20 2019-05-20 Rules for in-picture prediction mode when wave plane parallelism is enabled

Country Status (1)

Country Link
JP (1) JP6793778B2 (en)

Also Published As

Publication number Publication date
JP2019154067A (en) 2019-09-12

Similar Documents

Publication Publication Date Title
US11758162B2 (en) Rules for intra-picture prediction modes when wavefront parallel processing is enabled
US11683522B2 (en) Adaptive switching of color spaces, color sampling rates and/or bit depths
CN107211155B (en) Special case handling of merged chroma blocks in intra block copy prediction mode
KR102401946B1 (en) Block flipping and skip mode in intra block copy prediction
WO2016197314A1 (en) Robust encoding/decoding of escape-coded pixels in palette mode
JP6793778B2 (en) Rules for in-picture prediction mode when wave plane parallelism is enabled
NZ723358B2 (en) Adaptive switching of color spaces, color sampling rates and/or bit depths

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190520

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200422

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200616

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200916

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: 20201013

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201110

R150 Certificate of patent or registration of utility model

Ref document number: 6793778

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250