JP2018536364A - Multi-region search range for block prediction mode for display stream compression (DSC) - Google Patents
Multi-region search range for block prediction mode for display stream compression (DSC) Download PDFInfo
- Publication number
- JP2018536364A JP2018536364A JP2018529177A JP2018529177A JP2018536364A JP 2018536364 A JP2018536364 A JP 2018536364A JP 2018529177 A JP2018529177 A JP 2018529177A JP 2018529177 A JP2018529177 A JP 2018529177A JP 2018536364 A JP2018536364 A JP 2018536364A
- Authority
- JP
- Japan
- Prior art keywords
- block
- pixel
- line
- current
- pixels
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 230000006835 compression Effects 0.000 title description 27
- 238000007906 compression Methods 0.000 title description 27
- 238000000034 method Methods 0.000 claims abstract description 159
- 239000013598 vector Substances 0.000 claims abstract description 89
- 230000011664 signaling Effects 0.000 claims abstract description 33
- 238000005192 partition Methods 0.000 claims description 206
- 238000004891 communication Methods 0.000 claims description 19
- 230000005540 biological transmission Effects 0.000 abstract description 7
- 239000000872 buffer Substances 0.000 description 38
- 238000010586 diagram Methods 0.000 description 31
- 238000000638 solvent extraction Methods 0.000 description 31
- 241000023320 Luma <angiosperm> Species 0.000 description 13
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 13
- 238000013139 quantization Methods 0.000 description 12
- 230000003044 adaptive effect Effects 0.000 description 8
- 230000008901 benefit Effects 0.000 description 7
- 230000000007 visual effect Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 238000005070 sampling Methods 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 241000701922 Bovine parvovirus Species 0.000 description 3
- 102100034184 Macrophage scavenger receptor types I and II Human genes 0.000 description 3
- 101710134306 Macrophage scavenger receptor types I and II Proteins 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000008520 organization Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000007704 transition Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 239000000470 constituent Substances 0.000 description 2
- 238000009499 grossing Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- -1 and for n> 0 Substances 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000007728 cost analysis Methods 0.000 description 1
- 230000000593 degrading effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 239000006249 magnetic particle Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 239000005022 packaging material Substances 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000004513 sizing Methods 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/119—Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/136—Incoming video signal characteristics or properties
- H04N19/137—Motion inside a coding unit, e.g. average field, frame or block difference
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/146—Data rate or code amount at the encoder output
- H04N19/147—Data rate or code amount at the encoder output according to rate distortion criteria
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/593—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/174—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/182—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/184—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/436—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
Abstract
ディスプレイリンクを介した送信のために固定ビットレートビデオコーディング方式の簡略化されたブロック予測モードでビデオデータのブロックをコーディングするための方法が開示される。一態様では、方法は、現在スライス中の現在ブロックを予測するために使用される候補ブロックを決定することを含み、候補ブロックは、現在スライス中の再構成されたピクセルに各々対応する複数のピクセル位置の範囲内にある。ピクセル位置の範囲は、(i)現在ブロックとオーバーラップする複数のピクセルの第1のライン中の1つまたは複数の第1のピクセル位置を含む第1の領域と、(ii)現在ブロックとオーバーラップしない複数のピクセルの第2のライン中の1つまたは複数の第2のピクセル位置を含む第2の領域とを備え得る。方法は、候補ブロックのピクセル位置を示す予測ベクトルを決定およびシグナリングすることをさらに備え得る。 A method for coding a block of video data in a simplified block prediction mode of a constant bit rate video coding scheme for transmission over a display link is disclosed. In one aspect, the method includes determining a candidate block that is used to predict a current block in a current slice, wherein the candidate block is a plurality of pixels each corresponding to a reconstructed pixel in the current slice. Within range. The range of pixel locations includes: (i) a first region that includes one or more first pixel locations in a first line of a plurality of pixels that overlaps the current block; and (ii) an overlap with the current block. And a second region including one or more second pixel locations in a second line of non-wrapping pixels. The method may further comprise determining and signaling a prediction vector that indicates a pixel location of the candidate block.
Description
[0001] 本開示は、ビデオコーディングおよび圧縮の分野に関し、詳細には、ディスプレイリンクビデオ圧縮(display link video compression)などの、ディスプレイリンクを介した送信のためのビデオ圧縮に関する。 [0001] The present disclosure relates to the field of video coding and compression, and in particular, to video compression for transmission over a display link, such as display link video compression.
[0002] デジタルビデオ機能は、デジタルテレビジョン、携帯情報端末(PDA)、ラップトップコンピュータ、デスクトップモニタ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレイヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラ電話または衛星無線電話、ビデオ遠隔会議デバイスなどを含む、広範囲にわたるディスプレイに組み込まれ得る。適切なソースデバイスにディスプレイを接続するために、ディスプレイリンクが使用される。ディスプレイリンクの帯域幅要件はディスプレイの解像度に比例し、従って、高解像度ディスプレイは、大きい帯域幅のディスプレイリンクを必要とする。いくつかのディスプレイリンクは、高解像度ディスプレイをサポートするための帯域幅を有しない。高解像度ディスプレイにデジタルビデオを提供するためにより低い帯域幅のディスプレイリンクが使用され得るように帯域幅要件を低減するために、ビデオ圧縮が使用され得る。 [0002] Digital video functions include digital television, personal digital assistant (PDA), laptop computer, desktop monitor, digital camera, digital recording device, digital media player, video game device, video game console, cellular telephone or satellite radio. It can be incorporated into a wide range of displays, including telephones, video teleconferencing devices, and the like. A display link is used to connect the display to the appropriate source device. Display link bandwidth requirements are proportional to the resolution of the display, and therefore high resolution displays require large bandwidth display links. Some display links do not have the bandwidth to support high resolution displays. Video compression can be used to reduce bandwidth requirements so that lower bandwidth display links can be used to provide digital video to high resolution displays.
[0003] ピクセルデータのイメージ圧縮を含むコーディング方式が存在する。しかしながら、そのような方式は、時々視覚的ロスレス(visually lossless)でないか、または従来のディスプレイデバイスにおいて実装することが困難で費用がかかることがある。 There are coding schemes that include image compression of pixel data. However, such schemes are sometimes not visually lossless or can be difficult and expensive to implement in conventional display devices.
[0004] ビデオエレクトロニクス規格協会(VESA:Video Electronics Standards Association)は、ディスプレイリンクビデオ圧縮のための規格として、ディスプレイストリーム圧縮(DSC:Display Stream Compression)を開発した。DSCなどの、ディスプレイリンクビデオ圧縮技法は、特に、視覚的ロスレスであるピクチャ品質(すなわち、圧縮がアクティブであることをユーザがわからないような品質のレベルを有するピクチャ)を提供するべきである。ディスプレイリンクビデオ圧縮技法はまた、従来のハードウェアを用いてリアルタイムに実装することが容易で費用がかからない方式を提供するべきである。 [0004] The Video Electronics Standards Association (VESA) has developed Display Stream Compression (DSC) as a standard for display link video compression. Display link video compression techniques, such as DSC, should especially provide picture quality that is visually lossless (ie, pictures with a level of quality that the user does not know compression is active). Display link video compression techniques should also provide a scheme that is easy and inexpensive to implement in real time using conventional hardware.
[0033] DSC規格は、ビデオデータの各ブロックが、エンコーダによって符号化され、同様に、デコーダによって復号され得る、いくつかのコーディングモードを含む。いくつかの実装では、エンコーダおよび/またはデコーダは、前にコーディングされたブロックに基づいてコーディングされる現在ブロックを予測し得る。 [0033] The DSC standard includes several coding modes in which each block of video data may be encoded by an encoder and similarly decoded by a decoder. In some implementations, the encoder and / or decoder may predict a current block to be coded based on a previously coded block.
[0034] しかしながら、既存のコーディングモード(例えば、変換コーディング、差分パルスコード変調など)は、ビデオデータ中の極めて複雑な領域(highly complex region)を圧縮する満足のいく方法を提供しない。しばしば、このタイプのデータ(すなわち、高度に圧縮されたビデオデータ)について、コーディングされる現在ブロック(または現在ブロックの構成サブブロック(constituent sub-blocks))は、コーダ(例えば、エンコーダまたはデコーダ)によって遭遇された前のブロック(previous blocks)にコンテンツが類似する。しかしながら、既存のイントラ予測は、そのような現在ブロックの満足のいく予測(例えば、現在ブロックに十分に類似し、従って十分に小さい残差(residual)をもたらすであろう現在ブロックの予測)を行うには制限されすぎていることがある。従って、ビデオデータのブロックをコーディングする改善された方法が望まれる。 [0034] However, existing coding modes (eg, transform coding, differential pulse code modulation, etc.) do not provide a satisfactory way to compress highly complex regions in video data. Often, for this type of data (ie, highly compressed video data), the current blocks (or constituent sub-blocks) of the current block are coded by a coder (eg, encoder or decoder). The content is similar to the previous blocks encountered. However, existing intra prediction makes a satisfactory prediction of such a current block (eg, a prediction of the current block that is sufficiently similar to the current block and therefore will yield a sufficiently small residual). May be too limited. Accordingly, an improved method for coding a block of video data is desired.
[0035] 本開示のシステム、方法およびデバイスは、各々いくつかの発明的態様を有し、それらのうちの単一の態様が、本明細書で開示される望ましい属性を単独で担うものではない。 [0035] Each of the systems, methods and devices of the present disclosure has several inventive aspects, one of which is not solely responsible for the desired attributes disclosed herein. .
[0036] 一態様では、固定ビットレートビデオコーディング方式の簡略化されたブロック予測モードでビデオデータのブロックをコーディングするための方法は、現在スライス中の現在ブロックを予測するために使用される候補ブロックを決定することと、候補ブロックは、現在スライス中の再構成されたピクセルに各々対応する複数のピクセル位置の範囲内にあり、複数のピクセル位置の範囲は、少なくとも(i)現在スライス中の複数のピクセルの第1のライン中の1つまたは複数の第1のピクセル位置を含む第1の領域と、ここで、複数のピクセルの第1のラインは、現在ブロック中の少なくとも1つのピクセルを含み、現在スライスの全体の幅にわたる、(ii)現在スライス中の複数のピクセルの第2のライン中の1つまたは複数の第2のピクセル位置を含む第2の領域と、ここで、複数のピクセルの第2のラインは、現在ブロック中のいずれのピクセルも含まないが、現在スライスの全体の幅にわたる、を備え、複数のピクセル位置の範囲内の候補ブロックのピクセル位置を示す予測ベクトルを決定することと、候補ブロックのピクセル位置は、第1の領域または第2の領域のうちの1つにあり、予測ベクトルをシグナリングすることを少なくとも部分的に介して、簡略化されたブロック予測モードで現在ブロックをコーディングすることと、を含み得る。 [0036] In an aspect, a method for coding a block of video data in a simplified block prediction mode of a constant bit rate video coding scheme may be used to predict a current block in a current slice. And the candidate block is within a range of pixel locations each corresponding to a reconstructed pixel in the current slice, and the range of pixel locations is at least (i) a plurality of pixel locations in the current slice A first region including one or more first pixel locations in a first line of pixels, wherein the first line of pixels includes at least one pixel in the current block (Ii) one or more second in the second line of the plurality of pixels in the current slice, spanning the entire width of the current slice A second region comprising pixel locations, wherein a second line of pixels comprises no pixels in the current block, but spans the entire width of the current slice, and comprises a plurality of pixel locations Determining a prediction vector that indicates a pixel position of a candidate block within a range of, and the pixel position of the candidate block is in one of the first region or the second region and signaling the prediction vector Coding the current block in a simplified block prediction mode, at least in part.
[0037] 別の態様では、固定ビットレートビデオコーディング方式の簡略化されたブロック予測モードでビデオデータのブロックをコーディングするように構成された装置は、ビデオデータの現在スライスの1つまたは複数の再構成されたピクセルを記憶するように構成されたメモリと、メモリと通信状態にある1つまたは複数のプロセッサと、を含み得る。1つまたは複数のプロセッサは、現在スライス中の現在ブロックを予測するために使用される候補ブロックを決定することと、候補ブロックは、現在スライス中の再構成されたピクセルに各々対応する複数のピクセル位置の範囲内にあり、複数のピクセル位置の範囲は、少なくとも(i)現在スライス中の複数のピクセルの第1のライン中の1つまたは複数の第1のピクセル位置を含む第1の領域と、ここで、複数のピクセルの第1のラインは、現在ブロック中の少なくとも1つのピクセルを含み、現在スライスの全体の幅にわたる、(ii)現在スライス中の複数のピクセルの第2のライン中の1つまたは複数の第2のピクセル位置を含む第2の領域と、ここで、複数のピクセルの第2のラインは、現在ブロック中のいずれのピクセルも含まないが、現在スライスの全体の幅にわたる、を備え、複数のピクセル位置の範囲内の候補ブロックのピクセル位置を示す予測ベクトルを決定することと、候補ブロックのピクセル位置は、第1の領域または第2の領域のうちの1つにあり、予測ベクトルをシグナリングすることを少なくとも部分的に介して、簡略化されたブロック予測モードで現在ブロックをコーディングすることと、を行うように構成され得る。 [0037] In another aspect, an apparatus configured to code a block of video data in a simplified block prediction mode of a constant bit rate video coding scheme includes one or more replays of a current slice of video data. A memory configured to store the configured pixels and one or more processors in communication with the memory may be included. One or more processors determine candidate blocks used to predict the current block in the current slice, and the candidate block is a plurality of pixels each corresponding to a reconstructed pixel in the current slice. A range of locations, wherein the range of pixel locations includes at least (i) a first region that includes one or more first pixel locations in a first line of the plurality of pixels in the current slice; Where the first line of pixels includes at least one pixel in the current block and spans the entire width of the current slice; (ii) in the second line of pixels in the current slice A second region including one or more second pixel locations, and wherein the second line of pixels does not include any pixel in the current block; Determining a prediction vector indicative of the pixel position of the candidate block within the range of the plurality of pixel positions, the pixel position of the candidate block being in the first region or second And coding the current block in a simplified block prediction mode, at least in part through signaling a prediction vector.
[0038] 別の態様では、非一時的物理的コンピュータストレージは、固定ビットレートビデオコーディング方式の簡略化されたブロック予測モードでビデオデータのブロックをコーディングするように構成されたコードを備え得る。コードは、実行されたとき、装置に、現在スライス中の現在ブロックを予測するために使用される候補ブロックを決定することと、候補ブロックは、現在スライス中の再構成されたピクセルに各々対応する複数のピクセル位置の範囲内にあり、複数のピクセル位置の範囲は、少なくとも(i)現在スライス中の複数のピクセルの第1のライン中の1つまたは複数の第1のピクセル位置を含む第1の領域と、ここで、複数のピクセルの第1のラインは、現在ブロック中の少なくとも1つのピクセルを含み、現在スライスの全体の幅にわたる、(ii)現在スライス中の複数のピクセルの第2のライン中の1つまたは複数の第2のピクセル位置を含む第2の領域と、ここで、複数のピクセルの第2のラインは、現在ブロック中のいずれのピクセルも含まないが、現在スライスの全体の幅にわたる、を備え、複数のピクセル位置の範囲内の候補ブロックのピクセル位置を示す予測ベクトルを決定することと、候補ブロックのピクセル位置は、第1の領域または第2の領域のうちの1つにあり、予測ベクトルをシグナリングすることを少なくとも部分的に介して、簡略化されたブロック予測モードで現在ブロックをコーディングすることと、を行わせ得る。 [0038] In another aspect, the non-transitory physical computer storage may comprise code configured to code a block of video data in a simplified block prediction mode of a constant bit rate video coding scheme. The code, when executed, determines to the device which candidate block is used to predict the current block in the current slice, and each candidate block corresponds to a reconstructed pixel in the current slice. A plurality of pixel positions within a plurality of pixel positions, the first including at least (i) one or more first pixel positions in a first line of the plurality of pixels in the current slice; And where the first line of pixels includes at least one pixel in the current block and spans the entire width of the current slice, (ii) the second of the pixels in the current slice A second region that includes one or more second pixel locations in the line, and wherein the second line of pixels includes any pixel in the current block. Determining a prediction vector indicative of the pixel position of the candidate block within the range of the plurality of pixel positions, the pixel position of the candidate block being in the first region or Coding the current block in a simplified block prediction mode, at least partly in one of the two regions and signaling a prediction vector.
[0039] 別の態様では、ビデオコーディングデバイスは、固定ビットレートビデオコーディング方式の簡略化されたブロック予測モードでビデオデータのブロックをコーディングするように構成され得る。ビデオコーディングデバイスは、現在スライス中の現在ブロックを予測するために使用される候補ブロックを決定するための手段と、候補ブロックは、現在スライス中の再構成されたピクセルに各々対応する複数のピクセル位置の範囲内にあり、複数のピクセル位置の範囲は、少なくとも(i)現在スライス中の複数のピクセルの第1のライン中の1つまたは複数の第1のピクセル位置を含む第1の領域と、ここで、複数のピクセルの第1のラインは、現在ブロック中の少なくとも1つのピクセルを含み、現在スライスの全体の幅にわたる、(ii)現在スライス中の複数のピクセルの第2のライン中の1つまたは複数の第2のピクセル位置を含む第2の領域と、ここで、複数のピクセルの第2のラインは、現在ブロック中のいずれのピクセルも含まないが、現在スライスの全体の幅にわたる、を備え、複数のピクセル位置の範囲内の候補ブロックのピクセル位置を示す予測ベクトルを決定するための手段と、候補ブロックのピクセル位置は、第1の領域または第2の領域のうちの1つにあり、予測ベクトルをシグナリングすることを少なくとも部分的に介して、簡略化されたブロック予測モードで現在ブロックをコーディングするための手段と、を備え得る。 [0039] In another aspect, a video coding device may be configured to code a block of video data in a simplified block prediction mode of a constant bit rate video coding scheme. The video coding device includes means for determining a candidate block used to predict a current block in the current slice, and the candidate block includes a plurality of pixel locations each corresponding to a reconstructed pixel in the current slice And the range of pixel locations is at least (i) a first region that includes one or more first pixel locations in a first line of pixels in the current slice; Where the first line of pixels includes at least one pixel in the current block and spans the entire width of the current slice; (ii) 1 in the second line of pixels in the current slice A second region including one or more second pixel locations, wherein a second line of pixels is any pixel in the current block The means for determining a prediction vector indicative of the pixel position of the candidate block within the range of the plurality of pixel positions, the pixel position of the candidate block comprising: Means for coding a current block in a simplified block prediction mode, at least partly in signaling in one of the region or the second region.
[0040] 概して、本開示は、例えば、ディスプレイリンクビデオ圧縮で利用されるもののような、ビデオ圧縮技法を改善する方法に関する。より詳細には、本開示は、適応型探索範囲選択を使用してブロック予測モードでビデオデータのブロックをコーディングするためのシステムおよび方法に関する。 [0040] In general, this disclosure relates to methods for improving video compression techniques, such as those utilized in display link video compression, for example. More particularly, this disclosure relates to systems and methods for coding blocks of video data in block prediction mode using adaptive search range selection.
[0041] ある特定の実施形態について、ディスプレイリンクビデオ圧縮技法の例である、DSC規格のコンテキストにおいて本明細書で説明されるが、本明細書で開示されるシステムおよび方法が任意の適切なビデオコーディング規格に適用可能であり得ることを、当業者は理解するだろう。例えば、本明細書で開示される実施形態は、下記の規格、国際電気通信連合(ITU)電気通信標準化部門(ITU−T)H. 261、国際標準化機構/国際電気標準会議(ISO/IEC)ムービングピクチャエキスパートグループ1(MPEG−1)Visual、ITU−T H. 262またはISO/IEC MPEG−2 Visual、ITU−T H. 263、ISO/IEC MPEG−4 Visual、(ISO/IEC MPEG−4 AVCとしても知られる)ITU−T H. 264、高効率ビデオコーディング(HEVC:High Efficiency Video Coding)のうちの1つまたは複数、およびそのような規格に対する任意の拡張に適用可能であり得る。また、本開示で説明される技法は、将来開発される規格の一部になり得る。言い換えれば、本開示で説明する技法は、前に開発されたビデオコーディング規格、現在開発中のビデオコーディング規格、および次のビデオコーディング規格に適用可能であり得る。 [0041] Although certain embodiments are described herein in the context of the DSC standard, which is an example of a display link video compression technique, the systems and methods disclosed herein may be any suitable video. Those skilled in the art will appreciate that it may be applicable to coding standards. For example, the embodiments disclosed herein include the following standards: International Telecommunication Union (ITU) Telecommunication Standardization Sector (ITU-T) H.264. 261, International Organization for Standardization / International Electrotechnical Commission (ISO / IEC) Moving Picture Expert Group 1 (MPEG-1) Visual, ITU-T H.264. 262 or ISO / IEC MPEG-2 Visual, ITU-T H.264. 263, ISO / IEC MPEG-4 Visual, ITU-T H.264 (also known as ISO / IEC MPEG-4 AVC). H.264, one or more of High Efficiency Video Coding (HEVC), and any extension to such a standard may be applicable. Also, the techniques described in this disclosure may become part of a standard that will be developed in the future. In other words, the techniques described in this disclosure may be applicable to previously developed video coding standards, currently developed video coding standards, and to the next video coding standard.
[0042] DSC規格は、ビデオデータの各ブロックが、エンコーダによって符号化され、同様に、デコーダによって復号され得る、いくつかのコーディングモードを含む。いくつかの実装では、エンコーダおよび/またはデコーダは、前にコーディングされたブロックに基づいてコーディングされるべき現在ブロックを予測し得る。 [0042] The DSC standard includes several coding modes in which each block of video data can be encoded by an encoder and similarly decoded by a decoder. In some implementations, the encoder and / or decoder may predict a current block to be coded based on a previously coded block.
[0043] しかしながら、既存のコーディングモード(例えば、変換コーディング、差分パルスコード変調など)は、ビデオデータ中の極めて複雑な領域を圧縮する満足のいく方法を提供しない。しばしば、このタイプのデータ(すなわち、高度に圧縮されたビデオデータ)について、コーディングされる現在ブロック(または現在ブロックの構成サブブロック)は、コーダ(例えば、エンコーダまたはデコーダ)によって遭遇された前のブロックにコンテンツが類似する。しかしながら、既存のイントラ予測は、そのような現在ブロックの満足のいく予測(例えば、現在ブロックに十分に類似し、従って十分に小さい残差をもたらすであろう現在ブロックの予測)を行うには制限されすぎていることがある。従って、ビデオデータのブロックをコーディングする改善された方法が望まれる。 [0043] However, existing coding modes (eg, transform coding, differential pulse code modulation, etc.) do not provide a satisfactory way to compress very complex regions in video data. Often, for this type of data (ie, highly compressed video data), the current block being coded (or a constituent sub-block of the current block) is the previous block encountered by the coder (eg, encoder or decoder). The content is similar. However, existing intra predictions are limited to making satisfactory predictions of such current blocks (eg predictions of current blocks that are sufficiently similar to the current block and therefore will yield sufficiently small residuals). It may have been done too much. Accordingly, an improved method for coding a block of video data is desired.
[0044] 本開示では、ブロック予測モードでブロックをコーディングする改善された方法が説明される。例えば、現在ブロックを(または現在ブロック内の現在領域)予測するために使用される候補ブロック(または候補領域)を探索するとき、探索範囲は、エンコーダが、探索コストを最小限に抑えながら、良好な一致であり得る潜在的な候補(potential candidates)へのアクセスを有するように定義され得る。別の例では、エンコーダは、レート歪み(RD:rate distortion)分析に基づいて、現在ブロックをコーディングするために複数の探索範囲のうちのどの1つを使用するかを決定し得る。さらに別の例では、エンコーダは、前にコーディングされたピクセルのうちのどの1つが、現在ブロックのロケーション、RDコストなどのような様々なファクタに基づいて、現在ブロックをコーディングするために使用される探索範囲に含まれるかを決定し得る。エンコーダ側でより多くの動作を実行すること(例えば、コンピューティングリソースと処理能力(power)とを消費し得る、現在ブロックを予測するために使用される候補ブロックを探索すること、現在ブロックに関する候補ブロックのロケーションを識別するベクトルを計算すること、関連付けられたコストを異なる探索範囲を使用することと比較することなど)によって、本方法はデコーダ複雑さ(decoder complexity)を低減し得る。追加的に、複数のおよび/または適用可能探索範囲がブロック予測モードでブロックをコーディングするために使用されることを可能にすることによって、より良い候補区分に位置している可能性が高くなり得、それにより、ブロック予測モードのコーディング効率および/またはコーディング性能を改善する。さらに、探索範囲を適応可能に選択するためのエンコーダが各ブロックをコーディングするために使用されることを可能にすることによって、ブロック予測方式の性能は、さらに改善され得る。 [0044] In this disclosure, an improved method of coding a block in block prediction mode is described. For example, when searching for candidate blocks (or candidate regions) used to predict the current block (or the current region within the current block), the search range is good while the encoder minimizes the search cost Can be defined to have access to potential candidates that may be close matches. In another example, the encoder may determine which one of the multiple search ranges to use to code the current block based on a rate distortion (RD) analysis. In yet another example, the encoder is used to code the current block based on various factors such as the current block location, RD cost, etc., any one of the previously coded pixels. It can be determined whether it falls within the search range. Perform more operations at the encoder side (eg, search for candidate blocks used to predict the current block that may consume computing resources and processing power, candidates for the current block By calculating a vector that identifies the location of the block, comparing the associated cost with using different search ranges, etc., the method may reduce decoder complexity. Additionally, by allowing multiple and / or applicable search ranges to be used to code a block in block prediction mode, it may be more likely to be located in a better candidate partition. Thereby improving the coding efficiency and / or coding performance of the block prediction mode. Further, the performance of the block prediction scheme may be further improved by allowing an encoder for adaptively selecting a search range to be used to code each block.
ビデオコーディング規格
[0045] ビデオ画像、TV画像、静止画像、あるいはビデオレコーダまたはコンピュータによって生成される画像のようなデジタル画像は、水平ラインおよび垂直ラインで配置されたピクセルまたはサンプルを含み得る。単一の画像中のピクセルの数は一般に数万個である。各ピクセルは、一般に、ルミナンス情報とクロミナンス情報とを含んでいる。圧縮がなければ、画像エンコーダから画像デコーダに搬送されるべき情報の甚だしい(sheer)量は、リアルタイム画像送信を実行不可能(impractical)にするであろう。送信される情報の量を低減するために、JPEG、MPEGおよびH. 263規格などの、いくつかの異なる圧縮方法が開発された。
Video coding standard
[0045] A digital image, such as a video image, a TV image, a still image, or an image generated by a video recorder or computer, may include pixels or samples arranged in horizontal and vertical lines. The number of pixels in a single image is typically tens of thousands. Each pixel generally includes luminance information and chrominance information. Without compression, the sheer amount of information to be conveyed from the image encoder to the image decoder would make real-time image transmission impractical. In order to reduce the amount of information transmitted, JPEG, MPEG and H.264. Several different compression methods have been developed, such as the H.263 standard.
[0046] ビデオコーディング規格は、ITU−T H. 261と、ISO/IEC MPEG−1 Visualと、ITU−T H. 262またはISO/IEC MPEG−2 Visualと、ITU−T H. 263と、ISO/IEC MPEG−4 Visualと、(ISO/IEC MPEG−4 AVCとしても知られる)ITU−T H. 264と、そのような規格の拡張を含むHEVCとを含む。 [0046] The video coding standard is ITU-T H.264. 261, ISO / IEC MPEG-1 Visual, and ITU-T H.264. 262 or ISO / IEC MPEG-2 Visual and ITU-T H.264. H.263, ISO / IEC MPEG-4 Visual, ITU-T H.264 (also known as ISO / IEC MPEG-4 AVC). H.264 and HEVC including extensions of such standards.
[0047] さらに、VESAによって、あるビデオコーディング規格、すなわち、DSCが開発された。DSC規格は、ディスプレイリンクを介した送信のためにビデオを圧縮することができるビデオ圧縮規格である。ディスプレイの解像度が増加するにつれて、ディスプレイを駆動するために必要とされるビデオデータの帯域幅は、対応して増加する。いくつかのディスプレイリンクは、そのような解像度についてディスプレイにビデオデータの全てを送信するための帯域幅を有しない可能性がある。従って、DSC規格は、ディスプレイリンクを介した相互運用可能な、視覚的ロスレス圧縮のための圧縮規格を規定する。 [0047] Furthermore, a video coding standard, DSC, was developed by VESA. The DSC standard is a video compression standard that can compress video for transmission over a display link. As the display resolution increases, the bandwidth of the video data required to drive the display increases correspondingly. Some display links may not have the bandwidth to send all of the video data to the display for such resolutions. Thus, the DSC standard defines a compression standard for visual lossless compression that is interoperable over display links.
[0048] DSC規格は、H. 264およびHEVCなどの、他のビデオコーディング規格とは異なる。DSCは、フレーム内圧縮(intra-frame compression)を含むが、フレーム間圧縮(inter-frame compression)を含まず、これは、ビデオデータをコーディングする際にDSC規格によって時間的情報が使用されない可能性があることを意味する。対照的に、他のビデオコーディング規格は、それらのビデオコーディング技法においてフレーム間圧縮を採用し得る。 [0048] The DSC standard is H.264. Different from other video coding standards such as H.264 and HEVC. DSC includes intra-frame compression but not inter-frame compression, which may not use temporal information by the DSC standard when coding video data. Means there is. In contrast, other video coding standards may employ interframe compression in their video coding techniques.
ビデオコーディングシステム
[0049] 添付の図面を参照して新規のシステム、装置、および方法の様々な態様が以下でより十分に説明される。しかしながら、本開示は、多くの異なる形態で実施され得、本開示全体にわたって提示される任意の特定の構造または機能に限定されるものと解釈されるべきではない。むしろ、これらの態様は、本開示が綿密で完全になり、本開示の範囲を当業者に十分に伝えるために提供されるものである。本明細書の教示に基づいて、本開示の範囲は、本開示の任意の他の態様とは無関係に実装されようと、本開示の任意の他の態様と組み合わせて実装されようと、本明細書で開示される新規のシステム、装置、および方法のいずれの態様をもカバーすると意図されていることを、当業者は理解するべきである。例えば、本明細書に記載されるいずれの数の態様を使用しても、装置は実装され得、または方法は実施され得る。さらに、本開示の範囲は、本明細書に記載される本開示の様々な態様に加えてまたはそれらの態様以外に、他の構造、機能、または構造および機能を使用して実施されるそのような装置または方法をカバーすることが意図される。本明細書で開示されるいずれの態様も請求項の1つまたは複数の要素によって具現化され得ることを理解されたい。
Video coding system
[0049] Various aspects of the novel systems, apparatus, and methods are described more fully hereinafter with reference to the accompanying drawings. However, this disclosure may be implemented in many different forms and should not be construed as limited to any particular structure or function presented throughout this disclosure. Rather, these aspects are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the disclosure to those skilled in the art. Based on the teachings herein, the scope of the present disclosure, whether implemented in combination with any other aspect of the present disclosure, or in combination with any other aspect of the present disclosure, It should be understood by those skilled in the art that it is intended to cover any aspect of the novel systems, devices, and methods disclosed herein. For example, an apparatus may be implemented or a method may be performed using any number of aspects described herein. Further, the scope of the present disclosure may be implemented using other structures, functions, or structures and functions in addition to or in addition to the various aspects of the present disclosure described herein. It is intended to cover various devices or methods. It should be understood that any aspect disclosed herein may be embodied by one or more elements of a claim.
[0050] 本明細書では特定の態様が説明されるが、これらの態様の多くの変形および置換は本開示の範囲内に入る。適切な態様のいくつかの利益および利点が説明されるが、本開示の範囲は特定の利益、使用、または目的に限定されることを意図したものではない。むしろ、本開示の態様は、異なるワイヤレス技術、システム構成、ネットワーク、および送信プロトコルに広く適用可能であることを意図したものであり、それらのいくつかを例として、図および適切な(preferred)態様の以下の説明において図示する。詳細な説明および図面は、本開示を限定するものではなく単に説明するものにすぎず、本開示の範囲は添付の特許請求の範囲およびそれの均等物によって定義される。 [0050] Although particular aspects are described herein, many variations and permutations of these aspects fall within the scope of the disclosure. Although some benefits and advantages of the appropriate aspects are described, the scope of the disclosure is not intended to be limited to particular benefits, uses, or objectives. Rather, the aspects of the present disclosure are intended to be broadly applicable to different wireless technologies, system configurations, networks, and transmission protocols, some of which are illustrated by way of example in the figures and preferred aspects. This is illustrated in the following description. The detailed description and drawings are merely illustrative of the disclosure rather than limiting, the scope of the disclosure being defined by the appended claims and equivalents thereof.
[0051] 添付の図面は例を図示している。添付の図面中の参照番号によって示される要素は、以下の説明における同様の参照番号によって示される要素に対応する。本開示では、序数語(例えば、「第1の」、「第2の」、「第3の」など)で始まる名前を有する要素は、必ずしもそれらの要素が特定の順序を有することを暗示するとは限らない。むしろ、そのような序数語は、同じまたは同様のタイプの異なる要素を指すために使用されるにすぎない。 [0051] The accompanying drawings illustrate examples. Elements indicated by reference numerals in the accompanying drawings correspond to elements indicated by like reference numerals in the following description. In this disclosure, elements having names that begin with ordinal words (eg, “first”, “second”, “third”, etc.) do not necessarily imply that they have a particular order. Is not limited. Rather, such ordinal words are only used to refer to different elements of the same or similar type.
[0052] 図1Aは、本開示で説明される態様による技法を利用し得る例示的なビデオコーディングシステム10を図示するブロック図である。本明細書で使用され説明される「ビデオコーダ」または「コーダ」という用語は、ビデオエンコーダとビデオデコーダの両方を総称的に指す。本開示では、「ビデオコーディング」または「コーディング」という用語は、ビデオ符号化とビデオ復号とを総称的に指すことがある。ビデオエンコーダおよびビデオデコーダに加えて、本出願で説明される態様は、トランスコーダ(transcoder)(例えば、ビットストリームを復号し、別のビットストリームを再符号化することができるデバイス)およびミドルボックス(middlebox)(例えば、ビットストリームを変更、変換、および/または他の場合には操作することができるデバイス)など、他の関係するデバイスに拡張され得る。
[0052] FIG. 1A is a block diagram illustrating an example
[0053] 図1Aに示されているように、ビデオコーディングシステム10は、宛先デバイス14(すなわち、「ビデオコーディングデバイス14」または「コーディングデバイス14」)によって後で復号される符号化ビデオデータを生成するソースデバイス12(すなわち、「ビデオコーディングデバイス12」または「コーディングデバイス12」)を含む。図1Aの例では、ソースデバイス12および宛先デバイス14は、別個のデバイスを構成する。しかしながら、ソースデバイス12および宛先デバイス14は、図1Bの例に示されているように、同じデバイス上にあるかまたはそれの一部であり得ることに留意されたい。
[0053] As shown in FIG. 1A,
[0054] もう一度図1Aを参照すると、ソースデバイス12および宛先デバイス14は、それぞれ、デスクトップコンピュータ、ノートブック(例えば、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレイヤ、ビデオゲームコンソール、ビデオストリーミングデバイスなどを含む、デバイス(ビデオコーディングデバイスとも呼ばれる)の広範囲にわたるデバイスのいずれかを備え得る。様々な実施形態では、ソースデバイス12および宛先デバイス14は、ワイヤレス通信のために装備され(すなわち、ワイヤレス通信を介して通信するように構成され)得る。
[0054] Referring once again to FIG. 1A, source device 12 and
[0055] ビデオコーディングシステム10のビデオコーディングデバイス12、14は、ワイヤレスワイドエリアネットワーク(WWAN)(例えば、セルラ)および/またはワイヤレスローカルエリアネットワーク(WLAN)キャリアのようなワイヤレスネットワークおよび無線技術を介して通信するように構成され得る。「ネットワーク」および「システム」という用語は、しばしば互換的に使用される。ビデオコーディングデバイス12、14の各々は、ユーザ機器(UE)、ワイヤレスデバイス、端末、モバイル局、加入者局などであり得る。
[0055] The
[0056] WWANキャリアは、例えば、符号分割多元接続(CDMA)、時分割多元接続(TDMA)、周波数分割多元接続(FDMA)、直交FDMA(OFDMA)、シングルキャリアFDMA(SC−FDMA)、および他のネットワークのようなワイヤレス通信ネットワークを含み得る。CDMAネットワークは、ユニバーサル地上無線アクセス(UTRA)、cdma2000などのような無線技術を実装し得る。UTRAは、広帯域CDMA(WCDMA(登録商標))およびCDMAの他の変形を含む。CDMA2000は、IS−2000、IS−95およびIS−856規格をカバーする。TDMAネットワークは、グローバル・システム・フォー・モバイルコミュニケーションズ(GSM)(登録商標)のような無線技術を実装し得る。OFDMAネットワークは、発展型UTRA(E−UTRA)、ウルトラ・モバイル・ブロードバンド(UMB)、IEEE 802. 11(Wi−Fi)、IEEE 802. 16(WiMAX)、IEEE 802. 20、Flash−OFDM(登録商標)などのような無線技術を実装し得る。UTRAおよびE−UTRAは、ユニバーサル・モバイル・テレコミュニケーション・システム(UMTS)の一部である。3GPP(登録商標)ロングタームエボリューション(LTE(登録商標))およびLTEアドバンスト(LTE−A)は、E−UTRAを使用するUMTSの最新リリースである。UTRA、E−UTRA、UMTS、LTE、LTE−AおよびGSMは、「第3世代パートナーシッププロジェクト」(3GPP)と名付けられた団体からの文書で説明されている。CDMA2000およびUMBは、「第3世代パートナーシッププロジェクト2」(3GPP2)名付けられた団体からの文書で説明されている。
[0056] WWAN carriers include, for example, code division multiple access (CDMA), time division multiple access (TDMA), frequency division multiple access (FDMA), orthogonal FDMA (OFDMA), single carrier FDMA (SC-FDMA), and others. Wireless communication networks, such as A CDMA network may implement a radio technology such as Universal Terrestrial Radio Access (UTRA), cdma2000, and so on. UTRA includes Wideband CDMA (WCDMA®) and other variants of CDMA. CDMA2000 covers IS-2000, IS-95 and IS-856 standards. A TDMA network may implement a radio technology such as Global System for Mobile Communications (GSM). OFDMA networks include Evolved UTRA (E-UTRA), Ultra Mobile Broadband (UMB),
[0057] ビデオコーディングシステム10のビデオコーディングデバイス12、14はまた、例えば、802.11a−1999(通常、「802.11a」と呼ばれる)、802.11b−1999(通常、「802.11b」と呼ばれる)、802.11g−2003(通常、「802.11g」と呼ばれる)などの修正を含む、IEEE802.11規格のような、1つまたは複数の規格に従ったWLAN基地局上で互いと通信し得る。
[0057]
[0058] 宛先デバイス14は、復号される符号化ビデオデータを、リンク16を介して受信し得る。リンク16は、ソースデバイス12から宛先デバイス14に符号化ビデオデータを移動することが可能な任意のタイプの媒体またはデバイスを備え得る。図1Aの例では、リンク16は、ソースデバイス12が符号化ビデオデータをリアルタイムで宛先デバイス14に送信することを可能にするための通信媒体を備え得る。符号化ビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、宛先デバイス14に送信され得る。通信媒体は、無線周波数(RF)スペクトルあるいは1つまたは複数の物理伝送路などの、任意のワイヤレスまたはワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットのようなグローバルネットワークなどの、パケットベースネットワークの一部を形成し得る。通信媒体は、ルータ、スイッチ、基地局、またはソースデバイス12から宛先デバイス14への通信を容易にするために有用であり得る任意の他の機器を含み得る。
[0058]
[0059] 図1Aの例では、ソースデバイス12は、ビデオソース18と、ビデオエンコーダ20(単に、エンコーダ20とも呼ばれる)と、出力インターフェース22とを含む。いくつかの場合には、出力インターフェース22は、変調器/復調器(モデム)および/または送信機を含み得る。ソースデバイス12において、ビデオソース18は、ビデオキャプチャデバイス、例えばビデオカメラ、前にキャプチャされたビデオを含んでいるビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェース、および/またはソースビデオとしてコンピュータグラフィックデータを生成するためのコンピュータグラフィックシステムなどのソース、あるいはそのようなソースの組合せを含み得る。一例として、ビデオソース18がビデオカメラである場合、ソースデバイス12および宛先デバイス14は、図1Bの例に図示されるように、いわゆる「カメラフォン」または「ビデオフォン」を形成し得る。しかしながら、本開示で説明される技法は、概してビデオコーディングに適用可能であり得、ワイヤレスおよび/またはワイヤードアプリケーションに適用され得る。
In the example of FIG. 1A, source device 12 includes a video source 18, a video encoder 20 (also referred to simply as encoder 20), and an
[0060] キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータ生成されたビデオは、ビデオエンコーダ20によって符号化され得る。符号化ビデオデータは、ソースデバイス12の出力インターフェース22を介して宛先デバイス14に送信され得る。符号化ビデオデータはまた(あるいは代替として)、復号および/または再生のための宛先デバイス14または他のデバイスによる後のアクセスのためにストレージデバイス31上に記憶され得る。図1Aおよび図1Bに図示されるビデオエンコーダ20は、図2Aに示されるビデオエンコーダ20、または本明細書で説明される他のビデオエンコーダを備え得る。
[0060] Captured video, previously captured video, or computer-generated video may be encoded by
[0061] 図1Aの例では、宛先デバイス14は、入力インターフェース28と、ビデオデコーダ30(単に、デコーダ30とも呼ばれる)と、ディスプレイデバイス32とを含む。いくつかの場合には、入力インターフェース28は、受信機および/またはモデムを含み得る。宛先デバイス14の入力インターフェース28は、リンク16を介しておよび/またはストレージデバイス31から符号化ビデオデータを受信し得る。リンク16を介して通信され、またはストレージデバイス31上に提供された符号化ビデオデータは、ビデオデータを復号する際に、ビデオデコーダ30などのビデオデコーダが使用するためのビデオエンコーダ20によって生成される様々なシンタックス要素を含み得る。そのようなシンタックス要素は、通信媒体上で送信された、記憶媒体上に記憶された、またはファイルサーバに記憶された符号化ビデオデータに含まれ得る。図1Aおよび図1Bに図示されているビデオデコーダ30は、図2Bに図示されているビデオデコーダ30、または本明細書で説明される他のビデオデコーダを備え得る。
In the example of FIG. 1A,
[0062] ディスプレイデバイス32は、宛先デバイス14と一体化されるかまたはその外部にあり得る。いくつかの例では、宛先デバイス14は、一体型ディスプレイデバイスを含み、また、外部ディスプレイデバイスとインターフェースするように構成され得る。他の例では、宛先デバイス14はディスプレイデバイスであり得る。概して、ディスプレイデバイス32は、復号ビデオデータをユーザに対して表示し、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスなどの、様々なディスプレイデバイスのいずれかを備え得る。
[0062] The
[0063] 関係する態様では、図1Bは例示的なビデオコーディングシステム10’を示し、ここにおいて、ソースデバイス12および宛先デバイス14はデバイス11上にあるかまたはそれの一部である。デバイス11は、「スマート」フォンなどのような電話ハンドセットであり得る。デバイス11は、ソースデバイス12および宛先デバイス14と動作可能に通信している(随意に存在する)プロセッサ/コントローラデバイス13を含み得る。図1Bのビデオコーディングシステム10’およびそれのコンポーネントは、他の場合には図1Aのビデオコーディングシステム10およびそれのコンポーネントと同様である。
[0063] In a related aspect, FIG. 1B shows an example video coding system 10 ', where the source device 12 and the
[0064] ビデオエンコーダ20およびビデオデコーダ30は、DSCなどの、ビデオ圧縮規格に従って動作し得る。代替的に、ビデオエンコーダ20およびビデオデコーダ30は、代替的にMPEG−4,Part10,AVCと呼ばれるITU−T H. 264規格、HEVCなどの、他のプロプライエタリ規格または業界規格、あるいはそのような規格の拡張に従って動作し得る。しかしながら、本開示の技法は、いかなる特定のコーディング規格にも限定されない。ビデオ圧縮規格の他の例は、MPEG−2およびITU−T H. 263を含む。
[0064]
[0065] 図1Aおよび図1Bの例には示されていないが、ビデオエンコーダ20およびビデオデコーダ30は、各々オーディオエンコーダおよびデコーダと統合され得、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理するために、適切なMUX−DEMUXユニット、または他のハードウェアおよびソフトウェアを含み得る。適用可能な場合、いくつかの例では、MUX−DEMUXユニットは、ITU H. 223マルチプレクサプロトコル、またはユーザデータグラムプロトコル(UDP)などの他のプロトコルに準拠し得る。
[0065] Although not shown in the examples of FIGS. 1A and 1B, the
[0066] ビデオエンコーダ20およびビデオデコーダ30は各々、1つまたは複数のマイクロプロセッサ、デジタルシグナルプロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアなどの、様々な適切なエンコーダ回路のいずれか、またはそれらの任意の組合せとして実装され得る。本技法が部分的にソフトウェアで実装されるとき、デバイスは、ソフトウェアのための命令を適切な非一時的コンピュータ可読媒体に記憶し、本開示の技法を実行するために1つまたは複数のプロセッサを使用してハードウェアでその命令を実行し得る。ビデオエンコーダ20およびビデオデコーダ30の各々は1つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも、それぞれのデバイスにおいて複合エンコーダ/デコーダの一部として統合され得る。
[0066] Each of
ビデオコーディングプロセス
[0067] 上記で簡潔に述べたように、ビデオエンコーダ20はビデオデータを符号化する。ビデオデータは1つまたは複数のピクチャを備え得る。ピクチャの各々は、ビデオの一部を形成する静止画像である。いくつかの事例では、ピクチャはビデオ「フレーム(frame)」と呼ばれ得る。ビデオエンコーダ20がビデオデータ(例えば、ビデオコーディングレイヤ(VCL)データおよび/または非VCLデータ)を符号化するとき、ビデオエンコーダ20は、ビットストリームを生成し得る。ビットストリームは、ビデオデータのコード化表現を形成するビットのシーケンスを含み得る。ビットストリームはコード化ピクチャと関連データとを含み得る。コード化ピクチャはピクチャのコード化表現である。VCLデータは、コード化ピクチャデータ(すなわち、(1つまたは複数の)コード化ピクチャのサンプルに関連付けられた情報)を含み、非VCLデータは、1つまたは複数のコード化ピクチャに関連付けられた制御情報(例えば、パラメータセットおよび/または補足的な拡張情報)を含み得る。
Video coding process
[0067] As briefly mentioned above,
[0068] ビットストリームを生成するために、ビデオエンコーダ20は、ビデオデータ中の各ピクチャに対して符号化演算を実行し得る。ビデオエンコーダ20がピクチャに対して符号化演算を実行するとき、ビデオエンコーダ20は、一連のコード化ピクチャと関連データとを生成し得る。関連データは、量子化パラメータ(QP:quantization parameter)などのコーディングパラメータのセットを含み得る。コード化ピクチャを生成するために、ビデオエンコーダ20は、ピクチャを等しいサイズのビデオブロックに区分し得る。ビデオブロックは複数のサンプルの2次元アレイであり得る。コーディングパラメータは、ビデオデータのあらゆるブロックについてコーディングオプション(例えば、コーディングモード)を定義し得る。コーディングオプションは、所望のRD性能を達成するために選択され得る。
[0068] To generate a bitstream,
[0069] いくつかの例では、ビデオエンコーダ20はピクチャを複数のスライスに区分し得る。スライスの各々は、画像またはフレーム中の領域の残り(the rest of the regions)からの情報なしに独立して復号され得る、画像(例えば、フレーム)中の空間的に別個の領域を含み得る。各画像またはビデオフレームは、単一のスライス中で符号化され得るか、あるいは各画像またはビデオフレームは、いくつかのスライス中で符号化され得る。DSCでは、各スライスを符号化するために割り振られるビットの数は、実質的に一定であり得る。ピクチャに対して符号化演算を実行することの一部として、ビデオエンコーダ20は、ピクチャの各スライスに対して符号化演算を実行し得る。ビデオエンコーダ20がスライスに対して符号化演算を実行するとき、ビデオエンコーダ20は、スライスに関連付けられた符号化データを生成し得る。スライスに関連付けられた符号化データは「コード化スライス(coded slice)」と呼ばれ得る。
[0069] In some examples,
DSCビデオエンコーダ
[0070] 図2Aは、本開示で説明される態様による技法を実装し得るビデオエンコーダ20の一例を図示するブロック図である。ビデオエンコーダ20は、本開示の技法の一部または全部を実行するように構成され得る。いくつかの例では、本開示で説明される技法は、ビデオエンコーダ20の様々なコンポーネント間で共有され得る。いくつかの例では、追加または代替として、プロセッサ(図示せず)が、本開示で説明される技法の一部または全部を実行するように構成され得る。
DSC video encoder
[0070] FIG. 2A is a block diagram illustrating an example of a
[0071] 説明の目的で、本開示では、DSCコーディングのコンテキストにおいてビデオエンコーダ20について説明する。しかしながら、本開示の技法は、他のコーディング規格または方法に適用可能であり得る。
[0071] For purposes of explanation, this disclosure describes
[0072] 図2Aの例では、ビデオエンコーダ20は複数の機能コンポーネントを含む。ビデオエンコーダ20の機能コンポーネントは、色空間変換器(color-space converter)105と、バッファ110と、平坦度検出器(flatness detector)115と、レートコントローラ(rate controller)120と、予測器(predictor)、量子化器(quantizer)、および再構成器コンポーネント(reconstructor component)125と、ラインバッファ(line buffer)130と、インデックスカラー履歴(indexed color history)135と、エントロピーエンコーダ(entropy encoder)140と、サブストリームマルチプレクサ(substream multiplexor)145と、レートバッファ(rate buffer)150とを含む。他の例では、ビデオエンコーダ20は、より多数の、より少数の、または異なる機能コンポーネントを含み得る。
[0072] In the example of FIG. 2A,
[0073] 色空間変換器105は、入力色空間をコーディング実装において使用される色空間に変換し得る。例えば、例示的な一実施形態では、入力ビデオデータの色空間は、赤、緑、および青(RGB)色空間中にあり、コーディングは、ルミナンスY、クロミナンスグリーンCg、およびクロミナンスオレンジCo(YCgCo)色空間において実装される。色空間変換は、ビデオデータへのシフトおよび追加を含む(1つまたは複数の)方法によって実行され得る。他の色空間(other color-spaces)中の入力ビデオデータが処理され得、他の色空間への変換も実行され得ることに留意されたい。
[0073] The
[0074] 関係する態様では、ビデオエンコーダ20は、バッファ110、ラインバッファ130、および/またはレートバッファ150を含み得る。例えば、バッファ110は、色空間変換されたビデオデータを、ビデオエンコーダ20の他の部分によるそれの使用に先立って保持(例えば、記憶)し得る。別の例では、色空間変換されたデータはより多くのビットを必要とし得るので、ビデオデータはRGB色空間中で記憶され得、色空間変換が必要に応じて実行され得る。
[0074] In a related aspect,
[0075] レートバッファ150はビデオエンコーダ20においてレート制御メカニズムの一部として機能し得、それは、レートコントローラ120に関して以下でより詳細に説明される。各ブロックを符号化することに費やされるビット数は、大いに、実質的に、ブロックの性質に基づいて変動することがある。レートバッファ150は、圧縮されたビデオにおけるレート変動を平滑化することができる。いくつかの実施形態では、レートバッファ(例えば、レートバッファ150)中に記憶されたビットが固定ビットレート(CBR:constant bit rate)でレートバッファから削除されるCBRバッファモデルが採用される。CBRバッファモデルでは、ビデオエンコーダ20がビットストリームにあまりに多くのビットを加えた場合、レートバッファ150はオーバーフローし得る。一方、ビデオエンコーダ20は、レートバッファ150のアンダーフローを防ぐために、十分なビットを加える必要があり得る。
[0075] The rate buffer 150 may function as part of a rate control mechanism in the
[0076] ビデオデコーダ側では、ビットは、固定ビットレートでビデオデコーダ30のレートバッファ155(以下でさらに詳細に説明される図2Bを参照)に加えられ得、ビデオデコーダ30は、各ブロックについて可変数のビットを削除し得る。適切な復号を保証するために、ビデオデコーダ30のレートバッファ155は、圧縮されたビットストリームの復号中に「アンダーフロー」または「オーバーフロー」すべきでない。
[0076] On the video decoder side, bits may be added to the rate buffer 155 of the video decoder 30 (see FIG. 2B, described in further detail below) at a fixed bit rate, and the
[0077] いくつかの実施形態では、バッファフルネス(BF:buffer fullness)は、バッファに現在あるビットの数を表す値BufferCurrentSizeと、レートバッファ150のサイズ、すなわち、任意の時点においてレートバッファ150に記憶され得るビットの最大数を表すBufferMaxSizeとに基づいて定義され得る。BFは次のように計算され得る。
[0078] 平坦度検出器115は、ビデオデータ中の複雑な(すなわち、平坦でない)エリアからビデオデータ中の平坦な(すなわち、単純なまたは均一な)エリアへの変化を検出することができる。「複雑な」および「平坦な」という用語は、本明細書では、概して、ビデオエンコーダ20がビデオデータのそれぞれの領域を符号化することの困難さを指すために使用される。従って、本明細書で使用される複雑なという用語は、概して、ビデオデータの領域が、ビデオエンコーダ20が符号化することが複雑であることを表し、例えば、テクスチャードビデオデータ(textured video data)、高い空間周波数、および/または符号化することが複雑である他の特徴を含み得る。本明細書で使用する平坦なという用語は、概して、ビデオデータの領域が、ビデオエンコーダ20がエンコーダすることが単純であることを表し、例えば、ビデオデータ中の滑らかな勾配、低い空間周波数、および/または符号化することが単純である他の特徴を含み得る。複雑な領域と平坦な領域との間の遷移が、符号化ビデオデータ中の量子化アーティファクト(quantization artifact)を低減するために、ビデオエンコーダ20によって使用され得る。詳細には、レートコントローラ120、ならびに予測器、量子化器、および再構成器コンポーネント125は、複雑な領域から平坦な領域への遷移が識別されたとき、そのような量子化アーティファクトを低減することができる。
[0078] The
[0079] レートコントローラ120は、コーディングパラメータのセット、例えば、QPを決定する。QPは、レートバッファ150がオーバーフローまたはアンダーフローしないことを保証するターゲットビットレートについてピクチャ品質を最大にするために、レートバッファ150のバッファフルネスとビデオデータの画像アクティビティとに基づいて、レートコントローラ120によって調整され得る。レートコントローラ120はまた、最適RD性能を達成するために、ビデオデータの各ブロックについて特定のコーディングオプション(例えば、特定のモード)を選択する。レートコントローラ120は、再構成された画像の歪みを、レートコントローラ120がビットレート制約を満たすように、すなわち、全体的実コーディングレート(overall actual coding rate)がターゲットビットレート内に収まるように最小限に抑える。
[0079] The
[0080] 予測器、量子化器、および再構成器コンポーネント125は、ビデオエンコーダ20の少なくとも3つの符号化演算を実行し得る。予測器、量子化器、および再構成器コンポーネント125は、いくつかの異なるモードで予測を実行し得る。1つの例示的なプレディケーションモード(predication mode)は、メディアン適応予測(median-adaptive prediction)の修正バージョンである。メディアン適応予測はロスレスJPEG規格(JPEG−LS)によって実装され得る。予測器、量子化器、および再構成器コンポーネント125によって実行され得るメディアン適応予測の修正バージョンは、3つの連続するサンプル値の並列予測を可能にし得る。別の例示的な予測モードはブロック予測である。ブロック予測では、上のラインまたは同じラインの左にある、前に再構成されたピクセルからサンプルが予測される。いくつかの実施形態では、ビデオエンコーダ20およびビデオデコーダ30は、両方とも、ブロック予測使用を決定するために、再構成されたピクセルに対して同じ探索を実行し得、従って、ビットはブロック予測モードで送られる必要がない。他の実施形態では、ビデオエンコーダ20は、ビデオデコーダ30が別個の探索を実行する必要がないように、探索を実行し、ビットストリームにおいてブロック予測ベクトルをシグナリングし得る。成分範囲(component range)の中点を使用してサンプルが予測される中点予測モード(midpoint prediction mode)も実装され得る。中点予測モードは、ワーストケースサンプルにおいてさえも、圧縮されたビデオに必要なビットの数の抑制(bounding)を可能にし得る。図3−26を参照して以下でさらに論じられるように、予測器、量子化器、および再構成器コンポーネント125は、本明細書で説明される1つまたは複数の技法に基づいて、ビデオデータのブロック(または予測の任意の他のユニット)をコーディング(例えば、符号化または復号)するように構成され得る。例えば、予測器、量子化器、および再構成器コンポーネント125は、図3−26で図示される方法を実行するように構成され得る。他の実施形態では、予測器、量子化器、および再構成器コンポーネント125は、ビデオエンコーダ20の1つまたは複数の他のコンポーネントを用いて本明細書で説明される1つまたは複数の方法または技法を実行するように構成され得る。
[0080] The predictor, quantizer, and reconstructor component 125 may perform at least three encoding operations of the
[0081] 予測器、量子化器、および再構成器コンポーネント125はまた、量子化を実行する。例えば、量子化は、シフタを使用して実装され得る2のべき乗量子化器(power-of-2 quantizer)を介して実行され得る。2のべき乗量子化器の代わりに他の量子化技法が実装され得ることに留意されたい。予測器、量子化器、および再構成器コンポーネント125によって実行される量子化は、レートコントローラ120によって決定されたQPに基づき得る。最終的に、予測器、量子化器、および再構成器コンポーネント125はまた、予測値に逆量子化された残差を加えることと、結果がサンプル値の有効範囲の外側にないことを保証することとを含む再構成を実行する。
[0081] The predictor, quantizer, and reconstructor component 125 also performs quantization. For example, the quantization may be performed via a power-of-2 quantizer that may be implemented using a shifter. Note that other quantization techniques may be implemented instead of a power-of-two quantizer. The quantization performed by the predictor, quantizer, and reconstructor component 125 may be based on the QP determined by the
[0082] 予測器、量子化器、および再構成器コンポーネント125によって実行される予測、量子化、および再構成に対する上記で説明された例示的な手法は、単なる事例すぎず、他の手法が実装され得ることに留意されたい。また、予測器、量子化器、および再構成器コンポーネント125は、予測、量子化、および/または再構成を実行するための(1つまたは複数の)サブコンポーネントを含み得ることに留意されたい。さらに、予測、量子化、および/または再構成は、予測器、量子化器、および再構成器コンポーネント125の代わりにいくつかの別個のエンコーダコンポーネントによって実行され得ることに留意されたい。 [0082] The exemplary techniques described above for prediction, quantization, and reconstruction performed by the predictor, quantizer, and reconstructor components 125 are merely examples, and other techniques are implemented. Note that it can be done. Note also that the predictor, quantizer, and reconstructor component 125 may include subcomponent (s) for performing prediction, quantization, and / or reconstruction. Further, it should be noted that prediction, quantization, and / or reconstruction may be performed by several separate encoder components instead of the predictor, quantizer, and reconstructor component 125.
[0083] ラインバッファ130は、予測器、量子化器、および再構成器コンポーネント125ならびにインデックスカラー履歴(indexed color history)135が、バッファされたビデオデータを使用することができるように、予測器、量子化器、および再構成器コンポーネント125からの出力を保持(例えば、記憶)する。インデックスカラー履歴135は、最近使用されたピクセル値を記憶する。これらの最近使用されたピクセル値は、専用シンタックスを介してビデオエンコーダ20によって直接参照され得る。
[0083]
[0084] エントロピーエンコーダ140は、インデックスカラー履歴135と、平坦度検出器115によって識別された平坦度遷移(flatness transitions)とに基づいて、予測器、量子化器、および再構成器コンポーネント125から受信された予測残差および任意の他のデータ(例えば、予測器、量子化器、および再構成器コンポーネント125によって識別されたインデックス)を符号化する。いくつかの例では、エントロピーエンコーダ140は、サブストリームエンコーダごとにクロックごとに3つのサンプルを符号化し得る。サブストリームマルチプレクサ145は、ヘッダレスパケット多重化方式(headerless packet multiplexing scheme)に基づいてビットストリームを多重化し得る。これは、ビデオデコーダ30が並列に3つのエントロピーデコーダを動作させることを可能にし、クロックごとの3つのピクセルの復号を容易にする。サブストリームマルチプレクサ145は、パケットがビデオデコーダ30によって効率的に復号され得るようにパケット順序を最適化し得る。クロックごとの2のべき乗個のピクセル(例えば、2つのピクセル/クロックまたは4つのピクセル/クロック)の復号を容易にし得る、エントロピーコーディングに対する異なる手法が実装され得ることに留意されたい。
[0084] Entropy encoder 140 receives from predictor, quantizer, and reconstructor component 125 based on index color history 135 and flatness transitions identified by
DSCビデオデコーダ
[0085] 図2Bは、本開示で説明される態様による技法を実装し得るビデオデコーダ30の一例を図示するブロック図である。ビデオデコーダ30は、本開示の技法の一部または全部を実行するように構成され得る。いくつかの例では、本開示で説明される技法は、ビデオデコーダ30の様々なコンポーネント間で共有され得る。いくつかの例では、追加または代替として、プロセッサ(図示せず)が、本開示で説明される技法の一部または全部を実行するように構成され得る。
DSC video decoder
[0085] FIG. 2B is a block diagram illustrating an example of a
[0086] 説明の目的で、本開示では、DSCコーディングのコンテキストにおいてビデオデコーダ30について説明する。しかしながら、本開示の技法は、他のコーディング規格または方法に適用可能であり得る。
[0086] For purposes of explanation, this disclosure describes
[0087] 図2Bの例では、ビデオデコーダ30は複数の機能コンポーネントを含む。ビデオデコーダ30の機能コンポーネントは、レートバッファ155と、サブストリームデマルチプレクサ160と、エントロピーデコーダ165と、レートコントローラ170と、予測器、量子化器、および再構成器コンポーネント175と、インデックスカラー履歴180と、ラインバッファ185と、色空間変換器190とを含む。ビデオデコーダ30の図示されたコンポーネントは、図2A中のビデオエンコーダ20に関して上記で説明された対応するコンポーネントに類似する。従って、ビデオデコーダ30のコンポーネントの各々は、上記で説明されたビデオエンコーダ20の対応するコンポーネントと同様の様式で動作し得る。いくつかの実施形態では、ビデオエンコーダ20および/またはビデオデコーダ30の1つまたは複数のコンポーネントは、このようなコンポーネントのタスクを行うように構成されたソフトウェアコードを実行するように構成された1つまたは複数のハードウェアプロセッサで実装され得る。他の実施形態では、ビデオエンコーダ20および/またはビデオデコーダ30の1つまたは複数のコンポーネントは、このようなコンポーネントのタスクを行うように構成されたハードウェア回路で実装され得る。
[0087] In the example of FIG. 2B, the
DSCにおけるスライス
[0088] 上述のように、スライスは、概して、画像またはフレーム中の領域の残りからの情報を使用することなく独立して復号され得る、画像またはフレーム中の空間的に別個の領域を指す。各画像またはビデオフレームは単一のスライス中で符号化され得るか、またはそれはいくつかのスライス中で符号化され得る。DSCでは、各スライスを符号化するために割り振られるターゲットビットは、実質的に一定であり得る。
Slice in DSC
[0088] As described above, a slice generally refers to a spatially distinct region in an image or frame that can be independently decoded without using information from the rest of the region in the image or frame. Each image or video frame can be encoded in a single slice, or it can be encoded in several slices. In DSC, the target bits allocated to encode each slice may be substantially constant.
ブロック予測モード
[0089] ビデオデータの単一のブロックはいくつかのピクセルを含み得、ビデオデータの各ブロックは、ブロックがコーディングされ得るいくつかの潜在的なコーディングモードを有する。そのようなコーディングモードのうちの1つが、ブロック予測モードである。ブロック予測モードでは、コーダは、(例えば、現在ブロックが現在スライスの第1のライン中にない場合)前の再構成されたライン中で、または(例えば、現在ブロックが現在スライスの第1のライン中にある場合)コーディングされる現在ブロックに(例えば、ピクセル値が)近い、同じライン中の前の再構成されたブロック中で候補ブロックを見つけることを試みる。いくつかの実施形態では、差分絶対値和(SAD:Sum of Absolute Differences)メトリックによって、ピクセル値間の近さが決定される。コーダは、(例えば、エンコーダとデコーダの両方に知られているあらかじめ定められた値であり得る)探索範囲によって定義された前に再構成されたブロックの任意の部分中で候補ブロックを見つけることを試み得る。探索範囲は、エンコーダが、探索コストを最小限に抑えながら、良好な一致を見つけるために、探索範囲内に潜在的な候補を有するように定義される。ブロック予測モードのコーディング効率は、良好な候補(すなわち、コーディングされる現在ブロックにピクセル値が近いと決定された、探索範囲内の候補)が発見された場合、候補ブロックと現在ブロックとの間の(残差として知られる)差分が小さくなるという事実から来る。小さい残差は、現在ブロックの実際のピクセル値をシグナリングするために必要とされるビットの数と比較して、シグナリングするためにより少数のビットを要し、それにより、より低いRDコストが生じ、RDメカニズムによって選択される可能性が増加する。ある特定のタイプのグラフィックコンテンツについて、ブロック予測モードを有効にすることからの性能ブーストが極めて著しい。
Block prediction mode
[0089] A single block of video data may include several pixels, and each block of video data has several potential coding modes in which the block may be coded. One such coding mode is the block prediction mode. In block prediction mode, the coder is in the previous reconstructed line (eg, if the current block is not in the first line of the current slice) or (eg, the current block is in the first line of the current slice). Attempts to find a candidate block in a previous reconstructed block in the same line that is close (eg, pixel value) to the current block being coded. In some embodiments, the proximity between pixel values is determined by a Sum of Absolute Differences (SAD) metric. The coder will find a candidate block in any part of the previously reconstructed block defined by the search range (which may be a predetermined value known to both encoder and decoder, for example). You can try. The search range is defined such that the encoder has potential candidates within the search range in order to find a good match while minimizing the search cost. The coding efficiency of the block prediction mode is such that if a good candidate is found (ie, a candidate in the search range whose pixel value is determined to be close to the current block being coded), it is between the candidate block and the current block. Comes from the fact that the difference (known as the residual) is smaller. A small residual requires fewer bits to signal compared to the number of bits required to signal the actual pixel value of the current block, thereby resulting in a lower RD cost, The possibility of being selected by the RD mechanism increases. For certain types of graphic content, the performance boost from enabling the block prediction mode is extremely significant.
ブロック予測モードでのパラメータ
[0090] ブロック予測モードは、指定された探索範囲が与えられると、符号化される現在ブロックからの最小歪みを提供する候補ブロックを生成するように設計される。いくつかの実施形態では、最小歪みは、SADを使用して定義される。本開示のいくつかの実装では、ブロック予測方法は、3つのパラメータ、すなわち、探索範囲(SR:search range)と、スキュー(skew)(α)と、区分サイズ(partition size)(β)とによって定義される。これらの3つのパラメータは、ブロック予測モードの性能に影響を及ぼし、実装中に調整(すなわち、修正または再構成)され得る。これらのパラメータは、エンコーダとデコーダの両方に知られ得る。
Parameters in block prediction mode
[0090] The block prediction mode is designed to generate candidate blocks that provide the minimum distortion from the current block to be encoded given a specified search range. In some embodiments, the minimum distortion is defined using SAD. In some implementations of the present disclosure, the block prediction method is based on three parameters: a search range (SR), a skew (α), and a partition size (β). Defined. These three parameters affect the performance of the block prediction mode and can be adjusted (ie modified or reconfigured) during implementation. These parameters can be known to both the encoder and the decoder.
ブロック予測モードでの探索空間
[0091] 本開示のいくつかの実施形態では、探索空間(例えば、エンコーダが、候補ブロックを見つけるために探索し得る、ピクセルの空間ロケーション)は、現在ブロックの特性に基づいて異なり得る。探索空間は、全ての前に再構成されたブロック/ピクセルを包含し得るが、エンコーダおよび/またはデコーダは、例えば、計算複雑さ(computational complexity)を低減するために、候補ブロックのための探索を探索空間内の指定された部分(例えば、ビットストリーム中であらかじめ定義されるかまたはシグナリングされるかのいずれかである1つまたは複数のパラメータによって定義される「探索範囲」)に制限し得る。ブロック予測探索空間の例が図3−図6に示される。図3および図4は、現在スライスの第1のライン中にない現在ブロック(例えば、現在ブロック308および408)を伴う場合を示す。図5および図6は、現在スライスの第1のライン中にある現在ブロック(例えば、現在ブロック506および606)を伴う場合を示す。これらの2つの場合は、スライス中の第1のラインが垂直ネイバー(vertical neighbor)を有していないので、別々に処理される。従って、現在ラインからの再構成されたピクセルは、探索範囲(例えば、探索範囲508および608)として活用され得る。本開示では、現在スライス中の第1のラインはFLSと呼ばれ得、現在スライス中の任意の他のラインはNFLSと呼ばれ得る。
Search space in block prediction mode
[0091] In some embodiments of the present disclosure, the search space (eg, the spatial location of pixels that an encoder may search to find a candidate block) may vary based on the characteristics of the current block. While the search space may include all previously reconstructed blocks / pixels, the encoder and / or decoder may, for example, perform a search for candidate blocks to reduce computational complexity. It may be limited to a specified portion within the search space (eg, a “search scope” defined by one or more parameters that are either predefined or signaled in the bitstream). Examples of the block prediction search space are shown in FIGS. 3 and 4 illustrate the case with a current block that is not in the first line of the current slice (eg,
[0092] さらに、本明細書で説明されるブロック予測技法は、単一のラインバッファ(すなわち、1Dブロックサイズ)を使用するコーデックまたは複数のラインバッファ(すなわち、2Dブロックサイズ)を使用するコーデックのいずれかにおいて実装され得る。1Dの場合のための探索空間の例が図3および図5に示され、2Dの場合のための探索空間の例が図4および図6に示される。2Dの場合、探索範囲は、前の再構成されたライン(例えば、前のライン402)からのピクセル、または2Dブロック中のラインと同じラインからの再構成されたブロック(例えば、現在ブロック606のすぐ左にある、現在ライン602中の前の604)を含み得る。2Dブロックは、水平方向または垂直方向のいずれかあるいはその両方に区分され得る。ブロック区分を伴う場合、各ブロック区分について、ブロック予測ベクトルが指定され得る。
[0092] Further, the block prediction techniques described herein may be used for codecs that use a single line buffer (ie, 1D block size) or codecs that use multiple line buffers (ie, 2D block size). It can be implemented in either. Examples of search spaces for the 1D case are shown in FIGS. 3 and 5, and examples of search spaces for the 2D case are shown in FIGS. 4 and 6. For 2D, the search range is the pixel from the previous reconstructed line (eg, previous line 402) or the reconstructed block (eg, of current block 606) from the same line as the line in the 2D block. It may include the previous 604) in the
ブロック予測モードの例示的な実装
[0093] 本開示のいくつかの実施形態では、SAD以外の歪みメトリック、例えば2乗差分和(SSD:sum of squared difference)が使用され得る。代替または追加として、歪みは重み付けによって修正され得る。例えば、YCoCg色空間が使用されている場合、コストは次のように計算され得る。
[0093] In some embodiments of the present disclosure, distortion metrics other than SAD, such as sum of squared difference (SSD), may be used. Alternatively or additionally, distortion can be corrected by weighting. For example, if the YCoCg color space is used, the cost can be calculated as follows:
[0094] 本明細書で説明されるブロック予測技法は、RGB色空間またはYCoCg色空間のいずれか中で実行され得る。さらに、代替の実装は、両方の色空間を使用し、2つの色空間のうちのどちらが選択されるか(例えば、レートおよび歪みに関して最低コストを有するのがどちらの色空間か)を示す1ビットフラグをデコーダにシグナリングし得る。 [0094] The block prediction techniques described herein may be performed in either the RGB color space or the YCoCg color space. In addition, the alternative implementation uses both color spaces, and one bit indicating which of the two color spaces is selected (eg, which color space has the lowest cost with respect to rate and distortion) The flag may be signaled to the decoder.
[0095] FLSに関する本開示のいくつかの実施形態では、1つまたは複数の直前の再構成されたブロック(direct previous reconstructed block or blocks)は、パイプライン化制約およびタイミング制約により探索範囲から除外され得る。例えば、ハードウェア実装に応じて、コーダは、現在ブロックがコーダによって処理される時までに、直前の再構成されたブロックの処理を完了しない可能性があり(例えば、前のブロックのための再構成されたピクセルは、コーダが現在ブロックを処理し始めるときに知られていない可能性があり)、その結果、遅延または失敗が生じる。そのような実装では、前の再構成されたブロックの使用を、再構成されたピクセル値が知られているブロックに制限することによって(例えば、1つまたは複数の直前の再構成されたブロックを除外することによって)、上記に示されたパイプライン化問題は解決され得る。NFLSに関する本開示のいくつかの実施形態では、現在ブロックの左の探索範囲は、前の再構成されたラインではなく、同じラインからであり得る。このような実施形態のうちのいくつかでは、1つまたは複数の前の再構成されたブロックは、パイプライン化制約およびタイミング制約により探索範囲から除外され得る。 [0095] In some embodiments of the present disclosure relating to FLS, one or more previous reconstructed blocks or blocks are excluded from the search range due to pipeline constraints and timing constraints. obtain. For example, depending on the hardware implementation, the coder may not complete the processing of the previous reconstructed block by the time the current block is processed by the coder (eg, replay for the previous block). The constructed pixel may not be known when the coder starts processing the current block), resulting in delay or failure. In such an implementation, by restricting the use of the previous reconstructed block to blocks where the reconstructed pixel value is known (eg, one or more previous reconstructed blocks). By excluding) the pipelining problem shown above can be solved. In some embodiments of the present disclosure for NFLS, the search range to the left of the current block may be from the same line, not the previous reconstructed line. In some of such embodiments, one or more previous reconstructed blocks may be excluded from the search range due to pipelining constraints and timing constraints.
NFLSの例示的な実装
[0096] 図3に示されているように、ブロック予測方法は、現在ブロック308のための候補を見つけるために、探索空間中で探索範囲310(SR)を探索し得る(および図4の探索空間400中でも同様である)。符号化される現在ブロック308の第1のピクセルのx座標位置がjである場合、探索空間内の全ての候補ブロックの開始位置のセットkが次のように与えられ得る。
[0096] As shown in FIG. 3, the block prediction method may search the search range 310 (SR) in the search space to find candidates for the current block 308 (and the search of FIG. 4). The same applies to the space 400). If the x coordinate position of the first pixel of the
[0097] この例では、パラメータαは、符号化される現在ブロックに対する探索範囲310のx座標位置をスキューする(skews)。αのより高い値が探索範囲310を右にシフトし、一方、αのより低い値が探索範囲310を左にシフトする。例えば、(i)32のSRおよび15のαが探索範囲310を前のライン302の中央に置き(place)得、(ii)32のSRおよび0のαが探索範囲310を前のライン302の左側に置き得、(iii)32のSRおよび31のαが探索範囲310を前のライン302の右側に置き得る。
[0097] In this example, the parameter α skews the x coordinate position of the
[0098] 本開示のいくつかの実装では、探索範囲内にあるが、スライス境界の外側にあるピクセルが、そのピクセルのためのダイナミックレンジの1/2に設定され得る。例えば、コンテンツがRGB888である場合、R、G、およびBのために128のデフォルト値が使用され得る。コンテンツがYCoCg空間中にある場合、Yのために128のデフォルト値が使用され得、CoおよびCgのために0のデフォルト値が使用され得る(例えば、CoおよびCgは、0を中心とする9ビット値である)。 [0098] In some implementations of the present disclosure, a pixel that is within the search range but outside the slice boundary may be set to 1/2 of the dynamic range for that pixel. For example, if the content is RGB888, 128 default values for R, G, and B may be used. If the content is in YCoCg space, a default value of 128 may be used for Y and a default value of 0 may be used for Co and Cg (eg, Co and Cg are 9 centered on 0) Bit value).
FLSの例示的な実装
[0099] 図5に示されているように、探索範囲は、FLSの場合について異なり得る。これは、垂直ネイバーが、そのような垂直ネイバーが現在フレームの外側にあるので、またはそのような垂直ネイバーが異なるスライス内に含まれているので、利用可能でないからである。FLSの場合に関する本開示のいくつかの実施形態では、ブロック予測のために現在ライン中のピクセルが使用され得る。一実施形態では、現在ブロックの左の現在ライン中の任意のピクセルは探索範囲の一部として考慮され得る。別の実施形態では、1つまたは複数の前にコーディングされたブロック(例えば、現在ブロックのすぐ左にある前のブロック504)は、パイプライン化制約およびタイミング制約により探索範囲から除外され得る。
Example implementation of FLS
[0099] As shown in FIG. 5, the search range may be different for the FLS case. This is because vertical neighbors are not available because such vertical neighbors are currently outside the frame, or because such vertical neighbors are included in different slices. In some embodiments of the present disclosure for the FLS case, the pixels in the current line may be used for block prediction. In one embodiment, any pixel in the current line to the left of the current block can be considered as part of the search range. In another embodiment, one or more previously coded blocks (eg, the
[0100] FLSのいくつかの実装では、スライスの第1のライン中の最初の数個のブロックのための利用可能な範囲は、一般に他のブロックのために予想される探索範囲よりも小さくなり得る。これは、候補ブロックのための有効な位置が、ラインの最初に開始し、現在ブロックの前に終了するからである。FLS中の最初の数個のブロックの場合、この有効範囲は、所望の範囲(例えば、32個または64個の位置)よりも小さくなり得る。従って、これらのブロックの場合、探索範囲は、候補ブロックの各ブロック区分が探索範囲内に完全に含まれているように調整される必要があり得る。NFLSの場合、探索範囲は、探索位置の総数が、定義された探索範囲(例えば、32個または64個のピクセル位置)に等しくなるように左または右にシフトされ得る。jが現在ブロック中の第1のピクセルであるので、現在ブロック中の最後のピクセルはj+blkWidth−1である。この理由で、探索範囲は、左に(blkWidth−1)ピクセルシフトされる必要があり得る。 [0100] In some implementations of FLS, the available range for the first few blocks in the first line of a slice will generally be less than the expected search range for other blocks. obtain. This is because the valid position for the candidate block starts at the beginning of the line and ends before the current block. For the first few blocks in the FLS, this effective range may be smaller than the desired range (eg, 32 or 64 positions). Thus, for these blocks, the search range may need to be adjusted so that each block segment of the candidate block is completely contained within the search range. For NFLS, the search range may be shifted to the left or right so that the total number of search locations is equal to the defined search range (eg, 32 or 64 pixel locations). Since j is the first pixel in the current block, the last pixel in the current block is j + blkWidth-1. For this reason, the search range may need to be shifted (blkWidth-1) pixels to the left.
[0101] FLSのいくつかの実装では、符号化される現在ブロックの第1のピクセルのx座標ロケーションがjと呼ばれる場合、探索範囲内の全ての候補ブロックの開始位置のセットが次のように与えられ得る。 [0101] In some implementations of FLS, if the x coordinate location of the first pixel of the current block to be encoded is called j, the set of starting positions of all candidate blocks within the search range is Can be given.
[0102] (i)直近の前の再構成されたブロックが探索範囲の一部であり、例えば、α=1である場合、
[0103] (ii)n個の直近の前の再構成されたブロックが探索範囲から除外されるである場合、
[0104] ここで、blkxはブロック幅である。NFLSの場合に関して上記で説明されたように、スライス境界の外側の任意のピクセルがデフォルト値に設定され得る。また、スキューパラメータ(skew parameter)がFLSの場合に関連付けられる必要がないことに留意されたい。 [0104] Here, blkx is a block width. As described above for the NFLS case, any pixel outside the slice boundary can be set to a default value. Note also that there is no need to be associated when the skew parameter is FLS.
ブロック予測モードでコーディングするための例示的なフローチャート
[0105] 図7を参照して、ブロック予測モードでビデオデータのブロックをコーディングするための例示的なプロシージャが説明される。図7に示されているステップは、ビデオエンコーダ(例えば、図2A中のビデオエンコーダ20)、ビデオデコーダ(例えば、図2B中のビデオデコーダ30)、またはそれらの(1つまたは複数の)コンポーネントによって実行され得る。便宜上、方法700は、ビデオエンコーダ20、ビデオデコーダ30、または別のコンポーネントであり得る、(単にコーダとも呼ばれる)ビデオコーダによって実行されるものとして説明される。
Exemplary flowchart for coding in block prediction mode
[0105] With reference to FIG. 7, an exemplary procedure for coding a block of video data in a block prediction mode is described. The steps shown in FIG. 7 may be performed by a video encoder (eg,
[0106] 方法700はブロック701において開始する。ブロック705において、コーダは、現在スライス中の現在ブロックを予測するために使用される候補ブロックを決定する。候補ブロックは、1つまたは複数のブロック予測パラメータによって定義された複数のロケーション(または複数のピクセル位置)の範囲内にあり得る。例えば、ブロック予測パラメータは、(i)複数のロケーションの範囲のサイズを定義する探索範囲パラメータと、(ii)現在ブロックに関する複数のロケーションの範囲の相対ロケーション(relative location)を定義するスキューパラメータと、(iii)現在ブロック中の各区分のサイズを定義する区分サイズパラメータとを含み得る。本開示のいくつかの実施形態では、探索範囲パラメータ、スキューパラメータ、および区分サイズパラメータの各々は、時間的にではなく、空間的に、候補ブロックの複数のロケーションを定義する。
[0106] The
[0107] ブロック710において、コーダは、候補ブロックと現在ブロックとに基づいて予測ベクトルを決定する。予測ベクトルは、現在ブロックに関する候補ブロックのロケーションを識別し得る。予測ベクトルは、1つまたは複数の座標値(例えば、1D空間中のオフセットを示す座標値)を含み得る。ブロック715において、コーダは、予測ベクトルをシグナリングすることを少なくとも部分的に介して、ブロック予測モードで現在ブロックをコーディングする。いくつかの実施形態では、コーダはまた、候補ブロックと現在ブロックとの間の残差をシグナリングし得る。現在ブロックの実際のピクセル値をシグナリングしなければならないのではなく、候補ブロックのロケーションを識別する予測ベクトルと、現在ブロックと候補ブロックとの間の差分を表す残差とをシグナリングすることによって、ビット節約(Bit saving)が達成され得る。方法700はブロック720において終了する。
[0107] At
[0108] 方法700では、図7に示されているブロックのうちの1つまたは複数は削除される(例えば、実行されない)可能性があり、および/または方法が実行される順序は入れ替えられ得る。いくつかの実施形態では、さらなるブロックが方法700に追加され得る。本開示の実施形態は、図7に示されている例にまたはそれによって限定されず、他の変形が本開示の趣旨から逸脱することなく実装され得る。
[0108] In
候補ブロックを見つけた後
[0109] 最良の候補ブロックが決定された後、候補ブロックのピクセル値は、現在ブロックのピクセル値から減算され、その結果、残差が生じる。残差は、ブロック予測モードに関連付けられたあらかじめ選択されたQPに基づいて量子化され得る。量子化された残差は、(固定長または可変長のいずれかであり得る)コードブックを使用して符号化され、固定長コード(fixed-length code)または可変長コード(variable-length code)を使用してシグナリングされ得る。選択されたコードブックは、コーディング効率およびハードウェア複雑さ要件に基づき得る。例えば、選択されたコードブックは指数ゴロムコードブック(Exp-Golomb codebook)であり得る。本開示のいくつかの実施形態では、既存のDSC実装のデルタサイズ単位可変長コーディング(DSU−VLC:delta size unit variable length coding)と同様であるエントロピーコーディング方式が使用され得る。いくつかの実施形態では、残差は、上記で説明された量子化の前に、(例えば、直接コサイン変換、アダマール変換、または他の知られている変換を使用して)変換され得る。
After finding candidate blocks
[0109] After the best candidate block is determined, the pixel value of the candidate block is subtracted from the pixel value of the current block, resulting in a residual. The residual may be quantized based on a preselected QP associated with the block prediction mode. The quantized residual is encoded using a codebook (which can be either fixed-length or variable-length) and can be either a fixed-length code or a variable-length code. May be signaled using. The selected codebook may be based on coding efficiency and hardware complexity requirements. For example, the selected codebook may be an Exp-Golomb codebook. In some embodiments of the present disclosure, an entropy coding scheme similar to delta size unit variable length coding (DSU-VLC) of existing DSC implementations may be used. In some embodiments, the residual may be transformed (eg, using a direct cosine transform, Hadamard transform, or other known transforms) prior to the quantization described above.
[0110] 本開示のいくつかの実施形態では、現在ブロックの残差中のサンプルは複数のグループに区分され得る(例えば、16個のサンプルを含んでいるブロックに関して、グループごとに4つのサンプル)。ブロック中の全ての係数が0である場合、ブロックの残差は、スキップモードを使用してコーディングされ、すなわち、ブロック中の現在成分がスキップモードを使用してコーディングされるか否かを示すための、ブロックごとの(成分ごとの)1ビットフラグがシグナリングされる。少なくとも1つの0でない値がブロック内に含まれている場合、各グループは、グループが1つの0でない値を有する場合のみ、DSU−VLCを使用してコーディングされ得る。グループ(例えば、残差中の16個のサンプルのうちの4つのサンプル)が0でない値を含んでいない場合、グループは、スキップモードを使用してコーディングされ、すなわち、グループがスキップモードを使用してコーディングされるか否かを示すための、グループごとの1ビットフラグがシグナリングされる。より詳細には、各グループについて、グループ中の全ての値が0であるかどうかを決定するために、探索が実行され得る。グループ中の全ての値が0である場合、「1」の値がデコーダにシグナリングされ得、他の場合(少なくとも1つの値が0でない場合)、「0」の値がデコーダにシグナリングされ、その後にDSU−VLCコーディングのコーディングが続き得る。代替例では、グループ中の全ての値が0である場合、「0」の値がシグナリングされ得、グループが少なくとも1つの0でない値を含んでいる場合、「1」の値がシグナリングされ得る。 [0110] In some embodiments of the present disclosure, the samples in the current block's residual may be partitioned into multiple groups (eg, 4 samples per group for a block containing 16 samples). . If all the coefficients in the block are 0, the block residual is coded using skip mode, i.e. to indicate whether the current component in the block is coded using skip mode. The 1-bit flag for each block (for each component) is signaled. Each group can be coded using DSU-VLC only if the group has one non-zero value if at least one non-zero value is included in the block. If a group (eg, 4 of the 16 samples in the residual) does not contain a non-zero value, the group is coded using skip mode, ie, the group uses skip mode. A 1-bit flag for each group is signaled to indicate whether it is coded. More particularly, for each group, a search can be performed to determine if all values in the group are zero. If all the values in the group are 0, a value of “1” may be signaled to the decoder; otherwise (if at least one value is not 0), a value of “0” is signaled to the decoder; Followed by coding of DSU-VLC coding. In the alternative, a value of “0” may be signaled if all values in the group are zero, and a value of “1” may be signaled if the group contains at least one non-zero value.
[0111] 本開示のいくつかの実施形態では、最良の候補ブロックは、最良のオフセットを含んでいる固定長コードを送信することによって、デコーダに明示的にシグナリングされる。オフセットは「ベクトル」と呼ばれ得る。ベクトルをデコーダに明示的にシグナリングすることの利点は、デコーダがブロック探索自体を実行する必要がないことである。むしろ、デコーダは、明示的にベクトルを受信し、現在ブロックのピクセル値を決定するために、復号された、逆量子化された残差値に、候補ブロックを加える。 [0111] In some embodiments of the present disclosure, the best candidate block is explicitly signaled to the decoder by transmitting a fixed length code that includes the best offset. The offset may be referred to as a “vector”. The advantage of explicitly signaling the vector to the decoder is that the decoder does not need to perform the block search itself. Rather, the decoder explicitly receives the vector and adds the candidate block to the decoded, dequantized residual value to determine the pixel value of the current block.
ブロック区分
[0112] 本開示のいくつかの実施形態では、コーディングされる現在ブロックが区分され、その結果、ブロックごとに複数の候補ブロックと複数のベクトルとが生じ得る。そのような実施形態のうちのいくつかでは、(1つまたは複数の)ベクトルは、固定長コードを使用して明示的にシグナリングされ得る。例えば、この固定長コードの長さはlog2(SR)であり得る。別の実施形態では、(1つまたは複数の)ベクトルは、指数ゴロムまたはゴロムライスコード(Golomb-Rice code)ファミリからのコードなどの、可変長コードを使用して明示的にシグナリングされ得る。このコードブックは、(1つまたは複数の)ベクトルに関連付けられた統計的分布に基づいて選択され得る。また別の実施形態では、(1つまたは複数の)ベクトルは、前にコーディングされた(1つまたは複数の)ベクトルに基づいて予測され得、(1つまたは複数の)ベクトルの残差は、何らかの固定長または可変長コードを使用してコーディングされ得る。また別の実施形態では、(1つまたは複数の)ベクトルは、前にコーディングされた(1つまたは複数の)ベクトルに基づいて予測され得、2つのベクトルが同じであるかどうかをシグナリングするための1ビットフラグが使用され得る。このフラグはSameFlagと呼ばれ得る。SameFlag=1である場合、ベクトル値自体はデコーダにシグナリングされる必要がない。SameFlag=0である場合、ベクトルは、(例えば、固定長コードまたは可変長コードのいずれかを使用して)明示的にシグナリングされる。例示的なブロック区分方式が図8に示されている。
Block classification
[0112] In some embodiments of the present disclosure, the current block to be coded is partitioned, resulting in multiple candidate blocks and multiple vectors per block. In some of such embodiments, the vector (s) may be explicitly signaled using a fixed length code. For example, the length of this fixed length code can be log 2 (SR). In another embodiment, the vector (s) may be explicitly signaled using a variable length code, such as a code from an exponential Golomb or Golomb-Rice code family. This codebook may be selected based on a statistical distribution associated with the vector (s). In yet another embodiment, the vector (s) can be predicted based on the previously coded vector (s), and the residual of the vector (s) is It can be coded using any fixed or variable length code. In yet another embodiment, the vector (s) can be predicted based on the previously coded vector (s) to signal whether the two vectors are the same. 1-bit flags can be used. This flag can be called SameFlag. If SameFlag = 1, the vector value itself need not be signaled to the decoder. If SameFlag = 0, the vector is explicitly signaled (eg, using either a fixed length code or a variable length code). An exemplary block partitioning scheme is shown in FIG.
[0113] 図8の図800に示されているように、現在ブロック802が単一の区分を含んでいる。現在ブロック802のためにシグナリングされる情報は、モードヘッダ、ベクトルSameFlag、ベクトルA、およびペイロードを備える。現在ブロック804は、2つの区分、区分Aと区分Bとを含んでいる。現在ブロック804のためにシグナリングされる情報は、モードヘッダ、ベクトルSameFlag、ベクトルA、ベクトルSameFlag、ベクトルB、およびペイロードを備える。上記で説明されたように、上記で列挙された1つまたは複数の項目はシグナリングされない可能性がある。例えば、ベクトルSameFlagが1に等しい場合、後続のベクトルはシグナリングされる必要がない。
[0113] As shown in diagram 800 of FIG. 8,
[0114] 区分サイズβは、別個のサブブロックへの現在ブロックの区分を決定し得る。そのような場合、各サブブロックについて、別個のブロック予測が実行され得る。例えば、ブロックサイズがN=16であり、区分サイズβ=8β=8である場合、探索は16/8=2つの区分の各々について実行される。別の例では、β=Nである場合、ブロック区分は無効にされる。β<Nである場合、各ベクトルはデコーダに明示的にシグナリングされ得る。(例えば、現在ベクトルを定義するために、前にシグナリングされたベクトルを使用する)ベクトル予測が採用されない場合、各ベクトルは、固定長または可変長コードを使用してシグナリングされる。ベクトル予測が採用される場合、第1のベクトルは、前のコーディングされたベクトルから予測され(例えば、メモリに記憶され)得、n>0について、ベクトルnはベクトルn−1から予測される。 [0114] The partition size β may determine the partition of the current block into separate sub-blocks. In such cases, a separate block prediction may be performed for each sub-block. For example, if the block size is N = 16 and the partition size β = 8β = 8, the search is performed for each of 16/8 = 2 partitions. In another example, if β = N, the block partition is disabled. If β <N, each vector can be explicitly signaled to the decoder. If vector prediction is not employed (eg, using previously signaled vectors to define the current vector), each vector is signaled using a fixed or variable length code. If vector prediction is employed, the first vector may be predicted (eg, stored in memory) from the previous coded vector, and for n> 0, vector n is predicted from vector n-1.
ブロック予測モードにおける可変の区分サイズ
[0115] 上記の例は、1×8のサイズを有する(例えば、1ピクセルの高さと8ピクセルの幅とを有する)、または2×8(例えば、2ピクセルの高さと8ピクセルの幅とを有する)ブロックが、どのようにブロック予測モードでコーディングされ得るかを例示する。図8に示されているように、ブロックは、複数の領域に区分され得、各領域は、異なる区分方式を使用して(例えば、1×2区分を使用して、2×2区分を使用して、など)コーディングされ得、ブロック予測ベクトルは、各区分について指定され得る(例えば、各区分に関連付けられた残差とともにビットストリームにおいてシグナリングされる)。例えば、各ブロックは、2つのピクセル(または、他の固定されたサイズの区分)を含む複数の1×2区分に区分され得る。
Variable partition size in block prediction mode
[0115] The above examples have a size of 1x8 (eg, having a height of 1 pixel and a width of 8 pixels), or 2x8 (eg, having a height of 2 pixels and a width of 8 pixels). Fig. 6 illustrates how a block (with) can be coded in block prediction mode. As shown in FIG. 8, a block can be partitioned into multiple regions, each region using a different partitioning scheme (eg, using a 1 × 2 partition and using a 2 × 2 partition). And so on) and a block prediction vector may be specified for each partition (eg, signaled in the bitstream with the residual associated with each partition). For example, each block may be partitioned into multiple 1 × 2 partitions that include two pixels (or other fixed size partitions).
[0116] 他の実施形態では、エンコーダは、(ブロック内の各サブ領域についての)各ブロックについての最も効率的であるブロック区分サイズを決定し得る。効率は、所与のブロック区分サイズを使用して、ブロック(またはその中のサブ領域)をコーディングすることに関連付けられたレートおよび歪みに基づいて測定され得る。例えば、4つの2×2領域を含むブロックをコーディングするとき、エンコーダは、単一の区分(例えば、各2×2領域についての単一の2×2区分)を使用して第1の3つの2×2領域をコーディングすること、および2つの区分(例えば、2つの1×2区分)を使用して第4の2×2領域をコーディングすることによって、最大コーディング効率が達成され得ることを決定し得る。エンコーダが各ブロックについての区分サイズを適用可能に選択するのを可能にすることによって、ブロック予測方式の性能はさらに改善され得る。これは、大きい区分が、領域(例えば、領域にわたるピクセル値において、変化がないかまたは閾値量の変化よりも小さいことを示す領域)を平滑化するために使用され得、それにより、ブロック予測ベクトル(例えば、領域のサイズに関連する)をシグナリングするためにより少ないビットを要求するからであり、一方より小さい区分を使用することは、(歪みおよび/またはエントロピーコーディングレートの減少が追加のシグナリングコストを重み付けする)複雑な領域のために使用され得る。例えば、エンコーダは、所与の領域またはブロックが平滑化閾値条件を満たすかどうかを決定し得、所与の領域またはブロックが平滑化閾値条件を満たすと決定することに応答して、より大きい区分サイズを使用してブロック予測モードで所与の領域またはブロックを符号化(他の場合には、より小さい区分サイズを使用してブロック予測モードで所与の領域またはブロックを符号化)し得る。別の例として、エンコーダは、所与の領域またはブロックが複雑さ閾値条件を満たすかどうかを決定し得、所与の領域またはブロックが複雑さ閾値条件を満たすと決定することに応答して、より小さい区分サイズを使用してブロック予測モードで所与の領域またはブロックを符号化(他の場合には、より大きい区分サイズを使用してブロック予測モードで所与の領域またはブロックを符号化)し得る。異なる区分サイズを適用可能に選択するための能力は、ブロック予測モードが、コンテンツタイプ(例えば、グラフィックコンテンツ、自然画像、テストパターン、細かいテキストレンダリング)のより広い範囲で使用されることを可能にし得る。 [0116] In other embodiments, the encoder may determine the most efficient block partition size for each block (for each sub-region within the block). Efficiency can be measured based on the rate and distortion associated with coding a block (or sub-regions therein) using a given block partition size. For example, when coding a block that includes four 2 × 2 regions, the encoder uses a single partition (eg, a single 2 × 2 partition for each 2 × 2 region) using the first three Determine that maximum coding efficiency can be achieved by coding a 2 × 2 region and coding a fourth 2 × 2 region using two partitions (eg, two 1 × 2 partitions) Can do. By allowing the encoder to select the partition size for each block as applicable, the performance of the block prediction scheme may be further improved. This can be used to smooth large regions (eg, regions that show no change in pixel values across the region or less than a change in threshold amount), so that the block prediction vector This is because it requires fewer bits to signal (e.g., related to the size of the region), while using a smaller segmentation (reducing distortion and / or entropy coding rate reduces additional signaling costs). Can be used for complex areas (weighting). For example, the encoder may determine whether a given region or block satisfies a smoothing threshold condition, and in response to determining that a given region or block satisfies a smoothing threshold condition, The size may be used to encode a given region or block in block prediction mode (in other cases, a smaller partition size may be used to encode a given region or block in block prediction mode). As another example, an encoder may determine whether a given region or block satisfies a complexity threshold condition, and in response to determining that a given region or block satisfies a complexity threshold condition, Encode a given region or block in block prediction mode using a smaller partition size (otherwise encode a given region or block in block prediction mode using a larger partition size) Can do. The ability to select different partition sizes adaptively may allow block prediction modes to be used with a wider range of content types (eg, graphic content, natural images, test patterns, fine text rendering). .
ブロック予測モードにおけるコーディングの例示的なデータフロー
[0117] 図9は、適応型区分サイズを使用してブロック予測モードでブロックをコーディングするための例示的なデータフロー900を図示する。図9に図示さていれるように、ブロック予測モードで予測される現在ブロック902は、ブロック区分904を含む。一例では、ブロック区分は、1×2または2×2のサイズを有する。ブロック予測(BP:block prediction)探索906は、ブロック予測モードで現在ブロック902(またはブロック区分904)を予測するために利用可能なおよび既にコーディングされているブロックまたは区分を識別するために実施される。図9に示されているように、BP探索906は、例えば、前のライン(例えば、すぐ前のライン(immediately preceding line)または別の先行するラインなどの、現在ブロックを含む現在のラインをコーディングすることに先立ってコーディングされたライン)中の1つまたは複数の前の再構成されたブロック907A、および/または現在のライン(例えば、現在ブロックを含むライン)からの前の再構成されたブロック907Bを含む、探索範囲内を探索し得る。
Exemplary data flow for coding in block prediction mode
[0117] FIG. 9 illustrates an
[0118] エンコーダは、探索範囲において識別された候補ブロックまたは区分に基づいてブロック予測器908を決定する。ブロック予測器908は、ブロック910において現在ブロック902(または候補ブロック902内の現在ブロック区分904)から減算され、減算に基づいて決定された残差は、ブロック912において量子化される。量子化された残差は、エントロピーコーダ920によってエントロピーコーディングされる。さらに、逆量子化914は、量子化された残差に対して実行され、結果が、再構成されたブロック918を生成するためにブロック916においてブロック予測器908に加えられる。BP区分サイズ選択922は、再構成されたブロック918の歪み性能(D)およびエントロピー符号化された残差のレート性能(R)に基づいて実行される。ビットストリーム924は、選択されたBP区分サイズに基づいて生成される。
[0118] The encoder determines the block predictor 908 based on the candidate block or partition identified in the search range. Block predictor 908 is subtracted from current block 902 (or
[0119] 例えば、BP区分サイズ選択922は、現在ブロック902内の各区分領域(例えば、2×2)のレート(例えば、R)および歪み(例えば、D)を入力として受け取り、区分領域が単一のブロック予測ベクトル(BPV:block prediction vector)(例えば、単一の2×2区分について合計1BPV)を使用してコーディングされるべきか、または複数のBPV(例えば、2つの1×2区分について各々1BPVである、合計2BPV)を使用して区分およびコーディングされるべきかを、2つのオプション間のRDトレードオフに基づく予測のために決定し得る。本明細書で論じられるいくつかの例は2×2の区分領域サイズを含む(それにより、選択可能なオプションとして1×2、2×1、および2×2の区分サイズを有する)が、エンコーダによって選択可能な区分サイズは、このような例(例えば、1×2および2×2)で使用されるものに限定されず、ブロックサイズおよび/または領域サイズに基づいて他のサイズ(例えば、2×1)を含み得る。
For example, the BP
[0120] いくつかの実施形態では、区分サイズは、現在区分領域またはブロック中で固定される(例えば、1×2、2×2、またはピクセルの任意の他のサブコンビネーション。例えば、あるブロックは、2×8のブロックサイズを有し得、そのブロックは、2×2のサイズを有するサブブロックまたは領域に分割され得る。2×8ブロック内の2×2サブブロックまたは領域は、1×2のサイズを有する区分にさらに区分され得る。このような例では、他の区分から独立して、各1×2区分は単一のBPVを使用して予測され得る。他の実施形態では、区分サイズは可変であり、どの区分サイズを使用して各ブロック、サブブロック、および/または領域がブロック予測においてどのようにコーディングされるかは、各区分方式のレートおよび歪み性能に基づいてエンコーダによって決定され得る。例えば、現在ブロック内の2×2領域(例えば、現在領域)について、2つの1×2区分に現在領域を分割することによって現在領域を予測すること、および(例えば、定義された探索範囲内の、前にコーディングされた1×2区分に各々が向けられている)2つのBPVを別個に使用して2つの1×2区分を予測することが、(例えば、2×2のような他の区分方式と比較して)より良いレートおよび/または歪み性能をもたらす場合、現在領域は、1×2区分方式を使用して予測され得る。一方、(例えば、定義された探索範囲内の、前にコーディングされた2×2区分を示す)1つのBPVを使用して単一の2×2区分として現在領域を予測することが、(例えば、1×2のような他の区分方式と比較して)より良いレートおよび/または歪み性能をもたらす場合、現在領域は、2×2区分方式を使用して予測され得る。予測モードにおいてブロックをコーディングするために使用される区分方式を決定するプロセスは、図14を参照して下記でより詳細に説明される。 [0120] In some embodiments, the partition size is fixed in the current partition region or block (eg, 1 × 2, 2 × 2, or any other sub-combination of pixels. For example, a block is The block size may be 2 × 8, and the block may be divided into sub-blocks or regions having a size of 2 × 2, 2 × 2 sub-blocks or regions within the 2 × 8 block are 1 × 2 In such an example, each 1 × 2 partition can be predicted using a single BPV, independent of other partitions, in other embodiments, the partition The size is variable, and which partition size is used to code each block, sub-block, and / or region in block prediction depends on the rate and distortion of each partition scheme For example, for a 2 × 2 region (eg, the current region) in the current block, predicting the current region by dividing the current region into two 1 × 2 partitions, and Predicting two 1 × 2 partitions using two BPVs separately (eg, each directed to a previously coded 1 × 2 partition within a defined search range) ( The current region may be predicted using a 1 × 2 partitioning scheme if it yields better rate and / or distortion performance (as compared to other partitioning schemes such as 2 × 2, for example) (eg, Predicting the current region as a single 2 × 2 partition using one BPV (indicating a previously coded 2 × 2 partition) within the defined search range (eg, 1 × 2 Other division like The current region can be predicted using a 2 × 2 partitioning scheme if it yields better rate and / or distortion performance (compared to the equation) The partitioning scheme used to code the blocks in prediction mode The process of determining is described in more detail below with reference to FIG.
ブロックサイズおよびサブブロックサイズ
[0121] M×Nのブロックサイズについて、いくつかの実施形態は、Msub≦MかつNsub≦Nである、サイズMsub×Nsubのサブブロック(本明細書では、領域とも呼ばれる)を参照して説明される。いくつかの実装では、計算を簡単にするために、MsubとNsubとの両方がM×Nブロック内のエントロピーコーディンググループにアラインされる(aligned)。ブロック内の各サブブロックMsub×Nsubは、各区分のために使用されるBPVを用いて、(i)さらに区分されることなく単一のBPVを使用して予測されるか、あるいは(ii)複数の区分に(例えば、2つの1×2区分に)区分されるかのいずれかであり得る。サブブロック全体について単一のBPVを使用すること、または各々がそれ自体のBPVを有する区分にサブブロックを区分することの間の効率的なトレードオフは、より多くのBPVをシグナリングすることがビットストリーム中の余分なレートをもたらす可能性があるが、しかしながら、より多くのBPVを使用することによって、歪みおよびエントロピーコーディングレートは減少し得る。言い換えれば、さらなるBPVをシグナリングするためにより多くのビットを使用することによって、残差(候補ブロック/領域と現在ブロック/領域との間の差)をシグナリングするために使用されるビットの数が減少し、それはさらに、エントロピーコーディングのために使用されるビットの数もまた同様に減少することを引き起こす。エンコーダは、RDコストに関して各オプション(例えば、区分が存在しないこと対複数の区分)を比較し、そのコスト比較に基づいて各サブブロックまたは領域を区分するか否かを選択するか、あるいは最良のRD性能を提供する複数の区分方式から1つの区分方式を選択し得る。
Block size and sub-block size
[0121] For an M × N block size, some embodiments provide subblocks of size M sub × N sub (also referred to herein as regions), where M sub ≦ M and N sub ≦ N. Reference is made to the description. In some implementations, both M sub and N sub are aligned to an entropy coding group in an M × N block to simplify computation. Each sub-block M sub × N sub within a block is predicted using a single BPV without further partitioning, using the BPV used for each partition, or ( ii) It can be either divided into multiple sections (eg, two 1 × 2 sections). An efficient trade-off between using a single BPV for the entire sub-block, or partitioning a sub-block into partitions each with its own BPV is a bit that signals more BPV However, using more BPV may reduce distortion and entropy coding rates, which can result in extra rates in the stream. In other words, using more bits to signal additional BPV reduces the number of bits used to signal the residual (difference between candidate block / region and current block / region) However, it also causes the number of bits used for entropy coding to decrease as well. The encoder compares each option (eg, no partition vs. multiple partitions) for RD cost and selects whether to partition each sub-block or region based on the cost comparison, or the best One partitioning scheme may be selected from a plurality of partitioning schemes that provide RD performance.
例示的な区分方式
[0122] 図10は、例示的な区分方式を図示する図1000を図示する。図10には、2×2サブブロックまたは領域についての2つの区分オプションが図示されている。この例では、ブロック1002(例えば、ピクセルX0〜X15を含む)は、2×8のサイズを有しており、ブロック内のサブブロックまたは領域1004(例えば、ピクセルX0、X1、X8、およびX9を含む)は、2×2のサイズを有している。区分オプション1006は、単一のBPVを使用してサブブロックまたは領域1004が予測される例を図示しており、区分オプション1008は、サブブロックまたは領域1004内の各1×2区分について2つのBPVを使用してサブブロックまたは領域1004が予測される例を図示している。図11で示される、ブロック予測モードについてのエントロピーコーディンググループ構造1100にサブブロックまたは領域をアラインするために、アドバンストDSC(Adv−DSC)のようないくつかの実装において、2×2のサイズを有するサブブロックまたは領域が使用される。図11の例では、エントロピーコーディンググループ0、1、2、および3が図示されており、各々が、ブロック内の4つの2×2サブブロックまたは領域のうちの1つに対応する。しかしながら、本明細書で説明される技法は、このような実施形態に限定されるものではなく、いずれのブロックサイズM×NおよびいずれのサブブロックサイズMsub×Nsubにも拡張され得る。しかしながら、下記に図示される例では、パラメータM=2、N=8、Msub=2、Nsub=2が使用される。いくつかの実施形態では、サブブロックおよび/または区分方式は、エントロピーコーディンググループに基づいて決定され得る。例えば、サブブロックおよび/または区分方式は、各サブブロックおよび/または区分方式が単一のエントロピーコーディンググループ内に含まれるように決定され得る。
Example classification scheme
[0122] FIG. 10 illustrates a diagram 1000 illustrating an exemplary partitioning scheme. FIG. 10 illustrates two partitioning options for a 2 × 2 sub-block or region. In this example, block 1002 (eg, including pixels X 0 -X 15 ) has a size of 2 × 8, and sub-block or region 1004 (eg, pixels X 0 , X 1 , X in the block). 8 and X 9 ) has a size of 2 × 2. Partition option 1006 illustrates an example where a single BPV is used to predict a sub-block or
区分サイズを決定する
[0123] エンコーダは、(i)単一の2×2区分として各2×2領域をコーディングするか、または(ii)2つの1×2区分に領域を分割し、最小RDコストに基づいて各1×2区分を別個にコーディングするかを決定し得る。RDコストは、下記に示されるように計算され得る。
[0123] The encoder may either (i) code each 2x2 region as a single 2x2 partition, or (ii) divide the region into two 1x2 partitions, each based on the minimum RD cost It may be decided whether to code the 1 × 2 partition separately. The RD cost can be calculated as shown below.
[0124] いくつかの実装では、BPVは、log2(SR)log2(SR)に等しい、固定数のビット(BPVbits)を用いてシグナリングされ、ここで、SRはブロック予測モードに関連付けられた探索空間(または探索範囲)である。例えば、探索空間が64個の位置からなる場合、log2(64)=6ビットが各BPVをシグナリングするために使用される。 [0124] In some implementations, the BPV is signaled with a fixed number of bits (BPV bits ) equal to log 2 (SR) log 2 (SR), where SR is associated with the block prediction mode. Search space (or search range). For example, if the search space consists of 64 locations, log 2 (64) = 6 bits are used to signal each BPV.
[0125] 可変の区分サイズを用いたブロック予測のための探索空間は、図3〜6を参照して論じられる探索範囲とは若干異なり得る。特に、Msub×Nsubサブブロックは、高さMsubを用いた探索空間を利用し得る。このような場合には、可変の区分サイズを用いないブロック予測に対して、可変の区分サイズを用いたブロック予測を実装するために、追加のラインバッファを必要とし得る。このような探索空間の例が、2×2のサブブロックサイズに関する図12において証明される。図12は、例示的な探索範囲を図示する図1200を図示する。図12に示されているように、現在ライン1202は、(i)現在サブブロック1206を有する現在ブロック1204と、(ii)前のブロック1208とを含む。図12の例では、前のライン1210は、現在サブブロック1206を予測するために候補サブブロック1214をエンコーダが選択し得る探索範囲1212を含む。1D区分(例えば、1×2)についての探索範囲または空間は、図3を参照して先に説明された探索範囲に類似しており、単一の前の再構成されたラインに依存し得る。
[0125] The search space for block prediction using variable partition sizes may be slightly different from the search range discussed with reference to FIGS. In particular, the M sub × N sub sub-block can use a search space using the height M sub . In such a case, an additional line buffer may be required to implement block prediction using a variable partition size versus block prediction that does not use a variable partition size. An example of such a search space is demonstrated in FIG. 12 for a 2 × 2 sub-block size. FIG. 12 illustrates a diagram 1200 illustrating an exemplary search range. As shown in FIG. 12,
[0126] いくつかの実施形態では、歪みD2×2およびD1×2は、YCoCg色空間中の修正された差分絶対値和(SAD)を使用して計算され得る。例えば、YCoCg色空間中のピクセルA(例えば、現在サブブロックまたは区分中の)とピクセルB(例えば、候補サブブロックまたは領域中の)との間のSAD歪みは、下記のように計算され得る。
[0127] 現在サブブロックまたは区分が1より多いピクセルを有する場合、全体の現在サブブロックまたは区分についての歪みは、現在サブブロックまたは区分中の各ピクセルについて計算された個々のSADを合計することによって計算され得る。現在サブブロックまたは区分のピクセル値は、実際のピクセル値または再構成されたピクセル値(例えば、候補予測器(candidate predictor)および残差に基づいて計算された)であり得る。いくつかの実装では、ラムダパラメータは、2の値で固定され得る。他の実装では、このパラメータは、ブロックサイズ、ビットレート、または他のコーディングパラメータに依存して調整され(be tuned)得る。 [0127] If the current sub-block or partition has more than one pixel, the distortion for the entire current sub-block or partition is obtained by summing the individual SADs calculated for each pixel in the current sub-block or partition. Can be calculated. The pixel value of the current sub-block or partition can be an actual pixel value or a reconstructed pixel value (eg, calculated based on a candidate predictor and a residual). In some implementations, the lambda parameter may be fixed at a value of two. In other implementations, this parameter may be tuned depending on block size, bit rate, or other coding parameters.
[0128] エントロピーコーディングコストECbitsは、各2×2の領域について計算され得る。各エントロピーコーディンググループにおける4つのサンプルは、単一のBPV(例えば、2×2区分)から予測される2×2の量子化された残差、または2つのベクトル(例えば、2つの1×2区分)を利用する2×2の量子化された残差のいずれかに由来し得る。例えば、エントロピーコーディングコストは、(例えば、(1つまたは複数の)ベクトルおよび残差を含む)ビットストリーム中の各エントロピーコーディンググループをシグナリングするために必要とされるビットの数を表し得る。計算されたエントロピーコーディングコストに基づいて、エンコーダは、各2×2領域についての最低コストを有する区分方式を選択し得る。いくつかの実施形態は、2×2サブブロックサイズ、2×2エントロピーコーディンググループ、および2つの区分方式(1×2および2×2)を有する2×8ブロックを参照して論じられるが、本明細書で説明される技法は、他のブロックサイズ、サブブロックサイズ、エントロピーコーディンググループ、および/または区分方式に拡張され得る。 [0128] Entropy coding costs EC bits may be calculated for each 2x2 region. The four samples in each entropy coding group are either 2 × 2 quantized residuals predicted from a single BPV (eg 2 × 2 partitions), or 2 vectors (eg 2 1 × 2 partitions) ) Can be derived from any of the 2 × 2 quantized residuals. For example, the entropy coding cost may represent the number of bits required to signal each entropy coding group in the bitstream (eg, including vector (s) and residual). Based on the calculated entropy coding cost, the encoder may select the partitioning scheme with the lowest cost for each 2 × 2 region. Some embodiments are discussed with reference to a 2 × 8 block having a 2 × 2 sub-block size, a 2 × 2 entropy coding group, and two partitioning schemes (1 × 2 and 2 × 2). The techniques described herein may be extended to other block sizes, sub-block sizes, entropy coding groups, and / or partition schemes.
ビットストリーム中のシグナリングコーディング情報
[0129] 図10に示される2×8ブロック1002では、4つの2×2領域の各々が、上記で説明されたRDコスト分析に基づいて区分され得る。例えば、各2×2領域は、単一の2×2区分または2つの1×2区分のいずれかに区分され得る。このような区分の4つの例が、図13の図1300で図示される。図13に示されているように、ブロック1302は、2×2区分方式に基づいて予測された4つのサブブロックを有し、ブロック1304は、2×2区分方式に基づいて予測された3つのサブブロックと、1×2区分方式に基づいて予測された1つのサブブロックとを有し、ブロック1306は、1×2区分方式に基づいて予測された4つのサブブロックを有し、ブロック1308は、2×2区分に基づいて予測された1つのサブブロックと、1×2区分方式に基づいて予測された3つのサブブロックとを有する。デコーダにBPVをシグナリングすることに加えて、エンコーダはまた、デコーダが区分を適切に推測することができるように、各2×2領域についての1ビットを送り得る。Adv−DSC実装のようないくつかの実装では、ブロック内の各領域(例えば、2×8ブロックにおける各2×2領域)のために選択された区分方式を示す4つのビットのグループは、ビットストリームにおいてシグナリングされる。このような実装では、4つのビット「1011」は、ブロック中の第1、第3、および第4の領域(例えば、2×2サブブロック)が第1の区分方式に基づいて(例えば、1×2区分に基づいて)予測またはコーディングされ、一方、第2の領域(例えば、2×2サブブロック)は、第2の区分方式に基づいて(例えば、2×2区分に基づいて)予測またはコーディングされることを示し得る。いくつかの実施形態では、ビットストリーム中のこれら4つのビットに後続して、BPVが、BPVごとの固定されたビットを使用してシグナリングされ得る。先の例(例えば、「1011」のビットシーケーンス)では、7BPVがシグナリングされ得る。
Signaling coding information in the bitstream
[0129] In the 2 × 8
ブロック予測モードでコーディングするための例示的なフローチャート
[0130] 図14を参照して、ブロック予測モードでビデオデータのブロックをコーディングするための例示的なプロシージャが説明される。図14に図示されるステップは、ビデオエンコーダ(例えば、図2Aのビデオエンコーダ20)、またはそれらの(1つまたは複数の)コンポーネントによって実行され得る。便宜上、方法1400は、ビデオエンコーダ20、または別のコンポーネントであり得る、(単にコーダとも呼ばれる)ビデオコーダによって実行されるものとして説明される。
Exemplary flowchart for coding in block prediction mode
[0130] With reference to FIG. 14, an exemplary procedure for coding a block of video data in a block prediction mode is described. The steps illustrated in FIG. 14 may be performed by a video encoder (eg,
[0131] 方法1400はブロック1401において開始する。ブロック1405において、コーダは、第1の区分方式を使用して現在領域(例えば、ブロック予測モードでコーディングされるビデオデータのブロック内の)を予測するために使用される1つまたは複数の第1の候補領域を決定する。例えば、第1の候補領域は、2×8ブロックにおける2×2領域のうちの1つであり得る。第1の区分方式は、現在領域が複数の区分(例えば、2つの1×2区分)に区分される区分方式であり得る。いくつかの実施形態では、1つまたは複数の第1の候補領域は、第1の区分方式に関連付けられたロケーションの第1の範囲(例えば、第1の区分方式に関連付けられた探索範囲)内にある。1つまたは複数の第1の候補領域は、ビデオ符号化デバイスのメモリに記憶され得る。
[0131] The
[0132] ブロック1410において、コーダは、第2の区分方式を使用して現在領域を予測するために使用される1つまたは複数の第2の候補領域を決定する。例えば、第2の区分方式は、現在領域が複数の区分に区分されない(例えば、現在領域が単一の2×2区分としてコーディングされる)区分方式であり得る。別の例では、第2の区分方式は、現在領域が、第1の区分方式のために使用される区分の数とは異なる区分の数に区分される区分方式であり得る。いくつかの実施形態では、1つまたは複数の第2の候補領域は、第2の区分方式に関連付けられたロケーションの第2の範囲(例えば、第2の区分方式に関連付けられた探索範囲)内にある。1つまたは複数の第2の候補領域は、ビデオ符号化デバイスのメモリに記憶され得る。
[0132] At
[0133] ブロック1415において、コーダは、第1の区分方式を使用して現在領域をコーディングすることに関連付けられた第1のコストが、第2の区分方式を使用して現在領域をコーディングすることに関連付けられた第2のコストよりも大きいことを決定する。例えば、コーダは、第1の区分方式を使用して現在領域をコーディングすることに関連付けられたレートおよび歪みに基づくコスト、および第2の区分方式を使用する現在領域をコーディングすることに関連付けられたレートおよび歪みに基づくコストを計算し、計算されたコストを比較し得る。
[0133] At
[0134] ブロック1420において、コーダは、現在領域に関する1つまたは複数の第2の候補領域のロケーションを識別する1つまたは複数の予測ベクトルをシグナリングすることを少なくとも部分的に介して、第2の区分方式を使用して現在領域をコーディングする。方法1400はブロック1425において終了する。
[0134] At
[0135] 方法1400では、図14に示されているブロックのうちの1つまたは複数は削除され(例えば、実行されない)得、および/または方法が実行される順序は入れ替えられ得る。いくつかの実施形態では、さらなるブロックが方法1400に追加され得る。本開示の実施形態は、図14に示されている例にまたはそれによって限定されず、他の変形が本開示の趣旨から逸脱することなく実装され得る。
[0135] In the
4:2:0および4:2:2クロマサブサンプリングフォーマットへの拡張
[0136] いくつかの実装では、本開示で説明されるブロック予測技法(例えば、ブロック予測モードで可変の区分サイズを使用する)は、4:4:4クロマサンプリングフォーマットのみに対して利用され得る。このフォーマットは、主にグラフィックコンテンツのために使用される。例えば、4:4:4クロマサンプリングフォーマットは、(例えば、クロマサブサンプリングを使用しない)同じサンプリングレートを有する色成分(例えば、ルーマ成分およびクロマ成分)を含むイメージまたはビデオデータを利用する。しかしながら、4:4:4クロマサンプリングフォーマットは、他のビデオアプリケーションのために主に使用される頻度は少ない可能性がある。クロマサブサンプリングが提供し得る大幅な圧縮のために、4:2:0および4:2:2の両方のクロマサブサンプリングフォーマットは、ビデオアプリケーションのために主に使用される。例えば、DSCのいくつかのバージョン(例えば、DSCv1.x)は、4:2:0および4:2:2をサポートし得る。このようなクロマサブサンプリングフォーマットについてのサポートは、将来的なDSC実装で利用または要求され得る。よって、いくつかの実施形態では、本開示で説明されるブロック予測技法(例えば、ブロック予測モードで可変の区分サイズを使用する)は、4:2:0および/または4:2:2フォーマットに拡張される。4:2:0および4:2:2クロマサブサンプリングフォーマットが本明細書で使用されるが、本出願で説明される様々な技法は、他の既知のサンプリングフォーマットに適用され得る。
Extensions to 4: 2: 0 and 4: 2: 2 chroma subsampling formats
[0136] In some implementations, the block prediction techniques described in this disclosure (eg, using variable partition sizes in block prediction mode) may be utilized only for 4: 4: 4 chroma sampling formats. . This format is mainly used for graphic content. For example, the 4: 4: 4 chroma sampling format utilizes image or video data that includes color components (eg, luma and chroma components) having the same sampling rate (eg, not using chroma subsampling). However, the 4: 4: 4 chroma sampling format may be used less frequently for other video applications. Because of the significant compression that chroma subsampling can provide, both 4: 2: 0 and 4: 2: 2 chroma subsampling formats are primarily used for video applications. For example, some versions of DSC (eg, DSCv1.x) may support 4: 2: 0 and 4: 2: 2. Support for such chroma subsampling formats may be utilized or required in future DSC implementations. Thus, in some embodiments, the block prediction techniques described in this disclosure (eg, using a variable partition size in block prediction mode) are in 4: 2: 0 and / or 4: 2: 2 format. Expanded. Although 4: 2: 0 and 4: 2: 2 chroma subsampling formats are used herein, the various techniques described in this application may be applied to other known sampling formats.
[0137] いくつかの実施形態では、可変の区分サイズを用いたブロック予測のためのアルゴリズムは、クロマサンプリングフォーマットから独立して、同じ方法で大いに機能する。このような実施形態では、フォーマット(例えば、4:4:4、4:2:2、4:2:0など)に関係なく、単一の区分(例えば、2×2)を使用するか、または複数の区分(例えば、2つの別個の1×2区分)を使用するかの決定、あるいは、現在サブブロックまたは領域をコーディングするために使用される区分の数(例えば、1、2、3、4など)の決定は、ルーマサンプルの各サブブロックまたは領域(例えば、2×2ブロック)のためになされ得る。しかしながら、各区分におけるまたは各ブロックにおけるクロマサンプルの数は、サブサンプリングフォーマットに依存して異なり得る。加えて、エントロピーコーディンググループとのアライメントがクロマ成分にもはや利用可能ではない可能性があるため、エンコーダの決定は、4:2:2および/または4:2:0クロマサブサンプリングフォーマットにおいて修正されることを必要とし得る。従って、エンコーダの決定(例えば、最小RDコストに基づいて、エンコーダが単一の2×2区分または2つの1×2区分に各2×2領域を分割するかどうかを決定するとき)のための各区分についてのレート(例えば、単一の2×2区分、または2つの別個の1×2区分のような区分に関連付けられたレート値)は、4:2:2および4:2:0についてのルーマサンプルだけに依存し得る。例えば、SAD歪みを計算するとき、(1つまたは複数の)クロマ成分に関連した任意の項(terms)は、ゼロに設定され得る。 [0137] In some embodiments, the algorithm for block prediction using a variable partition size works greatly in the same way, independent of the chroma sampling format. In such an embodiment, regardless of the format (eg, 4: 4: 4, 4: 2: 2, 4: 2: 0, etc.), a single partition (eg, 2 × 2) is used, Or a determination of whether to use multiple partitions (eg, two separate 1 × 2 partitions), or the number of partitions used to code the current sub-block or region (eg, 1, 2, 3, 4) may be made for each sub-block or region (eg, 2 × 2 block) of luma samples. However, the number of chroma samples in each partition or in each block can vary depending on the subsampling format. In addition, the encoder decision is modified in 4: 2: 2 and / or 4: 2: 0 chroma subsampling format because alignment with entropy coding groups may no longer be available for chroma components. You may need that. Thus, for encoder decisions (eg, when the encoder decides whether to divide each 2 × 2 region into a single 2 × 2 partition or two 1 × 2 partitions based on the minimum RD cost) The rates for each partition (eg, rate values associated with a partition such as a single 2 × 2 partition or two separate 1 × 2 partitions) are for 4: 2: 2 and 4: 2: 0 Can depend only on luma samples. For example, when calculating SAD distortion, any terms associated with the chroma component (s) may be set to zero.
4:2:0クロマサブサンプリングフォーマットのためのBP探索
[0138] 4:2:0モード(4:2:0クロマサブサンプリングフォーマット)での2×2区分に関して、各区分は、クロマ成分(例えば、CoおよびCg、またはCbおよびCr)の各々について単一のクロマサンプルを含み得る。いくつかの実施形態では、(例えば、現在領域またはブロックにおいて、RDコストを計算するためにおよび/またはサンプルを予測するために)使用されるクロマサンプルは、区分と交差する(intersects)ものである。他の実施形態では、使用されるクロマサンプルは、隣接する区分から導出され得る。4:2:0モードのための例示的な2×2探索1500が図15で示されている。図15では、クロマサイト(chroma sites)(例えば、クロマサンプルを有するサンプル/ピクセルロケーション)は、「X」を使用して示される。例えば、区分Aの左上のサンプル、区分Bの右上のサンプル、および現在区分の左上のサンプルは、それぞれの区分と交差するクロマサイトを備える。このようなクロマサイトは、それぞれの区分のために行われる全ての計算のために(例えば、クロマサンプル値を使用して差分値を計算するために)使用され得る。
BP search for 4: 2: 0 chroma subsampling format
[0138] With respect to the 2x2 partition in 4: 2: 0 mode (4: 2: 0 chroma subsampling format), each partition is single for each of the chroma components (eg, Co and Cg, or Cb and Cr). One chroma sample may be included. In some embodiments, the chroma samples used (eg, to calculate RD costs and / or predict samples in the current region or block) are those that intersect the partition. . In other embodiments, the chroma samples used can be derived from adjacent segments. An exemplary 2 × 2
[0139] 4:2:0モードでの1×2区分について、現在ブロックの第2のライン中にクロマサイトが存在しないため、現在ブロックの第1のライン中の1×2区分と、現在ブロックの第2のライン中の1×2区分との間で区別(distinction)がなされる必要があり得る。例えば、現在ブロックの第1のライン中の区分について、歪み値の計算は、2つのルーマサンプルと各クロマ成分についての1つのクロマサンプルとを含み得る。現在ブロックの第2のライン中の区分に関して、歪み値の計算は、ルーマサンプル(例えば、2つのルーマサンプル)のみを含み得る。図16の例1600では、現在の1×2区分Aは、第1のライン中にあり、クロマサイトを含む。よって、現在の1×2区分Aを予測するために選択される候補区分は、候補の1×2区分Aであり、それはまた、クロマサイトを含む。同様に、現在の1×2区分Bは、第2のライン中にあり、クロマサイトを含まない。よって、現在の1×2区分Bを予測するために選択される候補区分は、候補の1×2区分Bであり、それはまた、クロマサイトを含まない。
[0139] For the 1x2 segment in 4: 2: 0 mode, there is no chromasite in the second line of the current block, so the 1x2 segment in the first line of the current block and the current block A distinction may need to be made between the 1 × 2 sections in the second line. For example, for the segment in the first line of the current block, the distortion value calculation may include two luma samples and one chroma sample for each chroma component. For the segment in the second line of the current block, the distortion value calculation may include only luma samples (eg, two luma samples). In the example 1600 of FIG. 16, the current 1 × 2 segment A is in the first line and includes chromasite. Thus, the candidate segment selected to predict the current 1 × 2 segment A is the
4:2:2クロマサブサンプリングフォーマットのためのBP探索
[0140] 4:2:2モード(4:2:2クロマサブサンプリングフォーマット)での2×2区分に関して、各区分は、4つのルーマサンプルと、クロマ成分(例えば、CoおよびCg、またはCbおよびCr)の各々についての2つのクロマサンプルとを含み得る。4:2:2モードのための例示的な2×2探索1700が図17で示される。図17では、クロマサイト(例えば、クロマサンプルを有するピクセルロケーション)は、「X」を使用して示される。例えば、区分Aの2つの左のサンプル、区分Bの2つの右のサンプル、および現在区分の2つの左のサンプルは、それぞれの区分と交差するクロマサイトを備える。このようなクロマサイトは、それぞれの区分のために行われる全ての計算のために(例えば、クロマサンプル値を使用して差分値を計算するために)使用され得る。
BP search for 4: 2: 2 chroma subsampling format
[0140] For a 2x2 partition in 4: 2: 2 mode (4: 2: 2 chroma subsampling format), each partition has four luma samples and chroma components (eg, Co and Cg, or Cb and Two chroma samples for each of (Cr). An exemplary 2 × 2
[0141] 4:2:2モードでの1×2区分について、各区分は、2つのルーマサンプルと、クロマ成分(例えば、CoおよびCg、またはCbおよびCr)の各々についての1つのクロマサンプルとを含む。4:2:0モードとは異なり、4:2:2モードにおいて現在ブロックの第1のライン中の区分と、現在ブロックの第2のライン中の区分との間の区別は存在しない可能性がある。4:2:2クロマサブサンプリングのための1×2区分についての例示的なブロック予測探索1800が図18で図示される。図18の例では、現在の1×2区分Aは第1のライン中にあり、現在の1×2区分Bは第2のライン中にあり、現在区分AおよびBの各々は、クロマサイトを含む。現在区分Aは、候補の1×2区分Aに基づいて予測され、それは、第1のサンプル中にクロマサイトを含み、現在区分Bは、候補の1×2区分Bに基づいて予測され、それは、第2のサンプル中にクロマサイトを含む。よって、クロマサイトが候補区分内に位置するかどうかに関わらず、クロマサンプルは、現在区分中のクロマサンプルを予測するために使用され得る。
[0141] For a 1x2 segment in 4: 2: 2 mode, each segment includes two luma samples and one chroma sample for each of the chroma components (eg, Co and Cg, or Cb and Cr). including. Unlike the 4: 2: 0 mode, there may not be a distinction between the section in the first line of the current block and the section in the second line of the current block in the 4: 2: 2 mode. is there. An exemplary
エンコーダの決定
[0142] 4:2:2および4:2:0フォーマットでは、各クロマ成分について、ブロックごとに4未満のエントロピーコーディンググループが存在し得る。例えば、4つのエントロピーコーディンググループは、ルーマ成分のために使用され得、2つ(または1つ)のエントロピーコーディンググループは、オレンジのクロマ成分のために使用され得、2つ(または1つ)のエントロピーコーディンググループは、緑のクロマ成分のために使用され得る。所与のブロックをコーディングするために使用されるエントロピーコーディンググループの数は、所与のブロック中のルーマまたはクロマサンプルの数に基づいて決定され得る。いくつかの実施形態では、エントロピーコーディンググループは、所与のブロックがコーディングされるコーディングモードに基づいて、エンコーダによって決定される。他の実施形態では、エントロピーコーディンググループは、適用可能なコーディング規格で(例えば、所与のブロックがコーディングされるコーディングモードに基づいて)設定される。
Encoder determination
[0142] In 4: 2: 2 and 4: 2: 0 formats, there may be less than 4 entropy coding groups per block for each chroma component. For example, four entropy coding groups may be used for luma components, two (or one) entropy coding groups may be used for orange chroma components, and two (or one). An entropy coding group may be used for the green chroma component. The number of entropy coding groups used to code a given block may be determined based on the number of luma or chroma samples in a given block. In some embodiments, the entropy coding group is determined by the encoder based on the coding mode in which a given block is coded. In other embodiments, the entropy coding group is configured with an applicable coding standard (eg, based on the coding mode in which a given block is coded).
[0143] いくつかの実施形態では、量ECbitsは、クロマについてエンコーダによって必ずしも正確には決定されない。このような実施形態のうちのいくつかでは、4:2:2および4:2:0フォーマットのためにルーマサンプルのみを使用して計算されるエントロピーコーディングレートに基づいて、エンコーダは、1×2区分を使用するか、または2×2区分を使用するかを決定し得る。他の実施形態では、量ECbitsは、クロマについてエンコーダによって決定され、4:2:2および4:2:0フォーマットのためにルーマおよびクロマサンプルの両方を使用して計算されたエントロピーコーディングレートに基づいて、エンコーダは、1×2区分を使用するか、または2×2区分を使用するかを決定し得る。 [0143] In some embodiments, the quantity EC bits is not necessarily accurately determined by the encoder for the chroma. In some of such embodiments, based on entropy coding rates calculated using only luma samples for 4: 2: 2 and 4: 2: 0 formats, the encoder is 1 × 2 It may be decided whether to use a partition or a 2 × 2 partition. In other embodiments, the quantity EC bits is determined by the encoder for the chroma, and to the entropy coding rate calculated using both luma and chroma samples for 4: 2: 2 and 4: 2: 0 formats. Based on this, the encoder may decide whether to use a 1 × 2 partition or a 2 × 2 partition.
シグナリング
[0144] いくつかの実施形態では、エンコーダから、各ブロックについてまたは各色成分ついてデコーダに送信されるエントロピーコーディンググループの数は、クロマサブサンプリングフォーマットに依存して変更され得る。いくつかの実装では、エントロピーコーディンググループの数は、コーデックスループットが十分高いことを保証するように変更される。例えば、4:4:4モードでは、2×8ブロックは、図11で図示されるような4つのエントロピーコーディンググループを含み得る。このような例では、4つのエントロピーコーディンググループは、各色成分(color components)(例えば、Y、Co、およびCg)のために使用され(例えば、エンコーダによってシグナリングされ)得る。表1は、4:2:2および4:2:0モードのために使用されるエントロピーコーディンググループの数への、例示的な変更を説明する。上記で説明されたシグナリングの残り(remainder)(例えば、BPVのシグナリング、区分方式のインジケーションのシグナリングなど)は、4:2:2および4:2:0モードについて(4:4:4モードに関して説明されたシグナリングから)変更されない可能性がある。例えば、表1では、成分0がルーマ(Y)に対応し得、成分1がオレンジクロマ(Co)に対応し得、成分2がグリーンクロマ(Cg)に対応し得る。
[0144] In some embodiments, the number of entropy coding groups transmitted from the encoder to the decoder for each block or for each color component may be varied depending on the chroma subsampling format. In some implementations, the number of entropy coding groups is changed to ensure that the codec throughput is high enough. For example, in 4: 4: 4 mode, a 2 × 8 block may include four entropy coding groups as illustrated in FIG. In such an example, four entropy coding groups may be used (eg, signaled by an encoder) for each color component (eg, Y, Co, and Cg). Table 1 illustrates exemplary changes to the number of entropy coding groups used for 4: 2: 2 and 4: 2: 0 modes. The remainder of signaling described above (eg, BPV signaling, segmented indication signaling, etc.) is for 4: 2: 2 and 4: 2: 0 modes (for 4: 4: 4 mode). May not change) (from the signaling described). For example, in Table 1, component 0 may correspond to luma (Y),
利点
[0145] 本開示で説明される1つまたは複数のブロック予測モード技法は、非対称設計を使用して実装され得る。非対称設計は、より費用がかかるプロシージャがエンコーダ側で実行されることを可能にし、デコーダの複雑さを減少させる。例えば、(1つまたは複数の)ベクトルがデコーダに明示的にシグナリングされるので、エンコーダは、デコーダと比較して作業の大部分を行う。これは、エンコーダが、しばしば、最先端のプロセスノード(例えば、20nm以下)上で高い周波数で動作するシステムオンチップ(SoC)設計の一部であるので望ましい。一方、デコーダは、制限されたクロック速度とはるかに大きいプロセスサイズ(例えば、65nm以上)とを有するディスプレイドライバ集積回路(DDIC)チップオングラス(COG:chip-on-glass)ソリューションで実装される可能性がある。
advantage
[0145] One or more block prediction mode techniques described in this disclosure may be implemented using an asymmetric design. The asymmetric design allows more expensive procedures to be performed on the encoder side and reduces decoder complexity. For example, since the vector (s) are explicitly signaled to the decoder, the encoder does most of the work compared to the decoder. This is desirable because the encoder is often part of a system-on-chip (SoC) design that operates at high frequencies on state-of-the-art process nodes (eg, 20 nm or less). On the other hand, the decoder can be implemented with a display driver integrated circuit (DDIC) chip-on-glass (COG) solution that has a limited clock speed and a much larger process size (eg, greater than 65 nm). There is sex.
[0146] さらに、ブロック区分サイズの適応可能な選択は、ブロック予測モードがコンテンツタイプのより広い範囲に対して使用されることを可能にする。BPVを明示的にシグナリングすることは費用がかかるので、可変の区分サイズは、2×2区分を使用して十分に予測されることができるイメージ領域についての低減されたシグナリングコストを可能にする。極めて複雑な領域について、より高いシグナリングコストを補うようにエントロピーコーディングレートが十分に低減され得る場合、またはRDトレードオフが1×2をさらに支持する(in favor of)ように歪みが十分に低減され得る場合、1×2区分サイズが選択され得る。例えば、ブロック区分サイズの適応可能な選択は、自然画像、テストパターン、細かいテキストレンダリングなどを含む、全てのコンテンツタイプにわたる性能を上昇させ得る。いくつかの実施形態では、本明細書で説明される適応可能な区分技法は、2×2よりも大きいブロック区分サイズおよび/または2×8よりも大きいブロックサイズを考慮することで拡張され得る。 [0146] Furthermore, the adaptive selection of block partition size allows the block prediction mode to be used for a wider range of content types. Since explicit signaling of BPV is expensive, a variable partition size allows for reduced signaling costs for image regions that can be well predicted using 2 × 2 partitions. For highly complex regions, if the entropy coding rate can be reduced sufficiently to compensate for higher signaling costs, or the distortion is reduced sufficiently so that the RD trade-off further favors 1 × 2. If so, a 1 × 2 partition size may be selected. For example, an adaptive selection of block partition sizes can increase performance across all content types, including natural images, test patterns, fine text rendering, and the like. In some embodiments, the adaptive partitioning techniques described herein may be extended by considering a block partition size greater than 2x2 and / or a block size greater than 2x8.
[0147] 本明細書で説明される1つまたは複数の技法は、固定ビットレートバッファモデルを用いて固定されたビット(fixed-bit)のコーデックにおいて実装され得る。このようなモデル、レートバッファ中に記憶されたビットは、固定ビットレートにおいてレートバッファから削除される。よって、ビデオエンコーダがビットストリームにあまりに多くのビットを加えた場合、レートバッファはオーバーフローし得る。一方、ビデオエンコーダは、レートバッファのアンダーフローを防ぐために、十分なビットを加える必要があり得る。さらに、ビデオデコーダ側では、ビットは、固定ビットレートでレートバッファに加えられ得、ビデオデコーダは、各ブロックについて可変数のビットを削除し得る。適切な復号を保証するために、ビデオデコーダのレートバッファは、圧縮されたビットストリームの復号中に「アンダーフロー」または「オーバーフロー」すべきでない。本明細書で説明される1つまたは複数の技法は、符号化および/または復号中、このようなアンダーフローまたはオーバーフローが起こらないことを保証し得る。いくつかの実施形態では、エンコーダは、ビットバジェット制約(a bit-budget constraint)下で動作し得、ここで、エンコーダは、所与の領域、スライス、またはフレームをコーディングするために固定数のビットを有する。このような実施形態では、ビットバジェットまたは制約に関連した他のビット/帯域幅が満たされ得ることをエンコーダが保証できるように、複数のコーディングモードのうちの各1つの、いくつのビットが、所与の領域、スライス、またはフレームをコーディングできることが必要であるかを正確に(推定する必要なく)知ることができることは、エンコーダにとって不可欠(critical)である。例えば、所与の領域、スライス、またはフレームのコーディングが、推定されたより多くのビットを必要とする場合、いずれの予備的な測定も実施しなければならないということなく、エンコーダは、所与のコーディングモードにおいて所与の領域、スライス、またはフレームをコーディングし得る。 [0147] One or more techniques described herein may be implemented in a fixed-bit codec using a fixed bit rate buffer model. Bits stored in such a model, rate buffer, are deleted from the rate buffer at a fixed bit rate. Thus, if the video encoder adds too many bits to the bitstream, the rate buffer can overflow. On the other hand, the video encoder may need to add enough bits to prevent underflow of the rate buffer. Further, on the video decoder side, bits can be added to the rate buffer at a fixed bit rate, and the video decoder can delete a variable number of bits for each block. To ensure proper decoding, the video decoder rate buffer should not "underflow" or "overflow" during decoding of the compressed bitstream. One or more techniques described herein may ensure that no such underflow or overflow occurs during encoding and / or decoding. In some embodiments, the encoder may operate under a bit-budget constraint, where the encoder is a fixed number of bits to code a given region, slice, or frame. Have In such an embodiment, how many bits of each one of the multiple coding modes are given so that the encoder can ensure that other bits / bandwidth associated with the bit budget or constraints can be met. Being able to know exactly (without having to estimate) whether it is necessary to be able to code a given region, slice or frame is critical to the encoder. For example, if the coding of a given region, slice, or frame requires more bits than estimated, the encoder can perform the given coding without having to perform any preliminary measurements. A given region, slice, or frame may be coded in mode.
[0148] さらに、本明細書で説明される1つまたは複数の技法は、ディスプレイリンクを介した送信におけるビデオ圧縮技術に関連付けられた特定の技術的問題を克服する。ある領域が複数の候補領域(例えば、複数の候補領域のうちの対応する1つに基づいて予測される領域中の各区分)に基づいてコーディングされることを可能にすることによって、ビデオエンコーダおよびデコーダは、領域の性質(例えば、平滑、複雑など)に基づいて、カスタマイズされた予測を提供することができ、それによりビデオエンコーダおよびデコーダ(例えば、ハードウェアおよびソフトウェアコーデック)性能を改善する。 [0148] Furthermore, one or more techniques described herein overcome certain technical problems associated with video compression techniques in transmission over a display link. A video encoder by allowing a region to be coded based on a plurality of candidate regions (eg, each partition in a region predicted based on a corresponding one of the plurality of candidate regions) The decoder can provide customized predictions based on the nature of the region (eg, smooth, complex, etc.), thereby improving video encoder and decoder (eg, hardware and software codec) performance.
ブロック予測モードのための複数の探索範囲
[0149] 図3〜6を参照して説明されるように、探索空間(例えば、エンコーダが、候補ブロックを見つけるために探索し得る、ピクセルの空間ロケーション)は、現在ブロックの特性に基づいて異なり得る。例えば、探索空間は、全ての前に再構成されたブロック/ピクセルを潜在的に含み得る。いくつかの実施形態では、エンコーダおよび/またはデコーダは、例えば、計算複雑さを低減するために、候補ブロックのための探索を探索空間内の指定された部分(例えば、ビットストリーム中であらかじめ定義されるかまたはシグナリングされるかのいずれかである1つまたは複数のパラメータによって定義される「探索範囲」)に制限し得る。いくつかの実装では、ブロック予測は、ブロック予測モードでコーディングされた各ブロックについての単一の探索範囲を利用する。これらの実装では、現在ブロックに関する探索範囲のロケーションは、現在ブロックがFLS(スライスの第1のライン)にあるかNFLS(スライスの第1でないライン)にあるかに依存し得る。図19の図1900に示されているように、現在ブロック1910がFLSである場合、探索範囲は、同じブロックライン中の現在ブロックの左にあり得(例えば、FLS探索範囲1920)、現在ブロックがNFLSにある場合、探索範囲は、現在ブロックラインのすぐ上のブロックラインにあり得る(例えば、NFLS探索範囲1930)。ブロックラインという用語は、その通常の意味を有していることに加え、ブロックに属する全てのラスタスキャンラインを含み得る。例えば、ブロックサイズが2×8ピクセルである(アドバンストディスプレイストリーム圧縮[ADSC:Advanced Display Stream Compression]が2×8ピクセルの標準的なブロックサイズを有する)場合、ブロックラインは、2つのラスタスキャンラインを含むであろう。
Multiple search ranges for block prediction mode
[0149] As described with reference to FIGS. 3-6, the search space (eg, the spatial location of pixels that an encoder may search to find a candidate block) varies based on the characteristics of the current block. obtain. For example, the search space may potentially include all previously reconstructed blocks / pixels. In some embodiments, the encoder and / or decoder may perform a search for a candidate block, for example, in a specified portion in the search space (e.g., predefined in the bitstream, to reduce computational complexity, for example. Or “search range” defined by one or more parameters that are either signaled or signaled. In some implementations, block prediction utilizes a single search range for each block coded in block prediction mode. In these implementations, the location of the search range for the current block may depend on whether the current block is at FLS (first line of the slice) or NFLS (non-first line of the slice). As shown in diagram 1900 of FIG. 19, if the
[0150] 対照的に、本開示のいくつかの実施形態では、エンコーダおよび/またはデコーダは、複数の探索範囲を維持し得る。複数の探索範囲がブロック予測モードでブロックをコーディングするために使用されることを可能にすることによって、より良い候補区分に位置している可能性が高くなり得(例えば、ブロック予測モードでコーディングされた各ブロックについて単一の探索範囲のみを考慮する前の実装と比較して)、それにより、ブロック予測モードのコーディング効率および/またはコーディング性能を改善する。さらに、探索範囲を適用可能に選択するためのエンコーダが各ブロックをコーディングするために使用されることを可能にすることによって、ブロック予測方式の性能は、さらに改善され得る。 [0150] In contrast, in some embodiments of the present disclosure, an encoder and / or decoder may maintain multiple search ranges. By allowing multiple search ranges to be used to code a block in block prediction mode, it may be more likely to be located in a better candidate partition (eg, coded in block prediction mode). Compared to previous implementations that only consider a single search range for each block), thereby improving the coding efficiency and / or coding performance of the block prediction mode. Furthermore, the performance of the block prediction scheme can be further improved by allowing an encoder to select a search range to be used to code each block.
[0151] このような実施形態のうちのいくつかでは、ブロック予測モードで所与のブロックをコーディングする際に使用するために複数の探索範囲が考慮され得るが、探索範囲のうちの1つのみが、ある時間において使用されることが可能であり得る。例えば、ブロック予測モードでコーディングされている各ブロックは、複数の探索範囲のうちの、両方ではなく1つに関連付けられ得る。いくつかの実施形態では、ブロック予測モードでコーディングされるブロックが複数の区分を有する場合、それらの区分のコーディングは、ブロックのために選択された同じ探索範囲を使用して各区分がコーディングされるように、制約され得る。単一のブロックのために使用される探索範囲の数を制限することによって、エンコーダは、単一のビットを使用して、どの探索範囲が使用されるかをデコーダに容易にシグナリングすることができる。他の実施形態では、1より多い探索範囲は、単一のブロックのために使用され得る。例えば、第1の探索範囲は、単一のブロック中の第1の区分をコーディングするために使用され得、第1の探索範囲とは異なる第2の探索範囲は、単一のブロック中の第2の区分をコーディングするために使用され得る。 [0151] In some of such embodiments, multiple search ranges may be considered for use in coding a given block in block prediction mode, but only one of the search ranges. May be able to be used at certain times. For example, each block coded in block prediction mode may be associated with one of the plurality of search ranges instead of both. In some embodiments, if a block coded in block prediction mode has multiple partitions, the coding of those partitions is coded using the same search range selected for the block. Can be constrained. By limiting the number of search ranges used for a single block, the encoder can easily signal to the decoder which search range is used using a single bit. . In other embodiments, more than one search range may be used for a single block. For example, a first search range may be used to code a first partition in a single block, and a second search range that is different from the first search range is a first search range in a single block. Can be used to code two partitions.
[0152] 本開示のいくつかの実施形態では、2つの探索範囲(SR0およびSR1)は、図20の図2000に示されているように、エンコーダおよび/またはデコーダによって維持される。FLS内のブロックについて、参照のために現在ブロックラインを使用することが唯一のオプションであるので、2つの探索範囲間の区別は存在しない可能性がある(または、ブロック予測の結果または性能において差異が存在しない可能性がある)。例えば、現在ブロック2010がFLS内にある場合、SR0探索範囲2020のみが現在ブロック2010をコーディングするために使用され得、SR0探索範囲2030が利用可能ではない可能性がある。一方、現在ブロック2010がNFLS内にある場合、SR0探索範囲2020およびSR1探索範囲2030は両方とも利用可能であり得、探索範囲2020と2030のうちのいずれかが、ブロック予測モードで現在ブロック2010をコーディングするために使用され得る。図20に図示されるように、SR0探索範囲2030は、前の再構成されたブロックライン(例えば、最も最近再構成された1つまたは複数のブロックライン)からのデータ(例えば、現在ブロックのコーディングに先立ってコーディングされたピクセル)を含み、SR1探索範囲2020は、現在ブロックラインから(例えば、現在ブロックの左まで)のデータ(例えば、現在ブロックのコーディングに先立ってコーディングされたピクセル)を含む。いくつかの実施形態では、1つまたは複数の最も最近再構成されたピクセルまたはブロックは、パイプライン化の理由(pipelining reasons)から、(1つまたは複数の)探索範囲から除かれ得る。例えば、現在ブロックすぐ左にある、1つまたは複数のブロック(例えば、ピクセルまたはブロックの閾値数)は、探索範囲SR1から除かれ得る。(1つまたは複数の)探索範囲から除かれたピクセルまたはブロックの数は、パイプライン化制約(pipelining constraints)に依存し得る。
[0152] In some embodiments of the present disclosure, the two search ranges (SR 0 and SR 1 ) are maintained by an encoder and / or decoder, as shown in FIG. 2000 of FIG. Because the only option is to use the current block line for reference for blocks in the FLS, there may not be a distinction between the two search ranges (or differences in block prediction results or performance) May not exist). For example, if the
[0153] エンコーダは、2つの探索範囲に関して独立して、現在ブロック内の全ての区分のためにブロック予測探索を行い得る。例えば、現在ブロックが2つの区分を有する場合、エンコーダは、第1の探索範囲において第1の区分のためにブロック予測探索を行い得、次に、第1の探索範囲において第2の区分のためにブロック予測探索を行い得る。その探索に基づいて、エンコーダは、第1の探索範囲において複数のブロックまたは複数のブロック区分を使用して現在ブロック中の2つの区分をコーディングするための第1のコストを決定し得る。次に、エンコーダは、第2の探索範囲において第1の区分のためにブロック予測探索を行い得、次に、第2の探索範囲において第2の区分のためにブロック予測探索を行い得る。この探索に基づいて、エンコーダは、第2の探索範囲において複数のブロックまたは複数のブロック区分を使用して現在ブロック中の2つの区分をコーディングするための第2のコストを決定し得る。レートおよび歪みコストが現在ブロック全体について最小化されるように(例えば、現在ブロック内の全ての区分を予測するために)、探索範囲におけるブロックまたはブロック区分が選択され得る。 [0153] The encoder may perform a block prediction search for all partitions in the current block, independently of the two search ranges. For example, if the current block has two partitions, the encoder may perform a block prediction search for the first partition in the first search range, and then for the second partition in the first search range. A block prediction search may be performed. Based on the search, the encoder may determine a first cost for coding two partitions in the current block using multiple blocks or multiple block partitions in a first search range. The encoder may then perform a block prediction search for the first partition in the second search range and then perform a block prediction search for the second partition in the second search range. Based on this search, the encoder may determine a second cost for coding the two partitions in the current block using multiple blocks or multiple block partitions in the second search range. A block or block partition in the search range may be selected so that rate and distortion costs are minimized for the entire current block (eg, to predict all partitions in the current block).
[0154] 各探索範囲についてのコスト(例えば、レートおよび歪み推定)を決定すると、エンコーダは、本開示で論じられるようなRDコスト(例えば、D+λ・R)を最小化することによって、2つのオプション間で選択することができる。エンコーダは、最低RDコストをもたらす探索範囲を選択し、選択された探索範囲を使用して、現在ブロックをコーディングし得る。現在ブロックを復号するために使用される探索範囲のインジケーションは、例えば、ビットストリームにおいて明示的に各ブロックについての1ビットフラグをシグナリングすることによって、デコーダに送信される。よって、複数の探索範囲の使用によって必要とされるデコーダ側の変更は、最小限である。本質的に、一方の探索範囲は、もう一方と置き換えられ、ブロック予測のための全ての他のステップは、複数の探索範囲を使用しない実装においてのように行われ得る。 [0154] Having determined the cost (eg, rate and distortion estimation) for each search range, the encoder has two options by minimizing the RD cost (eg, D + λ · R) as discussed in this disclosure. You can choose between. The encoder may select the search range that results in the lowest RD cost and use the selected search range to code the current block. The search range indication used to decode the current block is sent to the decoder, eg, by explicitly signaling a 1-bit flag for each block in the bitstream. Thus, the decoder side changes required by the use of multiple search ranges are minimal. In essence, one search range is replaced with the other, and all other steps for block prediction can be performed as in an implementation that does not use multiple search ranges.
[0155] 他の実施形態では、選択された探索範囲をシグナリングする1ビットフラグは、省略され得る。このような実施形態では、探索範囲は、ブロック予測モードの別個のインスタンスに各々関連付けられ得、ここで、探索範囲インデックスは、モードヘッダによって暗黙的にシグナリングされ得る。例えば、ブロックに関連付けられたコーディングモードをシグナリングために3ビットが使用される場合、6つのコーディングモードのみがエンコーダまたはデコーダに利用可能であり、同じ3ビットのシンタックス要素が、2つのさらなるコーディングモード(例えば、一方は、第1の探索範囲を常に使用するかまたは、デフォルトで第1の探索範囲を使用するブロック予測モード、そしてもう一方は、第2の探索範囲を常に使用するかまたは、デフォルトで第2の探索範囲を使用するブロック予測モード)をシグナリングするために使用され得る。よって、コーディングモードをシグナリングするために使用される既存のシンタックス要素を利用することによって、ビットの節約が達成され得る。 [0155] In other embodiments, the 1-bit flag signaling the selected search range may be omitted. In such an embodiment, the search range may each be associated with a separate instance of the block prediction mode, where the search range index may be implicitly signaled by the mode header. For example, if 3 bits are used to signal the coding mode associated with the block, only 6 coding modes are available to the encoder or decoder, and the same 3 bit syntax element is used for 2 additional coding modes. (For example, one always uses the first search range or the block prediction mode that uses the first search range by default, and the other always uses the second search range or defaults. In block prediction mode using the second search range). Thus, bit savings can be achieved by utilizing existing syntax elements used to signal the coding mode.
複数の探索範囲を使用するブロック予測モードにおけるコーディング
[0156] 図21を参照して、ブロック予測モードでビデオデータのブロックをコーディングするための例示的なプロシージャが説明される。図21に示されているステップは、ビデオエンコーダ(例えば、図2A中のビデオエンコーダ20)、またはそれらの(1つまたは複数の)コンポーネントによって実行され得る。便宜上、方法2100について、ビデオエンコーダ20、または別のコンポーネントであり得る、コーダによって実行されるものとして説明する。
Coding in block prediction mode using multiple search ranges
[0156] With reference to FIG. 21, an exemplary procedure for coding a block of video data in a block prediction mode is described. The steps shown in FIG. 21 may be performed by a video encoder (eg,
[0157] 方法2100はブロック2101において開始する。ブロック2105において、コーダは、現在ブロックに対応するロケーションの第1の範囲内の第1の候補領域に基づいて、現在ブロック(例えば、現在コーディングされているビデオデータのブロック)をコーディングすることに関連付けられた第1のコストを決定する。第1の候補領域は、現在ブロックと同じサイズ(例えば、同じ寸法および/または同じ数のピクセル)を有し得る。第1の候補領域は、前にコーディングされた1つのブロックまたはブロックの一部分を含み得、現在ブロックをコーディングするために現在使用されている。いくつかの実施形態では、第1の候補領域は、現在ブロックの異なる部分をコーディングするために各々使用される、ブロックまたはブロック区分の集合(collection)であり得る。例えば、現在ブロックは、4つのブロック区分を含み得、4つのブロック区分の各々は、ロケーションの第1の範囲内の第1の候補領域の異なるブロックまたはブロック区分を使用して、予測またはコーディングされ得る。いくつかの実装では、現在ブロック内の複数のブロック区分は、複数のロケーションの第1の範囲内の第1の候補領域の同じブロックまたはブロック区分に基づいてコーディングされ得る。複数のロケーションの第1の範囲(例えば、第1の探索範囲)は、エンコーダによって、または適用可能なコーディング規格によって指定された探索範囲であり得る。複数のロケーションの第1の範囲は、本開示で論じられる例示的な探索範囲のうちの1つに類似し得る。複数のロケーションの第1の範囲は、(例えば、コーディング順またはラスタスキャニング順で)後に続く複数のブロックおよび/または複数のブロック区分を予測またはコーディングするために再構成および使用される、複数のブロックまたはブロック区分を備え得る。複数のロケーションの第1の範囲は、現在ブロックとオーバーラップするラスタスキャンラインを含み得る。他の実施形態では、複数のロケーションの第1の範囲は、現在ブロックとオーバーラップするラスタスキャンラインを含まない。第1の候補領域に関連付けられたビデオデータは、ビデオ符号化デバイスのメモリに記憶され得る。
The
[0158] ブロック2110において、コーダは、現在ブロックに対応する複数のロケーションの第2の範囲内の第2の候補領域に基づいて、現在ブロックをコーディングすることに関連付けられた第2のコストを決定する。第2の候補領域は、現在ブロックと同じサイズ(例えば、同じ寸法および/または同じ数のピクセル)を有し得る。第2の候補領域は、前にコーディングされた1つのブロックまたはブロックの一部を含み得、現在ブロックをコーディングするために現在使用されている。いくつかの実施形態では、第2の候補領域は、現在ブロックの異なる部分をコーディングするために各々使用される、ブロックまたはブロック区分の集合であり得る。例えば、現在ブロックは、4つのブロック区分を含み得、4つのブロック区分の各々は、複数のロケーションの第2の範囲内の第1の候補領域の異なるブロックまたはブロック区分を使用して、予測またはコーディングされ得る。いくつかの実装では、現在ブロック内の複数のブロック区分は、複数のロケーションの第2の範囲内の第1の候補領域の同じブロックまたはブロック区分に基づいてコーディングされ得る。複数のロケーションの第2の範囲は、エンコーダによって、または利用可能なコーディング規格によって指定された探索範囲であり得る。複数のロケーションの第2の範囲は、本開示で論じられる例示的な探索範囲に類似し得る。複数のロケーションの第2の範囲は、(例えば、コーディング順またはラスタスキャニング順で)後に続く複数のブロックおよび/または複数のブロック区分を予測またはコーディングするために再構成および使用される、複数のブロックまたはブロック区分を備え得る。いくつかの実施形態では、複数のロケーションの第1の範囲および複数のロケーションの第2の範囲は、相互に排他的である。代替的にまたは追加的に、複数のロケーションの第1の範囲および複数のロケーションの第2の範囲は、異なるラスタスキャンラインを占有し得る。複数のロケーションの第2の範囲は、現在ブロックとオーバーラップするラスタスキャンラインを含み得る。他の実施形態では、複数のロケーションの第2の範囲は、現在ブロックとオーバーラップするラスタスキャンラインを含まない。例えば、図20に示されているように、2つの探索範囲2020および2030は、互いとオーバーラップしない。第2の候補領域に関連付けられたビデオデータは、ビデオ符号化デバイスのメモリに記憶され得る。
[0158] At
[0159] ブロック2115において、コーダは、第1の候補領域に基づいて現在ブロックをコーディングすることに関連付けられた第1のコストが、第2の候補領域に基づいて現在ブロックをコーディングすることに関連付けられた第2のコストよりも大きいかどうかを決定する。例えば、コーダは、複数のロケーションの第1の範囲内(例えば、第1の探索範囲内)の第1の候補領域を使用して現在ブロックをコーディングすることに関連付けられたレートおよび歪みに基づくコストと、複数のロケーションの第2の範囲内(例えば、第2の探索範囲内)の第2の候補領域を使用して現在ブロックをコーディングすることに関連付けられたレートおよび歪みに基づくコストとを計算し、これら計算されたコストを比較し得る。いくつかの実施形態では、現在ブロックは、複数のブロック区分を備え得る。このような実施形態のうちのいくつかでは、第1および第2のコストを計算することは、(i)現在ブロック中の対応する複数のブロック区分をコーディングするために使用される関連する探索範囲(例えば、それぞれ、第1の探索範囲および第2の探索範囲)内の複数のブロック区分を決定することと、(ii)関連する探索範囲内の複数のブロック区分に基づいて現在ブロック内の個々のブロック区分をコーディングするために個々のコストを決定することと、(iii)個々のコストに基づいて第1および第2のコストを計算することと、を含み得る。例えば、第1および第2のコストは、個々のコストを合計することによって計算され得る。代替的に、第1および第2のコストは、個々のコストを平均化することによって計算され得る。
[0159] At
[0160] ブロック2120において、コーダは、第1のコストが第2のコストよりも大きいと決定することに応答して、第2の範囲に関連付けられたインジケーションを提供することを少なくとも部分的に介して、複数のロケーションの第2の範囲内の第2の候補領域に基づいて現在ブロックをコーディングする。いくつかの実施形態では、インジケーションは、現在ブロックが(i)複数のロケーションの第1の範囲内の第1の候補領域に基づいてコーディングされるか、または(ii)複数のロケーションの第2の範囲内の第2の候補領域に基づいてコーディングされるかを示す1ビットフラグであり得る。例えば、フラグ値が0に等しい場合、そのフラグは、現在ブロックが(例えば、複数のロケーションの第1の範囲内の第1の候補領域に基づいて)第1の探索範囲において1つまたは複数のブロックまたはブロック区分に基づいてコーディングされることを示し得、フラグ値が1に等しい場合、そのフラグは、現在ブロックが(例えば、複数のロケーションの第2の範囲内の第2の候補領域に基づいて)第2の探索範囲において1つまたは複数のブロックまたはブロック区分に基づいてコーディングされることを示し得る。他の実施形態では、インジケーションは、現在ブロックに関連付けられたコーディングモードを示すように構成されるマルチビットシンタックス要素であり得る。例えば、シンタックス要素は、複数のコーディングモードのうちのどの1つが現在ブロックをコーディングするために使用されるべきかを示し得る。コーディングモードのうちの1つが、ブロック予測モードであり得る。いくつかの実施形態では、シンタックス要素が(複数の可能性のある値のうちの)1つの値を有する場合、現在ブロックは、第1の探索範囲のみを使用する(または、他のものに提供されない限り、デフォルトで第1の探索範囲を使用する)ブロック予測モードでコーディングされ、シンタックス要素が(複数の可能性のある値のうちの)別の値を有する場合、現在ブロックは、第2の探索範囲のみを使用する(または、他のものに提供されない限り、デフォルトで第2の探索範囲を使用する)ブロック予測モードでコーディングされる。シンタックス要素が(複数の可能性のある値のうちの)さらに別の値を有し得る場合、現在ブロックは、ブロック予測モード以外のコーディングモードでコーディングされ得る。方法2100はブロック2125において終了する。
[0160] In
[0161] 方法2100では、図21に示されているブロックのうちの1つまたは複数は削除される(例えば、実行されない)可能性があり、および/または方法が実行される順序は入れ替えられ得る。例えば、いくつかの実施形態では、ブロック2105、2110、および2115のうちの1つまたは複数は、(例えば、スライス中の第1のラインのような)同じスライス中の任意の先行するラスタスキャンラインを有していないラスタスキャンラインを現在ブロックが含むことをコーダが決定する場合に省略され得る。いくつかの実施形態では、さらなるブロックが方法2100に追加され得る。本開示の実施形態は、図21に示されている例にまたはそれによって限定されず、他の変形が本開示の趣旨から逸脱することなく実装され得る。
[0161] In the
複数の探索範囲を使用する利点
[0162] ブロック予測モードでブロックをコーディングするときに、複数の探索範囲を使用することに関連した技法は、ブロック予測モードに関連付けられたコーディング効率を改善し、それにより、特にグラフィックタイプイメージおよびグラフィックコンテンツに関して、コーディング性能を上昇させる。これらの技法のうちの1つまたは複数を実装することは、エンコーダ側における計算複雑さを増大させ得る。しかしながら、エンコーダがより小さいプロセスノード(20nmまたはそれに満たない)において実装されるので、エンコーダは一般に、増大した計算複雑さに対してさらなる許容度(greater degree of tolerance)を示す。重要なことに、デコーダ複雑さは、複数の探索範囲がブロック予測モードでブロックをコーディングするために使用される場合でさえ、大部分が同じままであるだろう。デコーダは一般に、はるかに大きいプロセスサイズ(60nm以上)で実装され得、より厳しいハードウェア要件(例えば、ゲートカウントが最小化されなければならないなど)に従い得る。よって、ブロック予測モードで複数の探索範囲を使用するための本開示の技法は、計算複雑さの比較的少ない増加で、コーディング性能を改善する。
Advantages of using multiple search ranges
[0162] Techniques related to using multiple search ranges when coding a block in block prediction mode improve the coding efficiency associated with block prediction mode, and in particular, graphic type images and graphics. Increase content coding performance. Implementing one or more of these techniques may increase computational complexity at the encoder side. However, since the encoder is implemented at a smaller process node (20 nm or less), the encoder typically exhibits a greater degree of tolerance to increased computational complexity. Importantly, the decoder complexity will remain largely the same even when multiple search ranges are used to code the block in block prediction mode. The decoder can generally be implemented with a much larger process size (60 nm or more) and can follow more stringent hardware requirements (eg, gate count must be minimized). Thus, the techniques of this disclosure for using multiple search ranges in block prediction mode improve coding performance with a relatively small increase in computational complexity.
簡略化されたブロック予測モード
[0163] いくつかの場合には、ブロック予測モードで現在ブロックをコーディングするために上記で説明された技法は、さらに簡略化されることができる。例えば、コストが制限された(cost-constrained)ハードウェア実装について、上記で説明された1つまたは複数の特徴は、(エンコーダ側、デコーダ側、または両方において)コーダの計算複雑さを低減するために削除または修正され得る。このような場合、下記の変更のうちの1つまたは複数は、性能を大きく悪化させることなく、ブロック予測モードでブロックをコーディングする方法を行うことができる:(i)コーダは、上記で説明されたような複数の探索範囲を使用する代わりに、現在ブロックまたは区分を予測するために、単一の探索範囲を使用し得る;(ii)探索範囲は、前の再構成されたライン(例えば、現在ラインのすぐ前のライン)と現在ラインとの両方からのピクセルを含み、ここにおいて、このようなライン中のサンプルは、既に再構成されており(例えば、現在ブロックまたは区分がコーディングされる時間までに)、および/または(iii)単一の前に再構成されたラインは(複数のラインを含み得る)前の再構成されたブロックラインを使用する代わりに、現在ブロックまたは区分を予測するために使用される。
Simplified block prediction mode
[0163] In some cases, the techniques described above for coding the current block in block prediction mode can be further simplified. For example, for a cost-constrained hardware implementation, one or more features described above reduce the computational complexity of the coder (on the encoder side, the decoder side, or both) Can be deleted or modified. In such cases, one or more of the following changes can be made to code the block in block prediction mode without significantly degrading performance: (i) The coder is described above. Instead of using multiple search ranges, a single search range may be used to predict the current block or partition; (ii) the search range may be a previous reconstructed line (eg, Includes pixels from both the current line and the current line, where the samples in such a line have already been reconstructed (eg, the time the current block or partition is coded) And / or (iii) a single previously reconstructed line is an alternative to using a previous reconstructed block line (which may include multiple lines) , It is used to predict the current block or segment.
[0164] コーディング性能とハードウェア複雑さとの間の所与の実装の所望のトレードオフに依存して、本明細書で説明されるブロック予測モード(例えば、標準的なブロック予測モード、複数の範囲を使用するブロック予測モード、簡略化されたブロック予測モードなど)においてブロックをコーディングするための技法の様々なバージョンおよび修正が使用され得る。ブロック予測モードのうちのいくつかのバージョンは性能とハードウェア複雑さとの間のVESAタスクグループの譲歩(compromise)に依存して、ADSCのために選択され得る。 [0164] Depending on the desired trade-off between a given implementation between coding performance and hardware complexity, the block prediction modes described herein (eg, standard block prediction modes, multiple ranges) Various versions and modifications of the techniques for coding blocks in block prediction modes using, simplified block prediction modes, etc. may be used. Some versions of the block prediction mode may be selected for ADSC depending on the VESA task group promise between performance and hardware complexity.
[0165] 上記で説明されたように、いくつかの実施形態では、簡略化されたブロック予測モードは、単一の探索範囲を使用し得る。このような実施形態のうちのいくつかでは、可能性のあるブロック予測ベクトルの総数は、いくつかのnに関して2nのように決定される。例えば、ADSCは一般に、n=6を使用し、その場合には、可能性のあるブロック予測ベクトルの総数は、64個の位置であるだろう。探索範囲内の候補ピクセルは、領域A、領域B、および領域Cと本明細書では呼ばれ得る、3つの領域のうちのいずれかに由来し得る。探索範囲(SR)および探索範囲内の位置(SR pos)へのBVPインデックスの例示的なマッピングが表2で示される。例えば、このマッピングは、関連するSRの長さSrLeni,i∈{A,B,C}から計算され得る。
[0166] いくつかの実施形態では、エンコーダがデコーダに明示的にシグナリングするブロック予測ベクトルは、範囲[0,2n−1]における整数であり得る。インデックスから探索範囲へのマッピングは、SrLeniに依存し得る。表2は、SrLenA=26、SrLenB=8、SrLenC=30である例を示す。 [0166] In some embodiments, the block prediction vector that the encoder explicitly signals to the decoder may be an integer in the range [0, 2 n -1]. The mapping from the index to the search range may depend on SrLen i . Table 2 shows an example where SrLen A = 26, SrLen B = 8, and SrLen C = 30.
[0167] 図22の図2200では、原因となる利用可能なイメージ(causally-available image)(例えば、前に再構成されたピクセル)の異なる領域からのピクセルを備える単一の探索範囲を、簡略化されたブロック予測が使用する例が図示されている。各特定の領域中の候補の数は、コーデックのパラメータに依存して調整され得る。図22の例では、SRA/SRBは、前の再構成されたラインから形成されるが、一方、SRCは、現在ブロックラインから形成される。例えば、SRAは、図22に図示されているような現在ブロック2340の真上(例えば、それと垂直方向に(vertically)オーバーラップする)、または右のいずれかであるピクセルを含み、SRBは、図22に図示されているような現在ブロック2340の左にあるピクセル(例えば、現在ブロック2340と垂直方向にオーバーラップせず、現在ブロック2340中のピクセルよりも小さいx座標値を有する)を含む。図22は、SRA2220、SRB2210、SRC2230、および現在ブロック2240を図示する。図22に図示されているように、SRA2220およびSRB2210は、前の再構成されたライン中にあり、SRC2230は、現在ブロックライン中にある。
[0167] In Figure 2200 of Figure 22, a single search range comprising pixels from different regions of a causally-available image (eg, previously reconstructed pixels) is simplified. An example used by generalized block prediction is shown. The number of candidates in each particular region may be adjusted depending on the codec parameters. In the example of FIG. 22, SR A / SR B is formed from the previous reconstructed line, whereas, SR C is formed from the current block line. For example, SR A is directly above the
[0168] 図23の図2300では、可変の区分サイズ(2×2)を用いた簡略化されたブロック予測モードの例が図示されている。SRC内の探索は、本明細書で説明されるように(例えば、SRC内の2×2ブロックを使用して現在ブロックをコーディングすることに関連付けられたコストを決定することによって)行われ得る。SRA/SRB内の探索について、候補区分は、2×2候補を作成するためにy方向に拡張またはパディングされ得る。図23は、SRA2320、SRB2310、SRC2330、および現在ブロック2340を図示する。図23では、SRA2320およびSRB2310は、前の再構成されたライン中にあり、SRC2330は、現在ブロックライン中にある。
FIG. 2300 of FIG. 23 illustrates an example of a simplified block prediction mode using a variable partition size (2 × 2). Search in SR C, as described herein (e.g., by determining the cost associated with coding the current block using the 2 × 2 block in SR C) are performed obtain. For searches in SR A / SR B , the candidate partition may be expanded or padded in the y direction to create 2 × 2 candidates. FIG. 23 illustrates
[0169] 図24の図2400では、可変の区分サイズ(1×2)を用いた簡略化されたブロック予測モードの例が図示されている。SRA/SRB内の探索は、本明細書で説明されるように(例えば、SRA/SRB内の1×2ブロックを使用して現在ブロックをコーディングすることに関連付けられたコストを決定することによって)実行され得る。SRC(現在ブロックライン)内の探索について、現在ブロックのラインl内の区分が、SRCのラインlから探索される。図24は、SRA2420、SRB2410、SRC2430、および現在ブロック2440を図示する。図24では、SRA2420およびSRB2410は、前の再構成されたライン中にあり、SRC2430は、現在ブロックライン中にある。
FIG. 2400 of FIG. 24 illustrates an example of a simplified block prediction mode using a variable partition size (1 × 2). Search in SR A / SR B, as described herein (e.g., determining a cost associated with coding the current block using the 1 × 2 block in SR A / SR B Can be performed). For SR C search (current block line) in, classified in the current line l of the block is searched from the line l of SR C. FIG. 24 illustrates
[0170] 例えば、特定の領域(例えば、領域A、B、またはC)についての探索位置の数は、領域iについてのSrLeniと本明細書で呼ばれ得る。このような例では、下記の制約が確立され得る:SrLenA+SrLenB+SrLenC≦2n。例えば、ブロック予測が単一の探索範囲を使用して実行され、かつ単一の探索範囲における位置の最大数が2nであると定義される場合、それらの領域の各々における位置の合計は、最大数以下である必要があるだろう。SrLeniのための値は、コーデックの必要性に依存して調整され得る。加えて、これらの値は、現在スライス内の区分または現在ブロックのロケーションに基づいて、容易に動的に調整されることができる。例えば、現在ブロックまたは区分がFLSに位置する場合、エンコーダおよびデコーダは、SRAおよびSRBが現在ブロックをコーディングするために使用できないと推測し得る。従って、多数の位置がSRCに(例えば、単一の探索範囲に割り付けられた最大値まで)割り振られ得る。 [0170] For example, the number of search positions for a particular region (eg, region A, B, or C) may be referred to herein as SrLen i for region i. In such an example, the following constraints may be established: SrLen A + SrLen B + SrLen C ≦ 2 n . For example, if block prediction is performed using a single search range and the maximum number of positions in a single search range is defined to be 2 n , the sum of the positions in each of those regions is It will need to be below the maximum number. The value for SrLen i may be adjusted depending on the needs of the codec. In addition, these values can be easily adjusted dynamically based on the partition in the current slice or the location of the current block. For example, if the current block or partition is located in the FLS, the encoder and decoder may infer that SR A and SR B cannot be used to code the current block. Therefore, the number of positions in the SR C (e.g., up to the maximum value assigned to a single search range) may be allocated.
[0171] 単一の探索範囲を使用することに加えて、または代替として、簡略化されたブロック予測モードで、エンコーダ/デコーダが前の再構成されたブロックラインを記憶するための要件が削除され得る。代わりに、1つの前の再構成されたラインのみが記憶され得る。例えば、任意のブロックサイズP×Qに関して、1つの再構成されたラインのみがPラインの代わりに記憶され得る(および図24のSRAのような探索範囲内に含まれる)。 [0171] In addition to or as an alternative to using a single search range, the requirement for the encoder / decoder to store the previous reconstructed block line in a simplified block prediction mode is removed. obtain. Instead, only one previous reconstructed line can be stored. For example, for any block size P × Q, only one reconstructed line (included in the search range as SR A in and 24) that may be stored in place of the P line.
[0172] 可変の区分サイジング(sizing)が活用される(be leveraged)場合、後続のロジック変更が簡略化されたブロック予測モードのために実装され得る。 [0172] If variable piecewise sizing is leveraged, subsequent logic changes may be implemented for the simplified block prediction mode.
[0173] いくつかの実装では、2×2区分が現在ブロックをコーディングするために使用される場合、SRA/SRBからのいずれの候補位置も、図23を参照して上記で説明されたように、2×2候補を生成するために、y方向に拡張またはパディングされ得る。例えば、図23に図示されるように、1×2候補2350は、2×2候補2360を生成するためにサンプル値を複製することによって、y方向に拡張またはパディングされ得る。同様の技法が、任意のサイズのブロックに拡張され得る。例えば、候補は、現在ブロックまたは区分の高さに一致するようにy方向に拡張またはパディングされ得る。一方、2×2候補2380は、拡張またはパディングされないものとして使用され得る。他の実装では、現在ブロック内の2×2区分がどのようにコーディングされるかは、どの探索範囲(例えば、図22〜24におけるSRA、SRB、またはSRC)が2×2区分をコーディングするために使用されるかに依存し得る。このような技法は、図25を参照して下記でより詳細に説明される。
[0173] In some implementations, if a 2x2 partition is used to code the current block, any candidate position from SR A / SR B has been described above with reference to FIG. As such, it can be expanded or padded in the y direction to generate 2 × 2 candidates. For example, as illustrated in FIG. 23, a 1 × 2
[0174] 1×2区分が現在ブロックをコーディングするために使用される場合、SRCからのいずれの候補位置も、図24を参照して上記で説明されたように、現在ブロック中の現在の1×2区分と同じラインから選択され得る。例えば、図24に図示されるように、現在区分2450は、同じライン中の1×2候補2460に基づいて予測され、現在区分2470は、同じライン中の1×2候補2480に基づいて予測される。このような例では、現在区分2450のための候補を発見するために、コーダは、現在区分2450と同じライン内の探索範囲2430における個々の1×2ブロックに基づいて、現在区分2450をコーディングするコストを比較し、現在区分2470のための候補を発見するために、コーダは、現在区分2470と同じライン内の探索範囲2430における個々の1×2ブロックに基づいて、現在区分2470をコーディングするコストを比較する。
[0174] 1 if × 2 segment is used to code the current block, none of the candidate position from SR C, as described above with reference to FIG. 24, the current of the current block It can be selected from the same line as the 1 × 2 section. For example, as illustrated in FIG. 24,
簡略化されたブロック予測モードでのコーディングの利点
[0175] 簡略化されたブロック予測モードでのコーディングに関する技法は、エンコーダ側とデコーダ側の両方において、性能と複雑さとの間のトレードオフを提供する。これは、ハードウェアコストにおいて制約されるいずれの実装にとっても望ましい。
Benefits of coding in simplified block prediction mode
[0175] Techniques for coding in a simplified block prediction mode provide a trade-off between performance and complexity on both the encoder side and the decoder side. This is desirable for any implementation that is constrained in hardware costs.
簡略化されたブロック予測モードのさらなる簡略化
[0176] ASIC/FPGAのためのADSC実装のエリアを低減するために、上記で説明された簡略化されたブロック予測モードで使用される探索範囲へのさらなる修正がなされ得る。ADSCデコーダのハードウェア実装は、探索範囲内の全て位置への高速ランダムアクセスを要求し得る。例えば、このようなハードウェア実装は、(例えば、最悪のケースでは)探索範囲のサイズに比例したフリップフロップのアレイを含み得る。よって、(例えば、探索範囲内の領域のサイズなどの)探索範囲の各部分内の可能性のある位置の最大数を制限することが望ましいだろう。一例では、探索範囲内の各領域内の可能性のある位置の最大数は、下記の通りであり得る:SRA=20,SRB=12,SRC=32。例えば、それぞれの領域中の位置の数は、他の領域中にいくつ位置があるかに関係なくこのような最大数に制限され得る。処理されている現在ブロックがスライスの第1のライン内の位置x=128(例えば、同じライン内の現在ブロックの前の128ピクセルを有する)にある場合、探索範囲AおよびBが現在ブロックをコーディングするために利用可能なピクセルを有しておらず、探索範囲の最大サイズを超えることなく、追加のピクセルが探索範囲Cに含まれ得る(例えば、探索範囲の最大サイズが64ピクセルである場合、128の前にコーディングされたピクセルのうちの64が探索範囲に含まれ得る)という事実にも関わらず、探索範囲Cについての位置の数は、32に制限され得る。ハードウェアにおいて要求されるストレージの量を制限するために、コーディング効率を犠牲にしてこのような制限が置かれ得る。エンコーダの観点から、他の32の探索範囲位置(例えば、64の位置探索範囲のうちの、最初の20ピクセルおよび最後の12ピクセル)はスライスの第1のライン内の任意の現在ブロックに対して「無効(invalid)」であり得る。いくつかの実装では、探索範囲のそれぞれの部分は常に、同じ数の位置に割り当てられ、各位置は、その位置におけるピクセルが存在するかどうか、あるいは現在ブロックをコーディングする時間にエンコーダに利用可能であるかどうかに依存して、「有効(valid)」または「無効」となり得る。ブロック予測探索および全ての他の動作(例えば、コスト計算および比較)は、このような無効位置に関してスキップされ得る。有効な位置の数は、(例えば、探索範囲2520が後続のブロックラインに拡張される、図25の第2の列によって図示されているような)スライスの第1のラインの右エッジへと増加するであろう。他の実装では、探索範囲のそれぞれの位置における位置の数の和は、最大数(例えば、64個の位置)以下に制限され得る。このような実装では、処理されている現在ブロックが、スライスの第1のライン内の位置x=128((例えば、同じライン内の現在ブロックの前の128ピクセルを有する)にある場合、探索範囲Cについての位置の数は、他の探索範囲(例えば、AおよびB)が空であり得るので、32よりも大きいものに等しくなり得る(例えば、最大数が64である場合、最大64)。
Further simplification of simplified block prediction mode
[0176] Further modifications to the search range used in the simplified block prediction mode described above may be made to reduce the area of ADSC implementation for ASIC / FPGA. The hardware implementation of the ADSC decoder may require fast random access to all locations within the search range. For example, such a hardware implementation may include an array of flip-flops that are proportional to the size of the search range (eg, in the worst case). Thus, it may be desirable to limit the maximum number of possible locations within each part of the search range (eg, the size of the region within the search range). In one example, the maximum number of possible locations within each region within the search range may be as follows: SR A = 20, SR B = 12, SR C = 32. For example, the number of positions in each region may be limited to such maximum number regardless of how many positions are in other regions. If the current block being processed is at location x = 128 in the first line of the slice (eg, having 128 pixels before the current block in the same line), search ranges A and B code the current block Additional pixels can be included in the search range C without having available pixels to do so and not exceeding the maximum size of the search range (e.g., if the maximum size of the search range is 64 pixels, Despite the fact that 64 of the 128 previously coded pixels may be included in the search range, the number of positions for search range C may be limited to 32. Such limits can be placed at the expense of coding efficiency to limit the amount of storage required in hardware. From the encoder perspective, the other 32 search range positions (eg, the first 20 pixels and the last 12 pixels of the 64 position search ranges) are relative to any current block in the first line of the slice. It can be “invalid”. In some implementations, each part of the search range is always assigned to the same number of positions, and each position is available to the encoder whether there is a pixel at that position or at the time of coding the current block. Depending on whether there is, it can be “valid” or “invalid”. Block predictive search and all other operations (eg, cost calculation and comparison) may be skipped for such invalid locations. The number of valid positions increases to the right edge of the first line of the slice (eg, as illustrated by the second column in FIG. 25, where the
[0177] コーディング効率に対する影響を制限するために、ある特定の状況下では、より少ない数のビットがビットストリーム中のブロック予測ベクトルをシグナリングするために使用され得る。例えば、現在ブロックがある特定の位置の範囲内(例えば、スライスの第1のライン)にある場合、エンコーダおよびデコーダの両方は、より少ない数のビットがブロック予測ベクトルをシグナリングするために使用されると推測し、探索範囲内の個々の位置の各々を正確に識別するために必要とされるビットの数よりも少ないものを使用してシグナリングされるブロック予測ベクトルを使用して(例えば、探索範囲が64個の位置を有する場合、6ビット)、候補ブロックまたは区分を正確に識別し得る。64個の位置のうちの32が「無効」であると決定される上記の例では、64の探索範囲位置のうちの32のみがその時間中に有効であるので、6の代わりに、ブロック予測ベクトルごとに5ビットがスライスの第1のラインの大部分中で使用され得る。 [0177] To limit the impact on coding efficiency, under certain circumstances, a smaller number of bits may be used to signal a block prediction vector in the bitstream. For example, if the current block is within a certain position (eg, the first line of a slice), both the encoder and decoder are used to signal a block prediction vector with a smaller number of bits. And using block prediction vectors that are signaled using less than the number of bits required to accurately identify each individual position within the search range (e.g., search range 6 bits), the candidate block or partition can be accurately identified. In the above example where 32 of the 64 positions are determined to be “invalid”, only 32 of the 64 search range positions are valid during that time, so instead of 6, block prediction Five bits per vector may be used in the majority of the first line of the slice.
[0178] 加えて、ブロックタイミングに関して、一定レートで探索範囲のフリップフロップを満たすための能力は、ADSCのハードウェア実装のために有利であり得る。これは、探索範囲がブロック時間ごとに1ブロック幅で効率的にシフトするべきであることを意味する。結果として、探索範囲C内のある特定の位置(certain positions)は、一旦、現在ブロックがスライスの次のラインに進むと、現在ブロックに関して技術的には前のブロックライン中にあり得る。この特徴の例示は、図25の図2500で示される。現在ブロック2510がスライスの右エッジへと移動し、次いで、次のブロックラインへと移動するとき、探索範囲2530(例えば、現在ブロックライン内の探索範囲の部分)は、図25の第4および第5の行(rows)に示されているように、前のブロックライン中に残る。
[0178] In addition, with respect to block timing, the ability to fill the search range flip-flops at a constant rate may be advantageous for hardware implementation of ADSC. This means that the search range should be efficiently shifted by one block width every block time. As a result, certain positions within the search range C may technically be in the previous block line with respect to the current block once the current block has advanced to the next line of the slice. An illustration of this feature is shown in FIG. When the
[0179] いくつかの実施形態では、探索範囲B(例えば、図25の探索範囲2540の最上位ライン)が現在ブロックラインの前のラインと第1のラインとにわたる2×2の予測候補を生成するために使用され得る。図25に示されているように、探索範囲2540の最上位ラインは探索範囲Bであり、探索範囲2540の最下位ラインは、探索範囲Bに関してコロケートされる探索範囲Cの一部分(例えば、探索範囲2530)である。よって、このような実施形態のうちのいくつかでは、2×2の予測候補を生成するために探索範囲B中の1×2予測候補を拡張またはパディングするかわりに、コーダは、前の再構成されたラインからの2つのピクセル(例えば、探索範囲Bからの2つのピクセル)と、現在ブロックラインの第1のラインからの2つのピクセル(例えば、探索範囲B中の2つのピクセルに関してコロケートされた、探索範囲Cからの2つのピクセル)とを含む、2×2予測候補を利用し得る。このアプローチは、(例えば、探索範囲A中のピクセルのすぐ下の)探索範囲A中のピクセルに関してコロケートされた現在ブロックラインからのピクセルが、現在ブロック2510をコーディングする時間において原因となる利用可能ではないため、探索範囲A(例えば、探索範囲2520)のために使用されることはできない。
[0179] In some embodiments, the search range B (eg, the top line of the search range 2540 of FIG. 25) generates 2 × 2 prediction candidates that span the line before the current block line and the first line. Can be used to As shown in FIG. 25, the top line of search range 2540 is search range B, and the bottom line of search range 2540 is a portion of search range C that is collocated with respect to search range B (eg, search range 2530). Thus, in some of such embodiments, instead of extending or padding the 1 × 2 prediction candidates in search range B to generate 2 × 2 prediction candidates, the coder may Two pixels from the captured line (eg, two pixels from the search range B) and two pixels from the first line of the current block line (eg, two pixels in the search range B) , Two pixels from the search range C). This approach is not available when the pixels from the current block line that are collocated with respect to the pixels in search range A (eg, directly below the pixels in search range A) cause the
簡略化された探索範囲を使用するブロック予測モードでのコーディング
[0180] 図26を参照して、ブロック予測モードでビデオデータのブロックをコーディングするための例示的なプロシージャが説明される。図26に示されているステップは、ビデオエンコーダ(例えば、図2A中のビデオエンコーダ20)、またはそれらの(1つまたは複数の)コンポーネントによって実行され得る。便宜上、方法2600は、ビデオエンコーダ20、または別のコンポーネントであり得る、コーダによって実行されるものとして説明される。
Coding in block prediction mode with simplified search range
[0180] With reference to FIG. 26, an exemplary procedure for coding a block of video data in a block prediction mode will be described. The steps shown in FIG. 26 may be performed by a video encoder (eg,
[0181] 方法2600は、ブロック2601において開始する。ブロック2605において、コーダは、現在スライス中の現在ブロックを予測するために使用される候補ブロックを決定し、ここで、候補ブロックは、現在スライス中の再構成されたピクセルに各々対応する複数のピクセル位置(例えば、探索範囲)の範囲内にある。例えば、コーダは、複数のピクセル位置の範囲において複数の潜在的な候補ブロックの各潜在的な候補ブロックに基づいて、現在ブロックをコーディングすることに関連付けられたコストを決定し、最低コストを有するブロックのうちの1つを候補ブロックとして識別する。各潜在的な候補ブロックは、複数のピクセル位置の範囲内のピクセル位置のうちの1つに対応し得る。複数のピクセル位置の範囲は、現在スライス中のピクセルの第1のライン中の1つまたは複数の第1のピクセル位置を含む第1の領域を含み得、ここで、複数のピクセルの第1のラインは、現在ブロックとオーバーラップする。例えば、複数のピクセルの第1のラインは、現在スライスの全体の幅にわたり得、複数のピクセルの第1のラインは、現在ブロック中の少なくとも1つのピクセルを含み得る。さらに、複数のピクセル位置の範囲は、現在スライス中のピクセルの第2のライン中の1つまたは複数の第2のピクセル位置を含む第2の領域を含み、ここで、複数のピクセルの第2のラインは、現在ブロックとオーバーラップしない。例えば、複数のピクセルの第2のラインは、現在スライスの全体の幅にわたり得、現在ブロック中の任意のピクセルを含まない。複数のピクセルの第2のラインは、現在スライス中の第1のラインにすぐ前に先行し得る。第1のおよび第2のラインの各々は、現在スライス内のラスタスキャンラインであり得る。いくつかの実施形態では、第1の領域および第2の領域は、異なるラスタスキャンラインを占有する。第1の領域は、(例えば、ラスタスキャンラインおよび現在ブロックが少なくとも1つの共通ピクセルを含む)現在ブロックとオーバーラップするラスタスキャンライン内にあり得る。複数のピクセル位置の範囲は、第2のライン中(例えば、第2の領域を含む同じライン中)の1つまたは複数の第3のピクセル位置を含む第3の領域をさらに含み得る。例えば、第3の領域中の1つまたは複数の第3のピクセル位置は、現在ブロックの一部である第1のライン中のピクセル位置に関してコロケートされる(または、現在ブロックと垂直方向にオーバーラップする)第2のライン中のいずれのピクセル位置も含まない可能性があり、一方、第2の領域中の1つまたは複数の第2のピクセル位置のうちの少なくとも1つは、現在ブロックの一部である第1のライン中のピクセル位置に関してコロケートされる(または、現在ブロックと垂直にオーバーラップする)第2のライン中の1つまたは複数の第2のピクセルを含み得る。本明細書で説明されるように、領域は、異なる数のピクセル位置を各々含み得る。例えば、第1の領域中のピクセル位置の数は、第2の領域中のピクセル位置の数よりも多く、それは、第3の領域よりも多い数のピクセル位置を有する。いくつかの実施形態では、現在ブロックは、簡略化されたブロック予測モードで予測された2×8ブロック内の1×2区分である。他の実施形態では、現在ブロックは、簡略化されたブロック予測モードで予測された2×8ブロック内の2×2区分である。いくつかの他の実施形態では、現在ブロックは、簡略化されたブロック予測モードで予測された2×8ブロックである。複数のピクセル位置の範囲における各潜在的な候補ブロックは、複数のピクセル位置の範囲中の任意のピクセル位置(例えば、第1の領域、第2の領域、または第3の領域中の複数のピクセル位置)に対応し得る(例えば、左上のピクセルまたは別の参照ピクセルとして含む)。候補ブロックに関連付けられたビデオデータは、ビデオ符号化デバイスのメモリに記憶され得る。
[0181] The
[0182] ブロック2610において、コーダは、複数のピクセル位置の範囲内の候補ブロックのピクセル位置を示す予測ベクトルを決定する。例えば、候補ブロックのピクセル位置は、第1の領域または第2の領域のうちの1つにあり得る。
[0182] At
[0183] ブロック2615において、コーダは、予測ベクトルをシグナリングすることを少なくとも部分的に介して、簡略化されたブロック予測モードで現在ブロックをコーディングする。コーダは、固定数のビット(例えば、ピクセル位置の範囲における各ピクセル位置を一意に識別するために必要とされる最小数のビット)を使用して、予測ベクトルをシグナリングし得る。例えば、複数のピクセル位置の範囲内に64個のピクセル位置が存在する場合、6ビットが各予測ベクトルをシグナリングするために使用され得る。いくつかの実施形態では、現在スライス内の現在ブロックのロケーションは、複数のピクセル位置の範囲が最大数のピクセル位置よりも小さいある特定数のピクセル位置よりも多いものを有することを妨げる場合、コーダは、複数のピクセル位置の範囲内の最大数のピクセル位置を一意に識別するために必要とされるビットの数よりも小さいものを使用して予測ベクトルをシグナリングし得る。例えば、コーダは、現在スライス内の現在ブロックのロケーションのために、複数のピクセルロケーションの範囲が32個のピクセル位置よりも多くを有することができない(例えば、現在ラインが現在スライス中の第1のラインであり、ラスタスキャン順で現在ブロックに先行する32個の再構成されたブロックのみが存在する)場合、低減されたビットの数(例えば、この場合は5個)は、現在ブロックをコーディングするために使用される候補ブロックのピクセル位置を示す予測ベクトルをシグナリングするために使用され得る。方法2600はブロック2620において終了する。
[0183] At
[0184] 方法2600では、図26に示されているブロックのうちの1つまたは複数は削除され得(例えば、実行されない)、および/または方法が実行される順序は入れ替えられることがある。いくつかの実施形態では、さらなるブロックが方法2600に追加され得る。例えば、いくつかの実施形態では、コーダは、現在スライス中の複数のピクセルの第1のライン中の少なくとも1つのピクセルと、複数のピクセルの第3のライン中の少なくとも1つのピクセルとを現在ブロックが含むことを決定し得、ここで、複数のピクセルの第3のラインは、現在スライスの全体の幅にわたり、現在ブロック中の少なくとも1つのピクセルを含み、ここで、第3のラインは、第1のラインとは異なる。このような決定に基づいて、コーダは、(i)第1のブロックに基づいて、現在ブロックをコーディングすることに関連付けられたコストを決定し、ここで、第1のブロックは、第1の領域中の少なくとも1つのピクセルと、第2の領域中の少なくとも1つのピクセルとを含み、(ii)第1のブロックに基づいて現在ブロックをコーディングすることに関連付けられたコストに基づいて、現在ブロックを予測するために使用される候補ブロックとなる第1のブロックを決定し得る。別の実施形態では、コーダは、現在スライス中の複数のピクセルの第1のライン中の少なくとも1つのピクセルと、複数のピクセルの第3のライン中の少なくとも1つのピクセルとを現在ブロックが含むことを決定し得、ここで、複数のピクセルの第3のラインは、現在スライスの全体の幅にわたり、現在ブロック中の少なくとも1つのピクセルを含み、ここで、第3のラインは、第1のラインとは異なる。このような決定に基づいて、コーダは、(i)現在ブロックよりも少ない数のピクセルを有する第1のブロックに基づいて、現在ブロックをコーディングすることに関連付けられた第1のコストを決定し、ここで、第1のブロックは、第2の領域中の各々にある1つまたは複数のピクセルを含み、(ii)現在ブロックと同じ数のピクセルを有する第2のブロックに基づいて、現在ブロックをコーディングすることに関連付けられた第2のコストを決定し、ここで、第2のブロックは、第1のブロック中の1つまたは複数のピクセルの全てと、第1の領域中の各々にある1つまたは複数の追加のピクセルとを含み、(iii)第2のコストが第1のコストよりも大きいとの決定に基づいて、現在ブロックを予測するために使用される候補ブロックとなる第1のブロックを決定し得る。本開示の実施形態は、図26に示されている例にまたはそれによって限定されず、他の変形が本開示の趣旨から逸脱することなく実装され得る。
[0184] In the
他の考慮事項
[0185] 本明細書で開示する情報および信号は、様々な異なる技術および技法のいずれかを使用して表され得る。例えば、上記の説明全体にわたって言及され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁界または磁性粒子、光場または光学粒子、あるいはそれらの任意の組合せによって表され得る。
Other considerations
[0185] Information and signals disclosed herein may be represented using any of a variety of different technologies and techniques. For example, data, instructions, commands, information, signals, bits, symbols, and chips that may be referred to throughout the above description are voltages, currents, electromagnetic waves, magnetic fields or magnetic particles, light fields or optical particles, or any of them Can be represented by a combination.
[0186] 本明細書で開示される実施形態に関して説明された様々な例示的な論理ブロック、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、またはその両方の組合せとして実装され得る。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的なコンポーネント、ブロック、およびステップが、概してそれらの機能に関して上記で説明されている。そのような機能をハードウェアとして実装するか、ソフトウェアとして実装するかは、特定のアプリケーションおよび全体的なシステムに課される設計制約に依存する。当業者は、説明された機能を特定のアプリケーションごとに様々な方法で実装し得るが、そのような実装の決定は、本開示の範囲からの逸脱をもたらすものと解釈されるべきではない。 [0186] The various exemplary logic blocks and algorithm steps described with respect to the embodiments disclosed herein may be implemented as electronic hardware, computer software, or a combination of both. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. Those skilled in the art may implement the described functionality in a variety of ways for a particular application, but such implementation decisions should not be construed as causing a departure from the scope of the present disclosure.
[0187] 本明細書で説明された技法は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。そのような技法は、汎用コンピュータ、ワイヤレス通信デバイスハンドセット、またはワイヤレス通信デバイスハンドセットおよび他のデバイスにおけるアプリケーションを含む複数の用途を有する集積回路デバイスなどの、様々なデバイスのいずれかにおいて実装され得る。デバイスまたはコンポーネントとして説明された任意の特徴は、集積論理デバイスに一緒に、または個別であるが相互運用可能な論理デバイスとして別々に実装され得る。ソフトウェアで実装された場合、本技法は、実行されたとき、上記で説明された方法のうちの1つまたは複数を実行する命令を含むプログラムコードを備えるコンピュータ可読データ記憶媒体によって、少なくとも部分的に実現され得る。コンピュータ可読データ記憶媒体は、パッケージング材料を含み得るコンピュータプログラム製品の一部を形成し得る。コンピュータ可読媒体は、同期型ダイナミックランダムアクセスメモリ(SDRAM)などのランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、不揮発性ランダムアクセスメモリ(NVRAM)、電気的消去可能プログラマブル読み取り専用メモリ(EEPROM(登録商標))、フラッシュメモリ、磁気または光学データ記憶媒体などの、メモリまたはデータ記憶媒体を備え得る。本技法は、追加または代替として、伝搬信号または電波などの、命令またはデータ構造の形態でプログラムコードを搬送または通信し、コンピュータによってアクセスされ、読み取られ、および/または実行され得るコンピュータ可読通信媒体によって、少なくとも部分的に実現され得る。 [0187] The techniques described herein may be implemented in hardware, software, firmware, or any combination thereof. Such techniques may be implemented in any of a variety of devices, such as general purpose computers, wireless communication device handsets, or integrated circuit devices having multiple uses, including applications in wireless communication device handsets and other devices. Any feature described as a device or component may be implemented together in an integrated logical device or separately as a separate but interoperable logical device. When implemented in software, the techniques may be performed, at least in part, by a computer-readable data storage medium comprising program code that includes instructions that, when executed, perform one or more of the methods described above. Can be realized. The computer readable data storage medium may form part of a computer program product that may include packaging material. Computer readable media include random access memory (RAM) such as synchronous dynamic random access memory (SDRAM), read only memory (ROM), non-volatile random access memory (NVRAM), electrically erasable programmable read only memory (EEPROM) (Registered trademark)), flash memory, magnetic or optical data storage media, etc. The techniques may additionally or alternatively be carried by a computer readable communication medium that carries or communicates program code in the form of instructions or data structures, such as propagated signals or radio waves, and that can be accessed, read and / or executed by a computer. Can be realized at least in part.
[0188] プログラムコードは、1つまたは複数のデジタルシグナルプロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、または他の同等の集積回路またはディスクリート論理回路などの、1つまたは複数のプロセッサを含み得るプロセッサによって実行され得る。そのようなプロセッサは、本開示で説明された技法のいずれかを実行するように構成され得る。汎用プロセッサはマイクロプロセッサであり得るが、代替として、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、またはステートマシンであり得る。プロセッサはまた、コンピューティングデバイスの組合せ、例えば、DSPとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、DSPコアと連携する1つまたは複数のマイクロプロセッサ、あるいは任意の他のそのような構成として実装され得る。従って、本明細書で使用される「プロセッサ」という用語は、上記の構造、上記の構造の任意の組合せ、または本明細書で説明された技法の実装に適切な任意の他の構造または装置のいずれかを指し得る。さらに、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成された専用のソフトウェアもしくはハードウェア内に提供され得るか、または複合ビデオエンコーダ−デコーダ(コーデック)に組み込まれ得る。また、本技法は、1つまたは複数の回路または論理要素で十分に実装され得る。 [0188] The program code may be one or more digital signal processors (DSPs), general purpose microprocessors, application specific integrated circuits (ASICs), field programmable logic arrays (FPGAs), or other equivalent integrated circuits or discrete logic. It may be executed by a processor that may include one or more processors, such as a circuit. Such a processor may be configured to perform any of the techniques described in this disclosure. A general purpose processor may be a microprocessor, but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. The processor is also implemented as a combination of computing devices, eg, a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors associated with a DSP core, or any other such configuration. obtain. Accordingly, as used herein, the term “processor” refers to any of the above structures, any combination of the above structures, or any other structure or apparatus suitable for implementation of the techniques described herein. Can point to either. Further, in some aspects, the functionality described herein may be provided in dedicated software or hardware configured for encoding and decoding, or in a composite video encoder-decoder (codec). Can be incorporated. Also, the techniques may be fully implemented with one or more circuits or logic elements.
[0189] 本開示の技法は、ワイヤレスハンドセット、集積回路(IC)またはICのセット(例えば、チップセット)を含む、多種多様なデバイスまたは装置で実装され得る。本開示では、開示される技法を実行するように構成されたデバイスの機能的態様を強調するために、様々なコンポーネントまたはユニットが説明されたが、それらは、必ずしも異なるハードウェアユニットによる実現を必要としない。むしろ、上記で説明されたように、様々なユニットが、適切なソフトウェアおよび/またはファームウェアとともに、上記で説明された1つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、または相互動作可能なハードウェアユニットの集合によって与えられ得る。 [0189] The techniques of this disclosure may be implemented in a wide variety of devices or apparatuses, including a wireless handset, an integrated circuit (IC) or a set of ICs (eg, a chipset). In this disclosure, various components or units have been described to emphasize the functional aspects of a device configured to perform the disclosed techniques, but they necessarily require implementation by different hardware units. And not. Rather, as described above, the various units can be combined in a codec hardware unit, including one or more processors described above, or interoperable with appropriate software and / or firmware. It can be given by a set of operable hardware units.
[0190] 上記で様々な異なる実施形態に関して説明したが、一実施形態からの特徴または要素は、本開示の教示から逸脱することなく他の実施形態と組み合わせられ得る。しかしながら、それぞれの実施形態間の特徴の組合せは、必ずしもそれに限定されるものではない。本開示の様々な実施形態が説明された。これらおよび他の実施形態は以下の特許請求の範囲内に入る。 [0190] Although described above with respect to various different embodiments, features or elements from one embodiment may be combined with other embodiments without departing from the teachings of the present disclosure. However, the combination of features between the embodiments is not necessarily limited thereto. Various embodiments of the disclosure have been described. These and other embodiments are within the scope of the following claims.
[0190] 上記で様々な異なる実施形態に関して説明したが、一実施形態からの特徴または要素は、本開示の教示から逸脱することなく他の実施形態と組み合わせられ得る。しかしながら、それぞれの実施形態間の特徴の組合せは、必ずしもそれに限定されるものではない。本開示の様々な実施形態が説明された。これらおよび他の実施形態は以下の特許請求の範囲内に入る。
以下に本願の出願当初の特許請求の範囲に記載された発明を付記する。
[C1]
固定ビットレートビデオコーディング方式の簡略化されたブロック予測モードでビデオデータのブロックをコーディングするための方法であって、前記方法は、
現在スライス中の現在ブロックを予測するために使用される候補ブロックを決定することと、前記候補ブロックは、前記現在スライス中の再構成されたピクセルに各々対応する複数のピクセル位置の範囲内にあり、複数のピクセル位置の前記範囲は、少なくとも(i)前記現在スライス中の複数のピクセルの第1のライン中の1つまたは複数の第1のピクセル位置を含む第1の領域と、ここで、複数のピクセルの前記第1のラインは、前記現在ブロック中の少なくとも1つのピクセルを含み、前記現在スライスの全体の幅にわたる、(ii)前記現在スライス中の複数のピクセルの第2のライン中の1つまたは複数の第2のピクセル位置を含む第2の領域と、ここで、複数のピクセルの前記第2のラインは、前記現在ブロック中のいずれのピクセルも含まないが、前記現在スライスの前記全体の幅にわたる、を備える、
複数のピクセル位置の前記範囲内の前記候補ブロックのピクセル位置を示す予測ベクトルを決定することと、前記候補ブロックの前記ピクセル位置は、前記第1の領域または前記第2の領域のうちの1つにある、
前記予測ベクトルをシグナリングすることを少なくとも部分的に介して、簡略化されたブロック予測モードで前記現在ブロックをコーディングすることと
を備える、方法。
[C2]
複数のピクセルの前記第1のラインおよび複数のピクセルの前記第2のラインは、前記現在スライスの2つの隣接するラスタスキャンラインを備える、C1に記載の方法。
[C3]
前記現在ブロックは、簡略化されたブロック予測モードで予測された2×8ブロック内の1×2区分である、C1に記載の方法。
[C4]
前記現在ブロックは、簡略化されたブロック予測モードで予測された2×8ブロック内の2×2区分である、C1に記載の方法。
[C5]
複数のピクセル位置の前記範囲は、複数のピクセルの前記第2のライン中の1つまたは複数の第3のピクセル位置を備える第3の領域をさらに含み、前記1つまたは複数の第3のピクセル位置は、前記現在ブロックの一部である前記第1のライン中のピクセル位置に関してコロケートされた前記第2のライン中のいずれのピクセル位置も含まない、C1に記載の方法。
[C6]
前記第2の領域および前記第3の領域は、同じラスタスキャンラインを占有する、C5に記載の方法。
[C7]
前記第1の領域は、第1の数のピクセル位置を含み、前記第2の領域は、第2の数のピクセル位置を含み、前記第3の領域は、第3の数のピクセル位置を含み、前記第1の数は、前記第2の数よりも大きく、かつ前記第3の数よりも大きい、C5に記載の方法。
[C8]
前記第1、第2、および第3の数は、互いに異なる、C7に記載の方法。
[C9]
複数の潜在的な候補ブロックの各潜在的な候補ブロックに基づいて、前記現在ブロックをコーディングすることに関連付けられたコストを決定することと、前記複数の潜在的な候補ブロックは、前記第1および第2の領域中の前記第1および第2のピクセル位置の1つに各々対応する、
最低コストを有する前記第1および第2の領域中の前記複数の潜在的な候補ブロックのうちの1つを、前記候補ブロックとして識別することと
をさらに備える、C1に記載の方法。
[C10]
複数のピクセル位置の前記範囲中の各ピクセル位置を一意に識別するために必要とされるビットの数は、第1の数に等しく、前記方法は、
前記現在スライス内のあらかじめ定められた領域内に前記現在ブロックがあると決定することと、
ビットの前記第1の数よりも小さいものを使用して前記予測ベクトルをシグナリングすることと
をさらに備える、C1に記載の方法。
[C11]
前記現在スライス中の複数のピクセルの前記第1のライン中の少なくとも1つのピクセルと、複数のピクセルの第3のライン中の少なくとも1つのピクセルとを前記現在ブロックが含むことを決定することと、複数のピクセルの前記第3のラインは、前記現在ブロック中の少なくとも1つのピクセルを含み、前記現在スライスの前記全体の幅にわたり、ここにおいて、前記第3のラインは、前記第1のラインとは異なる、
第1のブロックに基づいて前記現在ブロックをコーディングすることに関連付けられたコストを決定することと、前記第1のブロックは、前記第1の領域中の少なくとも1つのピクセルと前記第2の領域中の少なくとも1つのピクセルとを含む、
前記第1のブロックに基づいて前記現在ブロックをコーディングすることに関連付けられた前記コストに基づいて、前記現在ブロックを予測するために使用される、前記候補ブロックとなる前記第1のブロックを決定することと
をさらに備える、C1に記載の方法。
[C12]
前記現在スライス中の複数のピクセルの前記第1のライン中の少なくとも1つのピクセルと、複数のピクセルの第3のライン中の少なくとも1つのピクセルとを前記現在ブロックが含むことを決定することと、複数のピクセルの前記第3のラインは、前記現在ブロック中の少なくとも1つのピクセルを含み、前記現在スライスの前記全体の幅にわたり、ここにおいて、前記第3のラインは、前記第1のラインとは異なる、
前記現在ブロックよりも少ない数のピクセルを有する第1のブロックに基づいて、前記現在ブロックをコーディングすることに関連付けられた第1のコストを決定することと、前記第1のブロックは、前記第2の領域中の各々にある1つまたは複数のピクセルを含む、
前記現在ブロックと同じ数のピクセルを有する第2のブロックに基づいて、前記現在ブロックをコーディングすることに関連付けられた第2のコストを決定することと、前記第2のブロックは、前記第1のブロック中の前記1つまたは複数のピクセルの全てと、前記第1の領域中の各々にある1つまたは複数の追加のピクセルとを含む、
前記第2のコストが前記第1のコストよりも大きいとの決定に基づいて、前記現在ブロックを予測するために使用される前記候補ブロックとなる前記第1のブロックを決定することと
をさらに備える、C1に記載の方法。
[C13]
固定ビットレートビデオコーディング方式の簡略化されたブロック予測モードでビデオデータのブロックをコーディングするための装置であって、前記装置は、
ビデオデータの現在スライスの1つまたは複数の再構成されたピクセルを記憶するように構成されたメモリと、
前記メモリと通信状態にある1つまたは複数のプロセッサとを備え、前記1つまたは複数のプロセッサは、
前記現在スライス中の現在ブロックを予測するために使用される候補ブロックを決定することと、前記候補ブロックは、前記現在スライス中の再構成されたピクセルに各々対応する複数のピクセル位置の範囲内にあり、複数のピクセル位置の前記範囲は、少なくとも(i)前記現在スライス中の複数のピクセルの第1のライン中の1つまたは複数の第1のピクセル位置を含む第1の領域と、ここで、複数のピクセルの前記第1のラインは、前記現在ブロック中の少なくとも1つのピクセルを含み、前記現在スライスの全体の幅にわたる、(ii)前記現在スライス中の複数のピクセルの第2のライン中の1つまたは複数の第2のピクセル位置を含む第2の領域と、ここで、複数のピクセルの前記第2のラインは、前記現在ブロック中のいずれのピクセルも含まないが、前記現在スライスの前記全体の幅にわたる、を備える、
複数のピクセル位置の前記範囲内の前記候補ブロックのピクセル位置を示す予測ベクトルを決定することと、前記候補ブロックの前記ピクセル位置は、前記第1の領域または前記第2の領域のうちの1つにある、
前記予測ベクトルをシグナリングすることを少なくとも部分的に介して、簡略化されたブロック予測モードで前記現在ブロックをコーディングすることと
を行うように構成される、装置。
[C14]
複数のピクセルの前記第1のラインおよび複数のピクセルの前記第2のラインは、前記現在スライスの2つの隣接するラスタスキャンラインを備える、C13に記載の装置。
[C15]
前記現在ブロックは、簡略化されたブロック予測モードで予測された2×8ブロック内の1×2区分である、C13に記載の装置。
[C16]
前記現在ブロックは、簡略化されたブロック予測モードで予測された2×8ブロック内の2×2区分である、C13に記載の装置。
[C17]
複数のピクセル位置の前記範囲は、複数のピクセルの前記第2のライン中の1つまたは複数の第3のピクセル位置を備える第3の領域をさらに含み、前記1つまたは複数の第3のピクセル位置は、前記現在ブロックの一部である前記第1のライン中のピクセル位置に関してコロケートされた前記第2のライン中のいずれのピクセル位置も含まない、C13に記載の装置。
[C18]
前記第2の領域および前記第3の領域は、同じラスタスキャンラインを占有する、C17に記載の装置。
[C19]
前記第1の領域は、第1の数のピクセル位置を含み、前記第2の領域は、第2の数のピクセル位置を含み、前記第3の領域は、第3の数のピクセル位置を含み、前記第1の数は、前記第2の数よりも大きく、かつ前記第3の数よりも大きい、C17に記載の装置。
[C20]
前記第1、第2、および第3の数は、互いに異なる、C19に記載の装置。
[C21]
前記1つまたは複数のプロセッサは、
複数の潜在的な候補ブロックの各潜在的な候補ブロックに基づいて、前記現在ブロックをコーディングすることに関連付けられたコストを決定することと、前記複数の潜在的な候補ブロックは、前記第1および第2の領域中の前記第1および第2のピクセル位置の1つに各々対応する、
最低コストを有する前記第1および第2の領域中の前記複数の潜在的な候補ブロックのうちの1つを、前記候補ブロックとして識別することと
を行うようにさらに構成される、C13に記載の装置。
[C22]
複数のピクセル位置の前記範囲中の各ピクセル位置を一意に識別するために必要とされるビットの数は、第1の数に等しく、前記1つまたは複数のプロセッサは、
前記現在スライス内のあらかじめ定められた領域内に前記現在ブロックがあると決定することと、
ビットの前記第1の数よりも小さいものを使用して前記予測ベクトルをシグナリングすることと
を行うようにさらに構成される、C13に記載の装置。
[C23]
前記1つまたは複数のプロセッサは、
前記現在スライス中の複数のピクセルの前記第1のライン中の少なくとも1つのピクセルと、複数のピクセルの第3のライン中の少なくとも1つのピクセルとを前記現在ブロックが含むことを決定することと、複数のピクセルの前記第3のラインは、前記現在ブロック中の少なくとも1つのピクセルを含み、前記現在スライスの前記全体の幅にわたり、ここにおいて、前記第3のラインは、前記第1のラインとは異なる、
第1のブロックに基づいて前記現在ブロックをコーディングすることに関連付けられたコストを決定することと、前記第1のブロックは、前記第1の領域中の少なくとも1つのピクセルと前記第2の領域中の少なくとも1つのピクセルとを含む、
前記第1のブロックに基づいて前記現在ブロックをコーディングすることに関連付けられた前記コストに基づいて、前記現在ブロックを予測するために使用される、前記候補ブロックとなる前記第1のブロックを決定することと
を行うようにさらに構成される、C13に記載の装置。
[C24]
前記1つまたは複数のプロセッサは、
前記現在スライス中の複数のピクセルの前記第1のライン中の少なくとも1つのピクセルと、複数のピクセルの第3のライン中の少なくとも1つのピクセルとを前記現在ブロックが含むことを決定することと、複数のピクセルの前記第3のラインは、前記現在ブロック中の少なくとも1つのピクセルを含み、前記現在スライスの前記全体の幅にわたり、ここにおいて、前記第3のラインは、前記第1のラインとは異なる、
前記現在ブロックよりも少ない数のピクセルを有する第1のブロックに基づいて、前記現在ブロックをコーディングすることに関連付けられた第1のコストを決定することと、前記第1のブロックは、前記第2の領域中の各々にある1つまたは複数のピクセルを含む、
前記現在ブロックと同じ数のピクセルを有する第2のブロックに基づいて、前記現在ブロックをコーディングすることに関連付けられた第2のコストを決定することと、前記第2のブロックは、前記第1のブロック中の前記1つまたは複数のピクセルの全てと、前記第1の領域中の各々にある1つまたは複数の追加のピクセルとを含む、
前記第2のコストが前記第1のコストよりも大きいとの決定に基づいて、前記現在ブロックを予測するために使用される前記候補ブロックとなる前記第1のブロックを決定することと
を行うようにさらに構成される、C13に記載の装置。
[C25]
固定ビットレートビデオコーディング方式の簡略化されたブロック予測モードでビデオデータのブロックをコーディングするように構成されたコードを備える非一時的物理的コンピュータストレージであって、前記コードは、実行されたとき、装置に、
現在スライス中の現在ブロックを予測するために使用される候補ブロックを決定することと、前記候補ブロックは、前記現在スライス中の再構成されたピクセルに各々対応する複数のピクセル位置の範囲内にあり、複数のピクセル位置の前記範囲は、少なくとも(i)前記現在スライス中の複数のピクセルの第1のライン中の1つまたは複数の第1のピクセル位置を含む第1の領域と、ここで、複数のピクセルの前記第1のラインは、前記現在ブロック中の少なくとも1つのピクセルを含み、前記現在スライスの全体の幅にわたる、(ii)前記現在スライス中の複数のピクセルの第2のライン中の1つまたは複数の第2のピクセル位置を含む第2の領域と、ここで、複数のピクセルの前記第2のラインは、前記現在ブロック中のいずれのピクセルも含まないが、前記現在スライスの前記全体の幅にわたる、を備える、
複数のピクセル位置の前記範囲内の前記候補ブロックのピクセル位置を示す予測ベクトルを決定することと、前記候補ブロックの前記ピクセル位置は、前記第1の領域または前記第2の領域のうちの1つにある、
前記予測ベクトルをシグナリングすることを少なくとも部分的に介して、簡略化されたブロック予測モードで前記現在ブロックをコーディングすることと
を行わせる、非一時的物理的コンピュータストレージ。
[C26]
複数のピクセル位置の前記範囲は、複数のピクセルの前記第2のライン中の1つまたは複数の第3のピクセル位置を備える第3の領域をさらに含み、前記1つまたは複数の第3のピクセル位置は、前記現在ブロックの一部である前記第1のライン中のピクセル位置に関してコロケートされた前記第2のライン中のいずれのピクセル位置も含まない、C25に記載の非一時的物理的コンピュータストレージ。
[C27]
前記第1の領域は、第1の数のピクセル位置を含み、前記第2の領域は、第2の数のピクセル位置を含み、前記第3の領域は、第3の数のピクセル位置を含み、前記第1の数は、前記第2の数よりも大きく、かつ前記第3の数よりも大きい、C26に記載の非一時的物理的コンピュータストレージ。
[C28]
固定ビットレートビデオコーディング方式の簡略化されたブロック予測モードでビデオデータのブロックをコーディングするように構成されたビデオコーディングデバイスであって、前記ビデオコーディングデバイスは、
現在スライス中の現在ブロックを予測するために使用される候補ブロックを決定するための手段と、前記候補ブロックは、前記現在スライス中の再構成されたピクセルに各々対応する複数のピクセル位置の範囲内にあり、複数のピクセル位置の前記範囲は、少なくとも(i)前記現在スライス中の複数のピクセルの第1のライン中の1つまたは複数の第1のピクセル位置を含む第1の領域と、ここで、複数のピクセルの前記第1のラインは、前記現在ブロック中の少なくとも1つのピクセルを含み、前記現在スライスの全体の幅にわたる、(ii)前記現在スライス中の複数のピクセルの第2のライン中の1つまたは複数の第2のピクセル位置を含む第2の領域と、ここで、複数のピクセルの前記第2のラインは、前記現在ブロック中のいずれのピクセルも含まないが、前記現在スライスの前記全体の幅にわたる、を備える、
複数のピクセル位置の前記範囲内の前記候補ブロックのピクセル位置を示す予測ベクトルを決定するための手段と、前記候補ブロックの前記ピクセル位置は、前記第1の領域または前記第2の領域のうちの1つにある、
前記予測ベクトルをシグナリングすることを少なくとも部分的に介して、簡略化されたブロック予測モードで前記現在ブロックをコーディングするための手段と
を備える、ビデオコーディングデバイス。
[C29]
複数のピクセル位置の前記範囲は、複数のピクセルの前記第2のライン中の1つまたは複数の第3のピクセル位置を備える第3の領域をさらに含み、前記1つまたは複数の第3のピクセル位置は、前記現在ブロックの一部である前記第1のライン中のピクセル位置に関してコロケートされた前記第2のライン中のいずれのピクセル位置も含まない、C28に記載のビデオコーディングデバイス。
[C30]
前記第1の領域は、第1の数のピクセル位置を含み、前記第2の領域は、第2の数のピクセル位置を含み、前記第3の領域は、第3の数のピクセル位置を含み、前記第1の数は、前記第2の数よりも大きく、かつ前記第3の数よりも大きい、C29に記載のビデオコーディングデバイス。
[0190] Although described above with respect to various different embodiments, features or elements from one embodiment may be combined with other embodiments without departing from the teachings of the present disclosure. However, the combination of features between the embodiments is not necessarily limited thereto. Various embodiments of the disclosure have been described. These and other embodiments are within the scope of the following claims.
The invention described in the scope of claims at the beginning of the application of the present application will be added below.
[C1]
A method for coding a block of video data in a simplified block prediction mode of a constant bit rate video coding scheme, the method comprising:
Determining a candidate block used to predict a current block in a current slice; and the candidate block is within a plurality of pixel locations, each corresponding to a reconstructed pixel in the current slice The range of pixel locations includes at least (i) a first region that includes one or more first pixel locations in a first line of pixels in the current slice; and The first line of pixels includes at least one pixel in the current block and spans the entire width of the current slice; (ii) in a second line of pixels in the current slice; A second region including one or more second pixel locations, wherein the second line of pixels is any pixel in the current block. Although not included, comprises, over the entire width of the current slice,
Determining a prediction vector indicative of a pixel position of the candidate block within the range of a plurality of pixel positions, wherein the pixel position of the candidate block is one of the first region or the second region; It is in,
Coding the current block in a simplified block prediction mode, at least in part through signaling the prediction vector;
A method comprising:
[C2]
The method of C1, wherein the first line of pixels and the second line of pixels comprise two adjacent raster scan lines of the current slice.
[C3]
The method of C1, wherein the current block is a 1x2 partition in a 2x8 block predicted in a simplified block prediction mode.
[C4]
The method of C1, wherein the current block is a 2x2 partition within a 2x8 block predicted in a simplified block prediction mode.
[C5]
The range of pixel locations further includes a third region comprising one or more third pixel locations in the second line of pixels, wherein the one or more third pixels The method of C1, wherein a position does not include any pixel position in the second line that is collocated with respect to a pixel position in the first line that is part of the current block.
[C6]
The method of C5, wherein the second region and the third region occupy the same raster scan line.
[C7]
The first region includes a first number of pixel locations, the second region includes a second number of pixel locations, and the third region includes a third number of pixel locations. The method of C5, wherein the first number is greater than the second number and greater than the third number.
[C8]
The method of C7, wherein the first, second, and third numbers are different from each other.
[C9]
Determining a cost associated with coding the current block based on each potential candidate block of a plurality of potential candidate blocks; and Each corresponding to one of the first and second pixel locations in a second region;
Identifying one of the plurality of potential candidate blocks in the first and second regions having the lowest cost as the candidate block;
The method of C1, further comprising:
[C10]
The number of bits required to uniquely identify each pixel location in the range of pixel locations is equal to the first number, the method comprising:
Determining that the current block is within a predetermined area in the current slice;
Signaling the prediction vector using less than the first number of bits;
The method of C1, further comprising:
[C11]
Determining that the current block includes at least one pixel in the first line of pixels in the current slice and at least one pixel in a third line of pixels; The third line of pixels includes at least one pixel in the current block and spans the entire width of the current slice, wherein the third line is the first line. Different,
Determining a cost associated with coding the current block based on a first block; and the first block includes at least one pixel in the first region and in the second region. And at least one pixel of
Determining the first block to be the candidate block used to predict the current block based on the cost associated with coding the current block based on the first block; And
The method of C1, further comprising:
[C12]
Determining that the current block includes at least one pixel in the first line of pixels in the current slice and at least one pixel in a third line of pixels; The third line of pixels includes at least one pixel in the current block and spans the entire width of the current slice, wherein the third line is the first line. Different,
Determining a first cost associated with coding the current block based on a first block having fewer pixels than the current block; and Including one or more pixels in each of the regions of
Determining a second cost associated with coding the current block based on a second block having the same number of pixels as the current block; and Including all of the one or more pixels in a block and one or more additional pixels in each of the first regions;
Determining the first block to be the candidate block used to predict the current block based on a determination that the second cost is greater than the first cost;
The method of C1, further comprising:
[C13]
An apparatus for coding a block of video data in a simplified block prediction mode of a constant bit rate video coding scheme, the apparatus comprising:
A memory configured to store one or more reconstructed pixels of a current slice of video data;
One or more processors in communication with the memory, the one or more processors comprising:
Determining a candidate block used to predict a current block in the current slice; and the candidate block is within a plurality of pixel locations, each corresponding to a reconstructed pixel in the current slice. And the range of pixel locations is at least (i) a first region that includes one or more first pixel locations in a first line of pixels in the current slice; and The first line of pixels comprises at least one pixel in the current block and spans the entire width of the current slice; (ii) in the second line of pixels in the current slice A second region that includes one or more second pixel locations, wherein the second line of pixels includes any pixel in the current block. Although not included cell, over the entire width of the current slice comprises,
Determining a prediction vector indicative of a pixel position of the candidate block within the range of a plurality of pixel positions, wherein the pixel position of the candidate block is one of the first region or the second region; It is in,
Coding the current block in a simplified block prediction mode, at least in part through signaling the prediction vector;
An apparatus configured to do.
[C14]
The apparatus of C13, wherein the first line of pixels and the second line of pixels comprise two adjacent raster scan lines of the current slice.
[C15]
The apparatus of C13, wherein the current block is a 1 × 2 partition in a 2 × 8 block predicted in a simplified block prediction mode.
[C16]
The apparatus of C13, wherein the current block is a 2 × 2 partition in a 2 × 8 block predicted in a simplified block prediction mode.
[C17]
The range of pixel locations further includes a third region comprising one or more third pixel locations in the second line of pixels, wherein the one or more third pixels The apparatus of C13, wherein a position does not include any pixel position in the second line that is collocated with respect to a pixel position in the first line that is part of the current block.
[C18]
The apparatus according to C17, wherein the second area and the third area occupy the same raster scan line.
[C19]
The first region includes a first number of pixel locations, the second region includes a second number of pixel locations, and the third region includes a third number of pixel locations. The apparatus according to C17, wherein the first number is greater than the second number and greater than the third number.
[C20]
The apparatus according to C19, wherein the first, second, and third numbers are different from each other.
[C21]
The one or more processors are:
Determining a cost associated with coding the current block based on each potential candidate block of a plurality of potential candidate blocks; and Each corresponding to one of the first and second pixel locations in a second region;
Identifying one of the plurality of potential candidate blocks in the first and second regions having the lowest cost as the candidate block;
The apparatus of C13, further configured to perform:
[C22]
The number of bits required to uniquely identify each pixel location in the range of pixel locations is equal to a first number, and the one or more processors are:
Determining that the current block is within a predetermined area in the current slice;
Signaling the prediction vector using less than the first number of bits;
The apparatus of C13, further configured to perform:
[C23]
The one or more processors are:
Determining that the current block includes at least one pixel in the first line of pixels in the current slice and at least one pixel in a third line of pixels; The third line of pixels includes at least one pixel in the current block and spans the entire width of the current slice, wherein the third line is the first line. Different,
Determining a cost associated with coding the current block based on a first block; and the first block includes at least one pixel in the first region and in the second region. And at least one pixel of
Determining the first block to be the candidate block used to predict the current block based on the cost associated with coding the current block based on the first block; And
The apparatus of C13, further configured to perform:
[C24]
The one or more processors are:
Determining that the current block includes at least one pixel in the first line of pixels in the current slice and at least one pixel in a third line of pixels; The third line of pixels includes at least one pixel in the current block and spans the entire width of the current slice, wherein the third line is the first line. Different,
Determining a first cost associated with coding the current block based on a first block having fewer pixels than the current block; and Including one or more pixels in each of the regions of
Determining a second cost associated with coding the current block based on a second block having the same number of pixels as the current block; and Including all of the one or more pixels in a block and one or more additional pixels in each of the first regions;
Determining the first block to be the candidate block used to predict the current block based on a determination that the second cost is greater than the first cost;
The apparatus of C13, further configured to perform:
[C25]
Non-transitory physical computer storage comprising code configured to code a block of video data in a simplified block prediction mode of a constant bit rate video coding scheme, the code being executed when To the device,
Determining a candidate block used to predict a current block in a current slice; and the candidate block is within a plurality of pixel locations, each corresponding to a reconstructed pixel in the current slice The range of pixel locations includes at least (i) a first region that includes one or more first pixel locations in a first line of pixels in the current slice; and The first line of pixels includes at least one pixel in the current block and spans the entire width of the current slice; (ii) in a second line of pixels in the current slice; A second region including one or more second pixel locations, wherein the second line of pixels is any pixel in the current block. Although not included, comprises, over the entire width of the current slice,
Determining a prediction vector indicative of a pixel position of the candidate block within the range of a plurality of pixel positions, wherein the pixel position of the candidate block is one of the first region or the second region; It is in,
Coding the current block in a simplified block prediction mode, at least in part through signaling the prediction vector;
Non-temporary physical computer storage.
[C26]
The range of pixel locations further includes a third region comprising one or more third pixel locations in the second line of pixels, wherein the one or more third pixels The non-transitory physical computer storage of C25, wherein a location does not include any pixel location in the second line that is collocated with respect to a pixel location in the first line that is part of the current block. .
[C27]
The first region includes a first number of pixel locations, the second region includes a second number of pixel locations, and the third region includes a third number of pixel locations. The non-transitory physical computer storage according to C26, wherein the first number is greater than the second number and greater than the third number.
[C28]
A video coding device configured to code a block of video data in a simplified block prediction mode of a constant bit rate video coding scheme, the video coding device comprising:
Means for determining a candidate block used to predict a current block in a current slice; and the candidate block is within a plurality of pixel locations each corresponding to a reconstructed pixel in the current slice And the range of pixel locations includes at least (i) a first region that includes one or more first pixel locations in a first line of pixels in the current slice; Wherein the first line of pixels includes at least one pixel in the current block and spans the entire width of the current slice; (ii) a second line of pixels in the current slice A second region including one or more second pixel locations therein, wherein the second line of pixels is any of the current block Although not included Kuseru spans the entire width of the current slice comprises,
Means for determining a prediction vector indicative of a pixel position of the candidate block within the range of a plurality of pixel positions; and the pixel position of the candidate block is the first region or the second region In one,
Means for coding the current block in a simplified block prediction mode, at least in part through signaling the prediction vector;
A video coding device comprising:
[C29]
The range of pixel locations further includes a third region comprising one or more third pixel locations in the second line of pixels, wherein the one or more third pixels The video coding device of C28, wherein a position does not include any pixel position in the second line that is collocated with respect to a pixel position in the first line that is part of the current block.
[C30]
The first region includes a first number of pixel locations, the second region includes a second number of pixel locations, and the third region includes a third number of pixel locations. The video coding device of C29, wherein the first number is greater than the second number and greater than the third number.
Claims (30)
現在スライス中の現在ブロックを予測するために使用される候補ブロックを決定することと、前記候補ブロックは、前記現在スライス中の再構成されたピクセルに各々対応する複数のピクセル位置の範囲内にあり、複数のピクセル位置の前記範囲は、少なくとも(i)前記現在スライス中の複数のピクセルの第1のライン中の1つまたは複数の第1のピクセル位置を含む第1の領域と、ここで、複数のピクセルの前記第1のラインは、前記現在ブロック中の少なくとも1つのピクセルを含み、前記現在スライスの全体の幅にわたる、(ii)前記現在スライス中の複数のピクセルの第2のライン中の1つまたは複数の第2のピクセル位置を含む第2の領域と、ここで、複数のピクセルの前記第2のラインは、前記現在ブロック中のいずれのピクセルも含まないが、前記現在スライスの前記全体の幅にわたる、を備える、
複数のピクセル位置の前記範囲内の前記候補ブロックのピクセル位置を示す予測ベクトルを決定することと、前記候補ブロックの前記ピクセル位置は、前記第1の領域または前記第2の領域のうちの1つにある、
前記予測ベクトルをシグナリングすることを少なくとも部分的に介して、簡略化されたブロック予測モードで前記現在ブロックをコーディングすることと
を備える、方法。 A method for coding a block of video data in a simplified block prediction mode of a constant bit rate video coding scheme, the method comprising:
Determining a candidate block used to predict a current block in a current slice; and the candidate block is within a plurality of pixel locations, each corresponding to a reconstructed pixel in the current slice The range of pixel locations includes at least (i) a first region that includes one or more first pixel locations in a first line of pixels in the current slice; and The first line of pixels includes at least one pixel in the current block and spans the entire width of the current slice; (ii) in a second line of pixels in the current slice; A second region including one or more second pixel locations, wherein the second line of pixels is any pixel in the current block. Although not included, comprises, over the entire width of the current slice,
Determining a prediction vector indicative of a pixel position of the candidate block within the range of a plurality of pixel positions, wherein the pixel position of the candidate block is one of the first region or the second region; It is in,
Coding the current block in a simplified block prediction mode, at least in part through signaling the prediction vector.
最低コストを有する前記第1および第2の領域中の前記複数の潜在的な候補ブロックのうちの1つを、前記候補ブロックとして識別することと
をさらに備える、請求項1に記載の方法。 Determining a cost associated with coding the current block based on each potential candidate block of a plurality of potential candidate blocks; and Each corresponding to one of the first and second pixel locations in a second region;
The method of claim 1, further comprising: identifying one of the plurality of potential candidate blocks in the first and second regions having the lowest cost as the candidate block.
前記現在スライス内のあらかじめ定められた領域内に前記現在ブロックがあると決定することと、
ビットの前記第1の数よりも小さいものを使用して前記予測ベクトルをシグナリングすることと
をさらに備える、請求項1に記載の方法。 The number of bits required to uniquely identify each pixel location in the range of pixel locations is equal to the first number, the method comprising:
Determining that the current block is within a predetermined region in the current slice;
The method of claim 1, further comprising signaling the prediction vector using less than the first number of bits.
第1のブロックに基づいて前記現在ブロックをコーディングすることに関連付けられたコストを決定することと、前記第1のブロックは、前記第1の領域中の少なくとも1つのピクセルと前記第2の領域中の少なくとも1つのピクセルとを含む、
前記第1のブロックに基づいて前記現在ブロックをコーディングすることに関連付けられた前記コストに基づいて、前記現在ブロックを予測するために使用される、前記候補ブロックとなる前記第1のブロックを決定することと
をさらに備える、請求項1に記載の方法。 Determining that the current block includes at least one pixel in the first line of pixels in the current slice and at least one pixel in a third line of pixels; The third line of pixels includes at least one pixel in the current block and spans the entire width of the current slice, wherein the third line is the first line. Different,
Determining a cost associated with coding the current block based on a first block; and the first block includes at least one pixel in the first region and in the second region. And at least one pixel of
Determining the first block to be the candidate block used to predict the current block based on the cost associated with coding the current block based on the first block; The method of claim 1, further comprising:
前記現在ブロックよりも少ない数のピクセルを有する第1のブロックに基づいて、前記現在ブロックをコーディングすることに関連付けられた第1のコストを決定することと、前記第1のブロックは、前記第2の領域中の各々にある1つまたは複数のピクセルを含む、
前記現在ブロックと同じ数のピクセルを有する第2のブロックに基づいて、前記現在ブロックをコーディングすることに関連付けられた第2のコストを決定することと、前記第2のブロックは、前記第1のブロック中の前記1つまたは複数のピクセルの全てと、前記第1の領域中の各々にある1つまたは複数の追加のピクセルとを含む、
前記第2のコストが前記第1のコストよりも大きいとの決定に基づいて、前記現在ブロックを予測するために使用される前記候補ブロックとなる前記第1のブロックを決定することと
をさらに備える、請求項1に記載の方法。 Determining that the current block includes at least one pixel in the first line of pixels in the current slice and at least one pixel in a third line of pixels; The third line of pixels includes at least one pixel in the current block and spans the entire width of the current slice, wherein the third line is the first line. Different,
Determining a first cost associated with coding the current block based on a first block having fewer pixels than the current block; and Including one or more pixels in each of the regions of
Determining a second cost associated with coding the current block based on a second block having the same number of pixels as the current block; and Including all of the one or more pixels in a block and one or more additional pixels in each of the first regions;
Determining the first block to be the candidate block used to predict the current block based on a determination that the second cost is greater than the first cost. The method of claim 1.
ビデオデータの現在スライスの1つまたは複数の再構成されたピクセルを記憶するように構成されたメモリと、
前記メモリと通信状態にある1つまたは複数のプロセッサとを備え、前記1つまたは複数のプロセッサは、
前記現在スライス中の現在ブロックを予測するために使用される候補ブロックを決定することと、前記候補ブロックは、前記現在スライス中の再構成されたピクセルに各々対応する複数のピクセル位置の範囲内にあり、複数のピクセル位置の前記範囲は、少なくとも(i)前記現在スライス中の複数のピクセルの第1のライン中の1つまたは複数の第1のピクセル位置を含む第1の領域と、ここで、複数のピクセルの前記第1のラインは、前記現在ブロック中の少なくとも1つのピクセルを含み、前記現在スライスの全体の幅にわたる、(ii)前記現在スライス中の複数のピクセルの第2のライン中の1つまたは複数の第2のピクセル位置を含む第2の領域と、ここで、複数のピクセルの前記第2のラインは、前記現在ブロック中のいずれのピクセルも含まないが、前記現在スライスの前記全体の幅にわたる、を備える、
複数のピクセル位置の前記範囲内の前記候補ブロックのピクセル位置を示す予測ベクトルを決定することと、前記候補ブロックの前記ピクセル位置は、前記第1の領域または前記第2の領域のうちの1つにある、
前記予測ベクトルをシグナリングすることを少なくとも部分的に介して、簡略化されたブロック予測モードで前記現在ブロックをコーディングすることと
を行うように構成される、装置。 An apparatus for coding a block of video data in a simplified block prediction mode of a constant bit rate video coding scheme, the apparatus comprising:
A memory configured to store one or more reconstructed pixels of a current slice of video data;
One or more processors in communication with the memory, the one or more processors comprising:
Determining a candidate block used to predict a current block in the current slice; and the candidate block is within a plurality of pixel locations, each corresponding to a reconstructed pixel in the current slice. And the range of pixel locations is at least (i) a first region that includes one or more first pixel locations in a first line of pixels in the current slice; and The first line of pixels comprises at least one pixel in the current block and spans the entire width of the current slice; (ii) in the second line of pixels in the current slice A second region that includes one or more second pixel locations, wherein the second line of pixels includes any pixel in the current block. Although not included cell, over the entire width of the current slice comprises,
Determining a prediction vector indicative of a pixel position of the candidate block within the range of a plurality of pixel positions, wherein the pixel position of the candidate block is one of the first region or the second region; It is in,
An apparatus configured to code the current block in a simplified block prediction mode, at least in part through signaling the prediction vector.
複数の潜在的な候補ブロックの各潜在的な候補ブロックに基づいて、前記現在ブロックをコーディングすることに関連付けられたコストを決定することと、前記複数の潜在的な候補ブロックは、前記第1および第2の領域中の前記第1および第2のピクセル位置の1つに各々対応する、
最低コストを有する前記第1および第2の領域中の前記複数の潜在的な候補ブロックのうちの1つを、前記候補ブロックとして識別することと
を行うようにさらに構成される、請求項13に記載の装置。 The one or more processors are:
Determining a cost associated with coding the current block based on each potential candidate block of a plurality of potential candidate blocks; and Each corresponding to one of the first and second pixel locations in a second region;
The method of claim 13, further comprising: identifying one of the plurality of potential candidate blocks in the first and second regions having the lowest cost as the candidate block. The device described.
前記現在スライス内のあらかじめ定められた領域内に前記現在ブロックがあると決定することと、
ビットの前記第1の数よりも小さいものを使用して前記予測ベクトルをシグナリングすることと
を行うようにさらに構成される、請求項13に記載の装置。 The number of bits required to uniquely identify each pixel location in the range of pixel locations is equal to a first number, and the one or more processors are:
Determining that the current block is within a predetermined region in the current slice;
14. The apparatus of claim 13, further configured to: signal the prediction vector using less than the first number of bits.
前記現在スライス中の複数のピクセルの前記第1のライン中の少なくとも1つのピクセルと、複数のピクセルの第3のライン中の少なくとも1つのピクセルとを前記現在ブロックが含むことを決定することと、複数のピクセルの前記第3のラインは、前記現在ブロック中の少なくとも1つのピクセルを含み、前記現在スライスの前記全体の幅にわたり、ここにおいて、前記第3のラインは、前記第1のラインとは異なる、
第1のブロックに基づいて前記現在ブロックをコーディングすることに関連付けられたコストを決定することと、前記第1のブロックは、前記第1の領域中の少なくとも1つのピクセルと前記第2の領域中の少なくとも1つのピクセルとを含む、
前記第1のブロックに基づいて前記現在ブロックをコーディングすることに関連付けられた前記コストに基づいて、前記現在ブロックを予測するために使用される、前記候補ブロックとなる前記第1のブロックを決定することと
を行うようにさらに構成される、請求項13に記載の装置。 The one or more processors are:
Determining that the current block includes at least one pixel in the first line of pixels in the current slice and at least one pixel in a third line of pixels; The third line of pixels includes at least one pixel in the current block and spans the entire width of the current slice, wherein the third line is the first line. Different,
Determining a cost associated with coding the current block based on a first block; and the first block includes at least one pixel in the first region and in the second region. And at least one pixel of
Determining the first block to be the candidate block used to predict the current block based on the cost associated with coding the current block based on the first block; 14. The apparatus of claim 13, further configured to:
前記現在スライス中の複数のピクセルの前記第1のライン中の少なくとも1つのピクセルと、複数のピクセルの第3のライン中の少なくとも1つのピクセルとを前記現在ブロックが含むことを決定することと、複数のピクセルの前記第3のラインは、前記現在ブロック中の少なくとも1つのピクセルを含み、前記現在スライスの前記全体の幅にわたり、ここにおいて、前記第3のラインは、前記第1のラインとは異なる、
前記現在ブロックよりも少ない数のピクセルを有する第1のブロックに基づいて、前記現在ブロックをコーディングすることに関連付けられた第1のコストを決定することと、前記第1のブロックは、前記第2の領域中の各々にある1つまたは複数のピクセルを含む、
前記現在ブロックと同じ数のピクセルを有する第2のブロックに基づいて、前記現在ブロックをコーディングすることに関連付けられた第2のコストを決定することと、前記第2のブロックは、前記第1のブロック中の前記1つまたは複数のピクセルの全てと、前記第1の領域中の各々にある1つまたは複数の追加のピクセルとを含む、
前記第2のコストが前記第1のコストよりも大きいとの決定に基づいて、前記現在ブロックを予測するために使用される前記候補ブロックとなる前記第1のブロックを決定することと
を行うようにさらに構成される、請求項13に記載の装置。 The one or more processors are:
Determining that the current block includes at least one pixel in the first line of pixels in the current slice and at least one pixel in a third line of pixels; The third line of pixels includes at least one pixel in the current block and spans the entire width of the current slice, wherein the third line is the first line. Different,
Determining a first cost associated with coding the current block based on a first block having fewer pixels than the current block; and Including one or more pixels in each of the regions of
Determining a second cost associated with coding the current block based on a second block having the same number of pixels as the current block; and Including all of the one or more pixels in a block and one or more additional pixels in each of the first regions;
Determining the first block to be the candidate block used to predict the current block based on a determination that the second cost is greater than the first cost. The apparatus of claim 13 further configured.
現在スライス中の現在ブロックを予測するために使用される候補ブロックを決定することと、前記候補ブロックは、前記現在スライス中の再構成されたピクセルに各々対応する複数のピクセル位置の範囲内にあり、複数のピクセル位置の前記範囲は、少なくとも(i)前記現在スライス中の複数のピクセルの第1のライン中の1つまたは複数の第1のピクセル位置を含む第1の領域と、ここで、複数のピクセルの前記第1のラインは、前記現在ブロック中の少なくとも1つのピクセルを含み、前記現在スライスの全体の幅にわたる、(ii)前記現在スライス中の複数のピクセルの第2のライン中の1つまたは複数の第2のピクセル位置を含む第2の領域と、ここで、複数のピクセルの前記第2のラインは、前記現在ブロック中のいずれのピクセルも含まないが、前記現在スライスの前記全体の幅にわたる、を備える、
複数のピクセル位置の前記範囲内の前記候補ブロックのピクセル位置を示す予測ベクトルを決定することと、前記候補ブロックの前記ピクセル位置は、前記第1の領域または前記第2の領域のうちの1つにある、
前記予測ベクトルをシグナリングすることを少なくとも部分的に介して、簡略化されたブロック予測モードで前記現在ブロックをコーディングすることと
を行わせる、非一時的物理的コンピュータストレージ。 Non-transitory physical computer storage comprising code configured to code a block of video data in a simplified block prediction mode of a constant bit rate video coding scheme, the code being executed when To the device,
Determining a candidate block used to predict a current block in a current slice; and the candidate block is within a plurality of pixel locations, each corresponding to a reconstructed pixel in the current slice The range of pixel locations includes at least (i) a first region that includes one or more first pixel locations in a first line of pixels in the current slice; and The first line of pixels includes at least one pixel in the current block and spans the entire width of the current slice; (ii) in a second line of pixels in the current slice; A second region including one or more second pixel locations, wherein the second line of pixels is any pixel in the current block. Although not included, comprises, over the entire width of the current slice,
Determining a prediction vector indicative of a pixel position of the candidate block within the range of a plurality of pixel positions, wherein the pixel position of the candidate block is one of the first region or the second region; It is in,
Non-transitory physical computer storage that causes the current block to be coded in a simplified block prediction mode, at least in part through signaling the prediction vector.
現在スライス中の現在ブロックを予測するために使用される候補ブロックを決定するための手段と、前記候補ブロックは、前記現在スライス中の再構成されたピクセルに各々対応する複数のピクセル位置の範囲内にあり、複数のピクセル位置の前記範囲は、少なくとも(i)前記現在スライス中の複数のピクセルの第1のライン中の1つまたは複数の第1のピクセル位置を含む第1の領域と、ここで、複数のピクセルの前記第1のラインは、前記現在ブロック中の少なくとも1つのピクセルを含み、前記現在スライスの全体の幅にわたる、(ii)前記現在スライス中の複数のピクセルの第2のライン中の1つまたは複数の第2のピクセル位置を含む第2の領域と、ここで、複数のピクセルの前記第2のラインは、前記現在ブロック中のいずれのピクセルも含まないが、前記現在スライスの前記全体の幅にわたる、を備える、
複数のピクセル位置の前記範囲内の前記候補ブロックのピクセル位置を示す予測ベクトルを決定するための手段と、前記候補ブロックの前記ピクセル位置は、前記第1の領域または前記第2の領域のうちの1つにある、
前記予測ベクトルをシグナリングすることを少なくとも部分的に介して、簡略化されたブロック予測モードで前記現在ブロックをコーディングするための手段と
を備える、ビデオコーディングデバイス。 A video coding device configured to code a block of video data in a simplified block prediction mode of a constant bit rate video coding scheme, the video coding device comprising:
Means for determining a candidate block used to predict a current block in a current slice; and the candidate block is within a plurality of pixel locations each corresponding to a reconstructed pixel in the current slice And the range of pixel locations includes at least (i) a first region that includes one or more first pixel locations in a first line of pixels in the current slice; Wherein the first line of pixels includes at least one pixel in the current block and spans the entire width of the current slice; (ii) a second line of pixels in the current slice A second region including one or more second pixel locations therein, wherein the second line of pixels is any of the current block Although not included Kuseru spans the entire width of the current slice comprises,
Means for determining a prediction vector indicative of a pixel position of the candidate block within the range of a plurality of pixel positions; and the pixel position of the candidate block is the first region or the second region In one,
Means for coding the current block in a simplified block prediction mode, at least in part through signaling the prediction vector.
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562264087P | 2015-12-07 | 2015-12-07 | |
US62/264,087 | 2015-12-07 | ||
US201662304879P | 2016-03-07 | 2016-03-07 | |
US62/304,879 | 2016-03-07 | ||
US15/369,723 | 2016-12-05 | ||
US15/369,723 US10368073B2 (en) | 2015-12-07 | 2016-12-05 | Multi-region search range for block prediction mode for display stream compression (DSC) |
PCT/US2016/065186 WO2017100206A1 (en) | 2015-12-07 | 2016-12-06 | Multi-region search range for block prediction mode for display stream compression (dsc) |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2018536364A true JP2018536364A (en) | 2018-12-06 |
JP2018536364A5 JP2018536364A5 (en) | 2020-01-30 |
JP7198665B2 JP7198665B2 (en) | 2023-01-04 |
Family
ID=58800491
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018529177A Active JP7198665B2 (en) | 2015-12-07 | 2016-12-06 | Multi-Region Search Coverage for Block Prediction Modes for Display Stream Compression (DSC) |
Country Status (10)
Country | Link |
---|---|
US (1) | US10368073B2 (en) |
EP (1) | EP3387832B1 (en) |
JP (1) | JP7198665B2 (en) |
KR (1) | KR102102066B1 (en) |
CN (1) | CN108293114B (en) |
BR (1) | BR112018011398B1 (en) |
CA (1) | CA3004185C (en) |
HU (1) | HUE049810T2 (en) |
TW (1) | TWI692244B (en) |
WO (1) | WO2017100206A1 (en) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10368073B2 (en) * | 2015-12-07 | 2019-07-30 | Qualcomm Incorporated | Multi-region search range for block prediction mode for display stream compression (DSC) |
CN110546956B (en) * | 2017-06-30 | 2021-12-28 | 华为技术有限公司 | Inter-frame prediction method and device |
US10564890B2 (en) * | 2017-07-07 | 2020-02-18 | Seagate Technology Llc | Runt handling data storage system |
US10685031B2 (en) * | 2018-03-27 | 2020-06-16 | New Relic, Inc. | Dynamic hash partitioning for large-scale database management systems |
KR102436953B1 (en) * | 2018-06-26 | 2022-08-25 | 닛본 덴끼 가부시끼가이샤 | Video encoding or video decoding apparatus, video encoding or video decoding method, program, and recording medium |
US10516885B1 (en) * | 2018-07-11 | 2019-12-24 | Tencent America LLC | Method and apparatus for video coding |
US10965315B2 (en) * | 2018-08-09 | 2021-03-30 | Andrew Kamal | Data compression method |
US10798419B2 (en) * | 2018-11-19 | 2020-10-06 | Sony Corporation | Embedded codec circuitry for sub-block based encoding of quantized prediction residual levels |
CN111787322B (en) * | 2020-08-04 | 2022-05-13 | 北京百度网讯科技有限公司 | Video coding method and device, electronic equipment and computer readable storage medium |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150304675A1 (en) * | 2014-04-21 | 2015-10-22 | Qualcomm Incorporated | System and method for coding in block prediction mode for display stream compression (dsc) |
Family Cites Families (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7145950B2 (en) * | 2003-07-14 | 2006-12-05 | Primax Electronics Ltd. | Method of motion vector determination in digital video compression |
CN101142821B (en) * | 2005-02-28 | 2011-06-15 | Nxp股份有限公司 | New compression format and apparatus using the new compression format for temporarily storing image data in a frame memory |
US8494052B2 (en) * | 2006-04-07 | 2013-07-23 | Microsoft Corporation | Dynamic selection of motion estimation search ranges and extended motion vector ranges |
KR101228020B1 (en) * | 2007-12-05 | 2013-01-30 | 삼성전자주식회사 | Video coding method and apparatus using side matching, and video decoding method and appartus thereof |
EP2071852A1 (en) * | 2007-12-11 | 2009-06-17 | Alcatel Lucent | Process for delivering a video stream over a wireless bidirectional channel between a video encoder and a video decoder |
US9100646B2 (en) * | 2008-09-03 | 2015-08-04 | Sk Telecom Co., Ltd. | Device and method for image encoding/decoding using prediction direction conversion and selective encoding |
GB2471323B (en) * | 2009-06-25 | 2014-10-22 | Advanced Risc Mach Ltd | Motion vector estimator |
CN103039075B (en) * | 2010-05-21 | 2015-11-25 | Jvc建伍株式会社 | Picture coding device, method for encoding images and picture decoding apparatus, picture decoding method |
TWI412281B (en) * | 2010-12-28 | 2013-10-11 | Nat Univ Chung Cheng | A Method of Calculating Reverse Conversion of Low Complexity |
US8681170B2 (en) * | 2011-05-05 | 2014-03-25 | Ati Technologies Ulc | Apparatus and method for multi-streaming for more than three pixel component values |
US9282338B2 (en) * | 2011-06-20 | 2016-03-08 | Qualcomm Incorporated | Unified merge mode and adaptive motion vector prediction mode candidates selection |
CN102946532A (en) * | 2011-09-02 | 2013-02-27 | 斯凯普公司 | Video coding |
US8963944B2 (en) * | 2012-05-15 | 2015-02-24 | Omnivision Technologies, Inc. | Method, apparatus and system to provide video data for buffering |
US9781418B1 (en) * | 2012-06-12 | 2017-10-03 | Google Inc. | Adaptive deadzone and rate-distortion skip in video processing |
WO2014047885A1 (en) * | 2012-09-28 | 2014-04-03 | Intel Corporation | Enhanced reference region utilization for scalable video coding |
US9813711B2 (en) * | 2012-10-03 | 2017-11-07 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Hybrid transform-based compression |
US10812829B2 (en) * | 2012-10-03 | 2020-10-20 | Avago Technologies International Sales Pte. Limited | 2D block image encoding |
PL2986005T3 (en) * | 2013-01-04 | 2019-08-30 | Samsung Electronics Co., Ltd. | Apparatus for entropy-decoding slice segments |
KR102070719B1 (en) * | 2013-01-23 | 2020-01-30 | 한국전자통신연구원 | Method for inter prediction and apparatus thereof |
JP5845202B2 (en) * | 2013-03-22 | 2016-01-20 | 株式会社東芝 | Image compression apparatus and image processing system |
US11284103B2 (en) * | 2014-01-17 | 2022-03-22 | Microsoft Technology Licensing, Llc | Intra block copy prediction with asymmetric partitions and encoder-side search patterns, search ranges and approaches to partitioning |
EP3063757B1 (en) * | 2014-03-18 | 2018-10-10 | MediaTek Inc. | Data processing apparatus capable of using different compression configurations for image quality optimization and/or display buffer capacity optimization and related data processing method |
US10477232B2 (en) * | 2014-03-21 | 2019-11-12 | Qualcomm Incorporated | Search region determination for intra block copy in video coding |
US9848193B2 (en) * | 2014-04-15 | 2017-12-19 | Qualcomm Incorporated | System and method for selecting quantization parameter (QP) in display stream compression (DSC) |
US9930346B2 (en) * | 2014-04-15 | 2018-03-27 | Qualcomm Incorporated | System and method for flatness detection for display stream compression (DSC) |
US9866853B2 (en) * | 2014-04-15 | 2018-01-09 | Qualcomm Incorporated | System and method for lagrangian parameter calculation for display stream compression (DSC) |
US10104397B2 (en) * | 2014-05-28 | 2018-10-16 | Mediatek Inc. | Video processing apparatus for storing partial reconstructed pixel data in storage device for use in intra prediction and related video processing method |
GB201409634D0 (en) * | 2014-05-30 | 2014-07-16 | Canon Kk | Intra block copy mode encoding choice |
US20160127771A1 (en) * | 2014-10-30 | 2016-05-05 | Broadcom Corporation | System and method for transporting hd video over hdmi with a reduced link rate |
US9716889B2 (en) * | 2014-12-09 | 2017-07-25 | Sony Corporation | Intra and inter-color prediction for Bayer image coding |
US9936203B2 (en) * | 2015-04-13 | 2018-04-03 | Qualcomm Incorporated | Complex region detection for display stream compression |
US10200713B2 (en) * | 2015-05-11 | 2019-02-05 | Qualcomm Incorporated | Search region determination for inter coding within a particular picture of video data |
US10200697B2 (en) * | 2015-07-09 | 2019-02-05 | Qualcomm Incorporated | Display stream compression pixel format extensions using subpixel packing |
US20170085886A1 (en) | 2015-09-18 | 2017-03-23 | Qualcomm Incorporated | Variable partition size for block prediction mode for display stream compression (dsc) |
US10368073B2 (en) * | 2015-12-07 | 2019-07-30 | Qualcomm Incorporated | Multi-region search range for block prediction mode for display stream compression (DSC) |
US10091533B2 (en) * | 2016-02-18 | 2018-10-02 | Cisco Technology, Inc. | Generalized filter for removing video compression artifacts |
US10567803B2 (en) * | 2017-04-12 | 2020-02-18 | Qualcomm Incorporated | Midpoint prediction error diffusion for display stream compression |
-
2016
- 2016-12-05 US US15/369,723 patent/US10368073B2/en active Active
- 2016-12-06 TW TW105140293A patent/TWI692244B/en active
- 2016-12-06 CN CN201680070287.2A patent/CN108293114B/en active Active
- 2016-12-06 CA CA3004185A patent/CA3004185C/en active Active
- 2016-12-06 JP JP2018529177A patent/JP7198665B2/en active Active
- 2016-12-06 HU HUE16819774A patent/HUE049810T2/en unknown
- 2016-12-06 KR KR1020187015748A patent/KR102102066B1/en active IP Right Grant
- 2016-12-06 WO PCT/US2016/065186 patent/WO2017100206A1/en active Application Filing
- 2016-12-06 EP EP16819774.7A patent/EP3387832B1/en active Active
- 2016-12-06 BR BR112018011398-0A patent/BR112018011398B1/en active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150304675A1 (en) * | 2014-04-21 | 2015-10-22 | Qualcomm Incorporated | System and method for coding in block prediction mode for display stream compression (dsc) |
Also Published As
Publication number | Publication date |
---|---|
WO2017100206A1 (en) | 2017-06-15 |
TWI692244B (en) | 2020-04-21 |
CN108293114A (en) | 2018-07-17 |
US10368073B2 (en) | 2019-07-30 |
CN108293114B (en) | 2022-04-01 |
JP7198665B2 (en) | 2023-01-04 |
BR112018011398B1 (en) | 2024-01-23 |
CA3004185C (en) | 2023-04-25 |
TW201725909A (en) | 2017-07-16 |
US20170163986A1 (en) | 2017-06-08 |
EP3387832B1 (en) | 2020-04-22 |
KR102102066B1 (en) | 2020-04-17 |
EP3387832A1 (en) | 2018-10-17 |
BR112018011398A2 (en) | 2018-12-04 |
HUE049810T2 (en) | 2020-10-28 |
CA3004185A1 (en) | 2017-06-15 |
KR20180091003A (en) | 2018-08-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7198665B2 (en) | Multi-Region Search Coverage for Block Prediction Modes for Display Stream Compression (DSC) | |
CN108028925B (en) | Variable partition size for displaying block prediction mode of stream compression (DSC) | |
US10244255B2 (en) | Rate-constrained fallback mode for display stream compression | |
US10631005B2 (en) | System and method for coding in block prediction mode for display stream compression (DSC) | |
JP6622791B2 (en) | Method for video coding with spatial prediction mode for multi-mode video coding | |
JP2017515377A (en) | System and method for Lagrangian parameter calculation for display stream compression (DSC) | |
US9843816B2 (en) | System and method for coding in pattern mode for display stream compression (DSC) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180810 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20191107 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20191107 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20191211 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20191211 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20200424 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20200605 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20200609 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20200923 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20210224 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210623 |
|
C60 | Trial request (containing other claim documents, opposition documents) |
Free format text: JAPANESE INTERMEDIATE CODE: C60 Effective date: 20210623 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20210701 |
|
C21 | Notice of transfer of a case for reconsideration by examiners before appeal proceedings |
Free format text: JAPANESE INTERMEDIATE CODE: C21 Effective date: 20210706 |
|
A912 | Re-examination (zenchi) completed and case transferred to appeal board |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20210910 |
|
C211 | Notice of termination of reconsideration by examiners before appeal proceedings |
Free format text: JAPANESE INTERMEDIATE CODE: C211 Effective date: 20210914 |
|
C22 | Notice of designation (change) of administrative judge |
Free format text: JAPANESE INTERMEDIATE CODE: C22 Effective date: 20220315 |
|
C22 | Notice of designation (change) of administrative judge |
Free format text: JAPANESE INTERMEDIATE CODE: C22 Effective date: 20220628 |
|
C13 | Notice of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: C13 Effective date: 20220712 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20221012 |
|
C23 | Notice of termination of proceedings |
Free format text: JAPANESE INTERMEDIATE CODE: C23 Effective date: 20221025 |
|
C03 | Trial/appeal decision taken |
Free format text: JAPANESE INTERMEDIATE CODE: C03 Effective date: 20221122 |
|
C30A | Notification sent |
Free format text: JAPANESE INTERMEDIATE CODE: C3012 Effective date: 20221122 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20221219 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7198665 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |